JIRAPackage
6.0.6
6.0.x
JIRA::REST
REST::Client
Time::Piece
catworkx GmbH
http://www.catworkx.com
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
cGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6SklSQU1hcHBpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2Fy
bmluZ3M7CgpvdXIgQE9iamVjdERlcGVuZGVuY2llcyA9IHF3KAogICAgS2VybmVsOjpTeXN0ZW06
OlRpbWUKKTsKCnN1YiBUb2RheSB7CiAgICBteSAkVGltZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5H
ZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lJyk7CiAgICBteSAoJFNlYywgJE1pbiwgJEhvdXIsICRE
YXksICRNb24sICRZZWFyKSAgPSAkVGltZU9iamVjdC0+U3lzdGVtVGltZTJEYXRlKAogICAgICAg
IFN5c3RlbVRpbWUgPT4gJFRpbWVPYmplY3QtPlN5c3RlbVRpbWUsCiAgICApOwoKICAgIG15ICgk
RGF0ZSkgPSBzcHJpbnRmICIlMDRkLSUwMmQtJTAyZFQwMDowMDowMC4wKzAwMDAiLCAkWWVhciwg
JE1vbiwgJERheTsKCiAgICByZXR1cm4gJERhdGU7Cn0KCnN1YiBGaWxsU2VsZWN0IHsKICAgIG15
ICgkU2VsZiwgJEtleSwgJUFydGljbGUpID0gQF87CgogICAgbXkgKCRNb2R1bGUsICRGdW5jdGlv
biwgJFZhbHVlKSA9IHNwbGl0IC8sLywgJEtleTsKCiAgICByZXR1cm4geyB2YWx1ZSA9PiAkVmFs
dWUgfTsKfQoKc3ViIEZpbGxNdWx0aVNlbGVjdCB7CiAgICBteSAoJFNlbGYsICRLZXksICVBcnRp
Y2xlKSA9IEBfOwoKICAgIG15ICgkTW9kdWxlLCAkRnVuY3Rpb24sIEBWYWx1ZXMpID0gc3BsaXQg
LywvLCAkS2V5OwoKICAgIHJldHVybiBbIG1hcCB7ICt7IHZhbHVlID0+ICRfIH0gfUBWYWx1ZXMg
XTsKfQoKMTsK
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiID8+CjxvdHJzX2NvbmZpZyB2ZXJz
aW9uPSIyLjAiIGluaXQ9IkNvbmZpZyI+CiAgICA8U2V0dGluZyBOYW1lPSJGcm9udGVuZDo6TW9k
dWxlIyMjQWdlbnRUaWNrZXRKSVJBIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxE
ZXNjcmlwdGlvbiBMYW5nPSJlbiI+RnJvbnRlbmRNb2R1bGVSZWdpc3RyYXRpb24gZm9yIHRoZSBU
aWNrZXRKSVJBIG1vZHVsZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxEZXNjcmlwdGlvbiBMYW5n
PSJkZSI+RnJvbnRlbmRNb2R1bFJlZ2lzdHJhdGlvbiBmw7xyIGRhcyBUaWNrZXRKSVJBIE1vZHVs
LjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+SklSQVBhY2thZ2U6OkZyb250ZW5k
OjpBZ2VudDo6TW9kdWxlUmVnaXN0cmF0aW9uPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4K
ICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJGcm9udGVuZFJlZ2lzdHJhdGlvbiI+CiAgICAg
ICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwIj4K
ICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8
L0FycmF5PgogICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8
SXRlbSBLZXk9Ikdyb3VwUm8iPgogICAgICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAg
ICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgog
ICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVGl0bGUiPlRpY2tldEpJUkE8L0l0ZW0+CiAg
ICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZXNjcmlwdGlvbiI+VGlja2V0SklSQTwvSXRl
bT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5hdkJhck5hbWUiPlRpY2tldEpJUkE8
L0l0ZW0+CiAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgIDwvSXRlbT4KICAgICAg
ICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRnJvbnRlbmQ6Ok5h
dmlnYXRpb24jIyNBZ2VudFRpY2tldEpJUkEjIyMwMDMtSklSQSIgUmVxdWlyZWQ9IjAiIFZhbGlk
PSIwIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5NYWluIG1lbnUgaXRl
bSByZWdpc3RyYXRpb24uPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5KSVJBUGFj
a2FnZTo6RnJvbnRlbmQ6OkFnZW50OjpNb2R1bGVSZWdpc3RyYXRpb246Ok1haW5NZW51PC9OYXZp
Z2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAg
ICAgPERlZmF1bHRJdGVtIFZhbHVlVHlwZT0iRnJvbnRlbmROYXZpZ2F0aW9uIj4KICAgICAgICAg
ICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAg
ICAgICA8L0RlZmF1bHRJdGVtPgogICAgICAgICAgICA8L0FycmF5PgogICAgICAgIDwvVmFsdWU+
CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJUaWNrZXQ6OkZyb250ZW5kOjpNZW51
TW9kdWxlIyMjOTAwLUpJUkEiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2Ny
aXB0aW9uIExhbmc9ImVuIj5Nb2R1bGUgdG8gc2hvd3MgYSBKSVJBLWxpbmsgaW4gbWVudSBvZiB0
aGUgdGlja2V0IHpvb20uPC9EZXNjcmlwdGlvbj4KICAgICAgICA8RGVzY3JpcHRpb24gTGFuZz0i
ZGUiPk1pdCBkaWVzZW0gTW9kdWwgd2lyZCBkZXIgSklSQS1MaW5rIGluIGRlciBMaW5rbGVpc3Rl
IGRlciBUaWNrZXRhbnNpY2h0IGFuZ2V6ZWlndC48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZp
Z2F0aW9uPkpJUkFQYWNrYWdlOjpGcm9udGVuZDo6QWdlbnQ6OlZpZXc6OlRpY2tldFpvb206Ok1l
bnVNb2R1bGU8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4K
ICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTW9kdWxlIj5LZXJuZWw6Ok91dHB1dDo6SFRNTDo6
VGlja2V0TWVudTo6SklSQTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmFtZSI+
SklSQTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQWN0aW9uIj5BZ2VudFRpY2tl
dEpJUkE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRhcmdldCI+PC9JdGVtPgog
ICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxT
ZXR0aW5nIE5hbWU9IlRpY2tldEpJUkEjIyNVUkwiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAg
ICAgICAgPERlc2NyaXB0aW9uIExhbmc9ImVuIj5UaGUgVVJMIG9mIHRoZSBKSVJBIHNlcnZlciwg
aW5jbHVkZSB0aGUgcHJvdG9jb2wgYW5kIHRoZSBwb3J0IGlmIHJlcXVpcmVkIGEgd2VsbCBhcyB0
aGUgYmFzZSBpZiBhbnkuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8RGVzY3JpcHRpb24gTGFuZz0i
ZGUiPkRpZSBVUkwgZGVzIEpJUkEgU2VydmVycywgaW5rbHVzaXZlIFByb3Rva29sbCBzb3dpZSBQ
b3J0IHVuZCBQZmFkLCBzb2Zlcm4genV0cmVmZmVuZC48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxO
YXZpZ2F0aW9uPkpJUkFQYWNrYWdlOjpDb3JlOjpSRVNUPC9OYXZpZ2F0aW9uPgogICAgICAgIDxW
YWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTdHJpbmciIFZhbHVlUmVnZXg9IiI+
aHR0cDovL2NhdC1wYy0wNTAuY2F0d29ya3guZGU6ODA4MDwvSXRlbT4KICAgICAgICA8L1ZhbHVl
PgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iVGlja2V0SklSQSMjI1BhdGgiIFJl
cXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIExhbmc9ImVuIj5UaGUg
cGF0aCBvZiB0aGUgUkVTVCBBUEkuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8RGVzY3JpcHRpb24g
TGFuZz0iZGUiPkRlciBQZmFkIGRlciBSRVNUIEFQSS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxO
YXZpZ2F0aW9uPkpJUkFQYWNrYWdlOjpDb3JlOjpSRVNUPC9OYXZpZ2F0aW9uPgogICAgICAgIDxW
YWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTdHJpbmciIFZhbHVlUmVnZXg9IiI+
L3Jlc3QvYXBpL2xhdGVzdC88L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4K
ICAgIDxTZXR0aW5nIE5hbWU9IlRpY2tldEpJUkEjIyNVc2VyIiBSZXF1aXJlZD0iMSIgVmFsaWQ9
IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBMYW5nPSJlbiI+VGhlIHVzZXJuYW1lIHRvIHVzZSB3
aGVuIGxvZ2dpbmcgaW4gaW50byBKSVJBIGlzc3Vlcy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxE
ZXNjcmlwdGlvbiBMYW5nPSJkZSI+RGVyIEJlbnV0emVybmFtZSBtaXQgZGVtIHNpY2ggYmVpbSBK
SVJBIGFuZ2VtZWxkZXQgd2lyZC48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkpJ
UkFQYWNrYWdlOjpDb3JlOjpSRVNUPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAg
ICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTdHJpbmciIFZhbHVlUmVnZXg9IiI+b3RyczwvSXRlbT4K
ICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iVGlja2V0
SklSQSMjI1Bhc3N3b3JkIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlw
dGlvbiBMYW5nPSJlbiI+VGhlIHBhc3N3b3JkIHRvIHVzZSB3aGVuIGxvZ2dpbmcgaW4gaW50byBK
SVJBIGlzc3Vlcy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxEZXNjcmlwdGlvbiBMYW5nPSJkZSI+
RGFzIFBhc3N3b3J0IG1pdCBkZW0gc2ljaCBiZWltIEpJUkEgYW5nZW1lbGRldCB3aXJkLjwvRGVz
Y3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+SklSQVBhY2thZ2U6OkNvcmU6OlJFU1Q8L05h
dmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlN0
cmluZyIgVmFsdWVSZWdleD0iIj5vdHJzPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1Nl
dHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJUaWNrZXRKSVJBIyMjUmVwb3J0ZXIiIFJlcXVpcmVk
PSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIExhbmc9ImVuIj5UaGUgbmFtZSBv
ZiB0aGUgcmVwb3J0ZXIgdG8gdXNlIGZvciB0aGUgbmV3IEpJUkEgaXNzdWVzLjwvRGVzY3JpcHRp
b24+CiAgICAgICAgPERlc2NyaXB0aW9uIExhbmc9ImRlIj5EZXIgTmFtZSBkZXMgUmVwb3J0ZXJz
IGbDvHIgbmV1ZSBKSVJBIElzc3Vlcy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9u
PkpJUkFQYWNrYWdlOjpDb3JlOjpSRVNUPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAg
ICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTdHJpbmciIFZhbHVlUmVnZXg9IiI+b3RyczwvSXRl
bT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iVGlj
a2V0SklSQSMjI0Fzc2lnbmVlIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNj
cmlwdGlvbiBMYW5nPSJlbiI+VGhlIG5hbWUgb2YgdGhlIGFzc2lnbmVlIHRvIHVzZSBmb3IgdGhl
IG5ldyBKSVJBIGlzc3Vlcy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxEZXNjcmlwdGlvbiBMYW5n
PSJkZSI+RGVyIE5hbWUgZGVzIEFzc2lnbmVlIGbDvHIgbmV1ZSBKSVJBIElzc3Vlcy48L0Rlc2Ny
aXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkpJUkFQYWNrYWdlOjpDb3JlOjpSRVNUPC9OYXZp
Z2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTdHJp
bmciIFZhbHVlUmVnZXg9IiI+YWRtaW48L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0
dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkpJUkE6Ok5vQXNzaWduZWUiIFJlcXVpcmVkPSIwIiBW
YWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIExhbmc9ImVuIj5JZiBlbmFibGVkLCB0aGUg
YXNzaWduZWUgaXNuJ3Qgc2VudCB0byBKSVJBLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmln
YXRpb24+SklSQVBhY2thZ2U6OkNvcmU6OlJFU1Q8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVl
PgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkNoZWNrYm94Ij4wPC9JdGVtPgogICAgICAg
IDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJUaWNrZXRKSVJBIyMj
SW5jb21pbmdVc2VyIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlv
biBMYW5nPSJlbiI+VGhlIHVzZXJuYW1lIHRoYXQgaXMgdXNlZCB3aGVuIEpJUkEgbG9ncyBpbnRv
IE9UUlMgdG8gdXBkYXRlIHRpY2tldHMuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8RGVzY3JpcHRp
b24gTGFuZz0iZGUiPkRlciBCZW51dHplcm5hbWUgbWl0IGRlbSBzaWNoIEpJUkEgYW0gT1RSUyBh
bm1lbGRldCwgdW0gVGlja2V0cyB6dSBha3R1YWxpc2llcmVuLjwvRGVzY3JpcHRpb24+CiAgICAg
ICAgPE5hdmlnYXRpb24+SklSQVBhY2thZ2U6OkNvcmU6OlJFU1Q8L05hdmlnYXRpb24+CiAgICAg
ICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlN0cmluZyIgVmFsdWVSZWdl
eD0iIj5qaXJhPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0
dGluZyBOYW1lPSJUaWNrZXRKSVJBIyMjV29ya2Zsb3dDbG9zZUFjdGlvbk5hbWUiIFJlcXVpcmVk
PSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIExhbmc9ImVuIj5UaGUgbmFtZSBv
ZiB0aGUgY2xvc2UgaXNzdWUgd29ya2Zsb3cgYWN0aW9uIChkZWZhdWx0OiAiQ2xvc2UgSXNzdWUi
LCBwYXkgYXR0ZW50aW9uIHRvIHRoZSBKSVJBIGxhbmd1YWdlIG9mIHVzZXIgaW4gVGlja2V0SklS
QSMjI1VzZXIsIEVuZ2xpc2goVUspIHdvcmtzKS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxEZXNj
cmlwdGlvbiBMYW5nPSJkZSI+RGVyIE5hbWUgZGVyIEFrdGlvbiB6dW0gU2NobGllw59lbiB2b24g
SXNzdWVzIChTdGFuZGFyZDogIkNsb3NlIElzc3VlIiwgYWNodGVuIFNpZSBhdWYgZGllIEpJUkEg
U3ByYWNoZSBkZXMgQmVudXRlcnMgaW4gVGlja2V0SklSQSMjI1VzZXIsIEVuZ2xpc2goVUspIGlz
dCBlbXBmZWhsZW5zd2VydCkuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5KSVJB
UGFja2FnZTo6Q29yZTo6UkVTVDwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAg
ICAgIDxJdGVtIFZhbHVlVHlwZT0iU3RyaW5nIj5DbG9zZSBJc3N1ZTwvSXRlbT4KICAgICAgICA8
L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iVGlja2V0SklSQSMjI09U
UlNUaWNrZXRBbGxvd2VkU3RhdGVzNENyZWF0ZSIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAg
ICAgICA8RGVzY3JpcHRpb24gTGFuZz0iZW4iPlRoZSBuYW1lcyBvZiB0aGUgT1RSUyBUaWNrZXQg
c3RhdGVzIHRoYXQgYWxsb3cgdGhlIGNyZWF0aW9uIG9mIGEgSklSQSBJc3N1ZS48L0Rlc2NyaXB0
aW9uPgogICAgICAgIDxEZXNjcmlwdGlvbiBMYW5nPSJkZSI+RGllIE5hbWVuIGRlciBPVFJTIFRp
Y2tldCBadXN0w6RuZGUgZGllIGRhcyBFcnpldWdlbiBlaW5lcyBKSVJBIElzc3VlIHp1bGFzc2Vu
LjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+SklSQVBhY2thZ2U6OkNvcmU6OlJF
U1Q8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5
cGU9IlN0cmluZyI+bmV3LG9wZW4sbWVyZ2VkLHBlbmRpbmcgcmVtaW5kZXI8L0l0ZW0+CiAgICAg
ICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IlRpY2tldEpJUkEj
IyNPVFJTVGlja2V0QWxsb3dlZFN0YXRlczRDbG9zZSIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4K
ICAgICAgICA8RGVzY3JpcHRpb24gTGFuZz0iZW4iPlRoZSBuYW1lcyBvZiB0aGUgT1RSUyBUaWNr
ZXQgc3RhdGVzIHRoYXQgYWxsb3cgdGhlIGNsb3Npbmcgb2YgYSBKSVJBIElzc3VlLjwvRGVzY3Jp
cHRpb24+CiAgICAgICAgPERlc2NyaXB0aW9uIExhbmc9ImRlIj5EaWUgTmFtZW4gZGVyIE9UUlMg
VGlja2V0IFp1c3TDpG5kZSBkaWUgZGFzIFNjaGxpZcOfZW4gZWluZXMgSklSQSBJc3N1ZSB6dWxh
c3Nlbi48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkpJUkFQYWNrYWdlOjpDb3Jl
OjpSRVNUPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFs
dWVUeXBlPSJTdHJpbmciPmNsb3NlZCBzdWNjZXNzZnVsLGNsb3NlZCB1bnN1Y2Nlc3NmdWwscmVt
b3ZlZDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcg
TmFtZT0iVGlja2V0SklSQSMjI09UUlNUaWNrZXRBbGxvd2VkU3RhdGVzNFVwZGF0ZSIgUmVxdWly
ZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gTGFuZz0iZW4iPlRoZSBuYW1l
cyBvZiB0aGUgT1RSUyBUaWNrZXQgc3RhdGVzIHRoYXQgYWxsb3cgdXBkYXRpbmcgdGhlIEpJUkEg
SXNzdWUuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8RGVzY3JpcHRpb24gTGFuZz0iZGUiPkRpZSBO
YW1lbiBkZXIgT1RSUyBUaWNrZXQgWnVzdMOkbmRlIGRpZSBkYXMgQWt0dWFsaXNpZXJlbiBlaW5l
cyBKSVJBIElzc3VlIHp1bGFzc2VuLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+
SklSQVBhY2thZ2U6OkNvcmU6OlJFU1Q8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAg
ICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlN0cmluZyI+bmV3LG9wZW4sbWVyZ2VkLHBlbmRpbmcg
cmVtaW5kZXI8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0
aW5nIE5hbWU9IlRpY2tldDo6RXZlbnRNb2R1bGVQb3N0IyMjMDAxLVRpY2tldENsb3NlSklSQSIg
UmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gTGFuZz0iZW4iPlVw
ZGF0ZSBKSVJBIG9uY2UgdGhlIHRpY2tldCBpcyBjbG9zZWQuPC9EZXNjcmlwdGlvbj4KICAgICAg
ICA8RGVzY3JpcHRpb24gTGFuZz0iZGUiPkRhcyBKSVJBIG5hY2ggZGVtIFNjaGxpZcOfZW4gZGVz
IFRpY2tldHMgYWt0dWFsaXNpZXJlbi48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9u
PkpJUkFQYWNrYWdlOjpDb3JlOjpUaWNrZXQ8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgog
ICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTW9kdWxlIj5LZXJu
ZWw6OlN5c3RlbTo6VGlja2V0OjpFdmVudDo6Q2xvc2VKSVJBSXNzdWU8L0l0ZW0+CiAgICAgICAg
ICAgICAgICA8SXRlbSBLZXk9IkV2ZW50Ij5UaWNrZXRTdGF0ZVVwZGF0ZTwvSXRlbT4KICAgICAg
ICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGlu
ZyBOYW1lPSJUaWNrZXQ6OkV2ZW50TW9kdWxlUG9zdCMjIzAwMS1UaWNrZXRDcmVhdGVKSVJBIiBS
ZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBMYW5nPSJlbiI+Q3Jl
YXRlIEpJUkEgSXNzdWUgb25jZSB0aGUgdGlja2V0IGlzIHB1c2hlZCBpbnRvIGEgc3BlY2lmaWMg
c3RhdGUuIFNlZSBUaWNrZXRKSVJBIyMjT1RSU1RpY2tldEFsbG93ZWRTdGF0ZXM0Q3JlYXRlIGZv
ciBkZXRhaWxzLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPERlc2NyaXB0aW9uIExhbmc9ImRlIj5F
cnpldWdlIGRhcyBKSVJBIElzc3VlIHNvYmFsZCBkYXMgT1RSUyBUaWNrZXQgaW4gZWluZW0gYmVz
dGltbXRlbiBadXN0YW5kIGFuZ2Vrb21tZW4gaXN0LiBGw7xyIERldGFpbHMsIHNpZWhlIFRpY2tl
dEpJUkEjIyNPVFJTVGlja2V0QWxsb3dlZFN0YXRlczRDcmVhdGUuPC9EZXNjcmlwdGlvbj4KICAg
ICAgICA8TmF2aWdhdGlvbj5KSVJBUGFja2FnZTo6Q29yZTo6VGlja2V0PC9OYXZpZ2F0aW9uPgog
ICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBL
ZXk9Ik1vZHVsZSI+S2VybmVsOjpTeXN0ZW06OlRpY2tldDo6RXZlbnQ6OkNyZWF0ZUpJUkFJc3N1
ZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRXZlbnQiPlRpY2tldFN0YXRlVXBk
YXRlPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0
dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IlRpY2tldDo6RXZlbnRNb2R1bGVQb3N0IyMjMDAxLVRp
Y2tldEpJUkFVcGRhdGUiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0
aW9uIExhbmc9ImVuIj5VcGRhdGUgSklSQSBvbmNlIHRoZSB0aWNrZXQgdXBkYXRlZCB0aGUgdGl0
bGUgZmllbGQuIER1cGxpY2F0ZSB0aGlzIGVudHJ5IGZvciAqYWxsKiBmaWVsZHMgeW91IHdhbnQg
dG8gc3luYyBpbnRvIEpJUkEuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8RGVzY3JpcHRpb24gTGFu
Zz0iZGUiPkRhcyBKSVJBIGJlaW0gYWt0dWFsaXNpZXJlbiBkZXMgRmVsZGVzICJ0aXRsZSIgZWJl
bmZhbGxzIGFrdHVhbGlzaWVyZW4uIERpZXNlciBFaW50cmFnIG11c3MgZsO8ciAqamVkZXMqIHp1
IMO8YmVydHJhZ2VuZGUgRmVsZCBleHRyYSBhbmdlbGVndCB3ZXJkZW4uPC9EZXNjcmlwdGlvbj4K
ICAgICAgICA8TmF2aWdhdGlvbj5KSVJBUGFja2FnZTo6Q29yZTo6VGlja2V0PC9OYXZpZ2F0aW9u
PgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRl
bSBLZXk9Ik1vZHVsZSI+S2VybmVsOjpTeXN0ZW06OlRpY2tldDo6RXZlbnQ6OlVwZGF0ZUpJUkFJ
c3N1ZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRXZlbnQiPlRpY2tldFRpdGxl
VXBkYXRlfFRpY2tldEN1c3RvbWVyVXBkYXRlfFRpY2tldEZyZWVUZXh0VXBkYXRlfFRpY2tldE93
bmVyVXBkYXRlfFRpY2tldER5bmFtaWNGaWVsZFVwZGF0ZV9maWVsZDAwMXxUaWNrZXREeW5hbWlj
RmllbGRVcGRhdGVfZmllbGQwMDJ8VGlja2V0RHluYW1pY0ZpZWxkVXBkYXRlX2ZpZWxkMDAzfFRp
Y2tldER5bmFtaWNGaWVsZFVwZGF0ZV9maWVsZDAwNHxUaWNrZXREeW5hbWljRmllbGRVcGRhdGVf
ZmllbGQwMDV8VGlja2V0RHluYW1pY0ZpZWxkVXBkYXRlX2ZpZWxkMDEwfFRpY2tldER5bmFtaWNG
aWVsZFVwZGF0ZV9maWVsZDAxMTwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwv
VmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJUaWNrZXQ6OkV2ZW50TW9k
dWxlUG9zdCMjIzAwMS1BcnRpY2xlVG9KSVJBIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAg
ICAgIDxEZXNjcmlwdGlvbiBMYW5nPSJlbiI+Q3JlYXRlIGEgSklSQSBDb21tZW50IG9uY2UgYW4g
YXJ0aWNsZSBpcyBjcmVhdGVkLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPERlc2NyaXB0aW9uIExh
bmc9ImRlIj5FcnpldWdlIGVpbmVuIEpJUkEga29tbWVudGFyIHNvYmFsZCBlaW4gT1RSUyBBcnRp
a2VsIGVyemV1Z3Qgd3VyZGUuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5KSVJB
UGFja2FnZTo6Q29yZTo6VGlja2V0PC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAg
ICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1vZHVsZSI+S2VybmVsOjpT
eXN0ZW06OlRpY2tldDo6RXZlbnQ6OkFkZEFydGljbGVUb0pJUkFJc3N1ZTwvSXRlbT4KICAgICAg
ICAgICAgICAgIDxJdGVtIEtleT0iRXZlbnQiPkFydGljbGVDcmVhdGV8QXJ0aWNsZVVwZGF0ZTwv
SXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+
CiAgICA8U2V0dGluZyBOYW1lPSJUaWNrZXRKSVJBIyMjUHJvamVjdCIgUmVxdWlyZWQ9IjEiIFZh
bGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gTGFuZz0iZW4iPlRoZSBuYW1lIG9mIHRoZSBw
cm9qZWN0IHRvIHVzZSBmb3IgdGhlIG5ldyBKSVJBIGlzc3Vlcy48L0Rlc2NyaXB0aW9uPgogICAg
ICAgIDxEZXNjcmlwdGlvbiBMYW5nPSJkZSI+RGVyIE5hbWUgZGVzIFByb2pla3RlcyBmw7xyIG5l
dWUgSklSQSBJc3N1ZXMuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5KSVJBUGFj
a2FnZTo6Q29yZTo6UkVTVDwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAg
IDxJdGVtIFZhbHVlVHlwZT0iU3RyaW5nIiBWYWx1ZVJlZ2V4PSIiPk9UUlM8L0l0ZW0+CiAgICAg
ICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IlRpY2tldEpJUkEj
IyNJc3N1ZVR5cGUiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9u
IExhbmc9ImVuIj5UaGUgbmFtZSBvZiB0aGUgdHlwZSB0byB1c2UgZm9yIHRoZSBuZXcgSklSQSBp
c3N1ZXMuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8RGVzY3JpcHRpb24gTGFuZz0iZGUiPkRlciBO
YW1lIGRlcyBUeXAgZsO8ciBuZXVlIEpJUkEgSXNzdWVzLjwvRGVzY3JpcHRpb24+CiAgICAgICAg
PE5hdmlnYXRpb24+SklSQVBhY2thZ2U6OkNvcmU6OlJFU1Q8L05hdmlnYXRpb24+CiAgICAgICAg
PFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlN0cmluZyIgVmFsdWVSZWdleD0i
Ij5CdWc8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5n
IE5hbWU9IlRpY2tldEpJUkEjIyNKSVJBLURhdGVUaW1lRm9ybWF0IiBSZXF1aXJlZD0iMSIgVmFs
aWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBMYW5nPSJlbiI+RGF0ZSBmb3JtYXQgdXNlZCBp
biBKSVJBLCBlLmcuOiBKSVJBOiBkZC9NTU0veXkgaDptbSBhID0gT1RSUyAlZC8lYi8leSAlSTol
TSAlcDwvRGVzY3JpcHRpb24+CiAgICAgICAgPERlc2NyaXB0aW9uIExhbmc9ImRlIj5EYXMgdm9u
IEpJUkEgYWt6ZXB0aWVydGUgRGF0dW1zZm9ybWF0LCB6LkIuOiBKSVJBOiBkZC9NTU0veXkgaDpt
bSBhID0gT1RSUyAlZC8lYi8leSAlSTolTSAlcDwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmln
YXRpb24+SklSQVBhY2thZ2U6OkNvcmU6OlJFU1Q8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVl
PgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlN0cmluZyIgVmFsdWVSZWdleD0iIj4lZC8l
Yi8leSAlSTolTSAlcDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAg
PFNldHRpbmcgTmFtZT0iVGlja2V0SklSQSMjI0pJUkEtRGF0ZUZvcm1hdCIgUmVxdWlyZWQ9IjEi
IFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gTGFuZz0iZW4iPkRhdGUgZm9ybWF0IHVz
ZWQgaW4gSklSQSwgZS5nLjogSklSQTogZGQvTU1NL3l5ID0gT1RSUyAlZC8lYi8leTwvRGVzY3Jp
cHRpb24+CiAgICAgICAgPERlc2NyaXB0aW9uIExhbmc9ImRlIj5EYXMgdm9uIEpJUkEgYWt6ZXB0
aWVydGUgRGF0dW1zZm9ybWF0LCB6LkIuOiBKSVJBOiBkZC9NTU0veXkgPSBPVFJTICVkLyViLyV5
PC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5KSVJBUGFja2FnZTo6Q29yZTo6UkVT
VDwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlw
ZT0iU3RyaW5nIiBWYWx1ZVJlZ2V4PSIiPiVkLyViLyV5PC9JdGVtPgogICAgICAgIDwvVmFsdWU+
CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJUaWNrZXRKSVJBIyMjT1RSUy1KSVJB
LUZpZWxkTWFwcGluZyIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRp
b24gTGFuZz0iZW4iPk1hcHBpbmcgZnJvbSBPVFJTIGZpZWxkcyB0byBKSVJBIEZpZWxkcy4gS2V5
OiBPVFJTOyBDb250ZW50OiBKSVJBLiBQcmVmaXhlczogInN0ZDoiID0gc3RhbmRhcmQgZmllbGQ7
ICJkeW46IiA9IE9UUlMgZHluYW1pYyBmaWVsZDsgImN1c3Q6IiA9IEpJUkEgY3VzdG9tIGZpZWxk
OyAiY2FsbDoiID0gT1RSUy9KSVJBIG1hcHBpbmcgY2FsbCB3aXRoIGZ1bGwgUGVybCBtb2R1bGVw
YXRoIFBrZzo6U3ViLGZ1bmMgKGUuZy4gTUlNRTo6QmFzZTY0LGVuY29kZV9iYXNlNjQpLjwvRGVz
Y3JpcHRpb24+CiAgICAgICAgPERlc2NyaXB0aW9uIExhbmc9ImRlIj5BYmJpbGR1bmcgZGVyIE9U
UlMgRmVsZGVybiB6dSBkZW4gSklSQSBGZWxkZXJuLiBTY2hsw7xzc2VsOiBPVFJTOyBJbmhhbHQ6
IEpJUkEuIFByw6RmaXhlOiAic3RkOiIgPSBTdGFuZGFyZCBGZWxkOyAiZHluOiIgPSBPVFJTIER5
bmFtaWMgRmVsZDsgImN1c3Q6IiA9IEpJUkEgQ3VzdG9tIEZlbGQ7ICJjYWxsOiIgPSBPVFJTL0pJ
UkEgTWFwcGluZy1GdW5rdGlvbnNhdWZydWYgbWl0IHZvbGxlbSBQZXJsIE1vZHVsZXBmYWQgUGtn
OjpTdWIsZnVuYyAoei5CLiBNSU1FOjpCYXNlNjQsZW5jb2RlX2Jhc2U2NCkuPC9EZXNjcmlwdGlv
bj4KICAgICAgICA8TmF2aWdhdGlvbj5KSVJBUGFja2FnZTo6Q29yZTo6UkVTVDwvTmF2aWdhdGlv
bj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0
ZW0gS2V5PSJkeW46ZHluYW1pY0ZpZWxkMSI+Y3VzdDpjdXN0b21GaWVsZDE8L0l0ZW0+CiAgICAg
ICAgICAgICAgICA8SXRlbSBLZXk9ImR5bjpqaXJhX3ByaW8iPnN0ZDpwcmlvcml0eTwvSXRlbT4K
ICAgICAgICAgICAgICAgIDxJdGVtIEtleT0ic3RkOlRpdGxlIj5zdGQ6c3VtbWFyeTwvSXRlbT4K
ICAgICAgICAgICAgICAgIDxJdGVtIEtleT0ic3RkOlF1ZXVlIj5jdXN0OnF1ZXVlPC9JdGVtPgog
ICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJtYXA6TW9kOjpTdWJNb2Q6OmZ1bmMiPmN1c3Q6Zmll
bGQxPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJkeW46ZHluYW1pY0ZpZWxkMiI+
bWFwOk1vZDo6U3ViTW9kLGZ1bmMyPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJt
YXA6TW9kOjpTdWJNb2Q6OmZ1bmMzIj5tYXA6TW9kOjpTdWJNb2QsZnVuYzQ8L0l0ZW0+CiAgICAg
ICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRp
bmcgTmFtZT0iSklSQTo6T1RSU1RpY2tldElERmllbGQiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+
CiAgICAgICAgPERlc2NyaXB0aW9uIExhbmc9ImVuIj5UaGUgSUQgb2YgdGhlIGN1c3RvbSBmaWVs
ZCBpbiBKSVJBIHRoYXQgc3RvcmVzIHRoZSBPVFJTIHRpY2tldCBJRC48L0Rlc2NyaXB0aW9uPgog
ICAgICAgIDxEZXNjcmlwdGlvbiBMYW5nPSJkZSI+RGllIElEIGRlcyBGZWxkZXMgaW4gSklSQSwg
ZGFzIGRpZSBPVFJTLVRpY2tldElEIHNwZWljaGVydC48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxO
YXZpZ2F0aW9uPkpJUkFQYWNrYWdlOjpDb3JlOjpSRVNUPC9OYXZpZ2F0aW9uPgogICAgICAgIDxW
YWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTdHJpbmciIFZhbHVlUmVnZXg9Il5c
ZCskIj4xMDAwMDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNl
dHRpbmcgTmFtZT0iSklSQTo6Q2FjaGVUVEwiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAg
ICAgPERlc2NyaXB0aW9uIExhbmc9ImVuIj5UaW1lVG9MaXZlIGZvciBDYWNoZS48L0Rlc2NyaXB0
aW9uPgogICAgICAgIDxEZXNjcmlwdGlvbiBMYW5nPSJkZSI+VGltZVRvTGl2ZSBmw7xyIENhY2hl
PC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5KSVJBUGFja2FnZTo6Q29yZTo6UkVT
VDwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlw
ZT0iU3RyaW5nIiBWYWx1ZVJlZ2V4PSJeXGQrJCI+MjAwMDA8L0l0ZW0+CiAgICAgICAgPC9WYWx1
ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkpJUkE6OlNTTFZlcmlmeSIgUmVx
dWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gTGFuZz0iZW4iPlZlcmlm
eSBob3N0bmFtZSBmb3IgU1NMIGNvbm5lY3Rpb25zLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPERl
c2NyaXB0aW9uIExhbmc9ImRlIj5WZXJpZml6aWVyZSBkZW4gSG9zdG5hbWVuIGJlaSBTU0wtVmVy
YmluZHVuZ2VuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5KSVJBUGFja2FnZTo6
Q29yZTo6UkVTVDwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVt
IFZhbHVlVHlwZT0iQ2hlY2tib3giPjE8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0
dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkpJUkE6OkRlYnVnIiBSZXF1aXJlZD0iMSIgVmFsaWQ9
IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBMYW5nPSJlbiI+RW5hYmxlcyBEZWJ1Z2dpbmcgZm9y
IEpJUkEgcGFja2FnZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxEZXNjcmlwdGlvbiBMYW5nPSJk
ZSI+QWt0aXZpZXJ0IGRhcyBEZWJ1Z2dpbmcgZsO8ciBkYXMgSklSQS1QYWtldDwvRGVzY3JpcHRp
b24+CiAgICAgICAgPE5hdmlnYXRpb24+SklSQVBhY2thZ2U6OkNvcmU8L05hdmlnYXRpb24+CiAg
ICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkNoZWNrYm94Ij4wPC9J
dGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJK
SVJBOjpTaG93RGlhbG9nIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlw
dGlvbiBUcmFuc2xhdGFibGU9IjEiPlNob3cgZGlhbG9nIHdoZW4gaXNzdWUgaW4gSklSQSBpcyBh
Ym91dCB0byBiZSBjcmVhdGVkLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+SklS
QVBhY2thZ2U6OkNvcmU8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8
SXRlbSBWYWx1ZVR5cGU9IkNoZWNrYm94Ij4wPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8
L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJKSVJBOjpUcmFuc2ZlclRpY2tldEhpc3Rvcnki
IFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJs
ZT0iMSI+SWYgc2V0IHRvICdvbmx5IGZpcnN0IGFydGljbGUnLCBvbmx5IHRoZSBmaXJzdCBhcnRp
Y2xlIGlzIHNlbnQgdG8gSklSQSBvbiBpc3N1ZSBjcmVhdGlvbi4gSWYgc2V0IHRvICdhbGwgYXJ0
aWNsZXMnLCBhbGwgZXhpc3RpbmcgYXJ0aWNsZXMgd2lsbCBiZSBzZW50IHRvIEpJUkEuPC9EZXNj
cmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5KSVJBUGFja2FnZTo6Q29yZTwvTmF2aWdhdGlv
bj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU2VsZWN0IiBT
ZWxlY3RlZElEPSIwIj4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBW
YWx1ZT0iMCIgVHJhbnNsYXRhYmxlPSIxIj5vbmx5IGZpcnN0IGFydGljbGU8L0l0ZW0+CiAgICAg
ICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IjEiIFRyYW5zbGF0YWJs
ZT0iMSI+YWxsIGFydGljbGVzPC9JdGVtPgogICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgPC9W
YWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkpJUkE6OlNlbmRSZXBvcnRl
ciIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRh
YmxlPSIxIj5JZiBkaXNhYmxlZCwgbm8gcmVwb3J0ZXIgaXMgc2VudCB0byBKSVJBLjwvRGVzY3Jp
cHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+SklSQVBhY2thZ2U6OkNyZWF0ZUlzc3VlPC9OYXZp
Z2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJDaGVj
a2JveCI+MTwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRp
bmcgTmFtZT0iSklSQTo6U2hvd1Byb2plY3QiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAg
ICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U2hvdyBQcm9qZWN0IGZpZWxkIGluIGNy
ZWF0ZSBkaWFsb2cuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5KSVJBUGFja2Fn
ZTo6Q3JlYXRlSXNzdWU8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8
SXRlbSBWYWx1ZVR5cGU9IlNlbGVjdCIgU2VsZWN0ZWRJRD0iMSI+CiAgICAgICAgICAgICAgICA8
SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9Ii0xIiBUcmFuc2xhdGFibGU9IjEiPkhpZGU8
L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IjAi
IFRyYW5zbGF0YWJsZT0iMSI+UmVhZG9ubHk8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBW
YWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IjEiIFRyYW5zbGF0YWJsZT0iMSI+RWRpdGFibGU8L0l0
ZW0+CiAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgog
ICAgPFNldHRpbmcgTmFtZT0iSklSQTo6U2hvd0Fzc2lnbmVlIiBSZXF1aXJlZD0iMCIgVmFsaWQ9
IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNob3cgQXNzaWduZWUg
ZmllbGQgaW4gY3JlYXRlIGRpYWxvZy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9u
PkpJUkFQYWNrYWdlOjpDcmVhdGVJc3N1ZTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAg
ICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU2VsZWN0IiBTZWxlY3RlZElEPSIwIj4KICAgICAg
ICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iLTEiIFRyYW5zbGF0YWJs
ZT0iMSI+SGlkZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9u
IiBWYWx1ZT0iMCIgVHJhbnNsYXRhYmxlPSIxIj5SZWFkb25seTwvSXRlbT4KICAgICAgICAgICAg
ICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iMSIgVHJhbnNsYXRhYmxlPSIxIj5F
ZGl0YWJsZTwvSXRlbT4KICAgICAgICAgICAgPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8
L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJKSVJBOjpTaG93QXV0b21hdGljVXNlciIgUmVx
dWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIx
Ij5TaG93IGF1dG9tYXRpYyB1c2VyIGluIEFzc2lnbmVlIGZpZWxkIGluIGNyZWF0ZSBkaWFsb2cu
PC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5KSVJBUGFja2FnZTo6Q3JlYXRlSXNz
dWU8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5
cGU9IkNoZWNrYm94Ij4wPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAg
ICA8U2V0dGluZyBOYW1lPSJKSVJBOjpTaG93SXNzdWVUeXBlIiBSZXF1aXJlZD0iMCIgVmFsaWQ9
IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNob3cgaXNzdWUgdHlw
ZSBmaWVsZCBpbiBjcmVhdGUgZGlhbG9nLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRp
b24+SklSQVBhY2thZ2U6OkNyZWF0ZUlzc3VlPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4K
ICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTZWxlY3QiIFNlbGVjdGVkSUQ9IjAiPgogICAg
ICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSItMSIgVHJhbnNsYXRh
YmxlPSIxIj5IaWRlPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRp
b24iIFZhbHVlPSIwIiBUcmFuc2xhdGFibGU9IjEiPlJlYWRvbmx5PC9JdGVtPgogICAgICAgICAg
ICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSIxIiBUcmFuc2xhdGFibGU9IjEi
PkVkaXRhYmxlPC9JdGVtPgogICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAg
IDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZyb250ZW5kOjpNb2R1bGUjIyNBZ2VudFRp
Y2tldEpJUkFEaWFsb2ciIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0
aW9uIExhbmc9ImVuIj5Gcm9udGVuZE1vZHVsZVJlZ2lzdHJhdGlvbiBmb3IgdGhlIFRpY2tldEpJ
UkEgZGlhbG9nIG1vZHVsZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxEZXNjcmlwdGlvbiBMYW5n
PSJkZSI+RnJvbnRlbmRNb2R1bFJlZ2lzdHJhdGlvbiBmw7xyIGRhcyBUaWNrZXRKSVJBLURpYWxv
ZyBNb2R1bC48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkpJUkFQYWNrYWdlOjpG
cm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjwvTmF2aWdhdGlvbj4KICAgICAgICA8
VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iRnJvbnRlbmRSZWdpc3RyYXRpb24i
PgogICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJH
cm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAg
ICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAg
ICAgICAgPEl0ZW0gS2V5PSJHcm91cFJvIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5
PgogICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgIDwv
SXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRpdGxlIj5UaWNrZXRKSVJBPC9J
dGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iPlRpY2tldEpJ
UkE8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYXZCYXJOYW1lIj5UaWNr
ZXRKSVJBPC9JdGVtPgogICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICA8L0l0ZW0+
CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkxvYWRl
cjo6TW9kdWxlOjpBZ2VudFRpY2tldEpJUkFEaWFsb2cjIyMwMDMtSklSQSIgUmVxdWlyZWQ9IjEi
IFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Mb2FkZXIg
bW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9u
PgogICAgICAgIDxOYXZpZ2F0aW9uPkpJUkFQYWNrYWdlOjpGcm9udGVuZDo6QWdlbnQ6Ok1vZHVs
ZVJlZ2lzdHJhdGlvbjo6TG9hZGVyPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAg
ICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkphdmFTY3JpcHQiPgogICAg
ICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+SklS
QS5BdXRvY29tcGxldGUuanM8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAg
ICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+
CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGcm9udGVuZDo6TmF2aWdhdGlvbiMj
I0FnZW50VGlja2V0SklSQURpYWxvZyMjIzAwMy1KSVJBIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjAi
PgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPk1haW4gbWVudSBpdGVtIHJl
Z2lzdHJhdGlvbi48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkpJUkFQYWNrYWdl
OjpGcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjo6TWFpbk1lbnU8L05hdmlnYXRp
b24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICA8
RGVmYXVsdEl0ZW0gVmFsdWVUeXBlPSJGcm9udGVuZE5hdmlnYXRpb24iPgogICAgICAgICAgICAg
ICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgICAg
IDwvRGVmYXVsdEl0ZW0+CiAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgPC9WYWx1ZT4KICAg
IDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZyb250ZW5kOjpPdXRwdXQ6OkZpbHRlckVs
ZW1lbnRQb3N0IyMjT3V0cHV0RmlsdGVyQXJ0aWNsZU1lbnVPVFJTVG9KSVJBTGluayIgUmVxdWly
ZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5B
ZGQgYSBsaW5rIGluIHRoZSBhcnRpY2xlIG1lbnUgdG8gY3JlYXRlIGlzc3VlIGluIEpJUkEgZm9y
IHRoZSBhcnRpY2xlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+SklSQVBhY2th
Z2U6OkZyb250ZW5kOjpCYXNlOjpPdXRwdXRGaWx0ZXI8L05hdmlnYXRpb24+CiAgICAgICAgPFZh
bHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTW9kdWxl
Ij5LZXJuZWw6Ok91dHB1dDo6SFRNTDo6RmlsdGVyRWxlbWVudFBvc3Q6Ok9UUlNUb0pJUkFMaW5r
PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUZW1wbGF0ZXMiPgogICAgICAgICAg
ICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkFnZW50
VGlja2V0Wm9vbSI+MTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAg
ICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAg
PC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSklSQTo6UHJvamVjdFdoaXRlbGlzdCIgUmVx
dWlyZWQ9IjAiIFZhbGlkPSIwIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIx
Ij5IZXJlIHlvdSBjYW4gZGVmaW5lIGEgbGlzdCBvZiByZWd1bGFyIGV4cHJlc3Npb25zLiBPbmx5
IHByb2plY3Qga2V5cyB0aGF0IG1hdGNoZXMgYXQgbGVhc3Qgb25lIG9mIHRob3NlIHJlZ3VsYXIg
ZXhwcmVzc2lvbnMgYXJlIHNob3duIGluIHRoZSBwcm9qZWN0IGRyb3Bkb3duIChKSVJBIGRpYWxv
ZykuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5KSVJBUGFja2FnZTo6Q29yZTo6
UkVTVDwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxBcnJheT4KICAg
ICAgICAgICAgPC9BcnJheT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNl
dHRpbmcgTmFtZT0iSklSQTo6UHJvamVjdEJsYWNrbGlzdCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIw
Ij4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5IZXJlIHlvdSBjYW4gZGVm
aW5lIGEgbGlzdCBvZiByZWd1bGFyIGV4cHJlc3Npb25zLiBQcm9qZWN0IGtleXMgdGhhdCBtYXRj
aGVzIGF0IGxlYXN0IG9uZSBvZiB0aG9zZSByZWd1bGFyIGV4cHJlc3Npb25zIGFyZSBleGNsdWRl
ZCBmcm9tIHRoZSBwcm9qZWN0IGRyb3Bkb3duIChKSVJBIGRpYWxvZykuPC9EZXNjcmlwdGlvbj4K
ICAgICAgICA8TmF2aWdhdGlvbj5KSVJBUGFja2FnZTo6Q29yZTo6UkVTVDwvTmF2aWdhdGlvbj4K
ICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgPC9BcnJheT4K
ICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iSklSQTo6
SXNzdWVTZWFyY2hNYXhSZXN1bHRzIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxE
ZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPk1heGltdW0gbnVtYmVyIG9mIGlzc3VlcyBzaG93
biBpbiB0aGUgYXV0b2NvbXBsZXRlIGRyb3Bkb3duLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5h
dmlnYXRpb24+SklSQVBhY2thZ2U6OkNvcmU6OlJFU1Q8L05hdmlnYXRpb24+CiAgICAgICAgPFZh
bHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlN0cmluZyIgVmFsdWVSZWdleD0iXlxk
KyQiPjMwMDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRp
bmcgTmFtZT0iSklSQTo6SXNzdWVTZWFyY2hTdGF0ZXMiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMCI+
CiAgICAgICAgPERlc2NyaXB0aW9uIExhbmc9ImVuIj5IZXJlIHlvdSBjYW4gZGVmaW5lIGEgbGlz
dCBvZiBzdGF0ZXMgdG8gcmVzdHJpY3QgdGhlIGlzc3VlcyB0aGF0IGFyZSBzZWFyY2hlZCBmb3Iu
PC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5KSVJBUGFja2FnZTo6Q29yZTo6UkVT
VDwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxBcnJheT4KICAgICAg
ICAgICAgPC9BcnJheT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRp
bmcgTmFtZT0iVGlja2V0OjpFdmVudE1vZHVsZVBvc3QjIyMxMDEtU2VuZEF0dGFjaG1lbnRzIiBS
ZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9
IjEiPlNlbmQgYXR0YWNobWVudHMgdG8gSklSQS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZp
Z2F0aW9uPkpJUkFQYWNrYWdlOjpDb3JlOjpUaWNrZXQ8L05hdmlnYXRpb24+CiAgICAgICAgPFZh
bHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTW9kdWxl
Ij5LZXJuZWw6OlN5c3RlbTo6VGlja2V0OjpFdmVudDo6U2VuZEF0dGFjaG1lbnRzVG9KSVJBSXNz
dWU8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkV2ZW50Ij5BdHRhY2htZW50V3Jp
dGU8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0
aW5nPgogICAgPFNldHRpbmcgTmFtZT0iVGlja2V0OjpDdXN0b21Nb2R1bGUjIyMwMDUtQXR0YWNo
bWVudEV2ZW50cyIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24g
VHJhbnNsYXRhYmxlPSIxIj5PdmVycmlkZXMgYW5kIHNvbWUgbWV0aG9kcyB3aXRoIHJlZ2FyZHMg
dG8gYXR0YWNobWVudHMuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5KSVJBUGFj
a2FnZTo6Q29yZTo6VGlja2V0PC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAg
ICAgPEl0ZW0gVmFsdWVUeXBlPSJTdHJpbmciIFZhbHVlUmVnZXg9IiI+S2VybmVsOjpTeXN0ZW06
OlRpY2tldDo6Q3VzdG9tOjpBdHRhY2htZW50RXZlbnRzPC9JdGVtPgogICAgICAgIDwvVmFsdWU+
CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGcm9udGVuZDo6TW9kdWxlIyMjQWRt
aW5KSVJBV2l6YXJkIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlv
biBUcmFuc2xhdGFibGU9IjEiPldpemFyZCBmb3IgYmFzaWMgSklSQSBzZXR0aW5ncy48L0Rlc2Ny
aXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkpJUkFQYWNrYWdlOjpGcm9udGVuZDo6QWRtaW46
Ok1vZHVsZVJlZ2lzdHJhdGlvbjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAg
ICAgIDxJdGVtIFZhbHVlVHlwZT0iRnJvbnRlbmRSZWdpc3RyYXRpb24iPgogICAgICAgICAgICAg
ICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cFJvIj4KICAgICAg
ICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5
PgogICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBL
ZXk9Ikdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPEl0ZW0+YWRtaW48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAg
IDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAg
IDxJdGVtIEtleT0iRGVzY3JpcHRpb24iIFRyYW5zbGF0YWJsZT0iMSI+QmFzaWMgc2V0dGluZ3Mg
Zm9yIEpJUkEuPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVGl0bGUiIFRy
YW5zbGF0YWJsZT0iMSI+SklSQTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9
Ik5hdkJhck5hbWUiPkFkbWluPC9JdGVtPgogICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAg
ICAgICA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5n
IE5hbWU9IkxvYWRlcjo6TW9kdWxlOjpBZG1pbkpJUkFXaXphcmQjIyMwMDMtSklSQSIgUmVxdWly
ZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5M
b2FkZXIgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2Ny
aXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkpJUkFQYWNrYWdlOjpGcm9udGVuZDo6QWRtaW46
Ok1vZHVsZVJlZ2lzdHJhdGlvbjo6TG9hZGVyPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4K
ICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkphdmFTY3JpcHQi
PgogICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0
ZW0+SklSQS5BZG1pbldpemFyZC5qczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0FycmF5
PgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9W
YWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZyb250ZW5kOjpOYXZpZ2F0
aW9uIyMjQWRtaW5KSVJBV2l6YXJkIyMjMDAzLUpJUkEiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMCI+
CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+TWFpbiBtZW51IGl0ZW0gcmVn
aXN0cmF0aW9uLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+SklSQVBhY2thZ2U6
OkZyb250ZW5kOjpBZG1pbjo6TW9kdWxlUmVnaXN0cmF0aW9uOjpNYWluTWVudTwvTmF2aWdhdGlv
bj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgIDxE
ZWZhdWx0SXRlbSBWYWx1ZVR5cGU9IkZyb250ZW5kTmF2aWdhdGlvbiI+CiAgICAgICAgICAgICAg
ICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICAgICAg
PC9EZWZhdWx0SXRlbT4KICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICA8L1ZhbHVlPgogICAg
PC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRnJvbnRlbmQ6Ok5hdmlnYXRpb25Nb2R1bGUj
IyNBZG1pbkpJUkFXaXphcmQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2Ny
aXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+QWRtaW4gYXJlYSBuYXZpZ2F0aW9uIGZvciB0aGUgYWdl
bnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+SklSQVBhY2th
Z2U6OkZyb250ZW5kOjpBZG1pbjo6TW9kdWxlUmVnaXN0cmF0aW9uOjpBZG1pbk92ZXJ2aWV3PC9O
YXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAg
ICAgICA8SXRlbSBLZXk9Ikdyb3VwIj4KICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAg
ICAgICAgICAgICAgICAgICAgIDxJdGVtPmFkbWluPC9JdGVtPgogICAgICAgICAgICAgICAgICAg
IDwvQXJyYXk+CiAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBL
ZXk9Ikdyb3VwUm8iPgogICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAg
ICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0
ZW0gS2V5PSJNb2R1bGUiPktlcm5lbDo6T3V0cHV0OjpIVE1MOjpOYXZCYXI6Ok1vZHVsZUFkbWlu
PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYW1lIiBUcmFuc2xhdGFibGU9IjEi
PkpJUkE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkJsb2NrIj5TeXN0ZW08L0l0
ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIiBUcmFuc2xhdGFibGU9
IjEiPkJhc2ljIHNldHRpbmdzIGZvciBKSVJBLjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVt
IEtleT0iSWNvbkJpZyI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJJY29uU21h
bGwiPjwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1Nl
dHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJKSVJBOjpBcnRpY2xlRm9ybWF0IiBSZXF1aXJlZD0i
MCIgVmFsaWQ9IjAiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkZvcm1h
dCBmb3IgQXJ0aWNsZSBjb250ZW50IHRoYXQgaXMgc2VudCB0byBKSVJBLjwvRGVzY3JpcHRpb24+
CiAgICAgICAgPE5hdmlnYXRpb24+SklSQVBhY2thZ2U6OkNvcmU6OlJFU1Q8L05hdmlnYXRpb24+
CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlRleHRhcmVhIj48
IVtDREFUQVtbJSBEYXRhLkZyb20gJV0gLyBbJSBEYXRhLlRvICVdClslIERhdGEuQm9keSAlXSBd
XT4KICAgICAgICAgICAgPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAg
ICA8U2V0dGluZyBOYW1lPSJGcm9udGVuZDo6TW9kdWxlIyMjQWRtaW5KSVJBUXVldWVTZXR0aW5n
cyIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRh
YmxlPSIxIj5RdWV1ZSBzcGVjaWZpYyBzZXR0aW5ncyBmb3IgZGlhbG9nLjwvRGVzY3JpcHRpb24+
CiAgICAgICAgPE5hdmlnYXRpb24+SklSQVBhY2thZ2U6OkZyb250ZW5kOjpBZG1pbjo6TW9kdWxl
UmVnaXN0cmF0aW9uPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0
ZW0gVmFsdWVUeXBlPSJGcm9udGVuZFJlZ2lzdHJhdGlvbiI+CiAgICAgICAgICAgICAgICA8SGFz
aD4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwUm8iPgogICAgICAgICAgICAg
ICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAg
ICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3Jv
dXAiPgogICAgICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8SXRlbT5hZG1pbjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJh
eT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0g
S2V5PSJEZXNjcmlwdGlvbiIgVHJhbnNsYXRhYmxlPSIxIj5RdWV1ZSBzcGVjaWZpYyBzZXR0aW5n
cyBmb3IgSklSQS48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUaXRsZSIg
VHJhbnNsYXRhYmxlPSIxIj5KSVJBPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtl
eT0iTmF2QmFyTmFtZSI+QWRtaW48L0l0ZW0+CiAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAg
ICAgICAgIDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRp
bmcgTmFtZT0iRnJvbnRlbmQ6Ok5hdmlnYXRpb24jIyNBZG1pbkpJUkFRdWV1ZVNldHRpbmdzIyMj
MDAzLUpJUkEiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMCI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRy
YW5zbGF0YWJsZT0iMSI+TWFpbiBtZW51IGl0ZW0gcmVnaXN0cmF0aW9uLjwvRGVzY3JpcHRpb24+
CiAgICAgICAgPE5hdmlnYXRpb24+SklSQVBhY2thZ2U6OkZyb250ZW5kOjpBZG1pbjo6TW9kdWxl
UmVnaXN0cmF0aW9uOjpNYWluTWVudTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAg
ICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgIDxEZWZhdWx0SXRlbSBWYWx1ZVR5cGU9IkZy
b250ZW5kTmF2aWdhdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAg
ICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICAgICAgPC9EZWZhdWx0SXRlbT4KICAgICAgICAg
ICAgPC9BcnJheT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcg
TmFtZT0iRnJvbnRlbmQ6Ok5hdmlnYXRpb25Nb2R1bGUjIyNBZG1pbkpJUkFRdWV1ZVNldHRpbmdz
IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFi
bGU9IjEiPkFkbWluIGFyZWEgbmF2aWdhdGlvbiBmb3IgdGhlIGFnZW50IGludGVyZmFjZS48L0Rl
c2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkpJUkFQYWNrYWdlOjpGcm9udGVuZDo6QWRt
aW46Ok1vZHVsZVJlZ2lzdHJhdGlvbjo6QWRtaW5PdmVydmlldzwvTmF2aWdhdGlvbj4KICAgICAg
ICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJH
cm91cCI+CiAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAg
ICA8SXRlbT5hZG1pbjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAg
ICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cFJvIj4KICAg
ICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAg
ICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTW9kdWxlIj5L
ZXJuZWw6Ok91dHB1dDo6SFRNTDo6TmF2QmFyOjpNb2R1bGVBZG1pbjwvSXRlbT4KICAgICAgICAg
ICAgICAgIDxJdGVtIEtleT0iTmFtZSIgVHJhbnNsYXRhYmxlPSIxIj5RdWV1ZSBzZXR0aW5ncyBm
b3IgSklSQTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQmxvY2siPlN5c3RlbTwv
SXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iIFRyYW5zbGF0YWJs
ZT0iMSI+UXVldWUgc3BlY2lmaWMgc2V0dGluZ3MgZm9yIEpJUkEuPC9JdGVtPgogICAgICAgICAg
ICAgICAgPEl0ZW0gS2V5PSJJY29uQmlnIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBL
ZXk9Ikljb25TbWFsbCI+PC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1
ZT4KICAgIDwvU2V0dGluZz4KCjwvb3Ryc19jb25maWc+Cg==
IyAgLS0KIyAgS2VybmVsL0xhbmd1YWdlL2RlX0FnZW50VGlja2V0SklSQS5wbSAtIGxhbmd1YWdl
IG1vZHVsZQojICBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxNSBjYXRXb3JrWCBHbWJIIGh0dHA6Ly93
d3cuY2F0d29ya3guZGUKIyAgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVM
WSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJ
TkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2Vp
dmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0Lgoj
IC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OmRlX0FnZW50VGlja2V0SklSQTsKCnVzZSBz
dHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7CgpzdWIgRGF0YSB7CiAgICBteSAkU2VsZiA9
IHNoaWZ0OwoKICAgIG15ICRMYW5nID0gJFNlbGYtPntUcmFuc2xhdGlvbn07CgogICAgJExhbmct
PnsnQSBuZXcgSklSQSBJc3N1ZSBoYXMgYmVlbiBjcmVhdGVkJ30gPSAnRWluIG5ldWVzIEpJUkEg
SXNzdWUgd3VyZGUgZXJzdGVsbHQnOwogICAgJExhbmctPnsnQSBKSVJBIElzc3VlIGNvdWxkIG5v
dCBiZSBjcmVhdGVkJ30gPSAnRWluIEpJUkEgSXNzdWUga29ubnRlIG5pY2h0IGVyc3RlbGx0IHdl
cmRlbic7CiAgICAkTGFuZy0+eydUbyB0aGUgaXNzdWUgKEpJUkEpJ30gICAgICAgICAgICAgICA9
ICdadW0gSklSQSBJc3N1ZSc7CiAgICAkTGFuZy0+eydCYWNrIHRvIHRoZSB0aWNrZXQgKE9UUlMp
J30gICAgICAgICA9ICdadXLDvGNrIHp1bSBPVFJTIFRpY2tldCc7CiAgICAkTGFuZy0+eydUaWNr
ZXQgbm90IG9wZW4uJ30gICAgICAgICAgICAgICAgICA9ICdUaWNrZXQgbmljaHQgaW0gb2ZmZW5l
biBadXN0YW5kLic7CiAgICAkTGFuZy0+eydKSVJBIHRvIE9UUlMnfSAgICAgICAgICAgICAgICAg
ICAgICA9ICdKSVJBIG5hY2ggT1RSUyc7CiAgICAkTGFuZy0+eydUYWtlIHRoaXMgdGlja2V0IGJh
Y2sgZnJvbSBKSVJBJ30gICA9ICdEaWVzZXMgVGlja2V0IGF1cyBKSVJBIHp1csO8Y2tob2xlbic7
CiAgICAkTGFuZy0+eydPVFJTIHRvIEpJUkEnfSAgICAgICAgICAgICAgICAgICAgICA9ICdPVFJT
IG5hY2ggSklSQSc7CiAgICAkTGFuZy0+eydFc2NhbGF0ZSB0aGlzIHRpY2tldCB0byBKSVJBJ30g
ICAgICA9ICdEaWVzZXMgVGlja2V0IG5hY2ggSklSQSBlc2thbGllcmVuJzsKICAgICRMYW5nLT57
J0NyZWF0ZSBpc3N1ZSBpbiBKSVJBJ30gICAgICAgICAgICAgID0gJ1ZvcmdhbmcgaW4gSklSQSBl
cnN0ZWxsZW4nOwogICAgJExhbmctPnsnUHJvamVjdCd9ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPSAnUHJvamVrdCc7CiAgICAkTGFuZy0+eydBc3NpZ25lZSd9ICAgICAgICAgICAgICAgICAg
ICAgICAgICA9ICdCZWFyYmVpdGVyJzsKICAgICRMYW5nLT57J0lzc3VlVHlwZSd9ICAgICAgICAg
ICAgICAgICAgICAgICAgID0gJ1ZvcmdhbmdzdHlwJzsKICAgICRMYW5nLT57J0lzc3VlJ30gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgID0gJ1ZvcmdhbmcnOwogICAgJExhbmctPnsnQ3JlYXRl
IG5ldyBpc3N1ZSd9ICAgICAgICAgICAgICAgICAgPSAnTmV1ZW4gVm9yZ2FuZyBlcnN0ZWxsZW4n
OwogICAgJExhbmctPnsnTGluayB3aXRoIEpJUkEgaXNzdWUnfSAgICAgICAgICAgICAgPSAnTWl0
IEpJUkEtVm9yZ2FuZyB2ZXJrbsO8cGZlbic7CiAgICAkTGFuZy0+eydMaW5rIHdpdGggZXhpc3Rp
bmcgaXNzdWUnfSAgICAgICAgICA9ICdNaXQgYmVzdGVoZW5kZW0gVm9yZ2FuZyB2ZXJrbsO8cGZl
bic7CiAgICAkTGFuZy0+e0VkaXRhYmxlfSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9ICfD
hG5kZXJiYXInOwogICAgJExhbmctPntIaWRlfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPSAnQXVzYmxlbmRlbic7CiAgICAkTGFuZy0+e1JlYWRvbmx5fSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9ICdOdXIgQW56ZWlnZSc7CiAgICAKICAgICRMYW5nLT57J2FsbCBhcnRpY2xl
cyd9ID0gJ0FsbGUgQXJ0aWtlbCc7CiAgICAkTGFuZy0+eydvbmx5IGZpcnN0IGFydGljbGUnfSA9
ICdOdXIgZXJzdGVyIEFydGlrZWwnOwoKICAgICRMYW5nLT57J0dvIHRvIEFkbWluIGFyZWEnfSA9
ICdHZWhlIHp1bSBBZG1pbmJlcmVpY2gnOwogICAgJExhbmctPnsnQ29uZmlndXJhdGlvbiBkb25l
J30gPSAnS29uZmlndXJhdGlvbiBlcmxlZGlndCc7CiAgICAkTGFuZy0+eydOZXh0J30gPSAnV2Vp
dGVyJzsKICAgICRMYW5nLT57J09UUlMgVGlja2V0IEZpZWxkJ30gPSAnT1RSUyBUaWNrZXRmZWxk
JzsKICAgICRMYW5nLT57J0pJUkEgRmllbGQnfSA9ICdKSVJBIEZlbGQnOwogICAgJExhbmctPnsn
SklSQSBTZXR0aW5ncyd9ID0gJ0pJUkEgRWluc3RlbGx1bmdlbic7CiAgICAkTGFuZy0+eydKSVJB
IGNvcmUgc2V0dGluZ3MnfSA9ICdKSVJBIEdydW5kZWluc3RlbGx1bmdlbic7CiAgICAkTGFuZy0+
eydJc3N1ZSBTZXR0aW5ncyd9ID0gJ0VpbnN0ZWxsdW5nZW4gSklSQSBWb3JmYWxsJzsKICAgICRM
YW5nLT57J0lzc3VlIHNldHRpbmdzJ30gPSAnRWluc3RlbGx1bmdlbiBKSVJBIFZvcmZhbGwnOwog
ICAgJExhbmctPnsnRmllbGRtYXBwaW5nJ30gID0gJ0ZlbGR6dW9yZG51bmcnOwoKICAgICRMYW5n
LT57J0pJUkEgVVJMJ30gPSAnSklSQSBVUkwnOwogICAgJExhbmctPnsnQVBJIFBhdGgnfSA9ICdB
UEkgUGZhZCc7CiAgICAkTGFuZy0+eydVc2VyJ30gICAgID0gJ0JlbnV0emVyJzsKICAgICRMYW5n
LT57J0pJUkEgdXNlciBPVFJTIHVzZXMgZm9yIEFQSSBjYWxscyd9ID0gJ0pJUkEtQmVudXR6ZXIs
IGRlbiBPVFJTIGbDvHIgZGllIEFQSS1BdWZydWZlIGJlbnV0enQnOwogICAgJExhbmctPntQYXNz
d29yZH0gPSAnUGFzc3dvcnQnOwogICAgJExhbmctPnsnSW5jb21pbmcgVXNlcid9ID0gJ0Vpbmdl
aGVuZGVyIEJlbnV0emVyJzsKICAgICRMYW5nLT57J09UUlMgdXNlciBKSVJBIHVzZXMgdG8gY2Fs
bCBPVFJTIFdlYnNlcnZpY2UnfSA9ICdPVFJTLUJlbnV0emVyLCBkZW4gSklSQSBmw7xyIGRpZSBP
VFJTLVdlYnNlcnZpY2VzIGJlbnV0enQnOwogICAgJExhbmctPnsnVXNlIERpYWxvZyd9ID0gJ051
dHplIGRlbiBEaWFsb2cnOwogICAgJExhbmctPnsnV2hlbiB1c2luZyB0aGUgZGlhbG9nLCB5b3Ug
Y2FuIGVkaXQgc29tZSBzZXR0aW5ncyBmb3IgdGhlIGlzc3VlIChlLmcuIHByb2plY3QsIGFzc2ln
bmVlLi4uKSd9ID0KICAgICAgICAnV2VubiBkZXIgRGlhbG9nIHZlcndlbmRldCB3aXJkLCBrw7Zu
bmVuIGVpbmlnZSBFaW5zdGVsbHVuZ2VuIGbDvHIgZGVuIFZvcmZhbGwgKHouQi4gUHJvamVrdCwg
QmVzaXR6ZXIsIC4uLikgZ2XDpG5kZXJ0IHdlcmRlbi4nOwogICAgJExhbmctPnsnU2hvdyBBc3Np
Z25lZSAoZGlhbG9nKSd9ID0gJ1plaWdlIEJlc2l0emVyIChpbSBEaWFsb2cpJzsKICAgICRMYW5n
LT57J1Nob3cgIkF1dG9tYXRpYyIgdXNlciAoZGlhbG9nKSd9ID0gJ1N0ZWxsZSBkZW4gImF1dG9t
YXRpc2NoZW4iIEJlbnV0emVyIHp1ciBBdXN3YWhsJzsKICAgICRMYW5nLT57J1Nob3cgSXNzdWVU
eXBlIChkaWFsb2cpJ30gPSAnWmVpZ2UgVm9yZmFsbHN0eXAgKGltIERpYWxvZyknOwogICAgJExh
bmctPnsnU2hvdyBQcm9qZWN0IChkaWFsb2cpJ30gPSAnWmVpZ2UgUHJvamVrdCAoaW0gRGlhbG9n
KSc7CiAgICAkTGFuZy0+eydQcm9qZWN0J30gPSAnUHJvamVrdCc7CiAgICAkTGFuZy0+eydJc3N1
ZSBUeXBlJ30gPSAnVm9yZmFsbHN0eXAnOwogICAgJExhbmctPnsnUmVwb3J0ZXInfSA9ICdSZXBv
cnRlcic7CiAgICAkTGFuZy0+eydEbyBub3Qgc2V0IEFzc2lnbmVlJ30gPSAnU2V0emUgbmljaHQg
ZGVuIEJlc2l0emVyJzsKICAgICRMYW5nLT57J0Fzc2lnbmVlJ30gPSAnQmVzaXR6ZXInOwogICAg
JExhbmctPnsnRHluYW1pYyBGaWVsZCd9ID0gJ0R5bmFtaXNjaGVzIEZlbGQnOwoKICAgICRMYW5n
LT57J1RoZXNlIGluZm9ybWF0aW9uIGFyZSB0cmFuc2ZlcnJlZCBhdXRvbWF0aWNhbGx5Oid9ID0g
J0RpZXNlIEluZm9ybWF0aW9uZW4gd2VyZGVuIGF1dG9tYXRpc2NoIMO8YmVydHJhZ2VuJzsKICAg
ICRMYW5nLT57J1Byb2plY3QgKHN0YW5kYXJkIHZhbHVlIGZyb20gU3lzQ29uZmlnIG9yIHNlbGVj
dGVkIHByb2plY3QpJ30gPSAnUHJvamVrdCAoU3RhbmRhcmR3ZXJ0IGF1cyBkZXIgU3lzQ29uZmln
IG9kZXIgYXVzZ2V3w6RobHRlcyBQcm9qZWt0KSc7CiAgICAkTGFuZy0+eydJc3N1ZXR5cGUgKHN0
YW5kYXJkIHZhbHVlIGZyb20gU3lzQ29uZmlnIG9yIHNlbGVjdGVkIGlzc3VldHlwZSknfSA9ICdW
b3JnYW5nc3R5cCAoU3RhbmRhcmR3ZXJ0IGF1cyBkZXIgU3lzQ29uZmlnIG9kZXIgYXVzZ2V3w6Ro
bHRlciBWb3JnYW5nc3R5cCknOwogICAgJExhbmctPnsnU3VtbWFyeSAodGlja2V0IHRpdGxlKSd9
ID0gJ1p1c2FtbWVuZmFzc3VuZyAoVGlja2V0LVRpdGxlKSc7CiAgICAkTGFuZy0+eydEZXNjcmlw
dGlvbiAoYXJ0aWNsZSBib2R5KSd9ID0gJ0Jlc2NocmVpYnVuZyAoQXJ0aWtlbHRleHQpJzsKICAg
ICRMYW5nLT57J1JlcG9ydGVyIChzdGFuZGFyZCB2YWx1ZSBmcm9tIFN5c0NvbmZpZyBvciBzZWxl
Y3RlZCByZXBvcnRlciknfSA9ICdSZXBvcnRlciAoU3RhbmRhcmR3ZXJ0IGF1cyBkZXIgU3lzQ29u
ZmlnIG9kZXIgYXVzZ2V3w6RobHRlciBSZXBvcnRlciknOwogICAgJExhbmctPnsnQXNzaWduZWUg
KHN0YW5kYXJkIHZhbHVlIGZyb20gU3lzQ29uZmlnIG9yIHNlbGVjdGVkIGFzc2lnbmVlKSd9ID0g
J1p1Z2V3aWVzZW5lIFBlcnNvbiAoU3RhbmRhcmR3ZXJ0IGF1cyBkZXIgU3lzQ29uZmlnIG9kZXIg
YXVzZ2V3w6RobHRlIFBlcnNvbiknOwogICAgJExhbmctPnsnT1RSU1RpY2tldElEIGN1c3RvbWZp
ZWxkICh0aWNrZXQgaWQpJ30gPSAnQmVudXR6ZXJkZWZpbmllcnRlcyBGZWxkIE9UUlNUaWNrZXRJ
RCAoVGlja2V0LUlEKSc7CiAgICAkTGFuZy0+eydUaGlzIG1hcHBpbmcgZGVmaW5lcyB3aGljaCBp
bmZvcm1hdGlvbiBhcmUgdHJhbnNmZXJyZWQgZnJvbSBPVFJTIHRvIEpJUkEuIE9uIHRoZSBsZWZ0
IHlvdSBzZWUgYWxsIHRoZSBhdmFpbGFibGUgaW5mb3JtYXRpb24gaW4gT1RSUyBhbmQgb24gdGhl
IHJpZ2h0IHlvdSBzZWUgdGhlIGZpZWxkcyBpbiBKSVJBLiBQbGVhc2Uga2VlcCBpbiBtaW5kLCB0
aGF0IHRoZSB0eXBlIG9mIHRoZSBmaWVsZHMgc2hvdWxkIG1hdGNoIChkYXRlL3RpbWUgaW5mb3Jt
YXRpb24gaW4gT1RSUyBuZWVkIHRvIGJlIHN0b3JlZCBpbiBhIGRhdGUvdGltZSBmaWVsZCBpbiBK
SVJBKSd9ID0gJ0RpZSBGZWxkenVvcmRudW5nIGJlc3RpbW10LCB3ZWxjaGUgSW5mb3JtYXRpb25l
biBhdXMgZGVtIE9UUlMgbmFjaCBKSVJBIMO8YmVydHJhZ2VuIHdlcmRlbi4gQXVmIGRlciBsaW5r
ZW4gU2VpdGUgc2VoZW4gU2llIGFsbGUgSW5mb3JtYXRpb25lbiBkaWUgaW0gT1RSUyB6dXIgVmVy
ZsO8Z3VuZyBzdGVoZW4sIGF1ZiBkZXIgcmVjaHRlbiBTaWV0ZSBkaWUgRmVsZGVyIGluIEpJUkEu
IEJpdHRlIGJlYWNodGVuIFNpZSwgZGFzcyBkaWUgRmVsZHR5cGVuIHp1ZWluYW5kZXIgcGFzc2Vu
IHNvbGx0ZW4gKERhdHVtL1plaXQtSW5mb3JtYXRpb25lbiBpbiBPVFJTIGJlbsO2dGlnZW4gZWlu
IERhdHVtL1plaXQtRmVsZCBpbiBKSVJBKSc7CgogICAgJExhbmctPnsnU2VuZCBSZXBvcnRlcid9
ID0gJ1NldHplIGRlbiBSZXBvcnRlcic7CgogICAgcmV0dXJuIDE7Cn0KMTsK
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==
IyAtLQojIENvcHlyaWdodCAoQykgMjAxNyBQZXJsLVNlcnZpY2VzLmRlLCBodHRwOi8vd3d3LnBl
cmwtc2VydmljZXMuZGUKIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZ
IE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlO
RyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2
ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMg
LS0KCnBhY2thZ2UgS2VybmVsOjpNb2R1bGVzOjpBZG1pbkpJUkFRdWV1ZVNldHRpbmdzOwoKdXNl
IHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSBxdygKICAg
IEtlcm5lbDo6Q29uZmlnCiAgICBLZXJuZWw6OlN5c3RlbTo6U3lzQ29uZmlnCiAgICBLZXJuZWw6
OlN5c3RlbTo6UXVldWUKICAgIEtlcm5lbDo6U3lzdGVtOjpWYWxpZAogICAgS2VybmVsOjpPdXRw
dXQ6OkhUTUw6OkxheW91dAogICAgS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdAogICAgS2Vy
bmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZAogICAgS2VybmVsOjpTeXN0ZW06OkpJUkE6OlF1ZXVl
U2V0dGluZ3MKKTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAg
ICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0geyVQYXJhbX07
CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgJFNlbGYtPntVc2VySUR9ID0gJFBhcmFt
e1VzZXJJRH07CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYs
ICVQYXJhbSApID0gQF87CgogICAgbXkgJExheW91dE9iamVjdCAgICAgPSAkS2VybmVsOjpPTS0+
R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CiAgICBteSAkUGFyYW1PYmplY3Qg
ICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKTsK
ICAgIG15ICRTeXNDb25maWdPYmplY3QgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0
ZW06OlN5c0NvbmZpZycpOwogICAgbXkgJFNldHRpbmdzT2JqZWN0ICAgPSAkS2VybmVsOjpPTS0+
R2V0KCdLZXJuZWw6OlN5c3RlbTo6SklSQTo6UXVldWVTZXR0aW5ncycpOwogICAgbXkgJENvbmZp
Z09iamVjdCAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwogICAgbXkg
JEpJUkEgICAgICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SklS
QTo6VXRpbHMnKTsKCiAgICBteSAlR2V0UGFyYW07CiAgICBmb3IgbXkgJFBhcmFtICggcXcvUHJv
amVjdElEIEFzc2lnbmVlIFF1ZXVlSUQgSUQgVmFsaWRJRC8gKSB7CiAgICAgICAgJEdldFBhcmFt
eyRQYXJhbX0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkUGFyYW0gKTsKICAg
IH0KCiAgICBteSAlQWxsU2V0dGluZ3MgPSAkU2V0dGluZ3NPYmplY3QtPlNldHRpbmdzTGlzdCgp
OwogICAgbXkgJFBhZ2VPdXRwdXQ7CgogICAgJFNlbGYtPntTdWJhY3Rpb259IC8vPSAnJzsKCiAg
ICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLSAjCiAgICAjIHVwZGF0ZSBhY3Rpb24KICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGlmICggJFNlbGYt
PntTdWJhY3Rpb259IGVxICdTYXZlJyApIHsKCiAgICAgICAgIyBjaGFsbGVuZ2UgdG9rZW4gY2hl
Y2sgZm9yIHdyaXRlIGFjdGlvbgogICAgICAgICRMYXlvdXRPYmplY3QtPkNoYWxsZW5nZVRva2Vu
Q2hlY2soKTsKCiAgICAgICAgIyBzZXJ2ZXIgc2lkZSB2YWxpZGF0aW9uCiAgICAgICAgbXkgJUVy
cm9yczsKICAgICAgICBpZiAoICEkU2VsZi0+X0NoZWNrUXVldWUoICVHZXRQYXJhbSApICkgewog
ICAgICAgICAgICAlRXJyb3JzID0gKCBRdWV1ZUludmFsaWQgPT4gJ1NlcnZlckVycm9yJyApOwog
ICAgICAgIH0KCiAgICAgICAgaWYgKCAlRXJyb3JzICkgewogICAgICAgICAgICAkU2VsZi0+e1N1
YmFjdGlvbn0gPSAnRWRpdCc7CgogICAgICAgICAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVj
dC0+SGVhZGVyKCk7CiAgICAgICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdh
dGlvbkJhcigpOwogICAgICAgICAgICAkT3V0cHV0IC49ICRTZWxmLT5fTWFzaygKICAgICAgICAg
ICAgICAgICVHZXRQYXJhbSwKICAgICAgICAgICAgICAgICVFcnJvcnMsCiAgICAgICAgICAgICk7
CiAgICAgICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CgogICAgICAg
ICAgICByZXR1cm4gJE91dHB1dDsKICAgICAgICB9CgogICAgICAgIG15ICRNZXRob2QgPSAnU2V0
dGluZ3NBZGQnOwogICAgICAgIGlmICggJEFsbFNldHRpbmdzeyAkR2V0UGFyYW17SUR9IH0gKSB7
CiAgICAgICAgICAgICRNZXRob2QgPSAnU2V0dGluZ3NVcGRhdGUnOwogICAgICAgIH0KCiAgICAg
ICAgJFNldHRpbmdzT2JqZWN0LT4kTWV0aG9kKAogICAgICAgICAgICAlR2V0UGFyYW0sCiAgICAg
ICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgKTsKCiAgICAgICAgcmV0
dXJuICRMYXlvdXRPYmplY3QtPlJlZGlyZWN0KAogICAgICAgICAgICBPUCA9PiAnQWN0aW9uPUFk
bWluSklSQVF1ZXVlU2V0dGluZ3MnLAogICAgICAgICk7CiAgICB9CgogICAgZWxzaWYgKCAkU2Vs
Zi0+e1N1YmFjdGlvbn0gZXEgJ0FKQVhVcGRhdGUnICkgewogICAgICAgIG15ICRVc2VycyAgID0g
e307CiAgICAgICAgbXkgJFByb2plY3QgPSAkR2V0UGFyYW17UHJvamVjdElEfTsKCiAgICAgICAg
aWYgKCAkUHJvamVjdCApIHsKICAgICAgICAgICAgJFVzZXJzID0gJEpJUkEtPlVzZXJzR2V0KCBQ
cm9qZWN0ID0+ICRQcm9qZWN0ICk7CiAgICAgICAgfQoKICAgICAgICBteSAkSlNPTiA9ICRMYXlv
dXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uSlNPTigKICAgICAgICAgICAgWwogICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICA9PiAnQXNzaWduZWUnLAogICAg
ICAgICAgICAgICAgICAgIERhdGEgICAgICAgICA9PiAkVXNlcnMsCiAgICAgICAgICAgICAgICAg
ICAgU2VsZWN0ZWRJRCAgID0+ICRHZXRQYXJhbXtBc3NpZ25lZX0sCiAgICAgICAgICAgICAgICAg
ICAgVHJhbnNsYXRpb24gID0+IDAsCiAgICAgICAgICAgICAgICAgICAgUG9zc2libGVOb25lID0+
IDEsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICBdLAogICAgICAgICk7CgogICAgICAg
IHJldHVybiAkTGF5b3V0T2JqZWN0LT5BdHRhY2htZW50KAogICAgICAgICAgICBDb250ZW50VHlw
ZSA9PiAnYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD0nIC4gJExheW91dE9iamVjdC0+e0NoYXJz
ZXR9LAogICAgICAgICAgICBDb250ZW50ICAgICA9PiAkSlNPTiwKICAgICAgICAgICAgVHlwZSAg
ICAgICAgPT4gJ2lubGluZScsCiAgICAgICAgICAgIE5vQ2FjaGUgICAgID0+IDEsCiAgICAgICAg
KTsKICAgIH0KCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnRGVsZXRlJyApIHsK
CiAgICAgICAgIyBjaGFsbGVuZ2UgdG9rZW4gY2hlY2sgZm9yIHdyaXRlIGFjdGlvbgogICAgICAg
ICRMYXlvdXRPYmplY3QtPkNoYWxsZW5nZVRva2VuQ2hlY2soKTsKCiAgICAgICAgJFNldHRpbmdz
T2JqZWN0LT5TZXR0aW5nc0RlbGV0ZSggUXVldWVJRCA9PiAkR2V0UGFyYW17UXVldWVJRH0gKTsK
CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPlJlZGlyZWN0KAogICAgICAgICAgICBPUCA9
PiAnQWN0aW9uPUFkbWluSklSQVF1ZXVlU2V0dGluZ3MnLAogICAgICAgICk7CiAgICB9CgogICAg
IyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0gIwogICAgIyBBZGQvRWRpdCBtYXNrCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNpZiAoICRTZWxm
LT57U3ViYWN0aW9ufSBlcSAnRWRpdCcgKSB7CiAgICAgICAgJFBhZ2VPdXRwdXQgPSAkU2VsZi0+
X01hc2soICVHZXRQYXJhbSApOwogICAgfQoKICAgICRQYWdlT3V0cHV0IC8vPSAkU2VsZi0+X092
ZXJ2aWV3KCBBbGxTZXR0aW5ncyA9PiBcJUFsbFNldHRpbmdzICk7CgogICAgbXkgJE91dHB1dCA9
ICRMYXlvdXRPYmplY3QtPkhlYWRlcigpOwogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5O
YXZpZ2F0aW9uQmFyKCk7CiAgICAkT3V0cHV0IC49ICRQYWdlT3V0cHV0OwogICAgJE91dHB1dCAu
PSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKICAgIHJldHVybiAkT3V0cHV0Owp9CgpzdWIgX0No
ZWNrUXVldWUgewogICAgbXkgKCRTZWxmLCAlUGFyYW0pID0gQF87CgogICAgbXkgJFNldHRpbmdz
T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkpJUkE6OlF1ZXVlU2V0
dGluZ3MnKTsKCiAgICByZXR1cm4gaWYgISRQYXJhbXtRdWV1ZUlEfTsKICAgIHJldHVybiAxIGlm
ICRQYXJhbXtJRH0gJiYgJFBhcmFte0lEfSA9PSAkUGFyYW17UXVldWVJRH07CgogICAgbXkgJVNl
dHRpbmdzID0gJFNldHRpbmdzT2JqZWN0LT5TZXR0aW5nc0dldCggUXVldWVJRCA9PiAkUGFyYW17
UXVldWVJRH0gKTsKICAgIHJldHVybiAxIGlmICElU2V0dGluZ3M7Cn0KCnN1YiBfT3ZlcnZpZXcg
ewogICAgbXkgKCRTZWxmLCAlUGFyYW0pID0gQF87CgogICAgbXkgJExheW91dE9iamVjdCAgID0g
JEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwogICAgbXkg
JFNldHRpbmdzT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkpJUkE6
OlF1ZXVlU2V0dGluZ3MnKTsKICAgIG15ICRKSVJBICAgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5H
ZXQoJ0tlcm5lbDo6U3lzdGVtOjpKSVJBOjpVdGlscycpOwoKICAgICRMYXlvdXRPYmplY3QtPkJs
b2NrKCBOYW1lID0+ICdBZGRBY3Rpb24nICk7CiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jayggTmFt
ZSA9PiAnU2V0dGluZ3NPdmVydmlldycgKTsKCiAgICBteSAlQWxsU2V0dGluZ3MgID0gJXsgJFBh
cmFte0FsbFNldHRpbmdzfSB8fCB7fSB9OwogICAgbXkgJEpJUkFQcm9qZWN0cyA9ICRKSVJBLT5Q
cm9qZWN0c0dldCggRm9yY2UgPT4gMSApOwoKICAgIGlmICggISVBbGxTZXR0aW5ncyApIHsKICAg
ICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnTm9TZXR0aW5n
c0ZvdW5kJywKICAgICAgICApOwogICAgfQoKICAgIGZvciBteSAkU2V0dGluZ3NJRCAoIHNvcnQg
eyAkQWxsU2V0dGluZ3N7JGF9IGNtcCAkQWxsU2V0dGluZ3N7JGJ9IH0ga2V5cyAlQWxsU2V0dGlu
Z3MgKSB7CiAgICAgICAgbXkgJURhdGEgPSAkU2V0dGluZ3NPYmplY3QtPlNldHRpbmdzR2V0KCBR
dWV1ZUlEID0+ICRTZXR0aW5nc0lEICk7CgogICAgICAgIGlmICggJERhdGF7UHJvamVjdElEfSAp
IHsKICAgICAgICAgICAgJERhdGF7UHJvamVjdH0gPSAkSklSQVByb2plY3RzLT57ICREYXRhe1By
b2plY3RJRH0gfSAvLyAnJzsKICAgICAgICB9CgogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2Nr
KAogICAgICAgICAgICBOYW1lID0+ICdTZXR0aW5nJywKICAgICAgICAgICAgRGF0YSA9PiBcJURh
dGEsCiAgICAgICAgKTsKICAgIH0KCiAgICByZXR1cm4gJExheW91dE9iamVjdC0+T3V0cHV0KAog
ICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWRtaW5KSVJBUXVldWVTZXR0aW5ncycsCiAgICAgICAg
RGF0YSAgICAgICAgID0+IHt9LAogICAgKTsKfQoKc3ViIF9NYXNrIHsKICAgIG15ICgkU2VsZiwg
JVBhcmFtKSA9IEBfOwoKICAgIG15ICRMYXlvdXRPYmplY3QgICA9ICRLZXJuZWw6Ok9NLT5HZXQo
J0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKICAgIG15ICRRdWV1ZU9iamVjdCAgICA9
ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpRdWV1ZScpOwogICAgbXkgJFZhbGlk
T2JqZWN0ICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlZhbGlkJyk7CiAg
ICBteSAkSklSQSAgICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6
SklSQTo6VXRpbHMnKTsKICAgIG15ICRTZXR0aW5nc09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQo
J0tlcm5lbDo6U3lzdGVtOjpKSVJBOjpRdWV1ZVNldHRpbmdzJyk7CgogICAgJExheW91dE9iamVj
dC0+QmxvY2soIE5hbWUgPT4gJ092ZXJ2aWV3QWN0aW9uJyApOwoKICAgIG15ICVTZXR0aW5nOwog
ICAgaWYgKCAkUGFyYW17UXVldWVJRH0gKSB7CiAgICAgICAgJVNldHRpbmcgICA9ICRTZXR0aW5n
c09iamVjdC0+U2V0dGluZ3NHZXQoIFF1ZXVlSUQgPT4gJFBhcmFte1F1ZXVlSUR9ICk7CiAgICAg
ICAgJFBhcmFte0lEfSA9ICRQYXJhbXtRdWV1ZUlEfTsKICAgIH0KCiAgICBteSAkVXNlcnMgICA9
IHt9OwogICAgbXkgJFByb2plY3QgPSAkUGFyYW17UHJvamVjdElEfSB8fCAkU2V0dGluZ3tQcm9q
ZWN0SUR9OwoKICAgIGlmICggJFByb2plY3QgKSB7CiAgICAgICAgJFVzZXJzID0gJEpJUkEtPlVz
ZXJzR2V0KCBQcm9qZWN0ID0+ICRQcm9qZWN0ICk7CiAgICB9CgogICAgbXkgJVF1ZXVlcyAgICAg
ICA9ICRRdWV1ZU9iamVjdC0+UXVldWVMaXN0KCBVc2VySUQgPT4gMSApOwogICAgbXkgJEpJUkFQ
cm9qZWN0cyA9ICRKSVJBLT5Qcm9qZWN0c0dldCggRm9yY2UgPT4gMSApOwoKICAgICRQYXJhbXtW
YWxpZFNlbGVjdH0gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICBOYW1l
ICAgICAgICA9PiAnVmFsaWRJRCcsCiAgICAgICAgRGF0YSAgICAgICAgPT4geyAkVmFsaWRPYmpl
Y3QtPlZhbGlkTGlzdCgpIH0sCiAgICAgICAgU2VsZWN0ZWRJRCAgPT4gJFBhcmFte1ZhbGlkSUR9
IHx8ICRTZXR0aW5ne1ZhbGlkSUR9LAogICAgICAgIENsYXNzICAgICAgID0+ICdNb2Rlcm5pemUn
LAogICAgKTsKCiAgICAkUGFyYW17UXVldWVTZWxlY3R9ID0gJExheW91dE9iamVjdC0+QnVpbGRT
ZWxlY3Rpb24oCiAgICAgICAgTmFtZSAgICAgICAgPT4gJ1F1ZXVlSUQnLAogICAgICAgIERhdGEg
ICAgICAgID0+IFwlUXVldWVzLAogICAgICAgIENsYXNzICAgICAgID0+ICdNb2Rlcm5pemUgJyAu
ICggJFBhcmFte1F1ZXVlSW52YWxpZH0gLy8gJycgKSwKICAgICAgICBUcmFuc2xhdGlvbiA9PiAw
LAogICAgICAgIFNlbGVjdGVkSUQgID0+ICRQYXJhbXtRdWV1ZUlEfSB8fCAkU2V0dGluZ3tRdWV1
ZUlEfSwKICAgICk7CgogICAgJFBhcmFte1Byb2plY3RTZWxlY3R9ID0gJExheW91dE9iamVjdC0+
QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgTmFtZSAgICAgICAgID0+ICdQcm9qZWN0SUQnLAogICAg
ICAgIERhdGEgICAgICAgICA9PiAkSklSQVByb2plY3RzLAogICAgICAgIENsYXNzICAgICAgICA9
PiAnTW9kZXJuaXplJywKICAgICAgICBUcmFuc2xhdGlvbiAgPT4gMCwKICAgICAgICBTZWxlY3Rl
ZElEICAgPT4gJFBhcmFte1Byb2plY3RJRH0gfHwgJFNldHRpbmd7UHJvamVjdElEfSwKICAgICAg
ICBQb3NzaWJsZU5vbmUgPT4gMSwKICAgICk7CgogICAgJFBhcmFte1VzZXJzU2VsZWN0fSA9ICRM
YXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIE5hbWUgICAgICAgICA9PiAnQXNz
aWduZWUnLAogICAgICAgIERhdGEgICAgICAgICA9PiAkVXNlcnMsCiAgICAgICAgQ2xhc3MgICAg
ICAgID0+ICdNb2Rlcm5pemUnLAogICAgICAgIFRyYW5zbGF0aW9uICA9PiAwLAogICAgICAgIFNl
bGVjdGVkSUQgICA9PiAkUGFyYW17QXNzaWduZWV9IHx8ICRTZXR0aW5ne0Fzc2lnbmVlfSwKICAg
ICAgICBQb3NzaWJsZU5vbmUgPT4gMSwKICAgICk7CgogICAgJExheW91dE9iamVjdC0+QmxvY2so
CiAgICAgICAgTmFtZSA9PiAnU2V0dGluZ3NNYXNrJywKICAgICAgICBEYXRhID0+IFwlUGFyYW0s
CiAgICApOwoKICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgVGVtcGxh
dGVGaWxlID0+ICdBZG1pbkpJUkFRdWV1ZVNldHRpbmdzJywKICAgICAgICBEYXRhICAgICAgICAg
PT4gXCVQYXJhbSwKICAgICk7Cn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAxNiBQZXJsLVNlcnZpY2VzLmRlLCBodHRwOi8vd3d3LnBl
cmwtc2VydmljZXMuZGUKIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZ
IE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlO
RyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2
ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMg
LS0KCnBhY2thZ2UgS2VybmVsOjpNb2R1bGVzOjpBZG1pbkpJUkFXaXphcmQ7Cgp1c2Ugc3RyaWN0
Owp1c2Ugd2FybmluZ3M7CgpvdXIgQE9iamVjdERlcGVuZGVuY2llcyA9IHF3KAogICAgS2VybmVs
OjpDb25maWcKICAgIEtlcm5lbDo6U3lzdGVtOjpTeXNDb25maWcKICAgIEtlcm5lbDo6U3lzdGVt
OjpWYWxpZAogICAgS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dAogICAgS2VybmVsOjpTeXN0
ZW06OldlYjo6UmVxdWVzdAogICAgS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZAopOwoKc3Vi
IG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3
IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7JVBhcmFtfTsKICAgIGJsZXNzKCAkU2Vs
ZiwgJFR5cGUgKTsKCiAgICAkU2VsZi0+e1VzZXJJRH0gPSAkUGFyYW17VXNlcklEfTsKCiAgICAk
U2VsZi0+e1N0ZXAxfSA9IFsKICAgICAgICB7CiAgICAgICAgICAgIExhYmVsICAgICA9PiAnSklS
QSBVUkwnLAogICAgICAgICAgICBGaWVsZCAgICAgPT4gJ1VSTCcsCiAgICAgICAgICAgIFN5c0Nv
bmZpZyA9PiAnVVJMJywKICAgICAgICAgICAgRXh0cmEgICAgID0+IHsKICAgICAgICAgICAgICAg
IFR5cGUgICA9PiAnRHluYW1pY0ZpZWxkJywKICAgICAgICAgICAgICAgIE5hbWUgICA9PiAnSklS
QUlzc3VlSUQnLAogICAgICAgICAgICAgICAgQXR0ciAgID0+ICdMaW5rJywKICAgICAgICAgICAg
ICAgIEZvcm1hdCA9PiAnJXMvYnJvd3NlL1slJSBEYXRhLkpJUkFJc3N1ZUlEIHwgdXJsICUlXScs
CiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIExhYmVsICAg
ICA9PiAnQVBJIFBhdGgnLAogICAgICAgICAgICBGaWVsZCAgICAgPT4gJ1BhdGgnLAogICAgICAg
ICAgICBTeXNDb25maWcgPT4gJ1BhdGgnLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAg
ICBMYWJlbCAgICAgPT4gJ1VzZXInLAogICAgICAgICAgICBIaW50ICAgICAgPT4gJ0pJUkEgdXNl
ciBPVFJTIHVzZXMgZm9yIEFQSSBjYWxscycsCiAgICAgICAgICAgIEZpZWxkICAgICA9PiAnVXNl
cicsCiAgICAgICAgICAgIFN5c0NvbmZpZyA9PiAnVXNlcicsCiAgICAgICAgfSwKICAgICAgICB7
CiAgICAgICAgICAgIExhYmVsICAgICA9PiAnUGFzc3dvcmQnLAogICAgICAgICAgICBGaWVsZCAg
ICAgPT4gJ1Bhc3N3b3JkJywKICAgICAgICAgICAgU3lzQ29uZmlnID0+ICdQYXNzd29yZCcsCiAg
ICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIExhYmVsICAgICA9PiAnSW5jb21pbmcgVXNl
cicsCiAgICAgICAgICAgIEhpbnQgICAgICA9PiAnT1RSUyB1c2VyIEpJUkEgdXNlcyB0byBjYWxs
IE9UUlMgV2Vic2VydmljZScsCiAgICAgICAgICAgIEZpZWxkICAgICA9PiAnSW5jb21pbmdVc2Vy
JywKICAgICAgICAgICAgU3lzQ29uZmlnID0+ICdJbmNvbWluZ1VzZXInLAogICAgICAgIH0sCiAg
ICBdOwoKICAgICRTZWxmLT57U3RlcDJ9ID0gWwogICAgICAgIHsKICAgICAgICAgICAgTGFiZWwg
ICAgID0+ICdQcm9qZWN0JywKICAgICAgICAgICAgRmllbGQgICAgID0+ICdQcm9qZWN0JywKICAg
ICAgICAgICAgU3lzQ29uZmlnID0+ICdUaWNrZXRKSVJBIyMjUHJvamVjdCcsCiAgICAgICAgICAg
IERhdGEgICAgICA9PiAnSklSQVByb2plY3RzJywKICAgICAgICB9LAogICAgICAgIHsKICAgICAg
ICAgICAgTGFiZWwgICAgID0+ICdJc3N1ZSBUeXBlJywKICAgICAgICAgICAgRmllbGQgICAgID0+
ICdJc3N1ZVR5cGUnLAogICAgICAgICAgICBTeXNDb25maWcgPT4gJ1RpY2tldEpJUkEjIyNJc3N1
ZVR5cGUnLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBMYWJlbCAgICAgICAgPT4g
J1NlbmQgUmVwb3J0ZXInLAogICAgICAgICAgICBGaWVsZCAgICAgICAgPT4gJ1NlbmRSZXBvcnRl
cicsCiAgICAgICAgICAgIFN5c0NvbmZpZyAgICA9PiAnSklSQTo6U2VuZFJlcG9ydGVyJywKICAg
ICAgICAgICAgVHJhbnNsYXRhYmxlID0+IDEsCiAgICAgICAgICAgIERhdGEgICAgICAgICA9PiB7
CiAgICAgICAgICAgICAgICAwID0+ICdObycsCiAgICAgICAgICAgICAgICAxID0+ICdZZXMnLAog
ICAgICAgICAgICB9LAogICAgICAgICAgICBTdWIgPT4gewogICAgICAgICAgICAgICAgMSA9PiBb
CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBMYWJlbCAgICAg
PT4gJ1JlcG9ydGVyJywKICAgICAgICAgICAgICAgICAgICAgICAgRmllbGQgICAgID0+ICdSZXBv
cnRlcicsCiAgICAgICAgICAgICAgICAgICAgICAgIFN5c0NvbmZpZyA9PiAnVGlja2V0SklSQSMj
I1JlcG9ydGVyJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgXSwKICAg
ICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgTGFiZWwgICAgID0+
ICdDdXN0b20gZmllbGQgT1RSU1RpY2tldElEJywKICAgICAgICAgICAgRmllbGQgICAgID0+ICdP
VFJTVGlja2V0SUQnLAogICAgICAgICAgICBTeXNDb25maWcgPT4gJ0pJUkE6Ok9UUlNUaWNrZXRJ
REZpZWxkJywKICAgICAgICAgICAgRGF0YSAgICAgID0+ICdKSVJBQ3VzdG9tRmllbGRzJywKICAg
ICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgTGFiZWwgICAgICAgID0+ICdEbyBub3Qgc2V0
IEFzc2lnbmVlJywKICAgICAgICAgICAgRmllbGQgICAgICAgID0+ICdOb0Fzc2lnbmVlJywKICAg
ICAgICAgICAgU3lzQ29uZmlnICAgID0+ICdKSVJBOjpOb0Fzc2lnbmVlJywKICAgICAgICAgICAg
VHJhbnNsYXRhYmxlID0+IDEsCiAgICAgICAgICAgIERhdGEgICAgICAgICA9PiB7CiAgICAgICAg
ICAgICAgICAwID0+ICdObycsCiAgICAgICAgICAgICAgICAxID0+ICdZZXMnLAogICAgICAgICAg
ICB9LAogICAgICAgICAgICBTdWIgPT4gewogICAgICAgICAgICAgICAgMCA9PiBbCiAgICAgICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBMYWJlbCAgICAgPT4gJ0Fzc2ln
bmVlJywKICAgICAgICAgICAgICAgICAgICAgICAgRmllbGQgICAgID0+ICdBc3NpZ25lZScsCiAg
ICAgICAgICAgICAgICAgICAgICAgIFN5c0NvbmZpZyA9PiAnVGlja2V0SklSQSMjI0Fzc2lnbmVl
JywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAg
fSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgTGFiZWwgICAgICAgID0+ICdVc2Ug
RGlhbG9nJywKICAgICAgICAgICAgRmllbGQgICAgICAgID0+ICdEaWFsb2cnLAogICAgICAgICAg
ICBTeXNDb25maWcgICAgPT4gJ0pJUkE6OlNob3dEaWFsb2cnLAogICAgICAgICAgICBIaW50ICAg
ICAgICAgPT4gJ1doZW4gdXNpbmcgdGhlIGRpYWxvZywgeW91IGNhbiBlZGl0IHNvbWUgc2V0dGlu
Z3MgZm9yIHRoZSBpc3N1ZSAoZS5nLiBwcm9qZWN0LCBhc3NpZ25lZS4uLiknLAogICAgICAgICAg
ICBUcmFuc2xhdGFibGUgPT4gMSwKICAgICAgICAgICAgRGF0YSAgICAgICAgID0+IHsKICAgICAg
ICAgICAgICAgIDAgPT4gJ05vJywKICAgICAgICAgICAgICAgIDEgPT4gJ1llcycsCiAgICAgICAg
ICAgIH0sCiAgICAgICAgICAgIFN1YiA9PiB7CiAgICAgICAgICAgICAgICAxID0+IFsKICAgICAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIExhYmVsICAgICAgICA9PiAn
U2hvdyBBc3NpZ25lZSAoZGlhbG9nKScsCiAgICAgICAgICAgICAgICAgICAgICAgIEZpZWxkICAg
ICAgICA9PiAnU2hvd0Fzc2lnbmVlJywKICAgICAgICAgICAgICAgICAgICAgICAgU3lzQ29uZmln
ICAgID0+ICdKSVJBOjpTaG93QXNzaWduZWUnLAogICAgICAgICAgICAgICAgICAgICAgICBUcmFu
c2xhdGFibGUgPT4gMSwKICAgICAgICAgICAgICAgICAgICAgICAgRGF0YSAgICAgICAgID0+IHsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0xID0+ICdIaWRlJywKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDAgPT4gJ1JlYWRvbmx5JywKICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDEgPT4gJ0VkaXRhYmxlJywKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAg
ICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg
TGFiZWwgICAgICAgID0+ICdTaG93ICJBdXRvbWF0aWMiIHVzZXIgKGRpYWxvZyknLAogICAgICAg
ICAgICAgICAgICAgICAgICBGaWVsZCAgICAgICAgPT4gJ1Nob3dBdXRvbWF0aWNVc2VyJywKICAg
ICAgICAgICAgICAgICAgICAgICAgU3lzQ29uZmlnICAgID0+ICdKSVJBOjpTaG93QXV0b21hdGlj
VXNlcicsCiAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5zbGF0YWJsZSA9PiAxLAogICAgICAg
ICAgICAgICAgICAgICAgICBEYXRhICAgICAgICAgPT4gewogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMCA9PiAnTm8nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMSA9PiAnRWRpdGFi
bGUnLAogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIH0sCiAg
ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBMYWJlbCAgICAgICAg
PT4gJ1Nob3cgSXNzdWVUeXBlIChkaWFsb2cpJywKICAgICAgICAgICAgICAgICAgICAgICAgRmll
bGQgICAgICAgID0+ICdTaG93SXNzdWVUeXBlJywKICAgICAgICAgICAgICAgICAgICAgICAgU3lz
Q29uZmlnICAgID0+ICdKSVJBOjpTaG93SXNzdWVUeXBlJywKICAgICAgICAgICAgICAgICAgICAg
ICAgVHJhbnNsYXRhYmxlID0+IDEsCiAgICAgICAgICAgICAgICAgICAgICAgIERhdGEgICAgICAg
ICA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAtMSA9PiAnSGlkZScsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAwID0+ICdSZWFkb25seScsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAxID0+ICdFZGl0YWJsZScsCiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAg
ICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgICAgIExhYmVsICAgICAgICA9PiAnU2hvdyBQcm9qZWN0IChkaWFsb2cpJywKICAgICAgICAg
ICAgICAgICAgICAgICAgRmllbGQgICAgICAgID0+ICdTaG93UHJvamVjdCcsCiAgICAgICAgICAg
ICAgICAgICAgICAgIFN5c0NvbmZpZyAgICA9PiAnSklSQTo6U2hvd1Byb2plY3QnLAogICAgICAg
ICAgICAgICAgICAgICAgICBUcmFuc2xhdGFibGUgPT4gMSwKICAgICAgICAgICAgICAgICAgICAg
ICAgRGF0YSAgICAgICAgID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0xID0+ICdI
aWRlJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAgPT4gJ1JlYWRvbmx5JywKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDEgPT4gJ0VkaXRhYmxlJywKICAgICAgICAgICAgICAgICAg
ICAgICAgfSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgXSwKICAgICAg
ICAgICAgfSwKICAgICAgICB9LAogICAgXTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBSdW4g
ewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkTGF5b3V0T2JqZWN0ICAg
ICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKICAg
IG15ICRQYXJhbU9iamVjdCAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06
OldlYjo6UmVxdWVzdCcpOwogICAgbXkgJFN5c0NvbmZpZ09iamVjdCAgPSAkS2VybmVsOjpPTS0+
R2V0KCdLZXJuZWw6OlN5c3RlbTo6U3lzQ29uZmlnJyk7CiAgICBteSAkQ29uZmlnT2JqZWN0ICAg
ICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgJFNlbGYtPntTdWJh
Y3Rpb259IC8vPSAnU3RlcDEnOwoKICAgIG15ICgkSW5kZXgpID0gJFNlbGYtPntTdWJhY3Rpb259
ID1+IG17KFxkKX14bXM7CiAgICAkSW5kZXggICAgLy89IDE7CgogICAgbXkgQFN0ZXBzID0gcXco
SklSQSBJc3N1ZSBNYXBwaW5nKTsKCiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jayggTmFtZSA9PiAn
U3RlcHMnICk7CiAgICBmb3IgbXkgJFN0ZXBJbmRleCAoIDAgLi4gJCNTdGVwcyApIHsKICAgICAg
ICBteSAkQWN0aXZlID0gJFN0ZXBJbmRleCA9PSAkSW5kZXgtMSA/ICdBY3RpdmUnIDogJyc7Cgog
ICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdTdGVwJyAu
ICRTdGVwc1skU3RlcEluZGV4XSwKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAg
ICBTdGVwICAgPT4gJFN0ZXBJbmRleCArIDEsCiAgICAgICAgICAgICAgICBBY3RpdmUgPT4gJEFj
dGl2ZSwKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMg
YmFzaWMgSklSQSBpbmZvcm1hdGlvbgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgaWYgKCAhJFNlbGYtPntTdWJh
Y3Rpb259IHx8ICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnU3RlcDEnICkgewogICAgICAgIG15ICRP
dXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlv
dXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKICAgICAgICAkT3V0cHV0IC49ICRTZWxmLT5fU3Rl
cDEoKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwogICAgICAg
IHJldHVybiAkT3V0cHV0OwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgdXBkYXRlIGFjdGlvbgog
ICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0gIwogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ1N0ZXAyJyApIHsK
CiAgICAgICAgIyBjaGFsbGVuZ2UgdG9rZW4gY2hlY2sgZm9yIHdyaXRlIGFjdGlvbgogICAgICAg
ICRMYXlvdXRPYmplY3QtPkNoYWxsZW5nZVRva2VuQ2hlY2soKTsKCiAgICAgICAgIyBzZXJ2ZXIg
c2lkZSB2YWxpZGF0aW9uCiAgICAgICAgbXkgJUVycm9ycyA9ICRTZWxmLT5fQ2hlY2tTdGVwMSgp
OwoKICAgICAgICBpZiAoICVFcnJvcnMgKSB7CiAgICAgICAgICAgICRTZWxmLT57U3ViYWN0aW9u
fSA9ICdFZGl0JzsKCiAgICAgICAgICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFk
ZXIoKTsKICAgICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFy
KCk7CiAgICAgICAgICAgICRPdXRwdXQgLj0gJFNlbGYtPl9TdGVwMSgKICAgICAgICAgICAgICAg
ICVFcnJvcnMsCiAgICAgICAgICAgICAgICBTdWJtaXR0ZWQgPT4gMSwKICAgICAgICAgICAgKTsK
ICAgICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKCiAgICAgICAg
ICAgIHJldHVybiAkT3V0cHV0OwogICAgICAgIH0KCiAgICAgICAgaWYgKCAkUGFyYW1PYmplY3Qt
PkdldFBhcmFtKCBQYXJhbSA9PiAnU3RlcDFTYXZlJyApICkgewogICAgICAgICAgICAkU2VsZi0+
X1NhdmVTdGVwMSgpOwogICAgICAgIH0KCiAgICAgICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmpl
Y3QtPkhlYWRlcigpOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlv
bkJhcigpOwogICAgICAgICRPdXRwdXQgLj0gJFNlbGYtPl9TdGVwMigpOwogICAgICAgICRPdXRw
dXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CiAgICAgICAgcmV0dXJuICRPdXRwdXQ7CiAg
ICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0gIwogICAgIyBzdGVwMwogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgZWxzaWYgKCAkU2Vs
Zi0+e1N1YmFjdGlvbn0gZXEgJ1N0ZXAzJyApIHsKCiAgICAgICAgIyBzZXJ2ZXIgc2lkZSB2YWxp
ZGF0aW9uCiAgICAgICAgbXkgJUVycm9ycyA9ICRTZWxmLT5fQ2hlY2tTdGVwMigpOwoKICAgICAg
ICBpZiAoICVFcnJvcnMgKSB7CiAgICAgICAgICAgICRTZWxmLT57U3ViYWN0aW9ufSA9ICdFZGl0
JzsKCiAgICAgICAgICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoKTsKICAg
ICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CiAgICAg
ICAgICAgICRPdXRwdXQgLj0gJFNlbGYtPl9TdGVwMigKICAgICAgICAgICAgICAgICVFcnJvcnMs
CiAgICAgICAgICAgICAgICBTdWJtaXR0ZWQgPT4gMSwKICAgICAgICAgICAgKTsKICAgICAgICAg
ICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKCiAgICAgICAgICAgIHJldHVy
biAkT3V0cHV0OwogICAgICAgIH0KCiAgICAgICAgaWYgKCAkUGFyYW1PYmplY3QtPkdldFBhcmFt
KCBQYXJhbSA9PiAnU3RlcDJTYXZlJyApICkgewogICAgICAgICAgICAkU2VsZi0+X1NhdmVTdGVw
MigpOwogICAgICAgIH0KCiAgICAgICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRl
cigpOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwog
ICAgICAgICRPdXRwdXQgLj0gJFNlbGYtPl9TdGVwMygpOwogICAgICAgICRPdXRwdXQgLj0gJExh
eW91dE9iamVjdC0+Rm9vdGVyKCk7CiAgICAgICAgcmV0dXJuICRPdXRwdXQ7CiAgICB9CgogICAg
IyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0gIwogICAgIyBzdGVwMwogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFj
dGlvbn0gZXEgJ1N0ZXAzU2F2ZScgKSB7CgogICAgICAgICMgY2hhbGxlbmdlIHRva2VuIGNoZWNr
IGZvciB3cml0ZSBhY3Rpb24KICAgICAgICAkTGF5b3V0T2JqZWN0LT5DaGFsbGVuZ2VUb2tlbkNo
ZWNrKCk7CgogICAgICAgICMgc2VydmVyIHNpZGUgdmFsaWRhdGlvbgogICAgICAgIG15ICVFcnJv
cnMgPSAkU2VsZi0+X0NoZWNrU3RlcDMoKTsKCiAgICAgICAgaWYgKCAlRXJyb3JzICkgewogICAg
ICAgICAgICAkU2VsZi0+e1N1YmFjdGlvbn0gPSAnRWRpdCc7CgogICAgICAgICAgICBteSAkT3V0
cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKCk7CiAgICAgICAgICAgICRPdXRwdXQgLj0gJExh
eW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwogICAgICAgICAgICAkT3V0cHV0IC49ICRTZWxm
LT5fU3RlcDMoCiAgICAgICAgICAgICAgICAlRXJyb3JzLAogICAgICAgICAgICApOwogICAgICAg
ICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwoKICAgICAgICAgICAgcmV0
dXJuICRPdXRwdXQ7CiAgICAgICAgfQoKICAgICAgICAkU2VsZi0+X1NhdmVTdGVwMygpOwoKICAg
ICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jayggTmFtZSA9PiAnVGhhbmtZb3UnICk7CgogICAgICAg
IG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoKTsKICAgICAgICAkT3V0cHV0IC49
ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlv
dXRPYmplY3QtPk91dHB1dCggVGVtcGxhdGVGaWxlID0+ICdBZG1pbkpJUkFXaXphcmQnICk7CiAg
ICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKICAgICAgICByZXR1cm4g
JE91dHB1dDsKICAgIH0KCgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBlbHNlICEgcHJpbnQgZm9ybQogICAg
IyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0gIwogICAgZWxzZSB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPlJlZGlyZWN0
KCBPUCA9PiAnQWN0aW9uPUFkbWluSklSQVdpemFyZCcgKTsKICAgIH0KfQoKc3ViIF9TdGVwMSB7
CiAgICBteSAoJFNlbGYsICVQYXJhbSkgPSBAXzsKCiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtl
cm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwogICAgbXkgJENv
bmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CiAgICBteSAk
UGFyYW1PYmplY3QgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVx
dWVzdCcpOwoKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ1N0ZXAx
JywKICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgSXRlbSA9PiAnSklSQSBjb3JlIHNldHRp
bmdzJywKICAgICAgICAgICAgU3RlcCA9PiAxLAogICAgICAgIH0sCiAgICApOwoKICAgIGlmICgg
JFBhcmFte01lc3NhZ2V9ICkgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAg
ICAgICBOYW1lID0+ICdTdGVwMUhhc0Vycm9yJywKICAgICAgICAgICAgRGF0YSA9PiB7IEVycm9y
TWVzc2FnZSA9PiAkUGFyYW17TWVzc2FnZX0gfSwKICAgICAgICApOwogICAgfQoKICAgIG15IEBG
aWVsZHMgPSBAeyAkU2VsZi0+e1N0ZXAxfSB8fCBbXSB9OwogICAgbXkgJENvbmZpZyA9ICRDb25m
aWdPYmplY3QtPkdldCgnVGlja2V0SklSQScpOwoKICAgIEZJRUxEOgogICAgZm9yIG15ICRGaWVs
ZCAoIEBGaWVsZHMgKSB7CiAgICAgICAgbXkgJFN1YmNvbmZpZyA9ICRGaWVsZC0+e1N5c0NvbmZp
Z307CiAgICAgICAgbXkgJFZhbHVlID0gJENvbmZpZy0+eyRTdWJjb25maWd9OwoKICAgICAgICBp
ZiAoICRQYXJhbXtTdWJtaXR0ZWR9ICkgewogICAgICAgICAgICAkVmFsdWUgPSAkUGFyYW1PYmpl
Y3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkRmllbGQtPntGaWVsZH0gKTsKICAgICAgICB9CgogICAg
ICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdGaWVsZCcsCiAg
ICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgJXsgJEZpZWxkIHx8IHt9IH0sCiAg
ICAgICAgICAgICAgICBWYWx1ZSA9PiAkVmFsdWUsCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsK
CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ0ZpZWxk
SW5wdXQnLAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICV7ICRGaWVsZCB8
fCB7fSB9LAogICAgICAgICAgICAgICAgVmFsdWUgPT4gJFZhbHVlLAogICAgICAgICAgICB9LAog
ICAgICAgICk7CgogICAgICAgIGlmICggJEZpZWxkLT57SGludH0gKSB7CiAgICAgICAgICAgICRM
YXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnRmllbGRIaW50JywK
ICAgICAgICAgICAgICAgIERhdGEgPT4gJEZpZWxkLAogICAgICAgICAgICApOwogICAgICAgIH0K
ICAgIH0KCiAgICByZXR1cm4gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgIFRlbXBsYXRl
RmlsZSA9PiAnQWRtaW5KSVJBV2l6YXJkJywKICAgICAgICBEYXRhICAgICAgICAgPT4ge30sCiAg
ICApOwp9CgpzdWIgX0NoZWNrU3RlcDEgewogICAgbXkgKCRTZWxmKSA9IEBfOwoKICAgIG15ICRQ
YXJhbU9iamVjdCAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1
ZXN0Jyk7CgogICAgcmV0dXJuIGlmICEkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAn
U3RlcDFTYXZlJyApOwoKICAgICMgYWxsIGZpZWxkcyBhcmUgbWFuZGF0b3J5CiAgICBteSBARmll
bGRzID0gQHsgJFNlbGYtPntTdGVwMX0gfHwgW10gfTsKCiAgICBteSAlRXJyb3JzOwogICAgbXkg
JUdldFBhcmFtOwoKICAgIEZJRUxEOgogICAgZm9yIG15ICRGaWVsZCAoIEBGaWVsZHMgKSB7CiAg
ICAgICAgbXkgJFZhbHVlID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJEZpZWxk
LT57RmllbGR9ICk7CgogICAgICAgICRHZXRQYXJhbXskRmllbGQtPntGaWVsZH19ID0gJFZhbHVl
OwoKICAgICAgICBpZiAoICFkZWZpbmVkICRWYWx1ZSB8fCAkVmFsdWUgZXEgJycgKSB7CiAgICAg
ICAgICAgICRFcnJvcnN7TWVzc2FnZX0gPSAnQWxsIGZpZWxkcyBhcmUgbWFuZGF0b3J5JzsKICAg
ICAgICAgICAgbGFzdCBGSUVMRDsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuICVFcnJvcnMg
aWYgJUVycm9yczsKCiAgICAjIGNoZWNrIGlmIEFQSSBpcyByZWFjaGFibGUKICAgIHsKICAgICAg
ICBsb2NhbCAkS2VybmVsOjpPTSA9IEtlcm5lbDo6U3lzdGVtOjpPYmplY3RNYW5hZ2VyLT5uZXco
CiAgICAgICAgICAgICdLZXJuZWw6OlN5c3RlbTo6SklSQTo6VXRpbHMnID0+IHsKICAgICAgICAg
ICAgICAgIEpJUkFVUkwgID0+ICRHZXRQYXJhbXtVUkx9IC4gJEdldFBhcmFte1BhdGh9LAogICAg
ICAgICAgICAgICAgSklSQVVTRVIgPT4gJEdldFBhcmFte1VzZXJ9LAogICAgICAgICAgICAgICAg
SklSQVBXRCAgPT4gJEdldFBhcmFte1Bhc3N3b3JkfSwKICAgICAgICAgICAgIH0sCiAgICAgICAg
KTsKCiAgICAgICAgbXkgJEpJUkEgICAgICAgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tl
cm5lbDo6U3lzdGVtOjpKSVJBOjpVdGlscycpOwogICAgICAgIG15ICgkU3RhdHVzLCAkTWVzc2Fn
ZSkgPSAkSklSQS0+Q2hlY2soKTsKCiAgICAgICAgJFN0YXR1cyAvLz0gMDsKCiAgICAgICAgcmV0
dXJuIGlmICRTdGF0dXMgPT0gMjAwOwoKICAgICAgICBpZiAoICRTdGF0dXMgPT0gNDA0ICYmICRN
ZXNzYWdlID1+IC9wYXJhbWV0ZXIvICkgewogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQog
ICAgICAgIGVsc2lmICggJFN0YXR1cyA9PSA0MDQgfHwgJFN0YXR1cyA9PSA1MDAgKSB7CiAgICAg
ICAgICAgICRFcnJvcnN7TWVzc2FnZX0gPSAiVGhlIFVSTCBtYXkgbm90IGJlIGNvcnJlY3QsIHdl
IGNhbid0IGNvbm5lY3QgdG8gSklSQSI7CiAgICAgICAgfQogICAgICAgIGVsc2lmICggJFN0YXR1
cyA9PSA0MDEgKSB7CiAgICAgICAgICAgICRFcnJvcnN7TWVzc2FnZX0gPSAiVGhlIGNyZWRlbnRp
YWxzIGZvciB0aGUgSklSQSB1c2VyIGFyZSBub3QgY29ycmVjdCI7CiAgICAgICAgfQogICAgICAg
IGVsc2lmICggJFN0YXR1cyA9PSA0MDMgKSB7CiAgICAgICAgICAgICRFcnJvcnN7TWVzc2FnZX0g
PSAiQWNjZXNzIGRlbmllZCwgY2hlY2sgQVBJIHBhdGgiOwogICAgICAgIH0KICAgICAgICBlbHNl
IHsKICAgICAgICAgICAgJEVycm9yc3tNZXNzYWdlfSA9ICJFcnJvciAkU3RhdHVzOiAkTWVzc2Fn
ZSI7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiAlRXJyb3JzOwp9CgpzdWIgX1NhdmVTdGVw
MSB7CiAgICBteSAoJFNlbGYpID0gQF87CgogICAgbXkgJFN5c0NvbmZpZ09iamVjdCAgICA9ICRL
ZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpTeXNDb25maWcnKTsKICAgIG15ICRQYXJh
bU9iamVjdCAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpS
ZXF1ZXN0Jyk7CiAgICBteSAkRHluYW1pY0ZpZWxkT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgn
S2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZCcpOwoKICAgIG15ICRCYXNlICAgPSAnVGlja2V0
SklSQSc7CiAgICBteSBARmllbGRzID0gQHsgJFNlbGYtPntTdGVwMX0gfHwgW10gfTsKCiAgICBt
eSBAU2V0dGluZ3M7CgogICAgRklFTEQ6CiAgICBmb3IgbXkgJEZpZWxkICggQEZpZWxkcyApIHsK
ICAgICAgICBteSAoJFZhbHVlKSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICRG
aWVsZC0+e0ZpZWxkfSApOwoKICAgICAgICBteSAkRmllbGRuYW1lID0gJEZpZWxkLT57U3lzQ29u
ZmlnfTsKICAgICAgICBwdXNoIEBTZXR0aW5ncywgewogICAgICAgICAgICBOYW1lICAgICAgICAg
ICA9PiAiJEJhc2UjIyMkRmllbGRuYW1lIiwKICAgICAgICAgICAgRWZmZWN0aXZlVmFsdWUgPT4g
JFZhbHVlLAogICAgICAgIH07CgogICAgICAgIGlmICggJEZpZWxkLT57RXh0cmF9ICkgewogICAg
ICAgICAgICBteSAkRXh0cmEgPSAkRmllbGQtPntFeHRyYX07CgogICAgICAgICAgICBpZiAoICRF
eHRyYS0+e1R5cGV9IGVxICdEeW5hbWljRmllbGQnICkgewogICAgICAgICAgICAgICAgbXkgJER5
bmFtaWNGaWVsZCA9ICREeW5hbWljRmllbGRPYmplY3QtPkR5bmFtaWNGaWVsZEdldCgKICAgICAg
ICAgICAgICAgICAgICBOYW1lID0+ICRFeHRyYS0+e05hbWV9LAogICAgICAgICAgICAgICAgKTsK
CiAgICAgICAgICAgICAgICBteSAkQXR0ciA9ICRFeHRyYS0+e0F0dHJ9OwogICAgICAgICAgICAg
ICAgJER5bmFtaWNGaWVsZC0+e0NvbmZpZ30tPnskQXR0cn0gPSBzcHJpbnRmICRFeHRyYS0+e0Zv
cm1hdH0sICRWYWx1ZTsKCiAgICAgICAgICAgICAgICAkRHluYW1pY0ZpZWxkT2JqZWN0LT5EeW5h
bWljRmllbGRVcGRhdGUoCiAgICAgICAgICAgICAgICAgICAgJXsgJER5bmFtaWNGaWVsZCB8fCB7
fSB9LAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAg
ICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIG15ICRTdWNj
ZXNzID0gJFN5c0NvbmZpZ09iamVjdC0+U2V0dGluZ3NTZXQoCiAgICAgICAgU2V0dGluZ3MgPT4g
XEBTZXR0aW5ncywKICAgICAgICBVc2VySUQgICA9PiAxLAogICAgKTsKfQoKc3ViIF9TdGVwMiB7
CiAgICBteSAoJFNlbGYsICVQYXJhbSkgPSBAXzsKCiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtl
cm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwogICAgbXkgJENv
bmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CiAgICBteSAk
UGFyYW1PYmplY3QgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVx
dWVzdCcpOwogICAgbXkgJExvZ09iamVjdCAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6
U3lzdGVtOjpMb2cnKTsKICAgIG15ICRNYWluT2JqZWN0ICAgPSAkS2VybmVsOjpPTS0+R2V0KCdL
ZXJuZWw6OlN5c3RlbTo6TWFpbicpOwoKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAg
IE5hbWUgPT4gJ1N0ZXAyJywKICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgSXRlbSA9PiAn
SXNzdWUgc2V0dGluZ3MnLAogICAgICAgICAgICBTdGVwID0+IDIsCiAgICAgICAgfSwKICAgICk7
CgogICAgaWYgKCAkUGFyYW17TWVzc2FnZX0gKSB7CiAgICAgICAgJExheW91dE9iamVjdC0+Qmxv
Y2soCiAgICAgICAgICAgIE5hbWUgPT4gJ1N0ZXAySGFzRXJyb3InLAogICAgICAgICAgICBEYXRh
ID0+IHsgRXJyb3JNZXNzYWdlID0+ICRQYXJhbXtNZXNzYWdlfSB9LAogICAgICAgICk7CiAgICB9
CgogICAgbXkgQEZpZWxkcyA9IEB7ICRTZWxmLT57U3RlcDJ9IHx8IFtdIH07CiAgICBteSAkQ29u
ZmlnID0gJENvbmZpZ09iamVjdC0+R2V0KCdUaWNrZXRKSVJBJyk7CgogICAgbXkgJEZpZWxkQ291
bnQgPSAxOwoKICAgIEZJRUxEOgogICAgZm9yIG15ICRGaWVsZCAoIEBGaWVsZHMgKSB7CiAgICAg
ICAgbXkgJENvbmZpZ0tleSAgICAgICAgICA9ICRGaWVsZC0+e1N5c0NvbmZpZ307CiAgICAgICAg
bXkgKHVuZGVmLCAkU3ViY29uZmlnKSA9IHNwbGl0IC9cI3szfS8sICRDb25maWdLZXk7CiAgICAg
ICAgbXkgJFZhbHVlICAgICAgICAgICAgICA9ICRDb25maWdLZXkgPX4gbXs6On0gPyAkQ29uZmln
T2JqZWN0LT5HZXQoICRDb25maWdLZXkgKSA6ICRDb25maWctPnskU3ViY29uZmlnfTsKCiAgICAg
ICAgaWYgKCAkUGFyYW17U3VibWl0dGVkfSApIHsKICAgICAgICAgICAgJFZhbHVlID0gJFBhcmFt
T2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJEZpZWxkLT57RmllbGR9ICk7CiAgICAgICAgfQoK
ICAgICAgICBteSAkQ2xhc3MgID0gJEZpZWxkLT57Q2xhc3N9IC8vICcnOwoKICAgICAgICAkTGF5
b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnRmllbGRTdGVwMicsCiAgICAg
ICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgJXsgJEZpZWxkIHx8IHt9IH0sCiAgICAg
ICAgICAgICAgICBGaWVsZENsYXNzID0+ICRDbGFzcywKICAgICAgICAgICAgICAgIFZhbHVlICAg
ICAgPT4gJFZhbHVlLAogICAgICAgICAgICB9LAogICAgICAgICk7CgogICAgICAgIGlmICggISRG
aWVsZC0+e0RhdGF9ICkgewogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAg
ICAgICAgICAgIE5hbWUgPT4gJ0ZpZWxkSW5wdXQyJywKICAgICAgICAgICAgICAgIERhdGEgPT4g
ewogICAgICAgICAgICAgICAgICAgICV7ICRGaWVsZCB8fCB7fSB9LAogICAgICAgICAgICAgICAg
ICAgIFZhbHVlID0+ICRWYWx1ZSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICk7CiAg
ICAgICAgfQogICAgICAgIGVsc2UgewoKICAgICAgICAgICAgaWYgKCAhcmVmICRGaWVsZC0+e0Rh
dGF9ICkgewogICAgICAgICAgICAgICAgbXkgJFN1YiA9ICRTZWxmLT5jYW4oICRGaWVsZC0+e0Rh
dGF9ICk7CiAgICAgICAgICAgICAgICAoJEZpZWxkLT57RGF0YX0sICRGaWVsZC0+e1ZhbHVlfSkg
PSAkU2VsZi0+JFN1YiggJEZpZWxkLT57RmllbGR9ICkgaWYgJFN1YjsKCiAgICAgICAgICAgICAg
ICBpZiAoICEkUGFyYW17U3VibWl0dGVkfSApIHsKICAgICAgICAgICAgICAgICAgICAkVmFsdWUg
PSAkRmllbGQtPntWYWx1ZX07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAg
ICAgICAgIG15ICRTZWxlY3QgPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAg
ICAgICAgICAgIE5hbWUgICAgICAgID0+ICRGaWVsZC0+e0ZpZWxkfSwKICAgICAgICAgICAgICAg
IERhdGEgICAgICAgID0+ICRGaWVsZC0+e0RhdGF9LAogICAgICAgICAgICAgICAgVHJhbnNsYXRp
b24gPT4gJEZpZWxkLT57VHJhbnNsYXRhYmxlfSwKICAgICAgICAgICAgICAgIFNlbGVjdGVkSUQg
ID0+ICRWYWx1ZSwKICAgICAgICAgICAgICAgIENsYXNzICAgICAgID0+ICJNb2Rlcm5pemUiLAog
ICAgICAgICAgICApOwoKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAg
ICAgICAgICBOYW1lID0+ICdGaWVsZFNlbGVjdDInLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7
CiAgICAgICAgICAgICAgICAgICAgRmllbGQgPT4gJFNlbGVjdCwKICAgICAgICAgICAgICAgIH0s
CiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICBpZiAoICRGaWVsZC0+e0hpbnR9ICkg
ewogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUg
PT4gJ0ZpZWxkSGludFN0ZXAyJywKICAgICAgICAgICAgICAgIERhdGEgPT4gJEZpZWxkLAogICAg
ICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgaWYgKCAkRmllbGQtPntTdWJ9ICkgewogICAg
ICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0Zp
ZWxkQ2hhbmdlU3RlcDInLAogICAgICAgICAgICAgICAgRGF0YSA9PiAkRmllbGQsCiAgICAgICAg
ICAgICk7CgogICAgICAgICAgICBteSBAU3ViRmllbGRzOwoKICAgICAgICAgICAgS0VZOgogICAg
ICAgICAgICBmb3IgbXkgJEtleSAoIHNvcnQga2V5cyAleyAkRmllbGQtPntTdWJ9IH0gKSB7CiAg
ICAgICAgICAgICAgICBteSAkRmllbGRDbGFzcyA9ICRGaWVsZC0+e0ZpZWxkfSAuICctJyAuICRL
ZXk7CiAgICAgICAgICAgICAgICBwdXNoIEBTdWJGaWVsZHMsIG1hcHsKICAgICAgICAgICAgICAg
ICAgICAkXy0+e0NsYXNzfSA9ICRGaWVsZENsYXNzOwogICAgICAgICAgICAgICAgICAgICRfOwog
ICAgICAgICAgICAgICAgfUB7ICRGaWVsZC0+e1N1Yn0tPnskS2V5fSB9OwogICAgICAgICAgICB9
CgogICAgICAgICAgICBzcGxpY2UgQEZpZWxkcywgJEZpZWxkQ291bnQsIDAsIEBTdWJGaWVsZHM7
CiAgICAgICAgfQogICAgfQogICAgY29udGludWUgewogICAgICAgICRGaWVsZENvdW50Kys7CiAg
ICB9CgogICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICBUZW1wbGF0ZUZp
bGUgPT4gJ0FkbWluSklSQVdpemFyZCcsCiAgICAgICAgRGF0YSAgICAgICAgID0+IHt9LAogICAg
KTsKfQoKc3ViIEpJUkFDdXN0b21GaWVsZHMgewogICAgbXkgKCRTZWxmKSA9IEBfOwoKICAgIG15
ICRKSVJBVGlja2V0T2JqZWN0ICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6
VGlja2V0SklSQScpOwoKICAgIG15ICRGaWVsZFR5cGVzID0gJEpJUkFUaWNrZXRPYmplY3QtPkZp
ZWxkc0dldCggUmV0dXJuID0+ICd0eXBlcycgKTsKICAgIG15ICRKSVJBRmllbGRzID0gJEpJUkFU
aWNrZXRPYmplY3QtPkZpZWxkc0dldCgpOwoKICAgIG15ICVDdXN0b21GaWVsZHMgPSByZXZlcnNl
ICV7ICRKSVJBRmllbGRzIHx8IHt9IH07CgogICAgbXkgJUpJUkFGaWVsZE1hcDsKICAgIG15ICRT
ZWxlY3RlZDsKCiAgICBGSUVMRE5BTUU6CiAgICBmb3IgbXkgJEZpZWxkTmFtZSAoIGtleXMgJXsg
JEZpZWxkVHlwZXMgfHwge30gfSApIHsKICAgICAgICBuZXh0IEZJRUxETkFNRSBpZiAkRmllbGRO
YW1lICF+IG17XEEgY3VzdG9tZmllbGRfIH14bXM7CgogICAgICAgICRGaWVsZE5hbWUgID1+IHN7
Y3VzdG9tZmllbGRffXt9OwogICAgICAgIG15ICRGaWVsZElEID0gJEZpZWxkTmFtZTsKICAgICAg
ICAkRmllbGROYW1lICA9ICRDdXN0b21GaWVsZHN7JEZpZWxkTmFtZX07CgogICAgICAgIGlmICgg
JEZpZWxkTmFtZSBlcSAnT1RSU1RpY2tldElEJyApIHsKICAgICAgICAgICAgJFNlbGVjdGVkID0g
JEZpZWxkSUQ7CiAgICAgICAgfQoKICAgICAgICAkSklSQUZpZWxkTWFweyRGaWVsZElEfSA9ICRG
aWVsZE5hbWU7CiAgICB9CgogICAgcmV0dXJuICggXCVKSVJBRmllbGRNYXAsICRTZWxlY3RlZCAp
Owp9CgpzdWIgX0NoZWNrU3RlcDIgewogICAgbXkgKCRTZWxmKSA9IEBfOwoKICAgIG15ICRTeXND
b25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6U3lzQ29uZmln
Jyk7CiAgICBteSAkUGFyYW1PYmplY3QgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpT
eXN0ZW06OldlYjo6UmVxdWVzdCcpOwoKICAgIHJldHVybiBpZiAhJFBhcmFtT2JqZWN0LT5HZXRQ
YXJhbSggUGFyYW0gPT4gJ1N0ZXAyU2F2ZScgKTsKCiAgICBteSBARmllbGRzID0gQHsgJFNlbGYt
PntTdGVwMn0gfHwgW10gfTsKCiAgICBteSAkVXNlcnM7CiAgICBteSAkUHJvamVjdHM7CiAgICBt
eSAkSklSQTsKCiAgICAjIGNoZWNrIGlmIEFQSSBpcyByZWFjaGFibGUKICAgIHsKICAgICAgICBs
b2NhbCAkS2VybmVsOjpPTSA9IEtlcm5lbDo6U3lzdGVtOjpPYmplY3RNYW5hZ2VyLT5uZXcoKTsK
CiAgICAgICAgJEpJUkEgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkpJ
UkE6OlV0aWxzJyk7CiAgICAgICAgJFByb2plY3RzID0gJEpJUkEtPlByb2plY3RzR2V0KCBGb3Jj
ZSA9PiAxICk7CiAgICB9CgogICAgbXkgJVZhbHVlczsKICAgIG15ICRGaWVsZENvdW50ID0gMTsK
CiAgICBGSUVMRDoKICAgIGZvciBteSAkRmllbGQgKCBARmllbGRzICkgewogICAgICAgIG15ICgk
VmFsdWUpID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJEZpZWxkLT57RmllbGR9
ICk7CgogICAgICAgICAkVmFsdWVzeyAkRmllbGQtPntGaWVsZH0gfSA9ICRWYWx1ZTsKCiAgICAg
ICAgaWYgKCAkRmllbGQtPntEYXRhfSAmJiByZWYgJEZpZWxkLT57RGF0YX0gKSB7CiAgICAgICAg
ICAgIGlmICggISAkRmllbGQtPntEYXRhfS0+eyRWYWx1ZX0gKSB7CiAgICAgICAgICAgICAgICBy
ZXR1cm4gKCBNZXNzYWdlID0+ICdJbnZhbGlkVmFsdWUnICk7CiAgICAgICAgICAgIH0KICAgICAg
ICB9CgogICAgICAgIGlmICggJEZpZWxkLT57RmllbGR9IGVxICdSZXBvcnRlcicgKSB7CgogICAg
ICAgICAgICAjIGdldCBhdmFpbGFibGUgdXNlcnMKICAgICAgICAgICAgJFVzZXJzICAgICAgLy89
ICRKSVJBLT5Vc2Vyc0dldCggUHJvamVjdCA9PiAkVmFsdWVze1Byb2plY3R9ICk7CiAgICAgICAg
ICAgIG15ICRWYWxpZFVzZXIgPSAkVXNlcnMtPnskVmFsdWV9OwoKICAgICAgICAgICAgaWYgKCAh
JFZhbGlkVXNlciApIHsKICAgICAgICAgICAgICAgIHJldHVybiAoIE1lc3NhZ2UgPT4gJ0ludmFs
aWQgVXNlciAoZmllbGQgJyAuICRGaWVsZC0+e0ZpZWxkfSAuICcpLCBwbGVhc2Ugc2VsZWN0IGFu
IGV4aXN0aW5nIEpJUkEgdXNlcicgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAg
aWYgKCAhJFZhbHVlc3tOb0Fzc2lnbmVlfSAmJiAkRmllbGQtPntGaWVsZH0gZXEgJ0Fzc2lnbmVl
JyApIHsKCiAgICAgICAgICAgICMgZ2V0IGF2YWlsYWJsZSB1c2VycwogICAgICAgICAgICAkVXNl
cnMgICAgICAvLz0gJEpJUkEtPlVzZXJzR2V0KCBQcm9qZWN0ID0+ICRWYWx1ZXN7UHJvamVjdH0g
KTsKICAgICAgICAgICAgbXkgJFZhbGlkVXNlciA9ICRVc2Vycy0+eyRWYWx1ZX07CgogICAgICAg
ICAgICBpZiAoICEkVmFsaWRVc2VyICkgewogICAgICAgICAgICAgICAgcmV0dXJuICggTWVzc2Fn
ZSA9PiAnSW52YWxpZCBVc2VyIChmaWVsZCAnIC4gJEZpZWxkLT57RmllbGR9IC4gJyksIHBsZWFz
ZSBzZWxlY3QgYW4gZXhpc3RpbmcgSklSQSB1c2VyJyApOwogICAgICAgICAgICB9CiAgICAgICAg
fQoKICAgICAgICBpZiAoICRGaWVsZC0+e0ZpZWxkfSBlcSAnUHJvamVjdCcgKSB7CiAgICAgICAg
ICAgIG15ICRWYWxpZFByb2plY3QgPSAkUHJvamVjdHMtPnskVmFsdWV9OwoKICAgICAgICAgICAg
aWYgKCAhJFZhbGlkUHJvamVjdCApIHsKICAgICAgICAgICAgICAgIHJldHVybiAoIE1lc3NhZ2Ug
PT4gJ0ludmFsaWQgUHJvamVjdCwgcGxlYXNlIHNlbGVjdCBhbiBleGlzdGluZyBKSVJBIHByb2pl
Y3QnICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGlmICggJEZpZWxkLT57Rmll
bGR9IGVxICdJc3N1ZVR5cGUnICkgewogICAgICAgICAgICAjIGdldCBhdmFpbGFibGUgaXNzdWUg
dHlwZXMKICAgICAgICAgICAgbXkgJElzc3VlVHlwZXMgICAgID0gJEpJUkEtPklzc3VlVHlwZXNH
ZXQoIFByb2plY3QgPT4gJFZhbHVlc3tQcm9qZWN0fSApOwogICAgICAgICAgICBteSAkVmFsaWRJ
c3N1ZVR5cGUgPSAkSXNzdWVUeXBlcy0+eyRWYWx1ZX07CgogICAgICAgICAgICBpZiAoICEkVmFs
aWRJc3N1ZVR5cGUgKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gKCBNZXNzYWdlID0+ICdJbnZh
bGlkIElzc3VlVHlwZScgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgaWYgKCAk
RmllbGQtPntTdWJ9ICkgewogICAgICAgICAgICBteSBAU3ViRmllbGRzOwoKICAgICAgICAgICAg
S0VZOgogICAgICAgICAgICBmb3IgbXkgJEtleSAoIHNvcnQga2V5cyAleyAkRmllbGQtPntTdWJ9
IH0gKSB7CiAgICAgICAgICAgICAgICBwdXNoIEBTdWJGaWVsZHMsIEB7ICRGaWVsZC0+e1N1Yn0t
PnskS2V5fSB9OwogICAgICAgICAgICB9CgogICAgICAgICAgICBzcGxpY2UgQEZpZWxkcywgJEZp
ZWxkQ291bnQsIDAsIEBTdWJGaWVsZHM7CiAgICAgICAgfQoKICAgICAgICAkRmllbGRDb3VudCsr
OwogICAgfQoKICAgIHJldHVybjsKfQoKc3ViIF9TYXZlU3RlcDIgewogICAgbXkgKCRTZWxmKSA9
IEBfOwoKICAgIG15ICRTeXNDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6
OlN5c3RlbTo6U3lzQ29uZmlnJyk7CiAgICBteSAkUGFyYW1PYmplY3QgICAgID0gJEtlcm5lbDo6
T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpOwoKICAgIG15IEBGaWVsZHMg
ICAgID0gQHsgJFNlbGYtPntTdGVwMn0gfHwgW10gfTsKICAgIG15ICRGaWVsZENvdW50ID0gMTsK
CiAgICBteSBAU2V0dGluZ3M7CgogICAgRklFTEQ6CiAgICBmb3IgbXkgJEZpZWxkICggQEZpZWxk
cyApIHsKICAgICAgICBteSAoJFZhbHVlKSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFt
ID0+ICRGaWVsZC0+e0ZpZWxkfSApOwoKICAgICAgICBteSAkRmllbGRuYW1lID0gJEZpZWxkLT57
U3lzQ29uZmlnfTsKICAgICAgICBwdXNoIEBTZXR0aW5ncywgewogICAgICAgICAgICBOYW1lICAg
ICAgICAgICA9PiAkRmllbGRuYW1lLAogICAgICAgICAgICBFZmZlY3RpdmVWYWx1ZSA9PiAkVmFs
dWUsCiAgICAgICAgfTsKCiAgICAgICAgaWYgKCAkRmllbGQtPntTdWJ9ICkgewogICAgICAgICAg
ICBteSBAU3ViRmllbGRzOwoKICAgICAgICAgICAgS0VZOgogICAgICAgICAgICBmb3IgbXkgJEtl
eSAoIHNvcnQga2V5cyAleyAkRmllbGQtPntTdWJ9IH0gKSB7CiAgICAgICAgICAgICAgICBwdXNo
IEBTdWJGaWVsZHMsIEB7ICRGaWVsZC0+e1N1Yn0tPnskS2V5fSB9OwogICAgICAgICAgICB9Cgog
ICAgICAgICAgICBzcGxpY2UgQEZpZWxkcywgJEZpZWxkQ291bnQsIDAsIEBTdWJGaWVsZHM7CiAg
ICAgICAgfQoKICAgICAgICAkRmllbGRDb3VudCsrOwogICAgfQoKICAgIG15ICRTdWNjZXNzID0g
JFN5c0NvbmZpZ09iamVjdC0+U2V0dGluZ3NTZXQoCiAgICAgICAgU2V0dGluZ3MgPT4gXEBTZXR0
aW5ncywKICAgICAgICBVc2VySUQgICA9PiAxLAogICAgKTsKfQoKc3ViIF9TdGVwMyB7CiAgICBt
eSAoJFNlbGYsICVQYXJhbSkgPSBAXzsKCiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6
T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwogICAgbXkgJENvbmZpZ09i
amVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CiAgICBteSAkUGFyYW1P
YmplY3QgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcp
OwoKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ1N0ZXAzJywKICAg
ICAgICBEYXRhID0+IHsKICAgICAgICAgICAgSXRlbSA9PiAnRmllbGRtYXBwaW5nJywKICAgICAg
ICAgICAgU3RlcCA9PiAzLAogICAgICAgIH0sCiAgICApOwoKICAgIGlmICggJFBhcmFte01lc3Nh
Z2V9ICkgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+
ICdTdGVwM0hhc0Vycm9yJywKICAgICAgICAgICAgRGF0YSA9PiB7IEVycm9yTWVzc2FnZSA9PiAk
UGFyYW17TWVzc2FnZX0gfSwKICAgICAgICApOwogICAgfQoKICAgICRTZWxmLT5fRGVmaW5lU3Rl
cDMoKTsKCiAgICBteSAkRmllbGRzID0gJFNlbGYtPntTdGVwM30gfHwge307CiAgICBteSAkT1RS
U0ZpZWxkcyA9ICRGaWVsZHMtPntPVFJTRmllbGRzfTsKICAgIG15ICRKSVJBRmllbGRzID0gJEZp
ZWxkcy0+e0pJUkFGaWVsZHN9OwoKICAgIG15ICVEZWZhdWx0cyA9ICgKICAgICAgICAwID0+IHsK
ICAgICAgICAgICAgT1RSUyA9PiAnJywKICAgICAgICAgICAgSklSQSA9PiAnJywKICAgICAgICB9
LAogICAgKTsKCiAgICBST1dJRDoKICAgIGZvciBteSAkUm93SUQgKCAwIC4uIDEwICkgewoKICAg
ICAgICBteSAkT1RSU0Ryb3Bkb3duID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAg
ICAgICAgICAgIE5hbWUgICAgICAgICAgPT4gJ09UUlMnIC4gJFJvd0lELAogICAgICAgICAgICBE
YXRhICAgICAgICAgID0+ICRPVFJTRmllbGRzLAogICAgICAgICAgICBQb3NzaWJsZU5vbmUgID0+
IDEsCiAgICAgICAgICAgIENsYXNzICAgICAgICAgPT4gJ01vZGVybml6ZScsCiAgICAgICAgICAg
IFNlbGVjdGVkVmFsdWUgPT4gJERlZmF1bHRzeyRSb3dJRH0tPntPVFJTfSwKICAgICAgICApOwoK
ICAgICAgICBteSAkSklSQURyb3Bkb3duID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24o
CiAgICAgICAgICAgIE5hbWUgICAgICAgICAgPT4gJ0pJUkEnIC4gJFJvd0lELAogICAgICAgICAg
ICBEYXRhICAgICAgICAgID0+ICRKSVJBRmllbGRzLAogICAgICAgICAgICBQb3NzaWJsZU5vbmUg
ID0+IDEsCiAgICAgICAgICAgIENsYXNzICAgICAgICAgPT4gJ01vZGVybml6ZScsCiAgICAgICAg
ICAgIFNlbGVjdGVkVmFsdWUgPT4gJERlZmF1bHRzeyRSb3dJRH0tPntPVFJTfSwKICAgICAgICAp
OwoKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnUm93
JywKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICBPVFJTID0+ICRPVFJTRHJv
cGRvd24sCiAgICAgICAgICAgICAgICBKSVJBID0+ICRKSVJBRHJvcGRvd24KICAgICAgICAgICAg
fSwKICAgICAgICApOwogICAgfQoKICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAg
ICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZG1pbkpJUkFXaXphcmQnLAogICAgICAgIERhdGEgICAg
ICAgICA9PiB7fSwKICAgICk7Cn0KCnN1YiBfQ2hlY2tTdGVwMyB7CiAgICByZXR1cm47Cn0KCnN1
YiBfU2F2ZVN0ZXAzIHsKICAgIG15ICgkU2VsZikgPSBAXzsKCiAgICBteSAkU3lzQ29uZmlnT2Jq
ZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlN5c0NvbmZpZycpOwogICAg
bXkgJFBhcmFtT2JqZWN0ICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpX
ZWI6OlJlcXVlc3QnKTsKCiAgICBteSAlTWFwcGluZzsKCiAgICBST1dJRDoKICAgIGZvciBteSAk
Um93SUQgKCAwIC4uIDEwICkgewogICAgICAgIG15ICRPVFJTID0gJFBhcmFtT2JqZWN0LT5HZXRQ
YXJhbSggUGFyYW0gPT4gJ09UUlMnIC4gJFJvd0lEICk7CiAgICAgICAgbXkgJEpJUkEgPSAkUGFy
YW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnSklSQScgLiAkUm93SUQgKTsKCiAgICAgICAg
bmV4dCBST1dJRCBpZiAhJE9UUlMgfHwgISRKSVJBOwoKICAgICAgICBKSVJBRklFTERDSEVDSzoK
ICAgICAgICBmb3IgbXkgJEpJUkFGaWVsZENoZWNrICggcXcvcmVwb3J0ZXIgYXNzaWduZWUgaXNz
dWV0eXBlLyApIHsKICAgICAgICAgICAgbmV4dCBKSVJBRklFTERDSEVDSyBpZiAkSklSQSBuZSAi
c3RkOiRKSVJBRmllbGRDaGVjayI7CgogICAgICAgICAgICBteSAkU3VmZml4ID0gKCAkT1RSUyBu
ZSAnc3RkOkN1c3RvbWVyVXNlcklEJyAmJiAkT1RSUyA9fiBte0lEXHp9ICkgPyAnOmtleScgOiAn
Om5hbWUnOwogICAgICAgICAgICAkSklSQSAuPSAkU3VmZml4OwogICAgICAgIH0KCiAgICAgICAg
JE1hcHBpbmd7JE9UUlN9ID0gJEpJUkE7CiAgICB9CgogICAgbXkgJEZpZWxkbmFtZSA9ICdUaWNr
ZXRKSVJBIyMjT1RSUy1KSVJBLUZpZWxkTWFwcGluZyc7CiAgICBteSBAU2V0dGluZ3MgPSAoewog
ICAgICAgIE5hbWUgICAgICAgICAgID0+ICRGaWVsZG5hbWUsCiAgICAgICAgRWZmZWN0aXZlVmFs
dWUgPT4gXCVNYXBwaW5nLAogICAgfSk7CgogICAgbXkgJFN1Y2Nlc3MgPSAkU3lzQ29uZmlnT2Jq
ZWN0LT5TZXR0aW5nc1NldCgKICAgICAgICBTZXR0aW5ncyA9PiBcQFNldHRpbmdzLAogICAgICAg
IFVzZXJJRCAgID0+IDEsCiAgICApOwp9CgpzdWIgX0RlZmluZVN0ZXAzIHsKICAgIG15ICgkU2Vs
ZikgPSBAXzsKCiAgICByZXR1cm4gMSBpZiAkU2VsZi0+e1N0ZXAzfTsKCiAgICBteSAkRHluYW1p
Y0ZpZWxkT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNG
aWVsZCcpOwogICAgbXkgJEpJUkFUaWNrZXRPYmplY3QgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tl
cm5lbDo6U3lzdGVtOjpUaWNrZXRKSVJBJyk7CiAgICBteSAkTGF5b3V0T2JqZWN0ICAgICAgID0g
JEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgIG15
ICREeW5hbWljRmllbGRzID0gJER5bmFtaWNGaWVsZE9iamVjdC0+RHluYW1pY0ZpZWxkTGlzdEdl
dCgKICAgICAgICBWYWxpZCAgICAgICA9PiAxLAogICAgICAgIE9iamVjdFR5cGUgID0+IFsgJ1Rp
Y2tldCcgXSwKICAgICk7CgogICAgbXkgQFRpY2tldEF0dHJpYnV0ZXMgPSBxdygKICAgICAgIFF1
ZXVlIFByaW9yaXR5IFRpY2tldElEIFRpY2tldE51bWJlciBUaXRsZSBPd25lciBSZXNwb25zaWJs
ZSBTdGF0ZSBTdGF0ZVR5cGUKICAgICAgIFF1ZXVlSUQgU3RhdGVJRCBPd25lcklEIFJlc3BvbnNp
YmxlSUQgU0xBSUQgU2VydmljZUlEIFByaW9yaXR5SUQgTG9jayBMb2NrSUQKICAgICAgIEN1c3Rv
bWVySUQgQ3VzdG9tZXJVc2VySUQgVHlwZSBUeXBlSUQgQWdlIENyZWF0ZWQgQ3JlYXRlZFRpbWVV
bml0cyBDcmVhdGVCeQogICAgICAgQ2hhbmdlQnkgQ2hhbmdlZCBBcmNoaXZlRmxhZyBSZWFsVGls
bFRpbWVOb3RVc2VkIEVzY2FsYXRpb25VcGRhdGVUaW1lCiAgICAgICBVbmxvY2tUaW1lb3V0IEVz
Y2FsYXRpb25SZXNwb25zZVRpbWUgRXNjYWxhdGlvblNvbHV0aW9uVGltZSBFc2NhbGF0aW9uVGlt
ZQogICAgICAgRnJvbSBUbyBDYyBTdWJqZWN0IFJlcGx5VG8gIE1lc3NhZ2VJRCBJblJlcGx5VG8g
UmVmZXJlbmNlcyBCb2R5IENvbnRlbnRUeXBlCiAgICAgICBTZW5kZXJUeXBlSUQgQXJ0aWNsZVR5
cGVJRCBJbmNvbWluZ1RpbWUgQXJ0aWNsZUlEIFNlbmRlclR5cGUgQXJ0aWNsZVR5cGUKICAgICk7
CgogICAgbXkgJU9UUlNGaWVsZE1hcCA9IG1hcHsgKCJzdGQ6JF8iID0+ICRfKSB9IEBUaWNrZXRB
dHRyaWJ1dGVzOwogICAgZm9yIG15ICREeW5hbWljRmllbGQgKCBAeyAkRHluYW1pY0ZpZWxkcyB8
fCBbXSB9ICkgewogICAgICAgbXkgJE5hbWUgID0gJER5bmFtaWNGaWVsZC0+e05hbWV9OwogICAg
ICAgbXkgJExhYmVsID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRl
KCdEeW5hbWljIEZpZWxkJyk7CiAgICAgICAkT1RSU0ZpZWxkTWFweyAiZHluOiROYW1lIiB9ID0g
JygnIC4gJExhYmVsIC4gJykgJyAuICROYW1lOwogICAgfQoKICAgICRTZWxmLT57U3RlcDN9LT57
T1RSU0ZpZWxkc30gPSBcJU9UUlNGaWVsZE1hcDsKCiAgICBteSAkRmllbGRUeXBlcyA9ICRKSVJB
VGlja2V0T2JqZWN0LT5GaWVsZHNHZXQoIFJldHVybiA9PiAndHlwZXMnICk7CiAgICBteSAkSklS
QUZpZWxkcyA9ICRKSVJBVGlja2V0T2JqZWN0LT5GaWVsZHNHZXQoKTsKCiAgICBteSAlQ3VzdG9t
RmllbGRzID0gcmV2ZXJzZSAleyAkSklSQUZpZWxkcyB8fCB7fSB9OwoKICAgIG15ICVKSVJBRmll
bGRNYXA7CiAgICBmb3IgbXkgJEZpZWxkTmFtZSAoIGtleXMgJXsgJEZpZWxkVHlwZXMgfHwge30g
fSApIHsKICAgICAgICBteSAkVHlwZSA9ICdzdGQnOwoKICAgICAgICBpZiAoICRGaWVsZE5hbWUg
PX4gbXtcQSBjdXN0b21maWVsZF8gfXhtcyApIHsKICAgICAgICAgICAgJFR5cGUgPSAnY3VzdCc7
CiAgICAgICAgICAgICRGaWVsZE5hbWUgPX4gc3tjdXN0b21maWVsZF99e307CiAgICAgICAgICAg
ICRGaWVsZE5hbWUgPSAkQ3VzdG9tRmllbGRzeyRGaWVsZE5hbWV9OwogICAgICAgIH0KCiAgICAg
ICAgJEpJUkFGaWVsZE1hcHsiJFR5cGU6JEZpZWxkTmFtZSJ9ID0gJEZpZWxkTmFtZTsKICAgIH0K
CiAgICAkU2VsZi0+e1N0ZXAzfS0+e0pJUkFGaWVsZHN9ID0gXCVKSVJBRmllbGRNYXA7Cn0KCnN1
YiBKSVJBUHJvamVjdHMgewogICAgbXkgKCRTZWxmKSA9IEBfOwoKICAgIG15ICRVdGlsc09iamVj
dCAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SklSQTo6VXRpbHMnKTsKICAg
IG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwoK
ICAgIG15ICRQcm9qZWN0cyA9ICRVdGlsc09iamVjdC0+UHJvamVjdHNHZXQoIEZvcmNlID0+IDEg
KTsKICAgIG15ICRTZWxlY3RlZCA9ICRDb25maWdPYmplY3QtPkdldCgnVGlja2V0SklSQScpLT57
UHJvamVjdH07CgogICAgcmV0dXJuICggJFByb2plY3RzLCAkU2VsZWN0ZWQgKTsKfQoKCjE7Cg==
IyAgLS0KIyAgQ29weXJpZ2h0IChDKSAyMDA4LTIwMTggY2F0V29ya1ggR21iSCBodHRwOi8vd3d3
LmNhdHdvcmt4LmRlCiMgIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkg
Tk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5H
IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZl
IHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAt
LQoKcGFja2FnZSBLZXJuZWw6Ok1vZHVsZXM6OkFnZW50VGlja2V0SklSQTsKCnVzZSBzdHJpY3Q7
CnVzZSB3YXJuaW5nczsKCnVzZSBMaXN0OjpVdGlsIHF3KGZpcnN0KTsKCm91ciBAT2JqZWN0RGVw
ZW5kZW5jaWVzID0gcXcoCiAgICBLZXJuZWw6OkNvbmZpZwogICAgS2VybmVsOjpTeXN0ZW06Okxv
ZwogICAgS2VybmVsOjpTeXN0ZW06Ok1haW4KICAgIEtlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlv
dXQKICAgIEtlcm5lbDo6U3lzdGVtOjpUaWNrZXQKICAgIEtlcm5lbDo6U3lzdGVtOjpUaWNrZXRK
SVJBCiAgICBLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0Cik7CgpzdWIgbmV3IHsKICAgIG15
ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2Jq
ZWN0CiAgICBteSAkU2VsZiA9IHslUGFyYW19OwogICAgYmxlc3MgKCRTZWxmLCAkVHlwZSk7Cgog
ICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7
CiAgICAkU2VsZi0+e0RlYnVnfSAgID0gJENvbmZpZ09iamVjdC0+R2V0KCdKSVJBOjpEZWJ1Zycp
OwoKICAgIGlmICggJFNlbGYtPntEZWJ1Z30gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgn
S2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdpbmZv
JywKICAgICAgICAgICAgTWVzc2FnZSA9PiBfX1BBQ0tBR0VfXyAuICc6Om5ldygpOiBTdWJhY3Rp
b249JyAuICRQYXJhbXtTdWJhY3Rpb259IC4gJyBUaWNrZXRJRD0nIC4gJFBhcmFte1RpY2tldElE
fSwKICAgICAgICApOwogICAgfQoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBt
eSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRUaWNrZXRPYmplY3QgICAgID0gJEtl
cm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpY2tldCcpOwogICAgbXkgJENvbmZpZ09i
amVjdCAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwogICAgbXkgJE1h
aW5PYmplY3QgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TWFpbicp
OwogICAgbXkgJExvZ09iamVjdCAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5
c3RlbTo6TG9nJyk7CiAgICBteSAkVGlja2V0SklSQU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQo
J0tlcm5lbDo6U3lzdGVtOjpUaWNrZXRKSVJBJyk7CiAgICBteSAkTGF5b3V0T2JqZWN0ICAgICA9
ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKICAgIG15
ICRQYXJhbU9iamVjdCAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Oldl
Yjo6UmVxdWVzdCcpOwoKICAgIG15ICVEYXRhICA9ICgpOwogICAgbXkgJEJsb2NrID0gJ1N1Y2Nl
c3MnOwoKICAgICMgU3ViYWN0aW9uID0gSklSQTJPVFJTIHx8IE9UUlMySklSQQogICAgbXkgJVRp
Y2tldCA9ICRUaWNrZXRPYmplY3QtPlRpY2tldEdldCgKICAgICAgICBUaWNrZXRJRCA9PiAkU2Vs
Zi0+e1RpY2tldElEfSwKICAgICAgICBVc2VySUQgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAp
OwoKICAgIGlmICggJFNlbGYtPntEZWJ1Z30gKSB7CiAgICAgICAgJExvZ09iamVjdC0+TG9nKAog
ICAgICAgICAgICBQcmlvcml0eSA9PiAnaW5mbycsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+IF9f
UEFDS0FHRV9fIC4gIjo6UnVuKCk6IFRpY2tldElEOiAkVGlja2V0e1RpY2tldElEfSBUaXRsZTog
JFRpY2tldHtUaXRsZX0gU3RhdGU6ICRUaWNrZXR7U3RhdGV9IgogICAgICAgICk7CiAgICB9Cgog
ICAgbXkgJEpJUkFDb25maWcgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpY2tldEpJUkEnKSB8fCB7
fTsKCiAgICBteSAkQWxsb3dlZFN0YXRlc05hbWVzID0gJEpJUkFDb25maWctPntPVFJTVGlja2V0
QWxsb3dlZFN0YXRlczRDcmVhdGV9OwogICAgbXkgQEFsbG93ZWRTdGF0ZXNMaXN0ICA9IHNwbGl0
IC8sLywgJEFsbG93ZWRTdGF0ZXNOYW1lczsKCiAgICBpZiAoIGZpcnN0IHsgJF8gZXEgJFRpY2tl
dHtTdGF0ZX0gfSBAQWxsb3dlZFN0YXRlc0xpc3QgKSB7CiAgICAgICAgbXkgJEFydGljbGVJRCA9
ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdBcnRpY2xlSUQnICk7CgogICAgICAg
IG15ICRKSVJBSXNzdWUgPSAkVGlja2V0SklSQU9iamVjdC0+SXNzdWVDcmVhdGUoCiAgICAgICAg
ICAgIFRpY2tldElEICA9PiAkU2VsZi0+e1RpY2tldElEfSwKICAgICAgICAgICAgQXJ0aWNsZUlE
ID0+ICRBcnRpY2xlSUQsCiAgICAgICAgICAgIFVzZXJJRCAgICA9PiAkU2VsZi0+e1VzZXJJRH0s
CiAgICAgICAgICAgIFF1ZXVlSUQgICA9PiAkVGlja2V0e1F1ZXVlSUR9LAogICAgICAgICk7Cgog
ICAgICAgIGlmICggJFNlbGYtPntEZWJ1Z30gKSB7CiAgICAgICAgICAgICRMb2dPYmplY3QtPkxv
ZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdpbmZvJywKICAgICAgICAgICAgICAgIE1l
c3NhZ2UgID0+IF9fUEFDS0FHRV9fIC4gIjo6UnVuKCk6ICIgLiAkTWFpbk9iamVjdC0+RHVtcCgk
SklSQUlzc3VlKSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgIGlmICggJEpJUkFJ
c3N1ZS0+e2Vycm9yfSApIHsKICAgICAgICAgICAgJEJsb2NrICAgICAgID0gJ0Vycm9yJzsKICAg
ICAgICAgICAgJERhdGF7ZXJyb3J9ID0gJEpJUkFJc3N1ZS0+e2Vycm9yfTsKICAgICAgICB9Cgog
ICAgICAgIG15ICRVUkwgPSAkSklSQUNvbmZpZy0+e1VSTH07CgkgICAgICAKICAgICAgICAkRGF0
YXtpZH0gID0gJEpJUkFJc3N1ZS0+e2lkfTsKICAgICAgICAkRGF0YXtrZXl9ID0gJEpJUkFJc3N1
ZS0+e2tleX07CiAgICAgICAgJERhdGF7dXJsfSA9ICIkVVJML2Jyb3dzZS8iIC4gJEpJUkFJc3N1
ZS0+e2tleX07CgogICAgICAgIGlmICggJFNlbGYtPntEZWJ1Z30gKSB7CiAgICAgICAgICAgICRM
b2dPYmplY3QtPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdpbmZvJywKICAgICAg
ICAgICAgICAgIE1lc3NhZ2UgID0+IF9fUEFDS0FHRV9fIC4gIjo6UnVuKCk6IFRpY2tldC0+U3Rh
dGUgJFRpY2tldHtTdGF0ZX0gYWxsb3dzIGZldGNoaW5nICIKICAgICAgICAgICAgICAgICAgICAu
ICJvZiB0aGUgSklSQUlzc3VlLT5rZXk6ICIgLiAkSklSQUlzc3VlLT57a2V5fSwKICAgICAgICAg
ICAgKTsKICAgICAgICB9CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAkQmxvY2sgICAgICAgID0g
J0Vycm9yJzsKICAgICAgICAkRGF0YXtlcnJvcn0gID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdl
T2JqZWN0fS0+VHJhbnNsYXRlKAogICAgICAgICAgICAiVGlja2V0IG5vdCBpbiAkQWxsb3dlZFN0
YXRlc05hbWVzOiAiIC4gJFRpY2tldHtTdGF0ZX0gLiAiLiIKICAgICAgICApOwoKICAgICAgICBp
ZiAoICRTZWxmLT57RGVidWd9ICkgewogICAgICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAg
ICAgICAgICAgICBQcmlvcml0eSA9PiAnaW5mbycsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9
PiBfX1BBQ0tBR0VfXyAuICI6OlJ1bigpOiBPVFJTIFRpY2tldCBub3QgaW4gJEFsbG93ZWRTdGF0
ZXNOYW1lczogIiAuICRUaWNrZXR7U3RhdGV9CiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAg
fQoKICAgICREYXRhe1RpY2tldElEfSAgICAgPSAkU2VsZi0+e1RpY2tldElEfTsKICAgICREYXRh
e1RpY2tldE51bWJlcn0gPSAkVGlja2V0e1RpY2tldE51bWJlcn07CgogICAgJExheW91dE9iamVj
dC0+QmxvY2soCiAgICAgICAgRGF0YSA9PiBcJURhdGEsCiAgICAgICAgTmFtZSA9PiAkQmxvY2ss
CiAgICApOwoKICAgICMgYnVpbGQgb3V0cHV0CiAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVj
dC0+SGVhZGVyKFRpdGxlID0+ICJUaWNrZXRKSVJBIik7CiAgICAkT3V0cHV0ICAgLj0gJExheW91
dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwogICAgJE91dHB1dCAgIC49ICRMYXlvdXRPYmplY3Qt
Pk91dHB1dCgKICAgICAgICBEYXRhICAgICAgICAgPT4gXCVEYXRhLAogICAgICAgIFRlbXBsYXRl
RmlsZSA9PiAnQWdlbnRUaWNrZXRKSVJBJywKICAgICk7CiAgICAkT3V0cHV0ICAgLj0gJExheW91
dE9iamVjdC0+Rm9vdGVyKCk7CgogICAgcmV0dXJuICRPdXRwdXQ7Cn0KCjE7Cg==
IyAgLS0KIyAgQ29weXJpZ2h0IChDKSAyMDE2IC0gMjAxOCBjYXRXb3JrWCBHbWJIIGh0dHA6Ly93
d3cuY2F0d29ya3guZGUKIyAgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVM
WSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJ
TkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2Vp
dmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0Lgoj
IC0tCgpwYWNrYWdlIEtlcm5lbDo6TW9kdWxlczo6QWdlbnRUaWNrZXRKSVJBRGlhbG9nOwoKdXNl
IHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIExpc3Q6OlV0aWwgcXcoZmlyc3QpOwoKb3VyIEBP
YmplY3REZXBlbmRlbmNpZXMgPSBxdygKICAgIEtlcm5lbDo6Q29uZmlnCiAgICBLZXJuZWw6OlN5
c3RlbTo6TG9nCiAgICBLZXJuZWw6OlN5c3RlbTo6SlNPTgogICAgS2VybmVsOjpTeXN0ZW06Ok1h
aW4KICAgIEtlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQKICAgIEtlcm5lbDo6U3lzdGVtOjpU
aWNrZXQKICAgIEtlcm5lbDo6U3lzdGVtOjpUaWNrZXRKSVJBCiAgICBLZXJuZWw6OlN5c3RlbTo6
SklSQTo6VXRpbHMKICAgIEtlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QKICAgIEtlcm5lbDo6
U3lzdGVtOjpKSVJBOjpRdWV1ZVNldHRpbmdzCik7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUs
ICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBt
eSAkU2VsZiA9IHslUGFyYW19OwogICAgYmxlc3MgKCRTZWxmLCAkVHlwZSk7CgogICAgbXkgJENv
bmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CiAgICAkU2Vs
Zi0+e0RlYnVnfSAgID0gJENvbmZpZ09iamVjdC0+R2V0KCdKSVJBOjpEZWJ1ZycpOwoKICAgIGlm
ICggJFNlbGYtPntEZWJ1Z30gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpT
eXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdpbmZvJywKICAgICAg
ICAgICAgTWVzc2FnZSA9PiBfX1BBQ0tBR0VfXyAuICc6Om5ldygpOiBUaWNrZXRJRD0nIC4gJFBh
cmFte1RpY2tldElEfSwKICAgICAgICApOwogICAgfQoKICAgIHJldHVybiAkU2VsZjsKfQoKc3Vi
IFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRUaWNrZXRPYmpl
Y3QgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpY2tldCcpOwogICAg
bXkgJENvbmZpZ09iamVjdCAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycp
OwogICAgbXkgJExhbmd1YWdlT2JqZWN0ICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Okxh
bmd1YWdlJyk7CiAgICBteSAkTWFpbk9iamVjdCAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tl
cm5lbDo6U3lzdGVtOjpNYWluJyk7CiAgICBteSAkTG9nT2JqZWN0ICAgICAgICA9ICRLZXJuZWw6
Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKTsKICAgIG15ICRUaWNrZXRKSVJBT2JqZWN0
ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpY2tldEpJUkEnKTsKICAgIG15
ICRMYXlvdXRPYmplY3QgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhU
TUw6OkxheW91dCcpOwogICAgbXkgJFV0aWxzT2JqZWN0ICAgICAgPSAkS2VybmVsOjpPTS0+R2V0
KCdLZXJuZWw6OlN5c3RlbTo6SklSQTo6VXRpbHMnKTsKICAgIG15ICRQYXJhbU9iamVjdCAgICAg
ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpOwogICAg
bXkgJFNldHRpbmdzT2JqZWN0ICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6
SklSQTo6UXVldWVTZXR0aW5ncycpOwoKICAgIG15ICVHZXRQYXJhbTsKICAgIGZvciBteSAkUGFy
YW0gKCBxdy9UaWNrZXRJRCBQcm9qZWN0IEFzc2lnbmVlIElzc3VlVHlwZSBTdGF0ZSBBcnRpY2xl
SUQgSXNzdWVJRC8gKSB7CiAgICAgICAgJEdldFBhcmFteyRQYXJhbX0gPSAkUGFyYW1PYmplY3Qt
PkdldFBhcmFtKCBQYXJhbSA9PiAkUGFyYW0gKSB8fCAnJzsKICAgIH0KCiAgICBteSAkVGVtcGxh
dGVGaWxlID0gJ0FnZW50VGlja2V0SklSQURpYWxvZyc7CiAgICBteSAkRGVmYXVsdHMgICAgID0g
JENvbmZpZ09iamVjdC0+R2V0KCdUaWNrZXRKSVJBJykgfHwge307CiAgICBteSAlRGF0YSAgICAg
ICAgID0gJUdldFBhcmFtOwoKICAgIGlmICggISRTZWxmLT57U3ViYWN0aW9ufSApIHsKICAgICAg
ICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnRm9ybScsCiAgICAg
ICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICAgICAg
ICAgJVBhcmFtLAogICAgICAgICAgICB9LAogICAgICAgICk7CgogICAgICAgIG15ICVUaWNrZXQg
PSAkVGlja2V0T2JqZWN0LT5UaWNrZXRHZXQoCiAgICAgICAgICAgIFRpY2tldElEID0+ICRTZWxm
LT57VGlja2V0SUR9LAogICAgICAgICAgICBVc2VySUQgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAg
ICAgICAgKTsKCiAgICAgICAgbXkgJVNldHRpbmdzID0gJFNldHRpbmdzT2JqZWN0LT5WYWxpZFNl
dHRpbmdzR2V0KCBRdWV1ZUlEID0+ICRUaWNrZXR7UXVldWVJRH0gKTsKCiAgICAgICAgbXkgJFBy
b2plY3RzICAgICAgID0gJFV0aWxzT2JqZWN0LT5Qcm9qZWN0c0dldCgpOwogICAgICAgIG15ICRE
ZWZhdWx0UHJvamVjdCA9ICRTZXR0aW5nc3tQcm9qZWN0SUR9IHx8ICREZWZhdWx0cy0+e1Byb2pl
Y3R9OwoKICAgICAgICBteSAkU2hvd1Byb2plY3QgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0pJUkE6
OlNob3dQcm9qZWN0Jyk7CgogICAgICAgIGlmICggISRTaG93UHJvamVjdCApIHsKICAgICAgICAg
ICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdQcm9qZWN0
JywKICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICVHZXRQYXJh
bSwKICAgICAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICAgICAgUHJvamVj
dCA9PiAkRGVmYXVsdFByb2plY3QsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwog
ICAgICAgIH0KICAgICAgICBlbHNpZiAoICRTaG93UHJvamVjdCA9PSAxICkgewogICAgICAgICAg
ICAkUGFyYW17UHJvamVjdFNlbGVjdH0gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigK
ICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICA9PiAnUHJvamVjdCcsCiAgICAgICAgICAgICAg
ICBEYXRhICAgICAgICAgPT4gJFByb2plY3RzLAogICAgICAgICAgICAgICAgUG9zc2libGVOb25l
ID0+IDEsCiAgICAgICAgICAgICAgICBUcmFuc2xhdGlvbiAgPT4gMCwKICAgICAgICAgICAgICAg
IENsYXNzICAgICAgICA9PiAnVmFsaWRhdGUgTW9kZXJuaXplJywKICAgICAgICAgICAgICAgIFNl
bGVjdGVkSUQgICA9PiAkR2V0UGFyYW17UHJvamVjdH0gfHwgJFBhcmFte1Byb2plY3R9IHx8ICRE
ZWZhdWx0UHJvamVjdCwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICRMYXlvdXRPYmplY3Qt
PkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnUHJvamVjdFNlbGVjdCcsCiAgICAgICAg
ICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAlR2V0UGFyYW0sCiAgICAgICAg
ICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKICAg
ICAgICB9CgogICAgICAgIG15ICRVc2VycyA9ICRVdGlsc09iamVjdC0+VXNlcnNHZXQoCiAgICAg
ICAgICAgIFByb2plY3QgPT4gJERlZmF1bHRQcm9qZWN0LAogICAgICAgICk7CgogICAgICAgIG15
ICREZWZhdWx0QXNzaWduZWUgPSAkU2V0dGluZ3N7QXNzaWduZWV9IHx8ICREZWZhdWx0cy0+e0Fz
c2lnbmVlfTsKICAgICAgICBteSAkTm9Bc3NpZ25lZSAgICAgID0gJENvbmZpZ09iamVjdC0+R2V0
KCdKSVJBOjpOb0Fzc2lnbmVlJyk7CiAgICAgICAgbXkgJFNob3dBc3NpZ25lZSAgICA9ICRDb25m
aWdPYmplY3QtPkdldCgnSklSQTo6U2hvd0Fzc2lnbmVlJyk7CgogICAgICAgIGlmICggISRTaG93
QXNzaWduZWUgJiYgISROb0Fzc2lnbmVlICkgewogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5C
bG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0Fzc2lnbmVlJywKICAgICAgICAgICAgICAg
IERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICVHZXRQYXJhbSwKICAgICAgICAgICAgICAg
ICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICAgICAgQXNzaWduZWUgPT4gJERlZmF1bHRBc3Np
Z25lZSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAg
IGVsc2lmICggJFNob3dBc3NpZ25lZSA9PSAxICYmICEkTm9Bc3NpZ25lZSApIHsKICAgICAgICAg
ICAgaWYgKCAkQ29uZmlnT2JqZWN0LT5HZXQoJ0pJUkE6OlNob3dBdXRvbWF0aWNVc2VyJykgKSB7
CiAgICAgICAgICAgICAgICAkVXNlcnMtPnsnLTEnfSA9ICRMYW5ndWFnZU9iamVjdC0+VHJhbnNs
YXRlKCdhdXRvbWF0aWMtdXNlcicpOwogICAgICAgICAgICB9CgogICAgICAgICAgICAkUGFyYW17
QXNzaWduZWVTZWxlY3R9ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAg
ICAgICAgICBOYW1lICAgICAgICAgPT4gJ0Fzc2lnbmVlJywKICAgICAgICAgICAgICAgIERhdGEg
ICAgICAgICA9PiAkVXNlcnMsCiAgICAgICAgICAgICAgICBQb3NzaWJsZU5vbmUgPT4gMSwKICAg
ICAgICAgICAgICAgIFRyYW5zbGF0aW9uICA9PiAwLAogICAgICAgICAgICAgICAgQ2xhc3MgICAg
ICAgID0+ICdWYWxpZGF0ZSBNb2Rlcm5pemUnLAogICAgICAgICAgICAgICAgU2VsZWN0ZWRJRCAg
ID0+ICRHZXRQYXJhbXtBc3NpZ25lZX0gfHwgJFBhcmFte0Fzc2lnbmVlfSB8fCAkRGVmYXVsdEFz
c2lnbmVlLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2so
CiAgICAgICAgICAgICAgICBOYW1lID0+ICdBc3NpZ25lZVNlbGVjdCcsCiAgICAgICAgICAgICAg
ICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAlR2V0UGFyYW0sCiAgICAgICAgICAgICAg
ICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAgICAgIFZhbHVlID0+ICRHZXRQYXJhbXtBc3Np
Z25lZX0gfHwgJFBhcmFte0Fzc2lnbmVlfSB8fCAkRGVmYXVsdEFzc2lnbmVlLAogICAgICAgICAg
ICAgICAgfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgIG15ICRJc3N1ZVR5cGVz
ID0gJFV0aWxzT2JqZWN0LT5Jc3N1ZVR5cGVzR2V0KAogICAgICAgICAgICBQcm9qZWN0ID0+ICRE
ZWZhdWx0UHJvamVjdCwKICAgICAgICApOwoKICAgICAgICBteSAkRGVmYXVsdElzc3VlVHlwZSA9
ICREZWZhdWx0cy0+e0lzc3VlVHlwZX07CiAgICAgICAgbXkgJFNob3dJc3N1ZVR5cGUgICAgPSAk
Q29uZmlnT2JqZWN0LT5HZXQoJ0pJUkE6OlNob3dJc3N1ZVR5cGUnKTsKCiAgICAgICAgaWYgKCAh
JFNob3dJc3N1ZVR5cGUgKSB7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAg
ICAgICAgICAgICAgTmFtZSA9PiAnSXNzdWVUeXBlJywKICAgICAgICAgICAgICAgIERhdGEgPT4g
ewogICAgICAgICAgICAgICAgICAgICVHZXRQYXJhbSwKICAgICAgICAgICAgICAgICAgICAlUGFy
YW0sCiAgICAgICAgICAgICAgICAgICAgSXNzdWVUeXBlID0+ICREZWZhdWx0SXNzdWVUeXBlLAog
ICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgZWxzaWYg
KCAkU2hvd0lzc3VlVHlwZSA9PSAxICkgewogICAgICAgICAgICAkUGFyYW17SXNzdWVUeXBlU2Vs
ZWN0fSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgICAgICAgICAgTmFt
ZSAgICAgICAgID0+ICdJc3N1ZVR5cGUnLAogICAgICAgICAgICAgICAgRGF0YSAgICAgICAgID0+
ICRJc3N1ZVR5cGVzLAogICAgICAgICAgICAgICAgUG9zc2libGVOb25lID0+IDEsCiAgICAgICAg
ICAgICAgICBDbGFzcyAgICAgICAgPT4gJ1ZhbGlkYXRlIE1vZGVybml6ZScsCiAgICAgICAgICAg
ICAgICBTZWxlY3RlZElEICAgPT4gJEdldFBhcmFte0lzc3VlVHlwZX0gfHwgJFBhcmFte0lzc3Vl
VHlwZX0gfHwgJERlZmF1bHRJc3N1ZVR5cGUsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAk
TGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0lzc3VlVHlwZVNl
bGVjdCcsCiAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAlR2V0
UGFyYW0sCiAgICAgICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAgfSwKICAg
ICAgICAgICAgKTsKICAgICAgICB9CgojIFRPRE86IFdoZW4gd2Uga25vdyBob3cgdG8gZ2V0IGEg
bGlzdCBvZiBzdGF0ZXMsIHRoZW4gdGhpcyBzaG91bGQgYmUgcmVlbmFibGVkLi4uCiMgICAgICAg
IG15ICREZWZhdWx0U3RhdGUgPSAkRGVmYXVsdHMtPntTdGF0ZX07CiMKIyAgICAgICAgaWYgKCAh
JENvbmZpZ09iamVjdC0+R2V0KCdKSVJBOjpTaG93U3RhdGUnKSApIHsKIyAgICAgICAgICAgICRM
YXlvdXRPYmplY3QtPkJsb2NrKAojICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1N0YXRlJywKIyAg
ICAgICAgICAgICAgICBEYXRhID0+IHsKIyAgICAgICAgICAgICAgICAgICAgJUdldFBhcmFtLAoj
ICAgICAgICAgICAgICAgICAgICAlUGFyYW0sCiMgICAgICAgICAgICAgICAgICAgIFN0YXRlID0+
ICREZWZhdWx0U3RhdGUsCiMgICAgICAgICAgICAgICAgfSwKIyAgICAgICAgICAgICk7CiMgICAg
ICAgIH0KIyAgICAgICAgZWxzZSB7CiMgICAgICAgICAgICAkUGFyYW17U3RhdGVTZWxlY3R9ID0g
JExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiMgICAgICAgICAgICAgICAgTmFtZSAgICAg
ICAgID0+ICdTdGF0ZScsCiMgICAgICAgICAgICAgICAgRGF0YSAgICAgICAgID0+IHt9LAojICAg
ICAgICAgICAgICAgIFBvc3NpYmxlTm9uZSA9PiAxLAojICAgICAgICAgICAgICAgIENsYXNzICAg
ICAgICA9PiAnVmFsaWRhdGUnLAojICAgICAgICAgICAgKTsKIwojICAgICAgICAgICAgJExheW91
dE9iamVjdC0+QmxvY2soCiMgICAgICAgICAgICAgICAgTmFtZSA9PiAnU3RhdGVTZWxlY3QnLAoj
ICAgICAgICAgICAgICAgIERhdGEgPT4gewojICAgICAgICAgICAgICAgICAgICAlR2V0UGFyYW0s
CiMgICAgICAgICAgICAgICAgICAgICVQYXJhbSwKIyAgICAgICAgICAgICAgICB9LAojICAgICAg
ICAgICAgKQojICAgICAgICB9CiAgICB9CiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBl
cSAnQXNzaWduZWVTZWFyY2gnICkgewoKICAgICAgICAjIGJ1aWxkIHJlc3VsdCBsaXN0CiAgICAg
ICAgbXkgQFJlc3VsdDsKCiAgICAgICAgbXkgJFRlcm0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFt
KCBQYXJhbSA9PiAnVGVybScgKTsKICAgICAgICAkVGVybSAgICA9fiBze1wqfXsuKn1nOwoKICAg
ICAgICBteSAkUkU7CiAgICAgICAgZXZhbCB7CiAgICAgICAgICAgICRSRSA9IHFyLyRUZXJtL2k7
CiAgICAgICAgfTsKCiAgICAgICAgaWYgKCAkR2V0UGFyYW17UHJvamVjdH0gJiYgJFJFICkgewog
ICAgICAgICAgICBteSAkVXNlcnMgPSAkVXRpbHNPYmplY3QtPlVzZXJzR2V0KAogICAgICAgICAg
ICAgICAgUHJvamVjdCA9PiAkR2V0UGFyYW17UHJvamVjdH0sCiAgICAgICAgICAgICk7CgogICAg
ICAgICAgICBpZiAoICRDb25maWdPYmplY3QtPkdldCgnSklSQTo6U2hvd0F1dG9tYXRpY1VzZXIn
KSApIHsKICAgICAgICAgICAgICAgICRVc2Vycy0+eyctMSd9ID0gJExhbmd1YWdlT2JqZWN0LT5U
cmFuc2xhdGUoJ2F1dG9tYXRpYy11c2VyJyk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIEFT
U0lHTkVFOgogICAgICAgICAgICBmb3IgbXkgJFVzZXIgKCBrZXlzICV7ICRVc2VycyB8fCB7fSB9
ICkgewogICAgICAgICAgICAgICAgaWYgKCAoICRVc2VyID1+ICRSRSApIHx8ICggJFVzZXJzLT57
JFVzZXJ9ID1+ICRSRSApICkgewogICAgICAgICAgICAgICAgICAgIHB1c2ggQFJlc3VsdCwgewog
ICAgICAgICAgICAgICAgICAgICAgICBMYWJlbCA9PiAiJFVzZXJzLT57JFVzZXJ9ICgkVXNlciki
LAogICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZSA9PiAkVXNlciwKICAgICAgICAgICAgICAg
ICAgICB9OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAg
ICBteSAkSlNPTiA9ICRMYXlvdXRPYmplY3QtPkpTT05FbmNvZGUoCiAgICAgICAgICAgIERhdGEg
PT4gXEBSZXN1bHQsCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkF0
dGFjaG1lbnQoCiAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICdhcHBsaWNhdGlvbi9qc29uOyBj
aGFyc2V0PScgLiAkTGF5b3V0T2JqZWN0LT57Q2hhcnNldH0sCiAgICAgICAgICAgIENvbnRlbnQg
ICAgID0+ICRKU09OIHx8ICcnLAogICAgICAgICAgICBUeXBlICAgICAgICA9PiAnaW5saW5lJywK
ICAgICAgICAgICAgTm9DYWNoZSAgICAgPT4gMSwKICAgICAgICApOwogICAgfQogICAgZWxzaWYg
KCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0FKQVhVcGRhdGUnICkgewogICAgICAgIG15ICRKU09O
RGF0YSA9IFtdOwoKICAgICAgICBpZiAoICRHZXRQYXJhbXtQcm9qZWN0fSApIHsKICAgICAgICAg
ICAgbXkgJFVzZXJzID0gJFV0aWxzT2JqZWN0LT5Vc2Vyc0dldCgKICAgICAgICAgICAgICAgIFBy
b2plY3QgPT4gJEdldFBhcmFte1Byb2plY3R9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAg
bXkgJERlZmF1bHRBc3NpZ25lZSA9ICREZWZhdWx0cy0+e0Fzc2lnbmVlfTsKCiAgICAgICAgICAg
IGlmICggJENvbmZpZ09iamVjdC0+R2V0KCdKSVJBOjpTaG93QXV0b21hdGljVXNlcicpICkgewog
ICAgICAgICAgICAgICAgJFVzZXJzLT57Jy0xJ30gPSAkTGFuZ3VhZ2VPYmplY3QtPlRyYW5zbGF0
ZSgnYXV0b21hdGljLXVzZXInKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgcHVzaCBAeyAk
SlNPTkRhdGEgfSwgewogICAgICAgICAgICAgICAgTmFtZSAgICAgICAgID0+ICdBc3NpZ25lZScs
CiAgICAgICAgICAgICAgICBEYXRhICAgICAgICAgPT4gJFVzZXJzLAogICAgICAgICAgICAgICAg
UG9zc2libGVOb25lID0+IDEsCiAgICAgICAgICAgICAgICBDbGFzcyAgICAgICAgPT4gJ1ZhbGlk
YXRlIE1vZGVybml6ZScsCiAgICAgICAgICAgICAgICBTZWxlY3RlZElEICAgPT4gJEdldFBhcmFt
e0Fzc2lnbmVlfSB8fCAkUGFyYW17QXNzaWduZWV9IHx8ICREZWZhdWx0QXNzaWduZWUsCiAgICAg
ICAgICAgIH07CgogICAgICAgICAgICBteSAkSXNzdWVUeXBlcyA9ICRVdGlsc09iamVjdC0+SXNz
dWVUeXBlc0dldCgKICAgICAgICAgICAgICAgIFByb2plY3QgPT4gJEdldFBhcmFte1Byb2plY3R9
LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgbXkgJERlZmF1bHRJc3N1ZVR5cGUgPSAkRGVm
YXVsdHMtPntJc3N1ZVR5cGV9OwoKICAgICAgICAgICAgcHVzaCBAeyAkSlNPTkRhdGEgfSwgewog
ICAgICAgICAgICAgICAgTmFtZSAgICAgICAgID0+ICdJc3N1ZVR5cGUnLAogICAgICAgICAgICAg
ICAgRGF0YSAgICAgICAgID0+ICRJc3N1ZVR5cGVzLAogICAgICAgICAgICAgICAgUG9zc2libGVO
b25lID0+IDEsCiAgICAgICAgICAgICAgICBDbGFzcyAgICAgICAgPT4gJ1ZhbGlkYXRlIE1vZGVy
bml6ZScsCiAgICAgICAgICAgICAgICBTZWxlY3RlZElEICAgPT4gJEdldFBhcmFte0lzc3VlVHlw
ZX0gfHwgJFBhcmFte0lzc3VlVHlwZX0gfHwgJERlZmF1bHRJc3N1ZVR5cGUsCiAgICAgICAgICAg
IH07CgogICAgICAgICAgICBteSAkU3RhdGVzID0gJFV0aWxzT2JqZWN0LT5TdGF0ZXNHZXQoCiAg
ICAgICAgICAgICAgICBQcm9qZWN0ID0+ICRHZXRQYXJhbXtQcm9qZWN0fSwKICAgICAgICAgICAg
KTsKCiAgICAgICAgICAgIG15ICREZWZhdWx0U3RhdGUgPSAkRGVmYXVsdHMtPntTdGF0ZX07Cgog
ICAgICAgICAgICBwdXNoIEB7ICRKU09ORGF0YSB9LCB7CiAgICAgICAgICAgICAgICBOYW1lICAg
ICAgICAgPT4gJ1N0YXRlJywKICAgICAgICAgICAgICAgIERhdGEgICAgICAgICA9PiAkU3RhdGVz
LAogICAgICAgICAgICAgICAgUG9zc2libGVOb25lID0+IDEsCiAgICAgICAgICAgICAgICBDbGFz
cyAgICAgICAgPT4gJ1ZhbGlkYXRlIE1vZGVybml6ZScsCiAgICAgICAgICAgICAgICBTZWxlY3Rl
ZElEICAgPT4gJEdldFBhcmFte1N0YXRlfSB8fCAkUGFyYW17U3RhdGV9IHx8ICREZWZhdWx0U3Rh
dGUsCiAgICAgICAgICAgIH07CiAgICAgICAgfQoKICAgICAgICBteSAkSlNPTiA9ICRMYXlvdXRP
YmplY3QtPkJ1aWxkU2VsZWN0aW9uSlNPTiggJEpTT05EYXRhICk7CgogICAgICAgIHJldHVybiAk
TGF5b3V0T2JqZWN0LT5BdHRhY2htZW50KAogICAgICAgICAgICBDb250ZW50VHlwZSA9PiAnYXBw
bGljYXRpb24vanNvbjsgY2hhcnNldD0nIC4gJExheW91dE9iamVjdC0+e0NoYXJzZXR9LAogICAg
ICAgICAgICBDb250ZW50ICAgICA9PiAkSlNPTiwKICAgICAgICAgICAgVHlwZSAgICAgICAgPT4g
J2lubGluZScsCiAgICAgICAgICAgIE5vQ2FjaGUgICAgID0+IDEsCiAgICAgICAgKTsKICAgIH0K
ICAgIGVsc2lmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdDcmVhdGUnICkgewogICAgICAgICRM
YXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdDcmVhdGVSZXN1bHQnLAog
ICAgICAgICk7CgogICAgICAgIG15ICRCbG9jayA9ICdTdWNjZXNzJzsKCiAgICAgICAgbXkgJVRp
Y2tldCA9ICRUaWNrZXRPYmplY3QtPlRpY2tldEdldCgKICAgICAgICAgICAgVGlja2V0SUQgPT4g
JFNlbGYtPntUaWNrZXRJRH0sCiAgICAgICAgICAgIFVzZXJJRCAgID0+ICRTZWxmLT57VXNlcklE
fSwKICAgICAgICApOwoKICAgICAgICBpZiAoICRTZWxmLT57RGVidWd9ICkgewogICAgICAgICAg
ICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnaW5mbycsCiAg
ICAgICAgICAgICAgICBNZXNzYWdlICA9PiBfX1BBQ0tBR0VfXyAuICI6OlJ1bigpOiBUaWNrZXRJ
RDogJFRpY2tldHtUaWNrZXRJRH0gVGl0bGU6ICRUaWNrZXR7VGl0bGV9IFN0YXRlOiAkVGlja2V0
e1N0YXRlfSIKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgIG15ICRKSVJBQ29uZmln
ID0gJENvbmZpZ09iamVjdC0+R2V0KCdUaWNrZXRKSVJBJykgfHwge307CgogICAgICAgIG15ICRB
bGxvd2VkU3RhdGVzTmFtZXMgPSAkSklSQUNvbmZpZy0+e09UUlNUaWNrZXRBbGxvd2VkU3RhdGVz
NENyZWF0ZX07CiAgICAgICAgbXkgQEFsbG93ZWRTdGF0ZXNMaXN0ICA9IHNwbGl0IC8sLywgJEFs
bG93ZWRTdGF0ZXNOYW1lczsKCiAgICAgICAgaWYgKCBmaXJzdCB7ICRfIGVxICRUaWNrZXR7U3Rh
dGV9IH0gQEFsbG93ZWRTdGF0ZXNMaXN0ICkgewogICAgICAgICAgICBteSAkSklSQUlzc3VlID0g
JFRpY2tldEpJUkFPYmplY3QtPklzc3VlQ3JlYXRlKAogICAgICAgICAgICAgICAgVGlja2V0SUQg
ID0+ICRTZWxmLT57VGlja2V0SUR9LAogICAgICAgICAgICAgICAgQXJ0aWNsZUlEID0+ICRHZXRQ
YXJhbXtBcnRpY2xlSUR9LAogICAgICAgICAgICAgICAgVXNlcklEICAgID0+ICRTZWxmLT57VXNl
cklEfSwKICAgICAgICAgICAgICAgIFByb2plY3QgICA9PiAkR2V0UGFyYW17UHJvamVjdH0sCiAg
ICAgICAgICAgICAgICBBc3NpZ25lZSAgPT4gJEdldFBhcmFte0Fzc2lnbmVlfSwKICAgICAgICAg
ICAgICAgIElzc3VlVHlwZSA9PiAkR2V0UGFyYW17SXNzdWVUeXBlfSwKICAgICAgICAgICAgKTsK
CiAgICAgICAgICAgIGlmICggJFNlbGYtPntEZWJ1Z30gKSB7CiAgICAgICAgICAgICAgICAkTG9n
T2JqZWN0LT5Mb2coCiAgICAgICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2luZm8nLAogICAg
ICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+IF9fUEFDS0FHRV9fIC4gIjo6UnVuKCk6ICIgLiAk
TWFpbk9iamVjdC0+RHVtcCgkSklSQUlzc3VlKSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAg
ICAgIH0KCiAgICAgICAgICAgIGlmICggJEpJUkFJc3N1ZS0+e2Vycm9yfSApIHsKICAgICAgICAg
ICAgICAgICRCbG9jayAgICAgICA9ICdFcnJvcic7CiAgICAgICAgICAgICAgICAkRGF0YXtlcnJv
cn0gPSAkSklSQUlzc3VlLT57ZXJyb3J9OwoKICAgICAgICAgICAgICAgICREYXRhe1RpY2tldElE
fSAgICAgPSAkR2V0UGFyYW17VGlja2V0SUR9OwogICAgICAgICAgICAgICAgJERhdGF7VGlja2V0
TnVtYmVyfSA9ICRUaWNrZXR7VGlja2V0TnVtYmVyfTsKICAgICAgICAgICAgfQogICAgICAgICAg
ICBlbHNlIHsKICAgICAgICAgICAgICAgICMgbG9hZCBuZXcgVVJMIGluIHBhcmVudCB3aW5kb3cg
YW5kIGNsb3NlIHBvcHVwCiAgICAgICAgICAgICAgICBteSAkUmV0dXJuVVJMID0gIkFjdGlvbj1B
Z2VudFRpY2tldFpvb207VGlja2V0SUQ9JEdldFBhcmFte1RpY2tldElEfSI7CgogICAgICAgICAg
ICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPlBvcHVwQ2xvc2UoCiAgICAgICAgICAgICAgICAg
ICAgVVJMID0+ICRSZXR1cm5VUkwsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9Cgog
ICAgICAgICAgICBteSAkVVJMID0gJEpJUkFDb25maWctPntVUkx9OwoJICAgICAgCiAgICAgICAg
ICAgICREYXRhe2lkfSAgPSAkSklSQUlzc3VlLT57aWR9OwogICAgICAgICAgICAkRGF0YXtrZXl9
ID0gJEpJUkFJc3N1ZS0+e2tleX07CiAgICAgICAgICAgICREYXRhe3VybH0gPSAiJFVSTC9icm93
c2UvIiAuICRKSVJBSXNzdWUtPntrZXl9OwoKICAgICAgICAgICAgaWYgKCAkU2VsZi0+e0RlYnVn
fSApIHsKICAgICAgICAgICAgICAgICRMb2dPYmplY3QtPkxvZygKICAgICAgICAgICAgICAgICAg
ICBQcmlvcml0eSA9PiAnaW5mbycsCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gX19Q
QUNLQUdFX18gLiAiOjpSdW4oKTogVGlja2V0LT5TdGF0ZSAkVGlja2V0e1N0YXRlfSBhbGxvd3Mg
ZmV0Y2hpbmcgIgogICAgICAgICAgICAgICAgICAgICAgICAuICJvZiB0aGUgSklSQUlzc3VlLT5r
ZXk6ICIgLiAkSklSQUlzc3VlLT57a2V5fSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAg
IH0KICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRCbG9jayAgICAgICAgPSAn
RXJyb3InOwogICAgICAgICAgICAkRGF0YXtlcnJvcn0gID0gJExheW91dE9iamVjdC0+e0xhbmd1
YWdlT2JqZWN0fS0+VHJhbnNsYXRlKAogICAgICAgICAgICAgICAgIlRpY2tldCBub3QgaW4gJEFs
bG93ZWRTdGF0ZXNOYW1lczogIiAuICRUaWNrZXR7U3RhdGV9IC4gIi4iCiAgICAgICAgICAgICk7
CgogICAgICAgICAgICBpZiAoICRTZWxmLT57RGVidWd9ICkgewogICAgICAgICAgICAgICAgJExv
Z09iamVjdC0+TG9nKAogICAgICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdpbmZvJywKICAg
ICAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiBfX1BBQ0tBR0VfXyAuICI6OlJ1bigpOiBPVFJT
IFRpY2tldCBub3QgaW4gJEFsbG93ZWRTdGF0ZXNOYW1lczogIiAuICRUaWNrZXR7U3RhdGV9CiAg
ICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAkRGF0YXtU
aWNrZXRJRH0gICAgID0gJFNlbGYtPntUaWNrZXRJRH07CiAgICAgICAgJERhdGF7VGlja2V0TnVt
YmVyfSA9ICRUaWNrZXR7VGlja2V0TnVtYmVyfTsKCiAgICAgICAgJExheW91dE9iamVjdC0+Qmxv
Y2soCiAgICAgICAgICAgIE5hbWUgPT4gJEJsb2NrLAogICAgICAgICAgICBEYXRhID0+IFwlRGF0
YSwKICAgICAgICApOwogICAgfQoKICAgICMgdXNlciB3YW50cyB0byBsaW5rIHRpY2tldCB3aXRo
IGFuIGV4aXN0aW5nIGlzc3VlCiAgICAjIG5lZWRzIG9uIG90aGVyIGZvcm0KICAgIGVsc2lmICgg
JFNlbGYtPntTdWJhY3Rpb259IGVxICdMaW5rRXhpc3RpbmdJc3N1ZScgKSB7CiAgICAgICAgJExh
eW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ0Zvcm0nLAogICAgICAgICAg
ICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICVHZXRQYXJhbSwKICAgICAgICAgICAgICAgICVQ
YXJhbSwKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICAkVGVtcGxhdGVGaWxlID0g
J0FnZW50VGlja2V0SklSQURpYWxvZ0V4aXN0aW5nSXNzdWUnOwoKICAgICAgICBteSAkUHJvamVj
dHMgICAgICAgPSAkVXRpbHNPYmplY3QtPlByb2plY3RzR2V0KCk7CiAgICAgICAgbXkgJERlZmF1
bHRQcm9qZWN0ID0gJERlZmF1bHRzLT57UHJvamVjdH07CgogICAgICAgIGlmICggISRDb25maWdP
YmplY3QtPkdldCgnSklSQTo6U2hvd1Byb2plY3QnKSApIHsKICAgICAgICAgICAgJExheW91dE9i
amVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdQcm9qZWN0JywKICAgICAgICAg
ICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICVHZXRQYXJhbSwKICAgICAgICAg
ICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICAgICAgUHJvamVjdCA9PiAkRGVmYXVs
dFByb2plY3QsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAg
ICAgICBlbHNlIHsKICAgICAgICAgICAgJFBhcmFte1Byb2plY3RTZWxlY3R9ID0gJExheW91dE9i
amVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgICAgICAgICBOYW1lICAgICAgICAgPT4gJ1By
b2plY3QnLAogICAgICAgICAgICAgICAgRGF0YSAgICAgICAgID0+ICRQcm9qZWN0cywKICAgICAg
ICAgICAgICAgIFBvc3NpYmxlTm9uZSA9PiAxLAogICAgICAgICAgICAgICAgVHJhbnNsYXRpb24g
ID0+IDAsCiAgICAgICAgICAgICAgICBDbGFzcyAgICAgICAgPT4gJ1ZhbGlkYXRlIE1vZGVybml6
ZScsCiAgICAgICAgICAgICAgICBTZWxlY3RlZElEICAgPT4gJEdldFBhcmFte1Byb2plY3R9IHx8
ICRQYXJhbXtQcm9qZWN0fSB8fCAkRGVmYXVsdFByb2plY3QsCiAgICAgICAgICAgICk7CgogICAg
ICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1By
b2plY3RTZWxlY3QnLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAg
ICAgJUdldFBhcmFtLAogICAgICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAg
IH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICMgdXNlciB3YW50cyB0byBs
aW5rIHRpY2tldCB3aXRoIGFuIGV4aXN0aW5nIGlzc3VlCiAgICAjICAgLT4gY3JlYXRlIGxpbmsg
KHNldCBkeW5hbWljIGZpZWxkIGluIG90cnMgYW5kIGN1c3RvbSBmaWVsZCBpbiBKSVJBKQogICAg
ZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0NyZWF0ZUxpbmtXaXRoSXNzdWUnICkgewog
ICAgICAgICRUZW1wbGF0ZUZpbGUgPSAnQWdlbnRUaWNrZXRKSVJBRGlhbG9nRXhpc3RpbmdJc3N1
ZSc7CgogICAgICAgIG15ICVUaWNrZXQgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRHZXQoCiAgICAg
ICAgICAgIFRpY2tldElEID0+ICRTZWxmLT57VGlja2V0SUR9LAogICAgICAgICAgICBVc2VySUQg
ICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgKTsKCiAgICAgICAgJExheW91dE9iamVjdC0+
QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ0NyZWF0ZVJlc3VsdCcsCiAgICAgICAgKTsKCiAg
ICAgICAgbXkgJEJsb2NrID0gJ1N1Y2Nlc3MnOwoKICAgICAgICBteSAkSklSQUlzc3VlID0gJFRp
Y2tldEpJUkFPYmplY3QtPklzc3VlTGlua1RvT1RSUygKICAgICAgICAgICAgVGlja2V0SUQgID0+
ICRTZWxmLT57VGlja2V0SUR9LAogICAgICAgICAgICBVc2VySUQgICAgPT4gJFNlbGYtPntVc2Vy
SUR9LAogICAgICAgICAgICBJc3N1ZUlEICAgPT4gJEdldFBhcmFte0lzc3VlSUR9LAogICAgICAg
ICAgICBQcm9qZWN0ICAgPT4gJEdldFBhcmFte1Byb2plY3R9LAogICAgICAgICk7CgogICAgICAg
IGlmICggJFNlbGYtPntEZWJ1Z30gKSB7CiAgICAgICAgICAgICRMb2dPYmplY3QtPkxvZygKICAg
ICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdpbmZvJywKICAgICAgICAgICAgICAgIE1lc3NhZ2Ug
ID0+IF9fUEFDS0FHRV9fIC4gIjo6UnVuKCk6ICIgLiAkTWFpbk9iamVjdC0+RHVtcCgkSklSQUlz
c3VlKSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgIGlmICggJEpJUkFJc3N1ZS0+
e2Vycm9yfSApIHsKICAgICAgICAgICAgJEJsb2NrICAgICAgID0gJ0Vycm9yJzsKICAgICAgICAg
ICAgJERhdGF7ZXJyb3J9ID0gJEpJUkFJc3N1ZS0+e2Vycm9yfTsKCiAgICAgICAgICAgICREYXRh
e1RpY2tldElEfSAgICAgPSAkR2V0UGFyYW17VGlja2V0SUR9OwogICAgICAgICAgICAkRGF0YXtU
aWNrZXROdW1iZXJ9ID0gJFRpY2tldHtUaWNrZXROdW1iZXJ9OwogICAgICAgIH0KICAgICAgICBl
bHNlIHsKICAgICAgICAgICAgIyBsb2FkIG5ldyBVUkwgaW4gcGFyZW50IHdpbmRvdyBhbmQgY2xv
c2UgcG9wdXAKICAgICAgICAgICAgbXkgJFJldHVyblVSTCA9ICJBY3Rpb249QWdlbnRUaWNrZXRa
b29tO1RpY2tldElEPSRHZXRQYXJhbXtUaWNrZXRJRH0iOwoKICAgICAgICAgICAgcmV0dXJuICRM
YXlvdXRPYmplY3QtPlBvcHVwQ2xvc2UoCiAgICAgICAgICAgICAgICBVUkwgPT4gJFJldHVyblVS
TCwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgIG15ICRKSVJBQ29uZmlnID0gJENv
bmZpZ09iamVjdC0+R2V0KCdUaWNrZXRKSVJBJykgfHwge307CiAgICAgICAgbXkgJFVSTCAgICAg
ICAgPSAkSklSQUNvbmZpZy0+e1VSTH07CgkgICAgICAKICAgICAgICAkRGF0YXtpZH0gID0gJEpJ
UkFJc3N1ZS0+e2lkfTsKICAgICAgICAkRGF0YXtrZXl9ID0gJEpJUkFJc3N1ZS0+e2tleX07CiAg
ICAgICAgJERhdGF7dXJsfSA9ICIkVVJML2Jyb3dzZS8iIC4gJEpJUkFJc3N1ZS0+e2tleX07CiAg
ICB9CgogICAgIyB1c2VyIHdhbnRzIHRvIGxpbmsgdGlja2V0IHdpdGggYW4gZXhpc3RpbmcgaXNz
dWUKICAgICMgICAtPiBzZWFyY2ggZm9yIGV4aXN0aW5nIGlzc3VlcwogICAgZWxzaWYgKCAkU2Vs
Zi0+e1N1YmFjdGlvbn0gZXEgJ0lzc3VlU2VhcmNoJyApIHsKCiAgICAgICAgIyBidWlsZCByZXN1
bHQgbGlzdAogICAgICAgIG15ICRJc3N1ZXM7CgogICAgICAgIG15ICRUZXJtID0gJFBhcmFtT2Jq
ZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1Rlcm0nICk7CgogICAgICAgIGlmICggJEdldFBhcmFt
e1Byb2plY3R9ICYmICRUZXJtICkgewogICAgICAgICAgICAkSXNzdWVzID0gJFV0aWxzT2JqZWN0
LT5Jc3N1ZUxpc3QoCiAgICAgICAgICAgICAgICBQcm9qZWN0ID0+ICRHZXRQYXJhbXtQcm9qZWN0
fSwKICAgICAgICAgICAgICAgIFRlcm0gICAgPT4gJFRlcm0sCiAgICAgICAgICAgICk7CiAgICAg
ICAgfQoKICAgICAgICBteSAkSlNPTiA9ICRMYXlvdXRPYmplY3QtPkpTT05FbmNvZGUoCiAgICAg
ICAgICAgIERhdGEgPT4gJElzc3VlcywKICAgICAgICApOwoKICAgICAgICByZXR1cm4gJExheW91
dE9iamVjdC0+QXR0YWNobWVudCgKICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ2FwcGxpY2F0
aW9uL2pzb247IGNoYXJzZXQ9JyAuICRMYXlvdXRPYmplY3QtPntDaGFyc2V0fSwKICAgICAgICAg
ICAgQ29udGVudCAgICAgPT4gJEpTT04gfHwgJycsCiAgICAgICAgICAgIFR5cGUgICAgICAgID0+
ICdpbmxpbmUnLAogICAgICAgICAgICBOb0NhY2hlICAgICA9PiAxLAogICAgICAgICk7CiAgICB9
CgogICAgIyBidWlsZCBvdXRwdXQKICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFk
ZXIoCiAgICAgICAgVHlwZSAgICAgID0+ICdTbWFsbCcsCiAgICAgICAgQm9keUNsYXNzID0+ICdQ
b3B1cCcsCiAgICApOwoKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAg
ICAgIFRlbXBsYXRlRmlsZSA9PiAkVGVtcGxhdGVGaWxlLAogICAgICAgIERhdGEgICAgICAgICA9
PiB7CiAgICAgICAgICAgICVHZXRQYXJhbSwKICAgICAgICAgICAgJURhdGEsCiAgICAgICAgfSwK
ICAgICk7CgogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoCiAgICAgICAgVHlw
ZSA9PiAnU21hbGwnLAogICAgKTsKCiAgICByZXR1cm4gJE91dHB1dDsKfQoKMTsK
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==
IyAtLQojIENvcHlyaWdodCAoQykgMjAxNyBQZXJsLVNlcnZpY2VzLmRlLCBodHRwOi8vd3d3LnBl
cmwtc2VydmljZXMuZGUKIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZ
IE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlO
RyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2
ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMg
LS0KCjxkaXYgY2xhc3M9Ik1haW5Cb3ggQVJJQVJvbGVNYWluIExheW91dEZpeGVkU2lkZWJhciBT
aWRlYmFyRmlyc3QiPgogICAgPGgxPlslIFRyYW5zbGF0ZSgiSklSQSBRdWV1ZSBTZXR0aW5ncyIp
IHwgaHRtbCAlXTwvaDE+CiAgICA8ZGl2IGNsYXNzPSJTaWRlYmFyQ29sdW1uIj4KICAgICAgICA8
ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIi
PgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiQWN0aW9ucyIpIHwgaHRtbCAlXTwv
aDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4K
ICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iQWN0aW9uTGlzdCI+CiAgICAgICAgICAgICAgICAg
ICAgPGxpPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBZGRBY3Rpb24iKSAlXQogICAgICAgICAgICAg
ICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJB
Y3Rpb24iKSAlXTtTdWJhY3Rpb249RWRpdCIgY2xhc3M9IkNhbGxGb3JBY3Rpb24gRnVsbHNpemUg
Q2VudGVyIj48c3Bhbj48aSBjbGFzcz0iZmEgZmEtcGx1cy1zcXVhcmUiPjwvaT5bJSBUcmFuc2xh
dGUoIkFkZCBRdWV1ZSBTZXR0aW5ncyIpIHwgaHRtbCAlXTwvc3Bhbj48L2E+ClslIFJlbmRlckJs
b2NrRW5kKCJBZGRBY3Rpb24iKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdmVydmlld0FjdGlv
biIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsi
KSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdIiBjbGFzcz0iQ2FsbEZvckFjdGlvbiBGdWxs
c2l6ZSBDZW50ZXIiPjxzcGFuPjxpIGNsYXNzPSJmYSI+PC9pPlslIFRyYW5zbGF0ZSgiR28gdG8g
b3ZlcnZpZXciKSB8IGh0bWwgJV08L3NwYW4+PC9hPgpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnZp
ZXdBY3Rpb24iKSAlXQogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICA8
L3VsPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKWyUgUmVu
ZGVyQmxvY2tTdGFydCgiU2V0dGluZ3NPdmVydmlldyIpICVdCiAgICA8ZGl2IGNsYXNzPSJDb250
ZW50Q29sdW1uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAg
ICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgi
TGlzdCIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2
IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0iRGF0YVRhYmxl
IiBpZD0iQ2hlY2tsaXN0SXRlbVN0YXRlIj4KICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+CiAg
ICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0
aD5bJSBUcmFuc2xhdGUoIlF1ZXVlIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIlByb2plY3QiKSB8IGh0bWwgJV08L3RoPgogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiQXNzaWduZWUiKSB8IGh0
bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgi
VmFsaWRpdHkiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRo
PlslIFRyYW5zbGF0ZSgiQWN0aW9ucyIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAg
ICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICAg
ICAgICA8dGJvZHk+ClslIFJlbmRlckJsb2NrU3RhcnQoIk5vU2V0dGluZ3NGb3VuZCIpICVdCiAg
ICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0
ZCBjb2xzcGFuPSI1Ij5bJSBUcmFuc2xhdGUoIk5vIG1hdGNoZXMgZm91bmQuIikgfCBodG1sICVd
PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tFbmQoIk5v
U2V0dGluZ3NGb3VuZCIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIlNldHRpbmciKSAlXQogICAg
ICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5RdWV1ZU5hbWUgfCBodG1s
ICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuUHJv
amVjdCB8IGh0bWwgJV0gKFslIERhdGEuUHJvamVjdElEIHwgaHRtbCAlXSkKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5Bc3NpZ25lZSB8IGh0bWwgJV0K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKERh
dGEuVmFsaWQpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24i
KSAlXSZTdWJhY3Rpb249RWRpdCZRdWV1ZUlEPVslIERhdGEuUXVldWVJRCB8IHVyaSAlXSI+CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJlZGl0IikgfCBodG1s
ICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPiB8CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVsl
IEVudigiQWN0aW9uIikgJV0mU3ViYWN0aW9uPURlbGV0ZSZRdWV1ZUlEPVslIERhdGEuUXVldWVJ
RCB8IHVyaSAlXTtbJSBFbnYoIkNoYWxsZW5nZVRva2VuUGFyYW0iKSB8IGh0bWwgJV0iPgogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiZGVsZXRlIikgfCBodG1s
ICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVy
QmxvY2tFbmQoIlNldHRpbmciKSAlXQogICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+CiAgICAg
ICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAg
IDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiU2V0dGluZ3NPdmVydmlldyIpICVdCgoKWyUgUmVu
ZGVyQmxvY2tTdGFydCgiU2V0dGluZ3NNYXNrIikgJV0KICAgIDxkaXYgY2xhc3M9IkNvbnRlbnRD
b2x1bW4iPgogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxk
aXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJFZGl0
L0FkZCBKSVJBIFF1ZXVlIFNldHRpbmdzIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9k
aXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgPGZv
cm0gYWN0aW9uPSJbJSBFbnYoIkNHSUhhbmRsZSIpICVdIiBtZXRob2Q9InBvc3QiIGNsYXNzPSJW
YWxpZGF0ZSIgaWQ9Ik5ld0VkaXRTZXR0aW5nIj4KCiAgICAgICAgICAgICAgICAgICAgPGlucHV0
IHR5cGU9ImhpZGRlbiIgbmFtZT0iQWN0aW9uIiB2YWx1ZT0iWyUgRW52KCJBY3Rpb24iKSAlXSIv
PgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlv
biIgdmFsdWU9IlNhdmUiIC8+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRl
biIgbmFtZT0iSUQiIHZhbHVlPSJbJSBEYXRhLklEIHwgaHRtbCAlXSIvPgoKICAgICAgICAgICAg
ICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSI+CiAgICAgICAgICAgICAgICAgICAg
ICAgIDxsYWJlbCBmb3I9IlF1ZXVlSUQiIGNsYXNzPSJNYW5kYXRvcnkiPgogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj4KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiUXVldWUiKSB8IGh0bWwgJV06CiAgICAgICAg
ICAgICAgICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xh
c3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuUXVldWVTZWxl
Y3QgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlF1ZXVlRXJyb3IiIGNs
YXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA8cD5bJSBUcmFuc2xhdGUoIkEgUXVldWUgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPgog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA8ZGl2IGlkPSJRdWV1ZVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2Fn
ZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJBIFF1
ZXVlIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAg
ICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAg
ICAgPGxhYmVsIGZvcj0iUHJvamVjdElEIiBjbGFzcz0iIj4KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFslIFRyYW5zbGF0ZSgiUHJvamVjdCIpIHwgaHRtbCAlXToKICAgICAgICAgICAgICAg
ICAgICAgICAgPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmll
bGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5Qcm9qZWN0U2VsZWN0ICVd
CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8
ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwg
Zm9yPSJBc3NpZ25lZUlEIiBjbGFzcz0iIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsl
IFRyYW5zbGF0ZSgiQXNzaWduZWUiKSB8IGh0bWwgJV06CiAgICAgICAgICAgICAgICAgICAgICAg
IDwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuVXNlcnNTZWxlY3QgJV0KICAgICAgICAg
ICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9
IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IlZhbGlk
SUQiIGNsYXNzPSJNYW5kYXRvcnkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4g
Y2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRy
YW5zbGF0ZSgiVmFsaWQiKSB8IGh0bWwgJV06CiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFi
ZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFslIERhdGEuVmFsaWRTZWxlY3QgJV0KICAgICAgICAgICAgICAg
ICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFy
Ij48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9IlByaW1hcnkiIHR5cGU9InN1
Ym1pdCIgdmFsdWU9IlslIFRyYW5zbGF0ZSgiU2F2ZSIpIHwgaHRtbCAlXSI+WyUgVHJhbnNsYXRl
KCJTYXZlIikgfCBodG1sICVdPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBb
JSBUcmFuc2xhdGUoIm9yIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXSI+
WyUgVHJhbnNsYXRlKCJDYW5jZWwiKSB8IGh0bWwgJV08L2E+CiAgICAgICAgICAgICAgICAgICAg
ICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9k
aXY+CiAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD4KICAgICAgICAgICAgICAgIDwvZm9y
bT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KWyUgV1JBUFBF
UiBKU09uRG9jdW1lbnRDb21wbGV0ZSAlXQogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiPi8vPCFbQ0RBVEFbCiAgICAgICAgJCgnI1Byb2plY3RJRCcpLm9uKCdjaGFuZ2UnLCBmdW5j
dGlvbigpIHsKICAgICAgICAgICAgQ29yZS5BSkFYLkZvcm1VcGRhdGUoICQoJyNOZXdFZGl0U2V0
dGluZycpLCAnQUpBWFVwZGF0ZScsICdQcm9qZWN0SUQnLCBbICdBc3NpZ25lZScgXSApOwogICAg
ICAgIH0pOwogICAgLy9dXT48L3NjcmlwdD4KWyUgRU5EICVdClslIFJlbmRlckJsb2NrRW5kKCJT
ZXR0aW5nc01hc2siKSAlXQogICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2Pgo8L2Rpdj4K
IyAtLQojIENvcHlyaWdodCAoQykgMjAxNiBQZXJsLVNlcnZpY2VzLmRlLCBodHRwOi8vcGVybC1z
ZXJ2aWNlcy5kZQojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8g
V0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZv
ciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRo
aXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoK
PGRpdiBjbGFzcz0iTWFpbkJveCBBUklBUm9sZU1haW4iPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJT
dGVwcyIpICVdCiAgICA8ZGl2IGNsYXNzPSJDZW50ZXIiPgogICAgICAgIDx1bCBpZD0iUHJvZ3Jl
c3NCYXIiIGNsYXNzPSJQcm9ncmVzc0JhckVsZW1lbnRzWyUgRGF0YS5TdGVwcyB8IGh0bWwgJV0g
U3BhY2luZ1RvcCBTcGFjaW5nQm90dG9tIj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiU3RlcEpJUkEi
KSAlXQogICAgICAgICAgICA8bGkgY2xhc3M9IkZpcnN0IEhpZ2hsaWdodGVkIE5vTGluayBbJSBE
YXRhLkFjdGl2ZSB8IGh0bWwgJV0iIHN0eWxlPSJ3aWR0aDogMzE1cHgiPgogICAgICAgICAgICAg
ICAgPHNwYW4+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyI+WyUgVHJhbnNsYXRlKCJT
dGVwICVzIiwgRGF0YS5TdGVwKSB8IGh0bWwgJV08c3Bhbj5bJSBUcmFuc2xhdGUoIkpJUkEgU2V0
dGluZ3MiKSB8IGh0bWwgJV08L3NwYW4+PC9hPgogICAgICAgICAgICAgICAgPC9zcGFuPgogICAg
ICAgICAgICA8L2xpPgpbJSBSZW5kZXJCbG9ja0VuZCgiU3RlcEpJUkEiKSAlXQpbJSBSZW5kZXJC
bG9ja1N0YXJ0KCJTdGVwSXNzdWUiKSAlXQogICAgICAgICAgICA8bGkgY2xhc3M9IkhpZ2hsaWdo
dGVkIE5vTGluayBbJSBEYXRhLkFjdGl2ZSB8IGh0bWwgJV0iIHN0eWxlPSJ3aWR0aDogMzE1cHgi
PgogICAgICAgICAgICAgICAgPHNwYW4+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyI+
WyUgVHJhbnNsYXRlKCJTdGVwICVzIiwgRGF0YS5TdGVwKSB8IGh0bWwgJV08c3Bhbj5bJSBUcmFu
c2xhdGUoIklzc3VlIFNldHRpbmdzIikgfCBodG1sICVdPC9zcGFuPjwvYT4KICAgICAgICAgICAg
ICAgIDwvc3Bhbj4KICAgICAgICAgICAgPC9saT4KWyUgUmVuZGVyQmxvY2tFbmQoIlN0ZXBJc3N1
ZSIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIlN0ZXBNYXBwaW5nIikgJV0KICAgICAgICAgICAg
PGxpIGNsYXNzPSJMYXN0IEhpZ2hsaWdodGVkIE5vTGluayBbJSBEYXRhLkFjdGl2ZSB8IGh0bWwg
JV0iIHN0eWxlPSJ3aWR0aDogMzE1cHgiPgogICAgICAgICAgICAgICAgPHNwYW4+CiAgICAgICAg
ICAgICAgICAgICAgPGEgaHJlZj0iIyI+WyUgVHJhbnNsYXRlKCJTdGVwICVzIiwgRGF0YS5TdGVw
KSB8IGh0bWwgJV08c3Bhbj5bJSBUcmFuc2xhdGUoIkZpZWxkbWFwcGluZyIpIHwgaHRtbCAlXTwv
c3Bhbj48L2E+CiAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgIDwvbGk+ClslIFJl
bmRlckJsb2NrRW5kKCJTdGVwTWFwcGluZyIpICVdCiAgICAgICAgPC91bD4KICAgIDwvZGl2Pgpb
JSBSZW5kZXJCbG9ja0VuZCgiU3RlcHMiKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiU3RlcDEi
KSAlXQo8ZGl2IGNsYXNzPSJXOTUwcHggU3BhY2luZ1RvcCBTcGFjaW5nQm90dG9tIENlbnRlckJv
eCI+CiAgICA8Zm9ybSBhY3Rpb249IlslIEVudigiQ0dJSGFuZGxlIikgJV0iIG1ldGhvZD0icG9z
dCIgY2xhc3M9IlByZXZlbnRNdWx0aXBsZVN1Ym1pdHMiPgogICAgICAgIDxpbnB1dCB0eXBlPSJo
aWRkZW4iIG5hbWU9IkFjdGlvbiIgdmFsdWU9IkFkbWluSklSQVdpemFyZCI+CiAgICAgICAgPGlu
cHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iU3ViYWN0aW9uIiB2YWx1ZT0iU3RlcDIiPgogICAgICAg
IDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN0ZXAxU2F2ZSIgdmFsdWU9IjEiPgoKICAgICAg
ICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFk
ZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZShEYXRhLkl0ZW0pIHwgaHRtbCAl
XSAoWyUgRGF0YS5TdGVwICVdKTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAg
PGRpdiBjbGFzcz0iQ29udGVudCI+ClslIFJlbmRlckJsb2NrU3RhcnQoIlN0ZXAxSGFzRXJyb3Ii
KSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJFcnJvciI+CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIERhdGEuRXJyb3JNZXNzYWdlICkgfCBo
dG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgi
U3RlcDFIYXNFcnJvciIpICVdCiAgICAgICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxl
TGlrZSI+ClslIFJlbmRlckJsb2NrU3RhcnQoIkZpZWxkIikgJV0KICAgICAgICAgICAgICAgICAg
ICA8ZGl2IGNsYXNzPSJSb3cgWyUgRGF0YS5GaWVsZENsYXNzIHwgaHRtbCAlXSI+CiAgICAgICAg
ICAgICAgICAgICAgPGxhYmVsIGZvcj0iWyUgRGF0YS5GaWVsZCB8IGh0bWwgJV0iPlslIFRyYW5z
bGF0ZShEYXRhLkxhYmVsKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICA8
ZGl2IGNsYXNzPSJGaWVsZCI+ClslIFJlbmRlckJsb2NrU3RhcnQoIkZpZWxkSW5wdXQiKSAlXQog
ICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iWyUgRGF0YS5G
aWVsZCB8IGh0bWwgJV0iIGlkPSJbJSBEYXRhLkZpZWxkIHwgaHRtbCAlXSIgdmFsdWU9IlslIERh
dGEuVmFsdWUgJV0iPgpbJSBSZW5kZXJCbG9ja0VuZCgiRmllbGRJbnB1dCIpICVdClslIFJlbmRl
ckJsb2NrU3RhcnQoIkZpZWxkU2VsZWN0IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgWyUg
RGF0YS5GaWVsZCAlXQpbJSBSZW5kZXJCbG9ja0VuZCgiRmllbGRTZWxlY3QiKSAlXQpbJSBSZW5k
ZXJCbG9ja1N0YXJ0KCJGaWVsZEhpbnQiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8cCBj
bGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBU
cmFuc2xhdGUoRGF0YS5IaW50KSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC9w
PgpbJSBSZW5kZXJCbG9ja0VuZCgiRmllbGRIaW50IikgJV0KICAgICAgICAgICAgICAgICAgICA8
L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2
IGNsYXNzPSJDbGVhciI+PC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJGaWVsZCIpICVdCgogICAg
ICAgICAgICAgICAgPC9maWVsZHNldD4KCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJTcGFj
aW5nVG9wIFJpZ2h0Ij4KICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJQcmltYXJ5
IENhbGxGb3JBY3Rpb24iIHR5cGU9InN1Ym1pdCI+PHNwYW4+WyUgVHJhbnNsYXRlKCJOZXh0Iikg
fCBodG1sICVdPC9zcGFuPjwvYnV0dG9uPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAg
ICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9mb3JtPgo8L2Rpdj4KWyUgUmVuZGVyQmxv
Y2tFbmQoIlN0ZXAxIikgJV0KCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJTdGVwMiIpICVdCjxkaXYg
Y2xhc3M9Ilc5NTBweCBTcGFjaW5nVG9wIFNwYWNpbmdCb3R0b20gQ2VudGVyQm94Ij4KICAgIDxm
b3JtIGFjdGlvbj0iWyUgRW52KCJDR0lIYW5kbGUiKSAlXSIgbWV0aG9kPSJwb3N0IiBjbGFzcz0i
UHJldmVudE11bHRpcGxlU3VibWl0cyI+CiAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFt
ZT0iQWN0aW9uIiB2YWx1ZT0iQWRtaW5KSVJBV2l6YXJkIj4KICAgICAgICA8aW5wdXQgdHlwZT0i
aGlkZGVuIiBuYW1lPSJTdWJhY3Rpb24iIHZhbHVlPSJTdGVwMyI+CiAgICAgICAgPGlucHV0IHR5
cGU9ImhpZGRlbiIgbmFtZT0iU3RlcDJTYXZlIiB2YWx1ZT0iMSI+CgogICAgICAgIDxkaXYgY2xh
c3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAg
ICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKERhdGEuSXRlbSkgfCBodG1sICVdIChbJSBEYXRh
LlN0ZXAgJV0pPC9oMj4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8ZGl2IGNsYXNz
PSJDb250ZW50Ij4KWyUgUmVuZGVyQmxvY2tTdGFydCgiU3RlcDJIYXNFcnJvciIpICVdCiAgICAg
ICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkVycm9yIj4KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFslIFRyYW5zbGF0ZSggRGF0YS5FcnJvck1lc3NhZ2UgKSB8IGh0bWwgJV0KICAg
ICAgICAgICAgICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJTdGVwMkhhc0Vy
cm9yIikgJV0KICAgICAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIj4KWyUg
UmVuZGVyQmxvY2tTdGFydCgiRmllbGRTdGVwMiIpICVdCiAgICAgICAgICAgICAgICAgICAgPGRp
diBjbGFzcz0iUm93IFslIERhdGEuRmllbGRDbGFzcyB8IGh0bWwgJV0iPgogICAgICAgICAgICAg
ICAgICAgIDxsYWJlbCBmb3I9IlslIERhdGEuRmllbGQgfCBodG1sICVdIj5bJSBUcmFuc2xhdGUo
RGF0YS5MYWJlbCkgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBj
bGFzcz0iRmllbGQiPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJGaWVsZElucHV0MiIpICVdCiAgICAg
ICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJbJSBEYXRhLkZpZWxk
IHwgaHRtbCAlXSIgaWQ9IlslIERhdGEuRmllbGQgfCBodG1sICVdIiB2YWx1ZT0iWyUgRGF0YS5W
YWx1ZSAlXSI+ClslIFJlbmRlckJsb2NrRW5kKCJGaWVsZElucHV0MiIpICVdClslIFJlbmRlckJs
b2NrU3RhcnQoIkZpZWxkU2VsZWN0MiIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIFslIERh
dGEuRmllbGQgJV0KWyUgUmVuZGVyQmxvY2tFbmQoIkZpZWxkU2VsZWN0MiIpICVdClslIFJlbmRl
ckJsb2NrU3RhcnQoIkZpZWxkSGludFN0ZXAyIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAg
PHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAg
WyUgVHJhbnNsYXRlKERhdGEuSGludCkgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAg
IDwvcD4KWyUgUmVuZGVyQmxvY2tFbmQoIkZpZWxkSGludFN0ZXAyIikgJV0KWyUgUmVuZGVyQmxv
Y2tTdGFydCgiRmllbGRDaGFuZ2VTdGVwMiIpICVdClslIFdSQVBQRVIgSlNPbkRvY3VtZW50Q29t
cGxldGUgJV0KICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4vLzwhW0NEQVRBWwog
ICAgICAgIEpJUkEuQWRtaW5XaXphcmQuSW5pdFNlbGVjdCggIlslIERhdGEuRmllbGQgfCBodG1s
ICVdIiApOwogICAgLy9dXT48L3NjcmlwdD4KWyUgRU5EICVdClslIFJlbmRlckJsb2NrRW5kKCJG
aWVsZENoYW5nZVN0ZXAyIikgJV0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAg
ICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+
PC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJGaWVsZFN0ZXAyIikgJV0KCiAgICAgICAgICAgICAg
ICA8L2ZpZWxkc2V0PgoKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlNwYWNpbmdUb3AgUmln
aHQiPgogICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9IlByaW1hcnkgQ2FsbEZvckFj
dGlvbiIgdHlwZT0ic3VibWl0Ij48c3Bhbj5bJSBUcmFuc2xhdGUoIk5leHQiKSB8IGh0bWwgJV08
L3NwYW4+PC9idXR0b24+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+
CiAgICAgICAgPC9kaXY+CiAgICA8L2Zvcm0+CjwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiU3Rl
cDIiKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiU3RlcDMiKSAlXQo8ZGl2IGNsYXNzPSJXOTUw
cHggU3BhY2luZ1RvcCBTcGFjaW5nQm90dG9tIENlbnRlckJveCI+CiAgICA8Zm9ybSBhY3Rpb249
IlslIEVudigiQ0dJSGFuZGxlIikgJV0iIG1ldGhvZD0icG9zdCIgY2xhc3M9IlByZXZlbnRNdWx0
aXBsZVN1Ym1pdHMiPgogICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbiIg
dmFsdWU9IkFkbWluSklSQVdpemFyZCI+CiAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFt
ZT0iU3ViYWN0aW9uIiB2YWx1ZT0iU3RlcDNTYXZlIj4KICAgICAgICA8aW5wdXQgdHlwZT0iaGlk
ZGVuIiBuYW1lPSJTdGVwM1NhdmUiIHZhbHVlPSIxIj4KCiAgICAgICAgPGRpdiBjbGFzcz0iV2lk
Z2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAg
ICAgIDxoMj5bJSBUcmFuc2xhdGUoRGF0YS5JdGVtKSB8IGh0bWwgJV0gKFslIERhdGEuU3RlcCAl
XSk8L2gyPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRl
bnQiPgogICAgICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPSJUYWJsZUxpa2UiPgogICAgICAg
ICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0iRGF0YVRhYmxlIj4KICAgICAgICAgICAgICAgICAg
ICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIk9UUlMgVGlja2V0IEZpZWxk
IikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUg
VHJhbnNsYXRlKCJKSVJBIEZpZWxkIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAg
ICAgICAgICAgICAgICAgIDx0Ym9keT4KWyUgUmVuZGVyQmxvY2tTdGFydCgiUm93IikgJV0KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA8dGQ+WyUgRGF0YS5PVFJTICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA8dGQ+WyUgRGF0YS5KSVJBICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJSb3ciKSAlXQogICAgICAgICAgICAgICAgICAgICAg
ICA8L3Rib2R5PgogICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CgogICAgICAgICAgICAgICAg
ICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSBDb2xsYXBzZWQiPgogICAgICAgICAgICAgICAg
ICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAg
PGRpdiBjbGFzcz0iV2lkZ2V0QWN0aW9uIFRvZ2dsZSI+CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPGEgaHJlZj0iIyIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiU2hvdyBvciBoaWRlIHRo
ZSBjb250ZW50IikgfCBodG1sICVdIj48aSBjbGFzcz0iZmEgZmEtY2FyZXQtcmlnaHQiPjwvaT48
aSBjbGFzcz0iZmEgZmEtY2FyZXQtZG93biI+PC9pPjwvYT4KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0
ZSgiSW5mb3JtYXRpb24iKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICAgICAgICAgICAgICA8
L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CgogICAg
ICAgICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSI+CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJSb3ciPgogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFslIFRyYW5zbGF0ZSgiVGhpcyBtYXBwaW5nIGRlZmluZXMgd2hpY2ggaW5mb3JtYXRpb24g
YXJlIHRyYW5zZmVycmVkIGZyb20gT1RSUyB0byBKSVJBLiBPbiB0aGUgbGVmdCB5b3Ugc2VlIGFs
bCB0aGUgYXZhaWxhYmxlIGluZm9ybWF0aW9uIGluIE9UUlMgYW5kIG9uIHRoZSByaWdodCB5b3Ug
c2VlIHRoZSBmaWVsZHMgaW4gSklSQS4gUGxlYXNlIGtlZXAgaW4gbWluZCwgdGhhdCB0aGUgdHlw
ZSBvZiB0aGUgZmllbGRzIHNob3VsZCBtYXRjaCAoZGF0ZS90aW1lIGluZm9ybWF0aW9uIGluIE9U
UlMgbmVlZCB0byBiZSBzdG9yZWQgaW4gYSBkYXRlL3RpbWUgZmllbGQgaW4gSklSQSkiKSB8IGh0
bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlRo
ZXNlIGluZm9ybWF0aW9uIGFyZSB0cmFuc2ZlcnJlZCBhdXRvbWF0aWNhbGx5OiIpIHwgaHRtbCAl
XQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDxvbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDxsaT5bJSBUcmFuc2xhdGUoIlByb2plY3QgKHN0YW5kYXJkIHZhbHVlIGZy
b20gU3lzQ29uZmlnIG9yIHNlbGVjdGVkIHByb2plY3QpIikgfCBodG1sICVdPC9saT4KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5bJSBUcmFuc2xhdGUoIklz
c3VldHlwZSAoc3RhbmRhcmQgdmFsdWUgZnJvbSBTeXNDb25maWcgb3Igc2VsZWN0ZWQgaXNzdWV0
eXBlKSIpIHwgaHRtbCAlXTwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8bGk+WyUgVHJhbnNsYXRlKCJTdW1tYXJ5ICh0aWNrZXQgdGl0bGUpIikgfCBodG1s
ICVdPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5b
JSBUcmFuc2xhdGUoIkRlc2NyaXB0aW9uIChhcnRpY2xlIGJvZHkpIikgfCBodG1sICVdPC9saT4K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5bJSBUcmFuc2xh
dGUoIlJlcG9ydGVyIChzdGFuZGFyZCB2YWx1ZSBmcm9tIFN5c0NvbmZpZyBvciBzZWxlY3RlZCBy
ZXBvcnRlcikiKSB8IGh0bWwgJV08L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPGxpPlslIFRyYW5zbGF0ZSgiQXNzaWduZWUgKHN0YW5kYXJkIHZhbHVlIGZy
b20gU3lzQ29uZmlnIG9yIHNlbGVjdGVkIGFzc2lnbmVlKSIpIHwgaHRtbCAlXTwvbGk+CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+WyUgVHJhbnNsYXRlKCJP
VFJTVGlja2V0SUQgY3VzdG9tZmllbGQgKHRpY2tldCBpZCkiKSB8IGh0bWwgJV08L2xpPgogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L29sPgogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmllbGRzZXQ+CiAgICAgICAgICAg
ICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAg
ICAgICA8L2ZpZWxkc2V0PgoKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlNwYWNpbmdUb3Ag
UmlnaHQiPgogICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9IlByaW1hcnkgQ2FsbEZv
ckFjdGlvbiIgdHlwZT0ic3VibWl0Ij48c3Bhbj5bJSBUcmFuc2xhdGUoIk5leHQiKSB8IGh0bWwg
JV08L3NwYW4+PC9idXR0b24+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9k
aXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Zvcm0+CjwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgi
U3RlcDMiKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiVGhhbmtZb3UiKSAlXQo8ZGl2IGNsYXNz
PSJXOTUwcHggU3BhY2luZ1RvcCBTcGFjaW5nQm90dG9tIENlbnRlckJveCI+CiAgICA8ZGl2IGNs
YXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAg
ICAgIDxoMj5bJSBUcmFuc2xhdGUoIkNvbmZpZ3VyYXRpb24gZG9uZSIpIHwgaHRtbCAlXSAoWyUg
RGF0YS5TdGVwICVdKTwvaDI+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9IkNv
bnRlbnQiPgogICAgICAgICAgICA8Zm9ybSBhY3Rpb249IlslIEVudigiQ0dJSGFuZGxlIikgJV0i
IG1ldGhvZD0icG9zdCIgY2xhc3M9IlByZXZlbnRNdWx0aXBsZVN1Ym1pdHMiPgogICAgICAgICAg
ICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQWN0aW9uIiB2YWx1ZT0iQWRtaW4iPgog
ICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iU3BhY2luZ1RvcCBDZW50ZXIiPgogICAgICAgICAg
ICAgICAgICAgIDxidXR0b24gY2xhc3M9IlByaW1hcnkgQ2FsbEZvckFjdGlvbiIgdHlwZT0ic3Vi
bWl0Ij48c3Bhbj5bJSBUcmFuc2xhdGUoIkdvIHRvIEFkbWluIGFyZWEiKSB8IGh0bWwgJV08L3Nw
YW4+PC9idXR0b24+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9mb3JtPgog
ICAgICAgIDwvZGl2PgogICAgPC9kaXY+CjwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiVGhhbmtZ
b3UiKSAlXQo8L2Rpdj4KCg==
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
ISRBY2Nlc3NPazsKICAgIH0KCiAgICAjIGNoZWNrIGFjbAogICAgbXkgJUFDTExvb2t1cCA9IHJl
dmVyc2UgJXsgJFBhcmFte0FDTH0gfHwge30gfTsKICAgIGlmICggISRBQ0xMb29rdXB7JEFjdGlv
bn0gKSB7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIG15ICRKSVJBQ29uZmlnICAgICAgICAg
PSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpY2tldEpJUkEnKTsKICAgIG15ICRBbGxvd2VkU3RhdGVz
TmFtZXMgPSAkSklSQUNvbmZpZy0+e09UUlNUaWNrZXRBbGxvd2VkU3RhdGVzNENyZWF0ZX07CiAg
ICBteSBAQWxsb3dlZFN0YXRlc0xpc3QgID0gc3BsaXQgLywvLCAkQWxsb3dlZFN0YXRlc05hbWVz
OwoKICAgIGlmICggIWdyZXB7ICRQYXJhbXtUaWNrZXR9LT57U3RhdGV9IGVxICRfIH1AQWxsb3dl
ZFN0YXRlc0xpc3QgKSB7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgaWYgdGhlcmUgaXMg
YWxyZWFkeSBhIEpJUkEgaXNzdWUgZm9yIHRoYXQgdGlja2V0LCBkbyBub3Qgc2hvdyB0aGUgbWVu
dSBpdGVtCiAgICBpZiAoICRQYXJhbXtUaWNrZXR9LT57IkR5bmFtaWNGaWVsZF9KSVJBSXNzdWVJ
RCJ9ICkgewogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBteSAkTGFuZ3VhZ2VPYmplY3QgPSAk
TGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9OwoKICAgIHJldHVybiB7CiAgICAgICAgJXsg
JFBhcmFte0NvbmZpZ30gfSwKICAgICAgICAleyAkUGFyYW17VGlja2V0fSB9LAogICAgICAgICVQ
YXJhbSwKICAgICAgICBOYW1lICAgICAgICAgPT4gJExhbmd1YWdlT2JqZWN0LT5UcmFuc2xhdGUo
J09UUlMgdG8gSklSQScpLAogICAgICAgIERlc2NyaXB0aW9uICA9PiAkTGFuZ3VhZ2VPYmplY3Qt
PlRyYW5zbGF0ZSgnRXNjYWxhdGUgdGhpcyB0aWNrZXQgdG8gSklSQScpLAogICAgICAgIExpbmsg
ICAgICAgICA9PiAnQWN0aW9uPScgLiAkQWN0aW9uIC4gJztUaWNrZXRJRD1bJSBEYXRhLlRpY2tl
dElEICVdJywKICAgIH07Cn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAxNyBQZXJsLVNlcnZpY2VzLmRlLCBodHRwOi8vd3d3LnBl
cmwtc2VydmljZXMuZGUKIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZ
IE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlO
RyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2
ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMg
LS0KCnBhY2thZ2UgS2VybmVsOjpTeXN0ZW06OkpJUkE6OlF1ZXVlU2V0dGluZ3M7Cgp1c2Ugc3Ry
aWN0Owp1c2Ugd2FybmluZ3M7CgpvdXIgQE9iamVjdERlcGVuZGVuY2llcyA9IHF3KAogICAgS2Vy
bmVsOjpTeXN0ZW06OkxvZwogICAgS2VybmVsOjpTeXN0ZW06OkRCCiAgICBLZXJuZWw6OlN5c3Rl
bTo6VXNlcgogICAgS2VybmVsOjpTeXN0ZW06OlZhbGlkCiAgICBLZXJuZWw6OlN5c3RlbTo6VGlj
a2V0Cik7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06OkpJUkE6OlF1ZXVlU2V0dGluZ3MK
Cj1oZWFkMSBQVUJMSUMgSU5URVJGQUNFCgo9b3ZlciA0Cgo9Y3V0Cgo9aXRlbSBuZXcoKQoKY3Jl
YXRlIGFuIG9iamVjdAoKPWN1dAoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9
IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7
fTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCj1pdGVt
IFNldHRpbmdzQWRkKCkKCkFkZCB0aW1lIHRyYWNraW5nIAoKICAgIG15ICRJRCA9ICRTZXR0aW5n
c09iamVjdC0+U2V0dGluZ3NBZGQoCiAgICAgICAgUXVldWVJRCAgID0+IDEyMzUsCiAgICAgICAg
UHJvamVjdElEID0+ICd0cmFja2luZyB0aXRsZScsCiAgICAgICAgQXNzaWduZWUgID0+ICdvcGVu
JywgICMgb3IgU3RhdHVzSUQgPT4gMSwKICAgICAgICBWYWxpZElEICAgPT4gMSwKICAgICAgICBV
c2VySUQgICAgPT4gMTIzLAogICAgKTsKCj1jdXQKCnN1YiBTZXR0aW5nc0FkZCB7CiAgICBteSAo
ICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRMb2dPYmplY3QgPSAkS2VybmVsOjpPTS0+
R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyk7CiAgICBteSAkREJPYmplY3QgID0gJEtlcm5lbDo6
T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYK
ICAgIGZvciBteSAkTmVlZGVkICggcXcoUXVldWVJRCBVc2VySUQpICkgewogICAgICAgIGlmICgg
ISRQYXJhbXskTmVlZGVkfSApIHsKICAgICAgICAgICAgJExvZ09iamVjdC0+TG9nKAogICAgICAg
ICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+
ICJOZWVkICROZWVkZWQhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgIH0KICAgIH0KCiAgICAkUGFyYW17VmFsaWRJRH0gIHx8PSAwOwogICAgJFBhcmFte0Fzc2ln
bmVlfSB8fD0gJyc7CgogICAgIyBpbnNlcnQgbmV3IGl0ZW0KICAgIHJldHVybiBpZiAhJERCT2Jq
ZWN0LT5EbygKICAgICAgICBTUUwgPT4gJ0lOU0VSVCBJTlRPIGNhdF9qaXJhX3F1ZXVlX3NldHRp
bmdzICcKICAgICAgICAgICAgLiAnKHF1ZXVlX2lkLCBwcm9qZWN0X2lkLCBhc3NpZ25lZSwgdmFs
aWRfaWQsIGNyZWF0ZV90aW1lLCBjcmVhdGVfYnksIGNoYW5nZV90aW1lLCBjaGFuZ2VfYnkgKScK
ICAgICAgICAgICAgLiAnVkFMVUVTICg/LCA/LCA/LCA/LCBjdXJyZW50X3RpbWVzdGFtcCwgPywg
Y3VycmVudF90aW1lc3RhbXAsID8pJywKICAgICAgICBCaW5kID0+IFsKICAgICAgICAgICAgXCRQ
YXJhbXtRdWV1ZUlEfSwKICAgICAgICAgICAgXCRQYXJhbXtQcm9qZWN0SUR9LAogICAgICAgICAg
ICBcJFBhcmFte0Fzc2lnbmVlfSwKICAgICAgICAgICAgXCRQYXJhbXtWYWxpZElEfSwKICAgICAg
ICAgICAgXCRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICBcJFBhcmFte1VzZXJJRH0sCiAgICAg
ICAgXSwKICAgICk7CgogICAgcmV0dXJuICRQYXJhbXtRdWV1ZUlEfTsKfQoKCj1pdGVtIFNldHRp
bmdzVXBkYXRlKCkKCnRvIHVwZGF0ZSBuZXdzIAoKICAgIG15ICRTdWNjZXNzID0gJFNldHRpbmdz
T2JqZWN0LT5TZXR0aW5nc1VwZGF0ZSgKICAgICAgICBJRCAgICAgICA9PiAzLAogICAgICAgIFRp
Y2tldElEID0+IDEyMzUsCiAgICAgICAgVGl0bGUgICAgPT4gJ3RyYWNraW5nIHRpdGxlJywgIyAo
b3B0aW9uYWwpCiAgICAgICAgU3RhdHVzICAgPT4gJ29wZW4nLCAgIyBvciBTdGF0dXNJRCA9PiAx
LAogICAgKTsKCj1jdXQKCnN1YiBTZXR0aW5nc1VwZGF0ZSB7CiAgICBteSAoICRTZWxmLCAlUGFy
YW0gKSA9IEBfOwoKICAgIG15ICRMb2dPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6
OlN5c3RlbTo6TG9nJyk7CiAgICBteSAkREJPYmplY3QgID0gJEtlcm5lbDo6T00tPkdldCgnS2Vy
bmVsOjpTeXN0ZW06OkRCJyk7CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAk
TmVlZGVkICggcXcoUXVldWVJRCBVc2VySUQpICkgewogICAgICAgIGlmICggISRQYXJhbXskTmVl
ZGVkfSApIHsKICAgICAgICAgICAgJExvZ09iamVjdC0+TG9nKAogICAgICAgICAgICAgICAgUHJp
b3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICROZWVk
ZWQhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0K
CiAgICAkUGFyYW17VmFsaWRJRH0gIHx8PSAwOwogICAgJFBhcmFte0Fzc2lnbmVlfSB8fD0gJyc7
CgogICAgIyBpbnNlcnQgbmV3IGl0ZW0KICAgIHJldHVybiBpZiAhJERCT2JqZWN0LT5EbygKICAg
ICAgICBTUUwgPT4gJ1VQREFURSBjYXRfamlyYV9xdWV1ZV9zZXR0aW5ncyAnCiAgICAgICAgICAg
IC4gJ1NFVCBxdWV1ZV9pZCA9ID8sIHByb2plY3RfaWQgPSA/LCBhc3NpZ25lZSA9ID8sIHZhbGlk
X2lkID0gPywgJwogICAgICAgICAgICAuICcgY2hhbmdlX3RpbWUgPSBjdXJyZW50X3RpbWVzdGFt
cCwgY2hhbmdlX2J5ID0gPycKICAgICAgICAgICAgLiAnIFdIRVJFIHF1ZXVlX2lkID0gPycsCiAg
ICAgICAgQmluZCA9PiBbCiAgICAgICAgICAgIFwkUGFyYW17UXVldWVJRH0sCiAgICAgICAgICAg
IFwkUGFyYW17UHJvamVjdElEfSwKICAgICAgICAgICAgXCRQYXJhbXtBc3NpZ25lZX0sCiAgICAg
ICAgICAgIFwkUGFyYW17VmFsaWRJRH0sCiAgICAgICAgICAgIFwkUGFyYW17VXNlcklEfSwKICAg
ICAgICAgICAgXCRQYXJhbXtJRH0sCiAgICAgICAgXSwKICAgICk7CgogICAgcmV0dXJuIDE7Cn0K
Cj1pdGVtIFZhbGlkU2V0dGluZ3NHZXQoKQoKPWN1dAoKc3ViIFZhbGlkU2V0dGluZ3NHZXQgewog
ICAgbXkgKCRTZWxmLCAlUGFyYW0pID0gQF87CgogICAgbXkgJVNldHRpbmdzID0gJFNlbGYtPlNl
dHRpbmdzR2V0KCAlUGFyYW0gKTsKCiAgICByZXR1cm4gaWYgISVTZXR0aW5nczsKICAgIHJldHVy
biBpZiAhJFNldHRpbmdze1ZhbGlkfSBlcSAndmFsaWQnOwoKICAgIHJldHVybiAlU2V0dGluZ3M7
Cn0KCj1pdGVtIFNldHRpbmdzR2V0KCkKCnJldHVybnMgYSBoYXNoIHdpdGggbmV3cyBkYXRhCgog
ICAgbXkgJVNldHRpbmdzRGF0YSA9ICRTZXR0aW5nc09iamVjdC0+U2V0dGluZ3NHZXQoIElEID0+
IDIgKTsKClRoaXMgcmV0dXJucyBzb21ldGhpbmcgbGlrZToKCiAgICAlU2V0dGluZ3NEYXRhID0g
KAogICAgICAgIElEICAgICAgICAgICAgPT4gMywKICAgICAgICBDcmVhdG9yICAgICAgID0+ICdB
Z2VudCBOYW1lJywKICAgICAgICBDcmVhdGVCeSAgICAgID0+IDM1NCwKICAgICAgICBDcmVhdGVU
aW1lICAgID0+ICcnLAogICAgICAgIENoYW5nZUJ5ICAgICAgPT4gMzUsCiAgICAgICAgQ2hhbmdl
VGltZSAgICA9PiAnJywKICAgICk7Cgo9Y3V0CgpzdWIgU2V0dGluZ3NHZXQgewogICAgbXkgKCAk
U2VsZiwgJVBhcmFtICkgPSBAXzsKIAogICAgbXkgJExvZ09iamVjdCAgPSAkS2VybmVsOjpPTS0+
R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyk7CiAgICBteSAkREJPYmplY3QgICA9ICRLZXJuZWw6
Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwogICAgbXkgJFVzZXJPYmplY3QgPSAkS2Vy
bmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpOwoKICAgICMgY2hlY2sgbmVlZGVk
IHN0dWZmCiAgICBpZiAoICEkUGFyYW17UXVldWVJRH0gKSB7CiAgICAgICAgJExvZ09iamVjdC0+
TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdl
ICA9PiAnTmVlZCBJRCEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKCiAgICBy
ZXR1cm4gaWYgJFBhcmFte1F1ZXVlSUR9ID09IC0xOwoKICAgICMgc3FsCiAgICByZXR1cm4gaWYg
ISREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4gJ1NFTEVDVCBxdWV1ZV9pZCwgcHJv
amVjdF9pZCwgYXNzaWduZWUsIHMudmFsaWRfaWQsICcKICAgICAgICAgICAgLiAncy5jcmVhdGVf
YnksIHMuY3JlYXRlX3RpbWUsIHMuY2hhbmdlX2J5LCBzLmNoYW5nZV90aW1lLCBxLm5hbWUsIHYu
bmFtZSAnCiAgICAgICAgICAgIC4gJ0ZST00gY2F0X2ppcmFfcXVldWVfc2V0dGluZ3MgcyAnCiAg
ICAgICAgICAgIC4gJyAgTEVGVCBPVVRFUiBKT0lOIHF1ZXVlIHEgb24gcXVldWVfaWQgPSBxLmlk
ICcKICAgICAgICAgICAgLiAnICBMRUZUIE9VVEVSIEpPSU4gdmFsaWQgdiBvbiBzLnZhbGlkX2lk
ID0gdi5pZCAnCiAgICAgICAgICAgIC4gJ1dIRVJFIHF1ZXVlX2lkID0gPycsCiAgICAgICAgQmlu
ZCAgPT4gWyBcJFBhcmFte1F1ZXVlSUR9IF0sCiAgICAgICAgTGltaXQgPT4gMSwKICAgICk7Cgog
ICAgbXkgJVNldHRpbmdzOwogICAgd2hpbGUgKCBteSBARGF0YSA9ICREQk9iamVjdC0+RmV0Y2hy
b3dBcnJheSgpICkgewogICAgICAgICVTZXR0aW5ncyA9ICgKICAgICAgICAgICAgUXVldWVJRCAg
ICA9PiAkRGF0YVswXSwKICAgICAgICAgICAgUHJvamVjdElEICA9PiAkRGF0YVsxXSwKICAgICAg
ICAgICAgQXNzaWduZWUgICA9PiAkRGF0YVsyXSwKICAgICAgICAgICAgVmFsaWRJRCAgICA9PiAk
RGF0YVszXSwKICAgICAgICAgICAgQ3JlYXRlQnkgICA9PiAkRGF0YVs0XSwKICAgICAgICAgICAg
Q3JlYXRlVGltZSA9PiAkRGF0YVs1XSwKICAgICAgICAgICAgQ2hhbmdlQnkgICA9PiAkRGF0YVs2
XSwKICAgICAgICAgICAgQ2hhbmdlVGltZSA9PiAkRGF0YVs3XSwKICAgICAgICAgICAgUXVldWVO
YW1lICA9PiAkRGF0YVs4XSwKICAgICAgICAgICAgVmFsaWQgICAgICA9PiAkRGF0YVs5XSwKICAg
ICAgICApOwogICAgfQoKICAgIGlmICggJFNldHRpbmdze0NyZWF0ZUJ5fSApIHsKICAgICAgICAk
U2V0dGluZ3N7Q3JlYXRvcn0gPSAkVXNlck9iamVjdC0+VXNlckxvb2t1cCggVXNlcklEID0+ICRT
ZXR0aW5nc3tDcmVhdGVCeX0gKTsKICAgIH0KCiAgICByZXR1cm4gJVNldHRpbmdzOwp9Cgo9aXRl
bSBTZXR0aW5nc0RlbGV0ZSgpCgpkZWxldGVzIGEgcXVldWUgc2V0dGluZwoKICAgIG15ICRTdWNj
ZXNzID0gJFNldHRpbmdzT2JqZWN0LT5TZXR0aW5nc0RlbGV0ZSgKICAgICAgICBRdWV1ZUlEID0+
IDEyMywKICAgICk7Cgo9Y3V0CgpzdWIgU2V0dGluZ3NEZWxldGUgewogICAgbXkgKCAkU2VsZiwg
JVBhcmFtICkgPSBAXzsKCiAgICBteSAkTG9nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2Vy
bmVsOjpTeXN0ZW06OkxvZycpOwogICAgbXkgJERCT2JqZWN0ICA9ICRLZXJuZWw6Ok9NLT5HZXQo
J0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBpZiAo
ICEkUGFyYW17UXVldWVJRH0gKSB7CiAgICAgICAgJExvZ09iamVjdC0+TG9nKAogICAgICAgICAg
ICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBlaXRo
ZXIgUXVldWVJRCEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIG15ICRT
UUwgID0gJ0RFTEVURSBGUk9NIGNhdF9qaXJhX3F1ZXVlX3NldHRpbmdzIFdIRVJFIHF1ZXVlX2lk
ID0gPyc7CgogICAgcmV0dXJuIGlmICEkREJPYmplY3QtPkRvKAogICAgICAgIFNRTCAgPT4gJFNR
TCwKICAgICAgICBCaW5kID0+IFsgXCRQYXJhbXtRdWV1ZUlEfSBdLAogICAgKTsKCiAgICByZXR1
cm4gMTsKfQoKc3ViIFNldHRpbmdzTGlzdCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBf
OwoKICAgIG15ICRMb2dPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6
TG9nJyk7CiAgICBteSAkREJPYmplY3QgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0
ZW06OkRCJyk7CgogICAgbXkgJFNRTCAgPSAnU0VMRUNUIHF1ZXVlX2lkLCBxLm5hbWUgRlJPTSBj
YXRfamlyYV9xdWV1ZV9zZXR0aW5ncyBJTk5FUiBKT0lOIHF1ZXVlIHEgT04gcXVldWVfaWQgPSBx
LmlkJzsgCgogICAgaWYgKCAkUGFyYW17VmFsaWR9ICkgewogICAgICAgICRTUUwgLj0gJyBXSEVS
RSB2YWxpZF9pZCA9IDEnOwogICAgfQoKICAgIHJldHVybiBpZiAhJERCT2JqZWN0LT5QcmVwYXJl
KAogICAgICAgIFNRTCA9PiAkU1FMLAogICAgKTsKCiAgICBteSAlTGlzdDsKICAgIHdoaWxlICgg
bXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICRMaXN0eyAk
Um93WzBdIH0gPSAkUm93WzFdLAogICAgfQoKICAgIHJldHVybiAlTGlzdDsKfQoKMTsKCj1iYWNr
Cgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBB
QlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxl
IENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKZGlkIG5vdCBy
ZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwu
dHh0Pi4KCj1jdXQKCg==
IyAgLS0KIyAgS2VybmVsL1N5c3RlbS9KSVJBL1V0aWxzLnBtIC0gY29yZSBtb2R1bGUKIyAgQ29w
eXJpZ2h0IChDKSAyMDE2IGNhdFdvcmtYIEdtYkggaHR0cDovL3d3dy5jYXR3b3JreC5kZQojICAt
LQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3Ig
ZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZv
cm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBo
dHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVs
OjpTeXN0ZW06OkpJUkE6OlV0aWxzOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIEpJ
UkE6OlJFU1Q7CnVzZSBMaXN0OjpVdGlsIHF3KGZpcnN0KTsKCnVzZSBjb25zdGFudCBQID0+IF9f
UEFDS0FHRV9fOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSBxdygKICAgIEtlcm5lbDo6Q29u
ZmlnCiAgICBLZXJuZWw6OlN5c3RlbTo6TG9nCiAgICBLZXJuZWw6OlN5c3RlbTo6TWFpbgogICAg
S2VybmVsOjpTeXN0ZW06OkpTT04KICAgIEtlcm5lbDo6U3lzdGVtOjpDYWNoZQopOwoKCnN1YiBu
ZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBo
YXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBl
ICk7CgogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29u
ZmlnJyk7CiAgICBteSAkTG9nT2JqZWN0ICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpT
eXN0ZW06OkxvZycpOwoKICAgICRTZWxmLT57RGVidWd9ICAgICAgPSAkQ29uZmlnT2JqZWN0LT5H
ZXQoJ0pJUkE6OkRlYnVnJyk7CiAgICAkU2VsZi0+e0NvbmZpZ30gICAgID0gJENvbmZpZ09iamVj
dC0+R2V0KCdUaWNrZXRKSVJBJykgfHwge307CgogICAgbXkgJEhvc3QgPSAkUGFyYW17SklSQVVS
TH0gfHwgJFNlbGYtPntDb25maWd9LT57VVJMfSAuICRTZWxmLT57Q29uZmlnfS0+e1BhdGh9Owog
ICAgJEhvc3QgPX4gc3svXHp9e314bXNnOwoKICAgIG15ICRVc2VyICAgICA9ICRQYXJhbXtKSVJB
VVNFUn0gfHwgJFNlbGYtPntDb25maWd9LT57VXNlcn07CiAgICBteSAkUGFzc3dvcmQgPSAkUGFy
YW17SklSQVBXRH0gIHx8ICRTZWxmLT57Q29uZmlnfS0+e1Bhc3N3b3JkfTsKCiAgICAkU2VsZi0+
e0pJUkFDbGllbnR9ID0gSklSQTo6UkVTVC0+bmV3KAogICAgICAgICRIb3N0LAogICAgICAgICRV
c2VyLAogICAgICAgICRQYXNzd29yZCwKICAgICk7CgogICAgaWYgKCAkU2VsZi0+e0RlYnVnfSAp
IHsKICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICJkZWJ1
ZyIsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICIkSG9zdCAvLyAkVXNlciAvLyAkUGFzc3dvcmQi
LAogICAgICAgICk7CiAgICB9CgogICAgbXkgJFZlcmlmeVNTTCA9ICRDb25maWdPYmplY3QtPkdl
dCgnSklSQTo6U1NMVmVyaWZ5Jyk7CiAgICBpZiAoICEkVmVyaWZ5U1NMICkgewogICAgICAgIG15
ICRMb2FkZWQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TWFpbicpLT5SZXF1
aXJlKAogICAgICAgICAgICAnTmV0OjpTU0xlYXknLAogICAgICAgICAgICBTaWxlbnQgPT4gMSwK
ICAgICAgICApOwogICAgICAgIGlmICgkTG9hZGVkKSB7CiAgICAgICAgICAgICRTZWxmLT57SklS
QUNsaWVudH0tPntyZXN0fS0+Z2V0VXNlcmFnZW50KCktPnNzbF9vcHRzKCB2ZXJpZnlfaG9zdG5h
bWUgPT4gMCApOwogICAgICAgICAgICAkU2VsZi0+e0pJUkFDbGllbnR9LT57cmVzdH0tPmdldFVz
ZXJhZ2VudCgpLT5zc2xfb3B0cyggU1NMX3ZlcmZpeV9tb2RlID0+IE5ldDo6U1NMZWF5OjpWRVJJ
RllfTk9ORSgpICk7CiAgICAgICAgfQogICAgfQoKICAgICRTZWxmLT57Q2FjaGVUeXBlfSA9ICdK
SVJBVXRpbHMnOwogICAgJFNlbGYtPntDYWNoZVRUTH0gID0gJENvbmZpZ09iamVjdC0+R2V0KCdK
SVJBOjpDYWNoZVRUTCcpOwoKICAgIHJldHVybiAkU2VsZjsKfQoKPWl0ZW0gQ2hlY2soKQoKQ2hl
Y2tzIGlmIHRoZSBnaXZlbiBjcmVkZW50aWFscyBhcmUgY29ycmVjdC4gVGhpcyBpcyBkb25lIHdp
dGggdGhlIEFQSSBjYWxsIG9mICdteXByZWZlcmVuY2VzJwoKUmV0dXJucyAgSFRUUCBzdGF0dXM6
CgogIDIwMCAtPiBVUkwgT0ssIENyZWRlbnRpYWxzIE9LCiAgNDA0IC0+IFVSTCBOb3QgT0sKICA0
MDEgLT4gVVJMIE9LLCBDcmVkZW50aWFscyBOb3QgT0sKCj1jdXQKCnN1YiBDaGVjayB7CiAgICBt
eSAoJFNlbGYsICVQYXJhbSkgPSBAXzsKCiAgICBteSAkTG9nT2JqZWN0ICA9ICRLZXJuZWw6Ok9N
LT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKTsKICAgIG15ICRNYWluT2JqZWN0ID0gJEtlcm5l
bDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok1haW4nKTsKCiAgICBteSAkRXJyb3JHZXQgPSAn
JzsKCiAgICBldmFsewogICAgICAgIG15ICRQcmVmZXJlbmNlcyA9ICRTZWxmLT57SklSQUNsaWVu
dH0tPkdFVCggJy9teXByZWZlcmVuY2VzJyApOwogICAgfSBvciAkRXJyb3JHZXQgPSAkQDsKCiAg
ICBpZiAoICRTZWxmLT57RGVidWd9ICkgewogICAgICAgICRMb2dPYmplY3QtPkxvZygKICAgICAg
ICAgICAgUHJpb3JpdHkgPT4gJ2RlYnVnJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gUCAuICAi
OjpDaGVjazogIgogICAgICAgICAgICAgICAgLiAkTWFpbk9iamVjdC0+RHVtcCggWyAkU2VsZi0+
e0pJUkFDbGllbnR9LT57cmVzdH0tPmdldEhvc3QoKSAuICcvbXlwcmVmZXJlbmNlcycsICRFcnJv
ckdldCBdICksCiAgICAgICAgKTsKICAgIH0KCiAgICByZXR1cm4gMjAwIGlmICEkRXJyb3JHZXQ7
CgogICAgbXkgKCRFcnJvckNvZGUpID0gJEVycm9yR2V0ID1+IG17KFswLTldKyl9eG1zOwoKICAg
IHJldHVybiAoICRFcnJvckNvZGUsICRFcnJvckdldCApOwp9Cgo9aXRlbSBQcm9qZWN0c0dldCgp
Cgo9Y3V0CgpzdWIgUHJvamVjdHNHZXQgewogICAgbXkgKCRTZWxmLCAlUGFyYW0pID0gQF87Cgog
ICAgbXkgJExvZ09iamVjdCAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpM
b2cnKTsKICAgIG15ICRNYWluT2JqZWN0ICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5
c3RlbTo6TWFpbicpOwogICAgbXkgJENhY2hlT2JqZWN0ICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tl
cm5lbDo6U3lzdGVtOjpDYWNoZScpOwogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9N
LT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgbXkgJFByb2plY3RzID0gJENhY2hlT2JqZWN0
LT5HZXQoCiAgICAgICAgVHlwZSA9PiAkU2VsZi0+e0NhY2hlVHlwZX0gLiAnX1Byb2plY3RzJywK
ICAgICAgICBLZXkgID0+ICdBbGwnLAogICAgKTsKCiAgICBpZiAoICRQcm9qZWN0cyAmJiAhJFBh
cmFte0ZvcmNlfSApIHsKICAgICAgICByZXR1cm4gJFByb2plY3RzOwogICAgfQoKICAgIG15ICRN
ZXRhSlNPTjsKICAgIG15ICRFcnJvckdldDsKCiAgICBldmFsewogICAgICAgICRNZXRhSlNPTiA9
ICRTZWxmLT57SklSQUNsaWVudH0tPkdFVCggJy9pc3N1ZS9jcmVhdGVtZXRhJyApOwogICAgfSBv
ciAkRXJyb3JHZXQgPSAkQDsKCiAgICBpZiAoICRFcnJvckdldCApIHsKICAgICAgICAkTG9nT2Jq
ZWN0LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1l
c3NhZ2UgID0+IHNwcmludGYgUCAuICAiOjpQcm9qZWN0c0dldDogY2Fubm90IG1ldGFkYXRhOiAl
cyIsCiAgICAgICAgICAgICAgICAkRXJyb3JHZXQsCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJu
ICt7fTsKICAgIH0KCiAgICBteSBAV2hpdGVsaXN0ID0gQHsgJENvbmZpZ09iamVjdC0+R2V0KCdK
SVJBOjpQcm9qZWN0V2hpdGVsaXN0JykgfHwgW10gfTsKICAgIG15IEBCbGFja2xpc3QgPSBAeyAk
Q29uZmlnT2JqZWN0LT5HZXQoJ0pJUkE6OlByb2plY3RCbGFja2xpc3QnKSB8fCBbXSB9OwoKICAg
IGlmICggJFNlbGYtPntEZWJ1Z30gKSB7CiAgICAgICAgJExvZ09iamVjdC0+TG9nKAogICAgICAg
ICAgICBQcmlvcml0eSA9PiAnZGVidWcnLAogICAgICAgICAgICBNZXNzYWdlICA9PiBQIC4gICI6
OlByb2plY3RzR2V0OiAiCiAgICAgICAgICAgICAgICAuICRNYWluT2JqZWN0LT5EdW1wKCBbIFxA
V2hpdGVsaXN0LCBcQEJsYWNrbGlzdCwgJE1ldGFKU09OLT57cHJvamVjdHN9IF0gKSwKICAgICAg
ICApOwogICAgfQoKICAgIFBST0pFQ1RJVEVNOgogICAgZm9yIG15ICRQcm9qZWN0SXRlbSAoIEB7
ICRNZXRhSlNPTi0+e3Byb2plY3RzfSB8fCBbXSB9ICkgewogICAgICAgIG15ICRLZXkgID0gJFBy
b2plY3RJdGVtLT57a2V5fTsKICAgICAgICBteSAkTmFtZSA9ICRQcm9qZWN0SXRlbS0+e25hbWV9
OwoKICAgICAgICBpZiAoICRTZWxmLT57RGVidWd9ICkgewogICAgICAgICAgICAkTG9nT2JqZWN0
LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZGVidWcnLAogICAgICAgICAgICAg
ICAgTWVzc2FnZSAgPT4gUCAuICAiOjpQcm9qZWN0c0dldDogQ2hlY2sgUHJvamVjdCAkS2V5IC0+
ICROYW1lIgogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgaWYgKCBAV2hpdGVsaXN0
ICkgewogICAgICAgICAgICBuZXh0IFBST0pFQ1RJVEVNIGlmICEoZmlyc3R7ICRLZXkgPX4gbXsk
X314bXMgfUBXaGl0ZWxpc3QpOwogICAgICAgIH0KCiAgICAgICAgaWYgKCBAQmxhY2tsaXN0ICkg
ewogICAgICAgICAgICBuZXh0IFBST0pFQ1RJVEVNIGlmIChmaXJzdHsgJEtleSA9fiBteyRffXht
cyB9QEJsYWNrbGlzdCk7CiAgICAgICAgfQoKICAgICAgICAkUHJvamVjdHMtPnskS2V5fSA9ICRO
YW1lOwoKICAgICAgICAjIHNhdmUgaXNzdWV0eXBlcwogICAgICAgIG15ICRJc3N1ZVR5cGVzTGlz
dDsKCiAgICAgICAgbXkgJElzc3VlVHlwZXMgPSAkUHJvamVjdEl0ZW0tPntpc3N1ZXR5cGVzfSB8
fCBbXTsKCiAgICAgICAgSVNTVUVUWVBFOgogICAgICAgIGZvciBteSAkSXNzdWVUeXBlICggQHsg
JElzc3VlVHlwZXMgfSApIHsKCiAgICAgICAgICAgIG5leHQgSVNTVUVUWVBFIGlmICRJc3N1ZVR5
cGUtPntzdWJ0YXNrfTsKCiAgICAgICAgICAgIG15ICRJc3N1ZVR5cGVOYW1lID0gJElzc3VlVHlw
ZS0+e25hbWV9OwogICAgICAgICAgICAkSXNzdWVUeXBlc0xpc3QtPnskSXNzdWVUeXBlTmFtZX0g
PSAkSXNzdWVUeXBlTmFtZTsKICAgICAgICB9CgogICAgICAgICRDYWNoZU9iamVjdC0+U2V0KAog
ICAgICAgICAgICBUeXBlICA9PiAkU2VsZi0+e0NhY2hlVHlwZX0gLiAnX0lzc3VlVHlwZXMnLAog
ICAgICAgICAgICBLZXkgICA9PiAkS2V5LAogICAgICAgICAgICBWYWx1ZSA9PiAkSXNzdWVUeXBl
c0xpc3QsCiAgICAgICAgICAgIFRUTCAgID0+ICRTZWxmLT57Q2FjaGVUVEx9LAogICAgICAgICk7
CiAgICB9CgogICAgJFByb2plY3RzIC8vPSB7fTsKCiAgICBpZiAoICRTZWxmLT57RGVidWd9ICkg
ewogICAgICAgICRMb2dPYmplY3QtPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2RlYnVn
JywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gUCAuICAiOjpQcm9qZWN0c0dldDogIgogICAgICAg
ICAgICAgICAgLiAkTWFpbk9iamVjdC0+RHVtcCggJFByb2plY3RzICksCiAgICAgICAgKTsKICAg
IH0KCiAgICAkQ2FjaGVPYmplY3QtPlNldCgKICAgICAgICBUeXBlICA9PiAkU2VsZi0+e0NhY2hl
VHlwZX0gLiAnX1Byb2plY3RzJywKICAgICAgICBLZXkgICA9PiAnQWxsJywKICAgICAgICBWYWx1
ZSA9PiAkUHJvamVjdHMsCiAgICAgICAgVFRMICAgPT4gJFNlbGYtPntDYWNoZVRUTH0sCiAgICAp
OwoKICAgIHJldHVybiAkUHJvamVjdHM7Cn0KCj1pdGVtIElzc3VlVHlwZXNHZXQoKQoKR2V0IGFs
bCBpc3N1ZSB0eXBlcyB0aGF0IGJlbG9uZyB0byBhIHByb2plY3QgZnJvbSBKSVJBCgogICAgbXkg
JElzc3VlVHlwZXMgPSAkT2JqZWN0LT5Jc3N1ZVR5cGVzR2V0KAogICAgICAgIFByb2plY3QgPT4g
JFByb2plY3QsCiAgICApOwoKPWN1dAoKc3ViIElzc3VlVHlwZXNHZXQgewogICAgbXkgKCRTZWxm
LCAlUGFyYW0pID0gQF87CgogICAgbXkgJExvZ09iamVjdCAgID0gJEtlcm5lbDo6T00tPkdldCgn
S2VybmVsOjpTeXN0ZW06OkxvZycpOwogICAgbXkgJENhY2hlT2JqZWN0ID0gJEtlcm5lbDo6T00t
PkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyk7CgogICAgIyBjaGVjayBmb3IgbmVlZGVkIGRh
dGEKICAgIGZvciBteSAkTmVlZGVkICggcXcvUHJvamVjdC8gKSB7CiAgICAgICAgaWYgKCAhJFBh
cmFteyROZWVkZWR9ICkgewogICAgICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAg
ICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5l
ZWQgJE5lZWRlZCEiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
IH0KICAgIH0KCiAgICBteSAkSXNzdWVUeXBlcyA9ICRDYWNoZU9iamVjdC0+R2V0KAogICAgICAg
IFR5cGUgID0+ICRTZWxmLT57Q2FjaGVUeXBlfSAuICdfSXNzdWVUeXBlcycsCiAgICAgICAgS2V5
ICAgPT4gJFBhcmFte1Byb2plY3R9LAogICAgKTsKCiAgICBpZiAoICRJc3N1ZVR5cGVzICkgewog
ICAgICAgIHJldHVybiAkSXNzdWVUeXBlczsKICAgIH0KCiAgICAkU2VsZi0+UHJvamVjdHNHZXQo
IEZvcmNlID0+IDEgKTsKCiAgICAkSXNzdWVUeXBlcyA9ICRDYWNoZU9iamVjdC0+R2V0KAogICAg
ICAgIFR5cGUgID0+ICRTZWxmLT57Q2FjaGVUeXBlfSAuICdfSXNzdWVUeXBlcycsCiAgICAgICAg
S2V5ICAgPT4gJFBhcmFte1Byb2plY3R9LAogICAgKTsKCiAgICByZXR1cm4gJElzc3VlVHlwZXMg
fHwge307Cn0KCj1pdGVtIFVzZXJzR2V0KCkKCkdldCBhbGwgaXNzdWUgdHlwZXMgdGhhdCBiZWxv
bmcgdG8gYSBwcm9qZWN0IGZyb20gSklSQQoKICAgIG15ICRVc2VycyA9ICRPYmplY3QtPlVzZXJz
R2V0KAogICAgICAgIFByb2plY3QgPT4gJFByb2plY3QsCiAgICApOwoKPWN1dAoKc3ViIFVzZXJz
R2V0IHsKICAgIG15ICgkU2VsZiwgJVBhcmFtKSA9IEBfOwoKICAgIG15ICRMb2dPYmplY3QgICA9
ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKTsKICAgIG15ICRDYWNoZU9i
amVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpOwoKICAgICMg
Y2hlY2sgZm9yIG5lZWRlZCBkYXRhCiAgICBmb3IgbXkgJE5lZWRlZCAoIHF3L1Byb2plY3QvICkg
ewogICAgICAgIGlmICggISRQYXJhbXskTmVlZGVkfSApIHsKICAgICAgICAgICAgJExvZ09iamVj
dC0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAg
ICAgIE1lc3NhZ2UgID0+ICJOZWVkICROZWVkZWQhIiwKICAgICAgICAgICAgKTsKCiAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBpbXBsZW1lbnQgY2FjaGluZwogICAg
bXkgJFVzZXJzID0gJENhY2hlT2JqZWN0LT5HZXQoCiAgICAgICAgVHlwZSAgPT4gJFNlbGYtPntD
YWNoZVR5cGV9IC4gJ19Vc2VycycsCiAgICAgICAgS2V5ICAgPT4gJFBhcmFte1Byb2plY3R9LAog
ICAgKTsKCgogICAgbXkgJFVzZXJzSlNPTjsKICAgIG15ICRFcnJvckdldDsKCiAgICAjIGdldCB1
c2VycwogICAgZXZhbHsKICAgICAgICAkVXNlcnNKU09OID0gJFNlbGYtPntKSVJBQ2xpZW50fS0+
R0VUKAogICAgICAgICAgICBzcHJpbnRmICcvdXNlci9hc3NpZ25hYmxlL3NlYXJjaD9tYXhSZXN1
bHRzPSVkJnByb2plY3Q9JXMnLAogICAgICAgICAgICAgICAgMTAwMCwKICAgICAgICAgICAgICAg
ICRQYXJhbXtQcm9qZWN0fQogICAgICAgICk7CiAgICB9IG9yICRFcnJvckdldCA9ICRAOwoKICAg
IGlmICggJEVycm9yR2V0ICkgewogICAgICAgICRMb2dPYmplY3QtPkxvZygKICAgICAgICAgICAg
UHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gc3ByaW50ZiBQIC4g
ICI6OlVzZXJzR2V0OiBjYW5ub3QgYXNzaWduYWJsZSB1c2VycyBmb3IgcHJvamVjdCAlczogJXMi
LAogICAgICAgICAgICAgICAgJFBhcmFte1Byb2plY3R9LCAkRXJyb3JHZXQsCiAgICAgICAgKTsK
CiAgICAgICAgcmV0dXJuICt7fTsKICAgIH0KCiAgICBmb3IgbXkgJFVzZXIgKCBAeyAkVXNlcnNK
U09OIHx8IFtdIH0gKSB7CiAgICAgICAgbXkgJEtleSAgID0gJFVzZXItPntuYW1lfTsKICAgICAg
ICBteSAkVmFsdWUgPSAkVXNlci0+e2Rpc3BsYXlOYW1lfTsgICAKCiAgICAgICAgJFVzZXJzLT57
JEtleX0gPSAkVmFsdWU7CiAgICB9CgogICAgJENhY2hlT2JqZWN0LT5TZXQoCiAgICAgICAgVHlw
ZSAgPT4gJFNlbGYtPntDYWNoZVR5cGV9IC4gJ19Vc2VycycsCiAgICAgICAgS2V5ICAgPT4gJFBh
cmFte1Byb2plY3R9LAogICAgICAgIFZhbHVlID0+ICRVc2VycywKICAgICAgICBUVEwgICA9PiAk
U2VsZi0+e0NhY2hlVFRMfSwKICAgICk7CgogICAgcmV0dXJuICRVc2VyczsKfQoKPWl0ZW0gU3Rh
dGVzR2V0KCkKCkdldCBhbGwgaXNzdWUgdHlwZXMgdGhhdCBiZWxvbmcgdG8gYSBwcm9qZWN0IGZy
b20gSklSQQoKICAgIG15ICRTdGF0ZXMgPSAkT2JqZWN0LT5TdGF0ZXNHZXQoCiAgICAgICAgUHJv
amVjdCA9PiAkUHJvamVjdCwKICAgICk7Cgo9Y3V0CgpzdWIgU3RhdGVzR2V0IHsKICAgIG15ICgk
U2VsZiwgJVBhcmFtKSA9IEBfOwoKICAgIG15ICRMb2dPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0
KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyk7CgogICAgIyBjaGVjayBmb3IgbmVlZGVkIGRhdGEKICAg
IGZvciBteSAkTmVlZGVkICggcXcvUHJvamVjdC8gKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRO
ZWVkZWR9ICkgewogICAgICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgICAgICBQ
cmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJE5l
ZWRlZCEiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAg
IH0KCiAgICAjIFRPRE86IGltcGxlbWVudCBjYWNoaW5nCgogICAgbXkgJFN0YXRlcyA9IHt9Owog
ICAgbXkgJEVycm9yR2V0OwoKICAgICMgVE9ETzogVVJMIHRvIGdldCBzdGF0ZXMKICAgICNldmFs
ewogICAgIyAgICAkU3RhdGVzID0gJFNlbGYtPntKSVJBQ2xpZW50fS0+R0VUKCAnL2lzc3VlLycg
LiAkUGFyYW17UHJvamVjdH0gKTsKICAgICN9IG9yICRFcnJvckdldCA9ICRAOwogICAgIwogICAg
I2lmICggJEVycm9yR2V0ICkgewogICAgIyAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAjICAgICAg
ICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgIyAgICAgICAgTWVzc2FnZSAgPT4gc3ByaW50ZiBQ
IC4gICI6OlN0YXRlc0dldDogY2Fubm90IGlzc3VlIHR5cGVzIGZvciBwcm9qZWN0ICVzOiAlcyIs
CiAgICAjICAgICAgICAgICAgJFBhcmFte1Byb2plY3R9LCAkRXJyb3JHZXQsCiAgICAjICAgICk7
CiAgICAjCiAgICAjICAgIHJldHVybiAreyBlcnJvciA9PiAkRXJyb3JHZXQgfTsKICAgICN9Cgog
ICAgcmV0dXJuICRTdGF0ZXM7Cn0KCj1pdGVtIElzc3VlTGlzdCgpCgo9Y3V0CgpzdWIgSXNzdWVM
aXN0IHsKICAgIG15ICgkU2VsZiwgJVBhcmFtKSA9IEBfOwoKICAgIG15ICRMb2dPYmplY3QgICAg
PSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyk7CiAgICBteSAkTWFpbk9i
amVjdCAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok1haW4nKTsKICAgIG15
ICRDYWNoZU9iamVjdCAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUn
KTsKICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZp
ZycpOwoKICAgICMgY2hlY2sgZm9yIG5lZWRlZCBkYXRhCiAgICBmb3IgbXkgJE5lZWRlZCAoIHF3
L1Byb2plY3QvICkgewogICAgICAgIGlmICggISRQYXJhbXskTmVlZGVkfSApIHsKICAgICAgICAg
ICAgJExvZ09iamVjdC0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywK
ICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICROZWVkZWQhIiwKICAgICAgICAgICAg
KTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgJFBhcmFte1Rlcm19
IC8vPSAnJzsKCiAgICBteSAkVHlwZVRlcm0gPSAkUGFyYW17VGVybX07CiAgICAkVHlwZVRlcm0g
ICAgPX4gc3tbXkEtWmEtejAtOV9dfXtffWc7CgogICAgbXkgJENhY2hlVHlwZSA9ICAkU2VsZi0+
e0NhY2hlVHlwZX0gLiAnX0lzc3Vlc18nIC4gJFBhcmFte1Byb2plY3R9IC4gJ18nIC4gJFR5cGVU
ZXJtOwoKICAgIG15ICRJc3N1ZXMgPSAkQ2FjaGVPYmplY3QtPkdldCgKICAgICAgICBUeXBlID0+
ICRDYWNoZVR5cGUsCiAgICAgICAgS2V5ICA9PiAnQWxsJywKICAgICk7CgogICAgaWYgKCAkSXNz
dWVzICYmICEkUGFyYW17Rm9yY2V9ICkgewogICAgICAgIHJldHVybiAkSXNzdWVzOwogICAgfQoK
ICAgIG15ICRJc3N1ZXNKU09OOwogICAgbXkgJEVycm9yR2V0OwoKICAgIG15IEBTdGF0ZXMgPSBA
eyAkQ29uZmlnT2JqZWN0LT5HZXQoJ0pJUkE6Oklzc3VlU2VhcmNoU3RhdGVzJykgfHwgW10gfTsK
CiAgICBteSAkU3RhdGVzU3RyaW5nID0gJyc7CiAgICBpZiAoIEBTdGF0ZXMgKSB7CiAgICAgICAg
JFN0YXRlc1N0cmluZyA9ICcgQU5EIHN0YXR1cyBJTiAoJyAuIGpvaW4oJywnLCBtYXB7IHFxfiIk
XyJ+IH1AU3RhdGVzICkgLiAnKSc7CiAgICB9CgogICAgbXkgJFBhcmFtcyA9IHNwcmludGYgInBy
b2plY3Q9JXMlcyBvcmRlciBieSBpc3N1ZUtleSBkZXNjIiwgJFBhcmFte1Byb2plY3R9LCAkU3Rh
dGVzU3RyaW5nOwoKICAgIGlmICggJFNlbGYtPntEZWJ1Z30gKSB7CiAgICAgICAgJExvZ09iamVj
dC0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZGVidWcnLAogICAgICAgICAgICBNZXNz
YWdlICA9PiBQIC4gICI6Oklzc3VlTGlzdDogUGFyYW1zIC0+ICIgLiAkUGFyYW1zLAogICAgICAg
ICk7CiAgICB9CgogICAgZXZhbHsKICAgICAgICBteSAkTWF4UmVzdWx0cyA9ICRDb25maWdPYmpl
Y3QtPkdldCgnSklSQTo6SXNzdWVTZWFyY2hNYXhSZXN1bHRzJykgfHwgMzAwOwogICAgICAgICRJ
c3N1ZXNKU09OICAgID0gJFNlbGYtPntKSVJBQ2xpZW50fS0+UE9TVCgKICAgICAgICAgICAgJy9z
ZWFyY2gnLAogICAgICAgICAgICB1bmRlZiwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
anFsICAgICAgICA9PiAkUGFyYW1zLAogICAgICAgICAgICAgICAgbWF4UmVzdWx0cyA9PiAkTWF4
UmVzdWx0cywKICAgICAgICAgICAgICAgIGZpZWxkcyAgICAgPT4gW3F3L2lkIGtleSBkZXNjcmlw
dGlvbi9dLAogICAgICAgICAgICB9CiAgICAgICAgKTsKICAgIH0gb3IgJEVycm9yR2V0ID0gJEA7
CgogICAgaWYgKCAkRXJyb3JHZXQgKSB7CiAgICAgICAgJExvZ09iamVjdC0+TG9nKAogICAgICAg
ICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiBzcHJpbnRm
IFAgLiAgIjo6SXNzdWVMaXN0OiBjYW5ub3QgZ2V0IGlzc3VlIGxpc3Q6ICVzIiwKICAgICAgICAg
ICAgICAgICRFcnJvckdldCwKICAgICAgICApOwoKICAgICAgICByZXR1cm4gK3t9OwogICAgfQoK
ICAgIGlmICggJFNlbGYtPntEZWJ1Z30gKSB7CiAgICAgICAgJExvZ09iamVjdC0+TG9nKAogICAg
ICAgICAgICBQcmlvcml0eSA9PiAnZGVidWcnLAogICAgICAgICAgICBNZXNzYWdlICA9PiBQIC4g
ICI6Oklzc3VlTGlzdDogSlNPTiAtPiAiCiAgICAgICAgICAgICAgICAuICRNYWluT2JqZWN0LT5E
dW1wKCAkSXNzdWVzSlNPTiApLAogICAgICAgICk7CiAgICB9CgogICAgbXkgQElzc3VlTGlzdDsK
CiAgICBteSAkUkU7CiAgICBpZiAoICRQYXJhbXtUZXJtfSApIHsKICAgICAgICAkUGFyYW17VGVy
bX0gPX4gc3tcKn17Lip9eG1zZzsKICAgICAgICAkUkUgICAgICAgICAgPSBxci8kUGFyYW17VGVy
bX0vaTsKICAgIH0KCiAgICBJU1NVRUlURU06CiAgICBmb3IgbXkgJElzc3VlSXRlbSAoIEB7ICRJ
c3N1ZXNKU09OLT57aXNzdWVzfSB8fCBbXSB9ICkgewogICAgICAgIG15ICRLZXkgID0gJElzc3Vl
SXRlbS0+e2tleX07CiAgICAgICAgbXkgJERlc2MgPSAkSXNzdWVJdGVtLT57ZmllbGRzfS0+e2Rl
c2NyaXB0aW9ufTsKICAgICAgICBteSAkSUQgICA9ICRJc3N1ZUl0ZW0tPntpZH07CgogICAgICAg
IGlmICggJFBhcmFte1Rlcm19ICkgewogICAgICAgICAgICBuZXh0IElTU1VFSVRFTSBpZiAkS2V5
ICF+ICRSRSBhbmQgJERlc2MgIX4gJFJFOwogICAgICAgIH0KCiAgICAgICAgcHVzaCBASXNzdWVM
aXN0LCB7CiAgICAgICAgICAgIFZhbHVlID0+ICRJRCwKICAgICAgICAgICAgTGFiZWwgPT4gc3By
aW50ZiggIiVzIC0gJXMiLCAkS2V5LCAkRGVzYyApLAogICAgICAgIH0KICAgIH0KCiAgICBpZiAo
ICRTZWxmLT57RGVidWd9ICkgewogICAgICAgICRMb2dPYmplY3QtPkxvZygKICAgICAgICAgICAg
UHJpb3JpdHkgPT4gJ2RlYnVnJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gUCAuICAiOjpJc3N1
ZUxpc3Q6ICIgLgogICAgICAgICAgICAgICAgJE1haW5PYmplY3QtPkR1bXAoIFxASXNzdWVMaXN0
ICksCiAgICAgICAgKTsKICAgIH0KCiAgICAkQ2FjaGVPYmplY3QtPlNldCgKICAgICAgICBUeXBl
ICA9PiAkQ2FjaGVUeXBlLAogICAgICAgIEtleSAgID0+ICdBbGwnLAogICAgICAgIFZhbHVlID0+
IFxASXNzdWVMaXN0LAogICAgICAgIFRUTCAgID0+ICRTZWxmLT57Q2FjaGVUVEx9LAogICAgKTsK
CiAgICByZXR1cm4gXEBJc3N1ZUxpc3Q7Cn0KCjE7Cgo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAxNiAtIDIwMTggUGVybC1TZXJ2aWNlcy5kZSwgaHR0cDov
L3Blcmwtc2VydmljZXMuZGUKIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVU
RUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09Q
WUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVj
ZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQu
CiMgLS0KCnBhY2thZ2UgS2VybmVsOjpTeXN0ZW06OlRpY2tldDo6Q3VzdG9tOjpBdHRhY2htZW50
RXZlbnRzOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKb3VyICRPYmplY3RNYW5hZ2VyRGlz
YWJsZWQgPSAxOwoKdXNlIEtlcm5lbDo6U3lzdGVtOjpPYmplY3RNYW5hZ2VyOwoKbXkgJExvYWRl
ZDsKbXkgJUFscmVhZHlSdW47CgpJbml0KCk7CgojIGRpc2FibGUgcmVkZWZpbmUgd2FybmluZ3Mg
aW4gdGhpcyBzY29wZQpzdWIgSW5pdCB7CiAgICBubyB3YXJuaW5ncyAncmVkZWZpbmUnOwoKICAg
IHJldHVybiBpZiAkTG9hZGVkKys7CgogICAgewogICAgICAgIGxvY2FsICRLZXJuZWw6Ok9NID0g
S2VybmVsOjpTeXN0ZW06Ok9iamVjdE1hbmFnZXItPm5ldygpOwogICAgICAgIG15ICRNSU1FT2Jq
ZWN0ICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpY2tldDo6QXJ0aWNs
ZTo6QmFja2VuZDo6TUlNRUJhc2U6OkFydGljbGVTdG9yYWdlREInKTsKICAgICAgICAgICAkTUlN
RU9iamVjdCAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaWNrZXQ6OkFy
dGljbGU6OkJhY2tlbmQ6Ok1JTUVCYXNlOjpBcnRpY2xlU3RvcmFnZUZTJyk7CiAgICB9CgogICAg
bXkgJE9yaWdSdW5EQiA9ICpLZXJuZWw6OlN5c3RlbTo6VGlja2V0OjpBcnRpY2xlOjpCYWNrZW5k
OjpNSU1FQmFzZTo6QXJ0aWNsZVN0b3JhZ2VEQjo6QXJ0aWNsZVdyaXRlQXR0YWNobWVudHtDT0RF
fTsKICAgICpLZXJuZWw6OlN5c3RlbTo6VGlja2V0OjpBcnRpY2xlOjpCYWNrZW5kOjpNSU1FQmFz
ZTo6QXJ0aWNsZVN0b3JhZ2VEQjo6QXJ0aWNsZVdyaXRlQXR0YWNobWVudCA9IHN1YiB7CiAgICAg
ICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkU2Vs
Zi0+JE9yaWdSdW5EQiggJVBhcmFtICk7CiAgICAgICAgX1RyaWdnZXJFdmVudCggJFNlbGYsICVQ
YXJhbSwgU3VjY2VzcyA9PiAkU3VjY2VzcyApOwoKICAgICAgICByZXR1cm4gJFN1Y2Nlc3M7CiAg
ICB9OwoKICAgIG15ICRPcmlnUnVuRlMgPSAqS2VybmVsOjpTeXN0ZW06OlRpY2tldDo6QXJ0aWNs
ZTo6QmFja2VuZDo6TUlNRUJhc2U6OkFydGljbGVTdG9yYWdlRlM6OkFydGljbGVXcml0ZUF0dGFj
aG1lbnR7Q09ERX07CiAgICAqS2VybmVsOjpTeXN0ZW06OlRpY2tldDo6QXJ0aWNsZTo6QmFja2Vu
ZDo6TUlNRUJhc2U6OkFydGljbGVTdG9yYWdlRlM6OkFydGljbGVXcml0ZUF0dGFjaG1lbnQgPSBz
dWIgewogICAgICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgICAgIG15ICRTdWNj
ZXNzID0gJFNlbGYtPiRPcmlnUnVuRlMoICVQYXJhbSApOwogICAgICAgIF9UcmlnZ2VyRXZlbnQo
ICRTZWxmLCAlUGFyYW0sIFN1Y2Nlc3MgPT4gJFN1Y2Nlc3MgKTsKCiAgICAgICAgcmV0dXJuICRT
dWNjZXNzOwogICAgfTsKfQoKc3ViIF9UcmlnZ2VyRXZlbnQgewogICAgbXkgKCRTZWxmLCAlUGFy
YW0pID0gQF87CgogICAgbXkgJFRpY2tldE9iamVjdCAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJu
ZWw6OlN5c3RlbTo6VGlja2V0Jyk7CiAgICBteSAkQXJ0aWNsZU9iamVjdCA9ICRLZXJuZWw6Ok9N
LT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaWNrZXQ6OkFydGljbGUnKTsKCiAgICAjIHRyaWdnZXIg
ZXZlbnQKICAgIGlmICggJFBhcmFte1N1Y2Nlc3N9ICkgewoKICAgICAgICBteSAkVGlja2V0SUQg
PSAkQXJ0aWNsZU9iamVjdC0+VGlja2V0SURMb29rdXAoIEFydGljbGVJRCA9PiAkUGFyYW17QXJ0
aWNsZUlEfSApOwogICAgICAgIG15ICVUaWNrZXQgICA9ICRUaWNrZXRPYmplY3QtPlRpY2tldEdl
dCgKICAgICAgICAgICAgVGlja2V0SUQgPT4gJFRpY2tldElELAogICAgICAgICk7CgogICAgICAg
IG15ICRLZXkgPSBzcHJpbnRmICIlc18lcyIsICRUaWNrZXRJRCwgJFBhcmFte0FydGljbGVJRH07
CiAgICAgICAgcmV0dXJuIGlmICRBbHJlYWR5UnVueyRLZXl9Kys7CgogICAgICAgIG15ICRCYWNr
ZW5kT2JqZWN0ID0gJEFydGljbGVPYmplY3QtPkJhY2tlbmRGb3JBcnRpY2xlKAogICAgICAgICAg
ICBUaWNrZXRJRCAgPT4gJFRpY2tldElELAogICAgICAgICAgICBBcnRpY2xlSUQgPT4gJFBhcmFt
e0FydGljbGVJRH0sCiAgICAgICAgKTsKCiAgICAgICAgbXkgJUF0dGFjaG1lbnRJbmRleCA9ICRC
YWNrZW5kT2JqZWN0LT5BcnRpY2xlQXR0YWNobWVudEluZGV4KAogICAgICAgICAgICBBcnRpY2xl
SUQgPT4gJFBhcmFte0FydGljbGVJRH0sCiAgICAgICAgKTsKCiAgICAgICAgbXkgKCRGaWxlSUQp
ID0gZ3JlcHsKICAgICAgICAgICAgJEF0dGFjaG1lbnRJbmRleHskX30tPntGaWxlbmFtZX0gZXEg
JFBhcmFte0ZpbGVuYW1lfQogICAgICAgIH0ga2V5cyAlQXR0YWNobWVudEluZGV4OwoKICAgICAg
ICAkVGlja2V0T2JqZWN0LT5FdmVudEhhbmRsZXIoCiAgICAgICAgICAgIEV2ZW50ID0+ICdBdHRh
Y2htZW50V3JpdGUnLAogICAgICAgICAgICBEYXRhICA9PiB7CiAgICAgICAgICAgICAgICBBcnRp
Y2xlSUQgPT4gJFBhcmFte0FydGljbGVJRH0sCiAgICAgICAgICAgICAgICBGaWxlbmFtZSAgPT4g
JFBhcmFte0ZpbGVuYW1lfSwKICAgICAgICAgICAgICAgIEZpbGVJRCAgICA9PiAkRmlsZUlELAog
ICAgICAgICAgICAgICAgVGlja2V0SUQgID0+ICRUaWNrZXRJRCwKICAgICAgICAgICAgfSwKICAg
ICAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CiAgICB9Cn0KCjE7
Cgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBB
QlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxl
IENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKZGlkIG5vdCBy
ZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwu
dHh0Pi4KCj1jdXQK
IyAtLQojIEtlcm5lbC9TeXN0ZW0vVGlja2V0L0V2ZW50L0FkZEFydGljbGVUb0pJUkFJc3N1ZS5w
bSAtIGV2ZW50IG1vZHVsZQojIENvcHlyaWdodCAoQykgMjAwOC0yMDE4IGNhdFdvcmtYIEdtYkgg
aHR0cDovL3d3dy5jYXR3b3JreC5kZQojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFC
U09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmls
ZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5v
dCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3Bs
LnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6VGlja2V0OjpFdmVudDo6QWRkQXJ0
aWNsZVRvSklSQUlzc3VlOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIExpc3Q6OlV0
aWwgcXcoZmlyc3QpOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSBxdygKICAgIEtlcm5lbDo6
Q29uZmlnCiAgICBLZXJuZWw6OlN5c3RlbTo6TG9nCiAgICBLZXJuZWw6OlN5c3RlbTo6TWFpbgog
ICAgS2VybmVsOjpTeXN0ZW06OlRpY2tldAogICAgS2VybmVsOjpTeXN0ZW06OlRpY2tldDo6QXJ0
aWNsZQogICAgS2VybmVsOjpTeXN0ZW06OlVzZXIKICAgIEtlcm5lbDo6U3lzdGVtOjpUaWNrZXRK
SVJBCik7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBh
bGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3Mo
ICRTZWxmLCAkVHlwZSApOwoKICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0
KCdLZXJuZWw6OkNvbmZpZycpOwogICAgJFNlbGYtPntEZWJ1Z30gICA9ICRDb25maWdPYmplY3Qt
PkdldCgnSklSQTo6RGVidWcnKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBSdW4gewogICAg
bXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkVGlja2V0T2JqZWN0ICAgICA9ICRL
ZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaWNrZXQnKTsKICAgIG15ICRBcnRpY2xl
T2JqZWN0ICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpY2tldDo6QXJ0
aWNsZScpOwogICAgbXkgJENvbmZpZ09iamVjdCAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJu
ZWw6OkNvbmZpZycpOwogICAgbXkgJE1haW5PYmplY3QgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0
KCdLZXJuZWw6OlN5c3RlbTo6TWFpbicpOwogICAgbXkgJFVzZXJPYmplY3QgICAgICAgPSAkS2Vy
bmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpOwogICAgbXkgJExvZ09iamVjdCAg
ICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyk7CiAgICBteSAk
VGlja2V0SklSQU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaWNr
ZXRKSVJBJyk7CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkTmVlZGVkIChx
dyhEYXRhIEV2ZW50IENvbmZpZyBVc2VySUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyROZWVk
ZWR9ICkgewogICAgICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlv
cml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJE5lZWRl
ZCFcbiIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAg
fQoKICAgIGZvciBteSAkTmVlZGVkRGF0YSAocXcoVGlja2V0SUQpKSB7CiAgICAgICAgaWYgKCAh
JFBhcmFte0RhdGF9LT57JE5lZWRlZERhdGF9ICkgewogICAgICAgICAgICAkTG9nT2JqZWN0LT5M
b2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAg
TWVzc2FnZSAgPT4gIk5lZWQgJE5lZWRlZERhdGEgaW4gRGF0YSFcbiIsCiAgICAgICAgICAgICk7
CgogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgIG15ICRVc2VySUQgPSAk
UGFyYW17VXNlcklEfTsKCiAgICAjIEdldCBjdXJyZW50IHVzZXIgZGF0YQogICAgbXkgJUN1cnJl
bnRVc2VyID0gJFVzZXJPYmplY3QtPkdldFVzZXJEYXRhKAogICAgICAgIFVzZXJJRCA9PiAkVXNl
cklELAogICAgKTsKCiAgICBpZiAoICRTZWxmLT57RGVidWd9ICkgewogICAgICAgICRMb2dPYmpl
Y3QtPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2RlYnVnJywKICAgICAgICAgICAgTWVz
c2FnZSAgPT4gX19QQUNLQUdFX18gLiAiOjpSdW4oKTogVXNlcklEOiAkVXNlcklEIFVzZXJMb2dp
bjogJEN1cnJlbnRVc2Vye1VzZXJMb2dpbn1cbiIKICAgICAgICApOwogICAgfQoKICAgIGlmICgg
JEN1cnJlbnRVc2Vye1VzZXJMb2dpbn0gZXEgJENvbmZpZ09iamVjdC0+R2V0KCdUaWNrZXRKSVJB
JyktPntJbmNvbWluZ1VzZXJ9ICkgewogICAgCXJldHVybiAxOwogICAgfQoKICAgIG15ICRUaWNr
ZXRJRCA9ICRQYXJhbXtEYXRhfS0+e1RpY2tldElEfTsKCiAgICBpZiAoICRTZWxmLT57RGVidWd9
ICkgewogICAgICAgICRMb2dPYmplY3QtPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Rl
YnVnJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gX19QQUNLQUdFX18gLiAiOjpSdW4oKTogVGlj
a2V0SUQ6ICRUaWNrZXRJRCBFdmVudDogJFBhcmFte0V2ZW50fVxuIgogICAgICAgICk7CiAgICB9
CgojICAgIHJldHVybiAxIGlmICRQYXJhbXtFdmVudH0gbmUgJ0FydGljbGVDcmVhdGUnOwoKICAg
IG15ICVUaWNrZXQgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRHZXQoCiAgICAgICAgVGlja2V0SUQg
ICAgICA9PiAkVGlja2V0SUQsCiAgICAgICAgVXNlcklEICAgICAgICA9PiAxLAogICAgICAgIER5
bmFtaWNGaWVsZHMgPT4gMSwKICAgICk7CgogICAgcmV0dXJuIDEgaWYgISVUaWNrZXQ7CgogICAg
bXkgJElzc3VlSUQgPSAkVGlja2V0e0R5bmFtaWNGaWVsZF9KSVJBSXNzdWVJRH07CiAgICByZXR1
cm4gMSBpZiAhJElzc3VlSUQ7CgogICAgaWYgKCAkU2VsZi0+e0RlYnVnfSApIHsKICAgICAgICAk
TG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdkZWJ1ZycsCiAgICAgICAg
ICAgIE1lc3NhZ2UgID0+IF9fUEFDS0FHRV9fIC4gIjo6UnVuKCk6IFRpY2tldElEOiAkVGlja2V0
e1RpY2tldElEfSBUaXRsZTogJFRpY2tldHtUaXRsZX0gIgogICAgICAgICAgICAgICAgLiAiU3Rh
dGU6ICRUaWNrZXR7U3RhdGV9XG4iLAogICAgICAgICk7CiAgICB9CgogICAgbXkgQEFydGljbGVJ
bmRleCA9ICRBcnRpY2xlT2JqZWN0LT5BcnRpY2xlTGlzdCgKICAgICAgICBUaWNrZXRJRCA9PiAk
VGlja2V0SUQsCiAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICk7CgogICAgcmV0dXJuIDEgaWYg
IUBBcnRpY2xlSW5kZXg7CgogICAgbXkgJEJhY2tlbmRPYmplY3QgPSAkQXJ0aWNsZU9iamVjdC0+
QmFja2VuZEZvckFydGljbGUoICV7ICRBcnRpY2xlSW5kZXhbLTFdIH0gKTsKICAgIG15ICVBcnRp
Y2xlICAgICAgID0gJEJhY2tlbmRPYmplY3QtPkFydGljbGVHZXQoCiAgICAgICAgQXJ0aWNsZUlE
ICAgICA9PiAkQXJ0aWNsZUluZGV4Wy0xXS0+e0FydGljbGVJRH0sCiAgICAgICAgVGlja2V0SUQg
ICAgICA9PiAkVGlja2V0SUQsCiAgICAgICAgRHluYW1pY0ZpZWxkcyA9PiAxLAogICAgKTsKCiAg
ICBpZiAoICRTZWxmLT57RGVidWd9ICkgewogICAgICAgICRMb2dPYmplY3QtPkxvZygKICAgICAg
ICAgICAgUHJpb3JpdHkgPT4gJ2RlYnVnJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gX19QQUNL
QUdFX18gLiAiOjpSdW4oKTogQXJ0aWNsZUlEOiAkQXJ0aWNsZXtBcnRpY2xlSUR9IFRpdGxlOiAk
VGlja2V0e1RpdGxlfVxuIiwKICAgICAgICApOwogICAgfQoKICAgIHJldHVybiAxIGlmICElQXJ0
aWNsZTsKCiAgICBteSAkQWxsb3dlZFN0YXRlc05hbWVzID0gJENvbmZpZ09iamVjdC0+R2V0KCdU
aWNrZXRKSVJBJyktPntPVFJTVGlja2V0QWxsb3dlZFN0YXRlczRVcGRhdGV9OwogICAgbXkgQEFs
bG93ZWRTdGF0ZXNMaXN0ICA9IHNwbGl0IC8sLywgJEFsbG93ZWRTdGF0ZXNOYW1lczsKCiAgICBp
ZiAoICEoIGZpcnN0IHsgJF8gZXEgJFRpY2tldHtTdGF0ZX0gfSBAQWxsb3dlZFN0YXRlc0xpc3Qg
KSApIHsKICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdp
bmZvJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gX19QQUNLQUdFX18gLiAiOjpSdW4oKTogT1RS
UyBUaWNrZXQgbm90IGluICRBbGxvd2VkU3RhdGVzTmFtZXM6ICRUaWNrZXR7U3RhdGV9XG4iLAog
ICAgICAgICk7CgogICAgICAgIHJldHVybiAxOwogICAgfQoKICAgIG15ICRKSVJBSXNzdWUgPSAk
VGlja2V0SklSQU9iamVjdC0+SXNzdWVDb21tZW50KAogICAgICAgIElzc3VlSUQgICA9PiAkSXNz
dWVJRCwKICAgICAgICBBcnRpY2xlSUQgPT4gJEFydGljbGV7QXJ0aWNsZUlEfSwKICAgICAgICBV
c2VySUQgICAgPT4gJFBhcmFte1VzZXJJRH0gLy8gMSwKICAgICAgICBDb21tZW50ICAgPT4gJEFy
dGljbGV7Qm9keX0sCiAgICAgICAgQXJ0aWNsZSAgID0+IFwlQXJ0aWNsZSwKICAgICk7CgogICAg
IyBUT0RPOiBJZiBlcnJvciBvY2N1cmVkIHNob3cgbm90aWZpY2F0aW9uIGJhcgoKICAgIGlmICgg
JFNlbGYtPntEZWJ1Z30gKSB7CiAgICAgICAgJExvZ09iamVjdC0+TG9nKAogICAgICAgICAgICBQ
cmlvcml0eSA9PiAnZGVidWcnLAogICAgICAgICAgICBNZXNzYWdlICA9PiBzcHJpbnRmIF9fUEFD
S0FHRV9fIC4gIjogVXBkYXRlIHJlc3BvbnNlICVzXG4iLAogICAgICAgICAgICAgICAgJE1haW5P
YmplY3QtPkR1bXAoICRKSVJBSXNzdWUgKSwKICAgICAgICApOwogICAgfQoKICAgIHJldHVybiAx
Owp9CgoxOwo=
IyAtLQojIEtlcm5lbC9TeXN0ZW0vVGlja2V0L0V2ZW50L0Nsb3NlSklSQUlzc3VlLnBtIC0gZXZl
bnQgbW9kdWxlCiMgQ29weXJpZ2h0IChDKSAyMDA4LTIwMTggY2F0V29ya1ggR21iSCBodHRwOi8v
d3d3LmNhdHdvcmt4LmRlCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVM
WSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJ
TkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2Vp
dmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0Lgoj
IC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpUaWNrZXQ6OkV2ZW50OjpDbG9zZUpJUkFJc3N1
ZTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBMaXN0OjpVdGlsIHF3KGZpcnN0KTsK
Cm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gcXcoCiAgICBLZXJuZWw6OlN5c3RlbTo6TG9nCiAg
ICBLZXJuZWw6OlN5c3RlbTo6Q29uZmlnCiAgICBLZXJuZWw6OlN5c3RlbTo6SlNPTgogICAgS2Vy
bmVsOjpTeXN0ZW06OlRpY2tldAogICAgS2VybmVsOjpTeXN0ZW06OlRpY2tldDo6QXJ0aWNsZQog
ICAgS2VybmVsOjpTeXN0ZW06OlRpY2tldEpJUkEKKTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlw
ZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAg
IG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgbXkgJENvbmZp
Z09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CiAgICAkU2VsZi0+
e0RlYnVnfSAgID0gJENvbmZpZ09iamVjdC0+R2V0KCdKSVJBOjpEZWJ1ZycpOwoKICAgIHJldHVy
biAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAg
IG15ICRUaWNrZXRPYmplY3QgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06
OlRpY2tldCcpOwogICAgbXkgJEFydGljbGVPYmplY3QgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdL
ZXJuZWw6OlN5c3RlbTo6VGlja2V0OjpBcnRpY2xlJyk7CiAgICBteSAkQ29uZmlnT2JqZWN0ICAg
ICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CiAgICBteSAkTG9nT2JqZWN0
ICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKTsKICAgIG15
ICRUaWNrZXRKSVJBT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRp
Y2tldEpJUkEnKTsKICAgIG15ICRVc2VyT2JqZWN0ICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgn
S2VybmVsOjpTeXN0ZW06OlVzZXInKTsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9y
IG15ICROZWVkZWQgKHF3KERhdGEgRXZlbnQgQ29uZmlnIFVzZXJJRCkpIHsKICAgICAgICBpZiAo
ICEkUGFyYW17JE5lZWRlZH0gKSB7CiAgICAgICAgICAgICRMb2dPYmplY3QtPkxvZygKICAgICAg
ICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9
PiAiTmVlZCAkTmVlZGVkIVxuIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICB9CiAgICB9CgogICAgZm9yIG15ICROZWVkZWREYXRhIChxdyhUaWNrZXRJRCkpIHsK
ICAgICAgICBpZiAoICEkUGFyYW17RGF0YX0tPnskTmVlZGVkRGF0YX0gKSB7CiAgICAgICAgICAg
ICRMb2dPYmplY3QtPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAg
ICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkTmVlZGVkRGF0YSBpbiBEYXRhIVxuIiwK
ICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAg
bXkgJFRpY2tldElEID0gJFBhcmFte0RhdGF9LT57VGlja2V0SUR9OwoKICAgIGlmICggJFNlbGYt
PntEZWJ1Z30gKSB7CiAgICAgICAgJExvZ09iamVjdC0+TG9nKAogICAgICAgICAgICBQcmlvcml0
eSA9PiAnZGVidWcnLAogICAgICAgICAgICBNZXNzYWdlICA9PiBfX1BBQ0tBR0VfXyAuICI6OlJ1
bigpOiBUaWNrZXRJRDogJFRpY2tldElEIEV2ZW50OiAkUGFyYW17RXZlbnR9XG4iLAogICAgICAg
ICk7CiAgICB9CgojICAgIHJldHVybiAxIGlmICRQYXJhbXtFdmVudH0gbmUgJ1RpY2tldFN0YXRl
VXBkYXRlJzsKCiAgICBteSAlVGlja2V0ID0gJFRpY2tldE9iamVjdC0+VGlja2V0R2V0KAogICAg
ICAgIFRpY2tldElEICAgICAgPT4gJFRpY2tldElELAogICAgICAgIFVzZXJJRCAgICAgICAgPT4g
MSwKICAgICAgICBEeW5hbWljRmllbGRzID0+IDEsCiAgICApOwoKICAgIHJldHVybiAxIGlmICEl
VGlja2V0OwoKICAgIG15ICRVc2VySUQgPSAkUGFyYW17VXNlcklEfTsKCiAgICAjIEdldCBjdXJy
ZW50IHVzZXIgZGF0YQogICAgbXkgJUN1cnJlbnRVc2VyID0gJFVzZXJPYmplY3QtPkdldFVzZXJE
YXRhKAogICAgICAgIFVzZXJJRCA9PiAkVXNlcklELAogICAgKTsKCiAgICBpZiAoICRTZWxmLT57
RGVidWd9ICkgewogICAgICAgICRMb2dPYmplY3QtPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkg
PT4gJ2RlYnVnJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gX19QQUNLQUdFX18gLiAiOjpSdW4o
KTogVXNlcklEOiAkVXNlcklEIFVzZXJMb2dpbjogJEN1cnJlbnRVc2Vye1VzZXJMb2dpbn1cbiIs
CiAgICAgICAgKTsKICAgIH0KCiAgICBpZiAoICRDdXJyZW50VXNlcntVc2VyTG9naW59IGVxICRD
b25maWdPYmplY3QtPkdldCgnVGlja2V0SklSQScpLT57SW5jb21pbmdVc2VyfSApIHsKICAgICAg
ICByZXR1cm4gMTsKICAgIH0KCgogICAgbXkgJEpJUkFJc3N1ZUlEID0gJFRpY2tldHtEeW5hbWlj
RmllbGRfSklSQUlzc3VlSUR9OwogICAgcmV0dXJuIDEgaWYgISRKSVJBSXNzdWVJRDsKCiAgICBp
ZiAoICRTZWxmLT57RGVidWd9ICkgewogICAgICAgICRMb2dPYmplY3QtPkxvZygKICAgICAgICAg
ICAgUHJpb3JpdHkgPT4gJ2RlYnVnJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gX19QQUNLQUdF
X18gLiAiOjpSdW4oKTogVGlja2V0SUQ6ICRUaWNrZXR7VGlja2V0SUR9IFRpdGxlOiAkVGlja2V0
e1RpdGxlfSAiCiAgICAgICAgICAgICAgICAuICJTdGF0ZTogJFRpY2tldHtTdGF0ZX1cbiIsCiAg
ICAgICAgKTsKICAgIH0KCiAgICBteSAkQ29uZmlnID0gJENvbmZpZ09iamVjdC0+R2V0KCdUaWNr
ZXRKSVJBJykgfHwgIHt9OwoKICAgIG15ICRBbGxvd2VkU3RhdGVzTmFtZXMgPSAkQ29uZmlnLT57
T1RSU1RpY2tldEFsbG93ZWRTdGF0ZXM0Q2xvc2V9OwogICAgbXkgQEFsbG93ZWRTdGF0ZXNMaXN0
ICA9IHNwbGl0IC8sLywgJEFsbG93ZWRTdGF0ZXNOYW1lczsKCiAgICBpZiAoICEoIGZpcnN0eyAk
XyBlcSAkVGlja2V0e1N0YXRlfSB9IEBBbGxvd2VkU3RhdGVzTGlzdCApICkgewogICAgICAgICRM
b2dPYmplY3QtPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2luZm8nLAogICAgICAgICAg
ICBNZXNzYWdlICA9PiBfX1BBQ0tBR0VfXyAuICI6OlJ1bigpOiBPVFJTIFRpY2tldCBub3QgaW4g
JEFsbG93ZWRTdGF0ZXNOYW1lczogJFRpY2tldHtTdGF0ZX1cbiIsCiAgICAgICAgKTsKCiAgICAg
ICAgcmV0dXJuIDE7CiAgICB9CgogICAgbXkgJFVSTCA9ICRDb25maWctPntVUkx9OwoKICAgIG15
ICRWYWxpZExpY2Vuc2UgPSAkVGlja2V0SklSQU9iamVjdC0+Q2hlY2tWYWxpZExpY2Vuc2UoKTsK
ICAgIGlmICggJFZhbGlkTGljZW5zZSAhPSAxICkgewogICAgICAgICRMb2dPYmplY3QtPkxvZygK
ICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4g
X19QQUNLQUdFX18gLiAiOjpSdW4oKTogaW52YWxpZCBsaWNlbnNlIGF0ICRVUkwsIHN0YXR1cyAk
VmFsaWRMaWNlbnNlIiwKICAgICAgICApOwoKICAgICAgICByZXR1cm4gMTsgIyBza2lwIHRoZSBy
ZXN0CiAgICB9CgogICAgbXkgJElzc3VlID0gJFRpY2tldEpJUkFPYmplY3QtPklzc3VlR2V0KCBJ
c3N1ZSA9PiAkSklSQUlzc3VlSUQgKTsKCiAgICBpZiAoICRJc3N1ZS0+e2Vycm9yfSApIHsKICAg
ICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAg
ICAgICAgICAgIE1lc3NhZ2UgID0+IF9fUEFDS0FHRV9fIC4gIjo6UnVuKCk6IGNhbm5vdCBmZXRj
aCB0aGUgSklSQSBJc3N1ZSAiCiAgICAgICAgICAgICAgICAuICRKSVJBSXNzdWVJRCAuICIgZm9y
ICIgLiAkVGlja2V0e1RpY2tldElEfSAuICI6ICRAIiwKICAgICAgICApOwoKICAgICAgICByZXR1
cm4gMTsKICAgIH0KCiAgICBpZiAoICRTZWxmLT57RGVidWd9ICkgewogICAgICAgICRMb2dPYmpl
Y3QtPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2RlYnVnJywKICAgICAgICAgICAgTWVz
c2FnZSAgPT4gX19QQUNLQUdFX18gLiAiOjpSdW4oKTogaXNzdWUgZXhpc3RzXG4iLAogICAgICAg
ICk7CiAgICB9CgogICAgbXkgQEFydGljbGVJbmRleCA9ICRBcnRpY2xlT2JqZWN0LT5BcnRpY2xl
TGlzdCgKICAgICAgICBUaWNrZXRJRCA9PiAkVGlja2V0e1RpY2tldElEfSwKICAgICAgICBVc2Vy
SUQgICA9PiAxLAogICAgICAgIE9ubHlMYXN0ID0+IDEsCiAgICApOwoKICAgIG15ICRCYWNrZW5k
T2JqZWN0ID0gJEFydGljbGVPYmplY3QtPkJhY2tlbmRGb3JBcnRpY2xlKCAleyAkQXJ0aWNsZUlu
ZGV4WzBdIH0gKTsKICAgIG15ICVBcnRpY2xlICAgICAgID0gJEJhY2tlbmRPYmplY3QtPkFydGlj
bGVHZXQoCiAgICAgICAgVGlja2V0SUQgID0+ICRUaWNrZXR7VGlja2V0SUR9LAogICAgICAgIEFy
dGljbGVJRCA9PiAkQXJ0aWNsZUluZGV4WzBdLT57QXJ0aWNsZUlEfSwKICAgICk7CgogICAgbXkg
JFJlc3VsdCA9ICRUaWNrZXRKSVJBT2JqZWN0LT5Jc3N1ZUNsb3NlKAogICAgICAgIElzc3VlSUQg
PT4gJEpJUkFJc3N1ZUlELAogICAgICAgIENvbW1lbnQgPT4gIk9UUlM6ICRUaWNrZXR7U3RhdGV9
XG5cbi0tLS0tLS0tXG4iIC4gJEFydGljbGV7Qm9keX0sCiAgICApOwoKICAgIGlmICggJFJlc3Vs
dC0+e2Vycm9yfSApIHsKICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgIFByaW9y
aXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+IF9fUEFDS0FHRV9fIC4gIjog
Q2Fubm90IGNsb3NlIGlzc3VlICRKSVJBSXNzdWVJRDogJFJlc3VsdC0+e2Vycm9yfVxuIiwKICAg
ICAgICApOwogICAgfQoKICAgIHJldHVybiAxOwp9CgoxOwo=
IyAtLQojIEtlcm5lbC9TeXN0ZW0vVGlja2V0L0V2ZW50L0NyZWF0ZUpJUkFJc3N1ZS5wbSAtIGV2
ZW50IG1vZHVsZQojIENvcHlyaWdodCAoQykgMjAwOC0yMDE1IGNhdFdvcmtYIEdtYkggaHR0cDov
L3d3dy5jYXR3b3JreC5kZQojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRF
TFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZ
SU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNl
aXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4K
IyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6VGlja2V0OjpFdmVudDo6Q3JlYXRlSklSQUlz
c3VlOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIExpc3Q6OlV0aWwgcXcoZmlyc3Qp
OwoKb3VyICRWRVJTSU9OID0gJzQuMDAxJzsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gcXco
CiAgICBLZXJuZWw6OkNvbmZpZwogICAgS2VybmVsOjpTeXN0ZW06OkxvZwogICAgS2VybmVsOjpT
eXN0ZW06OlRpY2tldAogICAgS2VybmVsOjpTeXN0ZW06OlRpY2tldEpJUkEKKTsKCnN1YiBuZXcg
ewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNo
IGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7
CgogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmln
Jyk7CiAgICAkU2VsZi0+e0RlYnVnfSAgID0gJENvbmZpZ09iamVjdC0+R2V0KCdKSVJBOjpEZWJ1
ZycpOwoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFy
YW0gKSA9IEBfOwoKICAgIG15ICRUaWNrZXRPYmplY3QgICAgID0gJEtlcm5lbDo6T00tPkdldCgn
S2VybmVsOjpTeXN0ZW06OlRpY2tldCcpOwogICAgbXkgJENvbmZpZ09iamVjdCAgICAgPSAkS2Vy
bmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwogICAgbXkgJExvZ09iamVjdCAgICAgICAg
PSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyk7CiAgICBteSAkVGlja2V0
SklSQU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaWNrZXRKSVJB
Jyk7CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkTmVlZGVkIChxdyhEYXRh
IEV2ZW50IENvbmZpZykpIHsKICAgICAgICBpZiAoICEkUGFyYW17JE5lZWRlZH0gKSB7CiAgICAg
ICAgICAgICRMb2dPYmplY3QtPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJv
cicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkTmVlZGVkIVxuIiwKICAgICAg
ICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgZm9yIG15
ICROZWVkZWREYXRhIChxdyhUaWNrZXRJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17RGF0YX0t
PnskTmVlZGVkRGF0YX0gKSB7CiAgICAgICAgICAgICRMb2dPYmplY3QtPkxvZygKICAgICAgICAg
ICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAi
TmVlZCAkTmVlZGVkRGF0YSBpbiBEYXRhIVxuIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAg
IHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgbXkgJFRpY2tldElEID0gJFBhcmFte0RhdGF9
LT57VGlja2V0SUR9OwoKICAgIGlmICggJFNlbGYtPntEZWJ1Z30gKSB7CiAgICAgICAgJExvZ09i
amVjdC0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZGVidWcnLAogICAgICAgICAgICBN
ZXNzYWdlICA9PiBfX1BBQ0tBR0VfXyAuICI6OlJ1bigpOiBUaWNrZXRJRDogJFRpY2tldElEXG4i
LAogICAgICAgICk7CgogICAgICAgICRMb2dPYmplY3QtPkxvZygKICAgICAgICAgICAgUHJpb3Jp
dHkgPT4gJ2RlYnVnJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gX19QQUNLQUdFX18gLiAiOjpS
dW4oKTogVGlja2V0SUQ6ICRUaWNrZXRJRCBFdmVudDogJFBhcmFte0V2ZW50fVxuIiwKICAgICAg
ICApOwogICAgfQoKIyAgICByZXR1cm4gMSBpZiAkUGFyYW17RXZlbnR9IG5lICdUaWNrZXRTdGF0
ZVVwZGF0ZSc7CgogICAgbXkgJVRpY2tldCA9ICRUaWNrZXRPYmplY3QtPlRpY2tldEdldCgKICAg
ICAgICBUaWNrZXRJRCAgICAgID0+ICRUaWNrZXRJRCwKICAgICAgICBVc2VySUQgICAgICAgID0+
IDEsCiAgICAgICAgRHluYW1pY0ZpZWxkcyA9PiAxLAogICAgKTsKCiAgICByZXR1cm4gMSBpZiAh
JVRpY2tldDsKCiAgICBteSAkSklSQUlzc3VlSUQgPSAkVGlja2V0e0R5bmFtaWNGaWVsZF9KSVJB
SXNzdWVJRH07CiAgICByZXR1cm4gMSBpZiAkSklSQUlzc3VlSUQ7CgogICAgaWYgKCAkU2VsZi0+
e0RlYnVnfSApIHsKICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5
ID0+ICdkZWJ1ZycsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+IF9fUEFDS0FHRV9fIC4gIjo6UnVu
KCk6IFRpY2tldElEOiAkVGlja2V0e1RpY2tldElEfSBUaXRsZTogJFRpY2tldHtUaXRsZX0gIgog
ICAgICAgICAgICAgICAgLiAiU3RhdGU6ICRUaWNrZXR7U3RhdGV9XG4iLAogICAgICAgICk7CiAg
ICB9CgogICAgbXkgJEFsbG93ZWRTdGF0ZXNOYW1lcyA9ICRDb25maWdPYmplY3QtPkdldCgnVGlj
a2V0SklSQScpLT57T1RSU1RpY2tldEFsbG93ZWRTdGF0ZXM0Q3JlYXRlfTsKICAgIG15IEBBbGxv
d2VkU3RhdGVzTGlzdCAgPSBzcGxpdCAvLC8sICRBbGxvd2VkU3RhdGVzTmFtZXM7CgogICAgaWYg
KCAhIGZpcnN0eyAkXyBlcSAkVGlja2V0e1N0YXRlfSB9IEBBbGxvd2VkU3RhdGVzTGlzdCApIHsK
ICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdpbmZvJywK
ICAgICAgICAgICAgTWVzc2FnZSAgPT4gX19QQUNLQUdFX18gLiAiOjpSdW4oKTogT1RSUyBUaWNr
ZXQgbm90IGluICRBbGxvd2VkU3RhdGVzTmFtZXM6ICRUaWNrZXR7U3RhdGV9XG4iLAogICAgICAg
ICk7CgogICAgICAgIHJldHVybiAxOwogICAgfQoKICAgIG15ICRKSVJBSXNzdWUgPSAkVGlja2V0
SklSQU9iamVjdC0+SXNzdWVDcmVhdGUoCiAgICAgICAgVGlja2V0SUQgPT4gJFRpY2tldHtUaWNr
ZXRJRH0sCiAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICk7ICMgRklYTUU6IFVzZXJJRCA/Cgog
ICAgaWYgKCAkU2VsZi0+e0RlYnVnfSApIHsKICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAg
ICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+IF9fUEFD
S0FHRV9fIC4gIjogVXBkYXRlIHJlc3BvbnNlICRKSVJBSXNzdWVcbiIsCiAgICAgICAgKTsKICAg
IH0KCiAgICByZXR1cm4gMTsKfQoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwOC0yMDE4IGNhdFdvcmtYIEdtYkggaHR0cDovL3d3dy5j
YXR3b3JreC5kZQojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8g
V0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZv
ciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRo
aXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoK
cGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6VGlja2V0OjpFdmVudDo6U2VuZEF0dGFjaG1lbnRzVG9K
SVJBSXNzdWU7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgpvdXIgQE9iamVjdERlcGVuZGVu
Y2llcyA9IHF3KAogICAgS2VybmVsOjpDb25maWcKICAgIEtlcm5lbDo6U3lzdGVtOjpMb2cKICAg
IEtlcm5lbDo6U3lzdGVtOjpNYWluCiAgICBLZXJuZWw6OlN5c3RlbTo6VGlja2V0CiAgICBLZXJu
ZWw6OlN5c3RlbTo6VGlja2V0OjpBcnRpY2xlCiAgICBLZXJuZWw6OlN5c3RlbTo6VXNlcgogICAg
S2VybmVsOjpTeXN0ZW06OlRpY2tldEpJUkEKKTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwg
JVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15
ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgbXkgJENvbmZpZ09i
amVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CiAgICAkU2VsZi0+e0Rl
YnVnfSAgID0gJENvbmZpZ09iamVjdC0+R2V0KCdKSVJBOjpEZWJ1ZycpOwoKICAgIHJldHVybiAk
U2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15
ICRUaWNrZXRPYmplY3QgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRp
Y2tldCcpOwogICAgbXkgJEFydGljbGVPYmplY3QgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJu
ZWw6OlN5c3RlbTo6VGlja2V0OjpBcnRpY2xlJyk7CiAgICBteSAkQ29uZmlnT2JqZWN0ICAgICA9
ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CiAgICBteSAkTWFpbk9iamVjdCAg
ICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpNYWluJyk7CiAgICBteSAk
VXNlck9iamVjdCAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2Vy
Jyk7CiAgICBteSAkTG9nT2JqZWN0ICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6
U3lzdGVtOjpMb2cnKTsKICAgIG15ICRUaWNrZXRKSVJBT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdl
dCgnS2VybmVsOjpTeXN0ZW06OlRpY2tldEpJUkEnKTsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVm
ZgogICAgZm9yIG15ICROZWVkZWQgKHF3KERhdGEgRXZlbnQgQ29uZmlnIFVzZXJJRCkpIHsKICAg
ICAgICBpZiAoICEkUGFyYW17JE5lZWRlZH0gKSB7CiAgICAgICAgICAgICRMb2dPYmplY3QtPkxv
ZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBN
ZXNzYWdlICA9PiAiTmVlZCAkTmVlZGVkIVxuIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAg
IHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgZm9yIG15ICROZWVkZWREYXRhIChxdyhUaWNr
ZXRJRCBBcnRpY2xlSUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFte0RhdGF9LT57JE5lZWRlZERh
dGF9ICkgewogICAgICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlv
cml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJE5lZWRl
ZERhdGEgaW4gRGF0YSFcbiIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgfQogICAgfQoKICAgIG15ICRVc2VySUQgPSAkUGFyYW17VXNlcklEfTsKCiAgICAjIEdl
dCBjdXJyZW50IHVzZXIgZGF0YQogICAgbXkgJFRpY2tldElEID0gJFBhcmFte0RhdGF9LT57VGlj
a2V0SUR9OwoKICAgIGlmICggJFNlbGYtPntEZWJ1Z30gKSB7CiAgICAgICAgJExvZ09iamVjdC0+
TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZGVidWcnLAogICAgICAgICAgICBNZXNzYWdl
ICA9PiBzcHJpbnRmIF9fUEFDS0FHRV9fIC4gIjo6UnVuKCk6IFRpY2tldElEOiAlcyBBcnRpY2xl
SUQ6ICVzIEZpbGVuYW1lOiAlc1xuIiwKICAgICAgICAgICAgICAgICRUaWNrZXRJRCwgJFBhcmFt
e0RhdGF9LT57QXJ0aWNsZUlEfSwgJFBhcmFte0RhdGF9LT57RmlsZW5hbWV9CiAgICAgICAgKTsK
ICAgIH0KCiAgICBteSAkQmFja2VuZE9iamVjdCA9ICRBcnRpY2xlT2JqZWN0LT5CYWNrZW5kRm9y
QXJ0aWNsZSgKICAgICAgICBBcnRpY2xlSUQgPT4gJFBhcmFte0RhdGF9LT57QXJ0aWNsZUlEfSwK
ICAgICAgICBUaWNrZXRJRCAgPT4gJFBhcmFte0RhdGF9LT57VGlja2V0SUR9LAogICAgKTsKCiAg
ICBteSAlQXJ0aWNsZSA9ICRCYWNrZW5kT2JqZWN0LT5BcnRpY2xlR2V0KAogICAgICAgIEFydGlj
bGVJRCAgICAgPT4gJFBhcmFte0RhdGF9LT57QXJ0aWNsZUlEfSwKICAgICAgICBUaWNrZXRJRCAg
ICAgID0+ICRQYXJhbXtEYXRhfS0+e1RpY2tldElEfSwKICAgICAgICBVc2VySUQgICAgICAgID0+
IDEsCiAgICAgICAgRHluYW1pY0ZpZWxkcyA9PiAxLAogICAgKTsKCiAgICBteSAlVGlja2V0ID0g
JFRpY2tldE9iamVjdC0+VGlja2V0R2V0KAogICAgICAgIFRpY2tldElEICAgICAgPT4gJFBhcmFt
e0RhdGF9LT57VGlja2V0SUR9LAogICAgICAgIFVzZXJJRCAgICAgICAgPT4gMSwKICAgICAgICBE
eW5hbWljRmllbGRzID0+IDEsCiAgICApOwoKICAgIHJldHVybiAxIGlmICElQXJ0aWNsZTsKICAg
IHJldHVybiAxIGlmICEkQXJ0aWNsZXtEeW5hbWljRmllbGRfQXJ0aWNsZVNlbnRUb0pJUkF9OwoK
ICAgIG15ICRJc3N1ZUlEID0gJFRpY2tldHtEeW5hbWljRmllbGRfSklSQUlzc3VlSUR9OwogICAg
cmV0dXJuIDEgaWYgISRJc3N1ZUlEOwoKICAgICRUaWNrZXRKSVJBT2JqZWN0LT5BdHRhY2htZW50
c1NlbmQoCiAgICAgICAgSXNzdWUgICAgID0+ICRJc3N1ZUlELAogICAgICAgIEFydGljbGVJRCA9
PiAkQXJ0aWNsZXtBcnRpY2xlSUR9LAogICAgICAgIFVzZXJJRCAgICA9PiAkUGFyYW17VXNlcklE
fSAvLyAxLAogICAgICAgIEZpbGVJRCAgICA9PiAkUGFyYW17RGF0YX0tPntGaWxlSUR9LAogICAg
ICAgIEZpbGVuYW1lICA9PiAkUGFyYW17RGF0YX0tPntGaWxlbmFtZX0sCiAgICApOwoKICAgIHJl
dHVybiAxOwp9CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwOC0yMDE4IGNhdFdvcmtYIEdtYkggaHR0cDovL3d3dy5j
YXR3b3JreC5kZQojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8g
V0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZv
ciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRo
aXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoK
cGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6VGlja2V0OjpFdmVudDo6VXBkYXRlSklSQUlzc3VlOwoK
dXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIExpc3Q6OlV0aWwgcXcoZmlyc3QpOwoKb3Vy
IEBPYmplY3REZXBlbmRlbmNpZXMgPSBxdygKICAgIEtlcm5lbDo6Q29uZmlnCiAgICBLZXJuZWw6
OlN5c3RlbTo6TG9nCiAgICBLZXJuZWw6OlN5c3RlbTo6VGlja2V0CiAgICBLZXJuZWw6OlN5c3Rl
bTo6VXNlcgogICAgS2VybmVsOjpTeXN0ZW06OlRpY2tldEpJUkEKKTsKCnN1YiBuZXcgewogICAg
bXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBv
YmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAg
bXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CiAg
ICAkU2VsZi0+e0RlYnVnfSAgID0gJENvbmZpZ09iamVjdC0+R2V0KCdKSVJBOjpEZWJ1ZycpOwoK
ICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9
IEBfOwoKICAgIG15ICRUaWNrZXRPYmplY3QgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVs
OjpTeXN0ZW06OlRpY2tldCcpOwogICAgbXkgJENvbmZpZ09iamVjdCAgICAgPSAkS2VybmVsOjpP
TS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwogICAgbXkgJFVzZXJPYmplY3QgICAgICAgPSAkS2Vy
bmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpOwogICAgbXkgJExvZ09iamVjdCAg
ICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyk7CiAgICBteSAk
VGlja2V0SklSQU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaWNr
ZXRKSVJBJyk7CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkTmVlZGVkIChx
dyhEYXRhIEV2ZW50IENvbmZpZyBVc2VySUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyROZWVk
ZWR9ICkgewogICAgICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlv
cml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJE5lZWRl
ZCFcbiIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAg
fQoKICAgIGZvciBteSAkTmVlZGVkRGF0YSAocXcoVGlja2V0SUQpKSB7CiAgICAgICAgaWYgKCAh
JFBhcmFte0RhdGF9LT57JE5lZWRlZERhdGF9ICkgewogICAgICAgICAgICAkTG9nT2JqZWN0LT5M
b2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAg
TWVzc2FnZSAgPT4gIk5lZWQgJE5lZWRlZERhdGEgaW4gRGF0YSFcbiIsCiAgICAgICAgICAgICk7
CgogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgIG15ICRVc2VySUQgPSAk
UGFyYW17VXNlcklEfTsKCiAgICAjIEdldCBjdXJyZW50IHVzZXIgZGF0YQogICAgbXkgJUN1cnJl
bnRVc2VyID0gJFVzZXJPYmplY3QtPkdldFVzZXJEYXRhKAogICAgICAgIFVzZXJJRCA9PiAkVXNl
cklELAogICAgKTsKCiAgICBpZiAoICRTZWxmLT57RGVidWd9ICkgewogICAgICAgICRMb2dPYmpl
Y3QtPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2RlYnVnJywKICAgICAgICAgICAgTWVz
c2FnZSAgPT4gX19QQUNLQUdFX18gLiAiOjpSdW4oKTogVXNlcklEOiAkVXNlcklEIFVzZXJMb2dp
bjogJEN1cnJlbnRVc2Vye1VzZXJMb2dpbn1cbiIsCiAgICAgICAgKTsKICAgIH0KCiAgICBpZiAo
ICRDdXJyZW50VXNlcntVc2VyTG9naW59IGVxICRDb25maWdPYmplY3QtPkdldCgnVGlja2V0SklS
QScpLT57SW5jb21pbmdVc2VyfSApIHsKICAgIAlyZXR1cm4gMTsKICAgIH0KCiAgICBteSAkVGlj
a2V0SUQgPSAkUGFyYW17RGF0YX0tPntUaWNrZXRJRH07CgogICAgaWYgKCAkU2VsZi0+e0RlYnVn
fSApIHsKICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdk
ZWJ1ZycsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+IF9fUEFDS0FHRV9fIC4gIjo6UnVuKCk6IFRp
Y2tldElEOiAkVGlja2V0SUQgRXZlbnQ6ICRQYXJhbXtFdmVudH1cbiIsCiAgICAgICAgKTsKICAg
IH0KCiAgICAjIyBjYW5ub3QgdG8gKnRoYXQqIGVhc2lseSwgbWF5YmUgd2UnbGwgY2hlY2sgdGhl
IFhNTC1Qcm9wcyBsYXRlciBvbiAjI3JldHVybiAxIGlmICRQYXJhbXtFdmVudH0gbmUgJ1RpY2tl
dFN0YXRlVXBkYXRlJzsKCiAgICBteSAlVGlja2V0ID0gJFRpY2tldE9iamVjdC0+VGlja2V0R2V0
KAogICAgICAgIFRpY2tldElEICAgICAgPT4gJFRpY2tldElELAogICAgICAgIFVzZXJJRCAgICAg
ICAgPT4gMSwKICAgICAgICBEeW5hbWljRmllbGRzID0+IDEsCiAgICApOwoKICAgIHJldHVybiAx
IGlmICElVGlja2V0OwoKICAgIG15ICRKSVJBSXNzdWVJRCA9ICRUaWNrZXR7RHluYW1pY0ZpZWxk
X0pJUkFJc3N1ZUlEfTsKICAgIHJldHVybiAxIGlmICEkSklSQUlzc3VlSUQ7CgogICAgaWYgKCAk
U2VsZi0+e0RlYnVnfSApIHsKICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgIFBy
aW9yaXR5ID0+ICdkZWJ1ZycsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+IF9fUEFDS0FHRV9fIC4g
Ijo6UnVuKCk6IFRpY2tldElEOiAkVGlja2V0e1RpY2tldElEfSBUaXRsZTogJFRpY2tldHtUaXRs
ZX0gIgogICAgICAgICAgICAgICAgLiAiU3RhdGU6ICRUaWNrZXR7U3RhdGV9XG4iLAogICAgICAg
ICk7CiAgICB9CgogICAgbXkgJEFsbG93ZWRTdGF0ZXNOYW1lcyA9ICRDb25maWdPYmplY3QtPkdl
dCgnVGlja2V0SklSQScpLT57T1RSU1RpY2tldEFsbG93ZWRTdGF0ZXM0VXBkYXRlfTsKICAgIG15
IEBBbGxvd2VkU3RhdGVzTGlzdCAgPSBzcGxpdCAvLC8sICRBbGxvd2VkU3RhdGVzTmFtZXM7Cgog
ICAgaWYgKCAhKCBmaXJzdHsgJF8gZXEgJFRpY2tldHtTdGF0ZX0gfSBAQWxsb3dlZFN0YXRlc0xp
c3QgKSApIHsKICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+
ICdpbmZvJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gX19QQUNLQUdFX18gLiAiOjpSdW4oKTog
T1RSUyBUaWNrZXQgbm90IGluICRBbGxvd2VkU3RhdGVzTmFtZXM6ICRUaWNrZXR7U3RhdGV9XG4i
LAogICAgICAgICk7CgogICAgICAgIHJldHVybiAxOwogICAgfQoKICAgIG15ICRKSVJBSXNzdWUg
PSAkVGlja2V0SklSQU9iamVjdC0+SXNzdWVVcGRhdGUoCiAgICAgICAgVGlja2V0SUQgPT4gJFRp
Y2tldHtUaWNrZXRJRH0sCiAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICk7ICMgRklYTUU6IFVz
ZXJJRCA/CgogICAgaWYgKCAkU2VsZi0+e0RlYnVnfSApIHsKICAgICAgICAkTG9nT2JqZWN0LT5M
b2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdkZWJ1ZycsCiAgICAgICAgICAgIE1lc3NhZ2Ug
ID0+IF9fUEFDS0FHRV9fIC4gIjogVXBkYXRlIHJlc3BvbnNlICRKSVJBSXNzdWVcbiIsCiAgICAg
ICAgKTsKICAgIH0KCiAgICByZXR1cm4gMTsKfQoKMTsK
IyAgLS0KIyAgQ29weXJpZ2h0IChDKSAyMDA4LTIwMTggY2F0V29ya1ggR21iSCBodHRwOi8vd3d3
LmNhdHdvcmt4LmRlCiMgIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkg
Tk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5H
IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZl
IHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAt
LQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6VGlja2V0SklSQTsKCnVzZSBzdHJpY3Q7CnVzZSB3
YXJuaW5nczsKCnVzZSBSRVNUOjpDbGllbnQ7CnVzZSBKSVJBOjpSRVNUOwp1c2UgVGltZTo6UGll
Y2U7CnVzZSBTY2FsYXI6OlV0aWwgcXcobG9va3NfbGlrZV9udW1iZXIpOwp1c2UgTGlzdDo6VXRp
bCBxdyhmaXJzdCk7Cgp1c2UgY29uc3RhbnQgUCA9PiBfX1BBQ0tBR0VfXzsKCm91ciBAT2JqZWN0
RGVwZW5kZW5jaWVzID0gcXcoCiAgICBLZXJuZWw6OkNvbmZpZwogICAgS2VybmVsOjpTeXN0ZW06
OkxvZwogICAgS2VybmVsOjpTeXN0ZW06Ok1haW4KICAgIEtlcm5lbDo6U3lzdGVtOjpUaWNrZXQK
ICAgIEtlcm5lbDo6U3lzdGVtOjpUaWNrZXQ6OkFydGljbGUKICAgIEtlcm5lbDo6U3lzdGVtOjpV
c2VyCiAgICBLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkCiAgICBLZXJuZWw6OlN5c3RlbTo6
RHluYW1pY0ZpZWxkOjpCYWNrZW5kCiAgICBLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkVmFs
dWUKICAgIEtlcm5lbDo6U3lzdGVtOjpKU09OCiAgICBLZXJuZWw6OlN5c3RlbTo6Q2FjaGUKICAg
IEtlcm5lbDo6U3lzdGVtOjpKSVJBOjpRdWV1ZVNldHRpbmdzCik7CgoKc3ViIG5ldyB7CiAgICBt
eSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9i
amVjdAogICAgbXkgJFNlbGYgPSB7fTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICBt
eSAkQ29uZmlnT2JqZWN0ICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcn
KTsKICAgIG15ICREeW5hbWljRmllbGRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6
OlN5c3RlbTo6RHluYW1pY0ZpZWxkJyk7CgogICAgJFNlbGYtPntEZWJ1Z30gICAgICA9ICRDb25m
aWdPYmplY3QtPkdldCgnSklSQTo6RGVidWcnKTsKICAgICRTZWxmLT57Q29uZmlnfSAgICAgPSAk
Q29uZmlnT2JqZWN0LT5HZXQoJ1RpY2tldEpJUkEnKSB8fCB7fTsKCiAgICBteSAkSG9zdCA9ICRT
ZWxmLT57Q29uZmlnfS0+e1VSTH0gLiAkU2VsZi0+e0NvbmZpZ30tPntQYXRofTsKICAgICRIb3N0
ID1+IHN7L1x6fXt9eG1zZzsKCiAgICAkU2VsZi0+e0hvc3R9ID0gJEhvc3Q7CgogICAgJFNlbGYt
PntKSVJBQ2xpZW50fSA9IEpJUkE6OlJFU1QtPm5ldygKICAgICAgICAkSG9zdCwKICAgICAgICAk
U2VsZi0+e0NvbmZpZ30tPntVc2VyfSwKICAgICAgICAkU2VsZi0+e0NvbmZpZ30tPntQYXNzd29y
ZH0sCiAgICApOwoKICAgIG15ICRWZXJpZnlTU0wgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0pJUkE6
OlNTTFZlcmlmeScpOwogICAgaWYgKCAhJFZlcmlmeVNTTCApIHsKICAgICAgICBteSAkTG9hZGVk
ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok1haW4nKS0+UmVxdWlyZSgKICAg
ICAgICAgICAgJ05ldDo6U1NMZWF5JywKICAgICAgICAgICAgU2lsZW50ID0+IDEsCiAgICAgICAg
KTsKICAgICAgICBpZiAoJExvYWRlZCkgewogICAgICAgICAgICAkU2VsZi0+e0pJUkFDbGllbnR9
LT57cmVzdH0tPmdldFVzZXJhZ2VudCgpLT5zc2xfb3B0cyggdmVyaWZ5X2hvc3RuYW1lID0+IDAg
KTsKICAgICAgICAgICAgJFNlbGYtPntKSVJBQ2xpZW50fS0+e3Jlc3R9LT5nZXRVc2VyYWdlbnQo
KS0+c3NsX29wdHMoIFNTTF92ZXJmaXlfbW9kZSA9PiBOZXQ6OlNTTGVheTo6VkVSSUZZX05PTkUo
KSApOwogICAgICAgIH0KICAgIH0KCiAgICAkU2VsZi0+e0pJUkFEeW5hbWljRmllbGR9ID0gJER5
bmFtaWNGaWVsZE9iamVjdC0+RHluYW1pY0ZpZWxkR2V0KCBOYW1lID0+ICdKSVJBSXNzdWVJRCcg
KTsKCiAgICAkU2VsZi0+e0NhY2hlVHlwZX0gPSAnSklSQUFQSSc7CiAgICAkU2VsZi0+e0NhY2hl
VFRMfSAgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0pJUkE6OkNhY2hlVFRMJyk7CgogICAgcmV0dXJu
ICRTZWxmOwp9Cgo9aXRlbSBJc3N1ZUNsb3NlKCkKCkNsb3NlIGFuIGlzc3VlIGluIEpJUkEKCj1j
dXQKCnN1YiBJc3N1ZUNsb3NlIHsKICAgIG15ICgkU2VsZiwgJVBhcmFtKSA9IEBfOwoKICAgIG15
ICRMb2dPYmplY3QgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpOwog
ICAgbXkgJE1haW5PYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TWFp
bicpOwoKICAgICMgY2hlY2sgZm9yIG5lZWRlZCBkYXRhCiAgICBmb3IgbXkgJE5lZWRlZCAoIHF3
L0lzc3VlSUQvICkgewogICAgICAgIGlmICggISRQYXJhbXskTmVlZGVkfSApIHsKICAgICAgICAg
ICAgJExvZ09iamVjdC0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywK
ICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICROZWVkZWQhIiwKICAgICAgICAgICAg
KTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgbXkgJENsb3NlVHJh
bnNpdGlvbiA9ICRTZWxmLT57Q29uZmlnfS0+e1dvcmtmbG93Q2xvc2VBY3Rpb25OYW1lfSAvLyAn
RG9uZSc7CgogICAgbXkgJFRyYW5zaXRpb25zOwogICAgbXkgJEVycm9yVHJhbnNpdGlvbnM7Cgog
ICAgZXZhbHsKICAgICAgICAkVHJhbnNpdGlvbnMgPSAkU2VsZi0+e0pJUkFDbGllbnR9LT5HRVQo
CiAgICAgICAgICAgICcvaXNzdWUvJyAuICRQYXJhbXtJc3N1ZUlEfSAuICcvdHJhbnNpdGlvbnMn
LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBleHBhbmQgPT4gJ3RyYW5zaXRpb24uZmll
bGRzJywKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICAxOwogICAgfSBvciAkRXJy
b3JUcmFuc2l0aW9ucyA9ICRAOwoKICAgIGlmICggJEVycm9yVHJhbnNpdGlvbnMgKSB7CiAgICAg
ICAgJExvZ09iamVjdC0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAg
ICAgICAgICBNZXNzYWdlICA9PiBzcHJpbnRmIFAgLiAgIjo6SXNzdWVDbG9zZTogY2Fubm90IGdl
dCB0cmFuc2l0aW9ucyB0aGUgSklSQSBJc3N1ZSBmb3IgJXM6ICVzIiwKICAgICAgICAgICAgICAg
ICRQYXJhbXtJc3N1ZUlEfSwgJEVycm9yVHJhbnNpdGlvbnMsCiAgICAgICAgKTsKCiAgICAgICAg
cmV0dXJuICt7IGVycm9yID0+ICRFcnJvclRyYW5zaXRpb25zIH07CiAgICB9CgogICAgbXkgKCRU
cmFuc2l0aW9uKSA9IGdyZXB7ICRfLT57bmFtZX0gZXEgJENsb3NlVHJhbnNpdGlvbiB9QHsgJFRy
YW5zaXRpb25zLT57dHJhbnNpdGlvbnN9IHx8IFtdIH07CgogICAgaWYgKCAhJFRyYW5zaXRpb24g
KSB7CiAgICAgICAgcmV0dXJuICt7IGVycm9yID0+ICdObyB0cmFuc2l0aW9uIGZvdW5kIGZvciAn
IC4gJENsb3NlVHJhbnNpdGlvbiB9OwogICAgfQoKICAgIG15ICRFcnJvckNsb3NlOwoKICAgIG15
ICVPcHRzID0gKAogICAgICAgIHRyYW5zaXRpb24gPT4gewogICAgICAgICAgICBpZCA9PiAkVHJh
bnNpdGlvbi0+e2lkfSwKICAgICAgICB9CiAgICApOwoKICAgIGlmICggJFBhcmFte0NvbW1lbnR9
ICkgewogICAgICAgICRPcHRze3VwZGF0ZX0gPSB7CiAgICAgICAgICAgIGNvbW1lbnQgPT4gWwog
ICAgICAgICAgICAgICAgeyBhZGQgPT4geyBib2R5ID0+ICRQYXJhbXtDb21tZW50fSB9IH0sCiAg
ICAgICAgICAgIF0sCiAgICAgICAgfTsKICAgIH0KCiAgICBldmFsewogICAgICAgICRTZWxmLT57
SklSQUNsaWVudH0tPlBPU1QoCiAgICAgICAgICAgICcvaXNzdWUvJyAuICRQYXJhbXtJc3N1ZUlE
fSAuICcvdHJhbnNpdGlvbnMnLAogICAgICAgICAgICB1bmRlZiwKICAgICAgICAgICAgXCVPcHRz
LAogICAgICAgICk7CgogICAgICAgIDE7CiAgICB9IG9yICRFcnJvckNsb3NlID0gJEA7CgogICAg
aWYgKCAkRXJyb3JDbG9zZSApIHsKICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAg
IFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+IHNwcmludGYgUCAu
ICAiOjpJc3N1ZUNsb3NlOiBjYW5ub3QgY2xvc2UgaXNzdWUgJXM6ICVzIGZvciAlcyIsCiAgICAg
ICAgICAgICAgICAkUGFyYW17SXNzdWVJRH0sICRFcnJvclRyYW5zaXRpb25zLAogICAgICAgICAg
ICAgICAgJE1haW5PYmplY3QtPkR1bXAoXCVPcHRzKSwKICAgICAgICApOwoKICAgICAgICByZXR1
cm4gK3sgZXJyb3IgPT4gJEVycm9yQ2xvc2UgfTsKICAgIH0KCiAgICByZXR1cm4gK3t9Owp9Cgo9
aXRlbSBJc3N1ZUdldCgpCgpHZXQgYW4gaXNzdWUgZnJvbSBKSVJBCgogICAgbXkgJElzc3VlRGF0
YSA9ICRPYmplY3QtPklzc3VlR2V0KAogICAgICAgIElzc3VlID0+ICRJc3N1ZUtleSwKICAgICk7
Cgo9Y3V0CgpzdWIgSXNzdWVHZXQgewogICAgbXkgKCRTZWxmLCAlUGFyYW0pID0gQF87CgogICAg
bXkgJExvZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKTsK
CiAgICAjIGNoZWNrIGZvciBuZWVkZWQgZGF0YQogICAgZm9yIG15ICROZWVkZWQgKCBxdy9Jc3N1
ZS8gKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyROZWVkZWR9ICkgewogICAgICAgICAgICAkTG9n
T2JqZWN0LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAg
ICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJE5lZWRlZCEiLAogICAgICAgICAgICApOwoKICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICBteSAkSXNzdWU7CiAgICBteSAk
RXJyb3JHZXQ7CgogICAgZXZhbHsKICAgICAgICAkSXNzdWUgPSAkU2VsZi0+e0pJUkFDbGllbnR9
LT5HRVQoICcvaXNzdWUvJyAuICRQYXJhbXtJc3N1ZX0gKTsKICAgIH0gb3IgJEVycm9yR2V0ID0g
JEA7CgogICAgaWYgKCAkRXJyb3JHZXQgKSB7CiAgICAgICAgJExvZ09iamVjdC0+TG9nKAogICAg
ICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiBzcHJp
bnRmIFAgLiAgIjo6SXNzdWVDbG9zZTogY2Fubm90IGNsb3NlIGlzc3VlICVzOiAlcyIsCiAgICAg
ICAgICAgICAgICAkUGFyYW17SXNzdWVJRH0sICRFcnJvckdldCwKICAgICAgICApOwoKICAgICAg
ICByZXR1cm4gK3sgZXJyb3IgPT4gJEVycm9yR2V0IH07CiAgICB9CgogICAgcmV0dXJuICRJc3N1
ZTsKfQoKPWl0ZW0gSXNzdWVDcmVhdGUoKQoKY3JlYXRlcyBhbiBpc3N1ZSBpbiB0aGUgY29uZmln
dXJlZCBKSVJBIHN5c3RlbSB1c2luZyBSRVNUCgogICAgbXkgJElzc3VlID0gJFRpY2tldEpJUkFP
YmplY3QtPklzc3VlQ3JlYXRlKAogICAgICAgIFRpY2tldElEICAgICAgID0+ICRUaWNrZXRJRCwg
ICAgICAgICAgICAgICAgICAjIHRoZSBUaWNrZXRJRCwgbWFuZGF0b3J5CiAgICAgICAgQXJ0aWNs
ZUlEICAgICAgPT4gJEFydGljbGVJRCwgICAgICAgICAgICAgICAgICMgb3B0aW9uYWwsIHRvIGRl
ZmluZSB3aGljaCBhcnRpY2xlIGlzIHNlbnQgdG8gSklSQQogICAgICAgIFVzZXJJRCAgICAgICAg
ID0+ICRVc2VySUQgICAgICAgICAgICAgICAgICAgICAjIHRoZSBVc2VySUQsIG1hbmRhdG9yeQog
ICAgKTsKCnJldHVybnM6CgogICAgJElzc3VlID0gewogICAgICAgIGlkID0+IDEwMDAwLCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAjIGlzc3VlIGlkIGluIEpJUkEsIHN0YXJ0cyBmcm9t
IDEwMDAwCiAgICAgICAga2V5ID0+IFBST0otMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICMgaXNzdWUga2V5IGFzIHVzZWQgaW4gdGhlIHdlYmludGVyZmFjZSwgPFByb2o+LTxOdW1iZXI+
LCBzdGFydHMgZnJvbSAxCiAgICAgICAgWy4uLl0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICMgcGxlbnR5IG9mIG90aGVyIGZpZWxkcyBhcyBkZWZpbmVkIGluIHRoZSBBUEkK
ICAgIH0KCj1jdXQKCnN1YiBJc3N1ZUNyZWF0ZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9
IEBfOwoKICAgIG15ICRMb2dPYmplY3QgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6
U3lzdGVtOjpMb2cnKTsKICAgIG15ICRNYWluT2JqZWN0ICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQo
J0tlcm5lbDo6U3lzdGVtOjpNYWluJyk7CiAgICBteSAkQ29uZmlnT2JqZWN0ICAgPSAkS2VybmVs
OjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwogICAgbXkgJFRpY2tldE9iamVjdCAgID0gJEtl
cm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpY2tldCcpOwogICAgbXkgJERGVmFsdWVP
YmplY3QgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZFZh
bHVlJyk7CiAgICBteSAkQmFja2VuZE9iamVjdCAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6
OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpCYWNrZW5kJyk7CiAgICBteSAkU2V0dGluZ3NPYmplY3Qg
PSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SklSQTo6UXVldWVTZXR0aW5ncycp
OwogICAgbXkgJEFydGljbGVPYmplY3QgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0
ZW06OlRpY2tldDo6QXJ0aWNsZScpOwoKCiAgICAjIGNoZWNrIGZvciBuZWVkZWQgZGF0YQogICAg
Zm9yIG15ICROZWVkZWQgKCBxdy9UaWNrZXRJRCBVc2VySUQvICkgewogICAgICAgIGlmICggISRQ
YXJhbXskTmVlZGVkfSApIHsKICAgICAgICAgICAgJExvZ09iamVjdC0+TG9nKAogICAgICAgICAg
ICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJO
ZWVkICROZWVkZWQhIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICB9CiAgICB9CgogICAgbXkgJUFydGljbGU7CgogICAgaWYgKCAkUGFyYW17QXJ0aWNsZUlEfSAp
IHsKICAgICAgICBteSAkQmFja2VuZE9iamVjdCA9ICRBcnRpY2xlT2JqZWN0LT5CYWNrZW5kRm9y
QXJ0aWNsZSgKICAgICAgICAgICAgVGlja2V0SUQgICAgICA9PiAkUGFyYW17VGlja2V0SUR9LAog
ICAgICAgICAgICBBcnRpY2xlSUQgICAgID0+ICRQYXJhbXtBcnRpY2xlSUR9LAogICAgICAgICk7
CgogICAgICAgICVBcnRpY2xlID0gJEJhY2tlbmRPYmplY3QtPkFydGljbGVHZXQoCiAgICAgICAg
ICAgIFRpY2tldElEICAgICAgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgQXJ0aWNs
ZUlEICAgICA9PiAkUGFyYW17QXJ0aWNsZUlEfSwKICAgICAgICAgICAgRHluYW1pY0ZpZWxkcyA9
PiAxLAogICAgICAgICk7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICBteSAoJEZpcnN0QXJ0aWNs
ZSkgPSAkQXJ0aWNsZU9iamVjdC0+QXJ0aWNsZUxpc3QoCiAgICAgICAgICAgIFRpY2tldElEICA9
PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICBPbmx5Rmlyc3QgPT4gMSwKICAgICAgICAp
OwoKICAgICAgICBteSAkQmFja2VuZE9iamVjdCA9ICRBcnRpY2xlT2JqZWN0LT5CYWNrZW5kRm9y
QXJ0aWNsZSggJXskRmlyc3RBcnRpY2xlfSApOwoKICAgICAgICAlQXJ0aWNsZSA9ICRCYWNrZW5k
T2JqZWN0LT5BcnRpY2xlR2V0KAogICAgICAgICAgICBUaWNrZXRJRCAgICAgID0+ICRQYXJhbXtU
aWNrZXRJRH0sCiAgICAgICAgICAgIEFydGljbGVJRCAgICAgPT4gJEZpcnN0QXJ0aWNsZS0+e0Fy
dGljbGVJRH0sCiAgICAgICAgICAgIER5bmFtaWNGaWVsZHMgPT4gMSwKICAgICAgICApOwogICAg
fQoKICAgIG15ICVUaWNrZXQgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRHZXQoCiAgICAgICAgVGlj
a2V0SUQgICAgICA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgIER5bmFtaWNGaWVsZHMgPT4g
MSwKICAgICk7CgogICAgaWYgKCAkU2VsZi0+e0RlYnVnfSApIHsKICAgICAgICAkTG9nT2JqZWN0
LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdpbmZvJywKICAgICAgICAgICAgTWVzc2Fn
ZSAgPT4gc3ByaW50ZiBQIC4gIjo6SXNzdWVDcmVhdGU6IFRpY2tldElEOiAlcyA9PSAlcyBUaXRs
ZTogJXMgVGV4dDogJXMiLAogICAgICAgICAgICAgICAgJFBhcmFte1RpY2tldElEfSwgJEFydGlj
bGV7VGlja2V0SUR9LCAkVGlja2V0e1RpdGxlfSwgJEFydGljbGV7Qm9keX0sCiAgICAgICAgKTsK
ICAgIH0KCiAgICBteSAkVmFsaWRMaWNlbnNlID0gJFNlbGYtPkNoZWNrVmFsaWRMaWNlbnNlKCk7
CiAgICBpZiAoICRWYWxpZExpY2Vuc2UgIT0gMSApIHsKICAgICAgICBteSAkVVJMID0gJFNlbGYt
PntDb25maWd9LT57VVJMfTsKICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgIFBy
aW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+IFAgLiAiOjpJc3N1ZUNy
ZWF0ZTogaW52YWxpZCBsaWNlbnNlIGF0ICRVUkwsIHN0YXR1cyAkVmFsaWRMaWNlbnNlIiwKICAg
ICAgICApOwoKICAgICAgICByZXR1cm4gK3sgZXJyb3IgPT4gJ05vIHZhbGlkIGxpY2Vuc2UnIH07
ICMgc2tpcCB0aGUgcmVzdAogICAgfQoKICAgIG15ICVTZXR0aW5nczsKICAgIGlmICggJFBhcmFt
e1F1ZXVlSUR9ICkgewogICAgICAgICVTZXR0aW5ncyA9ICRTZXR0aW5nc09iamVjdC0+VmFsaWRT
ZXR0aW5nc0dldCggUXVldWVJRCA9PiAkUGFyYW17UXVldWVJRH0gKTsKICAgIH0KCiAgICBteSAk
UmVwb3J0ZXIgPSAkU2VsZi0+e0NvbmZpZ30tPntSZXBvcnRlcn07CiAgICBteSAkQXNzaWduZWUg
PSAkU2V0dGluZ3N7QXNzaWduZWV9IHx8ICRQYXJhbXtBc3NpZ25lZX0gfHwgJFNlbGYtPntDb25m
aWd9LT57QXNzaWduZWV9OwoKICAgICMgcmVhZCAnUHJvamVjdCcgZmVsZCBmcm9tICAiU3lzQ29u
ZmlnIiBpbiBPVFJTCiAgICBteSAkUHJvamVjdCA9ICRTZXR0aW5nc3tQcm9qZWN0SUR9IHx8ICRQ
YXJhbXtQcm9qZWN0fSB8fCAkU2VsZi0+e0NvbmZpZ30tPntQcm9qZWN0fTsKCiAgICAjIHJlYWQg
J0lzc3VlVHlwZScgZmVsZCBmcm9tICAiU3lzQ29uZmlnIiBpbiBPVFJTCiAgICBteSAkSXNzdWVU
eXBlICAgPSAkUGFyYW17SXNzdWVUeXBlfSB8fCAkU2VsZi0+e0NvbmZpZ30tPntJc3N1ZVR5cGV9
OwogICAgbXkgJEZpZWxkTmFtZSAgID0gJ0pJUkFJc3N1ZUlEJzsKICAgIG15ICRKSVJBSXNzdWVJ
RCA9ICRBcnRpY2xleyJEeW5hbWljRmllbGRfIiAuICRGaWVsZE5hbWV9OwoKICAgIGlmICggJFNl
bGYtPntEZWJ1Z30gKSB7CiAgICAgICAgJExvZ09iamVjdC0+TG9nKAogICAgICAgICAgICBQcmlv
cml0eSA9PiAnaW5mbycsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+IHNwcmludGYgUCAuICI6Oklz
c3VlQ3JlYXRlOiBKSVJBSXNzdWVJRChwcmUpOiAnJXMnIER5bmFtaWNGaWVsZElEOiAlcyAiLAog
ICAgICAgICAgICAgICAgKCAkSklSQUlzc3VlSUQgfHwgJycgKSwgJEZpZWxkTmFtZSwKICAgICAg
ICApOwogICAgfQoKICAgIG15ICRJc3N1ZSA9IHt9OwogICAgbXkgJFVzZWRBcnRpY2xlSUQ7Cgog
ICAgaWYgKCRKSVJBSXNzdWVJRCkgewoKICAgICAgICAkSXNzdWUgPSAkU2VsZi0+SXNzdWVHZXQo
CiAgICAgICAgICAgIElzc3VlID0+ICRKSVJBSXNzdWVJRCwKICAgICAgICApOwoKICAgICAgICBp
ZiAoICEkSXNzdWUgJiYgJFNlbGYtPntEZWJ1Z30gKSB7CiAgICAgICAgICAgICRMb2dPYmplY3Qt
PkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAg
ICBNZXNzYWdlICA9PiAgc3ByaW50ZiBQIC4gIjo6SXNzdWVDcmVhdGU6IGNhbm5vdCBmZXRjaCB0
aGUgSklSQSBJc3N1ZSAlcyBmb3IgJXMiLAogICAgICAgICAgICAgICAgICAgICRKSVJBSXNzdWVJ
RCwgJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybiAr
eyBlcnJvciA9PiAnQ2Fubm90IGZldGNoIElzc3VlJyB9OwogICAgICAgIH0KCiAgICB9CiAgICBl
bHNlIHsKICAgICAgICBteSAkQ3VzdG9tRmllbGQgPSAnY3VzdG9tZmllbGRfJyAuICggJENvbmZp
Z09iamVjdC0+R2V0KCdKSVJBOjpPVFJTVGlja2V0SURGaWVsZCcpIHx8IDEwMDAwICk7CiAgICAg
ICAgbXkgJEpJUkFDcmVhdGVQYXJhbXMgPSB7CiAgICAgICAgICAgIHByb2plY3QgICAgICAgPT4g
eyBrZXkgPT4gJFByb2plY3QgfSwKICAgICAgICAgICAgaXNzdWV0eXBlICAgICA9PiB7IG5hbWUg
PT4gJElzc3VlVHlwZSB9LAogICAgICAgICAgICBzdW1tYXJ5ICAgICAgID0+ICRUaWNrZXR7VGl0
bGV9LAogICAgICAgICAgICBkZXNjcmlwdGlvbiAgID0+ICRBcnRpY2xle0JvZHl9LAogICAgICAg
ICAgICByZXBvcnRlciAgICAgID0+IHsgbmFtZSA9PiAkUmVwb3J0ZXIgfSwKICAgICAgICAgICAg
YXNzaWduZWUgICAgICA9PiB7IG5hbWUgPT4gJEFzc2lnbmVlIH0sCiAgICAgICAgICAgICRDdXN0
b21GaWVsZCAgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICB9OwoKICAgICAgICBpZiAoICRD
b25maWdPYmplY3QtPkdldCgnSklSQTo6Tm9Bc3NpZ25lZScpICkgewogICAgICAgICAgICBkZWxl
dGUgJEpJUkFDcmVhdGVQYXJhbXMtPnthc3NpZ25lZX07CiAgICAgICAgfQoKICAgICAgICBpZiAo
ICEkQ29uZmlnT2JqZWN0LT5HZXQoJ0pJUkE6OlNlbmRSZXBvcnRlcicpICkgewogICAgICAgICAg
ICBkZWxldGUgJEpJUkFDcmVhdGVQYXJhbXMtPntyZXBvcnRlcn07CiAgICAgICAgfQoKICAgICAg
ICAkSklSQUNyZWF0ZVBhcmFtcyA9ICRTZWxmLT5NYXBGaWVsZHMoICRKSVJBQ3JlYXRlUGFyYW1z
LCAlVGlja2V0LCAlQXJ0aWNsZSk7CgogICAgICAgICMgY2xlYW4gdXAgc3VtbWFyeSAtIGFsbCB2
ZXJ0aWNhbCBzcGFjZXMgYXJlIHJlbW92ZWQKICAgICAgICAjIEpJUkEgcmVwb3J0cyBhbiBlcnJv
ciB3aGVuIHRoZSBzdW1tYXJ5IGNvbnRhaW5zICJuZXdsaW5lIGNoYXJhY3RlcnMiCiAgICAgICAg
JEpJUkFDcmVhdGVQYXJhbXMtPntzdW1tYXJ5fSA9fiBze1x2fXsgfWc7CgogICAgICAgIGlmICgg
JFNlbGYtPntEZWJ1Z30gKSB7CiAgICAgICAgICAgICRMb2dPYmplY3QtPkxvZygKICAgICAgICAg
ICAgICAgIFByaW9yaXR5ID0+ICdub3RpY2UnLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4g
c3ByaW50ZiBQIC4gICI6Oklzc3VlQ3JlYXRlOiBQYXJhbWV0ZXJzOiAlcyIsCiAgICAgICAgICAg
ICAgICAgICAgJE1haW5PYmplY3QtPkR1bXAoJEpJUkFDcmVhdGVQYXJhbXMpLAogICAgICAgICAg
ICApOwogICAgICAgIH0KCiAgICAgICAgbXkgJEVycm9yQ3JlYXRlOwogICAgICAgIGV2YWwgewog
ICAgICAgICAgICAkSXNzdWUgPSAkU2VsZi0+e0pJUkFDbGllbnR9LT5QT1NUKAogICAgICAgICAg
ICAgICAgJy9pc3N1ZScsCiAgICAgICAgICAgICAgICB1bmRlZiwKICAgICAgICAgICAgICAgICt7
IGZpZWxkcyA9PiAkSklSQUNyZWF0ZVBhcmFtcyB9LAogICAgICAgICAgICApOwoKICAgICAgICAg
ICAgMTsKICAgICAgICB9IG9yICRFcnJvckNyZWF0ZSA9ICRAOwogCiAgICAgICAgaWYgKCAkRXJy
b3JDcmVhdGUgKSB7CiAgICAgICAgICAgICRMb2dPYmplY3QtPkxvZygKICAgICAgICAgICAgICAg
IFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiBzcHJpbnRm
IFAgLiAgIjo6SXNzdWVDcmVhdGU6IGNhbm5vdCBjcmVhdGUgdGhlIEpJUkEgSXNzdWUgZm9yICVz
OiAlcyIsCiAgICAgICAgICAgICAgICAgICAgJFBhcmFte1RpY2tldElEfSwgJEVycm9yQ3JlYXRl
LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuICt7IGVycm9yID0+ICRFcnJvckNy
ZWF0ZSB9OwogICAgICAgIH0KCiAgICAgICAgJFVzZWRBcnRpY2xlSUQgPSAkQXJ0aWNsZXtBcnRp
Y2xlSUR9OwoKICAgICAgICAkU2VsZi0+QXR0YWNobWVudHNTZW5kKAogICAgICAgICAgICBBcnRp
Y2xlSUQgPT4gJEFydGljbGV7QXJ0aWNsZUlEfSwKICAgICAgICAgICAgSXNzdWUgICAgID0+ICRJ
c3N1ZS0+e2tleX0sCiAgICAgICAgICAgIFVzZXJJRCAgICA9PiAkUGFyYW17VXNlcklEfSwKICAg
ICAgICApOwoKICAgICAgICBteSAkU3VjY2VzcyA9ICRCYWNrZW5kT2JqZWN0LT5WYWx1ZVNldCgK
ICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICRTZWxmLT57SklSQUR5bmFtaWNGaWVs
ZH0sCiAgICAgICAgICAgIE9iamVjdElEICAgICAgICAgICA9PiAkQXJ0aWNsZXtUaWNrZXRJRH0s
CiAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICA9PiAkSXNzdWUtPntrZXl9LAogICAgICAg
ICAgICBVc2VySUQgICAgICAgICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKCiAg
ICAgICAgaWYgKCAkU2VsZi0+e0RlYnVnfSApIHsKICAgICAgICAgICAgJExvZ09iamVjdC0+TG9n
KAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2luZm8nLAogICAgICAgICAgICAgICAgTWVz
c2FnZSAgPT4gc3ByaW50ZiBQIC4gIjo6SXNzdWVDcmVhdGU6IEpJUkFJc3N1ZUlEKHBvc3QpOiAl
cyBEeW5hbWljRmllbGRJRDogJXMiLAogICAgICAgICAgICAgICAgICAgICRJc3N1ZS0+e2tleX0s
ICRGaWVsZE5hbWUsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAkTG9nT2JqZWN0LT5Mb2co
CiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnaW5mbycsCiAgICAgICAgICAgICAgICBNZXNz
YWdlICA9PiBzcHJpbnRmIFAgLiAiOjpJc3N1ZUNyZWF0ZTogU3VjY2VzczogJXMiLCAkU3VjY2Vz
cywKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgIG15ICREYXRhICAgPSB7CiAgICAg
ICAgICAgIG9iamVjdCA9PiB7CiAgICAgICAgICAgICAgICB1cmwgICA9PiBzcHJpbnRmKAogICAg
ICAgICAgICAgICAgICAgICIlczovLyVzLyVzaW5kZXgucGw/QWN0aW9uPUFnZW50VGlja2V0Wm9v
bTtUaWNrZXRJRD0lcyIsCiAgICAgICAgICAgICAgICAgICAgJENvbmZpZ09iamVjdC0+R2V0KCdI
dHRwVHlwZScpLAogICAgICAgICAgICAgICAgICAgICRDb25maWdPYmplY3QtPkdldCgnRlFETicp
LAogICAgICAgICAgICAgICAgICAgICRDb25maWdPYmplY3QtPkdldCgnU2NyaXB0QWxpYXMnKSwK
ICAgICAgICAgICAgICAgICAgICAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICAgICAgKSwK
ICAgICAgICAgICAgICAgIHRpdGxlID0+IHNwcmludGYoICJPVFJTIFRpY2tldCMlcyAoJXMpIiwg
JEFydGljbGV7VGlja2V0TnVtYmVyfSwgJFBhcmFte1RpY2tldElEfSApLAogICAgICAgICAgICB9
LAogICAgICAgIH07CgogICAgICAgIG15ICRSZXN1bHQ7CiAgICAgICAgZXZhbCB7CiAgICAgICAg
ICAgICRSZXN1bHQgPSAkU2VsZi0+e0pJUkFDbGllbnR9LT5QT1NUKAogICAgICAgICAgICAgICAg
Jy9pc3N1ZS8nIC4gJElzc3VlLT57a2V5fSAuICcvcmVtb3RlbGluaycsCiAgICAgICAgICAgICAg
ICB1bmRlZiwKICAgICAgICAgICAgICAgICREYXRhLAogICAgICAgICAgICApOwogICAgICAgIH07
CgogICAgICAgIGlmICggJFNlbGYtPntEZWJ1Z30gKSB7CiAgICAgICAgICAgICRMb2dPYmplY3Qt
PkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdpbmZvJywKICAgICAgICAgICAgICAg
IE1lc3NhZ2UgID0+IHNwcmludGYgUCAuICI6Oklzc3VlQ3JlYXRlOiBSZW1vdGVsaW5rICglcy8l
cykgcmVzdWx0ICVzIiwKICAgICAgICAgICAgICAgICAgICAkSXNzdWUtPntrZXl9LCAkUGFyYW17
VGlja2V0SUR9LAogICAgICAgICAgICAgICAgICAgICRNYWluT2JqZWN0LT5EdW1wKCRSZXN1bHQp
LAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyB0cmFuc2ZlciB0aWNrZXQgaGlz
dG9yeSAtIGlmIGNvbmZpZ3VyZWQgYW5kIGlzc3VlIGlzIG5vdCBjcmVhdGVkIGJhc2VkCiAgICAg
ICAgIyBvbiBhIHNpbmdsZSBhcnRpY2xlCiAgICAgICAgbXkgJFNob3VsZFRyYW5zZmVySGlzdG9y
eSA9ICRDb25maWdPYmplY3QtPkdldCgnSklSQTo6VHJhbnNmZXJUaWNrZXRIaXN0b3J5Jyk7CiAg
ICAgICAgaWYgKCAkU2hvdWxkVHJhbnNmZXJIaXN0b3J5ICYmICEkUGFyYW17QXJ0aWNsZUlEfSAm
JiAkVXNlZEFydGljbGVJRCApIHsKCiAgICAgICAgICAgIG15IEBBcnRpY2xlSW5kZXggPSAkQXJ0
aWNsZU9iamVjdC0+QXJ0aWNsZUxpc3QoCiAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkUGFy
YW17VGlja2V0SUR9LAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICAgICAgICAg
KTsKCiAgICAgICAgICAgIENPTU1FTlQ6CiAgICAgICAgICAgIGZvciBteSAkQ29tbWVudCAoIEBB
cnRpY2xlSW5kZXggKSB7CiAgICAgICAgICAgICAgICBuZXh0IENPTU1FTlQgaWYgJENvbW1lbnQt
PntBcnRpY2xlSUR9ID09ICRVc2VkQXJ0aWNsZUlEOwoKICAgICAgICAgICAgICAgIG15ICRCYWNr
ZW5kT2JqZWN0ID0gJEFydGljbGVPYmplY3QtPkJhY2tlbmRGb3JBcnRpY2xlKCAleyRDb21tZW50
fSApOwogICAgICAgICAgICAgICAgbXkgJUFydGljbGUgICAgICAgPSAkQmFja2VuZE9iamVjdC0+
QXJ0aWNsZUdldCgKICAgICAgICAgICAgICAgICAgICBBcnRpY2xlSUQgPT4gJENvbW1lbnQtPntB
cnRpY2xlSUR9LAogICAgICAgICAgICAgICAgICAgIFRpY2tldElEICA9PiAkUGFyYW17VGlja2V0
SUR9LAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgICA9PiAxLAogICAgICAgICAgICAgICAg
KTsKCiAgICAgICAgICAgICAgICBteSAkSklSQUlzc3VlID0gJFNlbGYtPklzc3VlQ29tbWVudCgK
ICAgICAgICAgICAgICAgICAgICBJc3N1ZUlEICAgPT4gJElzc3VlLT57a2V5fSwKICAgICAgICAg
ICAgICAgICAgICBBcnRpY2xlSUQgPT4gJENvbW1lbnQtPntBcnRpY2xlSUR9LAogICAgICAgICAg
ICAgICAgICAgIEFydGljbGUgICA9PiBcJUFydGljbGUsCiAgICAgICAgICAgICAgICAgICAgVXNl
cklEICAgID0+ICRQYXJhbXtVc2VySUR9IC8vIDEsCiAgICAgICAgICAgICAgICAgICAgQ29tbWVu
dCAgID0+ICRBcnRpY2xle0JvZHl9LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAg
ICAkU2VsZi0+QXR0YWNobWVudHNTZW5kKAogICAgICAgICAgICAgICAgICAgIEFydGljbGVJRCA9
PiAkQ29tbWVudC0+e0FydGljbGVJRH0sCiAgICAgICAgICAgICAgICAgICAgSXNzdWUgICAgID0+
ICRJc3N1ZS0+e2tleX0sCiAgICAgICAgICAgICAgICAgICAgVXNlcklEICAgID0+ICRQYXJhbXtV
c2VySUR9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0K
CiAgICByZXR1cm4gJElzc3VlOwp9Cgo9aXRlbSBJc3N1ZVVwZGF0ZSgpCgp1cGRhdGVzIGFuIGlz
c3VlIGluIHRoZSBjb25maWd1cmVkIEpJUkEgc3lzdGVtIHVzaW5nIFJFU1QKCiAgICBteSAkSXNz
dWUgPSAkVGlja2V0SklSQU9iamVjdC0+SXNzdWVVcGRhdGUoCiAgICAgICAgVGlja2V0SUQgICAg
ICAgPT4gJFRpY2tldElELCAgICAgICAgICAgICAgICAgICMgdGhlIFRpY2tldElELCBtYW5kYXRv
cnkKICAgICAgICBVc2VySUQgICAgICAgICA9PiAkVXNlcklEICAgICAgICAgICAgICAgICAgICAg
IyB0aGUgVXNlcklELCBtYW5kYXRvcnkKICAgICk7CgpyZXR1cm5zOgoKICAgICRJc3N1ZSA9IHsK
ICAgICAgICBpZCA9PiAxMDAwMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBpc3N1
ZSBpZCBpbiBKSVJBLCBzdGFydHMgZnJvbSAxMDAwMAogICAgICAgIGtleSA9PiBQUk9KLTEsICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAjIGlzc3VlIGtleSBhcyB1c2VkIGluIHRoZSB3ZWJp
bnRlcmZhY2UsIDxQcm9qPi08TnVtYmVyPiwgc3RhcnRzIGZyb20gMQogICAgICAgIFsuLi5dICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHBsZW50eSBvZiBvdGhlciBmaWVs
ZHMgYXMgZGVmaW5lZCBpbiB0aGUgQVBJCiAgICB9Cj1jdXQKCnN1YiBJc3N1ZVVwZGF0ZSB7CiAg
ICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRMb2dPYmplY3QgICAgID0gJEtl
cm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpOwogICAgbXkgJENvbmZpZ09iamVj
dCAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwogICAgbXkgJFRpY2tldE9i
amVjdCAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGlja2V0Jyk7CiAgICBt
eSAkQXJ0aWNsZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaWNr
ZXQ6OkFydGljbGUnKTsKCiAgICAjIGNoZWNrIGZvciBuZWVkZWQgZGF0YQogICAgZm9yIG15ICRO
ZWVkZWQgKCBxdy9UaWNrZXRJRCBVc2VySUQvICkgewogICAgICAgIGlmICggISRQYXJhbXskTmVl
ZGVkfSApIHsKICAgICAgICAgICAgJExvZ09iamVjdC0+TG9nKAogICAgICAgICAgICAgICAgUHJp
b3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICROZWVk
ZWQhIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9
CgogICAgbXkgJVRpY2tldCA9ICRUaWNrZXRPYmplY3QtPlRpY2tldEdldCgKICAgICAgICBUaWNr
ZXRJRCAgICAgID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgRHluYW1pY0ZpZWxkcyA9PiAx
CiAgICApOwoKICAgIG15IEBJbmRleCA9ICRBcnRpY2xlT2JqZWN0LT5BcnRpY2xlTGlzdCgKICAg
ICAgICBUaWNrZXRJRCAgID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICApOwoKICAgIG15ICVBcnRp
Y2xlOwoKICAgIGlmIChASW5kZXgpIHsKICAgICAgICBteSAkQmFja2VuZE9iamVjdCA9ICRBcnRp
Y2xlT2JqZWN0LT5CYWNrZW5kRm9yQXJ0aWNsZSggJXsgJEluZGV4Wy0xXSB9ICk7CiAgICAgICAg
JUFydGljbGUgPSAkQmFja2VuZE9iamVjdC0+QXJ0aWNsZUdldCgKICAgICAgICAgICAgQXJ0aWNs
ZUlEICAgICA9PiAkSW5kZXhbLTFdLT57QXJ0aWNsZUlEfSwKICAgICAgICAgICAgRHluYW1pY0Zp
ZWxkcyA9PiAxLAogICAgICAgICk7CiAgICB9CgogICAgaWYgKCAkU2VsZi0+e0RlYnVnfSApIHsK
ICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdpbmZvJywK
ICAgICAgICAgICAgTWVzc2FnZSAgPT4gc3ByaW50ZiBQIC4gIjo6SXNzdWVVcGRhdGU6IFRpY2tl
dElEOiAlcyA9PSAlcyBUaXRsZTogJXMiLAogICAgICAgICAgICAgICAgJFBhcmFte1RpY2tldElE
fSwgJFRpY2tldHtUaWNrZXRJRH0sICRUaWNrZXR7VGl0bGV9LAogICAgICAgICk7CiAgICB9Cgog
ICAgbXkgJFVSTCA9ICRTZWxmLT57Q29uZmlnfS0+e1VSTH07CgogICAgbXkgJFZhbGlkTGljZW5z
ZSA9ICRTZWxmLT5DaGVja1ZhbGlkTGljZW5zZSgpOwogICAgaWYgKCAkVmFsaWRMaWNlbnNlICE9
IDEgKSB7CiAgICAgICAgJExvZ09iamVjdC0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAn
ZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiBzcHJpbnRmIFAgLiAiOjpJc3N1ZVVwZGF0
ZTogaW52YWxpZCBsaWNlbnNlIGF0ICVzLCBzdGF0dXMgJXMiLAogICAgICAgICAgICAgICAgJFVS
TCwgJFZhbGlkTGljZW5zZSwKICAgICAgICApOwoKICAgICAgICByZXR1cm4ge307ICMgc2tpcCB0
aGUgcmVzdAogICAgfQoKICAgIG15ICRSZXBvcnRlciA9ICRTZWxmLT57Q29uZmlnfS0+e1JlcG9y
dGVyfTsKICAgIG15ICRBc3NpZ25lZSA9ICRTZWxmLT57Q29uZmlnfS0+e0Fzc2lnbmVlfTsKCiAg
ICAjIHJlYWQgJ1Byb2plY3QnIGZlbGQgZnJvbSAgIlN5c0NvbmZpZyIgaW4gT1RSUwogICAgbXkg
JFByb2plY3QgPSAkU2VsZi0+e0NvbmZpZ30tPntQcm9qZWN0fTsKCiAgICAjIHJlYWQgJ0lzc3Vl
VHlwZScgZmVsZCBmcm9tICAiU3lzQ29uZmlnIiBpbiBPVFJTCiAgICBteSAkSXNzdWVUeXBlID0g
JFNlbGYtPntDb25maWd9LT57SXNzdWVUeXBlfTsKICAgIG15ICRGaWVsZE5hbWUgPSAnSklSQUlz
c3VlSUQnOwoKICAgIG15ICRKSVJBSXNzdWVJRCA9ICRUaWNrZXR7J0R5bmFtaWNGaWVsZF8nIC4g
JEZpZWxkTmFtZX07CgogICAgaWYgKCAkU2VsZi0+e0RlYnVnfSApIHsKICAgICAgICAkTG9nT2Jq
ZWN0LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdpbmZvJywKICAgICAgICAgICAgTWVz
c2FnZSAgPT4gc3ByaW50ZiBQIC4gIjo6SXNzdWVVcGRhdGU6IEpJUkFJc3N1ZUlEKHByZSk6ICcl
cycgRHluYW1pY0ZpZWxkSUQ6ICVzIiwKICAgICAgICAgICAgICAgICRKSVJBSXNzdWVJRCwgJEZp
ZWxkTmFtZSwKICAgICAgICApOwogICAgfQoKICAgIG15ICRJc3N1ZSA9IHt9OwoKICAgIGlmICgg
JEpJUkFJc3N1ZUlEICkgewogICAgICAgIG15ICRDdXN0b21GaWVsZCA9ICdjdXN0b21maWVsZF8n
IC4gKCAkQ29uZmlnT2JqZWN0LT5HZXQoJ0pJUkE6Ok9UUlNUaWNrZXRJREZpZWxkJykgfHwgMTAw
MDAgKTsKCiAgICAgICAgbXkgJEpJUkFVcGRhdGVQYXJhbXMgPSB7CiAgICAgICAgICAgICRDdXN0
b21GaWVsZCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgIH07CgogICAgICAgICRKSVJBVXBk
YXRlUGFyYW1zID0gJFNlbGYtPk1hcEZpZWxkcyggJEpJUkFVcGRhdGVQYXJhbXMsICVUaWNrZXQs
ICVBcnRpY2xlICk7CgogICAgICAgIG15ICRVcGRhdGVFcnJvcjsKCiAgICAgICAgZXZhbHsKICAg
ICAgICAgICAgJElzc3VlID0gJFNlbGYtPntKSVJBQ2xpZW50fS0+UFVUKAogICAgICAgICAgICAg
ICAgIi9pc3N1ZS8iIC4gJEpJUkFJc3N1ZUlELAogICAgICAgICAgICAgICAgdW5kZWYsCiAgICAg
ICAgICAgICAgICB7IGZpZWxkcyA9PiAkSklSQVVwZGF0ZVBhcmFtcyB9LAogICAgICAgICAgICAp
CiAgICAgICAgfSBvciAkVXBkYXRlRXJyb3IgPSAkQDsKCiAgICAgICAgaWYgKCAkVXBkYXRlRXJy
b3IgKSB7CiAgICAgICAgICAgICRMb2dPYmplY3QtPkxvZygKICAgICAgICAgICAgICAgIFByaW9y
aXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiBzcHJpbnRmIFAgLiAi
OjpJc3N1ZVVwZGF0ZTogRXJyb3Igb24gdXBkYXRlOiAlc1xuIiwKICAgICAgICAgICAgICAgICAg
ICAkVXBkYXRlRXJyb3IsCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVy
biAkSXNzdWUgfHwgJ1N1Y2Nlc3MnOwp9Cgo9aXRlbSBJc3N1ZUxpbmtUb09UUlMoKQoKbGluayBh
biBleGlzdGluZyBpc3N1ZSB0byBhbiBPVFJTIHRpY2tldC4gVGhpcyBvcGVyYXRpb24gdXBkYXRl
cyB0aGUgY3VzdG9tIGZpZWxkIGhvbGRpbmcgdGhlIG90cnMgdGlja2V0IGlkIG9uIHRoZSBKSVJB
IHNpZGUKYW5kIHRoZSBkeW5hbWljIGZpZWxkIHdpdGggdGhlIGlzc3VlIGlkIG9uIHRoZSBPVFJT
IHNpZGUKCiAgICBteSAkSXNzdWUgPSAkVGlja2V0SklSQU9iamVjdC0+SXNzdWVMaW5rVG9PVFJT
KAogICAgICAgIFRpY2tldElEICAgICAgID0+ICRUaWNrZXRJRCwgICAgICAgICAgICAgICAgICAj
IHRoZSBUaWNrZXRJRCwgbWFuZGF0b3J5CiAgICAgICAgVXNlcklEICAgICAgICAgPT4gJFVzZXJJ
RCAgICAgICAgICAgICAgICAgICAgICMgdGhlIFVzZXJJRCwgbWFuZGF0b3J5CiAgICApOwoKcmV0
dXJuczoKCiAgICAkSXNzdWUgPSB7CiAgICAgICAgaWQgPT4gMTAwMDAsICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICMgaXNzdWUgaWQgaW4gSklSQSwgc3RhcnRzIGZyb20gMTAwMDAKICAg
ICAgICBrZXkgPT4gUFJPSi0xLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBpc3N1ZSBr
ZXkgYXMgdXNlZCBpbiB0aGUgd2ViaW50ZXJmYWNlLCA8UHJvaj4tPE51bWJlcj4sIHN0YXJ0cyBm
cm9tIDEKICAgICAgICBbLi4uXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IyBwbGVudHkgb2Ygb3RoZXIgZmllbGRzIGFzIGRlZmluZWQgaW4gdGhlIEFQSQogICAgfQo9Y3V0
CgpzdWIgSXNzdWVMaW5rVG9PVFJTIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87Cgog
ICAgbXkgJExvZ09iamVjdCAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6
TG9nJyk7CiAgICBteSAkTWFpbk9iamVjdCAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6
U3lzdGVtOjpNYWluJyk7CiAgICBteSAkQ29uZmlnT2JqZWN0ICA9ICRLZXJuZWw6Ok9NLT5HZXQo
J0tlcm5lbDo6Q29uZmlnJyk7CiAgICBteSAkVGlja2V0T2JqZWN0ICA9ICRLZXJuZWw6Ok9NLT5H
ZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaWNrZXQnKTsKICAgIG15ICRCYWNrZW5kT2JqZWN0ID0gJEtl
cm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6QmFja2VuZCcpOwoK
ICAgICMgY2hlY2sgZm9yIG5lZWRlZCBkYXRhCiAgICBmb3IgbXkgJE5lZWRlZCAoIHF3L1RpY2tl
dElEIFVzZXJJRCBJc3N1ZUlEIFByb2plY3QvICkgewogICAgICAgIGlmICggISRQYXJhbXskTmVl
ZGVkfSApIHsKICAgICAgICAgICAgJExvZ09iamVjdC0+TG9nKAogICAgICAgICAgICAgICAgUHJp
b3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICROZWVk
ZWQhIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9
CgogICAgbXkgJFVSTCA9ICRTZWxmLT57Q29uZmlnfS0+e1VSTH07CgogICAgbXkgJFZhbGlkTGlj
ZW5zZSA9ICRTZWxmLT5DaGVja1ZhbGlkTGljZW5zZSgpOwogICAgaWYgKCAkVmFsaWRMaWNlbnNl
ICE9IDEgKSB7CiAgICAgICAgJExvZ09iamVjdC0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9
PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiBzcHJpbnRmIFAgLiAiOjpJc3N1ZUxp
bmtUb09UUlM6IGludmFsaWQgbGljZW5zZSBhdCAlcywgc3RhdHVzICVzIiwKICAgICAgICAgICAg
ICAgICRVUkwsICRWYWxpZExpY2Vuc2UsCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuIHt9OyAj
IHNraXAgdGhlIHJlc3QKICAgIH0KCiAgICAjIHJlYWQgJ1Byb2plY3QnIGZlbGQgZnJvbSAgIlN5
c0NvbmZpZyIgaW4gT1RSUwogICAgbXkgJFByb2plY3QgICAgID0gJFBhcmFte1Byb2plY3R9Owog
ICAgbXkgJEpJUkFJc3N1ZUlEID0gJFBhcmFte0lzc3VlSUR9OwoKICAgIG15ICRGaWVsZE5hbWUg
PSAnSklSQUlzc3VlSUQnOwoKICAgIGlmICggJFNlbGYtPntEZWJ1Z30gKSB7CiAgICAgICAgJExv
Z09iamVjdC0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnaW5mbycsCiAgICAgICAgICAg
IE1lc3NhZ2UgID0+IHNwcmludGYgUCAuICI6Oklzc3VlTGlua1RvT1RSUzogVGlja2V0SUQ6ICcl
cycgRHluYW1pY0ZpZWxkSUQ6ICVzIiwKICAgICAgICAgICAgICAgICRQYXJhbXtUaWNrZXRJRH0s
ICRGaWVsZE5hbWUsCiAgICAgICAgKTsKICAgICB9CgogICAgbXkgJEN1c3RvbUZpZWxkID0gJ2N1
c3RvbWZpZWxkXycgLiAoICRDb25maWdPYmplY3QtPkdldCgnSklSQTo6T1RSU1RpY2tldElERmll
bGQnKSB8fCAxMDAwMCApOwoKICAgIG15ICRKSVJBVXBkYXRlUGFyYW1zID0gewogICAgICAgICRD
dXN0b21GaWVsZCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgfTsKCiAgICAkSklSQVVwZGF0ZVBh
cmFtcyA9ICRTZWxmLT5NYXBGaWVsZHMoICRKSVJBVXBkYXRlUGFyYW1zICk7CgogICAgaWYgKCAk
U2VsZi0+e0RlYnVnfSApIHsKICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgIFBy
aW9yaXR5ID0+ICdpbmZvJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gc3ByaW50ZiBQIC4gIjo6
SXNzdWVMaW5rVG9PVFJTOiBVcGRhdGVQYXJhbXMgLT4gIgogICAgICAgICAgICAgICAgLiAkTWFp
bk9iamVjdC0+RHVtcCggJEpJUkFVcGRhdGVQYXJhbXMgKSwKICAgICAgICApOwogICAgfQoKICAg
IG15ICRVcGRhdGVFcnJvcjsKCiAgICBteSAkSXNzdWUgPSB7fTsKICAgIGV2YWx7CiAgICAgICAg
JElzc3VlID0gJFNlbGYtPntKSVJBQ2xpZW50fS0+UFVUKAogICAgICAgICAgICAiL2lzc3VlLyIg
LiAkSklSQUlzc3VlSUQsCiAgICAgICAgICAgIHVuZGVmLAogICAgICAgICAgICB7IGZpZWxkcyA9
PiAkSklSQVVwZGF0ZVBhcmFtcyB9LAogICAgICAgICk7CiAgICB9IG9yICRVcGRhdGVFcnJvciA9
ICRAOwoKICAgIGlmICggJFNlbGYtPntEZWJ1Z30gKSB7CiAgICAgICAgJExvZ09iamVjdC0+TG9n
KAogICAgICAgICAgICBQcmlvcml0eSA9PiAnaW5mbycsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+
IHNwcmludGYgUCAuICI6Oklzc3VlTGlua1RvT1RSUzogSXNzdWUgKGZyb20gVXBkYXRlKSAtPiAi
CiAgICAgICAgICAgICAgICAuICRNYWluT2JqZWN0LT5EdW1wKCAkSXNzdWUgKSwKICAgICAgICAp
OwogICAgfQoKICAgIGlmICggJFVwZGF0ZUVycm9yICkgewogICAgICAgICRMb2dPYmplY3QtPkxv
ZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAg
PT4gc3ByaW50ZiBQIC4gIjo6SXNzdWVMaW5rVG9PVFJTOiBFcnJvciBvbiB1cGRhdGU6ICVzXG4i
LAogICAgICAgICAgICAgICAgJFVwZGF0ZUVycm9yLAogICAgICAgICk7CgogICAgICAgIHJldHVy
biB7IGVycm9yID0+ICRVcGRhdGVFcnJvciB9OwogICAgfQoKICAgIG15ICRJc3N1ZUluZm8gPSAk
U2VsZi0+SXNzdWVHZXQoIElzc3VlID0+ICRKSVJBSXNzdWVJRCApOwoKICAgIG15ICRTdWNjZXNz
ID0gJEJhY2tlbmRPYmplY3QtPlZhbHVlU2V0KAogICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9
PiAkU2VsZi0+e0pJUkFEeW5hbWljRmllbGR9LAogICAgICAgIE9iamVjdElEICAgICAgICAgICA9
PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgIFZhbHVlICAgICAgICAgICAgICA9PiAkSXNzdWVJ
bmZvLT57a2V5fSwKICAgICAgICBVc2VySUQgICAgICAgICAgICAgPT4gJFBhcmFte1VzZXJJRH0s
CiAgICApOwoKICAgIHJldHVybiAkSXNzdWUgfHwge307Cn0KCj1pdGVtIElzc3VlQ29tbWVudCgp
CgpjcmVhdGVzIGFuIGlzc3VlIGluIHRoZSBjb25maWd1cmVkIEpJUkEgc3lzdGVtIHVzaW5nIFNP
QVAKCiAgICBteSAkSXNzdWUgPSAkVGlja2V0SklSQU9iamVjdC0+SXNzdWVDb21tZW50KAogICAg
ICAgIElzc3VlSUQgPT4gJFRpY2tldElELCAjIHRoZSBJc3N1ZUlELCBtYW5kYXRvcnkKICAgICAg
ICBDb21tZW50ID0+ICRBcnRpY2xlSUQgIyB0aGUgY29tbWVudCwgbWFuZGF0b3J5CiAgICApOwoK
cmV0dXJuczoKCiAgICAkSXNzdWUgPSB7CiAgICAgICAgaWQgPT4gMTAwMDAsICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICMgaXNzdWUgaWQgaW4gSklSQSwgc3RhcnRzIGZyb20gMTAwMDAK
ICAgICAgICBrZXkgPT4gUFJPSi0xLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBpc3N1
ZSBrZXkgYXMgdXNlZCBpbiB0aGUgd2ViaW50ZXJmYWNlLCA8UHJvaj4tPE51bWJlcj4sIHN0YXJ0
cyBmcm9tIDEKICAgICAgICBbLi4uXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIyBwbGVudHkgb2Ygb3RoZXIgZmllbGRzIGFzIGRlZmluZWQgaW4gdGhlIEFQSQogICAgfQoK
PWN1dAoKc3ViIElzc3VlQ29tbWVudCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOyAj
IyBGSVhNRSBpbXBsZW1lbnQKCiAgICBteSAkQ29uZmlnT2JqZWN0ICAgICAgID0gJEtlcm5lbDo6
T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKICAgIG15ICRMb2dPYmplY3QgICAgICAgICAgPSAk
S2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyk7CiAgICBteSAkRHluYW1pY0Zp
ZWxkT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVs
ZCcpOwogICAgbXkgJEJhY2tlbmRPYmplY3QgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5l
bDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQnKTsKCiAgICAjIGNoZWNrIGZvciBuZWVk
ZWQgZGF0YQogICAgZm9yIG15ICROZWVkZWQgKCBxdy9Jc3N1ZUlEIENvbW1lbnQgQXJ0aWNsZUlE
IFVzZXJJRC8gKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyROZWVkZWR9ICkgewogICAgICAgICAg
ICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAog
ICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJE5lZWRlZCEiLAogICAgICAgICAgICAp
OwoKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICBteSAkQ29tbWVudFRl
eHQgICA9ICRQYXJhbXtDb21tZW50fTsKICAgIG15ICRBcnRpY2xlRm9ybWF0ID0gJENvbmZpZ09i
amVjdC0+R2V0KCdKSVJBOjpBcnRpY2xlRm9ybWF0Jyk7CiAgICBpZiAoICRBcnRpY2xlRm9ybWF0
ICYmICEkUGFyYW17VXNlQ29tbWVudH0gKSB7CiAgICAgICAgJENvbW1lbnRUZXh0ID0gJFNlbGYt
Pl9Gb3JtYXRBcnRpY2xlKAogICAgICAgICAgICBBcnRpY2xlICAgICAgID0+ICRQYXJhbXtBcnRp
Y2xlfSwKICAgICAgICAgICAgQXJ0aWNsZUZvcm1hdCA9PiAkQXJ0aWNsZUZvcm1hdCwKICAgICAg
ICApOwogICAgfQoKICAgIG15ICRVUkwgPSAkU2VsZi0+e0NvbmZpZ30tPntVUkx9OwoKICAgIG15
ICRWYWxpZExpY2Vuc2UgPSAkU2VsZi0+Q2hlY2tWYWxpZExpY2Vuc2UoKTsKICAgIGlmICggJFZh
bGlkTGljZW5zZSAhPSAxICkgewogICAgICAgICRMb2dPYmplY3QtPkxvZygKICAgICAgICAgICAg
UHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gc3ByaW50ZiBQIC4g
Ijo6SXNzdWVDb21tZW50OiBpbnZhbGlkIGxpY2Vuc2UgYXQgJXMsIHN0YXR1cyAlcyIsCiAgICAg
ICAgICAgICAgICAkVVJMLCAkVmFsaWRMaWNlbnNlLAogICAgICAgICk7CgogICAgICAgIHJldHVy
biB7fTsgIyBza2lwIHRoZSByZXN0CiAgICB9CgogICAgbXkgJElzc3VlID0ge307CgogICAgaWYg
KCAkUGFyYW17SXNzdWVJRH0gKSB7CiAgICAgICAgbXkgJEVycm9yQ29tbWVudDsKICAgICAgICBl
dmFsIHsKICAgICAgICAgICAgJElzc3VlID0gJFNlbGYtPntKSVJBQ2xpZW50fS0+UE9TVCgKICAg
ICAgICAgICAgICAgICIvaXNzdWUvIiAuICRQYXJhbXtJc3N1ZUlEfSAuICIvY29tbWVudCIsCiAg
ICAgICAgICAgICAgICB1bmRlZiwKICAgICAgICAgICAgICAgIHsgYm9keSA9PiAkQ29tbWVudFRl
eHQgfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIDE7CiAgICAgICAgfSBvciAkRXJyb3JD
b21tZW50ID0gJEA7CgogICAgICAgIGlmICggJEVycm9yQ29tbWVudCApIHsKICAgICAgICAgICAg
JExvZ09iamVjdC0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAg
ICAgICAgICAgICAgIE1lc3NhZ2UgID0+IHNwcmludGYgUCAuICAiOjpJc3N1ZUNvbW1lbnQ6IGNh
bm5vdCBjcmVhdGUgY29tbWVudCBmb3IgaXNzdWUgJXM6ICVzIiwKICAgICAgICAgICAgICAgICAg
ICAkUGFyYW17SXNzdWVJRH0sICRFcnJvckNvbW1lbnQsCiAgICAgICAgICAgICk7CgogICAgICAg
ICAgICByZXR1cm4gK3sgZXJyb3IgPT4gJEVycm9yQ29tbWVudCB9OwogICAgICAgIH0KCiAgICB9
CgogICAgbXkgJFNlbnRGaWVsZCA9ICREeW5hbWljRmllbGRPYmplY3QtPkR5bmFtaWNGaWVsZEdl
dCggTmFtZSA9PiAnQXJ0aWNsZVNlbnRUb0pJUkEnICk7CiAgICBteSAkU3VjY2VzcyAgID0gJEJh
Y2tlbmRPYmplY3QtPlZhbHVlU2V0KAogICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkU2Vu
dEZpZWxkLAogICAgICAgIE9iamVjdElEICAgICAgICAgICA9PiAkUGFyYW17QXJ0aWNsZUlEfSwK
ICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgPT4gMSwKICAgICAgICBVc2VySUQgICAgICAgICAg
ICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgIHJldHVybiAkSXNzdWU7Cn0KCj1pdGVt
IEF0dGFjaG1lbnRzU2VuZCgpCgo9Y3V0CgpzdWIgQXR0YWNobWVudHNTZW5kIHsKICAgIG15ICgk
U2VsZiwgJVBhcmFtKSA9IEBfOwoKICAgIG15ICRUaWNrZXRPYmplY3QgID0gJEtlcm5lbDo6T00t
PkdldCgnS2VybmVsOjpTeXN0ZW06OlRpY2tldCcpOwogICAgbXkgJEFydGljbGVPYmplY3QgPSAk
S2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGlja2V0OjpBcnRpY2xlJyk7CiAgICBt
eSAkTG9nT2JqZWN0ICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cn
KTsKICAgIG15ICRNYWluT2JqZWN0ICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0
ZW06Ok1haW4nKTsKICAgIG15ICRFbmNvZGVPYmplY3QgID0gJEtlcm5lbDo6T00tPkdldCgnS2Vy
bmVsOjpTeXN0ZW06OkVuY29kZScpOwoKICAgIGZvciBteSAkTmVlZGVkICggcXcoQXJ0aWNsZUlE
IElzc3VlIFVzZXJJRCkgKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyROZWVkZWR9ICkgewogICAg
ICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnbm90
aWNlJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICROZWVkZWQhIiwKICAgICAg
ICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgbXkgJFRp
Y2tldElEICAgICAgPSAkQXJ0aWNsZU9iamVjdC0+VGlja2V0SURMb29rdXAoIEFydGljbGVJRCA9
PiAkUGFyYW17QXJ0aWNsZUlEfSApOwogICAgbXkgJEJhY2tlbmRPYmplY3QgPSAkQXJ0aWNsZU9i
amVjdC0+QmFja2VuZEZvckFydGljbGUoCiAgICAgICAgVGlja2V0SUQgID0+ICRUaWNrZXRJRCwK
ICAgICAgICBBcnRpY2xlSUQgPT4gJFBhcmFte0FydGljbGVJRH0sCiAgICApOwoKICAgIHJldHVy
biBpZiAhJEJhY2tlbmRPYmplY3Q7CiAgICByZXR1cm4gaWYgISRCYWNrZW5kT2JqZWN0LT5jYW4o
J0FydGljbGVBdHRhY2htZW50SW5kZXgnKTsKCiAgICAjIGdldCB0aGUgbGlzdCBvZiB0aGUgYXR0
YWNobWVudHMKICAgIG15ICVJbmRleCA9ICRCYWNrZW5kT2JqZWN0LT5BcnRpY2xlQXR0YWNobWVu
dEluZGV4KAogICAgICAgIEFydGljbGVJRCA9PiAkUGFyYW17QXJ0aWNsZUlEfSwKICAgICAgICBV
c2VySUQgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgICMgZ2V0IHVzZXJhZ2VudCB1
c2VkIGJ5IHRoZSBKaXJhIG9iamVjdCB0byBkbyB0aGUgZmlsZXVwbG9hZHMKICAgIG15ICRSZXN0
ID0gJFNlbGYtPntKSVJBQ2xpZW50fS0+e3Jlc3R9OwogICAgbXkgJFVBICAgPSAkUmVzdC0+Z2V0
VXNlcmFnZW50KCk7CgogICAgIyBnZXQgSUQgb2YgZWFjaCBhdHRhY2htZW50IGZpbGUsIHRoZW4g
dGhlIGNvcnJlc3BvbmRpbmcgYXR0YWNobWVudCBmaWxlCiAgICB3aGlsZSAoIG15ICggJEZpbGVJ
RCwgJEF0dGFjaEggKSA9IGVhY2ggJUluZGV4ICkgewoKICAgICAgICAjIHJldHJpZXZlIHRoZSBu
YW1lIGFuZCBjb250ZW50IG9mIGVhY2ggYXR0YWNobWVudCBmaWxlLAogICAgICAgICMgc3RvcmUg
dGhlbSBpbnRvIEBmaWxlbmFtZXMgYW5kIEBhdHRhY2htZW50cyByZXNwZWN0aXZlbHkuCiAgICAg
ICAgbXkgQEZpbGVuYW1lczsKICAgICAgICBteSBAQXR0YWNobWVudHM7CgogICAgICAgIG15ICVB
dHRhY2htZW50ID0gJEJhY2tlbmRPYmplY3QtPkFydGljbGVBdHRhY2htZW50KAogICAgICAgICAg
ICBBcnRpY2xlSUQgPT4gJFBhcmFte0FydGljbGVJRH0sCiAgICAgICAgICAgIEZpbGVJRCAgICA9
PiAkRmlsZUlELAogICAgICAgICAgICBVc2VySUQgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAg
ICAgKTsKCiAgICAgICAgbmV4dCBpZiAkQXR0YWNobWVudHtGaWxlbmFtZX0gZXEgJ2ZpbGUtMic7
CgogICAgICAgIGlmICggJFBhcmFte0ZpbGVuYW1lfSAmJiAkQXR0YWNobWVudHtGaWxlbmFtZX0g
bmUgJFBhcmFte0ZpbGVuYW1lfSApIHsKICAgICAgICAgICAgbmV4dDsKICAgICAgICB9CgogICAg
ICAgIGlmICggJFNlbGYtPntEZWJ1Z30gKSB7CiAgICAgICAgICAgICRMb2dPYmplY3QtPkxvZygK
ICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdpbmZvJywKICAgICAgICAgICAgICAgIE1lc3Nh
Z2UgID0+IHNwcmludGYgUCAuICI6OkF0dGFjaG1lbnRzU2VuZDogSGFuZGxpbmcgYXR0YWNobWVu
dDogJXMiLCAkQXR0YWNobWVudHtGaWxlbmFtZX0KICAgICAgICAgICAgKTsKICAgICAgICB9Cgog
ICAgICAgIG15ICRJc3N1ZUtleSA9ICRQYXJhbXtJc3N1ZX07CiAgICAgICAgbXkgJEZpbGVOYW1l
ID0gJEVuY29kZU9iamVjdC0+RW5jb2RlT3V0cHV0KCBcJEF0dGFjaG1lbnR7RmlsZW5hbWV9ICk7
CgogICAgICAgIG15ICRSZXNwb25zZSA9ICRVQS0+cG9zdCgKICAgICAgICAgICAgJFNlbGYtPntI
b3N0fSAuICIvaXNzdWUvJElzc3VlS2V5L2F0dGFjaG1lbnRzIiwKICAgICAgICAgICAgIyRSZXN0
LT5nZXRIb3N0KCkgLiAiL2lzc3VlLyRJc3N1ZUtleS9hdHRhY2htZW50cyIsCiAgICAgICAgICAg
ICV7JFJlc3QtPntfaGVhZGVyc319LAogICAgICAgICAgICAnWC1BdGxhc3NpYW4tVG9rZW4nID0+
ICduby1jaGVjaycsCiAgICAgICAgICAgICdDb250ZW50LVR5cGUnICAgICAgPT4gJ2Zvcm0tZGF0
YScsCiAgICAgICAgICAgIENvbnRlbnQgICAgICAgICAgICAgPT4gWwogICAgICAgICAgICAgICAg
ZmlsZSA9PiBbCiAgICAgICAgICAgICAgICAgICAgdW5kZWYsICAgICAgICAgICAgICAgICAgICMg
YXMgd2UgaGF2ZSB0aGUgY29udGVudCBhbHJlYWQsIHdlIGRvIG5vdCBwYXNzIGEgZmlsZW5hbWUK
ICAgICAgICAgICAgICAgICAgICAkQXR0YWNobWVudHtGaWxlbmFtZX0sICAgIyBmaWxlbmFtZSBm
b3IgdGhlIHNlcnZlcgogICAgICAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZScgPT4gJEF0dGFj
aG1lbnR7Q29udGVudFR5cGV9LAogICAgICAgICAgICAgICAgICAgIENvbnRlbnQgICAgICAgPT4g
JEF0dGFjaG1lbnR7Q29udGVudH0sCiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICBdLAog
ICAgICAgICk7CgogICAgICAgIGlmICggISRSZXNwb25zZS0+aXNfc3VjY2VzcyApIHsKICAgICAg
ICAgICAgJExvZ09iamVjdC0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9y
JywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+IHNwcmludGYgUCAuICI6OkF0dGFjaG1lbnRz
U2VuZDogQ2Fubm90IGF0dGFjaCBmaWxlICRBdHRhY2htZW50e0ZpbGVuYW1lfSB0byBpc3N1ZSAk
SXNzdWVLZXkgLT4gIgogICAgICAgICAgICAgICAgICAgIC4gJFJlc3BvbnNlLT5zdGF0dXNfbGlu
ZSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICRMb2dPYmplY3QtPkxvZygKICAgICAgICAg
ICAgICAgIFByaW9yaXR5ID0+ICdkZWJ1ZycsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiBz
cHJpbnRmIFAgLiAiOjpBdHRhY2htZW50c1NlbmQ6IEhlYWRlciAtPiAiIC4gJE1haW5PYmplY3Qt
PkR1bXAgKCAkUmVzdC0+e19oZWFkZXJzfSApLAogICAgICAgICAgICApOwogICAgICAgIH0KICAg
ICAgICBlbHNpZiAoICRTZWxmLT57RGVidWd9ICkgewogICAgICAgICAgICAkTG9nT2JqZWN0LT5M
b2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZGVidWcnLAogICAgICAgICAgICAgICAg
TWVzc2FnZSAgPT4gc3ByaW50ZiBQIC4gIjo6QXR0YWNobWVudHNTZW5kOiBhdHRhY2hlZCBmaWxl
ICRBdHRhY2htZW50e0ZpbGVuYW1lfSAtPiAiCiAgICAgICAgICAgICAgICAgICAgLiAkUmVzcG9u
c2UtPnN0YXR1c19saW5lLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KfQoKCj1pdGVt
IEZpZWxkc0dldCgpCgpSZXRyaWV2ZSBmaWVsZCBkZWZpbml0aW9ucyBmcm9tIEpJUkEuIFRoZSBy
ZXN1bHQgaXMgY2FjaGVkIGZvciBwZXJmb3JtYW5jZSByZWFzb25zLgoKICAgIG15ICRGaWVsZHMg
PSAkT2JqZWN0LT5GaWVsZHNHZXQoKTsKCj1jdXQKCnN1YiBGaWVsZHNHZXQgewogICAgbXkgKCAk
U2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkTG9nT2JqZWN0ICAgPSAkS2VybmVsOjpPTS0+
R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyk7CiAgICBteSAkQ2FjaGVPYmplY3QgPSAkS2VybmVs
OjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKTsKCiAgICBteSAkQ2FjaGVLZXkgPSAn
RmllbGRzR2V0JzsKCiAgICAkUGFyYW17UmV0dXJufSB8fD0gJyc7CgogICAgaWYgKCAkUGFyYW17
UmV0dXJufSAmJiBsYyAkUGFyYW17UmV0dXJufSBlcSAndHlwZXMnICkgewogICAgICAgICRDYWNo
ZUtleSA9ICdGaWVsZFR5cGVzJzsKICAgIH0KICAgIGVsc2lmICggJFBhcmFte1JldHVybn0gJiYg
bGMgJFBhcmFte1JldHVybn0gZXEgJ3N0YW5kYXJkJyApIHsKICAgICAgICAkQ2FjaGVLZXkgPSAn
U3RhbmRhcmRGaWVsZHMnOwogICAgfQoKICAgIG15ICRDYWNoZSA9ICRDYWNoZU9iamVjdC0+R2V0
KAogICAgICAgIFR5cGUgPT4gJFNlbGYtPntDYWNoZVR5cGV9LAogICAgICAgIEtleSAgPT4gJENh
Y2hlS2V5LAogICAgKTsKCiAgICByZXR1cm4gJENhY2hlIGlmICRDYWNoZTsKCiAgICBteSAkRmll
bGRzOwogICAgbXkgJEZpZWxkVHlwZXM7CiAgICBteSAkU3RhbmRhcmRGaWVsZHM7CgogICAgbXkg
JEVycm9yRmllbGRzOwogICAgZXZhbCB7CiAgICAgICAgbXkgJEZpZWxkc0RhdGEgPSAkU2VsZi0+
e0pJUkFDbGllbnR9LT5HRVQoCiAgICAgICAgICAgICIvZmllbGQiCiAgICAgICAgKTsKCiAgICAg
ICAgbXkgJUN1c3RvbUZpZWxkcyA9IG1hcHsKICAgICAgICAgICAgJF8tPntuYW1lfSA9PiAkXy0+
e3NjaGVtYX0tPntjdXN0b21JZH0KICAgICAgICB9IGdyZXAgewogICAgICAgICAgICAkXy0+e3Nj
aGVtYX0tPntjdXN0b21JZH0KICAgICAgICB9IEB7ICRGaWVsZHNEYXRhIHx8IFtdIH07CgogICAg
ICAgICRGaWVsZHMgPSBcJUN1c3RvbUZpZWxkczsKCiAgICAgICAgZm9yIG15ICRGaWVsZCAoIEB7
ICRGaWVsZHNEYXRhIHx8IFtdIH0gKSB7CiAgICAgICAgICAgICRGaWVsZFR5cGVzLT57ICRGaWVs
ZC0+e2lkfSB9ID0gJEZpZWxkLT57c2NoZW1hfTsKCiAgICAgICAgICAgIGlmICggISRGaWVsZC0+
e2N1c3RvbX0gKSB7CiAgICAgICAgICAgICAgICBwdXNoIEB7JFN0YW5kYXJkRmllbGRzfSwgJEZp
ZWxkLT57aWR9OwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAxOwogICAgfSBvciAk
RXJyb3JGaWVsZHMgPSAkQDsKCiAgICBpZiAoICEkRXJyb3JGaWVsZHMgKSB7CiAgICAgICAgJENh
Y2hlT2JqZWN0LT5TZXQoCiAgICAgICAgICAgIFR5cGUgID0+ICRTZWxmLT57Q2FjaGVUeXBlfSwK
ICAgICAgICAgICAgS2V5ICAgPT4gJ0ZpZWxkc0dldCcsCiAgICAgICAgICAgIFZhbHVlID0+ICRG
aWVsZHMsCiAgICAgICAgICAgIFRUTCAgID0+ICRTZWxmLT57Q2FjaGVUVEx9IHx8IDEsCiAgICAg
ICAgKTsKCiAgICAgICAgJENhY2hlT2JqZWN0LT5TZXQoCiAgICAgICAgICAgIFR5cGUgID0+ICRT
ZWxmLT57Q2FjaGVUeXBlfSwKICAgICAgICAgICAgS2V5ICAgPT4gJ0ZpZWxkVHlwZXMnLAogICAg
ICAgICAgICBWYWx1ZSA9PiAkRmllbGRUeXBlcywKICAgICAgICAgICAgVFRMICAgPT4gJFNlbGYt
PntDYWNoZVRUTH0gfHwgMSwKICAgICAgICApOwoKICAgICAgICAkQ2FjaGVPYmplY3QtPlNldCgK
ICAgICAgICAgICAgVHlwZSAgPT4gJFNlbGYtPntDYWNoZVR5cGV9LAogICAgICAgICAgICBLZXkg
ICA9PiAnU3RhbmRhcmRGaWVsZHMnLAogICAgICAgICAgICBWYWx1ZSA9PiAkU3RhbmRhcmRGaWVs
ZHMsCiAgICAgICAgICAgIFRUTCAgID0+ICRTZWxmLT57Q2FjaGVUVEx9IHx8IDEsCiAgICAgICAg
KTsKICAgIH0KICAgIGVsc2UgewogICAgICAgICRMb2dPYmplY3QtPkxvZygKICAgICAgICAgICAg
UHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gc3ByaW50ZiBQIC4g
ICI6OkZpZWxkc0dldDogY2Fubm90IHJldHJpZXZlIGZpZWxkcyBkZWZpbml0aW9uczogJXMiLAog
ICAgICAgICAgICAgICAgJEVycm9yRmllbGRzLAogICAgICAgICk7CgogICAgICAgIHJldHVybjsK
ICAgIH0KCiAgICBpZiAoIGxjICRQYXJhbXtSZXR1cm59IGVxICd0eXBlcycgKSB7CiAgICAgICAg
cmV0dXJuICRGaWVsZFR5cGVzOwogICAgfQoKICAgIHJldHVybiAkRmllbGRzOwp9Cgo9aXRlbSBN
YXBGaWVsZHMKCk1hcHMgdGhlIE9UUlMgdG8gdGhlIEpJUkEgY3VzdG9tIGZpZWxkcyBhcyBkZWZp
bmVkIGluIHRoZSBjb25maWd1cmF0aW9uLgpSZXR1cm5zIGEgaGFzaCBtYXAuCgogIG15ICRGaWVs
ZHMgPSAkT2JqZWN0LT5NYXBGaWVsZHMoJEZpZWxkcywgJVRpY2tldCwgJUFydGljbGUpCgpyZXR1
cm46CgogICRGaWVsZHMgPSB7CiAgICBzdGFuZGFyZEZpZWxkMSA9PiB2YWx1ZTEsCiAgICBzdGFu
ZGFyZEZpZWxkMiA9PiB2YWx1ZTIsCiAgICBbLi4uXQogICAgY3VzdG9tZmllbGRzID0+IHsKICAg
ICAgICBjZjEgPT4gdmFsdWUzLAogICAgICAgIGNmMiA9PiB2YWx1ZTQsCiAgICAgICAgWy4uLl0K
ICAgIH0KICB9Cgo9Y3V0CgpzdWIgTWFwRmllbGRzIHsKICAgIG15ICggJFNlbGYsICRGaWVsZHMs
ICVBcnRpY2xlICkgPSBAXzsKCiAgICBteSAkTG9nT2JqZWN0ICAgICAgICAgID0gJEtlcm5lbDo6
T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpOwogICAgbXkgJENhY2hlT2JqZWN0ICAgICAg
ICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpOwogICAgbXkgJE1h
aW5PYmplY3QgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpNYWlu
Jyk7CiAgICBteSAkRHluYW1pY0ZpZWxkT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVs
OjpTeXN0ZW06OkR5bmFtaWNGaWVsZCcpOwogICAgbXkgJERGVmFsdWVPYmplY3QgICAgICA9ICRL
ZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGRWYWx1ZScpOwoKICAg
ICMgcmV0cmlldmVzIGR5bmFtaWMtY3VzdG9tIGZpZWxkIG1hcHBpbmcKICAgIG15ICRDdXN0b21G
aWVsZHMgICA9IHt9OwogICAgbXkgJE1hcHBpbmcgICAgICAgID0gJFNlbGYtPntDb25maWd9LT57
J09UUlMtSklSQS1GaWVsZE1hcHBpbmcnfTsKICAgIG15ICREYXRlRm9ybWF0ICAgICA9ICRTZWxm
LT57Q29uZmlnfS0+eydKSVJBLURhdGVGb3JtYXQnfTsKICAgIG15ICREYXRlVGltZUZvcm1hdCA9
ICRTZWxmLT57Q29uZmlnfS0+eydKSVJBLURhdGVUaW1lRm9ybWF0J307CgogICAgbXkgJEpJUkFG
aWVsZHMgICAgID0gJFNlbGYtPkZpZWxkc0dldCgpOwoKICAgIGlmICggJFNlbGYtPntEZWJ1Z30g
KSB7CiAgICAgICAgJExvZ09iamVjdC0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZGVi
dWcnLAogICAgICAgICAgICBNZXNzYWdlICA9PiBzcHJpbnRmIFAgLiAiOjpNYXBGaWVsZHM6IEFy
dGljbGU6ICVzIiwKICAgICAgICAgICAgICAgICRNYWluT2JqZWN0LT5EdW1wKCBcJUFydGljbGUg
KSwKICAgICAgICApOwoKICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgIFByaW9y
aXR5ID0+ICdkZWJ1ZycsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+IHNwcmludGYgUCAuICI6Ok1h
cEZpZWxkczogbWFwcGluZzogJXMiLAogICAgICAgICAgICAgICAgJE1haW5PYmplY3QtPkR1bXAo
ICRNYXBwaW5nICksCiAgICAgICAgKTsKICAgIH0KICAgIAoKICAgIGlmICggZGVmaW5lZCAkTWFw
cGluZyApIHsKCiAgICAgICAgIyBhbGwgY2hhbmdlcyByZXF1aXJlZCBPTkxZIGZvciBQZXJsIDUu
MTAgLi4uCiAgICAgICAgS0VZOgogICAgICAgIGZvciBteSAkS2V5ICgga2V5cyAleyRNYXBwaW5n
fSAgKSB7CiAgICAgICAgICAgIG15ICRWYWx1ZSA9ICRNYXBwaW5nLT57JEtleX07CgogICAgICAg
ICAgICBuZXh0IEtFWSBpZiAhbGVuZ3RoICRLZXkgfHwgIWxlbmd0aCAkVmFsdWU7CgogICAgICAg
ICAgICBteSAoJEtQcmVmaXgsJFZQcmVmaXgsJERCVmFsKSA9ICgiIiwiIix1bmRlZik7CiAgICAg
ICAgICAgIG15ICgkSXNBRGF0ZSwgJElzQURhdGVUaW1lKSA9ICgwLDApOwoKICAgICAgICAgICAg
KCRLUHJlZml4LCAkS2V5KSAgID0gc3BsaXQgLzovLCAkS2V5LCAyOwogICAgICAgICAgICAoJFZQ
cmVmaXgsICRWYWx1ZSkgPSBzcGxpdCAvOi8sICRWYWx1ZSwgMjsKCiAgICAgICAgICAgIGlmICgg
JFNlbGYtPntEZWJ1Z30gKSB7CiAgICAgICAgICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAg
ICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2RlYnVnJywKICAgICAgICAgICAgICAgICAgICBN
ZXNzYWdlICA9PiBQIC4gIjo6TWFwRmllbGRzOiBjaGVja2luZzoga3ByZWZpeCxrZXksdnByZWZp
eCx2YWwgOiAiCiAgICAgICAgICAgICAgICAgICAgICAgIC4gIiRLUHJlZml4LCRLZXksJFZQcmVm
aXgsJFZhbHVlXG4iLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQoKICAgICAgICAg
ICAgaWYgKCAkS1ByZWZpeCBlcSAnc3RkJyApIHsKICAgICAgICAgICAgICAgICREQlZhbCA9ICRB
cnRpY2xleyRLZXl9OwoKICAgICAgICAgICAgICAgIGlmICggJFNlbGYtPntEZWJ1Z30gKSB7CiAg
ICAgICAgICAgICAgICAgICAgJExvZ09iamVjdC0+TG9nKAogICAgICAgICAgICAgICAgICAgICAg
ICBQcmlvcml0eSA9PiAnZGVidWcnLAogICAgICAgICAgICAgICAgICAgICAgICBNZXNzYWdlICA9
PiBQIC4gIjo6TWFwRmllbGRzOiBzdGQgZmllbGQgd2l0aCAkREJWYWxcbiIsCiAgICAgICAgICAg
ICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiAoICRLZXkg
ZXEgJ0NyZWF0ZWQnIHx8ICRLZXkgZXEgJ0NoYW5nZWQnICkgewogICAgICAgICAgICAgICAgICAg
ICRJc0FEYXRlVGltZSA9IDE7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNp
ZiAoICRLZXkgPX4gbXtEYXRlXHp9eG1zICkgewogICAgICAgICAgICAgICAgICAgICRJc0FEYXRl
ID0gMTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNpZiAo
ICRLUHJlZml4IGVxICdkeW4nICkgewogICAgICAgICAgICAgICAgbXkgJER5bkZpZWxkICA9ICRE
eW5hbWljRmllbGRPYmplY3QtPkR5bmFtaWNGaWVsZEdldCggTmFtZSA9PiAkS2V5ICk7CiAgICAg
ICAgICAgICAgICBteSAkRmllbGRUeXBlID0gJER5bkZpZWxkLT57RmllbGRUeXBlfTsKCiAgICAg
ICAgICAgICAgICAkREJWYWwgPSAkQXJ0aWNsZXsiRHluYW1pY0ZpZWxkXyRLZXkifTsKCiAgICAg
ICAgICAgICAgICBpZiAoICEkREJWYWwgJiYgJER5bkZpZWxkICkgewogICAgICAgICAgICAgICAg
ICAgICREQlZhbCA9ICRERlZhbHVlT2JqZWN0LT5WYWx1ZUdldCgKICAgICAgICAgICAgICAgICAg
ICAgICAgRmllbGRJRCAgPT4gJER5bkZpZWxkLT57SUR9LAogICAgICAgICAgICAgICAgICAgICAg
ICBPYmplY3RJRCA9PiAkQXJ0aWNsZXtUaWNrZXRJRH0sCiAgICAgICAgICAgICAgICAgICAgKSB8
fCB1bmRlZjsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiAoICRTZWxmLT57
RGVidWd9ICkgewogICAgICAgICAgICAgICAgICAgICRMb2dPYmplY3QtPkxvZygKICAgICAgICAg
ICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2RlYnVnJywKICAgICAgICAgICAgICAgICAgICAg
ICAgTWVzc2FnZSAgPT4gUCAuICI6Ok1hcEZpZWxkczogZHluIGZpZWxkIEFycmF5OiAiCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAuICRNYWluT2JqZWN0LT5EdW1wKCREQlZhbCAvLyAnJykg
LiAiXG4iLAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CgogICAgICAg
ICAgICAgICAgbXkgJElzTXVsdGlzZWxlY3Q7CgogICAgICAgICAgICAgICAgIyBvbmx5IGhhbmRs
ZSBEYXRlLCBEYXRlVGltZSBhbmQgQ2hlY2tib3gsIGZvciB0aGUgcmVzdCB3ZSBoYXZlIG5vdGhp
bmcgdG8gZG8KICAgICAgICAgICAgICAgIGlmICggJEZpZWxkVHlwZSBlcSAnRGF0ZScgKSB7CiAg
ICAgICAgICAgICAgICAgICAgJElzQURhdGUgPSAxOwoKICAgICAgICAgICAgICAgICAgICAkREJW
YWwgPSByZWYgJERCVmFsID8gJERCVmFsLT5bMF0tPntWYWx1ZURhdGVUaW1lfSA6ICREQlZhbDsK
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2lmICggJEZpZWxkVHlwZSBlcSAn
RGF0ZVRpbWUnICkgewogICAgICAgICAgICAgICAgICAgICRJc0FEYXRlVGltZSA9IDE7CgogICAg
ICAgICAgICAgICAgICAgICREQlZhbCA9IHJlZiAkREJWYWwgPyAkREJWYWwtPlswXS0+e1ZhbHVl
RGF0ZVRpbWV9IDogJERCVmFsOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxz
aWYgKCAkRmllbGRUeXBlIGVxICdDaGVja2JveCcgKSB7CiAgICAgICAgICAgICAgICAgICAgaWYg
KCAkU2VsZi0+e0RlYnVnfSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJExvZ09iamVjdC0+
TG9nKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2luZm8nLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gUCAuICI6Ok1hcEZpZWxkczogc2tp
cHBpbmc6IENoZWNrYm94ICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICJEeW5h
bWljZmllbGQgJEtleSB3aXRoIHZhbHVlICREQlZhbFxuIiwKICAgICAgICAgICAgICAgICAgICAg
ICAgKTsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICREQlZhbCA9
IHVuZGVmOwogICAgICAgICAgICAgICAgfSAjIElnbm9yZSBieSBkZWZhdWx0IHNpbmNlIEpJUkEg
ZG9lcyBub3QgaGF2ZSBhIGNoZWNrYm94IGN1c3RvbSBmaWVsZAogICAgICAgICAgICAgICAgZWxz
aWYgKCAkRmllbGRUeXBlIGVxICdNdWx0aXNlbGVjdCcgKSB7CiAgICAgICAgICAgICAgICAgICAg
JERCVmFsID0gcmVmICREQlZhbCA/CiAgICAgICAgICAgICAgICAgICAgICAgIFsgbWFweyAreyB2
YWx1ZSA9PiAkXyB9IH1AeyREQlZhbH0gXSA6CiAgICAgICAgICAgICAgICAgICAgICAgIFtdOwoK
ICAgICAgICAgICAgICAgICAgICAkSXNNdWx0aXNlbGVjdCA9IDE7CiAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICAgICBlbHNpZiAoICRGaWVsZFR5cGUgZXEgJ0Ryb3Bkb3duJyApIHsKICAg
ICAgICAgICAgICAgICAgICAkREJWYWwgPSByZWYgJERCVmFsID8KICAgICAgICAgICAgICAgICAg
ICAgICAgK3sgdmFsdWUgPT4gJERCVmFsLT5bMF0tPntWYWx1ZVRleHR9IH0gOgogICAgICAgICAg
ICAgICAgICAgICAgICAreyB2YWx1ZSA9PiAkREJWYWwgfTsKCiAgICAgICAgICAgICAgICAgICAg
JElzTXVsdGlzZWxlY3QgPSAxOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICRE
QlZhbCA9IChyZWYgJERCVmFsICYmICEkSXNNdWx0aXNlbGVjdCkgPwogICAgICAgICAgICAgICAg
ICAgICggJERCVmFsLT5bMF0tPntWYWx1ZVRleHR9IHx8ICREQlZhbC0+WzBdLT57VmFsdWVJbnR9
ICkgOgogICAgICAgICAgICAgICAgICAgICREQlZhbDsKCiAgICAgICAgICAgICAgICBpZiAoICRT
ZWxmLT57RGVidWd9ICkgewogICAgICAgICAgICAgICAgICAgICRMb2dPYmplY3QtPkxvZygKICAg
ICAgICAgICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2RlYnVnJywKICAgICAgICAgICAgICAg
ICAgICAgICAgTWVzc2FnZSAgPT4gUCAuICI6Ok1hcEZpZWxkczogZHluIGZpZWxkIHdpdGggJERC
VmFsIGFuZCB0eXBlICRGaWVsZFR5cGVcbiIsCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoICRLUHJlZml4IGVxICdj
YWxsJyApIHsKCiAgICAgICAgICAgICAgICAjIGNhbGxzIG11c3QgYmUgc3BlY2lmaWVkIGFzIHRo
aXM6IGUuZy4gIk1JTUU6OkJhc2U2NCxlbmNvZGVfYmFzZTY0IgogICAgICAgICAgICAgICAgbXkg
KCRNb2R1bGUsICRGdW5jdGlvbikgPSBzcGxpdCAvLC8sICRLZXk7CgogICAgICAgICAgICAgICAg
aWYgKCAkTWFpbk9iamVjdC0+UmVxdWlyZSggJE1vZHVsZSApICkgewogICAgICAgICAgICAgICAg
ICAgIG15ICRDb2RlID0gJE1vZHVsZS0+Y2FuKCAkRnVuY3Rpb24gKTsKICAgICAgICAgICAgICAg
ICAgICAkREJWYWwgICA9ICRDb2RlLT4oICRTZWxmLCAkS2V5LCAlQXJ0aWNsZSApOwogICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgJExv
Z09iamVjdC0+TG9nKAogICAgICAgICAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZGVidWcn
LAogICAgICAgICAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiBQIC4gJzo6TWFwRmllbGRzOiBD
b3VsZCBub3QgbG9hZCAnIC4gJE1vZHVsZSwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAg
ICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmICggJFNlbGYtPntEZWJ1Z30gKSB7CiAgICAg
ICAgICAgICAgICAgICAgJExvZ09iamVjdC0+TG9nKAogICAgICAgICAgICAgICAgICAgICAgICBQ
cmlvcml0eSA9PiAnZGVidWcnLAogICAgICAgICAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiBQ
IC4gIjo6TWFwRmllbGRzOiBjYWxsIHRvICckRnVuY3Rpb24nIHJlc3VsdGluZyBpbiAkREJWYWxc
biIsCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
fQoKICAgICAgICAgICAgaWYgKCAkREJWYWwgKSB7CiAgICAgICAgICAgICAgICBpZiAoICRJc0FE
YXRlID09IDEgKSB7CiAgICAgICAgICAgICAgICAgICAgJERCVmFsID0gJFNlbGYtPkRhdGVGb3Jt
YXRUcmFuc2Zvcm0oICREYXRlRm9ybWF0LCAkREJWYWwgKTsKICAgICAgICAgICAgICAgIH0KCiAg
ICAgICAgICAgICAgICBpZiAoICRJc0FEYXRlVGltZSA9PSAxICkgewogICAgICAgICAgICAgICAg
ICAgICREQlZhbCA9ICRTZWxmLT5EYXRlRm9ybWF0VHJhbnNmb3JtKCAkRGF0ZVRpbWVGb3JtYXQs
ICREQlZhbCApOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmICggJFNlbGYt
PntEZWJ1Z30gKSB7CiAgICAgICAgICAgICAgICAgICAgJExvZ09iamVjdC0+TG9nKAogICAgICAg
ICAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZGVidWcnLAogICAgICAgICAgICAgICAgICAg
ICAgICBNZXNzYWdlICA9PiBQIC4gIjo6TWFwRmllbGRzOiBnb3QgbWFwcGVkIHZhbHVlOiBrcHJl
Zml4LGtleSx2cHJlZml4LHZhbCxkYnZhbCA6ICIKICAgICAgICAgICAgICAgICAgICAgICAgICAg
IC4gIiRLUHJlZml4LCRLZXksJFZQcmVmaXgsJFZhbHVlLCREQlZhbFxuIiwKICAgICAgICAgICAg
ICAgICAgICApOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmICggJFZQcmVm
aXggZXEgJ3N0ZCcgKSB7CiAgICAgICAgICAgICAgICAgICAgJEZpZWxkcy0+eyRWYWx1ZX0gPSAk
REJWYWw7CgogICAgICAgICAgICAgICAgICAgIGlmICggJFZhbHVlID1+IG17On0gKSB7CiAgICAg
ICAgICAgICAgICAgICAgICAgIG15ICgkS2V5LCAkU3Via2V5KSA9IHNwbGl0IC86LywgJFZhbHVl
OwoKICAgICAgICAgICAgICAgICAgICAgICAgbXkgJFJlZlR5cGUgPSByZWYgJERCVmFsOwogICAg
ICAgICAgICAgICAgICAgICAgICBpZiAoICRSZWZUeXBlICYmICRSZWZUeXBlIGVxICdBUlJBWScg
KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkREJWYWwgPSAkREJWYWwtPlswXS0+e3Zh
bHVlfTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBl
bHNpZiAoICRSZWZUeXBlICYmICRSZWZUeXBlIGVxICdIQVNIJyApIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICREQlZhbCA9ICREQlZhbC0+e3ZhbHVlfTsKICAgICAgICAgICAgICAgICAg
ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgJEZpZWxkcy0+eyRLZXl9ID0geyAkU3Vi
a2V5ID0+ICREQlZhbCB9OwogICAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgJEZpZWxkcy0+
eyRWYWx1ZX07CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgZWxzaWYgKCAkVlByZWZpeCBlcSAnY3VzdCcgKSB7CiAgICAgICAgICAgICAgICAg
ICAgaWYgKCAkSklSQUZpZWxkcy0+eyRWYWx1ZX0gKSB7CiAgICAgICAgICAgICAgICAgICAgICAg
ICRWYWx1ZSA9ICRKSVJBRmllbGRzLT57JFZhbHVlfTsKICAgICAgICAgICAgICAgICAgICB9Cgog
ICAgICAgICAgICAgICAgICAgICRGaWVsZHMtPnsiY3VzdG9tZmllbGRfIiAuICRWYWx1ZX0gPSAk
REJWYWw7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNpZiAoICRWUHJlZml4
IGVxICdjYWxsJyApIHsKCiAgICAgICAgICAgICAgICAgICAgIyBjYWxscyBtdXN0IGJlIHNwZWNp
ZmllZCBhcyB0aGlzOiBlLmcuICJNSU1FOjpCYXNlNjQsZW5jb2RlX2Jhc2U2NCIKICAgICAgICAg
ICAgICAgICAgICBteSAoJE1vZHVsZSwgJEZ1bmN0aW9uKSA9IHNwbGl0IC8sLywgJEtleTsKCiAg
ICAgICAgICAgICAgICAgICAgbXkgJFJlcyA9IDA7CiAgICAgICAgICAgICAgICAgICAgaWYgKCAk
TWFpbk9iamVjdC0+UmVxdWlyZSggJE1vZHVsZSApICkgewogICAgICAgICAgICAgICAgICAgICAg
ICBteSAkQ29kZSA9ICRNb2R1bGUtPmNhbiggJEZ1bmN0aW9uICk7CiAgICAgICAgICAgICAgICAg
ICAgICAgICRSZXMgICAgID0gJENvZGUtPiggJFNlbGYsICREQlZhbCwgJEZpZWxkcywgJUFydGlj
bGUgKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAg
ICAgICAgICAgICAgICAgICAgICAgICRMb2dPYmplY3QtPkxvZygKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFByaW9yaXR5ID0+ICdkZWJ1ZycsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBNZXNzYWdlICA9PiBQIC4gJzo6TWFwRmllbGRzOiBDb3VsZCBub3QgbG9hZCAnIC4gJE1vZHVs
ZSwKICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICB9IAoKICAg
ICAgICAgICAgICAgICAgICBpZiAoICRTZWxmLT57RGVidWd9ICkgewogICAgICAgICAgICAgICAg
ICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcmlv
cml0eSA9PiAnZGVidWcnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4g
UCAuICI6Ok1hcEZpZWxkczogY2FsbCB0byAnJEZ1bmN0aW9uJyByZXN1bHRpbmcgaW4gJFJlc1xu
IiwKICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzaWYgKCAkU2VsZi0+e0Rl
YnVnfSApIHsKICAgICAgICAgICAgICAgICRMb2dPYmplY3QtPkxvZygKICAgICAgICAgICAgICAg
ICAgICBQcmlvcml0eSA9PiAnZGVidWcnLAogICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+
IFAgLiAiOjpNYXBGaWVsZHM6IHNraXBwaW5nOiBrcHJlZml4LGtleSx2cHJlZml4LHZhbCxkYnZh
bCA6ICIKICAgICAgICAgICAgICAgICAgICAgICAgLiAiJEtQcmVmaXgsJEtleSwkVlByZWZpeCwk
VmFsdWUsJERCVmFsXG4iLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAg
IH0KICAgIH0KCiAgICBpZiAoICRTZWxmLT57RGVidWd9ICkgewogICAgICAgICRMb2dPYmplY3Qt
PkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2RlYnVnJywKICAgICAgICAgICAgTWVzc2Fn
ZSAgPT4gUCAuICI6Ok1hcEZpZWxkczogZmllbGRzOiAiIC4gJE1haW5PYmplY3QtPkR1bXAoJEZp
ZWxkcykgLiAiXG4iLAogICAgICAgICk7CiAgICB9CgogICAgJEZpZWxkcyA9ICRTZWxmLT5DaGVj
a0ZpZWxkVHlwZXMoICRGaWVsZHMgKTsKCiAgICBpZiAoICRTZWxmLT57RGVidWd9ICkgewogICAg
ICAgICRMb2dPYmplY3QtPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2RlYnVnJywKICAg
ICAgICAgICAgTWVzc2FnZSAgPT4gUCAuICI6Ok1hcEZpZWxkczogZmllbGRzIChhZnRlciB0eXBl
IGNoZWNrKTogIiAuICRNYWluT2JqZWN0LT5EdW1wKCRGaWVsZHMpIC4gIlxuIiwKICAgICAgICAp
OwogICAgfQoKICAgIHJldHVybiAkRmllbGRzOwp9Cgo9aXRlbSBEYXRlRm9ybWF0VHJhbnNmb3Jt
CgpUaGlzIGZ1bmN0aW9uIHRyYW5zZm9ybXMgdGhlIGRhdGUgdmFsdWUgb2YgYSBvdHJzIChkeW5h
bWljL3N0YW5kYXJkKSBmaWVsZCB0byB0aGUgSmlyYSBmb3JtYXQuCgpJdCByZWNlaXZlcyB0aGUg
Y3VycmVudCBmb3JtYXQgZnJvbSB0aGUgcnVubmluZyBzeXN0ZW0uCgogIG15ICRWYWx1ZTEgPSAk
U2VsZi0+RGF0ZUZvcm1hdFRyYW5zZm9ybSgnJWQvJWIvJXkgJUk6JU0gJXAnLCAgICcyMDA0LTA4
LTE0IDIyOjQ1OjAwJykKCnJldHVybnMgCgogIDE0L0F1Zy8wNCAxMDowNSBQTQoKb3IgQzx1bmRl
Zj4gdXBvbiBmYWlsdXJlCgo9Y3V0CgpzdWIgRGF0ZUZvcm1hdFRyYW5zZm9ybSB7CiAgICBteSAo
JFNlbGYsICREYXRlRm9ybWF0LCAkRGF0ZSkgPSBAXzsKCiAgICBpZiAoICFkZWZpbmVkKCREYXRl
KSB8fCAoICREYXRlIGVxICIiICkgKSB7CiAgICAgICAgcmV0dXJuIHVuZGVmOwogICAgfQoKICAg
IGlmICggbGVuZ3RoICREYXRlIDwgMTEgKSB7CiAgICAgICAgJERhdGUgLj0gJyAwMDowMDowMCc7
CiAgICB9CgogICAgbXkgJFRpbWUgPSBUaW1lOjpQaWVjZS0+c3RycHRpbWUoICREYXRlLCAnJVkt
JW0tJWQgJUg6JU06JVMnICk7CiAgICBpZiAoICEgJFRpbWUgKSB7CiAgICAgICAgcmV0dXJuIHVu
ZGVmOwogICAgfQoKICAgIHJldHVybiAkVGltZS0+c3RyZnRpbWUoJyVZLSVtLSVkVCVIOiVNOiVT
LjAwMCswMDAwJyk7Cn0KCj1pdGVtIENoZWNrRmllbGRUeXBlcwoKVGhpcyBmdW5jdGlvbiBlbnN1
cmVzIHRoYXQgdGhlIGRhdGEgdHJhbnNmZXJlZCB0byB0aGUgSklSQSBzeXN0ZW0gaGF2ZSB0aGUg
Y29ycmVjdCB0eXBlLgpFLmcuIGZpZWxkcyBvZiB0eXBlICJsYWJlbHMiIGhhdmUgdG8gYmUgYW4g
YXJyYXkgb2Ygc3RyaW5nIGV0Yy4KCk9uIE1hcmNoIDEwdGgsIDIwMTUgd2UgYWdyZWVkIG9uIHRo
b3NlIHJlc3RyaWN0aW9uczoKCj1vdmVyIDQKCj1pdGVtICogRm9yIGZpZWxkcyBvZiB0eXBlICJ1
c2VyIiB0aGUgInVzZXJuYW1lIiBpcyBzZXQKCj1pdGVtICogRm9yIGZpZWxkcyBvZiB0eXBlICJz
ZWxlY3QiIGFuZCB0aGUgbGlrZSB0aGUgdmFsdWUgaXMgc2V0Cgo9aXRlbSAqIEJlc2lkZSBjdXN0
b21maWVsZHR5cGVzIG9ubHkgdHlwZSAidXNlciIgaXMgc3VwcG9ydGVkIGF0IHRoZSBtb21lbnQK
Cj1iYWNrCgo9Y3V0CgpzdWIgQ2hlY2tGaWVsZFR5cGVzIHsKICAgIG15ICgkU2VsZiwgJEZpZWxk
cykgPSBAXzsKCiAgICBteSAkTG9nT2JqZWN0ICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6
U3lzdGVtOjpMb2cnKTsKICAgIG15ICRNYWluT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2Vy
bmVsOjpTeXN0ZW06Ok1haW4nKTsKCiAgICBteSAlRmllbGRzQ29weSA9ICV7JEZpZWxkc307Cgog
ICAgbXkgJEZpZWxkc0luZm8gPSAkU2VsZi0+RmllbGRzR2V0KAogICAgICAgIFJldHVybiA9PiAn
VHlwZXMnLAogICAgKTsKCiAgICBteSAkU3RhbmRhcmRGaWVsZHMgPSAkU2VsZi0+RmllbGRzR2V0
KAogICAgICAgIFJldHVybiA9PiAnU3RhbmRhcmQnLAogICAgKTsKCiAgICBteSAlRGlzcGF0Y2gg
PSAoCiAgICAgICAgc3RyaW5nICAgICAgICAgID0+IFsgXCZfU3RyaW5nLCAgICAgICAgICAgICAg
ICAgICBdLAogICAgICAgIHVybCAgICAgICAgICAgICA9PiBbIFwmX1N0cmluZywgICAgICAgICAg
ICAgICAgICAgXSwKICAgICAgICBhcnJheSAgICAgICAgICAgPT4gWyBcJl9BcnJheSwgICAgICAg
ICAgICAgICAgICAgIF0sCiAgICAgICAgbGFiZWxzICAgICAgICAgID0+IFsgXCZfQXJyYXksICAg
ICAgICAgICAgICAgICAgICBdLAogICAgICAgIGNhc2NhZGluZ3NlbGVjdCA9PiBbIFwmX0FycmF5
LCAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICBtdWx0aWNoZWNrYm94ZXMgPT4gWyBcJl9B
cnJheSwgICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgdXNlciAgICAgICAgICAgID0+IFsg
XCZfR2VuZXJpYywgICAgICAgJ25hbWUnLCAgICBdLAogICAgICAgIHVzZXJwaWNrZXIgICAgICA9
PiBbIFwmX0dlbmVyaWMsICAgICAgICduYW1lJywgICAgXSwKICAgICAgICBzZWxlY3QgICAgICAg
ICAgPT4gWyBcJl9HZW5lcmljLCAgICAgICAndmFsdWUnICAgIF0sCiAgICAgICAgbXVsdGlzZWxl
Y3QgICAgID0+IFsgXCZfQXJyYXlPZkhhc2hlcywgJ3ZhbHVlJyAgICBdLAogICAgICAgIHJhZGlv
YnV0dG9ucyAgICA9PiBbIFwmX0dlbmVyaWMsICAgICAgICd2YWx1ZScgICAgXSwKICAgICAgICBu
dW1iZXIgICAgICAgICAgPT4gWyBcJl9OdW1iZXIsICAgICAgICAgICAgICAgICAgIF0sCiAgICAg
ICAgZmxvYXQgICAgICAgICAgID0+IFsgXCZfTnVtYmVyLCAgICAgICAgICAgICAgICAgICBdLAog
ICAgICAgIGRhdGV0aW1lICAgICAgICA9PiBbIFwmX0RhdGV0aW1lLCAgICAgICAgICAgICAgICAg
XSwKICAgICAgICBkYXRlICAgICAgICAgICAgPT4gWyBcJl9EYXRldGltZSwgICAgICAnc2hvcnQn
LCAgIF0sCiAgICAgICAgZGF0ZXBpY2tlciAgICAgID0+IFsgXCZfRGF0ZXRpbWUsICAgICAgJ3No
b3J0JywgICBdLAogICAgICAgIHRleHRhcmVhICAgICAgICA9PiBbIFwmX1N0cmluZywgICAgICAg
ICAgICAgICAgICAgXSwKICAgICAgICB0ZXh0ZmllbGQgICAgICAgPT4gWyBcJl9TdHJpbmcsICAg
ICAgICAgICAgICAgICAgIF0sCiAgICAgICAgZGVmYXVsdCAgICAgICAgID0+IFsgXCZfU3RyaW5n
LCAgICAgICAgICAgICAgICAgICBdLAogICAgKTsKCiAgICBGSUVMRDoKICAgIGZvciBteSAkRmll
bGQgKCBrZXlzICVGaWVsZHNDb3B5ICkgewoKICAgICAgICBuZXh0IGlmIGZpcnN0eyAkRmllbGQg
ZXEgJF8gfUB7ICRTdGFuZGFyZEZpZWxkcyB8fCBbcXcocHJvamVjdCBpc3N1ZXR5cGUgcmVwb3J0
ZXIgYXNzaWduZWUpXSB9OwoKICAgICAgICBteSAkU2NoZW1hID0gJEZpZWxkc0luZm8tPnskRmll
bGR9OwogICAgICAgIG15ICRSZWYgICAgPSByZWYgJEZpZWxkc0NvcHl7JEZpZWxkfTsKICAgICAg
ICBteSAkVHlwZSAgID0gJFNjaGVtYS0+e2N1c3RvbX0gfHwgJFNjaGVtYS0+e3R5cGV9OwoKICAg
ICAgICBpZiAoICRUeXBlICYmIGluZGV4KCAkVHlwZSwgJzonICkgIT0gLTEgKSB7CiAgICAgICAg
ICAgICRUeXBlID0gKHNwbGl0IC86LywgJFR5cGUpWy0xXTsKICAgICAgICB9CgogICAgICAgICMg
c3RyaW5nIGlzIHJlcXVpcmVkIGFuZCBpdCBpcyBhbHJlYWR5IGEgc3RyaW5nIC0gbm8gdHJhbnNm
b3JtYXRpb24gcmVxdWlyZWQKICAgICAgICBuZXh0IEZJRUxEIGlmICRUeXBlIGVxICdzdHJpbmcn
ICYmICEkUmVmOwoKICAgICAgICAjIGFycmF5IGlzIHJlcXVpcmVkIGFuZCBpdCBpcyBhbHJlYWR5
IGFuIGFycmF5IC0gbm8gdHJhbnNmb3JtYXRpb24gcmVxdWlyZWQKICAgICAgICBuZXh0IEZJRUxE
IGlmICRUeXBlIGVxICdhcnJheScgJiYgJFJlZiAmJiAkUmVmIGVxICdBUlJBWSc7CgogICAgICAg
IG15IEBTdWJQYXJhbXMgPSBAeyAkRGlzcGF0Y2h7JFR5cGV9IHx8ICREaXNwYXRjaHtkZWZhdWx0
fSB9OwogICAgICAgIG15ICRTdWIgICAgICAgPSBzaGlmdCBAU3ViUGFyYW1zOwoKICAgICAgICBp
ZiAoICRTZWxmLT57RGVidWd9ICkgewogICAgICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAg
ICAgICAgICAgICBQcmlvcml0eSA9PiAnZGVidWcnLAogICAgICAgICAgICAgICAgTWVzc2FnZSAg
PT4gUCAuICI6OkNoZWNrRmllbGRUeXBlczogIiAuICRNYWluT2JqZWN0LT5EdW1wKFsKICAgICAg
ICAgICAgICAgICAgICAkRmllbGRzQ29weXskRmllbGR9LCAkRmllbGQsICRSZWYsICRTY2hlbWEs
ICRUeXBlLCAiJFN1YiIsIFxAU3ViUGFyYW1zCiAgICAgICAgICAgICAgICBdKSAuICJcbiIsCiAg
ICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICBuZXh0IEZJRUxEIGlmICEkU3ViOwoKICAg
ICAgICAkRmllbGRzQ29weXskRmllbGR9ID0gJFNlbGYtPiRTdWIoICRGaWVsZHNDb3B5eyRGaWVs
ZH0sICRSZWYsIEBTdWJQYXJhbXMgKTsKICAgIH0KCiAgICByZXR1cm4gXCVGaWVsZHNDb3B5Owp9
CgpzdWIgX1N0cmluZyB7CiAgICBteSAoJFNlbGYsICRWYWx1ZSwgJFJlZikgPSBAXzsKCiAgICBp
ZiAoICRSZWYgZXEgJ0hBU0gnICkgewogICAgICAgIG15ICgkS2V5KSA9IHNvcnQga2V5cyAleyRW
YWx1ZX07CiAgICAgICAgcmV0dXJuICRWYWx1ZS0+eyRLZXl9OwogICAgfQogICAgZWxzaWYgKCAk
UmVmIGVxICdBUlJBWScgKSB7CiAgICAgICAgcmV0dXJuIGpvaW4gJywgJywgQHskVmFsdWV9Owog
ICAgfQoKICAgIHJldHVybiAiJFZhbHVlIjsKfQoKc3ViIF9BcnJheSB7CiAgICBteSAoJFNlbGYs
ICRWYWx1ZSwgJFJlZikgPSBAXzsKCiAgICBpZiAoICRSZWYgZXEgJ0hBU0gnICkgewogICAgICAg
IG15ICgkS2V5KSA9IHNvcnQga2V5cyAleyRWYWx1ZX07CiAgICAgICAgcmV0dXJuIFsgJFZhbHVl
LT57JEtleX0gXTsKICAgIH0KCiAgICByZXR1cm4gWyAkVmFsdWUgXTsKfQoKc3ViIF9BcnJheU9m
SGFzaGVzIHsKICAgIG15ICgkU2VsZiwgJFZhbHVlLCAkUmVmLCAkS2V5KSA9IEBfOwoKICAgIG15
ICRBcnJheVJlZiA9IFtdOwoKICAgIGlmICggIXJlZiAkVmFsdWUgKSB7CiAgICAgICAgcHVzaCBA
eyRBcnJheVJlZn0sICt7ICRLZXkgPT4gJFZhbHVlIH07CiAgICB9CgogICAgaWYgKCAkUmVmIGVx
ICdBUlJBWScgKSB7CiAgICAgICAgZm9yIG15ICRJdGVtICggQHsgJFZhbHVlIHx8IFtdIH0gKSB7
CiAgICAgICAgICAgIGlmICggIXJlZiAkSXRlbSApIHsKICAgICAgICAgICAgICAgIHB1c2ggQHsg
JEFycmF5UmVmfSwgK3sgJEtleSA9PiAkSXRlbSB9OwogICAgICAgICAgICB9CiAgICAgICAgICAg
IGVsc2lmICggcmVmICRJdGVtIGVxICdIQVNIJyApIHsKICAgICAgICAgICAgICAgIHB1c2ggQHsg
JEFycmF5UmVmfSwgJEl0ZW07CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgcmV0
dXJuICRBcnJheVJlZjsKfQoKc3ViIF9HZW5lcmljIHsKICAgIG15ICgkU2VsZiwgJFZhbHVlLCAk
UmVmLCAkS2V5KSA9IEBfOwoKICAgIGlmICggJFJlZiBlcSAnSEFTSCcgKSB7CiAgICAgICAgaWYg
KCAhZXhpc3RzICRWYWx1ZS0+eyRLZXl9ICkgewogICAgICAgICAgICBteSAoJEV4aXN0aW5nS2V5
KSA9IHNvcnQga2V5cyAleyRWYWx1ZX07CiAgICAgICAgICAgICRWYWx1ZSA9ICRWYWx1ZS0+eyRF
eGlzdGluZ0tleX07CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkVmFsdWUg
PSAkVmFsdWUtPnskS2V5fTsKICAgICAgICB9CgogICAgICAgIGlmICggIWRlZmluZWQgJFZhbHVl
ICkgewogICAgICAgICAgICByZXR1cm4gdW5kZWY7CiAgICAgICAgICAgIHJldHVybiAreyBzZXQg
PT4gdW5kZWYgfTsKICAgICAgICB9CiAgICB9CiAgICBlbHNpZiAoICRSZWYgZXEgJ0FSUkFZJyAp
IHsKICAgICAgICByZXR1cm4gK3sgJEtleSA9PiBqb2luICcsICcsIEB7JFZhbHVlfSB9OwogICAg
fQoKICAgIHJldHVybiAreyAkS2V5ID0+ICIkVmFsdWUiIH07Cn0KCnN1YiBfTnVtYmVyIHsKICAg
IG15ICgkU2VsZiwgJFZhbHVlLCAkUmVmKSA9IEBfOwoKICAgIG15ICRWYWx1ZUNvcHkgPSAkVmFs
dWU7CiAgICBpZiAoICRSZWYgZXEgJ0hBU0gnICkgewogICAgICAgIG15ICgkS2V5KSA9IHNvcnQg
a2V5cyAleyRWYWx1ZX07CiAgICAgICAgJFZhbHVlQ29weSA9ICRWYWx1ZS0+eyRLZXl9OwogICAg
fQogICAgZWxzaWYgKCAkUmVmIGVxICdBUlJBWScgKSB7CiAgICAgICAgJFZhbHVlQ29weSA9IGpv
aW4gJywgJywgQHskVmFsdWV9OwogICAgfQoKICAgIGlmICggISBsb29rc19saWtlX251bWJlcigg
JFZhbHVlQ29weSApICkgewoKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3Rl
bTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAg
ICAgTWVzc2FnZSAgPT4gIlRyeSB0byBjYXN0ICRWYWx1ZUNvcHkgdG8gYSBudW1iZXIiLAogICAg
ICAgICk7CgogICAgICAgIG5vIHdhcm5pbmdzICdudW1lcmljJzsKICAgICAgICAkVmFsdWVDb3B5
ICs9IDA7CiAgICB9CgogICAgcmV0dXJuICRWYWx1ZUNvcHk7Cn0KCnN1YiBfRGF0ZXRpbWUgewog
ICAgbXkgKCRTZWxmLCAkVmFsdWUsICRSZWYsICRUeXBlKSA9IEBfOwoKICAgIG15ICRWYWx1ZUNv
cHkgPSAkVmFsdWU7CiAgICBpZiAoICRSZWYgZXEgJ0hBU0gnICkgewogICAgICAgIG15ICgkS2V5
KSA9IHNvcnQga2V5cyAleyRWYWx1ZX07CiAgICAgICAgJFZhbHVlQ29weSA9ICRWYWx1ZS0+eyRL
ZXl9OwogICAgfQogICAgZWxzaWYgKCAkUmVmIGVxICdBUlJBWScgKSB7CiAgICAgICAgJFZhbHVl
Q29weSA9IGpvaW4gJyAnLCBAeyRWYWx1ZX07CiAgICB9CgogICAgbXkgJVJlZ2V4ZXMgPSAoCiAg
ICAgICAgJ0xvbmcnICA9PiBxci9bMC05XXs0fS1bMC05XXsyfS1bMC05XXsyfVRbMC05XXsyfTpb
MC05XXsyfTpbMC05XXsyfVwuWzAtOV0rXCtbMC05XSsvLAogICAgICAgICdTaG9ydCcgPT4gcXIv
WzAtOV17NH0tWzAtOV17Mn0tWzAtOV17Mn0vLAogICAgKTsKCiAgICAjbXkgJFJlZ2V4ID0gJFJl
Z2V4ZXN7JFR5cGV9IHx8ICRSZWdleGVze0xvbmd9OwogICAgbXkgJFJlZ2V4ID0gJFJlZ2V4ZXN7
TG9uZ307CgogICAgaWYgKCAkVmFsdWVDb3B5ICF+ICRSZWdleCApIHsKICAgICAgICAkS2VybmVs
OjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3Jp
dHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIiRWYWx1ZUNvcHkgaXMgbm90
IGEgZGF0ZSIsCiAgICAgICAgKTsKICAgIH0KCiAgICByZXR1cm4gJFZhbHVlQ29weTsKfQoKPWl0
ZW0gVGhpcyBmdW5jdGlvbiBjYWxscyBKSVJBIGFuIHF1ZXJpZXMgdGhlIGxpY2Vuc2Ugc3RhdHVz
IGZvciB0aGlzIGluc3RhbGxhdGlvbi4KCm15ICRzdGF0dXMgPSAkU2VsZi0+Q2hlY2tWYWxpZExp
Y2Vuc2UoKTsKCnJldHVybnM6CgowIHVwb24gZmFpbHVyZQoxIHVwb24gdmFsaWQgbGljZW5zZQoy
IHVwb24gZXhwaXJlZCBsaWNlbnNlCgo9Y3V0CgpzdWIgQ2hlY2tWYWxpZExpY2Vuc2UgewogICAg
bXkgKCRTZWxmKSA9IEBfOwoKIyAgICByZXR1cm4gMTsKCiAgICBteSAkTG9nT2JqZWN0ICAgID0g
JEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpOwogICAgbXkgJENvbmZpZ09i
amVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgbXkgJENvbmZp
ZyA9ICRTZWxmLT57Q29uZmlnfTsKCiAgICBteSAkVVJMICAgICAgPSAkQ29uZmlnLT57VVJMfTsK
ICAgIG15ICRVc2VyICAgICA9ICRDb25maWctPntVc2VyfTsKICAgIG15ICRQYXNzd29yZCA9ICRD
b25maWctPntQYXNzd29yZH07CgogICAgIyMgbWF5YmUgbW92ZSB0aGlzIGludG8gYSBzdWIKICAg
IG15ICRIZWFkZXJzID0gewogICAgICAgIEFjY2VwdCAgICAgICAgPT4gJ2FwcGxpY2F0aW9uL2pz
b24nLAojIFRoZSBsYXR0ZXIgaGFzIGJlZW4gZGlzYWJsZWQgZHVlIHRvIE9UUlNKSVJBLTgxCiMg
ICAgICAgICAgICBBdXRob3JpemF0aW9uID0+ICdCYXNpYyAnCiMgICAgICAgICAgICAgIC4gZW5j
b2RlX2Jhc2U2NCggJHVzZXIgLiAnOicgLiAkcGFzc3dvcmQgKSwKICAgICAgICAiQ29udGVudC10
eXBlIiA9PiAnYXBwbGljYXRpb24vanNvbicsCiAgICB9OwoKICAgIG15ICRDbGllbnQgPSBSRVNU
OjpDbGllbnQtPm5ldygpOwogICAgJENsaWVudC0+c2V0Rm9sbG93KDEpOwoKICAgIG15ICRWZXJp
ZnlTU0wgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0pJUkE6OlNTTFZlcmlmeScpOwoKICAgIGlmICgg
ISRWZXJpZnlTU0wgKSB7CiAgICAgICAgbXkgJExvYWRlZCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tl
cm5lbDo6U3lzdGVtOjpNYWluJyktPlJlcXVpcmUoCiAgICAgICAgICAgICdOZXQ6OlNTTGVheScs
CiAgICAgICAgICAgIFNpbGVudCA9PiAxLAogICAgICAgICk7CiAgICAgICAgaWYgKCRMb2FkZWQp
IHsKICAgICAgICAgICAgJENsaWVudC0+Z2V0VXNlcmFnZW50KCktPnNzbF9vcHRzKCB2ZXJpZnlf
aG9zdG5hbWUgPT4gMCApOwogICAgICAgICAgICAkQ2xpZW50LT5nZXRVc2VyYWdlbnQoKS0+c3Ns
X29wdHMoIFNTTF92ZXJmaXlfbW9kZSA9PiBOZXQ6OlNTTGVheTo6VkVSSUZZX05PTkUoKSApOwog
ICAgICAgIH0KICAgIH0KCiAgICBteSAoJFByb3RvLCB1bmRlZiwgJEhvc3QsIEBCYXNlVVJMICkg
PSBzcGxpdCAnLycsICRVUkw7CiAgICBteSAkR2V0VVJMID0gJy8nLiBqb2luKCcvJywgQEJhc2VV
UkwpIC4gJy9yZXN0L290cnMyamlyYS8xLjAvaW5mbyc7CgogICAgJEdldFVSTCA9fiBzey8vfXsv
fWc7CiAgICAkQ2xpZW50LT5zZXRIb3N0KCIkUHJvdG8vLyRIb3N0Iik7CiAgICAkQ2xpZW50LT5H
RVQoICRHZXRVUkwsICRIZWFkZXJzICk7CgogCiAgICBpZiAoICRTZWxmLT57RGVidWd9ICkgewog
ICAgICAgICRMb2dPYmplY3QtPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2luZm8nLAog
ICAgICAgICAgICBNZXNzYWdlID0+ICBQIC4gIjo6Q2hlY2tWYWxpZExpY2Vuc2U6IFJFU1Q6IGhv
c3QgJFByb3RvLy8kSG9zdCBnZXR1cmwgJEdldFVSTCIsCiAgICAgICAgKTsKCiAgICAgICAgJExv
Z09iamVjdC0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnaW5mbycsCiAgICAgICAgICAg
IE1lc3NhZ2UgID0+IHNwcmludGYgUCAuICI6OkNoZWNrVmFsaWRMaWNlbnNlOiBSRVNUOiByZXNw
b25zZUNvZGUgJXMsIHJlc3BvbnNlQ29udGVudCAlcyIsCiAgICAgICAgICAgICAgICAkQ2xpZW50
LT5yZXNwb25zZUNvZGUoKSwKICAgICAgICAgICAgICAgICRDbGllbnQtPnJlc3BvbnNlQ29udGVu
dCgpLAogICAgICAgICk7CiAgICB9CgogICAgIyBUT0RPOiBGZWhsZXJtZWxkdW5nIGF1c2dlYmVu
IHdlbm4gRmVobGVyIGJlaSBkZXIgVmVyYmluZHVuZyBhdWZ0cml0dAoKICAgIHJldHVybiBpbnQo
JENsaWVudC0+cmVzcG9uc2VDb250ZW50KCkpOwp9CgpzdWIgX0Zvcm1hdEFydGljbGUgewogICAg
bXkgKCRTZWxmLCAlUGFyYW0pID0gQF87CgogICAgbXkgJEFydGljbGVGb3JtYXQgPSAkUGFyYW17
QXJ0aWNsZUZvcm1hdH07CgogICAgcmV0dXJuICcnIGlmICFkZWZpbmVkICRBcnRpY2xlRm9ybWF0
OwoKICAgIG15ICRMYXlvdXRPYmplY3Q7CiAgICB7CiAgICAgICAgbG9jYWwgJEtlcm5lbDo6T00g
PSBLZXJuZWw6OlN5c3RlbTo6T2JqZWN0TWFuYWdlci0+bmV3KCk7CiAgICAgICAgJExheW91dE9i
amVjdCAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0
Jyk7CiAgICB9CgogICAgbXkgJFRleHQgPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAg
VGVtcGxhdGUgPT4gJEFydGljbGVGb3JtYXQsCiAgICAgICAgRGF0YSAgICAgPT4gJFBhcmFte0Fy
dGljbGV9LAogICAgKTsKCiAgICByZXR1cm4gJFRleHQ7Cn0KCgoxOwoK
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=
Ly8gLS0KLy8gSklSQS5BZG1pbldpemFyZC5qcyAtIHByb3ZpZGVzIHRoZSBzcGVjaWFsIG1vZHVs
ZSBmdW5jdGlvbnMgZm9yIHRoZSBDdXN0b21lcklEIHNlYXJjaAovLyBDb3B5cmlnaHQgKEMpIDIw
MTYgUGVybC1TZXJ2aWNlcy5kZSwgaHR0cDovL3Blcmwtc2VydmljZXMuZGUKLy8gLS0KLy8gVGhp
cyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxz
LCBzZWUKLy8gdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlv
biAoQUdQTCkuIElmIHlvdQovLyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cDov
L3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgovLyAtLQoKInVzZSBzdHJpY3QiOwoKdmFy
IEpJUkEgPSBKSVJBIHx8IHt9OwoKLyoqCiAqIEBuYW1lc3BhY2UKICogQGV4cG9ydHMgVGFyZ2V0
TlMgYXMgSklSQS5BZG1pbldpemFyZAogKiBAZGVzY3JpcHRpb24KICogICAgICBUaGlzIG5hbWVz
cGFjZSBjb250YWlucyB0aGUgc3BlY2lhbCBtb2R1bGUgZnVuY3Rpb25zIGZvciB0aGUgc2VhcmNo
LgogKi8KSklSQS5BZG1pbldpemFyZCA9IChmdW5jdGlvbiAoVGFyZ2V0TlMpIHsKCiAgICAvKioK
ICAgICAqIEBmdW5jdGlvbgogICAgICogQHBhcmFtIHtqUXVlcnlPYmplY3R9ICRJbnB1dCBJbnB1
dCBlbGVtZW50IHRvIGFkZCBhdXRvIGNvbXBsZXRlIHRvCiAgICAgKiBAcGFyYW0ge1N0cmluZ30g
U3ViYWN0aW9uIFN1YmFjdGlvbiB0byBleGVjdXRlLCAiU2VhcmNoQ3VzdG9tZXJJRCIgb3IgIlNl
YXJjaEN1c3RvbWVyVXNlciIKICAgICAqIEByZXR1cm4gbm90aGluZwogICAgICovCiAgICBUYXJn
ZXROUy5Jbml0U2VsZWN0ID0gZnVuY3Rpb24gKEZpZWxkTmFtZSkgewogICAgICAgICQoJyMnICsg
RmllbGROYW1lKS5iaW5kKCAnY2hhbmdlJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICQoJ2Rp
dltjbGFzcyo9IicgKyBGaWVsZE5hbWUgKyAnLSJdJykuYWRkQ2xhc3MoJ0hpZGRlbicpOwoKICAg
ICAgICAgICAgdmFyIFN1YkNsYXNzID0gJCh0aGlzKS52YWwoKTsKCiAgICAgICAgICAgICQoJy4n
ICsgRmllbGROYW1lICsgJy0nICsgU3ViQ2xhc3MpLnJlbW92ZUNsYXNzKCdIaWRkZW4nKTsKICAg
ICAgICB9KTsKCiAgICAgICAgJCgnIycgKyBGaWVsZE5hbWUpLnRyaWdnZXIoICdjaGFuZ2UnICk7
CiAgICB9OwoKICAgIHJldHVybiBUYXJnZXROUzsKCn0pKCBKSVJBLkFkbWluV2l6YXJkIHx8IHt9
ICk7CgoK
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=
IyAtLQojIENvcHlyaWdodCAoQykgMjAxNSAtIDIwMTggY2F0V29ya1ggR21iSCwgaHR0cDovL2Nh
dHdvcmt4LmRlCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBX
QVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9y
IGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhp
cyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgojIC0tCgpw
YWNrYWdlIHZhcjo6cGFja2FnZXNldHVwOjpKSVJBUGFja2FnZTsKCnVzZSBzdHJpY3Q7CnVzZSB3
YXJuaW5nczsKCnVzZSB1dGY4OwoKdXNlIExpc3Q6OlV0aWwgcXcoZmlyc3QpOwp1c2UgRmlsZTo6
QmFzZW5hbWU7Cgp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7Cgpv
dXIgQE9iamVjdERlcGVuZGVuY2llcyA9IHF3KAogICAgS2VybmVsOjpDb25maWcKICAgIEtlcm5l
bDo6U3lzdGVtOjpTeXNDb25maWcKICAgIEtlcm5lbDo6U3lzdGVtOjpHZW5lcmljSW50ZXJmYWNl
OjpXZWJzZXJ2aWNlCiAgICBLZXJuZWw6OlN5c3RlbTo6WUFNTAogICAgS2VybmVsOjpTeXN0ZW06
OlZhbGlkCiAgICBLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkCik7Cgo9aGVhZDEgTkFNRQoK
dmFyOjpwYWNrYWdlc2V0dXA6OkpJUkFQYWNrYWdlLnBtIC0gY29kZSB0byBleGNlY3V0ZSBkdXJp
bmcgcGFja2FnZSBpbnN0YWxsYXRpb24KCj1oZWFkMSBTWU5PUFNJUwoKQWxsIGZ1bmN0aW9ucwoK
PWhlYWQxIFBVQkxJQyBJTlRFUkZBQ0UKCj1vdmVyIDQKCj1jdXQKCj1pdGVtIG5ldygpCgpjcmVh
dGUgYW4gb2JqZWN0Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0g
QF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9
OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKPWl0ZW0g
Q29kZUluc3RhbGwoKQoKcnVuIHRoZSBjb2RlIGluc3RhbGwgcGFydAoKICAgIG15ICRSZXN1bHQg
PSAkQ29kZU9iamVjdC0+Q29kZUluc3RhbGwoKTsKCj1jdXQKCnN1YiBDb2RlSW5zdGFsbCB7CiAg
ICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY3JlYXRlIGR5bmFtaWMgZmllbGRz
IAogICAgJFNlbGYtPl9JbnN0YWxsV2Vic2VydmljZSgpOwogICAgJFNlbGYtPl9DcmVhdGVEeW5h
bWljRmllbGRzKCk7CiAgICAkU2VsZi0+X0FjdGl2YXRlRHluYW1pY0ZpZWxkcygpOwoKICAgIHJl
dHVybiAxOwp9Cgo9aXRlbSBDb2RlUmVpbnN0YWxsKCkKCnJ1biB0aGUgY29kZSByZWluc3RhbGwg
cGFydAoKICAgIG15ICRSZXN1bHQgPSAkQ29kZU9iamVjdC0+Q29kZVJlaW5zdGFsbCgpOwoKPWN1
dAoKc3ViIENvZGVSZWluc3RhbGwgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAg
ICByZXR1cm4gMTsKfQoKPWl0ZW0gQ29kZVVwZ3JhZGUoKQoKcnVuIHRoZSBjb2RlIHVwZ3JhZGUg
cGFydAoKICAgIG15ICRSZXN1bHQgPSAkQ29kZU9iamVjdC0+Q29kZVVwZ3JhZGUoKTsKCj1jdXQK
CnN1YiBDb2RlVXBncmFkZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICRT
ZWxmLT5fSW5zdGFsbFdlYnNlcnZpY2UoKTsKICAgICRTZWxmLT5fQ3JlYXRlRHluYW1pY0ZpZWxk
cygpOwogICAgJFNlbGYtPl9BY3RpdmF0ZUR5bmFtaWNGaWVsZHMoKTsKCiAgICByZXR1cm4gMTsK
fQoKPWl0ZW0gQ29kZVVuaW5zdGFsbCgpCgpydW4gdGhlIGNvZGUgdW5pbnN0YWxsIHBhcnQKCiAg
ICBteSAkUmVzdWx0ID0gJENvZGVPYmplY3QtPkNvZGVVbmluc3RhbGwoKTsKCj1jdXQKCnN1YiBD
b2RlVW5pbnN0YWxsIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgcmV0dXJu
IDE7Cn0KCj1pdGVtIF9JbnN0YWxsV2Vic2VydmljZSgpCgo9Y3V0CgpzdWIgX0luc3RhbGxXZWJz
ZXJ2aWNlIHsKICAgIG15ICgkU2VsZiwgJVBhcmFtKSA9IEBfOwoKICAgIG15ICRZQU1MT2JqZWN0
ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OllBTUwnKTsKICAgIG15ICRMb2Nh
dGlvbiAgID0gam9pbiAnLycsCiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25m
aWcnKS0+R2V0KCdIb21lJyksCiAgICAgICAgcXcvdmFyIEdlbmVyaWNJbnRlcmZhY2UgR2VuZXJp
Y1RpY2tldENvbm5lY3RvclJFU1QueW1sLzsKCiAgICBteSAkQ29udGVudCA9ICRLZXJuZWw6Ok9N
LT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpNYWluJyktPkZpbGVSZWFkKAogICAgICAgIExvY2F0aW9u
ID0+ICRMb2NhdGlvbiwKICAgICk7CgogICAgbXkgJEltcG9ydGVkQ29uZmlnID0gJFlBTUxPYmpl
Y3QtPkxvYWQoIERhdGEgPT4gJHskQ29udGVudH0gKTsKCiAgICAjIGRpc3BsYXkgYW55IFlBTUwg
ZXJyb3IgbWVzc2FnZSBhcyBhIG5vcm1hbCBvdHJzIGVycm9yIG1lc3NhZ2UKICAgIGlmICggIUlz
SGFzaFJlZldpdGhEYXRhKCRJbXBvcnRlZENvbmZpZykgKSB7CiAgICAgICAgcmV0dXJuOwogICAg
fQoKICAgICMgY2hlY2sgaWYgaW1wb3J0ZWQgY29uZmlndXJhdGlvbiBoYXMgY3VycmVudCBmcmFt
ZXdvcmsgdmVyc2lvbiBvdGhlcndpc2UgdXBkYXRlIGl0CiAgICAjaWYgKCAkSW1wb3J0ZWRDb25m
aWctPntGcmFtZXdvcmtWZXJzaW9ufSBuZSAkU2VsZi0+e0ZyYW1ld29ya1ZlcnNpb259ICkgewog
ICAgIyAgICAkSW1wb3J0ZWRDb25maWcgPSAkU2VsZi0+X1VwZGF0ZUNvbmZpZ3VyYXRpb24oIENv
bmZpZ3VyYXRpb24gPT4gJEltcG9ydGVkQ29uZmlnICk7CiAgICAjfQoKICAgICMgcmVtb3ZlIGZy
YW1ld29yayBpbmZvcm1hdGlvbiBzaW5jZSBpcyBub3QgbmVlZGVkIGFueW1vcmUKICAgIGRlbGV0
ZSAkSW1wb3J0ZWRDb25maWctPntGcmFtZXdvcmtWZXJzaW9ufTsKCiAgICAjIGdldCB3ZWJzZXJ2
aWNlIG5hbWUKICAgIG15ICRXZWJzZXJ2aWNlTmFtZSAgID0gYmFzZW5hbWUgJExvY2F0aW9uOwog
ICAgbXkgJFdlYnNlcnZpY2VPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3Rl
bTo6R2VuZXJpY0ludGVyZmFjZTo6V2Vic2VydmljZScpOwoKICAgICMgcmVtb3ZlIGZpbGUgZXh0
ZW5zaW9uCiAgICAkV2Vic2VydmljZU5hbWUgPX4gc3tcLlteLl0rJH17fWc7CgogICAgIyBjaGVj
ayBpZiBuYW1lIGlzIGR1cGxpY2F0ZWQKICAgIG15ICVXZWJzZXJ2aWNlTGlzdCA9IHJldmVyc2Ug
JXsgJFdlYnNlcnZpY2VPYmplY3QtPldlYnNlcnZpY2VMaXN0KCkgfTsKCiAgICByZXR1cm4gaWYg
JFdlYnNlcnZpY2VMaXN0eyAkV2Vic2VydmljZU5hbWUgfTsKCiAgICAjIG90aGVyd2lzZSBzYXZl
IGNvbmZpZ3VyYXRpb24gYW5kIHJldHVybiB0byBvdmVydmlldyBzY3JlZW4KICAgIG15ICRTdWNj
ZXNzID0gJFdlYnNlcnZpY2VPYmplY3QtPldlYnNlcnZpY2VBZGQoCiAgICAgICAgTmFtZSAgICA9
PiAkV2Vic2VydmljZU5hbWUsCiAgICAgICAgQ29uZmlnICA9PiAkSW1wb3J0ZWRDb25maWcsCiAg
ICAgICAgVmFsaWRJRCA9PiAxLAogICAgICAgIFVzZXJJRCAgPT4gMSwKICAgICk7Cn0KCnN1YiBf
Q3JlYXRlRHluYW1pY0ZpZWxkcyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAg
IG15ICRWYWxpZE9iamVjdCAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3Rl
bTo6VmFsaWQnKTsKICAgIG15ICREeW5hbWljRmllbGRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0
KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkJyk7CgogICAgbXkgJFZhbGlkSUQgPSAkVmFs
aWRPYmplY3QtPlZhbGlkTG9va3VwKAogICAgICAgIFZhbGlkID0+ICd2YWxpZCcsCiAgICApOwoK
ICAgICMgZ2V0IGFsbCBjdXJyZW50IGR5bmFtaWMgZmllbGRzCiAgICBteSAkRHluYW1pY0ZpZWxk
TGlzdCA9ICREeW5hbWljRmllbGRPYmplY3QtPkR5bmFtaWNGaWVsZExpc3RHZXQoCiAgICAgICAg
VmFsaWQgPT4gMCwKICAgICk7CgogICAgIyBnZXQgdGhlIGxpc3Qgb2Ygb3JkZXIgbnVtYmVycyAo
aXMgYWxyZWFkeSBzb3J0ZWQpLgogICAgbXkgQER5bmFtaWNmaWVsZE9yZGVyTGlzdDsKICAgIGZv
ciBteSAkRHluYW1pY2ZpZWxkICggQHskRHluYW1pY0ZpZWxkTGlzdH0gKSB7CiAgICAgICAgcHVz
aCBARHluYW1pY2ZpZWxkT3JkZXJMaXN0LCAkRHluYW1pY2ZpZWxkLT57RmllbGRPcmRlcn07CiAg
ICB9CgogICAgIyBnZXQgdGhlIGxhc3QgZWxlbWVudCBmcm9tIHRoZSBvcmRlciBsaXN0IGFuZCBh
ZGQgMQogICAgbXkgJE5leHRPcmRlck51bWJlciA9IDE7CiAgICBpZiAoQER5bmFtaWNmaWVsZE9y
ZGVyTGlzdCkgewogICAgICAgICROZXh0T3JkZXJOdW1iZXIgPSAkRHluYW1pY2ZpZWxkT3JkZXJM
aXN0Wy0xXSArIDE7CiAgICB9CgogICAgIyBnZXQgdGhlIGRlZmluaXRpb24gZm9yIGFsbCBkeW5h
bWljIGZpZWxkcyBmb3IgSVRTTQogICAgbXkgQER5bmFtaWNGaWVsZHMgPSAkU2VsZi0+X0dldER5
bmFtaWNGaWVsZHNEZWZpbml0aW9uKCk7CgogICAgIyBjcmVhdGUgYSBkeW5hbWljIGZpZWxkcyBs
b29rdXAgdGFibGUKICAgIG15ICVEeW5hbWljRmllbGRMb29rdXA7CiAgICBmb3IgbXkgJER5bmFt
aWNGaWVsZCAoIEB7JER5bmFtaWNGaWVsZExpc3R9ICkgewogICAgICAgIG5leHQgaWYgcmVmICRE
eW5hbWljRmllbGQgbmUgJ0hBU0gnOwogICAgICAgICREeW5hbWljRmllbGRMb29rdXB7ICREeW5h
bWljRmllbGQtPntOYW1lfSB9ID0gJER5bmFtaWNGaWVsZDsKICAgIH0KCiAgICAjIGNyZWF0ZSBv
ciB1cGRhdGUgZHluYW1pYyBmaWVsZHMKICAgIERZTkFNSUNGSUVMRDoKICAgIGZvciBteSAkRHlu
YW1pY0ZpZWxkIChARHluYW1pY0ZpZWxkcykgewogICAgICAgIG15ICRDcmVhdGVEeW5hbWljRmll
bGQ7CgogICAgICAgICMgY2hlY2sgaWYgdGhlIGR5bmFtaWMgZmllbGQgYWxyZWFkeSBleGlzdHMK
ICAgICAgICBpZiAoIHJlZiAkRHluYW1pY0ZpZWxkTG9va3VweyAkRHluYW1pY0ZpZWxkLT57TmFt
ZX0gfSBuZSAnSEFTSCcgKSB7CiAgICAgICAgICAgICRDcmVhdGVEeW5hbWljRmllbGQgPSAxOwog
ICAgICAgIH0KCiAgICAgICAgIyBpZiB0aGUgZmllbGQgZXhpc3RzIGNoZWNrIGlmIHRoZSB0eXBl
IG1hdGNoIHdpdGggdGhlIG5lZWRlZCB0eXBlCiAgICAgICAgZWxzaWYgKAogICAgICAgICAgICAk
RHluYW1pY0ZpZWxkTG9va3VweyAkRHluYW1pY0ZpZWxkLT57TmFtZX0gfS0+e0ZpZWxkVHlwZX0K
ICAgICAgICAgICAgbmUgJER5bmFtaWNGaWVsZC0+e0ZpZWxkVHlwZX0KICAgICAgICAgICAgKQog
ICAgICAgIHsKCiAgICAgICAgICAgICMgcmVuYW1lIHRoZSBmaWVsZCBhbmQgY3JlYXRlIGEgbmV3
IG9uZQogICAgICAgICAgICBteSAkU3VjY2VzcyA9ICREeW5hbWljRmllbGRPYmplY3QtPkR5bmFt
aWNGaWVsZFVwZGF0ZSgKICAgICAgICAgICAgICAgICV7ICREeW5hbWljRmllbGRMb29rdXB7ICRE
eW5hbWljRmllbGQtPntOYW1lfSB9IH0sCiAgICAgICAgICAgICAgICBOYW1lICAgPT4gJER5bmFt
aWNGaWVsZExvb2t1cHsgJER5bmFtaWNGaWVsZC0+e05hbWV9IH0tPntOYW1lfSAuICdPbGQnLAog
ICAgICAgICAgICAgICAgVXNlcklEID0+IDEsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAk
Q3JlYXRlRHluYW1pY0ZpZWxkID0gMTsKICAgICAgICB9CgogICAgICAgICMgb3RoZXJ3aXNlIGlm
IHRoZSBmaWVsZCBleGlzdHMgYW5kIHRoZSB0eXBlIG1hdGNoLCB1cGRhdGUgaXQgdG8gdGhlIElU
U00gZGVmaW5pdGlvbgogICAgICAgIGVsc2UgewojICAgICAgICAgICAgbXkgJFN1Y2Nlc3MgPSAk
RHluYW1pY0ZpZWxkT2JqZWN0LT5EeW5hbWljRmllbGRVcGRhdGUoCiMgICAgICAgICAgICAgICAg
JXskRHluYW1pY0ZpZWxkfSwKIyAgICAgICAgICAgICAgICBJRCAgICAgICAgID0+ICREeW5hbWlj
RmllbGRMb29rdXB7ICREeW5hbWljRmllbGQtPntOYW1lfSB9LT57SUR9LAojICAgICAgICAgICAg
ICAgIEZpZWxkT3JkZXIgPT4gJER5bmFtaWNGaWVsZExvb2t1cHsgJER5bmFtaWNGaWVsZC0+e05h
bWV9IH0tPntGaWVsZE9yZGVyfSwKIyAgICAgICAgICAgICAgICBWYWxpZElEICAgID0+ICRWYWxp
ZElELAojICAgICAgICAgICAgICAgIFJlb3JkZXIgICAgPT4gMCwKIyAgICAgICAgICAgICAgICBV
c2VySUQgICAgID0+IDEsCiMgICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBjaGVj
ayBpZiBuZXcgZmllbGQgaGFzIHRvIGJlIGNyZWF0ZWQKICAgICAgICBpZiAoJENyZWF0ZUR5bmFt
aWNGaWVsZCkgewogICAgICAgICAgICAjIGNyZWF0ZSBhIG5ldyBmaWVsZAogICAgICAgICAgICBt
eSAkRmllbGRJRCA9ICREeW5hbWljRmllbGRPYmplY3QtPkR5bmFtaWNGaWVsZEFkZCgKICAgICAg
ICAgICAgICAgIE5hbWUgICAgICAgPT4gJER5bmFtaWNGaWVsZC0+e05hbWV9LAogICAgICAgICAg
ICAgICAgTGFiZWwgICAgICA9PiAkRHluYW1pY0ZpZWxkLT57TGFiZWx9LAogICAgICAgICAgICAg
ICAgRmllbGRPcmRlciA9PiAkTmV4dE9yZGVyTnVtYmVyLAogICAgICAgICAgICAgICAgRmllbGRU
eXBlICA9PiAkRHluYW1pY0ZpZWxkLT57RmllbGRUeXBlfSwKICAgICAgICAgICAgICAgIE9iamVj
dFR5cGUgPT4gJER5bmFtaWNGaWVsZC0+e09iamVjdFR5cGV9LAogICAgICAgICAgICAgICAgQ29u
ZmlnICAgICA9PiAkRHluYW1pY0ZpZWxkLT57Q29uZmlnfSwKICAgICAgICAgICAgICAgIFZhbGlk
SUQgICAgPT4gJFZhbGlkSUQsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgID0+IDEsCiAgICAg
ICAgICAgICk7CiAgICAgICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICEkRmllbGRJRDsKCiAg
ICAgICAgICAgICMgaW5jcmVhc2UgdGhlIG9yZGVyIG51bWJlcgogICAgICAgICAgICAkTmV4dE9y
ZGVyTnVtYmVyKys7CiAgICAgICAgfQoKICAgIH0KCiAgICByZXR1cm4gMTsKfQoKPWl0ZW0gX0dl
dER5bmFtaWNGaWVsZHNEZWZpbml0aW9uKCkKCnJldHVybnMgdGhlIGRlZmluaXRpb24gZm9yIHJl
cG9ydGluZyByZWxhdGVkIGR5bmFtaWMgZmllbGRzCgogICAgbXkgJFJlc3VsdCA9ICRDb2RlT2Jq
ZWN0LT5fR2V0RHluYW1pY0ZpZWxkc0RlZmluaXRpb24oKTsKCj1jdXQKCnN1YiBfR2V0RHluYW1p
Y0ZpZWxkc0RlZmluaXRpb24gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAj
IGRlZmluZSBhbGwgZHluYW1pYyBmaWVsZHMgZm9yIHJlcG9ydGluZwogICAgbXkgQER5bmFtaWNG
aWVsZHMgPSAoCiAgICAgICAgewogICAgICAgICAgICBOYW1lICAgICAgID0+ICdKSVJBSXNzdWVJ
RCcsCiAgICAgICAgICAgIExhYmVsICAgICAgPT4gJ0ppcmEgSXNzdWUgSUQnLAogICAgICAgICAg
ICBGaWVsZFR5cGUgID0+ICdUZXh0JywKICAgICAgICAgICAgT2JqZWN0VHlwZSA9PiAnVGlja2V0
JywKICAgICAgICAgICAgQ29uZmlnICAgICA9PiB7CiAgICAgICAgICAgICAgICBEZWZhdWx0VmFs
dWUgID0+ICcnLAogICAgICAgICAgICAgICAgTGluayAgICAgICAgICA9PiAnaHR0cDovL2xvY2Fs
aG9zdDo4MDgwL2Jyb3dzZS9bJSBEYXRhLkpJUkFJc3N1ZUlEIHwgdXJsICVdJywKICAgICAgICAg
ICAgfSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAgICAgICA9PiAnQXJ0
aWNsZVNlbnRUb0pJUkEnLAogICAgICAgICAgICBMYWJlbCAgICAgID0+ICdBcnRpY2xlIHdhcyBz
ZW50IHRvIEpJUkEnLAogICAgICAgICAgICBGaWVsZFR5cGUgID0+ICdDaGVja2JveCcsCiAgICAg
ICAgICAgIE9iamVjdFR5cGUgPT4gJ0FydGljbGUnLAogICAgICAgICAgICBDb25maWcgICAgID0+
IHsKICAgICAgICAgICAgICAgIERlZmF1bHRWYWx1ZSAgPT4gMCwKICAgICAgICAgICAgfSwKICAg
ICAgICB9LAogICAgKTsKCiAgICByZXR1cm4gQER5bmFtaWNGaWVsZHM7Cn0KCnN1YiBfQWN0aXZh
dGVEeW5hbWljRmllbGRzIHsKICAgIG15ICgkU2VsZiwgJVBhcmFtKSA9IEBfOwoKCiAgICBteSAl
TWFwID0gKAogICAgICAgIEpJUkFJc3N1ZUlEID0+IHsKICAgICAgICAgICAgJ1pvb20nICAgICA9
PiAxLAogICAgICAgICAgICAnRnJlZVRleHQnID0+IDEsCiAgICAgICAgICAgICdTZWFyY2gnICAg
PT4gMSwKICAgICAgICB9LAogICAgKTsKCiAgICBteSAkQ29uZmlnT2JqZWN0ICAgID0gJEtlcm5l
bDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKICAgIG15ICRTeXNDb25maWdPYmplY3QgPSAk
S2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6U3lzQ29uZmlnJyk7CgogICAgbXkgQFNl
dHRpbmdzOwogICAgZm9yIG15ICRGaWVsZCAoIGtleXMgJU1hcCApIHsKICAgICAgICBmb3IgbXkg
JFNjcmVlbiAoIGtleXMgJXsgJE1hcHskRmllbGR9IH0gKSB7CiAgICAgICAgICAgIG15ICRGdWxs
bmFtZSAgICAgID0gJ1RpY2tldDo6RnJvbnRlbmQ6OkFnZW50VGlja2V0JyAuICRTY3JlZW47CiAg
ICAgICAgICAgIG15ICRPcHRpb25zICAgICAgID0gJENvbmZpZ09iamVjdC0+R2V0KCAkRnVsbG5h
bWUgKTsKICAgICAgICAgICAgbXkgJE1hcHBpbmcgICAgICAgPSAkT3B0aW9ucy0+e0R5bmFtaWNG
aWVsZH0gfHwge307CgogICAgICAgICAgICBteSAlTmV3TWFwcGluZyA9ICgKICAgICAgICAgICAg
ICAgICV7ICRNYXBwaW5nIH0sCiAgICAgICAgICAgICAgICAkRmllbGQgPT4gJE1hcHskRmllbGR9
LT57JFNjcmVlbn0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBwdXNoIEBTZXR0aW5ncywg
ewogICAgICAgICAgICAgICAgTmFtZSAgICAgICAgICAgPT4gIiRGdWxsbmFtZSMjI0R5bmFtaWNG
aWVsZCIsCiAgICAgICAgICAgICAgICBFZmZlY3RpdmVWYWx1ZSA9PiBcJU5ld01hcHBpbmcsCiAg
ICAgICAgICAgIH07CiAgICAgICAgfQogICAgfQoKICAgIG15ICRTdWNjZXNzID0gJFN5c0NvbmZp
Z09iamVjdC0+U2V0dGluZ3NTZXQoCiAgICAgICAgU2V0dGluZ3MgPT4gXEBTZXR0aW5ncywKICAg
ICAgICBVc2VySUQgICA9PiAxLAogICAgKTsKCiAgICByZXR1cm4gMTsKfQoKMTsKCj1iYWNrCgo9
aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNP
TFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENP
UFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQpkaWQgbm90IHJlY2Vp
dmUgdGhpcyBmaWxlLCBzZWUgTDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLTIuMC50
eHQ+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.
]]>
2019-02-18 14:09:17lvps87-230-13-103.dedicated.hosteurope.de