x86 codegen bug

Stephen Weeks MLton@sourcelight.com
Tue, 19 Jun 2001 12:47:55 -0700


--f+u0I8p9Wi
Content-Type: text/plain; charset=us-ascii
Content-Description: message body text
Content-Transfer-Encoding: 7bit


Matthew, I am getting an Overflow exception from the x86codegen when compiling
the following program.



--f+u0I8p9Wi
Content-Type: application/octet-stream
Content-Disposition: attachment;
	filename="z.sml"
Content-Transfer-Encoding: base64

KCogTUx0b24gaW50ZXJuYWwgKGJ1aWx0IFNhdCBKdW4gMTYgMTc6NDI6MDEgMjAwMSBvbiBzdGFy
bGludXgpICopCigqICAgY3JlYXRlZCB0aGlzIGZpbGUgb24gVHVlIEp1biAxOSAxMjo0NDozOCAy
MDAxLiAqKQooKiBEbyBub3QgZWRpdCB0aGlzIGZpbGUuICopCigqIEZsYWcgc2V0dGluZ3M6ICAq
KQooKiAgICBhdXg6IGZhbHNlICopCigqICAgIGNodW5rOiBjaHVuayBwZXIgZnVuY3Rpb24gKikK
KCogICAgY29udGlmeSBzdHJhdGVneTogRG9tICopCigqICAgIGNvbnRpZnkgZGlhZzogZmFsc2Ug
KikKKCogICAgZGVidWc6IGZhbHNlICopCigqICAgIGRlZmluZXM6IFtOT0RFQlVHLE1MdG9uX3Nh
ZmU9VFJVRSxNTHRvbl9kZXRlY3RPdmVyZmxvdz1UUlVFXSAqKQooKiAgICBkZXRlY3Qgb3ZlcmZs
b3c6IHRydWUgKikKKCogICAgZml4ZWQgaGVhcDogTm9uZSAqKQooKiAgICBpbmRlbnRhdGlvbjog
MyAqKQooKiAgICBpbmNsdWRlczogW21sdG9uLmhdICopCigqICAgIGlubGluZTogTm9uUmVjdXJz
aXZlIHtwcm9kdWN0ID0gMzIwLHNtYWxsID0gNjB9ICopCigqICAgIGlucHV0IGZpbGU6IHouY20g
KikKKCogICAgaW5zdHJ1bWVudDogZmFsc2UgKikKKCogICAgaW5zdHJ1bWVudCBTeG1sOiBmYWxz
ZSAqKQooKiAgICBrZWVwIENwczogZmFsc2UgKikKKCogICAgbmF0aXZlOiB0cnVlICopCigqICAg
IG5hdGl2ZSBjb21tZW50ZWQ6IDAgKikKKCogICAgbmF0aXZlIGNvcHkgcHJvcDogdHJ1ZSAqKQoo
KiAgICBmdXR1cmU6IDY0ICopCigqICAgIG5hdGl2ZSBpZWVlIGZwOiBmYWxzZSAqKQooKiAgICBu
YXRpdmUgbGl2ZSB0cmFuc2ZlcjogdHJ1ZSAqKQooKiAgICBuYXRpdmUgbW92ZSBob2lzdDogdHJ1
ZSAqKQooKiAgICBuYXRpdmUgb3B0aW1pemU6IDEgKikKKCogICAgbmF0aXZlIHNwbGl0OiBTb21l
ICgyMDAwMCkgKikKKCogICAgcG9seXZhcmlhbmNlOiBTb21lICh7cm91bmRzID0gMixzbWFsbCA9
IDMwLHByb2R1Y3QgPSAzMDB9KSAqKQooKiAgICBwcmludCBhdCBmdW4gZW50cnk6IGZhbHNlICop
CigqICAgIHByb2ZpbGU6IGZhbHNlICopCigqICAgIHNhZmU6IHRydWUgKikKKCogICAgc2hvdyB0
eXBlczogZmFsc2UgKikKKCogICAgc3RhdGljOiBmYWxzZSAqKQooKiAgICB1c2UgYmFzaXMgbGli
cmFyeTogdHJ1ZSAqKQooKiAgICB2ZXJib3NpdHk6IFNpbGVudCAqKQooKiBzdGFydCBvZiBsaWIv
bWx0b24vcGVydmFzaXZlL3BlcnZhc2l2ZS5zbWwgKikKc3RydWN0dXJlIFBlcnZhc2l2ZSA9CiAg
IHN0cnVjdAogICAgICBzdHJ1Y3R1cmUgQXJyYXkgPSBBcnJheQogICAgICBzdHJ1Y3R1cmUgQXJy
YXkyID0gQXJyYXkyCiAgICAgIHN0cnVjdHVyZSBCb29sID0gQm9vbAogICAgICBzdHJ1Y3R1cmUg
Qnl0ZSA9IEJ5dGUKICAgICAgc3RydWN0dXJlIENoYXIgPSBDaGFyCiAgICAgIHN0cnVjdHVyZSBD
aGFyQXJyYXkgPSBDaGFyQXJyYXkKICAgICAgc3RydWN0dXJlIENoYXJWZWN0b3IgPSBDaGFyVmVj
dG9yCiAgICAgIHN0cnVjdHVyZSBDb21tYW5kTGluZSA9IENvbW1hbmRMaW5lCiAgICAgIHN0cnVj
dHVyZSBEYXRlID0gRGF0ZQogICAgICBzdHJ1Y3R1cmUgR2VuZXJhbCA9IEdlbmVyYWwKICAgICAg
c3RydWN0dXJlIElFRUVSZWFsID0gSUVFRVJlYWwKICAgICAgc3RydWN0dXJlIEludCA9IEludAog
ICAgICBzdHJ1Y3R1cmUgSW50MzIgPSBJbnQzMgogICAgICBzdHJ1Y3R1cmUgSW50SW5mID0gSW50
SW5mCiAgICAgIHN0cnVjdHVyZSBMYXJnZUludCA9IExhcmdlSW50CiAgICAgIHN0cnVjdHVyZSBM
YXJnZVJlYWwgPSBMYXJnZVJlYWwKICAgICAgc3RydWN0dXJlIExhcmdlV29yZCA9IExhcmdlV29y
ZAogICAgICBzdHJ1Y3R1cmUgTGlzdFBhaXIgPSBMaXN0UGFpcgogICAgICBzdHJ1Y3R1cmUgTGlz
dCA9IExpc3QKICAgICAgc3RydWN0dXJlIE1hdGggPSBNYXRoCiAgICAgIHN0cnVjdHVyZSBPcHRp
b24gPSBPcHRpb24KICAgICAgc3RydWN0dXJlIE9TID0gT1MKICAgICAgc3RydWN0dXJlIFBhY2sz
MkJpZyA9IFBhY2szMkJpZwogICAgICBzdHJ1Y3R1cmUgUGFjazMyTGl0dGxlID0gUGFjazMyTGl0
dGxlCiAgICAgIHN0cnVjdHVyZSBQb3NpdGlvbiA9IFBvc2l0aW9uCiAgICAgIHN0cnVjdHVyZSBQ
b3NpeCA9IFBvc2l4CiAgICAgIHN0cnVjdHVyZSBSZWFsID0gUmVhbAogICAgICBzdHJ1Y3R1cmUg
U01MOTAgPSBTTUw5MAogICAgICBzdHJ1Y3R1cmUgU01Mb2ZOSiA9IFNNTG9mTkoKICAgICAgc3Ry
dWN0dXJlIFN0cmluZyA9IFN0cmluZwogICAgICBzdHJ1Y3R1cmUgU3RyaW5nQ3Z0ID0gU3RyaW5n
Q3Z0CiAgICAgIHN0cnVjdHVyZSBTdWJzdHJpbmcgPSBTdWJzdHJpbmcKICAgICAgc3RydWN0dXJl
IFN5c1dvcmQgPSBTeXNXb3JkCiAgICAgIHN0cnVjdHVyZSBUZXh0SU8gPSBUZXh0SU8KICAgICAg
c3RydWN0dXJlIFRpbWUgPSBUaW1lCiAgICAgIHN0cnVjdHVyZSBVbml4ID0gVW5peAogICAgICBz
dHJ1Y3R1cmUgVW5zYWZlID0gVW5zYWZlCiAgICAgIHN0cnVjdHVyZSBWZWN0b3IgPSBWZWN0b3IK
ICAgICAgc3RydWN0dXJlIFdvcmQgPSBXb3JkCiAgICAgIHN0cnVjdHVyZSBXb3JkMzIgPSBXb3Jk
MzIKICAgICAgc3RydWN0dXJlIFdvcmQ4ID0gV29yZDgKCiAgICAgIHR5cGUgdW5pdCA9IEdlbmVy
YWwudW5pdAogICAgICB0eXBlIGludCA9IEludC5pbnQKICAgICAgdHlwZSB3b3JkID0gV29yZC53
b3JkCiAgICAgIHR5cGUgcmVhbCA9IFJlYWwucmVhbAogICAgICB0eXBlIGNoYXIgPSBDaGFyLmNo
YXIKICAgICAgdHlwZSBzdHJpbmcgPSBTdHJpbmcuc3RyaW5nCiAgICAgIHR5cGUgc3Vic3RyaW5n
ID0gU3Vic3RyaW5nLnN1YnN0cmluZwogICAgICB0eXBlIGV4biA9IEdlbmVyYWwuZXhuCiAgICAg
IHR5cGUgJ2EgYXJyYXkgPSAnYSBBcnJheS5hcnJheQogICAgICB0eXBlICdhIHZlY3RvciA9ICdh
IFZlY3Rvci52ZWN0b3IKICAgICAgdHlwZSAnYSByZWYgPSAnYSByZWYKICAgICAgZGF0YXR5cGUg
Ym9vbCA9IGRhdGF0eXBlIGJvb2wKICAgICAgZGF0YXR5cGUgb3B0aW9uID0gZGF0YXR5cGUgb3B0
aW9uCiAgICAgIGRhdGF0eXBlIG9yZGVyID0gZGF0YXR5cGUgR2VuZXJhbC5vcmRlcgogICAgICBk
YXRhdHlwZSBsaXN0ID0gZGF0YXR5cGUgbGlzdAoJIAogICAgICB2YWwgISA9IEdlbmVyYWwuISAK
ICAgICAgdmFsIG9wIDo9ID0gR2VuZXJhbC46PSAKICAgICAgdmFsIG9wIEAgPSBMaXN0LkAgCiAg
ICAgIHZhbCBvcCBeID0gU3RyaW5nLl4gCiAgICAgIHZhbCBhcHAgPSBMaXN0LmFwcCAKICAgICAg
dmFsIG9wIGJlZm9yZSA9IEdlbmVyYWwuYmVmb3JlIAogICAgICB2YWwgY2VpbCA9IFJlYWwuY2Vp
bCAKICAgICAgdmFsIGNociA9IENoYXIuY2hyIAogICAgICB2YWwgY29uY2F0ID0gU3RyaW5nLmNv
bmNhdCAKICAgICAgdmFsIGV4bk1lc3NhZ2UgPSBHZW5lcmFsLmV4bk1lc3NhZ2UgCiAgICAgIHZh
bCBleG5OYW1lID0gR2VuZXJhbC5leG5OYW1lIAogICAgICB2YWwgZXhwbG9kZSA9IFN0cmluZy5l
eHBsb2RlIAogICAgICB2YWwgZmxvb3IgPSBSZWFsLmZsb29yIAogICAgICB2YWwgZm9sZGwgPSBM
aXN0LmZvbGRsIAogICAgICB2YWwgZm9sZHIgPSBMaXN0LmZvbGRyIAogICAgICB2YWwgZ2V0T3B0
ID0gT3B0aW9uLmdldE9wdCAKICAgICAgdmFsIGhkID0gTGlzdC5oZCAKICAgICAgdmFsIGlnbm9y
ZSA9IEdlbmVyYWwuaWdub3JlIAogICAgICB2YWwgaW1wbG9kZSA9IFN0cmluZy5pbXBsb2RlIAog
ICAgICB2YWwgaXNTb21lID0gT3B0aW9uLmlzU29tZSAKICAgICAgdmFsIGxlbmd0aCA9IExpc3Qu
bGVuZ3RoIAogICAgICB2YWwgbWFwID0gTGlzdC5tYXAgCiAgICAgIHZhbCBub3QgPSBCb29sLm5v
dCAKICAgICAgdmFsIG51bGwgPSBMaXN0Lm51bGwgCiAgICAgIHZhbCBvcCBvID0gR2VuZXJhbC5v
IAogICAgICB2YWwgb3JkID0gQ2hhci5vcmQgCiAgICAgIHZhbCBwcmludCA9IFRleHRJTy5wcmlu
dCAKICAgICAgdmFsIHJlYWwgPSBSZWFsLmZyb21JbnQgCiAgICAgIHZhbCByZXYgPSBMaXN0LnJl
diAKICAgICAgdmFsIHJvdW5kID0gUmVhbC5yb3VuZCAKICAgICAgdmFsIHNpemUgPSBTdHJpbmcu
c2l6ZSAKICAgICAgdmFsIHN0ciA9IFN0cmluZy5zdHIgCiAgICAgIHZhbCBzdWJzdHJpbmcgPSBT
dHJpbmcuc3Vic3RyaW5nIAogICAgICB2YWwgdGwgPSBMaXN0LnRsIAogICAgICB2YWwgdHJ1bmMg
PSBSZWFsLnRydW5jIAogICAgICB2YWwgdmFsT2YgPSBPcHRpb24udmFsT2YgCiAgICAgIHZhbCB2
ZWN0b3IgPSBWZWN0b3IuZnJvbUxpc3QKICAgZW5kCgpzdHJ1Y3R1cmUgWkNoYXJBcnJheSA9IENo
YXJBcnJheQooKiBzdG9wIG9mIGxpYi9tbHRvbi9wZXJ2YXNpdmUvcGVydmFzaXZlLnNtbCAqKQoo
KiBzdGFydCBvZiBsaWIvbWx0b24vYmFzaWMvZXJyb3Iuc2lnICopCnNpZ25hdHVyZSBFUlJPUiA9
CiAgICBzaWcKICAgICAgIHZhbCBidWc6IHN0cmluZyAtPiAnYQogICAgICAgdmFsIHVuaW1wbGVt
ZW50ZWQ6IHN0cmluZyAtPiAnYQogICBlbmQKKCogc3RvcCBvZiBsaWIvbWx0b24vYmFzaWMvZXJy
b3Iuc2lnICopCigqIHN0YXJ0IG9mIGxpYi9tbHRvbi9iYXNpYy9lcnJvci5zbWwgKikKc3RydWN0
dXJlIEVycm9yOiBFUlJPUiA9CnN0cnVjdAogICAKZnVuIHVuaW1wbGVtZW50ZWQgbXNnID0gcmFp
c2UgRmFpbChjb25jYXRbInVuaW1wbGVtZW50ZWQ6ICIsIG1zZ10pCgpmdW4gYnVnIG1zZyA9IHJh
aXNlKEZhaWwgbXNnKQoKZW5kCigqIHN0b3Agb2YgbGliL21sdG9uL2Jhc2ljL2Vycm9yLnNtbCAq
KQooKiBzdGFydCBvZiBsaWIvbWx0b24vYmFzaWMvZHluYW1pYy13aW5kLnNpZyAqKQpzaWduYXR1
cmUgRFlOQU1JQ19XSU5EID0KICAgc2lnCiAgICAgICgqIHdpbmQoZiwgZykgcmV0dXJucyBmKCks
IGFuZCBjb21wdXRlcyBnKCkgd2hlbiBmIGZpbmlzaGVzIG9yIHJhaXNlcyAqKQogICAgICB2YWwg
d2luZDogKHVuaXQgLT4gJ2EpICogKHVuaXQgLT4gdW5pdCkgLT4gJ2EKICAgICAgKCogd2luZEZh
aWwoZiwgZykgcmV0dXJucyBmKCksIGFuZCBjb21wdXRlcyBnKCkgb25seSBpZiBmIHJhaXNlcyAq
KQogICAgICB2YWwgd2luZEZhaWw6ICh1bml0IC0+ICdhKSAqICh1bml0IC0+IHVuaXQpIC0+ICdh
CiAgICAgIHZhbCB3aXRoRXNjYXBlOiAoKCdhIC0+ICdiKSAtPiAnYSkgLT4gJ2EKICAgZW5kCigq
IHN0b3Agb2YgbGliL21sdG9uL2Jhc2ljL2R5bmFtaWMtd2luZC5zaWcgKikKKCogc3RhcnQgb2Yg
bGliL21sdG9uL2Jhc2ljL2R5bmFtaWMtd2luZC5zbWwgKikKc3RydWN0dXJlIER5bmFtaWNXaW5k
OiBEWU5BTUlDX1dJTkQgPQpzdHJ1Y3QKCmZ1biB3aW5kICh0aHVuaywgY2xlYW51cCkgPQogICBs
ZXQgdmFsIGEgPSB0aHVuayAoKQogICBpbiBjbGVhbnVwICgpOyBhCiAgIGVuZCBoYW5kbGUgZXhu
ID0+IChjbGVhbnVwICgpOyByYWlzZSBleG4pCgpmdW4gd2luZEZhaWwgKGY6IHVuaXQgLT4gJ2Es
IGc6IHVuaXQgLT4gdW5pdCk6ICdhID0KICAgZiAoKSBoYW5kbGUgZXggPT4gKGcgKCk7IHJhaXNl
IGV4KQoKZnVuICdhIHdpdGhFc2NhcGUgKGY6ICgnYSAtPiAnYikgLT4gJ2EpOiAnYSA9CiAgIGxl
dCBleGNlcHRpb24gRSBvZiAnYQogICBpbiBmIChmbiB4ID0+IHJhaXNlIEUgeCkgaGFuZGxlIEUg
eCA9PiB4CiAgIGVuZAoKZW5kCgooKiBzdG9wIG9mIGxpYi9tbHRvbi9iYXNpYy9keW5hbWljLXdp
bmQuc21sICopCigqIHN0YXJ0IG9mIGxpYi9tbHRvbi9iYXNpYy9vdXRzdHJlYW0wLnNtbCAqKQpz
dHJ1Y3R1cmUgT3V0c3RyZWFtMCA9CnN0cnVjdAoKc3RydWN0dXJlIFRleHRJTyA9IFBlcnZhc2l2
ZS5UZXh0SU8Kb3BlbiBUZXh0SU8KCigqdmFsIG91dHB1dCA9IGZuIChvdXQsIHMpID0+IChvdXRw
dXQob3V0LCBzKTsgZmx1c2hPdXQgb3V0KSAqKQogICAKdHlwZSB0ID0gb3V0c3RyZWFtCiAgIAp2
YWwgc3RhbmRhcmQgPSBzdGRPdXQKdmFsIGVycm9yID0gc3RkRXJyCnZhbCBjbG9zZSA9IGNsb3Nl
T3V0CmZ1biBvdXRwdXRjIHN0cmVhbSBzdHJpbmcgPSBvdXRwdXQoc3RyZWFtLCBzdHJpbmcpCnZh
bCBmbHVzaCA9IGZsdXNoT3V0CgpmdW4gbmV3bGluZSBzID0gb3V0cHV0KHMsICJcbiIpCiAgIApm
dW4gcHJpbnQgcyA9IG91dHB1dChzdGFuZGFyZCwgcykKICAgCmZ1biBvdXRwdXROb3RoaW5nIF8g
PSAoKQoKZnVuIHNldChvMTogdCwgbzI6dCk6IHVuaXQgPQogICBUZXh0SU8uc2V0T3V0c3RyZWFt
KG8xLCBUZXh0SU8uZ2V0T3V0c3RyZWFtIG8yKQogICAKZnVuIGZsdWlkTGV0KHMxLCBzMiwgdGh1
bmspID0KICAgbGV0IHZhbCBvbGQgPSBUZXh0SU8uZ2V0T3V0c3RyZWFtIHMxCiAgIGluIHNldChz
MSwgczIpCiAgICAgIDsgRHluYW1pY1dpbmQud2luZCh0aHVuaywgZm4gKCkgPT4gVGV4dElPLnNl
dE91dHN0cmVhbShzMSwgb2xkKSkKICAgZW5kCgpmdW4gd2l0aENsb3NlKG91dDogdCwgZjogdCAt
PiAnYSk6ICdhID0KICAgRHluYW1pY1dpbmQud2luZChmbiAoKSA9PiBmIG91dCwgZm4gKCkgPT4g
Y2xvc2Ugb3V0KQoKbG9jYWwKICAgZnVuIHdpdGhoKGYsIHAsIG9wZW5uKSA9CiAgICAgIHdpdGhD
bG9zZShvcGVubiBmIGhhbmRsZSBJTy5JbyBfID0+IEVycm9yLmJ1ZygiY2Fubm90IG9wZW4gIiBe
IGYpLCBwKQppbgogICBmdW4gd2l0aE91dChmLCBwKSA9IHdpdGhoKGYsIHAsIG9wZW5PdXQpCiAg
IGZ1biB3aXRoQXBwZW5kKGYsIHApID0gd2l0aGgoZiwgcCwgb3BlbkFwcGVuZCkKZW5kCgpmdW4g
J2Egd2l0aE51bGwoZjogdCAtPiAnYSk6ICdhID0gd2l0aE91dCgiL2Rldi9udWxsIiwgZikKICAg
CmZ1biBpZ25vcmUgKG91dDogdCwgZjogdW5pdCAtPiAnYSk6ICdhID0KICAgd2l0aE51bGwgKGZu
IG91dCcgPT4gZmx1aWRMZXQgKG91dCwgb3V0JywgZikpCgplbmQKKCogc3RvcCBvZiBsaWIvbWx0
b24vYmFzaWMvb3V0c3RyZWFtMC5zbWwgKikKKCogc3RhcnQgb2YgbGliL21sdG9uL2Jhc2ljL3Jl
bGF0aW9uMC5zbWwgKikKc3RydWN0dXJlIFJlbGF0aW9uMCA9CnN0cnVjdAoKZGF0YXR5cGUgdCA9
IGRhdGF0eXBlIG9yZGVyCgp2YWwgZXF1YWxzID0gb3AgPQoKdmFsIHRvU3RyaW5nID0KICAgZm4g
RVFVQUwgPT4gIkVxdWFsIgogICAgfCBHUkVBVEVSID0+ICJHcmVhdGVyIgogICAgfCBMRVNTID0+
ICJMZXNzIgoKZnVuIGxlc3NFcXVhbCB7PCwgZXF1YWxzfSA9IAogICBsZXQKICAgICAgZnVuIGEg
PiBiID0gYiA8IGEKICAgICAgZnVuIGEgPD0gYiA9IGEgPCBiIG9yZWxzZSBlcXVhbHMgKGEsIGIp
CiAgICAgIGZ1biBhID49IGIgPSBiIDwgYSBvcmVsc2UgZXF1YWxzIChiLCBhKQogICAgICBmdW4g
Y29tcGFyZSAoYSwgYikgPSBpZiBhIDwgYiB0aGVuIExFU1MKCQkJIGVsc2UgaWYgZXF1YWxzIChh
LCBiKSB0aGVuIEVRVUFMCgkJCSAgICAgIGVsc2UgR1JFQVRFUgogICAgICBmdW4gbWluICh4LCB5
KSA9IGlmIHggPCB5IHRoZW4geCBlbHNlIHkKICAgICAgZnVuIG1heCAoeCwgeSkgPSBpZiB4IDwg
eSB0aGVuIHkgZWxzZSB4CiAgIGluIHs+ID0gb3AgPiwgPD0gPSBvcCA8PSwgPj0gPSBvcCA+PSwK
ICAgICAgIGNvbXBhcmUgPSBjb21wYXJlLCBtaW4gPSBtaW4sIG1heCA9IG1heH0KICAgZW5kCgpm
dW4gY29tcGFyZSBjID0KICAgbGV0IGZ1biBlcXVhbHMgKHgsIHkpID0gKGNhc2UgYyAoeCwgeSkg
b2YKCQkJICAgICBFUVVBTCA9PiB0cnVlCgkJCSAgIHwgXyA9PiBmYWxzZSkKICAgICAgZnVuIHgg
PCAgeSA9IChjYXNlIGMgKHgsIHkpIG9mCgkJICAgICAgIExFU1MgPT4gdHJ1ZQoJCSAgICAgfCBf
ID0+IGZhbHNlKQogICAgICBmdW4geCA8PSB5ID0gKGNhc2UgYyAoeCwgeSkgb2YKCQkJTEVTUyA9
PiB0cnVlCgkJICAgICAgfCBFUVVBTCA9PiB0cnVlCgkJICAgICAgfCBfID0+IGZhbHNlKQogICAg
ICBmdW4geCA+IHkgPSAoY2FzZSBjICh4LCB5KSBvZgoJCSAgICAgIEdSRUFURVIgPT4gdHJ1ZQoJ
CSAgICB8IF8gPT4gZmFsc2UpCiAgICAgIGZ1biB4ID49IHkgPSAoY2FzZSBjICh4LCB5KSBvZgoJ
CSAgICAgICBHUkVBVEVSID0+IHRydWUKCQkgICAgIHwgRVFVQUwgPT4gdHJ1ZQoJCSAgICAgfCBf
ID0+IGZhbHNlKQogICAgICBmdW4gbWF4ICh4LCB5KSA9IChjYXNlIGMgKHgsIHkpIG9mCgkJCSBH
UkVBVEVSID0+IHgKCQkgICAgICAgfCBfID0+IHkpCiAgICAgIGZ1biBtaW4gKHgsIHkpID0gKGNh
c2UgYyAoeCwgeSkgb2YKCQkJIEdSRUFURVIgPT4geQoJCSAgICAgICB8IF8gPT4geCkKICAgaW4g
e2VxdWFscyA9IGVxdWFscywKICAgICAgIDwgPSBvcCA8LCA+ID0gb3AgPiwgPD0gPSBvcCA8PSwg
Pj0gPSBvcCA+PSwKICAgICAgIG1pbiA9IG1pbiwgbWF4ID0gbWF4fQogICBlbmQKICAgCmVuZAoo
KiBzdG9wIG9mIGxpYi9tbHRvbi9iYXNpYy9yZWxhdGlvbjAuc21sICopCigqIHN0YXJ0IG9mIGxp
Yi9tbHRvbi9iYXNpYy9jaGFyMC5zbWwgKikKc3RydWN0dXJlIENoYXIwID0Kc3RydWN0CgpzdHJ1
Y3R1cmUgQXJyYXkgPSBQZXJ2YXNpdmUuQXJyYXkKc3RydWN0dXJlIEludCA9IFBlcnZhc2l2ZS5J
bnQKdHlwZSBpbnQgPSBJbnQuaW50CnN0cnVjdHVyZSBTdHJpbmcgPSBQZXJ2YXNpdmUuU3RyaW5n
Cm9wZW4gUGVydmFzaXZlLkNoYXIKICAgCnR5cGUgdCA9IGNoYXIKCnZhbCBkYXNoID0gIyItIgp2
YWwgZHF1b3RlID0gIyJcIiIKdmFsIG5ld2xpbmUgPSAjIlxuIgp2YWwgc3BhY2UgPSAjIiAiCnZh
bCB0b0ludCA9IG9yZAp2YWwgZnJvbUludCA9IGNocgp2YWwgZXNjYXBlU01MID0gdG9TdHJpbmcK
dmFsIGVzY2FwZUMgPSB0b0NTdHJpbmcKdmFsIHRvU3RyaW5nID0gU3RyaW5nLnN0cgp2YWwgZXF1
YWxzID0gb3AgPQp2YWwgdG9Xb3JkOCA9IEJ5dGUuY2hhclRvQnl0ZQp2YWwgZnJvbVdvcmQ4ID0g
Qnl0ZS5ieXRlVG9DaGFyCgp2YWwge21heCwgbWluLCBjb21wYXJlLCAuLi59ID0gUmVsYXRpb24w
Lmxlc3NFcXVhbCB7PCA9IG9wIDwsIGVxdWFscyA9IGVxdWFsc30KCmZ1biBkaWdpdFRvSW50KGM6
IHQpOiBpbnQgb3B0aW9uID0KICAgaWYgaXNEaWdpdCBjCiAgICAgIHRoZW4gU09NRShvcmQgYyAt
IG9yZCAjIjAiKQogICBlbHNlIE5PTkUKCmZ1biBmcm9tRGlnaXQoZDogaW50KTogdCA9CiAgIGlm
IGxldCBvcGVuIEludCBpbiAwIDw9IGQgYW5kYWxzbyBkIDwgMTAgZW5kCiAgICAgIHRoZW4gY2hy
KGQgKyBvcmQgIyIwIikKICAgZWxzZSBFcnJvci5idWcgImZyb21EaWdpdCIKCSAKZnVuIG91dHB1
dChjLCBvdXQpID0gVGV4dElPLm91dHB1dChvdXQsIHRvU3RyaW5nIGMpCgp2YWwgbnVtQ2hhcnMg
PSBvcmQgbWF4Q2hhciArIDEKCmZ1biBtZW1vaXplKGY6IHQgLT4gJ2EpOiB0IC0+ICdhID0KICAg
bGV0IHZhbCBhID0gQXJyYXkudGFidWxhdGUobnVtQ2hhcnMsIGYgbyBjaHIpCiAgIGluIGZuIGMg
PT4gQXJyYXkuc3ViKGEsIG9yZCBjKQogICBlbmQKCmZ1biB0b0hleERpZ2l0KGM6IHQpOiBpbnQg
PQogICBpZiAjIjAiIDw9IGMgYW5kYWxzbyBjIDw9ICMiOSIKICAgICAgdGhlbiBvcmQgYyAtIG9y
ZCAjIjAiCiAgIGVsc2UgaWYgIyJhIiA8PSBjIGFuZGFsc28gYyA8PSAjImYiCgkgICB0aGVuIG9y
ZCBjIC0gb3JkICMiYSIgKyAxMAoJZWxzZSBpZiAjIkEiIDw9IGMgYW5kYWxzbyBjIDw9ICMiRiIK
CQl0aGVuIG9yZCBjIC0gb3JkICMiQSIgKyAxMAoJICAgICBlbHNlIEVycm9yLmJ1ZyAiY2hhclRv
SGV4RGlnaXQiCgpmdW4gZnJvbUhleERpZ2l0KG46IGludCk6IGNoYXIgPSBTdHJpbmcuc3ViKCIw
MTIzNDU2Nzg5QUJDREVGIiwgbikKCmVuZAooKiBzdG9wIG9mIGxpYi9tbHRvbi9iYXNpYy9jaGFy
MC5zbWwgKikKKCogc3RhcnQgb2YgbGliL21sdG9uL2Jhc2ljL3N0cmluZzAuc21sICopCnN0cnVj
dHVyZSBTdHJpbmcwID0Kc3RydWN0CgpzdHJ1Y3R1cmUgSW50ID0gUGVydmFzaXZlLkludAp0eXBl
IGludCA9IEludC5pbnQKc3RydWN0dXJlIFBTID0gUGVydmFzaXZlLlN0cmluZyAgIApvcGVuIFBT
CnN0cnVjdHVyZSBDaGFyID0gQ2hhcjAKCnR5cGUgdCA9IHN0cmluZwoKdmFsIGVtcHR5ID0gIiIK
CnZhbCBkcXVvdGUgPSAiXCIiCnZhbCBuZXdsaW5lID0gIlxuIgp2YWwgbHBhcmVuID0gIigiCnZh
bCBycGFyZW4gPSAiKSIKCnZhbCBpc0VtcHR5ID0KICAgZm4gIiIgPT4gdHJ1ZQogICAgfCBfID0+
IGZhbHNlCiAgICAKdmFsIGxlbmd0aCA9IHNpemUKCmZ1biBsYXN0IHMgPSBzdWIgKHMsIGxlbmd0
aCBzIC0gMSkKCmZ1biBhcHBlbmQgKHgsIHkpID0geCBeIHkKCmZ1biB0b0NoYXIgcyA9IGlmIGxl
bmd0aCBzID0gMSB0aGVuIHN1YiAocywgMCkgZWxzZSBFcnJvci5idWcgInRvQ2hhciIKCnZhbCBm
cm9tQ2hhciA9IHN0cgoKZnVuIGNvbnRhaW5zIChzLCBjKSA9IFBlcnZhc2l2ZS5DaGFyLmNvbnRh
aW5zIHMgYwoKdmFsIGVxdWFscyA9IG9wID0KICAgCnZhbCB7Y29tcGFyZSwgbWluLCBtYXgsIC4u
Ln0gPSBSZWxhdGlvbjAubGVzc0VxdWFsIHs8ID0gb3AgPCwgZXF1YWxzID0gZXF1YWxzfQoKZnVu
IG91dHB1dCAocywgb3V0KSA9IFBlcnZhc2l2ZS5UZXh0SU8ub3V0cHV0IChvdXQsIHMpCgp2YWwg
bWF4TGVuZ3RoID0gUFMubWF4U2l6ZSAgKCogUFMubWF4TGVuICopCgpmdW4gdGFidWxhdGUgKG46
IGludCwgZikgPQogICBsZXQgZnVuIGxvb3AgaSA9IGlmIGkgPSAwIHRoZW4gW10gZWxzZSBmIGkg
OjogbG9vcCAoaSAtIDEpCiAgIGluIGltcGxvZGUgKGxvb3AgbikKICAgZW5kCgpmdW4gbWFrZSAo
biwgYykgPSB0YWJ1bGF0ZSAobiwgZm4gXyA9PiBjKQogICAKZnVuIHN1YnN0cmluZzEgKHMsIHtz
dGFydCwgbGVuZ3RofSkgPQogICBQUy5zdWJzdHJpbmcgKHMsIHN0YXJ0LCBsZW5ndGgpCgpmdW4g
c3Vic3RyaW5nMiAocywge3N0YXJ0LCBmaW5pc2h9KSA9CiAgIFBTLnN1YnN0cmluZyAocywgc3Rh
cnQsIGZpbmlzaC1zdGFydCkKCmZ1biBwcmVmaXggKHMsIGxlbikgPQogICBzdWJzdHJpbmcxIChz
LCB7c3RhcnQgPSAwLCBsZW5ndGggPSBsZW59KQoKZnVuIHN1ZmZpeCAocywgbGVuKSA9CiAgIHN1
YnN0cmluZzEgKHMsIHtzdGFydCA9IGxlbmd0aCBzIC0gbGVuLAoJCSAgbGVuZ3RoID0gbGVufSkK
ICAgCmZ1biBkcm9wU3VmZml4IChzLG4pID0KICAgc3Vic3RyaW5nMSAocywge3N0YXJ0PTAsIGxl
bmd0aCA9IGxlbmd0aCBzIC0gbn0pCgpmdW4gZHJvcExhc3QgcyA9IGRyb3BTdWZmaXggKHMsIDEp
CgpmdW4gZHJvcFByZWZpeCAocywgbikgPQogICBzdWJzdHJpbmcyIChzLCB7c3RhcnQgPSBuLCBm
aW5pc2ggPSBsZW5ndGggc30pCgpmdW4gaXNQcmVmaXgge3N0cmluZywgcHJlZml4fSA9IFBTLmlz
UHJlZml4IHByZWZpeCBzdHJpbmcKCnZhbCBmcm9tQ2hhciA9IFBTLnN0cgoKbG9jYWwgb3BlbiBJ
bnQKaW4KICAgZnVuIHJlbW92ZVRyYWlsaW5nIChzOiB0LCBwOiBjaGFyIC0+IGJvb2wpOiB0ID0K
ICAgICAgbGV0CgkgZnVuIGxvb3AgaSA9CgkgICAgaWYgaSA8IDAKCSAgICAgICB0aGVuIGkKCSAg
ICBlbHNlIGlmIHAgKHN1YiAocywgaSkpCgkJICAgIHRoZW4gbG9vcCAoaSAtIDEpCgkJIGVsc2Ug
aQogICAgICBpbiBzdWJzdHJpbmcgKHMsIDAsIDEgKyAobG9vcCAoc2l6ZSBzIC0gMSkpKQogICAg
ICBlbmQKICAgCiAgIGZ1biBpc1N1ZmZpeCB7c3RyaW5nLCBzdWZmaXh9ID0KICAgICAgbGV0Cgkg
dmFsIG4gPSBsZW5ndGggc3RyaW5nCgkgdmFsIG4nID0gbGVuZ3RoIHN1ZmZpeAoJIGZ1biBsb29w
IChpOiBpbnQsIGo6IGludCk6IGJvb2wgPQoJICAgIGkgPSBuIG9yZWxzZSAoQ2hhci5lcXVhbHMg
KHN1YiAoc3RyaW5nLCBpKSwgc3ViIChzdWZmaXgsIGopKQoJCQkgIGFuZGFsc28gbG9vcCAoaSAr
IDEsIGogKyAxKSkKICAgICAgaW4gbicgPD0gbiBhbmRhbHNvIGxvb3AgKG4gLSBuJywgMCkKICAg
ICAgZW5kCgogICBmdW4gaXNTdWJzdHJpbmcge3N0cmluZywgc3Vic3RyaW5nfSA9CiAgICAgIGxl
dCB2YWwgbiA9IGxlbmd0aCBzdWJzdHJpbmcKCSB2YWwgbWF4SW5kZXggPSBsZW5ndGggc3RyaW5n
IC0gbgoJIGZ1biBsb29wIGkgPQoJICAgIGkgPD0gbWF4SW5kZXgKCSAgICBhbmRhbHNvIChsZXQK
CQkJZnVuIGxvb3AgKGksIGopID0KCQkJICAgaiA9IG4KCQkJICAgb3JlbHNlIChDaGFyLmVxdWFs
cyAoc3ViIChzdHJpbmcsIGkpLCBzdWIgKHN1YnN0cmluZywgaikpCgkJCQkgICBhbmRhbHNvIGxv
b3AgKGkgKyAxLCBqICsgMSkpCgkJICAgICBpbiBsb29wIChpLCAwKQoJCSAgICAgZW5kCgkJCW9y
ZWxzZSBsb29wIChpICsgMSkpCiAgICAgIGluIGxvb3AgMAogICAgICBlbmQKZW5kCgpmdW4gYmFz
ZU5hbWUgKHgsIHkpID0KICAgaWYgaXNTdWZmaXgge3N0cmluZyA9IHgsIHN1ZmZpeCA9IHl9CiAg
ICAgIHRoZW4gZHJvcFN1ZmZpeCAoeCwgc2l6ZSB5KQogICBlbHNlIEVycm9yLmJ1ZyAiYmFzZU5h
bWUiCgpmdW4gZm9sZCAocywgYiwgZikgPQogICBsZXQKICAgICAgdmFsIG4gPSBzaXplIHMKICAg
ICAgZnVuIGxvb3AgKGksIGIpID0KCSBpZiBpID0gbgoJICAgIHRoZW4gYgoJIGVsc2UgbG9vcCAo
aSArIDEsIGYgKHN1YiAocywgaSksIGIpKQogICBpbiBsb29wICgwLCBiKQogICBlbmQKCmZ1biB0
cmFuc2xhdGUgKHMsIGYpID0gUFMudHJhbnNsYXRlIGYgcwoKZnVuIHRva2VucyAocywgZikgPSBQ
Uy50b2tlbnMgZiBzCmZ1biBmaWVsZHMgKHMsIGYpID0gUFMuZmllbGRzIGYgcwoKZnVuIHNwbGl0
IChzLCBjKSA9IGZpZWxkcyAocywgZm4gYycgPT4gYyA9IGMnKQoKZnVuIGRyb3BUcmFpbGluZyAo
cywgYykgPQogICBsZXQgdmFsIG4gPSBzaXplIHMKICAgICAgZnVuIGxvb3AgaSA9CgkgaWYgSW50
LjwgKGksIDApIG9yZWxzZSBjIDw+IHN1YiAocywgaSkKCSAgICB0aGVuIGkKCSBlbHNlIGxvb3Ag
KGkgLSAxKQogICBpbiBkcm9wU3VmZml4IChzLCBuIC0gMSAtIGxvb3AgKG4gLSAxKSkKICAgZW5k
CgpmdW4gdHJhbnNsYXRlQ2hhciAocywgZikgPSB0cmFuc2xhdGUgKHMsIGZyb21DaGFyIG8gZikK
ICAgCmZ1biB0b1VwcGVyIHMgPSB0cmFuc2xhdGVDaGFyIChzLCBDaGFyLnRvVXBwZXIpCmZ1biB0
b0xvd2VyIHMgPSB0cmFuc2xhdGVDaGFyIChzLCBDaGFyLnRvTG93ZXIpCgpmdW4gc29ydCAobCwg
ZikgPQogICBsZXQKICAgICAgZnVuIGxvb3AgbCA9CgkgY2FzZSBsIG9mCgkgICAgW10gPT4gW10K
CSAgfCB4IDo6IGwgPT4KCSAgICAgICBsZXQKCQkgIGZ1biBsb29wJyBsID0KCQkgICAgIGNhc2Ug
bCBvZgoJCQlbXSA9PiBbeF0KCQkgICAgICB8IHgnIDo6IGwgPT4gaWYgZiAoeCwgeCcpCgkJCQkg
ICAgICB0aGVuIHggOjogeCcgOjogbAoJCQkJICAgZWxzZSB4JyA6OiBsb29wJyBsCgkgICAgICAg
aW4gbG9vcCcgKGxvb3AgbCkKCSAgICAgICBlbmQKICAgaW4gbG9vcCBsCiAgIGVuZAogICAKZnVu
IGFscGhhYmV0aXplIHMgPSBpbXBsb2RlIChzb3J0IChleHBsb2RlIHMsIENoYXIuPCkpCgpmdW4g
ZnJvbUNoYXJBcnJheSAoYTogQ2hhckFycmF5LmFycmF5KTogdCA9CiAgIENoYXJBcnJheS5leHRy
YWN0IChhLCAwLCBOT05FKQoKZnVuIHRvU3RyaW5nIHMgPSBzCgp2YWwgZXNjYXBlQyA9IHRvQ1N0
cmluZwp2YWwgZXNjYXBlU01MID0gUFMudG9TdHJpbmcKCmZ1biBhIC8gYiA9IGNvbmNhdCBbYSwg
Ii8iLCBiXQoKZW5kCigqIHN0b3Agb2YgbGliL21sdG9uL2Jhc2ljL3N0cmluZzAuc21sICopCigq
IHN0YXJ0IG9mIGxpYi9tbHRvbi9iYXNpYy9sYXlvdXQuc2lnICopCnNpZ25hdHVyZSBMQVlPVVQg
PQogICBzaWcKICAgICAgdHlwZSBpbnQgPSBQZXJ2YXNpdmUuSW50LmludAoJIAogICAgICB0eXBl
IHQKCSAKICAgICAgKCogbGF5b3V0IHRoZSBvYmplY3RzIG9uIHNlcGFyYXRlIGxpbmVzKikKICAg
ICAgdmFsIGFsaWduOiB0IGxpc3QgLT4gdAogICAgICB2YWwgYWxpZ25QcmVmaXg6IHQgbGlzdCAq
IHN0cmluZyAtPiB0CiAgICAgIHZhbCBhcnJheTogdCBhcnJheSAtPiB0CiAgICAgICgqIFdoZXRo
ZXIgb3Igbm90IHRvIHByaW50IHRoaW5ncyBpbiBkZXRhaWwgLQogICAgICAgKiByb3V0aW5lcyB0
aGF0IGNyZWF0ZSBsYXlvdXRzIHNob3VsZCB1c2UgdGhpcyBmbGFnIHRvIGRlY2lkZQogICAgICAg
KiBob3cgZGV0YWlsZWQgdG8gcHJpbnQuCiAgICAgICAqKQogICAgICB2YWwgZGV0YWlsZWQ6IGJv
b2wgcmVmCiAgICAgIHZhbCBlbXB0eTogdAogICAgICB2YWwgaWdub3JlOiAnYSAtPiB0CiAgICAg
IHZhbCBpc0VtcHR5OiB0IC0+IGJvb2wKICAgICAgdmFsIG1ha2VPdXRwdXQ6ICgnYSAtPiB0KSAt
PiAnYSAqIE91dHN0cmVhbTAudCAtPiB1bml0CiAgICAgICgqIGxheW91dCB0aGUgb2JqZWN0cyBv
biBzZXBhcmF0ZSBsaW5lcywgaWYgbmVjZXNzYXJ5ICopCiAgICAgIHZhbCBtYXlBbGlnbjogdCBs
aXN0IC0+IHQKICAgICAgdmFsIG5hbWVkUmVjb3JkOiBzdHJpbmcgKiAoc3RyaW5nICogdCkgbGlz
dCAtPiB0CiAgICAgICgqIGluZGVudCB0aGUgZW50aXJlIG9iamVjdCAqKQogICAgICB2YWwgaW5k
ZW50OiB0ICogaW50IC0+IHQKICAgICAgdmFsIGxpc3Q6IHQgbGlzdCAtPiB0CiAgICAgIHZhbCBv
dXRwdXQ6IHQgKiBPdXRzdHJlYW0wLnQgLT4gdW5pdAogICAgICB2YWwgb3V0cHV0bDogdCAqIE91
dHN0cmVhbTAudCAtPiB1bml0CiAgICAgIHZhbCBvdXRwdXRUcmVlOiB0ICogT3V0c3RyZWFtMC50
IC0+IHVuaXQKICAgICAgdmFsIG91dHB1dFdpZHRoOiB0ICogaW50ICogT3V0c3RyZWFtMC50IC0+
IHVuaXQKICAgICAgdmFsIHBhcmVuOiB0IC0+IHQKICAgICAgKCogcHJpbnQgdGhlIG9iamVjdCAq
KQogICAgICB2YWwgcHJpbnQ6IHQgKiAoc3RyaW5nIC0+IHVuaXQpIC0+IHVuaXQKICAgICAgdmFs
IHJlY29yZDogKHN0cmluZyAqIHQpIGxpc3QgLT4gdAogICAgICB2YWwgc2NoZW1lTGlzdDogdCBs
aXN0IC0+IHQKICAgICAgKCogcHV0IHN0cmluZyBiZXR3ZWVuIGVsZW1lbnRzICopCiAgICAgIHZh
bCBzZXBhcmF0ZTogdCBsaXN0ICogc3RyaW5nIC0+IHQgbGlzdAogICAgICAoKiBhZGRzIHN0cmlu
ZyBhdCBiZWdpbm5pbmcgb2YgYWxsIG9iamVjdHMgZXhjZXB0IGZpcnN0ICopCiAgICAgIHZhbCBz
ZXBhcmF0ZUxlZnQ6IHQgbGlzdCAqIHN0cmluZyAtPiB0IGxpc3QKICAgICAgKCogYWRkcyBzdHJp
bmcgYXQgdGhlIGVuZCBvZiBhbGwgb2JqZWN0cyBleGNlcHQgbGFzdCAqKSAKICAgICAgdmFsIHNl
cGFyYXRlUmlnaHQ6IHQgbGlzdCAqIHN0cmluZyAtPiB0IGxpc3QKICAgICAgKCogbGF5b3V0IHRo
ZSBvYmplY3RzIG9uIHRoZSBzYW1lIGxpbmUgKikKICAgICAgdmFsIHNlcTogdCBsaXN0IC0+IHQK
ICAgICAgKCogY29udmVydCBhIHN0cmluZyB0byBhIGxheW91dCBvYmplY3QgKikKICAgICAgdmFs
IHN0cjogc3RyaW5nIC0+IHQKICAgICAgdmFsIHN3aXRjaDoge2RldGFpbGVkOiAnYSAtPiB0LCBu
b3JtYWw6ICdhIC0+IHR9IC0+ICdhIC0+IHQKICAgICAgdmFsIHRvU3RyaW5nOiB0IC0+IHN0cmlu
ZwogICAgICB2YWwgdHVwbGU6IHQgbGlzdCAtPiB0CiAgICAgIHZhbCB0dXBsZTI6ICgnYSAtPiB0
KSAqICgnYiAtPiB0KSAtPiAnYSAqICdiIC0+IHQKICAgICAgdmFsIHR1cGxlMzogKCdhIC0+IHQp
ICogKCdiIC0+IHQpICogKCdjIC0+IHQpIC0+ICdhICogJ2IgKiAnYyAtPiB0CiAgICAgIHZhbCB0
dXBsZTQ6ICgnYSAtPiB0KSAqICgnYiAtPiB0KSAqICgnYyAtPiB0KSAqICgnZCAtPiB0KQoJIC0+
ICdhICogJ2IgKiAnYyAqICdkIC0+IHQKICAgICAgdmFsIHR1cGxlNTogKCdhIC0+IHQpICogKCdi
IC0+IHQpICogKCdjIC0+IHQpICogKCdkIC0+IHQpICogKCdlIC0+IHQpCgkgLT4gKCdhICogJ2Ig
KiAnYyAqICdkICogJ2UpIC0+IHQKICAgICAgdmFsIHZlY3RvcjogdCB2ZWN0b3IgLT4gdAogICBl
bmQKKCogc3RvcCBvZiBsaWIvbWx0b24vYmFzaWMvbGF5b3V0LnNpZyAqKQooKiBzdGFydCBvZiBs
aWIvbWx0b24vYmFzaWMvbGF5b3V0LnNtbCAqKQpzdHJ1Y3R1cmUgTGF5b3V0OiBMQVlPVVQgPQpz
dHJ1Y3QKCnN0cnVjdHVyZSBPdXQgPSBPdXRzdHJlYW0wICAgCnN0cnVjdHVyZSBJbnQgPSBQZXJ2
YXNpdmUuSW50CnR5cGUgaW50ID0gSW50LmludAoKdmFsIGRldGFpbGVkID0gcmVmIGZhbHNlCgpm
dW4gc3dpdGNoIHtkZXRhaWxlZCA9IGQsbm9ybWFsID0gbn0geCA9CiAgIGlmICFkZXRhaWxlZCB0
aGVuIGQgeCBlbHNlIG4geAogICAgICAKc3RydWN0dXJlIFN0cmluZyA9IFN0cmluZzAKCmRhdGF0
eXBlIHQgPSBUIG9mIHtsZW5ndGg6IGludCwKCQkgICB0cmVlOiB0cmVlfQphbmQgdHJlZSA9CiAg
IEVtcHR5CiAgfCBTdHJpbmcgb2Ygc3RyaW5nCiAgfCBTZXF1ZW5jZSBvZiB0IGxpc3QKICB8IEFs
aWduIG9mIHtmb3JjZTogYm9vbCwgcm93czogdCBsaXN0fQogIHwgSW5kZW50IG9mIHQgKiBpbnQK
CmZ1biBsZW5ndGggKFQge2xlbmd0aCwgLi4ufSkgPSBsZW5ndGgKCnZhbCBlbXB0eSA9IFQge2xl
bmd0aCA9IDAsIHRyZWUgPSBFbXB0eX0KCmZ1biBpc0VtcHR5IChUIHtsZW5ndGggPSAwLCAuLi59
KSA9IHRydWUKICB8IGlzRW1wdHkgXyA9IGZhbHNlCgpmdW4gc3RyIHMgPQogICBjYXNlIHMgb2YK
ICAgICAgIiIgPT4gZW1wdHkKICAgIHwgXyA9PiBUIHtsZW5ndGggPSBTdHJpbmcuc2l6ZSBzLCB0
cmVlID0gU3RyaW5nIHN9CgpmdW4gZm9sZCAobCwgYiwgZikgPSBmb2xkbCBmIGIgbAogICAKZnVu
IHNlcSB0cyA9CiAgIGxldCB2YWwgbGVuID0gZm9sZCAodHMsIDAsIGZuICh0LG4pID0+IG4gKyBs
ZW5ndGggdCkKICAgaW4gY2FzZSBsZW4gb2YKICAgICAgMCA9PiBlbXB0eQogICAgfCBfID0+IFQg
e2xlbmd0aCA9IGxlbiwgdHJlZSA9IFNlcXVlbmNlIHRzfQogICBlbmQKCmxvY2FsCiAgIGZ1biBt
YWtlIGZvcmNlIHRzID0KICAgICAgbGV0CgkgZnVuIGxvb3AgdHMgPQoJICAgIGNhc2UgdHMgb2YK
CSAgICAgICBbXSA9PiAodHMsIDApCgkgICAgIHwgdCA6OiB0cyA9PgoJCSAgbGV0IHZhbCAodHMs
bikgPSBsb29wIHRzCgkJICBpbiBjYXNlIGxlbmd0aCB0IG9mCgkJICAgICAwID0+ICh0cyxuKQoJ
CSAgIHwgbicgPT4gKHQgOjogdHMsIG4gKyBuJyArIDEpCgkJICBlbmQKCSB2YWwgKHRzLCBsZW4p
ID0gbG9vcCB0cwogICAgICBpbiBjYXNlIGxlbiBvZgoJIDAgPT4gZW1wdHkKICAgICAgIHwgXyA9
PiBUIHtsZW5ndGggPSBsZW4gLSAxLCB0cmVlID0gQWxpZ24ge2ZvcmNlID0gZm9yY2UsIHJvd3Mg
PSB0c319CiAgICAgIGVuZAppbgogICB2YWwgYWxpZ24gPSBtYWtlIHRydWUKICAgdmFsIG1heUFs
aWduID0gbWFrZSBmYWxzZQplbmQKCmZ1biBpbmRlbnQgKHQsIG4pID0gVCB7bGVuZ3RoID0gbGVu
Z3RoIHQsIHRyZWUgPSBJbmRlbnQgKHQsIG4pfQoKdmFsIHRhYlNpemU6IGludCA9IDgKCmZ1biBi
bGFua3MgKG46IGludCk6IHN0cmluZyA9CiAgIGNvbmNhdCBbU3RyaW5nLm1ha2UgKG4gZGl2IHRh
YlNpemUsICMiXHQiKSwKCSAgIFN0cmluZy5tYWtlIChuIG1vZCB0YWJTaXplLCAjIiAiKV0KCmZ1
biBvdXRwdXRUcmVlICh0LCBvdXQpID0KICAgbGV0IHZhbCBwcmludCA9IE91dC5vdXRwdXRjIG91
dAogICAgICBmdW4gbG9vcCAoVCB7dHJlZSwgbGVuZ3RofSkgPQoJIChwcmludCAiKGxlbmd0aCAi
CgkgIDsgcHJpbnQgKEludC50b1N0cmluZyBsZW5ndGgpCgkgIDsgcHJpbnQgIikiCgkgIDsgKGNh
c2UgdHJlZSBvZgoJCUVtcHR5ID0+IHByaW50ICJFbXB0eSIKCSAgICAgIHwgU3RyaW5nIHMgPT4g
KHByaW50ICIoU3RyaW5nICI7IHByaW50IHM7IHByaW50ICIpIikKCSAgICAgIHwgU2VxdWVuY2Ug
dHMgPT4gbG9vcHMgKCJTZXF1ZW5jZSIsIHRzKQoJICAgICAgfCBBbGlnbiB7Zm9yY2UsIHJvd3N9
ID0+IGxvb3BzICgiQWxpZ24iLCByb3dzKQoJICAgICAgfCBJbmRlbnQgKHQsIG4pID0+IChwcmlu
dCAiKEluZGVudCAiCgkJCQkgIDsgcHJpbnQgKEludC50b1N0cmluZyBuKQoJCQkJICA7IHByaW50
ICIgIgoJCQkJICA7IGxvb3AgdAoJCQkJICA7IHByaW50ICIpIikpKQogICAgICBhbmQgbG9vcHMg
KHMsIHRzKSA9IChwcmludCAiKCIKCQkJICAgOyBwcmludCBzCgkJCSAgIDsgYXBwIChmbiB0ID0+
IChwcmludCAiICIgOyBsb29wIHQpKSB0cwoJCQkgICA7IHByaW50ICIpIikKICAgaW4gbG9vcCB0
CiAgIGVuZAoKZnVuIHRvU3RyaW5nIHQgPQogICBsZXQKICAgICAgZnVuIGxvb3AgKFQge3RyZWUs
IC4uLn0sIGFjY3VtKSA9CgkgY2FzZSB0cmVlIG9mCgkgICAgRW1wdHkgPT4gYWNjdW0KCSAgfCBT
dHJpbmcgcyA9PiBzIDo6IGFjY3VtCgkgIHwgU2VxdWVuY2UgdHMgPT4gZm9sZCAodHMsIGFjY3Vt
LCBsb29wKQoJICB8IEFsaWduIHtmb3JjZSwgcm93c30gPT4gZm9sZCAocm93cywgYWNjdW0sIGxv
b3ApCgkgIHwgSW5kZW50ICh0LCBfKSA9PiBsb29wICh0LCBhY2N1bSkKICAgaW4gU3RyaW5nLmNv
bmNhdCAocmV2IChsb29wICh0LCBbXSkpKQogICBlbmQKCmZ1biBwcmludCB7dHJlZTogdCwKCSAg
IHByaW50OiBzdHJpbmcgLT4gdW5pdCwKCSAgIGxpbmVXaWR0aDogaW50fSA9CiAgIGxldAogICAg
ICAoKnZhbCBfID0gb3V0cHV0VHJlZSAodCwgb3V0KSopCiAgICAgIGZ1biBuZXdsaW5lICgpID0g
cHJpbnQgIlxuIgoKICAgICAgZnVuIG91dHB1dENvbXBhY3QgKHQsIHthdCwgcHJpbnRBdH0pID0K
CSBsZXQKCSAgICBmdW4gbG9vcCAoVCB7dHJlZSwgLi4ufSkgPQoJICAgICAgIGNhc2UgdHJlZSBv
ZgoJCSAgRW1wdHkgPT4gKCkKCQl8IFN0cmluZyBzID0+IHByaW50IHMKCQl8IFNlcXVlbmNlIHRz
ID0+IGFwcCBsb29wIHRzCgkJfCBJbmRlbnQgKHQsIF8pID0+IGxvb3AgdAoJCXwgQWxpZ24ge3Jv
d3MsIC4uLn0gPT4KCQkgICAgIGNhc2Ugcm93cyBvZgoJCQlbXSA9PiAoKQoJCSAgICAgIHwgdCA6
OiB0cyA9PiAobG9vcCB0CgkJCQkgICAgOyBhcHAgKGZuIHQgPT4gKHByaW50ICIgIjsgbG9vcCB0
KSkgdHMpCgkgICAgdmFsIGF0ID0gYXQgKyBsZW5ndGggdAoJIGluIGxvb3AgdAoJICAgIDsge2F0
ID0gYXQsIHByaW50QXQgPSBhdH0KCSBlbmQKCiAgICAgIGZ1biBsb29wICh0IGFzIFQge2xlbmd0
aCwgdHJlZX0sIHN0YXRlIGFzIHthdCwgcHJpbnRBdH0pID0KCSBsZXQKCSAgICBmdW4gcHJlUHJp
bnQgKCkgPQoJICAgICAgIGlmIGF0ID49IHByaW50QXQKCQkgIHRoZW4gKCkgKCogY2FuJ3QgYmFj
ayB1cCAqKQoJICAgICAgIGVsc2UgcHJpbnQgKGJsYW5rcyAocHJpbnRBdCAtIGF0KSkKCSBpbiAo
Kk91dC5wcmludCAoY29uY2F0IFsiYXQgIiwgSW50LnRvU3RyaW5nIGF0LAoJICAgICAqICIgIHBy
aW50QXQgIiwgSW50LnRvU3RyaW5nIHByaW50QXQsCiAgICAgICAgICAgICAqICJcbiJdKTsKCSAg
ICAgKikKCSAgICAoKm91dHB1dFRyZWUgKHQsIE91dC5lcnJvcikqKQoJICAgIGNhc2UgdHJlZSBv
ZgoJICAgICAgIEVtcHR5ID0+IHN0YXRlCgkgICAgIHwgSW5kZW50ICh0LCBuKSA9PiBsb29wICh0
LCB7YXQgPSBhdCwgcHJpbnRBdCA9IHByaW50QXQgKyBufSkKCSAgICAgfCBTZXF1ZW5jZSB0cyA9
PiBmb2xkICh0cywgc3RhdGUsIGxvb3ApCgkgICAgIHwgU3RyaW5nIHMgPT4KCQkgIChwcmVQcmlu
dCAoKQoJCSAgIDsgcHJpbnQgcwoJCSAgIDsgbGV0IHZhbCBhdCA9IHByaW50QXQgKyBsZW5ndGgK
CQkgICAgIGluIHthdCA9IGF0LCBwcmludEF0ID0gYXR9CgkJICAgICBlbmQpCgkgICAgIHwgQWxp
Z24ge2ZvcmNlLCByb3dzfSA9PgoJCSAgaWYgbm90IGZvcmNlIGFuZGFsc28gcHJpbnRBdCArIGxl
bmd0aCA8PSBsaW5lV2lkdGgKCQkgICAgIHRoZW4gKHByZVByaW50ICgpCgkJCSAgIDsgb3V0cHV0
Q29tcGFjdCAodCwgc3RhdGUpKQoJCSAgZWxzZSAoY2FzZSByb3dzIG9mCgkJCSAgIFtdID0+IHN0
YXRlCgkJCSB8IHQgOjogdHMgPT4KCQkJICAgICAgZm9sZAoJCQkgICAgICAodHMsIGxvb3AgKHQs
IHN0YXRlKSwgZm4gKHQsIF8pID0+CgkJCSAgICAgICAobmV3bGluZSAoKQoJCQkJOyBsb29wICh0
LCB7YXQgPSAwLCBwcmludEF0ID0gcHJpbnRBdH0pKSkpCgkgZW5kCiAgIGluIGxvb3AgKHRyZWUs
IHthdCA9IDAsIHByaW50QXQgPSAwfSkKICAgICAgOyAoKQogICBlbmQKCmZ1biBvdXRwdXRXaWR0
aCAodCwgd2lkdGgsIG91dCkgPQogICBwcmludCB7dHJlZSA9IHQsCgkgIGxpbmVXaWR0aCA9IHdp
ZHRoLAoJICBwcmludCA9IE91dC5vdXRwdXRjIG91dH0KCmxvY2FsCiAgIHZhbCBkZWZhdWx0V2lk
dGg6IGludCA9IDgwCmluCiAgIGZ1biBvdXRwdXQgKHQsIG91dCkgPSBvdXRwdXRXaWR0aCAodCwg
ZGVmYXVsdFdpZHRoLCBvdXQpCiAgIHZhbCBwcmludCA9CiAgICAgIGZuICh0LCBwKSA9PiBwcmlu
dCB7dHJlZSA9IHQsIGxpbmVXaWR0aCA9IGRlZmF1bHRXaWR0aCwgcHJpbnQgPSBwfQplbmQKCmZ1
biBvdXRwdXRsICh0LCBvdXQpID0gKG91dHB1dCAodCwgb3V0KTsgT3V0Lm5ld2xpbmUgb3V0KQoK
ZnVuIG1ha2VPdXRwdXQgbGF5b3V0WCAoeCwgb3V0KSA9IG91dHB1dCAobGF5b3V0WCB4LCBvdXQp
CgpmdW4gaWdub3JlIF8gPSBlbXB0eQogICAKZnVuIHNlcGFyYXRlICh0cywgcykgPQogICBjYXNl
IHRzIG9mCiAgICAgIFtdID0+IFtdCiAgICB8IHQgOjogdHMgPT4gdCA6OiAobGV0IHZhbCBzID0g
c3RyIHMKCQkJICAgZnVuIGxvb3AgW10gPSBbXQoJCQkgICAgIHwgbG9vcCAodCA6OiB0cykgPSBz
IDo6IHQ6OiAobG9vcCB0cykKCQkgICAgICAgaW4gbG9vcCB0cwoJCSAgICAgICBlbmQpCgkgCmZ1
biBzZXBhcmF0ZUxlZnQgKHRzLCBzKSA9CiAgIGNhc2UgdHMgb2YKICAgICAgW10gPT4gW10KICAg
IHwgW3RdID0+IHRzCiAgICB8IHQgOjogdHMgPT4gdCA6OiAobWFwIChmbiB0ID0+IHNlcSBbc3Ry
IHMsIHRdKSB0cykKCmZ1biBzZXBhcmF0ZVJpZ2h0ICh0cywgcykgPQogICByZXYgKGxldCB2YWwg
dHMgPSByZXYgdHMKCWluIGNhc2UgdHMgb2YKCSAgIFtdID0+IFtdCgkgfCBbdF0gPT4gdHMKCSB8
IHQgOjogdHMgPT4gdCA6OiAobWFwIChmbiB0ID0+IHNlcSBbdCwgc3RyIHNdKSB0cykKCWVuZCkK
CmZ1biBhbGlnblByZWZpeCAodHMsIHByZWZpeCkgPQogICBjYXNlIHRzIG9mCiAgICAgIFtdID0+
IGVtcHR5CiAgICB8IHQgOjogdHMgPT4KCSBtYXlBbGlnbiBbdCwgaW5kZW50IChtYXlBbGlnbiAo
bWFwIChmbiB0ID0+IHNlcSBbc3RyIHByZWZpeCwgdF0pIHRzKSwKCQkJICAgICAgfiAoU3RyaW5n
LnNpemUgcHJlZml4KSldCgpsb2NhbAogICBmdW4gc2VxdWVuY2UgKHN0YXJ0LCBmaW5pc2gsIHNl
cCkgdHMgPQogICAgICBzZXEgW3N0ciBzdGFydCwgbWF5QWxpZ24gKHNlcGFyYXRlUmlnaHQgKHRz
LCBzZXApKSwgc3RyIGZpbmlzaF0KaW4KICAgdmFsIGxpc3QgPSBzZXF1ZW5jZSAoIlsiLCAiXSIs
ICIsIikKICAgdmFsIHNjaGVtZUxpc3QgPSBzZXF1ZW5jZSAoIigiLCAiKSIsICIgIikKICAgdmFs
IHR1cGxlID0gc2VxdWVuY2UgKCIoIiwgIikiLCAiLCIpCiAgIGZ1biByZWNvcmQgZnRzID0KICAg
ICAgc2VxdWVuY2UgKCJ7IiwgIn0iLCAiLCIpCiAgICAgIChtYXAgKGZuIChmLCB0KSA9PiBzZXEg
W3N0ciAoZiBeICIgPSAiKSwgdF0pIGZ0cykKZW5kCgpmdW4gdmVjdG9yIHYgPSB0dXBsZSAoUGVy
dmFzaXZlLlZlY3Rvci5mb2xkciAob3AgOjopIFtdIHYpCgpzdHJ1Y3R1cmUgQXJyYXkgPQogICBz
dHJ1Y3QKICAgICAgb3BlbiBQZXJ2YXNpdmUuQXJyYXkKCiAgICAgIGZ1biB0b0xpc3QgYSA9IGZv
bGRyIChvcCA6OikgW10gYQogICBlbmQKCnZhbCBhcnJheSA9IGxpc3QgbyBBcnJheS50b0xpc3QK
CmZ1biBuYW1lZFJlY29yZCAobmFtZSwgZmllbGRzKSA9IHNlcSBbc3RyIG5hbWUsIHN0ciAiICIs
IHJlY29yZCBmaWVsZHNdCgpmdW4gcGFyZW4gdCA9IHNlcSBbc3RyICIoIiwgdCwgc3RyICIpIl0K
CmZ1biB0dXBsZTIgKGwxLCBsMikgKHgxLCB4MikgPSB0dXBsZSBbbDEgeDEsIGwyIHgyXQpmdW4g
dHVwbGUzIChsMSwgbDIsIGwzKSAoeDEsIHgyLCB4MykgPSB0dXBsZSBbbDEgeDEsIGwyIHgyLCBs
MyB4M10KZnVuIHR1cGxlNCAobDEsIGwyLCBsMywgbDQpICh4MSwgeDIsIHgzLCB4NCkgPSB0dXBs
ZSBbbDEgeDEsIGwyIHgyLCBsMyB4MywgbDQgeDRdCmZ1biB0dXBsZTUgKGwxLCBsMiwgbDMsIGw0
LCBsNSkgKHgxLCB4MiwgeDMsIHg0LCB4NSkgPQogICB0dXBsZSBbbDEgeDEsIGwyIHgyLCBsMyB4
MywgbDQgeDQsIGw1IHg1XQoKZW5kCigqIHN0b3Agb2YgbGliL21sdG9uL2Jhc2ljL2xheW91dC5z
bWwgKikKKCogc3RhcnQgb2YgbGliL21sdG9uL2Jhc2ljL2ZvbGQuc2lnICopCnR5cGUgaW50ID0g
UGVydmFzaXZlLkludC5pbnQKICAgICAgCnNpZ25hdHVyZSBGT0xEX1NUUlVDVFMgPSAKICAgc2ln
CiAgICAgIHR5cGUgJ2EgdAogICAgICB0eXBlICdhIGVsdAoKICAgICAgdmFsIGZvbGQ6ICdhIHQg
KiAnYiAqICgnYSBlbHQgKiAnYiAtPiAnYikgLT4gJ2IKICAgZW5kCgpzaWduYXR1cmUgRk9MRCA9
IAogICBzaWcKICAgICAgaW5jbHVkZSBGT0xEX1NUUlVDVFMKCiAgICAgIHZhbCBleGlzdHM6ICdh
IHQgKiAoJ2EgZWx0IC0+IGJvb2wpIC0+IGJvb2wKICAgICAgdmFsIGZpcnN0OiAnYSB0IC0+ICdh
IGVsdAogICAgICB2YWwgZm9sZGk6ICdhIHQgKiAnYiAqIChpbnQgKiAnYSBlbHQgKiAnYiAtPiAn
YikgLT4gJ2IKICAgICAgdmFsIGZvcmFsbDogJ2EgdCAqICgnYSBlbHQgLT4gYm9vbCkgLT4gYm9v
bAogICAgICB2YWwgZm9yYWxsaTogJ2EgdCAqIChpbnQgKiAnYSBlbHQgLT4gYm9vbCkgLT4gYm9v
bAogICAgICB2YWwgZm9yZWFjaGk6ICdhIHQgKiAoaW50ICogJ2EgZWx0IC0+IHVuaXQpIC0+IHVu
aXQKICAgICAgdmFsIGZvcmVhY2g6ICdhIHQgKiAoJ2EgZWx0IC0+IHVuaXQpIC0+IHVuaXQKICAg
ICAgdmFsIGluZGV4OiAnYSB0ICogKCdhIGVsdCAtPiBib29sKSAtPiBpbnQgb3B0aW9uCiAgICAg
IHZhbCBpc0VtcHR5OiAnYSB0IC0+IGJvb2wKICAgICAgdmFsIGtlZXBBbGw6ICdhIHQgKiAoJ2Eg
ZWx0IC0+IGJvb2wpIC0+ICdhIGVsdCBsaXN0CiAgICAgIHZhbCBrZWVwQWxsTWFwOiAnYSB0ICog
KCdhIGVsdCAtPiAnYiBvcHRpb24pIC0+ICdiIGxpc3QKICAgICAgdmFsIGxhc3Q6ICdhIHQgLT4g
J2EgZWx0CiAgICAgIHZhbCBsYXlvdXQ6ICgnYSBlbHQgLT4gTGF5b3V0LnQpIC0+ICdhIHQgLT4g
TGF5b3V0LnQKICAgICAgdmFsIGxlbmd0aDogJ2EgdCAtPiBpbnQKICAgICAgdmFsIGxvb2t1cDog
J2EgdCAqICgnYSBlbHQgLT4gYm9vbCkgLT4gJ2EgZWx0CiAgICAgIHZhbCBtYXA6ICdhIHQgKiAo
J2EgZWx0IC0+ICdiKSAtPiAnYiBsaXN0CiAgICAgIHZhbCBtYXBpOiAnYSB0ICogKGludCAqICdh
IGVsdCAtPiAnYikgLT4gJ2IgbGlzdAogICAgICB2YWwgbnRoOiAnYSB0ICogaW50IC0+ICdhIGVs
dAogICAgICB2YWwgcGVlazogJ2EgdCAqICgnYSBlbHQgLT4gYm9vbCkgLT4gJ2EgZWx0IG9wdGlv
bgogICAgICB2YWwgcGVla2k6ICdhIHQgKiAoaW50ICogJ2EgZWx0IC0+IGJvb2wpIC0+IChpbnQg
KiAnYSBlbHQpIG9wdGlvbgogICAgICB2YWwgcGVla01hcDogJ2EgdCAqICgnYSBlbHQgLT4gJ2Ig
b3B0aW9uKSAtPiAnYiBvcHRpb24KICAgICAgdmFsIHBlZWtNYXBpOiAnYSB0ICogKCdhIGVsdCAt
PiAnYiBvcHRpb24pIC0+IChpbnQgKiAnYikgb3B0aW9uCiAgICAgIHZhbCByZW1vdmVBbGw6ICdh
IHQgKiAoJ2EgZWx0IC0+IGJvb2wpIC0+ICdhIGVsdCBsaXN0CiAgICAgIHZhbCBzdWJzZXQ6ICdh
IHQgKiAoJ2EgZWx0IC0+IGJvb2wpIC0+ICdhIGVsdCBsaXN0CiAgIGVuZAooKiBzdG9wIG9mIGxp
Yi9tbHRvbi9iYXNpYy9mb2xkLnNpZyAqKQooKiBzdGFydCBvZiBsaWIvbWx0b24vYmFzaWMvb3B0
aW9uLnNpZyAqKQpzaWduYXR1cmUgT1BUSU9OID0KICAgc2lnCiAgICAgIHR5cGUgJ2EgdCA9ICdh
IG9wdGlvbgoKICAgICAgdmFsIGFwcDogJ2EgdCAqICgnYSAtPiB1bml0KSAtPiB1bml0CiAgICAg
IHZhbCBlcXVhbHM6ICdhIHQgKiAnYSB0ICogKCdhICogJ2EgLT4gYm9vbCkgLT4gYm9vbAogICAg
ICB2YWwgZm9sZDogJ2EgdCAqICdiICogKCdhICogJ2IgLT4gJ2IpIC0+ICdiCiAgICAgIHZhbCBp
c05vbmU6ICdhIHQgLT4gYm9vbAogICAgICB2YWwgaXNTb21lOiAnYSB0IC0+IGJvb2wKICAgICAg
dmFsIGxheW91dDogKCdhIC0+IExheW91dC50KSAtPiAnYSB0IC0+IExheW91dC50CiAgICAgIHZh
bCBtYXA6ICdhIHQgKiAoJ2EgLT4gJ2IpIC0+ICdiIHQKICAgICAgdmFsIHRvU3RyaW5nOiAoJ2Eg
LT4gc3RyaW5nKSAtPiAnYSB0IC0+IHN0cmluZwogICAgICB2YWwgdmFsT2Y6ICdhIHQgLT4gJ2EK
ICAgZW5kCigqIHN0b3Agb2YgbGliL21sdG9uL2Jhc2ljL29wdGlvbi5zaWcgKikKKCogc3RhcnQg
b2YgbGliL21sdG9uL2Jhc2ljL29wdGlvbi5zbWwgKikKc3RydWN0dXJlIE9wdGlvbjogT1BUSU9O
ID0Kc3RydWN0Cgp0eXBlICdhIHQgPSAnYSBvcHRpb24KCm9wZW4gUGVydmFzaXZlLk9wdGlvbgoK
ZnVuIGZvbGQgKG9wdCwgYiwgZikgPQogICBjYXNlIG9wdCBvZgogICAgICBOT05FID0+IGIKICAg
IHwgU09NRSB4ID0+IGYgKHgsIGIpCgkgCmZ1biBhcHAgKG9wdCwgZikgPQogICBjYXNlIG9wdCBv
ZgogICAgICBOT05FID0+ICgpCiAgICB8IFNPTUUgeCA9PiBmIHgKCmZ1biBtYXAgKG9wdCwgZikg
PQogICBjYXNlIG9wdCBvZgogICAgICBOT05FID0+IE5PTkUKICAgIHwgU09NRSB4ID0+IFNPTUUg
KGYgeCkKCmZ1biBlcXVhbHMgKG8xLCBvMiwgZXEpID0KICAgY2FzZSAobzEsIG8yKSBvZgogICAg
ICAoTk9ORSwgTk9ORSkgPT4gdHJ1ZQogICAgfCAoU09NRSB4LCBTT01FIHkpID0+IGVxICh4LCB5
KQogICAgfCBfID0+IGZhbHNlCgpmdW4gaXNOb25lIG9wdCA9CiAgIGNhc2Ugb3B0IG9mCiAgICAg
IE5PTkUgPT4gdHJ1ZQogICAgfCBTT01FIF8gPT4gZmFsc2UKCmZ1biB0b1N0cmluZyB4VG9TdHJp
bmcgb3B0ID0KICAgY2FzZSBvcHQgb2YKICAgICAgTk9ORSA9PiAiTm9uZSIKICAgIHwgU09NRSB4
ID0+IGNvbmNhdCBbIlNvbWUgKCIsIHhUb1N0cmluZyB4LCAiKSJdCgpmdW4gbGF5b3V0IGxheW91
dFggb3B0ID0KICAgbGV0IG9wZW4gTGF5b3V0CiAgIGluIGNhc2Ugb3B0IG9mCiAgICAgIE5PTkUg
PT4gc3RyICJOb25lIgogICAgfCBTT01FIHggPT4gc2VxIFtzdHIgIlNvbWUgKCIsIGxheW91dFgg
eCwgc3RyICIpIl0KICAgZW5kCgplbmQKKCogc3RvcCBvZiBsaWIvbWx0b24vYmFzaWMvb3B0aW9u
LnNtbCAqKQooKiBzdGFydCBvZiBsaWIvbWx0b24vYmFzaWMvZm9sZC5mdW4gKikKZnVuY3RvciBG
b2xkIChTOiBGT0xEX1NUUlVDVFMpOiBGT0xEID0gCnN0cnVjdAoKc3RydWN0dXJlIEludCA9IFBl
cnZhc2l2ZS5JbnQKdHlwZSBpbnQgPSBJbnQuaW50CiAgIApvcGVuIFMKCmZ1biBmb2xkaSAobCwg
YiwgZikgPQogICAjMSAoZm9sZCAobCwgKGIsIDA6IGludCksIGZuICh4LCAoYiwgaSkpID0+IChm
IChpLCB4LCBiKSwgaSArIDEpKSkKCmZ1biBmb3JlYWNoaSAobCwgZikgPSBmb2xkaSAobCwgKCks
IGZuIChpLCB4LCAoKSkgPT4gZiAoaSwgeCkpCgpmdW4gZm9yZWFjaCAobCwgZikgPSBmb2xkIChs
LCAoKSwgZiBvICMxKQoKZnVuIGxhc3QgbCA9CiAgIGNhc2UgZm9sZCAobCwgTk9ORSwgU09NRSBv
ICMxKSBvZgogICAgICBOT05FID0+IEVycm9yLmJ1ZyAibGFzdCIKICAgIHwgU09NRSB4ID0+IHgK
ICAgCmZ1biBsZW5ndGggbCA9IGZvbGQgKGwsIDA6IGludCwgZm4gKF8sIG4pID0+IG4gKyAxKQoK
ZnVuIHBlZWtHZW4gKGw6ICdhIHQsIG5vOiB1bml0IC0+ICdiLCBmOiBpbnQgKiAnYSBlbHQgLT4g
J2Igb3B0aW9uKTogJ2IgPQogICBEeW5hbWljV2luZC53aXRoRXNjYXBlCiAgIChmbiBlc2NhcGUg
PT4gKGZvcmVhY2hpIChsLCBmbiAoaSwgeCkgPT4KCQkJICAgIGNhc2UgZiAoaSwgeCkgb2YKCQkJ
ICAgICAgIE5PTkUgPT4gKCkKCQkJICAgICB8IFNPTUUgeWVzID0+IGVzY2FwZSB5ZXMpCgkJICA7
IG5vICgpKSkKCmZ1biBwZWVrTWFwaSAobDogJ2EgdCwgZjogJ2EgZWx0IC0+ICdiIG9wdGlvbik6
IChpbnQgKiAnYikgb3B0aW9uID0KICAgcGVla0dlbiAobCwKCSAgICBmbiAoKSA9PiBOT05FLAoJ
ICAgIGZuIChpLCBhKSA9PiBPcHRpb24ubWFwIChmIGEsIGZuIGIgPT4gU09NRSAoaSwgYikpKQoK
ZnVuIHBlZWtNYXAgKGwsIGYpID0gT3B0aW9uLm1hcCAocGVla01hcGkgKGwsIGYpLCAjMikKCmZ1
biBwZWVraSAobCwgZikgPQogICBwZWVrR2VuIChsLCBmbiAoKSA9PiBOT05FLAoJICAgIGZuIChp
LCB4KSA9PiBpZiBmIChpLCB4KQoJCQkgICAgdGhlbiBTT01FIChTT01FIChpLCB4KSkKCQkJIGVs
c2UgTk9ORSkKCmZ1biBpc0VtcHR5IGwgPSBwZWVrR2VuIChsLCBmbiAoKSA9PiB0cnVlLCBmbiBf
ID0+IFNPTUUgZmFsc2UpCgpmdW4gbnRoIChsLCBuKSA9IHBlZWtHZW4gKGwsCgkJCWZuICgpID0+
IEVycm9yLmJ1ZyAibnRoIiwKCQkJZm4gKGksIHgpID0+IGlmIGkgPSBuIHRoZW4gU09NRSB4IGVs
c2UgTk9ORSkKCmZ1biBmaXJzdCBsID0gcGVla0dlbiAobCwgZm4gKCkgPT4gRXJyb3IuYnVnICJm
aXJzdCIsIFNPTUUgbyAjMikKCiAgIApmdW4gcGVlayAobCwgZikgPSBwZWVrR2VuIChsLCBmbiAo
KSA9PiBOT05FLAoJCQkgZm4gKF8sIHgpID0+IGlmIGYgeCB0aGVuIFNPTUUgKFNPTUUgeCkgZWxz
ZSBOT05FKQoKZnVuIGluZGV4IChsLCBmKSA9IHBlZWtHZW4gKGwsIGZuICgpID0+IE5PTkUsCgkJ
CSAgZm4gKGksIHgpID0+IGlmIGYgeCB0aGVuIFNPTUUgKFNPTUUgaSkgZWxzZSBOT05FKQoKZnVu
IGV4aXN0c2kgKGwsIGYpID0gcGVla0dlbiAobCwKCQkJICAgIGZuICgpID0+IGZhbHNlLAoJCQkg
ICAgZm4gKGksIHgpID0+IGlmIGYgKGksIHgpIHRoZW4gU09NRSB0cnVlIGVsc2UgTk9ORSkKCmZ1
biBleGlzdHMgKGwsIGYpID0gZXhpc3RzaSAobCwgZm4gKF8sIHgpID0+IGYgeCkKCmZ1biBmb3Jh
bGxpIChsLCBmKSA9IG5vdCAoZXhpc3RzaSAobCwgbm90IG8gZikpCgpmdW4gZm9yYWxsIChsLCBm
KSA9IGZvcmFsbGkgKGwsIGYgbyAjMikKCmZ1biBtYXBpIChsLCBmKSA9IHJldiAoZm9sZGkgKGws
IFtdLCBmbiAoaSwgeCwgbCkgPT4gZiAoaSwgeCkgOjogbCkpCgpmdW4gbWFwIChsLCBmKSA9IG1h
cGkgKGwsIGYgbyAjMikKICAgCmZ1biBsYXlvdXQgZiBsID0gTGF5b3V0Lmxpc3QgKG1hcCAobCwg
ZikpCgpmdW4ga2VlcEFsbE1hcCAobCwgZikgPQogICByZXYgKGZvbGQgKGwsIFtdLCBmbiAoeCwg
bCkgPT4KCSAgICAgIGNhc2UgZiB4IG9mCgkJIE5PTkUgPT4gbAoJICAgICAgIHwgU09NRSB5ID0+
IHkgOjogbCkpCgpmdW4ga2VlcEFsbCAobCwgZikgPSBrZWVwQWxsTWFwIChsLCBmbiB4ID0+IGlm
IGYgeCB0aGVuIFNPTUUgeCBlbHNlIE5PTkUpCgkJCSAgICAgICAKdmFsIHN1YnNldCA9IGtlZXBB
bGwKCmZ1biByZW1vdmVBbGwgKGwsIGYpID0gc3Vic2V0IChsLCBub3QgbyBmKQoKZnVuIGxvb2t1
cCAobCwgZikgPQogICBjYXNlIHBlZWsgKGwsIGYpIG9mCiAgICAgIE5PTkUgPT4gRXJyb3IuYnVn
ICJsb29rdXAiCiAgICB8IFNPTUUgeCA9PiB4CgplbmQKCigqIHN0b3Agb2YgbGliL21sdG9uL2Jh
c2ljL2ZvbGQuZnVuICopCigqIHN0YXJ0IG9mIGxpYi9tbHRvbi9iYXNpYy9hc3NlcnQuc2lnICop
CnNpZ25hdHVyZSBBU1NFUlQgPQogICBzaWcKICAgICAgdmFsIGFzc2VydDogc3RyaW5nICogKHVu
aXQgLT4gYm9vbCkgLT4gdW5pdAogICAgICB2YWwgYXNzZXJ0RnVuOgoJIHN0cmluZwoJICogKCdh
IC0+ICdiKQoJICogKCdhIC0+IGJvb2wgKiAoJ2IgLT4gYm9vbCkpCgkgLT4gJ2EgLT4gJ2IKICAg
ICAgdmFsIGFzc2VydEZ1bjI6Cgkgc3RyaW5nCgkgKiAoJ2EgLT4gJ2IgLT4gJ2MpCgkgKiAoJ2Eg
LT4gYm9vbCAqICgnYiAtPiAoYm9vbCAqICgnYyAtPiBib29sKSkpKQoJIC0+ICdhIC0+ICdiIC0+
ICdjCiAgICAgIHZhbCBkZWJ1ZzogYm9vbAogICAgICB2YWwgZmFpbDogc3RyaW5nIC0+ICdhCiAg
IGVuZAooKiBzdG9wIG9mIGxpYi9tbHRvbi9iYXNpYy9hc3NlcnQuc2lnICopCigqIHN0YXJ0IG9m
IGxpYi9tbHRvbi9iYXNpYy9hc3NlcnQuc21sICopCnN0cnVjdHVyZSBBc3NlcnQ6IEFTU0VSVCA9
CiAgIHN0cnVjdAogICAgICB2YWwgZGVidWcgPSBNTHRvbi5kZWJ1ZwoKICAgICAgZnVuIGZhaWwg
bXNnID0gRXJyb3IuYnVnKGNvbmNhdFsiYXNzZXJ0aW9uIGZhaWx1cmU6ICIsIG1zZ10pCgkgCiAg
ICAgIGZ1biBhc3NlcnQobXNnOiBzdHJpbmcsIGY6IHVuaXQgLT4gYm9vbCk6IHVuaXQgPQoJIGlm
IGRlYnVnIGFuZGFsc28gbm90KGYoKSBoYW5kbGUgXyA9PiBmYWxzZSkKCSAgICB0aGVuIGZhaWwg
bXNnCgkgZWxzZSAoKQoKICAgICAgZnVuIGFzc2VydCcobXNnLCBiKSA9IGFzc2VydChtc2csIGZu
ICgpID0+IGIpCgkgCiAgICAgIHZhbCAoJ2EsICdiKSBhc3NlcnRGdW4nOgoJIHN0cmluZwoJICog
KCdhIC0+ICdiKQoJICogKCdhIC0+IGJvb2wgKiAoJ2IgLT4gYm9vbCAqICdiKSkKCSAtPiAnYSAt
PiAnYiA9CgkgKCogQ2FuJ3QgZG8gd2hhdCBJIHJlYWxseSB3YW50IGJlY2F1c2Ugb2YgdGhlIHZh
bHVlIHJlc3RyaWN0aW9uLgoJICAqIFdvdWxkIGxpa2UgdG8gd3JpdGU6CgkgICogICBpZiBkZWJ1
ZyB0aGVuIChmbiAuLi4gPT4gLi4uKSBlbHNlIChmbiAuLi4gPT4gLi4uKS4KCSAgKikKCSBmbiAo
bXNnLCBmLCBjaGVjaykgPT4KCSBpZiBkZWJ1ZwoJICAgIHRoZW4gKGZuIGEgPT4KCQkgIGxldCB2
YWwgKHllcywgY2hlY2spID0gY2hlY2sgYQoJCSAgICAgdmFsIF8gPSBhc3NlcnQnKGNvbmNhdFtt
c2csICIgYXJndW1lbnQiXSwgeWVzKQoJCSAgICAgdmFsICh5ZXMsIGIpID0gY2hlY2soZiBhKQoJ
CSAgaW4gYXNzZXJ0Jyhjb25jYXRbbXNnLCAiIHJlc3VsdCJdLCB5ZXMpCgkJICAgICA7IGIKCQkg
IGVuZCkKCSBlbHNlIGYKCiAgICAgIGZ1biBhc3NlcnRGdW4obXNnLAoJCSAgICBmOiAnYSAtPiAn
YiwKCQkgICAgY2hlY2s6ICdhIC0+IGJvb2wgKiAoJ2IgLT4gYm9vbCkpOiAnYSAtPiAnYiA9Cgkg
YXNzZXJ0RnVuJyhtc2csIGYsCgkJICAgIGZuIGEgPT4gbGV0IHZhbCAoeWVzLCBjaGVjaykgPSBj
aGVjayBhCgkJCSAgICBpbiAoeWVzLCBmbiBiID0+IChjaGVjayBiLCBiKSkKCQkJICAgIGVuZCkK
CiAgICAgIGZ1biBhc3NlcnRGdW4yKG1zZywKCQkgICAgIGY6ICdhIC0+ICdiIC0+ICdjLAoJCSAg
ICAgY2hlY2s6ICdhIC0+IGJvb2wgKiAoJ2IgLT4gKGJvb2wgKiAoJ2MgLT4gYm9vbCkpKSkgPQoJ
IGFzc2VydEZ1bicKCSAobXNnLCBmLAoJICBmbiBhID0+IGxldCB2YWwgKHllcywgY2hlY2spID0g
Y2hlY2sgYQoJCSAgaW4gKHllcywKCQkgICAgICBmbiBiYyA9PiAodHJ1ZSwgYXNzZXJ0RnVuKG1z
ZywgYmMsIGNoZWNrKSkpCgkJICBlbmQpCiAgIGVuZAooKiBzdG9wIG9mIGxpYi9tbHRvbi9iYXNp
Yy9hc3NlcnQuc21sICopCigqIHN0YXJ0IG9mIGxpYi9tbHRvbi9iYXNpYy9saXN0LnNpZyAqKQpz
aWduYXR1cmUgTElTVCA9CiAgIHNpZwogICAgICB0eXBlIGludCA9IFBlcnZhc2l2ZS5JbnQuaW50
CgkgCiAgICAgIHR5cGUgJ2EgdCA9ICdhIGxpc3QKCiAgICAgIHZhbCBhbGxCdXRMYXN0OiAnYSB0
IC0+ICdhIHQKICAgICAgdmFsIGFwcGVuZDogJ2EgdCAqICdhIHQgLT4gJ2EgdAogICAgICAoKiBh
cHBlbmRNYXAgKGwxLCBmLCBsMikgPSBhcHBlbmQgKG1hcCAobDEsIGYpLCBsMikgKikKICAgICAg
dmFsIGFwcGVuZE1hcDogJ2EgdCAqICgnYSAtPiAnYikgKiAnYiB0IC0+ICdiIHQKICAgICAgKCog
YXBwZW5kUmV2IChsMSwgbDIpID0gYXBwZW5kIChyZXYgbDEsIGwyKSAqKQogICAgICB2YWwgYXBw
ZW5kUmV2OiAnYSB0ICogJ2EgdCAtPiAnYSB0CiAgICAgIHZhbCBjb21wYXJlOiAnYSB0ICogJ2Eg
dCAqICgnYSAqICdhIC0+IG9yZGVyKSAtPiBvcmRlcgogICAgICAoKiBjb25jYXQgW1sxLCAyXSwg
WzMsIDQsIDVdLCBbNl1dID0gWzEsIDIsIDMsIDQsIDUsIDZdICopCiAgICAgIHZhbCBjb25jYXQ6
ICdhIHQgdCAtPiAnYSB0CiAgICAgICgqIGNvbmNhdE1hcCA9IGNvbmNhdCBvIG1hcCAqKQogICAg
ICB2YWwgY29uY2F0TWFwOiAnYSB0ICogKCdhIC0+ICdiIHQpIC0+ICdiIHQKICAgICAgKCogY29u
Y2F0UmV2ID0gY29uY2F0IG8gcmV2ICopCiAgICAgIHZhbCBjb25jYXRSZXY6ICdhIHQgdCAtPiAn
YSB0CiAgICAgIHZhbCBjb25zOiAnYSAqICdhIHQgLT4gJ2EgdAogICAgICB2YWwgY29udGFpbnM6
ICdhIHQgKiAnYSAqICgnYSAqICdhIC0+IGJvb2wpIC0+IGJvb2wKICAgICAgKCogICBjcm9zcyBb
WzEsIDIsIDNdLCBbNCwgNV0sIFs2LCA3XV0gPQogICAgICAgKiBbWzEsIDQsIDZdLCBbMSwgNCwg
N10sIFsxLCA1LCA2XSwgWzEsIDUsIDddLAogICAgICAgKiAgWzIsIDQsIDZdLCBbMiwgNCwgN10s
IFsyLCA1LCA2XSwgWzIsIDUsIDddLAogICAgICAgKiAgWzMsIDQsIDZdLCBbMywgNCwgN10sIFsz
LCA1LCA2XSwgWzMsIDUsIDddXQogICAgICAgKikKICAgICAgdmFsIGNyb3NzOiAnYSB0IHQgLT4g
J2EgdCB0CiAgICAgICgqIGR1cGxpY2F0ZSAoMywgZikgPSBbZiAoKSwgZiAoKSwgZiAoKV0gKikK
ICAgICAgdmFsIGR1cGxpY2F0ZTogaW50ICogKHVuaXQgLT4gJ2EpIC0+ICdhIHQKICAgICAgKCog
RXh0cmFjdCBlYWNoIGVsZW1lbnQgcGFpcmVkIHdpdGggdGhlIGVsZW1lbnRzIGJlZm9yZSBpdAog
ICAgICAgKiBhbmQgYWZ0ZXIgaXQgaW4gdGhlIHNhbWUgb3JkZXIgYXMgaW4gdGhlIGxpc3QuCiAg
ICAgICAqKQooKiAgICAgIHZhbCBlYWNoOiAnYSB0IC0+ICgnYSB0ICogJ2EgKiAnYSB0KSB0ICop
CiAgICAgIHZhbCBlcXVhbHM6ICdhIHQgKiAnYiB0ICogKCdhICogJ2IgLT4gYm9vbCkgLT4gYm9v
bAogICAgICB2YWwgZXF1YWxzQXNTZXQ6ICdhIHQgKiAnYSB0ICogKCdhICogJ2EgLT4gYm9vbCkg
LT4gYm9vbAogICAgICAoKiBHcm91cCBhY2NvcmRpbmcgdG8gZXF1aXZhbGVuY2UgcmVsYXRpb24u
ICopCigqICAgICAgdmFsIGVxdWl2YWxlbmNlOiAnYSB0ICogKCdhICogJ2EgLT4gYm9vbCkgLT4g
J2EgdCB0ICopCiAgICAgIHZhbCBleGlzdHM6ICdhIHQgKiAoJ2EgLT4gYm9vbCkgLT4gYm9vbAog
ICAgICB2YWwgZmlyc3Q6ICdhIHQgLT4gJ2EKICAgICAgdmFsIGZpcnN0TjogJ2EgdCAqIGludCAt
PiAnYSB0CiAgICAgIHZhbCBmb2xkOiAnYSB0ICogJ2IgKiAoJ2EgKiAnYiAtPiAnYikgLT4gJ2IK
ICAgICAgdmFsIGZvbGQyOiAnYSB0ICogJ2IgdCAqICdjICogKCdhICogJ2IgKiAnYyAtPiAnYykg
LT4gJ2MKICAgICAgdmFsIGZvbGQzOiAnYSB0ICogJ2IgdCAqICdjIHQgKiAnZCAqICgnYSAqICdi
ICogJ2MgKiAnZCAtPiAnZCkgLT4gJ2QKICAgICAgdmFsIGZvbGRpOiAnYSB0ICogJ2IgKiAoaW50
ICogJ2EgKiAnYiAtPiAnYikgLT4gJ2IKICAgICAgdmFsIGZvbGRyOiAnYSB0ICogJ2IgKiAoJ2Eg
KiAnYiAtPiAnYikgLT4gJ2IKICAgICAgdmFsIGZvbGRyMjogJ2EgdCAqICdiIHQgKiAnYyAqICgn
YSAqICdiICogJ2MgLT4gJ2MpIC0+ICdjCiAgICAgIHZhbCBmb3JhbGw6ICdhIHQgKiAoJ2EgLT4g
Ym9vbCkgLT4gYm9vbAogICAgICB2YWwgZm9yYWxsMjogJ2EgdCAqICdiIHQgKiAoJ2EgKiAnYiAt
PiBib29sKSAtPiBib29sCiAgICAgIHZhbCBmb3JhbGxpOiAnYSB0ICogKGludCAqICdhIC0+IGJv
b2wpIC0+IGJvb2wKICAgICAgdmFsIGZvcmVhY2g6ICdhIHQgKiAoJ2EgLT4gdW5pdCkgLT4gdW5p
dAogICAgICB2YWwgZm9yZWFjaDI6ICdhIHQgKiAnYiB0ICogKCdhICogJ2IgLT4gdW5pdCkgLT4g
dW5pdAooKiAgICAgIHZhbCBmb3JlYWNoMzogJ2EgdCAqICdiIHQgKiAnYyB0ICogKCdhICogJ2Ig
KiAnYyAtPiB1bml0KSAtPiB1bml0ICopCiAgICAgIHZhbCBmb3JlYWNoaTogJ2EgdCAqIChpbnQg
KiAnYSAtPiB1bml0KSAtPiB1bml0CiAgICAgIHZhbCBpbmRleDogJ2EgdCAqICgnYSAtPiBib29s
KSAtPiBpbnQgb3B0aW9uCiAgICAgICgqIEluc2VydCBhbiBlbGVtZW50IGluIGEgbGlzdCBzb3J0
ZWQgaW4gaW5jcmVhc2luZyBvcmRlci4KICAgICAgICogUmV0dXJuIHRoZSBvcmlnaW5hbCBsaXN0
IGlmIHRoZSB0aGUgZWxlbWVudCBpcyBhbHJlYWR5IHRoZXJlLgogICAgICAgKikKICAgICAgdmFs
IGluc2VydDogJ2EgdCAqICdhICogKCdhICogJ2EgLT4gYm9vbCkgLT4gJ2EgdAogICAgICB2YWwg
aW5zZXJ0aW9uU29ydDogJ2EgdCAqICgnYSAqICdhIC0+IGJvb2wpIC0+ICdhIHQKICAgICAgdmFs
IGlzRW1wdHk6ICdhIHQgLT4gYm9vbAogICAgICB2YWwgaXNQcmVmaXg6ICdhIHQgKiAnYSB0ICog
KCdhICogJ2EgLT4gYm9vbCkgLT4gYm9vbAogICAgICB2YWwga2VlcEFsbDogJ2EgdCAqICgnYSAt
PiBib29sKSAtPiAnYSB0CiAgICAgIHZhbCBrZWVwQWxsTWFwOiAnYSB0ICogKCdhIC0+ICdiIG9w
dGlvbikgLT4gJ2IgdAogICAgICB2YWwgbGFzdDogJ2EgdCAtPiAnYQogICAgICB2YWwgbGF5b3V0
OiAoJ2EgLT4gTGF5b3V0LnQpIC0+ICdhIHQgLT4gTGF5b3V0LnQKICAgICAgKCogU3BlY2lmeSBh
IHN0cmluZyB0byBzZXBhcmF0ZSB0aGUgZWxlbWVudHMgKikKKCogICAgICB2YWwgbGF5b3V0U2Vw
OiBzdHJpbmcgKiAoJ2EgLT4gTGF5b3V0LnQpIC0+ICdhIHQgLT4gTGF5b3V0LnQgKikKICAgICAg
dmFsIGxlbmd0aDogJ2EgdCAtPiBpbnQKICAgICAgdmFsIGxvb2t1cDogJ2EgdCAqICgnYSAtPiBi
b29sKSAtPiAnYQogICAgICB2YWwgbWFwOiAnYSB0ICogKCdhIC0+ICdiKSAtPiAnYiB0CiAgICAg
IHZhbCBtYXBpOiAnYSB0ICogKGludCAqICdhIC0+ICdiKSAtPiAnYiB0CiAgICAgIHZhbCBtYXAy
OiAnYSB0ICogJ2IgdCAqICgnYSAqICdiIC0+ICdjKSAtPiAnYyB0CiAgICAgIHZhbCBtYXAzOiAn
YSB0ICogJ2IgdCAqICdjIHQgKiAoJ2EgKiAnYiAqICdjIC0+ICdkKSAtPiAnZCB0CigqICAgICAg
dmFsIG1hcDQ6ICdhIHQgKiAnYiB0ICogJ2MgdCAqICdkIHQgKiAoJ2EgKiAnYiAqICdjICogJ2Qg
LT4gJ2UpIC0+ICdlIHQgKikKICAgICAgdmFsIG50aDogJ2EgdCAqIGludCAtPiAnYQooKiAgICAg
IHZhbCBudGhUYWlsOiAnYSB0ICogaW50IC0+ICdhIHQgKikKKCogICAgICAgdmFsIG9yZGVyZWQg
OgogKiAJIHs8IDogJ2EgKiAnYSAtPiBib29sfQogKiAJIC0+IHtpbnNlcnQ6ICdhIHQgKiAnYSAt
PiAnYSB0LAogKiAJICAgICBpbnNlcnRpb25Tb3J0OiAnYSB0ICAtPiAnYSB0LAogKiAJICAgICBt
ZWRpYW46ICdhIHQgLT4gJ2EsCiAqIAkgICAgIG9yZGVyU3RhdGlzdGljOiAnYSB0ICogaW50IC0+
ICdhLAogKiAJICAgICBwYXJ0aXRpb246ICdhIHQgKiAnYSAtPiAnYSB0ICogJ2EgdCwKICogCSAg
ICAgbWF4OiAnYSB0IC0+ICdhLAogKiAJICAgICBtaW46ICdhIHQgLT4gJ2EsCiAqIAkgICAgIGxh
cmdlc3Q6ICdhIHQgKiBpbnQgLT4gJ2EgdCwKICogCSAgICAgc21hbGxlc3Q6ICdhIHQgKiBpbnQg
LT4gJ2EgdH0KICopCiAgICAgICgqIHBhcnRpdGlvbiAoWzEsIDIsIDMsIDRdLCBpc09kZCkgPSB7
bm8gPSBbNCwgMl0sIHllcyA9IFszLCAxXX0gKikKICAgICAgdmFsIHBhcnRpdGlvbjogJ2EgdCAq
ICgnYSAtPiBib29sKSAtPiB7bm86ICdhIHQsIHllczogJ2EgdH0KICAgICAgdmFsIHBlZWs6ICdh
IHQgKiAoJ2EgLT4gYm9vbCkgLT4gJ2Egb3B0aW9uCiAgICAgIHZhbCBwZWVraTogJ2EgdCAqIChp
bnQgKiAnYSAtPiBib29sKSAtPiAoaW50ICogJ2EpIG9wdGlvbgogICAgICB2YWwgcGVla01hcDog
J2EgdCAqICgnYSAtPiAnYiBvcHRpb24pIC0+ICdiIG9wdGlvbgogICAgICAoKiBSZW1vdmVzIGZp
cnN0IGVsZW1lbnQgaWYgaXQgZXhpc3RzLgogICAgICAgKiBSZXR1cm5zIE5PTkUgaWYgcHJlZCBp
cyBmYWxzZSBvbiBldmVyeXRoaW5nLgogICAgICAgKikKKCogICAgICB2YWwgcGVla1JlbW92ZTog
J2EgdCAqICgnYSAtPiBib29sKSAtPiAoJ2EgdCAqICdhKSBvcHRpb24gKikKICAgICAgdmFsIHBv
cDogJ2EgdCByZWYgLT4gJ2EKICAgICAgdmFsIHBvd2VyOiAnYSB0IC0+ICdhIHQgdAooKiAgICAg
IHZhbCBwcmVmaXhlczogJ2EgdCAtPiAnYSB0IHQqKQogICAgICB2YWwgcHVzaDogJ2EgdCByZWYg
KiAnYSAtPiB1bml0CiAgICAgICgqIFJlbW92ZXMgZmlyc3QgZWxlbWVudCBvbiB3aGljaCBwcmVk
aWNhdGUgaXMgdHJ1ZS4KICAgICAgICogUmV0dXJucyBvcmlnaW5hbCBsaXN0IGlmIHByZWRpY2F0
ZSBpcyBmYWxzZSBvbiBldmVyeSBlbHQuCiAgICAgICAqKQogICAgICB2YWwgcmVtb3ZlOiAnYSB0
ICogKCdhIC0+IGJvb2wpIC0+ICdhIHQKICAgICAgdmFsIHJlbW92ZUFsbDogJ2EgdCAqICgnYSAt
PiBib29sKSAtPiAnYSB0CiAgICAgIHZhbCByZW1vdmVDb21tb25QcmVmaXg6ICdhIHQgKiAnYSB0
ICogKCdhICogJ2EgLT4gYm9vbCkgLT4gJ2EgdCAqICdhIHQKICAgICAgdmFsIHJlbW92ZUR1cGxp
Y2F0ZXM6ICdhIHQgKiAoJ2EgKiAnYSAtPiBib29sKSAtPiAnYSB0CiAgICAgICgqIEVycm9yIGlm
IHByZWRpY2F0ZSBpc24ndCB0cnVlIG9uIHNvbWUgZWxlbWVudC4gKikKICAgICAgdmFsIHJlbW92
ZUZpcnN0OiAnYSB0ICogKCdhIC0+IGJvb2wpIC0+ICdhIHQKICAgICAgdmFsIHJlbW92ZVByZWZp
eDogJ2EgdCAqICgnYSAtPiBib29sKSAtPiAnYSB0CiAgICAgIHZhbCByZXY6ICdhIHQgLT4gJ2Eg
dAogICAgICAoKiByZXZNYXAgPSByZXYgbyBtYXAgKikKICAgICAgdmFsIHJldk1hcDogJ2EgdCAq
ICgnYSAtPiAnYikgLT4gJ2IgdAogICAgICB2YWwgc2VwYXJhdGU6ICdhIHQgKiAnYSAtPiAnYSB0
CiAgICAgIHZhbCBzZXQ6IHtlcXVhbHM6ICdhICogJ2EgLT4gYm9vbCwKCQlsYXlvdXQ6ICdhIC0+
IExheW91dC50fQoJIC0+IHtlbXB0eTogJ2EgdCwKCSAgICAgc2luZ2xldG9uOiAnYSAtPiAnYSB0
LAoJICAgICBzaXplOiAnYSB0IC0+IGludCwKCSAgICAgZXF1YWxzOiAnYSB0ICogJ2EgdCAtPiBi
b29sLAoJICAgICA8PSA6ICdhIHQgKiAnYSB0IC0+IGJvb2wsCgkgICAgID49IDogJ2EgdCAqICdh
IHQgLT4gYm9vbCwKCSAgICAgPCA6ICdhIHQgKiAnYSB0IC0+IGJvb2wsCgkgICAgID4gOiAnYSB0
ICogJ2EgdCAtPiBib29sLAoJICAgICArIDogJ2EgdCAqICdhIHQgLT4gJ2EgdCwKCSAgICAgLSA6
ICdhIHQgKiAnYSB0IC0+ICdhIHQsCgkgICAgIGludGVyc2VjdDogJ2EgdCAqICdhIHQgLT4gJ2Eg
dCwKCSAgICAgdW5pb25zOiAnYSB0IHQgLT4gJ2EgdCwKCSAgICAgYWRkOiAnYSB0ICogJ2EgLT4g
J2EgdCwKCSAgICAgcmVtb3ZlOiAnYSB0ICogJ2EgLT4gJ2EgdCwKCSAgICAgY29udGFpbnM6ICdh
IHQgKiAnYSAtPiBib29sLAoJICAgICBhcmVEaXNqb2ludDogJ2EgdCAqICdhIHQgLT4gYm9vbCwK
CSAgICAgc3Vic2V0OiAnYSB0ICogKCdhIC0+IGJvb2wpIC0+ICdhIHQsCgkgICAgIHN1YnNldFNp
emU6ICdhIHQgKiAoJ2EgLT4gYm9vbCkgLT4gaW50LAoJICAgICByZXBsYWNlOiAnYSB0ICogKCdh
IC0+ICdhIG9wdGlvbikgLT4gJ2EgdCwKCSAgICAgbWFwOiAnYSB0ICogKCdhIC0+ICdhKSAtPiAn
YSB0LAoJICAgICBsYXlvdXQ6ICdhIHQgLT4gTGF5b3V0LnR9CigqICAgICAgdmFsIHNwbGl0QXRN
b3N0OiAnYSB0ICogaW50IC0+ICgnYSB0ICogJ2EgdCkgb3B0aW9uICopCiAgICAgIHZhbCBzcGxp
dExhc3Q6ICdhIHQgLT4gJ2EgdCAqICdhCiAgICAgIHZhbCBzcGxpdFByZWZpeDogJ2EgdCAqICgn
YSAtPiBib29sKSAtPiAnYSB0ICogJ2EgdAooKiAgICAgIHZhbCBzdWZmaXhlczogJ2EgdCAtPiAn
YSB0IHQgKikKICAgICAgdmFsIHN1YnNldDogJ2EgdCAqICgnYSAtPiBib29sKSAtPiAnYSB0CiAg
ICAgICgqIHN1YnNldHMgKGwsIG4pID0gc3Vic2V0cyBvZiBleGFjdGx5IHNpemUgbiAqKQogICAg
ICB2YWwgc3Vic2V0czogJ2EgdCAqIGludCAtPiAnYSB0IHQKKCogICAgICB2YWwgdGFpbDogJ2Eg
dCAtPiAnYSB0ICopCiAgICAgIHZhbCB0b1N0cmluZzogKCdhIC0+IHN0cmluZykgLT4gJ2EgdCAt
PiBzdHJpbmcKICAgICAgdmFsIHVuaW9uOiAnYSB0ICogJ2EgdCAqICgnYSAqICdhIC0+IGJvb2wp
IC0+ICdhIHQKICAgICAgdmFsIHVuemlwOiAoJ2EgKiAnYikgdCAtPiAnYSB0ICogJ2IgdAooKiAg
ICAgIHZhbCB1bnppcDM6ICgnYSAqICdiICogJ2MpIHQgLT4gJ2EgdCAqICdiIHQgKiAnYyB0ICop
CiAgICAgIHZhbCB6aXA6ICdhIHQgKiAnYiB0IC0+ICgnYSAqICdiKSB0CigqICAgICAgdmFsIHpp
cDM6ICdhIHQgKiAnYiB0ICogJ2MgdCAtPiAoJ2EgKiAnYiAqICdjKSB0ICopCiAgIGVuZCAKCgpm
dW5jdG9yIFRlc3RMaXN0IChTOiBMSVNUKTogc2lnIGVuZCA9CnN0cnVjdAoKb3BlbiBTCiAgIAp2
YWwgXyA9CiAgIEFzc2VydC5hc3NlcnQKICAgKCJMaXN0IiwgZm4gKCkgPT4KICAgIFNPTUUgdHJ1
ZSA9IHBlZWtNYXAgKFsxLCAyLCAzXSwgZm4geCA9PiBpZiB4ID0gMiB0aGVuIFNPTUUgdHJ1ZSBl
bHNlIE5PTkUpCiAgICBhbmRhbHNvIChbMl0sIFszXSkgPSByZW1vdmVDb21tb25QcmVmaXggKFsx
LCAyXSwgWzEsIDNdLCBvcCA9KQogICAgYW5kYWxzbyBbMiwgNCwgNl0gPSBrZWVwQWxsIChbMSwg
MiwgMywgNCwgNSwgNl0sIGZuIHggPT4gMCA9IHggbW9kIDIpKQoKZW5kCigqIHN0b3Agb2YgbGli
L21sdG9uL2Jhc2ljL2xpc3Quc2lnICopCigqIHN0YXJ0IG9mIGxpYi9tbHRvbi9iYXNpYy9saXN0
LnNtbCAqKQpzdHJ1Y3R1cmUgTGlzdDogTElTVCA9CnN0cnVjdAoKc3RydWN0dXJlIEludCA9IFBl
cnZhc2l2ZS5JbnQKdHlwZSBpbnQgPSBJbnQuaW50CiAgCnN0cnVjdHVyZSBGID0KICAgc3RydWN0
CiAgICAgIHR5cGUgJ2EgdCA9ICdhIGxpc3QKCiAgICAgIGZ1biBmb2xkIChsLCBiLCBmKSA9Cgkg
bGV0CgkgICAgZnVuIGxvb3AgKGwsIGIpID0KCSAgICAgICBjYXNlIGwgb2YKCQkgIFtdID0+IGIK
CQl8IHggOjogbCA9PiBsb29wIChsLCBmICh4LCBiKSkKCSBpbiBsb29wIChsLCBiKQoJIGVuZAog
ICBlbmQKc3RydWN0dXJlIEYgPSBGb2xkIChvcGVuIEYKCQkgICB0eXBlICdhIGVsdCA9ICdhKQpv
cGVuIEYKCmZ1biBmb2xkMiAobDEsIGwyLCBiLCBmKSA9CiAgIGxldAogICAgICBmdW4gbG9vcCAo
bDEsIGwyLCBiKSA9CgkgY2FzZSAobDEsICAgICAgIGwyKSAgICAgICBvZgogIAkgICAgICAoW10s
ICAgICAgIFtdKSAgICAgICA9PiBiCgkgICAgfCAoeDEgOjogbDEsIHgyIDo6IGwyKSA9PiBsb29w
IChsMSwgbDIsIGYgKHgxLCB4MiwgYikpCgkgICAgfCBfICAgICAgICAgICAgICAgICAgICA9PiBF
cnJvci5idWcgImZvbGQyIgogICBpbiBsb29wIChsMSwgbDIsIGIpCiAgIGVuZAoKZnVuIGZvbGQz
IChsMSwgbDIsIGwzLCBiLCBmKSA9CiAgIGxldAogICAgICBmdW4gbG9vcCAobDEsIGwyLCBsMywg
YikgPQoJIGNhc2UgKGwxLCAgICAgICBsMiwgICAgICAgbDMpICAgICAgIG9mCiAgCSAgICAgIChb
XSwgICAgICAgW10sICAgICAgIFtdKSAgICAgICA9PiBiCgkgICAgfCAoeDEgOjogbDEsIHgyIDo6
IGwyLCB4MyA6OiBsMykgPT4KCQkgbG9vcCAobDEsIGwyLCBsMywgZiAoeDEsIHgyLCB4MywgYikp
CgkgICAgfCBfICAgICAgICAgICAgICAgICAgICA9PiBFcnJvci5idWcgImZvbGQzIgogICBpbiBs
b29wIChsMSwgbDIsIGwzLCBiKQogICBlbmQKCmZ1biBmb3JlYWNoMiAobDEsIGwyLCBmKSA9IGZv
bGQyIChsMSwgbDIsICgpLCBmbiAoeDEsIHgyLCAoKSkgPT4gZiAoeDEsIHgyKSkKCmZ1biBhcHBl
bmRSZXYgKGwsIGwnKSA9IGZvbGQgKGwsIGwnLCBvcCA6OikKICAgCmZ1biBhcHBlbmQgKGwsIGwn
KSA9IGFwcGVuZFJldiAocmV2IGwsIGwnKQoKZnVuIHJldiBsID0gYXBwZW5kUmV2IChsLCBbXSkK
CmZ1biBmb2xkciAobCwgYiwgZikgPSBmb2xkIChyZXYgbCwgYiwgZikKCmZ1biBmb2xkcjIgKGwx
LCBsMiwgYiwgZikgPSBmb2xkMiAocmV2IGwxLCByZXYgbDIsIGIsIGYpCgpmdW4gcmV2TWFwIChs
LCBmKSA9IGZvbGQgKGwsIFtdLCBmbiAoeCwgbCkgPT4gZiB4IDo6IGwpCiAgIApmdW4gbWFwIChs
LCBmKSA9IHJldiAocmV2TWFwIChsLCBmKSkKCmZ1biBtYXAyIChsMSwgbDIsIGYpID0KICAgcmV2
IChmb2xkMiAobDEsIGwyLCBbXSwgZm4gKHgxLCB4MiwgbCkgPT4gZiAoeDEsIHgyKSA6OiBsKSkK
CmZ1biBtYXAzIChsMSwgbDIsIGwzLCBmKSA9CiAgIHJldiAoZm9sZDMgKGwxLCBsMiwgbDMsIFtd
LCBmbiAoeDEsIHgyLCB4MywgbCkgPT4gZiAoeDEsIHgyLCB4MykgOjogbCkpCgpsb2NhbAogICBm
dW4gbWFrZSAobDEsIGwyLCBmLCB1bmVxdWFsKSA9CiAgICAgIGxldAoJIHZhbCByZWMgbG9vcCA9
CgkgICAgZm4gKFtdLCAgICAgW10pICAgICAgICAgPT4gdHJ1ZQoJICAgICB8ICh4MSA6OiBsMSwg
eDIgOjogbDIpID0+IGYgKHgxLCB4MikgYW5kYWxzbyBsb29wIChsMSwgbDIpCgkgICAgIHwgXyAg
ICAgICAgICAgICAgICAgICAgPT4gdW5lcXVhbCAoKQogICAgICBpbiBsb29wIChsMSwgbDIpCiAg
ICAgIGVuZAppbgogICBmdW4gZm9yYWxsMiAobDEsIGwyLCBmKSA9IG1ha2UgKGwxLCBsMiwgZiwg
Zm4gKCkgPT4gRXJyb3IuYnVnICJmb3JhbGwyIikKICAgZnVuIGVxdWFscyAobDEsIGwyLCBmKSA9
IG1ha2UgKGwxLCBsMiwgZiwgZm4gKCkgPT4gZmFsc2UpCmVuZAoKdmFsIGNvbnMgPSBvcCA6OgoK
ZnVuIGNvbXBhcmUgKGwsIGwnLCBjb21wKSA9CiAgIGxldAogICAgICB2YWwgcmVjIGNvbXBhcmUg
PQoJIGZuIChbXSwgICAgIFtdKSAgICAgICA9PiBFUVVBTAoJICB8IChfLCAgICAgIFtdKSAgICAg
ICA9PiBHUkVBVEVSCgkgIHwgKFtdLCAgICAgXykgICAgICAgID0+IExFU1MKCSAgfCAoeCA6OiBs
LCB4JyA6OiBsJykgPT4gKGNhc2UgY29tcCAoeCwgeCcpIG9mCgkJCQkgICAgICBFUVVBTCA9PiBj
b21wYXJlIChsLCBsJykKCQkJCSAgICB8IHIgPT4gcikKICAgaW4gY29tcGFyZSAobCwgbCcpCiAg
IGVuZAoKZnVuIGFsbEJ1dExhc3QgbCA9CiAgIGNhc2UgcmV2IGwgb2YKICAgICAgXyA6OiBsID0+
IHJldiBsCiAgICB8IF8gPT4gRXJyb3IuYnVnICJhbGxCdXRMYXN0IgoKZnVuIHppcCAobDEsIGwy
KSA9IGZvbGRyMiAobDEsIGwyLCBbXSwgZm4gKHgxLCB4MiwgbCkgPT4gKHgxLCB4MikgOjogbCkK
CmZ1biB1bnppcCBsID0gZm9sZHIgKGwsIChbXSwgW10pLCBmbiAoKHgxLCB4MiksIChsMSwgbDIp
KSA9PgoJCSAgICAoeDEgOjogbDEsIHgyIDo6IGwyKSkKCmZ1biBjb25jYXRSZXYgbCA9IGZvbGQg
KGwsIFtdLCBhcHBlbmQpCgpmdW4gY29uY2F0IGwgPSBjb25jYXRSZXYgKHJldiBsKSAKCmZ1biBk
dXBsaWNhdGUgKG46IGludCwgZikgPQogICBsZXQKICAgICAgdmFsIF8gPSBBc3NlcnQuYXNzZXJ0
ICgiTGlzdC5kdXBsaWNhdGUiLCBmbiAoKSA9PiBuID49IDApCiAgICAgIGZ1biBsb29wIChuLCBh
Y2N1bSkgPQoJIGlmIG4gPSB+MQoJICAgIHRoZW4gYWNjdW0KCSBlbHNlIGxvb3AgKG4gLSAxLCBm
ICgpIDo6IGFjY3VtKQogICBpbiBsb29wIChuIC0gMSwgW10pCiAgIGVuZAoKZnVuIGNvbnRhaW5z
IChsLCB4LCBlcXVhbHMpID0gZXhpc3RzIChsLCBmbiB4JyA9PiBlcXVhbHMgKHgsIHgnKSkKCmZ1
biB1bmlvbiAobCwgbCcsIGVxdWFscykgPQogICBmb2xkIChsJywgbCwgZm4gKHgsIGwpID0+IGlm
IGNvbnRhaW5zIChsLCB4LCBlcXVhbHMpIHRoZW4gbCBlbHNlIHggOjogbCkKCmZ1biBwb3AgciA9
CiAgIGNhc2UgIXIgb2YKICAgICAgW10gPT4gRXJyb3IuYnVnICJwb3AiCiAgICB8IHggOjogbCA9
PiAociA6PSBsOyB4KQogICAKZnVuIHB1c2ggKHIsIHgpID0gciA6PSB4IDo6ICFyCgpmdW4gcmVt
RnN0IChsLCBmLCBub3RGb3VuZCkgPQogICBsZXQKICAgICAgZnVuIGxvb3AgKGwsIGFjKSA9Cgkg
Y2FzZSBsIG9mCgkgICAgW10gPT4gbm90Rm91bmQgKCkKCSAgfCB4IDo6IGwgPT4KCSAgICAgICBp
ZiBmIHgKCQkgIHRoZW4gYXBwZW5kUmV2IChhYywgbCkKCSAgICAgICBlbHNlIGxvb3AgKGwsIHgg
OjogYWMpCiAgIGluIGxvb3AgKGwsIFtdKQogICBlbmQKCmZ1biByZW1vdmVGaXJzdCAobCwgZikg
PSByZW1Gc3QgKGwsIGYsIGZuICgpID0+IEVycm9yLmJ1ZyAicmVtb3ZlRmlyc3QiKQoKZnVuIHJl
bW92ZSAobCwgZikgPSByZW1Gc3QgKGwsIGYsIGZuICgpID0+IGwpCgpmdW4gbnRoVGFpbCAobCwg
bjogaW50KSA9CiAgIGxldAogICAgICBmdW4gbG9vcCAobCwgaSkgPQoJIGlmIGkgPSAwCgkgICAg
dGhlbiBsCgkgZWxzZSAoY2FzZSBsIG9mCgkJICBbXSA9PiBFcnJvci5idWcgIm50aFRhaWwiCgkJ
fCBfIDo6IGwgPT4gbG9vcCAobCwgaSAtIDEpKQogICBpbiBsb29wIChsLCBuKQogICBlbmQKCmZ1
biBmaXJzdE4gKGwsIG46IGludCkgPQogICBsZXQKICAgICAgZnVuIGxvb3AgKGwsIGksIGFjKSA9
CgkgaWYgaSA9IDAKCSAgICB0aGVuIHJldiBhYwoJIGVsc2UgKGNhc2UgbCBvZgoJCSAgW10gPT4g
RXJyb3IuYnVnICJmaXJzdE4iCgkJfCB4IDo6IGwgPT4gbG9vcCAobCwgaSAtIDEsIHggOjogYWMp
KQogICBpbiBsb29wIChsLCBuLCBbXSkKICAgZW5kCgpmdW4gJ2Egb3JkZXJlZCB7PD0gOiAnYSAq
ICdhIC0+IGJvb2x9ID0KICAgbGV0CiAgICAgIGZ1biBpbnNlcnQgKGwsIHgpID0KCSBsZXQKCSAg
ICBmdW4gbG9vcCAobCwgYWMpID0KCSAgICAgICBjYXNlIGwgb2YKCQkgIFtdID0+IGFwcGVuZFJl
diAoYWMsIFt4XSkKCQl8IHgnIDo6IGwnID0+CgkJICAgICBpZiB4IDw9IHgnCgkJCXRoZW4gYXBw
ZW5kUmV2IChhYywgeCA6OiBsKQoJCSAgICAgZWxzZSBsb29wIChsJywgeCcgOjogYWMpCgkgaW4g
bG9vcCAobCwgW10pCgkgZW5kCgogICAgICBmdW4gaW5zZXJ0aW9uU29ydCBsID0gZm9sZCAobCwg
W10sIGZuICh4LCBhYykgPT4gaW5zZXJ0IChhYywgeCkpCgogICAgICBmdW4gcGFydGl0aW9uIChu
cywgeCkgPQoJIGZvbGQgKG5zLCAoW10sIFtdKSwKCSAgICAgIGZuICh5LCAobGVmdCwgcmlnaHQp
KSA9PgoJICAgICAgaWYgeCA8PSB5IHRoZW4gKGxlZnQsIGNvbnMgKHksIHJpZ2h0KSkKCSAgICAg
IGVsc2UgKGNvbnMgKHksIGxlZnQpLCByaWdodCkpCiAgICAKICAgICAgbG9jYWwgIAoJIHZhbCBj
b2x1bW5TaXplOiBpbnQgPSA1CgkgdmFsIHNvcnQgPSBpbnNlcnRpb25Tb3J0CgkgZnVuIGJyZWFr
SW50b0NvbHVtbnMgbnMgPQoJICAgIGlmIEludC48IChsZW5ndGggbnMsIGNvbHVtblNpemUpCgkg
ICAgICAgdGhlbiBjb25zIChucywgW10pCgkgICAgZWxzZSBjb25zIChmaXJzdE4gKG5zLCBjb2x1
bW5TaXplKSwKCQkgICAgICBicmVha0ludG9Db2x1bW5zIChudGhUYWlsIChucywgY29sdW1uU2l6
ZSkpKQogICAgICBpbgoJIGZ1biBtZWRpYW4gbnMgPSBvcmRlclN0YXRpc3RpYyAobnMsIEludC5x
dW90IChsZW5ndGggbnMsIDIpKQoJIGFuZCBvcmRlclN0YXRpc3RpYyAobnMsIGkpID0KCSAgICBp
ZiBJbnQuPCAobGVuZ3RoIG5zLCBjb2x1bW5TaXplKQoJICAgICAgIHRoZW4gbnRoIChzb3J0IG5z
LCBpKQoJICAgIGVsc2UgbGV0CgkJICAgIHZhbCBtZWRpYW5PZk1lZGlhbnMgPQoJCSAgICAgICBt
ZWRpYW4gKG1hcCAoYnJlYWtJbnRvQ29sdW1ucyBucywgY29sdW1uTWVkaWFuKSkKCQkgICAgdmFs
IChsZWZ0LCByaWdodCkgPSBwYXJ0aXRpb24gKG5zLCBtZWRpYW5PZk1lZGlhbnMpCgkJICAgIHZh
bCBudW1MZWZ0ID0gbGVuZ3RoIGxlZnQKCQkgaW4gaWYgSW50LjwgKGksIG51bUxlZnQpCgkJICAg
ICAgIHRoZW4gb3JkZXJTdGF0aXN0aWMgKGxlZnQsIGkpCgkJICAgIGVsc2Ugb3JkZXJTdGF0aXN0
aWMgKHJpZ2h0LCBpIC0gbnVtTGVmdCkKCQkgZW5kCgkgYW5kIGNvbHVtbk1lZGlhbiBucyA9Cgkg
ICAgbnRoIChzb3J0IG5zLCBJbnQucXVvdCAobGVuZ3RoIG5zLCAyKSkKICAgICAgZW5kICAgIAoK
ICAgICAgZnVuIGNob29zZSAob3AgPCkgKHMsIG4pID0KCSBsZXQgZnVuIGluc2VydCAoeCwgcykg
PQoJICAgIGxldAoJICAgICAgIGZ1biBpbnNlcnQgKG0sIHMpID0KCQkgIGlmIG0gPSBuCgkJICAg
ICB0aGVuIFtdCgkJICBlbHNlIChjYXNlIHMgb2YKCQkJICAgW10gPT4gW3hdCgkJCSB8IHkgOjog
cyA9PiBpZiB4IDwgeSB0aGVuIHggOjogcwoJCQkJICAgICBlbHNlIHkgOjogaW5zZXJ0IChtICsg
MSwgcykpCgkgICAgaW4gaW5zZXJ0ICgwLCBzKQoJICAgIGVuZAoJIGluIGZpcnN0TiAoZm9sZCAo
cywgW10sIGluc2VydCksbikKCSBlbmQKICAgICAgCiAgICAgIHZhbCBzbWFsbGVzdCA9IGNob29z
ZSAob3AgPCkKICAgICAgdmFsIGxhcmdlc3QgPSBjaG9vc2UgKG9wID4pCiAgICAKICAgICAgZnVu
IGdldEZpcnN0IChsLCBleHRyZW1lLCBuYW1lKSA9CgkgY2FzZSBleHRyZW1lIChsLCAxKSBvZgoJ
ICAgIHggOjogXyA9PiB4CgkgIHwgXyA9PiBFcnJvci5idWcgbmFtZQoKICAgICAgZnVuIG1pbiBs
ID0gZ2V0Rmlyc3QgKGwsIHNtYWxsZXN0LCAibWluIikKICAgICAgZnVuIG1heCBsID0gZ2V0Rmly
c3QgKGwsIGxhcmdlc3QsICJtYXgiKQoKICAgaW4ge2luc2VydCA9IGluc2VydCwKICAgICAgIGlu
c2VydGlvblNvcnQgPSBpbnNlcnRpb25Tb3J0LAogICAgICAgbWVkaWFuID0gbWVkaWFuLAogICAg
ICAgb3JkZXJTdGF0aXN0aWMgPSBvcmRlclN0YXRpc3RpYywKICAgICAgIHBhcnRpdGlvbiA9IHBh
cnRpdGlvbiwKICAgICAgIG1heCA9IG1heCwKICAgICAgIG1pbiA9IG1pbiwKICAgICAgIGxhcmdl
c3QgPSBsYXJnZXN0LAogICAgICAgc21hbGxlc3QgPSBzbWFsbGVzdH0KICAgZW5kCgpmdW4gaW5z
ZXJ0aW9uU29ydCAobCwgbGUpID0gI2luc2VydGlvblNvcnQgKG9yZGVyZWQgezw9ID0gbGV9KSBs
CgpmdW4gc3BsaXRMYXN0IGwgPQogICBjYXNlIHJldiBsIG9mCiAgICAgIFtdID0+IEVycm9yLmJ1
ZyAic3BsaXRMYXN0IgogICAgfCB4IDo6IGwgPT4gKHJldiBsLCB4KQoKZnVuIHBvd2VyIGwgPQog
ICBjYXNlIGwgb2YKICAgICAgW10gPT4gW1tdXQogICAgfCB4IDo6IGwgPT4gbGV0IHZhbCByZXN0
ID0gcG93ZXIgbAoJCWluIHJlc3QgQCBtYXAgKHJlc3QsIGZuIHMgPT4geCA6OiBzKQoJCWVuZAoK
ZnVuIGVxdWFsc0FzU2V0IChsMSwgbDIsIGVxdWFscykgPQogICBsZXQgZnVuIHN1YnNldCAobCwg
bCcpID0gZm9yYWxsIChsLCBmbiB4ID0+IGV4aXN0cyAobCcsIGZuIHgnID0+IGVxdWFscyAoeCwg
eCcpKSkKICAgaW4gc3Vic2V0IChsMSwgbDIpIGFuZGFsc28gc3Vic2V0IChsMiwgbDEpCiAgIGVu
ZAoKZnVuICdhIHNldCB7ZXF1YWxzOiAnYSAqICdhIC0+IGJvb2wsCgkgICBsYXlvdXQ6ICdhIC0+
IExheW91dC50fSA9CiAgIGxldAogICAgICB2YWwgZXF1YWwgPSBlcXVhbHMKICAgICAgZnVuIGVx
dWFsVG8geCB4JyA9IGVxdWFsICh4LCB4JykKICAgICAgZnVuIGNvbnRhaW5zIChzLCB4KSA9IGV4
aXN0cyAocywgZXF1YWxUbyB4KQogICAgICBmdW4gcyA8PSBzJyA9IGZvcmFsbCAocywgZm4geCA9
PiBjb250YWlucyAocycsIHgpKQogICAgICBmdW4gcycgPj0gcyA9IHMgPD0gcycKICAgICAgdmFs
IGVxdWFscyA9IGZuIChzLCBzJykgPT4gcyA8PSBzJyBhbmRhbHNvIHMnIDw9IHMKICAgICAgZnVu
IHMgPCBzJyA9IHMgPD0gcycgYW5kYWxzbyBleGlzdHMgKHMnLCBmbiB4ID0+IG5vdCAoY29udGFp
bnMgKHMsIHgpKSkKICAgICAgZnVuIHMnID4gcyA9IHMgPCBzJwogICAgICBmdW4gc2luZ2xldG9u
IHggPSBjb25zICh4LCBbXSkKICAgICAgZnVuIGFkZCAocywgeCkgPSBpZiBjb250YWlucyAocywg
eCkgdGhlbiBzIGVsc2UgY29ucyAoeCwgcykKICAgICAgZnVuIGFyZURpc2pvaW50IChzLCBzJykg
PSBmb3JhbGwgKHMsIGZuIHggPT4gbm90IChjb250YWlucyAocycsIHgpKSkKICAgICAgdmFsIHN1
YnNldCA9IGtlZXBBbGwKICAgICAgZnVuIHN1YnNldFNpemUgKHMsIHApID0KCSBmb2xkIChzLCAw
OiBpbnQsIGZuICh4LCBuKSA9PiBpZiBwIHggdGhlbiBuICsgMSBlbHNlIG4pCiAgICAgIGZ1biBz
IC0gcycgPSBzdWJzZXQgKHMsIGZuIHggPT4gbm90IChjb250YWlucyAocycsIHgpKSkKICAgICAg
ZnVuIHMgKyBzJyA9IGFwcGVuZCAocyAtIHMnLCBzJykKICAgICAgZnVuIGludGVyc2VjdCAocywg
cycpID0gc3Vic2V0IChzLCBmbiB4ID0+IGNvbnRhaW5zIChzJywgeCkpCiAgICAgIGZ1biB1bmlv
bnMgc3MgPSBmb2xkIChzcywgW10sIG9wICspCiAgICAgIHZhbCBzaXplID0gbGVuZ3RoCgkgCiAg
ICAgIHZhbCBsYXlvdXQgPSBmbiB2cyA9PgoJIGxldCBvcGVuIExheW91dAoJIGluIHNlcSBbc3Ry
ICJ7IiwKCQlhbGlnbiAoc2VwYXJhdGVSaWdodCAobWFwICh2cywgbGF5b3V0KSwgIiwgIikpLAoJ
CXN0ciAifSJdCgkgZW5kCgogICAgICB2YWwgcmVtb3ZlID0gZm4gKHMsIHgpID0+IHJlbW92ZSAo
cywgZXF1YWxUbyB4KQogICAKICAgICAgZnVuIHJlcGxhY2UgKHMsIGYpID0KCSBmb2xkIChzLCBb
XSwgZm4gKHgsIHMpID0+IChjYXNlIGYgeCBvZgoJCQkJCU5PTkUgPT4gcwoJCQkJICAgICAgfCBT
T01FIHkgPT4gYWRkIChzLCB5KSkpCiAgICAgIGZ1biBtYXAgKHMsIGYpID0gcmVwbGFjZSAocywg
Zm4geCA9PiBTT01FIChmIHgpKQoKICAgaW4ge2VtcHR5ID0gW10sCiAgICAgICBzaW5nbGV0b24g
PSBzaW5nbGV0b24sCiAgICAgICBzaXplID0gc2l6ZSwKICAgICAgIGVxdWFscyA9IGVxdWFscywK
ICAgICAgIDw9ID0gb3AgPD0sCiAgICAgICA+PSA9IG9wID49LAogICAgICAgPCA9IG9wIDwsCiAg
ICAgICA+ID0gb3AgPiwKICAgICAgICsgPSBvcCArLAogICAgICAgLSA9IG9wIC0sCiAgICAgICBp
bnRlcnNlY3QgPSBpbnRlcnNlY3QsCiAgICAgICB1bmlvbnMgPSB1bmlvbnMsCiAgICAgICBhZGQg
PSBhZGQsCiAgICAgICByZW1vdmUgPSByZW1vdmUsCiAgICAgICBjb250YWlucyA9IGNvbnRhaW5z
LAogICAgICAgYXJlRGlzam9pbnQgPSBhcmVEaXNqb2ludCwKICAgICAgIHN1YnNldCA9IHN1YnNl
dCwKICAgICAgIHN1YnNldFNpemUgPSBzdWJzZXRTaXplLAogICAgICAgbWFwID0gbWFwLAogICAg
ICAgcmVwbGFjZSA9IHJlcGxhY2UsCiAgICAgICBsYXlvdXQgPSBsYXlvdXR9CiAgIGVuZAoKZnVu
IHN1YnNldHMgKHMsIG4pID0KICAgbGV0CiAgICAgIGZ1biBzdWJzIChzLCBzaXplLCBuLCBlbHRz
LCBhY2N1bSkgPQoJIGlmIG4gPSAwCgkgICAgdGhlbiBjb25zIChlbHRzLCBhY2N1bSkKCSBlbHNl
IChjYXNlIHMgb2YKCQkgIHggOjogeHMgPT4KCQkgICAgIGlmIHNpemUgPSBuCgkJCXRoZW4gY29u
cyAoY29ucyAoeCwgYXBwZW5kICh4cywgZWx0cykpLCBhY2N1bSkKCQkgICAgIGVsc2Ugc3VicyAo
eHMsIHNpemUgLSAxLCBuIC0gMSwKCQkJICAgICAgIGNvbnMgKHgsIGVsdHMpLAoJCQkgICAgICAg
c3VicyAoeHMsIHNpemUgLSAxLCBuLCBlbHRzICwgYWNjdW0pKQoJCXwgXyA9PiBFcnJvci5idWcg
InN1YnNldHMiKQogICBpbiBzdWJzIChzLCBsZW5ndGggcywgbiwgW10sIFtdKQogICBlbmQKCmZ1
biBhcHBlbmRNYXAgKGwxLCBmLCBsMikgPSBhcHBlbmRSZXYgKHJldk1hcCAobDEsIGYpLCBsMikK
CmZ1biBzZXBhcmF0ZSAodHMsIHMpID0KICAgY2FzZSB0cyBvZgogICAgICBbXSA9PiBbXQogICAg
fCB0IDo6IHRzID0+IHQgOjogKGxldCAKCQkJICAgdmFsIHJlYyBsb29wID0KCQkJICAgICAgZm4g
W10gPT4gW10KCQkJICAgICAgIHwgdCA6OiB0cyA9PiBzIDo6IHQ6OiAobG9vcCB0cykKCQkgICAg
ICAgaW4gbG9vcCB0cwoJCSAgICAgICBlbmQpCgpmdW4gY29uY2F0TWFwIChsLCBmKSA9IGNvbmNh
dFJldiAocmV2TWFwIChsLCBmKSkKCmZ1biBjcm9zcyBsID0KICAgY2FzZSBsIG9mCiAgICAgIFtd
ID0+IFtbXV0KICAgIHwgeCA6OiBsID0+CgkgbGV0IHZhbCByZXN0ID0gY3Jvc3MgbAoJIGluIGNv
bmNhdE1hcCAoeCwgZm4geCA9PiBtYXAgKHJlc3QsIGZuIHQgPT4geCA6OiB0KSkKCSBlbmQKCmZ1
biByZW1vdmVEdXBsaWNhdGVzIChsLCBlcXVhbHMpID0KICAgZm9sZCAobCwgW10sIGZuICh4LCBh
YykgPT4KCWlmIGNvbnRhaW5zIChhYywgeCwgZXF1YWxzKQoJICAgdGhlbiBhYwoJZWxzZSB4IDo6
IGFjKQoKZnVuIHJlbW92ZUNvbW1vblByZWZpeCAobDEsIGwyLCBlcXVhbHMpID0KICAgbGV0CiAg
ICAgIGZ1biBsb29wIChhcmcgYXMgKGwxLCBsMikpID0KCSBjYXNlIChsMSwgbDIpIG9mCgkgICAg
KF8sIFtdKSA9PiBhcmcKCSAgfCAoW10sIF8pID0+IGFyZwoJICB8ICh4MSA6OiBsMSwgeDIgOjog
bDIpID0+CgkgICAgICAgaWYgZXF1YWxzICh4MSwgeDIpCgkJICB0aGVuIGxvb3AgKGwxLCBsMikK
CSAgICAgICBlbHNlIGFyZwogICBpbiBsb29wIChsMSwgbDIpCiAgIGVuZAoKZnVuIHJlbW92ZVBy
ZWZpeCAobCwgcCkgPQogICBsZXQKICAgICAgZnVuIGxvb3AgbCA9CgkgY2FzZSBsIG9mCgkgICAg
W10gPT4gW10KCSAgfCB4IDo6IGwnID0+IGlmIHAgeCB0aGVuIGxvb3AgbCcgZWxzZSBsCiAgIGlu
IGxvb3AgbAogICBlbmQKCmZ1biBpc1ByZWZpeCAobCwgbCcsIGYpID0KICAgbGV0CiAgICAgIHZh
bCByZWMgbG9vcCA9CgkgZm4gKFtdLCBfKSA9PiB0cnVlCgkgIHwgKF8sIFtdKSA9PiBmYWxzZQoJ
ICB8ICh4IDo6IGwsIHgnIDo6IGwnKSA9PiBmICh4LCB4JykgYW5kYWxzbyBsb29wIChsLCBsJykK
ICAgaW4gbG9vcCAobCwgbCcpCiAgIGVuZAoKZnVuIGluc2VydCAoeHMsIHgsIG9wIDw9KSA9ICNp
bnNlcnQgKG9yZGVyZWQgezw9ID0gb3AgPD19KSAoeHMsIHgpCgpmdW4gdG9TdHJpbmcgeFRvU3Ry
aW5nIGwgPQogICBMYXlvdXQudG9TdHJpbmcgKGxheW91dCAoTGF5b3V0LnN0ciBvIHhUb1N0cmlu
ZykgbCkKCmZ1biBzcGxpdFByZWZpeCAobCwgcCkgPQogICBsZXQKICAgICAgZnVuIGxvb3AgKGws
IGFjKSA9CgkgY2FzZSBsIG9mCgkgICAgW10gPT4gKHJldiBhYywgW10pCgkgIHwgeCA6OiBsJyA9
PgoJICAgICAgIGlmIHAgeAoJCSAgdGhlbiBsb29wIChsJywgeCA6OiBhYykKCSAgICAgICBlbHNl
IChyZXYgYWMsIGwpCiAgIGluIGxvb3AgKGwsIFtdKQogICBlbmQKCmZ1biBwYXJ0aXRpb24gKGws
IHApID0KICAgZm9sZAogICAobCwge25vID0gW10sIHllcyA9IFtdfSwgZm4gKHgsIHtubywgeWVz
fSkgPT4KICAgIGlmIHAgeAogICAgICAgdGhlbiB7bm8gPSBubywgeWVzID0geCA6OiB5ZXN9CiAg
ICBlbHNlIHtubyA9IHggOjogbm8sIHllcyA9IHllc30pCgplbmQKCnZhbCBsZW5ndGggPSBMaXN0
Lmxlbmd0aAooKiBzdG9wIG9mIGxpYi9tbHRvbi9iYXNpYy9saXN0LnNtbCAqKQooKiBzdGFydCBv
ZiBsaWIvbWx0b24vYmFzaWMvd29yZDguc21sICopCnN0cnVjdHVyZSBXb3JkOCA9CiAgIHN0cnVj
dAogICAgICBvcGVuIFBlcnZhc2l2ZS5Xb3JkOAoKICAgICAgdHlwZSB0ID0gd29yZAoKICAgICAg
dmFsIGZyb21DaGFyID0gQnl0ZS5jaGFyVG9CeXRlCiAgICAgIHZhbCB0b0NoYXIgPSBCeXRlLmJ5
dGVUb0NoYXIKICAgICAgdmFsIGZyb21Xb3JkID0gZnJvbUxhcmdlV29yZAogICAgICB2YWwgdG9X
b3JkID0gdG9MYXJnZVdvcmQKCiAgICAgIHZhbCBsYXlvdXQgPSBMYXlvdXQuc3RyIG8gdG9TdHJp
bmcKICAgZW5kCigqIHN0b3Agb2YgbGliL21sdG9uL2Jhc2ljL3dvcmQ4LnNtbCAqKQooKiBzdGFy
dCBvZiBsaWIvbWx0b24vYmFzaWMvd29yZC5zaWcgKikKc2lnbmF0dXJlIFdPUkQgPQogICBzaWcK
ICAgICAgdHlwZSBpbnQgPSBQZXJ2YXNpdmUuSW50LmludAogICAgICB0eXBlIHQKCiAgICAgIHZh
bCA8PCA6IHQgKiB0IC0+IHQgCiAgICAgIHZhbCA+PiA6IHQgKiB0IC0+IHQgCiAgICAgIHZhbCB+
Pj4gOiB0ICogdCAtPiB0IAogICAgICB2YWwgKyA6IHQgKiB0IC0+IHQgCiAgICAgIHZhbCAtIDog
dCAqIHQgLT4gdCAKICAgICAgdmFsICogOiB0ICogdCAtPiB0IAogICAgICB2YWwgPiA6IHQgKiB0
IC0+IGJvb2wgCiAgICAgIHZhbCA8IDogdCAqIHQgLT4gYm9vbCAKICAgICAgdmFsID49IDogdCAq
IHQgLT4gYm9vbCAKICAgICAgdmFsIDw9IDogdCAqIHQgLT4gYm9vbCAKICAgICAgdmFsIGFuZGI6
IHQgKiB0IC0+IHQgCiAgICAgIHZhbCBjb21wYXJlOiB0ICogdCAtPiBvcmRlciAKICAgICAgdmFs
IGRpdjogdCAqIHQgLT4gdAogICAgICB2YWwgZXF1YWxzOiB0ICogdCAtPiBib29sCiAgICAgIHZh
bCBmcm9tQ2hhcjogY2hhciAtPiB0CiAgICAgIHZhbCBmcm9tSW50OiBpbnQgLT4gdAogICAgICB2
YWwgZnJvbVN0cmluZzogc3RyaW5nIC0+IHQgb3B0aW9uCiAgICAgIHZhbCBsYXlvdXQ6IHQgLT4g
TGF5b3V0LnQKICAgICAgdmFsIG1heDogdCAqIHQgLT4gdAogICAgICB2YWwgbWluOiB0ICogdCAt
PiB0IAogICAgICB2YWwgbW9kOiB0ICogdCAtPiB0CiAgICAgIHZhbCBub3RiOiB0IC0+IHQKICAg
ICAgdmFsIG50aEJpdElzU2V0OiB0ICogaW50IC0+IGJvb2wKICAgICAgdmFsIG9yYjogdCAqIHQg
LT4gdAogICAgICB2YWwgdG9DaGFyOiB0IC0+IGNoYXIKICAgICAgdmFsIHRvSW50OiB0IC0+IGlu
dAogICAgICB2YWwgdG9JbnRYOiB0IC0+IGludAogICAgICB2YWwgdG9TdHJpbmc6IHQgLT4gc3Ry
aW5nCiAgICAgIHZhbCB3b3JkU2l6ZTogaW50CiAgICAgIHZhbCB4b3JiOiB0ICogdCAtPiB0IAog
ICBlbmQKCnNpZ25hdHVyZSBXT1JEMzIgPQogICBzaWcKICAgICAgaW5jbHVkZSBXT1JECgogICAg
ICB2YWwgZnJvbVdvcmQ4OiBXb3JkOC50IC0+IHQKICAgICAgKCogZnJvbVdvcmQ4cyBmLiAgZiAw
IHNob3VsZCByZXR1cm4gdGhlIGxlYXN0IHNpZ25pZmljYW50IGJ5dGUKICAgICAgICogYW5kIGYg
MyBzaG91bGQgcmV0dXJuIHRoZSBtb3N0IHNpZ25pZmljYW50LgogICAgICAgKikKICAgICAgdmFs
IGZyb21Xb3JkOHM6IChpbnQgLT4gV29yZDgudCkgLT4gdAogICAgICB2YWwgcm90YXRlTGVmdDog
dCAqIHQgLT4gdAogICBlbmQKCmZ1bmN0b3IgVGVzdFdvcmQzMiAoUzogV09SRDMyIHdoZXJlIHR5
cGUgdCA9IFdvcmQzMi53b3JkKTogc2lnIGVuZCA9CnN0cnVjdAoKb3BlbiBTCgp2YWwgXyA9CiAg
IEFzc2VydC5hc3NlcnQKICAgKCJXb3JkIiwgZm4gKCkgPT4KICAgIExpc3QuZm9yYWxsCiAgICAo
Wyg0LCAwd3hhYmNkYWJjZCwgMHd4YmNkYWJjZGEpLAogICAgICAoOCwgMHd4YWJjZGFiY2QsIDB3
eGNkYWJjZGFiKSwKICAgICAgKDEyLCAwd3hhYmNkYWJjZCwgMHd4ZGFiY2RhYmMpLAogICAgICAo
MTYsIDB3eGFiY2RhYmNkLCAwd3hhYmNkYWJjZCksCiAgICAgICgyMCwgMHd4YWJjZGFiY2QsIDB3
eGJjZGFiY2RhKSwKICAgICAgKDI0LCAwd3hhYmNkYWJjZCwgMHd4Y2RhYmNkYWIpLAogICAgICAo
MjgsIDB3eGFiY2RhYmNkLCAwd3hkYWJjZGFiYyldLAogICAgIGZuIChzLCB3LCB3JykgPT4KICAg
ICBlcXVhbHModycsIHJvdGF0ZUxlZnQodywgZnJvbUludCBzKSkpKQoKZW5kCigqIHN0b3Agb2Yg
bGliL21sdG9uL2Jhc2ljL3dvcmQuc2lnICopCigqIHN0YXJ0IG9mIGxpYi9tbHRvbi9iYXNpYy93
b3JkLnNtbCAqKQpzdHJ1Y3R1cmUgV29yZDogV09SRDMyID0KICAgc3RydWN0CiAgICAgIHN0cnVj
dHVyZSBJbnQgPSBQZXJ2YXNpdmUuSW50CiAgICAgIHR5cGUgaW50ID0gSW50LmludAogICAgICBv
cGVuIFBlcnZhc2l2ZS5Xb3JkCgogICAgICB0eXBlIHQgPSB3b3JkCiAgCiAgICAgIHZhbCBsYXlv
dXQgPSBMYXlvdXQuc3RyIG8gdG9TdHJpbmcKCiAgICAgIHZhbCBlcXVhbHMgPSBvcCA9CgooKiAg
ICAgICB2YWwgZXF1YWxzID0KICogCSBUcmFjZS50cmFjZTIoIldvcmQuZXF1YWxzIiwgbGF5b3V0
LCBsYXlvdXQsIEJvb2wubGF5b3V0KSBlcXVhbHMKICopCgooKiAgICAgICB2YWwgdG9JbnRYID0K
ICogCSBUcmFjZS50cmFjZSgiV29yZC50b0ludFgiLCBsYXlvdXQsIExheW91dC5zdHIgbyBJbnQu
dG9TdHJpbmcpIHRvSW50WAogKikKCSAKICAgICAgdmFsIGZyb21DaGFyID0gV29yZDgudG9MYXJn
ZVdvcmQgbyBCeXRlLmNoYXJUb0J5dGUKICAgICAgdmFsIHRvQ2hhciA9IEJ5dGUuYnl0ZVRvQ2hh
ciBvIFdvcmQ4LmZyb21MYXJnZVdvcmQKCiAgICAgIGZ1biBudGhCaXRJc1NldCh3OiB0LCBuOiBp
bnQpOiBib29sID0KCSAwdzEgPSBhbmRiKDB3MSwgPj4odywgZnJvbUludCBuKSkKCSAKICAgICAg
ZnVuIGZyb21Xb3JkOHMoZjogaW50IC0+IFdvcmQ4LnQpOiB0ID0KCSBsZXQgZnVuIHcoaSwgc2hp
ZnQpID0gUGVydmFzaXZlLldvcmQuPDwoV29yZDgudG9MYXJnZVdvcmQoZiBpKSwgc2hpZnQpCgkg
aW4gb3JiKG9yYih3KDAsIDB3MCksIHcoMSwgMHc4KSksIG9yYih3KDIsIDB3MTYpLCB3KDMsIDB3
MjQpKSkKCSBlbmQKCiAgICAgIGxvY2FsCgkgdmFsIHdvcmRTaXplID0gZnJvbUludCB3b3JkU2l6
ZQogICAgICBpbgoJIGZ1biByb3RhdGVMZWZ0KHc6IHQsIG46IHQpID0KCSAgICBsZXQgdmFsIGwg
PSBuIG1vZCB3b3JkU2l6ZQoJICAgICAgIHZhbCByID0gd29yZFNpemUgLSBsCgkgICAgaW4gb3Ji
KDw8KHcsIGwpLCA+Pih3LCByKSkKCSAgICBlbmQKICAgICAgZW5kCgogICAgICB2YWwgZnJvbVdv
cmQ4ID0gV29yZDgudG9MYXJnZVdvcmQKICAgZW5kCigqIHN0b3Agb2YgbGliL21sdG9uL2Jhc2lj
L3dvcmQuc21sICopCigqIHN0YXJ0IG9mIGxpYi9tbHRvbi9iYXNpYy9zdHJpbmcxLnNtbCAqKQpz
dHJ1Y3R1cmUgU3RyaW5nMSA9CiAgIHN0cnVjdAogICAgICBvcGVuIFN0cmluZzAKCSAKICAgICAg
c3RydWN0dXJlIEYgPSBGb2xkICh0eXBlICdhIHQgPSBzdHJpbmcKCQkJICB0eXBlICdhIGVsdCA9
IGNoYXIKCQkJICB2YWwgZm9sZCA9IGZvbGQpCiAgICAgIG9wZW4gRgogICAgICB0eXBlIHQgPSBz
dHJpbmcKCSAKICAgICAgdmFsIGxheW91dCA9IExheW91dC5zdHIgbyBlc2NhcGVTTUwKCiAgICAg
ICgqIFRoaXMgaGFzaCBmdW5jdGlvbiBpcyB0YWtlbiBmcm9tIHBhZ2VzIDU2LTU3IG9mCiAgICAg
ICAqIFRoZSBQcmFjdGljZSBvZiBQcm9ncmFtbWluZyBieSBLZXJuaWdoYW4gYW5kIFBpa2UuCiAg
ICAgICAqKQogICAgICBmdW4gaGFzaCAoczogdCk6IFdvcmQudCA9CgkgZm9sZCAocywgMHcwLCBm
biAoYywgaCkgPT4gV29yZC5mcm9tQ2hhciBjICsgV29yZC4qIChoLCAwdzMxKSkKCSAKICAgICAg
ZnVuIGRyb3BsIChzLCBwKSA9CgkgY2FzZSBwZWVraSAocywgZm4gKF8sIGMpID0+IG5vdCAocCBj
KSkgb2YKCSAgICBOT05FID0+ICIiCgkgIHwgU09NRSAoaSwgXykgPT4gZXh0cmFjdCAocywgaSwg
Tk9ORSkKCiAgICAgIGZ1biBkZWxldGVTdXJyb3VuZGluZ1doaXRlc3BhY2UgKHM6IHQpOiB0ID0K
CSBsZXQKCSAgICB2YWwgbiA9IHNpemUgcwoJICAgIGZ1biBsb29wIChpOiBpbnQpID0KCSAgICAg
ICBpZiBpID0gbgoJCSAgdGhlbiBzCgkgICAgICAgZWxzZQoJCSAgaWYgQ2hhci5pc1NwYWNlIChz
dWIgKHMsIGkpKQoJCSAgICAgdGhlbiBsb29wIChpICsgMSkKCQkgIGVsc2UKCQkgICAgIGxldAoJ
CQlmdW4gbG9vcCAoajogaW50KSA9CgkJCSAgIGxldAoJCQkgICAgICB2YWwgYyA9IHN1YiAocywg
aikKCQkJICAgaW4KCQkJICAgICAgaWYgaiA9IGkKCQkJCSB0aGVuIGZyb21DaGFyIGMKCQkJICAg
ICAgZWxzZQoJCQkJIGlmIENoYXIuaXNTcGFjZSBjCgkJCQkgICAgdGhlbiBsb29wIChqIC0gMSkK
CQkJCSBlbHNlIGV4dHJhY3QgKHMsIGksIFNPTUUgKGogLSBpICsgMSkpCgkJCSAgIGVuZAoJCSAg
ICAgaW4KCQkJbG9vcCAobiAtIDEpCgkJICAgICBlbmQKCSBpbiBsb29wIDAKCSBlbmQKICAgZW5k
CigqIHN0b3Agb2YgbGliL21sdG9uL2Jhc2ljL3N0cmluZzEuc21sICopCigqIHN0YXJ0IG9mIGxp
Yi9tbHRvbi9iYXNpYy9zdWJzdHJpbmcuc2lnICopCnR5cGUgaW50ID0gUGVydmFzaXZlLkludC5p
bnQKICAgCnNpZ25hdHVyZSBTVUJTVFJJTkcgPQogICBzaWcKICAgICAgdHlwZSB0CgogICAgICB2
YWwgYWxsOiBzdHJpbmcgLT4gdCAKICAgICAgdmFsIGJhc2U6IHQgLT4gc3RyaW5nICoge3N0YXJ0
OiBpbnQsIGxlbmd0aDogaW50fQogICAgICB2YWwgY29tcGFyZTogdCAqIHQgLT4gb3JkZXIgCiAg
ICAgIHZhbCBjb25jYXQ6IHQgbGlzdCAtPiBzdHJpbmcgCiAgICAgIHZhbCBleHBsb2RlOiB0IC0+
IGNoYXIgbGlzdCAKICAgICAgdmFsIGV4dHJhY3Q6IHN0cmluZyAqIGludCAqIGludCBvcHRpb24g
LT4gdCAKICAgICAgdmFsIGZpcnN0OiB0IC0+IGNoYXIgb3B0aW9uIAogICAgICB2YWwgZ2V0Yzog
dCAtPiAoY2hhciAqIHQpIG9wdGlvbiAKICAgICAgdmFsIGlzRW1wdHk6IHQgLT4gYm9vbAogICAg
ICB2YWwgbGF5b3V0OiB0IC0+IExheW91dC50CiAgICAgIHZhbCBsZW5ndGg6IHQgLT4gaW50IAog
ICAgICB2YWwgc2xpY2U6IHQgKiBpbnQgKiBpbnQgb3B0aW9uIC0+IHQKICAgICAgdmFsIHNwYW46
IHQgKiB0IC0+IHQKICAgICAgdmFsIHN0cmluZzogdCAtPiBzdHJpbmcgCiAgICAgIHZhbCBzdWI6
IHQgKiBpbnQgLT4gY2hhciAKICAgICAgdmFsIHN1YnN0cmluZzogc3RyaW5nICoge3N0YXJ0OiBp
bnQsIGxlbmd0aDogaW50fSAtPiB0CiAgICAgIHZhbCB0b1N0cmluZzogdCAtPiBzdHJpbmcKICAg
ZW5kCigqIHN0b3Agb2YgbGliL21sdG9uL2Jhc2ljL3N1YnN0cmluZy5zaWcgKikKKCogc3RhcnQg
b2YgbGliL21sdG9uL2Jhc2ljL3N1YnN0cmluZy5zbWwgKikKc3RydWN0dXJlIFN1YnN0cmluZzog
U1VCU1RSSU5HID0KICAgc3RydWN0CiAgICAgIG9wZW4gUGVydmFzaXZlLlN1YnN0cmluZwoKICAg
ICAgdHlwZSB0ID0gc3Vic3RyaW5nCgogICAgICB2YWwgbGVuZ3RoID0gc2l6ZQoKICAgICAgdmFs
IHN1YnN0cmluZyA9CgkgZm4gKHMsIHtzdGFydCwgbGVuZ3RofSkgPT4gc3Vic3RyaW5nIChzLCBz
dGFydCwgbGVuZ3RoKQoKICAgICAgdmFsIGJhc2UgPQoJIGZuIHNzID0+IGxldCB2YWwgKHMsIHN0
YXJ0LCBsZW5ndGgpID0gYmFzZSBzcwoJCSAgaW4gKHMsIHtzdGFydCA9IHN0YXJ0LCBsZW5ndGgg
PSBsZW5ndGh9KQoJCSAgZW5kCgogICAgICB2YWwgdG9TdHJpbmcgPSBzdHJpbmcKCSAKICAgICAg
dmFsIGxheW91dCA9IFN0cmluZzEubGF5b3V0IG8gdG9TdHJpbmcgCiAgIGVuZAooKiBzdG9wIG9m
IGxpYi9tbHRvbi9iYXNpYy9zdWJzdHJpbmcuc21sICopCigqIHN0YXJ0IG9mIGxpYi9tbHRvbi9i
YXNpYy9pbnN0cmVhbTAuc21sICopCnN0cnVjdHVyZSBJbnN0cmVhbTAgPQpzdHJ1Y3QKCnN0cnVj
dHVyZSBTdHJpbmcgPSBTdHJpbmcwCnN0cnVjdHVyZSBDaGFyID0gU3RyaW5nLkNoYXIKc3RydWN0
dXJlIEkgPSBQZXJ2YXNpdmUuVGV4dElPCm9wZW4gSQogICAKdHlwZSB0ID0gSS5pbnN0cmVhbQoK
dmFsIHN0YW5kYXJkID0gc3RkSW4KdmFsIGNsb3NlID0gY2xvc2VJbgp2YWwgaW5wdXRDaGFyID0g
aW5wdXQxCnZhbCBwZWVrQ2hhciA9IGxvb2thaGVhZCAgIAp2YWwgZW5kT2YgPSBlbmRPZlN0cmVh
bQoKZnVuIGZvbGRMaW5lcyhpbnMsIGFjLCBmKSA9CiAgIGxldAogICAgICBmdW4gbG9vcCBhYyA9
CgkgY2FzZSBpbnB1dExpbmUgaW5zIG9mCgkgICAgIiIgPT4gYWMKCSAgfCBsID0+IGxvb3AgKGYo
bCwgYWMpKQogICBpbiBsb29wIGFjCiAgIGVuZAoKZnVuIGZvcmVhY2hMaW5lKGlucywgZikgPSBm
b2xkTGluZXMoaW5zLCAoKSwgZiBvICMxKQoKZnVuIGlucHV0VG8oaSwgcCkgPQogICBsZXQKICAg
ICAgZnVuIGxvb3AgYWNjdW0gPQoJIGNhc2UgcGVla0NoYXIgaSBvZgoJICAgIE5PTkUgPT4gYWNj
dW0KCSAgfCBTT01FIGMgPT4gaWYgcCBjIHRoZW4gYWNjdW0gZWxzZSAoaW5wdXRDaGFyIGk7IGxv
b3AoYyA6OiBhY2N1bSkpCiAgIGluIFN0cmluZy5pbXBsb2RlKHJldihsb29wIFtdKSkKICAgZW5k
CgpmdW4gc2FtZUNvbnRlbnRzKGluMSwgaW4yKSA9CiAgIGxldAogICAgICBmdW4gbG9vcCgpID0K
CSBjYXNlIChpbnB1dDEgaW4xLCBpbnB1dDEgaW4yKSBvZgoJICAgIChOT05FLCBOT05FKSA9PiB0
cnVlCgkgIHwgKFNPTUUgYzEsIFNPTUUgYzIpID0+IENoYXIuZXF1YWxzKGMxLCBjMikgYW5kYWxz
byBsb29wKCkKCSAgfCBfID0+IGZhbHNlCiAgIGluIGxvb3AoKQogICBlbmQKCmZ1biBpbnB1dFRv
U3BhY2UgaSA9IGlucHV0VG8oaSwgQ2hhci5pc1NwYWNlKQpmdW4gaW5wdXRUb0NoYXIoaSwgYykg
PSBpbnB1dFRvKGksIGZuIGMnID0+IENoYXIuZXF1YWxzKGMsIGMnKSkKZnVuIGlnbm9yZVNwYWNl
cyBpID0gKGlucHV0VG8oaSxub3QgbyBDaGFyLmlzU3BhY2UpOyAoKSkKCmZ1biBpbnB1dE5vdGhp
bmcgXyA9ICgpCgpmdW4gbGF5b3V0IF8gPSBMYXlvdXQuc3RyICI8aW5zdHJlYW0+IgoKKCp2YWwg
c2V0ID0gTUx0b24uVGV4dElPLnNldEluICopCgplbmQKCnN0cnVjdHVyZSBJbjAgPSBJbnN0cmVh
bTAKKCogc3RvcCBvZiBsaWIvbWx0b24vYmFzaWMvaW5zdHJlYW0wLnNtbCAqKQooKiBzdGFydCBv
ZiBsaWIvbWx0b24vYmFzaWMvb3V0c3RyZWFtLnNpZyAqKQpzaWduYXR1cmUgT1VUU1RSRUFNID0K
ICAgc2lnCiAgICAgIHR5cGUgdAoJIAogICAgICB2YWwgY2xvc2U6IHQgLT4gdW5pdAogICAgICB2
YWwgZXJyb3I6IHQKICAgICAgdmFsIGZsdWlkTGV0OiB0ICogdCAqICh1bml0IC0+ICdhKSAtPiAn
YQogICAgICB2YWwgZmx1c2g6IHQgLT4gdW5pdAogICAgICB2YWwgaWdub3JlOiB0ICogKHVuaXQg
LT4gJ2EpIC0+ICdhCiAgICAgIHZhbCBsYXlvdXQ6IHQgLT4gTGF5b3V0LnQKICAgICAgdmFsIG5l
d2xpbmU6IHQgLT4gdW5pdAogICAgICB2YWwgb3BlbkFwcGVuZDogc3RyaW5nIC0+IHQKICAgICAg
dmFsIG9wZW5PdXQ6IHN0cmluZyAtPiB0CiAgICAgIHZhbCBvdXRwdXQ6IHQgKiBzdHJpbmcgLT4g
dW5pdAogICAgICB2YWwgb3V0cHV0MTogdCAqIGNoYXIgLT4gdW5pdAogICAgICB2YWwgb3V0cHV0
YzogdCAtPiBzdHJpbmcgLT4gdW5pdAogICAgICB2YWwgb3V0cHV0U3Vic3RyOiB0ICogU3Vic3Ry
aW5nLnQgLT4gdW5pdAogICAgICB2YWwgcHJpbnQ6IHN0cmluZyAtPiB1bml0CiAgICAgIHZhbCBz
ZXQ6IHQgKiB0IC0+IHVuaXQKICAgICAgdmFsIHN0YW5kYXJkOiB0CiAgICAgIHZhbCB3aXRoQ2xv
c2U6IHQgKiAodCAtPiAnYSkgLT4gJ2EKICAgICAgdmFsIHdpdGhOdWxsOiAodCAtPiAnYSkgLT4g
J2EKICAgZW5kCigqIHN0b3Agb2YgbGliL21sdG9uL2Jhc2ljL291dHN0cmVhbS5zaWcgKikKKCog
c3RhcnQgb2YgbGliL21sdG9uL2Jhc2ljL291dHN0cmVhbS5zbWwgKikKc3RydWN0dXJlIE91dHN0
cmVhbTogT1VUU1RSRUFNID0Kc3RydWN0CgpvcGVuIE91dHN0cmVhbTAKCmZ1biBsYXlvdXQgXyA9
IExheW91dC5zdHIgIjxvdXRzdHJlYW0+IgoKZW5kCgpzdHJ1Y3R1cmUgT3V0ID0gT3V0c3RyZWFt
CigqIHN0b3Agb2YgbGliL21sdG9uL2Jhc2ljL291dHN0cmVhbS5zbWwgKikKKCogc3RhcnQgb2Yg
bGliL21sdG9uL2Jhc2ljL3JlbGF0aW9uLnNpZyAqKQpzaWduYXR1cmUgUkVMQVRJT04gPQogICBz
aWcKICAgICAgZGF0YXR5cGUgdCA9IGRhdGF0eXBlIG9yZGVyICgqIGZyb20gdGhlIHBlcnZhc2l2
ZSBlbnZpcm9ubWVudCAqKQoKICAgICAgdmFsIGNvbXBhcmU6ICgnYSAqICdhIC0+IHQpCgkgLT4g
e2VxdWFsczogJ2EgKiAnYSAtPiBib29sLAoJICAgICA8IDogJ2EgKiAnYSAtPiBib29sLAoJICAg
ICA+IDogJ2EgKiAnYSAtPiBib29sLAoJICAgICA+PSA6ICdhICogJ2EgLT4gYm9vbCwKCSAgICAg
PD0gOiAnYSAqICdhIC0+IGJvb2wsCgkgICAgIG1pbjogJ2EgKiAnYSAtPiAnYSwKCSAgICAgbWF4
OiAnYSAqICdhIC0+ICdhfQogICAgICB2YWwgZXF1YWxzOiB0ICogdCAtPiBib29sCiAgICAgIHZh
bCBsYXlvdXQ6IHQgLT4gTGF5b3V0LnQKICAgICAgdmFsIGxlc3NFcXVhbDogezwgOiAnYSAqICdh
IC0+IGJvb2wsCgkJICAgICAgIGVxdWFsczogJ2EgKiAnYSAtPiBib29sfQoJIC0+IHs+IDogJ2Eg
KiAnYSAtPiBib29sLAoJICAgICA+PSA6ICdhICogJ2EgLT4gYm9vbCwKCSAgICAgPD0gOiAnYSAq
ICdhIC0+IGJvb2wsCgkgICAgIG1pbjogJ2EgKiAnYSAtPiAnYSwKCSAgICAgbWF4OiAnYSAqICdh
IC0+ICdhLAoJICAgICBjb21wYXJlOiAnYSAqICdhIC0+IHR9CiAgIGVuZAooKiBzdG9wIG9mIGxp
Yi9tbHRvbi9iYXNpYy9yZWxhdGlvbi5zaWcgKikKKCogc3RhcnQgb2YgbGliL21sdG9uL2Jhc2lj
L3JlbGF0aW9uLnNtbCAqKQpzdHJ1Y3R1cmUgUmVsYXRpb246IFJFTEFUSU9OID0Kc3RydWN0Cgpv
cGVuIFJlbGF0aW9uMAoKdmFsIGxheW91dCA9IExheW91dC5zdHIgbyB0b1N0cmluZwoKZW5kCigq
IHN0b3Agb2YgbGliL21sdG9uL2Jhc2ljL3JlbGF0aW9uLnNtbCAqKQooKiBzdGFydCBvZiBsaWIv
bWx0b24vYmFzaWMvcmluZy5zaWcgKikKc2lnbmF0dXJlIFJJTkdfU1RSVUNUUyA9CiAgIHNpZwog
ICAgICB0eXBlIHQKCiAgICAgIHZhbCArIDogdCAqIHQgLT4gdAogICAgICB2YWwgfiA6IHQgLT4g
dAogICAgICB2YWwgKiA6IHQgKiB0IC0+IHQKICAgICAgdmFsIGVxdWFsczogdCAqIHQgLT4gYm9v
bAogICAgICB2YWwgbGF5b3V0OiB0IC0+IExheW91dC50CiAgICAgIHZhbCB6ZXJvOiB0CiAgIGVu
ZAoKc2lnbmF0dXJlIFJJTkcgPQogICBzaWcKICAgICAgaW5jbHVkZSBSSU5HX1NUUlVDVFMKCSAK
ICAgICAgdmFsIC0gOiB0ICogdCAtPiB0CiAgICAgIHZhbCBkb3VibGU6IHQgLT4gdAogICAgICB2
YWwgaXNaZXJvOiB0IC0+IGJvb2wKICAgICAgdmFsIHNxdWFyZTogdCAtPiB0CiAgICAgIHZhbCBz
dW06IHQgbGlzdCAtPiB0CiAgIGVuZAooKiBzdG9wIG9mIGxpYi9tbHRvbi9iYXNpYy9yaW5nLnNp
ZyAqKQooKiBzdGFydCBvZiBsaWIvbWx0b24vYmFzaWMvcmluZy13aXRoLWlkZW50aXR5LnNpZyAq
KQpzaWduYXR1cmUgUklOR19XSVRIX0lERU5USVRZX1NUUlVDVFMgPSAKICAgc2lnCiAgICAgIGlu
Y2x1ZGUgUklORwoJIAogICAgICB2YWwgb25lOiB0CiAgIGVuZAoKc2lnbmF0dXJlIFJJTkdfV0lU
SF9JREVOVElUWSA9IAogICBzaWcKICAgICAgaW5jbHVkZSBSSU5HX1dJVEhfSURFTlRJVFlfU1RS
VUNUUwoKICAgICAgdmFsIF4gOiB0ICogUGVydmFzaXZlLkludC5pbnQgLT4gdAogICAgICB2YWwg
Xl4gOiB0ICogUGVydmFzaXZlLkludEluZi5pbnQgLT4gdAoKICAgICAgdmFsIGFkZDE6IHQgLT4g
dAogICAgICB2YWwgZGVjOiB0IHJlZiAtPiB1bml0CiAgICAgICgqIGZyb21JbnQgbiA9IDEgKyAu
Li4gKyAxLCBuIHRpbWVzLiAqKQogICAgICB2YWwgZnJvbUludDogUGVydmFzaXZlLkludC5pbnQg
LT4gdAogICAgICB2YWwgZnJvbUludEluZjogUGVydmFzaXZlLkludEluZi5pbnQgLT4gdAogICAg
ICB2YWwgaW5jOiB0IHJlZiAtPiB1bml0CiAgICAgIHZhbCBuZWdPbmU6IHQKICAgICAgdmFsIHBv
d2VyOiAodCAqIFBlcnZhc2l2ZS5JbnQuaW50KSBsaXN0IC0+IHQgKCogc2ltdWx0YW5lb3VzIGV4
cG9uZW50aWF0aW9uICopCiAgICAgIHZhbCBwb3dlckluZjogKHQgKiBQZXJ2YXNpdmUuSW50SW5m
LmludCkgbGlzdCAtPiB0CiAgICAgIHZhbCBwcm9kOiB0IGxpc3QgLT4gdAogICAgICB2YWwgc3Vi
MTogdCAtPiB0CiAgICAgIHZhbCB0aHJlZTogdAogICAgICB2YWwgdHdvOiB0CiAgIGVuZAooKiBz
dG9wIG9mIGxpYi9tbHRvbi9iYXNpYy9yaW5nLXdpdGgtaWRlbnRpdHkuc2lnICopCigqIHN0YXJ0
IG9mIGxpYi9tbHRvbi9iYXNpYy9wcm9taXNlLnNpZyAqKQpzaWduYXR1cmUgUFJPTUlTRSA9CiAg
IHNpZwogICAgICB0eXBlICdhIHQKCSAKICAgICAgZXhjZXB0aW9uIEZvcmNlCgogICAgICB2YWwg
ZGVsYXk6ICh1bml0IC0+ICdhKSAtPiAnYSB0CiAgICAgIHZhbCBmb3JjZTogJ2EgdCAtPiAnYQog
ICAgICB2YWwgbGF6eTogKHVuaXQgLT4gJ2EpIC0+ICh1bml0IC0+ICdhKQogICBlbmQKKCogc3Rv
cCBvZiBsaWIvbWx0b24vYmFzaWMvcHJvbWlzZS5zaWcgKikKKCogc3RhcnQgb2YgbGliL21sdG9u
L2Jhc2ljL3Byb21pc2Uuc21sICopCnN0cnVjdHVyZSBQcm9taXNlOiBQUk9NSVNFID0Kc3RydWN0
CgpkYXRhdHlwZSAnYSB0ID0gVCBvZiAnYSBzdGF0ZSByZWYKYW5kICdhIHN0YXRlID0KICAgVW5l
dmFsdWF0ZWQgb2YgdW5pdCAtPiAnYQogIHwgRXZhbHVhdGluZwogIHwgRXZhbHVhdGVkIG9mICdh
CgpmdW4gZGVsYXkgdGggPSBUKHJlZihVbmV2YWx1YXRlZCB0aCkpCgpleGNlcHRpb24gRm9yY2UK
ZnVuIGZvcmNlKFQgcikgPQogICBjYXNlICFyIG9mCiAgICAgIEV2YWx1YXRlZCB4ID0+IHgKICAg
IHwgVW5ldmFsdWF0ZWQgdGggPT4gKChyIDo9IEV2YWx1YXRpbmcgOwoJCQkgIGxldCB2YWwgeCA9
IHRoKCkKCQkJICBpbiByIDo9IEV2YWx1YXRlZCB4IDsgeAoJCQkgIGVuZCkgaGFuZGxlIGV4biA9
PiAociA6PSBVbmV2YWx1YXRlZCB0aCA7CgkJCQkJICAgICAgcmFpc2UgZXhuKSkKICAgIHwgRXZh
bHVhdGluZyA9PiByYWlzZSBGb3JjZQoKZnVuIGxhenkgdGggPQogICBsZXQgdmFsIHAgPSBkZWxh
eSB0aAogICBpbiBmbiAoKSA9PiBmb3JjZSBwCiAgIGVuZAoKZW5kCigqIHN0b3Agb2YgbGliL21s
dG9uL2Jhc2ljL3Byb21pc2Uuc21sICopCigqIHN0YXJ0IG9mIGxpYi9tbHRvbi9iYXNpYy9zdHJl
YW0uc2lnICopCnR5cGUgaW50ID0gUGVydmFzaXZlLkludC5pbnQKICAgCnNpZ25hdHVyZSBTVFJF
QU1fU1RSVUNUUyA9IAogICBzaWcKICAgZW5kCgpzaWduYXR1cmUgU1RSRUFNID0gCiAgIHNpZwog
ICAgICBpbmNsdWRlIFNUUkVBTV9TVFJVQ1RTCiAgICAgIAogICAgICB0eXBlICdhIHQKCiAgICAg
IHZhbCBhcHBlbmQ6ICdhIHQgKiAnYSB0IC0+ICdhIHQKICAgICAgdmFsIGFwcGVuZE1hcDogJ2Eg
dCAqICgnYSAtPiAnYiB0KSAtPiAnYiB0CiAgICAgIHZhbCBjb25zOiAnYSAqICdhIHQgLT4gJ2Eg
dAogICAgICB2YWwgZGVsYXk6ICh1bml0IC0+ICdhIHQpIC0+ICdhIHQKICAgICAgdmFsIGVtcHR5
OiB1bml0IC0+ICdhIHQKICAgICAgdmFsIGZpcnN0TjogJ2EgdCAqIGludCAtPiAnYSBsaXN0CiAg
ICAgIHZhbCBmb3JjZTogJ2EgdCAtPiAoJ2EgKiAnYSB0KSBvcHRpb24KICAgICAgdmFsIGluZmlu
aXRlOiAnYSAqICgnYSAtPiAnYSkgLT4gJ2EgdAogICAgICB2YWwgaXNFbXB0eTogJ2EgdCAtPiBi
b29sCiAgICAgIHZhbCBrZWVwOiAnYSB0ICogKCdhIC0+IGJvb2wpIC0+ICdhIHQKICAgICAgdmFs
IGxhc3Q6ICdhIHQgLT4gJ2Egb3B0aW9uCiAgICAgIHZhbCBsYXlvdXQ6ICgnYSAtPiBMYXlvdXQu
dCkgLT4gJ2EgdCAtPiBMYXlvdXQudAogICAgICB2YWwgbWFwOiAnYSB0ICogKCdhIC0+ICdiKSAt
PiAnYiB0CiAgICAgIHZhbCBudGg6ICdhIHQgKiBpbnQgLT4gJ2EKICAgICAgdmFsIHNpbmdsZTog
J2EgLT4gJ2EgdAogICAgICB2YWwgdG9MaXN0OiAnYSB0IC0+ICdhIGxpc3QKICAgZW5kCigqIHN0
b3Agb2YgbGliL21sdG9uL2Jhc2ljL3N0cmVhbS5zaWcgKikKKCogc3RhcnQgb2YgbGliL21sdG9u
L2Jhc2ljL3N0cmVhbS5zbWwgKikKc3RydWN0dXJlIFN0cmVhbTogU1RSRUFNID0gCnN0cnVjdAoK
ZGF0YXR5cGUgJ2EgdCA9IFQgb2YgKCdhICogJ2EgdCkgb3B0aW9uIFByb21pc2UudAoKZnVuIGRl
bGF5VGggdGggPSBUKFByb21pc2UuZGVsYXkgdGgpCmZ1biBmb3JjZShUIHApID0gUHJvbWlzZS5m
b3JjZSBwCgpmdW4gJ2EgZGVsYXkodGg6IHVuaXQgLT4gJ2EgdCk6ICdhIHQgPSBkZWxheVRoKGZv
cmNlIG8gdGgpCgpmdW4gZW1wdHkoKSA9IGRlbGF5VGgoZm4gKCkgPT4gTk9ORSkKCmZ1biBjb25z
KHgsIHMpID0gZGVsYXlUaChmbiAoKSA9PiBTT01FKHgsIHMpKQoKZnVuIHNpbmdsZSB4ID0gY29u
cyh4LCBlbXB0eSgpKQoKZnVuICdhIGFwcGVuZChzOiAnYSB0LCBzJzogJ2EgdCk6ICdhIHQgPQog
ICBsZXQKICAgICAgZnVuIGxvb3AocykgPQoJIGRlbGF5KGZuICgpID0+CgkgICAgICAgY2FzZSBm
b3JjZSBzIG9mCgkJICBOT05FID0+IHMnCgkJfCBTT01FKHgsIHMnKSA9PiBjb25zKHgsIGxvb3Ag
cycpKQogICBpbiBsb29wIHMKICAgZW5kCgpmdW4gbWFwKHMsIGYpID0KICAgbGV0CiAgICAgIGZ1
biBsb29wIHMgPQoJIGRlbGF5KGZuICgpID0+CgkgICAgICAgY2FzZSBmb3JjZSBzIG9mCgkJICBO
T05FID0+IGVtcHR5KCkKCQl8IFNPTUUoeCwgcykgPT4gY29ucyhmIHgsIGxvb3AgcykpCiAgIGlu
IGxvb3AgcwogICBlbmQKICAgICAgCmZ1biBhcHBlbmRNYXAocywgZikgPQogICBsZXQKICAgICAg
ZnVuIGxvb3AocykgPQoJIGRlbGF5KGZuICgpID0+CgkgICAgICAgY2FzZSBmb3JjZSBzIG9mCgkJ
ICBOT05FID0+IGVtcHR5KCkKCQl8IFNPTUUoeCwgcykgPT4gYXBwZW5kKGYgeCwgbG9vcCBzKSkK
ICAgaW4gbG9vcCBzCiAgIGVuZAoKZnVuIHRvTGlzdChzKSA9CiAgIGNhc2UgZm9yY2UgcyBvZgog
ICAgICBOT05FID0+IFtdCiAgICB8IFNPTUUoeCwgcykgPT4geCA6OiB0b0xpc3QgcwoKZnVuIGxh
c3QocykgPQogICBsZXQKICAgICAgZnVuIGxvb3AoeiwgcykgPQoJIGNhc2UgZm9yY2UgcyBvZgoJ
ICAgIE5PTkUgPT4gegoJICB8IFNPTUUoeCwgcykgPT4gbG9vcChTT01FIHgsIHMpCiAgIGluIGxv
b3AoTk9ORSwgcykKICAgZW5kCgpmdW4gaXNFbXB0eShzKSA9CiAgIGNhc2UgZm9yY2Uocykgb2YK
ICAgICAgTk9ORSA9PiB0cnVlCiAgICB8IFNPTUUgXyA9PiBmYWxzZQkgCgpmdW4gbGF5b3V0IGYg
cyA9IExpc3QubGF5b3V0IGYgKHRvTGlzdCBzKQoKZnVuIGtlZXAocywgcCkgPQogICBsZXQKICAg
ICAgZnVuIGxvb3AgcyA9CgkgZGVsYXkKCSAoZm4gKCkgPT4KCSAgY2FzZSBmb3JjZSBzIG9mCgkg
ICAgIE5PTkUgPT4gZW1wdHkoKQoJICAgfCBTT01FKHgsIHMpID0+IGlmIHAgeAoJCQkgICAgICB0
aGVuIGNvbnMoeCwgbG9vcCBzKQoJCQkgICBlbHNlIGxvb3AgcykKICAgaW4gbG9vcCBzCiAgIGVu
ZAoKZnVuIGZpcnN0TihzLCBuOiBpbnQpID0KICAgbGV0CiAgICAgIGZ1biBsb29wKG4sIHMsIGFj
KSA9CgkgaWYgbiA9IDAKCSAgICB0aGVuIHJldiBhYwoJIGVsc2UgKGNhc2UgZm9yY2UgcyBvZgoJ
CSAgTk9ORSA9PiBFcnJvci5idWcgImZpcnN0TiIKCQl8IFNPTUUoeCwgcykgPT4gbG9vcChuIC0g
MSwgcywgeCA6OiBhYykpCiAgIGluIGxvb3AobiwgcywgW10pCiAgIGVuZAoKZnVuIG50aChzLCBu
OiBpbnQpID0KICAgY2FzZSBmb3JjZSBzIG9mCiAgICAgIE5PTkUgPT4gRXJyb3IuYnVnICJudGgi
CiAgICB8IFNPTUUoeCwgcykgPT4gaWYgbiA9IDAgdGhlbiB4IGVsc2UgbnRoKHMsIG4gLSAxKQoK
ZnVuICdhIGluZmluaXRlKHN0YXJ0OiAnYSwgbmV4dDogJ2EgLT4gJ2EpOiAnYSB0ID0KICAgbGV0
IGZ1biBsb29wKGE6ICdhKSA9IGRlbGF5KGZuICgpID0+IGNvbnMoYSwgbG9vcChuZXh0IGEpKSkK
ICAgaW4gbG9vcCBzdGFydAogICBlbmQKCmVuZAooKiBzdG9wIG9mIGxpYi9tbHRvbi9iYXNpYy9z
dHJlYW0uc21sICopCigqIHN0YXJ0IG9mIGxpYi9tbHRvbi9iYXNpYy9ldWNsaWRlYW4tcmluZy5z
aWcgKikKc2lnbmF0dXJlIEVVQ0xJREVBTl9SSU5HX1NUUlVDVFMgPQogICBzaWcKICAgICAgaW5j
bHVkZSBSSU5HX1dJVEhfSURFTlRJVFkKCiAgICAgICgqIFR3byBlbGVtZW50cyBhLCBiIGFyZSAi
dW5pdCBlcXVpdmFsZW50IiBpZiB0aGVyZSBpcyBhIHVuaXQgZWxlbWVudCB1CiAgICAgICAqIHN1
Y2ggdGhhdCBhdSA9IGIuCiAgICAgICAqKQoKICAgICAgdmFsIGRpdk1vZDogdCAqIHQgLT4gdCAq
IHQKICAgICAgdmFsIG1ldHJpYzogdCAtPiBQZXJ2YXNpdmUuSW50SW5mLmludAogICAgICAoKiBN
b25pY3Mgc2hvdWxkIGJlIGFuIChpbmZpbml0ZSkgc3RyZWFtIG9mIGFsbCAoZXhjZXB0IGZvciB6
ZXJvIGFuZCBvbmUpCiAgICAgICAqIHRoZSByZXByZXNlbnRhdGl2ZXMgb2YgdGhlIHVuaXQgZXF1
aXZhbGVuY2UgY2xhc3NlcyBpbiBub25kZWNyZWFzaW5nCiAgICAgICAqIG9yZGVyIG9mIG1ldHJp
Yy4KICAgICAgICopCiAgICAgIHZhbCBtb25pY3M6IHQgU3RyZWFtLnQKICAgICAgKCogTWFwIGFu
IGVsZW1lbnQgdG8gdGhlIHJlcHJlc2VudGF0aXZlIG9mIGl0cyB1bml0IGVxdWl2YWxlbmNlIGNs
YXNzLiAqKQogICAgICB2YWwgdW5pdEVxdWl2YWxlbnQ6IHQgLT4gdAogICBlbmQKCnNpZ25hdHVy
ZSBFVUNMSURFQU5fUklORyA9CiAgIHNpZwogICAgICBpbmNsdWRlIEVVQ0xJREVBTl9SSU5HX1NU
UlVDVFMKCSAKICAgICAgdmFsIGRpdjogdCAqIHQgLT4gdAogICAgICB2YWwgZGl2aWRlczogdCAq
IHQgLT4gYm9vbAogICAgICB2YWwgZXh0ZW5kZWRFdWNsaWQ6IHQgKiB0IC0+IHQgKiB0ICogdAog
ICAgICB2YWwgZXh0ZW5kZWRFdWNsaWRUZXJtOiB0ICogdCAqICh0ICogdCAtPiBib29sKSAtPiB0
ICogdCAqIHQKICAgICAgdmFsIGZhY3RvcjogdCAtPiAodCAqIFBlcnZhc2l2ZS5JbnQuaW50KSBs
aXN0CiAgICAgIHZhbCBnY2Q6IHQgKiB0IC0+IHQKICAgICAgdmFsIGlzQ29tcG9zaXRlOiB0IC0+
IGJvb2wKICAgICAgdmFsIGlzUHJpbWU6IHQgLT4gYm9vbAogICAgICB2YWwgbGNtOiB0ICogdCAt
PiB0CiAgICAgIHZhbCBwcmltZXM6IHQgU3RyZWFtLnQKICAgICAgdmFsIG1vZDogdCAqIHQgLT4g
dAogICBlbmQKKCogc3RvcCBvZiBsaWIvbWx0b24vYmFzaWMvZXVjbGlkZWFuLXJpbmcuc2lnICop
CigqIHN0YXJ0IG9mIGxpYi9tbHRvbi9iYXNpYy9pbnRlZ2VyLnNpZyAqKQpzaWduYXR1cmUgSU5U
RUdFUl9TVFJVQ1RTID0KICAgc2lnCiAgICAgIGVxdHlwZSBpbnQKCiAgICAgIHZhbCAqIDogaW50
ICogaW50IC0+IGludCAKICAgICAgdmFsICsgOiBpbnQgKiBpbnQgLT4gaW50IAogICAgICB2YWwg
LSA6IGludCAqIGludCAtPiBpbnQgCiAgICAgIHZhbCA8IDogaW50ICogaW50IC0+IGJvb2wgCiAg
ICAgIHZhbCA8PSA6IGludCAqIGludCAtPiBib29sIAogICAgICB2YWwgPiA6IGludCAqIGludCAt
PiBib29sIAogICAgICB2YWwgPj0gOiBpbnQgKiBpbnQgLT4gYm9vbCAKICAgICAgdmFsIGFiczog
aW50IC0+IGludCAKICAgICAgdmFsIGNvbXBhcmU6IGludCAqIGludCAtPiBvcmRlciAKICAgICAg
dmFsIGRpdjogaW50ICogaW50IC0+IGludCAKICAgICAgdmFsIGRpdk1vZDogaW50ICogaW50IC0+
IGludCAqIGludAogICAgICB2YWwgZm10OiBTdHJpbmdDdnQucmFkaXggLT4gaW50IC0+IHN0cmlu
ZyAKICAgICAgdmFsIGZyb21JbnQ6IFBlcnZhc2l2ZS5JbnQuaW50IC0+IGludCAKICAgICAgdmFs
IGZyb21MYXJnZTogUGVydmFzaXZlLkxhcmdlSW50LmludCAtPiBpbnQgCiAgICAgIHZhbCBmcm9t
U3RyaW5nOiBzdHJpbmcgLT4gaW50IG9wdGlvbiAKICAgICAgdmFsIG1heDogaW50ICogaW50IC0+
IGludCAKICAgICAgdmFsIG1heEludDogaW50IG9wdGlvbiAKICAgICAgdmFsIG1pbjogaW50ICog
aW50IC0+IGludCAKICAgICAgdmFsIG1pbkludDogaW50IG9wdGlvbiAKICAgICAgdmFsIG1vZDog
aW50ICogaW50IC0+IGludCAKICAgICAgdmFsIHByZWNpc2lvbjogUGVydmFzaXZlLkludC5pbnQg
b3B0aW9uIAogICAgICB2YWwgcXVvdDogaW50ICogaW50IC0+IGludCAKICAgICAgdmFsIHF1b3RS
ZW06IGludCAqIGludCAtPiBpbnQgKiBpbnQKICAgICAgdmFsIHJlbTogaW50ICogaW50IC0+IGlu
dAogICAgICB2YWwgc2FtZVNpZ246IGludCAqIGludCAtPiBib29sIAogICAgICB2YWwgc2Nhbjog
U3RyaW5nQ3Z0LnJhZGl4CgkgLT4gKGNoYXIsICdhKSBTdHJpbmdDdnQucmVhZGVyCgkgLT4gKGlu
dCwgJ2EpIFN0cmluZ0N2dC5yZWFkZXIKICAgICAgdmFsIHNpZ246IGludCAtPiBQZXJ2YXNpdmUu
SW50LmludCAKICAgICAgdmFsIHRvSW50OiBpbnQgLT4gUGVydmFzaXZlLkludC5pbnQgCiAgICAg
IHZhbCB0b0ludEluZjogaW50IC0+IFBlcnZhc2l2ZS5JbnRJbmYuaW50CiAgICAgIHZhbCB0b0xh
cmdlOiBpbnQgLT4gUGVydmFzaXZlLkxhcmdlSW50LmludCAKICAgICAgdmFsIHRvU3RyaW5nOiBp
bnQgLT4gc3RyaW5nIAogICAgICB2YWwgfiA6IGludCAtPiBpbnQgCiAgIGVuZAoKc2lnbmF0dXJl
IElOVEVHRVIgPQogICBzaWcKICAgICAgaW5jbHVkZSBFVUNMSURFQU5fUklORwoKICAgICAgdmFs
IDwgOiB0ICogdCAtPiBib29sCiAgICAgIHZhbCA8PSA6IHQgKiB0IC0+IGJvb2wKICAgICAgdmFs
ID4gOiB0ICogdCAtPiBib29sCiAgICAgIHZhbCA+PSA6IHQgKiB0IC0+IGJvb2wKICAgICAgdmFs
IGFiczogdCAtPiB0CiAgICAgIHZhbCBjaG9vc2U6IHQgKiB0IC0+IHQKICAgICAgdmFsIGNvbXBh
cmU6IHQgKiB0IC0+IFJlbGF0aW9uLnQKICAgICAgdmFsIGV4aXN0czogdCAqIHQgKiAodCAtPiBi
b29sKSAtPiBib29sCiAgICAgIHZhbCBmYWN0b3JpYWw6IHQgLT4gdAogICAgICB2YWwgZm9sZDog
dCAqIHQgKiAnYSAqICh0ICogJ2EgLT4gJ2EpIC0+ICdhCiAgICAgIHZhbCBmb2xkRG93bjogdCAq
IHQgKiAnYSAqICh0ICogJ2EgLT4gJ2EpIC0+ICdhCiAgICAgIHZhbCBmb3I6IHQgKiB0ICogKHQg
LT4gdW5pdCkgLT4gdW5pdAogICAgICB2YWwgZm9yYWxsOiB0ICogdCAqICh0IC0+IGJvb2wpIC0+
IGJvb2wKICAgICAgdmFsIGZvcm1hdDogdCAqIFN0cmluZ0N2dC5yYWRpeCAtPiBzdHJpbmcgCiAg
ICAgIHZhbCBmb3JEb3duOiB0ICogdCAqICh0IC0+IHVuaXQpIC0+IHVuaXQKICAgICAgdmFsIGZy
b21TdHJpbmc6IHN0cmluZyAtPiB0IG9wdGlvbgogICAgICBleGNlcHRpb24gSW5wdXQKICAgICAg
dmFsIGlucHV0OiBJbjAudCAtPiB0CiAgICAgIHZhbCBpc0V2ZW46IHQgLT4gYm9vbAogICAgICB2
YWwgaXNOZWdhdGl2ZTogdCAtPiBib29sCiAgICAgIHZhbCBpc09kZDogdCAtPiBib29sCiAgICAg
IHZhbCBpc1Bvc2l0aXZlOiB0IC0+IGJvb2wKICAgICAgKCogbGFyZ2VzdCAoaSwgZikgaXMgdGhl
IGxhcmdlc3QgaiA8PSBpIHN1Y2ggdGhhdCBmIGogKikKICAgICAgdmFsIGxhcmdlc3Q6IHQgKiAo
dCAtPiBib29sKSAtPiB0CiAgICAgIHZhbCBsZWFzdDogdCAqIHQgKiAodCAtPiBib29sKSAtPiB0
IG9wdGlvbgogICAgICB2YWwgbWFwOiB0ICogdCAqICh0IC0+ICdhKSAtPiAnYSBsaXN0CiAgICAg
IHZhbCBtYXg6IHQgKiB0IC0+IHQKICAgICAgdmFsIG1pbjogdCAqIHQgLT4gdAogICAgICB2YWwg
b3V0cHV0OiB0ICogT3V0LnQgLT4gdW5pdAogICAgICB2YWwgcXVvdDogdCAqIHQgLT4gdCAKICAg
ICAgdmFsIHF1b3RSZW06IHQgKiB0IC0+IHQgKiB0CiAgICAgIHZhbCByZW06IHQgKiB0IC0+IHQK
ICAgICAgdmFsIHNjYW46IChTdHJpbmdDdnQucmFkaXggKiAoY2hhciwgJ2EpIFN0cmluZ0N2dC5y
ZWFkZXIpCgkgLT4gKHQsICdhKSBTdHJpbmdDdnQucmVhZGVyCiAgICAgICgqIHNtYWxsZXN0IChp
LCBmKSBpcyB0aGUgc21hbGxlc3QgaiA+PSBpIHN1Y2ggdGhhdCBmIGogKikKICAgICAgdmFsIHNt
YWxsZXN0OiB0ICogKHQgLT4gYm9vbCkgLT4gdAogICAgICAoKiB2YWwgc3VtOiB7ZnJvbTogdCwg
dG86IHQsIHRlcm06IHQgLT4gdH0gLT4gdCAqKQogICAgICB2YWwgdG9Db21tYVN0cmluZzogdCAt
PiBzdHJpbmcKICAgICAgdmFsIHRvSW50OiB0IC0+IFBlcnZhc2l2ZS5JbnQuaW50CiAgICAgIHZh
bCB0b1N0cmluZzogdCAtPiBzdHJpbmcKICAgZW5kCgoKCigqIHN0b3Agb2YgbGliL21sdG9uL2Jh
c2ljL2ludGVnZXIuc2lnICopCigqIHN0YXJ0IG9mIGxpYi9tbHRvbi9iYXNpYy9yaW5nLmZ1biAq
KQpmdW5jdG9yIFJpbmcoUzogUklOR19TVFJVQ1RTKTo+IFJJTkcgd2hlcmUgdHlwZSB0ID0gUy50
ID0gCnN0cnVjdAoKb3BlbiBTCgpmdW4gYSAtIGIgPSBhICsgKH4gYikKCmZ1biBpc1plcm8gYSA9
IGVxdWFscyhhLCB6ZXJvKQoKZnVuIGRvdWJsZSBuID0gbiArIG4KCmZ1biBzcXVhcmUgbiA9IG4g
KiBuCgpmdW4gc3VtIGwgPSBMaXN0LmZvbGQobCwgemVybywgb3AgKykKICAgCmVuZAooKiBzdG9w
IG9mIGxpYi9tbHRvbi9iYXNpYy9yaW5nLmZ1biAqKQooKiBzdGFydCBvZiBsaWIvbWx0b24vYmFz
aWMvb3JkZXJlZC1yaW5nLnNpZyAqKQpzaWduYXR1cmUgT1JERVJFRF9SSU5HX1NUUlVDVFMgPQog
ICBzaWcKICAgICAgaW5jbHVkZSBSSU5HX1dJVEhfSURFTlRJVFkKICAgICAgCiAgICAgIHZhbCBj
b21wYXJlOiB0ICogdCAtPiBSZWxhdGlvbi50CiAgICAgIHZhbCA8IDogdCAqIHQgLT4gYm9vbAog
ICAgICB2YWwgPD0gOiB0ICogdCAtPiBib29sCiAgICAgIHZhbCA+IDogdCAqIHQgLT4gYm9vbAog
ICAgICB2YWwgPj0gOiB0ICogdCAtPiBib29sCiAgIGVuZAoKc2lnbmF0dXJlIE9SREVSRURfUklO
RyA9CiAgIHNpZwogICAgICBpbmNsdWRlIE9SREVSRURfUklOR19TVFJVQ1RTCgogICAgICB2YWwg
YWJzOiB0IC0+IHQKICAgICAgdmFsIGZhY3RvcmlhbDogdCAtPiB0CiAgICAgIHZhbCBmb2xkbDog
dCAqIHQgKiAnYSAqICgnYSAqIHQgLT4gJ2EpIC0+ICdhCiAgICAgIHZhbCBpc05lZ2F0aXZlOiB0
IC0+IGJvb2wKICAgICAgdmFsIGlzUG9zaXRpdmU6IHQgLT4gYm9vbAogICAgICB2YWwgbWF4OiB0
ICogdCAtPiB0CiAgICAgIHZhbCBtaW46IHQgKiB0IC0+IHQKICAgICAgdmFsIHByb2RGcm9tVG86
IHtmcm9tOiB0LCB0bzogdCwgdGVybTogdCAtPiB0fSAtPiB0CiAgICAgIHZhbCBzdW1Gcm9tVG86
IHtmcm9tOiB0LCB0bzogdCwgdGVybTogdCAtPiB0fSAtPiB0IAogICBlbmQKCigqIHN0b3Agb2Yg
bGliL21sdG9uL2Jhc2ljL29yZGVyZWQtcmluZy5zaWcgKikKKCogc3RhcnQgb2YgbGliL21sdG9u
L2Jhc2ljL29yZGVyZWQtcmluZy5mdW4gKikKZnVuY3RvciBPcmRlcmVkUmluZyhTOiBPUkRFUkVE
X1JJTkdfU1RSVUNUUyk6PiBPUkRFUkVEX1JJTkcgd2hlcmUgdHlwZSB0ID0gUy50ID0Kc3RydWN0
CgpvcGVuIFMKc3RydWN0dXJlIFUgPSBSaW5nKFMpCm9wZW4gVQoKZnVuIGlzUG9zaXRpdmUgbiA9
IG4gPiB6ZXJvCgpmdW4gaXNOZWdhdGl2ZSBuID0gbiA8IHplcm8KCmZ1biBhYnMgbiA9IGlmIGlz
UG9zaXRpdmUgbiB0aGVuIG4gZWxzZSB+IG4KCmZ1biBmb2xkbChmcm9tLCB0bywgYiwgZikgPQog
ICBsZXQgZnVuIGZvbGQobiwgYSkgPSBpZiBuID4gdG8gdGhlbiBhCgkJICAgICAgIGVsc2UgZm9s
ZChhZGQxIG4sIGYoYSxuKSkKICAgaW4gZm9sZChmcm9tLCBiKQogICBlbmQKCmxvY2FsIAogICBm
dW4gYWJzIChjb21iaW5lLCBiYXNlKSB7ZnJvbSwgdG8sIHRlcm19ID0KICAgICAgZm9sZGwoZnJv
bSwgdG8sIGJhc2UsIGZuIChhLCBpKSA9PiBjb21iaW5lKGEsIHRlcm0gaSkpCmluCiAgIHZhbCBz
dW1Gcm9tVG8gPSBhYnMob3AgKywgemVybykKICAgdmFsIHByb2RGcm9tVG8gPSBhYnMob3AgKiwg
b25lKQplbmQKCmZ1biBmYWN0b3JpYWwgbiA9IHByb2RGcm9tVG97ZnJvbSA9IG9uZSwgdG8gPSBu
LCB0ZXJtID0gZm4gaSA9PiBpfQoKZnVuIG1heChtLCBuKSA9IGlmIG0gPiBuIHRoZW4gbSBlbHNl
IG4KCmZ1biBtaW4obSwgbikgPSBpZiBtIDwgbiB0aGVuIG0gZWxzZSBuCiAgIAplbmQKKCogc3Rv
cCBvZiBsaWIvbWx0b24vYmFzaWMvb3JkZXJlZC1yaW5nLmZ1biAqKQooKiBzdGFydCBvZiBsaWIv
bWx0b24vYmFzaWMvcG93ZXIuc21sICopCnN0cnVjdHVyZSBUeXBlcyA9CiAgIHN0cnVjdAogICAg
ICB0eXBlICgnYSwgJ2IpIHBvd2VyID0KCSB7bGF5b3V0OiAnYSAtPiBMYXlvdXQudCwKCSAgb25l
OiAnYSwKCSAgdGltZXM6ICdhICogJ2EgLT4gJ2F9CgkgLT4gJ2EgKiAnYgoJIC0+ICdhCSAKCiAg
ICAgIHR5cGUgKCdhLCAnYikgc2ltdWx0YW5lb3VzID0KCSB7bGF5b3V0OiAnYSAtPiBMYXlvdXQu
dCwKCSAgb25lOiAnYSwKCSAgdGltZXM6ICdhICogJ2EgLT4gJ2F9CgkgLT4gKCdhICogJ2IpIGxp
c3QKCSAtPiAnYQogICBlbmQKCnN0cnVjdHVyZSBQb3dlcjoKICAgc2lnCiAgICAgIHZhbCBwb3dl
cjogKCdhLCBQZXJ2YXNpdmUuSW50LmludCkgVHlwZXMucG93ZXIKICAgICAgdmFsIHBvd2VySW5m
OiAoJ2EsIFBlcnZhc2l2ZS5JbnRJbmYuaW50KSBUeXBlcy5wb3dlcgogICAgICB2YWwgc2ltdWx0
YW5lb3VzOiAoJ2EsIFBlcnZhc2l2ZS5JbnQuaW50KSBUeXBlcy5zaW11bHRhbmVvdXMKICAgICAg
dmFsIHNpbXVsdGFuZW91c0luZjogKCdhLCBQZXJ2YXNpdmUuSW50SW5mLmludCkgVHlwZXMuc2lt
dWx0YW5lb3VzCiAgIGVuZCA9CnN0cnVjdAoKb3BlbiBUeXBlcwoKc3RydWN0dXJlIEludCA9IFBl
cnZhc2l2ZS5JbnQKc3RydWN0dXJlIEFycmF5ID0gUGVydmFzaXZlLkFycmF5CgpmdW4gZm9yKGE6
IEludC5pbnQsIGI6IEludC5pbnQsIGYpID0KICAgbGV0IGZ1biBsb29wIGkgPSBpZiBpID0gYiB0
aGVuICgpIGVsc2UgKGYgaTsgbG9vcChpICsgMSkpCiAgIGluIGxvb3AgYQogICBlbmQKCSAKdHlw
ZSAnYSBleHBvbmVudCA9ICB7aXNaZXJvOiAnYSAtPiBib29sLAoJCSAgICAgZGl2TW9kOiAnYSAq
ICdhIC0+ICdhICogJ2EsCgkJICAgICB0d286ICdhfQoKdHlwZSAnYSBiYXNlID0ge29uZTogJ2Es
CgkJdGltZXM6ICdhICogJ2EgLT4gJ2EsCgkJbGF5b3V0OiAnYSAtPiBMYXlvdXQudH0KICAgCmZ1
biAoJ2EsICdiKSBtYWtlCiAgICh7aXNaZXJvLCBkaXZNb2QsIHR3b306ICdhIGV4cG9uZW50KQog
ICAoe29uZSwgdGltZXMsIGxheW91dH06ICdiIGJhc2UpID0KICAgbGV0CiAgICAgIHZhbCBvcCAq
ID0gdGltZXMKICAgICAgKCogUmVwZWF0ZWQgc3F1YXJpbmcuICopCiAgICAgIGZ1biBwb3dlcihi
OiAnYiwgbjogJ2EpOiAnYiA9CgkgbGV0CgkgICAgKCogVGhlIGxvb3AgaGFzIGJlZW4gY2FyZWZ1
bGx5IHVucm9sbGVkIG9uY2UgdG8gYXZvaWQgb3ZlcmZsb3cgd2hlbgoJICAgICAqICdhIGlzIGEg
Zml4ZWQgc2l6ZSBpbnRlZ2VyLgoJICAgICAqKQoJICAgIGZ1biBsb29wKGMsIGIsIG4pID0KCSAg
ICAgICAoKiBjICogYl4ybiA9IGIwXm4wICopCgkgICAgICAgaWYgaXNaZXJvIG4gdGhlbiBjIGVs
c2UgbmV4dChjLCBiICogYiwgbikKCSAgICBhbmQgbmV4dChjLCBiLCBuKSA9CgkgICAgICAgKCog
YyAqIGJebiA9IGIwXm4wICopCgkgICAgICAgbGV0IHZhbCAoZCwgbSkgPSBkaXZNb2QobiwgdHdv
KQoJICAgICAgIGluIGxvb3AoaWYgaXNaZXJvIG0gdGhlbiBjIGVsc2UgYyAqIGIsIGIsIGQpCgkg
ICAgICAgZW5kCgkgaW4gaWYgaXNaZXJvIG4KCSAgICAgICB0aGVuIG9uZQoJICAgIGVsc2UgbmV4
dChvbmUsIGIsIG4pCgkgZW5kCiAgICAgICgqIEJhc2VkIG9uIHBhZ2UgNjE4IG9mIEhhbmRib29r
IG9mIEFwcGxpZWQgQ3J5cHRvZ3JhcGh5LiAqKQogICAgICBmdW4gc2ltdWx0YW5lb3VzKGdlczog
KCdiICogJ2EpIGxpc3QpOiAnYiA9CgkgbGV0CgkgICAgZnVuIHR3b1Bvd2VyV29yZCBpIDogV29y
ZC50ID0gV29yZC48PCgwdzEsIFdvcmQuZnJvbUludCBpKQoJICAgIHZhbCB0d29Qb3dlciA9IFdv
cmQudG9JbnQgbyB0d29Qb3dlcldvcmQKCSAgICBmdW4gZG9pdCBnZXMgPQoJICAgICAgIGxldAoJ
CSAgdmFsIG4gPSBMaXN0Lmxlbmd0aCBnZXMKCQkgIHZhbCB0YWJsZVNpemUgPSB0d29Qb3dlciBu
CgkJICB2YWwgdGFibGUgPSBBcnJheS5hcnJheSh0YWJsZVNpemUsIG9uZSkKCQkgIHZhbCBfID0K
CQkgICAgIExpc3QuZm9yZWFjaGkKCQkgICAgIChnZXMsIGZuIChpLCAoZywgXykpID0+CgkJICAg
ICAgbGV0IHZhbCBtaW4gPSB0d29Qb3dlciBpCgkJICAgICAgaW4gZm9yKG1pbiwgdHdvUG93ZXIo
aSArIDEpLCBmbiBpID0+CgkJCSAgICAgQXJyYXkudXBkYXRlKHRhYmxlLCBpLAoJCQkJCSAgZyAq
IEFycmF5LnN1Yih0YWJsZSwgaSAtIG1pbikpKQoJCSAgICAgIGVuZCkKCQkgIGZ1biBsb29wKGV3
czogKCdhICogV29yZC50KSBsaXN0LCBHczogJ2IgbGlzdCk6ICdiIGxpc3QgPQoJCSAgICAgY2Fz
ZSBld3Mgb2YKCQkJW10gPT4gR3MKCQkgICAgICB8IF8gPT4KCQkJICAgbGV0CgkJCSAgICAgIHZh
bCAoZXdzLCB3KSA9CgkJCQkgTGlzdC5mb2xkCgkJCQkgKGV3cywgKFtdLCAwdzA6IFdvcmQudCks
CgkJCQkgIGZuICgoZSwgdycpLCAoZXdzLCB3KSkgPT4KCQkJCSAgbGV0CgkJCQkgICAgIHZhbCAo
ZSwgbSkgPSBkaXZNb2QoZSwgdHdvKQoJCQkJICAgICB2YWwgZXdzID0KCQkJCQlpZiBpc1plcm8g
ZSB0aGVuIGV3cyBlbHNlIChlLCB3JykgOjogZXdzCgkJCQkgICAgIHZhbCB3ID0KCQkJCQlpZiBp
c1plcm8gbSB0aGVuIHcgZWxzZSBXb3JkLm9yYih3JywgdykKCQkJCSAgaW4gKGV3cywgdykKCQkJ
CSAgZW5kKQoJCQkgICBpbiBsb29wKGV3cywgQXJyYXkuc3ViKHRhYmxlLCBXb3JkLnRvSW50IHcp
IDo6IEdzKQoJCQkgICBlbmQKCQkgIHZhbCBld3MgPSBMaXN0Lm1hcGkgKGdlcywgZm4gKGksIChf
LCBlKSkgPT4KCQkJCSAgICAgICAoZSwgdHdvUG93ZXJXb3JkIGkpKQoJCSAgdmFsIEdzID0gbG9v
cCAoZXdzLCBbXSkKCSAgICAgICBpbiBMaXN0LmZvbGQgKEdzLCBvbmUsIGZuIChHLCBBKSA9PiBB
ICogQSAqIEcpCgkgICAgICAgZW5kCgkgICAgdmFsIHdpbmRvdyA9IDkKCSAgICBmdW4gc3BsaXQg
bCA9CgkgICAgICAgbGV0CgkJICBmdW4gbG9vcChsLCBuLCBhYykgPQoJCSAgICAgaWYgbiA9IDAK
CQkJdGhlbiAocmV2IGFjLCBsKQoJCSAgICAgZWxzZSAoY2FzZSBsIG9mCgkJCSAgICAgIFtdID0+
IChyZXYgYWMsIFtdKQoJCQkgICAgfCB4IDo6IGwgPT4gbG9vcChsLCBuIC0gMSwgeCA6OiBhYykp
CgkgICAgICAgaW4gbG9vcChsLCB3aW5kb3csIFtdKQoJICAgICAgIGVuZAoJICAgIGZ1biBsb29w
KGdlczogKCdiICogJ2EpIGxpc3QsIGFjOiAnYik6ICdiID0KCSAgICAgICBjYXNlIGdlcyBvZgoJ
CSAgW10gPT4gYWMKCQl8IFsoZywgZSldID0+IGFjICogcG93ZXIoZywgZSkKCQl8IF8gPT4gbGV0
IHZhbCAoZ2VzLCByZXN0KSA9IHNwbGl0IGdlcwoJCSAgICAgICBpbiBsb29wKHJlc3QsIGFjICog
ZG9pdCBnZXMpCgkJICAgICAgIGVuZAoJIGluIGxvb3AoZ2VzLCBvbmUpCgkgZW5kCiAgIGluIHtw
b3dlciA9IHBvd2VyLCBzaW11bHRhbmVvdXMgPSBzaW11bHRhbmVvdXN9CiAgIGVuZAoKdmFsIGlu
dEV4cDogSW50LmludCBleHBvbmVudCA9CiAgIHtpc1plcm8gPSBmbiBuID0+IG4gPSAwLAogICAg
ZGl2TW9kID0gZm4gKGEsIGIpID0+IChhIGRpdiBiLCBhIG1vZCBiKSwKICAgIHR3byA9IDJ9Cgpm
dW4gcG93ZXIgeiA9ICNwb3dlcihtYWtlIGludEV4cCB6KQpmdW4gc2ltdWx0YW5lb3VzIHogPSAj
c2ltdWx0YW5lb3VzKG1ha2UgaW50RXhwIHopCgp2YWwgaW50SW5mRXhwID0KICAgbGV0IG9wZW4g
UGVydmFzaXZlLkludEluZgogICAgICB2YWwgemVybyA9IGZyb21JbnQgMAogICBpbiB7aXNaZXJv
ID0gZm4gbiA9PiBuID0gemVybywKICAgICAgIGRpdk1vZCA9IGRpdk1vZCwKICAgICAgIHR3byA9
IGZyb21JbnQgMn0KICAgZW5kCgpmdW4gcG93ZXJJbmYgeiA9ICNwb3dlcihtYWtlIGludEluZkV4
cCB6KQpmdW4gc2ltdWx0YW5lb3VzSW5mIHogPSAjc2ltdWx0YW5lb3VzKG1ha2UgaW50SW5mRXhw
IHopCgplbmQKKCogc3RvcCBvZiBsaWIvbWx0b24vYmFzaWMvcG93ZXIuc21sICopCigqIHN0YXJ0
IG9mIGxpYi9tbHRvbi9iYXNpYy9zdHJpbmctbWFwLnNpZyAqKQpzaWduYXR1cmUgU1RSSU5HX01B
UCA9IAogICBzaWcKICAgICAgdHlwZSAnYSB0CgogICAgICB2YWwgY2xlYXI6ICdhIHQgLT4gdW5p
dAogICAgICB2YWwgZG9tYWluOiAnYSB0IC0+IHN0cmluZyBsaXN0CiAgICAgIHZhbCBmb3JlYWNo
OiAnYSB0ICogKCdhIC0+IHVuaXQpIC0+IHVuaXQKICAgICAgdmFsIGtlZXBBbGw6ICdhIHQgKiAo
J2EgLT4gYm9vbCkgLT4gc3RyaW5nIGxpc3QKICAgICAgdmFsIGxvb2t1cDogJ2EgdCAqIHN0cmlu
ZyAtPiAnYQogICAgICB2YWwgbmV3OiAodW5pdCAtPiAnYSkgLT4gJ2EgdAogICBlbmQKKCogc3Rv
cCBvZiBsaWIvbWx0b24vYmFzaWMvc3RyaW5nLW1hcC5zaWcgKikKKCogc3RhcnQgb2YgbGliL21s
dG9uL2Jhc2ljL29yZGVyMC5zaWcgKikKc2lnbmF0dXJlIE9SREVSMCA9CiAgIHNpZwogICAgICB0
eXBlIHQKCiAgICAgIHZhbCBjb21wYXJlOiB0ICogdCAtPiBSZWxhdGlvbi50CiAgICAgIHZhbCBl
cXVhbHM6IHQgKiB0IC0+IGJvb2wKICAgICAgdmFsIDwgOiB0ICogdCAtPiBib29sCiAgICAgIHZh
bCA8PSA6IHQgKiB0IC0+IGJvb2wKICAgICAgdmFsID4gOiB0ICogdCAtPiBib29sCiAgICAgIHZh
bCA+PSA6IHQgKiB0IC0+IGJvb2wKICAgICAgdmFsIG1heDogdCAqIHQgLT4gdAogICAgICB2YWwg
bWluOiB0ICogdCAtPiB0CiAgIGVuZAooKiBzdG9wIG9mIGxpYi9tbHRvbi9iYXNpYy9vcmRlcjAu
c2lnICopCigqIHN0YXJ0IG9mIGxpYi9tbHRvbi9iYXNpYy9vcmRlci5zaWcgKikKc2lnbmF0dXJl
IE9SREVSID0KICAgc2lnCiAgICAgIGluY2x1ZGUgT1JERVIwCiAgICAgIHZhbCBsYXlvdXQ6IHQg
LT4gTGF5b3V0LnQKICAgZW5kCigqIHN0b3Agb2YgbGliL21sdG9uL2Jhc2ljL29yZGVyLnNpZyAq
KQooKiBzdGFydCBvZiBsaWIvbWx0b24vYmFzaWMvdGltZS5zaWcgKikKc2lnbmF0dXJlIFRJTUUg
PSAKICAgc2lnCiAgICAgIHR5cGUgaW50ID0gUGVydmFzaXZlLkxhcmdlSW50LmludAoKICAgICAg
aW5jbHVkZSBPUkRFUgoKICAgICAgdHlwZSB0aW1lcyA9CgkgIHsKCSAgICBzZWxmOiAgICAge3V0
aW1lOiB0LCAoKiB1c2VyIHRpbWUgb2YgcHJvY2VzcyAqKQoJCSAgICAgICBzdGltZTogdCAgKCog
c3lzdGVtIHRpbWUgb2YgcHJvY2VzcyAqKQoJCSAgICAgICB9LAoJICAgIGNoaWxkcmVuOiB7dXRp
bWU6IHQsICgqIHVzZXIgdGltZSBvZiB0ZXJtaW5hdGVkIGNoaWxkIHByb2Nlc3NlcyAqKQoJCSAg
ICAgICBzdGltZTogdCAgKCogc3lzdGVtIHRpbWUgb2YgdGVybWluYXRlZCBjaGlsZCBwcm9jZXNz
ZXMgKikKCQkgICAgICAgfSwKCSAgICBnYzogICAgICAge3V0aW1lOiB0LCAoKiB1c2VyIHRpbWUg
b2YgZ2MgKikKCQkgICAgICAgc3RpbWU6IHQgICgqIHN5c3RlbSB0aW1lIG9mIGdjICopCgkJICAg
ICAgIH0KCSAgIH0KCiAgICAgIHZhbCArIDogdCAqIHQgLT4gdAogICAgICB2YWwgLSA6IHQgKiB0
IC0+IHQKICAgICAgdmFsIGRheXM6IGludCAtPiB0CiAgICAgIHZhbCBmcm9tTWljcm9zZWNvbmRz
OiBpbnQgLT4gdAogICAgICB2YWwgZnJvbU1pbGxpc2Vjb25kczogaW50IC0+IHQKICAgICAgdmFs
IGZyb21SZWFsOiByZWFsIC0+IHQKICAgICAgdmFsIGhvdXJzOiBpbnQgLT4gdAogICAgICB2YWwg
bWludXRlczogaW50IC0+IHQKICAgICAgdmFsIG5vdzogdW5pdCAtPiB0CiAgICAgIHZhbCBvdXRw
dXQ6IHQgKiBPdXQudCAtPiB1bml0CiAgICAgIHZhbCBzZWNvbmRzOiBpbnQgLT4gdAogICAgICB2
YWwgdGltZXM6IHVuaXQgLT4gdGltZXMgCiAgICAgIHZhbCB0aW1lVGh1bms6ICh1bml0IC0+IHVu
aXQpIC0+IHQKICAgICAgdmFsIHRvTWljcm9zZWNvbmRzOiB0IC0+IGludAogICAgICB2YWwgdG9N
aWxsaXNlY29uZHM6IHQgLT4gaW50CiAgICAgIHZhbCB0b1JlYWw6IHQgLT4gcmVhbAogICAgICB2
YWwgdG9TZWNvbmRzOiB0IC0+IGludAogICAgICB2YWwgdG9TdHJpbmc6IHQgLT4gc3RyaW5nCiAg
ICAgIHZhbCB3ZWVrczppbnQgLT4gdAogICAgICB2YWwgeWVhcnM6IGludCAtPiB0CiAgICAgIHZh
bCB6ZXJvOiB0CiAgZW5kCigqIHN0b3Agb2YgbGliL21sdG9uL2Jhc2ljL3RpbWUuc2lnICopCigq
IHN0YXJ0IG9mIGxpYi9tbHRvbi9iYXNpYy90aW1lLnNtbCAqKQpzdHJ1Y3R1cmUgVGltZTogVElN
RSA9IApzdHJ1Y3QKCmxvY2FsCiAgIG9wZW4gUGVydmFzaXZlCmluCiAgIG9wZW4gTGFyZ2VJbnQg
VGltZQogICBzdHJ1Y3R1cmUgTGFyZ2VJbnQgPSBMYXJnZUludAplbmQKCnR5cGUgdCA9IHRpbWUK
CnR5cGUgdGltZXMgPQogICB7CiAgICBzZWxmOiB7dXRpbWU6IHQsIHN0aW1lOiB0fSwKICAgIGNo
aWxkcmVuOiB7dXRpbWU6IHQsIHN0aW1lOiB0fSwKICAgIGdjOiB7dXRpbWU6IHQsIHN0aW1lOiB0
fQogICAgfQoKZnVuIHRpbWVzICgpOiB0aW1lcyA9CiAgIGxldAogICAgIHZhbCB7c2VsZiwgY2hp
bGRyZW4sIGdjfSA9IE1MdG9uLlJVc2FnZS5ydXNhZ2UgKCkKICAgICBmdW4gZG9pdCAoe3V0aW1l
LCBzdGltZSwgLi4ufSA6IE1MdG9uLlJVc2FnZS50KQogICAgICAgPSB7dXRpbWUgPSB1dGltZSwg
c3RpbWUgPSBzdGltZX0KICAgaW4KICAgICB7c2VsZiA9IGRvaXQgc2VsZiwKICAgICAgY2hpbGRy
ZW4gPSBkb2l0IGNoaWxkcmVuLAogICAgICBnYyA9IGRvaXQgZ2N9CiAgIGVuZAoKdmFsIHplcm8g
PSBmcm9tUmVhbCAwLjAKICAgCnZhbCBlcXVhbHMgPSBvcCA9Cgp2YWwgc2Vjb25kcyA9IGZyb21T
ZWNvbmRzICAgCgpmdW4gbWludXRlcyBtID0gc2Vjb25kcyAobSAqIGZyb21JbnQgNjApCiAgIApm
dW4gaG91cnMgaCA9IG1pbnV0ZXMgKGggKiBmcm9tSW50IDYwKQoKZnVuIGRheXMgZCA9IGhvdXJz
IChkICogTGFyZ2VJbnQuZnJvbUludCAyNCkKCmZ1biB3ZWVrcyB3ID0gZGF5cyAodyAqIExhcmdl
SW50LmZyb21JbnQgNykKCmZ1biB5ZWFycyB5ID0gZGF5cyAoeSAqIExhcmdlSW50LmZyb21JbnQg
MzY1KQogICAKdmFsIHttaW4sIG1heCwgLi4ufSA9IFJlbGF0aW9uLmNvbXBhcmUgY29tcGFyZQoK
dmFsIGxheW91dCA9IExheW91dC5zdHIgbyB0b1N0cmluZwoKZnVuIG91dHB1dCAodCwgb3V0KSA9
IE91dC5vdXRwdXQgKG91dCwgdG9TdHJpbmcgdCkKCmZ1biB0aW1lVGh1bmsgKHRoOiB1bml0IC0+
IHVuaXQpOiB0ID0KICAgbGV0CiAgICAgIHZhbCB7c2VsZiA9IHt1dGltZSwgc3RpbWV9LCAuLi59
ID0gdGltZXMgKCkKICAgICAgdmFsIHQgPSB1dGltZSArIHN0aW1lCiAgICAgIHZhbCBfID0gdGgg
KCkKICAgICAgdmFsIHtzZWxmID0ge3V0aW1lLCBzdGltZX0sIC4uLn0gPSB0aW1lcyAoKQogICAg
ICB2YWwgdCcgPSB1dGltZSArIHN0aW1lCiAgIGluIHQnIC0gdAogICBlbmQKCmVuZAooKiBzdG9w
IG9mIGxpYi9tbHRvbi9iYXNpYy90aW1lLnNtbCAqKQooKiBzdGFydCBvZiBsaWIvbWx0b24vYmFz
aWMvY29tcHV0YXRpb24uc2lnICopCnNpZ25hdHVyZSBDT01QVVRBVElPTiA9IAogICBzaWcKICAg
ICAgc3RydWN0dXJlIFRpbWU6IFRJTUUKCSAKICAgICAgdHlwZSB0CgogICAgICB2YWwga2VlcEFs
bDogdCAqIChzdHJpbmcgLT4gYm9vbCkgLT4gdAogICAgICB2YWwgaW5zcGVjdDogdCAtPiB1bml0
CiAgICAgIHZhbCBvdXRwdXQ6IHQgKiBPdXQudCAtPiB1bml0CiAgICAgIHZhbCBvdXRwdXRDYWxs
czogdCAqIE91dC50IC0+IHVuaXQKICAgICAgdmFsIG91dHB1dFRpbWVzOiB0ICogT3V0LnQgLT4g
dW5pdAogICAgICB2YWwgdGltZTogdCAtPiBUaW1lLnQKICAgZW5kCigqIHN0b3Agb2YgbGliL21s
dG9uL2Jhc2ljL2NvbXB1dGF0aW9uLnNpZyAqKQooKiBzdGFydCBvZiBsaWIvbWx0b24vYmFzaWMv
aW50ZXJtZWRpYXRlLWNvbXB1dGF0aW9uLnNpZyAqKQpzaWduYXR1cmUgSU5URVJNRURJQVRFX0NP
TVBVVEFUSU9OX1NUUlVDVFMgPQogICBzaWcKICAgZW5kCgpzaWduYXR1cmUgSU5URVJNRURJQVRF
X0NPTVBVVEFUSU9OID0gCiAgIHNpZwogICAgICBpbmNsdWRlIElOVEVSTUVESUFURV9DT01QVVRB
VElPTl9TVFJVQ1RTCiAgICAgIAogICAgICBzdHJ1Y3R1cmUgQ29tcHV0YXRpb246IENPTVBVVEFU
SU9OCiAgICAgIAogICAgICB0eXBlIHQKCiAgICAgIHZhbCBlbXB0eTogdW5pdCAtPiB0CiAgICAg
IHZhbCBjYWxsOiB0ICogc3RyaW5nICogKHVuaXQgLT4gTGF5b3V0LnQpIC0+IHVuaXQKICAgICAg
dmFsIHJhaXNlZTogdCAqIFRpbWUudCBvcHRpb24gLT4gdW5pdAogICAgICB2YWwgcmV0dXJuOiB0
ICogKHVuaXQgLT4gTGF5b3V0LnQpICogVGltZS50IG9wdGlvbiAtPiB1bml0CiAgICAgIHZhbCBm
aW5pc2g6IHQgLT4gQ29tcHV0YXRpb24udAogICAgICB2YWwgYXRUb3BMZXZlbDogdCAtPiBib29s
CiAgIGVuZAooKiBzdG9wIG9mIGxpYi9tbHRvbi9iYXNpYy9pbnRlcm1lZGlhdGUtY29tcHV0YXRp
b24uc2lnICopCigqIHN0YXJ0IG9mIGxpYi9tbHRvbi9iYXNpYy9pbnRlcm1lZGlhdGUtY29tcHV0
YXRpb24uc21sICopCnN0cnVjdHVyZSBJbnRlcm1lZGlhdGVDb21wdXRhdGlvbjogSU5URVJNRURJ
QVRFX0NPTVBVVEFUSU9OID0gCnN0cnVjdAoKc3RydWN0dXJlIEluID0gSW4wCnN0cnVjdHVyZSBJ
bnQgPSBQZXJ2YXNpdmUuSW50CgpzdHJ1Y3R1cmUgUmVzdWx0ID0KICAgc3RydWN0CiAgICAgIGRh
dGF0eXBlIHQgPQoJIFJhaXNlCiAgICAgICB8IFJldHVybiBvZiB1bml0IC0+IExheW91dC50Cgog
ICAgICBsb2NhbCBvcGVuIExheW91dAogICAgICBpbgoJIGZ1biBsYXlvdXQgciA9CgkgICAgY2Fz
ZSByIG9mCgkgICAgICAgUmFpc2UgPT4gc3RyICJyYWlzZSIKCSAgICAgfCBSZXR1cm4gZiA9PiBm
KCkKICAgICAgZW5kCiAgIGVuZAoKc3RydWN0dXJlIENvbXB1dGF0aW9uID0KICAgc3RydWN0CiAg
ICAgIHN0cnVjdHVyZSBUaW1lID0gVGltZQoJIAogICAgICBkYXRhdHlwZSB0ID0gVCBvZiBjYWxs
UmVzdWx0IGxpc3QKICAgICAgd2l0aHR5cGUgY2FsbFJlc3VsdCA9IHtuYW1lOiBzdHJpbmcsCgkJ
CSAgICAgbGF5b3V0QXJnOiB1bml0IC0+IExheW91dC50LAoJCQkgICAgIHRpbWU6IFRpbWUudCBv
cHRpb24sCgkJCSAgICAgYm9keTogdCwKCQkJICAgICByZXN1bHQ6IFJlc3VsdC50fQoKICAgICAg
c3RydWN0dXJlIENSID0KCSBzdHJ1Y3QKCSAgICBvcGVuIExheW91dAoKCSAgICB0eXBlIHQgPSBj
YWxsUmVzdWx0CgoJICAgIGZ1biBsYXlvdXROYW1lKHtuYW1lLCAuLi59OnQpID0gc3RyKG5hbWUg
XiAiICIpCgkgICAgICAgCgkgICAgZnVuIGxheW91dENhbGwoY3IgYXMge2xheW91dEFyZywgLi4u
fTp0KSA9CgkgICAgICAgc2VxW2xheW91dE5hbWUgY3IsIGxheW91dEFyZygpXQoKCSAgICB2YWwg
ZGFycm93ID0gc3RyICI9PT4gIgoJICAgICAgIAoJICAgIGZ1biBsYXlvdXREYXJyb3cgXyA9IGRh
cnJvdwoJICAgICAgIAoJICAgIGZ1biBsYXlvdXRSZXN1bHQoe3Jlc3VsdCwgLi4ufTp0KSA9Cgkg
ICAgICAgUmVzdWx0LmxheW91dCByZXN1bHQKCSAgICAgICAKCSAgICBmdW4gbGF5b3V0VGltZSh7
dGltZSwgLi4ufTp0KSA9CgkgICAgICAgY2FzZSB0aW1lIG9mCgkJICBTT01FIHQgPT4gVGltZS5s
YXlvdXQgdAoJCXwgTk9ORSA9PiBlbXB0eQoJCSAgICAgCgkgICAgZnVuIGxheW91dFJldHVybih7
cmVzdWx0LCAuLi59OnQpID0KCSAgICAgICBzZXFbZGFycm93LCBSZXN1bHQubGF5b3V0IHJlc3Vs
dF0KCSBlbmQKCiAgICAgIGZ1biB0aW1lKFQgY3JzKSA9IExpc3QuZm9sZChjcnMsIFRpbWUuemVy
bywgZm4gKHt0aW1lLCAuLi59LCB0KSA9PgoJCQkJICBjYXNlIHRpbWUgb2YKCQkJCSAgICAgTk9O
RSA9PiB0CgkJCQkgICB8IFNPTUUgdCcgPT4gVGltZS4rKHQsIHQnKSkKCiAgICAgIGZ1biBrZWVw
QWxsKGMsIHByZWQpID0KCSBsZXQKCSAgICBmdW4ga2VlcEFsbChUIGNycykgPQoJICAgICAgIFQo
TGlzdC5mb2xkcihjcnMsIFtdLAoJCQkgICAgZm4gKHtuYW1lLCBib2R5LCBsYXlvdXRBcmcsIHRp
bWUsIHJlc3VsdH0sIGNycykgPT4KCQkJICAgIGxldCB2YWwgYm9keSBhcyBUIGNycycgPSBrZWVw
QWxsIGJvZHkKCQkJICAgIGluIGlmIHByZWQgbmFtZQoJCQkJICB0aGVuIHtuYW1lID0gbmFtZSwg
Ym9keSA9IGJvZHksCgkJCQkJbGF5b3V0QXJnID0gbGF5b3V0QXJnLCB0aW1lID0gdGltZSwKCQkJ
CQlyZXN1bHQgPSByZXN1bHR9IDo6IGNycwoJCQkgICAgICAgZWxzZSBjcnMnIEAgY3JzCgkJCSAg
ICBlbmQpKQoJIGluIGtlZXBBbGwgYwoJIGVuZAoKICAgICAgZnVuIG1ha2VPdXRwdXRzKHByZSwg
cG9zdCwgZmlsdGVyKSBvdXQgPQoJIGxldCB2YWwgaW5kZW50YXRpb24gPSByZWYgMAoJICAgIHZh
bCBzcGFjZSA9IDMKCSAgICBmdW4gbGVmdCgpID0gaW5kZW50YXRpb24gOj0gIWluZGVudGF0aW9u
IC0gc3BhY2UKCSAgICBmdW4gcmlnaHQoKSA9IGluZGVudGF0aW9uIDo9ICFpbmRlbnRhdGlvbiAr
IHNwYWNlCgkgICAgZnVuIHByaW50IGwgPSAoTGF5b3V0Lm91dHB1dChMYXlvdXQuaW5kZW50KGws
ICFpbmRlbnRhdGlvbiksIG91dCkKCQkJICAgOyBPdXQubmV3bGluZSBvdXQpCgkgICAgZnVuIG91
dHB1dChUIGNycykgPSBMaXN0LmZvcmVhY2goY3JzLCBvdXRwdXRDcikKCSAgICBhbmQgb3V0cHV0
Q3IoY3IgYXMge2JvZHksIC4uLn0pID0KCSAgICAgICBsZXQgdmFsIHByaW50Q3IgPSBmaWx0ZXIg
Y3IKCSAgICAgICBpbiBpZiBwcmludENyCgkJICAgICB0aGVuIChwcmludChwcmUgY3IpOyByaWdo
dCgpKQoJCSAgZWxzZSAoKQoJCSAgICAgOyBvdXRwdXQgYm9keQoJCSAgICAgOyBpZiBwcmludENy
IHRoZW4gKGxlZnQoKTsgcHJpbnQocG9zdCBjcikpIGVsc2UgKCkKCSAgICAgICBlbmQKCSBpbiAo
b3V0cHV0LCBvdXRwdXRDcikKCSBlbmQKICAgICAgCiAgICAgIHZhbCBtYWtlT3V0cHV0ID0KCSBt
YWtlT3V0cHV0cyhDUi5sYXlvdXRDYWxsLCBDUi5sYXlvdXRSZXR1cm4sIGZuIF8gPT4gdHJ1ZSkK
ICAgICAgZnVuIG91dHB1dChjLCBvdXQpID0gIzEobWFrZU91dHB1dCBvdXQpIGMKICAgICAgZnVu
IG91dHB1dENyKGNyLCBvdXQpID0gIzIobWFrZU91dHB1dCBvdXQpIGNyCgogICAgICB2YWwgbWFr
ZU91dHB1dENhbGxzID0KCSBtYWtlT3V0cHV0cyhDUi5sYXlvdXROYW1lLCBDUi5sYXlvdXREYXJy
b3csIGZuIF8gPT4gdHJ1ZSkKICAgICAgZnVuIG91dHB1dENhbGxzKGMsIG91dCkgPSAjMShtYWtl
T3V0cHV0Q2FsbHMgb3V0KSBjCiAgICAgIGZ1biBvdXRwdXRDckNhbGxzKGNyLCBvdXQpID0gIzIo
bWFrZU91dHB1dENhbGxzIG91dCkgY3IKCiAgICAgIGZ1biBvdXRwdXRUaW1lcyhjLCBvdXQpID0K
CSAjMShtYWtlT3V0cHV0cyhDUi5sYXlvdXROYW1lLCBDUi5sYXlvdXRUaW1lLAoJCQlmbiB7dGlt
ZSwgLi4ufSA9PgoJCQljYXNlIHRpbWUgb2YKCQkJICAgTk9ORSA9PiBmYWxzZQoJCQkgfCBTT01F
IF8gPT4gdHJ1ZSkgb3V0KSBjCgogICAgICBsb2NhbAoJIHZhbCBvdXQgPSBPdXQuZXJyb3IKCSB2
YWwgcHJpbnQgPSBPdXQub3V0cHV0YyBvdXQKCgkgc3RydWN0dXJlIEludCA9CgkgICAgc3RydWN0
CgkgICAgICAgb3BlbiBJbnQKCgkgICAgICAgZXhjZXB0aW9uIElucHV0CgkgICAgICAgZnVuIGlu
cHV0IGkgPSAoSW4uaWdub3JlU3BhY2VzIGkKCQkJICAgICAgOyAoY2FzZSBmcm9tU3RyaW5nKElu
LmlucHV0VG9TcGFjZSBpKSBvZgoJCQkJICAgIE5PTkUgPT4gcmFpc2UgSW5wdXQKCQkJCSAgfCBT
T01FIG4gPT4gbikpCgoJICAgICAgIGZ1biBpbnB1dEJldHdlZW57aW5zLCBlcnJvciwgbWluLCBt
YXh9ID0KCQkgIGxldAoJCSAgICAgZnVuIGxvb3AoKSA9CgkJCWxldCBmdW4gY29udGludWUoKSA9
IChlcnJvcigpIDsgbG9vcCgpKQoJCQlpbiBsZXQgdmFsIG4gPSBpbnB1dCBpbnMKCQkJICAgaW4g
aWYgbWluIDw9IG4gYW5kYWxzbyBuIDw9IG1heAoJCQkJIHRoZW4gbgoJCQkgICAgICBlbHNlIGNv
bnRpbnVlKCkKCQkJICAgZW5kIGhhbmRsZSBJbnB1dCA9PiBjb250aW51ZSgpCgkJCWVuZAoJCSAg
aW4gbG9vcCgpCgkJICBlbmQKCgkgICAgICAgdmFsIGxheW91dCA9IExheW91dC5zdHIgbyB0b1N0
cmluZwoJICAgIGVuZAoKCSBmdW4gaW5wdXRCZXR3ZWVuKG1pbiwgbWF4KSA9CgkgICBJbnQuaW5w
dXRCZXR3ZWVue2lucyA9IEluLnN0YW5kYXJkLAoJCQkgICAgZXJyb3IgPSBmbiAoKSA9PiBPdXQu
b3V0cHV0KG91dCwgIj8gIiksCgkJCSAgICBtaW4gPSBtaW4sIG1heCA9IG1heH0KCgkgZnVuIGNo
b29zZSAoY2hvaWNlczogKHN0cmluZyAqICdhKSBsaXN0KTogJ2EgPQoJICAgIGxldAoJICAgICAg
IHZhbCBuID0KCQkgIExpc3QuZm9sZChjaG9pY2VzLCAwLCBmbiAoKG5hbWUsIHRoKSxuKSA9PgoJ
CQkgICAgKExheW91dC5vdXRwdXQoSW50LmxheW91dCBuLCBvdXQpCgkJCSAgICAgOyBwcmludChj
b25jYXRbIi4gIiwgbmFtZSwgIlxuIl0pCgkJCSAgICAgOyBuKzEpKQoJICAgICAgIHZhbCBfID0g
T3V0Lm91dHB1dChvdXQsICI/ICIpCgkgICAgICAgdmFsIG0gPSBpbnB1dEJldHdlZW4oMCxuLTEp
CgkgICAgaW4gIzIoTGlzdC5udGgoY2hvaWNlcywgbSkpCgkgICAgZW5kCgoJIGZ1biBjaG9vc2VU
aHVuayBjcyA9IGNob29zZSBjcyAoKQoKCSBleGNlcHRpb24gUXVpdAoJIGV4Y2VwdGlvbiBCYWNr
CgkgCgkgdmFsIHN0YW5kYXJkQ2hvaWNlcyA9IFsoInF1aXQiLCBmbiAoKSA9PiByYWlzZSBRdWl0
KSwKCQkJCSgiYmFjayIsIGZuICgpID0+IHJhaXNlIEJhY2spXQoJIAoJIGZ1biBpbnNwZWN0KGMg
YXMgVCBjcnMpID0KCSAgICBjYXNlIGNycyBvZgoJICAgICAgIFtjcl0gPT4gaW5zcGVjdENyIGNy
CgkgICAgIHwgXyA9PgoJCSAgbGV0CgkJICAgICBmdW4gbG9vcCgpID0KCQkJKGNob29zZVRodW5r
CgkJCSAoc3RhbmRhcmRDaG9pY2VzCgkJCSAgQCBbKCJza2lwIHJhaXNlcyIsIGZuICgpID0+CgkJ
CSAgICAgIChza2lwUmFpc2VzIGM7IHJhaXNlIEJhY2spKSwKCQkJICAgICAoIm91dHB1dCIsIGZu
ICgpID0+IG91dHB1dChjLCBvdXQpKSwKCQkJICAgICAoIm91dHB1dCBjYWxscyIsCgkJCSAgICAg
IGZuICgpID0+IG91dHB1dENhbGxzKGMsIG91dCkpXQoJCQkgIEAgY2hvaWNlcyBjKQoJCQkgOyBs
b29wKCkpCgkJICBpbiBsb29wKCkgaGFuZGxlIEJhY2sgPT4gKCkKCQkgIGVuZAoJIGFuZCBjaG9p
Y2VzKGMgYXMgVCBjcnMpID0KCSAgICBMaXN0Lm1hcChjcnMsIGZuIGNyIGFzIHtuYW1lLCAuLi59
ID0+CgkJICAgICAoIiAgIiBeIG5hbWUsIGZuICgpID0+IGluc3BlY3RDciBjcikpCgkgYW5kIGlu
c3BlY3RDcihjciBhcyB7bmFtZSwgbGF5b3V0QXJnLCBib2R5LCByZXN1bHQsIHRpbWV9KSA9Cgkg
ICAgKHByaW50KGNvbmNhdFsiQ2FsbCB0byAiLCBuYW1lLCAiXG4iXSkKCSAgICAgOyBsZXQKCQkg
IGZ1biBsb29wKCkgPQoJCSAgICAgKGNob29zZVRodW5rCgkJICAgICAgKHN0YW5kYXJkQ2hvaWNl
cwoJCSAgICAgICBAIFsoInNraXAgcmFpc2VzIiwgZm4gKCkgPT4KCQkJICAgKHNraXBSYWlzZXND
ciBjcjsgcmFpc2UgQmFjaykpLAoJCQkgICgib3V0cHV0IiwgZm4gKCkgPT4KCQkJICAgb3V0cHV0
Q3IoY3IsIG91dCkpLAoJCQkgICgib3V0cHV0IGNhbGxzIiwgZm4gKCkgPT4KCQkJICAgb3V0cHV0
Q3JDYWxscyhjciwgb3V0KSksCgkJCSAgKCJhcmd1bWVudCIsIGZuICgpID0+CgkJCSAgIChMYXlv
dXQub3V0cHV0KGxheW91dEFyZygpLCBvdXQpCgkJCSAgICA7IE91dC5uZXdsaW5lIG91dCkpLAoJ
CQkgICgicmVzdWx0IiwgZm4gKCkgPT4KCQkJICAgKExheW91dC5vdXRwdXQoUmVzdWx0LmxheW91
dCByZXN1bHQsIG91dCkKCQkJICAgIDsgT3V0Lm5ld2xpbmUgb3V0KSldCgkJICAgICAgIEAgY2hv
aWNlcyBib2R5KQoJCSAgICAgIDsgbG9vcCgpKQoJICAgICAgIGluIGxvb3AoKSBoYW5kbGUgQmFj
ayA9PiAoKQoJICAgICAgIGVuZCkKCSBhbmQgc2tpcFJhaXNlcyhjIGFzIFQgY3JzKSA9CgkgICAg
Y2FzZSBjcnMgb2YKCSAgICAgICBbXSA9PiAoKQoJICAgICB8IF8gPT4gKHNraXBSYWlzZXNDcihM
aXN0Lmxhc3QgY3JzKQoJCSAgICAgOyBpbnNwZWN0IGMpCgkgYW5kIHNraXBSYWlzZXNDcihjciBh
cyB7cmVzdWx0LCBib2R5LCAuLi59KSA9CgkgICAgKGNhc2UgcmVzdWx0IG9mCgkJUmVzdWx0LlJh
aXNlID0+IHNraXBSYWlzZXMgYm9keQoJICAgICAgfCBSZXN1bHQuUmV0dXJuIF8gPT4gKCkKICAg
ICAgICAgICAgIDsgaW5zcGVjdENyIGNyKQogICAgICBpbiB2YWwgaW5zcGVjdCA9IGZuIGMgPT4g
aW5zcGVjdCBjIGhhbmRsZSBRdWl0ID0+ICgpCiAgICAgIGVuZCAgICAgIAogICAKICAgZW5kCgoo
Ki0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSopCigq
ICAgICAgICAgICAgICAgICAgIE1haW4gRGF0YXR5cGUgICAgICAgICAgICAgICAgICAgKikKKCot
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qKQoKZGF0
YXR5cGUgdCA9CiAgIFQgb2Yge2NhbGxzOiB7bmFtZTogc3RyaW5nLAoJCSAgbGF5b3V0QXJnOiB1
bml0IC0+IExheW91dC50LAoJCSAgcHJldjogQ29tcHV0YXRpb24uY2FsbFJlc3VsdCBsaXN0fSBs
aXN0IHJlZiwKCSBhZnRlcjogQ29tcHV0YXRpb24uY2FsbFJlc3VsdCBsaXN0IHJlZn0KCmZ1biBl
bXB0eSgpID0gVHtjYWxscyA9IHJlZiBbXSwKCQlhZnRlciA9IHJlZiBbXX0KCmZ1biBhdFRvcExl
dmVsKFR7Y2FsbHMsIC4uLn0pID0gTGlzdC5pc0VtcHR5KCFjYWxscykKCSAgICAKZnVuIGNhbGwo
VHtjYWxscywgYWZ0ZXJ9LG5hbWUsIGxheW91dEFyZykgPQogICAoTGlzdC5wdXNoKGNhbGxzLCB7
bmFtZSA9IG5hbWUsIGxheW91dEFyZyA9IGxheW91dEFyZywgcHJldiA9ICFhZnRlcn0pCiAgICA7
IGFmdGVyIDo9IFtdKQogICAKZnVuIHJldHVybihUe2NhbGxzLCBhZnRlcn0sIHJlc3VsdCwgdGlt
ZSkgPQogICBjYXNlICFjYWxscyBvZgogICAgICBbXSA9PiBFcnJvci5idWcgInJldHVybiB3aXRo
b3V0IGEgY2FsbCIKICAgIHwge25hbWUsIGxheW91dEFyZywgcHJldn0gOjogY3MgPT4KCSAoY2Fs
bHMgOj0gY3MKCSAgOyBhZnRlciA6PSB7bmFtZSA9IG5hbWUsIGxheW91dEFyZyA9IGxheW91dEFy
ZywKCQkgICAgICByZXN1bHQgPSByZXN1bHQsIHRpbWUgPSB0aW1lLAoJCSAgICAgIGJvZHkgPSBD
b21wdXRhdGlvbi5UKExpc3QucmV2KCFhZnRlcikpfSA6OiBwcmV2KQoKZnVuIHJhaXNlZShjLCB0
KSA9IHJldHVybihjLCBSZXN1bHQuUmFpc2UsIHQpCnZhbCByZXR1cm4gPSBmbiAoYywgciwgdCkg
PT4gcmV0dXJuKGMsIFJlc3VsdC5SZXR1cm4gciwgdCkKCmZ1biBmaW5pc2goYyBhcyBUe2NhbGxz
LCBhZnRlcn0pID0KICAgbGV0CiAgICAgIGZ1biBsb29wKCkgPQoJIGNhc2UgIWNhbGxzIG9mCgkg
ICAgW10gPT4gQ29tcHV0YXRpb24uVChMaXN0LnJldighYWZ0ZXIpKQoJICB8IF8gPT4gKHJhaXNl
ZShjLCBOT05FKTsgbG9vcCgpKQogICBpbiBsb29wKCkKICAgZW5kCgplbmQKKCogc3RvcCBvZiBs
aWIvbWx0b24vYmFzaWMvaW50ZXJtZWRpYXRlLWNvbXB1dGF0aW9uLnNtbCAqKQooKiBzdGFydCBv
ZiBsaWIvbWx0b24vYmFzaWMvc3RyaW5nLW1hcC5zbWwgKikKc3RydWN0dXJlIFN0cmluZ01hcDog
U1RSSU5HX01BUCA9IApzdHJ1Y3QKCmRhdGF0eXBlICdhIHQgPSBUIG9mIHttYXA6IHtuYW1lOiBz
dHJpbmcsCgkJCSAgICB2YWx1ZTogJ2F9IGxpc3QgcmVmLAoJCSAgICAgIGRlZmF1bHQ6IHVuaXQg
LT4gJ2F9CgpmdW4gbmV3IGRlZmF1bHQgPSBUe21hcCA9IHJlZiBbXSwgZGVmYXVsdCA9IGRlZmF1
bHR9CgpmdW4gY2xlYXIgKFQge21hcCwgLi4ufSkgPSBtYXAgOj0gW10KICAgCmZ1biBsb29rdXAg
KFQge21hcCwgZGVmYXVsdH0sIG5hbWUpID0KICAgY2FzZSBMaXN0LnBlZWsgKCFtYXAsIGZuIHtu
YW1lID0gbmFtZScsIC4uLn0gPT4gbmFtZSA9IG5hbWUnKSBvZgogICAgICBOT05FID0+IGxldAoJ
CSB2YWwgdmFsdWUgPSBkZWZhdWx0ICgpCgkgICAgICBpbiBMaXN0LnB1c2ggKG1hcCwge25hbWUg
PSBuYW1lLCB2YWx1ZSA9IHZhbHVlfSkKCQkgOyB2YWx1ZQoJICAgICAgZW5kCiAgICB8IFNPTUUg
e3ZhbHVlLCAuLi59ID0+IHZhbHVlCgpmdW4gZG9tYWluIChUIHttYXAsIC4uLn0pID0gTGlzdC5y
ZXZNYXAgKCFtYXAsIGZuIHtuYW1lLCAuLi59ID0+IG5hbWUpCgpmdW4ga2VlcEFsbCAoVHttYXAs
IC4uLn0sIHByZWQpID0gCiAgIExpc3Qua2VlcEFsbE1hcCAoIW1hcCwgZm4ge25hbWUsIHZhbHVl
fSA9PgoJCSAgICBpZiBwcmVkIHZhbHVlIHRoZW4gU09NRSBuYW1lIGVsc2UgTk9ORSkKCmZ1biBm
b3JlYWNoIChUe21hcCwgLi4ufSwgZikgPQogICBMaXN0LmZvcmVhY2ggKCFtYXAsIGZuIHt2YWx1
ZSwgLi4ufSA9PiBmIHZhbHVlKQoKZW5kCigqIHN0b3Agb2YgbGliL21sdG9uL2Jhc2ljL3N0cmlu
Zy1tYXAuc21sICopCigqIHN0YXJ0IG9mIGxpYi9tbHRvbi9iYXNpYy9waWQuc2lnICopCnNpZ25h
dHVyZSBQSUQgPQogICBzaWcKICAgICAgdHlwZSB0CgkgCiAgICAgIHZhbCBjdXJyZW50OiB1bml0
IC0+IHQKICAgICAgdmFsIGVxdWFsczogdCAqIHQgLT4gYm9vbAogICAgICB2YWwgZnJvbVN0cmlu
Zzogc3RyaW5nIC0+IHQgb3B0aW9uCiAgICAgIHZhbCBsYXlvdXQ6IHQgLT4gTGF5b3V0LnQKICAg
ICAgdmFsIHBhcmVudDogdW5pdCAtPiB0CiAgICAgIHZhbCB0b1N0cmluZzogdCAtPiBzdHJpbmcK
ICAgZW5kCigqIHN0b3Agb2YgbGliL21sdG9uL2Jhc2ljL3BpZC5zaWcgKikKKCogc3RhcnQgb2Yg
bGliL21sdG9uL2Jhc2ljL3BpZC5zbWwgKikKc3RydWN0dXJlIFBpZDogUElEID0KICAgc3RydWN0
CiAgICAgIGxvY2FsIG9wZW4gUG9zaXguUHJvY2VzcwogICAgICBpbgoJIHR5cGUgdCA9IHBpZAoJ
IHZhbCB0b1N0cmluZyA9IFN5c1dvcmQuZm10IFN0cmluZ0N2dC5ERUMgbyBwaWRUb1dvcmQKCSBm
dW4gZnJvbVN0cmluZyBzID0KCSAgICBPcHRpb24ubWFwKFBlcnZhc2l2ZS5JbnQuZnJvbVN0cmlu
ZyBzLCB3b3JkVG9QaWQgbyBTeXNXb3JkLmZyb21JbnQpCiAgICAgIGVuZAoKCiAgICAgIHZhbCBs
YXlvdXQgPSBMYXlvdXQuc3RyIG8gdG9TdHJpbmcKCiAgICAgIGxvY2FsIG9wZW4gUG9zaXguUHJv
Y0VudgogICAgICBpbgoJIHZhbCBjdXJyZW50ID0gZ2V0cGlkCgkgdmFsIHBhcmVudCA9IGdldHBw
aWQKICAgICAgZW5kCgogICAgICB2YWwgZXF1YWxzID0gb3AgPQogICBlbmQKKCogc3RvcCBvZiBs
aWIvbWx0b24vYmFzaWMvcGlkLnNtbCAqKQooKiBzdGFydCBvZiBsaWIvbWx0b24vYmFzaWMvZGF0
ZS5zaWcgKikKdHlwZSBpbnQgPSBQZXJ2YXNpdmUuSW50LmludAoKc2lnbmF0dXJlIERBVEVfU1RS
VUNUUyA9IAogICBzaWcKICAgZW5kCgpzaWduYXR1cmUgREFURSA9IAogICBzaWcKICAgICAgdHlw
ZSB0CgogICAgICBzdHJ1Y3R1cmUgV2Vla2RheToKCSBzaWcKCSAgICBkYXRhdHlwZSB0ID0gTW9u
IHwgVHVlIHwgV2VkIHwgVGh1IHwgRnJpIHwgU2F0IHwgU3VuCgkgZW5kCiAgICAgIAogICAgICBz
dHJ1Y3R1cmUgTW9udGg6Cgkgc2lnCgkgICAgZGF0YXR5cGUgdCA9CgkgICAgICAgSmFuIHwgRmVi
IHwgTWFyIHwgQXByIHwgTWF5IHwgSnVuIHwgSnVsIHwgQXVnIHwgU2VwIHwgT2N0IHwgTm92IHwg
RGVjCgoJICAgIHZhbCB0b0ludDogdCAtPiBpbnQKCSBlbmQKICAgICAgCiAgICAgIGV4Y2VwdGlv
biBEYXRlCiAgICAgIHZhbCBjb21wYXJlOiB0ICogdCAtPiBvcmRlcgogICAgICB2YWwgZGF0ZTog
e3llYXI6IGludCwKCQkgbW9udGg6IE1vbnRoLnQsCgkJIGRheTogaW50LAoJCSBob3VyOiBpbnQs
CgkJIG1pbnV0ZTogaW50LAoJCSBzZWNvbmQ6IGludCwKCQkgb2Zmc2V0OiBUaW1lLnQgb3B0aW9u
fSAtPiB0IAogICAgICB2YWwgZGF5OiB0IC0+IGludCAKICAgICAgdmFsIGZtdDogdCAqIHN0cmlu
ZyAtPiBzdHJpbmcgCiAgICAgIHZhbCBmcm9tU3RyaW5nOiBzdHJpbmcgLT4gdCBvcHRpb24gCiAg
ICAgIHZhbCBmcm9tVGltZUxvY2FsOiBUaW1lLnQgLT4gdCAKICAgICAgdmFsIGZyb21UaW1lVW5p
djogVGltZS50IC0+IHQgCiAgICAgIHZhbCBob3VyOiB0IC0+IGludAogICAgICB2YWwgaXNEc3Q6
IHQgLT4gYm9vbCBvcHRpb24gCiAgICAgIHZhbCBsYXlvdXQ6IHQgLT4gTGF5b3V0LnQKICAgICAg
dmFsIGxvY2FsT2Zmc2V0OiB1bml0IC0+IFRpbWUudAogICAgICB2YWwgbWludXRlOiB0IC0+IGlu
dCAKICAgICAgdmFsIG1vbnRoOiB0IC0+IE1vbnRoLnQgCiAgICAgIHZhbCBub3c6IHVuaXQgLT4g
dAogICAgICB2YWwgb2Zmc2V0OiB0IC0+IFRpbWUudCBvcHRpb24gCiAgICAgIHZhbCBzY2FuOiAn
YSAqIChjaGFyLCAnYSkgU3RyaW5nQ3Z0LnJlYWRlciAtPiAodCAqICdhKSBvcHRpb24KICAgICAg
dmFsIHNlY29uZDogdCAtPiBpbnQgCiAgICAgIHZhbCB0b1N0cmluZzogdCAtPiBzdHJpbmcgCiAg
ICAgIHZhbCB0b1RpbWU6IHQgLT4gVGltZS50IAogICAgICB2YWwgd2Vla0RheTogdCAtPiBXZWVr
ZGF5LnQgCiAgICAgIHZhbCB5ZWFyOiB0IC0+IGludCAKICAgICAgdmFsIHllYXJEYXk6IHQgLT4g
aW50IAogICBlbmQKKCogc3RvcCBvZiBsaWIvbWx0b24vYmFzaWMvZGF0ZS5zaWcgKikKKCogc3Rh
cnQgb2YgbGliL21sdG9uL2Jhc2ljL2RhdGUuc21sICopCnN0cnVjdHVyZSBEYXRlOiBEQVRFID0g
CnN0cnVjdAoKc3RydWN0dXJlIERhdGUgPSBQZXJ2YXNpdmUuRGF0ZQpvcGVuIERhdGUKCnR5cGUg
dCA9IGRhdGUKCnN0cnVjdHVyZSBXZWVrZGF5ID0KICAgc3RydWN0CiAgICAgIGRhdGF0eXBlIHQg
PSBkYXRhdHlwZSB3ZWVrZGF5CiAgIGVuZAoKc3RydWN0dXJlIE1vbnRoID0KICAgc3RydWN0CiAg
ICAgIGRhdGF0eXBlIHQgPSBkYXRhdHlwZSBtb250aAoKICAgICAgdmFsIHRvSW50OiB0IC0+IGlu
dCA9CgkgZm4gSmFuID0+IDEKCSAgfCBGZWIgPT4gMgoJICB8IE1hciA9PiAzCgkgIHwgQXByID0+
IDQKCSAgfCBNYXkgPT4gNQoJICB8IEp1biA9PiA2CgkgIHwgSnVsID0+IDcKCSAgfCBBdWcgPT4g
OAoJICB8IFNlcCA9PiA5CgkgIHwgT2N0ID0+IDEwCgkgIHwgTm92ID0+IDExCgkgIHwgRGVjID0+
IDEyCiAgIGVuZAoKdmFsIG5vdyA9IGZyb21UaW1lTG9jYWwgbyBUaW1lLm5vdwoKdmFsIGxheW91
dCA9IExheW91dC5zdHIgbyB0b1N0cmluZwoKZnVuIGZtdChkLCBzKSA9IERhdGUuZm10IHMgZAoK
ZnVuIHNjYW4ocywgcikgPSBEYXRlLnNjYW4gciBzCgkgCmVuZAooKiBzdG9wIG9mIGxpYi9tbHRv
bi9iYXNpYy9kYXRlLnNtbCAqKQooKiBzdGFydCBvZiBsaWIvbWx0b24vYmFzaWMvZXhuLnNpZyAq
KQpzaWduYXR1cmUgRVhOID0KICAgc2lnCiAgICAgIHR5cGUgdCA9IGV4bgoKICAgICAgdmFsIGxh
eW91dDogdCAtPiBMYXlvdXQudAogICBlbmQKKCogc3RvcCBvZiBsaWIvbWx0b24vYmFzaWMvZXhu
LnNpZyAqKQooKiBzdGFydCBvZiBsaWIvbWx0b24vYmFzaWMvZXhuLnNtbCAqKQpzdHJ1Y3R1cmUg
RXhuOj4gRVhOID0Kc3RydWN0Cgp0eXBlIHQgPSBleG4KCmZ1biBsYXlvdXQgZSA9CiAgIGxldCBv
cGVuIExheW91dAogICBpbiBjYXNlIGUgb2YKICAgICAgT1MuU3lzRXJyKHMsIHNvKSA9PgoJIHNl
cVtzdHIgImVycm9yOiAiLAoJICAgICBjYXNlIHNvIG9mCgkJTk9ORSA9PiBlbXB0eQoJICAgICAg
fCBTT01FIHNlID0+IHNlcVtzdHIoT1MuZXJyb3JOYW1lIHNlKSwgc3RyICI6ICJdLAogICAgICAg
ICAgICAgc3RyIHNdCiAgICB8IEZhaWwgcyA9PiBzdHIgcwogICAgfCBfID0+IHNlcVtzdHIgInVu
aGFuZGxlZCBleGNlcHRpb246ICIsIHN0cihleG5OYW1lIGUpXQogICBlbmQKCmVuZAogICAKKCog
c3RvcCBvZiBsaWIvbWx0b24vYmFzaWMvZXhuLnNtbCAqKQooKiBzdGFydCBvZiBsaWIvbWx0b24v
YmFzaWMvdC5zaWcgKikKc2lnbmF0dXJlIFQgPQogICBzaWcKICAgICAgdHlwZSB0CgkgCiAgICAg
IHZhbCBlcXVhbHM6IHQgKiB0IC0+IGJvb2wKICAgICAgdmFsIGxheW91dDogdCAtPiBMYXlvdXQu
dAogICBlbmQKCigqIHN0b3Agb2YgbGliL21sdG9uL2Jhc2ljL3Quc2lnICopCigqIHN0YXJ0IG9m
IGxpYi9tbHRvbi9iYXNpYy91bml0LnNpZyAqKQpzaWduYXR1cmUgVU5JVCA9IFQgd2hlcmUgdHlw
ZSB0ID0gdW5pdAooKiBzdG9wIG9mIGxpYi9tbHRvbi9iYXNpYy91bml0LnNpZyAqKQooKiBzdGFy
dCBvZiBsaWIvbWx0b24vYmFzaWMvdW5pdC5zbWwgKikKc3RydWN0dXJlIFVuaXQ6IFVOSVQgPQpz
dHJ1Y3QKCnR5cGUgdCA9IHVuaXQKCnZhbCBlcXVhbHMgPSBmbiAoKCksICgpKSA9PiB0cnVlCgpm
dW4gbGF5b3V0KCkgPSBMYXlvdXQuc3RyIigpIgoKZW5kCigqIHN0b3Agb2YgbGliL21sdG9uL2Jh
c2ljL3VuaXQuc21sICopCigqIHN0YXJ0IG9mIGxpYi9tbHRvbi9iYXNpYy90cmFjZS5zaWcgKikK
c2lnbmF0dXJlIFRSQUNFX0NPTlRST0wgPSAKICAgc2lnCiAgICAgICgqIGNvbnRyb2xzIHdoYXQg
dHJhY2luZyBpbmZvIGlzIGdhdGhlcmVkICopCiAgICAgIHZhbCBhbHdheXM6IHVuaXQgLT4gdW5p
dCAgICAgICgqIGFsd2F5cyBnYXRoZXIgaW5mbyAqKQogICAgICB2YWwgZmxhZ2dlZDogdW5pdCAt
PiB1bml0ICAgICAoKiBvbmx5IG9uIGZsYWdnZWQgZnVuY3Rpb25zICopCiAgICAgIHZhbCBuZXZl
cjogdW5pdCAtPiB1bml0ICAgICAgICgqIG5ldmVyIGdhdGhlciBpbmZvICopCgkgCiAgICAgICgq
IHZhbHVlIG9mIG5ld2x5IGNyZWF0ZWQgZmxhZyAqKQogICAgICB2YWwgZGVmYXVsdDogYm9vbCBy
ZWYKCiAgICAgICgqIHR1cm4gb24vb2ZmIHRyYWNpbmcgZm9yIGdpdmVuIGZ1bmN0aW9ucyAqKQog
ICAgICB2YWwgb246IHN0cmluZyBsaXN0IC0+IHVuaXQKICAgICAgdmFsIG9mZjogc3RyaW5nIGxp
c3QgLT4gdW5pdAoKICAgICAgKCogdHVybiBvbi9vZmYgdHJhY2luZyBmb3IgYWxsIGZ1bmN0aW9u
cyAqKQogICAgICB2YWwgYWxsOiB1bml0IC0+IHVuaXQKICAgICAgdmFsIG5vbmU6IHVuaXQgLT4g
dW5pdAoKICAgICAgKCogcmV0dXJucyBmdW5jdGlvbnMgdGhhdCBhcmUgb24vb2ZmICopCiAgICAg
IHZhbCB3aGF0c09uOiB1bml0IC0+IHN0cmluZyBsaXN0CiAgICAgIHZhbCB3aGF0c09mZjogdW5p
dCAtPiBzdHJpbmcgbGlzdAogICBlbmQKCnNpZ25hdHVyZSBUUkFDRSA9CiAgIHNpZwogICAgICBz
dHJ1Y3R1cmUgSW1tZWRpYXRlOgoJIHNpZwoJICAgIGluY2x1ZGUgVFJBQ0VfQ09OVFJPTAoKCSAg
ICBkYXRhdHlwZSBkZWJ1ZyA9CgkgICAgICAgTm9uZQoJICAgICB8IFRlcm1pbmFsCgkgICAgIHwg
T3V0IG9mIE91dC50CgoJICAgICgqCgkgICAgICogSWYgIWRlYnVnID0gVGVybWluYWwsIGRlYnVn
Z2luZyBtZXNzYWdlcyBhcmUgcHJpbnRlZCB0byAvZGV2L3R0eS4KCSAgICAgKiBJZiAhZGVidWcg
PSBPdXQgb3MsIHRoZW4gbWVzc2FnZXMgd2lsbCBiZSBzZW50IHRvIG9zLgoJICAgICAqIElmICFk
ZWJ1ZyA9IE5vbmUsIHRoZW4gbWVzc2FnZXMgd2lsbCBiZSBpZ25vcmVkLgoJICAgICAqKQoJICAg
IHZhbCBkZWJ1ZzogZGVidWcgcmVmCgkgICAgdmFsIG1lc3NhZ2U6IExheW91dC50IC0+IHVuaXQK
CSAgICB2YWwgbWVzc2FnZVN0cjogc3RyaW5nIC0+IHVuaXQKCSAgICAoKiBpbkNoaWxkUHJvY2Vz
cyBpcyBjYWxsZWQgYnkgUHJvY2VzcyBzbyB0aGF0IHRyYWNlIHdpbGwga25vdyBpZiBpdAoJICAg
ICAqIGlzIGluIGEgY2hpbGQsIGFuZCB0aGVyZWZvcmUgaXQgd2lsbCBwcmVmaXggYWxsIG1lc3Nh
Z2VzIHdpdGggdGhlCgkgICAgICogcGlkIG9mIHRoZSBjdXJyZW50IHByb2Nlc3MuCgkgICAgICop
CgkgICAgdmFsIGluQ2hpbGRQcm9jZXNzOiB1bml0IC0+IHVuaXQKCSAgICAoKiAhc2hvd1RpbWUg
PSB0cnVlIGlmZiBtZXNzYWdlcyBhcmUgcHJlY2VkZWQgYnkgdGhlIGN1cnJlbnQgdGltZSAqKQoJ
ICAgIHZhbCBzaG93VGltZTogYm9vbCByZWYKCSBlbmQKICAgICAgc3RydWN0dXJlIERlbGF5ZWQ6
Cgkgc2lnCgkgICAgaW5jbHVkZSBUUkFDRV9DT05UUk9MCgkgICAgdmFsIGtlZXBBbGw6IGJvb2wg
cmVmCgkgZW5kCiAgICAgIHN0cnVjdHVyZSBUaW1lOiBUUkFDRV9DT05UUk9MCgogICAgICB2YWwg
bmV2ZXI6IHVuaXQgLT4gdW5pdAogICAgICB2YWwgYWx3YXlzOiB1bml0IC0+IHVuaXQKICAgICAg
dmFsIGZsYWdnZWQ6IHVuaXQgLT4gdW5pdAogICAgICB2YWwgdHJhY2VhYmxlOiB1bml0IC0+IHN0
cmluZyBsaXN0CiAgICAgIHZhbCBvdXRwdXRUcmFjZWFibGU6IHVuaXQgLT4gdW5pdAogICAgICB2
YWwgcmVzZXQ6IHVuaXQgLT4gdW5pdAoJIAogICAgICAoKi0tLS0tLS0tLS0gRGVsYXllZCBGZWVk
YmFjayAtLS0tLS0tLS0tKikKICAgICAgc3RydWN0dXJlIENvbXB1dGF0aW9uOiBDT01QVVRBVElP
TgoKICAgICAgKCogY2xlYXIgY29tcHV0YXRpb24gaGlzdG9yeSAqKQogICAgICB2YWwgY2xlYXI6
IHVuaXQgLT4gdW5pdAoKICAgICAgKCogZ2V0IGNvbXB1dGF0aW9uIGhpc3RvcnkgKikKICAgICAg
dmFsIGNvbXB1dGF0aW9uOiB1bml0IC0+IENvbXB1dGF0aW9uLnQKCiAgICAgICgqIHNob3cgY29t
cHV0YXRpb24gaGlzdG9yeSAqKQogICAgICB2YWwgaGlzdG9yeTogdW5pdCAtPiB1bml0CgogICAg
ICAoKiBzaG93IGNvbXB1dGF0aW9uIGhpc3RvcnksIHdpdGhvdXQgYXJndW1lbnRzIG9yIHJlc3Vs
dHMgKikKICAgICAgdmFsIGNhbGxzOiB1bml0IC0+IHVuaXQKCiAgICAgIHZhbCB0aW1lczogdW5p
dCAtPiB1bml0CgogICAgICAoKiBlbnRlciB0aGUgaW5zcGVjdG9yICopCiAgICAgIHZhbCBpbnNw
ZWN0OiB1bml0IC0+IHVuaXQKCiAgICAgICgqLS0tLS0tLS0tLSBJbnN0cnVtZW50YXRpb24gLS0t
LS0tLS0tLSopCgogICAgICB2YWwgdHJhY2VDYWxsOiBzdHJpbmcgLT4gKCdhIC0+ICdiKSAtPiAn
YSAtPiAnYgoKICAgICAgdHlwZSBpbmZvCiAgICAgIHZhbCBpbmZvOiBzdHJpbmcgLT4gaW5mbwoK
ICAgICAgdmFsIHRyYWNlSW5mbzoKCSBpbmZvCgkgKiAoJ2EgLT4gTGF5b3V0LnQpCgkgKiAoJ2Ig
LT4gTGF5b3V0LnQpCgkgKiAoJ2EgLT4gYm9vbCAqICgnYiAtPiBib29sKSkKCSAtPiAoJ2EgLT4g
J2IpCgkgLT4gKCdhIC0+ICdiKQoKICAgICAgdmFsIHRyYWNlSW5mbyc6CgkgaW5mbwoJICogKCdh
IC0+IExheW91dC50KQoJICogKCdiIC0+IExheW91dC50KQoJIC0+ICgnYSAtPiAnYikKCSAtPiAo
J2EgLT4gJ2IpCgooKiAgICAgICB0eXBlICgnYSwgJ2IpIGNoZWNrID0gKCdhIC0+IExheW91dC50
KSAqICgnYSAtPiBib29sICogJ2IpCiAqIAogKiAgICAgICB0eXBlICgnYSwgJ2IpIHogPQogKiAJ
ICdhIC0+ICgodW5pdCAtPiBMYXlvdXQudCkKICogCQkqICh1bml0IC0+IGJvb2wpCiAqIAkJKiAn
YQogKiAJCSogJ2IpCiAqIAkgCiAqICAgICAgIHZhbCB0cmFjZUluZm86CiAqIAkgaW5mbwogKiAJ
ICogKCdhLCAoJ2IsIHVuaXQpIGNoZWNrKSBjaGVjawogKiAJIC0+ICgnYSAtPiAnYikKICogCSAt
PiAnYQogKiAJIC0+ICdiCiAqKQoKICAgICAgdmFsIGFzc2VydFRydWU6ICdhIC0+IChib29sICog
KCdiIC0+IGJvb2wpKQoKICAgICAgdmFsIHRyYWNlQXNzZXJ0OgoJIHN0cmluZwoJICogKCdhIC0+
IExheW91dC50KQoJICogKCdiIC0+IExheW91dC50KQoJICogKCdhIC0+IGJvb2wgKiAoJ2IgLT4g
Ym9vbCkpCgkgLT4gKCdhIC0+ICdiKQoJIC0+ICgnYSAtPiAnYikKCiAgICAgIHZhbCB0cmFjZToK
CSBzdHJpbmcKCSAqICgnYSAtPiBMYXlvdXQudCkKCSAqICgnYiAtPiBMYXlvdXQudCkKCSAtPiAo
J2EgLT4gJ2IpCgkgLT4gKCdhIC0+ICdiKQoJIAogICAgICB2YWwgdHJhY2UwOgoJIHN0cmluZwoJ
ICogKCdhIC0+IExheW91dC50KQoJIC0+ICh1bml0IC0+ICdhKQoJIC0+ICh1bml0IC0+ICdhKQoK
ICAgICAgdmFsIHRyYWNlMjoKCSBzdHJpbmcKCSAqICgnYSAtPiBMYXlvdXQudCkKCSAqICgnYiAt
PiBMYXlvdXQudCkKCSAqICgnYyAtPiBMYXlvdXQudCkKCSAtPiAoJ2EgKiAnYiAtPiAnYykKCSAt
PiAoJ2EgKiAnYiAtPiAnYykKCiAgICAgIHZhbCB0cmFjZTM6Cgkgc3RyaW5nCgkgKiAoJ2EgLT4g
TGF5b3V0LnQpCgkgKiAoJ2IgLT4gTGF5b3V0LnQpCgkgKiAoJ2MgLT4gTGF5b3V0LnQpCgkgKiAo
J2QgLT4gTGF5b3V0LnQpCgkgLT4gKCdhICogJ2IgKiAnYyAtPiAnZCkKCSAtPiAoJ2EgKiAnYiAq
ICdjIC0+ICdkKQoKICAgICAgdmFsIHRyYWNlNDoKCSBzdHJpbmcKCSAqICgnYSAtPiBMYXlvdXQu
dCkKCSAqICgnYiAtPiBMYXlvdXQudCkKCSAqICgnYyAtPiBMYXlvdXQudCkKCSAqICgnZCAtPiBM
YXlvdXQudCkKCSAqICgnZSAtPiBMYXlvdXQudCkKCSAtPiAoJ2EgKiAnYiAqICdjICogJ2QgLT4g
J2UpCgkgLT4gKCdhICogJ2IgKiAnYyAqICdkIC0+ICdlKQoKICAgICAgdmFsIHRyYWNlNToKCSBz
dHJpbmcKCSAqICgnYSAtPiBMYXlvdXQudCkKCSAqICgnYiAtPiBMYXlvdXQudCkKCSAqICgnYyAt
PiBMYXlvdXQudCkKCSAqICgnZCAtPiBMYXlvdXQudCkKCSAqICgnZSAtPiBMYXlvdXQudCkKCSAq
ICgnZiAtPiBMYXlvdXQudCkKCSAtPiAoJ2EgKiAnYiAqICdjICogJ2QgKiAnZSAtPiAnZikKCSAt
PiAoJ2EgKiAnYiAqICdjICogJ2QgKiAnZSAtPiAnZikKCiAgICAgIHZhbCB0cmFjZVJlYzoKCSBz
dHJpbmcKCSAqICgnYSAtPiBMYXlvdXQudCkKCSAqICgnYiAtPiBMYXlvdXQudCkKCSAtPiAoKCdh
IC0+ICdiKSAtPiAoJ2EgLT4gJ2IpKQoJIC0+ICdhIC0+ICdiIAogICBlbmQKKCogc3RvcCBvZiBs
aWIvbWx0b24vYmFzaWMvdHJhY2Uuc2lnICopCigqIHN0YXJ0IG9mIGxpYi9tbHRvbi9iYXNpYy90
cmFjZS5zbWwgKikKZnVuY3RvciBUcmFjZUNvbnRyb2wgKHN0cnVjdHVyZSBTdHJpbmdNYXA6IFNU
UklOR19NQVAKCQkgICAgICBkYXRhdHlwZSBzdGF0dXMgPSBBbHdheXMgfCBGbGFnZ2VkIHwgTmV2
ZXIKCQkgICAgICB0eXBlIGZsYWdzCgkJICAgICAgdmFsIG1hcDogZmxhZ3MgU3RyaW5nTWFwLnQK
CQkgICAgICB2YWwgZ2V0RmxhZzogZmxhZ3MgLT4gYm9vbCByZWYKCQkgICAgICB2YWwgZGVmYXVs
dDogYm9vbCByZWYKCQkgICAgICB2YWwgc3RhdHVzOiBzdGF0dXMpID0Kc3RydWN0Cgp2YWwgc3Rh
dHVzID0gcmVmIHN0YXR1cwoKZnVuIGFsd2F5cyAoKSA9IHN0YXR1cyA6PSBBbHdheXMKZnVuIGZs
YWdnZWQgKCkgPSBzdGF0dXMgOj0gRmxhZ2dlZApmdW4gbmV2ZXIgKCkgPSBzdGF0dXMgOj0gTmV2
ZXIKCmZ1biBpc09uIGIgPQogICBjYXNlICFzdGF0dXMgb2YKICAgICAgQWx3YXlzID0+IHRydWUK
ICAgIHwgRmxhZ2dlZCA9PiAhYgogICAgfCBOZXZlciA9PiBmYWxzZQogICAKdmFsIGRlZmF1bHQg
PSBkZWZhdWx0CgpmdW4gZmxhZyBuYW1lID0gZ2V0RmxhZyAoU3RyaW5nTWFwLmxvb2t1cCAobWFw
LCBuYW1lKSkKCmZ1biB3aGF0cyBiICgpID0gU3RyaW5nTWFwLmtlZXBBbGwgKG1hcCwgZm4gZmxh
Z3MgPT4gYiA9ICEoZ2V0RmxhZyBmbGFncykpCgp2YWwgd2hhdHNPbiA9IHdoYXRzIHRydWUKdmFs
IHdoYXRzT2ZmID0gd2hhdHMgZmFsc2UKCmZ1biBzZXRzIGIgKCkgPQogICBTdHJpbmdNYXAuZm9y
ZWFjaCAobWFwLCBmbiBmbGFncyA9PiBnZXRGbGFnIGZsYWdzIDo9IGIpCiAgIAp2YWwgYWxsID0g
c2V0cyB0cnVlCnZhbCBub25lID0gc2V0cyBmYWxzZQoKZnVuIHNvbWUgYiBzcyA9IExpc3QuZm9y
ZWFjaCAoc3MsIGZuIHMgPT4gZmxhZyBzIDo9IGIpCgp2YWwgb24gPSBzb21lIHRydWUKdmFsIG9m
ZiA9IHNvbWUgZmFsc2UKCmVuZAoKKCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKikKKCogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgVHJhY2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKikKKCotLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tKikKCnN0cnVjdHVyZSBUcmFjZTogVFJBQ0UgPQpzdHJ1Y3QKCnN0cnVjdHVyZSBJQyA9
IEludGVybWVkaWF0ZUNvbXB1dGF0aW9uCnN0cnVjdHVyZSBJbnQgPSBQZXJ2YXNpdmUuSW50CnR5
cGUgaW50ID0gSW50LmludApzdHJ1Y3R1cmUgVGltZXIgPSBUaW1lCgp2YWwgaW1tZWRpYXRlRGVm
YXVsdCA9IHJlZiBmYWxzZQp2YWwgZGVsYXllZERlZmF1bHQgPSByZWYgZmFsc2UKdmFsIHRpbWVE
ZWZhdWx0ID0gcmVmIGZhbHNlCgp0eXBlIGZsYWdzID0ge2ltbWVkaWF0ZTogYm9vbCByZWYsCgkg
ICAgICBkZWxheWVkOiBib29sIHJlZiwKCSAgICAgIHRpbWU6IGJvb2wgcmVmfQogICAKdmFsIG1h
cCA9IFN0cmluZ01hcC5uZXcgKGZuICgpID0+IHtpbW1lZGlhdGUgPSByZWYgKCFpbW1lZGlhdGVE
ZWZhdWx0KSwKCQkJCSAgIGRlbGF5ZWQgPSByZWYgKCFkZWxheWVkRGVmYXVsdCksCgkJCQkgICB0
aW1lID0gcmVmICghdGltZURlZmF1bHQpfSkKICAgCmZ1biB0cmFjZWFibGUgKCkgPSBTdHJpbmdN
YXAuZG9tYWluIG1hcAoKZnVuIG91dHB1dFRyYWNlYWJsZSAoKSA9CiAgIExheW91dC5vdXRwdXQg
KExpc3QubGF5b3V0IExheW91dC5zdHIgKHRyYWNlYWJsZSAoKSksCgkJIE91dC5zdGFuZGFyZCkK
CmRhdGF0eXBlIHN0YXR1cyA9IEFsd2F5cyB8IEZsYWdnZWQgfCBOZXZlcgoKc3RydWN0dXJlIElt
bWVkaWF0ZSA9CiAgIFRyYWNlQ29udHJvbCAodHlwZSBmbGFncyA9IGZsYWdzCgkJIHZhbCBtYXAg
PSBtYXAKCQkgc3RydWN0dXJlIFN0cmluZ01hcCA9IFN0cmluZ01hcAoJCSBkYXRhdHlwZSBzdGF0
dXMgPSBkYXRhdHlwZSBzdGF0dXMKCQkgZnVuIGdldEZsYWcgKHtpbW1lZGlhdGUsIC4uLn06IGZs
YWdzKSA9IGltbWVkaWF0ZQoJCSB2YWwgZGVmYXVsdCA9IGltbWVkaWF0ZURlZmF1bHQKCQkgdmFs
IHN0YXR1cyA9IE5ldmVyKQpzdHJ1Y3R1cmUgRGVsYXllZCA9CiAgIHN0cnVjdAogICAgICBzdHJ1
Y3R1cmUgQyA9IAoJIFRyYWNlQ29udHJvbCAodHlwZSBmbGFncyA9IGZsYWdzCgkJICAgICAgdmFs
IG1hcCA9IG1hcAoJCSAgICAgIHN0cnVjdHVyZSBTdHJpbmdNYXAgPSBTdHJpbmdNYXAKCQkgICAg
ICBkYXRhdHlwZSBzdGF0dXMgPSBkYXRhdHlwZSBzdGF0dXMKCQkgICAgICBmdW4gZ2V0RmxhZyAo
e2RlbGF5ZWQsIC4uLn06IGZsYWdzKSA9IGRlbGF5ZWQKCQkgICAgICB2YWwgZGVmYXVsdCA9IGRl
bGF5ZWREZWZhdWx0CgkJICAgICAgdmFsIHN0YXR1cyA9IE5ldmVyKQogICAgICBvcGVuIEMKCSAK
ICAgICAgdmFsIGtlZXBBbGwgPSByZWYgdHJ1ZQogICBlbmQKCnN0cnVjdHVyZSBUaW1lID0KICAg
VHJhY2VDb250cm9sICh0eXBlIGZsYWdzID0gZmxhZ3MKCQl2YWwgbWFwID0gbWFwCgkJc3RydWN0
dXJlIFN0cmluZ01hcCA9IFN0cmluZ01hcAoJCWRhdGF0eXBlIHN0YXR1cyA9IGRhdGF0eXBlIHN0
YXR1cwoJCWZ1biBnZXRGbGFnICh7dGltZSwgLi4ufTogZmxhZ3MpID0gdGltZQoJCXZhbCBkZWZh
dWx0ID0gdGltZURlZmF1bHQKCQl2YWwgc3RhdHVzID0gTmV2ZXIpCgpmdW4gbmV2ZXIgKCkgPSAo
SW1tZWRpYXRlLm5ldmVyICgpCgkgICAgICAgOyBEZWxheWVkLm5ldmVyICgpCgkgICAgICAgOyBU
aW1lLm5ldmVyICgpKQoKZnVuIGFsd2F5cyAoKSA9IChJbW1lZGlhdGUuYWx3YXlzICgpCgkJOyBE
ZWxheWVkLmFsd2F5cyAoKQoJCTsgVGltZS5hbHdheXMgKCkpCgpmdW4gZmxhZ2dlZCAoKSA9IChJ
bW1lZGlhdGUuZmxhZ2dlZCAoKQoJCSA7IERlbGF5ZWQuZmxhZ2dlZCAoKQoJCSA7IFRpbWUuZmxh
Z2dlZCAoKSkKICAgCmZ1biByZXNldCAoKSA9CiAgIFN0cmluZ01hcC5mb3JlYWNoIChtYXAsIGZu
IHtpbW1lZGlhdGUsIGRlbGF5ZWQsIHRpbWV9ID0+CgkJICAgICAgKGltbWVkaWF0ZSA6PSBmYWxz
ZQoJCSAgICAgICA7IGRlbGF5ZWQgOj0gZmFsc2UKCQkgICAgICAgOyB0aW1lIDo9IGZhbHNlKSkK
CigqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKikK
KCogICAgICAgICAgICAgICAgIERlbGF5ZWQgRmVlZGJhY2sgICAgICAgICAgICAgICAgICAqKQoo
Ki0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSopCgpz
dHJ1Y3R1cmUgQ29tcHV0YXRpb24gPSBJQy5Db21wdXRhdGlvbgoKZGF0YXR5cGUgY29tcCA9CiAg
IFdvcmtpbmcgb2YgSUMudAogIHwgRmluaXNoZWQgb2YgQ29tcHV0YXRpb24udAoKdmFsIGVtcHR5
SWMgPSBJQy5lbXB0eQpmdW4gZW1wdHkgKCkgPSBXb3JraW5nIChlbXB0eUljICgpKQogICAKdmFs
IGN1cnJlbnRDb21wdXRhdGlvbiA9IHJlZiAoZW1wdHkgKCkpCgpmdW4gY2xlYXIgKCkgPSBjdXJy
ZW50Q29tcHV0YXRpb24gOj0gZW1wdHkgKCkKCmZ1biBmaW5pc2hlZENvbXB1dGF0aW9uICgpID0K
ICAgY2FzZSAhY3VycmVudENvbXB1dGF0aW9uIG9mCiAgICAgIFdvcmtpbmcgaWMgPT4gbGV0IHZh
bCBjID0gSUMuZmluaXNoIGljCgkJICAgIGluIGN1cnJlbnRDb21wdXRhdGlvbiA6PSBGaW5pc2hl
ZCBjCgkJICAgICAgIDsgYwoJCSAgICBlbmQKICAgIHwgRmluaXNoZWQgYyA9PiBjCnZhbCBjb21w
dXRhdGlvbiA9IGZpbmlzaGVkQ29tcHV0YXRpb24KCmZ1biBoaXN0b3J5ICgpID0gQ29tcHV0YXRp
b24ub3V0cHV0IChmaW5pc2hlZENvbXB1dGF0aW9uICgpLAoJCQkJICAgT3V0LmVycm9yKQpmdW4g
Y2FsbHMgKCkgPSBDb21wdXRhdGlvbi5vdXRwdXRDYWxscyAoZmluaXNoZWRDb21wdXRhdGlvbiAo
KSwKCQkJCSAgICAgIE91dC5lcnJvcikKZnVuIHRpbWVzICgpID0gQ29tcHV0YXRpb24ub3V0cHV0
VGltZXMgKGZpbmlzaGVkQ29tcHV0YXRpb24gKCksCgkJCQkgICAgICBPdXQuZXJyb3IpCmZ1biBp
bnNwZWN0ICgpID0gQ29tcHV0YXRpb24uaW5zcGVjdCAoZmluaXNoZWRDb21wdXRhdGlvbiAoKSkK
CmZ1biBpYyAoKSA9CiAgIGNhc2UgIWN1cnJlbnRDb21wdXRhdGlvbiBvZgogICAgICBGaW5pc2hl
ZCBfID0+IGxldCB2YWwgaWMgPSBlbXB0eUljICgpCgkJICAgIGluIGN1cnJlbnRDb21wdXRhdGlv
biA6PSBXb3JraW5nIGljCgkJICAgICAgIDsgaWMKCQkgICAgZW5kCiAgICB8IFdvcmtpbmcgaWMg
PT4gaWMKCmZ1biBkZWxheWVkQ2FsbCAobmFtZSwgbGF5b3V0QXJnLCBsYXlvdXRBbnMpID0KICAg
e2NhbGwgPSBmbiAoKSA9PgogICAgbGV0IHZhbCBjb21wID0gaWMgKCkKICAgICAgIHZhbCBjb21w
ID0gaWYgIURlbGF5ZWQua2VlcEFsbCBvcmVsc2Ugbm90IChJQy5hdFRvcExldmVsIGNvbXApCgkJ
ICAgICB0aGVuIGNvbXAKCQkgIGVsc2UgKGNsZWFyICgpOyBpYyAoKSkKICAgIGluIElDLmNhbGwg
KGNvbXAsIG5hbWUsIGxheW91dEFyZykKICAgIGVuZCwKICAgIHJhaXNlZSA9IGZuICh0LCBfKSA9
PiBJQy5yYWlzZWUgKGljICgpLCB0KSwKICAgIHJldHVybiA9IGZuIChhbnMsIHQpID0+IElDLnJl
dHVybiAoaWMgKCksCgkJCQkgICAgIGZuICgpID0+IGxheW91dEFucyBhbnMsCgkJCQkgICAgIHQp
fQoJIAooKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSopCigqICAgICAgICAgICAgICAgIEltbWVkaWF0ZSBGZWVkYmFjayAgICAgICAgICAgICAgICAg
KikKKCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0q
KQoKc3RydWN0dXJlIEltbWVkaWF0ZSA9CiAgIHN0cnVjdAogICAgICBvcGVuIEltbWVkaWF0ZQoK
ICAgICAgZGF0YXR5cGUgZGVidWcgPQoJIE5vbmUKICAgICAgIHwgVGVybWluYWwKICAgICAgIHwg
T3V0IG9mIE91dC50CiAgICAKICAgICAgdmFsIGRlYnVnID0gcmVmIE5vbmUKCiAgICAgIHZhbCBz
aG93VGltZSA9IHJlZiBmYWxzZQoKICAgICAgdmFsIGluZGVudGF0aW9uOiBpbnQgcmVmID0gcmVm
IDAKICAgICAgdmFsIHNwYWNlOiBpbnQgPSAzCiAgICAgIGZ1biBsZWZ0ICgpID0gaW5kZW50YXRp
b24gOj0gIWluZGVudGF0aW9uIC0gc3BhY2UKICAgICAgZnVuIHJpZ2h0ICgpID0gaW5kZW50YXRp
b24gOj0gIWluZGVudGF0aW9uICsgc3BhY2UKCiAgICAgIHZhbCBpbkNoaWxkID0gcmVmIGZhbHNl
CiAgICAgIGZ1biBpbkNoaWxkUHJvY2VzcyAoKSA9IChpbkNoaWxkIDo9IHRydWU7IGluZGVudGF0
aW9uIDo9IDApCgogICAgICBmdW4gbWVzc2FnZSAobDogTGF5b3V0LnQpOiB1bml0ID0KCSBjYXNl
ICFkZWJ1ZyBvZgoJICAgIE5vbmUgPT4gKCkKCSAgfCBfID0+IAoJICAgICAgIGxldAoJCSAgdmFs
IChvdXQsIGRvbmUpID0KCQkgICAgIGNhc2UgIWRlYnVnIG9mCgkJCVRlcm1pbmFsID0+IChPdXQu
b3Blbk91dCAiL2Rldi90dHkiLCBPdXQuY2xvc2UpCgkJICAgICAgfCBPdXQgb3V0ID0+IChvdXQs
IE91dC5mbHVzaCkKCQkgICAgICB8IF8gPT4gcmFpc2UgRmFpbCAibWVzc2FnZSIKCQkgIG9wZW4g
TGF5b3V0CgkgICAgICAgaW4gb3V0cHV0IChzZXEgW2lmICFpbkNoaWxkCgkJCQl0aGVuIHNlcSBb
UGlkLmxheW91dCAoUGlkLmN1cnJlbnQgKCkpLCBzdHIgIjogIl0KCQkJICAgICBlbHNlIGVtcHR5
LAoJCQkgICAgIGlmICFzaG93VGltZQoJCQkJdGhlbiBzdHIgKERhdGUuZm10CgkJCQkJICAoRGF0
ZS5ub3cgKCksICIlYiAlZCAlSDolTTolUyAiKSkKCQkJICAgICBlbHNlIGVtcHR5LAoJCSAgICAg
ICAgICAgICBpbmRlbnQgKGwsICFpbmRlbnRhdGlvbildLAoJCQkgb3V0KQoJCSAgOyBPdXQubmV3
bGluZSBvdXQKCQkgIDsgZG9uZSBvdXQKCSAgICAgICBlbmQKCSAKICAgICAgZnVuIGZpbmlzaCAo
dCwgcmVzKSA9CgkgKGxlZnQgKCkKCSAgOyBtZXNzYWdlIChsZXQgb3BlbiBMYXlvdXQKCQkgICAg
aW4gY2FzZSB0IG9mCgkJICAgICAgIE5PTkUgPT4gc2VxIFtzdHIgIj09PiAiLCByZXNdCgkJICAg
ICB8IFNPTUUgdCA9PgoJCQkgIGFsaWduIFtzZXEgW3N0ciAiPT0+IHRpbWUgPSAiLCBUaW1lci5s
YXlvdXQgdF0sCgkJCQlyZXNdCgkJICAgIGVuZCkpCgogICAgICBmdW4gY2FsbCAobmFtZSwgb3V0
QXJnLCBsYXlvdXRBbnMpID0KCSBsZXQKCSAgICBvcGVuIExheW91dAoJICAgIGZ1biBjYWxsICgp
ID0gKG1lc3NhZ2UgKHNlcSBbc3RyIG5hbWUsIHN0ciAiID09PiAiLAoJCQkJICAgICAgb3V0QXJn
ICgpCgkJCQkgICAgICBoYW5kbGUgXyA9PiBzdHIgIjxsYXlvdXQgYXJndW1lbnQgZXJyb3I+Il0p
CgkJCSAgIDsgcmlnaHQgKCkpCgkgICAgZnVuIHJhaXNlZSAodCwgZSkgPSBmaW5pc2ggKHQsIHNl
cSBbc3RyICJyYWlzZTogIiwgRXhuLmxheW91dCBlXSkKCSAgICBmdW4gcmV0dXJuIChhbnMsIHQp
ID0KCSAgICAgICBmaW5pc2ggKHQsIGxheW91dEFucyBhbnMgaGFuZGxlIF8gPT4gc3RyICI8bGF5
b3V0IGFuc3dlciBlcnJvcj4iKQoJIGluIHtjYWxsID0gY2FsbCwKCSAgICAgcmFpc2VlID0gcmFp
c2VlLAoJICAgICByZXR1cm4gPSByZXR1cm59CgkgZW5kCgogICAgICB2YWwgbWVzc2FnZSA9Cgkg
Zm4gbCA9PgoJIChsZWZ0ICgpCgkgIDsgaW5kZW50YXRpb24gOj0gMSArICFpbmRlbnRhdGlvbgoJ
ICA7IG1lc3NhZ2UgbAoJICA7IGluZGVudGF0aW9uIDo9ICFpbmRlbnRhdGlvbiAtIDEKCSAgOyBy
aWdodCAoKSkKCSAKICAgICAgdmFsIG1lc3NhZ2VTdHIgPSBtZXNzYWdlIG8gTGF5b3V0LnN0cgog
ICBlbmQKCSAKKCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0qKQooKiAgICAgICAgICAgICAgICAgIEluc3RydW1lbnRhdGlvbiAgICAgICAgICAgICAg
ICAgICopCigqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tKikKCnR5cGUgaW5mbyA9IHtuYW1lOiBzdHJpbmcsIGZsYWdzOiBmbGFnc30KCnZhbCBib2d1
c0luZm8gPSB7bmFtZSA9ICJib2d1cyIsIGZsYWdzID0ge2RlbGF5ZWQgPSByZWYgZmFsc2UsCgkJ
CQkJICBpbW1lZGlhdGUgPSByZWYgZmFsc2UsCgkJCQkJICB0aW1lID0gcmVmIGZhbHNlfX0KICAg
CmZ1biBpbmZvIG5hbWUgPQogICBpZiBBc3NlcnQuZGVidWcKICAgICAgdGhlbiB7bmFtZSA9IG5h
bWUsIGZsYWdzID0gU3RyaW5nTWFwLmxvb2t1cCAobWFwLCBuYW1lKX0KICAgZWxzZSBib2d1c0lu
Zm8KCmZ1biB0cmFjZUluZm8gKHtuYW1lLCBmbGFncyA9IHtpbW1lZGlhdGUsIGRlbGF5ZWQsIHRp
bWV9fSwKCSAgICAgICBsYXlvdXRBcmcsIGxheW91dEFucywgY2hlY2spIGYgYSA9CiAgIGlmIG5v
dCBBc3NlcnQuZGVidWcKICAgICAgdGhlbiBmIGEKICAgZWxzZSAKICAgICAgbGV0CgkgdmFsIGlt
bWVkaWF0ZSA9IEltbWVkaWF0ZS5pc09uIGltbWVkaWF0ZQoJIHZhbCBkZWxheWVkID0gRGVsYXll
ZC5pc09uIGRlbGF5ZWQKCSB2YWwgdGltZSA9IFRpbWUuaXNPbiB0aW1lCiAgICAgIGluCgkgaWYg
bm90IChpbW1lZGlhdGUgb3JlbHNlIGRlbGF5ZWQgb3JlbHNlIHRpbWUgb3JlbHNlIEFzc2VydC5k
ZWJ1ZykKCSAgICB0aGVuIGYgYQoJIGVsc2UgbGV0IHZhbCBvdXRBcmcgPSBmbiAoKSA9PiBsYXlv
dXRBcmcgYQoJCSAgdmFsIG5vQ2FsbCA9IHtjYWxsID0gZm4gXyA9PiAoKSwKCQkJCXJhaXNlZSA9
IGZuIF8gPT4gKCksCgkJCQlyZXR1cm4gPSBmbiBfID0+ICgpfQoJCSAgdmFsIGltbWVkID0gaWYg
aW1tZWRpYXRlCgkJCQkgdGhlbiBJbW1lZGlhdGUuY2FsbCAobmFtZSwgb3V0QXJnLCBsYXlvdXRB
bnMpCgkJCSAgICAgIGVsc2Ugbm9DYWxsCgkJICB2YWwgZGVsYXkgPSBpZiBkZWxheWVkCgkJCQkg
dGhlbiBkZWxheWVkQ2FsbCAobmFtZSwgb3V0QXJnLCBsYXlvdXRBbnMpCgkJCSAgICAgIGVsc2Ug
bm9DYWxsCgkJICB2YWwgXyA9ICgjY2FsbCBkZWxheSAoKQoJCQkgICA7ICNjYWxsIGltbWVkICgp
KQoJCSAgdmFsIGNoZWNrID0KCQkgICAgIGlmIEFzc2VydC5kZWJ1ZwoJCQl0aGVuIGxldCB2YWwg
KGIsIGNoZWNrKSA9IGNoZWNrIGEKCQkJCSB2YWwgXyA9IEFzc2VydC5hc3NlcnQgKGNvbmNhdCBb
bmFtZSwgIiBhcmd1bWVudCJdLAoJCQkJCQkgICAgICAgZm4gKCkgPT4gYikKCQkJICAgICBpbiBj
aGVjawoJCQkgICAgIGVuZAoJCSAgICAgZWxzZSBmbiBfID0+IHRydWUKCQkgIHZhbCBzdGFydFRp
bWUgPSBpZiB0aW1lIHRoZW4gU09NRSAoVGltZXIudGltZXMgKCkpIGVsc2UgTk9ORQoJCSAgZnVu
IGdldFRpbWUgKCkgPQoJCSAgICAgY2FzZSBzdGFydFRpbWUgb2YKCQkJTk9ORSA9PiBOT05FCgkJ
ICAgICAgfCBTT01FICh0IGFzIHtzZWxmIGFzIHt1dGltZSA9IHUsIHN0aW1lID0gc30sIC4uLn0p
ID0+CgkJCSAgIFNPTUUgKGxldCB2YWwge3NlbGYgYXMge3V0aW1lID0gdScsIHN0aW1lID0gcyd9
LAoJCQkJCSAgLi4ufSA9IFRpbWVyLnRpbWVzICgpCgkJCQlpbiBUaW1lci4rIChUaW1lci4tICh1
JywgdSksCgkJCQkJICAgIFRpbWVyLi0gKHMnLCBzKSkKCQkJCWVuZCkKCQkgIHZhbCBhbnMgPSBm
IGEgaGFuZGxlIGV4biA9PiBsZXQgdmFsIHQgPSBnZXRUaW1lICgpCgkJCQkJICAgICAgaW4gI3Jh
aXNlZSBkZWxheSAodCwgZXhuKQoJCQkJCQkgOyAjcmFpc2VlIGltbWVkICh0LCBleG4pCgkJCQkJ
CSA7IHJhaXNlIGV4bgoJCQkJCSAgICAgIGVuZAoJCSAgdmFsIHQgPSBnZXRUaW1lICgpCgkgICAg
ICBpbiAjcmV0dXJuIGRlbGF5IChhbnMsIHQpCgkJIDsgI3JldHVybiBpbW1lZCAoYW5zLCB0KQoJ
CSA7IEFzc2VydC5hc3NlcnQgKGNvbmNhdCBbbmFtZSwgIiByZXN1bHQiXSwgZm4gKCkgPT4gY2hl
Y2sgYW5zKQoJCSA7IGFucwoJICAgICAgZW5kCiAgICAgIGVuZAoKZnVuIGFzc2VydFRydWUgXyA9
ICh0cnVlLCBmbiBfID0+IHRydWUpCiAgIApmdW4gdHJhY2VJbmZvJyAoaW5mbywgbGF5b3V0QXJn
LCBsYXlvdXRBbnMpID0KICAgdHJhY2VJbmZvIChpbmZvLCBsYXlvdXRBcmcsIGxheW91dEFucywg
YXNzZXJ0VHJ1ZSkKCmZ1biB0cmFjZUFzc2VydCAobmFtZSwgbGF5b3V0QXJnLCBsYXlvdXRBbnMs
IGNoZWNrKSA9CiAgIHRyYWNlSW5mbyAoaW5mbyBuYW1lLCBsYXlvdXRBcmcsIGxheW91dEFucywg
Y2hlY2spCiAgIApmdW4gdHJhY2UgKG5hbWUsIGxheW91dEFyZywgbGF5b3V0QW5zKSA9CiAgIHRy
YWNlQXNzZXJ0IChuYW1lLCBsYXlvdXRBcmcsIGxheW91dEFucywgYXNzZXJ0VHJ1ZSkKCSAgICAg
ICAKZnVuIGlnbm9yZSBfID0gTGF5b3V0LmVtcHR5CiAgIApmdW4gdHJhY2VDYWxsIHMgPSB0cmFj
ZSAocywgaWdub3JlLCBpZ25vcmUpCiAgIApmdW4gdHJhY2VSZWMgaW5mbyA9CiAgIGxldCB2YWwg
dHJhY2UgPSB0cmFjZSBpbmZvCiAgIGluIGZuIGYgPT4gbGV0IGZ1biBmaXggZiBhID0gdHJhY2Ug
KGYgKGZpeCBmKSkgYQoJICAgICAgaW4gZml4IGYKCSAgICAgIGVuZAogICBlbmQKCmZ1biB0cmFj
ZTAgKG5hbWUsIGxheW91dEFucykgPQogICB0cmFjZSAobmFtZSwgVW5pdC5sYXlvdXQsIGxheW91
dEFucykKCSAKZnVuIHRyYWNlMiAobmFtZSwgbGF5b3V0MSwgbGF5b3V0MiwgbGF5b3V0QW5zKSA9
CiAgIHRyYWNlIChuYW1lLCBMYXlvdXQudHVwbGUyIChsYXlvdXQxLCBsYXlvdXQyKSwgbGF5b3V0
QW5zKQoKZnVuIHRyYWNlMyAobmFtZSwgb3V0MSwgb3V0Miwgb3V0Mywgb3V0QW5zKSA9CiAgIHRy
YWNlIChuYW1lLCBMYXlvdXQudHVwbGUzIChvdXQxLCBvdXQyLCBvdXQzKSwgb3V0QW5zKQoKZnVu
IHRyYWNlNCAobmFtZSwgb3V0MSwgb3V0Miwgb3V0Mywgb3V0NCwgb3V0QW5zKSA9CiAgIHRyYWNl
IChuYW1lLCBMYXlvdXQudHVwbGU0IChvdXQxLCBvdXQyLCBvdXQzLCBvdXQ0KSwgb3V0QW5zKQoK
ZnVuIHRyYWNlNSAobmFtZSwgb3V0MSwgb3V0Miwgb3V0Mywgb3V0NCwgb3V0NSwgb3V0QW5zKSA9
CiAgIHRyYWNlIChuYW1lLCBMYXlvdXQudHVwbGU1IChvdXQxLCBvdXQyLCBvdXQzLCBvdXQ0LCBv
dXQ1KSwgb3V0QW5zKQoKZW5kCgpzdHJ1Y3R1cmUgQ29tcHV0YXRpb24gPSBUcmFjZS5Db21wdXRh
dGlvbgooKiBzdG9wIG9mIGxpYi9tbHRvbi9iYXNpYy90cmFjZS5zbWwgKikKKCogc3RhcnQgb2Yg
bGliL21sdG9uL2Jhc2ljL3Jpbmctd2l0aC1pZGVudGl0eS5mdW4gKikKZnVuY3RvciBSaW5nV2l0
aElkZW50aXR5IChTOiBSSU5HX1dJVEhfSURFTlRJVFlfU1RSVUNUUykKICAgOj4gUklOR19XSVRI
X0lERU5USVRZIHdoZXJlIHR5cGUgdCA9IFMudCA9IApzdHJ1Y3QKCm9wZW4gUwoKc3RydWN0dXJl
IEludEluZiA9IFBlcnZhc2l2ZS5JbnRJbmYKCnZhbCBiYXNlID0ge29uZSA9IG9uZSwgbGF5b3V0
ID0gbGF5b3V0LCB0aW1lcyA9IG9wICp9CnZhbCBvcCBeID0gUG93ZXIucG93ZXIgYmFzZQp2YWwg
Xl4gPSBQb3dlci5wb3dlckluZiBiYXNlCnZhbCBwb3dlciA9IFBvd2VyLnNpbXVsdGFuZW91cyBi
YXNlCnZhbCBwb3dlckluZiA9IFBvd2VyLnNpbXVsdGFuZW91c0luZiBiYXNlCgpsb2NhbAogICBm
dW4gJ2EKICAgICAgbWFrZSB7emVybzogJ2EsIDwgOiAnYSAqICdhIC0+IGJvb2wsIH4gOiAnYSAt
PiAnYSwKCSAgICBwb3dlcjoge29uZTogdCwKCQkgICAgbGF5b3V0OiB0IC0+IExheW91dC50LAoJ
CSAgICB0aW1lczogdCAqIHQgLT4gdAoJCSAgICB9IC0+ICh0ICogJ2EpIC0+IHR9CiAgICAgIChp
OiAnYSkgOiB0ID0KICAgICAgbGV0CgkgdmFsIChpLCBmaXgpID0KCSAgICBpZiBpIDwgemVybwoJ
ICAgICAgIHRoZW4gKH4gaSwgUy5+KQoJICAgIGVsc2UgKGksIGZuIHggPT4geCkKICAgICAgdmFs
IGkgPSBwb3dlcntvbmUgPSBTLnplcm8sIGxheW91dCA9IGxheW91dCwgdGltZXMgPSBvcCArfSAo
b25lLCBpKQogICAgICBpbiBmaXggaQogICAgICBlbmQKaW4KICAgdmFsIGZyb21JbnQgPSBtYWtl
e3plcm8gPSAwLAoJCSAgICAgIDwgPSBvcCA8LAoJCSAgICAgIH4gPSBQZXJ2YXNpdmUuSW50Ln4s
CgkJICAgICAgcG93ZXIgPSBQb3dlci5wb3dlcn0KICAgdmFsIGZyb21JbnRJbmYgPSBtYWtle3pl
cm8gPSBJbnRJbmYuZnJvbUludCAwLAoJCQkgPCA9IEludEluZi48LAoJCQkgfiA9IEludEluZi5+
LAoJCQkgcG93ZXIgPSBQb3dlci5wb3dlckluZn0KZW5kCgooKiB2YWwgZnJvbUludEluZiA9CiAq
ICAgIFRyYWNlLnRyYWNlKCJmcm9tSW50SW5mIiwgTGF5b3V0LnN0ciBvIEludEluZi50b1N0cmlu
ZywgbGF5b3V0KSBmcm9tSW50SW5mCiAqKQoKZnVuIGFkZDEgaSA9IGkgKyBvbmUKCmZ1biBzdWIx
IGkgPSBpIC0gb25lCgpmdW4gaW5jIHIgPSByIDo9IGFkZDEoIXIpCgpmdW4gZGVjIHIgPSByIDo9
IHN1YjEoIXIpCgpmdW4gcHJvZCBsID0gTGlzdC5mb2xkKGwsIG9uZSwgb3AgKiApCgp2YWwgbmVn
T25lID0gc3ViMSB6ZXJvCiAgIAp2YWwgdHdvID0gYWRkMSBvbmUKCnZhbCB0aHJlZSA9IGFkZDEg
dHdvCgp2YWwgcG93ZXIgPQogICBUcmFjZS50cmFjZUFzc2VydAogICAoInBvd2VyIiwKICAgIExp
c3QubGF5b3V0IChMYXlvdXQudHVwbGUyIChsYXlvdXQsIExheW91dC5zdHIgbyBQZXJ2YXNpdmUu
SW50LnRvU3RyaW5nKSksCiAgICBsYXlvdXQsCiAgICBmbiBsID0+ICh0cnVlLCBmbiByID0+IGVx
dWFscyAociwgTGlzdC5mb2xkIChsLCBvbmUsIGZuICgoYiwgZSksIGFjKSA9PgoJCQkJCQkgYWMg
KiAoYiBeIGUpKSkpKQogICBwb3dlcgoKdmFsIHBvd2VySW5mID0KICAgVHJhY2UudHJhY2VBc3Nl
cnQKICAgKCJwb3dlckluZiIsCiAgICBMaXN0LmxheW91dCAoTGF5b3V0LnR1cGxlMiAobGF5b3V0
LCBMYXlvdXQuc3RyIG8gUGVydmFzaXZlLkludEluZi50b1N0cmluZykpLAogICAgbGF5b3V0LAog
ICAgZm4gbCA9PiAodHJ1ZSwgZm4gciA9PiBlcXVhbHMgKHIsIExpc3QuZm9sZCAobCwgb25lLCBm
biAoKGIsIGUpLCBhYykgPT4KCQkJCQkJIGFjICogKF5eIChiLCBlKSkpKSkpCiAgIHBvd2VySW5m
CgplbmQKKCogc3RvcCBvZiBsaWIvbWx0b24vYmFzaWMvcmluZy13aXRoLWlkZW50aXR5LmZ1biAq
KQooKiBzdGFydCBvZiBsaWIvbWx0b24vYmFzaWMvYm9vbC5zaWcgKikKc2lnbmF0dXJlIEJPT0wg
PQogICBzaWcKICAgICAgdHlwZSB0CgogICAgICB2YWwgY29tcGFyZTogdCAqIHQgLT4gUmVsYXRp
b24udAogICAgICB2YWwgZXF1YWxzOiB0ICogdCAtPiBib29sCiAgICAgIHZhbCBmcm9tU3RyaW5n
OiBzdHJpbmcgLT4gdCBvcHRpb24KICAgICAgdmFsIGxheW91dDogdCAtPiBMYXlvdXQudAogICAg
ICB2YWwgdG9TdHJpbmc6IHQgLT4gc3RyaW5nCiAgIGVuZCB3aGVyZSB0eXBlIHQgPSBib29sCigq
IHN0b3Agb2YgbGliL21sdG9uL2Jhc2ljL2Jvb2wuc2lnICopCigqIHN0YXJ0IG9mIGxpYi9tbHRv
bi9iYXNpYy9ib29sLnNtbCAqKQooKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qKQooKiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBCb29sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKi0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0qKQoKc3RydWN0dXJlIEJvb2w6IEJPT0wgPQpzdHJ1Y3QKICAgCm9wZW4gUGVydmFzaXZl
LkJvb2wKICAgCnR5cGUgdCA9IGJvb2wKCnZhbCBjb21wYXJlID0KICAgbGV0IG9wZW4gUmVsYXRp
b24KICAgaW4gZm4gKGZhbHNlLCBmYWxzZSkgPT4gRVFVQUwKICAgICAgIHwgKGZhbHNlLCB0cnVl
KSA9PiBMRVNTCiAgICAgICB8ICh0cnVlLCBmYWxzZSkgPT4gR1JFQVRFUgogICAgICAgfCAodHJ1
ZSwgdHJ1ZSkgPT4gRVFVQUwKICAgZW5kCgp2YWwgZXF1YWxzID0KICAgZm4gKHRydWUsIHRydWUp
ID0+IHRydWUKICAgIHwgKGZhbHNlLCBmYWxzZSkgPT4gdHJ1ZQogICAgfCBfID0+IGZhbHNlCgp2
YWwgbGF5b3V0ID0gTGF5b3V0LnN0ciBvIHRvU3RyaW5nCigqZnVuIG91dHB1dChiLCBvdXQpID0g
UGVydmFzaXZlLklPLm91dHB1dChvdXQsIHRvU3RyaW5nIGIpKikKICAgCmVuZAooKiBzdG9wIG9m
IGxpYi9tbHRvbi9iYXNpYy9ib29sLnNtbCAqKQooKiBzdGFydCBvZiBsaWIvbWx0b24vYmFzaWMv
ZXVjbGlkZWFuLXJpbmcuZnVuICopCmZ1bmN0b3IgRXVjbGlkZWFuUmluZyhTOiBFVUNMSURFQU5f
UklOR19TVFJVQ1RTKQogICA6PiBFVUNMSURFQU5fUklORyB3aGVyZSB0eXBlIHQgPSBTLnQgPSAK
c3RydWN0CgpvcGVuIFMKCnN0cnVjdHVyZSBJbnRJbmYgPSBQZXJ2YXNpdmUuSW50SW5mCiAgIAp2
YWwgZGl2TW9kID0KICAgVHJhY2UudHJhY2VBc3NlcnQKICAgKCJkaXZNb2QiLAogICAgTGF5b3V0
LnR1cGxlMihsYXlvdXQsIGxheW91dCksCiAgICBMYXlvdXQudHVwbGUyKGxheW91dCwgbGF5b3V0
KSwKICAgIGZuIChwLCBxKSA9PiAobm90KGVxdWFscyhxLCB6ZXJvKSksCgkJICBmbiAoZCwgbSkg
PT4gKGVxdWFscyhwLCBxICogZCArIG0pCgkJCQlhbmRhbHNvIChlcXVhbHMobSwgemVybykKCQkJ
CQkgb3JlbHNlIEludEluZi48KG1ldHJpYyBtLCBtZXRyaWMgcSkpKSkpCiAgIGRpdk1vZAoKZnVu
IHAgZGl2IHEgPSAjMShkaXZNb2QocCwgcSkpCgpmdW4gcCBtb2QgcSA9ICMyKGRpdk1vZChwLCBx
KSkKCmZ1biBkaXZpZGVzKGQ6IHQsIHg6IHQpOiBib29sID0gZXF1YWxzKHggbW9kIGQsIHplcm8p
Cgp2YWwgZGl2aWRlcyA9CiAgIFRyYWNlLnRyYWNlKCJkaXZpZGVzIiwgTGF5b3V0LnR1cGxlMihs
YXlvdXQsIGxheW91dCksIEJvb2wubGF5b3V0KSBkaXZpZGVzCgooKiBUYWtlbiBmcm9tIHBhZ2Ug
ODEyIG9mIENMUi4gKikKZnVuIGV4dGVuZGVkRXVjbGlkVGVybShhOiB0LCBiOiB0LCBkb25lOiB0
ICogdCAtPiBib29sLCB0cmFjZSk6IHQgKiB0ICogdCA9CiAgIGxldAogICAgICBmdW4gbG9vcChh
LCBiKSA9CgkgaWYgZG9uZShhLCBiKQoJICAgIHRoZW4gKGEsIG9uZSwgemVybykKCSBlbHNlIGxl
dCB2YWwgKGQsIG0pID0gZGl2TW9kKGEsIGIpCgkJICB2YWwgKGQnLCB4JywgeScpID0gbG9vcChi
LCBtKQoJICAgICAgaW4gKGQnLCB5JywgeCcgLSBkICogeScpCgkgICAgICBlbmQKICAgaW4gdHJh
Y2UgbG9vcChhLCBiKQogICBlbmQKCmZ1biBtYWtlVHJhY2VFeHRlbmRlZEV1Y2xpZCBmID0KICAg
VHJhY2UudHJhY2VBc3NlcnQKICAgKCJleHRlbmRlZEV1Y2xpZCIsCiAgICBMYXlvdXQudHVwbGUy
KGxheW91dCwgbGF5b3V0KSwKICAgIExheW91dC50dXBsZTMobGF5b3V0LCBsYXlvdXQsIGxheW91
dCksCiAgICBmbiAoYSwgYikgPT4gKG5vdChpc1plcm8gYSkgYW5kYWxzbyBub3QoaXNaZXJvIGIp
LAoJCSAgZm4gKGQsIHgsIHkpID0+IChmKGQsIHgsIHkpCgkJCQkgICBhbmRhbHNvIGVxdWFscyhk
LCBhICogeCArIGIgKiB5KSkpKQoKbG9jYWwKICAgdmFsIHRyYWNlID0KICAgICAgbWFrZVRyYWNl
RXh0ZW5kZWRFdWNsaWQKICAgICAgKGZuIChkLCB4LCB5KSA9PiBkaXZpZGVzKGQsIHgpIGFuZGFs
c28gZGl2aWRlcyhkLCB5KSkKaW4KICAgKCogUGFnZSA3MiBvZiBCYWNoIGFuZCBTaGFsbGl0LiAq
KQogICAoKiBJZGVudGljYWwgdG8gYWxnb3JpdGhtIG9uIHBhZ2UgMjMgb2YgQmVybGVrYW1wLiAq
KQogICAoKiBUaGlzIGFsZ29yaXRobSBpcyBzbG93ZXIgKGFib3V0IDJ4KSB0aGFuIHRoZSByZWN1
cnNpdmUgZXh0ZW5kZWRFdWNsaWQKICAgICogZ2l2ZW4gYWJvdmUsIGJ1dCBzdG9yZXMgb25seSBh
IGNvbnN0YW50IG51bWJlciBvZiByaW5nIGVsZW1lbnRzLgogICAgKiBUaHVzLCBmb3Igbm93LCBp
dCBpcyBvdmVycmlkZGVuIGJlbG93LgogICAgKikKICAgZnVuIGV4dGVuZGVkRXVjbGlkKHUwOiB0
LCB1MTogdCk6IHQgKiB0ICogdCA9CiAgICAgIGxldAoJIHZhbCByZWMgbG9vcCA9CgkgICAgZm4g
KHIgYXMge20xMSwgbTEyLCBtMjEsIG0yMiwgdSwgdiwgbkV2ZW59KSA9PgoJICAgIChBc3NlcnQu
YXNzZXJ0KCJleHRlbmRlZEV1Y2xpZCIsIGZuICgpID0+CgkJCSAgIGVxdWFscyh1MCwgbTExICog
dSArIG0xMiAqIHYpCgkJCSAgIGFuZGFsc28gZXF1YWxzKHUxLCBtMjEgKiB1ICsgbTIyICogdikK
CQkJICAgYW5kYWxzbyBlcXVhbHMoaWYgbkV2ZW4gdGhlbiBvbmUgZWxzZSBuZWdPbmUsCgkJCQkJ
ICBtMTEgKiBtMjIgLSBtMTIgKiBtMjEpKQoJICAgICA7IGlmIGlzWmVybyB2CgkJICB0aGVuIHIK
CSAgICAgICBlbHNlIAoJCSAgbGV0IHZhbCAocSwgcikgPSBkaXZNb2QodSwgdikKCQkgIGluIGxv
b3B7bTExID0gcSAqIG0xMSArIG0xMiwKCQkJICBtMTIgPSBtMTEsCgkJCSAgbTIxID0gcSAqIG0y
MSArIG0yMiwKCQkJICBtMjIgPSBtMjEsCgkJCSAgdSA9IHYsCgkJCSAgdiA9IHIsCgkJCSAgbkV2
ZW4gPSBub3QgbkV2ZW59CgkJICBlbmQpCgkgdmFsIHttMTIsIG0yMiwgdSwgbkV2ZW4sIC4uLn0g
PQoJICAgIGxvb3B7bTExID0gb25lLCBtMTIgPSB6ZXJvLCBtMjEgPSB6ZXJvLCBtMjIgPSBvbmUs
CgkJIHUgPSB1MCwgdiA9IHUxLCBuRXZlbiA9IHRydWV9CgkgdmFsIChhLCBiKSA9IGlmIG5FdmVu
IHRoZW4gKG0yMiwgfm0xMikgZWxzZSAofm0yMiwgbTEyKQogICAgICBpbiAodSwgYSwgYikKICAg
ICAgZW5kCiAgIHZhbCBleHRlbmRlZEV1Y2xpZCA9IHRyYWNlIGV4dGVuZGVkRXVjbGlkCgogICBm
dW4gZXh0ZW5kZWRFdWNsaWQoYSwgYikgPQogICAgICBleHRlbmRlZEV1Y2xpZFRlcm0oYSwgYiwg
Zm4gKF8sIGIpID0+IGVxdWFscyhiLCB6ZXJvKSwgdHJhY2UpCmVuZCAgIAoKbG9jYWwKICAgdmFs
IHRyYWNlID0gbWFrZVRyYWNlRXh0ZW5kZWRFdWNsaWQoZm4gXyA9PiB0cnVlKQppbgogICB2YWwg
ZXh0ZW5kZWRFdWNsaWRUZXJtID0KICAgICAgZm4gKGEsIGIsIGRvbmUpID0+IGV4dGVuZGVkRXVj
bGlkVGVybShhLCBiLCBkb25lLCB0cmFjZSkKZW5kCgp2YWwgbGFzdFByaW1lID0gcmVmIG9uZQoK
ZnVuIGdjZChhLCBiKSA9IGlmIGlzWmVybyBiIHRoZW4gYSBlbHNlIGdjZChiLCBhIG1vZCBiKQoK
ZnVuIGxjbShhLCBiKSA9IChhICogYikgZGl2IGdjZChhLCBiKQoKdmFsIHByaW1lczogdCBTdHJl
YW0udCA9CiAgIGxldAogICAgICBmdW4gbG9vcChzOiB0IFN0cmVhbS50KSA9CgkgU3RyZWFtLmRl
bGF5CgkgKGZuICgpID0+IAoJICBsZXQgdmFsIChwLCBzKSA9IHZhbE9mKFN0cmVhbS5mb3JjZSBz
KQoJICAgICB2YWwgXyA9IGxhc3RQcmltZSA6PSBwCgkgIGluIFN0cmVhbS5jb25zCgkgICAgIChw
LCBsb29wKFN0cmVhbS5rZWVwKHMsIGZuIHggPT4gbm90KGRpdmlkZXMocCwgeCkpKSkpCgkgIGVu
ZCkKICAgaW4gbG9vcCBtb25pY3MKICAgZW5kCgpzdHJ1Y3R1cmUgSW50ID0KICAgc3RydWN0CiAg
ICAgIG9wZW4gUGVydmFzaXZlLkludAogICAgICB0eXBlIHQgPSBpbnQKICAgICAgdmFsIGxheW91
dCA9IExheW91dC5zdHIgbyB0b1N0cmluZwogICAgICBmdW4gYWRkMSBuID0gbiArIDEKICAgZW5k
CiAgIAp0eXBlIGZhY3RvcnMgPSAodCAqIEludC50KSBsaXN0CgpmdW4gZmFjdG9yKG46IHQpOiBm
YWN0b3JzID0KICAgbGV0CiAgICAgIGZ1biBsb29wKG46IHQsIHByaW1lczogdCBTdHJlYW0udCwg
ZmFjdG9yczogZmFjdG9ycykgPQoJIGlmIGVxdWFscyhuLCBvbmUpCgkgICAgdGhlbiBmYWN0b3Jz
CgkgZWxzZSBsZXQgdmFsIChwLCBwcmltZXMpID0gdmFsT2YoU3RyZWFtLmZvcmNlIHByaW1lcykK
CQkgIHZhbCAobiwgaykgPQoJCSAgICAgbGV0CgkJCWZ1biBsb29wKG4sIGspID0KCQkJICAgbGV0
IHZhbCAocSwgcikgPSBkaXZNb2QobiwgcCkKCQkJICAgaW4gaWYgaXNaZXJvIHIKCQkJCSB0aGVu
IGxvb3AocSwgSW50LisoaywgMSkpCgkJCSAgICAgIGVsc2UgKG4sIGspCgkJCSAgIGVuZAoJCSAg
ICAgaW4gbG9vcChuLCAwKQoJCSAgICAgZW5kCgkgICAgICBpbiBsb29wKG4sIHByaW1lcywKCQkg
ICAgICBpZiBrID0gMAoJCQkgdGhlbiBmYWN0b3JzCgkJICAgICAgZWxzZSAocCwgaykgOjogZmFj
dG9ycykKCSAgICAgIGVuZAogICBpbiBsb29wKG4sIHByaW1lcywgW10pCiAgIGVuZAoKdmFsIGZh
Y3RvciA9CiAgIFRyYWNlLnRyYWNlQXNzZXJ0CiAgICgiZmFjdG9yIiwgbGF5b3V0LCBMaXN0Lmxh
eW91dCAoTGF5b3V0LnR1cGxlMihsYXlvdXQsIEludC5sYXlvdXQpKSwKICAgIGZuIG4gPT4gKG5v
dChpc1plcm8gbiksIGZuIGZhY3RvcnMgPT4KCSAgICAgZXF1YWxzKG4sIExpc3QuZm9sZChmYWN0
b3JzLCBvbmUsIGZuICgocCwgayksIHByb2QpID0+CgkJCQkgcHJvZCAqIChwIF4gaykpKSkpCiAg
IGZhY3RvcgoKZnVuIGV4aXN0c1ByaW1lT2ZTbWFsbGVyTWV0cmljKG06IEludEluZi5pbnQsIGY6
IHQgLT4gYm9vbCk6IGJvb2wgPQogICBsZXQKICAgICAgZnVuIGxvb3AgcHJpbWVzID0KCSBsZXQg
dmFsIChwLCBwcmltZXMpID0gdmFsT2YoU3RyZWFtLmZvcmNlIHByaW1lcykKCSBpbiBJbnRJbmYu
PChtZXRyaWMgcCwgbSkKCSAgICBhbmRhbHNvIChmIHAgb3JlbHNlIGxvb3AgcHJpbWVzKQoJIGVu
ZAogICBpbiBsb29wIHByaW1lcwogICBlbmQKCmZ1biBpc1ByaW1lKHI6IHQpOiBib29sID0KICAg
bGV0IHZhbCByID0gdW5pdEVxdWl2YWxlbnQgcgogICBpbiBleGlzdHNQcmltZU9mU21hbGxlck1l
dHJpYyhJbnRJbmYuKyhtZXRyaWMgciwgSW50SW5mLmZyb21JbnQgMSksCgkJCQkgZm4gcCA9PiBl
cXVhbHMociwgcCkpCiAgIGVuZAoKZnVuIGlzQ29tcG9zaXRlKHI6IHQpOiBib29sID0KICAgZXhp
c3RzUHJpbWVPZlNtYWxsZXJNZXRyaWMobWV0cmljIHIsIGZuIHAgPT4gZGl2aWRlcyhwLCByKSkK
ICAgCmVuZAooKiBzdG9wIG9mIGxpYi9tbHRvbi9iYXNpYy9ldWNsaWRlYW4tcmluZy5mdW4gKikK
KCogc3RhcnQgb2YgbGliL21sdG9uL2Jhc2ljL2ludGVnZXIuZnVuICopCmZ1bmN0b3IgSW50ZWdl
ciAoUzogSU5URUdFUl9TVFJVQ1RTKTogSU5URUdFUiA9CnN0cnVjdAoKb3BlbiBTCgpzdHJ1Y3R1
cmUgSW4gPSBJbjAKICAgCnN0cnVjdHVyZSBJbnQgPQogICBzdHJ1Y3QKICAgICAgb3BlbiBTCgkg
CiAgICAgIHR5cGUgdCA9IGludAoJIAogICAgICB2YWwgemVybyA9IGZyb21JbnQgMAoJIAogICAg
ICB2YWwgbGF5b3V0ID0gTGF5b3V0LnN0ciBvIHRvU3RyaW5nCgkgICAgIAogICAgICB2YWwgZXF1
YWxzID0gb3AgPQogICBlbmQKCnN0cnVjdHVyZSBSID0KICAgT3JkZXJlZFJpbmcgKHN0cnVjdHVy
ZSBSID0gCgkJICBSaW5nV2l0aElkZW50aXR5IChzdHJ1Y3R1cmUgUiA9IFJpbmcgKEludCkKCQkJ
CSAgIG9wZW4gUiBTCgkJCQkgICB2YWwgb25lID0gZnJvbUludCAxKQoJICAgICAgIG9wZW4gUiBT
CgkgICAgICAgdmFsIHtjb21wYXJlLCAuLi59ID0KCQkgIFJlbGF0aW9uLmxlc3NFcXVhbCB7PCA9
IG9wIDwsIGVxdWFscyA9IGVxdWFsc30pCm9wZW4gUiBTCgpleGNlcHRpb24gSW5wdXQKZnVuIGlu
cHV0IGkgPSAoSW4uaWdub3JlU3BhY2VzIGkKCSAgICAgICA7IChjYXNlIGZyb21TdHJpbmcgKElu
LmlucHV0VG9TcGFjZSBpKSBvZgoJCSAgICAgTk9ORSA9PiByYWlzZSBJbnB1dAoJCSAgIHwgU09N
RSBuID0+IG4pKQoKdmFsIHRvUmVhbCA9IFBlcnZhc2l2ZS5SZWFsLmZyb21JbnQKICAgCnN0cnVj
dHVyZSBJID0gRXVjbGlkZWFuUmluZyAob3BlbiBSIFMKCQkJICAgIHZhbCBtZXRyaWMgPSB0b0lu
dEluZiBvIGFicwoJCQkgICAgdmFsIG1vbmljcyA9IFN0cmVhbS5pbmZpbml0ZSAodHdvLCBmbiBu
ID0+IG4gKyBvbmUpCgkJCSAgICB2YWwgdW5pdEVxdWl2YWxlbnQgPSBhYnMpCm9wZW4gSQoKZnVu
IGlzRXZlbiBuID0gaXNaZXJvIChuIG1vZCB0d28pCiAgIAp2YWwgaXNPZGQgPSBub3QgbyBpc0V2
ZW4KCmZ1biB0b0NvbW1hU3RyaW5nIG4gPQogICBsZXQKICAgICAgZnVuIGxvb3AgKGNoYXJzLCBh
Y2N1bSkgPQoJIGNhc2UgY2hhcnMgb2YKCSAgICB4MSA6OiB4MiA6OiB4MyA6OiAoY2hhcnMgYXMg
XyA6OiBfKSA9PgoJICAgICAgIGxvb3AgKGNoYXJzLCAjIiwiIDo6IHgzIDo6IHgyIDo6IHgxIDo6
IGFjY3VtKQoJICB8IF8gPT4gaW1wbG9kZSAocmV2IGNoYXJzIEAgYWNjdW0pCiAgIGluIGxvb3Ag
KHJldiAoZXhwbG9kZSAodG9TdHJpbmcgbikpLCBbXSkKICAgZW5kCgpmdW4gY2hvb3NlIChuLCBr
KSA9CiAgIGxldCB2YWwgayA9IG1heCAoaywgbiAtIGspCiAgIGluIHByb2RGcm9tVG8ge2Zyb20g
PSBhZGQxIGssIHRvID0gbiwgdGVybSA9IGZuIGkgPT4gaX0KICAgICAgZGl2IGZhY3RvcmlhbCAo
biAtIGspCiAgIGVuZAoKZnVuIG91dHB1dCAobiwgb3V0KSA9IE91dC5vdXRwdXQgKG91dCwgdG9T
dHJpbmcgbikKICAgCmZ1biBwb3dlck1vZCB7YmFzZSwgZXhwLCBtb2R1bHVzfSA9CiAgIFBvd2Vy
LnBvd2VyIHtsYXlvdXQgPSBsYXlvdXQsCgkgICAgICAgb25lID0gb25lLAoJICAgICAgIHRpbWVz
ID0gZm4gKHgsIHkpID0+IHggKiB5IG1vZCBtb2R1bHVzfQogICAoYmFzZSwgZXhwKQoKZnVuIGxh
cmdlc3QgKGksIGYpID0KICAgbGV0CiAgICAgIGZ1biBsb29wIChuOiB0KSA9CgkgaWYgZiBuCgkg
ICAgdGhlbiBuCgkgZWxzZSBsb29wIChzdWIxIG4pCiAgIGluCiAgICAgIGxvb3AgaQogICBlbmQK
CmZ1biBzbWFsbGVzdCAoaSwgZikgPQogICBsZXQKICAgICAgZnVuIGxvb3AgKG46IHQpID0KCSBp
ZiBmIG4KCSAgICB0aGVuIG4KCSBlbHNlIGxvb3AgKGFkZDEgbikKICAgaW4gbG9vcCBpCiAgIGVu
ZAoKZnVuIGxlYXN0IChzdGFydDogdCwgc3RvcDogdCwgZjogaW50IC0+IGJvb2wpOiBpbnQgb3B0
aW9uID0KICAgbGV0CiAgICAgIGZ1biBsb29wIChpOiB0KSA9CgkgaWYgaSA9IHN0b3AKCSAgICB0
aGVuIE5PTkUKCSBlbHNlIGlmIGYgaQoJCSB0aGVuIFNPTUUgaQoJICAgICAgZWxzZSBsb29wIChp
ICsgb25lKQogICBpbiBsb29wIHN0YXJ0CiAgIGVuZAoKZnVuICdhIGZvbGQgKHN0YXJ0OiB0LCBz
dG9wOiB0LCBhOiAnYSwgZjogaW50ICogJ2EgLT4gJ2EpOiAnYSA9CiAgIGxldAogICAgICB2YWwg
XyA9IEFzc2VydC5hc3NlcnQgKCJmb2xkIiwgZm4gKCkgPT4gc3RhcnQgPD0gc3RvcCArIG9uZSkK
ICAgICAgZnVuIGxvb3AgKGk6IHQsIGE6ICdhKTogJ2EgPQoJIGlmIGVxdWFscyAoaSwgc3RvcCkK
CSAgICB0aGVuIGEKCSBlbHNlIGxvb3AgKGkgKyBvbmUsIGYgKGksIGEpKQogICBpbiBsb29wIChz
dGFydCwgYSkKICAgZW5kCgpmdW4gZm9yYWxsIChzdGFydDogdCwgc3RvcDogdCwgZjogaW50IC0+
IGJvb2wpOiBib29sID0KICAgRHluYW1pY1dpbmQud2l0aEVzY2FwZQogICAoZm4gZXNjYXBlID0+
IChmb2xkIChzdGFydCwgc3RvcCwgKCksIGZuIChpLCAoKSkgPT4KCQkgICAgICAgaWYgZiBpIHRo
ZW4gKCkgZWxzZSBlc2NhcGUgZmFsc2UpCgkJICA7IHRydWUpKQoKZnVuIGV4aXN0cyAoc3RhcnQs
IHN0b3AsIGYpID0gbm90IChmb3JhbGwgKHN0YXJ0LCBzdG9wLCBub3QgbyBmKSkKCmZ1biAnYSBm
b2xkRG93biAoc3RhcnQ6IHQsIHN0b3A6IHQsIGE6ICdhLCBmOiBpbnQgKiAnYSAtPiAnYSk6ICdh
ID0KICAgbGV0CiAgICAgIHZhbCBfID0gQXNzZXJ0LmFzc2VydCAoImZvbGREb3duIiwgZm4gKCkg
PT4gc3RhcnQgPD0gc3RvcCArIG9uZSkKICAgICAgZnVuIGxvb3AgKGk6IHQsIGE6ICdhKSA9Cgkg
aWYgaSA8IHN0YXJ0CgkgICAgdGhlbiBhCgkgZWxzZSBsb29wIChzdWIxIGksIGYgKGksIGEpKQog
ICBpbiBsb29wIChzdWIxIHN0b3AsIGEpCiAgIGVuZAoKZnVuIG1hcCAoc3RhcnQ6IHQsIHN0b3A6
IHQsIGY6IHQgLT4gJ2EpOiAnYSBsaXN0ID0KICAgZm9sZERvd24gKHN0YXJ0LCBzdG9wLCBbXSwg
Zm4gKGksIGwpID0+IGYgaSA6OiBsKQoKZnVuIGZvciAoc3RhcnQ6IHQsIHN0b3A6IHQsIGY6IHQg
LT4gdW5pdCk6IHVuaXQgPQogICBmb2xkIChzdGFydCwgc3RvcCwgKCksIGYgbyAjMSkKCmZ1biBm
b3JEb3duIChzdGFydDogdCwgc3RvcDogdCwgZjogdCAtPiB1bml0KTogdW5pdCA9CiAgIGZvbGRE
b3duIChzdGFydCwgc3RvcCwgKCksIGYgbyAjMSkKCmZ1biBzY2FuIChyYWRpeCwgcmVhZGVyKSA9
IEludC5zY2FuIHJhZGl4IHJlYWRlcgoKZnVuIGZvcm1hdCAoaSwgcikgPSBmbXQgciBpCgkgICAg
CmVuZAooKiBzdG9wIG9mIGxpYi9tbHRvbi9iYXNpYy9pbnRlZ2VyLmZ1biAqKQooKiBzdGFydCBv
ZiBsaWIvbWx0b24vYmFzaWMvaW50LnNtbCAqKQpzdHJ1Y3R1cmUgSW50OgogICBzaWcKICAgICAg
aW5jbHVkZSBJTlRFR0VSCgogICAgICB0eXBlIGludAoJIAogICAgICB2YWwgbWF4SW50OiB0CiAg
ICAgIHZhbCBtaW5JbnQ6IHQKICAgICAgdmFsIHRvUmVhbDogdCAtPiByZWFsCiAgIGVuZCA9CiAg
IHN0cnVjdAogICAgICBzdHJ1Y3R1cmUgSW50ID0gUGVydmFzaXZlLkludAogICAgICBzdHJ1Y3R1
cmUgSSA9IEludGVnZXIob3BlbiBJbnQKCQkJICAgIGZ1biBkaXZNb2QoYSwgYikgPSAoYSBkaXYg
YiwgYSBtb2QgYikKCQkJICAgIGZ1biBxdW90UmVtKGEsIGIpID0gKHF1b3QoYSwgYiksIHJlbShh
LCBiKSkKCQkJICAgIHZhbCB0b0ludEluZiA9IFBlcnZhc2l2ZS5JbnRJbmYuZnJvbUludCkKICAg
ICAgb3BlbiBJCgogICAgICB0eXBlIGludCA9IHQKICAgICAgdmFsIG1heEludCA9IHZhbE9mIElu
dC5tYXhJbnQKICAgICAgdmFsIG1pbkludCA9IHZhbE9mIEludC5taW5JbnQKICAgICAgdmFsIHRv
UmVhbCA9IFBlcnZhc2l2ZS5SZWFsLmZyb21JbnQKICAgZW5kCigqIHN0b3Agb2YgbGliL21sdG9u
L2Jhc2ljL2ludC5zbWwgKikKKCogc3RhcnQgb2YgbGliL21sdG9uL2Jhc2ljL2NoYXIuc2lnICop
CnR5cGUgaW50ID0gUGVydmFzaXZlLkludC5pbnQKdHlwZSB3b3JkOCA9IFBlcnZhc2l2ZS5Xb3Jk
OC53b3JkCiAgIApzaWduYXR1cmUgQ0hBUiA9CiAgIHNpZwogICAgICB0eXBlIHQgPSBjaGFyCgog
ICAgICB2YWwgPCA6IHQgKiB0IC0+IGJvb2wKICAgICAgdmFsIDw9IDogdCAqIHQgLT4gYm9vbAog
ICAgICB2YWwgPiA6IHQgKiB0IC0+IGJvb2wKICAgICAgdmFsID49IDogdCAqIHQgLT4gYm9vbAog
ICAgICB2YWwgY2hyOiBpbnQgLT4gdAogICAgICB2YWwgY29tcGFyZTogdCAqIHQgLT4gUmVsYXRp
b24udAogICAgICB2YWwgZGFzaDogdAogICAgICB2YWwgZGlnaXRUb0ludDogdCAtPiBpbnQgb3B0
aW9uCiAgICAgIHZhbCBkcXVvdGU6IHQgKCogIiAqKQogICAgICB2YWwgZXF1YWxzOiB0ICogdCAt
PiBib29sIAogICAgICB2YWwgZXNjYXBlQzogdCAtPiBzdHJpbmcKICAgICAgdmFsIGVzY2FwZVNN
TDogdCAtPiBzdHJpbmcKICAgICAgdmFsIGZyb21DU3RyaW5nOiBzdHJpbmcgLT4gdCBvcHRpb24K
ICAgICAgdmFsIGZyb21EaWdpdDogaW50IC0+IHQKICAgICAgdmFsIGZyb21IZXhEaWdpdDogaW50
IC0+IHQKICAgICAgdmFsIGZyb21JbnQ6IGludCAtPiB0CiAgICAgIHZhbCBmcm9tU3RyaW5nOiBz
dHJpbmcgLT4gdCBvcHRpb24KICAgICAgdmFsIGZyb21Xb3JkODogIHdvcmQ4IC0+IHQKICAgICAg
dmFsIGlzQWxwaGE6IHQgLT4gYm9vbAogICAgICB2YWwgaXNBbHBoYU51bTogdCAtPiBib29sCiAg
ICAgIHZhbCBpc0FzY2lpOiB0IC0+IGJvb2wKICAgICAgdmFsIGlzQ250cmw6IHQgLT4gYm9vbAog
ICAgICB2YWwgaXNEaWdpdDogdCAtPiBib29sCiAgICAgIHZhbCBpc0dyYXBoOiB0IC0+IGJvb2wK
ICAgICAgdmFsIGlzSGV4RGlnaXQ6IHQgLT4gYm9vbAogICAgICB2YWwgaXNMb3dlcjogdCAtPiBi
b29sCiAgICAgIHZhbCBpc1ByaW50OiB0IC0+IGJvb2wKICAgICAgdmFsIGlzU3BhY2U6IHQgLT4g
Ym9vbAogICAgICB2YWwgaXNVcHBlcjogdCAtPiBib29sCiAgICAgIHZhbCBsYXlvdXQ6IHQgLT4g
TGF5b3V0LnQKICAgICAgdmFsIG1heDogdCAqIHQgLT4gdAogICAgICB2YWwgbWF4Q2hhcjogdAog
ICAgICB2YWwgbWF4T3JkOiBpbnQKICAgICAgdmFsIG1lbW9pemU6IChjaGFyIC0+ICdhKSAtPiAo
Y2hhciAtPiAnYSkKICAgICAgdmFsIG1pbjogdCAqIHQgLT4gdAogICAgICB2YWwgbWluQ2hhcjog
dAogICAgICB2YWwgbmV3bGluZTogdAogICAgICB2YWwgb3JkOiB0IC0+IGludAogICAgICB2YWwg
b3V0cHV0OiB0ICogVGV4dElPLm91dHN0cmVhbSAtPiB1bml0CiAgICAgIHZhbCBwcmVkOiB0IC0+
IHQKICAgICAgdmFsIHNwYWNlOiB0CiAgICAgIHZhbCBzdWNjOiB0IC0+IHQKICAgICAgdmFsIHRv
SGV4RGlnaXQ6IHQgLT4gaW50CiAgICAgIHZhbCB0b0ludDogdCAtPiBpbnQKICAgICAgdmFsIHRv
TG93ZXI6IHQgLT4gdAogICAgICB2YWwgdG9TdHJpbmc6IHQgLT4gc3RyaW5nCiAgICAgIHZhbCB0
b1VwcGVyOiB0IC0+IHQKICAgICAgdmFsIHRvV29yZDg6IHQgLT4gd29yZDgKICAgZW5kCiAgIApm
dW5jdG9yIFRlc3RDaGFyIChTOiBDSEFSKTogc2lnIGVuZCA9CiAgIHN0cnVjdAogICAgICBvcGVu
IFMKICAgICAgdmFsIF8gPQoJIEFzc2VydC5hc3NlcnQKCSAoIkNoYXIiLCBmbiAoKSA9PgoJICAi
XFwwMDAiID0gZXNjYXBlQyAjIlwwMDAiKQogICBlbmQKKCogc3RvcCBvZiBsaWIvbWx0b24vYmFz
aWMvY2hhci5zaWcgKikKKCogc3RhcnQgb2YgbGliL21sdG9uL2Jhc2ljL2NoYXIuc21sICopCnN0
cnVjdHVyZSBDaGFyOiBDSEFSID0KICAgc3RydWN0CiAgICAgIG9wZW4gQ2hhcjAKCiAgICAgIHZh
bCBsYXlvdXQgPSBMYXlvdXQuc3RyIG8gZXNjYXBlU01MCgogICAgICB2YWwgZnJvbUludCA9Cgkg
VHJhY2UudHJhY2UoIkNoYXIuZnJvbUludCIsIExheW91dC5zdHIgbyBJbnQudG9TdHJpbmcsIGxh
eW91dCkgZnJvbUludAoKICAgICAgdmFsIGlzRGlnaXQgPSBUcmFjZS50cmFjZSgiQ2hhci5pc0Rp
Z2l0IiwgbGF5b3V0LCBCb29sLmxheW91dCkgaXNEaWdpdAogICBlbmQKKCogc3RvcCBvZiBsaWIv
bWx0b24vYmFzaWMvY2hhci5zbWwgKikKKCogc3RhcnQgb2YgbGliL21sdG9uL2Jhc2ljL3ZlY3Rv
ci5zaWcgKikKdHlwZSBpbnQgPSBJbnQudAogICAKc2lnbmF0dXJlIFZFQ1RPUl9TVFJVQ1RTID0K
ICAgc2lnCiAgICAgIHR5cGUgJ2EgdAogICAgICBleGNlcHRpb24gTmV3CgogICAgICB2YWwgbGVu
Z3RoOiAnYSB0IC0+IGludAogICAgICB2YWwgc3ViOiAnYSB0ICogaW50IC0+ICdhCiAgICAgIHZh
bCB0YWJ1bGF0ZTogaW50ICogKGludCAtPiAnYSkgLT4gJ2EgdAogICBlbmQKCnNpZ25hdHVyZSBW
RUNUT1IgPQogICBzaWcKICAgICAgaW5jbHVkZSBWRUNUT1JfU1RSVUNUUwoKICAgICAgdmFsIGNv
bXBhcmU6ICdhIHQgKiAnYSB0ICogKCdhICogJ2EgLT4gb3JkZXIpIC0+IG9yZGVyCiAgICAgIHZh
bCBjb25jYXQ6ICdhIHQgbGlzdCAtPiAnYSB0CiAgICAgIHZhbCBjb25jYXRWOiAnYSB0IHQgLT4g
J2EgdAogICAgICB2YWwgY29weTogJ2EgdCAtPiAnYSB0CiAgICAgIHZhbCBlcXVhbHM6ICdhIHQg
KiAnYiB0ICogKCdhICogJ2IgLT4gYm9vbCkgLT4gYm9vbAogICAgICB2YWwgZXhpc3RzOiAnYSB0
ICogKCdhIC0+IGJvb2wpIC0+IGJvb2wKICAgICAgdmFsIGV4aXN0c1I6ICdhIHQgKiBpbnQgKiBp
bnQgKiAoJ2EgLT4gYm9vbCkgLT4gYm9vbAogICAgICB2YWwgaXNFbXB0eTogJ2EgdCAtPiBib29s
CiAgICAgIHZhbCBpc1NvcnRlZDogJ2EgdCAqICgnYSAqICdhIC0+IGJvb2wpIC0+IGJvb2wKICAg
ICAgdmFsIGZvbGQyRnJvbTogJ2EgdCAqICdiIHQgKiBpbnQgKiAnYyAqICgnYSAqICdiICogJ2Mg
LT4gJ2MpIC0+ICdjCiAgICAgIHZhbCBmb2xkMjogJ2EgdCAqICdiIHQgKiAnYyAqICgnYSAqICdi
ICogJ2MgLT4gJ2MpIC0+ICdjCiAgICAgIHZhbCBmb2xkM0Zyb206CgkgJ2EgdCAqICdiIHQgKiAn
YyB0ICogaW50ICogJ2QgKiAoJ2EgKiAnYiAqICdjICogJ2QgLT4gJ2QpIC0+ICdkCiAgICAgIHZh
bCBmb2xkMzogJ2EgdCAqICdiIHQgKiAnYyB0ICogJ2QgKiAoJ2EgKiAnYiAqICdjICogJ2QgLT4g
J2QpIC0+ICdkCiAgICAgIGRhdGF0eXBlICgnYSwgJ2IpIGNvbnRpbnVlID0KCSBDb250aW51ZSBv
ZiAnYQogICAgICAgfCBEb25lIG9mICdiCiAgICAgICgqIGZvbGQnICh2LCBpLCBiLCBmLCBnKQog
ICAgICAgKiBmb2xkcyBvdmVyIHYgc3RhcnRpbmcgYXQgaW5kZXggaSB3aXRoIHN0YXRlIGIsIGFw
cGx5aW5nIGYgdG8gZWFjaAogICAgICAgKiBpbmRleCwgdmVjdG9yIGVsZW1lbnQsIGFuZCBzdGF0
ZSwgY29udGludWluZyBkZXBlbmRpbmcgb24gd2hhdCBmCiAgICAgICAqIHJldHVybnMuICBJZiB0
aGUgZW5kIG9mIHRoZSB2ZWN0b3IgaXMgcmVhY2hlZCwgZyBpcyBhcHBsaWVkIHRvIHRoZQogICAg
ICAgKiBzdGF0ZS4KICAgICAgICopCiAgICAgIHZhbCBmb2xkJzoKCSAnYSB0ICogaW50ICogJ2Ig
KiAoaW50ICogJ2EgKiAnYiAtPiAoJ2IsICdjKSBjb250aW51ZSkgKiAoJ2IgLT4gJ2MpCgkgLT4g
J2MKICAgICAgdmFsIGZvbGQ6ICdhIHQgKiAnYiAqICgnYSAqICdiIC0+ICdiKSAtPiAnYgogICAg
ICB2YWwgZm9sZEZyb206ICdhIHQgKiBpbnQgKiAnYiAqICgnYSAqICdiIC0+ICdiKSAtPiAnYgog
ICAgICB2YWwgZm9sZGk6ICdhIHQgKiAnYiAqIChpbnQgKiAnYSAqICdiIC0+ICdiKSAtPiAnYgog
ICAgICB2YWwgZm9sZHI6ICdhIHQgKiAnYiAqICgnYSAqICdiIC0+ICdiKSAtPiAnYgogICAgICB2
YWwgZm9sZHIyOiAnYSB0ICogJ2IgdCAqICdjICogKCdhICogJ2IgKiAnYyAtPiAnYykgLT4gJ2MK
ICAgICAgdmFsIGZvcmFsbDogJ2EgdCAqICgnYSAtPiBib29sKSAtPiBib29sCiAgICAgIHZhbCBm
b3JhbGwyOiAnYSB0ICogJ2IgdCAqICgnYSAqICdiIC0+IGJvb2wpIC0+IGJvb2wKICAgICAgdmFs
IGZvcmFsbGk6ICdhIHQgKiAoaW50ICogJ2EgLT4gYm9vbCkgLT4gYm9vbAogICAgICB2YWwgZm9y
ZWFjaDogJ2EgdCAqICgnYSAtPiB1bml0KSAtPiB1bml0CiAgICAgIHZhbCBmb3JlYWNoaTogJ2Eg
dCAqIChpbnQgKiAnYSAtPiB1bml0KSAtPiB1bml0CiAgICAgIHZhbCBmb3JlYWNoMjogJ2EgdCAq
ICdiIHQgKiAoJ2EgKiAnYiAtPiB1bml0KSAtPiB1bml0CiAgICAgIHZhbCBmb3JlYWNoUjogJ2Eg
dCAqIGludCAqIGludCAqICgnYSAtPiB1bml0KSAtPiB1bml0CiAgICAgIHZhbCBmcm9tTGlzdDog
J2EgbGlzdCAtPiAnYSB0CiAgICAgIHZhbCBmcm9tTGlzdE1hcDogJ2EgbGlzdCAqICgnYSAtPiAn
YikgLT4gJ2IgdAogICAgICB2YWwgZnJvbUxpc3RSZXY6ICdhIGxpc3QgLT4gJ2EgdAogICAgICB2
YWwgaW5kZXhpOiAnYSB0ICogKGludCAqICdhIC0+IGJvb2wpIC0+IGludCBvcHRpb24KICAgICAg
dmFsIGluZGV4OiAnYSB0ICogKCdhIC0+IGJvb2wpIC0+IGludCBvcHRpb24KICAgICAgdmFsIGlu
ZGljZXM6IGJvb2wgdCAtPiBpbnQgdAogICAgICB2YWwga2VlcEFsbDogJ2EgdCAqICgnYSAtPiBi
b29sKSAtPiAnYSB0CiAgICAgIHZhbCBrZWVwQWxsTWFwOiAnYSB0ICogKCdhIC0+ICdiIG9wdGlv
bikgLT4gJ2IgdAogICAgICB2YWwga2VlcEFsbE1hcGk6ICdhIHQgKiAoaW50ICogJ2EgLT4gJ2Ig
b3B0aW9uKSAtPiAnYiB0CiAgICAgIHZhbCBrZWVwQWxsTWFwMjogJ2EgdCAqICdiIHQgKiAoJ2Eg
KiAnYiAtPiAnYyBvcHRpb24pIC0+ICdjIHQKICAgICAgdmFsIGtlZXBBbGxTb21lOiAnYSBvcHRp
b24gdCAtPiAnYSB0CiAgICAgIHZhbCBsYXN0OiAnYSB0IC0+ICdhCiAgICAgIHZhbCBsYXlvdXQ6
ICgnYSAtPiBMYXlvdXQudCkgLT4gJ2EgdCAtPiBMYXlvdXQudAogICAgICB2YWwgbG9vcDogJ2Eg
dCAqICgnYSAtPiAnYiBvcHRpb24pICogKHVuaXQgLT4gJ2IpIC0+ICdiCiAgICAgIHZhbCBsb29w
aTogJ2EgdCAqIChpbnQgKiAnYSAtPiAnYiBvcHRpb24pICogKHVuaXQgLT4gJ2IpIC0+ICdiCiAg
ICAgIHZhbCBtYXA6ICdhIHQgKiAoJ2EgLT4gJ2IpIC0+ICdiIHQKICAgICAgdmFsIG1hcDI6ICdh
IHQgKiAnYiB0ICogKCdhICogJ2IgLT4gJ2MpIC0+ICdjIHQKICAgICAgdmFsIG1hcDM6ICdhIHQg
KiAnYiB0ICogJ2MgdCAqICgnYSAqICdiICogJ2MgLT4gJ2QpIC0+ICdkIHQKICAgICAgdmFsIG1h
cEFuZEZvbGQ6ICdhIHQgKiAnYiAqICgnYSAqICdiIC0+ICdjICogJ2IpIC0+ICdjIHQgKiAnYgog
ICAgICB2YWwgbWFwMkFuZEZvbGQ6ICdhIHQgKiAnYiB0ICogJ2MgKiAoJ2EgKiAnYiAqICdjIC0+
ICdkICogJ2MpIC0+ICdkIHQgKiAnYwogICAgICB2YWwgbWFwaTogJ2EgdCAqIChpbnQgKiAnYSAt
PiAnYikgLT4gJ2IgdAogICAgICB2YWwgbmV3OiBpbnQgKiAnYSAtPiAnYSB0CiAgICAgIHZhbCBu
ZXcwOiB1bml0IC0+ICdhIHQKICAgICAgdmFsIG5ldzE6ICdhIC0+ICdhIHQKICAgICAgdmFsIG5l
dzI6ICdhICogJ2EgLT4gJ2EgdAogICAgICB2YWwgbmV3MzogJ2EgKiAnYSAqICdhIC0+ICdhIHQK
ICAgICAgdmFsIG5ldzQ6ICdhICogJ2EgKiAnYSAqICdhIC0+ICdhIHQKICAgICAgdmFsIHBlZWs6
ICdhIHQgKiAoJ2EgLT4gYm9vbCkgLT4gJ2Egb3B0aW9uCiAgICAgIHZhbCBwZWVrTWFwOiAnYSB0
ICogKCdhIC0+ICdiIG9wdGlvbikgLT4gJ2Igb3B0aW9uCiAgICAgIHZhbCBwZWVrTWFwaTogJ2Eg
dCAqICgnYSAtPiAnYiBvcHRpb24pIC0+IChpbnQgKiAnYikgb3B0aW9uCiAgICAgIHZhbCByZXY6
ICdhIHQgLT4gJ2EgdAogICAgICAoKiBNZXJnZSBzb3J0LiAgWW91IHNob3VsZCBwYXNzIHRoZSA8
PSBmdW5jdGlvbiwgbm90IHRoZSA8IGZ1bmN0aW9uLAogICAgICAgKiBzbyB0aGF0IHRoZSByZXN1
bHQgY2FuIGJlIHZlcmlmaWVkIGFzIGlzU29ydGVkLgogICAgICAgKikKICAgICAgdmFsIHNvcnQ6
ICdhIHQgKiAoJ2EgKiAnYSAtPiBib29sKSAtPiAnYSB0CiAgICAgIHZhbCBzcGxpdExhc3Q6ICdh
IHQgLT4gJ2EgdCAqICdhCiAgICAgIHZhbCB0YWJ1bGF0b3I6IGludCAqICgoJ2EgLT4gdW5pdCkg
LT4gdW5pdCkgLT4gJ2EgdAogICAgICB2YWwgdG9MaXN0OiAnYSB0IC0+ICdhIGxpc3QKICAgICAg
dmFsIHRvTGlzdE1hcDogJ2EgdCAqICgnYSAtPiAnYikgLT4gJ2IgbGlzdAogICAgICB2YWwgdG9M
aXN0UmV2OiAnYSB0IC0+ICdhIGxpc3QKICAgICAgdmFsIHVuemlwOiAoJ2EgKiAnYikgdCAtPiAn
YSB0ICogJ2IgdAogICAgICB2YWwgdW56aXAzOiAoJ2EgKiAnYiAqICdjKSB0IC0+ICdhIHQgKiAn
YiB0ICogJ2MgdAogICAgICB2YWwgemlwOiAnYSB0ICogJ2IgdCAtPiAoJ2EgKiAnYikgdAogICBl
bmQKCmZ1bmN0b3IgVGVzdFZlY3RvciAoUzogVkVDVE9SKTogc2lnIGVuZCA9CnN0cnVjdAoKb3Bl
biBTCgp2YWwgXyA9CiAgIEFzc2VydC5hc3NlcnQKICAgKCJWZWN0b3IiLCBmbiAoKSA9PgogICAg
bGV0CiAgICAgICBmdW4gY2hlY2sgKGw6IGludCBsaXN0KTogYm9vbCA9CgkgIExpc3QuaW5zZXJ0
aW9uU29ydCAobCwgb3AgPD0pID0gdG9MaXN0IChzb3J0IChmcm9tTGlzdCBsLCBvcCA8PSkpCiAg
ICBpbgogICAgICAgTGlzdC5mb3JhbGwKICAgICAgIChbW10sCgkgWzFdLAoJIFsxLDJdLAoJIFsx
LDIsM10sCgkgWzIsMSwzXSwKCSBbMSwyLDMsNCw1XSwKCSBbMyw1LDYsNyw4LDEsMiwzLDYsNF1d
LAoJY2hlY2spCiAgICBlbmQgYW5kYWxzbwogICAgbGV0CiAgICAgICBmdW4gY2hlY2sgbHMgPQoJ
ICBMaXN0LmNvbmNhdCBscyA9IHRvTGlzdCAoY29uY2F0IChMaXN0Lm1hcCAobHMsIGZyb21MaXN0
KSkpCgkgIGFuZGFsc28gTGlzdC5jb25jYXQgbHMgPSB0b0xpc3QgKGNvbmNhdFYgKGZyb21MaXN0
TWFwIChscywgZnJvbUxpc3QpKSkKICAgIGluCiAgICAgICBMaXN0LmZvcmFsbAogICAgICAgKFtb
XSwKCSBbW11dLAoJIFtbXSwgWzFdXSwKCSBbWzFdLCBbXV0sCgkgW1sxXSwgW10sIFsyXV0sCgkg
W1sxLCAyXSwgWzMsIDRdXV0sCgljaGVjaykKICAgIGVuZCkKCmVuZAooKiBzdG9wIG9mIGxpYi9t
bHRvbi9iYXNpYy92ZWN0b3Iuc2lnICopCigqIHN0YXJ0IG9mIGxpYi9tbHRvbi9iYXNpYy9hcnJh
eS5zaWcgKikKdHlwZSBpbnQgPSBJbnQudAogICAKc2lnbmF0dXJlIEFSUkFZX1NUUlVDVFMgPQog
ICBzaWcKICAgICAgaW5jbHVkZSBWRUNUT1JfU1RSVUNUUwoKICAgICAgdmFsIHVwZGF0ZTogJ2Eg
dCAqIGludCAqICdhIC0+IHVuaXQKICAgZW5kCgpzaWduYXR1cmUgQVJSQVkgPQogICBzaWcKICAg
ICAgaW5jbHVkZSBWRUNUT1IKCiAgICAgIHZhbCBhcnJheTogaW50ICogJ2EgLT4gJ2EgdCAoKiBz
eW5vbnltIGZvciBuZXcgKikKICAgICAgdmFsIGdldEFuZFNldDogJ2EgdCAtPiAoaW50IC0+ICdh
KSAqIChpbnQgKiAnYSAtPiB1bml0KQogICAgICB2YWwgbW9kaWZ5OiAnYSB0ICogKCdhIC0+ICdh
KSAtPiB1bml0CiAgICAgIHZhbCBzaHVmZmxlOiAnYSB0IC0+IHVuaXQKICAgICAgKCogUHV0IHJh
bmRvbSBlbGVtZW50cyBpbiB0aGUgZmlyc3QgbiBwb3NpdGlvbnMuICopCiAgICAgIHZhbCBzaHVm
ZmxlTjogJ2EgdCAqIGludCAtPiB1bml0CiAgICAgIHZhbCBzd2FwOiAnYSB0ICogaW50ICogaW50
IC0+IHVuaXQKICAgICAgdmFsIHRvVmVjdG9yOiAnYSB0IC0+ICdhIHZlY3RvcgogICAgICB2YWwg
dXBkYXRlOiAnYSB0ICogaW50ICogJ2EgLT4gdW5pdAogICBlbmQKKCogc3RvcCBvZiBsaWIvbWx0
b24vYmFzaWMvYXJyYXkuc2lnICopCigqIHN0YXJ0IG9mIGxpYi9tbHRvbi9iYXNpYy90aHJlYWQu
c2lnICopCnNpZ25hdHVyZSBUSFJFQUQgPQogICBzaWcKICAgICAgaW5jbHVkZSBNTFRPTl9USFJF
QUQKCiAgICAgICgqIGdlbmVyYXRlIGYgcmV0dXJucyBhIGZ1bmN0aW9uIGcsIHRoYXQgd2hlbiBj
YWxsZWQgcnVucyBmIHVudGlsIGYKICAgICAgICogZWl0aGVyIGNvbXBsZXRlcywgaW4gd2hpY2gg
Y2FzZSBnIHJldHVybnMgTk9ORSwgb3IgZiBjYWxscyBpdHMgYXJndW1lbnQsCiAgICAgICAqIGlu
IHdoaWNoIGNhc2UgZyByZXR1cm5zIHdoYXQgZiBwYXNzZXMgaXQsIGFuZCB0aGVuIHBhdXNlcyBm
LgogICAgICAgKikKICAgICAgdmFsIGdlbmVyYXRlOiAoKCdhIC0+IHVuaXQpIC0+IHVuaXQpIC0+
IHVuaXQgLT4gJ2Egb3B0aW9uCiAgIGVuZAooKiBzdG9wIG9mIGxpYi9tbHRvbi9iYXNpYy90aHJl
YWQuc2lnICopCigqIHN0YXJ0IG9mIGxpYi9tbHRvbi9iYXNpYy90aHJlYWQuc21sICopCnN0cnVj
dHVyZSBUaHJlYWQ6IFRIUkVBRCA9CnN0cnVjdAoKb3BlbiBNTHRvbi5UaHJlYWQKCmZ1biBnZW5l
cmF0ZSAoZjogKCdhIC0+IHVuaXQpIC0+IHVuaXQpOiB1bml0IC0+ICdhIG9wdGlvbiA9CiAgIGxl
dAogICAgICB2YWwgcGF1c2VkOiAnYSBvcHRpb24gdCBvcHRpb24gcmVmID0gcmVmIE5PTkUKICAg
ICAgdmFsIGdlbjogdW5pdCB0IG9wdGlvbiByZWYgPSByZWYgTk9ORQogICAgICBmdW4gcmV0dXJu
IChhOiAnYSBvcHRpb24pOiB1bml0ID0KCSBzd2l0Y2ggKGZuIHQnID0+CgkJIGxldCB2YWwgXyA9
IGdlbiA6PSBTT01FIHQnCgkJICAgIHZhbCB0ID0gdmFsT2YgKCFwYXVzZWQpCgkJICAgIHZhbCBf
ID0gcGF1c2VkIDo9IE5PTkUKCQkgaW4gKHQsIGEpCgkJIGVuZCkKICAgICAgdmFsIF8gPQoJIGdl
biA6PSBTT01FIChuZXcgKGZuICgpID0+IChmIChyZXR1cm4gbyBTT01FKQoJCQkJICAgICA7IHJl
dHVybiBOT05FKSkpCiAgIGluIGZuICgpID0+IHN3aXRjaCAoZm4gdCA9PiAocGF1c2VkIDo9IFNP
TUUgdAoJCQkJOyAodmFsT2YgKCFnZW4pLCAoKSkpKQogICBlbmQKCmVuZAooKiBzdG9wIG9mIGxp
Yi9tbHRvbi9iYXNpYy90aHJlYWQuc21sICopCigqIHN0YXJ0IG9mIGxpYi9tbHRvbi9iYXNpYy92
ZWN0b3IuZnVuICopCmZ1bmN0b3IgVmVjdG9yIChTOiBzaWcKCQkgICAgICBpbmNsdWRlIFZFQ1RP
Ul9TVFJVQ1RTCgkJICAgICAgdmFsIHVuc2FmZVN1YjogJ2EgdCAqIGludCAtPiAnYQoJCSAgIGVu
ZCk6IFZFQ1RPUiA9CnN0cnVjdAoKb3BlbiBTCgpkYXRhdHlwZSAoJ2EsICdiKSBjb250aW51ZSA9
CiAgIENvbnRpbnVlIG9mICdhCiAgfCBEb25lIG9mICdiCgpmdW4gZm9sZCcgKHYsIHN0YXJ0LCBi
LCBmLCBnKSA9CiAgIGxldAogICAgICB2YWwgbiA9IGxlbmd0aCB2CiAgICAgIGZ1biBsb29wIChp
LCBiKSA9CgkgaWYgaSA9IG4KCSAgICB0aGVuIGcgYgoJIGVsc2UKCSAgICBjYXNlIGYgKGksIHVu
c2FmZVN1YiAodiwgaSksIGIpIG9mCgkgICAgICAgQ29udGludWUgYiA9PiBsb29wIChpICsgMSwg
YikKCSAgICAgfCBEb25lIGMgPT4gYwogICBpbgogICAgICBpZiAwIDw9IHN0YXJ0IGFuZGFsc28g
c3RhcnQgPD0gbgoJIHRoZW4gbG9vcCAoc3RhcnQsIGIpCiAgICAgIGVsc2UgRXJyb3IuYnVnICJW
ZWN0b3IuZm9sZCciCiAgIGVuZAoKZnVuIGZvbGRGcm9tICh2LCBzdGFydCwgYiwgZikgPQogICBm
b2xkJyAodiwgc3RhcnQsIGIsCgkgIGZuIChfLCBhLCBiKSA9PiBDb250aW51ZSAoZiAoYSwgYikp
LAoJICBmbiBiID0+IGIpCgpmdW4gZm9sZCAoYSwgYiwgZikgPSBmb2xkRnJvbSAoYSwgMCwgYiwg
ZikKCmxvY2FsCiAgIHN0cnVjdHVyZSBGID0gRm9sZCAodHlwZSAnYSB0ID0gJ2EgdAoJCSAgICAg
ICB0eXBlICdhIGVsdCA9ICdhCgkJICAgICAgIHZhbCBmb2xkID0gZm9sZCkKICAgb3BlbiBGCmlu
CiAgIHZhbCBwZWVrTWFwaSA9IHBlZWtNYXBpCmVuZAoKZnVuIGlzRW1wdHkgYSA9IDAgPSBsZW5n
dGggYQoKZnVuIG5ldyAobiwgeCkgPSB0YWJ1bGF0ZSAobiwgZm4gXyA9PiB4KQogICAKZnVuIG1h
cGkgKGEsIGYpID0gdGFidWxhdGUgKGxlbmd0aCBhLCBmbiBpID0+IGYgKGksIHVuc2FmZVN1YiAo
YSwgaSkpKQoKZnVuIG1hcCAodiwgZikgPSBtYXBpICh2LCBmIG8gIzIpCgpmdW4gY29weSB2ID0g
bWFwICh2LCBmbiB4ID0+IHgpCgpmdW4gZXhpc3RzUiAodiwgc3RhcnQsIHN0b3AsIGYpID0KICAg
Zm9sZCcgKHYsIHN0YXJ0LCAoKSwKCSAgZm4gKGksIGEsICgpKSA9PiBpZiBpID0gc3RvcAoJCQkg
ICAgICB0aGVuIERvbmUgZmFsc2UKCQkJICAgZWxzZSBpZiBmIGEKCQkJCSAgIHRoZW4gRG9uZSB0
cnVlCgkJCQllbHNlIENvbnRpbnVlICgpLAoJICBmbiBfID0+IGZhbHNlKQoKZnVuIGZvbGRpICh2
LCBiLCBmKSA9IGZvbGQnICh2LCAwLCBiLCBDb250aW51ZSBvIGYsIGZuIGIgPT4gYikKCmZ1biBs
b29waSAodiwgZiwgZykgPQogICBmb2xkJyAodiwgMCwgKCksCgkgIGZuIChpLCBhLCAoKSkgPT4g
KGNhc2UgZiAoaSwgYSkgb2YKCQkJICAgICAgIE5PTkUgPT4gQ29udGludWUgKCkKCQkJICAgICB8
IFNPTUUgYiA9PiBEb25lIGIpLAoJICBnKQoKZnVuIGxvb3AgKHYsIGYsIGcpID0gbG9vcGkgKHYs
IGYgbyAjMiwgZykKCmZ1biBwZWVrTWFwICh2LCBmKSA9CiAgIGxvb3AgKHYsCgkgZm4gYSA9PiAo
Y2FzZSBmIGEgb2YKCQkgICAgIE5PTkUgPT4gTk9ORQoJCSAgIHwgeiA9PiBTT01FIHopLAoJIGZu
ICgpID0+IE5PTkUpCgpmdW4gZnJvbUxpc3RNYXAgKGwsIGYpID0KICAgbGV0CiAgICAgIHZhbCBy
ID0gcmVmIGwKICAgaW4KICAgICAgdGFidWxhdGUgKExpc3QubGVuZ3RoIGwsIGZuIF8gPT4KCQlj
YXNlICFyIG9mCgkJICAgW10gPT4gRXJyb3IuYnVnICJWZWN0b3IuZnJvbUxpc3RNYXAiCgkJIHwg
eCA6OiBsID0+IChyIDo9IGw7IGYgeCkpCiAgIGVuZAoKZnVuIGZyb21MaXN0IGwgPSBmcm9tTGlz
dE1hcCAobCwgZm4geCA9PiB4KQoKZnVuIGZvbGRyMiAoYSwgYScsIGIsIGYpID0KICAgbGV0CiAg
ICAgIHZhbCBuID0gbGVuZ3RoIGEKICAgICAgdmFsIG4nID0gbGVuZ3RoIGEnCiAgICAgIGZ1biBs
b29wIChpLCBiKSA9CgkgaWYgaSA8IDAKCSAgICB0aGVuIGIKCSBlbHNlIGxvb3AgKGkgLSAxLCBm
ICh1bnNhZmVTdWIgKGEsIGkpLCB1bnNhZmVTdWIgKGEnLCBpKSwgYikpCiAgIGluCiAgICAgIGlm
IG4gPSBuJwoJIHRoZW4gbG9vcCAobiAtIDEsIGIpCiAgICAgIGVsc2UgcmFpc2UgRmFpbCAiQXJy
YXkuZm9sZHIyIgogICBlbmQKICAgCmZ1biBmb2xkMkZyb20gKGEsIGEnLCBzdGFydCwgYiwgZikg
PQogICBsZXQKICAgICAgdmFsIG4gPSBsZW5ndGggYQogICAgICB2YWwgbicgPSBsZW5ndGggYScK
ICAgICAgZnVuIGxvb3AgKGksIGIpID0KCSBpZiBpID0gbgoJICAgIHRoZW4gYgoJIGVsc2UgbG9v
cCAoaSArIDEsIGYgKHVuc2FmZVN1YiAoYSwgaSksIHVuc2FmZVN1YiAoYScsIGkpLCBiKSkKICAg
aW4KICAgICAgaWYgbiA9IG4nIGFuZGFsc28gMCA8PSBzdGFydCBhbmRhbHNvIHN0YXJ0IDw9IG4g
CgkgdGhlbiBsb29wIChzdGFydCwgYikKICAgICAgZWxzZSBFcnJvci5idWcgIkFycmF5LmZvbGQy
IgogICBlbmQKCmZ1biBmb2xkMiAoYSwgYScsIGIsIGYpID0gZm9sZDJGcm9tIChhLCBhJywgMCwg
YiwgZikKICAgCmZ1biBmb2xkM0Zyb20gKGEsIGEnLCBhJycsIHN0YXJ0LCBiLCBmKSA9CiAgIGxl
dAogICAgICB2YWwgbiA9IGxlbmd0aCBhCiAgICAgIHZhbCBuJyA9IGxlbmd0aCBhJwogICAgICB2
YWwgbicnID0gbGVuZ3RoIGEnJwogICAgICBmdW4gbG9vcCAoaSwgYikgPQoJIGlmIGkgPSBuCgkg
ICAgdGhlbiBiCgkgZWxzZSBsb29wIChpICsgMSwgZiAodW5zYWZlU3ViIChhLCBpKSwKCQkJICAg
ICAgdW5zYWZlU3ViIChhJywgaSksCgkJCSAgICAgIHVuc2FmZVN1YiAoYScnLCBpKSwKCQkJICAg
ICAgYikpCiAgIGluCiAgICAgIGlmIG4gPSBuJyBhbmRhbHNvIG4gPSBuJycgYW5kYWxzbyAwIDw9
IHN0YXJ0IGFuZGFsc28gc3RhcnQgPD0gbgoJIHRoZW4gbG9vcCAoc3RhcnQsIGIpCiAgICAgIGVs
c2UgRXJyb3IuYnVnICJBcnJheS5mb2xkMyIKICAgZW5kCgpmdW4gZm9sZDMgKGEsIGEnLCBhJycs
IGIsIGYpID0gZm9sZDNGcm9tIChhLCBhJywgYScnLCAwLCBiLCBmKQoKZnVuIGZvcmVhY2hSICh2
LCBzdGFydCwgc3RvcCwgZikgPQogICBpZiAwIDw9IHN0YXJ0IGFuZGFsc28gc3RhcnQgPD0gc3Rv
cCBhbmRhbHNvIHN0b3AgPD0gbGVuZ3RoIHYKICAgICAgCiAgICAgIHRoZW4KCSBsZXQKCSAgICBm
dW4gc3RlcCAoaSwgYSwgKCkpID0KCSAgICAgICBpZiBpID0gc3RvcAoJCSAgdGhlbiBEb25lICgp
CgkgICAgICAgZWxzZSAoZiBhOyBDb250aW51ZSAoKSkKCSBpbgoJICAgIGZvbGQnICh2LCBzdGFy
dCwgKCksIHN0ZXAsIGZuICgpID0+ICgpKQoJIGVuZAogICBlbHNlIEVycm9yLmJ1ZyAiVmVjdG9y
LmZvcmVhY2hSIgoKZnVuIGZvcmVhY2gyIChhLCBhJywgZikgPQogICBmb2xkMiAoYSwgYScsICgp
LCBmbiAoeCwgeCcsICgpKSA9PiBmICh4LCB4JykpCgpmdW4gZm9yYWxsMiAoYSwgYScsIGYpID0K
ICAgRHluYW1pY1dpbmQud2l0aEVzY2FwZQogICAoZm4gZXNjYXBlID0+CiAgICAoZm9yZWFjaDIg
KGEsIGEnLCBmbiAoYSwgYScpID0+IGlmIGYgKGEsIGEnKSB0aGVuICgpIGVsc2UgZXNjYXBlIGZh
bHNlKQogICAgIDsgdHJ1ZSkpCgpmdW4gZm9yZWFjaGkgKGEsIGYpID0gZm9sZGkgKGEsICgpLCBm
biAoaSwgeCwgKCkpID0+IGYgKGksIHgpKQoKZnVuIGZvcmVhY2ggKGEsIGYpID0gZm9yZWFjaGkg
KGEsIGYgbyAjMikKCmZ1biAnYSBwZWVraSAoYSwgZikgPQogICBEeW5hbWljV2luZC53aXRoRXNj
YXBlCiAgIChmbiBlc2NhcGUgPT4gCiAgICAoZm9yZWFjaGkgKGEsIGZuIChpLCB4KSA9PiBpZiBm
IChpLCB4KSB0aGVuIGVzY2FwZSAoU09NRSAoaSwgeCkpIGVsc2UgKCkpCiAgICAgOyBOT05FKSkK
CmZ1biBwZWVrIChhLCBmKSA9IE9wdGlvbi5tYXAgKHBlZWtpIChhLCBmIG8gIzIpLCAjMikKCmZ1
biBleGlzdHNpIChhLCBmKSA9IGlzU29tZSAocGVla2kgKGEsIGYpKQoKZnVuIGV4aXN0cyAoYSwg
ZikgPSBleGlzdHNpIChhLCBmIG8gIzIpCgpmdW4gZm9yYWxsaSAoYSwgZikgPSBub3QgKGV4aXN0
c2kgKGEsIG5vdCBvIGYpKQoKZnVuIGZvcmFsbCAoYSwgZikgPSBmb3JhbGxpIChhLCBmIG8gIzIp
CgpmdW4gZXF1YWxzIChhLCBhJywgZXF1YWxzKSA9CiAgIGxlbmd0aCBhID0gbGVuZ3RoIGEnCiAg
IGFuZGFsc28gZm9yYWxsaSAoYSwgZm4gKGksIHgpID0+IGVxdWFscyAoeCwgdW5zYWZlU3ViIChh
JywgaSkpKQoKZnVuIGZvbGRyIChhLCBiLCBmKSA9CiAgIEludC5mb2xkRG93biAoMCwgbGVuZ3Ro
IGEsIGIsIGZuIChpLCBiKSA9PiBmICh1bnNhZmVTdWIgKGEsIGkpLCBiKSkKICAgCmZ1biB0b0xp
c3QgYSA9IGZvbGRyIChhLCBbXSwgb3AgOjopCgpmdW4gdG9MaXN0TWFwIChhLCBmKSA9IGZvbGRy
IChhLCBbXSwgZm4gKGEsIGFjKSA9PiBmIGEgOjogYWMpCgpmdW4gbGF5b3V0IGwgdiA9IExheW91
dC50dXBsZSAodG9MaXN0TWFwICh2LCBsKSkKCmZ1biBtYXhJbmRleCBhID0gSW50LnN1YjEgKGxl
bmd0aCBhKQoKZnVuIG5ldzAgKCkgPSBmcm9tTGlzdCBbXQoKZnVuIG5ldzEgeCA9IHRhYnVsYXRl
ICgxLCBmbiBfID0+IHgpCgpmdW4gbmV3MiAoeDAsIHgxKSA9IHRhYnVsYXRlICgyLCBmbiAwID0+
IHgwIHwgMSA9PiB4MSB8IF8gPT4gcmFpc2UgRmFpbCAibmV3MiIpCgpmdW4gbmV3MyAoeDAsIHgx
LCB4MikgPQogICB0YWJ1bGF0ZSAoMywKCSAgICAgZm4gMCA9PiB4MAoJICAgICAgfCAxID0+IHgx
CgkgICAgICB8IDIgPT4geDIKCSAgICAgIHwgXyA9PiByYWlzZSBGYWlsICJuZXczIikKCmZ1biBu
ZXc0ICh4MCwgeDEsIHgyLCB4MykgPQogICB0YWJ1bGF0ZSAoNCwKCSAgICAgZm4gMCA9PiB4MAoJ
ICAgICAgfCAxID0+IHgxCgkgICAgICB8IDIgPT4geDIKCSAgICAgIHwgMyA9PiB4MwoJICAgICAg
fCBfID0+IHJhaXNlIEZhaWwgIm5ldzQiKQoKZnVuIHVuemlwIChhOiAoJ2EgKiAnYikgdCkgPSAo
bWFwIChhLCAjMSksIG1hcCAoYSwgIzIpKQoKZnVuIHVuemlwMyAoYTogKCdhICogJ2IgKiAnYykg
dCkgPSAobWFwIChhLCAjMSksIG1hcCAoYSwgIzIpLCBtYXAgKGEsICMzKSkKCmZ1biByZXYgdiA9
CiAgIGxldAogICAgICB2YWwgbiA9IGxlbmd0aCB2CiAgICAgIHZhbCBuMSA9IG4gLSAxCiAgIGlu
CiAgICAgIHRhYnVsYXRlIChuLCBmbiBpID0+IHVuc2FmZVN1YiAodiwgbjEgLSBpKSkKICAgZW5k
CgpmdW4gZnJvbUxpc3RSZXYgbCA9IHJldiAoZnJvbUxpc3QgbCkKCmZ1biBtYXBBbmRGb2xkICh2
LCBiLCBmKSA9CiAgIGxldAogICAgICB2YWwgciA9IHJlZiBiCiAgICAgIHZhbCB2ID0gbWFwICh2
LCBmbiB4ID0+CgkJICAgbGV0CgkJICAgICAgdmFsIChjLCBiKSA9IGYgKHgsICFyKQoJCSAgICAg
IHZhbCBfID0gciA6PSBiCgkJICAgaW4gYwoJCSAgIGVuZCkKICAgaW4gKHYsICFyKQogICBlbmQK
CmZ1biBtYXAyaSAodiwgdicsIGYpID0KICAgbGV0CiAgICAgIHZhbCBuID0gbGVuZ3RoIHYKICAg
aW4KICAgICAgaWYgbiA9IGxlbmd0aCB2JwoJIHRoZW4gdGFidWxhdGUgKG4sIGZuIGkgPT4gZiAo
aSwgdW5zYWZlU3ViICh2LCBpKSwgdW5zYWZlU3ViICh2JywgaSkpKQogICAgICBlbHNlIEVycm9y
LmJ1ZyAiVmVjdG9yLm1hcDIiCiAgIGVuZAoKZnVuIG1hcDIgKHYsIHYnLCBmKSA9IG1hcDJpICh2
LCB2JywgZm4gKF8sIHgsIHgnKSA9PiBmICh4LCB4JykpCgpmdW4gbWFwMkFuZEZvbGQgKHYsIHYn
LCBiLCBmKSA9CiAgIGxldAogICAgICB2YWwgciA9IHJlZiBiCiAgICAgIHZhbCB2ID0KCSBtYXAy
ICh2LCB2JywgZm4gKHgsIHgnKSA9PgoJICAgICAgIGxldAoJCSAgdmFsICh5LCBiKSA9IGYgKHgs
IHgnLCAhcikKCQkgIHZhbCBfID0gciA6PSBiCgkgICAgICAgaW4geQoJICAgICAgIGVuZCkKICAg
aW4gKHYsICFyKQogICBlbmQKCQkgICAgCmZ1biBtYXAzICh2MSwgdjIsIHYzLCBmKSA9CiAgIGxl
dAogICAgICB2YWwgbiA9IGxlbmd0aCB2MQogICBpbgogICAgICBpZiBuID0gbGVuZ3RoIHYyIGFu
ZGFsc28gbiA9IGxlbmd0aCB2MwoJIHRoZW4gdGFidWxhdGUgKG4sIGZuIGkgPT4gZiAodW5zYWZl
U3ViICh2MSwgaSksCgkJCQkgICAgICB1bnNhZmVTdWIgKHYyLCBpKSwKCQkJCSAgICAgIHVuc2Fm
ZVN1YiAodjMsIGkpKSkKICAgICAgZWxzZSBFcnJvci5idWcgIlZlY3Rvci5tYXAzIgogICBlbmQK
CmZ1biB6aXAgKHYsIHYnKSA9IG1hcDIgKHYsIHYnLCBmbiB6ID0+IHopCgpsb2NhbAogICBmdW4g
ZG9pdCAoZiwgbWFwaSkgPQogICAgICBsZXQKCSB2YWwgbiA9IHJlZiAwCgkgdmFsIGIgPSBtYXBp
IChmbiB4ID0+CgkJICAgICAgIGxldAoJCQkgIHZhbCBiID0gZiB4CgkJCSAgdmFsIF8gPSBpZiBp
c1NvbWUgYiB0aGVuIG4gOj0gMSArICFuIGVsc2UgKCkKCQkgICAgICAgaW4gYgoJCSAgICAgICBl
bmQpCgkgdmFsIHIgPSByZWYgMAoJIGZ1biBsb29wIChpOiBpbnQpID0KCSAgICBjYXNlIHVuc2Fm
ZVN1YiAoYiwgaSkgb2YKCSAgICAgICBOT05FID0+IGxvb3AgKGkgKyAxKQoJICAgICB8IFNPTUUg
YiA9PiAociA6PSBpICsgMTsgYikKICAgICAgaW4gdGFidWxhdGUgKCFuLCBmbiBfID0+IGxvb3Ag
KCFyKSkKICAgICAgZW5kCmluCiAgIGZ1biBrZWVwQWxsTWFwaSAoYSwgZikgPSBkb2l0IChmLCBm
biBmID0+IG1hcGkgKGEsIGYpKQogICBmdW4ga2VlcEFsbE1hcDJpIChhLCBiLCBmKSA9IGRvaXQg
KGYsIGZuIGYgPT4gbWFwMmkgKGEsIGIsIGYpKQplbmQKCmZ1biBrZWVwQWxsTWFwICh2LCBmKSA9
IGtlZXBBbGxNYXBpICh2LCBmIG8gIzIpCgpmdW4ga2VlcEFsbE1hcDIgKHYsIHYnLCBmKSA9IGtl
ZXBBbGxNYXAyaSAodiwgdicsIGZuIChfLCB4LCB4JykgPT4gZiAoeCwgeCcpKQoKZnVuIGtlZXBB
bGxTb21lIHYgPSBrZWVwQWxsTWFwICh2LCBmbiBhID0+IGEpCgpmdW4ga2VlcEFsbCAodiwgZikg
PSBrZWVwQWxsTWFwICh2LCBmbiBhID0+IGlmIGYgYSB0aGVuIFNPTUUgYSBlbHNlIE5PTkUpCgpm
dW4gY29tcGFyZSAodiwgdicsIGNvbXApID0KICAgbGV0CiAgICAgIHZhbCBuID0gbGVuZ3RoIHYK
ICAgICAgdmFsIG4nID0gbGVuZ3RoIHYnCiAgICAgIGZ1biBsb29wIGkgPQoJIGlmIGkgPSBuCgkg
ICAgdGhlbgoJICAgICAgIGlmIGkgPSBuJwoJCSAgdGhlbiBFUVVBTAoJICAgICAgIGVsc2UgTEVT
UwoJIGVsc2UgaWYgaSA9IG4nCgkJIHRoZW4gR1JFQVRFUgoJICAgICAgZWxzZQoJCSBjYXNlIGNv
bXAgKHVuc2FmZVN1YiAodiwgaSksIHVuc2FmZVN1YiAodicsIGkpKSBvZgoJCSAgICBFUVVBTCA9
PiBsb29wIChpICsgMSkKCQkgIHwgciA9PiByCiAgIGluIGxvb3AgMAogICBlbmQKCmZ1biB0b0xp
c3RSZXYgdiA9IGZvbGQgKHYsIFtdLCBvcCA6OikKCmZ1biBsYXN0IHYgPQogICBsZXQKICAgICAg
dmFsIG4gPSBsZW5ndGggdgogICBpbgogICAgICBpZiBuID0gMAoJIHRoZW4gRXJyb3IuYnVnICJW
ZWN0b3IubGFzdCIKICAgICAgZWxzZSB1bnNhZmVTdWIgKHYsIG4gLSAxKQogICBlbmQKCmZ1biB0
YWJ1bGF0b3IgKG4sIGYpID0KICAgbGV0CiAgICAgIHZhbCBnZW4gPSBUaHJlYWQuZ2VuZXJhdGUg
ZgogICAgICB2YWwgdiA9CgkgdGFidWxhdGUgKG4sIGZuIF8gPT4KCQkgICBjYXNlIGdlbiAoKSBv
ZgoJCSAgICAgIE5PTkUgPT4gRXJyb3IuYnVnICJWZWN0b3IudGFidWxhdG9yOiBub3QgZW5vdWdo
IGVsZW1lbnRzIgoJCSAgICB8IFNPTUUgeCA9PiB4KQogICAgICB2YWwgXyA9CgkgY2FzZSBnZW4g
KCkgb2YKCSAgICBOT05FID0+ICgpCgkgIHwgXyA9PiBFcnJvci5idWcgIlZlY3Rvci50YWJ1bGF0
b3I6IHRvbyBtYW55IGVsZW1lbnRzIgogICBpbiB2CiAgIGVuZAoKKCogVXNpbmcgYSB0YWJ1bGF0
b3IgdG8gaW1wbGVtZW50IGNvbmNhdCBjb3N0cyBhIGZhY3RvciBvZiA2LiAgV2F5IHRvbyBoaWdo
LiAqKQooKiBsb2NhbAogKiAgICBmdW4gZG9pdCAodnMsIGZvbGQsIGZvcmVhY2gnKSA9CiAqICAg
ICAgIHRhYnVsYXRvciAoZm9sZCAodnMsIDA6IGludCwgZm4gKHYsIG4pID0+IG4gKyBsZW5ndGgg
diksCiAqIAkJIGZuIG5leHQgPT4gZm9yZWFjaCcgKHZzLCBmbiB2ID0+IGZvcmVhY2ggKHYsIG5l
eHQpKSkKICogaW4KICogICAgZnVuIGNvbmNhdCB2cyA9IGRvaXQgKHZzLCBMaXN0LmZvbGQsIExp
c3QuZm9yZWFjaCkKICogICAgZnVuIGNvbmNhdFYgdnMgPSBkb2l0ICh2cywgZm9sZCwgZm9yZWFj
aCkKICogZW5kCiAqKQoKZnVuICdhIGNvbmNhdCAodnM6ICdhIHQgbGlzdCk6ICdhIHQgPQogICBj
YXNlIHZzIG9mCiAgICAgIFtdID0+IG5ldzAgKCkKICAgIHwgdiA6OiB2cycgPT4KCSBsZXQKCSAg
ICB2YWwgbiA9IExpc3QuZm9sZCAodnMsIDAsIGZuICh2LCBzKSA9PiBzICsgbGVuZ3RoIHYpCgkg
ICAgdmFsIHYgPSByZWYgdgoJICAgIHZhbCB2cyA9IHJlZiB2cycKCSAgICB2YWwgaSA9IHJlZiAw
CgkgICAgZnVuIG5leHQgKCkgPQoJICAgICAgIGxldAoJCSAgdmFsIGknID0gIWkKCQkgIHZhbCB2
JyA9ICF2CgkgICAgICAgaW4KCQkgIGlmIGknIDwgbGVuZ3RoIHYnCgkJICAgICB0aGVuCgkJCWxl
dAoJCQkgICB2YWwgXyA9IGkgOj0gaScgKyAxCgkJCWluCgkJCSAgIHVuc2FmZVN1YiAodicsIGkn
KQoJCQllbmQKCQkgIGVsc2UKCQkgICAgIGxldAoJCQl2YWwgXyA9CgkJCSAgIGNhc2UgIXZzIG9m
CgkJCSAgICAgIFtdID0+IEVycm9yLmJ1ZyAicmFuIG91dCBvZiB2ZWN0b3JzIgoJCQkgICAgfCB2
JyA6OiB2cycgPT4KCQkJCSAodiA6PSB2JwoJCQkJICA7IHZzIDo9IHZzJwoJCQkJICA7IGkgOj0g
MCkKCQkgICAgIGluCgkJCW5leHQgKCkKCQkgICAgIGVuZAoJICAgICAgIGVuZAoJIGluIHRhYnVs
YXRlIChuLCBmbiBfID0+IG5leHQgKCkpCgkgZW5kCgpmdW4gJ2EgY29uY2F0ViAodnM6ICdhIHQg
dCk6ICdhIHQgPQogICBpZiBpc0VtcHR5IHZzCiAgICAgIHRoZW4gbmV3MCAoKQogICBlbHNlCiAg
ICAgIGxldAoJIHZhbCBuID0gZm9sZCAodnMsIDAsIGZuICh2LCBzKSA9PiBzICsgbGVuZ3RoIHYp
CgkgdmFsIHYgPSByZWYgKHVuc2FmZVN1YiAodnMsIDApKQoJIHZhbCBqID0gcmVmIDEKCSB2YWwg
aSA9IHJlZiAwCgkgZnVuIG5leHQgKCkgPQoJICAgIGxldAoJICAgICAgIHZhbCBpJyA9ICFpCgkg
ICAgICAgdmFsIHYnID0gIXYKCSAgICBpbgoJICAgICAgIGlmIGknIDwgbGVuZ3RoIHYnCgkJICB0
aGVuCgkJICAgICBsZXQKCQkJdmFsIF8gPSBpIDo9IGknICsgMQoJCSAgICAgaW4KCQkJdW5zYWZl
U3ViICh2JywgaScpCgkJICAgICBlbmQKCSAgICAgICBlbHNlCgkJICBsZXQKCQkgICAgIHZhbCBq
JyA9ICFqCgkJICAgICB2YWwgXyA9IGogOj0gaicgKyAxCgkJICAgICB2YWwgXyA9IHYgOj0gdW5z
YWZlU3ViICh2cywgaicpCgkJICAgICB2YWwgXyA9IGkgOj0gMAoJCSAgaW4KCQkgICAgIG5leHQg
KCkKCQkgIGVuZAoJICAgIGVuZAogICAgICBpbiB0YWJ1bGF0ZSAobiwgZm4gXyA9PiBuZXh0ICgp
KQogICAgICBlbmQKCmZ1biBzcGxpdExhc3QgdiA9CiAgIGxldAogICAgICB2YWwgbiA9IGxlbmd0
aCB2CiAgIGluCiAgICAgIGlmIDAgPSBuCgkgdGhlbiBFcnJvci5idWcgInNwbGl0TGFzdCIKICAg
ICAgZWxzZSAodGFidWxhdGUgKG4gLSAxLCBmbiBpID0+IHVuc2FmZVN1YiAodiwgaSkpLAoJICAg
IHVuc2FmZVN1YiAodiwgbiAtIDEpKQogICBlbmQKCmZ1biBpc1NvcnRlZCAodiwgb3AgPD0pID0K
ICAgaXNFbXB0eSB2CiAgIG9yZWxzZSBmb2xkJyAodiwgMCwgc3ViICh2LCAwKSwKCQkgZm4gKF8s
IGEnLCBhKSA9PiBpZiBhIDw9IGEnIHRoZW4gQ29udGludWUgYScgZWxzZSBEb25lIGZhbHNlLAoJ
CSBmbiBfID0+IHRydWUpCgpmdW4gbWVyZ2UgKHYsIHYnLCBvcCA8PSkgPQogICBsZXQKICAgICAg
dmFsIF8gPSBBc3NlcnQuYXNzZXJ0ICgiVmVjdG9yLm1lcmdlIHByZSIsIGZuICgpID0+CgkJCSAg
ICAgaXNTb3J0ZWQgKHYsIG9wIDw9KSBhbmRhbHNvIGlzU29ydGVkICh2Jywgb3AgPD0pKQogICAg
ICB2YWwgbiA9IGxlbmd0aCB2CiAgICAgIHZhbCBuJyA9IGxlbmd0aCB2JwogICAgICB2YWwgciA9
IHJlZiAwCiAgICAgIHZhbCByJyA9IHJlZiAwCiAgICAgIGZ1biBuZXh0IF8gPQoJIGxldAoJICAg
IHZhbCBpID0gIXIKCSAgICB2YWwgaScgPSAhcicKCSAgICAoKiAwIDw9IGkgPD0gbiBhbmRhbHNv
IDAgPD0gaScgPD0gbicgKikKCSBpbgoJICAgIGlmIGkgPSBuCgkgICAgICAgdGhlbgoJCSAgbGV0
CgkJICAgICB2YWwgcmVzID0gc3ViICh2JywgaScpCgkJICAgICB2YWwgXyA9IEludC5pbmMgcicK
CQkgIGluIHJlcwoJCSAgZW5kCgkgICAgZWxzZSBpZiBpJyA9IG4nCgkJICAgIHRoZW4gCgkJICAg
ICAgIGxldAoJCQkgIHZhbCByZXMgPSBzdWIgKHYsIGkpCgkJCSAgdmFsIF8gPSBJbnQuaW5jIHIK
CQkgICAgICAgaW4gcmVzCgkJICAgICAgIGVuZAoJCSBlbHNlCgkJICAgIGxldAoJCSAgICAgICB2
YWwgYSA9IHN1YiAodiwgaSkKCQkgICAgICAgdmFsIGEnID0gc3ViICh2JywgaScpCgkJICAgIGlu
CgkJICAgICAgIGlmIGEgPD0gYScKCQkJICB0aGVuIChJbnQuaW5jIHI7IGEpCgkJICAgICAgIGVs
c2UgKEludC5pbmMgcic7IGEnKQoJCSAgICBlbmQKCSBlbmQKICAgICAgdmFsIHYgPSB0YWJ1bGF0
ZSAobiArIG4nLCBmbiBfID0+IG5leHQgKCkpCiAgICAgIHZhbCBfID0gQXNzZXJ0LmFzc2VydCAo
IlZlY3Rvci5tZXJnZSBwb3N0IiwgZm4gKCkgPT4KCQkJICAgICBpc1NvcnRlZCAodiwgb3AgPD0p
KQogICBpbgogICAgICB2CiAgIGVuZAoKZnVuIHNvcnQgKHYsIG9wIDw9KSA9CiAgIGxldAogICAg
ICBmdW4gbG9vcCB2ID0KCSBpZiBpc1NvcnRlZCAodiwgb3AgPD0pCgkgICAgdGhlbiB2CgkgZWxz
ZQoJICAgIGxldAoJICAgICAgIHZhbCBuID0gbGVuZ3RoIHYKCSAgICAgICB2YWwgbSA9IG4gZGl2
IDIKCSAgICAgICB2YWwgbScgPSBuIC0gbQoJICAgICAgIGZ1biBnZXQgKG0sIHN0YXJ0KSA9CgkJ
ICBsb29wCgkJICAodGFidWxhdGUgKG0sIAoJCQkgICAgIGxldCB2YWwgciA9IHJlZiBzdGFydAoJ
CQkgICAgIGluIGZuIF8gPT4KCQkJCWxldAoJCQkJICAgdmFsIGkgPSAhcgoJCQkJICAgdmFsIHJl
cyA9IHN1YiAodiwgaSkKCQkJCSAgIHZhbCBfID0gciA6PSAyICsgaQoJCQkJaW4gcmVzCgkJCQll
bmQKCQkJICAgICBlbmQpKQoJICAgIGluIG1lcmdlIChnZXQgKG0nLCAwKSwgZ2V0IChtLCAxKSwg
b3AgPD0pCgkgICAgZW5kCiAgICAgIHZhbCB2ID0gbG9vcCB2CiAgICAgIHZhbCBfID0gQXNzZXJ0
LmFzc2VydCAoIlZlY3Rvci5zb3J0IiwgZm4gKCkgPT4gaXNTb3J0ZWQgKHYsIG9wIDw9KSkKICAg
aW4KICAgICAgdgogICBlbmQKCmZ1biBpbmRleGkgKHYsIGYpID0KICAgZm9sZCcgKHYsIDAsICgp
LAoJICBmbiAoaSwgYSwgXykgPT4gaWYgZiAoaSwgYSkgdGhlbiBEb25lIChTT01FIGkpIGVsc2Ug
Q29udGludWUgKCksCgkgIGZuIF8gPT4gTk9ORSkKCmZ1biBpbmRleCAodiwgZikgPSBpbmRleGkg
KHYsIGYgbyAjMikKCmZ1biBudW1UcnVlICh2OiAnYSB0LCBmOiAnYSAtPiBib29sKTogaW50ID0K
ICAgZm9sZCAodiwgMCwgZm4gKGEsIG4pID0+IGlmIGYgYSB0aGVuIG4gKyAxIGVsc2UgbikKCmZ1
biBpbmRpY2VzIChhOiBib29sIHQpOiBpbnQgdCA9CiAgIGtlZXBBbGxNYXBpIChhLCBmbiAoaSwg
YikgPT4gaWYgYiB0aGVuIFNPTUUgaSBlbHNlIE5PTkUpCgp2YWwgaW5kaWNlcyA9CiAgIFRyYWNl
LnRyYWNlICgiaW5kaWNlcyIsIGxheW91dCBCb29sLmxheW91dCwgbGF5b3V0IEludC5sYXlvdXQp
CiAgIGluZGljZXMKCmVuZAooKiBzdG9wIG9mIGxpYi9tbHRvbi9iYXNpYy92ZWN0b3IuZnVuICop
CigqIHN0YXJ0IG9mIGxpYi9tbHRvbi9iYXNpYy9vcmRlcmVkLWZpZWxkLnNpZyAqKQpzaWduYXR1
cmUgT1JERVJFRF9GSUVMRF9TVFJVQ1RTID0KICAgc2lnCiAgICAgIGluY2x1ZGUgT1JERVJFRF9S
SU5HCgogICAgICB2YWwgaW52ZXJzZTogdCAtPiB0CiAgIGVuZAoKc2lnbmF0dXJlIE9SREVSRURf
RklFTEQgPQogICBzaWcKICAgICAgaW5jbHVkZSBPUkRFUkVEX0ZJRUxEX1NUUlVDVFMKCiAgICAg
IHZhbCAvIDogdCAqIHQgLT4gdAogICBlbmQKCigqIHN0b3Agb2YgbGliL21sdG9uL2Jhc2ljL29y
ZGVyZWQtZmllbGQuc2lnICopCigqIHN0YXJ0IG9mIGxpYi9tbHRvbi9iYXNpYy9maWVsZC5zaWcg
KikKc2lnbmF0dXJlIEZJRUxEX1NUUlVDVFMgPQogICBzaWcKICAgICAgaW5jbHVkZSBSSU5HCgog
ICAgICB2YWwgaW52ZXJzZTogdCAtPiB0CiAgIGVuZAoKc2lnbmF0dXJlIEZJRUxEID0KICAgc2ln
CiAgICAgIGluY2x1ZGUgRklFTERfU1RSVUNUUwoKICAgICAgdmFsIC8gOiB0ICogdCAtPiB0CiAg
IGVuZAoKKCogc3RvcCBvZiBsaWIvbWx0b24vYmFzaWMvZmllbGQuc2lnICopCigqIHN0YXJ0IG9m
IGxpYi9tbHRvbi9iYXNpYy9maWVsZC5mdW4gKikKZnVuY3RvciBGaWVsZChGOiBGSUVMRF9TVFJV
Q1RTKTogRklFTEQgPQpzdHJ1Y3QKCnN0cnVjdHVyZSBVID0gUmluZyhGKQoKb3BlbiBGIFUKCnZh
bCBvcCAvID0gZm4gKHgsIHkpID0+IHggKiBpbnZlcnNlIHkKICAgIAplbmQKKCogc3RvcCBvZiBs
aWIvbWx0b24vYmFzaWMvZmllbGQuZnVuICopCigqIHN0YXJ0IG9mIGxpYi9tbHRvbi9iYXNpYy9v
cmRlcmVkLWZpZWxkLmZ1biAqKQooKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qKQooKiAgICAgICAgICAgICAgICAgICAg
ICAgICAgIE9yZGVyZWRGaWVsZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKi0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0qKQoKZnVuY3RvciBPcmRlcmVkRmllbGQoRjogT1JERVJFRF9GSUVMRF9TVFJVQ1RTKTog
T1JERVJFRF9GSUVMRCA9CnN0cnVjdAoKc3RydWN0dXJlIFUgPSBGaWVsZChGKQpzdHJ1Y3R1cmUg
VScgPSBPcmRlcmVkUmluZyhGKQpvcGVuIEYgVSBVJwoKZW5kCigqIHN0b3Agb2YgbGliL21sdG9u
L2Jhc2ljL29yZGVyZWQtZmllbGQuZnVuICopCigqIHN0YXJ0IG9mIGxpYi9tbHRvbi9iYXNpYy9y
ZWFsLnNpZyAqKQpzaWduYXR1cmUgUkVBTCA9CiAgIHNpZwogICAgICB0eXBlIGludCA9IEludC50
CgkgCiAgICAgIGluY2x1ZGUgT1JERVJFRF9GSUVMRAoKICAgICAgc3RydWN0dXJlIEZvcm1hdDoK
CSBzaWcKCSAgICB0eXBlIHQKCgkgICAgdmFsIHNjaTogaW50IG9wdGlvbiAtPiB0CgkgICAgdmFs
IGZpeDogaW50IG9wdGlvbiAtPiB0CgkgICAgdmFsIGdlbjogaW50IG9wdGlvbiAtPiB0CgkgZW5k
CgogICAgICB2YWwgYWNvczogdCAtPiB0CiAgICAgIHZhbCBhc2luOiB0IC0+IHQKICAgICAgdmFs
IGF0YW46IHQgLT4gdAogICAgICB2YWwgYXRhbjI6IHQgKiB0IC0+IHQKICAgICAgdmFsIGNlaWxp
bmc6IHQgLT4gaW50CiAgICAgIHZhbCBjaG9vc2U6IHQgKiB0IC0+IHQKICAgICAgdmFsIGNvczog
cmVhbCAtPiByZWFsCiAgICAgIHZhbCBleHA6IHQgLT4gdAogICAgICB2YWwgZmxvb3I6IHQgLT4g
aW50CiAgICAgIHZhbCBmb3JtYXQ6IHQgKiBGb3JtYXQudCAtPiBzdHJpbmcKICAgICAgdmFsIGZy
b21TdHJpbmc6IHN0cmluZyAtPiB0IG9wdGlvbgogICAgICBleGNlcHRpb24gSW5wdXQKICAgICAg
dmFsIGlucHV0OiBJbjAudCAtPiB0CiAgICAgIHZhbCBpc0Zpbml0ZTogdCAtPiBib29sCiAgICAg
IHZhbCBsbjogdCAtPiB0CiAgICAgIHZhbCBsb2c6IHQgKiB0IC0+IHQKICAgICAgdmFsIGxvZzI6
IHQgLT4gdAogICAgICB2YWwgbWF4RmluaXRlOiB0CiAgICAgIHZhbCBwaTogdAogICAgICB2YWwg
cmVhbE1vZDogdCAtPiB0CiAgICAgIHZhbCByZWFsUG93ZXI6IHQgKiB0IC0+IHQKICAgICAgdmFs
IHJvdW5kOiB0IC0+IGludAogICAgICB2YWwgc2luOiByZWFsIC0+IHJlYWwKICAgICAgdmFsIHNx
cnQ6IHQgLT4gdAogICAgICB2YWwgdGFuOiB0IC0+IHQKICAgICAgdmFsIHRvU3RyaW5nOiB0IC0+
IHN0cmluZwogICAgICB2YWwgdHJ1bmM6IHQgLT4gaW50CiAgIGVuZAooKiBzdG9wIG9mIGxpYi9t
bHRvbi9iYXNpYy9yZWFsLnNpZyAqKQooKiBzdGFydCBvZiBsaWIvbWx0b24vYmFzaWMvcmVhbC5z
bWwgKikKc3RydWN0dXJlIFJlYWw6IFJFQUwgPQpzdHJ1Y3QKCnR5cGUgaW50ID0gSW50LnQKCnN0
cnVjdHVyZSBJbiA9IEluMAoKc3RydWN0dXJlIFIgPSAKICAgT3JkZXJlZFJpbmcoc3RydWN0dXJl
IFIgPSAKCQkgIFJpbmdXaXRoSWRlbnRpdHkoc3RydWN0dXJlIFIgPQoJCQkJICAgICAgUmluZyh0
eXBlIHQgPSByZWFsCgkJCQkJICAgb3BlbiBSZWFsCgkJCQkJICAgdmFsIHplcm8gPSAwLjAKCQkJ
CQkgICB2YWwgbGF5b3V0ID0gTGF5b3V0LnN0ciBvIHRvU3RyaW5nCgkJCQkJICAgdmFsIGVxdWFs
cyA9IFBlcnZhc2l2ZS5SZWFsLj09KQoJCQkJICAgb3BlbiBSIFJlYWwKCQkJCSAgIHZhbCBvbmUg
PSAxLjApCgkgICAgICAgb3BlbiBSIFJlYWwKCSAgICAgICB2YWwge2NvbXBhcmUsIC4uLn0gPQoJ
CSAgUmVsYXRpb24ubGVzc0VxdWFsezwgPSBvcCA8LCBlcXVhbHMgPSBlcXVhbHN9KQoKc3RydWN0
dXJlIEYgPSBPcmRlcmVkRmllbGQob3BlbiBSIFJlYWwKCQkJICAgZnVuIGludmVyc2UgeCA9IDEu
MCAvIHgpCm9wZW4gRiBSZWFsCm9wZW4gTWF0aAoKZXhjZXB0aW9uIElucHV0IApmdW4gaW5wdXQg
aSA9CiAgIGNhc2UgZnJvbVN0cmluZyhJbi5pbnB1dFRvU3BhY2UgaSkgb2YKICAgICAgU09NRSB4
ID0+IHgKICAgIHwgTk9ORSA9PiByYWlzZSBJbnB1dAoJIAp2YWwgZnJvbUludCA9IFBlcnZhc2l2
ZS5SZWFsLmZyb21JbnQKCnN0cnVjdHVyZSBGb3JtYXQgPQogICBzdHJ1Y3QKICAgICAgb3BlbiBT
dHJpbmdDdnQKICAgICAgdHlwZSB0ID0gcmVhbGZtdAogICAgICB2YWwgc2NpID0gU0NJCiAgICAg
IHZhbCBmaXggPSBGSVgKICAgICAgdmFsIGdlbiA9IEdFTgogICBlbmQKCmZ1biBmb3JtYXQoeCwg
ZikgPSBQZXJ2YXNpdmUuUmVhbC5mbXQgZiB4CgpmdW4gY2hvb3NlKG4sIGspID0KICAgbGV0IHZh
bCBrID0gbWF4KGssIG4gLSBrKQogICBpbiBwcm9kRnJvbVRve2Zyb20gPSBhZGQxIGssIHRvID0g
biwgdGVybSA9IGZuIGkgPT4gaX0gLyBmYWN0b3JpYWwobiAtIGspCiAgIGVuZAoKZnVuIGxvZyhi
YXNlLCBhcmcpID0gbG4gYXJnIC8gbG4gYmFzZQogICAKdmFsIGxuMiA9IGxuIHR3bwogICAKZnVu
IGxvZzIgeCA9IGxuIHggLyBsbjIKCmZ1biByZWFsUG93ZXIobSwgbikgPSBleHAobiAqIGxuIG0p
Cgp2YWwgY2VpbGluZyA9IGNlaWwKICAgCmVuZAooKiBzdG9wIG9mIGxpYi9tbHRvbi9iYXNpYy9y
ZWFsLnNtbCAqKQooKiBzdGFydCBvZiBsaWIvbWx0b24vYmFzaWMvcmFuZG9tLnNpZyAqKQp0eXBl
IGludCA9IEludC50CiAgIApzaWduYXR1cmUgUkFORE9NID0KICAgc2lnCiAgICAgIHZhbCBib29s
OiB1bml0IC0+IGJvb2wKICAgICAgdmFsIGludDogdW5pdCAtPiBpbnQKICAgICAgKCogaW50UmFu
Z2UoaSwgaikoKSBpcyB1bmlmb3JtIGluIFtpLCBqXQogICAgICAgKiBJdCBpcyBjdXJyaWVkIGJl
Y2F1c2UgaXQgZG9lcyBzb21lIGNvbXB1dGF0aW9uIHdpdGggaSBhbmQgai4KICAgICAgICopCiAg
ICAgIHZhbCBpbnRSYW5nZTogaW50ICogaW50IC0+IHVuaXQgLT4gaW50CiAgICAgIHZhbCBsaXN0
OiAnYSBsaXN0IC0+ICdhIG9wdGlvbgogICAgICB2YWwgblJhbmRvbToge2xpc3Q6ICdhIGxpc3Qs
IGxlbmd0aDogaW50LCBuOiBpbnR9IC0+ICdhIGxpc3QKICAgICAgKCogU2V0IHRoZSBzZWVkIHRv
IE1MdG9uLnJhbmRvbSgpLiAqKQogICAgICB2YWwgcmFuZG9taXplOiB1bml0IC0+IHVuaXQKICAg
ICAgKCogMC4wIDw9IHJlYWwoKSA8PSAxLjAgKikKICAgICAgdmFsIHJlYWw6IHVuaXQgLT4gcmVh
bAogICAgICB2YWwgd29yZDogdW5pdCAtPiBXb3JkLnQKICAgZW5kCigqIHN0b3Agb2YgbGliL21s
dG9uL2Jhc2ljL3JhbmRvbS5zaWcgKikKKCogc3RhcnQgb2YgbGliL21sdG9uL2Jhc2ljL3JhbmRv
bS5zbWwgKikKc3RydWN0dXJlIFJhbmRvbTogUkFORE9NID0Kc3RydWN0CgpzdHJ1Y3R1cmUgQXJy
YXkgPSBQZXJ2YXNpdmUuQXJyYXkKCigqIFJldHVybiBhIHJhbmRvbSBpbnRlZ2VyIGluIFswLCAz
Mjc2N10uCiAqIFRha2VuIGZyb20gcGFnZSA0NiBvZiBUaGUgQyBQcm9ncmFtbWluZyBMYW5ndWFn
ZSwgYnkgS2VybmlnaGFuIGFuZCBSaXRjaGllLgogKikKKCogICAgZnVuIHJhbmQoKTogaW50ID0K
ICogICAgICAgbGV0CiAqIAkgdmFsIG4gPSAhbmV4dCAqIDB3MTEwMzUxNTI0NSArIDB3MTIzNDU7
CiAqIAkgdmFsIF8gPSBuZXh0IDo9IG4KICogICAgICAgaW4KICogCSB0b0ludFggKChuIGRpdiAw
dzY1NTM2KSBtb2QgMHczMjc2OCkKICogICAgICAgZW5kCiAqICAgIGZ1biBzcmFuZCAoc2VlZDog
aW50KTogdW5pdCA9IG5leHQgOj0gZnJvbUludCBzZWVkCiAqIAogKikKCigqIFBhZ2UgMzAyIG9m
IE51bWVyaWNhbCBSZWNpcGVzIGluIEMuICopCmxvY2FsCiAgIHZhbCBuaXRlcjogaW50ID0gNAog
ICBvcGVuIFdvcmQKICAgZnVuIG1ha2UgKGw6IFdvcmQudCBsaXN0KSA9CiAgICAgIGxldCB2YWwg
YSA9IEFycmF5LmZyb21MaXN0IGwKICAgICAgaW4gZm4gaSA9PiBBcnJheS5zdWIgKGEsIGkpCiAg
ICAgIGVuZAogICB2YWwgYzEgPSBtYWtlIFswd3hiYWE5Njg4NywgMHd4MWUxN2QzMmMsIDB3eDAz
YmRjZDNjLCAwd3gwZjMzZDFiMl0KICAgdmFsIGMyID0gbWFrZSBbMHd4NGIwZjNiNTgsIDB3eGU4
NzRmMGMzLCAwd3g2OTU1YzVhNiwgMHd4NTVhN2NhNDZdCiAgIHZhbCBoYWxmOiBXb3JkLnQgPSAw
dzE2CiAgIGZ1biByZXZlcnNlIHcgPSBvcmIgKD4+ICh3LCBoYWxmKSwgPDwgKHcsIGhhbGYpKQog
ICBmdW4gcHNkZXMgKGx3b3JkOiB0LCBpcndvcmQ6IHQpOiB0ICogdCA9CiAgICAgIEludC5mb2xk
CiAgICAgICgwLCBuaXRlciwgKGx3b3JkLCBpcndvcmQpLCBmbiAoaSwgKGx3b3JkLCBpcndvcmQp
KSA9PgogICAgICAgbGV0CgkgIHZhbCBpYSA9IHhvcmIgKGlyd29yZCwgYzEgaSkKCSAgdmFsIGl0
bXBsID0gYW5kYiAoaWEsIDB3eGZmZmYpCgkgIHZhbCBpdG1waCA9ID4+IChpYSwgaGFsZikKCSAg
dmFsIGliID0gaXRtcGwgKiBpdG1wbCArIG5vdGIgKGl0bXBoICogaXRtcGgpCiAgICAgICBpbiAo
aXJ3b3JkLAoJICAgeG9yYiAobHdvcmQsIGl0bXBsICogaXRtcGggKyB4b3JiIChjMiBpLCByZXZl
cnNlIGliKSkpCiAgICAgICBlbmQpCgogICB2YWwgemVybzogV29yZC50ID0gMHd4MTMgCiAgIHZh
bCBsd29yZCA9IHJlZiB6ZXJvCiAgIHZhbCBpcndvcmQgPSByZWYgemVybwogICB2YWwgbmVlZFRv
ID0gcmVmIHRydWUKaW4KICAgZnVuIHJhbmRvbWl6ZSAoKSA9IChsd29yZCA6PSBNTHRvbi5yYW5k
b20gKCkKCQkgICAgICAgOyBpcndvcmQgOj0gTUx0b24ucmFuZG9tICgpKQogICBmdW4gd29yZCAo
KSA9CiAgICAgIGlmICFuZWVkVG8KCSB0aGVuCgkgICAgbGV0CgkgICAgICAgdmFsIChsLCBpKSA9
IHBzZGVzICghbHdvcmQsICFpcndvcmQpCgkgICAgICAgdmFsIF8gPSBsd29yZCA6PSBsCgkgICAg
ICAgdmFsIF8gPSBpcndvcmQgOj0gaQoJICAgICAgIHZhbCBfID0gbmVlZFRvIDo9IGZhbHNlCgkg
ICAgaW4KCSAgICAgICBsCgkgICAgZW5kCiAgICAgIGVsc2UgKG5lZWRUbyA6PSB0cnVlCgkgICAg
OyAhaXJ3b3JkKQplbmQKCnZhbCB3b3JkID0gVHJhY2UudHJhY2UgKCJSYW5kb20ud29yZCIsIFVu
aXQubGF5b3V0LCBXb3JkLmxheW91dCkgd29yZAogICAKbG9jYWwKICAgdmFsIHJpOiBpbnQgcmVm
ID0gcmVmIDAKICAgdmFsIHJ3ID0gcmVmICh3b3JkICgpKQogICB2YWwgbWF4ID0gV29yZC53b3Jk
U2l6ZSAtIDEKaW4KICAgZnVuIGJvb2wgKCkgPQogICAgICBsZXQKCSB2YWwgaSA9ICFyaQoJIHZh
bCBiID0gMHcxID0gV29yZC5hbmRiICgwd3gxLCBXb3JkLj4+ICghcncsIFdvcmQuZnJvbUludCBp
KSkKCSB2YWwgXyA9CgkgICAgaWYgaSA9IG1heAoJICAgICAgIHRoZW4gKHJ3IDo9IHdvcmQgKCkK
CQkgICAgIDsgcmkgOj0gMCkKCSAgICBlbHNlIHJpIDo9IDEgKyBpCiAgICAgIGluIGIKICAgICAg
ZW5kCmVuZAoKZnVuIGludCAoKSA9IFdvcmQudG9JbnRYICh3b3JkICgpKQoKdmFsIGludCA9IFRy
YWNlLnRyYWNlICgiUmFuZG9tLmludCIsIFVuaXQubGF5b3V0LCBJbnQubGF5b3V0KSBpbnQKCnZh
bCBtYXhJbnQgPSBJbnQubWF4SW50CgpmdW4gbmF0ICgpID0gV29yZC50b0ludCAoV29yZC5hbmRi
ICh3b3JkICgpLCBXb3JkLmZyb21JbnQgbWF4SW50KSkKCnZhbCBpbnQgPSBUcmFjZS50cmFjZSAo
IlJhbmRvbS5uYXQiLCBVbml0LmxheW91dCwgSW50LmxheW91dCkgaW50Cgp2YWwgbWF4SW50UiA9
IFJlYWwuZnJvbUludCBtYXhJbnQKCmZ1biBzY2FsZSByID0gciAvIG1heEludFIKCnZhbCBuYXRS
ZWFsID0gUmVhbC5mcm9tSW50IG8gbmF0CgpmdW4gcmVhbCAoKSA9IHNjYWxlIChuYXRSZWFsICgp
ICsgc2NhbGUgKG5hdFJlYWwgKCkpKQoKZnVuIGludFJhbmdlIChsbzogaW50LCBoaTogaW50KTog
dW5pdCAtPiBpbnQgPQogICBsZXQgdmFsIHJsbyA9IFJlYWwuZnJvbUludCBsbwogICAgICB2YWwg
UiA9IFJlYWwuZnJvbUludCBoaSAtIHJsbyArIDEuMAogICBpbgogICAgICBmbiAoKSA9PiBSZWFs
LnRydW5jIChybG8gKyBSICogcmVhbCAoKSkKICAgZW5kCgp2YWwgaW50UmFuZ2UgPQogICBBc3Nl
cnQuYXNzZXJ0RnVuMgogICAoIlJhbmRvbS5pbnRSYW5nZSIsIGludFJhbmdlLAogICAgZm4gKGxv
LCBoaSkgPT4KICAgIChsbyA8PSBoaSwgZm4gKCkgPT4gKHRydWUsIGZuIG4gPT4gbG8gPD0gbiBh
bmRhbHNvIG4gPD0gaGkpKSkKCmZ1biBuUmFuZG9tIHtsaXN0LCBsZW5ndGgsIG59ID0KICAgbGV0
CiAgICAgIGZ1biBsb29wIChuZWVkOiBpbnQsIGxlbmd0aDogaW50LCB4czogJ2EgbGlzdCwgYWM6
ICdhIGxpc3QpOiAnYSBsaXN0ID0KCSAoQXNzZXJ0LmFzc2VydCAoIlJhbmRvbS5uUmFuZG9tIiwg
Zm4gKCkgPT4gbmVlZCA8PSBsZW5ndGgpCgkgIDsgaWYgbmVlZCA9IDAKCSAgICAgICB0aGVuIGFj
CgkgICAgZWxzZSAoY2FzZSB4cyBvZgoJCSAgICAgW10gPT4gRXJyb3IuYnVnICJuUmFuZG9tIgoJ
CSAgIHwgeCA6OiB4cyA9PgoJCQlpZiBpbnRSYW5nZSAoMCwgbGVuZ3RoIC0gMSkgKCkgPCBuZWVk
CgkJCSAgIHRoZW4gbG9vcCAobmVlZCAtIDEsIGxlbmd0aCAtIDEsIHhzLCB4IDo6IGFjKQoJCQll
bHNlIGxvb3AgKG5lZWQsIGxlbmd0aCAtIDEsIHhzLCBhYykpKQogICBpbiBsb29wIChuLCBsZW5n
dGgsIGxpc3QsIFtdKQogICBlbmQKCnZhbCBuUmFuZG9tID0gZm4geCA9PgogICBBc3NlcnQuYXNz
ZXJ0RnVuCiAgICgiblJhbmRvbSIsIG5SYW5kb20sCiAgICBmbiB7bGlzdCwgbGVuZ3RoLCBufSA9
PiAobGVuZ3RoID0gTGlzdC5sZW5ndGggbGlzdAoJCQkgICAgIGFuZGFsc28gMCA8PSBuCgkJCSAg
ICAgYW5kYWxzbyBuIDw9IGxlbmd0aCwKCQkJICAgICBmbiBsID0+IG4gPSBMaXN0Lmxlbmd0aCBs
KSkKICAgeAoKZnVuIGxpc3QgbCA9CiAgIGxldCB2YWwgbiA9IExpc3QubGVuZ3RoIGwKICAgaW4g
aWYgbiA9IDAKCSB0aGVuIE5PTkUKICAgICAgZWxzZSBTT01FIChMaXN0Lm50aCAobCwgaW50UmFu
Z2UgKDAsIG4gLSAxKSAoKSkpCiAgIGVuZAoKZW5kCigqIHN0b3Agb2YgbGliL21sdG9uL2Jhc2lj
L3JhbmRvbS5zbWwgKikKKCogc3RhcnQgb2YgbGliL21sdG9uL2Jhc2ljL3ZlY3Rvci5zbWwgKikK
c3RydWN0dXJlIFZlY3RvciA9CiAgIGxldAogICAgICBzdHJ1Y3R1cmUgViA9IFZlY3RvciAob3Bl
biBQZXJ2YXNpdmUuVmVjdG9yCgkJCSAgICB0eXBlICdhIHQgPSAnYSB2ZWN0b3IKCQkJICAgIGV4
Y2VwdGlvbiBOZXcgPSBTaXplCgkJCSAgICB2YWwgdW5zYWZlU3ViID0gVW5zYWZlLlZlY3Rvci5z
dWIpCiAgIGluCiAgICAgIHN0cnVjdAoJIG9wZW4gVgoKCSB0eXBlICdhIHZlY3RvciA9ICdhIHQK
CgkgKCogVGhlIGJ1aWx0LWluIGNvbmNhdCBpcyBmYXN0ZXIgaW4gTUx0b24gYmVjYXVzZSBpdCBj
YW4gdXNlCgkgICogVmVjdG9yLmZyb21BcnJheS4KCSAgKiBTZWUgc3JjL2Jhc2lzLWxpYnJhcnkv
YXJyYXlzLWFuZC12ZWN0b3JzL3NlcXVlbmNlLmZ1bi4KCSAgKikKCSB2YWwgY29uY2F0ID0gUGVy
dmFzaXZlLlZlY3Rvci5jb25jYXQKICAgICAgZW5kCiAgIGVuZAooKiBzdG9wIG9mIGxpYi9tbHRv
bi9iYXNpYy92ZWN0b3Iuc21sICopCigqIHN0YXJ0IG9mIGxpYi9tbHRvbi9iYXNpYy9hcnJheS5m
dW4gKikKZnVuY3RvciBBcnJheSAoUzogc2lnCgkJICAgICBpbmNsdWRlIEFSUkFZX1NUUlVDVFMK
CQkgICAgIHZhbCB1bnNhZmVTdWI6ICdhIHQgKiBpbnQgLT4gJ2EKCQkgICAgIHZhbCB1bnNhZmVV
cGRhdGU6ICdhIHQgKiBpbnQgKiAnYSAtPiB1bml0CgkJICBlbmQpOiBBUlJBWSA9CnN0cnVjdAoK
b3BlbiBTCgpsb2NhbAogICBzdHJ1Y3R1cmUgViA9IFZlY3RvciAoUykKaW4KICAgb3BlbiBWCmVu
ZAoKdmFsIGFycmF5ID0gbmV3CgpmdW4gbW9kaWZ5IChhLCBmKSA9IGZvcmVhY2hpIChhLCBmbiAo
aSwgeCkgPT4gdW5zYWZlVXBkYXRlIChhLCBpLCBmIHgpKQogICAKZnVuIHN3YXAgKGEsIGksIGop
ID0KICAgbGV0IHZhbCB0ID0gc3ViIChhLCBpKQogICBpbiB1bnNhZmVVcGRhdGUgKGEsIGksIHN1
YiAoYSwgaikpCiAgICAgIDsgdW5zYWZlVXBkYXRlIChhLCBqLCB0KQogICBlbmQKICAgCmZ1biBz
aHVmZmxlTiAoYSwgbikgPQogICBsZXQgdmFsIG1heCA9IGxlbmd0aCBhIC0gMQogICBpbiBJbnQu
Zm9yICgwLCBuLCBmbiBpID0+IHN3YXAgKGEsIGksIFJhbmRvbS5pbnRSYW5nZSAoaSwgbWF4KSAo
KSkpCiAgIGVuZAoKZnVuIHNodWZmbGUgYSA9IHNodWZmbGVOIChhLCBsZW5ndGggYSkKCmZ1biBn
ZXRBbmRTZXQgYSA9IChmbiBpID0+IHN1YiAoYSwgaSksCgkJICAgZm4gKGksIHgpID0+IHVwZGF0
ZSAoYSwgaSwgeCkpCgpmdW4gZnJvbUxpc3RSZXYgbCA9CiAgIGNhc2UgbCBvZgogICAgICBbXSA9
PiBuZXcwICgpCiAgICB8IHggOjogbCA9PgoJIGxldAoJICAgIHZhbCBuID0gTGlzdC5sZW5ndGgg
bAoJICAgIHZhbCBhID0gbmV3IChuICsgMSwgeCkKCSAgICBmdW4gbG9vcCAobCwgaSkgPQoJICAg
ICAgIGNhc2UgbCBvZgoJCSAgW10gPT4gKCkKCQl8IHggOjogbCA9PiAodW5zYWZlVXBkYXRlIChh
LCBpLCB4KQoJCQkgICAgIDsgbG9vcCAobCwgaSAtIDEpKQoJICAgIHZhbCBfID0gbG9vcCAobCwg
biAtIDEpCgkgaW4gYQoJIGVuZAoKZnVuIHRvVmVjdG9yIGEgPSBWZWN0b3IudGFidWxhdGUgKGxl
bmd0aCBhLCBmbiBpID0+IHN1YiAoYSwgaSkpCiAgIAplbmQKKCogc3RvcCBvZiBsaWIvbWx0b24v
YmFzaWMvYXJyYXkuZnVuICopCigqIHN0YXJ0IG9mIGxpYi9tbHRvbi9iYXNpYy9hcnJheS5zbWwg
KikKc3RydWN0dXJlIEFycmF5ID0KICAgQXJyYXkgKG9wZW4gUGVydmFzaXZlLkFycmF5CgkgIHR5
cGUgJ2EgdCA9ICdhIGFycmF5CgkgIGV4Y2VwdGlvbiBOZXcgPSBTaXplCgkgIHZhbCB1bnNhZmVT
dWIgPSBVbnNhZmUuQXJyYXkuc3ViCgkgIHZhbCB1bnNhZmVVcGRhdGUgPSBVbnNhZmUuQXJyYXku
dXBkYXRlKQoKZnVuY3RvciBNb25vQXJyYXkgKEVsdDogVCkgPQogICBzdHJ1Y3QKICAgICAgb3Bl
biBBcnJheQogICAgICB0eXBlIHQgPSBFbHQudCB0CiAgICAgIHZhbCBlcXVhbHMgPSBmbiAoYSwg
YScpID0+IGVxdWFscyAoYSwgYScsIEVsdC5lcXVhbHMpCiAgICAgIHZhbCBsYXlvdXQgPSBsYXlv
dXQgRWx0LmxheW91dAogICBlbmQKKCogc3RvcCBvZiBsaWIvbWx0b24vYmFzaWMvYXJyYXkuc21s
ICopCigqIHN0YXJ0IG9mIGxpYi9tbHRvbi9iYXNpYy9oYXNoLXNldC5zaWcgKikKdHlwZSBpbnQg
PSBJbnQudAp0eXBlIHdvcmQgPSBXb3JkLnQKCnNpZ25hdHVyZSBIQVNIX1NFVCA9CiAgIHNpZwog
ICAgICB0eXBlICdhIHQKCiAgICAgIHZhbCBmb2xkOiAnYSB0ICogJ2IgKiAoJ2EgKiAnYiAtPiAn
YikgLT4gJ2IKICAgICAgdmFsIGZvcmFsbDogJ2EgdCAqICgnYSAtPiBib29sKSAtPiBib29sCiAg
ICAgIHZhbCBmb3JlYWNoOiAnYSB0ICogKCdhIC0+IHVuaXQpIC0+IHVuaXQKICAgICAgdmFsIGxh
eW91dDogKCdhIC0+IExheW91dC50KSAtPiAnYSB0IC0+IExheW91dC50CiAgICAgICgqIGxvb2t1
cE9ySW5zZXJ0IChzLCBoLCBwLCBmKSAgbG9va3MgaW4gdGhlIHNldCBzIGZvciBhbiBlbnRyeSB3
aXRoIGhhc2ggaAogICAgICAgKiBzYXRpc2Z5aW5nIHByZWRpY2F0ZSBwLiAgSWYgdGhlIGVudHJ5
IGlzIHRoZXJlLCBpdCBpcyByZXR1cm5lZC4KICAgICAgICogT3RoZXJ3aXNlLCB0aGUgZnVuY3Rp
b24gZiBpcyBjYWxsZWQgdG8gY3JlYXRlIGEgbmV3IGVudHJ5LCB3aGljaCBpcwogICAgICAgKiBp
bnNlcnRlZCBhbmQgcmV0dXJuZWQuCiAgICAgICAqKQogICAgICB2YWwgbG9va3VwT3JJbnNlcnQ6
ICdhIHQgKiB3b3JkICogKCdhIC0+IGJvb2wpICogKHVuaXQgLT4gJ2EpIC0+ICdhCiAgICAgIHZh
bCBuZXc6IHtoYXNoOiAnYSAtPiB3b3JkfSAtPiAnYSB0CiAgICAgIHZhbCBwZWVrOiAnYSB0ICog
d29yZCAqICgnYSAtPiBib29sKSAtPiAnYSBvcHRpb24KICAgICAgKCogcmVtb3ZlIChzLCBwKSBy
ZW1vdmVzIGFsbCBlbnRyaWVzIGZyb20gcyB0aGF0IHNhdGlzZnkgcHJlZGljYXRlIHAuICopCiAg
ICAgIHZhbCByZW1vdmU6ICdhIHQgKiAoJ2EgLT4gYm9vbCkgLT4gdW5pdAogICAgICB2YWwgc2l6
ZTogJ2EgdCAtPiBpbnQKICAgICAgdmFsIHN0YXRzOiB1bml0IC0+IExheW91dC50CiAgICAgIHZh
bCB0b0xpc3Q6ICdhIHQgLT4gJ2EgbGlzdAogICBlbmQKCgpmdW5jdG9yIFRlc3RIYXNoU2V0IChT
OiBIQVNIX1NFVCk6IHNpZyBlbmQgPQpzdHJ1Y3QKCm9wZW4gUwoKdmFsIF8gPSBBc3NlcnQuYXNz
ZXJ0KCJIYXNoU2V0IiwgZm4gKCkgPT4gdHJ1ZSkKCmVuZAooKiBzdG9wIG9mIGxpYi9tbHRvbi9i
YXNpYy9oYXNoLXNldC5zaWcgKikKKCogc3RhcnQgb2YgbGliL21sdG9uL2Jhc2ljL2hhc2gtc2V0
LnNtbCAqKQpzdHJ1Y3R1cmUgSGFzaFNldDogSEFTSF9TRVQgPQpzdHJ1Y3QKCmRhdGF0eXBlICdh
IHQgPQogICBUIG9mIHtidWNrZXRzOiAnYSBsaXN0IGFycmF5IHJlZiwKCSBoYXNoOiAnYSAtPiB3
b3JkLAoJIG1hc2s6IHdvcmQgcmVmLAoJIG51bUl0ZW1zOiBpbnQgcmVmfQoKdmFsIGluaXRpYWxT
aXplOiBpbnQgPSBJbnQuXiAoMiwgNikKdmFsIGluaXRpYWxNYXNrOiB3b3JkID0gV29yZC5mcm9t
SW50IGluaXRpYWxTaXplIC0gMHcxCgpmdW4gJ2EgbmV3IHtoYXNofTogJ2EgdCA9CiAgIFQge2J1
Y2tldHMgPSByZWYgKEFycmF5Lm5ldyAoaW5pdGlhbFNpemUsIFtdKSksCiAgICAgIGhhc2ggPSBo
YXNoLAogICAgICBudW1JdGVtcyA9IHJlZiAwLAogICAgICBtYXNrID0gcmVmIGluaXRpYWxNYXNr
fQoKZnVuIHNpemUgKFQge251bUl0ZW1zLCAuLi59KSA9ICFudW1JdGVtcwpmdW4gbnVtQnVja2V0
cyAoVCB7YnVja2V0cywgLi4ufSkgPSBBcnJheS5sZW5ndGggKCFidWNrZXRzKQoKZnVuIGluZGV4
ICh3OiB3b3JkLCBtYXNrOiB3b3JkKTogaW50ID0KICAgV29yZC50b0ludCAoV29yZC5hbmRiICh3
LCBtYXNrKSkKICAgCnZhbCBudW1QZWVrczogaW50IHJlZiA9IHJlZiAwCnZhbCBudW1MaW5rczog
aW50IHJlZiA9IHJlZiAwCgpmdW4gc3RhdHMgKCkgPQogICBsZXQgb3BlbiBMYXlvdXQKICAgaW4g
YWxpZ24KICAgICAgW3NlcSBbc3RyICJudW1QZWVrcyA9ICIsIEludC5sYXlvdXQgKCFudW1QZWVr
cyldLAogICAgICAgc2VxIFtzdHIgImF2ZXJhZ2UgcG9zaXRpb24gaW4gYnVja2V0ID0gIiwKCSAg
ICBzdHIgbGV0IG9wZW4gUmVhbAoJCWluIGZvcm1hdCAoZnJvbUludCAoIW51bUxpbmtzKSAvIGZy
b21JbnQgKCFudW1QZWVrcyksCgkJCSAgIEZvcm1hdC5maXggKFNPTUUgMykpCgkJZW5kXV0KICAg
ZW5kCgpmdW4gcmVzaXplIChUIHtidWNrZXRzLCBoYXNoLCBtYXNrLCAuLi59LCBzaXplOiBpbnQs
IG5ld01hc2s6IHdvcmQpOiB1bml0ID0KICAgbGV0CiAgICAgIHZhbCBuZXdCdWNrZXRzID0gQXJy
YXkubmV3IChzaXplLCBbXSkKICAgaW4gQXJyYXkuZm9yZWFjaCAoIWJ1Y2tldHMsIGZuIHIgPT4K
CQkgICAgIExpc3QuZm9yZWFjaCAociwgZm4gYSA9PgoJCQkJICAgbGV0IHZhbCBqID0gaW5kZXgg
KGhhc2ggYSwgbmV3TWFzaykKCQkJCSAgIGluIEFycmF5LnVwZGF0ZQoJCQkJICAgICAgKG5ld0J1
Y2tldHMsIGosCgkJCQkgICAgICAgYSA6OiBBcnJheS5zdWIgKG5ld0J1Y2tldHMsIGopKQoJCQkJ
ICAgZW5kKSkKICAgICAgOyBidWNrZXRzIDo9IG5ld0J1Y2tldHMKICAgICAgOyBtYXNrIDo9IG5l
d01hc2sKICAgZW5kCiAgIAkgICAgICAgCmZ1biBtYXliZUdyb3cgKHMgYXMgVCB7YnVja2V0cywg
bWFzaywgbnVtSXRlbXMsIC4uLn0pOiB1bml0ID0KICAgbGV0CiAgICAgIHZhbCBuID0gQXJyYXku
bGVuZ3RoICghYnVja2V0cykKICAgaW4gaWYgIW51bUl0ZW1zICogNCA+IG4KCSB0aGVuIHJlc2l6
ZSAocywKCQkgICAgICBuICogMiwKCQkgICAgICAoKiBUaGUgbmV3IG1hc2sgZGVwZW5kcyBvbiBn
cm93RmFjdG9yIGJlaW5nIDIuICopCgkJICAgICAgV29yZC5vcmIgKDB3MSwgV29yZC48PCAoIW1h
c2ssIDB3MSkpKQogICAgICBlbHNlICgpCiAgIGVuZAoKKCogU2hyaW5rIHRoZSB0YWJsZSBzbyBp
dCBpcyBtb3JlIHRoYW4gMS84dGggZnVsbC4gKikKZnVuIG1heWJlU2hyaW5rIChzIGFzIFQge2J1
Y2tldHMsIG1hc2ssIG51bUl0ZW1zLCAuLi59KTogdW5pdCA9CiAgIGxldAogICAgICB2YWwgbiA9
IEFycmF5Lmxlbmd0aCAoIWJ1Y2tldHMpCiAgICAgIHZhbCBtYXhTaXplID0gSW50Lm1heCAoIW51
bUl0ZW1zICogOCwgaW5pdGlhbFNpemUpCiAgICAgIGZ1biBsb29wIChuLCBzaGlmdEFtb3VudCkg
PQoJIGlmIG4gPD0gbWF4U2l6ZQoJICAgIHRoZW4gKG4sIHNoaWZ0QW1vdW50KQoJIGVsc2UgbG9v
cCAoSW50LnF1b3QgKG4sIDIpLCAxICsgc2hpZnRBbW91bnQpCiAgICAgIHZhbCAobicsIHNoaWZ0
QW1vdW50KSA9IGxvb3AgKG4sIDApCiAgIGluCiAgICAgIGlmIG4gPSBuJwoJIHRoZW4gKCkKICAg
ICAgZWxzZSByZXNpemUgKHMsIG4nLCBXb3JkLj4+ICghbWFzaywgV29yZC5mcm9tSW50IHNoaWZ0
QW1vdW50KSkKICAgZW5kCgpmdW4gcmVtb3ZlIChUIHtidWNrZXRzLCBoYXNoLCBtYXNrLCBudW1J
dGVtc30sIHApID0KICAgQXJyYXkubW9kaWZ5ICghYnVja2V0cywgZm4gZWx0cyA9PgoJCSBMaXN0
LmZvbGQgKGVsdHMsIFtdLCBmbiAoYSwgYWMpID0+CgkJCSAgICBpZiBwIGEKCQkJICAgICAgIHRo
ZW4gKEludC5kZWMgbnVtSXRlbXM7IGFjKQoJCQkgICAgZWxzZSBhIDo6IGFjKSkKICAgKCogbWF5
YmUgc2hyaW5rICopCgoKZnVuIHBlZWtHZW4gKFQge2J1Y2tldHMgPSByZWYgYnVja2V0cywgbWFz
aywgLi4ufSwgdywgcCwgbm8sIHllcykgPQogICBsZXQKICAgICAgdmFsIF8gPSBJbnQuaW5jIG51
bVBlZWtzCiAgICAgIHZhbCBqID0gaW5kZXggKHcsICFtYXNrKQogICAgICB2YWwgYiA9IEFycmF5
LnN1YiAoYnVja2V0cywgaikKICAgaW4gY2FzZSBMaXN0LnBlZWsgKGIsIGZuIGEgPT4gKEludC5p
bmMgbnVtTGlua3M7IHAgYSkpIG9mCiAgICAgIE5PTkUgPT4gbm8gKGosIGIpCiAgICB8IFNPTUUg
YSA9PiB5ZXMgYQogICBlbmQKCmZ1biBwZWVrICh0LCB3LCBwKSA9IHBlZWtHZW4gKHQsIHcsIHAs
IGZuIF8gPT4gTk9ORSwgU09NRSkKCigqIGZ1biB1cGRhdGUgKFQge2J1Y2tldHMgPSByZWYgYnVj
a2V0cywgZXF1YWxzLCBoYXNoLCBtYXNrLCAuLi59LCBhKSA9CiAqICAgIGxldAogKiAgICAgICB2
YWwgaiA9IGluZGV4IChoYXNoIGEsICFtYXNrKQogKiAgICAgICB2YWwgXyA9CiAqIAkgQXJyYXku
dXBkYXRlIChidWNrZXRzLCBqLAogKiAJCSAgICAgICBhIDo6IChMaXN0LnJlbW92ZSAoQXJyYXku
c3ViIChidWNrZXRzLCBqKSwKICogCQkJCQkgIGZuIGEnID0+IGVxdWFscyAoYSwgYScpKSkpCiAq
ICAgIGluICgpCiAqICAgIGVuZAogKikKCmZ1biBsb29rdXBPckluc2VydCAodGFibGUgYXMgVCB7
YnVja2V0cywgbnVtSXRlbXMsIC4uLn0sIHcsIHAsIGYpID0KICAgbGV0CiAgICAgIGZ1biBubyAo
aiwgYikgPQoJIGxldCB2YWwgYSA9IGYgKCkKCSAgICB2YWwgXyA9IEludC5pbmMgbnVtSXRlbXMK
CSAgICB2YWwgXyA9IEFycmF5LnVwZGF0ZSAoIWJ1Y2tldHMsIGosIGEgOjogYikKCSAgICB2YWwg
XyA9IG1heWJlR3JvdyB0YWJsZQoJIGluIGEKCSBlbmQKICAgaW4gcGVla0dlbiAodGFibGUsIHcs
IHAsIG5vLCBmbiB4ID0+IHgpCiAgIGVuZAoKZnVuIGZvbGQgKFQge2J1Y2tldHMsIC4uLn0sIGIs
IGYpID0KICAgQXJyYXkuZm9sZCAoIWJ1Y2tldHMsIGIsIGZuIChyLCBiKSA9PiBMaXN0LmZvbGQg
KHIsIGIsIGYpKQoKbG9jYWwKICAgc3RydWN0dXJlIEYgPSBGb2xkICh0eXBlICdhIHQgPSAnYSB0
CgkJICAgICAgIHR5cGUgJ2EgZWx0ID0gJ2EKCQkgICAgICAgdmFsIGZvbGQgPSBmb2xkKQogICBv
cGVuIEYKaW4KICAgdmFsIGZvcmFsbCA9IGZvcmFsbAogICB2YWwgZm9yZWFjaCA9IGZvcmVhY2gK
ZW5kCgpmdW4gdG9MaXN0IHQgPSBmb2xkICh0LCBbXSwgZm4gKGEsIGwpID0+IGEgOjogbCkKCmZ1
biBsYXlvdXQgbGF5IHQgPSBMaXN0LmxheW91dCBsYXkgKHRvTGlzdCB0KQoKZW5kCigqIHN0b3Ag
b2YgbGliL21sdG9uL2Jhc2ljL2hhc2gtc2V0LnNtbCAqKQooKiBzdGFydCBvZiBsaWIvbWx0b24v
YmFzaWMvYmluYXJ5LXNlYXJjaC5zaWcgKikKdHlwZSBpbnQgPSBJbnQudAogICAKc2lnbmF0dXJl
IEJJTkFSWV9TRUFSQ0ggPQogICBzaWcKICAgICAgKCogbGFyZ2VzdChhLCBmKQogICAgICAgKiBQ
cmU6IGlmIDAgPD0gaSA8IGogPCBBcnJheS5zaXplIGEKICAgICAgICogICAgICAgICBhbmRhbHNv
IGYgKEFycmF5LnN1YiAoYSwgaikpCiAgICAgICAqICAgICAgdGhlbiBmIChBcnJheS5zdWIgKGEs
IGkpKQogICAgICAgKiBSZXR1cm5zIHRoZSBsYXJnZXN0IGkgc3VjaCB0aGF0IGYgKEFycmF5LnN1
YiAoYSwgaSkpCiAgICAgICAqKQogICAgICB2YWwgbGFyZ2VzdDogJ2EgYXJyYXkgKiAoJ2EgLT4g
Ym9vbCkgLT4gaW50IG9wdGlvbgogICAgICB2YWwgc2VhcmNoOiAnYSBhcnJheSAqICgnYSAtPiBv
cmRlcikgLT4gaW50IG9wdGlvbgogICAgICAoKiBzbWFsbGVzdChhLCBmKQogICAgICAgKiBQcmU6
IGlmIDAgPD0gaSA8IGogPCBBcnJheS5zaXplIGEKICAgICAgICogICAgICAgICBhbmQgZihBcnJh
eS5zdWIoYSwgaSkpCiAgICAgICAqICAgICAgdGhlbiBmKEFycmF5LnN1YihhLCBqKQogICAgICAg
KiBSZXR1cm5zIHRoZSBzbWFsbGVzdCBpIHN1Y2ggdGhhdCBmKEFycmF5LnN1YihhLCBpKSkKICAg
ICAgICopCiAgICAgIHZhbCBzbWFsbGVzdDogJ2EgYXJyYXkgKiAoJ2EgLT4gYm9vbCkgLT4gaW50
IG9wdGlvbgogICBlbmQKCmZ1bmN0b3IgVGVzdEJpbmFyeVNlYXJjaCAoUzogQklOQVJZX1NFQVJD
SCk6IHNpZyBlbmQgPQpzdHJ1Y3QKCm9wZW4gUwogICAKdmFsIF8gPQogICBBc3NlcnQuYXNzZXJ0
CiAgICgiQmluYXJ5U2VhcmNoIiwgZm4gKCkgPT4KICAgIGxldAogICAgICAgdmFsIG4gPSAxNwog
ICAgICAgdmFsIGEgPSBBcnJheS5mcm9tTGlzdCAoUGVydmFzaXZlLkxpc3QudGFidWxhdGUgKG4s
IGZuIGkgPT4gaSkpCiAgICBpbiBJbnQuZm9yYWxsICgwLCBuLCBmbiBpID0+CgkJICAgU09NRSBp
ID0gc2VhcmNoIChhLCBmbiB4ID0+IEludC5jb21wYXJlIChpLCB4KSkpCiAgICBlbmQpCgplbmQK
KCogc3RvcCBvZiBsaWIvbWx0b24vYmFzaWMvYmluYXJ5LXNlYXJjaC5zaWcgKikKKCogc3RhcnQg
b2YgbGliL21sdG9uL2Jhc2ljL2JpbmFyeS1zZWFyY2guc21sICopCnN0cnVjdHVyZSBCaW5hcnlT
ZWFyY2g6IEJJTkFSWV9TRUFSQ0ggPQpzdHJ1Y3QKCigqIEJhc2VkIG9uIHBhZ2UgMzggb2YgUHJv
Z3JhbW1pbmcgUGVhcmxzLCBieSBKb24gQmVudGxleS4gKikKZnVuICdhIHNlYXJjaCAoYTogJ2Eg
YXJyYXksIGY6ICdhIC0+IG9yZGVyKTogaW50IG9wdGlvbiA9CiAgIGxldCAKICAgICAgZnVuIGxv
b3AgKG1pbjogaW50LCBtYXg6IGludCk6IGludCBvcHRpb24gPQoJIGlmIG1pbiA+IG1heAoJICAg
IHRoZW4gTk9ORQoJIGVsc2UKCSAgICBsZXQgdmFsIG1pZCA9IEludC5xdW90IChtaW4gKyBtYXgs
IDIpCgkgICAgaW4gY2FzZSBmIChBcnJheS5zdWIgKGEsIG1pZCkpIG9mCgkgICAgICAgTEVTUyA9
PiBsb29wIChtaW4sIG1pZCAtIDEpCgkgICAgIHwgRVFVQUwgPT4gU09NRSBtaWQKCSAgICAgfCBH
UkVBVEVSID0+IGxvb3AgKG1pZCArIDEsIG1heCkKCSAgICBlbmQKICAgaW4gbG9vcCAoMCwgQXJy
YXkubGVuZ3RoIGEgLSAxKQogICBlbmQKCmZ1biAnYSBsYXJnZXN0IChhOiAnYSBhcnJheSwgZjog
J2EgLT4gYm9vbCk6IGludCBvcHRpb24gPQogICBsZXQgCiAgICAgIGZ1biBsb29wKG1pbiwgbWF4
LCByZXM6IGludCBvcHRpb24pOiBpbnQgb3B0aW9uID0KCSBpZiBtaW4gPiBtYXgKCSAgICB0aGVu
IHJlcwoJIGVsc2UKCSAgICBsZXQgdmFsIG1pZCA9IEludC5xdW90KG1pbiArIG1heCwgMikKCSAg
ICBpbiBpZiBmKEFycmF5LnN1YihhLCBtaWQpKQoJCSAgdGhlbiBsb29wKG1pZCArIDEsIG1heCwg
U09NRSBtaWQpCgkgICAgICAgZWxzZSBsb29wKG1pbiwgbWlkIC0gMSwgcmVzKQoJICAgIGVuZAog
ICBpbiBsb29wKDAsIEFycmF5Lmxlbmd0aCBhIC0gMSwgTk9ORSkKICAgZW5kCgpmdW4gJ2Egc21h
bGxlc3QoYTogJ2EgYXJyYXksIGY6ICdhIC0+IGJvb2wpOiBpbnQgb3B0aW9uID0KICAgbGV0IAog
ICAgICBmdW4gbG9vcChtaW4sIG1heCwgcmVzOiBpbnQgb3B0aW9uKTogaW50IG9wdGlvbiA9Cgkg
aWYgbWluID4gbWF4CgkgICAgdGhlbiByZXMKCSBlbHNlCgkgICAgbGV0IHZhbCBtaWQgPSBJbnQu
cXVvdChtaW4gKyBtYXgsIDIpCgkgICAgaW4gaWYgZihBcnJheS5zdWIoYSwgbWlkKSkKCQkgIHRo
ZW4gbG9vcChtaW4sIG1pZCAtIDEsIFNPTUUgbWlkKQoJICAgICAgIGVsc2UgbG9vcChtaWQgKyAx
LCBtYXgsIHJlcykKCSAgICBlbmQKICAgaW4gbG9vcCgwLCBBcnJheS5sZW5ndGggYSAtIDEsIE5P
TkUpCiAgIGVuZAoKZW5kCigqIHN0b3Agb2YgbGliL21sdG9uL2Jhc2ljL2JpbmFyeS1zZWFyY2gu
c21sICopCigqIHN0YXJ0IG9mIGxpYi9tbHRvbi9iYXNpYy9zdHJpbmcuc2lnICopCnR5cGUgaW50
ID0gUGVydmFzaXZlLkludC5pbnQKICAgCnNpZ25hdHVyZSBTVFJJTkcgPQogICBzaWcKICAgICAg
dHlwZSB0ID0gc3RyaW5nCgogICAgICAoKiBhIC8gYiA9IGEgXiAiLyIgXiBiCiAgICAgICAqIFRo
aXMgYWJicmV2aWF0aW9uIGlzIHVzZWZ1bCBmb3IgYnVpbGRpbmcgcGF0aG5hbWVzLCBlLmcuCiAg
ICAgICAqICAgIHZhbCB1c2VyID0gInlvdSIKICAgICAgICogICAgdmFsIGJpbiA9ICIvaG9tZSIv
dXNlci8iYmluIgogICAgICAgKikKICAgICAgdmFsIC8gOiBzdHJpbmcgKiBzdHJpbmcgLT4gc3Ry
aW5nCiAgICAgIHZhbCA8IDogdCAqIHQgLT4gYm9vbAogICAgICB2YWwgPD0gOiB0ICogdCAtPiBi
b29sCiAgICAgIHZhbCA+IDogdCAqIHQgLT4gYm9vbAogICAgICB2YWwgPj0gOiB0ICogdCAtPiBi
b29sCiAgICAgIHZhbCBeIDogdCAqIHQgLT4gdAogICAgICB2YWwgYWxwaGFiZXRpemU6IHQgLT4g
dAogICAgICB2YWwgYmFzZU5hbWU6IHQgKiB0IC0+IHQKICAgICAgdmFsIGNvbXBhcmU6IHQgKiB0
IC0+IFJlbGF0aW9uLnQKICAgICAgdmFsIGNvbmNhdDogdCBsaXN0IC0+IHQKICAgICAgdmFsIGNv
bnRhaW5zOiB0ICogY2hhciAtPiBib29sCiAgICAgIHZhbCBkZWxldGVTdXJyb3VuZGluZ1doaXRl
c3BhY2U6IHQgLT4gdAogICAgICB2YWwgZHF1b3RlOiB0ICgqICIgKikKICAgICAgdmFsIGRyb3Bs
OiB0ICogKGNoYXIgLT4gYm9vbCkgLT4gdAogICAgICB2YWwgZHJvcExhc3Q6IHQgLT4gdAogICAg
ICB2YWwgZHJvcFByZWZpeDogdCAqIGludCAtPiB0CiAgICAgIHZhbCBkcm9wU3VmZml4OiB0ICog
aW50IC0+IHQKICAgICAgdmFsIGRyb3BUcmFpbGluZzogdCAqIGNoYXIgLT4gdAogICAgICB2YWwg
ZW1wdHk6IHQKICAgICAgdmFsIGVxdWFsczogdCAqIHQgLT4gYm9vbAogICAgICB2YWwgZXNjYXBl
QzogdCAtPiB0CiAgICAgIHZhbCBlc2NhcGVTTUw6IHQgLT4gdAogICAgICB2YWwgZXhwbG9kZTog
dCAtPiBjaGFyIGxpc3QKICAgICAgKCogZXh0cmFjdCAocywgaSwgU09NRSBqKQogICAgICAgKiBy
ZXR1cm5zIHRoZSBzdWJzdHJpbmcgb2YgcyBvZiBsZW5ndGggaiBzdGFydGluZyBhdCBpLgogICAg
ICAgKikKICAgICAgdmFsIGV4dHJhY3Q6IHQgKiBpbnQgKiBpbnQgb3B0aW9uIC0+IHQKICAgICAg
dmFsIGZpZWxkczogdCAqIChjaGFyIC0+IGJvb2wpIC0+IHQgbGlzdAogICAgICB2YWwgZm9sZDog
dCAqICdhICogKGNoYXIgKiAnYSAtPiAnYSkgLT4gJ2EKICAgICAgdmFsIGZvbGRpOiB0ICogJ2Eg
KiAoaW50ICogY2hhciAqICdhIC0+ICdhKSAtPiAnYQogICAgICB2YWwgZm9yZWFjaDogdCAqIChj
aGFyIC0+IHVuaXQpIC0+IHVuaXQKICAgICAgdmFsIGZvcmFsbDogdCAqIChjaGFyIC0+IGJvb2wp
IC0+IGJvb2wKICAgICAgdmFsIGZyb21DU3RyaW5nOiB0IC0+IHQgb3B0aW9uCiAgICAgIHZhbCBm
cm9tQ2hhcjogY2hhciAtPiB0CiAgICAgIHZhbCBmcm9tQ2hhckFycmF5OiBDaGFyQXJyYXkuYXJy
YXkgLT4gdAogICAgICB2YWwgZnJvbVN0cmluZzogdCAtPiB0IG9wdGlvbgogICAgICB2YWwgaGFz
aDogdCAtPiBXb3JkLnQKICAgICAgdmFsIGltcGxvZGU6IGNoYXIgbGlzdCAtPiB0CiAgICAgIHZh
bCBpc0VtcHR5OiB0IC0+IGJvb2wKICAgICAgdmFsIGlzUHJlZml4OiB7c3RyaW5nOiB0LCBwcmVm
aXg6IHR9IC0+IGJvb2wKICAgICAgdmFsIGlzU3Vic3RyaW5nOiB7c3RyaW5nOiB0LCBzdWJzdHJp
bmc6IHR9IC0+IGJvb2wKICAgICAgdmFsIGlzU3VmZml4OiB7c3RyaW5nOiB0LCBzdWZmaXg6IHR9
IC0+IGJvb2wKICAgICAgdmFsIGtlZXBBbGw6IHQgKiAoY2hhciAtPiBib29sKSAtPiB0CiAgICAg
IHZhbCBsYXN0OiB0IC0+IGNoYXIKICAgICAgdmFsIGxheW91dDogdCAtPiBMYXlvdXQudAogICAg
ICB2YWwgbGVuZ3RoOiB0IC0+IGludAogICAgICB2YWwgbHBhcmVuOiB0ICgqICggKikKICAgICAg
dmFsIG1ha2U6IGludCAqIGNoYXIgLT4gdAogICAgICB2YWwgbWF4OiB0ICogdCAtPiB0CiAgICAg
IHZhbCBtYXhTaXplOiBpbnQKICAgICAgdmFsIG1lbW9pemU6ICh0IC0+ICdhKSAtPiB0IC0+ICdh
CiAgICAgIHZhbCBtZW1vaXplTGlzdDogKHQgLT4gJ2EpICogKHQgKiAnYSkgbGlzdCAtPiB0IC0+
ICdhCiAgICAgIHZhbCBtaW46IHQgKiB0IC0+IHQKICAgICAgdmFsIG5ld2xpbmU6IHQKICAgICAg
dmFsIG91dHB1dDogdCAqIFRleHRJTy5vdXRzdHJlYW0gLT4gdW5pdAogICAgICB2YWwgcGVlazog
dCAqIChjaGFyIC0+IGJvb2wpIC0+IGNoYXIgb3B0aW9uCiAgICAgIHZhbCBwZWVraTogdCAqIChp
bnQgKiBjaGFyIC0+IGJvb2wpIC0+IChpbnQgKiBjaGFyKSBvcHRpb24KICAgICAgdmFsIHBvc1Rv
TGluZUNvbDogdCAtPiBpbnQgLT4ge2xpbmU6IGludCwgY29sOiBpbnR9CiAgICAgIHZhbCBwcmVm
aXg6IHQgKiBpbnQgLT4gdAogICAgICB2YWwgcmVtb3ZlVHJhaWxpbmc6IHQgKiAoY2hhciAtPiBi
b29sKSAtPiB0CiAgICAgIHZhbCBycGFyZW46IHQgKCogKSAqKQogICAgICB2YWwgc2l6ZTogdCAt
PiBpbnQKICAgICAgKCogc3BsaXRzIHRoZSBzdHJpbmcgaW50byBzdWJzdHJpbmdzIGJyb2tlbiBh
dCBjaGFyLAogICAgICAgKiBlLmcuIHNwbGl0KCJmb28kYmFyJGJheiIsICMiJCIpID0gWyJmb28i
LCAiYmFyIiwgImJheiJdCiAgICAgICAqKQogICAgICB2YWwgc3BsaXQ6IHQgKiBjaGFyIC0+IHQg
bGlzdAogICAgICB2YWwgc3ViOiB0ICogaW50IC0+IGNoYXIKICAgICAgKCogYmVnaW5uaW5nIGF0
IHN0YXJ0LCB3aXRoIGxlbmd0aCBjaGFycyAqKQogICAgICB2YWwgc3Vic3RyaW5nMTogdCAqIHtz
dGFydDogaW50LCBsZW5ndGg6IGludH0gLT4gdAogICAgICAoKiBpbmNsdXNpdmUgb2Ygc3RhcnQs
IGV4Y2x1c2l2ZSBvZiBmaW5pc2ggKikKICAgICAgdmFsIHN1YnN0cmluZzI6IHQgKiB7c3RhcnQ6
IGludCwgZmluaXNoOiBpbnR9IC0+IHQKICAgICAgdmFsIHN1YnN0cmluZzogdCAqIGludCAqIGlu
dCAtPiB0CiAgICAgIHZhbCBzdWZmaXg6IHQgKiBpbnQgLT4gdAogICAgICB2YWwgdGFidWxhdGU6
IGludCAqIChpbnQgLT4gY2hhcikgLT4gdAogICAgICB2YWwgdG9DaGFyOiB0IC0+IGNoYXIKICAg
ICAgdmFsIHRvTG93ZXI6IHQgLT4gdAogICAgICB2YWwgdG9TdHJpbmc6IHQgLT4gdAogICAgICB2
YWwgdG9VcHBlcjogdCAtPiB0CiAgICAgIHZhbCB0b2tlbnM6IHQgKiAoY2hhciAtPiBib29sKSAt
PiB0IGxpc3QgCiAgICAgIHZhbCB0cmFuc2xhdGU6IHQgKiAoY2hhciAtPiB0KSAtPiB0CiAgIGVu
ZAoKCmZ1bmN0b3IgVGVzdFN0cmluZyAoUzogU1RSSU5HKTogc2lnIGVuZCA9CnN0cnVjdAoKb3Bl
biBTCgp2YWwgXyA9CiAgIEFzc2VydC5hc3NlcnQKICAgKCJTdHJpbmciLCBmbiAoKSA9PgogICAg
ZHJvcGwoImFiYyIsIGZuIGMgPT4gYyA9ICMiYSIpID0gImJjIgogICAgYW5kYWxzbyAiXFwwMDAi
ID0gZXNjYXBlQyAiXDAwMCIKICAgIGFuZGFsc28gImFiYyIgPSByZW1vdmVUcmFpbGluZyAoImFi
YyAgIiwgQ2hhci5pc1NwYWNlKQogICAgYW5kYWxzbyAiIiA9IHJlbW92ZVRyYWlsaW5nICgiICAg
IiwgQ2hhci5pc1NwYWNlKQogICAgKQoKZW5kCgooKiBzdG9wIG9mIGxpYi9tbHRvbi9iYXNpYy9z
dHJpbmcuc2lnICopCigqIHN0YXJ0IG9mIGxpYi9tbHRvbi9iYXNpYy9zdHJpbmcuc21sICopCnR5
cGUgd29yZCA9IFdvcmQudAogICAKc3RydWN0dXJlIFN0cmluZzogU1RSSU5HID0KICAgc3RydWN0
CiAgICAgIG9wZW4gU3RyaW5nMQoKICAgICAgZnVuIGtlZXBBbGwgKHM6IHQsIGY6IGNoYXIgLT4g
Ym9vbCk6IHQgPQoJIGltcGxvZGUgKHJldiAoZm9sZCAocywgW10sIGZuIChjLCBhYykgPT4gaWYg
ZiBjIHRoZW4gYyA6OiBhYyBlbHNlIGFjKSkpCgkgCiAgICAgIGZ1biBtZW1vaXplTGlzdCAoaW5p
dDogc3RyaW5nIC0+ICdhLCBsOiAodCAqICdhKSBsaXN0KTogdCAtPiAnYSA9CgkgbGV0CgkgICAg
dmFsIHNldDogKHdvcmQgKiB0ICogJ2EpIEhhc2hTZXQudCA9IEhhc2hTZXQubmV3IHtoYXNoID0g
IzF9CgkgICAgZnVuIGxvb2t1cE9ySW5zZXJ0IChzLCBmKSA9CgkgICAgICAgbGV0CgkJICB2YWwg
aGFzaCA9IGhhc2ggcwoJICAgICAgIGluIEhhc2hTZXQubG9va3VwT3JJbnNlcnQKCQkgIChzZXQs
IGhhc2gsCgkJICAgZm4gKGhhc2gnLCBzJywgXykgPT4gaGFzaCA9IGhhc2gnIGFuZGFsc28gcyA9
IHMnLAoJCSAgIGZuICgpID0+IChoYXNoLCBzLCBmICgpKSkKCSAgICAgICBlbmQKCSAgICB2YWwg
XyA9CgkgICAgICAgTGlzdC5mb3JlYWNoIChsLCBmbiAocywgYSkgPT4KCQkJICAgICAobG9va3Vw
T3JJbnNlcnQgKHMsIGZuICgpID0+IGEpOyAoKSkpCgkgaW4KCSAgICBmbiBzID0+ICMzIChsb29r
dXBPckluc2VydCAocywgZm4gKCkgPT4gaW5pdCBzKSkKCSBlbmQKCiAgICAgIGZ1biBtZW1vaXpl
IGluaXQgPSBtZW1vaXplTGlzdCAoaW5pdCwgW10pCgogICAgICBmdW4gcG9zVG9MaW5lQ29sIChz
OiBzdHJpbmcpOiBpbnQgLT4ge2xpbmU6IGludCwgY29sOiBpbnR9ID0KCSBsZXQKCSAgICBvcGVu
IEludAoJICAgIHZhbCBsaW5lU3RhcnRzID0KCSAgICAgICBBcnJheS5mcm9tTGlzdAoJICAgICAg
IChyZXYoZm9sZGkocywgWzBdLCBmbiAoaSwgYywgaXMpID0+CgkJCSAgaWYgYyA9ICMiXG4iCgkJ
CSAgICAgdGhlbiAoaSArIDEpIDo6IGlzCgkJCSAgZWxzZSBpcykpKQoJICAgIGZ1biBmaW5kKHBv
czogaW50KSA9CgkgICAgICAgbGV0CgkJICB2YWwgbGluZSA9CgkJICAgICB2YWxPZihCaW5hcnlT
ZWFyY2gubGFyZ2VzdChsaW5lU3RhcnRzLCBmbiB4ID0+IHggPD0gcG9zKSkKCSAgICAgICAoKiBU
aGUgMSsncyBhcmUgdG8gbWFrZSBzdHVmZiBvbmUgYmFzZWQgKikKCSAgICAgICBpbiB7bGluZSA9
IDEgKyBsaW5lLAoJCSAgIGNvbCA9IDEgKyBwb3MgLSBBcnJheS5zdWIobGluZVN0YXJ0cywgbGlu
ZSl9CgkgICAgICAgZW5kCgkgaW4gZmluZAoJIGVuZAoKICAgZW5kCgpzdHJ1Y3R1cmUgWlN0cmlu
ZyA9IFN0cmluZyAoKiBDTSBidWcgPz8gLS0gc2VlIGluc3RyZWFtLnNtbCAqKQooKiBzdG9wIG9m
IGxpYi9tbHRvbi9iYXNpYy9zdHJpbmcuc21sICopCigqIHN0YXJ0IG9mIGxpYi9tbHRvbi9iYXNp
Yy9pbnN0cmVhbS5zaWcgKikKdHlwZSBpbnQgPSBQZXJ2YXNpdmUuSW50LmludAogICAKc2lnbmF0
dXJlIElOU1RSRUFNID0KICAgc2lnCiAgICAgIHR5cGUgdAoKICAgICAgdmFsIGNsb3NlOiB0IC0+
IHVuaXQKICAgICAgdmFsIGVuZE9mOiB0IC0+IGJvb2wKICAgICAgKCogRWFjaCBsaW5lIGluY2x1
ZGVzIHRoZSBuZXdsaW5lLiAqKQogICAgICB2YWwgZm9sZExpbmVzOiB0ICogJ2EgKiAoc3RyaW5n
ICogJ2EgLT4gJ2EpIC0+ICdhCiAgICAgIHZhbCBmb3JlYWNoTGluZTogdCAqIChzdHJpbmcgLT4g
dW5pdCkgLT4gdW5pdAogICAgICB2YWwgaWdub3JlU3BhY2VzOiB0IC0+IHVuaXQKICAgICAgdmFs
IGlucHV0OiB0IC0+IHN0cmluZwogICAgICB2YWwgaW5wdXRBbGw6IHQgLT4gc3RyaW5nCiAgICAg
IHZhbCBpbnB1dENoYXI6IHQgLT4gY2hhciBvcHRpb24KICAgICAgdmFsIGlucHV0TGluZTogdCAt
PiBzdHJpbmcKICAgICAgdmFsIGlucHV0TjogdCAqIGludCAtPiBzdHJpbmcKICAgICAgdmFsIGlu
cHV0Tm90aGluZzogdCAtPiB1bml0CiAgICAgICgqIGlucHV0VG8oaSwgcCkgaW5wdXRzIHVwIHRv
IGJ1dCBub3QgaW5jbHVkaW5nIHRoZSBmaXJzdCBjaGFyCiAgICAgICAqIHRoYXQgc2F0aXNmaWVz
IHAuCiAgICAgICAqKQogICAgICB2YWwgaW5wdXRUbzogdCAqIChjaGFyIC0+IGJvb2wpIC0+IHN0
cmluZwogICAgICB2YWwgaW5wdXRUb0NoYXI6IHQgKiBjaGFyIC0+IHN0cmluZwogICAgICB2YWwg
aW5wdXRUb1NwYWNlOiB0IC0+IHN0cmluZwogICAgICB2YWwgbGF5b3V0OiB0IC0+IExheW91dC50
CiAgICAgICgqIEVhY2ggbGluZSBpbmNsdWRlcyB0aGUgbmV3bGluZS4gKikKICAgICAgdmFsIGxp
bmVzOiB0IC0+IHN0cmluZyBsaXN0CiAgICAgIHZhbCBvcGVuSW46IHN0cmluZyAtPiB0CSAKICAg
ICAgdmFsIG91dHB1dEFsbDogdCAqIE91dC50IC0+IHVuaXQKICAgICAgdmFsIHBlZWtDaGFyOiB0
IC0+IGNoYXIgb3B0aW9uCiAgICAgIHZhbCBzYW1lQ29udGVudHM6IHQgKiB0IC0+IGJvb2wKKCog
ICAgICB2YWwgc2V0OiB0ICogdCAtPiB1bml0ICopCiAgICAgIHZhbCBzdGFuZGFyZDogdAogICAg
ICB2YWwgd2l0aENsb3NlOiB0ICogKHQgLT4gJ2EpIC0+ICdhCiAgICAgIHZhbCB3aXRoTnVsbDog
KHQgLT4gJ2EpIC0+ICdhCiAgIGVuZAooKiBzdG9wIG9mIGxpYi9tbHRvbi9iYXNpYy9pbnN0cmVh
bS5zaWcgKikKKCogc3RhcnQgb2YgbGliL21sdG9uL2Jhc2ljL2luc3RyZWFtLnNtbCAqKQpzdHJ1
Y3R1cmUgSW5zdHJlYW06IElOU1RSRUFNID0Kc3RydWN0CgpvcGVuIEluc3RyZWFtMAoKc3RydWN0
dXJlIFN0cmluZyA9IFpTdHJpbmcKCnZhbCBpbnB1dCA9CiAgIFRyYWNlLnRyYWNlKCJJbi5pbnB1
dCIsIGxheW91dCwgU3RyaW5nLmxheW91dCkgaW5wdXQKCSAgICAgICAKZnVuIG91dHB1dEFsbChp
bnM6IHQsIG91dDogT3V0LnQpOiB1bml0ID0KICAgd2hpbGUgbm90KGVuZE9mIGlucykKICAgICAg
ZG8gT3V0Lm91dHB1dChvdXQsIGlucHV0IGlucykKCnZhbCBpbnB1dExpbmUgPQogICBUcmFjZS50
cmFjZSgiSW4uaW5wdXRMaW5lIiwgbGF5b3V0LCBTdHJpbmcubGF5b3V0KSBpbnB1dExpbmUKCmZ1
biAnYSB3aXRoQ2xvc2UoaW5zOiB0LCBmOiB0IC0+ICdhKTogJ2EgPQogICBEeW5hbWljV2luZC53
aW5kKGZuICgpID0+IGYgaW5zLCBmbiAoKSA9PiBjbG9zZSBpbnMpCgpmdW4gJ2Egd2l0aEluKGY6
IHN0cmluZywgZzogdCAtPiAnYSk6ICdhID0KICAgd2l0aENsb3NlKG9wZW5JbiBmIGhhbmRsZSBJ
Ty5JbyBfID0+IEVycm9yLmJ1Zyhjb25jYXRbImNhbm5vdCBvcGVuICIsIGZdKSwgZykKCmZ1biB3
aXRoTnVsbCBmID0gd2l0aEluKCIvZGV2L3plcm8iLCBmKQoKZnVuIGxpbmVzIGlucyA9IHJldiAo
Zm9sZExpbmVzIChpbnMsIFtdLCBvcCA6OikpCgplbmQKCnN0cnVjdHVyZSBJbiA9IEluc3RyZWFt
CigqIHN0b3Agb2YgbGliL21sdG9uL2Jhc2ljL2luc3RyZWFtLnNtbCAqKQooKiBzdGFydCBvZiBs
aWIvbWx0b24vYmFzaWMvYXJyYXkyLnNpZyAqKQp0eXBlIGludCA9IEludC50CiAgIApzaWduYXR1
cmUgQVJSQVkyID0KICAgc2lnCiAgICAgIHR5cGUgJ2EgdAoKICAgICAgdmFsIGNvcHk6ICdhIHQg
LT4gJ2EgdAogICAgICB2YWwgZXF1YWxzOiAnYSB0ICogJ2EgdCAqICgnYSAqICdhIC0+IGJvb2wp
IC0+IGJvb2wKICAgICAgdmFsIGZvcmFsbDogJ2EgdCAqICgnYSAtPiBib29sKSAtPiBib29sCiAg
ICAgIHZhbCBmb3JlYWNoOiAnYSB0ICogKCdhIC0+IHVuaXQpIC0+IHVuaXQKICAgICAgdmFsIGZv
cmVhY2hpOiAnYSB0ICogKGludCAqIGludCAqICdhIC0+IHVuaXQpIC0+IHVuaXQKICAgICAgdmFs
IGZyb21MaXN0OiAnYSBsaXN0IGxpc3QgLT4gJ2EgdAogICAgICB2YWwgbGF5b3V0OiAoJ2EgLT4g
TGF5b3V0LnQpIC0+ICdhIHQgLT4gTGF5b3V0LnQKICAgICAgdmFsIG5Db2xzOiAnYSB0IC0+IGlu
dAogICAgICB2YWwgbmV3OiBpbnQgKiBpbnQgKiAnYSAtPiAnYSB0CiAgICAgIHZhbCBuUm93czog
J2EgdCAtPiBpbnQKICAgICAgdmFsIHN1YjogJ2EgdCAqIGludCAqIGludCAtPiAnYSAKICAgICAg
dmFsIHRhYnVsYXRlOiBpbnQgKiBpbnQgKiAoaW50ICogaW50IC0+ICdhKSAtPiAnYSB0CiAgICAg
IHZhbCB1cGRhdGU6ICdhIHQgKiBpbnQgKiBpbnQgKiAnYSAtPiB1bml0IAogICBlbmQKKCogc3Rv
cCBvZiBsaWIvbWx0b24vYmFzaWMvYXJyYXkyLnNpZyAqKQooKiBzdGFydCBvZiBsaWIvbWx0b24v
YmFzaWMvYXJyYXkyLnNtbCAqKQpzdHJ1Y3R1cmUgQXJyYXkyOiBBUlJBWTIgPQpzdHJ1Y3QKCm9w
ZW4gQXJyYXkyCgp0eXBlICdhIHQgPSAnYSBhcnJheQoKZnVuIHRvTGlzdCBhID0KICAgbGV0CiAg
ICAgIGZ1biBsb29wKHIsIGFjKSA9CgkgaWYgciA9IH4xCgkgICAgdGhlbiBhYwoJIGVsc2UgbG9v
cChyIC0gMSwKCQkgICBsZXQKCQkgICAgICBmdW4gbG9vcChjLCBhYykgPQoJCQkgaWYgYyA9IH4x
CgkJCSAgICB0aGVuIGFjCgkJCSBlbHNlIGxvb3AoYyAtIDEsIHN1YihhLCByLCBjKSA6OiBhYykK
CQkgICBpbiBsb29wKG5Db2xzIGEgLSAxLCBbXSkKCQkgICBlbmQgOjogYWMpCiAgIGluIGxvb3Ao
blJvd3MgYSAtIDEsIFtdKQogICBlbmQKICAgCmZ1biBsYXlvdXQgZiBhID0gTGlzdC5sYXlvdXQg
KExpc3QubGF5b3V0IGYpICh0b0xpc3QgYSkKCmZ1biB3aG9sZVJlZ2lvbiBhIDogJ2EgcmVnaW9u
ID0KICAge2Jhc2UgPSBhLCByb3cgPSAwLCBjb2wgPSAwLCBucm93cyA9IE5PTkUsIG5jb2xzID0g
Tk9ORX0KCigqIEFsbCBvZiB0aGUgZm9sbG93aW5nIHN0dWZmIGlzIGhlcmUgYmVjYXVzZSBOSiBk
b2Vzbid0IGltcGxlbWVudCBBcnJheTIuY29weS4KICopCmZ1biBjaGVja1NsaWNlTWF4KHN0YXJ0
OiBpbnQsIG51bTogaW50IG9wdGlvbiwgbWF4OiBpbnQpOiBpbnQgPQogICBjYXNlIG51bSBvZgog
ICAgICBOT05FID0+IGlmIHN0YXJ0IDwgMCBvcmVsc2Ugc3RhcnQgPiBtYXgKCQkgdGhlbiByYWlz
ZSBTdWJzY3JpcHQKCSAgICAgIGVsc2UgbWF4CiAgICB8IFNPTUUgbnVtID0+CgkgaWYgc3RhcnQg
PCAwIG9yZWxzZSBudW0gPCAwIG9yZWxzZSBzdGFydCA+IG1heCAtIG51bQoJICAgIHRoZW4gcmFp
c2UgU3Vic2NyaXB0CgkgZWxzZSBzdGFydCArIG51bQoKZnVuIGNoZWNrUmVnaW9ue2Jhc2UsIHJv
dywgY29sLCBucm93cywgbmNvbHN9ID0KICAgbGV0IHZhbCAocm93cywgY29scykgPSBkaW1lbnNp
b25zIGJhc2UKICAgaW4ge3N0b3BSb3cgPSBjaGVja1NsaWNlTWF4KHJvdywgbnJvd3MsIHJvd3Mp
LAogICAgICAgc3RvcENvbCA9IGNoZWNrU2xpY2VNYXgoY29sLCBuY29scywgY29scyl9CiAgIGVu
ZAoKZnVuIGNvcHl7c3JjID0gc3JjIGFzIHtiYXNlLCByb3csIGNvbCwgbnJvd3MsIG5jb2xzfSwK
CSBkc3QsIGRzdF9yb3csIGRzdF9jb2x9ID0KICAgbGV0IHZhbCB7c3RvcFJvdywgc3RvcENvbH0g
PSBjaGVja1JlZ2lvbiBzcmMKICAgICAgdmFsIG5yb3dzID0gc3RvcFJvdyAtIHJvdwogICAgICB2
YWwgbmNvbHMgPSBzdG9wQ29sIC0gY29sCiAgICAgIHZhbCBfID0gY2hlY2tSZWdpb257YmFzZSA9
IGRzdCwgcm93ID0gZHN0X3JvdywgY29sID0gZHN0X2NvbCwKCQkJICBucm93cyA9IFNPTUUgbnJv
d3MsIG5jb2xzID0gU09NRSBuY29sc30KICAgICAgZnVuIGZvcihzdGFydCwgc3RvcCwgZikgPQoJ
IGxldCBmdW4gbG9vcCBpID0gaWYgaSA9IHN0b3AgdGhlbiAoKSBlbHNlIChmIGk7IGxvb3AoaSAr
IDEpKQoJIGluIGxvb3Agc3RhcnQKCSBlbmQKICAgICAgZnVuIGZvckRvd24oc3RhcnQsIHN0b3As
IGYpID0KCSBsZXQgZnVuIGxvb3AgaSA9IGlmIGkgPCBzdGFydCB0aGVuICgpIGVsc2UgKGYgaTsg
bG9vcChpIC0gMSkpCgkgaW4gbG9vcChzdG9wIC0gMSkKCSBlbmQKICAgICAgdmFsIGZvclJvd3Mg
PSBpZiByb3cgPD0gZHN0X3JvdyB0aGVuIGZvckRvd24gZWxzZSBmb3IKICAgICAgdmFsIGZvckNv
bHMgPSBpZiBjb2wgPD0gZHN0X2NvbCB0aGVuIGZvciBlbHNlIGZvckRvd24KICAgaW4gZm9yUm93
cygwLCBucm93cywgZm4gciA9PgoJICAgICAgZm9yQ29scygwLCBuY29scywgZm4gYyA9PgoJCSAg
ICAgIHVwZGF0ZShkc3QsIGRzdF9yb3cgKyByLCBkc3RfY29sICsgYywKCQkJICAgICBzdWIoYmFz
ZSwgcm93ICsgciwgY29sICsgYykpKSkKICAgZW5kCgpmdW4gZm9yYWxsaShhLCBmKSA9CiAgIGxl
dCBleGNlcHRpb24gRmFsc2UKICAgaW4gKGFwcGkgUm93TWFqb3IgKGZuIChyLCBjLCB4KSA9PgoJ
CSAgICAgIGlmIGYociwgYywgc3ViKGEsIHIsIGMpKQoJCQkgdGhlbiAoKQoJCSAgICAgIGVsc2Ug
cmFpc2UgRmFsc2UpCiAgICAgICAod2hvbGVSZWdpb24gYSkKICAgICAgIDsgdHJ1ZSkKICAgICAg
aGFuZGxlIEZhbHNlID0+IGZhbHNlCiAgIGVuZAoKZnVuIGVxdWFscyhhLCBhJywgZikgPQogICBu
Um93cyBhID0gblJvd3MgYScKICAgYW5kYWxzbyBuQ29scyBhID0gbkNvbHMgYScKICAgYW5kYWxz
byBmb3JhbGxpKGEsIGZuIChyLCBjLCB4KSA9PiBmKHgsIHN1YihhJywgciwgYykpKQoKZnVuIGZv
cmFsbChhLCBmKSA9IGZvcmFsbGkoYSwgZiBvICMzKQoKZnVuIHRhYnVsYXRlKHIsIGMsIGYpID0g
UGVydmFzaXZlLkFycmF5Mi50YWJ1bGF0ZSBSb3dNYWpvciAociwgYywgZikKCmZ1biBmb3JlYWNo
aShhLCBmKSA9CiAgIGZvbGRpIFJvd01ham9yIChmbiAociwgYywgYSwgKCkpID0+IGYociwgYywg
YSkpICgpICh3aG9sZVJlZ2lvbiBhKQoKZnVuIGZvcmVhY2goYSwgZikgPSBmb3JlYWNoaShhLCBm
IG8gIzMpCiAgIApmdW4gY29weSBhID0gdGFidWxhdGUoblJvd3MgYSwgbkNvbHMgYSwgZm4gKHIs
IGMpID0+IHN1YihhLCByLCBjKSkKCmZ1biBuZXcociwgYywgeCkgPSB0YWJ1bGF0ZShyLCBjLCBm
biBfID0+IHgpCiAgIAplbmQKCigqIHN0b3Agb2YgbGliL21sdG9uL2Jhc2ljL2FycmF5Mi5zbWwg
KikKKCogc3RhcnQgb2YgbGliL21sdG9uL2Jhc2ljL3Byb3BlcnR5LWxpc3Quc2lnICopCnR5cGUg
aW50ID0gSW50LnQKCnNpZ25hdHVyZSBQUk9QRVJUWV9MSVNUID0gCiAgIHNpZwogICAgICB0eXBl
IHQKCiAgICAgICgqIHJlbW92ZSBhbGwgcHJvcGVydGllcyBmcm9tIHRoZSBsaXN0ICopCiAgICAg
IHZhbCBjbGVhcjogdCAtPiB1bml0CiAgICAgICgqIHBvaW50ZXIgZXF1YWxpdHkgb2YgcHJvcGVy
dHkgbGlzdHMgKikKICAgICAgdmFsIGVxdWFsczogdCAqIHQgLT4gYm9vbAogICAgICB2YWwgbGVu
Z3RoOiB0IC0+IGludAogICAgICAoKiBjcmVhdGUgYW4gZW1wdHkgcHJvcGVydHkgbGlzdCAqKQog
ICAgICB2YWwgbmV3OiB1bml0IC0+IHQKICAgICAgKCogY3JlYXRlIGEgbmV3IHByb3BlcnR5ICop
CiAgICAgIHZhbCBuZXdQcm9wZXJ0eToKCSB1bml0IC0+IHsKICAgICAgICAgICAgICAgICAgKCog
U2VlIGlmIGEgcHJvcGVydHkgaXMgaW4gYSBwcm9wZXJ0eSBsaXN0LgoJCSAgICogTk9ORSBpZiBp
dCBpc24ndC4KCQkgICAqKQoJCSAgcGVlazogdCAtPiAnYSBvcHRpb24sCgkJICAoKiBnZXQgYSBw
cm9wZXJ0eSBmcm9tIGEgcHJvcGVydHkgbGlzdC4KCQkgICAqIFJhaXNlcyBlcnJvciBpZiB0aGUg
cHJvcGVydHkgaXNuJ3QgdGhlcmUuCgkJICAgKikKCQkgIGdldDogdCAtPiAnYSwKCQkgICgqIHNl
dChwLCB2LCBmKQoJCSAgICogQ2hhbmdlIHRoZSB2YWx1ZSBvZiBwcm9wZXJ0eS4KCQkgICAqIENy
ZWF0ZSBhIG5ldyBwcm9wZXJ0eSBhbmQgY2FsbCBmIGlmIGl0IGlzbid0IGFscmVhZHkgdGhlcmUu
CgkJICAgKikKCQkgIHNldDogdCAqICdhICogKHVuaXQgLT4gdW5pdCkgLT4gdW5pdCwKCQkgICgq
IEFkZCB0aGUgdmFsdWUgb2YgdGhlIHByb3BlcnR5IC0tIG11c3Qgbm90IGFscmVhZHkgZXhpc3Qu
ICopCgkJICBhZGQ6IHQgKiAnYSAtPiB1bml0LAoJCSAgKCogUmVtb3ZlIGEgcHJvcGVydHkgZnJv
bSBhIHByb3BlcnR5IGxpc3QuCgkJICAgKiBOb29wIGlmIHRoZSBwcm9wZXJ0eSBpc24ndCB0aGVy
ZS4KCQkgICAqKQoJCSAgcmVtb3ZlOiB0IC0+IHVuaXQKCQkgIH0KICAgICAgdmFsIHN0YXRzOiB1
bml0IC0+IExheW91dC50CiAgIGVuZAooKiBzdG9wIG9mIGxpYi9tbHRvbi9iYXNpYy9wcm9wZXJ0
eS1saXN0LnNpZyAqKQooKiBzdGFydCBvZiBsaWIvbWx0b24vYmFzaWMvcHJvcGVydHkuc2lnICop
CnNpZ25hdHVyZSBQUk9QRVJUWSA9CiAgIHNpZwogICAgICBzdHJ1Y3R1cmUgUGxpc3Q6IFBST1BF
UlRZX0xJU1QKCiAgICAgIHR5cGUgKCdzeW0sICd2YWwpIGluaXQKCiAgICAgIHZhbCBpbml0Q29u
c3Q6ICd2YWwgLT4gKCdzeW0sICd2YWwpIGluaXQKICAgICAgdmFsIGluaXRGdW46ICgnc3ltIC0+
ICd2YWwpIC0+ICgnc3ltLCAndmFsKSBpbml0CiAgICAgIHZhbCBpbml0UmFpc2U6IHN0cmluZyAq
ICgnc3ltIC0+IExheW91dC50KSAtPiAoJ3N5bSwgJ3ZhbCkgaW5pdAogICAgICB2YWwgaW5pdFJl
YzogKCdzeW0gKiAoJ3N5bSAtPiAndmFsKSAtPiAndmFsKSAtPiAoJ3N5bSwgJ3ZhbCkgaW5pdAoJ
IAogICAgICB2YWwgZGVzdEdldDoKCSAoJ3N5bSAtPiBQbGlzdC50KSAqICgnc3ltLCAndmFsKSBp
bml0CgkgLT4gewoJICAgICBkZXN0cm95OiB1bml0IC0+IHVuaXQsCgkgICAgIGdldDogJ3N5bSAt
PiAndmFsCgkgICAgfQoKICAgICAgdmFsIGRlc3RHZXRTZXQ6CgkgKCdzeW0gLT4gUGxpc3QudCkg
KiAoJ3N5bSwgJ3ZhbCkgaW5pdAoJIC0+IHsKCSAgICAgZGVzdHJveTogdW5pdCAtPiB1bml0LAoJ
ICAgICBnZXQ6ICdzeW0gLT4gJ3ZhbCwKCSAgICAgc2V0OiAnc3ltICogJ3ZhbCAtPiB1bml0Cgkg
ICAgfQoKICAgICAgdmFsIGRlc3RHZXRTZXRPbmNlOgoJICgnc3ltIC0+IFBsaXN0LnQpICogKCdz
eW0sICd2YWwpIGluaXQKCSAtPiB7CgkgICAgIGdldDogJ3N5bSAtPiAndmFsLAoJICAgICBzZXQ6
ICdzeW0gKiAndmFsIC0+IHVuaXQsCgkgICAgIGRlc3Ryb3k6IHVuaXQgLT4gdW5pdAoJICAgIH0K
CiAgICAgIHZhbCBnZXQ6CgkgKCdzeW0gLT4gUGxpc3QudCkgKiAoJ3N5bSwgJ3ZhbCkgaW5pdAoJ
IC0+IHsKCSAgICAgZ2V0OiAnc3ltIC0+ICd2YWwKCSAgICAgfQoKICAgICAgdmFsIGdldFNldDoK
CSAoJ3N5bSAtPiBQbGlzdC50KSAqICgnc3ltLCAndmFsKSBpbml0CgkgLT4gewoJICAgICBnZXQ6
ICdzeW0gLT4gJ3ZhbCwKCSAgICAgc2V0OiAnc3ltICogJ3ZhbCAtPiB1bml0CgkgICAgfQoKICAg
ICAgKCogUHJvcGVydHkgY2FuIG9ubHkgYmUgc2V0IG9yIGluaXRpYWxpemVkIG9uY2UuICopCiAg
ICAgIHZhbCBnZXRTZXRPbmNlOgoJICgnc3ltIC0+IFBsaXN0LnQpICogKCdzeW0sICd2YWwpIGlu
aXQKCSAtPiB7CgkgICAgIGdldDogJ3N5bSAtPiAndmFsLAoJICAgICBzZXQ6ICdzeW0gKiAndmFs
IC0+IHVuaXQKCSAgICB9CgogICBlbmQKKCogc3RvcCBvZiBsaWIvbWx0b24vYmFzaWMvcHJvcGVy
dHkuc2lnICopCigqIHN0YXJ0IG9mIGxpYi9tbHRvbi9iYXNpYy9oZXQtY29udGFpbmVyLnNpZyAq
KQpzaWduYXR1cmUgSEVUX0NPTlRBSU5FUiA9CiAgIHNpZwogICAgICB0eXBlIHQKCiAgICAgIHZh
bCBuZXc6IHVuaXQgLT4ge21ha2U6ICdhIC0+IHQsCgkJCXByZWQ6IHQgLT4gYm9vbCwKCQkJcGVl
azogdCAtPiAnYSBvcHRpb259CiAgIGVuZAooKiBzdG9wIG9mIGxpYi9tbHRvbi9iYXNpYy9oZXQt
Y29udGFpbmVyLnNpZyAqKQooKiBzdGFydCBvZiBsaWIvbWx0b24vYmFzaWMvaGV0LWNvbnRhaW5l
ci5mdW4gKikKZnVuY3RvciBFeG5IZXRDb250YWluZXIoKTo+IEhFVF9DT05UQUlORVIgPQogICBz
dHJ1Y3QKICAgICAgdHlwZSB0ID0gZXhuCgogICAgICBmdW4gJ2EgbmV3KCkgPQoJIGxldCBleGNl
cHRpb24gRSBvZiAnYQoJIGluIHttYWtlID0gRSwKCSAgICAgcHJlZCA9IGZuIEUgXyA9PiB0cnVl
IHwgXyA9PiBmYWxzZSwKCSAgICAgcGVlayA9IGZuIEUgeCA9PiBTT01FIHggfCBfID0+IE5PTkV9
CgkgZW5kCiAgIGVuZAoKZnVuY3RvciBSZWZIZXRDb250YWluZXIoKTo+IEhFVF9DT05UQUlORVIg
PQogICBzdHJ1Y3QKICAgICAgdHlwZSB0ID0gdW5pdCByZWYgKiAodW5pdCAtPiB1bml0KQoKICAg
ICAgZnVuICdhIG5ldygpID0KCSBsZXQKCSAgICB2YWwgaWQgPSByZWYoKQoJICAgIHZhbCByOiAn
YSBvcHRpb24gcmVmID0gcmVmIE5PTkUKCSAgICBmdW4gbWFrZSB2ID0gKGlkLCBmbiAoKSA9PiBy
IDo9IFNPTUUgdikKCSAgICBmdW4gcGVlayhpZCcsIGYpID0KCSAgICAgICBpZiBpZCA9IGlkJyB0
aGVuIChmKCk7ICFyIGJlZm9yZSByIDo9IE5PTkUpCgkgICAgICAgZWxzZSBOT05FCgkgICAgZnVu
IHByZWQoaWQnLCBfKSA9IGlkID0gaWQnCgkgaW4ge21ha2UgPSBtYWtlLCBwcmVkID0gcHJlZCwg
cGVlayA9IHBlZWt9CgkgZW5kCiAgIGVuZAooKiBzdG9wIG9mIGxpYi9tbHRvbi9iYXNpYy9oZXQt
Y29udGFpbmVyLmZ1biAqKQooKiBzdGFydCBvZiBsaWIvbWx0b24vYmFzaWMvcmVmLnNpZyAqKQpz
aWduYXR1cmUgUkVGID0KICAgc2lnCiAgICAgIHR5cGUgJ2EgdAoKICAgICAgdmFsICEgOiAnYSB0
IC0+ICdhCiAgICAgIHZhbCA6PSA6ICdhIHQgKiAnYSAtPiB1bml0CgogICAgICB2YWwgZXF1YWxz
OiAnYSB0ICogJ2EgdCAtPiBib29sCiAgICAgIHZhbCBmbHVpZExldDogJ2EgdCAqICdhICogKHVu
aXQgLT4gJ2IpIC0+ICdiCiAgICAgIHZhbCBnZXRBbmRTZXQ6ICgnYSAtPiAnYiByZWYpIC0+ICgn
YSAtPiAnYikgKiAoJ2EgKiAnYiAtPiB1bml0KQogICAgICB2YWwgZ2V0U2V0OiAoJ2EgLT4gTGF5
b3V0LnQpIC0+IHtnZXQ6IHVuaXQgLT4gJ2EsCgkJCQkJc2V0OiAnYSAtPiB1bml0LAoJCQkJCWNs
ZWFyOiB1bml0IC0+IHVuaXQsCgkJCQkJbGF5b3V0OiB1bml0IC0+IExheW91dC50LAoJCQkJCW91
dHB1dDogT3V0LnQgLT4gdW5pdCwKCQkJCQlwcmludDogdW5pdCAtPiB1bml0fQogICAgICB2YWwg
bGF5b3V0OiAoJ2EgLT4gTGF5b3V0LnQpIC0+ICdhIHQgLT4gTGF5b3V0LnQKICAgICAgdmFsIHN3
YXA6ICdhIHQgKiAnYSB0IC0+IHVuaXQKICAgZW5kCigqIHN0b3Agb2YgbGliL21sdG9uL2Jhc2lj
L3JlZi5zaWcgKikKKCogc3RhcnQgb2YgbGliL21sdG9uL2Jhc2ljL3JlZi5zbWwgKikKKCotLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tKikKKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlZiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKikKKCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKikKICAgCnN0cnVjdHVyZSBSZWY6
IFJFRiA9CnN0cnVjdAoKdHlwZSAnYSB0ID0gJ2EgcmVmCgp2YWwgKG9wICEpID0gKG9wICEpCgp2
YWwgKG9wIDo9KSA9IG9wIDo9CgpmdW4gZXF1YWxzKHI6ICdhIHQsIHInKSA9IHIgPSByJwogICAK
ZnVuIHN3YXAociwgcicpID0gbGV0IHZhbCB2ID0gIXIKCQkgIGluIHIgOj0gIXInOyByJyA6PSB2
CgkJICBlbmQKCmZ1biBnZXRBbmRTZXQgc2VsID0gKCEgbyBzZWwsIGZuICh4LCB2KSA9PiBzZWwg
eCA6PSB2KQoKZnVuICgnYSwgJ2IpIGZsdWlkTGV0IChyOiAnYSB0LCB4OiAnYSwgdGg6IHVuaXQg
LT4gJ2IpOiAnYiA9CiAgIGxldCB2YWwgb2xkID0gIXIKICAgaW4gciA6PSB4CiAgICAgIDsgRHlu
YW1pY1dpbmQud2luZCAodGgsIGZuICgpID0+IHIgOj0gb2xkKQogICBlbmQKCmZ1biBnZXRTZXQg
bGF5b3V0ID0gCiAgIGxldCB2YWwgciA9IHJlZiBOT05FCiAgICAgIGZ1biBnZXQoKSA9CgkgY2Fz
ZSAhciBvZgoJICAgIE5PTkUgPT4gRXJyb3IuYnVnICJub3QgYXZhaWxhYmxlIgoJICB8IFNPTUUg
diA9PiB2CiAgICAgIGZ1biBzZXQgdiA9IHIgOj0gU09NRSB2CiAgICAgIGZ1biBjbGVhcigpID0g
ciA6PSBOT05FCiAgICAgIHZhbCBsYXlvdXQgPSBmbiAoKSA9PiBsYXlvdXQoZ2V0KCkpCiAgICAg
IGZ1biBvdXRwdXQgb3V0ID0gTGF5b3V0Lm91dHB1dChsYXlvdXQoKSwgb3V0KQogICAgICBmdW4g
cHJpbnQoKSA9IG91dHB1dCBPdXQuc3RhbmRhcmQKICAgaW4ge2dldCA9IGdldCwKICAgICAgIHNl
dCA9IHNldCwKICAgICAgIGNsZWFyID0gY2xlYXIsCiAgICAgICBsYXlvdXQgPSBsYXlvdXQsCiAg
ICAgICBvdXRwdXQgPSBvdXRwdXQsCiAgICAgICBwcmludCA9IHByaW50fQogICBlbmQKCmZ1biBs
YXlvdXQgbGF5b3V0WCByID0gbGF5b3V0WCghcikKICAgCmVuZAoKKCogc3RvcCBvZiBsaWIvbWx0
b24vYmFzaWMvcmVmLnNtbCAqKQooKiBzdGFydCBvZiBsaWIvbWx0b24vYmFzaWMvcHJvcGVydHkt
bGlzdC5mdW4gKikKZnVuY3RvciBQcm9wZXJ0eUxpc3QgKEg6IEhFVF9DT05UQUlORVIpOj4gUFJP
UEVSVFlfTElTVCA9CnN0cnVjdAoKZGF0YXR5cGUgdCA9IFQgb2YgSC50IGxpc3QgcmVmCgpmdW4g
bmV3ICgpOiB0ID0gVCAocmVmIFtdKQoKZnVuIGxlbmd0aCAoVCByKSA9IExpc3QubGVuZ3RoICgh
cikKCnZhbCBlcXVhbHMgPSBmbiAoVCByLCBUIHInKSA9PiBSZWYuZXF1YWxzIChyLCByJykKCmZ1
biBjbGVhciAoVCBocykgPSBocyA6PSBbXQoKdmFsIG51bVBlZWtzOiBpbnQgcmVmID0gcmVmIDAK
dmFsIG51bUxpbmtzOiBpbnQgcmVmID0gcmVmIDAKdmFsIG1heExlbmd0aDogaW50IHJlZiA9IHJl
ZiAwCiAgIApmdW4gc3RhdHMgKCkgPQogICBsZXQgb3BlbiBMYXlvdXQKICAgaW4gYWxpZ24KICAg
ICAgW3NlcSBbc3RyICJudW1QZWVrcyA9ICIsIEludC5sYXlvdXQgKCFudW1QZWVrcyldLAogICAg
ICAgc2VxIFtzdHIgImF2ZXJhZ2UgcG9zaXRpb24gaW4gcHJvcGVydHkgbGlzdCA9ICIsCgkgICAg
c3RyIGxldCBvcGVuIFJlYWwKCQlpbiBmb3JtYXQgKGZyb21JbnQgKCFudW1MaW5rcykgLyBmcm9t
SW50ICghbnVtUGVla3MpLAoJCQkgICBGb3JtYXQuZml4IChTT01FIDMpKQoJCWVuZF1dCiAgIGVu
ZAoKZnVuIHByaW50IHMgPSBUZXh0SU8ub3V0cHV0IChUZXh0SU8uc3RkRXJyLCBzKQoKZnVuICdh
IG5ld1Byb3BlcnR5ICgpID0KICAgbGV0CiAgICAgIHZhbCB7bWFrZSwgcHJlZCwgcGVlayA9IHBl
ZWtIfSA9IEgubmV3ICgpCiAgICAgIGZ1biBwZWVrIChUIGhzKSA9CgkgbGV0CgkgICAgZnVuIGxv
b3AgKGwsIG4pID0KCSAgICAgICBsZXQKCQkgIGZ1biB1cGRhdGUgKCkgPQoJCSAgICAgbnVtTGlu
a3MgOj0gbiArICFudW1MaW5rcwoJICAgICAgICgqIAkJICAgICAgaWYgbiA+ICFtYXhMZW5ndGgK
CQkqIAkJCSB0aGVuIChtYXhMZW5ndGggOj0gbjsKCQkqIAkJCSAgICAgICBwcmludCAoY29uY2F0
IFsicGVlayBmb2xsb3dlZCAiLAoJCSogCQkJCQkgICAgSW50LnRvU3RyaW5nIG4sCgkJKiAJCQkJ
CSAgICAiIGxpbmtzIFxuIl0pKQoJCSogCQkgICAgICBlbHNlICgpKQoJCSAgICAgKikKCSAgICAg
ICBpbiBjYXNlIGwgb2YKCQkgIFtdID0+ICh1cGRhdGUgKCk7IE5PTkUpCgkJfCBlIDo6IGwgPT4K
CQkgICAgIGNhc2UgcGVla0ggZSBvZgoJCQlyIGFzIFNPTUUgXyA9PiAodXBkYXRlICgpOyByKQoJ
CSAgICAgIHwgTk9ORSA9PiBsb29wIChsLCBuICsgMSkKCSAgICAgICBlbmQKCSBpbiBudW1QZWVr
cyA6PSAxICsgIW51bVBlZWtzCgkgICAgOyBsb29wICghaHMsIDApCgkgZW5kCgogICAgICBmdW4g
Z2V0IChwbGlzdDogdCkgPQoJIGNhc2UgcGVlayBwbGlzdCBvZgoJICAgIFNPTUUgeCA9PiB4Cgkg
IHwgTk9ORSA9PiBFcnJvci5idWcgImdldCIKCiAgICAgIGZ1biBzZXQgKFQgaHMsIHY6ICdhLCBm
OiB1bml0IC0+IHVuaXQpOiB1bml0ID0KCSBsZXQgdmFsIGggPSBtYWtlIHYKCSAgICB2YWwgcmVj
IGxvb3AgPQoJICAgICAgIGZuIFtdID0+IChmICgpOyBbaF0pCgkJfCBoJyA6OiBocyA9PiBpZiBw
cmVkIGgnCgkJCQkgdGhlbiBoIDo6IGhzCgkJCSAgICAgIGVsc2UgaCcgOjogbG9vcCBocwoJIGlu
IGhzIDo9IGxvb3AgKCFocykKCSBlbmQKCiAgICAgIGZ1biBhZGQgKFQgaHMsIHY6ICdhKTogdW5p
dCA9IGhzIDo9IG1ha2UgdiA6OiAhaHMKCiAgICAgIGZ1biByZW1vdmUgKFQgaHMpID0gaHMgOj0g
TGlzdC5yZW1vdmUgKCFocywgcHJlZCkKICAgaW4KICAgICAge2FkZCA9IGFkZCwgcGVlayA9IHBl
ZWssIGdldCA9IGdldCwgc2V0ID0gc2V0LCByZW1vdmUgPSByZW1vdmV9CiAgIGVuZAoKZW5kCigq
IHN0b3Agb2YgbGliL21sdG9uL2Jhc2ljL3Byb3BlcnR5LWxpc3QuZnVuICopCigqIHN0YXJ0IG9m
IGxpYi9tbHRvbi9iYXNpYy9wcm9wZXJ0eS5mdW4gKikKZnVuY3RvciBQcm9wZXJ0eSAoUGxpc3Q6
IFBST1BFUlRZX0xJU1QpOj4gUFJPUEVSVFkgd2hlcmUgdHlwZSBQbGlzdC50ID0gUGxpc3QudCA9
CnN0cnVjdAoKc3RydWN0dXJlIFBsaXN0ID0gUGxpc3QKICAgCmRhdGF0eXBlICgnc3ltLCAndmFs
KSBpbml0ID0KICAgQ29uc3Qgb2YgJ3ZhbAogfCBGdW4gb2YgJ3N5bSAqICgnc3ltIC0+ICd2YWwp
IC0+ICd2YWwKCnZhbCBpbml0UmVjID0gRnVuCgpmdW4gaW5pdENvbnN0IGMgPSBDb25zdCBjCgpm
dW4gaW5pdEZ1biBmID0gaW5pdFJlYyAoZm4gKHMsIF8pID0+IGYgcykKCmZ1biBpbml0UmFpc2Ug
KG5hbWUsIGxheW91dCkgPQogICBpbml0RnVuCiAgIChmbiBzID0+CiAgICBFcnJvci5idWcKICAg
IChsZXQgb3BlbiBMYXlvdXQKICAgICBpbiB0b1N0cmluZyAoc2VxIFtsYXlvdXQgcywgc3RyICIg
aGFzIG5vICIsIHN0ciBuYW1lLCBzdHIgIiBwcm9wZXJ0eSJdKQogICAgIGVuZCkpCiAgIApmdW4g
cHJpbnQgcyA9IFRleHRJTy5vdXRwdXQgKFRleHRJTy5zdGRFcnIsIHMpCgpmdW4gKCdzeW0sICd2
YWwpIG5vbmRlc3RydWN0YWJsZSAocGxpc3Q6ICdzeW0gLT4gUGxpc3QudCwKCQkJCSAgaW5pdDog
KCdzeW0sICd2YWwpIGluaXQpID0KICAgbGV0CiAgICAgIHZhbCB7YWRkLCBwZWVrLCByZW1vdmUs
IHNldCwgLi4ufSA9IFBsaXN0Lm5ld1Byb3BlcnR5ICgpCiAgICAgIGZ1biBnZXQgKHM6ICdzeW0p
ID0KCSBsZXQgdmFsIHAgPSBwbGlzdCBzCgkgaW4gY2FzZSBwZWVrIHAgb2YKCSAgICBOT05FID0+
IChjYXNlIGluaXQgb2YKCQkJQ29uc3QgYyA9PiBjCgkJICAgICAgfCBGdW4gZiA9PgoJCQkgICBs
ZXQgdmFsIHYgPSBmIChzLCBnZXQpCgkJCSAgIGluIGFkZCAocCwgdik7IHYKCQkJICAgZW5kKQoJ
ICB8IFNPTUUgdiA9PiB2CgkgZW5kCiAgICAgIGZ1biBzZXQgKHM6ICdzeW0sIG5vbmU6IHVuaXQg
LT4gJ3ZhbCwgc29tZTogJ3ZhbCAtPiB1bml0KTogdW5pdCA9CgkgbGV0IHZhbCBwID0gcGxpc3Qg
cwoJIGluIGNhc2UgcGVlayBwIG9mCgkgICAgTk9ORSA9PiBhZGQgKHAsIG5vbmUgKCkpCgkgIHwg
U09NRSB2ID0+IHNvbWUgdgoJIGVuZAogICBpbiB7Z2V0ID0gZ2V0LCByZW1vdmUgPSByZW1vdmUs
IHNldCA9IHNldH0KICAgZW5kCgpmdW4gKCdzeW0sICd2YWwpIGRlc3RydWN0YWJsZSAocGxpc3Qs
IGluaXQpID0KICAgbGV0CiAgICAgIHZhbCBwbGlzdHMgPSByZWYgW10KICAgICAgZnVuIGFkZCBz
ID0gTGlzdC5wdXNoIChwbGlzdHMsIHBsaXN0IHMpCiAgICAgIHZhbCB7Z2V0LCByZW1vdmUsIHNl
dCwgLi4ufSA9Cgkgbm9uZGVzdHJ1Y3RhYmxlIChwbGlzdCwKCQkJICBjYXNlIGluaXQgb2YKCQkJ
ICAgICBDb25zdCBfID0+IGluaXQKCQkJICAgfCBGdW4gZiA9PiBGdW4gKGZuIHogYXMgKHMsIF8p
ID0+IChhZGQgczsgZiB6KSkpCiAgICAgIHZhbCBzZXQ6ICdzeW0gKiAodW5pdCAtPiAndmFsKSAq
ICgndmFsIC0+IHVuaXQpIC0+IHVuaXQgPQoJIGZuIChzLCBub25lLCBzb21lKSA9PiBzZXQgKHMs
IGZuICgpID0+IChhZGQgczsgbm9uZSAoKSksIHNvbWUpCiAgICAgIGZ1biBkZXN0cm95ICgpID0K
CSAoTGlzdC5mb3JlYWNoICghcGxpc3RzLCByZW1vdmUpCgkgIDsgcGxpc3RzIDo9IFtdKQogICBp
biB7ZGVzdHJveSA9IGRlc3Ryb3ksIGdldCA9IGdldCwgc2V0ID0gc2V0fQogICBlbmQKCmZ1biBz
ZXRUb1NldE9uY2Ugc2V0IChzLCB2KSA9CiAgIHNldCAocywgZm4gXyA9PiB2LCBmbiBfID0+IEVy
cm9yLmJ1ZyAic2V0T25jZTogc2V0IHVzZWQgdHdpY2UiKQoKZnVuIGRlc3RHZXRTZXRPbmNlIHog
PQogICBsZXQgdmFsIHtkZXN0cm95LCBnZXQsIHNldH0gPSBkZXN0cnVjdGFibGUgegogICBpbiB7
ZGVzdHJveSA9IGRlc3Ryb3ksIGdldCA9IGdldCwgc2V0ID0gc2V0VG9TZXRPbmNlIHNldH0KICAg
ZW5kCgkJCSAgIApmdW4gZGVzdEdldCB6ID0KICAgbGV0IHZhbCB7ZGVzdHJveSwgZ2V0LCAuLi59
ID0gZGVzdEdldFNldE9uY2UgegogICBpbiB7ZGVzdHJveSA9IGRlc3Ryb3ksIGdldCA9IGdldH0K
ICAgZW5kCgpmdW4gZ2V0U2V0T25jZSB6ID0KICAgbGV0IHZhbCB7Z2V0LCBzZXQsIC4uLn0gPSBu
b25kZXN0cnVjdGFibGUgegogICBpbiB7Z2V0ID0gZ2V0LCBzZXQgPSBzZXRUb1NldE9uY2Ugc2V0
fQogICBlbmQKCmZ1biBnZXQgeiA9CiAgIGxldCB2YWwge2dldCwgLi4ufSA9IGdldFNldE9uY2Ug
egogICBpbiB7Z2V0ID0gZ2V0fQogICBlbmQKCmZ1biBzZXRJbml0IChwbGlzdCwgaW5pdCkgPQog
ICAocGxpc3QsCiAgICBjYXNlIGluaXQgb2YKICAgICAgIENvbnN0IGMgPT4gRnVuIChmbiBfID0+
IHJlZiBjKQogICAgIHwgRnVuIGYgPT4gRnVuIChmbiAocywgZ2V0KSA9PiByZWYgKGYgKHMsICEg
byBnZXQpKSkpCgpmdW4gZGVzdEdldFNldCB6ID0KICAgbGV0CiAgICAgIHZhbCB7ZGVzdHJveSwg
Z2V0LCBzZXR9ID0gZGVzdHJ1Y3RhYmxlIChzZXRJbml0IHopCiAgICAgIHZhbCBzZXQgPSBmbiAo
cywgdikgPT4gc2V0IChzLCBmbiAoKSA9PiByZWYgdiwgZm4gciA9PiByIDo9IHYpCiAgIGluCiAg
ICAgIHtkZXN0cm95ID0gZGVzdHJveSwgZ2V0ID0gISBvIGdldCwgc2V0ID0gc2V0fQogICBlbmQK
CmZ1biBnZXRTZXQgeiA9CiAgIGxldCB2YWwge2dldCwgc2V0LCAuLi59ID0gbm9uZGVzdHJ1Y3Rh
YmxlIChzZXRJbml0IHopCiAgICAgIHZhbCBzZXQgPSBmbiAocywgdikgPT4gc2V0IChzLCBmbiAo
KSA9PiByZWYgdiwgZm4gciA9PiByIDo9IHYpCiAgIGluIHtnZXQgPSAhIG8gZ2V0LCBzZXQgPSBz
ZXR9CiAgIGVuZAoKZW5kCgpzdHJ1Y3R1cmUgSGV0Q29udGFpbmVyID0gUmVmSGV0Q29udGFpbmVy
ICgpCnN0cnVjdHVyZSBIZXRDb250YWluZXIgPSBFeG5IZXRDb250YWluZXIgKCkKc3RydWN0dXJl
IFByb3BlcnR5TGlzdCA9IFByb3BlcnR5TGlzdCAoRXhuSGV0Q29udGFpbmVyICgpKQpzdHJ1Y3R1
cmUgUHJvcGVydHkgPSBQcm9wZXJ0eSAoUHJvcGVydHlMaXN0KQooKiBzdG9wIG9mIGxpYi9tbHRv
bi9iYXNpYy9wcm9wZXJ0eS5mdW4gKikKKCogc3RhcnQgb2YgbGliL21sdG9uL2Jhc2ljL2ZpbGUu
c2lnICopCnR5cGUgaW50ID0gUGVydmFzaXZlLkludC5pbnQKICAgCnNpZ25hdHVyZSBGSUxFID0K
ICAgc2lnCiAgICAgIHR5cGUgdCA9IHN0cmluZwogICAgICB0eXBlIGRpciA9IHN0cmluZwoKICAg
ICAgdmFsIGFwcGVuZFRvOiB0ICogc3RyaW5nIC0+IHVuaXQKICAgICAgdmFsIGJhc2U6IHQgLT4g
c3RyaW5nCiAgICAgIHZhbCBjYW5SZWFkOiB0IC0+IGJvb2wKICAgICAgdmFsIGNhbldyaXRlOiB0
IC0+IGJvb2wKICAgICAgdmFsIGNvbmNhdDogdCBsaXN0ICogdCAtPiB1bml0CiAgICAgIHZhbCBj
b250ZW50czogdCAtPiBzdHJpbmcKICAgICAgdmFsIGNvcHk6IHQgKiB0IC0+IHVuaXQKICAgICAg
dmFsIGNyZWF0ZTogdCAtPiB1bml0ICgqIG1ha2UgYW4gZW1wdHkgZmlsZSAqKQogICAgICB2YWwg
ZGlyT2Y6IHQgLT4gZGlyCiAgICAgIHZhbCBkb2VzRXhpc3Q6IHQgLT4gYm9vbAogICAgICB2YWwg
ZW5zdXJlUmVhZDogdCAtPiB1bml0CiAgICAgIHZhbCBlbnN1cmVXcml0ZTogdCAtPiB1bml0CiAg
ICAgIHZhbCBleHRlbnNpb246IHQgLT4gc3RyaW5nIG9wdGlvbgogICAgICAoKiBFYWNoIGxpbmUg
aW5jbHVkZXMgdGhlIG5ld2xpbmUuICopCiAgICAgIHZhbCBmb2xkTGluZXM6IHQgKiAnYSAqIChz
dHJpbmcgKiAnYSAtPiAnYSkgLT4gJ2EKICAgICAgdmFsIGlzTmV3ZXI6IHQgKiB0IC0+IGJvb2wK
ICAgICAgdmFsIGxheW91dDogdCAtPiBMYXlvdXQudAogICAgICAoKiBFYWNoIGxpbmUgaW5jbHVk
ZXMgdGhlIG5ld2xpbmUuICopCiAgICAgIHZhbCBsaW5lczogdCAtPiBzdHJpbmcgbGlzdAogICAg
ICB2YWwgbW9kVGltZTogdCAtPiBUaW1lLnQKICAgICAgdmFsIG1vdmU6IHtmcm9tOiB0LCB0bzog
dH0gLT4gdW5pdAogICAgICB2YWwgb3V0cHV0OiB0ICogT3V0LnQgLT4gdW5pdAogICAgICB2YWwg
b3V0cHV0Q29udGVudHM6IHQgKiBPdXQudCAtPiB1bml0CiAgICAgIHZhbCByZW1vdmU6IHQgLT4g
dW5pdAogICAgICB2YWwgc2FtZUNvbnRlbnRzOiB0ICogdCAtPiBib29sCiAgICAgIHZhbCBzaXpl
OiB0IC0+IGludAogICAgICB2YWwgc3RyaW5naWZ5OiAodCAtPiAnYSkgLT4gKHN0cmluZyAtPiAn
YSkKICAgICAgdmFsIHN1ZmZpeDogdCAtPiBzdHJpbmcgb3B0aW9uCiAgICAgIHZhbCB0ZW1wOiB1
bml0IC0+IHQKICAgICAgdmFsIHRvU3RyaW5nOiB0IC0+IHN0cmluZwogICAgICB2YWwgd2l0aEFw
cGVuZDogdCAqIChPdXQudCAtPiAnYSkgLT4gJ2EKICAgICAgdmFsIHdpdGhJbjogdCAqIChJbi50
IC0+ICdhKSAtPiAnYQogICAgICB2YWwgd2l0aE91dDogdCAqIChPdXQudCAtPiAnYSkgLT4gJ2EK
ICAgICAgdmFsIHdpdGhPdXRJbjogKE91dC50IC0+ICdhKSAqIChJbi50IC0+ICdiKSAtPiAnYSAq
ICdiCiAgICAgIHZhbCB3aXRoU3RyaW5nOiBzdHJpbmcgKiAodCAtPiAnYSkgLT4gJ2EKICAgICAg
dmFsIHdpdGhTdHJpbmdJbjogc3RyaW5nICogKEluLnQgLT4gJ2EpIC0+ICdhCiAgICAgIHZhbCB3
aXRoVGVtcDogKHQgLT4gJ2EpIC0+ICdhCiAgICAgIHZhbCB3aXRoVGVtcFN1ZmZpeDogc3RyaW5n
ICogKHQgLT4gJ2EpIC0+ICdhCiAgIGVuZAooKiBzdG9wIG9mIGxpYi9tbHRvbi9iYXNpYy9maWxl
LnNpZyAqKQooKiBzdGFydCBvZiBsaWIvbWx0b24vYmFzaWMvZmlsZS5zbWwgKikKc3RydWN0dXJl
IEZpbGU6PiBGSUxFID0Kc3RydWN0CgpzdHJ1Y3R1cmUgRlMgPSBPUy5GaWxlU3lzCiAgIAp0eXBl
IHQgPSBzdHJpbmcKdHlwZSBkaXIgPSBzdHJpbmcKCmZ1biB0b1N0cmluZyBmID0gZgp2YWwgbGF5
b3V0ID0gTGF5b3V0LnN0ciBvIHRvU3RyaW5nCgp2YWwgc2l6ZSA9IEZTLmZpbGVTaXplCnZhbCBt
b2RUaW1lID0gRlMubW9kVGltZQp2YWwgdGVtcCA9IEZTLnRtcE5hbWUKCmZ1biBpc05ld2VyKGYx
LCBmMikgPSBUaW1lLj49KG1vZFRpbWUgZjEsIG1vZFRpbWUgZjIpCgpmdW4gd2l0aGggKGZpbGUs
IHAsIG9wZW5uLCBjbG9zZSkgPQogICBsZXQKICAgICAgdmFsIHN0cmVhbSA9CgkgKG9wZW5uIGZp
bGUpIGhhbmRsZSBJTy5JbyBfID0+IEVycm9yLmJ1ZyAoY29uY2F0IFsiY2Fubm90IG9wZW4gIiwg
ZmlsZV0pCiAgIGluIER5bmFtaWNXaW5kLndpbmQgKGZuICgpID0+IHAgc3RyZWFtLAoJCQlmbiAo
KSA9PiBjbG9zZSBzdHJlYW0pCiAgIGVuZCAKCmZ1biB3aXRoT3V0IChmLCBwKSA9IHdpdGhoIChm
LCBwLCBPdXQub3Blbk91dCwgT3V0LmNsb3NlKQpmdW4gd2l0aEFwcGVuZCAoZiwgcCkgPSB3aXRo
aCAoZiwgcCwgT3V0Lm9wZW5BcHBlbmQsIE91dC5jbG9zZSkKZnVuIHdpdGhJbiAoZiwgcCkgPSB3
aXRoaCAoZiwgcCwgSW4ub3BlbkluLCBJbi5jbG9zZSkKCmZ1biBhcHBlbmRUbyAoZiwgcykgPSB3
aXRoQXBwZW5kIChmLCBmbiBvdXQgPT4gT3V0Lm91dHB1dCAob3V0LCBzKSkKCmZ1biBmb2xkTGlu
ZXMgKGYsIGFjLCB0cmFucykgPQogICB3aXRoSW4gKGYsIGZuIGlucyA9PiBJbi5mb2xkTGluZXMg
KGlucywgYWMsIHRyYW5zKSkKCmxvY2FsCiAgIGZ1biBjYW4gYSBmID0gRlMuYWNjZXNzIChmLCBh
KQppbgogICB2YWwgY2FuV3JpdGUgPSBjYW4gW0ZTLkFfV1JJVEVdCiAgIHZhbCBjYW5SZWFkID0g
Y2FuIFtGUy5BX1JFQURdCiAgIHZhbCBkb2VzRXhpc3QgPSBjYW4gW10KZW5kCgpmdW4gcmVtb3Zl
IGYgPQogICBpZiBkb2VzRXhpc3QgZgogICAgICB0aGVuIEZTLnJlbW92ZSBmCiAgIGVsc2UgKCkK
CmxvY2FsCiAgIGZ1biBlbnN1cmUgKHByZWQsIG1zZykgZiA9CiAgICAgIGlmIHByZWQgZiB0aGVu
ICgpCiAgICAgIGVsc2UgRXJyb3IuYnVnIChjb25jYXQgWyJjYW4gbm90ICIsIG1zZywgIiAiLCBm
XSkKaW4KICAgdmFsIGVuc3VyZVdyaXRlID0gZW5zdXJlIChjYW5Xcml0ZSwgIndyaXRlIikKICAg
dmFsIGVuc3VyZVJlYWQgPSBlbnN1cmUgKGNhblJlYWQsICJyZWFkIikKZW5kCgpmdW4gc2FtZUNv
bnRlbnRzIChmMSwgZjIpID0KICAgc2l6ZSBmMSA9IHNpemUgZjIKICAgYW5kYWxzbyB3aXRoSW4g
KGYxLCBmbiBpbjEgPT4KCQkgICB3aXRoSW4gKGYyLCBmbiBpbjIgPT4KCQkJICAgSW4uc2FtZUNv
bnRlbnRzIChpbjEsIGluMikpKQoKZnVuIG91dHB1dCAoZmlsZSwgb3V0KSA9IE91dC5vdXRwdXQg
KG91dCwgZmlsZSkKICAgCmZ1biBvdXRwdXRDb250ZW50cyAoZmlsZSwgb3V0KSA9CiAgIHdpdGhJ
biAoZmlsZSwgZm4gaW5zID0+IEluLm91dHB1dEFsbCAoaW5zLCBvdXQpKQoKZnVuIGxpbmVzIGYg
PSB3aXRoSW4gKGYsIEluLmxpbmVzKQogICAKZnVuIGNvbnRlbnRzIGZpbGUgPSB3aXRoSW4gKGZp
bGUsIEluLmlucHV0QWxsKQoKZnVuIG1vdmV7ZnJvbSwgdG99ID0gRlMucmVuYW1le29sZCA9IGZy
b20sIG5ldyA9IHRvfQogICAKZnVuIGNvcHkoc291cmNlLCBkZXN0KSA9CiAgIHdpdGhPdXQoZGVz
dCwgZm4gb3V0ID0+IG91dHB1dENvbnRlbnRzKHNvdXJjZSwgb3V0KSkKICAgCmZ1biBjb25jYXQo
c291cmNlcywgZGVzdCkgPQogICB3aXRoT3V0KGRlc3QsIGZuIG91dCA9PgoJICAgTGlzdC5mb3Jl
YWNoKHNvdXJjZXMsIGZuIGYgPT4gb3V0cHV0Q29udGVudHMoZiwgb3V0KSkpCgpsb2NhbAogICBm
dW4gcmVtb3ZlQWZ0ZXIoZiwgcCkgPQogICAgICBEeW5hbWljV2luZC53aW5kKGZuICgpID0+IHAg
ZiwgZm4gKCkgPT4gcmVtb3ZlIGYpCmluCiAgIGZ1biB3aXRoVGVtcCBwID0gcmVtb3ZlQWZ0ZXIo
dGVtcCgpLCBwKQogICBmdW4gd2l0aFRlbXBTdWZmaXgocywgcCkgPSByZW1vdmVBZnRlcihTdHJp
bmcuY29uY2F0W3RlbXAoKSwgIi4iLCBzXSwgcCkKZW5kCgpmdW4gc3RyaW5naWZ5IHByb2Nlc3NG
aWxlIHMgPQogICB3aXRoVGVtcChmbiBmID0+CgkgICAgKHdpdGhPdXQoZiwgZm4gb3V0ID0+IE91
dC5vdXRwdXQob3V0LHMpKQoJICAgICA7IHByb2Nlc3NGaWxlIGYpKQoKZnVuIHdpdGhTdHJpbmco
cywgZikgPQogICB3aXRoVGVtcChmbiB0bXAgPT4KCSAgICAod2l0aE91dCh0bXAsIGZuIG91dCA9
PiBPdXQub3V0cHV0KG91dCxzKSkKCSAgICAgOyBmIHRtcCkpCiAgIApmdW4gd2l0aE91dEluKGZv
dXQsIGZpbikgPQogICB3aXRoVGVtcChmbiB0bXAgPT4KCSAgICAod2l0aE91dCh0bXAsIGZvdXQp
LAoJICAgICB3aXRoSW4odG1wLCBmaW4pKSkKCmZ1biB3aXRoU3RyaW5nSW4ocywgZmluKSA9CiAg
ICMyKHdpdGhPdXRJbihmbiBvdXQgPT4gT3V0Lm91dHB1dChvdXQsIHMpLAoJCWZpbikpCgpmdW4g
Y3JlYXRlIGYgPSB3aXRoT3V0KGYsIGZuIF8gPT4gKCkpCgp2YWwgc3VmZml4ID0gI2V4dCBvIE9T
LlBhdGguc3BsaXRCYXNlRXh0Cgpsb2NhbCBvcGVuIE9TLlBhdGgKaW4gCiAgIHZhbCBiYXNlID0g
YmFzZQogICB2YWwgZGlyT2YgPSBkaXIKICAgdmFsIGV4dGVuc2lvbiA9IGV4dAplbmQKCmVuZAoo
KiBzdG9wIG9mIGxpYi9tbHRvbi9iYXNpYy9maWxlLnNtbCAqKQooKiBzdGFydCBvZiBsaWIvbWx0
b24vYmFzaWMvY291bnRlci5zaWcgKikKdHlwZSBpbnQgPSBJbnQudAoKc2lnbmF0dXJlIENPVU5U
RVIgPQogICBzaWcKICAgICAgdHlwZSB0CgkgCiAgICAgIHZhbCBuZXc6IGludCAtPiB0CiAgICAg
IHZhbCBuZXh0OiB0IC0+IGludAogICAgICB2YWwgdGljazogdCAtPiB1bml0CiAgICAgIHZhbCBy
ZXNldDogdCAqIGludCAtPiB1bml0CiAgICAgIHZhbCB2YWx1ZTogdCAtPiBpbnQKICAgICAgdmFs
IGVxdWFsczogdCAqIHQgLT4gYm9vbAogICBlbmQKKCogc3RvcCBvZiBsaWIvbWx0b24vYmFzaWMv
Y291bnRlci5zaWcgKikKKCogc3RhcnQgb2YgbGliL21sdG9uL2Jhc2ljL2NvdW50ZXIuc21sICop
CnN0cnVjdHVyZSBDb3VudGVyOiBDT1VOVEVSID0Kc3RydWN0Cgp0eXBlIGludCA9IEludC50CiAg
IApkYXRhdHlwZSB0ID0gVCBvZiBpbnQgcmVmCgpmdW4gbmV3IG4gPSBUKHJlZiBuKQoKZnVuIHJl
c2V0KFQgciwgbikgPSByIDo9IG4KCmZ1biB0aWNrKFQgcikgPSBJbnQuaW5jIHIKCmZ1biB2YWx1
ZShUIHIpID0gIXIKCmZ1biBuZXh0IGMgPSB2YWx1ZSBjIGJlZm9yZSB0aWNrIGMKCnZhbCBlcXVh
bHMgPSBmbiAoVCByLCBUIHInKSA9PiByID0gcicKICAgCmVuZAooKiBzdG9wIG9mIGxpYi9tbHRv
bi9iYXNpYy9jb3VudGVyLnNtbCAqKQooKiBzdGFydCBvZiBsaWIvbWx0b24vYmFzaWMvZGlyZWN0
ZWQtZ3JhcGguc2lnICopCnR5cGUgaW50ID0gSW50LnQKCnNpZ25hdHVyZSBESVJFQ1RFRF9HUkFQ
SCA9IAogICBzaWcKICAgICAgc3RydWN0dXJlIE5vZGU6IAoJIHNpZwoJICAgIHR5cGUgZWRnZQoJ
ICAgIHR5cGUgdAoKCSAgICB2YWwgZXF1YWxzOiB0ICogdCAtPiBib29sCgkgICAgdmFsIGhhc0Vk
Z2U6IHtmcm9tOiB0LCB0bzogdH0gLT4gYm9vbAoJICAgIHZhbCBsYXlvdXQ6IHQgLT4gTGF5b3V0
LnQKCSAgICB2YWwgcGxpc3Q6IHQgLT4gUHJvcGVydHlMaXN0LnQKCSAgICB2YWwgc3VjY2Vzc29y
czogdCAtPiBlZGdlIGxpc3QKCSBlbmQKICAgICAgc3RydWN0dXJlIEVkZ2U6Cgkgc2lnCgkgICAg
dHlwZSB0CgoJICAgIHZhbCBlcXVhbHM6IHQgKiB0IC0+IGJvb2wKCSAgICB2YWwgcGxpc3Q6IHQg
LT4gUHJvcGVydHlMaXN0LnQKCSAgICB2YWwgdG86IHQgLT4gTm9kZS50CgkgZW5kCiAgICAgIHNo
YXJpbmcgdHlwZSBOb2RlLmVkZ2UgPSBFZGdlLnQKCiAgICAgICgqIGRlcHRoIGZpcnN0IHNlYXJj
aCAqKQogICAgICBzdHJ1Y3R1cmUgRGZzUGFyYW06Cgkgc2lnCgkgICAgdHlwZSB0ID0ge3N0YXJ0
Tm9kZTogTm9kZS50IC0+IHVuaXQsCgkJICAgICAgZmluaXNoTm9kZTogTm9kZS50IC0+IHVuaXQs
CgkJICAgICAgaGFuZGxlVHJlZUVkZ2U6IEVkZ2UudCAtPiB1bml0LAoJCSAgICAgIGhhbmRsZU5v
blRyZWVFZGdlOiBFZGdlLnQgLT4gdW5pdCwKCQkgICAgICBzdGFydFRyZWU6IE5vZGUudCAtPiB1
bml0LAoJCSAgICAgIGZpbmlzaFRyZWU6IE5vZGUudCAtPiB1bml0LAoJCSAgICAgIGZpbmlzaERm
czogdW5pdCAtPiB1bml0fQoJICAgIHZhbCBmaW5pc2hOb2RlOiAoTm9kZS50IC0+IHVuaXQpIC0+
IHQKCSAgICB2YWwgaWdub3JlOiAnYSAtPiB1bml0CgkgICAgdmFsIGNvbWJpbmU6IHQgKiB0IC0+
IHQKCSBlbmQKCiAgICAgICgqIHRoZSBtYWluIGdyYXBoIHR5cGUgKikKICAgICAgdHlwZSB0Cgog
ICAgICB2YWwgYWRkRWRnZTogdCAqIHtmcm9tOiBOb2RlLnQsIHRvOiBOb2RlLnR9IC0+IEVkZ2Uu
dAogICAgICB2YWwgZGZzOiB0ICogRGZzUGFyYW0udCAtPiB1bml0CiAgICAgIHZhbCBkZnNOb2Rl
czogdCAqIE5vZGUudCBsaXN0ICogRGZzUGFyYW0udCAtPiB1bml0CiAgICAgIHZhbCBkaXNjb3Zl
ckZpbmlzaFRpbWVzOiB0IC0+IHtkaXNjb3ZlcjogTm9kZS50IC0+IGludCwKCQkJCSAgICAgZmlu
aXNoOiBOb2RlLnQgLT4gaW50LAoJCQkJICAgICBkZXN0cm95OiB1bml0IC0+IHVuaXQsCgkJCQkg
ICAgIHBhcmFtOiBEZnNQYXJhbS50fQogICAgICB2YWwgZGlzcGxheToKCSB7Z3JhcGg6IHQsCgkg
IGxheW91dE5vZGU6IE5vZGUudCAtPiBMYXlvdXQudCwKCSAgZGlzcGxheTogTGF5b3V0LnQgLT4g
dW5pdH0gLT4gdW5pdAogICAgICAoKiBkb21pbmF0b3JzIHtncmFwaCwgcm9vdH0KICAgICAgICog
UHJlOiBBbGwgbm9kZXMgaW4gZ3JhcGggbXVzdCBiZSByZWFjaGFibGUgZnJvbSByb290LgogICAg
ICAgKiAgICAgIFRoaXMgY29uZGl0aW9uIGlzIGNoZWNrZWQuCiAgICAgICAqKQogICAgICB2YWwg
ZG9taW5hdG9yczoKCSB7Z3JhcGg6IHQsCgkgIHJvb3Q6IE5vZGUudH0KCSAtPiB7aWRvbTogTm9k
ZS50IC0+IE5vZGUudH0KICAgICAgdmFsIGZvcmVhY2hEZXNjZW5kZW50OiB0ICogTm9kZS50ICog
KE5vZGUudCAtPiB1bml0KSAtPiB1bml0CiAgICAgIHZhbCBmb3JlYWNoRWRnZTogdCAqIChOb2Rl
LnQgKiBFZGdlLnQgLT4gdW5pdCkgLT4gdW5pdAogICAgICB2YWwgZm9yZWFjaE5vZGU6IHQgKiAo
Tm9kZS50IC0+IHVuaXQpIC0+IHVuaXQKKCogICAgICBleGNlcHRpb24gSW5wdXQgKikKKCogICAg
IHZhbCBpbnB1dDogSW4udCAqIChJbi50IC0+ICdhKSogKEluLnQgLT4gJ2IpIC0+IHQgKiAnYSAq
IChFZGdlLnQgLT4gJ2IpICopCigqICAgICAgdmFsIGlzQ3ljbGljOiB0IC0+IGJvb2wqKQooKiAg
ICAgIHZhbCBsYXlvdXREYVZpbmNpOiB0ICogKE5vZGUudCAtPiBMYXlvdXQudCkgLT4gTGF5b3V0
LnQgKikKICAgICAgdmFsIG5ldzogdW5pdCAtPiB0CiAgICAgIHZhbCBuZXdOb2RlOiB0IC0+IE5v
ZGUudAogICAgICB2YWwgbm9kZXM6IHQgLT4gTm9kZS50IGxpc3QKKCogICAgICB2YWwgcmFuZG9t
OiB7bnVtTm9kZXM6IGludCwgbnVtRWRnZXM6IGludH0gLT4gdCopCigqICAgICAgdmFsIHJlbW92
ZUJhY2tFZGdlczogdCAtPiB1bml0ICopCiAgICAgICgqIHJlbW92ZUVkZ2UgZmFpbHMgaWYgZWRn
ZSBpc24ndCB0aGVyZS4gKikKKCogICAgICB2YWwgcmVtb3ZlRWRnZTogdCAqIEVkZ2UudCAtPiB1
bml0ICopCiAgICAgICgqIFN0cm9uZ2x5LWNvbm5lY3RlZCBjb21wb25lbnRzLgogICAgICAgKiBF
YWNoIGNvbXBvbmVudCBpcyBnaXZlbiBhcyBhIGxpc3Qgb2Ygbm9kZXMuCiAgICAgICAqIFRoZSBj
b21wb25lbnRzIGFyZSByZXR1cm5lZCB0b3BvbG9naWNhbGx5IHNvcnRlZC4KICAgICAgICopCiAg
ICAgIHZhbCBzdHJvbmdseUNvbm5lY3RlZENvbXBvbmVudHM6IHQgLT4gTm9kZS50IGxpc3QgbGlz
dAogICAgICBleGNlcHRpb24gVG9wb2xvZ2ljYWxTb3J0CiAgICAgIHZhbCB0b3BvbG9naWNhbFNv
cnQ6IHQgLT4gTm9kZS50IGxpc3QKKCogICAgICB2YWwgdHJhbnNwb3NlOiB0IC0+IHQgKikKCiAg
ICAgIHN0cnVjdHVyZSBMYXlvdXREb3Q6Cgkgc2lnCgkgICAgZGF0YXR5cGUgY29sb3IgPQoJICAg
ICAgIEJsYWNrCgkgICAgIHwgUmVkCgkgICAgIHwgSFNCIG9mIHJlYWwgKiByZWFsICogcmVhbAoJ
ICAgICgqIChIdWUsIFNhdHVyYXRpb24sIEJyaWdodG5lc3MpLiAgQWxsIGJldHdlZW4gMCBhbmQg
MS4gKikKCSAgICBkYXRhdHlwZSBkaXJlY3Rpb24gPQoJICAgICAgIEJhY2t3YXJkCgkgICAgIHwg
Qm90aAoJICAgICB8IEZvcndhcmQKCSAgICAgfCBOb25lCgkgICAgZGF0YXR5cGUgZm9udEZhbWls
eSA9CgkgICAgICAgQ291cmllcgoJICAgICB8IEhlbHZldGljYQoJICAgICB8IFN5bWJvbAoJICAg
ICB8IFRpbWVzCgkgICAgZGF0YXR5cGUgZm9udFdlaWdodCA9CgkgICAgICAgQm9sZAoJICAgICB8
IEl0YWxpYwoJICAgICB8IFJvbWFuCgkgICAgdHlwZSBmb250TmFtZSA9IGZvbnRGYW1pbHkgKiBm
b250V2VpZ2h0CgkgICAgZGF0YXR5cGUgb3JpZW50YXRpb24gPQoJICAgICAgIExhbmRzY2FwZQoJ
ICAgICB8IFBvcnRyYWl0CgkgICAgZGF0YXR5cGUgcG9seWdvbk9wdGlvbiA9CgkgICAgICAgRGlz
dG9ydGlvbiBvZiByZWFsICgqIC0xLjAgPD0gciA8PSAxLjAgKikKCSAgICAgfCBPcmllbnRhdGlv
biBvZiBpbnQgKCogMCA8PSBpIDw9IDM2MC4gIENsb2Nrd2lzZSByb3RhdGlvbiBmcm9tCgkJCQkg
ICAqIFggYXhpcyBpbiBkZWdyZWVzLgoJCQkJICAgKikKCSAgICAgfCBQZXJpcGhlcmllcyBvZiBp
bnQKCSAgICAgfCBTa2V3IG9mIHJlYWwgKCogLTEuMCA8PSByIDw9IDEuMCAqKQoJICAgIGRhdGF0
eXBlIHJhbmsgPSBNYXggfCBNaW4gfCBTYW1lCgkgICAgZGF0YXR5cGUgcmFua0RpciA9CgkgICAg
ICAgTGVmdFRvUmlnaHQKCSAgICAgfCBUb3BUb0JvdHRvbQoJICAgIGRhdGF0eXBlIHJhdGlvID0K
CSAgICAgICBBdXRvCgkgICAgIHwgQ29tcHJlc3MKCSAgICAgfCBGaWxsCgkgICAgIHwgV2lkdGhP
dmVySGVpZ2h0IG9mIHJlYWwKCSAgICBkYXRhdHlwZSBzaGFwZSA9CgkgICAgICAgQm94CgkgICAg
IHwgQ2lyY2xlCgkgICAgIHwgRGlhbW9uZAoJICAgICB8IEVsbGlwc2UKCSAgICAgfCBQbGFpbnRl
eHQKCSAgICAgfCBQb2x5Z29uIG9mIHtzaWRlczogaW50LAoJCQkgICBvcHRpb25zOiBwb2x5Z29u
T3B0aW9uIGxpc3R9CgkgICAgZGF0YXR5cGUgc3R5bGUgPQoJICAgICAgIEJvbGRTdHlsZQoJICAg
ICB8IERhc2hlZAoJICAgICB8IERvdHRlZAoJICAgICB8IEZpbGxlZAoJICAgICB8IEludmlzaWJs
ZQoJICAgICB8IFNvbGlkCgkgICAgc3RydWN0dXJlIEVkZ2VPcHRpb246CgkgICAgICAgc2lnCgkJ
ICBkYXRhdHlwZSB0ID0KCQkgICAgIENvbG9yIG9mIGNvbG9yCgkJICAgfCBEZWNvcmF0ZSBvZiBi
b29sICgqIGNvbm5lY3QgZWRnZSBsYWJlbCB0byBlZGdlICopCgkJICAgfCBEaXIgb2YgZGlyZWN0
aW9uCgkJICAgfCBGb250Q29sb3Igb2YgY29sb3IKCQkgICB8IEZvbnROYW1lIG9mIGZvbnROYW1l
CgkJICAgfCBGb250U2l6ZSBvZiBpbnQgKCogcG9pbnRzICopCgkJICAgfCBMYWJlbCBvZiBzdHJp
bmcKCQkgICB8IE1pbmxlbiBvZiBpbnQKCQkgICB8IFN0eWxlIG9mIHN0eWxlCgkJICAgfCBXZWln
aHQgb2YgaW50CgkgICAgICAgZW5kCgkgICAgc3RydWN0dXJlIE5vZGVPcHRpb246CgkgICAgICAg
c2lnCgkJICBkYXRhdHlwZSB0ID0KCQkgICAgIENvbG9yIG9mIGNvbG9yCgkJICAgfCBGb250Q29s
b3Igb2YgY29sb3IKCQkgICB8IEZvbnROYW1lIG9mIGZvbnROYW1lCgkJICAgfCBGb250U2l6ZSBv
ZiBpbnQgKCogcG9pbnRzICopCgkJICAgfCBIZWlnaHQgb2YgcmVhbCAoKiBpbmNoZXMgKikKCQkg
ICB8IExhYmVsIG9mIHN0cmluZwoJCSAgIHwgU2hhcGUgb2Ygc2hhcGUKCQkgICB8IFdpZHRoIG9m
IHJlYWwgKCogaW5jaGVzICopCgkgICAgICAgZW5kCgkgICAgc3RydWN0dXJlIEdyYXBoT3B0aW9u
OgoJICAgICAgIHNpZwoJCSAgZGF0YXR5cGUgdCA9CgkJICAgICBDZW50ZXIgb2YgYm9vbAoJCSAg
IHwgQ29sb3Igb2YgY29sb3IgKCogKikKCQkgICB8IENvbmNlbnRyYXRlIG9mIGJvb2wKCQkgICB8
IEZvbnRDb2xvciBvZiBjb2xvcgoJCSAgIHwgRm9udE5hbWUgb2YgZm9udE5hbWUKCQkgICB8IEZv
bnRTaXplIG9mIGludCAoKiBwb2ludHMgKikKCQkgICB8IExhYmVsIG9mIHN0cmluZwoJCSAgIHwg
TWFyZ2luIG9mIHJlYWwgKiByZWFsICgqIGluY2hlcyAqKQoJCSAgIHwgTWNsaW1pdCBvZiByZWFs
ICgqIG1pbmNyb3NzIGl0ZXJhdGlvbnMgbXVsdGlwbGllciAqKQoJCSAgIHwgTm9kZVNlcCBvZiBy
ZWFsICgqIGluY2hlcyAqKQoJCSAgIHwgTnNsaW1pdCBvZiBpbnQgKCogbmV0d29yayBzaW1wbGV4
IGxpbWl0ICopCgkJICAgfCBPcmllbnRhdGlvbiBvZiBvcmllbnRhdGlvbgoJCSAgIHwgUGFnZSBv
ZiB7aGVpZ2h0OiByZWFsLCB3aWR0aDogcmVhbH0gKCogaW5jaGVzICopCgkJICAgfCBSYW5rIG9m
IHJhbmsgKiBOb2RlLnQgbGlzdAoJCSAgIHwgUmFua0RpciBvZiByYW5rRGlyCgkJICAgfCBSYW5r
U2VwIG9mIHJlYWwgKCogaW5jaGVzICopCgkJICAgfCBSYXRpbyBvZiByYXRpbwoJCSAgIHwgU2l6
ZSBvZiB7aGVpZ2h0OiByZWFsLCB3aWR0aDogcmVhbH0gKCogaW5jaGVzICopCgkgICAgICAgZW5k
CgkgICAgCgkgICAgdmFsIGxheW91dDoge2dyYXBoOiB0LAoJCQkgdGl0bGU6IHN0cmluZywKCQkJ
IG9wdGlvbnM6IEdyYXBoT3B0aW9uLnQgbGlzdCwKCQkJIGVkZ2VPcHRpb25zOiBFZGdlLnQgLT4g
RWRnZU9wdGlvbi50IGxpc3QsCgkJCSBub2RlT3B0aW9uczogTm9kZS50IC0+IE5vZGVPcHRpb24u
dCBsaXN0fSAtPiBMYXlvdXQudAoJIGVuZAogICBlbmQKCgpmdW5jdG9yIFRlc3REaXJlY3RlZEdy
YXBoIChTOiBESVJFQ1RFRF9HUkFQSCk6IHNpZyBlbmQgPQpzdHJ1Y3QKCm9wZW4gUwoKKCogU2Vj
dGlvbiA3LjMgb2YgTXVjaG5pY2suICopCmxvY2FsCiAgIHZhbCBnID0gbmV3ICgpCiAgIHZhbCB7
Z2V0ID0gbmFtZSwgc2V0ID0gc2V0TmFtZX0gPQogICAgICBQcm9wZXJ0eS5nZXRTZXRPbmNlIChO
b2RlLnBsaXN0LAoJCQkgICBQcm9wZXJ0eS5pbml0UmFpc2UgKCJuYW1lIiwgTm9kZS5sYXlvdXQp
KQogICB2YWwgbm9kZSA9IFN0cmluZy5tZW1vaXplIChmbiBzID0+CgkJCSAgICAgIGxldAoJCQkJ
IHZhbCBuID0gbmV3Tm9kZSBnCgkJCQkgdmFsIF8gPSBzZXROYW1lIChuLCBzKQoJCQkgICAgICBp
biBuCgkJCSAgICAgIGVuZCkKICAgdmFsIF8gPQogICAgICBMaXN0LmZvcmVhY2ggKFsoImVudHJ5
IiwgIkIxIiksCgkJICAgICAoIkIxIiwgIkIyIiksCgkJICAgICAoIkIxIiwgIkIzIiksCgkJICAg
ICAoIkIyIiwgImV4aXQiKSwKCQkgICAgICgiQjMiLCAiQjQiKSwKCQkgICAgICgiQjQiLCAiQjUi
KSwKCQkgICAgICgiQjQiLCAiQjYiKSwKCQkgICAgICgiQjUiLCAiZXhpdCIpLAoJCSAgICAgKCJC
NiIsICJCNCIpXSwgZm4gKGZyb20sIHRvKSA9PgoJCSAgICAoYWRkRWRnZSAoZywge2Zyb20gPSBu
b2RlIGZyb20sIHRvID0gbm9kZSB0b30pCgkJICAgICA7ICgpKSkKICAgdmFsIF8gPQogICAgICBG
aWxlLndpdGhPdXQKICAgICAgKCIvdG1wL3ouZG90IiwgZm4gb3V0ID0+CiAgICAgICBsZXQKCSAg
b3BlbiBMYXlvdXREb3QKICAgICAgIGluCgkgIExheW91dC5vdXRwdXQgKGxheW91dCB7Z3JhcGgg
PSBnLAoJCQkJIHRpdGxlID0gIk11Y2huaWNrIiwKCQkJCSBvcHRpb25zID0gW10sCgkJCQkgZWRn
ZU9wdGlvbnMgPSBmbiBfID0+IFtdLAoJCQkJIG5vZGVPcHRpb25zID0gZm4gbiA9PiBsZXQgb3Bl
biBOb2RlT3B0aW9uCgkJCQkJCSAgICAgICBpbiBbTGFiZWwgKG5hbWUgbildCgkJCQkJCSAgICAg
ICBlbmR9LAoJCQkgb3V0KQoJICA7IE91dC5uZXdsaW5lIG91dAogICAgICAgZW5kKQogICB2YWwg
e2lkb219ID0gZG9taW5hdG9ycyB7Z3JhcGggPSBnLCByb290ID0gbm9kZSAiZW50cnkifQogICB2
YWwgZzIgPSBuZXcgKCkKICAgdmFsIHtnZXQgPSBvbGROb2RlLCBzZXQgPSBzZXRPbGROb2RlfSA9
CiAgICAgIFByb3BlcnR5LmdldFNldE9uY2UgKE5vZGUucGxpc3QsCgkJCSAgIFByb3BlcnR5Lmlu
aXRSYWlzZSAoIm9sZE5vZGUiLCBOb2RlLmxheW91dCkpCiAgIHZhbCB7Z2V0ID0gbmV3Tm9kZX0g
PQogICAgICBQcm9wZXJ0eS5nZXQgKE5vZGUucGxpc3QsCgkJICAgIFByb3BlcnR5LmluaXRGdW4g
KGZuIG4gPT4KCQkJCSAgICAgIGxldAoJCQkJCSB2YWwgbicgPSBuZXdOb2RlIGcyCgkJCQkJIHZh
bCBfID0gc2V0T2xkTm9kZSAobicsIG4pCgkJCQkgICAgICBpbiBuJwoJCQkJICAgICAgZW5kKSkK
ICAgdmFsIF8gPSBmb3JlYWNoTm9kZSAoZywgZm4gbiA9PgoJCQkoYWRkRWRnZSAoZzIsIHtmcm9t
ID0gbmV3Tm9kZSAoaWRvbSBuKSwKCQkJCSAgICAgICB0byA9IG5ld05vZGUgbn0pCgkJCSA7ICgp
KSkKICAgdmFsIF8gPQogICAgICBGaWxlLndpdGhPdXQKICAgICAgKCIvdG1wL3oyLmRvdCIsIGZu
IG91dCA9PgogICAgICAgbGV0CgkgIG9wZW4gTGF5b3V0RG90CiAgICAgICBpbgoJICBMYXlvdXQu
b3V0cHV0CgkgIChsYXlvdXQge2dyYXBoID0gZzIsCgkJICAgdGl0bGUgPSAiZG9tIiwKCQkgICBv
cHRpb25zID0gW10sCgkJICAgZWRnZU9wdGlvbnMgPSBmbiBfID0+IFtdLAoJCSAgIG5vZGVPcHRp
b25zID0gZm4gbiA9PiBsZXQgb3BlbiBOb2RlT3B0aW9uCgkJCQkJIGluIFtMYWJlbCAobmFtZSAo
b2xkTm9kZSBuKSldCgkJCQkJIGVuZH0sCgkgICBvdXQpCgkgIDsgT3V0Lm5ld2xpbmUgb3V0CiAg
ICAgICBlbmQpCmluCmVuZAoKZW5kCigqIHN0b3Agb2YgbGliL21sdG9uL2Jhc2ljL2RpcmVjdGVk
LWdyYXBoLnNpZyAqKQooKiBzdGFydCBvZiBsaWIvbWx0b24vYmFzaWMvZGlyZWN0ZWQtZ3JhcGgu
c21sICopCnN0cnVjdHVyZSBEaXJlY3RlZEdyYXBoOiBESVJFQ1RFRF9HUkFQSCA9IApzdHJ1Y3QK
CnN0cnVjdHVyZSBUeXBlcyA9CiAgIHN0cnVjdAogICAgICBkYXRhdHlwZSBub2RlID0gTm9kZSBv
ZiB7c3VjY2Vzc29yczogZWRnZSBsaXN0IHJlZiwKCQkJICAgICAgIHBsaXN0OiBQcm9wZXJ0eUxp
c3QudH0KICAgICAgYW5kIGVkZ2UgPSBFZGdlIG9mIHtmcm9tOiBub2RlLAoJCQkgIHRvOiBub2Rl
LAoJCQkgIHBsaXN0OiBQcm9wZXJ0eUxpc3QudH0KICAgZW5kCgpzdHJ1Y3R1cmUgRWRnZSA9CiAg
IHN0cnVjdAogICAgICBkYXRhdHlwZSB0ID0gZGF0YXR5cGUgVHlwZXMuZWRnZQoJIAogICAgICBs
b2NhbAoJIGZ1biBtYWtlIHNlbCAoRWRnZSByKSA9IHNlbCByCiAgICAgIGluCgkgdmFsIGZyb20g
PSBtYWtlICNmcm9tCgkgdmFsIHBsaXN0ID0gbWFrZSAjcGxpc3QKCSB2YWwgdG8gPSBtYWtlICN0
bwogICAgICBlbmQKICAgZW5kCgpzdHJ1Y3R1cmUgTm9kZSA9CiAgIHN0cnVjdAogICAgICB0eXBl
IGVkZ2UgPSBUeXBlcy5lZGdlCiAgICAgIGRhdGF0eXBlIHQgPSBkYXRhdHlwZSBUeXBlcy5ub2Rl
CgkgCiAgICAgIGZ1biBsYXlvdXQgXyA9IExheW91dC5zdHIgIm5vZGUiCgogICAgICBmdW4gc3Vj
Y2Vzc29ycyAoTm9kZSB7c3VjY2Vzc29ycywgLi4ufSkgPSAhc3VjY2Vzc29ycwogICAgICBmdW4g
cGxpc3QgKE5vZGUge3BsaXN0LCAuLi59KSA9IHBsaXN0CgogICAgICBmdW4gZXF1YWxzIChuLCBu
JykgPSBQcm9wZXJ0eUxpc3QuZXF1YWxzIChwbGlzdCBuLCBwbGlzdCBuJykKCiAgICAgIGZ1biBu
ZXcgKCkgPSBOb2RlIHtzdWNjZXNzb3JzID0gcmVmIFtdLAoJCQkgcGxpc3QgPSBQcm9wZXJ0eUxp
c3QubmV3ICgpfQoKICAgICAgZnVuIGVxdWFscyAobiwgbicpID0gUHJvcGVydHlMaXN0LmVxdWFs
cyAocGxpc3QgbiwgcGxpc3QgbicpCgogICAgICBmdW4gaGFzRWRnZSB7ZnJvbSwgdG99ID0KCSBM
aXN0LmV4aXN0cyAoc3VjY2Vzc29ycyBmcm9tLCBmbiBlID0+IGVxdWFscyAodG8sIEVkZ2UudG8g
ZSkpCgogICAoKiAgICAgICBmdW4gcmVtb3ZlU3VjY2Vzc29yIChOb2RlIHtzdWNjZXNzb3JzLCAu
Li59LCBuKSA9CiAgICAqIAkgc3VjY2Vzc29ycyA6PSBMaXN0LnJlbW92ZUZpcnN0ICghc3VjY2Vz
c29ycywgZm4gRWRnZS5FZGdlIHt0bywgLi4ufSA9PgogICAgKiAJCQkJCWVxdWFscyAobiwgdG8p
KQogICAgKikKICAgZW5kCgpzdHJ1Y3R1cmUgRWRnZSA9CiAgIHN0cnVjdAogICAgICBzdHJ1Y3R1
cmUgTm9kZSA9IE5vZGUKCSAKICAgICAgb3BlbiBFZGdlCgogICAgICBmdW4gbmV3IHtmcm9tLCB0
b30gPQoJIEVkZ2Uge2Zyb20gPSBmcm9tLAoJICAgICAgIHRvID0gdG8sCgkgICAgICAgcGxpc3Qg
PSBQcm9wZXJ0eUxpc3QubmV3ICgpfQoJIAogICAgICBmdW4gZXF1YWxzIChlLCBlJykgPSBQcm9w
ZXJ0eUxpc3QuZXF1YWxzIChwbGlzdCBlLCBwbGlzdCBlJykKICAgZW5kCgpzdHJ1Y3R1cmUgRGZz
UGFyYW0gPQogICBzdHJ1Y3QKICAgICAgdHlwZSB0ID0ge3N0YXJ0Tm9kZTogTm9kZS50IC0+IHVu
aXQsCgkJZmluaXNoTm9kZTogTm9kZS50IC0+IHVuaXQsCgkJaGFuZGxlVHJlZUVkZ2U6IEVkZ2Uu
dCAtPiB1bml0LAoJCWhhbmRsZU5vblRyZWVFZGdlOiBFZGdlLnQgLT4gdW5pdCwKCQlzdGFydFRy
ZWU6IE5vZGUudCAtPiB1bml0LAoJCWZpbmlzaFRyZWU6IE5vZGUudCAtPiB1bml0LAoJCWZpbmlz
aERmczogdW5pdCAtPiB1bml0fQoJIAogICAgICBmdW4gaWdub3JlIF8gPSAoKQoKICAgICAgZnVu
IGZpbmlzaE5vZGUgZiA9IHtmaW5pc2hOb2RlID0gZiwKCQkJICBzdGFydE5vZGUgPSBpZ25vcmUs
CgkJCSAgaGFuZGxlVHJlZUVkZ2UgPSBpZ25vcmUsCgkJCSAgaGFuZGxlTm9uVHJlZUVkZ2UgPSBp
Z25vcmUsCgkJCSAgc3RhcnRUcmVlID0gaWdub3JlLAoJCQkgIGZpbmlzaFRyZWUgPSBpZ25vcmUs
CgkJCSAgZmluaXNoRGZzID0gaWdub3JlfQoKICAgICAgZnVuIHN0YXJ0Tm9kZSBmID0ge2Zpbmlz
aE5vZGUgPSBpZ25vcmUsCgkJCSBzdGFydE5vZGUgPSBmLAoJCQkgaGFuZGxlVHJlZUVkZ2UgPSBp
Z25vcmUsCgkJCSBoYW5kbGVOb25UcmVlRWRnZSA9IGlnbm9yZSwKCQkJIHN0YXJ0VHJlZSA9IGln
bm9yZSwKCQkJIGZpbmlzaFRyZWUgPSBpZ25vcmUsCgkJCSBmaW5pc2hEZnMgPSBpZ25vcmV9Cgkg
CiAgICAgIGZ1biBzZXEgZiBnIGEgPSAoZiBhOyBnIGEpCgkgCiAgICAgIGZ1biBjb21iaW5lICh7
c3RhcnROb2RlLCBmaW5pc2hOb2RlLAoJCSAgICBoYW5kbGVUcmVlRWRnZSwgaGFuZGxlTm9uVHJl
ZUVkZ2UsCgkJICAgIHN0YXJ0VHJlZSwgZmluaXNoVHJlZSwgZmluaXNoRGZzfTogdCwKCQkgICB7
c3RhcnROb2RlID0gc24sIGZpbmlzaE5vZGUgPSBmaW4sCgkJICAgIGhhbmRsZVRyZWVFZGdlID0g
aHQsIGhhbmRsZU5vblRyZWVFZGdlID0gaG4sCgkJICAgIHN0YXJ0VHJlZSA9IHN0LCBmaW5pc2hU
cmVlID0gZnQsIGZpbmlzaERmcyA9IGZkfTogdCk6IHQgPQoJIHtzdGFydE5vZGUgPSBzZXEgc3Rh
cnROb2RlIHNuLAoJICBmaW5pc2hOb2RlID0gc2VxIGZpbmlzaE5vZGUgZmluLAoJICBoYW5kbGVU
cmVlRWRnZSA9IHNlcSBoYW5kbGVUcmVlRWRnZSBodCwKCSAgaGFuZGxlTm9uVHJlZUVkZ2UgPSBz
ZXEgaGFuZGxlTm9uVHJlZUVkZ2UgaG4sCgkgIHN0YXJ0VHJlZSA9IHNlcSBzdGFydFRyZWUgc3Qs
CgkgIGZpbmlzaFRyZWUgPSBzZXEgZmluaXNoVHJlZSBmdCwKCSAgZmluaXNoRGZzID0gc2VxIGZp
bmlzaERmcyBmZH0KICAgZW5kCgooKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSopCigqICAgICAgICAgICAgICAgICAgZ3JhcGggZGF0YXR5cGUgICAg
ICAgICAgICAgICAgICAgKikKKCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0qKQoKZGF0YXR5cGUgdCA9IFQgb2Yge25vZGVzOiBOb2RlLnQgbGlzdCBy
ZWZ9CgpmdW4gbm9kZXMgKFQge25vZGVzLCAuLi59KSA9ICFub2RlcwoKZnVuIG5ldyAoKSA9IFQg
e25vZGVzID0gcmVmIFtdfQogICAKZnVuIG5ld05vZGUgKFQge25vZGVzLCAuLi59KSA9CiAgIGxl
dCB2YWwgbiA9IE5vZGUubmV3ICgpCiAgIGluIExpc3QucHVzaCAobm9kZXMsIG4pCiAgICAgIDsg
bgogICBlbmQKCmZ1biBhZGRFZGdlIChfLCBlIGFzIHtmcm9tIGFzIE5vZGUuTm9kZSB7c3VjY2Vz
c29ycywgLi4ufSwgdG99KSA9CiAgIGxldCB2YWwgZSA9IEVkZ2UubmV3IGUKICAgaW4gTGlzdC5w
dXNoIChzdWNjZXNzb3JzLCBlKQogICAgICA7IGUKICAgZW5kCgooKmZ1biByZW1vdmVFZGdlIChf
LCB7ZnJvbSwgdG99KSA9IE5vZGUucmVtb3ZlU3VjY2Vzc29yIChmcm9tLCB0bykgKikKCnN0cnVj
dHVyZSBMYXlvdXREb3QgPQogICBzdHJ1Y3QKICAgICAgb3BlbiBMYXlvdXQKCiAgICAgIHZhbCBk
cXVvdGUgPSAiXCIiCiAgICAgIGZ1biBxdW90ZSBzID0gY29uY2F0IFtkcXVvdGUsIHMsIGRxdW90
ZV0KICAgICAgZnVuIGxhYiAobmFtZSwgdmFsdWUpID0gY29uY2F0IFtuYW1lLCAiID0gIiwgcXVv
dGUgdmFsdWVdCiAgICAgIGZ1biBvcHRpb25zVG9TdHJpbmcgKG9wdHM6ICdhIGxpc3QsIHRvU3Ry
aW5nOiAnYSAtPiBzdHJpbmcsIHNlcCk6IHN0cmluZyA9CgkgY29uY2F0IChMaXN0LnNlcGFyYXRl
IChMaXN0Lm1hcCAob3B0cywgdG9TdHJpbmcpLCBjb25jYXQgW3NlcCwgIiAiXSkpCiAgICAgIGZ1
biBsYXlvdXRPcHRpb25zIHogPSBzdHIgKG9wdGlvbnNUb1N0cmluZyB6KQogICAgICB2YWwgYm9v
bFRvU3RyaW5nID0gQm9vbC50b1N0cmluZwogICAgICB2YWwgaW50VG9TdHJpbmcgPSBJbnQudG9T
dHJpbmcKICAgICAgZnVuIHJlYWxUb1N0cmluZyB4ID0gUmVhbC5mb3JtYXQgKHgsIFJlYWwuRm9y
bWF0LmZpeCAoU09NRSAyKSkKICAgICAgZnVuIHJlYWwyVG9TdHJpbmcgKHgsIHkpID0KCSBjb25j
YXQgW3JlYWxUb1N0cmluZyB4LCAiLCAiLCByZWFsVG9TdHJpbmcgeV0KCSAKICAgICAgZGF0YXR5
cGUgY2x1c3RlclJhbmsgPQoJIEdsb2JhbAoJfCBMb2NhbAoJfCBOb25lCgogICAgICB2YWwgY2x1
c3RlclJhbmtUb1N0cmluZyA9CgkgZm4gR2xvYmFsID0+ICJnbG9iYWwiCgkgIHwgTG9jYWwgPT4g
ImxvY2FsIgoJICB8IE5vbmUgPT4gIm5vbmUiCgogICAgICBkYXRhdHlwZSBjb2xvciA9CgkgQmxh
Y2sKCSAgfCBSZWQKCSAgfCBIU0Igb2YgcmVhbCAqIHJlYWwgKiByZWFsCgogICAgICB2YWwgY29s
b3JUb1N0cmluZyA9CgkgZm4gQmxhY2sgPT4gImJsYWNrIgoJICB8IFJlZCA9PiAicmVkIgoJICB8
IEhTQiAoaCwgcywgYikgPT4gY29uY2F0IFtyZWFsVG9TdHJpbmcgaCwgIiAiLAoJCQkJICAgICBy
ZWFsVG9TdHJpbmcgcywgIiAiLAoJCQkJICAgICByZWFsVG9TdHJpbmcgYl0KCSAgICAgICAKCiAg
ICAgIGRhdGF0eXBlIGRpcmVjdGlvbiA9CgkgQmFja3dhcmQKCSAgfCBCb3RoCgkgIHwgRm9yd2Fy
ZAoJICB8IE5vbmUKCiAgICAgIHZhbCBkaXJlY3Rpb25Ub1N0cmluZyA9CgkgZm4gQmFja3dhcmQg
PT4gImJhY2t3YXJkIgoJICB8IEJvdGggPT4gImJvdGgiCgkgIHwgRm9yd2FyZCA9PiAiZm9yd2Fy
ZCIKCSAgfCBOb25lID0+ICJub25lIgoKICAgICAgZGF0YXR5cGUgZm9udEZhbWlseSA9CgkgQ291
cmllcgoJICB8IEhlbHZldGljYQoJICB8IFN5bWJvbAoJICB8IFRpbWVzCgogICAgICB2YWwgZm9u
dEZhbWlseVRvU3RyaW5nID0KCSBmbiBDb3VyaWVyID0+ICJDb3VyaWVyIgoJICB8IEhlbHZldGlj
YSA9PiAiSGVsdmV0aWNhIgoJICB8IFN5bWJvbCA9PiAiU3ltYm9sIgoJICB8IFRpbWVzID0+ICJU
aW1lcyIKCSAgICAgICAKICAgICAgZGF0YXR5cGUgZm9udFdlaWdodCA9CgkgQm9sZAoJICB8IEl0
YWxpYwoJICB8IFJvbWFuCgogICAgICB2YWwgZm9udFdlaWdodFRvU3RyaW5nID0KCSBmbiBCb2xk
ID0+ICJCb2xkIgoJICB8IEl0YWxpYyA9PiAiSXRhbGljIgoJICB8IFJvbWFuID0+ICJSb21hbiIK
CSAgICAgICAKICAgICAgdHlwZSBmb250TmFtZSA9IGZvbnRGYW1pbHkgKiBmb250V2VpZ2h0Cgkg
CiAgICAgIGZ1biBmb250TmFtZVRvU3RyaW5nIChmLCB3KSA9CgkgY29uY2F0IFtmb250RmFtaWx5
VG9TdHJpbmcgZiwgIi0iLCBmb250V2VpZ2h0VG9TdHJpbmcgd10KCiAgICAgIGRhdGF0eXBlIG9y
aWVudGF0aW9uID0KCSBMYW5kc2NhcGUKCXwgUG9ydHJhaXQKCiAgICAgIHZhbCBvcmllbnRhdGlv
blRvU3RyaW5nID0KCSBmbiBMYW5kc2NhcGUgPT4gImxhbmRzY2FwZSIKCSAgfCBQb3J0cmFpdCA9
PiAicG9ydHJhaXQiCgkgICAgICAgCiAgICAgIGRhdGF0eXBlIHBvbHlnb25PcHRpb24gPQoJIERp
c3RvcnRpb24gb2YgcmVhbAoJICB8IE9yaWVudGF0aW9uIG9mIGludAoJICB8IFBlcmlwaGVyaWVz
IG9mIGludAoJICB8IFNrZXcgb2YgcmVhbAoKICAgICAgZnVuIHBvbHlnb25PcHRpb25Ub1N0cmlu
ZyBvcHQgPQoJIGxhYiAoY2FzZSBvcHQgb2YKCQkgRGlzdG9ydGlvbiByID0+ICgiZGlzdG9ydGlv
biIsIHJlYWxUb1N0cmluZyByKQoJICAgICAgIHwgT3JpZW50YXRpb24gaSA9PiAoIm9yaWVudGF0
aW9uIiwgaW50VG9TdHJpbmcgaSkKCSAgICAgICB8IFBlcmlwaGVyaWVzIHAgPT4gKCJwZXJpcGhl
cmllcyIsIGludFRvU3RyaW5nIHApCgkgICAgICAgfCBTa2V3IHMgPT4gKCJza2V3IiwgcmVhbFRv
U3RyaW5nIHMpKQoKICAgICAgZGF0YXR5cGUgcmFuayA9IE1heCB8IE1pbiB8IFNhbWUKCiAgICAg
IHZhbCByYW5rVG9TdHJpbmcgPQoJIGZuIE1heCA9PiAibWF4IgoJICB8IE1pbiA9PiAibWluIgoJ
ICB8IFNhbWUgPT4gInNhbWUiCgogICAgICBkYXRhdHlwZSByYW5rRGlyID0KCSBMZWZ0VG9SaWdo
dAoJICB8IFRvcFRvQm90dG9tCgogICAgICB2YWwgcmFua0RpclRvU3RyaW5nID0KCSBmbiBMZWZ0
VG9SaWdodCA9PiAiTFIiCgkgIHwgVG9wVG9Cb3R0b20gPT4gIlRCIgoKICAgICAgZGF0YXR5cGUg
cmF0aW8gPQoJIEF1dG8KCSAgfCBDb21wcmVzcwoJICB8IEZpbGwKCSAgfCBXaWR0aE92ZXJIZWln
aHQgb2YgcmVhbAoKICAgICAgdmFsIHJhdGlvVG9TdHJpbmcgPQoJIGZuIEF1dG8gPT4gImF1dG8i
CgkgIHwgQ29tcHJlc3MgPT4gImNvbXByZXNzIgoJICB8IEZpbGwgPT4gImZpbGwiCgkgIHwgV2lk
dGhPdmVySGVpZ2h0IHIgPT4gcmVhbFRvU3RyaW5nIHIKCiAgICAgIGRhdGF0eXBlIHNoYXBlID0K
CSBCb3gKCSAgfCBDaXJjbGUKCSAgfCBEaWFtb25kCgkgIHwgRWxsaXBzZQoJICB8IFBsYWludGV4
dAoJICB8IFBvbHlnb24gb2Yge3NpZGVzOiBpbnQsCgkJCW9wdGlvbnM6IHBvbHlnb25PcHRpb24g
bGlzdH0KCiAgICAgIHZhbCBzaGFwZVRvU3RyaW5nID0KCSBmbiBCb3ggPT4gImJveCIKCSAgfCBD
aXJjbGUgPT4gImNpcmNsZSIKCSAgfCBEaWFtb25kID0+ICJkaWFtb25kIgoJICB8IEVsbGlwc2Ug
PT4gImVsbGlwc2UiCgkgIHwgUGxhaW50ZXh0ID0+ICJwbGFpbnRleHQiCgkgIHwgUG9seWdvbiB7
c2lkZXMsIG9wdGlvbnN9ID0+CgkgICAgICAgY29uY2F0CgkgICAgICAgWyJwb2x5Z29uLCAiLAoJ
CWxhYiAoInNpZGVzIiwgaW50VG9TdHJpbmcgc2lkZXMpLAoJCWNhc2Ugb3B0aW9ucyBvZgoJCSAg
IFtdID0+ICIiCgkJIHwgXyA9PiBjb25jYXQgWyIsICIsCgkJCQlvcHRpb25zVG9TdHJpbmcgKG9w
dGlvbnMsCgkJCQkJCSBwb2x5Z29uT3B0aW9uVG9TdHJpbmcsCgkJCQkJCSAiLCIpXV0KCiAgICAg
IGRhdGF0eXBlIHN0eWxlID0KCSBCb2xkU3R5bGUKCSAgfCBEYXNoZWQKCSAgfCBEb3R0ZWQKCSAg
fCBGaWxsZWQKCSAgfCBJbnZpc2libGUKCSAgfCBTb2xpZAoKICAgICAgdmFsIHN0eWxlVG9TdHJp
bmcgPQoJIGZuIEJvbGRTdHlsZSA9PiAiYm9sZCIKCSAgfCBEYXNoZWQgPT4gImRhc2hlZCIKCSAg
fCBEb3R0ZWQgPT4gImRvdHRlZCIKCSAgfCBGaWxsZWQgPT4gImZpbGxlZCIKCSAgfCBJbnZpc2li
bGUgPT4gImludmlzaWJsZSIKCSAgfCBTb2xpZCA9PiAic29saWQiCgogICAgICBzdHJ1Y3R1cmUg
RWRnZU9wdGlvbiA9Cgkgc3RydWN0CgkgICAgZGF0YXR5cGUgdCA9CgkgICAgICAgQ29sb3Igb2Yg
Y29sb3IKCSAgICAgfCBEZWNvcmF0ZSBvZiBib29sICgqIGNvbm5lY3QgZWRnZSBsYWJlbCB0byBl
ZGdlICopCgkgICAgIHwgRGlyIG9mIGRpcmVjdGlvbgoJICAgICB8IEZvbnRDb2xvciBvZiBjb2xv
cgoJICAgICB8IEZvbnROYW1lIG9mIGZvbnROYW1lCgkgICAgIHwgRm9udFNpemUgb2YgaW50ICgq
IHBvaW50cyAqKQoJICAgICB8IExhYmVsIG9mIHN0cmluZwoJICAgICB8IE1pbmxlbiBvZiBpbnQK
CSAgICAgfCBTdHlsZSBvZiBzdHlsZQoJICAgICB8IFdlaWdodCBvZiBpbnQKCgkgICAgZnVuIHRv
U3RyaW5nIG9wdCA9CgkgICAgICAgbGFiIChjYXNlIG9wdCBvZgoJCSAgICAgICBDb2xvciBjID0+
ICgiY29sb3IiLCBjb2xvclRvU3RyaW5nIGMpCgkJICAgICB8IERlY29yYXRlIGQgPT4gKCJkZWNv
cmF0ZSIsIGJvb2xUb1N0cmluZyBkKQoJCSAgICAgfCBEaXIgZCA9PiAoImRpciIsIGRpcmVjdGlv
blRvU3RyaW5nIGQpCgkJICAgICB8IEZvbnRDb2xvciBjID0+ICgiZm9udGNvbG9yIiwgY29sb3JU
b1N0cmluZyBjKQoJCSAgICAgfCBGb250TmFtZSBuID0+ICgiZm9udG5hbWUiLCBmb250TmFtZVRv
U3RyaW5nIG4pCgkJICAgICB8IEZvbnRTaXplIHMgPT4gKCJmb250c2l6ZSIsIGludFRvU3RyaW5n
IHMpCgkJICAgICB8IExhYmVsIGwgPT4gKCJsYWJlbCIsIGwpCgkJICAgICB8IE1pbmxlbiBuID0+
ICgibWlubGVuIiwgaW50VG9TdHJpbmcgbikKCQkgICAgIHwgU3R5bGUgcyA9PiAoInN0eWxlIiwg
c3R5bGVUb1N0cmluZyBzKQoJCSAgICAgfCBXZWlnaHQgbiA9PiAoIndlaWdodCIsIGludFRvU3Ry
aW5nIG4pKQoJIGVuZAoKICAgICAgc3RydWN0dXJlIE5vZGVPcHRpb24gPQoJIHN0cnVjdAoJICAg
IGRhdGF0eXBlIHQgPQoJICAgICAgIENvbG9yIG9mIGNvbG9yCgkgICAgIHwgRm9udENvbG9yIG9m
IGNvbG9yCgkgICAgIHwgRm9udE5hbWUgb2YgZm9udE5hbWUKCSAgICAgfCBGb250U2l6ZSBvZiBp
bnQgKCogcG9pbnRzICopCgkgICAgIHwgSGVpZ2h0IG9mIHJlYWwgKCogaW5jaGVzICopCgkgICAg
IHwgTGFiZWwgb2Ygc3RyaW5nCgkgICAgIHwgU2hhcGUgb2Ygc2hhcGUKCSAgICAgfCBXaWR0aCBv
ZiByZWFsICgqIGluY2hlcyAqKQoKCSAgICBmdW4gdG9TdHJpbmcgb3B0ID0KCSAgICAgICBsYWIg
KGNhc2Ugb3B0IG9mCgkJICAgICAgIENvbG9yIGMgPT4gKCJjb2xvciIsIGNvbG9yVG9TdHJpbmcg
YykKCQkgICAgIHwgRm9udENvbG9yIGMgPT4gKCJmb250Y29sb3IiLCBjb2xvclRvU3RyaW5nIGMp
CgkJICAgICB8IEZvbnROYW1lIG4gPT4gKCJmb250bmFtZSIsIGZvbnROYW1lVG9TdHJpbmcgbikK
CQkgICAgIHwgRm9udFNpemUgcyA9PiAoImZvbnRzaXplIiwgaW50VG9TdHJpbmcgcykKCQkgICAg
IHwgSGVpZ2h0IHIgPT4gKCJoZWlnaHQiLCByZWFsVG9TdHJpbmcgcikKCQkgICAgIHwgTGFiZWwg
bCA9PiAoImxhYmVsIiwgbCkKCQkgICAgIHwgU2hhcGUgcyA9PiAoInNoYXBlIiwgc2hhcGVUb1N0
cmluZyBzKQoJCSAgICAgfCBXaWR0aCByID0+ICgid2lkdGgiLCByZWFsVG9TdHJpbmcgcikpCgkg
ZW5kCgogICAgICBzdHJ1Y3R1cmUgR3JhcGhPcHRpb24gPQoJIHN0cnVjdAoJICAgIGRhdGF0eXBl
IHQgPQoJICAgICAgIENlbnRlciBvZiBib29sCgkgICAgIHwgQ29sb3Igb2YgY29sb3IgKCogKikK
CSAgICAgfCBDb25jZW50cmF0ZSBvZiBib29sCgkgICAgIHwgRm9udENvbG9yIG9mIGNvbG9yCgkg
ICAgIHwgRm9udE5hbWUgb2YgZm9udE5hbWUKCSAgICAgfCBGb250U2l6ZSBvZiBpbnQgKCogcG9p
bnRzICopCgkgICAgIHwgTGFiZWwgb2Ygc3RyaW5nCgkgICAgIHwgTWFyZ2luIG9mIHJlYWwgKiBy
ZWFsICgqIGluY2hlcyAqKQoJICAgICB8IE1jbGltaXQgb2YgcmVhbCAoKiBtaW5jcm9zcyBpdGVy
YXRpb25zIG11bHRpcGxpZXIgKikKCSAgICAgfCBOb2RlU2VwIG9mIHJlYWwgKCogaW5jaGVzICop
CgkgICAgIHwgTnNsaW1pdCBvZiBpbnQKCSAgICAgfCBPcmllbnRhdGlvbiBvZiBvcmllbnRhdGlv
bgoJICAgICB8IFBhZ2Ugb2Yge2hlaWdodDogcmVhbCwgd2lkdGg6IHJlYWx9ICgqIGluY2hlcyAq
KQoJICAgICB8IFJhbmsgb2YgcmFuayAqIE5vZGUudCBsaXN0CgkgICAgIHwgUmFua0RpciBvZiBy
YW5rRGlyCgkgICAgIHwgUmFua1NlcCBvZiByZWFsICgqIGluY2hlcyAqKQoJICAgICB8IFJhdGlv
IG9mIHJhdGlvCgkgICAgIHwgU2l6ZSBvZiB7aGVpZ2h0OiByZWFsLCB3aWR0aDogcmVhbH0gKCog
aW5jaGVzICopCgoJICAgIGZ1biB0b1N0cmluZyAob3B0LCBub2RlSWQpID0KCSAgICAgICBjYXNl
IG9wdCBvZgoJCSAgQ2VudGVyIHggPT4gbGFiICgiY2VudGVyIiwgYm9vbFRvU3RyaW5nIHgpCgkJ
fCBDb2xvciB4ID0+IGxhYiAoImNvbG9yIiwgY29sb3JUb1N0cmluZyB4KQoJCXwgQ29uY2VudHJh
dGUgeCA9PiBsYWIgKCJjb25jZW50cmF0ZSIsIGJvb2xUb1N0cmluZyB4KQoJCXwgRm9udENvbG9y
IHggPT4gbGFiICgiZm9udGNvbG9yIiwgY29sb3JUb1N0cmluZyB4KQoJCXwgRm9udE5hbWUgeCA9
PiBsYWIgKCJmb250bmFtZSIsIGZvbnROYW1lVG9TdHJpbmcgeCkKCQl8IEZvbnRTaXplIHggPT4g
bGFiICgiZm9udHNpemUiLCBpbnRUb1N0cmluZyB4KQoJCXwgTGFiZWwgeCA9PiBsYWIgKCJsYWJl
bCIsIHgpCgkJfCBNYXJnaW4geCA9PiBsYWIgKCJtYXJnaW4iLCByZWFsMlRvU3RyaW5nIHgpCgkJ
fCBNY2xpbWl0IHggPT4gbGFiICgibWNsaW1pdCIsIHJlYWxUb1N0cmluZyB4KQoJCXwgTm9kZVNl
cCB4ID0+IGxhYiAoIm5vZGVzZXAiLCByZWFsVG9TdHJpbmcgeCkKCQl8IE5zbGltaXQgbiA9PiBs
YWIgKCJuc2xpbWl0IiwgaW50VG9TdHJpbmcgbikKCQl8IE9yaWVudGF0aW9uIHggPT4gbGFiICgi
b3JpZW50YXRpb24iLCBvcmllbnRhdGlvblRvU3RyaW5nIHgpCgkJfCBQYWdlIHtoZWlnaHQsIHdp
ZHRofSA9PgoJCSAgICAgbGFiICgicGFnZSIsIHJlYWwyVG9TdHJpbmcgKHdpZHRoLCBoZWlnaHQp
KQoJCXwgUmFua0RpciB4ID0+IGxhYiAoInJhbmtkaXIiLCByYW5rRGlyVG9TdHJpbmcgeCkKCQl8
IFJhbmsgKHIsIG5zKSA9PgoJCSAgICAgY29uY2F0IFsieyAiLAoJCQkgICAgIGxhYiAoInJhbmsg
IiwgcmFua1RvU3RyaW5nIHIpLAoJCQkgICAgICI7ICIsCgkJCSAgICAgY29uY2F0IChMaXN0Lm1h
cCAobnMsIGZuIG4gPT4KCQkJCQkgICAgICAgY29uY2F0IFtub2RlSWQgbiwgIiAiXSkpLAoJCQkg
ICAgICJ9Il0KCQl8IFJhbmtTZXAgeCA9PiBsYWIgKCJyYW5rc2VwIiwgcmVhbFRvU3RyaW5nIHgp
CgkJfCBSYXRpbyB4ID0+IGxhYiAoInJhdGlvIiwgcmF0aW9Ub1N0cmluZyB4KQoJCXwgU2l6ZSB7
aGVpZ2h0LCB3aWR0aH0gPT4KCQkgICAgIGxhYiAoInNpemUiLCByZWFsMlRvU3RyaW5nICh3aWR0
aCwgaGVpZ2h0KSkKCSBlbmQKICAgICAgCiAgICAgIGZ1biBsYXlvdXQge2dyYXBoID0gVCB7bm9k
ZXMsIC4uLn0sCgkJICB0aXRsZTogc3RyaW5nLAoJCSAgb3B0aW9ucywKCQkgIGVkZ2VPcHRpb25z
OiBFZGdlLnQgLT4gRWRnZU9wdGlvbi50IGxpc3QsCgkJICBub2RlT3B0aW9uczogTm9kZS50IC0+
IE5vZGVPcHRpb24udCBsaXN0fTogTGF5b3V0LnQgPQoJIGxldAoJICAgIHZhbCBjID0gQ291bnRl
ci5uZXcgMAoJICAgIHZhbCB7Z2V0ID0gbm9kZUlkLCBkZXN0cm95LCAuLi59ID0KCSAgICAgICBQ
cm9wZXJ0eS5kZXN0R2V0CgkgICAgICAgKE5vZGUucGxpc3QsCgkJUHJvcGVydHkuaW5pdEZ1bgoJ
CShmbiBfID0+IHNlcSBbc3RyICJuIiwgc3RyIChJbnQudG9TdHJpbmcgKENvdW50ZXIubmV4dCBj
KSldKSkKCSAgICB2YWwgZGlzcGxheU11bHRpcGxlRWRnZXMgPSB0cnVlCgkgICAgdmFsIGcgPQoJ
ICAgICAgIGFsaWduCgkgICAgICAgW3N0ciAoY29uY2F0IFsiZGlncmFwaCBcIiIsIHRpdGxlLCAi
XCIgeyJdKSwKCQlsYXlvdXRPcHRpb25zCgkJKEdyYXBoT3B0aW9uLkxhYmVsIHRpdGxlIDo6IG9w
dGlvbnMsCgkJIGZuIG9wdCA9PiBHcmFwaE9wdGlvbi50b1N0cmluZyAob3B0LCBMYXlvdXQudG9T
dHJpbmcgbyBub2RlSWQpLAoJCSAiOyIpLAoJCWFsaWduIChMaXN0Lm1hcAoJCSAgICAgICAoIW5v
ZGVzLCBmbiBuIGFzIE5vZGUuTm9kZSB7c3VjY2Vzc29ycywgLi4ufSA9PgoJCQlsZXQgdmFsIGlk
ID0gbm9kZUlkIG4KCQkJaW4gYWxpZ24KCQkJICAgW3NlcSBbaWQsCgkJCQkgc3RyICIgWyIsCgkJ
CQkgbGF5b3V0T3B0aW9ucwoJCQkJIChub2RlT3B0aW9ucyBuLCBOb2RlT3B0aW9uLnRvU3RyaW5n
LCAiLCIpLAoJCQkJIHN0ciAiXSJdLAoJCQkgICAgYWxpZ24gKExpc3QubWFwCgkJCQkgICAoIXN1
Y2Nlc3NvcnMsIGZuIGUgPT4KCQkJCSAgICBzZXEgW2lkLCBzdHIgIiAtPiAiLCBub2RlSWQgKEVk
Z2UudG8gZSksCgkJCQkJIHN0ciAiIFsiLAoJCQkJCSBsYXlvdXRPcHRpb25zIChlZGdlT3B0aW9u
cyBlLAoJCQkJCQkJRWRnZU9wdGlvbi50b1N0cmluZywKCQkJCQkJCSIsIiksCgkJCQkJIHN0ciAi
XSJdKSldCgkJCWVuZCkpLAoJCXN0ciAifSJdCgkgaW4gZGVzdHJveSAoKQoJICAgIDsgZwoJIGVu
ZAogICBlbmQKCigqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0qKQooKiAgICAgICAgICAgICAgICAgICBEZXB0aC1GaXJzdCBTZWFyY2ggICAg
ICAgICAgICAgICAgICAgKikKKCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSopCgpmdW4gZGZzTm9kZXMgKGcsIG5zLCB7c3RhcnROb2RlLCBm
aW5pc2hOb2RlLAoJCSAgICAgIGhhbmRsZVRyZWVFZGdlLCBoYW5kbGVOb25UcmVlRWRnZSwKCQkg
ICAgICBzdGFydFRyZWUsIGZpbmlzaFRyZWUsIGZpbmlzaERmc30pID0KICAgbGV0CiAgICAgIHZh
bCB7Z2V0ID0gaGFzQmVlblZpc2l0ZWQsIHNldCA9IHNldFZpc2l0ZWQsIGRlc3Ryb3ksIC4uLn0g
PQoJIFByb3BlcnR5LmRlc3RHZXRTZXQgKE5vZGUucGxpc3QsIFByb3BlcnR5LmluaXRDb25zdCBm
YWxzZSkKICAgICAgZnVuIHZpc2l0IG4gPQoJIChzdGFydE5vZGUgbgoJICA7IHNldFZpc2l0ZWQg
KG4sIHRydWUpCgkgIDsgTGlzdC5mb3JlYWNoIChOb2RlLnN1Y2Nlc3NvcnMgbiwgZm4gZSA9PgoJ
CQkgIGxldCB2YWwgbicgPSBFZGdlLnRvIGUKCQkJICBpbiBpZiBoYXNCZWVuVmlzaXRlZCBuJwoJ
CQkJdGhlbiBoYW5kbGVOb25UcmVlRWRnZSBlCgkJCSAgICAgZWxzZSAodmlzaXQgbic7IGhhbmRs
ZVRyZWVFZGdlIGUpCgkJCSAgZW5kKQoJICA7IGZpbmlzaE5vZGUgbikKICAgaW4gTGlzdC5mb3Jl
YWNoIChucywgZm4gbiA9PgoJCSAgICBpZiBoYXNCZWVuVmlzaXRlZCBuCgkJICAgICAgIHRoZW4g
KCkKCQkgICAgZWxzZSAoc3RhcnRUcmVlIG47IHZpc2l0IG47IGZpbmlzaFRyZWUgbikpCiAgICAg
IDsgZGVzdHJveSAoKQogICAgICA7IGZpbmlzaERmcyAoKQogICBlbmQKCmZ1biBkZnMgKGcsIHAp
ID0gZGZzTm9kZXMgKGcsIG5vZGVzIGcsIHApCgpmdW4gZGlzcGxheSB7Z3JhcGgsIGxheW91dE5v
ZGUsIGRpc3BsYXl9ID0KICAgZGZzIChncmFwaCwKCURmc1BhcmFtLnN0YXJ0Tm9kZQoJKGZuIG4g
PT4KCSBkaXNwbGF5IGxldCBvcGVuIExheW91dAoJCSBpbiBzZXEgW2xheW91dE5vZGUgbiwKCQkJ
IHN0ciAiICIsCgkJCSBsaXN0IChMaXN0LnJldk1hcCAoTm9kZS5zdWNjZXNzb3JzIG4sCgkJCQkJ
ICAgIGxheW91dE5vZGUgbyBFZGdlLnRvKSldCgkJIGVuZCkpCiAgIApmdW4gZm9yZWFjaERlc2Nl
bmRlbnQgKGcsIG4sIGYpID0KICAgZGZzTm9kZXMgKGcsIFtuXSwgRGZzUGFyYW0uZmluaXNoTm9k
ZSBmKQoKKCogZnVuIHJlbW92ZUJhY2tFZGdlcyBnID0KICogICAgbGV0CiAqICAgICAgIHZhbCBk
aXNjb3ZlclRpbWUgPSBDb3VudGVyLm5ldyAwCiAqICAgICAgIHZhbCB7Z2V0LCBkZXN0cm95LCAu
Li59ID0KICogCSBQcm9wZXJ0eS5uZXdEZXN0CiAqIAkgKE5vZGUucGxpc3QsIFByb3BlcnR5Lmlu
aXRGdW4gKGZuIF8gPT4ge3RpbWUgPSBDb3VudGVyLm5leHQgZGlzY292ZXJUaW1lLAogKiAJCQkJ
CQlhbGl2ZSA9IHJlZiB0cnVlfSkpCiAqICAgICAgIHZhbCBpZ25vcmUgPSBEZnNQYXJhbS5pZ25v
cmUKICogICAgaW4gZGZzCiAqICAgICAgIChnLCB7c3RhcnROb2RlID0gZm4gbiA9PiAoZ2V0IG47
ICgpKSwKICogCSAgIGZpbmlzaE5vZGUgPSBmbiBuID0+ICNhbGl2ZSAoZ2V0IG4pIDo9IGZhbHNl
LAogKiAJICAgaGFuZGxlTm9uVHJlZUVkZ2UgPQogKiAJICAgZm4gZSBhcyBFZGdlLkVkZ2Uge2Zy
b20sIHRvLCAuLi59ID0+CiAqIAkgICBsZXQgdmFsIHthbGl2ZSwgdGltZX0gPSBnZXQgdG8KICog
CSAgIGluIGlmICFhbGl2ZSBhbmRhbHNvIHRpbWUgPCAjdGltZSAoZ2V0IGZyb20pCiAqIAkJIHRo
ZW4gcmVtb3ZlRWRnZSAoZywgZSkKICogCSAgICAgIGVsc2UgKCkKICogCSAgIGVuZCwKICogCSAg
IGhhbmRsZVRyZWVFZGdlID0gaWdub3JlLAogKiAJICAgc3RhcnRUcmVlID0gaWdub3JlLAogKiAJ
ICAgZmluaXNoVHJlZSA9IGlnbm9yZSwKICogCSAgIGZpbmlzaERmcyA9IGlnbm9yZX0pCiAqICAg
IGVuZAogKikKCigqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0qKQooKiAgICAgICAgICAgICAgICAgICAgICAgICBUaW1lcyAgICAgICAgICAg
ICAgICAgICAgICAgICAgKikKKCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSopCgpmdW4gZGlzY292ZXJGaW5pc2hUaW1lcyBnID0KICAgbGV0
IHZhbCB0aW1lOiBpbnQgcmVmID0gcmVmIDAKICAgICAgdmFsIHtnZXQgPSBkaXNjb3Zlciwgc2V0
ID0gc2V0RGlzY292ZXIsIGRlc3Ryb3kgPSBkZXN0cm95RGlzY292ZXIsIC4uLn0gPQoJIFByb3Bl
cnR5LmRlc3RHZXRTZXRPbmNlIChOb2RlLnBsaXN0LAoJCQkJICBQcm9wZXJ0eS5pbml0UmFpc2Ug
KCJkaXNjb3ZlciIsIE5vZGUubGF5b3V0KSkKICAgICAgdmFsIHtnZXQgPSBmaW5pc2gsIHNldCA9
IHNldEZpbmlzaCwgZGVzdHJveSA9IGRlc3Ryb3lGaW5pc2gsIC4uLn0gPQoJIFByb3BlcnR5LmRl
c3RHZXRTZXRPbmNlIChOb2RlLnBsaXN0LAoJCQkJICBQcm9wZXJ0eS5pbml0UmFpc2UgKCJmaW5p
c2giLCBOb2RlLmxheW91dCkpCiAgIGluIHtkZXN0cm95ID0gZm4gKCkgPT4gKGRlc3Ryb3lEaXNj
b3ZlciAoKTsgZGVzdHJveUZpbmlzaCAoKSksCiAgICAgICBkaXNjb3ZlciA9IGRpc2NvdmVyLAog
ICAgICAgZmluaXNoID0gZmluaXNoLAogICAgICAgcGFyYW0gPSB7c3RhcnROb2RlID0gZm4gbiA9
PiAoSW50LmluYyB0aW1lOyBzZXREaXNjb3ZlciAobiwgIXRpbWUpKSwKCQlmaW5pc2hOb2RlID0g
Zm4gbiA9PiAoSW50LmluYyB0aW1lOyBzZXRGaW5pc2ggKG4sICF0aW1lKSksCgkJaGFuZGxlVHJl
ZUVkZ2UgPSBEZnNQYXJhbS5pZ25vcmUsCgkJaGFuZGxlTm9uVHJlZUVkZ2UgPSBEZnNQYXJhbS5p
Z25vcmUsCgkJc3RhcnRUcmVlID0gRGZzUGFyYW0uaWdub3JlLAoJCWZpbmlzaFRyZWUgPSBEZnNQ
YXJhbS5pZ25vcmUsCgkJZmluaXNoRGZzID0gRGZzUGFyYW0uaWdub3JlfX0KICAgZW5kCgooKi0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKikK
KCogICAgICAgICAgICAgICAgICAgICAgICBGb3JlYWNoICAgICAgICAgICAgICAgICAgICAgICAg
ICopCigqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0qKQoKZnVuIGZvcmVhY2hOb2RlIChnLCBmKSA9IExpc3QuZm9yZWFjaCAobm9kZXMgZywg
ZikKICAgCmZ1biBmb3JlYWNoRWRnZSAoZywgZWRnZSkgPQogICBmb3JlYWNoTm9kZSAoZywgZm4g
biBhcyBOb2RlLk5vZGUge3N1Y2Nlc3NvcnMsIC4uLn0gPT4KCQlMaXN0LmZvcmVhY2ggKCFzdWNj
ZXNzb3JzLCBmbiBlID0+IGVkZ2UgKG4sIGUpKSkKCigqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qKQooKiAgICAgICAgICAgICAgICAgICAg
ICAgICBSYW5kb20gICAgICAgICAgICAgICAgICAgICAgICAgKikKKCotLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSopCigqCmZ1biBtYXhOdW1F
ZGdlcyBuID0gbiAqIChuIC0gMSkKICAgCmZ1biByYW5kb20ge251bU5vZGVzLG51bUVkZ2VzfSA9
CiAgIGxldCB2YWwgbWF4ID0gbWF4TnVtRWRnZXMgbnVtTm9kZXMKICAgaW4gaWYgbnVtTm9kZXMg
PCAwIG9yZWxzZSBudW1FZGdlcyA8IDAgb3JlbHNlIG51bUVkZ2VzID4gbWF4CgkgdGhlbiBFcnJv
ci5lcnJvciAicmFuZG9tIgogICAgICBlbHNlIGxldCB2YWwgZyA9IG5ldyAoKQoJICAgICAgIHZh
bCBuZWVkZWQgPSByZWYgbnVtRWRnZXMKCSAgICAgICB2YWwgcmVtYWluaW5nID0gcmVmIG1heAoJ
ICAgICAgIGZ1biBtYXliZUFkZEVkZ2UgKG4sbicpID0KCQkgIChpZiBJbnQucmFuZG9tICgxLCAh
cmVtYWluaW5nKSA8PSAhbmVlZGVkCgkJICAgICAgdGhlbiAoYWRkRWRnZSAoZywgTm9kZS5mcm9t
SW50IG4sIE5vZGUuZnJvbUludCBuJykKCQkJIDsgSW50UmVmLmRlYyBuZWVkZWQpCgkJICAgZWxz
ZSAoKQoJCSAgICAgIDsgSW50UmVmLmRlYyByZW1haW5pbmcpCgkgICAgICAgdmFsIG1pbk5vZGUg
PSAwCgkgICAgICAgdmFsIG1heE5vZGUgPSBudW1Ob2RlcyAtIDEKCSAgICAgICBmdW4gZGlyZWN0
ZWQgbiA9CgkJICBJbnQuZm9yZWFjaCAoMCwgbWF4Tm9kZSwgZm4gbicgPT4KCQkJICAgICAgaWYg
biA9IG4nIHRoZW4gKCkgZWxzZSBtYXliZUFkZEVkZ2UgKG4sbicpKQoJICAgICAgIGZ1biB1bmRp
cmVjdGVkIG4gPQoJCSAgSW50LmZvcmVhY2ggKG4gKyAxLCBtYXhOb2RlLCBmbiBuJyA9PiBtYXli
ZUFkZEVkZ2UgKG4sbicpKQoJICAgICAgIHZhbCBhZGRFZGdlcyA9IGlmIGlzRGlyZWN0ZWQgdGhl
biBkaXJlY3RlZAoJCQkgICAgICBlbHNlIHVuZGlyZWN0ZWQKCSAgIGluIEludC5mb3JlYWNoICht
aW5Ob2RlLCBtYXhOb2RlLCBhZGRFZGdlcykKCSAgICAgIDsgZwoJICAgZW5kCiAgIGVuZAoqKQoo
Ki0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
KikKKCogICAgICAgICAgICAgICAgICAgICAgICAgQ3ljbGUgICAgICAgICAgICAgICAgICAgICAg
ICAgICopCigqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0qKQooKgpmdW4gY3ljbGVQYXJhbSBnID0KICAgbGV0IHZhbCB7Z2V0ID0gaXNBY3Rp
dmUsIHNldCA9IHNldEFjdGl2ZX0gPQogICAgICBub2RlSW5mbyAoZywgZm4gXyA9PiBmYWxzZSkK
ICAgICAgdmFsIGN5Y2xlID0gcmVmIGZhbHNlCiAgIGluIChjeWNsZSwge3N0YXJ0Tm9kZSA9IGZu
IG4gPT4gc2V0QWN0aXZlIChuLCB0cnVlKSwKCSAgICAgICBmaW5pc2hOb2RlID0gZm4gbiA9PiBz
ZXRBY3RpdmUgKG4sIGZhbHNlKSwKCSAgICAgICBoYW5kbGVOb25UcmVlRWRnZSA9CgkgICAgICAg
Zm4gKG4sIGUpID0+IGxldCB2YWwgbicgPSBFZGdlLm90aGVyTm9kZSAoZSxuKQoJCQkgICBpbiBp
ZiBpc0FjdGl2ZSBuJyB0aGVuIGN5Y2xlIDo9IHRydWUKCQkJICAgICAgZWxzZSAoKQoJCQkgICBl
bmQsCgkJCWhhbmRsZVRyZWVFZGdlID0gRGZzUGFyYW0uaWdub3JlLAoJCQlzdGFydFRyZWUgPSBE
ZnNQYXJhbS5pZ25vcmUsCgkJCWZpbmlzaFRyZWUgPSBEZnNQYXJhbS5pZ25vcmUsCgkJCWZpbmlz
aERmcyA9IERmc1BhcmFtLmlnbm9yZX0pCiAgIGVuZAoKZnVuIGlzQ3ljbGljIGcgPSBsZXQgdmFs
IChjeWNsZSwgcCkgPSBjeWNsZVBhcmFtIGcKCQkgaW4gZGZzIChnLCBwKTsgIWN5Y2xlCgkJIGVu
ZAoqKQoKKCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLSopCigqICAgICAgICAgICAgICAgICAgICBUb3BvbG9naWNhbCBTb3J0ICAgICAgICAg
ICAgICAgICAgICAqKQooKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tKikKCmV4Y2VwdGlvbiBUb3BvbG9naWNhbFNvcnQKCmZ1biB0b3BTb3J0
UGFyYW0gZyA9CiAgIGxldAogICAgICB2YWwge2dldCA9IGFtVmlzaXRpbmcsIHNldCA9IHNldFZp
c2l0aW5nLCBkZXN0cm95LCAuLi59ID0KCSBQcm9wZXJ0eS5kZXN0R2V0U2V0IChOb2RlLnBsaXN0
LAoJCQkgICAgIFByb3BlcnR5LmluaXRSYWlzZSAoInZpc2l0aW5nIiwgTm9kZS5sYXlvdXQpKQog
ICAgICB2YWwgbnMgPSByZWYgW10KICAgaW4gKG5zLCB7c3RhcnROb2RlID0gZm4gbiA9PiBhbVZp
c2l0aW5nIG4gOj0gdHJ1ZSwKCSAgICBmaW5pc2hOb2RlID0gZm4gbiA9PiAoYW1WaXNpdGluZyBu
IDo9IGZhbHNlOyBMaXN0LnB1c2ggKG5zLG4pKSwKCSAgICBoYW5kbGVOb25UcmVlRWRnZSA9Cgkg
ICAgZm4gRWRnZS5FZGdlIHtmcm9tLCB0bywgLi4ufSA9PiBpZiAhIChhbVZpc2l0aW5nIHRvKQoJ
CQkJCSAgICAgIHRoZW4gcmFpc2UgVG9wb2xvZ2ljYWxTb3J0CgkJCQkJICAgZWxzZSAoKSwKCSAg
ICBzdGFydFRyZWUgPSBEZnNQYXJhbS5pZ25vcmUsIGZpbmlzaFRyZWUgPSBEZnNQYXJhbS5pZ25v
cmUsCgkgICAgaGFuZGxlVHJlZUVkZ2UgPSBEZnNQYXJhbS5pZ25vcmUsCgkgICAgZmluaXNoRGZz
ID0gZGVzdHJveX0pCiAgIGVuZAoKZnVuIHRvcG9sb2dpY2FsU29ydCBnID0gbGV0IHZhbCAobnMs
IHApID0gdG9wU29ydFBhcmFtIGcKCQkJaW4gZGZzIChnLCBwKTsgIW5zCgkJCWVuZAoKKCotLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSopCigq
ICAgICAgICAgICAgICAgICAgICAgICBUcmFuc3Bvc2UgICAgICAgICAgICAgICAgICAgICAgICAq
KQooKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tKikKKCoKZnVuIHRyYW5zcG9zZVBhcmFtIGcgPQogICBsZXQgdmFsIGd0ID0gbmV3ICgpCiAg
ICAgIGZ1biBoYW5kbGVFZGdlIChuLCBlKSA9IGxldCB2YWwgbicgPSBFZGdlLm90aGVyTm9kZSAo
ZSxuKQoJCQkgICAgaW4gYWRkRWRnZSAoZ3Qsbicsbik7ICgpCgkJCSAgICBlbmQKICAgaW4gKGd0
LCB7aGFuZGxlVHJlZUVkZ2UgPSBoYW5kbGVFZGdlLAoJICAgIGhhbmRsZU5vblRyZWVFZGdlID0g
aGFuZGxlRWRnZSwKCSAgICBmaW5pc2hEZnMgPSBEZnNQYXJhbS5pZ25vcmUsCgkgICAgc3RhcnRO
b2RlID0gRGZzUGFyYW0uaWdub3JlLCBmaW5pc2hOb2RlID0gRGZzUGFyYW0uaWdub3JlLAoJICAg
IHN0YXJ0VHJlZSA9IERmc1BhcmFtLmlnbm9yZSwgZmluaXNoVHJlZSA9IERmc1BhcmFtLmlnbm9y
ZX0pCiAgIGVuZAoKZnVuIHRyYW5zcG9zZSBnID0gbGV0IHZhbCAoZ3QsIHApID0gdHJhbnNwb3Nl
UGFyYW0gZwoJCSAgaW4gZGZzIChnLCBwKTsgZ3QKCQkgIGVuZAogICopIAooKi0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKikKKCogICAgICAg
ICAgICAgU3Ryb25nbHkgQ29ubmVjdGVkIENvbXBvbmVudHMgICAgICAgICAgICAgICopCigqLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qKQog
ICAKKCogZnJvbSBDb3JtZW4sIExlaXNlcnNvbiwgYW5kIFJpdmVzdCAyMy41ICopCigqCmZ1biBz
Y2NDTFIgZyA9CiAgIGxldAogICAgICB2YWwgKGd0LCBwKSA9IHRyYW5zcG9zZVBhcmFtIGcKICAg
ICAgdmFsIG5zID0gcmVmIFtdCiAgICAgIHZhbCBwJyA9IFAuZmluaXNoTm9kZSAoZm4gbiA9PiBM
aXN0LnB1c2ggKG5zLG4pKQogICAgICB2YWwgY29tcG9uZW50cyA9IHJlZiBbXQogICAgICB2YWwg
Y29tcG9uZW50ID0gcmVmIFtdCiAgICAgIGZ1biBzdGFydE5vZGUgbiA9IExpc3QucHVzaCAoY29t
cG9uZW50LG4pCiAgICAgIGZ1biBzdGFydFRyZWUgXyA9IGNvbXBvbmVudCA6PSBbXQogICAgICBm
dW4gZmluaXNoVHJlZSBfID0gTGlzdC5wdXNoIChjb21wb25lbnRzLCAhY29tcG9uZW50KQogICAg
ICB2YWwgcHQgPSB7c3RhcnROb2RlID0gc3RhcnROb2RlLAoJCSAgIHN0YXJ0VHJlZSA9IHN0YXJ0
VHJlZSwKCQkgICBmaW5pc2hUcmVlID0gZmluaXNoVHJlZSwKCQkgICBmaW5pc2hOb2RlID0gRGZz
UGFyYW0uaWdub3JlLAoJCSAgIGZpbmlzaERmcyA9IERmc1BhcmFtLmlnbm9yZSwKCQkgICBoYW5k
bGVUcmVlRWRnZSA9IERmc1BhcmFtLmlnbm9yZSwKCQkgICBoYW5kbGVOb25UcmVlRWRnZSA9IERm
c1BhcmFtLmlnbm9yZX0KICAgaW4gZGZzIChnLCBQLmNvbWJpbmUgKHAsIHAnKSkKICAgICAgOyBk
ZnNOb2RlcyAoZ3QsICFucywgcHQpCiAgICAgIDsgIWNvbXBvbmVudHMKICAgZW5kCiopCgooKiBm
cm9tIEFobywgSG9wY3JvZnQsIFVsbG1hbiBzZWN0aW9uIDUuNSAqKQoKZnVuIHN0cm9uZ2x5Q29u
bmVjdGVkQ29tcG9uZW50cyBnID0KICAgbGV0CiAgICAgIHZhbCB7Z2V0ID0gZGlzY292ZXI6IE5v
ZGUudCAtPiBpbnQsIHNldCA9IHNldERpc2NvdmVyLAoJICAgZGVzdHJveSA9IGRlc3Ryb3lEaXNj
b3ZlciwgLi4ufSA9CgkgUHJvcGVydHkuZGVzdEdldFNldE9uY2UgKE5vZGUucGxpc3QsCgkJCQkg
UHJvcGVydHkuaW5pdFJhaXNlICgiZGlzY292ZXIiLCBOb2RlLmxheW91dCkpCiAgICAgIHZhbCB7
Z2V0ID0gbG93OiBOb2RlLnQgLT4gaW50IHJlZiwgZGVzdHJveSA9IGRlc3Ryb3lMb3csIC4uLn0g
PQoJIFByb3BlcnR5LmRlc3RHZXQgKE5vZGUucGxpc3QsIFByb3BlcnR5LmluaXRGdW4gKGZuIF8g
PT4gcmVmIH4xKSkKICAgICAgdmFsIHtnZXQgPSBpc09uU3RhY2s6IE5vZGUudCAtPiBib29sLCBz
ZXQgPSBzZXRPblN0YWNrLAoJICAgZGVzdHJveSA9IGRlc3Ryb3lTdGFjaywgLi4ufSA9CgkgUHJv
cGVydHkuZGVzdEdldFNldCAoTm9kZS5wbGlzdCwKCQkJICAgICBQcm9wZXJ0eS5pbml0UmFpc2Ug
KCJpc09uU3RhY2siLCBOb2RlLmxheW91dCkpCiAgICAgIHZhbCBzdGFjayA9IHJlZiBbXQogICAg
ICB2YWwgY29tcG9uZW50cyA9IHJlZiBbXQogICAgICB2YWwgdGltZSA9IHJlZiAwCiAgICAgIGZ1
biBwb3AgKCkgPSBsZXQgdmFsIG4gPSBMaXN0LnBvcCBzdGFjawoJCSAgaW4gc2V0T25TdGFjayAo
biwgZmFsc2UpOyBuCgkJICBlbmQKICAgICAgZnVuIHBvcFRvIG4gPSBsZXQgZnVuIHBvcFRvICgp
ID0gbGV0IHZhbCBuJyA9IHBvcCAoKQoJCQkJICAgICAgaW4gaWYgTm9kZS5lcXVhbHMgKG4sbicp
IHRoZW4gW25dCgkJCQkJIGVsc2UgbicgOjogKHBvcFRvICgpKQoJCQkJICAgICAgZW5kCgkJICAg
IGluIHBvcFRvICgpCgkJICAgIGVuZAogICAgICBmdW4gc3RhcnROb2RlIG4gPSAoSW50LmluYyB0
aW1lCgkJCSA7IHNldERpc2NvdmVyIChuLCAhdGltZSkKCQkJIDsgbG93IG4gOj0gIXRpbWUKCQkJ
IDsgc2V0T25TdGFjayAobiwgdHJ1ZSkKCQkJIDsgTGlzdC5wdXNoIChzdGFjaywgbikpCiAgICAg
IGZ1biBmaW5pc2hOb2RlIG4gPSBpZiBkaXNjb3ZlciBuID0gISAobG93IG4pCgkJCSAgICAgdGhl
biBMaXN0LnB1c2ggKGNvbXBvbmVudHMsIHBvcFRvIG4pCgkJCSBlbHNlICgpCiAgICAgIGZ1biB1
cGRhdGVMb3cgKEVkZ2UuRWRnZSB7ZnJvbSwgdG8sIC4uLn0pID0KCSBsZXQgdmFsIGx0byA9ICEg
KGxvdyB0bykKCSAgICB2YWwgbGZyb20gPSBsb3cgZnJvbQoJIGluIGlmIGx0byA8ICFsZnJvbQoJ
ICAgICAgIHRoZW4gbGZyb20gOj0gbHRvCgkgICAgZWxzZSAoKQoJIGVuZAogICAgICB2YWwgaGFu
ZGxlVHJlZUVkZ2UgPSB1cGRhdGVMb3cKICAgICAgZnVuIGhhbmRsZU5vblRyZWVFZGdlIGUgPSAK
CSBpZiBpc09uU3RhY2sgKEVkZ2UudG8gZSkKCSAgICB0aGVuIHVwZGF0ZUxvdyBlCgkgZWxzZSAo
KQogICAgICB2YWwgcCA9IHtzdGFydE5vZGUgPSBzdGFydE5vZGUsIGZpbmlzaE5vZGUgPSBmaW5p
c2hOb2RlLAoJICAgICAgIGhhbmRsZVRyZWVFZGdlID0gaGFuZGxlVHJlZUVkZ2UsCgkgICAgICAg
aGFuZGxlTm9uVHJlZUVkZ2UgPSBoYW5kbGVOb25UcmVlRWRnZSwKCSAgICAgICBzdGFydFRyZWUg
PSBEZnNQYXJhbS5pZ25vcmUsIGZpbmlzaFRyZWUgPSBEZnNQYXJhbS5pZ25vcmUsCgkgICAgICAg
ZmluaXNoRGZzID0gRGZzUGFyYW0uaWdub3JlfQogICBpbiBkZnMgKGcsIHApCiAgICAgIDsgZGVz
dHJveUxvdyAoKQogICAgICA7IGRlc3Ryb3lTdGFjayAoKQogICAgICA7IGRlc3Ryb3lEaXNjb3Zl
ciAoKQogICAgICA7ICFjb21wb25lbnRzCiAgIGVuZAoKKCogVGhpcyBpcyBhbiBpbXBsZW1lbnRh
dGlvbiBvZiB0aGUgTGVuZ2F1ZXIvVGFyamFuIGRvbWluYXRvciBhbGdvcml0aG0sIGFzCiAqIGRl
c2NyaWJlZCBvbiBwLiAxODUtMTkxIG9mIE11Y2huaWNrJ3MgIkFkdmFuY2VkIENvbXBpbGVyIERl
c2lnbiBhbmQKICogSW1wbGVtZW50YXRpb24iCiAqKQpzdHJ1Y3R1cmUgTm9kZUluZm8gPQogICBz
dHJ1Y3QKICAgICAgdHlwZSB0ID0ge2FuY2VzdG9yOiBOb2RlLnQgcmVmLAoJCWJ1Y2tldDogTm9k
ZS50IGxpc3QgcmVmLAoJCWNoaWxkOiBOb2RlLnQgcmVmLAoJCWRmbjogaW50IHJlZiwgKCogZGVw
dGggZmlyc3QgbnVtYmVyICopCgkJaWRvbTogTm9kZS50IHJlZiwKCQlsYWJlbDogTm9kZS50IHJl
ZiwKCQlwYXJlbnQ6IE5vZGUudCByZWYsCgkJcHJlZHM6IE5vZGUudCBsaXN0IHJlZiwKCQlzZG5v
OiBpbnQgcmVmLCAoKiBzZW1pZG9taW5hdG9yIGRmbiAqKQoJCXNpemU6IGludCByZWZ9CiAgIGVu
ZAoKZnVuIHZhbGlkRG9taW5hdG9ycyB7Z3JhcGg6IHQsCgkJICAgICByb290OiBOb2RlLnQsCgkJ
ICAgICBpZG9tOiBOb2RlLnQgLT4gTm9kZS50fTogYm9vbCA9CiAgICgqIENoZWNrIGZvciBlYWNo
IGVkZ2UgdiAtLT4gdyB0aGF0IGlkb20gdyBkb21pbmF0ZXMgdi4KICAgICogRklYTUU6IEl0IHNo
b3VsZCBmaXJzdCBjaGVjayB0aGF0IGlkb20gZGVzY3JpYmVzIGEgdHJlZSByb290ZWQgYXQgcm9v
dC4KICAgICopCiAgIER5bmFtaWNXaW5kLndpdGhFc2NhcGUKICAgKGZuIGVzY2FwZSA9PgogICAg
bGV0CiAgICAgICBmdW4gZG9taW5hdGVzIChhOiBOb2RlLnQsIGI6IE5vZGUudCk6IGJvb2wgPQoJ
ICBsZXQKCSAgICAgZnVuIGxvb3AgYiA9CgkJTm9kZS5lcXVhbHMgKGEsIGIpCgkJb3JlbHNlIChu
b3QgKE5vZGUuZXF1YWxzIChiLCByb290KSkKCQkJYW5kYWxzbyBsb29wIChpZG9tIGIpKQoJICBp
biBsb29wIGIKCSAgZW5kCiAgICAgICB2YWwgXyA9CgkgIGZvcmVhY2hFZGdlIChncmFwaCwgZm4g
KF8sIEVkZ2UuRWRnZSB7ZnJvbSwgdG8sIC4uLn0pID0+CgkJICAgICAgIGlmIGRvbWluYXRlcyAo
aWRvbSB0bywgZnJvbSkKCQkJICB0aGVuICgpCgkJICAgICAgIGVsc2UgZXNjYXBlIGZhbHNlKQog
ICAgaW4gdHJ1ZQogICAgZW5kKQoKZnVuIGRvbWluYXRvcnMge2dyYXBoLCByb290fSA9CiAgIGxl
dAogICAgICB2YWwgbjAgPSBOb2RlLm5ldyAoKQogICAgICBmdW4gbmV3Tm9kZSAobjogTm9kZS50
KTogTm9kZUluZm8udCA9Cgkge2FuY2VzdG9yID0gcmVmIG4wLAoJICBidWNrZXQgPSByZWYgW10s
CgkgIGNoaWxkID0gcmVmIG4wLAoJICBkZm4gPSByZWYgfjEsCgkgIGlkb20gPSByZWYgbjAsCgkg
IGxhYmVsID0gcmVmIG4sCgkgIHBhcmVudCA9IHJlZiBuMCwKCSAgcHJlZHMgPSByZWYgW10sCgkg
IHNkbm8gPSByZWYgfjEsCgkgIHNpemUgPSByZWYgMX0KICAgICAgdmFsIHtnZXQgPSBub2RlSW5m
bzogTm9kZS50IC0+IE5vZGVJbmZvLnR9ID0KCSBQcm9wZXJ0eS5nZXQgKE5vZGUucGxpc3QsIFBy
b3BlcnR5LmluaXRGdW4gbmV3Tm9kZSkKICAgICAgbG9jYWwKCSBmdW4gJ2EgbWFrZSAoc2VsOiBO
b2RlSW5mby50IC0+ICdhIHJlZikgPQoJICAgIChzZWwgbyBub2RlSW5mbywgISBvIHNlbCBvIG5v
ZGVJbmZvKQogICAgICBpbgoJIHZhbCAoYW5jZXN0b3InLCBhbmNlc3RvcikgPSBtYWtlICNhbmNl
c3RvcgoJIHZhbCAoYnVja2V0JywgYnVja2V0KSA9IG1ha2UgI2J1Y2tldAoJIHZhbCAoY2hpbGQn
LCBjaGlsZCkgPSBtYWtlICNjaGlsZAoJIHZhbCAoZGZuJywgZGZuKSA9IG1ha2UgI2RmbgoJIHZh
bCAoaWRvbScsIGlkb20pID0gbWFrZSAjaWRvbQoJIHZhbCAobGFiZWwnLCBsYWJlbCkgPSBtYWtl
ICNsYWJlbAoJIHZhbCAocGFyZW50JywgcGFyZW50KSA9IG1ha2UgI3BhcmVudAoJIHZhbCAocHJl
ZHMnLCBwcmVkcykgPSBtYWtlICNwcmVkcwoJIHZhbCAoc2RubycsIHNkbm8pID0gbWFrZSAjc2Ru
bwoJIHZhbCAoc2l6ZScsIHNpemUpID0gbWFrZSAjc2l6ZQogICAgICBlbmQKICAgICAgdmFsIF8g
PSBzaXplJyBuMCA6PSAwCiAgICAgICgqIG5vZGVzIGlzIGFuIGFycmF5IG9mIG5vZGVzIGluZGV4
ZWQgYnkgZGZzIG51bWJlci4gKikKICAgICAgdmFsIG51bU5vZGVzID0gTGlzdC5sZW5ndGggKG5v
ZGVzIGdyYXBoKQogICAgICB2YWwgbm9kZXMgPSBBcnJheS5uZXcgKG51bU5vZGVzLCBuMCkKICAg
ICAgZnVuIG5kZnMgaSA9IEFycmF5LnN1YiAobm9kZXMsIGkpCiAgICAgIHZhbCBkZm5Db3VudGVy
ID0gcmVmIDAKICAgICAgZnVuIGRmcyAodjogTm9kZS50KTogdW5pdCA9CgkgbGV0CgkgICAgdmFs
IGkgPSAhZGZuQ291bnRlcgoJICAgIHZhbCBfID0gSW50LmluYyBkZm5Db3VudGVyCgkgICAgdmFs
IF8gPSBkZm4nIHYgOj0gaQoJICAgIHZhbCBfID0gc2RubycgdiA6PSBpCgkgICAgdmFsIF8gPSBB
cnJheS51cGRhdGUgKG5vZGVzLCBpLCB2KQoJICAgIHZhbCBfID0KCSAgICAgICBMaXN0LmZvcmVh
Y2gKCSAgICAgICAoTm9kZS5zdWNjZXNzb3JzIHYsIGZuIEVkZ2UuRWRnZSB7dG8gPSB3LCAuLi59
ID0+CgkJbGV0CgkJICAgdmFsIF8gPSBMaXN0LnB1c2ggKHByZWRzJyB3LCB2KQoJCWluIGlmIHNk
bm8gdyA9IH4xCgkJICAgICAgdGhlbiAocGFyZW50JyB3IDo9IHYKCQkJICAgIDsgZGZzIHcpCgkJ
ICAgZWxzZSAoKQoJCWVuZCkKCSBpbiAoKQoJIGVuZAogICAgICB2YWwgXyA9IGRmcyByb290CiAg
ICAgIHZhbCBfID0KCSBpZiAhZGZuQ291bnRlciA9IG51bU5vZGVzCgkgICAgdGhlbiAoKQoJIGVs
c2UgRXJyb3IuYnVnICJkb21pbmF0b3JzOiBncmFwaCBpcyBub3QgY29ubmVjdGVkIgogICAgICAo
KiBjb21wcmVzcyBhbmNlc3RvciBwYXRoIHRvIG5vZGUgdiB0byB0aGUgbm9kZSB3aG9zZSBsYWJl
bCBoYXMgdGhlCiAgICAgICAqIG1heGltYWwgKG1pbmltYWw/KSBzZW1pZG9taW5hdG9yIG51bWJl
ci4gCiAgICAgICAqKQogICAgICBmdW4gY29tcHJlc3MgKHY6IE5vZGUudCk6IHVuaXQgPQoJIGlm
IE5vZGUuZXF1YWxzIChuMCwgYW5jZXN0b3IgKGFuY2VzdG9yIHYpKQoJICAgIHRoZW4gKCkKCSBl
bHNlIGxldAoJCSB2YWwgXyA9IGNvbXByZXNzIChhbmNlc3RvciB2KQoJCSB2YWwgXyA9CgkJICAg
IGlmIHNkbm8gKGxhYmVsIChhbmNlc3RvciB2KSkgPCBzZG5vIChsYWJlbCB2KQoJCSAgICAgICB0
aGVuIGxhYmVsJyB2IDo9IGxhYmVsIChhbmNlc3RvciB2KQoJCSAgICBlbHNlICgpCgkJIHZhbCBf
ID0gYW5jZXN0b3InIHYgOj0gYW5jZXN0b3IgKGFuY2VzdG9yIHYpCgkgICAgICBpbiAoKQoJICAg
ICAgZW5kCiAgICAgIGZ1biBldmFsICh2OiBOb2RlLnQpOiBOb2RlLnQgPQoJICgqIERldGVybWlu
ZSB0aGUgYW5jZXN0b3Igb2YgdiB3aG9zZSBzZW1pZG9taW5hdG9yIGhhcyB0aGUgbWluaW1hbAoJ
ICAqIGRlcHRoLWZpcnN0IG51bWJlci4KCSAgKikKCSBpZiBOb2RlLmVxdWFscyAoYW5jZXN0b3Ig
diwgbjApCgkgICAgdGhlbiBsYWJlbCB2CgkgZWxzZSBsZXQKCQkgdmFsIF8gPSBjb21wcmVzcyB2
CgkgICAgICBpbgoJCSBpZiBzZG5vIChsYWJlbCAoYW5jZXN0b3IgdikpID49IHNkbm8gKGxhYmVs
IHYpCgkJICAgIHRoZW4gbGFiZWwgdgoJCSBlbHNlIGxhYmVsIChhbmNlc3RvciB2KQoJICAgICAg
ZW5kCiAgICAgIGZ1biBsaW5rICh2OiBOb2RlLnQsIHc6IE5vZGUudCk6IHVuaXQgPQoJIGxldAoJ
ICAgIGZ1biBsb29wIHMgPQoJICAgICAgIGlmIHNkbm8gKGxhYmVsIHcpIDwgc2RubyAobGFiZWwg
KGNoaWxkIHMpKQoJCSAgdGhlbgoJCSAgICAgaWYgc2l6ZSBzICsgc2l6ZSAoY2hpbGQgKGNoaWxk
IHMpKSA+PSAyICogc2l6ZSAoY2hpbGQgcykKCQkJdGhlbiAoYW5jZXN0b3InIChjaGlsZCBzKSA6
PSBzCgkJCSAgICAgIDsgY2hpbGQnIHMgOj0gY2hpbGQgKGNoaWxkIHMpCgkJCSAgICAgIDsgbG9v
cCBzKQoJCSAgICAgZWxzZSAoc2l6ZScgKGNoaWxkIHMpIDo9IHNpemUgcwoJCQkgICA7IGFuY2Vz
dG9yJyBzIDo9IGNoaWxkIHMKCQkJICAgOyBsb29wIChjaGlsZCBzKSkKCSAgICAgICBlbHNlIHMK
CSAgICB2YWwgcyA9IGxvb3AgdwoJICAgIHZhbCBfID0gbGFiZWwnIHMgOj0gbGFiZWwgdwoJICAg
IHZhbCBfID0gc2l6ZScgdiA6PSBzaXplIHYgKyBzaXplIHcKCSAgICB2YWwgcyA9CgkgICAgICAg
aWYgc2l6ZSB2IDwgMiAqIHNpemUgdwoJCSAgdGhlbgoJCSAgICAgbGV0CgkJCXZhbCB0bXAgPSBj
aGlsZCB2CgkJCXZhbCBfID0gY2hpbGQnIHYgOj0gcwoJCSAgICAgaW4gdG1wCgkJICAgICBlbmQK
CSAgICAgICBlbHNlIHMKCSAgICBmdW4gbG9vcCBzID0KCSAgICAgICBpZiBOb2RlLmVxdWFscyAo
cywgbjApCgkJICB0aGVuICgpCgkgICAgICAgZWxzZSAoYW5jZXN0b3InIHMgOj0gdgoJCSAgICAg
OyBsb29wIChjaGlsZCBzKSkKCSAgICB2YWwgXyA9IGxvb3AgcwoJIGluICgpCgkgZW5kCiAgICAg
IHZhbCBfID0KCSBJbnQuZm9yRG93bgoJICgxLCBudW1Ob2RlcywgZm4gaSA9PgoJICBsZXQKCSAg
ICAgKCogQ29tcHV0ZSBpbml0aWFsIHZhbHVlcyBmb3Igc2VtaWRvbWluYXRvcnMgYW5kIHN0b3Jl
IG5vZGVzIHdpdGgKCSAgICAgICogdGhlIHNhbWUgc2VtaWRvbWluYXRvciBpbiB0aGUgc2FtZSBi
dWNrZXQuCgkgICAgICAqKQoJICAgICB2YWwgdyA9IG5kZnMgaQoJICAgICB2YWwgbWluID0gTGlz
dC5mb2xkIChwcmVkcyB3LCBzZG5vIHcsIGZuIChuLCBtaW4pID0+CgkJCQkgIEludC5taW4gKG1p
biwgc2RubyAoZXZhbCBuKSkpCgkgICAgIHZhbCBfID0gc2RubycgdyA6PSBtaW4KCSAgICAgdmFs
IF8gPSBMaXN0LnB1c2ggKGJ1Y2tldCcgKG5kZnMgbWluKSwgdykKCSAgICAgdmFsIF8gPSBsaW5r
IChwYXJlbnQgdywgdykKCSAgICAgKCogQ29tcHV0ZSBpbW1lZGlhdGUgZG9taW5hdG9ycyBmb3Ig
bm9kZXMgaW4gdGhlIGJ1Y2tldCBvZiB3J3MKCSAgICAgICogcGFyZW50LgoJICAgICAgKikKCSAg
ICAgdmFsIF8gPQoJCUxpc3QuZm9yZWFjaAoJCShidWNrZXQgKHBhcmVudCB3KSwgZm4gdiA9PgoJ
CSBsZXQKCQkgICAgdmFsIHUgPSBldmFsIHYKCQkgaW4KCQkgICAgaWRvbScgdiA6PSAoaWYgc2Ru
byB1IDwgc2RubyB2CgkJCQkgICB0aGVuIHUKCQkJCWVsc2UgcGFyZW50IHcpCgkJIGVuZCkKCSAg
ICAgdmFsIF8gPSBidWNrZXQnIChwYXJlbnQgdykgOj0gW10KCSAgaW4gKCkKCSAgZW5kKQogICAg
ICAoKiBBZGp1c3QgaW1tZWRpYXRlIGRvbWluYXRvcnMgb2Ygbm9kZXMgd2hvc2UgY3VycmVudCB2
ZXJzaW9uIG9mIHRoZQogICAgICAgKiBpbW1lZGlhdGUgZG9taW5hdG9yIGRpZmZlcnMgZnJvbSB0
aGUgbm9kZSB3aXRoIHRoZSBkZXB0aC1maXJzdCBudW1iZXIKICAgICAgICogb2YgdGhlIG5vZGUn
cyBzZW1pZG9taW5hdG9yLgogICAgICAgKikKICAgICAgdmFsIF8gPQoJIEludC5mb3IKCSAoMSwg
bnVtTm9kZXMsIGZuIGkgPT4KCSAgbGV0CgkgICAgIHZhbCB3ID0gbmRmcyBpCgkgIGluCgkgICAg
IGlmIE5vZGUuZXF1YWxzIChpZG9tIHcsIG5kZnMgKHNkbm8gdykpCgkJdGhlbiAoKQoJICAgICBl
bHNlIGlkb20nIHcgOj0gaWRvbSAoaWRvbSB3KQoJICBlbmQpCiAgICAgIHZhbCBfID0gaWRvbScg
cm9vdCA6PSByb290CiAgICAgIHZhbCBfID0gQXNzZXJ0LmFzc2VydCAoImRvbWluYXRvcnMiLCBm
biAoKSA9PgoJCQkgICAgIHZhbGlkRG9taW5hdG9ycyB7Z3JhcGggPSBncmFwaCwKCQkJCQkgICAg
ICByb290ID0gcm9vdCwKCQkJCQkgICAgICBpZG9tID0gaWRvbX0pCiAgIGluIHtpZG9tID0gaWRv
bX0KICAgZW5kCgplbmQKKCogc3RvcCBvZiBsaWIvbWx0b24vYmFzaWMvZGlyZWN0ZWQtZ3JhcGgu
c21sICopCigqIHN0YXJ0IG9mIGxpYi9tbHRvbi9iYXNpYy9yZWdleHAuc2lnICopCnR5cGUgaW50
ID0gSW50LnQKICAgCnNpZ25hdHVyZSBSRUdFWFBfU1RSVUNUUyA9IAogICBzaWcKICAgZW5kCgpz
aWduYXR1cmUgUkVHRVhQID0gCiAgIHNpZwogICAgICBpbmNsdWRlIFJFR0VYUF9TVFJVQ1RTCgog
ICAgICBzdHJ1Y3R1cmUgU2F2ZToKCSBzaWcKCSAgICB0eXBlIHQKCgkgICAgdmFsIG5ldzogdW5p
dCAtPiB0CgkgZW5kCgogICAgICBzdHJ1Y3R1cmUgTWF0Y2g6Cgkgc2lnCgkgICAgdHlwZSB0CgoJ
ICAgIHZhbCBhbGw6IHQgLT4gU3Vic3RyaW5nLnQKCSAgICB2YWwgZXhpc3RzOiB0ICogU2F2ZS50
IC0+IGJvb2wKCSAgICB2YWwgZnVuczogdCAtPiB7ZXhpc3RzOiBTYXZlLnQgLT4gYm9vbCwKCQkJ
ICAgIGxvb2t1cDogU2F2ZS50IC0+IFN1YnN0cmluZy50LAoJCQkgICAgcGVlazogU2F2ZS50IC0+
IFN1YnN0cmluZy50IG9wdGlvbn0KCSAgICB2YWwgbGVuZ3RoOiB0IC0+IGludAoJICAgIHZhbCBs
b29rdXA6IHQgKiBTYXZlLnQgLT4gU3Vic3RyaW5nLnQKCSAgICB2YWwgbG9va3VwU3RyaW5nOiB0
ICogU2F2ZS50IC0+IFN0cmluZy50CgkgICAgdmFsIHBlZWs6IHQgKiBTYXZlLnQgLT4gU3Vic3Ry
aW5nLnQgb3B0aW9uCgkgICAgdmFsIHBlZWtTdHJpbmc6IHQgKiBTYXZlLnQgLT4gU3RyaW5nLnQg
b3B0aW9uCgkgICAgdmFsIHN0cmluZ0Z1bnM6IHQgLT4ge2V4aXN0czogU2F2ZS50IC0+IGJvb2ws
CgkJCQkgIGxvb2t1cDogU2F2ZS50IC0+IFN0cmluZy50LAoJCQkJICBwZWVrOiBTYXZlLnQgLT4g
U3RyaW5nLnQgb3B0aW9ufQoJIGVuZAoKICAgICAgc3RydWN0dXJlIENvbXBpbGVkOgoJIHNpZwoJ
ICAgIHR5cGUgdAoJICAgICAgIAoJICAgICgqIEZpbmQgdGhlIGZpcnN0IHN1YnN0cmluZyBvZiBz
IHN0YXJ0aW5nIGF0IG9yIGFmdGVyIGluZGV4IGkgdGhhdAoJICAgICAqIG1hdGNoZXMgci4gIFJl
dHVybiB0aGUgZmlyc3QgY2hhcmFjdGVyIGFuZCB0aGUgY2hhcmFjdGVyIGp1c3QKCSAgICAgKiBw
YXN0IHRoZSBlbmQgb2YgdGhlIHN1YnN0cmluZy4KCSAgICAgKikKCSAgICB2YWwgZmluZFNob3J0
OiB0ICogc3RyaW5nICogaW50IC0+IE1hdGNoLnQgb3B0aW9uCgkgICAgdmFsIGZpbmRMb25nOiB0
ICogc3RyaW5nICogaW50IC0+IE1hdGNoLnQgb3B0aW9uCgkgICAgdmFsIGxheW91dDogdCAtPiBM
YXlvdXQudAoJICAgIHZhbCBsYXlvdXREb3Q6IHQgLT4gTGF5b3V0LnQKCSAgICB2YWwgbGF5b3V0
RG90VG9GaWxlOiB0ICogRmlsZS50IC0+IHVuaXQKCSAgICAoKiBtYXRjaCAociwgcywgaSkKCSAg
ICAgKiBSZXR1cm4gdGhlIChzaG9ydGVzdCBvciBsb25nZXN0KSBzdWJzdHJpbmcgb2YgcyBzdGFy
dGluZyBhdCBpbmRleAoJICAgICAqIGkgdGhhdCBtYXRjaGVzIHIuIAoJICAgICAqIFRoZSBzdWJz
dHJpbmcgaXMgcmVwcmVzZW50ZWQgYnkgdGhlIGluZGV4IG9mIHRoZSBjaGFyYWN0ZXIganVzdAoJ
ICAgICAqIHBhc3QgaXRzIGVuZC4KCSAgICAgKiBSZXR1cm4gTk9ORSBpZiB0aGVyZSBpcyBOTyBt
YXRjaC4KCSAgICAgKiBBbGwgb2YgdGhlIHNhdmVzIGluIHRoZSBtYXRjaCB3aWxsIGJlIHNldC4K
CSAgICAgKikKCSAgICB2YWwgbWF0Y2hBbGw6IHQgKiBzdHJpbmcgLT4gTWF0Y2gudCBvcHRpb24K
CSAgICB2YWwgbWF0Y2hMb25nOiB0ICogc3RyaW5nICogaW50IC0+IE1hdGNoLnQgb3B0aW9uCgkg
ICAgdmFsIG1hdGNoU2hvcnQ6IHQgKiBzdHJpbmcgKiBpbnQgLT4gTWF0Y2gudCBvcHRpb24KCSAg
ICB2YWwgbWF0Y2hlc0FsbDogdCAqIHN0cmluZyAtPiBib29sCgkgZW5kCgogICAgICB0eXBlIHQK
CiAgICAgIHZhbCBhbmNob3JTdGFydDogdAogICAgICB2YWwgYW55OiB0ICgqIGFyYml0cmFyeSBj
aGFyYWN0ZXIgKikKICAgICAgdmFsIGFueXM6IHQgKCogYXJiaXRyYXJ5IG51bWJlciBvZiBjaGFy
YWN0ZXJzICopCiAgICAgIHZhbCBhc2NpaTogdCAoKiBhcmJpdHJhcnkgYXNjaWkgY2hhcmFjdGVy
ICopCiAgICAgIHZhbCBhc2NpaXM6IHQgKCogYXJiaXRyYXJ5IGFzY2lpIGNoYXJhY3RlcnMgKikK
ICAgICAgdmFsIGNoYXI6IGNoYXIgLT4gdAogICAgICB2YWwgY29tcGlsZURGQTogdCAtPiBDb21w
aWxlZC50CiAgICAgIHZhbCBjb21waWxlTkZBOiB0IC0+IENvbXBpbGVkLnQKICAgICAgdmFsIGRp
Z2l0OiB0CiAgICAgIHZhbCBkaWdpdHM6IHQKICAgICAgdmFsIGlzQ2hhcjogKGNoYXIgLT4gYm9v
bCkgLT4gdAogICAgICB2YWwgaXNOb3RDaGFyOiAoY2hhciAtPiBib29sKSAtPiB0CiAgICAgIHZh
bCBub25EaWdpdDogdAogICAgICB2YWwgbm90Q2hhcjogY2hhciAtPiB0CiAgICAgIHZhbCBub3RP
bmVPZjogc3RyaW5nIC0+IHQKICAgICAgdmFsIG51bGw6IHQgICgqIGVtcHR5IHN0cmluZyAqKQog
ICAgICB2YWwgb25lT2Y6IHN0cmluZyAtPiB0CiAgICAgIHZhbCBvbmVPck1vcmU6IHQgLT4gdAog
ICAgICB2YWwgb3B0aW9uYWw6IHQgLT4gdAogICAgICB2YWwgb3I6IHQgbGlzdCAtPiB0CiAgICAg
IHZhbCBzYXZlOiB0ICogU2F2ZS50IC0+IHQKICAgICAgdmFsIHNlcTogdCBsaXN0IC0+IHQKICAg
ICAgdmFsIHNwYWNlczogdCAoKiBhbnkgYW1vdW50IChpbmNsdWRpbmcgbm9uZSkgb2Ygd2hpdGVz
cGFjZSAqKQogICAgICB2YWwgc3RhcjogdCAtPiB0CiAgICAgIHZhbCBzdHJpbmc6IHN0cmluZyAt
PiB0ICgqIGNhc2UgbWF0dGVycyAqKQogICAgICB2YWwgc3RyaW5nSWdub3JlQ2FzZTogc3RyaW5n
IC0+IHQgKCogY2FzZSBkb2Vzbid0IG1hdHRlciAqKQogICBlbmQKCgpmdW5jdG9yIFRlc3RSZWdl
eHAgKFM6IFJFR0VYUCk6IHNpZyBlbmQgPQpzdHJ1Y3QKCm9wZW4gUwpvcGVuIENvbXBpbGVkCnZh
bCBjb21waWxlID0gY29tcGlsZU5GQQp2YWwgY29tcGlsZSA9IGNvbXBpbGVERkEKCnZhbCBfID0K
ICAgQXNzZXJ0LmFzc2VydAogICAoIlJlZ2V4cC5zYXZlIiwgZm4gKCkgPT4KICAgIGxldAogICAg
ICAgdmFsIHMgPSBTYXZlLm5ldyAoKQogICAgaW4KICAgICAgIExpc3QuZm9yYWxsCiAgICAgICAo
WyhzYXZlIChzZXEgW10sIHMpLCAiIiwgIiIpLAoJIChzYXZlIChzdGFyIChvbmVPZiAiYSIpLCBz
KSwgIiIsICIiKSwKCSAoc2VxIFtzYXZlIChzZXEgW10sIHMpLCBzZXEgW11dLCAiIiwgIiIpLAoJ
IChzZXEgW29uZU9mICJhIiwgc2F2ZSAoc2VxIFtdLCBzKV0sICJhIiwgIiIpXSwKCWZuIChyLCBz
MSwgczIpID0+CglsZXQKCSAgIHZhbCBjID0gY29tcGlsZSByCglpbgoJICAgY2FzZSBtYXRjaEFs
bCAoYywgczEpIG9mCgkgICAgICBOT05FID0+IGZhbHNlCgkgICAgfCBTT01FIG0gPT4gTWF0Y2gu
bG9va3VwU3RyaW5nIChtLCBzKSA9IHMyCgllbmQpCiAgICBlbmQpCgp2YWwgXyA9CiAgIEFzc2Vy
dC5hc3NlcnQKICAgKCJSZWdleHAuZG9lc01hdGNoQWxsIiwgZm4gKCkgPT4KICAgIExpc3QuZm9y
YWxsIChbKGFueSwgImEiKSwKCQkgIChhbnlzLCAiYWJjIildLCAKCQkgZm4gKHIsIHMpID0+IG1h
dGNoZXNBbGwgKGNvbXBpbGUgciwgcykpKQoKdmFsIHRlc3RzID0KICAgWyhzdHJpbmdJZ25vcmVD
YXNlICJhYmMiLCAiYWJjIiwgU09NRSAoMzogaW50KSwgU09NRSAoMzogaW50KSksCiAgICAoc3Ry
aW5nSWdub3JlQ2FzZSAiYWJjIiwgImFCQyIsIFNPTUUgMywgU09NRSAzKSwKICAgIChzdHJpbmdJ
Z25vcmVDYXNlICJhYiIsICJhYmFiIiwgU09NRSAyLCBTT01FIDIpLAogICAgKHN0cmluZyAiYWJj
IiwgImFiYyIsIFNPTUUgMywgU09NRSAzKSwKICAgIChzdHJpbmcgIkFiYyIsICJhYmMiLCBOT05F
LCBOT05FKSwKICAgIChzZXEgW10sICJhYmMiLCBTT01FIDAsIFNPTUUgMCksCiAgICAoc2VxIFtz
dHJpbmcgImFiIl0sICJhYiIsIFNPTUUgMiwgU09NRSAyKSwKICAgIChzZXEgW2NoYXIgIyJhIiwg
Y2hhciAjImIiLCBjaGFyICMiYyJdLCAiYWJjIiwgU09NRSAzLCBTT01FIDMpLAogICAgKHNlcSBb
c3RyaW5nICJhYiIsIG51bGxdLCAiYWJjIiwgU09NRSAyLCBTT01FIDIpLAogICAgKG9yIFtzdHJp
bmcgImEiLCBzdHJpbmcgImFiIiwgc3RyaW5nICJhYmMiXSwgImFiYyIsIFNPTUUgMSwgU09NRSAz
KSwKICAgIChzZXEgW29yIFtzdHJpbmcgImFiIiwgbnVsbF0sCgkgb3IgW3N0cmluZyAiYWJjZGUi
LCBzdHJpbmcgImNkIl1dLCAiYWJjZGUiLAogICAgIFNPTUUgNCwgU09NRSA1KSwKICAgIChzdGFy
IChvciBbbnVsbCwgY2hhciAjImEiXSksICJhYWEiLCBTT01FIDAsIFNPTUUgMyksCiAgICAoc3Rh
ciAoc3RyaW5nICJhYiIpLCAiYWJhYmFiIiwgU09NRSAwLCBTT01FIDYpLAogICAgbGV0IHZhbCBy
ID0gU2F2ZS5uZXcgKCkKICAgIGluIChzYXZlIChzdHJpbmcgImFiIiwgciksICJhYiIsIFNPTUUg
MiwgU09NRSAyKQogICAgZW5kLAogICAgbGV0IHZhbCByID0gU2F2ZS5uZXcgKCkKICAgIGluIChz
ZXEgW3N0cmluZyAiYSIsIHNhdmUgKHN0cmluZyAiYmMiLCByKSwgc3RyaW5nICJkIl0sCgkiYWJj
ZCIsIFNPTUUgNCwgU09NRSA0KQogICAgZW5kLAogICAgbGV0IHZhbCBzMSA9IFNhdmUubmV3ICgp
CiAgICAgICB2YWwgczIgPSBTYXZlLm5ldyAoKQogICAgaW4gKHNlcSBbc2F2ZSAoc3RyaW5nICJh
IiwgczEpLAoJICAgIHNhdmUgKHN0cmluZyAiYiIsIHMyKV0sCgkiYWIiLCBTT01FIDIsIFNPTUUg
MikKICAgIGVuZCwKIGxldCB2YWwgczEgPSBTYXZlLm5ldyAoKQogICAgdmFsIHMyID0gU2F2ZS5u
ZXcgKCkKIGluIChzZXEgW3NhdmUgKHN0cmluZyAiYSIsIHMxKSwKCSAgc3RyaW5nICJiIiwKCSAg
c2F2ZSAoc3RyaW5nICJjIiwgczIpLAoJICBzdHJpbmcgImQiXSwKICAgICAiYWJjZCIsCiAgICAg
U09NRSA0LCBTT01FIDQpCiBlbmQsCmxldCB2YWwgczEgPSBTYXZlLm5ldyAoKQppbiAoc2VxIFtz
dHJpbmcgImEiLAoJc2F2ZSAoc3RyaW5nICJiIiwgczEpLAoJc3RyaW5nICJjIl0sCiAgICAiYWJj
IiwKICAgIFNPTUUgMywgU09NRSAzKQplbmQsCmxldCB2YWwgczEgPSBTYXZlLm5ldyAoKQppbiAo
c2VxIFtzdHJpbmcgImFiYyIsCglzYXZlIChzdHJpbmcgImQiLCBzMSksCglzdHJpbmcgImUiXSwK
ICAgICJhYmNkZSIsCiAgICBTT01FIDUsIFNPTUUgNSkKZW5kLApsZXQgdmFsIHMxID0gU2F2ZS5u
ZXcgKCkKICAgdmFsIHMyID0gU2F2ZS5uZXcgKCkKaW4gKHNlcSBbc3RyaW5nICJhYmMiLAoJc2F2
ZSAoc3RyaW5nICJkIiwgczEpLAoJc3RyaW5nICJlIiwKCXNhdmUgKHN0cmluZyAiZiIsIHMyKV0s
CiAgICAiYWJjZGVmIiwKICAgIFNPTUUgNiwgU09NRSA2KQplbmQsCmxldCB2YWwgczEgPSBTYXZl
Lm5ldyAoKQogICB2YWwgczIgPSBTYXZlLm5ldyAoKQppbiAoc2VxIFtzdHJpbmcgImFiYyIsCglz
YXZlIChzdHJpbmcgImQiLCBzMSksCglzdHJpbmcgImUiLAoJc2F2ZSAoc3RyaW5nICJmZ2giLCBz
MildLAogICAgImFiY2RlZmdoIiwKICAgIFNPTUUgOCwgU09NRSA4KQplbmQKXQoKdmFsIF8gPQog
ICBBc3NlcnQuYXNzZXJ0CiAgICgiUmVnZXhwLm1hdGNoIiwgZm4gKCkgPT4KICAgIExpc3QuZm9y
YWxsICh0ZXN0cywKCQkgZm4gKHIsIHM6IHN0cmluZywgaTEsIGkyKSA9PgoJCSBsZXQKCQkgICAg
dmFsIHIgPSBjb21waWxlIHIKCQkgICAgdmFsIF8gPSBDb21waWxlZC5sYXlvdXREb3RUb0ZpbGUg
KHIsICIvdG1wL3ouZG90IikKCQkgICAgZnVuIGRvaXQgbSA9IE9wdGlvbi5tYXAgKG0gKHIsIHMs
IDApLCBNYXRjaC5sZW5ndGgpCgkJIGluCgkJICAgIGkxID0gZG9pdCBtYXRjaFNob3J0CgkJICAg
IGFuZGFsc28gaTIgPSBkb2l0IG1hdGNoTG9uZwoJCSBlbmQpKQoKdmFsIHRlc3RzID0KICAgWyhz
dHJpbmcgImFiYyIsICIxMjNhYmMiLCBTT01FICgzOiBpbnQsIDY6IGludCkpLAogICAgKHN0cmlu
ZyAiYWJjIiwgIjEyM2FiY2RlIiwgU09NRSAoMywgNikpLAogICAgKHN0cmluZyAiYWJkIiwgIjEy
M2FiY2RlIiwgTk9ORSksCiAgICAoc2VxIFtzdHJpbmcgImEiLCBzdGFyIChzdHJpbmcgImFiIiks
IHN0cmluZyAiYyJdLAogICAgICIxMjM0YWFiYWJhYmNkZWYiLCBTT01FICg0LCAxMikpXQoKdmFs
IF8gPQogICBBc3NlcnQuYXNzZXJ0CiAgICgiUmVnZXhwLmZpbmRTaG9ydCIsIGZuICgpID0+CiAg
ICBMaXN0LmZvcmFsbAogICAgKHRlc3RzLCBmbiAociwgcywgb3B0KSA9PgogICAgIG9wdCA9IChP
cHRpb24ubWFwCgkgICAgKGZpbmRTaG9ydCAoY29tcGlsZSByLCBzLCAwKSwgZm4gbSA9PgoJICAg
ICBsZXQgdmFsIChfLCB7c3RhcnQsIGxlbmd0aH0pID0gU3Vic3RyaW5nLmJhc2UgKE1hdGNoLmFs
bCBtKQoJICAgICBpbiAoc3RhcnQsIHN0YXJ0ICsgbGVuZ3RoKQoJICAgICBlbmQpKSkpCgp2YWwg
XyA9CiAgIEFzc2VydC5hc3NlcnQKICAgKCJSZWdleHAuZmluZFNob3J0MiIsIGZuICgpID0+CiAg
ICBMaXN0LmZvcmFsbAogICAgKFsoU09NRSAoMiwgNCksIChzdHJpbmcgImNkIiwgImFiY2RlZiIs
IDApKSwKICAgICAgKFNPTUUgKDIsIDQpLCAoc2VxIFtjaGFyICMiYyIsIHN0YXIgKGlzTm90Q2hh
ciBDaGFyLmlzU3BhY2UpXSwKCQkgICAgICJhYmNkIGZnIiwgMCkpXSwKICAgICBmbiAocmVzLCAo
ciwgcywgaSkpID0+CiAgICAgcmVzID0KICAgICBPcHRpb24ubWFwIChmaW5kTG9uZyAoY29tcGls
ZSByLCBzLCBpKSwgZm4gbSA9PgoJCSBsZXQgdmFsIChfLCB7c3RhcnQsIGxlbmd0aH0pID0gU3Vi
c3RyaW5nLmJhc2UgKE1hdGNoLmFsbCBtKQoJCSBpbiAoc3RhcnQsIHN0YXJ0ICsgbGVuZ3RoKQoJ
CSBlbmQpKSkKICAgCmVuZAooKiBzdG9wIG9mIGxpYi9tbHRvbi9iYXNpYy9yZWdleHAuc2lnICop
CigqIHN0YXJ0IG9mIGxpYi9tbHRvbi9iYXNpYy9yZWdleHAuc21sICopCigqIE1hbnkgb2YgdGhl
IGFsZ29yaXRobXMgaW4gdGhpcyBtb2R1bGUgYXJlIGJhc2VkIG9uCiAqIENvbXBpbGVyczogUHJp
bmNpcGxlcywgVGVjaG5pcXVlcywgYW5kIFRvb2xzIGJ5IEFobywgU2V0aGksIGFuZCBVbGxtYW4s
CiAqIHdoaWNoIEkgd2lsbCByZWZlciB0byBpbiBjb21tZW50cyBhcyB0aGUgRHJhZ29uIEJvb2su
CiAqKQpsb2NhbAogICB0eXBlIGludCA9IEludC50CgogICBmdW4gKysgKHI6IGludCByZWYpOiBp
bnQgPQogICAgICBsZXQKCSB2YWwgbiA9IDEgKyAhcgoJIHZhbCBfID0gciA6PSBuCiAgICAgIGlu
IG4KICAgICAgZW5kCgogICB2YWwgbnVtQ2hhcnM6IGludCA9IENoYXIubWF4T3JkICsgMQoKICAg
bG9jYWwKICAgICAgdmFsIHZhbGlkQ2hhcnNTdHJpbmcgPQoJICJcbkBhYmNkZWZnaGlqa2xtbm9w
cXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaMDEyMzQ1Njc4OSAoKVtdPD4hPy0m
IzsnLz1cIiAiCiAgIGluCSAKICAgICAgdmFsIHZhbGlkQ2hhcnMgPQoJIFZlY3Rvci50YWJ1bGF0
ZSAobnVtQ2hhcnMsIGZuIGkgPT4KCQkJICBTdHJpbmcuY29udGFpbnMgKHZhbGlkQ2hhcnNTdHJp
bmcsIENoYXIuZnJvbUludCBpKSkKCiAgICAgIGZ1biBlZGdlTGFiZWwgKGNzOiBjaGFyIGxpc3Qp
OiBzdHJpbmcgPQoJIGxldAoJICAgIHZhbCBjaGFycyA9IGltcGxvZGUgY3MKCSAgICB2YWwgbnVt
Q2hhcnMgPSBTdHJpbmcuc2l6ZSBjaGFycwoJICAgIHZhbCBudW1WYWxpZENoYXJzID0gU3RyaW5n
LnNpemUgdmFsaWRDaGFyc1N0cmluZwoJIGluCgkgICAgaWYgbnVtQ2hhcnMgPSBudW1WYWxpZENo
YXJzCgkgICAgICAgdGhlbiAiKiIKCSAgICBlbHNlIChTdHJpbmcuZXNjYXBlU01MCgkJICAoaWYg
bnVtQ2hhcnMgPj0gSW50LnF1b3QgKG51bVZhbGlkQ2hhcnMsIDIpCgkJICAgICAgdGhlbiAoKiBD
aGFyYWN0ZXIgY29tcGxlbWVudC4gKikKCQkJIGNvbmNhdCBbIlteIiwKCQkJCSBTdHJpbmcuYWxw
aGFiZXRpemUKCQkJCSAoU3RyaW5nLmtlZXBBbGwKCQkJCSAgKHZhbGlkQ2hhcnNTdHJpbmcsIGZu
IGMgPT4KCQkJCSAgIG5vdCAoU3RyaW5nLmNvbnRhaW5zCgkJCQkJKGNoYXJzLCBjKSkpKSwKCQkJ
CSAiXSJdCgkJICAgZWxzZSBjaGFycykpCgkgZW5kCiAgICAgIHZhbCBlZGdlTGFiZWwgPQoJIFRy
YWNlLnRyYWNlICgiZWRnZUxhYmVsIiwgTGlzdC5sYXlvdXQgQ2hhci5sYXlvdXQsIFN0cmluZy5s
YXlvdXQpCgkgZWRnZUxhYmVsCiAgIGVuZAoKICAgc3RydWN0dXJlIFNhdmUgPQogICAgICBzdHJ1
Y3QKCSBkYXRhdHlwZSB0ID0gVCBvZiB7aW5kZXg6IGludCByZWZ9CgoJIGZ1biBuZXcgKCkgPSBU
IHtpbmRleCA9IHJlZiB+MX0KCSAgICAKCSBmdW4gZXF1YWxzIChUIHtpbmRleCA9IGksIC4uLn0s
IFQge2luZGV4ID0gaScsIC4uLn0pID0gaSA9IGknCgoJIGZ1biBhc3NpZ24gKFQge2luZGV4LCAu
Li59LCBpKSA9IGluZGV4IDo9IGkKCgkgZnVuIGluZGV4IChUIHtpbmRleCwgLi4ufSkgPSAhaW5k
ZXgKCgkgZnVuIGxheW91dCBzID0KCSAgICBsZXQKCSAgICAgICBvcGVuIExheW91dAoJICAgIGlu
CgkgICAgICAgc2VxIFtzdHIgIlNhdmUgIiwgSW50LmxheW91dCAoaW5kZXggcyldCgkgICAgZW5k
CiAgICAgIGVuZAogICAKICAgc3RydWN0dXJlIFJlZ2V4cCA9CiAgICAgIHN0cnVjdAoJIGRhdGF0
eXBlIHQgPQoJICAgIEFuY2hvclN0YXJ0CgkgIHwgQ2hhclNldCBvZiBjaGFyIC0+IGJvb2wKCSAg
fCBPciBvZiB0IGxpc3QKCSAgfCBTZXEgb2YgdCBsaXN0CgkgIHwgU2F2ZSBvZiB0ICogU2F2ZS50
CgkgIHwgU3RhciBvZiB0CgoJIGZ1biBsYXlvdXQgKHI6IHQpOiBMYXlvdXQudCA9CgkgICAgbGV0
CgkgICAgICAgb3BlbiBMYXlvdXQKCSAgICBpbgoJICAgICAgIGNhc2UgciBvZgoJCSAgQW5jaG9y
U3RhcnQgPT4gc3RyICJBbmNob3JTdGFydCIKCQl8IENoYXJTZXQgZiA9PgoJCSAgICAgc2VxIFtz
dHIgIlsiLAoJCQkgIHN0ciAoZWRnZUxhYmVsIChJbnQuZm9sZERvd24KCQkJCQkgICgwLCBudW1D
aGFycywgW10sIGZuIChpLCBhYykgPT4KCQkJCQkgICBsZXQKCQkJCQkgICAgICB2YWwgYyA9IENo
YXIuZnJvbUludCBpCgkJCQkJICAgaW4KCQkJCQkgICAgICBpZiBmIGMKCQkJCQkJIHRoZW4gYyA6
OiBhYwoJCQkJCSAgICAgIGVsc2UgYWMKCQkJCQkgICBlbmQpKSksCgkJCSAgc3RyICJdIl0KCQl8
IE9yIHJzID0+IHNlcSBbc3RyICJPciAiLCBMaXN0LmxheW91dCBsYXlvdXQgcnNdCgkJfCBTZXEg
cnMgPT4gc2VxIFtzdHIgIlNlcSAiLCBMaXN0LmxheW91dCBsYXlvdXQgcnNdCgkJfCBTYXZlIChy
LCBzKSA9PiBzZXEgW3N0ciAiU2F2ZSAiLAoJCQkJICAgICAgTGF5b3V0LnR1cGxlIFtsYXlvdXQg
ciwgU2F2ZS5sYXlvdXQgc11dCgkJfCBTdGFyIHIgPT4gc2VxIFtzdHIgIlN0YXIgIiwgbGF5b3V0
IHJdCgkgICAgZW5kCiAgICAgIGVuZAoKICAgc3RydWN0dXJlIFN0YWNrOgogICAgICBzaWcKCSB0
eXBlICdhIHQKCgkgdmFsIGNsZWFyOiAnYSB0IC0+IHVuaXQKCSB2YWwgZXhpc3RzOiAnYSB0ICog
KCdhIC0+IGJvb2wpIC0+IGJvb2wKCSB2YWwgZm9yZWFjaDogJ2EgdCAqICgnYSAtPiB1bml0KSAt
PiB1bml0CgkgdmFsIG5ldzogaW50ICogJ2EgLT4gJ2EgdAoJIHZhbCBwZWVrTWFwOiAnYSB0ICog
KCdhIC0+J2Igb3B0aW9uKSAtPiAnYiBvcHRpb24KCSB2YWwgcHVzaDogJ2EgdCAqICdhIC0+IHVu
aXQKICAgICAgZW5kID0KICAgICAgc3RydWN0CgkgZGF0YXR5cGUgJ2EgdCA9IFQgb2Yge2VsdHM6
ICdhIGFycmF5LAoJCQkgICAgICAgc2l6ZTogaW50IHJlZn0KCgkgZnVuIG5ldyAoc2l6ZTogaW50
LCBkdW1teTogJ2EpOiAnYSB0ID0KCSAgICBUIHtlbHRzID0gQXJyYXkubmV3IChzaXplLCBkdW1t
eSksCgkgICAgICAgc2l6ZSA9IHJlZiAwfQoKCSBmdW4gcHVzaCAoVCB7ZWx0cywgc2l6ZX0sIHgp
ID0KCSAgICBsZXQKCSAgICAgICB2YWwgbiA9ICFzaXplCgkgICAgICAgdmFsIF8gPSBBcnJheS51
cGRhdGUgKGVsdHMsIG4sIHgpCgkgICAgICAgdmFsIF8gPSBzaXplIDo9IG4gKyAxCgkgICAgaW4g
KCkKCSAgICBlbmQKCgkgZnVuIGNsZWFyIChUIHtzaXplLCAuLi59KSA9IHNpemUgOj0gMAoKCSBz
dHJ1Y3R1cmUgRiA9CgkgICAgc3RydWN0CgkgICAgICAgdHlwZSAnYSB0ID0gJ2EgdAoJICAgICAg
IHR5cGUgJ2EgZWx0ID0gJ2EKCQkgIAoJICAgICAgIGZ1biBmb2xkIChUIHtlbHRzLCBzaXplLCAu
Li59LCBiLCBmKSA9CgkJICBJbnQuZm9sZCAoMCwgIXNpemUsIGIsIGZuIChpLCBiKSA9PgoJCQkg
ICAgZiAoQXJyYXkuc3ViIChlbHRzLCBpKSwgYikpCgkgICAgZW5kCgkgc3RydWN0dXJlIEYgPSBG
b2xkIChGKQoJIG9wZW4gRgogICAgICBlbmQKCiAgICgqIE5GQSBzdGF0ZS4gKikKICAgKCogVGhl
IHN0YXRlcyBpbiBhbiBORkEgYXJlIGluZGV4ZWQgZnJvbSAwIHRvIG4tMSwgd2hlcmUgbiBpcyB0
aGUgbnVtYmVyCiAgICAqIG9mIHN0YXRlcy4KICAgICopCiAgIHN0cnVjdHVyZSBTdGF0ZSA9CiAg
ICAgIHN0cnVjdAoJIHR5cGUgdCA9IGludAoKCSB2YWwgbGF5b3V0ID0gSW50LmxheW91dAogICAg
ICBlbmQKCiAgIHN0cnVjdHVyZSBNYXRjaEFjdGlvbiA9CiAgICAgIHN0cnVjdAoJIGRhdGF0eXBl
IHQgPQoJICAgIFN0YXJ0IG9mIFNhdmUudAoJICB8IEZpbmlzaCBvZiBTYXZlLnQKCgkgdmFsIGVx
dWFscyA9CgkgICAgZm4gKFN0YXJ0IHMsIFN0YXJ0IHMnKSA9PiBTYXZlLmVxdWFscyAocywgcycp
CgkgICAgIHwgKEZpbmlzaCBzLCBGaW5pc2ggcycpID0+IFNhdmUuZXF1YWxzIChzLCBzJykKCSAg
ICAgfCBfID0+IGZhbHNlCgkJICAKCSBmdW4gbGF5b3V0IGEgPQoJICAgIGxldCBvcGVuIExheW91
dAoJICAgIGluCgkgICAgICAgY2FzZSBhIG9mCgkJICBTdGFydCBzID0+IHNlcSBbc3RyICJTdGFy
dCAiLCBTYXZlLmxheW91dCBzXQoJCXwgRmluaXNoIHMgPT4gc2VxIFtzdHIgIkZpbmlzaCAiLCBT
YXZlLmxheW91dCBzXQoJICAgIGVuZAoJICAgICAgIAogICAgICBlbmQKCiAgIHN0cnVjdHVyZSBG
aW5hbHMgPQogICAgICBzdHJ1Y3QKCSB0eXBlIHQgPSAoU2F2ZS50ICogaW50ICogaW50KSBsaXN0
CgkgICAgCgkgdmFsIGxheW91dDogdCAtPiBMYXlvdXQudCA9CgkgICAgTGlzdC5sYXlvdXQgKGZu
IChfLCBpLCBqKSA9PgoJCQkgTGF5b3V0LnR1cGxlIFtJbnQubGF5b3V0IGksIEludC5sYXlvdXQg
al0pCiAgICAgIGVuZAogICAKICAgc3RydWN0dXJlIE1hdGNoID0KICAgICAgc3RydWN0CgkgZGF0
YXR5cGUgdCA9IFQgb2Yge2FsbDogU3Vic3RyaW5nLnQsCgkJCSAgICBtYXRjaGVzOiAoU2F2ZS50
ICogU3Vic3RyaW5nLnQpIGFycmF5fQoKCSBmdW4gYWxsIChUIHthbGwsIC4uLn0pID0gYWxsCgoJ
IHZhbCBsZW5ndGggPSBTdWJzdHJpbmcubGVuZ3RoIG8gYWxsCgoJIGZ1biBsYXlvdXQgKFQge2Fs
bCwgbWF0Y2hlc30pID0KCSAgICBsZXQgb3BlbiBMYXlvdXQKCSAgICBpbiB0dXBsZSBbU3Vic3Ry
aW5nLmxheW91dCBhbGwsCgkJICAgICAgQXJyYXkubGF5b3V0IChMYXlvdXQudHVwbGUyCgkJCQkg
ICAgKFNhdmUubGF5b3V0LCBTdWJzdHJpbmcubGF5b3V0KSkgbWF0Y2hlc10KCSAgICBlbmQKCgkg
ZnVuIGZ1bnMgKFQge21hdGNoZXMsIC4uLn0pID0KCSAgICBsZXQJIAoJICAgICAgIGZ1biBwZWVr
IChzOiBTYXZlLnQpOiBTdWJzdHJpbmcudCBvcHRpb24gPQoJCSAgT3B0aW9uLm1hcCAoQXJyYXku
cGVlayAobWF0Y2hlcywgZm4gKHMnLCBfKSA9PgoJCQkJCSAgU2F2ZS5lcXVhbHMgKHMsIHMnKSks
CgkJCSAgICAgICMyKQoJICAgIGluIHtleGlzdHMgPSBPcHRpb24uaXNTb21lIG8gcGVlaywKCQls
b29rdXAgPSB2YWxPZiBvIHBlZWssCgkJcGVlayA9IHBlZWt9CgkgICAgZW5kCgoJIGZ1biBzdHJp
bmdGdW5zIG0gPQoJICAgIGxldAoJICAgICAgIHZhbCB7cGVlaywgbG9va3VwLCBleGlzdHN9ID0g
ZnVucyBtCgkgICAgaW4KCSAgICAgICB7ZXhpc3RzID0gZXhpc3RzLAoJCWxvb2t1cCA9IFN1YnN0
cmluZy50b1N0cmluZyBvIGxvb2t1cCwKCQlwZWVrID0gZm4gcyA9PiBPcHRpb24ubWFwIChwZWVr
IHMsIFN1YnN0cmluZy50b1N0cmluZyl9CgkgICAgZW5kCgoJIGxvY2FsCgkgICAgZnVuIG1ha2Ug
c2VsIChtLCBzKSA9IHNlbCAoZnVucyBtKSBzCgkgaW4KCSAgICB2YWwgcGVlayA9IG1ha2UgI3Bl
ZWsKCSAgICB2YWwgbG9va3VwID0gbWFrZSAjbG9va3VwCgkgICAgdmFsIGV4aXN0cyA9IG1ha2Ug
I2V4aXN0cwoJIGVuZAoKCSBmdW4gcGVla1N0cmluZyAobSwgcykgPSBPcHRpb24ubWFwIChwZWVr
IChtLCBzKSwgU3Vic3RyaW5nLnRvU3RyaW5nKQoJIHZhbCBsb29rdXBTdHJpbmcgPSBTdWJzdHJp
bmcudG9TdHJpbmcgbyBsb29rdXAKICAgICAgZW5kCgogICBzdHJ1Y3R1cmUgQWN0aW9ucyA9CiAg
ICAgIHN0cnVjdAoJIGRhdGF0eXBlIHQgPSBUIG9mIChpbnQgKiBNYXRjaEFjdGlvbi50IHZlY3Rv
cikgbGlzdAoKCgkgZnVuIGxheW91dCAoVCBsKSA9CgkgICAgTGlzdC5sYXlvdXQgKExheW91dC50
dXBsZTIgKEludC5sYXlvdXQsCgkJCQkJVmVjdG9yLmxheW91dCBNYXRjaEFjdGlvbi5sYXlvdXQp
KQoJICAgIGwKCSAgICAKCSB2YWwgZW1wdHkgPSBUIFtdCgkgICAgCgkgZnVuIGFkZCAoYSBhcyBU
IGwsIGksIHY6IE1hdGNoQWN0aW9uLnQgdmVjdG9yKSA9CgkJICBpZiBWZWN0b3IuaXNFbXB0eSB2
CgkJICAgICB0aGVuIGEKCQkgIGVsc2UgVCAoKGksIHYpIDo6IGwpCiAgICAgIGVuZAoKICAgc3Ry
dWN0dXJlIE5GQSA9CiAgICAgIHN0cnVjdAoJIHN0cnVjdHVyZSBTdGF0ZSA9IFN0YXRlCgkgKCog
U3RhdGUgaSBpcyBmaW5hbCBpZmYgaXNTb21lIChBcnJheS5zdWIgKGZpbmFsLCBpKSkuCgkgICog
Q2hhcmFjdGVycyBhcmUgZ3JvdXBlZCBpbnRvIGVxdWl2YWxlbmNlIGNsYXNzZXMsIHJlcHJlc2Vu
dGVkIGJ5CgkgICogaW50ZWdlcnMgaW4gWzAsIG51bUNoYXJDbGFzc2VzKS4KCSAgKiBUaGUgZXF1
aXZhbGVuY2UgY2xhc3Mgb2YgYyBpcyBBcnJheS5zdWIgKGNoYXJDbGFzcywgQ2hhci50b0ludCBj
KS4KCSAgKiBUaGUgZGltZW5zaW9ucyBvZiBuZXh0IGlzIG51bVN0YXRlcyB4IG51bUNoYXJDbGFz
c2VzLgoJICAqIFRoZSBvdXRnb2luZyBzdGF0ZXMgZnJvbSBzdGF0ZSBpIG9uIGlucHV0IGNoYXIg
YyBhcmUgZ2l2ZW4gYnkKCSAgKiBBcnJheTIuc3ViIChuZXh0LCBpLCBBcnJheS5zdWIgKGNoYXJD
bGFzcywgQ2hhci50byBJbnQgYykpLgoJICAqIHNlZW4sIHN0YWNrMSwgYW5kIHN0YWNrMiBhcmUg
dXNlZCBpbiB0aGUgdHdvIHN0YWNrIHNpbXVsYXRpb24gb2YKCSAgKiB0aGUgTkZBIChzZWUgZnVu
IG1hdGNoKS4gIFdlIHByZWFsbG9jYXRlIHRoZW0gYXMgcGFydCBvZiB0aGUgTkZBCgkgICogc28g
dGhleSBkb24ndCBoYXZlIHRvIGJlIGFsbG9jYXRlZCBvbiBlYWNoIGNhbGwgdG8gbWF0Y2guCgkg
ICopCgkgZGF0YXR5cGUgdCA9CgkgICAgVCBvZiB7YW5jaG9yU3RhcnRzOiAoU3RhdGUudCAqIE1h
dGNoQWN0aW9uLnQgdmVjdG9yKSB2ZWN0b3IsCgkJICBjaGFyQ2xhc3M6IGludCBhcnJheSwgKCog
b2YgbGVuZ3RoIG51bUNoYXJzICopCgkJICBmaW5hbDogTWF0Y2hBY3Rpb24udCB2ZWN0b3Igb3B0
aW9uIGFycmF5LAoJCSAgbmV4dDogKFN0YXRlLnQgKiBNYXRjaEFjdGlvbi50IHZlY3RvcikgYXJy
YXkgQXJyYXkyLnQsCgkJICBzYXZlczogU2F2ZS50IHZlY3RvciwKCQkgIHNlZW46IGJvb2wgYXJy
YXksCgkJICBzdGFjazE6IChTdGF0ZS50ICogQWN0aW9ucy50KSBTdGFjay50LAoJCSAgc3RhY2sy
OiAoU3RhdGUudCAqIEFjdGlvbnMudCkgU3RhY2sudCwKCQkgIHN0YXJ0OiBTdGF0ZS50fQogICAg
ICBlbmQKICAgCiAgICgqIE5vbi1kZXRlcm1pbmlzdGljIEZpbml0ZSBBdXRvbWF0b24uICopCiAg
IHN0cnVjdHVyZSBORkE6CiAgICAgIHNpZwoJIHN0cnVjdHVyZSBTdGF0ZToKCSAgICBzaWcKCSAg
ICAgICB0eXBlIHQgPSBpbnQKCQkgIAoJICAgICAgIHZhbCBsYXlvdXQ6IHQgLT4gTGF5b3V0LnQK
CSAgICBlbmQKCSAKCSBkYXRhdHlwZSB0ID0gZGF0YXR5cGUgTkZBLnQKCSAgICAKCSB2YWwgZnJv
bVJlZ2V4cDogUmVnZXhwLnQgLT4gdAoJIHZhbCBsYXlvdXQ6IHQgLT4gTGF5b3V0LnQKCSB2YWwg
bGF5b3V0RG90OiB0ICogc3RyaW5nICgqIHRpdGxlICopIC0+IExheW91dC50CgkgdmFsIG1hdGNo
OiB7bmZhOiB0LAoJCSAgICAgc2hvcnQ6IGJvb2wsCgkJICAgICBzdHJpbmc6IHN0cmluZywKCQkg
ICAgIHN0YXJ0UG9zOiBpbnQsCgkJICAgICBhbmNob3JTdGFydDogYm9vbH0gLT4gKGludCAqIEFj
dGlvbnMudCkgb3B0aW9uCgkgdmFsIG51bUNoYXJDbGFzc2VzOiB0IC0+IGludAoJIHZhbCBudW1T
dGF0ZXM6IHQgLT4gaW50CgkgdmFsIHNhdmVzOiB0IC0+IFNhdmUudCB2ZWN0b3IKICAgICAgZW5k
ID0KICAgICAgc3RydWN0Cgkgb3BlbiBORkEKCgkgZnVuIG51bVN0YXRlcyAoVCB7bmV4dCwgLi4u
fSkgPSBBcnJheTIublJvd3MgbmV4dAoJIGZ1biBudW1DaGFyQ2xhc3NlcyAoVCB7bmV4dCwgLi4u
fSkgPSBBcnJheTIubkNvbHMgbmV4dAoJIGZ1biBzYXZlcyAoVCB7c2F2ZXMsIC4uLn0pID0gc2F2
ZXMKCgkgZnVuIGxheW91dCAoZGZhOiB0KTogTGF5b3V0LnQgPQoJICAgIGxldAoJICAgICAgIG9w
ZW4gTGF5b3V0CgkgICAgaW4KCSAgICAgICBzZXEgW3N0ciAiTkZBIHdpdGggIiwKCQkgICAgSW50
LmxheW91dCAobnVtU3RhdGVzIGRmYSksIHN0ciAiIHN0YXRlcyBhbmQgIiwKCQkgICAgSW50Lmxh
eW91dCAobnVtQ2hhckNsYXNzZXMgZGZhKSwgc3RyICIgY2hhckNsYXNzZXMiXQoJICAgIGVuZAoK
CSAoKiBTaW11bGF0aW5nIGFuIE5GQSB3aXRoIHR3byBzdGFja3MgYW5kIGEgYml0IHZlY3Rvciwg
YXMgaW4gQWxnb3JpdGhtCgkgICogMy40IChwYWdlIDEyNikgb2YgdGhlIERyYWdvbiBCb29rLgoJ
ICAqKQoJIGZ1biBtYXRjaCB7bmZhIGFzIFQge2FuY2hvclN0YXJ0cywgY2hhckNsYXNzLCBmaW5h
bCwKCQkJICAgICAgbmV4dCwgc2Vlbiwgc3RhY2sxLCBzdGFjazIsIHN0YXJ0LCAuLi59LAoJCSAg
ICBzaG9ydCwKCQkgICAgc3RyaW5nID0gcywKCQkgICAgc3RhcnRQb3MsCgkJICAgIGFuY2hvclN0
YXJ0OiBib29sfTogKGludCAqIEFjdGlvbnMudCkgb3B0aW9uID0KCSAgICBsZXQKCSAgICAgICB2
YWwgbnVtU3RhdGVzID0gbnVtU3RhdGVzIG5mYQoJICAgICAgIHZhbCBuID0gU3RyaW5nLnNpemUg
cwoJICAgICAgIHZhbCBzZWVuID0gQXJyYXkuYXJyYXkgKG51bVN0YXRlcywgZmFsc2UpCgkgICAg
ICAgdmFsIGdvdGl0ID0gcmVmIGZhbHNlCgkgICAgICAgZnVuIGxvb3AgKGN1cnJlbnQsIG5leHRT
dGF0ZXMsIGk6IGludCwKCQkJIGxhc3Q6IChpbnQgKiBBY3Rpb25zLnQpIG9wdGlvbikKCQkgIDog
KGludCAqIEFjdGlvbnMudCkgb3B0aW9uID0KCQkgIGxldAoJCSAgICAgdmFsIGxhc3QgPSAKCQkJ
Y2FzZSAoU3RhY2sucGVla01hcAoJCQkgICAgICAoY3VycmVudCwgZm4gKHMsIGEpID0+CgkJCSAg
ICAgICBjYXNlIEFycmF5LnN1YiAoZmluYWwsIHMpIG9mCgkJCQkgIE5PTkUgPT4gTk9ORQoJCQkJ
fCBTT01FIHYgPT4gU09NRSAoaSwgQWN0aW9ucy5hZGQgKGEsIGksIHYpKSkpIG9mCgkJCSAgIE5P
TkUgPT4gbGFzdAoJCQkgfCBzID0+IHMKCQkgIGluCgkJICAgICBpZiBudW1TdGF0ZXMgPSAwCgkJ
CW9yZWxzZSBpID0gbgoJCQlvcmVsc2UgKHNob3J0IGFuZGFsc28gaXNTb21lIGxhc3QpCgkJCXRo
ZW4gKFN0YWNrLmNsZWFyIGN1cnJlbnQKCQkJICAgICAgOyBsYXN0KQoJCSAgICAgZWxzZQoJCQls
ZXQKCQkJICAgdmFsIF8gPSBBcnJheS5tb2RpZnkgKHNlZW4sIGZuIF8gPT4gZmFsc2UpCgkJCSAg
IHZhbCBjID0gQXJyYXkuc3ViIChjaGFyQ2xhc3MsCgkJCQkJICAgICAgQ2hhci50b0ludCAoU3Ry
aW5nLnN1YiAocywgaSkpKQoJCQkgICB2YWwgXyA9CgkJCSAgICAgIFN0YWNrLmZvcmVhY2gKCQkJ
ICAgICAgKGN1cnJlbnQsIGZuIChzLCBhKSA9PgoJCQkgICAgICAgQXJyYXkuZm9yZWFjaAoJCQkg
ICAgICAgKEFycmF5Mi5zdWIgKG5leHQsIHMsIGMpLCAKCQkJCWZuIChzJywgdikgPT4KCQkJCWlm
IEFycmF5LnN1YiAoc2VlbiwgcycpCgkJCQkgICB0aGVuICgpCgkJCQllbHNlIChBcnJheS51cGRh
dGUgKHNlZW4sIHMnLCB0cnVlKQoJCQkJICAgICAgOyAoU3RhY2sucHVzaAoJCQkJCSAobmV4dFN0
YXRlcywKCQkJCQkgIChzJywgQWN0aW9ucy5hZGQgKGEsIGksIHYpKSkpKSkpCgkJCSAgIHZhbCBf
ID0gU3RhY2suY2xlYXIgY3VycmVudAoJCQlpbiBsb29wIChuZXh0U3RhdGVzLCBjdXJyZW50LCBp
ICsgMSwgbGFzdCkKCQkJZW5kCgkJICBlbmQKCSAgICAgICB2YWwgXyA9IFN0YWNrLnB1c2ggKHN0
YWNrMSwgKHN0YXJ0LCBBY3Rpb25zLmVtcHR5KSkKCSAgICAgICB2YWwgXyA9CgkJICBpZiBhbmNo
b3JTdGFydAoJCSAgICAgdGhlbiAoVmVjdG9yLmZvcmVhY2gKCQkJICAgKGFuY2hvclN0YXJ0cywg
Zm4gKHMsIHYpID0+CgkJCSAgICBTdGFjay5wdXNoCgkJCSAgICAoc3RhY2sxLAoJCQkgICAgIChz
LCBBY3Rpb25zLmFkZCAoQWN0aW9ucy5lbXB0eSwgc3RhcnRQb3MsIHYpKSkpKQoJCSAgZWxzZSAo
KQoJICAgIGluCgkgICAgICAgbG9vcCAoc3RhY2sxLCBzdGFjazIsIHN0YXJ0UG9zLCBOT05FKQoJ
ICAgIGVuZAoKCSAoKiBUaGlzIGNvbnZlcnNpb24gZnJvbSBhIHJlZ3VsYXIgZXhwcmVzc2lvbiB0
byBhbiBORkEgaXMgYmFzZWQgb24KCSAgKiBTZWN0aW9uIDMuOSAocGFnZXMgMTM0IC0tIDE0MCkg
b2YgdGhlIERyYWdvbiBCb29rLgoJICAqCgkgICogSXQgY3JlYXRlcyBvbmUgTkZBIHN0YXRlIGZv
ciBlYWNoIENoYXJTZXQgKGNhbGxlZCBhICJwb3NpdGlvbiIpIHRoYXQKCSAgKiBpcyBpbiB0aGUg
cmVnZXhwLiAgVGhlcmUgaXMgYWxzbyBvbmUgZXh0cmEgc3RhdGUgZm9yIHRoZSBzdGFydCBzdGF0
ZS4KCSAgKiBJdCBhZGRzIGVkZ2VzIGFzIGluIHJ1bGVzIDEgYW5kIDIgKHBhZ2UgMTM4KSBmb3Ig
dGhlIGZvbGxvd3BvcwoJICAqIGZ1bmN0aW9uLgoJICAqKQoJIGZ1biBmcm9tUmVnZXhwIChyOiBS
ZWdleHAudCk6IHQgPQoJICAgIGxldAoJICAgICAgIGZ1biBsb29wIChyLCBhYyBhcyAoc2F2ZXMs
IG51bVBvcykpID0KCQkgIGxldCBvcGVuIFJlZ2V4cAoJCSAgaW4gY2FzZSByIG9mCgkJICAgICBB
bmNob3JTdGFydCA9PiAoc2F2ZXMsIG51bVBvcyArIDEpCgkJICAgfCBDaGFyU2V0IF8gPT4gKHNh
dmVzLCBudW1Qb3MgKyAxKQoJCSAgIHwgT3IgcnMgPT4gTGlzdC5mb2xkIChycywgYWMsIGxvb3Ap
CgkJICAgfCBTYXZlIChyLCBzKSA9PiBsb29wIChyLCAocyA6OiBzYXZlcywgbnVtUG9zKSkKCQkg
ICB8IFNlcSBycyA9PiBMaXN0LmZvbGQgKHJzLCBhYywgbG9vcCkKCQkgICB8IFN0YXIgciA9PiBs
b29wIChyLCBhYykKCQkgIGVuZAoJICAgICAgIHZhbCAoc2F2ZXMsIG51bVBvcykgPSBsb29wIChy
LCAoW10sIDApKQoJICAgICAgIHZhbCBzYXZlcyA9IFZlY3Rvci5mcm9tTGlzdCBzYXZlcwoJICAg
ICAgIHZhbCBudW1TdGF0ZXMgPSBudW1Qb3MgKyAxCgkgICAgICAgdmFsIHN0YXJ0ID0gbnVtUG9z
CgkgICAgICAgdmFsIHBvc0NvdW50ZXIgPSByZWYgfjEKCSAgICAgICB2YWwgZm9sbG93OiBNYXRj
aEFjdGlvbi50IHZlY3RvciBvcHRpb24gQXJyYXkyLnQgPQoJCSAgQXJyYXkyLm5ldyAobnVtU3Rh
dGVzLCBudW1TdGF0ZXMsIE5PTkUpCgkgICAgICAgdmFsIHBvc0NoYXJzID0gQXJyYXkyLnRhYnVs
YXRlIChudW1Qb3MsIG51bUNoYXJzLCBmbiBfID0+IGZhbHNlKQoJICAgICAgIGxvY2FsCgkJICAo
KiBTZXRzIG9mIHBvc2l0aW9ucyByZXByZXNlbnRlZCBhcyB2ZWN0b3JzIG9mIGxlbmd0aCBudW1Q
b3MuCgkJICAgKikKCQkgIGRhdGF0eXBlIHQgPSBUIG9mIE1hdGNoQWN0aW9uLnQgdmVjdG9yIG9w
dGlvbiB2ZWN0b3IgCgkgICAgICAgaW4KCQkgIHR5cGUgc2V0ID0gdAoJCSAgZnVuIGxvb2t1cCAo
VCB2LCBzKSA9IFZlY3Rvci5zdWIgKHYsIHMpCgkJICB2YWwgZW1wdHk6IHQgPSBUIChWZWN0b3Iu
bmV3IChudW1Qb3MsIE5PTkUpKQoJCSAgZnVuIGFkZEFjdGlvbnMgKFQgdiwgYSkgPQoJCSAgICAg
VCAoVmVjdG9yLm1hcAoJCQkodiwgZm4gb3B0ID0+CgkJCSBPcHRpb24ubWFwIChvcHQsIGZuIGEn
ID0+IFZlY3Rvci5jb25jYXQgW2EsIGEnXSkpKQoJCSAgZnVuIGFkZEFjdGlvbiAocywgYSkgPSBh
ZGRBY3Rpb25zIChzLCBWZWN0b3IubmV3MSBhKQoJCSAgZnVuIHVuaW9uIChUIHYsIFQgdicpOiB0
ID0KCQkgICAgIFQgKFZlY3Rvci50YWJ1bGF0ZQoJCQkobnVtUG9zLCBmbiBpID0+CgkJCSBjYXNl
IChWZWN0b3Iuc3ViICh2LCBpKSwgVmVjdG9yLnN1YiAodicsIGkpKSBvZgoJCQkgICAgKE5PTkUs
IGEpID0+IGEKCQkJICB8IChhLCBOT05FKSA9PiBhCgkJCSAgfCBfID0+IEVycm9yLmJ1ZyAicmVn
ZXhwLnNtbDogdW5pb24iKSkKCQkgIGZ1biBzaW5nbGV0b24gKGk6IGludCk6IHQgPQoJCSAgICAg
VCAoVmVjdG9yLnRhYnVsYXRlIChudW1Qb3MsIGZuIGogPT4KCQkJCQkgaWYgaSA9IGoKCQkJCQkg
ICAgdGhlbiBTT01FIChWZWN0b3IubmV3MCAoKSkKCQkJCQkgZWxzZSBOT05FKSkKCQkgIGZ1biBm
b3JlYWNoIChUIHYsIGYpID0KCQkgICAgIFZlY3Rvci5mb3JlYWNoaSAodiwgZm4gKGksIG9wdCkg
PT4KCQkJCSAgICAgIGNhc2Ugb3B0IG9mCgkJCQkJIE5PTkUgPT4gKCkKCQkJCSAgICAgICB8IFNP
TUUgYSA9PiBmIChpLCBhKSkKCSAgICAgICBlbmQKCSAgICAgICBmdW4gY29ubmVjdCAodiwgdicp
ID0KCQkgIGZvcmVhY2gKCQkgICh2LCBmbiAocywgYSkgPT4KCQkgICBmb3JlYWNoCgkJICAgKHYn
LCBmbiAocycsIGEnKSA9PgoJCSAgICBBcnJheTIudXBkYXRlIChmb2xsb3csIHMsIHMnLAoJCQkJ
ICAgU09NRSAoVmVjdG9yLmNvbmNhdCBbYSwgYSddKSkpKQoJICAgICAgIHZhbCBhbmNob3JTdGFy
dHMgPSByZWYgW10KCSAgICAgICAoKiBUaGUgZm9sbG93aW5nIGxvb3AgZmlsbHMgaW4gZm9sbG93
IGFuZCBwb3NDaGFycy4KCQkqIGZpcnN0IHNldCBvZiBwb3NpdGlvbnMgdGhhdAoJCSogbnVsbGFi
bGUgaXMgU09NRSB2IGlmZiB0aGUgcmVnZXhwIGlzIG51bGxhYmxlLCB3aGVyZSB2IGlzIHRoZQoJ
CSogc2VxdWVuY2Ugb2YgYWN0aW9ucyB0byBwZXJmb3JtIGlmIHRoZSBleHByZXNzaW9uIGlzIG51
bGwuCgkJKikKCSAgICAgICBmdW4gbG9vcCAocjogUmVnZXhwLnQpOiB7Zmlyc3Q6IHNldCwKCQkJ
CQlsYXN0OiBzZXQsCgkJCQkJbnVsbGFibGU6IE1hdGNoQWN0aW9uLnQgdmVjdG9yIG9wdGlvbn0g
PQoJCSAgY2FzZSByIG9mCgkJICAgICBSZWdleHAuQW5jaG9yU3RhcnQgPT4KCQkJbGV0CgkJCSAg
IHZhbCBpID0gKysgcG9zQ291bnRlcgoJCQkgICB2YWwgXyA9IExpc3QucHVzaCAoYW5jaG9yU3Rh
cnRzLCBpKQoJCQkgICB2YWwgZmlyc3QgPSBzaW5nbGV0b24gaQoJCQlpbgoJCQkgICB7Zmlyc3Qg
PSBmaXJzdCwKCQkJICAgIGxhc3QgPSBmaXJzdCwKCQkJICAgIG51bGxhYmxlID0gTk9ORX0KCQkJ
ZW5kCgkJICAgfCBSZWdleHAuQ2hhclNldCBmID0+CgkJCWxldAoJCQkgICB2YWwgaSA9ICsrIHBv
c0NvdW50ZXIKCQkJICAgdmFsIF8gPQoJCQkgICAgICBJbnQuZm9yCgkJCSAgICAgICgwLCBudW1D
aGFycywgZm4gYyA9PgoJCQkgICAgICAgaWYgZiAoQ2hhci5jaHIgYykKCQkJCSAgdGhlbiBBcnJh
eTIudXBkYXRlIChwb3NDaGFycywgaSwgYywgdHJ1ZSkKCQkJICAgICAgIGVsc2UgKCkpCgkJCSAg
IHZhbCBmaXJzdCA9IHNpbmdsZXRvbiBpCgkJCWluIHtmaXJzdCA9IGZpcnN0LAoJCQkgICAgbGFz
dCA9IGZpcnN0LAoJCQkgICAgbnVsbGFibGUgPSBOT05FfQoJCQllbmQKCQkgICB8IFJlZ2V4cC5P
ciBycyA9PgoJCQlMaXN0LmZvbGQKCQkJKHJzLCB7Zmlyc3QgPSBlbXB0eSwKCQkJICAgICAgbGFz
dCA9IGVtcHR5LAoJCQkgICAgICBudWxsYWJsZSA9IE5PTkV9LAoJCQkgZm4gKHIsIHtmaXJzdCA9
IGYsIGxhc3QgPSBsLCBudWxsYWJsZSA9IG59KSA9PgoJCQkgbGV0CgkJCSAgICB2YWwge2ZpcnN0
ID0gZicsIGxhc3QgPSBsJywgbnVsbGFibGUgPSBuJ30gPQoJCQkgICAgICAgbG9vcCByCgkJCSBp
bgoJCQkgICAge2ZpcnN0ID0gdW5pb24gKGYsIGYnKSwKCQkJICAgICBsYXN0ID0gdW5pb24gKGws
IGwnKSwKCQkJICAgICBudWxsYWJsZSA9IGlmIGlzU29tZSBuIHRoZW4gbiBlbHNlIG4nfQoJCQkg
ZW5kKQoJCSAgIHwgUmVnZXhwLlNhdmUgKHIsIHMpID0+CgkJCWxldAoJCQkgICB2YWwge2ZpcnN0
ID0gZiwgbGFzdCA9IGwsIG51bGxhYmxlID0gbn0gPSBsb29wIHIKCQkJICAgdmFsIHN0YXJ0ID0g
TWF0Y2hBY3Rpb24uU3RhcnQgcwoJCQkgICB2YWwgZmluaXNoID0gTWF0Y2hBY3Rpb24uRmluaXNo
IHMKCQkJaW4KCQkJICAge2ZpcnN0ID0gYWRkQWN0aW9uIChmLCBzdGFydCksCgkJCSAgICBsYXN0
ID0gYWRkQWN0aW9uIChsLCBmaW5pc2gpLAoJCQkgICAgbnVsbGFibGUgPSBPcHRpb24ubWFwIChu
LCBmbiB2ID0+CgkJCQkJCSAgIFZlY3Rvci5jb25jYXQKCQkJCQkJICAgW1ZlY3Rvci5uZXcxIHN0
YXJ0LAoJCQkJCQkgICAgdiwKCQkJCQkJICAgIFZlY3Rvci5uZXcxIGZpbmlzaF0pfQoJCQllbmQK
CQkgICB8IFJlZ2V4cC5TZXEgcnMgPT4KCQkJTGlzdC5mb2xkCgkJCShycywge2ZpcnN0ID0gZW1w
dHksCgkJCSAgICAgIGxhc3QgPSBlbXB0eSwKCQkJICAgICAgbnVsbGFibGUgPSBTT01FIChWZWN0
b3IubmV3MCAoKSl9LAoJCQkgZm4gKHIsIHtmaXJzdCA9IGYsIGxhc3QgPSBsLCBudWxsYWJsZSA9
IG59KSA9PgoJCQkgbGV0CgkJCSAgICB2YWwge2ZpcnN0ID0gZicsIGxhc3QgPSBsJywgbnVsbGFi
bGUgPSBuJ30gPQoJCQkgICAgICAgbG9vcCByCgkJCSAgICB2YWwgXyA9IGNvbm5lY3QgKGwsIGYn
KQoJCQkgICAgdmFsIGZpcnN0ID0KCQkJICAgICAgIGNhc2UgbiBvZgoJCQkJICBOT05FID0+IGYK
CQkJCXwgU09NRSB2ID0+IHVuaW9uIChmLCBhZGRBY3Rpb25zIChmJywgdikpCgkJCSAgICB2YWwg
bGFzdCA9CgkJCSAgICAgICBjYXNlIG4nIG9mCgkJCQkgIE5PTkUgPT4gbCcKCQkJCXwgU09NRSB2
ID0+IHVuaW9uIChsJywgYWRkQWN0aW9ucyAobCwgdikpCgkJCSBpbgoJCQkgICAge2ZpcnN0ID0g
Zmlyc3QsIAoJCQkgICAgIGxhc3QgPSBsYXN0LAoJCQkgICAgIG51bGxhYmxlID0gKGNhc2UgKG4s
IG4nKSBvZgoJCQkJCSAgICAoU09NRSB2LCBTT01FIHYnKSA9PgoJCQkJCSAgICAgICBTT01FIChW
ZWN0b3IuY29uY2F0IFt2LCB2J10pCgkJCQkJICB8IF8gPT4gTk9ORSl9CgkJCSBlbmQpCgkJICAg
fCBSZWdleHAuU3RhciByID0+CgkJCWxldAoJCQkgICB2YWwge2ZpcnN0ID0gZiwgbGFzdCA9IGws
IC4uLn0gPSBsb29wIHIKCQkJICAgdmFsIF8gPSBjb25uZWN0IChsLCBmKQoJCQlpbgoJCQkgICB7
Zmlyc3QgPSBmLCBsYXN0ID0gbCwKCQkJICAgIG51bGxhYmxlID0gU09NRSAoVmVjdG9yLm5ldzAg
KCkpfQoJCQllbmQKCSAgICAgICB2YWwge2ZpcnN0LCBsYXN0LCBudWxsYWJsZX0gPSBsb29wIHIK
CSAgICAgICAoKiBBbnkgYW5jaG9yIHN0YXJ0cyBpbiBmaXJzdCBzaG91bGQgYmUgYW5jaG9yIHN0
YXJ0cy4gKikKCSAgICAgICB2YWwgYW5jaG9yU3RhcnRzID0KCQkgIFZlY3Rvci5rZWVwQWxsTWFw
CgkJICAoVmVjdG9yLmZyb21MaXN0TWFwICghYW5jaG9yU3RhcnRzLCBmbiBzID0+CgkJCQkgICAg
ICAgT3B0aW9uLm1hcCAobG9va3VwIChmaXJzdCwgcyksIGZuIHYgPT4KCQkJCQkJICAgKHMsIHYp
KSksCgkJICAgZm4geCA9PiB4KQoJICAgICAgICgqIFRoZSBwb3NpdGlvbnMgaW4gZmlyc3QgYXJl
IHJlYWNoYWJsZSBmcm9tIHRoZSBzdGFydCBzdGF0ZS4gKikKCSAgICAgICB2YWwgXyA9IGZvcmVh
Y2ggKGZpcnN0LCBmbiAoaSwgYSkgPT4KCQkJCUFycmF5Mi51cGRhdGUgKGZvbGxvdywgc3RhcnQs
IGksIFNPTUUgYSkpCgkgICAgICAgKCogVGhlIHBvc2l0aW9ucyBpbiBsYXN0IGFyZSBhbGwgZmlu
YWwgc3RhdGVzLiAqKQoJICAgICAgIHZhbCBmaW5hbCA9IEFycmF5LmFycmF5IChudW1TdGF0ZXMs
IE5PTkUpCgkgICAgICAgdmFsIF8gPSBmb3JlYWNoIChsYXN0LCBmbiAoaSwgYSkgPT4KCQkJCUFy
cmF5LnVwZGF0ZSAoZmluYWwsIGksIFNPTUUgYSkpCgkgICAgICAgKCogVGhlIHN0YXJ0IHN0YXRl
IGlzIGZpbmFsIGlmZiB0aGUgd2hvbGUgcmVnZXhwIGlzIG51bGxhYmxlLiAqKQoJICAgICAgIHZh
bCBfID0KCQkgIGNhc2UgbnVsbGFibGUgb2YKCQkgICAgIE5PTkUgPT4gKCkKCQkgICB8IFNPTUUg
diA9PiBBcnJheS51cGRhdGUgKGZpbmFsLCBzdGFydCwgU09NRSB2KQoJICAgICAgICgqIENvbXB1
dGUgdGhlIHRyYW5zaXRpb24gdGFibGUsICJuZXh0Ii4gKikKCSAgICAgICB2YWwgdG1wOiBNYXRj
aEFjdGlvbi50IHZlY3RvciBvcHRpb24gQXJyYXkudCA9CgkJICBBcnJheS5uZXcgKG51bVN0YXRl
cywgTk9ORSkKCSAgICAgICB2YWwgbmV4dCA9CgkJICBBcnJheTIudGFidWxhdGUKCQkgIChudW1T
dGF0ZXMsIG51bUNoYXJzLCBmbiAoaSwgYykgPT4KCQkgICBsZXQKCQkgICAgICB2YWwgXyA9CgkJ
CSBJbnQuZm9yCgkJCSAoMCwgbnVtUG9zLCBmbiBqID0+CgkJCSAgY2FzZSBBcnJheTIuc3ViIChm
b2xsb3csIGksIGopIG9mCgkJCSAgICAgTk9ORSA9PiAoKQoJCQkgICB8IFNPTUUgYSA9PiAKCQkJ
CWlmIEFycmF5Mi5zdWIgKHBvc0NoYXJzLCBqLCBjKQoJCQkJICAgdGhlbiBBcnJheS51cGRhdGUg
KHRtcCwgaiwgU09NRSBhKQoJCQkJZWxzZSAoKSkKCQkgICAgICB2YWwgcmVzID0KCQkJIEFycmF5
LmtlZXBBbGxNYXBpICh0bXAsIGZuIChpLCBvcHQpID0+CgkJCQkJICAgIE9wdGlvbi5tYXAgKG9w
dCwgZm4gdiA9PiAoaSwgdikpKQoJCSAgICAgIHZhbCBfID0gSW50LmZvciAoMCwgbnVtU3RhdGVz
LCBmbiBqID0+CgkJCQkgICAgICAgQXJyYXkudXBkYXRlICh0bXAsIGosIE5PTkUpKQoJCSAgIGlu
CgkJICAgICAgcmVzCgkJICAgZW5kKQoJICAgICAgICgqIFR3byBjaGFyYWN0ZXJzIGFyZSBlcXVp
dmFsZW50IGlmIGFsbCBzdGF0ZXMgdHJlYXQgdGhlbSB0aGUKCQkqIHNhbWUuCgkJKikKCSAgICAg
ICBmdW4gY2hhckVxdWl2IChjOiBpbnQsIGMnOiBpbnQpID0KCQkgIEludC5mb3JhbGwKCQkgICgw
LCBudW1TdGF0ZXMsIGZuIGkgPT4KCQkgICBBcnJheS5lcXVhbHMKCQkgICAoQXJyYXkyLnN1YiAo
bmV4dCwgaSwgYyksCgkJICAgIEFycmF5Mi5zdWIgKG5leHQsIGksIGMnKSwKCQkgICAgZm4gKChq
LCB2KSwgKGonLCB2JykpID0+CgkJICAgIGogPSBqJyBhbmRhbHNvIFZlY3Rvci5lcXVhbHMgKHYs
IHYnLCBNYXRjaEFjdGlvbi5lcXVhbHMpKSkKCSAgICAgICAoKiBDb21wdXRlIGNoYXJDbGFzcy4g
KikKCSAgICAgICB2YWwgcmVwQ291bnRlciA9IHJlZiB+MQoJICAgICAgIHZhbCByZXBzID0gcmVm
IFtdICgqIHJlcHJlc2VudGF0aXZlIG9mIGVhY2ggY2hhciBjbGFzcyAqKQoJICAgICAgIHZhbCBj
aGFyQ2xhc3MgPSBBcnJheS5uZXcgKG51bUNoYXJzLCB+MSkKCSAgICAgICB2YWwgXyA9IAoJCSAg
SW50LmZvciAoMCwgbnVtQ2hhcnMsIGZuIGMgPT4KCQkJICAgbGV0CgkJCSAgICAgIHZhbCByZXAg
PSAKCQkJCSBjYXNlIExpc3QucGVlayAoIXJlcHMsIGZuIHtjaGFyLCAuLi59ID0+CgkJCQkJCSBj
aGFyRXF1aXYgKGMsIGNoYXIpKSBvZgoJCQkJICAgIE5PTkUgPT4KCQkJCSAgICAgICBsZXQKCQkJ
CQkgIHZhbCByZXAgPSArKyByZXBDb3VudGVyCgkJCQkgICAgICAgaW4gTGlzdC5wdXNoIChyZXBz
LCB7Y2hhciA9IGMsIHJlcCA9IHJlcH0pCgkJCQkJICA7IHJlcAoJCQkJICAgICAgIGVuZAoJCQkJ
ICB8IFNPTUUge3JlcCwgLi4ufSA9PiByZXAKCQkJICAgaW4gQXJyYXkudXBkYXRlIChjaGFyQ2xh
c3MsIGMsIHJlcCkKCQkJICAgZW5kKQoJICAgICAgIHZhbCBudW1DbGFzc2VzID0gMSArICFyZXBD
b3VudGVyCgkgICAgICAgKCogQ29tcHV0ZSAibmV4dCIgZm9yIHRoZSBjaGFyQ2xhc3Nlcy4gKikK
CSAgICAgICB2YWwgbmV4dCcgPQoJCSAgQXJyYXkyLm5ldyAobnVtU3RhdGVzLCBudW1DbGFzc2Vz
LCBBcnJheS5mcm9tTGlzdCBbXSkKCSAgICAgICB2YWwgXyA9CgkJICBMaXN0LmZvcmVhY2gKCQkg
ICghcmVwcywgZm4ge2NoYXIsIHJlcH0gPT4KCQkgICBJbnQuZm9yICgwLCBudW1TdGF0ZXMsIGZu
IHN0YXRlID0+CgkJCSAgICBBcnJheTIudXBkYXRlIChuZXh0Jywgc3RhdGUsIHJlcCwKCQkJCQkg
ICBBcnJheTIuc3ViIChuZXh0LCBzdGF0ZSwgY2hhcikpKSkKCSAgICBpbgoJICAgICAgIFQge2Fu
Y2hvclN0YXJ0cyA9IGFuY2hvclN0YXJ0cywKCQkgIGNoYXJDbGFzcyA9IGNoYXJDbGFzcywKCQkg
IGZpbmFsID0gZmluYWwsCgkJICBuZXh0ID0gbmV4dCcsCgkJICBzYXZlcyA9IHNhdmVzLAoJCSAg
c2VlbiA9IEFycmF5Lm5ldyAobnVtU3RhdGVzLCBmYWxzZSksCgkJICBzdGFjazEgPSBTdGFjay5u
ZXcgKG51bVN0YXRlcywgKH4xLCBBY3Rpb25zLmVtcHR5KSksCgkJICBzdGFjazIgPSBTdGFjay5u
ZXcgKG51bVN0YXRlcywgKH4xLCBBY3Rpb25zLmVtcHR5KSksCgkJICBzdGFydCA9IHN0YXJ0fQoJ
ICAgIGVuZAoJIAoJIHN0cnVjdHVyZSBHcmFwaCA9IERpcmVjdGVkR3JhcGgKCSBmdW4gbGF5b3V0
RG90IChUIHthbmNob3JTdGFydHMsIGNoYXJDbGFzcywgZmluYWwsIG5leHQsIHN0YXJ0LCAuLi59
LAoJCQl0aXRsZTogc3RyaW5nKTogTGF5b3V0LnQgPQoJICAgIGxldAoJICAgICAgIHZhbCBudW1T
dGF0ZXMgPSBBcnJheTIublJvd3MgbmV4dAoJICAgICAgIG9wZW4gR3JhcGguTGF5b3V0RG90Cgkg
ICAgICAgdmFsIGcgPSBHcmFwaC5uZXcgKCkKCSAgICAgICB2YWwgbm9kZXMgPSBWZWN0b3IudGFi
dWxhdGUgKG51bVN0YXRlcywgZm4gXyA9PiBHcmFwaC5uZXdOb2RlIGcpCgkgICAgICAgZnVuIG5v
ZGUgaSA9IFZlY3Rvci5zdWIgKG5vZGVzLCBpKQoJICAgICAgIHZhbCB7Z2V0ID0gbm9kZU9wdGlv
bnN9ID0KCQkgIFByb3BlcnR5LmdldCAoR3JhcGguTm9kZS5wbGlzdCwKCQkJCVByb3BlcnR5Lmlu
aXRGdW4KCQkJCShmbiBfID0+IGxldCBvcGVuIE5vZGVPcHRpb24KCQkJCQkgaW4gcmVmIFtdCgkJ
CQkJIGVuZCkpCgkgICAgICAgdmFsIHtnZXQgPSBlZGdlT3B0aW9uc30gPQoJCSAgUHJvcGVydHku
Z2V0IChHcmFwaC5FZGdlLnBsaXN0LAoJCQkJUHJvcGVydHkuaW5pdEZ1bgoJCQkJKGZuIF8gPT4g
bGV0IG9wZW4gRWRnZU9wdGlvbgoJCQkJCSBpbiByZWYgW10KCQkJCQkgZW5kKSkKCSAgICAgICBm
dW4gYWRkTm9kZU9wdGlvbiAoaSwgb3B0cykgPQoJCSAgbGV0IHZhbCByID0gbm9kZU9wdGlvbnMg
KG5vZGUgaSkKCQkgIGluIHIgOj0gb3B0cyBAICFyCgkJICBlbmQKCSAgICAgICB2YWwgXyA9IGFk
ZE5vZGVPcHRpb24gKHN0YXJ0LAoJCQkJICAgICAgbGV0IG9wZW4gTm9kZU9wdGlvbgoJCQkJICAg
ICAgaW4gW0xhYmVsICJzdGFydCJdCgkJCQkgICAgICBlbmQpCgkgICAgICAgdmFsIF8gPQoJCSAg
SW50LmZvcgoJCSAgKDAsIG51bVN0YXRlcywgZm4gc3JjID0+CgkJICAgbGV0CgkJICAgICAgdmFs
IHNoYXBlID0gCgkJCSBjYXNlIChpc1NvbWUgKEFycmF5LnN1YiAoZmluYWwsIHNyYykpLAoJCQkg
ICAgICAgVmVjdG9yLmV4aXN0cyAoYW5jaG9yU3RhcnRzLCBmbiAocywgXykgPT4KCQkJCQkgICAg
ICBzID0gc3JjKSkgb2YKCQkJICAgIChmYWxzZSwgZmFsc2UpID0+IEVsbGlwc2UKCQkJICB8ICh0
cnVlLCBmYWxzZSkgPT4gQm94CgkJCSAgfCAoZmFsc2UsIHRydWUpID0+IERpYW1vbmQKCQkJICB8
ICh0cnVlLCB0cnVlKSA9PiBQb2x5Z29uIHtzaWRlcyA9IDUsIG9wdGlvbnMgPSBbXX0KCQkgICAg
ICB2YWwgXyA9CgkJCSBhZGROb2RlT3B0aW9uIChzcmMsIGxldCBvcGVuIE5vZGVPcHRpb24KCQkJ
CQkgICAgIGluIFtTaGFwZSBzaGFwZV0KCQkJCQkgICAgIGVuZCkKCQkgICAgICB2YWwgZHN0cyA9
IEFycmF5Lm5ldyAobnVtU3RhdGVzLCBbXSkKCQkgICAgICB2YWwgXyA9IAoJCQkgSW50LmZvckRv
d24KCQkJICgwLCBudW1DaGFycywgZm4gYyA9PgoJCQkgIGlmIFZlY3Rvci5zdWIgKHZhbGlkQ2hh
cnMsIGMpCgkJCSAgICAgdGhlbgoJCQkJbGV0CgkJCQkgICB2YWwgY2hhciA9IENoYXIuZnJvbUlu
dCBjCgkJCQkgICB2YWwgY2xhc3MgPSBBcnJheS5zdWIgKGNoYXJDbGFzcywgYykKCQkJCWluIEFy
cmF5LmZvcmVhY2gKCQkJCSAgIChBcnJheTIuc3ViIChuZXh0LCBzcmMsIGNsYXNzKSwgZm4gKGRz
dCwgXykgPT4KCQkJCSAgICBBcnJheS51cGRhdGUgKGRzdHMsIGRzdCwKCQkJCQkJICBjaGFyIDo6
IEFycmF5LnN1YiAoZHN0cywgZHN0KSkpCgkJCQllbmQKCQkJICBlbHNlICgpKQoJCSAgIGluCgkJ
ICAgICAgQXJyYXkuZm9yZWFjaGkKCQkgICAgICAoZHN0cywgZm4gKGRzdCwgY3MpID0+CgkJICAg
ICAgIGNhc2UgY3Mgb2YKCQkJICBbXSA9PiAoKQoJCQl8IF8gPT4KCQkJICAgICBsZXQKCQkJCXZh
bCBlZGdlID0gR3JhcGguYWRkRWRnZSAoZywge2Zyb20gPSBub2RlIHNyYywKCQkJCQkJCSAgICAg
IHRvID0gbm9kZSBkc3R9KQoJCQkgICAgIGluIExpc3QucHVzaCAoZWRnZU9wdGlvbnMgZWRnZSwK
CQkJCQkgICBsZXQgb3BlbiBFZGdlT3B0aW9uCgkJCQkJICAgaW4gTGFiZWwgKGVkZ2VMYWJlbCBj
cykKCQkJCQkgICBlbmQpCgkJCSAgICAgZW5kKQoJCSAgIGVuZCkKCSAgICBpbgoJICAgICAgIGxh
eW91dAoJICAgICAgIHtncmFwaCA9IGcsCgkJdGl0bGUgPSB0aXRsZSwKCQlvcHRpb25zID0gbGV0
IG9wZW4gR3JhcGhPcHRpb24KCQkJICBpbiBbCgkJCSAgICAgIFJhbmtEaXIgTGVmdFRvUmlnaHQK
CQkJICAgICAgXQoJCQkgIGVuZCwKCQkgICAgICAgZWRnZU9wdGlvbnMgPSAhIG8gZWRnZU9wdGlv
bnMsCgkJICAgICAgIG5vZGVPcHRpb25zID0gISBvIG5vZGVPcHRpb25zfQoJICAgIGVuZAogICAg
ICBlbmQKCiAgIHN0cnVjdHVyZSBERkE6CiAgICAgIHNpZwoJIHR5cGUgdAoKCSB2YWwgZnJvbU5G
QTogTkZBLnQgLT4gdAoJIHZhbCBsYXlvdXQ6IHQgLT4gTGF5b3V0LnQKCSB2YWwgbGF5b3V0RG90
OiB7ZGZhOiB0LAoJCQkgc2hvd0RlYWQ6IGJvb2wsCgkJCSB0aXRsZTogc3RyaW5nfSAtPiBMYXlv
dXQudAoJIHZhbCBtYXRjaDoge2RmYTogdCwKCQkgICAgIHNob3J0OiBib29sLAoJCSAgICAgc3Ry
aW5nOiBzdHJpbmcsCgkJICAgICBzdGFydFBvczogaW50LAoJCSAgICAgYW5jaG9yU3RhcnQ6IGJv
b2x9IC0+IChpbnQgKiBBY3Rpb25zLnQpIG9wdGlvbgoJIHZhbCBtaW5pbWl6ZTogdCAtPiB0Cgkg
dmFsIHNhdmVzOiB0IC0+IFNhdmUudCB2ZWN0b3IKICAgICAgZW5kID0KICAgICAgc3RydWN0Cgkg
KCogVGhlIHN0YXRlcyBpbiBhIERGQSBhcmUgaW5kZXhlZCBmcm9tIDAgdG8gbi0xLCB3aGVyZSBu
IGlzIHRoZSBudW1iZXIKCSAgKiBvZiBzdGF0ZXMuCgkgICopCgkgc3RydWN0dXJlIFN0YXRlID0K
CSAgICBzdHJ1Y3QKCSAgICAgICB0eXBlIHQgPSBpbnQKCgkgICAgICAgdmFsIGxheW91dCA9IElu
dC5sYXlvdXQKCSAgICBlbmQKCgkgdHlwZSBzbG90ID0gaW50CgoJIHN0cnVjdHVyZSBFZGdlQWN0
aW9uID0KCSAgICBzdHJ1Y3QKCSAgICAgICBkYXRhdHlwZSB0ID0gVCBvZiB7ZnJvbTogc2xvdCwK
CQkJCSAgdG86IHNsb3QsCgkJCQkgIGFjdGlvbnM6IE1hdGNoQWN0aW9uLnQgdmVjdG9yfQoKCSAg
ICAgICBmdW4gbGF5b3V0IChUIHtmcm9tLCB0bywgYWN0aW9uc30pID0KCQkgIExheW91dC5yZWNv
cmQKCQkgIFsoImZyb20iLCBJbnQubGF5b3V0IGZyb20pLAoJCSAgICgidG8iLCBJbnQubGF5b3V0
IHRvKSwKCQkgICAoImFjdGlvbnMiLCBWZWN0b3IubGF5b3V0IE1hdGNoQWN0aW9uLmxheW91dCBh
Y3Rpb25zKV0KCSAgICBlbmQKCSAKCSAoKiBTdGF0ZSBpIGlzIGZpbmFsIGlmZiBBcnJheS5zdWIg
KGZpbmFsLCBpKS4KCSAgKiBDaGFyYWN0ZXJzIGFyZSBncm91cGVkIGludG8gZXF1aXZhbGVuY2Ug
Y2xhc3NlcywgcmVwcmVzZW50ZWQgYnkKCSAgKiBpbnRlZ2VycyBpbiBbMCwgbnVtQ2hhckNsYXNz
ZXMpLgoJICAqIFRoZSBlcXVpdmFsZW5jZSBjbGFzcyBvZiBjIGlzIEFycmF5LnN1YiAoY2hhckNs
YXNzLCBDaGFyLnRvSW50IGMpLgoJICAqIFRoZSBkaW1lbnNpb25zIG9mIG5leHQgYXJlIG51bVN0
YXRlcyB4IG51bUNoYXJDbGFzc2VzCgkgICogVGhlIG91dGdvaW5nIHN0YXRlIGZyb20gc3RhdGUg
aSBvbiBpbnB1dCBjaGFyIGMgaXMKCSAgKiAgIEFycmF5Mi5zdWIgKG5leHQsIGksIEFycmF5LnN1
YiAoY2hhckNsYXNzLCBDaGFyLnRvSW50IGMpKS4KCSAgKiBhY3Rpb25zMSBhbmQgYWN0aW9uczIg
YXJlIHVzZWQgb25seSBkdXJpbmcgbWF0Y2hpbmcuICBUaGV5CgkgICogcmVwcmVzZW50IHRoZSBh
Y3Rpb25zIGFzc29jaWF0ZWQgd2l0aCBlYWNoIE5GQSBzdGF0ZS4gIFRoZXkgYXJlIG9mCgkgICog
dGhlIHNhbWUgbGVuZ3RoIGFzIHRoZSBudW1iZXIgb2Ygc3RhdGVzIGluIHRoZSBORkEuCgkgICop
CgkgZGF0YXR5cGUgdCA9CgkgICAgVCBvZiB7YW5jaG9yU3RhcnQ6IFN0YXRlLnQsCgkJICBhbmNo
b3JTdGFydFN0YWNrOiBNYXRjaEFjdGlvbi50IHZlY3RvciB2ZWN0b3IsCgkJICBjaGFyQ2xhc3M6
IGludCBhcnJheSwgKCogb2YgbGVuZ3RoIG51bUNoYXJzICopCgkJICBkZWFkOiBib29sIGFycmF5
LAoJCSAgZmluYWw6IHtzbG90OiBpbnQsCgkJCSAgYWN0aW9uczogTWF0Y2hBY3Rpb24udCB2ZWN0
b3J9IG9wdGlvbiBhcnJheSwKCQkgIG5leHQ6IChTdGF0ZS50ICogRWRnZUFjdGlvbi50IHZlY3Rv
cikgQXJyYXkyLnQsCgkJICBzYXZlczogU2F2ZS50IHZlY3RvciwKCQkgIHN0YWNrMTogQWN0aW9u
cy50IGFycmF5LCAoKiBvZiBzaXplIG1heE51bU5GQVN0YXRlcyAqKQoJCSAgc3RhY2syOiBBY3Rp
b25zLnQgYXJyYXksICgqIG9mIHNpemUgbWF4TnVtTkZBU3RhdGVzICopCgkJICBzdGFydDogU3Rh
dGUudCwKCQkgIHN0YXJ0U3RhY2s6IE1hdGNoQWN0aW9uLnQgdmVjdG9yIHZlY3Rvcn0KCgkgZnVu
IG51bVN0YXRlcyAoVCB7bmV4dCwgLi4ufSk6IGludCA9IEFycmF5Mi5uUm93cyBuZXh0CgkgZnVu
IG51bUNoYXJDbGFzc2VzIChUIHtuZXh0LCAuLi59KSA9IEFycmF5Mi5uQ29scyBuZXh0CgkgZnVu
IHNhdmVzIChUIHtzYXZlcywgLi4ufSkgPSBzYXZlcwoKCSBmdW4gbGF5b3V0IChkZmE6IHQpOiBM
YXlvdXQudCA9CgkgICAgbGV0CgkgICAgICAgb3BlbiBMYXlvdXQKCSAgICBpbgoJICAgICAgIHNl
cSBbc3RyICJERkEgd2l0aCAiLAoJCSAgICBJbnQubGF5b3V0IChudW1TdGF0ZXMgZGZhKSwgc3Ry
ICIgc3RhdGVzIGFuZCAiLAoJCSAgICBJbnQubGF5b3V0IChudW1DaGFyQ2xhc3NlcyBkZmEpLCBz
dHIgIiBjaGFyQ2xhc3NlcyJdCgkgICAgZW5kCgkgICAgCgkgZnVuIGRlYWQgKG51bVN0YXRlcywg
bnVtQ2hhckNsYXNzZXMsIGZpbmFsLCBuZXh0KSA9CgkgICAgQXJyYXkudGFidWxhdGUKCSAgICAo
bnVtU3RhdGVzLCBmbiBpID0+CgkgICAgIG5vdCAoaXNTb21lIChBcnJheS5zdWIgKGZpbmFsLCBp
KSkpCgkgICAgIGFuZGFsc28gSW50LmZvcmFsbCAoMCwgbnVtQ2hhckNsYXNzZXMsIGZuIGMgPT4K
CQkJCSBsZXQgdmFsIChqLCB2KSA9IEFycmF5Mi5zdWIgKG5leHQsIGksIGMpCgkJCQkgaW4gaSA9
IGogYW5kYWxzbyBWZWN0b3IuaXNFbXB0eSB2CgkJCQkgZW5kKSkKCgkgKCogVG8gYnVpbGQgYSBE
RkEgZnJvbSBhbiBORkEsIEkgdXNlIHRoZSB1c3VhbCAic3Vic2V0IGNvbnN0cnVjdGlvbiIsCgkg
ICogYXMgaW4gYWxnb3JpdGhtIDMuMiAocGFnZSAxMTgpIG9mIHRoZSBEcmFnb24gQm9vay4KCSAg
KgoJICAqIEl0IGFzc29jaWF0ZXMgZWFjaCAocmVhY2hhYmxlKSBzZXQgb2Ygc3RhdGVzIGluIHRo
ZSBORkEgd2l0aCBhIHNpbmdsZQoJICAqIHN0YXRlIGluIHRoZSBERkEuCgkgICopCgkgZnVuIGZy
b21ORkEgKG5mYSBhcyBORkEuVCB7YW5jaG9yU3RhcnRzLCBjaGFyQ2xhc3MsCgkJCQkgICAgZmlu
YWwsIG5leHQsIHNhdmVzLCBzdGFydCwgLi4ufSkgPQoJICAgIGxldAoJICAgICAgIHZhbCBudW1D
aGFyQ2xhc3NlcyA9IE5GQS5udW1DaGFyQ2xhc3NlcyBuZmEKCSAgICAgICAoKiBTZXRzIG9mIHN0
YXRlcyBhcmUgcmVwcmVzZW50ZWQgYXMgYXJyYXlzLCBzb3J0ZWQgaW4gaW5jcmVhc2luZwoJCSog
b3JkZXIgb2Ygc3RhdGUgaW5kZXguCgkJKikKCSAgICAgICB0eXBlIHN0YXRlcyA9IE5GQS5TdGF0
ZS50IGFycmF5CgkgICAgICAgdmFsIGNvdW50ZXIgPSByZWYgfjEKCSAgICAgICB0eXBlIHdvcmsg
PQoJCSAge3N0YXRlczogc3RhdGVzLAoJCSAgIHN0YXRlOiBpbnQsCgkJICAgb3V0OiAoU3RhdGUu
dCAqIEVkZ2VBY3Rpb24udCB2ZWN0b3IpIHZlY3RvciBvcHRpb24gcmVmfQoJICAgICAgIHZhbCBj
YWNoZTogd29yayBsaXN0IHJlZiA9IHJlZiBbXQoJICAgICAgIHZhbCB0b2RvOiB3b3JrIGxpc3Qg
cmVmID0gcmVmIFtdCgkgICAgICAgdmFsIG1heE51bVN0YXRlczogaW50IHJlZiA9IHJlZiAwCgkg
ICAgICAgZnVuIHN0YXRlc1RvU3RhdGUgKHNzOiBzdGF0ZXMpOiBTdGF0ZS50ID0KCQkgIGxldAoJ
CSAgICAgdmFsIG4gPSBBcnJheS5sZW5ndGggc3MKCQkgICAgIHZhbCBfID0gaWYgbiA+ICFtYXhO
dW1TdGF0ZXMKCQkJCXRoZW4gbWF4TnVtU3RhdGVzIDo9IG4KCQkJICAgICBlbHNlICgpCgkJICBp
bgoJCSAgICAgY2FzZSBMaXN0LnBlZWsgKCFjYWNoZSwgZm4ge3N0YXRlcywgLi4ufSA9PgoJCQkJ
ICAgICBBcnJheS5lcXVhbHMgKHNzLCBzdGF0ZXMsIG9wID0pKSBvZgoJCQlOT05FID0+CgkJCSAg
IGxldAoJCQkgICAgICB2YWwgc3RhdGUgPSArKyBjb3VudGVyCgkJCSAgICAgIHZhbCB3b3JrID0g
e291dCA9IHJlZiBOT05FLAoJCQkJCSAgc3RhdGUgPSBzdGF0ZSwKCQkJCQkgIHN0YXRlcyA9IHNz
fQoJCQkgICAgICB2YWwgXyA9IExpc3QucHVzaCAoY2FjaGUsIHdvcmspCgkJCSAgICAgIHZhbCBf
ID0gTGlzdC5wdXNoICh0b2RvLCB3b3JrKQoJCQkgICBpbgoJCQkgICAgICBzdGF0ZQoJCQkgICBl
bmQKCQkgICAgICB8IFNPTUUge3N0YXRlLCAuLi59ID0+IHN0YXRlCgkJICBlbmQKCSAgICAgICB2
YWwgc3RhdGVzVG9TdGF0ZSA9CgkJICBUcmFjZS50cmFjZSAoInN0YXRlc1RvU3RhdGUiLCBBcnJh
eS5sYXlvdXQgTkZBLlN0YXRlLmxheW91dCwKCQkJICAgICAgIFN0YXRlLmxheW91dCkKCQkgIHN0
YXRlc1RvU3RhdGUKCSAgICAgICBsb2NhbAoJCSAgdmFsIHNlZW4gPSBBcnJheS5hcnJheSAoTkZB
Lm51bVN0YXRlcyBuZmEsIE5PTkUpCgkgICAgICAgaW4KCQkgIGZ1biBjb21wdXRlT3V0IHN0YXRl
cyA9CgkJICAgICBWZWN0b3IudGFidWxhdGUKCQkgICAgIChudW1DaGFyQ2xhc3NlcywgZm4gYyA9
PgoJCSAgICAgIGxldAoJCQkgdmFsIF8gPSBBcnJheS5tb2RpZnkgKHNlZW4sIGZuIF8gPT4gTk9O
RSkKCQkJIHZhbCBfID0gCgkJCSAgICBBcnJheS5mb3JlYWNoaQoJCQkgICAgKHN0YXRlcywgZm4g
KGZyb20sIHMpID0+CgkJCSAgICAgQXJyYXkuZm9yZWFjaAoJCQkgICAgIChBcnJheTIuc3ViIChu
ZXh0LCBzLCBjKSwKCQkJICAgICAgZm4gKHMnLCB2KSA9PgoJCQkgICAgICBjYXNlIEFycmF5LnN1
YiAoc2VlbiwgcycpIG9mCgkJCQkgTk9ORSA9PgoJCQkJICAgIEFycmF5LnVwZGF0ZQoJCQkJICAg
IChzZWVuLCBzJywgU09NRSB7ZnJvbSA9IGZyb20sCgkJCQkJCSAgICAgdG8gPSBzJywKCQkJCQkJ
ICAgICBhY3Rpb25zID0gdn0pCgkJCSAgICAgICB8IFNPTUUgXyA9PiAoKSkpCgkJCSB2YWwgdG9T
dGF0ZXMgPSBBcnJheS5rZWVwQWxsTWFwIChzZWVuLCBmbiBvcHQgPT4gb3B0KQoJCQkgdmFsIGVk
Z2VBY3Rpb25zID0gcmVmIFtdCgkJCSB2YWwgdG9TdGF0ZXMgPSAKCQkJICAgIEFycmF5Lm1hcGkK
CQkJICAgICh0b1N0YXRlcywgZm4gKGksIHtmcm9tLCB0bywgYWN0aW9uc30pID0+CgkJCSAgICAg
KGlmIGZyb20gPSBpCgkJCQkgYW5kYWxzbyBWZWN0b3IuaXNFbXB0eSBhY3Rpb25zCgkJCQkgdGhl
biAoKQoJCQkgICAgICBlbHNlCgkJCQkgTGlzdC5wdXNoIChlZGdlQWN0aW9ucywKCQkJCQkgICAg
RWRnZUFjdGlvbi5UIHtmcm9tID0gZnJvbSwKCQkJCQkJCSAgdG8gPSBpLAoJCQkJCQkJICBhY3Rp
b25zID0gYWN0aW9uc30pCgkJCSAgICAgIDsgdG8pKQoJCSAgICAgIGluIChzdGF0ZXNUb1N0YXRl
IHRvU3RhdGVzLAoJCQkgIFZlY3Rvci5mcm9tTGlzdCAoIWVkZ2VBY3Rpb25zKSkKCQkgICAgICBl
bmQpCgkgICAgICAgZW5kCgkgICAgICAgZnVuIGxvb3AgKCkgPQoJCSAgY2FzZSAhdG9kbyBvZgoJ
CSAgICAgW10gPT4gKCkKCQkgICB8IHtzdGF0ZXMsIG91dCwgLi4ufSA6OiByZXN0ID0+CgkJCSh0
b2RvIDo9IHJlc3QKCQkJIDsgb3V0IDo9IFNPTUUgKGNvbXB1dGVPdXQgc3RhdGVzKQoJCQkgOyBs
b29wICgpKQoJICAgICAgICgqIFRoZXNlIGNhbGxzIHRvIHN0YXRlc1RvU3RhdGUgaW5pdGlhbGl6
ZSB0aGUgd29ya2xpc3QuICopCgkgICAgICAgdmFsIHN0YXJ0JyA9IHN0YXRlc1RvU3RhdGUgKEFy
cmF5LmZyb21MaXN0IFtzdGFydF0pCgkgICAgICAgdmFsIHN0YXJ0U3RhY2sgPSBWZWN0b3IubmV3
MSAoVmVjdG9yLm5ldzAgKCkpCgkgICAgICAgdmFsIGFuY2hvclN0YXJ0U3RhdGVzID0KCQkgIEFy
cmF5LmZyb21MaXN0CgkJICAoTGlzdC5pbnNlcnQKCQkgICAoVmVjdG9yLnRvTGlzdE1hcCAoYW5j
aG9yU3RhcnRzLCAjMSksIHN0YXJ0LCBvcCA8PSkpCgkgICAgICAgdmFsIGFuY2hvclN0YXJ0JyA9
IHN0YXRlc1RvU3RhdGUgYW5jaG9yU3RhcnRTdGF0ZXMKCSAgICAgICB2YWwgYW5jaG9yU3RhcnRT
dGFjayA9CgkJICBWZWN0b3IudGFidWxhdGUKCQkgIChBcnJheS5sZW5ndGggYW5jaG9yU3RhcnRT
dGF0ZXMsCgkJICAgZm4gaSA9PgoJCSAgIGxldAoJCSAgICAgIHZhbCBzID0gQXJyYXkuc3ViIChh
bmNob3JTdGFydFN0YXRlcywgaSkKCQkgICBpbgoJCSAgICAgIGNhc2UgVmVjdG9yLnBlZWsgKGFu
Y2hvclN0YXJ0cywgZm4gKHMnLCBfKSA9PiBzID0gcycpIG9mCgkJCSBOT05FID0+IFZlY3Rvci5u
ZXcwICgpCgkJICAgICAgIHwgU09NRSAoXywgdikgPT4gdgoJCSAgIGVuZCkKCSAgICAgICB2YWwg
XyA9IGxvb3AgKCkKCSAgICAgICAoKiBUaGUgd29ya2xpc3QgaXMgZW1wdHkuICBDb21wdXRlIHRo
ZSB0cmFuc2l0aW9uIHRhYmxlLiAqKQoJICAgICAgIHZhbCBudW1TdGF0ZXMgPSAxICsgIWNvdW50
ZXIKCSAgICAgICB2YWwgbmV4dCcgPSBBcnJheTIubmV3IChudW1TdGF0ZXMsIG51bUNoYXJDbGFz
c2VzLAoJCQkJICAgICAgICh+MSwgVmVjdG9yLm5ldzAgKCkpKQoJICAgICAgIHZhbCBmaW5hbCcg
PSBBcnJheS5uZXcgKG51bVN0YXRlcywgTk9ORSkKCSAgICAgICB2YWwgXyA9CgkJICBMaXN0LmZv
cmVhY2gKCQkgICghY2FjaGUsIGZuIHtzdGF0ZXMsIHN0YXRlID0gaSwgb3V0LCAuLi59OiB3b3Jr
ID0+CgkJICAgbGV0CgkJICAgICAgdmFsIF8gPQoJCQkgVmVjdG9yLmZvcmVhY2hpCgkJCSAodmFs
T2YgKCEgb3V0KSwgZm4gKGMsIGopID0+CgkJCSAgQXJyYXkyLnVwZGF0ZSAobmV4dCcsIGksIGMs
IGopKQoJCSAgICAgIHZhbCBfID0KCQkJIGNhc2UgQXJyYXkucGVla01hcGkgKHN0YXRlcywgZm4g
cyA9PgoJCQkJCSAgICAgIEFycmF5LnN1YiAoZmluYWwsIHMpKSBvZgoJCQkgICAgTk9ORSA9PiAo
KQoJCQkgIHwgU09NRSAoc2xvdCwgdikgPT4gCgkJCSAgICAgICBBcnJheS51cGRhdGUgKGZpbmFs
JywgaSwgU09NRSB7c2xvdCA9IHNsb3QsCgkJCQkJCQkgICAgICBhY3Rpb25zID0gdn0pCgkJICAg
aW4gKCkKCQkgICBlbmQpCgkgICAgICAgZnVuIG5ld1N0YWNrICgpID0gQXJyYXkubmV3ICghbWF4
TnVtU3RhdGVzLCBBY3Rpb25zLmVtcHR5KQoJICAgIGluIFQge2FuY2hvclN0YXJ0ID0gYW5jaG9y
U3RhcnQnLAoJCSAgYW5jaG9yU3RhcnRTdGFjayA9IGFuY2hvclN0YXJ0U3RhY2ssCgkJICBjaGFy
Q2xhc3MgPSBjaGFyQ2xhc3MsCgkJICBkZWFkID0gZGVhZCAobnVtU3RhdGVzLCBudW1DaGFyQ2xh
c3NlcywgZmluYWwnLCBuZXh0JyksCgkJICBmaW5hbCA9IGZpbmFsJywKCQkgIG5leHQgPSBuZXh0
JywKCQkgIHNhdmVzID0gc2F2ZXMsCgkJICBzdGFjazEgPSBuZXdTdGFjayAoKSwKCQkgIHN0YWNr
MiA9IG5ld1N0YWNrICgpLAoJCSAgc3RhcnQgPSBzdGFydCcsCgkJICBzdGFydFN0YWNrID0gc3Rh
cnRTdGFja30KCSAgICBlbmQKCgkgZnVuIG1hdGNoIHtkZmEgYXMgVCB7YW5jaG9yU3RhcnQgPSBh
bmNTdCwgYW5jaG9yU3RhcnRTdGFjaywKCQkJICAgICAgY2hhckNsYXNzLCBkZWFkLCBmaW5hbCwg
bmV4dCwgc3RhY2sxLCBzdGFjazIsCgkJCSAgICAgIHN0YXJ0LCBzdGFydFN0YWNrLCAuLi59LAoJ
CSAgICBzaG9ydDogYm9vbCwKCQkgICAgc3RyaW5nIGFzIHMsCgkJICAgIHN0YXJ0UG9zOiBpbnQs
CgkJICAgIGFuY2hvclN0YXJ0OiBib29sfTogKGludCAqIEFjdGlvbnMudCkgb3B0aW9uID0KCSAg
ICBsZXQKCSAgICAgICB2YWwgbiA9IFN0cmluZy5zaXplIHMKCSAgICAgICB2YWwgbnVtRWRnZUFj
dGlvbnMgPSByZWYgMAoJICAgICAgIGZ1biBsb29wIChpOiBpbnQsCgkJCSBzdGF0ZTogaW50LAoJ
CQkgc3RhY2sxLCBzdGFjazIsCgkJCSBsYXN0OiAoaW50ICogQWN0aW9ucy50KSBvcHRpb24pCgkJ
ICA6IChpbnQgKiBBY3Rpb25zLnQpIG9wdGlvbiA9CgkJICBsZXQKCQkgICAgIHZhbCBsYXN0ID0K
CQkJY2FzZSBBcnJheS5zdWIgKGZpbmFsLCBzdGF0ZSkgb2YKCQkJICAgTk9ORSA9PiBsYXN0CgkJ
CSB8IFNPTUUge3Nsb3QsIGFjdGlvbnN9ID0+CgkJCSAgICAgIFNPTUUgKGksIEFjdGlvbnMuYWRk
IChBcnJheS5zdWIgKHN0YWNrMSwgc2xvdCksCgkJCQkJCSAgICBpLCBhY3Rpb25zKSkKCQkgIGlu
CgkJICAgICBpZiBBcnJheS5zdWIgKGRlYWQsIHN0YXRlKQoJCQlvcmVsc2UgaSA9IG4KCQkJb3Jl
bHNlIChzaG9ydCBhbmRhbHNvIGlzU29tZSBsYXN0KQoJCQl0aGVuIGxhc3QKCQkgICAgIGVsc2UK
CQkJbGV0CgkJCSAgIHZhbCAoc3RhdGUsIGVkZ2VBY3Rpb25zKSA9CgkJCSAgICAgIEFycmF5Mi5z
dWIgKG5leHQsIHN0YXRlLAoJCQkJCSAgQXJyYXkuc3ViCgkJCQkJICAoY2hhckNsYXNzLAoJCQkJ
CSAgIENoYXIudG9JbnQgKFN0cmluZy5zdWIgKHMsIGkpKSkpCgkJCSAgIHZhbCBfID0KCQkJICAg
ICAgVmVjdG9yLmZvcmVhY2gKCQkJICAgICAgKGVkZ2VBY3Rpb25zLAoJCQkgICAgICAgZm4gZSBh
cyBFZGdlQWN0aW9uLlQge2Zyb20sIHRvLCBhY3Rpb25zfSA9PgoJCQkgICAgICAgKGlmIGZhbHNl
CgkJCQkgICB0aGVuIChJbnQuaW5jIG51bUVkZ2VBY3Rpb25zCgkJCQkJIDsgKExheW91dC5vdXRw
dXRsCgkJCQkJICAgIChFZGdlQWN0aW9uLmxheW91dCBlLCBPdXQuZXJyb3IpKSkKCQkJCWVsc2Ug
KCkKCQkJCSAgIDsKCQkJICAgICAgIEFycmF5LnVwZGF0ZQoJCQkgICAgICAgKHN0YWNrMiwgdG8s
CgkJCQlBY3Rpb25zLmFkZCAoQXJyYXkuc3ViIChzdGFjazEsIGZyb20pLAoJCQkJCSAgICAgaSwg
YWN0aW9ucykpKSkKCQkJaW4KCQkJICAgbG9vcCAoaSArIDEsIHN0YXRlLCBzdGFjazIsIHN0YWNr
MSwgbGFzdCkKCQkJZW5kCgkJICBlbmQKCSAgICAgICB2YWwgKHN0YXRlLCBpbml0U3RhY2spID0K
CQkgIGlmIGFuY2hvclN0YXJ0CgkJICAgICB0aGVuIChhbmNTdCwgYW5jaG9yU3RhcnRTdGFjaykK
CQkgIGVsc2UgKHN0YXJ0LCBzdGFydFN0YWNrKQoJICAgICAgIHZhbCBfID0gCgkJICBWZWN0b3Iu
Zm9yZWFjaGkKCQkgIChpbml0U3RhY2ssIGZuIChzbG90LCB2KSA9PgoJCSAgIEFycmF5LnVwZGF0
ZSAoc3RhY2sxLCBzbG90LAoJCQkJIEFjdGlvbnMuYWRkIChBY3Rpb25zLmVtcHR5LCBzdGFydFBv
cywgdikpKQoJICAgICAgIHZhbCByZXMgPSBsb29wIChzdGFydFBvcywgc3RhdGUsIHN0YWNrMSwg
c3RhY2syLCBOT05FKQoJICAgICAgIHZhbCBfID0KCQkgIGlmIGZhbHNlCgkJICAgICB0aGVuCgkJ
CU91dC5vdXRwdXQgKE91dC5lcnJvciwKCQkJCSAgICBjb25jYXQgWyJudW1FZGdlQWN0aW9ucyA9
ICIsCgkJCQkJICAgIEludC50b1N0cmluZyAoIW51bUVkZ2VBY3Rpb25zKSwKCQkJCQkgICAgIlxu
Il0pCgkJICBlbHNlICgpCgkgICAgaW4KCSAgICAgICByZXMKCSAgICBlbmQKCgkgdmFsIG1hdGNo
ID0KCSAgICBUcmFjZS50cmFjZSAoIkRGQS5tYXRjaCIsCgkJCSBmbiB7c3RyaW5nLCBzdGFydFBv
cywgLi4ufSA9PgoJCQkgTGF5b3V0LnR1cGxlIFtTdHJpbmcubGF5b3V0IHN0cmluZywKCQkJCSAg
ICAgICBJbnQubGF5b3V0IHN0YXJ0UG9zXSwKCQkJIE9wdGlvbi5sYXlvdXQgKExheW91dC50dXBs
ZTIKCQkJCQkoSW50LmxheW91dCwgQWN0aW9ucy5sYXlvdXQpKSkKCSAgICBtYXRjaAoKCSBzdHJ1
Y3R1cmUgR3JhcGggPSBEaXJlY3RlZEdyYXBoCgkgZnVuIGxheW91dERvdCB7ZGZhIGFzIFQge2Fu
Y2hvclN0YXJ0LCBjaGFyQ2xhc3MsIGRlYWQsIGZpbmFsLAoJCQkJICBuZXh0LCBzdGFydCwgLi4u
fSwKCQkJdGl0bGU6IHN0cmluZywKCQkJc2hvd0RlYWQ6IGJvb2x9OiBMYXlvdXQudCA9CgkgICAg
bGV0CgkgICAgICAgdmFsIG51bVN0YXRlcyA9IG51bVN0YXRlcyBkZmEKCSAgICAgICBvcGVuIEdy
YXBoLkxheW91dERvdAoJICAgICAgIHZhbCBnID0gR3JhcGgubmV3ICgpCgkgICAgICAgdmFsIG5v
ZGVzID0gVmVjdG9yLnRhYnVsYXRlIChudW1TdGF0ZXMsIGZuIF8gPT4gR3JhcGgubmV3Tm9kZSBn
KQoJICAgICAgIGZ1biBub2RlIGkgPSBWZWN0b3Iuc3ViIChub2RlcywgaSkKCSAgICAgICB2YWwg
e2dldCA9IG5vZGVPcHRpb25zfSA9CgkJICBQcm9wZXJ0eS5nZXQgKEdyYXBoLk5vZGUucGxpc3Qs
CgkJCQlQcm9wZXJ0eS5pbml0RnVuCgkJCQkoZm4gXyA9PiBsZXQgb3BlbiBOb2RlT3B0aW9uCgkJ
CQkJIGluIHJlZiBbXQoJCQkJCSBlbmQpKQoJICAgICAgIHZhbCB7Z2V0ID0gZWRnZU9wdGlvbnN9
ID0KCQkgIFByb3BlcnR5LmdldCAoR3JhcGguRWRnZS5wbGlzdCwKCQkJCVByb3BlcnR5LmluaXRG
dW4KCQkJCShmbiBfID0+IGxldCBvcGVuIEVkZ2VPcHRpb24KCQkJCQkgaW4gcmVmIFtdCgkJCQkJ
IGVuZCkpCgkgICAgICAgZnVuIGFkZE5vZGVPcHRpb24gKGksIG9wdHMpID0KCQkgIGxldCB2YWwg
ciA9IG5vZGVPcHRpb25zIChub2RlIGkpCgkJICBpbiByIDo9IG9wdHMgQCAhcgoJCSAgZW5kCgkg
ICAgICAgdmFsIF8gPSBhZGROb2RlT3B0aW9uIChzdGFydCwKCQkJCSAgICAgIGxldCBvcGVuIE5v
ZGVPcHRpb24KCQkJCSAgICAgIGluIFtMYWJlbCAic3RhcnQiXQoJCQkJICAgICAgZW5kKQoJICAg
ICAgIHZhbCBfID0KCQkgIEludC5mb3IKCQkgICgwLCBudW1TdGF0ZXMsIGZuIHNyYyA9PgoJCSAg
IGxldAoJCSAgICAgIHZhbCBzaGFwZSA9IAoJCQkgY2FzZSAoaXNTb21lIChBcnJheS5zdWIgKGZp
bmFsLCBzcmMpKSwKCQkJICAgICAgIHNyYyA9IGFuY2hvclN0YXJ0KSBvZgoJCQkgICAgKGZhbHNl
LCBmYWxzZSkgPT4gRWxsaXBzZQoJCQkgIHwgKHRydWUsIGZhbHNlKSA9PiBCb3gKCQkJICB8IChm
YWxzZSwgdHJ1ZSkgPT4gRGlhbW9uZAoJCQkgIHwgKHRydWUsIHRydWUpID0+IFBvbHlnb24ge3Np
ZGVzID0gNSwgb3B0aW9ucyA9IFtdfQoJCSAgICAgIHZhbCBfID0KCQkJIGFkZE5vZGVPcHRpb24g
KHNyYywgbGV0IG9wZW4gTm9kZU9wdGlvbgoJCQkJCSAgICAgaW4gW1NoYXBlIHNoYXBlXQoJCQkJ
CSAgICAgZW5kKQoJCSAgICAgIHZhbCBkc3RzID0gQXJyYXkubmV3IChudW1TdGF0ZXMsIFtdKQoJ
CSAgICAgIHZhbCBfID0gCgkJCSBJbnQuZm9yRG93bgoJCQkgKDAsIG51bUNoYXJzLCBmbiBjID0+
CgkJCSAgaWYgVmVjdG9yLnN1YiAodmFsaWRDaGFycywgYykKCQkJICAgICB0aGVuCgkJCQlsZXQK
CQkJCSAgIHZhbCAoZHN0LCBfKSA9CgkJCQkgICAgICBBcnJheTIuc3ViIChuZXh0LCBzcmMsCgkJ
CQkJCSAgQXJyYXkuc3ViIChjaGFyQ2xhc3MsIGMpKQoJCQkJaW4gQXJyYXkudXBkYXRlIChkc3Rz
LCBkc3QsCgkJCQkJCSAoQ2hhci5mcm9tSW50IGMpCgkJCQkJCSA6OiBBcnJheS5zdWIgKGRzdHMs
IGRzdCkpCgkJCQllbmQKCQkJICBlbHNlICgpKQoJCSAgIGluCgkJICAgICAgQXJyYXkuZm9yZWFj
aGkKCQkgICAgICAoZHN0cywgZm4gKGRzdCwgY3MpID0+CgkJICAgICAgIGlmIG5vdCBzaG93RGVh
ZCBhbmRhbHNvIEFycmF5LnN1YiAoZGVhZCwgZHN0KQoJCQkgIHRoZW4gKCkKCQkgICAgICAgZWxz
ZQoJCQkgIGNhc2UgY3Mgb2YKCQkJICAgICBbXSA9PiAoKQoJCQkgICB8IF8gPT4KCQkJCWxldAoJ
CQkJICAgdmFsIGVkZ2UgPSBHcmFwaC5hZGRFZGdlIChnLCB7ZnJvbSA9IG5vZGUgc3JjLAoJCQkJ
CQkJCSB0byA9IG5vZGUgZHN0fSkKCQkJCWluIExpc3QucHVzaCAoZWRnZU9wdGlvbnMgZWRnZSwK
CQkJCQkgICAgICBsZXQgb3BlbiBFZGdlT3B0aW9uCgkJCQkJICAgICAgaW4gTGFiZWwgKGVkZ2VM
YWJlbCBjcykKCQkJCQkgICAgICBlbmQpCgkJCQllbmQpCgkJICAgZW5kKQoJICAgIGluCgkgICAg
ICAgbGF5b3V0CgkgICAgICAge2dyYXBoID0gZywKCQl0aXRsZSA9IHRpdGxlLAoJCW9wdGlvbnMg
PSBsZXQgb3BlbiBHcmFwaE9wdGlvbgoJCQkgIGluIFsKCQkJICAgICAgUmFua0RpciBMZWZ0VG9S
aWdodCwKCQkJICAgICAgUmFuayAoTWluLCBbbm9kZSBzdGFydF0pCgkJCSAgICAgIF0KCQkJICBl
bmQsCgkJICAgICAgIGVkZ2VPcHRpb25zID0gISBvIGVkZ2VPcHRpb25zLAoJCSAgICAgICBub2Rl
T3B0aW9ucyA9ICEgbyBub2RlT3B0aW9uc30KCSAgICBlbmQKCgkgZnVuIG1pbmltaXplIGQgPSBk
CgkgKCogVGhpcyBERkEgbWluaW1pemF0aW9uIGFsZ29yaXRobSBpcyBiYXNlZCBvbiBhbGdvcml0
aG0gMy42IChwYWdlIDE0MikKCSAgKiBvZiB0aGUgRHJhZ29uIEJvb2suCgkgICoKCSAgKiBJdCBt
YWludGFpbnMgYW4gYXJyYXksIHIsIHRoYXQgc3RvcmVzIGZvciBlYWNoIHN0YXRlIHMgdGhlCgkg
ICogcmVwcmVzZW50YXRpdmUgb2YgdGhlIGNsYXNzIHRvIHdoaWNoIHMgYmVsb25ncy4KCSAgKiBJ
dCByZXBlYXRlZGx5IHJlZmluZXMgYW4gZXF1aXZhbGVuY2UgcmVsYXRpb24sIHJlcHJlc2VudGVk
IGJ5IGEgbGlzdAoJICAqIG9mIGNsYXNzZXMsIHdoZXJlIGVhY2ggY2xhc3MgaXMgYSBsaXN0IG9m
IHN0YXRlcy4KCSAgKikKKCogCSBmdW4gbWluaW1pemUgKGRmYSBhcyBUIHthbmNob3JTdGFydCwg
Y2hhckNsYXNzLCBmaW5hbCwKICogCQkJCSBzdGFydCwgbmV4dCwgLi4ufSk6IHQgPQogKiAJICAg
IGxldAogKiAJICAgICAgIHZhbCBudW1TdGF0ZXMgPSBudW1TdGF0ZXMgZGZhCiAqIAkgICAgICAg
dmFsIG51bUNoYXJDbGFzc2VzID0gbnVtQ2hhckNsYXNzZXMgZGZhCiAqIAkgICAgICAgdHlwZSBj
bGFzcyA9IGludCBsaXN0CiAqIAkgICAgICAgdHlwZSBjbGFzc2VzID0gY2xhc3MgbGlzdAogKiAJ
ICAgICAgIHZhbCByZXBDb3VudGVyID0gcmVmIH4xCiAqIAkgICAgICAgdmFsIGNoYW5nZSA9IHJl
ZiBmYWxzZQogKiAJICAgICAgIGZ1biBuZXdSZXAgKCkgPSAoY2hhbmdlIDo9IHRydWU7ICsrIHJl
cENvdW50ZXIpCiAqIAkgICAgICAgdmFsIGZpblJlcCA9IG5ld1JlcCAoKQogKiAJICAgICAgIHZh
bCBub25maW5SZXAgPSBuZXdSZXAgKCkKICogCSAgICAgICB2YWwgciA9IEFycmF5LnRhYnVsYXRl
IChudW1TdGF0ZXMsIGZuIGkgPT4KICogCQkJCSAgICAgICBpZiBBcnJheS5zdWIgKGZpbmFsLCBp
KQogKiAJCQkJCSAgdGhlbiBmaW5SZXAKICogCQkJCSAgICAgICBlbHNlIG5vbmZpblJlcCkKICog
CSAgICAgICBmdW4gcmVwIHMgPSBBcnJheS5zdWIgKHIsIHMpCiAqIAkgICAgICAgZnVuIHRyYW5z
IChzLCBjKSA9IHJlcCAoQXJyYXkyLnN1YiAobmV4dCwgcywgYykpCiAqIAkgICAgICAgZnVuIHJl
ZmluZSAoY2xhc3M6IGNsYXNzLCBhYzogY2xhc3Nlcyk6IGNsYXNzZXMgPQogKiAJCSAgbGV0CiAq
IAkJICAgICB2YWwgciA9CiAqIAkJCUxpc3QuZm9sZAogKiAJCQkoY2xhc3MsIFtdLCBmbiAoc3Rh
dGUsIGNsYXNzZXMpID0+CiAqIAkJCSBsZXQKICogCQkJICAgIGZ1biBsb29wIChjbGFzc2VzLCBh
YykgPQogKiAJCQkgICAgICAgY2FzZSBjbGFzc2VzIG9mCiAqIAkJCQkgIFtdID0+CiAqIAkJCQkg
ICAgIChjYXNlIGFjIG9mCiAqIAkJCQkJIFtdID0+IFt7Y2xhc3MgPSBbc3RhdGVdLAogKiAJCQkJ
CQkgb2xkID0gc3RhdGV9XQogKiAJCQkJICAgICAgIHwgXyA9PiAKICogCQkJCQkgICAgbGV0CiAq
IAkJCQkJICAgICAgIHZhbCBzID0gbmV3UmVwICgpCiAqIAkJCQkJICAgICAgIHZhbCBfID0gQXJy
YXkudXBkYXRlIChyLCBzdGF0ZSwgcykKICogCQkJCQkgICAgaW4ge2NsYXNzID0gW3N0YXRlXSwK
ICogCQkJCQkJb2xkID0gc3RhdGV9IDo6IGFjCiAqIAkJCQkJICAgIGVuZCkKICogCQkJCXwgKHog
YXMge2NsYXNzLCBvbGR9KSA6OiBjbGFzc2VzID0+CiAqIAkJCQkgICAgIGlmIEludC5mb3JhbGwK
ICogCQkJCQkoMCwgbnVtQ2hhckNsYXNzZXMsIGZuIGMgPT4KICogCQkJCQkgdHJhbnMgKG9sZCwg
YykgPSB0cmFucyAoc3RhdGUsIGMpKQogKiAJCQkJCXRoZW4KICogCQkJCQkgICAoQXJyYXkudXBk
YXRlIChyLCBzdGF0ZSwgcmVwIG9sZCkKICogCQkJCQkgICAgOyB7Y2xhc3MgPSBzdGF0ZSA6OiBj
bGFzcywKICogCQkJCQkgICAgICAgb2xkID0gb2xkfSA6OiAoTGlzdC5hcHBlbmRSZXYKICogCQkJ
CQkJCSAgICAgIChjbGFzc2VzLCBhYykpKQogKiAJCQkJICAgICBlbHNlIGxvb3AgKGNsYXNzZXMs
IHogOjogYWMpCiAqIAkJCSBpbiBsb29wIChjbGFzc2VzLCBbXSkKICogCQkJIGVuZCkKICogCQkg
IGluIExpc3QuZm9sZCAociwgYWMsIGZuICh7Y2xhc3MsIC4uLn0sIGFjKSA9PgogKiAJCQkJY2Fz
ZSBjbGFzcyBvZgogKiAJCQkJICAgW19dID0+IGFjCiAqIAkJCQkgfCBfID0+IGNsYXNzIDo6IGFj
KQogKiAJCSAgZW5kCiAqIAkgICAgICAgdmFsIHJlZmluZSA9CiAqIAkJICBUcmFjZS50cmFjZSAo
InJlZmluZSIsCiAqIAkJCSAgICAgICAoTGlzdC5sYXlvdXQgSW50LmxheW91dCBvICMxKSwKICog
CQkJICAgICAgIExheW91dC5pZ25vcmUpCiAqIAkJICByZWZpbmUKICogCSAgICAgICBmdW4gcmVm
aW5lQWxsIChjbGFzc2VzOiBjbGFzc2VzKTogdW5pdCA9CiAqIAkJICBjYXNlIGNsYXNzZXMgb2YK
ICogCQkgICAgIFtdID0+ICgpCiAqIAkJICAgfCBfID0+CiAqIAkJCWxldAogKiAJCQkgICB2YWwg
XyA9IGNoYW5nZSA6PSBmYWxzZQogKiAJCQkgICB2YWwgY2xhc3NlcyA9CiAqIAkJCSAgICAgIExp
c3QuZm9sZCAoY2xhc3NlcywgW10sIGZuIChjbGFzcywgYWMpID0+CiAqIAkJCQkJIGNhc2UgY2xh
c3Mgb2YKICogCQkJCQkgICAgW19dID0+IGFjCiAqIAkJCQkJICB8IF8gPT4gcmVmaW5lIChjbGFz
cywgYWMpKQogKiAJCQlpbiBpZiAhY2hhbmdlCiAqIAkJCSAgICAgIHRoZW4gcmVmaW5lQWxsIGNs
YXNzZXMKICogCQkJICAgZWxzZSAoKQogKiAJCQllbmQKICogCSAgICAgICB2YWwgKGZpbiwgbm9u
ZmluKSA9CiAqIAkJICBJbnQuZm9sZCAoMCwgbnVtU3RhdGVzLCAoW10sIFtdKSwgZm4gKGksIChm
LCBuKSkgPT4KICogCQkJICAgIGlmIEFycmF5LnN1YiAoZmluYWwsIGkpCiAqIAkJCSAgICAgICB0
aGVuIChpIDo6IGYsIG4pCiAqIAkJCSAgICBlbHNlIChmLCBpIDo6IG4pKQogKiAJICAgICAgIHZh
bCBfID0gcmVmaW5lQWxsIFtmaW4sIG5vbmZpbl0KICogCSAgICAgICB2YWwgbnVtU3RhdGVzJyA9
IDEgKyAhcmVwQ291bnRlcgogKiAJICAgICAgICgqIENvbXB1dGUgcmVhY2hhYmxlIHN0YXRlcy4g
KikKICogCSAgICAgICB2YWwgcmVhY2hlZCA9IEFycmF5Lm5ldyAobnVtU3RhdGVzJywgZmFsc2Up
CiAqIAkgICAgICAgZnVuIHZpc2l0IChzOiBpbnQgKCogYW4gb2xkIHN0YXRlICopKTogdW5pdCA9
CiAqIAkJICBsZXQKICogCQkgICAgIHZhbCBzJyA9IHJlcCBzCiAqIAkJICBpbgogKiAJCSAgICAg
aWYgQXJyYXkuc3ViIChyZWFjaGVkLCBzJykKICogCQkJdGhlbiAoKQogKiAJCSAgICAgZWxzZSAo
QXJyYXkudXBkYXRlIChyZWFjaGVkLCBzJywgdHJ1ZSkKICogCQkJICAgOyBJbnQuZm9yICgwLCBu
dW1DaGFyQ2xhc3NlcywgZm4gYyA9PgogKiAJCQkJICAgICAgdmlzaXQgKEFycmF5Mi5zdWIgKG5l
eHQsIHMsIGMpKSkpCiAqIAkJICBlbmQKICogCSAgICAgICB2YWwgXyA9IHZpc2l0IHN0YXJ0CiAq
IAkgICAgICAgdmFsIF8gPSB2aXNpdCBhbmNob3JTdGFydAogKiAJICAgICAgICgqIENvbXB1dGUg
bmV3IHJlcHJlc2VudGF0aXZlcy4gKikKICogCSAgICAgICB2YWwgYyA9IHJlZiB+MQogKiAJICAg
ICAgIHZhbCBuZXdSID0gQXJyYXkudGFidWxhdGUgKG51bVN0YXRlcycsIGZuIHMgPT4KICogCQkJ
CQkgIGlmIEFycmF5LnN1YiAocmVhY2hlZCwgcykKICogCQkJCQkgICAgIHRoZW4gKysgYwogKiAJ
CQkJCSAgZWxzZSB+MSkKICogCSAgICAgICB2YWwgbnVtU3RhdGVzJyA9IDEgKyAhYwogKiAJICAg
ICAgIHZhbCBfID0gQXJyYXkubW9kaWZ5IChyLCBmbiBzID0+IEFycmF5LnN1YiAobmV3Uiwgcykp
CiAqIAkgICAgICAgdmFsIG5leHQnID0gQXJyYXkyLm5ldyAobnVtU3RhdGVzJywgbnVtQ2hhckNs
YXNzZXMsIH4xKQogKiAJICAgICAgIHZhbCBfID0KICogCQkgIEFycmF5Mi5mb3JlYWNoaQogKiAJ
CSAgKG5leHQsIGZuIChzLCBjLCBzJykgPT4KICogCQkgICBBcnJheTIudXBkYXRlIChuZXh0Jywg
cmVwIHMsIGMsIHJlcCBzJykpCiAqIAkgICAgICAgdmFsIGZpbmFsJyA9IEFycmF5LmFycmF5IChu
dW1TdGF0ZXMnLCBmYWxzZSkKICogCSAgICAgICB2YWwgXyA9CiAqIAkJICBBcnJheS5mb3JlYWNo
aQogKiAJCSAgKGZpbmFsLCBmbiAoaSwgYikgPT4KICogCQkgICBpZiBiIHRoZW4gQXJyYXkudXBk
YXRlIChmaW5hbCcsIHJlcCBpLCB0cnVlKSBlbHNlICgpKQogKiAJICAgIGluIFQge2FuY2hvclN0
YXJ0ID0gcmVwIGFuY2hvclN0YXJ0LAogKiAJCSAgY2hhckNsYXNzID0gY2hhckNsYXNzLAogKiAJ
CSAgZGVhZCA9IGRlYWQgKG51bVN0YXRlcycsIG51bUNoYXJDbGFzc2VzLCBmaW5hbCcsIG5leHQn
KSwKICogCQkgIGZpbmFsID0gZmluYWwnLAogKiAJCSAgc3RhcnQgPSByZXAgc3RhcnQsCiAqIAkJ
ICBuZXh0ID0gbmV4dCd9CiAqIAkgICAgZW5kCiAqKQogICAgICBlbmQKaW4KICAgc3RydWN0dXJl
IFJlZ2V4cDogUkVHRVhQID0KICAgICAgc3RydWN0Cgkgc3RydWN0dXJlIFNhdmUgPSBTYXZlCgkg
c3RydWN0dXJlIE1hdGNoID0gTWF0Y2gKCSAgICAKCSBvcGVuIFJlZ2V4cAoKCSB2YWwgYW5jaG9y
U3RhcnQgPSBBbmNob3JTdGFydAoJIHZhbCBpc0NoYXIgPSBDaGFyU2V0CgkgZnVuIGlzTm90Q2hh
ciBmID0gaXNDaGFyIChub3QgbyBmKQoJIGZ1biBjaGFyIGMgPSBpc0NoYXIgKGZuIGMnID0+IGMg
PSBjJykKCSBmdW4gbm90Q2hhciBjID0gaXNDaGFyIChmbiBjJyA9PiBjIDw+IGMnKQoJIHZhbCBv
ciA9IE9yCgkgdmFsIHNhdmUgPSBTYXZlCgkgdmFsIHNlcSA9IFNlcQoJIHZhbCBzdGFyID0gU3Rh
cgoKCSB2YWwgYW55ID0gaXNDaGFyIChmbiBfID0+IHRydWUpCgkgdmFsIGFueXMgPSBzdGFyIGFu
eQoJIHZhbCBhc2NpaSA9IGlzQ2hhciAoZm4gYyA9PiBvcmQgYyA8PSAxMjcpCgkgdmFsIGFzY2lp
cyA9IHN0YXIgYXNjaWkKCgkgZnVuIG9uZU9mIHMgPSBpc0NoYXIgKGZuIGMgPT4gU3RyaW5nLmNv
bnRhaW5zIChzLCBjKSkKCSBmdW4gbm90T25lT2YgcyA9IGlzTm90Q2hhciAoZm4gYyA9PiBTdHJp
bmcuY29udGFpbnMgKHMsIGMpKQoJIHZhbCBkaWdzID0gIjAxMjM0NTY3ODkiCgkgdmFsIGRpZ2l0
ID0gaXNDaGFyIENoYXIuaXNEaWdpdAoJIHZhbCBkaWdpdHMgPSBzdGFyIGRpZ2l0CgkgdmFsIG5v
bkRpZ2l0ID0gaXNOb3RDaGFyIENoYXIuaXNEaWdpdAoJIHZhbCBzcGFjZSA9IGlzQ2hhciBDaGFy
LmlzU3BhY2UKCSB2YWwgc3BhY2VzID0gc3RhciBzcGFjZQoKCSBmdW4gc3RyaW5nIChzOiBzdHJp
bmcpOiB0ID0KCSAgICBzZXEgKEludC5mb2xkRG93biAoMCwgU3RyaW5nLnNpemUgcywgW10sIGZu
IChpLCBhYykgPT4KCQkJICAgICAgIGNoYXIgKFN0cmluZy5zdWIgKHMsIGkpKSA6OiBhYykpCgoJ
IGZ1biBzdHJpbmdJZ25vcmVDYXNlIChzOiBzdHJpbmcpOiB0ID0KCSAgICBzZXEgKEludC5mb2xk
RG93bgoJCSAoMCwgU3RyaW5nLnNpemUgcywgW10sIGZuIChpLCBhYykgPT4KCQkgIGxldAoJCSAg
ICAgdmFsIGMgPSBDaGFyLnRvTG93ZXIgKFN0cmluZy5zdWIgKHMsIGkpKQoJCSAgaW4KCQkgICAg
IGlzQ2hhciAoZm4gYycgPT4gYyA9IENoYXIudG9Mb3dlciBjJykKCQkgIGVuZCA6OiBhYykpCgoJ
IHZhbCBudWxsID0gc2VxIFtdICgqIExhbmd1YWdlIGNvbnRhaW5pbmcgdGhlIGVtcHR5IHN0cmlu
ZyBvbmx5LiAqKQoJIGZ1biBvbmVPck1vcmUgciA9IHNlcSBbciwgc3RhciByXQoJIGZ1biBvcHRp
b25hbCByID0gb3IgW251bGwsIHJdCgkgICAgCgkgdmFsIGVtcHR5ID0gb3IgW10gKCogRW1wdHkg
TGFuZ3VhZ2UuICopCgoJIHN0cnVjdHVyZSBDb21waWxlZCA9CgkgICAgc3RydWN0CgkgICAgICAg
ZGF0YXR5cGUgbWFjaGluZSA9CgkJICBERkEgb2YgREZBLnQKCQl8IE5GQSBvZiBORkEudAoKCSAg
ICAgICBkYXRhdHlwZSB0ID0gVCBvZiB7cmVnZXhwOiBSZWdleHAudCwKCQkJCSAgbWFjaGluZTog
bWFjaGluZX0KCgkgICAgICAgZnVuIGxheW91dERvdCAoVCB7bWFjaGluZSwgLi4ufSkgPQoJCSAg
Y2FzZSBtYWNoaW5lIG9mCgkJICAgICBERkEgbSA9PiBERkEubGF5b3V0RG90IHtkZmEgPSBtLCBz
aG93RGVhZCA9IGZhbHNlLAoJCQkJCSAgICAgdGl0bGUgPSAiZGZhIn0KCQkgICB8IE5GQSBtID0+
IE5GQS5sYXlvdXREb3QgKG0sICJuZmEiKQoKCSAgICAgICBmdW4gbGF5b3V0RG90VG9GaWxlIChj
OiB0LCBmOiBGaWxlLnQpID0KCQkgIEZpbGUud2l0aE91dCAoZiwgZm4gb3V0ID0+IExheW91dC5v
dXRwdXQgKGxheW91dERvdCBjLCBvdXQpKQoKCSAgICAgICBmdW4gbGF5b3V0IChUIHttYWNoaW5l
LCByZWdleHAsIC4uLn0pID0KCQkgIGxldAoJCSAgICAgb3BlbiBMYXlvdXQKCQkgIGluCgkJICAg
ICBhbGlnbiBbY2FzZSBtYWNoaW5lIG9mCgkJCSAgICAgICBERkEgZGZhID0+IERGQS5sYXlvdXQg
ZGZhCgkJCSAgICAgfCBORkEgbmZhID0+IE5GQS5sYXlvdXQgbmZhCgkJCSAgICAoKiBzdHIgImlt
cGxlbWVudGluZyIsIFJlZ2V4cC5sYXlvdXQgcmVnZXhwICopCgkJCQkgIF0KCQkgIGVuZAoKCSAg
ICAgICBmdW4gbWF0Y2gge2NvbXBpbGVkID0gVCB7bWFjaGluZSwgLi4ufSwKCQkJICBzaG9ydCwg
c3RhcnRQb3MsIHN0cmluZ30gPQoJCSAgbGV0CgkJICAgICB2YWwgYW5jaG9yU3RhcnQgPSBzdGFy
dFBvcyA9IDAKCQkgICAgIHZhbCAoc2F2ZXMsIG9wdCkgPQoJCQljYXNlIG1hY2hpbmUgb2YKCQkJ
ICAgREZBIGRmYSA9PgoJCQkgICAgICAoREZBLnNhdmVzIGRmYSwKCQkJICAgICAgIERGQS5tYXRj
aCB7YW5jaG9yU3RhcnQgPSBhbmNob3JTdGFydCwKCQkJCQkgIGRmYSA9IGRmYSwKCQkJCQkgIHNo
b3J0ID0gc2hvcnQsCgkJCQkJICBzdHJpbmcgPSBzdHJpbmcsCgkJCQkJICBzdGFydFBvcyA9IHN0
YXJ0UG9zfSkKCQkJCQkgIAoJCQkgfCBORkEgbmZhID0+CgkJCSAgICAgIChORkEuc2F2ZXMgbmZh
LAoJCQkgICAgICAgTkZBLm1hdGNoIHtuZmEgPSBuZmEsCgkJCQkJICBzaG9ydCA9IHNob3J0LAoJ
CQkJCSAgc3RyaW5nID0gc3RyaW5nLAoJCQkJCSAgc3RhcnRQb3MgPSBzdGFydFBvcywKCQkJCQkg
IGFuY2hvclN0YXJ0ID0gYW5jaG9yU3RhcnR9KQoJCSAgaW4KCQkgICAgIE9wdGlvbi5tYXAKCQkg
ICAgIChvcHQsIGZuIChzdG9wLCBBY3Rpb25zLlQgYWN0aW9ucykgPT4KCQkgICAgIGxldAoJCQl2
YWwgXyA9IFZlY3Rvci5mb3JlYWNoaSAoc2F2ZXMsIGZuIChpLCBzKSA9PgoJCQkJCQkgU2F2ZS5h
c3NpZ24gKHMsIGkpKQoJCQl2YWwgbiA9IFZlY3Rvci5sZW5ndGggc2F2ZXMKCQkJdmFsIHN0YXJ0
cyA9IEFycmF5LmFycmF5IChuLCB+MSkKCQkJdmFsIG1hdGNoZXMgPSBBcnJheS5hcnJheSAobiwg
Tk9ORSkKCQkJdmFsIF8gPQoJCQkgICBMaXN0LmZvcmVhY2gKCQkJICAgKHJldiBhY3Rpb25zLCBm
biAoaSwgdikgPT4KCQkJICAgIFZlY3Rvci5mb3JlYWNoCgkJCSAgICAodiwgZm4gbWEgPT4KCQkJ
ICAgICBjYXNlIG1hIG9mCgkJCQlNYXRjaEFjdGlvbi5GaW5pc2ggcyA9PgoJCQkJICAgbGV0CgkJ
CQkgICAgICB2YWwgaW5kZXggPSBTYXZlLmluZGV4IHMKCQkJCSAgICAgIHZhbCBzdGFydCA9IEFy
cmF5LnN1YiAoc3RhcnRzLCBpbmRleCkKCQkJCSAgIGluCgkJCQkgICAgICBBcnJheS51cGRhdGUK
CQkJCSAgICAgIChtYXRjaGVzLCBpbmRleCwKCQkJCSAgICAgICBTT01FIChTdWJzdHJpbmcuc3Vi
c3RyaW5nCgkJCQkJICAgICAoc3RyaW5nLCB7c3RhcnQgPSBzdGFydCwKCQkJCQkJICAgICAgIGxl
bmd0aCA9IGkgLSBzdGFydH0pKSkKCQkJCSAgIGVuZAoJCQkgICAgICB8IE1hdGNoQWN0aW9uLlN0
YXJ0IHMgPT4KCQkJCSAgIEFycmF5LnVwZGF0ZSAoc3RhcnRzLCBTYXZlLmluZGV4IHMsIGkpKSkK
CQkJdmFsIG1hdGNoZXMgPQoJCQkgICBBcnJheS5rZWVwQWxsTWFwaQoJCQkgICAobWF0Y2hlcywg
Zm4gKGksIHNzbykgPT4KCQkJICAgIGNhc2Ugc3NvIG9mCgkJCSAgICAgICBOT05FID0+IE5PTkUK
CQkJICAgICB8IFNPTUUgc3MgPT4gU09NRSAoVmVjdG9yLnN1YiAoc2F2ZXMsIGkpLCBzcykpCgkJ
CXZhbCBhbGwgPQoJCQkgICBTdWJzdHJpbmcuc3Vic3RyaW5nCgkJCSAgIChzdHJpbmcsIHtzdGFy
dCA9IHN0YXJ0UG9zLAoJCQkJICAgICBsZW5ndGggPSBzdG9wIC0gc3RhcnRQb3N9KQoJCSAgICAg
aW4KCQkJTWF0Y2guVCB7YWxsID0gYWxsLAoJCQkJIG1hdGNoZXMgPSBtYXRjaGVzfQoJCSAgICAg
ZW5kKQoJCSAgZW5kCgoJICAgICAgIHZhbCBtYXRjaCA9CgkJICBUcmFjZS50cmFjZQoJCSAgKCJS
ZWdleHAubWF0Y2giLAoJCSAgIGZuIHtjb21waWxlZCwgc2hvcnQsIHN0YXJ0UG9zLCBzdHJpbmd9
ID0+CgkJICAgTGF5b3V0LnJlY29yZAoJCSAgIFsoInNob3J0IiwgQm9vbC5sYXlvdXQgc2hvcnQp
LAoJCSAgICAoInN0YXJ0UG9zIiwgSW50LmxheW91dCBzdGFydFBvcyksCgkJICAgICgic3RyaW5n
IiwgU3RyaW5nLmxheW91dCBzdHJpbmcpLAoJCSAgICAoImNvbXBpbGVkIiwgbGF5b3V0IGNvbXBp
bGVkKV0sCgkJICAgT3B0aW9uLmxheW91dCBNYXRjaC5sYXlvdXQpCgkJICBtYXRjaAoKCSAgICAg
ICBmdW4gbWF0Y2hMb25nIChjLCBzLCBpKSA9CgkJICBtYXRjaCB7Y29tcGlsZWQgPSBjLAoJCQkg
c2hvcnQgPSBmYWxzZSwKCQkJIHN0YXJ0UG9zID0gaSwKCQkJIHN0cmluZyA9IHN9CgoJICAgICAg
IGZ1biBtYXRjaFNob3J0IChjLCBzLCBpKSA9CgkJICBtYXRjaCB7Y29tcGlsZWQgPSBjLAoJCQkg
c2hvcnQgPSB0cnVlLAoJCQkgc3RhcnRQb3MgPSBpLAoJCQkgc3RyaW5nID0gc30KCgkgICAgICAg
ZnVuIG1hdGNoQWxsIChyLCBzKSA9CgkJICBjYXNlIG1hdGNoTG9uZyAociwgcywgMCkgb2YKCQkg
ICAgIE5PTkUgPT4gTk9ORQoJCSAgIHwgU09NRSBtID0+IGlmIFN0cmluZy5zaXplIHMgPSBTdWJz
dHJpbmcubGVuZ3RoIChNYXRjaC5hbGwgbSkKCQkJCSAgdGhlbiBTT01FIG0KCQkJICAgICAgIGVs
c2UgTk9ORQoKCSAgICAgICB2YWwgbWF0Y2hlc0FsbCA9IGlzU29tZSBvIG1hdGNoQWxsCgoJICAg
ICAgIGZ1biBmaW5kIChjOiB0LCBzOiBzdHJpbmcsIHN0YXJ0UG9zLCBzaG9ydDogYm9vbCkgPQoJ
CSAgbGV0CgkJICAgICB2YWwgbiA9IFN0cmluZy5zaXplIHMKCQkgICAgIGZ1biBsb29wIChpOiBp
bnQpID0KCQkJaWYgaSA9IG4KCQkJICAgdGhlbiBOT05FCgkJCWVsc2UKCQkJICAgY2FzZSBtYXRj
aCB7Y29tcGlsZWQgPSBjLAoJCQkJICAgICAgIHNob3J0ID0gc2hvcnQsCgkJCQkgICAgICAgc3Rh
cnRQb3MgPSBpLAoJCQkJICAgICAgIHN0cmluZyA9IHN9IG9mCgkJCSAgICAgIE5PTkUgPT4gbG9v
cCAoaSArIDEpCgkJCSAgICB8IFNPTUUgbSA9PiBTT01FIG0KCQkgIGluIGxvb3Agc3RhcnRQb3MK
CQkgIGVuZAoKCSAgICAgICBmdW4gZmluZExvbmcgKGMsIHMsIGkpID0gZmluZCAoYywgcywgaSwg
ZmFsc2UpCgkgICAgICAgZnVuIGZpbmRTaG9ydCAoYywgcywgaSkgPSBmaW5kIChjLCBzLCBpLCB0
cnVlKQoJICAgIGVuZAoKCSBmdW4gY29tcGlsZURGQSByID0KCSAgICBDb21waWxlZC5UCgkgICAg
e3JlZ2V4cCA9IHIsCgkgICAgIG1hY2hpbmUgPQoJICAgICBDb21waWxlZC5ERkEgKERGQS5taW5p
bWl6ZSAoREZBLmZyb21ORkEgKE5GQS5mcm9tUmVnZXhwIHIpKSl9CgoJIHZhbCBjb21waWxlREZB
ID0KCSAgICBUcmFjZS50cmFjZSAoIlJlZ2V4cC5jb21waWxlREZBIiwgbGF5b3V0LCBDb21waWxl
ZC5sYXlvdXQpIGNvbXBpbGVERkEKCgkgZnVuIGNvbXBpbGVORkEgciA9CgkgICAgQ29tcGlsZWQu
VAoJICAgIHtyZWdleHAgPSByLAoJICAgICBtYWNoaW5lID0gQ29tcGlsZWQuTkZBIChORkEuZnJv
bVJlZ2V4cCByKX0KCgkgdmFsIGNvbXBpbGVORkEgPQoJICAgIFRyYWNlLnRyYWNlICgiUmVnZXhw
LmNvbXBpbGVORkEiLCBsYXlvdXQsIENvbXBpbGVkLmxheW91dCkgY29tcGlsZU5GQQogICAgICBl
bmQKCigqICAgIGxvY2FsCiAqICAgICAgIHZhbCBfID0KICogCSBsZXQgb3BlbiBUcmFjZS5JbW1l
ZGlhdGUKICogCSBpbgogKiAJICAgIGZsYWdnZWQoKQogKiAJICAgIDsgZGVidWcgOj0gT3V0IE91
dC5lcnJvcgogKiAJICAgIDsgb24gW10KICogCSBlbmQKICogICAgICAgb3BlbiBSZWdleHAKICog
ICAgICAgdmFsIGEgPSBjaGFyICMiYSIKICogICAgICAgdmFsIGIgPSBjaGFyICMiYiIKICogICAg
ICAgdmFsIGMgPSBjaGFyICMiYyIKICogICAgICAgdmFsIGQgPSBjaGFyICMiZCIKICogICAgICAg
dmFsIHIgPSBhCiAqICAgICAgIHZhbCByID0gc3RhciBhCiAqICAgICAgIHZhbCByID0gb3IgW10K
ICogICAgICAgdmFsIHIgPSBzdGFyIGFueQogKiAgICAgICB2YWwgciA9IHNlcSBbXQogKiAgICAg
ICB2YWwgciA9IG9yIFthLCBiXQogKiAgICAgICB2YWwgciA9IHNlcSBbYSwgYiwgYywgZF0KICog
ICAgICAgdmFsIHIgPSBvciBbc2VxIFthLCBiLCBjXSwKICogCQkgIHNlcSBbYSwgYiwgZF1dCiAq
ICAgICAgIHZhbCByID0KICogCSBzZXEgW3N0YXIgKG9yIFthLCBiXSksCiAqIAkgICAgICBhLCBi
LCBiXQogKiAgICAgICB2YWwgZCA9IGRpZ2l0CiAqICAgICAgIHZhbCBlb2wgPSBjaGFyICMiIyIK
ICogICAgICAgdmFsIHNwYWNlID0gb25lT2YgIiBcdCIKICogICAgICAgdmFsIHIgPQogKiAJIHNl
cSBbb3IgW2FuY2hvclN0YXJ0LCBub3RPbmVPZiAiMDEyMzQ1Njc4OSgiXSwKICogCSAgICAgIG9y
IFtzZXEgW2NoYXIgIyIoIiwgZCwgZCwgZCwgY2hhciAjIikiXSwKICogCQkgIHNlcSBbZCwgZCwg
ZF1dLAogKiAJICAgICAgY2hhciAjIiAiLAogKiAJICAgICAgZCwgZCwgZCwKICogCSAgICAgIG9u
ZU9mICIgLSIsCiAqIAkgICAgICBkLCBkLCBkLCBkLAogKiAJICAgICAgb3IgW2VvbCwgbm9uRGln
aXRdXQogKiAKICogICAgICAgZnVuIGRvaXQgKG5hbWUsIGxheSkgPQogKiAJIGxldAogKiAJICAg
IHZhbCBkb3QgPSBjb25jYXQgWyIvdG1wLyIsIG5hbWUsICIuZG90Il0KICogCSAgICB2YWwgcHMg
PSBjb25jYXQgWyIvdG1wLyIsIG5hbWUsICIucHMiXQogKiAJICAgIHZhbCBfID0gRmlsZS53aXRo
T3V0IChkb3QsIGZuIG91dCA9PiBMYXlvdXQub3V0cHV0IChsYXksIG91dCkpCiAqIAkgICAgdmFs
IF8gPSBPUy5Qcm9jZXNzLnN5c3RlbSAoY29uY2F0IFsiZG90ICIsIGRvdCwgIiA+IiwgcHNdKQog
KiAJIGluICgpCiAqIAkgZW5kCiAqICAgICAgIHZhbCBuZmEgPSBORkEuZnJvbVJlZ2V4cCByCiAq
ICAgICAgIHZhbCBfID0gZG9pdCAoIm5mYSIsIE5GQS5sYXlvdXREb3QgKG5mYSwgIm5mYSIpKQog
KiAgICAgICB2YWwgXyA9IE91dC5vdXRwdXQgKE91dC5lcnJvciwKICogCQkJICBjb25jYXQgWyJu
dW1DaGFyQ2xhc3NlcyA9ICIsCiAqIAkJCQkgIEludC50b1N0cmluZyAoTkZBLm51bUNoYXJDbGFz
c2VzIG5mYSksCiAqIAkJCQkgICJcbiJdKQogKiAgICAgICB2YWwgZGZhID0gREZBLmZyb21ORkEg
bmZhCiAqICAgICAgIHZhbCBfID0gZG9pdCAoImRmYSIsCiAqIAkJICAgIERGQS5sYXlvdXREb3Qg
e2RmYSA9IGRmYSwgdGl0bGUgPSAiZGZhIiwgc2hvd0RlYWQgPSBmYWxzZX0pCiAqICAgICAgIHZh
bCBtaW4gPSBERkEubWluaW1pemUgZGZhCiAqICAgICAgIHZhbCBfID0gZG9pdCAoIm1pbiIsCiAq
IAkJICAgIERGQS5sYXlvdXREb3Qge2RmYSA9IG1pbiwgdGl0bGUgPSAibWluIiwgc2hvd0RlYWQg
PSBmYWxzZX0pCiAqICAgIGluCiAqICAgIGVuZAogKikKZW5kCigqIHN0b3Agb2YgbGliL21sdG9u
L2Jhc2ljL3JlZ2V4cC5zbWwgKikKKCogc3RhcnQgb2YgbWFpbi5zbWwgKikKc3RydWN0dXJlIFog
PQpzdHJ1Y3QKCnR5cGUgaW50ID0gSW50LnQKICAgCmxvY2FsCiAgIG9wZW4gUmVnZXhwCmluCiAg
IHZhbCBkID0gZGlnaXQKICAgdmFsIGVvbCA9IGNoYXIgIyIjIgogICB2YWwgc3BhY2UgPSBvbmVP
ZiAiIFx0IgogICB2YWwgciA9CiAgICAgIHNlcSBbb3IgW2FuY2hvclN0YXJ0LCBub3RPbmVPZiAi
MDEyMzQ1Njc4OSgiXSwKCSAgIG9yIFtzZXEgW2NoYXIgIyIoIiwgZCwgZCwgZCwgY2hhciAjIiki
XSwKCSAgICAgICBzZXEgW2QsIGQsIGRdXSwKCSAgIGNoYXIgIyIgIiwKCSAgIGQsIGQsIGQsCgkg
ICBvbmVPZiAiIC0iLAoJICAgZCwgZCwgZCwgZCwKCSAgIG9yIFtlb2wsIG5vbkRpZ2l0XV0KKCog
ICB2YWwgY29tcCA9IFJlZ2V4cC5jb21waWxlTkZBIHIgKikKICAgdmFsIGNvbXAgPSBSZWdleHAu
Y29tcGlsZURGQSByCmVuZAoKZnVuIGluY3IgKHI6IGludCByZWYpID0gciA6PSAhciArIDEKCnZh
bCBpbnMgPQogICBpZiBNTHRvbi5pc01MdG9uCiAgICAgIHRoZW4gVGV4dElPLnN0ZEluCiAgIGVs
c2UgSW4ub3BlbkluICIvdG1wL0lucHV0IgoKdmFsIHBob25lcyA9CiAgIGxldAogICAgICBmdW4g
bG9vcCBsaW5lcyA9CgkgY2FzZSBUZXh0SU8uaW5wdXRMaW5lIGlucyBvZgoJICAgICIiID0+IHJl
diBsaW5lcwoJICB8IGxpbmUgPT4gbG9vcCAobGluZSA6OiBsaW5lcykKICAgaW4gbG9vcCBbXQog
ICBlbmQKCnZhbCBfID0KICAgaWYgTUx0b24uaXNNTHRvbgogICAgICB0aGVuICgpCiAgIGVsc2Ug
SW4uY2xvc2UgaW5zCgpmdW4gcHJpbnRsIFtdID0gcHJpbnQgIlxuIiB8IHByaW50bChoOjp0KSA9
ICggcHJpbnQgaCA7IHByaW50bCB0ICkKCigqIEJhc2VkIG9uIHJlZ2V4bWF0Y2gub2NhbWwuICop
CiAgIApsb2NhbAogICB2YWwgZm9ybSA9ICIoLi4uKSAuLi4tLi4uLiIKICAgdmFsIGEgPSBDaGFy
QXJyYXkudGFidWxhdGUgKFN0cmluZy5zaXplIGZvcm0sIGZuIGkgPT4KCQkJICAgICAgIFN0cmlu
Zy5zdWIgKGZvcm0sIGkpKQppbgogICBmdW4gY2hlY2tQaG9uZSAobXVzdFByaW50OiBib29sLCBj
bnQ6IGludCByZWYsIGxpbmU6IHN0cmluZykgPQogICAgICBjYXNlIFJlZ2V4cC5Db21waWxlZC5m
aW5kTG9uZyAoY29tcCwgbGluZSwgMCkgb2YKCSBOT05FID0+ICgpCiAgICAgICB8IFNPTUUgbSA9
PgoJICAgIGxldAoJICAgICAgIHZhbCAoXywge3N0YXJ0ID0gcG9zLCAuLi59KSA9IFN1YnN0cmlu
Zy5iYXNlIChSZWdleHAuTWF0Y2guYWxsIG0pCgkgICAgICAgZnVuIGJsaXQgKHNyYywgZHN0LCBs
ZW5ndGgpID0KCQkgIGxldAoJCSAgICAgdmFsIHN0b3AgPSBzcmMgKyBsZW5ndGgKCQkgICAgIGZ1
biBsb29wIChzcmMsIGRzdCkgPQoJCQlpZiBzcmMgPSBzdG9wCgkJCSAgIHRoZW4gKCkKCQkJZWxz
ZSAoQ2hhckFycmF5LnVwZGF0ZSAoYSwgZHN0LAoJCQkJCQlTdHJpbmcuc3ViIChsaW5lLCBzcmMp
KQoJCQkgICAgICA7IGxvb3AgKHNyYyArIDEsIGRzdCArIDEpKQoJCSAgaW4KCQkgICAgIGxvb3Ag
KHNyYywgZHN0KQoJCSAgZW5kCgkgICAgICAgdmFsIChvMSwgbzIsIG8zKSA9CgkJICBpZiAjIigi
ID0gU3RyaW5nLnN1YiAobGluZSwgcG9zKQoJCSAgICAgdGhlbiAoMSwgNiwgMTApCgkJICBlbHNl
IGlmICMiKCIgPSBTdHJpbmcuc3ViIChsaW5lLCBwb3MgKyAxKQoJCQkgIHRoZW4gKDIsIDcsIDEx
KQoJCSAgICAgICBlbHNlIGlmIENoYXIuaXNEaWdpdCAoU3RyaW5nLnN1YiAobGluZSwgcG9zKSkK
CQkJICAgICAgIHRoZW4gKDAsIDQsIDgpCgkJCSAgICBlbHNlICgxLCA1LCA5KQoJICAgICAgIHZh
bCBfID0gYmxpdCAocG9zICsgbzEsIDEsIDMpCgkgICAgICAgdmFsIF8gPSBibGl0IChwb3MgKyBv
MiwgNiwgMykKCSAgICAgICB2YWwgXyA9IGJsaXQgKHBvcyArIG8zLCAxMCwgNCkKCSAgICAgICB2
YWwgXyA9CgkJICBpZiBtdXN0UHJpbnQKCQkgICAgIHRoZW4gcHJpbnRsIFtJbnQudG9TdHJpbmcg
KCFjbnQpLCAiOiAiLAoJCQkJICBDaGFyQXJyYXkuZXh0cmFjdCAoYSwgMCwgTk9ORSldCgkJICBl
bHNlICgpCgkgICAgICAgdmFsIF8gPSBpbmNyIGNudAoJICAgIGluCgkgICAgICAgKCkKCSAgICBl
bmQKZW5kCgpmdW4gZG9pdCAobXVzdFByaW50OiBib29sKTogdW5pdCA9CiAgIGxldAogICAgICB2
YWwgY250ID0gcmVmIDEKICAgaW4KICAgICAgTGlzdC5mb3JlYWNoIChwaG9uZXMsIGZuIGxpbmUg
PT4gY2hlY2tQaG9uZSAobXVzdFByaW50LCBjbnQsIGxpbmUpKQogICBlbmQKCmZ1biBhdG9pIHMg
PSBjYXNlIEludC5mcm9tU3RyaW5nIHMgb2YgU09NRSBudW0gPT4gbnVtIHwgTk9ORSA9PiAwCiAg
IApmdW4gbWFpbiAobmFtZSwgYXJncykgPQogICBsZXQKICAgICAgdmFsIG4gPSBhdG9pIChoZCAo
YXJncyBAIFsiMSJdKSkKICAgICAgdmFsIF8gPSBJbnQuZm9yICgxLCBuLCBmbiBfID0+IGRvaXQg
ZmFsc2UpCiAgICAgIHZhbCBfID0gZG9pdCB0cnVlCiAgIGluICgpCiAgIGVuZAoKdmFsIF8gPSBt
YWluKCBDb21tYW5kTGluZS5uYW1lKCksIENvbW1hbmRMaW5lLmFyZ3VtZW50cygpICkKICAgCmVu
ZAooKiBzdG9wIG9mIG1haW4uc21sICopCg==

--f+u0I8p9Wi--