JIRAPackage
5.0.13
5.0.x
JIRA::REST
REST::Client
Time::Piece
catWorkX GmbH
http://www.catworkx.de
Ein Modul, um Tickets in ein JIRA zu eskalieren.
A module giving the option to escalate tickets into JIRA.
GNU AFFERO GENERAL PUBLIC LICENSE Version 3, November 2007
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiID8+CjxvdHJzX2NvbmZpZyB2ZXJz
aW9uPSIxLjAiIGluaXQ9IkNvbmZpZyI+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJGcm9udGVuZDo6
TW9kdWxlIyMjQWdlbnRUaWNrZXRKSVJBIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAg
IDxEZXNjcmlwdGlvbiBMYW5nPSJlbiI+RnJvbnRlbmRNb2R1bGVSZWdpc3RyYXRpb24gZm9yIHRo
ZSBUaWNrZXRKSVJBIG1vZHVsZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxEZXNjcmlwdGlvbiBM
YW5nPSJkZSI+RnJvbnRlbmRNb2R1bFJlZ2lzdHJhdGlvbiBmw7xyIGRhcyBUaWNrZXRKSVJBIE1v
ZHVsLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPkpJUkE8L0dyb3VwPgogICAgICAgIDxT
dWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjwvU3ViR3JvdXA+CiAg
ICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxGcm9udGVuZE1vZHVsZVJlZz4KICAgICAgICAg
ICAgICAgIDxUaXRsZT5UaWNrZXRKSVJBPC9UaXRsZT4KICAgICAgICAgICAgICAgIDxEZXNjcmlw
dGlvbj5UaWNrZXRKSVJBPC9EZXNjcmlwdGlvbj4KICAgICAgICAgICAgICAgIDxOYXZCYXJOYW1l
PlRpY2tldEpJUkE8L05hdkJhck5hbWU+CiAgICAgICAgICAgIDwvRnJvbnRlbmRNb2R1bGVSZWc+
CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFt
ZT0iVGlja2V0OjpGcm9udGVuZDo6TWVudU1vZHVsZSMjIzkwMC1KSVJBIiBSZXF1aXJlZD0iMCIg
VmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBMYW5nPSJlbiI+TW9kdWxlIHRvIHNob3dz
IGEgSklSQS1saW5rIGluIG1lbnUgb2YgdGhlIHRpY2tldCB6b29tLjwvRGVzY3JpcHRpb24+CiAg
ICAgICAgPERlc2NyaXB0aW9uIExhbmc9ImRlIj5NaXQgZGllc2VtIE1vZHVsIHdpcmQgZGVyIEpJ
UkEtTGluayBpbiBkZXIgTGlua2xlaXN0ZSBkZXIgVGlja2V0YW5zaWNodCBhbmdlemVpZ3QuPC9E
ZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+SklSQTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3Vw
PkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpNZW51TW9kdWxlPC9TdWJHcm91cD4KICAgICAgICA8
U2V0dGluZz4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1v
ZHVsZSI+S2VybmVsOjpPdXRwdXQ6OkhUTUw6OlRpY2tldE1lbnU6OkpJUkE8L0l0ZW0+CiAgICAg
ICAgICAgICAgICA8SXRlbSBLZXk9Ik5hbWUiPkpJUkE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8
SXRlbSBLZXk9IkFjdGlvbiI+QWdlbnRUaWNrZXRKSVJBPC9JdGVtPgogICAgICAgICAgICAgICAg
PEl0ZW0gS2V5PSJUYXJnZXQiPjwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwv
U2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IlRpY2tldEpJ
UkEjIyNVUkwiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIExh
bmc9ImVuIj5UaGUgVVJMIG9mIHRoZSBKSVJBIHNlcnZlciwgaW5jbHVkZSB0aGUgcHJvdG9jb2wg
YW5kIHRoZSBwb3J0IGlmIHJlcXVpcmVkIGEgd2VsbCBhcyB0aGUgYmFzZSBpZiBhbnkuPC9EZXNj
cmlwdGlvbj4KICAgICAgICA8RGVzY3JpcHRpb24gTGFuZz0iZGUiPkRpZSBVUkwgZGVzIEpJUkEg
U2VydmVycywgaW5rbHVzaXZlIFByb3Rva29sbCBzb3dpZSBQb3J0IHVuZCBQZmFkLCBzb2Zlcm4g
enV0cmVmZmVuZC48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5KSVJBPC9Hcm91cD4KICAg
ICAgICA8U3ViR3JvdXA+Q29yZTo6UkVTVDwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAg
ICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+aHR0cDovL2NhdC1wYy0wNTAuY2F0d29ya3guZGU6
ODA4MDwvU3RyaW5nPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxD
b25maWdJdGVtIE5hbWU9IlRpY2tldEpJUkEjIyNQYXRoIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEi
PgogICAgICAgIDxEZXNjcmlwdGlvbiBMYW5nPSJlbiI+VGhlIHBhdGggb2YgdGhlIFJFU1QgQVBJ
LjwvRGVzY3JpcHRpb24+CiAgICAgICAgPERlc2NyaXB0aW9uIExhbmc9ImRlIj5EZXIgUGZhZCBk
ZXIgUkVTVCBBUEkuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+SklSQTwvR3JvdXA+CiAg
ICAgICAgPFN1Ykdyb3VwPkNvcmU6OlJFU1Q8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgog
ICAgICAgICAgICA8U3RyaW5nIFJlZ2V4PSIiPi9yZXN0L2FwaS8yLzwvU3RyaW5nPgogICAgICAg
IDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IlRpY2tl
dEpJUkEjIyNVc2VyIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlv
biBMYW5nPSJlbiI+VGhlIHVzZXJuYW1lIHRvIHVzZSB3aGVuIGxvZ2dpbmcgaW4gaW50byBKSVJB
IGlzc3Vlcy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxEZXNjcmlwdGlvbiBMYW5nPSJkZSI+RGVy
IEJlbnV0emVybmFtZSBtaXQgZGVtIHNpY2ggYmVpbSBKSVJBIGFuZ2VtZWxkZXQgd2lyZC48L0Rl
c2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5KSVJBPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+
Q29yZTo6UkVTVDwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJp
bmcgUmVnZXg9IiI+b3RyczwvU3RyaW5nPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmln
SXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IlRpY2tldEpJUkEjIyNQYXNzd29yZCIgUmVxdWly
ZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gTGFuZz0iZW4iPlRoZSBwYXNz
d29yZCB0byB1c2Ugd2hlbiBsb2dnaW5nIGluIGludG8gSklSQSBpc3N1ZXMuPC9EZXNjcmlwdGlv
bj4KICAgICAgICA8RGVzY3JpcHRpb24gTGFuZz0iZGUiPkRhcyBQYXNzd29ydCBtaXQgZGVtIHNp
Y2ggYmVpbSBKSVJBIGFuZ2VtZWxkZXQgd2lyZC48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91
cD5KSVJBPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+Q29yZTo6UkVTVDwvU3ViR3JvdXA+CiAg
ICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+b3RyczwvU3RyaW5n
PgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5h
bWU9IlRpY2tldEpJUkEjIyNSZXBvcnRlciIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAg
ICA8RGVzY3JpcHRpb24gTGFuZz0iZW4iPlRoZSBuYW1lIG9mIHRoZSByZXBvcnRlciB0byB1c2Ug
Zm9yIHRoZSBuZXcgSklSQSBpc3N1ZXMuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8RGVzY3JpcHRp
b24gTGFuZz0iZGUiPkRlciBOYW1lIGRlcyBSZXBvcnRlcnMgZsO8ciBuZXVlIEpJUkEgSXNzdWVz
LjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPkpJUkE8L0dyb3VwPgogICAgICAgIDxTdWJH
cm91cD5Db3JlOjpSRVNUPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAg
PFN0cmluZyBSZWdleD0iIj5vdHJzPC9TdHJpbmc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9D
b25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iVGlja2V0SklSQSMjI0Fzc2lnbmVlIiBS
ZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBMYW5nPSJlbiI+VGhl
IG5hbWUgb2YgdGhlIGFzc2lnbmVlIHRvIHVzZSBmb3IgdGhlIG5ldyBKSVJBIGlzc3Vlcy48L0Rl
c2NyaXB0aW9uPgogICAgICAgIDxEZXNjcmlwdGlvbiBMYW5nPSJkZSI+RGVyIE5hbWUgZGVzIEFz
c2lnbmVlIGbDvHIgbmV1ZSBKSVJBIElzc3Vlcy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91
cD5KSVJBPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+Q29yZTo6UkVTVDwvU3ViR3JvdXA+CiAg
ICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+YWRtaW48L1N0cmlu
Zz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBO
YW1lPSJKSVJBOjpOb0Fzc2lnbmVlIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxE
ZXNjcmlwdGlvbiBMYW5nPSJlbiI+SWYgZW5hYmxlZCwgdGhlIGFzc2lnbmVlIGlzbid0IHNlbnQg
dG8gSklSQS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5KSVJBPC9Hcm91cD4KICAgICAg
ICA8U3ViR3JvdXA+Q29yZTo6UkVTVDwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAg
ICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMCI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9
IjAiPk5vPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj5ZZXM8L0l0ZW0+CiAg
ICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4K
ICAgIDxDb25maWdJdGVtIE5hbWU9IlRpY2tldEpJUkEjIyNJbmNvbWluZ1VzZXIiIFJlcXVpcmVk
PSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIExhbmc9ImVuIj5UaGUgdXNlcm5h
bWUgdGhhdCBpcyB1c2VkIHdoZW4gSklSQSBsb2dzIGludG8gT1RSUyB0byB1cGRhdGUgdGlja2V0
cy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxEZXNjcmlwdGlvbiBMYW5nPSJkZSI+RGVyIEJlbnV0
emVybmFtZSBtaXQgZGVtIHNpY2ggSklSQSBhbSBPVFJTIGFubWVsZGV0LCB1bSBUaWNrZXRzIHp1
IGFrdHVhbGlzaWVyZW4uPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+SklSQTwvR3JvdXA+
CiAgICAgICAgPFN1Ykdyb3VwPkNvcmU6OlJFU1Q8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5n
PgogICAgICAgICAgICA8U3RyaW5nIFJlZ2V4PSIiPmppcmE8L1N0cmluZz4KICAgICAgICA8L1Nl
dHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJUaWNrZXRKSVJB
IyMjV29ya2Zsb3dDbG9zZUFjdGlvbk5hbWUiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAg
ICAgPERlc2NyaXB0aW9uIExhbmc9ImVuIj5UaGUgbmFtZSBvZiB0aGUgY2xvc2UgaXNzdWUgd29y
a2Zsb3cgYWN0aW9uIChkZWZhdWx0OiAiQ2xvc2UgSXNzdWUiLCBwYXkgYXR0ZW50aW9uIHRvIHRo
ZSBKSVJBIGxhbmd1YWdlIG9mIHVzZXIgaW4gVGlja2V0SklSQSMjI1VzZXIsIEVuZ2xpc2goVUsp
IHdvcmtzKS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxEZXNjcmlwdGlvbiBMYW5nPSJkZSI+RGVy
IE5hbWUgZGVyIEFrdGlvbiB6dW0gU2NobGllw59lbiB2b24gSXNzdWVzIChTdGFuZGFyZDogIkNs
b3NlIElzc3VlIiwgYWNodGVuIFNpZSBhdWYgZGllIEpJUkEgU3ByYWNoZSBkZXMgQmVudXRlcnMg
aW4gVGlja2V0SklSQSMjI1VzZXIsIEVuZ2xpc2goVUspIGlzdCBlbXBmZWhsZW5zd2VydCkuPC9E
ZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+SklSQTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3Vw
PkNvcmU6OlJFU1Q8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8U3Ry
aW5nPkNsb3NlIElzc3VlPC9TdHJpbmc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJ
dGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iVGlja2V0SklSQSMjI09UUlNUaWNrZXRBbGxvd2Vk
U3RhdGVzNENyZWF0ZSIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRp
b24gTGFuZz0iZW4iPlRoZSBuYW1lcyBvZiB0aGUgT1RSUyBUaWNrZXQgc3RhdGVzIHRoYXQgYWxs
b3cgdGhlIGNyZWF0aW9uIG9mIGEgSklSQSBJc3N1ZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxE
ZXNjcmlwdGlvbiBMYW5nPSJkZSI+RGllIE5hbWVuIGRlciBPVFJTIFRpY2tldCBadXN0w6RuZGUg
ZGllIGRhcyBFcnpldWdlbiBlaW5lcyBKSVJBIElzc3VlIHp1bGFzc2VuLjwvRGVzY3JpcHRpb24+
CiAgICAgICAgPEdyb3VwPkpJUkE8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Db3JlOjpSRVNU
PC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPFN0cmluZz5uZXcsb3Bl
bixtZXJnZWQscGVuZGluZyByZW1pbmRlcjwvU3RyaW5nPgogICAgICAgIDwvU2V0dGluZz4KICAg
IDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IlRpY2tldEpJUkEjIyNPVFJTVGlj
a2V0QWxsb3dlZFN0YXRlczRDbG9zZSIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8
RGVzY3JpcHRpb24gTGFuZz0iZW4iPlRoZSBuYW1lcyBvZiB0aGUgT1RSUyBUaWNrZXQgc3RhdGVz
IHRoYXQgYWxsb3cgdGhlIGNsb3Npbmcgb2YgYSBKSVJBIElzc3VlLjwvRGVzY3JpcHRpb24+CiAg
ICAgICAgPERlc2NyaXB0aW9uIExhbmc9ImRlIj5EaWUgTmFtZW4gZGVyIE9UUlMgVGlja2V0IFp1
c3TDpG5kZSBkaWUgZGFzIFNjaGxpZcOfZW4gZWluZXMgSklSQSBJc3N1ZSB6dWxhc3Nlbi48L0Rl
c2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5KSVJBPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+
Q29yZTo6UkVTVDwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJp
bmc+Y2xvc2VkIHN1Y2Nlc3NmdWwsY2xvc2VkIHVuc3VjY2Vzc2Z1bCxyZW1vdmVkPC9TdHJpbmc+
CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFt
ZT0iVGlja2V0SklSQSMjI09UUlNUaWNrZXRBbGxvd2VkU3RhdGVzNFVwZGF0ZSIgUmVxdWlyZWQ9
IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gTGFuZz0iZW4iPlRoZSBuYW1lcyBv
ZiB0aGUgT1RSUyBUaWNrZXQgc3RhdGVzIHRoYXQgYWxsb3cgdXBkYXRpbmcgdGhlIEpJUkEgSXNz
dWUuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8RGVzY3JpcHRpb24gTGFuZz0iZGUiPkRpZSBOYW1l
biBkZXIgT1RSUyBUaWNrZXQgWnVzdMOkbmRlIGRpZSBkYXMgQWt0dWFsaXNpZXJlbiBlaW5lcyBK
SVJBIElzc3VlIHp1bGFzc2VuLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPkpJUkE8L0dy
b3VwPgogICAgICAgIDxTdWJHcm91cD5Db3JlOjpSRVNUPC9TdWJHcm91cD4KICAgICAgICA8U2V0
dGluZz4KICAgICAgICAgICAgPFN0cmluZz5uZXcsb3BlbixtZXJnZWQscGVuZGluZyByZW1pbmRl
cjwvU3RyaW5nPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25m
aWdJdGVtIE5hbWU9IlRpY2tldDo6RXZlbnRNb2R1bGVQb3N0IyMjMDAxLVRpY2tldENsb3NlSklS
QSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gTGFuZz0iZW4i
PlVwZGF0ZSBKSVJBIG9uY2UgdGhlIHRpY2tldCBpcyBjbG9zZWQuPC9EZXNjcmlwdGlvbj4KICAg
ICAgICA8RGVzY3JpcHRpb24gTGFuZz0iZGUiPkRhcyBKSVJBIG5hY2ggZGVtIFNjaGxpZcOfZW4g
ZGVzIFRpY2tldHMgYWt0dWFsaXNpZXJlbi48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5K
SVJBPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+Q29yZTo6VGlja2V0PC9TdWJHcm91cD4KICAg
ICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBL
ZXk9Ik1vZHVsZSI+S2VybmVsOjpTeXN0ZW06OlRpY2tldDo6RXZlbnQ6OkNsb3NlSklSQUlzc3Vl
PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJFdmVudCI+VGlja2V0U3RhdGVVcGRh
dGU8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0Nv
bmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJUaWNrZXQ6OkV2ZW50TW9kdWxlUG9zdCMj
IzAwMS1UaWNrZXRDcmVhdGVKSVJBIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxE
ZXNjcmlwdGlvbiBMYW5nPSJlbiI+Q3JlYXRlIEpJUkEgSXNzdWUgb25jZSB0aGUgdGlja2V0IGlz
IHB1c2hlZCBpbnRvIGEgc3BlY2lmaWMgc3RhdGUuIFNlZSBUaWNrZXRKSVJBIyMjT1RSU1RpY2tl
dEFsbG93ZWRTdGF0ZXM0Q3JlYXRlIGZvciBkZXRhaWxzLjwvRGVzY3JpcHRpb24+CiAgICAgICAg
PERlc2NyaXB0aW9uIExhbmc9ImRlIj5FcnpldWdlIGRhcyBKSVJBIElzc3VlIHNvYmFsZCBkYXMg
T1RSUyBUaWNrZXQgaW4gZWluZW0gYmVzdGltbXRlbiBadXN0YW5kIGFuZ2Vrb21tZW4gaXN0LiBG
w7xyIERldGFpbHMsIHNpZWhlIFRpY2tldEpJUkEjIyNPVFJTVGlja2V0QWxsb3dlZFN0YXRlczRD
cmVhdGUuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+SklSQTwvR3JvdXA+CiAgICAgICAg
PFN1Ykdyb3VwPkNvcmU6OlRpY2tldDwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAg
ICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJNb2R1bGUiPktlcm5lbDo6
U3lzdGVtOjpUaWNrZXQ6OkV2ZW50OjpDcmVhdGVKSVJBSXNzdWU8L0l0ZW0+CiAgICAgICAgICAg
ICAgICA8SXRlbSBLZXk9IkV2ZW50Ij5UaWNrZXRTdGF0ZVVwZGF0ZTwvSXRlbT4KICAgICAgICAg
ICAgPC9IYXNoPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25m
aWdJdGVtIE5hbWU9IlRpY2tldDo6RXZlbnRNb2R1bGVQb3N0IyMjMDAxLVRpY2tldEpJUkFVcGRh
dGUiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIExhbmc9ImVu
Ij5VcGRhdGUgSklSQSBvbmNlIHRoZSB0aWNrZXQgdXBkYXRlZCB0aGUgdGl0bGUgZmllbGQuIER1
cGxpY2F0ZSB0aGlzIGVudHJ5IGZvciAqYWxsKiBmaWVsZHMgeW91IHdhbnQgdG8gc3luYyBpbnRv
IEpJUkEuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8RGVzY3JpcHRpb24gTGFuZz0iZGUiPkRhcyBK
SVJBIGJlaW0gYWt0dWFsaXNpZXJlbiBkZXMgRmVsZGVzICJ0aXRsZSIgZWJlbmZhbGxzIGFrdHVh
bGlzaWVyZW4uIERpZXNlciBFaW50cmFnIG11c3MgZsO8ciAqamVkZXMqIHp1IMO8YmVydHJhZ2Vu
ZGUgRmVsZCBleHRyYSBhbmdlbGVndCB3ZXJkZW4uPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3Jv
dXA+SklSQTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkNvcmU6OlRpY2tldDwvU3ViR3JvdXA+
CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0
ZW0gS2V5PSJNb2R1bGUiPktlcm5lbDo6U3lzdGVtOjpUaWNrZXQ6OkV2ZW50OjpVcGRhdGVKSVJB
SXNzdWU8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkV2ZW50Ij5UaWNrZXRUaXRs
ZVVwZGF0ZXxUaWNrZXRDdXN0b21lclVwZGF0ZXxUaWNrZXRGcmVlVGV4dFVwZGF0ZXxUaWNrZXRP
d25lclVwZGF0ZXxUaWNrZXREeW5hbWljRmllbGRVcGRhdGVfZmllbGQwMDF8VGlja2V0RHluYW1p
Y0ZpZWxkVXBkYXRlX2ZpZWxkMDAyfFRpY2tldER5bmFtaWNGaWVsZFVwZGF0ZV9maWVsZDAwM3xU
aWNrZXREeW5hbWljRmllbGRVcGRhdGVfZmllbGQwMDR8VGlja2V0RHluYW1pY0ZpZWxkVXBkYXRl
X2ZpZWxkMDA1fFRpY2tldER5bmFtaWNGaWVsZFVwZGF0ZV9maWVsZDAxMHxUaWNrZXREeW5hbWlj
RmllbGRVcGRhdGVfZmllbGQwMTE8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8
L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJUaWNrZXQ6
OkV2ZW50TW9kdWxlUG9zdCMjIzAwMS1BcnRpY2xlVG9KSVJBIiBSZXF1aXJlZD0iMCIgVmFsaWQ9
IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBMYW5nPSJlbiI+Q3JlYXRlIGEgSklSQSBDb21tZW50
IG9uY2UgYW4gYXJ0aWNsZSBpcyBjcmVhdGVkLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPERlc2Ny
aXB0aW9uIExhbmc9ImRlIj5FcnpldWdlIGVpbmVuIEpJUkEga29tbWVudGFyIHNvYmFsZCBlaW4g
T1RSUyBBcnRpa2VsIGVyemV1Z3Qgd3VyZGUuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+
SklSQTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkNvcmU6OlRpY2tldDwvU3ViR3JvdXA+CiAg
ICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0g
S2V5PSJNb2R1bGUiPktlcm5lbDo6U3lzdGVtOjpUaWNrZXQ6OkV2ZW50OjpBZGRBcnRpY2xlVG9K
SVJBSXNzdWU8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkV2ZW50Ij5BcnRpY2xl
Q3JlYXRlfEFydGljbGVVcGRhdGU8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8
L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJUaWNrZXRK
SVJBIyMjUHJvamVjdCIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRp
b24gTGFuZz0iZW4iPlRoZSBuYW1lIG9mIHRoZSBwcm9qZWN0IHRvIHVzZSBmb3IgdGhlIG5ldyBK
SVJBIGlzc3Vlcy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxEZXNjcmlwdGlvbiBMYW5nPSJkZSI+
RGVyIE5hbWUgZGVzIFByb2pla3RlcyBmw7xyIG5ldWUgSklSQSBJc3N1ZXMuPC9EZXNjcmlwdGlv
bj4KICAgICAgICA8R3JvdXA+SklSQTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkNvcmU6OlJF
U1Q8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8U3RyaW5nIFJlZ2V4
PSIiPk9UUlM8L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAg
ICA8Q29uZmlnSXRlbSBOYW1lPSJUaWNrZXRKSVJBIyMjSXNzdWVUeXBlIiBSZXF1aXJlZD0iMSIg
VmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBMYW5nPSJlbiI+VGhlIG5hbWUgb2YgdGhl
IHR5cGUgdG8gdXNlIGZvciB0aGUgbmV3IEpJUkEgaXNzdWVzLjwvRGVzY3JpcHRpb24+CiAgICAg
ICAgPERlc2NyaXB0aW9uIExhbmc9ImRlIj5EZXIgTmFtZSBkZXMgVHlwIGbDvHIgbmV1ZSBKSVJB
IElzc3Vlcy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5KSVJBPC9Hcm91cD4KICAgICAg
ICA8U3ViR3JvdXA+Q29yZTo6UkVTVDwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAg
ICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+QnVnPC9TdHJpbmc+CiAgICAgICAgPC9TZXR0aW5nPgog
ICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iVGlja2V0SklSQSMjI0pJUkEt
RGF0ZVRpbWVGb3JtYXQiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0
aW9uIExhbmc9ImVuIj5EYXRlIGZvcm1hdCB1c2VkIGluIEpJUkEsIGUuZy46IEpJUkE6IGRkL01N
TS95eSBoOm1tIGEgPSBPVFJTICVkLyViLyV5ICVJOiVNICVwPC9EZXNjcmlwdGlvbj4KICAgICAg
ICA8RGVzY3JpcHRpb24gTGFuZz0iZGUiPkRhcyB2b24gSklSQSBha3plcHRpZXJ0ZSBEYXR1bXNm
b3JtYXQsIHouQi46IEpJUkE6IGRkL01NTS95eSBoOm1tIGEgPSBPVFJTICVkLyViLyV5ICVJOiVN
ICVwPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+SklSQTwvR3JvdXA+CiAgICAgICAgPFN1
Ykdyb3VwPkNvcmU6OlJFU1Q8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAg
ICA8U3RyaW5nIFJlZ2V4PSIiPiVkLyViLyV5ICVJOiVNICVwPC9TdHJpbmc+CiAgICAgICAgPC9T
ZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iVGlja2V0SklS
QSMjI0pJUkEtRGF0ZUZvcm1hdCIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVz
Y3JpcHRpb24gTGFuZz0iZW4iPkRhdGUgZm9ybWF0IHVzZWQgaW4gSklSQSwgZS5nLjogSklSQTog
ZGQvTU1NL3l5ID0gT1RSUyAlZC8lYi8leTwvRGVzY3JpcHRpb24+CiAgICAgICAgPERlc2NyaXB0
aW9uIExhbmc9ImRlIj5EYXMgdm9uIEpJUkEgYWt6ZXB0aWVydGUgRGF0dW1zZm9ybWF0LCB6LkIu
OiBKSVJBOiBkZC9NTU0veXkgPSBPVFJTICVkLyViLyV5PC9EZXNjcmlwdGlvbj4KICAgICAgICA8
R3JvdXA+SklSQTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkNvcmU6OlJFU1Q8L1N1Ykdyb3Vw
PgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8U3RyaW5nIFJlZ2V4PSIiPiVkLyViLyV5
PC9TdHJpbmc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZp
Z0l0ZW0gTmFtZT0iVGlja2V0SklSQSMjI09UUlMtSklSQS1GaWVsZE1hcHBpbmciIFJlcXVpcmVk
PSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIExhbmc9ImVuIj5NYXBwaW5nIGZy
b20gT1RSUyBmaWVsZHMgdG8gSklSQSBGaWVsZHMuIEtleTogT1RSUzsgQ29udGVudDogSklSQS4g
UHJlZml4ZXM6ICJzdGQ6IiA9IHN0YW5kYXJkIGZpZWxkOyAiZHluOiIgPSBPVFJTIGR5bmFtaWMg
ZmllbGQ7ICJjdXN0OiIgPSBKSVJBIGN1c3RvbSBmaWVsZDsgImNhbGw6IiA9IE9UUlMvSklSQSBt
YXBwaW5nIGNhbGwgd2l0aCBmdWxsIFBlcmwgbW9kdWxlcGF0aCBQa2c6OlN1YixmdW5jIChlLmcu
IE1JTUU6OkJhc2U2NCxlbmNvZGVfYmFzZTY0KS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxEZXNj
cmlwdGlvbiBMYW5nPSJkZSI+QWJiaWxkdW5nIGRlciBPVFJTIEZlbGRlcm4genUgZGVuIEpJUkEg
RmVsZGVybi4gU2NobMO8c3NlbDogT1RSUzsgSW5oYWx0OiBKSVJBLiBQcsOkZml4ZTogInN0ZDoi
ID0gU3RhbmRhcmQgRmVsZDsgImR5bjoiID0gT1RSUyBEeW5hbWljIEZlbGQ7ICJjdXN0OiIgPSBK
SVJBIEN1c3RvbSBGZWxkOyAiY2FsbDoiID0gT1RSUy9KSVJBIE1hcHBpbmctRnVua3Rpb25zYXVm
cnVmIG1pdCB2b2xsZW0gUGVybCBNb2R1bGVwZmFkIFBrZzo6U3ViLGZ1bmMgKHouQi4gTUlNRTo6
QmFzZTY0LGVuY29kZV9iYXNlNjQpLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPkpJUkE8
L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Db3JlOjpSRVNUPC9TdWJHcm91cD4KICAgICAgICA8
U2V0dGluZz4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImR5
bjpkeW5hbWljRmllbGQxIj5jdXN0OmN1c3RvbUZpZWxkMTwvSXRlbT4KICAgICAgICAgICAgICAg
IDxJdGVtIEtleT0iZHluOmppcmFfcHJpbyI+c3RkOnByaW9yaXR5PC9JdGVtPgogICAgICAgICAg
ICAgICAgPEl0ZW0gS2V5PSJzdGQ6VGl0bGUiPnN0ZDpzdW1tYXJ5PC9JdGVtPgogICAgICAgICAg
ICAgICAgPEl0ZW0gS2V5PSJzdGQ6UXVldWUiPmN1c3Q6cXVldWU8L0l0ZW0+CiAgICAgICAgICAg
ICAgICA8SXRlbSBLZXk9Im1hcDpNb2Q6OlN1Yk1vZDo6ZnVuYyI+Y3VzdDpmaWVsZDE8L0l0ZW0+
CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImR5bjpkeW5hbWljRmllbGQyIj5tYXA6TW9kOjpT
dWJNb2QsZnVuYzI8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Im1hcDpNb2Q6OlN1
Yk1vZDo6ZnVuYzMiPm1hcDpNb2Q6OlN1Yk1vZCxmdW5jNDwvSXRlbT4KICAgICAgICAgICAgPC9I
YXNoPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVt
IE5hbWU9IkpJUkE6Ok9UUlNUaWNrZXRJREZpZWxkIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgog
ICAgICAgIDxEZXNjcmlwdGlvbiBMYW5nPSJlbiI+VGhlIElEIG9mIHRoZSBjdXN0b20gZmllbGQg
aW4gSklSQSB0aGF0IHN0b3JlcyB0aGUgT1RSUyB0aWNrZXQgSUQuPC9EZXNjcmlwdGlvbj4KICAg
ICAgICA8RGVzY3JpcHRpb24gTGFuZz0iZGUiPkRpZSBJRCBkZXMgRmVsZGVzIGluIEpJUkEsIGRh
cyBkaWUgT1RSUy1UaWNrZXRJRCBzcGVpY2hlcnQuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3Jv
dXA+SklSQTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkNvcmU6OlJFU1Q8L1N1Ykdyb3VwPgog
ICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8U3RyaW5nIFJlZ2V4PSIiPjEwMDAwPC9TdHJp
bmc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0g
TmFtZT0iSklSQTo6Q2FjaGVUVEwiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERl
c2NyaXB0aW9uIExhbmc9ImVuIj5UaW1lVG9MaXZlIGZvciBDYWNoZS48L0Rlc2NyaXB0aW9uPgog
ICAgICAgIDxEZXNjcmlwdGlvbiBMYW5nPSJkZSI+VGltZVRvTGl2ZSBmw7xyIENhY2hlPC9EZXNj
cmlwdGlvbj4KICAgICAgICA8R3JvdXA+SklSQTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkNv
cmU6OlJFU1Q8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8U3RyaW5n
IFJlZ2V4PSIiPjIwMDAwPC9TdHJpbmc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJ
dGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iSklSQTo6U1NMVmVyaWZ5IiBSZXF1aXJlZD0iMSIg
VmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBMYW5nPSJlbiI+VmVyaWZ5IGhvc3RuYW1l
IGZvciBTU0wgY29ubmVjdGlvbnMuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8RGVzY3JpcHRpb24g
TGFuZz0iZGUiPlZlcmlmaXppZXJlIGRlbiBIb3N0bmFtZW4gYmVpIFNTTC1WZXJiaW5kdW5nZW48
L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5KSVJBPC9Hcm91cD4KICAgICAgICA8U3ViR3Jv
dXA+Q29yZTo6UkVTVDwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxP
cHRpb24gU2VsZWN0ZWRJRD0iMSI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiPk5vPC9J
dGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj5ZZXM8L0l0ZW0+CiAgICAgICAgICAg
IDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25m
aWdJdGVtIE5hbWU9IkpJUkE6OkRlYnVnIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAg
IDxEZXNjcmlwdGlvbiBMYW5nPSJlbiI+RW5hYmxlcyBEZWJ1Z2dpbmcgZm9yIEpJUkEgcGFja2Fn
ZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxEZXNjcmlwdGlvbiBMYW5nPSJkZSI+QWt0aXZpZXJ0
IGRhcyBEZWJ1Z2dpbmcgZsO8ciBkYXMgSklSQS1QYWtldDwvRGVzY3JpcHRpb24+CiAgICAgICAg
PEdyb3VwPkpJUkE8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Db3JlPC9TdWJHcm91cD4KICAg
ICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPE9wdGlvbiBTZWxlY3RlZElEPSIwIj4KICAgICAg
ICAgICAgICAgIDxJdGVtIEtleT0iMCI+Tm88L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBL
ZXk9IjEiPlllczwvSXRlbT4KICAgICAgICAgICAgPC9PcHRpb24+CiAgICAgICAgPC9TZXR0aW5n
PgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iSklSQTo6U2hvd0RpYWxv
ZyIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRh
YmxlPSIxIj5TaG93IGRpYWxvZyB3aGVuIGlzc3VlIGluIEpJUkEgaXMgYWJvdXQgdG8gYmUgY3Jl
YXRlZC48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5KSVJBPC9Hcm91cD4KICAgICAgICA8
U3ViR3JvdXA+Q29yZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxP
cHRpb24gU2VsZWN0ZWRJRD0iMCI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiPk5vPC9J
dGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj5ZZXM8L0l0ZW0+CiAgICAgICAgICAg
IDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25m
aWdJdGVtIE5hbWU9IkpJUkE6OlNob3dQcm9qZWN0IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgog
ICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNob3cgUHJvamVjdCBmaWVsZCBp
biBjcmVhdGUgZGlhbG9nLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPkpJUkE8L0dyb3Vw
PgogICAgICAgIDxTdWJHcm91cD5DcmVhdGVJc3N1ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRp
bmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMSI+CiAgICAgICAgICAgICAgICA8
SXRlbSBLZXk9IjAiPk5vPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj5ZZXM8
L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29u
ZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IkpJUkE6OlNob3dBc3NpZ25lZSIgUmVxdWly
ZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5T
aG93IEFzc2lnbmVlIGZpZWxkIGluIGNyZWF0ZSBkaWFsb2cuPC9EZXNjcmlwdGlvbj4KICAgICAg
ICA8R3JvdXA+SklSQTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkNyZWF0ZUlzc3VlPC9TdWJH
cm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPE9wdGlvbiBTZWxlY3RlZElEPSIw
Ij4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMCI+Tm88L0l0ZW0+CiAgICAgICAgICAgICAg
ICA8SXRlbSBLZXk9IjEiPlllczwvSXRlbT4KICAgICAgICAgICAgPC9PcHRpb24+CiAgICAgICAg
PC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iSklSQTo6
U2hvd0F1dG9tYXRpY1VzZXIiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2Ny
aXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U2hvdyBhdXRvbWF0aWMgdXNlciBpbiBBc3NpZ25lZSBm
aWVsZCBpbiBjcmVhdGUgZGlhbG9nLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPkpJUkE8
L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5DcmVhdGVJc3N1ZTwvU3ViR3JvdXA+CiAgICAgICAg
PFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMCI+CiAgICAgICAgICAg
ICAgICA8SXRlbSBLZXk9IjAiPk5vPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIx
Ij5ZZXM8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAg
IDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IkpJUkE6OlNob3dJc3N1ZVR5cGUi
IFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJs
ZT0iMSI+U2hvdyBpc3N1ZSB0eXBlIGZpZWxkIGluIGNyZWF0ZSBkaWFsb2cuPC9EZXNjcmlwdGlv
bj4KICAgICAgICA8R3JvdXA+SklSQTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkNyZWF0ZUlz
c3VlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPE9wdGlvbiBTZWxl
Y3RlZElEPSIwIj4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMCI+Tm88L0l0ZW0+CiAgICAg
ICAgICAgICAgICA8SXRlbSBLZXk9IjEiPlllczwvSXRlbT4KICAgICAgICAgICAgPC9PcHRpb24+
CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFt
ZT0iRnJvbnRlbmQ6Ok1vZHVsZSMjI0FnZW50VGlja2V0SklSQURpYWxvZyIgUmVxdWlyZWQ9IjEi
IFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gTGFuZz0iZW4iPkZyb250ZW5kTW9kdWxl
UmVnaXN0cmF0aW9uIGZvciB0aGUgVGlja2V0SklSQSBkaWFsb2cgbW9kdWxlLjwvRGVzY3JpcHRp
b24+CiAgICAgICAgPERlc2NyaXB0aW9uIExhbmc9ImRlIj5Gcm9udGVuZE1vZHVsUmVnaXN0cmF0
aW9uIGbDvHIgZGFzIFRpY2tldEpJUkEtRGlhbG9nIE1vZHVsLjwvRGVzY3JpcHRpb24+CiAgICAg
ICAgPEdyb3VwPkpJUkE8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6
Ok1vZHVsZVJlZ2lzdHJhdGlvbjwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAg
ICAgIDxGcm9udGVuZE1vZHVsZVJlZz4KICAgICAgICAgICAgICAgIDxUaXRsZT5UaWNrZXRKSVJB
PC9UaXRsZT4KICAgICAgICAgICAgICAgIDxEZXNjcmlwdGlvbj5UaWNrZXRKSVJBPC9EZXNjcmlw
dGlvbj4KICAgICAgICAgICAgICAgIDxOYXZCYXJOYW1lPlRpY2tldEpJUkE8L05hdkJhck5hbWU+
CiAgICAgICAgICAgICAgICA8TG9hZGVyPgogICAgICAgICAgICAgICAgICAgIDxKYXZhU2NyaXB0
PkpJUkEuQXV0b2NvbXBsZXRlLmpzPC9KYXZhU2NyaXB0PgogICAgICAgICAgICAgICAgPC9Mb2Fk
ZXI+CiAgICAgICAgICAgIDwvRnJvbnRlbmRNb2R1bGVSZWc+CiAgICAgICAgPC9TZXR0aW5nPgog
ICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iRnJvbnRlbmQ6Ok91dHB1dDo6
RmlsdGVyRWxlbWVudFBvc3QjIyNPdXRwdXRGaWx0ZXJBcnRpY2xlTWVudU9UUlNUb0pJUkFMaW5r
IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFi
bGU9IjEiPkFkZCBhIGxpbmsgaW4gdGhlIGFydGljbGUgbWVudSB0byBjcmVhdGUgaXNzdWUgaW4g
SklSQSBmb3IgdGhlIGFydGljbGUuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+SklSQTwv
R3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPk91dHB1dEZpbHRlcjwvU3ViR3JvdXA+CiAgICAgICAg
PFNldHRpbmc+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJN
b2R1bGUiPktlcm5lbDo6T3V0cHV0OjpIVE1MOjpGaWx0ZXJFbGVtZW50UG9zdDo6T1RSU1RvSklS
QUxpbms8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRlbXBsYXRlcyI+CiAgICAg
ICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0i
QWdlbnRUaWNrZXRab29tIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDwvSGFzaD4KICAg
ICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvU2V0dGlu
Zz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IkpJUkE6OlByb2plY3RX
aGl0ZWxpc3QiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMCI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRy
YW5zbGF0YWJsZT0iMSI+SGVyZSB5b3UgY2FuIGRlZmluZSBhIGxpc3Qgb2YgcmVndWxhciBleHBy
ZXNzaW9ucy4gT25seSBwcm9qZWN0IGtleXMgdGhhdCBtYXRjaGVzIGF0IGxlYXN0IG9uZSBvZiB0
aG9zZSByZWd1bGFyIGV4cHJlc3Npb25zIGFyZSBzaG93biBpbiB0aGUgcHJvamVjdCBkcm9wZG93
biAoSklSQSBkaWFsb2cpLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPkpJUkE8L0dyb3Vw
PgogICAgICAgIDxTdWJHcm91cD5Db3JlOjpSRVNUPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGlu
Zz4KICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICA8L0FycmF5PgogICAgICAgIDwvU2V0
dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IkpJUkE6OlByb2pl
Y3RCbGFja2xpc3QiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMCI+CiAgICAgICAgPERlc2NyaXB0aW9u
IFRyYW5zbGF0YWJsZT0iMSI+SGVyZSB5b3UgY2FuIGRlZmluZSBhIGxpc3Qgb2YgcmVndWxhciBl
eHByZXNzaW9ucy4gUHJvamVjdCBrZXlzIHRoYXQgbWF0Y2hlcyBhdCBsZWFzdCBvbmUgb2YgdGhv
c2UgcmVndWxhciBleHByZXNzaW9ucyBhcmUgZXhjbHVkZWQgZnJvbSB0aGUgcHJvamVjdCBkcm9w
ZG93biAoSklSQSBkaWFsb2cpLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPkpJUkE8L0dy
b3VwPgogICAgICAgIDxTdWJHcm91cD5Db3JlOjpSRVNUPC9TdWJHcm91cD4KICAgICAgICA8U2V0
dGluZz4KICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICA8L0FycmF5PgogICAgICAgIDwv
U2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IkpJUkE6Oklz
c3VlU2VhcmNoTWF4UmVzdWx0cyIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVz
Y3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5NYXhpbXVtIG51bWJlciBvZiBpc3N1ZXMgc2hvd24g
aW4gdGhlIGF1dG9jb21wbGV0ZSBkcm9wZG93bi48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91
cD5KSVJBPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+Q29yZTo6UkVTVDwvU3ViR3JvdXA+CiAg
ICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+MzAwPC9TdHJpbmc+
CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFt
ZT0iSklSQTo6SXNzdWVTZWFyY2hTdGF0ZXMiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMCI+CiAgICAg
ICAgPERlc2NyaXB0aW9uIExhbmc9ImVuIj5IZXJlIHlvdSBjYW4gZGVmaW5lIGEgbGlzdCBvZiBz
dGF0ZXMgdG8gcmVzdHJpY3QgdGhlIGlzc3VlcyB0aGF0IGFyZSBzZWFyY2hlZCBmb3IuPC9EZXNj
cmlwdGlvbj4KICAgICAgICA8R3JvdXA+SklSQTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkNv
cmU6OlJFU1Q8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8QXJyYXk+
CiAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVt
Pgo8L290cnNfY29uZmlnPgo=
IyAgLS0KIyAgS2VybmVsL0xhbmd1YWdlL2RlX0FnZW50VGlja2V0SklSQS5wbSAtIGxhbmd1YWdl
IG1vZHVsZQojICBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxNSBjYXRXb3JrWCBHbWJIIGh0dHA6Ly93
d3cuY2F0d29ya3guZGUKIyAgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVM
WSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJ
TkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2Vp
dmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0Lgoj
IC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OmRlX0FnZW50VGlja2V0SklSQTsKCnVzZSBz
dHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7CgpzdWIgRGF0YSB7CiAgICBteSAkU2VsZiA9
IHNoaWZ0OwogICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIG5ldyBKSVJBIElzc3VlIGhhcyBi
ZWVuIGNyZWF0ZWQnfSA9ICdFaW4gbmV1ZXMgSklSQSBJc3N1ZSB3dXJkZSBlcnN0ZWxsdCc7CiAg
ICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgSklSQSBJc3N1ZSBjb3VsZCBub3QgYmUgY3JlYXRl
ZCd9ID0gJ0VpbiBKSVJBIElzc3VlIGtvbm50ZSBuaWNodCBlcnN0ZWxsdCB3ZXJkZW4nOwogICAk
U2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUbyB0aGUgaXNzdWUgKEpJUkEpJ30gPSAnWnVtIEpJUkEg
SXNzdWUnOwogICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydCYWNrIHRvIHRoZSB0aWNrZXQgKE9U
UlMpJ30gPSAnWnVyw7xjayB6dW0gT1RSUyBUaWNrZXQnOwogICAkU2VsZi0+e1RyYW5zbGF0aW9u
fS0+eydUaWNrZXQgbm90IG9wZW4uJ30gPSAnVGlja2V0IG5pY2h0IGltIG9mZmVuZW4gWnVzdGFu
ZC4nOwogICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydKSVJBIHRvIE9UUlMnfSA9ICdKSVJBIG5h
Y2ggT1RSUyc7CiAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rha2UgdGhpcyB0aWNrZXQgYmFj
ayBmcm9tIEpJUkEnfSA9ICdEaWVzZXMgVGlja2V0IGF1cyBKSVJBIHp1csO8Y2tob2xlbic7CiAg
ICRTZWxmLT57VHJhbnNsYXRpb259LT57J09UUlMgdG8gSklSQSd9ID0gJ09UUlMgbmFjaCBKSVJB
JzsKICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXNjYWxhdGUgdGhpcyB0aWNrZXQgdG8gSklS
QSd9ID0gJ0RpZXNlcyBUaWNrZXQgbmFjaCBKSVJBIGVza2FsaWVyZW4nOwogICAkU2VsZi0+e1Ry
YW5zbGF0aW9ufS0+eydDcmVhdGUgaXNzdWUgaW4gSklSQSd9ID0gJ1ZvcmdhbmcgaW4gSklSQSBl
cnN0ZWxsZW4nOwogICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0J30gPSAnUHJvamVr
dCc7CiAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Fzc2lnbmVlJ30gPSAnQmVhcmJlaXRlcic7
CiAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lzc3VlVHlwZSd9ID0gJ1ZvcmdhbmdzdHlwJzsK
ICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSXNzdWUnfSA9ICdWb3JnYW5nJzsKICAgJFNlbGYt
PntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIG5ldyBpc3N1ZSd9ID0gJ05ldWVuIFZvcmdhbmcgZXJz
dGVsbGVuJzsKICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGluayB3aXRoIEpJUkEgaXNzdWUn
fSA9ICdNaXQgSklSQS1Wb3JnYW5nIHZlcmtuw7xwZmVuJzsKICAgJFNlbGYtPntUcmFuc2xhdGlv
bn0tPnsnTGluayB3aXRoIGV4aXN0aW5nIGlzc3VlJ30gPSAnTWl0IGJlc3RlaGVuZGVtIFZvcmdh
bmcgdmVya27DvHBmZW4nOwogICAjJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJ30gPSAnJzsKICAg
cmV0dXJuIDE7Cn0KMTsK
IyAgLS0KIyAgS2VybmVsL0xhbmd1YWdlL2VuX0FnZW50VGlja2V0SklSQS5wbSAtIGxhbmd1YWdl
IG1vZHVsZQojICBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxNSBjYXRXb3JrWCBHbWJIIGh0dHA6Ly93
d3cuY2F0d29ya3guZGUKIyAgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVM
WSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJ
TkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2Vp
dmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0Lgoj
IC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OmVuX0FnZW50VGlja2V0SklSQTsKdXNlIHN0
cmljdDsKdXNlIHdhcm5pbmdzOwpzdWIgRGF0YSB7CiAgICBteSAkU2VsZiA9IHNoaWZ0OwogICAk
U2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIG5ldyBKSVJBIElzc3VlIGhhcyBiZWVuIGNyZWF0ZWQn
fSA9ICdBIG5ldyBKSVJBIElzc3VlIGhhcyBiZWVuIGNyZWF0ZWQnOwogICAkU2VsZi0+e1RyYW5z
bGF0aW9ufS0+eydBIEpJUkEgSXNzdWUgY291bGQgbm90IGJlIGNyZWF0ZWQnfSA9ICdBIEpJUkEg
SXNzdWUgY291bGQgbm90IGJlIGNyZWF0ZWQnOwogICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydU
byB0aGUgaXNzdWUgKEpJUkEpJ30gPSAnVG8gdGhlIGlzc3VlIChKSVJBKSc7CiAgICRTZWxmLT57
VHJhbnNsYXRpb259LT57J0JhY2sgdG8gdGhlIHRpY2tldCAoT1RSUyknfSA9ICdCYWNrIHRvIHRo
ZSB0aWNrZXQgKE9UUlMpJzsKICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGlja2V0IG5vdCBv
cGVuLid9ID0gJ1RpY2tldCBub3Qgb3Blbi4nOwogICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydK
SVJBIHRvIE9UUlMnfSA9ICdKSVJBIHRvIE9UUlMnOwogICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+
eydUYWtlIHRoaXMgdGlja2V0IGJhY2sgZnJvbSBKSVJBJ30gPSAnVGFrZSB0aGlzIHRpY2tldCBi
YWNrIGZyb20gSklSQSc7CiAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09UUlMgdG8gSklSQSd9
ID0gJ09UUlMgdG8gSklSQSc7CiAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VzY2FsYXRlIHRo
aXMgdGlja2V0IHRvIEpJUkEnfSA9ICdFc2NhbGF0ZSB0aGlzIHRpY2tldCB0byBKSVJBJzsKICAg
IyRTZWxmLT57VHJhbnNsYXRpb259LT57Jyd9ID0gJyc7CiAgIHJldHVybiAxOwp9CjE7Cg==
IyAgLS0KIyAgS2VybmVsL01vZHVsZXMvQWdlbnRUaWNrZXRKSVJBLnBtIC0gZnJvbnRlbmQgbW9k
dWxlCiMgIENvcHlyaWdodCAoQykgMjAwOC0yMDE1IGNhdFdvcmtYIEdtYkggaHR0cDovL3d3dy5j
YXR3b3JreC5kZQojICAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5P
IFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBm
b3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0
aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0K
CnBhY2thZ2UgS2VybmVsOjpNb2R1bGVzOjpBZ2VudFRpY2tldEpJUkE7Cgp1c2Ugc3RyaWN0Owp1
c2Ugd2FybmluZ3M7Cgp1c2UgTGlzdDo6VXRpbCBxdyhmaXJzdCk7CgpvdXIgQE9iamVjdERlcGVu
ZGVuY2llcyA9IHF3KAogICAgS2VybmVsOjpDb25maWcKICAgIEtlcm5lbDo6U3lzdGVtOjpMb2cK
ICAgIEtlcm5lbDo6U3lzdGVtOjpNYWluCiAgICBLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0
CiAgICBLZXJuZWw6OlN5c3RlbTo6VGlja2V0CiAgICBLZXJuZWw6OlN5c3RlbTo6VGlja2V0SklS
QQogICAgS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdAopOwoKc3ViIG5ldyB7CiAgICBteSAo
ICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVj
dAogICAgbXkgJFNlbGYgPSB7JVBhcmFtfTsKICAgIGJsZXNzICgkU2VsZiwgJFR5cGUpOwoKICAg
IG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwog
ICAgJFNlbGYtPntEZWJ1Z30gICA9ICRDb25maWdPYmplY3QtPkdldCgnSklSQTo6RGVidWcnKTsK
CiAgICBpZiAoICRTZWxmLT57RGVidWd9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tl
cm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnaW5mbycs
CiAgICAgICAgICAgIE1lc3NhZ2UgPT4gX19QQUNLQUdFX18gLiAnOjpuZXcoKTogU3ViYWN0aW9u
PScgLiAkUGFyYW17U3ViYWN0aW9ufSAuICcgVGlja2V0SUQ9JyAuICRQYXJhbXtUaWNrZXRJRH0s
CiAgICAgICAgKTsKICAgIH0KCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBSdW4gewogICAgbXkg
KCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkVGlja2V0T2JqZWN0ICAgICA9ICRLZXJu
ZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaWNrZXQnKTsKICAgIG15ICRDb25maWdPYmpl
Y3QgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKICAgIG15ICRNYWlu
T2JqZWN0ICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok1haW4nKTsK
ICAgIG15ICRMb2dPYmplY3QgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0
ZW06OkxvZycpOwogICAgbXkgJFRpY2tldEpJUkFPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdL
ZXJuZWw6OlN5c3RlbTo6VGlja2V0SklSQScpOwogICAgbXkgJExheW91dE9iamVjdCAgICAgPSAk
S2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CiAgICBteSAk
UGFyYW1PYmplY3QgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6
OlJlcXVlc3QnKTsKCiAgICBteSAlRGF0YSAgPSAoKTsKICAgIG15ICRCbG9jayA9ICdTdWNjZXNz
JzsKCiAgICAjIFN1YmFjdGlvbiA9IEpJUkEyT1RSUyB8fCBPVFJTMkpJUkEKICAgIG15ICVUaWNr
ZXQgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRHZXQoCiAgICAgICAgVGlja2V0SUQgPT4gJFNlbGYt
PntUaWNrZXRJRH0sCiAgICAgICAgVXNlcklEICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsK
CiAgICBpZiAoICRTZWxmLT57RGVidWd9ICkgewogICAgICAgICRMb2dPYmplY3QtPkxvZygKICAg
ICAgICAgICAgUHJpb3JpdHkgPT4gJ2luZm8nLAogICAgICAgICAgICBNZXNzYWdlICA9PiBfX1BB
Q0tBR0VfXyAuICI6OlJ1bigpOiBUaWNrZXRJRDogJFRpY2tldHtUaWNrZXRJRH0gVGl0bGU6ICRU
aWNrZXR7VGl0bGV9IFN0YXRlOiAkVGlja2V0e1N0YXRlfSIKICAgICAgICApOwogICAgfQoKICAg
IG15ICRKSVJBQ29uZmlnID0gJENvbmZpZ09iamVjdC0+R2V0KCdUaWNrZXRKSVJBJykgfHwge307
CgogICAgbXkgJEFsbG93ZWRTdGF0ZXNOYW1lcyA9ICRKSVJBQ29uZmlnLT57T1RSU1RpY2tldEFs
bG93ZWRTdGF0ZXM0Q3JlYXRlfTsKICAgIG15IEBBbGxvd2VkU3RhdGVzTGlzdCAgPSBzcGxpdCAv
LC8sICRBbGxvd2VkU3RhdGVzTmFtZXM7CgogICAgaWYgKCBmaXJzdCB7ICRfIGVxICRUaWNrZXR7
U3RhdGV9IH0gQEFsbG93ZWRTdGF0ZXNMaXN0ICkgewogICAgICAgIG15ICRBcnRpY2xlSUQgPSAk
UGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnQXJ0aWNsZUlEJyApOwoKICAgICAgICBt
eSAkSklSQUlzc3VlID0gJFRpY2tldEpJUkFPYmplY3QtPklzc3VlQ3JlYXRlKAogICAgICAgICAg
ICBUaWNrZXRJRCAgPT4gJFNlbGYtPntUaWNrZXRJRH0sCiAgICAgICAgICAgIEFydGljbGVJRCA9
PiAkQXJ0aWNsZUlELAogICAgICAgICAgICBVc2VySUQgICAgPT4gJFNlbGYtPntVc2VySUR9LAog
ICAgICAgICk7CgogICAgICAgIGlmICggJFNlbGYtPntEZWJ1Z30gKSB7CiAgICAgICAgICAgICRM
b2dPYmplY3QtPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdpbmZvJywKICAgICAg
ICAgICAgICAgIE1lc3NhZ2UgID0+IF9fUEFDS0FHRV9fIC4gIjo6UnVuKCk6ICIgLiAkTWFpbk9i
amVjdC0+RHVtcCgkSklSQUlzc3VlKSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAg
IGlmICggJEpJUkFJc3N1ZS0+e2Vycm9yfSApIHsKICAgICAgICAgICAgJEJsb2NrICAgICAgID0g
J0Vycm9yJzsKICAgICAgICAgICAgJERhdGF7ZXJyb3J9ID0gJEpJUkFJc3N1ZS0+e2Vycm9yfTsK
ICAgICAgICB9CgogICAgICAgIG15ICRVUkwgPSAkSklSQUNvbmZpZy0+e1VSTH07CgkgICAgICAK
ICAgICAgICAkRGF0YXtpZH0gID0gJEpJUkFJc3N1ZS0+e2lkfTsKICAgICAgICAkRGF0YXtrZXl9
ID0gJEpJUkFJc3N1ZS0+e2tleX07CiAgICAgICAgJERhdGF7dXJsfSA9ICIkVVJML2Jyb3dzZS8i
IC4gJEpJUkFJc3N1ZS0+e2tleX07CgogICAgICAgIGlmICggJFNlbGYtPntEZWJ1Z30gKSB7CiAg
ICAgICAgICAgICRMb2dPYmplY3QtPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdp
bmZvJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+IF9fUEFDS0FHRV9fIC4gIjo6UnVuKCk6
IFRpY2tldC0+U3RhdGUgJFRpY2tldHtTdGF0ZX0gYWxsb3dzIGZldGNoaW5nICIKICAgICAgICAg
ICAgICAgICAgICAuICJvZiB0aGUgSklSQUlzc3VlLT5rZXk6ICIgLiAkSklSQUlzc3VlLT57a2V5
fSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAkQmxv
Y2sgICAgICAgID0gJ0Vycm9yJzsKICAgICAgICAkRGF0YXtlcnJvcn0gID0gJExheW91dE9iamVj
dC0+e0xhbmd1YWdlT2JqZWN0fS0+R2V0KAogICAgICAgICAgICAiVGlja2V0IG5vdCBpbiAkQWxs
b3dlZFN0YXRlc05hbWVzOiAiIC4gJFRpY2tldHtTdGF0ZX0gLiAiLiIKICAgICAgICApOwoKICAg
ICAgICBpZiAoICRTZWxmLT57RGVidWd9ICkgewogICAgICAgICAgICAkTG9nT2JqZWN0LT5Mb2co
CiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnaW5mbycsCiAgICAgICAgICAgICAgICBNZXNz
YWdlICA9PiBfX1BBQ0tBR0VfXyAuICI6OlJ1bigpOiBPVFJTIFRpY2tldCBub3QgaW4gJEFsbG93
ZWRTdGF0ZXNOYW1lczogIiAuICRUaWNrZXR7U3RhdGV9CiAgICAgICAgICAgICk7CiAgICAgICAg
fQogICAgfQoKICAgICREYXRhe1RpY2tldElEfSAgICAgPSAkU2VsZi0+e1RpY2tldElEfTsKICAg
ICREYXRhe1RpY2tldE51bWJlcn0gPSAkVGlja2V0e1RpY2tldE51bWJlcn07CgogICAgJExheW91
dE9iamVjdC0+QmxvY2soCiAgICAgICAgRGF0YSA9PiBcJURhdGEsCiAgICAgICAgTmFtZSA9PiAk
QmxvY2ssCiAgICApOwoKICAgICMgYnVpbGQgb3V0cHV0CiAgICBteSAkT3V0cHV0ID0gJExheW91
dE9iamVjdC0+SGVhZGVyKFRpdGxlID0+ICJUaWNrZXRKSVJBIik7CiAgICAkT3V0cHV0ICAgLj0g
JExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwogICAgJE91dHB1dCAgIC49ICRMYXlvdXRP
YmplY3QtPk91dHB1dCgKICAgICAgICBEYXRhICAgICAgICAgPT4gXCVEYXRhLAogICAgICAgIFRl
bXBsYXRlRmlsZSA9PiAnQWdlbnRUaWNrZXRKSVJBJywKICAgICk7CiAgICAkT3V0cHV0ICAgLj0g
JExheW91dE9iamVjdC0+Rm9vdGVyKCk7CgogICAgcmV0dXJuICRPdXRwdXQ7Cn0KCjE7Cg==
IyAgLS0KIyAgS2VybmVsL01vZHVsZXMvQWdlbnRUaWNrZXRKSVJBRGlhbG9nLnBtIC0gZnJvbnRl
bmQgbW9kdWxlCiMgIENvcHlyaWdodCAoQykgMjAxNiBjYXRXb3JrWCBHbWJIIGh0dHA6Ly93d3cu
Y2F0d29ya3guZGUKIyAgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBO
TyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcg
Zm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUg
dGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgojIC0t
CgpwYWNrYWdlIEtlcm5lbDo6TW9kdWxlczo6QWdlbnRUaWNrZXRKSVJBRGlhbG9nOwoKdXNlIHN0
cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIExpc3Q6OlV0aWwgcXcoZmlyc3QpOwoKb3VyIEBPYmpl
Y3REZXBlbmRlbmNpZXMgPSBxdygKICAgIEtlcm5lbDo6Q29uZmlnCiAgICBLZXJuZWw6OlN5c3Rl
bTo6TG9nCiAgICBLZXJuZWw6OlN5c3RlbTo6SlNPTgogICAgS2VybmVsOjpTeXN0ZW06Ok1haW4K
ICAgIEtlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQKICAgIEtlcm5lbDo6U3lzdGVtOjpUaWNr
ZXQKICAgIEtlcm5lbDo6U3lzdGVtOjpUaWNrZXRKSVJBCiAgICBLZXJuZWw6OlN5c3RlbTo6SklS
QTo6VXRpbHMKICAgIEtlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QKKTsKCnN1YiBuZXcgewog
ICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZv
ciBvYmplY3QKICAgIG15ICRTZWxmID0geyVQYXJhbX07CiAgICBibGVzcyAoJFNlbGYsICRUeXBl
KTsKCiAgICBteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25m
aWcnKTsKICAgICRTZWxmLT57RGVidWd9ICAgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0pJUkE6OkRl
YnVnJyk7CgogICAgaWYgKCAkU2VsZi0+e0RlYnVnfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+
R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4g
J2luZm8nLAogICAgICAgICAgICBNZXNzYWdlID0+IF9fUEFDS0FHRV9fIC4gJzo6bmV3KCk6IFRp
Y2tldElEPScgLiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICk7CiAgICB9CgogICAgcmV0dXJu
ICRTZWxmOwp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAg
bXkgJFRpY2tldE9iamVjdCAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6
VGlja2V0Jyk7CiAgICBteSAkQ29uZmlnT2JqZWN0ICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tl
cm5lbDo6Q29uZmlnJyk7CiAgICBteSAkTGFuZ3VhZ2VPYmplY3QgICA9ICRLZXJuZWw6Ok9NLT5H
ZXQoJ0tlcm5lbDo6TGFuZ3VhZ2UnKTsKICAgIG15ICRNYWluT2JqZWN0ICAgICAgID0gJEtlcm5l
bDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok1haW4nKTsKICAgIG15ICRMb2dPYmplY3QgICAg
ICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpOwogICAgbXkgJFRp
Y2tldEpJUkFPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGlja2V0
SklSQScpOwogICAgbXkgJExheW91dE9iamVjdCAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJu
ZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CiAgICBteSAkVXRpbHNPYmplY3QgICAgICA9ICRL
ZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpKSVJBOjpVdGlscycpOwogICAgbXkgJFBh
cmFtT2JqZWN0ICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpS
ZXF1ZXN0Jyk7CgogICAgbXkgJUdldFBhcmFtOwogICAgZm9yIG15ICRQYXJhbSAoIHF3L1RpY2tl
dElEIFByb2plY3QgQXNzaWduZWUgSXNzdWVUeXBlIFN0YXRlIEFydGljbGVJRCBJc3N1ZUlELyAp
IHsKICAgICAgICAkR2V0UGFyYW17JFBhcmFtfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBh
cmFtID0+ICRQYXJhbSApIHx8ICcnOwogICAgfQoKICAgIG15ICRUZW1wbGF0ZUZpbGUgPSAnQWdl
bnRUaWNrZXRKSVJBRGlhbG9nJzsKICAgIG15ICREZWZhdWx0cyAgICAgPSAkQ29uZmlnT2JqZWN0
LT5HZXQoJ1RpY2tldEpJUkEnKSB8fCB7fTsKICAgIG15ICVEYXRhICAgICAgICAgPSAlR2V0UGFy
YW07CgogICAgaWYgKCAhJFNlbGYtPntTdWJhY3Rpb259ICkgewogICAgICAgICRMYXlvdXRPYmpl
Y3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdGb3JtJywKICAgICAgICAgICAgRGF0YSA9
PiB7CiAgICAgICAgICAgICAgICAlR2V0UGFyYW0sCiAgICAgICAgICAgICAgICAlUGFyYW0sCiAg
ICAgICAgICAgIH0sCiAgICAgICAgKTsKCiAgICAgICAgbXkgJFByb2plY3RzICAgICAgID0gJFV0
aWxzT2JqZWN0LT5Qcm9qZWN0c0dldCgpOwogICAgICAgIG15ICREZWZhdWx0UHJvamVjdCA9ICRE
ZWZhdWx0cy0+e1Byb2plY3R9OwoKICAgICAgICBpZiAoICEkQ29uZmlnT2JqZWN0LT5HZXQoJ0pJ
UkE6OlNob3dQcm9qZWN0JykgKSB7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAog
ICAgICAgICAgICAgICAgTmFtZSA9PiAnUHJvamVjdCcsCiAgICAgICAgICAgICAgICBEYXRhID0+
IHsKICAgICAgICAgICAgICAgICAgICAlR2V0UGFyYW0sCiAgICAgICAgICAgICAgICAgICAgJVBh
cmFtLAogICAgICAgICAgICAgICAgICAgIFByb2plY3QgPT4gJERlZmF1bHRQcm9qZWN0LAogICAg
ICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAg
ICAgICAgICAgICRQYXJhbXtQcm9qZWN0U2VsZWN0fSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2Vs
ZWN0aW9uKAogICAgICAgICAgICAgICAgTmFtZSAgICAgICAgID0+ICdQcm9qZWN0JywKICAgICAg
ICAgICAgICAgIERhdGEgICAgICAgICA9PiAkUHJvamVjdHMsCiAgICAgICAgICAgICAgICBQb3Nz
aWJsZU5vbmUgPT4gMSwKICAgICAgICAgICAgICAgIFRyYW5zbGF0aW9uICA9PiAwLAogICAgICAg
ICAgICAgICAgQ2xhc3MgICAgICAgID0+ICdWYWxpZGF0ZSBNb2Rlcm5pemUnLAogICAgICAgICAg
ICAgICAgU2VsZWN0ZWRJRCAgID0+ICRHZXRQYXJhbXtQcm9qZWN0fSB8fCAkUGFyYW17UHJvamVj
dH0gfHwgJERlZmF1bHRQcm9qZWN0LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgJExheW91
dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdQcm9qZWN0U2VsZWN0JywK
ICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICVHZXRQYXJhbSwK
ICAgICAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAg
ICApOwogICAgICAgIH0KCiAgICAgICAgbXkgJFVzZXJzID0gJFV0aWxzT2JqZWN0LT5Vc2Vyc0dl
dCgKICAgICAgICAgICAgUHJvamVjdCA9PiAkRGVmYXVsdFByb2plY3QsCiAgICAgICAgKTsKCiAg
ICAgICAgbXkgJERlZmF1bHRBc3NpZ25lZSA9ICREZWZhdWx0cy0+e0Fzc2lnbmVlfTsKICAgICAg
ICBteSAkTm9Bc3NpZ25lZSAgICAgID0gJENvbmZpZ09iamVjdC0+R2V0KCdKSVJBOjpOb0Fzc2ln
bmVlJyk7CgogICAgICAgIGlmICggISRDb25maWdPYmplY3QtPkdldCgnSklSQTo6U2hvd0Fzc2ln
bmVlJykgJiYgISROb0Fzc2lnbmVlICkgewogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9j
aygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0Fzc2lnbmVlJywKICAgICAgICAgICAgICAgIERh
dGEgPT4gewogICAgICAgICAgICAgICAgICAgICVHZXRQYXJhbSwKICAgICAgICAgICAgICAgICAg
ICAlUGFyYW0sCiAgICAgICAgICAgICAgICAgICAgQXNzaWduZWUgPT4gJERlZmF1bHRBc3NpZ25l
ZSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGVs
c2lmICggJENvbmZpZ09iamVjdC0+R2V0KCdKSVJBOjpTaG93QXNzaWduZWUnKSAmJiAhJE5vQXNz
aWduZWUgKSB7CiAgICAgICAgICAgIGlmICggJENvbmZpZ09iamVjdC0+R2V0KCdKSVJBOjpTaG93
QXV0b21hdGljVXNlcicpICkgewogICAgICAgICAgICAgICAgJFVzZXJzLT57Jy0xJ30gPSAkTGFu
Z3VhZ2VPYmplY3QtPlRyYW5zbGF0ZSgnYXV0b21hdGljLXVzZXInKTsKICAgICAgICAgICAgfQoK
ICAgICAgICAgICAgJFBhcmFte0Fzc2lnbmVlU2VsZWN0fSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxk
U2VsZWN0aW9uKAogICAgICAgICAgICAgICAgTmFtZSAgICAgICAgID0+ICdBc3NpZ25lZScsCiAg
ICAgICAgICAgICAgICBEYXRhICAgICAgICAgPT4gJFVzZXJzLAogICAgICAgICAgICAgICAgUG9z
c2libGVOb25lID0+IDEsCiAgICAgICAgICAgICAgICBUcmFuc2xhdGlvbiAgPT4gMCwKICAgICAg
ICAgICAgICAgIENsYXNzICAgICAgICA9PiAnVmFsaWRhdGUgTW9kZXJuaXplJywKICAgICAgICAg
ICAgICAgIFNlbGVjdGVkSUQgICA9PiAkR2V0UGFyYW17QXNzaWduZWV9IHx8ICRQYXJhbXtBc3Np
Z25lZX0gfHwgJERlZmF1bHRBc3NpZ25lZSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICRM
YXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnQXNzaWduZWVTZWxl
Y3QnLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgJUdldFBh
cmFtLAogICAgICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgIH0sCiAgICAg
ICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICBteSAkSXNzdWVUeXBlcyA9ICRVdGlsc09iamVj
dC0+SXNzdWVUeXBlc0dldCgKICAgICAgICAgICAgUHJvamVjdCA9PiAkRGVmYXVsdFByb2plY3Qs
CiAgICAgICAgKTsKCiAgICAgICAgbXkgJERlZmF1bHRJc3N1ZVR5cGUgPSAkRGVmYXVsdHMtPntJ
c3N1ZVR5cGV9OwoKICAgICAgICBpZiAoICEkQ29uZmlnT2JqZWN0LT5HZXQoJ0pJUkE6OlNob3dJ
c3N1ZVR5cGUnKSApIHsKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAg
ICAgICAgICBOYW1lID0+ICdJc3N1ZVR5cGUnLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAg
ICAgICAgICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICAgICAgICAgICAgICVQYXJhbSwK
ICAgICAgICAgICAgICAgICAgICBJc3N1ZVR5cGUgPT4gJERlZmF1bHRJc3N1ZVR5cGUsCiAgICAg
ICAgICAgICAgICB9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAg
ICAgICAgICAgJFBhcmFte0lzc3VlVHlwZVNlbGVjdH0gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNl
bGVjdGlvbigKICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICA9PiAnSXNzdWVUeXBlJywKICAg
ICAgICAgICAgICAgIERhdGEgICAgICAgICA9PiAkSXNzdWVUeXBlcywKICAgICAgICAgICAgICAg
IFBvc3NpYmxlTm9uZSA9PiAxLAogICAgICAgICAgICAgICAgQ2xhc3MgICAgICAgID0+ICdWYWxp
ZGF0ZSBNb2Rlcm5pemUnLAogICAgICAgICAgICAgICAgU2VsZWN0ZWRJRCAgID0+ICRHZXRQYXJh
bXtJc3N1ZVR5cGV9IHx8ICRQYXJhbXtJc3N1ZVR5cGV9IHx8ICREZWZhdWx0SXNzdWVUeXBlLAog
ICAgICAgICAgICApOwoKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAg
ICAgICAgICBOYW1lID0+ICdJc3N1ZVR5cGVTZWxlY3QnLAogICAgICAgICAgICAgICAgRGF0YSA9
PiB7CiAgICAgICAgICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICAgICAgICAgICAgICVQ
YXJhbSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKIyBUT0RP
OiBXaGVuIHdlIGtub3cgaG93IHRvIGdldCBhIGxpc3Qgb2Ygc3RhdGVzLCB0aGVuIHRoaXMgc2hv
dWxkIGJlIHJlZW5hYmxlZC4uLgojICAgICAgICBteSAkRGVmYXVsdFN0YXRlID0gJERlZmF1bHRz
LT57U3RhdGV9OwojCiMgICAgICAgIGlmICggISRDb25maWdPYmplY3QtPkdldCgnSklSQTo6U2hv
d1N0YXRlJykgKSB7CiMgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKIyAgICAgICAg
ICAgICAgICBOYW1lID0+ICdTdGF0ZScsCiMgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiMgICAg
ICAgICAgICAgICAgICAgICVHZXRQYXJhbSwKIyAgICAgICAgICAgICAgICAgICAgJVBhcmFtLAoj
ICAgICAgICAgICAgICAgICAgICBTdGF0ZSA9PiAkRGVmYXVsdFN0YXRlLAojICAgICAgICAgICAg
ICAgIH0sCiMgICAgICAgICAgICApOwojICAgICAgICB9CiMgICAgICAgIGVsc2UgewojICAgICAg
ICAgICAgJFBhcmFte1N0YXRlU2VsZWN0fSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9u
KAojICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICA9PiAnU3RhdGUnLAojICAgICAgICAgICAg
ICAgIERhdGEgICAgICAgICA9PiB7fSwKIyAgICAgICAgICAgICAgICBQb3NzaWJsZU5vbmUgPT4g
MSwKIyAgICAgICAgICAgICAgICBDbGFzcyAgICAgICAgPT4gJ1ZhbGlkYXRlJywKIyAgICAgICAg
ICAgICk7CiMKIyAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAojICAgICAgICAgICAg
ICAgIE5hbWUgPT4gJ1N0YXRlU2VsZWN0JywKIyAgICAgICAgICAgICAgICBEYXRhID0+IHsKIyAg
ICAgICAgICAgICAgICAgICAgJUdldFBhcmFtLAojICAgICAgICAgICAgICAgICAgICAlUGFyYW0s
CiMgICAgICAgICAgICAgICAgfSwKIyAgICAgICAgICAgICkKIyAgICAgICAgfQogICAgfQogICAg
ZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0Fzc2lnbmVlU2VhcmNoJyApIHsKCiAgICAg
ICAgIyBidWlsZCByZXN1bHQgbGlzdAogICAgICAgIG15IEBSZXN1bHQ7CgogICAgICAgIG15ICRU
ZXJtID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1Rlcm0nICk7CiAgICAgICAg
JFRlcm0gICAgPX4gc3tcKn17Lip9ZzsKCiAgICAgICAgbXkgJFJFOwogICAgICAgIGV2YWwgewog
ICAgICAgICAgICAkUkUgPSBxci8kVGVybS9pOwogICAgICAgIH07CgogICAgICAgIGlmICggJEdl
dFBhcmFte1Byb2plY3R9ICYmICRSRSApIHsKICAgICAgICAgICAgbXkgJFVzZXJzID0gJFV0aWxz
T2JqZWN0LT5Vc2Vyc0dldCgKICAgICAgICAgICAgICAgIFByb2plY3QgPT4gJEdldFBhcmFte1By
b2plY3R9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgaWYgKCAkQ29uZmlnT2JqZWN0LT5H
ZXQoJ0pJUkE6OlNob3dBdXRvbWF0aWNVc2VyJykgKSB7CiAgICAgICAgICAgICAgICAkVXNlcnMt
PnsnLTEnfSA9ICRMYW5ndWFnZU9iamVjdC0+VHJhbnNsYXRlKCdhdXRvbWF0aWMtdXNlcicpOwog
ICAgICAgICAgICB9CgogICAgICAgICAgICBBU1NJR05FRToKICAgICAgICAgICAgZm9yIG15ICRV
c2VyICgga2V5cyAleyAkVXNlcnMgfHwge30gfSApIHsKICAgICAgICAgICAgICAgIGlmICggKCAk
VXNlciA9fiAkUkUgKSB8fCAoICRVc2Vycy0+eyRVc2VyfSA9fiAkUkUgKSApIHsKICAgICAgICAg
ICAgICAgICAgICBwdXNoIEBSZXN1bHQsIHsKICAgICAgICAgICAgICAgICAgICAgICAgTGFiZWwg
PT4gIiRVc2Vycy0+eyRVc2VyfSAoJFVzZXIpIiwKICAgICAgICAgICAgICAgICAgICAgICAgVmFs
dWUgPT4gJFVzZXIsCiAgICAgICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgbXkgJEpTT04gPSAkTGF5b3V0T2JqZWN0LT5K
U09ORW5jb2RlKAogICAgICAgICAgICBEYXRhID0+IFxAUmVzdWx0LAogICAgICAgICk7CgogICAg
ICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5BdHRhY2htZW50KAogICAgICAgICAgICBDb250ZW50
VHlwZSA9PiAnYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD0nIC4gJExheW91dE9iamVjdC0+e0No
YXJzZXR9LAogICAgICAgICAgICBDb250ZW50ICAgICA9PiAkSlNPTiB8fCAnJywKICAgICAgICAg
ICAgVHlwZSAgICAgICAgPT4gJ2lubGluZScsCiAgICAgICAgICAgIE5vQ2FjaGUgICAgID0+IDEs
CiAgICAgICAgKTsKICAgIH0KICAgIGVsc2lmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdBSkFY
VXBkYXRlJyApIHsKICAgICAgICBteSAkSlNPTkRhdGEgPSBbXTsKCiAgICAgICAgaWYgKCAkR2V0
UGFyYW17UHJvamVjdH0gKSB7CiAgICAgICAgICAgIG15ICRVc2VycyA9ICRVdGlsc09iamVjdC0+
VXNlcnNHZXQoCiAgICAgICAgICAgICAgICBQcm9qZWN0ID0+ICRHZXRQYXJhbXtQcm9qZWN0fSwK
ICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIG15ICREZWZhdWx0QXNzaWduZWUgPSAkRGVmYXVs
dHMtPntBc3NpZ25lZX07CgogICAgICAgICAgICBpZiAoICRDb25maWdPYmplY3QtPkdldCgnSklS
QTo6U2hvd0F1dG9tYXRpY1VzZXInKSApIHsKICAgICAgICAgICAgICAgICRVc2Vycy0+eyctMSd9
ID0gJExhbmd1YWdlT2JqZWN0LT5UcmFuc2xhdGUoJ2F1dG9tYXRpYy11c2VyJyk7CiAgICAgICAg
ICAgIH0KCiAgICAgICAgICAgIHB1c2ggQHsgJEpTT05EYXRhIH0sIHsKICAgICAgICAgICAgICAg
IE5hbWUgICAgICAgICA9PiAnQXNzaWduZWUnLAogICAgICAgICAgICAgICAgRGF0YSAgICAgICAg
ID0+ICRVc2VycywKICAgICAgICAgICAgICAgIFBvc3NpYmxlTm9uZSA9PiAxLAogICAgICAgICAg
ICAgICAgQ2xhc3MgICAgICAgID0+ICdWYWxpZGF0ZSBNb2Rlcm5pemUnLAogICAgICAgICAgICAg
ICAgU2VsZWN0ZWRJRCAgID0+ICRHZXRQYXJhbXtBc3NpZ25lZX0gfHwgJFBhcmFte0Fzc2lnbmVl
fSB8fCAkRGVmYXVsdEFzc2lnbmVlLAogICAgICAgICAgICB9OwoKICAgICAgICAgICAgbXkgJElz
c3VlVHlwZXMgPSAkVXRpbHNPYmplY3QtPklzc3VlVHlwZXNHZXQoCiAgICAgICAgICAgICAgICBQ
cm9qZWN0ID0+ICRHZXRQYXJhbXtQcm9qZWN0fSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAg
IG15ICREZWZhdWx0SXNzdWVUeXBlID0gJERlZmF1bHRzLT57SXNzdWVUeXBlfTsKCiAgICAgICAg
ICAgIHB1c2ggQHsgJEpTT05EYXRhIH0sIHsKICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICA9
PiAnSXNzdWVUeXBlJywKICAgICAgICAgICAgICAgIERhdGEgICAgICAgICA9PiAkSXNzdWVUeXBl
cywKICAgICAgICAgICAgICAgIFBvc3NpYmxlTm9uZSA9PiAxLAogICAgICAgICAgICAgICAgQ2xh
c3MgICAgICAgID0+ICdWYWxpZGF0ZSBNb2Rlcm5pemUnLAogICAgICAgICAgICAgICAgU2VsZWN0
ZWRJRCAgID0+ICRHZXRQYXJhbXtJc3N1ZVR5cGV9IHx8ICRQYXJhbXtJc3N1ZVR5cGV9IHx8ICRE
ZWZhdWx0SXNzdWVUeXBlLAogICAgICAgICAgICB9OwoKICAgICAgICAgICAgbXkgJFN0YXRlcyA9
ICRVdGlsc09iamVjdC0+U3RhdGVzR2V0KAogICAgICAgICAgICAgICAgUHJvamVjdCA9PiAkR2V0
UGFyYW17UHJvamVjdH0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBteSAkRGVmYXVsdFN0
YXRlID0gJERlZmF1bHRzLT57U3RhdGV9OwoKICAgICAgICAgICAgcHVzaCBAeyAkSlNPTkRhdGEg
fSwgewogICAgICAgICAgICAgICAgTmFtZSAgICAgICAgID0+ICdTdGF0ZScsCiAgICAgICAgICAg
ICAgICBEYXRhICAgICAgICAgPT4gJFN0YXRlcywKICAgICAgICAgICAgICAgIFBvc3NpYmxlTm9u
ZSA9PiAxLAogICAgICAgICAgICAgICAgQ2xhc3MgICAgICAgID0+ICdWYWxpZGF0ZSBNb2Rlcm5p
emUnLAogICAgICAgICAgICAgICAgU2VsZWN0ZWRJRCAgID0+ICRHZXRQYXJhbXtTdGF0ZX0gfHwg
JFBhcmFte1N0YXRlfSB8fCAkRGVmYXVsdFN0YXRlLAogICAgICAgICAgICB9OwogICAgICAgIH0K
CiAgICAgICAgbXkgJEpTT04gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbkpTT04oICRK
U09ORGF0YSApOwoKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+QXR0YWNobWVudCgKICAg
ICAgICAgICAgQ29udGVudFR5cGUgPT4gJ2FwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9JyAuICRM
YXlvdXRPYmplY3QtPntDaGFyc2V0fSwKICAgICAgICAgICAgQ29udGVudCAgICAgPT4gJEpTT04s
CiAgICAgICAgICAgIFR5cGUgICAgICAgID0+ICdpbmxpbmUnLAogICAgICAgICAgICBOb0NhY2hl
ICAgICA9PiAxLAogICAgICAgICk7CiAgICB9CiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9u
fSBlcSAnQ3JlYXRlJyApIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAg
ICAgTmFtZSA9PiAnQ3JlYXRlUmVzdWx0JywKICAgICAgICApOwoKICAgICAgICBteSAkQmxvY2sg
PSAnU3VjY2Vzcyc7CgogICAgICAgIG15ICVUaWNrZXQgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRH
ZXQoCiAgICAgICAgICAgIFRpY2tldElEID0+ICRTZWxmLT57VGlja2V0SUR9LAogICAgICAgICAg
ICBVc2VySUQgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgKTsKCiAgICAgICAgaWYgKCAk
U2VsZi0+e0RlYnVnfSApIHsKICAgICAgICAgICAgJExvZ09iamVjdC0+TG9nKAogICAgICAgICAg
ICAgICAgUHJpb3JpdHkgPT4gJ2luZm8nLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gX19Q
QUNLQUdFX18gLiAiOjpSdW4oKTogVGlja2V0SUQ6ICRUaWNrZXR7VGlja2V0SUR9IFRpdGxlOiAk
VGlja2V0e1RpdGxlfSBTdGF0ZTogJFRpY2tldHtTdGF0ZX0iCiAgICAgICAgICAgICk7CiAgICAg
ICAgfQoKICAgICAgICBteSAkSklSQUNvbmZpZyA9ICRDb25maWdPYmplY3QtPkdldCgnVGlja2V0
SklSQScpIHx8IHt9OwoKICAgICAgICBteSAkQWxsb3dlZFN0YXRlc05hbWVzID0gJEpJUkFDb25m
aWctPntPVFJTVGlja2V0QWxsb3dlZFN0YXRlczRDcmVhdGV9OwogICAgICAgIG15IEBBbGxvd2Vk
U3RhdGVzTGlzdCAgPSBzcGxpdCAvLC8sICRBbGxvd2VkU3RhdGVzTmFtZXM7CgogICAgICAgIGlm
ICggZmlyc3QgeyAkXyBlcSAkVGlja2V0e1N0YXRlfSB9IEBBbGxvd2VkU3RhdGVzTGlzdCApIHsK
ICAgICAgICAgICAgbXkgJEpJUkFJc3N1ZSA9ICRUaWNrZXRKSVJBT2JqZWN0LT5Jc3N1ZUNyZWF0
ZSgKICAgICAgICAgICAgICAgIFRpY2tldElEICA9PiAkU2VsZi0+e1RpY2tldElEfSwKICAgICAg
ICAgICAgICAgIEFydGljbGVJRCA9PiAkR2V0UGFyYW17QXJ0aWNsZUlEfSwKICAgICAgICAgICAg
ICAgIFVzZXJJRCAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICAgICBQcm9qZWN0
ICAgPT4gJEdldFBhcmFte1Byb2plY3R9LAogICAgICAgICAgICAgICAgQXNzaWduZWUgID0+ICRH
ZXRQYXJhbXtBc3NpZ25lZX0sCiAgICAgICAgICAgICAgICBJc3N1ZVR5cGUgPT4gJEdldFBhcmFt
e0lzc3VlVHlwZX0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBpZiAoICRTZWxmLT57RGVi
dWd9ICkgewogICAgICAgICAgICAgICAgJExvZ09iamVjdC0+TG9nKAogICAgICAgICAgICAgICAg
ICAgIFByaW9yaXR5ID0+ICdpbmZvJywKICAgICAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiBf
X1BBQ0tBR0VfXyAuICI6OlJ1bigpOiAiIC4gJE1haW5PYmplY3QtPkR1bXAoJEpJUkFJc3N1ZSks
CiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoICRKSVJB
SXNzdWUtPntlcnJvcn0gKSB7CiAgICAgICAgICAgICAgICAkQmxvY2sgICAgICAgPSAnRXJyb3In
OwogICAgICAgICAgICAgICAgJERhdGF7ZXJyb3J9ID0gJEpJUkFJc3N1ZS0+e2Vycm9yfTsKCiAg
ICAgICAgICAgICAgICAkRGF0YXtUaWNrZXRJRH0gICAgID0gJEdldFBhcmFte1RpY2tldElEfTsK
ICAgICAgICAgICAgICAgICREYXRhe1RpY2tldE51bWJlcn0gPSAkVGlja2V0e1RpY2tldE51bWJl
cn07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAjIGxv
YWQgbmV3IFVSTCBpbiBwYXJlbnQgd2luZG93IGFuZCBjbG9zZSBwb3B1cAogICAgICAgICAgICAg
ICAgbXkgJFJldHVyblVSTCA9ICJBY3Rpb249QWdlbnRUaWNrZXRab29tO1RpY2tldElEPSRHZXRQ
YXJhbXtUaWNrZXRJRH0iOwoKICAgICAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5Q
b3B1cENsb3NlKAogICAgICAgICAgICAgICAgICAgIFVSTCA9PiAkUmV0dXJuVVJMLAogICAgICAg
ICAgICAgICAgKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbXkgJFVSTCA9ICRKSVJBQ29u
ZmlnLT57VVJMfTsKCSAgICAgIAogICAgICAgICAgICAkRGF0YXtpZH0gID0gJEpJUkFJc3N1ZS0+
e2lkfTsKICAgICAgICAgICAgJERhdGF7a2V5fSA9ICRKSVJBSXNzdWUtPntrZXl9OwogICAgICAg
ICAgICAkRGF0YXt1cmx9ID0gIiRVUkwvYnJvd3NlLyIgLiAkSklSQUlzc3VlLT57a2V5fTsKCiAg
ICAgICAgICAgIGlmICggJFNlbGYtPntEZWJ1Z30gKSB7CiAgICAgICAgICAgICAgICAkTG9nT2Jq
ZWN0LT5Mb2coCiAgICAgICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2luZm8nLAogICAgICAg
ICAgICAgICAgICAgIE1lc3NhZ2UgID0+IF9fUEFDS0FHRV9fIC4gIjo6UnVuKCk6IFRpY2tldC0+
U3RhdGUgJFRpY2tldHtTdGF0ZX0gYWxsb3dzIGZldGNoaW5nICIKICAgICAgICAgICAgICAgICAg
ICAgICAgLiAib2YgdGhlIEpJUkFJc3N1ZS0+a2V5OiAiIC4gJEpJUkFJc3N1ZS0+e2tleX0sCiAg
ICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGVsc2Ugewog
ICAgICAgICAgICAkQmxvY2sgICAgICAgID0gJ0Vycm9yJzsKICAgICAgICAgICAgJERhdGF7ZXJy
b3J9ICA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPkdldCgKICAgICAgICAgICAg
ICAgICJUaWNrZXQgbm90IGluICRBbGxvd2VkU3RhdGVzTmFtZXM6ICIgLiAkVGlja2V0e1N0YXRl
fSAuICIuIgogICAgICAgICAgICApOwoKICAgICAgICAgICAgaWYgKCAkU2VsZi0+e0RlYnVnfSAp
IHsKICAgICAgICAgICAgICAgICRMb2dPYmplY3QtPkxvZygKICAgICAgICAgICAgICAgICAgICBQ
cmlvcml0eSA9PiAnaW5mbycsCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gX19QQUNL
QUdFX18gLiAiOjpSdW4oKTogT1RSUyBUaWNrZXQgbm90IGluICRBbGxvd2VkU3RhdGVzTmFtZXM6
ICIgLiAkVGlja2V0e1N0YXRlfQogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAg
ICAgIH0KCiAgICAgICAgJERhdGF7VGlja2V0SUR9ICAgICA9ICRTZWxmLT57VGlja2V0SUR9Owog
ICAgICAgICREYXRhe1RpY2tldE51bWJlcn0gPSAkVGlja2V0e1RpY2tldE51bWJlcn07CgogICAg
ICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICRCbG9jaywKICAg
ICAgICAgICAgRGF0YSA9PiBcJURhdGEsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHVzZXIgd2Fu
dHMgdG8gbGluayB0aWNrZXQgd2l0aCBhbiBleGlzdGluZyBpc3N1ZQogICAgIyBuZWVkcyBvbiBv
dGhlciBmb3JtCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnTGlua0V4aXN0aW5n
SXNzdWUnICkgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1l
ID0+ICdGb3JtJywKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAlR2V0UGFy
YW0sCiAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKCiAg
ICAgICAgJFRlbXBsYXRlRmlsZSA9ICdBZ2VudFRpY2tldEpJUkFEaWFsb2dFeGlzdGluZ0lzc3Vl
JzsKCiAgICAgICAgbXkgJFByb2plY3RzICAgICAgID0gJFV0aWxzT2JqZWN0LT5Qcm9qZWN0c0dl
dCgpOwogICAgICAgIG15ICREZWZhdWx0UHJvamVjdCA9ICREZWZhdWx0cy0+e1Byb2plY3R9OwoK
ICAgICAgICBpZiAoICEkQ29uZmlnT2JqZWN0LT5HZXQoJ0pJUkE6OlNob3dQcm9qZWN0JykgKSB7
CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9
PiAnUHJvamVjdCcsCiAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAg
ICAlR2V0UGFyYW0sCiAgICAgICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAg
ICAgIFByb2plY3QgPT4gJERlZmF1bHRQcm9qZWN0LAogICAgICAgICAgICAgICAgfSwKICAgICAg
ICAgICAgKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRQYXJhbXtQcm9q
ZWN0U2VsZWN0fSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgICAgICAg
ICAgTmFtZSAgICAgICAgID0+ICdQcm9qZWN0JywKICAgICAgICAgICAgICAgIERhdGEgICAgICAg
ICA9PiAkUHJvamVjdHMsCiAgICAgICAgICAgICAgICBQb3NzaWJsZU5vbmUgPT4gMSwKICAgICAg
ICAgICAgICAgIFRyYW5zbGF0aW9uICA9PiAwLAogICAgICAgICAgICAgICAgQ2xhc3MgICAgICAg
ID0+ICdWYWxpZGF0ZSBNb2Rlcm5pemUnLAogICAgICAgICAgICAgICAgU2VsZWN0ZWRJRCAgID0+
ICRHZXRQYXJhbXtQcm9qZWN0fSB8fCAkUGFyYW17UHJvamVjdH0gfHwgJERlZmF1bHRQcm9qZWN0
LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAg
ICAgICAgICAgICBOYW1lID0+ICdQcm9qZWN0U2VsZWN0JywKICAgICAgICAgICAgICAgIERhdGEg
PT4gewogICAgICAgICAgICAgICAgICAgICVHZXRQYXJhbSwKICAgICAgICAgICAgICAgICAgICAl
UGFyYW0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0K
CiAgICAjIHVzZXIgd2FudHMgdG8gbGluayB0aWNrZXQgd2l0aCBhbiBleGlzdGluZyBpc3N1ZQog
ICAgIyAgIC0+IGNyZWF0ZSBsaW5rIChzZXQgZHluYW1pYyBmaWVsZCBpbiBvdHJzIGFuZCBjdXN0
b20gZmllbGQgaW4gSklSQSkKICAgIGVsc2lmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdDcmVh
dGVMaW5rV2l0aElzc3VlJyApIHsKICAgICAgICAkVGVtcGxhdGVGaWxlID0gJ0FnZW50VGlja2V0
SklSQURpYWxvZ0V4aXN0aW5nSXNzdWUnOwoKICAgICAgICBteSAlVGlja2V0ID0gJFRpY2tldE9i
amVjdC0+VGlja2V0R2V0KAogICAgICAgICAgICBUaWNrZXRJRCA9PiAkU2VsZi0+e1RpY2tldElE
fSwKICAgICAgICAgICAgVXNlcklEICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICk7Cgog
ICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdDcmVhdGVS
ZXN1bHQnLAogICAgICAgICk7CgogICAgICAgIG15ICRCbG9jayA9ICdTdWNjZXNzJzsKCiAgICAg
ICAgbXkgJEpJUkFJc3N1ZSA9ICRUaWNrZXRKSVJBT2JqZWN0LT5Jc3N1ZUxpbmtUb09UUlMoCiAg
ICAgICAgICAgIFRpY2tldElEICA9PiAkU2VsZi0+e1RpY2tldElEfSwKICAgICAgICAgICAgVXNl
cklEICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgSXNzdWVJRCAgID0+ICRHZXRQ
YXJhbXtJc3N1ZUlEfSwKICAgICAgICAgICAgUHJvamVjdCAgID0+ICRHZXRQYXJhbXtQcm9qZWN0
fSwKICAgICAgICApOwoKICAgICAgICBpZiAoICRTZWxmLT57RGVidWd9ICkgewogICAgICAgICAg
ICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnaW5mbycsCiAg
ICAgICAgICAgICAgICBNZXNzYWdlICA9PiBfX1BBQ0tBR0VfXyAuICI6OlJ1bigpOiAiIC4gJE1h
aW5PYmplY3QtPkR1bXAoJEpJUkFJc3N1ZSksCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAg
ICAgICBpZiAoICRKSVJBSXNzdWUtPntlcnJvcn0gKSB7CiAgICAgICAgICAgICRCbG9jayAgICAg
ICA9ICdFcnJvcic7CiAgICAgICAgICAgICREYXRhe2Vycm9yfSA9ICRKSVJBSXNzdWUtPntlcnJv
cn07CgogICAgICAgICAgICAkRGF0YXtUaWNrZXRJRH0gICAgID0gJEdldFBhcmFte1RpY2tldElE
fTsKICAgICAgICAgICAgJERhdGF7VGlja2V0TnVtYmVyfSA9ICRUaWNrZXR7VGlja2V0TnVtYmVy
fTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICMgbG9hZCBuZXcgVVJMIGlu
IHBhcmVudCB3aW5kb3cgYW5kIGNsb3NlIHBvcHVwCiAgICAgICAgICAgIG15ICRSZXR1cm5VUkwg
PSAiQWN0aW9uPUFnZW50VGlja2V0Wm9vbTtUaWNrZXRJRD0kR2V0UGFyYW17VGlja2V0SUR9IjsK
CiAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5Qb3B1cENsb3NlKAogICAgICAgICAg
ICAgICAgVVJMID0+ICRSZXR1cm5VUkwsCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAg
ICBteSAkSklSQUNvbmZpZyA9ICRDb25maWdPYmplY3QtPkdldCgnVGlja2V0SklSQScpIHx8IHt9
OwogICAgICAgIG15ICRVUkwgICAgICAgID0gJEpJUkFDb25maWctPntVUkx9OwoJICAgICAgCiAg
ICAgICAgJERhdGF7aWR9ICA9ICRKSVJBSXNzdWUtPntpZH07CiAgICAgICAgJERhdGF7a2V5fSA9
ICRKSVJBSXNzdWUtPntrZXl9OwogICAgICAgICREYXRhe3VybH0gPSAiJFVSTC9icm93c2UvIiAu
ICRKSVJBSXNzdWUtPntrZXl9OwogICAgfQoKICAgICMgdXNlciB3YW50cyB0byBsaW5rIHRpY2tl
dCB3aXRoIGFuIGV4aXN0aW5nIGlzc3VlCiAgICAjICAgLT4gc2VhcmNoIGZvciBleGlzdGluZyBp
c3N1ZXMKICAgIGVsc2lmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdJc3N1ZVNlYXJjaCcgKSB7
CgogICAgICAgICMgYnVpbGQgcmVzdWx0IGxpc3QKICAgICAgICBteSAkSXNzdWVzOwoKICAgICAg
ICBteSAkVGVybSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdUZXJtJyApOwoK
ICAgICAgICBpZiAoICRHZXRQYXJhbXtQcm9qZWN0fSAmJiAkVGVybSApIHsKICAgICAgICAgICAg
JElzc3VlcyA9ICRVdGlsc09iamVjdC0+SXNzdWVMaXN0KAogICAgICAgICAgICAgICAgUHJvamVj
dCA9PiAkR2V0UGFyYW17UHJvamVjdH0sCiAgICAgICAgICAgICAgICBUZXJtICAgID0+ICRUZXJt
LAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgbXkgJEpTT04gPSAkTGF5b3V0T2Jq
ZWN0LT5KU09ORW5jb2RlKAogICAgICAgICAgICBEYXRhID0+ICRJc3N1ZXMsCiAgICAgICAgKTsK
CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkF0dGFjaG1lbnQoCiAgICAgICAgICAgIENv
bnRlbnRUeXBlID0+ICdhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PScgLiAkTGF5b3V0T2JqZWN0
LT57Q2hhcnNldH0sCiAgICAgICAgICAgIENvbnRlbnQgICAgID0+ICRKU09OIHx8ICcnLAogICAg
ICAgICAgICBUeXBlICAgICAgICA9PiAnaW5saW5lJywKICAgICAgICAgICAgTm9DYWNoZSAgICAg
PT4gMSwKICAgICAgICApOwogICAgfQoKICAgICMgYnVpbGQgb3V0cHV0CiAgICBteSAkT3V0cHV0
ID0gJExheW91dE9iamVjdC0+SGVhZGVyKAogICAgICAgIFR5cGUgICAgICA9PiAnU21hbGwnLAog
ICAgICAgIEJvZHlDbGFzcyA9PiAnUG9wdXAnLAogICAgKTsKCiAgICAkT3V0cHV0IC49ICRMYXlv
dXRPYmplY3QtPk91dHB1dCgKICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJFRlbXBsYXRlRmlsZSwK
ICAgICAgICBEYXRhICAgICAgICAgPT4gewogICAgICAgICAgICAlR2V0UGFyYW0sCiAgICAgICAg
ICAgICVEYXRhLAogICAgICAgIH0sCiAgICApOwoKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVj
dC0+Rm9vdGVyKAogICAgICAgIFR5cGUgPT4gJ1NtYWxsJywKICAgICk7CgogICAgcmV0dXJuICRP
dXRwdXQ7Cn0KCjE7Cg==
IyAtLQojIEtlcm5lbC9PdXRwdXQvSFRNTC9GaWx0ZXJFbGVtZW50UG9zdC9PVFJTVG9KSVJBTGlu
ay5wbQojIENvcHlyaWdodCAoQykgMjAxNiBjYXRXb3JrWCBHbWJIIGh0dHA6Ly93d3cuY2F0d29y
a3guZGUKIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJB
TlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGlj
ZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZp
bGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2th
Z2UgS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkZpbHRlckVsZW1lbnRQb3N0OjpPVFJTVG9KSVJBTGlu
azsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0g
cXcoCiAgICBLZXJuZWw6OkNvbmZpZwogICAgS2VybmVsOjpMYW5ndWFnZQogICAgS2VybmVsOjpT
eXN0ZW06OkxvZwogICAgS2VybmVsOjpTeXN0ZW06Ok1haW4KICAgIEtlcm5lbDo6T3V0cHV0OjpI
VE1MOjpMYXlvdXQKICAgIEtlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QKKTsKCnN1YiBuZXcg
ewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNo
IGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7
CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSAp
ID0gQF87CgogICAgbXkgJExhbmd1YWdlT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVs
OjpMYW5ndWFnZScpOwogICAgbXkgJExheW91dE9iamVjdCAgID0gJEtlcm5lbDo6T00tPkdldCgn
S2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwogICAgbXkgJFBhcmFtT2JqZWN0ICAgID0g
JEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpOwogICAgbXkg
JFRpY2tldE9iamVjdCAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpY2tl
dCcpOwoKICAgIG15ICRUaXRsZSAgICA9ICRMYW5ndWFnZU9iamVjdC0+VHJhbnNsYXRlKCdPVFJT
IHRvIEpJUkEnKTsKICAgIG15ICRCYXNlbGluayA9ICRMYXlvdXRPYmplY3QtPntCYXNlbGlua307
CiAgICBteSAkVGlja2V0SUQgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnVGlj
a2V0SUQnICk7CgogICAgbXkgJVRpY2tldCA9ICRUaWNrZXRPYmplY3QtPlRpY2tldEdldCgKICAg
ICAgICBUaWNrZXRJRCAgICAgID0+ICRUaWNrZXRJRCwKICAgICAgICBEeW5hbWljRmllbGRzID0+
IDEsCiAgICApOwoKICAgIHJldHVybiAxIGlmICRUaWNrZXR7RHluYW1pY0ZpZWxkX0pJUkFJc3N1
ZUlEfTsKCiAgICBteSBAQXJ0aWNsZUlEcyA9ICR7ICRQYXJhbXtEYXRhfSB9ID1+IG17PGEgXHMg
bmFtZT0iQXJ0aWNsZShcZCspIn14bXM7CgogICAgJHsgJFBhcmFte0RhdGF9IH0gPX4gc3sgKCA8
YSBccyBuYW1lPSJBcnRpY2xlKFxkKykiIC4qPyA8dWwgXHMgY2xhc3M9IkFjdGlvbnMiPiApIFxz
KyA8bGk+fXskMSAuICRTZWxmLT5fX0xpbmtpZnkoICRCYXNlbGluaywgJFRpY2tldElELCAkMiwg
JFRpdGxlICkgLiAnPGxpPic7fWV4bXNnOwoKICAgIHJldHVybiAxOwp9CgpzdWIgX19MaW5raWZ5
IHsKICAgIG15ICgkU2VsZiwgJEJhc2VsaW5rLCAkVGlja2V0SUQsICRBcnRpY2xlSUQsICRUaXRs
ZSApID0gQF87CgogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5l
bDo6Q29uZmlnJyk7CgogICAgbXkgJERpYWxvZyA9ICRDb25maWdPYmplY3QtPkdldCgnSklSQTo6
U2hvd0RpYWxvZycpOwoKICAgIG15ICRBY3Rpb24gPSAnQWdlbnRUaWNrZXRKSVJBJzsKICAgICRB
Y3Rpb24gICAuPSAnRGlhbG9nJyBpZiAkRGlhbG9nOwoKICAgIG15ICRMaW5rID0gcXF+CiAgICAg
ICAgPGxpIGNsYXNzPSJPVFJTVG9KSVJBTGlua0xpbmsiPgogICAgICAgICAgICA8YSBocmVmPSIk
e0Jhc2VsaW5rfUFjdGlvbj0kQWN0aW9uO1RpY2tldElEPSRUaWNrZXRJRDtBcnRpY2xlSUQ9JEFy
dGljbGVJRCIgdGl0bGU9IiRUaXRsZSIgY2xhc3M9IkFzUG9wdXAgUG9wdXBfVHlwZV9UaWNrZXRB
Y3Rpb24iPiRUaXRsZTwvYT4KICAgICAgICA8L2xpPgogICAgfjsKCiAgICByZXR1cm4gJExpbms7
Cn0KCjE7Cg==
IyAtLQojIEtlcm5lbC9PdXRwdXQvSFRNTC9TdGFuZGFyZC9BZ2VudFRpY2tldEpJUkEudHQgLSBv
dmVydmlldwojIENvcHlyaWdodCAoQykgMjAxNSBjYXRXb3JrWCBHbWJoLCBodHRwOi8vd3d3LmNh
dHdvcmt4LmRlCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBX
QVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9y
IGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhp
cyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgojIC0tCjxk
aXYgY2xhc3M9Ik1haW5Cb3ggQVJJQVJvbGVNYWluIj4KICA8ZGl2IGNsYXNzPSJDbGVhckxlZnQi
PjwvZGl2PgogIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiU3Vj
Y2VzcyIpICVdCiAgICA8IS0tIHN0YXJ0IGZvcm0gLS0+CiAgICA8dGFibGUgYm9yZGVyPSIwIiB3
aWR0aD0iMTAwJSIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIzIiBzdHlsZT0icGFkZGlu
Zy1sZWZ0OiAxY207cGFkZGluZy10b3A6IDFjbTsiPgogICAgICA8dHI+CiAgICAgICAgPHRoIGNs
YXNzPSJtYWluaGVhZCI+CiAgICAgICAgICA8aDE+WyUgRW52KCJCb3gwIikgJV1bJSBUcmFuc2xh
dGUoIkEgbmV3IEpJUkEgSXNzdWUgaGFzIGJlZW4gY3JlYXRlZCIpIHwgaHRtbCAlXSFbJSBFbnYo
IkJveDAiKSAlXTwvaDE+CiAgICAgICAgPC90aD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAg
ICAgIDx0ZCBjbGFzcz0ibWFpbmJvZHkiPgogICAgICAgICAgWyUgVHJhbnNsYXRlKCJUbyB0aGUg
aXNzdWUgKEpJUkEpIikgfCBodG1sICVdOiA8YSBocmVmPSJbJSBEYXRhLnVybCB8IGh0bWwgJV0i
PlslIERhdGEua2V5IHwgaHRtbCAlXSAoWyUgRGF0YS5pZCB8IGh0bWwgJV0pPC9hPgogICAgICAg
IDwvdGQ+CiAgICAgIDwvdHI+CiAgICAgIDx0cj4KICAgICAgICA8dGQgY2xhc3M9Im1haW5ib2R5
Ij4KICAgICAgICAgIFslIFRyYW5zbGF0ZSgiQmFjayB0byB0aGUgdGlja2V0IChPVFJTKSIpIHwg
aHRtbCAlXTogPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPUFnZW50VGlja2V0
Wm9vbSZUaWNrZXRJRD1bJSBEYXRhLlRpY2tldElEIHwgaHRtbCAlXSI+WyUgRGF0YS5UaWNrZXRO
dW1iZXIgfCBodG1sICVdIChbJSBEYXRhLlRpY2tldElEIHwgaHRtbCAlXSk8L2E+CiAgICAgICAg
PC90ZD4KICAgICAgPC90cj4KICAgIDwvdGFibGU+CiAgICA8IS0tIGVuZCBmb3JtIC0tPgpbJSBS
ZW5kZXJCbG9ja0VuZCgiU3VjY2VzcyIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJFcnJvciIp
ICVdCiAgICA8IS0tIHN0YXJ0IGZvcm0gLS0+CiAgICA8dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0i
MTAwJSIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIzIiBzdHlsZT0icGFkZGluZy1sZWZ0
OiAxY207cGFkZGluZy10b3A6IDFjbTsiPgogICAgICA8dHI+CiAgICAgICAgPHRoIGNsYXNzPSJt
YWluaGVhZCI+CiAgICAgICAgICA8aDE+WyUgRW52KCJCb3gwIikgJV1bJSBUcmFuc2xhdGUoIkEg
SklSQSBJc3N1ZSBjb3VsZCBub3QgYmUgY3JlYXRlZCIpIHwgaHRtbCAlXSFbJSBFbnYoIkJveDAi
KSAlXTwvaDE+CiAgICAgICAgPC90aD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0
ZCBjbGFzcz0ibWFpbmJvZHkiPgogICAgICAgICAgWyUgRW52KCJCb3gwIikgJV1bJSBEYXRhLmVy
cm9yIHwgaHRtbCAlXVslIEVudigiQm94MCIpICVdCiAgICAgICAgPC90ZD4KICAgICAgPC90cj4K
ICAgICAgPHRyPgogICAgICAgIDx0ZCBjbGFzcz0ibWFpbmJvZHkiPgogICAgICAgICAgWyUgVHJh
bnNsYXRlKCJCYWNrIHRvIHRoZSB0aWNrZXQgKE9UUlMpIikgfCBodG1sICVdOiA8YSBocmVmPSJb
JSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249QWdlbnRUaWNrZXRab29tJlRpY2tldElEPVslIERh
dGEuVGlja2V0SUQgfCBodG1sICVdIj5bJSBEYXRhLlRpY2tldE51bWJlciB8IGh0bWwgJV0gKFsl
IERhdGEuVGlja2V0SUQgfCBodG1sICVdKTwvYT4KICAgICAgICA8L3RkPgogICAgICA8L3RyPgog
ICAgPC90YWJsZT4KICAgIDwhLS0gZW5kIGZvcm0gLS0+ClslIFJlbmRlckJsb2NrRW5kKCJFcnJv
ciIpICVdCgogIDwvZGl2Pgo8L2Rpdj4K
IyAtLQojIEtlcm5lbC9PdXRwdXQvSFRNTC9TdGFuZGFyZC9BZ2VudFRpY2tldEpJUkFEaWFsb2cu
dHQgLSBvdmVydmlldwojIENvcHlyaWdodCAoQykgMjAxNiBjYXRXb3JrWCBHbWJoLCBodHRwOi8v
d3d3LmNhdHdvcmt4LmRlCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVM
WSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJ
TkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2Vp
dmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0Lgoj
IC0tCjxmb3JtIGFjdGlvbj0iWyUgRW52KCJDR0lIYW5kbGUiKSAlXSIgbWV0aG9kPSJQT1NUIiBp
ZD0iSklSQUlzc3VlRm9ybSIgY2xhc3M9IlZhbGlkYXRlIFByZXZlbnRNdWx0aXBsZVN1Ym1pdHMi
PgogICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQWN0aW9uIiB2YWx1ZT0iWyUgRW52KCJB
Y3Rpb24iKSB8IGh0bWwgJV0iIC8+CiAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTdWJh
Y3Rpb24iIHZhbHVlPSJDcmVhdGUiIC8+CiAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJU
aWNrZXRJRCIgdmFsdWU9IlslIERhdGEuVGlja2V0SUQgfCBodG1sICVdIiAvPgogICAgPGlucHV0
IHR5cGU9ImhpZGRlbiIgbmFtZT0iQXJ0aWNsZUlEIiB2YWx1ZT0iWyUgRGF0YS5BcnRpY2xlSUQg
fCBodG1sICVdIiAvPgogICAgPGRpdiBjbGFzcz0iTGF5b3V0UG9wdXAgQVJJQVJvbGVNYWluIj4K
ICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICA8aDE+WyUgVHJhbnNsYXRl
KCJDcmVhdGUgaXNzdWUgaW4gSklSQSIpIHwgaHRtbCAlXTwvaDE+CiAgICAKICAgICAgICAgICAg
PHAgY2xhc3M9IkFzdGVyaXNrRXhwbGFuYXRpb24iPlslIFRyYW5zbGF0ZSgiQWxsIGZpZWxkcyBt
YXJrZWQgd2l0aCBhbiBhc3RlcmlzayAoKikgYXJlIG1hbmRhdG9yeS4iKSB8IGh0bWwgJV08L3A+
CiAgICAKICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgICA8YSBjbGFzcz0iQ2FuY2VsQ2xv
c2VQb3B1cCIgaHJlZj0iIyI+WyUgVHJhbnNsYXRlKCJDYW5jZWwgJiBjbG9zZSIpIHwgaHRtbCAl
XTwvYT4KICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgib3IiKSB8IGh0bWwgJV0KICAgICAg
ICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFj
dGlvbiIpICVdO1N1YmFjdGlvbj1MaW5rRXhpc3RpbmdJc3N1ZTtUaWNrZXRJRD1bJSBEYXRhLlRp
Y2tldElEIHwgdXJpICVdO0FydGljbGVJRD1bJSBEYXRhLkFydGljbGVJRCB8IHVyaSAlXSIKICAg
ICAgICAgICAgICAgICAgICA+WyUgVHJhbnNsYXRlKCJMaW5rIHdpdGggZXhpc3RpbmcgaXNzdWUi
KSB8IGh0bWwgJV08L2E+CiAgICAgICAgICAgIDwvcD4KICAgICAgICA8L2Rpdj4KClslIFJlbmRl
ckJsb2NrU3RhcnQoIkVycm9yIikgJV0KICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAg
ICAgICAgICAgPGgyPlslIEVudigiQm94MCIpICVdWyUgVHJhbnNsYXRlKCJBIEpJUkEgSXNzdWUg
Y291bGQgbm90IGJlIGNyZWF0ZWQiKSB8IGh0bWwgJV0hWyUgRW52KCJCb3gwIikgJV08L2gyPgog
ICAgICAgICAgICBbJSBEYXRhLmVycm9yIHwgaHRtbCAlXQogICAgICAgIDwvZGl2PgpbJSBSZW5k
ZXJCbG9ja0VuZCgiRXJyb3IiKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiRm9ybSIpICVdCiAg
ICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0i
VGFibGVMaWtlIEZpeGVkTGFiZWwiPgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiUHJvamVjdCIpICVd
CiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJQcm9qZWN0Ij5bJSBUcmFuc2xhdGUoIlByb2pl
Y3QiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxk
Ij4KICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlByb2plY3RTZWxlY3QgJV0KICAgICAgICAg
ICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2Pgpb
JSBSZW5kZXJCbG9ja0VuZCgiUHJvamVjdCIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIlByb2pl
Y3RTZWxlY3QiKSAlXQogICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJNYW5kYXRvcnkiIGZv
cj0iUHJvamVjdCI+PHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj5bJSBUcmFuc2xhdGUoIlBy
b2plY3QiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZp
ZWxkIj4KICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlByb2plY3RTZWxlY3QgJV0KICAgICAg
ICAgICAgICAgICAgICA8ZGl2IGlkPSJQcm9qZWN0RXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JN
ZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1s
ICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlByb2plY3RTZXJ2ZXJF
cnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBm
aWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICA8
L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KWyUgV1JBUFBF
UiBKU09uRG9jdW1lbnRDb21wbGV0ZSAlXQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+
Ly88IVtDREFUQVsKICAgICQoJyNQcm9qZWN0JykuYmluZCggJ2NoYW5nZScsIGZ1bmN0aW9uIChF
dmVudCkgewogICAgICAgIENvcmUuQUpBWC5Gb3JtVXBkYXRlKCQoJyNKSVJBSXNzdWVGb3JtJyks
ICdBSkFYVXBkYXRlJywgJ1Byb2plY3QnLCBbICdBc3NpZ25lZScsICdJc3N1ZVR5cGUnLCAnU3Rh
dGUnIF0pOwogICAgfSk7Ci8vXV0+PC9zY3JpcHQ+ClslIEVORCAlXQpbJSBSZW5kZXJCbG9ja0Vu
ZCgiUHJvamVjdCIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBc3NpZ25lZSIpICVdCiAgICAg
ICAgICAgICAgICA8bGFiZWwgZm9yPSJBc3NpZ25lZSI+WyUgVHJhbnNsYXRlKCJBc3NpZ25lZSIp
IHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgog
ICAgICAgICAgICAgICAgICAgIFslIERhdGEuQXNzaWduZWUgJV0KICAgICAgICAgICAgICAgIDwv
ZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgpbJSBSZW5kZXJC
bG9ja0VuZCgiQXNzaWduZWUiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBc3NpZ25lZVNlbGVj
dCIpICVdCiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9Ik1hbmRhdG9yeSIgZm9yPSJBc3Np
Z25lZSI+PHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj5bJSBUcmFuc2xhdGUoIkFzc2lnbmVl
IikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+
CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9IkFzc2lnbmVlU2Vh
cmNoRmllbGQiIGlkPSJBc3NpZ25lZVNlYXJjaEZpZWxkIiBjbGFzcz0iVmFsaWRhdGUgVmFsaWRh
dGVfUmVxdWlyZWQiIHZhbHVlPSJbJSBEYXRhLlZhbHVlIHwgaHRtbCAlXSIgLz4KICAgICAgICAg
ICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBc3NpZ25lZSIgaWQ9IkFzc2ln
bmVlIiB2YWx1ZT0iWyUgRGF0YS5WYWx1ZSB8IGh0bWwgJV0iIC8+ClslIFdSQVBQRVIgSlNPbkRv
Y3VtZW50Q29tcGxldGUgJV0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPi8vPCFbQ0RB
VEFbCiAgICBKSVJBLkF1dG9jb21wbGV0ZS5Jbml0KCAkKCcjQXNzaWduZWVTZWFyY2hGaWVsZCcp
LCAnQXNzaWduZWVTZWFyY2gnICk7Ci8vXV0+PC9zY3JpcHQ+ClslIEVORCAlXQogICAgICAgICAg
ICAgICAgICAgIDxkaXYgaWQ9IkFzc2lnbmVlU2VhcmNoRmllbGRFcnJvciIgY2xhc3M9IlRvb2x0
aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4i
KSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iQXNzaWdu
ZWVTZWFyY2hGaWVsZFNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+
WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD48L2Rp
dj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xl
YXIiPjwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiQXNzaWduZWVTZWxlY3QiKSAlXQoKWyUgUmVu
ZGVyQmxvY2tTdGFydCgiSXNzdWVUeXBlIikgJV0KICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9
Iklzc3VlVHlwZSI+WyUgVHJhbnNsYXRlKCJJc3N1ZVR5cGUiKSB8IGh0bWwgJV06PC9sYWJlbD4K
ICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICBb
JSBEYXRhLklzc3VlVHlwZSAlXQogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAg
ICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJJc3N1ZVR5cGUi
KSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJJc3N1ZVR5cGVTZWxlY3QiKSAlXQogICAgICAgICAg
ICAgICAgPGxhYmVsIGNsYXNzPSJNYW5kYXRvcnkiIGZvcj0iSXNzdWVUeXBlIj48c3BhbiBjbGFz
cz0iTWFya2VyIj4qPC9zcGFuPlslIFRyYW5zbGF0ZSgiSXNzdWVUeXBlIikgfCBodG1sICVdOjwv
bGFiZWw+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAg
ICAgICAgWyUgRGF0YS5Jc3N1ZVR5cGVTZWxlY3QgJV0KICAgICAgICAgICAgICAgICAgICA8ZGl2
IGlkPSJJc3N1ZVR5cGVFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRy
YW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAg
ICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iSXNzdWVUeXBlU2VydmVyRXJyb3IiIGNsYXNzPSJU
b29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWly
ZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAg
ICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJJc3N1
ZVR5cGVTZWxlY3QiKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiU3RhdGUiKSAlXQogICAgICAg
ICAgICAgICAgPGxhYmVsIGZvcj0iU3RhdGUiPlslIFRyYW5zbGF0ZSgiU3RhdGUiKSB8IGh0bWwg
JV06PC9sYWJlbD4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAg
ICAgICAgICAgICBbJSBEYXRhLlN0YXRlICVdCiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAg
ICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIlN0
YXRlIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiU3RhdGVTZWxlY3QiKSAlXQogICAgICAgICAg
ICAgICAgPGxhYmVsIGNsYXNzPSJNYW5kYXRvcnkiIGZvcj0iU3RhdGUiPjxzcGFuIGNsYXNzPSJN
YXJrZXIiPio8L3NwYW4+WyUgVHJhbnNsYXRlKCJTdGF0ZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgog
ICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgIFsl
IERhdGEuU3RhdGVTZWxlY3QgJV0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJTdGF0ZUVy
cm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZp
ZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAg
ICA8ZGl2IGlkPSJTdGF0ZVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+
PHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD48
L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0i
Q2xlYXIiPjwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiU3RhdGVTZWxlY3QiKSAlXQoKICAgICAg
ICAgICAgPC9maWVsZHNldD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJGb290
ZXIiPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJDYWxsRm9yQWN0aW9uIFByaW1hcnkiIGlk
PSJzdWJtaXRSaWNoVGV4dCIgYWNjZXNza2V5PSJnIiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJTdWJt
aXQiKSB8IGh0bWwgJV0gKGcpIiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJbJSBUcmFuc2xhdGUoIlN1
Ym1pdCIpIHwgaHRtbCAlXSI+PHNwYW4+PGkgY2xhc3M9ImZhIGZhLWNoZWNrLXNxdWFyZS1vIj48
L2k+IFslIFRyYW5zbGF0ZSgiU3VibWl0IikgfCBodG1sICVdPC9zcGFuPjwvYnV0dG9uPgogICAg
ICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiRm9ybSIpICVdCiAgICA8L2Rpdj4KPC9mb3Jt
Pgo=
IyAtLQojIEtlcm5lbC9PdXRwdXQvSFRNTC9TdGFuZGFyZC9BZ2VudFRpY2tldEpJUkFEaWFsb2dF
eGlzdGluZ0lzc3VlLnR0IC0gb3ZlcnZpZXcKIyBDb3B5cmlnaHQgKEMpIDIwMTYgY2F0V29ya1gg
R21iaCwgaHR0cDovL3d3dy5jYXR3b3JreC5kZQojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3
aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9z
ZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMg
ZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNl
cy9hZ3BsLnR4dC4KIyAtLQo8Zm9ybSBhY3Rpb249IlslIEVudigiQ0dJSGFuZGxlIikgJV0iIG1l
dGhvZD0iUE9TVCIgaWQ9IkpJUkFJc3N1ZUZvcm0iIGNsYXNzPSJWYWxpZGF0ZSBQcmV2ZW50TXVs
dGlwbGVTdWJtaXRzIj4KICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbiIgdmFs
dWU9IlslIEVudigiQWN0aW9uIikgfCBodG1sICVdIiAvPgogICAgPGlucHV0IHR5cGU9ImhpZGRl
biIgbmFtZT0iU3ViYWN0aW9uIiB2YWx1ZT0iQ3JlYXRlTGlua1dpdGhJc3N1ZSIgLz4KICAgIDxp
bnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlRpY2tldElEIiB2YWx1ZT0iWyUgRGF0YS5UaWNrZXRJ
RCB8IGh0bWwgJV0iIC8+CiAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBcnRpY2xlSUQi
IHZhbHVlPSJbJSBEYXRhLkFydGljbGVJRCB8IGh0bWwgJV0iIC8+CiAgICA8ZGl2IGNsYXNzPSJM
YXlvdXRQb3B1cCBBUklBUm9sZU1haW4iPgogICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAg
ICAgICAgICAgIDxoMT5bJSBUcmFuc2xhdGUoIkxpbmsgd2l0aCBKSVJBIGlzc3VlIikgfCBodG1s
ICVdPC9oMT4KICAgIAogICAgICAgICAgICA8cCBjbGFzcz0iQXN0ZXJpc2tFeHBsYW5hdGlvbiI+
WyUgVHJhbnNsYXRlKCJBbGwgZmllbGRzIG1hcmtlZCB3aXRoIGFuIGFzdGVyaXNrICgqKSBhcmUg
bWFuZGF0b3J5LiIpIHwgaHRtbCAlXTwvcD4KICAgIAogICAgICAgICAgICA8cD4KICAgICAgICAg
ICAgICAgIDxhIGNsYXNzPSJDYW5jZWxDbG9zZVBvcHVwIiBocmVmPSIjIj5bJSBUcmFuc2xhdGUo
IkNhbmNlbCAmIGNsb3NlIikgfCBodG1sICVdPC9hPgogICAgICAgICAgICAgICAgWyUgVHJhbnNs
YXRlKCJvciIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNl
bGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07VGlja2V0SUQ9WyUgRGF0YS5UaWNr
ZXRJRCB8IHVyaSAlXTtBcnRpY2xlSUQ9WyUgRGF0YS5BcnRpY2xlSUQgfCB1cmkgJV0iCiAgICAg
ICAgICAgICAgICAgICAgPlslIFRyYW5zbGF0ZSgiQ3JlYXRlIG5ldyBpc3N1ZSIpIHwgaHRtbCAl
XTwvYT4KICAgICAgICAgICAgPC9wPgogICAgICAgIDwvZGl2PgoKWyUgUmVuZGVyQmxvY2tTdGFy
dCgiRXJyb3IiKSAlXQogICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICA8
aDI+WyUgRW52KCJCb3gwIikgJV1bJSBUcmFuc2xhdGUoIlRoZSBKSVJBIElzc3VlIGNvdWxkIG5v
dCBiZSBsaW5rZWQiKSB8IGh0bWwgJV0hWyUgRW52KCJCb3gwIikgJV08L2gyPgogICAgICAgICAg
ICBbJSBEYXRhLmVycm9yIHwgaHRtbCAlXQogICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0Vu
ZCgiRXJyb3IiKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiRm9ybSIpICVdCiAgICAgICAgPGRp
diBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtl
IEZpeGVkTGFiZWwiPgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiUHJvamVjdCIpICVdCiAgICAgICAg
ICAgICAgICA8bGFiZWwgZm9yPSJQcm9qZWN0Ij5bJSBUcmFuc2xhdGUoIlByb2plY3QiKSB8IGh0
bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAg
ICAgICAgICAgICAgICBbJSBEYXRhLlByb2plY3RTZWxlY3QgJV0KICAgICAgICAgICAgICAgIDwv
ZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgpbJSBSZW5kZXJC
bG9ja0VuZCgiUHJvamVjdCIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIlByb2plY3RTZWxlY3Qi
KSAlXQogICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJNYW5kYXRvcnkiIGZvcj0iUHJvamVj
dCI+PHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj5bJSBUcmFuc2xhdGUoIlByb2plY3QiKSB8
IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAg
ICAgICAgICAgICAgICAgICBbJSBEYXRhLlByb2plY3RTZWxlY3QgJV0KICAgICAgICAgICAgICAg
ICAgICA8ZGl2IGlkPSJQcm9qZWN0RXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48
cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwv
ZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlByb2plY3RTZXJ2ZXJFcnJvciIgY2xh
c3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyBy
ZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAg
ICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQo
IlByb2plY3QiKSAlXQoKICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBm
b3I9Iklzc3VlSUQiPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+WyUgVHJhbnNsYXRlKCJJ
c3N1ZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmll
bGQiPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJJc3N1ZUlE
U2VhcmNoRmllbGQiIGlkPSJJc3N1ZUlEU2VhcmNoRmllbGQiIGNsYXNzPSJWYWxpZGF0ZSBWYWxp
ZGF0ZV9SZXF1aXJlZCIgdmFsdWU9IlslIERhdGEuVmFsdWUgfCBodG1sICVdIiAvPgogICAgICAg
ICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Iklzc3VlSUQiIGlkPSJJc3N1
ZUlEIiB2YWx1ZT0iWyUgRGF0YS5WYWx1ZSB8IGh0bWwgJV0iIC8+ClslIFdSQVBQRVIgSlNPbkRv
Y3VtZW50Q29tcGxldGUgJV0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPi8vPCFbQ0RB
VEFbCiAgICBKSVJBLkF1dG9jb21wbGV0ZS5Jbml0KCAkKCcjSXNzdWVJRFNlYXJjaEZpZWxkJyks
ICdJc3N1ZVNlYXJjaCcsICdJc3N1ZUlEJyApOwovL11dPjwvc2NyaXB0PgpbJSBFTkQgJV0KICAg
ICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJJc3N1ZUlEU2VhcmNoRmllbGRFcnJvciIgY2xhc3M9
IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1
aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0i
SXNzdWVJRFNlYXJjaEZpZWxkU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdl
Ij48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9w
PjwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNz
PSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICA8L2ZpZWxkc2V0PgogICAgICAgIDwvZGl2Pgog
ICAgICAgIDxkaXYgY2xhc3M9IkZvb3RlciI+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9IkNh
bGxGb3JBY3Rpb24gUHJpbWFyeSIgaWQ9InN1Ym1pdFJpY2hUZXh0IiBhY2Nlc3NrZXk9ImciIHRp
dGxlPSJbJSBUcmFuc2xhdGUoIlN1Ym1pdCIpIHwgaHRtbCAlXSAoZykiIHR5cGU9InN1Ym1pdCIg
dmFsdWU9IlslIFRyYW5zbGF0ZSgiU3VibWl0IikgfCBodG1sICVdIj48c3Bhbj48aSBjbGFzcz0i
ZmEgZmEtY2hlY2stc3F1YXJlLW8iPjwvaT4gWyUgVHJhbnNsYXRlKCJTdWJtaXQiKSB8IGh0bWwg
JV08L3NwYW4+PC9idXR0b24+CiAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJGb3Jt
IikgJV0KICAgIDwvZGl2Pgo8L2Zvcm0+Cg==
IyAtLQojIEtlcm5lbC9PdXRwdXQvSFRNTC9UaWNrZXRNZW51L0pJUkEucG0gLSBtZW51IG1vZHVs
ZQojICBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxNiBjYXRXb3JrWCBHbWJIIGh0dHA6Ly93d3cuY2F0
d29ya3guZGUKIyAgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBX
QVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9y
IGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhp
cyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgojIC0tCgpw
YWNrYWdlIEtlcm5lbDo6T3V0cHV0OjpIVE1MOjpUaWNrZXRNZW51OjpKSVJBOwoKdXNlIHN0cmlj
dDsKdXNlIHdhcm5pbmdzOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSBxdygKICAgIEtlcm5l
bDo6Q29uZmlnCiAgICBLZXJuZWw6OlN5c3RlbTo6TG9nCiAgICBLZXJuZWw6OlN5c3RlbTo6VGlj
a2V0CiAgICBLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Cik7CgpzdWIgbmV3IHsKICAgIG15
ICggJFR5cGUsICVQYXJhbSApID0gQF87CiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmpl
Y3QKCiAgICBteSAkU2VsZiA9IHsgJVBhcmFtIH07CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7
CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSAp
ID0gQF87CgogICAgbXkgJFRpY2tldE9iamVjdCAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJu
ZWw6OlN5c3RlbTo6VGlja2V0Jyk7CiAgICBteSAkQ29uZmlnT2JqZWN0ICAgICA9ICRLZXJuZWw6
Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CiAgICBteSAkTG9nT2JqZWN0ICAgICAgICA9ICRL
ZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKTsKICAgIG15ICRMYXlvdXRPYmpl
Y3QgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcp
OwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBpZiAoICEkUGFyYW17VGlja2V0fSApIHsK
ICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3In
LAogICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgVGlja2V0IScsCiAgICAgICAgKTsKICAg
ICAgICByZXR1cm47CiAgICB9CgogICAgbXkgJEFjdGlvbiA9ICRQYXJhbXtDb25maWd9LT57QWN0
aW9ufTsKCiAgICBteSAkU2hvd0RpYWxvZyA9ICRDb25maWdPYmplY3QtPkdldCgnSklSQTo6U2hv
d0RpYWxvZycpOwogICAgaWYgKCAkU2hvd0RpYWxvZyApIHsKICAgICAgICAkQWN0aW9uID0gJ0Fn
ZW50VGlja2V0SklSQURpYWxvZyc7CgogICAgICAgICRQYXJhbXtQb3B1cFR5cGV9ICAgICAgICAg
ICA9ICdUaWNrZXRBY3Rpb24nOwogICAgICAgICRQYXJhbXtDb25maWd9LT57UG9wdXBUeXBlfSA9
ICdUaWNrZXRBY3Rpb24nOwogICAgfQoKICAgICMgY2hlY2sgaWYgZnJvbnRlbmQgbW9kdWxlIHJl
Z2lzdGVyZWQsIGlmIG5vdCwgZG8gbm90IHNob3cgYWN0aW9uCiAgICBpZiAoICRBY3Rpb24gKSB7
CiAgICAgICAgbXkgJE1vZHVsZSA9ICRDb25maWdPYmplY3QtPkdldCgnRnJvbnRlbmQ6Ok1vZHVs
ZScpLT57JEFjdGlvbn07CgogICAgICAgIHJldHVybiBpZiAhJE1vZHVsZTsKICAgIH0KCiAgICAj
IGNoZWNrIHBlcm1pc3Npb24KICAgIG15ICRBY2Nlc3NPayA9ICRUaWNrZXRPYmplY3QtPlBlcm1p
c3Npb24oCiAgICAgICAgVHlwZSAgICAgPT4gJ3J3JywKICAgICAgICBUaWNrZXRJRCA9PiAkUGFy
YW17VGlja2V0fS0+e1RpY2tldElEfSwKICAgICAgICBVc2VySUQgICA9PiAkU2VsZi0+e1VzZXJJ
RH0sCiAgICAgICAgTG9nTm8gICAgPT4gMSwKICAgICk7CgogICAgcmV0dXJuIGlmICEkQWNjZXNz
T2s7CgogICAgIyBjaGVjayBwZXJtaXNzaW9uCiAgICBpZiAoICRUaWNrZXRPYmplY3QtPlRpY2tl
dExvY2tHZXQoIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXR9LT57VGlja2V0SUR9ICkgKSB7CiAg
ICAgICAgbXkgJEFjY2Vzc09rID0gJFRpY2tldE9iamVjdC0+T3duZXJDaGVjaygKICAgICAgICAg
ICAgVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldH0tPntUaWNrZXRJRH0sCiAgICAgICAgICAgIE93
bmVySUQgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICByZXR1cm4gaWYg
ISRBY2Nlc3NPazsKICAgIH0KCiAgICAjIGNoZWNrIGFjbAogICAgaWYgKCBkZWZpbmVkICRQYXJh
bXtBQ0x9LT57JEFjdGlvbn0gJiYgISRQYXJhbXtBQ0x9LT57JEFjdGlvbn0gKSB7CiAgICAgICAg
cmV0dXJuOwogICAgfQoKICAgIG15ICRKSVJBQ29uZmlnICAgICAgICAgPSAkQ29uZmlnT2JqZWN0
LT5HZXQoJ1RpY2tldEpJUkEnKTsKICAgIG15ICRBbGxvd2VkU3RhdGVzTmFtZXMgPSAkSklSQUNv
bmZpZy0+e09UUlNUaWNrZXRBbGxvd2VkU3RhdGVzNENyZWF0ZX07CiAgICBteSBAQWxsb3dlZFN0
YXRlc0xpc3QgID0gc3BsaXQgLywvLCAkQWxsb3dlZFN0YXRlc05hbWVzOwoKICAgIGlmICggIWdy
ZXB7ICRQYXJhbXtUaWNrZXR9LT57U3RhdGV9IGVxICRfIH1AQWxsb3dlZFN0YXRlc0xpc3QgKSB7
CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgaWYgdGhlcmUgaXMgYWxyZWFkeSBhIEpJUkEg
aXNzdWUgZm9yIHRoYXQgdGlja2V0LCBkbyBub3Qgc2hvdyB0aGUgbWVudSBpdGVtCiAgICBpZiAo
ICRQYXJhbXtUaWNrZXR9LT57IkR5bmFtaWNGaWVsZF9KSVJBSXNzdWVJRCJ9ICkgewogICAgICAg
IHJldHVybjsKICAgIH0KCiAgICBteSAkTGFuZ3VhZ2VPYmplY3QgPSAkTGF5b3V0T2JqZWN0LT57
TGFuZ3VhZ2VPYmplY3R9OwoKICAgIHJldHVybiB7CiAgICAgICAgJXsgJFBhcmFte0NvbmZpZ30g
fSwKICAgICAgICAleyAkUGFyYW17VGlja2V0fSB9LAogICAgICAgICVQYXJhbSwKICAgICAgICBO
YW1lICAgICAgICAgPT4gJExhbmd1YWdlT2JqZWN0LT5HZXQoJ09UUlMgdG8gSklSQScpLAogICAg
ICAgIERlc2NyaXB0aW9uICA9PiAkTGFuZ3VhZ2VPYmplY3QtPkdldCgnRXNjYWxhdGUgdGhpcyB0
aWNrZXQgdG8gSklSQScpLAogICAgICAgIExpbmsgICAgICAgICA9PiAnQWN0aW9uPScgLiAkQWN0
aW9uIC4gJztUaWNrZXRJRD1bJSBEYXRhLlRpY2tldElEICVdJywKICAgIH07Cn0KCjE7Cg==
IyAgLS0KIyAgS2VybmVsL1N5c3RlbS9KSVJBL1V0aWxzLnBtIC0gY29yZSBtb2R1bGUKIyAgQ29w
eXJpZ2h0IChDKSAyMDE2IGNhdFdvcmtYIEdtYkggaHR0cDovL3d3dy5jYXR3b3JreC5kZQojICAt
LQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3Ig
ZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZv
cm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBo
dHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVs
OjpTeXN0ZW06OkpJUkE6OlV0aWxzOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIEpJ
UkE6OlJFU1Q7CnVzZSBMaXN0OjpVdGlsIHF3KGZpcnN0KTsKCnVzZSBjb25zdGFudCBQID0+IF9f
UEFDS0FHRV9fOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSBxdygKICAgIEtlcm5lbDo6Q29u
ZmlnCiAgICBLZXJuZWw6OlN5c3RlbTo6TG9nCiAgICBLZXJuZWw6OlN5c3RlbTo6TWFpbgogICAg
S2VybmVsOjpTeXN0ZW06OkpTT04KICAgIEtlcm5lbDo6U3lzdGVtOjpDYWNoZQopOwoKCnN1YiBu
ZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBo
YXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBl
ICk7CgogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29u
ZmlnJyk7CgogICAgJFNlbGYtPntEZWJ1Z30gICAgICA9ICRDb25maWdPYmplY3QtPkdldCgnSklS
QTo6RGVidWcnKTsKICAgICRTZWxmLT57Q29uZmlnfSAgICAgPSAkQ29uZmlnT2JqZWN0LT5HZXQo
J1RpY2tldEpJUkEnKSB8fCB7fTsKICAgICRTZWxmLT57SklSQUNsaWVudH0gPSBKSVJBOjpSRVNU
LT5uZXcoCiAgICAgICAgJFNlbGYtPntDb25maWd9LT57VVJMfSwKICAgICAgICAkU2VsZi0+e0Nv
bmZpZ30tPntVc2VyfSwKICAgICAgICAkU2VsZi0+e0NvbmZpZ30tPntQYXNzd29yZH0sCiAgICAp
OwoKICAgIG15ICRWZXJpZnlTU0wgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0pJUkE6OlNTTFZlcmlm
eScpOwogICAgaWYgKCAhJFZlcmlmeVNTTCApIHsKICAgICAgICBteSAkTG9hZGVkID0gJEtlcm5l
bDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok1haW4nKS0+UmVxdWlyZSgKICAgICAgICAgICAg
J05ldDo6U1NMZWF5JywKICAgICAgICAgICAgU2lsZW50ID0+IDEsCiAgICAgICAgKTsKICAgICAg
ICBpZiAoJExvYWRlZCkgewogICAgICAgICAgICAkU2VsZi0+e0pJUkFDbGllbnR9LT57cmVzdH0t
PmdldFVzZXJhZ2VudCgpLT5zc2xfb3B0cyggdmVyaWZ5X2hvc3RuYW1lID0+IDAgKTsKICAgICAg
ICAgICAgJFNlbGYtPntKSVJBQ2xpZW50fS0+e3Jlc3R9LT5nZXRVc2VyYWdlbnQoKS0+c3NsX29w
dHMoIFNTTF92ZXJmaXlfbW9kZSA9PiBOZXQ6OlNTTGVheTo6VkVSSUZZX05PTkUoKSApOwogICAg
ICAgIH0KICAgIH0KCiAgICAkU2VsZi0+e0NhY2hlVHlwZX0gPSAnSklSQVV0aWxzJzsKICAgICRT
ZWxmLT57Q2FjaGVUVEx9ICA9ICRDb25maWdPYmplY3QtPkdldCgnSklSQTo6Q2FjaGVUVEwnKTsK
CiAgICByZXR1cm4gJFNlbGY7Cn0KCj1pdGVtIFByb2plY3RzR2V0KCkKCj1jdXQKCnN1YiBQcm9q
ZWN0c0dldCB7CiAgICBteSAoJFNlbGYsICVQYXJhbSkgPSBAXzsKCiAgICBteSAkTG9nT2JqZWN0
ICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpOwogICAgbXkgJE1h
aW5PYmplY3QgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpNYWluJyk7CiAg
ICBteSAkQ2FjaGVPYmplY3QgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNh
Y2hlJyk7CiAgICBteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpD
b25maWcnKTsKCiAgICBteSAkUHJvamVjdHMgPSAkQ2FjaGVPYmplY3QtPkdldCgKICAgICAgICBU
eXBlID0+ICRTZWxmLT57Q2FjaGVUeXBlfSAuICdfUHJvamVjdHMnLAogICAgICAgIEtleSAgPT4g
J0FsbCcsCiAgICApOwoKICAgIGlmICggJFByb2plY3RzICYmICEkUGFyYW17Rm9yY2V9ICkgewoj
ICAgICAgICByZXR1cm4gJFByb2plY3RzOwogICAgfQoKICAgIG15ICRNZXRhSlNPTjsKICAgIG15
ICRFcnJvckdldDsKCiAgICBldmFsewogICAgICAgICRNZXRhSlNPTiA9ICRTZWxmLT57SklSQUNs
aWVudH0tPkdFVCggJy9pc3N1ZS9jcmVhdGVtZXRhJyApOwogICAgfSBvciAkRXJyb3JHZXQgPSAk
QDsKCiAgICBpZiAoICRFcnJvckdldCApIHsKICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAg
ICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+IHNwcmlu
dGYgUCAuICAiOjpQcm9qZWN0c0dldDogY2Fubm90IG1ldGFkYXRhOiAlcyIsCiAgICAgICAgICAg
ICAgICAkRXJyb3JHZXQsCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuICt7fTsKICAgIH0KCiAg
ICBteSBAV2hpdGVsaXN0ID0gQHsgJENvbmZpZ09iamVjdC0+R2V0KCdKSVJBOjpQcm9qZWN0V2hp
dGVsaXN0JykgfHwgW10gfTsKICAgIG15IEBCbGFja2xpc3QgPSBAeyAkQ29uZmlnT2JqZWN0LT5H
ZXQoJ0pJUkE6OlByb2plY3RCbGFja2xpc3QnKSB8fCBbXSB9OwoKICAgIGlmICggJFNlbGYtPntE
ZWJ1Z30gKSB7CiAgICAgICAgJExvZ09iamVjdC0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9
PiAnZGVidWcnLAogICAgICAgICAgICBNZXNzYWdlICA9PiBQIC4gICI6OlByb2plY3RzR2V0OiAi
CiAgICAgICAgICAgICAgICAuICRNYWluT2JqZWN0LT5EdW1wKCBbIFxAV2hpdGVsaXN0LCBcQEJs
YWNrbGlzdCwgJE1ldGFKU09OLT57cHJvamVjdHN9IF0gKSwKICAgICAgICApOwogICAgfQoKICAg
IFBST0pFQ1RJVEVNOgogICAgZm9yIG15ICRQcm9qZWN0SXRlbSAoIEB7ICRNZXRhSlNPTi0+e3By
b2plY3RzfSB8fCBbXSB9ICkgewogICAgICAgIG15ICRLZXkgID0gJFByb2plY3RJdGVtLT57a2V5
fTsKICAgICAgICBteSAkTmFtZSA9ICRQcm9qZWN0SXRlbS0+e25hbWV9OwoKICAgICAgICBpZiAo
ICRTZWxmLT57RGVidWd9ICkgewogICAgICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAg
ICAgICAgICBQcmlvcml0eSA9PiAnZGVidWcnLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4g
UCAuICAiOjpQcm9qZWN0c0dldDogQ2hlY2sgUHJvamVjdCAkS2V5IC0+ICROYW1lIgogICAgICAg
ICAgICApOwogICAgICAgIH0KCiAgICAgICAgaWYgKCBAV2hpdGVsaXN0ICkgewogICAgICAgICAg
ICBuZXh0IFBST0pFQ1RJVEVNIGlmICEoZmlyc3R7ICRLZXkgPX4gbXskX314bXMgfUBXaGl0ZWxp
c3QpOwogICAgICAgIH0KCiAgICAgICAgaWYgKCBAQmxhY2tsaXN0ICkgewogICAgICAgICAgICBu
ZXh0IFBST0pFQ1RJVEVNIGlmIChmaXJzdHsgJEtleSA9fiBteyRffXhtcyB9QEJsYWNrbGlzdCk7
CiAgICAgICAgfQoKICAgICAgICAkUHJvamVjdHMtPnskS2V5fSA9ICROYW1lOwoKICAgICAgICAj
IHNhdmUgaXNzdWV0eXBlcwogICAgICAgIG15ICRJc3N1ZVR5cGVzTGlzdDsKCiAgICAgICAgbXkg
JElzc3VlVHlwZXMgPSAkUHJvamVjdEl0ZW0tPntpc3N1ZXR5cGVzfSB8fCBbXTsKCiAgICAgICAg
SVNTVUVUWVBFOgogICAgICAgIGZvciBteSAkSXNzdWVUeXBlICggQHsgJElzc3VlVHlwZXMgfSAp
IHsKCiAgICAgICAgICAgIG5leHQgSVNTVUVUWVBFIGlmICRJc3N1ZVR5cGUtPntzdWJ0YXNrfTsK
CiAgICAgICAgICAgIG15ICRJc3N1ZVR5cGVOYW1lID0gJElzc3VlVHlwZS0+e25hbWV9OwogICAg
ICAgICAgICAkSXNzdWVUeXBlc0xpc3QtPnskSXNzdWVUeXBlTmFtZX0gPSAkSXNzdWVUeXBlTmFt
ZTsKICAgICAgICB9CgogICAgICAgICRDYWNoZU9iamVjdC0+U2V0KAogICAgICAgICAgICBUeXBl
ICA9PiAkU2VsZi0+e0NhY2hlVHlwZX0gLiAnX0lzc3VlVHlwZXMnLAogICAgICAgICAgICBLZXkg
ICA9PiAkS2V5LAogICAgICAgICAgICBWYWx1ZSA9PiAkSXNzdWVUeXBlc0xpc3QsCiAgICAgICAg
ICAgIFRUTCAgID0+ICRTZWxmLT57Q2FjaGVUVEx9LAogICAgICAgICk7CiAgICB9CgogICAgJFBy
b2plY3RzIC8vPSB7fTsKCiAgICBpZiAoICRTZWxmLT57RGVidWd9ICkgewogICAgICAgICRMb2dP
YmplY3QtPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2RlYnVnJywKICAgICAgICAgICAg
TWVzc2FnZSAgPT4gUCAuICAiOjpQcm9qZWN0c0dldDogIgogICAgICAgICAgICAgICAgLiAkTWFp
bk9iamVjdC0+RHVtcCggJFByb2plY3RzICksCiAgICAgICAgKTsKICAgIH0KCiAgICAkQ2FjaGVP
YmplY3QtPlNldCgKICAgICAgICBUeXBlICA9PiAkU2VsZi0+e0NhY2hlVHlwZX0gLiAnX1Byb2pl
Y3RzJywKICAgICAgICBLZXkgICA9PiAnQWxsJywKICAgICAgICBWYWx1ZSA9PiAkUHJvamVjdHMs
CiAgICAgICAgVFRMICAgPT4gJFNlbGYtPntDYWNoZVRUTH0sCiAgICApOwoKICAgIHJldHVybiAk
UHJvamVjdHM7Cn0KCj1pdGVtIElzc3VlVHlwZXNHZXQoKQoKR2V0IGFsbCBpc3N1ZSB0eXBlcyB0
aGF0IGJlbG9uZyB0byBhIHByb2plY3QgZnJvbSBKSVJBCgogICAgbXkgJElzc3VlVHlwZXMgPSAk
T2JqZWN0LT5Jc3N1ZVR5cGVzR2V0KAogICAgICAgIFByb2plY3QgPT4gJFByb2plY3QsCiAgICAp
OwoKPWN1dAoKc3ViIElzc3VlVHlwZXNHZXQgewogICAgbXkgKCRTZWxmLCAlUGFyYW0pID0gQF87
CgogICAgbXkgJExvZ09iamVjdCAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06
OkxvZycpOwogICAgbXkgJENhY2hlT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpT
eXN0ZW06OkNhY2hlJyk7CgogICAgIyBjaGVjayBmb3IgbmVlZGVkIGRhdGEKICAgIGZvciBteSAk
TmVlZGVkICggcXcvUHJvamVjdC8gKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyROZWVkZWR9ICkg
ewogICAgICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9
PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJE5lZWRlZCEiLAog
ICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICBt
eSAkSXNzdWVUeXBlcyA9ICRDYWNoZU9iamVjdC0+R2V0KAogICAgICAgIFR5cGUgID0+ICRTZWxm
LT57Q2FjaGVUeXBlfSAuICdfSXNzdWVUeXBlcycsCiAgICAgICAgS2V5ICAgPT4gJFBhcmFte1By
b2plY3R9LAogICAgKTsKCiAgICBpZiAoICRJc3N1ZVR5cGVzICkgewogICAgICAgIHJldHVybiAk
SXNzdWVUeXBlczsKICAgIH0KCiAgICAkU2VsZi0+UHJvamVjdHNHZXQoIEZvcmNlID0+IDEgKTsK
CiAgICAkSXNzdWVUeXBlcyA9ICRDYWNoZU9iamVjdC0+R2V0KAogICAgICAgIFR5cGUgID0+ICRT
ZWxmLT57Q2FjaGVUeXBlfSAuICdfSXNzdWVUeXBlcycsCiAgICAgICAgS2V5ICAgPT4gJFBhcmFt
e1Byb2plY3R9LAogICAgKTsKCiAgICByZXR1cm4gJElzc3VlVHlwZXMgfHwge307Cn0KCj1pdGVt
IFVzZXJzR2V0KCkKCkdldCBhbGwgaXNzdWUgdHlwZXMgdGhhdCBiZWxvbmcgdG8gYSBwcm9qZWN0
IGZyb20gSklSQQoKICAgIG15ICRVc2VycyA9ICRPYmplY3QtPlVzZXJzR2V0KAogICAgICAgIFBy
b2plY3QgPT4gJFByb2plY3QsCiAgICApOwoKPWN1dAoKc3ViIFVzZXJzR2V0IHsKICAgIG15ICgk
U2VsZiwgJVBhcmFtKSA9IEBfOwoKICAgIG15ICRMb2dPYmplY3QgICA9ICRLZXJuZWw6Ok9NLT5H
ZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKTsKICAgIG15ICRDYWNoZU9iamVjdCA9ICRLZXJuZWw6
Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpOwoKICAgICMgY2hlY2sgZm9yIG5lZWRl
ZCBkYXRhCiAgICBmb3IgbXkgJE5lZWRlZCAoIHF3L1Byb2plY3QvICkgewogICAgICAgIGlmICgg
ISRQYXJhbXskTmVlZGVkfSApIHsKICAgICAgICAgICAgJExvZ09iamVjdC0+TG9nKAogICAgICAg
ICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+
ICJOZWVkICROZWVkZWQhIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICB9CiAgICB9CgogICAgIyBpbXBsZW1lbnQgY2FjaGluZwogICAgbXkgJFVzZXJzID0gJENh
Y2hlT2JqZWN0LT5HZXQoCiAgICAgICAgVHlwZSAgPT4gJFNlbGYtPntDYWNoZVR5cGV9IC4gJ19V
c2VycycsCiAgICAgICAgS2V5ICAgPT4gJFBhcmFte1Byb2plY3R9LAogICAgKTsKCgogICAgbXkg
JFVzZXJzSlNPTjsKICAgIG15ICRFcnJvckdldDsKCiAgICAjIGdldCB1c2VycwogICAgZXZhbHsK
ICAgICAgICAkVXNlcnNKU09OID0gJFNlbGYtPntKSVJBQ2xpZW50fS0+R0VUKCAnL3VzZXIvYXNz
aWduYWJsZS9zZWFyY2g/cHJvamVjdD0nIC4gJFBhcmFte1Byb2plY3R9ICk7CiAgICB9IG9yICRF
cnJvckdldCA9ICRAOwoKICAgIGlmICggJEVycm9yR2V0ICkgewogICAgICAgICRMb2dPYmplY3Qt
PkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2Fn
ZSAgPT4gc3ByaW50ZiBQIC4gICI6OlVzZXJzR2V0OiBjYW5ub3QgYXNzaWduYWJsZSB1c2VycyBm
b3IgcHJvamVjdCAlczogJXMiLAogICAgICAgICAgICAgICAgJFBhcmFte1Byb2plY3R9LCAkRXJy
b3JHZXQsCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuICt7fTsKICAgIH0KCiAgICBmb3IgbXkg
JFVzZXIgKCBAeyAkVXNlcnNKU09OIHx8IFtdIH0gKSB7CiAgICAgICAgbXkgJEtleSAgID0gJFVz
ZXItPntuYW1lfTsKICAgICAgICBteSAkVmFsdWUgPSAkVXNlci0+e2Rpc3BsYXlOYW1lfTsgICAK
CiAgICAgICAgJFVzZXJzLT57JEtleX0gPSAkVmFsdWU7CiAgICB9CgogICAgJENhY2hlT2JqZWN0
LT5TZXQoCiAgICAgICAgVHlwZSAgPT4gJFNlbGYtPntDYWNoZVR5cGV9IC4gJ19Vc2VycycsCiAg
ICAgICAgS2V5ICAgPT4gJFBhcmFte1Byb2plY3R9LAogICAgICAgIFZhbHVlID0+ICRVc2VycywK
ICAgICAgICBUVEwgICA9PiAkU2VsZi0+e0NhY2hlVFRMfSwKICAgICk7CgogICAgcmV0dXJuICRV
c2VyczsKfQoKPWl0ZW0gU3RhdGVzR2V0KCkKCkdldCBhbGwgaXNzdWUgdHlwZXMgdGhhdCBiZWxv
bmcgdG8gYSBwcm9qZWN0IGZyb20gSklSQQoKICAgIG15ICRTdGF0ZXMgPSAkT2JqZWN0LT5TdGF0
ZXNHZXQoCiAgICAgICAgUHJvamVjdCA9PiAkUHJvamVjdCwKICAgICk7Cgo9Y3V0CgpzdWIgU3Rh
dGVzR2V0IHsKICAgIG15ICgkU2VsZiwgJVBhcmFtKSA9IEBfOwoKICAgIG15ICRMb2dPYmplY3Qg
PSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyk7CgogICAgIyBjaGVjayBm
b3IgbmVlZGVkIGRhdGEKICAgIGZvciBteSAkTmVlZGVkICggcXcvUHJvamVjdC8gKSB7CiAgICAg
ICAgaWYgKCAhJFBhcmFteyROZWVkZWR9ICkgewogICAgICAgICAgICAkTG9nT2JqZWN0LT5Mb2co
CiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVz
c2FnZSAgPT4gIk5lZWQgJE5lZWRlZCEiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIFRPRE86IGltcGxlbWVudCBjYWNoaW5nCgogICAg
bXkgJFN0YXRlcyA9IHt9OwogICAgbXkgJEVycm9yR2V0OwoKICAgICMgVE9ETzogVVJMIHRvIGdl
dCBzdGF0ZXMKICAgICNldmFsewogICAgIyAgICAkU3RhdGVzID0gJFNlbGYtPntKSVJBQ2xpZW50
fS0+R0VUKCAnL2lzc3VlLycgLiAkUGFyYW17UHJvamVjdH0gKTsKICAgICN9IG9yICRFcnJvckdl
dCA9ICRAOwogICAgIwogICAgI2lmICggJEVycm9yR2V0ICkgewogICAgIyAgICAkTG9nT2JqZWN0
LT5Mb2coCiAgICAjICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgIyAgICAgICAgTWVz
c2FnZSAgPT4gc3ByaW50ZiBQIC4gICI6OlN0YXRlc0dldDogY2Fubm90IGlzc3VlIHR5cGVzIGZv
ciBwcm9qZWN0ICVzOiAlcyIsCiAgICAjICAgICAgICAgICAgJFBhcmFte1Byb2plY3R9LCAkRXJy
b3JHZXQsCiAgICAjICAgICk7CiAgICAjCiAgICAjICAgIHJldHVybiAreyBlcnJvciA9PiAkRXJy
b3JHZXQgfTsKICAgICN9CgogICAgcmV0dXJuICRTdGF0ZXM7Cn0KCj1pdGVtIElzc3VlTGlzdCgp
Cgo9Y3V0CgpzdWIgSXNzdWVMaXN0IHsKICAgIG15ICgkU2VsZiwgJVBhcmFtKSA9IEBfOwoKICAg
IG15ICRMb2dPYmplY3QgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9n
Jyk7CiAgICBteSAkTWFpbk9iamVjdCAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0
ZW06Ok1haW4nKTsKICAgIG15ICRDYWNoZU9iamVjdCAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJu
ZWw6OlN5c3RlbTo6Q2FjaGUnKTsKICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+
R2V0KCdLZXJuZWw6OkNvbmZpZycpOwoKICAgICMgY2hlY2sgZm9yIG5lZWRlZCBkYXRhCiAgICBm
b3IgbXkgJE5lZWRlZCAoIHF3L1Byb2plY3QvICkgewogICAgICAgIGlmICggISRQYXJhbXskTmVl
ZGVkfSApIHsKICAgICAgICAgICAgJExvZ09iamVjdC0+TG9nKAogICAgICAgICAgICAgICAgUHJp
b3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICROZWVk
ZWQhIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9
CgogICAgJFBhcmFte1Rlcm19IC8vPSAnJzsKCiAgICBteSAkVHlwZVRlcm0gPSAkUGFyYW17VGVy
bX07CiAgICAkVHlwZVRlcm0gICAgPX4gc3tbXkEtWmEtejAtOV9dfXtffWc7CgogICAgbXkgJENh
Y2hlVHlwZSA9ICAkU2VsZi0+e0NhY2hlVHlwZX0gLiAnX0lzc3Vlc18nIC4gJFBhcmFte1Byb2pl
Y3R9IC4gJ18nIC4gJFR5cGVUZXJtOwoKICAgIG15ICRJc3N1ZXMgPSAkQ2FjaGVPYmplY3QtPkdl
dCgKICAgICAgICBUeXBlID0+ICRDYWNoZVR5cGUsCiAgICAgICAgS2V5ICA9PiAnQWxsJywKICAg
ICk7CgogICAgaWYgKCAkSXNzdWVzICYmICEkUGFyYW17Rm9yY2V9ICkgewogICAgICAgIHJldHVy
biAkSXNzdWVzOwogICAgfQoKICAgIG15ICRJc3N1ZXNKU09OOwogICAgbXkgJEVycm9yR2V0OwoK
ICAgIG15IEBTdGF0ZXMgPSBAeyAkQ29uZmlnT2JqZWN0LT5HZXQoJ0pJUkE6Oklzc3VlU2VhcmNo
U3RhdGVzJykgfHwgW10gfTsKCiAgICBteSAkU3RhdGVzU3RyaW5nID0gJyc7CiAgICBpZiAoIEBT
dGF0ZXMgKSB7CiAgICAgICAgJFN0YXRlc1N0cmluZyA9ICcgQU5EIHN0YXR1cyBJTiAoJyAuIGpv
aW4oJywnLCBtYXB7IHFxfiIkXyJ+IH1AU3RhdGVzICkgLiAnKSc7CiAgICB9CgogICAgbXkgJFBh
cmFtRGVzYyA9ICcnOwogICAgaWYgKCAkUGFyYW17VGVybX0gJiYgJFBhcmFte1Rlcm19ICF+IG17
XEFcKn14bXMgKSB7CiAgICAgICAgJFBhcmFtRGVzYyA9ICcgQU5EIGRlc2NyaXB0aW9uIH4gIicg
LiAkUGFyYW17VGVybX0gLiAnIic7CiAgICB9CgogICAgbXkgJFBhcmFtcyA9IHNwcmludGYgInBy
b2plY3Q9JXMlcyVzIiwgJFBhcmFte1Byb2plY3R9LCAkU3RhdGVzU3RyaW5nLCAkUGFyYW1EZXNj
OwoKICAgIGlmICggJFNlbGYtPntEZWJ1Z30gKSB7CiAgICAgICAgJExvZ09iamVjdC0+TG9nKAog
ICAgICAgICAgICBQcmlvcml0eSA9PiAnZGVidWcnLAogICAgICAgICAgICBNZXNzYWdlICA9PiBQ
IC4gICI6Oklzc3VlTGlzdDogUGFyYW1zIC0+ICIgLiAkUGFyYW1zLAogICAgICAgICk7CiAgICB9
CgogICAgZXZhbHsKICAgICAgICBteSAkTWF4UmVzdWx0cyA9ICRDb25maWdPYmplY3QtPkdldCgn
SklSQTo6SXNzdWVTZWFyY2hNYXhSZXN1bHRzJykgfHwgMzAwOwogICAgICAgICRJc3N1ZXNKU09O
ICAgID0gJFNlbGYtPntKSVJBQ2xpZW50fS0+UE9TVCgKICAgICAgICAgICAgJy9zZWFyY2gnLAog
ICAgICAgICAgICB1bmRlZiwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAganFsICAgICAg
ICA9PiAkUGFyYW1zLAogICAgICAgICAgICAgICAgbWF4UmVzdWx0cyA9PiAkTWF4UmVzdWx0cywK
ICAgICAgICAgICAgICAgIGZpZWxkcyAgICAgPT4gW3F3L2lkIGtleSBkZXNjcmlwdGlvbi9dLAog
ICAgICAgICAgICB9CiAgICAgICAgKTsKICAgIH0gb3IgJEVycm9yR2V0ID0gJEA7CgogICAgaWYg
KCAkRXJyb3JHZXQgKSB7CiAgICAgICAgJExvZ09iamVjdC0+TG9nKAogICAgICAgICAgICBQcmlv
cml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiBzcHJpbnRmIFAgLiAgIjo6
SXNzdWVMaXN0OiBjYW5ub3QgZ2V0IGlzc3VlIGxpc3Q6ICVzIiwKICAgICAgICAgICAgICAgICRF
cnJvckdldCwKICAgICAgICApOwoKICAgICAgICByZXR1cm4gK3t9OwogICAgfQoKICAgIGlmICgg
JFNlbGYtPntEZWJ1Z30gKSB7CiAgICAgICAgJExvZ09iamVjdC0+TG9nKAogICAgICAgICAgICBQ
cmlvcml0eSA9PiAnZGVidWcnLAogICAgICAgICAgICBNZXNzYWdlICA9PiBQIC4gICI6Oklzc3Vl
TGlzdDogSlNPTiAtPiAiCiAgICAgICAgICAgICAgICAuICRNYWluT2JqZWN0LT5EdW1wKCAkSXNz
dWVzSlNPTiApLAogICAgICAgICk7CiAgICB9CgogICAgbXkgQElzc3VlTGlzdDsKCiAgICBteSAk
UkU7CiAgICBpZiAoICRQYXJhbXtUZXJtfSApIHsKICAgICAgICAkUGFyYW17VGVybX0gPX4gc3tc
Kn17Lip9eG1zZzsKICAgICAgICAkUkUgICAgICAgICAgPSBxci8kUGFyYW17VGVybX0vaTsKICAg
IH0KCiAgICBJU1NVRUlURU06CiAgICBmb3IgbXkgJElzc3VlSXRlbSAoIEB7ICRJc3N1ZXNKU09O
LT57aXNzdWVzfSB8fCBbXSB9ICkgewogICAgICAgIG15ICRLZXkgID0gJElzc3VlSXRlbS0+e2tl
eX07CiAgICAgICAgbXkgJERlc2MgPSAkSXNzdWVJdGVtLT57ZmllbGRzfS0+e2Rlc2NyaXB0aW9u
fTsKICAgICAgICBteSAkSUQgICA9ICRJc3N1ZUl0ZW0tPntpZH07CgogICAgICAgIGlmICggJFBh
cmFte1Rlcm19ICkgewogICAgICAgICAgICBuZXh0IElTU1VFSVRFTSBpZiAkS2V5ICF+ICRSRSBh
bmQgJERlc2MgIX4gJFJFOwogICAgICAgIH0KCiAgICAgICAgcHVzaCBASXNzdWVMaXN0LCB7CiAg
ICAgICAgICAgIFZhbHVlID0+ICRJRCwKICAgICAgICAgICAgTGFiZWwgPT4gc3ByaW50ZiggIiVz
IC0gJXMiLCAkS2V5LCAkRGVzYyApLAogICAgICAgIH0KICAgIH0KCiAgICBpZiAoICRTZWxmLT57
RGVidWd9ICkgewogICAgICAgICRMb2dPYmplY3QtPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkg
PT4gJ2RlYnVnJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gUCAuICAiOjpJc3N1ZUxpc3Q6ICIg
LgogICAgICAgICAgICAgICAgJE1haW5PYmplY3QtPkR1bXAoIFxASXNzdWVMaXN0ICksCiAgICAg
ICAgKTsKICAgIH0KCiAgICAkQ2FjaGVPYmplY3QtPlNldCgKICAgICAgICBUeXBlICA9PiAkQ2Fj
aGVUeXBlLAogICAgICAgIEtleSAgID0+ICdBbGwnLAogICAgICAgIFZhbHVlID0+IFxASXNzdWVM
aXN0LAogICAgICAgIFRUTCAgID0+ICRTZWxmLT57Q2FjaGVUVEx9LAogICAgKTsKCiAgICByZXR1
cm4gXEBJc3N1ZUxpc3Q7Cn0KCjE7Cgo=
IyAtLQ0KIyBLZXJuZWwvU3lzdGVtL1RpY2tldC9FdmVudC9BZGRBcnRpY2xlVG9KSVJBSXNzdWUu
cG0gLSBldmVudCBtb2R1bGUNCiMgQ29weXJpZ2h0IChDKSAyMDA4LTIwMTUgY2F0V29ya1ggR21i
SCBodHRwOi8vd3d3LmNhdHdvcmt4LmRlDQojIC0tDQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0
aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlDQojIHRoZSBlbmNsb3Nl
ZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UNCiMg
ZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNl
cy9hZ3BsLnR4dC4NCiMgLS0NCg0KcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6VGlja2V0OjpFdmVu
dDo6QWRkQXJ0aWNsZVRvSklSQUlzc3VlOw0KDQp1c2Ugc3RyaWN0Ow0KdXNlIHdhcm5pbmdzOw0K
DQp1c2UgTGlzdDo6VXRpbCBxdyhmaXJzdCk7DQoNCm91ciAkVkVSU0lPTiA9ICc0LjAwMSc7DQoN
Cm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gcXcoDQogICAgS2VybmVsOjpDb25maWcNCiAgICBL
ZXJuZWw6OlN5c3RlbTo6TG9nDQogICAgS2VybmVsOjpTeXN0ZW06Ok1haW4NCiAgICBLZXJuZWw6
OlN5c3RlbTo6VGlja2V0DQogICAgS2VybmVsOjpTeXN0ZW06OlVzZXINCiAgICBLZXJuZWw6OlN5
c3RlbTo6VGlja2V0SklSQQ0KKTsNCg0Kc3ViIG5ldyB7DQogICAgbXkgKCAkVHlwZSwgJVBhcmFt
ICkgPSBAXzsNCg0KICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdA0KICAgIG15ICRT
ZWxmID0ge307DQogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOw0KDQogICAgbXkgJENvbmZpZ09i
amVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7DQogICAgJFNlbGYtPntE
ZWJ1Z30gICA9ICRDb25maWdPYmplY3QtPkdldCgnSklSQTo6RGVidWcnKTsNCg0KICAgIHJldHVy
biAkU2VsZjsNCn0NCg0Kc3ViIFJ1biB7DQogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsN
Cg0KICAgIG15ICRUaWNrZXRPYmplY3QgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpT
eXN0ZW06OlRpY2tldCcpOw0KICAgIG15ICRDb25maWdPYmplY3QgICAgID0gJEtlcm5lbDo6T00t
PkdldCgnS2VybmVsOjpDb25maWcnKTsNCiAgICBteSAkTWFpbk9iamVjdCAgICAgICA9ICRLZXJu
ZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpNYWluJyk7DQogICAgbXkgJFVzZXJPYmplY3Qg
ICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpOw0KICAgIG15
ICRMb2dPYmplY3QgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Okxv
ZycpOw0KICAgIG15ICRUaWNrZXRKSVJBT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVs
OjpTeXN0ZW06OlRpY2tldEpJUkEnKTsNCg0KICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmDQogICAg
Zm9yIG15ICROZWVkZWQgKHF3KERhdGEgRXZlbnQgQ29uZmlnIFVzZXJJRCkpIHsNCiAgICAgICAg
aWYgKCAhJFBhcmFteyROZWVkZWR9ICkgew0KICAgICAgICAgICAgJExvZ09iamVjdC0+TG9nKA0K
ICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsDQogICAgICAgICAgICAgICAgTWVz
c2FnZSAgPT4gIk5lZWQgJE5lZWRlZCFcbiIsDQogICAgICAgICAgICApOw0KDQogICAgICAgICAg
ICByZXR1cm47DQogICAgICAgIH0NCiAgICB9DQoNCiAgICBmb3IgbXkgJE5lZWRlZERhdGEgKHF3
KFRpY2tldElEKSkgew0KICAgICAgICBpZiAoICEkUGFyYW17RGF0YX0tPnskTmVlZGVkRGF0YX0g
KSB7DQogICAgICAgICAgICAkTG9nT2JqZWN0LT5Mb2coDQogICAgICAgICAgICAgICAgUHJpb3Jp
dHkgPT4gJ2Vycm9yJywNCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkTmVlZGVk
RGF0YSBpbiBEYXRhIVxuIiwNCiAgICAgICAgICAgICk7DQoNCiAgICAgICAgICAgIHJldHVybjsN
CiAgICAgICAgfQ0KICAgIH0NCg0KICAgIG15ICRVc2VySUQgPSAkUGFyYW17VXNlcklEfTsNCg0K
ICAgICMgR2V0IGN1cnJlbnQgdXNlciBkYXRhDQogICAgbXkgJUN1cnJlbnRVc2VyID0gJFVzZXJP
YmplY3QtPkdldFVzZXJEYXRhKA0KICAgICAgICBVc2VySUQgPT4gJFVzZXJJRCwNCiAgICApOw0K
DQogICAgaWYgKCAkU2VsZi0+e0RlYnVnfSApIHsNCiAgICAgICAgJExvZ09iamVjdC0+TG9nKA0K
ICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2RlYnVnJywNCiAgICAgICAgICAgIE1lc3NhZ2UgID0+
IF9fUEFDS0FHRV9fIC4gIjo6UnVuKCk6IFVzZXJJRDogJFVzZXJJRCBVc2VyTG9naW46ICRDdXJy
ZW50VXNlcntVc2VyTG9naW59XG4iDQogICAgICAgICk7DQogICAgfQ0KDQogICAgaWYgKCAkQ3Vy
cmVudFVzZXJ7VXNlckxvZ2lufSBlcSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpY2tldEpJUkEnKS0+
e0luY29taW5nVXNlcn0gKSB7DQogICAgCXJldHVybiAxOw0KICAgIH0NCg0KICAgIG15ICRUaWNr
ZXRJRCA9ICRQYXJhbXtEYXRhfS0+e1RpY2tldElEfTsNCg0KICAgIGlmICggJFNlbGYtPntEZWJ1
Z30gKSB7DQogICAgICAgICRMb2dPYmplY3QtPkxvZygNCiAgICAgICAgICAgIFByaW9yaXR5ID0+
ICdkZWJ1ZycsDQogICAgICAgICAgICBNZXNzYWdlICA9PiBfX1BBQ0tBR0VfXyAuICI6OlJ1bigp
OiBUaWNrZXRJRDogJFRpY2tldElEIEV2ZW50OiAkUGFyYW17RXZlbnR9XG4iDQogICAgICAgICk7
DQogICAgfQ0KDQojICAgIHJldHVybiAxIGlmICRQYXJhbXtFdmVudH0gbmUgJ0FydGljbGVDcmVh
dGUnOw0KDQogICAgbXkgJVRpY2tldCA9ICRUaWNrZXRPYmplY3QtPlRpY2tldEdldCgNCiAgICAg
ICAgVGlja2V0SUQgICAgICA9PiAkVGlja2V0SUQsDQogICAgICAgIFVzZXJJRCAgICAgICAgPT4g
MSwNCiAgICAgICAgRHluYW1pY0ZpZWxkcyA9PiAxLA0KICAgICk7DQoNCiAgICByZXR1cm4gMSBp
ZiAhJVRpY2tldDsNCg0KICAgIG15ICRJc3N1ZUlEID0gJFRpY2tldHtEeW5hbWljRmllbGRfSklS
QUlzc3VlSUR9Ow0KICAgIHJldHVybiAxIGlmICEkSXNzdWVJRDsNCg0KICAgIGlmICggJFNlbGYt
PntEZWJ1Z30gKSB7DQogICAgICAgICRMb2dPYmplY3QtPkxvZygNCiAgICAgICAgICAgIFByaW9y
aXR5ID0+ICdkZWJ1ZycsDQogICAgICAgICAgICBNZXNzYWdlICA9PiBfX1BBQ0tBR0VfXyAuICI6
OlJ1bigpOiBUaWNrZXRJRDogJFRpY2tldHtUaWNrZXRJRH0gVGl0bGU6ICRUaWNrZXR7VGl0bGV9
ICINCiAgICAgICAgICAgICAgICAuICJTdGF0ZTogJFRpY2tldHtTdGF0ZX1cbiIsDQogICAgICAg
ICk7DQogICAgfQ0KDQogICAgbXkgQEFydGljbGVJbmRleCA9ICRUaWNrZXRPYmplY3QtPkFydGlj
bGVHZXQoDQogICAgICAgIFRpY2tldElEID0+ICRUaWNrZXRJRCwNCiAgICAgICAgVXNlcklEICAg
PT4gMSwNCiAgICApOw0KDQogICAgcmV0dXJuIDEgaWYgIUBBcnRpY2xlSW5kZXg7DQoNCiAgICBt
eSAlQXJ0aWNsZSA9ICV7ICRBcnRpY2xlSW5kZXhbLTFdIH07DQoNCiAgICBpZiAoICRTZWxmLT57
RGVidWd9ICkgew0KICAgICAgICAkTG9nT2JqZWN0LT5Mb2coDQogICAgICAgICAgICBQcmlvcml0
eSA9PiAnZGVidWcnLA0KICAgICAgICAgICAgTWVzc2FnZSAgPT4gX19QQUNLQUdFX18gLiAiOjpS
dW4oKTogQXJ0aWNsZUlEOiAkQXJ0aWNsZXtBcnRpY2xlSUR9IFRpdGxlOiAkQXJ0aWNsZXtUaXRs
ZX1cbiIsDQogICAgICAgICk7DQogICAgfQ0KDQogICAgcmV0dXJuIDEgaWYgISVBcnRpY2xlOw0K
DQogICAgbXkgJEFsbG93ZWRTdGF0ZXNOYW1lcyA9ICRDb25maWdPYmplY3QtPkdldCgnVGlja2V0
SklSQScpLT57T1RSU1RpY2tldEFsbG93ZWRTdGF0ZXM0VXBkYXRlfTsNCiAgICBteSBAQWxsb3dl
ZFN0YXRlc0xpc3QgID0gc3BsaXQgLywvLCAkQWxsb3dlZFN0YXRlc05hbWVzOw0KDQogICAgaWYg
KCAhZmlyc3QgeyAkXyBlcSAkVGlja2V0e1N0YXRlfSB9IEBBbGxvd2VkU3RhdGVzTGlzdCApIHsN
CiAgICAgICAgJExvZ09iamVjdC0+TG9nKA0KICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2luZm8n
LA0KICAgICAgICAgICAgTWVzc2FnZSAgPT4gX19QQUNLQUdFX18gLiAiOjpSdW4oKTogT1RSUyBU
aWNrZXQgbm90IGluICRBbGxvd2VkU3RhdGVzTmFtZXM6ICRUaWNrZXR7U3RhdGV9XG4iLA0KICAg
ICAgICApOw0KDQogICAgICAgIHJldHVybiAxOw0KICAgIH0NCg0KICAgIG15ICRKSVJBSXNzdWUg
PSAkVGlja2V0SklSQU9iamVjdC0+SXNzdWVDb21tZW50KA0KICAgICAgICBJc3N1ZUlEID0+ICRJ
c3N1ZUlELA0KICAgICAgICBDb21tZW50ID0+ICRBcnRpY2xle0JvZHl9LA0KICAgICk7DQoNCiAg
ICAjIFRPRE86IElmIGVycm9yIG9jY3VyZWQgc2hvdyBub3RpZmljYXRpb24gYmFyDQoNCiAgICBp
ZiAoICRTZWxmLT57RGVidWd9ICkgew0KICAgICAgICAkTG9nT2JqZWN0LT5Mb2coDQogICAgICAg
ICAgICBQcmlvcml0eSA9PiAnZGVidWcnLA0KICAgICAgICAgICAgTWVzc2FnZSAgPT4gc3ByaW50
ZiBfX1BBQ0tBR0VfXyAuICI6IFVwZGF0ZSByZXNwb25zZSAlc1xuIiwNCiAgICAgICAgICAgICAg
ICAkTWFpbk9iamVjdC0+RHVtcCggJEpJUkFJc3N1ZSApLA0KICAgICAgICApOw0KICAgIH0NCg0K
ICAgIHJldHVybiAxOw0KfQ0KDQoxOw0K
IyAtLQojIEtlcm5lbC9TeXN0ZW0vVGlja2V0L0V2ZW50L0Nsb3NlSklSQUlzc3VlLnBtIC0gZXZl
bnQgbW9kdWxlCiMgQ29weXJpZ2h0IChDKSAyMDA4LTIwMTYgY2F0V29ya1ggR21iSCBodHRwOi8v
d3d3LmNhdHdvcmt4LmRlCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVM
WSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJ
TkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2Vp
dmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0Lgoj
IC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpUaWNrZXQ6OkV2ZW50OjpDbG9zZUpJUkFJc3N1
ZTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBMaXN0OjpVdGlsIHF3KGZpcnN0KTsK
Cm91ciAkVkVSU0lPTiA9IDQuMDAxOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSBxdygKICAg
IEtlcm5lbDo6U3lzdGVtOjpMb2cKICAgIEtlcm5lbDo6U3lzdGVtOjpDb25maWcKICAgIEtlcm5l
bDo6U3lzdGVtOjpKU09OCiAgICBLZXJuZWw6OlN5c3RlbTo6VGlja2V0CiAgICBLZXJuZWw6OlN5
c3RlbTo6VGlja2V0SklSQQopOwoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9
IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7
fTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICBteSAkQ29uZmlnT2JqZWN0ID0gJEtl
cm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKICAgICRTZWxmLT57RGVidWd9ICAgPSAk
Q29uZmlnT2JqZWN0LT5HZXQoJ0pJUkE6OkRlYnVnJyk7CgogICAgcmV0dXJuICRTZWxmOwp9Cgpz
dWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJFRpY2tldE9i
amVjdCAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGlja2V0Jyk7CiAg
ICBteSAkQ29uZmlnT2JqZWN0ICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmln
Jyk7CiAgICBteSAkTG9nT2JqZWN0ICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6
U3lzdGVtOjpMb2cnKTsKICAgIG15ICRUaWNrZXRKSVJBT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdl
dCgnS2VybmVsOjpTeXN0ZW06OlRpY2tldEpJUkEnKTsKICAgIG15ICRVc2VyT2JqZWN0ICAgICAg
ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKTsKCiAgICAjIGNoZWNr
IG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICROZWVkZWQgKHF3KERhdGEgRXZlbnQgQ29uZmlnIFVz
ZXJJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JE5lZWRlZH0gKSB7CiAgICAgICAgICAgICRM
b2dPYmplY3QtPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAg
ICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkTmVlZGVkIVxuIiwKICAgICAgICAgICAgKTsK
CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgZm9yIG15ICROZWVkZWRE
YXRhIChxdyhUaWNrZXRJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17RGF0YX0tPnskTmVlZGVk
RGF0YX0gKSB7CiAgICAgICAgICAgICRMb2dPYmplY3QtPkxvZygKICAgICAgICAgICAgICAgIFBy
aW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkTmVl
ZGVkRGF0YSBpbiBEYXRhIVxuIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICB9CiAgICB9CgogICAgbXkgJFRpY2tldElEID0gJFBhcmFte0RhdGF9LT57VGlja2V0
SUR9OwoKICAgIGlmICggJFNlbGYtPntEZWJ1Z30gKSB7CiAgICAgICAgJExvZ09iamVjdC0+TG9n
KAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZGVidWcnLAogICAgICAgICAgICBNZXNzYWdlICA9
PiBfX1BBQ0tBR0VfXyAuICI6OlJ1bigpOiBUaWNrZXRJRDogJFRpY2tldElEIEV2ZW50OiAkUGFy
YW17RXZlbnR9XG4iLAogICAgICAgICk7CiAgICB9CgojICAgIHJldHVybiAxIGlmICRQYXJhbXtF
dmVudH0gbmUgJ1RpY2tldFN0YXRlVXBkYXRlJzsKCiAgICBteSAlVGlja2V0ID0gJFRpY2tldE9i
amVjdC0+VGlja2V0R2V0KAogICAgICAgIFRpY2tldElEICAgICAgPT4gJFRpY2tldElELAogICAg
ICAgIFVzZXJJRCAgICAgICAgPT4gMSwKICAgICAgICBEeW5hbWljRmllbGRzID0+IDEsCiAgICAp
OwoKICAgIHJldHVybiAxIGlmICElVGlja2V0OwoKICAgIG15ICRVc2VySUQgPSAkUGFyYW17VXNl
cklEfTsKCiAgICAjIEdldCBjdXJyZW50IHVzZXIgZGF0YQogICAgbXkgJUN1cnJlbnRVc2VyID0g
JFVzZXJPYmplY3QtPkdldFVzZXJEYXRhKAogICAgICAgIFVzZXJJRCA9PiAkVXNlcklELAogICAg
KTsKCiAgICBpZiAoICRTZWxmLT57RGVidWd9ICkgewogICAgICAgICRMb2dPYmplY3QtPkxvZygK
ICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2RlYnVnJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4g
X19QQUNLQUdFX18gLiAiOjpSdW4oKTogVXNlcklEOiAkVXNlcklEIFVzZXJMb2dpbjogJEN1cnJl
bnRVc2Vye1VzZXJMb2dpbn1cbiIsCiAgICAgICAgKTsKICAgIH0KCiAgICBpZiAoICRDdXJyZW50
VXNlcntVc2VyTG9naW59IGVxICRDb25maWdPYmplY3QtPkdldCgnVGlja2V0SklSQScpLT57SW5j
b21pbmdVc2VyfSApIHsKICAgICAgICByZXR1cm4gMTsKICAgIH0KCgogICAgbXkgJEpJUkFJc3N1
ZUlEID0gJFRpY2tldHtEeW5hbWljRmllbGRfSklSQUlzc3VlSUR9OwogICAgcmV0dXJuIDEgaWYg
ISRKSVJBSXNzdWVJRDsKCiAgICBpZiAoICRTZWxmLT57RGVidWd9ICkgewogICAgICAgICRMb2dP
YmplY3QtPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2RlYnVnJywKICAgICAgICAgICAg
TWVzc2FnZSAgPT4gX19QQUNLQUdFX18gLiAiOjpSdW4oKTogVGlja2V0SUQ6ICRUaWNrZXR7VGlj
a2V0SUR9IFRpdGxlOiAkVGlja2V0e1RpdGxlfSAiCiAgICAgICAgICAgICAgICAuICJTdGF0ZTog
JFRpY2tldHtTdGF0ZX1cbiIsCiAgICAgICAgKTsKICAgIH0KCiAgICBteSAkQ29uZmlnID0gJENv
bmZpZ09iamVjdC0+R2V0KCdUaWNrZXRKSVJBJykgfHwgIHt9OwoKICAgIG15ICRBbGxvd2VkU3Rh
dGVzTmFtZXMgPSAkQ29uZmlnLT57T1RSU1RpY2tldEFsbG93ZWRTdGF0ZXM0Q2xvc2V9OwogICAg
bXkgQEFsbG93ZWRTdGF0ZXNMaXN0ICA9IHNwbGl0IC8sLywgJEFsbG93ZWRTdGF0ZXNOYW1lczsK
CiAgICBpZiAoICFmaXJzdHsgJF8gZXEgJFRpY2tldHtTdGF0ZX0gfSBAQWxsb3dlZFN0YXRlc0xp
c3QgKSB7CiAgICAgICAgJExvZ09iamVjdC0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAn
aW5mbycsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+IF9fUEFDS0FHRV9fIC4gIjo6UnVuKCk6IE9U
UlMgVGlja2V0IG5vdCBpbiAkQWxsb3dlZFN0YXRlc05hbWVzOiAkVGlja2V0e1N0YXRlfVxuIiwK
ICAgICAgICApOwoKICAgICAgICByZXR1cm4gMTsKICAgIH0KCiAgICBteSAkVVJMID0gJENvbmZp
Zy0+e1VSTH07CgogICAgbXkgJFZhbGlkTGljZW5zZSA9ICRUaWNrZXRKSVJBT2JqZWN0LT5DaGVj
a1ZhbGlkTGljZW5zZSgpOwogICAgaWYgKCAkVmFsaWRMaWNlbnNlICE9IDEgKSB7CiAgICAgICAg
JExvZ09iamVjdC0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAg
ICAgICBNZXNzYWdlICA9PiBfX1BBQ0tBR0VfXyAuICI6OlJ1bigpOiBpbnZhbGlkIGxpY2Vuc2Ug
YXQgJFVSTCwgc3RhdHVzICRWYWxpZExpY2Vuc2UiLAogICAgICAgICk7CgogICAgICAgIHJldHVy
biAxOyAjIHNraXAgdGhlIHJlc3QKICAgIH0KCiAgICBteSAkSXNzdWUgPSAkVGlja2V0SklSQU9i
amVjdC0+SXNzdWVHZXQoIElzc3VlID0+ICRKSVJBSXNzdWVJRCApOwoKICAgIGlmICggJElzc3Vl
LT57ZXJyb3J9ICkgewogICAgICAgICRMb2dPYmplY3QtPkxvZygKICAgICAgICAgICAgUHJpb3Jp
dHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gX19QQUNLQUdFX18gLiAiOjpS
dW4oKTogY2Fubm90IGZldGNoIHRoZSBKSVJBIElzc3VlICIKICAgICAgICAgICAgICAgIC4gJEpJ
UkFJc3N1ZUlEIC4gIiBmb3IgIiAuICRUaWNrZXR7VGlja2V0SUR9IC4gIjogJEAiLAogICAgICAg
ICk7CgogICAgICAgIHJldHVybiAxOwogICAgfQoKICAgIGlmICggJFNlbGYtPntEZWJ1Z30gKSB7
CiAgICAgICAgJExvZ09iamVjdC0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZGVidWcn
LAogICAgICAgICAgICBNZXNzYWdlICA9PiBfX1BBQ0tBR0VfXyAuICI6OlJ1bigpOiBpc3N1ZSBl
eGlzdHNcbiIsCiAgICAgICAgKTsKICAgIH0KCiAgICBteSBAQXJ0aWNsZUluZGV4ID0gJFRpY2tl
dE9iamVjdC0+QXJ0aWNsZUdldCgKICAgICAgICBUaWNrZXRJRCA9PiAkVGlja2V0e1RpY2tldElE
fSwKICAgICAgICBVc2VySUQgICA9PiAxLAogICAgICAgIE9yZGVyICAgID0+ICdERVNDJywgIyBE
RVNDLEFTQyAtIGRlZmF1bHQgaXMgQVNDCiAgICAgICAgTGltaXQgICAgPT4gMSwKICAgICk7Cgog
ICAgbXkgJFJlc3VsdCA9ICRUaWNrZXRKSVJBT2JqZWN0LT5Jc3N1ZUNsb3NlKAogICAgICAgIElz
c3VlSUQgPT4gJEpJUkFJc3N1ZUlELAogICAgICAgIENvbW1lbnQgPT4gIk9UUlM6ICRUaWNrZXR7
U3RhdGV9XG5cbi0tLS0tLS0tXG4iIC4gJEFydGljbGVJbmRleFswXS0+e0JvZHl9LAogICAgKTsK
CiAgICBpZiAoICRSZXN1bHQtPntlcnJvcn0gKSB7CiAgICAgICAgJExvZ09iamVjdC0+TG9nKAog
ICAgICAgICAgICBQcmlvcml0eSA9PiAnZGVidWcnLAogICAgICAgICAgICBNZXNzYWdlICA9PiBf
X1BBQ0tBR0VfXyAuICI6IENhbm5vdCBjbG9zZSBpc3N1ZSAkSklSQUlzc3VlSUQ6ICRSZXN1bHQt
PntlcnJvcn1cbiIsCiAgICAgICAgKTsKICAgIH0KCiAgICByZXR1cm4gMTsKfQoKMTsK
IyAtLQ0KIyBLZXJuZWwvU3lzdGVtL1RpY2tldC9FdmVudC9DcmVhdGVKSVJBSXNzdWUucG0gLSBl
dmVudCBtb2R1bGUNCiMgQ29weXJpZ2h0IChDKSAyMDA4LTIwMTUgY2F0V29ya1ggR21iSCBodHRw
Oi8vd3d3LmNhdHdvcmt4LmRlDQojIC0tDQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNP
TFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlDQojIHRoZSBlbmNsb3NlZCBmaWxl
IENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UNCiMgZGlkIG5v
dCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3Bs
LnR4dC4NCiMgLS0NCg0KcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6VGlja2V0OjpFdmVudDo6Q3Jl
YXRlSklSQUlzc3VlOw0KDQp1c2Ugc3RyaWN0Ow0KdXNlIHdhcm5pbmdzOw0KDQp1c2UgTGlzdDo6
VXRpbCBxdyhmaXJzdCk7DQoNCm91ciAkVkVSU0lPTiA9ICc0LjAwMSc7DQoNCm91ciBAT2JqZWN0
RGVwZW5kZW5jaWVzID0gcXcoDQogICAgS2VybmVsOjpDb25maWcNCiAgICBLZXJuZWw6OlN5c3Rl
bTo6TG9nDQogICAgS2VybmVsOjpTeXN0ZW06OlRpY2tldA0KICAgIEtlcm5lbDo6U3lzdGVtOjpU
aWNrZXRKSVJBDQopOw0KDQpzdWIgbmV3IHsNCiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBf
Ow0KDQogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0DQogICAgbXkgJFNlbGYgPSB7
fTsNCiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7DQoNCiAgICBteSAkQ29uZmlnT2JqZWN0ID0g
JEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsNCiAgICAkU2VsZi0+e0RlYnVnfSAg
ID0gJENvbmZpZ09iamVjdC0+R2V0KCdKSVJBOjpEZWJ1ZycpOw0KDQogICAgcmV0dXJuICRTZWxm
Ow0KfQ0KDQpzdWIgUnVuIHsNCiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOw0KDQogICAg
bXkgJFRpY2tldE9iamVjdCAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6
VGlja2V0Jyk7DQogICAgbXkgJENvbmZpZ09iamVjdCAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdL
ZXJuZWw6OkNvbmZpZycpOw0KICAgIG15ICRMb2dPYmplY3QgICAgICAgID0gJEtlcm5lbDo6T00t
PkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpOw0KICAgIG15ICRUaWNrZXRKSVJBT2JqZWN0ID0g
JEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpY2tldEpJUkEnKTsNCg0KICAgICMg
Y2hlY2sgbmVlZGVkIHN0dWZmDQogICAgZm9yIG15ICROZWVkZWQgKHF3KERhdGEgRXZlbnQgQ29u
ZmlnKSkgew0KICAgICAgICBpZiAoICEkUGFyYW17JE5lZWRlZH0gKSB7DQogICAgICAgICAgICAk
TG9nT2JqZWN0LT5Mb2coDQogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywNCiAg
ICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkTmVlZGVkIVxuIiwNCiAgICAgICAgICAg
ICk7DQoNCiAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgfQ0KICAgIH0NCg0KICAgIGZvciBt
eSAkTmVlZGVkRGF0YSAocXcoVGlja2V0SUQpKSB7DQogICAgICAgIGlmICggISRQYXJhbXtEYXRh
fS0+eyROZWVkZWREYXRhfSApIHsNCiAgICAgICAgICAgICRMb2dPYmplY3QtPkxvZygNCiAgICAg
ICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLA0KICAgICAgICAgICAgICAgIE1lc3NhZ2Ug
ID0+ICJOZWVkICROZWVkZWREYXRhIGluIERhdGEhXG4iLA0KICAgICAgICAgICAgKTsNCg0KICAg
ICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgfQ0KDQogICAgbXkgJFRpY2tldElEID0g
JFBhcmFte0RhdGF9LT57VGlja2V0SUR9Ow0KDQogICAgaWYgKCAkU2VsZi0+e0RlYnVnfSApIHsN
CiAgICAgICAgJExvZ09iamVjdC0+TG9nKA0KICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2RlYnVn
JywNCiAgICAgICAgICAgIE1lc3NhZ2UgID0+IF9fUEFDS0FHRV9fIC4gIjo6UnVuKCk6IFRpY2tl
dElEOiAkVGlja2V0SURcbiIsDQogICAgICAgICk7DQoNCiAgICAgICAgJExvZ09iamVjdC0+TG9n
KA0KICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2RlYnVnJywNCiAgICAgICAgICAgIE1lc3NhZ2Ug
ID0+IF9fUEFDS0FHRV9fIC4gIjo6UnVuKCk6IFRpY2tldElEOiAkVGlja2V0SUQgRXZlbnQ6ICRQ
YXJhbXtFdmVudH1cbiIsDQogICAgICAgICk7DQogICAgfQ0KDQojICAgIHJldHVybiAxIGlmICRQ
YXJhbXtFdmVudH0gbmUgJ1RpY2tldFN0YXRlVXBkYXRlJzsNCg0KICAgIG15ICVUaWNrZXQgPSAk
VGlja2V0T2JqZWN0LT5UaWNrZXRHZXQoDQogICAgICAgIFRpY2tldElEICAgICAgPT4gJFRpY2tl
dElELA0KICAgICAgICBVc2VySUQgICAgICAgID0+IDEsDQogICAgICAgIER5bmFtaWNGaWVsZHMg
PT4gMSwNCiAgICApOw0KDQogICAgcmV0dXJuIDEgaWYgISVUaWNrZXQ7DQoNCiAgICBteSAkSklS
QUlzc3VlSUQgPSAkVGlja2V0e0R5bmFtaWNGaWVsZF9KSVJBSXNzdWVJRH07DQogICAgcmV0dXJu
IDEgaWYgJEpJUkFJc3N1ZUlEOw0KDQogICAgaWYgKCAkU2VsZi0+e0RlYnVnfSApIHsNCiAgICAg
ICAgJExvZ09iamVjdC0+TG9nKA0KICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2RlYnVnJywNCiAg
ICAgICAgICAgIE1lc3NhZ2UgID0+IF9fUEFDS0FHRV9fIC4gIjo6UnVuKCk6IFRpY2tldElEOiAk
VGlja2V0e1RpY2tldElEfSBUaXRsZTogJFRpY2tldHtUaXRsZX0gIg0KICAgICAgICAgICAgICAg
IC4gIlN0YXRlOiAkVGlja2V0e1N0YXRlfVxuIiwNCiAgICAgICAgKTsNCiAgICB9DQoNCiAgICBt
eSAkQWxsb3dlZFN0YXRlc05hbWVzID0gJENvbmZpZ09iamVjdC0+R2V0KCdUaWNrZXRKSVJBJykt
PntPVFJTVGlja2V0QWxsb3dlZFN0YXRlczRDcmVhdGV9Ow0KICAgIG15IEBBbGxvd2VkU3RhdGVz
TGlzdCAgPSBzcGxpdCAvLC8sICRBbGxvd2VkU3RhdGVzTmFtZXM7DQoNCiAgICBpZiAoICEgZmly
c3R7ICRfIGVxICRUaWNrZXR7U3RhdGV9IH0gQEFsbG93ZWRTdGF0ZXNMaXN0ICkgew0KICAgICAg
ICAkTG9nT2JqZWN0LT5Mb2coDQogICAgICAgICAgICBQcmlvcml0eSA9PiAnaW5mbycsDQogICAg
ICAgICAgICBNZXNzYWdlICA9PiBfX1BBQ0tBR0VfXyAuICI6OlJ1bigpOiBPVFJTIFRpY2tldCBu
b3QgaW4gJEFsbG93ZWRTdGF0ZXNOYW1lczogJFRpY2tldHtTdGF0ZX1cbiIsDQogICAgICAgICk7
DQoNCiAgICAgICAgcmV0dXJuIDE7DQogICAgfQ0KDQogICAgbXkgJEpJUkFJc3N1ZSA9ICRUaWNr
ZXRKSVJBT2JqZWN0LT5Jc3N1ZUNyZWF0ZSgNCiAgICAgICAgVGlja2V0SUQgPT4gJFRpY2tldHtU
aWNrZXRJRH0sDQogICAgICAgIFVzZXJJRCAgID0+IDEsDQogICAgKTsgIyBGSVhNRTogVXNlcklE
ID8NCg0KICAgIGlmICggJFNlbGYtPntEZWJ1Z30gKSB7DQogICAgICAgICRMb2dPYmplY3QtPkxv
ZygNCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsDQogICAgICAgICAgICBNZXNzYWdl
ICA9PiBfX1BBQ0tBR0VfXyAuICI6IFVwZGF0ZSByZXNwb25zZSAkSklSQUlzc3VlXG4iLA0KICAg
ICAgICApOw0KICAgIH0NCg0KICAgIHJldHVybiAxOw0KfQ0KDQoxOw0K
IyAtLQ0KIyBLZXJuZWwvU3lzdGVtL1RpY2tldC9FdmVudC9VcGRhdGVKSVJBSXNzdWUucG0gLSBl
dmVudCBtb2R1bGUNCiMgQ29weXJpZ2h0IChDKSAyMDA4LTIwMTUgY2F0V29ya1ggR21iSCBodHRw
Oi8vd3d3LmNhdHdvcmt4LmRlDQojIC0tDQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNP
TFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlDQojIHRoZSBlbmNsb3NlZCBmaWxl
IENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UNCiMgZGlkIG5v
dCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3Bs
LnR4dC4NCiMgLS0NCg0KcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6VGlja2V0OjpFdmVudDo6VXBk
YXRlSklSQUlzc3VlOw0KDQp1c2Ugc3RyaWN0Ow0KdXNlIHdhcm5pbmdzOw0KDQp1c2UgTGlzdDo6
VXRpbCBxdyhmaXJzdCk7DQoNCm91ciAkVkVSU0lPTiA9ICc0LjAwMSc7DQoNCm91ciBAT2JqZWN0
RGVwZW5kZW5jaWVzID0gcXcoDQogICAgS2VybmVsOjpDb25maWcNCiAgICBLZXJuZWw6OlN5c3Rl
bTo6TG9nDQogICAgS2VybmVsOjpTeXN0ZW06OlRpY2tldA0KICAgIEtlcm5lbDo6U3lzdGVtOjpV
c2VyDQogICAgS2VybmVsOjpTeXN0ZW06OlRpY2tldEpJUkENCik7DQoNCnN1YiBuZXcgew0KICAg
IG15ICggJFR5cGUsICVQYXJhbSApID0gQF87DQoNCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZv
ciBvYmplY3QNCiAgICBteSAkU2VsZiA9IHt9Ow0KICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsN
Cg0KICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZp
ZycpOw0KICAgICRTZWxmLT57RGVidWd9ICAgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0pJUkE6OkRl
YnVnJyk7DQoNCiAgICByZXR1cm4gJFNlbGY7DQp9DQoNCnN1YiBSdW4gew0KICAgIG15ICggJFNl
bGYsICVQYXJhbSApID0gQF87DQoNCiAgICBteSAkVGlja2V0T2JqZWN0ICAgICA9ICRLZXJuZWw6
Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaWNrZXQnKTsNCiAgICBteSAkQ29uZmlnT2JqZWN0
ICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7DQogICAgbXkgJFVzZXJP
YmplY3QgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpOw0K
ICAgIG15ICRMb2dPYmplY3QgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0
ZW06OkxvZycpOw0KICAgIG15ICRUaWNrZXRKSVJBT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgn
S2VybmVsOjpTeXN0ZW06OlRpY2tldEpJUkEnKTsNCg0KICAgICMgY2hlY2sgbmVlZGVkIHN0dWZm
DQogICAgZm9yIG15ICROZWVkZWQgKHF3KERhdGEgRXZlbnQgQ29uZmlnIFVzZXJJRCkpIHsNCiAg
ICAgICAgaWYgKCAhJFBhcmFteyROZWVkZWR9ICkgew0KICAgICAgICAgICAgJExvZ09iamVjdC0+
TG9nKA0KICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsDQogICAgICAgICAgICAg
ICAgTWVzc2FnZSAgPT4gIk5lZWQgJE5lZWRlZCFcbiIsDQogICAgICAgICAgICApOw0KDQogICAg
ICAgICAgICByZXR1cm47DQogICAgICAgIH0NCiAgICB9DQoNCiAgICBmb3IgbXkgJE5lZWRlZERh
dGEgKHF3KFRpY2tldElEKSkgew0KICAgICAgICBpZiAoICEkUGFyYW17RGF0YX0tPnskTmVlZGVk
RGF0YX0gKSB7DQogICAgICAgICAgICAkTG9nT2JqZWN0LT5Mb2coDQogICAgICAgICAgICAgICAg
UHJpb3JpdHkgPT4gJ2Vycm9yJywNCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAk
TmVlZGVkRGF0YSBpbiBEYXRhIVxuIiwNCiAgICAgICAgICAgICk7DQoNCiAgICAgICAgICAgIHJl
dHVybjsNCiAgICAgICAgfQ0KICAgIH0NCg0KICAgIG15ICRVc2VySUQgPSAkUGFyYW17VXNlcklE
fTsNCg0KICAgICMgR2V0IGN1cnJlbnQgdXNlciBkYXRhDQogICAgbXkgJUN1cnJlbnRVc2VyID0g
JFVzZXJPYmplY3QtPkdldFVzZXJEYXRhKA0KICAgICAgICBVc2VySUQgPT4gJFVzZXJJRCwNCiAg
ICApOw0KDQogICAgaWYgKCAkU2VsZi0+e0RlYnVnfSApIHsNCiAgICAgICAgJExvZ09iamVjdC0+
TG9nKA0KICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2RlYnVnJywNCiAgICAgICAgICAgIE1lc3Nh
Z2UgID0+IF9fUEFDS0FHRV9fIC4gIjo6UnVuKCk6IFVzZXJJRDogJFVzZXJJRCBVc2VyTG9naW46
ICRDdXJyZW50VXNlcntVc2VyTG9naW59XG4iLA0KICAgICAgICApOw0KICAgIH0NCg0KICAgIGlm
ICggJEN1cnJlbnRVc2Vye1VzZXJMb2dpbn0gZXEgJENvbmZpZ09iamVjdC0+R2V0KCdUaWNrZXRK
SVJBJyktPntJbmNvbWluZ1VzZXJ9ICkgew0KICAgIAlyZXR1cm4gMTsNCiAgICB9DQoNCiAgICBt
eSAkVGlja2V0SUQgPSAkUGFyYW17RGF0YX0tPntUaWNrZXRJRH07DQoNCiAgICBpZiAoICRTZWxm
LT57RGVidWd9ICkgew0KICAgICAgICAkTG9nT2JqZWN0LT5Mb2coDQogICAgICAgICAgICBQcmlv
cml0eSA9PiAnZGVidWcnLA0KICAgICAgICAgICAgTWVzc2FnZSAgPT4gX19QQUNLQUdFX18gLiAi
OjpSdW4oKTogVGlja2V0SUQ6ICRUaWNrZXRJRCBFdmVudDogJFBhcmFte0V2ZW50fVxuIiwNCiAg
ICAgICAgKTsNCiAgICB9DQoNCiAgICAjIyBjYW5ub3QgdG8gKnRoYXQqIGVhc2lseSwgbWF5YmUg
d2UnbGwgY2hlY2sgdGhlIFhNTC1Qcm9wcyBsYXRlciBvbiAjI3JldHVybiAxIGlmICRQYXJhbXtF
dmVudH0gbmUgJ1RpY2tldFN0YXRlVXBkYXRlJzsNCg0KICAgIG15ICVUaWNrZXQgPSAkVGlja2V0
T2JqZWN0LT5UaWNrZXRHZXQoDQogICAgICAgIFRpY2tldElEICAgICAgPT4gJFRpY2tldElELA0K
ICAgICAgICBVc2VySUQgICAgICAgID0+IDEsDQogICAgICAgIER5bmFtaWNGaWVsZHMgPT4gMSwN
CiAgICApOw0KDQogICAgcmV0dXJuIDEgaWYgISVUaWNrZXQ7DQoNCiAgICBteSAkSklSQUlzc3Vl
SUQgPSAkVGlja2V0e0R5bmFtaWNGaWVsZF9KSVJBSXNzdWVJRH07DQogICAgcmV0dXJuIDEgaWYg
ISRKSVJBSXNzdWVJRDsNCg0KICAgIGlmICggJFNlbGYtPntEZWJ1Z30gKSB7DQogICAgICAgICRM
b2dPYmplY3QtPkxvZygNCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdkZWJ1ZycsDQogICAgICAg
ICAgICBNZXNzYWdlICA9PiBfX1BBQ0tBR0VfXyAuICI6OlJ1bigpOiBUaWNrZXRJRDogJFRpY2tl
dHtUaWNrZXRJRH0gVGl0bGU6ICRUaWNrZXR7VGl0bGV9ICINCiAgICAgICAgICAgICAgICAuICJT
dGF0ZTogJFRpY2tldHtTdGF0ZX1cbiIsDQogICAgICAgICk7DQogICAgfQ0KDQogICAgbXkgJEFs
bG93ZWRTdGF0ZXNOYW1lcyA9ICRDb25maWdPYmplY3QtPkdldCgnVGlja2V0SklSQScpLT57T1RS
U1RpY2tldEFsbG93ZWRTdGF0ZXM0VXBkYXRlfTsNCiAgICBteSBAQWxsb3dlZFN0YXRlc0xpc3Qg
ID0gc3BsaXQgLywvLCAkQWxsb3dlZFN0YXRlc05hbWVzOw0KDQogICAgaWYgKCAhZmlyc3R7ICRf
IGVxICRUaWNrZXR7U3RhdGV9IH0gQEFsbG93ZWRTdGF0ZXNMaXN0ICkgew0KICAgICAgICAkTG9n
T2JqZWN0LT5Mb2coDQogICAgICAgICAgICBQcmlvcml0eSA9PiAnaW5mbycsDQogICAgICAgICAg
ICBNZXNzYWdlICA9PiBfX1BBQ0tBR0VfXyAuICI6OlJ1bigpOiBPVFJTIFRpY2tldCBub3QgaW4g
JEFsbG93ZWRTdGF0ZXNOYW1lczogJFRpY2tldHtTdGF0ZX1cbiIsDQogICAgICAgICk7DQoNCiAg
ICAgICAgcmV0dXJuIDE7DQogICAgfQ0KDQogICAgbXkgJEpJUkFJc3N1ZSA9ICRUaWNrZXRKSVJB
T2JqZWN0LT5Jc3N1ZVVwZGF0ZSgNCiAgICAgICAgVGlja2V0SUQgPT4gJFRpY2tldHtUaWNrZXRJ
RH0sDQogICAgICAgIFVzZXJJRCAgID0+IDEsDQogICAgKTsgIyBGSVhNRTogVXNlcklEID8NCg0K
ICAgIGlmICggJFNlbGYtPntEZWJ1Z30gKSB7DQogICAgICAgICRMb2dPYmplY3QtPkxvZygNCiAg
ICAgICAgICAgIFByaW9yaXR5ID0+ICdkZWJ1ZycsDQogICAgICAgICAgICBNZXNzYWdlICA9PiBf
X1BBQ0tBR0VfXyAuICI6IFVwZGF0ZSByZXNwb25zZSAkSklSQUlzc3VlXG4iLA0KICAgICAgICAp
Ow0KICAgIH0NCg0KICAgIHJldHVybiAxOw0KfQ0KDQoxOw0K
IyAgLS0KIyAgS2VybmVsL1N5c3RlbS9UaWNrZXRKSVJBLnBtIC0gY29yZSBtb2R1bGUKIyAgQ29w
eXJpZ2h0IChDKSAyMDA4LTIwMTUgY2F0V29ya1ggR21iSCBodHRwOi8vd3d3LmNhdHdvcmt4LmRl
CiMgIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFku
IEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNl
IGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwg
c2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoKcGFja2FnZSBL
ZXJuZWw6OlN5c3RlbTo6VGlja2V0SklSQTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVz
ZSBLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOwp1c2UgS2VybmVsOjpTeXN0ZW06OkR5bmFt
aWNGaWVsZFZhbHVlOwp1c2UgS2VybmVsOjpTeXN0ZW06OkpTT047CnVzZSBLZXJuZWw6OlN5c3Rl
bTo6Q2FjaGU7Cgp1c2UgUkVTVDo6Q2xpZW50Owp1c2UgSklSQTo6UkVTVDsKdXNlIFRpbWU6OlBp
ZWNlOwp1c2UgU2NhbGFyOjpVdGlsIHF3KGxvb2tzX2xpa2VfbnVtYmVyKTsKdXNlIExpc3Q6OlV0
aWwgcXcoZmlyc3QpOwoKdXNlIGNvbnN0YW50IFAgPT4gX19QQUNLQUdFX187CgpvdXIgQE9iamVj
dERlcGVuZGVuY2llcyA9IHF3KAogICAgS2VybmVsOjpDb25maWcKICAgIEtlcm5lbDo6U3lzdGVt
OjpMb2cKICAgIEtlcm5lbDo6U3lzdGVtOjpNYWluCiAgICBLZXJuZWw6OlN5c3RlbTo6VGlja2V0
CiAgICBLZXJuZWw6OlN5c3RlbTo6VXNlcgogICAgS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVs
ZAogICAgS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6QmFja2VuZAogICAgS2VybmVsOjpT
eXN0ZW06OkR5bmFtaWNGaWVsZFZhbHVlCiAgICBLZXJuZWw6OlN5c3RlbTo6SlNPTgogICAgS2Vy
bmVsOjpTeXN0ZW06OkNhY2hlCik7CgoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0g
KSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYg
PSB7fTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICBteSAkQ29uZmlnT2JqZWN0ICAg
ICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKICAgIG15ICREeW5hbWlj
RmllbGRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0Zp
ZWxkJyk7CgogICAgJFNlbGYtPntEZWJ1Z30gICAgICA9ICRDb25maWdPYmplY3QtPkdldCgnSklS
QTo6RGVidWcnKTsKICAgICRTZWxmLT57Q29uZmlnfSAgICAgPSAkQ29uZmlnT2JqZWN0LT5HZXQo
J1RpY2tldEpJUkEnKSB8fCB7fTsKICAgICRTZWxmLT57SklSQUNsaWVudH0gPSBKSVJBOjpSRVNU
LT5uZXcoCiAgICAgICAgJFNlbGYtPntDb25maWd9LT57VVJMfSwKICAgICAgICAkU2VsZi0+e0Nv
bmZpZ30tPntVc2VyfSwKICAgICAgICAkU2VsZi0+e0NvbmZpZ30tPntQYXNzd29yZH0sCiAgICAp
OwoKICAgIG15ICRWZXJpZnlTU0wgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0pJUkE6OlNTTFZlcmlm
eScpOwogICAgaWYgKCAhJFZlcmlmeVNTTCApIHsKICAgICAgICBteSAkTG9hZGVkID0gJEtlcm5l
bDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok1haW4nKS0+UmVxdWlyZSgKICAgICAgICAgICAg
J05ldDo6U1NMZWF5JywKICAgICAgICAgICAgU2lsZW50ID0+IDEsCiAgICAgICAgKTsKICAgICAg
ICBpZiAoJExvYWRlZCkgewogICAgICAgICAgICAkU2VsZi0+e0pJUkFDbGllbnR9LT57cmVzdH0t
PmdldFVzZXJhZ2VudCgpLT5zc2xfb3B0cyggdmVyaWZ5X2hvc3RuYW1lID0+IDAgKTsKICAgICAg
ICAgICAgJFNlbGYtPntKSVJBQ2xpZW50fS0+e3Jlc3R9LT5nZXRVc2VyYWdlbnQoKS0+c3NsX29w
dHMoIFNTTF92ZXJmaXlfbW9kZSA9PiBOZXQ6OlNTTGVheTo6VkVSSUZZX05PTkUoKSApOwogICAg
ICAgIH0KICAgIH0KCiAgICAkU2VsZi0+e0pJUkFEeW5hbWljRmllbGR9ID0gJER5bmFtaWNGaWVs
ZE9iamVjdC0+RHluYW1pY0ZpZWxkR2V0KCBOYW1lID0+ICdKSVJBSXNzdWVJRCcgKTsKCiAgICAk
U2VsZi0+e0NhY2hlVHlwZX0gPSAnSklSQUFQSSc7CiAgICAkU2VsZi0+e0NhY2hlVFRMfSAgPSAk
Q29uZmlnT2JqZWN0LT5HZXQoJ0pJUkE6OkNhY2hlVFRMJyk7CgogICAgcmV0dXJuICRTZWxmOwp9
Cgo9aXRlbSBJc3N1ZUNsb3NlKCkKCkNsb3NlIGFuIGlzc3VlIGluIEpJUkEKCj1jdXQKCnN1YiBJ
c3N1ZUNsb3NlIHsKICAgIG15ICgkU2VsZiwgJVBhcmFtKSA9IEBfOwoKICAgIG15ICRMb2dPYmpl
Y3QgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpOwogICAgbXkgJE1h
aW5PYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TWFpbicpOwoKICAg
ICMgY2hlY2sgZm9yIG5lZWRlZCBkYXRhCiAgICBmb3IgbXkgJE5lZWRlZCAoIHF3L0lzc3VlSUQv
ICkgewogICAgICAgIGlmICggISRQYXJhbXskTmVlZGVkfSApIHsKICAgICAgICAgICAgJExvZ09i
amVjdC0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAg
ICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICROZWVkZWQhIiwKICAgICAgICAgICAgKTsKCiAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgbXkgJENsb3NlVHJhbnNpdGlvbiA9
ICRTZWxmLT57Q29uZmlnfS0+e1dvcmtmbG93Q2xvc2VBY3Rpb25OYW1lfSAvLyAnRG9uZSc7Cgog
ICAgbXkgJFRyYW5zaXRpb25zOwogICAgbXkgJEVycm9yVHJhbnNpdGlvbnM7CgogICAgZXZhbHsK
ICAgICAgICAkVHJhbnNpdGlvbnMgPSAkU2VsZi0+e0pJUkFDbGllbnR9LT5HRVQoCiAgICAgICAg
ICAgICcvaXNzdWUvJyAuICRQYXJhbXtJc3N1ZUlEfSAuICcvdHJhbnNpdGlvbnMnLAogICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICBleHBhbmQgPT4gJ3RyYW5zaXRpb24uZmllbGRzJywKICAg
ICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICAxOwogICAgfSBvciAkRXJyb3JUcmFuc2l0
aW9ucyA9ICRAOwoKICAgIGlmICggJEVycm9yVHJhbnNpdGlvbnMgKSB7CiAgICAgICAgJExvZ09i
amVjdC0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBN
ZXNzYWdlICA9PiBzcHJpbnRmIFAgLiAgIjo6SXNzdWVDbG9zZTogY2Fubm90IGdldCB0cmFuc2l0
aW9ucyB0aGUgSklSQSBJc3N1ZSBmb3IgJXM6ICVzIiwKICAgICAgICAgICAgICAgICRQYXJhbXtJ
c3N1ZUlEfSwgJEVycm9yVHJhbnNpdGlvbnMsCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuICt7
IGVycm9yID0+ICRFcnJvclRyYW5zaXRpb25zIH07CiAgICB9CgogICAgbXkgKCRUcmFuc2l0aW9u
KSA9IGdyZXB7ICRfLT57bmFtZX0gZXEgJENsb3NlVHJhbnNpdGlvbiB9QHsgJFRyYW5zaXRpb25z
LT57dHJhbnNpdGlvbnN9IHx8IFtdIH07CgogICAgaWYgKCAhJFRyYW5zaXRpb24gKSB7CiAgICAg
ICAgcmV0dXJuICt7IGVycm9yID0+ICdObyB0cmFuc2l0aW9uIGZvdW5kIGZvciAnIC4gJENsb3Nl
VHJhbnNpdGlvbiB9OwogICAgfQoKICAgIG15ICRFcnJvckNsb3NlOwoKICAgIG15ICVPcHRzID0g
KAogICAgICAgIHRyYW5zaXRpb24gPT4gewogICAgICAgICAgICBpZCA9PiAkVHJhbnNpdGlvbi0+
e2lkfSwKICAgICAgICB9CiAgICApOwoKICAgIGlmICggJFBhcmFte0NvbW1lbnR9ICkgewogICAg
ICAgICRPcHRze3VwZGF0ZX0gPSB7CiAgICAgICAgICAgIGNvbW1lbnQgPT4gWwogICAgICAgICAg
ICAgICAgeyBhZGQgPT4geyBib2R5ID0+ICRQYXJhbXtDb21tZW50fSB9IH0sCiAgICAgICAgICAg
IF0sCiAgICAgICAgfTsKICAgIH0KCiAgICBldmFsewogICAgICAgICRTZWxmLT57SklSQUNsaWVu
dH0tPlBPU1QoCiAgICAgICAgICAgICcvaXNzdWUvJyAuICRQYXJhbXtJc3N1ZUlEfSAuICcvdHJh
bnNpdGlvbnMnLAogICAgICAgICAgICB1bmRlZiwKICAgICAgICAgICAgXCVPcHRzLAogICAgICAg
ICk7CgogICAgICAgIDE7CiAgICB9IG9yICRFcnJvckNsb3NlID0gJEA7CgogICAgaWYgKCAkRXJy
b3JDbG9zZSApIHsKICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5
ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+IHNwcmludGYgUCAuICAiOjpJc3N1
ZUNsb3NlOiBjYW5ub3QgY2xvc2UgaXNzdWUgJXM6ICVzIGZvciAlcyIsCiAgICAgICAgICAgICAg
ICAkUGFyYW17SXNzdWVJRH0sICRFcnJvclRyYW5zaXRpb25zLAogICAgICAgICAgICAgICAgJE1h
aW5PYmplY3QtPkR1bXAoXCVPcHRzKSwKICAgICAgICApOwoKICAgICAgICByZXR1cm4gK3sgZXJy
b3IgPT4gJEVycm9yQ2xvc2UgfTsKICAgIH0KCiAgICByZXR1cm4gK3t9Owp9Cgo9aXRlbSBJc3N1
ZUdldCgpCgpHZXQgYW4gaXNzdWUgZnJvbSBKSVJBCgogICAgbXkgJElzc3VlRGF0YSA9ICRPYmpl
Y3QtPklzc3VlR2V0KAogICAgICAgIElzc3VlID0+ICRJc3N1ZUtleSwKICAgICk7Cgo9Y3V0Cgpz
dWIgSXNzdWVHZXQgewogICAgbXkgKCRTZWxmLCAlUGFyYW0pID0gQF87CgogICAgbXkgJExvZ09i
amVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKTsKCiAgICAjIGNo
ZWNrIGZvciBuZWVkZWQgZGF0YQogICAgZm9yIG15ICROZWVkZWQgKCBxdy9Jc3N1ZS8gKSB7CiAg
ICAgICAgaWYgKCAhJFBhcmFteyROZWVkZWR9ICkgewogICAgICAgICAgICAkTG9nT2JqZWN0LT5M
b2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAg
TWVzc2FnZSAgPT4gIk5lZWQgJE5lZWRlZCEiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICBteSAkSXNzdWU7CiAgICBteSAkRXJyb3JHZXQ7
CgogICAgZXZhbHsKICAgICAgICAkSXNzdWUgPSAkU2VsZi0+e0pJUkFDbGllbnR9LT5HRVQoICcv
aXNzdWUvJyAuICRQYXJhbXtJc3N1ZX0gKTsKICAgIH0gb3IgJEVycm9yR2V0ID0gJEA7CgogICAg
aWYgKCAkRXJyb3JHZXQgKSB7CiAgICAgICAgJExvZ09iamVjdC0+TG9nKAogICAgICAgICAgICBQ
cmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiBzcHJpbnRmIFAgLiAg
Ijo6SXNzdWVDbG9zZTogY2Fubm90IGNsb3NlIGlzc3VlICVzOiAlcyIsCiAgICAgICAgICAgICAg
ICAkUGFyYW17SXNzdWVJRH0sICRFcnJvckdldCwKICAgICAgICApOwoKICAgICAgICByZXR1cm4g
K3sgZXJyb3IgPT4gJEVycm9yR2V0IH07CiAgICB9CgogICAgcmV0dXJuICRJc3N1ZTsKfQoKPWl0
ZW0gSXNzdWVDcmVhdGUoKQoKY3JlYXRlcyBhbiBpc3N1ZSBpbiB0aGUgY29uZmlndXJlZCBKSVJB
IHN5c3RlbSB1c2luZyBSRVNUCgogICAgbXkgJElzc3VlID0gJFRpY2tldEpJUkFPYmplY3QtPklz
c3VlQ3JlYXRlKAogICAgICAgIFRpY2tldElEICAgICAgID0+ICRUaWNrZXRJRCwgICAgICAgICAg
ICAgICAgICAjIHRoZSBUaWNrZXRJRCwgbWFuZGF0b3J5CiAgICAgICAgQXJ0aWNsZUlEICAgICAg
PT4gJEFydGljbGVJRCwgICAgICAgICAgICAgICAgICMgb3B0aW9uYWwsIHRvIGRlZmluZSB3aGlj
aCBhcnRpY2xlIGlzIHNlbnQgdG8gSklSQQogICAgICAgIFVzZXJJRCAgICAgICAgID0+ICRVc2Vy
SUQgICAgICAgICAgICAgICAgICAgICAjIHRoZSBVc2VySUQsIG1hbmRhdG9yeQogICAgKTsKCnJl
dHVybnM6CgogICAgJElzc3VlID0gewogICAgICAgIGlkID0+IDEwMDAwLCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAjIGlzc3VlIGlkIGluIEpJUkEsIHN0YXJ0cyBmcm9tIDEwMDAwCiAg
ICAgICAga2V5ID0+IFBST0otMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgaXNzdWUg
a2V5IGFzIHVzZWQgaW4gdGhlIHdlYmludGVyZmFjZSwgPFByb2o+LTxOdW1iZXI+LCBzdGFydHMg
ZnJvbSAxCiAgICAgICAgWy4uLl0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICMgcGxlbnR5IG9mIG90aGVyIGZpZWxkcyBhcyBkZWZpbmVkIGluIHRoZSBBUEkKICAgIH0KCj1j
dXQKCnN1YiBJc3N1ZUNyZWF0ZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAg
IG15ICRMb2dPYmplY3QgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Okxv
ZycpOwogICAgbXkgJE1haW5PYmplY3QgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5
c3RlbTo6TWFpbicpOwogICAgbXkgJENvbmZpZ09iamVjdCAgPSAkS2VybmVsOjpPTS0+R2V0KCdL
ZXJuZWw6OkNvbmZpZycpOwogICAgbXkgJFRpY2tldE9iamVjdCAgPSAkS2VybmVsOjpPTS0+R2V0
KCdLZXJuZWw6OlN5c3RlbTo6VGlja2V0Jyk7CiAgICBteSAkREZWYWx1ZU9iamVjdCA9ICRLZXJu
ZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGRWYWx1ZScpOwogICAgbXkg
JEJhY2tlbmRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1p
Y0ZpZWxkOjpCYWNrZW5kJyk7CgoKICAgICMgY2hlY2sgZm9yIG5lZWRlZCBkYXRhCiAgICBmb3Ig
bXkgJE5lZWRlZCAoIHF3L1RpY2tldElEIFVzZXJJRC8gKSB7CiAgICAgICAgaWYgKCAhJFBhcmFt
eyROZWVkZWR9ICkgewogICAgICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgICAg
ICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQg
JE5lZWRlZCEiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0K
ICAgIH0KCiAgICBteSAlQXJ0aWNsZTsKCiAgICBpZiAoICRQYXJhbXtBcnRpY2xlSUR9ICkgewog
ICAgICAgICVBcnRpY2xlID0gJFRpY2tldE9iamVjdC0+QXJ0aWNsZUdldCgKICAgICAgICAgICAg
VGlja2V0SUQgICAgICA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICBBcnRpY2xlSUQg
ICAgID0+ICRQYXJhbXtBcnRpY2xlSUR9LAogICAgICAgICAgICBEeW5hbWljRmllbGRzID0+IDEs
CiAgICAgICAgKTsKICAgIH0KICAgIGVsc2UgewogICAgICAgICVBcnRpY2xlID0gJFRpY2tldE9i
amVjdC0+QXJ0aWNsZUZpcnN0QXJ0aWNsZSgKICAgICAgICAgICAgVGlja2V0SUQgICAgICA9PiAk
UGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICBEeW5hbWljRmllbGRzID0+IDEsCiAgICAgICAg
KTsKICAgIH0KCiAgICBpZiAoICRTZWxmLT57RGVidWd9ICkgewogICAgICAgICRMb2dPYmplY3Qt
PkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2luZm8nLAogICAgICAgICAgICBNZXNzYWdl
ICA9PiBzcHJpbnRmIFAgLiAiOjpJc3N1ZUNyZWF0ZTogVGlja2V0SUQ6ICVzID09ICVzIFRpdGxl
OiAlcyBUZXh0OiAlcyIsCiAgICAgICAgICAgICAgICAkUGFyYW17VGlja2V0SUR9LCAkQXJ0aWNs
ZXtUaWNrZXRJRH0sICRBcnRpY2xle1RpdGxlfSwgJEFydGljbGV7Qm9keX0sCiAgICAgICAgKTsK
ICAgIH0KCiAgICBteSAkVmFsaWRMaWNlbnNlID0gJFNlbGYtPkNoZWNrVmFsaWRMaWNlbnNlKCk7
CiAgICBpZiAoICRWYWxpZExpY2Vuc2UgIT0gMSApIHsKICAgICAgICBteSAkVVJMID0gJFNlbGYt
PntDb25maWd9LT57VVJMfTsKICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgIFBy
aW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+IFAgLiAiOjpJc3N1ZUNy
ZWF0ZTogaW52YWxpZCBsaWNlbnNlIGF0ICRVUkwsIHN0YXR1cyAkVmFsaWRMaWNlbnNlIiwKICAg
ICAgICApOwoKICAgICAgICByZXR1cm4gK3sgZXJyb3IgPT4gJ05vIHZhbGlkIGxpY2Vuc2UnIH07
ICMgc2tpcCB0aGUgcmVzdAogICAgfQoKICAgIG15ICRSZXBvcnRlciA9ICRTZWxmLT57Q29uZmln
fS0+e1JlcG9ydGVyfTsKICAgIG15ICRBc3NpZ25lZSA9ICRQYXJhbXtBc3NpZ25lZX0gfHwgJFNl
bGYtPntDb25maWd9LT57QXNzaWduZWV9OwoKICAgICMgcmVhZCAnUHJvamVjdCcgZmVsZCBmcm9t
ICAiU3lzQ29uZmlnIiBpbiBPVFJTCiAgICBteSAkUHJvamVjdCA9ICRQYXJhbXtQcm9qZWN0fSB8
fCAkU2VsZi0+e0NvbmZpZ30tPntQcm9qZWN0fTsKCiAgICAjIHJlYWQgJ0lzc3VlVHlwZScgZmVs
ZCBmcm9tICAiU3lzQ29uZmlnIiBpbiBPVFJTCiAgICBteSAkSXNzdWVUeXBlICAgPSAkUGFyYW17
SXNzdWVUeXBlfSB8fCAkU2VsZi0+e0NvbmZpZ30tPntJc3N1ZVR5cGV9OwogICAgbXkgJEZpZWxk
TmFtZSAgID0gJ0pJUkFJc3N1ZUlEJzsKICAgIG15ICRKSVJBSXNzdWVJRCA9ICRBcnRpY2xleyJE
eW5hbWljRmllbGRfIiAuICRGaWVsZE5hbWV9OwoKICAgIGlmICggJFNlbGYtPntEZWJ1Z30gKSB7
CiAgICAgICAgJExvZ09iamVjdC0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnaW5mbycs
CiAgICAgICAgICAgIE1lc3NhZ2UgID0+IHNwcmludGYgUCAuICI6Oklzc3VlQ3JlYXRlOiBKSVJB
SXNzdWVJRChwcmUpOiAnJXMnIER5bmFtaWNGaWVsZElEOiAlcyAiLAogICAgICAgICAgICAgICAg
KCAkSklSQUlzc3VlSUQgfHwgJycgKSwgJEZpZWxkTmFtZSwKICAgICAgICApOwogICAgfQoKICAg
IG15ICRJc3N1ZSA9IHt9OwoKICAgIGlmICgkSklSQUlzc3VlSUQpIHsKCiAgICAgICAgJElzc3Vl
ID0gJFNlbGYtPklzc3VlR2V0KAogICAgICAgICAgICBJc3N1ZSA9PiAkSklSQUlzc3VlSUQsCiAg
ICAgICAgKTsKCiAgICAgICAgaWYgKCAhJElzc3VlICYmICRTZWxmLT57RGVidWd9ICkgewogICAg
ICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJy
b3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIHNwcmludGYgUCAuICI6Oklzc3VlQ3Jl
YXRlOiBjYW5ub3QgZmV0Y2ggdGhlIEpJUkEgSXNzdWUgJXMgZm9yICVzIiwKICAgICAgICAgICAg
ICAgICAgICAkSklSQUlzc3VlSUQsICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgICk7Cgog
ICAgICAgICAgICByZXR1cm4gK3sgZXJyb3IgPT4gJ0Nhbm5vdCBmZXRjaCBJc3N1ZScgfTsKICAg
ICAgICB9CgogICAgfQogICAgZWxzZSB7CiAgICAgICAgbXkgJEN1c3RvbUZpZWxkID0gJ2N1c3Rv
bWZpZWxkXycgLiAoICRDb25maWdPYmplY3QtPkdldCgnSklSQTo6T1RSU1RpY2tldElERmllbGQn
KSB8fCAxMDAwMCApOwogICAgICAgIG15ICRKSVJBQ3JlYXRlUGFyYW1zID0gewogICAgICAgICAg
ICBwcm9qZWN0ICAgICAgID0+IHsga2V5ID0+ICRQcm9qZWN0IH0sCiAgICAgICAgICAgIGlzc3Vl
dHlwZSAgICAgPT4geyBuYW1lID0+ICRJc3N1ZVR5cGUgfSwKICAgICAgICAgICAgc3VtbWFyeSAg
ICAgICA9PiAkQXJ0aWNsZXtUaXRsZX0sCiAgICAgICAgICAgIGRlc2NyaXB0aW9uICAgPT4gJEFy
dGljbGV7Qm9keX0sCiAgICAgICAgICAgIHJlcG9ydGVyICAgICAgPT4geyBuYW1lID0+ICRSZXBv
cnRlciB9LAogICAgICAgICAgICBhc3NpZ25lZSAgICAgID0+IHsgbmFtZSA9PiAkQXNzaWduZWUg
fSwKICAgICAgICAgICAgJEN1c3RvbUZpZWxkICA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAg
IH07CgogICAgICAgIGlmICggJENvbmZpZ09iamVjdC0+R2V0KCdKSVJBOjpOb0Fzc2lnbmVlJykg
KSB7CiAgICAgICAgICAgIGRlbGV0ZSAkSklSQUNyZWF0ZVBhcmFtcy0+e2Fzc2lnbmVlfTsKICAg
ICAgICB9CgogICAgICAgICRKSVJBQ3JlYXRlUGFyYW1zID0gJFNlbGYtPk1hcEZpZWxkcyggJEpJ
UkFDcmVhdGVQYXJhbXMsICVBcnRpY2xlKTsKCiAgICAgICAgaWYgKCAkU2VsZi0+e0RlYnVnfSAp
IHsKICAgICAgICAgICAgJExvZ09iamVjdC0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkg
PT4gJ25vdGljZScsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiBzcHJpbnRmIFAgLiAgIjo6
SXNzdWVDcmVhdGU6IFBhcmFtZXRlcnM6ICVzIiwKICAgICAgICAgICAgICAgICAgICAkTWFpbk9i
amVjdC0+RHVtcCgkSklSQUNyZWF0ZVBhcmFtcyksCiAgICAgICAgICAgICk7CiAgICAgICAgfQoK
ICAgICAgICBteSAkRXJyb3JDcmVhdGU7CiAgICAgICAgZXZhbCB7CiAgICAgICAgICAgICRJc3N1
ZSA9ICRTZWxmLT57SklSQUNsaWVudH0tPlBPU1QoCiAgICAgICAgICAgICAgICAnL2lzc3VlJywK
ICAgICAgICAgICAgICAgIHVuZGVmLAogICAgICAgICAgICAgICAgK3sgZmllbGRzID0+ICRKSVJB
Q3JlYXRlUGFyYW1zIH0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAxOwogICAgICAgIH0g
b3IgJEVycm9yQ3JlYXRlID0gJEA7CiAKICAgICAgICBpZiAoICRFcnJvckNyZWF0ZSApIHsKICAg
ICAgICAgICAgJExvZ09iamVjdC0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vy
cm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+IHNwcmludGYgUCAuICAiOjpJc3N1ZUNy
ZWF0ZTogY2Fubm90IGNyZWF0ZSB0aGUgSklSQSBJc3N1ZSBmb3IgJXM6ICVzIiwKICAgICAgICAg
ICAgICAgICAgICAkUGFyYW17VGlja2V0SUR9LCAkRXJyb3JDcmVhdGUsCiAgICAgICAgICAgICk7
CgogICAgICAgICAgICByZXR1cm4gK3sgZXJyb3IgPT4gJEVycm9yQ3JlYXRlIH07CiAgICAgICAg
fQoKICAgICAgICAjIFRoZSBmb2xsb3dpbmcgY29kZSBmcmFnZW1lbnQgdHJhbnNwb3J0cyBhdHRh
Y2htZW50cyBhbG9uZyB3aXRoIHRoZSBpc3N1ZQogICAgICAgICMgZ2V0IHRoZSBsaXN0IG9mIHRo
ZSBhdHRhY2htZW50cwogICAgICAgIG15ICVJbmRleCA9ICRUaWNrZXRPYmplY3QtPkFydGljbGVB
dHRhY2htZW50SW5kZXgoCiAgICAgICAgICAgIEFydGljbGVJRCA9PiAkQXJ0aWNsZXtBcnRpY2xl
SUR9LAogICAgICAgICAgICBVc2VySUQgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsK
CiAgICAgICAgIyBnZXQgdXNlcmFnZW50IHVzZWQgYnkgdGhlIEppcmEgb2JqZWN0IHRvIGRvIHRo
ZSBmaWxldXBsb2FkcwogICAgICAgIG15ICRSZXN0ID0gJFNlbGYtPntKSVJBQ2xpZW50fS0+e3Jl
c3R9OwogICAgICAgIG15ICRVQSAgID0gJFJlc3QtPmdldFVzZXJhZ2VudCgpOwoKICAgICAgICAj
IGdldCBJRCBvZiBlYWNoIGF0dGFjaG1lbnQgZmlsZSwgdGhlbiB0aGUgY29ycmVzcG9uZGluZyBh
dHRhY2htZW50IGZpbGUKICAgICAgICB3aGlsZSAoIG15ICggJEZpbGVJRCwgJEF0dGFjaEggKSA9
IGVhY2ggJUluZGV4ICkgewogICAgICAgICAgICAjIHJldHJpZXZlIHRoZSBuYW1lIGFuZCBjb250
ZW50IG9mIGVhY2ggYXR0YWNobWVudCBmaWxlLAogICAgICAgICAgICAjIHN0b3JlIHRoZW0gaW50
byBAZmlsZW5hbWVzIGFuZCBAYXR0YWNobWVudHMgcmVzcGVjdGl2ZWx5LgogICAgICAgICAgICBt
eSBARmlsZW5hbWVzOwogICAgICAgICAgICBteSBAQXR0YWNobWVudHM7CgogICAgICAgICAgICBt
eSAlQXR0YWNobWVudCA9ICRUaWNrZXRPYmplY3QtPkFydGljbGVBdHRhY2htZW50KAogICAgICAg
ICAgICAgICAgQXJ0aWNsZUlEID0+ICRBcnRpY2xle0FydGljbGVJRH0sCiAgICAgICAgICAgICAg
ICBGaWxlSUQgICAgPT4gJEZpbGVJRCwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICA9PiAkUGFy
YW17VXNlcklEfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIG5leHQgaWYgJEF0dGFjaG1l
bnR7RmlsZW5hbWV9IGVxICdmaWxlLTInOwoKICAgICAgICAgICAgaWYgKCAkU2VsZi0+e0RlYnVn
fSApIHsKICAgICAgICAgICAgICAgICRMb2dPYmplY3QtPkxvZygKICAgICAgICAgICAgICAgICAg
ICBQcmlvcml0eSA9PiAnaW5mbycsCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gc3By
aW50ZiBQIC4gIjo6SXNzdWVDcmVhdGU6IEhhbmRsaW5nIGF0dGFjaG1lbnQ6ICVzIiwgJEF0dGFj
aG1lbnR7RmlsZW5hbWV9CiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CgogICAgICAg
ICAgICBteSAkSXNzdWVLZXkgPSAkSXNzdWUtPntrZXl9OwoKICAgICAgICAgICAgJFVBLT5wb3N0
KAogICAgICAgICAgICAgICAgJFJlc3QtPmdldEhvc3QoKSAuICIvaXNzdWUvJElzc3VlS2V5L2F0
dGFjaG1lbnRzIiwKICAgICAgICAgICAgICAgICV7JFJlc3QtPntfaGVhZGVyc319LAogICAgICAg
ICAgICAgICAgJ1gtQXRsYXNzaWFuLVRva2VuJyA9PiAnbm9jaGVjaycsCiAgICAgICAgICAgICAg
ICAnQ29udGVudC1UeXBlJyAgICAgID0+ICdmb3JtLWRhdGEnLAogICAgICAgICAgICAgICAgQ29u
dGVudCAgICAgICAgICAgICA9PiBbCiAgICAgICAgICAgICAgICAgICAgZmlsZSA9PiBbCiAgICAg
ICAgICAgICAgICAgICAgICAgIHVuZGVmLCAgICAgICAgICAgICAgICAgICAjIGFzIHdlIGhhdmUg
dGhlIGNvbnRlbnQgYWxyZWFkLCB3ZSBkbyBub3QgcGFzcyBhIGZpbGVuYW1lCiAgICAgICAgICAg
ICAgICAgICAgICAgICRBdHRhY2htZW50e0ZpbGVuYW1lfSwgICAjIGZpbGVuYW1lIGZvciB0aGUg
c2VydmVyCiAgICAgICAgICAgICAgICAgICAgICAgICdDb250ZW50LVR5cGUnID0+ICRBdHRhY2ht
ZW50e0NvbnRlbnRUeXBlfSwKICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudCAgICAgICAg
PT4gJEF0dGFjaG1lbnR7Q29udGVudH0sCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAg
ICAgICAgIF0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIGVuZCBvZiB0cmFu
c3BvcnRpbmcgYXR0YWNobWVudHMKICAgICAgICBteSAkU3VjY2VzcyA9ICRCYWNrZW5kT2JqZWN0
LT5WYWx1ZVNldCgKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICRTZWxmLT57SklS
QUR5bmFtaWNGaWVsZH0sCiAgICAgICAgICAgIE9iamVjdElEICAgICAgICAgICA9PiAkQXJ0aWNs
ZXtUaWNrZXRJRH0sCiAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICA9PiAkSXNzdWUtPntr
ZXl9LAogICAgICAgICAgICBVc2VySUQgICAgICAgICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAg
ICAgICAgKTsKCiAgICAgICAgaWYgKCAkU2VsZi0+e0RlYnVnfSApIHsKICAgICAgICAgICAgJExv
Z09iamVjdC0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2luZm8nLAogICAgICAg
ICAgICAgICAgTWVzc2FnZSAgPT4gc3ByaW50ZiBQIC4gIjo6SXNzdWVDcmVhdGU6IEpJUkFJc3N1
ZUlEKHBvc3QpOiAlcyBEeW5hbWljRmllbGRJRDogJXMiLAogICAgICAgICAgICAgICAgICAgICRJ
c3N1ZS0+e2tleX0sICRGaWVsZE5hbWUsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAkTG9n
T2JqZWN0LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnaW5mbycsCiAgICAgICAg
ICAgICAgICBNZXNzYWdlICA9PiBzcHJpbnRmIFAgLiAiOjpJc3N1ZUNyZWF0ZTogU3VjY2Vzczog
JXMiLCAkU3VjY2VzcywKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgIG15ICREYXRh
ICAgPSB7CiAgICAgICAgICAgIG9iamVjdCA9PiB7CiAgICAgICAgICAgICAgICB1cmwgICA9PiBz
cHJpbnRmKAogICAgICAgICAgICAgICAgICAgICIlczovLyVzLyVzL2luZGV4LnBsP0FjdGlvbj1B
Z2VudFRpY2tldFpvb207VGlja2V0SUQ9JXMiLAogICAgICAgICAgICAgICAgICAgICRDb25maWdP
YmplY3QtPkdldCgnSHR0cFR5cGUnKSwKICAgICAgICAgICAgICAgICAgICAkQ29uZmlnT2JqZWN0
LT5HZXQoJ0ZRRE4nKSwKICAgICAgICAgICAgICAgICAgICAkQ29uZmlnT2JqZWN0LT5HZXQoJ1Nj
cmlwdEFsaWFzJyksCiAgICAgICAgICAgICAgICAgICAgJFBhcmFte1RpY2tldElEfSwKICAgICAg
ICAgICAgICAgICksCiAgICAgICAgICAgICAgICB0aXRsZSA9PiBzcHJpbnRmKCAiT1RSUyBUaWNr
ZXQjJXMgKCVzKSIsICRBcnRpY2xle1RpY2tldE51bWJlcn0sICRQYXJhbXtUaWNrZXRJRH0gKSwK
ICAgICAgICAgICAgfSwKICAgICAgICB9OwoKICAgICAgICBteSAkUmVzdWx0OwogICAgICAgIGV2
YWwgewogICAgICAgICAgICAkUmVzdWx0ID0gJFNlbGYtPntKSVJBQ2xpZW50fS0+UE9TVCgKICAg
ICAgICAgICAgICAgICcvaXNzdWUvJyAuICRJc3N1ZS0+e2tleX0gLiAnL3JlbW90ZWxpbmsnLAog
ICAgICAgICAgICAgICAgdW5kZWYsCiAgICAgICAgICAgICAgICAkRGF0YSwKICAgICAgICAgICAg
KTsKICAgICAgICB9OwoKICAgICAgICBpZiAoICRTZWxmLT57RGVidWd9ICkgewogICAgICAgICAg
ICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnaW5mbycsCiAg
ICAgICAgICAgICAgICBNZXNzYWdlICA9PiBzcHJpbnRmIFAgLiAiOjpJc3N1ZUNyZWF0ZTogUmVt
b3RlbGluayAoJXMvJXMpIHJlc3VsdCAlcyIsCiAgICAgICAgICAgICAgICAgICAgJElzc3VlLT57
a2V5fSwgJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgICAgICAgICAkTWFpbk9iamVjdC0+
RHVtcCgkUmVzdWx0KSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJu
ICRJc3N1ZTsKfQoKPWl0ZW0gSXNzdWVVcGRhdGUoKQoKdXBkYXRlcyBhbiBpc3N1ZSBpbiB0aGUg
Y29uZmlndXJlZCBKSVJBIHN5c3RlbSB1c2luZyBSRVNUCgogICAgbXkgJElzc3VlID0gJFRpY2tl
dEpJUkFPYmplY3QtPklzc3VlVXBkYXRlKAogICAgICAgIFRpY2tldElEICAgICAgID0+ICRUaWNr
ZXRJRCwgICAgICAgICAgICAgICAgICAjIHRoZSBUaWNrZXRJRCwgbWFuZGF0b3J5CiAgICAgICAg
VXNlcklEICAgICAgICAgPT4gJFVzZXJJRCAgICAgICAgICAgICAgICAgICAgICMgdGhlIFVzZXJJ
RCwgbWFuZGF0b3J5CiAgICApOwoKcmV0dXJuczoKCiAgICAkSXNzdWUgPSB7CiAgICAgICAgaWQg
PT4gMTAwMDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgaXNzdWUgaWQgaW4gSklS
QSwgc3RhcnRzIGZyb20gMTAwMDAKICAgICAgICBrZXkgPT4gUFJPSi0xLCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIyBpc3N1ZSBrZXkgYXMgdXNlZCBpbiB0aGUgd2ViaW50ZXJmYWNlLCA8
UHJvaj4tPE51bWJlcj4sIHN0YXJ0cyBmcm9tIDEKICAgICAgICBbLi4uXSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIyBwbGVudHkgb2Ygb3RoZXIgZmllbGRzIGFzIGRlZmlu
ZWQgaW4gdGhlIEFQSQogICAgfQo9Y3V0CgpzdWIgSXNzdWVVcGRhdGUgewogICAgbXkgKCAkU2Vs
ZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkTG9nT2JqZWN0ICAgID0gJEtlcm5lbDo6T00tPkdl
dCgnS2VybmVsOjpTeXN0ZW06OkxvZycpOwogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6
Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CiAgICBteSAkVGlja2V0T2JqZWN0ID0gJEtlcm5l
bDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpY2tldCcpOwoKICAgICMgY2hlY2sgZm9yIG5l
ZWRlZCBkYXRhCiAgICBmb3IgbXkgJE5lZWRlZCAoIHF3L1RpY2tldElEIFVzZXJJRC8gKSB7CiAg
ICAgICAgaWYgKCAhJFBhcmFteyROZWVkZWR9ICkgewogICAgICAgICAgICAkTG9nT2JqZWN0LT5M
b2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAg
TWVzc2FnZSAgPT4gIk5lZWQgJE5lZWRlZCEiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICBteSAlVGlja2V0ID0gJFRpY2tldE9iamVjdC0+
VGlja2V0R2V0KAogICAgICAgIFRpY2tldElEICAgICAgPT4gJFBhcmFte1RpY2tldElEfSwKICAg
ICAgICBEeW5hbWljRmllbGRzID0+IDEKICAgICk7CgogICAgbXkgQEluZGV4ID0gJFRpY2tldE9i
amVjdC0+QXJ0aWNsZUluZGV4KAogICAgICAgIFRpY2tldElEICAgPT4gJFBhcmFte1RpY2tldElE
fSwKICAgICAgICBTZW5kZXJUeXBlID0+ICdBTEwnLAogICAgKTsKCiAgICBteSAlQXJ0aWNsZTsK
CiAgICBpZiAoQEluZGV4KSB7CiAgICAgICAgJUFydGljbGUgPSAkVGlja2V0T2JqZWN0LT5BcnRp
Y2xlR2V0KAogICAgICAgICAgICBBcnRpY2xlSUQgICAgID0+ICRJbmRleFstMV0sCiAgICAgICAg
ICAgIER5bmFtaWNGaWVsZHMgPT4gMSwKICAgICAgICApOwogICAgfQoKICAgIGlmICggJFNlbGYt
PntEZWJ1Z30gKSB7CiAgICAgICAgJExvZ09iamVjdC0+TG9nKAogICAgICAgICAgICBQcmlvcml0
eSA9PiAnaW5mbycsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+IHNwcmludGYgUCAuICI6Oklzc3Vl
VXBkYXRlOiBUaWNrZXRJRDogJXMgPT0gJXMgVGl0bGU6ICVzIiwKICAgICAgICAgICAgICAgICRQ
YXJhbXtUaWNrZXRJRH0sICRUaWNrZXR7VGlja2V0SUR9LCAkVGlja2V0e1RpdGxlfSwKICAgICAg
ICApOwogICAgfQoKICAgIG15ICRVUkwgPSAkU2VsZi0+e0NvbmZpZ30tPntVUkx9OwoKICAgIG15
ICRWYWxpZExpY2Vuc2UgPSAkU2VsZi0+Q2hlY2tWYWxpZExpY2Vuc2UoKTsKICAgIGlmICggJFZh
bGlkTGljZW5zZSAhPSAxICkgewogICAgICAgICRMb2dPYmplY3QtPkxvZygKICAgICAgICAgICAg
UHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gc3ByaW50ZiBQIC4g
Ijo6SXNzdWVVcGRhdGU6IGludmFsaWQgbGljZW5zZSBhdCAlcywgc3RhdHVzICVzIiwKICAgICAg
ICAgICAgICAgICRVUkwsICRWYWxpZExpY2Vuc2UsCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJu
IHt9OyAjIHNraXAgdGhlIHJlc3QKICAgIH0KCiAgICBteSAkUmVwb3J0ZXIgPSAkU2VsZi0+e0Nv
bmZpZ30tPntSZXBvcnRlcn07CiAgICBteSAkQXNzaWduZWUgPSAkU2VsZi0+e0NvbmZpZ30tPntB
c3NpZ25lZX07CgogICAgIyByZWFkICdQcm9qZWN0JyBmZWxkIGZyb20gICJTeXNDb25maWciIGlu
IE9UUlMKICAgIG15ICRQcm9qZWN0ID0gJFNlbGYtPntDb25maWd9LT57UHJvamVjdH07CgogICAg
IyByZWFkICdJc3N1ZVR5cGUnIGZlbGQgZnJvbSAgIlN5c0NvbmZpZyIgaW4gT1RSUwogICAgbXkg
JElzc3VlVHlwZSA9ICRTZWxmLT57Q29uZmlnfS0+e0lzc3VlVHlwZX07CiAgICBteSAkRmllbGRO
YW1lID0gJ0pJUkFJc3N1ZUlEJzsKCiAgICBteSAkSklSQUlzc3VlSUQgPSAkVGlja2V0eydEeW5h
bWljRmllbGRfJyAuICRGaWVsZE5hbWV9OwoKICAgIGlmICggJFNlbGYtPntEZWJ1Z30gKSB7CiAg
ICAgICAgJExvZ09iamVjdC0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnaW5mbycsCiAg
ICAgICAgICAgIE1lc3NhZ2UgID0+IHNwcmludGYgUCAuICI6Oklzc3VlVXBkYXRlOiBKSVJBSXNz
dWVJRChwcmUpOiAnJXMnIER5bmFtaWNGaWVsZElEOiAlcyIsCiAgICAgICAgICAgICAgICAkSklS
QUlzc3VlSUQsICRGaWVsZE5hbWUsCiAgICAgICAgKTsKICAgIH0KCiAgICBteSAkSXNzdWUgPSB7
fTsKCiAgICBpZiAoICRKSVJBSXNzdWVJRCApIHsKICAgICAgICBteSAkQ3VzdG9tRmllbGQgPSAn
Y3VzdG9tZmllbGRfJyAuICggJENvbmZpZ09iamVjdC0+R2V0KCdKSVJBOjpPVFJTVGlja2V0SURG
aWVsZCcpIHx8IDEwMDAwICk7CgogICAgICAgIG15ICRKSVJBVXBkYXRlUGFyYW1zID0gewogICAg
ICAgICAgICAkQ3VzdG9tRmllbGQgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICB9OwoKICAg
ICAgICAkSklSQVVwZGF0ZVBhcmFtcyA9ICRTZWxmLT5NYXBGaWVsZHMoICRKSVJBVXBkYXRlUGFy
YW1zLCAlVGlja2V0LCAlQXJ0aWNsZSApOwoKICAgICAgICBteSAkVXBkYXRlRXJyb3I7CgogICAg
ICAgIGV2YWx7CiAgICAgICAgICAgICRJc3N1ZSA9ICRTZWxmLT57SklSQUNsaWVudH0tPlBVVCgK
ICAgICAgICAgICAgICAgICIvaXNzdWUvIiAuICRKSVJBSXNzdWVJRCwKICAgICAgICAgICAgICAg
IHVuZGVmLAogICAgICAgICAgICAgICAgeyBmaWVsZHMgPT4gJEpJUkFVcGRhdGVQYXJhbXMgfSwK
ICAgICAgICAgICAgKQogICAgICAgIH0gb3IgJFVwZGF0ZUVycm9yID0gJEA7CgogICAgICAgIGlm
ICggJFVwZGF0ZUVycm9yICkgewogICAgICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAg
ICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4g
c3ByaW50ZiBQIC4gIjo6SXNzdWVVcGRhdGU6IEVycm9yIG9uIHVwZGF0ZTogJXNcbiIsCiAgICAg
ICAgICAgICAgICAgICAgJFVwZGF0ZUVycm9yLAogICAgICAgICAgICApOwogICAgICAgIH0KICAg
IH0KCiAgICByZXR1cm4gJElzc3VlIHx8ICdTdWNjZXNzJzsKfQoKPWl0ZW0gSXNzdWVMaW5rVG9P
VFJTKCkKCmxpbmsgYW4gZXhpc3RpbmcgaXNzdWUgdG8gYW4gT1RSUyB0aWNrZXQuIFRoaXMgb3Bl
cmF0aW9uIHVwZGF0ZXMgdGhlIGN1c3RvbSBmaWVsZCBob2xkaW5nIHRoZSBvdHJzIHRpY2tldCBp
ZCBvbiB0aGUgSklSQSBzaWRlCmFuZCB0aGUgZHluYW1pYyBmaWVsZCB3aXRoIHRoZSBpc3N1ZSBp
ZCBvbiB0aGUgT1RSUyBzaWRlCgogICAgbXkgJElzc3VlID0gJFRpY2tldEpJUkFPYmplY3QtPklz
c3VlTGlua1RvT1RSUygKICAgICAgICBUaWNrZXRJRCAgICAgICA9PiAkVGlja2V0SUQsICAgICAg
ICAgICAgICAgICAgIyB0aGUgVGlja2V0SUQsIG1hbmRhdG9yeQogICAgICAgIFVzZXJJRCAgICAg
ICAgID0+ICRVc2VySUQgICAgICAgICAgICAgICAgICAgICAjIHRoZSBVc2VySUQsIG1hbmRhdG9y
eQogICAgKTsKCnJldHVybnM6CgogICAgJElzc3VlID0gewogICAgICAgIGlkID0+IDEwMDAwLCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGlzc3VlIGlkIGluIEpJUkEsIHN0YXJ0cyBm
cm9tIDEwMDAwCiAgICAgICAga2V5ID0+IFBST0otMSwgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICMgaXNzdWUga2V5IGFzIHVzZWQgaW4gdGhlIHdlYmludGVyZmFjZSwgPFByb2o+LTxOdW1i
ZXI+LCBzdGFydHMgZnJvbSAxCiAgICAgICAgWy4uLl0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICMgcGxlbnR5IG9mIG90aGVyIGZpZWxkcyBhcyBkZWZpbmVkIGluIHRoZSBB
UEkKICAgIH0KPWN1dAoKc3ViIElzc3VlTGlua1RvT1RSUyB7CiAgICBteSAoICRTZWxmLCAlUGFy
YW0gKSA9IEBfOwoKICAgIG15ICRMb2dPYmplY3QgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2Vy
bmVsOjpTeXN0ZW06OkxvZycpOwogICAgbXkgJE1haW5PYmplY3QgICAgPSAkS2VybmVsOjpPTS0+
R2V0KCdLZXJuZWw6OlN5c3RlbTo6TWFpbicpOwogICAgbXkgJENvbmZpZ09iamVjdCAgPSAkS2Vy
bmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwogICAgbXkgJFRpY2tldE9iamVjdCAgPSAk
S2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGlja2V0Jyk7CiAgICBteSAkQmFja2Vu
ZE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6
OkJhY2tlbmQnKTsKCiAgICAjIGNoZWNrIGZvciBuZWVkZWQgZGF0YQogICAgZm9yIG15ICROZWVk
ZWQgKCBxdy9UaWNrZXRJRCBVc2VySUQgSXNzdWVJRCBQcm9qZWN0LyApIHsKICAgICAgICBpZiAo
ICEkUGFyYW17JE5lZWRlZH0gKSB7CiAgICAgICAgICAgICRMb2dPYmplY3QtPkxvZygKICAgICAg
ICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9
PiAiTmVlZCAkTmVlZGVkISIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgfQogICAgfQoKICAgIG15ICRVUkwgPSAkU2VsZi0+e0NvbmZpZ30tPntVUkx9OwoKICAg
IG15ICRWYWxpZExpY2Vuc2UgPSAkU2VsZi0+Q2hlY2tWYWxpZExpY2Vuc2UoKTsKICAgIGlmICgg
JFZhbGlkTGljZW5zZSAhPSAxICkgewogICAgICAgICRMb2dPYmplY3QtPkxvZygKICAgICAgICAg
ICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gc3ByaW50ZiBQ
IC4gIjo6SXNzdWVMaW5rVG9PVFJTOiBpbnZhbGlkIGxpY2Vuc2UgYXQgJXMsIHN0YXR1cyAlcyIs
CiAgICAgICAgICAgICAgICAkVVJMLCAkVmFsaWRMaWNlbnNlLAogICAgICAgICk7CgogICAgICAg
IHJldHVybiB7fTsgIyBza2lwIHRoZSByZXN0CiAgICB9CgogICAgIyByZWFkICdQcm9qZWN0JyBm
ZWxkIGZyb20gICJTeXNDb25maWciIGluIE9UUlMKICAgIG15ICRQcm9qZWN0ICAgICA9ICRQYXJh
bXtQcm9qZWN0fTsKICAgIG15ICRKSVJBSXNzdWVJRCA9ICRQYXJhbXtJc3N1ZUlEfTsKCiAgICBt
eSAkRmllbGROYW1lID0gJ0pJUkFJc3N1ZUlEJzsKCiAgICBpZiAoICRTZWxmLT57RGVidWd9ICkg
ewogICAgICAgICRMb2dPYmplY3QtPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2luZm8n
LAogICAgICAgICAgICBNZXNzYWdlICA9PiBzcHJpbnRmIFAgLiAiOjpJc3N1ZUxpbmtUb09UUlM6
IFRpY2tldElEOiAnJXMnIER5bmFtaWNGaWVsZElEOiAlcyIsCiAgICAgICAgICAgICAgICAkUGFy
YW17VGlja2V0SUR9LCAkRmllbGROYW1lLAogICAgICAgICk7CiAgICAgfQoKICAgIG15ICRDdXN0
b21GaWVsZCA9ICdjdXN0b21maWVsZF8nIC4gKCAkQ29uZmlnT2JqZWN0LT5HZXQoJ0pJUkE6Ok9U
UlNUaWNrZXRJREZpZWxkJykgfHwgMTAwMDAgKTsKCiAgICBteSAkSklSQVVwZGF0ZVBhcmFtcyA9
IHsKICAgICAgICAkQ3VzdG9tRmllbGQgPT4gJFBhcmFte1RpY2tldElEfSwKICAgIH07CgogICAg
JEpJUkFVcGRhdGVQYXJhbXMgPSAkU2VsZi0+TWFwRmllbGRzKCAkSklSQVVwZGF0ZVBhcmFtcyAp
OwoKICAgIGlmICggJFNlbGYtPntEZWJ1Z30gKSB7CiAgICAgICAgJExvZ09iamVjdC0+TG9nKAog
ICAgICAgICAgICBQcmlvcml0eSA9PiAnaW5mbycsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+IHNw
cmludGYgUCAuICI6Oklzc3VlTGlua1RvT1RSUzogVXBkYXRlUGFyYW1zIC0+ICIKICAgICAgICAg
ICAgICAgIC4gJE1haW5PYmplY3QtPkR1bXAoICRKSVJBVXBkYXRlUGFyYW1zICksCiAgICAgICAg
KTsKICAgIH0KCiAgICBteSAkVXBkYXRlRXJyb3I7CgogICAgbXkgJElzc3VlID0ge307CiAgICBl
dmFsewogICAgICAgICRJc3N1ZSA9ICRTZWxmLT57SklSQUNsaWVudH0tPlBVVCgKICAgICAgICAg
ICAgIi9pc3N1ZS8iIC4gJEpJUkFJc3N1ZUlELAogICAgICAgICAgICB1bmRlZiwKICAgICAgICAg
ICAgeyBmaWVsZHMgPT4gJEpJUkFVcGRhdGVQYXJhbXMgfSwKICAgICAgICApOwogICAgfSBvciAk
VXBkYXRlRXJyb3IgPSAkQDsKCiAgICBpZiAoICRTZWxmLT57RGVidWd9ICkgewogICAgICAgICRM
b2dPYmplY3QtPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2luZm8nLAogICAgICAgICAg
ICBNZXNzYWdlICA9PiBzcHJpbnRmIFAgLiAiOjpJc3N1ZUxpbmtUb09UUlM6IElzc3VlIChmcm9t
IFVwZGF0ZSkgLT4gIgogICAgICAgICAgICAgICAgLiAkTWFpbk9iamVjdC0+RHVtcCggJElzc3Vl
ICksCiAgICAgICAgKTsKICAgIH0KCiAgICBpZiAoICRVcGRhdGVFcnJvciApIHsKICAgICAgICAk
TG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAg
ICAgIE1lc3NhZ2UgID0+IHNwcmludGYgUCAuICI6Oklzc3VlTGlua1RvT1RSUzogRXJyb3Igb24g
dXBkYXRlOiAlc1xuIiwKICAgICAgICAgICAgICAgICRVcGRhdGVFcnJvciwKICAgICAgICApOwoK
ICAgICAgICByZXR1cm4geyBlcnJvciA9PiAkVXBkYXRlRXJyb3IgfTsKICAgIH0KCiAgICBteSAk
SXNzdWVJbmZvID0gJFNlbGYtPklzc3VlR2V0KCBJc3N1ZSA9PiAkSklSQUlzc3VlSUQgKTsKCiAg
ICBteSAkU3VjY2VzcyA9ICRCYWNrZW5kT2JqZWN0LT5WYWx1ZVNldCgKICAgICAgICBEeW5hbWlj
RmllbGRDb25maWcgPT4gJFNlbGYtPntKSVJBRHluYW1pY0ZpZWxkfSwKICAgICAgICBPYmplY3RJ
RCAgICAgICAgICAgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICBWYWx1ZSAgICAgICAgICAg
ICAgPT4gJElzc3VlSW5mby0+e2tleX0sCiAgICAgICAgVXNlcklEICAgICAgICAgICAgID0+ICRQ
YXJhbXtVc2VySUR9LAogICAgKTsKCiAgICByZXR1cm4gJElzc3VlIHx8IHt9Owp9Cgo9aXRlbSBJ
c3N1ZUNvbW1lbnQoKQoKY3JlYXRlcyBhbiBpc3N1ZSBpbiB0aGUgY29uZmlndXJlZCBKSVJBIHN5
c3RlbSB1c2luZyBTT0FQCgogICAgbXkgJElzc3VlID0gJFRpY2tldEpJUkFPYmplY3QtPklzc3Vl
Q29tbWVudCgKICAgICAgICBJc3N1ZUlEID0+ICRUaWNrZXRJRCwgIyB0aGUgSXNzdWVJRCwgbWFu
ZGF0b3J5CiAgICAgICAgQ29tbWVudCA9PiAkQXJ0aWNsZUlEICMgdGhlIGNvbW1lbnQsIG1hbmRh
dG9yeQogICAgKTsKCnJldHVybnM6CgogICAgJElzc3VlID0gewogICAgICAgIGlkID0+IDEwMDAw
LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGlzc3VlIGlkIGluIEpJUkEsIHN0YXJ0
cyBmcm9tIDEwMDAwCiAgICAgICAga2V5ID0+IFBST0otMSwgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICMgaXNzdWUga2V5IGFzIHVzZWQgaW4gdGhlIHdlYmludGVyZmFjZSwgPFByb2o+LTxO
dW1iZXI+LCBzdGFydHMgZnJvbSAxCiAgICAgICAgWy4uLl0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICMgcGxlbnR5IG9mIG90aGVyIGZpZWxkcyBhcyBkZWZpbmVkIGluIHRo
ZSBBUEkKICAgIH0KCj1jdXQKCnN1YiBJc3N1ZUNvbW1lbnQgewogICAgbXkgKCAkU2VsZiwgJVBh
cmFtICkgPSBAXzsgIyMgRklYTUUgaW1wbGVtZW50CgogICAgbXkgJExvZ09iamVjdCA9ICRLZXJu
ZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKTsKCiAgICAjIGNoZWNrIGZvciBuZWVk
ZWQgZGF0YQogICAgZm9yIG15ICROZWVkZWQgKCBxdy9Jc3N1ZUlEIENvbW1lbnQvICkgewogICAg
ICAgIGlmICggISRQYXJhbXskTmVlZGVkfSApIHsKICAgICAgICAgICAgJExvZ09iamVjdC0+TG9n
KAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1l
c3NhZ2UgID0+ICJOZWVkICROZWVkZWQhIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICB9CiAgICB9CgogICAgbXkgJFVSTCA9ICRTZWxmLT57Q29uZmlnfS0+e1VS
TH07CgogICAgbXkgJFZhbGlkTGljZW5zZSA9ICRTZWxmLT5DaGVja1ZhbGlkTGljZW5zZSgpOwog
ICAgaWYgKCAkVmFsaWRMaWNlbnNlICE9IDEgKSB7CiAgICAgICAgJExvZ09iamVjdC0+TG9nKAog
ICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiBz
cHJpbnRmIFAgLiAiOjpJc3N1ZUNvbW1lbnQ6IGludmFsaWQgbGljZW5zZSBhdCAlcywgc3RhdHVz
ICVzIiwKICAgICAgICAgICAgICAgICRVUkwsICRWYWxpZExpY2Vuc2UsCiAgICAgICAgKTsKCiAg
ICAgICAgcmV0dXJuIHt9OyAjIHNraXAgdGhlIHJlc3QKICAgIH0KCiAgICBteSAkSXNzdWUgPSB7
fTsKCiAgICBpZiAoICRQYXJhbXtJc3N1ZUlEfSApIHsKICAgICAgICBteSAkRXJyb3JDb21tZW50
OwogICAgICAgIGV2YWwgewogICAgICAgICAgICAkSXNzdWUgPSAkU2VsZi0+e0pJUkFDbGllbnR9
LT5QT1NUKAogICAgICAgICAgICAgICAgIi9pc3N1ZS8iIC4gJFBhcmFte0lzc3VlSUR9IC4gIi9j
b21tZW50IiwKICAgICAgICAgICAgICAgIHVuZGVmLAogICAgICAgICAgICAgICAgeyBib2R5ID0+
ICRQYXJhbXtDb21tZW50fSB9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgMTsKICAgICAg
ICB9IG9yICRFcnJvckNvbW1lbnQgPSAkQDsKCiAgICAgICAgaWYgKCAkRXJyb3JDb21tZW50ICkg
ewogICAgICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9
PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gc3ByaW50ZiBQIC4gICI6Oklz
c3VlQ29tbWVudDogY2Fubm90IGNyZWF0ZSBjb21tZW50IGZvciBpc3N1ZSAlczogJXMiLAogICAg
ICAgICAgICAgICAgICAgICRQYXJhbXtJc3N1ZUlEfSwgJEVycm9yQ29tbWVudCwKICAgICAgICAg
ICAgKTsKCiAgICAgICAgICAgIHJldHVybiAreyBlcnJvciA9PiAkRXJyb3JDb21tZW50IH07CiAg
ICAgICAgfQoKICAgIH0KCiAgICByZXR1cm4gJElzc3VlOwp9Cgo9aXRlbSBGaWVsZHNHZXQoKQoK
UmV0cmlldmUgZmllbGQgZGVmaW5pdGlvbnMgZnJvbSBKSVJBLiBUaGUgcmVzdWx0IGlzIGNhY2hl
ZCBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucy4KCiAgICBteSAkRmllbGRzID0gJE9iamVjdC0+Rmll
bGRzR2V0KCk7Cgo9Y3V0CgpzdWIgRmllbGRzR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSAp
ID0gQF87CgogICAgbXkgJExvZ09iamVjdCAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpT
eXN0ZW06OkxvZycpOwogICAgbXkgJENhY2hlT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2Vy
bmVsOjpTeXN0ZW06OkNhY2hlJyk7CgogICAgbXkgJENhY2hlS2V5ID0gJ0ZpZWxkc0dldCc7Cgog
ICAgJFBhcmFte1JldHVybn0gfHw9ICcnOwoKICAgIGlmICggJFBhcmFte1JldHVybn0gJiYgbGMg
JFBhcmFte1JldHVybn0gZXEgJ3R5cGVzJyApIHsKICAgICAgICAkQ2FjaGVLZXkgPSAnRmllbGRU
eXBlcyc7CiAgICB9CiAgICBlbHNpZiAoICRQYXJhbXtSZXR1cm59ICYmIGxjICRQYXJhbXtSZXR1
cm59IGVxICdzdGFuZGFyZCcgKSB7CiAgICAgICAgJENhY2hlS2V5ID0gJ1N0YW5kYXJkRmllbGRz
JzsKICAgIH0KCiAgICBteSAkQ2FjaGUgPSAkQ2FjaGVPYmplY3QtPkdldCgKICAgICAgICBUeXBl
ID0+ICRTZWxmLT57Q2FjaGVUeXBlfSwKICAgICAgICBLZXkgID0+ICRDYWNoZUtleSwKICAgICk7
CgogICAgcmV0dXJuICRDYWNoZSBpZiAkQ2FjaGU7CgogICAgbXkgJEZpZWxkczsKICAgIG15ICRG
aWVsZFR5cGVzOwogICAgbXkgJFN0YW5kYXJkRmllbGRzOwoKICAgIG15ICRFcnJvckZpZWxkczsK
ICAgIGV2YWwgewogICAgICAgIG15ICRGaWVsZHNEYXRhID0gJFNlbGYtPntKSVJBQ2xpZW50fS0+
R0VUKAogICAgICAgICAgICAiL2ZpZWxkIgogICAgICAgICk7CgogICAgICAgIG15ICVDdXN0b21G
aWVsZHMgPSBtYXB7CiAgICAgICAgICAgICRfLT57bmFtZX0gPT4gJF8tPntzY2hlbWF9LT57Y3Vz
dG9tSWR9CiAgICAgICAgfSBncmVwIHsKICAgICAgICAgICAgJF8tPntzY2hlbWF9LT57Y3VzdG9t
SWR9CiAgICAgICAgfSBAeyAkRmllbGRzRGF0YSB8fCBbXSB9OwoKICAgICAgICAkRmllbGRzID0g
XCVDdXN0b21GaWVsZHM7CgogICAgICAgIGZvciBteSAkRmllbGQgKCBAeyAkRmllbGRzRGF0YSB8
fCBbXSB9ICkgewogICAgICAgICAgICAkRmllbGRUeXBlcy0+eyAkRmllbGQtPntpZH0gfSA9ICRG
aWVsZC0+e3NjaGVtYX07CgogICAgICAgICAgICBpZiAoICEkRmllbGQtPntjdXN0b219ICkgewog
ICAgICAgICAgICAgICAgcHVzaCBAeyRTdGFuZGFyZEZpZWxkc30sICRGaWVsZC0+e2lkfTsKICAg
ICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgMTsKICAgIH0gb3IgJEVycm9yRmllbGRzID0g
JEA7CgogICAgaWYgKCAhJEVycm9yRmllbGRzICkgewogICAgICAgICRDYWNoZU9iamVjdC0+U2V0
KAogICAgICAgICAgICBUeXBlICA9PiAkU2VsZi0+e0NhY2hlVHlwZX0sCiAgICAgICAgICAgIEtl
eSAgID0+ICdGaWVsZHNHZXQnLAogICAgICAgICAgICBWYWx1ZSA9PiAkRmllbGRzLAogICAgICAg
ICAgICBUVEwgICA9PiAkU2VsZi0+e0NhY2hlVFRMfSB8fCAxLAogICAgICAgICk7CgogICAgICAg
ICRDYWNoZU9iamVjdC0+U2V0KAogICAgICAgICAgICBUeXBlICA9PiAkU2VsZi0+e0NhY2hlVHlw
ZX0sCiAgICAgICAgICAgIEtleSAgID0+ICdGaWVsZFR5cGVzJywKICAgICAgICAgICAgVmFsdWUg
PT4gJEZpZWxkVHlwZXMsCiAgICAgICAgICAgIFRUTCAgID0+ICRTZWxmLT57Q2FjaGVUVEx9IHx8
IDEsCiAgICAgICAgKTsKCiAgICAgICAgJENhY2hlT2JqZWN0LT5TZXQoCiAgICAgICAgICAgIFR5
cGUgID0+ICRTZWxmLT57Q2FjaGVUeXBlfSwKICAgICAgICAgICAgS2V5ICAgPT4gJ1N0YW5kYXJk
RmllbGRzJywKICAgICAgICAgICAgVmFsdWUgPT4gJFN0YW5kYXJkRmllbGRzLAogICAgICAgICAg
ICBUVEwgICA9PiAkU2VsZi0+e0NhY2hlVFRMfSB8fCAxLAogICAgICAgICk7CiAgICB9CiAgICBl
bHNlIHsKICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdl
cnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+IHNwcmludGYgUCAuICAiOjpGaWVsZHNHZXQ6
IGNhbm5vdCByZXRyaWV2ZSBmaWVsZHMgZGVmaW5pdGlvbnM6ICVzIiwKICAgICAgICAgICAgICAg
ICRFcnJvckZpZWxkcywKICAgICAgICApOwoKICAgICAgICByZXR1cm47CiAgICB9CgogICAgaWYg
KCBsYyAkUGFyYW17UmV0dXJufSBlcSAndHlwZXMnICkgewogICAgICAgIHJldHVybiAkRmllbGRU
eXBlczsKICAgIH0KCiAgICByZXR1cm4gJEZpZWxkczsKfQoKPWl0ZW0gTWFwRmllbGRzCgpNYXBz
IHRoZSBPVFJTIHRvIHRoZSBKSVJBIGN1c3RvbSBmaWVsZHMgYXMgZGVmaW5lZCBpbiB0aGUgY29u
ZmlndXJhdGlvbi4KUmV0dXJucyBhIGhhc2ggbWFwLgoKICBteSAkRmllbGRzID0gJE9iamVjdC0+
TWFwRmllbGRzKCRGaWVsZHMsICVUaWNrZXQsICVBcnRpY2xlKQoKcmV0dXJuOgoKICAkRmllbGRz
ID0gewogICAgc3RhbmRhcmRGaWVsZDEgPT4gdmFsdWUxLAogICAgc3RhbmRhcmRGaWVsZDIgPT4g
dmFsdWUyLAogICAgWy4uLl0KICAgIGN1c3RvbWZpZWxkcyA9PiB7CiAgICAgICAgY2YxID0+IHZh
bHVlMywKICAgICAgICBjZjIgPT4gdmFsdWU0LAogICAgICAgIFsuLi5dCiAgICB9CiAgfQoKPWN1
dAoKc3ViIE1hcEZpZWxkcyB7CiAgICBteSAoICRTZWxmLCAkRmllbGRzLCAlQXJ0aWNsZSApID0g
QF87CgogICAgbXkgJExvZ09iamVjdCAgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5l
bDo6U3lzdGVtOjpMb2cnKTsKICAgIG15ICRDYWNoZU9iamVjdCAgICAgICAgPSAkS2VybmVsOjpP
TS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKTsKICAgIG15ICRNYWluT2JqZWN0ICAgICAg
ICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TWFpbicpOwogICAgbXkgJER5
bmFtaWNGaWVsZE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5h
bWljRmllbGQnKTsKICAgIG15ICRERlZhbHVlT2JqZWN0ICAgICAgPSAkS2VybmVsOjpPTS0+R2V0
KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkVmFsdWUnKTsKCiAgICAjIHJldHJpZXZlcyBk
eW5hbWljLWN1c3RvbSBmaWVsZCBtYXBwaW5nCiAgICBteSAkQ3VzdG9tRmllbGRzICAgPSB7fTsK
ICAgIG15ICRNYXBwaW5nICAgICAgICA9ICRTZWxmLT57Q29uZmlnfS0+eydPVFJTLUpJUkEtRmll
bGRNYXBwaW5nJ307CiAgICBteSAkRGF0ZUZvcm1hdCAgICAgPSAkU2VsZi0+e0NvbmZpZ30tPnsn
SklSQS1EYXRlRm9ybWF0J307CiAgICBteSAkRGF0ZVRpbWVGb3JtYXQgPSAkU2VsZi0+e0NvbmZp
Z30tPnsnSklSQS1EYXRlVGltZUZvcm1hdCd9OwoKICAgIG15ICRKSVJBRmllbGRzICAgICA9ICRT
ZWxmLT5GaWVsZHNHZXQoKTsKCiAgICBpZiAoICRTZWxmLT57RGVidWd9ICkgewogICAgICAgICRM
b2dPYmplY3QtPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2RlYnVnJywKICAgICAgICAg
ICAgTWVzc2FnZSAgPT4gc3ByaW50ZiBQIC4gIjo6TWFwRmllbGRzOiBBcnRpY2xlOiAlcyIsCiAg
ICAgICAgICAgICAgICAkTWFpbk9iamVjdC0+RHVtcCggXCVBcnRpY2xlICksCiAgICAgICAgKTsK
CiAgICAgICAgJExvZ09iamVjdC0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZGVidWcn
LAogICAgICAgICAgICBNZXNzYWdlICA9PiBzcHJpbnRmIFAgLiAiOjpNYXBGaWVsZHM6IG1hcHBp
bmc6ICVzIiwKICAgICAgICAgICAgICAgICRNYWluT2JqZWN0LT5EdW1wKCAkTWFwcGluZyApLAog
ICAgICAgICk7CiAgICB9CiAgICAKCiAgICBpZiAoIGRlZmluZWQgJE1hcHBpbmcgKSB7CgogICAg
ICAgICMgYWxsIGNoYW5nZXMgcmVxdWlyZWQgT05MWSBmb3IgUGVybCA1LjEwIC4uLgogICAgICAg
IEtFWToKICAgICAgICBmb3IgbXkgJEtleSAoIGtleXMgJXskTWFwcGluZ30gICkgewogICAgICAg
ICAgICBteSAkVmFsdWUgPSAkTWFwcGluZy0+eyRLZXl9OwoKICAgICAgICAgICAgbmV4dCBLRVkg
aWYgIWxlbmd0aCAkS2V5IHx8ICFsZW5ndGggJFZhbHVlOwoKICAgICAgICAgICAgbXkgKCRLUHJl
Zml4LCRWUHJlZml4LCREQlZhbCkgPSAoIiIsIiIsdW5kZWYpOwogICAgICAgICAgICBteSAoJElz
QURhdGUsICRJc0FEYXRlVGltZSkgPSAoMCwwKTsKCiAgICAgICAgICAgICgkS1ByZWZpeCwgJEtl
eSkgICA9IHNwbGl0IC86LywgJEtleSwgMjsKICAgICAgICAgICAgKCRWUHJlZml4LCAkVmFsdWUp
ID0gc3BsaXQgLzovLCAkVmFsdWUsIDI7CgogICAgICAgICAgICBpZiAoICRTZWxmLT57RGVidWd9
ICkgewogICAgICAgICAgICAgICAgJExvZ09iamVjdC0+TG9nKAogICAgICAgICAgICAgICAgICAg
IFByaW9yaXR5ID0+ICdkZWJ1ZycsCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gUCAu
ICI6Ok1hcEZpZWxkczogY2hlY2tpbmc6IGtwcmVmaXgsa2V5LHZwcmVmaXgsdmFsIDogIgogICAg
ICAgICAgICAgICAgICAgICAgICAuICIkS1ByZWZpeCwkS2V5LCRWUHJlZml4LCRWYWx1ZVxuIiwK
ICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmICggJEtQcmVm
aXggZXEgJ3N0ZCcgKSB7CiAgICAgICAgICAgICAgICAkREJWYWwgPSAkQXJ0aWNsZXskS2V5fTsK
CiAgICAgICAgICAgICAgICBpZiAoICRTZWxmLT57RGVidWd9ICkgewogICAgICAgICAgICAgICAg
ICAgICRMb2dPYmplY3QtPkxvZygKICAgICAgICAgICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4g
J2RlYnVnJywKICAgICAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gUCAuICI6Ok1hcEZp
ZWxkczogc3RkIGZpZWxkIHdpdGggJERCVmFsXG4iLAogICAgICAgICAgICAgICAgICAgICk7CiAg
ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKCAkS2V5IGVxICdDcmVhdGVkJyB8
fCAkS2V5IGVxICdDaGFuZ2VkJyApIHsKICAgICAgICAgICAgICAgICAgICAkSXNBRGF0ZVRpbWUg
PSAxOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzaWYgKCAkS2V5ID1+IG17
RGF0ZVx6fXhtcyApIHsKICAgICAgICAgICAgICAgICAgICAkSXNBRGF0ZSA9IDE7CiAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzaWYgKCAkS1ByZWZpeCBlcSAn
ZHluJyApIHsKICAgICAgICAgICAgICAgIG15ICREeW5GaWVsZCAgPSAkRHluYW1pY0ZpZWxkT2Jq
ZWN0LT5EeW5hbWljRmllbGRHZXQoIE5hbWUgPT4gJEtleSApOwogICAgICAgICAgICAgICAgbXkg
JEZpZWxkVHlwZSA9ICREeW5GaWVsZC0+e0ZpZWxkVHlwZX07CgogICAgICAgICAgICAgICAgJERC
VmFsID0gJEFydGljbGV7IkR5bmFtaWNGaWVsZF8kS2V5In07CgogICAgICAgICAgICAgICAgaWYg
KCAhJERCVmFsICYmICREeW5GaWVsZCApIHsKICAgICAgICAgICAgICAgICAgICAkREJWYWwgPSAk
REZWYWx1ZU9iamVjdC0+VmFsdWVHZXQoCiAgICAgICAgICAgICAgICAgICAgICAgIEZpZWxkSUQg
ID0+ICREeW5GaWVsZC0+e0lEfSwKICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0SUQgPT4g
JEFydGljbGV7VGlja2V0SUR9LAogICAgICAgICAgICAgICAgICAgICkgfHwgdW5kZWY7CiAgICAg
ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKCAkU2VsZi0+e0RlYnVnfSApIHsKICAg
ICAgICAgICAgICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgICAgICAgICAgICAg
IFByaW9yaXR5ID0+ICdkZWJ1ZycsCiAgICAgICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+
IFAgLiAiOjpNYXBGaWVsZHM6IGR5biBmaWVsZCBBcnJheTogIgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLiAkTWFpbk9iamVjdC0+RHVtcCgkREJWYWwgLy8gJycpIC4gIlxuIiwKICAgICAg
ICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIG15ICRJ
c011bHRpc2VsZWN0OwoKICAgICAgICAgICAgICAgICMgb25seSBoYW5kbGUgRGF0ZSwgRGF0ZVRp
bWUgYW5kIENoZWNrYm94LCBmb3IgdGhlIHJlc3Qgd2UgaGF2ZSBub3RoaW5nIHRvIGRvCiAgICAg
ICAgICAgICAgICBpZiAoICRGaWVsZFR5cGUgZXEgJ0RhdGUnICkgewogICAgICAgICAgICAgICAg
ICAgICRJc0FEYXRlID0gMTsKCiAgICAgICAgICAgICAgICAgICAgJERCVmFsID0gcmVmICREQlZh
bCA/ICREQlZhbC0+WzBdLT57VmFsdWVEYXRlVGltZX0gOiAkREJWYWw7CiAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICBlbHNpZiAoICRGaWVsZFR5cGUgZXEgJ0RhdGVUaW1lJyApIHsK
ICAgICAgICAgICAgICAgICAgICAkSXNBRGF0ZVRpbWUgPSAxOwoKICAgICAgICAgICAgICAgICAg
ICAkREJWYWwgPSByZWYgJERCVmFsID8gJERCVmFsLT5bMF0tPntWYWx1ZURhdGVUaW1lfSA6ICRE
QlZhbDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2lmICggJEZpZWxkVHlw
ZSBlcSAnQ2hlY2tib3gnICkgewogICAgICAgICAgICAgICAgICAgIGlmICggJFNlbGYtPntEZWJ1
Z30gKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRMb2dPYmplY3QtPkxvZygKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdpbmZvJywKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIE1lc3NhZ2UgID0+IFAgLiAiOjpNYXBGaWVsZHM6IHNraXBwaW5nOiBDaGVja2Jv
eCAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAiRHluYW1pY2ZpZWxkICRLZXkg
d2l0aCB2YWx1ZSAkREJWYWxcbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAg
ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAkREJWYWwgPSB1bmRlZjsKICAgICAg
ICAgICAgICAgIH0gIyBJZ25vcmUgYnkgZGVmYXVsdCBzaW5jZSBKSVJBIGRvZXMgbm90IGhhdmUg
YSBjaGVja2JveCBjdXN0b20gZmllbGQKICAgICAgICAgICAgICAgIGVsc2lmICggJEZpZWxkVHlw
ZSBlcSAnTXVsdGlzZWxlY3QnICkgewogICAgICAgICAgICAgICAgICAgICREQlZhbCA9IHJlZiAk
REJWYWwgPwogICAgICAgICAgICAgICAgICAgICAgICBbIG1hcHsgK3sgdmFsdWUgPT4gJF8gfSB9
QHskREJWYWx9IF0gOgogICAgICAgICAgICAgICAgICAgICAgICBbXTsKCiAgICAgICAgICAgICAg
ICAgICAgJElzTXVsdGlzZWxlY3QgPSAxOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgZWxzaWYgKCAkRmllbGRUeXBlIGVxICdEcm9wZG93bicgKSB7CiAgICAgICAgICAgICAgICAg
ICAgJERCVmFsID0gcmVmICREQlZhbCA/CiAgICAgICAgICAgICAgICAgICAgICAgICt7IHZhbHVl
ID0+ICREQlZhbC0+WzBdLT57VmFsdWVUZXh0fSB9IDoKICAgICAgICAgICAgICAgICAgICAgICAg
K3sgdmFsdWUgPT4gJERCVmFsIH07CgogICAgICAgICAgICAgICAgICAgICRJc011bHRpc2VsZWN0
ID0gMTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAkREJWYWwgPSAocmVmICRE
QlZhbCAmJiAhJElzTXVsdGlzZWxlY3QpID8KICAgICAgICAgICAgICAgICAgICAoICREQlZhbC0+
WzBdLT57VmFsdWVUZXh0fSB8fCAkREJWYWwtPlswXS0+e1ZhbHVlSW50fSApIDoKICAgICAgICAg
ICAgICAgICAgICAkREJWYWw7CgogICAgICAgICAgICAgICAgaWYgKCAkU2VsZi0+e0RlYnVnfSAp
IHsKICAgICAgICAgICAgICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgICAgICAg
ICAgICAgIFByaW9yaXR5ID0+ICdkZWJ1ZycsCiAgICAgICAgICAgICAgICAgICAgICAgIE1lc3Nh
Z2UgID0+IFAgLiAiOjpNYXBGaWVsZHM6IGR5biBmaWVsZCB3aXRoICREQlZhbCBhbmQgdHlwZSAk
RmllbGRUeXBlXG4iLAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCAkS1ByZWZpeCBlcSAnY2FsbCcgKSB7CgogICAg
ICAgICAgICAgICAgIyBjYWxscyBtdXN0IGJlIHNwZWNpZmllZCBhcyB0aGlzOiBlLmcuICJNSU1F
OjpCYXNlNjQsZW5jb2RlX2Jhc2U2NCIKICAgICAgICAgICAgICAgIG15ICgkTW9kdWxlLCAkRnVu
Y3Rpb24pID0gc3BsaXQgLywvLCAkS2V5OwoKICAgICAgICAgICAgICAgIGlmICggJE1haW5PYmpl
Y3QtPlJlcXVpcmUoICRNb2R1bGUgKSApIHsKICAgICAgICAgICAgICAgICAgICBteSAkQ29kZSA9
ICRNb2R1bGUtPmNhbiggJEZ1bmN0aW9uICk7CiAgICAgICAgICAgICAgICAgICAgJERCVmFsICAg
PSAkQ29kZS0+KCAkU2VsZiwgJE1hcHBpbmcsICVBcnRpY2xlICk7CiAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAkTG9nT2JqZWN0LT5M
b2coCiAgICAgICAgICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdkZWJ1ZycsCiAgICAgICAg
ICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+IFAgLiAnOjpNYXBGaWVsZHM6IENvdWxkIG5vdCBs
b2FkICcgLiAkTW9kdWxlLAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9
CgogICAgICAgICAgICAgICAgaWYgKCAkU2VsZi0+e0RlYnVnfSApIHsKICAgICAgICAgICAgICAg
ICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+
ICdkZWJ1ZycsCiAgICAgICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+IFAgLiAiOjpNYXBG
aWVsZHM6IGNhbGwgdG8gJyRGdW5jdGlvbicgcmVzdWx0aW5nIGluICREQlZhbFxuIiwKICAgICAg
ICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAg
ICAgICBpZiAoICREQlZhbCApIHsKICAgICAgICAgICAgICAgIGlmICggJElzQURhdGUgPT0gMSAp
IHsKICAgICAgICAgICAgICAgICAgICAkREJWYWwgPSAkU2VsZi0+RGF0ZUZvcm1hdFRyYW5zZm9y
bSggJERhdGVGb3JtYXQsICREQlZhbCApOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg
ICAgIGlmICggJElzQURhdGVUaW1lID09IDEgKSB7CiAgICAgICAgICAgICAgICAgICAgJERCVmFs
ID0gJFNlbGYtPkRhdGVGb3JtYXRUcmFuc2Zvcm0oICREYXRlVGltZUZvcm1hdCwgJERCVmFsICk7
CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKCAkU2VsZi0+e0RlYnVnfSAp
IHsKICAgICAgICAgICAgICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgICAgICAg
ICAgICAgIFByaW9yaXR5ID0+ICdkZWJ1ZycsCiAgICAgICAgICAgICAgICAgICAgICAgIE1lc3Nh
Z2UgID0+IFAgLiAiOjpNYXBGaWVsZHM6IGdvdCBtYXBwZWQgdmFsdWU6IGtwcmVmaXgsa2V5LHZw
cmVmaXgsdmFsLGRidmFsIDogIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAiJEtQcmVm
aXgsJEtleSwkVlByZWZpeCwkVmFsdWUsJERCVmFsXG4iLAogICAgICAgICAgICAgICAgICAgICk7
CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKCAkVlByZWZpeCBlcSAnc3Rk
JyApIHsKICAgICAgICAgICAgICAgICAgICAkRmllbGRzLT57JFZhbHVlfSA9ICREQlZhbDsKCiAg
ICAgICAgICAgICAgICAgICAgaWYgKCAkVmFsdWUgPX4gbXs6fSApIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgbXkgKCRLZXksICRTdWJrZXkpID0gc3BsaXQgLzovLCAkVmFsdWU7CgogICAgICAg
ICAgICAgICAgICAgICAgICBteSAkUmVmVHlwZSA9IHJlZiAkREJWYWw7CiAgICAgICAgICAgICAg
ICAgICAgICAgIGlmICggJFJlZlR5cGUgJiYgJFJlZlR5cGUgZXEgJ0FSUkFZJyApIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICREQlZhbCA9ICREQlZhbC0+WzBdLT57dmFsdWV9OwogICAg
ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2lmICggJFJl
ZlR5cGUgJiYgJFJlZlR5cGUgZXEgJ0hBU0gnICkgewogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJERCVmFsID0gJERCVmFsLT57dmFsdWV9OwogICAgICAgICAgICAgICAgICAgICAgICB9Cgog
ICAgICAgICAgICAgICAgICAgICAgICAkRmllbGRzLT57JEtleX0gPSB7ICRTdWJrZXkgPT4gJERC
VmFsIH07CiAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSAkRmllbGRzLT57JFZhbHVlfTsK
ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBl
bHNpZiAoICRWUHJlZml4IGVxICdjdXN0JyApIHsKICAgICAgICAgICAgICAgICAgICBpZiAoICRK
SVJBRmllbGRzLT57JFZhbHVlfSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJFZhbHVlID0g
JEpJUkFGaWVsZHMtPnskVmFsdWV9OwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg
ICAgICAgICAgJEZpZWxkcy0+eyJjdXN0b21maWVsZF8iIC4gJFZhbHVlfSA9ICREQlZhbDsKICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2lmICggJFZQcmVmaXggZXEgJ2NhbGwn
ICkgewoKICAgICAgICAgICAgICAgICAgICAjIGNhbGxzIG11c3QgYmUgc3BlY2lmaWVkIGFzIHRo
aXM6IGUuZy4gIk1JTUU6OkJhc2U2NCxlbmNvZGVfYmFzZTY0IgogICAgICAgICAgICAgICAgICAg
IG15ICgkTW9kdWxlLCAkRnVuY3Rpb24pID0gc3BsaXQgLywvLCAkS2V5OwoKICAgICAgICAgICAg
ICAgICAgICBteSAkUmVzID0gMDsKICAgICAgICAgICAgICAgICAgICBpZiAoICRNYWluT2JqZWN0
LT5SZXF1aXJlKCAkTW9kdWxlICkgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIG15ICRDb2Rl
ID0gJE1vZHVsZS0+Y2FuKCAkRnVuY3Rpb24gKTsKICAgICAgICAgICAgICAgICAgICAgICAgJFJl
cyAgICAgPSAkQ29kZS0+KCAkU2VsZiwgJERCVmFsLCAkRmllbGRzLCAlQXJ0aWNsZSApOwogICAg
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgJExvZ09iamVjdC0+TG9nKAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
UHJpb3JpdHkgPT4gJ2RlYnVnJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1lc3NhZ2Ug
ID0+IFAgLiAnOjpNYXBGaWVsZHM6IENvdWxkIG5vdCBsb2FkICcgLiAkTW9kdWxlLAogICAgICAg
ICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIH0gCgogICAgICAgICAgICAg
ICAgICAgIGlmICggJFNlbGYtPntEZWJ1Z30gKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRM
b2dPYmplY3QtPkxvZygKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdk
ZWJ1ZycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiBQIC4gIjo6TWFw
RmllbGRzOiBjYWxsIHRvICckRnVuY3Rpb24nIHJlc3VsdGluZyBpbiAkUmVzXG4iLAogICAgICAg
ICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNpZiAoICRTZWxmLT57RGVidWd9ICkgewog
ICAgICAgICAgICAgICAgJExvZ09iamVjdC0+TG9nKAogICAgICAgICAgICAgICAgICAgIFByaW9y
aXR5ID0+ICdkZWJ1ZycsCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gUCAuICI6Ok1h
cEZpZWxkczogc2tpcHBpbmc6IGtwcmVmaXgsa2V5LHZwcmVmaXgsdmFsLGRidmFsIDogIgogICAg
ICAgICAgICAgICAgICAgICAgICAuICIkS1ByZWZpeCwkS2V5LCRWUHJlZml4LCRWYWx1ZSwkREJW
YWxcbiIsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoK
ICAgIGlmICggJFNlbGYtPntEZWJ1Z30gKSB7CiAgICAgICAgJExvZ09iamVjdC0+TG9nKAogICAg
ICAgICAgICBQcmlvcml0eSA9PiAnZGVidWcnLAogICAgICAgICAgICBNZXNzYWdlICA9PiBQIC4g
Ijo6TWFwRmllbGRzOiBmaWVsZHM6ICIgLiAkTWFpbk9iamVjdC0+RHVtcCgkRmllbGRzKSAuICJc
biIsCiAgICAgICAgKTsKICAgIH0KCiAgICAkRmllbGRzID0gJFNlbGYtPkNoZWNrRmllbGRUeXBl
cyggJEZpZWxkcyApOwoKICAgIGlmICggJFNlbGYtPntEZWJ1Z30gKSB7CiAgICAgICAgJExvZ09i
amVjdC0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZGVidWcnLAogICAgICAgICAgICBN
ZXNzYWdlICA9PiBQIC4gIjo6TWFwRmllbGRzOiBmaWVsZHMgKGFmdGVyIHR5cGUgY2hlY2spOiAi
IC4gJE1haW5PYmplY3QtPkR1bXAoJEZpZWxkcykgLiAiXG4iLAogICAgICAgICk7CiAgICB9Cgog
ICAgcmV0dXJuICRGaWVsZHM7Cn0KCj1pdGVtIERhdGVGb3JtYXRUcmFuc2Zvcm0KClRoaXMgZnVu
Y3Rpb24gdHJhbnNmb3JtcyB0aGUgZGF0ZSB2YWx1ZSBvZiBhIG90cnMgKGR5bmFtaWMvc3RhbmRh
cmQpIGZpZWxkIHRvIHRoZSBKaXJhIGZvcm1hdC4KCkl0IHJlY2VpdmVzIHRoZSBjdXJyZW50IGZv
cm1hdCBmcm9tIHRoZSBydW5uaW5nIHN5c3RlbS4KCiAgbXkgJFZhbHVlMSA9ICRTZWxmLT5EYXRl
Rm9ybWF0VHJhbnNmb3JtKCclZC8lYi8leSAlSTolTSAlcCcsICAgJzIwMDQtMDgtMTQgMjI6NDU6
MDAnKQoKcmV0dXJucyAKCiAgMTQvQXVnLzA0IDEwOjA1IFBNCgpvciBDPHVuZGVmPiB1cG9uIGZh
aWx1cmUKCj1jdXQKCnN1YiBEYXRlRm9ybWF0VHJhbnNmb3JtIHsKICAgIG15ICgkU2VsZiwgJERh
dGVGb3JtYXQsICREYXRlKSA9IEBfOwoKICAgIGlmICggIWRlZmluZWQoJERhdGUpIHx8ICggJERh
dGUgZXEgIiIgKSApIHsKICAgICAgICByZXR1cm4gdW5kZWY7CiAgICB9CgogICAgaWYgKCBsZW5n
dGggJERhdGUgPCAxMSApIHsKICAgICAgICAkRGF0ZSAuPSAnIDAwOjAwOjAwJzsKICAgIH0KCiAg
ICBteSAkVGltZSA9IFRpbWU6OlBpZWNlLT5zdHJwdGltZSggJERhdGUsICclWS0lbS0lZCAlSDol
TTolUycgKTsKICAgIGlmICggISAkVGltZSApIHsKICAgICAgICByZXR1cm4gdW5kZWY7CiAgICB9
CgogICAgcmV0dXJuICRUaW1lLT5zdHJmdGltZSgnJVktJW0tJWRUJUg6JU06JVMuMDAwKzAwMDAn
KTsKfQoKPWl0ZW0gQ2hlY2tGaWVsZFR5cGVzCgpUaGlzIGZ1bmN0aW9uIGVuc3VyZXMgdGhhdCB0
aGUgZGF0YSB0cmFuc2ZlcmVkIHRvIHRoZSBKSVJBIHN5c3RlbSBoYXZlIHRoZSBjb3JyZWN0IHR5
cGUuCkUuZy4gZmllbGRzIG9mIHR5cGUgImxhYmVscyIgaGF2ZSB0byBiZSBhbiBhcnJheSBvZiBz
dHJpbmcgZXRjLgoKT24gTWFyY2ggMTB0aCwgMjAxNSB3ZSBhZ3JlZWQgb24gdGhvc2UgcmVzdHJp
Y3Rpb25zOgoKPW92ZXIgNAoKPWl0ZW0gKiBGb3IgZmllbGRzIG9mIHR5cGUgInVzZXIiIHRoZSAi
dXNlcm5hbWUiIGlzIHNldAoKPWl0ZW0gKiBGb3IgZmllbGRzIG9mIHR5cGUgInNlbGVjdCIgYW5k
IHRoZSBsaWtlIHRoZSB2YWx1ZSBpcyBzZXQKCj1pdGVtICogQmVzaWRlIGN1c3RvbWZpZWxkdHlw
ZXMgb25seSB0eXBlICJ1c2VyIiBpcyBzdXBwb3J0ZWQgYXQgdGhlIG1vbWVudAoKPWJhY2sKCj1j
dXQKCnN1YiBDaGVja0ZpZWxkVHlwZXMgewogICAgbXkgKCRTZWxmLCAkRmllbGRzKSA9IEBfOwoK
ICAgIG15ICRMb2dPYmplY3QgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Okxv
ZycpOwogICAgbXkgJE1haW5PYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3Rl
bTo6TWFpbicpOwoKICAgIG15ICVGaWVsZHNDb3B5ID0gJXskRmllbGRzfTsKCiAgICBteSAkRmll
bGRzSW5mbyA9ICRTZWxmLT5GaWVsZHNHZXQoCiAgICAgICAgUmV0dXJuID0+ICdUeXBlcycsCiAg
ICApOwoKICAgIG15ICRTdGFuZGFyZEZpZWxkcyA9ICRTZWxmLT5GaWVsZHNHZXQoCiAgICAgICAg
UmV0dXJuID0+ICdTdGFuZGFyZCcsCiAgICApOwoKICAgIG15ICVEaXNwYXRjaCA9ICgKICAgICAg
ICBzdHJpbmcgICAgICAgICAgPT4gWyBcJl9TdHJpbmcsICAgICAgICAgICAgIF0sCiAgICAgICAg
dXJsICAgICAgICAgICAgID0+IFsgXCZfU3RyaW5nLCAgICAgICAgICAgICBdLAogICAgICAgIGFy
cmF5ICAgICAgICAgICA9PiBbIFwmX0FycmF5LCAgICAgICAgICAgICAgXSwKICAgICAgICBsYWJl
bHMgICAgICAgICAgPT4gWyBcJl9BcnJheSwgICAgICAgICAgICAgIF0sCiAgICAgICAgY2FzY2Fk
aW5nc2VsZWN0ID0+IFsgXCZfQXJyYXksICAgICAgICAgICAgICBdLAogICAgICAgIG11bHRpY2hl
Y2tib3hlcyA9PiBbIFwmX0FycmF5LCAgICAgICAgICAgICAgXSwKICAgICAgICB1c2VyICAgICAg
ICAgICAgPT4gWyBcJl9HZW5lcmljLCAnbmFtZScsICAgIF0sCiAgICAgICAgdXNlcnBpY2tlciAg
ICAgID0+IFsgXCZfR2VuZXJpYywgJ25hbWUnLCAgICBdLAogICAgICAgIHNlbGVjdCAgICAgICAg
ICA9PiBbIFwmX0dlbmVyaWMsICd2YWx1ZScgICAgXSwKICAgICAgICByYWRpb2J1dHRvbnMgICAg
PT4gWyBcJl9HZW5lcmljLCAndmFsdWUnICAgIF0sCiAgICAgICAgbnVtYmVyICAgICAgICAgID0+
IFsgXCZfTnVtYmVyLCAgICAgICAgICAgICBdLAogICAgICAgIGZsb2F0ICAgICAgICAgICA9PiBb
IFwmX051bWJlciwgICAgICAgICAgICAgXSwKICAgICAgICBkYXRldGltZSAgICAgICAgPT4gWyBc
Jl9EYXRldGltZSwgICAgICAgICAgIF0sCiAgICAgICAgZGF0ZSAgICAgICAgICAgID0+IFsgXCZf
RGF0ZXRpbWUsICdzaG9ydCcsICBdLAogICAgICAgIGRhdGVwaWNrZXIgICAgICA9PiBbIFwmX0Rh
dGV0aW1lLCAnc2hvcnQnLCAgXSwKICAgICAgICB0ZXh0YXJlYSAgICAgICAgPT4gWyBcJl9TdHJp
bmcsICAgICAgICAgICAgIF0sCiAgICAgICAgdGV4dGZpZWxkICAgICAgID0+IFsgXCZfU3RyaW5n
LCAgICAgICAgICAgICBdLAogICAgICAgIGRlZmF1bHQgICAgICAgICA9PiBbIFwmX1N0cmluZywg
ICAgICAgICAgICAgXSwKICAgICk7CgogICAgRklFTEQ6CiAgICBmb3IgbXkgJEZpZWxkICgga2V5
cyAlRmllbGRzQ29weSApIHsKCiAgICAgICAgbmV4dCBpZiBmaXJzdHsgJEZpZWxkIGVxICRfIH1A
eyAkU3RhbmRhcmRGaWVsZHMgfHwgW3F3KHByb2plY3QgaXNzdWV0eXBlIHJlcG9ydGVyIGFzc2ln
bmVlKV0gfTsKCiAgICAgICAgbXkgJFNjaGVtYSA9ICRGaWVsZHNJbmZvLT57JEZpZWxkfTsKICAg
ICAgICBteSAkUmVmICAgID0gcmVmICRGaWVsZHNDb3B5eyRGaWVsZH07CiAgICAgICAgbXkgJFR5
cGUgICA9ICRTY2hlbWEtPntjdXN0b219IHx8ICRTY2hlbWEtPnt0eXBlfTsKCiAgICAgICAgaWYg
KCAkVHlwZSAmJiBpbmRleCggJFR5cGUsICc6JyApICE9IC0xICkgewogICAgICAgICAgICAkVHlw
ZSA9IChzcGxpdCAvOi8sICRUeXBlKVstMV07CiAgICAgICAgfQoKICAgICAgICAjIHN0cmluZyBp
cyByZXF1aXJlZCBhbmQgaXQgaXMgYWxyZWFkeSBhIHN0cmluZyAtIG5vIHRyYW5zZm9ybWF0aW9u
IHJlcXVpcmVkCiAgICAgICAgbmV4dCBGSUVMRCBpZiAkVHlwZSBlcSAnc3RyaW5nJyAmJiAhJFJl
ZjsKCiAgICAgICAgIyBhcnJheSBpcyByZXF1aXJlZCBhbmQgaXQgaXMgYWxyZWFkeSBhbiBhcnJh
eSAtIG5vIHRyYW5zZm9ybWF0aW9uIHJlcXVpcmVkCiAgICAgICAgbmV4dCBGSUVMRCBpZiAkVHlw
ZSBlcSAnYXJyYXknICYmICRSZWYgJiYgJFJlZiBlcSAnQVJSQVknOwoKICAgICAgICBteSBAU3Vi
UGFyYW1zID0gQHsgJERpc3BhdGNoeyRUeXBlfSB8fCAkRGlzcGF0Y2h7ZGVmYXVsdH0gfTsKICAg
ICAgICBteSAkU3ViICAgICAgID0gc2hpZnQgQFN1YlBhcmFtczsKCiAgICAgICAgaWYgKCAkU2Vs
Zi0+e0RlYnVnfSApIHsKICAgICAgICAgICAgJExvZ09iamVjdC0+TG9nKAogICAgICAgICAgICAg
ICAgUHJpb3JpdHkgPT4gJ2RlYnVnJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+IFAgLiAi
OjpDaGVja0ZpZWxkVHlwZXM6ICIKICAgICAgICAgICAgICAgICAgICAuICRNYWluT2JqZWN0LT5E
dW1wKFsgJEZpZWxkLCAkUmVmLCAkU2NoZW1hLCAkVHlwZSwgIiRTdWIiLCBcQFN1YlBhcmFtcyBd
KSAuICJcbiIsCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICBuZXh0IEZJRUxEIGlm
ICEkU3ViOwoKICAgICAgICAkRmllbGRzQ29weXskRmllbGR9ID0gJFNlbGYtPiRTdWIoICRGaWVs
ZHNDb3B5eyRGaWVsZH0sICRSZWYsIEBTdWJQYXJhbXMgKTsKICAgIH0KCiAgICByZXR1cm4gXCVG
aWVsZHNDb3B5Owp9CgpzdWIgX1N0cmluZyB7CiAgICBteSAoJFNlbGYsICRWYWx1ZSwgJFJlZikg
PSBAXzsKCiAgICBpZiAoICRSZWYgZXEgJ0hBU0gnICkgewogICAgICAgIG15ICgkS2V5KSA9IHNv
cnQga2V5cyAleyRWYWx1ZX07CiAgICAgICAgcmV0dXJuICRWYWx1ZS0+eyRLZXl9OwogICAgfQog
ICAgZWxzaWYgKCAkUmVmIGVxICdBUlJBWScgKSB7CiAgICAgICAgcmV0dXJuIGpvaW4gJywgJywg
QHskVmFsdWV9OwogICAgfQoKICAgIHJldHVybiAiJFZhbHVlIjsKfQoKc3ViIF9BcnJheSB7CiAg
ICBteSAoJFNlbGYsICRWYWx1ZSwgJFJlZikgPSBAXzsKCiAgICBpZiAoICRSZWYgZXEgJ0hBU0gn
ICkgewogICAgICAgIG15ICgkS2V5KSA9IHNvcnQga2V5cyAleyRWYWx1ZX07CiAgICAgICAgcmV0
dXJuIFsgJFZhbHVlLT57JEtleX0gXTsKICAgIH0KCiAgICByZXR1cm4gWyAkVmFsdWUgXTsKfQoK
c3ViIF9HZW5lcmljIHsKICAgIG15ICgkU2VsZiwgJFZhbHVlLCAkUmVmLCAkS2V5KSA9IEBfOwoK
ICAgIGlmICggJFJlZiBlcSAnSEFTSCcgJiYgIWV4aXN0cyAkVmFsdWUtPnskS2V5fSApIHsKICAg
ICAgICBteSAoJEV4aXN0aW5nS2V5KSA9IHNvcnQga2V5cyAleyRWYWx1ZX07CiAgICAgICAgcmV0
dXJuICt7ICRLZXkgPT4gJFZhbHVlLT57JEV4aXN0aW5nS2V5fSB9OwogICAgfQogICAgZWxzaWYg
KCAkUmVmIGVxICdBUlJBWScgKSB7CiAgICAgICAgcmV0dXJuICt7ICRLZXkgPT4gam9pbiAnLCAn
LCBAeyRWYWx1ZX0gfTsKICAgIH0KCiAgICByZXR1cm4gK3sgJEtleSA9PiAiJFZhbHVlIiB9Owp9
CgpzdWIgX051bWJlciB7CiAgICBteSAoJFNlbGYsICRWYWx1ZSwgJFJlZikgPSBAXzsKCiAgICBt
eSAkVmFsdWVDb3B5ID0gJFZhbHVlOwogICAgaWYgKCAkUmVmIGVxICdIQVNIJyApIHsKICAgICAg
ICBteSAoJEtleSkgPSBzb3J0IGtleXMgJXskVmFsdWV9OwogICAgICAgICRWYWx1ZUNvcHkgPSAk
VmFsdWUtPnskS2V5fTsKICAgIH0KICAgIGVsc2lmICggJFJlZiBlcSAnQVJSQVknICkgewogICAg
ICAgICRWYWx1ZUNvcHkgPSBqb2luICcsICcsIEB7JFZhbHVlfTsKICAgIH0KCiAgICBpZiAoICEg
bG9va3NfbGlrZV9udW1iZXIoICRWYWx1ZUNvcHkgKSApIHsKCiAgICAgICAgJEtlcm5lbDo6T00t
PkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+
ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJUcnkgdG8gY2FzdCAkVmFsdWVDb3B5
IHRvIGEgbnVtYmVyIiwKICAgICAgICApOwoKICAgICAgICBubyB3YXJuaW5ncyAnbnVtZXJpYyc7
CiAgICAgICAgJFZhbHVlQ29weSArPSAwOwogICAgfQoKICAgIHJldHVybiAkVmFsdWVDb3B5Owp9
CgpzdWIgX0RhdGV0aW1lIHsKICAgIG15ICgkU2VsZiwgJFZhbHVlLCAkUmVmLCAkVHlwZSkgPSBA
XzsKCiAgICBteSAkVmFsdWVDb3B5ID0gJFZhbHVlOwogICAgaWYgKCAkUmVmIGVxICdIQVNIJyAp
IHsKICAgICAgICBteSAoJEtleSkgPSBzb3J0IGtleXMgJXskVmFsdWV9OwogICAgICAgICRWYWx1
ZUNvcHkgPSAkVmFsdWUtPnskS2V5fTsKICAgIH0KICAgIGVsc2lmICggJFJlZiBlcSAnQVJSQVkn
ICkgewogICAgICAgICRWYWx1ZUNvcHkgPSBqb2luICcgJywgQHskVmFsdWV9OwogICAgfQoKICAg
IG15ICVSZWdleGVzID0gKAogICAgICAgICdMb25nJyAgPT4gcXIvWzAtOV17NH0tWzAtOV17Mn0t
WzAtOV17Mn1UWzAtOV17Mn06WzAtOV17Mn06WzAtOV17Mn1cLlswLTldK1wrWzAtOV0rLywKICAg
ICAgICAnU2hvcnQnID0+IHFyL1swLTldezR9LVswLTldezJ9LVswLTldezJ9LywKICAgICk7Cgog
ICAgI215ICRSZWdleCA9ICRSZWdleGVzeyRUeXBlfSB8fCAkUmVnZXhlc3tMb25nfTsKICAgIG15
ICRSZWdleCA9ICRSZWdleGVze0xvbmd9OwoKICAgIGlmICggJFZhbHVlQ29weSAhfiAkUmVnZXgg
KSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2co
CiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+
ICIkVmFsdWVDb3B5IGlzIG5vdCBhIGRhdGUiLAogICAgICAgICk7CiAgICB9CgogICAgcmV0dXJu
ICRWYWx1ZUNvcHk7Cn0KCj1pdGVtIFRoaXMgZnVuY3Rpb24gY2FsbHMgSklSQSBhbiBxdWVyaWVz
IHRoZSBsaWNlbnNlIHN0YXR1cyBmb3IgdGhpcyBpbnN0YWxsYXRpb24uCgpteSAkc3RhdHVzID0g
JFNlbGYtPkNoZWNrVmFsaWRMaWNlbnNlKCk7CgpyZXR1cm5zOgoKMCB1cG9uIGZhaWx1cmUKMSB1
cG9uIHZhbGlkIGxpY2Vuc2UKMiB1cG9uIGV4cGlyZWQgbGljZW5zZQoKPWN1dAoKc3ViIENoZWNr
VmFsaWRMaWNlbnNlIHsKICAgIG15ICgkU2VsZikgPSBAXzsKCiAgICBteSAkTG9nT2JqZWN0ICAg
ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpOwogICAgbXkgJENvbmZp
Z09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgbXkgJENv
bmZpZyA9ICRTZWxmLT57Q29uZmlnfTsKCiAgICBteSAkVVJMICAgICAgPSAkQ29uZmlnLT57VVJM
fTsKICAgIG15ICRVc2VyICAgICA9ICRDb25maWctPntVc2VyfTsKICAgIG15ICRQYXNzd29yZCA9
ICRDb25maWctPntQYXNzd29yZH07CgogICAgIyMgbWF5YmUgbW92ZSB0aGlzIGludG8gYSBzdWIK
ICAgIG15ICRIZWFkZXJzID0gewogICAgICAgIEFjY2VwdCAgICAgICAgPT4gJ2FwcGxpY2F0aW9u
L2pzb24nLAojIFRoZSBsYXR0ZXIgaGFzIGJlZW4gZGlzYWJsZWQgZHVlIHRvIE9UUlNKSVJBLTgx
CiMgICAgICAgICAgICBBdXRob3JpemF0aW9uID0+ICdCYXNpYyAnCiMgICAgICAgICAgICAgIC4g
ZW5jb2RlX2Jhc2U2NCggJHVzZXIgLiAnOicgLiAkcGFzc3dvcmQgKSwKICAgICAgICAiQ29udGVu
dC10eXBlIiA9PiAnYXBwbGljYXRpb24vanNvbicsCiAgICB9OwoKICAgIG15ICRDbGllbnQgPSBS
RVNUOjpDbGllbnQtPm5ldygpOwogICAgJENsaWVudC0+c2V0Rm9sbG93KDEpOwoKICAgIG15ICRW
ZXJpZnlTU0wgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0pJUkE6OlNTTFZlcmlmeScpOwoKICAgIGlm
ICggISRWZXJpZnlTU0wgKSB7CiAgICAgICAgbXkgJExvYWRlZCA9ICRLZXJuZWw6Ok9NLT5HZXQo
J0tlcm5lbDo6U3lzdGVtOjpNYWluJyktPlJlcXVpcmUoCiAgICAgICAgICAgICdOZXQ6OlNTTGVh
eScsCiAgICAgICAgICAgIFNpbGVudCA9PiAxLAogICAgICAgICk7CiAgICAgICAgaWYgKCRMb2Fk
ZWQpIHsKICAgICAgICAgICAgJENsaWVudC0+Z2V0VXNlcmFnZW50KCktPnNzbF9vcHRzKCB2ZXJp
ZnlfaG9zdG5hbWUgPT4gMCApOwogICAgICAgICAgICAkQ2xpZW50LT5nZXRVc2VyYWdlbnQoKS0+
c3NsX29wdHMoIFNTTF92ZXJmaXlfbW9kZSA9PiBOZXQ6OlNTTGVheTo6VkVSSUZZX05PTkUoKSAp
OwogICAgICAgIH0KICAgIH0KCiAgICBteSAoJFByb3RvLCB1bmRlZiwgJEhvc3QsIEBCYXNlVVJM
ICkgPSBzcGxpdCAnLycsICRVUkw7CiAgICBteSAkR2V0VVJMID0gJy8nLiBqb2luKCcvJywgQEJh
c2VVUkwpIC4gJy9yZXN0L290cnMyamlyYS8xLjAvaW5mbyc7CgogICAgJEdldFVSTCA9fiBzey8v
fXsvfWc7CiAgICAkQ2xpZW50LT5zZXRIb3N0KCIkUHJvdG8vLyRIb3N0Iik7CiAgICAkQ2xpZW50
LT5HRVQoICRHZXRVUkwsICRIZWFkZXJzICk7CgogCiAgICBpZiAoICRTZWxmLT57RGVidWd9ICkg
ewogICAgICAgICRMb2dPYmplY3QtPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2luZm8n
LAogICAgICAgICAgICBNZXNzYWdlID0+ICBQIC4gIjo6Q2hlY2tWYWxpZExpY2Vuc2U6IFJFU1Q6
IGhvc3QgJFByb3RvLy8kSG9zdCBnZXR1cmwgJEdldFVSTCIsCiAgICAgICAgKTsKCiAgICAgICAg
JExvZ09iamVjdC0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnaW5mbycsCiAgICAgICAg
ICAgIE1lc3NhZ2UgID0+IHNwcmludGYgUCAuICI6OkNoZWNrVmFsaWRMaWNlbnNlOiBSRVNUOiBy
ZXNwb25zZUNvZGUgJXMsIHJlc3BvbnNlQ29udGVudCAlcyIsCiAgICAgICAgICAgICAgICAkQ2xp
ZW50LT5yZXNwb25zZUNvZGUoKSwKICAgICAgICAgICAgICAgICRDbGllbnQtPnJlc3BvbnNlQ29u
dGVudCgpLAogICAgICAgICk7CiAgICB9CgogICAgIyBUT0RPOiBGZWhsZXJtZWxkdW5nIGF1c2dl
YmVuIHdlbm4gRmVobGVyIGJlaSBkZXIgVmVyYmluZHVuZyBhdWZ0cml0dAoKICAgIHJldHVybiBp
bnQoJENsaWVudC0+cmVzcG9uc2VDb250ZW50KCkpOwp9CgoxOwoK
LS0tCkRlYnVnZ2VyOgogIERlYnVnVGhyZXNob2xkOiBkZWJ1ZwogIFRlc3RNb2RlOiAnMCcKRGVz
Y3JpcHRpb246IFRpY2tldCBDb25uZWN0b3IgUkVTVApGcmFtZXdvcmtWZXJzaW9uOiA0LjAuNQpQ
cm92aWRlcjoKICBPcGVyYXRpb246CiAgICBTZXNzaW9uQ3JlYXRlOgogICAgICBEZXNjcmlwdGlv
bjogQ3JlYXRlcyBhIFNlc3Npb24KICAgICAgTWFwcGluZ0luYm91bmQ6IHt9CiAgICAgIE1hcHBp
bmdPdXRib3VuZDoge30KICAgICAgVHlwZTogU2Vzc2lvbjo6U2Vzc2lvbkNyZWF0ZQogICAgVGlj
a2V0Q3JlYXRlOgogICAgICBEZXNjcmlwdGlvbjogQ3JlYXRlcyBhIFRpY2tldAogICAgICBNYXBw
aW5nSW5ib3VuZDoge30KICAgICAgTWFwcGluZ091dGJvdW5kOiB7fQogICAgICBUeXBlOiBUaWNr
ZXQ6OlRpY2tldENyZWF0ZQogICAgVGlja2V0R2V0OgogICAgICBEZXNjcmlwdGlvbjogUmV0cmll
dmVzIFRpY2tldCBkYXRhCiAgICAgIE1hcHBpbmdJbmJvdW5kOiB7fQogICAgICBNYXBwaW5nT3V0
Ym91bmQ6IHt9CiAgICAgIFR5cGU6IFRpY2tldDo6VGlja2V0R2V0CiAgICBUaWNrZXRTZWFyY2g6
CiAgICAgIERlc2NyaXB0aW9uOiBTZWFyY2ggZm9yIFRpY2tldHMKICAgICAgTWFwcGluZ0luYm91
bmQ6IHt9CiAgICAgIE1hcHBpbmdPdXRib3VuZDoge30KICAgICAgVHlwZTogVGlja2V0OjpUaWNr
ZXRTZWFyY2gKICAgIFRpY2tldFVwZGF0ZToKICAgICAgRGVzY3JpcHRpb246IFVwZGF0ZXMgYSBU
aWNrZXQKICAgICAgTWFwcGluZ0luYm91bmQ6IHt9CiAgICAgIE1hcHBpbmdPdXRib3VuZDoge30K
ICAgICAgVHlwZTogVGlja2V0OjpUaWNrZXRVcGRhdGUKICBUcmFuc3BvcnQ6CiAgICBDb25maWc6
CiAgICAgIEtlZXBBbGl2ZTogJycKICAgICAgTWF4TGVuZ3RoOiAnMTAwMDAwMDAwJwogICAgICBS
b3V0ZU9wZXJhdGlvbk1hcHBpbmc6CiAgICAgICAgU2Vzc2lvbkNyZWF0ZToKICAgICAgICAgIFJl
cXVlc3RNZXRob2Q6CiAgICAgICAgICAtIFBPU1QKICAgICAgICAgIFJvdXRlOiAvU2Vzc2lvbgog
ICAgICAgIFRpY2tldENyZWF0ZToKICAgICAgICAgIFJlcXVlc3RNZXRob2Q6CiAgICAgICAgICAt
IFBPU1QKICAgICAgICAgIFJvdXRlOiAvVGlja2V0CiAgICAgICAgVGlja2V0R2V0OgogICAgICAg
ICAgUmVxdWVzdE1ldGhvZDoKICAgICAgICAgIC0gR0VUCiAgICAgICAgICBSb3V0ZTogL1RpY2tl
dC86VGlja2V0SUQKICAgICAgICBUaWNrZXRTZWFyY2g6CiAgICAgICAgICBSZXF1ZXN0TWV0aG9k
OgogICAgICAgICAgLSBHRVQKICAgICAgICAgIFJvdXRlOiAvVGlja2V0CiAgICAgICAgVGlja2V0
VXBkYXRlOgogICAgICAgICAgUmVxdWVzdE1ldGhvZDoKICAgICAgICAgIC0gUEFUQ0gKICAgICAg
ICAgIFJvdXRlOiAvVGlja2V0LzpUaWNrZXRJRAogICAgVHlwZTogSFRUUDo6UkVTVApSZW1vdGVT
eXN0ZW06ICcnClJlcXVlc3RlcjoKICBUcmFuc3BvcnQ6CiAgICBUeXBlOiAnJwo=
Ly8gLS0KLy8gSklSQS5BdXRvY29tcGxldGUuanMgLSBwcm92aWRlcyB0aGUgc3BlY2lhbCBtb2R1
bGUgZnVuY3Rpb25zIGZvciB0aGUgQ3VzdG9tZXJJRCBzZWFyY2gKLy8gQ29weXJpZ2h0IChDKSAy
MDE2IFBlcmwtU2VydmljZXMuZGUsIGh0dHA6Ly9wZXJsLXNlcnZpY2VzLmRlCi8vIC0tCi8vIFRo
aXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWls
cywgc2VlCi8vIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRp
b24gKEFHUEwpLiBJZiB5b3UKLy8gZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6
Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KLy8gLS0KCiJ1c2Ugc3RyaWN0IjsKCnZh
ciBKSVJBID0gSklSQSB8fCB7fTsKCi8qKgogKiBAbmFtZXNwYWNlCiAqIEBleHBvcnRzIFRhcmdl
dE5TIGFzIEpJUkEuQXV0b2NvbXBsZXRlCiAqIEBkZXNjcmlwdGlvbgogKiAgICAgIFRoaXMgbmFt
ZXNwYWNlIGNvbnRhaW5zIHRoZSBzcGVjaWFsIG1vZHVsZSBmdW5jdGlvbnMgZm9yIHRoZSBzZWFy
Y2guCiAqLwpKSVJBLkF1dG9jb21wbGV0ZSA9IChmdW5jdGlvbiAoVGFyZ2V0TlMpIHsKCiAgICAv
KioKICAgICAqIEBmdW5jdGlvbgogICAgICogQHBhcmFtIHtqUXVlcnlPYmplY3R9ICRJbnB1dCBJ
bnB1dCBlbGVtZW50IHRvIGFkZCBhdXRvIGNvbXBsZXRlIHRvCiAgICAgKiBAcGFyYW0ge1N0cmlu
Z30gU3ViYWN0aW9uIFN1YmFjdGlvbiB0byBleGVjdXRlLCAiU2VhcmNoQ3VzdG9tZXJJRCIgb3Ig
IlNlYXJjaEN1c3RvbWVyVXNlciIKICAgICAqIEByZXR1cm4gbm90aGluZwogICAgICovCiAgICBU
YXJnZXROUy5Jbml0ID0gZnVuY3Rpb24gKCRJbnB1dCwgU3ViYWN0aW9uLCBUYXJnZXRGaWVsZCkg
ewogICAgICAgIHZhciBLZXl3b3JkID0gJ0Fzc2lnbmVlJzsKCiAgICAgICAgaWYgKCBUYXJnZXRG
aWVsZCAmJiBUYXJnZXRGaWVsZCAhPSAnJyApIHsKICAgICAgICAgICAgS2V5d29yZCA9IFRhcmdl
dEZpZWxkOwogICAgICAgIH0KCiAgICAgICAgQ29yZS5VSS5BdXRvY29tcGxldGUuSW5pdCgkSW5w
dXQsIGZ1bmN0aW9uIChSZXF1ZXN0LCBSZXNwb25zZSkgewogICAgICAgICAgICAgICAgdmFyIFVS
TCA9IENvcmUuQ29uZmlnLkdldCgnQmFzZWxpbmsnKSwgRGF0YSA9IHsKICAgICAgICAgICAgICAg
ICAgICBBY3Rpb246ICdBZ2VudFRpY2tldEpJUkFEaWFsb2cnLAogICAgICAgICAgICAgICAgICAg
IFN1YmFjdGlvbjogU3ViYWN0aW9uLAogICAgICAgICAgICAgICAgICAgIFByb2plY3Q6ICQoJyNQ
cm9qZWN0JykudmFsKCksCiAgICAgICAgICAgICAgICAgICAgVGVybTogUmVxdWVzdC50ZXJtCiAg
ICAgICAgICAgICAgICB9OwoKICAgICAgICAgICAgICAgICRJbnB1dC5kYXRhKCdBdXRvQ29tcGxl
dGVYSFInLCBDb3JlLkFKQVguRnVuY3Rpb25DYWxsKFVSTCwgRGF0YSwgZnVuY3Rpb24gKFJlc3Vs
dCkgewogICAgICAgICAgICAgICAgICAgIHZhciBEYXRhID0gW107CiAgICAgICAgICAgICAgICAg
ICAgJElucHV0LnJlbW92ZURhdGEoJ0F1dG9Db21wbGV0ZVhIUicpOwogICAgICAgICAgICAgICAg
ICAgICQuZWFjaChSZXN1bHQsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICAgICAg
RGF0YS5wdXNoKHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlzLkxhYmVs
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHRoaXMuVmFsdWUKICAgICAgICAg
ICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAg
ICAgICAgUmVzcG9uc2UoRGF0YSk7CiAgICAgICAgICAgICAgICB9KSk7CiAgICAgICAgfSwgZnVu
Y3Rpb24gKEV2ZW50LCBVSSkgewogICAgICAgICAgICAkKCcjJyArIEtleXdvcmQgKS52YWwoVUku
aXRlbS52YWx1ZSk7CiAgICAgICAgICAgICQoJyMnICsgS2V5d29yZCArICdTZWFyY2hGaWVsZCcp
LnZhbChVSS5pdGVtLmxhYmVsKTsKICAgICAgICB9LCBLZXl3b3JkICsgJ1NlYXJjaCcpOwogICAg
fTsKCiAgICByZXR1cm4gVGFyZ2V0TlM7Cgp9KSggSklSQS5BdXRvY29tcGxldGUgfHwge30gKTsK
Cgo=
IyAtLQojIHZhci9wYWNrYWdlc2V0dXAvSklSQVBhY2thZ2UucG0gLSBjb2RlIHRvIGV4Y2VjdXRl
IGR1cmluZyBwYWNrYWdlIGluc3RhbGxhdGlvbgojIENvcHlyaWdodCAoQykgMjAxNSBjYXRXb3Jr
WCBHbWJILCBodHRwOi8vY2F0d29ya3guZGUKIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0
aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2Vk
IGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRp
ZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMv
YWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgdmFyOjpwYWNrYWdlc2V0dXA6OkpJUkFQYWNrYWdlOwoK
dXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIHV0Zjg7Cgp1c2UgTGlzdDo6VXRpbCBxdyhm
aXJzdCk7CnVzZSBGaWxlOjpCYXNlbmFtZTsKCnVzZSBLZXJuZWw6OlN5c3RlbTo6VmFyaWFibGVD
aGVjayBxdyg6YWxsKTsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gcXcoCiAgICBLZXJuZWw6
OkNvbmZpZwogICAgS2VybmVsOjpTeXN0ZW06OlN5c0NvbmZpZwogICAgS2VybmVsOjpTeXN0ZW06
OkdlbmVyaWNJbnRlcmZhY2U6OldlYnNlcnZpY2UKICAgIEtlcm5lbDo6U3lzdGVtOjpZQU1MCiAg
ICBLZXJuZWw6OlN5c3RlbTo6VmFsaWQKICAgIEtlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQK
KTsKCm91ciAkVkVSU0lPTiA9IDQuMDAxOwoKPWhlYWQxIE5BTUUKCnZhcjo6cGFja2FnZXNldHVw
OjpKSVJBUGFja2FnZS5wbSAtIGNvZGUgdG8gZXhjZWN1dGUgZHVyaW5nIHBhY2thZ2UgaW5zdGFs
bGF0aW9uCgo9aGVhZDEgU1lOT1BTSVMKCkFsbCBmdW5jdGlvbnMKCj1oZWFkMSBQVUJMSUMgSU5U
RVJGQUNFCgo9b3ZlciA0Cgo9Y3V0Cgo9aXRlbSBuZXcoKQoKY3JlYXRlIGFuIG9iamVjdAoKPWN1
dAoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2Nh
dGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7fTsKICAgIGJsZXNzKCAkU2Vs
ZiwgJFR5cGUgKTsKCiAgICAjIGNyZWF0ZSBuZWVkZWQgc3lzY29uZmlnIG9iamVjdAogICAgbXkg
JFN5c0NvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpTeXND
b25maWcnKTsKCiAgICAjIHJlYnVpbGQgWlpaKiBmaWxlcwogICAgJFN5c0NvbmZpZ09iamVjdC0+
V3JpdGVEZWZhdWx0KCk7CgogICAgIyBkZWZpbmUgdGhlIFpaWiBmaWxlcwogICAgbXkgQFpaWkZp
bGVzID0gKAogICAgICAgICdaWlpBQXV0by5wbScsCiAgICAgICAgJ1paWkF1dG8ucG0nLAogICAg
KTsKCiAgICAjIHJlbG9hZCB0aGUgWlpaIGZpbGVzIChtb2RfcGVybCB3b3JrYXJvdW5kKQogICAg
Zm9yIG15ICRaWlpGaWxlIChAWlpaRmlsZXMpIHsKCiAgICAgICAgUFJFRklYOgogICAgICAgIGZv
ciBteSAkUHJlZml4IChASU5DKSB7CiAgICAgICAgICAgIG15ICRGaWxlID0gJFByZWZpeCAuICcv
S2VybmVsL0NvbmZpZy9GaWxlcy8nIC4gJFpaWkZpbGU7CiAgICAgICAgICAgIG5leHQgUFJFRklY
IGlmICEtZiAkRmlsZTsKICAgICAgICAgICAgZG8gJEZpbGU7CiAgICAgICAgICAgIGxhc3QgUFJF
RklYOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gJFNlbGY7Cn0KCj1pdGVtIENvZGVJbnN0
YWxsKCkKCnJ1biB0aGUgY29kZSBpbnN0YWxsIHBhcnQKCiAgICBteSAkUmVzdWx0ID0gJENvZGVP
YmplY3QtPkNvZGVJbnN0YWxsKCk7Cgo9Y3V0CgpzdWIgQ29kZUluc3RhbGwgewogICAgbXkgKCAk
U2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNyZWF0ZSBkeW5hbWljIGZpZWxkcyAKICAgICRT
ZWxmLT5fSW5zdGFsbFdlYnNlcnZpY2UoKTsKICAgICRTZWxmLT5fQ3JlYXRlRHluYW1pY0ZpZWxk
cygpOwogICAgJFNlbGYtPl9BY3RpdmF0ZUR5bmFtaWNGaWVsZHMoKTsKCiAgICByZXR1cm4gMTsK
fQoKPWl0ZW0gQ29kZVJlaW5zdGFsbCgpCgpydW4gdGhlIGNvZGUgcmVpbnN0YWxsIHBhcnQKCiAg
ICBteSAkUmVzdWx0ID0gJENvZGVPYmplY3QtPkNvZGVSZWluc3RhbGwoKTsKCj1jdXQKCnN1YiBD
b2RlUmVpbnN0YWxsIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgcmV0dXJu
IDE7Cn0KCj1pdGVtIENvZGVVcGdyYWRlKCkKCnJ1biB0aGUgY29kZSB1cGdyYWRlIHBhcnQKCiAg
ICBteSAkUmVzdWx0ID0gJENvZGVPYmplY3QtPkNvZGVVcGdyYWRlKCk7Cgo9Y3V0CgpzdWIgQ29k
ZVVwZ3JhZGUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAkU2VsZi0+X0lu
c3RhbGxXZWJzZXJ2aWNlKCk7CiAgICAkU2VsZi0+X0NyZWF0ZUR5bmFtaWNGaWVsZHMoKTsKICAg
ICRTZWxmLT5fQWN0aXZhdGVEeW5hbWljRmllbGRzKCk7CgogICAgcmV0dXJuIDE7Cn0KCj1pdGVt
IENvZGVVbmluc3RhbGwoKQoKcnVuIHRoZSBjb2RlIHVuaW5zdGFsbCBwYXJ0CgogICAgbXkgJFJl
c3VsdCA9ICRDb2RlT2JqZWN0LT5Db2RlVW5pbnN0YWxsKCk7Cgo9Y3V0CgpzdWIgQ29kZVVuaW5z
dGFsbCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIHJldHVybiAxOwp9Cgo9
aXRlbSBfSW5zdGFsbFdlYnNlcnZpY2UoKQoKPWN1dAoKc3ViIF9JbnN0YWxsV2Vic2VydmljZSB7
CiAgICBteSAoJFNlbGYsICVQYXJhbSkgPSBAXzsKCiAgICBteSAkWUFNTE9iamVjdCA9ICRLZXJu
ZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpZQU1MJyk7CiAgICBteSAkTG9jYXRpb24gICA9
IGpvaW4gJy8nLAogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdl
dCgnSG9tZScpLAogICAgICAgIHF3L3ZhciBHZW5lcmljSW50ZXJmYWNlIEdlbmVyaWNUaWNrZXRD
b25uZWN0b3JSRVNULnltbC87CgogICAgbXkgJENvbnRlbnQgPSAkS2VybmVsOjpPTS0+R2V0KCdL
ZXJuZWw6OlN5c3RlbTo6TWFpbicpLT5GaWxlUmVhZCgKICAgICAgICBMb2NhdGlvbiA9PiAkTG9j
YXRpb24sCiAgICApOwoKICAgIG15ICRJbXBvcnRlZENvbmZpZyA9ICRZQU1MT2JqZWN0LT5Mb2Fk
KCBEYXRhID0+ICR7JENvbnRlbnR9ICk7CgogICAgIyBkaXNwbGF5IGFueSBZQU1MIGVycm9yIG1l
c3NhZ2UgYXMgYSBub3JtYWwgb3RycyBlcnJvciBtZXNzYWdlCiAgICBpZiAoICFJc0hhc2hSZWZX
aXRoRGF0YSgkSW1wb3J0ZWRDb25maWcpICkgewogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAj
IGNoZWNrIGlmIGltcG9ydGVkIGNvbmZpZ3VyYXRpb24gaGFzIGN1cnJlbnQgZnJhbWV3b3JrIHZl
cnNpb24gb3RoZXJ3aXNlIHVwZGF0ZSBpdAogICAgI2lmICggJEltcG9ydGVkQ29uZmlnLT57RnJh
bWV3b3JrVmVyc2lvbn0gbmUgJFNlbGYtPntGcmFtZXdvcmtWZXJzaW9ufSApIHsKICAgICMgICAg
JEltcG9ydGVkQ29uZmlnID0gJFNlbGYtPl9VcGRhdGVDb25maWd1cmF0aW9uKCBDb25maWd1cmF0
aW9uID0+ICRJbXBvcnRlZENvbmZpZyApOwogICAgI30KCiAgICAjIHJlbW92ZSBmcmFtZXdvcmsg
aW5mb3JtYXRpb24gc2luY2UgaXMgbm90IG5lZWRlZCBhbnltb3JlCiAgICBkZWxldGUgJEltcG9y
dGVkQ29uZmlnLT57RnJhbWV3b3JrVmVyc2lvbn07CgogICAgIyBnZXQgd2Vic2VydmljZSBuYW1l
CiAgICBteSAkV2Vic2VydmljZU5hbWUgICA9IGJhc2VuYW1lICRMb2NhdGlvbjsKICAgIG15ICRX
ZWJzZXJ2aWNlT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkdlbmVy
aWNJbnRlcmZhY2U6OldlYnNlcnZpY2UnKTsKCiAgICAjIHJlbW92ZSBmaWxlIGV4dGVuc2lvbgog
ICAgJFdlYnNlcnZpY2VOYW1lID1+IHN7XC5bXi5dKyR9e31nOwoKICAgICMgY2hlY2sgaWYgbmFt
ZSBpcyBkdXBsaWNhdGVkCiAgICBteSAlV2Vic2VydmljZUxpc3QgPSByZXZlcnNlICV7ICRXZWJz
ZXJ2aWNlT2JqZWN0LT5XZWJzZXJ2aWNlTGlzdCgpIH07CgogICAgcmV0dXJuIGlmICRXZWJzZXJ2
aWNlTGlzdHsgJFdlYnNlcnZpY2VOYW1lIH07CgogICAgIyBvdGhlcndpc2Ugc2F2ZSBjb25maWd1
cmF0aW9uIGFuZCByZXR1cm4gdG8gb3ZlcnZpZXcgc2NyZWVuCiAgICBteSAkU3VjY2VzcyA9ICRX
ZWJzZXJ2aWNlT2JqZWN0LT5XZWJzZXJ2aWNlQWRkKAogICAgICAgIE5hbWUgICAgPT4gJFdlYnNl
cnZpY2VOYW1lLAogICAgICAgIENvbmZpZyAgPT4gJEltcG9ydGVkQ29uZmlnLAogICAgICAgIFZh
bGlkSUQgPT4gMSwKICAgICAgICBVc2VySUQgID0+IDEsCiAgICApOwp9CgpzdWIgX0NyZWF0ZUR5
bmFtaWNGaWVsZHMgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkVmFs
aWRPYmplY3QgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlZhbGlk
Jyk7CiAgICBteSAkRHluYW1pY0ZpZWxkT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVs
OjpTeXN0ZW06OkR5bmFtaWNGaWVsZCcpOwoKICAgIG15ICRWYWxpZElEID0gJFZhbGlkT2JqZWN0
LT5WYWxpZExvb2t1cCgKICAgICAgICBWYWxpZCA9PiAndmFsaWQnLAogICAgKTsKCiAgICAjIGdl
dCBhbGwgY3VycmVudCBkeW5hbWljIGZpZWxkcwogICAgbXkgJER5bmFtaWNGaWVsZExpc3QgPSAk
RHluYW1pY0ZpZWxkT2JqZWN0LT5EeW5hbWljRmllbGRMaXN0R2V0KAogICAgICAgIFZhbGlkID0+
IDAsCiAgICApOwoKICAgICMgZ2V0IHRoZSBsaXN0IG9mIG9yZGVyIG51bWJlcnMgKGlzIGFscmVh
ZHkgc29ydGVkKS4KICAgIG15IEBEeW5hbWljZmllbGRPcmRlckxpc3Q7CiAgICBmb3IgbXkgJER5
bmFtaWNmaWVsZCAoIEB7JER5bmFtaWNGaWVsZExpc3R9ICkgewogICAgICAgIHB1c2ggQER5bmFt
aWNmaWVsZE9yZGVyTGlzdCwgJER5bmFtaWNmaWVsZC0+e0ZpZWxkT3JkZXJ9OwogICAgfQoKICAg
ICMgZ2V0IHRoZSBsYXN0IGVsZW1lbnQgZnJvbSB0aGUgb3JkZXIgbGlzdCBhbmQgYWRkIDEKICAg
IG15ICROZXh0T3JkZXJOdW1iZXIgPSAxOwogICAgaWYgKEBEeW5hbWljZmllbGRPcmRlckxpc3Qp
IHsKICAgICAgICAkTmV4dE9yZGVyTnVtYmVyID0gJER5bmFtaWNmaWVsZE9yZGVyTGlzdFstMV0g
KyAxOwogICAgfQoKICAgICMgZ2V0IHRoZSBkZWZpbml0aW9uIGZvciBhbGwgZHluYW1pYyBmaWVs
ZHMgZm9yIElUU00KICAgIG15IEBEeW5hbWljRmllbGRzID0gJFNlbGYtPl9HZXREeW5hbWljRmll
bGRzRGVmaW5pdGlvbigpOwoKICAgICMgY3JlYXRlIGEgZHluYW1pYyBmaWVsZHMgbG9va3VwIHRh
YmxlCiAgICBteSAlRHluYW1pY0ZpZWxkTG9va3VwOwogICAgZm9yIG15ICREeW5hbWljRmllbGQg
KCBAeyREeW5hbWljRmllbGRMaXN0fSApIHsKICAgICAgICBuZXh0IGlmIHJlZiAkRHluYW1pY0Zp
ZWxkIG5lICdIQVNIJzsKICAgICAgICAkRHluYW1pY0ZpZWxkTG9va3VweyAkRHluYW1pY0ZpZWxk
LT57TmFtZX0gfSA9ICREeW5hbWljRmllbGQ7CiAgICB9CgogICAgIyBjcmVhdGUgb3IgdXBkYXRl
IGR5bmFtaWMgZmllbGRzCiAgICBEWU5BTUlDRklFTEQ6CiAgICBmb3IgbXkgJER5bmFtaWNGaWVs
ZCAoQER5bmFtaWNGaWVsZHMpIHsKICAgICAgICBteSAkQ3JlYXRlRHluYW1pY0ZpZWxkOwoKICAg
ICAgICAjIGNoZWNrIGlmIHRoZSBkeW5hbWljIGZpZWxkIGFscmVhZHkgZXhpc3RzCiAgICAgICAg
aWYgKCByZWYgJER5bmFtaWNGaWVsZExvb2t1cHsgJER5bmFtaWNGaWVsZC0+e05hbWV9IH0gbmUg
J0hBU0gnICkgewogICAgICAgICAgICAkQ3JlYXRlRHluYW1pY0ZpZWxkID0gMTsKICAgICAgICB9
CgogICAgICAgICMgaWYgdGhlIGZpZWxkIGV4aXN0cyBjaGVjayBpZiB0aGUgdHlwZSBtYXRjaCB3
aXRoIHRoZSBuZWVkZWQgdHlwZQogICAgICAgIGVsc2lmICgKICAgICAgICAgICAgJER5bmFtaWNG
aWVsZExvb2t1cHsgJER5bmFtaWNGaWVsZC0+e05hbWV9IH0tPntGaWVsZFR5cGV9CiAgICAgICAg
ICAgIG5lICREeW5hbWljRmllbGQtPntGaWVsZFR5cGV9CiAgICAgICAgICAgICkKICAgICAgICB7
CgogICAgICAgICAgICAjIHJlbmFtZSB0aGUgZmllbGQgYW5kIGNyZWF0ZSBhIG5ldyBvbmUKICAg
ICAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkRHluYW1pY0ZpZWxkT2JqZWN0LT5EeW5hbWljRmllbGRV
cGRhdGUoCiAgICAgICAgICAgICAgICAleyAkRHluYW1pY0ZpZWxkTG9va3VweyAkRHluYW1pY0Zp
ZWxkLT57TmFtZX0gfSB9LAogICAgICAgICAgICAgICAgTmFtZSAgID0+ICREeW5hbWljRmllbGRM
b29rdXB7ICREeW5hbWljRmllbGQtPntOYW1lfSB9LT57TmFtZX0gLiAnT2xkJywKICAgICAgICAg
ICAgICAgIFVzZXJJRCA9PiAxLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgJENyZWF0ZUR5
bmFtaWNGaWVsZCA9IDE7CiAgICAgICAgfQoKICAgICAgICAjIG90aGVyd2lzZSBpZiB0aGUgZmll
bGQgZXhpc3RzIGFuZCB0aGUgdHlwZSBtYXRjaCwgdXBkYXRlIGl0IHRvIHRoZSBJVFNNIGRlZmlu
aXRpb24KICAgICAgICBlbHNlIHsKIyAgICAgICAgICAgIG15ICRTdWNjZXNzID0gJER5bmFtaWNG
aWVsZE9iamVjdC0+RHluYW1pY0ZpZWxkVXBkYXRlKAojICAgICAgICAgICAgICAgICV7JER5bmFt
aWNGaWVsZH0sCiMgICAgICAgICAgICAgICAgSUQgICAgICAgICA9PiAkRHluYW1pY0ZpZWxkTG9v
a3VweyAkRHluYW1pY0ZpZWxkLT57TmFtZX0gfS0+e0lEfSwKIyAgICAgICAgICAgICAgICBGaWVs
ZE9yZGVyID0+ICREeW5hbWljRmllbGRMb29rdXB7ICREeW5hbWljRmllbGQtPntOYW1lfSB9LT57
RmllbGRPcmRlcn0sCiMgICAgICAgICAgICAgICAgVmFsaWRJRCAgICA9PiAkVmFsaWRJRCwKIyAg
ICAgICAgICAgICAgICBSZW9yZGVyICAgID0+IDAsCiMgICAgICAgICAgICAgICAgVXNlcklEICAg
ICA9PiAxLAojICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgY2hlY2sgaWYgbmV3
IGZpZWxkIGhhcyB0byBiZSBjcmVhdGVkCiAgICAgICAgaWYgKCRDcmVhdGVEeW5hbWljRmllbGQp
IHsKICAgICAgICAgICAgIyBjcmVhdGUgYSBuZXcgZmllbGQKICAgICAgICAgICAgbXkgJEZpZWxk
SUQgPSAkRHluYW1pY0ZpZWxkT2JqZWN0LT5EeW5hbWljRmllbGRBZGQoCiAgICAgICAgICAgICAg
ICBOYW1lICAgICAgID0+ICREeW5hbWljRmllbGQtPntOYW1lfSwKICAgICAgICAgICAgICAgIExh
YmVsICAgICAgPT4gJER5bmFtaWNGaWVsZC0+e0xhYmVsfSwKICAgICAgICAgICAgICAgIEZpZWxk
T3JkZXIgPT4gJE5leHRPcmRlck51bWJlciwKICAgICAgICAgICAgICAgIEZpZWxkVHlwZSAgPT4g
JER5bmFtaWNGaWVsZC0+e0ZpZWxkVHlwZX0sCiAgICAgICAgICAgICAgICBPYmplY3RUeXBlID0+
ICREeW5hbWljRmllbGQtPntPYmplY3RUeXBlfSwKICAgICAgICAgICAgICAgIENvbmZpZyAgICAg
PT4gJER5bmFtaWNGaWVsZC0+e0NvbmZpZ30sCiAgICAgICAgICAgICAgICBWYWxpZElEICAgID0+
ICRWYWxpZElELAogICAgICAgICAgICAgICAgVXNlcklEICAgICA9PiAxLAogICAgICAgICAgICAp
OwogICAgICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhJEZpZWxkSUQ7CgogICAgICAgICAg
ICAjIGluY3JlYXNlIHRoZSBvcmRlciBudW1iZXIKICAgICAgICAgICAgJE5leHRPcmRlck51bWJl
cisrOwogICAgICAgIH0KCiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCj1pdGVtIF9HZXREeW5hbWlj
RmllbGRzRGVmaW5pdGlvbigpCgpyZXR1cm5zIHRoZSBkZWZpbml0aW9uIGZvciByZXBvcnRpbmcg
cmVsYXRlZCBkeW5hbWljIGZpZWxkcwoKICAgIG15ICRSZXN1bHQgPSAkQ29kZU9iamVjdC0+X0dl
dER5bmFtaWNGaWVsZHNEZWZpbml0aW9uKCk7Cgo9Y3V0CgpzdWIgX0dldER5bmFtaWNGaWVsZHNE
ZWZpbml0aW9uIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBkZWZpbmUg
YWxsIGR5bmFtaWMgZmllbGRzIGZvciByZXBvcnRpbmcKICAgIG15IEBEeW5hbWljRmllbGRzID0g
KAogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAgICAgICA9PiAnSklSQUlzc3VlSUQnLAogICAg
ICAgICAgICBMYWJlbCAgICAgID0+ICdKaXJhIElzc3VlIElEJywKICAgICAgICAgICAgRmllbGRU
eXBlICA9PiAnVGV4dCcsCiAgICAgICAgICAgIE9iamVjdFR5cGUgPT4gJ1RpY2tldCcsCiAgICAg
ICAgICAgIENvbmZpZyAgICAgPT4gewogICAgICAgICAgICAgICAgRGVmYXVsdFZhbHVlICA9PiAn
JywKICAgICAgICAgICAgICAgIExpbmsgICAgICAgICAgPT4gJ2h0dHA6Ly9sb2NhbGhvc3Q6ODA4
MC9icm93c2UvWyUgRGF0YS5KSVJBSXNzdWVJRCB8IHVybCAlXScsCiAgICAgICAgICAgIH0sCiAg
ICAgICAgfSwKICAgICk7CgogICAgcmV0dXJuIEBEeW5hbWljRmllbGRzOwp9CgpzdWIgX0FjdGl2
YXRlRHluYW1pY0ZpZWxkcyB7CiAgICBteSAoJFNlbGYsICVQYXJhbSkgPSBAXzsKCgogICAgbXkg
JU1hcCA9ICgKICAgICAgICBKSVJBSXNzdWVJRCA9PiB7CiAgICAgICAgICAgICdab29tJyAgICAg
PT4gMSwKICAgICAgICAgICAgJ0ZyZWVUZXh0JyA9PiAxLAogICAgICAgICAgICAnU2VhcmNoJyAg
ID0+IDEsCiAgICAgICAgfSwKICAgICk7CgogICAgbXkgJENvbmZpZ09iamVjdCAgICA9ICRLZXJu
ZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CiAgICBteSAkU3lzQ29uZmlnT2JqZWN0ID0g
JEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlN5c0NvbmZpZycpOwoKICAgIGZvciBt
eSAkRmllbGQgKCBrZXlzICVNYXAgKSB7CiAgICAgICAgZm9yIG15ICRTY3JlZW4gKCBrZXlzICV7
ICRNYXB7JEZpZWxkfSB9ICkgewogICAgICAgICAgICBteSAkRnVsbG5hbWUgICAgICA9ICdUaWNr
ZXQ6OkZyb250ZW5kOjpBZ2VudFRpY2tldCcgLiAkU2NyZWVuOwogICAgICAgICAgICBteSAkT3B0
aW9ucyAgICAgICA9ICRDb25maWdPYmplY3QtPkdldCggJEZ1bGxuYW1lICk7CiAgICAgICAgICAg
IG15ICRNYXBwaW5nICAgICAgID0gJE9wdGlvbnMtPntEeW5hbWljRmllbGR9IHx8IHt9OwoKICAg
ICAgICAgICAgbXkgJU5ld01hcHBpbmcgPSAoCiAgICAgICAgICAgICAgICAleyAkTWFwcGluZyB9
LAogICAgICAgICAgICAgICAgJEZpZWxkID0+ICRNYXB7JEZpZWxkfS0+eyRTY3JlZW59LAogICAg
ICAgICAgICApOwoKICAgICAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkU3lzQ29uZmlnT2JqZWN0LT5D
b25maWdJdGVtVXBkYXRlKAogICAgICAgICAgICAgICAgVmFsaWQgPT4gMSwKICAgICAgICAgICAg
ICAgIEtleSAgID0+ICIkRnVsbG5hbWUjIyNEeW5hbWljRmllbGQiLAogICAgICAgICAgICAgICAg
VmFsdWUgPT4gXCVOZXdNYXBwaW5nLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAg
ICByZXR1cm4gMTsKfQoKMTsKCj1iYWNrCgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRo
aXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWls
cywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24g
KEdQTCkuIElmIHlvdQpkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgTDxodHRwOi8vd3d3
LmdudS5vcmcvbGljZW5zZXMvZ3BsLTIuMC50eHQ+LgoKPWN1dAoK
Get('var::packagesetup::' . $Param{Structure}->{Name}->{Content} )->CodeInstall();
]]>
Get('var::packagesetup::' . $Param{Structure}->{Name}->{Content} )->CodeUpgrade();
]]>
Copyright (C) 2008-2016 catWorkX GmbH http://www.catworkx.de
This is commercial software.
Please install the otrs2jira-licensing plugin into your JIRA installation and obtain a valid license.
Please contact catWorkX GmbH for a valid license.
]]>
Copyright (C) 2008-2016 catWorkX GmbH http://www.catworkx.de
Dies ist kommerzielle Software.
Bitte installieren Sie das Plugin otrs2jira-licensing in Ihre JIRA Installation und hinterlegen dort eine gültige Lizenz.
Bitte setzen Sie sich mit der catWorkX GmbH bzgl. einer gültigen Lizenz in Verbindung.
]]>
2016-04-23 14:04:20lvps87-230-13-103.dedicated.hosteurope.de