QuickClose
6.2.1
6.0.x
6.1.x
6.2.x
Perl-Services.de
http://www.perl-services.de
Ein Modul, mit dem Tickets schneller/einfacher geschlossen werden können.
A module to close tickets more quickly.
Egy modul a jegyek gyorsabb lezárásához.
GNU AFFERO GENERAL PUBLIC LICENSE Version 3, November 2007
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSIgPz4KPG90cnNfY29uZmln
IHZlcnNpb249IjIuMCIgaW5pdD0iQXBwbGljYXRpb24iPgogICAgPFNldHRpbmcgTmFtZT0iRnJv
bnRlbmQ6Ok1vZHVsZSMjI0FnZW50UXVpY2tDbG9zZSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4K
ICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Gcm9udGVuZCBtb2R1bGUgcmVn
aXN0cmF0aW9uIGZvciB0aGUgUXVpY2tDbG9zZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlv
bj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlv
bjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlw
ZT0iRnJvbnRlbmRSZWdpc3RyYXRpb24iPgogICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAg
ICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxB
cnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAg
ICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cFJvIj4KICAgICAg
ICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5
PgogICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBL
ZXk9IkRlc2NyaXB0aW9uIj5RdWlja0Nsb3NlPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJ
dGVtIEtleT0iTmF2QmFyTmFtZSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtl
eT0iVGl0bGUiIFRyYW5zbGF0YWJsZT0iMSI+UXVpY2tDbG9zZTwvSXRlbT4KICAgICAgICAgICAg
ICAgIDwvSGFzaD4KICAgICAgICAgICAgPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1Nl
dHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGcm9udGVuZDo6TmF2aWdhdGlvbiMjI0FnZW50UXVp
Y2tDbG9zZSMjIzAwMi1RdWlja0Nsb3NlIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjAiPgogICAgICAg
IDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPk1haW4gbWVudSBpdGVtIHJlZ2lzdHJhdGlv
bi48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6TW9k
dWxlUmVnaXN0cmF0aW9uOjpNYWluTWVudTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAg
ICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgIDxEZWZhdWx0SXRlbSBWYWx1ZVR5cGU9
IkZyb250ZW5kTmF2aWdhdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAg
ICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICAgICAgPC9EZWZhdWx0SXRlbT4KICAgICAg
ICAgICAgPC9BcnJheT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRp
bmcgTmFtZT0iRnJvbnRlbmQ6Ok1vZHVsZSMjI0FkbWluUXVpY2tDbG9zZSIgUmVxdWlyZWQ9IjAi
IFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Gcm9udGVu
ZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgcXVpY2sgY2xvc2UgYWRtaW5pc3RyYXRpb24u
PC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWRtaW46Ok1vZHVs
ZVJlZ2lzdHJhdGlvbjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJ
dGVtIFZhbHVlVHlwZT0iRnJvbnRlbmRSZWdpc3RyYXRpb24iPgogICAgICAgICAgICAgICAgPEhh
c2g+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cFJvIj4KICAgICAgICAgICAg
ICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAg
ICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdy
b3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPEl0ZW0+YWRtaW48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJy
YXk+CiAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVt
IEtleT0iRGVzY3JpcHRpb24iIFRyYW5zbGF0YWJsZT0iMSI+Q3JlYXRlIGFuZCBtYW5hZ2UgUXVp
Y2tDbG9zZSB0ZXh0cy48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUaXRs
ZSIgVHJhbnNsYXRhYmxlPSIxIj5RdWlja0Nsb3NlPC9JdGVtPgogICAgICAgICAgICAgICAgICAg
IDxJdGVtIEtleT0iTmF2QmFyTmFtZSI+QWRtaW48L0l0ZW0+CiAgICAgICAgICAgICAgICA8L0hh
c2g+CiAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgog
ICAgPFNldHRpbmcgTmFtZT0iTG9hZGVyOjpNb2R1bGU6OkFkbWluUXVpY2tDbG9zZSMjIzAwMi1R
dWlja0Nsb3NlIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBU
cmFuc2xhdGFibGU9IjEiPkxvYWRlciBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgYWdlbnQg
aW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFk
bWluOjpNb2R1bGVSZWdpc3RyYXRpb246OkxvYWRlcjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFs
dWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJKYXZhU2Ny
aXB0Ij4KICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAg
IDxJdGVtPlF1aWNrQ2xvc2UuQWRtaW4uVXNlclNlYXJjaC5qczwvSXRlbT4KICAgICAgICAgICAg
ICAgICAgICAgICAgPEl0ZW0+UXVpY2tDbG9zZS5Db3JlLmpzPC9JdGVtPgogICAgICAgICAgICAg
ICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFz
aD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRnJv
bnRlbmQ6Ok5hdmlnYXRpb24jIyNBZG1pblF1aWNrQ2xvc2UjIyMwMDItUXVpY2tDbG9zZSIgUmVx
dWlyZWQ9IjAiIFZhbGlkPSIwIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIx
Ij5NYWluIG1lbnUgaXRlbSByZWdpc3RyYXRpb24uPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2
aWdhdGlvbj5Gcm9udGVuZDo6QWRtaW46Ok1vZHVsZVJlZ2lzdHJhdGlvbjo6TWFpbk1lbnU8L05h
dmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAg
ICAgICA8RGVmYXVsdEl0ZW0gVmFsdWVUeXBlPSJGcm9udGVuZE5hdmlnYXRpb24iPgogICAgICAg
ICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAg
ICAgICAgIDwvRGVmYXVsdEl0ZW0+CiAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgPC9WYWx1
ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZyb250ZW5kOjpOYXZpZ2F0aW9u
TW9kdWxlIyMjQWRtaW5RdWlja0Nsb3NlIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAg
IDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkFkbWluIGFyZWEgbmF2aWdhdGlvbiBmb3Ig
dGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZy
b250ZW5kOjpBZG1pbjo6TW9kdWxlUmVnaXN0cmF0aW9uOjpBZG1pbk92ZXJ2aWV3PC9OYXZpZ2F0
aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8
SXRlbSBLZXk9Ikdyb3VwIj4KICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAg
ICAgICAgICAgICAgIDxJdGVtPmFkbWluPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDwvQXJy
YXk+CiAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdy
b3VwUm8iPgogICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICA8
L0FycmF5PgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5
PSJNb2R1bGUiPktlcm5lbDo6T3V0cHV0OjpIVE1MOjpOYXZCYXI6Ok1vZHVsZUFkbWluPC9JdGVt
PgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYW1lIiBUcmFuc2xhdGFibGU9IjEiPlF1aWNr
Q2xvc2U8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkJsb2NrIj5TeXN0ZW08L0l0
ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIiBUcmFuc2xhdGFibGU9
IjEiPkNyZWF0ZSBhbmQgbWFuYWdlIFF1aWNrQ2xvc2UgdGV4dHMuPC9JdGVtPgogICAgICAgICAg
ICAgICAgPEl0ZW0gS2V5PSJJY29uQmlnIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBL
ZXk9Ikljb25TbWFsbCI+PC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1
ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZyb250ZW5kOjpNb2R1bGUjIyNB
Z2VudFF1aWNrQ2xvc2VVc2VyU2VhcmNoIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAg
IDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkZyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRp
b24gZm9yIHRoZSB1c2VyIHNlYXJjaC48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9u
PkZyb250ZW5kOjpBZG1pbjo6TW9kdWxlUmVnaXN0cmF0aW9uPC9OYXZpZ2F0aW9uPgogICAgICAg
IDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJGcm9udGVuZFJlZ2lzdHJhdGlv
biI+CiAgICAgICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9
Ikdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAg
ICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAg
ICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwUm8iPgogICAgICAgICAgICAgICAgICAgICAgICA8QXJy
YXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAg
PC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iIFRyYW5z
bGF0YWJsZT0iMSI+U2VhcmNoIGZvciBvd25lcnMuPC9JdGVtPgogICAgICAgICAgICAgICAgICAg
IDxJdGVtIEtleT0iTmF2QmFyTmFtZSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVt
IEtleT0iVGl0bGUiIFRyYW5zbGF0YWJsZT0iMSI+UXVpY2tDbG9zZTwvSXRlbT4KICAgICAgICAg
ICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8
L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGcm9udGVuZDo6TmF2aWdhdGlvbiMjI0FnZW50
UXVpY2tDbG9zZVVzZXJTZWFyY2gjIyMwMDItUXVpY2tDbG9zZSIgUmVxdWlyZWQ9IjAiIFZhbGlk
PSIwIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5NYWluIG1lbnUgaXRl
bSByZWdpc3RyYXRpb24uPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVu
ZDo6QWRtaW46Ok1vZHVsZVJlZ2lzdHJhdGlvbjo6TWFpbk1lbnU8L05hdmlnYXRpb24+CiAgICAg
ICAgPFZhbHVlPgogICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICA8RGVmYXVsdEl0
ZW0gVmFsdWVUeXBlPSJGcm9udGVuZE5hdmlnYXRpb24iPgogICAgICAgICAgICAgICAgICAgIDxI
YXNoPgogICAgICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgICAgIDwvRGVmYXVs
dEl0ZW0+CiAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGlu
Zz4KICAgIDxTZXR0aW5nIE5hbWU9IkZyb250ZW5kOjpNb2R1bGUjIyNBZ2VudFRpY2tldENsb3Nl
QnVsayIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNs
YXRhYmxlPSIxIj5Gcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgYnVsayBRdWlj
a0Nsb3NlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9u
PkZyb250ZW5kOjpBZ2VudDo6TW9kdWxlUmVnaXN0cmF0aW9uPC9OYXZpZ2F0aW9uPgogICAgICAg
IDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJGcm9udGVuZFJlZ2lzdHJhdGlv
biI+CiAgICAgICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9
Ikdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAg
ICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAg
ICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwUm8iPgogICAgICAgICAgICAgICAgICAgICAgICA8QXJy
YXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAg
PC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iIFRyYW5z
bGF0YWJsZT0iMSI+QnVsayBRdWlja0Nsb3NlLjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8
SXRlbSBLZXk9Ik5hdkJhck5hbWUiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBL
ZXk9IlRpdGxlIiBUcmFuc2xhdGFibGU9IjEiPkJ1bGsgUXVpY2tDbG9zZTwvSXRlbT4KICAgICAg
ICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAg
ICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGcm9udGVuZDo6TmF2aWdhdGlvbiMjI0Fn
ZW50VGlja2V0Q2xvc2VCdWxrIyMjMDAyLVF1aWNrQ2xvc2UiIFJlcXVpcmVkPSIwIiBWYWxpZD0i
MCI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+TWFpbiBtZW51IGl0ZW0g
cmVnaXN0cmF0aW9uLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6
OkFnZW50OjpNb2R1bGVSZWdpc3RyYXRpb246Ok1haW5NZW51PC9OYXZpZ2F0aW9uPgogICAgICAg
IDxWYWx1ZT4KICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgPERlZmF1bHRJdGVt
IFZhbHVlVHlwZT0iRnJvbnRlbmROYXZpZ2F0aW9uIj4KICAgICAgICAgICAgICAgICAgICA8SGFz
aD4KICAgICAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgICAgICA8L0RlZmF1bHRJ
dGVtPgogICAgICAgICAgICA8L0FycmF5PgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+
CiAgICA8U2V0dGluZyBOYW1lPSJGcm9udGVuZDo6T3V0cHV0OjpGaWx0ZXJFbGVtZW50UG9zdCMj
I091dHB1dEZpbHRlckNsb3NlIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNj
cmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPk1vZHVsIHRvIHNob3cgT3VwdXRmaWx0ZXJDbG9zZS48
L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPk91dHB1dEZpbHRlckNsb3NlPC9OYXZp
Z2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAg
ICA8SXRlbSBLZXk9Ik1vZHVsZSI+S2VybmVsOjpPdXRwdXQ6OkhUTUw6OkZpbHRlckVsZW1lbnRQ
b3N0OjpDbG9zZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVidWciPjA8L0l0
ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRlbXBsYXRlcyI+CiAgICAgICAgICAgICAg
ICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQWdlbnRUaWNr
ZXRab29tIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAg
ICAgIDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1Nl
dHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGcm9udGVuZDo6T3V0cHV0OjpGaWx0ZXJFbGVtZW50
UG9zdCMjI091dHB1dEZpbHRlckNsb3NlVGlja2V0VmlldyIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIx
Ij4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Nb2R1bCB0byBzaG93IE91
cHV0ZmlsdGVyQ2xvc2UgaW4gdGlja2V0IG92ZXJ2aWV3cy48L0Rlc2NyaXB0aW9uPgogICAgICAg
IDxOYXZpZ2F0aW9uPk91dHB1dEZpbHRlckNsb3NlPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1
ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1vZHVsZSI+
S2VybmVsOjpPdXRwdXQ6OkhUTUw6OkZpbHRlckVsZW1lbnRQb3N0OjpDbG9zZVRpY2tldFZpZXc8
L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlYnVnIj4wPC9JdGVtPgogICAgICAg
ICAgICAgICAgPEl0ZW0gS2V5PSJUZW1wbGF0ZXMiPgogICAgICAgICAgICAgICAgICAgIDxIYXNo
PgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkFnZW50VGlja2V0T3ZlcnZpZXdT
bWFsbCI+MTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBZ2VudFRp
Y2tldE92ZXJ2aWV3TWVkaXVtIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRl
bSBLZXk9IkFnZW50VGlja2V0T3ZlcnZpZXdQcmV2aWV3Ij4xPC9JdGVtPgogICAgICAgICAgICAg
ICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNo
PgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGcm9u
dGVuZDo6T3V0cHV0OjpGaWx0ZXJDb250ZW50IyMjUXVpY2tDbG9zZVZpZXdKUyIgUmVxdWlyZWQ9
IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Nb2R1
bCB0byBzaG93IE91cHV0ZmlsdGVyQ2xvc2UgaW4gdGlja2V0IG92ZXJ2aWV3cy48L0Rlc2NyaXB0
aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPk91dHB1dEZpbHRlckNsb3NlPC9OYXZpZ2F0aW9uPgog
ICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBL
ZXk9Ik1vZHVsZSI+S2VybmVsOjpPdXRwdXQ6OkhUTUw6OkZpbHRlckNvbnRlbnQ6OkNsb3NlVGlj
a2V0Vmlld0pTPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZWJ1ZyI+MDwvSXRl
bT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVGVtcGxhdGVzIj4KICAgICAgICAgICAgICAg
ICAgICA8SGFzaD4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBZ2VudFRpY2tl
dE92ZXJ2aWV3U21hbGwiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtl
eT0iQWdlbnRUaWNrZXRPdmVydmlld01lZGl1bSI+MTwvSXRlbT4KICAgICAgICAgICAgICAgICAg
ICAgICAgPEl0ZW0gS2V5PSJBZ2VudFRpY2tldE92ZXJ2aWV3UHJldmlldyI+MTwvSXRlbT4KICAg
ICAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAg
ICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcg
TmFtZT0iUXVpY2tDbG9zZTo6U2hvd09ubHlGb3JPd25lciIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIx
Ij4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Pbmx5IHRoZSB0aWNrZXQg
b3duZXIgc2VlcyB0aGUgZHJvcGRvd24uPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlv
bj5Db3JlPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFs
dWVUeXBlPSJDaGVja2JveCI+MDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5n
PgogICAgPFNldHRpbmcgTmFtZT0iUXVpY2tDbG9zZSMjI05vbmVMYWJlbCIgUmVxdWlyZWQ9IjAi
IFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5MYWJlbCBm
b3IgdGhlIE5VTEwgb3B0aW9uIGluIGRyb3Bkb3duLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5h
dmlnYXRpb24+Q29yZTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJ
dGVtIFZhbHVlVHlwZT0iU3RyaW5nIiBWYWx1ZVJlZ2V4PSIiPlF1aWNrQ2xvc2U8L0l0ZW0+CiAg
ICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IlF1aWNrQ2xv
c2U6OkRlZmF1bHRTdWJqZWN0IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNj
cmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmF1bHQgc3ViamVjdCBmb3IgImNsb3NlIiBub3Rl
cy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkNvcmU8L05hdmlnYXRpb24+CiAg
ICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlN0cmluZyIgVmFsdWVS
ZWdleD0iIj5DbG9zZTwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAg
PFNldHRpbmcgTmFtZT0iUXVpY2tDbG9zZTo6RGVmYXVsdElEIiBSZXF1aXJlZD0iMCIgVmFsaWQ9
IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmF1bHQgImNsb3Nl
Ii4gVGhpcyBpcyB1c2VkIHdoZW4gbm8gIkNsb3NlSUQiIGlzIHBhc3NlZC48L0Rlc2NyaXB0aW9u
PgogICAgICAgIDxOYXZpZ2F0aW9uPkNvcmU8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgog
ICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlN0cmluZyIgVmFsdWVSZWdleD0iXlxkKyQiPjE8
L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9
IlF1aWNrQ2xvc2U6OlF1ZXVlTW92ZSIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8
RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Vc2UgcXVldWUgbW92ZSBmdW5jdGlvbmFsaXR5
IGZvciBxdWljayBjbG9zZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkNvcmU8
L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9
IkNoZWNrYm94Ij4wPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8
U2V0dGluZyBOYW1lPSJRdWlja0Nsb3NlOjpTdGF0ZVR5cGVzIiBSZXF1aXJlZD0iMSIgVmFsaWQ9
IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlN0YXRlIHR5cGVzIGZv
ciBxdWljayBjbG9zZXMuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Db3JlPC9O
YXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAg
ICAgICAgPEl0ZW0+Y2xvc2VkPC9JdGVtPgogICAgICAgICAgICA8L0FycmF5PgogICAgICAgIDwv
VmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJRdWlja0Nsb3NlOjpQZW5k
aW5nRGlmZkRlZmF1bHQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0
aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmYXVsdCB0aW1lIHRvIHdhaXQgd2hlbiBuZXcgc3RhdGUg
aXMgYSBwZW5kaW5nIHN0YXRlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29y
ZTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlw
ZT0iU3RyaW5nIiBWYWx1ZVJlZ2V4PSJeXGQrJCI+MTwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgog
ICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iUXVpY2tDbG9zZTo6RnJvbnRlbmQ6OlVz
ZXJTZWFyY2hBdXRvQ29tcGxldGUjIyNBY3RpdmUiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAg
ICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RW5hYmxlcyBvciBkaXNhYmxlcyB0
aGUgYXV0b2NvbXBsZXRlIGZlYXR1cmUgZm9yIHRoZSB1c2VyIHNlYXJjaCBpbiB0aGUgSVRTTSBh
Z2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVu
ZDo6QWdlbnQ6OlVzZXJTZWFyY2g8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAg
ICAgICA8SXRlbSBWYWx1ZVR5cGU9IkNoZWNrYm94Ij4xPC9JdGVtPgogICAgICAgIDwvVmFsdWU+
CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJRdWlja0Nsb3NlOjpGcm9udGVuZDo6
VXNlclNlYXJjaEF1dG9Db21wbGV0ZTo6RHluYW1pY1dpZHRoIiBSZXF1aXJlZD0iMSIgVmFsaWQ9
IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkFkYXB0cyB0aGUgd2lk
dGggb2YgdGhlIGF1dG9jb21wbGV0ZSBkcm9wIGRvd24gdG8gdGhlIGxlbmd0aCBvZiB0aGUgbG9u
Z2VzdCBvcHRpb24uPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6
QWdlbnQ6OlVzZXJTZWFyY2g8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAg
ICA8SXRlbSBWYWx1ZVR5cGU9IkNoZWNrYm94Ij4xPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAg
ICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJRdWlja0Nsb3NlOjpGcm9udGVuZDo6VXNl
clNlYXJjaEF1dG9Db21wbGV0ZSMjI01pblF1ZXJ5TGVuZ3RoIiBSZXF1aXJlZD0iMSIgVmFsaWQ9
IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNldHMgdGhlIG1pbmlt
dW0gbnVtYmVyIG9mIGNoYXJhY3RlcnMgYmVmb3JlIGF1dG9jb21wbGV0ZSBxdWVyeSBpcyBzZW50
LjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpVc2Vy
U2VhcmNoPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFs
dWVUeXBlPSJTdHJpbmciIFZhbHVlUmVnZXg9Il5bMS05XSQiPjI8L0l0ZW0+CiAgICAgICAgPC9W
YWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IlF1aWNrQ2xvc2U6OkZyb250
ZW5kOjpVc2VyU2VhcmNoQXV0b0NvbXBsZXRlIyMjTWF4UmVzdWx0c0Rpc3BsYXllZCIgUmVxdWly
ZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5T
ZXRzIHRoZSBtYXhpbXVtIG51bWJlciBvZiBzZWFyY2ggcmVzdWx0cyBmb3IgdGhlIGF1dG9jb21w
bGV0ZSBmZWF0dXJlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6
OkFnZW50OjpVc2VyU2VhcmNoPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAg
ICAgPEl0ZW0gVmFsdWVUeXBlPSJTdHJpbmciIFZhbHVlUmVnZXg9Il5cZCskIj4yMDwvSXRlbT4K
ICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iUXVpY2tD
bG9zZTo6RnJvbnRlbmQ6OlVzZXJTZWFyY2hBdXRvQ29tcGxldGUjIyNRdWVyeURlbGF5IiBSZXF1
aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEi
PkRlbGF5IHRpbWUgYmV0d2VlbiBhdXRvY29tcGxldGUgcXVlcmllcyBpbiBtaWxsaXNlY29uZHMu
PC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlVzZXJT
ZWFyY2g8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1
ZVR5cGU9IlN0cmluZyIgVmFsdWVSZWdleD0iXlswLTldKyQiPjEwMDwvSXRlbT4KICAgICAgICA8
L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iUXVpY2tDbG9zZTo6RnJv
bnRlbmQ6OlVzZXJTZWFyY2hBdXRvQ29tcGxldGUjIyNUeXBlQWhlYWQiIFJlcXVpcmVkPSIxIiBW
YWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RW5hYmxlcyBv
ciBkaXNhYmxlcyBUeXBlQWhlYWQgZm9yIHRoZSBhdXRvY29tcGxldGUgZmVhdHVyZS48L0Rlc2Ny
aXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6VXNlclNlYXJjaDwv
TmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0i
U2VsZWN0IiBTZWxlY3RlZElEPSJmYWxzZSI+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5
cGU9Ik9wdGlvbiIgVmFsdWU9ImZhbHNlIiBUcmFuc2xhdGFibGU9IjEiPk5vPC9JdGVtPgogICAg
ICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSJ0cnVlIiBUcmFuc2xh
dGFibGU9IjEiPlllczwvSXRlbT4KICAgICAgICAgICAgPC9JdGVtPgogICAgICAgIDwvVmFsdWU+
CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJRdWlja0Nsb3NlOjpVc2VHcm91cHMi
IFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJs
ZT0iMSI+VXNlIGdyb3VwIGZ1bmN0aW9uYWxpdHkgZm9yIHF1aWNrIGNsb3NlLjwvRGVzY3JpcHRp
b24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+
CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iQ2hlY2tib3giPjA8L0l0ZW0+CiAgICAgICAg
PC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IlF1aWNrQ2xvc2U6Okxh
YmVscyIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNs
YXRhYmxlPSIxIj5MYWJlbHMgZm9yIGdyb3Vwcy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZp
Z2F0aW9uPkNvcmU8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFz
aD4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAg
ICA8U2V0dGluZyBOYW1lPSJRdWlja0Nsb3NlOjpSZXF1aXJlZExvY2siIFJlcXVpcmVkPSIxIiBW
YWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+V2hlbiB0aWNr
ZXQgaXMgbG9ja2VkLCBzaG93IGRyb3Bkb3duIG9ubHkgdG8gdGhlIG93bmVyIGluIHRpY2tldCB6
b29tLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTwvTmF2aWdhdGlvbj4K
ICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iQ2hlY2tib3giPjA8
L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9
IlF1aWNrQ2xvc2U6OlVzZVF1ZXVlU2VuZGVyIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAg
ICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlVzZSB0aGUgc3lzdGVtIGFkZHJlc3Mg
YXNzaWduZWQgdG8gdGhlIHF1ZXVlIGFzIHRoZSBzZW5kZXIgYWRkcmVzcy48L0Rlc2NyaXB0aW9u
PgogICAgICAgIDxOYXZpZ2F0aW9uPkNvcmU8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgog
ICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkNoZWNrYm94Ij4wPC9JdGVtPgogICAgICAgIDwv
VmFsdWU+CiAgICA8L1NldHRpbmc+Cjwvb3Ryc19jb25maWc+Cg==
IyAtLQojIEtlcm5lbC9MYW5ndWFnZS9kZV9RdWlja0Nsb3NlLnBtIC0gdGhlIEdlcm1hbiB0cmFu
c2xhdGlvbiBmb3IgUXVpY2tDbG9zZQojIENvcHlyaWdodCAoQykgMjAxMS0yMDE2IFBlcmwtU2Vy
dmljZXMsIGh0dHA6Ly93d3cucGVybC1zZXJ2aWNlcy5kZQojIC0tCiMgVGhpcyBzb2Z0d2FyZSBj
b21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUg
ZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYg
eW91CiMgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9s
aWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Okxhbmd1YWdlOjpkZV9RdWlj
a0Nsb3NlOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIHV0Zjg7CgpvdXIgJFZFUlNJ
T04gPSAnMC4wMSc7CgpzdWIgRGF0YSB7CiAgICBteSAkU2VsZiA9IHNoaWZ0OwoKICAgIG15ICRM
YW5nID0gJFNlbGYtPntUcmFuc2xhdGlvbn07CgogICAgcmV0dXJuIGlmIHJlZiAkTGFuZyBuZSAn
SEFTSCc7CgogICAgIyBLZXJuZWwvQ29uZmlnL0ZpbGVzL1F1aWNrQ2xvc2UueG1sCiAgICAkTGFu
Zy0+eydGcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgUXVpY2tDbG9zZSBhZ2Vu
dCBpbnRlcmZhY2UuJ30gPSAnRnJvbnRlbmRtb2R1bC1SZWdpc3RyaWVydW5nIGbDvHIgZGFzIFF1
aWNrQ2xvc2UgQWdlbnRlbiBJbnRlcmZhY2UuJzsKICAgICRMYW5nLT57J1F1aWNrQ2xvc2UnfSA9
ICdRdWlja0Nsb3NlJzsKICAgICRMYW5nLT57J0Zyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24g
Zm9yIHRoZSBxdWljayBjbG9zZSBhZG1pbmlzdHJhdGlvbi4nfSA9ICdGcm9udGVuZG1vZHVsIGbD
vHIgZGllIFF1aWNrQ2xvc2UtVmVyd2FsdHVuZyc7CiAgICAkTGFuZy0+eydDcmVhdGUgYW5kIG1h
bmFnZSBRdWlja0Nsb3NlIHRleHRzLid9ID0gJ0Vyc3RlbGxlbiB1bmQgdmVyd2FsdGVuIHZvbiBR
dWlja0Nsb3NlLUVpbnN0ZWxsdW5nZW4uJzsKICAgICRMYW5nLT57J0Zyb250ZW5kIG1vZHVsZSBy
ZWdpc3RyYXRpb24gZm9yIHRoZSB1c2VyIHNlYXJjaC4nfSA9ICdGcm9udGVuZG1vZHVsLVJlZ2lz
dHJpZXJ1bmcgZsO8ciBkaWUgQmVudXR6ZXJzdWNoZSc7CiAgICAkTGFuZy0+eydTZWFyY2ggZm9y
IG93bmVycy4nfSA9ICdOYWNoIEJlc2l0emVybiBzdWNoZW4nOwogICAgJExhbmctPnsnRnJvbnRl
bmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIGJ1bGsgUXVpY2tDbG9zZSBhZ2VudCBpbnRl
cmZhY2UuJ30gPSAnRnJvbnRlbmRtb2R1bC1SZWdpc3RyYXRpb24gZsO8ciBkYXMgTWFzc2VuUXVp
Y2tDbG9zZSBBZ2VudGVuIEludGVyZmFjZS4nOwogICAgJExhbmctPnsnQnVsayBRdWlja0Nsb3Nl
Lid9ID0gJ1NhbW1lbC1TY2hsaWXDn2VuJzsKICAgICRMYW5nLT57J0J1bGsgUXVpY2tDbG9zZSd9
ID0gJ1NhbW1lbC1TY2hsaWXDn2VuJzsKICAgICRMYW5nLT57J01vZHVsIHRvIHNob3cgT3VwdXRm
aWx0ZXJDbG9zZS4nfSA9ICdNb2R1bCB6dW0gQW56ZWlnZW4gdm9uIE91cHV0ZmlsdGVyQ2xvc2Uu
JzsKICAgICRMYW5nLT57J01vZHVsIHRvIHNob3cgT3VwdXRmaWx0ZXJDbG9zZSBpbiB0aWNrZXQg
b3ZlcnZpZXdzLid9ID0gJ01vZHVsIHp1bSBBbnplaWdlbiB2b24gT3VwdXRmaWx0ZXJDbG9zZSBp
biBUaWNrZXTDvGJlcnNpY2h0ZW4uJzsKICAgICRMYW5nLT57J09ubHkgdGhlIHRpY2tldCBvd25l
ciBzZWVzIHRoZSBkcm9wZG93bi4nfSA9ICdOdXIgZGVyIFRpY2tldGJlc2l0emVyIHNpZWh0IGRh
cyBEcm9wZG93bi4nOwogICAgJExhbmctPnsnTGFiZWwgZm9yIHRoZSBOVUxMIG9wdGlvbiBpbiBk
cm9wZG93bi4nfSA9ICdUZXh0IGbDvHIgZGllIExlZXItT3B0aW9uIGltIERyb3Bkb3duLic7CiAg
ICAkTGFuZy0+eydEZWZhdWx0IHN1YmplY3QgZm9yICJjbG9zZSIgbm90ZXMuJ30gPSAnU3RhbmRh
cmRiZXRyZWZmIGbDvHIgIlNjaGxpZcOfZW4iLU5vdGl6ZW4uJzsKICAgICRMYW5nLT57J0RlZmF1
bHQgImNsb3NlIi4gVGhpcyBpcyB1c2VkIHdoZW4gbm8gIkNsb3NlSUQiIGlzIHBhc3NlZC4nfSA9
ICdTdGFuZGFyZGdydW5kIGbDvHIgZGFzIFNjaGxpZcOfZW4uIFdpcmQgdmVyd2VuZGV0IHdlbm4g
a2VpbmUgIkNsb3NlSUQiIMO8YmVyZ2ViZW4gd2lyZC4nOwogICAgJExhbmctPnsnVXNlIHF1ZXVl
IG1vdmUgZnVuY3Rpb25hbGl0eSBmb3IgcXVpY2sgY2xvc2UuJ30gPSAnVmVyc2NoaWViZW4tRnVu
a3Rpb25hbGl0w6R0IGbDvHIgUXVpY2tDbG9zZSBha3RpdmllcmVuJzsKICAgICRMYW5nLT57J1N0
YXRlIHR5cGVzIGZvciBxdWljayBjbG9zZXMuJ30gPSAnU3RhdHVzdHlwZW4gZsO8ciBRdWlja0Ns
b3Nlcyc7CiAgICAkTGFuZy0+eydEZWZhdWx0IHRpbWUgdG8gd2FpdCB3aGVuIG5ldyBzdGF0ZSBp
cyBhIHBlbmRpbmcgc3RhdGUuJ30gPSAnU3RhbmRhcmQtV2FydGV6ZWl0IHdlbm4gZGVyIG5ldWUg
U3RhdHVzIGVpbiAiV2FydGVuIi1TdGF0dXMgaXN0Lic7CiAgICAkTGFuZy0+eydFbmFibGVzIG9y
IGRpc2FibGVzIHRoZSBhdXRvY29tcGxldGUgZmVhdHVyZSBmb3IgdGhlIHVzZXIgc2VhcmNoIGlu
IHRoZSBJVFNNIGFnZW50IGludGVyZmFjZS4nfSA9ICdBa3RpdmllcmUvRGVha3RpdmVyZSBkYXMg
QXV0b2NvbXBsZXRlLUZlYXR1cmUgZsO8ciBkaWUgQmVudXR6ZXJzdWNoZSBpbSBJVFNNIEFnZW50
ZW5pbnRlcmZhY2UnOwogICAgJExhbmctPnsnQWRhcHRzIHRoZSB3aWR0aCBvZiB0aGUgYXV0b2Nv
bXBsZXRlIGRyb3AgZG93biB0byB0aGUgbGVuZ3RoIG9mIHRoZSBsb25nZXN0IG9wdGlvbi4nfSA9
ICcnOwogICAgJExhbmctPnsnU2V0cyB0aGUgbWluaW11bSBudW1iZXIgb2YgY2hhcmFjdGVycyBi
ZWZvcmUgYXV0b2NvbXBsZXRlIHF1ZXJ5IGlzIHNlbnQuJ30gPSAnJzsKICAgICRMYW5nLT57J1Nl
dHMgdGhlIG1heGltdW0gbnVtYmVyIG9mIHNlYXJjaCByZXN1bHRzIGZvciB0aGUgYXV0b2NvbXBs
ZXRlIGZlYXR1cmUuJ30gPSAnJzsKICAgICRMYW5nLT57J0RlbGF5IHRpbWUgYmV0d2VlbiBhdXRv
Y29tcGxldGUgcXVlcmllcyBpbiBtaWxsaXNlY29uZHMuJ30gPSAnJzsKICAgICRMYW5nLT57J0Vu
YWJsZXMgb3IgZGlzYWJsZXMgVHlwZUFoZWFkIGZvciB0aGUgYXV0b2NvbXBsZXRlIGZlYXR1cmUu
J30gPSAnJzsKICAgICRMYW5nLT57J1VzZSBncm91cCBmdW5jdGlvbmFsaXR5IGZvciBxdWljayBj
bG9zZS4nfSA9ICdHcnVwcGVuLUZ1bmt0aW9uYWxpdMOkdCBmw7xyIFF1aWNrQ2xvc2UgdmVyd2Vu
ZGVuJzsKICAgICRMYW5nLT57J05vJ30gPSAnTmVpbic7CiAgICAkTGFuZy0+eydZZXMnfSA9ICdK
YSc7CiAgICAkTGFuZy0+eydMYWJlbHMgZm9yIGdyb3Vwcy4nfSA9ICdHcnVwcGVuYmV6ZWljaG51
bmdlbic7CgoKICAgICMgS2VybmVsL01vZHVsZXMvQWdlbnRUaWNrZXRDbG9zZUJ1bGsucG0KICAg
ICRMYW5nLT57J0Nsb3NlJ30gPSAnU2NobGllw59lbic7CiAgICAkTGFuZy0+eydObyBUaWNrZXRJ
RCBpcyBnaXZlbiEnfSA9ICdLZWluZSBUaWNrZXRJRCDDvGJlcmdlYmVuISc7CiAgICAkTGFuZy0+
eydQbGVhc2UgY29udGFjdCB0aGUgYWRtaW4uJ30gPSAnQml0dGUga29udGFrdGllcmVuIFNpZSBk
ZW4gT1RSUy1BZG1pbmlzdHJhdG9yJzsKICAgICRMYW5nLT57J05vIFF1aWNrQ2xvc2UgZGF0YSBm
b3VuZCEnfSA9ICdLZWluZSBRdWlja0Nsb3NlLURhdGVuIGdlZnVuZGVuJzsKICAgICRMYW5nLT57
J05vIEFjY2VzcyB0byB0aGVzZSBUaWNrZXRzIChJRHM6ICVzKSd9ID0gJ0tlaW4gWnVncmlmZiBh
dWYgZGllc2UgVGlja2V0cyAoSURzOiAlcyknOwogICAgJExhbmctPnsnUXVpY2tDbG9zZSBub3Qg
YXBwbGljYWJsZSBmb3IgdGhlc2UgVGlja2V0cyAoSURzOiAlcyknfSA9ICdBa3Rpb24ga2FubiBu
aWNodCBhdWYgZGllc2UgVGlja2V0cyBhbmdld2VuZGV0IHdlcmRlbiAoSURzOiAlcyknOwoKICAg
ICMgS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9RdWlja0Nsb3NlU25pcHBl
dFRpY2tldFZpZXcudHQKICAgICRMYW5nLT57J1F1aWNrQ2xvc2UgdGlja2V0J30gPSAnVGlja2V0
IHNjaG5lbGxzY2hsaWXDn2VuJzsKCiAgICAjIEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMv
U3RhbmRhcmQvQWRtaW5RdWlja0Nsb3NlTGlzdC50dAogICAgJExhbmctPnsnUXVpY2tDbG9zZSBN
YW5hZ2VtZW50J30gPSAnUXVpY2tDbG9zZSB2ZXJ3YWx0ZW4nOwogICAgJExhbmctPnsnQWN0aW9u
cyd9ID0gJ0FrdGlvbmVuJzsKICAgICRMYW5nLT57J0FkZCB0ZXh0J30gPSAnTmV1ZXIgUXVpY2tD
bG9zZSc7CiAgICAkTGFuZy0+eydMaXN0J30gPSAnTGlzdGUnOwogICAgJExhbmctPnsnTmFtZSd9
ID0gJ05hbWUnOwogICAgJExhbmctPnsnU3RhdGUnfSA9ICdTdGF0dXMnOwogICAgJExhbmctPnsn
VmFsaWQnfSA9ICdHw7xsdGlnJzsKICAgICRMYW5nLT57J0RhdGUnfSA9ICdEYXR1bSc7CiAgICAk
TGFuZy0+eydBdXRob3InfSA9ICdBdXRvcic7CiAgICAkTGFuZy0+eydBY3Rpb24nfSA9ICdBa3Rp
b24nOwogICAgJExhbmctPnsnTm8gbWF0Y2hlcyBmb3VuZC4nfSA9ICdLZWluZSBUcmVmZmVyIGdl
ZnVuZGVuJzsKICAgICRMYW5nLT57J2VkaXQnfSA9ICdiZWFyYmVpdGVuJzsKICAgICRMYW5nLT57
J2RlbGV0ZSd9ID0gJ2zDtnNjaGVuJzsKCiAgICAjIEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0
ZXMvU3RhbmRhcmQvQWRtaW5RdWlja0Nsb3NlVXNlclNlYXJjaC50dAogICAgJExhbmctPnsnU2Vh
cmNoIEFnZW50J30gPSAnU3VjaGUgQWdlbnRlbic7CgogICAgIyBLZXJuZWwvT3V0cHV0L0hUTUwv
VGVtcGxhdGVzL1N0YW5kYXJkL0FkbWluUXVpY2tDbG9zZUZvcm0udHQKICAgICRMYW5nLT57J0dv
IHRvIG92ZXJ2aWV3J30gPSAnWnVyIMOcYmVyc2ljaHQgZ2VoZW4nOwogICAgJExhbmctPnsnQWRk
L0NoYW5nZSBRdWlja0Nsb3NlIHRleHRzJ30gPSAnUXVpY2tDbG9zZSBoaW56dWbDvGdlbi/DpG5k
ZXJuJzsKICAgICRMYW5nLT57J0EgbmFtZSBmb3IgdGhlIFF1aWNrQ2xvc2UgdGV4dCBpcyByZXF1
aXJlZC4nfSA9ICdFcyBtdXNzIGVpbiBOYW1lIGbDvHIgZGVuIFF1aWNrQ2xvc2UtVGV4dCBlaW5n
ZWdlYmVuIHdlcmRlbic7CiAgICAkTGFuZy0+eydSb2xlJ30gPSAnUm9sbGUnOwogICAgJExhbmct
PnsnR3JvdXAnfSA9ICdHcnVwcGUnOwogICAgJExhbmctPnsnU3ViamVjdCd9ID0gJ0JldHJlZmYn
OwogICAgJExhbmctPnsnQm9keSd9ID0gJ1RleHQnOwogICAgJExhbmctPnsnQSBib2R5IHRleHQg
aXMgcmVxdWlyZWQuJ30gPSAnRWluIE5hY2hyaWNodGVudGV4dCB3aXJkIGJlbsO2dGlndC4nOwog
ICAgJExhbmctPnsnVGltZSB1bml0cyd9ID0gJ1plaXRlaW5oZWl0ZW4nOwogICAgJExhbmctPnsn
U3RhdGUgYWZ0ZXIgY2xvc2UnfSA9ICdOZXVlciBTdGF0dXMnOwogICAgJExhbmctPnsnUGVuZGlu
ZyBEaWZmIChpbiBtaW51dGVzKSd9ID0gJ1dhcnRlemVpdCAoaW4gTWludXRlbiknOwogICAgJExh
bmctPnsnRml4IEhvdXI6TWludXRlIGZvciBwZW5kaW5nIHRpbWUnfSA9ICdGZXN0ZSBTdHVuZGU6
TWludXRlIGJlaSBXYXJ0ZW4tU3RhdHVzJzsKICAgICRMYW5nLT57J1ByaW9yaXR5J30gPSAnUHJp
b3JpdMOkdCc7CiAgICAkTGFuZy0+eydPd25lcid9ID0gJ0Jlc2l0emVyJzsKICAgICRMYW5nLT57
J0ludmFsaWQgVXNlci4nfSA9ICdVbmfDvGx0aWdlciBCZW51dHplci4nOwogICAgJExhbmctPnsn
UmVzcG9uc2libGUnfSA9ICdWZXJhbnR3b3J0bGljaCc7CiAgICAkTGFuZy0+eydBY3RpbmcgdXNl
ciBzaG91bGQgYmVjb21lIHRpY2tldCBvd25lcid9ID0gJ0F1c2bDvGhyZW5kZXIgQmVudXR6ZXIg
d2lyZCBCZXNpdHplcic7CiAgICAkTGFuZy0+eydSZXNwb25zaWJsZSBzaG91bGQgYmVjb21lIHRp
Y2tldCBvd25lcid9ID0gJ1ZlcmFudHdvcnRsaWNoZXIgd2lyZCBCZXNpdHplcic7CiAgICAkTGFu
Zy0+eydVbmxvY2sgVGlja2V0J30gPSAnVGlja2V0IGZyZWlnZWJlbic7CiAgICAkTGFuZy0+eydU
aWNrZXRzIGFyZSB1bmxvY2tlZCBhdXRvbWF0aWNhbGx5IG9uIFwnY2xvc2VkXCcgc3RhdGVzJ30g
PSAnVGlja2V0cyB3ZXJkZW4gYmVpIFwnZ2VzY2hsb3NzZW5cJyBTdGF0dXMgYXV0b21hdGlzY2gg
ZnJlaWdlZ2ViZW4nOwogICAgJExhbmctPnsnVmFsaWRpdHknfSA9ICdHw7xsdGlna2VpdCc7CiAg
ICAkTGFuZy0+eydBcnRpY2xlIFR5cGUnfSA9ICdBcnRpa2VsdHlwJzsKICAgICRMYW5nLT57J1F1
ZXVlJ30gPSAnUXVldWUnOwogICAgJExhbmctPnsnU2hvdyB0aWNrZXQgWm9vbSBhZnRlciBRdWlj
a0Nsb3NlJ30gPSAnWmVpZ2UgZGllIFRpY2tldGFuc2ljaHQgbmFjaCBlaW5lbSBRdWlja0Nsb3Nl
JzsKICAgICRMYW5nLT57J1NhdmUnfSA9ICdTcGVpY2hlcm4nOwogICAgJExhbmctPnsnb3InfSA9
ICdvZGVyJzsKICAgICRMYW5nLT57J0NhbmNlbCd9ID0gJ0FiYnJlY2hlbic7CiAgICAkTGFuZy0+
eydBcnRpY2xlIHZpZXdhYmxlIGZvciBDdXN0b21lcid9ID0gJ0FydGljbGUgZsO8ciBLdW5kZW4g
c2ljaHRiYXInOwoKICAgIHJldHVybiAxOwp9CgoxOwo=
IyAtLQojIEtlcm5lbC9MYW5ndWFnZS9odV9RdWlja0Nsb3NlLnBtIC0gdGhlIEh1bmdhcmlhbiB0
cmFuc2xhdGlvbiBmb3IgUXVpY2tDbG9zZQojIENvcHlyaWdodCAoQykgMjAxMS0yMDE2IFBlcmwt
U2VydmljZXMsIGh0dHA6Ly93d3cucGVybC1zZXJ2aWNlcy5kZQojIENvcHlyaWdodCAoQykgMjAx
NiBCYWzDoXpzIMOaciwgaHR0cDovL3d3dy5vdHJzLW1lZ29sZGFzb2suaHUKIyAtLQojIFRoaXMg
c29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywg
c2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAo
QUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3
LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFn
ZTo6aHVfUXVpY2tDbG9zZTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSB1dGY4OwoK
b3VyICRWRVJTSU9OID0gJzAuMDEnOwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsK
CiAgICBteSAkTGFuZyA9ICRTZWxmLT57VHJhbnNsYXRpb259OwoKICAgIHJldHVybiBpZiByZWYg
JExhbmcgbmUgJ0hBU0gnOwoKICAgICMgS2VybmVsL0NvbmZpZy9GaWxlcy9RdWlja0Nsb3NlLnht
bAogICAgJExhbmctPnsnRnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIFF1aWNr
Q2xvc2UgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnRWzFkXTDqXRwcm9ncmFtLW1vZHVs
IHJlZ2lzenRyw6FjacOzIGEgZ3lvcnMgbGV6w6Fyw6FzIMO8Z3lpbnTDqXrFkWkgZmVsw7xsZXRo
ZXouJzsKICAgICRMYW5nLT57J1F1aWNrQ2xvc2UnfSA9ICdHeW9ycyBsZXrDoXLDoXMnOwogICAg
JExhbmctPnsnRnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIHF1aWNrIGNsb3Nl
IGFkbWluaXN0cmF0aW9uLid9ID0KICAgICAgICAnRWzFkXTDqXRwcm9ncmFtLW1vZHVsIHJlZ2lz
enRyw6FjacOzIGEgZ3lvcnMgbGV6w6Fyw6FzIGFkbWluaXN6dHLDoWNpw7Nqw6Fob3ouJzsKICAg
ICRMYW5nLT57J0NyZWF0ZSBhbmQgbWFuYWdlIFF1aWNrQ2xvc2UgdGV4dHMuJ30gPSAnR3lvcnMg
bGV6w6Fyw6FzIHN6w7Z2ZWdlayBsw6l0cmVob3rDoXNhIMOpcyBrZXplbMOpc2UuJzsKICAgICRM
YW5nLT57J0Zyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSB1c2VyIHNlYXJjaC4n
fSA9CiAgICAgICAgJ0VsxZF0w6l0cHJvZ3JhbS1tb2R1bCByZWdpc3p0csOhY2nDsyBhIGZlbGhh
c3puw6Fsw7NrZXJlc8Opc2hlei4nOwogICAgJExhbmctPnsnU2VhcmNoIGZvciBvd25lcnMuJ30g
PSAnVHVsYWpkb25vc29rIGtlcmVzw6lzZS4nOwogICAgJExhbmctPnsnRnJvbnRlbmQgbW9kdWxl
IHJlZ2lzdHJhdGlvbiBmb3IgdGhlIGJ1bGsgUXVpY2tDbG9zZSBhZ2VudCBpbnRlcmZhY2UuJ30g
PQogICAgICAgICdFbMWRdMOpdHByb2dyYW0tbW9kdWwgcmVnaXN6dHLDoWNpw7MgYSB0w7ZtZWdl
cyBneW9ycyBsZXrDoXLDoXMgw7xneWludMOpesWRaSBmZWzDvGxldGhlei4nOwogICAgJExhbmct
PnsnQnVsayBRdWlja0Nsb3NlLid9ID0gJ1TDtm1lZ2VzIGd5b3JzIGxlesOhcsOhcy4nOwogICAg
JExhbmctPnsnQnVsayBRdWlja0Nsb3NlJ30gPSAnVMO2bWVnZXMgZ3lvcnMgbGV6w6Fyw6FzJzsK
ICAgICRMYW5nLT57J01vZHVsIHRvIHNob3cgT3VwdXRmaWx0ZXJDbG9zZS4nfSA9ICdFZ3kgbW9k
dWwgYSBraW1lbmV0c3rFsXLFkS1sZXrDoXLDoXMgbWVnamVsZW7DrXTDqXPDqWhlei4nOwogICAg
JExhbmctPnsnTW9kdWwgdG8gc2hvdyBPdXB1dGZpbHRlckNsb3NlIGluIHRpY2tldCBvdmVydmll
d3MuJ30gPQogICAgICAgICdFZ3kgbW9kdWwgYSBraW1lbmV0c3rFsXLFkS1sZXrDoXLDoXMgbWVn
amVsZW7DrXTDqXPDqWhleiBhIGplZ3nDoXR0ZWtpbnTFkWvDtm4uJzsKICAgICRMYW5nLT57J09u
bHkgdGhlIHRpY2tldCBvd25lciBzZWVzIHRoZSBkcm9wZG93bi4nfSA9ICdDc2FrIGEgamVneXR1
bGFqZG9ub3MgbMOhdGphIGEgbGVnw7ZyZMO8bMWRdC4nOwogICAgJExhbmctPnsnTGFiZWwgZm9y
IHRoZSBOVUxMIG9wdGlvbiBpbiBkcm9wZG93bi4nfSA9ICdDw61ta2UgYSBsZWfDtnJkw7xsxZEg
w7xyZXMgbGVoZXTFkXPDqWfDqWhlei4nOwogICAgJExhbmctPnsnRGVmYXVsdCBzdWJqZWN0IGZv
ciAiY2xvc2UiIG5vdGVzLid9ID0gJ0FsYXDDqXJ0ZWxtZXpldHQgdMOhcmd5IGEg4oCebGV6w6Fy
w6Fz4oCdIGplZ3l6ZXRla2hlei4nOwogICAgJExhbmctPnsnRGVmYXVsdCAiY2xvc2UiLiBUaGlz
IGlzIHVzZWQgd2hlbiBubyAiQ2xvc2VJRCIgaXMgcGFzc2VkLid9ID0KICAgICAgICAnQWxhcMOp
cnRlbG1lemV0dCDigJ5sZXrDoXLDoXPigJ0uIEV6dCBha2tvciBoYXN6bsOhbGrDoWssIGFtaWtv
ciBuaW5jcyDigJ5sZXrDoXLDoXNhem9ub3PDrXTDs+KAnSDDoXRhZHZhLic7CiAgICAkTGFuZy0+
eydVc2UgcXVldWUgbW92ZSBmdW5jdGlvbmFsaXR5IGZvciBxdWljayBjbG9zZS4nfSA9CiAgICAg
ICAgJ0EgdsOhcsOzbGlzdGEgw6F0aGVseWV6w6lzIGZ1bmtjaW9uYWxpdMOhc8OhbmFrIGhhc3pu
w6FsYXRhIGEgZ3lvcnMgbGV6w6Fyw6FzaG96Lic7CiAgICAkTGFuZy0+eydTdGF0ZSB0eXBlcyBm
b3IgcXVpY2sgY2xvc2VzLid9ID0gJ8OBbGxhcG90dMOtcHVzb2sgYSBneW9ycyBsZXrDoXLDoXNv
a2hvei4nOwogICAgJExhbmctPnsnRGVmYXVsdCB0aW1lIHRvIHdhaXQgd2hlbiBuZXcgc3RhdGUg
aXMgYSBwZW5kaW5nIHN0YXRlLid9ID0KICAgICAgICAnQWxhcMOpcnRlbG1lemV0dCB2w6FyYWtv
esOhc2kgaWTFkSwgYW1pa29yIGF6IMO6aiDDoWxsYXBvdCBlZ3kgdsOhcmFrb3rDsyDDoWxsYXBv
dC4nOwogICAgJExhbmctPnsnRW5hYmxlcyBvciBkaXNhYmxlcyB0aGUgYXV0b2NvbXBsZXRlIGZl
YXR1cmUgZm9yIHRoZSB1c2VyIHNlYXJjaCBpbiB0aGUgSVRTTSBhZ2VudCBpbnRlcmZhY2UuJ30g
PQogICAgICAgICdFbmdlZMOpbHllemkgdmFneSBsZXRpbHRqYSBheiBhdXRvbWF0aWt1cyBraWVn
w6lzesOtdMOpcyBzem9sZ8OhbHRhdMOhc3QgYSBmZWxoYXN6bsOhbMOza2VyZXPDqXNuw6lsIGF6
IElUU00gw7xneWludMOpesWRaSBmZWzDvGxldGVuLic7CiAgICAkTGFuZy0+eydBZGFwdHMgdGhl
IHdpZHRoIG9mIHRoZSBhdXRvY29tcGxldGUgZHJvcCBkb3duIHRvIHRoZSBsZW5ndGggb2YgdGhl
IGxvbmdlc3Qgb3B0aW9uLid9ID0KICAgICAgICAnSG96esOhaWdhesOtdGphIGF6IGF1dG9tYXRp
a3VzIGtpZWfDqXN6w610w6lzIGxlZ8O2cmTDvGzFkSBzesOpbGVzc8OpZ8OpdCBhIGxlZ2hvc3N6
YWJiIGxlaGV0xZFzw6lnIGhvc3N6w6Fob3ouJzsKICAgICRMYW5nLT57J1NldHMgdGhlIG1pbmlt
dW0gbnVtYmVyIG9mIGNoYXJhY3RlcnMgYmVmb3JlIGF1dG9jb21wbGV0ZSBxdWVyeSBpcyBzZW50
Lid9ID0KICAgICAgICAnQmXDoWxsw610amEgYSBrYXJha3RlcmVrIGxlZ2tpc2ViYiBzesOhbcOh
dCBheiBhdXRvbWF0aWt1cyBraWVnw6lzesOtdMOpcyBsZWvDqXJkZXrDqXMgZWxrw7xsZMOpc2Ug
ZWzFkXR0Lic7CiAgICAkTGFuZy0+eydTZXRzIHRoZSBtYXhpbXVtIG51bWJlciBvZiBzZWFyY2gg
cmVzdWx0cyBmb3IgdGhlIGF1dG9jb21wbGV0ZSBmZWF0dXJlLid9ID0KICAgICAgICAnQmXDoWxs
w610amEgYSBrZXJlc8Opc2kgZXJlZG3DqW55ZWsgbGVnbmFneW9iYiBzesOhbcOhdCBheiBhdXRv
bWF0aWt1cyBraWVnw6lzesOtdMOpcyBzem9sZ8OhbHRhdMOhc27DoWwuJzsKICAgICRMYW5nLT57
J0RlbGF5IHRpbWUgYmV0d2VlbiBhdXRvY29tcGxldGUgcXVlcmllcyBpbiBtaWxsaXNlY29uZHMu
J30gPQogICAgICAgICdLw6lzbGVsdGV0w6lzaSBpZMWRIGF6IGF1dG9tYXRpa3VzIGtpZWfDqXN6
w610w6lzIGxla8OpcmRlesOpc2VrIGvDtnrDtnR0IGV6cmVkbcOhc29kcGVyY2Jlbi4nOwogICAg
JExhbmctPnsnRW5hYmxlcyBvciBkaXNhYmxlcyBUeXBlQWhlYWQgZm9yIHRoZSBhdXRvY29tcGxl
dGUgZmVhdHVyZS4nfSA9CiAgICAgICAgJ0VuZ2Vkw6lseWV6aSB2YWd5IGxldGlsdGphIGEgVHlw
ZUFoZWFkIGhhc3puw6FsYXTDoXQgYXogYXV0b21hdGlrdXMga2llZ8Opc3rDrXTDqXMgc3pvbGfD
oWx0YXTDoXNuw6FsLic7CiAgICAkTGFuZy0+eydVc2UgZ3JvdXAgZnVuY3Rpb25hbGl0eSBmb3Ig
cXVpY2sgY2xvc2UuJ30gPSAnQ3NvcG9ydGZ1bmtjaW9uYWxpdMOhcyBoYXN6bsOhbGF0YSBhIGd5
b3JzIGxlesOhcsOhc27DoWwuJzsKICAgICRMYW5nLT57J05vJ30gPSAnTmVtJzsKICAgICRMYW5n
LT57J1llcyd9ID0gJ0lnZW4nOwogICAgJExhbmctPnsnTGFiZWxzIGZvciBncm91cHMuJ30gPSAn
Q8OtbWvDqWsgYSBjc29wb3J0b2tob3ouJzsKCgogICAgIyBLZXJuZWwvTW9kdWxlcy9BZ2VudFRp
Y2tldENsb3NlQnVsay5wbQogICAgJExhbmctPnsnQ2xvc2UnfSA9ICdMZXrDoXLDoXMnOwogICAg
JExhbmctPnsnTm8gVGlja2V0SUQgaXMgZ2l2ZW4hJ30gPSAnTmluY3MgamVneWF6b25vc8OtdMOz
IG1lZ2FkdmEhJzsKICAgICRMYW5nLT57J1BsZWFzZSBjb250YWN0IHRoZSBhZG1pbi4nfSA9ICdW
ZWd5ZSBmZWwgYSBrYXBjc29sYXRvdCBhIHJlbmRzemVyZ2F6ZMOhdmFsLic7CiAgICAkTGFuZy0+
eydObyBRdWlja0Nsb3NlIGRhdGEgZm91bmQhJ30gPSAnTmVtIHRhbMOhbGhhdMOzIGd5b3JzIGxl
esOhcsOhcyBhZGF0ISc7CiAgICAkTGFuZy0+eydObyBBY2Nlc3MgdG8gdGhlc2UgVGlja2V0cyAo
SURzOiAlcyknfSA9ICdOaW5jcyBob3p6w6Fmw6lyw6lzIGV6ZWtoZXogYSBqZWd5ZWtoZXogKGF6
b25vc8OtdMOzazogJXMpJzsKCiAgICAjIEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3Rh
bmRhcmQvUXVpY2tDbG9zZVNuaXBwZXRUaWNrZXRWaWV3LnR0CiAgICAkTGFuZy0+eydRdWlja0Ns
b3NlIHRpY2tldCd9ID0gJ0plZ3kgZ3lvcnMgbGV6w6Fyw6FzYSc7CgogICAgIyBLZXJuZWwvT3V0
cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FkbWluUXVpY2tDbG9zZUxpc3QudHQKICAgICRM
YW5nLT57J1F1aWNrQ2xvc2UgTWFuYWdlbWVudCd9ID0gJ0d5b3JzIGxlesOhcsOhcyBrZXplbMOp
cyc7CiAgICAkTGFuZy0+eydBY3Rpb25zJ30gPSAnTcWxdmVsZXRlayc7CiAgICAkTGFuZy0+eydB
ZGQgdGV4dCd9ID0gJ1N6w7Z2ZWcgaG96esOhYWTDoXNhJzsKICAgICRMYW5nLT57J0xpc3QnfSA9
ICdMaXN0YSc7CiAgICAkTGFuZy0+eydOYW1lJ30gPSAnTsOpdic7CiAgICAkTGFuZy0+eydTdGF0
ZSd9ID0gJ8OBbGxhcG90JzsKICAgICRMYW5nLT57J1ZhbGlkJ30gPSAnw4lydsOpbnllcyc7CiAg
ICAkTGFuZy0+eydEYXRlJ30gPSAnRMOhdHVtJzsKICAgICRMYW5nLT57J0F1dGhvcid9ID0gJ1N6
ZXJ6xZEnOwogICAgJExhbmctPnsnQWN0aW9uJ30gPSAnTcWxdmVsZXQnOwogICAgJExhbmctPnsn
Tm8gbWF0Y2hlcyBmb3VuZC4nfSA9ICdOaW5jcyB0YWzDoWxhdC4nOwogICAgJExhbmctPnsnZWRp
dCd9ID0gJ3N6ZXJrZXN6dMOpcyc7CiAgICAkTGFuZy0+eydkZWxldGUnfSA9ICd0w7ZybMOpcyc7
CgogICAgIyBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FkbWluUXVpY2tD
bG9zZVVzZXJTZWFyY2gudHQKICAgICRMYW5nLT57J1NlYXJjaCBBZ2VudCd9ID0gJ8OcZ3lpbnTD
qXrFkSBrZXJlc8Opc2UnOwoKICAgICMgS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFu
ZGFyZC9BZG1pblF1aWNrQ2xvc2VGb3JtLnR0CiAgICAkTGFuZy0+eydHbyB0byBvdmVydmlldyd9
ID0gJ1VncsOhcyBheiDDoXR0ZWtpbnTFkWjDtnonOwogICAgJExhbmctPnsnQWRkL0NoYW5nZSBR
dWlja0Nsb3NlIHRleHRzJ30gPSAnR3lvcnMgbGV6w6Fyw6FzIHN6w7Z2ZWdlayBob3p6w6FhZMOh
c2EgdmFneSBtZWd2w6FsdG96dGF0w6FzYSc7CiAgICAkTGFuZy0+eydBIG5hbWUgZm9yIHRoZSBR
dWlja0Nsb3NlIHRleHQgaXMgcmVxdWlyZWQuJ30gPSAnRWd5IG7DqXYga8O2dGVsZXrFkSBhIGd5
b3JzIGxlesOhcsOhcyBzesO2dmVnaGV6Lic7CiAgICAkTGFuZy0+eydSb2xlJ30gPSAnU3plcmVw
JzsKICAgICRMYW5nLT57J0dyb3VwJ30gPSAnQ3NvcG9ydCc7CiAgICAkTGFuZy0+eydTdWJqZWN0
J30gPSAnVMOhcmd5JzsKICAgICRMYW5nLT57J0JvZHknfSA9ICdUw7ZyenMnOwogICAgJExhbmct
PnsnQSBib2R5IHRleHQgaXMgcmVxdWlyZWQuJ30gPSAnQSB0w7ZyenMgc3rDtnZlZ2Uga8O2dGVs
ZXrFkS4nOwogICAgJExhbmctPnsnVGltZSB1bml0cyd9ID0gJ0lkxZFlZ3lzw6lnZWsnOwogICAg
JExhbmctPnsnU3RhdGUgYWZ0ZXIgY2xvc2UnfSA9ICfDgWxsYXBvdCBhIGxlesOhcsOhcyB1dMOh
bic7CiAgICAkTGFuZy0+eydQZW5kaW5nIERpZmYgKGluIG1pbnV0ZXMpJ30gPSAnVsOhcmFrb3rD
oXNpIGvDvGzDtm5ic8OpZyAocGVyY2JlbiknOwogICAgJExhbmctPnsnRml4IEhvdXI6TWludXRl
IGZvciBwZW5kaW5nIHRpbWUnfSA9ICfDk3JhOlBlcmMgamF2w610w6FzYSBhIHbDoXJha296w6Fz
aSBpZMWRbsOpbCc7CiAgICAkTGFuZy0+eydQcmlvcml0eSd9ID0gJ1ByaW9yaXTDoXMnOwogICAg
JExhbmctPnsnT3duZXInfSA9ICdUdWxhamRvbm9zJzsKICAgICRMYW5nLT57J0ludmFsaWQgVXNl
ci4nfSA9ICfDiXJ2w6lueXRlbGVuIGZlbGhhc3puw6Fsw7MuJzsKICAgICRMYW5nLT57J1Jlc3Bv
bnNpYmxlJ30gPSAnRmVsZWzFkXMnOwogICAgJExhbmctPnsnQWN0aW5nIHVzZXIgc2hvdWxkIGJl
Y29tZSB0aWNrZXQgb3duZXInfSA9ICdBeiBlbGrDoXLDsyBmZWxoYXN6bsOhbMOzbmFrIGplZ3l0
dWxhamRvbm9zc8OhIGtlbGwgdsOhbG5pYSc7CiAgICAkTGFuZy0+eydSZXNwb25zaWJsZSBzaG91
bGQgYmVjb21lIHRpY2tldCBvd25lcid9ID0gJ0EgZmVsZWzFkXNuZWsgamVneXR1bGFqZG9ub3Nz
w6Ega2VsbCB2w6FsbmlhJzsKICAgICRMYW5nLT57J1VubG9jayBUaWNrZXQnfSA9ICdKZWd5IGZl
bG9sZMOhc2EnOwogICAgJExhbmctPnsnVGlja2V0cyBhcmUgdW5sb2NrZWQgYXV0b21hdGljYWxs
eSBvbiBcJ2Nsb3NlZFwnIHN0YXRlcyd9ID0gJ0EgamVneWVrIGF1dG9tYXRpa3VzYW4gZmVsIGxl
c3puZWsgb2xkdmEgYSDigJ5sZXrDoXJ04oCdIMOhbGxhcG90b2tuw6FsJzsKICAgICRMYW5nLT57
J1ZhbGlkaXR5J30gPSAnw4lydsOpbnllc3PDqWcnOwogICAgJExhbmctPnsnQXJ0aWNsZSBUeXBl
J30gPSAnQmVqZWd5esOpc3TDrXB1cyc7CiAgICAkTGFuZy0+eydRdWV1ZSd9ID0gJ1bDoXLDs2xp
c3RhJzsKICAgICRMYW5nLT57J1Nob3cgdGlja2V0IFpvb20gYWZ0ZXIgUXVpY2tDbG9zZSd9ID0g
J0plZ3luYWd5w610w6FzIG1lZ2plbGVuw610w6lzZSBhIGd5b3JzIGxlesOhcsOhcyB1dMOhbic7
CiAgICAkTGFuZy0+eydTYXZlJ30gPSAnTWVudMOpcyc7CiAgICAkTGFuZy0+eydvcid9ID0gJ3Zh
Z3knOwogICAgJExhbmctPnsnQ2FuY2VsJ30gPSAnTcOpZ3NlJzsKCiAgICByZXR1cm4gMTsKfQoK
MTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAxMSAtIDIwMTcgUGVybC1TZXJ2aWNlcy5kZSwgaHR0cDov
L3d3dy5wZXJsLXNlcnZpY2VzLmRlCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJT
T0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxl
IENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90
IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwu
dHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TW9kdWxlczo6QWRtaW5RdWlja0Nsb3NlOwoKdXNl
IHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIEtlcm5lbDo6TGFuZ3VhZ2UgcXcoVHJhbnNsYXRh
YmxlKTsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gcXcoCiAgICBLZXJuZWw6OkNvbmZpZwog
ICAgS2VybmVsOjpTeXN0ZW06OkxvZwogICAgS2VybmVsOjpTeXN0ZW06OkVuY29kZQogICAgS2Vy
bmVsOjpTeXN0ZW06Ok1haW4KICAgIEtlcm5lbDo6U3lzdGVtOjpEQgogICAgS2VybmVsOjpTeXN0
ZW06OlN0YXRlCiAgICBLZXJuZWw6OlN5c3RlbTo6VGlja2V0CiAgICBLZXJuZWw6OlN5c3RlbTo6
UXVldWUKICAgIEtlcm5lbDo6U3lzdGVtOjpHcm91cAogICAgS2VybmVsOjpTeXN0ZW06OlZhbGlk
CiAgICBLZXJuZWw6OlN5c3RlbTo6UHJpb3JpdHkKICAgIEtlcm5lbDo6U3lzdGVtOjpRdWlja0Ns
b3NlCiAgICBLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0CiAgICBLZXJuZWw6Ok91dHB1dDo6
SFRNTDo6TGF5b3V0Cik7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87
CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHslUGFy
YW19OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIG15ICRDb25maWdPYmplY3QgPSAk
S2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwoKICAgICMgZ2V0IGNvbmZpZyBvZiBm
cm9udGVuZCBtb2R1bGUKICAgICRTZWxmLT57Q29uZmlnfSA9ICRDb25maWdPYmplY3QtPkdldCgi
VGlja2V0OjpGcm9udGVuZDo6QWdlbnRUaWNrZXRDbG9zZSIpOwoKICAgIHJldHVybiAkU2VsZjsK
fQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRQYXJh
bU9iamVjdCAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVx
dWVzdCcpOwogICAgbXkgJExheW91dE9iamVjdCAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJu
ZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CiAgICBteSAkUXVpY2tDbG9zZU9iamVjdCA9ICRL
ZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpRdWlja0Nsb3NlJyk7CiAgICBteSAkVmFs
aWRPYmplY3QgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpWYWxpZCcp
OwoKICAgIG15IEBQYXJhbXMgPSBxdygKICAgICAgICBJRCBOYW1lIFN0YXRlSUQgQm9keSBWYWxp
ZElEIFVzZXJJRCBBcnRpY2xlVHlwZSBBcnRpY2xlQ3VzdG9tZXIKICAgICAgICBRdWV1ZUlEIFN1
YmplY3QgVW5sb2NrIE93bmVyU2VsZWN0ZWQgUGVuZGluZ0RpZmYgRm9yY2VDdXJyZW50VXNlckFz
T3duZXIKICAgICAgICBBc3NpZ25Ub1Jlc3BvbnNpYmxlIFNob3dUaWNrZXRab29tIEZpeEhvdXIg
R3JvdXAgUHJpb3JpdHlJRAogICAgICAgIFJlc3BvbnNpYmxlU2VsZWN0ZWQgVGltZVVuaXRzIFRv
VHlwZSBUb0FkZHJlc3MKICAgICk7CgogICAgbXkgJUdldFBhcmFtOwogICAgZm9yIG15ICRQYXJh
bU5hbWUgKEBQYXJhbXMpIHsKICAgICAgICAkR2V0UGFyYW17JFBhcmFtTmFtZX0gPSAkUGFyYW1P
YmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkUGFyYW1OYW1lICkgfHwgJyc7CiAgICB9CgogICAg
bXkgQEFycmF5UGFyYW1zID0gcXcoUm9sZUlEKTsKICAgIGZvciBteSAkQXJyYXlOYW1lIChAQXJy
YXlQYXJhbXMpIHsKICAgICAgICAkR2V0UGFyYW17JEFycmF5TmFtZX0gPSBbICRQYXJhbU9iamVj
dC0+R2V0QXJyYXkoIFBhcmFtID0+ICRBcnJheU5hbWUgKSBdOwogICAgfQoKICAgICMgLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMK
ICAgICMgZ2V0IGRhdGEgMiBmb3JtCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBpZiAoICRTZWxmLT57U3ViYWN0
aW9ufSBlcSAnRWRpdCcgfHwgJFNlbGYtPntTdWJhY3Rpb259IGVxICdBZGQnICkgewogICAgICAg
IG15ICVTdWJhY3Rpb24gPSAoCiAgICAgICAgICAgIEVkaXQgPT4gJ1VwZGF0ZScsCiAgICAgICAg
ICAgIEFkZCAgPT4gJ1NhdmUnLAogICAgICAgICk7CgogICAgICAgIG15ICRPdXRwdXQgICAgICAg
PSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmpl
Y3QtPk5hdmlnYXRpb25CYXIoKTsKICAgICAgICAkT3V0cHV0IC49ICRTZWxmLT5fTWFza1F1aWNr
Q2xvc2VGb3JtKAogICAgICAgICAgICAlR2V0UGFyYW0sCiAgICAgICAgICAgICVQYXJhbSwKICAg
ICAgICAgICAgU3ViYWN0aW9uID0+ICRTdWJhY3Rpb257ICRTZWxmLT57U3ViYWN0aW9ufSB9LAog
ICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKICAg
ICAgICByZXR1cm4gJE91dHB1dDsKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIHVwZGF0ZSBhY3Rp
b24KICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tICMKICAgIGVsc2lmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdVcGRhdGUn
ICkgewoKICAgICAgICAjIGNoYWxsZW5nZSB0b2tlbiBjaGVjayBmb3Igd3JpdGUgYWN0aW9uCiAg
ICAgICAgJExheW91dE9iamVjdC0+Q2hhbGxlbmdlVG9rZW5DaGVjaygpOwogCiAgICAgICAgIyBz
ZXJ2ZXIgc2lkZSB2YWxpZGF0aW9uCiAgICAgICAgbXkgJUVycm9yczsKICAgICAgICBpZiAoCiAg
ICAgICAgICAgICEkR2V0UGFyYW17VmFsaWRJRH0gfHwKICAgICAgICAgICAgISRWYWxpZE9iamVj
dC0+VmFsaWRMb29rdXAoIFZhbGlkSUQgPT4gJEdldFBhcmFte1ZhbGlkSUR9ICkKICAgICAgICAg
ICAgKQogICAgICAgIHsKICAgICAgICAgICAgJEVycm9yc3tWYWxpZElESW52YWxpZH0gPSAnU2Vy
dmVyRXJyb3InOwogICAgICAgIH0KCiAgICAgICAgbXkgJENyZWF0ZUFydGljbGUgPSAkUGFyYW1P
YmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnQ3JlYXRlQXJ0aWNsZScgKTsKCiAgICAgICAgbXkg
QFJlcXVpcmVkUGFyYW1zOwogICAgICAgIGlmICggJENyZWF0ZUFydGljbGUgKSB7CiAgICAgICAg
ICAgIEBSZXF1aXJlZFBhcmFtcyA9IHF3L0JvZHkgU3ViamVjdC87CiAgICAgICAgfQoKICAgICAg
ICBmb3IgbXkgJFBhcmFtIChxdyhOYW1lKSwgQFJlcXVpcmVkUGFyYW1zICkgewogICAgICAgICAg
ICBpZiAoICEkR2V0UGFyYW17JFBhcmFtfSApIHsKICAgICAgICAgICAgICAgICRFcnJvcnN7ICRQ
YXJhbSAuICdJbnZhbGlkJyB9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgfQogICAgICAg
IH0KCiAgICAgICAgaWYgKCAlRXJyb3JzICkgewogICAgICAgICAgICAkU2VsZi0+e1N1YmFjdGlv
bn0gPSAnRWRpdCc7CgogICAgICAgICAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVh
ZGVyKCk7CiAgICAgICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJh
cigpOwogICAgICAgICAgICAkT3V0cHV0IC49ICRTZWxmLT5fTWFza1F1aWNrQ2xvc2VGb3JtKAog
ICAgICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAg
ICAgICAgICAgJUVycm9ycywKICAgICAgICAgICAgICAgIFN1YmFjdGlvbiA9PiAnVXBkYXRlJywK
ICAgICAgICAgICAgICAgIFN1Ym1pdHRlZCA9PiAxLAogICAgICAgICAgICApOwogICAgICAgICAg
ICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwogICAgICAgICAgICByZXR1cm4g
JE91dHB1dDsKICAgICAgICB9CgogICAgICAgIG15ICRVcGRhdGUgPSAkUXVpY2tDbG9zZU9iamVj
dC0+UXVpY2tDbG9zZVVwZGF0ZSgKICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICAgICBQ
ZXJtaXNzaW9uICAgID0+IHsKICAgICAgICAgICAgICAgIFJvbGVJRCA9PiAkR2V0UGFyYW17Um9s
ZUlEfSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgVXNlcklEICAgICAgICA9PiAkU2VsZi0+
e1VzZXJJRH0sCiAgICAgICAgICAgIE93bmVySUQgICAgICAgPT4gJEdldFBhcmFte093bmVyU2Vs
ZWN0ZWR9LAogICAgICAgICAgICBSZXNwb25zaWJsZUlEID0+ICRHZXRQYXJhbXtSZXNwb25zaWJs
ZVNlbGVjdGVkfSwKICAgICAgICApOwoKICAgICAgICBpZiAoICEkVXBkYXRlICkgewogICAgICAg
ICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oKTsKICAgICAgICB9CiAgICAg
ICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPlJlZGlyZWN0KCBPUCA9PiAiQWN0aW9uPUFkbWluUXVp
Y2tDbG9zZSIgKTsKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIGluc2VydCBpbnZvaWNlIHN0YXRl
CiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLSAjCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnU2F2ZScgKSB7
CgogICAgICAgICMgY2hhbGxlbmdlIHRva2VuIGNoZWNrIGZvciB3cml0ZSBhY3Rpb24KICAgICAg
ICAkTGF5b3V0T2JqZWN0LT5DaGFsbGVuZ2VUb2tlbkNoZWNrKCk7CgogICAgICAgICMgc2VydmVy
IHNpZGUgdmFsaWRhdGlvbgogICAgICAgIG15ICVFcnJvcnM7CiAgICAgICAgaWYgKAogICAgICAg
ICAgICAhJEdldFBhcmFte1ZhbGlkSUR9IHx8CiAgICAgICAgICAgICEkVmFsaWRPYmplY3QtPlZh
bGlkTG9va3VwKCBWYWxpZElEID0+ICRHZXRQYXJhbXtWYWxpZElEfSApCiAgICAgICAgICAgICkK
ICAgICAgICB7CiAgICAgICAgICAgICRFcnJvcnN7VmFsaWRJREludmFsaWR9ID0gJ1NlcnZlckVy
cm9yJzsKICAgICAgICB9CgogICAgICAgIG15ICRDcmVhdGVBcnRpY2xlID0gJFBhcmFtT2JqZWN0
LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0NyZWF0ZUFydGljbGUnICk7CgogICAgICAgIG15IEBSZXF1
aXJlZFBhcmFtczsKICAgICAgICBpZiAoICRDcmVhdGVBcnRpY2xlICkgewogICAgICAgICAgICBA
UmVxdWlyZWRQYXJhbXMgPSBxdy9Cb2R5IFN1YmplY3QvOwogICAgICAgIH0KCiAgICAgICAgZm9y
IG15ICRQYXJhbSAocXcoTmFtZSksIEBSZXF1aXJlZFBhcmFtcyApIHsKICAgICAgICAgICAgaWYg
KCAhJEdldFBhcmFteyRQYXJhbX0gKSB7CiAgICAgICAgICAgICAgICAkRXJyb3JzeyAkUGFyYW0g
LiAnSW52YWxpZCcgfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgIH0KICAgICAgICB9Cgog
ICAgICAgICRHZXRQYXJhbXtCb2R5fSAvLz0gJyc7CgogICAgICAgIGlmICggJUVycm9ycyApIHsK
ICAgICAgICAgICAgJFNlbGYtPntTdWJhY3Rpb259ID0gJ0FkZCc7CgogICAgICAgICAgICBteSAk
T3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKCk7CiAgICAgICAgICAgICRPdXRwdXQgLj0g
JExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwogICAgICAgICAgICAkT3V0cHV0IC49ICRT
ZWxmLT5fTWFza1F1aWNrQ2xvc2VGb3JtKAogICAgICAgICAgICAgICAgJUdldFBhcmFtLAogICAg
ICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAgJUVycm9ycywKICAgICAgICAgICAg
ICAgIFN1YmFjdGlvbiA9PiAnU2F2ZScsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRPdXRw
dXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CiAgICAgICAgICAgIHJldHVybiAkT3V0cHV0
OwogICAgICAgIH0KCiAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkUXVpY2tDbG9zZU9iamVjdC0+UXVp
Y2tDbG9zZUFkZCgKICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICAgICBQZXJtaXNzaW9u
ICAgID0+IHsKICAgICAgICAgICAgICAgIFJvbGVJRCA9PiAkR2V0UGFyYW17Um9sZUlEfSwKICAg
ICAgICAgICAgfSwKICAgICAgICAgICAgVXNlcklEICAgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0s
CiAgICAgICAgICAgIE93bmVySUQgICAgICAgPT4gJEdldFBhcmFte093bmVyU2VsZWN0ZWR9LAog
ICAgICAgICAgICBSZXNwb25zaWJsZUlEID0+ICRHZXRQYXJhbXtSZXNwb25zaWJsZVNlbGVjdGVk
fSwKICAgICAgICApOwoKICAgICAgICBpZiAoICEkU3VjY2VzcyApIHsKICAgICAgICAgICAgcmV0
dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKCk7CiAgICAgICAgfQogICAgICAgIHJldHVy
biAkTGF5b3V0T2JqZWN0LT5SZWRpcmVjdCggT1AgPT4gIkFjdGlvbj1BZG1pblF1aWNrQ2xvc2Ui
ICk7CiAgICB9CgogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0RlbGV0ZScgKSB7
CiAgICAgICAgJFF1aWNrQ2xvc2VPYmplY3QtPlF1aWNrQ2xvc2VEZWxldGUoICVHZXRQYXJhbSAp
OwogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5SZWRpcmVjdCggT1AgPT4gIkFjdGlvbj1B
ZG1pblF1aWNrQ2xvc2UiICk7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBlbHNlICEgcHJpbnQg
Zm9ybQogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0gIwogICAgZWxzZSB7CiAgICAgICAgbXkgJE91dHB1dCA9ICRMYXlvdXRP
YmplY3QtPkhlYWRlcigpOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdh
dGlvbkJhcigpOwogICAgICAgICRPdXRwdXQgLj0gJFNlbGYtPl9NYXNrUXVpY2tDbG9zZUZvcm0o
KTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwogICAgICAgIHJl
dHVybiAkT3V0cHV0OwogICAgfQp9CgpzdWIgX01hc2tRdWlja0Nsb3NlRm9ybSB7CiAgICBteSAo
ICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRQYXJhbU9iamVjdCAgICAgID0gJEtlcm5l
bDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpOwogICAgbXkgJExheW91
dE9iamVjdCAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5
b3V0Jyk7CiAgICBteSAkUXVpY2tDbG9zZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5l
bDo6U3lzdGVtOjpRdWlja0Nsb3NlJyk7CiAgICBteSAkVmFsaWRPYmplY3QgICAgICA9ICRLZXJu
ZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpWYWxpZCcpOwogICAgbXkgJENvbmZpZ09iamVj
dCAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwogICAgbXkgJFRpY2tl
dE9iamVjdCAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGlja2V0Jyk7
CiAgICBteSAkU3RhdGVPYmplY3QgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lz
dGVtOjpTdGF0ZScpOwogICAgbXkgJFF1ZXVlT2JqZWN0ICAgICAgPSAkS2VybmVsOjpPTS0+R2V0
KCdLZXJuZWw6OlN5c3RlbTo6UXVldWUnKTsKICAgIG15ICRHcm91cE9iamVjdCAgICAgID0gJEtl
cm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Okdyb3VwJyk7CiAgICBteSAkUHJpb3JpdHlP
YmplY3QgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpQcmlvcml0eScpOwoK
ICAgIGlmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdFZGl0JyApIHsKICAgICAgICBteSAlUXVp
Y2tDbG9zZSA9ICRRdWlja0Nsb3NlT2JqZWN0LT5RdWlja0Nsb3NlR2V0KCBJRCA9PiAkUGFyYW17
SUR9ICk7CiAgICAgICAgZm9yIG15ICRLZXkgKCBrZXlzICVRdWlja0Nsb3NlICkgewogICAgICAg
ICAgICAkUGFyYW17JEtleX0gPSAkUXVpY2tDbG9zZXskS2V5fSBpZiAhJFBhcmFteyRLZXl9Owog
ICAgICAgIH0KCiAgICAgICAgJFBhcmFte1JvbGVJRH0gPSAkUXVpY2tDbG9zZXtQZXJtaXNzaW9u
fS0+e1JvbGV9IGlmICFAeyAkUGFyYW17Um9sZUlEfSB8fCBbXSB9OwogICAgfQoKICAgICRQYXJh
bXtDcmVhdGVBcnRpY2xlfSA9IDEgaWYgJFBhcmFte0JvZHl9OwoKICAgICRQYXJhbXtUb1R5cGVT
ZWxlY3R9ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSAgICAg
ICAgID0+IFsgcXcvQ3VzdG9tZXIgT3duZXIgT3RoZXIvIF0sCiAgICAgICAgTmFtZSAgICAgICAg
ID0+ICdUb1R5cGUnLAogICAgICAgIFBvc3NpYmxlTm9uZSA9PiAxLAogICAgICAgIFNlbGVjdGVk
SUQgICA9PiAkUGFyYW17VG9UeXBlfSwKICAgICAgICBDbGFzcyAgICAgICAgPT4gJ01vZGVybml6
ZScsCiAgICApOwoKICAgICRQYXJhbXtSb2xlU2VsZWN0fSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxk
U2VsZWN0aW9uKAogICAgICAgIERhdGEgICAgICAgPT4geyAkR3JvdXBPYmplY3QtPlJvbGVMaXN0
KCBWYWxpZCA9PiAxICkgfSwKICAgICAgICBOYW1lICAgICAgID0+ICdSb2xlSUQnLAogICAgICAg
IFNpemUgICAgICAgPT4gNSwKICAgICAgICBTZWxlY3RlZElEID0+ICRQYXJhbXtSb2xlSUR9LAog
ICAgICAgIEhUTUxRdW90ZSAgPT4gMSwKICAgICAgICBNdWx0aXBsZSAgID0+IDEsCiAgICAgICAg
Q2xhc3MgICAgICA9PiAnTW9kZXJuaXplJywKICAgICk7CgogICAgbXkgJFZhbGlkSUQgPSAkVmFs
aWRPYmplY3QtPlZhbGlkTG9va3VwKCBWYWxpZCA9PiAndmFsaWQnICk7CgogICAgJFBhcmFte1Zh
bGlkU2VsZWN0fSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIERhdGEg
ICAgICAgPT4geyAkVmFsaWRPYmplY3QtPlZhbGlkTGlzdCgpIH0sCiAgICAgICAgTmFtZSAgICAg
ICA9PiAnVmFsaWRJRCcsCiAgICAgICAgU2l6ZSAgICAgICA9PiAxLAogICAgICAgIFNlbGVjdGVk
SUQgPT4gJFBhcmFte1ZhbGlkSUR9IHx8ICRWYWxpZElELAogICAgICAgIEhUTUxRdW90ZSAgPT4g
MSwKICAgICAgICBDbGFzcyAgICAgID0+ICdNb2Rlcm5pemUnLAogICAgKTsKCiAgICAkUGFyYW17
UHJpb3JpdHlTZWxlY3R9ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAg
RGF0YSAgICAgICAgID0+IHsgJFByaW9yaXR5T2JqZWN0LT5Qcmlvcml0eUxpc3QoIFZhbGlkID0+
IDEgKSB9LAogICAgICAgIE5hbWUgICAgICAgICA9PiAnUHJpb3JpdHlJRCcsCiAgICAgICAgU2l6
ZSAgICAgICAgID0+IDEsCiAgICAgICAgU2VsZWN0ZWRJRCAgID0+ICRQYXJhbXtQcmlvcml0eUlE
fSwKICAgICAgICBIVE1MUXVvdGUgICAgPT4gMSwKICAgICAgICBQb3NzaWJsZU5vbmUgPT4gMSwK
ICAgICAgICBDbGFzcyAgICAgICAgPT4gJ01vZGVybml6ZScsCiAgICApOwoKICAgIG15ICRTdGF0
ZVR5cGVzID0gJENvbmZpZ09iamVjdC0+R2V0KCAnUXVpY2tDbG9zZTo6U3RhdGVUeXBlcycgKSB8
fCBbICdjbG9zZWQnIF07CgogICAgbXkgJVN0YXRlcyA9ICRTdGF0ZU9iamVjdC0+U3RhdGVHZXRT
dGF0ZXNCeVR5cGUoCiAgICAgICAgU3RhdGVUeXBlID0+ICRTdGF0ZVR5cGVzLAogICAgICAgIFJl
c3VsdCAgICA9PiAnSEFTSCcsCiAgICApOwoKICAgICRQYXJhbXtGb3JjZVNlbGVjdGVkfSAgICAg
ICA9ICRQYXJhbXtGb3JjZUN1cnJlbnRVc2VyQXNPd25lcn0gPyAnY2hlY2tlZD0iY2hlY2tlZCIn
IDogJyc7CiAgICAkUGFyYW17UmVzcG9uc2libGVTZWxlY3RlZH0gPSAkUGFyYW17QXNzaWduVG9S
ZXNwb25zaWJsZX0gICAgID8gJ2NoZWNrZWQ9ImNoZWNrZWQiJyA6ICcnOwogICAgJFBhcmFte1pv
b21TZWxlY3RlZH0gICAgICAgID0gJFBhcmFte1Nob3dUaWNrZXRab29tfSAgICAgICAgICA/ICdj
aGVja2VkPSJjaGVja2VkIicgOiAnJzsKICAgICRQYXJhbXtDdXN0b21lclNlbGVjdGVkfSAgICA9
ICRQYXJhbXtBcnRpY2xlQ3VzdG9tZXJ9ICAgICAgICAgPyAnY2hlY2tlZD0iY2hlY2tlZCInIDog
Jyc7CgogICAgJFBhcmFte1N0YXRlU2VsZWN0fSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0
aW9uKAogICAgICAgIERhdGEgICAgICAgICA9PiBcJVN0YXRlcywKICAgICAgICBOYW1lICAgICAg
ICAgPT4gJ1N0YXRlSUQnLAogICAgICAgIFNpemUgICAgICAgICA9PiAxLAogICAgICAgIFNlbGVj
dGVkSUQgICA9PiAkUGFyYW17U3RhdGVJRH0sCiAgICAgICAgSFRNTFF1b3RlICAgID0+IDEsCiAg
ICAgICAgUG9zc2libGVOb25lID0+IDEsCiAgICAgICAgQ2xhc3MgICAgICAgID0+ICdNb2Rlcm5p
emUnLAogICAgKTsKCiAgICAkUGFyYW17VW5sb2NrU2VsZWN0fSA9ICRMYXlvdXRPYmplY3QtPkJ1
aWxkU2VsZWN0aW9uKAogICAgICAgIERhdGEgICAgICAgID0+IHsKICAgICAgICAgICAgMCA9PiBU
cmFuc2xhdGFibGUoJ05vJyksCiAgICAgICAgICAgIDEgPT4gVHJhbnNsYXRhYmxlKCdZZXMnKSwK
ICAgICAgICB9LAogICAgICAgIE5hbWUgICAgICAgID0+ICdVbmxvY2snLAogICAgICAgIFNpemUg
ICAgICAgID0+IDEsCiAgICAgICAgU2VsZWN0ZWRJRCAgPT4gJFBhcmFte1VubG9ja30sCiAgICAg
ICAgVHJhbnNsYXRpb24gPT4gMSwKICAgICAgICBDbGFzcyAgICAgICA9PiAnTW9kZXJuaXplJywK
ICAgICk7CgogICAgbXkgJVF1ZXVlczsKCiAgICBpZiAoICRDb25maWdPYmplY3QtPkdldCggJ1F1
aWNrQ2xvc2U6OlF1ZXVlTW92ZScgKSApIHsKICAgICAgICAlUXVldWVzID0gJFF1ZXVlT2JqZWN0
LT5RdWV1ZUxpc3QoKTsKICAgIH0KCiAgICAkUGFyYW17UXVldWVTZWxlY3R9ID0gJExheW91dE9i
amVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSAgICAgICAgID0+IFwlUXVldWVzLAog
ICAgICAgIE5hbWUgICAgICAgICA9PiAnUXVldWVJRCcsCiAgICAgICAgU2l6ZSAgICAgICAgID0+
IDEsCiAgICAgICAgU2VsZWN0ZWRJRCAgID0+ICRQYXJhbXtRdWV1ZUlEfSwKICAgICAgICBIVE1M
UXVvdGUgICAgPT4gMSwKICAgICAgICBQb3NzaWJsZU5vbmUgPT4gMSwKICAgICAgICBUcmVlVmll
dyAgICAgPT4gMSwKICAgICAgICBDbGFzcyAgICAgICAgPT4gJ01vZGVybml6ZScsCiAgICApOwoK
ICAgICMgZ2V0IHBvc3NpYmxlIG5vdGVzCiAgICBteSAlTm90ZVR5cGVzID0gbWFweyAgJF8gPT4g
JF8gfXF3L0ludGVybmFsIFBob25lIEVtYWlsLzsKCiAgICAkUGFyYW17QXJ0aWNsZVR5cGVTZWxl
Y3R9ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSAgICAgICA9
PiBcJU5vdGVUeXBlcywKICAgICAgICBOYW1lICAgICAgID0+ICdBcnRpY2xlVHlwZScsCiAgICAg
ICAgQ2xhc3MgICAgICA9PiAnTW9kZXJuaXplJywKICAgICAgICBTZWxlY3RlZElEID0+ICRQYXJh
bXtBcnRpY2xlVHlwZX0sCiAgICApOwoKICAgIG15ICRVc2VyQXV0b0NvbXBsZXRlQ29uZmlnCiAg
ICAgICAgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1F1aWNrQ2xvc2U6OkZyb250ZW5kOjpVc2VyU2Vh
cmNoQXV0b0NvbXBsZXRlJyk7CgoKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5h
bWUgPT4gJ1VzZXJTZWFyY2hBdXRvQ29tcGxldGUnLAogICAgICAgIERhdGEgPT4gewogICAgICAg
ICAgICBtaW5RdWVyeUxlbmd0aCAgICAgID0+ICRVc2VyQXV0b0NvbXBsZXRlQ29uZmlnLT57TWlu
UXVlcnlMZW5ndGh9ICAgICAgfHwgMiwKICAgICAgICAgICAgcXVlcnlEZWxheSAgICAgICAgICA9
PiAkVXNlckF1dG9Db21wbGV0ZUNvbmZpZy0+e1F1ZXJ5RGVsYXl9ICAgICAgICAgIHx8IDAuMSwK
ICAgICAgICAgICAgbWF4UmVzdWx0c0Rpc3BsYXllZCA9PiAkVXNlckF1dG9Db21wbGV0ZUNvbmZp
Zy0+e01heFJlc3VsdHNEaXNwbGF5ZWR9IHx8IDIwLAogICAgICAgICAgICBkeW5hbWljV2lkdGgg
ICAgICAgID0+ICRVc2VyQXV0b0NvbXBsZXRlQ29uZmlnLT57RHluYW1pY1dpZHRofSAgICAgICAg
fHwgJ2ZhbHNlJywKICAgICAgICB9LAogICAgKTsKCiAgICBteSAkQWN0aXZlQXV0b0NvbXBsZXRl
ID0gJ3RydWUnOwogICAgaWYgKCAhJFVzZXJBdXRvQ29tcGxldGVDb25maWctPntBY3RpdmV9ICkg
ewogICAgICAgICRBY3RpdmVBdXRvQ29tcGxldGUgPSAnZmFsc2UnOwogICAgfQoKICAgICRMYXlv
dXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ1VzZXJTZWFyY2hJbml0JywKICAgICAg
ICBEYXRhID0+IHsKICAgICAgICAgICAgQWN0aXZlQXV0b0NvbXBsZXRlID0+ICRBY3RpdmVBdXRv
Q29tcGxldGUsCiAgICAgICAgICAgIEl0ZW1JRCAgICAgICAgICAgICA9PiAnT3duZXInLAogICAg
ICAgIH0sCiAgICApOwoKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4g
J1VzZXJTZWFyY2hJbml0JywKICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgQWN0aXZlQXV0
b0NvbXBsZXRlID0+ICRBY3RpdmVBdXRvQ29tcGxldGUsCiAgICAgICAgICAgIEl0ZW1JRCAgICAg
ICAgICAgICA9PiAnUmVzcG9uc2libGUnLAogICAgICAgIH0sCiAgICApOwoKICAgIGlmICggJFNl
bGYtPntTdWJhY3Rpb259IG5lICdFZGl0JyAmJiAkU2VsZi0+e1N1YmFjdGlvbn0gbmUgJ0FkZCcg
KSB7CgogICAgICAgIG15ICVRdWlja0Nsb3NlTGlzdCA9ICRRdWlja0Nsb3NlT2JqZWN0LT5RdWlj
a0Nsb3NlTGlzdCgpOwogIAogICAgICAgIGlmICggISVRdWlja0Nsb3NlTGlzdCApIHsKICAgICAg
ICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdOb1F1
aWNrQ2xvc2VGb3VuZCcsCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICBmb3IgbXkg
JFF1aWNrQ2xvc2VJRCAoIHNvcnQgeyAkUXVpY2tDbG9zZUxpc3R7JGF9IGNtcCAkUXVpY2tDbG9z
ZUxpc3R7JGJ9IH0ga2V5cyAlUXVpY2tDbG9zZUxpc3QgKSB7CiAgICAgICAgICAgIG15ICVRdWlj
a0Nsb3NlID0gJFF1aWNrQ2xvc2VPYmplY3QtPlF1aWNrQ2xvc2VHZXQoCiAgICAgICAgICAgICAg
ICBJRCA9PiAkUXVpY2tDbG9zZUlELAogICAgICAgICAgICApOwoKICAgICAgICAgICAgJExheW91
dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdRdWlja0Nsb3NlUm93JywK
ICAgICAgICAgICAgICAgIERhdGEgPT4gXCVRdWlja0Nsb3NlLAogICAgICAgICAgICApOwogICAg
ICAgIH0KICAgIH0KCiAgICAkUGFyYW17U3ViYWN0aW9uTmFtZX0gPSAnVXBkYXRlJzsKICAgICRQ
YXJhbXtTdWJhY3Rpb25OYW1lfSA9ICdTYXZlJyBpZiAkU2VsZi0+e1N1YmFjdGlvbn0gJiYgJFNl
bGYtPntTdWJhY3Rpb259IGVxICdBZGQnOwoKICAgIG15ICRUZW1wbGF0ZUZpbGUgPSAnQWRtaW5R
dWlja0Nsb3NlTGlzdCc7CiAgICAkVGVtcGxhdGVGaWxlID0gJ0FkbWluUXVpY2tDbG9zZUZvcm0n
IGlmICRTZWxmLT57U3ViYWN0aW9ufTsKCiAgICAjIGFkZCByaWNoIHRleHQgZWRpdG9yCiAgICBp
ZiAoICRMYXlvdXRPYmplY3QtPntCcm93c2VyUmljaFRleHR9ICkgewoKICAgICAgICBteSAkQ29u
ZmlnID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCJUaWNrZXQ6OkZy
b250ZW5kOjpBZ2VudFRpY2tldEVtYWlsIik7CgogICAgICAgICMgdXNlIGhlaWdodC93aWR0aCBk
ZWZpbmVkIGZvciB0aGlzIHNjcmVlbgogICAgICAgICRQYXJhbXtSaWNoVGV4dEhlaWdodH0gPSAk
Q29uZmlnLT57UmljaFRleHRIZWlnaHR9IHx8IDA7CiAgICAgICAgJFBhcmFte1JpY2hUZXh0V2lk
dGh9ICA9ICRDb25maWctPntSaWNoVGV4dFdpZHRofSAgfHwgMDsKCiAgICAgICAgIyBzZXQgdXAg
cmljaCB0ZXh0IGVkaXRvcgogICAgICAgICRMYXlvdXRPYmplY3QtPlNldFJpY2hUZXh0UGFyYW1l
dGVycygKICAgICAgICAgICAgRGF0YSA9PiBcJVBhcmFtLAogICAgICAgICk7CiAgICB9CgogICAg
cmV0dXJuICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJFRl
bXBsYXRlRmlsZSwKICAgICAgICBEYXRhICAgICAgICAgPT4gXCVQYXJhbQogICAgKTsKfQoKMTsK
IyAtLQojIEtlcm5lbC9Nb2R1bGVzL0FnZW50UXVpY2tDbG9zZS5wbSAtIHByb3ZpZGVzIGFkbWlu
IG5vdGlmaWNhdGlvbiB0cmFuc2xhdGlvbnMKIyBDb3B5cmlnaHQgKEMpIDIwMTEgLSAyMDE0IFBl
cmwtU2VydmljZXMuZGUsIGh0dHA6Ly93d3cucGVybC1zZXJ2aWNlcy5kZQojIC0tCiMgVGhpcyBz
b2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBz
ZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChB
R1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cu
Z251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok1vZHVsZXM6
OkFnZW50UXVpY2tDbG9zZTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCm91ciAkVkVSU0lP
TiA9IDAuMDI7CgpvdXIgQE9iamVjdERlcGVuZGVuY2llcyA9IHF3KAogICAgS2VybmVsOjpDb25m
aWcKICAgIEtlcm5lbDo6U3lzdGVtOjpMb2cKICAgIEtlcm5lbDo6U3lzdGVtOjpFbmNvZGUKICAg
IEtlcm5lbDo6U3lzdGVtOjpNYWluCiAgICBLZXJuZWw6OlN5c3RlbTo6REIKICAgIEtlcm5lbDo6
U3lzdGVtOjpRdWlja0Nsb3NlCiAgICBLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0CiAgICBL
ZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Cik7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUs
ICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBt
eSAkU2VsZiA9IHslUGFyYW19OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIHJldHVy
biAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAg
IG15ICRQYXJhbU9iamVjdCAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06
OldlYjo6UmVxdWVzdCcpOwogICAgbXkgJFF1aWNrQ2xvc2VPYmplY3QgPSAkS2VybmVsOjpPTS0+
R2V0KCdLZXJuZWw6OlN5c3RlbTo6UXVpY2tDbG9zZScpOwogICAgbXkgJExheW91dE9iamVjdCAg
ICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7Cgog
ICAgbXkgQFBhcmFtcyA9IChxdyhJRCkpOwogICAgbXkgJUdldFBhcmFtOwogICAgZm9yIChAUGFy
YW1zKSB7CiAgICAgICAgJEdldFBhcmFteyRffSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBh
cmFtID0+ICRfICkgfHwgJyc7CiAgICB9CgogICAgbXkgJURhdGEgPSAkUXVpY2tDbG9zZU9iamVj
dC0+UXVpY2tDbG9zZUdldCgKICAgICAgICBJRCA9PiAkR2V0UGFyYW17SUR9LAogICAgKTsKCiAg
ICBteSAkSlNPTiA9IG15ICRUZW1wbGF0ZUR1bXAKICAgICAgICA9ICRMYXlvdXRPYmplY3QtPkpT
T05FbmNvZGUoIERhdGEgPT4gXCVEYXRhICk7CgogICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkF0
dGFjaG1lbnQoCiAgICAgICAgQ29udGVudFR5cGUgPT4gJ2FwcGxpY2F0aW9uL2pzb247IGNoYXJz
ZXQ9JyAuICRMYXlvdXRPYmplY3QtPntDaGFyc2V0fSwKICAgICAgICBDb250ZW50ICAgICA9PiAk
SlNPTiB8fCAnJywKICAgICAgICBUeXBlICAgICAgICA9PiAnaW5saW5lJywKICAgICAgICBOb0Nh
Y2hlICAgICA9PiAwLAogICAgKTsKfQoKMTsK
IyAtLQojIEtlcm5lbC9Nb2R1bGVzL0FnZW50UXVpY2tDbG9zZVVzZXJTZWFyY2gucG0gLSBhIG1v
ZHVsZSB1c2VkIGZvciB0aGUgYXV0b2NvbXBsZXRlIGZlYXR1cmUKIyBDb3B5cmlnaHQgKEMpIDIw
MTEgLSAyMDE0IFBlcmwtU2VydmljZXMuZGUsIGh0dHA6Ly9wZXJsLXNlcnZpY2VzLmRlCiMgLS0K
IyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRl
dGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3Jt
YXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0
cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6
TW9kdWxlczo6QWdlbnRRdWlja0Nsb3NlVXNlclNlYXJjaDsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJu
aW5nczsKCm91ciAkVkVSU0lPTiA9IDAuMDI7CgpvdXIgQE9iamVjdERlcGVuZGVuY2llcyA9IHF3
KAogICAgS2VybmVsOjpDb25maWcKICAgIEtlcm5lbDo6U3lzdGVtOjpMb2cKICAgIEtlcm5lbDo6
U3lzdGVtOjpFbmNvZGUKICAgIEtlcm5lbDo6U3lzdGVtOjpNYWluCiAgICBLZXJuZWw6OlN5c3Rl
bTo6REIKICAgIEtlcm5lbDo6U3lzdGVtOjpHcm91cAogICAgS2VybmVsOjpTeXN0ZW06OlVzZXIK
ICAgIEtlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QKICAgIEtlcm5lbDo6TGFuZ3VhZ2UKKTsK
CnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRl
IG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0geyVQYXJhbX07CiAgICBibGVzcygg
JFNlbGYsICRUeXBlICk7CgogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQo
J0tlcm5lbDo6Q29uZmlnJyk7CgogICAgIyBnZXQgY29uZmlnIGZvciBmcm9udGVuZAogICAgJFNl
bGYtPntDb25maWd9ID0gJENvbmZpZ09iamVjdC0+R2V0KCJRdWlja0Nsb3NlQ2hhbmdlOjpGcm9u
dGVuZDo6JFNlbGYtPntBY3Rpb259Iik7CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgUnVuIHsK
ICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJFBhcmFtT2JqZWN0ICA9ICRL
ZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKTsKICAgIG15ICRM
YXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5
b3V0Jyk7CiAgICBteSAkVXNlck9iamVjdCAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpT
eXN0ZW06OlVzZXInKTsKICAgIG15ICRHcm91cE9iamVjdCAgPSAkS2VybmVsOjpPTS0+R2V0KCdL
ZXJuZWw6OlN5c3RlbTo6R3JvdXAnKTsKICAgIG15ICRFbmNvZGVPYmplY3QgPSAkS2VybmVsOjpP
TS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RW5jb2RlJyk7CgogICAgbXkgJEpTT04gPSAnJzsKCiAg
ICAjIHNlYXJjaCB1c2VycwogICAgaWYgKCAhJFNlbGYtPntTdWJhY3Rpb259ICkgewoKICAgICAg
ICAjIGdldCBuZWVkZWQgcGFyYW1zCiAgICAgICAgbXkgJFNlYXJjaCA9ICRQYXJhbU9iamVjdC0+
R2V0UGFyYW0oIFBhcmFtID0+ICdUZXJtJyApICAgfHwgJyc7CiAgICAgICAgbXkgJEdyb3VwcyA9
ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdHcm91cHMnICkgfHwgJyc7CiAgICAg
ICAgbXkgJE1heFJlc3VsdHMgPSBpbnQoICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+
ICdNYXhSZXN1bHRzJyApIHx8IDIwICk7CgogICAgICAgICMgZ2V0IGFsbCBtZW1iZXJzIG9mIHRo
ZSBncm91cHMKICAgICAgICBteSAlR3JvdXBVc2VyczsKICAgICAgICBpZiAoJEdyb3Vwcykgewog
ICAgICAgICAgICBteSBAR3JvdXBOYW1lcyA9IHNwbGl0IC8sXHMrLywgJEdyb3VwczsKCiAgICAg
ICAgICAgIEdST1VQTkFNRToKICAgICAgICAgICAgZm9yIG15ICRHcm91cE5hbWUgKEBHcm91cE5h
bWVzKSB7CgogICAgICAgICAgICAgICAgIyBhbGxvdyB0cmFpbGluZyBjb21tYQogICAgICAgICAg
ICAgICAgbmV4dCBHUk9VUE5BTUUgaWYgISRHcm91cE5hbWU7CgogICAgICAgICAgICAgICAgbXkg
JEdyb3VwSUQgPSAkR3JvdXBPYmplY3QtPkdyb3VwTG9va3VwKAogICAgICAgICAgICAgICAgICAg
IEdyb3VwID0+ICRHcm91cE5hbWUsCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAg
IG5leHQgR1JPVVBOQU1FIGlmICEkR3JvdXBJRDsKCiAgICAgICAgICAgICAgICAjIGdldCB1c2Vy
cyBpbiBncm91cAogICAgICAgICAgICAgICAgbXkgJVVzZXJzID0gJEdyb3VwT2JqZWN0LT5Hcm91
cE1lbWJlckxpc3QoCiAgICAgICAgICAgICAgICAgICAgR3JvdXBJRCA9PiAkR3JvdXBJRCwKICAg
ICAgICAgICAgICAgICAgICBUeXBlICAgID0+ICdybycsCiAgICAgICAgICAgICAgICAgICAgUmVz
dWx0ICA9PiAnSEFTSCcsCiAgICAgICAgICAgICAgICAgICAgQ2FjaGVkICA9PiAxLAogICAgICAg
ICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICBteSBAVXNlcklEcyA9IGtleXMgJVVzZXJzOwog
ICAgICAgICAgICAgICAgQEdyb3VwVXNlcnN7QFVzZXJJRHN9ID0gQFVzZXJJRHM7CiAgICAgICAg
ICAgIH0KICAgICAgICB9CgogICAgICAgICMgZ2V0IHVzZXIgbGlzdAogICAgICAgIG15ICVVc2Vy
TGlzdCA9ICRVc2VyT2JqZWN0LT5Vc2VyU2VhcmNoKAogICAgICAgICAgICBTZWFyY2ggPT4gJFNl
YXJjaCwKICAgICAgICAgICAgVmFsaWQgID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgbXkgJE1h
eFJlc3VsdENvdW50ID0gJE1heFJlc3VsdHM7CgogICAgICAgICMgdGhlIGRhdGEgdGhhdCB3aWxs
IGJlIHNlbnQgYXMgcmVzcG9uc2UKICAgICAgICBteSBARGF0YTsKCiAgICAgICAgVVNFUklEOgog
ICAgICAgIGZvciBteSAkVXNlcklEICggc29ydCB7ICRVc2VyTGlzdHskYX0gY21wICRVc2VyTGlz
dHskYn0gfSBrZXlzICVVc2VyTGlzdCApIHsKCiAgICAgICAgICAgICMgaWYgZ3JvdXBzIGFyZSBy
ZXF1aXJlZCBhbmQgdXNlciBpcyBub3QgbWVtYmVyIG9mIG9uZSBvZiB0aGUgZ3JvdXBzCiAgICAg
ICAgICAgICMgdGhlbiBza2lwIHRoZSB1c2VyCiAgICAgICAgICAgIGlmICggJEdyb3VwcyAmJiAh
JEdyb3VwVXNlcnN7JFVzZXJJRH0gKSB7CiAgICAgICAgICAgICAgICBuZXh0IFVTRVJJRDsKICAg
ICAgICAgICAgfQoKICAgICAgICAgICAgIyBUaGUgdmFsdWVzIGluICVVc2VyTGlzdCBhcmUgaW4g
dGhlIGZvcm06ICdtbSBNYXggTXVzdGVybWFubicuCiAgICAgICAgICAgICMgU28gYXNzZW1ibGUg
YSBuZWF0ZXIgc3RyaW5nIGZvciBkaXNwbGF5LgogICAgICAgICAgICAjIChBY3R1YWxseSBVc2Vy
U2VhcmNoKCkgY29udGFpbnMgY29kZSBmb3IgZm9ybWF0aW5nLCBidXQgdGhhdCBpcyB1c3VhbGx5
IG5vdCBjYWxsZWQuKQogICAgICAgICAgICBteSAlVXNlciA9ICRVc2VyT2JqZWN0LT5HZXRVc2Vy
RGF0YSgKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkVXNlcklELAogICAgICAgICAgICAgICAg
VmFsaWQgID0+ICRQYXJhbXtWYWxpZH0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBteSAk
VXNlclZhbHVlID0gc3ByaW50ZiAnIiVzICVzIiA8JXM+JywKICAgICAgICAgICAgICAgICRVc2Vy
e1VzZXJGaXJzdG5hbWV9LAogICAgICAgICAgICAgICAgJFVzZXJ7VXNlckxhc3RuYW1lfSwKICAg
ICAgICAgICAgICAgICRVc2Vye1VzZXJFbWFpbH07CgogICAgICAgICAgICBwdXNoIEBEYXRhLCB7
CiAgICAgICAgICAgICAgICBVc2VyS2V5ICAgPT4gJFVzZXJJRCwKICAgICAgICAgICAgICAgIFVz
ZXJWYWx1ZSA9PiAkVXNlclZhbHVlLAogICAgICAgICAgICB9OwoKICAgICAgICAgICAgJE1heFJl
c3VsdENvdW50LS07CiAgICAgICAgICAgIGxhc3QgVVNFUklEIGlmICRNYXhSZXN1bHRDb3VudCA8
PSAwOwogICAgICAgIH0KCiAgICAgICAgIyBidWlsZCBKU09OIG91dHB1dAogICAgICAgICRKU09O
ID0gJExheW91dE9iamVjdC0+SlNPTkVuY29kZSgKICAgICAgICAgICAgRGF0YSA9PiBcQERhdGEs
CiAgICAgICAgKTsKICAgIH0KCiAgICAjIHNlbmQgSlNPTiByZXNwb25zZQogICAgcmV0dXJuICRM
YXlvdXRPYmplY3QtPkF0dGFjaG1lbnQoCiAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxh
aW47IGNoYXJzZXQ9JyAuICRMYXlvdXRPYmplY3QtPntDaGFyc2V0fSwKICAgICAgICBDb250ZW50
ICAgICA9PiAkSlNPTiB8fCAnJywKICAgICAgICBUeXBlICAgICAgICA9PiAnaW5saW5lJywKICAg
ICAgICBOb0NhY2hlICAgICA9PiAxLAogICAgKTsKCn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAxMiAtIDIwMjEgUGVybC1TZXJ2aWNlcy5kZSwgaHR0cDov
L3Blcmwtc2VydmljZXMuZGUKIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVU
RUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09Q
WUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVj
ZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQu
CiMgLS0KCnBhY2thZ2UgS2VybmVsOjpNb2R1bGVzOjpBZ2VudFRpY2tldENsb3NlQnVsazsKCnVz
ZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBLZXJuZWw6Okxhbmd1YWdlIHF3KFRyYW5zbGF0
YWJsZSk7CgpvdXIgQE9iamVjdERlcGVuZGVuY2llcyA9IHF3KAogICAgS2VybmVsOjpDb25maWcK
ICAgIEtlcm5lbDo6U3lzdGVtOjpMb2cKICAgIEtlcm5lbDo6U3lzdGVtOjpFbmNvZGUKICAgIEtl
cm5lbDo6U3lzdGVtOjpNYWluCiAgICBLZXJuZWw6OlN5c3RlbTo6REIKICAgIEtlcm5lbDo6U3lz
dGVtOjpTdGF0ZQogICAgS2VybmVsOjpTeXN0ZW06OlRpY2tldAogICAgS2VybmVsOjpTeXN0ZW06
OlF1ZXVlCiAgICBLZXJuZWw6OlN5c3RlbTo6VGltZQogICAgS2VybmVsOjpTeXN0ZW06OlVzZXIK
ICAgIEtlcm5lbDo6U3lzdGVtOjpRdWlja0Nsb3NlCiAgICBLZXJuZWw6OlN5c3RlbTo6V2ViOjpV
cGxvYWRDYWNoZQogICAgS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdAogICAgS2VybmVsOjpP
dXRwdXQ6OkhUTUw6OkxheW91dAogICAgS2VybmVsOjpMYW5ndWFnZQopOwoKc3ViIG5ldyB7CiAg
ICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9y
IG9iamVjdAogICAgbXkgJFNlbGYgPSB7JVBhcmFtfTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUg
KTsKCiAgICBteSAkUGFyYW1PYmplY3QgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6
OlN5c3RlbTo6V2ViOjpSZXF1ZXN0Jyk7CiAgICBteSAkVXBsb2FkQ2FjaGVPYmplY3QgPSAkS2Vy
bmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpVcGxvYWRDYWNoZScpOwogICAgbXkg
JENvbmZpZ09iamVjdCAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsK
CiAgICAjIGdldCBmb3JtIGlkCiAgICAkU2VsZi0+e0Zvcm1JRH0gPSAkUGFyYW1PYmplY3QtPkdl
dFBhcmFtKCBQYXJhbSA9PiAnRm9ybUlEJyApOwoKICAgICMgY3JlYXRlIGZvcm0gaWQKICAgIGlm
ICggISRTZWxmLT57Rm9ybUlEfSApIHsKICAgICAgICAkU2VsZi0+e0Zvcm1JRH0gPSAkVXBsb2Fk
Q2FjaGVPYmplY3QtPkZvcm1JRENyZWF0ZSgpOwogICAgfQoKICAgICMgZ2V0IGNvbmZpZyBvZiBm
cm9udGVuZCBtb2R1bGUKICAgICRTZWxmLT57Q29uZmlnfSA9ICRDb25maWdPYmplY3QtPkdldCgi
VGlja2V0OjpGcm9udGVuZDo6QWdlbnRUaWNrZXRDbG9zZSIpOwoKICAgIHJldHVybiAkU2VsZjsK
fQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRQYXJh
bU9iamVjdCAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpS
ZXF1ZXN0Jyk7CiAgICBteSAkVXBsb2FkQ2FjaGVPYmplY3QgID0gJEtlcm5lbDo6T00tPkdldCgn
S2VybmVsOjpTeXN0ZW06OldlYjo6VXBsb2FkQ2FjaGUnKTsKICAgIG15ICRDb25maWdPYmplY3Qg
ICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwogICAgbXkgJExheW91
dE9iamVjdCAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpM
YXlvdXQnKTsKICAgIG15ICRRdWlja0Nsb3NlT2JqZWN0ICAgPSAkS2VybmVsOjpPTS0+R2V0KCdL
ZXJuZWw6OlN5c3RlbTo6UXVpY2tDbG9zZScpOwogICAgbXkgJFRpY2tldE9iamVjdCAgICAgICA9
ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaWNrZXQnKTsKICAgIG15ICRBcnRp
Y2xlT2JqZWN0ICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGlja2V0
OjpBcnRpY2xlJyk7CiAgICBteSAkVGltZU9iamVjdCAgICAgICAgID0gJEtlcm5lbDo6T00tPkdl
dCgnS2VybmVsOjpTeXN0ZW06OlRpbWUnKTsKICAgIG15ICRVc2VyT2JqZWN0ICAgICAgICAgPSAk
S2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpOwogICAgbXkgJEN1c3RvbWVy
VXNlck9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDdXN0b21lclVz
ZXInKTsKICAgIG15ICRUZW1wbGF0ZUdlbmVyYXRvciAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJu
ZWw6OlN5c3RlbTo6VGVtcGxhdGVHZW5lcmF0b3InKTsKCiAgICBteSBAVGlja2V0SURzID0gJFBh
cmFtT2JqZWN0LT5HZXRBcnJheSggUGFyYW0gPT4gJ1RpY2tldElEJyApOwogICAgbXkgJElEICAg
ICAgICA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdRdWlja0Nsb3NlJyApOwoK
ICAgIG15ICVHZXRQYXJhbTsKICAgIGZvciBteSAkV2ViUGFyYW0gKCBxdyhTdWJqZWN0IE9yaWdU
aWNrZXRJRCBHb1RvWm9vbSkgKSB7CiAgICAgICAgJEdldFBhcmFteyRXZWJQYXJhbX0gPSAkUGFy
YW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkV2ViUGFyYW0gKSB8fCAnJzsKICAgIH0KCiAg
ICBpZiAoICEkR2V0UGFyYW17U3ViamVjdH0gKSB7CiAgICAgICAgJEdldFBhcmFte1N1YmplY3R9
ID0KICAgICAgICAgICAgJENvbmZpZ09iamVjdC0+R2V0KCAnUXVpY2tDbG9zZTo6RGVmYXVsdFN1
YmplY3QnICkgfHwKICAgICAgICAgICAgJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+
VHJhbnNsYXRlKCdDbG9zZScpOwogICAgfQoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBp
ZiAoICFAVGlja2V0SURzICkgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNj
cmVlbigKICAgICAgICAgICAgTWVzc2FnZSA9PiBUcmFuc2xhdGFibGUoJ05vIFRpY2tldElEIGlz
IGdpdmVuIScpLAogICAgICAgICAgICBDb21tZW50ID0+IFRyYW5zbGF0YWJsZSgnUGxlYXNlIGNv
bnRhY3QgdGhlIGFkbWluaXN0cmF0b3IuJyksCiAgICAgICAgKTsKICAgIH0KCiAgICBpZiAoICEk
SUQgKSB7CiAgICAgICAgJElEID0gJENvbmZpZ09iamVjdC0+R2V0KCAnUXVpY2tDbG9zZTo6RGVm
YXVsdElEJyApIHx8IDE7CiAgICB9CgogICAgIyBnZXQgUXVpY2tDbG9zZSBkYXRhCiAgICBteSAl
Q2xvc2VEYXRhID0gJFF1aWNrQ2xvc2VPYmplY3QtPlF1aWNrQ2xvc2VHZXQoIElEID0+ICRJRCAp
OwoKICAgIGlmICggISVDbG9zZURhdGEgKSB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3Qt
PkVycm9yU2NyZWVuKAogICAgICAgICAgICBNZXNzYWdlID0+IFRyYW5zbGF0YWJsZSgnTm8gUXVp
Y2tDbG9zZSBkYXRhIGZvdW5kIScpLAogICAgICAgICAgICBDb21tZW50ID0+IFRyYW5zbGF0YWJs
ZSgnUGxlYXNlIGNvbnRhY3QgdGhlIGFkbWluaXN0cmF0b3IuJyksCiAgICAgICAgKTsKICAgIH0K
CiAgICBkZWxldGUgJENsb3NlRGF0YXtTdWJqZWN0fSBpZiAhbGVuZ3RoICRDbG9zZURhdGF7U3Vi
amVjdH07CgogICAgbXkgQE5vQWNjZXNzOwogICAgbXkgQENsb3NlTm90QWxsb3dlZDsKCiAgICBU
SUNLRVRJRDoKICAgIGZvciBteSAkVGlja2V0SUQgKCBAVGlja2V0SURzICkgewoKICAgICAgICAj
IGNoZWNrIHBlcm1pc3Npb25zCiAgICAgICAgbXkgJEFjY2VzcyA9ICRUaWNrZXRPYmplY3QtPlRp
Y2tldFBlcm1pc3Npb24oCiAgICAgICAgICAgIFR5cGUgICAgID0+ICRTZWxmLT57Q29uZmlnfS0+
e1Blcm1pc3Npb259LAogICAgICAgICAgICBUaWNrZXRJRCA9PiAkVGlja2V0SUQsCiAgICAgICAg
ICAgIFVzZXJJRCAgID0+ICRTZWxmLT57VXNlcklEfQogICAgICAgICk7CgogICAgICAgICMgZXJy
b3Igc2NyZWVuLCBkb24ndCBzaG93IHRpY2tldAogICAgICAgIGlmICggISRBY2Nlc3MgKSB7CiAg
ICAgICAgICAgIHB1c2ggQE5vQWNjZXNzLCAkVGlja2V0SUQ7CiAgICAgICAgICAgIG5leHQgVElD
S0VUSUQ7CiAgICAgICAgfQoKICAgICAgICBteSAlVGlja2V0ID0gJFRpY2tldE9iamVjdC0+VGlj
a2V0R2V0KAogICAgICAgICAgICBUaWNrZXRJRCAgICAgID0+ICRUaWNrZXRJRCwKICAgICAgICAg
ICAgVXNlcklEICAgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgIER5bmFtaWNG
aWVsZHMgPT4gMSwKICAgICAgICApOwoKICAgICAgICAjIGNoZWNrIGlmIHRoZSBRdWlja2Nsb3Nl
IGFjdGlvbiBpcyBmb3JiaWRkZW4gdmlhIFRpY2tldCBBQ0xzCiAgICAgICAgbXkgJEZha2VBY3Rp
b24gPSBzcHJpbnRmICdBZ2VudFRpY2tldFF1aWNrQ2xvc2VfJXMnLCAkQ2xvc2VEYXRhe05hbWV9
OwoKICAgICAgICBteSAkQUNMSW5BY3Rpb24gPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRBY2woCiAg
ICAgICAgICAgICVUaWNrZXQsCiAgICAgICAgICAgIERhdGEgPT4geyAKICAgICAgICAgICAgICAg
ICRGYWtlQWN0aW9uID0+ICRGYWtlQWN0aW9uLAogICAgICAgICAgICB9LAogICAgICAgICAgICBS
ZXR1cm5UeXBlID0+ICdBY3Rpb24nLAogICAgICAgICAgICBSZXR1cm5TdWJUeXBlID0+ICctJywK
ICAgICAgICAgICAgVXNlcklEICAgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgKTsK
CiAgICAgICAgbXkgJUFDTERhdGEgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRBY2xEYXRhKCk7CiAg
ICAgICAgaWYgKCAkQUNMSW5BY3Rpb24gJiYgIWV4aXN0cyAkQUNMRGF0YXskRmFrZUFjdGlvbn0g
KSB7CiAgICAgICAgICAgIHB1c2ggQENsb3NlTm90QWxsb3dlZCwgJFRpY2tldElEOwogICAgICAg
ICAgICBuZXh0IFRJQ0tFVElEOwogICAgICAgIH0KCiAgICAgICAgIyBjaGFsbGVuZ2UgdG9rZW4g
Y2hlY2sgZm9yIHdyaXRlIGFjdGlvbgogICAgICAgICRMYXlvdXRPYmplY3QtPkNoYWxsZW5nZVRv
a2VuQ2hlY2soKTsKCiAgICAgICAgbXkgJFJlc3BvbnNpYmxlRW5hYmxlZCA9ICRDb25maWdPYmpl
Y3QtPkdldCgnVGlja2V0OjpSZXNwb25zaWJsZScpOwoKICAgICAgICBpZiAoICRSZXNwb25zaWJs
ZUVuYWJsZWQgJiYgJENsb3NlRGF0YXtBc3NpZ25Ub1Jlc3BvbnNpYmxlfSApIHsKICAgICAgICAg
ICAgaWYgKCAkVGlja2V0e1Jlc3BvbnNpYmxlSUR9ICkgewogICAgICAgICAgICAgICAgJFRpY2tl
dE9iamVjdC0+VGlja2V0T3duZXJTZXQoCiAgICAgICAgICAgICAgICAgICAgVGlja2V0SUQgID0+
ICRUaWNrZXRJRCwKICAgICAgICAgICAgICAgICAgICBOZXdVc2VySUQgPT4gJFRpY2tldHtSZXNw
b25zaWJsZUlEfSwKICAgICAgICAgICAgICAgICAgICBVc2VySUQgICAgPT4gJFNlbGYtPntVc2Vy
SUR9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBl
bHNpZiAoICRDbG9zZURhdGF7Rm9yY2VDdXJyZW50VXNlckFzT3duZXJ9ICkgewogICAgICAgICAg
ICAkVGlja2V0T2JqZWN0LT5UaWNrZXRPd25lclNldCgKICAgICAgICAgICAgICAgIFRpY2tldElE
ICA9PiAkVGlja2V0SUQsCiAgICAgICAgICAgICAgICBOZXdVc2VySUQgPT4gJFNlbGYtPntVc2Vy
SUR9LAogICAgICAgICAgICAgICAgVXNlcklEICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAg
ICAgICAgKTsKICAgICAgICB9CgogICAgICAgIGlmICggJENsb3NlRGF0YXtPd25lcklEfSApIHsK
ICAgICAgICAgICAgJFRpY2tldE9iamVjdC0+VGlja2V0T3duZXJTZXQoCiAgICAgICAgICAgICAg
ICBUaWNrZXRJRCAgPT4gJFRpY2tldElELAogICAgICAgICAgICAgICAgTmV3VXNlcklEID0+ICRD
bG9zZURhdGF7T3duZXJJRH0sCiAgICAgICAgICAgICAgICBVc2VySUQgICAgPT4gJFNlbGYtPntV
c2VySUR9LAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgaWYgKCAkUmVzcG9uc2li
bGVFbmFibGVkICYmICRDbG9zZURhdGF7UmVzcG9uc2libGVJRH0gKSB7CiAgICAgICAgICAgICRU
aWNrZXRPYmplY3QtPlRpY2tldFJlc3BvbnNpYmxlU2V0KAogICAgICAgICAgICAgICAgVGlja2V0
SUQgID0+ICRUaWNrZXRJRCwKICAgICAgICAgICAgICAgIE5ld1VzZXJJRCA9PiAkQ2xvc2VEYXRh
e1Jlc3BvbnNpYmxlSUR9LAogICAgICAgICAgICAgICAgVXNlcklEICAgID0+ICRTZWxmLT57VXNl
cklEfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgIG15ICRUbyA9ICcnOwoKICAg
ICAgICBpZiAoICRUaWNrZXR7T3duZXJJRH0gIT0gJFNlbGYtPntVc2VySUR9ICkgewogICAgICAg
ICAgICBteSAlVXNlciA9ICRVc2VyT2JqZWN0LT5HZXRVc2VyRGF0YSgKICAgICAgICAgICAgICAg
IFVzZXJJRCA9PiAkVGlja2V0e093bmVySUR9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAg
JFRvID0gcXF+IiRVc2Vye1VzZXJGdWxsbmFtZX0iIDwkVXNlcntVc2VyRW1haWx9Pn47CiAgICAg
ICAgfQoKICAgICAgICBteSAkU2lnbmF0dXJlID0gJFRlbXBsYXRlR2VuZXJhdG9yLT5TaWduYXR1
cmUoCiAgICAgICAgICAgIFF1ZXVlSUQgPT4gJFRpY2tldHtRdWV1ZUlEfSwKICAgICAgICAgICAg
VXNlcklEICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgIERhdGEgICAgPT4ge30sCiAg
ICAgICAgKTsKCiAgICAgICAgbXkgJFRvVHlwZSA9ICRDbG9zZURhdGF7VG9UeXBlfSB8fCAnJzsK
ICAgICAgICBteSAkTWV0aG9kID0gJ0FydGljbGVDcmVhdGUnOwogICAgICAgIG15ICRCUiAgICAg
PSAkTGF5b3V0T2JqZWN0LT57QnJvd3NlclJpY2hUZXh0fSA/ICc8YnI+JyA6ICJcbiI7CgogICAg
ICAgIG15ICRCb2R5ID0gJENsb3NlRGF0YXtCb2R5fTsKCiAgICAgICAgaWYgKCAkVG9UeXBlIGVx
ICdDdXN0b21lcicgJiYgJFRpY2tldHtDdXN0b21lclVzZXJJRH0gKSB7CiAgICAgICAgICAgIG15
ICVDdXN0b21lckRhdGEgPSAkQ3VzdG9tZXJVc2VyT2JqZWN0LT5DdXN0b21lclVzZXJEYXRhR2V0
KAogICAgICAgICAgICAgICAgVXNlciA9PiAkVGlja2V0e0N1c3RvbWVyVXNlcklEfSwKICAgICAg
ICAgICAgKTsKCiAgICAgICAgICAgICRNZXRob2QgPSAnQXJ0aWNsZVNlbmQnOwogICAgICAgICAg
ICAkVG8gICAgID0gJFRpY2tldHtDdXN0b21lclVzZXJJRH07CgogICAgICAgICAgICBpZiAoICVD
dXN0b21lckRhdGEgKSB7CiAgICAgICAgICAgICAgICAkVG8gPSBxcX4iJEN1c3RvbWVyRGF0YXtV
c2VyRnVsbG5hbWV9IiA8JEN1c3RvbWVyRGF0YXtVc2VyRW1haWx9Pn47CiAgICAgICAgICAgIH0K
CiAgICAgICAgICAgICRCb2R5IC49ICIkQlIkQlItLSAkQlIiIC4gJFNpZ25hdHVyZSBpZiAkU2ln
bmF0dXJlOwogICAgICAgIH0KICAgICAgICBlbHNpZiAoICRUb1R5cGUgZXEgJ090aGVyJyAmJiAk
Q2xvc2VEYXRhe1RvQWRkcmVzc30gKSB7CiAgICAgICAgICAgICRNZXRob2QgPSAnQXJ0aWNsZVNl
bmQnOwogICAgICAgICAgICAkVG8gICAgID0gJENsb3NlRGF0YXtUb0FkZHJlc3N9OwoKICAgICAg
ICAgICAgJEJvZHkgLj0gIiRCUiRCUi0tICRCUiIgLiAkU2lnbmF0dXJlIGlmICRTaWduYXR1cmU7
CiAgICAgICAgfQoKICAgICAgICAkQm9keSA9ICRTZWxmLT5fUmVwbGFjZU1hY3JvcygKICAgICAg
ICAgICAgVGV4dCAgICAgID0+ICRCb2R5LAogICAgICAgICAgICBSaWNoVGV4dCAgPT4gJExheW91
dE9iamVjdC0+e0Jyb3dzZXJSaWNoVGV4dH0sCiAgICAgICAgICAgIFRpY2tldCAgICA9PiB7JVRp
Y2tldH0sCiAgICAgICAgICAgIExhbmd1YWdlICA9PiAkTGF5b3V0T2JqZWN0LT57VXNlckxhbmd1
YWdlfSwgICAgIyB1c2VkIGZvciB0cmFuc2xhdGluZyBzdGF0ZXMgYW5kIHN1Y2gKICAgICAgICAg
ICAgVXNlcklEICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICBpZiAo
ICRCb2R5ICkgewogICAgICAgICAgICAjIGFkZCBub3RlCiAgICAgICAgICAgIG15ICRBcnRpY2xl
SUQgPSAnJzsKICAgICAgICAgICAgbXkgJE1pbWVUeXBlID0gJ3RleHQvcGxhaW4nOwogICAgICAg
ICAgICBpZiAoICRMYXlvdXRPYmplY3QtPntCcm93c2VyUmljaFRleHR9ICkgewogICAgICAgICAg
ICAgICAgJE1pbWVUeXBlID0gJ3RleHQvaHRtbCc7CgogICAgICAgICAgICAgICAgIyB2ZXJpZnkg
aHRtbCBkb2N1bWVudAogICAgICAgICAgICAgICAgJEJvZHkgPSAkTGF5b3V0T2JqZWN0LT5SaWNo
VGV4dERvY3VtZW50Q29tcGxldGUoCiAgICAgICAgICAgICAgICAgICAgU3RyaW5nID0+ICRCb2R5
LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbXkgJFN1Ympl
Y3QgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRTdWJqZWN0QnVpbGQoCiAgICAgICAgICAgICAgICBU
aWNrZXROdW1iZXIgPT4gJFRpY2tldHtUaWNrZXROdW1iZXJ9LAogICAgICAgICAgICAgICAgU3Vi
amVjdCAgICAgID0+ICRDbG9zZURhdGF7U3ViamVjdH0gfHwgJFRpY2tldHtUaXRsZX0sCiAgICAg
ICAgICAgICAgICBBY3Rpb24gICAgICAgPT4gJ1JlcGx5JywKICAgICAgICAgICAgKTsKCiAgICAg
ICAgICAgICRTdWJqZWN0ID0gJFNlbGYtPl9SZXBsYWNlTWFjcm9zKAogICAgICAgICAgICAgICAg
VGV4dCAgICAgID0+ICRTdWJqZWN0LAogICAgICAgICAgICAgICAgUmljaFRleHQgID0+IDAsCiAg
ICAgICAgICAgICAgICBUaWNrZXQgICAgPT4geyVUaWNrZXR9LAogICAgICAgICAgICAgICAgTGFu
Z3VhZ2UgID0+ICRMYXlvdXRPYmplY3QtPntVc2VyTGFuZ3VhZ2V9LCAgICAjIHVzZWQgZm9yIHRy
YW5zbGF0aW5nIHN0YXRlcyBhbmQgc3VjaAogICAgICAgICAgICAgICAgVXNlcklEICAgID0+IDEs
CiAgICAgICAgICAgICk7CgogICAgICAgICAgICAkQ2xvc2VEYXRhe0lzVmlzaWJsZUZvckN1c3Rv
bWVyfSA9ICRDbG9zZURhdGF7QXJ0aWNsZUN1c3RvbWVyfTsKCiAgICAgICAgICAgIG15ICRGcm9t
ID0gIiRTZWxmLT57VXNlckZpcnN0bmFtZX0gJFNlbGYtPntVc2VyTGFzdG5hbWV9IDwkU2VsZi0+
e1VzZXJFbWFpbH0+IjsKCiAgICAgICAgICAgIGlmICggJENvbmZpZ09iamVjdC0+R2V0KCdRdWlj
a0Nsb3NlOjpVc2VRdWV1ZVNlbmRlcicpICkgewogICAgICAgICAgICAgICAgJEZyb20gPSAkVGVt
cGxhdGVHZW5lcmF0b3ItPlNlbmRlcigKICAgICAgICAgICAgICAgICAgICBRdWV1ZUlEID0+ICRU
aWNrZXR7UXVldWVJRH0sCiAgICAgICAgICAgICAgICAgICAgVXNlcklEICA9PiAkU2VsZi0+e1Vz
ZXJJRH0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CgogICAgICAgICAgICBteSAk
QXJ0aWNsZUJhY2tlbmRPYmplY3QgPSAkQXJ0aWNsZU9iamVjdC0+QmFja2VuZEZvckNoYW5uZWwo
IENoYW5uZWxOYW1lID0+ICRDbG9zZURhdGF7QXJ0aWNsZVR5cGV9ICk7CgogICAgICAgICAgICAk
QXJ0aWNsZUlEID0gJEFydGljbGVCYWNrZW5kT2JqZWN0LT4kTWV0aG9kKAogICAgICAgICAgICAg
ICAgVGlja2V0SUQgICAgICAgPT4gJFRpY2tldElELAogICAgICAgICAgICAgICAgU2VuZGVyVHlw
ZSAgICAgPT4gJ2FnZW50JywKICAgICAgICAgICAgICAgIEZyb20gICAgICAgICAgID0+ICRGcm9t
LAogICAgICAgICAgICAgICAgVG8gICAgICAgICAgICAgPT4gJFRvLAogICAgICAgICAgICAgICAg
TWltZVR5cGUgICAgICAgPT4gJE1pbWVUeXBlLAogICAgICAgICAgICAgICAgQ2hhcnNldCAgICAg
ICAgPT4gJExheW91dE9iamVjdC0+e1VzZXJDaGFyc2V0fSwKICAgICAgICAgICAgICAgIFVzZXJJ
RCAgICAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgICAgIEhpc3RvcnlUeXBl
ICAgID0+ICRTZWxmLT57Q29uZmlnfS0+e0hpc3RvcnlUeXBlfSwgCiAgICAgICAgICAgICAgICBI
aXN0b3J5Q29tbWVudCA9PiAkU2VsZi0+e0NvbmZpZ30tPntIaXN0b3J5Q29tbWVudH0sIAogICAg
ICAgICAgICAgICAgQXJ0aWNsZVR5cGVJRCAgPT4gJENsb3NlRGF0YXtBcnRpY2xlVHlwZUlEfSwK
ICAgICAgICAgICAgICAgICVHZXRQYXJhbSwKICAgICAgICAgICAgICAgICVDbG9zZURhdGEsCiAg
ICAgICAgICAgICAgICBCb2R5ICAgICAgICAgICA9PiAkQm9keSwKICAgICAgICAgICAgICAgIFN1
YmplY3QgICAgICAgID0+ICRTdWJqZWN0LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgaWYg
KCAhJEFydGljbGVJRCApIHsKICAgICAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5F
cnJvclNjcmVlbigpOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoICRBcnRpY2xlSUQg
JiYgJENsb3NlRGF0YXtUaW1lVW5pdHN9ICkgewogICAgICAgICAgICAgICAgJFRpY2tldE9iamVj
dC0+VGlja2V0QWNjb3VudFRpbWUoCiAgICAgICAgICAgICAgICAgICAgVGlja2V0SUQgID0+ICRU
aWNrZXRJRCwKICAgICAgICAgICAgICAgICAgICBBcnRpY2xlSUQgPT4gJEFydGljbGVJRCwKICAg
ICAgICAgICAgICAgICAgICBUaW1lVW5pdCAgPT4gJENsb3NlRGF0YXtUaW1lVW5pdHN9LAogICAg
ICAgICAgICAgICAgICAgIFVzZXJJRCAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAg
ICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZiAoICRDbG9zZURhdGF7
UHJpb3JpdHlJRH0gKSB7CiAgICAgICAgICAgICRUaWNrZXRPYmplY3QtPlRpY2tldFByaW9yaXR5
U2V0KAogICAgICAgICAgICAgICAgVGlja2V0SUQgICA9PiAkVGlja2V0SUQsCiAgICAgICAgICAg
ICAgICBQcmlvcml0eUlEID0+ICRDbG9zZURhdGF7UHJpb3JpdHlJRH0sCiAgICAgICAgICAgICAg
ICBVc2VySUQgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICB9
CgogICAgICAgIGlmICggJENvbmZpZ09iamVjdC0+R2V0KCAnUXVpY2tDbG9zZTo6UXVldWVNb3Zl
JyApICYmICRDbG9zZURhdGF7UXVldWVJRH0gKSB7CiAgICAgICAgICAgICRUaWNrZXRPYmplY3Qt
PlRpY2tldFF1ZXVlU2V0KAogICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFRpY2tldElELAog
ICAgICAgICAgICAgICAgUXVldWVJRCAgPT4gJENsb3NlRGF0YXtRdWV1ZUlEfSwKICAgICAgICAg
ICAgICAgIFVzZXJJRCAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAg
ICB9CgogICAgICAgIGlmICggJENsb3NlRGF0YXtTdGF0ZUlEfSApIHsKCiAgICAgICAgICAgICMg
c2V0IHN0YXRlCiAgICAgICAgICAgICRUaWNrZXRPYmplY3QtPlRpY2tldFN0YXRlU2V0KAogICAg
ICAgICAgICAgICAgVGlja2V0SUQgPT4gJFRpY2tldElELAogICAgICAgICAgICAgICAgU3RhdGVJ
RCAgPT4gJENsb3NlRGF0YXtTdGF0ZUlEfSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRT
ZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgIAogICAgICAgICAgICBteSAkVHlwZSA9
ICRRdWlja0Nsb3NlT2JqZWN0LT5UaWNrZXRTdGF0ZVR5cGVCeVN0YXRlR2V0KAogICAgICAgICAg
ICAgICAgU3RhdGVJRCA9PiAkQ2xvc2VEYXRhe1N0YXRlSUR9LAogICAgICAgICAgICApOwogICAg
CiAgICAgICAgICAgIGlmICggJFR5cGUgPX4gbXtecGVuZGluZ314bXMgKSB7CiAgICAgICAgICAg
ICAgICBteSAkRGlmZiA9ICRDbG9zZURhdGF7UGVuZGluZ0RpZmZ9IHx8CiAgICAgICAgICAgICAg
ICAgICAgJENvbmZpZ09iamVjdC0+R2V0KCAnUXVpY2tDbG9zZTo6UGVuZGluZ0RpZmZEZWZhdWx0
JyApIHx8CiAgICAgICAgICAgICAgICAgICAgKCAxICogMjQgKiA2MCApOwogICAgCiAgICAgICAg
ICAgICAgICBteSAoJFNlYywgJE1pbiwgJEhvdXIsICREYXksICRNb250aCwgJFllYXIpID0gJFRp
bWVPYmplY3QtPlN5c3RlbVRpbWUyRGF0ZSgKICAgICAgICAgICAgICAgICAgICBTeXN0ZW1UaW1l
ID0+ICRUaW1lT2JqZWN0LT5TeXN0ZW1UaW1lKCkgKyAoICREaWZmICogNjAgKSwKICAgICAgICAg
ICAgICAgICk7CgogICAgICAgICAgICAgICAgaWYgKCAkQ2xvc2VEYXRhe0ZpeEhvdXJ9ICkgewog
ICAgICAgICAgICAgICAgICAgIG15ICgkVG1wSG91ciwgJFRtcE1pbikgPSBzcGxpdCAvOi8sICRD
bG9zZURhdGF7Rml4SG91cn07CiAgICAgICAgICAgICAgICAgICAgJEhvdXIgPSAkVG1wSG91ciAv
LyAwOwogICAgICAgICAgICAgICAgICAgICRNaW4gID0gJFRtcE1pbiAgLy8gMDsKICAgICAgICAg
ICAgICAgIH0KICAgIAogICAgICAgICAgICAgICAgJFRpY2tldE9iamVjdC0+VGlja2V0UGVuZGlu
Z1RpbWVTZXQoCiAgICAgICAgICAgICAgICAgICAgWWVhciAgICAgPT4gJFllYXIsCiAgICAgICAg
ICAgICAgICAgICAgTW9udGggICAgPT4gJE1vbnRoLAogICAgICAgICAgICAgICAgICAgIERheSAg
ICAgID0+ICREYXksCiAgICAgICAgICAgICAgICAgICAgSG91ciAgICAgPT4gJEhvdXIsCiAgICAg
ICAgICAgICAgICAgICAgTWludXRlICAgPT4gJE1pbiwKICAgICAgICAgICAgICAgICAgICBUaWNr
ZXRJRCA9PiAkVGlja2V0SUQsCiAgICAgICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFNlbGYt
PntVc2VySUR9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgCiAgICAgICAg
ICAgICMgc2V0IHVubG9jayBvbiBjbG9zZSBzdGF0ZQogICAgICAgICAgICBpZiAoICRUeXBlID1+
IC9eY2xvc2UvaSApIHsKICAgICAgICAgICAgICAgICRUaWNrZXRPYmplY3QtPlRpY2tldExvY2tT
ZXQoCiAgICAgICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFRpY2tldElELAogICAgICAgICAg
ICAgICAgICAgIExvY2sgICAgID0+ICd1bmxvY2snLAogICAgICAgICAgICAgICAgICAgIFVzZXJJ
RCAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0K
ICAgICAgICB9CiAgICB9CgogICAgIyByZWRpcmVjdCBwYXJlbnQgd2luZG93IHRvIGxhc3Qgc2Ny
ZWVuIG92ZXJ2aWV3IG9uIGNsb3NlZCB0aWNrZXRzCiAgICBpZiAoICFATm9BY2Nlc3MgJiYgIUBD
bG9zZU5vdEFsbG93ZWQgKSB7CiAgICAgICAgbXkgJExhc3RWaWV3ID0gJFNlbGYtPntMYXN0U2Ny
ZWVuT3ZlcnZpZXd9IHx8ICRTZWxmLT57TGFzdFNjcmVlblZpZXd9IHx8ICdBY3Rpb249QWdlbnRE
YXNoYm9hcmQnOwoKICAgICAgICBpZiAoIHNjYWxhciggQFRpY2tldElEcyApID09IDEgJiYgJENs
b3NlRGF0YXtTaG93VGlja2V0Wm9vbX0gKSB7CiAgICAgICAgICAgICRMYXN0VmlldyA9ICdBY3Rp
b249QWdlbnRUaWNrZXRab29tJlRpY2tldElEPScgLiAkVGlja2V0SURzWzBdOwogICAgICAgIH0K
ICAgICAgICBlbHNpZiAoICRHZXRQYXJhbXtHb1RvWm9vbX0gJiYgJEdldFBhcmFte09yaWdUaWNr
ZXRJRH0gKSB7CiAgICAgICAgICAgICRMYXN0VmlldyA9ICdBY3Rpb249QWdlbnRUaWNrZXRab29t
JlRpY2tldElEPScgLiAkR2V0UGFyYW17T3JpZ1RpY2tldElEfTsKICAgICAgICB9CgogICAgICAg
IHJldHVybiAkTGF5b3V0T2JqZWN0LT5SZWRpcmVjdCgKICAgICAgICAgICAgT1AgPT4gJExhc3RW
aWV3LAogICAgICAgICk7CgogICAgfQogICAgZWxzZSB7CiAgICAgICAgbXkgQE5vdEFsbG93ZWQg
ICAgPSAoJ05vIEFjY2VzcyB0byB0aGVzZSBUaWNrZXRzIChJRHM6ICVzKScsIGpvaW4oICIsICIs
IEBOb0FjY2VzcyApKTsKICAgICAgICBteSBATm90QXBwbGljYWJsZSA9ICgnUXVpY2tDbG9zZSBu
b3QgYXBwbGljYWJsZSBmb3IgdGhlc2UgVGlja2V0cyAoSURzOiAlcyknLCBqb2luKCAiLCAiLCBA
Q2xvc2VOb3RBbGxvd2VkICkpOwoKICAgICAgICBteSBATWVzc2FnZXM7CiAgICAgICAgcHVzaCBA
TWVzc2FnZXMsICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSggQE5v
dEFsbG93ZWQgKSAgICBpZiBATm9BY2Nlc3M7CiAgICAgICAgcHVzaCBATWVzc2FnZXMsICRMYXlv
dXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSggQE5vdEFwcGxpY2FibGUgKSBp
ZiBAQ2xvc2VOb3RBbGxvd2VkOwoKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JT
Y3JlZW4oCiAgICAgICAgICAgIE1lc3NhZ2UgPT4gKGpvaW4gJywgJywgQE1lc3NhZ2VzKSwKICAg
ICAgICAgICAgQ29tbWVudCA9PiBUcmFuc2xhdGFibGUoJ1BsZWFzZSBjb250YWN0IHRoZSBhZG1p
bmlzdHJhdG9yLicpLAogICAgICAgICk7CiAgICB9Cn0KCnN1YiBfUmVwbGFjZU1hY3JvcyB7CiAg
ICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRMb2dPYmplY3QgICAgICAgPSAk
S2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyk7CiAgICBteSAkQ29uZmlnT2Jq
ZWN0ICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKICAgIG15ICRVc2Vy
T2JqZWN0ICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpOwog
ICAgbXkgJEhUTUxVdGlsc09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVt
OjpIVE1MVXRpbHMnKTsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICROZWVk
ZWQgKHF3KFRleHQgVXNlcklEIFRpY2tldCBMYW5ndWFnZSkpIHsKICAgICAgICBpZiAoICFkZWZp
bmVkICRQYXJhbXskTmVlZGVkfSApIHsKICAgICAgICAgICAgJExvZ09iamVjdC0+TG9nKAogICAg
ICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2Ug
ID0+ICJOZWVkICROZWVkZWQhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgIH0KICAgIH0KCiAgICBteSAkVGV4dCA9ICRQYXJhbXtUZXh0fTsKCiAgICAjIGRldGVy
bWluZSB3aGF0ICJtYWNybyIgZGVsaW1pdGVycyBhcmUgdXNlZAogICAgbXkgJFN0YXJ0ID0gJzwn
OwogICAgbXkgJEVuZCAgID0gJz4nOwogICAgbXkgJE5MICAgID0gIlxuIjsKCiAgICAjIHdpdGgg
cmljaHRleHQgZW5hYmxlZCwgdGhlIGRlbGltaXRlcnMgY2hhbmdlCiAgICBpZiAoICRQYXJhbXtS
aWNoVGV4dH0gKSB7CiAgICAgICAgJFN0YXJ0ID0gJyZsdDsnOwogICAgICAgICRFbmQgICA9ICcm
Z3Q7JzsKICAgICAgICAkTkwgICAgPSAnPGJyIC8+JzsKICAgICAgICAkVGV4dCA9fiBzeyAoXG58
XHIpIH17fXhtc2c7CgogICAgICAgICRQYXJhbXtBcnRpY2xlc30gPSBbIG1hcHsgJF8gPX4gcyFc
biE8YnIgLz4hZzsgJF8gfUB7ICRQYXJhbXtBcnRpY2xlc30gfHwgW10gfSBdOwogICAgfQoKICAg
ICMgdHJhbnNsYXRlIFRpY2tldCB2YWx1ZXMsIHdoZXJlIGFwcHJvcHJpYXRlCiAgICBteSAkTGFu
Z3VhZ2VPYmplY3QgPSBLZXJuZWw6Okxhbmd1YWdlLT5uZXcoCiAgICAgICAgVXNlckxhbmd1YWdl
ID0+ICRQYXJhbXtMYW5ndWFnZX0sCiAgICApOwoKICAgIG15ICVUaWNrZXREYXRhID0gJXsgJFBh
cmFte1RpY2tldH0gfTsKICAgIGZvciBteSAkRmllbGQgKHF3KFN0YXRlIFByaW9yaXR5KSkgewog
ICAgICAgICRUaWNrZXREYXRheyRGaWVsZH0gPSAkTGFuZ3VhZ2VPYmplY3QtPlRyYW5zbGF0ZSgg
JFRpY2tldERhdGF7JEZpZWxkfSApOwogICAgfQoKICAgICMgcmVwbGFjZSBjb25maWcgb3B0aW9u
cwogICAgbXkgJFRhZyA9ICRTdGFydCAuICdPVFJTX0NPTkZJR18nOwogICAgJFRleHQgPX4gc3sg
JFRhZyAoLis/KSAkRW5kIH17JENvbmZpZ09iamVjdC0+R2V0KCQxKX1lZ3g7CgogICAgIyBjbGVh
bnVwCiAgICAkVGV4dCA9fiBzeyAkVGFnIC4rPyAkRW5kIH17LX1naTsKCiAgICAkVGFnID0gJFN0
YXJ0IC4gJ09UUlNfQWdlbnRfJzsKICAgIG15ICRUYWcyID0gJFN0YXJ0IC4gJ09UUlNfQ1VSUkVO
VF8nOwogICAgbXkgJUN1cnJlbnRVc2VyID0gJFVzZXJPYmplY3QtPkdldFVzZXJEYXRhKCBVc2Vy
SUQgPT4gJFBhcmFte1VzZXJJRH0gKTsKCiAgICAjIGh0bWwgcXVvdGluZyBvZiBjb250ZW50CiAg
ICBpZiAoICRQYXJhbXtSaWNoVGV4dH0gKSB7CiAgICAgICAgS0VZOgogICAgICAgIGZvciBteSAk
S2V5ICggc29ydCBrZXlzICVDdXJyZW50VXNlciApIHsKICAgICAgICAgICAgbmV4dCBLRVkgaWYg
ISRDdXJyZW50VXNlcnskS2V5fTsKICAgICAgICAgICAgJEN1cnJlbnRVc2VyeyRLZXl9ID0gJEhU
TUxVdGlsc09iamVjdC0+VG9IVE1MKAogICAgICAgICAgICAgICAgU3RyaW5nID0+ICRDdXJyZW50
VXNlcnskS2V5fSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyByZXBsYWNl
IGl0CiAgICBLRVk6CiAgICBmb3IgbXkgJEtleSAoIHNvcnQga2V5cyAlQ3VycmVudFVzZXIgKSB7
CiAgICAgICAgbmV4dCBLRVkgaWYgIWRlZmluZWQgJEN1cnJlbnRVc2VyeyRLZXl9OwogICAgICAg
ICRUZXh0ID1+IHN7ICRUYWcgJEtleSAkRW5kIH17JEN1cnJlbnRVc2VyeyRLZXl9fWd4bXNpOwog
ICAgICAgICRUZXh0ID1+IHN7ICRUYWcyICRLZXkgJEVuZCB9eyRDdXJyZW50VXNlcnskS2V5fX1n
eG1zaTsKICAgIH0KCiAgICAjIHJlcGxhY2Ugb3RoZXIgbmVlZGVkIHN0dWZmCiAgICAkVGV4dCA9
fiBzeyAkU3RhcnQgT1RSU19GSVJTVF9OQU1FICRFbmQgfXskQ3VycmVudFVzZXJ7VXNlckZpcnN0
bmFtZX19Z3htczsKICAgICRUZXh0ID1+IHN7ICRTdGFydCBPVFJTX0xBU1RfTkFNRSAkRW5kIH17
JEN1cnJlbnRVc2Vye1VzZXJMYXN0bmFtZX19Z3htczsKCiAgICAjIGNsZWFudXAKICAgICRUZXh0
ID1+IHN7ICRUYWcgLis/ICRFbmR9ey19eG1zZ2k7CiAgICAkVGV4dCA9fiBzeyAkVGFnMiAuKz8g
JEVuZH17LX14bXNnaTsKCiAgICAjIHJlcGxhY2UgPE9UUlNfVElDS0VUXy4uLiB0YWdzCiAgICB7
CiAgICAgICAgbXkgJFRhZyA9ICRTdGFydCAuICdPVFJTX1RJQ0tFVF8nOwoKICAgICAgICAjIGh0
bWwgcXVvdGluZyBvZiBjb250ZW50CiAgICAgICAgaWYgKCAkUGFyYW17UmljaFRleHR9ICkgewog
ICAgICAgICAgICBLRVk6CiAgICAgICAgICAgIGZvciBteSAkS2V5ICggc29ydCBrZXlzICVUaWNr
ZXREYXRhICkgewogICAgICAgICAgICAgICAgbmV4dCBLRVkgaWYgISRUaWNrZXREYXRheyRLZXl9
OwogICAgICAgICAgICAgICAgJFRpY2tldERhdGF7JEtleX0gPSAkSFRNTFV0aWxzT2JqZWN0LT5U
b0hUTUwoCiAgICAgICAgICAgICAgICAgICAgU3RyaW5nID0+ICRUaWNrZXREYXRheyRLZXl9LAog
ICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyByZXBs
YWNlIGl0CiAgICAgICAgS0VZOgogICAgICAgIGZvciBteSAkS2V5ICggc29ydCBrZXlzICVUaWNr
ZXREYXRhICkgewogICAgICAgICAgICBuZXh0IEtFWSBpZiAhZGVmaW5lZCAkVGlja2V0RGF0YXsk
S2V5fTsKICAgICAgICAgICAgJFRleHQgPX4gc3sgJFRhZyAkS2V5ICRFbmQgfXskVGlja2V0RGF0
YXskS2V5fX1neG1zaTsKICAgICAgICB9CgogICAgICAgICMgY2xlYW51cAogICAgICAgICRUZXh0
ID1+IHN7ICRUYWcgLis/ICRFbmR9ey19Z3htc2k7CiAgICB9CgogICAgcmV0dXJuICRUZXh0Owp9
CgoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAxMSAtIDIwMTggUGVybC1TZXJ2aWNlcy5kZSwgaHR0cDov
L3d3dy5wZXJsLXNlcnZpY2VzLmRlLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFC
U09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmls
ZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5v
dCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3Bs
LnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok91dHB1dDo6SFRNTDo6RmlsdGVyQ29udGVudDo6
Q2xvc2VUaWNrZXRWaWV3SlM7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVs
OjpTeXN0ZW06OkVuY29kZTsKdXNlIEtlcm5lbDo6U3lzdGVtOjpUaW1lOwp1c2UgS2VybmVsOjpT
eXN0ZW06OlF1aWNrQ2xvc2U7CnVzZSBLZXJuZWw6OlN5c3RlbTo6V2ViOjpVcGxvYWRDYWNoZTsK
Cm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gcXcoCiAgICBLZXJuZWw6OkNvbmZpZwogICAgS2Vy
bmVsOjpTeXN0ZW06OkVuY29kZQogICAgS2VybmVsOjpTeXN0ZW06OkxvZwogICAgS2VybmVsOjpT
eXN0ZW06Ok1haW4KICAgIEtlcm5lbDo6U3lzdGVtOjpUaW1lCiAgICBLZXJuZWw6OlN5c3RlbTo6
R3JvdXAKICAgIEtlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQKICAgIEtlcm5lbDo6U3lzdGVt
OjpRdWlja0Nsb3NlCiAgICBLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0CiAgICBLZXJuZWw6
OlN5c3RlbTo6V2ViOjpVcGxvYWRDYWNoZQopOwoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAl
UGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkg
JFNlbGYgPSB7fTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICByZXR1cm4gJFNlbGY7
Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkTGF5
b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91
dCcpOwoKICAgIHJldHVybiAxIGlmICR7ICRQYXJhbXtEYXRhfSB9ICF+IG17Y2xhc3M9IlF1aWNr
Q2xvc2VWaWV3In14bXM7CgogICAgbXkgJEpTID0gcX4KICAgICAgICA8c2NyaXB0IHR5cGU9InRl
eHQvamF2YXNjcmlwdCI+Ly88IVtDREFUQVsKICAgICAgICBDb3JlLkFwcC5SZWFkeSggZnVuY3Rp
b24oKSB7CiAgICAgICAgJCgnLlF1aWNrQ2xvc2VTZWxlY3QnKS5lYWNoKCBmdW5jdGlvbiggU2Vs
ZWN0SW5kZXgsIFNlbGVjdEVsZW1lbnQpIHsKICAgICAgICAgICAgJChTZWxlY3RFbGVtZW50KS51
bmJpbmQoJ2NoYW5nZScpOwogICAgICAgICAgICAkKFNlbGVjdEVsZW1lbnQpLmJpbmQoJ2NoYW5n
ZScsIGZ1bmN0aW9uIChFdmVudCkgewogICAgICAgICAgICAgICAgLy8gcmV0cmlldmUgYm9keSBm
b3IgcXVpY2tjbG9zZQogICAgICAgICAgICAgICAgdmFyIFVSTCA9IENvcmUuQ29uZmlnLkdldCgn
QmFzZWxpbmsnKTsKICAgICAgICAgICAgICAgIHZhciBUSUQgPSAkKHRoaXMpLnZhbCgpOwoKICAg
ICAgICAgICAgICAgIGlmICggIVRJRCB8fCBUSUQgPT0gIiIgfHwgVElEIDw9IDAgKSB7CiAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg
IHZhciAkU2VsZWN0ZWRUaWNrZXRzOwogICAgICAgICAgICAgICAgdmFyIENsb3NlRm9ybSA9ICQo
dGhpcykuY2xvc2VzdCgnZm9ybScpOwogICAgICAgICAgICAgICAgdmFyIFRpY2tldEVsZW1lbnRT
ZWxlY3RvcnMgPSB7CiAgICAgICAgICAgICAgICAgICAgJ1NtYWxsJzogJ2Rpdi5PdmVydmlldyBm
b3JtIHRhYmxlIHRib2R5IHRyIHRkIGlucHV0OmNoZWNrYm94W25hbWU9IlRpY2tldElEIl0nLAog
ICAgICAgICAgICAgICAgICAgICdNZWRpdW0nOiAndWwuT3ZlcnZpZXcgaW5wdXQ6Y2hlY2tib3hb
bmFtZT0iVGlja2V0SUQiXScsCiAgICAgICAgICAgICAgICAgICAgJ0xhcmdlJzogJ3VsLk92ZXJ2
aWV3IGlucHV0OmNoZWNrYm94W25hbWU9IlRpY2tldElEIl0nCiAgICAgICAgICAgICAgICB9Owog
ICAgICAgICAgICAgICAgdmFyIFRpY2tldFZpZXc7CgogICAgICAgICAgICAgICAgdmFyIHRoaXNP
YmplY3QgPSAkKHRoaXMpOwoKICAgICAgICAgICAgICAgIGlmICgkKCcjVGlja2V0T3ZlcnZpZXdN
ZWRpdW0nKS5sZW5ndGgpIHsKICAgICAgICAgICAgICAgICAgICBUaWNrZXRWaWV3ID0gJ01lZGl1
bSc7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIGlmICgkKCcjVGlja2V0
T3ZlcnZpZXdMYXJnZScpLmxlbmd0aCkgewogICAgICAgICAgICAgICAgICAgIFRpY2tldFZpZXcg
PSAnTGFyZ2UnOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAg
ICAgICAgICAgICAgICAgVGlja2V0VmlldyA9ICdTbWFsbCc7CiAgICAgICAgICAgICAgICB9Cgog
ICAgICAgICAgICAgICAgdmFyIFRpY2tldElEID0gJCh0aGlzKS5kYXRhKCd0aWNrZXQtaWQnKTsK
ICAgICAgICAgICAgICAgIGlmICggVGlja2V0SUQgJiYgVGlja2V0SUQgPiAwICkgewogICAgICAg
ICAgICAgICAgICAgIHZhciBIaWRkZW5GaWVsZCA9ICQoJzxpbnB1dCB0eXBlPSJoaWRkZW4iIG5h
bWU9IlRpY2tldElEIj4nKTsKICAgICAgICAgICAgICAgICAgICBIaWRkZW5GaWVsZC52YWwoIFRp
Y2tldElEICk7CiAgICAgICAgICAgICAgICAgICAgQ2xvc2VGb3JtLmFwcGVuZCggSGlkZGVuRmll
bGQgKTsKICAgICAgICAgICAgICAgICAgICBDbG9zZUZvcm0uc3VibWl0KCk7CgkJICAgIHJldHVy
bjsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiAoIFRJRCApIHsKICAgICAg
ICAgICAgICAgICAgICAkU2VsZWN0ZWRUaWNrZXRzID0gJChUaWNrZXRFbGVtZW50U2VsZWN0b3Jz
W1RpY2tldFZpZXddICsgJzpjaGVja2VkJyk7CiAgICAgICAgICAgICAgICAgICAgJFNlbGVjdGVk
VGlja2V0cy5lYWNoKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIEhp
ZGRlbkZpZWxkID0gJCgnPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iVGlja2V0SUQiPicpOwog
ICAgICAgICAgICAgICAgICAgICAgICBIaWRkZW5GaWVsZC52YWwoICQodGhpcykudmFsKCkgKTsK
ICAgICAgICAgICAgICAgICAgICAgICAgQ2xvc2VGb3JtLmFwcGVuZCggSGlkZGVuRmllbGQgKTsK
ICAgICAgICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICAgICAgICAgQ2xvc2VGb3JtLnN1
Ym1pdCgpOwoJCX0KICAgICAgICAgICAgfSk7CiAgICAgICAgfSk7CiAgICAgICAgfSk7CiAgICAg
ICAgLy8gXV0+IDwvc2NyaXB0PgogICAgfjsKCiAgICAkeyAkUGFyYW17RGF0YX0gfSA9fiBzezwv
Ym9keT59eyRKUzwvYm9keT59eG1zOwoKICAgIHJldHVybiAxOwp9CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAxMSAtIDIwMjEgUGVybC1TZXJ2aWNlcy5kZSwgaHR0cDov
L3d3dy5wZXJsLXNlcnZpY2VzLmRlLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFC
U09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmls
ZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5v
dCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3Bs
LnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok91dHB1dDo6SFRNTDo6RmlsdGVyRWxlbWVudFBv
c3Q6OkNsb3NlOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIEtlcm5lbDo6U3lzdGVt
OjpFbmNvZGU7CnVzZSBLZXJuZWw6OlN5c3RlbTo6VGltZTsKdXNlIEtlcm5lbDo6U3lzdGVtOjpR
dWlja0Nsb3NlOwp1c2UgS2VybmVsOjpTeXN0ZW06OldlYjo6VXBsb2FkQ2FjaGU7CgpvdXIgQE9i
amVjdERlcGVuZGVuY2llcyA9IHF3KAogICAgS2VybmVsOjpDb25maWcKICAgIEtlcm5lbDo6U3lz
dGVtOjpUaWNrZXQKICAgIEtlcm5lbDo6U3lzdGVtOjpHcm91cAogICAgS2VybmVsOjpPdXRwdXQ6
OkhUTUw6OkxheW91dAogICAgS2VybmVsOjpTeXN0ZW06OlF1aWNrQ2xvc2UKICAgIEtlcm5lbDo6
U3lzdGVtOjpXZWI6OlJlcXVlc3QKICAgIEtlcm5lbDo6U3lzdGVtOjpXZWI6OlVwbG9hZENhY2hl
Cik7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxv
Y2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRT
ZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRT
ZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRVcGxvYWRDYWNoZU9iamVjdCA9ICRLZXJuZWw6
Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlVwbG9hZENhY2hlJyk7CiAgICBteSAkUXVp
Y2tDbG9zZU9iamVjdCAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6UXVpY2tD
bG9zZScpOwogICAgbXkgJFBhcmFtT2JqZWN0ICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2Vy
bmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpOwogICAgbXkgJENvbmZpZ09iamVjdCAgICAgID0g
JEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKICAgIG15ICRMYXlvdXRPYmplY3Qg
ICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsK
ICAgIG15ICRHcm91cE9iamVjdCAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lz
dGVtOjpHcm91cCcpOwogICAgbXkgJFRpY2tldE9iamVjdCAgICAgID0gJEtlcm5lbDo6T00tPkdl
dCgnS2VybmVsOjpTeXN0ZW06OlRpY2tldCcpOwoKICAgICMgZ2V0IHRlbXBsYXRlIG5hbWUKICAg
IG15ICRUZW1wbGF0ZW5hbWUgPSAkUGFyYW17VGVtcGxhdGVGaWxlfSB8fCAnJzsKICAgIHJldHVy
biAxIGlmICEkVGVtcGxhdGVuYW1lOwoKICAgIHJldHVybiBpZiAkVGVtcGxhdGVuYW1lICAhfiBt
e0FnZW50VGlja2V0Wm9vbVx6fTsKCiAgICBteSBAVXNlclJvbGVzID0gJEdyb3VwT2JqZWN0LT5H
cm91cFVzZXJSb2xlTWVtYmVyTGlzdCgKICAgICAgICBVc2VySUQgPT4gJExheW91dE9iamVjdC0+
e1VzZXJJRH0sCiAgICAgICAgUmVzdWx0ID0+ICdJRCcsCiAgICApOwoKICAgIG15ICgkVGlja2V0
SUQpID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1RpY2tldElEJyApOwoKICAg
IHJldHVybiAxIGlmICEkVGlja2V0SUQ7CgogICAgbXkgJVRpY2tldCA9ICRUaWNrZXRPYmplY3Qt
PlRpY2tldEdldCgKICAgICAgICBUaWNrZXRJRCAgICAgID0+ICRUaWNrZXRJRCwKICAgICAgICBV
c2VySUQgICAgICAgID0+ICRMYXlvdXRPYmplY3QtPntVc2VySUR9LAogICAgICAgIER5bmFtaWNG
aWVsZHMgPT4gMSwKICAgICk7CgogICAgcmV0dXJuIDEgaWYgISVUaWNrZXQ7CgogICAgaWYgKCAk
Q29uZmlnT2JqZWN0LT5HZXQoJ1F1aWNrQ2xvc2U6OlNob3dPbmx5Rm9yT3duZXInKSAmJiAkTGF5
b3V0T2JqZWN0LT57VXNlcklEfSAhPSAkVGlja2V0e093bmVySUR9ICkgewogICAgICAgIHJldHVy
biAxOwogICAgfQoKICAgIGlmICggJFRpY2tldHtMb2NrfSBlcSAnbG9jaycgJiYgJENvbmZpZ09i
amVjdC0+R2V0KCdRdWlja0Nsb3NlOjpSZXF1aXJlZExvY2snKSAmJiAkTGF5b3V0T2JqZWN0LT57
VXNlcklEfSAhPSAkVGlja2V0e093bmVySUR9ICkgewogICAgICAgIHJldHVybiAxOwogICAgfQoK
ICAgIG15ICRGb3JtSUQgICAgID0gJFVwbG9hZENhY2hlT2JqZWN0LT5Gb3JtSURDcmVhdGUoKTsK
ICAgIG15ICVMaXN0ICAgICAgID0gJFF1aWNrQ2xvc2VPYmplY3QtPlF1aWNrQ2xvc2VMaXN0KAog
ICAgICAgIFZhbGlkICAgICAgPT4gMSwKICAgICAgICBHcm91cEJ5ICAgID0+IDEsCiAgICAgICAg
UGVybWlzc2lvbiA9PiB7CiAgICAgICAgICAgIFJvbGVJRCA9PiBcQFVzZXJSb2xlcywKICAgICAg
ICB9LAogICAgKTsKCiAgICByZXR1cm4gMSBpZiAhJUxpc3Q7CgogICAgbXkgJENvbmZpZyAgICA9
ICRDb25maWdPYmplY3QtPkdldCgnUXVpY2tDbG9zZScpIHx8IHt9OwogICAgbXkgJExhYmVscyAg
ICA9ICRDb25maWdPYmplY3QtPkdldCggJ1F1aWNrQ2xvc2U6OkxhYmVscycgKSB8fCB7fTsKICAg
IG15ICREcm9wZG93bnMgPSAnJzsKICAgIG15ICRVc2VHcm91cHMgPSAkQ29uZmlnT2JqZWN0LT5H
ZXQoJ1F1aWNrQ2xvc2U6OlVzZUdyb3VwcycpOwoKICAgIGlmICggISRVc2VHcm91cHMgKSB7CiAg
ICAgICAgbXkgJVRtcCA9ICVMaXN0OwoKICAgICAgICAlTGlzdCA9ICggJycgPT4gXCVUbXAgKTsK
ICAgIH0KCiAgICBHUk9VUDoKICAgIGZvciBteSAkR3JvdXAgKCBzb3J0IHsgJGEgY21wICRiIH1r
ZXlzICVMaXN0ICkgewogICAgICAgIG15ICVFbnRyaWVzID0gJXsgJExpc3R7JEdyb3VwfSB8fCB7
fSB9OwoKICAgICAgICAjIGNoZWNrIHRpY2tldCBBQ0xzCiAgICAgICAgbXkgJUZha2VBY3Rpb25z
ID0gbWFwIHsKICAgICAgICAgICAgbXkgJE5hbWUgICAgICAgPSAkRW50cmllc3skX307CiAgICAg
ICAgICAgIG15ICRGYWtlQWN0aW9uID0gc3ByaW50ZiAnQWdlbnRUaWNrZXRRdWlja0Nsb3NlXyVz
JywgJE5hbWU7CiAgICAgICAgICAgICRGYWtlQWN0aW9uID0+ICRGYWtlQWN0aW9uOwogICAgICAg
IH0ga2V5cyAlRW50cmllczsKCiAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkVGlja2V0T2JqZWN0LT5U
aWNrZXRBY2woCiAgICAgICAgICAgICVUaWNrZXQsCiAgICAgICAgICAgIERhdGEgICAgICAgICAg
PT4gXCVGYWtlQWN0aW9ucywKICAgICAgICAgICAgUmV0dXJuVHlwZSAgICA9PiAnQWN0aW9uJywK
ICAgICAgICAgICAgUmV0dXJuU3ViVHlwZSA9PiAnLScsCiAgICAgICAgICAgIFVzZXJJRCAgICAg
ICAgPT4gJExheW91dE9iamVjdC0+e1VzZXJJRH0sCiAgICAgICAgKTsKCiAgICAgICAgbXkgJUFs
bG93ZWRBY3Rpb25zID0gJFRpY2tldE9iamVjdC0+VGlja2V0QWNsRGF0YSgpOwoKICAgICAgICBp
ZiAoICRTdWNjZXNzICkgewogICAgICAgICAgICBmb3IgbXkgJElEICgga2V5cyAlRW50cmllcyAp
IHsKICAgICAgICAgICAgICAgIG15ICRGYWtlQWN0aW9uID0gc3ByaW50ZiAnQWdlbnRUaWNrZXRR
dWlja0Nsb3NlXyVzJywgJEVudHJpZXN7JElEfTsKICAgICAgICAgICAgICAgIGRlbGV0ZSAkRW50
cmllc3skSUR9IGlmICEkQWxsb3dlZEFjdGlvbnN7JEZha2VBY3Rpb259OwogICAgICAgICAgICB9
CiAgICAgICAgfQoKICAgICAgICBuZXh0IEdST1VQIGlmICElRW50cmllczsKCiAgICAgICAgbXkg
QEluZGV4ZXMgPSBzb3J0eyAkRW50cmllc3skYX0gY21wICRFbnRyaWVzeyRifSB9a2V5cyAlRW50
cmllczsKICAgICAgICBteSBARGF0YSAgICA9IG1hcHsgeyBLZXkgPT4gJF8sIFZhbHVlID0+ICRF
bnRyaWVzeyRffSB9IH1ASW5kZXhlczsKCiAgICAgICAgbXkgJExhYmVsICAgPSAkTGFiZWxzLT57
JEdyb3VwfSB8fCAkQ29uZmlnLT57Tm9uZUxhYmVsfSB8fCAnUXVpY2tDbG9zZSc7CgogICAgICAg
IHVuc2hpZnQgQERhdGEsIHsKICAgICAgICAgICAgS2V5ICAgPT4gJzAnLAogICAgICAgICAgICBW
YWx1ZSA9PiAiLSAkTGFiZWwgLSIsCiAgICAgICAgfTsKCiAgICAgICAgbXkgJFNlbGVjdCA9ICRM
YXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgICAgICBEYXRhICAgICAgICAgPT4g
XEBEYXRhLAogICAgICAgICAgICBOYW1lICAgICAgICAgPT4gJ1F1aWNrQ2xvc2UnLAogICAgICAg
ICAgICBJRCAgICAgICAgICAgPT4gJ1F1aWNrQ2xvc2UnIC4gJEdyb3VwLAogICAgICAgICAgICBT
aXplICAgICAgICAgPT4gMSwKICAgICAgICAgICAgSFRNTFF1b3RlICAgID0+IDEsCiAgICAgICAg
ICAgIENsYXNzICAgICAgICA9PiAnUXVpY2tDbG9zZVNlbGVjdCBNb2Rlcm5pemUgU21hbGwnLAog
ICAgICAgICk7CgogICAgICAgICREcm9wZG93bnMgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAog
ICAgICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ1F1aWNrQ2xvc2VTbmlwcGV0JywKICAgICAgICAg
ICAgRGF0YSAgICAgICAgID0+IHsKICAgICAgICAgICAgICAgIFRpY2tldElEICAgICAgICAgPT4g
JFRpY2tldElELAogICAgICAgICAgICAgICAgUXVpY2tDbG9zZVNlbGVjdCA9PiAkU2VsZWN0LAog
ICAgICAgICAgICAgICAgRm9ybUlEICAgICAgICAgICA9PiAkRm9ybUlELAogICAgICAgICAgICB9
LAogICAgICAgICk7CiAgICB9CgogICAgI3NjYW4gaHRtbCBvdXRwdXQgYW5kIGdlbmVyYXRlIG5l
dyBodG1sIGlucHV0CiAgICBteSAkTGlua1R5cGUgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpY2tl
dDo6RnJvbnRlbmQ6Ok1vdmVUeXBlJyk7CiAgICBpZiAoICRMaW5rVHlwZSBlcSAnZm9ybScgKSB7
CiAgICAgICAgJHsgJFBhcmFte0RhdGF9IH0gPX4gc3soPHNlbGVjdCBuYW1lPSJEZXN0UXVldWVJ
RCIuKj88L2xpPil9eyQxICREcm9wZG93bnN9bWdzOwogICAgfQogICAgZWxzZSB7CiAgICAgICAg
JHsgJFBhcmFte0RhdGF9IH0gPX4gc3soPGEgaHJlZj0iLio/QWN0aW9uPUFnZW50VGlja2V0TW92
ZTtUaWNrZXRJRD1cZCs7Ii4qPzwvbGk+KX17JDEgJERyb3Bkb3duc31tZ3M7CiAgICB9CgogICAg
cmV0dXJuIDE7Cn0KCjE7Cg==
IyAtLQojIEtlcm5lbC9PdXRwdXQvSFRNTC9GaWx0ZXJFbGVtZW50UG9zdC9DbG9zZVRpY2tldFZp
ZXcucG0KIyBDb3B5cmlnaHQgKEMpIDIwMTEgLSAyMDE1IFBlcmwtU2VydmljZXMuZGUsIGh0dHA6
Ly93d3cucGVybC1zZXJ2aWNlcy5kZS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBB
QlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZp
bGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBu
b3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdw
bC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkZpbHRlckVsZW1lbnRQ
b3N0OjpDbG9zZVRpY2tldFZpZXc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2Vy
bmVsOjpTeXN0ZW06OkVuY29kZTsKdXNlIEtlcm5lbDo6U3lzdGVtOjpUaW1lOwp1c2UgS2VybmVs
OjpTeXN0ZW06OlF1aWNrQ2xvc2U7CnVzZSBLZXJuZWw6OlN5c3RlbTo6V2ViOjpVcGxvYWRDYWNo
ZTsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gcXcoCiAgICBLZXJuZWw6OkNvbmZpZwogICAg
S2VybmVsOjpTeXN0ZW06OkVuY29kZQogICAgS2VybmVsOjpTeXN0ZW06OkxvZwogICAgS2VybmVs
OjpTeXN0ZW06Ok1haW4KICAgIEtlcm5lbDo6U3lzdGVtOjpUaW1lCiAgICBLZXJuZWw6OlN5c3Rl
bTo6R3JvdXAKICAgIEtlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQKICAgIEtlcm5lbDo6U3lz
dGVtOjpRdWlja0Nsb3NlCiAgICBLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0CiAgICBLZXJu
ZWw6OlN5c3RlbTo6V2ViOjpVcGxvYWRDYWNoZQopOwoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBl
LCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAg
bXkgJFNlbGYgPSB7fTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICByZXR1cm4gJFNl
bGY7Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAk
VXBsb2FkQ2FjaGVPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2Vi
OjpVcGxvYWRDYWNoZScpOwogICAgbXkgJFF1aWNrQ2xvc2VPYmplY3QgID0gJEtlcm5lbDo6T00t
PkdldCgnS2VybmVsOjpTeXN0ZW06OlF1aWNrQ2xvc2UnKTsKICAgIG15ICRDb25maWdPYmplY3Qg
ICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CiAgICBteSAkTGF5b3V0
T2JqZWN0ICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5
b3V0Jyk7CiAgICBteSAkR3JvdXBPYmplY3QgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJu
ZWw6OlN5c3RlbTo6R3JvdXAnKTsKCiAgICAjIGdldCB0ZW1wbGF0ZSBuYW1lCiAgICBteSAkVGVt
cGxhdGVuYW1lID0gJFBhcmFte1RlbXBsYXRlRmlsZX0gfHwgJyc7CiAgICByZXR1cm4gMSBpZiAh
JFRlbXBsYXRlbmFtZTsKCiAgICBpZiAoICRUZW1wbGF0ZW5hbWUgID1+IG17QWdlbnRUaWNrZXRP
dmVydmlldyg/OlNtYWxsfE1lZGl1bXxQcmV2aWV3KVx6fSApIHsKICAgICAgICBteSBAVXNlclJv
bGVzID0gJEdyb3VwT2JqZWN0LT5Hcm91cFVzZXJSb2xlTWVtYmVyTGlzdCgKICAgICAgICAgICAg
VXNlcklEID0+ICRMYXlvdXRPYmplY3QtPntVc2VySUR9LAogICAgICAgICAgICBSZXN1bHQgPT4g
J0lEJywKICAgICAgICApOwoKICAgICAgICBteSAkRm9ybUlEID0gJFVwbG9hZENhY2hlT2JqZWN0
LT5Gb3JtSURDcmVhdGUoKTsKICAgICAgICBteSAlTGlzdCAgID0gJFF1aWNrQ2xvc2VPYmplY3Qt
PlF1aWNrQ2xvc2VMaXN0KAogICAgICAgICAgICBWYWxpZCAgID0+IDEsCiAgICAgICAgICAgIEdy
b3VwQnkgPT4gMSwKICAgICAgICAgICAgUGVybWlzc2lvbiA9PiB7CiAgICAgICAgICAgICAgICBS
b2xlSUQgPT4gXEBVc2VyUm9sZXMsCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKCiAgICAgICAg
bXkgJENvbmZpZyAgICA9ICRDb25maWdPYmplY3QtPkdldCgnUXVpY2tDbG9zZScpIHx8IHt9Owog
ICAgICAgIG15ICRMYWJlbHMgICAgPSAkQ29uZmlnT2JqZWN0LT5HZXQoICdRdWlja0Nsb3NlOjpM
YWJlbHMnICkgfHwge307CiAgICAgICAgbXkgJERyb3Bkb3ducyA9ICcnOwogICAgICAgIG15ICRV
c2VHcm91cHMgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1F1aWNrQ2xvc2U6OlVzZUdyb3VwcycpOwoK
ICAgICAgICBpZiAoICEkVXNlR3JvdXBzICkgewogICAgICAgICAgICBteSAlVG1wID0gJUxpc3Q7
CgogICAgICAgICAgICAlTGlzdCA9ICggJycgPT4gXCVUbXAgKTsKICAgICAgICB9CgogICAgICAg
IGZvciBteSAkR3JvdXAgKCBzb3J0IHsgJGEgY21wICRiIH0ga2V5cyAlTGlzdCApIHsKICAgICAg
ICAgICAgbXkgJUVudHJpZXMgPSAleyAkTGlzdHskR3JvdXB9IH07CiAgICAgICAgICAgIG15IEBJ
bmRleGVzID0gc29ydHsgJEVudHJpZXN7JGF9IGNtcCAkRW50cmllc3skYn0gfWtleXMgJUVudHJp
ZXM7CiAgICAgICAgICAgIG15IEBEYXRhICAgID0gbWFweyB7IEtleSA9PiAkXywgVmFsdWUgPT4g
JEVudHJpZXN7JF99IH0gfUBJbmRleGVzOwoKICAgICAgICAgICAgbXkgJExhYmVsICAgPSAkTGFi
ZWxzLT57JEdyb3VwfSB8fCAkQ29uZmlnLT57Tm9uZUxhYmVsfSB8fCAnUXVpY2tDbG9zZSc7Cgog
ICAgICAgICAgICB1bnNoaWZ0IEBEYXRhLCB7CiAgICAgICAgICAgICAgICBLZXkgICA9PiAnMCcs
CiAgICAgICAgICAgICAgICBWYWx1ZSA9PiAiLSAkTGFiZWwgLSIsCiAgICAgICAgICAgIH07Cgog
ICAgICAgICAgICBteSAkU2VsZWN0ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAg
ICAgICAgICAgICAgICBEYXRhICAgICAgICAgPT4gXEBEYXRhLAogICAgICAgICAgICAgICAgTmFt
ZSAgICAgICAgID0+ICdRdWlja0Nsb3NlJywKICAgICAgICAgICAgICAgIElEICAgICAgICAgICA9
PiAnUXVpY2tDbG9zZScgLiAkR3JvdXAsCiAgICAgICAgICAgICAgICBTaXplICAgICAgICAgPT4g
MSwKICAgICAgICAgICAgICAgIEhUTUxRdW90ZSAgICA9PiAxLAogICAgICAgICAgICAgICAgQ2xh
c3MgICAgICAgID0+ICdRdWlja0Nsb3NlU2VsZWN0IE1vZGVybml6ZScsCiAgICAgICAgICAgICk7
CgogICAgICAgICAgICAkRHJvcGRvd25zIC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAg
ICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnUXVpY2tDbG9zZVNuaXBwZXRUaWNrZXRWaWV3JywK
ICAgICAgICAgICAgICAgIERhdGEgICAgICAgICA9PiB7CiAgICAgICAgICAgICAgICAgICAgUXVp
Y2tDbG9zZVNlbGVjdCA9PiAkU2VsZWN0LAogICAgICAgICAgICAgICAgICAgIEZvcm1JRCAgICAg
ICAgICAgPT4gJEZvcm1JRCwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICk7IAogICAg
ICAgIH0KCiAgICAgICAgI3NjYW4gaHRtbCBvdXRwdXQgYW5kIGdlbmVyYXRlIG5ldyBodG1sIGlu
cHV0CiAgICAgICAgJHsgJFBhcmFte0RhdGF9IH0gPX4gc3soPHVsIFxzKyBjbGFzcz0iQWN0aW9u
cyI+IFxzKiA8bGkgLio/IC9saT4pXEt9eyRTZWxmLT5fSW5zZXJ0RHJvcGRvd24oICREcm9wZG93
bnMsICQxKX14bWdzZTsKICAgIH0KCiAgICByZXR1cm4gMTsKfQoKc3ViIF9JbnNlcnREcm9wZG93
biB7CiAgICBteSAoJFNlbGYsICREcm9wZG93biwgJEFjdGlvbnMpID0gQF87CgogICAgcmV0dXJu
ICREcm9wZG93biBpZiAkQWN0aW9ucyAhfiBte1RpY2tldElEPShcZCspfTsKCiAgICBteSAkVGlj
a2V0SUQgPSAkMTsKCiAgICBteSAkQ29weSA9ICREcm9wZG93bjsKICAgICRDb3B5ID1+IHN7PHNl
bGVjdCBcS317ZGF0YS10aWNrZXQtaWQ9IiRUaWNrZXRJRCIgfTsKICAgICRDb3B5ID1+IHN7aWQ9
IlF1aWNrQ2xvc2VcS317LSRUaWNrZXRJRCB9OwoKICAgIHJldHVybiAkQ29weTsKfQoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAxMSAtIDIwMTcgUGVybC1TZXJ2aWNlcy5kZSwgaHR0cDov
L3d3dy5wZXJsLXNlcnZpY2VzLmRlCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJT
T0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxl
IENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90
IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwu
dHh0LgojIC0tCgpbJSBJbnNlcnRUZW1wbGF0ZSgiQWRtaW5RdWlja0Nsb3NlVXNlclNlYXJjaC50
dCIpICVdCgo8ZGl2IGNsYXNzPSJNYWluQm94IEFSSUFSb2xlTWFpbiBMYXlvdXRGaXhlZFNpZGVi
YXIgU2lkZWJhckZpcnN0Ij4KICAgIDxoMT5bJSBUcmFuc2xhdGUoIlF1aWNrQ2xvc2UgTWFuYWdl
bWVudCIpIHwgaHRtbCAlXTwvaDE+CiAgICA8ZGl2IGNsYXNzPSJTaWRlYmFyQ29sdW1uIj4KICAg
ICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJI
ZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiQWN0aW9ucyIpIHwgaHRt
bCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250
ZW50Ij4KICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iQWN0aW9uTGlzdCI+CiAgICAgICAgICAg
ICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJh
c2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXSIgY2xhc3M9IkNhbGxGb3JBY3Rp
b24gRnVsbHNpemUgQ2VudGVyIj48c3Bhbj48aSBjbGFzcz0iZmEgZmEtY2FyZXQtbGVmdCI+PC9p
PlslIFRyYW5zbGF0ZSgiR28gdG8gb3ZlcnZpZXciKSB8IGh0bWwgJV08L3NwYW4+PC9hPgogICAg
ICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICA8
L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9IkNvbnRlbnRD
b2x1bW4iPgogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxk
aXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJBZGQv
Q2hhbmdlIFF1aWNrQ2xvc2UgdGV4dHMiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rp
dj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8Zm9y
bSBhY3Rpb249IlslIEVudigiQ0dJSGFuZGxlIikgJV0iIG1ldGhvZD0icG9zdCIgY2xhc3M9IlZh
bGlkYXRlIj4KCiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0i
QWN0aW9uIiB2YWx1ZT0iWyUgRW52KCJBY3Rpb24iKSAlXSIvPgogICAgICAgICAgICAgICAgICAg
IDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IlslIERhdGEuU3Vi
YWN0aW9uIHwgaHRtbCAlXSIvPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRk
ZW4iIG5hbWU9IklEIiB2YWx1ZT0iWyUgRGF0YS5JRCB8IGh0bWwgJV0iLz4KCiAgICAgICAgICAg
ICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPSJUYWJsZUxpa2UiPgogICAgICAgICAgICAgICAgICAg
ICAgICA8bGFiZWwgZm9yPSJOYW1lIiBjbGFzcz0iTWFuZGF0b3J5Ij4KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIk5hbWUiKSB8IGh0bWwgJV06CiAgICAgICAgICAg
ICAgICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9
IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBp
ZD0iTmFtZSIgbmFtZT0iTmFtZSIgdmFsdWU9IlslIERhdGEuTmFtZSB8IGh0bWwgJV0iIGNsYXNz
PSJXNzVwYyBWYWxpZGF0ZV9SZXF1aXJlZCBbJSBEYXRhLk5hbWVJbnZhbGlkIHwgaHRtbCAlXSIv
PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iTmFtZUVycm9yIiBjbGFzcz0i
VG9vbHRpcEVycm9yTWVzc2FnZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+
WyUgVHJhbnNsYXRlKCJBIG5hbWUgZm9yIHRoZSBRdWlja0Nsb3NlIHRleHQgaXMgcmVxdWlyZWQu
IikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJOYW1lU2VydmVyRXJyb3IiIGNsYXNzPSJU
b29sdGlwRXJyb3JNZXNzYWdlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5b
JSBUcmFuc2xhdGUoIkEgbmFtZSBmb3IgdGhlIFF1aWNrQ2xvc2UgdGV4dCBpcyByZXF1aXJlZC4i
KSB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAg
ICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xh
c3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IlJv
bGVJRCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlJvbGUiKSB8
IGh0bWwgJV06CiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgICAgICAg
ICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFslIERhdGEuUm9sZVNlbGVjdCAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAg
ICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAg
ICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iR3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgWyUgVHJhbnNsYXRlKCJHcm91cCIpIHwgaHRtbCAlXToKICAgICAgICAgICAgICAgICAg
ICAgICAgPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQi
PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJHcm91
cCIgbmFtZT0iR3JvdXAiIHZhbHVlPSJbJSBEYXRhLkdyb3VwIHwgaHRtbCAlXSIgY2xhc3M9Ilc3
NXBjIiAvPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAg
ICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAg
PGxhYmVsIGZvcj0iVG9UeXBlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5z
bGF0ZSgiVG8iKSB8IGh0bWwgJV06CiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+CiAg
ICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFslIERhdGEuVG9UeXBlU2VsZWN0ICVdCiAgICAgICAgICAgICAgICAgICAg
ICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9k
aXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJUb0FkZHJlc3MiPgogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJUbyBBZGRyZXNzIikgfCBodG1s
ICVdOgogICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPgogICAgICAgICAgICAgICAgICAg
ICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5w
dXQgdHlwZT0idGV4dCIgaWQ9IlRvQWRkcmVzcyIgbmFtZT0iVG9BZGRyZXNzIiB2YWx1ZT0iWyUg
RGF0YS5Ub0FkZHJlc3MgfCBodG1sICVdIiBjbGFzcz0iVzc1cGMiIC8+CiAgICAgICAgICAgICAg
ICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVh
ciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJDcmVhdGVBcnRp
Y2xlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiQ3JlYXRlIEFy
dGljbGUiKSB8IGh0bWwgJV06CiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+CiAgICAg
ICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9IkNyZWF0ZUFydGljbGUiIG5hbWU9
IkNyZWF0ZUFydGljbGUiIHZhbHVlPSIxIiBbJSBJRiBEYXRhLkNyZWF0ZUFydGljbGUgJV1jaGVj
a2VkPSJjaGVja2VkIlslIEVORCAlXSBjbGFzcz0iIiAvPgogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZWQiPlslIFRyYW5zbGF0ZSgiQ2hlY2sgdGhpcyB3
aGVuIHlvdSB3YW50IHRvIGNyZWF0ZSBhbiBhcnRpY2xlIikgJV08L3NwYW4+CiAgICAgICAgICAg
ICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJD
bGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJBcnRpY2xlRmll
bGRzIiBjbGFzcz0iSGlkZGVuIFRhYmxlTGlrZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxm
aWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVs
IGZvcj0iU3ViamVjdCIgY2xhc3M9Ik1hbmRhdG9yeSI+CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA8c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgWyUgVHJhbnNsYXRlKCJTdWJqZWN0IikgfCBodG1sICVdOgogICAgICAgICAgICAgICAg
ICAgICAgICA8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVs
ZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9IlN1
YmplY3QiIG5hbWU9IlN1YmplY3QiIHZhbHVlPSJbJSBEYXRhLlN1YmplY3QgfCBodG1sICVdIiBj
bGFzcz0iVzc1cGMiIC8+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iU3Vi
amVjdEVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJBIHN1YmplY3QgdGV4dCBpcyByZXF1aXJl
ZC4iKSB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlN1YmplY3RTZXJ2ZXJFcnJvciIgY2xh
c3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDxwPlslIFRyYW5zbGF0ZSgiQSBzdWJqZWN0IHRleHQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVd
PC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAg
ICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+
PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJSaWNoVGV4dCIgY2xh
c3M9Ik1hbmRhdG9yeSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0i
TWFya2VyIj4qPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRl
KCJCb2R5IikgfCBodG1sICVdOgogICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPgogICAg
ICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJSaWNoVGV4dEZpZWxkIj4KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDx0ZXh0YXJlYSBpZD0iUmljaFRleHQiIG5hbWU9IkJvZHkiIGNs
YXNzPSJXNzVwYyBSaWNoVGV4dCBbJSBEYXRhLkJvZHlJbnZhbGlkIHwgaHRtbCAlXSIgcm93cz0i
MTUiIGNvbHM9IlslIENvbmZpZygiVGlja2V0OjpGcm9udGVuZDo6VGV4dEFyZWFOb3RlIikgJV0i
PlslIERhdGEuQm9keSB8IGh0bWwgJV08L3RleHRhcmVhPgogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPGRpdiBpZD0iUmljaFRleHRFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2Ui
PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiQSBib2R5
IHRleHQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJCb2R5U2Vy
dmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj4KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIkEgYm9keSB0ZXh0IGlzIHJlcXVpcmVkLiIp
IHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAg
ICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFz
cz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iVGlt
ZVVuaXRzIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiVGltZSB1
bml0cyIpIHwgaHRtbCAlXToKICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD4KICAgICAg
ICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9IlRpbWVVbml0cyIgaWQ9IlRpbWVVbml0
cyIgdmFsdWU9IlslIERhdGEuVGltZVVuaXRzIHwgaHRtbCAlXSIgLz4KICAgICAgICAgICAgICAg
ICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFy
Ij48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IkFydGljbGVUeXBl
IiBjbGFzcz0iTWFuZGF0b3J5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNs
YXNzPSJNYXJrZXIiPio8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFu
c2xhdGUoIkFydGljbGUgVHlwZSIpIHwgaHRtbCAlXToKICAgICAgICAgICAgICAgICAgICAgICAg
PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5BcnRpY2xlVHlwZVNlbGVjdCAlXQogICAg
ICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBj
bGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0i
QXJ0aWNsZUN1c3RvbWVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0
ZSgiQXJ0aWNsZSB2aWV3YWJsZSBmb3IgQ3VzdG9tZXIiKSB8IGh0bWwgJV06CiAgICAgICAgICAg
ICAgICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9
IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJjaGVja2Jv
eCIgbmFtZT0iQXJ0aWNsZUN1c3RvbWVyIiBbJSBEYXRhLkN1c3RvbWVyU2VsZWN0ZWQgJV0gdmFs
dWU9IjEiPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAg
ICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAg
PC9maWVsZHNldD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAg
ICAgICAgICAgICA8bGFiZWwgZm9yPSJTdGF0ZUlEIj4KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFslIFRyYW5zbGF0ZSgiU3RhdGUgYWZ0ZXIgY2xvc2UiKSB8IGh0bWwgJV06CiAgICAgICAg
ICAgICAgICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xh
c3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuU3RhdGVTZWxl
Y3QgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAg
ICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxs
YWJlbCBmb3I9IlBlbmRpbmdEaWZmIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRy
YW5zbGF0ZSgiUGVuZGluZyBEaWZmIChpbiBtaW51dGVzKSIpIHwgaHRtbCAlXToKICAgICAgICAg
ICAgICAgICAgICAgICAgPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFz
cz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQi
IG5hbWU9IlBlbmRpbmdEaWZmIiBpZD0iUGVuZGluZ0RpZmYiIHZhbHVlPSJbJSBEYXRhLlBlbmRp
bmdEaWZmIHwgaHRtbCAlXSIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAg
ICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAg
ICAgICAgICAgICAgIDxsYWJlbCBmb3I9IkZpeEhvdXIiPgogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgWyUgVHJhbnNsYXRlKCJGaXggSG91cjpNaW51dGUgZm9yIHBlbmRpbmcgdGltZSIpIHwg
aHRtbCAlXToKICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD4KICAgICAgICAgICAgICAg
ICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAg
PGlucHV0IHR5cGU9InRleHQiIG5hbWU9IkZpeEhvdXIiIGlkPSJGaXhIb3VyIiB2YWx1ZT0iWyUg
RGF0YS5GaXhIb3VyIHwgaHRtbCAlXSIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+
CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAg
ICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IlByaW9yaXR5SUQiPgogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJQcmlvcml0eSIpIHwgaHRtbCAlXToKICAgICAg
ICAgICAgICAgICAgICAgICAgPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBj
bGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5Qcmlvcml0
eVNlbGVjdCAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAg
ICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAg
ICAgPGxhYmVsIGZvcj0iT3duZXIiPiBbJSBUcmFuc2xhdGUoIk93bmVyIikgfCBodG1sICVdOiA8
L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9Ik93bmVyIiBuYW1lPSJPd25lciIgdHlw
ZT0idGV4dCIgdmFsdWU9IlslIERhdGEuT3duZXIgfCBodG1sICVdIiBjbGFzcz0iVzc1cGMgWyUg
RGF0YS5Pd25lckVycm9yICVdIiAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0
IGlkPSJPd25lclNlbGVjdGVkIiBuYW1lPSJPd25lclNlbGVjdGVkIiB0eXBlPSJoaWRkZW4iIHZh
bHVlPSJbJSBEYXRhLk93bmVySUQgfCBodG1sICVdIiAvPgogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPGlucHV0IGlkPSJPd25lclR5cGUiIG5hbWU9Ik93bmVyVHlwZSIgdHlwZT0iaGlkZGVu
IiB2YWx1ZT0iWyUgRGF0YS5Pd25lclR5cGUgfCBodG1sICVdIiAvPgoKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDxkaXYgaWQ9Ik93bmVySURTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBF
cnJvck1lc3NhZ2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5z
bGF0ZSgiSW52YWxpZCBVc2VyLiIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAg
ICAgICAgICAgICAgIDxkaXYgaWQ9IlVzZXJTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJv
ck1lc3NhZ2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJJ
bnZhbGlkIFVzZXIuIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rp
dj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IlJlc3BvbnNpYmxlIj4gWyUg
VHJhbnNsYXRlKCJSZXNwb25zaWJsZSIpIHwgaHRtbCAlXTogPC9sYWJlbD4KICAgICAgICAgICAg
ICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPGlucHV0IGlkPSJSZXNwb25zaWJsZSIgbmFtZT0iUmVzcG9uc2libGUiIHR5cGU9InRleHQi
IHZhbHVlPSJbJSBEYXRhLlJlc3BvbnNpYmxlIHwgaHRtbCAlXSIgY2xhc3M9Ilc3NXBjIFslIERh
dGEuUmVzcG9uc2libGVFcnJvciAlXSIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxp
bnB1dCBpZD0iUmVzcG9uc2libGVTZWxlY3RlZCIgbmFtZT0iUmVzcG9uc2libGVTZWxlY3RlZCIg
dHlwZT0iaGlkZGVuIiB2YWx1ZT0iWyUgRGF0YS5SZXNwb25zaWJsZUlEIHwgaHRtbCAlXSIgLz4K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD0iUmVzcG9uc2libGVUeXBlIiBu
YW1lPSJSZXNwb25zaWJsZVR5cGUiIHR5cGU9ImhpZGRlbiIgdmFsdWU9IlslIERhdGEuUmVzcG9u
c2libGVUeXBlIHwgaHRtbCAlXSIgLz4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2
IGlkPSJSZXNwb25zaWJsZUlEU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdl
Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIkludmFs
aWQgVXNlci4iKSB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rp
dj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAg
ICA8ZGl2IGlkPSJSZXNwb25zaWJsZVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVz
c2FnZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIkludmFs
aWQgVXNlci4iKSB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoK
ICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iRm9yY2VDdXJyZW50VXNlckFzT3du
ZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJBY3RpbmcgdXNl
ciBzaG91bGQgYmVjb21lIHRpY2tldCBvd25lciIpIHwgaHRtbCAlXToKICAgICAgICAgICAgICAg
ICAgICAgICAgPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmll
bGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiB2
YWx1ZT0iMSIgbmFtZT0iRm9yY2VDdXJyZW50VXNlckFzT3duZXIiIGlkPSJGb3JjZUN1cnJlbnRV
c2VyQXNPd25lciIgWyUgRGF0YS5Gb3JjZVNlbGVjdGVkICVdIC8+CiAgICAgICAgICAgICAgICAg
ICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+
PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJBc3NpZ25Ub1Jlc3Bv
bnNpYmxlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiUmVzcG9u
c2libGUgc2hvdWxkIGJlY29tZSB0aWNrZXQgb3duZXIiKSB8IGh0bWwgJV06CiAgICAgICAgICAg
ICAgICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9
IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJjaGVja2Jv
eCIgdmFsdWU9IjEiIG5hbWU9IkFzc2lnblRvUmVzcG9uc2libGUiIGlkPSJBc3NpZ25Ub1Jlc3Bv
bnNpYmxlIiBbJSBEYXRhLlJlc3BvbnNpYmxlU2VsZWN0ZWQgJV0gLz4KICAgICAgICAgICAgICAg
ICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFy
Ij48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IlVubG9jayI+CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlVubG9jayBUaWNrZXQiKSB8
IGh0bWwgJV0gPGJyIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUo
IlRpY2tldHMgYXJlIHVubG9ja2VkIGF1dG9tYXRpY2FsbHkgb24gJ2Nsb3NlZCcgc3RhdGVzIikg
fCBodG1sICVdOgogICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPgogICAgICAgICAgICAg
ICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBbJSBEYXRhLlVubG9ja1NlbGVjdCAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4K
ICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAg
ICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iVmFsaWRJRCIgY2xhc3M9Ik1hbmRhdG9yeSI+
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFu
PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJWYWxpZGl0eSIpIHwg
aHRtbCAlXToKICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD4KICAgICAgICAgICAgICAg
ICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAg
WyUgRGF0YS5WYWxpZFNlbGVjdCAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAg
ICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAg
ICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iUXVldWVJRCI+CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBbJSBUcmFuc2xhdGUoIlF1ZXVlIikgfCBodG1sICVdOgogICAgICAgICAgICAgICAg
ICAgICAgICA8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVs
ZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlF1ZXVlU2VsZWN0ICVdCiAg
ICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2
IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9y
PSJTaG93VGlja2V0Wm9vbSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xh
dGUoIlNob3cgdGlja2V0IFpvb20gYWZ0ZXIgUXVpY2tDbG9zZSIpIHwgaHRtbCAlXToKICAgICAg
ICAgICAgICAgICAgICAgICAgPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBj
bGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImNo
ZWNrYm94IiB2YWx1ZT0iMSIgbmFtZT0iU2hvd1RpY2tldFpvb20iIGlkPSJTaG93VGlja2V0Wm9v
bSIgWyUgRGF0YS5ab29tU2VsZWN0ZWQgJV0gLz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9k
aXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAg
ICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9IlByaW1hcnkgQ2FsbEZvckFjdGlvbiIgdHlwZT0i
c3VibWl0IiB2YWx1ZT0iWyUgVHJhbnNsYXRlKCJTYXZlIikgfCBodG1sICVdIj48c3Bhbj5bJSBU
cmFuc2xhdGUoIlNhdmUiKSB8IGh0bWwgJV08L3NwYW4+PC9idXR0b24+CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIm9yIikgfCBodG1sICVdCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52
KCJBY3Rpb24iKSAlXSI+WyUgVHJhbnNsYXRlKCJDYW5jZWwiKSB8IGh0bWwgJV08L2E+CiAgICAg
ICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNs
YXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD4KICAgICAg
ICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8
L2Rpdj4KICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KPC9kaXY+Cg==
IyAtLQojIEFkbWluUXVpY2tDbG9zZUxpc3QudHQgLSBwcm92aWRlcyBIVE1MIGZvcm0gZm9yIEFk
bWluUXVpY2tDbG9zZUxpc3QKIyBDb3B5cmlnaHQgKEMpIDIwMTEgUGVybC1TZXJ2aWNlcy5kZSwg
aHR0cDovL3d3dy5wZXJsLXNlcnZpY2VzLmRlCiMgLS0KIyAkSWQ6IEFkbWluUXVpY2tDbG9zZUxp
c3QuZHRsLHYgMS4xLjEuMSAyMDExLzA0LzE1IDA3OjQ5OjU4IHJiIEV4cCAkCiMgLS0KIyBUaGlz
IHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMs
IHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24g
KEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3
dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgojIC0tCgo8ZGl2IGNsYXNzPSJNYWluQm94IEFS
SUFSb2xlTWFpbiBMYXlvdXRGaXhlZFNpZGViYXIgU2lkZWJhckZpcnN0Ij4KICAgIDxoMT5bJSBU
cmFuc2xhdGUoIlF1aWNrQ2xvc2UgTWFuYWdlbWVudCIpIHwgaHRtbCAlXTwvaDE+CiAgICA8ZGl2
IGNsYXNzPSJTaWRlYmFyQ29sdW1uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUi
PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlsl
IFRyYW5zbGF0ZSgiQWN0aW9ucyIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2Pgog
ICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIDx1bCBjbGFz
cz0iQWN0aW9uTGlzdCI+CiAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAg
ICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rp
b24iKSAlXTtTdWJhY3Rpb249QWRkIiBjbGFzcz0iQ2FsbEZvckFjdGlvbiBGdWxsc2l6ZSBDZW50
ZXIgQ3JlYXRlIj48c3Bhbj48aSBjbGFzcz0iZmEgZmEtcGx1cy1zcXVhcmUiPjwvaT5bJSBUcmFu
c2xhdGUoIkFkZCB0ZXh0IikgfCBodG1sICVdPC9zcGFuPjwvYT4KICAgICAgICAgICAgICAgICAg
ICA8L2xpPgogICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAg
PC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJDb250ZW50Q29sdW1uIj4KICAgICAg
ICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFk
ZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiTGlzdCIpIHwgaHRtbCAlXTwv
aDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4K
ICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0iRGF0YVRhYmxlIiBpZD0iUXVpY2tDbG9zZSI+
CiAgICAgICAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICA8dHI+
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJOYW1lIikgfCBo
dG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUo
IlN0YXRlIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5b
JSBUcmFuc2xhdGUoIlZhbGlkIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIkRhdGUiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiQXV0aG9yIikgfCBodG1sICVdPC90
aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIkFjdGlvbiIp
IHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAg
ICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICAgICAgICA8dGJvZHk+ClslIFJlbmRlckJs
b2NrU3RhcnQoIk5vUXVpY2tDbG9zZUZvdW5kIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAg
PHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNvbHNwYW49IjciPlslIFRyYW5z
bGF0ZSgiTm8gbWF0Y2hlcyBmb3VuZC4iKSB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAg
ICAgICAgICA8L3RyPgpbJSBSZW5kZXJCbG9ja0VuZCgiTm9RdWlja0Nsb3NlRm91bmQiKSAlXQpb
JSBSZW5kZXJCbG9ja1N0YXJ0KCJRdWlja0Nsb3NlUm93IikgJV0KICAgICAgICAgICAgICAgICAg
ICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFslIERhdGEuTmFtZSB8IGh0bWwgJV0KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKERhdGEuU3RhdGUpIHwgaHRt
bCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xh
dGUoRGF0YS5WYWxpZCkgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3Rk
PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFslIERhdGEuQ3JlYXRlVGltZSB8IExvY2FsaXplKCJUaW1lU2hvcnQiKSAlXQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLkF1dGhvciB8
IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJl
Zj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPUFkbWluUXVpY2tDbG9zZTtTdWJhY3Rpb249
RWRpdDtJRD1bJSBEYXRhLklEIHwgdXJpICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBbJSBUcmFuc2xhdGUoImVkaXQiKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA8L2E+IHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVm
PSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249QWRtaW5RdWlja0Nsb3NlO1N1YmFjdGlvbj1E
ZWxldGU7SUQ9WyUgRGF0YS5JRCB8IHVyaSAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgWyUgVHJhbnNsYXRlKCJkZWxldGUiKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAg
ICAgICAgICAgICAgICAgICAgICA8L3RyPgpbJSBSZW5kZXJCbG9ja0VuZCgiUXVpY2tDbG9zZVJv
dyIpICVdCiAgICAgICAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgICAgIDwvdGFi
bGU+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2
IGNsYXNzPSJDbGVhciI+PC9kaXY+CjwvZGl2Pgo=
IyAtLQojIEFkbWluUXVpY2tDbG9zZVVzZXJTZWFyY2gudHQgLSBwcm92aWRlcyBhdXRvY29tcGxl
dGUgZmVhdHVyZSBmb3IgY3VzdG9tZXIgc2VhcmNoCiMgQ29weXJpZ2h0IChDKSAyMDEyIFBlcmwt
U2VydmljZXMuZGUsIGh0dHA6Ly9wZXJsLXNlcnZpY2VzLmRlCiMgLS0KIyAkSWQ6IEFkbWluUXVp
Y2tDbG9zZVVzZXJTZWFyY2guZHRsLHYgMS4xMiAyMDEwLzEyLzIwIDE3OjU2OjQ0IGR6IEV4cCAk
CiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4g
Rm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2Ug
aW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBz
ZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgojIC0tCgpbJSBSZW5kZXJC
bG9ja1N0YXJ0KCJVc2VyU2VhcmNoQXV0b0NvbXBsZXRlIikgJV0KWyUgV1JBUFBFUiBKU09uRG9j
dW1lbnRDb21wbGV0ZSAlXQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ly88IVtDREFU
QVsKICAgIENvcmUuQ29uZmlnLlNldCgnVXNlckF1dG9jb21wbGV0ZS5NaW5RdWVyeUxlbmd0aCcs
ICJbJSBEYXRhLm1pblF1ZXJ5TGVuZ3RoIHwgaHRtbCAlXSIpOwogICAgQ29yZS5Db25maWcuU2V0
KCdVc2VyQXV0b2NvbXBsZXRlLlF1ZXJ5RGVsYXknLCAiWyUgRGF0YS5xdWVyeURlbGF5IHwgaHRt
bCAlXSIpOwogICAgQ29yZS5Db25maWcuU2V0KCdVc2VyQXV0b2NvbXBsZXRlLk1heFJlc3VsdHNE
aXNwbGF5ZWQnLCAiWyUgRGF0YS5tYXhSZXN1bHRzRGlzcGxheWVkIHwgaHRtbCAlXSIpOwogICAg
Q29yZS5Db25maWcuU2V0KCdVc2VyQXV0b2NvbXBsZXRlLkR5bmFtaWNXaWR0aCcsICJbJSBEYXRh
LmR5bmFtaWNXaWR0aCB8IGh0bWwgJV0iKTsKICAgIENvcmUuQ29uZmlnLlNldCgnVXNlckF1dG9j
b21wbGV0ZS5TZWFyY2hCdXR0b25UZXh0JywgWyUgVHJhbnNsYXRlKCJTZWFyY2ggQWdlbnQiKSB8
IEpTT04gJV0pOwogICAgQ29yZS5Db25maWcuU2V0KCdVc2VyQXV0b2NvbXBsZXRlLkdyb3Vwcycs
ICJbJSBEYXRhLmdyb3VwcyB8IGh0bWwgJV0iKTsKLy9dXT48L3NjcmlwdD4KClslIFJlbmRlckJs
b2NrU3RhcnQoIlVzZXJTZWFyY2hJbml0IikgJV0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiPi8vPCFbQ0RBVEFbCi8qZ2xvYmFsIFF1aWNrQ2xvc2U6IHRydWUgKi8KICAgIFF1aWNrQ2xv
c2UuQWRtaW4uVXNlclNlYXJjaC5Jbml0KCQoIiNbJSBEYXRhLkl0ZW1JRCB8IGh0bWwgJV0iKSwg
WyUgRGF0YS5BY3RpdmVBdXRvQ29tcGxldGUgfCBodG1sICVdKTsKLy9dXT48L3NjcmlwdD4KWyUg
UmVuZGVyQmxvY2tFbmQoIlVzZXJTZWFyY2hJbml0IikgJV0KClslIEVORCAlXQpbJSBSZW5kZXJC
bG9ja0VuZCgiVXNlclNlYXJjaEF1dG9Db21wbGV0ZSIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0
KCJVc2VyU2VhcmNoUXVpY2tDbG9zZVNlYXJjaEF1dG9jb21wbGV0ZSIpICVdCjxzY3JpcHQgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0Ij4vLzwhW0NEQVRBWwogICAgQ29yZS5Db25maWcuU2V0KCdVc2Vy
QXV0b2NvbXBsZXRlLkFjdGl2ZScsICJbJSBEYXRhLmFjdGl2ZSB8IGh0bWwgJV0iKTsKICAgIENv
cmUuQ29uZmlnLlNldCgnVXNlckF1dG9jb21wbGV0ZS5RdWVyeURlbGF5JywgIlslIERhdGEucXVl
cnlEZWxheSB8IGh0bWwgJV0iKTsKICAgIENvcmUuQ29uZmlnLlNldCgnVXNlckF1dG9jb21wbGV0
ZS5NYXhSZXN1bHRzRGlzcGxheWVkJywgIlslIERhdGEubWF4UmVzdWx0c0Rpc3BsYXllZCB8IGh0
bWwgJV0iKTsKICAgIENvcmUuQ29uZmlnLlNldCgnVXNlckF1dG9jb21wbGV0ZS5NaW5RdWVyeUxl
bmd0aCcsICJbJSBEYXRhLm1pblF1ZXJ5TGVuZ3RoIHwgaHRtbCAlXSIpOwogICAgQ29yZS5Db25m
aWcuU2V0KCdVc2VyQXV0b2NvbXBsZXRlLkR5bmFtaWNXaWR0aCcsICJbJSBEYXRhLmR5bmFtaWNX
aWR0aCB8IGh0bWwgJV0iKTsKICAgIENvcmUuQ29uZmlnLlNldCgnVXNlckF1dG9jb21wbGV0ZS5T
ZWFyY2hCdXR0b25UZXh0JywgWyUgVHJhbnNsYXRlKCJTZWFyY2ggQWdlbnQiKSB8IEpTT04gJV0p
OwovL11dPjwvc2NyaXB0PgpbJSBSZW5kZXJCbG9ja0VuZCgiVXNlclNlYXJjaFF1aWNrQ2xvc2VT
ZWFyY2hBdXRvY29tcGxldGUiKSAlXQo=
IyAtLQojIFF1aWNrQ2xvc2VTbmlwcGV0LnR0IC0gcHJvdmlkZXMgSFRNTCBmb3IgUXVpY2tDbG9z
ZVNuaXBwZXQucG0KIyBDb3B5cmlnaHQgKEMpIDIwMTEgLSAyMDE1IFBlcmwtU2VydmljZXMuZGUs
IGh0dHA6Ly93d3cucGVybC1zZXJ2aWNlcy5kZSAKIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMg
d2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xv
c2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQoj
IGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5z
ZXMvYWdwbC50eHQuCiMgLS0KCiAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJbJSBEYXRh
LkNsYXNzIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtIHRpdGxlPSJb
JSBUcmFuc2xhdGUoIlF1aWNrQ2xvc2UgdGlja2V0IikgfCBodG1sICVdIiBhY3Rpb249IlslIEVu
digiQ0dJSGFuZGxlIikgJV0iIG1ldGhvZD0icG9zdCI+CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY3Rpb24iIHZhbHVlPSJBZ2VudFRpY2tl
dENsb3NlQnVsayIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9Imhp
ZGRlbiIgbmFtZT0iVGlja2V0SUQiIHZhbHVlPSJbJSBEYXRhLlRpY2tldElEIHwgaHRtbCAlXSIv
PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0i
Rm9ybUlEIiB2YWx1ZT0iWyUgRGF0YS5Gb3JtSUQgfCBodG1sICVdIiAvPgogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iUXVpY2tDbG9zZSIgY2xhc3M9IkludmlzaWJsZVRl
eHQiPlslIFRyYW5zbGF0ZSgiUXVpY2tDbG9zZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5RdWlja0Nsb3NlU2VsZWN0ICVdCiAgICAgICAg
ICAgICAgICAgICAgICAgIDwvZm9ybT4KWyUgV1JBUFBFUiBKU09uRG9jdW1lbnRDb21wbGV0ZSAl
XQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ly88IVtDREFUQVsKICAgIENvcmUuVUku
SW5wdXRGaWVsZHMuSW5pdFNlbGVjdCggJCgnLlF1aWNrQ2xvc2VTZWxlY3QnKSApOwoKICAgICQo
Jy5RdWlja0Nsb3NlU2VsZWN0JykuZWFjaCggZnVuY3Rpb24oKSB7CiAgICAgICAgJCh0aGlzKS51
bmJpbmQoJ2NoYW5nZScpOwogICAgICAgICQodGhpcykuYmluZCgnY2hhbmdlJywgZnVuY3Rpb24g
KEV2ZW50KSB7CiAgICAgICAgICAgIC8vIHJldHJpZXZlIGJvZHkgZm9yIHF1aWNrY2xvc2UKICAg
ICAgICAgICAgdmFyIFVSTCA9IENvcmUuQ29uZmlnLkdldCgnQmFzZWxpbmsnKTsKICAgICAgICAg
ICAgdmFyIFRJRCA9ICQodGhpcykudmFsKCk7CiAgICAKICAgICAgICAgICAgdmFyIHRoaXNPYmpl
Y3QgPSAkKHRoaXMpOwogICAgCiAgICAgICAgICAgIGlmICggVElEID4gMCApIHsKICAgICAgICAg
ICAgICAgIHRoaXNPYmplY3QuY2xvc2VzdCgnZm9ybScpLnN1Ym1pdCgpOwogICAgICAgICAgICB9
CiAgICAgICAgfSk7CiAgICB9KTsKLy9dXT48L3NjcmlwdD4KWyUgRU5EICVdCiAgICAgICAgICAg
ICAgICAgICAgPC9saT4K
IyAtLQojIENvcHlyaWdodCAoQykgMjAxMSAtIDIwMTcgUGVybC1TZXJ2aWNlcy5kZSwgaHR0cDov
L3d3dy5wZXJsLXNlcnZpY2VzLmRlIAojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFC
U09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmls
ZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5v
dCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3Bs
LnR4dC4KIyAtLQoKICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9IkJ1bGsgQWx3YXlzUHJl
c2VudCBbJSBEYXRhLkNsYXNzIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxm
b3JtIHRpdGxlPSJbJSBUcmFuc2xhdGUoIlF1aWNrQ2xvc2UgdGlja2V0IikgfCBodG1sICVdIiBh
Y3Rpb249IlslIEVudigiQ0dJSGFuZGxlIikgJV0iIG1ldGhvZD0icG9zdCIgbmFtZT0icXVpY2tj
bG9zZSIgaWQ9InF1aWNrY2xvc2UiIGNsYXNzPSJRdWlja0Nsb3NlVmlldyI+CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY3Rpb24iIHZhbHVl
PSJBZ2VudFRpY2tldENsb3NlQnVsayIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlu
cHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iU3ViamVjdCIgdmFsdWU9IlslIFRyYW5zbGF0ZSgiQ2xv
c2UiKSB8IGh0bWwgJV0iLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBl
PSJoaWRkZW4iIG5hbWU9IkZvcm1JRCIgdmFsdWU9IlslIERhdGEuRm9ybUlEIHwgaHRtbCAlXSIg
Lz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IlF1aWNrQ2xvc2UiIGNs
YXNzPSJJbnZpc2libGVUZXh0Ij5bJSBUcmFuc2xhdGUoIlF1aWNrQ2xvc2UiKSB8IGh0bWwgJV06
PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuUXVpY2tDbG9zZVNl
bGVjdCAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgICAgICAg
ICAgPC9saT4K
IyAtLQojIENvcHlyaWdodCAoQykgMjAxMS0yMDE3IFBlcmwtU2VydmljZXMuZGUsIGh0dHA6Ly93
d3cucGVybC1zZXJ2aWNlcy5kZQojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09M
VVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBD
T1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCBy
ZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4
dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6UXVpY2tDbG9zZTsKCnVzZSBzdHJpY3Q7
CnVzZSB3YXJuaW5nczsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gcXcoCiAgICBLZXJuZWw6
OkNvbmZpZwogICAgS2VybmVsOjpTeXN0ZW06OkVuY29kZQogICAgS2VybmVsOjpTeXN0ZW06Okxv
ZwogICAgS2VybmVsOjpTeXN0ZW06Ok1haW4KICAgIEtlcm5lbDo6U3lzdGVtOjpEQgogICAgS2Vy
bmVsOjpTeXN0ZW06OlVzZXIKICAgIEtlcm5lbDo6U3lzdGVtOjpWYWxpZAogICAgS2VybmVsOjpT
eXN0ZW06OlN0YXRlCiAgICBLZXJuZWw6OlN5c3RlbTo6UXVldWUKICAgIEtlcm5lbDo6U3lzdGVt
OjpQcmlvcml0eQogICAgS2VybmVsOjpTeXN0ZW06OlF1aWNrQ2xvc2U6OlBlcm1pc3Npb24KKTsK
Cj1oZWFkMSBOQU1FCgpLZXJuZWw6OlN5c3RlbTo6UXVpY2tDbG9zZQoKPWhlYWQxIFBVQkxJQyBJ
TlRFUkZBQ0UKCj1vdmVyIDQKCj1jdXQKCj1pdGVtIG5ldygpCgpjcmVhdGUgYW4gb2JqZWN0Cgo9
Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxv
Y2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRT
ZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKPWl0ZW0gUXVpY2tDbG9zZUFkZCgp
Cgp0byBhZGQgYSBuZXdzIAoKICAgIG15ICRJRCA9ICRRdWlja0Nsb3NlT2JqZWN0LT5RdWlja0Ns
b3NlQWRkKAogICAgICAgIE5hbWUgICAgICAgICAgPT4gJ0EgbmFtZSBmb3IgdGhlIG5ld3MnLAog
ICAgICAgIFN0YXRlSUQgICAgICAgPT4gJ0Egc3RhdGVfaWQgZm9yIHRoZSBuZXdzJywKICAgICAg
ICBCb2R5ICAgICAgICAgID0+ICdBbnl0aGluZyBpcyBoYXBwZW5lZCcsCiAgICAgICAgU3ViamVj
dCAgICAgICA9PiAnQSBzdWJqZWN0JywKICAgICAgICBBcnRpY2xlVHlwZUlEID0+IDEsCiAgICAg
ICAgVmFsaWRJRCAgICAgICA9PiAxLAogICAgICAgIFVzZXJJRCAgICAgICAgPT4gMTIzLAogICAg
ICAgIFF1ZXVlSUQgICAgICAgPT4gMTIzLAogICAgICAgIFBlcm1pc3Npb24gICAgPT4gewogICAg
ICAgICAgICBSb2xlSUQgPT4gWyAxLDIsMyBdLAogICAgICAgIH0sCiAgICApOwoKPWN1dAoKc3Vi
IFF1aWNrQ2xvc2VBZGQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAk
TG9nT2JqZWN0ICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cn
KTsKICAgIG15ICREQk9iamVjdCAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpT
eXN0ZW06OkRCJyk7CiAgICBteSAkUGVybWlzc2lvbk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQo
J0tlcm5lbDo6U3lzdGVtOjpRdWlja0Nsb3NlOjpQZXJtaXNzaW9uJyk7CgogICAgIyBjaGVjayBu
ZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkTmVlZGVkIChxdyhOYW1lIFZhbGlkSUQgVXNlcklEIEFy
dGljbGVUeXBlKSkgewogICAgICAgIGlmICggISRQYXJhbXskTmVlZGVkfSApIHsKICAgICAgICAg
ICAgJExvZ09iamVjdC0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywK
ICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICROZWVkZWQhIiwKICAgICAgICAgICAg
KTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAkUGFyYW17UXVldWVJ
RH0gICAgICAgICAgICAgICAgIHx8PSAwOwogICAgJFBhcmFte093bmVySUR9ICAgICAgICAgICAg
ICAgICB8fD0gMDsKICAgICRQYXJhbXtSZXNwb25zaWJsZUlEfSAgICAgICAgICAgfHw9IDA7CiAg
ICAkUGFyYW17UHJpb3JpdHlJRH0gICAgICAgICAgICAgIHx8PSAwOwogICAgJFBhcmFte1BlbmRp
bmdEaWZmfSAgICAgICAgICAgICB8fD0gMDsKICAgICRQYXJhbXtGb3JjZUN1cnJlbnRVc2VyQXNP
d25lcn0gfHw9IDA7CiAgICAkUGFyYW17QXNzaWduVG9SZXNwb25zaWJsZX0gICAgIHx8PSAwOwog
ICAgJFBhcmFte1VubG9ja30gICAgICAgICAgICAgICAgICB8fD0gMDsKICAgICRQYXJhbXtTdGF0
ZUlEfSAgICAgICAgICAgICAgICAgfHw9IDA7CiAgICAkUGFyYW17U2hvd1RpY2tldFpvb219ICAg
ICAgICAgIHx8PSAwOwogICAgJFBhcmFte1RpbWVVbml0c30gICAgICAgICAgICAgICB8fD0gMDsK
ICAgICRQYXJhbXtUb0FkZHJlc3N9ICAgICAgICAgICAgICAgfHw9ICcnOwogICAgJFBhcmFte1Rv
VHlwZX0gICAgICAgICAgICAgICAgICB8fD0gJyc7CiAgICAkUGFyYW17Qm9keX0gICAgICAgICAg
ICAgICAgICAgIHx8PSAnJzsKICAgICRQYXJhbXtBcnRpY2xlQ3VzdG9tZXJ9ICAgICAgICAgfHw9
IDA7CgogICAgIyBpbnNlcnQgbmV3IG5ld3MKICAgIHJldHVybiBpZiAhJERCT2JqZWN0LT5EbygK
ICAgICAgICBTUUwgPT4gJ0lOU0VSVCBJTlRPIHBzX3F1aWNrX2Nsb3NlICcKICAgICAgICAgICAg
LiAnKGNsb3NlX25hbWUsIHN0YXRlX2lkLCBib2R5LCBjcmVhdGVfdGltZSwgY3JlYXRlX2J5LCB2
YWxpZF9pZCwgJwogICAgICAgICAgICAuICcgYXJ0aWNsZV90eXBlLCBhcnRpY2xlX2N1c3RvbWVy
LCBjaGFuZ2VfdGltZSwgY2hhbmdlX2J5LCBjb21tZW50cywgcXVldWVfaWQsICcKICAgICAgICAg
ICAgLiAnIHN1YmplY3QsIHRpY2tldF91bmxvY2ssIG93bmVyX2lkLCBwZW5kaW5nX2RpZmYsIGZv
cmNlX293bmVyX2NoYW5nZSwgJwogICAgICAgICAgICAuICcgYXNzaWduX3RvX3Jlc3BvbnNpYmxl
LCBzaG93X3RpY2tldF96b29tLCBmaXhfaG91ciwgZ3JvdXBfbmFtZSwnCiAgICAgICAgICAgIC4g
JyByZXNwb25zaWJsZV9pZCwgcHJpb3JpdHlfaWQsIHRpbWVfdW5pdHMsIHRvX2FkZHJlc3MsIHRv
X3R5cGUpICcKICAgICAgICAgICAgLiAnVkFMVUVTICg/LCA/LCA/LCBjdXJyZW50X3RpbWVzdGFt
cCwgPywgPywgPywgPywgY3VycmVudF90aW1lc3RhbXAsICcKICAgICAgICAgICAgLiAnID8sID8s
ID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8pJywKICAgICAgICBC
aW5kID0+IFsKICAgICAgICAgICAgXCRQYXJhbXtOYW1lfSwKICAgICAgICAgICAgXCRQYXJhbXtT
dGF0ZUlEfSwKICAgICAgICAgICAgXCRQYXJhbXtCb2R5fSwKICAgICAgICAgICAgXCRQYXJhbXtV
c2VySUR9LAogICAgICAgICAgICBcJFBhcmFte1ZhbGlkSUR9LAogICAgICAgICAgICBcJFBhcmFt
e0FydGljbGVUeXBlfSwKICAgICAgICAgICAgXCRQYXJhbXtBcnRpY2xlQ3VzdG9tZXJ9LAogICAg
ICAgICAgICBcJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgIFwnICcsICMgZW1wdHkgY29tbWVu
dCBhcyB3ZSBoYXZlIG5vIGNvbW1lbnRzIGZpZWxkCiAgICAgICAgICAgIFwkUGFyYW17UXVldWVJ
RH0sCiAgICAgICAgICAgIFwkUGFyYW17U3ViamVjdH0sCiAgICAgICAgICAgIFwkUGFyYW17VW5s
b2NrfSwKICAgICAgICAgICAgXCRQYXJhbXtPd25lcklEfSwKICAgICAgICAgICAgXCRQYXJhbXtQ
ZW5kaW5nRGlmZn0sCiAgICAgICAgICAgIFwkUGFyYW17Rm9yY2VDdXJyZW50VXNlckFzT3duZXJ9
LAogICAgICAgICAgICBcJFBhcmFte0Fzc2lnblRvUmVzcG9uc2libGV9LAogICAgICAgICAgICBc
JFBhcmFte1Nob3dUaWNrZXRab29tfSwKICAgICAgICAgICAgXCRQYXJhbXtGaXhIb3VyfSwKICAg
ICAgICAgICAgXCRQYXJhbXtHcm91cH0sCiAgICAgICAgICAgIFwkUGFyYW17UmVzcG9uc2libGVJ
RH0sCiAgICAgICAgICAgIFwkUGFyYW17UHJpb3JpdHlJRH0sCiAgICAgICAgICAgIFwkUGFyYW17
VGltZVVuaXRzfSwKICAgICAgICAgICAgXCRQYXJhbXtUb0FkZHJlc3N9LAogICAgICAgICAgICBc
JFBhcmFte1RvVHlwZX0sCiAgICAgICAgXSwKICAgICk7CgogICAgIyBnZXQgbmV3IGludm9pY2Ug
aWQKICAgIHJldHVybiBpZiAhJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgIFNRTCAgID0+ICdT
RUxFQ1QgTUFYKGlkKSBGUk9NIHBzX3F1aWNrX2Nsb3NlIFdIRVJFIGNsb3NlX25hbWUgPSA/JywK
ICAgICAgICBCaW5kICA9PiBbIFwkUGFyYW17TmFtZX0sIF0sCiAgICAgICAgTGltaXQgPT4gMSwK
ICAgICk7CgogICAgbXkgJElEOwogICAgd2hpbGUgKCBteSBAUm93ID0gJERCT2JqZWN0LT5GZXRj
aHJvd0FycmF5KCkgKSB7CiAgICAgICAgJElEID0gJFJvd1swXTsKICAgIH0KCiAgICAjIGxvZyBu
b3RpY2UKICAgICRMb2dPYmplY3QtPkxvZygKICAgICAgICBQcmlvcml0eSA9PiAnbm90aWNlJywK
ICAgICAgICBNZXNzYWdlICA9PiAiUXVpY2tDbG9zZSAnJElEJyBjcmVhdGVkIHN1Y2Nlc3NmdWxs
eSAoJFBhcmFte1VzZXJJRH0pISIsCiAgICApOwoKICAgICRQZXJtaXNzaW9uT2JqZWN0LT5QZXJt
aXNzaW9uU2V0KAogICAgICAgIFF1aWNrQ2xvc2VJRCA9PiAkSUQsCiAgICAgICAgUm9sZUlEICAg
ICAgID0+ICRQYXJhbXtQZXJtaXNzaW9ufS0+e1JvbGVJRH0sCiAgICApOwoKICAgIHJldHVybiAk
SUQ7Cn0KCgo9aXRlbSBRdWlja0Nsb3NlVXBkYXRlKCkKCnRvIHVwZGF0ZSBuZXdzIAoKICAgIG15
ICRTdWNjZXNzID0gJFF1aWNrQ2xvc2VPYmplY3QtPlF1aWNrQ2xvc2VVcGRhdGUoCiAgICAgICAg
SUQgICAgICAgICAgICA9PiAzLAogICAgICAgIE5hbWUgICAgICAgICAgPT4gJ0EgbmFtZSBmb3Ig
dGhlIG5ld3MnLAogICAgICAgIFN0YXRlSUQgICAgICAgPT4gJ0Egc3RhdGVfaWQgZm9yIHRoZSBu
ZXdzJywKICAgICAgICBTdWJqZWN0ICAgICAgID0+ICdBIHN1YmplY3QnLAogICAgICAgIEJvZHkg
ICAgICAgICAgPT4gJ0FueXRoaW5nIGlzIGhhcHBlbmVkJywKICAgICAgICBBcnRpY2xlVHlwZUlE
ID0+IDEsCiAgICAgICAgVmFsaWRJRCAgICAgICA9PiAxLAogICAgICAgIFVzZXJJRCAgICAgICAg
PT4gMTIzLAogICAgICAgIFF1ZXVlSUQgICAgICAgPT4gMTIzLAogICAgICAgIFBlcm1pc3Npb24g
ICAgPT4gewogICAgICAgICAgICBSb2xlSUQgPT4gWyAxLDIsMyBdLAogICAgICAgIH0sCiAgICAp
OwoKPWN1dAoKc3ViIFF1aWNrQ2xvc2VVcGRhdGUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkg
PSBAXzsKCiAgICBteSAkTG9nT2JqZWN0ICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5l
bDo6U3lzdGVtOjpMb2cnKTsKICAgIG15ICREQk9iamVjdCAgICAgICAgID0gJEtlcm5lbDo6T00t
PkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CiAgICBteSAkUGVybWlzc2lvbk9iamVjdCA9ICRL
ZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpRdWlja0Nsb3NlOjpQZXJtaXNzaW9uJyk7
CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkTmVlZGVkIChxdyhJRCBOYW1l
IFZhbGlkSUQgVXNlcklEIEFydGljbGVUeXBlKSkgewogICAgICAgIGlmICggISRQYXJhbXskTmVl
ZGVkfSApIHsKICAgICAgICAgICAgJExvZ09iamVjdC0+TG9nKAogICAgICAgICAgICAgICAgUHJp
b3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICROZWVk
ZWQhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0K
CiAgICAkUGFyYW17UXVldWVJRH0gICAgICAgICAgICAgICAgIHx8PSAwOwogICAgJFBhcmFte093
bmVySUR9ICAgICAgICAgICAgICAgICB8fD0gMDsKICAgICRQYXJhbXtSZXNwb25zaWJsZUlEfSAg
ICAgICAgICAgfHw9IDA7CiAgICAkUGFyYW17UHJpb3JpdHlJRH0gICAgICAgICAgICAgIHx8PSAw
OwogICAgJFBhcmFte1BlbmRpbmdEaWZmfSAgICAgICAgICAgICB8fD0gMDsKICAgICRQYXJhbXtG
b3JjZUN1cnJlbnRVc2VyQXNPd25lcn0gfHw9IDA7CiAgICAkUGFyYW17QXNzaWduVG9SZXNwb25z
aWJsZX0gICAgIHx8PSAwOwogICAgJFBhcmFte0FydGljbGVDdXN0b21lcn0gICAgICAgICB8fD0g
MDsKICAgICRQYXJhbXtVbmxvY2t9ICAgICAgICAgICAgICAgICAgfHw9IDA7CiAgICAkUGFyYW17
U3RhdGVJRH0gICAgICAgICAgICAgICAgIHx8PSAwOwogICAgJFBhcmFte1Nob3dUaWNrZXRab29t
fSAgICAgICAgICB8fD0gMDsKICAgICRQYXJhbXtUaW1lVW5pdHN9ICAgICAgICAgICAgICAgfHw9
IDA7CiAgICAkUGFyYW17VG9UeXBlfSAgICAgICAgICAgICAgICAgIHx8PSAnJzsKICAgICRQYXJh
bXtUb0FkZHJlc3N9ICAgICAgICAgICAgICAgfHw9ICcnOwogICAgJFBhcmFte0JvZHl9ICAgICAg
ICAgICAgICAgICAgICB8fD0gJyc7CgogICAgIyBpbnNlcnQgbmV3IG5ld3MKICAgIHJldHVybiBp
ZiAhJERCT2JqZWN0LT5EbygKICAgICAgICBTUUwgPT4gJ1VQREFURSBwc19xdWlja19jbG9zZSBT
RVQgY2xvc2VfbmFtZSA9ID8sIHN0YXRlX2lkID0gPywgYm9keSA9ID8sICcKICAgICAgICAgICAg
LiAndmFsaWRfaWQgPSA/LCBjaGFuZ2VfdGltZSA9IGN1cnJlbnRfdGltZXN0YW1wLCBjaGFuZ2Vf
YnkgPSA/LCBhcnRpY2xlX3R5cGUgPSA/LCAnCiAgICAgICAgICAgIC4gJ3F1ZXVlX2lkID0gPywg
c3ViamVjdCA9ID8sIHRpY2tldF91bmxvY2sgPSA/LCBvd25lcl9pZCA9ID8sIHBlbmRpbmdfZGlm
ZiA9ID8sICcKICAgICAgICAgICAgLiAnZm9yY2Vfb3duZXJfY2hhbmdlID0gPywgYXNzaWduX3Rv
X3Jlc3BvbnNpYmxlID0gPywgc2hvd190aWNrZXRfem9vbSA9ID8sICcKICAgICAgICAgICAgLiAn
Zml4X2hvdXIgPSA/LCBncm91cF9uYW1lID0gPywgcmVzcG9uc2libGVfaWQgPSA/LCBwcmlvcml0
eV9pZCA9ID8sIHRpbWVfdW5pdHMgPSA/LCAnCiAgICAgICAgICAgIC4gJ3RvX2FkZHJlc3MgPSA/
LCB0b190eXBlID0gPywgYXJ0aWNsZV9jdXN0b21lciA9ID8gJwogICAgICAgICAgICAuICdXSEVS
RSBpZCA9ID8nLAogICAgICAgIEJpbmQgPT4gWwogICAgICAgICAgICBcJFBhcmFte05hbWV9LAog
ICAgICAgICAgICBcJFBhcmFte1N0YXRlSUR9LAogICAgICAgICAgICBcJFBhcmFte0JvZHl9LAog
ICAgICAgICAgICBcJFBhcmFte1ZhbGlkSUR9LAogICAgICAgICAgICBcJFBhcmFte1VzZXJJRH0s
CiAgICAgICAgICAgIFwkUGFyYW17QXJ0aWNsZVR5cGV9LAogICAgICAgICAgICBcJFBhcmFte1F1
ZXVlSUR9LAogICAgICAgICAgICBcJFBhcmFte1N1YmplY3R9LAogICAgICAgICAgICBcJFBhcmFt
e1VubG9ja30sCiAgICAgICAgICAgIFwkUGFyYW17T3duZXJJRH0sCiAgICAgICAgICAgIFwkUGFy
YW17UGVuZGluZ0RpZmZ9LAogICAgICAgICAgICBcJFBhcmFte0ZvcmNlQ3VycmVudFVzZXJBc093
bmVyfSwKICAgICAgICAgICAgXCRQYXJhbXtBc3NpZ25Ub1Jlc3BvbnNpYmxlfSwKCSAgICBcJFBh
cmFte1Nob3dUaWNrZXRab29tfSwKICAgICAgICAgICAgXCRQYXJhbXtGaXhIb3VyfSwKICAgICAg
ICAgICAgXCRQYXJhbXtHcm91cH0sCiAgICAgICAgICAgIFwkUGFyYW17UmVzcG9uc2libGVJRH0s
CiAgICAgICAgICAgIFwkUGFyYW17UHJpb3JpdHlJRH0sCiAgICAgICAgICAgIFwkUGFyYW17VGlt
ZVVuaXRzfSwKICAgICAgICAgICAgXCRQYXJhbXtUb0FkZHJlc3N9LAogICAgICAgICAgICBcJFBh
cmFte1RvVHlwZX0sCiAgICAgICAgICAgIFwkUGFyYW17QXJ0aWNsZUN1c3RvbWVyfSwKICAgICAg
ICAgICAgXCRQYXJhbXtJRH0sCiAgICAgICAgXSwKICAgICk7CgogICAgJFBlcm1pc3Npb25PYmpl
Y3QtPlBlcm1pc3Npb25TZXQoCiAgICAgICAgUXVpY2tDbG9zZUlEID0+ICRQYXJhbXtJRH0sCiAg
ICAgICAgUm9sZUlEICAgICAgID0+ICRQYXJhbXtQZXJtaXNzaW9ufS0+e1JvbGVJRH0sCiAgICAp
OwoKICAgIHJldHVybiAxOwp9Cgo9aXRlbSBRdWlja0Nsb3NlR2V0KCkKCnJldHVybnMgYSBoYXNo
IHdpdGggbmV3cyBkYXRhCgogICAgbXkgJVF1aWNrQ2xvc2VEYXRhID0gJFF1aWNrQ2xvc2VPYmpl
Y3QtPlF1aWNrQ2xvc2VHZXQoIElEID0+IDIgKTsKClRoaXMgcmV0dXJucyBzb21ldGhpbmcgbGlr
ZToKCiAgICAlUXVpY2tDbG9zZURhdGEgPSAoCiAgICAgICAgJ0lEJyAgICAgICAgICAgID0+IDIs
CiAgICAgICAgJ05hbWUnICAgICAgICAgID0+ICdUaGlzIGlzIHRoZSBuYW1lJywKICAgICAgICAn
U3RhdGVJRCcgICAgICAgPT4gJ0Egc2hvcnQgYWJzdHJhY3QnLAogICAgICAgICdCb2R5JyAgICAg
ICAgICA9PiAnVGhpcyBpcyB0aGUgbG9uZyB0ZXh0IG9mIHRoZSBuZXdzJywKICAgICAgICAnU3Vi
amVjdCcgICAgICAgPT4gJ0Egc3ViamVjdCcsCiAgICAgICAgJ0FydGljbGVUeXBlSUQnID0+IDMs
CiAgICAgICAgJ0NyZWF0ZVRpbWUnICAgID0+ICcyMDEwLTA0LTA3IDE1OjQxOjE1JywKICAgICAg
ICAnQ3JlYXRlQnknICAgICAgPT4gMTIzLAogICAgICAgICdRdWV1ZUlEJyAgICAgICA9PiAxMjMs
CiAgICAgICAgJ1VubG9jaycgICAgICAgID0+IDEsCiAgICAgICAgUGVybWlzc2lvbiAgICAgID0+
IHsKICAgICAgICAgICAgUm9sZUlEID0+IFsgMSwyLDMgXSwKICAgICAgICB9LAogICAgKTsKCj1j
dXQKCnN1YiBRdWlja0Nsb3NlR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87Cgog
ICAgbXkgJExvZ09iamVjdCAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3Rl
bTo6TG9nJyk7CiAgICBteSAkREJPYmplY3QgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tl
cm5lbDo6U3lzdGVtOjpEQicpOwogICAgbXkgJFZhbGlkT2JqZWN0ICAgICAgPSAkS2VybmVsOjpP
TS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VmFsaWQnKTsKICAgIG15ICRVc2VyT2JqZWN0ICAgICAg
ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKTsKICAgIG15ICRTdGF0
ZU9iamVjdCAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlN0YXRlJyk7
CiAgICBteSAkUXVldWVPYmplY3QgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lz
dGVtOjpRdWV1ZScpOwogICAgbXkgJFByaW9yaXR5T2JqZWN0ICAgPSAkS2VybmVsOjpPTS0+R2V0
KCdLZXJuZWw6OlN5c3RlbTo6UHJpb3JpdHknKTsKICAgIG15ICRQZXJtaXNzaW9uT2JqZWN0ID0g
JEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlF1aWNrQ2xvc2U6OlBlcm1pc3Npb24n
KTsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhJFBhcmFte0lEfSApIHsKICAg
ICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAg
ICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIElEIScsCiAgICAgICAgKTsKICAgICAgICByZXR1
cm47CiAgICB9CgogICAgIyBzcWwKICAgIHJldHVybiBpZiAhJERCT2JqZWN0LT5QcmVwYXJlKAog
ICAgICAgIFNRTCA9PiAnU0VMRUNUIGlkLCBjbG9zZV9uYW1lLCBzdGF0ZV9pZCwgYm9keSwgY3Jl
YXRlX3RpbWUsIGNyZWF0ZV9ieSwgdmFsaWRfaWQsICcKICAgICAgICAgICAgLiAnYXJ0aWNsZV90
eXBlLCBxdWV1ZV9pZCwgc3ViamVjdCwgdGlja2V0X3VubG9jaywgb3duZXJfaWQsIHBlbmRpbmdf
ZGlmZiwgJwogICAgICAgICAgICAuICdmb3JjZV9vd25lcl9jaGFuZ2UsIGFzc2lnbl90b19yZXNw
b25zaWJsZSwgc2hvd190aWNrZXRfem9vbSwgZml4X2hvdXIsIGdyb3VwX25hbWUsICcKICAgICAg
ICAgICAgLiAncmVzcG9uc2libGVfaWQsIHByaW9yaXR5X2lkLCB0aW1lX3VuaXRzLCB0b19hZGRy
ZXNzLCB0b190eXBlLCBhcnRpY2xlX2N1c3RvbWVyICcKICAgICAgICAgICAgLiAnRlJPTSBwc19x
dWlja19jbG9zZSBXSEVSRSBpZCA9ID8nLAogICAgICAgIEJpbmQgID0+IFsgXCRQYXJhbXtJRH0g
XSwKICAgICAgICBMaW1pdCA9PiAxLAogICAgKTsKCiAgICBteSAlUXVpY2tDbG9zZTsKICAgIHdo
aWxlICggbXkgQERhdGEgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAl
UXVpY2tDbG9zZSA9ICgKICAgICAgICAgICAgSUQgICAgICAgICAgICA9PiAkRGF0YVswXSwKICAg
ICAgICAgICAgTmFtZSAgICAgICAgICA9PiAkRGF0YVsxXSwKICAgICAgICAgICAgU3RhdGVJRCAg
ICAgICA9PiAkRGF0YVsyXSwKICAgICAgICAgICAgQm9keSAgICAgICAgICA9PiAkRGF0YVszXSwK
ICAgICAgICAgICAgQ3JlYXRlVGltZSAgICA9PiAkRGF0YVs0XSwKICAgICAgICAgICAgQ3JlYXRl
QnkgICAgICA9PiAkRGF0YVs1XSwKICAgICAgICAgICAgVmFsaWRJRCAgICAgICA9PiAkRGF0YVs2
XSwKICAgICAgICAgICAgQXJ0aWNsZVR5cGUgICA9PiAkRGF0YVs3XSwKICAgICAgICAgICAgUXVl
dWVJRCAgICAgICA9PiAkRGF0YVs4XSwKICAgICAgICAgICAgU3ViamVjdCAgICAgICA9PiAkRGF0
YVs5XSwKICAgICAgICAgICAgVW5sb2NrICAgICAgICA9PiAkRGF0YVsxMF0sCiAgICAgICAgICAg
IE93bmVySUQgICAgICAgPT4gJERhdGFbMTFdLAogICAgICAgICAgICBQZW5kaW5nRGlmZiAgID0+
ICREYXRhWzEyXSwKCiAgICAgICAgICAgIEZvcmNlQ3VycmVudFVzZXJBc093bmVyID0+ICREYXRh
WzEzXSwKICAgICAgICAgICAgQXNzaWduVG9SZXNwb25zaWJsZSAgICAgPT4gJERhdGFbMTRdLAog
ICAgICAgICAgICBTaG93VGlja2V0Wm9vbSAgICAgICAgICA9PiAkRGF0YVsxNV0sCiAgICAgICAg
ICAgIEZpeEhvdXIgICAgICAgICAgICAgICAgID0+ICREYXRhWzE2XSwKICAgICAgICAgICAgR3Jv
dXAgICAgICAgICAgICAgICAgICAgPT4gJERhdGFbMTddLAogICAgICAgICAgICBSZXNwb25zaWJs
ZUlEICAgICAgICAgICA9PiAkRGF0YVsxOF0sCiAgICAgICAgICAgIFByaW9yaXR5SUQgICAgICAg
ICAgICAgID0+ICREYXRhWzE5XSwKICAgICAgICAgICAgVGltZVVuaXRzICAgICAgICAgICAgICAg
PT4gJERhdGFbMjBdLAogICAgICAgICAgICBUb0FkZHJlc3MgICAgICAgICAgICAgICA9PiAkRGF0
YVsyMV0gfHwgJycsCiAgICAgICAgICAgIFRvVHlwZSAgICAgICAgICAgICAgICAgID0+ICREYXRh
WzIyXSB8fCAnJywKICAgICAgICAgICAgQXJ0aWNsZUN1c3RvbWVyICAgICAgICAgPT4gJERhdGFb
MjNdIHx8IDAsCiAgICAgICAgKTsKICAgIH0KCiAgICAkUXVpY2tDbG9zZXtWYWxpZH0gID0gJFZh
bGlkT2JqZWN0LT5WYWxpZExvb2t1cCggVmFsaWRJRCA9PiAkUXVpY2tDbG9zZXtWYWxpZElEfSAp
OwogICAgJFF1aWNrQ2xvc2V7QXV0aG9yfSA9ICRVc2VyT2JqZWN0LT5Vc2VyTG9va3VwKCBVc2Vy
SUQgPT4gJFF1aWNrQ2xvc2V7Q3JlYXRlQnl9ICk7CgogICAgaWYgKCAkUXVpY2tDbG9zZXtTdGF0
ZUlEfSApIHsKICAgICAgICAkUXVpY2tDbG9zZXtTdGF0ZX0gID0gJFN0YXRlT2JqZWN0LT5TdGF0
ZUxvb2t1cCggU3RhdGVJRCA9PiAkUXVpY2tDbG9zZXtTdGF0ZUlEfSApOwogICAgfQoKICAgIGlm
ICggJFF1aWNrQ2xvc2V7UXVldWVJRH0gKSB7CiAgICAgICAgJFF1aWNrQ2xvc2V7UXVldWV9ICA9
ICRRdWV1ZU9iamVjdC0+UXVldWVMb29rdXAoIFF1ZXVlSUQgPT4gJFF1aWNrQ2xvc2V7UXVldWVJ
RH0gKTsKICAgIH0KCiAgICBpZiAoICRRdWlja0Nsb3Nle093bmVySUR9ICkgewogICAgICAgICRR
dWlja0Nsb3Nle093bmVyfSAgPSAkVXNlck9iamVjdC0+VXNlckxvb2t1cCggVXNlcklEID0+ICRR
dWlja0Nsb3Nle093bmVySUR9ICk7CiAgICB9CgogICAgaWYgKCAkUXVpY2tDbG9zZXtSZXNwb25z
aWJsZUlEfSApIHsKICAgICAgICAkUXVpY2tDbG9zZXtSZXNwb25zaWJsZX0gPSAkVXNlck9iamVj
dC0+VXNlckxvb2t1cCggVXNlcklEID0+ICRRdWlja0Nsb3Nle1Jlc3BvbnNpYmxlSUR9ICk7CiAg
ICB9CgogICAgaWYgKCAkUXVpY2tDbG9zZXtQcmlvcml0eUlEfSApIHsKICAgICAgICAkUXVpY2tD
bG9zZXtQcmlvcml0eX0gPSAkUHJpb3JpdHlPYmplY3QtPlByaW9yaXR5TG9va3VwKCBQcmlvcml0
eUlEID0+ICRRdWlja0Nsb3Nle1ByaW9yaXR5SUR9ICk7CiAgICB9CgogICAgJFF1aWNrQ2xvc2V7
UGVybWlzc2lvbn0gPSAkUGVybWlzc2lvbk9iamVjdC0+UGVybWlzc2lvbkdldCgKICAgICAgICBR
dWlja0Nsb3NlSUQgPT4gJFBhcmFte0lEfSwKICAgICk7CgogICAgcmV0dXJuICVRdWlja0Nsb3Nl
Owp9Cgo9aXRlbSBRdWlja0Nsb3NlRGVsZXRlKCkKCmRlbGV0ZXMgYSBuZXdzIGVudHJ5LiBSZXR1
cm5zIDEgaWYgaXQgd2FzIHN1Y2Nlc3NmdWwsIHVuZGVmIG90aGVyd2lzZS4KCiAgICBteSAkU3Vj
Y2VzcyA9ICRRdWlja0Nsb3NlT2JqZWN0LT5RdWlja0Nsb3NlRGVsZXRlKAogICAgICAgIElEID0+
IDEyMywKICAgICk7Cgo9Y3V0CgpzdWIgUXVpY2tDbG9zZURlbGV0ZSB7CiAgICBteSAoICRTZWxm
LCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRMb2dPYmplY3QgICAgICAgID0gJEtlcm5lbDo6T00t
PkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpOwogICAgbXkgJERCT2JqZWN0ICAgICAgICAgPSAk
S2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKICAgIG15ICRQZXJtaXNzaW9u
T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlF1aWNrQ2xvc2U6OlBl
cm1pc3Npb24nKTsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhJFBhcmFte0lE
fSApIHsKICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdl
cnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIElEIScsCiAgICAgICAgKTsKICAg
ICAgICByZXR1cm47CiAgICB9CgogICAgJFBlcm1pc3Npb25PYmplY3QtPlBlcm1pc3Npb25EZWxl
dGUoCiAgICAgICAgUXVpY2tDbG9zZUlEID0+ICRQYXJhbXtJRH0sCiAgICApOwoKICAgIHJldHVy
biAkREJPYmplY3QtPkRvKAogICAgICAgIFNRTCAgPT4gJ0RFTEVURSBGUk9NIHBzX3F1aWNrX2Ns
b3NlIFdIRVJFIGlkID0gPycsCiAgICAgICAgQmluZCA9PiBbIFwkUGFyYW17SUR9IF0sCiAgICAp
Owp9CgoKPWl0ZW0gUXVpY2tDbG9zZUxpc3QoKQoKcmV0dXJucyBhIGhhc2ggb2YgYWxsIG5ld3MK
CiAgICBteSAlUXVpY2tDbG9zZXMgPSAkUXVpY2tDbG9zZU9iamVjdC0+UXVpY2tDbG9zZUxpc3Qo
CiAgICAgICAgVmFsaWQgPT4gMSwKICAgICk7Cgp0aGUgcmVzdWx0IGxvb2tzIGxpa2UKCiAgICAl
UXVpY2tDbG9zZXMgPSAoCiAgICAgICAgJzEnID0+ICdRdWlja0Nsb3NlIDEnLAogICAgICAgICcy
JyA9PiAnVGVzdCBRdWlja0Nsb3NlJywKICAgICk7Cgp0byByZXN0cmljdCBieSByb2xlX2lkczoK
CiAgICBteSAlUXVpY2tDbG9zZXMgPSAkUXVpY2tDbG9zZU9iamVjdC0+UXVpY2tDbG9zZUxpc3Qo
CiAgICAgICAgVmFsaWQgPT4gMSwKICAgICAgICBQZXJtaXNzaW9uID0+IHsKICAgICAgICAgICAg
Um9sZUlEID0+IFsxLDIsM10sCiAgICAgICAgfSwKICAgICk7Cgo9Y3V0CgpzdWIgUXVpY2tDbG9z
ZUxpc3QgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkVmFsaWRPYmpl
Y3QgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlZhbGlkJyk7CiAgICBteSAk
REJPYmplY3QgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CiAg
ICBteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsK
CiAgICBteSAkSm9pbiAgPSAnJzsKICAgIG15IEBXaGVyZTsKICAgIG15IEBCaW5kOwoKICAgIGlm
ICggJFBhcmFte1ZhbGlkfSApIHsKICAgICAgICBteSAkVmFsaWRJRCA9ICRWYWxpZE9iamVjdC0+
VmFsaWRMb29rdXAoIFZhbGlkID0+ICd2YWxpZCcgKTsKICAgICAgICBwdXNoIEBXaGVyZSwgJ3Zh
bGlkX2lkID0gPyc7CiAgICAgICAgQEJpbmQgID0gKCBcJFZhbGlkSUQgKTsKICAgIH0KCiAgICBp
ZiAoICRQYXJhbXtQZXJtaXNzaW9ufSApIHsgIyYmIEB7ICRQYXJhbXtQZXJtaXNzaW9ufS0+e1Jv
bGVJRH0gLy8gW10gfSApIHsKICAgICAgICAkSm9pbiA9IHF+CiAgICAgICAgICAgIExFRlQgT1VU
RVIgSk9JTiBwc19xdWlja19jbG9zZV9wZXJtIHBxY3AKICAgICAgICAgICAgICAgIE9OIHBxYy5p
ZCA9IHBxY3AucXVpY2tfY2xvc2VfaWQKICAgICAgICAgICAgICAgICAgICBBTkQgcHFjcC5wZXJt
X3R5cGUgPSAnUm9sZSd+OwoKICAgICAgICBteSAkVHlwZUlESW4gPSAnJzsKICAgICAgICBpZiAo
IEB7ICRQYXJhbXtQZXJtaXNzaW9ufS0+e1JvbGVJRH0gLy8gW10gfSApIHsKICAgICAgICAgICAg
bXkgJFBsYWNlaG9sZGVyID0gam9pbiAnLCAnLCAoJz8nKSB4IEB7ICRQYXJhbXtQZXJtaXNzaW9u
fS0+e1JvbGVJRH0gfTsKICAgICAgICAgICAgJFR5cGVJREluID0gIiBPUiBwcWNwLnR5cGVfaWQg
SU4gKCRQbGFjZWhvbGRlcikiOwogICAgICAgICAgICBwdXNoIEBCaW5kLCBtYXB7IFwkXyB9QHsg
JFBhcmFte1Blcm1pc3Npb259LT57Um9sZUlEfSB9OwogICAgICAgIH0KCiAgICAgICAgcHVzaCBA
V2hlcmUsICIoIHBxY3AudHlwZV9pZCBJUyBOVUxMICRUeXBlSURJbiApIjsKICAgIH0KCiAgICBt
eSAkV2hlcmUgPSBAV2hlcmUgPyAnIFdIRVJFICcgLiBqb2luICcgQU5EICcsIEBXaGVyZSA6ICcn
OwoKICAgICMgc3FsCiAgICByZXR1cm4gaWYgISREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICBT
UUwgID0+ICJTRUxFQ1QgaWQsIGNsb3NlX25hbWUsIGdyb3VwX25hbWUgRlJPTSBwc19xdWlja19j
bG9zZSBwcWMgJEpvaW4gJFdoZXJlIiwKICAgICAgICBCaW5kID0+IFxAQmluZCwKICAgICk7Cgog
ICAgbXkgJEdyb3VwRWxlbWVudHMgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1F1aWNrQ2xvc2U6OlVz
ZUdyb3VwcycpOwoKICAgIG15ICVRdWlja0Nsb3NlOwogICAgd2hpbGUgKCBteSBARGF0YSA9ICRE
Qk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgIGlmICggJEdyb3VwRWxlbWVudHMg
JiYgJFBhcmFte0dyb3VwQnl9ICkgeyAKICAgICAgICAgICAgJFF1aWNrQ2xvc2V7ICREYXRhWzJd
IC8vICcnIH0tPnsgJERhdGFbMF0gfSA9ICREYXRhWzFdOwogICAgICAgIH0KICAgICAgICBlbHNl
IHsKICAgICAgICAgICAgJFF1aWNrQ2xvc2V7ICREYXRhWzBdIH0gPSAkRGF0YVsxXTsKICAgICAg
ICB9CiAgICB9CgogICAgcmV0dXJuICVRdWlja0Nsb3NlOwp9CgpzdWIgVGlja2V0U3RhdGVUeXBl
QnlTdGF0ZUdldCB7CiAgICBteSAoJFNlbGYsICVQYXJhbSkgPSBAXzsKCiAgICBteSAkTG9nT2Jq
ZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpOwogICAgbXkgJERC
T2JqZWN0ICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgIGZv
ciBteSAkTmVlZGVkIChxdyhTdGF0ZUlEKSkgewogICAgICAgIGlmICggISRQYXJhbXskTmVlZGVk
fSApIHsKICAgICAgICAgICAgJExvZ09iamVjdC0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3Jp
dHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICROZWVkZWQh
IiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9Cgog
ICAgbXkgJFNRTCA9ICdTRUxFQ1QgdHN0Lm5hbWUgRlJPTSB0aWNrZXRfc3RhdGVfdHlwZSB0c3Qg
JwogICAgICAgIC4gJyBJTk5FUiBKT0lOIHRpY2tldF9zdGF0ZSB0cyBPTiB0c3QuaWQgPSB0cy50
eXBlX2lkICcKICAgICAgICAuICcgV0hFUkUgdHMuaWQgPSA/JzsKCiAgICByZXR1cm4gaWYgISRE
Qk9iamVjdC0+UHJlcGFyZSgKICAgICAgICBTUUwgICA9PiAkU1FMLAogICAgICAgIEJpbmQgID0+
IFsgXCRQYXJhbXtTdGF0ZUlEfSBdLAogICAgICAgIExpbWl0ID0+IDEsCiAgICApOwoKICAgIG15
ICRUeXBlOwogICAgd2hpbGUgKCBteSBAUm93ID0gJERCT2JqZWN0LT5GZXRjaHJvd0FycmF5KCkg
KSB7CiAgICAgICAgJFR5cGUgPSAkUm93WzBdOwogICAgfQoKICAgIHJldHVybiAkVHlwZTsKfQoK
MTsKCj1iYWNrCgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgY29t
ZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNs
b3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UK
ZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vu
c2VzL2FncGwudHh0Pi4KCj1jdXQKCg==
IyAtLQojIEtlcm5lbC9TeXN0ZW0vUXVpY2tDbG9zZS9QZXJtaXNzaW9uLnBtIC0gQWxsIFF1aWNr
Q2xvc2UgcmVsYXRlZCBmdW5jdGlvbnMgc2hvdWxkIGJlIGhlcmUgZXZlbnR1YWxseQojIENvcHly
aWdodCAoQykgMjAxNSBQZXJsLVNlcnZpY2VzLmRlLCBodHRwOi8vd3d3LnBlcmwtc2VydmljZXMu
ZGUKIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZ
LiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5z
ZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUs
IHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2Ug
S2VybmVsOjpTeXN0ZW06OlF1aWNrQ2xvc2U6OlBlcm1pc3Npb247Cgp1c2Ugc3RyaWN0Owp1c2Ug
d2FybmluZ3M7CgpvdXIgQE9iamVjdERlcGVuZGVuY2llcyA9IHF3KAogICAgS2VybmVsOjpDb25m
aWcKICAgIEtlcm5lbDo6U3lzdGVtOjpMb2cKICAgIEtlcm5lbDo6U3lzdGVtOjpEQgopOwoKPWhl
YWQxIE5BTUUKCktlcm5lbDo6U3lzdGVtOjpRdWlja0Nsb3NlOjpQZXJtaXNzaW9uCgo9aGVhZDEg
UFVCTElDIElOVEVSRkFDRQoKPW92ZXIgNAoKPWN1dAoKPWl0ZW0gbmV3KCkKCmNyZWF0ZSBhbiBv
YmplY3QKCj1jdXQKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAg
ICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBi
bGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9Cgo9aXRlbSBQZXJtaXNz
aW9uU2V0KCkKCiAgICAkT2JqZWN0LT5QZXJtaXNzaW9uU2V0KAogICAgICAgIFF1aWNrQ2xvc2VJ
RCA9PiAxLAogICAgICAgIFJvbGVJRCAgICAgICA9PiBbIDEsMiwzIF0sCiAgICApOwoKPWN1dAoK
c3ViIFBlcm1pc3Npb25TZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBt
eSAkTG9nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpOwog
ICAgbXkgJERCT2JqZWN0ICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicp
OwoKICAgIGZvciBteSAkTmVlZGVkICggcXcoUXVpY2tDbG9zZUlEKSApIHsKICAgICAgICBpZiAo
ICEkUGFyYW17JE5lZWRlZH0gKSB7CiAgICAgICAgICAgICRMb2dPYmplY3QtPkxvZygKICAgICAg
ICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9
PiAiTmVlZCAkTmVlZGVkISIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgfQogICAgfQoKICAgICRTZWxmLT5QZXJtaXNzaW9uRGVsZXRlKAogICAgICAgIFF1aWNr
Q2xvc2VJRCA9PiAkUGFyYW17UXVpY2tDbG9zZUlEfSwKICAgICk7CgogICAgUk9MRUlEOgogICAg
Zm9yIG15ICRSb2xlSUQgKCBAeyAkUGFyYW17Um9sZUlEfSB8fCBbXSB9ICkgewogICAgICAgIG5l
eHQgUk9MRUlEIGlmICEkREJPYmplY3QtPkRvKAogICAgICAgICAgICBTUUwgPT4gJ0lOU0VSVCBJ
TlRPIHBzX3F1aWNrX2Nsb3NlX3Blcm0gJwogICAgICAgICAgICAgICAgLiAnKHF1aWNrX2Nsb3Nl
X2lkLCBwZXJtX3R5cGUsIHR5cGVfaWQpICcKICAgICAgICAgICAgICAgIC4gJ1ZBTFVFUyAoPywg
PywgPyknLAogICAgICAgICAgICBCaW5kID0+IFsKICAgICAgICAgICAgICAgIFwkUGFyYW17UXVp
Y2tDbG9zZUlEfSwKICAgICAgICAgICAgICAgIFwnUm9sZScsCiAgICAgICAgICAgICAgICBcJFJv
bGVJRCwKICAgICAgICAgICAgXSwKICAgICAgICApOwogICAgfQoKICAgIHJldHVybiAxOwp9CgoK
PWl0ZW0gUGVybWlzc2lvbkdldCgpCgogICAgbXkgJFBlcm1pc3Npb25zID0gJE9iamVjdC0+UGVy
bWlzc2lvbkdldCgKICAgICAgICBRdWlja0Nsb3NlSUQgPT4gMywKICAgICk7CgpyZXR1cm5zCgog
ICAgewogICAgICAgIFJvbGVJRCA9PiBbIDEsMiwzIF0sCiAgICB9Cgo9Y3V0CgpzdWIgUGVybWlz
c2lvbkdldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRMb2dPYmpl
Y3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyk7CiAgICBteSAkREJP
YmplY3QgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgIyBj
aGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkTmVlZGVkIChxdyhRdWlja0Nsb3NlSUQpKSB7
CiAgICAgICAgaWYgKCAhJFBhcmFteyROZWVkZWR9ICkgewogICAgICAgICAgICAkTG9nT2JqZWN0
LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAg
ICAgTWVzc2FnZSAgPT4gIk5lZWQgJE5lZWRlZCEiLAogICAgICAgICAgICApOwoKICAgICAgICAg
ICAgcmV0dXJuIHt9OwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4ge30gaWYgISREQk9iamVj
dC0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4gJ1NFTEVDVCBxdWlja19jbG9zZV9pZCwgcGVybV90
eXBlLCB0eXBlX2lkICcKICAgICAgICAgICAgLiAnIEZST00gcHNfcXVpY2tfY2xvc2VfcGVybSAn
CiAgICAgICAgICAgIC4gJ1dIRVJFIHF1aWNrX2Nsb3NlX2lkID0gPycKICAgICAgICAgICAgLiAn
T1JERVIgQlkgcGVybV90eXBlLCB0eXBlX2lkJywKICAgICAgICBCaW5kID0+IFsKICAgICAgICAg
ICAgXCRQYXJhbXtRdWlja0Nsb3NlSUR9LAogICAgICAgIF0sCiAgICApOwoKICAgIG15ICVQZXJt
aXNzaW9uczsKICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgp
ICkgewogICAgICAgIG15ICgkVHlwZSkgPSAkUm93WzFdOwogICAgICAgIG15ICgkSUQpICAgPSAk
Um93WzJdOwogICAgICAgIHB1c2ggQHsgJFBlcm1pc3Npb25zeyRUeXBlfSB9LCAkSUQ7CiAgICB9
CgogICAgcmV0dXJuIFwlUGVybWlzc2lvbnM7Cn0KCj1pdGVtIFBlcm1pc3Npb25EZWxldGUoKQoK
ICAgIG15ICRTdWNjZXNzID0gJE9iamVjdC0+UGVybWlzc2lvbkRlbGV0ZSgKICAgICAgICBRdWlj
a0Nsb3NlSUQgPT4gMTIzLAogICAgKTsKCj1jdXQKCnN1YiBQZXJtaXNzaW9uRGVsZXRlIHsKICAg
IG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJExvZ09iamVjdCA9ICRLZXJuZWw6
Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKTsKICAgIG15ICREQk9iamVjdCAgPSAkS2Vy
bmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICAjIGNoZWNrIG5lZWRlZCBz
dHVmZgogICAgaWYgKCAhJFBhcmFte1F1aWNrQ2xvc2VJRH0gKSB7CiAgICAgICAgJExvZ09iamVj
dC0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNz
YWdlICA9PiAnTmVlZCBRdWlja0Nsb3NlSUQhJywKICAgICAgICApOwogICAgICAgIHJldHVybjsK
ICAgIH0KCiAgICByZXR1cm4gJERCT2JqZWN0LT5EbygKICAgICAgICBTUUwgID0+ICdERUxFVEUg
RlJPTSBwc19xdWlja19jbG9zZV9wZXJtIFdIRVJFIHF1aWNrX2Nsb3NlX2lkID0gPycsCiAgICAg
ICAgQmluZCA9PiBbIFwkUGFyYW17UXVpY2tDbG9zZUlEfSBdLAogICAgKTsKfQoKMTsKCj1iYWNr
Cgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBB
QlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxl
IENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKZGlkIG5vdCBy
ZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwu
dHh0Pi4KCj1jdXQKCg==
PWVuY29kaW5nIHV0Zi04Cgo9aGVhZDEgTkFNRQoKUXVpY2tDbG9zZSAtIGNsb3NlIHRpY2tldHMg
d2l0aCBvbmUgY2xpY2sKCj1oZWFkMSBERVNDUklQVElPTgoKSWYgeW91IGhhdmUgc2ltaWxhciB0
aWNrZXRzIGFnYWluIGFuZCBhZ2FpbiBhbmQgeW91IGNsb3NlIHRoZW0gd2l0aCB0aGUgc2FtZSB0
ZXh0IGV2ZXJ5IHRpbWUgdGhlbgp0aGlzIG1vZHVsZSBtaWdodCBiZSBpbnRlcmVzdGluZyB0byB5
b3UuIEluIHRoZXNlIGNhc2VzIGl0IGlzIGFubm95aW5nIHRvIGNsaWNrIG9uICJjbG9zZSIgaW4g
dGhlCnRpY2tldCB6b29tLCB3YWl0IGZvciB0aGUgImNsb3NlIiB3aW5kb3csIGVudGVyIHRoZSB0
ZXh0IGFuZCBzdWJtaXQgaXQuIFdvdWxkbid0IGl0IGJlIGdyZWF0IHRvCmNsb3NlIHRoZSB0aWNr
ZXQgd2l0aCBvbmUgY2xpY2sgaW4gdGhlIHRpY2tldCB6b29tPwoKVGhpcyBtb2R1bGUgYWRkcyBh
IG5ldyBpdGVtIGluIHRoZSBhZG1pbiBhcmVhIHdoZXJlIHlvdSBjYW4gZGVmaW5lICJRdWlja0Ns
b3NlIiB0ZXh0cyBhbmQgYWZ0ZXIKaW5zdGFsbGF0aW9uIGEgbmV3IGRyb3Bkb3duIGJveCBpcyBh
ZGRlZCBpbiB0aGUgdGlja2V0IHpvb20uIFdoZW4geW91IHNlbGVjdCBvbmUgb2YgdGhlIFF1aWNr
Q2xvc2UKdGV4dHMgaW4gdGhpcyBkcm9wZG93biB0aGUgdGlja2V0IGlzIGNsb3NlZCBhbmQgYW4g
YXJ0aWNsZSBpcyBhZGRlZCB0byB0aGUgdGlja2V0LgoKSW4gdGhlIGFkbWluIGFyZWEgeW91IGNh
biBkZWZpbmUgdGhlIHRleHQgZm9yIHRoZSBhcnRpY2xlLCB0aGUgYXJ0aWNsZSB0eXBlIGFuZCB0
aGUgdGlja2V0IHN0YXRlLgpGb3IgdGhlIGFydGljbGUgdHlwZXMgdGhpcyBtb2R1bGUgYXNrcyBm
b3IgdGhlIGFsbG93ZWQgYXJ0aWNsZSB0eXBlcyBmb3IgQWdlbnRUaWNrZXRDbG9zZS4KClRoaXMg
bW9kdWxlIHVzZXMgdGhlIHN0YW5kYXJkIE9UUlMgbWVjaGFuaXNtcyB0byBjbG9zZSB0aGUgdGlj
a2V0IGFzIGFuIEFKQVggY2FsbCB0bwpBZ2VudFRpY2tldENsb3NlIGlzIHN0YXJ0ZWQuCgo9aGVh
ZDEgQVVUSE9SIEFORCBMSUNFTlNFCgpUaGlzIHBhY2thZ2Ugd2FzIHdyaXR0ZW4gYnkgUmVuw6ll
IELDpGNrZXIgRTxsdD5vdHJzQHBlcmwtc2VydmljZXMuZGVFPGd0Pi4KClRoZSBwYWNrYWdlIGlz
IGxpY2Vuc2VkIHVudGVyIEFHUEwuIElmIHlvdQpkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBz
ZWUgTDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQ+LgoKPWhlYWQxIEFDS05P
V0xFREdNRU5UUwoKPWhlYWQyIHRob210dXgKCkFkZGVkIHRyYW5zbGF0aW9uIGFuZCBmaXhlZCBU
VC10YWdzIGluIHRlbXBsYXRlCgo9aGVhZDIgUGF0cmljayBSYXVzY2hlcgoKRml4IGVycm9yIHdo
ZW4gdXNpbmcgUXVpY2tDbG9zZSB3aXRoIHBlbmRpbmcgc3RhdGUKCj1oZWFkMiBGaW5rcmVnaAoK
Rml4IGVuY29kaW5nIG9mIEdlcm1hbiB0cmFuc2xhdGlvbiBmaWxlCgo9aGVhZDIgVG9yc3RlbiBU
aGF1IChjLmEucC5lIElUKQoKT3duZXJJRCBhbmQgUGVuZGluZ0RpZmYgc2hvdWxkIGJlIHNldCB0
byAwIGlmIG5vIHZhbHVlIGlzIHBhc3NlZAoKPWhlYWQyIFNlYmFzdGlhbgoKVW5kZXIgc29tZSBj
aXJjdW1zdGFuY2VzIHRoZSB0aWNrZXQgaWQgd2Fzbid0IGRldGVjdGVkIGNvcnJlY3RseSAoaGFw
cGVuZWQgd2l0aCBwYXJlbnQtY2hpbGQgdGlja2V0cykKCj1oZWFkMiBCYWzDoXpzIMOaciwgTDxo
dHRwOi8vd3d3Lm90cnMtbWVnb2xkYXNvay5odT4KCkh1bmdhcmlhbiB0cmFuc2xhdGlvbiBhbmQg
c21hbGwgZml4ZXMKCj1jdXQKCg==
PWVuY29kaW5nIHV0Zi04Cgo9aGVhZDEgTsOJVgoKUXVpY2tDbG9zZSAtIGplZ3llayBsZXrDoXLD
oXNhIGVneWV0bGVuIGthdHRpbnTDoXNzYWwuCgo9aGVhZDEgTEXDjVLDgVMKCkhhIMO6anJhIMOp
cyDDumpyYSBoYXNvbmzDsyBqZWd5ZWkgdmFubmFrLCDDqXMgbWluZGVuIGFsa2Fsb21tYWwgdWd5
YW5henphbCBhIHN6w7Z2ZWdnZWwgesOhcmphIGxlIGF6b2thdCwKYWtrb3IgZXogYSBtb2R1bCDD
qXJkZWtlcyBsZWhldCBheiDDlm4gc3rDoW3DoXJhLiBFemVrYmVuIGF6IGVzZXRla2JlbiBib3Nz
emFudMOzIGxlaGV0IGEg4oCebGV6w6Fyw6Fz4oCdCmdvbWJyYSBrYXR0aW50YW5pIGEgamVneW5h
Z3nDrXTDoXNiYW4sIG1lZ3bDoXJuaSBhIOKAnmxlesOhcsOhc+KAnSBhYmxha290LCBiZcOtcm5p
IGEgc3rDtnZlZ2V0LCDDqXMgZWxrw7xsZGVuaS4KTmVtIHZvbG5hIG5hZ3lzemVyxbEgZWd5ZXRs
ZW4ga2F0dGludMOhc3NhbCBsZXrDoXJuaSBhIGplZ3lldCBhIGplZ3luYWd5w610w6FzYmFuPwoK
RXogYSBtb2R1bCBlZ3kgw7pqIGVsZW1ldCBhZCBob3p6w6EgYXogYWRtaW5pc3p0csOhY2nDs3Mg
dGVyw7xsZXRoZXosIGFob2wg4oCeZ3lvcnMgbGV6w6Fyw6Fz4oCdIHN6w7Z2ZWdla2V0CmhhdMOh
cm96aGF0IG1lZywgw6lzIGEgdGVsZXDDrXTDqXMgdXTDoW4gZWd5IMO6aiBsZWfDtnJkw7xsxZEg
ZG9ib3oga2Vyw7xsIGhvenrDoWFkw6FzcmEgYSBqZWd5bmFnecOtdMOhc2hvei4gSGEKa2l2w6Fs
YXN6dGphIGEgZ3lvcnMgbGV6w6Fyw6FzIHN6w7Z2ZWdlayBlZ3lpa8OpdCBlYmJlbiBhIGxlZ8O2
cmTDvGzFkWJlbiwgYWtrb3IgYSBqZWd5IGxlesOhcsOhc3JhIGtlcsO8bCwKw6lzIGVneSBiZWpl
Z3l6w6lzIGxlc3ogaG96esOhYWR2YSBhIGplZ3loZXouCgpBeiBhZG1pbmlzenRyw6FjacOzcyB0
ZXLDvGxldGVuIG1lZ2hhdMOhcm96aGF0amEgYSBiZWplZ3l6w6lzIHN6w7Z2ZWfDqXQsIGEgYmVq
ZWd5esOpcyB0w61wdXPDoXQgw6lzIGEgamVneQrDoWxsYXBvdMOhdC4gQSBqZWd5dMOtcHVzb2to
b3ogZXogYSBtb2R1bCBsZWvDqXJkZXppIGF6IEFnZW50VGlja2V0Q2xvc2Uga8OpcGVybnnFkW4g
ZW5nZWTDqWx5ZXpldHQKYmVqZWd5esOpc3TDrXB1c29rYXQuCgpFeiBhIG1vZHVsIGF6IE9UUlMg
c3phYnbDoW55b3MgbWVjaGFuaXptdXNhaXQgaGFzem7DoWxqYSBhIGplZ3kgbGV6w6Fyw6Fzw6Fo
b3ogb2x5YW4gQUpBWCBow612w6Fza8OpbnQsCmFtZWx5ZXQgYXogQWdlbnRUaWNrZXRDbG9zZSBr
w6lwZXJuecWRIGluZMOtdC4KCj1oZWFkMSBTWkVSWsWQIMOJUyBMSUNFTkMKCkV6dCBhIGNzb21h
Z290IFJlbsOpZSBCw6Rja2VyIEU8bHQ+b3Ryc0BwZXJsLXNlcnZpY2VzLmRlRTxndD4ga8Opc3rD
rXRldHRlLgoKRXogYSBjc29tYWcgQUdQTCBzemVyaW50IGxpY2VuY2VsdC4gSGEgbmVtIGthcHRh
IG1lZyBlenQgYSBmw6FqbHQsIGFra29yIG7DqXp6ZSBtZWcgYQpMPGh0dHA6Ly93d3cuZ251Lm9y
Zy9saWNlbnNlcy9hZ3BsLnR4dD4gb2xkYWxvbi4KCj1oZWFkMSBLw5ZTWsOWTkVUTllJTFbDgU7D
jVTDgVMKCj1oZWFkMiB0aG9tdHV4CgpGb3Jkw610w6FzIGhvenrDoWFkw6FzYSDDqXMgVFQtY8Ot
bWvDqWsgamF2w610w6FzYSBhIHNhYmxvbmJhbgoKPWhlYWQyIFBhdHJpY2sgUmF1c2NoZXIKCkhp
YmEgamF2w610w6FzYSBhIGd5b3JzIGxlesOhcsOhcyB2w6FyYWtvesOzIMOhbGxhcG90dGFsIHZh
bMOzIGhhc3puw6FsYXRha29yCgo9aGVhZDIgRmlua3JlZ2gKCkEgbsOpbWV0IG55ZWx2aSBmw6Fq
bCBrw7Nkb2zDoXPDoW5hayBqYXbDrXTDoXNhCgo9aGVhZDIgVG9yc3RlbiBUaGF1IChjLmEucC5l
IElUKQoKQSB0dWxhamRvbm9zYXpvbm9zw610w7N0IMOpcyBhIHbDoXJha296w6FzaSBrw7xsw7Zu
YnPDqWdldCAwLXJhIGtlbGwgw6FsbMOtdGFuaSwgaGEgbmVtIGtlcsO8bCDDqXJ0w6lrIMOhdGFk
w6FzcmEKCj1oZWFkMiBTZWJhc3RpYW4KCkJpem9ueW9zIGvDtnLDvGxtw6lueWVrIGvDtnrDtnR0
IGEgamVneWF6b25vc8OtdMOzdCBuZW0gaXNtZXJ0ZSBmZWwgaGVseWVzZW4gKHN6w7xsxZEtZ3ll
cm1layBqZWd5ZWtuw6lsCmZvcmR1bHQgZWzFkSkKCj1oZWFkMiDDmnIgQmFsw6F6cywgTDxodHRw
Oi8vd3d3Lm90cnMtbWVnb2xkYXNvay5odT4KCk1hZ3lhciBmb3Jkw610w6FzIMOpcyBraXNlYmIg
amF2w610w6Fzb2sKCj1jdXQKCj1oZWFkMSBNQUdZQVIgRk9SRMONVMOBUwoKQSBtYWd5YXIgZm9y
ZMOtdMOhc3QgYXogT1RSUy1tZWdvbGTDoXNvayBjc2FwYXRhIGvDqXN6w610ZXR0ZS4KQ29weXJp
Z2h0IChDKSAyMDE2IMOaciBCYWzDoXpzLCBMPGh0dHA6Ly9vdHJzLW1lZ29sZGFzb2suaHU+Cgo=
Ly8gLS0KLy8gUXVpY2tDbG9zZS5BZG1pbi5Vc2VyU2VhcmNoLmpzIC0gcHJvdmlkZXMgdGhlIHNw
ZWNpYWwgbW9kdWxlIGZ1bmN0aW9ucyBmb3IgdGhlIHVzZXIgc2VhcmNoCi8vIC0tCi8vIFRoaXMg
c29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywg
c2VlCi8vIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24g
KEFHUEwpLiBJZiB5b3UKLy8gZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93
d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KLy8gLS0KCiJ1c2Ugc3RyaWN0IjsKCnZhciBR
dWlja0Nsb3NlID0gUXVpY2tDbG9zZSB8fCB7fTsKUXVpY2tDbG9zZS5BZG1pbiA9IFF1aWNrQ2xv
c2UuQWRtaW4gfHwge307CgovKioKICogQG5hbWVzcGFjZQogKiBAZXhwb3J0cyBUYXJnZXROUyBh
cyBRdWlja0Nsb3NlLkFkbWluLlVzZXJTZWFyY2gKICogQGRlc2NyaXB0aW9uCiAqICAgICAgVGhp
cyBuYW1lc3BhY2UgY29udGFpbnMgdGhlIHNwZWNpYWwgbW9kdWxlIGZ1bmN0aW9ucyBmb3IgdGhl
IHVzZXIgc2VhcmNoLgogKi8KUXVpY2tDbG9zZS5BZG1pbi5Vc2VyU2VhcmNoID0gKGZ1bmN0aW9u
IChUYXJnZXROUykgewoKICAgIC8qKgogICAgICogQGZ1bmN0aW9uCiAgICAgKiBAcGFyYW0ge2pR
dWVyeU9iamVjdH0gJEVsZW1lbnQgVGhlIGpRdWVyeSBvYmplY3Qgb2YgdGhlIGlucHV0IGZpZWxk
IHdpdGggYXV0b2NvbXBsZXRlCiAgICAgKiBAcGFyYW0ge0Jvb2xlYW59IEFjdGl2ZUF1dG9Db21w
bGV0ZSBTZXQgdG8gZmFsc2UsIGlmIGF1dG9jb21wbGV0ZSBzaG91bGQgb25seSBiZSBzdGFydGVk
IGJ5IGNsaWNrIG9uIGEgYnV0dG9uIG5leHQgdG8gdGhlIGlucHV0IGZpZWxkCiAgICAgKiBAcmV0
dXJuIG5vdGhpbmcKICAgICAqICAgICAgVGhpcyBmdW5jdGlvbiBpbml0aWFsaXplcyB0aGUgc3Bl
Y2lhbCBtb2R1bGUgZnVuY3Rpb25zCiAgICAgKi8KICAgIFRhcmdldE5TLkluaXQgPSBmdW5jdGlv
biAoJEVsZW1lbnQsIEFjdGl2ZUF1dG9Db21wbGV0ZSkgewoKICAgICAgICBpZiAodHlwZW9mIEFj
dGl2ZUF1dG9Db21wbGV0ZSA9PT0gJ3VuZGVmaW5lZCcpIHsKICAgICAgICAgICAgQWN0aXZlQXV0
b0NvbXBsZXRlID0gdHJ1ZTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIEFj
dGl2ZUF1dG9Db21wbGV0ZSA9ICEhQWN0aXZlQXV0b0NvbXBsZXRlOwogICAgICAgIH0KCiAgICAg
ICAgaWYgKGlzSlF1ZXJ5T2JqZWN0KCRFbGVtZW50KSkgewogICAgICAgICAgICAkRWxlbWVudC5h
dXRvY29tcGxldGUoewogICAgICAgICAgICAgICAgbWluTGVuZ3RoOiBBY3RpdmVBdXRvQ29tcGxl
dGUgPyBDb3JlLkNvbmZpZy5HZXQoJ1VzZXJBdXRvY29tcGxldGUuTWluUXVlcnlMZW5ndGgnKSA6
IDUwMCwKICAgICAgICAgICAgICAgIGRlbGF5OiBDb3JlLkNvbmZpZy5HZXQoJ1VzZXJBdXRvY29t
cGxldGUuUXVlcnlEZWxheScpLAogICAgICAgICAgICAgICAgc291cmNlOiBmdW5jdGlvbiAoUmVx
dWVzdCwgUmVzcG9uc2UpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgVVJMID0gQ29yZS5Db25m
aWcuR2V0KCdCYXNlbGluaycpLCBEYXRhID0gewogICAgICAgICAgICAgICAgICAgICAgICBBY3Rp
b246ICdBZ2VudFF1aWNrQ2xvc2VVc2VyU2VhcmNoJywKICAgICAgICAgICAgICAgICAgICAgICAg
VGVybTogUmVxdWVzdC50ZXJtICsgJyonLAogICAgICAgICAgICAgICAgICAgICAgICBNYXhSZXN1
bHRzOiBDb3JlLkNvbmZpZy5HZXQoJ1VzZXJBdXRvY29tcGxldGUuTWF4UmVzdWx0c0Rpc3BsYXll
ZCcpLAogICAgICAgICAgICAgICAgICAgICAgICBHcm91cHMgOiBDb3JlLkNvbmZpZy5HZXQoJ1Vz
ZXJBdXRvY29tcGxldGUuR3JvdXBzJykgfHwgJycKICAgICAgICAgICAgICAgICAgICB9OwogICAg
ICAgICAgICAgICAgICAgIENvcmUuQUpBWC5GdW5jdGlvbkNhbGwoVVJMLCBEYXRhLCBmdW5jdGlv
biAoUmVzdWx0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBEYXRhID0gW107CiAgICAg
ICAgICAgICAgICAgICAgICAgICQuZWFjaChSZXN1bHQsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIERhdGEucHVzaCh7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbGFiZWw6IHRoaXMuVXNlclZhbHVlICsgIiAoIiArIHRoaXMuVXNlcktleSArICIpIiwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdGhpcy5Vc2VyVmFsdWUKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgICAgICB9KTsK
ICAgICAgICAgICAgICAgICAgICAgICAgUmVzcG9uc2UoRGF0YSk7CiAgICAgICAgICAgICAgICAg
ICAgfSk7CiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgc2VsZWN0OiBmdW5jdGlv
biAoRXZlbnQsIFVJKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIFVzZXJLZXkgPSBVSS5pdGVt
LmxhYmVsLnJlcGxhY2UoLy4qXCgoLiopXCkkLywgJyQxJyk7CgogICAgICAgICAgICAgICAgICAg
ICRFbGVtZW50LnZhbChVSS5pdGVtLnZhbHVlKTsKCiAgICAgICAgICAgICAgICAgICAgLy8gc2V0
IGhpZGRlbiBmaWVsZCBTZWxlY3RlZEN1c3RvbWVyVXNlcgogICAgICAgICAgICAgICAgICAgICQo
JyMnICsgJEVsZW1lbnQuYXR0cignaWQnKSArICdTZWxlY3RlZCcpLnZhbChVc2VyS2V5KTsKCiAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICB9KTsKCiAgICAgICAgICAgIGlmICghQWN0aXZlQXV0b0NvbXBsZXRlKSB7CiAgICAgICAg
ICAgICAgICAkRWxlbWVudC5hZnRlcignPGJ1dHRvbiBpZD0iJyArICRFbGVtZW50LmF0dHIoJ2lk
JykgKyAnU2VhcmNoIiB0eXBlPSJidXR0b24iPicgKyBDb3JlLkNvbmZpZy5HZXQoJ1VzZXJBdXRv
Y29tcGxldGUuU2VhcmNoQnV0dG9uVGV4dCcpICsgJzwvYnV0dG9uPicpOwogICAgICAgICAgICAg
ICAgJCgnIycgKyAkRWxlbWVudC5hdHRyKCdpZCcpICsgJ1NlYXJjaCcpLmNsaWNrKGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgICAgICAgICAgICAkRWxlbWVudC5hdXRvY29tcGxldGUoIm9wdGlvbiIs
ICJtaW5MZW5ndGgiLCAwKTsKICAgICAgICAgICAgICAgICAgICAkRWxlbWVudC5hdXRvY29tcGxl
dGUoInNlYXJjaCIpOwogICAgICAgICAgICAgICAgICAgICRFbGVtZW50LmF1dG9jb21wbGV0ZSgi
b3B0aW9uIiwgIm1pbkxlbmd0aCIsIDUwMCk7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAg
ICAgfQogICAgICAgIH0KCiAgICAgICAgLy8gT24gdW5sb2FkIHJlbW92ZSBvbGQgc2VsZWN0ZWQg
ZGF0YS4gSWYgdGhlIHBhZ2UgaXMgcmVsb2FkZWQgKHdpdGggRjUpIHRoaXMgZGF0YSBzdGF5cyBp
biB0aGUgZmllbGQgYW5kIGludm9rZXMgYW4gYWpheCByZXF1ZXN0IG90aGVyd2lzZQogICAgICAg
ICQod2luZG93KS5iaW5kKCd1bmxvYWQnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgJCgnIycg
KyAkRWxlbWVudC5hdHRyKCdpZCcpICsgJ1NlbGVjdGVkJykudmFsKCcnKTsKICAgICAgICB9KTsK
ICAgIH07CgogICAgcmV0dXJuIFRhcmdldE5TOwp9KFF1aWNrQ2xvc2UuQWRtaW4uVXNlclNlYXJj
aCB8fCB7fSkpOwo=
Ly8gLS0KLy8gUXVpY2tDbG9zZS5Db3JlLmpzIC0gcHJvdmlkZXMgdGhlIHNwZWNpYWwgbW9kdWxl
IGZ1bmN0aW9ucyBmb3IgdGhlIHVzZXIgc2VhcmNoCi8vIC0tCi8vIFRoaXMgc29mdHdhcmUgY29t
ZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCi8vIHRoZSBl
bmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5
b3UKLy8gZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9s
aWNlbnNlcy9hZ3BsLnR4dC4KLy8gLS0KCiJ1c2Ugc3RyaWN0IjsKCnZhciBRdWlja0Nsb3NlID0g
UXVpY2tDbG9zZSB8fCB7fTsKCi8qKgogKiBAbmFtZXNwYWNlCiAqIEBleHBvcnRzIFRhcmdldE5T
IGFzIFF1aWNrQ2xvc2UuQ29yZQogKiBAZGVzY3JpcHRpb24KICogICAgICBUaGlzIG5hbWVzcGFj
ZSBjb250YWlucyB0aGUgc3BlY2lhbCBtb2R1bGUgZnVuY3Rpb25zIGZvciB0aGUgdXNlciBzZWFy
Y2guCiAqLwpRdWlja0Nsb3NlLkNvcmUgPSAoZnVuY3Rpb24gKFRhcmdldE5TKSB7CiAgICAkKCcj
Q3JlYXRlQXJ0aWNsZScpLm9uKCdjbGljaycsIGZ1bmN0aW9uKCkgewogICAgICAgIGlmICggJCh0
aGlzKS5pcygnOmNoZWNrZWQnKSApIHsKICAgICAgICAgICAgJCgnI0FydGljbGVGaWVsZHMnKS5y
ZW1vdmVDbGFzcygnSGlkZGVuJyk7CiAgICAgICAgICAgICQoJyNSaWNoVGV4dCcpLmFkZENsYXNz
KCdWYWxpZGF0ZV9SZXF1aXJlZCcpOwogICAgICAgICAgICAkKCcjU3ViamVjdCcpLmFkZENsYXNz
KCdWYWxpZGF0ZV9SZXF1aXJlZCcpOwogICAgICAgICAgICBDb3JlLlVJLklucHV0RmllbGRzLklu
aXRTZWxlY3QoICQoJyNBcnRpY2xlVHlwZScpICk7CiAgICAgICAgfQogICAgICAgIGVsc2Ugewog
ICAgICAgICAgICBDS0VESVRPUi5pbnN0YW5jZXMuUmljaFRleHQuc2V0RGF0YSggJycgKTsKICAg
ICAgICAgICAgJCgnI1JpY2hUZXh0JykucmVtb3ZlQ2xhc3MoJ1ZhbGlkYXRlX1JlcXVpcmVkJyk7
CiAgICAgICAgICAgICQoJyNTdWJqZWN0JykucmVtb3ZlQ2xhc3MoJ1ZhbGlkYXRlX1JlcXVpcmVk
JykudmFsKCcnKTsKICAgICAgICAgICAgJCgnI0FydGljbGVGaWVsZHMnKS5hZGRDbGFzcygnSGlk
ZGVuJyk7CiAgICAgICAgfQogICAgfSk7CgogICAgaWYgKCAkKCcjQ3JlYXRlQXJ0aWNsZScpLmlz
KCc6Y2hlY2tlZCcpICkgewogICAgICAgICQoJyNBcnRpY2xlRmllbGRzJykucmVtb3ZlQ2xhc3Mo
J0hpZGRlbicpOwogICAgfQoKICAgIHJldHVybiBUYXJnZXROUzsKfShRdWlja0Nsb3NlLkNvcmUg
fHwge30pKTsKCg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAxNyBQZXJsLVNlcnZpY2VzLmRlLCBodHRwOi8vcGVybC1z
ZXJ2aWNlcy5kZQojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8g
V0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZv
ciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRo
aXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoK
cGFja2FnZSB2YXI6OnBhY2thZ2VzZXR1cDo6UXVpY2tDbG9zZTsKCnVzZSBzdHJpY3Q7CnVzZSB3
YXJuaW5nczsKCnVzZSB1dGY4OwoKdXNlIEZpbGU6OkJhc2VuYW1lOwp1c2UgTGlzdDo6VXRpbCBx
dyhmaXJzdCk7CnVzZSBLZXJuZWw6OlN5c3RlbTo6VmFyaWFibGVDaGVjayBxdyg6YWxsKTsKCm91
ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gcXcoCiAgICBLZXJuZWw6OkNvbmZpZwogICAgS2VybmVs
OjpTeXN0ZW06OlN5c0NvbmZpZwogICAgS2VybmVsOjpTeXN0ZW06OlZhbGlkCiAgICBLZXJuZWw6
OlN5c3RlbTo6RHluYW1pY0ZpZWxkCik7Cgo9aGVhZDEgTkFNRQoKVGlja2V0QXR0YWNobWVudHMu
cG0gLSBjb2RlIHRvIGV4Y2VjdXRlIGR1cmluZyBwYWNrYWdlIGluc3RhbGxhdGlvbgoKPWhlYWQx
IFNZTk9QU0lTCgpBbGwgZnVuY3Rpb25zCgo9aGVhZDEgUFVCTElDIElOVEVSRkFDRQoKPW92ZXIg
NAoKPWN1dAoKPWl0ZW0gbmV3KCkKCmNyZWF0ZSBhbiBvYmplY3QKCj1jdXQKCnN1YiBuZXcgewog
ICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZv
ciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7Cgog
ICAgcmV0dXJuICRTZWxmOwp9Cgo9aXRlbSBDb2RlSW5zdGFsbCgpCgpydW4gdGhlIGNvZGUgaW5z
dGFsbCBwYXJ0CgogICAgbXkgJFJlc3VsdCA9ICRDb2RlT2JqZWN0LT5Db2RlSW5zdGFsbCgpOwoK
PWN1dAoKc3ViIENvZGVJbnN0YWxsIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87Cgog
ICAgcmV0dXJuIDE7Cn0KCj1pdGVtIENvZGVSZWluc3RhbGwoKQoKcnVuIHRoZSBjb2RlIHJlaW5z
dGFsbCBwYXJ0CgogICAgbXkgJFJlc3VsdCA9ICRDb2RlT2JqZWN0LT5Db2RlUmVpbnN0YWxsKCk7
Cgo9Y3V0CgpzdWIgQ29kZVJlaW5zdGFsbCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBf
OwoKICAgIHJldHVybiAxOwp9Cgo9aXRlbSBDb2RlVXBncmFkZSgpCgpydW4gdGhlIGNvZGUgdXBn
cmFkZSBwYXJ0CgogICAgbXkgJFJlc3VsdCA9ICRDb2RlT2JqZWN0LT5Db2RlVXBncmFkZSgpOwoK
PWN1dAoKc3ViIENvZGVVcGdyYWRlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87Cgog
ICAgcmV0dXJuIDE7Cn0KCj1pdGVtIENvZGVVbmluc3RhbGwoKQoKcnVuIHRoZSBjb2RlIHVuaW5z
dGFsbCBwYXJ0CgogICAgbXkgJFJlc3VsdCA9ICRDb2RlT2JqZWN0LT5Db2RlVW5pbnN0YWxsKCk7
Cgo9Y3V0CgpzdWIgQ29kZVVuaW5zdGFsbCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBf
OwoKICAgIHJldHVybiAxOwp9CgpzdWIgQ29kZVVwZ3JhZGVfNl8wXzEgewogICAgbXkgKCAkU2Vs
ZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdL
ZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICBteSAlVHlwZUlEVG9OYW1lID0gKAogICAgICAgIDEg
ID0+IFsnZW1haWwtZXh0ZXJuYWwnLCAnRW1haWwnLCAxIF0sCiAgICAgICAgMiAgPT4gWydlbWFp
bC1pbnRlcm5hbCcsICdFbWFpbCcsIDAgXSwKICAgICAgICAzICA9PiBbJ2VtYWlsLW5vdGlmaWNh
dGlvbi1leHQnLCAnRW1haWwnLCAxIF0sCiAgICAgICAgNCAgPT4gWydlbWFpbC1ub3RpZmljYXRp
b24taW50JywgJ0VtYWlsJywgMCBdLAogICAgICAgIDUgID0+IFsncGhvbmUnLCAnUGhvbmUnLCAw
XSwKICAgICAgICA2ICA9PiBbJ2ZheCcsICdQaG9uZScsIDBdLAogICAgICAgIDcgID0+IFsnc21z
JywgJ1Bob25lJywgMF0sCiAgICAgICAgOCAgPT4gWyd3ZWJyZXF1ZXN0JywgJ0ludGVybmFsJywg
MCBdLAogICAgICAgIDkgID0+IFsnbm90ZS1pbnRlcm5hbCcsICdJbnRlcm5hbCcsIDAgXSwKICAg
ICAgICAxMCA9PiBbJ25vdGUtZXh0ZXJuYWwnLCAnSW50ZXJuYWwnLCAxIF0sCiAgICApOwoKICAg
IG15ICRTZWxlY3QgPSBxflNFTEVDVCBpZCwgYXJ0aWNsZV90eXBlX2lkIEZST00gcHNfcXVpY2tf
Y2xvc2V+OwogICAgJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgIFNRTCA9PiAkU2VsZWN0LAog
ICAgKTsKCiAgICBteSAlTmV3RGF0YTsKCiAgICBST1c6CiAgICB3aGlsZSAoIG15IEBSb3cgPSAk
REJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICBteSAoJE5hbWUsICRDaGFubmVs
LCAkVmlld2FibGUpID0gQHsgJFR5cGVJRFRvTmFtZXsgJFJvd1sxXSB9IHx8IFtdIH07CiAgICAg
ICAgbmV4dCBST1cgaWYgISROYW1lOwoKICAgICAgICAkTmV3RGF0YXskUm93WzBdfSA9IHsKICAg
ICAgICAgICAgQXJ0aWNsZVR5cGUgICAgID0+ICRDaGFubmVsLAogICAgICAgICAgICBBcnRpY2xl
Q3VzdG9tZXIgPT4gJFZpZXdhYmxlLAogICAgICAgIH07CiAgICB9CgogICAgbXkgJFVwZGF0ZSA9
IHF+CiAgICAgICAgVVBEQVRFIHBzX3F1aWNrX2Nsb3NlIFNFVCBhcnRpY2xlX3R5cGUgPSA/LCBh
cnRpY2xlX2N1c3RvbWVyID0gPyBXSEVSRSBpZCA9ID8KICAgIH47CgogICAgZm9yIG15ICRJRCAo
IHNvcnQga2V5cyAlTmV3RGF0YSApIHsKICAgICAgICBteSBAQmluZCA9ICggQHsgJE5ld0RhdGF7
JElEfSB9e3F3L0FydGljbGVUeXBlIEFydGljbGVDdXN0b21lci99LCAkSUQgKTsKCiAgICAgICAg
JERCT2JqZWN0LT5EbygKICAgICAgICAgICAgU1FMICA9PiAkVXBkYXRlLAogICAgICAgICAgICBC
aW5kID0+IFsgbWFwIHsgXCRfIH1AQmluZCBdLAogICAgICAgICk7CiAgICB9CgogICAgIyBEZWxl
dGUgdGFibGUgY29sdW1uCiAgICBteSAkRGVsZXRlID0gcX5BTFRFUiBUQUJMRSBwc19xdWlja19j
bG9zZSBEUk9QIENPTFVNTiBhcnRpY2xlX3R5cGVfaWR+OwogICAgJERCT2JqZWN0LT5EbygKICAg
ICAgICBTUUwgPT4gJERlbGV0ZSwKICAgICk7CgogICAgcmV0dXJuIDE7Cn0KCjE7CgoKPWJhY2sK
Cj1oZWFkMSBURVJNUyBBTkQgQ09ORElUSU9OUwoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFC
U09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUg
Q09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQpkaWQgbm90IHJl
Y2VpdmUgdGhpcyBmaWxlLCBzZWUgTDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50
eHQ+LgoKPWN1dAoK
Get('var::packagesetup::' . $Param{Structure}->{Name}->{Content} )->CodeUpgrade_6_0_1();
]]>
2021-12-23 08:29:38reb