[MLton-devel] Porting from Moscow ML

Joe Hurd joe.hurd@cl.cam.ac.uk
Wed, 25 Sep 2002 14:42:19 +0100 (BST)


  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.
  Send mail to mime@docserver.cac.washington.edu for more info.

---559023410-851401618-1032961339=:6097
Content-Type: TEXT/PLAIN; charset=US-ASCII

OK, I think this version of the benchmark satisfies all your
conditions. I removed some of the hardest problems, and the runtime is
now

real    0m46.982s
user    0m37.950s
sys     0m7.970s

If it's still too high, I can always remove a few more problems.

> The gc-summary stats are also interesting.  They show an allocation
> rate of over 150M/s.

That sounds like useful informations that I could use to further
optimize my prover, if I knew more about garbage collectors than I do!
In fact, the main reason for porting to MLton was to make use of the
profiling facilities, but I was rather disappointed with the results:
I hardly recognized any of the functions in my program in the
yellow/red areas of the call graph.

Regards,

Joe


---559023410-851401618-1032961339=:6097
Content-Type: APPLICATION/octet-stream; name="benchmark.sml"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.SOL.4.44.0209251442180.6097@yellow.csi.cam.ac.uk>
Content-Description: 
Content-Disposition: attachment; filename="benchmark.sml"

KCojbGluZSAwLjAgIiRIT01FL2Rldi9zbWwvYmFzaWMvc3JjL1BQLnNpZyIq
KQooKiBQUCAtLSBwcmV0dHktcHJpbnRpbmcgLS0gZnJvbSB0aGUgU01ML05K
IGxpYnJhcnkgKikKCnNpZ25hdHVyZSBQUCA9CiAgIHNpZwogICAgICB0eXBl
IHBwc3RyZWFtCiAgICAgIHR5cGUgcHBjb25zdW1lciA9IHsgY29uc3VtZXIg
IDogc3RyaW5nIC0+IHVuaXQsCgkJCSBsaW5ld2lkdGggOiBpbnQsCgkJCSBm
bHVzaCAgICAgOiB1bml0IC0+IHVuaXQgfQoKICAgICAgZGF0YXR5cGUgYnJl
YWtfc3R5bGUgPSAKCSBDT05TSVNURU5UCiAgICAgICB8IElOQ09OU0lTVEVO
VAoKICAgICAgdmFsIG1rX3Bwc3RyZWFtICAgIDogcHBjb25zdW1lciAtPiBw
cHN0cmVhbQogICAgICB2YWwgZGVzdF9wcHN0cmVhbSAgOiBwcHN0cmVhbSAt
PiBwcGNvbnN1bWVyCiAgICAgIHZhbCBhZGRfYnJlYWsgICAgICA6IHBwc3Ry
ZWFtIC0+IGludCAqIGludCAtPiB1bml0CiAgICAgIHZhbCBhZGRfbmV3bGlu
ZSAgICA6IHBwc3RyZWFtIC0+IHVuaXQKICAgICAgdmFsIGFkZF9zdHJpbmcg
ICAgIDogcHBzdHJlYW0gLT4gc3RyaW5nIC0+IHVuaXQKICAgICAgdmFsIGJl
Z2luX2Jsb2NrICAgIDogcHBzdHJlYW0gLT4gYnJlYWtfc3R5bGUgLT4gaW50
IC0+IHVuaXQKICAgICAgdmFsIGVuZF9ibG9jayAgICAgIDogcHBzdHJlYW0g
LT4gdW5pdAogICAgICB2YWwgY2xlYXJfcHBzdHJlYW0gOiBwcHN0cmVhbSAt
PiB1bml0CiAgICAgIHZhbCBmbHVzaF9wcHN0cmVhbSA6IHBwc3RyZWFtIC0+
IHVuaXQKICAgICAgdmFsIHdpdGhfcHAgICAgICAgIDogcHBjb25zdW1lciAt
PiAocHBzdHJlYW0gLT4gdW5pdCkgLT4gdW5pdAogICAgICB2YWwgcHBfdG9f
c3RyaW5nICAgOiBpbnQgLT4gKHBwc3RyZWFtIC0+ICdhIC0+IHVuaXQpIC0+
ICdhIC0+IHN0cmluZwogICBlbmQKCigqIAogICBUaGlzIHN0cnVjdHVyZSBw
cm92aWRlcyB0b29scyBmb3IgY3JlYXRpbmcgY3VzdG9taXplZCBPcHBlbi1z
dHlsZQogICBwcmV0dHktcHJpbnRlcnMsIGJhc2VkIG9uIHRoZSB0eXBlIHBw
c3RyZWFtLiAgQSBwcHN0cmVhbSBpcyBhbgogICBvdXRwdXQgc3RyZWFtIHRo
YXQgY29udGFpbnMgcHJldHR5cHJpbnRpbmcgY29tbWFuZHMuICBUaGUgY29t
bWFuZHMKICAgYXJlIHBsYWNlZCBpbiB0aGUgc3RyZWFtIGJ5IHZhcmlvdXMg
ZnVuY3Rpb24gY2FsbHMgbGlzdGVkIGJlbG93LgoKICAgVGhlcmUgZm9sbG93
aW5nIHByaW1pdGl2ZXMgYWRkIGNvbW1hbmRzIHRvIHRoZSBzdHJlYW06CiAg
IGJlZ2luX2Jsb2NrLCBlbmRfYmxvY2ssIGFkZF9zdHJpbmcsIGFkZF9icmVh
aywgYW5kIGFkZF9uZXdsaW5lLgogICBBbGwgY2FsbHMgdG8gYWRkX3N0cmlu
ZywgYWRkX2JyZWFrLCBhbmQgYWRkX25ld2xpbmUgbXVzdCBoYXBwZW4KICAg
YmV0d2VlbiBhIHBhaXIgb2YgY2FsbHMgdG8gYmVnaW5fYmxvY2sgYW5kIGVu
ZF9ibG9jayBtdXN0IGJlCiAgIHByb3Blcmx5IG5lc3RlZCBkeW5hbWljYWxs
eS4gIEFsbCBjYWxscyB0byBiZWdpbl9ibG9jayBhbmQKICAgZW5kX2Jsb2Nr
IG11c3QgYmUgcHJvcGVybHkgbmVzdGVkIChkeW5hbWljYWxseSkuCgogICBb
cHBjb25zdW1lcl0gaXMgdGhlIHR5cGUgb2Ygc2lua3MgZm9yIHByZXR0eS1w
cmludGluZy4gIEEgdmFsdWUgb2YgCiAgIHR5cGUgcHBjb25zdW1lciBpcyBh
IHJlY29yZCAKICAgICAgICAgICAgICAgICB7IGNvbnN1bWVyICA6IHN0cmlu
ZyAtPiB1bml0LAogICAgICAgICAgICAgICAgICAgbGluZXdpZHRoIDogaW50
LAogICAgICAgICAgICAgICAgICAgZmx1c2ggICAgIDogdW5pdCAtPiB1bml0
IH0KICAgb2YgYSBzdHJpbmcgY29uc3VtZXIsIGEgc3BlY2lmaWVkIGxpbmV3
aWR0aCwgYW5kIGEgZmx1c2ggZnVuY3Rpb24KICAgd2hpY2ggaXMgY2FsbGVk
IHdoZW5ldmVyIGZsdXNoX3Bwc3RyZWFtIGlzIGNhbGxlZC4KCiAgIEEgcHJl
dHR5cHJpbnRlciBjYW4gYmUgY2FsbGVkIG91dHJpZ2h0IHRvIHByaW50IGEg
dmFsdWUuICBJbgogICBhZGRpdGlvbiwgYSBwcmV0dHlwcmludGVyIGZvciBh
IGJhc2UgdHlwZSBvciBudWxsYXJ5IGRhdGF0eXBlIHR5CiAgIGNhbiBiZSBp
bnN0YWxsZWQgaW4gdGhlIHRvcC1sZXZlbCBzeXN0ZW0uICBUaGVuIHRoZSBp
bnN0YWxsZWQKICAgcHJldHR5cHJpbnRlciB3aWxsIGJlIGludm9rZWQgYXV0
b21hdGljYWxseSB3aGVuZXZlciBhIHZhbHVlIG9mCiAgIHR5cGUgdHkgaXMg
dG8gYmUgcHJpbnRlZC4KCiAgIFticmVha19zdHlsZV0gaXMgdGhlIHR5cGUg
b2YgbGluZSBicmVhayBzdHlsZXMgZm9yIGJsb2NrczoKCiAgIFtDT05TSVNU
RU5UXSBzcGVjaWZpZXMgdGhhdCBpZiBhbnkgbGluZSBicmVhayBvY2N1cnMg
aW5zaWRlIHRoZQogICBibG9jaywgdGhlbiBhbGwgaW5kaWNhdGVkIGxpbmUg
YnJlYWtzIG9jY3VyLgoKICAgW0lOQ09OU0lTVEVOVF0gc3BlY2lmaWVzIHRo
YXQgYnJlYWtzIHdpbGwgYmUgaW5zZXJ0ZWQgdG8gb25seSB0bwogICBhdm9p
ZCBvdmVyZnVsbCBsaW5lcy4KCiAgIFtta19wcHN0cmVhbSB7Y29uc3VtZXIs
IGxpbmV3aWR0aCwgZmx1c2h9XSBjcmVhdGVzIGEgbmV3IHBwc3RyZWFtCiAg
IHdoaWNoIGludm9rZXMgdGhlIGNvbnN1bWVyIHRvIG91dHB1dCB0ZXh0LCBw
dXR0aW5nIGF0IG1vc3QKICAgbGluZXdpZHRoIGNoYXJhY3RlcnMgb24gZWFj
aCBsaW5lLgoKICAgW2Rlc3RfcHBzdHJlYW0gcHBzdHJtXSBleHRyYWN0cyB0
aGUgbGluZXdpZHRoLCBmbHVzaCBmdW5jdGlvbiwgYW5kCiAgIGNvbnN1bWVy
IGZyb20gYSBwcHN0cmVhbS4KCiAgIFthZGRfYnJlYWsgcHBzdHJtIChzaXpl
LCBvZmZzZXQpXSBub3RpZmllcyB0aGUgcHJldHR5LXByaW50ZXIgdGhhdAog
ICBhIGxpbmUgYnJlYWsgaXMgcG9zc2libGUgYXQgdGhpcyBwb2ludC4gIAog
ICAqIFdoZW4gdGhlIGN1cnJlbnQgYmxvY2sgc3R5bGUgaXMgQ09OU0lTVEVO
VDoKICAgICAgKiogaWYgdGhlIGVudGlyZSBibG9jayBmaXRzIG9uIHRoZSBy
ZW1haW5kZXIgb2YgdGhlIGxpbmUsIHRoZW4KICAgICAgICAgb3V0cHV0IHNp
emUgc3BhY2VzOyBlbHNlCiAgICAgICoqIGluY3JlYXNlIHRoZSBjdXJyZW50
IGluZGVudGF0aW9uIGJ5IHRoZSBibG9jayBvZmZzZXQ7CiAgICAgICAgIGZ1
cnRoZXIgaW5kZW50IGV2ZXJ5IGl0ZW0gb2YgdGhlIGJsb2NrIGJ5IG9mZnNl
dCwgYW5kIGFkZAogICAgICAgICBvbmUgbmV3bGluZSBhdCBldmVyeSBhZGRf
YnJlYWsgaW4gdGhlIGJsb2NrLgogICAqIFdoZW4gdGhlIGN1cnJlbnQgYmxv
Y2sgc3R5bGUgaXMgSU5DT05TSVNURU5UOgogICAgICAqKiBpZiB0aGUgbmV4
dCBjb21wb25lbnQgb2YgdGhlIGJsb2NrIGZpdHMgb24gdGhlIHJlbWFpbmRl
ciBvZgogICAgICAgICB0aGUgbGluZSwgdGhlbiBvdXRwdXQgc2l6ZSBzcGFj
ZXM7IGVsc2UKICAgICAgKiogaXNzdWUgYSBuZXdsaW5lIGFuZCBpbmRlbnQg
dG8gdGhlIGN1cnJlbnQgaW5kZW50YXRpb24gbGV2ZWwKICAgICAgICAgcGx1
cyB0aGUgYmxvY2sgb2Zmc2V0IHBsdXMgdGhlIG9mZnNldC4KCiAgIFthZGRf
bmV3bGluZSBwcHN0cm1dIGlzc3VlcyBhIG5ld2xpbmUuCgogICBbYWRkX3N0
cmluZyBwcHN0cm0gc3RyXSBvdXRwdXRzIHRoZSBzdHJpbmcgc3RyIHRvIHRo
ZSBwcHN0cmVhbS4KCiAgIFtiZWdpbl9ibG9jayBwcHN0cm0gc3R5bGUgYmxv
Y2tvZmZzZXRdIGJlZ2lucyBhIG5ldyBibG9jayBhbmQKICAgbGV2ZWwgb2Yg
aW5kZW50YXRpb24sIHdpdGggdGhlIGdpdmVuIHN0eWxlIGFuZCBibG9jayBv
ZmZzZXQuCgogICBbZW5kX2Jsb2NrIHBwc3RybV0gY2xvc2VzIHRoZSBjdXJy
ZW50IGJsb2NrLiAgCgogICBbY2xlYXJfcHBzdHJlYW0gcHBzdHJtXSByZXN0
YXJ0cyB0aGUgc3RyZWFtLCB3aXRob3V0IGFmZmVjdGluZyB0aGUKICAgdW5k
ZXJseWluZyBjb25zdW1lci4KCiAgIFtmbHVzaF9wcHN0cmVhbSBwcHN0cm1d
IGV4ZWN1dGVzIGFueSByZW1haW5pbmcgY29tbWFuZHMgaW4gdGhlCiAgIHBw
c3RyZWFtICh0aGF0IGlzLCBmbHVzaGVzIGN1cnJlbnRseSBhY2N1bXVsYXRl
ZCBvdXRwdXQgdG8gdGhlCiAgIGNvbnN1bWVyIGFzc29jaWF0ZWQgd2l0aCBw
cHN0cm0pOyBleGVjdXRlcyB0aGUgZmx1c2ggZnVuY3Rpb24KICAgYXNzb2Np
YXRlZCB3aXRoIHRoZSBjb25zdW1lcjsgYW5kIGNhbGxzIGNsZWFyX3Bwc3Ry
ZWFtLgoKICAgW3dpdGhfcHAgY29uc3VtZXIgZl0gbWFrZXMgYSBuZXcgcHBz
dHJlYW0gZnJvbSB0aGUgY29uc3VtZXIgYW5kCiAgIGFwcGxpZXMgZiAod2hp
Y2ggY2FuIGJlIHRob3VnaHQgb2YgYXMgYSBwcm9kdWNlcikgdG8gdGhhdAog
ICBwcHN0cmVhbSwgdGhlbiBmbHVzaGVkIHRoZSBwcHN0cmVhbSBhbmQgcmV0
dXJucyB0aGUgdmFsdWUgb2YgZi4KCiAgIFtwcF90b19zdHJpbmcgbGluZXdp
ZHRoIHByaW50aXQgeF0gY29uc3RydWN0cyBhIG5ldyBwcHN0cmVhbQogICBw
cHN0cm0gd2hvc2UgY29uc3VtZXIgYWNjdW11bGF0ZXMgdGhlIG91dHB1dCBp
biBhIHN0cmluZyBzLiAgVGhlbgogICBldmFsdWF0ZXMgKHByaW50aXQgcHBz
dHJtIHgpIGFuZCBmaW5hbGx5IHJldHVybnMgdGhlIHN0cmluZyBzLgoKICAg
CiAgIEV4YW1wbGUgMTogQSBzaW1wbGUgcHJldHR5cHJpbnRlciBmb3IgQm9v
bGVhbnM6CgogICAgICAgbG9hZCAiUFAiOwogICAgICAgZnVuIHBwYm9vbCBw
cHMgZCA9IAogICAgICAgICAgIGxldCBvcGVuIFBQCiAgICAgICAgICAgaW4K
ICAgICAgICAgICAgICAgYmVnaW5fYmxvY2sgcHBzIElOQ09OU0lTVEVOVCA2
OyAKICAgICAgICAgICAgICAgYWRkX3N0cmluZyBwcHMgKGlmIGQgdGhlbiAi
cmlnaHQiIGVsc2UgIndyb25nIik7CiAgICAgICAgICAgICAgIGVuZF9ibG9j
ayBwcHMKICAgICAgICAgICBlbmQ7CgogICBOb3cgb25lIG1heSBkZWZpbmUg
YSBwcHN0cmVhbSB0byBwcmludCB0bywgYW5kIGV4ZXJjaXNlIGl0OgoKICAg
ICAgIHZhbCBwcHN0cm0gPSBQUC5ta19wcHN0cmVhbSB7Y29uc3VtZXIgID0g
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZuIHMgPT4g
VGV4dElPLm91dHB1dChUZXh0SU8uc3RkT3V0LCBzKSwgCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmV3aWR0aCA9IDcyLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbHVzaCAgICAgPSAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZuICgpID0+
IFRleHRJTy5mbHVzaE91dCBUZXh0SU8uc3RkT3V0fTsKCiAgICAgICBmdW4g
cHBiIGIgPSAocHBib29sIHBwc3RybSBiOyBQUC5mbHVzaF9wcHN0cmVhbSBw
cHN0cm0pOwoKICAgICAgIC0gcHBiIGZhbHNlOwogICAgICAgd3Jvbmc+IHZh
bCBpdCA9ICgpIDogdW5pdCAgIAoKICAgVGhlIHByZXR0eXByaW50ZXIgbWF5
IGFsc28gYmUgaW5zdGFsbGVkIGluIHRoZSB0b3BsZXZlbCBzeXN0ZW07CiAg
IHRoZW4gaXQgd2lsbCBiZSB1c2VkIHRvIHByaW50IGFsbCBleHByZXNzaW9u
cyBvZiB0eXBlIGJvb2wKICAgc3Vic2VxdWVudGx5IGNvbXB1dGVkOgoKICAg
ICAgIC0gaW5zdGFsbFBQIHBwYm9vbDsKICAgICAgID4gdmFsIGl0ID0gKCkg
OiB1bml0CiAgICAgICAtIDE9MDsKICAgICAgID4gdmFsIGl0ID0gd3Jvbmcg
OiBib29sCiAgICAgICAtIDE9MTsKICAgICAgID4gdmFsIGl0ID0gcmlnaHQg
OiBib29sCgogICBTZWUgbGlicmFyeSBNZXRhIGZvciBhIGRlc2NyaXB0aW9u
IG9mIGluc3RhbGxQUC4KCgogICBFeGFtcGxlIDI6IFByZXR0eXByaW50aW5n
IHNpbXBsZSBleHByZXNzaW9ucyAoZXhhbXBsZXMvcHJldHR5L3BwZXhwci5z
bWwpOgoKICAgICAgIGRhdGF0eXBlIGV4cHIgPSAKICAgICAgICAgICBDc3Qg
b2YgaW50IAogICAgICAgICB8IE5lZyBvZiBleHByCiAgICAgICAgIHwgUGx1
cyBvZiBleHByICogZXhwcgoKICAgICAgIGZ1biBwcGV4cHIgcHBzIGUwID0g
CiAgICAgICAgICAgbGV0IG9wZW4gUFAKICAgICAgICAgICAgICAgZnVuIHBw
ZSAoQ3N0IGkpICAgICAgICA9IGFkZF9zdHJpbmcgcHBzIChJbnQudG9TdHJp
bmcgaSkKICAgICAgICAgICAgICAgICB8IHBwZSAoTmVnIGUpICAgICAgICA9
IChhZGRfc3RyaW5nIHBwcyAifiI7IHBwZSBlKQogICAgICAgICAgICAgICAg
IHwgcHBlIChQbHVzKGUxLCBlMikpID0gKGJlZ2luX2Jsb2NrIHBwcyBDT05T
SVNURU5UIDA7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYWRkX3N0cmluZyBwcHMgIigiOwogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHBwZSBlMTsgCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkX3N0cmluZyBwcHMgIiAr
ICI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
YWRkX2JyZWFrIHBwcyAoMCwgMSk7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcHBlIGUyOyAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBhZGRfc3RyaW5nIHBwcyAiKSI7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2Js
b2NrIHBwcykKICAgICAgICAgICBpbgogICAgICAgICAgICAgICBiZWdpbl9i
bG9jayBwcHMgSU5DT05TSVNURU5UIDA7IAogICAgICAgICAgICAgICBwcGUg
ZTA7CiAgICAgICAgICAgICAgIGVuZF9ibG9jayBwcHMKICAgICAgICAgICBl
bmQKCiAgICAgICB2YWwgXyA9IGluc3RhbGxQUCBwcGV4cHI7CgogICAgICAg
KCogU29tZSBleGFtcGxlIHZhbHVlczogKikKCiAgICAgICB2YWwgZTEgPSBD
c3QgMTsKICAgICAgIHZhbCBlMiA9IENzdCAyOwogICAgICAgdmFsIGUzID0g
UGx1cyhlMSwgTmVnIGUyKTsKICAgICAgIHZhbCBlNCA9IFBsdXMoTmVnIGUz
LCBlMyk7CiAgICAgICB2YWwgZTUgPSBQbHVzKE5lZyBlNCwgZTQpOwogICAg
ICAgdmFsIGU2ID0gUGx1cyhlNSwgZTUpOwogICAgICAgdmFsIGU3ID0gUGx1
cyhlNiwgZTYpOwogICAgICAgdmFsIGU4ID0gCiAgICAgICAgICAgUGx1cyhl
MywgUGx1cyhlMywgUGx1cyhlMywgUGx1cyhlMywgUGx1cyhlMywgUGx1cyhl
MywgZTcpKSkpKSk7CiopCigqI2xpbmUgMC4wICIkSE9NRS9kZXYvc21sL2Jh
c2ljL3NyYy9QUC5zbWwiKikKKCogUFAgLS0gT3BwZW4tc3R5bGUgcHJldHR5
cHJpbnRlcnMuCiAqCiAqIE1vZGlmaWVkIGZvciBNaWx0b24gTUwgZnJvbSBT
TUwvTkogTGlicmFyeSB2ZXJzaW9uIDAuMgogKgogKiBDT1BZUklHSFQgKGMp
IDE5OTIgYnkgQVQmVCBCZWxsIExhYm9yYXRvcmllcy4KICogU2VlIGZpbGUg
bW9zbWwvY29weXJnaHQvY29weXJnaHQuYXR0IGZvciBkZXRhaWxzLgogKikK
CigqIHRoZSBmdW5jdGlvbnMgYW5kIGRhdGEgZm9yIGFjdHVhbGx5IGRvaW5n
IHByaW50aW5nLiAqKQoKc3RydWN0dXJlIFBQIDo+IFBQID0Kc3RydWN0Cgpv
cGVuIEFycmF5IAppbmZpeCA5IHN1YgoKKCogdGhlIHF1ZXVlIGxpYnJhcnks
IGZvcm1lcmx5IGluIHVuaXQgUHBxdWV1ZSAqKQoKZGF0YXR5cGUgUWVuZCA9
IFFiYWNrIHwgUWZyb250CgpleGNlcHRpb24gUVVFVUVfRlVMTApleGNlcHRp
b24gUVVFVUVfRU1QVFkKZXhjZXB0aW9uIFJFUVVFU1RFRF9RVUVVRV9TSVpF
X1RPT19TTUFMTAoKbG9jYWwgCiAgICBmdW4gKysgaSBuID0gKGkgKyAxKSBt
b2QgbgogICAgZnVuIC0tIGkgbiA9IChpIC0gMSkgbW9kIG4KaW4KCmFic3R5
cGUgJ2EgcXVldWUgPSBRVUVVRSBvZiB7ZWxlbXM6ICdhIGFycmF5LCAoKiB0
aGUgY29udGVudHMgKikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBm
cm9udDogaW50IHJlZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBi
YWNrOiBpbnQgcmVmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNp
emU6IGludH0gICgqIGZpeGVkIHNpemUgb2YgZWxlbWVudCBhcnJheSAqKQp3
aXRoCgogIGZ1biBpc19lbXB0eSAoUVVFVUV7ZnJvbnQ9cmVmIH4xLCBiYWNr
PXJlZiB+MSwuLi59KSA9IHRydWUKICAgIHwgaXNfZW1wdHkgXyA9IGZhbHNl
CgogIGZ1biBta19xdWV1ZSBuIGluaXRfdmFsID0KICAgICAgaWYgKG4gPCAy
KQogICAgICB0aGVuIHJhaXNlIFJFUVVFU1RFRF9RVUVVRV9TSVpFX1RPT19T
TUFMTAogICAgICBlbHNlIFFVRVVFe2VsZW1zPWFycmF5KG4sIGluaXRfdmFs
KSwgZnJvbnQ9cmVmIH4xLCBiYWNrPXJlZiB+MSwgc2l6ZT1ufQoKICBmdW4g
Y2xlYXJfcXVldWUgKFFVRVVFe2Zyb250LGJhY2ssLi4ufSkgPSAoZnJvbnQg
Oj0gfjE7IGJhY2sgOj0gfjEpCgogIGZ1biBxdWV1ZV9hdCBRZnJvbnQgKFFV
RVVFe2VsZW1zLGZyb250LC4uLn0pID0gZWxlbXMgc3ViICFmcm9udAogICAg
fCBxdWV1ZV9hdCBRYmFjayAoUVVFVUV7ZWxlbXMsYmFjaywuLi59KSA9IGVs
ZW1zIHN1YiAhYmFjawoKICBmdW4gZW5fcXVldWUgUWZyb250IGl0ZW0gKFEg
YXMgUVVFVUV7ZWxlbXMsZnJvbnQsYmFjayxzaXplfSkgPQogICAgICAgIGlm
IChpc19lbXB0eSBRKQogICAgICAgIHRoZW4gKGZyb250IDo9IDA7IGJhY2sg
Oj0gMDsKICAgICAgICAgICAgICB1cGRhdGUoZWxlbXMsMCxpdGVtKSkKICAg
ICAgICBlbHNlIGxldCB2YWwgaSA9IC0tKCFmcm9udCkgc2l6ZQogICAgICAg
ICAgICAgaW4gIGlmIChpID0gIWJhY2spCiAgICAgICAgICAgICAgICAgdGhl
biByYWlzZSBRVUVVRV9GVUxMCiAgICAgICAgICAgICAgICAgZWxzZSAodXBk
YXRlKGVsZW1zLGksaXRlbSk7IGZyb250IDo9IGkpCiAgICAgICAgICAgICBl
bmQKICAgIHwgZW5fcXVldWUgUWJhY2sgaXRlbSAoUSBhcyBRVUVVRXtlbGVt
cyxmcm9udCxiYWNrLHNpemV9KSA9CiAgICAgICAgaWYgKGlzX2VtcHR5IFEp
CiAgICAgICAgdGhlbiAoZnJvbnQgOj0gMDsgYmFjayA6PSAwOwogICAgICAg
ICAgICAgIHVwZGF0ZShlbGVtcywwLGl0ZW0pKQogICAgICAgIGVsc2UgbGV0
IHZhbCBpID0gKysoIWJhY2spIHNpemUKICAgICAgICAgICAgIGluICBpZiAo
aSA9ICFmcm9udCkKICAgICAgICAgICAgICAgICB0aGVuIHJhaXNlIFFVRVVF
X0ZVTEwKICAgICAgICAgICAgICAgICBlbHNlICh1cGRhdGUoZWxlbXMsaSxp
dGVtKTsgYmFjayA6PSBpKQogICAgICAgICAgICAgZW5kCgogIGZ1biBkZV9x
dWV1ZSBRZnJvbnQgKFEgYXMgUVVFVUV7ZnJvbnQsYmFjayxzaXplLC4uLn0p
ID0KICAgICAgICBpZiAoIWZyb250ID0gIWJhY2spICgqIHVuaXRhcnkgcXVl
dWUgKikKICAgICAgICB0aGVuIGNsZWFyX3F1ZXVlIFEKICAgICAgICBlbHNl
IGZyb250IDo9ICsrKCFmcm9udCkgc2l6ZQogICAgfCBkZV9xdWV1ZSBRYmFj
ayAoUSBhcyBRVUVVRXtmcm9udCxiYWNrLHNpemUsLi4ufSkgPQogICAgICAg
IGlmICghZnJvbnQgPSAhYmFjaykKICAgICAgICB0aGVuIGNsZWFyX3F1ZXVl
IFEKICAgICAgICBlbHNlIGJhY2sgOj0gLS0oIWJhY2spIHNpemUKCmVuZCAo
KiBhYnN0eXBlIHF1ZXVlICopCmVuZCAoKiBsb2NhbCAgICopCgoKdmFsIG1h
Z2ljOiAnYSAtPiAnYSA9IGZuIHggPT4geAoKKCogZXhjZXB0aW9uIFBQX0ZB
SUwgb2Ygc3RyaW5nICopCgpkYXRhdHlwZSBicmVha19zdHlsZSA9IENPTlNJ
U1RFTlQgfCBJTkNPTlNJU1RFTlQKCmRhdGF0eXBlIGJyZWFrX2luZm8KICA9
IEZJVFMKICB8IFBBQ0tfT05UT19MSU5FIG9mIGludAogIHwgT05FX1BFUl9M
SU5FIG9mIGludAoKKCogU29tZSBnbG9iYWwgdmFsdWVzICopCnZhbCBJTkZJ
TklUWSA9IDk5OTk5OQoKYWJzdHlwZSBpbmRlbnRfc3RhY2sgPSBJc3RhY2sg
b2YgYnJlYWtfaW5mbyBsaXN0IHJlZgp3aXRoCiAgZnVuIG1rX2luZGVudF9z
dGFjaygpID0gSXN0YWNrIChyZWYoW106YnJlYWtfaW5mbyBsaXN0KSkKICBm
dW4gY2xlYXJfaW5kZW50X3N0YWNrIChJc3RhY2sgc3RrKSA9IChzdGsgOj0g
KFtdOmJyZWFrX2luZm8gbGlzdCkpCiAgZnVuIHRvcCAoSXN0YWNrIHN0aykg
PQogICAgICBjYXNlICFzdGsKICAgICAgICBvZiBuaWwgPT4gcmFpc2UgRmFp
bCAiUFAtZXJyb3I6IHRvcDogYmFkbHkgZm9ybWVkIGJsb2NrIgoJIHwgeDo6
XyA9PiB4CiAgZnVuIHB1c2ggKHgsKElzdGFjayBzdGspKSA9IHN0ayA6PSB4
OjooIXN0aykKICBmdW4gcG9wIChJc3RhY2sgc3RrKSA9CiAgICAgIGNhc2Ug
IXN0awogICAgICAgIG9mIG5pbCA9PiByYWlzZSBGYWlsICJQUC1lcnJvcjog
cG9wOiBiYWRseSBmb3JtZWQgYmxvY2siCgkgfCBfOjpyZXN0ID0+IHN0ayA6
PSByZXN0CmVuZAoKKCogVGhlIGRlbGltX3N0YWNrIGlzIHVzZWQgdG8gY29t
cHV0ZSB0aGUgc2l6ZSBvZiBibG9ja3MuIEl0IGlzCiAgIGEgc3RhY2sgb2Yg
aW5kaWNlcyBpbnRvIHRoZSB0b2tlbiBidWZmZXIuIFRoZSBpbmRpY2VzIG9u
bHkgcG9pbnQgdG8KICAgQkJzLCBFcywgYW5kIEJScy4gV2UgcHVzaCBCQnMg
YW5kIEVzIG9udG8gdGhlIHN0YWNrIHVudGlsIGEgQlIKICAgaXMgZW5jb3Vu
dGVyZWQuIFRoZW4gd2UgY29tcHV0ZSBzaXplcyBhbmQgcG9wLiBXaGVuIHdl
IGVuY291bnRlcgogICBhIEJSIGluIHRoZSBtaWRkbGUgb2YgYSBibG9jaywg
d2UgY29tcHV0ZSB0aGUgRGlzdGFuY2VfdG9fbmV4dF9icmVhawogICBvZiB0
aGUgcHJldmlvdXMgQlIgaW4gdGhlIGJsb2NrLCBpZiB0aGVyZSB3YXMgb25l
LgoKICAgV2UgbmVlZCB0byBiZSBhYmxlIHRvIGRlbGV0ZSBmcm9tIHRoZSBi
b3R0b20gb2YgdGhlIGRlbGltX3N0YWNrLCBzbwogICB3ZSB1c2UgYSBxdWV1
ZSwgdHJlYXRlZCB3aXRoIGEgc3RhY2sgZGlzY2lwbGluZSwgaS5lLiwgd2Ug
b25seSBhZGQKICAgaXRlbXMgYXQgdGhlIGhlYWQgb2YgdGhlIHF1ZXVlLCBi
dXQgY2FuIGRlbGV0ZSBmcm9tIHRoZSBmcm9udCBvcgogICBiYWNrIG9mIHRo
ZSBxdWV1ZS4KKikKYWJzdHlwZSBkZWxpbV9zdGFjayA9IERzdGFjayBvZiBp
bnQgcXVldWUKd2l0aAogIGZ1biBuZXdfZGVsaW1fc3RhY2sgaSA9IERzdGFj
ayhta19xdWV1ZSBpIH4xKQogIGZ1biByZXNldF9kZWxpbV9zdGFjayAoRHN0
YWNrIHEpID0gY2xlYXJfcXVldWUgcQoKICBmdW4gcG9wX2RlbGltX3N0YWNr
IChEc3RhY2sgZCkgPSBkZV9xdWV1ZSBRZnJvbnQgZAogIGZ1biBwb3BfYm90
dG9tX2RlbGltX3N0YWNrIChEc3RhY2sgZCkgPSBkZV9xdWV1ZSBRYmFjayBk
CgogIGZ1biBwdXNoX2RlbGltX3N0YWNrKGksRHN0YWNrIGQpID0gZW5fcXVl
dWUgUWZyb250IGkgZAogIGZ1biB0b3BfZGVsaW1fc3RhY2sgKERzdGFjayBk
KSA9IHF1ZXVlX2F0IFFmcm9udCBkCiAgZnVuIGJvdHRvbV9kZWxpbV9zdGFj
ayAoRHN0YWNrIGQpID0gcXVldWVfYXQgUWJhY2sgZAogIGZ1biBkZWxpbV9z
dGFja19pc19lbXB0eSAoRHN0YWNrIGQpID0gaXNfZW1wdHkgZAplbmQKCgp0
eXBlIGJsb2NrX2luZm8gPSB7IEJsb2NrX3NpemUgOiBpbnQgcmVmLAogICAg
ICAgICAgICAgICAgICAgIEJsb2NrX29mZnNldCA6IGludCwKICAgICAgICAg
ICAgICAgICAgICBIb3dfdG9faW5kZW50IDogYnJlYWtfc3R5bGUgfQoKCigq
IERpc3RhbmNlX3RvX25leHRfYnJlYWsgaW5jbHVkZXMgTnVtYmVyX29mX2Js
YW5rcy4gQnJlYWtfb2Zmc2V0IGlzCiAgIGEgbG9jYWwgb2Zmc2V0IGZvciB0
aGUgYnJlYWsuIEJCIHJlcHJlc2VudHMgYSBzZXF1ZW5jZSBvZiBjb250aWd1
b3VzCiAgIEJlZ2lucy4gRSByZXByZXNlbnRzIGEgc2VxdWVuY2Ugb2YgY29u
dGlndW91cyBFbmRzLgoqKQpkYXRhdHlwZSBwcF90b2tlbgogID0gUyBvZiAg
e1N0cmluZyA6IHN0cmluZywgTGVuZ3RoIDogaW50fQogIHwgQkIgb2Yge1Bi
bG9ja3MgOiBibG9ja19pbmZvIGxpc3QgcmVmLCAgICgqIFByb2Nlc3NlZCAg
ICopCiAgICAgICAgICAgVWJsb2NrcyA6IGJsb2NrX2luZm8gbGlzdCByZWZ9
ICAoKiBVbnByb2Nlc3NlZCAqKQogIHwgRSBvZiAge1BlbmQgOiBpbnQgcmVm
LCBVZW5kIDogaW50IHJlZn0KICB8IEJSIG9mIHtEaXN0YW5jZV90b19uZXh0
X2JyZWFrIDogaW50IHJlZiwKICAgICAgICAgICBOdW1iZXJfb2ZfYmxhbmtz
IDogaW50LAogICAgICAgICAgIEJyZWFrX29mZnNldCA6IGludH0KCgooKiBU
aGUgaW5pdGlhbCB2YWx1ZXMgaW4gdGhlIHRva2VuIGJ1ZmZlciAqKQp2YWwg
aW5pdGlhbF90b2tlbl92YWx1ZSA9IFN7U3RyaW5nID0gIiIsIExlbmd0aCA9
IDB9CgooKiB0eXBlIHBwc3RyZWFtID0gR2VuZXJhbC5wcHN0cmVhbTsgKikK
ZGF0YXR5cGUgcHBzdHJlYW1fID0KICBQUFMgb2YKICAgICB7Y29uc3VtZXIg
OiBzdHJpbmcgLT4gdW5pdCwKICAgICAgbGluZXdpZHRoIDogaW50LAogICAg
ICBmbHVzaCA6IHVuaXQgLT4gdW5pdCwKICAgICAgdGhlX3Rva2VuX2J1ZmZl
ciA6IHBwX3Rva2VuIGFycmF5LAogICAgICB0aGVfZGVsaW1fc3RhY2sgOiBk
ZWxpbV9zdGFjaywKICAgICAgdGhlX2luZGVudF9zdGFjayA6IGluZGVudF9z
dGFjaywKICAgICAgKysgOiBpbnQgcmVmIC0+IHVuaXQsICAgICgqIGluY3Jl
bWVudCBjaXJjdWxhciBidWZmZXIgaW5kZXggKikKICAgICAgc3BhY2VfbGVm
dCA6IGludCByZWYsICAgICgqIHJlbWFpbmluZyBjb2x1bW5zIG9uIHBhZ2Ug
KikKICAgICAgbGVmdF9pbmRleCA6IGludCByZWYsICAgICgqIGluc2VydGlv
biBpbmRleCAqKQogICAgICByaWdodF9pbmRleCA6IGludCByZWYsICAgKCog
b3V0cHV0IGluZGV4ICopCiAgICAgIGxlZnRfc3VtIDogaW50IHJlZiwgICAg
ICAoKiBzaXplIG9mIHN0cmluZ3MgYW5kIHNwYWNlcyBpbnNlcnRlZCAqKQog
ICAgICByaWdodF9zdW0gOiBpbnQgcmVmfSAgICAgKCogc2l6ZSBvZiBzdHJp
bmdzIGFuZCBzcGFjZXMgcHJpbnRlZCAqKQoKdHlwZSBwcHN0cmVhbSA9IHBw
c3RyZWFtXwoKdHlwZSBwcGNvbnN1bWVyID0ge2NvbnN1bWVyIDogc3RyaW5n
IC0+IHVuaXQsCgkJICAgbGluZXdpZHRoIDogaW50LAoJCSAgIGZsdXNoIDog
dW5pdCAtPiB1bml0fQoKZnVuIG1rX3Bwc3RyZWFtIHtjb25zdW1lcixsaW5l
d2lkdGgsZmx1c2h9ID0KICAgIGlmIChsaW5ld2lkdGg8NSkKICAgIHRoZW4g
cmFpc2UgRmFpbCAiUFAtZXJyb3I6IGxpbmV3aWR0aCB0b29fc21hbGwiCiAg
ICBlbHNlIGxldCB2YWwgYnVmX3NpemUgPSAzKmxpbmV3aWR0aAogICAgICAg
ICAgaW4gbWFnaWMoCiAgICAgICAgICAgICBQUFN7Y29uc3VtZXIgPSBjb25z
dW1lciwKCQkgbGluZXdpZHRoID0gbGluZXdpZHRoLAoJCSBmbHVzaCA9IGZs
dXNoLAoJCSB0aGVfdG9rZW5fYnVmZmVyID0gYXJyYXkoYnVmX3NpemUsIGlu
aXRpYWxfdG9rZW5fdmFsdWUpLAoJCSB0aGVfZGVsaW1fc3RhY2sgPSBuZXdf
ZGVsaW1fc3RhY2sgYnVmX3NpemUsCgkJIHRoZV9pbmRlbnRfc3RhY2sgPSBt
a19pbmRlbnRfc3RhY2sgKCksCgkJICsrID0gZm4gaSA9PiBpIDo9ICgoIWkg
KyAxKSBtb2QgYnVmX3NpemUpLAoJCSBzcGFjZV9sZWZ0ID0gcmVmIGxpbmV3
aWR0aCwKCQkgbGVmdF9pbmRleCA9IHJlZiAwLCByaWdodF9pbmRleCA9IHJl
ZiAwLAoJCSBsZWZ0X3N1bSA9IHJlZiAwLCByaWdodF9zdW0gPSByZWYgMH0K
ICAgICAgICAgICAgICAgICApIDogcHBzdHJlYW0KCSBlbmQKCmZ1biBkZXN0
X3Bwc3RyZWFtKHBwcyA6IHBwc3RyZWFtKSA9CiAgbGV0IHZhbCBQUFN7Y29u
c3VtZXIsbGluZXdpZHRoLGZsdXNoLCAuLi59ID0gbWFnaWMgcHBzCiAgaW4g
e2NvbnN1bWVyPWNvbnN1bWVyLGxpbmV3aWR0aD1saW5ld2lkdGgsZmx1c2g9
Zmx1c2h9IGVuZAoKbG9jYWwKICB2YWwgc3BhY2UgPSAiICIKICBmdW4gbWtf
c3BhY2UgKDAscykgPSBTdHJpbmcuY29uY2F0IHMKICAgIHwgbWtfc3BhY2Ug
KG4scykgPSBta19zcGFjZSgobi0xKSwgKHNwYWNlOjpzKSkKICB2YWwgc3Bh
Y2VfdGFibGUgPSBWZWN0b3IudGFidWxhdGUoMTAwLCBmbiBpID0+IG1rX3Nw
YWNlKGksW10pKQogIGZ1biBuc3BhY2VzIG4gPSBWZWN0b3Iuc3ViKHNwYWNl
X3RhYmxlLCBuKQogICAgICBoYW5kbGUgR2VuZXJhbC5TdWJzY3JpcHQgPT4K
CWlmIG4gPCAwCgl0aGVuICIiCgllbHNlIGxldCB2YWwgbjIgPSBuIGRpdiAy
CgkJIHZhbCBuMl9zcGFjZXMgPSBuc3BhY2VzIG4yCgkJIHZhbCBleHRyYSA9
IGlmIChuID0gKDIqbjIpKSB0aGVuICIiIGVsc2Ugc3BhY2UKICAgICAgICAg
ICAgICBpbiBTdHJpbmcuY29uY2F0IFtuMl9zcGFjZXMsIG4yX3NwYWNlcywg
ZXh0cmFdCgkgICAgIGVuZAppbgogIGZ1biBjcl9pbmRlbnQgKG9mbiwgaSkg
PSBvZm4gKCJcbiJeKG5zcGFjZXMgaSkpCiAgZnVuIGluZGVudCAob2ZuLGkp
ID0gb2ZuIChuc3BhY2VzIGkpCmVuZAoKCigqIFByaW50IGEgdGhlIGZpcnN0
IG1lbWJlciBvZiBhIGNvbnRpZ3VvdXMgc2VxdWVuY2Ugb2YgQmVnaW5zLiBJ
ZiB0aGVyZQogICBhcmUgInByb2Nlc3NlZCIgQmVnaW5zLCB0aGVuIHRha2Ug
dGhlIGZpcnN0IG9mZiB0aGUgbGlzdC4gSWYgdGhlcmUgYXJlCiAgIG5vIHBy
b2Nlc3NlZCBCZWdpbnMsIHRha2UgdGhlIGxhc3QgbWVtYmVyIG9mZiB0aGUg
InVucHJvY2Vzc2VkIiBsaXN0LgogICBUaGlzIHdvcmtzIGJlY2F1c2UgdGhl
IHVucHJvY2Vzc2VkIGxpc3QgaXMgdHJlYXRlZCBhcyBhIHN0YWNrLCB0aGUK
ICAgcHJvY2Vzc2VkIGxpc3QgYXMgYSBGSUZPIHF1ZXVlLiBIb3cgY2FuIGFu
IGl0ZW0gb24gdGhlIHVucHJvY2Vzc2VkIGxpc3QKICAgYmUgcHJpbnRhYmxl
PyBCZWNhdXNlIG9mIHdoYXQgZ29lcyBvbiBpbiBhZGRfc3RyaW5nLiBTZWUg
dGhlcmUgZm9yIGRldGFpbHMuCiopCgpmdW4gcHJpbnRfQkIgKF8se1BibG9j
a3MgPSByZWYgW10sIFVibG9ja3MgPSByZWYgW119KSA9CiAgICAgICAgICAg
ICByYWlzZSBGYWlsICJQUC1lcnJvcjogcHJpbnRfQkIiCiAgfCBwcmludF9C
QiAoUFBTe3RoZV9pbmRlbnRfc3RhY2ssbGluZXdpZHRoLHNwYWNlX2xlZnQ9
cmVmIHNwX2xlZnQsLi4ufSwKICAgICAgICAgICAgIHtQYmxvY2tzIGFzIHJl
Zih7SG93X3RvX2luZGVudD1DT05TSVNURU5ULEJsb2NrX3NpemUsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEJsb2NrX29mZnNldH06OnJzdCks
CiAgICAgICAgICAgICAgVWJsb2Nrcz1yZWZbXX0pID0KICAgICAgIChwdXNo
ICgoaWYgKCFCbG9ja19zaXplID4gc3BfbGVmdCkKICAgICAgICAgICAgICAg
dGhlbiBPTkVfUEVSX0xJTkUgKGxpbmV3aWR0aCAtIChzcF9sZWZ0IC0gQmxv
Y2tfb2Zmc2V0KSkKICAgICAgICAgICAgICAgZWxzZSBGSVRTKSwKCSAgICAg
IHRoZV9pbmRlbnRfc3RhY2spOwogICAgICAgIFBibG9ja3MgOj0gcnN0KQog
IHwgcHJpbnRfQkIoUFBTe3RoZV9pbmRlbnRfc3RhY2ssbGluZXdpZHRoLHNw
YWNlX2xlZnQ9cmVmIHNwX2xlZnQsLi4ufSwKICAgICAgICAgICAgIHtQYmxv
Y2tzIGFzIHJlZih7QmxvY2tfc2l6ZSxCbG9ja19vZmZzZXQsLi4ufTo6cnN0
KSxVYmxvY2tzPXJlZltdfSkgPQogICAgICAgKHB1c2ggKChpZiAoIUJsb2Nr
X3NpemUgPiBzcF9sZWZ0KQogICAgICAgICAgICAgICB0aGVuIFBBQ0tfT05U
T19MSU5FIChsaW5ld2lkdGggLSAoc3BfbGVmdCAtIEJsb2NrX29mZnNldCkp
CiAgICAgICAgICAgICAgIGVsc2UgRklUUyksCgkgICAgICB0aGVfaW5kZW50
X3N0YWNrKTsKICAgICAgICBQYmxvY2tzIDo9IHJzdCkKICB8IHByaW50X0JC
IChQUFN7dGhlX2luZGVudF9zdGFjaywgbGluZXdpZHRoLCBzcGFjZV9sZWZ0
PXJlZiBzcF9sZWZ0LC4uLn0sCiAgICAgICAgICAgICAge1VibG9ja3MsLi4u
fSkgPQogICAgICBsZXQgZnVuIHByX2VuZF9VYmxvY2sgW3tIb3dfdG9faW5k
ZW50PUNPTlNJU1RFTlQsQmxvY2tfc2l6ZSxCbG9ja19vZmZzZXR9XSBsID0K
CQkocHVzaCAoKGlmICghQmxvY2tfc2l6ZSA+IHNwX2xlZnQpCgkJCXRoZW4g
T05FX1BFUl9MSU5FIChsaW5ld2lkdGggLSAoc3BfbGVmdCAtIEJsb2NrX29m
ZnNldCkpCgkJCWVsc2UgRklUUyksCgkJICAgICAgIHRoZV9pbmRlbnRfc3Rh
Y2spOwogICAgICAgICAgICAgICAgIExpc3QucmV2IGwpCgkgICAgfCBwcl9l
bmRfVWJsb2NrIFt7QmxvY2tfc2l6ZSxCbG9ja19vZmZzZXQsLi4ufV0gbCA9
CgkJKHB1c2ggKChpZiAoIUJsb2NrX3NpemUgPiBzcF9sZWZ0KQoJCQl0aGVu
IFBBQ0tfT05UT19MSU5FIChsaW5ld2lkdGggLSAoc3BfbGVmdCAtIEJsb2Nr
X29mZnNldCkpCgkJCWVsc2UgRklUUyksCgkJICAgICAgIHRoZV9pbmRlbnRf
c3RhY2spOwogICAgICAgICAgICAgICAgIExpc3QucmV2IGwpCgkgICAgfCBw
cl9lbmRfVWJsb2NrIChhOjpyc3QpIGwgPSBwcl9lbmRfVWJsb2NrIHJzdCAo
YTo6bCkKICAgICAgICAgICAgfCBwcl9lbmRfVWJsb2NrIF8gXyA9CiAgICAg
ICAgICAgICAgICByYWlzZSBGYWlsICJQUC1lcnJvcjogcHJpbnRfQkI6IGlu
dGVybmFsIGVycm9yIgogICAgICAgaW4gVWJsb2NrcyA6PSBwcl9lbmRfVWJs
b2NrKCFVYmxvY2tzKSBbXQogICAgICBlbmQKCgooKiBVZW5kIHNob3VsZCBh
bHdheXMgYmUgMCB3aGVuIHByaW50X0UgaXMgY2FsbGVkLiAqKQpmdW4gcHJp
bnRfRSAoXyx7UGVuZCA9IHJlZiAwLCBVZW5kID0gcmVmIDB9KSA9CiAgICAg
IHJhaXNlIEZhaWwgIlBQLWVycm9yOiBwcmludF9FIgogIHwgcHJpbnRfRSAo
aXN0YWNrLHtQZW5kLCAuLi59KSA9CiAgICAgIGxldCBmdW4gcG9wX25fdGlt
ZXMgMCA9ICgpCgkgICAgfCBwb3Bfbl90aW1lcyBuID0gKHBvcCBpc3RhY2s7
IHBvcF9uX3RpbWVzKG4tMSkpCiAgICAgICBpbiBwb3Bfbl90aW1lcyghUGVu
ZCk7IFBlbmQgOj0gMAogICAgICBlbmQKCgooKiAiY3Vyc29yIiBpcyBob3cg
bWFueSBzcGFjZXMgYWNyb3NzIHRoZSBwYWdlIHdlIGFyZS4gKikKCmZ1biBw
cmludF90b2tlbihQUFN7Y29uc3VtZXIsc3BhY2VfbGVmdCwuLi59LCBTe1N0
cmluZyxMZW5ndGh9KSA9CiAgICAgIChjb25zdW1lciBTdHJpbmc7CiAgICAg
ICBzcGFjZV9sZWZ0IDo9ICghc3BhY2VfbGVmdCkgLSBMZW5ndGgpCiAgfCBw
cmludF90b2tlbihwcHN0cm0sQkIgYikgPSBwcmludF9CQihwcHN0cm0sYikK
ICB8IHByaW50X3Rva2VuKFBQU3t0aGVfaW5kZW50X3N0YWNrLC4uLn0sRSBl
KSA9CiAgICAgIHByaW50X0UgKHRoZV9pbmRlbnRfc3RhY2ssZSkKICB8IHBy
aW50X3Rva2VuIChQUFN7dGhlX2luZGVudF9zdGFjayxzcGFjZV9sZWZ0LGNv
bnN1bWVyLGxpbmV3aWR0aCwuLi59LAogICAgICAgICAgICAgICAgIEJSe0Rp
c3RhbmNlX3RvX25leHRfYnJlYWssTnVtYmVyX29mX2JsYW5rcyxCcmVha19v
ZmZzZXR9KSA9CiAgICAgKGNhc2UgKHRvcCB0aGVfaW5kZW50X3N0YWNrKQog
ICAgICAgIG9mIEZJVFMgPT4KCSAgICAgKHNwYWNlX2xlZnQgOj0gKCFzcGFj
ZV9sZWZ0KSAtIE51bWJlcl9vZl9ibGFua3M7CiAgICAgICAgICAgICAgaW5k
ZW50IChjb25zdW1lcixOdW1iZXJfb2ZfYmxhbmtzKSkKICAgICAgICAgfCAo
T05FX1BFUl9MSU5FIGN1cnNvcikgPT4KICAgICAgICAgICAgIGxldCB2YWwg
bmV3X2N1cnNvciA9IGN1cnNvciArIEJyZWFrX29mZnNldAogICAgICAgICAg
ICAgIGluIHNwYWNlX2xlZnQgOj0gbGluZXdpZHRoIC0gbmV3X2N1cnNvcjsK
ICAgICAgICAgICAgICAgICBjcl9pbmRlbnQgKGNvbnN1bWVyLG5ld19jdXJz
b3IpCgkgICAgIGVuZAogICAgICAgICB8IChQQUNLX09OVE9fTElORSBjdXJz
b3IpID0+CgkgICAgIGlmICghRGlzdGFuY2VfdG9fbmV4dF9icmVhayA+ICgh
c3BhY2VfbGVmdCkpCgkgICAgIHRoZW4gbGV0IHZhbCBuZXdfY3Vyc29yID0g
Y3Vyc29yICsgQnJlYWtfb2Zmc2V0CgkJICAgaW4gc3BhY2VfbGVmdCA6PSBs
aW5ld2lkdGggLSBuZXdfY3Vyc29yOwoJCSAgICAgIGNyX2luZGVudChjb25z
dW1lcixuZXdfY3Vyc29yKQoJCSAgZW5kCgkgICAgIGVsc2UgKHNwYWNlX2xl
ZnQgOj0gIXNwYWNlX2xlZnQgLSBOdW1iZXJfb2ZfYmxhbmtzOwoJCSAgIGlu
ZGVudCAoY29uc3VtZXIsTnVtYmVyX29mX2JsYW5rcykpKQoKCmZ1biBjbGVh
cl9wcHN0cmVhbShwcHMgOiBwcHN0cmVhbSkgPQogICAgbGV0IHZhbCBQUFN7
dGhlX3Rva2VuX2J1ZmZlciwgdGhlX2RlbGltX3N0YWNrLAogICAgICAgICAg
ICAgICAgdGhlX2luZGVudF9zdGFjayxsZWZ0X3N1bSwgcmlnaHRfc3VtLAog
ICAgICAgICAgICAgICAgbGVmdF9pbmRleCwgcmlnaHRfaW5kZXgsc3BhY2Vf
bGVmdCxsaW5ld2lkdGgsLi4ufQogICAgICAgICAgICAgID0gbWFnaWMgcHBz
CiAgICAgICAgdmFsIGJ1Zl9zaXplID0gMypsaW5ld2lkdGgKCWZ1biBzZXQg
aSA9CgkgICAgaWYgKGkgPSBidWZfc2l6ZSkKCSAgICB0aGVuICgpCgkgICAg
ZWxzZSAodXBkYXRlKHRoZV90b2tlbl9idWZmZXIsaSxpbml0aWFsX3Rva2Vu
X3ZhbHVlKTsKCQkgIHNldCAoaSsxKSkKICAgICBpbiBzZXQgMDsKCWNsZWFy
X2luZGVudF9zdGFjayB0aGVfaW5kZW50X3N0YWNrOwoJcmVzZXRfZGVsaW1f
c3RhY2sgdGhlX2RlbGltX3N0YWNrOwoJbGVmdF9zdW0gOj0gMDsgcmlnaHRf
c3VtIDo9IDA7CglsZWZ0X2luZGV4IDo9IDA7IHJpZ2h0X2luZGV4IDo9IDA7
CglzcGFjZV9sZWZ0IDo9IGxpbmV3aWR0aAogICAgZW5kCgoKKCogTW92ZSBp
bnNlcnRpb24gaGVhZCB0byByaWdodCB1bmxlc3MgYWRkaW5nIGEgQkIgYW5k
IGFscmVhZHkgYXQgYSBCQiwKICAgb3IgdW5sZXNzIGFkZGluZyBhbiBFIGFu
ZCBhbHJlYWR5IGF0IGFuIEUuCiopCmZ1biBCQl9pbmNfcmlnaHRfaW5kZXgo
UFBTe3RoZV90b2tlbl9idWZmZXIsIHJpZ2h0X2luZGV4LCArKywuLi59KT0K
ICAgIGNhc2UgKHRoZV90b2tlbl9idWZmZXIgc3ViICghcmlnaHRfaW5kZXgp
KQogICAgICBvZiAoQkIgXykgPT4gKCkKICAgICAgIHwgXyA9PiArK3JpZ2h0
X2luZGV4CgpmdW4gRV9pbmNfcmlnaHRfaW5kZXgoUFBTe3RoZV90b2tlbl9i
dWZmZXIscmlnaHRfaW5kZXgsICsrLC4uLn0pPQogICAgY2FzZSAodGhlX3Rv
a2VuX2J1ZmZlciBzdWIgKCFyaWdodF9pbmRleCkpCiAgICAgIG9mIChFIF8p
ID0+ICgpCiAgICAgICB8IF8gPT4gKytyaWdodF9pbmRleAoKCmZ1biBwb2lu
dGVyc19jb2luY2lkZShQUFN7bGVmdF9pbmRleCxyaWdodF9pbmRleCx0aGVf
dG9rZW5fYnVmZmVyLC4uLn0pID0KICAgICghbGVmdF9pbmRleCA9ICFyaWdo
dF9pbmRleCkgYW5kYWxzbwogICAgKGNhc2UgKHRoZV90b2tlbl9idWZmZXIg
c3ViICghbGVmdF9pbmRleCkpCiAgICAgICBvZiAoQkIge1BibG9ja3MgPSBy
ZWYgW10sIFVibG9ja3MgPSByZWYgW119KSA9PiB0cnVlCgl8IChCQiBfKSA9
PiBmYWxzZQoJfCAoRSB7UGVuZCA9IHJlZiAwLCBVZW5kID0gcmVmIDB9KSA9
PiB0cnVlCgl8IChFIF8pID0+IGZhbHNlCgl8IF8gPT4gdHJ1ZSkKCmZ1biBh
ZHZhbmNlX2xlZnQgKHBwc3RybSBhcyBQUFN7Y29uc3VtZXIsbGVmdF9pbmRl
eCxsZWZ0X3N1bSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0
aGVfdG9rZW5fYnVmZmVyLCsrLC4uLn0sCiAgICAgICAgICAgICAgICAgIGlu
c3RyKSA9CiAgICBsZXQgdmFsIE5FRyA9IH4xCgl2YWwgUE9TID0gMAoJZnVu
IGluY19sZWZ0X3N1bSAoQlJ7TnVtYmVyX29mX2JsYW5rcywgLi4ufSkgPQoJ
CSBsZWZ0X3N1bSA6PSAoIWxlZnRfc3VtKSArIE51bWJlcl9vZl9ibGFua3MK
CSAgfCBpbmNfbGVmdF9zdW0gKFN7TGVuZ3RoLCAuLi59KSA9IGxlZnRfc3Vt
IDo9ICghbGVmdF9zdW0pICsgTGVuZ3RoCgkgIHwgaW5jX2xlZnRfc3VtIF8g
PSAoKQoKCWZ1biBsYXN0X3NpemUgW3tCbG9ja19zaXplLCAuLi59OmJsb2Nr
X2luZm9dID0gIUJsb2NrX3NpemUKCSAgfCBsYXN0X3NpemUgKF86OnJzdCkg
PSBsYXN0X3NpemUgcnN0CiAgICAgICAgICB8IGxhc3Rfc2l6ZSBfID0gcmFp
c2UgRmFpbCAiUFAtZXJyb3I6IGxhc3Rfc2l6ZTogaW50ZXJuYWwgZXJyb3Ii
CglmdW4gdG9rZW5fc2l6ZSAoU3tMZW5ndGgsIC4uLn0pID0gTGVuZ3RoCgkg
IHwgdG9rZW5fc2l6ZSAoQkIgYikgPQoJICAgICAoY2FzZSBiCiAgICAgICAg
ICAgICAgICBvZiB7UGJsb2NrcyA9IHJlZiBbXSwgVWJsb2NrcyA9IHJlZiBb
XX0gPT4KICAgICAgICAgICAgICAgICAgICAgcmFpc2UgRmFpbCAiUFAtZXJy
b3I6IEJCX3NpemUiCgkgICAgICAgICB8IHtQYmxvY2tzIGFzIHJlZihfOjpf
KSxVYmxvY2tzPXJlZltdfSA9PiBQT1MKCQkgfCB7VWJsb2NrcywgLi4ufSA9
PiBsYXN0X3NpemUgKCFVYmxvY2tzKSkKCSAgfCB0b2tlbl9zaXplIChFe1Bl
bmQgPSByZWYgMCwgVWVuZCA9IHJlZiAwfSkgPQogICAgICAgICAgICAgIHJh
aXNlIEZhaWwgIlBQLWVycm9yOiB0b2tlbl9zaXplLkUiCgkgIHwgdG9rZW5f
c2l6ZSAoRXtQZW5kID0gcmVmIDAsIC4uLn0pID0gTkVHCgkgIHwgdG9rZW5f
c2l6ZSAoRSBfKSA9IFBPUwoJICB8IHRva2VuX3NpemUgKEJSIHtEaXN0YW5j
ZV90b19uZXh0X2JyZWFrLCAuLi59KSA9ICFEaXN0YW5jZV90b19uZXh0X2Jy
ZWFrCglmdW4gbG9vcCAoaW5zdHIpID0KCSAgICBpZiAodG9rZW5fc2l6ZSBp
bnN0ciA8IDApICAoKiBzeW5jaHJvbml6YXRpb24gcG9pbnQ7IGNhbm5vdCBh
ZHZhbmNlICopCgkgICAgdGhlbiAoKQoJICAgIGVsc2UgKHByaW50X3Rva2Vu
KHBwc3RybSxpbnN0cik7CgkJICBpbmNfbGVmdF9zdW0gaW5zdHI7CgkJICBp
ZiAocG9pbnRlcnNfY29pbmNpZGUgcHBzdHJtKQoJCSAgdGhlbiAoKQoJCSAg
ZWxzZSAoKiBpbmNyZW1lbnQgbGVmdCBpbmRleCAqKQoKICAgICgqIFdoZW4g
dGhpcyBpcyBldmFsdWF0ZWQsIHdlIGtub3cgdGhhdCB0aGUgbGVmdF9pbmRl
eCBoYXMgbm90IHlldAogICAgICAgY2F1Z2h0IHVwIHRvIHRoZSByaWdodF9p
bmRleC4gSWYgd2UgYXJlIGF0IGEgQkIgb3IgYW4gRSwgd2UgY2FuCiAgICAg
ICBpbmNyZW1lbnQgbGVmdF9pbmRleCBpZiB0aGVyZSBpcyBubyB3b3JrIHRv
IGJlIGRvbmUsIGkuZS4sIGFsbCBCZWdpbnMKICAgICAgIG9yIEVuZHMgaGF2
ZSBiZWVuIGRlYWx0IHdpdGguIEFsc28sIHdlIHNob3VsZCBkbyBzb21lIGhv
dXNla2VlcGluZyBhbmQKICAgICAgIGNsZWFyIHRoZSBidWZmZXIgYXQgbGVm
dF9pbmRleCwgb3RoZXJ3aXNlIHdlIGNhbiBnZXQgZXJyb3JzIHdoZW4KICAg
ICAgIGxlZnRfaW5kZXggY2F0Y2hlcyB1cCB0byByaWdodF9pbmRleCBhbmQg
d2UgcmVzZXQgdGhlIGluZGljZXMgdG8gMC4KICAgICAgIChXZSBtaWdodCBm
aW5kIG91cnNlbHZlcyBhZGRpbmcgYSBCQiB0byBhbiAib2xkIiBCQiwgd2l0
aCB0aGUgcmVzdWx0CiAgICAgICB0aGF0IHRoZSBpbmRleCBpcyBub3QgcHVz
aGVkIG9udG8gdGhlIGRlbGltX3N0YWNrLiBUaGlzIGNhbiBsZWFkIHRvCiAg
ICAgICBtYW5nbGVkIG91dHB1dC4pCiAgICAqKQoJCSAgICAgICAoY2FzZSAo
dGhlX3Rva2VuX2J1ZmZlciBzdWIgKCFsZWZ0X2luZGV4KSkKCQkJICBvZiAo
QkIge1BibG9ja3MgPSByZWYgW10sIFVibG9ja3MgPSByZWYgW119KSA9PgoJ
CQkgICAgICAgKHVwZGF0ZSh0aGVfdG9rZW5fYnVmZmVyLCFsZWZ0X2luZGV4
LAoJCQkJICAgICAgIGluaXRpYWxfdG9rZW5fdmFsdWUpOwoJCQkJKytsZWZ0
X2luZGV4KQoJCQkgICB8IChCQiBfKSA9PiAoKQoJCQkgICB8IChFIHtQZW5k
ID0gcmVmIDAsIFVlbmQgPSByZWYgMH0pID0+CgkJCSAgICAgICAodXBkYXRl
KHRoZV90b2tlbl9idWZmZXIsIWxlZnRfaW5kZXgsCgkJCQkgICAgICAgaW5p
dGlhbF90b2tlbl92YWx1ZSk7CgkJCQkrK2xlZnRfaW5kZXgpCgkJCSAgIHwg
KEUgXykgPT4gKCkKCQkJICAgfCBfID0+ICsrbGVmdF9pbmRleDsKCQkJbG9v
cCAodGhlX3Rva2VuX2J1ZmZlciBzdWIgKCFsZWZ0X2luZGV4KSkpKQogICAg
IGluIGxvb3AgaW5zdHIKICAgIGVuZAoKCmZ1biBiZWdpbl9ibG9jayAocHBz
IDogcHBzdHJlYW0pIHN0eWxlIG9mZnNldCA9CiAgbGV0IHZhbCBwcHN0cm0g
PSBtYWdpYyBwcHMgOiBwcHN0cmVhbV8KICAgICAgdmFsIFBQU3t0aGVfdG9r
ZW5fYnVmZmVyLCB0aGVfZGVsaW1fc3RhY2ssbGVmdF9pbmRleCwKICAgICAg
ICAgICAgICBsZWZ0X3N1bSwgcmlnaHRfaW5kZXgsIHJpZ2h0X3N1bSwuLi59
CiAgICAgICAgICAgID0gcHBzdHJtCiAgaW4KICAgKGlmIChkZWxpbV9zdGFj
a19pc19lbXB0eSB0aGVfZGVsaW1fc3RhY2spCiAgICB0aGVuIChsZWZ0X2lu
ZGV4IDo9IDA7CgkgIGxlZnRfc3VtIDo9IDE7CgkgIHJpZ2h0X2luZGV4IDo9
IDA7CgkgIHJpZ2h0X3N1bSA6PSAxKQogICAgZWxzZSBCQl9pbmNfcmlnaHRf
aW5kZXggcHBzdHJtOwogICAgY2FzZSAodGhlX3Rva2VuX2J1ZmZlciBzdWIg
KCFyaWdodF9pbmRleCkpCiAgICAgIG9mIChCQiB7VWJsb2NrcywgLi4ufSkg
PT4KCSAgIFVibG9ja3MgOj0ge0Jsb2NrX3NpemUgPSByZWYgKH4oIXJpZ2h0
X3N1bSkpLAoJCSAgICAgICBCbG9ja19vZmZzZXQgPSBvZmZzZXQsCgkJICAg
ICAgIEhvd190b19pbmRlbnQgPSBzdHlsZX06OighVWJsb2NrcykKICAgICAg
IHwgXyA9PiAodXBkYXRlKHRoZV90b2tlbl9idWZmZXIsICFyaWdodF9pbmRl
eCwKCQkgICAgICBCQntQYmxvY2tzID0gcmVmIFtdLAoJCQkgVWJsb2NrcyA9
IHJlZiBbe0Jsb2NrX3NpemUgPSByZWYgKH4oIXJpZ2h0X3N1bSkpLAoJCQkJ
CSBCbG9ja19vZmZzZXQgPSBvZmZzZXQsCgkJCQkJIEhvd190b19pbmRlbnQg
PSBzdHlsZX1dfSk7CgkgICAgICAgcHVzaF9kZWxpbV9zdGFjayAoIXJpZ2h0
X2luZGV4LCB0aGVfZGVsaW1fc3RhY2spKSkKICBlbmQKCmZ1biBlbmRfYmxv
Y2socHBzIDogcHBzdHJlYW0pID0KICBsZXQgdmFsIHBwc3RybSA9IG1hZ2lj
IHBwcyA6IHBwc3RyZWFtXwogICAgICB2YWwgUFBTe3RoZV90b2tlbl9idWZm
ZXIsdGhlX2RlbGltX3N0YWNrLHJpZ2h0X2luZGV4LC4uLn0KICAgICAgICAg
ICAgPSBwcHN0cm0KICBpbgogICAgaWYgKGRlbGltX3N0YWNrX2lzX2VtcHR5
IHRoZV9kZWxpbV9zdGFjaykKICAgIHRoZW4gcHJpbnRfdG9rZW4ocHBzdHJt
LChFe1BlbmQgPSByZWYgMSwgVWVuZCA9IHJlZiAwfSkpCiAgICBlbHNlIChF
X2luY19yaWdodF9pbmRleCBwcHN0cm07CgkgIGNhc2UgKHRoZV90b2tlbl9i
dWZmZXIgc3ViICghcmlnaHRfaW5kZXgpKQogICAgICAgICAgICBvZiAoRXtV
ZW5kLCAuLi59KSA9PiBVZW5kIDo9ICFVZW5kICsgMQoJICAgICB8IF8gPT4g
KHVwZGF0ZSh0aGVfdG9rZW5fYnVmZmVyLCFyaWdodF9pbmRleCwKCQkJICAg
IEV7VWVuZCA9IHJlZiAxLCBQZW5kID0gcmVmIDB9KTsKCQkgICAgIHB1c2hf
ZGVsaW1fc3RhY2sgKCFyaWdodF9pbmRleCwgdGhlX2RlbGltX3N0YWNrKSkp
CiAgZW5kCgpsb2NhbAogIGZ1biBjaGVja19kZWxpbV9zdGFjayhQUFN7dGhl
X3Rva2VuX2J1ZmZlcix0aGVfZGVsaW1fc3RhY2sscmlnaHRfc3VtLC4uLn0p
ID0KICAgICAgbGV0IGZ1biBjaGVjayBrID0KCSAgICAgIGlmIChkZWxpbV9z
dGFja19pc19lbXB0eSB0aGVfZGVsaW1fc3RhY2spCgkgICAgICB0aGVuICgp
CgkgICAgICBlbHNlIGNhc2UodGhlX3Rva2VuX2J1ZmZlciBzdWIgKHRvcF9k
ZWxpbV9zdGFjayB0aGVfZGVsaW1fc3RhY2spKQoJCSAgICAgb2YgKEJCe1Vi
bG9ja3MgYXMgcmVmICgoYiBhcyB7QmxvY2tfc2l6ZSwgLi4ufSk6OnJzdCks
CgkJCSAgICBQYmxvY2tzfSkgPT4KCQkJICAgaWYgKGs+MCkKCQkJICAgdGhl
biAoQmxvY2tfc2l6ZSA6PSAhcmlnaHRfc3VtICsgIUJsb2NrX3NpemU7CgkJ
CQkgUGJsb2NrcyA6PSBiIDo6ICghUGJsb2Nrcyk7CgkJCQkgVWJsb2NrcyA6
PSByc3Q7CgkJCQkgaWYgKExpc3QubGVuZ3RoIHJzdCA9IDApCgkJCQkgdGhl
biBwb3BfZGVsaW1fc3RhY2sgdGhlX2RlbGltX3N0YWNrCgkJCQkgZWxzZSAo
KTsKCQkJCSBjaGVjayhrLTEpKQoJCQkgICBlbHNlICgpCgkJICAgICAgfCAo
RXtQZW5kLFVlbmR9KSA9PgoJCQkgICAoUGVuZCA6PSAoIVBlbmQpICsgKCFV
ZW5kKTsKCQkJICAgIFVlbmQgOj0gMDsKCQkJICAgIHBvcF9kZWxpbV9zdGFj
ayB0aGVfZGVsaW1fc3RhY2s7CgkJCSAgICBjaGVjayhrICsgIVBlbmQpKQoJ
CSAgICAgIHwgKEJSe0Rpc3RhbmNlX3RvX25leHRfYnJlYWssIC4uLn0pID0+
CgkJCSAgIChEaXN0YW5jZV90b19uZXh0X2JyZWFrIDo9CgkJCSAgICAgICFy
aWdodF9zdW0gKyAhRGlzdGFuY2VfdG9fbmV4dF9icmVhazsKCQkJICAgIHBv
cF9kZWxpbV9zdGFjayB0aGVfZGVsaW1fc3RhY2s7CgkJCSAgICBpZiAoaz4w
KQoJCQkgICAgdGhlbiBjaGVjayBrCgkJCSAgICBlbHNlICgpKQogICAgICAg
ICAgICAgICAgICAgICAgfCBfID0+IHJhaXNlIEZhaWwgIlBQLWVycm9yOiBj
aGVja19kZWxpbV9zdGFjay5jYXRjaGFsbCIKICAgICAgIGluIGNoZWNrIDAK
ICAgICAgZW5kCmluCgogIGZ1biBhZGRfYnJlYWsgKHBwcyA6IHBwc3RyZWFt
KSAobiwgYnJlYWtfb2Zmc2V0KSA9CiAgICBsZXQgdmFsIHBwc3RybSA9IG1h
Z2ljIHBwcyA6IHBwc3RyZWFtXwogICAgICAgIHZhbCBQUFN7dGhlX3Rva2Vu
X2J1ZmZlcix0aGVfZGVsaW1fc3RhY2ssbGVmdF9pbmRleCwKICAgICAgICAg
ICAgICAgIHJpZ2h0X2luZGV4LGxlZnRfc3VtLHJpZ2h0X3N1bSwgKyssIC4u
Ln0KICAgICAgICAgICAgICA9IHBwc3RybQogICAgaW4KICAgICAgKGlmIChk
ZWxpbV9zdGFja19pc19lbXB0eSB0aGVfZGVsaW1fc3RhY2spCiAgICAgICB0
aGVuIChsZWZ0X2luZGV4IDo9IDA7IHJpZ2h0X2luZGV4IDo9IDA7CgkgICAg
IGxlZnRfc3VtIDo9IDE7ICAgcmlnaHRfc3VtIDo9IDEpCiAgICAgICBlbHNl
ICsrcmlnaHRfaW5kZXg7CiAgICAgICB1cGRhdGUodGhlX3Rva2VuX2J1ZmZl
ciwgIXJpZ2h0X2luZGV4LAoJICAgICAgQlJ7RGlzdGFuY2VfdG9fbmV4dF9i
cmVhayA9IHJlZiAofighcmlnaHRfc3VtKSksCgkJIE51bWJlcl9vZl9ibGFu
a3MgPSBuLAoJCSBCcmVha19vZmZzZXQgPSBicmVha19vZmZzZXR9KTsKICAg
ICAgIGNoZWNrX2RlbGltX3N0YWNrIHBwc3RybTsKICAgICAgIHJpZ2h0X3N1
bSA6PSAoIXJpZ2h0X3N1bSkgKyBuOwogICAgICAgcHVzaF9kZWxpbV9zdGFj
ayAoIXJpZ2h0X2luZGV4LHRoZV9kZWxpbV9zdGFjaykpCiAgICBlbmQKCiAg
ZnVuIGZsdXNoX3Bwc3RyZWFtMChwcHMgOiBwcHN0cmVhbSkgPQogICAgbGV0
IHZhbCBwcHN0cm0gPSBtYWdpYyBwcHMgOiBwcHN0cmVhbV8KICAgICAgICB2
YWwgUFBTe3RoZV9kZWxpbV9zdGFjayx0aGVfdG9rZW5fYnVmZmVyLCBmbHVz
aCwgbGVmdF9pbmRleCwuLi59CiAgICAgICAgICAgICAgPSBwcHN0cm0KICAg
IGluCiAgICAgIChpZiAoZGVsaW1fc3RhY2tfaXNfZW1wdHkgdGhlX2RlbGlt
X3N0YWNrKQogICAgICAgdGhlbiAoKQogICAgICAgZWxzZSAoY2hlY2tfZGVs
aW1fc3RhY2sgcHBzdHJtOwoJICAgICBhZHZhbmNlX2xlZnQocHBzdHJtLCB0
aGVfdG9rZW5fYnVmZmVyIHN1YiAoIWxlZnRfaW5kZXgpKSk7CiAgICAgICBm
bHVzaCgpKQogICAgZW5kCgplbmQgKCogbG9jYWwgKikKCgpmdW4gZmx1c2hf
cHBzdHJlYW0gcHBzdHJtID0KICAgIChmbHVzaF9wcHN0cmVhbTAgcHBzdHJt
OwogICAgIGNsZWFyX3Bwc3RyZWFtIHBwc3RybSkKCmZ1biBhZGRfc3RyaW5n
IChwcHMgOiBwcHN0cmVhbSkgcyA9CiAgICBsZXQgdmFsIHBwc3RybSA9IG1h
Z2ljIHBwcyA6IHBwc3RyZWFtXwogICAgICAgIHZhbCBQUFN7dGhlX3Rva2Vu
X2J1ZmZlcix0aGVfZGVsaW1fc3RhY2ssY29uc3VtZXIsCiAgICAgICAgICAg
ICAgICByaWdodF9pbmRleCxyaWdodF9zdW0sbGVmdF9zdW0sCiAgICAgICAg
ICAgICAgICBsZWZ0X2luZGV4LHNwYWNlX2xlZnQsKyssLi4ufQogICAgICAg
ICAgICAgID0gcHBzdHJtCiAgICAgICAgZnVuIGZubCBbe0Jsb2NrX3NpemUs
IC4uLn06YmxvY2tfaW5mb10gPSBCbG9ja19zaXplIDo9IElORklOSVRZCgkg
IHwgZm5sIChfOjpyc3QpID0gZm5sIHJzdAogICAgICAgICAgfCBmbmwgXyA9
IHJhaXNlIEZhaWwgIlBQLWVycm9yOiBmbmw6IGludGVybmFsIGVycm9yIgoK
CWZ1biBzZXQoZHN0YWNrLEJCe1VibG9ja3MgYXMgcmVmW3tCbG9ja19zaXpl
LC4uLn06YmxvY2tfaW5mb10sLi4ufSkgPQoJICAgICAgKHBvcF9ib3R0b21f
ZGVsaW1fc3RhY2sgZHN0YWNrOwoJICAgICAgIEJsb2NrX3NpemUgOj0gSU5G
SU5JVFkpCgkgIHwgc2V0IChfLEJCIHtVYmxvY2tzID0gcmVmKF86OnJzdCks
IC4uLn0pID0gZm5sIHJzdAoJICB8IHNldCAoZHN0YWNrLCBFe1BlbmQsVWVu
ZH0pID0KCSAgICAgIChQZW5kIDo9ICghUGVuZCkgKyAoIVVlbmQpOwoJICAg
ICAgIFVlbmQgOj0gMDsKCSAgICAgICBwb3BfYm90dG9tX2RlbGltX3N0YWNr
IGRzdGFjaykKCSAgfCBzZXQgKGRzdGFjayxCUntEaXN0YW5jZV90b19uZXh0
X2JyZWFrLC4uLn0pID0KCSAgICAgIChwb3BfYm90dG9tX2RlbGltX3N0YWNr
IGRzdGFjazsKCSAgICAgICBEaXN0YW5jZV90b19uZXh0X2JyZWFrIDo9IElO
RklOSVRZKQogICAgICAgICAgfCBzZXQgXyA9IHJhaXNlIChGYWlsICJQUC1l
cnJvcjogYWRkX3N0cmluZy5zZXQiKQoKCWZ1biBjaGVja19zdHJlYW0gKCkg
PQoJICAgIGlmICgoIXJpZ2h0X3N1bSAtICFsZWZ0X3N1bSkgPiAhc3BhY2Vf
bGVmdCkKCSAgICB0aGVuIGlmIChkZWxpbV9zdGFja19pc19lbXB0eSB0aGVf
ZGVsaW1fc3RhY2spCgkJIHRoZW4gKCkKCQkgZWxzZSBsZXQgdmFsIGkgPSBi
b3R0b21fZGVsaW1fc3RhY2sgdGhlX2RlbGltX3N0YWNrCgkJICAgICAgIGlu
IGlmICghbGVmdF9pbmRleCA9IGkpCgkJCSAgdGhlbiBzZXQgKHRoZV9kZWxp
bV9zdGFjaywgdGhlX3Rva2VuX2J1ZmZlciBzdWIgaSkKCQkJICBlbHNlICgp
OwoJCQkgIGFkdmFuY2VfbGVmdChwcHN0cm0sCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHRoZV90b2tlbl9idWZmZXIgc3ViICgh
bGVmdF9pbmRleCkpOwoJCSAgICAgICAgICBpZiAocG9pbnRlcnNfY29pbmNp
ZGUgcHBzdHJtKQoJCSAgICAgICAgICB0aGVuICgpCgkJICAgICAgICAgIGVs
c2UgY2hlY2tfc3RyZWFtICgpCgkJICAgICAgZW5kCgkgICAgZWxzZSAoKQoK
CXZhbCBzbGVuID0gU3RyaW5nLnNpemUgcwoJdmFsIFNfdG9rZW4gPSBTe1N0
cmluZyA9IHMsIExlbmd0aCA9IHNsZW59CgogICAgaW4gaWYgKGRlbGltX3N0
YWNrX2lzX2VtcHR5IHRoZV9kZWxpbV9zdGFjaykKICAgICAgIHRoZW4gcHJp
bnRfdG9rZW4ocHBzdHJtLFNfdG9rZW4pCiAgICAgICBlbHNlICgrK3JpZ2h0
X2luZGV4OwogICAgICAgICAgICAgdXBkYXRlKHRoZV90b2tlbl9idWZmZXIs
ICFyaWdodF9pbmRleCwgU190b2tlbik7CiAgICAgICAgICAgICByaWdodF9z
dW0gOj0gKCFyaWdodF9zdW0pK3NsZW47CiAgICAgICAgICAgICBjaGVja19z
dHJlYW0gKCkpCiAgIGVuZAoKCigqIERlcml2ZWQgZm9ybS4gVGhlICsyIGlz
IGZvciBwZWFjZSBvZiBtaW5kICopCmZ1biBhZGRfbmV3bGluZSAocHBzIDog
cHBzdHJlYW0pID0KICBsZXQgdmFsIFBQU3tsaW5ld2lkdGgsIC4uLn0gPSBt
YWdpYyBwcHMKICBpbiBhZGRfYnJlYWsgcHBzIChsaW5ld2lkdGgrMiwwKSBl
bmQKCigqIERlcml2ZWQgZm9ybS4gQnVpbGRzIGEgcHBzdHJlYW0sIHNlbmRz
IHByZXR0eSBwcmludGluZyBjb21tYW5kcyBjYWxsZWQgaW4KICAgZiB0byB0
aGUgcHBzdHJlYW0sIHRoZW4gZmx1c2hlcyBwcHN0cmVhbS4KKikKCmZ1biB3
aXRoX3BwIHBwY29uc3VtZXIgcHBmbiA9CiAgIGxldCB2YWwgcHBzdHJtID0g
bWtfcHBzdHJlYW0gcHBjb25zdW1lcgogICAgaW4gcHBmbiBwcHN0cm07CiAg
ICAgICBmbHVzaF9wcHN0cmVhbTAgcHBzdHJtCiAgIGVuZAogICBoYW5kbGUg
RmFpbCBtc2cgPT4KICAgICAoVGV4dElPLnByaW50ICgiPj4+PiBQcmV0dHkt
cHJpbnRlciBmYWlsdXJlOiAiIF4gbXNnIF4gIlxuIikpCgpmdW4gcHBfdG9f
c3RyaW5nIGxpbmV3aWR0aCBwcGZuIG9iID0KICAgIGxldCB2YWwgbCA9IHJl
ZiAoW106c3RyaW5nIGxpc3QpCglmdW4gYXR0YWNoIHMgPSBsIDo9IChzOjoo
IWwpKQogICAgIGluIHdpdGhfcHAge2NvbnN1bWVyID0gYXR0YWNoLCBsaW5l
d2lkdGg9bGluZXdpZHRoLCBmbHVzaCA9IGZuKCk9PigpfQoJCShmbiBwcHN0
cm0gPT4gIHBwZm4gcHBzdHJtIG9iKTsKCVN0cmluZy5jb25jYXQoTGlzdC5y
ZXYoIWwpKQogICAgZW5kCmVuZAooKiNsaW5lIDAuMCAiJEhPTUUvZGV2L3Nt
bC9iYXNpYy9zcmMvQmluYXJ5bWFwLnNpZyIqKQooKiBCaW5hcnltYXAgLS0g
YXBwbGljYXRpdmUgbWFwcyBhcyBiYWxhbmNlZCBvcmRlcmVkIGJpbmFyeSB0
cmVlcyAqKQooKiBGcm9tIFNNTC9OSiBsaWIgMC4yLCBjb3B5cmlnaHQgMTk5
MyBieSBBVCZUIEJlbGwgTGFib3JhdG9yaWVzICAqKQooKiBPcmlnaW5hbCBp
bXBsZW1lbnRhdGlvbiBkdWUgdG8gU3RlcGhlbiBBZGFtcywgU291dGhhbXB0
b24sIFVLICAqKQoKc2lnbmF0dXJlIEJpbmFyeW1hcCA9CnNpZwoKdHlwZSAo
J2tleSwgJ2EpIGRpY3QKCmV4Y2VwdGlvbiBOb3RGb3VuZAoKdmFsIG1rRGlj
dCAgICA6ICgna2V5ICogJ2tleSAtPiBvcmRlcikgLT4gKCdrZXksICdhKSBk
aWN0CnZhbCBpbnNlcnQgICAgOiAoJ2tleSwgJ2EpIGRpY3QgKiAna2V5ICog
J2EgLT4gKCdrZXksICdhKSBkaWN0CnZhbCBmaW5kICAgICAgOiAoJ2tleSwg
J2EpIGRpY3QgKiAna2V5IC0+ICdhCnZhbCBwZWVrICAgICAgOiAoJ2tleSwg
J2EpIGRpY3QgKiAna2V5IC0+ICdhIG9wdGlvbgp2YWwgcmVtb3ZlICAgIDog
KCdrZXksICdhKSBkaWN0ICogJ2tleSAtPiAoJ2tleSwgJ2EpIGRpY3QgKiAn
YQp2YWwgbnVtSXRlbXMgIDogKCdrZXksICdhKSBkaWN0IC0+IGludAp2YWwg
bGlzdEl0ZW1zIDogKCdrZXksICdhKSBkaWN0IC0+ICgna2V5ICogJ2EpIGxp
c3QKdmFsIGFwcCAgICAgICA6ICgna2V5ICogJ2EgLT4gdW5pdCkgLT4gKCdr
ZXksJ2EpIGRpY3QgLT4gdW5pdAp2YWwgcmV2YXBwICAgIDogKCdrZXkgKiAn
YSAtPiB1bml0KSAtPiAoJ2tleSwnYSkgZGljdCAtPiB1bml0CnZhbCBmb2xk
ciAgICAgOiAoJ2tleSAqICdhICogJ2IgLT4gJ2IpLT4gJ2IgLT4gKCdrZXks
J2EpIGRpY3QgLT4gJ2IKdmFsIGZvbGRsICAgICA6ICgna2V5ICogJ2EgKiAn
YiAtPiAnYikgLT4gJ2IgLT4gKCdrZXksJ2EpIGRpY3QgLT4gJ2IKdmFsIG1h
cCAgICAgICA6ICgna2V5ICogJ2EgLT4gJ2IpIC0+ICgna2V5LCdhKSBkaWN0
IC0+ICgna2V5LCAnYikgZGljdAp2YWwgdHJhbnNmb3JtIDogKCdhIC0+ICdi
KSAtPiAoJ2tleSwnYSkgZGljdCAtPiAoJ2tleSwgJ2IpIGRpY3QKCmVuZAoK
KCogCiAgIFsoJ2tleSwgJ2EpIGRpY3RdIGlzIHRoZSB0eXBlIG9mIGFwcGxp
Y2F0aXZlIG1hcHMgZnJvbSBkb21haW4gdHlwZQogICAna2V5IHRvIHJhbmdl
IHR5cGUgJ2EsIG9yIGVxdWl2YWxlbnRseSwgYXBwbGljYXRpdmUgZGljdGlv
bmFyaWVzCiAgIHdpdGgga2V5cyBvZiB0eXBlICdrZXkgYW5kIHZhbHVlcyBv
ZiB0eXBlICdhLiAgVGhleSBhcmUgaW1wbGVtZW50ZWQKICAgYXMgb3JkZXJl
ZCBiYWxhbmNlZCBiaW5hcnkgdHJlZXMuCgogICBbbWtEaWN0IG9yZHJdIHJl
dHVybnMgYSBuZXcsIGVtcHR5IG1hcCB3aG9zZSBrZXlzIGhhdmUgb3JkZXJp
bmcKICAgb3Jkci4KCiAgIFtpbnNlcnQobSwgaSwgdildIGV4dGVuZHMgKG9y
IG1vZGlmaWVzKSBtYXAgbSB0byBtYXAgaSB0byB2LgoKICAgW2ZpbmQgKG0s
IGspXSByZXR1cm5zIHYgaWYgbSBtYXBzIGsgdG8gdjsgb3RoZXJ3aXNlIHJh
aXNlcyBOb3RGb3VuZC4KICAgCiAgIFtwZWVrKG0sIGspXSByZXR1cm5zIFNP
TUUgdiBpZiBtIG1hcHMgayB0byB2OyBvdGhlcndpc2UgcmV0dXJucyBOT05F
LgoKICAgW3JlbW92ZShtLCBrKV0gcmVtb3ZlcyBrIGZyb20gdGhlIGRvbWFp
biBvZiBtIGFuZCByZXR1cm5zIHRoZQogICBtb2RpZmllZCBtYXAgYW5kIHRo
ZSBlbGVtZW50IHYgY29ycmVzcG9uZGluZyB0byBrLiAgUmFpc2VzIE5vdEZv
dW5kCiAgIGlmIGsgaXMgbm90IGluIHRoZSBkb21haW4gb2YgbS4KCiAgIFtu
dW1JdGVtcyBtXSByZXR1cm5zIHRoZSBudW1iZXIgb2YgZW50cmllcyBpbiBt
ICh0aGF0IGlzLCB0aGUgc2l6ZQogICBvZiB0aGUgZG9tYWluIG9mIG0pLgoK
ICAgW2xpc3RJdGVtcyBtXSByZXR1cm5zIGEgbGlzdCBvZiB0aGUgZW50cmll
cyAoaywgdikgb2Yga2V5cyBrIGFuZAogICB0aGUgY29ycmVzcG9uZGluZyB2
YWx1ZXMgdiBpbiBtLCBpbiBvcmRlciBvZiBpbmNyZWFzaW5nIGtleSB2YWx1
ZXMuCgogICBbYXBwIGYgbV0gYXBwbGllcyBmdW5jdGlvbiBmIHRvIHRoZSBl
bnRyaWVzIChrLCB2KSBpbiBtLCBpbgogICBpbmNyZWFzaW5nIG9yZGVyIG9m
IGsgKGFjY29yZGluZyB0byB0aGUgb3JkZXJpbmcgb3JkciB1c2VkIHRvCiAg
IGNyZWF0ZSB0aGUgbWFwIG9yIGRpY3Rpb25hcnkpLgoKICAgW3JldmFwcCBm
IG1dIGFwcGxpZXMgZnVuY3Rpb24gZiB0byB0aGUgZW50cmllcyAoaywgdikg
aW4gbSwgaW4KICAgZGVjcmVhc2luZyBvcmRlciBvZiBrLgoKICAgW2ZvbGRs
IGYgZSBtXSBhcHBsaWVzIHRoZSBmb2xkaW5nIGZ1bmN0aW9uIGYgdG8gdGhl
IGVudHJpZXMgKGssIHYpCiAgIGluIG0sIGluIGluY3JlYXNpbmcgb3JkZXIg
b2Ygay4KCiAgIFtmb2xkciBmIGUgbV0gYXBwbGllcyB0aGUgZm9sZGluZyBm
dW5jdGlvbiBmIHRvIHRoZSBlbnRyaWVzIChrLCB2KQogICBpbiBtLCBpbiBk
ZWNyZWFzaW5nIG9yZGVyIG9mIGsuCgogICBbbWFwIGYgbV0gcmV0dXJucyBh
IG5ldyBtYXAgd2hvc2UgZW50cmllcyBoYXZlIGZvcm0gKGssIGYoayx2KSks
CiAgIHdoZXJlIChrLCB2KSBpcyBhbiBlbnRyeSBpbiBtLgoKICAgW3RyYW5z
Zm9ybSBmIG1dIHJldHVybnMgYSBuZXcgbWFwIHdob3NlIGVudHJpZXMgaGF2
ZSBmb3JtIChrLCBmIHYpLAogICB3aGVyZSAoaywgdikgaXMgYW4gZW50cnkg
aW4gbS4KKikKKCojbGluZSAwLjAgIiRIT01FL2Rldi9zbWwvYmFzaWMvc3Jj
L0JpbmFyeW1hcC5zbWwiKikKKCogQmluYXJ5bWFwIC0tIG1vZGlmaWVkIGZv
ciBNaWx0b24gTUwgCiAqIGZyb20gU01ML05KIGxpYnJhcnkgdi4gMC4yIGZp
bGUgYmluYXJ5LWRpY3Quc21sLgogKiBDT1BZUklHSFQgKGMpIDE5OTMgYnkg
QVQmVCBCZWxsIExhYm9yYXRvcmllcy4gIAogKiBTZWUgZmlsZSBtb3NtbC9j
b3B5cmdodC9jb3B5cmdodC5hdHQgZm9yIGRldGFpbHMuCiAqCiAqIFRoaXMg
Y29kZSB3YXMgYWRhcHRlZCBmcm9tIFN0ZXBoZW4gQWRhbXMnIGJpbmFyeSB0
cmVlIGltcGxlbWVudGF0aW9uCiAqIG9mIGFwcGxpY2F0aXZlIGludGVnZXIg
c2V0cy4KICoKICogICBDb3B5cmlnaHQgMTk5MiBTdGVwaGVuIEFkYW1zLgog
KgogKiAgICBUaGlzIHNvZnR3YXJlIG1heSBiZSB1c2VkIGZyZWVseSBwcm92
aWRlZCB0aGF0OgogKiAgICAgIDEuIFRoaXMgY29weXJpZ2h0IG5vdGljZSBp
cyBhdHRhY2hlZCB0byBhbnkgY29weSwgZGVyaXZlZCB3b3JrLAogKiAgICAg
ICAgIG9yIHdvcmsgaW5jbHVkaW5nIGFsbCBvciBwYXJ0IG9mIHRoaXMgc29m
dHdhcmUuCiAqICAgICAgMi4gQW55IGRlcml2ZWQgd29yayBtdXN0IGNvbnRh
aW4gYSBwcm9taW5lbnQgbm90aWNlIHN0YXRpbmcgdGhhdAogKiAgICAgICAg
IGl0IGhhcyBiZWVuIGFsdGVyZWQgZnJvbSB0aGUgb3JpZ2luYWwuCiAqCiAq
CiAqICAgTmFtZShzKTogU3RlcGhlbiBBZGFtcy4KICogICBEZXBhcnRtZW50
LCBJbnN0aXR1dGlvbjogRWxlY3Ryb25pY3MgJiBDb21wdXRlciBTY2llbmNl
LAogKiAgICAgIFVuaXZlcnNpdHkgb2YgU291dGhhbXB0b24KICogICBBZGRy
ZXNzOiAgRWxlY3Ryb25pY3MgJiBDb21wdXRlciBTY2llbmNlCiAqICAgICAg
ICAgICAgIFVuaXZlcnNpdHkgb2YgU291dGhhbXB0b24KICoJICAgICBTb3V0
aGFtcHRvbiAgU085IDVOSAogKgkgICAgIEdyZWF0IEJyaXRpYW4KICogICBF
LW1haWw6ICAgc3JhQGVjcy5zb3Rvbi5hYy51awogKgogKiAgIENvbW1lbnRz
OgogKgogKiAgICAgMS4gIFRoZSBpbXBsZW1lbnRhdGlvbiBpcyBiYXNlZCBv
biBCaW5hcnkgc2VhcmNoIHRyZWVzIG9mIEJvdW5kZWQKICogICAgICAgICBC
YWxhbmNlLCBzaW1pbGFyIHRvIE5pZXZlcmdlbHQgJiBSZWluZ29sZCwgU0lB
TSBKLiBDb21wdXRpbmcKICogICAgICAgICAyKDEpLCBNYXJjaCAxOTczLiAg
VGhlIG1haW4gYWR2YW50YWdlIG9mIHRoZXNlIHRyZWVzIGlzIHRoYXQKICog
ICAgICAgICB0aGV5IGtlZXAgdGhlIHNpemUgb2YgdGhlIHRyZWUgaW4gdGhl
IG5vZGUsIGdpdmluZyBhIGNvbnN0YW50CiAqICAgICAgICAgdGltZSBzaXpl
IG9wZXJhdGlvbi4KICoKICogICAgIDIuICBUaGUgYm91bmRlZCBiYWxhbmNl
IGNyaXRlcmlvbiBpcyBzaW1wbGVyIHRoYW4gTiZSJ3MgYWxwaGEuCiAqICAg
ICAgICAgU2ltcGx5LCBvbmUgc3VidHJlZSBtdXN0IG5vdCBoYXZlIG1vcmUg
dGhhbiBgd2VpZ2h0JyB0aW1lcyBhcwogKiAgICAgICAgIG1hbnkgZWxlbWVu
dHMgYXMgdGhlIG9wcG9zaXRlIHN1YnRyZWUuICBSZWJhbGFuY2luZyBpcwog
KiAgICAgICAgIGd1YXJhbnRlZWQgdG8gcmVpbnN0YXRlIHRoZSBjcml0ZXJp
b24gZm9yIHdlaWdodD4yLjIzLCBidXQKICogICAgICAgICB0aGUgb2NjYXNp
b25hbCBpbmNvcnJlY3QgYmVoYXZpb3VyIGZvciB3ZWlnaHQ9MiBpcyBub3QK
ICogICAgICAgICBkZXRyaW1lbnRhbCB0byBwZXJmb3JtYW5jZS4KICoKICop
CgpzdHJ1Y3R1cmUgQmluYXJ5bWFwIDo+IEJpbmFyeW1hcCA9CnN0cnVjdAog
CmV4Y2VwdGlvbiBOb3RGb3VuZAoKZnVuIHd0IChpIDogaW50KSA9IDMgKiBp
CgpkYXRhdHlwZSAoJ2tleSwgJ2EpIGRpY3QgPSAKICAgIERJQ1Qgb2YgKCdr
ZXkgKiAna2V5IC0+IG9yZGVyKSAqICgna2V5LCAnYSkgdHJlZQphbmQgKCdr
ZXksICdhKSB0cmVlID0KICAgIEUgCiAgfCBUIG9mIHtrZXkgICA6ICdrZXks
IAoJICB2YWx1ZSA6ICdhLCAKCSAgY250ICAgOiBpbnQsIAoJICBsZWZ0ICA6
ICgna2V5LCAnYSkgdHJlZSwgCgkgIHJpZ2h0IDogKCdrZXksICdhKSB0cmVl
fQoKZnVuIHRyZWVTaXplIEUgICAgICAgICAgICA9IDAKICB8IHRyZWVTaXpl
IChUe2NudCwuLi59KSA9IGNudAoKZnVuIG51bUl0ZW1zIChESUNUKF8sIHQp
KSA9IHRyZWVTaXplIHQKCmxvY2FsCiAgICBmdW4gTihrLHYsRSxFKSA9IFR7
a2V5PWssdmFsdWU9dixjbnQ9MSxsZWZ0PUUscmlnaHQ9RX0KICAgICAgfCBO
KGssdixFLHIgYXMgVCBuKSA9IFR7a2V5PWssdmFsdWU9dixjbnQ9MSsoI2Nu
dCBuKSxsZWZ0PUUscmlnaHQ9cn0KICAgICAgfCBOKGssdixsIGFzIFQgbixF
KSA9IFR7a2V5PWssdmFsdWU9dixjbnQ9MSsoI2NudCBuKSxsZWZ0PWwscmln
aHQ9RX0KICAgICAgfCBOKGssdixsIGFzIFQgbixyIGFzIFQgbicpID0gCiAg
ICAgICAgICBUe2tleT1rLHZhbHVlPXYsY250PTErKCNjbnQgbikrKCNjbnQg
bicpLGxlZnQ9bCxyaWdodD1yfQoKICAgIGZ1biBzaW5nbGVfTCAoYSxhdix4
LFR7a2V5PWIsdmFsdWU9YnYsbGVmdD15LHJpZ2h0PXosLi4ufSkgPSAKICAg
ICAgICAgIE4oYixidixOKGEsYXYseCx5KSx6KQogICAgICB8IHNpbmdsZV9M
IF8gPSByYWlzZSBNYXRjaAogICAgZnVuIHNpbmdsZV9SIChiLGJ2LFR7a2V5
PWEsdmFsdWU9YXYsbGVmdD14LHJpZ2h0PXksLi4ufSx6KSA9IAogICAgICAg
ICAgTihhLGF2LHgsTihiLGJ2LHkseikpCiAgICAgIHwgc2luZ2xlX1IgXyA9
IHJhaXNlIE1hdGNoCiAgICBmdW4gZG91YmxlX0wgKGEsYXYsdyxUe2tleT1j
LHZhbHVlPWN2LCAKCQkJICAgbGVmdD1Ue2tleT1iLHZhbHVlPWJ2LGxlZnQ9
eCxyaWdodD15LC4uLn0sCgkJCSAgIHJpZ2h0PXosLi4ufSkgPQogICAgICAg
ICAgTihiLGJ2LE4oYSxhdix3LHgpLE4oYyxjdix5LHopKQogICAgICB8IGRv
dWJsZV9MIF8gPSByYWlzZSBNYXRjaAogICAgZnVuIGRvdWJsZV9SIChjLGN2
LFR7a2V5PWEsdmFsdWU9YXYsbGVmdD13LAoJCQkgcmlnaHQ9VHtrZXk9Yix2
YWx1ZT1idixsZWZ0PXgscmlnaHQ9eSwuLi59LC4uLn0seikgPSAKICAgICAg
ICAgIE4oYixidixOKGEsYXYsdyx4KSxOKGMsY3YseSx6KSkKICAgICAgfCBk
b3VibGVfUiBfID0gcmFpc2UgTWF0Y2gKCiAgICBmdW4gVCcgKGssdixFLEUp
ID0gVHtrZXk9ayx2YWx1ZT12LGNudD0xLGxlZnQ9RSxyaWdodD1FfQogICAg
ICB8IFQnIChrLHYsRSxyIGFzIFR7cmlnaHQ9RSxsZWZ0PUUsLi4ufSkgPQog
ICAgICAgICAgVHtrZXk9ayx2YWx1ZT12LGNudD0yLGxlZnQ9RSxyaWdodD1y
fQogICAgICB8IFQnIChrLHYsbCBhcyBUe3JpZ2h0PUUsbGVmdD1FLC4uLn0s
RSkgPQogICAgICAgICAgVHtrZXk9ayx2YWx1ZT12LGNudD0yLGxlZnQ9bCxy
aWdodD1FfQoKICAgICAgfCBUJyAocCBhcyAoXyxfLEUsVHtsZWZ0PVQgXyxy
aWdodD1FLC4uLn0pKSA9IGRvdWJsZV9MIHAKICAgICAgfCBUJyAocCBhcyAo
XyxfLFR7bGVmdD1FLHJpZ2h0PVQgXywuLi59LEUpKSA9IGRvdWJsZV9SIHAK
CiAgICAgICAgKCogdGhlc2UgY2FzZXMgYWxtb3N0IG5ldmVyIGhhcHBlbiB3
aXRoIHNtYWxsIHdlaWdodCopCiAgICAgIHwgVCcgKHAgYXMgKF8sXyxFLFR7
bGVmdD1Ue2NudD1sbiwuLi59LHJpZ2h0PVR7Y250PXJuLC4uLn0sLi4ufSkp
ID0KICAgICAgICAgIGlmIGxuIDwgcm4gdGhlbiBzaW5nbGVfTCBwIGVsc2Ug
ZG91YmxlX0wgcAogICAgICB8IFQnIChwIGFzIChfLF8sVHtsZWZ0PVR7Y250
PWxuLC4uLn0scmlnaHQ9VHtjbnQ9cm4sLi4ufSwuLi59LEUpKSA9CiAgICAg
ICAgICBpZiBsbiA+IHJuIHRoZW4gc2luZ2xlX1IgcCBlbHNlIGRvdWJsZV9S
IHAKCiAgICAgIHwgVCcgKHAgYXMgKF8sXyxFLFR7bGVmdD1FLC4uLn0pKSA9
IHNpbmdsZV9MIHAKICAgICAgfCBUJyAocCBhcyAoXyxfLFR7cmlnaHQ9RSwu
Li59LEUpKSA9IHNpbmdsZV9SIHAKCiAgICAgIHwgVCcgKHAgYXMgKGssdixs
IGFzIFR7Y250PWxuLGxlZnQ9bGwscmlnaHQ9bHIsLi4ufSwKICAgICAgICAg
ICAgICAgICAgICAgIHIgYXMgVHtjbnQ9cm4sbGVmdD1ybCxyaWdodD1yciwu
Li59KSkgPQogICAgICAgICAgaWYgcm4gPj0gd3QgbG4gdGhlbiAoKnJpZ2h0
IGlzIHRvbyBiaWcqKQogICAgICAgICAgICBsZXQgdmFsIHJsbiA9IHRyZWVT
aXplIHJsCiAgICAgICAgICAgICAgICB2YWwgcnJuID0gdHJlZVNpemUgcnIK
ICAgICAgICAgICAgaW4KICAgICAgICAgICAgICBpZiBybG4gPCBycm4gdGhl
biAgc2luZ2xlX0wgcCAgZWxzZSAgZG91YmxlX0wgcAogICAgICAgICAgICBl
bmQKICAgICAgICAKICAgICAgICAgIGVsc2UgaWYgbG4gPj0gd3Qgcm4gdGhl
biAgKCpsZWZ0IGlzIHRvbyBiaWcqKQogICAgICAgICAgICBsZXQgdmFsIGxs
biA9IHRyZWVTaXplIGxsCiAgICAgICAgICAgICAgICB2YWwgbHJuID0gdHJl
ZVNpemUgbHIKICAgICAgICAgICAgaW4KICAgICAgICAgICAgICBpZiBscm4g
PCBsbG4gdGhlbiAgc2luZ2xlX1IgcCAgZWxzZSAgZG91YmxlX1IgcAogICAg
ICAgICAgICBlbmQKICAgIAogICAgICAgICAgZWxzZSBUe2tleT1rLHZhbHVl
PXYsY250PWxuK3JuKzEsbGVmdD1sLHJpZ2h0PXJ9CgogICAgbG9jYWwKICAg
ICAgZnVuIG1pbiAoVHtsZWZ0PUUsa2V5LHZhbHVlLC4uLn0pID0gKGtleSx2
YWx1ZSkKICAgICAgICB8IG1pbiAoVHtsZWZ0LC4uLn0pID0gbWluIGxlZnQK
ICAgICAgICB8IG1pbiBfID0gcmFpc2UgTWF0Y2gKICAKICAgICAgZnVuIGRl
bG1pbiAoVHtsZWZ0PUUscmlnaHQsLi4ufSkgPSByaWdodAogICAgICAgIHwg
ZGVsbWluIChUe2tleSx2YWx1ZSxsZWZ0LHJpZ2h0LC4uLn0pID0gCgkgIFQn
KGtleSx2YWx1ZSxkZWxtaW4gbGVmdCxyaWdodCkKICAgICAgICB8IGRlbG1p
biBfID0gcmFpc2UgTWF0Y2gKICAgIGluCiAgICAgIGZ1biBkZWxldGUnIChF
LHIpID0gcgogICAgICAgIHwgZGVsZXRlJyAobCxFKSA9IGwKICAgICAgICB8
IGRlbGV0ZScgKGwscikgPSBsZXQgdmFsIChtaW5rLG1pbnYpID0gbWluIHIg
CgkJCSAgaW4gVCcobWluayxtaW52LGwsZGVsbWluIHIpIGVuZAogICAgZW5k
CmluCiAgICBmdW4gbWtEaWN0IGNtcEtleSA9IERJQ1QoY21wS2V5LCBFKQog
ICAgCiAgICBmdW4gaW5zZXJ0IChESUNUIChjbXBLZXksIHQpLHgsdikgPSAK
CWxldCBmdW4gaW5zIEUgPSBUe2tleT14LHZhbHVlPXYsY250PTEsbGVmdD1F
LHJpZ2h0PUV9CgkgICAgICB8IGlucyAoVChzZXQgYXMge2tleSxsZWZ0LHJp
Z2h0LHZhbHVlLC4uLn0pKSA9CgkJY2FzZSBjbXBLZXkgKGtleSx4KSBvZgoJ
CSAgICBHUkVBVEVSID0+IFQnKGtleSx2YWx1ZSxpbnMgbGVmdCxyaWdodCkK
CQkgIHwgTEVTUyAgICA9PiBUJyhrZXksdmFsdWUsbGVmdCxpbnMgcmlnaHQp
CgkJICB8IF8gICAgICAgPT4gCgkJCVR7a2V5PXgsdmFsdWU9dixsZWZ0PWxl
ZnQscmlnaHQ9cmlnaHQsY250PSAjY250IHNldH0KCWluIERJQ1QoY21wS2V5
LCBpbnMgdCkgZW5kCgogICAgZnVuIGZpbmQgKERJQ1QoY21wS2V5LCB0KSwg
eCkgPQoJbGV0IGZ1biBtZW0gRSA9IHJhaXNlIE5vdEZvdW5kCgkgICAgICB8
IG1lbSAoVChuIGFzIHtrZXksbGVmdCxyaWdodCwuLi59KSkgPQoJCWNhc2Ug
Y21wS2V5ICh4LGtleSkgb2YKCQkgICAgR1JFQVRFUiA9PiBtZW0gcmlnaHQK
CQkgIHwgTEVTUyAgICA9PiBtZW0gbGVmdAoJCSAgfCBfICAgICAgID0+ICN2
YWx1ZSBuCglpbiBtZW0gdCBlbmQKCiAgICBmdW4gcGVlayBhcmcgPSAoU09N
RShmaW5kIGFyZykpIGhhbmRsZSBOb3RGb3VuZCA9PiBOT05FCgogICAgZnVu
IHJlbW92ZSAoRElDVChjbXBLZXksIHQpLCB4KSA9IAoJbGV0IGZ1biBybSBF
ID0gcmFpc2UgTm90Rm91bmQKCSAgICAgIHwgcm0gKHNldCBhcyBUe2tleSxs
ZWZ0LHJpZ2h0LHZhbHVlLC4uLn0pID0gCgkJKGNhc2UgY21wS2V5IChrZXks
eCkgb2YKCQkgICAgIEdSRUFURVIgPT4gbGV0IHZhbCAobGVmdCcsIHYpID0g
cm0gbGVmdAoJCQkJaW4gKFQnKGtleSwgdmFsdWUsIGxlZnQnLCByaWdodCks
IHYpIGVuZAoJCSAgIHwgTEVTUyAgICA9PiBsZXQgdmFsIChyaWdodCcsIHYp
ID0gcm0gcmlnaHQKCQkJCWluIChUJyhrZXksIHZhbHVlLCBsZWZ0LCByaWdo
dCcpLCB2KSBlbmQKCQkgICB8IF8gICAgICAgPT4gKGRlbGV0ZScobGVmdCxy
aWdodCksdmFsdWUpKQoJICAgIHZhbCAobmV3dHJlZSwgdmFscm0pID0gcm0g
dAoJaW4gKERJQ1QoY21wS2V5LCBuZXd0cmVlKSwgdmFscm0pIGVuZAoKICAg
IGZ1biBsaXN0SXRlbXMgKERJQ1QoXywgZCkpID0gCglsZXQgZnVuIGQybCBF
IHJlcyA9IHJlcwoJICAgICAgfCBkMmwgKFR7a2V5LHZhbHVlLGxlZnQscmln
aHQsLi4ufSkgcmVzID0KCQlkMmwgbGVmdCAoKGtleSx2YWx1ZSkgOjogZDJs
IHJpZ2h0IHJlcykKCWluIGQybCBkIFtdIGVuZAoKICAgIGZ1biByZXZhcHAg
ZiAoRElDVChfLCBkKSkgPSBsZXQKICAgICAgZnVuIGEgRSA9ICgpCiAgICAg
ICAgfCBhIChUe2tleSx2YWx1ZSxsZWZ0LHJpZ2h0LC4uLn0pID0gKGEgcmln
aHQ7IGYoa2V5LHZhbHVlKTsgYSBsZWZ0KQogICAgICBpbiBhIGQgZW5kCgog
ICAgZnVuIGFwcCBmIChESUNUKF8sIGQpKSA9IGxldAogICAgICBmdW4gYSBF
ID0gKCkKICAgICAgICB8IGEgKFR7a2V5LHZhbHVlLGxlZnQscmlnaHQsLi4u
fSkgPSAoYSBsZWZ0OyBmKGtleSx2YWx1ZSk7IGEgcmlnaHQpCiAgICAgIGlu
IGEgZCBlbmQKCiAgICBmdW4gZm9sZHIgZiBpbml0IChESUNUKF8sIGQpKSA9
IGxldAogICAgICBmdW4gYSBFIHYgPSB2CiAgICAgICAgfCBhIChUe2tleSx2
YWx1ZSxsZWZ0LHJpZ2h0LC4uLn0pIHYgPSBhIGxlZnQgKGYoa2V5LHZhbHVl
LGEgcmlnaHQgdikpCiAgICAgIGluIGEgZCBpbml0IGVuZAoKICAgIGZ1biBm
b2xkbCBmIGluaXQgKERJQ1QoXywgZCkpID0gbGV0CiAgICAgIGZ1biBhIEUg
diA9IHYKICAgICAgICB8IGEgKFR7a2V5LHZhbHVlLGxlZnQscmlnaHQsLi4u
fSkgdiA9IGEgcmlnaHQgKGYoa2V5LHZhbHVlLGEgbGVmdCB2KSkKICAgICAg
aW4gYSBkIGluaXQgZW5kCgogICAgZnVuIG1hcCBmIChESUNUKGNtcEtleSwg
ZCkpID0gbGV0CiAgICAgIGZ1biBhIEUgPSBFCiAgICAgICAgfCBhIChUe2tl
eSx2YWx1ZSxsZWZ0LHJpZ2h0LGNudH0pID0gbGV0CiAgICAgICAgICAgIHZh
bCBsZWZ0JyA9IGEgbGVmdAogICAgICAgICAgICB2YWwgdmFsdWUnID0gZihr
ZXksdmFsdWUpCiAgICAgICAgICAgIGluCiAgICAgICAgICAgICAgVHtjbnQ9
Y250LCBrZXk9a2V5LHZhbHVlPXZhbHVlJyxsZWZ0ID0gbGVmdCcsIHJpZ2h0
ID0gYSByaWdodH0KICAgICAgICAgICAgZW5kCiAgICAgIGluIERJQ1QoY21w
S2V5LCBhIGQpIGVuZAoKICAgIGZ1biB0cmFuc2Zvcm0gZiAoRElDVChjbXBL
ZXksIGQpKSA9IAoJbGV0IGZ1biBhIEUgPSBFCgkgICAgICB8IGEgKFR7a2V5
LHZhbHVlLGxlZnQscmlnaHQsY250fSkgPSAKCQlsZXQgdmFsIGxlZnQnID0g
YSBsZWZ0CgkJaW4KCQkgICAgVHtjbnQ9Y250LCBrZXk9a2V5LCB2YWx1ZT1m
IHZhbHVlLCBsZWZ0ID0gbGVmdCcsIAoJCSAgICAgIHJpZ2h0ID0gYSByaWdo
dH0KCQllbmQKICAgICAgaW4gRElDVChjbXBLZXksIGEgZCkgZW5kCmVuZAoK
ZW5kCigqI2xpbmUgMC4wICIkSE9NRS9kZXYvc21sL2Jhc2ljL3NyYy9TdXNw
LnNpZyIqKQooKiBTdXNwIC0tIHN1cHBvcnQgZm9yIGxhenkgZXZhbHVhdGlv
biAqKQoKc2lnbmF0dXJlIFN1c3AgPQpzaWcKCnR5cGUgJ2Egc3VzcAoKdmFs
IGRlbGF5IDogKHVuaXQgLT4gJ2EpIC0+ICdhIHN1c3AKdmFsIGZvcmNlIDog
J2Egc3VzcCAtPiAnYQoKZW5kCgooKiAKICAgWydhIHN1c3BdIGlzIHRoZSB0
eXBlIG9mIGxhemlseSBldmFsdWF0ZWQgZXhwcmVzc2lvbnMgd2l0aCByZXN1
bHQKICAgdHlwZSAnYS4KCiAgIFtkZWxheSAoZm4gKCkgPT4gZSldIGNyZWF0
ZXMgYSBzdXNwZW5zaW9uIGZvciB0aGUgZXhwcmVzc2lvbiBlLgogICBUaGUg
Zmlyc3QgdGltZSB0aGUgc3VzcGVuc2lvbiBpcyBmb3JjZWQsIHRoZSBleHBy
ZXNzaW9uIGUgd2lsbCBiZQogICBldmFsdWF0ZWQsIGFuZCB0aGUgcmVzdWx0
IHN0b3JlZCBpbiB0aGUgc3VzcGVuc2lvbi4gIEFsbCBzdWJzZXF1ZW50CiAg
IGZvcmNpbmcgb2YgdGhlIHN1c3BlbnNpb24gd2lsbCBqdXN0IHJldHVybiB0
aGlzIHJlc3VsdCwgc28gZSBpcwogICBldmFsdWF0ZWQgYXQgbW9zdCBvbmNl
LiAgSWYgdGhlIHN1c3BlbnNpb24gaXMgbmV2ZXIgZm9yY2VkLCB0aGVuIGUK
ICAgaXMgbmV2ZXIgZXZhbHVhdGVkLgoKICAgW2ZvcmNlIHN1XSBmb3JjZXMg
dGhlIHN1c3BlbnNpb24gc3UgYW5kIHJldHVybnMgdGhlIHJlc3VsdCBvZiB0
aGUKICAgZXhwcmVzc2lvbiBlIHN0b3JlZCBpbiB0aGUgc3VzcGVuc2lvbi4K
KikKKCojbGluZSAwLjAgIiRIT01FL2Rldi9zbWwvYmFzaWMvc3JjL1N1c3Au
c21sIiopCigqIFN1c3AgLS0gc3VwcG9ydCBmb3IgbGF6eSBldmFsdWF0aW9u
IDE5OTUtMDUtMjIgKikKCnN0cnVjdHVyZSBTdXNwIDo+IFN1c3AgPQpzdHJ1
Y3QKCmRhdGF0eXBlICdhIHRodW5rID0gVkFMIG9mICdhIHwgVEhVTksgb2Yg
dW5pdCAtPiAnYTsKCnR5cGUgJ2Egc3VzcCA9ICdhIHRodW5rIHJlZjsKCmZ1
biBkZWxheSAoZiA6IHVuaXQgLT4gJ2EpID0gcmVmIChUSFVOSyBmKTsKCmZ1
biBmb3JjZSAoc3UgOiAnYSBzdXNwKSA6ICdhID0gCiAgY2FzZSAhc3Ugb2YK
ICAgIFZBTCB2ICAgPT4gdiAKICB8IFRIVU5LIGYgPT4gbGV0IHZhbCB2ID0g
ZiAoKSBpbiBzdSA6PSBWQUwgdjsgdiBlbmQKCmVuZAooKiNsaW5lIDAuMCAi
JEhPTUUvZGV2L3NtbC9iYXNpYy9zcmMvTWlsdG9uLnNpZyIqKQooKiA9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09ICopCigqIE1MdG9uIFNQRUNJRklD
IEZVTkNUSU9OUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKikKKCogQ3JlYXRlZCBieSBKb2UgSHVyZCwgU2Vw
dGVtYmVyIDIwMDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAqKQooKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICopCgpz
aWduYXR1cmUgTWlsdG9uID0Kc2lnCgooKiBUaGUgTUwgaW1wbGVtZW50YXRp
b24gKikKdmFsIG1sIDogc3RyaW5nCgooKiBQb2ludGVyIGVxdWFsaXR5IHVz
aW5nIHRoZSBydW4tdGltZSBzeXN0ZW0gKikKCigqIFF1b3RhdGlvbnMgYSBs
YSBNb3NtbCAqKQpkYXRhdHlwZSAnYSBmcmFnID0gUVVPVEUgb2Ygc3RyaW5n
IHwgQU5USVFVT1RFIG9mICdhCgooKiBUaW1pbmcgZnVuY3Rpb24gYXBwbGlj
YXRpb25zIGEgbGEgTW9zbWwudGltZSAqKQp2YWwgdGltZSA6ICgnYSAtPiAn
YikgLT4gJ2EgLT4gJ2IKCigqIEJyaW5nIGNlcnRhaW4gZGVjbGFyYXRpb25z
IHRvIHRoZSB0b3AtbGV2ZWwgKikKdHlwZSBwcHN0cmVhbSA9IFBQLnBwc3Ry
ZWFtCgooKiBEdW1teSB2ZXJzaW9ucyBvZiBNb3NtbCBkZWNsYXJhdGlvbnMg
dG8gc3RvcCBNTHRvbiBiYXJmaW5nICopCnZhbCBxdW90YXRpb24gOiBib29s
IHJlZgp2YWwgbG9hZCAgICAgIDogc3RyaW5nIC0+IHVuaXQKdmFsIGluc3Rh
bGxQUCA6IChwcHN0cmVhbSAtPiAnYSAtPiB1bml0KSAtPiB1bml0CgplbmQK
KCojbGluZSAwLjAgIiRIT01FL2Rldi9zbWwvYmFzaWMvc3JjL01pbHRvbi5z
bWwiKikKKCogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqKQooKiBN
THRvbiBTUEVDSUZJQyBGVU5DVElPTlMgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigqIENyZWF0ZWQgYnkg
Sm9lIEh1cmQsIFNlcHRlbWJlciAyMDAyICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKikKKCogPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PSAqKQoKc3RydWN0dXJlIE1pbHRvbiA6PiBNaWx0b24gPQpzdHJ1
Y3QKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCogVGhl
IE1MIGltcGxlbWVudGF0aW9uLiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tICopCgp2YWwgbWwgPSAiTUx0b24iOwoKKCogLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQooKiBQb2ludGVyIGVxdWFs
aXR5IHVzaW5nIHRoZSBydW4tdGltZSBzeXN0ZW0uICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0gKikKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikK
KCogUXVvdGF0aW9ucyBhIGxhIE1vc21sLiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCgpkYXRhdHlwZSAnYSBmcmFnID0g
UVVPVEUgb2Ygc3RyaW5nIHwgQU5USVFVT1RFIG9mICdhOwoKKCogLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQooKiBUaW1pbmcgZnVuY3Rpb24g
YXBwbGljYXRpb25zIGEgbGEgTW9zbWwudGltZS4gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0gKikKCmZ1biB0aW1lIGYgeCA9CiAgbGV0CiAgICBmdW4gcCB0ID0KICAg
ICAgbGV0CiAgICAgICAgdmFsIHMgPSBUaW1lLmZtdCAzIHQKICAgICAgaW4K
ICAgICAgICBjYXNlIHNpemUgKExpc3QubGFzdCAoU3RyaW5nLmZpZWxkcyAo
Zm4geCA9PiB4ID0gIyIuIikgcykpIG9mIDMgPT4gcwogICAgICAgIHwgMiA9
PiBzIF4gIjAiCiAgICAgICAgfCAxID0+IHMgXiAiMDAiCiAgICAgICAgfCBf
ID0+IHJhaXNlIEZhaWwgIk1pbHRvbi50aW1lIgogICAgICBlbmQKICAgIHZh
bCBjID0gVGltZXIuc3RhcnRDUFVUaW1lciAoKQogICAgdmFsIHIgPSBUaW1l
ci5zdGFydFJlYWxUaW1lciAoKQogICAgZnVuIHB0ICgpID0KICAgICAgbGV0
CiAgICAgICAgdmFsIHt1c3IsIHN5cywgZ2N9ID0gVGltZXIuY2hlY2tDUFVU
aW1lciBjCiAgICAgICAgdmFsIHJlYWwgPSBUaW1lci5jaGVja1JlYWxUaW1l
ciByCiAgICAgIGluCiAgICAgICAgcHJpbnQKICAgICAgICAoIlVzZXI6ICIg
XiBwIHVzciBeICIgIFN5c3RlbTogIiBeIHAgc3lzIF4KICAgICAgICAgIiAg
R0M6ICIgXiBwIGdjIF4gIiAgUmVhbDogIiBeIHAgcmVhbCBeICJcbiIpCiAg
ICAgIGVuZAogICAgdmFsIHkgPSBmIHggaGFuZGxlIGUgPT4gKHB0ICgpOyBy
YWlzZSBlKQogICAgdmFsICgpID0gcHQgKCkKICBpbgogICAgeQogIGVuZDsK
CigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCogQnJpbmcg
Y2VydGFpbiBkZWNsYXJhdGlvbnMgdG8gdGhlIHRvcC1sZXZlbC4gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tICopCgp0eXBlIHBwc3RyZWFtID0gUFAucHBzdHJlYW07
CgooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigqIER1bW15
IHZlcnNpb25zIG9mIE1vc21sIGRlY2xhcmF0aW9ucyB0byBzdG9wIE1MdG9u
IGJhcmZpbmcuICAgICAgICAgICAgICAgKikKKCogLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLSAqKQoKdmFsIHF1b3RhdGlvbiA9IHJlZiBmYWxzZTsK
dmFsIGxvYWQgICAgICA9IGZuIChfIDogc3RyaW5nKSA9PiAoKTsKdmFsIGlu
c3RhbGxQUCA9IGZuIChfIDogcHBzdHJlYW0gLT4gJ2EgLT4gdW5pdCkgPT4g
KCk7CgplbmQKb3BlbiBNaWx0b247CigqI2xpbmUgMC4wICJiYXNpYy9Vc2Vm
dWwuc2lnIiopCigqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKikK
KCogTUwgVVRJTElUWSBGVU5DVElPTlMgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiBDcmVhdGVk
IGJ5IEpvZSBIdXJkLCBBcHJpbCAyMDAxICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICopCigqID09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0gKikKCnNpZ25hdHVyZSBVc2VmdWwgPQpzaWcKCigqIEV4
Y2VwdGlvbnMsIHByb2ZpbGluZyBhbmQgdHJhY2luZyAqKQpleGNlcHRpb24g
RVJSX0VYTiBvZiB7b3JpZ2luX2Z1bmN0aW9uIDogc3RyaW5nLCBtZXNzYWdl
IDogc3RyaW5nfQpleGNlcHRpb24gQlVHX0VYTiBvZiB7b3JpZ2luX2Z1bmN0
aW9uIDogc3RyaW5nLCBtZXNzYWdlIDogc3RyaW5nfQp2YWwgRVJSICAgICAg
OiBzdHJpbmcgLT4gc3RyaW5nIC0+IGV4bgp2YWwgQlVHICAgICAgOiBzdHJp
bmcgLT4gc3RyaW5nIC0+IGV4bgp2YWwgYXNzZXJ0ICAgOiBib29sIC0+IGV4
biAtPiB1bml0CnZhbCB0cnkgICAgICA6ICgnYSAtPiAnYikgLT4gJ2EgLT4g
J2IKdmFsIHRvdGFsICAgIDogKCdhIC0+ICdiKSAtPiAnYSAtPiAnYiBvcHRp
b24KdmFsIGNhbiAgICAgIDogKCdhIC0+ICdiKSAtPiAnYSAtPiBib29sCnZh
bCBwYXJ0aWFsICA6IGV4biAtPiAoJ2EgLT4gJ2Igb3B0aW9uKSAtPiAnYSAt
PiAnYgp2YWwgdGltZWQgICAgOiAoJ2EgLT4gJ2IpIC0+ICdhIC0+IHJlYWwg
KiAnYgp2YWwgdHJhY2luZyAgOiBpbnQgcmVmCnZhbCB0cmFjZXMgICA6IHtt
b2R1bGUgOiBzdHJpbmcsIGFsaWdubWVudCA6IGludCAtPiBpbnR9IGxpc3Qg
cmVmCnZhbCB0cmFjZSAgICA6IHttb2R1bGUgOiBzdHJpbmcsIG1lc3NhZ2Ug
OiBzdHJpbmcsIGxldmVsIDogaW50fSAtPiB1bml0CgooKiBDb21iaW5hdG9y
cyAqKQp2YWwgQyAgOiAoJ2EgLT4gJ2IgLT4gJ2MpIC0+ICdiIC0+ICdhIC0+
ICdjCnZhbCBJICA6ICdhIC0+ICdhCnZhbCBLICA6ICdhIC0+ICdiIC0+ICdh
CnZhbCBOICA6IGludCAtPiAoJ2EgLT4gJ2EpIC0+ICdhIC0+ICdhCnZhbCBT
ICA6ICgnYSAtPiAnYiAtPiAnYykgLT4gKCdhIC0+ICdiKSAtPiAnYSAtPiAn
Ywp2YWwgVyAgOiAoJ2EgLT4gJ2EgLT4gJ2IpIC0+ICdhIC0+ICdiCnZhbCBv
byA6ICgnYSAtPiAnYikgKiAoJ2MgLT4gJ2QgLT4gJ2EpIC0+ICdjIC0+ICdk
IC0+ICdiCnZhbCAjIyA6ICgnYSAtPiAnYikgKiAoJ2MgLT4gJ2QpIC0+ICdh
ICogJ2MgLT4gJ2IgKiAnZAoKKCogQm9vbGVhbnMgKikKdmFsIGJvb2xfdG9f
c3RyaW5nIDogYm9vbCAtPiBzdHJpbmcKdmFsIG5vbiAgICAgICAgICAgIDog
KCdhIC0+IGJvb2wpIC0+ICdhIC0+IGJvb2wKCigqIFBhaXJzICopCnZhbCBE
ICAgICAgIDogJ2EgLT4gJ2EgKiAnYQp2YWwgRGYgICAgICA6ICgnYSAtPiAn
YikgLT4gJ2EgKiAnYSAtPiAnYiAqICdiCnZhbCBmc3QgICAgIDogJ2EgKiAn
YiAtPiAnYQp2YWwgc25kICAgICA6ICdhICogJ2IgLT4gJ2IKdmFsIHBhaXIg
ICAgOiAnYSAtPiAnYiAtPiAnYSAqICdiCnZhbCBjdXJyeSAgIDogKCdhICog
J2IgLT4gJ2MpIC0+ICdhIC0+ICdiIC0+ICdjCnZhbCB1bmN1cnJ5IDogKCdh
IC0+ICdiIC0+ICdjKSAtPiAnYSAqICdiIC0+ICdjCnZhbCBlcXVhbCAgIDog
JydhIC0+ICcnYSAtPiBib29sCgooKiBTdGF0ZSB0cmFuc2Zvcm1lcnMgKikK
dmFsIHVuaXQgICA6ICdhIC0+ICdzIC0+ICdhICogJ3MKdmFsIGJpbmQgICA6
ICgncyAtPiAnYSAqICdzKSAtPiAoJ2EgLT4gJ3MgLT4gJ2IgKiAncykgLT4g
J3MgLT4gJ2IgKiAncwp2YWwgbW1hcCAgIDogKCdhIC0+ICdiKSAtPiAoJ3Mg
LT4gJ2EgKiAncykgLT4gJ3MgLT4gJ2IgKiAncwp2YWwgam9pbiAgIDogKCdz
IC0+ICgncyAtPiAnYSAqICdzKSAqICdzKSAtPiAncyAtPiAnYSAqICdzCnZh
bCBtd2hpbGUgOiAoJ2EgLT4gYm9vbCkgLT4gKCdhIC0+ICdzIC0+ICdhICog
J3MpIC0+ICdhIC0+ICdzIC0+ICdhICogJ3MKCigqIExpc3RzOiBub3RlIHdl
IGNvdW50IGVsZW1lbnRzIGZyb20gMCAqKQp2YWwgY29ucyAgICAgICAgIDog
J2EgLT4gJ2EgbGlzdCAtPiAnYSBsaXN0CnZhbCBhcHBlbmQgICAgICAgOiAn
YSBsaXN0IC0+ICdhIGxpc3QgLT4gJ2EgbGlzdAp2YWwgd3JhcCAgICAgICAg
IDogJ2EgLT4gJ2EgbGlzdAp2YWwgdW53cmFwICAgICAgIDogJ2EgbGlzdCAt
PiAnYQp2YWwgZmlyc3QgICAgICAgIDogKCdhIC0+ICdiIG9wdGlvbikgLT4g
J2EgbGlzdCAtPiAnYiBvcHRpb24KdmFsIGluZGV4ICAgICAgICA6ICgnYSAt
PiBib29sKSAtPiAnYSBsaXN0IC0+IGludCBvcHRpb24KdmFsIG1hcHMgICAg
ICAgICA6ICgnYSAtPiAncyAtPiAnYiAqICdzKSAtPiAnYSBsaXN0IC0+ICdz
IC0+ICdiIGxpc3QgKiAncwp2YWwgcGFydGlhbF9tYXBzIDogKCdhIC0+ICdz
IC0+ICdiIG9wdGlvbiAqICdzKSAtPiAnYSBsaXN0IC0+ICdzIC0+ICdiIGxp
c3QgKiAncwp2YWwgZW51bWVyYXRlICAgIDogaW50IC0+ICdhIGxpc3QgLT4g
KGludCAqICdhKSBsaXN0CnZhbCBjYXJ0d2l0aCAgICAgOiAoJ2EgLT4gJ2Ig
LT4gJ2MpIC0+ICdhIGxpc3QgLT4gJ2IgbGlzdCAtPiAnYyBsaXN0CnZhbCB6
aXB3aXRoICAgICAgOiAoJ2EgLT4gJ2IgLT4gJ2MpIC0+ICdhIGxpc3QgLT4g
J2IgbGlzdCAtPiAnYyBsaXN0CnZhbCB6aXAgICAgICAgICAgOiAnYSBsaXN0
IC0+ICdiIGxpc3QgLT4gKCdhICogJ2IpIGxpc3QKdmFsIHVuemlwICAgICAg
ICA6ICgnYSAqICdiKSBsaXN0IC0+ICdhIGxpc3QgKiAnYiBsaXN0CnZhbCBz
cGxpdCAgICAgICAgOiAnYSBsaXN0IC0+IGludCAtPiAnYSBsaXN0ICogJ2Eg
bGlzdCAgICAgICgqIFN1YnNjcmlwdCAqKQp2YWwgdXBkYXRlX250aCAgIDog
KCdhIC0+ICdhKSAtPiBpbnQgLT4gJ2EgbGlzdCAtPiAnYSBsaXN0ICAoKiBT
dWJzY3JpcHQgKikKCigqIExpc3RzLWFzLXNldHMgKikKdmFsIG1lbSAgICAg
ICA6ICcnYSAtPiAnJ2EgbGlzdCAtPiBib29sCnZhbCBpbnNlcnQgICAgOiAn
J2EgLT4gJydhIGxpc3QgLT4gJydhIGxpc3QKdmFsIGRlbGV0ZSAgICA6ICcn
YSAtPiAnJ2EgbGlzdCAtPiAnJ2EgbGlzdAp2YWwgdW5pb24gICAgIDogJydh
IGxpc3QgLT4gJydhIGxpc3QgLT4gJydhIGxpc3QKdmFsIGludGVyc2VjdCA6
ICcnYSBsaXN0IC0+ICcnYSBsaXN0IC0+ICcnYSBsaXN0CnZhbCBzdWJ0cmFj
dCAgOiAnJ2EgbGlzdCAtPiAnJ2EgbGlzdCAtPiAnJ2EgbGlzdAp2YWwgc2V0
aWZ5ICAgIDogJydhIGxpc3QgLT4gJydhIGxpc3QKdmFsIHN1YnNldCAgICA6
ICcnYSBsaXN0IC0+ICcnYSBsaXN0IC0+IGJvb2wKdmFsIGRpc3RpbmN0ICA6
ICcnYSBsaXN0IC0+IGJvb2wKCigqIENvbXBhcmlzb25zICopCnZhbCBsZXhf
Y29tcGFyZSA6ICgnYSAqICdhIC0+IG9yZGVyKSAtPiAoJ2EgKiAnYSkgbGlz
dCAtPiBvcmRlcgoKKCogU29ydGluZyBhbmQgc2VhcmNoaW5nICopCnZhbCBt
aW4gICA6ICgnYSAtPiAnYSAtPiBib29sKSAtPiAnYSBsaXN0IC0+ICdhCnZh
bCBtZXJnZSA6ICgnYSAtPiAnYSAtPiBib29sKSAtPiAnYSBsaXN0IC0+ICdh
IGxpc3QgLT4gJ2EgbGlzdAp2YWwgc29ydCAgOiAoJ2EgLT4gJ2EgLT4gYm9v
bCkgLT4gJ2EgbGlzdCAtPiAnYSBsaXN0CgooKiBJbnRlZ2VycyAqKQp2YWwg
aW50X3RvX3N0cmluZyA6IGludCAtPiBzdHJpbmcKdmFsIHN0cmluZ190b19p
bnQgOiBzdHJpbmcgLT4gaW50ICAgICAgICAgICAgICAgICAoKiBPdmVyZmxv
dywgT3B0aW9uICopCnZhbCBpbnRfdG9fYml0cyAgIDogaW50IC0+IGJvb2wg
bGlzdAp2YWwgYml0c190b19pbnQgICA6IGJvb2wgbGlzdCAtPiBpbnQgICAg
ICAgICAgICAgICgqIE92ZXJmbG93ICopCnZhbCBpbnRlcnZhbCAgICAgIDog
aW50IC0+IGludCAtPiBpbnQgbGlzdAp2YWwgZGl2aWRlcyAgICAgICA6IGlu
dCAtPiBpbnQgLT4gYm9vbAp2YWwgcHJpbWVzICAgICAgICA6IGludCAtPiBp
bnQgbGlzdAoKKCogU3RyaW5ncyAqKQp2YWwgdmFyaWFudCAgICAgOiBzdHJp
bmcgLT4gc3RyaW5nIGxpc3QgLT4gc3RyaW5nCnZhbCB2YXJpYW50X251bSA6
IHN0cmluZyAtPiBzdHJpbmcgbGlzdCAtPiBzdHJpbmcKdmFsIGRlc3RfcHJl
Zml4IDogc3RyaW5nIC0+IHN0cmluZyAtPiBzdHJpbmcKdmFsIGlzX3ByZWZp
eCAgIDogc3RyaW5nIC0+IHN0cmluZyAtPiBib29sCnZhbCBta19wcmVmaXgg
ICA6IHN0cmluZyAtPiBzdHJpbmcgLT4gc3RyaW5nCgooKiBSZWFscyAqKQp2
YWwgcmVhbF90b19zdHJpbmcgOiByZWFsIC0+IHN0cmluZzsKCigqIFByZXR0
eS1wcmludGluZyAqKQp0eXBlICdhIHBwID0gcHBzdHJlYW0gLT4gJ2EgLT4g
dW5pdAp2YWwgTElORV9MRU5HVEggIDogaW50IHJlZgp2YWwgdW5pdF9wcCAg
ICAgIDogJ2EgcHAgLT4gJ2EgLT4gdW5pdCBwcAp2YWwgcHBfdW5pdF9wcCAg
IDogdW5pdCBwcCBwcAp2YWwgcHBfbWFwICAgICAgIDogKCdhIC0+ICdiKSAt
PiAnYiBwcCAtPiAnYSBwcAp2YWwgcHBfYnJhY2tldCAgIDogc3RyaW5nICog
c3RyaW5nIC0+ICdhIHBwIC0+ICdhIHBwCnZhbCBwcF9zZXF1ZW5jZSAgOiBz
dHJpbmcgLT4gJ2EgcHAgLT4gJ2EgbGlzdCBwcAp2YWwgcHBfdW5vcCAgICAg
IDogc3RyaW5nIC0+ICdhIHBwIC0+ICdhIHBwCnZhbCBwcF9iaW5vcCAgICAg
OiBzdHJpbmcgLT4gJ2EgcHAgLT4gJ2IgcHAgLT4gKCdhICogJ2IpIHBwCnZh
bCBwcF9ub3RoaW5nICAgOiAnYSBwcAp2YWwgcHBfc3RyaW5nICAgIDogc3Ry
aW5nIHBwCnZhbCBwcF91bml0ICAgICAgOiB1bml0IHBwCnZhbCBwcF9ib29s
ICAgICAgOiBib29sIHBwCnZhbCBwcF9pbnQgICAgICAgOiBpbnQgcHAKdmFs
IHBwX3JlYWwgICAgICA6IHJlYWwgcHAKdmFsIHBwX29yZGVyICAgICA6IG9y
ZGVyIHBwCnZhbCBwcF9saXN0ICAgICAgOiAnYSBwcCAtPiAnYSBsaXN0IHBw
CnZhbCBwcF9wYWlyICAgICAgOiAnYSBwcCAtPiAnYiBwcCAtPiAoJ2EgKiAn
YikgcHAKdmFsIHBwX3RyaXBsZSAgICA6ICdhIHBwIC0+ICdiIHBwIC0+ICdj
IHBwIC0+ICgnYSAqICdiICogJ2MpIHBwCnZhbCBwcF9yZWNvcmQgICAgOiAo
c3RyaW5nICogdW5pdCBwcCkgbGlzdCAtPiB1bml0IHBwCnZhbCBwcF9vcHRp
b24gICAgOiAnYSBwcCAtPiAnYSBvcHRpb24gcHAKCigqIFN1bSBkYXRhdHlw
ZSAqKQpkYXRhdHlwZSAoJ2EsICdiKSBzdW0gPSBJTkwgb2YgJ2EgfCBJTlIg
b2YgJ2IKdmFsIGlzX2lubCA6ICgnYSwgJ2IpIHN1bSAtPiBib29sCnZhbCBp
c19pbnIgOiAoJ2EsICdiKSBzdW0gLT4gYm9vbAoKKCogTWFwbGV0cyAqKQpk
YXRhdHlwZSAoJ2EsICdiKSBtYXBsZXQgPSB8LT4gb2YgJ2EgKiAnYgp2YWwg
cHBfbWFwbGV0IDogJ2EgcHAgLT4gJ2IgcHAgLT4gKCdhLCAnYikgbWFwbGV0
IHBwCgooKiBUcmVlcyAqKQpkYXRhdHlwZSAoJ2EsICdiKSB0cmVlID0gQlJB
TkNIIG9mICdhICogKCdhLCAnYikgdHJlZSBsaXN0IHwgTEVBRiBvZiAnYgp2
YWwgdHJlZV9zaXplICA6ICgnYSwgJ2IpIHRyZWUgLT4gaW50CnZhbCB0cmVl
X2ZvbGRyIDogKCdhIC0+ICdjIGxpc3QgLT4gJ2MpIC0+ICgnYiAtPiAnYykg
LT4gKCdhLCAnYikgdHJlZSAtPiAnYwp2YWwgdHJlZV9mb2xkbCA6CiAgKCdh
IC0+ICdjIC0+ICdjKSAtPiAoJ2IgLT4gJ2MgLT4gJ2QpIC0+ICdjIC0+ICgn
YSwgJ2IpIHRyZWUgLT4gJ2QgbGlzdAp2YWwgdHJlZV9wYXJ0aWFsX2ZvbGRs
IDoKICAoJ2EgLT4gJ2MgLT4gJ2Mgb3B0aW9uKSAtPiAoJ2IgLT4gJ2MgLT4g
J2Qgb3B0aW9uKSAtPiAnYyAtPiAoJ2EsICdiKSB0cmVlIC0+CiAgJ2QgbGlz
dAoKKCogVXNlZnVsIGltcGVyYXRpdmUgZmVhdHVyZXMgKikKdmFsIGxhemlm
eV90aHVuayA6ICh1bml0IC0+ICdhKSAtPiB1bml0IC0+ICdhCnZhbCBuZXdf
aW50ICAgICAgOiB1bml0IC0+IGludAp2YWwgbmV3X2ludHMgICAgIDogaW50
IC0+IGludCBsaXN0CnZhbCB3aXRoX2ZsYWcgICAgOiAnciByZWYgKiAoJ3Ig
LT4gJ3IpIC0+ICgnYSAtPiAnYikgLT4gJ2EgLT4gJ2IKCigqIEluZm9ybWF0
aW9uIGFib3V0IHRoZSBlbnZpcm9ubWVudCAqKQp2YWwgaG9zdCA6IHN0cmlu
Zwp2YWwgZGF0ZSA6IHVuaXQgLT4gc3RyaW5nCgplbmQKKCojbGluZSAwLjAg
ImJhc2ljL1VzZWZ1bC5zbWwiKikKKCogPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PSAqKQooKiBNTCBVVElMSVRZIEZVTkNUSU9OUyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICop
CigqIENyZWF0ZWQgYnkgSm9lIEh1cmQsIEFwcmlsIDIwMDEgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKikKKCogPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PSAqKQoKc3RydWN0dXJlIFVzZWZ1bCA6
PiBVc2VmdWwgPQpzdHJ1Y3QKCmluZml4ciAwIG9vICMjIHwtPjsKCigqIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCogRXhjZXB0aW9ucywg
cHJvZmlsaW5nIGFuZCB0cmFjaW5nLiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tICopCgpleGNlcHRpb24gRVJSX0VYTiBvZiB7b3JpZ2luX2Z1bmN0
aW9uIDogc3RyaW5nLCBtZXNzYWdlIDogc3RyaW5nfTsKZXhjZXB0aW9uIEJV
R19FWE4gb2Yge29yaWdpbl9mdW5jdGlvbiA6IHN0cmluZywgbWVzc2FnZSA6
IHN0cmluZ307CgpmdW4gRVJSIGYgcyA9IEVSUl9FWE4ge29yaWdpbl9mdW5j
dGlvbiA9IGYsIG1lc3NhZ2UgPSBzfTsKZnVuIEJVRyBmIHMgPSBCVUdfRVhO
IHtvcmlnaW5fZnVuY3Rpb24gPSBmLCBtZXNzYWdlID0gc307CgpmdW4gRVJS
X3RvX3N0cmluZyAoRVJSX0VYTiB7b3JpZ2luX2Z1bmN0aW9uLCBtZXNzYWdl
fSkgPQogICJcbkVSUiBpbiBmdW5jdGlvbiAiIF4gb3JpZ2luX2Z1bmN0aW9u
IF4gIjpcbiIgXiBtZXNzYWdlIF4gIlxuIgogIHwgRVJSX3RvX3N0cmluZyBf
ID0gcmFpc2UgQlVHICJFUlJfdG9fc3RyaW5nIiAibm90IGEgRVJSX0VYTiI7
CgpmdW4gQlVHX3RvX3N0cmluZyAoQlVHX0VYTiB7b3JpZ2luX2Z1bmN0aW9u
LCBtZXNzYWdlfSkgPQogICJcbkJVRyBpbiBmdW5jdGlvbiAiIF4gb3JpZ2lu
X2Z1bmN0aW9uIF4gIjpcbiIgXiBtZXNzYWdlIF4gIlxuIgogIHwgQlVHX3Rv
X3N0cmluZyBfID0gcmFpc2UgQlVHICJCVUdfdG9fc3RyaW5nIiAibm90IGEg
QlVHX0VYTiI7CgpmdW4gYXNzZXJ0IGIgZSA9IGlmIGIgdGhlbiAoKSBlbHNl
IHJhaXNlIGU7CgpmdW4gdHJ5IGYgYSA9IGYgYQogIGhhbmRsZSBoIGFzIEVS
Ul9FWE4gXyA9PiAocHJpbnQgKEVSUl90b19zdHJpbmcgaCk7IHJhaXNlIGgp
CiAgICAgICB8IGIgYXMgQlVHX0VYTiBfID0+IChwcmludCAoQlVHX3RvX3N0
cmluZyBiKTsgcmFpc2UgYikKICAgICAgIHwgZSA9PiAocHJpbnQgIlxudHJ5
OiBzdHJhbmdlIGV4Y2VwdGlvbiByYWlzZWRcbiI7IHJhaXNlIGUpOwoKZnVu
IHRvdGFsIGYgeCA9IFNPTUUgKGYgeCkgaGFuZGxlIEVSUl9FWE4gXyA9PiBO
T05FOwoKZnVuIGNhbiBmID0gT3B0aW9uLmlzU29tZSBvIHRvdGFsIGY7Cgpm
dW4gcGFydGlhbCAoZSBhcyBFUlJfRVhOIF8pIGYgeCA9IChjYXNlIGYgeCBv
ZiBTT01FIHkgPT4geSB8IE5PTkUgPT4gcmFpc2UgZSkKICB8IHBhcnRpYWwg
XyBfIF8gPSByYWlzZSBCVUcgInBhcnRpYWwiICJtdXN0IHRha2UgYSBFUlJf
RVhOIjsKCmZ1biB0aW1lZCBmIGEgPQogIGxldAogICAgdmFsIHRtciA9IFRp
bWVyLnN0YXJ0Q1BVVGltZXIgKCkKICAgIHZhbCByZXMgPSBmIGEKICAgIHZh
bCB7dXNyLCBzeXMsIC4uLn0gPSBUaW1lci5jaGVja0NQVVRpbWVyIHRtcgog
IGluCiAgICAoVGltZS50b1JlYWwgdXNyICsgVGltZS50b1JlYWwgc3lzLCBy
ZXMpCiAgZW5kOwoKdmFsIHRyYWNpbmcgPSByZWYgMTsKCnZhbCB0cmFjZXMg
OiB7bW9kdWxlIDogc3RyaW5nLCBhbGlnbm1lbnQgOiBpbnQgLT4gaW50fSBs
aXN0IHJlZiA9IHJlZiBbXTsKCmxvY2FsCiAgdmFsIE1BWCA9IDEwOwogIHZh
bCB0cmFjZV9wcmludGVyID0gcHJpbnQ7CiAgZnVuIHF1ZXJ5IG0gbCA9CiAg
ICBsZXQgdmFsIHQgPSBMaXN0LmZpbmQgKGZuIHttb2R1bGUsIC4uLn0gPT4g
bW9kdWxlID0gbSkgKCF0cmFjZXMpCiAgICBpbiBjYXNlIHQgb2YgTk9ORSA9
PiBNQVggfCBTT01FIHthbGlnbm1lbnQsIC4uLn0gPT4gYWxpZ25tZW50IGwK
ICAgIGVuZDsKaW4KICBmdW4gdHJhY2Uge21vZHVsZSA9IG0sIG1lc3NhZ2Ug
PSBzLCBsZXZlbCA9IGx9ID0KICAgIGlmIDAgPCAhdHJhY2luZyBhbmRhbHNv
IChNQVggPD0gIXRyYWNpbmcgb3JlbHNlIHF1ZXJ5IG0gbCA8PSAhdHJhY2lu
ZykKICAgIHRoZW4gdHJhY2VfcHJpbnRlciBzCiAgICBlbHNlICgpOwplbmQ7
CgooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigqIENvbWJp
bmF0b3JzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKikKKCogLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLSAqKQoKZnVuIEMgZiB4IHkgPSBmIHkgeDsKZnVuIEkg
eCA9IHg7CmZ1biBLIHggeSA9IHg7CmZ1biBOIDAgXyB4ID0geCB8IE4gbiBm
IHggPSBOIChuIC0gMSkgZiAoZiB4KTsKZnVuIFMgZiBnIHggPSBmIHggKGcg
eCk7CmZ1biBXIGYgeCA9IGYgeCB4OwpmdW4gZiBvbyBnID0gZm4geCA9PiBm
IG8gKGcgeCk7CgooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICop
CigqIEJvb2xlYW5zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKikKKCogLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoKZnVuIGJvb2xfdG9fc3RyaW5n
IHRydWUgPSAidHJ1ZSIKICB8IGJvb2xfdG9fc3RyaW5nIGZhbHNlID0gImZh
bHNlIjsKCmZ1biBub24gZiA9IG5vdCBvIGY7CgooKiAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tICopCigqIFBhaXJzICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKikKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoK
ZnVuIG9wIyMgKGYsIGcpICh4LCB5KSA9IChmIHgsIGcgeSk7CmZ1biBEIHgg
PSAoeCwgeCk7CmZ1biBEZiBmID0gZiAjIyBmOwpmdW4gZnN0ICh4LF8pID0g
eDsKZnVuIHNuZCAoXyx5KSA9IHk7CmZ1biBwYWlyIHggeSA9ICh4LCB5KQoo
KiBOb3RlOiB2YWwgYWRkX2ZzdCA9IHBhaXIgYW5kIGFkZF9zbmQgPSBDIHBh
aXI7ICopCmZ1biBjdXJyeSBmIHggeSA9IGYgKHgsIHkpOwpmdW4gdW5jdXJy
eSBmICh4LCB5KSA9IGYgeCB5OwpmdW4gZXF1YWwgeCB5ID0gKHggPSB5KTsK
CigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCogU3RhdGUg
dHJhbnNmb3JtZXJzLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tICopCgp2YWwgdW5pdCA6ICdhIC0+ICdzIC0+ICdhICog
J3MgPSBwYWlyOwoKZnVuIGJpbmQgZiAoZyA6ICdhIC0+ICdzIC0+ICdiICog
J3MpID0gdW5jdXJyeSBnIG8gZjsKCmZ1biBtbWFwIGYgKG0gOiAncyAtPiAn
YSAqICdzKSA9IGJpbmQgbSAodW5pdCBvIGYpOwoKZnVuIGpvaW4gKGYgOiAn
cyAtPiAoJ3MgLT4gJ2EgKiAncykgKiAncykgPSBiaW5kIGYgSTsKCmZ1biBt
d2hpbGUgYyBiID0gbGV0IGZ1biBmIGEgPSBpZiBjIGEgdGhlbiBiaW5kIChi
IGEpIGYgZWxzZSB1bml0IGEgaW4gZiBlbmQ7CgooKiAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tICopCigqIExpc3RzLiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKikKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoK
ZnVuIGNvbnMgeCB5ID0geCA6OiB5OwpmdW4gYXBwZW5kIHhzIHlzID0geHMg
QCB5czsKZnVuIHdyYXAgYSA9IFthXTsKZnVuIHVud3JhcCBbYV0gPSBhIHwg
dW53cmFwIF8gPSByYWlzZSBFUlIgInVud3JhcCIgIm5vdCBhIHNpbmdsZXRv
biI7CgpmdW4gZmlyc3QgZiBbXSA9IE5PTkUKICB8IGZpcnN0IGYgKHggOjog
eHMpID0gKGNhc2UgZiB4IG9mIE5PTkUgPT4gZmlyc3QgZiB4cyB8IHMgPT4g
cyk7CgpmdW4gaW5kZXggcCA9CiAgbGV0CiAgICBmdW4gaWR4IF8gW10gPSBO
T05FCiAgICAgIHwgaWR4IG4gKHggOjogeHMpID0gaWYgcCB4IHRoZW4gU09N
RSBuIGVsc2UgaWR4IChuICsgMSkgeHMKICBpbgogICAgaWR4IDAKICBlbmQ7
CgooKiBUaGlzIGlzIHRoZSBwdXJlIHZlcnNpb24KZnVuIG1hcHMgKF8gOiAn
YSAtPiAncyAtPiAnYiAqICdzKSBbXSA9IHVuaXQgW10KICB8IG1hcHMgZiAo
eCA6OiB4cykgPQogIGJpbmQgKGYgeCkgKGZuIHkgPT4gYmluZCAobWFwcyBm
IHhzKSAoZm4geXMgPT4gdW5pdCAoeSA6OiB5cykpKTsKKikKCigqIFRoaXMg
aXMgYW4gb3B0aW1pemVkIHZlcnNpb24gKikKZnVuIG1hcHMgZiA9CiAgbGV0
IGZ1biBnICh4LCAoeXMsIHMpKSA9IGxldCB2YWwgKHksIHMpID0gZiB4IHMg
aW4gKHkgOjogeXMsIHMpIGVuZAogIGluIGZuIGwgPT4gZm4gKHMgOiAncykg
PT4gKHJldiAjIyBJKSAoZm9sZGwgZyAoW10sIHMpIGwpCiAgZW5kOwoKKCog
VGhpcyBpcyB0aGUgcHVyZSB2ZXJzaW9uCmZ1biBwYXJ0aWFsX21hcHMgKF8g
OiAnYSAtPiAncyAtPiAnYiBvcHRpb24gKiAncykgW10gPSB1bml0IFtdCiAg
fCBwYXJ0aWFsX21hcHMgZiAoeCA6OiB4cykgPQogIGJpbmQgKGYgeCkKICAo
Zm4geW8gPT4gYmluZCAocGFydGlhbF9tYXBzIGYgeHMpCiAgIChmbiB5cyA9
PiB1bml0IChjYXNlIHlvIG9mIE5PTkUgPT4geXMgfCBTT01FIHkgPT4geSA6
OiB5cykpKTsKKikKCigqIFRoaXMgaXMgYW4gb3B0aW1pemVkIHZlcnNpb24g
KikKZnVuIHBhcnRpYWxfbWFwcyBmID0KICBsZXQKICAgIGZ1biBnICh4LCAo
eXMsIHMpKSA9CiAgICAgIGxldCB2YWwgKHlvLCBzKSA9IGYgeCBzCiAgICAg
IGluIChjYXNlIHlvIG9mIE5PTkUgPT4geXMgfCBTT01FIHkgPT4geSA6OiB5
cywgcykKICAgICAgZW5kCiAgaW4KICAgIGZuIGwgPT4gZm4gKHMgOiAncykg
PT4gKHJldiAjIyBJKSAoZm9sZGwgZyAoW10sIHMpIGwpCiAgZW5kOwoKZnVu
IGVudW1lcmF0ZSBuID0gZnN0IG8gQyAobWFwcyAoZm4geCA9PiBmbiBtID0+
ICgobSwgeCksIG0gKyAxKSkpIG47CgpmdW4gemlwd2l0aCBmID0KICBsZXQK
ICAgIGZ1biB6IGwgW10gW10gPSBsCiAgICAgIHwgeiBsICh4IDo6IHhzKSAo
eSA6OiB5cykgPSB6IChmIHggeSA6OiBsKSB4cyB5cwogICAgICB8IHogXyBf
IF8gPSByYWlzZSBFUlIgInppcHdpdGgiICJsaXN0cyBkaWZmZXJlbnQgbGVu
Z3RocyI7CiAgaW4KICAgIGZuIHhzID0+IGZuIHlzID0+IHJldiAoeiBbXSB4
cyB5cykKICBlbmQ7CgpmdW4gemlwIHhzIHlzID0gemlwd2l0aCBwYWlyIHhz
IHlzOwoKZnVuIHVuemlwIGFiID0KICBmb2xkbCAoZm4gKCh4LCB5KSwgKHhz
LCB5cykpID0+ICh4IDo6IHhzLCB5IDo6IHlzKSkgKFtdLCBbXSkgKHJldiBh
Yik7CgpmdW4gY2FydHdpdGggZiA9CiAgbGV0CiAgICBmdW4gYXV4IF8gcmVz
IF8gW10gPSByZXMKICAgICAgfCBhdXggeHNfY29weSByZXMgW10gKHkgOjog
eXQpID0gYXV4IHhzX2NvcHkgcmVzIHhzX2NvcHkgeXQKICAgICAgfCBhdXgg
eHNfY29weSByZXMgKHggOjogeHQpICh5cyBhcyB5IDo6IF8pID0KICAgICAg
YXV4IHhzX2NvcHkgKGYgeCB5IDo6IHJlcykgeHQgeXMKICBpbgogICAgZm4g
eHMgPT4gZm4geXMgPT4KICAgIGxldCB2YWwgeHMnID0gcmV2IHhzIGluIGF1
eCB4cycgW10geHMnIChyZXYgeXMpIGVuZAogIGVuZDsKCmxvY2FsCiAgZnVu
IGF1eCByZXMgbCAwID0gKHJldiByZXMsIGwpCiAgICB8IGF1eCBfIFtdIF8g
PSByYWlzZSBTdWJzY3JpcHQKICAgIHwgYXV4IHJlcyAoaCA6OiB0KSBuID0g
YXV4IChoIDo6IHJlcykgdCAobiAtIDEpOwppbgogIGZ1biBzcGxpdCBsIG4g
PSBhdXggW10gbCBuOwplbmQ7CgpmdW4gdXBkYXRlX250aCBmIG4gbCA9CiAg
bGV0CiAgICB2YWwgKGEsIGIpID0gc3BsaXQgbCBuCiAgaW4KICAgIGNhc2Ug
YiBvZiBbXSA9PiByYWlzZSBTdWJzY3JpcHQKICAgIHwgaCA6OiB0ID0+IGEg
QCAoZiBoIDo6IHQpCiAgZW5kOwoKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLSAqKQooKiBMaXN0cy1hcy1zZXRzLiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICop
CigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKCmZ1biBtZW0g
eCA9IExpc3QuZXhpc3RzIChlcXVhbCB4KTsKCmZ1biBpbnNlcnQgeCBzID0g
aWYgbWVtIHggcyB0aGVuIHMgZWxzZSB4IDo6IHM7CmZ1biBkZWxldGUgeCBz
ID0gTGlzdC5maWx0ZXIgKG5vdCBvIGVxdWFsIHgpIHM7CgooKiBSZW1vdmVz
IGR1cGxpY2F0ZXMgKikKZnVuIHNldGlmeSBzID0gZm9sZGwgKGZuICh2LCB4
KSA9PiBpZiBtZW0gdiB4IHRoZW4geCBlbHNlIHYgOjogeCkgW10gczsKCigq
IEZvciBhbGwgdGhyZWUgc2V0IG9wZXJhdGlvbnM6IGlmIHMgaGFzIGR1cGxp
Y2F0ZXMsIHNvIG1heSB0aGUgcmVzdWx0LiAqKQpmdW4gdW5pb24gcyB0ID0g
Zm9sZGwgKGZuICh2LCB4KSA9PiBpZiBtZW0gdiB4IHRoZW4geCBlbHNlIHYg
OjogeCkgcyB0OwpmdW4gaW50ZXJzZWN0IHMgdCA9IGZvbGRsIChmbiAodiwg
eCkgPT4gaWYgbWVtIHYgdCB0aGVuIHYgOjogeCBlbHNlIHgpIFtdIHM7CmZ1
biBzdWJ0cmFjdCBzIHQgPSBmb2xkbCAoZm4gKHYsIHgpID0+IGlmIG1lbSB2
IHQgdGhlbiB4IGVsc2UgdiA6OiB4KSBbXSBzOwoKZnVuIHN1YnNldCBzIHQg
PSBMaXN0LmFsbCAoZm4geCA9PiBtZW0geCB0KSBzOwoKZnVuIGRpc3RpbmN0
IFtdID0gdHJ1ZQogIHwgZGlzdGluY3QgKHggOjogcmVzdCkgPSBub3QgKG1l
bSB4IHJlc3QpIGFuZGFsc28gZGlzdGluY3QgcmVzdDsKCigqIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCogQ29tcGFyaXNvbnMuICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
ICopCgpmdW4gbGV4X2NvbXBhcmUgZiA9CiAgbGV0CiAgICBmdW4gbGV4IFtd
ID0gRVFVQUwKICAgICAgfCBsZXggKHggOjogbCkgPSBjYXNlIGYgeCBvZiBF
UVVBTCA9PiBsZXggbCB8IHkgPT4geQogIGluCiAgICBsZXgKICBlbmQ7Cgoo
KiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigqIEZpbmRpbmcg
dGhlIG1pbmltYWwgZWxlbWVudCBvZiBhIGxpc3QsIHdydCBzb21lIG9yZGVy
LiAgICAgICAgICAgICAgICAgICAgKikKKCogLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLSAqKQoKZnVuIG1pbiBmID0KICBsZXQKICAgIGZ1biBtaW5f
YWNjIGJlc3QgW10gPSBiZXN0CiAgICAgIHwgbWluX2FjYyBiZXN0IChoIDo6
IHQpID0gbWluX2FjYyAoaWYgZiBiZXN0IGggdGhlbiBiZXN0IGVsc2UgaCkg
dAogIGluCiAgICBmbiBbXSA9PiByYWlzZSBFUlIgIm1pbiIgImVtcHR5IGxp
c3QiCiAgICAgfCBoIDo6IHQgPT4gbWluX2FjYyBoIHQKICBlbmQ7CgooKiAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigqIE1lcmdlIChmb3Ig
dGhlIGZvbGxvd2luZyBtZXJnZS1zb3J0LCBidXQgZ2VuZXJhbGx5IHVzZWZ1
bCB0b28pLiAgICAgICAgICAgKikKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLSAqKQoKZnVuIG1lcmdlIGYgPQogIGxldAogICAgZnVuIG1yZyBy
ZXMgW10geXMgPSBmb2xkbCAob3AgOjopIHlzIHJlcwogICAgICB8IG1yZyBy
ZXMgeHMgW10gPSBmb2xkbCAob3AgOjopIHhzIHJlcwogICAgICB8IG1yZyBy
ZXMgKHhzIGFzIHggOjogeHQpICh5cyBhcyB5IDo6IHl0KSA9CiAgICAgIGlm
IGYgeCB5IHRoZW4gbXJnICh4IDo6IHJlcykgeHQgeXMgZWxzZSBtcmcgKHkg
OjogcmVzKSB4cyB5dAogIGluCiAgICBtcmcgW10KICBlbmQ7CgooKiAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigqIE9yZGVyIGZ1bmN0aW9u
IGhlcmUgc2hvdWxkIGJlIDw9IGZvciBhIHN0YWJsZSBzb3J0Li4uICAgICAg
ICAgICAgICAgICAgICAgKikKKCogLi4uYW5kIEkgdGhpbmsgPCBnaXZlcyBh
IHJldmVyc2Ugc3RhYmxlIHNvcnQgKGJ1dCBkb24ndCBxdW90ZSBtZSkuICAg
ICAgICAqKQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCgpm
dW4gc29ydCBmID0KICBsZXQKICAgIGZ1biBzcnQgW10gPSBbXQogICAgICB8
IHNydCAobCBhcyBbeF0pID0gbAogICAgICB8IHNydCBsID0KICAgICAgbGV0
CiAgICAgICAgdmFsIGhhbGZ3YXkgPSBsZW5ndGggbCBkaXYgMgogICAgICBp
bgogICAgICAgIG1lcmdlIGYgKHNydCAoTGlzdC50YWtlIChsLCBoYWxmd2F5
KSkpIChzcnQgKExpc3QuZHJvcCAobCwgaGFsZndheSkpKQogICAgICBlbmQK
ICBpbgogICAgc3J0CiAgZW5kOwoKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLSAqKQooKiBJbnRlZ2Vycy4gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICop
CigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKCnZhbCBpbnRf
dG9fc3RyaW5nID0gSW50LnRvU3RyaW5nOwp2YWwgc3RyaW5nX3RvX2ludCA9
IE9wdGlvbi52YWxPZiBvIEludC5mcm9tU3RyaW5nOwoKZnVuIGludF90b19i
aXRzIDAgPSBbXQogIHwgaW50X3RvX2JpdHMgbiA9IChuIG1vZCAyIDw+IDAp
IDo6IChpbnRfdG9fYml0cyAobiBkaXYgMikpOwoKZnVuIGJpdHNfdG9faW50
IFtdID0gMAogIHwgYml0c190b19pbnQgKGggOjogdCkgPSAoaWYgaCB0aGVu
IGN1cnJ5IG9wKyAxIGVsc2UgSSkgKDIgKiBiaXRzX3RvX2ludCB0KTsKCmZ1
biBpbnRlcnZhbCBtIDAgPSBbXQogIHwgaW50ZXJ2YWwgbSBsZW4gPSBtIDo6
IGludGVydmFsIChtICsgMSkgKGxlbiAtIDEpOwoKZnVuIGRpdmlkZXMgYSBi
ID0gaWYgYSA9IDAgdGhlbiBiID0gMCBlbHNlIGIgbW9kIChJbnQuYWJzIGEp
ID0gMDsKCmxvY2FsCiAgZnVuIGJvdGggZiBnIG4gPSBmIG4gYW5kYWxzbyBn
IG47CiAgZnVuIG5leHQgZiA9IGxldCBmdW4gbnggeCA9IGlmIGYgeCB0aGVu
IHggZWxzZSBueCAoeCArIDEpIGluIG54IGVuZDsKCiAgZnVuIGxvb2tpbmcg
cmVzIDAgXyBfID0gcmV2IHJlcwogICAgfCBsb29raW5nIHJlcyBuIGYgeCA9
CiAgICBsZXQKICAgICAgdmFsIHAgPSBuZXh0IGYgeAogICAgICB2YWwgcmVz
JyA9IHAgOjogcmVzCiAgICAgIHZhbCBmJyA9IGJvdGggZiAobm90IG8gZGl2
aWRlcyBwKQogICAgaW4KICAgICAgbG9va2luZyByZXMnIChuIC0gMSkgZicg
KHAgKyAxKQogICAgZW5kCmluCiAgZnVuIHByaW1lcyBuID0gbG9va2luZyBb
XSBuIChLIHRydWUpIDIKZW5kOwoKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLSAqKQooKiBTdHJpbmdzLiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICop
CigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKCmZ1biB2YXJp
YW50IHggdmFycyA9IGlmIG1lbSB4IHZhcnMgdGhlbiB2YXJpYW50ICh4IF4g
IiciKSB2YXJzIGVsc2UgeDsKCmZ1biB2YXJpYW50X251bSB4IHZhcnMgPQog
IGxldAogICAgZnVuIHhuIG4gPSB4IF4gaW50X3RvX3N0cmluZyBuCiAgICBm
dW4gdiBuID0gbGV0IHZhbCB4JyA9IHhuIG4gaW4gaWYgbWVtIHgnIHZhcnMg
dGhlbiB2IChuICsgMSkgZWxzZSB4JyBlbmQKICBpbgogICAgaWYgbWVtIHgg
dmFycyB0aGVuIHYgMSBlbHNlIHgKICBlbmQ7CgpmdW4gZGVzdF9wcmVmaXgg
cCA9CiAgbGV0CiAgICBmdW4gY2hlY2sgcyA9IGFzc2VydCAoU3RyaW5nLmlz
UHJlZml4IHAgcykgKEVSUiAiZGVzdF9wcmVmaXgiICIiKQogICAgdmFsIHNp
emVfcCA9IHNpemUgcAogIGluCiAgICBmbiBzID0+IChjaGVjayBzOyBTdHJp
bmcuZXh0cmFjdCAocywgc2l6ZV9wLCBOT05FKSkKICBlbmQ7CgpmdW4gaXNf
cHJlZml4IHAgPSBjYW4gKGRlc3RfcHJlZml4IHApOwoKZnVuIG1rX3ByZWZp
eCBwIHMgPSBwIF4gczsKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0gKikKKCogUmVhbHMuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCgp2YWwgcmVhbF90b19z
dHJpbmcgPSBSZWFsLnRvU3RyaW5nOwoKKCogLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLSAqKQooKiBQcmV0dHktcHJpbnRpbmcuICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKCnR5cGUg
J2EgcHAgPSBwcHN0cmVhbSAtPiAnYSAtPiB1bml0OwoKdmFsIExJTkVfTEVO
R1RIID0gcmVmIDc1OwoKZnVuIHVuaXRfcHAgcHBfYSBhIHBwICgpID0gcHBf
YSBwcCBhOwoKZnVuIHBwX3VuaXRfcHAgcHAgdXBwID0gdXBwIHBwICgpOwoK
ZnVuIHBwX21hcCBmIHBwX2EgKHBwc3RybSA6IHBwc3RyZWFtKSB4IDogdW5p
dCA9IHBwX2EgcHBzdHJtIChmIHgpOwoKZnVuIHBwX2JyYWNrZXQgKGwsIHIp
IHBwX2EgcHAgYSA9CiAgKFBQLmJlZ2luX2Jsb2NrIHBwIFBQLklOQ09OU0lT
VEVOVCAoc2l6ZSBsKTsgUFAuYWRkX3N0cmluZyBwcCBsOyBwcF9hIHBwIGE7
CiAgIFBQLmFkZF9zdHJpbmcgcHAgcjsgUFAuZW5kX2Jsb2NrIHBwKTsKCmZ1
biBwcF9zZXF1ZW5jZSBzZXAgcHBfYSA9CiAgbGV0CiAgICBmdW4gcHBfZWx0
IHBwIHggPSAoUFAuYWRkX3N0cmluZyBwcCBzZXA7IFBQLmFkZF9icmVhayBw
cCAoMSwgMCk7IHBwX2EgcHAgeCkKICAgIGZ1biBwcF9zZXEgcHAgW10gICAg
ICAgPSAoKQogICAgICB8IHBwX3NlcSBwcCAoaCA6OiB0KSA9IChwcF9hIHBw
IGg7IGFwcCAocHBfZWx0IHBwKSB0KQogIGluCiAgICBmbiBwcCA9PiBmbiBs
ID0+CiAgICAoUFAuYmVnaW5fYmxvY2sgcHAgUFAuSU5DT05TSVNURU5UIDA7
IHBwX3NlcSBwcCBsOyBQUC5lbmRfYmxvY2sgcHApCiAgZW5kOwoKZnVuIHBw
X3Vub3AgcyBwcF9hIHBwIGEgPQogIChQUC5iZWdpbl9ibG9jayBwcCBQUC5D
T05TSVNURU5UIDA7CiAgIFBQLmFkZF9zdHJpbmcgcHAgczsKICAgUFAuYWRk
X2JyZWFrIHBwICgxLCAwKTsKICAgcHBfYSBwcCBhOwogICBQUC5lbmRfYmxv
Y2sgcHApOwoKZnVuIHBwX2Jpbm9wIHMgcHBfYSBwcF9iIHBwIChhLCBiKSA9
CiAgKFBQLmJlZ2luX2Jsb2NrIHBwIFBQLkNPTlNJU1RFTlQgMDsKICAgcHBf
YSBwcCBhOwogICBQUC5hZGRfc3RyaW5nIHBwIHM7CiAgIFBQLmFkZF9icmVh
ayBwcCAoMSwgMCk7CiAgIHBwX2IgcHAgYjsKICAgUFAuZW5kX2Jsb2NrIHBw
KTsKCmZ1biBwcF9ub3RoaW5nIHBwIF8gPSAoUFAuYmVnaW5fYmxvY2sgcHAg
UFAuQ09OU0lTVEVOVCAwOyBQUC5lbmRfYmxvY2sgcHApOwoKZnVuIHBwX3N0
cmluZyBwcCBzID0KICAoUFAuYmVnaW5fYmxvY2sgcHAgUFAuQ09OU0lTVEVO
VCAwOyBQUC5hZGRfc3RyaW5nIHBwIHM7IFBQLmVuZF9ibG9jayBwcCk7Cgp2
YWwgcHBfdW5pdCA9IHBwX21hcCAoSyAiKCkiKSBwcF9zdHJpbmc7Cgp2YWwg
cHBfYm9vbCA9IHBwX21hcCBib29sX3RvX3N0cmluZyBwcF9zdHJpbmc7Cgp2
YWwgcHBfaW50ID0gcHBfbWFwIGludF90b19zdHJpbmcgcHBfc3RyaW5nOwoK
dmFsIHBwX3JlYWwgPSBwcF9tYXAgcmVhbF90b19zdHJpbmcgcHBfc3RyaW5n
OwoKdmFsIHBwX29yZGVyID0KICBwcF9tYXAgKGZuIExFU1MgPT4gIkxFU1Mi
IHwgRVFVQUwgPT4gIkVRVUFMIiB8IEdSRUFURVIgPT4gIkdSRUFURVIiKQog
IHBwX3N0cmluZzsKCmZ1biBwcF9saXN0IHBwX2EgPSBwcF9icmFja2V0ICgi
WyIsICJdIikgKHBwX3NlcXVlbmNlICIsIiBwcF9hKTsKCmZ1biBwcF9wYWly
IHBwX2EgcHBfYiA9IHBwX2JyYWNrZXQgKCIoIiwgIikiKSAocHBfYmlub3Ag
IiwiIHBwX2EgcHBfYik7CgpmdW4gcHBfdHJpcGxlIHBwX2EgcHBfYiBwcF9j
ID0KICBwcF9icmFja2V0ICgiKCIsICIpIikKICAocHBfbWFwIChmbiAoYSwg
YiwgYykgPT4gKGEsIChiLCBjKSkpCiAgIChwcF9iaW5vcCAiLCIgcHBfYSAo
cHBfYmlub3AgIiwiIHBwX2IgcHBfYykpKTsKCmxvY2FsCiAgdmFsIHBwX2wg
PSBwcF9zZXF1ZW5jZSAiLCIgKHBwX2Jpbm9wICIgPSIgcHBfc3RyaW5nIHBw
X3VuaXRfcHApOwppbgogIGZ1biBwcF9yZWNvcmQgbCA9IHBwX2JyYWNrZXQg
KCJ7IiwgIn0iKSAodW5pdF9wcCBwcF9sIGwpOwplbmQ7CgpmdW4gcHBfb3B0
aW9uIHBwX2EgcHAgTk9ORSA9IHBwX3N0cmluZyBwcCAiTk9ORSIKICB8IHBw
X29wdGlvbiBwcF9hIHBwIChTT01FIGEpID0gcHBfdW5vcCAiU09NRSIgcHBf
YSBwcCBhOwoKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoo
KiBTdW1zLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigqIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKCmRhdGF0eXBlICgnYSwgJ2IpIHN1
bSA9IElOTCBvZiAnYSB8IElOUiBvZiAnYgoKZnVuIGlzX2lubCAoSU5MIF8p
ID0gdHJ1ZSB8IGlzX2lubCAoSU5SIF8pID0gZmFsc2U7CgpmdW4gaXNfaW5y
IChJTlIgXykgPSB0cnVlIHwgaXNfaW5yIChJTkwgXykgPSBmYWxzZTsKCigq
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCogTWFwbGV0cy4g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tICopCgpkYXRhdHlwZSAoJ2EsICdiKSBtYXBsZXQgPSB8LT4g
b2YgJ2EgKiAnYjsKCmZ1biBwcF9tYXBsZXQgcHBfYSBwcF9iID0KICBwcF9t
YXAgKGZuIGEgfC0+IGIgPT4gKGEsIGIpKSAocHBfYmlub3AgIiB8LT4iIHBw
X2EgcHBfYik7CgooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICop
CigqIFRyZWVzLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKikKKCogLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoKZGF0YXR5cGUgKCdhLCAnYikg
dHJlZSA9IEJSQU5DSCBvZiAnYSAqICgnYSwgJ2IpIHRyZWUgbGlzdCB8IExF
QUYgb2YgJ2I7CgpmdW4gdHJlZV9zaXplIChMRUFGIF8pID0gMQogIHwgdHJl
ZV9zaXplIChCUkFOQ0ggKF8sIHQpKSA9IGZvbGRsIChvcCsgbyAodHJlZV9z
aXplICMjIEkpKSAxIHQ7CgpmdW4gdHJlZV9mb2xkciBmX2IgZl9sIChMRUFG
IGwpID0gZl9sIGwKICB8IHRyZWVfZm9sZHIgZl9iIGZfbCAoQlJBTkNIIChw
LCBzKSkgPSBmX2IgcCAobWFwICh0cmVlX2ZvbGRyIGZfYiBmX2wpIHMpOwoK
ZnVuIHRyZWVfZm9sZGwgZl9iIGZfbCA9CiAgbGV0CiAgICBmdW4gZm9sZCBz
dGF0ZSAoTEVBRiBsLCByZXMpID0gZl9sIGwgc3RhdGUgOjogcmVzCiAgICAg
IHwgZm9sZCBzdGF0ZSAoQlJBTkNIIChwLCB0cyksIHJlcykgPSBmb2xkbCAo
Zm9sZCAoZl9iIHAgc3RhdGUpKSByZXMgdHMKICBpbgogICAgZm4gc3RhdGUg
PT4gZm4gdCA9PiBmb2xkIHN0YXRlICh0LCBbXSkKICBlbmQ7CgpmdW4gdHJl
ZV9wYXJ0aWFsX2ZvbGRsIGZfYiBmX2wgPQogIGxldAogICAgZnVuIGZvbGQg
c3RhdGUgKExFQUYgbCwgcmVzKSA9CiAgICAgIChjYXNlIGZfbCBsIHN0YXRl
IG9mIE5PTkUgPT4gcmVzIHwgU09NRSB4ID0+IHggOjogcmVzKQogICAgICB8
IGZvbGQgc3RhdGUgKEJSQU5DSCAocCwgdHMpLCByZXMpID0KICAgICAgKGNh
c2UgZl9iIHAgc3RhdGUgb2YgTk9ORSA9PiByZXMgfCBTT01FIHMgPT4gZm9s
ZGwgKGZvbGQgcykgcmVzIHRzKQogIGluCiAgICBmbiBzdGF0ZSA9PiBmbiB0
ID0+IGZvbGQgc3RhdGUgKHQsIFtdKQogIGVuZDsKCigqIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0gKikKKCogVXNlZnVsIGltcGVyYXRpdmUgZmVh
dHVyZXMuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICop
CgpmdW4gbGF6aWZ5X3RodW5rIGYgPSBsZXQgdmFsIHMgPSBTdXNwLmRlbGF5
IGYgaW4gZm4gKCkgPT4gU3VzcC5mb3JjZSBzIGVuZDsKCmxvY2FsCiAgdmFs
IGdlbmVyYXRvciA9IHJlZiAwCmluCiAgZnVuIG5ld19pbnQgKCkgPSBsZXQg
dmFsIG4gPSAhZ2VuZXJhdG9yIHZhbCAoKSA9IGdlbmVyYXRvciA6PSBuICsg
MSBpbiBuIGVuZDsKCiAgZnVuIG5ld19pbnRzIDAgPSBbXQogICAgfCBuZXdf
aW50cyBrID0KICAgIGxldCB2YWwgbiA9ICFnZW5lcmF0b3IgdmFsICgpID0g
Z2VuZXJhdG9yIDo9IG4gKyBrIGluIGludGVydmFsIG4gayBlbmQ7CmVuZDsK
CmZ1biB3aXRoX2ZsYWcgKHIsIHVwZGF0ZSkgZiB4ID0KICBsZXQKICAgIHZh
bCBvbGQgPSAhcgogICAgdmFsICgpID0gciA6PSB1cGRhdGUgb2xkCiAgICB2
YWwgeSA9IGYgeCBoYW5kbGUgZSA9PiAociA6PSBvbGQ7IHJhaXNlIGUpCiAg
ICB2YWwgKCkgPSByIDo9IG9sZAogIGluCiAgICB5CiAgZW5kOwoKKCogLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQooKiBJbmZvcm1hdGlvbiBh
Ym91dCB0aGUgZW52aXJvbm1lbnQuICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0gKikKCnZhbCBob3N0ID0gT3B0aW9uLmdldE9wdCAoT1MuUHJvY2Vz
cy5nZXRFbnYgIkhPU1ROQU1FIiwgInVua25vd24iKTsKCnZhbCBkYXRlID0g
RGF0ZS5mbXQgIiVIOiVNOiVTICVkLyVtLyVZIiBvIERhdGUuZnJvbVRpbWVM
b2NhbCBvIFRpbWUubm93OwoKZW5kCigqI2xpbmUgMC4wICJiYXNpYy9RdWV1
ZS5zaWciKikKKCogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqKQoo
KiBBIFFVRVVFIERBVEFUWVBFIEZPUiBNTCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigqIENyZWF0ZWQg
YnkgSm9lIEh1cmQsIE9jdG9iZXIgMjAwMSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKikKKCogPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PSAqKQoKc2lnbmF0dXJlIFF1ZXVlID0Kc2lnCgp0eXBlICdh
IHF1ZXVlCgp2YWwgZW1wdHkgICAgIDogJ2EgcXVldWUKdmFsIGFkZCAgICAg
ICA6ICdhIC0+ICdhIHF1ZXVlIC0+ICdhIHF1ZXVlCnZhbCBpc19lbXB0eSAg
OiAnYSBxdWV1ZSAtPiBib29sCnZhbCBoZCAgICAgICAgOiAnYSBxdWV1ZSAt
PiAnYSAgICAgICAgICAgICAgICgqIHJhaXNlcyBFbXB0eSAqKQp2YWwgdGwg
ICAgICAgIDogJ2EgcXVldWUgLT4gJ2EgcXVldWUgICAgICAgICAoKiByYWlz
ZXMgRW1wdHkgKikKdmFsIGxlbmd0aCAgICA6ICdhIHF1ZXVlIC0+IGludAp2
YWwgZnJvbV9saXN0IDogJ2EgbGlzdCAtPiAnYSBxdWV1ZQp2YWwgdG9fbGlz
dCAgIDogJ2EgcXVldWUgLT4gJ2EgbGlzdAp2YWwgcHBfcXVldWUgIDogJ2Eg
VXNlZnVsLnBwIC0+ICdhIHF1ZXVlIFVzZWZ1bC5wcAoKZW5kCigqI2xpbmUg
MC4wICJiYXNpYy9RdWV1ZS5zbWwiKikKKCogPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PSAqKQooKiBBIFFVRVVFIERBVEFUWVBFIEZPUiBNTCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICopCigqIENyZWF0ZWQgYnkgSm9lIEh1cmQsIE9jdG9iZXIgMjAwMSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKikKKCogPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PSAqKQoKc3RydWN0dXJlIFF1ZXVl
IDo+IFF1ZXVlID0Kc3RydWN0Cgp0eXBlICdhIHF1ZXVlID0gJ2EgbGlzdCAq
ICdhIGxpc3Q7Cgp2YWwgZW1wdHkgOiAnYSBxdWV1ZSA9IChbXSwgW10pOwoK
ZnVuIG5vcm0gKFtdLCB5cyBhcyBfIDo6IF8pID0gKHJldiB5cywgW10pCiAg
fCBub3JtIHEgPSBxOwoKZnVuIGFkZCB6ICh4cywgeXMpID0gbm9ybSAoeHMs
IHogOjogeXMpOwoKZnVuIGlzX2VtcHR5IChbXSwgXykgPSB0cnVlCiAgfCBp
c19lbXB0eSAoXyA6OiBfLCBfKSA9IGZhbHNlOwoKZnVuIGhkIChbXSwgXykg
PSByYWlzZSBFbXB0eQogIHwgaGQgKHggOjogXywgXykgPSB4OwoKZnVuIHRs
IChbXSwgXykgPSByYWlzZSBFbXB0eQogIHwgdGwgKF8gOjogeHMsIHlzKSA9
IG5vcm0gKHhzLCB5cyk7Cgp2YWwgbGVuZ3RoID0gZm4gKHhzLCB5cykgPT4g
bGVuZ3RoIHhzICsgbGVuZ3RoIHlzOwoKZnVuIGZyb21fbGlzdCBsID0gKHJl
diBsLCBbXSk7CgpmdW4gdG9fbGlzdCAoeHMsIHlzKSA9IHhzIEAgcmV2IHlz
OwoKbG9jYWwKICBvcGVuIFVzZWZ1bDsKaW4KICBmdW4gcHBfcXVldWUgcHBf
YSA9CiAgICBwcF9tYXAgdG9fbGlzdCAocHBfYnJhY2tldCAoIlFbIiwgIl0i
KSAocHBfc2VxdWVuY2UgIiwiIHBwX2EpKTsKZW5kOwoKZW5kCigqI2xpbmUg
MC4wICJiYXNpYy9IZWFwLnNpZyIqKQooKiA9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09ICopCigqIEEgSEVBUCBEQVRBVFlQRSBGT1IgTUwgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KikKKCogQ3JlYXRlZCBieSBKb2UgSHVyZCwgT2N0b2JlciAyMDAxICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiBUYWtl
biBmcm9tIFB1cmVseSBGdW5jdGlvbmFsIERhdGEgU3RydWN0dXJlcywgYnkg
Q2hyaXMgT2thc2FraS4gICAgICAgICAgICopCigqID09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0gKikKCnNpZ25hdHVyZSBIZWFwID0Kc2lnCgp0eXBl
ICdhIGhlYXAKCnZhbCBlbXB0eSAgICA6ICgnYSAqICdhIC0+IG9yZGVyKSAt
PiAnYSBoZWFwCnZhbCBhZGQgICAgICA6ICdhIC0+ICdhIGhlYXAgLT4gJ2Eg
aGVhcAp2YWwgaXNfZW1wdHkgOiAnYSBoZWFwIC0+IGJvb2wKdmFsIHRvcCAg
ICAgIDogJ2EgaGVhcCAtPiAnYSAgICAgICAgICAgICgqIHJhaXNlcyBFbXB0
eSAqKQp2YWwgcmVtb3ZlICAgOiAnYSBoZWFwIC0+ICdhICogJ2EgaGVhcCAg
KCogcmFpc2VzIEVtcHR5ICopCnZhbCBzaXplICAgICA6ICdhIGhlYXAgLT4g
aW50CnZhbCBhcHAgICAgICA6ICgnYSAtPiB1bml0KSAtPiAnYSBoZWFwIC0+
IHVuaXQKdmFsIHRvX2xpc3QgIDogJ2EgaGVhcCAtPiAnYSBsaXN0CnZhbCBw
cF9oZWFwICA6ICdhIFVzZWZ1bC5wcCAtPiAnYSBoZWFwIFVzZWZ1bC5wcAoK
ZW5kCigqI2xpbmUgMC4wICJiYXNpYy9IZWFwLnNtbCIqKQooKiA9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09ICopCigqIEEgSEVBUCBEQVRBVFlQRSBG
T1IgTUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKikKKCogQ3JlYXRlZCBieSBKb2UgSHVyZCwgT2N0b2Jl
ciAyMDAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAqKQooKiBUYWtlbiBmcm9tIFB1cmVseSBGdW5jdGlvbmFsIERhdGEgU3Ry
dWN0dXJlcywgYnkgQ2hyaXMgT2thc2FraS4gICAgICAgICAgICopCigqID09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0gKikKCigqCiopCnN0cnVjdHVy
ZSBIZWFwIDo+IEhlYXAgPQpzdHJ1Y3QKCmRhdGF0eXBlICdhIG5vZGUgPSBF
IHwgVCBvZiBpbnQgKiAnYSAqICdhIG5vZGUgKiAnYSBub2RlOwoKZGF0YXR5
cGUgJ2EgaGVhcCA9IEhlYXAgb2YgKCdhICogJ2EgLT4gb3JkZXIpICogaW50
ICogJ2Egbm9kZTsKCmZ1biByYW5rIEUgPSAwCiAgfCByYW5rIChUIChyLCBf
LCBfLCBfKSkgPSByOwoKZnVuIG1ha2VUICh4LCBhLCBiKSA9CiAgaWYgcmFu
ayBhID49IHJhbmsgYiB0aGVuIFQgKHJhbmsgYiArIDEsIHgsIGEsIGIpIGVs
c2UgVCAocmFuayBhICsgMSwgeCwgYiwgYSk7CgpmdW4gbWVyZ2UgZiA9CiAg
bGV0CiAgICBmdW4gbXJnIChoLCBFKSA9IGgKICAgICAgfCBtcmcgKEUsIGgp
ID0gaAogICAgICB8IG1yZyAoaDEgYXMgVCAoXywgeCwgYTEsIGIxKSwgaDIg
YXMgVCAoXywgeSwgYTIsIGIyKSkgPQogICAgICAoY2FzZSBmICh4LCB5KSBv
ZiBHUkVBVEVSID0+IG1ha2VUICh5LCBhMiwgbXJnIChoMSwgYjIpKQogICAg
ICAgfCBfID0+IG1ha2VUICh4LCBhMSwgbXJnIChiMSwgaDIpKSkKICBpbgog
ICAgbXJnCiAgZW5kOwoKZnVuIGVtcHR5IGYgPSBIZWFwIChmLCAwLCBFKTsK
CmZ1biBhZGQgeCAoSGVhcCAoZiwgbiwgYSkpID0gSGVhcCAoZiwgbiArIDEs
IG1lcmdlIGYgKFQgKDEsIHgsIEUsIEUpLCBhKSk7CgpmdW4gaXNfZW1wdHkg
KEhlYXAgKF8sIF8sIEUpKSA9IHRydWUKICB8IGlzX2VtcHR5IChIZWFwIChf
LCBfLCBUIF8pKSA9IGZhbHNlOwoKZnVuIHRvcCAoSGVhcCAoXywgXywgRSkp
ID0gcmFpc2UgRW1wdHkKICB8IHRvcCAoSGVhcCAoXywgXywgVCAoXywgeCwg
XywgXykpKSA9IHg7CgpmdW4gcmVtb3ZlIChIZWFwIChfLCBfLCBFKSkgPSBy
YWlzZSBFbXB0eQogIHwgcmVtb3ZlIChIZWFwIChmLCBuLCBUIChfLCB4LCBh
LCBiKSkpID0gKHgsIEhlYXAgKGYsIG4gLSAxLCBtZXJnZSBmIChhLCBiKSkp
OwoKZnVuIHNpemUgKEhlYXAgKF8sIG4sIF8pKSA9IG47CgpmdW4gYXBwIGYg
PQogIGxldAogICAgZnVuIGFwIFtdID0gKCkKICAgICAgfCBhcCAoRSA6OiBy
ZXN0KSA9IGFwIHJlc3QKICAgICAgfCBhcCAoVCAoXywgZCwgYSwgYikgOjog
cmVzdCkgPSAoZiBkOyBhcCAoYSA6OiBiIDo6IHJlc3QpKQogIGluCiAgICBm
biBIZWFwIChfLCBfLCBhKSA9PiBhcCBbYV0KICBlbmQ7Cgpsb2NhbAogIGZ1
biB0b19sc3QgcmVzIGggPQogICAgaWYgaXNfZW1wdHkgaCB0aGVuIHJldiBy
ZXMKICAgIGVsc2UgbGV0IHZhbCAoeCwgaCkgPSByZW1vdmUgaCBpbiB0b19s
c3QgKHggOjogcmVzKSBoIGVuZDsKaW4KICBmdW4gdG9fbGlzdCBoID0gdG9f
bHN0IFtdIGg7CmVuZDsKCmxvY2FsCiAgb3BlbiBVc2VmdWw7CmluCiAgZnVu
IHBwX2hlYXAgcHBfYSA9CiAgICBwcF9tYXAgdG9fbGlzdCAocHBfYnJhY2tl
dCAoIkhbIiwgIl0iKSAocHBfc2VxdWVuY2UgIiwiIHBwX2EpKTsKZW5kOwoK
ZW5kCigqI2xpbmUgMC4wICJiYXNpYy9NdWx0aXNldC5zaWciKikKKCogPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PSAqKQooKiBBIE1VTFRJU0VUIERB
VEFUWVBFIEZPUiBNTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICopCigqIENyZWF0ZWQgYnkgSm9lIEh1cmQsIEp1
bHkgMjAwMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKikKKCogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqKQoK
c2lnbmF0dXJlIE11bHRpc2V0ID0Kc2lnCgp0eXBlICdhIG1zZXQKCnZhbCBl
bXB0eSAgICA6ICgnYSAqICdhIC0+IG9yZGVyKSAtPiAnYSBtc2V0CnZhbCBp
bnNlcnQgICA6ICdhICogaW50IC0+ICdhIG1zZXQgLT4gJ2EgbXNldAp2YWwg
Y291bnQgICAgOiAnYSBtc2V0IC0+ICdhIC0+IGludAp2YWwgdW5pb24gICAg
OiAnYSBtc2V0IC0+ICdhIG1zZXQgLT4gJ2EgbXNldAp2YWwgY29tcGwgICAg
OiAnYSBtc2V0IC0+ICdhIG1zZXQKdmFsIHN1YnRyYWN0IDogJ2EgbXNldCAt
PiAnYSBtc2V0IC0+ICdhIG1zZXQKdmFsIHN1YnNldCAgIDogJ2EgbXNldCAt
PiAnYSBtc2V0IC0+IGJvb2wKdmFsIGNvbXBhcmUgIDogJ2EgbXNldCAqICdh
IG1zZXQgLT4gb3JkZXIgb3B0aW9uCnZhbCBhcHAgICAgICA6ICgnYSAqIGlu
dCAtPiB1bml0KSAtPiAnYSBtc2V0IC0+IHVuaXQKdmFsIHRvX2xpc3QgIDog
J2EgbXNldCAtPiAoJ2EgKiBpbnQpIGxpc3QKdmFsIHBwX21zZXQgIDogJ2Eg
VXNlZnVsLnBwIC0+ICdhIG1zZXQgVXNlZnVsLnBwCgplbmQKKCojbGluZSAw
LjAgImJhc2ljL011bHRpc2V0LnNtbCIqKQooKiA9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09ICopCigqIEEgTVVMVElTRVQgREFUQVRZUEUgRk9SIE1M
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKikKKCogQ3JlYXRlZCBieSBKb2UgSHVyZCwgSnVseSAyMDAyICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiA9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09ICopCgooKgpMaXN0LmFwcCBs
b2FkIFsiQmluYXJ5bWFwIiwgIlVzZWZ1bCJdOwoqKQoKKCoKKikKc3RydWN0
dXJlIE11bHRpc2V0IDo+IE11bHRpc2V0ID0Kc3RydWN0CgpzdHJ1Y3R1cmUg
TSA9IEJpbmFyeW1hcDsKCmZ1biBNcHVyZ2UgbSBrID0gbGV0IHZhbCAobSwg
XykgPSBNLnJlbW92ZSAobSwgaykgaW4gbSBlbmQ7CgpmdW4gTWFsbCBwID0K
ICBsZXQKICAgIGV4Y2VwdGlvbiBDdXQKICAgIGZ1biBmICh4LCB5LCAoKSkg
PSBpZiBwICh4LCB5KSB0aGVuICgpIGVsc2UgcmFpc2UgQ3V0CiAgaW4KICAg
IGZuIGEgPT4gKE0uZm9sZGwgZiAoKSBhOyB0cnVlKSBoYW5kbGUgQ3V0ID0+
IGZhbHNlCiAgZW5kOwoKdHlwZSAnYSBtc2V0ID0gKCdhLCBpbnQpIE0uZGlj
dDsKCmZ1biBlbXB0eSBvcmQgOiAnYSBtc2V0ID0gTS5ta0RpY3Qgb3JkOwoK
ZnVuIGluc2VydCAoXywgMCkgYSA9IGEKICB8IGluc2VydCAoeCwgbikgYSA9
CiAgKGNhc2UgTS5wZWVrIChhLCB4KSBvZiBOT05FID0+IE0uaW5zZXJ0IChh
LCB4LCBuKQogICB8IFNPTUUgbicgPT4KICAgbGV0IHZhbCBuJycgPSBuICsg
bicKICAgaW4gaWYgbicnID0gMCB0aGVuIE1wdXJnZSBhIHggZWxzZSBNLmlu
c2VydCAoYSwgeCwgbicnKQogICBlbmQpOwoKZnVuIGNvdW50IG0geCA9IGNh
c2UgTS5wZWVrIChtLCB4KSBvZiBTT01FIG4gPT4gbiB8IE5PTkUgPT4gMDsK
CmxvY2FsIGZ1biB1biBhIGIgPSBNLmZvbGRsIChmbiAoeCA6ICdhLCBuIDog
aW50LCBkKSA9PiBpbnNlcnQgKHgsIG4pIGQpIGEgYjsKaW4gZnVuIHVuaW9u
IGEgYiA9IGlmIE0ubnVtSXRlbXMgYSA8IE0ubnVtSXRlbXMgYiB0aGVuIHVu
IGIgYSBlbHNlIHVuIGEgYjsKZW5kOwoKZnVuIGNvbXBsIGEgOiAnYSBtc2V0
ID0gTS50cmFuc2Zvcm0gfiBhOwoKZnVuIHN1YnRyYWN0IGEgYiA9IHVuaW9u
IGEgKGNvbXBsIGIpOwoKbG9jYWwKICBmdW4gc2lnbiBhID0gKE1hbGwgKGZu
IChfLCBuKSA9PiAwIDw9IG4pIGEsIE1hbGwgKGZuIChfLCBuKSA9PiBuIDw9
IDApIGEpOwppbgogIGZ1biBjb21wYXJlIChhLCBiKSA9CiAgICAoY2FzZSBz
aWduIChzdWJ0cmFjdCBhIGIpIG9mICh0cnVlLCB0cnVlKSA9PiBTT01FIEVR
VUFMCiAgICAgfCAodHJ1ZSwgZmFsc2UpID0+IFNPTUUgR1JFQVRFUgogICAg
IHwgKGZhbHNlLCB0cnVlKSA9PiBTT01FIExFU1MKICAgICB8IChmYWxzZSwg
ZmFsc2UpID0+IE5PTkUpOwplbmQ7CgpmdW4gc3Vic2V0IGEgYiA9CiAgKGNh
c2UgY29tcGFyZSAoYSwgYikgb2YgU09NRSBMRVNTID0+IHRydWUKICAgfCBT
T01FIEVRVUFMID0+IHRydWUKICAgfCBfID0+IGZhbHNlKTsKCmZ1biBhcHAg
ZiAoYSA6ICdhIG1zZXQpID0gTS5hcHAgZiBhOwoKZnVuIHRvX2xpc3QgKGEg
OiAnYSBtc2V0KSA9IE0ubGlzdEl0ZW1zIGE7Cgpsb2NhbAogIG9wZW4gVXNl
ZnVsOwppbgogIGZ1biBwcF9tc2V0IHBwX2EgPQogICAgcHBfbWFwIChtYXAg
VXNlZnVsLnwtPiBvIHRvX2xpc3QpCiAgICAocHBfYnJhY2tldCAoIk1bIiwg
Il0iKSAocHBfc2VxdWVuY2UgIiwiIChVc2VmdWwucHBfbWFwbGV0IHBwX2Eg
cHBfaW50KSkpOwplbmQ7CgplbmQKKCojbGluZSAwLjAgImJhc2ljL1N0cmVh
bS5zaWciKikKKCogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqKQoo
KiBBIFBPU1NJQkxZLUlORklOSVRFIFNUUkVBTSBEQVRBVFlQRSBGT1IgTUwg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigqIENyZWF0ZWQg
YnkgSm9lIEh1cmQsIEFwcmlsIDIwMDEgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKikKKCogPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PSAqKQoKc2lnbmF0dXJlIFN0cmVhbSA9CnNpZwoKZGF0YXR5
cGUgJ2Egc3RyZWFtID0gTklMIHwgQ09OUyBvZiAnYSAqICh1bml0IC0+ICdh
IHN0cmVhbSkKdHlwZSAnYSBTdGhrID0gdW5pdCAtPiAnYSBzdHJlYW0KCigq
IElmIHlvdSdyZSB3b25kZXJpbmcgaG93IHRvIGNyZWF0ZSBhbiBpbmZpbml0
ZSBzdHJlYW06ICopCigqIHZhbCBzdHJlYW00ID0gbGV0IGZ1biBzNCAoKSA9
IENPTlMgNCBzNCBpbiBzNCAoKSBlbmQ7ICopCgp2YWwgY29ucyAgICAgICAg
ICA6ICdhIC0+ICh1bml0IC0+ICdhIHN0cmVhbSkgLT4gJ2Egc3RyZWFtCnZh
bCBudWxsICAgICAgICAgIDogJ2Egc3RyZWFtIC0+IGJvb2wKdmFsIGhkICAg
ICAgICAgICAgOiAnYSBzdHJlYW0gLT4gJ2EgICAgICAgICAgICAgICAgICAg
ICgqIHJhaXNlcyBFbXB0eSAqKQp2YWwgdGwgICAgICAgICAgICA6ICdhIHN0
cmVhbSAtPiAnYSBzdHJlYW0gICAgICAgICAgICAgKCogcmFpc2VzIEVtcHR5
ICopCnZhbCBkZXN0ICAgICAgICAgIDogJ2Egc3RyZWFtIC0+ICdhICogJ2Eg
c3RyZWFtICAgICAgICAoKiByYWlzZXMgRW1wdHkgKikKdmFsIHJlcGVhdCAg
ICAgICAgOiAnYSAtPiAnYSBzdHJlYW0KdmFsIGNvdW50ICAgICAgICAgOiBp
bnQgLT4gaW50IHN0cmVhbQp2YWwgZm9sZCAgICAgICAgICA6ICgnYSAtPiAo
dW5pdCAtPiAnYikgLT4gJ2IpIC0+ICdiIC0+ICdhIHN0cmVhbSAtPiAnYgp2
YWwgbWFwICAgICAgICAgICA6ICgnYSAtPiAnYikgLT4gJ2Egc3RyZWFtIC0+
ICdiIHN0cmVhbQp2YWwgbWFwX3RoayAgICAgICA6ICgnYSBTdGhrIC0+ICdh
IFN0aGspIC0+ICdhIFN0aGsgLT4gJ2EgU3Roawp2YWwgcGFydGlhbF9tYXAg
ICA6ICgnYSAtPiAnYiBvcHRpb24pIC0+ICdhIHN0cmVhbSAtPiAnYiBzdHJl
YW0KdmFsIG1hcHMgICAgICAgICAgOiAoJ2EgLT4gJ2MgLT4gJ2IgKiAnYykg
LT4gJ2MgLT4gJ2Egc3RyZWFtIC0+ICdiIHN0cmVhbQp2YWwgcGFydGlhbF9t
YXBzICA6ICgnYSAtPiAnYyAtPiAnYiBvcHRpb24gKiAnYykgLT4gJ2MgLT4g
J2Egc3RyZWFtIC0+ICdiIHN0cmVhbQp2YWwgZmlsdGVyICAgICAgICA6ICgn
YSAtPiBib29sKSAtPiAnYSBzdHJlYW0gLT4gJ2Egc3RyZWFtCnZhbCBmbGF0
dGVuICAgICAgIDogJ2Egc3RyZWFtIHN0cmVhbSAtPiAnYSBzdHJlYW0KdmFs
IHppcHdpdGggICAgICAgOiAoJ2EgLT4gJ2IgLT4gJ2MpIC0+ICdhIHN0cmVh
bSAtPiAnYiBzdHJlYW0gLT4gJ2Mgc3RyZWFtCnZhbCB6aXAgICAgICAgICAg
IDogJ2Egc3RyZWFtIC0+ICdiIHN0cmVhbSAtPiAoJ2EgKiAnYikgc3RyZWFt
CnZhbCB0YWtlICAgICAgICAgIDogaW50IC0+ICdhIHN0cmVhbSAtPiAnYSBz
dHJlYW0gICAgICAoKiByYWlzZXMgU3Vic2NyaXB0ICopCnZhbCBkcm9wICAg
ICAgICAgIDogaW50IC0+ICdhIHN0cmVhbSAtPiAnYSBzdHJlYW0gICAgICAo
KiByYWlzZXMgU3Vic2NyaXB0ICopCnZhbCB0b19saXN0ICAgICAgIDogJ2Eg
c3RyZWFtIC0+ICdhIGxpc3QKdmFsIGZyb21fbGlzdCAgICAgOiAnYSBsaXN0
IC0+ICdhIHN0cmVhbQp2YWwgZnJvbV90ZXh0ZmlsZSA6IHN0cmluZyAtPiBz
dHJpbmcgc3RyZWFtICAgICAgICAgICAgKCogbGluZXMgb2YgdGhlIGZpbGUg
KikKCmVuZAooKiNsaW5lIDAuMCAiYmFzaWMvU3RyZWFtLnNtbCIqKQooKiA9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09ICopCigqIEEgUE9TU0lCTFkt
SU5GSU5JVEUgU1RSRUFNIERBVEFUWVBFIEZPUiBNTCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKikKKCogQ3JlYXRlZCBieSBKb2UgSHVyZCwg
QXByaWwgMjAwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAqKQooKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICop
CgpzdHJ1Y3R1cmUgU3RyZWFtIDo+IFN0cmVhbSA9CnN0cnVjdAoKb3BlbiBV
c2VmdWw7CgppbmZpeHIgMCBvbyAjIzsKCigqIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0gKikKKCogVGhlIGRhdGF0eXBlIGRlY2xhcmF0aW9uIGVu
Y2Fwc3VsYXRlcyBhbGwgdGhlIHByaW1pdGl2ZSBvcGVyYXRpb25zLiAgICAg
ICAqKQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCgpkYXRh
dHlwZSAnYSBzdHJlYW0gPSBOSUwgfCBDT05TIG9mICdhICogKHVuaXQgLT4g
J2Egc3RyZWFtKTsKCnR5cGUgJ2EgU3RoayA9IHVuaXQgLT4gJ2Egc3RyZWFt
OwoKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQooKiBVc2Vm
dWwgZnVuY3Rpb25zLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0gKikKCnZhbCBjb25zID0gY3VycnkgQ09OUzsKCmZ1
biBudWxsIE5JTCA9IHRydWUgfCBudWxsIChDT05TIF8pID0gZmFsc2U7Cgpm
dW4gaGQgTklMID0gcmFpc2UgRW1wdHkgfCBoZCAoQ09OUyAoaCwgXykpID0g
aDsKCmZ1biB0bCBOSUwgPSByYWlzZSBFbXB0eSB8IHRsIChDT05TIChfLCB0
KSkgPSB0ICgpOwoKZnVuIGRlc3QgcyA9IChoZCBzLCB0bCBzKTsKCmZ1biBy
ZXBlYXQgeCA9IGxldCBmdW4gcmVwICgpID0gQ09OUyAoeCwgcmVwKSBpbiBy
ZXAgKCkgZW5kOwoKZnVuIGNvdW50IG4gPSBDT05TIChuLCBmbiAoKSA9PiBj
b3VudCAobiArIDEpKTsKCmZ1biBmb2xkIGIgYyA9CiAgbGV0IGZ1biBmIE5J
TCA9IGMgfCBmIChDT05TICh4LCB4cykpID0gYiB4IChmbiAoKSA9PiBmICh4
cyAoKSkpIGluIGYgZW5kOwoKZnVuIG1hcCBmID0KICBsZXQKICAgIGZ1biBt
IE5JTCA9IE5JTAogICAgICB8IG0gKENPTlMgKGgsIHQpKSA9IENPTlMgKGYg
aCwgZm4gKCkgPT4gbSAodCAoKSkpCiAgaW4KICAgIG0KICBlbmQ7CgpmdW4g
bWFwX3RoayBmID0KICBsZXQKICAgIGZ1biBtdCBOSUwgPSBOSUwKICAgICAg
fCBtdCAoQ09OUyAoaCwgdCkpID0gQ09OUyAoaCwgbXQnIHQpCiAgICBhbmQg
bXQnIHQgPSBmIChmbiAoKSA9PiBtdCAodCAoKSkpCiAgaW4KICAgIG10Jwog
IGVuZDsKCmZ1biBwYXJ0aWFsX21hcCBmID0KICBsZXQKICAgIGZ1biBtcCBO
SUwgPSBOSUwKICAgICAgfCBtcCAoQ09OUyAoaCwgdCkpID0KICAgICAgY2Fz
ZSBmIGggb2YgTk9ORSA9PiBtcCAodCAoKSkKICAgICAgfCBTT01FIGgnID0+
IENPTlMgKGgnLCBmbiAoKSA9PiBtcCAodCAoKSkpCiAgaW4KICAgIG1wCiAg
ZW5kOwoKZnVuIG1hcHMgZiA9CiAgbGV0CiAgICBmdW4gbW0gXyBOSUwgPSBO
SUwKICAgICAgfCBtbSBzIChDT05TICh4LCB4cykpID0KICAgICAgbGV0IHZh
bCAoeSwgcycpID0gZiB4IHMKICAgICAgaW4gQ09OUyAoeSwgZm4gKCkgPT4g
bW0gcycgKHhzICgpKSkKICAgICAgZW5kCiAgaW4KICAgIG1tCiAgZW5kOwoK
ZnVuIHBhcnRpYWxfbWFwcyBmID0KICBsZXQKICAgIGZ1biBtbSBfIE5JTCA9
IE5JTAogICAgICB8IG1tIHMgKENPTlMgKHgsIHhzKSkgPQogICAgICBsZXQK
ICAgICAgICB2YWwgKHlvLCBzJykgPSBmIHggcwogICAgICAgIHZhbCB0ID0g
bW0gcycgbyB4cwogICAgICBpbgogICAgICAgIGNhc2UgeW8gb2YgTk9ORSA9
PiB0ICgpIHwgU09NRSB5ID0+IENPTlMgKHksIHQpCiAgICAgIGVuZAogIGlu
CiAgICBtbQogIGVuZDsKCmZ1biBmaWx0ZXIgZiA9IHBhcnRpYWxfbWFwIChm
biB4ID0+IGlmIGYgeCB0aGVuIFNPTUUgeCBlbHNlIE5PTkUpOwoKZnVuIGZs
YXR0ZW4gTklMID0gTklMCiAgfCBmbGF0dGVuIChDT05TIChOSUwsIHNzKSkg
PSBmbGF0dGVuIChzcyAoKSkKICB8IGZsYXR0ZW4gKENPTlMgKENPTlMgKHgs
IHhzKSwgc3MpKSA9CiAgQ09OUyAoeCwgZm4gKCkgPT4gZmxhdHRlbiAoQ09O
UyAoeHMgKCksIHNzKSkpOwoKZnVuIHppcHdpdGggZiA9CiAgbGV0CiAgICBm
dW4geiBOSUwgXyA9IE5JTAogICAgICB8IHogXyBOSUwgPSBOSUwKICAgICAg
fCB6IChDT05TICh4LCB4cykpIChDT05TICh5LCB5cykpID0KICAgICAgQ09O
UyAoZiB4IHksIGZuICgpID0+IHogKHhzICgpKSAoeXMgKCkpKQogIGluCiAg
ICB6CiAgZW5kOwoKZnVuIHppcCBzIHQgPSB6aXB3aXRoIHBhaXIgcyB0OwoK
ZnVuIHRha2UgMCBzID0gTklMCiAgfCB0YWtlIG4gTklMID0gcmFpc2UgU3Vi
c2NyaXB0CiAgfCB0YWtlIDEgKENPTlMgKHgsIF8pKSA9IENPTlMgKHgsIEsg
TklMKQogIHwgdGFrZSBuIChDT05TICh4LCB4cykpID0gQ09OUyAoeCwgZm4g
KCkgPT4gdGFrZSAobiAtIDEpICh4cyAoKSkpOwoKZnVuIGRyb3AgbiBzID0g
TiBuIHRsIHMgaGFuZGxlIEVtcHR5ID0+IHJhaXNlIFN1YnNjcmlwdDsKCmxv
Y2FsCiAgZnVuIHRvX2xzdCByZXMgTklMID0gcmVzCiAgICB8IHRvX2xzdCBy
ZXMgKENPTlMgKHgsIHhzKSkgPSB0b19sc3QgKHggOjogcmVzKSAoeHMgKCkp
OwppbgogIHZhbCB0b19saXN0ID0gcmV2IG8gdG9fbHN0IFtdOwplbmQ7Cgpm
dW4gZnJvbV9saXN0IFtdID0gTklMCiAgfCBmcm9tX2xpc3QgKHggOjogeHMp
ID0gQ09OUyAoeCwgZm4gKCkgPT4gZnJvbV9saXN0IHhzKTsKCmZ1biBmcm9t
X3RleHRmaWxlIGZpbGVuYW1lID0KICBsZXQKICAgIG9wZW4gVGV4dElPCiAg
ICB2YWwgZmggPSBvcGVuSW4gZmlsZW5hbWUKICAgIGZ1biByZXMgKCkgPQog
ICAgICBjYXNlIGlucHV0TGluZSBmaCBvZiAiIiA9PiAoY2xvc2VJbiBmaDsg
TklMKQogICAgICB8IHMgPT4gQ09OUyAocywgbGF6aWZ5X3RodW5rIHJlcykK
ICBpbgogICAgcmVzICgpCiAgZW5kOwoKZW5kCigqI2xpbmUgMC4wICJiYXNp
Yy9QYXJzZXIuc2lnIiopCigqID09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0gKikKKCogUEFSU0VSIENPTUJJTkFUT1JTICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiBD
cmVhdGVkIGJ5IEpvZSBIdXJkLCBBcHJpbCAyMDAxICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigqID09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0gKikKCnNpZ25hdHVyZSBQYXJzZXIgPQpzaWcK
CigqIFJlY29tbWVuZGVkIGZpeGl0aWVzCiAgaW5maXhyIDkgPj4rKzsKICBp
bmZpeHIgOCArKzsKICBpbmZpeHIgNyA+PjsKICBpbmZpeHIgNiB8fDsKKikK
CnR5cGUgJ2EgcHAgICAgID0gJ2EgVXNlZnVsLnBwCnR5cGUgJ2Egc3RyZWFt
ID0gJ2EgU3RyZWFtLnN0cmVhbQoKKCogR2VuZXJpYyAqKQpleGNlcHRpb24g
Tm9wYXJzZQp2YWwgKysgICAgICAgICA6ICgnYSAtPiAnYiAqICdhKSAqICgn
YSAtPiAnYyAqICdhKSAtPiAnYSAtPiAoJ2IgKiAnYykgKiAnYQp2YWwgPj4g
ICAgICAgICA6ICgnYSAtPiAnYiAqICdhKSAqICgnYiAtPiAnYykgLT4gJ2Eg
LT4gJ2MgKiAnYQp2YWwgPj4rKyAgICAgICA6ICgnYSAtPiAnYiAqICdhKSAq
ICgnYiAtPiAnYSAtPiAnYyAqICdhKSAtPiAnYSAtPiAnYyAqICdhCnZhbCB8
fCAgICAgICAgIDogKCdhIC0+ICdiICogJ2EpICogKCdhIC0+ICdiICogJ2Ep
IC0+ICdhIC0+ICdiICogJ2EKdmFsIG1hbnkgICAgICAgOiAoJ2EgLT4gJ2Ig
KiAnYSkgLT4gJ2EgLT4gJ2IgbGlzdCAqICdhCnZhbCBhdGxlYXN0b25lIDog
KCdhIC0+ICdiICogJ2EpIC0+ICdhIC0+ICdiIGxpc3QgKiAnYQp2YWwgbm90
aGluZyAgICA6ICdhIC0+IHVuaXQgKiAnYQp2YWwgb3B0aW9uYWwgICA6ICgn
YSAtPiAnYiAqICdhKSAtPiAnYSAtPiAnYiBvcHRpb24gKiAnYQoKKCogU3Ry
ZWFtLWJhc2VkICopCnR5cGUgKCdhLCAnYikgcGFyc2VyID0gJ2Egc3RyZWFt
IC0+ICdiICogJ2Egc3RyZWFtCnZhbCBtYXliZSAgICA6ICgnYSAtPiAnYiBv
cHRpb24pIC0+ICgnYSwgJ2IpIHBhcnNlcgp2YWwgZmluaXNoZWQgOiAoJ2Es
IHVuaXQpIHBhcnNlcgp2YWwgc29tZSAgICAgOiAoJ2EgLT4gYm9vbCkgLT4g
KCdhLCAnYSkgcGFyc2VyCnZhbCBhbnkgICAgICA6ICgnYSwgJ2EpIHBhcnNl
cgp2YWwgZXhhY3QgICAgOiAnJ2EgLT4gKCcnYSwgJydhKSBwYXJzZXIKCigq
IFBhcnNpbmcgYW5kIHByZXR0eS1wcmludGluZyBmb3IgaW5maXggb3BlcmF0
b3JzICopCnR5cGUgaW5maXhpdGllcyAgPSB7dG9rIDogc3RyaW5nLCBwcmVj
IDogaW50LCBsZWZ0X2Fzc29jIDogYm9vbH0gbGlzdAp0eXBlICdhIGNvbiAg
ICAgID0gc3RyaW5nICogJ2EgKiAnYSAtPiAnYQp0eXBlICdhIGRlcyAgICAg
ID0gJ2EgLT4gKHN0cmluZyAqICdhICogJ2EpIG9wdGlvbgp0eXBlICdhIGlw
YXJzZXIgID0gKHN0cmluZywgJ2EpIHBhcnNlcgp0eXBlICdhIGlwcmludGVy
ID0gKCdhICogYm9vbCkgcHAKdmFsIG9wdG9rcyAgICAgICAgICAgIDogaW5m
aXhpdGllcyAtPiBzdHJpbmcgbGlzdAp2YWwgcGFyc2VfbGVmdF9pbmZpeCAg
OiBzdHJpbmcgbGlzdCAtPiAnYSBjb24gLT4gJ2EgaXBhcnNlciAtPiAnYSBp
cGFyc2VyCnZhbCBwYXJzZV9yaWdodF9pbmZpeCA6IHN0cmluZyBsaXN0IC0+
ICdhIGNvbiAtPiAnYSBpcGFyc2VyIC0+ICdhIGlwYXJzZXIKdmFsIHBhcnNl
X2luZml4ZXMgICAgIDogaW5maXhpdGllcyAgLT4gJ2EgY29uIC0+ICdhIGlw
YXJzZXIgLT4gJ2EgaXBhcnNlcgp2YWwgcHBfbGVmdF9pbmZpeCAgICAgOiBz
dHJpbmcgbGlzdCAtPiAnYSBkZXMgLT4gJ2EgaXByaW50ZXIgLT4gJ2EgaXBy
aW50ZXIKdmFsIHBwX3JpZ2h0X2luZml4ICAgIDogc3RyaW5nIGxpc3QgLT4g
J2EgZGVzIC0+ICdhIGlwcmludGVyIC0+ICdhIGlwcmludGVyCnZhbCBwcF9p
bmZpeGVzICAgICAgICA6IGluZml4aXRpZXMgIC0+ICdhIGRlcyAtPiAnYSBp
cHJpbnRlciAtPiAnYSBpcHJpbnRlcgoKKCogTGV4aW5nICopCnZhbCBzcGFj
ZSAgICA6IGNoYXIgLT4gYm9vbAp2YWwgZGlnaXQgICAgOiBjaGFyIC0+IGJv
b2wKdmFsIGxvd2VyICAgIDogY2hhciAtPiBib29sCnZhbCB1cHBlciAgICA6
IGNoYXIgLT4gYm9vbAp2YWwgYWxwaGEgICAgOiBjaGFyIC0+IGJvb2wKdmFs
IGFscGhhbnVtIDogY2hhciAtPiBib29sICAgICAgICAgICAgICgqIGFscGhh
ICsgZGlnaXQgKyBfICsgJyAqKQp2YWwgc3ltYm9sICAgOiBjaGFyIC0+IGJv
b2wgICAgICAgICAgICAgKCogPD49LSorL1w/QHwhJCUmfiNeOiAqKQp2YWwg
cHVuY3QgICAgOiBjaGFyIC0+IGJvb2wgICAgICAgICAgICAgKCogKClbXXt9
Liw7ICopCgooKiBRdW90YXRpb25zICopCnR5cGUgJ2EgcXVvdGF0aW9uID0g
J2EgZnJhZyBsaXN0CnZhbCBxdW90YXRpb25fcGFyc2VyIDogKHN0cmluZyAt
PiAnYSkgLT4gJ2IgcHAgLT4gJ2IgcXVvdGF0aW9uIC0+ICdhCgplbmQKKCoj
bGluZSAwLjAgImJhc2ljL1BhcnNlci5zbWwiKikKKCogPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PSAqKQooKiBQQVJTRVIgQ09NQklOQVRPUlMgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICopCigqIENyZWF0ZWQgYnkgSm9lIEh1cmQsIEFwcmlsIDIwMDEg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKikK
KCogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqKQoKKCoKYXBwIGxv
YWQgWyJVc2VmdWwiLCAiU3RyZWFtIl07CiopCgooKgoqKQpzdHJ1Y3R1cmUg
UGFyc2VyIDo+IFBhcnNlciA9CnN0cnVjdAoKb3BlbiBVc2VmdWw7CgpzdHJ1
Y3R1cmUgUyA9IFN0cmVhbTsKCmluZml4ciA5ID4+Kys7CmluZml4ciA4ICsr
OwppbmZpeHIgNyA+PjsKaW5maXhyIDYgfHw7CmluZml4ICMjOwoKdHlwZSAn
YSBzdHJlYW0gPSAnYSBTdHJlYW0uc3RyZWFtOwp2YWwgb21hcCAgICAgICA9
IE9wdGlvbi5tYXA7CgooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
ICopCigqIEdlbmVyaWMuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKikKKCogLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoKZXhjZXB0aW9uIE5vcGFy
c2U7CgpmdW4gb3AgKysgKHBhcnNlcjEsIHBhcnNlcjIpIGlucHV0ID0KICBs
ZXQKICAgIHZhbCAocmVzdWx0MSwgcmVzdDEpID0gcGFyc2VyMSBpbnB1dAog
ICAgdmFsIChyZXN1bHQyLCByZXN0MikgPSBwYXJzZXIyIHJlc3QxCiAgaW4K
ICAgICgocmVzdWx0MSwgcmVzdWx0MiksIHJlc3QyKQogIGVuZDsKCmZ1biBv
cCA+PiAocGFyc2VyLCB0cmVhdG1lbnQpIGlucHV0ID0KICBsZXQKICAgIHZh
bCAocmVzdWx0LCByZXN0KSA9IHBhcnNlciBpbnB1dAogIGluCiAgICAodHJl
YXRtZW50IHJlc3VsdCwgcmVzdCkKICBlbmQ7CgpmdW4gb3AgPj4rKyAocGFy
c2VyLCB0cmVhdG1lbnQpIGlucHV0ID0KICBsZXQKICAgIHZhbCAocmVzdWx0
LCByZXN0KSA9IHBhcnNlciBpbnB1dAogIGluCiAgICB0cmVhdG1lbnQgcmVz
dWx0IHJlc3QKICBlbmQ7CgpmdW4gb3AgfHwgKHBhcnNlcjEsIHBhcnNlcjIp
IGlucHV0ID0gcGFyc2VyMSBpbnB1dApoYW5kbGUgTm9wYXJzZSA9PiBwYXJz
ZXIyIGlucHV0OwoKZnVuIG1hbnkgcGFyc2VyIGlucHV0ID0KICBsZXQKICAg
IHZhbCAocmVzdWx0LCBuZXh0KSA9IHBhcnNlciBpbnB1dAogICAgdmFsIChy
ZXN1bHRzLCByZXN0KSA9IG1hbnkgcGFyc2VyIG5leHQKICBpbgogICAgKChy
ZXN1bHQgOjogcmVzdWx0cyksIHJlc3QpCiAgZW5kCiAgaGFuZGxlIE5vcGFy
c2UgPT4gKFtdLCBpbnB1dCk7CgpmdW4gYXRsZWFzdG9uZSBwID0gKHAgKysg
bWFueSBwKSA+PiBvcDo6OwoKZnVuIG5vdGhpbmcgaW5wdXQgPSAoKCksIGlu
cHV0KTsKCmZ1biBvcHRpb25hbCBwID0gKHAgPj4gU09NRSkgfHwgKG5vdGhp
bmcgPj4gSyBOT05FKTsKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0gKikKKCogU3RyZWFtLWJhc2VkLiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCgp0eXBlICgnYSwgJ2Ip
IHBhcnNlciA9ICdhIHN0cmVhbSAtPiAnYiAqICdhIHN0cmVhbQoKZnVuIG1h
eWJlIHAgUy5OSUwgPSByYWlzZSBOb3BhcnNlCiAgfCBtYXliZSBwIChTLkNP
TlMgKGgsIHQpKSA9CiAgY2FzZSBwIGggb2YgU09NRSByID0+IChyLCB0ICgp
KSB8IE5PTkUgPT4gcmFpc2UgTm9wYXJzZTsKCmZ1biBmaW5pc2hlZCBTLk5J
TCA9ICgoKSwgUy5OSUwpCiAgfCBmaW5pc2hlZCAoUy5DT05TIF8pID0gcmFp
c2UgTm9wYXJzZTsKCmZ1biBzb21lIHAgPSBtYXliZSAoZm4geCA9PiBpZiBw
IHggdGhlbiBTT01FIHggZWxzZSBOT05FKTsKCmZ1biBhbnkgaW5wdXQgPSBz
b21lIChLIHRydWUpIGlucHV0OwoKZnVuIGV4YWN0IHRvayA9IHNvbWUgKGZu
IGl0ZW0gPT4gaXRlbSA9IHRvayk7CgooKiAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tICopCigqIFBhcnNpbmcgYW5kIHByZXR0eS1wcmludGluZyBm
b3IgaW5maXggb3BlcmF0b3JzLiAgICAgICAgICAgICAgICAgICAgICAgICAg
KikKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoKdHlwZSBp
bmZpeGl0aWVzID0ge3RvayA6IHN0cmluZywgcHJlYyA6IGludCwgbGVmdF9h
c3NvYyA6IGJvb2x9IGxpc3Q7CnR5cGUgJ2EgY29uICAgICAgPSBzdHJpbmcg
KiAnYSAqICdhIC0+ICdhOwp0eXBlICdhIGRlcyAgICAgID0gJ2EgLT4gKHN0
cmluZyAqICdhICogJ2EpIG9wdGlvbjsKdHlwZSAnYSBpcGFyc2VyICA9IChz
dHJpbmcsICdhKSBwYXJzZXI7CnR5cGUgJ2EgaXByaW50ZXIgPSAoJ2EgKiBi
b29sKSBwcDsKCmxvY2FsCiAgdmFsIHNvcnRfb3BzIDogaW5maXhpdGllcyAt
PiBpbmZpeGl0aWVzID0KICAgIGxldCBmdW4gb3JkZXIge3ByZWMsIC4uLn0g
e3ByZWMgPSBwcmVjJywgLi4ufSA9IHByZWMgPCBwcmVjJwogICAgaW4gc29y
dCBvcmRlcgogICAgZW5kOwogIGZ1biB1bmZsYXR0ZW4gKHt0b2ssIHByZWMs
IGxlZnRfYXNzb2N9LCAoW10sIF8pKSA9CiAgICAoWyhsZWZ0X2Fzc29jLCBb
dG9rXSldLCBwcmVjKQogICAgfCB1bmZsYXR0ZW4gKHt0b2ssIHByZWMsIGxl
ZnRfYXNzb2N9LCAoKGEsIGwpIDo6IGRlYWx0LCBwKSkgPQogICAgaWYgcCA9
IHByZWMgdGhlbgogICAgICAoYXNzZXJ0IChsZWZ0X2Fzc29jID0gYSkgKEJV
RyAiaW5maXggcGFyc2VyL3ByaW50ZXIiICJtaXhlZCBhc3NvY3MiKTsKICAg
ICAgICgoYSwgdG9rIDo6IGwpIDo6IGRlYWx0LCBwKSkKICAgIGVsc2UKICAg
ICAgKChsZWZ0X2Fzc29jLCBbdG9rXSkgOjogKGEsIGwpIDo6IGRlYWx0LCBw
cmVjKTsKaW4KICB2YWwgbGF5ZXJvcHMgPSBmc3QgbyBmb2xkbCB1bmZsYXR0
ZW4gKFtdLCAwKSBvIHNvcnRfb3BzOwplbmQ7Cgpsb2NhbAogIGZ1biBjaG9w
ICgjIiAiIDo6IGNocykgPSAoY3Vycnkgb3ArIDEgIyMgSSkgKGNob3AgY2hz
KSB8IGNob3AgY2hzID0gKDAsIGNocyk7CiAgZnVuIG5zcGFjZXMgbiA9IE4g
biAoY3Vycnkgb3BeICIgIikgIiI7CiAgZnVuIHNwYWNpZnkgdG9rID0KICAg
IGxldAogICAgICB2YWwgY2hzID0gZXhwbG9kZSB0b2sKICAgICAgdmFsIChy
LCBjaHMpID0gY2hvcCAocmV2IGNocykKICAgICAgdmFsIChsLCBjaHMpID0g
Y2hvcCAocmV2IGNocykKICAgIGluCiAgICAgICgobCwgciksIGltcGxvZGUg
Y2hzKQogICAgZW5kOwogIGZ1biBscnNwYWNlcyAobCwgcikgPQogICAgKGlm
IGwgPSAwIHRoZW4gSyAoKSBlbHNlIEMgUFAuYWRkX3N0cmluZyAobnNwYWNl
cyBsKSwKICAgICBpZiByID0gMCB0aGVuIEsgKCkgZWxzZSBDIFBQLmFkZF9i
cmVhayAociwgMCkpOwppbgogIHZhbCBvcF9zcGFjZXMgPSAobHJzcGFjZXMg
IyMgSSkgbyBzcGFjaWZ5OwogIHZhbCBvcF9jbGVhbiAgPSBzbmQgICAgICAg
ICAgICAgbyBzcGFjaWZ5OwplbmQ7Cgp2YWwgb3B0b2tzIDogaW5maXhpdGll
cyAtPiBzdHJpbmcgbGlzdCA9IG1hcCAoZm4ge3RvaywgLi4ufSA9PiBvcF9j
bGVhbiB0b2spOwoKZnVuIHBhcnNlX2dlbl9pbmZpeCB1cGRhdGUgc29mIHRv
a3MgcGFyc2UgaW5wID0KICBsZXQKICAgIHZhbCAoZSwgcmVzdCkgPSBwYXJz
ZSBpbnAKICAgIHZhbCBjb250aW51ZSA9CiAgICAgIGNhc2UgcmVzdCBvZiBT
Lk5JTCA9PiBOT05FCiAgICAgIHwgUy5DT05TIChoLCB0KSA9PiBpZiBtZW0g
aCB0b2tzIHRoZW4gU09NRSAoaCwgdCkgZWxzZSBOT05FCiAgaW4KICAgIGNh
c2UgY29udGludWUgb2YgTk9ORSA9PiAoc29mIGUsIHJlc3QpCiAgICB8IFNP
TUUgKGgsIHQpID0+IHBhcnNlX2dlbl9pbmZpeCB1cGRhdGUgKHVwZGF0ZSBz
b2YgaCBlKSB0b2tzIHBhcnNlICh0ICgpKQogIGVuZDsKCmZ1biBwYXJzZV9s
ZWZ0X2luZml4IHRva3MgY29uID0KICBwYXJzZV9nZW5faW5maXggKGZuIGYg
PT4gZm4gdCA9PiBmbiBhID0+IGZuIGIgPT4gY29uICh0LCBmIGEsIGIpKSBJ
IHRva3M7CgpmdW4gcGFyc2VfcmlnaHRfaW5maXggdG9rcyBjb24gPQogIHBh
cnNlX2dlbl9pbmZpeCAoZm4gZiA9PiBmbiB0ID0+IGZuIGEgPT4gZm4gYiA9
PiBmIChjb24gKHQsIGEsIGIpKSkgSSB0b2tzOwoKZnVuIHBhcnNlX2luZml4
ZXMgb3BzID0KICBsZXQKICAgIHZhbCBsYXllcmVkb3BzID0gbWFwIChJICMj
IG1hcCBvcF9jbGVhbikgKGxheWVyb3BzIG9wcykKICAgIGZ1biBpcGFyc2Vy
IChhLCB0KSA9IChpZiBhIHRoZW4gcGFyc2VfbGVmdF9pbmZpeCBlbHNlIHBh
cnNlX3JpZ2h0X2luZml4KSB0CiAgICB2YWwgaXBhcnNlcnMgPSBtYXAgaXBh
cnNlciBsYXllcmVkb3BzCiAgaW4KICAgIGZuIGNvbiA9PiBmbiBzdWJwYXJz
ZXIgPT4gZm9sZGwgKGZuIChwLCBzcCkgPT4gcCBjb24gc3ApIHN1YnBhcnNl
ciBpcGFyc2VycwogIGVuZDsKCmZ1biBwcF9nZW5faW5maXggbGVmdCB0b2tz
IDogJ2EgZGVzIC0+ICdhIGlwcmludGVyIC0+ICdhIGlwcmludGVyID0KICBs
ZXQKICAgIHZhbCBzcGMgPSBtYXAgb3Bfc3BhY2VzIHRva3MKICBpbgogICAg
Zm4gZGVzdCA9PiBmbiBwcF9zdWIgPT4KICAgIGxldAogICAgICBmdW4gZGVz
dCcgdG0gPQogICAgICAgIGNhc2UgZGVzdCB0bSBvZiBOT05FID0+IE5PTkUK
ICAgICAgICB8IFNPTUUgKHQsIGEsIGIpID0+IG9tYXAgKHBhaXIgKGEsIGIp
KSAoTGlzdC5maW5kIChlcXVhbCB0IG8gc25kKSBzcGMpCiAgICAgIG9wZW4g
UFAKICAgICAgZnVuIHBwX2dvIHBwICh0bXIgYXMgKHRtLCByKSkgPQogICAg
ICAgIGNhc2UgZGVzdCcgdG0gb2YgTk9ORSA9PiBwcF9zdWIgcHAgdG1yCiAg
ICAgICAgfCBTT01FICgoYSwgYiksICgobHNwYywgcnNwYyksIHRvaykpCiAg
ICAgICAgICA9PiAoKGlmIGxlZnQgdGhlbiBwcF9nbyBlbHNlIHBwX3N1Yikg
cHAgKGEsIHRydWUpOwogICAgICAgICAgICAgIGxzcGMgcHA7IGFkZF9zdHJp
bmcgcHAgdG9rOyByc3BjIHBwOwogICAgICAgICAgICAgIChpZiBsZWZ0IHRo
ZW4gcHBfc3ViIGVsc2UgcHBfZ28pIHBwIChiLCByKSkKICAgIGluCiAgICAg
IGZuIHBwID0+IGZuIHRtciBhcyAodG0sIF8pID0+CiAgICAgIGNhc2UgZGVz
dCcgdG0gb2YgTk9ORSA9PiBwcF9zdWIgcHAgdG1yCiAgICAgIHwgU09NRSBf
ID0+IChiZWdpbl9ibG9jayBwcCBJTkNPTlNJU1RFTlQgMDsgcHBfZ28gcHAg
dG1yOyBlbmRfYmxvY2sgcHApCiAgICBlbmQKICBlbmQ7CgpmdW4gcHBfbGVm
dF9pbmZpeCB0b2tzID0gcHBfZ2VuX2luZml4IHRydWUgdG9rczsKCmZ1biBw
cF9yaWdodF9pbmZpeCB0b2tzID0gcHBfZ2VuX2luZml4IGZhbHNlIHRva3M7
CgpmdW4gcHBfaW5maXhlcyBvcHMgPQogIGxldAogICAgdmFsIGxheWVyZWRv
cHMgPSBsYXllcm9wcyBvcHMKICAgIHZhbCB0b2tzID0gTGlzdC5jb25jYXQg
KG1hcCAobWFwIG9wX2NsZWFuIG8gc25kKSBsYXllcmVkb3BzKQogICAgZnVu
IGlwcmludGVyIChhLCB0KSA9IChpZiBhIHRoZW4gcHBfbGVmdF9pbmZpeCBl
bHNlIHBwX3JpZ2h0X2luZml4KSB0CiAgICB2YWwgaXByaW50ZXJzID0gbWFw
IGlwcmludGVyIGxheWVyZWRvcHMKICBpbgogICAgZm4gZGVzdCA9PiBmbiBw
cF9zdWIgPT4KICAgIGxldAogICAgICBmdW4gcHJpbnRlciBzdWIgPSBmb2xk
bCAoZm4gKGlwLCBwKSA9PiBpcCBkZXN0IHApIHN1YiBpcHJpbnRlcnMKICAg
ICAgZnVuIGlzX29wIHQgPSBjYXNlIGRlc3QgdCBvZiBTT01FICh4LCBfLCBf
KSA9PiBtZW0geCB0b2tzIHwgXyA9PiBmYWxzZQogICAgICBvcGVuIFBQCiAg
ICAgIGZ1biBzdWJwciBwcCAodG1yIGFzICh0bSwgXykpID0KICAgICAgICBp
ZiBpc19vcCB0bSB0aGVuCiAgICAgICAgICAoYmVnaW5fYmxvY2sgcHAgSU5D
T05TSVNURU5UIDE7IGFkZF9zdHJpbmcgcHAgIigiOwogICAgICAgICAgIHBy
aW50ZXIgc3VicHIgcHAgKHRtLCBmYWxzZSk7IGFkZF9zdHJpbmcgcHAgIiki
OyBlbmRfYmxvY2sgcHApCiAgICAgICAgZWxzZSBwcF9zdWIgcHAgdG1yCiAg
ICBpbgogICAgICBmbiBwcCA9PiBmbiB0bXIgPT4KICAgICAgKGJlZ2luX2Js
b2NrIHBwIElOQ09OU0lTVEVOVCAwOyBwcmludGVyIHN1YnByIHBwIHRtcjsg
ZW5kX2Jsb2NrIHBwKQogICAgZW5kCiAgZW5kOwoKKCogLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSAqKQooKiBMZXhpbmcuICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikK
CnZhbCBzcGFjZSA9IENoYXIuaXNTcGFjZTsKdmFsIGRpZ2l0ID0gQ2hhci5p
c0RpZ2l0Owp2YWwgbG93ZXIgPSBDaGFyLmlzTG93ZXI7CnZhbCB1cHBlciA9
IENoYXIuaXNVcHBlcjsKdmFsIGFscGhhID0gQ2hhci5pc0FscGhhOwp2YWwg
YWxwaGFudW0gPSBmbiBjID0+IGFscGhhIGMgb3JlbHNlIGRpZ2l0IGMgb3Jl
bHNlIGMgPSAjIiciIG9yZWxzZSBjID0gIyJfIjsKdmFsIHN5bWJvbCA9IENo
YXIuY29udGFpbnMgIjw+PS0qKy9cXD9AfCEkJSZ+I146IjsKdmFsIHB1bmN0
ID0gQ2hhci5jb250YWlucyAiKClbXXt9Liw7IjsKCigqIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0gKikKKCogUXVvdGF0aW9ucy4gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICop
Cgp0eXBlICdhIHF1b3RhdGlvbiA9ICdhIGZyYWcgbGlzdDsKCmZ1biBxdW90
YXRpb25fcGFyc2VyIHBhcnNlciBwcF9hID0KICBsZXQgdmFsIGYgPSBQUC5w
cF90b19zdHJpbmcgKCFMSU5FX0xFTkdUSCkgcHBfYQogIGluIHBhcnNlciBv
IGZvbGRsIChmbiAoUVVPVEUgcSwgcykgPT4gcyBeIHEgfCAoQU5USVFVT1RF
IGEsIHMpID0+IHMgXiBmIGEpICIiCiAgZW5kOwoKZW5kCigqI2xpbmUgMC4w
ICJmb2wvVGVybTEuc2lnIiopCigqID09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0gKikKKCogQkFTSUMgRklSU1QtT1JERVIgTE9HSUMgTUFOSVBVTEFU
SU9OUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQoo
KiBDcmVhdGVkIGJ5IEpvZSBIdXJkLCBTZXB0ZW1iZXIgMjAwMSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigqIFBhcnRseSBw
b3J0ZWQgZnJvbSB0aGUgQ0FNTC1MaWdodCBjb2RlIGFjY29tcGFueWluZyBK
b2huIEhhcnJpc29uJ3MgYm9vayAgKikKKCogPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PSAqKQoKc2lnbmF0dXJlIFRlcm0xID0Kc2lnCgp0eXBlICdh
IHBwICAgICAgICAgICA9ICdhIFVzZWZ1bC5wcAp0eXBlICgnYSwgJ2IpIG1h
cGxldCA9ICgnYSwgJ2IpIFVzZWZ1bC5tYXBsZXQKdHlwZSAnYSBxdW90YXRp
b24gICAgPSAnYSBQYXJzZXIucXVvdGF0aW9uCnR5cGUgaW5maXhpdGllcyAg
ICAgID0gUGFyc2VyLmluZml4aXRpZXMKCigqIERhdGF0eXBlcyBmb3IgdGVy
bXMgYW5kIGZvcm11bGFzICopCmRhdGF0eXBlIHRlcm0gPQogIFZhciBvZiBz
dHJpbmcKfCBGbiAgb2Ygc3RyaW5nICogdGVybSBsaXN0CgpkYXRhdHlwZSBm
b3JtdWxhID0KICBUcnVlCnwgRmFsc2UKfCBBdG9tICAgb2YgdGVybQp8IE5v
dCAgICBvZiBmb3JtdWxhCnwgQW5kICAgIG9mIGZvcm11bGEgKiBmb3JtdWxh
CnwgT3IgICAgIG9mIGZvcm11bGEgKiBmb3JtdWxhCnwgSW1wICAgIG9mIGZv
cm11bGEgKiBmb3JtdWxhCnwgSWZmICAgIG9mIGZvcm11bGEgKiBmb3JtdWxh
CnwgRm9yYWxsIG9mIHN0cmluZyAqIGZvcm11bGEKfCBFeGlzdHMgb2Ygc3Ry
aW5nICogZm9ybXVsYQoKKCogQ29udHJ1Y3RvcnMgYW5kIGRlc3RydWN0b3Jz
ICopCnZhbCBkZXN0X3ZhciAgICAgICAgOiB0ZXJtIC0+IHN0cmluZwp2YWwg
aXNfdmFyICAgICAgICAgIDogdGVybSAtPiBib29sCgp2YWwgZGVzdF9mbiAg
ICAgICAgIDogdGVybSAtPiBzdHJpbmcgKiB0ZXJtIGxpc3QKdmFsIGlzX2Zu
ICAgICAgICAgICA6IHRlcm0gLT4gYm9vbAp2YWwgZm5fbmFtZSAgICAgICAg
IDogdGVybSAtPiBzdHJpbmcKdmFsIGZuX2FyZ3MgICAgICAgICA6IHRlcm0g
LT4gdGVybSBsaXN0CnZhbCBmbl9hcml0eSAgICAgICAgOiB0ZXJtIC0+IGlu
dAp2YWwgZm5fZnVuY3Rpb24gICAgIDogdGVybSAtPiBzdHJpbmcgKiBpbnQK
CnZhbCBta19jb25zdCAgICAgICAgOiBzdHJpbmcgLT4gdGVybQp2YWwgZGVz
dF9jb25zdCAgICAgIDogdGVybSAtPiBzdHJpbmcKdmFsIGlzX2NvbnN0ICAg
ICAgICA6IHRlcm0gLT4gYm9vbAoKdmFsIG1rX2Jpbm9wICAgICAgICA6IHN0
cmluZyAtPiB0ZXJtICogdGVybSAtPiB0ZXJtCnZhbCBkZXN0X2Jpbm9wICAg
ICAgOiBzdHJpbmcgLT4gdGVybSAtPiB0ZXJtICogdGVybQp2YWwgaXNfYmlu
b3AgICAgICAgIDogc3RyaW5nIC0+IHRlcm0gLT4gYm9vbAoKdmFsIGRlc3Rf
YXRvbSAgICAgICA6IGZvcm11bGEgLT4gdGVybQp2YWwgaXNfYXRvbSAgICAg
ICAgIDogZm9ybXVsYSAtPiBib29sCgp2YWwgbGlzdF9ta19jb25qICAgIDog
Zm9ybXVsYSBsaXN0IC0+IGZvcm11bGEKdmFsIHN0cmlwX2NvbmogICAgICA6
IGZvcm11bGEgLT4gZm9ybXVsYSBsaXN0CnZhbCBmbGF0dGVuX2NvbmogICAg
OiBmb3JtdWxhIC0+IGZvcm11bGEgbGlzdAoKdmFsIGxpc3RfbWtfZGlzaiAg
ICA6IGZvcm11bGEgbGlzdCAtPiBmb3JtdWxhCnZhbCBzdHJpcF9kaXNqICAg
ICAgOiBmb3JtdWxhIC0+IGZvcm11bGEgbGlzdAp2YWwgZmxhdHRlbl9kaXNq
ICAgIDogZm9ybXVsYSAtPiBmb3JtdWxhIGxpc3QKCnZhbCBsaXN0X21rX2Zv
cmFsbCAgOiBzdHJpbmcgbGlzdCAqIGZvcm11bGEgLT4gZm9ybXVsYQp2YWwg
c3RyaXBfZm9yYWxsICAgIDogZm9ybXVsYSAtPiBzdHJpbmcgbGlzdCAqIGZv
cm11bGEKCnZhbCBsaXN0X21rX2V4aXN0cyAgOiBzdHJpbmcgbGlzdCAqIGZv
cm11bGEgLT4gZm9ybXVsYQp2YWwgc3RyaXBfZXhpc3RzICAgIDogZm9ybXVs
YSAtPiBzdHJpbmcgbGlzdCAqIGZvcm11bGEKCigqIE5ldyB2YXJpYWJsZXMg
KikKdmFsIG5ld192YXIgIDogdW5pdCAtPiB0ZXJtCnZhbCBuZXdfdmFycyA6
IGludCAtPiB0ZXJtIGxpc3QKCigqIFNpemVzIG9mIHRlcm1zIGFuZCBmb3Jt
dWxhcyAqKQp2YWwgdGVybV9zaXplICAgIDogdGVybSAtPiBpbnQKdmFsIGZv
cm11bGFfc2l6ZSA6IGZvcm11bGEgLT4gaW50CgooKiBUb3RhbCBjb21wYXJp
c29uIGZ1bmN0aW9ucyBmb3IgdGVybXMgYW5kIGZvcm11bGFzICopCnZhbCB0
ZXJtX2NvbXBhcmUgICAgOiB0ZXJtICogdGVybSAtPiBvcmRlcgp2YWwgZm9y
bXVsYV9jb21wYXJlIDogZm9ybXVsYSAqIGZvcm11bGEgLT4gb3JkZXIKCigq
IE9wZXJhdGlvbnMgb24gbGl0ZXJhbHMgKikKdmFsIG1rX2xpdGVyYWwgICA6
IGJvb2wgKiBmb3JtdWxhIC0+IGZvcm11bGEKdmFsIGRlc3RfbGl0ZXJhbCA6
IGZvcm11bGEgLT4gYm9vbCAqIGZvcm11bGEKdmFsIGlzX2xpdGVyYWwgICA6
IGZvcm11bGEgLT4gYm9vbAp2YWwgbGl0ZXJhbF9hdG9tIDogZm9ybXVsYSAt
PiBmb3JtdWxhCgooKiBPcGVyYXRpb25zIG9uIGZvcm11bGEgbmVnYXRpb25z
ICopCnZhbCBuZWdhdGl2ZSA6IGZvcm11bGEgLT4gYm9vbAp2YWwgcG9zaXRp
dmUgOiBmb3JtdWxhIC0+IGJvb2wKdmFsIG5lZ2F0ZSAgIDogZm9ybXVsYSAt
PiBmb3JtdWxhCgooKiBGdW5jdGlvbnMgYW5kIHJlbGF0aW9ucyBpbiBhIGZv
cm11bGEgKikKdmFsIGZ1bmN0aW9ucyAgICAgIDogZm9ybXVsYSAtPiAoc3Ry
aW5nICogaW50KSBsaXN0CnZhbCBmdW5jdGlvbl9uYW1lcyA6IGZvcm11bGEg
LT4gc3RyaW5nIGxpc3QKdmFsIHJlbGF0aW9ucyAgICAgIDogZm9ybXVsYSAt
PiAoc3RyaW5nICogaW50KSBsaXN0CnZhbCByZWxhdGlvbl9uYW1lcyA6IGZv
cm11bGEgLT4gc3RyaW5nIGxpc3QKCigqIFRoZSBlcXVhbGl0eSByZWxhdGlv
biBoYXMgYSBzcGVjaWFsIHN0YXR1cyAqKQp2YWwgZXFfcmVsICAgICAgICAg
IDogc3RyaW5nICogaW50CnZhbCBta19lcSAgICAgICAgICAgOiB0ZXJtICog
dGVybSAtPiBmb3JtdWxhCnZhbCBkZXN0X2VxICAgICAgICAgOiBmb3JtdWxh
IC0+IHRlcm0gKiB0ZXJtCnZhbCBpc19lcSAgICAgICAgICAgOiBmb3JtdWxh
IC0+IGJvb2wKdmFsIGxocyAgICAgICAgICAgICA6IGZvcm11bGEgLT4gdGVy
bQp2YWwgcmhzICAgICAgICAgICAgIDogZm9ybXVsYSAtPiB0ZXJtCnZhbCBl
cV9vY2N1cnMgICAgICAgOiBmb3JtdWxhIC0+IGJvb2wKdmFsIHJlbGF0aW9u
c19ub19lcSA6IGZvcm11bGEgLT4gKHN0cmluZyAqIGludCkgbGlzdAoKKCog
RnJlZSB2YXJpYWJsZXMgKikKdmFsIEZWVCAgICAgICAgOiB0ZXJtIC0+IHN0
cmluZyBsaXN0CnZhbCBGViAgICAgICAgIDogZm9ybXVsYSAtPiBzdHJpbmcg
bGlzdAp2YWwgRlZMICAgICAgICA6IGZvcm11bGEgbGlzdCAtPiBzdHJpbmcg
bGlzdAp2YWwgc3BlY2lhbGl6ZSA6IGZvcm11bGEgLT4gZm9ybXVsYQp2YWwg
Z2VuZXJhbGl6ZSA6IGZvcm11bGEgLT4gZm9ybXVsYQoKKCogU3VidGVybXMg
KikKdmFsIHN1YnRlcm0gICAgICAgICA6IGludCBsaXN0IC0+IHRlcm0gLT4g
dGVybQp2YWwgcmV3cml0ZSAgICAgICAgIDogKGludCBsaXN0LCB0ZXJtKSBt
YXBsZXQgLT4gdGVybSAtPiB0ZXJtCnZhbCBsaXRlcmFsX3N1YnRlcm0gOiBp
bnQgbGlzdCAtPiBmb3JtdWxhIC0+IHRlcm0KdmFsIGxpdGVyYWxfcmV3cml0
ZSA6IChpbnQgbGlzdCwgdGVybSkgbWFwbGV0IC0+IGZvcm11bGEgLT4gZm9y
bXVsYQoKKCogVGhlIEtudXRoLUJlbmRpeCBvcmRlcmluZyAqKQp0eXBlIFdl
aWdodCA9IHN0cmluZyAqIGludCAtPiBpbnQKdHlwZSBQcmVjICAgPSAoc3Ry
aW5nICogaW50KSAqIChzdHJpbmcgKiBpbnQpIC0+IG9yZGVyCnZhbCBrYl93
ZWlnaHQgIDogV2VpZ2h0IC0+IHRlcm0gLT4gaW50ICogc3RyaW5nIE11bHRp
c2V0Lm1zZXQKdmFsIGtiX2NvbXBhcmUgOiBXZWlnaHQgLT4gUHJlYyAtPiB0
ZXJtICogdGVybSAtPiBvcmRlciBvcHRpb24KCigqIEEgZGF0YXR5cGUgdG8g
YW50aXF1b3RlIGJvdGggdGVybXMgYW5kIGZvcm11bGFzICopCmRhdGF0eXBl
IHRoaW5nID0gVGVybSBvZiB0ZXJtIHwgRm9ybXVsYSBvZiBmb3JtdWxhOwoK
KCogT3BlcmF0b3JzIHBhcnNlZCBhbmQgcHJpbnRlZCBpbmZpeCAqKQp2YWwg
aW5maXhlcyA6IGluZml4aXRpZXMgcmVmCgooKiBEZWNpZGluZyB3aGV0aGVy
IGEgc3RyaW5nIGRlbm90ZXMgYSB2YXJpYWJsZSBvciBjb25zdGFudCAqKQp2
YWwgdmFyX3N0cmluZyA6IChzdHJpbmcgLT4gYm9vbCkgcmVmCgooKiBQYXJz
aW5nICopCnZhbCBzdHJpbmdfdG9fdGVybScgICAgOiBpbmZpeGl0aWVzIC0+
IHN0cmluZyAtPiB0ZXJtICAoKiBwdXJlbHkgZnVuY3Rpb25hbCAqKQp2YWwg
c3RyaW5nX3RvX2Zvcm11bGEnIDogaW5maXhpdGllcyAtPiBzdHJpbmcgLT4g
Zm9ybXVsYQp2YWwgcGFyc2VfdGVybScgICAgICAgIDogaW5maXhpdGllcyAt
PiB0aGluZyBxdW90YXRpb24gLT4gdGVybQp2YWwgcGFyc2VfZm9ybXVsYScg
ICAgIDogaW5maXhpdGllcyAtPiB0aGluZyBxdW90YXRpb24gLT4gZm9ybXVs
YQp2YWwgc3RyaW5nX3RvX3Rlcm0gICAgIDogc3RyaW5nIC0+IHRlcm0gICAg
ICAgICAgICAgICAgKCogdXNpbmcgIWluZml4ZXMgKikKdmFsIHN0cmluZ190
b19mb3JtdWxhICA6IHN0cmluZyAtPiBmb3JtdWxhCnZhbCBwYXJzZV90ZXJt
ICAgICAgICAgOiB0aGluZyBxdW90YXRpb24gLT4gdGVybQp2YWwgcGFyc2Vf
Zm9ybXVsYSAgICAgIDogdGhpbmcgcXVvdGF0aW9uIC0+IGZvcm11bGEKCigq
IFByZXR0eS1wcmludGluZyAqKQp2YWwgcHBfdGVybScgICAgICAgICAgIDog
aW5maXhpdGllcyAtPiB0ZXJtIHBwICAgICAgICAgKCogcHVyZWx5IGZ1bmN0
aW9uYWwgKikKdmFsIHBwX2Zvcm11bGEnICAgICAgICA6IGluZml4aXRpZXMg
LT4gZm9ybXVsYSBwcAp2YWwgdGVybV90b19zdHJpbmcnICAgIDogaW5maXhp
dGllcyAtPiBpbnQgLT4gdGVybSAtPiBzdHJpbmcKdmFsIGZvcm11bGFfdG9f
c3RyaW5nJyA6IGluZml4aXRpZXMgLT4gaW50IC0+IGZvcm11bGEgLT4gc3Ry
aW5nCnZhbCBwcF90ZXJtICAgICAgICAgICAgOiB0ZXJtIHBwICAgICAgICAg
ICAgICAgICAgICAgICAoKiB1c2luZyAhaW5maXhlcyAgICopCnZhbCBwcF9m
b3JtdWxhICAgICAgICAgOiBmb3JtdWxhIHBwICAgICAgICAgICAgICAgICAg
ICAoKiBhbmQgIUxJTkVfTEVOR1RIICopCnZhbCB0ZXJtX3RvX3N0cmluZyAg
ICAgOiB0ZXJtIC0+IHN0cmluZwp2YWwgZm9ybXVsYV90b19zdHJpbmcgIDog
Zm9ybXVsYSAtPiBzdHJpbmcKCmVuZAooKiNsaW5lIDAuMCAiZm9sL1Rlcm0x
LnNtbCIqKQooKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICopCigq
IEJBU0lDIEZJUlNULU9SREVSIExPR0lDIE1BTklQVUxBVElPTlMgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKikKKCogQ3JlYXRlZCBi
eSBKb2UgSHVyZCwgU2VwdGVtYmVyIDIwMDEgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAqKQooKiBQYXJ0bHkgcG9ydGVkIGZyb20g
dGhlIENBTUwtTGlnaHQgY29kZSBhY2NvbXBhbnlpbmcgSm9obiBIYXJyaXNv
bidzIGJvb2sgICopCigqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0g
KikKCigqCmFwcCBsb2FkIFsiVXNlZnVsIiwgIlN0cmVhbSIsICJQYXJzZXIi
LCAiTW9zbWwiLCAiQmluYXJ5bWFwIl07CiopCgooKgoqKQpzdHJ1Y3R1cmUg
VGVybTEgOj4gVGVybTEgPQpzdHJ1Y3QKCm9wZW4gUGFyc2VyIFVzZWZ1bDsK
CmluZml4ciA4ICsrOwppbmZpeHIgNyA+PjsKaW5maXhyIDYgfHw7CmluZml4
ciB8LT4gOjo+IEA+IG9vICMjOwoKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLSAqKQooKiBEYXRhdHlwZXMgZm9yIHN0b3JpbmcgZmlyc3Qtb3Jk
ZXIgdGVybXMgYW5kIGZvcm11bGFzLiAgICAgICAgICAgICAgICAgICAgICop
CigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKCmRhdGF0eXBl
IHRlcm0gPQogIFZhciBvZiBzdHJpbmcKfCBGbiAgb2Ygc3RyaW5nICogdGVy
bSBsaXN0OwoKZGF0YXR5cGUgZm9ybXVsYSA9CiAgVHJ1ZQp8IEZhbHNlCnwg
QXRvbSAgIG9mIHRlcm0KfCBOb3QgICAgb2YgZm9ybXVsYQp8IEFuZCAgICBv
ZiBmb3JtdWxhICogZm9ybXVsYQp8IE9yICAgICBvZiBmb3JtdWxhICogZm9y
bXVsYQp8IEltcCAgICBvZiBmb3JtdWxhICogZm9ybXVsYQp8IElmZiAgICBv
ZiBmb3JtdWxhICogZm9ybXVsYQp8IEZvcmFsbCBvZiBzdHJpbmcgKiBmb3Jt
dWxhCnwgRXhpc3RzIG9mIHN0cmluZyAqIGZvcm11bGE7CgooKiAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigqIENvbnN0cnVjdG9ycyBhbmQg
ZGVzdHJ1Y3RvcnMuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKikKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSAqKQoKKCogVmFyaWFibGVzICopCgpmdW4gZGVzdF92YXIgKFZhciB2KSA9
IHYKICB8IGRlc3RfdmFyIChGbiBfKSA9IHJhaXNlIEVSUiAiZGVzdF92YXIi
ICIiOwoKdmFsIGlzX3ZhciA9IGNhbiBkZXN0X3ZhcjsKCigqIEZ1bmN0aW9u
cyAqKQoKZnVuIGRlc3RfZm4gKEZuIGYpID0gZgogIHwgZGVzdF9mbiAoVmFy
IF8pID0gcmFpc2UgRVJSICJkZXN0X2ZuIiAiIjsKCnZhbCBpc19mbiA9IGNh
biBkZXN0X2ZuOwoKdmFsIGZuX25hbWUgPSBmc3QgbyBkZXN0X2ZuOwoKdmFs
IGZuX2FyZ3MgPSBzbmQgbyBkZXN0X2ZuOwoKdmFsIGZuX2FyaXR5ID0gbGVu
Z3RoIG8gZm5fYXJnczsKCmZ1biBmbl9mdW5jdGlvbiB0bSA9IChmbl9uYW1l
IHRtLCBmbl9hcml0eSB0bSk7CgooKiBDb25zdGFudHMgKikKCmZ1biBta19j
b25zdCBjID0gKEZuIChjLCBbXSkpOwoKZnVuIGRlc3RfY29uc3QgKEZuIChj
LCBbXSkpID0gYwogIHwgZGVzdF9jb25zdCBfID0gcmFpc2UgRVJSICJkZXN0
X2NvbnN0IiAiIjsKCnZhbCBpc19jb25zdCA9IGNhbiBkZXN0X2NvbnN0OwoK
KCogQmluYXJ5IGZ1bmN0aW9ucyAqKQoKZnVuIG1rX2Jpbm9wIGYgKGEsIGIp
ID0gRm4gKGYsIFthLCBiXSk7CgpmdW4gZGVzdF9iaW5vcCBmIChGbiAoeCwg
W2EsIGJdKSkgPQogIGlmIHggPSBmIHRoZW4gKGEsIGIpIGVsc2UgcmFpc2Ug
RVJSICJkZXN0X2Jpbm9wIiAid3JvbmcgYmlub3AiCiAgfCBkZXN0X2Jpbm9w
IF8gXyA9IHJhaXNlIEVSUiAiZGVzdF9iaW5vcCIgIm5vdCBhIGJpbm9wIjsK
CmZ1biBpc19iaW5vcCBmID0gY2FuIChkZXN0X2Jpbm9wIGYpOwoKKCogQXRv
bXMgKikKCmZ1biBkZXN0X2F0b20gKEF0b20gYSkgPSBhCiAgfCBkZXN0X2F0
b20gXyA9IHJhaXNlIEVSUiAiZGVzdF9hdG9tIiAiIjsKCnZhbCBpc19hdG9t
ID0gY2FuIGRlc3RfYXRvbTsKCigqIENvbmp1bmN0aW9ucyAqKQoKZnVuIGxp
c3RfbWtfY29uaiBsID0gKGNhc2UgcmV2IGwgb2YgW10gPT4gVHJ1ZSB8IGgg
OjogdCA9PiBmb2xkbCBBbmQgaCB0KTsKCmxvY2FsCiAgZnVuIGNvbmogY3Mg
KEFuZCAoYSwgYikpID0gY29uaiAoYSA6OiBjcykgYgogICAgfCBjb25qIGNz
IGZtID0gcmV2IChmbSA6OiBjcyk7CmluCiAgZnVuIHN0cmlwX2NvbmogVHJ1
ZSA9IFtdCiAgICB8IHN0cmlwX2NvbmogZm0gPSBjb25qIFtdIGZtOwplbmQ7
Cgp2YWwgZmxhdHRlbl9jb25qID0KICBsZXQKICAgIGZ1biBmbGF0IGFjYyBb
XSAgICAgICAgICAgICAgICAgID0gYWNjCiAgICAgIHwgZmxhdCBhY2MgKEFu
ZCAocCwgcSkgOjogZm1zKSA9IGZsYXQgYWNjIChxIDo6IHAgOjogZm1zKQog
ICAgICB8IGZsYXQgYWNjIChUcnVlICAgICAgIDo6IGZtcykgPSBmbGF0IGFj
YyBmbXMKICAgICAgfCBmbGF0IGFjYyAoZm0gICAgICAgICA6OiBmbXMpID0g
ZmxhdCAoZm0gOjogYWNjKSBmbXMKICBpbgogICAgZm4gZm0gPT4gZmxhdCBb
XSBbZm1dCiAgZW5kOwoKKCogRGlzanVuY3Rpb25zICopCgpmdW4gbGlzdF9t
a19kaXNqIGwgPSAoY2FzZSByZXYgbCBvZiBbXSA9PiBGYWxzZSB8IGggOjog
dCA9PiBmb2xkbCBPciBoIHQpOwoKbG9jYWwKICBmdW4gZGlzaiBjcyAoT3Ig
KGEsIGIpKSA9IGRpc2ogKGEgOjogY3MpIGIKICAgIHwgZGlzaiBjcyBmbSA9
IHJldiAoZm0gOjogY3MpOwppbgogIGZ1biBzdHJpcF9kaXNqIEZhbHNlID0g
W10KICAgIHwgc3RyaXBfZGlzaiBmbSA9IGRpc2ogW10gZm07CmVuZDsKCnZh
bCBmbGF0dGVuX2Rpc2ogPQogIGxldAogICAgZnVuIGZsYXQgYWNjIFtdICAg
ICAgICAgICAgICAgICA9IGFjYwogICAgICB8IGZsYXQgYWNjIChPciAocCwg
cSkgOjogZm1zKSA9IGZsYXQgYWNjIChxIDo6IHAgOjogZm1zKQogICAgICB8
IGZsYXQgYWNjIChGYWxzZSAgICAgOjogZm1zKSA9IGZsYXQgYWNjIGZtcwog
ICAgICB8IGZsYXQgYWNjIChmbSAgICAgICAgOjogZm1zKSA9IGZsYXQgKGZt
IDo6IGFjYykgZm1zCiAgaW4KICAgIGZuIGZtID0+IGZsYXQgW10gW2ZtXQog
IGVuZDsKCigqIFVuaXZlcnNhbCBxdWFudGlmaWVycyAqKQoKZnVuIGxpc3Rf
bWtfZm9yYWxsIChbXSwgYm9keSkgPSBib2R5CiAgfCBsaXN0X21rX2ZvcmFs
bCAodiA6OiB2cywgYm9keSkgPSBGb3JhbGwgKHYsIGxpc3RfbWtfZm9yYWxs
ICh2cywgYm9keSkpOwoKbG9jYWwKICBmdW4gZGVzdCB2cyAoRm9yYWxsICh2
LCBiKSkgPSBkZXN0ICh2IDo6IHZzKSBiCiAgICB8IGRlc3QgdnMgdG0gPSAo
cmV2IHZzLCB0bSk7CmluCiAgdmFsIHN0cmlwX2ZvcmFsbCA9IGRlc3QgW107
CmVuZDsKCigqIEV4aXN0ZW50aWFsIHF1YW50aWZpZXJzICopCgpmdW4gbGlz
dF9ta19leGlzdHMgKFtdLCBib2R5KSA9IGJvZHkKICB8IGxpc3RfbWtfZXhp
c3RzICh2IDo6IHZzLCBib2R5KSA9IEV4aXN0cyAodiwgbGlzdF9ta19leGlz
dHMgKHZzLCBib2R5KSk7Cgpsb2NhbAogIGZ1biBkZXN0IHZzIChFeGlzdHMg
KHYsIGIpKSA9IGRlc3QgKHYgOjogdnMpIGIKICAgIHwgZGVzdCB2cyB0bSA9
IChyZXYgdnMsIHRtKTsKaW4KICB2YWwgc3RyaXBfZXhpc3RzID0gZGVzdCBb
XTsKZW5kOwoKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoo
KiBBIGRhdGF0eXBlIHRvIGFudGlxdW90ZSBib3RoIHRlcm1zIGFuZCBmb3Jt
dWxhcy4gICAgICAgICAgICAgICAgICAgICAgICAgICopCigqIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKCmRhdGF0eXBlIHRoaW5nID0gVGVy
bSBvZiB0ZXJtIHwgRm9ybXVsYSBvZiBmb3JtdWxhOwoKKCogLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSAqKQooKiBCdWlsdC1pbiBpbmZpeCBvcGVy
YXRvcnMgYW5kIHJlc2VydmVkIHN5bWJvbHMuICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0g
KikKCnZhbCBpbmZpeGVzIDogaW5maXhpdGllcyByZWYgPSByZWYKICBbKCog
TUwgc3R5bGUgKikKICAge3RvayA9ICIgLyAiLCAgIHByZWMgPSA3LCAgbGVm
dF9hc3NvYyA9IHRydWV9LAogICB7dG9rID0gIiBkaXYgIiwgcHJlYyA9IDcs
ICBsZWZ0X2Fzc29jID0gdHJ1ZX0sCiAgIHt0b2sgPSAiIG1vZCAiLCBwcmVj
ID0gNywgIGxlZnRfYXNzb2MgPSB0cnVlfSwKICAge3RvayA9ICIgKiAiLCAg
IHByZWMgPSA3LCAgbGVmdF9hc3NvYyA9IHRydWV9LAogICB7dG9rID0gIiAr
ICIsICAgcHJlYyA9IDYsICBsZWZ0X2Fzc29jID0gdHJ1ZX0sCiAgIHt0b2sg
PSAiIC0gIiwgICBwcmVjID0gNiwgIGxlZnRfYXNzb2MgPSB0cnVlfSwKICAg
e3RvayA9ICIgXiAiLCAgIHByZWMgPSA2LCAgbGVmdF9hc3NvYyA9IHRydWV9
LAogICB7dG9rID0gIiBAICIsICAgcHJlYyA9IDUsICBsZWZ0X2Fzc29jID0g
ZmFsc2V9LAogICB7dG9rID0gIiA6OiAiLCAgcHJlYyA9IDUsICBsZWZ0X2Fz
c29jID0gZmFsc2V9LAogICB7dG9rID0gIiA9ICIsICAgcHJlYyA9IDQsICBs
ZWZ0X2Fzc29jID0gdHJ1ZX0sICAgICgqIG1heSBiZSBpbnRlcnByZXRlZCAq
KQogICB7dG9rID0gIiA9PSAiLCAgcHJlYyA9IDQsICBsZWZ0X2Fzc29jID0g
dHJ1ZX0sICAgICgqIHdvbid0IGJlIGludGVycHJldGVkICopCiAgIHt0b2sg
PSAiIDw+ICIsICBwcmVjID0gNCwgIGxlZnRfYXNzb2MgPSB0cnVlfSwKICAg
e3RvayA9ICIgPD0gIiwgIHByZWMgPSA0LCAgbGVmdF9hc3NvYyA9IHRydWV9
LAogICB7dG9rID0gIiA8ICIsICAgcHJlYyA9IDQsICBsZWZ0X2Fzc29jID0g
dHJ1ZX0sCiAgIHt0b2sgPSAiID49ICIsICBwcmVjID0gNCwgIGxlZnRfYXNz
b2MgPSB0cnVlfSwKICAge3RvayA9ICIgPiAiLCAgIHByZWMgPSA0LCAgbGVm
dF9hc3NvYyA9IHRydWV9LAogICB7dG9rID0gIiBvICIsICAgcHJlYyA9IDgs
ICBsZWZ0X2Fzc29jID0gdHJ1ZX0sICAgICgqIE1MIHByZWMgPSAzICopCiAg
ICgqIEhPTCBzdHlsZSAqKQogICB7dG9rID0gIiAlICIsICAgcHJlYyA9IDks
ICBsZWZ0X2Fzc29jID0gdHJ1ZX0sICAgICgqIGZ1bmN0aW9uIGFwcGxpY2F0
aW9uICopCiAgIHt0b2sgPSAiIC0+ICIsICBwcmVjID0gMiwgIGxlZnRfYXNz
b2MgPSBmYWxzZX0sICAgKCogSE9MIHR5IHByZWMgPSA1MCAqKQogICB7dG9r
ID0gIiA6ICIsICAgcHJlYyA9IDEsICBsZWZ0X2Fzc29jID0gZmFsc2V9LCAg
ICgqIG5vdCBpbiBIT0wgZ3JhbW1hcnMgKikKICAge3RvayA9ICAiLCAiLCAg
IHByZWMgPSAwLCAgbGVmdF9hc3NvYyA9IGZhbHNlfSwgICAoKiBIT0wgdG0g
cHJlYyA9IDUwICopCiAgICgqIENvbnZlbmllbnQgYWx0ZXJuYXRpdmUgc3lt
Ym9scyAqKQogICB7dG9rID0gIiAqKiAiLCAgcHJlYyA9IDcsICBsZWZ0X2Fz
c29jID0gdHJ1ZX0sCiAgIHt0b2sgPSAiICsrICIsICBwcmVjID0gNiwgIGxl
ZnRfYXNzb2MgPSB0cnVlfSwKICAge3RvayA9ICIgLS0gIiwgIHByZWMgPSA2
LCAgbGVmdF9hc3NvYyA9IHRydWV9XTsKCnZhbCBjb25uZWN0aXZlcyA9CiAg
W3t0b2sgPSAiIC9cXCAiLCBwcmVjID0gfjEsIGxlZnRfYXNzb2MgPSBmYWxz
ZX0sCiAgIHt0b2sgPSAiIFxcLyAiLCBwcmVjID0gfjIsIGxlZnRfYXNzb2Mg
PSBmYWxzZX0sCiAgIHt0b2sgPSAiID09PiAiLCBwcmVjID0gfjMsIGxlZnRf
YXNzb2MgPSBmYWxzZX0sCiAgIHt0b2sgPSAiIDw9PiAiLCBwcmVjID0gfjQs
IGxlZnRfYXNzb2MgPSBmYWxzZX1dOwoKdmFsIHJlc2VydmVkID0gWyIhIiwg
Ij8iLCAiKCIsICIpIiwgIi4iLCAifiJdOwoKKCogLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLSAqKQooKiBEZWNpZGluZyB3aGV0aGVyIGEgc3RyaW5n
IGRlbm90ZXMgYSB2YXJpYWJsZSBvciBjb25zdGFudC4gICAgICAgICAgICAg
ICAgICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKCnZh
bCB2YXJfc3RyaW5nID0KICByZWYgKEMgbWVtIFsjIl8iLCMidiIsIyJ3Iiwj
IngiLCMieSIsIyJ6Il0gbyBDaGFyLnRvTG93ZXIgbyBoZCBvIGV4cGxvZGUp
OwoKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQooKiBQcmV0
dHktcHJpbnRpbmcuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0gKikKCigqIFB1cmVseSBmdW5jdGlvbmFsIHByZXR0
eS1wcmludGluZyAqKQoKdmFsIHBwX3ZuYW1lID0KICBwcF9tYXAgKGZuIHMg
PT4gaWYgIXZhcl9zdHJpbmcgcyB0aGVuIHMgZWxzZSAidmFyLT4iIF4gcyBe
ICI8LXZhciIpIHBwX3N0cmluZzsKCnZhbCBwcF9jbmFtZSA9CiAgcHBfbWFw
IChmbiBzID0+IGlmICF2YXJfc3RyaW5nIHMgdGhlbiAiY29uc3QtPiIgXiBz
IF4gIjwtY29uc3QiIGVsc2UgcykKICBwcF9zdHJpbmc7Cgp2YWwgcHBfZm5h
bWUgPQogIHBwX21hcCAoZm4gcyA9PiBpZiAhdmFyX3N0cmluZyBzIHRoZW4g
ImZuLT4iIF4gcyBeICI8LWZuIiBlbHNlIHMpIHBwX3N0cmluZzsKCmZ1biBw
cF90ZXJtJyBvcHMgPQogIGxldAogICAgdmFsIG9wcyA9IG9wcyBAIGNvbm5l
Y3RpdmVzCiAgICB2YWwgaXByaW50ZXIgPSBwcF9pbmZpeGVzIG9wcwogICAg
dmFsIGl0b2tzID0gb3B0b2tzIG9wcwogICAgZnVuIHBwX3VuaW5maXggcHBf
cyBwcCBzID0KICAgICAgaWYgbWVtIHMgaXRva3MgdGhlbiBQUC5hZGRfc3Ry
aW5nIHBwICgiKCIgXiBzIF4gIikiKSBlbHNlIHBwX3MgcHAgcwogICAgZnVu
IGlkZXN0IChGbiAoZiwgW2EsIGJdKSkgPSBTT01FIChmLCBhLCBiKSB8IGlk
ZXN0IF8gPSBOT05FCiAgICBmdW4gaXNfb3AgdCA9IGNhc2UgaWRlc3QgdCBv
ZiBTT01FIChmLCBfLCBfKSA9PiBtZW0gZiBpdG9rcyB8IE5PTkUgPT4gZmFs
c2UKICAgIGZ1biBpc19xIChGbiAoIiEiLCBfKSkgPSB0cnVlIHwgaXNfcSAo
Rm4gKCI/IiwgXykpID0gdHJ1ZSB8IGlzX3EgXyA9IGZhbHNlCiAgICBmdW4g
bmVncyAoRm4gKCJ+IiwgW2FdKSkgPSAoY3Vycnkgb3ArIDEgIyMgSSkgKG5l
Z3MgYSkgfCBuZWdzIHRtID0gKDAsIHRtKQogICAgZnVuIGJpbmRzIHMgKHRt
IGFzIEZuIChuLCBbVmFyIHYsIGJdKSkgPQogICAgICBpZiBzID0gbiB0aGVu
IChjb25zIHYgIyMgSSkgKGJpbmRzIHMgYikgZWxzZSAoW10sIHRtKQogICAg
ICB8IGJpbmRzIF8gdG0gPSAoW10sIHRtKQogICAgb3BlbiBQUAogICAgZnVu
IGJhc2ljIHBwIChWYXIgdikgPSBwcF92bmFtZSBwcCB2CiAgICAgIHwgYmFz
aWMgcHAgKEZuIChjLCBbXSkpID0gcHBfdW5pbmZpeCBwcF9jbmFtZSBwcCBj
CiAgICAgIHwgYmFzaWMgcHAgKEZuIChmLCBhKSkgPQogICAgICAocHBfdW5p
bmZpeCBwcF9mbmFtZSBwcCBmOwogICAgICAgYXBwIChmbiB4ID0+IChhZGRf
YnJlYWsgcHAgKDEsIDApOyBhcmd1bWVudCBwcCB4KSkgYSkKICAgIGFuZCBh
cmd1bWVudCBwcCB0bSA9CiAgICAgIGlmIGlzX3ZhciB0bSBvcmVsc2UgaXNf
Y29uc3QgdG0gdGhlbiBiYXNpYyBwcCB0bSBlbHNlIHBwX2J0bSBwcCB0bQog
ICAgYW5kIHF1YW50IHBwICh0bSwgcikgPQogICAgICBsZXQKICAgICAgICBm
dW4gcHIgcHAgKEZuIChxLCBbVmFyIHYsIHRtXSkpID0KICAgICAgICAgIGxl
dAogICAgICAgICAgICB2YWwgKHZzLCBib2R5KSA9IGJpbmRzIHEgdG0KICAg
ICAgICAgIGluCiAgICAgICAgICAgIGFkZF9zdHJpbmcgcHAgcTsKICAgICAg
ICAgICAgcHBfdm5hbWUgcHAgdjsKICAgICAgICAgICAgYXBwIChmbiBhID0+
IChhZGRfYnJlYWsgcHAgKDEsIDApOyBwcF92bmFtZSBwcCBhKSkgdnM7CiAg
ICAgICAgICAgIGFkZF9zdHJpbmcgcHAgIi4iOwogICAgICAgICAgICBhZGRf
YnJlYWsgcHAgKDEsIDApOwogICAgICAgICAgICBpZiBpc19xIGJvZHkgdGhl
biBwciBwcCBib2R5IGVsc2UgcHBfdG0gcHAgKGJvZHksIGZhbHNlKQogICAg
ICAgICAgZW5kCiAgICAgICAgICB8IHByIHBwIHRtID0gcmFpc2UgQlVHICJw
cF90ZXJtIiAibm90IGEgcXVhbnRpZmllciIKICAgICAgICBmdW4gcHBfcSBw
cCB0ID0gKGJlZ2luX2Jsb2NrIHBwIElOQ09OU0lTVEVOVCAyOyBwciBwcCB0
OyBlbmRfYmxvY2sgcHApCiAgICAgIGluCiAgICAgICAgKGlmIGlzX3EgdG0g
dGhlbiAoaWYgciB0aGVuIHBwX2JyYWNrZXQgKCIoIiwgIikiKSBlbHNlIEkp
IHBwX3EKICAgICAgICAgZWxzZSBiYXNpYykgcHAgdG0KICAgICAgZW5kCiAg
ICBhbmQgbW9sZWN1bGUgcHAgKHRtLCByKSA9CiAgICAgIGxldAogICAgICAg
IHZhbCAobiwgeCkgPSBuZWdzIHRtCiAgICAgIGluCiAgICAgICAgYmVnaW5f
YmxvY2sgcHAgSU5DT05TSVNURU5UIG47CiAgICAgICAgTiBuIChmbiAoKSA9
PiBhZGRfc3RyaW5nIHBwICJ+IikgKCk7CiAgICAgICAgaWYgaXNfb3AgeCB0
aGVuIHBwX2J0bSBwcCB4IGVsc2UgcXVhbnQgcHAgKHgsIHIpOwogICAgICAg
IGVuZF9ibG9jayBwcAogICAgICBlbmQKICAgIGFuZCBwcF9idG0gcHAgdG0g
PSBwcF9icmFja2V0ICgiKCIsICIpIikgcHBfdG0gcHAgKHRtLCBmYWxzZSkK
ICAgIGFuZCBwcF90bSBwcCB0bXIgPSBpcHJpbnRlciBpZGVzdCBtb2xlY3Vs
ZSBwcCB0bXIKICBpbgogICAgcHBfbWFwIChDIHBhaXIgZmFsc2UpIHBwX3Rt
CiAgZW5kOwoKbG9jYWwKICBmdW4gZGVtb3RlIFRydWUgICAgICAgICAgICA9
IEZuICgiVCIsICAgW10gICAgICAgICAgICAgICAgICApCiAgICB8IGRlbW90
ZSBGYWxzZSAgICAgICAgICAgPSBGbiAoIkYiLCAgIFtdICAgICAgICAgICAg
ICAgICAgKQogICAgfCBkZW1vdGUgKE5vdCBhKSAgICAgICAgID0gRm4gKCJ+
IiwgICBbZGVtb3RlIGFdICAgICAgICAgICkKICAgIHwgZGVtb3RlIChBbmQg
KGEsIGIpKSAgICA9IEZuICgiL1xcIiwgW2RlbW90ZSBhLCBkZW1vdGUgYl0p
CiAgICB8IGRlbW90ZSAoT3IgIChhLCBiKSkgICAgPSBGbiAoIlxcLyIsIFtk
ZW1vdGUgYSwgZGVtb3RlIGJdKQogICAgfCBkZW1vdGUgKEltcCAoYSwgYikp
ICAgID0gRm4gKCI9PT4iLCBbZGVtb3RlIGEsIGRlbW90ZSBiXSkKICAgIHwg
ZGVtb3RlIChJZmYgKGEsIGIpKSAgICA9IEZuICgiPD0+IiwgW2RlbW90ZSBh
LCBkZW1vdGUgYl0pCiAgICB8IGRlbW90ZSAoRm9yYWxsICh2LCBiKSkgPSBG
biAoIiEiLCAgIFtWYXIgdiwgICAgZGVtb3RlIGJdKQogICAgfCBkZW1vdGUg
KEV4aXN0cyAodiwgYikpID0gRm4gKCI/IiwgICBbVmFyIHYsICAgIGRlbW90
ZSBiXSkKICAgIHwgZGVtb3RlIChBdG9tIHQpICAgICAgICA9IHQ7CmluCiAg
ZnVuIHBwX2Zvcm11bGEnIG9wcyA9IHBwX21hcCBkZW1vdGUgKHBwX3Rlcm0n
IG9wcyk7CmVuZDsKCmZ1biB0ZXJtX3RvX3N0cmluZycgICAgb3BzIGxlbiB0
bSA9IFBQLnBwX3RvX3N0cmluZyBsZW4gKHBwX3Rlcm0nICAgIG9wcykgdG07
CmZ1biBmb3JtdWxhX3RvX3N0cmluZycgb3BzIGxlbiBmbSA9IFBQLnBwX3Rv
X3N0cmluZyBsZW4gKHBwX2Zvcm11bGEnIG9wcykgZm07CgooKiBQcmV0dHkt
cHJpbnRpbmcgdGhpbmdzIGlzIG5lZWRlZCBmb3IgcGFyc2luZyB0aGluZyBx
dW90YXRpb25zICopCgpmdW4gcHBfdGhpbmcgb3BzIHBwIChUZXJtIHRtKSAg
ICA9IHBwX3Rlcm0nICAgIG9wcyBwcCB0bQogIHwgcHBfdGhpbmcgb3BzIHBw
IChGb3JtdWxhIGZtKSA9IHBwX2Zvcm11bGEnIG9wcyBwcCBmbTsKCmZ1biBw
cF9icmFja2V0ZWRfdGhpbmcgb3BzIHBwIHRoID0KICAoUFAuYmVnaW5fYmxv
Y2sgcHAgUFAuSU5DT05TSVNURU5UIDE7IFBQLmFkZF9zdHJpbmcgcHAgIigi
OwogICBwcF90aGluZyBvcHMgcHAgdGg7IFBQLmFkZF9zdHJpbmcgcHAgIiki
OyBQUC5lbmRfYmxvY2sgcHApOwoKKCogUHJldHR5LXByaW50aW5nIHVzaW5n
ICFpbmZpeGVzIGFuZCAhTElORV9MRU5HVEggKikKCmZ1biBwcF90ZXJtICAg
ICAgICBwcCB0bSA9IHBwX3Rlcm0nICAgICAgICAgICAoIWluZml4ZXMpIHBw
ICAgICAgICAgICAgIHRtOwpmdW4gcHBfZm9ybXVsYSAgICAgcHAgZm0gPSBw
cF9mb3JtdWxhJyAgICAgICAgKCFpbmZpeGVzKSBwcCAgICAgICAgICAgICBm
bTsKZnVuIHRlcm1fdG9fc3RyaW5nICAgIHRtID0gdGVybV90b19zdHJpbmcn
ICAgICghaW5maXhlcykgKCFMSU5FX0xFTkdUSCkgdG07CmZ1biBmb3JtdWxh
X3RvX3N0cmluZyBmbSA9IGZvcm11bGFfdG9fc3RyaW5nJyAoIWluZml4ZXMp
ICghTElORV9MRU5HVEgpIGZtOwoKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLSAqKQooKiBQYXJzaW5nLiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICop
CigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKCigqIExleGlu
ZyAqKQoKdmFsIGxleGVyID0KICAoZm4gKChfLCAodG9rcywgXykpLCBfKSA9
PiB0b2tzKSBvCiAgKG1hbnkgKHNvbWUgc3BhY2UpICsrCiAgIChtYW55CiAg
ICAoKCgoYXRsZWFzdG9uZSAoc29tZSBhbHBoYW51bSkgfHwKICAgICAgICAo
c29tZSAoZm4gYyA9PiBzeW1ib2wgYyBhbmRhbHNvIGMgPD4gIyJ+IikgKysg
bWFueSAoc29tZSBzeW1ib2wpKSA+PgogICAgICAgIG9wIDo6KSA+PiBpbXBs
b2RlCiAgICAgICB8fCBzb21lIChmbiBjID0+IGMgPSAjIn4iIG9yZWxzZSBw
dW5jdCBjKSA+PiBzdHIpICsrCiAgICAgIG1hbnkgKHNvbWUgc3BhY2UpKSA+
PiBmc3QpKSArKwogICBmaW5pc2hlZCk7Cgp2YWwgbGV4X3N0ciA9IGxleGVy
IG8gU3RyZWFtLmZyb21fbGlzdCBvIGV4cGxvZGU7CgooKiBQdXJlbHkgZnVu
Y3Rpb25hbCBwYXJzaW5nICopCgp2YWwgdm5hbWVfcGFyc2VyID0KICBzb21l
IChmbiB0b2sgPT4gbm90IChtZW0gdG9rIHJlc2VydmVkKSBhbmRhbHNvICF2
YXJfc3RyaW5nIHRvayk7CgpmdW4gdGVybV9wYXJzZXIgb3BzID0KICBsZXQK
ICAgIHZhbCBvcHMgICAgICAgICAgICA9IG9wcyBAIGNvbm5lY3RpdmVzCiAg
ICB2YWwgaXBhcnNlciAgICAgICAgPSBwYXJzZV9pbmZpeGVzIG9wcwogICAg
dmFsIGl0b2tzICAgICAgICAgID0gb3B0b2tzIG9wcwogICAgdmFsIGF2b2lk
ICAgICAgICAgID0gaXRva3MgQCByZXNlcnZlZAogICAgZnVuIGZuYW1lIHRv
ayAgICAgID0gbm90IChtZW0gdG9rIGF2b2lkKSBhbmRhbHNvIG5vdCAoIXZh
cl9zdHJpbmcgdG9rKQogICAgZnVuIHVuaW5maXggdG9rICAgID0gbWVtIHRv
ayBpdG9rcwogICAgdmFsIHVuaW5maXhfcGFyc2VyID0gKGV4YWN0ICIoIiAr
KyBzb21lIHVuaW5maXggKysgZXhhY3QgIikiKSA+PiAoZnN0IG8gc25kKQog
ICAgdmFsIGZuYW1lX3BhcnNlciAgID0gc29tZSBmbmFtZSB8fCB1bmluZml4
X3BhcnNlcgogICAgZnVuIGJpbmQgcyAodiwgdCkgID0gRm4gKHMsIFtWYXIg
diwgdF0pCiAgICBmdW4gYmFzaWMgaW5wICAgICAgPQogICAgICAoKGV4YWN0
ICIoIiArKyB0bV9wYXJzZXIgKysgZXhhY3QgIikiKSA+PiAoZm4gKF8sICh0
LCBfKSkgPT4gdCkgfHwKICAgICAgIChleGFjdCAiISIgKysgYXRsZWFzdG9u
ZSB2bmFtZV9wYXJzZXIgKysgZXhhY3QgIi4iICsrIHRtX3BhcnNlcikgPj4K
ICAgICAgIChmbiAoXywgKHZzLCAoXywgYm9keSkpKSA9PiBmb2xkciAoYmlu
ZCAiISIpIGJvZHkgdnMpIHx8CiAgICAgICAoZXhhY3QgIj8iICsrIGF0bGVh
c3RvbmUgdm5hbWVfcGFyc2VyICsrIGV4YWN0ICIuIiArKyB0bV9wYXJzZXIp
ID4+CiAgICAgICAoZm4gKF8sICh2cywgKF8sIGJvZHkpKSkgPT4gZm9sZHIg
KGJpbmQgIj8iKSBib2R5IHZzKSB8fAogICAgICAgZm5hbWVfcGFyc2VyID4+
IChmbiBmID0+IEZuIChmLCBbXSkpIHx8CiAgICAgICB2bmFtZV9wYXJzZXIg
Pj4gVmFyKSBpbnAKICAgIGFuZCBtb2xlY3VsZSBpbnAgICAgICA9CiAgICAg
ICgobWFueSAoZXhhY3QgIn4iKSArKyAoKGZuYW1lX3BhcnNlciArKyBtYW55
IGJhc2ljKSA+PiBGbiB8fCBiYXNpYykpID4+CiAgICAgICAoZm4gKGwsIHQp
ID0+IE4gKGxlbmd0aCBsKSAoZm4geCA9PiBGbiAoIn4iLCBbeF0pKSB0KSkg
aW5wCiAgICBhbmQgdG1fcGFyc2VyIGlucCAgPSBpcGFyc2VyIChmbiAoZiwg
YSwgYikgPT4gRm4gKGYsIFthLCBiXSkpIG1vbGVjdWxlIGlucAogIGluCiAg
ICB0bV9wYXJzZXIKICBlbmQ7Cgpsb2NhbAogIGZ1biBwcm9tb3RlIChGbiAo
IlQiLCAgIFtdICAgICAgICApKSA9IFRydWUKICAgIHwgcHJvbW90ZSAoRm4g
KCJGIiwgICBbXSAgICAgICAgKSkgPSBGYWxzZQogICAgfCBwcm9tb3RlIChG
biAoIn4iLCAgIFthXSAgICAgICApKSA9IE5vdCAocHJvbW90ZSBhKQogICAg
fCBwcm9tb3RlIChGbiAoIi9cXCIsIFthLCBiXSAgICApKSA9IEFuZCAocHJv
bW90ZSBhLCBwcm9tb3RlIGIpCiAgICB8IHByb21vdGUgKEZuICgiXFwvIiwg
W2EsIGJdICAgICkpID0gT3IgIChwcm9tb3RlIGEsIHByb21vdGUgYikKICAg
IHwgcHJvbW90ZSAoRm4gKCI9PT4iLCBbYSwgYl0gICAgKSkgPSBJbXAgKHBy
b21vdGUgYSwgcHJvbW90ZSBiKQogICAgfCBwcm9tb3RlIChGbiAoIjw9PiIs
IFthLCBiXSAgICApKSA9IElmZiAocHJvbW90ZSBhLCBwcm9tb3RlIGIpCiAg
ICB8IHByb21vdGUgKEZuICgiISIsICAgW1ZhciB2LCBiXSkpID0gRm9yYWxs
ICh2LCBwcm9tb3RlIGIpCiAgICB8IHByb21vdGUgKEZuICgiPyIsICAgW1Zh
ciB2LCBiXSkpID0gRXhpc3RzICh2LCBwcm9tb3RlIGIpCiAgICB8IHByb21v
dGUgdG0gICAgICAgICAgICAgICAgICAgICAgID0gQXRvbSB0bTsKaW4KICBm
dW4gZm9ybXVsYV9wYXJzZXIgb3BzID0gdGVybV9wYXJzZXIgb3BzID4+IHBy
b21vdGU7CmVuZDsKCmZ1biBzdHJpbmdfdG9fdGVybScgb3BzID0KICBmc3Qg
byAoKHRlcm1fcGFyc2VyIG9wcyArKyBmaW5pc2hlZCkgPj4gZnN0KSBvIFN0
cmVhbS5mcm9tX2xpc3QgbyBsZXhfc3RyOwoKZnVuIHN0cmluZ190b19mb3Jt
dWxhJyBvcHMgPQogIGZzdCBvICgoZm9ybXVsYV9wYXJzZXIgb3BzICsrIGZp
bmlzaGVkKSA+PiBmc3QpIG8gU3RyZWFtLmZyb21fbGlzdCBvIGxleF9zdHI7
CgpmdW4gcGFyc2VfdGVybScgb3BzID0KICBxdW90YXRpb25fcGFyc2VyIChz
dHJpbmdfdG9fdGVybScgb3BzKSAocHBfYnJhY2tldGVkX3RoaW5nIG9wcyk7
CgpmdW4gcGFyc2VfZm9ybXVsYScgb3BzID0KICBxdW90YXRpb25fcGFyc2Vy
IChzdHJpbmdfdG9fZm9ybXVsYScgb3BzKSAocHBfYnJhY2tldGVkX3RoaW5n
IG9wcyk7CgooKiBQYXJzaW5nIHVzaW5nICFpbmZpeGVzICopCgpmdW4gc3Ry
aW5nX3RvX3Rlcm0gICAgcyA9IHN0cmluZ190b190ZXJtJyAgICAoIWluZml4
ZXMpIHM7CmZ1biBzdHJpbmdfdG9fZm9ybXVsYSBzID0gc3RyaW5nX3RvX2Zv
cm11bGEnICghaW5maXhlcykgczsKZnVuIHBhcnNlX3Rlcm0gICAgICAgIHEg
PSBwYXJzZV90ZXJtJyAgICAgICAgKCFpbmZpeGVzKSBxOwpmdW4gcGFyc2Vf
Zm9ybXVsYSAgICAgcSA9IHBhcnNlX2Zvcm11bGEnICAgICAoIWluZml4ZXMp
IHE7CgooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigqIE5l
dyB2YXJpYWJsZXMuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKikKKCogLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSAqKQoKbG9jYWwKICB2YWwgcHJlZml4ICA9ICJf
IjsKICB2YWwgbnVtX3ZhciA9IFZhciBvIG1rX3ByZWZpeCBwcmVmaXggbyBp
bnRfdG9fc3RyaW5nOwppbgogIHZhbCBuZXdfdmFyICA9IG51bV92YXIgbyBu
ZXdfaW50OwogIHZhbCBuZXdfdmFycyA9IG1hcCBudW1fdmFyIG8gbmV3X2lu
dHM7CmVuZDsKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikK
KCogU2l6ZXMgb2YgdGVybXMgYW5kIGZvcm11bGFzLiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCgpsb2NhbAogIGZ1biBzenQgbiBb
XSAgICAgICAgICAgICAgICAgICAgPSBuCiAgICB8IHN6dCBuIChWYXIgXyAg
ICAgICAgOjogdG1zKSA9IHN6dCAobiArIDEpIHRtcwogICAgfCBzenQgbiAo
Rm4gKF8sIGFyZ3MpIDo6IHRtcykgPSBzenQgKG4gKyAxKSAoYXJncyBAIHRt
cyk7CgogIGZ1biBzeiBuIFtdICAgICAgICAgICAgICAgICAgICAgPSBuCiAg
ICB8IHN6IG4gKFRydWUgICAgICAgICAgOjogZm1zKSA9IHN6IChuICsgMSkg
Zm1zCiAgICB8IHN6IG4gKEZhbHNlICAgICAgICAgOjogZm1zKSA9IHN6IChu
ICsgMSkgZm1zCiAgICB8IHN6IG4gKEF0b20gdCAgICAgICAgOjogZm1zKSA9
IHN6IChzenQgKG4gKyAxKSBbdF0pIGZtcwogICAgfCBzeiBuIChOb3QgcCAg
ICAgICAgIDo6IGZtcykgPSBzeiAobiArIDEpIChwIDo6IGZtcykKICAgIHwg
c3ogbiAoQW5kIChwLCBxKSAgICA6OiBmbXMpID0gc3ogKG4gKyAxKSAocCA6
OiBxIDo6IGZtcykKICAgIHwgc3ogbiAoT3IgIChwLCBxKSAgICA6OiBmbXMp
ID0gc3ogKG4gKyAxKSAocCA6OiBxIDo6IGZtcykKICAgIHwgc3ogbiAoSW1w
IChwLCBxKSAgICA6OiBmbXMpID0gc3ogKG4gKyAxKSAocCA6OiBxIDo6IGZt
cykKICAgIHwgc3ogbiAoSWZmIChwLCBxKSAgICA6OiBmbXMpID0gc3ogKG4g
KyAxKSAocCA6OiBxIDo6IGZtcykKICAgIHwgc3ogbiAoRm9yYWxsIChfLCBw
KSA6OiBmbXMpID0gc3ogKG4gKyAxKSAocCA6OiBmbXMpCiAgICB8IHN6IG4g
KEV4aXN0cyAoXywgcCkgOjogZm1zKSA9IHN6IChuICsgMSkgKHAgOjogZm1z
KTsKaW4KICB2YWwgdGVybV9zaXplICAgID0gc3p0IDAgbyB3cmFwOwogIHZh
bCBmb3JtdWxhX3NpemUgPSBzeiAgMCBvIHdyYXA7CmVuZDsKCigqIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCogVG90YWwgY29tcGFyaXNv
biBmdW5jdGlvbnMgZm9yIHRlcm1zIGFuZCBmb3JtdWxhcy4gICAgICAgICAg
ICAgICAgICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tICopCgpsb2NhbAogIGZ1biBsZXggRVFVQUwgZiB4ID0gZiB4IHwgbGV4
IHggXyBfID0geDsKCiAgZnVuIGNtdCBbXSA9IEVRVUFMCiAgICB8IGNtdCAo
KFZhciBfLCBGbiBfKSA6OiBfKSA9IExFU1MKICAgIHwgY210ICgoRm4gXywg
VmFyIF8pIDo6IF8pID0gR1JFQVRFUgogICAgfCBjbXQgKChWYXIgdiwgVmFy
IHcpIDo6IGwpID0gbGV4IChTdHJpbmcuY29tcGFyZSAodiwgdykpIGNtdCBs
CiAgICB8IGNtdCAoKEZuIChmLCBhKSwgRm4gKGcsIGIpKSA6OiBsKSA9CiAg
ICAoY2FzZSBsZXggKFN0cmluZy5jb21wYXJlIChmLCBnKSkgKEludC5jb21w
YXJlIG8gRGYgbGVuZ3RoKSAoYSwgYikgb2YgRVFVQUwKICAgICAgID0+IGNt
dCAoemlwIGEgYiBAIGwpCiAgICAgfCB4ID0+IHgpOwoKICBmdW4gY20gW10g
PSBFUVVBTAogICAgfCBjbSAoKFRydWUsICAgICAgICAgIFRydWUgICAgICAg
ICApIDo6IGwpID0gY20gbAogICAgfCBjbSAoKFRydWUsICAgICAgICAgIF8g
ICAgICAgICAgICApIDo6IF8pID0gTEVTUwogICAgfCBjbSAoKF8sICAgICAg
ICAgICAgIFRydWUgICAgICAgICApIDo6IF8pID0gR1JFQVRFUgogICAgfCBj
bSAoKEZhbHNlLCAgICAgICAgIEZhbHNlICAgICAgICApIDo6IGwpID0gY20g
bAogICAgfCBjbSAoKEZhbHNlLCAgICAgICAgIF8gICAgICAgICAgICApIDo6
IF8pID0gTEVTUwogICAgfCBjbSAoKF8sICAgICAgICAgICAgIEZhbHNlICAg
ICAgICApIDo6IF8pID0gR1JFQVRFUgogICAgfCBjbSAoKEF0b20gdCwgICAg
ICAgIEF0b20gdSAgICAgICApIDo6IGwpID0gbGV4IChjbXQgWyh0LCB1KV0p
IGNtIGwKICAgIHwgY20gKChBdG9tIF8sICAgICAgICBfICAgICAgICAgICAg
KSA6OiBfKSA9IExFU1MKICAgIHwgY20gKChfLCAgICAgICAgICAgICBBdG9t
IF8gICAgICAgKSA6OiBfKSA9IEdSRUFURVIKICAgIHwgY20gKChOb3QgcCwg
ICAgICAgICBOb3QgcSAgICAgICAgKSA6OiBsKSA9IGNtICgocCwgcSkgOjog
bCkKICAgIHwgY20gKChOb3QgXyAsICAgICAgICBfICAgICAgICAgICAgKSA6
OiBfKSA9IExFU1MKICAgIHwgY20gKChfLCAgICAgICAgICAgICBOb3QgXyAg
ICAgICAgKSA6OiBfKSA9IEdSRUFURVIKICAgIHwgY20gKChBbmQgKHAxLCBx
MSksICBBbmQgKHAyLCBxMikgKSA6OiBsKSA9IGNtICgocDEsIHAyKSA6OiAo
cTEsIHEyKSA6OiBsKQogICAgfCBjbSAoKEFuZCBfLCAgICAgICAgIF8gICAg
ICAgICAgICApIDo6IF8pID0gTEVTUwogICAgfCBjbSAoKF8sICAgICAgICAg
ICAgIEFuZCBfICAgICAgICApIDo6IF8pID0gR1JFQVRFUgogICAgfCBjbSAo
KE9yIChwMSwgcTEpLCAgIE9yIChwMiwgcTIpICApIDo6IGwpID0gY20gKChw
MSwgcDIpIDo6IChxMSwgcTIpIDo6IGwpCiAgICB8IGNtICgoT3IgXywgICAg
ICAgICAgXyAgICAgICAgICAgICkgOjogXykgPSBMRVNTCiAgICB8IGNtICgo
XywgICAgICAgICAgICAgT3IgXyAgICAgICAgICkgOjogXykgPSBHUkVBVEVS
CiAgICB8IGNtICgoSW1wIChwMSwgcTEpLCAgSW1wIChwMiwgcTIpICkgOjog
bCkgPSBjbSAoKHAxLCBwMikgOjogKHExLCBxMikgOjogbCkKICAgIHwgY20g
KChJbXAgXywgICAgICAgICBfICAgICAgICAgICAgKSA6OiBfKSA9IExFU1MK
ICAgIHwgY20gKChfLCAgICAgICAgICAgICBJbXAgXyAgICAgICAgKSA6OiBf
KSA9IEdSRUFURVIKICAgIHwgY20gKChJZmYgKHAxLCBxMSksICBJZmYgKHAy
LCBxMikgKSA6OiBsKSA9IGNtICgocDEsIHAyKSA6OiAocTEsIHEyKSA6OiBs
KQogICAgfCBjbSAoKElmZiBfLCAgICAgICAgIF8gICAgICAgICAgICApIDo6
IF8pID0gTEVTUwogICAgfCBjbSAoKF8sICAgICAgICAgICAgIElmZiBfICAg
ICAgICApIDo6IF8pID0gR1JFQVRFUgogICAgfCBjbSAoKEZvcmFsbCAodiwg
cCksIEZvcmFsbCAodywgcSkpIDo6IGwpID0KICAgIGxleCAoU3RyaW5nLmNv
bXBhcmUgKHYsIHcpKSAoY20gbyBjb25zIChwLCBxKSkgbAogICAgfCBjbSAo
KEZvcmFsbCBfLCAgICAgIEV4aXN0cyBfICAgICApIDo6IF8pID0gTEVTUwog
ICAgfCBjbSAoKEV4aXN0cyBfLCAgICAgIEZvcmFsbCBfICAgICApIDo6IF8p
ID0gR1JFQVRFUgogICAgfCBjbSAoKEV4aXN0cyAodiwgcCksIEV4aXN0cyAo
dywgcSkpIDo6IGwpID0KICAgIGxleCAoU3RyaW5nLmNvbXBhcmUgKHYsIHcp
KSAoY20gbyBjb25zIChwLCBxKSkgbDsKaW4KICB2YWwgdGVybV9jb21wYXJl
ICAgID0gY210IG8gd3JhcDsKICB2YWwgZm9ybXVsYV9jb21wYXJlID0gY20g
byB3cmFwOwplbmQ7CiAgCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0gKikKKCogQmFzaWMgb3BlcmF0aW9ucyBvbiBsaXRlcmFscy4gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCgpmdW4gbWtfbGl0ZXJh
bCAodHJ1ZSwgIGEpID0gYQogIHwgbWtfbGl0ZXJhbCAoZmFsc2UsIGEpID0g
Tm90IGE7CgpmdW4gZGVzdF9saXRlcmFsIChhIGFzIEF0b20gXykgICAgICAg
PSAodHJ1ZSwgIGEpCiAgfCBkZXN0X2xpdGVyYWwgKE5vdCAoYSBhcyBBdG9t
IF8pKSA9IChmYWxzZSwgYSkKICB8IGRlc3RfbGl0ZXJhbCBfICAgICAgICAg
ICAgICAgICAgID0gcmFpc2UgRVJSICJkZXN0X2xpdGVyYWwiICIiOwoKdmFs
IGlzX2xpdGVyYWwgPSBjYW4gZGVzdF9saXRlcmFsOwoKdmFsIGxpdGVyYWxf
YXRvbSA9IHNuZCBvIGRlc3RfbGl0ZXJhbDsKCigqIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0gKikKKCogRGVhbGluZyB3aXRoIGZvcm11bGEgbmVn
YXRpb25zLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAqKQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCgpm
dW4gbmVnYXRpdmUgKE5vdCBwKSA9IHRydWUKICB8IG5lZ2F0aXZlIF8gICAg
ICAgPSBmYWxzZTsKCnZhbCBwb3NpdGl2ZSA9IG5vbiBuZWdhdGl2ZTsKCmZ1
biBuZWdhdGUgKE5vdCBwKSA9IHAKICB8IG5lZ2F0ZSBwICAgICAgID0gTm90
IHA7CgooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigqIEZ1
bmN0aW9ucyBhbmQgcmVsYXRpb25zIGluIGEgZm9ybXVsYS4gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKikKKCogLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSAqKQoKbG9jYWwKICBmdW4gZm5jIGZzIFtdICAg
ICAgICAgICAgICAgICA9IGZzCiAgICB8IGZuYyBmcyAoVmFyIF8gICAgIDo6
IHRtcykgPSBmbmMgZnMgdG1zCiAgICB8IGZuYyBmcyAoRm4gKG4sIGEpIDo6
IHRtcykgPSBmbmMgKGluc2VydCAobiwgbGVuZ3RoIGEpIGZzKSAoYSBAIHRt
cyk7CgogIGZ1biBmdW5jIGZzIFtdICAgICAgICAgICAgICAgICAgICAgICAg
ICA9IGZzCiAgICB8IGZ1bmMgZnMgKFRydWUgICAgICAgICAgICAgICA6OiBm
bXMpID0gZnVuYyBmcyBmbXMKICAgIHwgZnVuYyBmcyAoRmFsc2UgICAgICAg
ICAgICAgIDo6IGZtcykgPSBmdW5jIGZzIGZtcwogICAgfCBmdW5jIGZzIChB
dG9tIChWYXIgXykgICAgICAgOjogZm1zKSA9IGZ1bmMgZnMgZm1zCiAgICB8
IGZ1bmMgZnMgKEF0b20gKEZuIChfLCB0bXMpKSA6OiBmbXMpID0gZnVuYyAo
Zm5jIGZzIHRtcykgZm1zCiAgICB8IGZ1bmMgZnMgKE5vdCBwICAgICAgICAg
ICAgICA6OiBmbXMpID0gZnVuYyBmcyAocCA6OiBmbXMpCiAgICB8IGZ1bmMg
ZnMgKEFuZCAocCwgcSkgICAgICAgICA6OiBmbXMpID0gZnVuYyBmcyAocCA6
OiBxIDo6IGZtcykKICAgIHwgZnVuYyBmcyAoT3IgIChwLCBxKSAgICAgICAg
IDo6IGZtcykgPSBmdW5jIGZzIChwIDo6IHEgOjogZm1zKQogICAgfCBmdW5j
IGZzIChJbXAgKHAsIHEpICAgICAgICAgOjogZm1zKSA9IGZ1bmMgZnMgKHAg
OjogcSA6OiBmbXMpCiAgICB8IGZ1bmMgZnMgKElmZiAocCwgcSkgICAgICAg
ICA6OiBmbXMpID0gZnVuYyBmcyAocCA6OiBxIDo6IGZtcykKICAgIHwgZnVu
YyBmcyAoRm9yYWxsIChfLCBwKSAgICAgIDo6IGZtcykgPSBmdW5jIGZzIChw
IDo6IGZtcykKICAgIHwgZnVuYyBmcyAoRXhpc3RzIChfLCBwKSAgICAgIDo6
IGZtcykgPSBmdW5jIGZzIChwIDo6IGZtcyk7CmluCiAgdmFsIGZ1bmN0aW9u
cyA9IGZ1bmMgW10gbyB3cmFwOwplbmQ7Cgp2YWwgZnVuY3Rpb25fbmFtZXMg
PSBtYXAgZnN0IG8gZnVuY3Rpb25zOwoKbG9jYWwKICBmdW4gcmVsIHJzIFtd
ICAgICAgICAgICAgICAgICAgICAgICAgPSBycwogICAgfCByZWwgcnMgKFRy
dWUgICAgICAgICAgICAgOjogZm1zKSA9IHJlbCBycyBmbXMKICAgIHwgcmVs
IHJzIChGYWxzZSAgICAgICAgICAgIDo6IGZtcykgPSByZWwgcnMgZm1zCiAg
ICB8IHJlbCBycyAoQXRvbSAoVmFyIF8pICAgICA6OiBmbXMpID0gcmVsIHJz
IGZtcwogICAgfCByZWwgcnMgKEF0b20gKGYgYXMgRm4gXykgOjogZm1zKSA9
IHJlbCAoaW5zZXJ0IChmbl9mdW5jdGlvbiBmKSBycykgZm1zCiAgICB8IHJl
bCBycyAoTm90IHAgICAgICAgICAgICA6OiBmbXMpID0gcmVsIHJzIChwIDo6
IGZtcykKICAgIHwgcmVsIHJzIChBbmQgKHAsIHEpICAgICAgIDo6IGZtcykg
PSByZWwgcnMgKHAgOjogcSA6OiBmbXMpCiAgICB8IHJlbCBycyAoT3IgIChw
LCBxKSAgICAgICA6OiBmbXMpID0gcmVsIHJzIChwIDo6IHEgOjogZm1zKQog
ICAgfCByZWwgcnMgKEltcCAocCwgcSkgICAgICAgOjogZm1zKSA9IHJlbCBy
cyAocCA6OiBxIDo6IGZtcykKICAgIHwgcmVsIHJzIChJZmYgKHAsIHEpICAg
ICAgIDo6IGZtcykgPSByZWwgcnMgKHAgOjogcSA6OiBmbXMpCiAgICB8IHJl
bCBycyAoRm9yYWxsIChfLCBwKSAgICA6OiBmbXMpID0gcmVsIHJzIChwIDo6
IGZtcykKICAgIHwgcmVsIHJzIChFeGlzdHMgKF8sIHApICAgIDo6IGZtcykg
PSByZWwgcnMgKHAgOjogZm1zKTsKaW4KICB2YWwgcmVsYXRpb25zID0gcmVs
IFtdIG8gd3JhcDsKZW5kOwoKdmFsIHJlbGF0aW9uX25hbWVzID0gbWFwIGZz
dCBvIHJlbGF0aW9uczsKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0gKikKKCogVGhlIGVxdWFsaXR5IHJlbGF0aW9uIGhhcyBhIHNwZWNpYWwg
c3RhdHVzLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCgp2YWwgZXFfcmVsID0g
KCI9IiwgMik7CgpmdW4gbWtfZXEgKGEsIGIpID0gQXRvbSAoRm4gKCI9Iiwg
W2EsIGJdKSk7CgpmdW4gZGVzdF9lcSAoQXRvbSAoRm4gKCI9IiwgW2EsIGJd
KSkpID0gKGEsIGIpCiAgfCBkZXN0X2VxIF8gPSByYWlzZSBFUlIgImRlc3Rf
ZXEiICIiOwoKdmFsIGlzX2VxID0gY2FuIGRlc3RfZXE7Cgp2YWwgbGhzID0g
ZnN0IG8gZGVzdF9lcTsKCnZhbCByaHMgPSBzbmQgbyBkZXN0X2VxOwoKdmFs
IGVxX29jY3VycyA9IG1lbSBlcV9yZWwgbyByZWxhdGlvbnM7Cgp2YWwgcmVs
YXRpb25zX25vX2VxID0gTGlzdC5maWx0ZXIgKG5vbiAoZXF1YWwgZXFfcmVs
KSkgbyByZWxhdGlvbnM7CgooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tICopCigqIEZyZWUgdmFyaWFibGVzIGluIHRlcm1zIGFuZCBmb3JtdWxh
cy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKikKKCog
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoKbG9jYWwKICBmdW4g
ZnZ0IGF2ID0KICAgIGxldAogICAgICB2YWwgc2VlbiA9CiAgICAgICAgaWYg
bnVsbCBhdiB0aGVuIG1lbSBlbHNlIChmbiB2ID0+IGZuIHZzID0+IG1lbSB2
IGF2IG9yZWxzZSBtZW0gdiB2cykKICAgICAgZnVuIGYgdnMgW10gPSB2cwog
ICAgICAgIHwgZiB2cyAoVmFyIHYgOjogdG1zKSA9IGYgKGlmIHNlZW4gdiB2
cyB0aGVuIHZzIGVsc2UgdiA6OiB2cykgdG1zCiAgICAgICAgfCBmIHZzIChG
biAoXywgYXJncykgOjogdG1zKSA9IGYgdnMgKGFyZ3MgQCB0bXMpCiAgICBp
bgogICAgICBmCiAgICBlbmQ7CgogIGZ1biBmdiB2cyBbXSAgICAgICAgICAg
ICAgICAgICAgICAgICAgID0gdnMKICAgIHwgZnYgdnMgKChfICwgVHJ1ZSAg
ICAgICAgICkgOjogZm1zKSA9IGZ2IHZzIGZtcwogICAgfCBmdiB2cyAoKF8g
LCBGYWxzZSAgICAgICAgKSA6OiBmbXMpID0gZnYgdnMgZm1zCiAgICB8IGZ2
IHZzICgoYXYsIEF0b20gdCAgICAgICApIDo6IGZtcykgPSBmdiAoZnZ0IGF2
IHZzIFt0XSkgZm1zCiAgICB8IGZ2IHZzICgoYXYsIE5vdCBwICAgICAgICAp
IDo6IGZtcykgPSBmdiB2cyAoKGF2LCBwKSA6OiBmbXMpCiAgICB8IGZ2IHZz
ICgoYXYsIEFuZCAocCwgcSkgICApIDo6IGZtcykgPSBmdiB2cyAoKGF2LCBw
KSA6OiAoYXYsIHEpIDo6IGZtcykKICAgIHwgZnYgdnMgKChhdiwgT3IgIChw
LCBxKSAgICkgOjogZm1zKSA9IGZ2IHZzICgoYXYsIHApIDo6IChhdiwgcSkg
OjogZm1zKQogICAgfCBmdiB2cyAoKGF2LCBJbXAgKHAsIHEpICAgKSA6OiBm
bXMpID0gZnYgdnMgKChhdiwgcCkgOjogKGF2LCBxKSA6OiBmbXMpCiAgICB8
IGZ2IHZzICgoYXYsIElmZiAocCwgcSkgICApIDo6IGZtcykgPSBmdiB2cyAo
KGF2LCBwKSA6OiAoYXYsIHEpIDo6IGZtcykKICAgIHwgZnYgdnMgKChhdiwg
Rm9yYWxsICh4LCBwKSkgOjogZm1zKSA9IGZ2IHZzICgoaW5zZXJ0IHggYXYs
IHApIDo6IGZtcykKICAgIHwgZnYgdnMgKChhdiwgRXhpc3RzICh4LCBwKSkg
OjogZm1zKSA9IGZ2IHZzICgoaW5zZXJ0IHggYXYsIHApIDo6IGZtcyk7Cmlu
ICAgIAogIGZ1biBGVlQgdG0gID0gcmV2IChmdnQgW10gW10gW3RtXSk7CiAg
ZnVuIEZWICBmbSAgPSByZXYgKGZ2ICBbXSBbKFtdLCBmbSldKTsKICBmdW4g
RlZMIGZtcyA9IHJldiAoZnYgIFtdIChtYXAgKHBhaXIgW10pIGZtcykpOwpl
bmQ7Cgp2YWwgc3BlY2lhbGl6ZSA9IHNuZCBvIHN0cmlwX2ZvcmFsbDsKCmZ1
biBnZW5lcmFsaXplIGZtID0gbGlzdF9ta19mb3JhbGwgKEZWIGZtLCBmbSk7
CgooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigqIFN1YnRl
cm1zLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKikKKCogLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLSAqKQoKZnVuIHN1YnRlcm0gW10gdG0gPSB0bQogIHwg
c3VidGVybSAoXyA6OiBfKSAoVmFyIF8pID0gcmFpc2UgRVJSICJzdWJ0ZXJt
IiAiVmFyIgogIHwgc3VidGVybSAoaCA6OiB0KSAoRm4gKF8sIGFyZ3MpKSA9
CiAgc3VidGVybSB0IChMaXN0Lm50aCAoYXJncywgaCkpCiAgaGFuZGxlIFN1
YnNjcmlwdCA9PiByYWlzZSBFUlIgInN1YnRlcm0iICJiYWQgcGF0aCI7Cgps
b2NhbAogIGZ1biB1cGRhdGUgXyBfIFtdID0gcmFpc2UgRVJSICJyZXdyaXRl
IiAiYmFkIHBhdGgiCiAgICB8IHVwZGF0ZSBmIG4gKGggOjogdCkgPSBpZiBu
ID0gMCB0aGVuIGYgaCA6OiB0IGVsc2UgaCA6OiB1cGRhdGUgZiAobiAtIDEp
IHQ7CmluCiAgZnVuIHJld3JpdGUgKFtdIHwtPiByZXMpIF8gPSByZXMKICAg
IHwgcmV3cml0ZSBfIChWYXIgXykgPSByYWlzZSBFUlIgInJld3JpdGUiICJW
YXIiCiAgICB8IHJld3JpdGUgKChoIDo6IHQpIHwtPiByZXMpIChGbiAoZiwg
YXJncykpID0KICAgIEZuIChmLCB1cGRhdGUgKHJld3JpdGUgKHQgfC0+IHJl
cykpIGggYXJncyk7CmVuZDsKCmxvY2FsCiAgZnVuIGF0b21fcmV3cml0ZSBy
ID0gQXRvbSBvIHJld3JpdGUgciBvIGRlc3RfYXRvbTsKaW4KICBmdW4gbGl0
ZXJhbF9zdWJ0ZXJtIHAgPSBzdWJ0ZXJtIHAgbyBkZXN0X2F0b20gbyBsaXRl
cmFsX2F0b207CiAgZnVuIGxpdGVyYWxfcmV3cml0ZSByID0gbWtfbGl0ZXJh
bCBvIChJICMjIGF0b21fcmV3cml0ZSByKSBvIGRlc3RfbGl0ZXJhbDsKZW5k
OwoKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQooKiBUaGUg
S251dGgtQmVuZGl4IG9yZGVyaW5nLiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0gKikKCnR5cGUgV2VpZ2h0ID0gc3RyaW5nICogaW50
IC0+IGludDsKdHlwZSBQcmVjICAgPSAoc3RyaW5nICogaW50KSAqIChzdHJp
bmcgKiBpbnQpIC0+IG9yZGVyOwoKdmFsIG5vX3ZhcnMgPSBNdWx0aXNldC5l
bXB0eSBTdHJpbmcuY29tcGFyZTsKZnVuIG9uZV92YXIgdiA9IE11bHRpc2V0
Lmluc2VydCAodiwgMSkgbm9fdmFyczsKCmZ1biBrYl93ZWlnaHQgdyA9CiAg
bGV0CiAgICBmdW4gd2VpZ2h0IChWYXIgdikgPSAoMCwgb25lX3ZhciB2KQog
ICAgICB8IHdlaWdodCAoRm4gKGYsIGEpKSA9IGZvbGRsIHdnaHQgKHcgKGYs
IGxlbmd0aCBhKSwgbm9fdmFycykgYQogICAgYW5kIHdnaHQgKHQsIChuLCB2
KSkgPSAoY3Vycnkgb3ArIG4gIyMgTXVsdGlzZXQudW5pb24gdikgKHdlaWdo
dCB0KQogIGluCiAgICB3ZWlnaHQKICBlbmQ7CgooKiBUaGUgS251dGgtQmVu
ZGl4IG9yZGVyaW5nIGlzIHBhcnRpYWwgd2hlbiB0ZXJtcyBjb250YWluIHZh
cmlhYmxlcyAqKQoKZnVuIGtiX2NvbXBhcmUgdyBwID0KICBsZXQKICAgIGZ1
biBrYm8gW10gPSBTT01FIEVRVUFMCiAgICAgIHwga2JvICh0dSA6OiByZXN0
KSA9CiAgICAgIGlmIG9wPSB0dSB0aGVuIFNPTUUgRVFVQUwKICAgICAgZWxz
ZQogICAgICAgIGxldCB2YWwgKCh3dCwgdnQpLCAod3UsIHZ1KSkgPSBEZiAo
a2Jfd2VpZ2h0IHcpIHR1CiAgICAgICAgaW4ga2JvMSAoSW50LmNvbXBhcmUg
KHd0LCB3dSkpIChNdWx0aXNldC5jb21wYXJlICh2dCwgdnUpKSB0dSByZXN0
CiAgICAgICAgZW5kCiAgICBhbmQga2JvMSBfICAgICAgIE5PTkUgICAgICAg
ICAgIF8gICAgICBfICAgID0gTk9ORQogICAgICB8IGtibzEgTEVTUyAgICAo
U09NRSBMRVNTKSAgICBfICAgICAgXyAgICA9IFNPTUUgTEVTUwogICAgICB8
IGtibzEgR1JFQVRFUiAoU09NRSBMRVNTKSAgICBfICAgICAgXyAgICA9IE5P
TkUKICAgICAgfCBrYm8xIEVRVUFMICAgKFNPTUUgTEVTUykgICAgXyAgICAg
IF8gICAgPSBTT01FIExFU1MKICAgICAgfCBrYm8xIExFU1MgICAgKFNPTUUg
R1JFQVRFUikgXyAgICAgIF8gICAgPSBOT05FCiAgICAgIHwga2JvMSBHUkVB
VEVSIChTT01FIEdSRUFURVIpIF8gICAgICBfICAgID0gU09NRSBHUkVBVEVS
CiAgICAgIHwga2JvMSBFUVVBTCAgIChTT01FIEdSRUFURVIpIF8gICAgICBf
ICAgID0gU09NRSBHUkVBVEVSCiAgICAgIHwga2JvMSBMRVNTICAgIChTT01F
IEVRVUFMKSAgIF8gICAgICBfICAgID0gU09NRSBMRVNTCiAgICAgIHwga2Jv
MSBHUkVBVEVSIChTT01FIEVRVUFMKSAgIF8gICAgICBfICAgID0gU09NRSBH
UkVBVEVSCiAgICAgIHwga2JvMSBFUVVBTCAgIChTT01FIEVRVUFMKSAgICh0
LCB1KSByZXN0ID0ga2JvMiB0IHUgcmVzdAogICAgYW5kIGtibzIgKEZuIChm
LCBhKSkgKEZuIChnLCBiKSkgcmVzdCA9CiAgICAgIChjYXNlIHAgKChmLCBs
ZW5ndGggYSksIChnLCBsZW5ndGggYikpIG9mIExFU1MgPT4gU09NRSBMRVNT
CiAgICAgICB8IEdSRUFURVIgPT4gU09NRSBHUkVBVEVSCiAgICAgICB8IEVR
VUFMID0+IGtibyAoemlwIGEgYiBAIHJlc3QpKQogICAgICB8IGtibzIgXyBf
IF8gPSByYWlzZSBCVUcgImtibyIgInZhcmlhYmxlIgogIGluCiAgICBrYm8g
byB3cmFwCiAgZW5kOwoKZW5kCigqI2xpbmUgMC4wICJmb2wvU3Vic3QxLnNp
ZyIqKQooKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICopCigqIFNV
QlNUSVRVVElPTlMgT04gRklSU1QtT1JERVIgVEVSTVMgQU5EIEZPUk1VTEFT
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKikKKCogQ3JlYXRlZCBieSBK
b2UgSHVyZCwgSnVuZSAyMDAyICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAqKQooKiA9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09ICopCgpzaWduYXR1cmUgU3Vic3QxID0Kc2lnCgp0eXBlICdhIHBw
ICAgICAgICAgICA9ICdhIFVzZWZ1bC5wcAp0eXBlICgnYSwgJ2IpIG1hcGxl
dCA9ICgnYSwgJ2IpIFVzZWZ1bC5tYXBsZXQKdHlwZSB0ZXJtICAgICAgICAg
ICAgPSBUZXJtMS50ZXJtCnR5cGUgZm9ybXVsYSAgICAgICAgID0gVGVybTEu
Zm9ybXVsYQoKdHlwZSBzdWJzdAoKdmFsIHw8PnwgICAgICAgICAgOiBzdWJz
dAp2YWwgOjo+ICAgICAgICAgICA6IChzdHJpbmcsIHRlcm0pIG1hcGxldCAq
IHN1YnN0IC0+IHN1YnN0CnZhbCBAPiAgICAgICAgICAgIDogc3Vic3QgKiBz
dWJzdCAtPiBzdWJzdAp2YWwgbnVsbCAgICAgICAgICA6IHN1YnN0IC0+IGJv
b2wKdmFsIHRlcm1fc3Vic3QgICAgOiBzdWJzdCAtPiB0ZXJtIC0+IHRlcm0K
dmFsIGZvcm11bGFfc3Vic3QgOiBzdWJzdCAtPiBmb3JtdWxhIC0+IGZvcm11
bGEKdmFsIGZpbmRfcmVkZXggICAgOiBzdHJpbmcgLT4gc3Vic3QgLT4gdGVy
bSBvcHRpb24KdmFsIG5vcm0gICAgICAgICAgOiBzdWJzdCAtPiBzdWJzdCAg
ICAgICAoKiBSZW1vdmVzIGlkZW50aXR5IHN1YnN0aXR1dGlvbnMgKikKdmFs
IHJlc3RyaWN0ICAgICAgOiBzdHJpbmcgbGlzdCAtPiBzdWJzdCAtPiBzdWJz
dAp2YWwgcmVmaW5lICAgICAgICA6IHN1YnN0IC0+IHN1YnN0IC0+IHN1YnN0
CnZhbCBpc19yZW5hbWluZyAgIDogc3Vic3QgLT4gYm9vbAp2YWwgdG9fbWFw
bGV0cyAgICA6IHN1YnN0IC0+IChzdHJpbmcsIHRlcm0pIG1hcGxldCBsaXN0
CnZhbCBmcm9tX21hcGxldHMgIDogKHN0cmluZywgdGVybSkgbWFwbGV0IGxp
c3QgLT4gc3Vic3QKdmFsIGZvbGRsICAgICAgICAgOiAoKHN0cmluZywgdGVy
bSkgbWFwbGV0IC0+ICdhIC0+ICdhKSAtPiAnYSAtPiBzdWJzdCAtPiAnYQp2
YWwgZm9sZHIgICAgICAgICA6ICgoc3RyaW5nLCB0ZXJtKSBtYXBsZXQgLT4g
J2EgLT4gJ2EpIC0+ICdhIC0+IHN1YnN0IC0+ICdhCnZhbCBwcF9zdWJzdCAg
ICAgIDogc3Vic3QgcHAKCmVuZAoKKCojbGluZSAwLjAgImZvbC9TdWJzdDEu
c21sIiopCigqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKikKKCog
U1VCU1RJVFVUSU9OUyBPTiBGSVJTVC1PUkRFUiBURVJNUyBBTkQgRk9STVVM
QVMgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiBDcmVhdGVkIGJ5
IEpvZSBIdXJkLCBKdW5lIDIwMDIgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICopCigqID09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0gKikKCigqCmFwcCBsb2FkIFsiQmluYXJ5bWFwIiwgIlVzZWZ1
bCIsICJUZXJtMSJdOwoqKQoKKCoKKikKc3RydWN0dXJlIFN1YnN0MSA6PiBT
dWJzdDEgPQpzdHJ1Y3QKCm9wZW4gVXNlZnVsIFRlcm0xOwoKaW5maXhyIDgg
Kys7CmluZml4ciA3ID4+OwppbmZpeHIgNiB8fDsKaW5maXhyIHwtPiA6Oj4g
QD4gb28gIyM7CgpzdHJ1Y3R1cmUgTSA9IEJpbmFyeW1hcDsKCigqIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCogSGVscGVyIGZ1bmN0aW9u
cy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tICopCgpmdW4gTXB1cmdlIChkLCBrKSA9IGZzdCAoTS5yZW1vdmUgKGQs
IGspKSBoYW5kbGUgTm90Rm91bmQgPT4gZDsKCigqIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0gKikKKCogVGhlIHVuZGVybHlpbmcgcmVwcmVzZW50
YXRpb24uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAqKQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCgpk
YXRhdHlwZSBzdWJzdCA9IFN1YnN0IG9mIChzdHJpbmcsIHRlcm0pIE0uZGlj
dDsKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCogT3Bl
cmF0aW9ucy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tICopCgp2YWwgfDw+fCA9IFN1YnN0IChNLm1rRGlj
dCBTdHJpbmcuY29tcGFyZSk7CgpmdW4gKGEgfC0+IGIpIDo6PiAoU3Vic3Qg
ZCkgPSBTdWJzdCAoTS5pbnNlcnQgKGQsIGEsIGIpKTsKCmZ1biAoU3Vic3Qg
c3ViMSkgQD4gKFN1YnN0IHN1YjIpID0KICBTdWJzdCAoTS5mb2xkbCAoZm4g
KGEsIGIsIGQpID0+IE0uaW5zZXJ0IChkLCBhLCBiKSkgc3ViMiBzdWIxKTsK
CmZ1biBudWxsIChTdWJzdCBzKSA9IE0ubnVtSXRlbXMgcyA9IDA7CgpmdW4g
ZmluZF9yZWRleCByIChTdWJzdCBkKSA9IE0ucGVlayAoZCwgcik7CgpmdW4g
cHVyZ2UgdiAoU3Vic3QgZCkgPSBTdWJzdCAoTXB1cmdlIChkLCB2KSk7Cgps
b2NhbAogIGV4Y2VwdGlvbiBVbmNoYW5nZWQ7CgogIGZ1biBhbHdheXMgZiB4
ID0gZiB4IGhhbmRsZSBVbmNoYW5nZWQgPT4geDsKCiAgZnVuIHBhaXJfdW5j
aGFuZ2VkIGYgKHgsIHkpID0KICAgIGxldAogICAgICB2YWwgKGMsIHgpID0g
KHRydWUsIGYgeCkgaGFuZGxlIFVuY2hhbmdlZCA9PiAoZmFsc2UsIHgpCiAg
ICAgIHZhbCAoYywgeSkgPSAodHJ1ZSwgZiB5KSBoYW5kbGUgVW5jaGFuZ2Vk
ID0+IChjLCB5KQogICAgaW4KICAgICAgaWYgYyB0aGVuICh4LCB5KSBlbHNl
IHJhaXNlIFVuY2hhbmdlZAogICAgZW5kOwoKICBmdW4gbGlzdF91bmNoYW5n
ZWQgZiA9CiAgICBsZXQKICAgICAgZnVuIGcgKHgsIChiLCBsKSkgPSAodHJ1
ZSwgZiB4IDo6IGwpIGhhbmRsZSBVbmNoYW5nZWQgPT4gKGIsIHggOjogbCkK
ICAgICAgZnVuIGggKHRydWUsIGwpID0gcmV2IGwgfCBoIChmYWxzZSwgXykg
PSByYWlzZSBVbmNoYW5nZWQKICAgIGluCiAgICAgIGggbyBmb2xkbCBnIChm
YWxzZSwgW10pCiAgICBlbmQ7CgogIGZ1biBmaW5kX3VuY2hhbmdlZCB2IHIg
PQogICAgY2FzZSBmaW5kX3JlZGV4IHYgciBvZiBTT01FIHQgPT4gdCB8IE5P
TkUgPT4gcmFpc2UgVW5jaGFuZ2VkOwoKICBmdW4gdG1fc3Vic3QgciA9CiAg
ICBsZXQKICAgICAgZnVuIGYgKFZhciB2KSAgICAgPSBmaW5kX3VuY2hhbmdl
ZCB2IHIKICAgICAgICB8IGYgKEZuIChuLCBhKSkgPSBGbiAobiwgbGlzdF91
bmNoYW5nZWQgZiBhKQogICAgaW4KICAgICAgZgogICAgZW5kOwoKICBmdW4g
Zm1fc3Vic3QgciA9CiAgICBsZXQKICAgICAgZnVuIGYgRmFsc2UgICAgICAg
PSByYWlzZSBVbmNoYW5nZWQKICAgICAgICB8IGYgVHJ1ZSAgICAgICAgPSBy
YWlzZSBVbmNoYW5nZWQKICAgICAgICB8IGYgKEF0b20gdG0gICkgPSBBdG9t
ICh0bV9zdWJzdCByIHRtKQogICAgICAgIHwgZiAoTm90IHAgICAgKSA9IE5v
dCAoZiBwKQogICAgICAgIHwgZiAoQW5kIHBxICAgKSA9IEFuZCAocGFpcl91
bmNoYW5nZWQgZiBwcSkKICAgICAgICB8IGYgKE9yICBwcSAgICkgPSBPciAg
KHBhaXJfdW5jaGFuZ2VkIGYgcHEpCiAgICAgICAgfCBmIChJbXAgcHEgICAp
ID0gSW1wIChwYWlyX3VuY2hhbmdlZCBmIHBxKQogICAgICAgIHwgZiAoSWZm
IHBxICAgKSA9IElmZiAocGFpcl91bmNoYW5nZWQgZiBwcSkKICAgICAgICB8
IGYgKEZvcmFsbCB2cCkgPSBmbV9zdWJzdHEgciBGb3JhbGwgdnAKICAgICAg
ICB8IGYgKEV4aXN0cyB2cCkgPSBmbV9zdWJzdHEgciBFeGlzdHMgdnAKICAg
IGluCiAgICAgIGlmIG51bGwgciB0aGVuIEkgZWxzZSBhbHdheXMgZgogICAg
ZW5kCiAgYW5kIGZtX3N1YnN0cSByIFEgKHYsIHApID0KICAgIGxldCB2YWwg
dicgPSB2YXJpYW50IHYgKEZWIChmbV9zdWJzdCAocHVyZ2UgdiByKSBwKSkK
ICAgIGluIFEgKHYnLCBmbV9zdWJzdCAoKHYgfC0+IFZhciB2JykgOjo+IHIp
IHApCiAgICBlbmQ7CmluCiAgZnVuIHRlcm1fc3Vic3QgICAgZW52IHRtID0g
aWYgbnVsbCBlbnYgdGhlbiB0bSBlbHNlIGFsd2F5cyAodG1fc3Vic3QgZW52
KSB0bTsKICBmdW4gZm9ybXVsYV9zdWJzdCBlbnYgZm0gPSBmbV9zdWJzdCBl
bnYgZm07CmVuZDsKICAKZnVuIG5vcm0gKHN1YiBhcyBTdWJzdCBkaWN0KSA9
CiAgbGV0CiAgICBmdW4gY2hlY2sgKGEsIGIsIChjLCBkKSkgPQogICAgICBp
ZiBWYXIgYSA9IGIgdGhlbiAodHJ1ZSwgZnN0IChNLnJlbW92ZSAoZCwgYSkp
KSBlbHNlIChjLCBkKQogICAgdmFsIChyZW1vdmVkLCBkaWN0JykgPSBNLmZv
bGRsIGNoZWNrIChmYWxzZSwgZGljdCkgZGljdAogIGluCiAgICBpZiByZW1v
dmVkIHRoZW4gU3Vic3QgZGljdCcgZWxzZSBzdWIKICBlbmQ7CgpmdW4gdG9f
bWFwbGV0cyAoU3Vic3QgcykgPSBtYXAgKG9wfC0+KSAoTS5saXN0SXRlbXMg
cyk7CgpmdW4gZnJvbV9tYXBsZXRzIG1zID0gZm9sZGwgKG9wIDo6PikgfDw+
fCAocmV2IG1zKTsKCmZ1biByZXN0cmljdCB2cyA9CiAgZnJvbV9tYXBsZXRz
IG8gTGlzdC5maWx0ZXIgKGZuIChhIHwtPiBfKSA9PiBtZW0gYSB2cykgbyB0
b19tYXBsZXRzOwoKKCogTm90ZTogdGhpcyBqdXN0IGRvZXNuJ3Qgd29yayB3
aXRoIGN5Y2xpYyBzdWJzdGl0dXRpb25zISAqKQpmdW4gcmVmaW5lIChTdWJz
dCBzdWIxKSBzdWIyID0KICBsZXQKICAgIGZ1biBmICgoYSwgYiksIHMpID0K
ICAgICAgbGV0IHZhbCBiJyA9IHRlcm1fc3Vic3Qgc3ViMiBiCiAgICAgIGlu
IGlmIFZhciBhID0gYicgdGhlbiBzIGVsc2UgKGEgfC0+IGInKSA6Oj4gcwog
ICAgICBlbmQKICBpbgogICAgZm9sZGwgZiBzdWIyIChNLmxpc3RJdGVtcyBz
dWIxKQogIGVuZDsKCmxvY2FsCiAgZXhjZXB0aW9uIFFGCiAgZnVuIHJzICh2
LCBWYXIgdywgbCkgPSBpZiBtZW0gdyBsIHRoZW4gcmFpc2UgUUYgZWxzZSB3
IDo6IGwKICAgIHwgcnMgKF8sIEZuIF8sIF8pID0gcmFpc2UgUUYKaW4KICBm
dW4gaXNfcmVuYW1pbmcgKFN1YnN0IHN1YikgPSAoTS5mb2xkbCBycyBbXSBz
dWI7IHRydWUpIGhhbmRsZSBRRiA9PiBmYWxzZTsKZW5kOwoKZnVuIGZvbGRs
IGYgYiAoU3Vic3Qgc3ViKSA9IE0uZm9sZGwgKGZuIChzLCB0LCBhKSA9PiBm
IChzIHwtPiB0KSBhKSBiIHN1YjsKCmZ1biBmb2xkciBmIGIgKFN1YnN0IHN1
YikgPSBNLmZvbGRyIChmbiAocywgdCwgYSkgPT4gZiAocyB8LT4gdCkgYSkg
YiBzdWI7Cgp2YWwgcHBfc3Vic3QgPQogIHBwX21hcCB0b19tYXBsZXRzCiAg
KGZuIHBwID0+CiAgIChmbiBbXSA9PiBwcF9zdHJpbmcgcHAgInw8PnwiCiAg
ICAgfCBsID0+IHBwX2xpc3QgKHBwX21hcGxldCBwcF9zdHJpbmcgcHBfdGVy
bSkgcHAgbCkpOwoKZW5kCigqI2xpbmUgMC4wICJmb2wvS2VybmVsMS5zaWci
KikKKCogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqKQooKiBBIExD
Ri1TVFlMRSBMT0dJQ0FMIEtFUk5FTCBGT1IgRklSU1QtT1JERVIgQ0xBVVNF
UyAgICAgICAgICAgICAgICAgICAgICAgICopCigqIENyZWF0ZWQgYnkgSm9l
IEh1cmQsIFNlcHRlbWJlciAyMDAxICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKikKKCogPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PSAqKQoKc2lnbmF0dXJlIEtlcm5lbDEgPQpzaWcKCnR5cGUgdGVybSAg
ICA9IFRlcm0xLnRlcm0KdHlwZSBmb3JtdWxhID0gVGVybTEuZm9ybXVsYQp0
eXBlIHN1YnN0ICAgPSBTdWJzdDEuc3Vic3QKCigqIEFuIEFCU1RSQUNUIHR5
cGUgZm9yIHRoZW9yZW1zICopCmVxdHlwZSB0aG0KZGF0YXR5cGUgaW5mZXJl
bmNlID0gQXhpb20gfCBSZWZsIHwgQXNzdW1lIHwgSW5zdCB8IEZhY3RvciB8
IFJlc29sdmUgfCBFcXVhbGl0eQoKKCogRGVzdHJ1Y3Rpb24gb2YgdGhlb3Jl
bXMgaXMgZmluZSAqKQp2YWwgZGVzdF90aG0gOiB0aG0gLT4gZm9ybXVsYSBs
aXN0ICogKGluZmVyZW5jZSAqIHRobSBsaXN0KQoKKCogQnV0IGNyZWF0aW9u
IGlzIG9ubHkgYWxsb3dlZCBieSB0aGUgcHJpbWl0aXZlIHJ1bGVzIG9mIGlu
ZmVyZW5jZSAqKQp2YWwgQVhJT00gICAgOiBmb3JtdWxhIGxpc3QgLT4gdGht
CnZhbCBSRUZMICAgICA6IHRlcm0gLT4gdGhtCnZhbCBBU1NVTUUgICA6IGZv
cm11bGEgLT4gdGhtCnZhbCBJTlNUICAgICA6IHN1YnN0IC0+IHRobSAtPiB0
aG0KdmFsIEZBQ1RPUiAgIDogdGhtIC0+IHRobQp2YWwgUkVTT0xWRSAgOiBm
b3JtdWxhIC0+IHRobSAtPiB0aG0gLT4gdGhtCnZhbCBFUVVBTElUWSA6IGZv
cm11bGEgLT4gaW50IGxpc3QgLT4gdGVybSAtPiBib29sIC0+IHRobSAtPiB0
aG0KCmVuZAooKiNsaW5lIDAuMCAiZm9sL0tlcm5lbDEuc21sIiopCigqID09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0gKikKKCogQSBMQ0YtU1RZTEUg
TE9HSUNBTCBLRVJORUwgRk9SIEZJUlNULU9SREVSIENMQVVTRVMgICAgICAg
ICAgICAgICAgICAgICAgICAqKQooKiBDcmVhdGVkIGJ5IEpvZSBIdXJkLCBT
ZXB0ZW1iZXIgMjAwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICopCigqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKikK
CnN0cnVjdHVyZSBLZXJuZWwxIDo+IEtlcm5lbDEgPQpzdHJ1Y3QKCm9wZW4g
VXNlZnVsIFRlcm0xOwoKaW5maXhyIHwtPiA6Oj4gb287Cgp0eXBlIHN1YnN0
ICAgICAgICA9IFN1YnN0MS5zdWJzdDsKdmFsIGZvcm11bGFfc3Vic3QgPSBT
dWJzdDEuZm9ybXVsYV9zdWJzdDsKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0gKikKKCogQW4gQUJTVFJBQ1QgdHlwZSBmb3IgdGhlb3JlbXMu
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAq
KQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCgpkYXRhdHlw
ZSBpbmZlcmVuY2UgPSBBeGlvbSB8IFJlZmwgfCBBc3N1bWUgfCBJbnN0IHwg
RmFjdG9yIHwgUmVzb2x2ZSB8IEVxdWFsaXR5OwoKZGF0YXR5cGUgdGhtID0g
VGhtIG9mIGZvcm11bGEgbGlzdCAqIChpbmZlcmVuY2UgKiB0aG0gbGlzdCk7
CgooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigqIERlc3Ry
dWN0aW9uIG9mIHRoZW9yZW1zIGlzIGZpbmUuICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKikKKCogLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLSAqKQoKZnVuIGRlc3RfdGhtIChUaG0gdGgpID0gdGg7
Cgp2YWwgY2xhdXNlID0gZnN0IG8gZGVzdF90aG07CgooKiAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tICopCigqIEJ1dCBjcmVhdGlvbiBpcyBvbmx5
IGFsbG93ZWQgYnkgdGhlIHByaW1pdGl2ZSBydWxlcyBvZiBpbmZlcmVuY2Uu
ICAgICAgICAgKikKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAq
KQoKZnVuIEFYSU9NIGNsID0KICBpZiBMaXN0LmFsbCBpc19saXRlcmFsIGNs
IHRoZW4gVGhtIChjbCwgKEF4aW9tLCBbXSkpCiAgZWxzZSByYWlzZSBFUlIg
IkFYSU9NIiAiYXJndW1lbnQgbm90IGEgbGlzdCBvZiBsaXRlcmFscyI7Cgpm
dW4gUkVGTCB0bSA9IFRobSAoW21rX2VxICh0bSwgdG0pXSwgKFJlZmwsIFtd
KSk7CgpmdW4gQVNTVU1FIGZtID0KICBpZiBpc19saXRlcmFsIGZtIHRoZW4g
VGhtIChbZm0sIG5lZ2F0ZSBmbV0sIChBc3N1bWUsIFtdKSkKICBlbHNlIHJh
aXNlIEVSUiAiQVNTVU1FIiAiYXJndW1lbnQgbm90IGEgbGl0ZXJhbCI7Cgpm
dW4gSU5TVCBlbnYgKHRoIGFzIFRobSAoY2wsIHByKSkgPQogIGxldAogICAg
dmFsIGNsJyA9IG1hcCAoZm9ybXVsYV9zdWJzdCBlbnYpIGNsCiAgaW4KICAg
IGlmIGNsJyA9IGNsIHRoZW4gdGggZWxzZQogICAgICBjYXNlIHByIG9mIChJ
bnN0LCBbdGgnXSkKICAgICAgICA9PiBpZiBjbCcgPSBjbGF1c2UgdGgnIHRo
ZW4gdGgnIGVsc2UgVGhtIChjbCcsIChJbnN0LCBbdGgnXSkpCiAgICAgIHwg
XyA9PiBUaG0gKGNsJywgKEluc3QsIFt0aF0pKQogIGVuZDsKCmZ1biBGQUNU
T1IgdGggPQogIGxldCB2YWwgY2wgPSByZXYgKHNldGlmeSAoY2xhdXNlIHRo
KSkKICBpbiBpZiBjbCA9IGNsYXVzZSB0aCB0aGVuIHRoIGVsc2UgVGhtIChj
bCwgKEZhY3RvciwgW3RoXSkpCiAgZW5kOwoKZnVuIFJFU09MVkUgZm0gdGgx
IHRoMiA9CiAgbGV0CiAgICB2YWwgY2wxICA9IGNsYXVzZSB0aDEKICAgIHZh
bCBjbDEnID0gTGlzdC5maWx0ZXIgKG5vdCBvIGVxdWFsIGZtKSBjbDEKICAg
IHZhbCBjbDIgID0gY2xhdXNlIHRoMgogICAgdmFsIGNsMicgPSBMaXN0LmZp
bHRlciAobm90IG8gZXF1YWwgKG5lZ2F0ZSBmbSkpIGNsMgogICAgdmFsICgp
ICAgPQogICAgICBhc3NlcnQgKGNsMSA8PiBjbDEnIG9yZWxzZSBjbDIgPD4g
Y2wyJykKICAgICAgKEVSUiAiUkVTT0xWRSIgInJlc29sdmFudCBkb2VzIG5v
dCBmZWF0dXJlIGluIGVpdGhlciBjbGF1c2UiKQogIGluCiAgICBUaG0gKGNs
MScgQCBjbDInLCAoUmVzb2x2ZSwgW3RoMSwgdGgyXSkpCiAgZW5kOwoKZnVu
IEVRVUFMSVRZIGZtIHAgcmVzIGxyIHRoID0KICBsZXQKICAgIHZhbCBlcV9s
aXQgPQogICAgICBsZXQKICAgICAgICB2YWwgcmVkID0gbGl0ZXJhbF9zdWJ0
ZXJtIHAgZm0KICAgICAgaW4KICAgICAgICBOb3QgKG1rX2VxIChpZiBsciB0
aGVuIChyZWQsIHJlcykgZWxzZSAocmVzLCByZWQpKSkKICAgICAgZW5kCiAg
ICB2YWwgb3RoZXJfbGl0cyA9CiAgICAgIGxldAogICAgICAgIHZhbCBsID0g
Y2xhdXNlIHRoCiAgICAgIGluCiAgICAgICAgY2FzZSBpbmRleCAoZXF1YWwg
Zm0pIGwgb2YgTk9ORQogICAgICAgICAgPT4gcmFpc2UgRVJSICJFUVVBTElU
WSIgImxpdGVyYWwgZG9lcyBub3Qgb2NjdXIgaW4gY2xhdXNlIgogICAgICAg
IHwgU09NRSBuID0+IHVwZGF0ZV9udGggKGxpdGVyYWxfcmV3cml0ZSAocCB8
LT4gcmVzKSkgbiBsCiAgICAgIGVuZAogIGluCiAgICBUaG0gKGVxX2xpdCA6
OiBvdGhlcl9saXRzLCAoRXF1YWxpdHksIFt0aF0pKQogIGVuZDsKCmVuZAoo
KiNsaW5lIDAuMCAiZm9sL01hdGNoMS5zaWciKikKKCogPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PSAqKQooKiBNQVRDSElORyBBTkQgVU5JRklDQVRJ
T04gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICopCigqIENyZWF0ZWQgYnkgSm9lIEh1cmQsIFNlcHRlbWJlciAy
MDAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKikK
KCogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqKQoKc2lnbmF0dXJl
IE1hdGNoMSA9CnNpZwoKdHlwZSB0ZXJtICAgID0gVGVybTEudGVybQp0eXBl
IGZvcm11bGEgPSBUZXJtMS5mb3JtdWxhCnR5cGUgc3Vic3QgICA9IFN1YnN0
MS5zdWJzdAoKKCogTWF0Y2hpbmcgKikKdmFsIG1hdGNobCAgICAgICAgICA6
IHN1YnN0IC0+ICh0ZXJtICogdGVybSkgbGlzdCAtPiBzdWJzdAp2YWwgbWF0
Y2ggICAgICAgICAgIDogdGVybSAtPiB0ZXJtIC0+IHN1YnN0CnZhbCBtYXRj
aGxfbGl0ZXJhbHMgOiBzdWJzdCAtPiAoZm9ybXVsYSAqIGZvcm11bGEpIGxp
c3QgLT4gc3Vic3QKdmFsIG1hdGNoX2xpdGVyYWxzICA6IGZvcm11bGEgLT4g
Zm9ybXVsYSAtPiBzdWJzdAoKKCogVW5pZmljYXRpb24gKikKdmFsIHVuaWZ5
bCAgICAgICAgICA6IHN1YnN0IC0+ICh0ZXJtICogdGVybSkgbGlzdCAtPiBz
dWJzdAp2YWwgdW5pZnkgICAgICAgICAgIDogc3Vic3QgLT4gdGVybSAtPiB0
ZXJtIC0+IHN1YnN0CnZhbCB1bmlmeV9hbmRfYXBwbHkgOiB0ZXJtIC0+IHRl
cm0gLT4gdGVybQp2YWwgdW5pZnlsX2xpdGVyYWxzIDogc3Vic3QgLT4gKGZv
cm11bGEgKiBmb3JtdWxhKSBsaXN0IC0+IHN1YnN0CnZhbCB1bmlmeV9saXRl
cmFscyAgOiBzdWJzdCAtPiBmb3JtdWxhIC0+IGZvcm11bGEgLT4gc3Vic3QK
CmVuZAooKiNsaW5lIDAuMCAiZm9sL01hdGNoMS5zbWwiKikKKCogPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PSAqKQooKiBNQVRDSElORyBBTkQgVU5J
RklDQVRJT04gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICopCigqIENyZWF0ZWQgYnkgSm9lIEh1cmQsIFNlcHRl
bWJlciAyMDAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKikKKCogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqKQoKKCoK
YXBwIGxvYWQgWyJVc2VmdWwiLCAiTW9zbWwiLCAiVGVybTEiXTsKKikKCigq
CiopCnN0cnVjdHVyZSBNYXRjaDEgOj4gTWF0Y2gxID0Kc3RydWN0CgpvcGVu
IFVzZWZ1bCBUZXJtMTsKCmluZml4ciB8LT4gOjo+OwoKdHlwZSBzdWJzdCAg
ICAgICAgPSBTdWJzdDEuc3Vic3Q7CnZhbCB8PD58ICAgICAgICAgID0gU3Vi
c3QxLnw8Pnw7CnZhbCBvcCA6Oj4gICAgICAgID0gU3Vic3QxLjo6PjsKdmFs
IHRlcm1fc3Vic3QgICAgPSBTdWJzdDEudGVybV9zdWJzdDsKdmFsIGZvcm11
bGFfc3Vic3QgPSBTdWJzdDEuZm9ybXVsYV9zdWJzdDsKCigqIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCogTWF0Y2hpbmcuICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
ICopCgpmdW4gcmF3X21hdGNoIGVudiB4IHRtID0KICAoY2FzZSBTdWJzdDEu
ZmluZF9yZWRleCB4IGVudiBvZiBOT05FID0+ICh4IHwtPiB0bSkgOjo+IGVu
dgogICB8IFNPTUUgdG0nID0+CiAgICAgaWYgdG0gPSB0bScgdGhlbiBlbnYK
ICAgICBlbHNlIHJhaXNlIEVSUiAibWF0Y2giICJvbmUgdmFyIHRyeWluZyB0
byBtYXRjaCB0d28gZGlmZmVyZW50IHRlcm1zIik7CgpmdW4gbWF0Y2hsIGVu
diBbXSA9IGVudgogIHwgbWF0Y2hsIGVudiAoKFZhciB4LCB0bSkgOjogcmVz
dCkgPSBtYXRjaGwgKHJhd19tYXRjaCBlbnYgeCB0bSkgcmVzdAogIHwgbWF0
Y2hsIGVudiAoKEZuIChmLCBhcmdzKSwgRm4gKGYnLCBhcmdzJykpIDo6IHJl
c3QpID0KICBpZiBmID0gZicgYW5kYWxzbyBsZW5ndGggYXJncyA9IGxlbmd0
aCBhcmdzJyB0aGVuCiAgICBtYXRjaGwgZW52ICh6aXAgYXJncyBhcmdzJyBA
IHJlc3QpCiAgZWxzZSByYWlzZSBFUlIgIm1hdGNoIiAiY2FuJ3QgbWF0Y2gg
dHdvIGRpZmZlcmVudCBmdW5jdGlvbnMiCiAgfCBtYXRjaGwgXyBfID0gcmFp
c2UgRVJSICJtYXRjaCIgImRpZmZlcmVudCBzdHJ1Y3R1cmUiOwoKZnVuIG1h
dGNoIHRtIHRtJyA9IFN1YnN0MS5ub3JtIChtYXRjaGwgfDw+fCBbKHRtLCB0
bScpXSk7Cgpsb2NhbAogIGZ1biBjb252IChBdG9tIHQsIEF0b20gdCcpID0g
U09NRSAodCwgdCcpCiAgICB8IGNvbnYgKE5vdCBwLCAgTm90IHEpICAgPSBj
b252IChwLCBxKQogICAgfCBjb252IChUcnVlLCAgIFRydWUpICAgID0gTk9O
RQogICAgfCBjb252IChGYWxzZSwgIEZhbHNlKSAgID0gTk9ORQogICAgfCBj
b252IF8gICAgICAgICAgICAgICAgID0gcmFpc2UgRVJSICJtYXRjaF9saXRl
cmFscyIgImluY29tcGF0aWJsZSI7CmluCiAgZnVuIG1hdGNobF9saXRlcmFs
cyBzdWIgPSBtYXRjaGwgc3ViIG8gTGlzdC5tYXBQYXJ0aWFsIGNvbnY7CmVu
ZDsKCmZ1biBtYXRjaF9saXRlcmFscyBsaXQgbGl0JyA9IFN1YnN0MS5ub3Jt
IChtYXRjaGxfbGl0ZXJhbHMgfDw+fCBbKGxpdCwgbGl0JyldKTsKCigqIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCogVW5pZmljYXRpb24u
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tICopCgpsb2NhbAogIGZ1biBvY2N1cnMgdiB0bSA9IG1lbSB2IChG
VlQgdG0pOwoKICBmdW4gc29sdmUgZW52IFtdID0gZW52CiAgICB8IHNvbHZl
IGVudiAoKHRtMSwgdG0yKSA6OiByZXN0KSA9CiAgICBzb2x2ZScgZW52ICh0
ZXJtX3N1YnN0IGVudiB0bTEpICh0ZXJtX3N1YnN0IGVudiB0bTIpIHJlc3QK
ICBhbmQgc29sdmUnIGVudiAoVmFyIHgpIHRtIHJlc3QgPQogICAgaWYgVmFy
IHggPSB0bSB0aGVuIHNvbHZlIGVudiByZXN0CiAgICBlbHNlIGlmIG9jY3Vy
cyB4IHRtIHRoZW4gcmFpc2UgRVJSICJ1bmlmeSIgIm9jY3VycyBjaGVjayIK
ICAgIGVsc2UKICAgICAgKGNhc2UgU3Vic3QxLmZpbmRfcmVkZXggeCBlbnYg
b2YgTk9ORQogICAgICAgICA9PiBzb2x2ZSAoU3Vic3QxLnJlZmluZSBlbnYg
KCh4IHwtPiB0bSkgOjo+IHw8PnwpKSByZXN0CiAgICAgICB8IFNPTUUgdG0n
ID0+IHNvbHZlJyBlbnYgdG0nIHRtIHJlc3QpCiAgICB8IHNvbHZlJyBlbnYg
dG0gKHRtJyBhcyBWYXIgXykgcmVzdCA9IHNvbHZlJyBlbnYgdG0nIHRtIHJl
c3QKICAgIHwgc29sdmUnIGVudiAoRm4gKGYsIGFyZ3MpKSAoRm4gKGYnLCBh
cmdzJykpIHJlc3QgPQogICAgaWYgZiA9IGYnIGFuZGFsc28gbGVuZ3RoIGFy
Z3MgPSBsZW5ndGggYXJncycgdGhlbgogICAgICBzb2x2ZSBlbnYgKHppcCBh
cmdzIGFyZ3MnIEAgcmVzdCkKICAgIGVsc2UgcmFpc2UgRVJSICJ1bmlmeSIg
ImRpZmZlcmVudCBzdHJ1Y3R1cmUiOwppbgogIHZhbCB1bmlmeWwgPSBzb2x2
ZTsKZW5kOwoKZnVuIHVuaWZ5IGVudiB0bSB0bScgPSB1bmlmeWwgZW52IFso
dG0sIHRtJyldOwoKZnVuIHVuaWZ5X2FuZF9hcHBseSB0bSB0bScgPSB0ZXJt
X3N1YnN0ICh1bmlmeSB8PD58IHRtIHRtJykgdG07Cgpsb2NhbAogIGZ1biBj
b252IChBdG9tIHQsIEF0b20gdCcpID0gU09NRSAodCwgdCcpCiAgICB8IGNv
bnYgKE5vdCBwLCAgTm90IHEpICAgPSBjb252IChwLCBxKQogICAgfCBjb252
IChUcnVlLCAgIFRydWUpICAgID0gTk9ORQogICAgfCBjb252IChGYWxzZSwg
IEZhbHNlKSAgID0gTk9ORQogICAgfCBjb252IF8gICAgICAgICAgICAgICAg
ID0gcmFpc2UgRVJSICJ1bmlmeV9saXRlcmFscyIgImluY29tcGF0aWJsZSI7
CmluCiAgZnVuIHVuaWZ5bF9saXRlcmFscyBlbnYgPSB1bmlmeWwgZW52IG8g
TGlzdC5tYXBQYXJ0aWFsIGNvbnY7CmVuZDsKCmZ1biB1bmlmeV9saXRlcmFs
cyBlbnYgbGl0IGxpdCcgPSB1bmlmeWxfbGl0ZXJhbHMgZW52IFsobGl0LCBs
aXQnKV07CgplbmQKKCojbGluZSAwLjAgImZvbC9UZXJtTmV0MS5zaWciKikK
KCogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqKQooKiBNQVRDSElO
RyBBTkQgVU5JRklDQVRJT04gRk9SIFNFVFMgT0YgVEVSTVMgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICopCigqIENyZWF0ZWQgYnkgSm9lIEh1
cmQsIFNlcHRlbWJlciAyMDAxICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKikKKCogPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PSAqKQoKc2lnbmF0dXJlIFRlcm1OZXQxID0Kc2lnCgp0eXBlICdhIHBwICAg
ICAgICAgICA9ICdhIFVzZWZ1bC5wcAp0eXBlICgnYSwgJ2IpIG1hcGxldCA9
ICgnYSwgJ2IpIFVzZWZ1bC5tYXBsZXQKdHlwZSB0ZXJtICAgICAgICAgICAg
PSBUZXJtMS50ZXJtCgp0eXBlICdhIHRlcm1fbWFwCgp2YWwgZW1wdHkgICAg
ICAgIDogJ2EgdGVybV9tYXAKdmFsIGluc2VydCAgICAgICA6ICh0ZXJtLCAn
YSkgbWFwbGV0IC0+ICdhIHRlcm1fbWFwIC0+ICdhIHRlcm1fbWFwCnZhbCBt
YXRjaCAgICAgICAgOiAnYSB0ZXJtX21hcCAtPiB0ZXJtIC0+ICdhIGxpc3QK
dmFsIG1hdGNoZWQgICAgICA6ICdhIHRlcm1fbWFwIC0+IHRlcm0gLT4gJ2Eg
bGlzdAp2YWwgdW5pZnkgICAgICAgIDogJ2EgdGVybV9tYXAgLT4gdGVybSAt
PiAnYSBsaXN0CnZhbCBzaXplICAgICAgICAgOiAnYSB0ZXJtX21hcCAtPiBp
bnQKdmFsIGZyb21fbWFwbGV0cyA6ICh0ZXJtLCAnYSkgbWFwbGV0IGxpc3Qg
LT4gJ2EgdGVybV9tYXAKdmFsIHRvX2xpc3QgICAgICA6ICdhIHRlcm1fbWFw
IC0+ICdhIGxpc3QKdmFsIHBwX3Rlcm1fbWFwICA6ICdhIHBwIC0+ICdhIHRl
cm1fbWFwIHBwCgplbmQKKCojbGluZSAwLjAgImZvbC9UZXJtTmV0MS5zbWwi
KikKKCogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqKQooKiBNQVRD
SElORyBBTkQgVU5JRklDQVRJT04gRk9SIFNFVFMgT0YgVEVSTVMgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICopCigqIENyZWF0ZWQgYnkgSm9l
IEh1cmQsIFNlcHRlbWJlciAyMDAxICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKikKKCogPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PSAqKQoKKCoKYXBwIGxvYWQgWyJVc2VmdWwiLCAiTW9zbWwiLCAiVGVy
bTEiXTsKKikKCigqCiopCnN0cnVjdHVyZSBUZXJtTmV0MSA6PiBUZXJtTmV0
MSA9CnN0cnVjdAoKb3BlbiBVc2VmdWwgVGVybTE7CgppbmZpeHIgfC0+IDo6
PiBvbzsKCnZhbCBmbGF0dGVuID0gTGlzdC5jb25jYXQ7CgooKiAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigqIEhlbHBlciBmdW5jdGlvbnMu
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKikKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSAqKQoKbG9jYWwKICBmdW4gZmlmb19vcmRlciAobSwgXykgKG4sIF8pID0g
bSA8PSBuOwppbgogIGZ1biByZXN0b3JlX2ZpZm9fb3JkZXIgbCA9IG1hcCBz
bmQgKHNvcnQgZmlmb19vcmRlciBsKTsKZW5kOwoKZnVuIHBhcnRpdGlvbl9m
aW5kIGYgbCA9CiAgbGV0CiAgICBmdW4gcGYgXyBbXSA9IChOT05FLCBsKQog
ICAgICB8IHBmIGRlYWx0ICh4IDo6IHhzKSA9CiAgICAgIGlmIGYgeCB0aGVu
IChTT01FIHgsIExpc3QucmV2QXBwZW5kIChkZWFsdCwgeHMpKSBlbHNlIHBm
ICh4IDo6IGRlYWx0KSB4cwogIGluCiAgICBwZiBbXSBsCiAgZW5kOwoKKCog
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQooKiBUZXJtIGRpc2Ny
aW1pbmF0aW9uIHRyZWVzIGFyZSBvcHRpbWl6ZWQgZm9yIG1hdGNoIHF1ZXJp
ZXMuICAgICAgICAgICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0gKikKCmRhdGF0eXBlIHBhdHRlcm4gPSBWQVIgfCBGTiBvZiBz
dHJpbmcgKiBpbnQ7Cgp0eXBlICdhIG1hcCA9IChwYXR0ZXJuLCAnYSkgdHJl
ZTsKCmRhdGF0eXBlICdhIHRlcm1fbWFwID0gTUFQIG9mIGludCAqIChpbnQg
KiAnYSkgbWFwIGxpc3Q7Cgp2YWwgZW1wdHkgPSBNQVAgKDAsIFtdKTsKCmZ1
biBzaXplIChNQVAgKGksIF8pKSA9IGk7CgpmdW4gdG9fbGlzdCAoTUFQIChf
LCBuKSkgPQogIHJlc3RvcmVfZmlmb19vcmRlciAoZmxhdHRlbiAobWFwICh0
cmVlX2ZvbGRyIChLIGZsYXR0ZW4pIHdyYXApIG4pKTsKCmZ1biBwcF90ZXJt
X21hcCBwcF9hID0gcHBfbWFwIHRvX2xpc3QgKHBwX2xpc3QgcHBfYSk7Cgps
b2NhbAogIGZ1biBmaW5kX3BhdCB4IChCUkFOQ0ggKHAsIF8pKSA9IHAgPSB4
CiAgICB8IGZpbmRfcGF0IF8gKExFQUYgXykgPSByYWlzZSBCVUcgImZpbmRf
cGF0IiAibWlzcGxhY2VkIExFQUYiOwoKICBmdW4gYWRkIGEgW10gbCA9IExF
QUYgYSA6OiBsCiAgICB8IGFkZCBhICh0bSA6OiByZXN0KSBsID0KICAgIGxl
dAogICAgICB2YWwgKHBhdCwgcmVzdCkgPQogICAgICAgIGNhc2UgdG0gb2Yg
VmFyIF8gPT4gKFZBUiwgcmVzdCkKICAgICAgICB8IEZuIChmLCBhcmdzKSA9
PiAoRk4gKGYsIGxlbmd0aCBhcmdzKSwgYXJncyBAIHJlc3QpCiAgICAgIHZh
bCAodGhpcywgb3RoZXJzKSA9IHBhcnRpdGlvbl9maW5kIChmaW5kX3BhdCBw
YXQpIGwKICAgICAgdmFsIG5leHQgPQogICAgICAgIGNhc2UgdGhpcyBvZiBO
T05FID0+IFtdCiAgICAgICAgfCBTT01FIChCUkFOQ0ggKF8sIGwpKSA9PiBs
CiAgICAgICAgfCBTT01FIChMRUFGIF8pID0+IHJhaXNlIEJVRyAiYWRkIiAi
bWlzcGxhY2VkIExFQUYiCiAgICBpbgogICAgICBCUkFOQ0ggKHBhdCwgYWRk
IGEgcmVzdCBuZXh0KSA6OiBvdGhlcnMKICAgIGVuZDsKaW4KICBmdW4gaW5z
ZXJ0ICh0bSB8LT4gYSkgKE1BUCAoaSwgbikpID0gTUFQIChpICsgMSwgYWRk
IChpLCBhKSBbdG1dIG4pCiAgaGFuZGxlIEVSUl9FWE4gXyA9PiByYWlzZSBC
VUcgImluc2VydCIgInNob3VsZCBuZXZlciBmYWlsIjsKZW5kOwoKZnVuIGZy
b21fbWFwbGV0cyBsID0gZm9sZGwgKHVuY3VycnkgaW5zZXJ0KSBlbXB0eSBs
OwoKbG9jYWwKICBmdW4gbWF0IFZBUiAoXyA6OiByZXN0KSA9IFNPTUUgcmVz
dAogICAgfCBtYXQgKEZOIChmLCBuKSkgKEZuIChnLCBhcmdzKSA6OiByZXN0
KSA9CiAgICBpZiBmID0gZyBhbmRhbHNvIG4gPSBsZW5ndGggYXJncyB0aGVu
IFNPTUUgKGFyZ3MgQCByZXN0KSBlbHNlIE5PTkUKICAgIHwgbWF0IChGTiBf
KSAoVmFyIF8gOjogXykgPSBOT05FCiAgICB8IG1hdCBfIFtdID0gcmFpc2Ug
QlVHICJtYXRjaCIgInJhbiBvdXQgb2Ygc3VidGVybXMiOwoKICBmdW4gZmlu
YWwgYSBbXSA9IFNPTUUgYQogICAgfCBmaW5hbCBfIChfIDo6IF8pID0gcmFp
c2UgQlVHICJtYXRjaCIgInRvbyBtYW55IHN1YnRlcm1zIjsKaW4KICBmdW4g
bWF0Y2ggKE1BUCAoXywgbikpIHRtID0KICAgIHJlc3RvcmVfZmlmb19vcmRl
ciAoZmxhdHRlbiAobWFwICh0cmVlX3BhcnRpYWxfZm9sZGwgbWF0IGZpbmFs
IFt0bV0pIG4pKQogIGhhbmRsZSBFUlJfRVhOIF8gPT4gcmFpc2UgQlVHICJt
YXRjaCIgInNob3VsZCBuZXZlciBmYWlsIjsKZW5kOwoKbG9jYWwKICBmdW4g
bW9yZSBWQVIgPSAwIHwgbW9yZSAoRk4gKGYsIG4pKSA9IG47CiAgZnVuIG1h
dCBwYXQgKDAsIFZhciBfIDo6IHJlc3QpID0gU09NRSAobW9yZSBwYXQsIHJl
c3QpCiAgICB8IG1hdCBWQVIgKDAsIEZuIF8gOjogXykgPSBOT05FCiAgICB8
IG1hdCAoRk4gKGYsIG4pKSAoMCwgRm4gKGcsIGFyZ3MpIDo6IHJlc3QpID0K
ICAgIGlmIGYgPSBnIGFuZGFsc28gbiA9IGxlbmd0aCBhcmdzIHRoZW4gU09N
RSAoMCwgYXJncyBAIHJlc3QpIGVsc2UgTk9ORQogICAgfCBtYXQgXyAoMCwg
W10pID0gcmFpc2UgQlVHICJtYXRjaGVkIiAicmFuIG91dCBvZiBzdWJ0ZXJt
cyIKICAgIHwgbWF0IHBhdCAobiwgcmVzdCkgPSBTT01FIChtb3JlIHBhdCAr
IG4gLSAxLCByZXN0KTsKCiAgZnVuIGZpbmFsIGEgKDAsIFtdKSA9IFNPTUUg
YQogICAgfCBmaW5hbCBfICgwLCBfIDo6IF8pID0gcmFpc2UgQlVHICJtYXRj
aGVkIiAidG9vIG1hbnkgc3VidGVybXMiCiAgICB8IGZpbmFsIF8gKG4sIF8p
ID0gcmFpc2UgQlVHICJtYXRjaGVkIiAic3RpbGwgc2tpcHBpbmciOwppbgog
IGZ1biBtYXRjaGVkIChNQVAgKF8sIG4pKSB0bSA9CiAgICByZXN0b3JlX2Zp
Zm9fb3JkZXIgKGZsYXR0ZW4gKG1hcCAodHJlZV9wYXJ0aWFsX2ZvbGRsIG1h
dCBmaW5hbCAoMCxbdG1dKSkgbikpCiAgaGFuZGxlIEVSUl9FWE4gXyA9PiBy
YWlzZSBCVUcgIm1hdGNoZWQiICJzaG91bGQgbmV2ZXIgZmFpbCI7CmVuZDsK
CmxvY2FsCiAgZnVuIG1vcmUgVkFSID0gMCB8IG1vcmUgKEZOIChmLCBuKSkg
PSBuOwogIGZ1biBtYXQgcGF0ICgwLCBWYXIgXyA6OiByZXN0KSA9IFNPTUUg
KG1vcmUgcGF0LCByZXN0KQogICAgfCBtYXQgVkFSICgwLCBGbiBfIDo6IHJl
c3QpID0gU09NRSAoMCwgcmVzdCkKICAgIHwgbWF0IChGTiAoZiwgbikpICgw
LCBGbiAoZywgYXJncykgOjogcmVzdCkgPQogICAgaWYgZiA9IGcgYW5kYWxz
byBuID0gbGVuZ3RoIGFyZ3MgdGhlbiBTT01FICgwLCBhcmdzIEAgcmVzdCkg
ZWxzZSBOT05FCiAgICB8IG1hdCBfICgwLCBbXSkgPSByYWlzZSBCVUcgInVu
aWZ5IiAicmFuIG91dCBvZiBzdWJ0ZXJtcyIKICAgIHwgbWF0IHBhdCAobiwg
cmVzdCkgPSBTT01FIChtb3JlIHBhdCArIG4gLSAxLCByZXN0KTsKCiAgZnVu
IGZpbmFsIGEgKDAsIFtdKSA9IFNPTUUgYQogICAgfCBmaW5hbCBfICgwLCBf
IDo6IF8pID0gcmFpc2UgQlVHICJ1bmlmeSIgInRvbyBtYW55IHN1YnRlcm1z
IgogICAgfCBmaW5hbCBfIChuLCBfKSA9IHJhaXNlIEJVRyAidW5pZnkiICJz
dGlsbCBza2lwcGluZyI7CmluCiAgZnVuIHVuaWZ5IChNQVAgKF8sIG4pKSB0
bSA9CiAgICByZXN0b3JlX2ZpZm9fb3JkZXIgKGZsYXR0ZW4gKG1hcCAodHJl
ZV9wYXJ0aWFsX2ZvbGRsIG1hdCBmaW5hbCAoMCxbdG1dKSkgbikpCiAgaGFu
ZGxlIEVSUl9FWE4gXyA9PiByYWlzZSBCVUcgInVuaWZ5IiAic2hvdWxkIG5l
dmVyIGZhaWwiOwplbmQ7CgooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tICopCigqIFdlIGNhbiBvdmVybGF5IHRoZSBhYm92ZSB0eXBlIHdpdGgg
YSBzaW1wbGUgbGlzdCB0eXBlLiAgICAgICAgICAgICAgICAgICAgKikKKCog
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQooKgp0eXBlICdhIHNp
bXBsZSA9IGludCAqIGludCAqIHRlcm0gbGlzdCAqICdhIGxpc3Q7Cgp0eXBl
ICdhIHRlcm1fbWFwID0gKCdhIHNpbXBsZSwgJ2EgdGVybV9tYXApIHN1bTsK
CmZ1biBjaGVjayAoMCwgXywgdCwgYSkgPQogIElOUiAoZnJvbV9tYXBsZXRz
IChmb2xkbCAoZm4gKHgsIHhzKSA9PiBvcHwtPiB4IDo6IHhzKSBbXSAoemlw
IHQgYSkpKQogIHwgY2hlY2sgcCA9IElOTCBwOwoKdmFsIGVtcHR5IDogJ2Eg
dGVybV9tYXAgPSBJTlIgZW1wdHk7CgpmdW4gbmV3IG4gPSBjaGVjayAobiwg
MCwgW10sIFtdKTsKCnZhbCBpbnNlcnQgPSBmbiBtID0+CiAgKGZuIElOTCAo
biwgcywgdHMsIHhzKSA9PgogICAgICAoY2FzZSBtIG9mIHQgfC0+IHggPT4g
Y2hlY2sgKG4gLSAxLCBzICsgMSwgdCA6OiB0cywgeCA6OiB4cykpCiAgICB8
IElOUiBkID0+IElOUiAoaW5zZXJ0IG0gZCkpOwoKdmFsIG1hdGNoID0gZm4g
SU5MIChfLCBfLCBfLCB4cykgPT4gSyAocmV2IHhzKSB8IElOUiBkID0+IG1h
dGNoIGQ7Cgp2YWwgbWF0Y2hlZCA9IGZuIElOTCAoXywgXywgXywgeHMpID0+
IEsgKHJldiB4cykgfCBJTlIgZCA9PiBtYXRjaGVkIGQ7Cgp2YWwgdW5pZnkg
PSBmbiBJTkwgKF8sIF8sIF8sIHhzKSA9PiBLIChyZXYgeHMpIHwgSU5SIGQg
PT4gdW5pZnkgZDsKCnZhbCBzaXplID0gZm4gSU5MIChfLCBzLCBfLCBfKSA9
PiBzIHwgSU5SIGQgPT4gc2l6ZSBkOwoKdmFsIGZyb21fbWFwbGV0cyA9IElO
UiBvIGZyb21fbWFwbGV0czsKCnZhbCB0b19saXN0ID0gZm4gSU5MIChfLCBf
LCBfLCB4cykgPT4gcmV2IHhzIHwgSU5SIGQgPT4gdG9fbGlzdCBkOwoKdmFs
IHBwX3Rlcm1fbWFwID0KICBmbiBwcF9hID0+IGZuIHBwID0+CiAgKGZuIElO
TCAoXywgXywgXywgeHMpID0+IHBwX2xpc3QgcHBfYSBwcCB4cyB8IElOUiBk
ID0+IHBwX3Rlcm1fbWFwIHBwX2EgcHAgZCk7CiopCgplbmQKKCojbGluZSAw
LjAgImZvbC9MaXRlcmFsTmV0MS5zaWciKikKKCogPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PSAqKQooKiBNQVRDSElORyBBTkQgVU5JRklDQVRJT04g
Rk9SIFNFVFMgT0YgTElURVJBTFMgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICopCigqIENyZWF0ZWQgYnkgSm9lIEh1cmQsIEp1bmUgMjAwMiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKikKKCog
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqKQoKc2lnbmF0dXJlIExp
dGVyYWxOZXQxID0Kc2lnCgp0eXBlICdhIHBwICAgICAgICAgICA9ICdhIFVz
ZWZ1bC5wcAp0eXBlIGZvcm11bGEgICAgICAgICA9IFRlcm0xLmZvcm11bGEK
dHlwZSAoJ2EsICdiKSBtYXBsZXQgPSAoJ2EsICdiKSBUZXJtMS5tYXBsZXQK
CnR5cGUgJ2EgbGl0ZXJhbF9tYXAKCnZhbCBlbXB0eSAgICAgICAgICA6ICdh
IGxpdGVyYWxfbWFwCnZhbCBpbnNlcnQgICAgICAgICA6IChmb3JtdWxhLCAn
YSkgbWFwbGV0IC0+ICdhIGxpdGVyYWxfbWFwIC0+ICdhIGxpdGVyYWxfbWFw
CnZhbCBtYXRjaCAgICAgICAgICA6ICdhIGxpdGVyYWxfbWFwIC0+IGZvcm11
bGEgLT4gJ2EgbGlzdAp2YWwgbWF0Y2hlZCAgICAgICAgOiAnYSBsaXRlcmFs
X21hcCAtPiBmb3JtdWxhIC0+ICdhIGxpc3QKdmFsIHVuaWZ5ICAgICAgICAg
IDogJ2EgbGl0ZXJhbF9tYXAgLT4gZm9ybXVsYSAtPiAnYSBsaXN0CnZhbCBz
aXplICAgICAgICAgICA6ICdhIGxpdGVyYWxfbWFwIC0+IGludAp2YWwgc2l6
ZV9wcm9maWxlICAgOiAnYSBsaXRlcmFsX21hcCAtPiB7dCA6IGludCwgZiA6
IGludCwgcCA6IGludCwgbiA6IGludH0KdmFsIGZyb21fbWFwbGV0cyAgIDog
KGZvcm11bGEsICdhKSBtYXBsZXQgbGlzdCAtPiAnYSBsaXRlcmFsX21hcAp2
YWwgdG9fbGlzdCAgICAgICAgOiAnYSBsaXRlcmFsX21hcCAtPiAnYSBsaXN0
CnZhbCBwcF9saXRlcmFsX21hcCA6ICdhIHBwIC0+ICdhIGxpdGVyYWxfbWFw
IHBwCgplbmQKKCojbGluZSAwLjAgImZvbC9MaXRlcmFsTmV0MS5zbWwiKikK
KCogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqKQooKiBNQVRDSElO
RyBBTkQgVU5JRklDQVRJT04gRk9SIFNFVFMgT0YgTElURVJBTFMgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICopCigqIENyZWF0ZWQgYnkgSm9lIEh1
cmQsIEp1bmUgMjAwMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKikKKCogPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PSAqKQoKKCoKYXBwIGxvYWQgWyJVc2VmdWwiLCAiTW9zbWwiLCAiVGVybTEi
XTsKKikKCigqCiopCnN0cnVjdHVyZSBMaXRlcmFsTmV0MSA6PiBMaXRlcmFs
TmV0MSA9CnN0cnVjdAoKb3BlbiBVc2VmdWwgVGVybTE7CgppbmZpeHIgfC0+
IDo6PiBvbzsKCnN0cnVjdHVyZSBUID0gVGVybU5ldDE7CgooKiAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigqIExpdGVyYWwgbmV0cy4gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKikKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSAqKQoKdHlwZSAnYSBsaXRlcmFsX21hcCA9CiAgKCdhIFQudGVybV9tYXAg
KiAnYSBULnRlcm1fbWFwKSAqICgoaW50ICogJ2EgbGlzdCkgKiAoaW50ICog
J2EgbGlzdCkpOwoKdmFsIGVtcHR5ID0gKChULmVtcHR5LCBULmVtcHR5KSwg
KCgwLCBbXSksICgwLCBbXSkpKTsKCmZ1biBpbnNlcnQgKEF0b20gYSB8LT4g
YikgKChwLCBuKSwgdGYpICAgICAgID0gKChULmluc2VydCAoYSB8LT4gYikg
cCwgbiksIHRmKQogIHwgaW5zZXJ0IChOb3QgKEF0b20gYSkgfC0+IGIpICgo
cCwgbiksIHRmKSA9ICgocCwgVC5pbnNlcnQgKGEgfC0+IGIpIG4pLCB0ZikK
ICB8IGluc2VydCAoVHJ1ZSB8LT4gYikgKHBuLCAoKG4sIGwpLCBmKSkgICAg
PSAocG4sICgobiArIDEsIGIgOjogbCksIGYpKQogIHwgaW5zZXJ0IChGYWxz
ZSB8LT4gYikgKHBuLCAodCwgKG4sIGwpKSkgICA9IChwbiwgKHQsIChuICsg
MSwgYiA6OiBsKSkpCiAgfCBpbnNlcnQgKGYgfC0+IF8pIF8gPSByYWlzZSBC
VUcgImluc2VydCIgKCJub3QgYSBsaXQ6ICJeZm9ybXVsYV90b19zdHJpbmcg
Zik7CgpmdW4gZnJvbV9tYXBsZXRzIGwgPSBmb2xkbCAodW5jdXJyeSBpbnNl
cnQpIGVtcHR5IGw7CgpmdW4gdG9fbGlzdCAoKHBvcywgbmVnKSwgKChfLCB0
KSwgKF8sIGYpKSkgPQogIHJldiB0IEAgcmV2IGYgQCBULnRvX2xpc3QgcG9z
IEAgVC50b19saXN0IG5lZzsKCmZ1biBwcF9saXRlcmFsX21hcCBwcF9hID0g
cHBfbWFwIHRvX2xpc3QgKHBwX2xpc3QgcHBfYSk7Cgpsb2NhbAogIGZ1biBw
b3MgICAgICgocG9zLCBfICApLCBfICAgICAgICAgICAgICAgKSA9IFQuc2l6
ZSBwb3M7CiAgZnVuIG5lZyAgICAgKChfLCAgIG5lZyksIF8gICAgICAgICAg
ICAgICApID0gVC5zaXplIG5lZzsKICBmdW4gdHJ1dGggICAoXywgICAgICAg
ICAgKChuLCBfKSwgXyAgICAgKSkgPSBuOwogIGZ1biBmYWxzaXR5IChfLCAg
ICAgICAgICAoXywgICAgICAobiwgXykpKSA9IG47CmluCiAgZnVuIHNpemUg
bCAgICAgICAgID0gdHJ1dGggbCArIGZhbHNpdHkgbCArIHBvcyBsICsgbmVn
IGw7CiAgZnVuIHNpemVfcHJvZmlsZSBsID0ge3QgPSB0cnV0aCBsLCBmID0g
ZmFsc2l0eSBsLCBwID0gcG9zIGwsIG4gPSBuZWcgbH07CmVuZDsKCmZ1biBt
YXRjaCAoKHBvcywgXyksIF8pIChBdG9tIGEpID0gVC5tYXRjaCBwb3MgYQog
IHwgbWF0Y2ggKChfLCBuZWcpLCBfKSAoTm90IChBdG9tIGEpKSA9IFQubWF0
Y2ggbmVnIGEKICB8IG1hdGNoIChfLCAoKF8sIHQpLCBfKSkgVHJ1ZSA9IHJl
diB0CiAgfCBtYXRjaCAoXywgKF8sIChfLCBmKSkpIEZhbHNlID0gcmV2IGYK
ICB8IG1hdGNoIF8gXyA9IHJhaXNlIEJVRyAibWF0Y2giICJub3QgYSBsaXRl
cmFsIjsKCmZ1biBtYXRjaGVkICgocG9zLCBfKSwgXykgKEF0b20gYSkgPSBU
Lm1hdGNoZWQgcG9zIGEKICB8IG1hdGNoZWQgKChfLCBuZWcpLCBfKSAoTm90
IChBdG9tIGEpKSA9IFQubWF0Y2hlZCBuZWcgYQogIHwgbWF0Y2hlZCAoXywg
KChfLCB0KSwgXykpIFRydWUgPSByZXYgdAogIHwgbWF0Y2hlZCAoXywgKF8s
IChfLCBmKSkpIEZhbHNlID0gcmV2IGYKICB8IG1hdGNoZWQgXyBfID0gcmFp
c2UgQlVHICJtYXRjaGVkIiAibm90IGEgbGl0ZXJhbCI7CgpmdW4gdW5pZnkg
KChwb3MsIF8pLCBfKSAoQXRvbSBhKSA9IFQudW5pZnkgcG9zIGEKICB8IHVu
aWZ5ICgoXywgbmVnKSwgXykgKE5vdCAoQXRvbSBhKSkgPSBULnVuaWZ5IG5l
ZyBhCiAgfCB1bmlmeSAoXywgKChfLCB0KSwgXykpIFRydWUgPSByZXYgdAog
IHwgdW5pZnkgKF8sIChfLCAoXywgZikpKSBGYWxzZSA9IHJldiBmCiAgfCB1
bmlmeSBfIF8gPSByYWlzZSBCVUcgInVuaWZ5IiAibm90IGEgbGl0ZXJhbCI7
CgplbmQKKCojbGluZSAwLjAgImZvbC9TdWJzdW1lMS5zaWciKikKKCogPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PSAqKQooKiBBIFRZUEUgRk9SIFNV
QlNVTVBUSU9OIENIRUNLSU5HICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICopCigqIENyZWF0ZWQgYnkgSm9lIEh1cmQsIEFw
cmlsIDIwMDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKikKKCogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqKQoK
c2lnbmF0dXJlIFN1YnN1bWUxID0Kc2lnCgp0eXBlICdhIHBwICAgICAgICAg
ICA9ICdhIFVzZWZ1bC5wcAp0eXBlICgnYSwgJ2IpIG1hcGxldCA9ICgnYSwg
J2IpIFVzZWZ1bC5tYXBsZXQKdHlwZSBmb3JtdWxhICAgICAgICAgPSBUZXJt
MS5mb3JtdWxhCnR5cGUgc3Vic3QgICAgICAgICAgID0gU3Vic3QxLnN1YnN0
Cgp0eXBlICdhIHN1YnN1bWUKCnZhbCBlbXB0eSAgICAgICAgICAgICA6ICdh
IHN1YnN1bWUKdmFsIGFkZCAgICAgICAgICAgICAgIDogKGZvcm11bGEgbGlz
dCwgJ2EpIG1hcGxldCAtPiAnYSBzdWJzdW1lIC0+ICdhIHN1YnN1bWUKdmFs
IHN1YnN1bWVkICAgICAgICAgIDogJ2Egc3Vic3VtZSAtPiBmb3JtdWxhIGxp
c3QgLT4gKHN1YnN0ICogJ2EpIGxpc3QKdmFsIHN0cmljdGx5X3N1YnN1bWVk
IDogJ2Egc3Vic3VtZSAtPiBmb3JtdWxhIGxpc3QgLT4gKHN1YnN0ICogJ2Ep
IGxpc3QKdmFsIGluZm8gICAgICAgICAgICAgIDogJ2Egc3Vic3VtZSAtPiBz
dHJpbmcKdmFsIHBwX3N1YnN1bSAgICAgICAgIDogJ2Egc3Vic3VtZSBwcAoK
ZW5kCigqI2xpbmUgMC4wICJmb2wvU3Vic3VtZTEuc21sIiopCigqID09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0gKikKKCogQSBUWVBFIEZPUiBTVUJT
VU1QVElPTiBDSEVDS0lORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAqKQooKiBDcmVhdGVkIGJ5IEpvZSBIdXJkLCBBcHJp
bCAyMDAyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICopCigqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKikKCigq
CmFwcCBsb2FkIFsiVGhtMSIsICJNYXRjaDEiXTsKKikKCigqCiopCnN0cnVj
dHVyZSBTdWJzdW1lMSA6PiBTdWJzdW1lMSA9CnN0cnVjdAoKaW5maXggfC0+
IDo6PjsKCm9wZW4gVXNlZnVsIFRlcm0xIE1hdGNoMTsKCnN0cnVjdHVyZSBO
ID0gTGl0ZXJhbE5ldDE7Cgp2YWwgb2ZpbHRlciAgICAgICA9IE9wdGlvbi5m
aWx0ZXI7CnR5cGUgc3Vic3QgICAgICAgID0gU3Vic3QxLnN1YnN0Owp2YWwg
fDw+fCAgICAgICAgICA9IFN1YnN0MS58PD58Owp2YWwgb3AgOjo+ICAgICAg
ICA9IFN1YnN0MS46Oj47CnZhbCB0ZXJtX3N1YnN0ICAgID0gU3Vic3QxLnRl
cm1fc3Vic3Q7CnZhbCBmb3JtdWxhX3N1YnN0ID0gU3Vic3QxLmZvcm11bGFf
c3Vic3Q7CgooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigq
IENoYXR0aW5nLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKikKKCogLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoKdmFsICgpID0gdHJhY2VzIDo9IHtt
b2R1bGUgPSAiU3Vic3VtZTEiLCBhbGlnbm1lbnQgPSBLIDF9IDo6ICF0cmFj
ZXM7CgpmdW4gY2hhdCBsIG0gPSB0cmFjZSB7bW9kdWxlID0gIlN1YnN1bWUx
IiwgbWVzc2FnZSA9IG0sIGxldmVsID0gbH07CgooKiAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tICopCigqIEhlbHBlciBmdW5jdGlvbnMuICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKikKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoK
dmFsIGZyb3plbl9wcmVmaXggPSAiRlJPWkVOX18iOwoKZnVuIG1rX2Zyb3pl
biB2ID0gRm4gKGZyb3plbl9wcmVmaXggXiB2LCBbXSk7Cgpsb2NhbAogIHZh
bCBjaGsgPSBTdHJpbmcuaXNQcmVmaXggZnJvemVuX3ByZWZpeDsKICB2YWwg
ZGVzdCA9CiAgICBsZXQgdmFsIGwgPSBzaXplIGZyb3plbl9wcmVmaXggaW4g
Zm4gcyA9PiBTdHJpbmcuZXh0cmFjdCAocywgbCwgTk9ORSkgZW5kOwppbgog
IGZ1biBkZXN0X2Zyb3plbiAoRm4gKHMsIFtdKSkgPQogICAgKGFzc2VydCAo
Y2hrIHMpIChFUlIgImRlc3RfZnJvemVuIiAibm90IGEgZnJvemVuIHZhciIp
OyBkZXN0IHMpCiAgICB8IGRlc3RfZnJvemVuIF8gPSByYWlzZSBFUlIgImRl
c3RfZnJvemVuIiAiYmFkIHN0cnVjdHVyZSI7CmVuZDsKCnZhbCBpc19mcm96
ZW4gPSBjYW4gZGVzdF9mcm96ZW47CgpmdW4gZnJlZXplX3ZhcnMgZm1zID0K
ICBsZXQKICAgIHZhbCB2YXJzID0gRlYgKGxpc3RfbWtfZGlzaiBmbXMpCiAg
ICB2YWwgc3ViID0gZm9sZGwgKGZuICh2LCBzKSA9PiAodiB8LT4gbWtfZnJv
emVuIHYpIDo6PiBzKSB8PD58IHZhcnMKICBpbgogICAgbWFwIChmb3JtdWxh
X3N1YnN0IHN1YikgZm1zCiAgZW5kOwoKbG9jYWwKICBmdW4gZiAodiB8LT4g
YSkgPSAodiB8LT4gKGlmIGlzX2Zyb3plbiBhIHRoZW4gVmFyIChkZXN0X2Zy
b3plbiBhKSBlbHNlIGEpKTsKaW4KICB2YWwgZGVmcm9zdF92YXJzID0gU3Vi
c3QxLmZyb21fbWFwbGV0cyBvIG1hcCBmIG8gU3Vic3QxLnRvX21hcGxldHM7
CmVuZDsKCnZhbCBsaXRfc2l6ZSA9IGZvcm11bGFfc2l6ZSBvIGxpdGVyYWxf
YXRvbTsKCnZhbCBzb3J0X2xpdGVyYWxzX2J5X3NpemUgPQogIG1hcCBzbmQg
byBzb3J0IChmbiAobSwgXykgPT4gZm4gKG4sIF8pID0+IG0gPD0gbikgbwog
IG1hcCAoZm4gbGl0ID0+IChsaXRfc2l6ZSBsaXQsIGxpdCkpOwoKKCogLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQooKiBUaGUgY29yZSBlbmdp
bmUgZm9yIHN1YnN1bXB0aW9uIGNoZWNraW5nLiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0gKikKCnR5cGUgJ2Egc2luZm8gPSB7c3ViIDogc3Vic3QsIGhkIDog
Zm9ybXVsYSwgdGwgOiBmb3JtdWxhIGxpc3QsIGZpbiA6ICdhfTsKCnR5cGUg
J2Egc3VicyA9ICdhIHNpbmZvIE4ubGl0ZXJhbF9tYXA7CgpmdW4gYWRkX2xp
dHMgKGkgYXMge2hkLCAuLi59KSAobmV0IDogJ2Egc3VicykgPSBOLmluc2Vy
dCAoaGQgfC0+IGkpIG5ldDsKCmxvY2FsCiAgZnVuIHN1YnN1bSBzdHJpY3Qg
bGl0cyA9CiAgICBsZXQKICAgICAgdmFsIGFjY2VwdCA9CiAgICAgICAgKGlm
IHN0cmljdCB0aGVuIG9maWx0ZXIgKG5vbiBTdWJzdDEuaXNfcmVuYW1pbmcp
IGVsc2UgU09NRSkgbwogICAgICAgIGRlZnJvc3RfdmFycwogICAgICB2YWwg
aW1wb3NzaWJsZSA9CiAgICAgICAgbGV0IHZhbCBsaXRfbmV0ID0gTi5mcm9t
X21hcGxldHMgKG1hcCAoZm4gbCA9PiAobCB8LT4gKCkpKSBsaXRzKQogICAg
ICAgIGluIExpc3QuZXhpc3RzIChudWxsIG8gTi5tYXRjaGVkIGxpdF9uZXQp
CiAgICAgICAgZW5kCiAgICAgIGZ1biBleHRlbmQgc3ViIGxpdHMgZmluIG5l
dCA9CiAgICAgICAgaWYgaW1wb3NzaWJsZSBsaXRzIHRoZW4gbmV0CiAgICAg
ICAgZWxzZQogICAgICAgICAgY2FzZSBzb3J0X2xpdGVyYWxzX2J5X3NpemUg
bGl0cyBvZiBbXSA9PiByYWlzZSBCVUcgImV4dGVuZCIgIm51bGwiCiAgICAg
ICAgICB8IGhkIDo6IHRsID0+IGFkZF9saXRzIHtzdWIgPSBzdWIsIGhkID0g
aGQsIHRsID0gdGwsIGZpbiA9IGZpbn0gbmV0CiAgICAgIGZ1biBleGFtaW5l
IGxpdCAoe3N1YiwgaGQsIHRsLCBmaW59LCBzIGFzIChuZXQsIHJlcykpID0K
ICAgICAgICBjYXNlIHRvdGFsIChtYXRjaGxfbGl0ZXJhbHMgc3ViKSBbKGhk
LCBsaXQpXSBvZiBOT05FID0+IHMKICAgICAgICB8IFNPTUUgc3ViID0+CiAg
ICAgICAgICBpZiBudWxsIHRsIHRoZW4KICAgICAgICAgICAgY2FzZSBhY2Nl
cHQgc3ViIG9mIFNPTUUgc3ViID0+IChuZXQsIChzdWIsIGZpbikgOjogcmVz
KSB8IE5PTkUgPT4gcwogICAgICAgICAgZWxzZSAoZXh0ZW5kIHN1YiAobWFw
IChmb3JtdWxhX3N1YnN0IHN1YikgdGwpIGZpbiBuZXQsIHJlcykKICAgICAg
ZnVuIG5hcnJvdzEgbmV0IChsaXQsIHMpID0gZm9sZGwgKGV4YW1pbmUgbGl0
KSBzIChOLm1hdGNoIG5ldCBsaXQpCiAgICAgIGZ1biBuYXJyb3cgKG5ldCwg
cmVzKSA9CiAgICAgICAgaWYgTi5zaXplIG5ldCA9IDAgdGhlbiByZXMKICAg
ICAgICBlbHNlIG5hcnJvdyAoZm9sZGwgKG5hcnJvdzEgbmV0KSAoTi5lbXB0
eSwgcmVzKSBsaXRzKQogICAgaW4KICAgICAgbmFycm93CiAgICBlbmQ7Cmlu
CiAgZnVuIHN1YnN1bWVzIHN0cmljdCBuZXQgbGl0cyA9CiAgICBzdWJzdW0g
c3RyaWN0IChmcmVlemVfdmFycyBsaXRzKSAobmV0LCBbXSkKICAgIGhhbmRs
ZSBFUlJfRVhOIF8gPT4gcmFpc2UgQlVHICJzdWJzdW1lcyIgInNob3VsZG4n
dCBmYWlsIjsKZW5kOwoKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSAqKQooKiBUaGUgdXNlciBpbnRlcmZhY2UuICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigqIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKCnR5cGUgJ2Egc3Vic3Vt
ZSA9ICgnYSwgJ2Egc3Vicykgc3VtOwoKdmFsIGVtcHR5IDogJ2Egc3Vic3Vt
ZSA9IElOUiBOLmVtcHR5OwoKZnVuIGFkZCBfIChzIGFzIElOTCBfKSA9IHMK
ICB8IGFkZCAoZm1zIHwtPiBmaW4pIChJTlIgbmV0KSA9CiAgY2FzZSBzb3J0
X2xpdGVyYWxzX2J5X3NpemUgZm1zIG9mIFtdID0+IElOTCBmaW4KICB8IGgg
OjogdCA9PiBJTlIgKGFkZF9saXRzIHtzdWIgPSB8PD58LCBoZCA9IGgsIHRs
ID0gdCwgZmluID0gZmlufSBuZXQpOwoKZnVuIHN1YnN1bWVkIChJTkwgZmlu
KSBfID0gWyh8PD58LCBmaW4pXQogIHwgc3Vic3VtZWQgKElOUiBfKSBbXSA9
IFtdCiAgfCBzdWJzdW1lZCAoSU5SIG5ldCkgbGl0cyA9IHN1YnN1bWVzIGZh
bHNlIG5ldCBsaXRzOwoKZnVuIHN0cmljdGx5X3N1YnN1bWVkIF8gW10gPSBb
XQogIHwgc3RyaWN0bHlfc3Vic3VtZWQgKElOTCBmaW4pIF8gPSBbKHw8Pnws
IGZpbildCiAgfCBzdHJpY3RseV9zdWJzdW1lZCAoSU5SIG5ldCkgbGl0cyA9
IHN1YnN1bWVzIHRydWUgbmV0IGxpdHM7CgpmdW4gaW5mbyAoKElOTCBfKSA6
ICdhIHN1YnN1bWUpID0gIioiCiAgfCBpbmZvIChJTlIgbmV0KSA9IGludF90
b19zdHJpbmcgKE4uc2l6ZSBuZXQpOwoKdmFsIHBwX3N1YnN1bSA9IHBwX21h
cCBpbmZvIHBwX3N0cmluZzsKCigqIFF1aWNrIHRlc3RpbmcKcXVvdGF0aW9u
IDo9IHRydWU7Cmluc3RhbGxQUCBwcF9mb3JtdWxhOwppbnN0YWxsUFAgcHBf
dGVybTsKaW5zdGFsbFBQIHBwX3N1YnN0OwppbnN0YWxsUFAgcHBfdGhtOwpm
cmVlemVfdmFycyAobWFwIHBhcnNlIFtgeCArIHkgPD0gMGAsIGB4ID0gX194
KClgXSk7CnZhbCBzID0gYWRkX3N1YnN1bWVyIChBWElPTSAobWFwIHBhcnNl
IFtgcCh4LDMpYCwgYHAoMix5KWBdKSkgZW1wdHlfc3Vic3VtOwpzdWJzdW1l
ZCBzIChtYXAgcGFyc2UgW2BwKDIsMylgXSk7CiopCgplbmQKKCojbGluZSAw
LjAgImZvbC9UcHRwMS5zaWciKikKKCogPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PSAqKQooKiBJTlRFUkZBQ0UgVE8gVFBUUCBQUk9CTEVNIEZJTEVT
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICop
CigqIENyZWF0ZWQgYnkgSm9lIEh1cmQsIERlY2VtYmVyIDIwMDEgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKikKKCogPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PSAqKQoKc2lnbmF0dXJlIFRwdHAxID0K
c2lnCgp0eXBlIHRlcm0gICAgPSBUZXJtMS50ZXJtCnR5cGUgZm9ybXVsYSA9
IFRlcm0xLmZvcm11bGEKCigqIE1haW50YWluaW5nIGRpZmZlcmVudCByZWxh
dGlvbiBhbmQgZnVuY3Rpb24gbmFtZXMgaW4gVFBUUCBwcm9ibGVtcyAqKQp2
YWwgcmVuYW1pbmcgOiB7dHB0cCA6IHN0cmluZywgZm9sIDogc3RyaW5nLCBh
cml0eSA6IGludH0gbGlzdCByZWYKCigqIFBhcnNpbmc6IHBhc3MgaW4gYSBm
aWxlbmFtZSAqKQp2YWwgcGFyc2VfY25mIDogc3RyaW5nIC0+IGZvcm11bGEK
CmVuZAooKiNsaW5lIDAuMCAiZm9sL1RwdHAxLnNtbCIqKQooKiA9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09ICopCigqIElOVEVSRkFDRSBUTyBUUFRQ
IFBST0JMRU0gRklMRVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKikKKCogQ3JlYXRlZCBieSBKb2UgSHVyZCwgRGVjZW1i
ZXIgMjAwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAqKQooKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICopCgooKgph
cHAgbG9hZCBbIlN0cmVhbSIsICJVc2VmdWwiLCAiUGFyc2VyIiwgIlRlcm0x
Il07CiopCgooKgoqKQpzdHJ1Y3R1cmUgVHB0cDEgOj4gVHB0cDEgPQpzdHJ1
Y3QKCm9wZW4gUGFyc2VyIFVzZWZ1bCBUZXJtMTsKCmluZml4ciA5ID4+Kys7
CmluZml4ciA4ICsrOwppbmZpeHIgNyA+PjsKaW5maXhyIDYgfHw7CmluZml4
IHwtPjsKCnN0cnVjdHVyZSBTID0gU3RyZWFtOwoKKCogLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSAqKQooKiBBYmJyZXZpYXRpbmcgcmVsYXRpb24g
YW5kIGZ1bmN0aW9uIG5hbWVzIGluIFRQVFAgcHJvYmxlbXMuICAgICAgICAg
ICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikK
CnR5cGUgcmVuYW1lID0ge3RwdHAgOiBzdHJpbmcsIGZvbCA6IHN0cmluZywg
YXJpdHkgOiBpbnR9OwoKdmFsIHJlbmFtaW5nIDogcmVuYW1lIGxpc3QgcmVm
ID0gcmVmIFt7dHB0cCA9ICJlcXVhbCIsIGZvbCA9ICI9IiwgYXJpdHkgPSAy
fV07CgooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigqIFBh
cnNpbmc6IHBhc3MgaW4gYSBmaWxlbmFtZS4gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKikKKCogLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSAqKQoKdmFsIGNvbW1lbnQgPSBlcXVhbCAjIiUi
IG8gaGQgbyBleHBsb2RlOwoKdmFsIGlucHV0X2xpbmVzID0gUy5maWx0ZXIg
KG5vbiBjb21tZW50KSBvIFMuZnJvbV90ZXh0ZmlsZTsKCnZhbCBpbnB1dF9j
aGFycyA9IFMuZmxhdHRlbiBvIFMubWFwIChTLmZyb21fbGlzdCBvIGV4cGxv
ZGUpOwoKZGF0YXR5cGUgdG9rX3R5cGUgPSBMb3dlciB8IFVwcGVyIHwgU3lt
Ym9sIHwgUHVuY3Q7Cgp2YWwgbGV4ZXIgPQogIChtYW55IChzb21lIHNwYWNl
KSArKwogICAoKChzb21lIGxvd2VyIHx8IHNvbWUgZGlnaXQpICsrIG1hbnkg
KHNvbWUgYWxwaGFudW0pID4+CiAgICAgKGZuIChhLCBiKSA9PiAoTG93ZXIs
IGltcGxvZGUgKGEgOjogYikpKSkgfHwKICAgIChzb21lIHVwcGVyICsrIG1h
bnkgKHNvbWUgYWxwaGFudW0pID4+CiAgICAgKGZuIChhLCBiKSA9PiAoVXBw
ZXIsIGltcGxvZGUgKGEgOjogYikpKSkgfHwKICAgIChhdGxlYXN0b25lIChz
b21lIHN5bWJvbCkgPj4gKGZuIGwgPT4gKFN5bWJvbCwgaW1wbG9kZSBsKSkp
IHx8CiAgICAoc29tZSBwdW5jdCA+PiAoZm4gYyA9PiAoUHVuY3QsIHN0ciBj
KSkpKSkgPj4gc25kOwoKdmFsIGxleCA9IG1hbnkgbGV4ZXIgKysgKG1hbnkg
KHNvbWUgc3BhY2UpICsrIGZpbmlzaGVkKSA+PiBmc3Q7Cgp2YWwgaW5wdXRf
dG9rcyA9IFMuZnJvbV9saXN0IG8gZnN0IG8gbGV4OwoKZnVuIFZhcicgIlQi
ID0gVmFyICJUJyIKICB8IFZhcicgIkYiID0gVmFyICJGJyIKICB8IFZhcicg
diA9IFZhciAoaWYgIXZhcl9zdHJpbmcgdiB0aGVuIHYgZWxzZSAidl8iIF4g
dik7Cgpsb2NhbAogIGZ1biB2ZXJpZnkgKGYsIGEpID0KICAgIChpZiAhdmFy
X3N0cmluZyBmIHRoZW4gKGlmIG51bGwgYSB0aGVuICJjXyIgZWxzZSAiZl8i
KSBeIGYgZWxzZSBmLCBhKTsKICBmdW4gbWFwcGVkIChmLCBhKSAobSA6IHJl
bmFtZSBsaXN0KSA9CiAgICBsZXQgZnVuIGcge3RwdHAsIGFyaXR5LCAuLi59
ID0gdHB0cCA9IGYgYW5kYWxzbyBhcml0eSA9IGxlbmd0aCBhCiAgICBpbiBj
YXNlIExpc3QuZmluZCBnIG0gb2YgU09NRSB7Zm9sLCAuLi59ID0+IChmb2ws
IGEpIHwgTk9ORSA9PiB2ZXJpZnkgKGYsIGEpCiAgICBlbmQ7CmluCiAgZnVu
IEZuJyAgIEEgPSBGbiAgIChtYXBwZWQgQSAoIXJlbmFtaW5nKSk7CmVuZDsK
CmZ1biB0ZXJtX3BhcnNlciBpbnB1dCA9CiAgKChzb21lIChlcXVhbCBVcHBl
ciBvIGZzdCkgPj4gKFZhcicgbyBzbmQpKSB8fAogICAoKHNvbWUgKGVxdWFs
IExvd2VyIG8gZnN0KSA+PiBzbmQpICsrCiAgICAob3B0aW9uYWwKICAgICAo
ZXhhY3QgKFB1bmN0LCAiKCIpICsrIHRlcm1fcGFyc2VyICsrCiAgICAgIG1h
bnkgKChleGFjdCAoUHVuY3QsICIsIikgKysgdGVybV9wYXJzZXIpID4+IHNu
ZCkgKysKICAgICAgZXhhY3QgKFB1bmN0LCAiKSIpKSA+PgogICAgIChmbiBT
T01FIChfLCAodCwgKHRzLCBfKSkpID0+IHQgOjogdHMgfCBOT05FID0+IFtd
KSkgPj4KICAgIEZuJykpIGlucHV0OwoKdmFsIGxpdGVyYWxfcGFyc2VyID0K
ICAoKGV4YWN0IChTeW1ib2wsICIrKyIpID4+IEsgdHJ1ZSB8fCBleGFjdCAo
U3ltYm9sLCAiLS0iKSA+PiBLIGZhbHNlKSArKwogICB0ZXJtX3BhcnNlcikg
Pj4KICAoZm4gKHMsIHQpID0+IG1rX2xpdGVyYWwgKHMsIEF0b20gKGNhc2Ug
dCBvZiBWYXIgdiA9PiBGbiAodiwgW10pIHwgXyA9PiB0KSkpOwoKdmFsIGNs
YXVzZV9wYXJzZXIgPQogIChleGFjdCAoTG93ZXIsICJpbnB1dF9jbGF1c2Ui
KSArKyBleGFjdCAoUHVuY3QsICIoIikgKysgYW55ICsrCiAgIGV4YWN0IChQ
dW5jdCwgIiwiKSArKyBhbnkgKysgZXhhY3QgKFB1bmN0LCAiLCIpICsrIGV4
YWN0IChQdW5jdCwgIlsiKSArKwogICBsaXRlcmFsX3BhcnNlciArKyBtYW55
ICgoZXhhY3QgKFB1bmN0LCAiLCIpICsrIGxpdGVyYWxfcGFyc2VyKSA+PiBz
bmQpICsrCiAgIGV4YWN0IChQdW5jdCwgIl0iKSArKyBleGFjdCAoUHVuY3Qs
ICIpIikgKysgZXhhY3QgKFB1bmN0LCAiLiIpKSA+PgogIChmbiAoXywgKF8s
IChuYW1lLCAoXywgKHR5cCwgKF8sIChfLCAobCwgKGxzLCBfKSkpKSkpKSkp
ID0+CiAgIChzbmQgbmFtZSwgc25kIHR5cCwgbCA6OiBscykpOwoKdmFsIGNu
Zl9wYXJzZXIgPSBmc3QgbyAoKG1hbnkgY2xhdXNlX3BhcnNlciArKyBmaW5p
c2hlZCkgPj4gZnN0KTsKCmxvY2FsCiAgZnVuIGN5Y2xlIF8gXyAoW10sIF8p
ID0gcmFpc2UgQlVHICJjeWNsZSIgIiIKICAgIHwgY3ljbGUgZiB2IChoIDo6
IHQsIGF2b2lkKSA9CiAgICBsZXQgdmFsIGgnID0gZiBoIGF2b2lkIGluICho
JywgKHQgQCBbaF0sIGgnIDo6IGF2b2lkKSkgZW5kOwppbiAgICAKICBmdW4g
Z2VuZXJhbGl6ZV9jbGF1c2UgZm0gPQogICAgbGV0CiAgICAgIG9wZW4gU3Vi
c3QxCiAgICAgIHZhbCB2YXJzID0gRlYgZm0KICAgICAgdmFsIG52YXJzID0g
bGVuZ3RoIHZhcnMKICAgICAgdmFsIHZhcl9mbiA9IGlmIG52YXJzIDw9IDE1
IHRoZW4gdmFyaWFudCBlbHNlIHZhcmlhbnRfbnVtCiAgICAgIHZhbCBuZXdz
ID0KICAgICAgICBpZiBudmFycyA9IDYgdGhlbiBbIngiLCAieSIsICJ6Iiwg
IngnIiwgInknIiwgInonIl0KICAgICAgICBlbHNlIGZzdCAobWFwcyAoY3lj
bGUgdmFyX2ZuKSB2YXJzIChbIngiLCAieSIsICJ6IiwgInYiLCAidyJdLCBb
XSkpCiAgICAgIHZhbCBzdWIgPSBmcm9tX21hcGxldHMgKHppcHdpdGggKGZu
IHYgPT4gZm4geCA9PiB2IHwtPiBWYXIgeCkgdmFycyBuZXdzKQogICAgaW4K
ICAgICAgZ2VuZXJhbGl6ZSAoZm9ybXVsYV9zdWJzdCBzdWIgZm0pCiAgICBl
bmQ7CmVuZDsKCnZhbCBpbnB1dF9jbmYgPQogIChmbiAoYSwgYikgPT4gSW1w
IChhLCBJbXAgKGIsIEZhbHNlKSkpIG8KICBEZiAobGlzdF9ta19jb25qIG8g
bWFwIChnZW5lcmFsaXplX2NsYXVzZSBvIGxpc3RfbWtfZGlzaiBvICMzKSkg
bwogIExpc3QucGFydGl0aW9uIChub3QgbyBlcXVhbCAiY29uamVjdHVyZSIg
byAjMikgbyBjbmZfcGFyc2VyOwoKdmFsIHBhcnNlX2NuZiA9IGlucHV0X2Nu
ZiBvIGlucHV0X3Rva3MgbyBpbnB1dF9jaGFycyBvIGlucHV0X2xpbmVzOwoK
ZW5kCigqI2xpbmUgMC4wICJmb2wvVGhtMS5zaWciKikKKCogPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PSAqKQooKiBJTlRFUkZBQ0UgVE8gVEhFIExD
Ri1TVFlMRSBMT0dJQ0FMIEtFUk5FTCwgUExVUyBTT01FIERFUklWRUQgUlVM
RVMgICAgICAgICopCigqIENyZWF0ZWQgYnkgSm9lIEh1cmQsIFNlcHRlbWJl
ciAyMDAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KikKKCogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqKQoKc2lnbmF0
dXJlIFRobTEgPQpzaWcKCnR5cGUgJ2EgcHAgPSAnYSBVc2VmdWwucHAKCmlu
Y2x1ZGUgS2VybmVsMQoKKCogQW5ub3RhdGVkIHByaW1pdGl2ZSBpbmZlcmVu
Y2VzICopCmRhdGF0eXBlIGluZmVyZW5jZScgPQogIEF4aW9tJyAgICBvZiBm
b3JtdWxhIGxpc3QKfCBSZWZsJyAgICAgb2YgdGVybQp8IEFzc3VtZScgICBv
ZiBmb3JtdWxhCnwgSW5zdCcgICAgIG9mIHN1YnN0ICogdGhtCnwgRmFjdG9y
JyAgIG9mIHRobQp8IFJlc29sdmUnICBvZiBmb3JtdWxhICogdGhtICogdGht
CnwgRXF1YWxpdHknIG9mIGZvcm11bGEgKiBpbnQgbGlzdCAqIHRlcm0gKiBi
b29sICogdGhtCgp2YWwgcHJpbWl0aXZlX2luZmVyZW5jZSA6IGluZmVyZW5j
ZScgLT4gdGhtCgooKiBVc2VyLWZyaWVuZGx5IGRlc3RydWN0b3JzICopCnZh
bCBjbGF1c2UgICAgOiB0aG0gLT4gZm9ybXVsYSBsaXN0CnZhbCBpbmZlcmVu
Y2UgOiB0aG0gLT4gaW5mZXJlbmNlJwp2YWwgcHJvb2YgICAgIDogdGhtIC0+
ICh0aG0gKiBpbmZlcmVuY2UnKSBsaXN0CgooKiBQcmV0dHktcHJpbnRpbmcg
b2YgdGhlb3JlbXMgYW5kIGluZmVyZW5jZXMgKikKdmFsIHBwX3RobSAgICAg
ICAgICAgICAgIDogdGhtIHBwCnZhbCBwcF9pbmZlcmVuY2UgICAgICAgICA6
IGluZmVyZW5jZSBwcAp2YWwgcHBfaW5mZXJlbmNlJyAgICAgICAgOiBpbmZl
cmVuY2UnIHBwCnZhbCBwcF9wcm9vZiAgICAgICAgICAgICA6ICh0aG0gKiBp
bmZlcmVuY2UnKSBsaXN0IHBwCnZhbCB0aG1fdG9fc3RyaW5nJyAgICAgICA6
IGludCAtPiB0aG0gLT4gc3RyaW5nICAgICAgICAoKiBwdXJlbHkgZnVuY3Rp
b25hbCAqKQp2YWwgaW5mZXJlbmNlX3RvX3N0cmluZycgOiBpbnQgLT4gaW5m
ZXJlbmNlJyAtPiBzdHJpbmcKdmFsIHRobV90b19zdHJpbmcgICAgICAgIDog
dGhtIC0+IHN0cmluZyAgICAgICAgICAgICAgICgqIHVzaW5nICFMSU5FX0xF
TkdUSCAqKQp2YWwgaW5mZXJlbmNlX3RvX3N0cmluZyAgOiBpbmZlcmVuY2Un
IC0+IHN0cmluZwoKKCogQSB0b3RhbCBjb21wYXJpc29uIGZ1bmN0aW9uIGZv
ciB0aGVvcmVtcyAqKQp2YWwgdGhtX2NvbXBhcmUgOiB0aG0gKiB0aG0gLT4g
b3JkZXIKCigqIENvbnRyYWRpY3Rpb25zIGFuZCB1bml0IGNsYXVzZXMgKikK
dmFsIGlzX2NvbnRyYWRpY3Rpb24gOiB0aG0gLT4gYm9vbAp2YWwgZGVzdF91
bml0ICAgICAgICA6IHRobSAtPiBmb3JtdWxhCnZhbCBpc191bml0ICAgICAg
ICAgIDogdGhtIC0+IGJvb2wKCigqIERlcml2ZWQgcnVsZXMgYW5kIHRoZW9y
ZW1zICopCnZhbCBDT05UUiAgICAgICAgICA6IGZvcm11bGEgLT4gdGhtIC0+
IHRobQp2YWwgV0VBS0VOICAgICAgICAgOiBmb3JtdWxhIGxpc3QgLT4gdGht
IC0+IHRobQp2YWwgRlJFU0hfVkFSUyAgICAgOiB0aG0gLT4gdGhtCnZhbCBG
UkVTSF9WQVJTTCAgICA6IHRobSBsaXN0IC0+IHRobSBsaXN0CnZhbCBVTklU
X1NRVUFTSCAgICA6IHRobSAtPiB0aG0KdmFsIFJFRkxFWElWSVRZICAgIDog
dGhtCnZhbCBTWU1NRVRSWSAgICAgICA6IHRobQp2YWwgVFJBTlNJVElWSVRZ
ICAgOiB0aG0KdmFsIEZVTl9DT05HUlVFTkNFIDogc3RyaW5nICogaW50IC0+
IHRobQp2YWwgUkVMX0NPTkdSVUVOQ0UgOiBzdHJpbmcgKiBpbnQgLT4gdGht
CgplbmQKKCojbGluZSAwLjAgImZvbC9UaG0xLnNtbCIqKQooKiA9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09ICopCigqIElOVEVSRkFDRSBUTyBUSEUg
TENGLVNUWUxFIExPR0lDQUwgS0VSTkVMLCBQTFVTIFNPTUUgREVSSVZFRCBS
VUxFUyAgICAgICAgKikKKCogQ3JlYXRlZCBieSBKb2UgSHVyZCwgU2VwdGVt
YmVyIDIwMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAqKQooKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICopCgooKgph
cHAgbG9hZCBbIlVzZWZ1bCIsICJUZXJtMSIsICJLZXJuZWwxIiwgIk1hdGNo
MSJdOwoqKQoKKCoKKikKc3RydWN0dXJlIFRobTEgOj4gVGhtMSA9CnN0cnVj
dAoKb3BlbiBVc2VmdWwgVGVybTEgS2VybmVsMSBNYXRjaDE7CgppbmZpeHIg
fC0+IDo6PiBvbyAjIzsKCnR5cGUgc3Vic3QgICAgICAgID0gU3Vic3QxLnN1
YnN0Owp2YWwgfDw+fCAgICAgICAgICA9IFN1YnN0MS58PD58Owp2YWwgb3Ag
Ojo+ICAgICAgICA9IFN1YnN0MS46Oj47CnZhbCB0ZXJtX3N1YnN0ICAgID0g
U3Vic3QxLnRlcm1fc3Vic3Q7CnZhbCBmb3JtdWxhX3N1YnN0ID0gU3Vic3Qx
LmZvcm11bGFfc3Vic3Q7CnZhbCBwcF9zdWJzdCAgICAgID0gU3Vic3QxLnBw
X3N1YnN0OwoKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoo
KiBBbm5vdGF0ZWQgcHJpbWl0aXZlIGluZmVyZW5jZXMuICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigqIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKCmRhdGF0eXBlIGluZmVyZW5jZScg
PQogIEF4aW9tJyAgICBvZiBmb3JtdWxhIGxpc3QKfCBSZWZsJyAgICAgb2Yg
dGVybQp8IEFzc3VtZScgICBvZiBmb3JtdWxhCnwgSW5zdCcgICAgIG9mIHN1
YnN0ICogdGhtCnwgRmFjdG9yJyAgIG9mIHRobQp8IFJlc29sdmUnICBvZiBm
b3JtdWxhICogdGhtICogdGhtCnwgRXF1YWxpdHknIG9mIGZvcm11bGEgKiBp
bnQgbGlzdCAqIHRlcm0gKiBib29sICogdGhtCgpmdW4gcHJpbWl0aXZlX2lu
ZmVyZW5jZSAoQXhpb20nICAgIGNsICAgICAgICAgICAgICApID0gQVhJT00g
Y2wKICB8IHByaW1pdGl2ZV9pbmZlcmVuY2UgKFJlZmwnICAgICB0bSAgICAg
ICAgICAgICAgKSA9IFJFRkwgdG0KICB8IHByaW1pdGl2ZV9pbmZlcmVuY2Ug
KEFzc3VtZScgICBsICAgICAgICAgICAgICAgKSA9IEFTU1VNRSBsCiAgfCBw
cmltaXRpdmVfaW5mZXJlbmNlIChJbnN0JyAgICAgKHMsIHRoKSAgICAgICAg
ICkgPSBJTlNUIHMgdGgKICB8IHByaW1pdGl2ZV9pbmZlcmVuY2UgKEZhY3Rv
cicgICB0aCAgICAgICAgICAgICAgKSA9IEZBQ1RPUiB0aAogIHwgcHJpbWl0
aXZlX2luZmVyZW5jZSAoUmVzb2x2ZScgIChsLCB0aDEsIHRoMikgICApID0g
UkVTT0xWRSBsIHRoMSB0aDIKICB8IHByaW1pdGl2ZV9pbmZlcmVuY2UgKEVx
dWFsaXR5JyAobCwgcCwgdCwgcywgdGgpKSA9IEVRVUFMSVRZIGwgcCB0IHMg
dGg7Cgp2YWwgY2xhdXNlID0gZnN0IG8gZGVzdF90aG07CgooKiAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigqIFByZXR0eS1wcmludGluZyBv
ZiB0aGVvcmVtcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKikKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSAqKQoKZnVuIHBwX3RobSBwcCB0aCA9CiAgKFBQLmJlZ2luX2Jsb2NrIHBw
IFBQLklOQ09OU0lTVEVOVCAzOwogICBQUC5hZGRfc3RyaW5nIHBwICJ8LSAi
OwogICBwcF9mb3JtdWxhIHBwIChsaXN0X21rX2Rpc2ogKGNsYXVzZSB0aCkp
OwogICBQUC5lbmRfYmxvY2sgcHApOwoKbG9jYWwKICBmdW4gaW5mX3RvX3N0
cmluZyBBeGlvbSAgICA9ICJBeGlvbSIKICAgIHwgaW5mX3RvX3N0cmluZyBS
ZWZsICAgICA9ICJSZWZsIgogICAgfCBpbmZfdG9fc3RyaW5nIEFzc3VtZSAg
ID0gIkFzc3VtZSIKICAgIHwgaW5mX3RvX3N0cmluZyBJbnN0ICAgICA9ICJJ
bnN0IgogICAgfCBpbmZfdG9fc3RyaW5nIEZhY3RvciAgID0gIkZhY3RvciIK
ICAgIHwgaW5mX3RvX3N0cmluZyBSZXNvbHZlICA9ICJSZXNvbHZlIgogICAg
fCBpbmZfdG9fc3RyaW5nIEVxdWFsaXR5ID0gIkVxdWFsaXR5IjsKaW4KICB2
YWwgcHBfaW5mZXJlbmNlID0gcHBfbWFwIGluZl90b19zdHJpbmcgcHBfc3Ry
aW5nOwplbmQ7Cgpsb2NhbAogIGZ1biBwcF9pbmYgKEF4aW9tJyAgICBhKSA9
IChBeGlvbSwgICBDIChwcF9saXN0IHBwX2Zvcm11bGEpICAgICAgICAgICAg
ICAgICBhKQogICAgfCBwcF9pbmYgKFJlZmwnICAgICBhKSA9IChSZWZsLCAg
ICBDIHBwX3Rlcm0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhKQog
ICAgfCBwcF9pbmYgKEFzc3VtZScgICBhKSA9IChBc3N1bWUsICBDIHBwX2Zv
cm11bGEgICAgICAgICAgICAgICAgICAgICAgICAgICBhKQogICAgfCBwcF9p
bmYgKEluc3QnICAgICBhKSA9IChJbnN0LCAgICBDIChwcF9wYWlyIHBwX3N1
YnN0IHBwX3RobSkgICAgICAgICAgICBhKQogICAgfCBwcF9pbmYgKEZhY3Rv
cicgICBhKSA9IChGYWN0b3IsICBDIHBwX3RobSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBhKQogICAgfCBwcF9pbmYgKFJlc29sdmUnICBhKSA9
IChSZXNvbHZlLCBDIChwcF90cmlwbGUgcHBfZm9ybXVsYSBwcF90aG0gcHBf
dGhtKSBhKQogICAgfCBwcF9pbmYgKEVxdWFsaXR5JyAobGl0LCBwLCByLCBs
ciwgdGgpKSA9CiAgICAoRXF1YWxpdHksCiAgICAgQyAocHBfcmVjb3JkIFso
ImxpdCIsICB1bml0X3BwIHBwX2Zvcm11bGEgbGl0KSwKICAgICAgICAgICAg
ICAgICAgICgicGF0aCIsIHVuaXRfcHAgKHBwX2xpc3QgcHBfaW50KSBwKSwK
ICAgICAgICAgICAgICAgICAgICgicmVzIiwgIHVuaXRfcHAgcHBfdGVybSBy
KSwKICAgICAgICAgICAgICAgICAgICgibHIiLCAgIHVuaXRfcHAgcHBfYm9v
bCBsciksCiAgICAgICAgICAgICAgICAgICAoInRobSIsICB1bml0X3BwIHBw
X3RobSB0aCldKSAoKSk7CmluCiAgZnVuIHBwX2luZmVyZW5jZScgcHAgaW5m
ID0KICBsZXQKICAgIG9wZW4gUFAKICAgIHZhbCAoaSwgcHBmKSA9IHBwX2lu
ZiBpbmYKICBpbgogICAgKGJlZ2luX2Jsb2NrIHBwIElOQ09OU0lTVEVOVCAw
OwogICAgIHBwX2luZmVyZW5jZSBwcCBpOwogICAgIGFkZF9icmVhayBwcCAo
MSwgMCk7CiAgICAgcHBmIHBwOwogICAgIGVuZF9ibG9jayBwcCkKICBlbmQ7
CmVuZDsKCnZhbCBwcF9wcm9vZiA9IHBwX2xpc3QgKHBwX3BhaXIgcHBfdGht
IHBwX2luZmVyZW5jZScpOwoKKCogUHVyZWx5IGZ1bmN0aW9uYWwgcHJldHR5
LXByaW50aW5nICopCgpmdW4gdGhtX3RvX3N0cmluZycgICAgICAgbGVuID0g
UFAucHBfdG9fc3RyaW5nIGxlbiBwcF90aG07CmZ1biBpbmZlcmVuY2VfdG9f
c3RyaW5nJyBsZW4gPSBQUC5wcF90b19zdHJpbmcgbGVuIHBwX2luZmVyZW5j
ZSc7CgooKiBQcmV0dHktcHJpbnRpbmcgdXNpbmcgIUxJTkVfTEVOR1RIICop
CgpmdW4gdGhtX3RvX3N0cmluZyAgICAgICB0aCAgPSB0aG1fdG9fc3RyaW5n
JyAgICAgICAoIUxJTkVfTEVOR1RIKSB0aDsKZnVuIGluZmVyZW5jZV90b19z
dHJpbmcgaW5mID0gaW5mZXJlbmNlX3RvX3N0cmluZycgKCFMSU5FX0xFTkdU
SCkgaW5mOwoKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoo
KiBBIHRvdGFsIGNvbXBhcmlzb24gZnVuY3Rpb24gZm9yIHRoZW9yZW1zLiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigqIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKCmxvY2FsCiAgZnVuIGNtcCBBeGlv
bSAgICBBeGlvbSAgICA9IEVRVUFMCiAgICB8IGNtcCBBeGlvbSAgICBfICAg
ICAgICA9IExFU1MKICAgIHwgY21wIF8gICAgICAgIEF4aW9tICAgID0gR1JF
QVRFUgogICAgfCBjbXAgUmVmbCAgICAgUmVmbCAgICAgPSBFUVVBTAogICAg
fCBjbXAgUmVmbCAgICAgXyAgICAgICAgPSBMRVNTCiAgICB8IGNtcCBfICAg
ICAgICBSZWZsICAgICA9IEdSRUFURVIKICAgIHwgY21wIEFzc3VtZSAgIEFz
c3VtZSAgID0gRVFVQUwKICAgIHwgY21wIEFzc3VtZSAgIF8gICAgICAgID0g
TEVTUwogICAgfCBjbXAgXyAgICAgICAgQXNzdW1lICAgPSBHUkVBVEVSCiAg
ICB8IGNtcCBJbnN0ICAgICBJbnN0ICAgICA9IEVRVUFMCiAgICB8IGNtcCBJ
bnN0ICAgICBfICAgICAgICA9IExFU1MKICAgIHwgY21wIF8gICAgICAgIElu
c3QgICAgID0gR1JFQVRFUgogICAgfCBjbXAgRmFjdG9yICAgRmFjdG9yICAg
PSBFUVVBTAogICAgfCBjbXAgRmFjdG9yICAgXyAgICAgICAgPSBMRVNTCiAg
ICB8IGNtcCBfICAgICAgICBGYWN0b3IgICA9IEdSRUFURVIKICAgIHwgY21w
IFJlc29sdmUgIFJlc29sdmUgID0gRVFVQUwKICAgIHwgY21wIFJlc29sdmUg
IEVxdWFsaXR5ID0gTEVTUwogICAgfCBjbXAgRXF1YWxpdHkgUmVzb2x2ZSAg
PSBHUkVBVEVSCiAgICB8IGNtcCBFcXVhbGl0eSBFcXVhbGl0eSA9IEVRVUFM
OwoKICBmdW4gY20gW10gPSBFUVVBTAogICAgfCBjbSAoKHRoMSwgdGgyKSA6
OiBsKSA9CiAgICBsZXQKICAgICAgdmFsIChsMSwgKHAxLCB0aHMxKSkgPSBk
ZXN0X3RobSB0aDEKICAgICAgdmFsIChsMiwgKHAyLCB0aHMyKSkgPSBkZXN0
X3RobSB0aDIKICAgIGluCiAgICAgIGNhc2UgSW50LmNvbXBhcmUgKGxlbmd0
aCBsMSwgbGVuZ3RoIGwyKSBvZiBFUVVBTAogICAgICAgID0+IChjYXNlIGxl
eF9jb21wYXJlIGZvcm11bGFfY29tcGFyZSAoemlwIGwxIGwyKSBvZiBFUVVB
TAogICAgICAgICAgICAgID0+IChjYXNlIGNtcCBwMSBwMiBvZiBFUVVBTAog
ICAgICAgICAgICAgICAgICAgID0+IGNtICh6aXAgdGhzMSB0aHMyIEAgbCkK
ICAgICAgICAgICAgICAgICAgfCB4ID0+IHgpCiAgICAgICAgICAgIHwgeCA9
PiB4KQogICAgICB8IHggPT4geAogICAgZW5kCmluCiAgdmFsIHRobV9jb21w
YXJlID0gY20gbyB3cmFwOwplbmQ7CgooKiAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tICopCigqIFJlY29uc3RydWN0aW5nIHByb29mcy4gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KikKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoKZnVuIHJl
Y29uc3RydWN0X3Jlc29sdmFudCBjbDEgY2wyIChjbDEnLCBjbDInKSA9CiAg
Y2FzZSAoc3VidHJhY3QgKHNldGlmeSBjbDEpIGNsMScsIHN1YnRyYWN0IChz
ZXRpZnkgY2wyKSBjbDInKSBvZgogICAgKF8gOjogXyA6OiBfLCBfKSA9PiBO
T05FCiAgfCAoXywgXyA6OiBfIDo6IF8pID0+IE5PTkUKICB8IChbbF0sIFtd
KSA9PiBTT01FIGwKICB8IChbXSwgW2wnXSkgPT4gU09NRSAobmVnYXRlIGwn
KQogIHwgKFtsXSwgW2wnXSkgPT4gaWYgbmVnYXRlIGwgPSBsJyB0aGVuIFNP
TUUgbCBlbHNlIE5PTkUKICB8IChbXSwgW10pID0+IE5PTkU7CgpmdW4gcmVj
b25zdHJ1Y3RfZXF1YWxpdHkgbCByID0KICBsZXQKICAgIGZ1biByZWNvbl9m
biBwIChmLCBhcmdzKSAoZicsIGFyZ3MnKSByZXN0ID0KICAgICAgcmVjb25f
dG0KICAgICAgKGlmIGYgPD4gZicgb3JlbHNlIGxlbmd0aCBhcmdzIDw+IGxl
bmd0aCBhcmdzJyB0aGVuIHJlc3QKICAgICAgIGVsc2UgbWFwIChDIGNvbnMg
cCAjIyBJKSAoZW51bWVyYXRlIDAgKHppcCBhcmdzIGFyZ3MnKSkgQCByZXN0
KQogICAgYW5kIHJlY29uX3RtIFtdID0gTk9ORQogICAgICB8IHJlY29uX3Rt
ICgocCwgKHRtLCB0bScpKSA6OiByZXN0KSA9CiAgICAgIGlmIHRtID0gbCBh
bmRhbHNvIHRtJyA9IHIgdGhlbiBTT01FIChyZXYgcCkKICAgICAgZWxzZQog
ICAgICAgIGNhc2UgKHRtLCB0bScpIG9mIChGbiBhLCBGbiBhJykgPT4gcmVj
b25fZm4gcCBhIGEnIHJlc3QKICAgICAgICB8IF8gPT4gcmVjb25fdG0gcmVz
dAoKICAgIGZ1biByZWNvbl9saXQgKE5vdCBhKSAoTm90IGEnKSA9IHJlY29u
X2xpdCBhIGEnCiAgICAgIHwgcmVjb25fbGl0IChBdG9tIGEpIChBdG9tIGEn
KSA9CiAgICAgIGlmIGwgPD4gciBhbmRhbHNvIGEgPSBhJyB0aGVuIE5PTkUg
ZWxzZSByZWNvbl90bSBbKFtdLCAoYSwgYScpKV0KICAgICAgfCByZWNvbl9s
aXQgXyBfID0gTk9ORQogIGluCiAgICBmbiAobGl0LCBsaXQnKSA9PgogICAg
Y2FzZSByZWNvbl9saXQgbGl0IGxpdCcgb2YgU09NRSBwID0+IFNPTUUgKGxp
dCwgcCkgfCBOT05FID0+IE5PTkUKICBlbmQ7CgpmdW4gcmVjb25zdHJ1Y3Qg
KGNsLCAoQXhpb20sIFtdKSkgPSBBeGlvbScgY2wKICB8IHJlY29uc3RydWN0
IChbbGl0XSwgKFJlZmwsIFtdKSkgPSBSZWZsJyAobGhzIGxpdCkKICB8IHJl
Y29uc3RydWN0IChbZm0sIF9dLCAoQXNzdW1lLCBbXSkpID0gQXNzdW1lJyBm
bQogIHwgcmVjb25zdHJ1Y3QgKGNsLCAoSW5zdCwgW3RoXSkpID0KICBJbnN0
JyAobWF0Y2hsX2xpdGVyYWxzIHw8PnwgKHppcCAoY2xhdXNlIHRoKSBjbCks
IHRoKQogIHwgcmVjb25zdHJ1Y3QgKF8sIChGYWN0b3IsIFt0aF0pKSA9IEZh
Y3RvcicgdGgKICB8IHJlY29uc3RydWN0IChjbCwgKFJlc29sdmUsIFt0aDEs
IHRoMl0pKSA9CiAgbGV0CiAgICB2YWwgZiA9IHJlY29uc3RydWN0X3Jlc29s
dmFudCAoY2xhdXNlIHRoMSkgKGNsYXVzZSB0aDIpCiAgICB2YWwgbCA9CiAg
ICAgIGNhc2UgZiAoY2wsIGNsKSBvZiBTT01FIGwgPT4gbAogICAgICB8IE5P
TkUgPT4KICAgICAgICBjYXNlIGZpcnN0IGYgKExpc3QudGFidWxhdGUgKGxl
bmd0aCBjbCwgc3BsaXQgY2wpKSBvZiBTT01FIGwgPT4gbAogICAgICAgIHwg
Tk9ORSA9PiByYWlzZSBCVUcgImluZmVyZW5jZSIgImNvdWxkbid0IHJlY29u
c3RydWN0IHJlc29sdmFudCIKICBpbgogICAgUmVzb2x2ZScgKGwsIHRoMSwg
dGgyKQogIGVuZAogIHwgcmVjb25zdHJ1Y3QgKE5vdCBmbSA6OiBjbCwgKEVx
dWFsaXR5LCBbdGhdKSkgPQogIGxldAogICAgdmFsICh0bTEsIHRtMikgPSBk
ZXN0X2VxIGZtCiAgaW4KICAgIGNhc2UgZmlyc3QgKHJlY29uc3RydWN0X2Vx
dWFsaXR5IHRtMSB0bTIpICh6aXAgKGNsYXVzZSB0aCkgY2wpIG9mCiAgICAg
IFNPTUUgKGwsIHApID0+IEVxdWFsaXR5JyAobCwgcCwgdG0yLCB0cnVlLCB0
aCkKICAgIHwgTk9ORSA9PgogICAgICBjYXNlIGZpcnN0IChyZWNvbnN0cnVj
dF9lcXVhbGl0eSB0bTIgdG0xKSAoemlwIChjbGF1c2UgdGgpIGNsKSBvZgog
ICAgICAgIFNPTUUgKGwsIHApID0+IEVxdWFsaXR5JyAobCwgcCwgdG0xLCBm
YWxzZSwgdGgpCiAgICAgIHwgTk9ORSA9PiByYWlzZSBCVUcgImluZmVyZW5j
ZSIgImNvdWxkbid0IHJlY29uc3RydWN0IGVxdWFsaXR5IHN0ZXAiCiAgZW5k
CiAgfCByZWNvbnN0cnVjdCBfID0gcmFpc2UgQlVHICJpbmZlcmVuY2UiICJt
YWxmb3JtZWQgaW5mZXJlbmNlIjsKCmZ1biBpbmZlcmVuY2UgdGggPQogIGxl
dAogICAgdmFsIGkgPSByZWNvbnN0cnVjdCAoZGVzdF90aG0gdGgpCiAgICB2
YWwgXyA9CiAgICAgIChwcmltaXRpdmVfaW5mZXJlbmNlIGkgPSB0aCkgb3Jl
bHNlCiAgICAgIHJhaXNlIEJVRyAiaW5mZXJlbmNlIgogICAgICAoImZhaWxl
ZDpcbnRoID0gIiBeIHRobV90b19zdHJpbmcgdGggXiAiXG5pbmYgPSAiIF4g
aW5mZXJlbmNlX3RvX3N0cmluZyBpCiAgICAgICBeICJcbmluZl90aCA9ICIg
XiB0aG1fdG9fc3RyaW5nIChwcmltaXRpdmVfaW5mZXJlbmNlIGkpKQogIGlu
CiAgICBpCiAgZW5kOwoKbG9jYWwKICB2YWwgZW1wdHkgPSAoQmluYXJ5bWFw
Lm1rRGljdCB0aG1fY29tcGFyZSwgW10pOwogIGZ1biBjb250YWlucyAobSwg
XykgdGggPSBPcHRpb24uaXNTb21lIChCaW5hcnltYXAucGVlayAobSwgdGgp
KTsKICBmdW4gYWRkIHRoIChtLCBwKSA9IChCaW5hcnltYXAuaW5zZXJ0ICht
LCB0aCwgKCkpLCAodGgsIGluZmVyZW5jZSB0aCkgOjogcCk7CiAgdmFsIGZp
bmFsaXplID0gc25kOwoKICBmdW4gcmVkdWNlICh0aCwgcGYpID0KICAgIGlm
IGNvbnRhaW5zIHBmIHRoIHRoZW4gcGYKICAgIGVsc2UgYWRkIHRoIChmb2xk
bCByZWR1Y2UgcGYgKHNuZCAoc25kIChkZXN0X3RobSB0aCkpKSk7CmluCiAg
ZnVuIHByb29mIHRoID0gZmluYWxpemUgKHJlZHVjZSAodGgsIGVtcHR5KSk7
CmVuZDsKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCog
Q29udHJhZGljdGlvbnMgYW5kIHVuaXQgY2xhdXNlcy4gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tICopCgp2YWwgaXNfY29udHJhZGljdGlvbiA9
IG51bGwgbyBjbGF1c2U7CgpmdW4gZGVzdF91bml0IHRoID0KICBjYXNlIGNs
YXVzZSB0aCBvZiBbbGl0XSA9PiBsaXQgfCBfID0+IHJhaXNlIEVSUiAiZGVz
dF91bml0IiAibm90IGEgdW5pdCI7Cgp2YWwgaXNfdW5pdCA9IGNhbiBkZXN0
X3VuaXQ7CgooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigq
IERlcml2ZWQgcnVsZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKikKKCogLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoKZnVuIENPTlRSIGxpdCB0aCA9IFJF
U09MVkUgKG5lZ2F0ZSBsaXQpIChBU1NVTUUgbGl0KSB0aDsKCmZ1biBXRUFL
RU4gbGl0cyB0aCA9IGZvbGRsICh1bmN1cnJ5IENPTlRSKSB0aCAocmV2IGxp
dHMpOwoKZnVuIEZSRVNIX1ZBUlNMIHRocyA9CiAgbGV0CiAgICB2YWwgZnZz
ID0gRlZMIChMaXN0LmNvbmNhdCAobWFwIGNsYXVzZSB0aHMpKQogICAgdmFs
IHZ2cyA9IG5ld192YXJzIChsZW5ndGggZnZzKQogICAgdmFsIHN1YiA9IFN1
YnN0MS5mcm9tX21hcGxldHMgKHppcHdpdGggKGN1cnJ5IG9wIHwtPikgZnZz
IHZ2cykKICBpbgogICAgbWFwIChJTlNUIHN1YikgdGhzCiAgZW5kOwoKdmFs
IEZSRVNIX1ZBUlMgPSB1bndyYXAgbyBGUkVTSF9WQVJTTCBvIHdyYXA7Cgpm
dW4gVU5JVF9TUVVBU0ggdGggPQogIGxldAogICAgZnVuIHNxdWFzaCBlbnYg
KHggOjogKHhzIGFzIHkgOjogXykpID0gc3F1YXNoICh1bmlmeV9saXRlcmFs
cyBlbnYgeCB5KSB4cwogICAgICB8IHNxdWFzaCBlbnYgXyA9IGVudgogIGlu
CiAgICBGQUNUT1IgKElOU1QgKHNxdWFzaCB8PD58IChjbGF1c2UgdGgpKSB0
aCkKICBlbmQ7CiAgCnZhbCBSRUZMRVhJVklUWSA9IFJFRkwgKFZhciAieCIp
OwoKdmFsIFNZTU1FVFJZID0KICBFUVVBTElUWSAobWtfZXEgKFZhciAieCIs
IFZhciAieCIpKSBbMF0gKFZhciAieSIpIHRydWUgUkVGTEVYSVZJVFk7Cgp2
YWwgVFJBTlNJVElWSVRZID0KICBFUVVBTElUWSAobWtfZXEgKFZhciAieSIs
IFZhciAieiIpKSBbMF0gKFZhciAieCIpIGZhbHNlCiAgKEFTU1VNRSAoTm90
IChta19lcSAoVmFyICJ5IiwgVmFyICJ6IikpKSk7CgpmdW4gRlVOX0NPTkdS
VUVOQ0UgKGZ1bmN0aW9uLCBhcml0eSkgPQogIGxldAogICAgdmFsIHhzID0g
TGlzdC50YWJ1bGF0ZSAoYXJpdHksIGZuIGkgPT4gVmFyICgieCIgXiBpbnRf
dG9fc3RyaW5nIGkpKQogICAgdmFsIHlzID0gTGlzdC50YWJ1bGF0ZSAoYXJp
dHksIGZuIGkgPT4gVmFyICgieSIgXiBpbnRfdG9fc3RyaW5nIGkpKQogICAg
ZnVuIGYgKGksIHRoKSA9CiAgICAgIEVRVUFMSVRZIChMaXN0Lmxhc3QgKGNs
YXVzZSB0aCkpIFsxLGldIChMaXN0Lm50aCAoeXMsIGkpKSB0cnVlIHRoCiAg
ICB2YWwgcmVmbCA9IElOU1QgKCgieCIgfC0+IEZuIChmdW5jdGlvbiwgeHMp
KSA6Oj4gfDw+fCkgUkVGTEVYSVZJVFkKICBpbgogICAgZm9sZGwgZiByZWZs
IChyZXYgKGludGVydmFsIDAgYXJpdHkpKQogIGVuZDsKCmZ1biBSRUxfQ09O
R1JVRU5DRSAocmVsYXRpb24sIGFyaXR5KSA9CiAgbGV0CiAgICB2YWwgeHMg
PSBMaXN0LnRhYnVsYXRlIChhcml0eSwgZm4gaSA9PiBWYXIgKCJ4IiBeIGlu
dF90b19zdHJpbmcgaSkpCiAgICB2YWwgeXMgPSBMaXN0LnRhYnVsYXRlIChh
cml0eSwgZm4gaSA9PiBWYXIgKCJ5IiBeIGludF90b19zdHJpbmcgaSkpCiAg
ICBmdW4gZiAoaSwgdGgpID0KICAgICAgRVFVQUxJVFkgKExpc3QubGFzdCAo
Y2xhdXNlIHRoKSkgW2ldIChMaXN0Lm50aCAoeXMsIGkpKSB0cnVlIHRoCiAg
ICB2YWwgcmVmbCA9IEFTU1VNRSAoTm90IChBdG9tIChGbiAocmVsYXRpb24s
IHhzKSkpKQogIGluCiAgICBmb2xkbCBmIHJlZmwgKHJldiAoaW50ZXJ2YWwg
MCBhcml0eSkpCiAgZW5kOwoKZW5kCigqI2xpbmUgMC4wICJmb2wvQ2Fub24x
LnNpZyIqKQooKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICopCigq
IEZJUlNULU9SREVSIExPR0lDIENBTk9OSUNBTElaQVRJT04gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKikKKCogQ3JlYXRlZCBi
eSBKb2UgSHVyZCwgU2VwdGVtYmVyIDIwMDEgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAqKQooKiBQYXJ0bHkgcG9ydGVkIGZyb20g
dGhlIENBTUwtTGlnaHQgY29kZSBhY2NvbXBhbnlpbmcgSm9obiBIYXJyaXNv
bidzIGJvb2sgICopCigqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0g
KikKCnNpZ25hdHVyZSBDYW5vbjEgPQpzaWcKCnR5cGUgdGVybSAgICA9IFRl
cm0xLnRlcm0KdHlwZSBmb3JtdWxhID0gVGVybTEuZm9ybXVsYQp0eXBlIHRo
bSAgICAgPSBUaG0xLnRobQoKKCogU2ltcGxpZmljYXRpb24gKikKdmFsIHNp
bXBsaWZ5IDogZm9ybXVsYSAtPiBmb3JtdWxhCgooKiBOZWdhdGlvbiBub3Jt
YWwgZm9ybSAqKQp2YWwgbm5mIDogZm9ybXVsYSAtPiBmb3JtdWxhCgooKiBQ
cmVuZXggbm9ybWFsIGZvcm0gKikKdmFsIHByZW5leCA6IGZvcm11bGEgLT4g
Zm9ybXVsYQp2YWwgcG5mICAgIDogZm9ybXVsYSAtPiBmb3JtdWxhCgooKiBT
a29sZW1pemF0aW9uICopCnZhbCBza29sZW1pemUgICAgICA6IGZvcm11bGEg
LT4gZm9ybXVsYQp2YWwgZnVsbF9za29sZW1pemUgOiBmb3JtdWxhIC0+IGZv
cm11bGEKCigqIEEgdGF1dG9sb2d5IGZpbHRlciBmb3IgY2xhdXNlcyAqKQp2
YWwgdGF1dG9sb2dvdXMgOiBmb3JtdWxhIGxpc3QgLT4gYm9vbAoKKCogQ29u
anVuY3RpdmUgbm9ybWFsIGZvcm0gKikKdmFsIHB1cmVjbmYgICAgICAgIDog
Zm9ybXVsYSAtPiBmb3JtdWxhIGxpc3QgbGlzdAp2YWwgc2ltcGNuZiAgICAg
ICAgOiBmb3JtdWxhIC0+IGZvcm11bGEgbGlzdCBsaXN0CnZhbCBjbGF1c2Fs
ICAgICAgICA6IGZvcm11bGEgLT4gZm9ybXVsYSBsaXN0IGxpc3QKdmFsIGNu
ZiAgICAgICAgICAgIDogZm9ybXVsYSAtPiBmb3JtdWxhCnZhbCBheGlvbWF0
aXplICAgICA6IGZvcm11bGEgLT4gdGhtIGxpc3QKdmFsIGVxX2F4aW9tYXRp
emUgIDogZm9ybXVsYSAtPiB0aG0gbGlzdCAgICAgICAgICAoKiBBZGRzIGVx
dWFsaXR5IGF4aW9tcyAqKQp2YWwgZXFfYXhpb21hdGl6ZScgOiBmb3JtdWxh
IC0+IHRobSBsaXN0ICAgICAgICAgICgqIEFkZHMgaWYgZXF1YWxpdHkgb2Nj
dXJzICopCgplbmQKKCojbGluZSAwLjAgImZvbC9DYW5vbjEuc21sIiopCigq
ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKikKKCogRklSU1QtT1JE
RVIgTE9HSUMgQ0FOT05JQ0FMSVpBVElPTiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAqKQooKiBDcmVhdGVkIGJ5IEpvZSBIdXJk
LCBTZXB0ZW1iZXIgMjAwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICopCigqIFBhcnRseSBwb3J0ZWQgZnJvbSB0aGUgQ0FNTC1M
aWdodCBjb2RlIGFjY29tcGFueWluZyBKb2huIEhhcnJpc29uJ3MgYm9vayAg
KikKKCogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqKQoKKCoKYXBw
IGxvYWQgWyJVc2VmdWwiLCAiVGVybTEiXTsKKikKCnN0cnVjdHVyZSBDYW5v
bjEgOj4gQ2Fub24xID0Kc3RydWN0CgpvcGVuIFVzZWZ1bCBUZXJtMSBUaG0x
OwoKaW5maXhyIHwtPiA6Oj4gb287Cgp0eXBlIHN1YnN0ICAgICAgICA9IFN1
YnN0MS5zdWJzdDsKdmFsIHw8PnwgICAgICAgICAgPSBTdWJzdDEufDw+fDsK
dmFsIG9wIDo6PiAgICAgICAgPSBTdWJzdDEuOjo+Owp2YWwgdGVybV9zdWJz
dCAgICA9IFN1YnN0MS50ZXJtX3N1YnN0Owp2YWwgZm9ybXVsYV9zdWJzdCA9
IFN1YnN0MS5mb3JtdWxhX3N1YnN0OwoKKCogLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLSAqKQooKiBTaW1wbGlmaWNhdGlvbi4gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKCmZ1biBz
aW1wbGlmeTEgKE5vdCBGYWxzZSkgICAgICAgICAgID0gVHJ1ZQogIHwgc2lt
cGxpZnkxIChOb3QgVHJ1ZSkgICAgICAgICAgICA9IEZhbHNlCiAgfCBzaW1w
bGlmeTEgKE5vdCAoTm90IGZtKSkgICAgICAgID0gZm0KICB8IHNpbXBsaWZ5
MSAoQW5kIChGYWxzZSwgcSkpICAgICAgPSBGYWxzZQogIHwgc2ltcGxpZnkx
IChBbmQgKHAsICAgICBGYWxzZSkpICA9IEZhbHNlCiAgfCBzaW1wbGlmeTEg
KEFuZCAoVHJ1ZSwgIHEpKSAgICAgID0gcQogIHwgc2ltcGxpZnkxIChBbmQg
KHAsICAgICBUcnVlKSkgICA9IHAKICB8IHNpbXBsaWZ5MSAoT3IgIChGYWxz
ZSwgcSkpICAgICAgPSBxCiAgfCBzaW1wbGlmeTEgKE9yICAocCwgICAgIEZh
bHNlKSkgID0gcAogIHwgc2ltcGxpZnkxIChPciAgKFRydWUsICBxKSkgICAg
ICA9IFRydWUKICB8IHNpbXBsaWZ5MSAoT3IgIChwLCAgICAgVHJ1ZSkpICAg
PSBUcnVlCiAgfCBzaW1wbGlmeTEgKEltcCAoRmFsc2UsIHEpKSAgICAgID0g
VHJ1ZQogIHwgc2ltcGxpZnkxIChJbXAgKFRydWUsICBxKSkgICAgICA9IHEK
ICB8IHNpbXBsaWZ5MSAoSW1wIChwLCAgICAgVHJ1ZSkpICAgPSBUcnVlCiAg
fCBzaW1wbGlmeTEgKEltcCAoTm90IHAsIEZhbHNlKSkgID0gcAogIHwgc2lt
cGxpZnkxIChJbXAgKHAsICAgICBGYWxzZSkpICA9IE5vdCBwCiAgfCBzaW1w
bGlmeTEgKElmZiAoVHJ1ZSwgIHEpKSAgICAgID0gcQogIHwgc2ltcGxpZnkx
IChJZmYgKHAsICAgICBUcnVlKSkgICA9IHAKICB8IHNpbXBsaWZ5MSAoSWZm
IChGYWxzZSwgTm90IHEpKSAgPSBxCiAgfCBzaW1wbGlmeTEgKElmZiAoRmFs
c2UsIHEpKSAgICAgID0gTm90IHEKICB8IHNpbXBsaWZ5MSAoSWZmIChOb3Qg
cCwgRmFsc2UpKSAgPSBwCiAgfCBzaW1wbGlmeTEgKElmZiAocCwgICAgIEZh
bHNlKSkgID0gTm90IHAKICB8IHNpbXBsaWZ5MSAoZm0gYXMgRm9yYWxsICh4
LCBwKSkgPSBpZiBtZW0geCAoRlYgcCkgdGhlbiBmbSBlbHNlIHAKICB8IHNp
bXBsaWZ5MSAoZm0gYXMgRXhpc3RzICh4LCBwKSkgPSBpZiBtZW0geCAoRlYg
cCkgdGhlbiBmbSBlbHNlIHAKICB8IHNpbXBsaWZ5MSBmbSAgICAgICAgICAg
ICAgICAgICAgPSBmbTsKCmZ1biBzaW1wbGlmeSAoTm90ICAgIHApICAgICAg
PSBzaW1wbGlmeTEgKE5vdCAoc2ltcGxpZnkgcCkpCiAgfCBzaW1wbGlmeSAo
QW5kICAgIChwLCBxKSkgPSBzaW1wbGlmeTEgKEFuZCAoc2ltcGxpZnkgcCwg
c2ltcGxpZnkgcSkpCiAgfCBzaW1wbGlmeSAoT3IgICAgIChwLCBxKSkgPSBz
aW1wbGlmeTEgKE9yICAoc2ltcGxpZnkgcCwgc2ltcGxpZnkgcSkpCiAgfCBz
aW1wbGlmeSAoSW1wICAgIChwLCBxKSkgPSBzaW1wbGlmeTEgKEltcCAoc2lt
cGxpZnkgcCwgc2ltcGxpZnkgcSkpCiAgfCBzaW1wbGlmeSAoSWZmICAgIChw
LCBxKSkgPSBzaW1wbGlmeTEgKElmZiAoc2ltcGxpZnkgcCwgc2ltcGxpZnkg
cSkpCiAgfCBzaW1wbGlmeSAoRm9yYWxsICh4LCBwKSkgPSBzaW1wbGlmeTEg
KEZvcmFsbCAoeCwgc2ltcGxpZnkgcCkpCiAgfCBzaW1wbGlmeSAoRXhpc3Rz
ICh4LCBwKSkgPSBzaW1wbGlmeTEgKEV4aXN0cyAoeCwgc2ltcGxpZnkgcCkp
CiAgfCBzaW1wbGlmeSBmbSAgICAgICAgICAgICAgPSBmbTsKCigqIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCogTmVnYXRpb24gbm9ybWFs
IGZvcm0uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tICopCgpmdW4gbm5mIChBbmQgKHAsIHEpKSAgICAgPSBBbmQgKG5uZiBw
LCBubmYgcSkKICB8IG5uZiAoT3IgKHAsIHEpKSAgICAgID0gT3IgKG5uZiBw
LCBubmYgcSkKICB8IG5uZiAoSW1wIChwLCBxKSkgICAgID0gT3IgKG5uZicg
cCwgbm5mIHEpCiAgfCBubmYgKElmZiAocCwgcSkpICAgICA9IE9yIChBbmQg
KG5uZiBwLCBubmYgcSksIEFuZCAobm5mJyBwLCBubmYnIHEpKQogIHwgbm5m
IChGb3JhbGwgKHgsIHApKSAgPSBGb3JhbGwgKHgsIG5uZiBwKQogIHwgbm5m
IChFeGlzdHMgKHgsIHApKSAgPSBFeGlzdHMgKHgsIG5uZiBwKQogIHwgbm5m
IChOb3QgeCkgICAgICAgICAgPSBubmYnIHgKICB8IG5uZiBmbSAgICAgICAg
ICAgICAgID0gZm0KYW5kIG5uZicgVHJ1ZSAgICAgICAgICAgID0gRmFsc2UK
ICB8IG5uZicgRmFsc2UgICAgICAgICAgID0gVHJ1ZQogIHwgbm5mJyAoQW5k
IChwLCBxKSkgICAgPSBPciAobm5mJyBwLCBubmYnIHEpCiAgfCBubmYnIChP
ciAocCwgcSkpICAgICA9IEFuZCAobm5mJyBwLCBubmYnIHEpCiAgfCBubmYn
IChJbXAgKHAsIHEpKSAgICA9IEFuZCAobm5mIHAsIG5uZicgcSkKICB8IG5u
ZicgKElmZiAocCwgcSkpICAgID0gT3IgKEFuZCAobm5mIHAsIG5uZicgcSks
IEFuZCAobm5mJyBwLCBubmYgcSkpCiAgfCBubmYnIChGb3JhbGwgKHgsIHAp
KSA9IEV4aXN0cyAoeCwgbm5mJyBwKQogIHwgbm5mJyAoRXhpc3RzICh4LCBw
KSkgPSBGb3JhbGwgKHgsIG5uZicgcCkKICB8IG5uZicgKE5vdCB4KSAgICAg
ICAgID0gbm5mIHgKICB8IG5uZicgZm0gICAgICAgICAgICAgID0gTm90IGZt
OwoKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQooKiBQcmVu
ZXggbm9ybWFsIGZvcm0uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0gKikKCmZ1biBwdWxscXVhbnRzIGZtID0KICAoY2Fz
ZSBmbSBvZgogICAgIEFuZCAoRm9yYWxsICh4LCBwKSwgRm9yYWxsICh5LCBx
KSkgPT4gcHVsbHF1YW50XzIgZm0gRm9yYWxsIEFuZCB4IHkgcCBxCiAgIHwg
T3IgKEV4aXN0cyAoeCwgcCksIEV4aXN0cyAoeSwgcSkpID0+IHB1bGxxdWFu
dF8yIGZtIEV4aXN0cyBPciB4IHkgcCBxCiAgIHwgQW5kIChGb3JhbGwgKHgs
IHApLCBxKSA9PiBwdWxscXVhbnRfbCBmbSBGb3JhbGwgQW5kIHggcCBxCiAg
IHwgQW5kIChwLCBGb3JhbGwgKHgsIHEpKSA9PiBwdWxscXVhbnRfciBmbSBG
b3JhbGwgQW5kIHggcCBxCiAgIHwgT3IgKEZvcmFsbCAoeCwgcCksIHEpID0+
IHB1bGxxdWFudF9sIGZtIEZvcmFsbCBPciB4IHAgcQogICB8IE9yIChwLCBG
b3JhbGwgKHgsIHEpKSA9PiBwdWxscXVhbnRfciBmbSBGb3JhbGwgT3IgeCBw
IHEKICAgfCBBbmQgKEV4aXN0cyAoeCwgcCksIHEpID0+IHB1bGxxdWFudF9s
IGZtIEV4aXN0cyBBbmQgeCBwIHEKICAgfCBBbmQgKHAsIEV4aXN0cyAoeCwg
cSkpID0+IHB1bGxxdWFudF9yIGZtIEV4aXN0cyBBbmQgeCBwIHEKICAgfCBP
ciAoRXhpc3RzICh4LCBwKSwgcSkgPT4gcHVsbHF1YW50X2wgZm0gRXhpc3Rz
IE9yIHggcCBxCiAgIHwgT3IgKHAsIEV4aXN0cyAoeCwgcSkpID0+IHB1bGxx
dWFudF9yIGZtIEV4aXN0cyBPciB4IHAgcQogICB8IF8gPT4gZm0pCmFuZCBw
dWxscXVhbnRfbCBmbSBRIEMgeCBwIHEgPQogIGxldAogICAgdmFsIHgnID0g
dmFyaWFudCB4IChGViBmbSkKICBpbgogICAgUSAoeCcsIHB1bGxxdWFudHMg
KEMgKGZvcm11bGFfc3Vic3QgKCh4IHwtPiBWYXIgeCcpIDo6PiB8PD58KSBw
LCBxKSkpCiAgZW5kCmFuZCBwdWxscXVhbnRfciBmbSBRIEMgeCBwIHEgPQog
IGxldAogICAgdmFsIHgnID0gdmFyaWFudCB4IChGViBmbSkKICBpbgogICAg
USAoeCcsIHB1bGxxdWFudHMgKEMgKHAsIGZvcm11bGFfc3Vic3QgKCh4IHwt
PiBWYXIgeCcpIDo6PiB8PD58KSBxKSkpCiAgZW5kCmFuZCBwdWxscXVhbnRf
MiBmbSBRIEMgeCB5IHAgcSA9CiAgbGV0CiAgICB2YWwgeCcgPSB2YXJpYW50
IHggKEZWIGZtKQogIGluCiAgICBRICh4JywgcHVsbHF1YW50cyhDIChmb3Jt
dWxhX3N1YnN0ICgoeCB8LT4gVmFyIHgnKSA6Oj4gfDw+fCkgcCwKICAgICAg
ICAgICAgICAgICAgICAgICAgIGZvcm11bGFfc3Vic3QgKCh4IHwtPiBWYXIg
eCcpIDo6PiB8PD58KSBxKSkpCiAgZW5kOwoKZnVuIHByZW5leCAoRm9yYWxs
ICh4LCBwKSkgPSBGb3JhbGwgKHgsIHByZW5leCBwKQogIHwgcHJlbmV4IChF
eGlzdHMgKHgsIHApKSA9IEV4aXN0cyAoeCwgcHJlbmV4IHApCiAgfCBwcmVu
ZXggKEFuZCAocCwgcSkpID0gcHVsbHF1YW50cyAoQW5kIChwcmVuZXggcCwg
cHJlbmV4IHEpKQogIHwgcHJlbmV4IChPciAocCwgcSkpID0gcHVsbHF1YW50
cyAoT3IgKHByZW5leCBwLCBwcmVuZXggcSkpCiAgfCBwcmVuZXggZm0gPSBm
bTsKCnZhbCBwbmYgPSBwcmVuZXggbyBubmYgbyBzaW1wbGlmeTsKCigqIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCogU2tvbGVtaXphdGlv
biBmdW5jdGlvbi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tICopCgpmdW4gc2tvbGVtIGF2b2lkIChFeGlzdHMgKHksIHApKSA9
CiAgbGV0CiAgICB2YWwgeHMgPSBzdWJ0cmFjdCAoRlYgcCkgW3ldCiAgICB2
YWwgZiA9IHZhcmlhbnQgKGlmIHhzID0gW10gdGhlbiAiY18iIF4geSBlbHNl
ICJmXyIgXiB5KSBhdm9pZAogIGluCiAgICBza29sZW0gYXZvaWQgKGZvcm11
bGFfc3Vic3QgKCh5IHwtPiBGbiAoZiwgbWFwIFZhciB4cykpIDo6PiB8PD58
KSBwKQogIGVuZAogIHwgc2tvbGVtIGF2b2lkIChGb3JhbGwgKHgsIHApKSA9
IEZvcmFsbCAoeCwgc2tvbGVtIGF2b2lkIHApCiAgfCBza29sZW0gYXZvaWQg
KEFuZCAocCwgcSkpID0gc2tvbGVtMiBhdm9pZCBBbmQgcCBxCiAgfCBza29s
ZW0gYXZvaWQgKE9yIChwLCBxKSkgPSBza29sZW0yIGF2b2lkIE9yIHAgcQog
IHwgc2tvbGVtIF8gZm0gPSBmbQphbmQgc2tvbGVtMiBhdm9pZCBDIHAgcSA9
CiAgbGV0CiAgICB2YWwgcCcgPSBza29sZW0gYXZvaWQgcAogICAgdmFsIHEn
ID0gc2tvbGVtICh1bmlvbiBhdm9pZCAoZnVuY3Rpb25fbmFtZXMgcCcpKSBx
CiAgaW4KICAgIEMgKHAnLCBxJykKICBlbmQ7CgpmdW4gc2tvbGVtaXplIGZt
ID0gc2tvbGVtIChmdW5jdGlvbl9uYW1lcyBmbSkgZm07Cgp2YWwgZnVsbF9z
a29sZW1pemUgPSBzcGVjaWFsaXplIG8gcHJlbmV4IG8gc2tvbGVtaXplIG8g
bm5mIG8gc2ltcGxpZnk7CgooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tICopCigqIEEgdGF1dG9sb2d5IGZpbHRlciBmb3IgY2xhdXNlcy4gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKikKKCog
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoKZnVuIHRhdXRvbG9n
b3VzIGNscyA9CiAgbGV0CiAgICB2YWwgKHBvcywgbmVnKSA9IExpc3QucGFy
dGl0aW9uIHBvc2l0aXZlIGNscwogIGluCiAgICBpbnRlcnNlY3QgcG9zICht
YXAgbmVnYXRlIG5lZykgPD4gW10KICBlbmQ7CgooKiAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tICopCigqIENvbmp1bmN0aXZlIE5vcm1hbCBGb3Jt
LiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKikKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoK
ZnVuIGRpc3RyaWIgczEgczIgPSBjYXJ0d2l0aCB1bmlvbiBzMSBzMjsKCmZ1
biBwdXJlY25mIChPciAocCwgcSkpICA9IGRpc3RyaWIgKHB1cmVjbmYgcCkg
KHB1cmVjbmYgcSkKICB8IHB1cmVjbmYgKEFuZCAocCwgcSkpID0gdW5pb24g
KHB1cmVjbmYgcCkgKHB1cmVjbmYgcSkKICB8IHB1cmVjbmYgZm0gPSBbW2Zt
XV07CgpmdW4gc2ltcGNuZiBUcnVlID0gW10KICB8IHNpbXBjbmYgRmFsc2Ug
PSBbW11dCiAgfCBzaW1wY25mIGZtID0gTGlzdC5maWx0ZXIgKG5vbiB0YXV0
b2xvZ291cykgKHB1cmVjbmYgZm0pOwoKdmFsIGNsYXVzYWwgPQogIExpc3Qu
Y29uY2F0IG8gbWFwIChzaW1wY25mIG8gc3BlY2lhbGl6ZSBvIHByZW5leCkg
byBmbGF0dGVuX2NvbmogbwogIHNrb2xlbWl6ZSBvIG5uZiBvIHNpbXBsaWZ5
Cgp2YWwgY25mID0gbGlzdF9ta19jb25qIG8gbWFwIGxpc3RfbWtfZGlzaiBv
IGNsYXVzYWw7Cgp2YWwgYXhpb21hdGl6ZSA9IG1hcCBBWElPTSBvIGNsYXVz
YWw7CgpmdW4gZXFfYXhpb21hdGl6ZSBmbSA9CiAgbGV0CiAgICB2YWwgZXFz
ID0gW1JFRkxFWElWSVRZLCBTWU1NRVRSWSwgVFJBTlNJVElWSVRZXQogICAg
dmFsIHJlbHMgPSBtYXAgUkVMX0NPTkdSVUVOQ0UgKHJlbGF0aW9uc19ub19l
cSBmbSkKICAgIHZhbCBmdW5zID0gbWFwIEZVTl9DT05HUlVFTkNFIChmdW5j
dGlvbnMgZm0pCiAgaW4KICAgIGVxcyBAIGZ1bnMgQCByZWxzIEAgYXhpb21h
dGl6ZSBmbQogIGVuZDsKCmZ1biBlcV9heGlvbWF0aXplJyBmbSA9IChpZiBl
cV9vY2N1cnMgZm0gdGhlbiBlcV9heGlvbWF0aXplIGVsc2UgYXhpb21hdGl6
ZSkgZm07CgplbmQKKCojbGluZSAwLjAgImZvbC9Vbml0czEuc2lnIiopCigq
ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKikKKCogQSBTVE9SRSBJ
TiBXSElDSCBUTyBDQUNIRSBVTklUIFRIRU9SRU1TICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAqKQooKiBDcmVhdGVkIGJ5IEpvZSBIdXJk
LCBOb3ZlbWJlciAyMDAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICopCigqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0g
KikKCnNpZ25hdHVyZSBVbml0czEgPQpzaWcKCnR5cGUgJ2EgcHAgICA9ICdh
IFVzZWZ1bC5wcAp0eXBlIGZvcm11bGEgPSBUZXJtMS5mb3JtdWxhCnR5cGUg
dGhtICAgICA9IFRobTEudGhtCgp0eXBlIHVuaXRzCgp2YWwgZW1wdHkgICAg
OiB1bml0cwp2YWwgYWRkICAgICAgOiB0aG0gLT4gdW5pdHMgLT4gdW5pdHMK
dmFsIGFkZGwgICAgIDogdGhtIGxpc3QgLT4gdW5pdHMgLT4gdW5pdHMKdmFs
IHN1YnN1bWVzIDogdW5pdHMgLT4gZm9ybXVsYSAtPiB0aG0gb3B0aW9uCnZh
bCBwcm92ZSAgICA6IHVuaXRzIC0+IGZvcm11bGEgbGlzdCAtPiB0aG0gbGlz
dCBvcHRpb24KdmFsIGRlbW9kICAgIDogdW5pdHMgLT4gdGhtIC0+IHRobQp2
YWwgaW5mbyAgICAgOiB1bml0cyAtPiBzdHJpbmcKdmFsIHBwX3VuaXRzIDog
dW5pdHMgcHAKCmVuZAooKiNsaW5lIDAuMCAiZm9sL1VuaXRzMS5zbWwiKikK
KCogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqKQooKiBBIFNUT1JF
IElOIFdISUNIIFRPIENBQ0hFIFVOSVQgVEhFT1JFTVMgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICopCigqIENyZWF0ZWQgYnkgSm9lIEh1
cmQsIE5vdmVtYmVyIDIwMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKikKKCogPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PSAqKQoKKCoKYXBwIGxvYWQKIFsiVXNlZnVsIiwgIk1vc21sIiwgIlRlcm0x
IiwgIlRobTEiLCAiQ2Fub24xIiwgIk1hdGNoMSJdOwoqKQoKKCoKKikKc3Ry
dWN0dXJlIFVuaXRzMSA6PiBVbml0czEgPQpzdHJ1Y3QKCm9wZW4gVXNlZnVs
IFRlcm0xIFRobTEgTWF0Y2gxOwoKaW5maXggfC0+IDo6PiBAPiBvbyAjIzsK
CnN0cnVjdHVyZSBOID0gTGl0ZXJhbE5ldDE7CgooKiAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tICopCigqIEF1eGlsaWFyeSBmdW5jdGlvbnMuICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKikKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoK
ZnVuIGxpZnRfb3B0aW9ucyBmID0KICBsZXQKICAgIGZ1biBnIHJlcyBbXSA9
IFNPTUUgKHJldiByZXMpCiAgICAgIHwgZyByZXMgKHggOjogeHMpID0gY2Fz
ZSBmIHggb2YgU09NRSB5ID0+IGcgKHkgOjogcmVzKSB4cyB8IE5PTkUgPT4g
Tk9ORQogIGluCiAgICBnIFtdCiAgZW5kOwoKKCogLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLSAqKQooKiBPcGVyYXRpb25zIG9uIHRoZSByYXcgdW5p
dCBjYWNoZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKCnR5
cGUgdW5zID0gdGhtIE4ubGl0ZXJhbF9tYXA7Cgp2YWwgdWVtcHR5IDogdW5z
ID0gTi5lbXB0eTsKCmZ1biB1YWRkIHRoIHVucyA9IE4uaW5zZXJ0IChkZXN0
X3VuaXQgdGggfC0+IHRoKSB1bnM7CgpmdW4gdXN1YnN1bWVzIHVucyBsaXQg
PQogIExpc3QuZmluZCAoY2FuIChDIG1hdGNoX2xpdGVyYWxzIGxpdCkgbyBk
ZXN0X3VuaXQpCiAgKHJldiAoTi5tYXRjaCB1bnMgbGl0KSk7CgpmdW4gdXBy
b3ZlIHVucyA9CiAgbGV0CiAgICBmdW4gcHIgbGl0ID0KICAgICAgT3B0aW9u
Lm1hcCAoZm4gdGggPT4gSU5TVCAobWF0Y2hfbGl0ZXJhbHMgKGRlc3RfdW5p
dCB0aCkgbGl0KSB0aCkKICAgICAgKHVzdWJzdW1lcyB1bnMgbGl0KQogIGlu
CiAgICBsaWZ0X29wdGlvbnMgcHIKICBlbmQ7CgpmdW4gdWRlbW9kIHVucyA9
CiAgbGV0CiAgICBmdW4gZGVtb2QgKGxpdCwgdGgpID0KICAgICAgY2FzZSB1
cHJvdmUgdW5zIFtuZWdhdGUgbGl0XSBvZiBOT05FID0+IHRoCiAgICAgIHwg
U09NRSBbZHRoXSA9PiBSRVNPTFZFIGxpdCB0aCBkdGgKICAgICAgfCBTT01F
IF8gPT4gcmFpc2UgQlVHICJ1bml0X2RlbW9kIiAiY29ycnVwdCIKICBpbgog
ICAgZm4gdGggPT4gZm9sZGwgZGVtb2QgdGggKGNsYXVzZSB0aCkKICBlbmQ7
CgooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigqIFRoZSB1
c2VyIGludGVyZmFjZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKikKKCogLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLSAqKQoKdHlwZSB1bml0cyA9ICh0aG0sIHVucykgc3Vt
OwoKdmFsIGVtcHR5ID0gSU5SIHVlbXB0eTsKCmZ1biBzdWJzdW1lcyAoSU5M
IHRoKSA9IEsgKFNPTUUgdGgpCiAgfCBzdWJzdW1lcyAoSU5SIHVucykgPSB1
c3Vic3VtZXMgdW5zOwoKZnVuIHByb3ZlIChJTkwgdGgpID0gU09NRSBvIG1h
cCAoZm4gRmFsc2UgPT4gdGggfCBsaXQgPT4gQ09OVFIgbGl0IHRoKQogIHwg
cHJvdmUgKElOUiB1bnMpID0gdXByb3ZlIHVuczsKCmZ1biBkZW1vZCAoSU5M
IHRoKSA9IEsgdGgKICB8IGRlbW9kIChJTlIgdW5zKSA9IHVkZW1vZCB1bnM7
CgpmdW4gaW5mbyAoKElOTCBfKSA6IHVuaXRzKSA9ICIqIgogIHwgaW5mbyAo
SU5SIHVucykgPSBpbnRfdG9fc3RyaW5nIChOLnNpemUgdW5zKTsKCnZhbCBw
cF91bml0cyA9IHBwX21hcCBpbmZvIHBwX3N0cmluZzsKCigqIEFkZGluZyBh
IHRoZW9yZW0gaW52b2x2ZXMgc3F1YXNoaW5nIGl0IHRvIGEgdW5pdCwgaWYg
cG9zc2libGUuICopCgpmdW4gYWRkIF8gKFUgYXMgSU5MIF8pID0gVQogIHwg
YWRkIHRoIChVIGFzIElOUiB1bnMpID0KICBpZiBMaXN0LmV4aXN0cyAoT3B0
aW9uLmlzU29tZSBvIHVzdWJzdW1lcyB1bnMpIChjbGF1c2UgdGgpIHRoZW4g
VQogIGVsc2UKICAgIGxldAogICAgICB2YWwgdGggPSB1ZGVtb2QgdW5zIHRo
CiAgICBpbgogICAgICBpZiBpc19jb250cmFkaWN0aW9uIHRoIHRoZW4gSU5M
IHRoCiAgICAgIGVsc2UgY2FzZSB0b3RhbCBVTklUX1NRVUFTSCB0aCBvZiBO
T05FID0+IFUgfCBTT01FIHRoID0+IElOUiAodWFkZCB0aCB1bnMpCiAgICBl
bmQ7Cgp2YWwgYWRkbCA9IEMgKGZvbGRsICh1bmN1cnJ5IGFkZCkpOwoKZW5k
CigqI2xpbmUgMC4wICJmb2wvUHJvYmxlbTEuc2lnIiopCigqID09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0gKikKKCogU09NRSBTQU1QTEUgUFJPQkxF
TVMgVE8gVEVTVCBQUk9PRiBQUk9DRURVUkVTICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAqKQooKiBDcmVhdGVkIGJ5IEpvZSBIdXJkLCBTZXB0ZW1i
ZXIgMjAwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICopCigqIFBhcnRseSBwb3J0ZWQgZnJvbSB0aGUgQ0FNTC1MaWdodCBjb2Rl
IGFjY29tcGFueWluZyBKb2huIEhhcnJpc29uJ3MgYm9vayAgKikKKCogPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PSAqKQoKc2lnbmF0dXJlIFByb2Js
ZW0xID0Kc2lnCgp0eXBlICdhIHF1b3RhdGlvbiA9ICdhIGZyYWcgbGlzdAp0
eXBlICdhIHByb2JsZW0gICA9IHtuYW1lIDogc3RyaW5nLCBnb2FsIDogJ2Eg
cXVvdGF0aW9ufQoKKCogQWNjZXNzaW5nIGluZGl2aWR1YWwgcHJvYmxlbXMg
KikKdmFsIGdldCA6ICdhIHByb2JsZW0gbGlzdCAtPiBzdHJpbmcgLT4gJ2Eg
cXVvdGF0aW9uCgooKiBUaGUgbWFzdGVyIGNvbGxlY3Rpb25zICopCnZhbCBu
b25lcXVhbGl0eSA6ICdhIHByb2JsZW0gbGlzdAp2YWwgZXF1YWxpdHkgICAg
OiAnYSBwcm9ibGVtIGxpc3QKdmFsIHRwdHAgICAgICAgIDogJ2EgcHJvYmxl
bSBsaXN0CgooKiBTb21lIGNvbXBpbGF0aW9ucyAqKQp2YWwgcXVpY2sgOiAn
YSBwcm9ibGVtIGxpc3QKCmVuZAooKiNsaW5lIDAuMCAiZm9sL1Byb2JsZW0x
LnNtbCIqKQooKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICopCigq
IFNPTUUgU0FNUExFIFBST0JMRU1TIFRPIFRFU1QgUFJPT0YgUFJPQ0VEVVJF
UyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKikKKCogQ3JlYXRlZCBi
eSBKb2UgSHVyZCwgU2VwdGVtYmVyIDIwMDEgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAqKQooKiBQYXJ0bHkgcG9ydGVkIGZyb20g
dGhlIENBTUwtTGlnaHQgY29kZSBhY2NvbXBhbnlpbmcgSm9obiBIYXJyaXNv
bidzIGJvb2sgICopCigqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0g
KikKCnN0cnVjdHVyZSBQcm9ibGVtMSA6PiBQcm9ibGVtMSA9CnN0cnVjdAoK
dHlwZSAnYSBxdW90YXRpb24gPSAnYSBmcmFnIGxpc3Q7Cgp0eXBlICdhIHBy
b2JsZW0gPSB7bmFtZSA6IHN0cmluZywgZ29hbCA6ICdhIHF1b3RhdGlvbn07
CgooKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICopCigqIEFjY2Vz
c2luZyBpbmRpdmlkdWFsIHByb2JsZW1zLiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKikKKCogPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PSAqKQoKZnVuIGV4dHJhY3QgKHAgOiAnYSBwcm9ibGVt
IGxpc3QpIG4gPQogIE9wdGlvbi52YWxPZiAoTGlzdC5maW5kIChmbiB7bmFt
ZSwgLi4ufSA9PiBuYW1lID0gbikgcCk7CgpmdW4gZ2V0IHAgPSAjZ29hbCBv
IGV4dHJhY3QgcDsKCigqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0g
KikKKCogUHJvYmxlbXMgd2l0aG91dCBlcXVhbGl0eS4gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiA9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09ICopCgp2YWwgbm9uZXF1YWxpdHkg
PSBbCgooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigqIFRy
aXZpYSAoc29tZSBvZiB3aGljaCBkZW1vbnN0cmF0ZSBleC1idWdzIGluIHBy
b3ZlcnMpLiAgICAgICAgICAgICAgICAgICAgKikKKCogLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSAqKQoKe25hbWUgPSAiVFJVRSIsCiBnb2FsID0g
WwpRVU9URSAiXG5UIl19LAoKe25hbWUgPSAiUF9vcl9ub3RfUCIsCiBnb2Fs
ID0gWwpRVU9URSAiXG5wIFxcLyB+cCJdfSwKCntuYW1lID0gIkpIX3Rlc3Qi
LAogZ29hbCA9IFsKUVVPVEUgIlxuIXggeS4gP3ouIHAgeCBcXC8gcCB5ID09
PiBwIHoiXX0sCgp7bmFtZSA9ICJDWUNMSUMiLAogZ29hbCA9IFsKUVVPVEUg
IlxuKCF4LiBwIChnIChjIHgpKSkgPT0+ID96LiBwIChnIHopIl19LAoKe25h
bWUgPSAiTU5fYnVnIiwKIGdvYWwgPSBbClFVT1RFICJcbigheC4gP3kuIGYg
eSB4IHgpID09PiA/ei4gZiB6IDAgMCJdfSwKCntuYW1lID0gIkVSSUMiLAog
Z29hbCA9IFsKUVVPVEUgIlxuIXguID92IHcuICF5IHouIHAgeCAvXFwgcSB5
ID09PiAocCB2IFxcLyByIHcpIC9cXCAociB6ID09PiBxIHYpIl19LAoKKCog
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQooKiBQcm9wb3NpdGlv
bmFsIExvZ2ljLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0gKikKCntuYW1lID0gIlBST1BfMSIsCiBnb2FsID0gWwpRVU9U
RSAiXG5wID09PiBxIDw9PiB+cSA9PT4gfnAiXX0sCgp7bmFtZSA9ICJQUk9Q
XzIiLAogZ29hbCA9IFsKUVVPVEUgIlxufn5wIDw9PiBwIl19LAoKe25hbWUg
PSAiUFJPUF8zIiwKIGdvYWwgPSBbClFVT1RFICJcbn4ocCA9PT4gcSkgPT0+
IHEgPT0+IHAiXX0sCgp7bmFtZSA9ICJQUk9QXzQiLAogZ29hbCA9IFsKUVVP
VEUgIlxufnAgPT0+IHEgPD0+IH5xID09PiBwIl19LAoKe25hbWUgPSAiUFJP
UF81IiwKIGdvYWwgPSBbClFVT1RFICJcbihwIFxcLyBxID09PiBwIFxcLyBy
KSA9PT4gcCBcXC8gKHEgPT0+IHIpIl19LAoKe25hbWUgPSAiUFJPUF82IiwK
IGdvYWwgPSBbClFVT1RFICJcbnAgXFwvIH5wIl19LAoKe25hbWUgPSAiUFJP
UF83IiwKIGdvYWwgPSBbClFVT1RFICJcbnAgXFwvIH5+fnAiXX0sCgp7bmFt
ZSA9ICJQUk9QXzgiLAogZ29hbCA9IFsKUVVPVEUgIlxuKChwID09PiBxKSA9
PT4gcCkgPT0+IHAiXX0sCgp7bmFtZSA9ICJQUk9QXzkiLAogZ29hbCA9IFsK
UVVPVEUgIlxuKHAgXFwvIHEpIC9cXCAofnAgXFwvIHEpIC9cXCAocCBcXC8g
fnEpID09PiB+KH5xIFxcLyB+cSkiXX0sCgp7bmFtZSA9ICJQUk9QXzEwIiwK
IGdvYWwgPSBbClFVT1RFICJcbihxID09PiByKSAvXFwgKHIgPT0+IHAgL1xc
IHEpIC9cXCAocCA9PT4gcSAvXFwgcikgPT0+IChwIDw9PiBxKSJdfSwKCntu
YW1lID0gIlBST1BfMTEiLAogZ29hbCA9IFsKUVVPVEUgIlxucCA8PT4gcCJd
fSwKCntuYW1lID0gIlBST1BfMTIiLAogZ29hbCA9IFsKUVVPVEUgIlxuKChw
IDw9PiBxKSA8PT4gcikgPD0+IHAgPD0+IHEgPD0+IHIiXX0sCgp7bmFtZSA9
ICJQUk9QXzEzIiwKIGdvYWwgPSBbClFVT1RFICJcbnAgXFwvIHEgL1xcIHIg
PD0+IChwIFxcLyBxKSAvXFwgKHAgXFwvIHIpIl19LAoKe25hbWUgPSAiUFJP
UF8xNCIsCiBnb2FsID0gWwpRVU9URSAiXG4ocCA8PT4gcSkgPD0+IChxIFxc
LyB+cCkgL1xcICh+cSBcXC8gcCkiXX0sCgp7bmFtZSA9ICJQUk9QXzE1IiwK
IGdvYWwgPSBbClFVT1RFICJcbnAgPT0+IHEgPD0+IH5wIFxcLyBxIl19LAoK
e25hbWUgPSAiUFJPUF8xNiIsCiBnb2FsID0gWwpRVU9URSAiXG4ocCA9PT4g
cSkgXFwvIChxID09PiBwKSJdfSwKCntuYW1lID0gIlBST1BfMTciLAogZ29h
bCA9IFsKUVVPVEUgIlxucCAvXFwgKHEgPT0+IHIpID09PiBzIDw9PiAofnAg
XFwvIHEgXFwvIHMpIC9cXCAofnAgXFwvIH5yIFxcLyBzKSJdfSwKCntuYW1l
ID0gIk1BVEhTNF9FWEFNUExFIiwKIGdvYWwgPSBbClFVT1RFICJcbihhIFxc
LyB+ayA9PT4gZykgL1xcIChnID09PiBxKSAvXFwgfnEgPT0+IGsiXX0sCgp7
bmFtZSA9ICJYT1JfQVNTT0MiLAogZ29hbCA9IFsKUVVPVEUgIlxufih+KHAg
PD0+IHEpIDw9PiByKSA8PT4gfihwIDw9PiB+KHEgPD0+IHIpKSJdfSwKCigq
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCogTW9uYWRpYyBQ
cmVkaWNhdGUgTG9naWMuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tICopCgooKiBUaGUgZHJpbmtlcidzIHByaW5jaXBsZSAqKQp7
bmFtZSA9ICJQMTgiLAogZ29hbCA9IFsKUVVPVEUgIlxuP3ZlcnlfcG9wdWxh
cl9ndXkuICF3aG9sZV9wdWIuIGRyaW5rcyB2ZXJ5X3BvcHVsYXJfZ3V5ID09
PiBkcmlua3Mgd2hvbGVfcHViIl19LAoKe25hbWUgPSAiUDE5IiwKIGdvYWwg
PSBbClFVT1RFICJcbj94LiAheSB6LiAocCB5ID09PiBxIHopID09PiBwIHgg
PT0+IHEgeCJdfSwKCntuYW1lID0gIlAyMCIsCiBnb2FsID0gWwpRVU9URSAi
XG4oIXggeS4gP3ouICF3LiBwIHggL1xcIHEgeSA9PT4gciB6IC9cXCB1IHcp
IC9cXCAoIXggeS4gcCB4IC9cXCBxIHkpID09PiA/ei4gciB6Il19LAoKe25h
bWUgPSAiUDIxIiwKIGdvYWwgPSBbClFVT1RFICJcbig/eC4gcCA9PT4gcSB4
KSAvXFwgKD94LiBxIHggPT0+IHApID09PiA/eC4gcCA8PT4gcSB4Il19LAoK
e25hbWUgPSAiUDIyIiwKIGdvYWwgPSBbClFVT1RFICJcbigheC4gcCA8PT4g
cSB4KSA9PT4gKHAgPD0+ICF4LiBxIHgpIl19LAoKe25hbWUgPSAiUDIzIiwK
IGdvYWwgPSBbClFVT1RFICJcbigheC4gcCBcXC8gcSB4KSA8PT4gcCBcXC8g
IXguIHEgeCJdfSwKCntuYW1lID0gIlAyNCIsCiBnb2FsID0gWwoKUVVPVEUg
Ilxufig/eC4gdSB4IC9cXCBxIHgpIC9cXCAoIXguIHAgeCA9PT4gcSB4IFxc
LyByIHgpIC9cXCB+KD94LiBwIHggPT0+ID94LiBxIHgpIC9cXFxuKCF4LiBx
IHggL1xcIHIgeCA9PT4gdSB4KSA9PT4gP3guIHAgeCAvXFwgciB4Il19LAoK
e25hbWUgPSAiUDI1IiwKIGdvYWwgPSBbCgpRVU9URSAiXG4oP3guIHAgeCkg
L1xcICgheC4gdSB4ID09PiB+ZyB4IC9cXCByIHgpIC9cXCAoIXguIHAgeCA9
PT4gZyB4IC9cXCB1IHgpIC9cXFxuKCgheC4gcCB4ID09PiBxIHgpIFxcLyA/
eC4gcSB4IC9cXCBwIHgpID09PiA/eC4gcSB4IC9cXCBwIHgiXX0sCgp7bmFt
ZSA9ICJQMjYiLAogZ29hbCA9IFsKClFVT1RFICJcbigoP3guIHAgeCkgPD0+
ID94LiBxIHgpIC9cXCAoIXggeS4gcCB4IC9cXCBxIHkgPT0+IChyIHggPD0+
IHUgeSkpID09PlxuKCgheC4gcCB4ID09PiByIHgpIDw9PiAheC4gcSB4ID09
PiB1IHgpIl19LAoKe25hbWUgPSAiUDI3IiwKIGdvYWwgPSBbCgpRVU9URSAi
XG4oP3guIHAgeCAvXFwgfnEgeCkgL1xcICgheC4gcCB4ID09PiByIHgpIC9c
XCAoIXguIHUgeCAvXFwgcyB4ID09PiBwIHgpIC9cXFxuKD94LiByIHggL1xc
IH5xIHgpID09PiAoIXguIHUgeCA9PT4gfnIgeCkgPT0+ICF4LiB1IHggPT0+
IH5zIHgiXX0sCgp7bmFtZSA9ICJQMjgiLAogZ29hbCA9IFsKClFVT1RFICJc
bigheC4gcCB4ID09PiAheC4gcSB4KSAvXFwgKCgheC4gcSB4IFxcLyByIHgp
ID09PiA/eC4gcSB4IC9cXCByIHgpIC9cXFxuKCg/eC4gciB4KSA9PT4gIXgu
IGwgeCA9PT4gbSB4KSA9PT4gIXguIHAgeCAvXFwgbCB4ID09PiBtIHgiXX0s
Cgp7bmFtZSA9ICJQMjkiLAogZ29hbCA9IFsKCgpRVU9URSAiXG4oP3guIHAg
eCkgL1xcICg/eC4gZyB4KSA9PT5cbigoIXguIHAgeCA9PT4gaCB4KSAvXFwg
KCF4LiBnIHggPT0+IGogeCkgPD0+XG4gIXggeS4gcCB4IC9cXCBnIHkgPT0+
IGggeCAvXFwgaiB5KSJdfSwKCntuYW1lID0gIlAzMCIsCiBnb2FsID0gWwoK
UVVPVEUgIlxuKCF4LiBwIHggXFwvIGcgeCA9PT4gfmggeCkgL1xcICgheC4g
KGcgeCA9PT4gfnUgeCkgPT0+IHAgeCAvXFwgaCB4KSA9PT5cbiF4LiB1IHgi
XX0sCgp7bmFtZSA9ICJQMzEiLAogZ29hbCA9IFsKClFVT1RFICJcbn4oP3gu
IHAgeCAvXFwgKGcgeCBcXC8gaCB4KSkgL1xcICg/eC4gcSB4IC9cXCBwIHgp
IC9cXCAoIXguIH5oIHggPT0+IGogeCkgPT0+XG4/eC4gcSB4IC9cXCBqIHgi
XX0sCgp7bmFtZSA9ICJQMzIiLAogZ29hbCA9IFsKClFVT1RFICJcbigheC4g
cCB4IC9cXCAoZyB4IFxcLyBoIHgpID09PiBxIHgpIC9cXCAoIXguIHEgeCAv
XFwgaCB4ID09PiBqIHgpIC9cXFxuKCF4LiByIHggPT0+IGggeCkgPT0+ICF4
LiBwIHggL1xcIHIgeCA9PT4gaiB4Il19LAoKe25hbWUgPSAiUDMzIiwKIGdv
YWwgPSBbCgpRVU9URSAiXG4oIXguIHAgYSAvXFwgKHAgeCA9PT4gcCBiKSA9
PT4gcCBjKSA8PT5cbigheC4gcCBhID09PiBwIHggXFwvIHAgYykgL1xcIChw
IGEgPT0+IHAgYiA9PT4gcCBjKSJdfSwKCigqIFRoaXMgZ2l2ZXMgcmlzZSB0
byA1MTg0IGNsYXVzZXMgd2hlbiBjb252ZXJ0ZWQgdG8gQ05GISAqKQp7bmFt
ZSA9ICJQMzQiLAogZ29hbCA9IFsKClFVT1RFICJcbigoP3guICF5LiBwIHgg
PD0+IHAgeSkgPD0+ICg/eC4gcSB4KSA8PT4gIXkuIHEgeSkgPD0+XG4oP3gu
ICF5LiBxIHggPD0+IHEgeSkgPD0+ICg/eC4gcCB4KSA8PT4gIXkuIHAgeSJd
fSwKCntuYW1lID0gIlAzNSIsCiBnb2FsID0gWwpRVU9URSAiXG4/eCB5LiBw
IHggeSA9PT4gIXggeS4gcCB4IHkiXX0sCgooKiAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tICopCigqIEZ1bGwgcHJlZGljYXRlIGxvZ2ljICh3aXRo
b3V0IElkZW50aXR5IGFuZCBGdW5jdGlvbnMpICAgICAgICAgICAgICAgICAg
ICAgKikKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoKe25h
bWUgPSAiUDM2IiwKIGdvYWwgPSBbCgpRVU9URSAiXG4oIXguID95LiBwIHgg
eSkgL1xcICgheC4gP3kuIGcgeCB5KSAvXFxcbigheCB5LiBwIHggeSBcXC8g
ZyB4IHkgPT0+ICF6LiBwIHkgeiBcXC8gZyB5IHogPT0+IGggeCB6KSA9PT4g
IXguID95LiBoIHggeSJdfSwKCntuYW1lID0gIlAzNyIsCiBnb2FsID0gWwoK
ClFVT1RFICJcbighei4gP3cuICF4LiA/eS4gKHAgeCB6ID09PiBwIHkgdykg
L1xcIHAgeSB6IC9cXCAocCB5IHcgPT0+ID92LiBxIHYgdykpIC9cXFxuKCF4
IHouIH5wIHggeiA9PT4gP3kuIHEgeSB6KSAvXFwgKCg/eCB5LiBxIHggeSkg
PT0+ICF4LiByIHggeCkgPT0+XG4heC4gP3kuIHIgeCB5Il19LAoKe25hbWUg
PSAiUDM4IiwKIGdvYWwgPSBbCgoKClFVT1RFICJcbigheC4gcCBhIC9cXCAo
cCB4ID09PiA/eS4gcCB5IC9cXCByIHggeSkgPT0+ID96IHcuIHAgeiAvXFwg
ciB4IHcgL1xcIHIgdyB6KSA8PT5cbiF4LlxuICAofnAgYSBcXC8gcCB4IFxc
LyA/eiB3LiBwIHogL1xcIHIgeCB3IC9cXCByIHcgeikgL1xcXG4gICh+cCBh
IFxcLyB+KD95LiBwIHkgL1xcIHIgeCB5KSBcXC8gP3ogdy4gcCB6IC9cXCBy
IHggdyAvXFwgciB3IHopIl19LAoKe25hbWUgPSAiUDM5IiwKIGdvYWwgPSBb
ClFVT1RFICJcbn4/eC4gIXkuIHAgeSB4IDw9PiB+cCB5IHkiXX0sCgp7bmFt
ZSA9ICJQNDAiLAogZ29hbCA9IFsKUVVPVEUgIlxuKD95LiAheC4gcCB4IHkg
PD0+IHAgeCB4KSA9PT4gfiF4LiA/eS4gIXouIHAgeiB5IDw9PiB+cCB6IHgi
XX0sCgp7bmFtZSA9ICJQNDEiLAogZ29hbCA9IFsKUVVPVEUgIlxuKCF6LiA/
eS4gIXguIHAgeCB5IDw9PiBwIHggeiAvXFwgfnAgeCB4KSA9PT4gfj96LiAh
eC4gcCB4IHoiXX0sCgp7bmFtZSA9ICJQNDIiLAogZ29hbCA9IFsKUVVPVEUg
Ilxufj95LiAheC4gcCB4IHkgPD0+IH4/ei4gcCB4IHogL1xcIHAgeiB4Il19
LAoKe25hbWUgPSAiUDQzIiwKIGdvYWwgPSBbClFVT1RFICJcbigheCB5LiBx
IHggeSA8PT4gIXouIHAgeiB4IDw9PiBwIHogeSkgPT0+ICF4IHkuIHEgeCB5
IDw9PiBxIHkgeCJdfSwKCntuYW1lID0gIlA0NCIsCiBnb2FsID0gWwoKUVVP
VEUgIlxuKCF4LiBwIHggPT0+ICg/eS4gZyB5IC9cXCBoIHggeSkgL1xcID95
LiBnIHkgL1xcIH5oIHggeSkgL1xcXG4oP3guIGogeCAvXFwgIXkuIGcgeSA9
PT4gaCB4IHkpID09PiA/eC4gaiB4IC9cXCB+cCB4Il19LAoKe25hbWUgPSAi
UDQ1IiwKIGdvYWwgPSBbCgoKClFVT1RFICJcbigheC4gcCB4IC9cXCAoIXku
IGcgeSAvXFwgaCB4IHkgPT0+IGogeCB5KSA9PT4gIXkuIGcgeSAvXFwgaCB4
IHkgPT0+IHIgeSkgL1xcXG5+KD95LiBsIHkgL1xcIHIgeSkgL1xcXG4oP3gu
IHAgeCAvXFwgKCF5LiBoIHggeSA9PT4gbCB5KSAvXFwgIXkuIGcgeSAvXFwg
aCB4IHkgPT0+IGogeCB5KSA9PT5cbj94LiBwIHggL1xcIH4/eS4gZyB5IC9c
XCBoIHggeSJdfSwKCntuYW1lID0gIlA0NiIsCiBnb2FsID0gWwoKClFVT1RF
ICJcbigheC4gcCB4IC9cXCAoIXkuIHAgeSAvXFwgaCB5IHggPT0+IGcgeSkg
PT0+IGcgeCkgL1xcXG4oKD94LiBwIHggL1xcIH5nIHgpID09PiA/eC4gcCB4
IC9cXCB+ZyB4IC9cXCAheS4gcCB5IC9cXCB+ZyB5ID09PiBqIHggeSkgL1xc
XG4oIXggeS4gcCB4IC9cXCBwIHkgL1xcIGggeCB5ID09PiB+aiB5IHgpID09
PiAheC4gcCB4ID09PiBnIHgiXX0sCgp7bmFtZSA9ICJQNTAiLAogZ29hbCA9
IFsKUVVPVEUgIlxuKCF4LiBmMCBhIHggXFwvICF5LiBmMCB4IHkpID09PiA/
eC4gIXkuIGYwIHggeSJdfSwKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0gKikKKCogRXhhbXBsZSBmcm9tIE1hbnRoZXkgYW5kIEJyeSwgQ0FE
RS05LiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQoo
KiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCgp7bmFtZSA9ICJQ
NTUiLAogZ29hbCA9IFsKCgoKCgoKCgpRVU9URSAiXG5saXZlcyBhZ2F0aGEg
L1xcIGxpdmVzIGJ1dGxlciAvXFwgbGl2ZXMgY2hhcmxlcyAvXFxcbihraWxs
ZWQgYWdhdGhhIGFnYXRoYSBcXC8ga2lsbGVkIGJ1dGxlciBhZ2F0aGEgXFwv
IGtpbGxlZCBjaGFybGVzIGFnYXRoYSkgL1xcXG4oIXggeS4ga2lsbGVkIHgg
eSA9PT4gaGF0ZXMgeCB5IC9cXCB+cmljaGVyIHggeSkgL1xcXG4oIXguIGhh
dGVzIGFnYXRoYSB4ID09PiB+aGF0ZXMgY2hhcmxlcyB4KSAvXFxcbihoYXRl
cyBhZ2F0aGEgYWdhdGhhIC9cXCBoYXRlcyBhZ2F0aGEgY2hhcmxlcykgL1xc
XG4oIXguIGxpdmVzIHggL1xcIH5yaWNoZXIgeCBhZ2F0aGEgPT0+IGhhdGVz
IGJ1dGxlciB4KSAvXFxcbigheC4gaGF0ZXMgYWdhdGhhIHggPT0+IGhhdGVz
IGJ1dGxlciB4KSAvXFxcbigheC4gfmhhdGVzIHggYWdhdGhhIFxcLyB+aGF0
ZXMgeCBidXRsZXIgXFwvIH5oYXRlcyB4IGNoYXJsZXMpID09Plxua2lsbGVk
IGFnYXRoYSBhZ2F0aGEgL1xcIH5raWxsZWQgYnV0bGVyIGFnYXRoYSAvXFwg
fmtpbGxlZCBjaGFybGVzIGFnYXRoYSJdfSwKCntuYW1lID0gIlA1NyIsCiBn
b2FsID0gWwoKUVVPVEUgIlxucCAoZiBhIGIpIChmIGIgYykgL1xcIHAgKGYg
YiBjKSAoZiBhIGMpIC9cXFxuKCF4IHkgei4gcCB4IHkgL1xcIHAgeSB6ID09
PiBwIHggeikgPT0+IHAgKGYgYSBiKSAoZiBhIGMpIl19LAoKKCogLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQooKiBTZWUgaW5mby1ob2wsIGNp
cmNhIDE1MDAuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0gKikKCntuYW1lID0gIlA1OCIsCiBnb2FsID0gWwpRVU9URSAiXG4heC4g
P3Ygdy4gIXkgei4gcCB4IC9cXCBxIHkgPT0+IChwIHYgXFwvIHIgdykgL1xc
IChyIHogPT0+IHEgdikiXX0sCgp7bmFtZSA9ICJQNTkiLAogZ29hbCA9IFsK
UVVPVEUgIlxuKCF4LiBwIHggPD0+IH5wIChmIHgpKSA9PT4gP3guIHAgeCAv
XFwgfnAgKGYgeCkiXX0sCgp7bmFtZSA9ICJQNjAiLAogZ29hbCA9IFsKUVVP
VEUgIlxuIXguIHAgeCAoZiB4KSA8PT4gP3kuICghei4gcCB6IHkgPT0+IHAg
eiAoZiB4KSkgL1xcIHAgeCB5Il19LAoKKCogLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLSAqKQooKiBGcm9tIEdpbG1vcmUncyBjbGFzc2ljIHBhcGVy
LiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKCigqCkpS
SDogQW1hemluZ2x5LCB0aGlzIHN0aWxsIHNlZW1zIG5vbi10cml2aWFsLi4u
IGluIEhPTCBpdCB3b3JrcyBhdCBkZXB0aCA0NSEKSm9lOiBDb25maXJtZWQg
KGRlcHRoPTQ1LCBpbmZlcmVuY2VzPTI2MzcwMiwgdGltZT0xNDhzKSwgdGhv
dWdoIGlmIGxlbW1haXppbmcKICAgICBpcyB1c2VkIHRoZW4gYSBsZW1tYSBp
cyBkaXNjb3ZlcmVkIGF0IGRlcHRoIDI5IHRoYXQgYWxsb3dzIGEgbXVjaCBx
dWlja2VyCiAgICAgcHJvb2YgKGRlcHRoPTMwLCBpbmZlcmVuY2VzPTEwMDM5
LCB0aW1lPTUuNXMpLiBbMTMgT2N0IDIwMDFdCiopCntuYW1lID0gIkdJTE1P
UkVfMSIsCiBnb2FsID0gWwoKClFVT1RFICJcbj94LiAheSB6LlxuICAoZiB5
ID09PiBnIHkgPD0+IGYgeCkgL1xcIChmIHkgPT0+IGggeSA8PT4gZyB4KSAv
XFxcbiAgKChmIHkgPT0+IGcgeSkgPT0+IGggeSA8PT4gaCB4KSA9PT4gZiB6
IC9cXCBnIHogL1xcIGggeiJdfSwKCigqCkpSSDogVGhpcyBpcyBub3QgdmFs
aWQsIGFjY29yZGluZyB0byBHaWxtb3JlCntuYW1lID0gIkdJTE1PUkVfMiIs
CiBnb2FsID0gYAo/eCB5LiAhei4KICAoZiB4IHogPD0+IGYgeiB5KSAvXCAo
ZiB6IHkgPD0+IGYgeiB6KSAvXCAoZiB4IHkgPD0+IGYgeSB4KSA9PT4KICAo
ZiB4IHkgPD0+IGYgeCB6KWB9LAoqKQoKe25hbWUgPSAiR0lMTU9SRV8zIiwK
IGdvYWwgPSBbCgoKUVVPVEUgIlxuP3guICF5IHouXG4gICgoZiB5IHogPT0+
IGcgeSA9PT4gaCB4KSA9PT4gZiB4IHgpIC9cXCAoKGYgeiB4ID09PiBnIHgp
ID09PiBoIHopIC9cXFxuICBmIHggeSA9PT4gZiB6IHoiXX0sCgp7bmFtZSA9
ICJHSUxNT1JFXzQiLAogZ29hbCA9IFsKUVVPVEUgIlxuP3ggeS4gIXouIChm
IHggeSA9PT4gZiB5IHogL1xcIGYgeiB6KSAvXFwgKGYgeCB5IC9cXCBnIHgg
eSA9PT4gZyB4IHogL1xcIGcgeiB6KSJdfSwKCntuYW1lID0gIkdJTE1PUkVf
NSIsCiBnb2FsID0gWwpRVU9URSAiXG4oIXguID95LiBmIHggeSBcXC8gZiB5
IHgpIC9cXCAoIXggeS4gZiB5IHggPT0+IGYgeSB5KSA9PT4gP3ouIGYgeiB6
Il19LAoKe25hbWUgPSAiR0lMTU9SRV82IiwKIGdvYWwgPSBbCgoKClFVT1RF
ICJcbiF4LiA/eS5cbiAgKD93LiAhdi4gZiB3IHggPT0+IGcgdiB3IC9cXCBn
IHcgeCkgPT0+XG4gICg/dy4gIXYuIGYgdyB5ID09PiBnIHYgdyAvXFwgZyB3
IHkpIFxcL1xuICAheiB2LiA/dy4gZyB2IHogXFwvIGggdyB5IHogPT0+IGcg
eiB3Il19LAoKe25hbWUgPSAiR0lMTU9SRV83IiwKIGdvYWwgPSBbCgpRVU9U
RSAiXG4oIXguIGsgeCA9PT4gP3kuIGwgeSAvXFwgKGYgeCB5ID09PiBnIHgg
eSkpIC9cXFxuKD96LiBrIHogL1xcICF3LiBsIHcgPT0+IGYgeiB3KSA9PT4g
P3Ygdy4gayB2IC9cXCBsIHcgL1xcIGcgdiB3Il19LAoKe25hbWUgPSAiR0lM
TU9SRV84IiwKIGdvYWwgPSBbCgoKUVVPVEUgIlxuP3guICF5IHouXG4gICgo
ZiB5IHogPT0+IGcgeSA9PT4gIXcuID92LiBoIHcgdiB4KSA9PT4gZiB4IHgp
IC9cXFxuICAoKGYgeiB4ID09PiBnIHgpID09PiAhdy4gP3YuIGggdyB2IHop
IC9cXCBmIHggeSA9PT4gZiB6IHoiXX0sCgooKgpKUkg6IFRoaXMgaXMgc3Rp
bGwgYSB2ZXJ5IGhhcmQgZ29hbApKb2U6IFdpdGggbGVtbWFpemluZyAoaW4g
SE9MKTogKGRlcHRoPTE4LCBpbmZlcmVuY2VzPTE1NjMyLCB0aW1lPTIxcykK
ICAgICBXaXRob3V0OiBnYXZlIHVwIHdhaXRpbmcgYWZ0ZXIgKGRlcHRoPTI1
LCBpbmZlcmVuY2VzPTIxMjUwNzIsIHRpbWU9MzAwMHMpCiAgICAgWzEzIE9j
dCAyMDAxXQoqKQp7bmFtZSA9ICJHSUxNT1JFXzkiLAogZ29hbCA9IFsKCgoK
CgoKClFVT1RFICJcbiF4LiA/eS4gIXouXG4gICgoIXcuID92LiBmIHkgdyB2
IC9cXCBnIHkgdyAvXFwgfmggeSB4KSA9PT5cbiAgICghdy4gP3YuIGYgeCB3
IHYgL1xcIGcgeiB1IC9cXCB+aCB4IHopID09PlxuICAgIXcuID92LiBmIHgg
dyB2IC9cXCBnIHkgdyAvXFwgfmggeCB5KSAvXFxcbiAgKCghdy4gP3YuIGYg
eCB3IHYgL1xcIGcgeSB3IC9cXCB+aCB4IHkpID09PlxuICAgfighdy4gP3Yu
IGYgeCB3IHYgL1xcIGcgeiB3IC9cXCB+aCB4IHopID09PlxuICAgKCF3LiA/
di4gZiB5IHcgdiAvXFwgZyB5IHcgL1xcIH5oIHkgeCkgL1xcXG4gICAhdy4g
P3YuIGYgeiB3IHYgL1xcIGcgeSB3IC9cXCB+aCB6IHkpIl19LAoKKCogLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQooKiBUcmFuc2xhdGlvbiBv
ZiBHaWxtb3JlIHByb2NlZHVyZSB1c2luZyBzZXBhcmF0ZSBkZWZpbml0aW9u
cy4gICAgICAgICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0gKikKCntuYW1lID0gIkdJTE1PUkVfOWEiLAogZ29hbCA9IFsKCgpR
VU9URSAiXG4oIXggeS4gcCB4IHkgPD0+ICF3LiA/di4gZiB4IHcgdiAvXFwg
ZyB5IHcgL1xcIH5oIHggeSkgPT0+XG4heC4gP3kuICF6LlxuICAocCB5IHgg
PT0+IHAgeCB6ID09PiBwIHggeSkgL1xcIChwIHggeSA9PT4gfnAgeCB6ID09
PiBwIHkgeCAvXFwgcCB6IHkpIl19LAoKKCogLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLSAqKQooKiBFeGFtcGxlIGZyb20gRGF2aXMtUHV0bmFtIHBh
cGVycyB3aGVyZSBHaWxtb3JlIHByb2NlZHVyZSBpcyBwb29yLiAgICAgICAg
ICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKCntuYW1l
ID0gIkRBVklTX1BVVE5BTV9FWEFNUExFIiwKIGdvYWwgPSBbClFVT1RFICJc
bj94IHkuICF6LiAoZiB4IHkgPT0+IGYgeSB6IC9cXCBmIHogeikgL1xcIChm
IHggeSAvXFwgZyB4IHkgPT0+IGcgeCB6IC9cXCBnIHogeikiXX0sCgooKiAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigqIFRoZSBpbnRlcmVz
dGluZyBleGFtcGxlIHdoZXJlIGNvbm5lY3Rpb25zIG1ha2UgdGhlIHByb29m
IGxvbmdlci4gICAgICAgICAgKikKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLSAqKQoKe25hbWUgPSAiQkFEX0NPTk5FQ1RJT05TIiwKIGdvYWwg
PSBbCgpRVU9URSAiXG5+YSAvXFwgKGEgXFwvIGIpIC9cXCAoYyBcXC8gZCkg
L1xcICh+YiBcXC8gZSBcXC8gZikgL1xcICh+YyBcXC8gfmUpIC9cXCAofmMg
XFwvIH5mKSAvXFxcbih+YiBcXC8gZyBcXC8gaCkgL1xcICh+ZCBcXC8gfmcp
IC9cXCAofmQgXFwvIH5oKSA9PT4gRiJdfSwKCigqIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0gKikKKCogVGhlIGNsYXNzaWMgTG9zIHB1enpsZS4g
KENsYXVzYWwgdmVyc2lvbiBNU0MwMDYtMSBpbiB0aGUgVFBUUCBsaWJyYXJ5
LikgICAqKQooKiBOb3RlOiB0aGlzIGlzIGFjdHVhbGx5IGluIHRoZSBkZWNp
ZGFibGUgIkFFIiBzdWJzZXQsICB0aG91Z2ggdGhhdCBkb2Vzbid0ICopCigq
IHlpZWxkIGEgdmVyeSBlZmZpY2llbnQgcHJvb2YuICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKikKKCogLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoKe25hbWUgPSAiTE9TIiwKIGdvYWwg
PSBbCgoKUVVPVEUgIlxuKCF4IHkgei4gcCB4IHkgPT0+IHAgeSB6ID09PiBw
IHggeikgL1xcXG4oIXggeSB6LiBxIHggeSA9PT4gcSB5IHogPT0+IHEgeCB6
KSAvXFwgKCF4IHkuIHEgeCB5ID09PiBxIHkgeCkgL1xcXG4oIXggeS4gcCB4
IHkgXFwvIHEgeCB5KSA9PT4gKCF4IHkuIHAgeCB5KSBcXC8gIXggeS4gcSB4
IHkiXX0sCgooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigq
IFRoZSBzdGVhbXJvbGxlci4gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKikKKCogLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoKe25hbWUgPSAiU1RFQU1fUk9MTEVS
IiwKIGdvYWwgPSBbCgoKCgoKCgoKCgoKClFVT1RFICJcbigoIXguIHAxIHgg
PT0+IHAwIHgpIC9cXCA/eC4gcDEgeCkgL1xcICgoIXguIHAyIHggPT0+IHAw
IHgpIC9cXCA/eC4gcDIgeCkgL1xcXG4oKCF4LiBwMyB4ID09PiBwMCB4KSAv
XFwgP3guIHAzIHgpIC9cXCAoKCF4LiBwNCB4ID09PiBwMCB4KSAvXFwgP3gu
IHA0IHgpIC9cXFxuKCgheC4gcDUgeCA9PT4gcDAgeCkgL1xcID94LiBwNSB4
KSAvXFwgKCg/eC4gcTEgeCkgL1xcICF4LiBxMSB4ID09PiBxMCB4KSAvXFxc
bigheC5cbiAgIHAwIHggPT0+XG4gICAoIXkuIHEwIHkgPT0+IHIgeCB5KSBc
XC9cbiAgICF5LiBwMCB5IC9cXCBzMCB5IHggL1xcICg/ei4gcTAgeiAvXFwg
ciB5IHopID09PiByIHggeSkgL1xcXG4oIXggeS4gcDMgeSAvXFwgKHA1IHgg
XFwvIHA0IHgpID09PiBzMCB4IHkpIC9cXFxuKCF4IHkuIHAzIHggL1xcIHAy
IHkgPT0+IHMwIHggeSkgL1xcICgheCB5LiBwMiB4IC9cXCBwMSB5ID09PiBz
MCB4IHkpIC9cXFxuKCF4IHkuIHAxIHggL1xcIChwMiB5IFxcLyBxMSB5KSA9
PT4gfnIgeCB5KSAvXFxcbigheCB5LiBwMyB4IC9cXCBwNCB5ID09PiByIHgg
eSkgL1xcICgheCB5LiBwMyB4IC9cXCBwNSB5ID09PiB+ciB4IHkpIC9cXFxu
KCF4LiBwNCB4IFxcLyBwNSB4ID09PiA/eS4gcTAgeSAvXFwgciB4IHkpID09
PlxuP3ggeS4gcDAgeCAvXFwgcDAgeSAvXFwgP3ouIHExIHogL1xcIHIgeSB6
IC9cXCByIHggeSJdfSwKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0gKikKKCogQW4gaW5jZXN0dW91cyBleGFtcGxlIHVzZWQgdG8gZXN0YWJs
aXNoIGNvbXBsZXRlbmVzcyBjaGFyYWN0ZXJpemF0aW9uLiAgICAqKQooKiAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCgp7bmFtZSA9ICJNT0RF
TF9DT01QTEVURU5FU1MiLAogZ29hbCA9IFsKCgoKCgoKCgpRVU9URSAiXG4o
IXcgeC4gc2VudGVuY2UgeCA9PT4gaG9sZHMgdyB4IFxcLyBob2xkcyB3IChu
b3QgeCkpIC9cXFxuKCF3IHguIH4oaG9sZHMgdyB4IC9cXCBob2xkcyB3IChu
b3QgeCkpKSA9PT5cbigoIXguXG4gICAgc2VudGVuY2UgeCA9PT5cbiAgICAo
IXcuIG1vZGVscyB3IHMgPT0+IGhvbGRzIHcgeCkgXFwvXG4gICAgIXcuIG1v
ZGVscyB3IHMgPT0+IGhvbGRzIHcgKG5vdCB4KSkgPD0+XG4gIXcgdi5cbiAg
IG1vZGVscyB3IHMgL1xcIG1vZGVscyB2IHMgPT0+XG4gICAheC4gc2VudGVu
Y2UgeCA9PT4gKGhvbGRzIHcgeCA8PT4gaG9sZHMgdiB4KSkiXX0KCl07Cgoo
KiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICopCigqIFByb2JsZW1z
IHdpdGggZXF1YWxpdHkuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKikKKCogPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PSAqKQoKdmFsIGVxdWFsaXR5ID0gWwogCigqIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCogVHJpdmlhIChzb21lIG9mIHdo
aWNoIGRlbW9uc3RyYXRlIGV4LWJ1Z3MgaW4gdGhlIHByb3ZlcikuICAgICAg
ICAgICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
ICopCgp7bmFtZSA9ICJSRUZMRVhJVklUWSIsCiBnb2FsID0gWwpRVU9URSAi
XG5jID0gYyJdfSwKCntuYW1lID0gIlNZTU1FVFJZIiwKIGdvYWwgPSBbClFV
T1RFICJcbiF4IHkuIHggPSB5ID09PiB5ID0geCJdfSwKCntuYW1lID0gIlRS
QU5TSVRJVklUWSIsCiBnb2FsID0gWwpRVU9URSAiXG4heCB5IHouIHggPSB5
IC9cXCB5ID0geiA9PT4geCA9IHoiXX0sCgp7bmFtZSA9ICJUUkFOU19TWU1N
IiwKIGdvYWwgPSBbClFVT1RFICJcbiF4IHkgei4geCA9IHkgL1xcIHkgPSB6
ID09PiB6ID0geCJdfSwKCntuYW1lID0gIlNVQlNUSVRVVElWSVRZIiwKIGdv
YWwgPSBbClFVT1RFICJcbiF4IHkuIGYgeCAvXFwgeCA9IHkgPT0+IGYgeSJd
fSwKCntuYW1lID0gIkNZQ0xJQ19TVUJTVElUVVRJT05fQlVHIiwKIGdvYWwg
PSBbClFVT1RFICJcbigheC4geSA9IGcgKGMgeCkpID09PiA/ei4geSA9IGcg
eiJdfSwKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCog
U2ltcGxlIGVxdWFsaXR5IHByb2JsZW1zLiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tICopCgp7bmFtZSA9ICJQNDgiLAogZ29hbCA9
IFsKUVVPVEUgIlxuKGEgPSBiIFxcLyBjID0gZCkgL1xcIChhID0gYyBcXC8g
YiA9IGQpID09PiBhID0gZCBcXC8gYiA9IGMiXX0sCgp7bmFtZSA9ICJQNDki
LAogZ29hbCA9IFsKUVVPVEUgIlxuKD94IHkuICF6LiB6ID0geCBcXC8geiA9
IHkpIC9cXCBwIGEgL1xcIHAgYiAvXFwgfihhID0gYikgPT0+ICF4LiBwIHgi
XX0sCgp7bmFtZSA9ICJQNTEiLAogZ29hbCA9IFsKClFVT1RFICJcbig/eiB3
LiAheCB5LiBmMCB4IHkgPD0+IHggPSB6IC9cXCB5ID0gdykgPT0+XG4/ei4g
IXguICg/dy4gIXkuIGYwIHggeSA8PT4geSA9IHcpIDw9PiB4ID0geiJdfSwK
CntuYW1lID0gIlA1MiIsCiBnb2FsID0gWwoKUVVPVEUgIlxuKD96IHcuICF4
IHkuIGYwIHggeSA8PT4geCA9IHogL1xcIHkgPSB3KSA9PT5cbj93LiAheS4g
KD96LiAheC4gZjAgeCB5IDw9PiB4ID0geikgPD0+IHkgPSB3Il19LAoKKCog
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQooKiBUaGUgTWVsaGFt
IHByb2JsZW0gYWZ0ZXIgYW4gaW52ZXJzZSBza29sZW1pemF0aW9uIHN0ZXAu
ICAgICAgICAgICAgICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0gKikKCntuYW1lID0gIlVOU0tPTEVNSVpFRF9NRUxIQU0iLAog
Z29hbCA9IFsKUVVPVEUgIlxuKCF4IHkuIGcgeCA9IGcgeSA9PT4gZiB4ID0g
ZiB5KSA9PT4gIXkuID93LiAheC4geSA9IGcgeCA9PT4gdyA9IGYgeCJdfSwK
IAooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigqIFRoZSBl
eGFtcGxlIGFsd2F5cyBnaXZlbiBmb3IgY29uZ3J1ZW5jZSBjbG9zdXJlLiAg
ICAgICAgICAgICAgICAgICAgICAgICAgKikKKCogLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLSAqKQoKe25hbWUgPSAiQ09OR1JVRU5DRV9DTE9TVVJF
X0VYQU1QTEUiLAogZ29hbCA9IFsKUVVPVEUgIlxuIXguIGYgKGYgKGYgKGYg
KGYgeCkpKSkgPSB4IC9cXCBmIChmIChmIHgpKSA9IHggPT0+IGYgeCA9IHgi
XX0sCgooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigqIEEg
c2ltcGxlIGV4YW1wbGUgKHNlZSBFV0QxMjY2YSBhbmQgdGhlIGFwcGxpY2F0
aW9uIHRvIE1vcmxleSdzIHRoZW9yZW0pLiAgKikKKCogLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSAqKQoKe25hbWUgPSAiRVdEIiwKIGdvYWwgPSBb
CgpRVU9URSAiXG4oIXguIGYgeCA9PT4gZyB4KSAvXFwgKD94LiBmIHgpIC9c
XCAoIXggeS4gZyB4IC9cXCBnIHkgPT0+IHggPSB5KSA9PT5cbiF5LiBnIHkg
PT0+IGYgeSJdfSwKCntuYW1lID0gIkVXRCciLAogZ29hbCA9IFsKUVVPVEUg
IlxuKCF4LiBmIChmIHgpID0gZiB4KSAvXFwgKCF4LiA/eS4gZiB5ID0geCkg
PT0+ICF4LiBmIHggPSB4Il19LAoKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLSAqKQooKiBXaXNobnUgUHJhc2V0eWEncyBleGFtcGxlLiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICop
CigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKCntuYW1lID0g
IldJU0hOVSIsCiBnb2FsID0gWwoKUVVPVEUgIlxuKD94LiB4ID0gZiAoZyB4
KSAvXFwgIXgnLiB4JyA9IGYgKGcgeCcpID09PiB4ID0geCcpIDw9PlxuP3ku
IHkgPSBnIChmIHkpIC9cXCAheScuIHknID0gZyAoZiB5JykgPT0+IHkgPSB5
JyJdfSwKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCog
QW4gZXF1YWxpdHkgdmVyc2lvbiBvZiB0aGUgQWdhdGhhIHB1enpsZS4gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tICopCgp7bmFtZSA9ICJBR0FUSEEiLAogZ29h
bCA9IFsKCgoKCgoKCgoKUVVPVEUgIlxuKD94LiBsaXZlcyB4IC9cXCBraWxs
ZWQgeCBhZ2F0aGEpIC9cXFxuKGxpdmVzIGFnYXRoYSAvXFwgbGl2ZXMgYnV0
bGVyIC9cXCBsaXZlcyBjaGFybGVzKSAvXFxcbigheC4gbGl2ZXMgeCA9PT4g
eCA9IGFnYXRoYSBcXC8geCA9IGJ1dGxlciBcXC8geCA9IGNoYXJsZXMpIC9c
XFxuKCF4IHkuIGtpbGxlZCB4IHkgPT0+IGhhdGVzIHggeSkgL1xcICgheCB5
LiBraWxsZWQgeCB5ID09PiB+cmljaGVyIHggeSkgL1xcXG4oIXguIGhhdGVz
IGFnYXRoYSB4ID09PiB+aGF0ZXMgY2hhcmxlcyB4KSAvXFxcbigheC4gfih4
ID0gYnV0bGVyKSA9PT4gaGF0ZXMgYWdhdGhhIHgpIC9cXFxuKCF4LiB+cmlj
aGVyIHggYWdhdGhhID09PiBoYXRlcyBidXRsZXIgeCkgL1xcXG4oIXguIGhh
dGVzIGFnYXRoYSB4ID09PiBoYXRlcyBidXRsZXIgeCkgL1xcICgheC4gP3ku
IH5oYXRlcyB4IHkpIC9cXFxufihhZ2F0aGEgPSBidXRsZXIpID09Plxua2ls
bGVkIGFnYXRoYSBhZ2F0aGEgL1xcIH5raWxsZWQgYnV0bGVyIGFnYXRoYSAv
XFwgfmtpbGxlZCBjaGFybGVzIGFnYXRoYSJdfSwKCigqIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0gKikKKCogR3JvdXAgdGhlb3J5IGV4YW1wbGVz
LiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICop
CgooKiBKUkg6IChTaXplIDE4LCA2MTgxNCBzZWNvbmRzLikgKikKe25hbWUg
PSAiR1JPVVBfUklHSFRfSU5WRVJTRSIsCiBnb2FsID0gWwoKUVVPVEUgIlxu
KCF4IHkgei4geCAqICh5ICogeikgPSB4ICogeSAqIHopIC9cXCAoIXguIGUg
KiB4ID0geCkgL1xcXG4oIXguIGkgeCAqIHggPSBlKSA9PT4gIXguIHggKiBp
IHggPSBlIl19LAoKe25hbWUgPSAiR1JPVVBfUklHSFRfSURFTlRJVFkiLAog
Z29hbCA9IFsKClFVT1RFICJcbigheCB5IHouIHggKiAoeSAqIHopID0geCAq
IHkgKiB6KSAvXFwgKCF4LiBlICogeCA9IHgpIC9cXFxuKCF4LiBpIHggKiB4
ID0gZSkgPT0+ICF4LiB4ICogZSA9IHgiXX0sCgp7bmFtZSA9ICJLTEVJTl9H
Uk9VUF9DT01NVVRBVElWRSIsCiBnb2FsID0gWwoKUVVPVEUgIlxuKCF4IHkg
ei4geCAqICh5ICogeikgPSB4ICogeSAqIHopIC9cXCAoIXguIGUgKiB4ID0g
eCkgL1xcICgheC4geCAqIGUgPSB4KSAvXFxcbigheC4geCAqIHggPSBlKSA9
PT4gIXggeS4geCAqIHkgPSB5ICogeCJdfQoKXTsKCigqID09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0gKikKKCogU29tZSBzYW1wbGUgcHJvYmxlbXMg
ZnJvbSB0aGUgVFBUUCBhcmNoaXZlLiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAqKQooKiBOb3RlOiBmb3IgYnJldml0eSBzb21lIHJlbGF0aW9u
L2Z1bmN0aW9uIG5hbWVzIGhhdmUgYmVlbiBzaG9ydGVuZWQuICAgICAgICop
CigqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKikKCnZhbCB0cHRw
ID0gWwoKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQooKiBU
UFRQIHByb2JsZW1zIHRoYXQgaGF2ZSBkZW1vbnN0cmF0ZWQgYnVncyBpbiB0
aGUgcHJvdmVyLiAgICAgICAgICAgICAgICAgICopCigqIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0gKikKCigqIFNvbHZlZCB0cml2aWFsbHkgYnkg
bWVzb24gd2l0aG91dCBjYWNoZSBjdXR0aW5nLCBidXQgbm90IHdpdGguICop
CntuYW1lID0gIlBVWjAxMS0xIiwKIGdvYWwgPSBbCgoKCgoKCgoKCgoKUVVP
VEUgIlxub2NlYW4gYXRsYW50aWMgL1xcIG9jZWFuIGluZGlhbiAvXFwgYm9y
ZGVycyBhdGxhbnRpYyBicmF6aWwgL1xcXG5ib3JkZXJzIGF0bGFudGljIHVy
dWd1YXkgL1xcIGJvcmRlcnMgYXRsYW50aWMgY192ZW5lc3VlbGEgL1xcXG5i
b3JkZXJzIGF0bGFudGljIGNfemFpcmUgL1xcIGJvcmRlcnMgYXRsYW50aWMg
bmlnZXJpYSAvXFxcbmJvcmRlcnMgYXRsYW50aWMgYW5nb2xhIC9cXCBib3Jk
ZXJzIGluZGlhbiBpbmRpYSAvXFxcbmJvcmRlcnMgaW5kaWFuIHBha2lzdGFu
IC9cXCBib3JkZXJzIGluZGlhbiBpcmFuIC9cXCBib3JkZXJzIGluZGlhbiBz
b21hbGlhIC9cXFxuYm9yZGVycyBpbmRpYW4ga2VueWEgL1xcIGJvcmRlcnMg
aW5kaWFuIHRhbnphbmlhIC9cXCBzb3V0aF9hbWVyaWNhbiBicmF6aWwgL1xc
XG5zb3V0aF9hbWVyaWNhbiB1cnVndWF5IC9cXCBzb3V0aF9hbWVyaWNhbiBj
X3ZlbmVzdWVsYSAvXFwgYWZyaWNhbiBjX3phaXJlIC9cXFxuYWZyaWNhbiBu
aWdlcmlhIC9cXCBhZnJpY2FuIGFuZ29sYSAvXFwgYWZyaWNhbiBzb21hbGlh
IC9cXCBhZnJpY2FuIGtlbnlhIC9cXFxuYWZyaWNhbiB0YW56YW5pYSAvXFwg
YXNpYW4gaW5kaWEgL1xcIGFzaWFuIHBha2lzdGFuIC9cXCBhc2lhbiBpcmFu
ID09PlxuKCF4IHkgei5cbiAgIH5vY2VhbiB4IFxcLyB+Ym9yZGVycyB4IHkg
XFwvIH5hZnJpY2FuIHkgXFwvIH5ib3JkZXJzIHggeiBcXC8gfmFzaWFuIHop
ID09PlxuRiJdfSwKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0g
KikKKCogUHJvYmxlbXMgdXNlZCBieSB0aGUgZm9sIHVuaXQgdGVzdCB0byBl
eGVyY2lzZSB0aGUgVFBUUCBwYXJzZXIuICAgICAgICAgICAqKQooKiAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCiAKe25hbWUgPSAiUFVaMDAx
LTEiLAogZ29hbCA9IFsKCgoKCgoKCgpRVU9URSAiXG5saXZlcyBhZ2F0aGEg
L1xcIGxpdmVzIGJ1dGxlciAvXFwgbGl2ZXMgY2hhcmxlcyAvXFxcbigheCB5
LiB+a2lsbGVkIHggeSBcXC8gfnJpY2hlciB4IHkpIC9cXFxuKCF4LiB+aGF0
ZXMgYWdhdGhhIHggXFwvIH5oYXRlcyBjaGFybGVzIHgpIC9cXFxuKCF4LiB+
aGF0ZXMgeCBhZ2F0aGEgXFwvIH5oYXRlcyB4IGJ1dGxlciBcXC8gfmhhdGVz
IHggY2hhcmxlcykgL1xcXG5oYXRlcyBhZ2F0aGEgYWdhdGhhIC9cXCBoYXRl
cyBhZ2F0aGEgY2hhcmxlcyAvXFxcbigheCB5LiB+a2lsbGVkIHggeSBcXC8g
aGF0ZXMgeCB5KSAvXFxcbigheC4gfmhhdGVzIGFnYXRoYSB4IFxcLyBoYXRl
cyBidXRsZXIgeCkgL1xcXG4oIXguIH5saXZlcyB4IFxcLyByaWNoZXIgeCBh
Z2F0aGEgXFwvIGhhdGVzIGJ1dGxlciB4KSA9PT5cbmtpbGxlZCBidXRsZXIg
YWdhdGhhIFxcLyBraWxsZWQgY2hhcmxlcyBhZ2F0aGEgPT0+IEYiXX0sCgp7
bmFtZSA9ICJQVVowMjAtMSIsCiBnb2FsID0gWwoKCgoKCgoKCgoKCgoKCgoK
CgoKCgoKCgpRVU9URSAiXG4oIXguIHggPSB4KSAvXFwgKCF4IHkuIH4oeCA9
IHkpIFxcLyB5ID0geCkgL1xcXG4oIXggeSB6LiB+KHggPSB5KSBcXC8gfih5
ID0geikgXFwvIHggPSB6KSAvXFxcbigheCB5LiB+KHggPSB5KSBcXC8gc3Rh
dGVtZW50X2J5IHggPSBzdGF0ZW1lbnRfYnkgeSkgL1xcXG4oIXguIH5wZXJz
b24geCBcXC8ga25pZ2h0IHggXFwvIGtuYXZlIHgpIC9cXFxuKCF4LiB+cGVy
c29uIHggXFwvIH5rbmlnaHQgeCBcXC8gfmtuYXZlIHgpIC9cXFxuKCF4IHku
IH5zYXlzIHggeSBcXC8gYV90cnV0aCB5IFxcLyB+YV90cnV0aCB5KSAvXFxc
bigheCB5LiB+c2F5cyB4IHkgXFwvIH4oeCA9IHkpKSAvXFwgKCF4IHkuIH5z
YXlzIHggeSBcXC8geSA9IHN0YXRlbWVudF9ieSB4KSAvXFxcbigheCB5LiB+
cGVyc29uIHggXFwvIH4oeCA9IHN0YXRlbWVudF9ieSB5KSkgL1xcXG4oIXgu
IH5wZXJzb24geCBcXC8gfmFfdHJ1dGggKHN0YXRlbWVudF9ieSB4KSBcXC8g
a25pZ2h0IHgpIC9cXFxuKCF4LiB+cGVyc29uIHggXFwvIGFfdHJ1dGggKHN0
YXRlbWVudF9ieSB4KSBcXC8ga25hdmUgeCkgL1xcXG4oIXggeS4gfih4ID0g
eSkgXFwvIH5rbmlnaHQgeCBcXC8ga25pZ2h0IHkpIC9cXFxuKCF4IHkuIH4o
eCA9IHkpIFxcLyB+a25hdmUgeCBcXC8ga25hdmUgeSkgL1xcXG4oIXggeS4g
fih4ID0geSkgXFwvIH5wZXJzb24geCBcXC8gcGVyc29uIHkpIC9cXFxuKCF4
IHkgei4gfih4ID0geSkgXFwvIH5zYXlzIHggeiBcXC8gc2F5cyB5IHopIC9c
XFxuKCF4IHkgei4gfih4ID0geSkgXFwvIH5zYXlzIHogeCBcXC8gc2F5cyB6
IHkpIC9cXFxuKCF4IHkuIH4oeCA9IHkpIFxcLyB+YV90cnV0aCB4IFxcLyBh
X3RydXRoIHkpIC9cXFxuKCF4IHkuIH5rbmlnaHQgeCBcXC8gfnNheXMgeCB5
IFxcLyBhX3RydXRoIHkpIC9cXFxuKCF4IHkuIH5rbmF2ZSB4IFxcLyB+c2F5
cyB4IHkgXFwvIH5hX3RydXRoIHkpIC9cXCBwZXJzb24gaHVzYmFuZCAvXFxc
bnBlcnNvbiBjX3dpZmUgL1xcIH4oaHVzYmFuZCA9IGNfd2lmZSkgL1xcXG5z
YXlzIGh1c2JhbmQgKHN0YXRlbWVudF9ieSBodXNiYW5kKSAvXFxcbih+YV90
cnV0aCAoc3RhdGVtZW50X2J5IGh1c2JhbmQpIFxcLyB+a25pZ2h0IGh1c2Jh
bmQgXFwvIGtuaWdodCBjX3dpZmUpIC9cXFxuKGFfdHJ1dGggKHN0YXRlbWVu
dF9ieSBodXNiYW5kKSBcXC8gfmtuaWdodCBodXNiYW5kKSAvXFxcbihhX3Ry
dXRoIChzdGF0ZW1lbnRfYnkgaHVzYmFuZCkgXFwvIGtuaWdodCBjX3dpZmUp
IC9cXFxuKH5rbmlnaHQgY193aWZlIFxcLyBhX3RydXRoIChzdGF0ZW1lbnRf
YnkgaHVzYmFuZCkpID09PiB+a25pZ2h0IGh1c2JhbmQgPT0+XG5GIl19LAoK
e25hbWUgPSAiTlVNMDAxLTEiLAogZ29hbCA9IFsKCgoKCgoKCgpRVU9URSAi
XG4oIXguIHggPT0geCkgL1xcICgheCB5IHouIH4oeCA9PSB5KSBcXC8gfih5
ID09IHopIFxcLyB4ID09IHopIC9cXFxuKCF4IHkuIHggKyB5ID09IHkgKyB4
KSAvXFwgKCF4IHkgei4geCArICh5ICsgeikgPT0geCArIHkgKyB6KSAvXFxc
bigheCB5LiB4ICsgeSAtIHkgPT0geCkgL1xcICgheCB5LiB4ID09IHggKyB5
IC0geSkgL1xcXG4oIXggeSB6LiB4IC0geSArIHogPT0geCArIHogLSB5KSAv
XFwgKCF4IHkgei4geCArIHkgLSB6ID09IHggLSB6ICsgeSkgL1xcXG4oIXgg
eSB6IHYuIH4oeCA9PSB5KSBcXC8gfih6ID09IHggKyB2KSBcXC8geiA9PSB5
ICsgdikgL1xcXG4oIXggeSB6IHYuIH4oeCA9PSB5KSBcXC8gfih6ID09IHYg
KyB4KSBcXC8geiA9PSB2ICsgeSkgL1xcXG4oIXggeSB6IHYuIH4oeCA9PSB5
KSBcXC8gfih6ID09IHggLSB2KSBcXC8geiA9PSB5IC0gdikgL1xcXG4oIXgg
eSB6IHYuIH4oeCA9PSB5KSBcXC8gfih6ID09IHYgLSB4KSBcXC8geiA9PSB2
IC0geSkgPT0+XG5+KGEgKyBiICsgYyA9PSBhICsgKGIgKyBjKSkgPT0+IEYi
XX0sCgp7bmFtZSA9ICJBTEcwMDUtMSIsCiBnb2FsID0gWwoKCgoKCgoKClFV
T1RFICJcbigheC4geCA9IHgpIC9cXCAoIXggeS4gfih4ID0geSkgXFwvIHkg
PSB4KSAvXFxcbigheCB5IHouIH4oeCA9IHkpIFxcLyB+KHkgPSB6KSBcXC8g
eCA9IHopIC9cXFxuKCF4IHkgei4gfih4ID0geSkgXFwvIHggKyB6ID0geSAr
IHopIC9cXFxuKCF4IHkgei4gfih4ID0geSkgXFwvIHogKyB4ID0geiArIHkp
IC9cXFxuKCF4IHkgei4gfih4ID0geSkgXFwvIHggKiB6ID0geSAqIHopIC9c
XFxuKCF4IHkgei4gfih4ID0geSkgXFwvIHogKiB4ID0geiAqIHkpIC9cXCAo
IXggeS4geCArICh5ICsgeCkgPSB4KSAvXFxcbigheCB5LiB4ICsgKHggKyB5
KSA9IHkgKyAoeSArIHgpKSAvXFxcbigheCB5IHouIHggKyB5ICsgeiA9IHgg
KyB6ICsgKHkgKyB6KSkgL1xcICgheCB5LiB4ICogeSA9IHggKyAoeCArIHkp
KSA9PT5cbn4oYSAqIGIgKiBjID0gYSAqIChiICogYykpID09PiBGIl19LAoK
e25hbWUgPSAiR1JQMDU3LTEiLAogZ29hbCA9IFsKCgoKCgoKUVVPVEUgIlxu
KCF4LiB4ID0geCkgL1xcICgheCB5LiB+KHggPSB5KSBcXC8geSA9IHgpIC9c
XFxuKCF4IHkgei4gfih4ID0geSkgXFwvIH4oeSA9IHopIFxcLyB4ID0geikg
L1xcXG4oIXggeSB6IHYuIHggKiBpIChpIChpIHkgKiAoaSB4ICogeikpICog
diAqIGkgKHkgKiB2KSkgPSB6KSAvXFxcbigheCB5LiB+KHggPSB5KSBcXC8g
aSB4ID0gaSB5KSAvXFwgKCF4IHkgei4gfih4ID0geSkgXFwvIHggKiB6ID0g
eSAqIHopIC9cXFxuKCF4IHkgei4gfih4ID0geSkgXFwvIHogKiB4ID0geiAq
IHkpID09PlxufihpIGExICogYTEgPSBpIGIxICogYjEpIFxcLyB+KGkgYjIg
KiBiMiAqIGEyID0gYTIpIFxcL1xufihhMyAqIGIzICogYzMgPSBhMyAqIChi
MyAqIGMzKSkgPT0+IEYiXX0sCgp7bmFtZSA9ICJMQ0wwMDktMSIsCiBnb2Fs
ID0gWwoKClFVT1RFICJcbigheCB5LiB+cCAoeCAtIHkpIFxcLyB+cCB4IFxc
LyBwIHkpIC9cXFxuKCF4IHkgei4gcCAoeCAtIHkgLSAoeiAtIHkgLSAoeCAt
IHopKSkpID09PlxufnAgKGEgLSBiIC0gYyAtIChhIC0gKGIgLSBjKSkpID09
PiBGIl19LAoKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoo
KiBTbWFsbCBwcm9ibGVtcyB0aGF0IGFyZSB0cmlja3kgdG8gcHJvdmUuICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigqIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKCntuYW1lID0gIkNPTDA2MC0zIiwK
IGdvYWwgPSBbCgoKCgoKUVVPVEUgIlxuKCF4LiB4ID0geCkgL1xcICgheCB5
LiB+KHggPSB5KSBcXC8geSA9IHgpIC9cXFxuKCF4IHkgei4gfih4ID0geSkg
XFwvIH4oeSA9IHopIFxcLyB4ID0geikgL1xcXG4oIXggeSB6LiBiICUgeCAl
IHkgJSB6ID0geCAlICh5ICUgeikpIC9cXCAoIXggeS4gdCAlIHggJSB5ID0g
eSAlIHgpIC9cXFxuKCF4IHkgei4gfih4ID0geSkgXFwvIHggJSB6ID0geSAl
IHopIC9cXFxuKCF4IHkgei4gfih4ID0geSkgXFwvIHogJSB4ID0geiAlIHkp
ID09PlxufihiICUgKGIgJSAodCAlIGIpICUgYikgJSB0ICUgY194ICUgY195
ICUgY196ID0gY195ICUgKGNfeCAlIGNfeikpID09PiBGIl19LAoKe25hbWUg
PSAiQ09MMDU4LTIiLAogZ29hbCA9IFsKCgoKCgoKUVVPVEUgIlxuKCF4LiB4
ID0geCkgL1xcICgheCB5LiB+KHggPSB5KSBcXC8geSA9IHgpIC9cXFxuKCF4
IHkgei4gfih4ID0geSkgXFwvIH4oeSA9IHopIFxcLyB4ID0geikgL1xcXG4o
IXggeS4gciAociAwIHgpIHkgPSByIHggKHIgeSB5KSkgL1xcICgheCB5IHou
IH4oeCA9IHkpIFxcLyByIHggeiA9IHIgeSB6KSAvXFxcbigheCB5IHouIH4o
eCA9IHkpIFxcLyByIHogeCA9IHIgeiB5KSA9PT5cbn4ociAociAociAwIChy
IChyIDAgKHIgMCAwKSkgKHIgMCAociAwIDApKSkpIChyIDAgKHIgMCAwKSkp
XG4gIChyIChyIDAgKHIgKHIgMCAociAwIDApKSAociAwIChyIDAgMCkpKSkg
KHIgMCAociAwIDApKSkgPVxuICByIChyIDAgKHIgKHIgMCAociAwIDApKSAo
ciAwIChyIDAgMCkpKSkgKHIgMCAociAwIDApKSkgPT0+IEYiXX0sCgp7bmFt
ZSA9ICJMQ0wxMDctMSIsCiBnb2FsID0gWwoKCgoKUVVPVEUgIlxuKCF4IHku
IH5wICh4IC0geSkgXFwvIH5wIHggXFwvIHAgeSkgL1xcXG4oIXggeSB6IHYg
dyB4JyB5Jy5cbiAgIHBcbiAgICh4IC0geSAtIHogLSAodiAtIHcgLSAoeCcg
LSB3IC0gKHgnIC0gdikgLSB5JykpIC1cbiAgICAoeiAtICh5IC0geCAtIHkn
KSkpKSA9PT4gfnAgKGEgLSBiIC0gYyAtIChlIC0gYiAtIChhIC0gZSAtIGMp
KSkgPT0+IEYiXX0sCgp7bmFtZSA9ICJMREEwMDctMyIsCiBnb2FsID0gWwoK
CgoKCgpRVU9URSAiXG4oIXguIHggPSB4KSAvXFwgKCF4IHkuIH4oeCA9IHkp
IFxcLyB5ID0geCkgL1xcXG4oIXggeSB6LiB+KHggPSB5KSBcXC8gfih5ID0g
eikgXFwvIHggPSB6KSAvXFxcbigheCB5IHouIGYgeCAoZiB5IHopID0gZiAo
ZiB4IHkpIChmIHggeikpIC9cXFxuKCF4IHkgei4gfih4ID0geSkgXFwvIGYg
eCB6ID0gZiB5IHopIC9cXFxuKCF4IHkgei4gfih4ID0geSkgXFwvIGYgeiB4
ID0gZiB6IHkpIC9cXCB0dCA9IGYgdCB0IC9cXCB0cyA9IGYgdCBzIC9cXFxu
dHRfdHMgPSBmIHR0IHRzIC9cXCB0ayA9IGYgdCBrIC9cXCB0c2sgPSBmIHRz
IGsgPT0+XG5+KGYgdCB0c2sgPSBmIHR0X3RzIHRrKSA9PT4gRiJdfSwKCntu
YW1lID0gIkdSUDAxMC00IiwKIGdvYWwgPSBbCgoKCgpRVU9URSAiXG4oIXgu
IHggPSB4KSAvXFwgKCF4IHkuIH4oeCA9IHkpIFxcLyB5ID0geCkgL1xcXG4o
IXggeSB6LiB+KHggPSB5KSBcXC8gfih5ID0geikgXFwvIHggPSB6KSAvXFwg
KCF4IHkuIH4oeCA9IHkpIFxcLyBpIHggPSBpIHkpIC9cXFxuKCF4IHkgei4g
fih4ID0geSkgXFwvIHggKiB6ID0geSAqIHopIC9cXFxuKCF4IHkgei4gfih4
ID0geSkgXFwvIHogKiB4ID0geiAqIHkpIC9cXCAoIXggeSB6LiB4ICogeSAq
IHogPSB4ICogKHkgKiB6KSkgL1xcXG4oIXguIDEgKiB4ID0geCkgL1xcICgh
eC4gaSB4ICogeCA9IDEpIC9cXCBjICogYiA9IDEgPT0+IH4oYiAqIGMgPSAx
KSA9PT4gRiJdfSwKCntuYW1lID0gIkFMRzAwNi0xIiwKIGdvYWwgPSBbCgoK
CgoKUVVPVEUgIlxuKCF4LiB4ID0geCkgL1xcICgheCB5LiB+KHggPSB5KSBc
XC8geSA9IHgpIC9cXFxuKCF4IHkgei4gfih4ID0geSkgXFwvIH4oeSA9IHop
IFxcLyB4ID0geikgL1xcXG4oIXggeSB6LiB+KHggPSB5KSBcXC8geCArIHog
PSB5ICsgeikgL1xcXG4oIXggeSB6LiB+KHggPSB5KSBcXC8geiArIHggPSB6
ICsgeSkgL1xcICgheCB5LiB4ICsgKHkgKyB4KSA9IHgpIC9cXFxuKCF4IHku
IHggKyAoeCArIHkpID0geSArICh5ICsgeCkpIC9cXFxuKCF4IHkgei4geCAr
IHkgKyB6ID0geCArIHogKyAoeSArIHopKSA9PT4gfihhICsgYyArIGIgPSBh
ICsgYiArIGMpID09PiBGIl19LAoKe25hbWUgPSAiQk9PMDIxLTEiLAogZ29h
bCA9IFsKCgoKCgoKCgpRVU9URSAiXG4oIXguIHggPSB4KSAvXFwgKCF4IHku
IH4oeCA9IHkpIFxcLyB5ID0geCkgL1xcXG4oIXggeSB6LiB+KHggPSB5KSBc
XC8gfih5ID0geikgXFwvIHggPSB6KSAvXFxcbigheCB5IHouIH4oeCA9IHkp
IFxcLyB4ICsgeiA9IHkgKyB6KSAvXFxcbigheCB5IHouIH4oeCA9IHkpIFxc
LyB6ICsgeCA9IHogKyB5KSAvXFwgKCF4IHkuIH4oeCA9IHkpIFxcLyBpIHgg
PSBpIHkpIC9cXFxuKCF4IHkgei4gfih4ID0geSkgXFwvIHggKiB6ID0geSAq
IHopIC9cXFxuKCF4IHkgei4gfih4ID0geSkgXFwvIHogKiB4ID0geiAqIHkp
IC9cXCAoIXggeS4gKHggKyB5KSAqIHkgPSB5KSAvXFxcbigheCB5IHouIHgg
KiAoeSArIHopID0geSAqIHggKyB6ICogeCkgL1xcICgheC4geCArIGkgeCA9
IDEpIC9cXFxuKCF4IHkuIHggKiB5ICsgeSA9IHkpIC9cXCAoIXggeSB6LiB4
ICsgeSAqIHogPSAoeSArIHgpICogKHogKyB4KSkgL1xcXG4oIXguIHggKiBp
IHggPSAwKSA9PT4gfihiICogYSA9IGEgKiBiKSA9PT4gRiJdfSwKCntuYW1l
ID0gIkdFTzAwMi00IiwKIGdvYWwgPSBbCgoKCgoKCgoKCgoKUVVPVEUgIlxu
KCF4IHkgeiB2LiB+YmV0d2VlbiB4IHkgeiBcXC8gfmJldHdlZW4geSB2IHog
XFwvIGJldHdlZW4geCB5IHYpIC9cXFxuKCF4IHkgei4gfmVxdWlkaXN0YW50
IHggeSB6IHogXFwvIHggPT0geSkgL1xcXG4oIXggeSB6IHYgdy5cbiAgIH5i
ZXR3ZWVuIHggeSB6IFxcLyB+YmV0d2VlbiB2IHogdyBcXC9cbiAgIGJldHdl
ZW4geCAob3V0ZXJfcGFzY2ggeSB4IHYgdyB6KSB2KSAvXFxcbigheCB5IHog
diB3LlxuICAgfmJldHdlZW4geCB5IHogXFwvIH5iZXR3ZWVuIHYgeiB3IFxc
L1xuICAgYmV0d2VlbiB3IHkgKG91dGVyX3Bhc2NoIHkgeCB2IHcgeikpIC9c
XFxuKCF4IHkgeiB2LiBiZXR3ZWVuIHggeSAoZXh0ZW5zaW9uIHggeSB6IHYp
KSAvXFxcbigheCB5IHogdi4gZXF1aWRpc3RhbnQgeCAoZXh0ZW5zaW9uIHkg
eCB6IHYpIHogdikgL1xcXG4oIXggeSB6IHYuIH4oeCA9PSB5KSBcXC8gfmJl
dHdlZW4geiB2IHggXFwvIGJldHdlZW4geiB2IHkpID09PlxufmJldHdlZW4g
YSBhIGIgPT0+IEYiXX0sCgp7bmFtZSA9ICJHUlAwNTctMSIsCiBnb2FsID0g
WwoKCgoKCgpRVU9URSAiXG4oIXguIHggPSB4KSAvXFwgKCF4IHkuIH4oeCA9
IHkpIFxcLyB5ID0geCkgL1xcXG4oIXggeSB6LiB+KHggPSB5KSBcXC8gfih5
ID0geikgXFwvIHggPSB6KSAvXFxcbigheCB5IHogdi4geCAqIGkgKGkgKGkg
eSAqIChpIHggKiB6KSkgKiB2ICogaSAoeSAqIHYpKSA9IHopIC9cXFxuKCF4
IHkuIH4oeCA9IHkpIFxcLyBpIHggPSBpIHkpIC9cXCAoIXggeSB6LiB+KHgg
PSB5KSBcXC8geCAqIHogPSB5ICogeikgL1xcXG4oIXggeSB6LiB+KHggPSB5
KSBcXC8geiAqIHggPSB6ICogeSkgPT0+XG5+KGkgYTEgKiBhMSA9IGkgYjEg
KiBiMSkgXFwvIH4oaSBiMiAqIGIyICogYTIgPSBhMikgXFwvXG5+KGEzICog
YjMgKiBjMyA9IGEzICogKGIzICogYzMpKSA9PT4gRiJdfSwKCntuYW1lID0g
IkhFTjAwNi0zIiwKIGdvYWwgPSBbCgoKCgoKCgoKClFVT1RFICJcbigheC4g
eCA9IHgpIC9cXCAoIXggeS4gfih4ID0geSkgXFwvIHkgPSB4KSAvXFxcbigh
eCB5IHouIH4oeCA9IHkpIFxcLyB+KHkgPSB6KSBcXC8geCA9IHopIC9cXFxu
KCF4IHkuIH4oeCA8PSB5KSBcXC8geCAvIHkgPSAwKSAvXFwgKCF4IHkuIH4o
eCAvIHkgPSAwKSBcXC8geCA8PSB5KSAvXFxcbigheCB5LiB4IC8geSA8PSB4
KSAvXFwgKCF4IHkgei4geCAvIHkgLyAoeiAvIHkpIDw9IHggLyB6IC8geSkg
L1xcXG4oIXguIDAgPD0geCkgL1xcICgheCB5LiB+KHggPD0geSkgXFwvIH4o
eSA8PSB4KSBcXC8geCA9IHkpIC9cXCAoIXguIHggPD0gMSkgL1xcXG4oIXgg
eSB6LiB+KHggPSB5KSBcXC8geCAvIHogPSB5IC8geikgL1xcXG4oIXggeSB6
LiB+KHggPSB5KSBcXC8geiAvIHggPSB6IC8geSkgL1xcXG4oIXggeSB6LiB+
KHggPSB5KSBcXC8gfih4IDw9IHopIFxcLyB5IDw9IHopIC9cXFxuKCF4IHkg
ei4gfih4ID0geSkgXFwvIH4oeiA8PSB4KSBcXC8geiA8PSB5KSAvXFwgYSAv
IGIgPD0gZCA9PT5cbn4oYSAvIGQgPD0gYikgPT0+IEYiXX0sCgp7bmFtZSA9
ICJSTkcwMzUtNyIsCiBnb2FsID0gWwoKCgoKCgoKCgoKClFVT1RFICJcbigh
eC4geCA9IHgpIC9cXCAoIXggeS4gfih4ID0geSkgXFwvIHkgPSB4KSAvXFxc
bigheCB5IHouIH4oeCA9IHkpIFxcLyB+KHkgPSB6KSBcXC8geCA9IHopIC9c
XCAoIXguIDAgKyB4ID0geCkgL1xcXG4oIXguIHggKyAwID0geCkgL1xcICgh
eC4gbiB4ICsgeCA9IDApIC9cXCAoIXguIHggKyBuIHggPSAwKSAvXFxcbigh
eCB5IHouIHggKyAoeSArIHopID0geCArIHkgKyB6KSAvXFwgKCF4IHkuIHgg
KyB5ID0geSArIHgpIC9cXFxuKCF4IHkgei4geCAqICh5ICogeikgPSB4ICog
eSAqIHopIC9cXFxuKCF4IHkgei4geCAqICh5ICsgeikgPSB4ICogeSArIHgg
KiB6KSAvXFxcbigheCB5IHouICh4ICsgeSkgKiB6ID0geCAqIHogKyB5ICog
eikgL1xcXG4oIXggeSB6LiB+KHggPSB5KSBcXC8geCArIHogPSB5ICsgeikg
L1xcXG4oIXggeSB6LiB+KHggPSB5KSBcXC8geiArIHggPSB6ICsgeSkgL1xc
ICgheCB5LiB+KHggPSB5KSBcXC8gbiB4ID0gbiB5KSAvXFxcbigheCB5IHou
IH4oeCA9IHkpIFxcLyB4ICogeiA9IHkgKiB6KSAvXFxcbigheCB5IHouIH4o
eCA9IHkpIFxcLyB6ICogeCA9IHogKiB5KSAvXFwgKCF4LiB4ICogKHggKiAo
eCAqIHgpKSA9IHgpID09PlxuYSAqIGIgPSBjIC9cXCB+KGIgKiBhID0gYykg
PT0+IEYiXX0sCgp7bmFtZSA9ICJST0IwMDEtMSIsCiBnb2FsID0gWwoKCgoK
CgpRVU9URSAiXG4oIXguIHggPSB4KSAvXFwgKCF4IHkuIH4oeCA9IHkpIFxc
LyB5ID0geCkgL1xcXG4oIXggeSB6LiB+KHggPSB5KSBcXC8gfih5ID0geikg
XFwvIHggPSB6KSAvXFwgKCF4IHkuIHggKyB5ID0geSArIHgpIC9cXFxuKCF4
IHkgei4geCArIHkgKyB6ID0geCArICh5ICsgeikpIC9cXFxuKCF4IHkuIG4g
KG4gKHggKyB5KSArIG4gKHggKyBuIHkpKSA9IHgpIC9cXFxuKCF4IHkgei4g
fih4ID0geSkgXFwvIHggKyB6ID0geSArIHopIC9cXFxuKCF4IHkgei4gfih4
ID0geSkgXFwvIHogKyB4ID0geiArIHkpIC9cXCAoIXggeS4gfih4ID0geSkg
XFwvIG4geCA9IG4geSkgPT0+XG5+KG4gKGEgKyBuIGIpICsgbiAobiBhICsg
biBiKSA9IGIpID09PiBGIl19LAoKe25hbWUgPSAiR1JQMTI4LTQuMDAzIiwK
IGdvYWwgPSBbCgoKCgoKCgoKCgoKCgoKCgpRVU9URSAiXG4oIXggeS5cbiAg
IH5lbHQgeCBcXC8gfmVsdCB5IFxcLyBwcm9kdWN0IGVfMSB4IHkgXFwvIHBy
b2R1Y3QgZV8yIHggeSBcXC9cbiAgIHByb2R1Y3QgZV8zIHggeSkgL1xcXG4o
IXggeS5cbiAgIH5lbHQgeCBcXC8gfmVsdCB5IFxcLyBwcm9kdWN0IHggZV8x
IHkgXFwvIHByb2R1Y3QgeCBlXzIgeSBcXC9cbiAgIHByb2R1Y3QgeCBlXzMg
eSkgL1xcIGVsdCBlXzEgL1xcIGVsdCBlXzIgL1xcIGVsdCBlXzMgL1xcIH4o
ZV8xID09IGVfMikgL1xcXG5+KGVfMSA9PSBlXzMpIC9cXCB+KGVfMiA9PSBl
XzEpIC9cXCB+KGVfMiA9PSBlXzMpIC9cXCB+KGVfMyA9PSBlXzEpIC9cXFxu
fihlXzMgPT0gZV8yKSAvXFxcbigheCB5LlxuICAgfmVsdCB4IFxcLyB+ZWx0
IHkgXFwvIHByb2R1Y3QgeCB5IGVfMSBcXC8gcHJvZHVjdCB4IHkgZV8yIFxc
L1xuICAgcHJvZHVjdCB4IHkgZV8zKSAvXFxcbigheCB5IHogdi4gfnByb2R1
Y3QgeCB5IHogXFwvIH5wcm9kdWN0IHggeSB2IFxcLyB6ID09IHYpIC9cXFxu
KCF4IHkgeiB2LiB+cHJvZHVjdCB4IHkgeiBcXC8gfnByb2R1Y3QgeCB2IHog
XFwvIHkgPT0gdikgL1xcXG4oIXggeSB6IHYuIH5wcm9kdWN0IHggeSB6IFxc
LyB+cHJvZHVjdCB2IHkgeiBcXC8geCA9PSB2KSA9PT5cbigheCB5IHogdi4g
cHJvZHVjdCB4IHkgeiBcXC8gfnByb2R1Y3QgeCB6IHYgXFwvIH5wcm9kdWN0
IHogeSB2KSAvXFxcbigheCB5IHogdi4gcHJvZHVjdCB4IHkgeiBcXC8gfnBy
b2R1Y3QgdiB4IHogXFwvIH5wcm9kdWN0IHYgeSB4KSAvXFxcbigheCB5IHog
di4gfnByb2R1Y3QgeCB5IHogXFwvIH5wcm9kdWN0IHogeSB2IFxcLyBwcm9k
dWN0IHggeiB2KSA9PT4gRiJdfSwKCntuYW1lID0gIk5VTTAxNC0xIiwKIGdv
YWwgPSBbCgoKCgoKClFVT1RFICJcbigheC4gcHJvZHVjdCB4IHggKHNxdWFy
ZSB4KSkgL1xcXG4oIXggeSB6LiB+cHJvZHVjdCB4IHkgeiBcXC8gcHJvZHVj
dCB5IHggeikgL1xcXG4oIXggeSB6LiB+cHJvZHVjdCB4IHkgeiBcXC8gZGl2
aWRlcyB4IHopIC9cXFxuKCF4IHkgeiB2LlxuICAgfnByaW1lIHggXFwvIH5w
cm9kdWN0IHkgeiB2IFxcLyB+ZGl2aWRlcyB4IHYgXFwvIGRpdmlkZXMgeCB5
IFxcL1xuICAgZGl2aWRlcyB4IHopIC9cXCBwcmltZSBhIC9cXCBwcm9kdWN0
IGEgKHNxdWFyZSBjKSAoc3F1YXJlIGIpID09PlxufmRpdmlkZXMgYSBiID09
PiBGIl19CgpdOwoKKCogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAq
KQooKiBBIEZFVyBTQU1QTEUgVEhFT1JFTVMgVE8gQ0hFQ0sgTEFSR0UgUlVO
UyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigqID09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0gKikKCnZhbCBxdWljayA9CiAgW2V4
dHJhY3Qgbm9uZXF1YWxpdHkgIlRSVUUiLAogICBleHRyYWN0IG5vbmVxdWFs
aXR5ICJQX29yX25vdF9QIiwKICAgZXh0cmFjdCBub25lcXVhbGl0eSAiSkhf
dGVzdCIsCiAgIGV4dHJhY3Qgbm9uZXF1YWxpdHkgIkNZQ0xJQyIsCiAgIGV4
dHJhY3Qgbm9uZXF1YWxpdHkgIk1OX2J1ZyIsCiAgIGV4dHJhY3Qgbm9uZXF1
YWxpdHkgIkVSSUMiLAogICBleHRyYWN0IG5vbmVxdWFsaXR5ICJNQVRIUzRf
RVhBTVBMRSIsCiAgIGV4dHJhY3Qgbm9uZXF1YWxpdHkgIlAxOCIsCiAgIGV4
dHJhY3Qgbm9uZXF1YWxpdHkgIlAzOSIsCiAgIGV4dHJhY3Qgbm9uZXF1YWxp
dHkgIlA1OSIsCiAgIGV4dHJhY3Qgbm9uZXF1YWxpdHkgIkRBVklTX1BVVE5B
TV9FWEFNUExFIiwKICAgZXh0cmFjdCBub25lcXVhbGl0eSAiQkFEX0NPTk5F
Q1RJT05TIiwKCiAgIGV4dHJhY3QgZXF1YWxpdHkgIlRSQU5TX1NZTU0iLAog
ICBleHRyYWN0IGVxdWFsaXR5ICJDWUNMSUNfU1VCU1RJVFVUSU9OX0JVRyIs
CiAgIGV4dHJhY3QgZXF1YWxpdHkgIlA0OCJdOwoKZW5kCigqI2xpbmUgMC4w
ICJzcmMvTWV0ZXIxLnNpZyIqKQooKiA9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09ICopCigqIE1FVEVSSU5HIFRJTUUgQU5EIElORkVSRU5DRVMgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKikK
KCogQ3JlYXRlZCBieSBKb2UgSHVyZCwgTm92ZW1iZXIgMjAwMSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiA9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09ICopCgpzaWduYXR1cmUgTWV0ZXIxID0K
c2lnCgp0eXBlICdhIHBwID0gJ2EgVXNlZnVsLnBwCgooKiBTZWFyY2ggbGlt
aXRzICopCnR5cGUgbGltaXQgICAgICAgICAgPSB7dGltZSA6IHJlYWwgb3B0
aW9uLCBpbmZzIDogaW50IG9wdGlvbn0KdmFsIHVubGltaXRlZCAgICAgICA6
IGxpbWl0CnZhbCBleHBpcmVkICAgICAgICAgOiBsaW1pdAp2YWwgbGltaXRf
dG9fc3RyaW5nIDogbGltaXQgLT4gc3RyaW5nCgooKiBNZXRlciByZWFkaW5n
cyAqKQp0eXBlIG1ldGVyX3JlYWRpbmcgICAgICAgICAgPSB7dGltZSA6IHJl
YWwsIGluZnMgOiBpbnR9CnZhbCB6ZXJvX3JlYWRpbmcgICAgICAgICAgICA6
IG1ldGVyX3JlYWRpbmcKdmFsIGFkZF9yZWFkaW5ncyAgICAgICAgICAgIDog
bWV0ZXJfcmVhZGluZyAtPiBtZXRlcl9yZWFkaW5nIC0+IG1ldGVyX3JlYWRp
bmcKdmFsIHBwX21ldGVyX3JlYWRpbmcgICAgICAgIDogbWV0ZXJfcmVhZGlu
ZyBwcAp2YWwgbWV0ZXJfcmVhZGluZ190b19zdHJpbmcgOiBtZXRlcl9yZWFk
aW5nIC0+IHN0cmluZwoKKCogTWV0ZXJzIHJlY29yZCB0aW1lIGFuZCBpbmZl
cmVuY2VzICopCnR5cGUgbWV0ZXIKdmFsIG5ld19tZXRlciAgIDogbGltaXQg
LT4gbWV0ZXIKdmFsIHN1Yl9tZXRlciAgIDogbWV0ZXIgLT4gbGltaXQgLT4g
bWV0ZXIKdmFsIHJlY29yZF9pbmZzIDogbWV0ZXIgLT4gaW50IC0+IHVuaXQK
dmFsIHJlYWRfbWV0ZXIgIDogbWV0ZXIgLT4gbWV0ZXJfcmVhZGluZwp2YWwg
Y2hlY2tfbWV0ZXIgOiBtZXRlciAtPiBib29sCnZhbCBwcF9tZXRlciAgICA6
IG1ldGVyIHBwCgplbmQKKCojbGluZSAwLjAgInNyYy9NZXRlcjEuc21sIiop
CigqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKikKKCogTUVURVJJ
TkcgVElNRSBBTkQgSU5GRVJFTkNFUyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAqKQooKiBDcmVhdGVkIGJ5IEpvZSBI
dXJkLCBOb3ZlbWJlciAyMDAxICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICopCigqID09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0gKikKCigqCmFwcCBsb2FkCiBbIlVzZWZ1bCIsICJNb3NtbCIsICJUZXJt
MSIsICJUaG0xIiwgIkNhbm9uMSIsICJNYXRjaDEiXTsKKikKCigqCiopCnN0
cnVjdHVyZSBNZXRlcjEgOj4gTWV0ZXIxID0Kc3RydWN0CgpvcGVuIFVzZWZ1
bDsKCmluZml4IHwtPiA6Oj4gQD4gb28gIyMgOjoqIDo6QDsKCigqIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCogU2VhcmNoIGxpbWl0cyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tICopCgp0eXBlIGxpbWl0ID0ge3RpbWUgOiByZWFsIG9wdGlvbiwgaW5m
cyA6IGludCBvcHRpb259OwoKdmFsIHVubGltaXRlZCA9IHt0aW1lID0gTk9O
RSwgaW5mcyA9IE5PTkV9OwoKdmFsIGV4cGlyZWQgPSB7dGltZSA9IFNPTUUg
MC4wLCBpbmZzID0gU09NRSAwfTsKCmZ1biBsaW1pdF90b19zdHJpbmcge3Rp
bWUsIGluZnN9ID0KICAie3RpbWUgPSAiIF4KICAgKGNhc2UgdGltZSBvZiBO
T05FID0+ICJ1bmxpbWl0ZWQiCiAgICB8IFNPTUUgciA9PiBSZWFsLmZtdCAo
U3RyaW5nQ3Z0LkZJWCAoU09NRSAzKSkgciBeICJzIikgXgogICAiLCBpbmZz
ID0gIiBeCiAgIChjYXNlIGluZnMgb2YgTk9ORSA9PiAidW5saW1pdGVkIiB8
IFNPTUUgaSA9PiBpbnRfdG9fc3RyaW5nIGkpIF4KICAgIn0iOwoKKCogLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQooKiBNZXRlciByZWFkaW5n
cy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0gKikKCnR5cGUgbWV0ZXJfcmVhZGluZyA9IHt0aW1lIDogcmVhbCwg
aW5mcyA6IGludH07Cgp2YWwgemVyb19yZWFkaW5nID0ge3RpbWUgPSAwLjAs
IGluZnMgPSAwfTsKCmZ1biBhZGRfcmVhZGluZ3Mge3RpbWUgOiByZWFsLCBp
bmZzfSB7dGltZSA9IHRpbWUnLCBpbmZzID0gaW5mcyd9ID0KICB7dGltZSA9
IHRpbWUgKyB0aW1lJywgaW5mcyA9IGluZnMgKyBpbmZzJ307CgpmdW4gcHBf
bWV0ZXJfcmVhZGluZyBwcCB7dGltZSwgaW5mc30gPQogIGxldAogICAgb3Bl
biBQUAogICAgdmFsICgpID0gYmVnaW5fYmxvY2sgcHAgSU5DT05TSVNURU5U
IDEKICAgIHZhbCAoKSA9IGFkZF9zdHJpbmcgcHAgInsiOwogICAgdmFsICgp
ID0gYmVnaW5fYmxvY2sgcHAgSU5DT05TSVNURU5UIDIKICAgIHZhbCAoKSA9
IGFkZF9zdHJpbmcgcHAgInRpbWUgPSIKICAgIHZhbCAoKSA9IGFkZF9icmVh
ayBwcCAoMSwgMCkKICAgIHZhbCAoKSA9IGFkZF9zdHJpbmcgcHAgKFJlYWwu
Zm10IChTdHJpbmdDdnQuRklYIChTT01FIDMpKSB0aW1lKQogICAgdmFsICgp
ID0gZW5kX2Jsb2NrIHBwCiAgICB2YWwgKCkgPSBhZGRfc3RyaW5nIHBwICIs
IgogICAgdmFsICgpID0gYWRkX2JyZWFrIHBwICgxLCAwKQogICAgdmFsICgp
ID0gYmVnaW5fYmxvY2sgcHAgSU5DT05TSVNURU5UIDIKICAgIHZhbCAoKSA9
IGFkZF9zdHJpbmcgcHAgImluZnMgPSIKICAgIHZhbCAoKSA9IGFkZF9icmVh
ayBwcCAoMSwgMCkKICAgIHZhbCAoKSA9IHBwX2ludCBwcCBpbmZzCiAgICB2
YWwgKCkgPSBlbmRfYmxvY2sgcHAKICAgIHZhbCAoKSA9IGFkZF9zdHJpbmcg
cHAgIn0iCiAgICB2YWwgKCkgPSBlbmRfYmxvY2sgcHAKICBpbgogICAgKCkK
ICBlbmQ7CgpmdW4gbWV0ZXJfcmVhZGluZ190b19zdHJpbmcgciA9CiAgUFAu
cHBfdG9fc3RyaW5nICghTElORV9MRU5HVEgpIHBwX21ldGVyX3JlYWRpbmcg
cjsKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCogTWV0
ZXJzIHJlY29yZCB0aW1lIGFuZCBpbmZlcmVuY2VzLiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tICopCgp0eXBlIG1ldGVyID0ge3JlYWQgOiB1bml0
IC0+IG1ldGVyX3JlYWRpbmcsIGxvZyA6IChpbnQgLT4gdW5pdCksIGxpbSA6
IGxpbWl0fTsKCmZ1biBuZXdfdGltZV9tZXRlciAoKSA9CiAgbGV0CiAgICB2
YWwgdG1yID0gVGltZXIuc3RhcnRDUFVUaW1lciAoKQogICAgZnVuIHJlYWQg
KCkgPQogICAgICAoZm4ge3Vzciwgc3lzLCAuLi59ID0+IFRpbWUudG9SZWFs
IChUaW1lLisgKHVzciwgc3lzKSkpCiAgICAgIChUaW1lci5jaGVja0NQVVRp
bWVyIHRtcikKICBpbgogICAgcmVhZAogIGVuZDsKCmZ1biBuZXdfaW5mZXJl
bmNlX21ldGVyICgpID0KICBsZXQKICAgIHZhbCBpbmZzID0gcmVmIDAKICAg
IGZ1biByZWFkICgpID0gIWluZnMKICBpbgogICAgKHJlYWQsIGZuIG4gPT4g
aW5mcyA6PSAhaW5mcyArIG4pCiAgZW5kOwoKZnVuIG5ld19tZXRlciBsaW0g
OiBtZXRlciA9CiAgbGV0CiAgICB2YWwgdHJlYWQgPSBuZXdfdGltZV9tZXRl
ciAoKQogICAgdmFsIChpcmVhZCwgaWxvZykgPSBuZXdfaW5mZXJlbmNlX21l
dGVyICgpCiAgaW4KICAgIHtyZWFkID0gKGZuICgpID0+IHt0aW1lID0gdHJl
YWQgKCksIGluZnMgPSBpcmVhZCAoKX0pLAogICAgIGxvZyA9IGlsb2csIGxp
bSA9IGxpbX0KICBlbmQ7CgpmdW4gc3ViX21ldGVyIHtyZWFkLCBsb2csIGxp
bSA9IF99IGxpbSA9CiAgbGV0CiAgICB2YWwge3RpbWUgPSBpbml0X3RpbWUg
OiByZWFsLCBpbmZzID0gaW5pdF9pbmZzfSA9IHJlYWQgKCkKICAgIGZ1biBz
dWIge3RpbWUsIGluZnN9ID0ge3RpbWUgPSB0aW1lIC0gaW5pdF90aW1lLCBp
bmZzID0gaW5mcyAtIGluaXRfaW5mc30KICBpbgogICAge3JlYWQgPSBzdWIg
byByZWFkLCBsb2cgPSBsb2csIGxpbSA9IGxpbX0KICBlbmQ7Cgp2YWwgcmVh
ZF9tZXRlciA9IGZuICh7cmVhZCwgLi4ufSA6IG1ldGVyKSA9PiByZWFkICgp
OwoKdmFsIGNoZWNrX21ldGVyID0gZm4gKHtyZWFkLCBsaW0gPSB7dGltZSwg
aW5mc30sIC4uLn0gOiBtZXRlcikgPT4KICBsZXQKICAgIHZhbCB7dGltZSA9
IHQsIGluZnMgPSBpfSA9IHJlYWQgKCkKICBpbgogICAgKGNhc2UgdGltZSBv
ZiBOT05FID0+IHRydWUgfCBTT01FIHRpbWUgPT4gdCA8IHRpbWUpIGFuZGFs
c28KICAgIChjYXNlIGluZnMgb2YgTk9ORSA9PiB0cnVlIHwgU09NRSBpbmZz
ID0+IGkgPCBpbmZzKQogIGVuZDsKCnZhbCByZWNvcmRfaW5mcyA9IGZuICh7
bG9nLCAuLi59IDogbWV0ZXIpID0+IGxvZzsKCnZhbCBwcF9tZXRlciA9IHBw
X21hcCByZWFkX21ldGVyIHBwX21ldGVyX3JlYWRpbmc7CgplbmQKKCojbGlu
ZSAwLjAgInNyYy9Tb2x2ZXIxLnNpZyIqKQooKiA9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09ICopCigqIFBBQ0tBR0lORyBVUCBTT0xWRVJTIFRPIEFM
TE9XIFRIRU0gVE8gQ09PUEVSQVRFIFVOSUZPUk1MWSAgICAgICAgICAgICAg
ICAgKikKKCogQ3JlYXRlZCBieSBKb2UgSHVyZCwgTWFyY2ggMjAwMiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiA9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09ICopCgpzaWduYXR1cmUgU29s
dmVyMSA9CnNpZwoKdHlwZSAnYSBwcCAgICAgICAgID0gJ2EgVXNlZnVsLnBw
CnR5cGUgJ2Egc3RyZWFtICAgICA9ICdhIFN0cmVhbS5zdHJlYW0KdHlwZSBm
b3JtdWxhICAgICAgID0gVGVybTEuZm9ybXVsYQp0eXBlIHRobSAgICAgICAg
ICAgPSBUaG0xLnRobQp0eXBlIGxpbWl0ICAgICAgICAgPSBNZXRlcjEubGlt
aXQKdHlwZSBtZXRlciAgICAgICAgID0gTWV0ZXIxLm1ldGVyCnR5cGUgbWV0
ZXJfcmVhZGluZyA9IE1ldGVyMS5tZXRlcl9yZWFkaW5nCnR5cGUgdW5pdHMg
ICAgICAgICA9IFVuaXRzMS51bml0cwoKKCogVGhlIHR5cGUgb2YgYSBnZW5l
cmljIHNvbHZlciAqKQoKdHlwZSBzb2x2ZXIgPSBmb3JtdWxhIGxpc3QgLT4g
dGhtIGxpc3Qgb3B0aW9uIHN0cmVhbQoKdmFsIGNvbnRyYWRpY3Rpb25fc29s
dmVyIDogdGhtIC0+IHNvbHZlcgoKKCogRmlsdGVycyB0byBjdXQgb2ZmIHNl
YXJjaGluZyBvciBkcm9wIHN1YnN1bWVkIHNvbHV0aW9ucyAqKQoKdmFsIHNv
bHZlZF9maWx0ZXIgICA6IHNvbHZlciAtPiBzb2x2ZXIKdmFsIHN1YnN1bWVk
X2ZpbHRlciA6IHNvbHZlciAtPiBzb2x2ZXIKCigqIFVzZXItZnJpZW5kbHkg
aW50ZXJmYWNlIHRvIGdlbmVyaWMgc29sdmVycyAqKQoKdmFsIHNvbHZlICA6
IHNvbHZlciAtPiBmb3JtdWxhIGxpc3QgLT4gdGhtIGxpc3QgbGlzdAp2YWwg
ZmluZCAgIDogc29sdmVyIC0+IGZvcm11bGEgbGlzdCAtPiB0aG0gbGlzdCBv
cHRpb24KdmFsIHJlZnV0ZSA6IHNvbHZlciAtPiB0aG0gb3B0aW9uCgooKiBT
b2x2ZXIgbm9kZXMgbXVzdCBjb25zdHJ1Y3QgdGhlbXNlbHZlcyBmcm9tIHRo
ZSBmb2xsb3dpbmcgZm9ybS4gKikKCnR5cGUgZm9ybSA9CiAge3NsaWNlIDog
bWV0ZXIgcmVmLCAgICAgICAgICAgICAgICAgICAoKiBBIG1ldGVyIHRvIHN0
b3AgYWZ0ZXIgZWFjaCBzbGljZSAqKQogICB1bml0cyA6IHVuaXRzIHJlZiwg
ICAgICAgICAgICAgICAgICAgKCogU29sdmVycyBzaGFyZSBhIHVuaXQgY2Fj
aGUgKikKICAgdGhtcyAgOiB0aG0gbGlzdCwgICAgICAgICAgICAgICAgICAg
ICgqIENvbnRleHQsIGFzc3VtZWQgY29uc2lzdGVudCAqKQogICBoeXBzICA6
IHRobSBsaXN0fSAgICAgICAgICAgICAgICAgICAgKCogSHlwb3RoZXNpcywg
b3Igc2V0IG9mIHN1cHBvcnQgKikKCigqIFNvbHZlciBub2RlcyBhbHNvIGlu
Y29ycG9yYXRlIGEgbmFtZS4gKikKCnR5cGUgbm9kZV9kYXRhID0ge25hbWUg
OiBzdHJpbmcsIHNvbHZlcl9jb24gOiBmb3JtIC0+IHNvbHZlcn0KdHlwZSBz
b2x2ZXJfbm9kZQoKdmFsIG1rX3NvbHZlcl9ub2RlIDogbm9kZV9kYXRhIC0+
IHNvbHZlcl9ub2RlCnZhbCBwcF9zb2x2ZXJfbm9kZSA6IHNvbHZlcl9ub2Rl
IHBwCgooKiBBdCBlYWNoIHN0ZXAgd2Ugc2NoZWR1bGUgYSB0aW1lIHNsaWNl
IHRvIHRoZSBsZWFzdCBjb3N0IHNvbHZlciBub2RlLiAqKQoKdmFsIFNMSUNF
IDogbGltaXQgcmVmCgp0eXBlIGNvc3RfZm4gPSBtZXRlcl9yZWFkaW5nIC0+
IHJlYWwKCnZhbCB0aW1lMSA6IGNvc3RfZm4gICAgICAgICAgICAgICAgICAg
ICAoKiBUaW1lIHRha2VuIChpbiBzZWNvbmRzKSAqKQp2YWwgdGltZTIgOiBj
b3N0X2ZuICAgICAgICAgICAgICAgICAgICAgKCogVGltZSBzcXVhcmVkICop
CnZhbCBpbmZzMSA6IGNvc3RfZm4gICAgICAgICAgICAgICAgICAgICAoKiBO
dW1iZXIgb2YgaW5mZXJlbmNlcyBtYWRlKikKdmFsIGluZnMyIDogY29zdF9m
biAgICAgICAgICAgICAgICAgICAgICgqIEluZmVyZW5jZXMgc3F1YXJlZCAq
KQoKKCogVGhpcyBhbGxvd3MgdXMgdG8gaGllcmFyY2hpY2FsbHkgYXJyYW5n
ZSBzb2x2ZXIgbm9kZXMuICopCgp2YWwgY29tYmluZSA6IChjb3N0X2ZuICog
c29sdmVyX25vZGUpIGxpc3QgLT4gc29sdmVyX25vZGUKCigqIE92ZXJyaWRp
bmcgdGhlICduYXR1cmFsJyBzZXQgb2Ygc3VwcG9ydCBmcm9tIHRoZSBwcm9i
bGVtLiAqKQoKdmFsIHNldF9vZl9zdXBwb3J0IDogKHRobSAtPiBib29sKSAt
PiBzb2x2ZXJfbm9kZSAtPiBzb2x2ZXJfbm9kZQp2YWwgZXZlcnl0aGluZyAg
ICAgOiB0aG0gLT4gYm9vbAp2YWwgb25lX25lZ2F0aXZlICAgOiB0aG0gLT4g
Ym9vbAp2YWwgb25lX3Bvc2l0aXZlICAgOiB0aG0gLT4gYm9vbAp2YWwgYWxs
X25lZ2F0aXZlICAgOiB0aG0gLT4gYm9vbCAgICAgICAgKCogVGhpcyBvbmUg
aXMgdXNlZCBieSBNZXRpczEucHJvdmUgKikKdmFsIGFsbF9wb3NpdGl2ZSAg
IDogdGhtIC0+IGJvb2wKdmFsIG5vdGhpbmcgICAgICAgIDogdGhtIC0+IGJv
b2wKCigqIEluaXRpYWxpemluZyBhIHNvbHZlciBub2RlIG1ha2VzIGl0IHJl
YWR5IGZvciBhY3Rpb24uICopCgp0eXBlIGluaXRfZGF0YSA9IHtsaW1pdCA6
IGxpbWl0LCB0aG1zIDogdGhtIGxpc3QsIGh5cHMgOiB0aG0gbGlzdH0KCnZh
bCBpbml0aWFsaXplIDogc29sdmVyX25vZGUgLT4gaW5pdF9kYXRhIC0+IHNv
bHZlcgoKZW5kCigqI2xpbmUgMC4wICJzcmMvU29sdmVyMS5zbWwiKikKKCog
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqKQooKiBQQUNLQUdJTkcg
VVAgU09MVkVSUyBUTyBBTExPVyBUSEVNIFRPIENPT1BFUkFURSBVTklGT1JN
TFkgICAgICAgICAgICAgICAgICopCigqIENyZWF0ZWQgYnkgSm9lIEh1cmQs
IE1hcmNoIDIwMDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKikKKCogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAq
KQoKKCoKYXBwIGxvYWQKIFsiVXNlZnVsIiwgIk1vc21sIiwgIlRlcm0xIiwg
IlRobTEiLCAiQ2Fub24xIiwgIk1hdGNoMSIsICJNZXRlcjEiLCAiVW5pdHMx
IiwKICAiU29sdmVyMSJdOwoqKQoKKCoKKikKc3RydWN0dXJlIFNvbHZlcjEg
Oj4gU29sdmVyMSA9CnN0cnVjdAoKb3BlbiBVc2VmdWwgVGVybTEgTWF0Y2gx
IFRobTEgTWV0ZXIxOwoKaW5maXggfC0+IDo6PiBAPiBvbyAjIzsKCnN0cnVj
dHVyZSBTID0gU3RyZWFtOwpzdHJ1Y3R1cmUgVSA9IFVuaXRzMTsKCnR5cGUg
J2Egc3RyZWFtID0gJ2EgUy5zdHJlYW07CnR5cGUgdW5pdHMgICAgID0gVS51
bml0czsKCnZhbCB8PD58ICAgPSBTdWJzdDEufDw+fDsKdmFsIG9wIDo6PiA9
IFN1YnN0MS46Oj47CgooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
ICopCigqIENoYXR0aW5nLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKikKKCogLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoKdmFsICgpID0gdHJhY2Vz
IDo9IHttb2R1bGUgPSAiU29sdmVyMSIsIGFsaWdubWVudCA9IEsgMX0gOjog
IXRyYWNlczsKCmZ1biBjaGF0IGwgbSA9IHRyYWNlIHttb2R1bGUgPSAiU29s
dmVyMSIsIG1lc3NhZ2UgPSBtLCBsZXZlbCA9IGx9OwoKKCogLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSAqKQooKiBIZWxwZXIgZnVuY3Rpb25zLiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0g
KikKCmZ1biBkcm9wX2FmdGVyIGYgPQogIFMuZm9sZCAoZm4geCA9PiBmbiB4
cyA9PiBTLkNPTlMgKHgsIGlmIGYgeCB0aGVuIEsgUy5OSUwgZWxzZSB4cykp
IFMuTklMOwoKZnVuIHRpbWVfdG9fc3RyaW5nIHQgPQogIGxldCB2YWwgZHAg
PSBpZiB0IDwgMTAuMCB0aGVuIDIgZWxzZSBpZiB0IDwgMTAwMC4wIHRoZW4g
MSBlbHNlIDAKICBpbiBSZWFsLmZtdCAoU3RyaW5nQ3Z0LkZJWCAoU09NRSBk
cCkpIHQKICBlbmQ7CgpmdW4gaW5mc190b19zdHJpbmcgaSA9CiAgaWYgaSA8
IDEwMDAwIHRoZW4gaW50X3RvX3N0cmluZyBpCiAgZWxzZSBpZiBpIDwgMTAw
MDAwMDAgdGhlbiBpbnRfdG9fc3RyaW5nIChpIGRpdiAxMDAwKSBeICJLIgog
IGVsc2UgaW50X3RvX3N0cmluZyAoaSBkaXYgMTAwMDAwMCkgXiAiTSI7Cgp2
YWwgbmFtZV90b19zdHJpbmcgPSBzdHIgbyBoZCBvIGV4cGxvZGU7CgpmdW4g
b3B0aW9uX2Nhc2UgbiBfIE5PTkUgPSBuCiAgfCBvcHRpb25fY2FzZSBfIHMg
KFNPTUUgXykgPSBzOwoKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSAqKQooKiBUaGUgdHlwZSBvZiBhIGdlbmVyaWMgc29sdmVyLiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigqIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKCnR5cGUgc29sdmVyID0g
Zm9ybXVsYSBsaXN0IC0+IHRobSBsaXN0IG9wdGlvbiBzdHJlYW07Cgpsb2Nh
bAogIGZ1biBjb250ciB0aCBbRmFsc2VdID0gW3RoXQogICAgfCBjb250ciB0
aCBncyA9IG1hcCAoQyBDT05UUiB0aCkgZ3M7CmluCiAgZnVuIGNvbnRyYWRp
Y3Rpb25fc29sdmVyIHRoID0KICAgIChhc3NlcnQgKGlzX2NvbnRyYWRpY3Rp
b24gdGgpIChFUlIgImNvbnRyYWRpY3Rpb25fc29sdmVyIiAidGhtIG5vdCB8
LSBGIik7CiAgICAgZm4gZ3MgPT4gUy5DT05TIChTT01FIChjb250ciB0aCBn
cyksIEsgUy5OSUwpKTsKZW5kOwoKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLSAqKQooKiBGaWx0ZXJzIHRvIGN1dCBvZmYgc2VhcmNoaW5nIG9y
IGRyb3Agc3Vic3VtZWQgc29sdXRpb25zLiAgICAgICAgICAgICAgICAgICop
CigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKCmxvY2FsCiAg
ZnVuIGNvbmNsIFtdID0gRmFsc2UKICAgIHwgY29uY2wgW2xpdF0gPSBsaXQK
ICAgIHwgY29uY2wgXyA9IHJhaXNlIEJVRyAiY29uY2wiICJub3QgYSBsaXRl
cmFsIjsKaW4KICBmdW4gc29sdmVkX2ZpbHRlciBzb2x2ZXIgZ29hbHMgPQog
ICAgbGV0CiAgICAgIGZ1biBzb2x2ZXMgZ29hbHMnID0gY2FuIChtYXRjaGxf
bGl0ZXJhbHMgfDw+fCkgKHppcCBnb2FscycgZ29hbHMpCiAgICAgIGZ1biBm
aW5hbCBOT05FID0gZmFsc2UKICAgICAgICB8IGZpbmFsIChTT01FIHRocykg
PSBzb2x2ZXMgKG1hcCAoY29uY2wgbyBjbGF1c2UpIHRocykKICAgIGluCiAg
ICAgIGRyb3BfYWZ0ZXIgZmluYWwgKHNvbHZlciBnb2FscykKICAgIGVuZDsK
ZW5kOwoKbG9jYWwKICBmdW4gbXVuZ2UgcyBuID0gIk1VTkdFRF9fIiBeIGlu
dF90b19zdHJpbmcgbiBeICJfXyIgXiBzOwogIGZ1biBtdW5nZV9saXQgKG4s
IEF0b20gKEZuIChwLCBhKSkpID0gQXRvbSAoRm4gKG11bmdlIHAgbiwgYSkp
CiAgICB8IG11bmdlX2xpdCAobiwgTm90IChBdG9tIChGbiAocCwgYSkpKSkg
PSBOb3QgKEF0b20gKEZuIChtdW5nZSBwIG4sIGEpKSkKICAgIHwgbXVuZ2Vf
bGl0IF8gPSByYWlzZSBCVUcgIm11bmdlX2xpdCIgImJhZCBsaXRlcmFsIjsK
ICBmdW4gZGlzdGluY3Rpdml6ZSBmbXMgPSBtYXAgbXVuZ2VfbGl0IChlbnVt
ZXJhdGUgMCBmbXMpOyAgICAKICBmdW4gYWR2YW5jZSBOT05FIHMgPSAoU09N
RSBOT05FLCBzKQogICAgfCBhZHZhbmNlIChTT01FIHRocykgcyA9CiAgICBs
ZXQKICAgICAgdmFsIGZtcyA9IGRpc3RpbmN0aXZpemUgKExpc3QubWFwUGFy
dGlhbCAodG90YWwgZGVzdF91bml0KSB0aHMpCiAgICBpbgogICAgICBpZiBu
b24gbnVsbCAoU3Vic3VtZTEuc3Vic3VtZWQgcyBmbXMpIHRoZW4gKE5PTkUs
IHMpCiAgICAgIGVsc2UgKFNPTUUgKFNPTUUgdGhzKSwgU3Vic3VtZTEuYWRk
IChmbXMgfC0+ICgpKSBzKQogICAgZW5kCiAgICBoYW5kbGUgRVJSX0VYTiBf
ID0+IHJhaXNlIEJVRyAiYWR2YW5jZSIgInNob3VsZG4ndCBmYWlsIjsKaW4K
ICBmdW4gc3Vic3VtZWRfZmlsdGVyIHMgZyA9IFMucGFydGlhbF9tYXBzIGFk
dmFuY2UgU3Vic3VtZTEuZW1wdHkgKHMgZyk7CmVuZDsKCigqIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCogVXNlci1mcmllbmRseSBpbnRl
cmZhY2UgdG8gZ2VuZXJpYyBzb2x2ZXJzICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
ICopCgpmdW4gcmF3X3NvbHZlIHMgPSBTLnBhcnRpYWxfbWFwIEkgbyAoc3Vi
c3VtZWRfZmlsdGVyIChzb2x2ZWRfZmlsdGVyIHMpKTsKCmZ1biBzb2x2ZSBz
ID0gUy50b19saXN0IG8gKHJhd19zb2x2ZSBzKTsKCmZ1biBmaW5kIHMgPSAo
Zm4gUy5OSUwgPT4gTk9ORSB8IFMuQ09OUyAoeCwgXykgPT4gU09NRSB4KSBv
IHJhd19zb2x2ZSBzOwoKZnVuIHJlZnV0ZSBzID0gT3B0aW9uLm1hcCB1bndy
YXAgKGZpbmQgcyBbRmFsc2VdKTsKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0gKikKKCogU29sdmVyIG5vZGVzIG11c3QgY29uc3RydWN0IHRo
ZW1zZWx2ZXMgZnJvbSB0aGUgZm9sbG93aW5nIGZvcm0uICAgICAgICAgICAq
KQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCgp0eXBlIGZv
cm0gPQogIHtzbGljZSA6IG1ldGVyIHJlZiwgICAgICAgICAgICAgICAgICAg
KCogQSBtZXRlciB0byBzdG9wIGFmdGVyIGVhY2ggc2xpY2UgKikKICAgdW5p
dHMgOiB1bml0cyByZWYsICAgICAgICAgICAgICAgICAgICgqIFNvbHZlcnMg
c2hhcmUgYSB1bml0IGNhY2hlICopCiAgIHRobXMgIDogdGhtIGxpc3QsICAg
ICAgICAgICAgICAgICAgICAoKiBDb250ZXh0LCBhc3N1bWVkIGNvbnNpc3Rl
bnQgKikKICAgaHlwcyAgOiB0aG0gbGlzdH07ICAgICAgICAgICAgICAgICAg
ICgqIEh5cG90aGVzaXMsIG5vIGFzc3VtcHRpb25zICopCgooKiAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigqIFNvbHZlciBub2RlcyBhbHNv
IGluY29ycG9yYXRlIGEgbmFtZS4gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKikKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSAqKQoKdHlwZSBub2RlX2RhdGEgPSB7bmFtZSA6IHN0cmluZywgc29sdmVy
X2NvbiA6IGZvcm0gLT4gc29sdmVyfTsKCmRhdGF0eXBlIHNvbHZlcl9ub2Rl
ID0KICBTb2x2ZXJfbm9kZSBvZiB7bmFtZSA6IHN0cmluZywgaW5pdGlhbCA6
IHN0cmluZywgc29sdmVyX2NvbiA6IGZvcm0gLT4gc29sdmVyfTsKCmZ1biBt
a19zb2x2ZXJfbm9kZSB7bmFtZSwgc29sdmVyX2Nvbn0gPQogIFNvbHZlcl9u
b2RlCiAge25hbWUgPSBuYW1lLCBpbml0aWFsID0gKHN0ciBvIGhkIG8gZXhw
bG9kZSkgbmFtZSwgc29sdmVyX2NvbiA9IHNvbHZlcl9jb259OwoKdmFsIHBw
X3NvbHZlcl9ub2RlID0gcHBfbWFwIChmbiBTb2x2ZXJfbm9kZSB7bmFtZSwg
Li4ufSA9PiBuYW1lKSBwcF9zdHJpbmc7CgooKiAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tICopCigqIEF0IGVhY2ggc3RlcCB3ZSBzY2hlZHVsZSBh
IHRpbWUgc2xpY2UgdG8gdGhlIGxlYXN0IGNvc3Qgc29sdmVyIG5vZGUuICAg
ICAgKikKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoKdmFs
IFNMSUNFIDogbGltaXQgcmVmID0gcmVmIHt0aW1lID0gU09NRSAoMS4wIC8g
My4wKSwgaW5mcyA9IE5PTkV9OwoKdHlwZSBjb3N0X2ZuID0gTWV0ZXIxLm1l
dGVyX3JlYWRpbmcgLT4gcmVhbDsKCmxvY2FsCiAgZnVuIHNxIHggOiByZWFs
ID0geCAqIHg7CmluCiAgdmFsIHRpbWUxIDogY29zdF9mbiA9IGZuIHt0aW1l
LCAuLi59ID0+IHRpbWU7CiAgdmFsIHRpbWUyIDogY29zdF9mbiA9IGZuIHt0
aW1lLCAuLi59ID0+IHNxIHRpbWU7CiAgdmFsIGluZnMxIDogY29zdF9mbiA9
IGZuIHtpbmZzLCAuLi59ID0+IFJlYWwuZnJvbUludCBpbmZzOwogIHZhbCBp
bmZzMiA6IGNvc3RfZm4gPSBmbiB7aW5mcywgLi4ufSA9PiBzcSAoUmVhbC5m
cm9tSW50IGluZnMpOwplbmQ7CgooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tICopCigqIFRoaXMgYWxsb3dzIHVzIHRvIGhpZXJhcmNoaWNhbGx5
IGFycmFuZ2Ugc29sdmVyIG5vZGVzLiAgICAgICAgICAgICAgICAgICAgKikK
KCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoKbG9jYWwKICBm
dW4gbmFtZSAoU29sdmVyX25vZGUge25hbWUsIC4uLn0pID0gbmFtZTsKICBm
dW4gaW5pdGlhbCAoU29sdmVyX25vZGUge2luaXRpYWwsIC4uLn0pID0gaW5p
dGlhbDsKICBmdW4gc2VxIGYgW10gPSAiIgogICAgfCBzZXEgZiAoaCA6OiB0
KSA9IGZvbGRsIChmbiAobiwgcykgPT4gcyBeICIsIiBeIGYgbikgKGYgaCkg
dDsKaW4KICBmdW4gY29tYmluZV9uYW1lcyBjc29sdmVycyA9ICJbIiBeIHNl
cSAobmFtZSBvIHNuZCkgY3NvbHZlcnMgXiAiXSI7CiAgZnVuIGNvbWJpbmVf
aW5pdGlhbHMgY3NvbHZlcnMgPSAiWyIgXiBzZXEgKGluaXRpYWwgbyBzbmQp
IGNzb2x2ZXJzIF4gIl0iOwplbmQ7CgpkYXRhdHlwZSBzdWJub2RlID0gU3Vi
bm9kZSBvZgogIHtuYW1lICAgOiBzdHJpbmcsCiAgIHVzZWQgICA6IG1ldGVy
X3JlYWRpbmcsCiAgIGNvc3QgICA6IG1ldGVyX3JlYWRpbmcgLT4gcmVhbCwK
ICAgc29sbnMgIDogKHVuaXQgLT4gdGhtIGxpc3Qgb3B0aW9uIHN0cmVhbSkg
b3B0aW9ufTsKCmZ1biBpbml0X3N1Ym5vZGUgKGNvc3QsIChuYW1lLCBzb2x2
ZXIgOiBzb2x2ZXIpKSBnb2FsID0KICBTdWJub2RlCiAge25hbWUgPSBuYW1l
LAogICB1c2VkID0gemVyb19yZWFkaW5nLAogICBjb3N0ID0gY29zdCwKICAg
c29sbnMgPSBTT01FIChmbiAoKSA9PiBzb2x2ZXIgZ29hbCl9OwoKZnVuIGxl
YXN0X2Nvc3QgW10gPSBLIE5PTkUKICB8IGxlYXN0X2Nvc3QgXyA9CiAgKFNP
TUUgbyBzbmQgbyBtaW4gKGZuIChyLCBfKSA9PiBmbiAocywgXykgPT4gciA8
PSBzKSBvCiAgIG1hcCAoZm4gKG4sIFN1Ym5vZGUge3VzZWQsIGNvc3QsIC4u
Ln0pID0+IChjb3N0IHVzZWQsIG4pKSkKCnZhbCBjaG9vc2Vfc3Vibm9kZSA9
CiAgVyBsZWFzdF9jb3N0IG8KICBMaXN0LmZpbHRlciAoZm4gKF8sIFN1Ym5v
ZGUge3NvbG5zLCAuLi59KSA9PiBPcHRpb24uaXNTb21lIHNvbG5zKSBvCiAg
ZW51bWVyYXRlIDA7CgpmdW4gc3Vibm9kZV9pbmZvIChTdWJub2RlIHtuYW1l
LCB1c2VkID0ge3RpbWUsIGluZnN9LCBzb2xucywgLi4ufSkgPQogIG5hbWVf
dG9fc3RyaW5nIG5hbWUgXiAiKCIgXiB0aW1lX3RvX3N0cmluZyB0aW1lIF4g
IiwiIF4KICBpbmZzX3RvX3N0cmluZyBpbmZzIF4gIikiIF4gKGNhc2Ugc29s
bnMgb2YgTk9ORSA9PiAiKiIgfCBTT01FIF8gPT4gIiIpOwoKbG9jYWwKICBm
dW4gc2VxIGYgW10gPSAiIgogICAgfCBzZXEgZiAoaCA6OiB0KSA9IGZvbGRs
IChmbiAobiwgcykgPT4gcyBeICItLSIgXiBmIG4pIChmIGgpIHQ7CmluCiAg
ZnVuIHN0YXR1c19pbmZvIHN1Ym5vZGVzIHVuaXRzID0KICAgICJbIiBeIHNl
cSBzdWJub2RlX2luZm8gc3Vibm9kZXMgXiAiXS0tdT0iIF4gVS5pbmZvIHVu
aXRzIF4gIi0tIjsKZW5kOwoKZnVuIHNjaGVkdWxlIGNoZWNrIHJlYWQgc3Rh
dCA9CiAgbGV0CiAgICBmdW4gc2NoZWQgbm9kZXMgPQogICAgICAoY2hhdCAy
IChzdGF0IG5vZGVzKTsKICAgICAgIGlmIG5vdCAoY2hlY2sgKCkpIHRoZW4K
ICAgICAgICAgKGNoYXQgMSAiP1xuIjsgUy5DT05TIChOT05FLCBmbiAoKSA9
PiBzY2hlZCBub2RlcykpCiAgICAgICBlbHNlCiAgICAgICAgIGNhc2UgY2hv
b3NlX3N1Ym5vZGUgbm9kZXMgb2YgTk9ORSA9PiAoY2hhdCAxICIhXG4iOyBT
Lk5JTCkKICAgICAgICAgfCBTT01FIG4gPT4KICAgICAgICAgICBsZXQKICAg
ICAgICAgICAgIHZhbCBTdWJub2RlIHtuYW1lLCB1c2VkLCBzb2xucywgY29z
dH0gPSBMaXN0Lm50aCAobm9kZXMsIG4pCiAgICAgICAgICAgICB2YWwgKCkg
PSBjaGF0IDEgbmFtZQogICAgICAgICAgICAgdmFsIHNlcSA9IChPcHRpb24u
dmFsT2Ygc29sbnMpICgpCiAgICAgICAgICAgICB2YWwgciA9IHJlYWQgKCkK
ICAgICAgICAgICAgIHZhbCAoKSA9IGNoYXQgMiAoIi0tdD0iIF4gdGltZV90
b19zdHJpbmcgKCN0aW1lIHIpIF4gIlxuIikKICAgICAgICAgICAgIHZhbCB1
c2VkID0gYWRkX3JlYWRpbmdzIHVzZWQgcgogICAgICAgICAgICAgdmFsIChy
ZXMsIHNvbG5zKSA9CiAgICAgICAgICAgICAgIGNhc2Ugc2VxIG9mIFMuTklM
ID0+IChOT05FLCBOT05FKSB8IFMuQ09OUyAoYSwgcikgPT4gKGEsIFNPTUUg
cikKICAgICAgICAgICAgIHZhbCBub2RlID0KICAgICAgICAgICAgICAgU3Vi
bm9kZSB7bmFtZSA9IG5hbWUsIHVzZWQgPSB1c2VkLCBjb3N0ID0gY29zdCwg
c29sbnMgPSBzb2xuc30KICAgICAgICAgICAgIHZhbCBub2RlcyA9IHVwZGF0
ZV9udGggKEsgbm9kZSkgbiBub2RlcwogICAgICAgICAgICAgdmFsICgpID0K
ICAgICAgICAgICAgICAgY2FzZSByZXMgb2YgTk9ORSA9PiAoKQogICAgICAg
ICAgICAgICB8IFNPTUUgXyA9PiAoY2hhdCAyIChzdGF0IG5vZGVzKTsgY2hh
dCAxICIkXG4iKQogICAgICAgICAgIGluCiAgICAgICAgICAgICBTLkNPTlMg
KHJlcywgZm4gKCkgPT4gc2NoZWQgbm9kZXMpCiAgICAgICAgICAgZW5kKQog
IGluCiAgICBzY2hlZAogIGVuZDsKCmZ1biBjb21iaW5lX3NvbHZlcnMgKG4s
IGkpIGNzb2x2ZXJzIHtzbGljZSwgdW5pdHMsIHRobXMsIGh5cHN9ID0KICBs
ZXQKICAgIHZhbCAoKSA9IGNoYXQgMgogICAgICAobiBeICItLWluaXRpYWxp
emluZy0tI3RobXM9IiBeIGludF90b19zdHJpbmcgKGxlbmd0aCB0aG1zKSBe
CiAgICAgICAiLS0jaHlwcz0iIF4gaW50X3RvX3N0cmluZyAobGVuZ3RoIGh5
cHMpIF4gIi5cbiIpCiAgICB2YWwgbWV0ZXIgPSByZWYgKG5ld19tZXRlciBl
eHBpcmVkKQogICAgZnVuIGYgKFNvbHZlcl9ub2RlIHtpbml0aWFsLCBzb2x2
ZXJfY29uLCAuLi59KSA9CiAgICAgIChpbml0aWFsLAogICAgICAgc29sdmVy
X2NvbiB7c2xpY2UgPSBtZXRlciwgdW5pdHMgPSB1bml0cywgdGhtcyA9IHRo
bXMsIGh5cHMgPSBoeXBzfSkKICAgIHZhbCBjbm9kZXMgPSBtYXAgKEkgIyMg
ZikgY3NvbHZlcnMKICAgIGZ1biBjaGVjayAoKSA9CiAgICAgIGNoZWNrX21l
dGVyICghc2xpY2UpIGFuZGFsc28gKG1ldGVyIDo9IHN1Yl9tZXRlciAoIXNs
aWNlKSAoIVNMSUNFKTsgdHJ1ZSkKICAgIGZ1biByZWFkICgpID0gcmVhZF9t
ZXRlciAoIW1ldGVyKQogICAgZnVuIHN0YXQgcyA9IHN0YXR1c19pbmZvIHMg
KCF1bml0cykKICBpbgogICAgZm4gZ29hbCA9PiBzY2hlZHVsZSBjaGVjayBy
ZWFkIHN0YXQgKG1hcCAoQyBpbml0X3N1Ym5vZGUgZ29hbCkgY25vZGVzKQog
IGVuZDsKCmZ1biBjb21iaW5lIGNzb2x2ZXJzID0KICBsZXQKICAgIHZhbCBu
ID0gY29tYmluZV9uYW1lcyBjc29sdmVycwogICAgdmFsIGkgPSBjb21iaW5l
X2luaXRpYWxzIGNzb2x2ZXJzCiAgaW4KICAgIFNvbHZlcl9ub2RlCiAgICB7
bmFtZSA9IG4sIGluaXRpYWwgPSBpLCBzb2x2ZXJfY29uID0gY29tYmluZV9z
b2x2ZXJzIChuLCBpKSBjc29sdmVyc30KICBlbmQ7CgooKiAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tICopCigqIE92ZXJyaWRpbmcgdGhlICduYXR1
cmFsJyBzZXQgb2Ygc3VwcG9ydCBmcm9tIHRoZSBwcm9ibGVtLiAgICAgICAg
ICAgICAgICAgKikKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAq
KQoKZnVuIHNvc19zb2x2ZXJfY29uIGZpbHQgbmFtZSBzb2x2ZXJfY29uIHtz
bGljZSwgdW5pdHMsIHRobXMsIGh5cHN9ID0KICBsZXQKICAgIHZhbCAoKSA9
IGNoYXQgMgogICAgICAobmFtZSBeICItLWluaXRpYWxpemluZy0tI3RobXM9
IiBeIGludF90b19zdHJpbmcgKGxlbmd0aCB0aG1zKSBeCiAgICAgICAiLS0j
aHlwcz0iIF4gaW50X3RvX3N0cmluZyAobGVuZ3RoIGh5cHMpIF4gIi5cbiIp
CiAgICB2YWwgKGh5cHMnLCB0aG1zJykgPSBMaXN0LnBhcnRpdGlvbiBmaWx0
ICh0aG1zIEAgaHlwcykKICBpbgogICAgc29sdmVyX2NvbiB7c2xpY2UgPSBz
bGljZSwgdW5pdHMgPSB1bml0cywgdGhtcyA9IHRobXMnLCBoeXBzID0gaHlw
cyd9CiAgZW5kOwoKZnVuIHNldF9vZl9zdXBwb3J0IGZpbHQgKFNvbHZlcl9u
b2RlIHtuYW1lLCBpbml0aWFsLCBzb2x2ZXJfY29ufSkgPQogIGxldCB2YWwg
bmFtZScgPSAiISIgXiBuYW1lCiAgaW4KICAgIFNvbHZlcl9ub2RlCiAgICB7
bmFtZSA9IG5hbWUnLCBpbml0aWFsID0gaW5pdGlhbCwKICAgICBzb2x2ZXJf
Y29uID0gc29zX3NvbHZlcl9jb24gZmlsdCBuYW1lJyBzb2x2ZXJfY29ufQog
IGVuZDsKCnZhbCBldmVyeXRoaW5nIDogdGhtIC0+IGJvb2wgPSBLIHRydWU7
Cgp2YWwgb25lX25lZ2F0aXZlID0gKGZuIHggPT4gbnVsbCB4IG9yZWxzZSBM
aXN0LmV4aXN0cyBuZWdhdGl2ZSB4KSBvIGNsYXVzZTsKCnZhbCBvbmVfcG9z
aXRpdmUgPSAoZm4geCA9PiBudWxsIHggb3JlbHNlIExpc3QuZXhpc3RzIHBv
c2l0aXZlIHgpIG8gY2xhdXNlOwoKdmFsIGFsbF9uZWdhdGl2ZSA9IExpc3Qu
YWxsIG5lZ2F0aXZlIG8gY2xhdXNlOwoKdmFsIGFsbF9wb3NpdGl2ZSA9IExp
c3QuYWxsIHBvc2l0aXZlIG8gY2xhdXNlOwoKdmFsIG5vdGhpbmcgOiB0aG0g
LT4gYm9vbCA9IEsgZmFsc2U7CgooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tICopCigqIEluaXRpYWxpemluZyBhIHNvbHZlciBub2RlIG1ha2Vz
IGl0IHJlYWR5IGZvciBhY3Rpb24uICAgICAgICAgICAgICAgICAgICAgKikK
KCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoKdHlwZSBpbml0
X2RhdGEgPSB7bGltaXQgOiBsaW1pdCwgdGhtcyA6IHRobSBsaXN0LCBoeXBz
IDogdGhtIGxpc3R9CgpmdW4gaW5pdGlhbGl6ZSAoU29sdmVyX25vZGUge3Nv
bHZlcl9jb24sIC4uLn0pIHtsaW1pdCwgdGhtcywgaHlwc30gPQogIGNhc2Ug
TGlzdC5maW5kIGlzX2NvbnRyYWRpY3Rpb24gKHRobXMgQCBoeXBzKSBvZiBT
T01FIHRoCiAgICA9PiBjb250cmFkaWN0aW9uX3NvbHZlciB0aAogIHwgTk9O
RSA9PgogICAgbGV0CiAgICAgIHZhbCBtZXRlciA9IHJlZiAobmV3X21ldGVy
IGV4cGlyZWQpCiAgICAgIHZhbCB1bml0cyA9IHJlZiBVLmVtcHR5CiAgICAg
IHZhbCBzb2x2ZXIgPQogICAgICAgIHNvbHZlcl9jb24ge3NsaWNlID0gbWV0
ZXIsIHVuaXRzID0gdW5pdHMsIHRobXMgPSB0aG1zLCBoeXBzID0gaHlwc30K
ICAgIGluCiAgICAgIGZuIGcgPT4KICAgICAgbGV0IHZhbCAoKSA9IG1ldGVy
IDo9IG5ld19tZXRlciBsaW1pdAogICAgICBpbiBkcm9wX2FmdGVyIChmbiBf
ID0+IG5vdCAoY2hlY2tfbWV0ZXIgKCFtZXRlcikpKSAoc29sdmVyIGcpCiAg
ICAgIGVuZAogICAgZW5kOwoKZW5kCigqI2xpbmUgMC4wICJzcmMvTWVzb24x
LnNpZyIqKQooKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICopCigq
IFRIRSBNRVNPTiBQUk9PRiBQUk9DRURVUkUgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKikKKCogQ3JlYXRlZCBi
eSBKb2UgSHVyZCwgTm92ZW1iZXIgMjAwMSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAqKQooKiBQYXJ0bHkgcG9ydGVkIGZyb20g
dGhlIENBTUwtTGlnaHQgY29kZSBhY2NvbXBhbnlpbmcgSm9obiBIYXJyaXNv
bidzIGJvb2sgICopCigqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0g
KikKCnNpZ25hdHVyZSBNZXNvbjEgPQpzaWcKCnR5cGUgc29sdmVyX25vZGUg
PSBTb2x2ZXIxLnNvbHZlcl9ub2RlCgooKiBUdW5pbmcgcGFyYW1ldGVycyAq
KQp0eXBlIHBhcmFtZXRlcnMgPQogIHthbmNlc3Rvcl9wcnVuaW5nIDogYm9v
bCwKICAgYW5jZXN0b3JfY3V0dGluZyA6IGJvb2wsCiAgIHN0YXRlX3NpbXBs
aWZ5ICAgOiBib29sLAogICBjYWNoZV9jdXR0aW5nICAgIDogYm9vbCwKICAg
ZGl2aWRlX2NvbnF1ZXIgICA6IGJvb2wsCiAgIHVuaXRfbGVtbWFpemluZyAg
OiBib29sfQoKdmFsIGRlZmF1bHRzIDogcGFyYW1ldGVycwoKKCogVGhlIG1l
c29uIHNvbHZlciAqKQp2YWwgbWVzb24nIDogcGFyYW1ldGVycyAtPiBzb2x2
ZXJfbm9kZQp2YWwgbWVzb24gIDogc29sdmVyX25vZGUgICAgICAgICAgICAg
ICAgICAgICAgICAgICgqIFVzZXMgZGVmYXVsdHMgKikKCigqIFRoZSBkZWx0
YSBwcmVwcm9jZXNzb3IgYXMgYSBzb2x2ZXIgKikKdmFsIGRlbHRhJyA6IHBh
cmFtZXRlcnMgLT4gc29sdmVyX25vZGUKdmFsIGRlbHRhICA6IHNvbHZlcl9u
b2RlICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBVc2VzIGRlZmF1bHRz
ICopCgooKiBUaGUgcHJvbG9nIHNvbHZlciAqKQp2YWwgcHJvbG9nJyA6IHBh
cmFtZXRlcnMgLT4gc29sdmVyX25vZGUKdmFsIHByb2xvZyAgOiBzb2x2ZXJf
bm9kZSAgICAgICAgICAgICAgICAgICAgICAgICAoKiBVc2VzIGRlZmF1bHRz
ICopCgplbmQKKCojbGluZSAwLjAgInNyYy9NZXNvbjEuc21sIiopCigqID09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0gKikKKCogVEhFIE1FU09OIFBS
T09GIFBST0NFRFVSRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAqKQooKiBDcmVhdGVkIGJ5IEpvZSBIdXJkLCBO
b3ZlbWJlciAyMDAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICopCigqIFBhcnRseSBwb3J0ZWQgZnJvbSB0aGUgQ0FNTC1MaWdo
dCBjb2RlIGFjY29tcGFueWluZyBKb2huIEhhcnJpc29uJ3MgYm9vayAgKikK
KCogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqKQoKKCoKYXBwIGxv
YWQKIFsiVXNlZnVsIiwgIlN0cmVhbSIsICJNb3NtbCIsICJUZXJtMSIsICJU
aG0xIiwgIkNhbm9uMSIsICJNYXRjaDEiLAogICJTb2x2ZXIxIiwgIk1ldGVy
MSIsICJVbml0czEiXTsKKikKCigqCiopCnN0cnVjdHVyZSBNZXNvbjEgOj4g
TWVzb24xID0Kc3RydWN0CgpvcGVuIFVzZWZ1bCBUZXJtMSBNYXRjaDEgVGht
MSBDYW5vbjEgTWV0ZXIxIFNvbHZlcjE7CgppbmZpeCB8LT4gOjo+IEA+IG9v
ICMjOwoKc3RydWN0dXJlIFMgPSBTdHJlYW07CnN0cnVjdHVyZSBOID0gTGl0
ZXJhbE5ldDE7CnN0cnVjdHVyZSBVID0gVW5pdHMxOwoKdmFsIHw8PnwgICAg
ICAgICAgPSBTdWJzdDEufDw+fDsKdmFsIG9wIDo6PiAgICAgICAgPSBTdWJz
dDEuOjo+Owp2YWwgZm9ybXVsYV9zdWJzdCA9IFN1YnN0MS5mb3JtdWxhX3N1
YnN0OwoKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQooKiBD
aGF0dGluZy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigqIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0gKikKCnZhbCAoKSA9IHRyYWNlcyA6PSB7bW9k
dWxlID0gIk1lc29uMSIsIGFsaWdubWVudCA9IEsgMX0gOjogIXRyYWNlczsK
CmZ1biBjaGF0IGwgbSA9IHRyYWNlIHttb2R1bGUgPSAiTWVzb24xIiwgbWVz
c2FnZSA9IG0sIGxldmVsID0gbH07CgooKiAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tICopCigqIFR1bmluZyBwYXJhbWV0ZXJzLiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KikKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoKdHlwZSBw
YXJhbWV0ZXJzID0KICB7YW5jZXN0b3JfcHJ1bmluZyA6IGJvb2wsCiAgIGFu
Y2VzdG9yX2N1dHRpbmcgOiBib29sLAogICBzdGF0ZV9zaW1wbGlmeSAgIDog
Ym9vbCwKICAgY2FjaGVfY3V0dGluZyAgICA6IGJvb2wsCiAgIGRpdmlkZV9j
b25xdWVyICAgOiBib29sLAogICB1bml0X2xlbW1haXppbmcgIDogYm9vbH07
Cgp2YWwgZGVmYXVsdHMgPSAKICB7YW5jZXN0b3JfcHJ1bmluZyA9IHRydWUs
CiAgIGFuY2VzdG9yX2N1dHRpbmcgPSB0cnVlLAogICBzdGF0ZV9zaW1wbGlm
eSAgID0gdHJ1ZSwKICAgY2FjaGVfY3V0dGluZyAgICA9IHRydWUsCiAgIGRp
dmlkZV9jb25xdWVyICAgPSB0cnVlLAogICB1bml0X2xlbW1haXppbmcgID0g
dHJ1ZX07CgooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigq
IEhlbHBlciBmdW5jdGlvbnMuICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKikKKCogLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoKZnVuIGhhbHZlcyBuID0gbGV0IHZh
bCBuMSA9IG4gZGl2IDIgaW4gKG4xLCBuIC0gbjEpIGVuZDsKCmZ1biBzcGxp
dHRhYmxlIFtdID0gZmFsc2UKICB8IHNwbGl0dGFibGUgW19dID0gZmFsc2UK
ICB8IHNwbGl0dGFibGUgXyA9IHRydWU7CgooKgpmdW4gcHJvdGVjdCByIGYg
eCA9CiAgbGV0CiAgICB2YWwgdiA9ICFyCiAgICB2YWwgeSA9IGYgeCBoYW5k
bGUgZSBhcyBFUlJfRVhOIF8gPT4gKHIgOj0gdjsgcmFpc2UgZSkKICAgIHZh
bCAoKSA9IHIgOj0gdgogIGluCiAgICB5CiAgZW5kOwoKZnVuIHVudGlsIHAg
PQogIGxldAogICAgb3BlbiBTdHJlYW0KICAgIGZ1biB1IE5JTCA9IE5JTAog
ICAgICB8IHUgKENPTlMgKHgsIHhzKSkgPSBDT05TICh4LCBpZiBwIHggdGhl
biBLIE5JTCBlbHNlIGZuICgpID0+IHUgKHhzICgpKSkKICBpbgogICAgdQog
IGVuZDsKKikKCmxvY2FsCiAgdmFsIHByZWZpeCA9ICJfbSI7CmluCiAgdmFs
IG1rX212YXIgICAgICA9IG1rX3ByZWZpeCBwcmVmaXggbyBpbnRfdG9fc3Ry
aW5nOwogIGZ1biBta19tdmFycyBuIGkgPSBtYXAgKFZhciBvIG1rX212YXIp
IChpbnRlcnZhbCBuIGkpOwogIHZhbCBkZXN0X212YXIgICAgPSBzdHJpbmdf
dG9faW50IG8gZGVzdF9wcmVmaXggcHJlZml4OwplbmQ7CgpkYXRhdHlwZSAn
YSBjaG9pY2UgPSBDSE9JQ0Ugb2YgdW5pdCAtPiAnYSAqICdhIGNob2ljZTsK
CmZ1biBkZXN0X2Nob2ljZSAoQ0hPSUNFIGMpID0gYzsKCnZhbCBub19jaG9p
Y2UgPSAoZm4gKCkgPT4gcmFpc2UgRVJSICJub19jaG9pY2UiICJhbHdheXMg
ZmFpbHMiKTsKCmZ1biBiaW5hcnlfY2hvaWNlIGYgZyA9CiAgKGZuICgpID0+
CiAgIGxldCB2YWwgKGEsIGMpID0gZiAoKSBpbiAoYSwgQ0hPSUNFIChiaW5h
cnlfY2hvaWNlIChkZXN0X2Nob2ljZSBjKSBnKSkgZW5kCiAgIGhhbmRsZSBF
UlJfRVhOIF8gPT4gZyAoKSk7CgpmdW4gZmlyc3RfY2hvaWNlIFtdID0gbm9f
Y2hvaWNlCiAgfCBmaXJzdF9jaG9pY2UgW2ZdID0gZgogIHwgZmlyc3RfY2hv
aWNlIChmIDo6IGZzKSA9IGJpbmFyeV9jaG9pY2UgZiAoZmlyc3RfY2hvaWNl
IGZzKTsKCmZ1biBjaG9pY2Vfc3RyZWFtIGYgPQogIGxldCB2YWwgKGEsIENI
T0lDRSBjKSA9IGYgKCkgaW4gUy5DT05TIChhLCBmbiAoKSA9PiBjaG9pY2Vf
c3RyZWFtIGMpIGVuZAogIGhhbmRsZSBFUlJfRVhOIF8gPT4gUy5OSUw7Cgpm
dW4gc3dpdmVsIG0gbiBsID0KICBsZXQKICAgIHZhbCAobDEsIGwnKSA9IHNw
bGl0IGwgbQogICAgdmFsIChsMiwgbDMpID0gc3BsaXQgbCcgbgogIGluCiAg
ICBsMiBAIGwxIEAgbDMKICBlbmQ7CgpmdW4gdGhtX3Byb3ZlcyB0aCBGYWxz
ZSA9IGlzX2NvbnRyYWRpY3Rpb24gdGgKICB8IHRobV9wcm92ZXMgdGggZ29h
bCA9CiAgY2FzZSBjbGF1c2UgdGggb2YgW2xpdF0gPT4gbGl0ID0gZ29hbCB8
IFtdID0+IHRydWUgfCBfID0+IGZhbHNlOwoKZnVuIGZpbHRlcl9tZXRlciBt
ZXRlciA9CiAgUy5maWx0ZXIgKGZuIGEgPT4gT3B0aW9uLmlzU29tZSBhIG9y
ZWxzZSBub3QgKGNoZWNrX21ldGVyICghbWV0ZXIpKSk7CgooKiAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigqIENvbXBpbGluZyB0aGUgcnVs
ZSBzZXQgdXNlZCBieSBtZXNvbi4gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKikKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSAqKQoKdHlwZSBydWxlID0ge2FzbXMgOiBmb3JtdWxhIGxpc3QsIGMgOiBm
b3JtdWxhLCB0aG0gOiB0aG0sIGFzbW4gOiBpbnR9OwoKZGF0YXR5cGUgcnVs
ZXMgPSBSdWxlcyBvZiBydWxlIE4ubGl0ZXJhbF9tYXA7CgpmdW4gZGVzdF9y
dWxlcyAoUnVsZXMgcikgPSByOwp2YWwgZW1wdHlfcnVsZXMgPSBSdWxlcyBO
LmVtcHR5Owp2YWwgbnVtX2FsbF9ydWxlcyA9IE4uc2l6ZSBvIGRlc3RfcnVs
ZXM7CnZhbCBudW1faW5pdGlhbF9ydWxlcyA9ICNmIG8gTi5zaXplX3Byb2Zp
bGUgbyBkZXN0X3J1bGVzOwpmdW4gbnVtX3J1bGVzIHIgPSBudW1fYWxsX3J1
bGVzIHIgLSBudW1faW5pdGlhbF9ydWxlcyByOwp2YWwgcnVsZXNfdW5pZnkg
PSBOLnVuaWZ5IG8gZGVzdF9ydWxlczsKCnZhbCBwcF9ydWxlcyA9CiAgcHBf
bWFwIGRlc3RfcnVsZXMKICAoTi5wcF9saXRlcmFsX21hcAogICAocHBfbWFw
IChmbiB7YXNtcywgYywgLi4ufSA9PiAoYXNtcywgYykpCiAgICAocHBfYmlu
b3AgIiA9PT4iIChwcF9saXN0IHBwX2Zvcm11bGEpIHBwX2Zvcm11bGEpKSk7
CgpmdW4gYWRkX2NvbnRyYXBvc2l0aXZlcyBjaG9zZW4gc29zIHRoIChSdWxl
cyBydWxzKSA9CiAgbGV0CiAgICB2YWwgdGggPSBGUkVTSF9WQVJTIHRoCiAg
ICB2YWwgbGl0cyA9IGNsYXVzZSB0aAogICAgdmFsIGxpdHMnID0gbWFwIG5l
Z2F0ZSBsaXRzCiAgICB2YWwgYmFzZSA9IG1hcCAoZm4gbCA9PiAoc3VidHJh
Y3QgbGl0cycgW25lZ2F0ZSBsXSwgbCkpIChjaG9zZW4gbGl0cykKICAgIHZh
bCBjb250cnMgPSBpZiBzb3MgdGhlbiAobGl0cycsIEZhbHNlKSA6OiBiYXNl
IGVsc2UgYmFzZQogICAgZnVuIGYgKGEsIGMpID0gYyB8LT4ge2FzbXMgPSBh
LCBjID0gYywgdGhtID0gdGgsIGFzbW4gPSBsZW5ndGggYX0KICBpbgogICAg
UnVsZXMgKGZvbGRsIChmbiAoaCwgdCkgPT4gTi5pbnNlcnQgKGYgaCkgdCkg
cnVscyBjb250cnMpCiAgZW5kOwoKZnVuIHRobXNfdG9fcnVsZXMgY2hvc2Vu
IHRobXMgaHlwcyA9CiAgbGV0IHZhbCBmID0gdW5jdXJyeSBvIGFkZF9jb250
cmFwb3NpdGl2ZXMgY2hvc2VuCiAgaW4gZm9sZGwgKGYgdHJ1ZSkgKGZvbGRs
IChmIGZhbHNlKSBlbXB0eV9ydWxlcyB0aG1zKSBoeXBzCiAgZW5kOwoKdmFs
IG1lc29uX3J1bGVzID0gdGhtc190b19ydWxlcyBJOwoKdmFsIHByb2xvZ19y
dWxlcyA9IHRobXNfdG9fcnVsZXMgKHdyYXAgbyBoZCk7CgooKiAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigqIENyZWF0aW5nIHRoZSBkZWx0
YSBnb2Fscy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKikKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSAqKQoKdmFsIHRobXNfdG9fZGVsdGFfZ29hbHMgPQogIExpc3QuY29uY2F0
IG8KICBtYXAgKGZuIChmLG4pID0+IFtBdG9tIChGbiAoZixuZXdfdmFycyBu
KSksIE5vdCAoQXRvbSAoRm4gKGYsbmV3X3ZhcnMgbikpKV0pIG8KICBmb2xk
bCAodW5jdXJyeSB1bmlvbikgW10gbwogIG1hcCByZWxhdGlvbnMgbwogIExp
c3QuY29uY2F0IG8KICBtYXAgY2xhdXNlOwoKKCogLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLSAqKQooKiBUaGUgc3RhdGUgcGFzc2VkIGFyb3VuZCBi
eSBtZXNvbi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKCnR5
cGUgc3RhdGUgPSB7ZW52IDogc3Vic3QsIGRlcHRoIDogaW50LCBwcm9vZiA6
IHRobSBsaXN0LCBvZmZzZXQgOiBpbnR9OwoKZnVuIHVwZGF0ZV9lbnYgZiAo
e2VudiwgZGVwdGgsIHByb29mLCBvZmZzZXR9IDogc3RhdGUpID0KICB7ZW52
ID0gZiBlbnYsIGRlcHRoID0gZGVwdGgsIHByb29mID0gcHJvb2YsIG9mZnNl
dCA9IG9mZnNldH07CgpmdW4gdXBkYXRlX2RlcHRoIGYgKHtlbnYsIGRlcHRo
LCBwcm9vZiwgb2Zmc2V0fSA6IHN0YXRlKSA9CiAge2VudiA9IGVudiwgZGVw
dGggPSBmIGRlcHRoLCBwcm9vZiA9IHByb29mLCBvZmZzZXQgPSBvZmZzZXR9
OwoKZnVuIHVwZGF0ZV9wcm9vZiBmICh7ZW52LCBkZXB0aCwgcHJvb2YsIG9m
ZnNldH0gOiBzdGF0ZSkgPQogIHtlbnYgPSBlbnYsIGRlcHRoID0gZGVwdGgs
IHByb29mID0gZiBwcm9vZiwgb2Zmc2V0ID0gb2Zmc2V0fTsKCmZ1biB1cGRh
dGVfb2Zmc2V0IGYgKHtlbnYsIGRlcHRoLCBwcm9vZiwgb2Zmc2V0fSA6IHN0
YXRlKSA9CiAge2VudiA9IGVudiwgZGVwdGggPSBkZXB0aCwgcHJvb2YgPSBw
cm9vZiwgb2Zmc2V0ID0gZiBvZmZzZXR9OwoKKCogLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLSAqKQooKiBBbmNlc3RvciBwcnVuaW5nLiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKCmZ1
biBhbmNlc3Rvcl9wcnVuZSBmYWxzZSBfIF8gPSBLIGZhbHNlCiAgfCBhbmNl
c3Rvcl9wcnVuZSB0cnVlIGVudiBnID0KICBsZXQKICAgIHZhbCBnJyA9IGZv
cm11bGFfc3Vic3QgZW52IGcKICAgIGZ1biBjaGVjayBhJyA9IGEnID0gZycK
ICBpbgogICAgTGlzdC5leGlzdHMgKGNoZWNrIG8gZm9ybXVsYV9zdWJzdCBl
bnYpCiAgZW5kOwoKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAq
KQooKiBBbmNlc3RvciBjdXR0aW5nLiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigqIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKCmZ1biBhbmNlc3Rvcl9jdXQg
ZmFsc2UgXyBfID0gSyBmYWxzZQogIHwgYW5jZXN0b3JfY3V0IHRydWUgZW52
IGcgPQogIGxldAogICAgdmFsIGcnID0gbmVnYXRlIChmb3JtdWxhX3N1YnN0
IGVudiBnKQogICAgZnVuIGNoZWNrIGEnID0gYScgPSBnJwogIGluCiAgICBM
aXN0LmV4aXN0cyAoY2hlY2sgbyBmb3JtdWxhX3N1YnN0IGVudikKICBlbmQ7
CgooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigqIENhY2hl
IGN1dHRpbmcuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKikKKCogLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLSAqKQoKZnVuIGNhY2hlX2NvbnQgYyAoe29mZnNldCwg
Li4ufSA6IHN0YXRlKSA9CiAgbGV0CiAgICBmdW4gZiB2ID0gY2FzZSB0b3Rh
bCBkZXN0X212YXIgdiBvZiBOT05FID0+IHRydWUgfCBTT01FIG4gPT4gbiA8
IG9mZnNldAogICAgdmFsIGxpc3RpZnkgPSBTdWJzdDEuZm9sZHIgKGZuIG0g
YXMgdiB8LT4gXyA9PiBpZiBmIHYgdGhlbiBjb25zIG0gZWxzZSBJKSBbXQog
ICAgdmFsIG1lbSA9IHJlZiBbXQogICAgZnVuIHB1cmlmeSAocyBhcyB7ZW52
LCBkZXB0aCA9IG4sIC4uLn0gOiBzdGF0ZSkgPQogICAgICBsZXQKICAgICAg
ICB2YWwgbCA9IGxpc3RpZnkgZW52CiAgICAgICAgZnVuIHAgKG4nLCBsJykg
PSBuIDw9IG4nIGFuZGFsc28gbCA9IGwnCiAgICAgIGluCiAgICAgICAgaWYg
TGlzdC5leGlzdHMgcCAoIW1lbSkgdGhlbiByYWlzZSBFUlIgImNhY2hlX2N1
dCIgInJlcGV0aXRpb24iCiAgICAgICAgZWxzZSAobWVtIDo9IChuLCBsKSA6
OiAoIW1lbSk7IHVwZGF0ZV9lbnYgKEsgKFN1YnN0MS5mcm9tX21hcGxldHMg
bCkpIHMpCiAgICAgIGVuZAogIGluCiAgICBjIG8gcHVyaWZ5CiAgZW5kOwoK
ZnVuIGNhY2hlX2N1dCBmYWxzZSA9IEkKICB8IGNhY2hlX2N1dCB0cnVlID0K
ICBmbiBmID0+IGZuIGEgPT4gZm4gZyA9PiBmbiBjID0+IGZuIHMgPT4gZiBh
IGcgKGNhY2hlX2NvbnQgYyBzKSBzOwoKKCogLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLSAqKQooKiBVbml0IGNsYXVzZSBzaG9ydGN1dC4gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKCmZ1biBn
cmFiX3VuaXQgdW5pdHMgKHMgYXMge3Byb29mID0gdGggOjogXywgLi4ufSA6
IHN0YXRlKSA9CiAgKHVuaXRzIDo9IFUuYWRkIHRoICghdW5pdHMpOyBzKQog
IHwgZ3JhYl91bml0IF8ge3Byb29mID0gW10sIC4uLn0gPSByYWlzZSBCVUcg
ImdyYWJfdW5pdCIgIm5vIHRobXMiOwoKZnVuIHVzZV91bml0IHVuaXRzIGcg
YyAocyBhcyB7ZW52LCAuLi59KSA9CiAgbGV0IHZhbCBwcm92ZSA9IHBhcnRp
YWwgKEVSUiAidXNlX3VuaXQiICJOT05FIikgKFUucHJvdmUgKCF1bml0cykp
CiAgaW4gYyAodXBkYXRlX3Byb29mIChjb25zICh1bndyYXAgKHByb3ZlIFtm
b3JtdWxhX3N1YnN0IGVudiBnXSkpKSBzKQogIGVuZDsKCmZ1biB1bml0X2N1
dCBmYWxzZSBfID0gSQogIHwgdW5pdF9jdXQgdHJ1ZSB1bml0cyA9CiAgZm4g
ZiA9PiBmbiBhID0+IGZuIGcgPT4gZm4gYyA9PiBmbiBzID0+CiAgdXNlX3Vu
aXQgdW5pdHMgZyBjIHMgaGFuZGxlIEVSUl9FWE4gXyA9PiBmIGEgZyAoYyBv
IGdyYWJfdW5pdCB1bml0cykgczsKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0gKikKKCogVGhlIGNvcmUgb2YgbWVzb246IGFuY2VzdG9yIHVu
aWZpY2F0aW9uIG9yIFByb2xvZy1zdHlsZSBleHRlbnNpb24uICAgICAgICAq
KQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCgpmdW4gZnJl
c2hlbl9ydWxlICh7dGhtLCBhc21zLCBjLCAuLi59IDogcnVsZSkgaSA9CiAg
bGV0CiAgICB2YWwgZnZzID0gRlZMIChjIDo6IGFzbXMpCiAgICB2YWwgZnZu
ID0gbGVuZ3RoIGZ2cwogICAgdmFsIG12cyA9IG1rX212YXJzIGkgZnZuCiAg
ICB2YWwgc3ViID0gU3Vic3QxLmZyb21fbWFwbGV0cyAoemlwd2l0aCAoY3Vy
cnkgb3B8LT4pIGZ2cyBtdnMpCiAgaW4KICAgICgoSU5TVCBzdWIgdGhtLCBt
YXAgKGZvcm11bGFfc3Vic3Qgc3ViKSBhc21zLCBmb3JtdWxhX3N1YnN0IHN1
YiBjKSwgaSArIGZ2bikKICBlbmQ7CgpmdW4gcmV3YXJkIHIgPSB1cGRhdGVf
ZGVwdGggKGZuIG4gPT4gbiArIHIpOwoKZnVuIHNwZW5kIG0gZiBjIChzIGFz
IHtkZXB0aCA9IG4sIC4uLn0gOiBzdGF0ZSkgPQogIGxldAogICAgdmFsIGxv
dyA9IG4gLSBtCiAgICB2YWwgKCkgPSBhc3NlcnQgKDAgPD0gbG93KSAoRVJS
ICJtZXNvbiIgImltcG9zc2libGUgZGl2aWRlIGFuZCBjb25xdWVyIikKICAg
IGZ1biBjaGVjayAocycgYXMge2RlcHRoID0gbicsIC4uLn0gOiBzdGF0ZSkg
PQogICAgICBpZiBuJyA8PSBsb3cgdGhlbiBzJyBlbHNlIHJhaXNlIEVSUiAi
bWVzb24iICJkaXZpZGUgYW5kIGNvbnF1ZXIiCiAgaW4KICAgIGYgKGMgbyBj
aGVjaykgcwogIGVuZDsKCmxvY2FsCiAgZnVuIHVuaWZ5IGVudiAodGgsIGFz
bXMsIGMpIGcgPSAodGgsIGFzbXMsIHVuaWZ5X2xpdGVyYWxzIGVudiBjIGcp
CgogIGZ1biBtYXRjaCBlbnYgKHRoLCBhc21zLCBjKSBnID0KICAgIGxldCB2
YWwgc3ViID0gbWF0Y2hfbGl0ZXJhbHMgYyBnCiAgICBpbiAoSU5TVCBzdWIg
dGgsIG1hcCAoZm9ybXVsYV9zdWJzdCBzdWIpIGFzbXMsIGVudikKICAgIGVu
ZDsKaW4KICBmdW4gbmV4dF9zdGF0ZSBmYWxzZSBlbnYgciBnID0gdW5pZnkg
ZW52IHIgZwogICAgfCBuZXh0X3N0YXRlIHRydWUgZW52IHIgZyA9IG1hdGNo
IGVudiByIGcgaGFuZGxlIEVSUl9FWE4gXyA9PiB1bmlmeSBlbnYgciBnOwpl
bmQ7Cgpsb2NhbAogIGZ1biBtcCBfIHRoIFtdIHAgPSBGQUNUT1IgdGggOjog
cAogICAgfCBtcCBlbnYgdGggKGcgOjogZ3MpICh0aDEgOjogcCkgPQogICAg
bXAgZW52IChSRVNPTFZFIChmb3JtdWxhX3N1YnN0IGVudiBnKSAoSU5TVCBl
bnYgdGgxKSB0aCkgZ3MgcAogICAgfCBtcCBfIF8gKF8gOjogXykgW10gPSBy
YWlzZSBCVUcgIm1vZHVzX3BvbmVucyIgImZyZXNoIG91dCBvZiB0aG1zIgpp
bgogIGZ1biBtb2R1c19wb25lbnMgdGggZ3MgKHN0YXRlIGFzIHtlbnYsIC4u
Ln0pID0KICAgIHVwZGF0ZV9wcm9vZiAobXAgZW52IChJTlNUIGVudiB0aCkg
KHJldiBncykpIHN0YXRlOwplbmQ7CgpmdW4gc3dpdmVscCBtIG4gPSB1cGRh
dGVfcHJvb2YgKHN3aXZlbCBtIG4pOwoKZnVuIG1lc29uX2V4cGFuZCB7cGFy
bSA6IHBhcmFtZXRlcnMsIHJ1bGVzLCBjdXQsIG1ldGVyLCBzYXR1cmF0ZWR9
ID0KICBsZXQKICAgIGZ1biBleHBhbmQgYW5jZXN0b3JzIGcgY29udCAoc3Rh
dGUgYXMge2VudiwgLi4ufSkgPQogICAgICBpZiBub3QgKGNoZWNrX21ldGVy
ICghbWV0ZXIpKSB0aGVuCiAgICAgICAgKE5PTkUsIENIT0lDRSAoZm4gKCkg
PT4gZXhwYW5kIGFuY2VzdG9ycyBnIGNvbnQgc3RhdGUpKQogICAgICBlbHNl
IGlmIGFuY2VzdG9yX3BydW5lICgjYW5jZXN0b3JfcHJ1bmluZyBwYXJtKSBl
bnYgZyBhbmNlc3RvcnMgdGhlbgogICAgICAgIHJhaXNlIEVSUiAibWVzb24i
ICJhbmNlc3RvciBwcnVuaW5nIgogICAgICBlbHNlIGlmIGFuY2VzdG9yX2N1
dCAoI2FuY2VzdG9yX2N1dHRpbmcgcGFybSkgZW52IGcgYW5jZXN0b3JzIHRo
ZW4KICAgICAgICAocmVjb3JkX2luZnMgKCFtZXRlcikgMTsgY29udCAodXBk
YXRlX3Byb29mIChjb25zIChBU1NVTUUgZykpIHN0YXRlKSkKICAgICAgZWxz
ZQogICAgICAgIGxldAogICAgICAgICgqdmFsICgpID0gcHJpbnQgKCJtZXNv
bjogIiBeIGZvcm11bGFfdG9fc3RyaW5nIGcgXiAiLlxuIikqKQogICAgICAg
ICAgZnVuIHJlZHVjdGlvbiBhICgpID0KICAgICAgICAgICAgbGV0CiAgICAg
ICAgICAgICAgdmFsIHN0YXRlID0gdXBkYXRlX2VudiAoSyAodW5pZnlfbGl0
ZXJhbHMgZW52IGcgKG5lZ2F0ZSBhKSkpIHN0YXRlCiAgICAgICAgICAgICAg
dmFsIHN0YXRlID0gdXBkYXRlX3Byb29mIChjb25zIChBU1NVTUUgZykpIHN0
YXRlCiAgICAgICAgICAgIGluCiAgICAgICAgICAgICAgKHJlY29yZF9pbmZz
ICghbWV0ZXIpIDE7IGNvbnQgc3RhdGUpCiAgICAgICAgICAgIGVuZAogICAg
ICAgICAgdmFsIGV4cGFuc2lvbiA9IGV4cGFuZF9ydWxlIGFuY2VzdG9ycyBn
IGNvbnQgc3RhdGUKICAgICAgICBpbgogICAgICAgICAgZmlyc3RfY2hvaWNl
CiAgICAgICAgICAobWFwIHJlZHVjdGlvbiBhbmNlc3RvcnMgQAogICAgICAg
ICAgIG1hcCBleHBhbnNpb24gKHJ1bGVzX3VuaWZ5IHJ1bGVzIChmb3JtdWxh
X3N1YnN0IGVudiBnKSkpICgpCiAgICAgICAgZW5kCiAgICBhbmQgZXhwYW5k
X3J1bGUgYW5jZXN0b3JzIGcgY29udCB7ZW52LCBkZXB0aCwgcHJvb2YsIG9m
ZnNldH0gciAoKSA9CiAgICAgIGxldAogICAgICAgIHZhbCBkZXB0aCA9IGRl
cHRoIC0gI2FzbW4gcgogICAgICAgIHZhbCAoKSA9CiAgICAgICAgICBpZiAw
IDw9IGRlcHRoIHRoZW4gKCkKICAgICAgICAgIGVsc2UgKHNhdHVyYXRlZCA6
PSBmYWxzZTsgcmFpc2UgRVJSICJtZXNvbiIgInRvbyBkZWVwIikKICAgICAg
ICB2YWwgKHIsIG9mZnNldCkgPSBmcmVzaGVuX3J1bGUgciBvZmZzZXQKICAg
ICAgICB2YWwgKHRoLCBhc21zLCBlbnYpID0gbmV4dF9zdGF0ZSAoI3N0YXRl
X3NpbXBsaWZ5IHBhcm0pIGVudiByIGcKICAgICAgICB2YWwgKCkgPSByZWNv
cmRfaW5mcyAoIW1ldGVyKSAxCiAgICAgIGluCiAgICAgICAgZXhwYW5kcyAo
ZyA6OiBhbmNlc3RvcnMpIGFzbXMgKGNvbnQgbyBtb2R1c19wb25lbnMgdGgg
YXNtcykKICAgICAgICB7ZW52ID0gZW52LCBkZXB0aCA9IGRlcHRoLCBwcm9v
ZiA9IHByb29mLCBvZmZzZXQgPSBvZmZzZXR9CiAgICAgIGVuZAogICAgYW5k
IGV4cGFuZHMgYW5jZXN0b3JzIGcgYyAocyBhcyB7ZGVwdGggPSBuLCAuLi59
KSA9CiAgICAgIGlmICNkaXZpZGVfY29ucXVlciBwYXJtIGFuZGFsc28gc3Bs
aXR0YWJsZSBnIHRoZW4KICAgICAgICBsZXQKICAgICAgICAgIHZhbCAobDEs
IGwyKSA9IGhhbHZlcyAobGVuZ3RoIGcpCiAgICAgICAgICB2YWwgKGcxLCBn
MikgPSBzcGxpdCBnIGwxCiAgICAgICAgICB2YWwgKGYxLCBmMikgPSBEZiAo
ZXhwYW5kcyBhbmNlc3RvcnMpIChnMSwgZzIpCiAgICAgICAgICB2YWwgKG4x
LCBuMikgPSBoYWx2ZXMgbgogICAgICAgICAgdmFsIHMgPSB1cGRhdGVfZGVw
dGggKEsgbjEpIHMKICAgICAgICBpbgogICAgICAgICAgYmluYXJ5X2Nob2lj
ZQogICAgICAgICAgKGZuICgpID0+IGYxIChmMiBjIG8gcmV3YXJkIG4yKSBz
KQogICAgICAgICAgKGZuICgpID0+IGYyIChzcGVuZCAobjEgKyAxKSBmMSAo
YyBvIHN3aXZlbHAgbDEgbDIpIG8gcmV3YXJkIG4yKSBzKSAoKQogICAgICAg
IGVuZAogICAgICBlbHNlIGZvbGRsICh1bmN1cnJ5IChjdXQgZXhwYW5kIGFu
Y2VzdG9ycykpIGMgKHJldiBnKSBzCiAgaW4KICAgIGN1dCBleHBhbmQgW10K
ICBlbmQ7CgooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigq
IEZ1bGwgbWVzb24gcHJvY2VkdXJlLiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKikKKCogLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoKZnVuIG1lc29uX2ZpbmFsbHkgZyAo
e2VudiwgcHJvb2YsIC4uLn0gOiBzdGF0ZSkgPQogIGxldAogICAgdmFsICgp
ID0gYXNzZXJ0IChsZW5ndGggcHJvb2YgPSBsZW5ndGggZykgKEJVRyAibWVz
b24iICJiYWQgZmluYWwgc3RhdGUiKQogICAgdmFsIGcnID0gbWFwIChmb3Jt
dWxhX3N1YnN0IGVudikgZwogICAgdmFsIHByb29mJyA9IG1hcCAoSU5TVCBl
bnYpIChyZXYgcHJvb2YpCiAgKCp2YWwgKCkgPSAocHJpbnQgIm1lc29uX2Zp
bmFsbHk6ICI7IHByaW50VmFsIChnJywgcHJvb2YnKTsgcHJpbnQgIi5cbiIp
KikKICAgIHZhbCAoKSA9CiAgICAgIGFzc2VydCAoTGlzdC5hbGwgKHVuY3Vy
cnkgdGhtX3Byb3ZlcykgKHppcCBwcm9vZicgZycpKQogICAgICAoQlVHICJt
ZXNvbiIgImRpZCBub3QgcHJvdmUgZ29hbCBsaXN0IikKICBpbgogICAgKFNP
TUUgKEZSRVNIX1ZBUlNMIHByb29mJyksIENIT0lDRSBub19jaG9pY2UpCiAg
ZW5kOwoKZnVuIHJhd19tZXNvbiBzeXN0ZW0gZ29hbHMgZGVwdGggPQogIGNo
b2ljZV9zdHJlYW0KICAoZm4gKCkgPT4KICAgZm9sZGwgKHVuY3VycnkgKG1l
c29uX2V4cGFuZCBzeXN0ZW0pKSAobWVzb25fZmluYWxseSBnb2FscykgKHJl
diBnb2FscykKICAge2VudiA9IHw8PnwsIGRlcHRoID0gZGVwdGgsIHByb29m
ID0gW10sIG9mZnNldCA9IDB9KTsKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0gKikKKCogUmF3IHNvbHZlcnMuICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAq
KQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCgp0eXBlICdh
IHN5c3RlbSA9CiAge3Bhcm0gOiBwYXJhbWV0ZXJzLCBydWxlcyA6IHJ1bGVz
LCBtZXRlciA6IG1ldGVyIHJlZiwgc2F0dXJhdGVkIDogYm9vbCByZWYsCiAg
IGN1dCA6CiAgICAgKGZvcm11bGEgbGlzdCAtPiBmb3JtdWxhIC0+IChzdGF0
ZSAtPiAnYSkgLT4gc3RhdGUgLT4gJ2EpIC0+CiAgICAgIGZvcm11bGEgbGlz
dCAtPiBmb3JtdWxhIC0+IChzdGF0ZSAtPiAnYSkgLT4gc3RhdGUgLT4gJ2F9
OwoKZnVuIG1rX3N5c3RlbSBwYXJtIHVuaXRzIG1ldGVyIHJ1bGVzIDogJ2Eg
c3lzdGVtID0KICBsZXQKICAgIHZhbCB7Y2FjaGVfY3V0dGluZyA9IGNhY2hp
bmcsIHVuaXRfbGVtbWFpemluZyA9IGxlbW1haXppbmcsIC4uLn0gPSBwYXJt
CiAgaW4KICAgIHtwYXJtICAgICAgPSBwYXJtLAogICAgIHJ1bGVzICAgICA9
IHJ1bGVzLAogICAgIG1ldGVyICAgICA9IG1ldGVyLAogICAgIHNhdHVyYXRl
ZCA9IHJlZiBmYWxzZSwKICAgICBjdXQgICAgICAgPSB1bml0X2N1dCBsZW1t
YWl6aW5nIHVuaXRzIG8gY2FjaGVfY3V0IGNhY2hpbmd9CiAgZW5kOwoKZnVu
IG1lc29uJyBwYXJtID0KICBta19zb2x2ZXJfbm9kZQogIHtuYW1lID0gIm1l
c29uIiwKICAgc29sdmVyX2NvbiA9CiAgIGZuIHtzbGljZSwgdW5pdHMsIHRo
bXMsIGh5cHN9ID0+CiAgIGxldAogICAgIHZhbCBydWxzID0gbWVzb25fcnVs
ZXMgdGhtcyBoeXBzCiAgICAgdmFsICgpID0gY2hhdCAyCiAgICAgICAoIm1l
c29uLS1pbml0aWFsaXppbmctLSN0aG1zPSIgXiBpbnRfdG9fc3RyaW5nIChs
ZW5ndGggdGhtcykgXgogICAgICAgICItLSNoeXBzPSIgXiBpbnRfdG9fc3Ry
aW5nIChsZW5ndGggaHlwcykgXgogICAgICAgICItLSNydWxlcz0iIF4gaW50
X3RvX3N0cmluZyAobnVtX3J1bGVzIHJ1bHMpIF4KICAgICAgICAiLS0jaW5p
dGlhbF9ydWxlcz0iIF4gaW50X3RvX3N0cmluZyAobnVtX2luaXRpYWxfcnVs
ZXMgcnVscykgXiAiLlxuIikKICAgICB2YWwgc3lzdGVtIGFzIHtzYXR1cmF0
ZWQgPSBiLCAuLi59ID0gbWtfc3lzdGVtIHBhcm0gdW5pdHMgc2xpY2UgcnVs
cwogICAgIGZ1biBkIG4gPSBpZiAhYiB0aGVuIFMuTklMIGVsc2UgKGIgOj0g
dHJ1ZTsgUy5DT05TIChuLCBmbiAoKSA9PiBkIChuICsgMSkpKQogICAgIGZ1
biBmIHEgZCA9IChjaGF0IDEgKCItIiBeIGludF90b19zdHJpbmcgZCk7IHJh
d19tZXNvbiBzeXN0ZW0gcSBkKQogICAgIGZ1biB1bml0X2NoZWNrIGdvYWxz
IE5PTkUgPSBVLnByb3ZlICghdW5pdHMpIGdvYWxzIHwgdW5pdF9jaGVjayBf
IHMgPSBzCiAgIGluCiAgICAgZm4gZ29hbHMgPT4KICAgICBmaWx0ZXJfbWV0
ZXIgc2xpY2UKICAgICAoUy5tYXAgKHVuaXRfY2hlY2sgZ29hbHMpIChTLmZs
YXR0ZW4gKFMubWFwIChmIGdvYWxzKSAoZCAwKSkpKQogICBlbmR9OwoKdmFs
IG1lc29uID0gbWVzb24nIGRlZmF1bHRzOwoKZnVuIGRlbHRhJyBwYXJtID0K
ICBta19zb2x2ZXJfbm9kZQogIHtuYW1lID0gImRlbHRhIiwKICAgc29sdmVy
X2NvbiA9CiAgIGZuIHtzbGljZSwgdW5pdHMsIHRobXMsIGh5cHN9ID0+CiAg
IGxldAogICAgIHZhbCBydWxzID0gbWVzb25fcnVsZXMgdGhtcyBoeXBzCiAg
ICAgdmFsIGRnb2FscyA9IHRobXNfdG9fZGVsdGFfZ29hbHMgaHlwcwogICAg
IHZhbCAoKSA9IGNoYXQgMgogICAgICAgKCJkZWx0YS0taW5pdGlhbGl6aW5n
LS0jdGhtcz0iIF4gaW50X3RvX3N0cmluZyAobGVuZ3RoIHRobXMpIF4KICAg
ICAgICAiLS0jaHlwcz0iIF4gaW50X3RvX3N0cmluZyAobGVuZ3RoIGh5cHMp
IF4KICAgICAgICAiLS0jcnVsZXM9IiBeIGludF90b19zdHJpbmcgKG51bV9y
dWxlcyBydWxzKSBeCiAgICAgICAgIi0tI2RlbHRhX2dvYWxzPSIgXiBpbnRf
dG9fc3RyaW5nIChsZW5ndGggZGdvYWxzKSBeICIuXG4iKQogICAgIHZhbCBz
eXN0ZW0gYXMge3NhdHVyYXRlZCA9IGIsIC4uLn0gPSBta19zeXN0ZW0gcGFy
bSB1bml0cyBzbGljZSBydWxzCiAgICAgdmFsIGRlbHRhX2dvYWxzID0gUy5m
cm9tX2xpc3QgZGdvYWxzCiAgICAgZnVuIGQgbiA9IGlmICFiIHRoZW4gUy5O
SUwgZWxzZSAoYiA6PSB0cnVlOyBTLkNPTlMgKG4sIGZuICgpID0+IGQgKG4g
KyAxKSkpCiAgICAgZnVuIGYgZCBnID0gKGNoYXQgMSAiKyI7IFMubWFwIChL
IE5PTkUpIChyYXdfbWVzb24gc3lzdGVtIFtnXSBkKSkKICAgICBmdW4gZyBk
ID0gKGNoYXQgMSAoaW50X3RvX3N0cmluZyBkKTsgUy5mbGF0dGVuIChTLm1h
cCAoZiBkKSBkZWx0YV9nb2FscykpCiAgICAgZnVuIGggKCkgPSBTLmZsYXR0
ZW4gKFMubWFwIGcgKGQgMCkpCiAgICAgZnVuIHVuaXRfY2hlY2sgZ29hbHMg
Tk9ORSA9IFUucHJvdmUgKCF1bml0cykgZ29hbHMgfCB1bml0X2NoZWNrIF8g
cyA9IHMKICAgaW4KICAgICBjYXNlIGRlbHRhX2dvYWxzIG9mIFMuTklMID0+
IEsgUy5OSUwKICAgICB8IF8gPT4gZm4gZ29hbHMgPT4gZmlsdGVyX21ldGVy
IHNsaWNlIChTLm1hcCAodW5pdF9jaGVjayBnb2FscykgKGggKCkpKQogICBl
bmR9OwoKdmFsIGRlbHRhID0gZGVsdGEnIGRlZmF1bHRzOwoKdmFsIHByb2xv
Z19kZXB0aCA9IGNhc2UgSW50Lm1heEludCBvZiBOT05FID0+IDEwMDAwMDAg
fCBTT01FIGkgPT4gaTsKCmZ1biBwcm9sb2cnIHBhcm0gPQogIG1rX3NvbHZl
cl9ub2RlCiAge25hbWUgPSAicHJvbG9nIiwKICAgc29sdmVyX2NvbiA9CiAg
IGZuIHtzbGljZSwgdW5pdHMsIHRobXMsIGh5cHN9ID0+CiAgIGxldAogICAg
IHZhbCBzeXN0ZW0gPSBta19zeXN0ZW0gcGFybSB1bml0cyBzbGljZSAocHJv
bG9nX3J1bGVzIHRobXMgaHlwcykKICAgICBmdW4gY29tbWVudCBTLk5JTCA9
ICIhXG4iCiAgICAgICB8IGNvbW1lbnQgKFMuQ09OUyAoTk9ORSwgXykpID0g
Ii0iCiAgICAgICB8IGNvbW1lbnQgKFMuQ09OUyAoU09NRSBfLCBfKSkgPSAi
JFxuIgogICAgIGZ1biBmIHQgKCkgPSBsZXQgdmFsIHggPSB0ICgpIGluIGNo
YXQgMSAoY29tbWVudCB4KTsgeCBlbmQKICAgaW4KICAgICBmbiBnb2FscyA9
PiBTLm1hcF90aGsgZiAoZm4gKCkgPT4gcmF3X21lc29uIHN5c3RlbSBnb2Fs
cyBwcm9sb2dfZGVwdGgpICgpCiAgIGVuZH07Cgp2YWwgcHJvbG9nID0gcHJv
bG9nJyBkZWZhdWx0czsKCigqIHF1aWNrIHRlc3RpbmcKbG9hZCAiUHJvYmxl
bTEiOwpvcGVuIFByb2JsZW0xOwp2YWwgdGltZSA9IE1vc21sLnRpbWU7CnF1
b3RhdGlvbiA6PSB0cnVlOwppbnN0YWxsUFAgcHBfdGVybTsKaW5zdGFsbFBQ
IHBwX2Zvcm11bGE7Cmluc3RhbGxQUCBTdWJzdDEucHBfc3Vic3Q7Cmluc3Rh
bGxQUCBwcF9ydWxlczsKaW5zdGFsbFBQIHBwX3RobTsKCnZhbCBsaW1pdCA6
IGxpbWl0IHJlZiA9IHJlZiB7aW5mcyA9IE5PTkUsIHRpbWUgPSBTT01FIDMw
LjB9OwpmdW4gcHJvbG9nX3NvbHZlIGQgcSA9CiAgdHJ5CiAgKHNvbHZlCiAg
IChpbml0aWFsaXplIHByb2xvZyB7bGltaXQgPSAhbGltaXQsIHRobXMgPSBk
LCBoeXBzID0gW119KSkgcTsKZnVuIG1lc29uX3Byb3ZlIGcgPQogIHRyeSAo
dGltZSByZWZ1dGUpCiAgKGluaXRpYWxpemUgKHNldF9vZl9zdXBwb3J0IGFs
bF9uZWdhdGl2ZSBtZXNvbikKICAge2xpbWl0ID0gIWxpbWl0LCB0aG1zID0g
W10sIGh5cHMgPSBheGlvbWF0aXplIChOb3QgKGdlbmVyYWxpemUgZykpfSk7
CmZ1biBkZWx0YV9wcm92ZSBnID0KICB0cnkgKHRpbWUgcmVmdXRlKQogIChp
bml0aWFsaXplICAoc2V0X29mX3N1cHBvcnQgYWxsX25lZ2F0aXZlIGRlbHRh
KQogICB7bGltaXQgPSAhbGltaXQsIHRobXMgPSBbXSwgaHlwcyA9IGVxX2F4
aW9tYXRpemUgKE5vdCAoZ2VuZXJhbGl6ZSBnKSl9KTsKCigqIFRlc3Rpbmcg
dGhlIGRlbHRhIHByb3ZlciAqKQoKdmFsIHA0OCA9IHBhcnNlX2Zvcm11bGEg
KGdldCBlcXVhbGl0eSAiUDQ4Iik7CmRlbHRhX3Byb3ZlIHA0ODsKCigqIFRl
c3RpbmcgdGhlIHByb2xvZyBzb2x2ZXIgKikKCnZhbCBkYXRhYmFzZSA9IChh
eGlvbWF0aXplIG8gcGFyc2VfZm9ybXVsYSkKICBbCgpRVU9URSAic3Vic2V0
IG5pbCBuaWwgL1xcXG4gICAoIXYgeCB5LiBzdWJzZXQgeCB5ID09PiBzdWJz
ZXQgKHYgOjogeCkgKHYgOjogeSkpIC9cXFxuICAgKCF2IHggeS4gc3Vic2V0
IHggeSA9PT4gc3Vic2V0IHggICAgICAgICh2IDo6IHkpKSJdOwoKdHJ5IChw
cm9sb2dfc29sdmUgZGF0YWJhc2UpIFtwYXJzZV9mb3JtdWxhIFtRVU9URSAi
c3Vic2V0IHggKDAgOjogMSA6OiAyIDo6IG5pbCkiXV07CigqIHRha2VzIGFn
ZXMKdHJ5IChwcm9sb2dfc29sdmUgZGF0YWJhc2UpIFtwYXJzZV9mb3JtdWxh
IGBzdWJzZXQgKDAgOjogMSA6OiAyIDo6IG5pbCkgeGBdOwoqKQoKdmFsIGRh
dGFiYXNlID0gKGF4aW9tYXRpemUgbyBwYXJzZV9mb3JtdWxhKQogIFsKCgpR
VU9URSAicCAwIDMgL1xcXG4gICAoIXguIHAgeCA0KSAvXFxcbiAgICgheC4g
cCB4IDMgPT0+IHAgKHMgKHMgKHMgeCkpKSAzKSAvXFxcbiAgICgheC4gcCAo
cyB4KSAzID09PiBwIHggMykiXTsKCnRyeSAocHJvbG9nX3NvbHZlIGRhdGFi
YXNlKSBbcGFyc2VfZm9ybXVsYSBbUVVPVEUgInAgKHMgMCkgMyJdXTsKCigq
IFRlc3RpbmcgdGhlIG1lc29uIHByb3ZlciAqKQoKbWVzb25fcHJvdmUgVHJ1
ZTsKCnZhbCBwNTkgPSBwYXJzZV9mb3JtdWxhIChnZXQgbm9uZXF1YWxpdHkg
IlA1OSIpOwp2YWwgdGhzID0gYXhpb21hdGl6ZSAoTm90IChnZW5lcmFsaXpl
IHA1OSkpOwp2YWwgcnVsZXMgPSBtZXNvbl9ydWxlcyBbXSB0aHM7CnJ1bGVz
X3VuaWZ5IHJ1bGVzIChwYXJzZV9mb3JtdWxhIFtRVU9URSAiflAgMCJdKTsK
bWVzb25fcHJvdmUgcDU5OwoKdmFsIHAzOSA9IHBhcnNlX2Zvcm11bGEgKGdl
dCBub25lcXVhbGl0eSAiUDM5Iik7CmNsYXVzYWwgKE5vdCAoZ2VuZXJhbGl6
ZSBwMzkpKTsKYXhpb21hdGl6ZSAoTm90IChnZW5lcmFsaXplIHAzOSkpOwpt
ZXNvbl9wcm92ZSBwMzk7Cgp2YWwgbnVtMTQgPSBwYXJzZV9mb3JtdWxhIChn
ZXQgdHB0cCAiTlVNMDE0LTEiKTsKbWVzb25fcHJvdmUgbnVtMTQ7Cgp2YWwg
cDU1ID0gcGFyc2VfZm9ybXVsYSAoZ2V0IG5vbmVxdWFsaXR5ICJQNTUiKTsK
bWVzb25fcHJvdmUgcDU1OwoKdmFsIHAyNiA9IHBhcnNlX2Zvcm11bGEgKGdl
dCBub25lcXVhbGl0eSAiUDI2Iik7CmNsYXVzYWwgKE5vdCAoZ2VuZXJhbGl6
ZSBwMjYpKTsKbWVzb25fcHJvdmUgcDI2OwoKdmFsIGxvcyA9IHBhcnNlX2Zv
cm11bGEgKGdldCBub25lcXVhbGl0eSAiTE9TIik7Cm1lc29uX3Byb3ZlIGxv
czsKCnZhbCByZWR1Y2VkX251bTI4NCA9IHBhcnNlX2Zvcm11bGEKICBbCgoK
CgoKUVVPVEUgImZpYm9uYWNjaSAwIChzIDApIC9cXCBmaWJvbmFjY2kgKHMg
MCkgKHMgMCkgL1xcXG4gICAoIXggeSB6IHgnIHknIHonLlxuICAgICAgfnN1
bSB4IChzIChzIDApKSB6IFxcLyB+c3VtIHkgKHMgMCkgeiBcXC9cbiAgICAg
IH5maWJvbmFjY2kgeCB4JyBcXC8gfmZpYm9uYWNjaSB5IHknIFxcLyB+c3Vt
IHgnIHknIHonIFxcL1xuICAgICAgZmlib25hY2NpIHogeicpIC9cXCAoIXgu
IHN1bSB4IDAgeCkgL1xcXG4gICAoIXggeSB6LiB+c3VtIHggeSB6IFxcLyBz
dW0geCAocyB5KSAocyB6KSkgL1xcXG4gICAoIXguIH5maWJvbmFjY2kgKHMg
KHMgKHMgKHMgKHMgKHMgKHMgKHMgMCkpKSkpKSkpIHgpID09PiBGIl07Cm1l
c29uX3Byb3ZlIHJlZHVjZWRfbnVtMjg0OwoKdmFsIHAyOSA9IHBhcnNlX2Zv
cm11bGEgKGdldCBub25lcXVhbGl0eSAiUDI5Iik7CmNsYXVzYWwgKE5vdCAo
Z2VuZXJhbGl6ZSBwMjkpKTsKbWVzb25fcHJvdmUgcDI5OwoKdmFsIG51bTEg
PSBwYXJzZV9mb3JtdWxhIChnZXQgdHB0cCAiTlVNMDAxLTEiKTsKbWVzb25f
cHJvdmUgbnVtMTsKCnZhbCBtb2RlbF9jb21wbGV0ZW5lc3MgPSBwYXJzZV9m
b3JtdWxhIChnZXQgbm9uZXF1YWxpdHkgIk1PREVMX0NPTVBMRVRFTkVTUyIp
OwptZXNvbl9wcm92ZSBtb2RlbF9jb21wbGV0ZW5lc3M7CiopCgplbmQKKCoj
bGluZSAwLjAgInNyYy9SZXNvbHZlcnMxLnNpZyIqKQooKiA9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09ICopCigqIEEgVFlQRSBUTyBGSU5EIFJFU09M
VkFOVCBDTEFVU0VTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKikKKCogQ3JlYXRlZCBieSBKb2UgSHVyZCwgQXByaWwgMjAw
MiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAq
KQooKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICopCgpzaWduYXR1
cmUgUmVzb2x2ZXJzMSA9CnNpZwoKdHlwZSAnYSBwcCAgID0gJ2EgVXNlZnVs
LnBwCnR5cGUgZm9ybXVsYSA9IFRlcm0xLmZvcm11bGEKdHlwZSBzdWJzdCAg
ID0gU3Vic3QxLnN1YnN0CnR5cGUgdGhtICAgICA9IFRobTEudGhtCgp0eXBl
IHJlc29sdmVycwp0eXBlIHJlc29sdmFudCA9IHttYXRlIDogdGhtLCBzdWIg
OiBzdWJzdCwgcmVzIDogdGhtfQoKdmFsIGVtcHR5X3Jlc29sdmVycyA6IHJl
c29sdmVycwp2YWwgYWRkX3Jlc29sdmVyICAgIDogdGhtIC0+IHJlc29sdmVy
cyAtPiByZXNvbHZlcnMKdmFsIGZpbmRfcmVzb2x2YW50cyA6IHJlc29sdmVy
cyAtPiB0aG0gLT4gcmVzb2x2YW50IGxpc3QKdmFsIHJlc29sdmVyc19pbmZv
ICA6IHJlc29sdmVycyAtPiBzdHJpbmcKdmFsIHBwX3Jlc29sdmVycyAgICA6
IHJlc29sdmVycyBwcAoKZW5kCigqI2xpbmUgMC4wICJzcmMvUmVzb2x2ZXJz
MS5zbWwiKikKKCogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqKQoo
KiBBIFRZUEUgVE8gRklORCBSRVNPTFZBTlQgQ0xBVVNFUyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigqIENyZWF0ZWQg
YnkgSm9lIEh1cmQsIEFwcmlsIDIwMDIgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKikKKCogPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PSAqKQoKKCoKYXBwIGxvYWQgWyJUaG0xIiwgIk1hdGNoMSJd
OwoqKQoKKCoKKikKc3RydWN0dXJlIFJlc29sdmVyczEgOj4gUmVzb2x2ZXJz
MSA9CnN0cnVjdAoKaW5maXggfC0+IDo6PjsKCm9wZW4gVXNlZnVsIFRlcm0x
IE1hdGNoMSBUaG0xIENhbm9uMTsKCnN0cnVjdHVyZSBOID0gTGl0ZXJhbE5l
dDE7Cgp2YWwgfDw+fCAgICAgICAgICA9IFN1YnN0MS58PD58Owp2YWwgb3Ag
Ojo+ICAgICAgICA9IFN1YnN0MS46Oj47CnZhbCBmb3JtdWxhX3N1YnN0ID0g
U3Vic3QxLmZvcm11bGFfc3Vic3Q7CgooKiAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tICopCigqIENoYXR0aW5nLiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KikKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoKdmFsICgp
ID0gdHJhY2VzIDo9IHttb2R1bGUgPSAiUmVzb2x2ZXJzMSIsIGFsaWdubWVu
dCA9IEsgMX0gOjogIXRyYWNlczsKCmZ1biBjaGF0IGwgbSA9IHRyYWNlIHtt
b2R1bGUgPSAiUmVzb2x2ZXJzMSIsIG1lc3NhZ2UgPSBtLCBsZXZlbCA9IGx9
OwoKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQooKiBIZWxw
ZXIgZnVuY3Rpb25zLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0gKikKCmZ1biB0cmljaCBsIG4gPQogIGNhc2Ugc3Bs
aXQgbCBuIG9mIChfLCBbXSkgPT4gcmFpc2UgRVJSICJ0cmljaCIgIm5vIGV4
YWN0IgogIHwgKGwsIGggOjogdCkgPT4gKGwsIGgsIHQpOwoKKCogLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQooKiBUaGUgdHlwZSBkZWZpbml0
aW9uIHdpdGggc29tZSBzaW1wbGUgb3BlcmF0aW9ucy4gICAgICAgICAgICAg
ICAgICAgICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0gKikKCnR5cGUgcmVzb2x2ZXJzID0gKGludCAqIHRobSkgTi5saXRlcmFs
X21hcDsKCnR5cGUgcmVzb2x2YW50ID0ge21hdGUgOiB0aG0sIHN1YiA6IHN1
YnN0LCByZXMgOiB0aG19OwoKdmFsIGVtcHR5X3Jlc29sdmVycyA6IHJlc29s
dmVycyA9IE4uZW1wdHk7CgpmdW4gYWRkX3Jlc29sdmVyIHRoID0KICBsZXQg
ZnVuIGFkZF9saXQgKChuLCBsaXQpLCBuZXQpID0gTi5pbnNlcnQgKGxpdCB8
LT4gKG4sIHRoKSkgbmV0CiAgaW4gZm4gbmV0ID0+IGZvbGRsIGFkZF9saXQg
bmV0IChlbnVtZXJhdGUgMCAoY2xhdXNlIHRoKSkKICBlbmQ7CgpmdW4gcmVz
b2x2ZXJzX2luZm8gKG5ldCA6IHJlc29sdmVycykgPSBpbnRfdG9fc3RyaW5n
IChOLnNpemUgbmV0KTsKCnZhbCBwcF9yZXNvbHZlcnMgPSBwcF9tYXAgcmVz
b2x2ZXJzX2luZm8gcHBfc3RyaW5nOwoKdmFsIGRlc3RfcmVzb2x2ZXJzIDog
cmVzb2x2ZXJzIC0+IHRobSBsaXN0ID0gCiAgbWFwIHNuZCBvIExpc3QuZmls
dGVyIChlcXVhbCAwIG8gZnN0KSBvIE4udG9fbGlzdDsKCigqIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCogQSByZWZlcmVuY2UgaW1wbGVt
ZW50YXRpb24gZm9yIGRlYnVnZ2luZy4gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
ICopCgpmdW4gY2Fub25pemUgbGl0cyA9CiAgbGV0CiAgICB2YWwgbnZhcnMg
PSBlbnVtZXJhdGUgMCAoRlYgKGxpc3RfbWtfY29uaiBsaXRzKSkKICAgIHZh
bCBtcyA9IG1hcCAoZm4gKG4sIHYpID0+IHYgfC0+IFZhciAoIl9fIiBeIChp
bnRfdG9fc3RyaW5nIG4pKSkgbnZhcnMKICBpbgogICAgbWFwIChmb3JtdWxh
X3N1YnN0IChTdWJzdDEuZnJvbV9tYXBsZXRzIG1zKSkgbGl0cwogIGVuZDsK
CmxvY2FsCiAgZnVuIHN1YnMgYWNjIFtdID0gYWNjCiAgICB8IHN1YnMgYWNj
ICgocHJldiwgW10pIDo6IG90aGVycykgPSBzdWJzIChwcmV2IDo6IGFjYykg
b3RoZXJzCiAgICB8IHN1YnMgYWNjICgocHJldiwgaCA6OiB0KSA6OiBvdGhl
cnMpID0KICAgIHN1YnMgYWNjICgoaCA6OiBwcmV2LCB0KSA6OiAocHJldiwg
dCkgOjogb3RoZXJzKTsKaW4KICBmdW4gYWxsX25vbmVtcHR5X3N1YnNldHMg
bCA9IHRsIChzdWJzIFtdIFsoW10sIGwpXSk7CmVuZDsKCmZ1biBwYWlycyBb
XSA9IHJhaXNlIEVSUiAicGFpcnMiICJlbXB0eSIKICB8IHBhaXJzIFtoXSA9
IFtdCiAgfCBwYWlycyAoaCA6OiAodCBhcyBoJyA6OiBfKSkgPSAoaCwgaCcp
IDo6IHBhaXJzIHQ7CgpmdW4gc2FuaXR5X3Jlc29sdmVfb24gdGggdGgnIHMg
cycgPQogIGxldAogICAgdmFsIHN1YiA9IHVuaWZ5bF9saXRlcmFscyB8PD58
IChwYWlycyAocyBAIHMnKSkKICAgIHZhbCBsaXQgPSBmb3JtdWxhX3N1YnN0
IHN1YiAoaGQgcykKICAgIHZhbCByZXMgPSBGQUNUT1IgKFJFU09MVkUgbGl0
IChJTlNUIHN1YiB0aCkgKElOU1Qgc3ViIHRoJykpCiAgaW4KICAgIHttYXRl
ID0gdGgnLCBzdWIgPSBzdWIsIHJlcyA9IHJlc30KICBlbmQ7CgpmdW4gc2Fu
aXR5X3Jlc29sdmUgdGggdGgnID0KICBMaXN0Lm1hcFBhcnRpYWwgSQogIChj
YXJ0d2l0aCAodG90YWwgbyBzYW5pdHlfcmVzb2x2ZV9vbiB0aCB0aCcpCiAg
IChhbGxfbm9uZW1wdHlfc3Vic2V0cyAoY2xhdXNlIHRoKSkKICAgKGFsbF9u
b25lbXB0eV9zdWJzZXRzIChtYXAgbmVnYXRlIChjbGF1c2UgdGgnKSkpKTsK
CmZ1biBzYW5pdHlfcmVzb2x2YW50cyBuZXQgdGggPQogIExpc3QuY29uY2F0
IChtYXAgKHNhbml0eV9yZXNvbHZlIHRoKSAoZGVzdF9yZXNvbHZlcnMgbmV0
KSk7CgpmdW4gc2FuaXR5X2NoZWNrIG5ldCB0aCAocmVzIDogcmVzb2x2YW50
IGxpc3QpID0KICBsZXQKICAgIHZhbCAoKSA9IGNoYXQgMSAiWCIKICAgIHZh
bCBmID0gUFAucHBfdG9fc3RyaW5nICghTElORV9MRU5HVEgpIChwcF9saXN0
IChwcF9tYXAgQVhJT00gcHBfdGhtKSkKICAgIHZhbCBmYXN0ID0gbWFwIChj
YW5vbml6ZSBvIGNsYXVzZSBvICNyZXMpIHJlcwogICAgdmFsIHNsb3cgPSBt
YXAgKGNhbm9uaXplIG8gY2xhdXNlIG8gI3JlcykgKHNhbml0eV9yZXNvbHZh
bnRzIG5ldCB0aCkKICAgIHZhbCAoKSA9CiAgICAgIGlmIHN1YnNldCBmYXN0
IHNsb3cgdGhlbiAoKQogICAgICBlbHNlCiAgICAgICAgKHByaW50ICgiXG5z
YW5pdHlfY2hlY2s6IGV4dHJhIGNsYXVzZXM6XG5uZXQgPSAiIF4KICAgICAg
ICAgICAgICAgIGYgKG1hcCBjbGF1c2UgKGRlc3RfcmVzb2x2ZXJzIG5ldCkp
IF4gIlxudGggPSAiIF4KICAgICAgICAgICAgICAgIHRobV90b19zdHJpbmcg
dGggXiAiXG5mYXN0ID0gIiBeIGYgZmFzdCBeICJcbnNsb3cgPSAiIF4gZiBz
bG93IF4KICAgICAgICAgICAgICAgICJcbmV4dHJhID0gIiBeIGYgKHN1YnRy
YWN0IGZhc3Qgc2xvdykgXgogICAgICAgICAgICAgICAgIlxubWlzc2luZyA9
ICIgXiBmIChzdWJ0cmFjdCBzbG93IGZhc3QpIF4gIlxuIik7CiAgICAgICAg
IHJhaXNlIEJVRyAiZmluZF9yZXNvbHZhbnRzIiAiZXh0cmEgY2xhdXNlcyEi
KQogICAgdmFsICgpID0KICAgICAgaWYgc3Vic2V0IHNsb3cgZmFzdCB0aGVu
ICgpCiAgICAgIGVsc2UKICAgICAgICAocHJpbnQgKCJcbnNhbml0eV9jaGVj
azogbWlzc2luZyBjbGF1c2VzOlxubmV0ID0gIiBeCiAgICAgICAgICAgICAg
ICBmIChtYXAgY2xhdXNlIChkZXN0X3Jlc29sdmVycyBuZXQpKSBeICJcbnRo
ID0gIiBeCiAgICAgICAgICAgICAgICB0aG1fdG9fc3RyaW5nIHRoIF4gIlxu
ZmFzdCA9ICIgXiBmIGZhc3QgXiAiXG5zbG93ID0gIiBeIGYgc2xvdyBeCiAg
ICAgICAgICAgICAgICAiXG5taXNzaW5nID0gIiBeIGYgKHN1YnRyYWN0IHNs
b3cgZmFzdCkgXgogICAgICAgICAgICAgICAgIlxuZXh0cmEgPSAiIF4gZiAo
c3VidHJhY3QgZmFzdCBzbG93KSBeICJcbiIpOwogICAgICAgICByYWlzZSBC
VUcgImZpbmRfcmVzb2x2YW50cyIgIm1pc3NpbmcgY2xhdXNlcyIpCigqCiAg
ICB2YWwgKCkgPQogICAgICAocHJpbnQgKCJcbnNhbml0eV9jaGVjazogb2s6
XG5uZXQgPSAiIF4KICAgICAgICAgICAgICBmIChtYXAgY2xhdXNlIChkZXN0
X3Jlc29sdmVycyBuZXQpKSBeICJcbnRoID0gIiBeCiAgICAgICAgICAgICAg
dGhtX3RvX3N0cmluZyB0aCBeICJcbnJlcyA9ICIgXiBmIGZhc3QgXiAiXG4i
KSkKKikKICBpbgogICAgKCkKICBlbmQ7CgooKiAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tICopCigqIFRoZSBjb3JlIGVuZ2luZSBmb3IgY29tYmlu
ZWQgZmFjdG9yL3Jlc29sdXRpb24gc3RlcHMuICAgICAgICAgICAgICAgICAg
ICAgKikKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoKZnVu
IHJlc29sdmVfb24gcyByIHRoIHRoJyA9CiAgU09NRSAoRkFDVE9SIChSRVNP
TFZFIHIgKElOU1QgcyB0aCkgKElOU1QgcyB0aCcpKSk7CgpmdW4gcmVzb2x2
ZSBhY2MgW10gPSBhY2MKICB8IHJlc29sdmUgYWNjICgoYXZvaWQsIHN1Yiwg
cmVzLCBbXSkgOjogb3RoZXJzKSA9CiAgcmVzb2x2ZQogIChpZiBtZW0gcmVz
IChtYXAgKGZvcm11bGFfc3Vic3Qgc3ViKSBhdm9pZCkgdGhlbiBhY2MKICAg
ZWxzZSAocmVzLCBzdWIpIDo6IGFjYykgb3RoZXJzCiAgfCByZXNvbHZlIGFj
YyAoKGF2b2lkLCBzdWIsIHJlcywgeCA6OiB4cykgOjogb3RoZXJzKSA9CiAg
bGV0CiAgICBmdW4gZiBjID0gcmVzb2x2ZSBhY2MgKGMgKCh4IDo6IGF2b2lk
LCBzdWIsIHJlcywgeHMpIDo6IG90aGVycykpCiAgaW4KICAgIGNhc2UgdG90
YWwgKHVuaWZ5X2xpdGVyYWxzIHN1YiByZXMpIHggb2YgTk9ORSA9PiBmIEkK
ICAgIHwgU09NRSBzdWInCiAgICAgID0+IGYgKGNvbnMgKGF2b2lkLCBTdWJz
dDEucmVmaW5lIHN1YiBzdWInLCBmb3JtdWxhX3N1YnN0IHN1YicgcmVzLCB4
cykpCiAgZW5kOwoKZnVuIHJlc29sdmVfZnJvbSAobiwgdGgpIChuJywgdGgn
KSA9CiAgbGV0CiAgICB2YWwgKHByZXYsIGxpdCwgc3VjYykgPSB0cmljaCAo
Y2xhdXNlIHRoKSBuCiAgICB2YWwgKHByZXYnLCBsaXQnLCBzdWNjJykgPSB0
cmljaCAobWFwIG5lZ2F0ZSAoY2xhdXNlIHRoJykpIG4nCiAgICB2YWwgc3Vi
ID0gdW5pZnlfbGl0ZXJhbHMgfDw+fCBsaXQgbGl0JwogICAgdmFsIHJlcyA9
IGZvcm11bGFfc3Vic3Qgc3ViIGxpdAogICAgZnVuIGYgKHIsIHMpID0gT3B0
aW9uLm1hcCAocGFpciBzKSAocmVzb2x2ZV9vbiBzIHIgdGggdGgnKQogIGlu
CiAgICBMaXN0Lm1hcFBhcnRpYWwgZiAocmVzb2x2ZSBbXSBbKHByZXYgQCBw
cmV2Jywgc3ViLCByZXMsIHN1Y2MgQCBzdWNjJyldKQogIGVuZDsKCmZ1biBy
ZXNvbHZhbnRzIG5ldCB0aCA9CiAgbGV0CiAgICBmdW4gZyAoXywgbWF0ZSkg
KChzdWIsIHJlcyksIGwpID0ge21hdGUgPSBtYXRlLCBzdWIgPSBzdWIsIHJl
cyA9IHJlc30gOjogbAogICAgZnVuIHIgbSAodSwgYWNjKSA9CiAgICAgIGNh
c2UgdG90YWwgKHJlc29sdmVfZnJvbSAobSwgdGgpKSB1IG9mIE5PTkUgPT4g
YWNjCiAgICAgIHwgU09NRSBsID0+IGZvbGRsIChnIHUpIGFjYyBsCiAgICBm
dW4gZiAoKG0sIGxpdCksIGFjYykgPSBmb2xkbCAociBtKSBhY2MgKE4udW5p
ZnkgbmV0IChuZWdhdGUgbGl0KSkKICAgIHZhbCByZXMgPSBmb2xkbCBmIFtd
IChlbnVtZXJhdGUgMCAoY2xhdXNlIHRoKSkKICAoKnZhbCAoKSA9IHNhbml0
eV9jaGVjayBuZXQgdGggcmVzKikKICBpbgogICAgcmVzCiAgZW5kCgpmdW4g
ZmluZF9yZXNvbHZhbnRzIG5ldCB0aCA9CiAgTGlzdC5maWx0ZXIgKG5vbiB0
YXV0b2xvZ291cyBvIGNsYXVzZSBvICNyZXMpIChyZXNvbHZhbnRzIG5ldCB0
aCkKICBoYW5kbGUgRVJSX0VYTiBfID0+IHJhaXNlIEJVRyAiZmluZF9yZXNv
bHZhbnRzIiAic2hvdWxkIG5ldmVyIGZhaWwiOwoKKCogUXVpY2sgdGVzdGlu
ZwpxdW90YXRpb24gOj0gdHJ1ZTsKaW5zdGFsbFBQIHBwX2Zvcm11bGE7Cmlu
c3RhbGxQUCBwcF90ZXJtOwppbnN0YWxsUFAgcHBfc3Vic3Q7Cmluc3RhbGxQ
UCBwcF90aG07CnZhbCB0aCA9IEFYSU9NIChtYXAgcGFyc2UgW2BwKDMsIHgs
IHYpYCwgYHEoeClgLCBgcCgzLCB4LCB6KWBdKTsKdmFsIHRoJyA9IEFYSU9N
IChtYXAgcGFyc2UgW2B+cCgzLCBmKHkpLCB3KWAsIGB+cSh5KWAsIGB+cCgz
LCBmKHkpLCA0KWBdKTsKdHJ5IChyZXNvbHZlX2Zyb20gKDAsIHRoKSkgKDAs
IHRoJyk7CnRyeSAocmVzb2x2ZV9mcm9tICgyLCB0aCkpICgwLCB0aCcpOwp0
cnkgKHJlc29sdmVfZnJvbSAoMCwgdGgpKSAoMiwgdGgnKTsKdHJ5IChyZXNv
bHZlX2Zyb20gKDIsIHRoKSkgKDIsIHRoJyk7CnZhbCByID0gYWRkX3Jlc29s
dmVyIHRoJyBlbXB0eV9yZXNvbHZlcnM7Cm1hcCAjcmVzIChmaW5kX3Jlc29s
dmFudHMgciB0aCk7CiopCgplbmQKKCojbGluZSAwLjAgInNyYy9UaGVhcDEu
c2lnIiopCigqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKikKKCog
QSBUWVBFIFRPIFNUT1JFIENMQVVTRVMgV0FJVElORyBUTyBCRSBVU0VEIChU
SEVBUCA9IFRIRU9SRU0gSEVBUCkgICAgICAgICAqKQooKiBDcmVhdGVkIGJ5
IEpvZSBIdXJkLCBBcHJpbCAyMDAyICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICopCigqID09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0gKikKCnNpZ25hdHVyZSBUaGVhcDEgPQpzaWcKCnR5cGUgJ2Eg
c3Vic3VtZSA9ICdhIFN1YnN1bWUxLnN1YnN1bWUKdHlwZSB0aG0gICAgICAg
ID0gVGhtMS50aG0KCigqIFR1bmluZyBwYXJhbWV0ZXJzICopCnR5cGUgcGFy
YW1ldGVycyA9IHtmaWZvX3NrZXcgOiBpbnQsIGNsZWFuaW5nX2ZyZXEgOiBp
bnR9CnZhbCBkZWZhdWx0cyA6IHBhcmFtZXRlcnMKCigqIFRoZW9yZW0gSEVB
UHMgKikKdHlwZSB0aGVhcAp2YWwgbmV3X3RoZWFwICAgICAgIDogcGFyYW1l
dGVycyAtPiB0aGVhcAp2YWwgZW1wdHlfdGhlYXAgICAgIDogdGhlYXAgICAg
ICAgICAgICAgICAgICAgICAgICgqIFVzZXMgZGVmYXVsdHMgKikKdmFsIHRo
ZWFwX3NpemUgICAgICA6IHRoZWFwIC0+IGludAp2YWwgdGhlYXBfYWRkICAg
ICAgIDogdGhtIC0+IHRoZWFwIC0+IHRoZWFwCnZhbCB0aGVhcF9hZGRsICAg
ICAgOiB0aG0gbGlzdCAtPiB0aGVhcCAtPiB0aGVhcAp2YWwgdGhlYXBfcmVt
b3ZlICAgIDogdGhlYXAgLT4gKHRobSAqIHRoZWFwKSBvcHRpb24KdmFsIHRo
ZWFwX3N1YnN1bWVycyA6IHRoZWFwIC0+IHRobSBzdWJzdW1lCnZhbCB0aGVh
cF9pbmZvICAgICAgOiB0aGVhcCAtPiBzdHJpbmcgICAoKiBPdXRwdXRzICIo
c2l6ZSx3ZWlnaHQpIiAqKQoKZW5kCigqI2xpbmUgMC4wICJzcmMvVGhlYXAx
LnNtbCIqKQooKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICopCigq
IEEgVFlQRSBUTyBTVE9SRSBDTEFVU0VTIFdBSVRJTkcgVE8gQkUgVVNFRCAo
VEhFQVAgPSBUSEVPUkVNIEhFQVApICAgICAgICAgKikKKCogQ3JlYXRlZCBi
eSBKb2UgSHVyZCwgQXByaWwgMjAwMiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAqKQooKiA9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09ICopCgooKgphcHAgbG9hZCBbIkhlYXAiLCAiUXVldWUiLCAi
VGhtMSIsICJTdWJzdW1lcnMxIl07CiopCgooKgoqKQpzdHJ1Y3R1cmUgVGhl
YXAxIDo+IFRoZWFwMSA9CnN0cnVjdAoKaW5maXggfC0+OwoKb3BlbiBVc2Vm
dWwgVGVybTEgVGhtMTsKCnN0cnVjdHVyZSBRID0gUXVldWU7CnN0cnVjdHVy
ZSBIID0gSGVhcDsKc3RydWN0dXJlIFMgPSBTdWJzdW1lMTsKCnR5cGUgJ2Eg
cXVldWUgICA9ICdhIFEucXVldWU7CnR5cGUgJ2EgaGVhcCAgICA9ICdhIEgu
aGVhcDsKdHlwZSAnYSBzdWJzdW1lID0gJ2EgUy5zdWJzdW1lOwoKKCogLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQooKiBUdW5pbmcgcGFyYW1l
dGVycy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0gKikKCnR5cGUgcGFyYW1ldGVycyA9IHtmaWZvX3NrZXcgOiBpbnQs
IGNsZWFuaW5nX2ZyZXEgOiBpbnR9Cgp2YWwgZGVmYXVsdHMgPSB7Zmlmb19z
a2V3ID0gMywgY2xlYW5pbmdfZnJlcSA9IDEwMDB9OwoKKCogLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSAqKQooKiBUaGVvcmVtIEhFQVBzLiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0g
KikKCnR5cGUgdGhlYXAgPQogICgoaW50ICogaW50KSAqIChpbnQgKiBpbnQp
KSAqIHRobSBxdWV1ZSAqIChpbnQgKiAoaW50ICogdGhtKSBoZWFwKSAqCiAg
dGhtIHN1YnN1bWU7Cgpsb2NhbCBmdW4gb3JkZXIgKChtLCBfIDogdGhtKSwg
KG4sIF8gOiB0aG0pKSA9IEludC5jb21wYXJlIChtLCBuKTsKaW4gdmFsIGVt
cHR5X3RoZWFwX2hlYXAgPSBILmVtcHR5IG9yZGVyOwplbmQ7CgpmdW4gbmV3
X3RoZWFwIHtmaWZvX3NrZXcsIGNsZWFuaW5nX2ZyZXF9ID0KICAoKEQgY2xl
YW5pbmdfZnJlcSwgRCBmaWZvX3NrZXcpLCBRLmVtcHR5LCAoMCwgZW1wdHlf
dGhlYXBfaGVhcCksIFMuZW1wdHkpOwoKdmFsIGVtcHR5X3RoZWFwID0gbmV3
X3RoZWFwIGRlZmF1bHRzOwoKZnVuIHRoZWFwX3NpemUgKF8sIF8sIChfLCBo
KSwgXykgPSBILnNpemUgaDsKZnVuIHRoZWFwX3dlaWdodCAoXywgXywgKHcs
IF8pLCBfKSA9IHc7CgooKgpmdW4gY2xlYW5fdGhlYXAgKCgoXywgQyksIEYp
LCBRLCAoXywgSCksIF8pID0KICBsZXQKICAgIHZhbCBoYXNoID0gUG9seWhh
c2gubWtQb2x5VGFibGUgKDEwMDAwLCBFUlIgImNsZWFwX3RoZWFwIiAibm90
IGZvdW5kIikKICAgIGZ1biBtYXJrICh2LCB0aCkgPSBQb2x5aGFzaC5pbnNl
cnQgaGFzaCAoY2xhdXNlIHRoLCB2KQogICAgdmFsICgpID0gSC5hcHAgbWFy
ayBICiAgICBmdW4gYWRkICh2LCB0aCkgKHEsIHcsIGgsIGwpID0KICAgICAg
KFEuYWRkIHRoIHEsIHcgKyB2LCBILmFkZCAodiwgdGgpIGgsIFMuYWRkIChj
bGF1c2UgdGggfC0+IHRoKSBsKQogICAgZnVuIGNoZWNrIHEgbiA9CiAgICAg
IGlmIFEuaXNfZW1wdHkgcSB0aGVuIG4KICAgICAgZWxzZQogICAgICAgIGxl
dAogICAgICAgICAgdmFsIHRoID0gUS5oZCBxCiAgICAgICAgaW4KICAgICAg
ICAgIGNoZWNrIChRLnRsIHEpCiAgICAgICAgICAoY2FzZSB0b3RhbCAoUG9s
eWhhc2gucmVtb3ZlIGhhc2gpIChjbGF1c2UgdGgpIG9mIE5PTkUgPT4gbgog
ICAgICAgICAgIHwgU09NRSB2ID0+IGFkZCAodiwgdGgpIG4pCiAgICAgICAg
ZW5kCiAgaW4KICAgIChmbiAocSwgdywgaCwgbCkgPT4gKCgoQywgQyksIEYp
LCBxLCAodywgaCksIGwpKQogICAgKGNoZWNrIFEgKFEuZW1wdHksIDAsIGVt
cHR5X3RoZWFwX2hlYXAsIFMuZW1wdHkpKQogIGVuZDsKKikKCigqZnVuIHRo
ZWFwX2FkZCB0aCAoaCBhcyAoKCgwLF8pLCBfKSwgXywgXywgXykpID0gdGhl
YXBfYWRkIHRoIChjbGVhbl90aGVhcCBoKSopCmZ1biB0aGVhcF9hZGQgdGgg
KCgoYywgY20pLCBmKSwgcSwgKHcsIGgpLCBsKSA9CiAgbGV0CiAgICB2YWwg
Y2wgPSBjbGF1c2UgdGgKICAgIHZhbCB2ID0gZm9ybXVsYV9zaXplIChsaXN0
X21rX2Rpc2ogY2wpCiAgICB2YWwgaCcgPSBILmFkZCAodiwgdGgpIGgKICBp
bgogICAgKCgoYyAtIDEsIGNtKSwgZiksIFEuYWRkIHRoIHEsICh3ICsgdiwg
aCcpLCBTLmFkZCAoY2xhdXNlIHRoIHwtPiB0aCkgbCkKICBlbmQ7CgpmdW4g
dGhlYXBfYWRkbCB0aHMgaCA9IGZvbGRsICh1bmN1cnJ5IHRoZWFwX2FkZCkg
aCB0aHM7CgpmdW4gdGhlYXBfcmVtb3ZlICgoYywgKDAsIGYpKSwgcSwgaCwg
bCkgPQogIGlmIFEuaXNfZW1wdHkgcSB0aGVuIE5PTkUKICBlbHNlIFNPTUUg
KFEuaGQgcSwgKChjLCAoZiwgZikpLCBRLnRsIHEsIGgsIGwpKQogIHwgdGhl
YXBfcmVtb3ZlICgoYywgKG4sIGYpKSwgcSwgKHcsIGgpLCBsKSA9CiAgaWYg
SC5pc19lbXB0eSBoIHRoZW4gTk9ORQogIGVsc2UKICAgIGxldCB2YWwgKCh2
LCB4KSwgaCkgPSBILnJlbW92ZSBoCiAgICBpbiBTT01FICh4LCAoKGMsIChu
IC0gMSwgZikpLCBxLCAodyAtIHYsIGgpLCBsKSkKICAgIGVuZDsKCmZ1biB0
aGVhcF9zdWJzdW1lcnMgKF8sIF8sIF8sIGwpID0gbDsKCmZ1biB0aGVhcF9p
bmZvIHRocCA9CiAgIigiIF4gaW50X3RvX3N0cmluZyAodGhlYXBfc2l6ZSB0
aHApIF4gIiwiIF4KICBpbnRfdG9fc3RyaW5nICh0aGVhcF93ZWlnaHQgdGhw
KSBeICIpIjsKCmVuZAooKiNsaW5lIDAuMCAic3JjL1Jlc29sdXRpb24xLnNp
ZyIqKQooKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICopCigqIFRI
RSBSRVNPTFVUSU9OIFBST09GIFBST0NFRFVSRSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKikKKCogQ3JlYXRlZCBieSBK
b2UgSHVyZCwgTm92ZW1iZXIgMjAwMSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAqKQooKiA9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09ICopCgpzaWduYXR1cmUgUmVzb2x1dGlvbjEgPQpzaWcKCnR5cGUg
c29sdmVyX25vZGUgPSBTb2x2ZXIxLnNvbHZlcl9ub2RlCgooKiBUdW5pbmcg
cGFyYW1ldGVycyAqKQp0eXBlIHBhcmFtZXRlcnMgPQogIHtzdWJzdW1wdGlv
bl9jaGVja2luZyA6IGludCwgICAgICAgICAgICAgICAgICAgICgqIGluIHRo
ZSByYW5nZSAwLi4zICopCiAgIHBvc2l0aXZlX3JlZmluZW1lbnQgIDogYm9v
bCwKICAgdGhlYXBfcGFybSAgICAgICAgICAgOiBUaGVhcDEucGFyYW1ldGVy
c30KCnZhbCBkZWZhdWx0cyA6IHBhcmFtZXRlcnMKCigqIFJlc29sdXRpb24g
KikKdmFsIHJlc29sdXRpb24nIDogcGFyYW1ldGVycyAtPiBzb2x2ZXJfbm9k
ZQp2YWwgcmVzb2x1dGlvbiAgOiBzb2x2ZXJfbm9kZSAgICAgICAgICAgICAg
ICAgICAgICgqIFVzZXMgZGVmYXVsdHMgKikKCmVuZAooKiNsaW5lIDAuMCAi
c3JjL1Jlc29sdXRpb24xLnNtbCIqKQooKiA9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09ICopCigqIFRIRSBSRVNPTFVUSU9OIFBST09GIFBST0NFRFVS
RSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KikKKCogQ3JlYXRlZCBieSBKb2UgSHVyZCwgTm92ZW1iZXIgMjAwMSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiA9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09ICopCgooKgphcHAgbG9hZAogWyJV
c2VmdWwiLCAiTW9zbWwiLCAiVGVybTEiLCAiVGhtMSIsICJDYW5vbjEiLCAi
VGhlYXAxIiwKICAiU3RyZWFtIiwgIlNvbHZlcjEiLCAiTWV0ZXIxIiwgIlVu
aXRzMSIsICJSZXNvbHZlcnMxIl07CiopCgooKgoqKQpzdHJ1Y3R1cmUgUmVz
b2x1dGlvbjEgOj4gUmVzb2x1dGlvbjEgPQpzdHJ1Y3QKCm9wZW4gVXNlZnVs
IFRlcm0xIFRobTEgQ2Fub24xIE1ldGVyMSBTb2x2ZXIxIFJlc29sdmVyczEg
VGhlYXAxOwoKaW5maXggfC0+IDo6PiBAPiBvbyAjIyA6OiogOjpAOwoKc3Ry
dWN0dXJlIFMgPSBTdHJlYW07CnN0cnVjdHVyZSBVID0gVW5pdHMxOwoKdHlw
ZSAnYSBzdWJzdW1lID0gJ2EgU3Vic3VtZTEuc3Vic3VtZTsKCigqIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCogQ2hhdHRpbmcuICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tICopCgp2YWwgKCkgPSB0cmFjZXMgOj0ge21vZHVsZSA9ICJSZXNvbHV0
aW9uMSIsIGFsaWdubWVudCA9IEsgMX0gOjogIXRyYWNlczsKCmZ1biBjaGF0
IGwgbSA9IHRyYWNlIHttb2R1bGUgPSAiUmVzb2x1dGlvbjEiLCBtZXNzYWdl
ID0gbSwgbGV2ZWwgPSBsfTsKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0gKikKKCogVHVuaW5nIHBhcmFtZXRlcnMuICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQoo
KiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCgp0eXBlIHBhcmFt
ZXRlcnMgPQogIHtzdWJzdW1wdGlvbl9jaGVja2luZyA6IGludCwgICAgICAg
ICAgKCogaW4gdGhlIHJhbmdlIDAuLjMgKikKICAgcG9zaXRpdmVfcmVmaW5l
bWVudCAgOiBib29sLAogICB0aGVhcF9wYXJtICAgICAgICAgICA6IFRoZWFw
MS5wYXJhbWV0ZXJzfQoKdmFsIGRlZmF1bHRzID0KICB7c3Vic3VtcHRpb25f
Y2hlY2tpbmcgPSAxLAogICBwb3NpdGl2ZV9yZWZpbmVtZW50ICA9IHRydWUs
CiAgIHRoZWFwX3Bhcm0gICAgICAgICAgID0gVGhlYXAxLmRlZmF1bHRzfTsK
CigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCogQ2xhdXNl
IHN0b3Jlcy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tICopCgp0eXBlIHN0b3JlID0gdGhtIHN1YnN1bWUgKiBy
ZXNvbHZlcnM7Cgp2YWwgZW1wdHlfc3RvcmUgOiBzdG9yZSA9IChTdWJzdW1l
MS5lbXB0eSwgZW1wdHlfcmVzb2x2ZXJzKTsKCmZ1biBzdG9yZV9hZGQgdGgg
KHMsIHIpID0KICAoU3Vic3VtZTEuYWRkIChjbGF1c2UgdGggfC0+IHRoKSBz
LCBhZGRfcmVzb2x2ZXIgdGggcik7CgpmdW4gc3RvcmVfcmVzb2x2YW50cyAo
KF8sIHIpIDogc3RvcmUpID0gZmluZF9yZXNvbHZhbnRzIHI7CgpmdW4gc3Rv
cmVfc3Vic3VtZWQgKChzLCBfKSA6IHN0b3JlKSA9IFN1YnN1bWUxLnN1YnN1
bWVkIHMgbyBjbGF1c2U7CgpmdW4gc3RvcmVfaW5mbyAocywgcikgPSAiKCIg
XiBTdWJzdW1lMS5pbmZvIHMgXiAiLCIgXiByZXNvbHZlcnNfaW5mbyByIF4g
IikiOwoKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQooKiBQ
b3NpdGl2ZSByZWZpbmVtZW50LiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigqIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0gKikKCmxvY2FsCiAgdmFsIHBvc190aCA9IExp
c3QuYWxsIHBvc2l0aXZlIG8gY2xhdXNlOwoKICBmdW4gY2hlY2sgdHJ1ZSA9
IEsgdHJ1ZQogICAgfCBjaGVjayBmYWxzZSA9IGZuICh7bWF0ZSwgLi4ufSA6
IHJlc29sdmFudCkgPT4gcG9zX3RoIG1hdGU7CmluCiAgZnVuIHBvc2l0aXZl
X2NoZWNrIGZhbHNlID0gSyAoSyB0cnVlKQogICAgfCBwb3NpdGl2ZV9jaGVj
ayB0cnVlID0gY2hlY2sgbyBwb3NfdGg7CmVuZDsKCigqIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0gKikKKCogRnVsbCByZXNvbHV0aW9uIHByb2Nl
ZHVyZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICop
CgpleGNlcHRpb24gQ29udHJhZGljdGlvbiBvZiB0aG07CgpmdW4gdW5pdF9z
dHJlbmd0aGVuIHVuaXRzIHRoID0KICAoY2FzZSBmaXJzdCAoVS5zdWJzdW1l
cyB1bml0cykgKGNsYXVzZSB0aCkgb2YgU09NRSB0aCA9PiB0aAogICB8IE5P
TkUgPT4gVS5kZW1vZCB1bml0cyB0aCk7CgpmdW4gc3Vic3VtcHRpb25fY2hl
Y2sgc3RvcmUgdGggPQogIGNhc2Ugc3RvcmVfc3Vic3VtZWQgc3RvcmUgdGgg
b2YgW10gPT4gU09NRSB0aCB8IF8gOjogXyA9PiBOT05FOwoKZnVuIHRoZWFw
X3N0cmVuZ3RoZW4gdGhlYXAgdGggPQogIChjYXNlIFN1YnN1bWUxLnN0cmlj
dGx5X3N1YnN1bWVkICh0aGVhcF9zdWJzdW1lcnMgdGhlYXApIChjbGF1c2Ug
dGgpIG9mIFtdCiAgICAgPT4gdGgKICAgfCAoXywgdGgpIDo6IF8gPT4gdGgp
OwoKZnVuIHJlc29sdmUgKHBhcm0gOiBwYXJhbWV0ZXJzKSA9CiAgbGV0CiAg
ICBmdW4gZmVlZGJhY2sgayByID0KICAgICAgaW50X3RvX3N0cmluZyBrIF4g
KGlmIGsgPSByIHRoZW4gIiIgZWxzZSAiLyIgXiBpbnRfdG9fc3RyaW5nIHIp
CgogICAgZnVuIEwgbiA9IG4gPD0gI3N1YnN1bXB0aW9uX2NoZWNraW5nIHBh
cm0KICAgIHZhbCBwb3NfZmlsdCA9IE9wdGlvbi5maWx0ZXIgbyBwb3NpdGl2
ZV9jaGVjayAoI3Bvc2l0aXZlX3JlZmluZW1lbnQgcGFybSkKCiAgICBmdW4g
ZnRlc3QgYiBmID0gaWYgYiB0aGVuIE9wdGlvbi5tYXBQYXJ0aWFsIChzdWJz
dW1wdGlvbl9jaGVjayBmKSBlbHNlIEkKICAgIGZ1biBzdGVzdCBiIHMgPSBp
ZiBiIHRoZW4gc3Vic3VtcHRpb25fY2hlY2sgcyBlbHNlIFNPTUUKICAgIGZ1
biB3cGFzcyBiIHcgPSBpZiBiIHRoZW4gdGhlYXBfc3RyZW5ndGhlbiB3IGVs
c2UgSQogICAgZnVuIHVwYXNzIHUgPSB1bml0X3N0cmVuZ3RoZW4gdQoKICAg
IGZ1biBuZXh0X2NhbmRpZGF0ZSB1IGYgcyB3ID0KICAgICAgY2FzZSB0aGVh
cF9yZW1vdmUgdyBvZiBOT05FID0+IE5PTkUKICAgICAgfCBTT01FICh0aCwg
dykgPT4KICAgICAgICAoY2FzZSAoZnRlc3QgKEwgMSkgZiBvIHN0ZXN0IChM
IDEpIHMgbyB3cGFzcyAoTCAyKSB3IG8gdXBhc3MgdSkgdGggb2YKICAgICAg
ICAgICBOT05FID0+IG5leHRfY2FuZGlkYXRlIHUgZiBzIHcKICAgICAgICAg
fCBTT01FIHRoID0+IFNPTUUgKHRoLCB3KSkKCiAgICBmdW4gcmV0ZW50aW9u
X3Rlc3QgdSBmIHMgdGggPQogICAgICBMaXN0Lm1hcFBhcnRpYWwKICAgICAg
KE9wdGlvbi5tYXBQYXJ0aWFsIChmdGVzdCAoTCAzKSBmIG8gc3Rlc3QgKEwg
MykgcyBvIHVwYXNzIHUgbyAjcmVzKSBvCiAgICAgICBwb3NfZmlsdCB0aCkK
CiAgICBmdW4gY2hlY2tfYWRkIHRoID0KICAgICAgaWYgaXNfY29udHJhZGlj
dGlvbiB0aCB0aGVuIHJhaXNlIENvbnRyYWRpY3Rpb24gdGggZWxzZSBVLmFk
ZCB0aAogIGluCiAgICBmbiByZWNvcmQgPT4gZm4gKGZhY3RzLCB1c2VkLCB1
bnVzZWQpID0+IGZuIHVuaXRzID0+CiAgICAoY2FzZSBuZXh0X2NhbmRpZGF0
ZSB1bml0cyBmYWN0cyB1c2VkIHVudXNlZCBvZiBOT05FID0+IE5PTkUKICAg
ICB8IFNPTUUgKHRoLCB1bnVzZWQpID0+CiAgICAgICBsZXQKICAgICAgICAg
dmFsIHVuaXRzID0gY2hlY2tfYWRkIHRoIHVuaXRzCiAgICAgICAgIHZhbCB1
c2VkID0gc3RvcmVfYWRkIHRoIHVzZWQKICAgICAgICAgdmFsIHRoID0gRlJF
U0hfVkFSUyB0aAogICAgICAgICB2YWwgcmVzb2x2YW50cyA9CiAgICAgICAg
ICAgc3RvcmVfcmVzb2x2YW50cyBmYWN0cyB0aCBAIHN0b3JlX3Jlc29sdmFu
dHMgdXNlZCB0aAogICAgICAgICB2YWwgKCkgPSByZWNvcmQgKGxlbmd0aCBy
ZXNvbHZhbnRzKQogICAgICAgICB2YWwgdW5pdHMgPSBmb2xkbCAodW5jdXJy
eSBjaGVja19hZGQpIHVuaXRzIChtYXAgI3JlcyByZXNvbHZhbnRzKQogICAg
ICAgICB2YWwga2VlcCA9IHJldGVudGlvbl90ZXN0IHVuaXRzIGZhY3RzIHVz
ZWQgdGggcmVzb2x2YW50cwogICAgICAgICB2YWwgKCkgPSBjaGF0IDIgKGZl
ZWRiYWNrIChsZW5ndGgga2VlcCkgKGxlbmd0aCByZXNvbHZhbnRzKSkKICAg
ICAgICAgdmFsIHVudXNlZCA9IHRoZWFwX2FkZGwga2VlcCB1bnVzZWQKICAg
ICAgIGluCiAgICAgICAgIFNPTUUgKChmYWN0cywgdXNlZCwgdW51c2VkKSwg
dW5pdHMpCiAgICAgICBlbmQpCiAgICAgICBoYW5kbGUgRVJSX0VYTiBfID0+
IHJhaXNlIEJVRyAicmVzb2x2ZSIgInNob3VsZG4ndCBmYWlsIgogIGVuZDsK
CmZ1biByYXdfcmVzb2x1dGlvbiBwYXJtID0KICBta19zb2x2ZXJfbm9kZQog
IHtuYW1lID0gInJlc29sdXRpb24iLAogICBzb2x2ZXJfY29uID0KICAgZm4g
e3NsaWNlLCB1bml0cywgdGhtcywgaHlwc30gPT4KICAgbGV0CiAgICAgdmFs
IHJlc29sdmUnID0gcmVzb2x2ZSBwYXJtCiAgICAgZnVuIHJ1biB3cmFwIHN0
YXRlID0KICAgICAgIGlmIG5vdCAoY2hlY2tfbWV0ZXIgKCFzbGljZSkpIHRo
ZW4gUy5DT05TIChOT05FLCB3cmFwIHN0YXRlKQogICAgICAgZWxzZQogICAg
ICAgICAoY2hhdCAxICIrIjsKICAgICAgICAgIGNhc2UgcmVzb2x2ZScgKHJl
Y29yZF9pbmZzICghc2xpY2UpKSBzdGF0ZSAoIXVuaXRzKSBvZiBOT05FID0+
IFMuTklMCiAgICAgICAgICB8IFNPTUUgKHN0YXRlLCB1bml0cycpID0+ICh1
bml0cyA6PSB1bml0cyc7IHJ1biB3cmFwIHN0YXRlKSkKICAgICBmdW4gd3Jh
cHBlciBnIChhIGFzIChfLCBfLCB3KSkgKCkgPQogICAgICAgKGNoYXQgMiAo
dGhlYXBfaW5mbyB3KTsgcnVuICh3cmFwcGVyIGcpIGEpCiAgICAgICBoYW5k
bGUgQ29udHJhZGljdGlvbiB0aCA9PiBjb250cmFkaWN0aW9uX3NvbHZlciB0
aCBnCiAgICAgdmFsIGZhY3RzID0gZm9sZGwgKGZuICh0LCBsKSA9PiBzdG9y
ZV9hZGQgdCBsKSBlbXB0eV9zdG9yZSB0aG1zCiAgICAgdmFsIHVzZWQgPSBl
bXB0eV9zdG9yZQogICAgIHZhbCB1bnVzZWQgPSB0aGVhcF9hZGRsIGh5cHMg
KG5ld190aGVhcCAoI3RoZWFwX3Bhcm0gcGFybSkpCiAgICAgdmFsICgpID0g
Y2hhdCAyCiAgICAgICAoInJlc29sdXRpb24tLWluaXRpYWxpemluZy0tI3Ro
bXM9IiBeIGludF90b19zdHJpbmcgKGxlbmd0aCB0aG1zKSBeCiAgICAgICAg
Ii0tI2h5cHM9IiBeIGludF90b19zdHJpbmcgKGxlbmd0aCBoeXBzKSBeCiAg
ICAgICAgIi0tZmFjdHM9IiBeIHN0b3JlX2luZm8gZmFjdHMgXgogICAgICAg
ICItLXVudXNlZD0iIF4gdGhlYXBfaW5mbyB1bnVzZWQgXiAiLlxuIikKICAg
aW4KICAgICBmbiBnb2FscyA9PiB3cmFwcGVyIGdvYWxzIChmYWN0cywgdXNl
ZCwgdW51c2VkKSAoKQogICBlbmR9OwoKZnVuIHJlc29sdXRpb24nIHBhcm0g
PQogIChpZiAjcG9zaXRpdmVfcmVmaW5lbWVudCBwYXJtIHRoZW4gc2V0X29m
X3N1cHBvcnQgZXZlcnl0aGluZyBlbHNlIEkpCiAgKHJhd19yZXNvbHV0aW9u
IHBhcm0pOwoKdmFsIHJlc29sdXRpb24gPSByZXNvbHV0aW9uJyBkZWZhdWx0
czsKCigqIHF1aWNrIHRlc3RpbmcKbG9hZCAiUHJvYmxlbTEiOwpvcGVuIFBy
b2JsZW0xOwp2YWwgdGltZSA9IE1vc21sLnRpbWU7CnF1b3RhdGlvbiA6PSB0
cnVlOwppbnN0YWxsUFAgcHBfdGVybTsKaW5zdGFsbFBQIHBwX2Zvcm11bGE7
Cmluc3RhbGxQUCBTdWJzdDEucHBfc3Vic3Q7Cmluc3RhbGxQUCBwcF90aG07
CgooKiBUZXN0aW5nIHRoZSByZXNvbHV0aW9uIHByb3ZlciAqKQoKdmFsIGxp
bWl0IDogbGltaXQgcmVmID0gcmVmIHtpbmZzID0gTk9ORSwgdGltZSA9IFNP
TUUgMzAuMH07CmZ1biByZXNvbHV0aW9uX3Byb3ZlIGcgPQogIHRyeSAodGlt
ZSByZWZ1dGUpCiAgKGluaXRpYWxpemUgKHNldF9vZl9zdXBwb3J0IGFsbF9u
ZWdhdGl2ZSByZXNvbHV0aW9uKQogICB7bGltaXQgPSAhbGltaXQsIHRobXMg
PSBbXSwgaHlwcyA9IGF4aW9tYXRpemUgKE5vdCAoZ2VuZXJhbGl6ZSBnKSl9
KTsKCmF4aW9tYXRpemUgKE5vdCAoZ2VuZXJhbGl6ZSBUcnVlKSk7CnJlc29s
dXRpb25fcHJvdmUgVHJ1ZTsKCnZhbCBwcm9wMTMgPSBwYXJzZV9mb3JtdWxh
IChnZXQgbm9uZXF1YWxpdHkgIlBST1BfMTMiKTsKYXhpb21hdGl6ZSAoTm90
IChnZW5lcmFsaXplIHByb3AxMykpOwpyZXNvbHV0aW9uX3Byb3ZlIHByb3Ax
MzsKCnZhbCBwMzMgPSBwYXJzZV9mb3JtdWxhIChnZXQgbm9uZXF1YWxpdHkg
IlAzMyIpOwpheGlvbWF0aXplIChOb3QgKGdlbmVyYWxpemUgcDMzKSk7CnJl
c29sdXRpb25fcHJvdmUgcDMzOwoKdmFsIHA1OSA9IHBhcnNlX2Zvcm11bGEg
KGdldCBub25lcXVhbGl0eSAiUDU5Iik7CnZhbCB0aHMgPSBheGlvbWF0aXpl
IChOb3QgKGdlbmVyYWxpemUgcDU5KSk7CnJlc29sdXRpb25fcHJvdmUgcDU5
OwoKdmFsIHAzOSA9IHBhcnNlX2Zvcm11bGEgKGdldCBub25lcXVhbGl0eSAi
UDM5Iik7CmNsYXVzYWwgKE5vdCAoZ2VuZXJhbGl6ZSBwMzkpKTsKYXhpb21h
dGl6ZSAoTm90IChnZW5lcmFsaXplIHAzOSkpOwpyZXNvbHV0aW9uX3Byb3Zl
IHAzOTsKCnZhbCBudW0xNCA9IHBhcnNlX2Zvcm11bGEgKGdldCB0cHRwICJO
VU0wMTQtMSIpOwpyZXNvbHV0aW9uX3Byb3ZlIG51bTE0OwoKdmFsIHA1NSA9
IHBhcnNlX2Zvcm11bGEgKGdldCBub25lcXVhbGl0eSAiUDU1Iik7CnJlc29s
dXRpb25fcHJvdmUgcDU1OwoKdmFsIHAyNiA9IHBhcnNlX2Zvcm11bGEgKGdl
dCBub25lcXVhbGl0eSAiUDI2Iik7CmNsYXVzYWwgKE5vdCAoZ2VuZXJhbGl6
ZSBwMjYpKTsKcmVzb2x1dGlvbl9wcm92ZSBwMjY7Cgp2YWwgbG9zID0gcGFy
c2VfZm9ybXVsYSAoZ2V0IG5vbmVxdWFsaXR5ICJMT1MiKTsKcmVzb2x1dGlv
bl9wcm92ZSBsb3M7Cgp2YWwgcmVkdWNlZF9udW0yODQgPSBwYXJzZV9mb3Jt
dWxhCiAgWwoKCgoKClFVT1RFICJmaWJvbmFjY2kgMCAocyAwKSAvXFwgZmli
b25hY2NpIChzIDApIChzIDApIC9cXFxuICAgKCF4IHkgeiB4JyB5JyB6Jy5c
biAgICAgIH5zdW0geCAocyAocyAwKSkgeiBcXC8gfnN1bSB5IChzIDApIHog
XFwvXG4gICAgICB+Zmlib25hY2NpIHggeCcgXFwvIH5maWJvbmFjY2kgeSB5
JyBcXC8gfnN1bSB4JyB5JyB6JyBcXC9cbiAgICAgIGZpYm9uYWNjaSB6IHon
KSAvXFwgKCF4LiBzdW0geCAwIHgpIC9cXFxuICAgKCF4IHkgei4gfnN1bSB4
IHkgeiBcXC8gc3VtIHggKHMgeSkgKHMgeikpIC9cXFxuICAgKCF4LiB+Zmli
b25hY2NpIChzIChzIChzIChzIChzIChzIChzIChzIDApKSkpKSkpKSB4KSA9
PT4gRiJdOwpyZXNvbHV0aW9uX3Byb3ZlIHJlZHVjZWRfbnVtMjg0OwoKdmFs
IHAyOSA9IHBhcnNlX2Zvcm11bGEgKGdldCBub25lcXVhbGl0eSAiUDI5Iik7
CmNsYXVzYWwgKE5vdCAoZ2VuZXJhbGl6ZSBwMjkpKTsKcmVzb2x1dGlvbl9w
cm92ZSBwMjk7Cgp2YWwgbnVtMSA9IHBhcnNlX2Zvcm11bGEgKGdldCB0cHRw
ICJOVU0wMDEtMSIpOwpyZXNvbHV0aW9uX3Byb3ZlIG51bTE7Cgp2YWwgZ2ls
bW9yZTkgPSBwYXJzZV9mb3JtdWxhIChnZXQgbm9uZXF1YWxpdHkgIkdJTE1P
UkVfOSIpOwpheGlvbWF0aXplIChOb3QgKGdlbmVyYWxpemUgZ2lsbW9yZTkp
KTsKcmVzb2x1dGlvbl9wcm92ZSBnaWxtb3JlOTsKCnZhbCBtb2RlbF9jb21w
bGV0ZW5lc3MgPSBwYXJzZV9mb3JtdWxhIChnZXQgbm9uZXF1YWxpdHkgIk1P
REVMX0NPTVBMRVRFTkVTUyIpOwpyZXNvbHV0aW9uX3Byb3ZlIG1vZGVsX2Nv
bXBsZXRlbmVzczsKKikKCmVuZAooKiNsaW5lIDAuMCAic3JjL01ldGlzMS5z
aWciKikKKCogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqKQooKiBU
SEUgTUVUSVMgQ09NQklOQVRJT04gT0YgUFJPT0YgUFJPQ0VEVVJFUyBGT1Ig
RklSU1QtT1JERVIgTE9HSUMgICAgICAgICAgICopCigqIENyZWF0ZWQgYnkg
Sm9lIEh1cmQsIFNlcHRlbWJlciAyMDAxICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKikKKCogPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PSAqKQoKc2lnbmF0dXJlIE1ldGlzMSA9CnNpZwoKdHlwZSBmb3Jt
dWxhICAgICA9IFRlcm0xLmZvcm11bGEKdHlwZSB0aG0gICAgICAgICA9IFRo
bTEudGhtCnR5cGUgbGltaXQgICAgICAgPSBNZXRlcjEubGltaXQKdHlwZSBz
b2x2ZXIgICAgICA9IFNvbHZlcjEuc29sdmVyCnR5cGUgc29sdmVyX25vZGUg
PSBTb2x2ZXIxLnNvbHZlcl9ub2RlCgooKiBUdW5pbmcgcGFyYW1ldGVycyAq
KQp0eXBlIE1wYXJtID0gTWVzb24xLnBhcmFtZXRlcnMKdHlwZSBScGFybSA9
IFJlc29sdXRpb24xLnBhcmFtZXRlcnMKdHlwZSBwYXJhbWV0ZXJzID0KICB7
bWVzb24gICAgICAgICAgIDogYm9vbCwKICAgZGVsdGEgICAgICAgICAgIDog
Ym9vbCwKICAgcmVzb2x1dGlvbiAgICAgIDogYm9vbCwKICAgbWVzb25fcGFy
bSAgICAgIDogTXBhcm0sCiAgIHJlc29sdXRpb25fcGFybSA6IFJwYXJtfQoK
dmFsIGRlZmF1bHRzICAgICAgICAgICAgICAgICAgICA6IHBhcmFtZXRlcnMK
dmFsIHVwZGF0ZV9wYXJtX21lc29uICAgICAgICAgICA6IChib29sIC0+IGJv
b2wpIC0+IHBhcmFtZXRlcnMgLT4gcGFyYW1ldGVycwp2YWwgdXBkYXRlX3Bh
cm1fZGVsdGEgICAgICAgICAgIDogKGJvb2wgLT4gYm9vbCkgLT4gcGFyYW1l
dGVycyAtPiBwYXJhbWV0ZXJzCnZhbCB1cGRhdGVfcGFybV9yZXNvbHV0aW9u
ICAgICAgOiAoYm9vbCAtPiBib29sKSAtPiBwYXJhbWV0ZXJzIC0+IHBhcmFt
ZXRlcnMKdmFsIHVwZGF0ZV9wYXJtX21lc29uX3Bhcm0gICAgICA6IChNcGFy
bSAtPiBNcGFybSkgLT4gcGFyYW1ldGVycyAtPiBwYXJhbWV0ZXJzCnZhbCB1
cGRhdGVfcGFybV9yZXNvbHV0aW9uX3Bhcm0gOiAoUnBhcm0gLT4gUnBhcm0p
IC0+IHBhcmFtZXRlcnMgLT4gcGFyYW1ldGVycwoKKCogVGhlIG1ldGlzIGNv
bWJpbmF0aW9uIG9mIHNvbHZlcnMgKikKdmFsIG1ldGlzJyA6IHBhcmFtZXRl
cnMgLT4gc29sdmVyX25vZGUKdmFsIG1ldGlzICA6IHNvbHZlcl9ub2RlICAg
ICAgICAgICAgICAgICgqIFVzZXMgZGVmYXVsdHMgKikKCigqIEEgdXNlci1m
cmllbmRseSBpbnRlcmZhY2UgKikKdmFsIHNldHRpbmdzICA6IHBhcmFtZXRl
cnMgcmVmICAgICAgICAgICgqIFN0YXJ0cyBvZmYgYXMgZGVmYXVsdHMgKikK
dmFsIGxpbWl0ICAgICA6IGxpbWl0IHJlZiAgICAgICAgICAgICAgICgqIFN0
YXJ0cyBvZmYgYXMgMTAgc2Vjb25kcyAqKQp2YWwgcmF3X3Byb3ZlIDogZm9y
bXVsYSAtPiB0aG0gb3B0aW9uICAgKCogRXhwZWN0cyBhID09PiBiID09PiBG
ICopCnZhbCBwcm92ZSAgICAgOiBmb3JtdWxhIC0+IHRobSBvcHRpb24gICAo
KiBBZGRzIGVxIGF4aW9tcywgY29udmVydHMgdG8gQ05GICopCnZhbCBxdWVy
eSAgICAgOiBmb3JtdWxhIC0+IHNvbHZlciAgICAgICAoKiBQcm9sb2cgcXVl
cnkgZW5naW5lICopCgplbmQKKCojbGluZSAwLjAgInNyYy9NZXRpczEuc21s
IiopCigqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKikKKCogVEhF
IE1FVElTIENPTUJJTkFUSU9OIE9GIFBST09GIFBST0NFRFVSRVMgRk9SIEZJ
UlNULU9SREVSIExPR0lDICAgICAgICAgICAqKQooKiBDcmVhdGVkIGJ5IEpv
ZSBIdXJkLCBTZXB0ZW1iZXIgMjAwMSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICopCigqID09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0gKikKCigqCmFwcCBsb2FkCiBbIlVzZWZ1bCIsICJNb3NtbCIsICJU
ZXJtMSIsICJUaG0xIiwgIkNhbm9uMSIsCiAgIlNvbHZlcjEiLCAiTWVzb24x
IiwgIlJlc29sdXRpb24xIl07CiopCgooKgoqKQpzdHJ1Y3R1cmUgTWV0aXMx
IDo+IE1ldGlzMSA9CnN0cnVjdAoKb3BlbiBVc2VmdWwgVGVybTEgVGhtMSBN
ZXRlcjEgQ2Fub24xIFNvbHZlcjEgTWVzb24xIFJlc29sdXRpb24xOwoKaW5m
aXggfC0+IDo6PiBAPiBvbyAjIyA6OiogOjpAOwoKKCogLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSAqKQooKiBUdW5pbmcgcGFyYW1ldGVycy4gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikK
CnR5cGUgTXBhcm0gPSBNZXNvbjEucGFyYW1ldGVyczsKdHlwZSBScGFybSA9
IFJlc29sdXRpb24xLnBhcmFtZXRlcnM7Cgp0eXBlIHBhcmFtZXRlcnMgPQog
IHttZXNvbiAgICAgICAgICAgOiBib29sLAogICBkZWx0YSAgICAgICAgICAg
OiBib29sLAogICByZXNvbHV0aW9uICAgICAgOiBib29sLAogICBtZXNvbl9w
YXJtICAgICAgOiBNcGFybSwKICAgcmVzb2x1dGlvbl9wYXJtIDogUnBhcm19
OwoKdmFsIGRlZmF1bHRzID0KICB7bWVzb24gICAgICAgICAgID0gdHJ1ZSwK
ICAgZGVsdGEgICAgICAgICAgID0gdHJ1ZSwKICAgcmVzb2x1dGlvbiAgICAg
ID0gdHJ1ZSwKICAgbWVzb25fcGFybSAgICAgID0gTWVzb24xLmRlZmF1bHRz
LAogICByZXNvbHV0aW9uX3Bhcm0gPSBSZXNvbHV0aW9uMS5kZWZhdWx0c307
CgpmdW4gdXBkYXRlX3Bhcm1fbWVzb24gZiBwYXJtID0KICBsZXQKICAgIHZh
bCB7bWVzb24sIGRlbHRhLCByZXNvbHV0aW9uLCBtZXNvbl9wYXJtLCByZXNv
bHV0aW9uX3Bhcm19ID0gcGFybQogIGluCiAgICB7bWVzb24gPSBmIG1lc29u
LCBkZWx0YSA9IGRlbHRhLCByZXNvbHV0aW9uID0gcmVzb2x1dGlvbiwKICAg
ICBtZXNvbl9wYXJtID0gbWVzb25fcGFybSwgcmVzb2x1dGlvbl9wYXJtID0g
cmVzb2x1dGlvbl9wYXJtfQogIGVuZDsKCmZ1biB1cGRhdGVfcGFybV9kZWx0
YSBmIHBhcm0gPQogIGxldAogICAgdmFsIHttZXNvbiwgZGVsdGEsIHJlc29s
dXRpb24sIG1lc29uX3Bhcm0sIHJlc29sdXRpb25fcGFybX0gPSBwYXJtCiAg
aW4KICAgIHttZXNvbiA9IG1lc29uLCBkZWx0YSA9IGYgZGVsdGEsIHJlc29s
dXRpb24gPSByZXNvbHV0aW9uLAogICAgIG1lc29uX3Bhcm0gPSBtZXNvbl9w
YXJtLCByZXNvbHV0aW9uX3Bhcm0gPSByZXNvbHV0aW9uX3Bhcm19CiAgZW5k
OwoKZnVuIHVwZGF0ZV9wYXJtX3Jlc29sdXRpb24gZiBwYXJtID0KICBsZXQK
ICAgIHZhbCB7bWVzb24sIGRlbHRhLCByZXNvbHV0aW9uLCBtZXNvbl9wYXJt
LCByZXNvbHV0aW9uX3Bhcm19ID0gcGFybQogIGluCiAgICB7bWVzb24gPSBt
ZXNvbiwgZGVsdGEgPSBkZWx0YSwgcmVzb2x1dGlvbiA9IGYgcmVzb2x1dGlv
biwKICAgICBtZXNvbl9wYXJtID0gbWVzb25fcGFybSwgcmVzb2x1dGlvbl9w
YXJtID0gcmVzb2x1dGlvbl9wYXJtfQogIGVuZDsKCmZ1biB1cGRhdGVfcGFy
bV9tZXNvbl9wYXJtIGYgcGFybSA9CiAgbGV0CiAgICB2YWwge21lc29uLCBk
ZWx0YSwgcmVzb2x1dGlvbiwgbWVzb25fcGFybSwgcmVzb2x1dGlvbl9wYXJt
fSA9IHBhcm0KICBpbgogICAge21lc29uID0gbWVzb24sIGRlbHRhID0gZGVs
dGEsIHJlc29sdXRpb24gPSByZXNvbHV0aW9uLAogICAgIG1lc29uX3Bhcm0g
PSBmIG1lc29uX3Bhcm0sIHJlc29sdXRpb25fcGFybSA9IHJlc29sdXRpb25f
cGFybX0KICBlbmQ7CgpmdW4gdXBkYXRlX3Bhcm1fcmVzb2x1dGlvbl9wYXJt
IGYgcGFybSA9CiAgbGV0CiAgICB2YWwge21lc29uLCBkZWx0YSwgcmVzb2x1
dGlvbiwgbWVzb25fcGFybSwgcmVzb2x1dGlvbl9wYXJtfSA9IHBhcm0KICBp
bgogICAge21lc29uID0gbWVzb24sIGRlbHRhID0gZGVsdGEsIHJlc29sdXRp
b24gPSByZXNvbHV0aW9uLAogICAgIG1lc29uX3Bhcm0gPSBtZXNvbl9wYXJt
LCByZXNvbHV0aW9uX3Bhcm0gPSBmIHJlc29sdXRpb25fcGFybX0KICBlbmQ7
CgooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigqIFRoZSBt
ZXRpcyBjb21iaW5hdGlvbiBvZiBzb2x2ZXJzLiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKikKKCogLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLSAqKQoKZnVuIG1ldGlzJyB7bWVzb24gPSBtLCBkZWx0
YSA9IGQsIHJlc29sdXRpb24gPSByLCBtZXNvbl9wYXJtLCByZXNvbHV0aW9u
X3Bhcm19ID0KICBjb21iaW5lCiAgKChpZiBtIHRoZW4gY29ucyAodGltZTEs
IG1lc29uJyBtZXNvbl9wYXJtKSBlbHNlIEkpCiAgICgoaWYgciB0aGVuIGNv
bnMgKHRpbWUxLCByZXNvbHV0aW9uJyByZXNvbHV0aW9uX3Bhcm0pIGVsc2Ug
SSkKICAgICgoaWYgZCB0aGVuIGNvbnMgKHRpbWUyLCBkZWx0YScgbWVzb25f
cGFybSkgZWxzZSBJKQogICAgIFtdKSkpOwoKdmFsIG1ldGlzID0gbWV0aXMn
IGRlZmF1bHRzOwoKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAq
KQooKiBBIHVzZXItZnJpZW5kbHkgaW50ZXJmYWNlLiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigqIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKCnZhbCBzZXR0aW5ncyA9IHJl
ZiBkZWZhdWx0czsKCnZhbCBsaW1pdCA6IGxpbWl0IHJlZiA9IHJlZiB7dGlt
ZSA9IE5PTkUsIGluZnMgPSBOT05FfTsKCmZ1biByYXdfcHJvdmUgKEltcCAo
YSwgSW1wIChiLCBGYWxzZSkpKSA9CiAgbGV0CiAgICB2YWwgKHRobXMsIGh5
cHMpID0gKGF4aW9tYXRpemUgYSwgYXhpb21hdGl6ZSBiKQogICAgdmFsIHNv
bHYgPSBtZXRpcycgKCFzZXR0aW5ncykKICBpbgogICAgcmVmdXRlIChpbml0
aWFsaXplIHNvbHYge2xpbWl0ID0gIWxpbWl0LCB0aG1zID0gdGhtcywgaHlw
cyA9IGh5cHN9KQogIGVuZAogIHwgcmF3X3Byb3ZlIF8gPSByYWlzZSBFUlIg
InJhd19wcm92ZSIgImZvcm11bGEgbm90IG9mIHR5cGUgYSA9PT4gYiA9PT4g
RiI7CgpmdW4gcHJvdmUgZyA9CiAgbGV0CiAgICB2YWwgaHlwcyA9IGVxX2F4
aW9tYXRpemUnIChOb3QgKGdlbmVyYWxpemUgZykpCiAgICB2YWwgc29sdiA9
IHNldF9vZl9zdXBwb3J0IGFsbF9uZWdhdGl2ZSAobWV0aXMnICghc2V0dGlu
Z3MpKQogIGluCiAgICByZWZ1dGUgKGluaXRpYWxpemUgc29sdiB7bGltaXQg
PSAhbGltaXQsIHRobXMgPSBbXSwgaHlwcyA9IGh5cHN9KQogIGVuZDsKCmZ1
biBxdWVyeSBkYXRhYmFzZSA9CiAgaW5pdGlhbGl6ZSBwcm9sb2cge3RobXMg
PSBheGlvbWF0aXplIGRhdGFiYXNlLCBoeXBzID0gW10sIGxpbWl0ID0gdW5s
aW1pdGVkfTsKCigqIHF1aWNrIHRlc3RpbmcKdmFsIHRpbWUgPSBNb3NtbC50
aW1lOwpxdW90YXRpb24gOj0gdHJ1ZTsKaW5zdGFsbFBQIHBwX3Rlcm07Cmlu
c3RhbGxQUCBwcF9mb3JtdWxhOwppbnN0YWxsUFAgU3Vic3QxLnBwX3N1YnN0
OwppbnN0YWxsUFAgcHBfdGhtOwoKKCogVGVzdGluZyB0aGUgbWV0aXMgcHJv
dmVyICopCgpwcm92ZSBUcnVlOwoKdmFsIHA1OSA9IHBhcnNlX2Zvcm11bGEg
W1FVT1RFICIoIXguIFAoeCkgPD0+IH5QKGYoeCkpKSA9PT4gKD94LiBQKHgp
IC9cXCB+UChmKHgpKSkiXTsKdmFsIHRocyA9IGF4aW9tYXRpemUgKE5vdCAo
Z2VuZXJhbGl6ZSBwNTkpKTsKcHJvdmUgcDU5OwoKdmFsIHAzOSA9IHBhcnNl
X2Zvcm11bGEgW1FVT1RFICJ+KD94LiAheS4gUCh5LHgpIDw9PiB+UCh5LHkp
KSJdOwpjbGF1c2FsIChOb3QgKGdlbmVyYWxpemUgcDM5KSk7CmF4aW9tYXRp
emUgKE5vdCAoZ2VuZXJhbGl6ZSBwMzkpKTsKcHJvdmUgcDM5OwoKdmFsIG51
bTE0ID0gcGFyc2VfZm9ybXVsYQogIFsKCgoKCgpRVU9URSAiKCFYLiBwcm9k
dWN0KFgsIFgsIHNxdWFyZShYKSkpIC9cXFxuICAgKCFaIFggWS4gfnByb2R1
Y3QoWCwgWSwgWikgXFwvIHByb2R1Y3QoWSwgWCwgWikpIC9cXFxuICAgKCFa
IFggWS4gfnByb2R1Y3QoWCwgWSwgWikgXFwvIGRpdmlkZXMoWCwgWikpIC9c
XFxuICAgKCFZIFggViBaLlxuICAgICAgfnByaW1lKFgpIFxcLyB+cHJvZHVj
dChZLCBaLCBWKSBcXC8gfmRpdmlkZXMoWCwgVikgXFwvIGRpdmlkZXMoWCwg
WSkgXFwvXG4gICAgICBkaXZpZGVzKFgsIFopKSAvXFwgcHJpbWUoYSkgL1xc
XG4gICBwcm9kdWN0KGEsIHNxdWFyZShjKSwgc3F1YXJlKGIpKSAvXFwgfmRp
dmlkZXMoYSwgYikgPT0+IEYiXTsKcHJvdmUgbnVtMTQ7Cgp2YWwgcDI2ID0g
cGFyc2VfZm9ybXVsYQogWwoKUVVPVEUgIigoP3guIFAoeCkpIDw9PiAoP3gu
IFEoeCkpKSAvXFxcbiAgICgheCB5LiBQKHgpIC9cXCBRKHkpID09PiAoUih4
KSA8PT4gVSh5KSkpID09PlxuICAgKCgheC4gUCh4KSA9PT4gUih4KSkgPD0+
ICgheC4gUSh4KSA9PT4gVSh4KSkpIl07CmNsYXVzYWwgKE5vdCAoZ2VuZXJh
bGl6ZSBwMjYpKTsKcHJvdmUgcDI2OwoKdmFsIGxvcyA9IHBhcnNlX2Zvcm11
bGEKIFsKClFVT1RFICIoIXggeSB6LiBQIHggeSA9PT4gUCB5IHogPT0+IFAg
eCB6KSAvXFxcbiAgKCF4IHkgei4gUSB4IHkgPT0+IFEgeSB6ID09PiBRIHgg
eikgL1xcICgheCB5LiBRIHggeSA9PT4gUSB5IHgpIC9cXFxuICAoIXggeS4g
UCB4IHkgXFwvIFEgeCB5KSA9PT4gKCF4IHkuIFAgeCB5KSBcXC8gIXggeS4g
USB4IHkiXTsKdHJ5IHByb3ZlIGxvczsKCnZhbCBwdXoyID0gcGFyc2VfZm9y
bXVsYQogIFsKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgpRVU9URSAiKCFY
LiBlcXVhbChYLCBYKSkgL1xcICghWSBYLiB+ZXF1YWwoWCwgWSkgXFwvIGVx
dWFsKFksIFgpKSAvXFxcbiAgICghWiBYIFkuIH5lcXVhbChYLCBZKSBcXC8g
fmVxdWFsKFksIFopIFxcLyBlcXVhbChYLCBaKSkgL1xcXG4gICAoIUIgQS4g
fmVxdWFsKEEsIEIpIFxcLyBlcXVhbChldmVyeV9vbmVfYnV0KEEpLCBldmVy
eV9vbmVfYnV0KEIpKSkgL1xcXG4gICAoIUUgQyBELiB+ZXF1YWwoQywgRCkg
XFwvIH5oYXRlcyhDLCBFKSBcXC8gaGF0ZXMoRCwgRSkpIC9cXFxuICAgKCFI
IEZfYXZvaWQgRy5cbiAgICAgIH5lcXVhbChGX2F2b2lkLCBHKSBcXC8gfmhh
dGVzKEgsIEZfYXZvaWQpIFxcLyBoYXRlcyhILCBHKSkgL1xcXG4gICAoIUsg
SSBKLiB+ZXF1YWwoSSwgSikgXFwvIH5raWxsZWQoSSwgSykgXFwvIGtpbGxl
ZChKLCBLKSkgL1xcXG4gICAoIU4gTCBNLiB+ZXF1YWwoTCwgTSkgXFwvIH5r
aWxsZWQoTiwgTCkgXFwvIGtpbGxlZChOLCBNKSkgL1xcXG4gICAoIVAgTy5c
biAgICAgIH5lcXVhbChPLCBQKSBcXC8gfmxpdmVzX2F0X2RyZWFkc2J1cnko
TykgXFwvIGxpdmVzX2F0X2RyZWFkc2J1cnkoUCkpIC9cXFxuICAgKCFTIFEg
Ui4gfmVxdWFsKFEsIFIpIFxcLyB+cmljaGVyKFEsIFMpIFxcLyByaWNoZXIo
UiwgUykpIC9cXFxuICAgKCFWIFRfYXZvaWQgVS5cbiAgICAgIH5lcXVhbChU
X2F2b2lkLCBVKSBcXC8gfnJpY2hlcihWLCBUX2F2b2lkKSBcXC8gcmljaGVy
KFYsIFUpKSAvXFxcbiAgIGxpdmVzX2F0X2RyZWFkc2J1cnkoc29tZW9uZSgp
KSAvXFwga2lsbGVkKHNvbWVvbmUoKSwgYXVudF9hZ2F0aGEoKSkgL1xcXG4g
ICBsaXZlc19hdF9kcmVhZHNidXJ5KGF1bnRfYWdhdGhhKCkpIC9cXCBsaXZl
c19hdF9kcmVhZHNidXJ5KGJ1dGxlcigpKSAvXFxcbiAgIGxpdmVzX2F0X2Ry
ZWFkc2J1cnkoY2hhcmxlcygpKSAvXFxcbiAgICghUGVyc29uLlxuICAgICAg
fmxpdmVzX2F0X2RyZWFkc2J1cnkoUGVyc29uKSBcXC8gZXF1YWwoUGVyc29u
LCBhdW50X2FnYXRoYSgpKSBcXC9cbiAgICAgIGVxdWFsKFBlcnNvbiwgYnV0
bGVyKCkpIFxcLyBlcXVhbChQZXJzb24sIGNoYXJsZXMoKSkpIC9cXFxuICAg
KCFWaWN0aW0gS2lsbGVyLiB+a2lsbGVkKEtpbGxlciwgVmljdGltKSBcXC8g
aGF0ZXMoS2lsbGVyLCBWaWN0aW0pKSAvXFxcbiAgICghVmljdGltIEtpbGxl
ci4gfmtpbGxlZChLaWxsZXIsIFZpY3RpbSkgXFwvIH5yaWNoZXIoS2lsbGVy
LCBWaWN0aW0pKSAvXFxcbiAgICghUGVyc29uLiB+aGF0ZXMoYXVudF9hZ2F0
aGEoKSwgUGVyc29uKSBcXC8gfmhhdGVzKGNoYXJsZXMoKSwgUGVyc29uKSkg
L1xcXG4gICAoIVBlcnNvbi4gZXF1YWwoUGVyc29uLCBidXRsZXIoKSkgXFwv
IGhhdGVzKGF1bnRfYWdhdGhhKCksIFBlcnNvbikpIC9cXFxuICAgKCFQZXJz
b24uIHJpY2hlcihQZXJzb24sIGF1bnRfYWdhdGhhKCkpIFxcLyBoYXRlcyhi
dXRsZXIoKSwgUGVyc29uKSkgL1xcXG4gICAoIVBlcnNvbi4gfmhhdGVzKGF1
bnRfYWdhdGhhKCksIFBlcnNvbikgXFwvIGhhdGVzKGJ1dGxlcigpLCBQZXJz
b24pKSAvXFxcbiAgICghUGVyc29uLiB+aGF0ZXMoUGVyc29uLCBldmVyeV9v
bmVfYnV0KFBlcnNvbikpKSAvXFxcbiAgIH5lcXVhbChhdW50X2FnYXRoYSgp
LCBidXRsZXIoKSkgL1xcXG4gICB+a2lsbGVkKGF1bnRfYWdhdGhhKCksIGF1
bnRfYWdhdGhhKCkpID09PiBGIl07CnByb3ZlIHB1ejI7Cgp2YWwgbnVtMjg0
ID0gcGFyc2VfZm9ybXVsYQogIFsKCgoKCgoKClFVT1RFICJmaWJvbmFjY2ko
MCwgc3VjY2Vzc29yKDApKSAvXFwgZmlib25hY2NpKHN1Y2Nlc3NvcigwKSwg
c3VjY2Vzc29yKDApKSAvXFxcbiAgICghTjIgTjEgTiBGMSBGTiBGMi5cbiAg
ICAgIH5zdW0oTjEsIHN1Y2Nlc3NvcigwKSwgTikgXFwvIH5zdW0oTjIsIHN1
Y2Nlc3NvcihzdWNjZXNzb3IoMCkpLCBOKSBcXC9cbiAgICAgIH5maWJvbmFj
Y2koTjEsIEYxKSBcXC8gfmZpYm9uYWNjaShOMiwgRjIpIFxcLyB+c3VtKEYx
LCBGMiwgRk4pIFxcL1xuICAgICAgZmlib25hY2NpKE4sIEZOKSkgL1xcICgh
WC4gc3VtKFgsIDAsIFgpKSAvXFxcbiAgICghWiBYIFkuIH5zdW0oWCwgWSwg
WikgXFwvIHN1bShYLCBzdWNjZXNzb3IoWSksIHN1Y2Nlc3NvcihaKSkpIC9c
XFxuICAgKCFSZXN1bHQuXG4gICAgICB+Zmlib25hY2NpKHN1Y2Nlc3Nvcihz
dWNjZXNzb3Ioc3VjY2Vzc29yKHN1Y2Nlc3NvcihzdWNjZXNzb3Ioc3VjY2Vz
c29yKHN1Y2Nlc3NvcihzdWNjZXNzb3IoMCkpKSkpKSkpLFxuICAgICAgICAg
ICAgICAgICBSZXN1bHQpKSA9PT4gRiJdOwpwcm92ZSBudW0yODQ7Cgp2YWwg
cDI5ID0gcGFyc2VfZm9ybXVsYQogIFsKClFVT1RFICIoP3guIFAoeCkpIC9c
XCAoP3guIEcoeCkpID09PlxuICAgKCgheC4gUCh4KSA9PT4gSCh4KSkgL1xc
ICgheC4gRyh4KSA9PT4gSih4KSkgPD0+XG4gICAgKCF4IHkuIFAoeCkgL1xc
IEcoeSkgPT0+IEgoeCkgL1xcIEooeSkpKSJdOwpjbGF1c2FsIChOb3QgKGdl
bmVyYWxpemUgcDI5KSk7CnByb3ZlIHAyOTsKCnZhbCBudW0yNyA9IHBhcnNl
X2Zvcm11bGEKICBbCgoKCgoKCgoKCgoKCgoKCgoKCgoKClFVT1RFICIoIUEu
IGVxdWFsaXNoKGFkZChBLCAwKSwgQSkpIC9cXFxuICAgKCFBIEIuIGVxdWFs
aXNoKGFkZChBLCBzdWNjZXNzb3IoQikpLCBzdWNjZXNzb3IoYWRkKEEsIEIp
KSkpIC9cXFxuICAgKCFBLiBlcXVhbGlzaChtdWx0aXBseShBLCAwKSwgMCkp
IC9cXFxuICAgKCFBIEIuIGVxdWFsaXNoKG11bHRpcGx5KEEsIHN1Y2Nlc3Nv
cihCKSksIGFkZChtdWx0aXBseShBLCBCKSwgQSkpKSAvXFxcbiAgICghQiBB
LiB+ZXF1YWxpc2goc3VjY2Vzc29yKEEpLCBzdWNjZXNzb3IoQikpIFxcLyBl
cXVhbGlzaChBLCBCKSkgL1xcXG4gICAoIUIgQS4gfmVxdWFsaXNoKEEsIEIp
IFxcLyBlcXVhbGlzaChzdWNjZXNzb3IoQSksIHN1Y2Nlc3NvcihCKSkpIC9c
XFxuICAgKCFDIEEgQi4gfmxlc3MoQSwgQikgXFwvIH5sZXNzKEMsIEEpIFxc
LyBsZXNzKEMsIEIpKSAvXFxcbiAgICghQyBCIEEuIH5lcXVhbGlzaChhZGQo
c3VjY2Vzc29yKEEpLCBCKSwgQykgXFwvIGxlc3MoQiwgQykpIC9cXFxuICAg
KCFCIEEuXG4gICAgICB+bGVzcyhBLCBCKSBcXC9cbiAgICAgIGVxdWFsaXNo
KGFkZChzdWNjZXNzb3IocHJlZGVjZXNzb3Jfb2ZfMXN0X21pbnVzXzJuZChC
LCBBKSksIEEpLFxuICAgICAgICBCKSkgL1xcICghWC4gZXF1YWxpc2goWCwg
WCkpIC9cXFxuICAgKCFZIFguIH5lcXVhbGlzaChYLCBZKSBcXC8gZXF1YWxp
c2goWSwgWCkpIC9cXFxuICAgKCFaIFggWS4gfmVxdWFsaXNoKFgsIFkpIFxc
LyB+ZXF1YWxpc2goWSwgWikgXFwvIGVxdWFsaXNoKFgsIFopKSAvXFxcbiAg
ICghQyBBIEIuIH5lcXVhbGlzaChBLCBCKSBcXC8gZXF1YWxpc2gobXVsdGlw
bHkoQSwgQyksIG11bHRpcGx5KEIsIEMpKSkgL1xcXG4gICAoIUIgQS4gfmxl
c3MoQSwgQikgXFwvIH5lcXVhbGlzaChBLCBCKSkgL1xcXG4gICAoIUIgQS4g
bGVzcyhBLCBCKSBcXC8gZXF1YWxpc2goQiwgQSkgXFwvIGxlc3MoQiwgQSkp
IC9cXFxuICAgKCFBLiB+bGVzcyhBLCBBKSkgL1xcICghQS4gfmVxdWFsaXNo
KHN1Y2Nlc3NvcihBKSwgMCkpIC9cXFxuICAgKCFDIEEgQi5cbiAgICAgIH5s
ZXNzKEEsIEIpIFxcLyBlcXVhbGlzaChDLCAwKSBcXC9cbiAgICAgIGxlc3Mo
bXVsdGlwbHkoQSwgQyksIG11bHRpcGx5KEIsIEMpKSkgL1xcIH5sZXNzKGIo
KSwgYSgpKSAvXFxcbiAgIGxlc3MobXVsdGlwbHkoYigpLCBjKCkpLCBtdWx0
aXBseShhKCksIGMoKSkpIC9cXCB+ZXF1YWxpc2goYygpLCAwKSA9PT5cbiAg
IEYiXTsKcHJvdmUgbnVtMjc7Cgp2YWwgbW9kZWxfY29tcGxldGVuZXNzID0g
cGFyc2VfZm9ybXVsYQogIFsKCgoKCgoKClFVT1RFICIoIU0gcC4gc2VudGVu
Y2UocCkgPT0+IGhvbGRzKE0scCkgXFwvIGhvbGRzKE0sbm90KHApKSkgL1xc
XG4gICAoIU0gcC4gfihob2xkcyhNLHApIC9cXCBob2xkcyhNLG5vdChwKSkp
KSA9PT5cbiAgICgoIXAuXG4gICAgICAgc2VudGVuY2UocCkgPT0+XG4gICAg
ICAgKCFNLiBtb2RlbHMoTSxTKSA9PT4gaG9sZHMoTSxwKSkgXFwvXG4gICAg
ICAgKCFNLiBtb2RlbHMoTSxTKSA9PT4gaG9sZHMoTSxub3QocCkpKSkgPD0+
XG4gICAgKCFNIE0nLlxuICAgICAgIG1vZGVscyhNLFMpIC9cXCBtb2RlbHMo
TScsUykgPT0+XG4gICAgICAgKCFwLiBzZW50ZW5jZShwKSA9PT4gKGhvbGRz
KE0scCkgPD0+IGhvbGRzKE0nLHApKSkpKSJdOwpwcm92ZSBtb2RlbF9jb21w
bGV0ZW5lc3M7Cgp2YWwgYWdhdGhhID0gcGFyc2VfZm9ybXVsYQogIFsKCgoK
CgoKCgoKClFVT1RFICJsaXZlcyhhZ2F0aGEoKSkgL1xcIGxpdmVzKGJ1dGxl
cigpKSAvXFwgbGl2ZXMoY2hhcmxlcygpKSAvXFxcbiAgIChraWxsZWQoYWdh
dGhhKCksYWdhdGhhKCkpIFxcLyBraWxsZWQoYnV0bGVyKCksYWdhdGhhKCkp
IFxcL1xuICAgIGtpbGxlZChjaGFybGVzKCksYWdhdGhhKCkpKSAvXFxcbiAg
ICgheCB5LiBraWxsZWQoeCx5KSA9PT4gaGF0ZXMoeCx5KSAvXFwgfnJpY2hl
cih4LHkpKSAvXFxcbiAgICgheC4gaGF0ZXMoYWdhdGhhKCkseCkgPT0+IH5o
YXRlcyhjaGFybGVzKCkseCkpIC9cXFxuICAgKGhhdGVzKGFnYXRoYSgpLGFn
YXRoYSgpKSAvXFwgaGF0ZXMoYWdhdGhhKCksY2hhcmxlcygpKSkgL1xcXG4g
ICAoIXguIGxpdmVzKHgpIC9cXCB+cmljaGVyKHgsYWdhdGhhKCkpID09PiBo
YXRlcyhidXRsZXIoKSx4KSkgL1xcXG4gICAoIXguIGhhdGVzKGFnYXRoYSgp
LHgpID09PiBoYXRlcyhidXRsZXIoKSx4KSkgL1xcXG4gICAoIXguIH5oYXRl
cyh4LGFnYXRoYSgpKSBcXC8gfmhhdGVzKHgsYnV0bGVyKCkpIFxcLyB+aGF0
ZXMoeCxjaGFybGVzKCkpKVxuICAgPT0+XG4gICBraWxsZWQoYWdhdGhhKCks
YWdhdGhhKCkpIC9cXCB+a2lsbGVkKGJ1dGxlcigpLGFnYXRoYSgpKSAvXFxc
biAgIH5raWxsZWQoY2hhcmxlcygpLGFnYXRoYSgpKSJdOwpwcm92ZSBhZ2F0
aGE7Cgp2YWwgYm9vMyA9IHBhcnNlX2Zvcm11bGEKIFsKCgoKCgoKCgoKCgoK
CgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKClFVT1RFICIo
IVguIGVxdWFsKFgsIFgpKSAvXFwgKCFZIFguIH5lcXVhbChYLCBZKSBcXC8g
ZXF1YWwoWSwgWCkpIC9cXFxuICAoIVogWCBZLiB+ZXF1YWwoWCwgWSkgXFwv
IH5lcXVhbChZLCBaKSBcXC8gZXF1YWwoWCwgWikpIC9cXFxuICAoIVkgWC4g
c3VtKFgsIFksIGFkZChYLCBZKSkpIC9cXCAoIVkgWC4gcHJvZHVjdChYLCBZ
LCBtdWx0aXBseShYLCBZKSkpIC9cXFxuICAoIVogWCBZLiB+c3VtKFgsIFks
IFopIFxcLyBzdW0oWSwgWCwgWikpIC9cXFxuICAoIVogWCBZLiB+cHJvZHVj
dChYLCBZLCBaKSBcXC8gcHJvZHVjdChZLCBYLCBaKSkgL1xcXG4gICghWC4g
c3VtKGFkZGl0aXZlX2lkZW50aXR5KCksIFgsIFgpKSAvXFxcbiAgKCFYLiBz
dW0oWCwgYWRkaXRpdmVfaWRlbnRpdHkoKSwgWCkpIC9cXFxuICAoIVguIHBy
b2R1Y3QobXVsdGlwbGljYXRpdmVfaWRlbnRpdHkoKSwgWCwgWCkpIC9cXFxu
ICAoIVguIHByb2R1Y3QoWCwgbXVsdGlwbGljYXRpdmVfaWRlbnRpdHkoKSwg
WCkpIC9cXFxuICAoIVogWCBZIFYxIFYzIFY0IFYyLlxuICAgICB+cHJvZHVj
dChYLCBZLCBWMSkgXFwvIH5wcm9kdWN0KFgsIFosIFYyKSBcXC8gfnN1bShZ
LCBaLCBWMykgXFwvXG4gICAgIH5wcm9kdWN0KFgsIFYzLCBWNCkgXFwvIHN1
bShWMSwgVjIsIFY0KSkgL1xcXG4gICghWiBYIFkgVjEgVjMgVjQgVjIuXG4g
ICAgIH5wcm9kdWN0KFgsIFksIFYxKSBcXC8gfnByb2R1Y3QoWCwgWiwgVjIp
IFxcLyB+c3VtKFksIFosIFYzKSBcXC9cbiAgICAgfnN1bShWMSwgVjIsIFY0
KSBcXC8gcHJvZHVjdChYLCBWMywgVjQpKSAvXFxcbiAgKCFaIFkgWCBWMSBW
MyBWNCBWMi5cbiAgICAgfnByb2R1Y3QoWSwgWCwgVjEpIFxcLyB+cHJvZHVj
dChaLCBYLCBWMikgXFwvIH5zdW0oWSwgWiwgVjMpIFxcL1xuICAgICB+cHJv
ZHVjdChWMywgWCwgVjQpIFxcLyBzdW0oVjEsIFYyLCBWNCkpIC9cXFxuICAo
IVogWSBYIFYxIFYzIFY0IFYyLlxuICAgICB+cHJvZHVjdChZLCBYLCBWMSkg
XFwvIH5wcm9kdWN0KFosIFgsIFYyKSBcXC8gfnN1bShZLCBaLCBWMykgXFwv
XG4gICAgIH5zdW0oVjEsIFYyLCBWNCkgXFwvIHByb2R1Y3QoVjMsIFgsIFY0
KSkgL1xcXG4gICghWiBYIFkgVjEgVjMgVjQgVjIuXG4gICAgIH5zdW0oWCwg
WSwgVjEpIFxcLyB+c3VtKFgsIFosIFYyKSBcXC8gfnByb2R1Y3QoWSwgWiwg
VjMpIFxcL1xuICAgICB+c3VtKFgsIFYzLCBWNCkgXFwvIHByb2R1Y3QoVjEs
IFYyLCBWNCkpIC9cXFxuICAoIVogWCBZIFYxIFYzIFY0IFYyLlxuICAgICB+
c3VtKFgsIFksIFYxKSBcXC8gfnN1bShYLCBaLCBWMikgXFwvIH5wcm9kdWN0
KFksIFosIFYzKSBcXC9cbiAgICAgfnByb2R1Y3QoVjEsIFYyLCBWNCkgXFwv
IHN1bShYLCBWMywgVjQpKSAvXFxcbiAgKCFaIFkgWCBWMSBWMyBWNCBWMi5c
biAgICAgfnN1bShZLCBYLCBWMSkgXFwvIH5zdW0oWiwgWCwgVjIpIFxcLyB+
cHJvZHVjdChZLCBaLCBWMykgXFwvXG4gICAgIH5zdW0oVjMsIFgsIFY0KSBc
XC8gcHJvZHVjdChWMSwgVjIsIFY0KSkgL1xcXG4gICghWiBZIFggVjEgVjMg
VjQgVjIuXG4gICAgIH5zdW0oWSwgWCwgVjEpIFxcLyB+c3VtKFosIFgsIFYy
KSBcXC8gfnByb2R1Y3QoWSwgWiwgVjMpIFxcL1xuICAgICB+cHJvZHVjdChW
MSwgVjIsIFY0KSBcXC8gc3VtKFYzLCBYLCBWNCkpIC9cXFxuICAoIVguIHN1
bShpbnZlcnNlKFgpLCBYLCBtdWx0aXBsaWNhdGl2ZV9pZGVudGl0eSgpKSkg
L1xcXG4gICghWC4gc3VtKFgsIGludmVyc2UoWCksIG11bHRpcGxpY2F0aXZl
X2lkZW50aXR5KCkpKSAvXFxcbiAgKCFYLiBwcm9kdWN0KGludmVyc2UoWCks
IFgsIGFkZGl0aXZlX2lkZW50aXR5KCkpKSAvXFxcbiAgKCFYLiBwcm9kdWN0
KFgsIGludmVyc2UoWCksIGFkZGl0aXZlX2lkZW50aXR5KCkpKSAvXFxcbiAg
KCFWIFggWSBVLiB+c3VtKFgsIFksIFUpIFxcLyB+c3VtKFgsIFksIFYpIFxc
LyBlcXVhbChVLCBWKSkgL1xcXG4gICghViBYIFkgVS4gfnByb2R1Y3QoWCwg
WSwgVSkgXFwvIH5wcm9kdWN0KFgsIFksIFYpIFxcLyBlcXVhbChVLCBWKSkg
L1xcXG4gICghVyBYIFkgWi4gfmVxdWFsKFgsIFkpIFxcLyB+c3VtKFgsIFcs
IFopIFxcLyBzdW0oWSwgVywgWikpIC9cXFxuICAoIVcgWCBZIFouIH5lcXVh
bChYLCBZKSBcXC8gfnN1bShXLCBYLCBaKSBcXC8gc3VtKFcsIFksIFopKSAv
XFxcbiAgKCFXIFggWSBaLiB+ZXF1YWwoWCwgWSkgXFwvIH5zdW0oVywgWiwg
WCkgXFwvIHN1bShXLCBaLCBZKSkgL1xcXG4gICghVyBYIFkgWi4gfmVxdWFs
KFgsIFkpIFxcLyB+cHJvZHVjdChYLCBXLCBaKSBcXC8gcHJvZHVjdChZLCBX
LCBaKSkgL1xcXG4gICghVyBYIFkgWi4gfmVxdWFsKFgsIFkpIFxcLyB+cHJv
ZHVjdChXLCBYLCBaKSBcXC8gcHJvZHVjdChXLCBZLCBaKSkgL1xcXG4gICgh
VyBYIFkgWi4gfmVxdWFsKFgsIFkpIFxcLyB+cHJvZHVjdChXLCBaLCBYKSBc
XC8gcHJvZHVjdChXLCBaLCBZKSkgL1xcXG4gICghVyBYIFkuIH5lcXVhbChY
LCBZKSBcXC8gZXF1YWwoYWRkKFgsIFcpLCBhZGQoWSwgVykpKSAvXFxcbiAg
KCFXIFggWS4gfmVxdWFsKFgsIFkpIFxcLyBlcXVhbChhZGQoVywgWCksIGFk
ZChXLCBZKSkpIC9cXFxuICAoIVcgWCBZLiB+ZXF1YWwoWCwgWSkgXFwvIGVx
dWFsKG11bHRpcGx5KFgsIFcpLCBtdWx0aXBseShZLCBXKSkpIC9cXFxuICAo
IVcgWCBZLiB+ZXF1YWwoWCwgWSkgXFwvIGVxdWFsKG11bHRpcGx5KFcsIFgp
LCBtdWx0aXBseShXLCBZKSkpIC9cXFxuICAoIVkgWC4gfmVxdWFsKFgsIFkp
IFxcLyBlcXVhbChpbnZlcnNlKFgpLCBpbnZlcnNlKFkpKSkgL1xcXG4gIH5w
cm9kdWN0KHgoKSwgeCgpLCB4KCkpID09PiBGIl07CnByb3ZlIGJvbzM7Cgp2
YWwgZmxkNSA9IHBhcnNlX2Zvcm11bGEKIFsKCgoKCgoKCgoKCgoKCgoKCgoK
CgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKUVVPVEUgIighWSBY
IFYgVyBaIFUuXG4gICAgIHN1bShYLCBWLCBXKSBcXC8gfnN1bShYLCBZLCBV
KSBcXC8gfnN1bShZLCBaLCBWKSBcXC8gfnN1bShVLCBaLCBXKSkgL1xcXG4g
ICghWCBVIFogVyBWIFkuXG4gICAgIHN1bShVLCBaLCBXKSBcXC8gfnN1bShY
LCBZLCBVKSBcXC8gfnN1bShZLCBaLCBWKSBcXC8gfnN1bShYLCBWLCBXKSkg
L1xcXG4gICghWC4gc3VtKGFkZGl0aXZlX2lkZW50aXR5KCksIFgsIFgpIFxc
LyB+ZGVmaW5lZChYKSkgL1xcXG4gICghWC4gc3VtKGFkZGl0aXZlX2ludmVy
c2UoWCksIFgsIGFkZGl0aXZlX2lkZW50aXR5KCkpIFxcLyB+ZGVmaW5lZChY
KSkgL1xcXG4gICghWiBZIFguIHN1bShZLCBYLCBaKSBcXC8gfnN1bShYLCBZ
LCBaKSkgL1xcXG4gICghWSBYIFYgVyBaIFUuXG4gICAgIHByb2R1Y3QoWCwg
ViwgVykgXFwvIH5wcm9kdWN0KFgsIFksIFUpIFxcLyB+cHJvZHVjdChZLCBa
LCBWKSBcXC9cbiAgICAgfnByb2R1Y3QoVSwgWiwgVykpIC9cXFxuICAoIVgg
VSBaIFcgViBZLlxuICAgICBwcm9kdWN0KFUsIFosIFcpIFxcLyB+cHJvZHVj
dChYLCBZLCBVKSBcXC8gfnByb2R1Y3QoWSwgWiwgVikgXFwvXG4gICAgIH5w
cm9kdWN0KFgsIFYsIFcpKSAvXFxcbiAgKCFYLiBwcm9kdWN0KG11bHRpcGxp
Y2F0aXZlX2lkZW50aXR5KCksIFgsIFgpIFxcLyB+ZGVmaW5lZChYKSkgL1xc
XG4gICghWC5cbiAgICAgcHJvZHVjdChtdWx0aXBsaWNhdGl2ZV9pbnZlcnNl
KFgpLCBYLCBtdWx0aXBsaWNhdGl2ZV9pZGVudGl0eSgpKSBcXC9cbiAgICAg
c3VtKGFkZGl0aXZlX2lkZW50aXR5KCksIFgsIGFkZGl0aXZlX2lkZW50aXR5
KCkpIFxcLyB+ZGVmaW5lZChYKSkgL1xcXG4gICghWiBZIFguIHByb2R1Y3Qo
WSwgWCwgWikgXFwvIH5wcm9kdWN0KFgsIFksIFopKSAvXFxcbiAgKCFYIEMg
RCBCIFogQSBZLlxuICAgICBzdW0oQywgRCwgQikgXFwvIH5zdW0oWCwgWSwg
QSkgXFwvIH5wcm9kdWN0KEEsIFosIEIpIFxcL1xuICAgICB+cHJvZHVjdChY
LCBaLCBDKSBcXC8gfnByb2R1Y3QoWSwgWiwgRCkpIC9cXFxuICAoIVggQSBa
IEIgQyBEIFkuXG4gICAgIHByb2R1Y3QoQSwgWiwgQikgXFwvIH5zdW0oWCwg
WSwgQSkgXFwvIH5wcm9kdWN0KFgsIFosIEMpIFxcL1xuICAgICB+cHJvZHVj
dChZLCBaLCBEKSBcXC8gfnN1bShDLCBELCBCKSkgL1xcXG4gICghWCBZLiBk
ZWZpbmVkKGFkZChYLCBZKSkgXFwvIH5kZWZpbmVkKFgpIFxcLyB+ZGVmaW5l
ZChZKSkgL1xcXG4gIGRlZmluZWQoYWRkaXRpdmVfaWRlbnRpdHkoKSkgL1xc
XG4gICghWC4gZGVmaW5lZChhZGRpdGl2ZV9pbnZlcnNlKFgpKSBcXC8gfmRl
ZmluZWQoWCkpIC9cXFxuICAoIVggWS4gZGVmaW5lZChtdWx0aXBseShYLCBZ
KSkgXFwvIH5kZWZpbmVkKFgpIFxcLyB+ZGVmaW5lZChZKSkgL1xcXG4gIGRl
ZmluZWQobXVsdGlwbGljYXRpdmVfaWRlbnRpdHkoKSkgL1xcXG4gICghWC5c
biAgICAgZGVmaW5lZChtdWx0aXBsaWNhdGl2ZV9pbnZlcnNlKFgpKSBcXC8g
fmRlZmluZWQoWCkgXFwvXG4gICAgIHN1bShhZGRpdGl2ZV9pZGVudGl0eSgp
LCBYLCBhZGRpdGl2ZV9pZGVudGl0eSgpKSkgL1xcXG4gICghWSBYLiBzdW0o
WCwgWSwgYWRkKFgsIFkpKSBcXC8gfmRlZmluZWQoWCkgXFwvIH5kZWZpbmVk
KFkpKSAvXFxcbiAgKCFZIFguIHByb2R1Y3QoWCwgWSwgbXVsdGlwbHkoWCwg
WSkpIFxcLyB+ZGVmaW5lZChYKSBcXC8gfmRlZmluZWQoWSkpIC9cXFxuICAo
IVkgWC5cbiAgICAgc3VtKGFkZGl0aXZlX2lkZW50aXR5KCksIFgsIFkpIFxc
LyB+bGVzc19vcl9lcXVhbChYLCBZKSBcXC9cbiAgICAgfmxlc3Nfb3JfZXF1
YWwoWSwgWCkpIC9cXFxuICAoIVkgWCBaLlxuICAgICBsZXNzX29yX2VxdWFs
KFgsIFopIFxcLyB+bGVzc19vcl9lcXVhbChYLCBZKSBcXC9cbiAgICAgfmxl
c3Nfb3JfZXF1YWwoWSwgWikpIC9cXFxuICAoIVkgWC5cbiAgICAgbGVzc19v
cl9lcXVhbChYLCBZKSBcXC8gbGVzc19vcl9lcXVhbChZLCBYKSBcXC8gfmRl
ZmluZWQoWCkgXFwvXG4gICAgIH5kZWZpbmVkKFkpKSAvXFxcbiAgKCFYIFUg
ViBaIFkuXG4gICAgIGxlc3Nfb3JfZXF1YWwoVSwgVikgXFwvIH5sZXNzX29y
X2VxdWFsKFgsIFkpIFxcLyB+c3VtKFgsIFosIFUpIFxcL1xuICAgICB+c3Vt
KFksIFosIFYpKSAvXFxcbiAgKCFYIFogWS5cbiAgICAgbGVzc19vcl9lcXVh
bChhZGRpdGl2ZV9pZGVudGl0eSgpLCBaKSBcXC9cbiAgICAgfmxlc3Nfb3Jf
ZXF1YWwoYWRkaXRpdmVfaWRlbnRpdHkoKSwgWCkgXFwvXG4gICAgIH5sZXNz
X29yX2VxdWFsKGFkZGl0aXZlX2lkZW50aXR5KCksIFkpIFxcLyB+cHJvZHVj
dChYLCBZLCBaKSkgL1xcXG4gIH5zdW0oYWRkaXRpdmVfaWRlbnRpdHkoKSwg
YWRkaXRpdmVfaWRlbnRpdHkoKSxcbiAgICAgbXVsdGlwbGljYXRpdmVfaWRl
bnRpdHkoKSkgL1xcIGRlZmluZWQoYSgpKSAvXFwgZGVmaW5lZChiKCkpIC9c
XFxuICAoIVguIH5zdW0oYSgpLCBYLCBiKCkpKSA9PT4gRiJdOwpwcm92ZSBm
bGQ1OwoqKQoKZW5kCigqI2xpbmUgMC4wICJkYXRhL3ByZWFtYmxlLnNtbCIq
KQooKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICopCigqIFNFVFRJ
TkcgVVAgVEhFIEVOVklST05NRU5UIElOIFdISUNIIFdFIENBTiBFWEVDVVRF
IFRIRSBNRVRJUyBQUk9WRVIgICAgICAgKikKKCogQ3JlYXRlZCBieSBKb2Ug
SHVyZCwgU2VwdGVtYmVyIDIwMDEgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAqKQooKiA9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09ICopCgooKiBMb2FkaW5nIHRoZSBtb2R1bGVzIHdlIHVzZSAqKQoKc3Ry
dWN0dXJlIE1haW4gPQpzdHJ1Y3QKCmZ1biBtYWluICgpID0KbGV0Cgp2YWwg
KCkgPSBhcHAgbG9hZAogIFsiQ29tbWFuZExpbmUiLAogICAiTWlsdG9uIiwK
ICAgIlVzZWZ1bCIsICJUZXJtMSIsICJDYW5vbjEiLCAiVHB0cDEiLCAiTWV0
aXMxIiwgIlByb2JsZW0xIl07CgooKiBJbmZpeCBvcGVyYXRvcnMgKikKCmlu
Zml4ciAjIyB8LT4gOjo+IEA+IG9vOwoKKCogUHJldHR5IHByaW50ZXJzICop
Cgp2YWwgKCkgPSBpbnN0YWxsUFAgVGVybTEucHBfdGVybTsKdmFsICgpID0g
aW5zdGFsbFBQIFRlcm0xLnBwX2Zvcm11bGE7CnZhbCAoKSA9IGluc3RhbGxQ
UCBTdWJzdDEucHBfc3Vic3Q7CnZhbCAoKSA9IGluc3RhbGxQUCBUaG0xLnBw
X3RobTsKCigqIFBhcnNpbmcgcXVvdGF0aW9ucyAqKQoKdmFsICgpID0gcXVv
dGF0aW9uIDo9IHRydWU7CgooKiBDcmVhdGluZyBuaWNlIG91dHB1dCAqKQoK
bG9jYWwKICBmdW4gZHVwIF8gMCBsID0gbCB8IGR1cCB4IG4gbCA9IGR1cCB4
IChuIC0gMSkgKHggOjogbCk7CiAgZnVuIGNocyB4IG4gPSBpbXBsb2RlIChk
dXAgeCBuIFtdKTsKaW4KICBmdW4gYWR2ZXJ0aXplIHMgPSBwcmludCAoIj09
IiBeIHMgXiBjaHMgIyI9IiAoNzcgLSBzaXplIHMpIF4gIlxuXG4iKTsKICBm
dW4gc2VwYXJhdG9yICgpID0gcHJpbnQgKGNocyAjIi0iIDc5IF4gIlxuXG4i
KTsKZW5kOwoKZnVuIGN1dG9mZiBtYXggPQogIGxldAogICAgZnVuIGN1dCBm
ZWFzIHNvZmEgbCA9CiAgICAgIGxldCB2YWwgcG9zcyA9IHNvZmEgXiAiIC4u
LiAiIF4gVXNlZnVsLmludF90b19zdHJpbmcgKGxlbmd0aCBsKSBeICIgbW9y
ZSIKICAgICAgaW4gY3V0JyAoaWYgc2l6ZSBwb3NzIDwgbWF4IHRoZW4gcG9z
cyBlbHNlIGZlYXMpIHNvZmEgbAogICAgICBlbmQKICAgIGFuZCBjdXQnIF8g
c29mYSBbXSA9IHNvZmEKICAgICAgfCBjdXQnIGZlYXMgc29mYSAoaCA6OiB0
KSA9CiAgICAgIGxldCB2YWwgc29mYScgPSBpZiBzb2ZhID0gIiIgdGhlbiBo
IGVsc2Ugc29mYSBeICIgIiBeIGgKICAgICAgaW4gaWYgc2l6ZSBzb2ZhJyA8
IG1heCB0aGVuIGN1dCBmZWFzIHNvZmEnIHQgZWxzZSBmZWFzCiAgICAgIGVu
ZAogIGluCiAgICBjdXQgIiIgIiIKICBlbmQ7Cgpsb2NhbAogIGZ1biBiMnMg
dHJ1ZSA9ICJvbiIgfCBiMnMgZmFsc2UgPSAib2ZmIjsKICB2YWwgaTJzID0g
VXNlZnVsLmludF90b19zdHJpbmc7CiAgdmFsIGwycyA9IE1ldGVyMS5saW1p
dF90b19zdHJpbmc7CmluCiAgZnVuIHNob3cgKHNldHRpbmdzIDogTWV0aXMx
LnBhcmFtZXRlcnMpID0KICAgIGxldAogICAgICB2YWwge21lc29uID0gTWFj
dGl2ZSwgZGVsdGEgPSBEYWN0aXZlLCByZXNvbHV0aW9uID0gUmFjdGl2ZSwK
ICAgICAgICAgICBtZXNvbl9wYXJtID0gTXBhcm0sIHJlc29sdXRpb25fcGFy
bSA9IFJwYXJtfSA9IHNldHRpbmdzCiAgICBpbgogICAgICAicmVzb2x1dGlv
biAgICAgICAgICAgICA9ICIgXiBiMnMgUmFjdGl2ZSBeICJcbiIgXgogICAg
ICAibWVzb24gICAgICAgICAgICAgICAgICA9ICIgXiBiMnMgTWFjdGl2ZSBe
ICJcbiIgXgogICAgICAiZGVsdGEgICAgICAgICAgICAgICAgICA9ICIgXiBi
MnMgRGFjdGl2ZSBeICJcbiIgXgogICAgICAiXG4iIF4KICAgICAgInJlc29s
dXRpb25fcGFybTpcbiIgXgogICAgICAiICBzdWJzdW1wdGlvbl9jaGVja2lu
ZyA9ICIgXiBpMnMgKCNzdWJzdW1wdGlvbl9jaGVja2luZyBScGFybSkgXiAi
XG4iIF4KICAgICAgIiAgcG9zaXRpdmVfcmVmaW5lbWVudCAgPSAiIF4gYjJz
ICgjcG9zaXRpdmVfcmVmaW5lbWVudCBScGFybSkgXiAiXG4iIF4KICAgICAg
IiAgdGhlYXBfcGFybTpcbiIgXgogICAgICAiICAgIGZpZm9fc2tldyAgICAg
ICAgICA9ICIgXiBpMnMgKCNmaWZvX3NrZXcgKCN0aGVhcF9wYXJtIFJwYXJt
KSkgXiAiXG4iIF4KICAgICAgIiAgICB0aGVhcF9jbGVhbmluZyAgICAgPSAi
IF4gaTJzICgjY2xlYW5pbmdfZnJlcSAoI3RoZWFwX3Bhcm0gUnBhcm0pKSBe
IlxuIl4KICAgICAgIlxuIiBeCiAgICAgICJtZXNvbl9wYXJtOlxuIiBeCiAg
ICAgICIgIGFuY2VzdG9yX3BydW5pbmcgICAgID0gIiBeIGIycyAoI2FuY2Vz
dG9yX3BydW5pbmcgTXBhcm0pIF4gIlxuIiBeCiAgICAgICIgIGFuY2VzdG9y
X2N1dHRpbmcgICAgID0gIiBeIGIycyAoI2FuY2VzdG9yX2N1dHRpbmcgTXBh
cm0pIF4gIlxuIiBeCiAgICAgICIgIHN0YXRlX3NpbXBsaWZ5ICAgICAgID0g
IiBeIGIycyAoI3N0YXRlX3NpbXBsaWZ5IE1wYXJtKSBeICJcbiIgXgogICAg
ICAiICBjYWNoZV9jdXR0aW5nICAgICAgICA9ICIgXiBiMnMgKCNjYWNoZV9j
dXR0aW5nIE1wYXJtKSBeICJcbiIgXgogICAgICAiICBkaXZpZGVfY29ucXVl
ciAgICAgICA9ICIgXiBiMnMgKCNkaXZpZGVfY29ucXVlciBNcGFybSkgXiAi
XG4iIF4KICAgICAgIiAgdW5pdF9sZW1tYWl6aW5nICAgICAgPSAiIF4gYjJz
ICgjdW5pdF9sZW1tYWl6aW5nIE1wYXJtKSBeICJcbiIgXgogICAgICAiXG4i
IF4KICAgICAgImxpbWl0ICAgICAgICAgICAgICAgICAgPSAiIF4gbDJzICgh
TWV0aXMxLmxpbWl0KSBeICJcblxuIgogICAgZW5kOwplbmQ7CgooKiBUaGUg
Y29yZSBwcm92aW5nIGZ1bmN0aW9uICopCgp2YWwgY25mX25vcm1hbGl6YXRp
b24gPSByZWYgZmFsc2U7CgpmdW4gd2l0aF9jbmYgYiA9IFVzZWZ1bC53aXRo
X2ZsYWcgKGNuZl9ub3JtYWxpemF0aW9uLCBVc2VmdWwuSyBiKTsKCmZ1biBj
b3JlX3Byb3ZlIGZtID0KICBsZXQKICAgIHZhbCBwcm92ZXIgPSBpZiAhY25m
X25vcm1hbGl6YXRpb24gdGhlbiBNZXRpczEucHJvdmUgZWxzZSBNZXRpczEu
cmF3X3Byb3ZlCiAgaW4KICAgIGNhc2UgVXNlZnVsLnRyeSBwcm92ZXIgZm0g
b2YgU09NRSBfCiAgICAgID0+IHByaW50ICJNRVRJUzogU1VDQ0VTU0ZVTExZ
IFBST1ZFRFxuTUVUSVM6ICIKICAgIHwgTk9ORSA9PiBwcmludCAiTUVUSVM6
IEZBSUxFRCBUTyBQUk9WRVxuTUVUSVM6ICIKICBlbmQ7CgpmdW4gcHJvY2Vz
cyBuYW1lIGdvYWwgPQogIChwcmludCAoIk1FVElTOiBQcm9ibGVtICIgXiBu
YW1lIF4gIlxuIik7CiAgIE1pbHRvbi50aW1lIGNvcmVfcHJvdmUgZ29hbDsK
ICAgcHJpbnQgIlxuIik7CgpmdW4gcHJvY2Vzc19zZXQgKG4sIHMpID0KICBs
ZXQKICAgIHZhbCAoKSA9IGFkdmVydGl6ZSBuCiAgICBmdW4gZiB7bmFtZSwg
Z29hbH0gPSBwcm9jZXNzIG5hbWUgKFRlcm0xLnBhcnNlX2Zvcm11bGEgZ29h
bCkKICBpbgogICAgY2FzZSBzIG9mIFtdID0+ICgpCiAgICB8IHAgOjogcHMg
PT4gKGYgcDsgYXBwIChmbiB4ID0+IChzZXBhcmF0b3IgKCk7IGYgeCkpIHBz
KQogIGVuZDsKCigqIEdldCBvcHRpb25zIGZyb20gdGhlIGNvbW1hbmQgbGlu
ZSAqKQoKbG9jYWwKICBvcGVuIFVzZWZ1bCBNZXRpczE7CgogIGZ1biB0bGlt
aXQgIi0iID0gTk9ORSB8IHRsaW1pdCBzID0gU09NRSAoUmVhbC5mcm9tSW50
IChzdHJpbmdfdG9faW50IHMpKTsKCiAgZnVuIG9wdHMgW10gPSAwCiAgICB8
IG9wdHMgKHggOjogeHMpID0KICAgIGlmIHggPSAiLXQiIG9yZWxzZSB4ID0g
Ii0tdGltZSIgdGhlbgogICAgICBjYXNlIHhzIG9mIFtdID0+IHJhaXNlIEZh
aWwgIm9wdGlvbnM6IGxhc3QgYXJndW1lbnQgLXQgLyAtLXRpbWUiCiAgICAg
IHwgeSA6OiB5cyA9PiAobGltaXQgOj0ge3RpbWUgPSB0bGltaXQgeSwgaW5m
cyA9IE5PTkV9OyBvcHRzIHlzKQogICAgZWxzZSBpZiB4ID0gIi1tIiBvcmVs
c2UgeCA9ICItLW1lc29uIiB0aGVuCiAgICAgIChzZXR0aW5ncyA6PSB1cGRh
dGVfcGFybV9tZXNvbiBub3QgKCFzZXR0aW5ncyk7IG9wdHMgeHMpCiAgICBl
bHNlIGlmIHggPSAiLXIiIG9yZWxzZSB4ID0gIi0tcmVzb2x1dGlvbiIgdGhl
bgogICAgICAoc2V0dGluZ3MgOj0gdXBkYXRlX3Bhcm1fcmVzb2x1dGlvbiBu
b3QgKCFzZXR0aW5ncyk7IG9wdHMgeHMpCiAgICBlbHNlIGlmIHggPSAiLWQi
IG9yZWxzZSB4ID0gIi0tZGVsdGEiIHRoZW4KICAgICAgKHNldHRpbmdzIDo9
IHVwZGF0ZV9wYXJtX2RlbHRhIG5vdCAoIXNldHRpbmdzKTsgb3B0cyB4cykK
ICAgIGVsc2UgaWYgeCA9ICItLSIgdGhlbiBsZW5ndGggeHMKICAgIGVsc2Ug
aWYgaGQgKGV4cGxvZGUgeCkgPSAjIi0iIHRoZW4gcmFpc2UgRmFpbCAoInVu
a25vd24gcGFyYW1ldGVyOiAiIF4geCkKICAgIGVsc2UgMSArIGxlbmd0aCB4
czsKaW4KICBmdW4gb3B0aW9ucyAoKSA9CiAgICBsZXQKICAgICAgdmFsICgp
ID0gc2V0dGluZ3MgOj0gdXBkYXRlX3Bhcm1fcmVzb2x1dGlvbiAoSyBmYWxz
ZSkgKCFzZXR0aW5ncyk7CiAgICAgIHZhbCAoKSA9IHNldHRpbmdzIDo9IHVw
ZGF0ZV9wYXJtX21lc29uICAgICAgKEsgZmFsc2UpICghc2V0dGluZ3MpOwog
ICAgICB2YWwgKCkgPSBzZXR0aW5ncyA6PSB1cGRhdGVfcGFybV9kZWx0YSAg
ICAgIChLIGZhbHNlKSAoIXNldHRpbmdzKTsKCiAgICAgIHZhbCBsID0gQ29t
bWFuZExpbmUuYXJndW1lbnRzICgpCiAgICAgIHZhbCBuID0gb3B0cyBsCiAg
ICBpbgogICAgICBzcGxpdCBsIChsZW5ndGggbCAtIG4pCiAgICBlbmQ7CmVu
ZDsKCnZhbCAob3B0cywgd29yaykgPSBpZiBNaWx0b24ubWwgPSAiTUx0b24i
IHRoZW4gb3B0aW9ucyAoKSBlbHNlIChbXSwgW10pOwooKiNsaW5lIDAuMCAi
ZGF0YS9iZW5jaG1hcmsuc21sIiopCnZhbCBwdXJlID0gbnVsbCAoQ29tbWFu
ZExpbmUuYXJndW1lbnRzICgpKTsKCmxvY2FsCiAgb3BlbiBVc2VmdWwgTWV0
aXMxOwppbgogIHZhbCAoKSA9CiAgICBpZiBwdXJlIHRoZW4gc2V0dGluZ3M6
PSB1cGRhdGVfcGFybV9tZXNvbiAoSyB0cnVlKSAoIXNldHRpbmdzKSBlbHNl
ICgpOwplbmQ7Cgpsb2NhbAogIG9wZW4gVXNlZnVsIFByb2JsZW0xOwogIGZ1
biBleHRyYWN0IHAgbiA9IChPcHRpb24udmFsT2YgbyBMaXN0LmZpbmQgKGZu
IHtuYW1lLCAuLi59ID0+IG5hbWUgPSBuKSkgcDsKCiAgdmFsIG1lc29uX3By
dW5lID0KICAgIGlmIHB1cmUgdGhlbiBbIlAyOSIsICJMREEwMDctMyIsICJH
UlAwMTAtNCIsICJHRU8wMDItNCJdIGVsc2UgWyJHRU8wMDItNCJdOwogICAg
ICAKICB2YWwgcHJ1bmUgPQogICAgbGV0CiAgICAgIHZhbCB7bWVzb24sIHJl
c29sdXRpb24sIC4uLn0gPSAhTWV0aXMxLnNldHRpbmdzCiAgICBpbgogICAg
ICAoZm4gZiA9PiBMaXN0LmZpbHRlciAobm90IG8gZikpCiAgICAgIChjYXNl
IChtZXNvbiwgcmVzb2x1dGlvbikgb2YgKGZhbHNlLCBmYWxzZSkgPT4gSyB0
cnVlCiAgICAgICB8IChmYWxzZSwgdHJ1ZSkgPT4gQyBtZW0gWyJDT0wwNjAt
MyJdCiAgICAgICB8ICh0cnVlLCBmYWxzZSkgPT4gQyBtZW0gbWVzb25fcHJ1
bmUKICAgICAgIHwgKHRydWUsIHRydWUpID0+IEsgZmFsc2UpCiAgICBlbmQ7
CgogIHZhbCBzcmMwID0gWyJQMjYiLCAiUDI5IiwgIlA0NiIsICJHSUxNT1JF
XzEiLCAiTE9TIiwgIlNURUFNX1JPTExFUiJdOwoKICB2YWwgc3JjMSA9IFsi
UDQ4IiwgIlA0OSIsICJBR0FUSEEiXTsKCiAgdmFsIHNyYzIgPQogICAgWyJM
Q0wwMDktMSIsICJDT0wwNjAtMyIsICJDT0wwNTgtMiIsICJMQ0wxMDctMSIs
ICJMREEwMDctMyIsCiAgICAgIkdSUDAxMC00IiwgIkJPTzAyMS0xIiwgIkdF
TzAwMi00IiwgIkdSUDEyOC00LjAwMyJdOwppbgogIHZhbCBzZXQwID0gbWFw
IChleHRyYWN0IG5vbmVxdWFsaXR5KSAocHJ1bmUgc3JjMCk7CiAgdmFsIHNl
dDEgPSBtYXAgKGV4dHJhY3QgZXF1YWxpdHkpICAgIChwcnVuZSBzcmMxKTsK
ICB2YWwgc2V0MiA9IG1hcCAoZXh0cmFjdCB0cHRwKSAgICAgICAgKHBydW5l
IHNyYzIpOwplbmQ7Cgp2YWwgcHJvZ3JhbSA9ICJiZW5jaG1hcmsiIF4gKGlm
IHB1cmUgdGhlbiAiKiIgZWxzZSAiIik7Cgp2YWwgKCkgPSBhZHZlcnRpemUg
KHByb2dyYW0gXiAiPT1zdGFydGluZyIpOwoKdmFsICgpID0gYWR2ZXJ0aXpl
ICJzZXR0aW5ncyI7Cgp2YWwgKCkgPSBwcmludCAoc2hvdyAoIU1ldGlzMS5z
ZXR0aW5ncykpOwoKdmFsICgpID0gd2l0aF9jbmYgdHJ1ZSBwcm9jZXNzX3Nl
dCAoIm5vbmVxdWFsaXR5Iiwgc2V0MCk7Cgp2YWwgKCkgPSB3aXRoX2NuZiB0
cnVlIHByb2Nlc3Nfc2V0ICgiZXF1YWxpdHkiLCBzZXQxKTsKCnZhbCAoKSA9
IHdpdGhfY25mIGZhbHNlIHByb2Nlc3Nfc2V0ICgidHB0cCIsIHNldDIpOwoK
dmFsICgpID0gYWR2ZXJ0aXplIChwcm9ncmFtIF4gIj09ZmluaXNoaW5nIik7
CgppbgogICgpCmVuZDsKCnZhbCAoKSA9IG1haW4gKCk7CgplbmQK
---559023410-851401618-1032961339=:6097--


-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
MLton-devel mailing list
MLton-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mlton-devel