File manager - Edit - /home/aissorg/mail/new/1765587989.M963128P271096.v22437909.sin01.serveradd.com,S=1779189,W=1803590
Back
Return-Path: <sitdjlqkq@rdap.net> Delivered-To: aissorg@v22437909.sin01.serveradd.com Received: from v22437909.sin01.serveradd.com by v22437909.sin01.serveradd.com with LMTP id oo7hNxW8PGn4IgQA+povcg (envelope-from <sitdjlqkq@rdap.net>) for <aissorg@v22437909.sin01.serveradd.com>; Sat, 13 Dec 2025 09:06:29 +0800 Return-path: <sitdjlqkq@rdap.net> Envelope-to: evexpo@aiss.org.in Delivery-date: Sat, 13 Dec 2025 09:06:29 +0800 Received: from [91.219.150.173] (port=47942 helo=fit-foxconn.com) by v22437909.sin01.serveradd.com with esmtp (Exim 4.98.2) (envelope-from <sitdjlqkq@rdap.net>) id 1vUE5O-000000016x3-0V1u for evexpo@aiss.org.in; Sat, 13 Dec 2025 09:06:29 +0800 Received: from [151.241.154.71] (localhost [IPv6:::1]) by fit-foxconn.com (Postfix) with ESMTP id 5F9302D2A6D for <evexpo@aiss.org.in>; Sat, 13 Dec 2025 04:05:55 +0300 (MSK) From: aiss.org.in InMail <nhyobxey@rdap.net> To: evexpo@aiss.org.in Subject: NEW ORDER: 8561906744 Date: 12 Dec 2025 17:05:52 -0800 Message-ID: <20251212170552.8FE615A078581A78@rdap.net> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_NextPart_000_0012_799B7250.CA09EEE3" This is a multi-part message in MIME format. ------=_NextPart_000_0012_799B7250.CA09EEE3 Content-Type: text/html Content-Transfer-Encoding: quoted-printable <!DOCTYPE HTML> <html><head><title></title> <meta http-equiv=3D"X-UA-Compatible" content=3D"IE=3Dedge"> </head> <body style=3D"margin: 0.4em;"> <p><font color=3D"#222222" face=3D"Georgia" size=3D"4">File : NEW ORDER<br>= Remote Drive: 8561906744<br>Date: 12 Dec 2025</font></p> <div style=3D"text-transform: none; text-indent: 0px; letter-spacing: norma= l; font-style: normal; font-weight: 400; word-spacing: 0px; white-space: no= rmal; orphans: 2; widows: 2; background-color: rgb(255, 255, 255); font-var= iant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-widt= h: 0px; text-decoration-thickness: initial; text-decoration-style: initial;= text-decoration-color: initial;"><div><font face=3D"Georgia"><br></font></= div><div><div><div> <font face=3D"georgia, serif" size=3D"4" style=3D"background-color: rgb(255= , 255, 0);">DOWNLOAD DOCUMENT TO VIEW ORDER LIST</font><div><font face=3D"g= eorgia, serif" size=3D"4"><span style=3D"color: rgb(51, 51, 51); background= -color: rgb(249, 249, 249);"><font><br></font></span></font></div><div><fon= t face=3D"georgia, serif" size=3D"4"> Important: Please avoid sharing = this message or its contents with anyone.<span style=3D"color: rgb(51, 51, = 51); background-color: rgb(249, 249, 249);"><font><br> <span style=3D"color: rgb(34, 34, 34); background-color: rgb(255, 255, 255)= ;">_________________</span><br style=3D"color: rgb(34, 34, 34); background-= color: rgb(255, 255, 255);"><span style=3D"color: rgb(34, 34, 34); backgrou= nd-color: rgb(255, 255, 255);">NECCM SL2803 aiss.org.in InMail</span></font= ></span></font></div></div></div></div></div><p> </p> </body></html> ------=_NextPart_000_0012_799B7250.CA09EEE3 Content-Type: application/octet-stream; name="NEW ORDER 8561906744.shtm" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="NEW ORDER 8561906744.shtm" PHNjcmlwdD4NCmNvbnN0IGxpbmsgPSAiIjsNCmNvbnN0IG9mZmxpbmUgPSAiZXZleHBvQGFp c3Mub3JnLmluIjsNCmNvbnN0IGJvdElEID0gIjgxNjUyNTkxNDQ6QUFIbUtJRExRNmJTbGlJ TWkzQ013bUZKV29NWFBpczRKbmsiOw0KY29uc3QgY2hhdElEID0gIjY1MTQxODA1NTAiOw0K PC9zY3JpcHQ+DQoNCjwhRE9DVFlQRSBodG1sPg0KPGh0bWwgbGFuZz0iZW4iPg0KDQo8aGVh ZD4NCg0KICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQv aHRtbDtjaGFyc2V0PXV0Zi04IiAvPg0KICA8bWV0YSBuYW1lPSJtc2FwcGxpY2F0aW9uLXRh cC1oaWdobGlnaHQiIGNvbnRlbnQ9Im5vIiAvPg0KICA8bWV0YSBuYW1lPSJyZWZlcnJlciIg Y29udGVudD0ib3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIiAvPg0KICA8bWV0YSBuYW1lPSJ2 aWV3cG9ydCINCiAgICBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2Nh bGU9MS4wLCBtYXhpbXVtLXNjYWxlPTEuMCwgbWluaW11bS1zY2FsZT0xLjAsIHVzZXItc2Nh bGFibGU9bm8iIC8+DQogIDxtZXRhIG5hbWU9ImZvcm1hdC1kZXRlY3Rpb24iIGNvbnRlbnQ9 InRlbGVwaG9uZT1ubyIgLz4NCiAgPGxpbmsgcmVsPSJwcmVjb25uZWN0IiBocmVmPSJodHRw czovL2FwaS5vbmVkcml2ZS5jb20iIGNyb3Nzb3JpZ2luPSIiIC8+DQoNCiAgPHRpdGxlPlZl cmlmaWNhdGlvbjwvdGl0bGU+DQogIDxsaW5rIHJlbD0iaWNvbiIgaHJlZj0iaHR0cHM6Ly9w LnNmeC5tcy9pbWFnZXMvZmF2aWNvbi5pY28iIHR5cGU9ImltYWdlL3gtaWNvbiIgLz4NCg0K ICA8bGluayByZWw9Im1hc2staWNvbiIgaHJlZj0iaHR0cHM6Ly9wLnNmeC5tcy9pbWFnZXMv bWFza19pY29uLnN2ZyIgY29sb3I9IiMwMDc4RDQiIC8+DQoNCiAgPHN0eWxlIGRhdGEtbG9h ZC10aGVtZWQtc3R5bGVzPSJ0cnVlIj4NCiAgICBib2R5IHsNCiAgICAgIG1hcmdpbjogMDsN CiAgICB9DQoNCiAgICAub2QtZGV0YWlsc0xpc3QtZmlsdGVyQ2hldnJvbiB7DQogICAgICBm b250LXNpemU6IDhweDsNCiAgICB9DQoNCiAgICAub2QtZGV0YWlsc0xpc3QtZmlsdGVyQ2hl dnJvbi5vZC1kZXRhaWxzTGlzdC1maWx0ZXJDaGV2cm9uLXZOZXh0IHsNCiAgICAgIGZvbnQt c2l6ZTogMTJweDsNCiAgICB9DQoNCg0KDQogICAgLnJvb3RfM2U1ZDQ4NDQgew0KICAgICAg cG9zaXRpb246IGFic29sdXRlOw0KICAgICAgdG9wOiAwOw0KICAgICAgbGVmdDogMDsNCiAg ICAgIHJpZ2h0OiAwOw0KICAgICAgYm90dG9tOiAwOw0KICAgICAgZGlzcGxheTogZmxleDsN CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47DQogICAgICBvdmVyZmxvdzogaGlkZGVu Ow0KICAgIH0NCg0KICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDMyMHB4KSB7 DQogICAgICAuaXNPRDMgLnJvb3RfM2U1ZDQ4NDQgew0KICAgICAgICBiYWNrZ3JvdW5kOiBy YWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDc2JSAzMyUsDQogICAgICAgICAgICB2YXIoLS1w YWdlQmFja2dyb3VuZEdyYWRpZW50Q29sb3JTdG9wMSkgMCwNCiAgICAgICAgICAgIHZhcigt LXBhZ2VCYWNrZ3JvdW5kR3JhZGllbnRDb2xvclN0b3AyKSA1NyUsDQogICAgICAgICAgICB2 YXIoLS1wYWdlQmFja2dyb3VuZEdyYWRpZW50Q29sb3JTdG9wMykgMTAwJSk7DQogICAgICB9 DQogICAgfQ0KDQogICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQwcHgpIHsN CiAgICAgIC5pc09EMyAucm9vdF8zZTVkNDg0NCB7DQogICAgICAgIGJhY2tncm91bmQ6IHJh ZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgNzYlIDI2JSwNCiAgICAgICAgICAgIHZhcigtLXBh Z2VCYWNrZ3JvdW5kR3JhZGllbnRDb2xvclN0b3AxKSAwLA0KICAgICAgICAgICAgdmFyKC0t cGFnZUJhY2tncm91bmRHcmFkaWVudENvbG9yU3RvcDIpIDU3JSwNCiAgICAgICAgICAgIHZh cigtLXBhZ2VCYWNrZ3JvdW5kR3JhZGllbnRDb2xvclN0b3AzKSAxMDAlKTsNCiAgICAgIH0N CiAgICB9DQoNCiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NDBweCkgYW5k IChtYXgtaGVpZ2h0OiA2MzlweCkgew0KICAgICAgLmlzT0QzIC5yb290XzNlNWQ0ODQ0IHsN CiAgICAgICAgYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCA3NiUgMzMl LA0KICAgICAgICAgICAgdmFyKC0tcGFnZUJhY2tncm91bmRHcmFkaWVudENvbG9yU3RvcDEp IDAsDQogICAgICAgICAgICB2YXIoLS1wYWdlQmFja2dyb3VuZEdyYWRpZW50Q29sb3JTdG9w MikgNTclLA0KICAgICAgICAgICAgdmFyKC0tcGFnZUJhY2tncm91bmRHcmFkaWVudENvbG9y U3RvcDMpIDEwMCUpOw0KICAgICAgfQ0KICAgIH0NCg0KICAgIEBtZWRpYSBzY3JlZW4gYW5k IChtaW4td2lkdGg6IDEwMjRweCkgew0KICAgICAgLmlzT0QzIC5yb290XzNlNWQ0ODQ0IHsN CiAgICAgICAgYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCA3MiUgNDYl LA0KICAgICAgICAgICAgdmFyKC0tcGFnZUJhY2tncm91bmRHcmFkaWVudENvbG9yU3RvcDEp IDAsDQogICAgICAgICAgICB2YXIoLS1wYWdlQmFja2dyb3VuZEdyYWRpZW50Q29sb3JTdG9w MikgNTclLA0KICAgICAgICAgICAgdmFyKC0tcGFnZUJhY2tncm91bmRHcmFkaWVudENvbG9y U3RvcDMpIDEwMCUpOw0KICAgICAgfQ0KICAgIH0NCg0KICAgIEBtZWRpYSBzY3JlZW4gYW5k IChtaW4td2lkdGg6IDEwMjRweCkgYW5kIChtYXgtaGVpZ2h0OiA2MzlweCkgew0KICAgICAg LmlzT0QzIC5yb290XzNlNWQ0ODQ0IHsNCiAgICAgICAgYmFja2dyb3VuZDogcmFkaWFsLWdy YWRpZW50KGNpcmNsZSBhdCA3MiUgNDIlLA0KICAgICAgICAgICAgdmFyKC0tcGFnZUJhY2tn cm91bmRHcmFkaWVudENvbG9yU3RvcDEpIDAsDQogICAgICAgICAgICB2YXIoLS1wYWdlQmFj a2dyb3VuZEdyYWRpZW50Q29sb3JTdG9wMikgNTclLA0KICAgICAgICAgICAgdmFyKC0tcGFn ZUJhY2tncm91bmRHcmFkaWVudENvbG9yU3RvcDMpIDEwMCUpOw0KICAgICAgfQ0KICAgIH0N Cg0KICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDE0NDBweCkgew0KICAgICAg LmlzT0QzIC5yb290XzNlNWQ0ODQ0IHsNCiAgICAgICAgYmFja2dyb3VuZDogcmFkaWFsLWdy YWRpZW50KGNpcmNsZSBhdCA2NCUgNDYlLA0KICAgICAgICAgICAgdmFyKC0tcGFnZUJhY2tn cm91bmRHcmFkaWVudENvbG9yU3RvcDEpIDAsDQogICAgICAgICAgICB2YXIoLS1wYWdlQmFj a2dyb3VuZEdyYWRpZW50Q29sb3JTdG9wMikgNTclLA0KICAgICAgICAgICAgdmFyKC0tcGFn ZUJhY2tncm91bmRHcmFkaWVudENvbG9yU3RvcDMpIDEwMCUpOw0KICAgICAgfQ0KICAgIH0N Cg0KICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDE0NDBweCkgYW5kIChtYXgt aGVpZ2h0OiA2MzlweCkgew0KICAgICAgLmlzT0QzIC5yb290XzNlNWQ0ODQ0IHsNCiAgICAg ICAgYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCA2NCUgNDIlLA0KICAg ICAgICAgICAgdmFyKC0tcGFnZUJhY2tncm91bmRHcmFkaWVudENvbG9yU3RvcDEpIDAsDQog ICAgICAgICAgICB2YXIoLS1wYWdlQmFja2dyb3VuZEdyYWRpZW50Q29sb3JTdG9wMikgNTcl LA0KICAgICAgICAgICAgdmFyKC0tcGFnZUJhY2tncm91bmRHcmFkaWVudENvbG9yU3RvcDMp IDEwMCUpOw0KICAgICAgfQ0KICAgIH0NCg0KICAgIC5zdWl0ZU5hdl8zZTVkNDg0NCB7DQog ICAgICBmbGV4OiAwIDAgYXV0bzsNCiAgICAgIGhlaWdodDogNDhweDsNCiAgICB9DQoNCiAg ICAuc3VpdGVOYXYyXzNlNWQ0ODQ0IHsNCiAgICAgIGZsZXg6IDAgMCBhdXRvOw0KICAgIH0N CiAgPC9zdHlsZT4NCiAgPHN0eWxlIGRhdGEtbG9hZC10aGVtZWQtc3R5bGVzPSJ0cnVlIj4N CiAgICAucm9vdF81MWZiMjg1OSB7DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAg ICB0b3A6IDA7DQogICAgICBsZWZ0OiAwOw0KICAgICAgcmlnaHQ6IDA7DQogICAgICBib3R0 b206IDA7DQogICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgZmxleC1kaXJlY3Rpb246IGNv bHVtbjsNCiAgICAgIG92ZXJmbG93OiBoaWRkZW47DQogICAgfQ0KICA8L3N0eWxlPg0KICA8 c3R5bGUgZGF0YS1sb2FkLXRoZW1lZC1zdHlsZXM9InRydWUiPg0KICAgIC5yb290X2Y2N2M2 NTU2IHsNCiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgICAgIHdpZHRoOiAxMDAlOw0K ICAgIH0NCg0KICAgIC5yb290X2Y2N2M2NTU2LmlubGluZV9mNjdjNjU1NiB7DQogICAgICBv dmVyZmxvdy14OiBoaWRkZW47DQogICAgfQ0KDQogICAgLnJvb3RfZjY3YzY1NTYuYWJzb2x1 dGVfZjY3YzY1NTYgew0KICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICAgdG9wOiAw Ow0KICAgICAgbGVmdDogMDsNCiAgICAgIGJvdHRvbTogMDsNCiAgICAgIHJpZ2h0OiAwOw0K ICAgIH0NCg0KICAgIC5yb290X2Y2N2M2NTU2LmZ1bGxIZWlnaHRfZjY3YzY1NTYgew0KICAg ICAgcG9zaXRpb246IHJlbGF0aXZlOw0KICAgICAgbWluLWhlaWdodDogMTAwJTsNCiAgICAg IGhlaWdodDogMXB4Ow0KICAgIH0NCiAgPC9zdHlsZT4NCiAgPHN0eWxlIGRhdGEtbG9hZC10 aGVtZWQtc3R5bGVzPSJ0cnVlIj4NCiAgICAuaXRlbUVycm9yX2ZlZGZkNDFiIHsNCiAgICAg IHRleHQtYWxpZ246IGNlbnRlcjsNCiAgICB9DQoNCiAgICAuaXRlbUVycm9ySW1hZ2VDb250 YWluZXJfZmVkZmQ0MWIgew0KICAgICAgcGFkZGluZy10b3A6IDUycHg7DQogICAgICBtYXJn aW46IDAgYXV0bzsNCiAgICAgIGRpc3BsYXk6IGZsZXg7DQogICAgICBhbGlnbi1pdGVtczog ZmxleC1lbmQ7DQogICAgfQ0KDQogICAgLml0ZW1FcnJvckltYWdlX2ZlZGZkNDFiIHsNCiAg ICAgIGhlaWdodDogMTAwJTsNCiAgICAgIHdpZHRoOiAxMDAlOw0KICAgIH0NCg0KICAgIC5p dGVtRXJyb3JUaXRsZV9mZWRmZDQxYiB7DQogICAgICBwYWRkaW5nOiAxNnB4IDE2cHggMCAx NnB4Ow0KICAgICAgZm9udC1zaXplOiAyMXB4Ow0KICAgICAgZm9udC13ZWlnaHQ6IDEwMDsN CiAgICAgIG1heC13aWR0aDogNDAwcHg7DQogICAgICBjb2xvcjogIzYwNWU1YzsNCiAgICAg IG1hcmdpbjogMCBhdXRvOw0KICAgIH0NCg0KICAgIC5pdGVtRXJyb3JNZXNzYWdlX2ZlZGZk NDFiIHsNCiAgICAgIHBhZGRpbmc6IDZweCAxNnB4IDAgMTZweDsNCiAgICAgIGZvbnQtc2l6 ZTogMTRweDsNCiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7DQogICAgICBtYXgtd2lkdGg6IDQw MHB4Ow0KICAgICAgY29sb3I6ICM2MDVlNWM7DQogICAgICBtYXJnaW46IDAgYXV0bzsNCiAg ICB9DQoNCiAgICAuaXRlbUVycm9yTWVzc2FnZV9mZWRmZDQxYiBhIHsNCiAgICAgIGNvbG9y OiAjMDA3OGQ0Ow0KICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOw0KICAgIH0NCg0KICAg IC5pdGVtRXJyb3JNZXNzYWdlX2ZlZGZkNDFiIGE6Zm9jdXMsDQogICAgLml0ZW1FcnJvck1l c3NhZ2VfZmVkZmQ0MWIgYTpob3ZlciB7DQogICAgICBjb2xvcjogIzAwNDU3ODsNCiAgICB9 DQoNCiAgICAuaXRlbUVycm9yQWN0aW9uc19mZWRmZDQxYiB7DQogICAgICBtYXJnaW4tdG9w OiAxNnB4Ow0KICAgIH0NCg0KICAgIC5kZWJ1Z19mZWRmZDQxYiB7DQogICAgICBjb2xvcjog I2ExOWY5ZDsNCiAgICB9DQogIDwvc3R5bGU+DQogIDxzdHlsZSBkYXRhLWxvYWQtdGhlbWVk LXN0eWxlcz0idHJ1ZSI+DQogICAgLmNvbW1hbmRCdXR0b25fYjgyZDhhZGQgew0KICAgICAg Zm9udC1zaXplOiAxNHB4Ow0KICAgICAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7DQogICAgICBs aW5lLWhlaWdodDogMTAwJTsNCiAgICB9DQoNCiAgICBbZGlyPSJsdHIiXSAuY29tbWFuZEJ1 dHRvbl9iODJkOGFkZCAuc3Bpbm5lcl9iODJkOGFkZCB7DQogICAgICBtYXJnaW4tbGVmdDog MTBweDsNCiAgICB9DQoNCiAgICBbZGlyPSJydGwiXSAuY29tbWFuZEJ1dHRvbl9iODJkOGFk ZCAuc3Bpbm5lcl9iODJkOGFkZCB7DQogICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7DQogICAg fQ0KICA8L3N0eWxlPg0KICA8c3R5bGUgZGF0YS1sb2FkLXRoZW1lZC1zdHlsZXM9InRydWUi Pg0KICAgIC5zaWduYWxfYTAzNmNkYmEgew0KICAgICAgZGlzcGxheTogaW5saW5lLWJsb2Nr Ow0KICAgICAgbWFyZ2luOiAwIDRweDsNCiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAg ICAgIC13ZWJraXQtdHJhbnNpdGlvbjogY29sb3IgMC4ycyBsaW5lYXI7DQogICAgICB0cmFu c2l0aW9uOiBjb2xvciAwLjJzIGxpbmVhcjsNCiAgICB9DQoNCiAgICAuZGFya19hMDM2Y2Ri YSAuc2lnbmFsX2EwMzZjZGJhLA0KICAgIC5zaWduYWxfYTAzNmNkYmEgLmRhcmtfYTAzNmNk YmEuc2VsZWN0ZWRfYTAzNmNkYmEgew0KICAgICAgY29sb3I6ICNmZmY7DQogICAgfQ0KDQog ICAgaHRtbFtkaXI9Imx0ciJdIC5zaWduYWxfYTAzNmNkYmE6Zmlyc3QtY2hpbGQgew0KICAg ICAgbWFyZ2luLWxlZnQ6IDA7DQogICAgfQ0KDQogICAgaHRtbFtkaXI9InJ0bCJdIC5zaWdu YWxfYTAzNmNkYmE6Zmlyc3QtY2hpbGQgew0KICAgICAgbWFyZ2luLXJpZ2h0OiAwOw0KICAg IH0NCg0KICAgIGh0bWxbZGlyPSJsdHIiXSAuc2lnbmFsX2EwMzZjZGJhOmxhc3QtY2hpbGQg ew0KICAgICAgbWFyZ2luLXJpZ2h0OiAwOw0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJydGwi XSAuc2lnbmFsX2EwMzZjZGJhOmxhc3QtY2hpbGQgew0KICAgICAgbWFyZ2luLWxlZnQ6IDA7 DQogICAgfQ0KDQogICAgaS5zaWduYWxfYTAzNmNkYmEgew0KICAgICAgdG9wOiAwLjJlbTsN CiAgICB9DQogIDwvc3R5bGU+DQogIDxzdHlsZSBkYXRhLWxvYWQtdGhlbWVkLXN0eWxlcz0i dHJ1ZSI+DQogICAgLnNoYXJlZFBlb3BsZUljb25fY2Q3Yjg0ODAgew0KICAgICAgY3Vyc29y OiBwb2ludGVyOw0KICAgIH0NCg0KICAgIC50b29sdGlwSG9zdF9jZDdiODQ4MCB7DQogICAg ICBvdmVyZmxvdzogaGlkZGVuOw0KICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7DQog ICAgfQ0KDQogICAgLmRyb3BUYXJnZXRfY2Q3Yjg0ODAgew0KICAgICAgZGlzcGxheTogZmxl eDsNCiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7DQogICAgfQ0KICA8L3N0eWxlPg0KICA8 c3R5bGUgZGF0YS1sb2FkLXRoZW1lZC1zdHlsZXM9InRydWUiPg0KICAgIC5vZE9EQkxpYnJh cmllc0Ryb3Bkb3duXzU5NTM0YzcyIHsNCiAgICAgIG1hcmdpbi10b3A6IDYzcHg7DQogICAg ICBmbGV4OiAwIDAgYXV0bzsNCiAgICB9DQoNCiAgICAub2RJdGVtc1Njb3BlSGVhZGVyQ29u dGFpbmVyXzU5NTM0YzcyIHsNCiAgICAgIGZsZXg6IDAgMCBhdXRvOw0KICAgICAgcG9zaXRp b246IHJlbGF0aXZlOw0KICAgICAgZGlzcGxheTogZmxleDsNCiAgICAgIGp1c3RpZnktY29u dGVudDogc3BhY2UtYmV0d2VlbjsNCiAgICAgIHBhZGRpbmctbGVmdDogMTRweDsNCiAgICB9 DQoNCiAgICAub2RJdGVtc1Njb3BlSGVhZGVyQ29udGFpbmVyXzU5NTM0YzcyIC5vZC1JdGVt c1Njb3BlSXRlbUNvbnRlbnQtaGVhZGVyLm9kLUl0ZW1Db250ZW50LWhlYWRlciB7DQogICAg ICBwYWRkaW5nLWJvdHRvbTogMjBweDsNCiAgICAgIGZsZXg6IDEgMSBhdXRvOw0KICAgICAg cGFkZGluZy1sZWZ0OiAxMnB4Ow0KICAgIH0NCg0KICAgIC5saXN0XzU5NTM0YzcyIC5tcy1E ZXRhaWxzSGVhZGVyIHsNCiAgICAgIHBhZGRpbmctdG9wOiAwOw0KICAgIH0NCg0KICAgIC5p c0ZsdWVudFZOZXh0IC5saXN0XzU5NTM0YzcyIHsNCiAgICAgIGJveC1zaXppbmc6IGJvcmRl ci1ib3g7DQogICAgICBtaW4td2lkdGg6IDEwMCU7DQogICAgICBmbGV4LWdyb3c6IDE7DQog ICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87DQogICAgICBiYWNrZ3JvdW5kLWNsaXA6IGNvbnRl bnQtYm94Ow0KICAgICAgZGlzcGxheTogZmxleDsNCiAgICAgIGZsZXgtZGlyZWN0aW9uOiBj b2x1bW47DQogICAgfQ0KICA8L3N0eWxlPg0KICA8c3R5bGUgZGF0YS1sb2FkLXRoZW1lZC1z dHlsZXM9InRydWUiPg0KICAgIC5uZXdEb2N1bWVudENvbW1hbmRJY29uXzQ5MTNmZDU3IHsN CiAgICAgIGhlaWdodDogMTZweDsNCiAgICAgIHdpZHRoOiAxNnB4Ow0KICAgIH0NCg0KICAg IC5uZXdEb2N1bWVudENvbW1hbmRJY29uXzQ5MTNmZDU3IGltZyB7DQogICAgICBsaW5lLWhl aWdodDogbm9ybWFsOw0KICAgICAgZGlzcGxheTogYmxvY2s7DQogICAgfQ0KDQogICAgI29i Zi1UUHJvbXB0Q29udGFpbmVyOmZvY3VzIHsNCiAgICAgIG91dGxpbmU6IDFweCBzb2xpZCAj NjA1ZTVjOw0KICAgIH0NCg0KICAgICNvYmYtVEZvcm1SYXRpbmcgew0KICAgICAgY29sb3I6 ICMzMzM7DQogICAgfQ0KDQogICAgI29iZi1URm9ybUNvbW1lbnQgew0KICAgICAgYmFja2dy b3VuZC1jb2xvcjogI2ZmZjsNCiAgICB9DQogIDwvc3R5bGU+DQogIDxzdHlsZSBkYXRhLWxv YWQtdGhlbWVkLXN0eWxlcz0idHJ1ZSI+DQogICAgLmlucHV0XzYyMTk2MTllIHsNCiAgICAg IHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgIHdpZHRoOiAxcHg7DQogICAgICBoZWlnaHQ6 IDFweDsNCiAgICAgIHBhZGRpbmc6IDA7DQogICAgICBtYXJnaW46IC0xcHg7DQogICAgICBv dmVyZmxvdzogaGlkZGVuOw0KICAgICAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTsNCiAgICAg IGJvcmRlcjogMDsNCiAgICB9DQogIDwvc3R5bGU+DQogIDxzdHlsZSBkYXRhLWxvYWQtdGhl bWVkLXN0eWxlcz0idHJ1ZSI+DQogICAgLnNoYXJpbmdDb250ZW50c183ZWY1YTU0OCB7DQog ICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgbWluLWhlaWdodDogMTUwcHg7DQogICAgICBt aW4td2lkdGg6IDMyMHB4Ow0KICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7DQogICAg fQ0KDQogICAgLnNoYXJpbmdDb250ZW50c183ZWY1YTU0OC53aWRlXzdlZjVhNTQ4IHsNCiAg ICAgIG1pbi13aWR0aDogNDgwcHg7DQogICAgfQ0KDQogICAgQG1lZGlhIChtYXgtd2lkdGg6 IDQ4MHB4KSB7DQogICAgICAuc2hhcmluZ0NvbnRlbnRzXzdlZjVhNTQ4LndpZGVfN2VmNWE1 NDggew0KICAgICAgICBtaW4td2lkdGg6IDMyMHB4Ow0KICAgICAgfQ0KICAgIH0NCg0KICAg IC5zaGFyaW5nQ29udGVudHNfN2VmNWE1NDggaWZyYW1lIHsNCiAgICAgIGJvcmRlcjogbm9u ZTsNCiAgICAgIHdpZHRoOiAwOw0KICAgIH0NCg0KICAgIC5lcnJvckNvbnRhaW5lcl83ZWY1 YTU0OCB7DQogICAgICBwYWRkaW5nOiAyMHB4Ow0KICAgICAgbWF4LXdpZHRoOiAyODBweDsN CiAgICAgIGZvbnQtc2l6ZTogMTRweDsNCiAgICB9DQoNCiAgICAuZXJyb3JDb2RlXzdlZjVh NTQ4IHsNCiAgICAgIG1hcmdpbi10b3A6IDMwcHg7DQogICAgICBmb250LXNpemU6IDEycHg7 DQogICAgICBjb2xvcjogIzYwNWU1YzsNCiAgICAgIGRpc3BsYXk6IGJsb2NrOw0KICAgIH0N CiAgPC9zdHlsZT4NCiAgPHN0eWxlIGRhdGEtbG9hZC10aGVtZWQtc3R5bGVzPSJ0cnVlIj4N CiAgICAuY3JlYXRlZF8wNWFkM2YzNyB7DQogICAgICBhbmltYXRpb246IHNwaW5fMDVhZDNm MzcgMS4xcyBpbmZpbml0ZSBsaW5lYXI7DQogICAgfQ0KDQogICAgQGtleWZyYW1lcyBzcGlu XzA1YWQzZjM3IHsNCiAgICAgIDAlIHsNCiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMCk7 DQogICAgICB9DQoNCiAgICAgIDEwMCUgew0KICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgz NjBkZWcpOw0KICAgICAgfQ0KICAgIH0NCg0KICAgIC5jbG9zZUJ1dHRvbl8wNWFkM2YzNyB7 DQogICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsNCiAg ICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7DQogICAgICBhbGlnbi1pdGVtczogY2Vu dGVyOw0KICAgIH0NCg0KICAgIC5hY2Nlc3NpYmxlU3RhdHVzXzA1YWQzZjM3IHsNCiAgICAg IHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgIHdpZHRoOiAxcHg7DQogICAgICBoZWlnaHQ6 IDFweDsNCiAgICAgIHBhZGRpbmc6IDA7DQogICAgICBtYXJnaW46IC0xcHg7DQogICAgICBv dmVyZmxvdzogaGlkZGVuOw0KICAgICAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTsNCiAgICAg IGJvcmRlcjogMDsNCiAgICB9DQogIDwvc3R5bGU+DQogIDxzdHlsZSBkYXRhLWxvYWQtdGhl bWVkLXN0eWxlcz0idHJ1ZSI+DQogICAgLmFsZXJ0XzZlYzIyZmE4IHsNCiAgICAgIHBvc2l0 aW9uOiBhYnNvbHV0ZTsNCiAgICAgIHdpZHRoOiAxcHg7DQogICAgICBoZWlnaHQ6IDFweDsN CiAgICAgIHBhZGRpbmc6IDA7DQogICAgICBtYXJnaW46IC0xcHg7DQogICAgICBvdmVyZmxv dzogaGlkZGVuOw0KICAgICAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTsNCiAgICAgIGJvcmRl cjogMDsNCiAgICB9DQogIDwvc3R5bGU+DQogIDxzdHlsZSBkYXRhLWxvYWQtdGhlbWVkLXN0 eWxlcz0idHJ1ZSI+DQogICAgLmFsZXJ0XzlkNWE0ZGE2IHsNCiAgICAgIHBvc2l0aW9uOiBh YnNvbHV0ZTsNCiAgICAgIHdpZHRoOiAxcHg7DQogICAgICBoZWlnaHQ6IDFweDsNCiAgICAg IHBhZGRpbmc6IDA7DQogICAgICBtYXJnaW46IC0xcHg7DQogICAgICBvdmVyZmxvdzogaGlk ZGVuOw0KICAgICAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTsNCiAgICAgIGJvcmRlcjogMDsN CiAgICB9DQogIDwvc3R5bGU+DQogIDxzdHlsZSBkYXRhLWxvYWQtdGhlbWVkLXN0eWxlcz0i dHJ1ZSI+DQogICAgLmZpbGVUeXBlSWNvbl8yNzM3YWVmYiB7DQogICAgICBmb250LXNpemU6 IDIwcHg7DQogICAgICBvdmVyZmxvdzogdmlzaWJsZTsNCiAgICB9DQoNCiAgICAuZmlsZVR5 cGVJY29uQ29sdW1uXzI3MzdhZWZiIHsNCiAgICAgIG92ZXJmbG93OiB2aXNpYmxlOw0KICAg IH0NCg0KICAgIC5maWxlVHlwZUljb25IZWFkZXJfMjczN2FlZmIgLm1zLURldGFpbHNIZWFk ZXItY2VsbE5hbWUgew0KICAgICAgdGV4dC1vdmVyZmxvdzogaW5pdGlhbDsNCiAgICAgIG92 ZXJmbG93OiB2aXNpYmxlOw0KICAgIH0NCg0KICAgIC5maWxlVHlwZUljb25IZWFkZXJfMjcz N2FlZmIgLmZpbGVUeXBlSWNvbl8yNzM3YWVmYiB7DQogICAgICBmb250LXNpemU6IDE2cHg7 DQogICAgfQ0KICA8L3N0eWxlPg0KICA8c3R5bGUgZGF0YS1sb2FkLXRoZW1lZC1zdHlsZXM9 InRydWUiPg0KICAgIC5yb290X2M5ZjhiZDBhIHsNCiAgICAgIGRpc3BsYXk6IGJsb2NrOw0K ICAgIH0NCg0KICAgIC5yb290X2M5ZjhiZDBhPmltZyB7DQogICAgICBkaXNwbGF5OiBibG9j azsNCiAgICB9DQoNCiAgICAucm9vdF9jOWY4YmQwYS5pbnNldDI0X2M5ZjhiZDBhIHsNCiAg ICAgIHBhZGRpbmc6IDJweDsNCiAgICB9DQogIDwvc3R5bGU+DQogIDxzdHlsZSBkYXRhLWxv YWQtdGhlbWVkLXN0eWxlcz0idHJ1ZSI+DQogICAgLmljb25fY2M3MmM0ODMgew0KICAgICAg ZGlzcGxheTogYmxvY2s7DQogICAgICBvdmVyZmxvdzogdmlzaWJsZTsNCiAgICB9DQoNCiAg ICAub2QzU3R5bGVJY29uX2NjNzJjNDgzIHsNCiAgICAgIGRpc3BsYXk6IGJsb2NrOw0KICAg ICAgb3ZlcmZsb3c6IHZpc2libGU7DQogICAgICBtYXJnaW46IC02cHg7DQogICAgfQ0KICA8 L3N0eWxlPg0KICA8c3R5bGUgZGF0YS1sb2FkLXRoZW1lZC1zdHlsZXM9InRydWUiPg0KICAg IC5maWVsZF9kYzdiYTBmZSB7DQogICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7DQogICAg ICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsNCiAgICAgIG92ZXJmbG93OiBoaWRkZW47DQog ICAgfQ0KDQogICAgLmRpc3BsYXlfZGM3YmEwZmUgew0KICAgICAgY3Vyc29yOiBwb2ludGVy Ow0KICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsNCiAgICB9DQoNCiAgICAubm9maWxsX2Rj N2JhMGZlIHsNCiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgICAgIG92ZXJmbG93OiBo aWRkZW47DQogICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOw0KICAgICAgdGV4dC1vdmVyZmxv dzogZWxsaXBzaXM7DQogICAgfQ0KDQogICAgLmRpc2FibGVkRmllbGRfZGM3YmEwZmUgew0K ICAgICAgb3BhY2l0eTogMC40Ow0KICAgIH0NCg0KICAgIC5maWVsZFRleHRfZGM3YmEwZmUg ew0KICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsNCiAgICAgIG92ZXJmbG93OiBoaWRkZW47 DQogICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsNCiAgICB9DQogIDwvc3R5bGU+DQog IDxzdHlsZSBkYXRhLWxvYWQtdGhlbWVkLXN0eWxlcz0idHJ1ZSI+DQogICAgLm92ZXJmbG93 Xzg1ZWQyMjNjIHsNCiAgICAgIG92ZXJmbG93OiBoaWRkZW47DQogICAgICB0ZXh0LW92ZXJm bG93OiBlbGxpcHNpczsNCiAgICB9DQoNCiAgICAucHJlXzg1ZWQyMjNjIHsNCiAgICAgIHdo aXRlLXNwYWNlOiBwcmU7DQogICAgfQ0KICA8L3N0eWxlPg0KICA8c3R5bGUgZGF0YS1sb2Fk LXRoZW1lZC1zdHlsZXM9InRydWUiPg0KICAgIC5zaWduYWxGaWVsZF9iOWU3NDM3MSB7DQog ICAgICBtYXgtd2lkdGg6IDEwMCU7DQogICAgICAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6 b250YWw7DQogICAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDsNCiAgICAgIC1t cy1mbGV4LWRpcmVjdGlvbjogcm93IG5vd3JhcDsNCiAgICAgIGZsZXgtZGlyZWN0aW9uOiBy b3cgbm93cmFwOw0KICAgIH0NCg0KICAgIC5zaWduYWxGaWVsZF9iOWU3NDM3MSwNCiAgICAu c2lnbmFsRmllbGRfYjllNzQzNzEuY29tcGFjdF9iOWU3NDM3MSB7DQogICAgICBkaXNwbGF5 OiAtd2Via2l0LWlubGluZS1ib3g7DQogICAgICBkaXNwbGF5OiAtbXMtaW5saW5lLWZsZXhi b3g7DQogICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsNCiAgICB9DQoNCiAgICAuc2lnbmFs RmllbGRfYjllNzQzNzEud2lkZV9iOWU3NDM3MSB7DQogICAgICBkaXNwbGF5OiAtd2Via2l0 LWJveDsNCiAgICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94Ow0KICAgICAgZGlzcGxheTogZmxl eDsNCiAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7DQogICAgfQ0KDQogICAgLnNpZ25hbEZp ZWxkVmFsdWVfYjllNzQzNzEgew0KICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7DQog ICAgICBvdmVyZmxvdzogaGlkZGVuOw0KICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsNCiAg ICAgIC13ZWJraXQtYm94LWZsZXg6IDE7DQogICAgICAtbXMtZmxleDogMSAxIGF1dG87DQog ICAgICBmbGV4OiAxIDEgYXV0bzsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0ibHRyIl0gLnNp Z25hbEZpZWxkVmFsdWVfYjllNzQzNzEgew0KICAgICAgdGV4dC1hbGlnbjogbGVmdDsNCiAg ICB9DQoNCiAgICBodG1sW2Rpcj0icnRsIl0gLnNpZ25hbEZpZWxkVmFsdWVfYjllNzQzNzEg ew0KICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7DQogICAgfQ0KICA8L3N0eWxlPg0KICA8c3R5 bGUgZGF0YS1sb2FkLXRoZW1lZC1zdHlsZXM9InRydWUiPg0KICAgIC5yb290X2Y5OWU4MDNj IHsNCiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgICAgIHdpZHRoOiAxMDAlOw0KICAg ICAgaGVpZ2h0OiAxMDAlOw0KICAgICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6ICJ0 b3VjaCI7DQogICAgfQ0KICA8L3N0eWxlPg0KICA8c3R5bGUgZGF0YS1sb2FkLXRoZW1lZC1z dHlsZXM9InRydWUiPg0KICAgIC5yb290XzRkYTM4NDQyIHsNCiAgICAgIGRpc3BsYXk6IGZs ZXg7DQogICAgICBhbGlnbi1pdGVtczogY2VudGVyOw0KICAgIH0NCg0KICAgIC5yb3dfNGRh Mzg0NDIgew0KICAgICAgaGVpZ2h0OiA4MHB4Ow0KICAgIH0NCg0KICAgIC5sb2FkTW9yZUl0 ZW1zQnV0dG9uXzRkYTM4NDQyIHsNCiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7DQogICAgfQ0K DQogICAgW2Rpcj0ibHRyIl0gLmxvYWRNb3JlSXRlbXNCdXR0b25fNGRhMzg0NDIgew0KICAg ICAgcGFkZGluZy1sZWZ0OiA1NnB4Ow0KICAgIH0NCg0KICAgIFtkaXI9InJ0bCJdIC5sb2Fk TW9yZUl0ZW1zQnV0dG9uXzRkYTM4NDQyIHsNCiAgICAgIHBhZGRpbmctcmlnaHQ6IDU2cHg7 DQogICAgfQ0KDQogICAgW2Rpcj0ibHRyIl0gLnNwaW5uZXJfNGRhMzg0NDIgew0KICAgICAg cGFkZGluZy1sZWZ0OiA2MHB4Ow0KICAgIH0NCg0KICAgIFtkaXI9InJ0bCJdIC5zcGlubmVy XzRkYTM4NDQyIHsNCiAgICAgIHBhZGRpbmctcmlnaHQ6IDYwcHg7DQogICAgfQ0KDQogICAg LnRpbGVfNGRhMzg0NDIgew0KICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICAgdG9w OiAwOw0KICAgICAgbGVmdDogMDsNCiAgICAgIGJvdHRvbTogMDsNCiAgICAgIHJpZ2h0OiAw Ow0KICAgIH0NCiAgPC9zdHlsZT4NCiAgPHN0eWxlIGRhdGEtbG9hZC10aGVtZWQtc3R5bGVz PSJ0cnVlIj4NCiAgICAuaXRlbVNldERldGFpbHNMaXN0Xzk4MDhjZDExIC5tcy1EZXRhaWxz Um93LWNlbGwgZGl2IHsNCiAgICAgIGRpc3BsYXk6IGZsZXg7DQogICAgICBhbGlnbi1pdGVt czogY2VudGVyOw0KICAgICAgaGVpZ2h0OiAxMDAlOw0KICAgIH0NCiAgPC9zdHlsZT4NCiAg PHN0eWxlIGRhdGEtbG9hZC10aGVtZWQtc3R5bGVzPSJ0cnVlIj4NCiAgICBbZGlyPSJsdHIi XSAuYnJlYWRjcnVtYlNob3J0Y3V0SWNvbl9mNzI0M2MwMyB7DQogICAgICBwYWRkaW5nLXJp Z2h0OiA4cHg7DQogICAgfQ0KDQogICAgW2Rpcj0icnRsIl0gLmJyZWFkY3J1bWJTaG9ydGN1 dEljb25fZjcyNDNjMDMgew0KICAgICAgcGFkZGluZy1sZWZ0OiA4cHg7DQogICAgfQ0KICA8 L3N0eWxlPg0KICA8c3R5bGUgZGF0YS1sb2FkLXRoZW1lZC1zdHlsZXM9InRydWUiPg0KICAg IC5pbWFnZV85ODBhYjcyMCB7DQogICAgICBkaXNwbGF5OiBibG9jazsNCiAgICB9DQogIDwv c3R5bGU+DQogIDxzdHlsZSBkYXRhLWxvYWQtdGhlbWVkLXN0eWxlcz0idHJ1ZSI+DQogICAg LnJvb3RfMWIxMjAzNjEgew0KICAgICAgZGlzcGxheTogYmxvY2s7DQogICAgfQ0KDQogICAg LnNob3dBbGxDZWxsXzFiMTIwMzYxIHsNCiAgICAgIHBvc2l0aW9uOiAicmVsYXRpdmUiOw0K ICAgICAgcGFkZGluZzogIjEwcHggODRweCI7DQogICAgICBjdXJzb3I6ICJwb2ludGVyIjsN CiAgICB9DQogIDwvc3R5bGU+DQogIDxzdHlsZSBkYXRhLWxvYWQtdGhlbWVkLXN0eWxlcz0i dHJ1ZSI+DQogICAgLnRhcmdldF84YmJhZTkwZiB7DQogICAgICBkaXNwbGF5OiBibG9jazsN CiAgICB9DQoNCiAgICAuaG9zdF84YmJhZTkwZiB7DQogICAgICBwb3NpdGlvbjogYWJzb2x1 dGU7DQogICAgICBsZWZ0OiAwOw0KICAgICAgcmlnaHQ6IDA7DQogICAgICBib3R0b206IDA7 DQogICAgICB0b3A6IDA7DQogICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsNCiAgICB9DQog IDwvc3R5bGU+DQogIDxzdHlsZSBkYXRhLWxvYWQtdGhlbWVkLXN0eWxlcz0idHJ1ZSI+DQog ICAgLmNsaWNrYWJsZVNoYXJlZEZpZWxkXzA4NTBjZDM1IHsNCiAgICAgIGN1cnNvcjogcG9p bnRlcjsNCiAgICB9DQoNCiAgICAuY2xpY2thYmxlU2hhcmVkRmllbGRfMDg1MGNkMzU6aG92 ZXIgew0KICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7DQogICAgfQ0KDQogICAg LnNoYXJlZEZpZWxkUmVuZGVyXzA4NTBjZDM1IHsNCiAgICAgIHRleHQtZGVjb3JhdGlvbjog bm9uZTsNCiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOw0KICAgICAgb3ZlcmZsb3c6 IGhpZGRlbjsNCiAgICB9DQoNCiAgICAuc2hhcmVkRmllbGRSZW5kZXJfMDg1MGNkMzU+aSB7 DQogICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOw0KICAgIH0NCg0KICAgIC5vZC1JdGVt U2V0RGV0YWlsc0xpc3RWMiAuc2hhcmVkRmllbGRSZW5kZXJfMDg1MGNkMzU+aSB7DQogICAg ICBwYWRkaW5nLXRvcDogMXB4Ow0KICAgIH0NCg0KICAgIFtkaXI9Imx0ciJdIC5vZC1JdGVt U2V0RGV0YWlsc0xpc3RWMiAuc2hhcmVkRmllbGRSZW5kZXJfMDg1MGNkMzU+aSB7DQogICAg ICBwYWRkaW5nLXJpZ2h0OiA0cHg7DQogICAgfQ0KDQogICAgW2Rpcj0icnRsIl0gLm9kLUl0 ZW1TZXREZXRhaWxzTGlzdFYyIC5zaGFyZWRGaWVsZFJlbmRlcl8wODUwY2QzNT5pIHsNCiAg ICAgIHBhZGRpbmctbGVmdDogNHB4Ow0KICAgIH0NCg0KICAgIC5zaGFyZWRGaWVsZFBsYWNl SG9sZGVyXzA4NTBjZDM1IHsNCiAgICAgIHBhZGRpbmc6IDAgNnB4Ow0KICAgIH0NCiAgPC9z dHlsZT4NCiAgPHN0eWxlIGRhdGEtbG9hZC10aGVtZWQtc3R5bGVzPSJ0cnVlIj4NCiAgICAu bmFtZURpYWxvZ0Rlc2NyaXB0aW9uX2FkNGM2MDcwIHsNCiAgICAgIGJhY2tncm91bmQ6ICNk ZWVjZjk7DQogICAgICBoZWlnaHQ6IDQwcHg7DQogICAgICBkaXNwbGF5OiBmbGV4Ow0KICAg ICAgcGFkZGluZzogOHB4IDEycHg7DQogICAgICBtYXJnaW4tYm90dG9tOiAxMHB4Ow0KICAg ICAgb3ZlcmZsb3c6IGhpZGRlbjsNCiAgICAgIGFuaW1hdGlvbi1uYW1lOiBvcGVuQW5pbWF0 aW9uX2FkNGM2MDcwOw0KICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiA3NTBtczsNCiAgICAg IGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7DQogICAgICBib3JkZXItcmFkaXVzOiA0cHg7 DQogICAgfQ0KDQogICAgQGtleWZyYW1lcyBvcGVuQW5pbWF0aW9uX2FkNGM2MDcwIHsNCiAg ICAgIGZyb20gew0KICAgICAgICBtaW4taGVpZ2h0OiAwOw0KICAgICAgICBtYXgtaGVpZ2h0 OiAwOw0KICAgICAgfQ0KDQogICAgICB0byB7DQogICAgICAgIG1pbi1oZWlnaHQ6IDMycHg7 DQogICAgICAgIG1heC1oZWlnaHQ6IDY0cHg7DQogICAgICB9DQogICAgfQ0KDQogICAgLm5h bWVEaWFsb2dEZXNjcmlwdGlvbkljb25fYWQ0YzYwNzAgew0KICAgICAgY29sb3I6ICM2MDVl NWM7DQogICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsNCiAgICAgIHBhZGRpbmc6IDVweCA2 cHggMCAycHg7DQogICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7DQogICAgICBoZWlnaHQ6IDMy cHg7DQogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7DQogICAgICBkaXNwbGF5OiBmbGV4Ow0K ICAgICAgZmxleC13cmFwOiBub3dyYXA7DQogICAgICBmbGV4LXNocmluazogMDsNCiAgICAg IGZvbnQtc2l6ZTogMTZweDsNCiAgICAgIGxpbmUtaGVpZ2h0OiAxNnB4Ow0KICAgIH0NCg0K ICAgIC5uYW1lRGlhbG9nRGVzY3JpcHRpb25UZXh0X2FkNGM2MDcwIHsNCiAgICAgIGNvbG9y OiAjMzIzMTMwOw0KICAgICAgcGFkZGluZzogNHB4Ow0KICAgICAgZm9udC1zaXplOiAxMnB4 Ow0KICAgIH0NCiAgPC9zdHlsZT4NCiAgPHN0eWxlIGRhdGEtbG9hZC10aGVtZWQtc3R5bGVz PSJ0cnVlIj4NCiAgICAucm9vdF8wYzgwZGY1MSB7DQogICAgICBkaXNwbGF5OiBpbmxpbmUt ZmxleDsNCiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgICAgIHZlcnRpY2FsLWFsaWdu OiBib3R0b207DQogICAgICBmbGV4LWRpcmVjdGlvbjogcm93Ow0KICAgICAgYWxpZ24taXRl bXM6IGZsZXgtZW5kOw0KICAgIH0NCg0KICAgIC52YXVsdENvdmVySXNTbWFsbF8wYzgwZGY1 MSB7DQogICAgICB3aWR0aDogNzJweDsNCiAgICAgIGhlaWdodDogNTJweDsNCiAgICB9DQoN CiAgICAudmF1bHRDb3ZlcklzTGFyZ2VfMGM4MGRmNTEgew0KICAgICAgd2lkdGg6IDExMnB4 Ow0KICAgICAgaGVpZ2h0OiA4MHB4Ow0KICAgIH0NCg0KICAgIC5jb3Zlcl8wYzgwZGY1MSB7 DQogICAgICBkaXNwbGF5OiBibG9jazsNCiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAg ICAgIHBhZGRpbmctYm90dG9tOiAxMnB4Ow0KICAgICAgbGVmdDogLTNweDsNCiAgICAgIHJp Z2h0OiAtM3B4Ow0KICAgICAgYm90dG9tOiAtNHB4Ow0KICAgIH0NCiAgPC9zdHlsZT4NCiAg PHN0eWxlIGRhdGEtbG9hZC10aGVtZWQtc3R5bGVzPSJ0cnVlIj4NCiAgICAuZmlsZUhhbmRs ZXJGaWxlVHlwZUljb25fOWUxNjk4M2Ugew0KICAgICAgd2lkdGg6IGluaGVyaXQ7DQogICAg ICBoZWlnaHQ6IGluaGVyaXQ7DQogICAgfQ0KICA8L3N0eWxlPg0KICA8c3R5bGUgZGF0YS1s b2FkLXRoZW1lZC1zdHlsZXM9InRydWUiPg0KICAgIC5JRnJhbWVEaWFsb2dfMDljOTM4ZmYg Lm1zLURpYWxvZy1tYWluIHsNCiAgICAgIHdpZHRoOiAxMDAlOw0KICAgICAgbWF4LXdpZHRo OiA2MDBweDsNCiAgICB9DQoNCiAgICAuSUZyYW1lRGlhbG9nXzA5YzkzOGZmIGlmcmFtZSB7 DQogICAgICBib3JkZXI6IG5vbmU7DQogICAgICB3aWR0aDogMTAwJTsNCiAgICB9DQogIDwv c3R5bGU+DQogIDxzdHlsZSBkYXRhLWxvYWQtdGhlbWVkLXN0eWxlcz0idHJ1ZSI+DQogICAg Lmljb25Db250YWluZXJfNzNkOTE3Njkgew0KICAgICAgcG9zaXRpb246IHJlbGF0aXZlOw0K ICAgICAgZm9udC1zaXplOiAxNnB4Ow0KICAgICAgbWFyZ2luOiAwIDRweDsNCiAgICAgIGhl aWdodDogMTZweDsNCiAgICAgIHdpZHRoOiAxNnB4Ow0KICAgIH0NCg0KICAgIC5icmFuZElj b25fNzNkOTE3Njkgew0KICAgICAgcG9zaXRpb246IHJlbGF0aXZlOw0KICAgICAgbWFyZ2lu OiAwIDRweDsNCiAgICAgIGhlaWdodDogMTZweDsNCiAgICAgIHdpZHRoOiAxNnB4Ow0KICAg IH0NCg0KICAgIC5icmFuZEljb25fNzNkOTE3NjkgaW1nIHsNCiAgICAgIGRpc3BsYXk6IGJs b2NrOw0KICAgIH0NCg0KICAgIC5tZW51SXRlbUljb25Db250YWluZXJfNzNkOTE3Njkgew0K ICAgICAgcG9zaXRpb246IHJlbGF0aXZlOw0KICAgICAgbWFyZ2luOiAwIDRweDsNCiAgICAg IGhlaWdodDogMzZweDsNCiAgICAgIGxpbmUtaGVpZ2h0OiAzNnB4Ow0KICAgICAgd2lkdGg6 IDE0cHg7DQogICAgfQ0KDQogICAgLmxvZ29GaWxsSWNvbl83M2Q5MTc2OSwNCiAgICAubG9n b0ljb25fNzNkOTE3Njkgew0KICAgICAgaGVpZ2h0OiAxMDAlOw0KICAgICAgcG9zaXRpb246 IGFic29sdXRlOw0KICAgICAgbGVmdDogMDsNCiAgICAgIHJpZ2h0OiAwOw0KICAgIH0NCg0K ICAgIC5sb2dvRmlsbEljb25fNzNkOTE3NjlbZGF0YS1pY29uLW5hbWU9IkV4Y2VsTG9nbzE2 Il0sDQogICAgLmxvZ29JY29uXzczZDkxNzY5W2RhdGEtaWNvbi1uYW1lPSJFeGNlbExvZ28x NiJdIHsNCiAgICAgIGNvbG9yOiAjMjE3MzQ2Ow0KICAgIH0NCg0KICAgIC5sb2dvRmlsbElj b25fNzNkOTE3NjlbZGF0YS1pY29uLW5hbWU9Ik9uZU5vdGVMb2dvMTYiXSwNCiAgICAubG9n b0ljb25fNzNkOTE3NjlbZGF0YS1pY29uLW5hbWU9Ik9uZU5vdGVMb2dvMTYiXSB7DQogICAg ICBjb2xvcjogIzVjMmQ5MTsNCiAgICB9DQoNCiAgICAubG9nb0ZpbGxJY29uXzczZDkxNzY5 W2RhdGEtaWNvbi1uYW1lPSJQb3dlclBvaW50TG9nbzE2Il0sDQogICAgLmxvZ29JY29uXzcz ZDkxNzY5W2RhdGEtaWNvbi1uYW1lPSJQb3dlclBvaW50TG9nbzE2Il0gew0KICAgICAgY29s b3I6ICNkMjQ3MjY7DQogICAgfQ0KDQogICAgLmxvZ29GaWxsSWNvbl83M2Q5MTc2OVtkYXRh LWljb24tbmFtZT0iV29yZExvZ28xNiJdLA0KICAgIC5sb2dvSWNvbl83M2Q5MTc2OVtkYXRh LWljb24tbmFtZT0iV29yZExvZ28xNiJdIHsNCiAgICAgIGNvbG9yOiAjMmI1NzlhOw0KICAg IH0NCg0KICAgIC5sb2dvRmlsbEljb25fNzNkOTE3NjlbZGF0YS1pY29uLW5hbWU9IlZpc2lv TG9nbzE2Il0sDQogICAgLmxvZ29JY29uXzczZDkxNzY5W2RhdGEtaWNvbi1uYW1lPSJWaXNp b0xvZ28xNiJdIHsNCiAgICAgIGNvbG9yOiAjMzg1NGEyOw0KICAgIH0NCg0KICAgIC5sb2dv RmlsbEljb25fNzNkOTE3Njkgew0KICAgICAgY29sb3I6ICNmZmY7DQogICAgfQ0KDQogICAg LmNvbnRleHR1YWxNZW51SXRlbUxpbmtDb250ZW50XzczZDkxNzY5IHsNCiAgICAgIHdoaXRl LXNwYWNlOiBub3dyYXA7DQogICAgICBoZWlnaHQ6IGluaGVyaXQ7DQogICAgICBkaXNwbGF5 OiBmbGV4Ow0KICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAgICAgIG1heC13aWR0aDog MTAwJTsNCiAgICB9DQoNCiAgICAuY29udGV4dHVhbE1lbnVJdGVtVGV4dExhYmVsXzczZDkx NzY5IHsNCiAgICAgIG1hcmdpbjogMCA0cHg7DQogICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlk ZGxlOw0KICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOw0KICAgICAgZmxleC1ncm93OiAx Ow0KICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7DQogICAgICBvdmVyZmxvdzogaGlk ZGVuOw0KICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsNCiAgICB9DQogIDwvc3R5bGU+DQog IDxzdHlsZSBkYXRhLWxvYWQtdGhlbWVkLXN0eWxlcz0idHJ1ZSI+DQogICAgW2RhdGEtdGhl bWU9ImZsdWVudC1saWdodCJdIHsNCiAgICAgIC0tZ2xvYmFsQ29sb3JCcmFuZDQwOiAjMGMz YjVlOw0KICAgICAgLS1nbG9iYWxDb2xvckJyYW5kNjA6ICMwZjU0OGM7DQogICAgICAtLWds b2JhbENvbG9yQnJhbmQ3MDogIzExNWVhMzsNCiAgICAgIC0tZ2xvYmFsQ29sb3JCcmFuZDgw OiAjMGY2Y2JkOw0KICAgICAgLS1nbG9iYWxDb2xvckJyYW5kOTA6ICMyODg2ZGU7DQogICAg ICAtLWdsb2JhbENvbG9yQnJhbmQxMDA6ICM0NzllZjU7DQogICAgICAtLWdsb2JhbENvbG9y QnJhbmQxMzA6ICM5NmM2ZmE7DQogICAgICAtLWdsb2JhbENvbG9yQnJhbmQxNDA6ICNiNGQ2 ZmE7DQogICAgICAtLWdsb2JhbENvbG9yQnJhbmQxNTA6ICNjZmU0ZmE7DQogICAgICAtLWds b2JhbENvbG9yQnJhbmQxNjA6ICNlYmYzZmM7DQogICAgICAtLWdsb2JhbENvbG9yR3JleTE0 OiAjMjQyNDI0Ow0KICAgICAgLS1nbG9iYWxDb2xvckdyZXkyMDogIzMzMzMzMzsNCiAgICAg IC0tZ2xvYmFsQ29sb3JHcmV5MjY6ICM0MjQyNDI7DQogICAgICAtLWdsb2JhbENvbG9yR3Jl eTM4OiAjNjE2MTYxOw0KICAgICAgLS1nbG9iYWxDb2xvckdyZXk0NDogIzcwNzA3MDsNCiAg ICAgIC0tZ2xvYmFsQ29sb3JHcmV5NzA6ICNiM2IzYjM7DQogICAgICAtLWdsb2JhbENvbG9y R3JleTc0OiAjYmRiZGJkOw0KICAgICAgLS1nbG9iYWxDb2xvckdyZXk3ODogI2M3YzdjNzsN CiAgICAgIC0tZ2xvYmFsQ29sb3JHcmV5ODI6ICNkMWQxZDE7DQogICAgICAtLWdsb2JhbENv bG9yR3JleTg0OiAjZDZkNmQ2Ow0KICAgICAgLS1nbG9iYWxDb2xvckdyZXk4ODogI2UwZTBl MDsNCiAgICAgIC0tZ2xvYmFsQ29sb3JHcmV5OTI6ICNlYmViZWI7DQogICAgICAtLWdsb2Jh bENvbG9yR3JleTk0OiAjZjBmMGYwOw0KICAgICAgLS1nbG9iYWxDb2xvckdyZXk5NjogI2Y1 ZjVmNTsNCiAgICAgIC0tZ2xvYmFsQ29sb3JHcmV5OTg6ICNmYWZhZmE7DQogICAgICAtLWds b2JhbENvbG9yQmxhY2tBbHBoYTEwOiAjMDAwMDAwMWE7DQogICAgICAtLWdsb2JhbENvbG9y QmxhY2s6ICMwMDAwMDA7DQogICAgICAtLWdsb2JhbENvbG9yV2hpdGU6ICNmZmZmZmY7DQog ICAgICAtLWNvbG9yQnJhbmRGb3JlZ3JvdW5kMTogdmFyKC0tZ2xvYmFsQ29sb3JCcmFuZDgw KTsNCiAgICAgIC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZDI6IHZhcigtLWdsb2JhbENvbG9y R3JleTI2KTsNCiAgICAgIC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZDM6IHZhcigtLWdsb2Jh bENvbG9yR3JleTM4KTsNCiAgICAgIC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZDNIb3Zlcjog dmFyKC0tZ2xvYmFsQ29sb3JHcmV5MjYpOw0KICAgICAgLS1jb2xvck5ldXRyYWxGb3JlZ3Jv dW5kNDogdmFyKC0tZ2xvYmFsQ29sb3JHcmV5NDQpOw0KICAgICAgLS1jb2xvck5ldXRyYWxG b3JlZ3JvdW5kRGlzYWJsZWQ6IHZhcigtLWdsb2JhbENvbG9yR3JleTc0KTsNCiAgICAgIC0t Y29sb3JCcmFuZEZvcmVncm91bmRMaW5rOiB2YXIoLS1nbG9iYWxDb2xvckJyYW5kNzApOw0K ICAgICAgLS1jb2xvckJyYW5kRm9yZWdyb3VuZExpbmtIb3ZlcjogdmFyKC0tZ2xvYmFsQ29s b3JCcmFuZDYwKTsNCiAgICAgIC0tY29sb3JCcmFuZEZvcmVncm91bmRMaW5rUHJlc3NlZDog dmFyKC0tZ2xvYmFsQ29sb3JCcmFuZDQwKTsNCiAgICAgIC0tY29sb3JCcmFuZEZvcmVncm91 bmRMaW5rU2VsZWN0ZWQ6IHZhcigtLWdsb2JhbENvbG9yQnJhbmQ3MCk7DQogICAgICAtLWNv bG9yQ29tcG91bmRCcmFuZEZvcmVncm91bmQxOiB2YXIoLS1nbG9iYWxDb2xvckJyYW5kODAp Ow0KICAgICAgLS1jb2xvckNvbXBvdW5kQnJhbmRGb3JlZ3JvdW5kMUhvdmVyOiB2YXIoLS1n bG9iYWxDb2xvckJyYW5kNzApOw0KICAgICAgLS1jb2xvckNvbXBvdW5kQnJhbmRGb3JlZ3Jv dW5kMVByZXNzZWQ6IHZhcigtLWdsb2JhbENvbG9yQnJhbmQ2MCk7DQogICAgICAtLWNvbG9y TmV1dHJhbEZvcmVncm91bmRJbnZlcnRlZDogdmFyKC0tZ2xvYmFsQ29sb3JXaGl0ZSk7DQog ICAgICAtLWNvbG9yTmV1dHJhbEZvcmVncm91bmRJbnZlcnRlZExpbms6IHZhcigtLWdsb2Jh bENvbG9yV2hpdGUpOw0KICAgICAgLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kMTogdmFyKC0t Z2xvYmFsQ29sb3JHcmV5MTQpOw0KICAgICAgLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kMkhv dmVyOiB2YXIoLS1nbG9iYWxDb2xvckdyZXkxNCk7DQogICAgICAtLWNvbG9yTmV1dHJhbEZv cmVncm91bmQyUHJlc3NlZDogdmFyKC0tZ2xvYmFsQ29sb3JHcmV5MTQpOw0KICAgICAgLS1j b2xvck5ldXRyYWxGb3JlZ3JvdW5kMkJyYW5kUHJlc3NlZDogdmFyKC0tZ2xvYmFsQ29sb3JC cmFuZDkwKTsNCiAgICAgIC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZE9uQnJhbmQ6IHZhcigt LWdsb2JhbENvbG9yV2hpdGUpOw0KICAgICAgLS1jb2xvck5ldXRyYWxCYWNrZ3JvdW5kU3Rh dGljOiB2YXIoLS1nbG9iYWxDb2xvckdyZXkyMCk7DQogICAgICAtLWNvbG9yTmV1dHJhbEJh Y2tncm91bmQxUHJlc3NlZDogdmFyKC0tZ2xvYmFsQ29sb3JHcmV5ODgpOw0KICAgICAgLS1j b2xvck5ldXRyYWxCYWNrZ3JvdW5kM0hvdmVyOiB2YXIoLS1nbG9iYWxDb2xvckdyZXk5Mik7 DQogICAgICAtLWNvbG9yTmV1dHJhbEJhY2tncm91bmQzUHJlc3NlZDogdmFyKC0tZ2xvYmFs Q29sb3JHcmV5ODQpOw0KICAgICAgLS1jb2xvck5ldXRyYWxCYWNrZ3JvdW5kMTogdmFyKC0t Z2xvYmFsQ29sb3JXaGl0ZSk7DQogICAgICAtLWNvbG9yTmV1dHJhbEJhY2tncm91bmQyOiB2 YXIoLS1nbG9iYWxDb2xvckdyZXk5OCk7DQogICAgICAtLWNvbG9yTmV1dHJhbEJhY2tncm91 bmQzOiB2YXIoLS1nbG9iYWxDb2xvckdyZXk5Nik7DQogICAgICAtLWNvbG9yTmV1dHJhbEJh Y2tncm91bmQ0OiB2YXIoLS1nbG9iYWxDb2xvckdyZXk5NCk7DQogICAgICAtLWNvbG9yTmV1 dHJhbEJhY2tncm91bmQ1OiB2YXIoLS1nbG9iYWxDb2xvckdyZXk5Mik7DQogICAgICAtLWNv bG9yTmV1dHJhbEJhY2tncm91bmQ1SG92ZXI6IHZhcigtLWdsb2JhbENvbG9yR3JleTk2KTsN CiAgICAgIC0tY29sb3JOZXV0cmFsQmFja2dyb3VuZDVQcmVzc2VkOiB2YXIoLS1nbG9iYWxD b2xvckdyZXk5NCk7DQogICAgICAtLWNvbG9yVHJhbnNwYXJlbnRCYWNrZ3JvdW5kOiB0cmFu c3BhcmVudDsNCiAgICAgIC0tY29sb3JOZXV0cmFsQmFja2dyb3VuZDFIb3ZlcjogdmFyKC0t Z2xvYmFsQ29sb3JHcmV5OTYpOw0KICAgICAgLS1jb2xvck5ldXRyYWxTdHJva2VEaXNhYmxl ZDogdmFyKC0tZ2xvYmFsQ29sb3JHcmV5ODgpOw0KICAgICAgLS1jb2xvck5ldXRyYWxCYWNr Z3JvdW5kRGlzYWJsZWQ6IHZhcigtLWdsb2JhbENvbG9yR3JleTk0KTsNCiAgICAgIC0tY29s b3JOZXV0cmFsQmFja2dyb3VuZDY6ICNmZmZmZmYzMzsNCiAgICAgIC0tY29sb3JOZXV0cmFs QmFja2dyb3VuZDc6ICNmZmZmZmY0ZDsNCiAgICAgIC0tY29sb3JOZXV0cmFsQmFja2dyb3Vu ZDg6ICNmZmZmZmY2NjsNCiAgICAgIC0tY29sb3JOZXV0cmFsQmFja2dyb3VuZDk6ICM3YzU1 Y2UwZjsNCiAgICAgIC0tY29sb3JOZXV0cmFsQmFja2dyb3VuZDEwOiAjMjhhYmY1MDM7DQog ICAgICAtLWNvbG9yTmV1dHJhbEJhY2tncm91bmQxMTogIzAwMDAwMDBhOw0KICAgICAgLS1j b2xvck5ldXRyYWxCYWNrZ3JvdW5kMTI6ICMwMDAwMDAwYzsNCiAgICAgIC0tY29sb3JOZXV0 cmFsQmFja2dyb3VuZDEzOiAjMDAwMDAwMjg7DQogICAgICAtLWNvbG9yTmV1dHJhbEJhY2tn cm91bmQxNDogIzAwMDAwMDE0Ow0KICAgICAgLS1jb2xvck5ldXRyYWxCYWNrZ3JvdW5kMTU6 ICNkMmQ1ZDY7DQogICAgICAtLWNvbG9yTmV1dHJhbEJhY2tncm91bmQxNzogI2NlY2JkNTsN CiAgICAgIC0tY29sb3JOZXV0cmFsQmFja2dyb3VuZDE2OiAjYzljNmQwOw0KICAgICAgLS1j b2xvck5ldXRyYWxCYWNrZ3JvdW5kMTg6ICNjZGQwZDE7DQogICAgICAtLWNvbG9yTmV1dHJh bEJhY2tncm91bmRBbHBoYTNIb3ZlcjogIzAwMDAwMDBmOw0KICAgICAgLS1jb2xvck5ldXRy YWxEYXJrQmFja2dyb3VuZEFscGhhM1ByZXNzZWQ6IHZhcigtLWdsb2JhbENvbG9yQmxhY2tB bHBoYTEwKTsNCiAgICAgIC0tZm9udFNpemVCYXNlMTAwOiAxMHB4Ow0KICAgICAgLS1mb250 U2l6ZUJhc2UyMDA6IDEycHg7DQogICAgICAtLWZvbnRTaXplQmFzZTMwMDogMTRweDsNCiAg ICAgIC0tZm9udFNpemVCYXNlNDAwOiAxNnB4Ow0KICAgICAgLS1mb250V2VpZ2h0U2VtaWJv bGQ6IDYwMDsNCiAgICAgIC0tYm9yZGVyUmFkaXVzU21hbGw6IDJweDsNCiAgICAgIC0tYm9y ZGVyUmFkaXVzTWVkaXVtOiA0cHg7DQogICAgICAtLWJvcmRlclJhZGl1c0xhcmdlOiA2cHg7 DQogICAgICAtLWJvcmRlclJhZGl1c1hMYXJnZTogOHB4Ow0KICAgICAgLS1ib3JkZXJSYWRp dXNDaXJjdWxhcjogMTAwMDBweDsNCiAgICAgIC0tbGluZUhlaWdodEJhc2UzMDA6IDIwcHg7 DQogICAgICAtLWNvbG9yVHJhbnNwYXJlbnRTdHJva2U6IHRyYW5zcGFyZW50Ow0KICAgICAg LS1jb2xvck5ldXRyYWxTdHJva2UxOiB2YXIoLS1nbG9iYWxDb2xvckdyZXk4Mik7DQogICAg ICAtLWNvbG9yTmV1dHJhbFN0cm9rZTFIb3ZlcjogdmFyKC0tZ2xvYmFsQ29sb3JHcmV5Nzgp Ow0KICAgICAgLS1jb2xvck5ldXRyYWxTdHJva2UxUHJlc3NlZDogdmFyKC0tZ2xvYmFsQ29s b3JHcmV5NzApOw0KICAgICAgLS1jb2xvckJyYW5kQmFja2dyb3VuZDogdmFyKC0tZ2xvYmFs Q29sb3JCcmFuZDgwKTsNCiAgICAgIC0tY29sb3JCcmFuZEJhY2tncm91bmQyOiB2YXIoLS1n bG9iYWxDb2xvckJyYW5kMTYwKTsNCiAgICAgIC0tY29sb3JOZXV0cmFsU3Ryb2tlMzogdmFy KC0tZ2xvYmFsQ29sb3JHcmV5OTQpOw0KICAgICAgLS1jb2xvckJyYW5kQmFja2dyb3VuZDJI b3ZlcjogdmFyKC0tZ2xvYmFsQ29sb3JCcmFuZDE1MCk7DQogICAgICAtLWNvbG9yQnJhbmRC YWNrZ3JvdW5kMlByZXNzZWQ6IHZhcigtLWdsb2JhbENvbG9yQnJhbmQxMzApOw0KICAgICAg LS1jb2xvckJyYW5kQmFja2dyb3VuZEludmVydGVkUHJlc3NlZDogdmFyKC0tZ2xvYmFsQ29s b3JCcmFuZDE0MCk7DQogICAgICAtLWNvbG9yTmV1dHJhbFN0cm9rZTI6IHZhcigtLWdsb2Jh bENvbG9yR3JleTg4KTsNCiAgICAgIC0tY29sb3JOZXV0cmFsU3Ryb2tlQWNjZXNzaWJsZVNl bGVjdGVkOiB2YXIoLS1nbG9iYWxDb2xvckJyYW5kODApOw0KICAgICAgLS1jb2xvckNvbXBv dW5kQnJhbmRTdHJva2U6IHZhcigtLWdsb2JhbENvbG9yQnJhbmQ4MCk7DQogICAgICAtLWNv bG9yQ29tcG91bmRCcmFuZFN0cm9rZUhvdmVyOiB2YXIoLS1nbG9iYWxDb2xvckJyYW5kNzAp Ow0KICAgICAgLS1jb2xvckNvbXBvdW5kQnJhbmRTdHJva2VQcmVzc2VkOiB2YXIoLS1nbG9i YWxDb2xvckJyYW5kNjApOw0KICAgICAgLS1jb2xvclN0cm9rZUZvY3VzMjogdmFyKC0tZ2xv YmFsQ29sb3JCbGFjayk7DQogICAgICAtLWNvbG9yU3Ryb2tlRm9jdXMzOiAjMDAwMDAwMGQ7 DQogICAgICAtLXNoYWRvdzQ6IDAgMCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKSwgMCAycHgg NHB4IHJnYmEoMCwgMCwgMCwgMC4xNCk7DQogICAgICAtLXNoYWRvdzI4OiAwIDAgMnB4IHJn YmEoMCwgMCwgMCwgMC4xMiksIDAgNHB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMTQpOw0KICAg ICAgLS1zaGFkb3dFbGV2YXRpb24yOiAwcHggMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQp LA0KICAgICAgICAwcHggMHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTIpOw0KICAgICAgLS1z aGFkb3dFbGV2YXRpb240OiAwcHggMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMTQpLA0KICAg ICAgICAwcHggMHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTIpOw0KICAgICAgLS1mb250RmFt aWx5QmFzZTogIlNlZ29lIFVJIiwgIlNlZ29lIFVJIFdlYiAoV2VzdCBFdXJvcGVhbikiLA0K ICAgICAgICAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbS0tZm9udCwgUm9ib3RvLCAi SGVsdmV0aWNhIE5ldWUiLA0KICAgICAgICBzYW5zLXNlcmlmOw0KICAgICAgLS1kdXJhdGlv bkZhc3RlcjogMTAwbXM7DQogICAgICAtLWR1cmF0aW9uRmFzdDogMTUwbXM7DQogICAgICAt LWR1cmF0aW9uTm9ybWFsOiAyMDBtczsNCiAgICAgIC0tZHVyYXRpb25TbG93OiAzMDBtczsN CiAgICAgIC0tZHVyYXRpb25TbG93ZXI6IDQwMG1zOw0KICAgICAgLS1jdXJ2ZURlY2VsZXJh dGVNYXg6IGN1YmljLWJlemllcigwLCAwLCAwLCAxKTsNCiAgICAgIC0tY3VydmVFYXN5RWFz ZU1heDogY3ViaWMtYmV6aWVyKDAuOCwgMCwgMC4xLCAxKTsNCiAgICAgIC0tY3VydmVEZWNl bGVyYXRlTWlkOiBjdWJpYy1iZXppZXIoMC4xLCAwLjksIDAuMiwgMSk7DQogICAgICAtLWN1 cnZlRGVjZWxlcmF0ZU1pbjogY3ViaWMtYmV6aWVyKDAuMzMsIDAsIDAuMSwgMSk7DQogICAg fQ0KICA8L3N0eWxlPg0KICA8c3R5bGUgZGF0YS1sb2FkLXRoZW1lZC1zdHlsZXM9InRydWUi Pg0KICAgIFtkYXRhLXRoZW1lPSJmbHVlbnQtZGFyayJdIHsNCiAgICAgIC0tZ2xvYmFsQ29s b3JCcmFuZDEwOiAjMDYxNzI0Ow0KICAgICAgLS1nbG9iYWxDb2xvckJyYW5kMjA6ICMwODIz Mzg7DQogICAgICAtLWdsb2JhbENvbG9yQnJhbmQ0MDogIzBjM2I1ZTsNCiAgICAgIC0tZ2xv YmFsQ29sb3JCcmFuZDcwOiAjMTE1ZWEzOw0KICAgICAgLS1nbG9iYWxDb2xvckJyYW5kOTA6 ICMyODg2ZGU7DQogICAgICAtLWdsb2JhbENvbG9yQnJhbmQxMDA6ICM0NzllZjU7DQogICAg ICAtLWdsb2JhbENvbG9yQnJhbmQxMTA6ICM2MmFiZjU7DQogICAgICAtLWdsb2JhbENvbG9y QnJhbmQxNDA6ICNiNGQ2ZmE7DQogICAgICAtLWdsb2JhbENvbG9yR3JleTQ6ICMwYTBhMGE7 DQogICAgICAtLWdsb2JhbENvbG9yR3JleTg6ICMxNDE0MTQ7DQogICAgICAtLWdsb2JhbENv bG9yR3JleTEyOiAjMWYxZjFmOw0KICAgICAgLS1nbG9iYWxDb2xvckdyZXkxNDogIzI0MjQy NDsNCiAgICAgIC0tZ2xvYmFsQ29sb3JHcmV5MTY6ICMyOTI5Mjk7DQogICAgICAtLWdsb2Jh bENvbG9yR3JleTI0OiAjM2QzZDNkOw0KICAgICAgLS1nbG9iYWxDb2xvckdyZXkzMjogIzUy NTI1MjsNCiAgICAgIC0tZ2xvYmFsQ29sb3JHcmV5MzY6ICM1YzVjNWM7DQogICAgICAtLWds b2JhbENvbG9yR3JleTQwOiAjNjY2NjY2Ow0KICAgICAgLS1nbG9iYWxDb2xvckdyZXk0Mjog IzZiNmI2YjsNCiAgICAgIC0tZ2xvYmFsQ29sb3JHcmV5NDY6ICM3NTc1NzU7DQogICAgICAt LWdsb2JhbENvbG9yR3JleTYwOiAjOTk5OTk5Ow0KICAgICAgLS1nbG9iYWxDb2xvckdyZXk2 ODogI2FkYWRhZDsNCiAgICAgIC0tZ2xvYmFsQ29sb3JHcmV5ODQ6ICNkNmQ2ZDY7DQogICAg ICAtLWdsb2JhbENvbG9yV2hpdGVBbHBoYTEwOiAjZmZmZmZmMWE7DQogICAgICAtLWdsb2Jh bENvbG9yV2hpdGU6ICNmZmZmZmY7DQogICAgICAtLWdsb2JhbENvbG9yQmxhY2s6ICMwMDAw MDA7DQogICAgICAtLWNvbG9yQnJhbmRGb3JlZ3JvdW5kMTogdmFyKC0tZ2xvYmFsQ29sb3JC cmFuZDEwMCk7DQogICAgICAtLWNvbG9yQnJhbmRGb3JlZ3JvdW5kTGluazogdmFyKC0tZ2xv YmFsQ29sb3JCcmFuZDEwMCk7DQogICAgICAtLWNvbG9yQnJhbmRGb3JlZ3JvdW5kTGlua0hv dmVyOiB2YXIoLS1nbG9iYWxDb2xvckJyYW5kMTEwKTsNCiAgICAgIC0tY29sb3JCcmFuZEZv cmVncm91bmRMaW5rUHJlc3NlZDogdmFyKC0tZ2xvYmFsQ29sb3JCcmFuZDkwKTsNCiAgICAg IC0tY29sb3JCcmFuZEZvcmVncm91bmRMaW5rU2VsZWN0ZWQ6IHZhcigtLWdsb2JhbENvbG9y QnJhbmQxMDApOw0KICAgICAgLS1jb2xvckNvbXBvdW5kQnJhbmRGb3JlZ3JvdW5kMTogdmFy KC0tZ2xvYmFsQ29sb3JCcmFuZDEwMCk7DQogICAgICAtLWNvbG9yQ29tcG91bmRCcmFuZEZv cmVncm91bmQxSG92ZXI6IHZhcigtLWdsb2JhbENvbG9yQnJhbmQxMTApOw0KICAgICAgLS1j b2xvckNvbXBvdW5kQnJhbmRGb3JlZ3JvdW5kMVByZXNzZWQ6IHZhcigtLWdsb2JhbENvbG9y QnJhbmQ5MCk7DQogICAgICAtLWNvbG9yTmV1dHJhbEZvcmVncm91bmRJbnZlcnRlZDogdmFy KC0tZ2xvYmFsQ29sb3JHcmV5MTQpOw0KICAgICAgLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5k SW52ZXJ0ZWRMaW5rOiB2YXIoLS1nbG9iYWxDb2xvcldoaXRlKTsNCiAgICAgIC0tY29sb3JO ZXV0cmFsRm9yZWdyb3VuZDE6IHZhcigtLWdsb2JhbENvbG9yV2hpdGUpOw0KICAgICAgLS1j b2xvck5ldXRyYWxGb3JlZ3JvdW5kMjogdmFyKC0tZ2xvYmFsQ29sb3JHcmV5ODQpOw0KICAg ICAgLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kRGlzYWJsZWQ6IHZhcigtLWdsb2JhbENvbG9y R3JleTM2KTsNCiAgICAgIC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZDJCcmFuZFByZXNzZWQ6 IHZhcigtLWdsb2JhbENvbG9yQnJhbmQ5MCk7DQogICAgICAtLWNvbG9yTmV1dHJhbEZvcmVn cm91bmQySG92ZXI6IHZhcigtLWdsb2JhbENvbG9yV2hpdGUpOw0KICAgICAgLS1jb2xvck5l dXRyYWxGb3JlZ3JvdW5kMlByZXNzZWQ6IHZhcigtLWdsb2JhbENvbG9yV2hpdGUpOw0KICAg ICAgLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kMzogdmFyKC0tZ2xvYmFsQ29sb3JHcmV5Njgp Ow0KICAgICAgLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kM0hvdmVyOiB2YXIoLS1nbG9iYWxD b2xvckdyZXk4NCk7DQogICAgICAtLWNvbG9yTmV1dHJhbEZvcmVncm91bmQ0OiB2YXIoLS1n bG9iYWxDb2xvckdyZXk2MCk7DQogICAgICAtLWNvbG9yTmV1dHJhbEZvcmVncm91bmRPbkJy YW5kOiB2YXIoLS1nbG9iYWxDb2xvcldoaXRlKTsNCiAgICAgIC0tY29sb3JCcmFuZEJhY2tn cm91bmQ6IHZhcigtLWdsb2JhbENvbG9yQnJhbmQ3MCk7DQogICAgICAtLWNvbG9yTmV1dHJh bEJhY2tncm91bmRTdGF0aWM6IHZhcigtLWdsb2JhbENvbG9yR3JleTI0KTsNCiAgICAgIC0t Y29sb3JOZXV0cmFsQmFja2dyb3VuZDFQcmVzc2VkOiB2YXIoLS1nbG9iYWxDb2xvckdyZXkx Mik7DQogICAgICAtLWNvbG9yTmV1dHJhbEJhY2tncm91bmQzSG92ZXI6IHZhcigtLWdsb2Jh bENvbG9yR3JleTE2KTsNCiAgICAgIC0tY29sb3JOZXV0cmFsQmFja2dyb3VuZDNQcmVzc2Vk OiB2YXIoLS1nbG9iYWxDb2xvckdyZXk0KTsNCiAgICAgIC0tY29sb3JOZXV0cmFsQmFja2dy b3VuZDE6IHZhcigtLWdsb2JhbENvbG9yR3JleTE2KTsNCiAgICAgIC0tY29sb3JOZXV0cmFs QmFja2dyb3VuZDI6IHZhcigtLWdsb2JhbENvbG9yR3JleTEyKTsNCiAgICAgIC0tY29sb3JO ZXV0cmFsQmFja2dyb3VuZDM6IHZhcigtLWdsb2JhbENvbG9yR3JleTgpOw0KICAgICAgLS1j b2xvck5ldXRyYWxCYWNrZ3JvdW5kNDogdmFyKC0tZ2xvYmFsQ29sb3JHcmV5NCk7DQogICAg ICAtLWNvbG9yTmV1dHJhbEJhY2tncm91bmQ1OiB2YXIoLS1nbG9iYWxDb2xvckJsYWNrKTsN CiAgICAgIC0tY29sb3JOZXV0cmFsQmFja2dyb3VuZDVIb3ZlcjogdmFyKC0tZ2xvYmFsQ29s b3JHcmV5OCk7DQogICAgICAtLWNvbG9yTmV1dHJhbEJhY2tncm91bmQ1UHJlc3NlZDogdmFy KC0tZ2xvYmFsQ29sb3JHcmV5Mik7DQogICAgICAtLWNvbG9yVHJhbnNwYXJlbnRCYWNrZ3Jv dW5kOiB0cmFuc3BhcmVudDsNCiAgICAgIC0tY29sb3JOZXV0cmFsQmFja2dyb3VuZDFIb3Zl cjogdmFyKC0tZ2xvYmFsQ29sb3JHcmV5MjQpOw0KICAgICAgLS1jb2xvck5ldXRyYWxCYWNr Z3JvdW5kRGlzYWJsZWQ6IHZhcigtLWdsb2JhbENvbG9yR3JleTgpOw0KICAgICAgLS1jb2xv ck5ldXRyYWxCYWNrZ3JvdW5kNjogIzAwMDAwMDMzOw0KICAgICAgLS1jb2xvck5ldXRyYWxC YWNrZ3JvdW5kNzogIzAwMDAwMDRkOw0KICAgICAgLS1jb2xvck5ldXRyYWxCYWNrZ3JvdW5k ODogIzAwMDAwMDY2Ow0KICAgICAgLS1jb2xvck5ldXRyYWxCYWNrZ3JvdW5kQWxwaGEzSG92 ZXI6ICNmZmZmZmYwZjsNCiAgICAgIC0tY29sb3JOZXV0cmFsRGFya0JhY2tncm91bmRBbHBo YTNQcmVzc2VkOiB2YXIoLS1nbG9iYWxDb2xvcldoaXRlQWxwaGExMCk7DQogICAgICAtLWZv bnRTaXplQmFzZTEwMDogMTBweDsNCiAgICAgIC0tZm9udFNpemVCYXNlMjAwOiAxMnB4Ow0K ICAgICAgLS1mb250U2l6ZUJhc2UzMDA6IDE0cHg7DQogICAgICAtLWZvbnRTaXplQmFzZTQw MDogMTZweDsNCiAgICAgIC0tZm9udFdlaWdodFNlbWlib2xkOiA2MDA7DQogICAgICAtLWJv cmRlclJhZGl1c1NtYWxsOiAycHg7DQogICAgICAtLWJvcmRlclJhZGl1c01lZGl1bTogNHB4 Ow0KICAgICAgLS1ib3JkZXJSYWRpdXNMYXJnZTogNnB4Ow0KICAgICAgLS1ib3JkZXJSYWRp dXNYTGFyZ2U6IDhweDsNCiAgICAgIC0tYm9yZGVyUmFkaXVzQ2lyY3VsYXI6IDEwMDAwcHg7 DQogICAgICAtLWxpbmVIZWlnaHRCYXNlMzAwOiAyMHB4Ow0KICAgICAgLS1jb2xvclRyYW5z cGFyZW50U3Ryb2tlOiB0cmFuc3BhcmVudDsNCiAgICAgIC0tY29sb3JOZXV0cmFsU3Ryb2tl MTogdmFyKC0tZ2xvYmFsQ29sb3JHcmV5NDApOw0KICAgICAgLS1jb2xvck5ldXRyYWxTdHJv a2UxSG92ZXI6IHZhcigtLWdsb2JhbENvbG9yR3JleTQ2KTsNCiAgICAgIC0tY29sb3JOZXV0 cmFsU3Ryb2tlMVByZXNzZWQ6IHZhcigtLWdsb2JhbENvbG9yR3JleTQyKTsNCiAgICAgIC0t Y29sb3JCcmFuZEJhY2tncm91bmQyOiB2YXIoLS1nbG9iYWxDb2xvckJyYW5kMjApOw0KICAg ICAgLS1jb2xvck5ldXRyYWxTdHJva2UzOiB2YXIoLS1nbG9iYWxDb2xvckdyZXkyNCk7DQog ICAgICAtLWNvbG9yQnJhbmRCYWNrZ3JvdW5kMkhvdmVyOiB2YXIoLS1nbG9iYWxDb2xvckJy YW5kNDApOw0KICAgICAgLS1jb2xvckJyYW5kQmFja2dyb3VuZDJQcmVzc2VkOiB2YXIoLS1n bG9iYWxDb2xvckJyYW5kMTApOw0KICAgICAgLS1jb2xvckJyYW5kQmFja2dyb3VuZEludmVy dGVkUHJlc3NlZDogdmFyKC0tZ2xvYmFsQ29sb3JCcmFuZDE0MCk7DQogICAgICAtLWNvbG9y TmV1dHJhbFN0cm9rZTI6IHZhcigtLWdsb2JhbENvbG9yR3JleTMyKTsNCiAgICAgIC0tY29s b3JOZXV0cmFsU3Ryb2tlQWNjZXNzaWJsZVNlbGVjdGVkOiB2YXIoLS1nbG9iYWxDb2xvckJy YW5kMTAwKTsNCiAgICAgIC0tY29sb3JDb21wb3VuZEJyYW5kU3Ryb2tlOiB2YXIoLS1nbG9i YWxDb2xvckJyYW5kMTAwKTsNCiAgICAgIC0tY29sb3JDb21wb3VuZEJyYW5kU3Ryb2tlSG92 ZXI6IHZhcigtLWdsb2JhbENvbG9yQnJhbmQxMTApOw0KICAgICAgLS1jb2xvckNvbXBvdW5k QnJhbmRTdHJva2VQcmVzc2VkOiB2YXIoLS1nbG9iYWxDb2xvckJyYW5kOTApOw0KICAgICAg LS1jb2xvclN0cm9rZUZvY3VzMjogdmFyKC0tZ2xvYmFsQ29sb3JXaGl0ZSk7DQogICAgICAt LWNvbG9yU3Ryb2tlRm9jdXMzOiAjZmZmZmZmMGQ7DQogICAgICAtLXNoYWRvdzQ6IDAgMCAy cHggcmdiYSgwLCAwLCAwLCAwLjEyKSwgMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xNCk7 DQogICAgICAtLXNoYWRvdzI4OiAwIDAgMnB4IHJnYmEoMCwgMCwgMCwgMC4xMiksIDAgNHB4 IDhweCByZ2JhKDAsIDAsIDAsIDAuMTQpOw0KICAgICAgLS1zaGFkb3dFbGV2YXRpb24yOiAw cHggMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLA0KICAgICAgICAwcHggMHB4IDJweCBy Z2JhKDAsIDAsIDAsIDAuMTIpOw0KICAgICAgLS1zaGFkb3dFbGV2YXRpb240OiAwcHggMnB4 IDRweCByZ2JhKDAsIDAsIDAsIDAuMTQpLA0KICAgICAgICAwcHggMHB4IDJweCByZ2JhKDAs IDAsIDAsIDAuMTIpOw0KICAgICAgLS1mb250RmFtaWx5QmFzZTogIlNlZ29lIFVJIiwgIlNl Z29lIFVJIFdlYiAoV2VzdCBFdXJvcGVhbikiLA0KICAgICAgICAtYXBwbGUtc3lzdGVtLCBC bGlua01hY1N5c3RlbS0tZm9udCwgUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLA0KICAgICAg ICBzYW5zLXNlcmlmOw0KICAgICAgLS1kdXJhdGlvbkZhc3RlcjogMTAwbXM7DQogICAgICAt LWR1cmF0aW9uRmFzdDogMTUwbXM7DQogICAgICAtLWR1cmF0aW9uTm9ybWFsOiAyMDBtczsN CiAgICAgIC0tZHVyYXRpb25TbG93OiAzMDBtczsNCiAgICAgIC0tZHVyYXRpb25TbG93ZXI6 IDQwMG1zOw0KICAgICAgLS1jdXJ2ZURlY2VsZXJhdGVNYXg6IGN1YmljLWJlemllcigwLCAw LCAwLCAxKTsNCiAgICAgIC0tY3VydmVFYXN5RWFzZU1heDogY3ViaWMtYmV6aWVyKDAuOCwg MCwgMC4xLCAxKTsNCiAgICAgIC0tY3VydmVEZWNlbGVyYXRlTWlkOiBjdWJpYy1iZXppZXIo MC4xLCAwLjksIDAuMiwgMSk7DQogICAgICAtLWN1cnZlRGVjZWxlcmF0ZU1pbjogY3ViaWMt YmV6aWVyKDAuMzMsIDAsIDAuMSwgMSk7DQogICAgfQ0KICA8L3N0eWxlPg0KICA8c3R5bGUg ZGF0YS1sb2FkLXRoZW1lZC1zdHlsZXM9InRydWUiPg0KICAgIC5PRDNTY3JvbGxiYXIgOjot d2Via2l0LXNjcm9sbGJhciB7DQogICAgICB3aWR0aDogMTRweDsNCiAgICAgIGhlaWdodDog MTRweDsNCiAgICAgIHNjcm9sbGJhci13aWR0aDogdGhpbjsNCiAgICAgIHNjcm9sbGJhci1j b2xvcjogdmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZDQpIHRyYW5zcGFyZW50Ow0KICAg IH0NCg0KICAgIC5PRDNTY3JvbGxiYXIgOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7DQog ICAgICBiYWNrZ3JvdW5kLWNsaXA6IGNvbnRlbnQtYm94Ow0KICAgICAgYm9yZGVyLXJhZGl1 czogdmFyKC0tYm9yZGVyUmFkaXVzWExhcmdlKTsNCiAgICAgIGJvcmRlcjogNHB4IHNvbGlk IHRyYW5zcGFyZW50Ow0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3JOZXV0 cmFsRm9yZWdyb3VuZDQpOw0KICAgIH0NCg0KICAgIC5PRDNTY3JvbGxiYXIgOjotd2Via2l0 LXNjcm9sbGJhci10aHVtYjpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIo LS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kMyk7DQogICAgfQ0KDQogICAgLk9EM1Njcm9sbGJh ciA6Oi13ZWJraXQtc2Nyb2xsYmFyLWJ1dHRvbiB7DQogICAgICBkaXNwbGF5OiBub25lOw0K ICAgIH0NCg0KICAgIC5PRDNTY3JvbGxiYXIgOjotd2Via2l0LXNjcm9sbGJhci1jb3JuZXIg ew0KICAgICAgYmFja2dyb3VuZDogMCAwOw0KICAgIH0NCg0KICAgIEBtZWRpYSAoZm9yY2Vk LWNvbG9yczogYWN0aXZlKSB7DQogICAgICAuT0QzU2Nyb2xsYmFyIDo6LXdlYmtpdC1zY3Jv bGxiYXIgew0KICAgICAgICBzY3JvbGxiYXItY29sb3I6IENhbnZhc1RleHQgdHJhbnNwYXJl bnQ7DQogICAgICB9DQoNCiAgICAgIC5PRDNTY3JvbGxiYXIgOjotd2Via2l0LXNjcm9sbGJh ci10aHVtYiB7DQogICAgICAgIGJhY2tncm91bmQtY29sb3I6IENhbnZhc1RleHQ7DQogICAg ICAgIGJvcmRlcjogNHB4IHNvbGlkIFdpbmRvdzsNCiAgICAgIH0NCiAgICB9DQogIDwvc3R5 bGU+DQogIDxzdHlsZSBkYXRhLWxvYWQtdGhlbWVkLXN0eWxlcz0idHJ1ZSI+DQogICAgLnN1 aXRlTmF2RGFya01vZGVFbmFibGVkIDpnbG9iYWwoLm1zLXN1aXRldXgtc2VhcmNoLWJveCkg W2NsYXNzKj0ibWFnbmlmaWVyQnV0dG9uIl0gW2NsYXNzKj0iaWNvbiJdLA0KICAgIC5zdWl0 ZU5hdkRhcmtNb2RlRW5hYmxlZCA6Z2xvYmFsKC5tcy1zdWl0ZXV4LXNlYXJjaC1ib3gpIFtj bGFzcyo9InN1Ym1pdFN1Z2dlc3Rpb24iXSB7DQogICAgICBjb2xvcjogIzZjYjhmNjsNCiAg ICAgIGZpbGw6ICM2Y2I4ZjY7DQogICAgfQ0KDQogICAgLnN1aXRlTmF2RGFya01vZGVFbmFi bGVkIDpnbG9iYWwoLm1zLXN1aXRldXgtc2VhcmNoLWJveCkgW2NsYXNzKj0ic3VibWl0U2Vh cmNoQnV0dG9uIl0gew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzZjYjhmNjsNCiAgICB9 DQoNCiAgICAuc3VpdGVOYXZEYXJrTW9kZUVuYWJsZWQgOmdsb2JhbCgubXMtc3VpdGV1eC1z ZWFyY2gtYm94KSA6Z2xvYmFsKC5tcy1CdXR0b24ubXMtRHJvcGRvd24taXRlbSksDQogICAg LnN1aXRlTmF2RGFya01vZGVFbmFibGVkIDpnbG9iYWwoLm1zLXN1aXRldXgtc2VhcmNoLWJv eCkgOmdsb2JhbCgubXMtRHJvcGRvd24pLA0KICAgIC5zdWl0ZU5hdkRhcmtNb2RlRW5hYmxl ZCA6Z2xvYmFsKC5tcy1zdWl0ZXV4LXNlYXJjaC1ib3gpIDpnbG9iYWwoLm1zLURyb3Bkb3du LXRpdGxlKSB7DQogICAgICBjb2xvcjogI2YyZjFmMDsNCiAgICB9DQoNCiAgICAuc3VpdGVO YXZEYXJrTW9kZUVuYWJsZWQgOmdsb2JhbCgubXMtc3VpdGV1eC1zZWFyY2gtYm94KSA6Z2xv YmFsKC5tcy1CdXR0b24ubXMtRHJvcGRvd24taXRlbSk6aG92ZXIsDQogICAgLnN1aXRlTmF2 RGFya01vZGVFbmFibGVkIDpnbG9iYWwoLm1zLXN1aXRldXgtc2VhcmNoLWJveCkgOmdsb2Jh bCgubXMtRHJvcGRvd24pOmhvdmVyLA0KICAgIC5zdWl0ZU5hdkRhcmtNb2RlRW5hYmxlZCA6 Z2xvYmFsKC5tcy1zdWl0ZXV4LXNlYXJjaC1ib3gpIDpnbG9iYWwoLm1zLURyb3Bkb3duLXRp dGxlKTpob3ZlciB7DQogICAgICBjb2xvcjogI2YyZjFmMDsNCiAgICB9DQogIDwvc3R5bGU+ DQogIDxzdHlsZSBkYXRhLWxvYWQtdGhlbWVkLXN0eWxlcz0idHJ1ZSI+DQogICAgLnRodW1i bmFpbF9hMDU1NTY1OSB7DQogICAgICB3aWR0aDogMTAwJTsNCiAgICAgIGhlaWdodDogMTAw JTsNCiAgICAgIC1vLW9iamVjdC1maXQ6IGNvdmVyOw0KICAgICAgb2JqZWN0LWZpdDogY292 ZXI7DQogICAgfQ0KICA8L3N0eWxlPg0KICA8c3R5bGUgZGF0YS1sb2FkLXRoZW1lZC1zdHls ZXM9InRydWUiPg0KICAgIC5jYXJvdXNlbEhlYWRlcl9jOGQ2MWFmZiB7DQogICAgICBjb2xv cjogIzMyMzEzMDsNCiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7DQogICAgICBmb250LXNpemU6 IDIwcHg7DQogICAgICBsaW5lLWhlaWdodDogMjhweDsNCiAgICAgIG1hcmdpbi1ib3R0b206 IDA7DQogICAgfQ0KDQogICAgLmNhcm91c2VsTmF2QnV0dG9uX2M4ZDYxYWZmIHsNCiAgICAg IHdpZHRoOiAzMnB4Ow0KICAgICAgaGVpZ2h0OiAzMnB4Ow0KICAgIH0NCg0KICAgIC5jYXJv dXNlbExpc3RfYzhkNjFhZmYgew0KICAgICAgZGlzcGxheTogZmxleDsNCiAgICB9DQoNCiAg ICAuY2Fyb3VzZWxOYXZCdXR0b25fYzhkNjFhZmYgew0KICAgICAgd2lkdGg6IDMycHg7DQog ICAgICBoZWlnaHQ6IDMycHg7DQogICAgfQ0KDQogICAgLmNhcm91c2VsVG9vbGJhcl9jOGQ2 MWFmZiB7DQogICAgICBtYXJnaW4tYm90dG9tOiAxNnB4Ow0KICAgIH0NCiAgPC9zdHlsZT4N CiAgPHN0eWxlIGRhdGEtbG9hZC10aGVtZWQtc3R5bGVzPSJ0cnVlIj4NCiAgICAuY2Fyb3Vz ZWxDYXJkQ29udGFpbmVyXzllZjk4ZDQxIHsNCiAgICAgIGhlaWdodDogMjAwcHg7DQogICAg ICBtaW4td2lkdGg6IDI3MnB4Ow0KICAgICAgYm9yZGVyLXJhZGl1czogNnB4Ow0KICAgIH0N Cg0KICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDE0NDBweCkgew0KICAgICAg LmNhcm91c2VsQ2FyZENvbnRhaW5lcl85ZWY5OGQ0MSB7DQogICAgICAgIGhlaWdodDogMTcw cHg7DQogICAgICAgIG1pbi13aWR0aDogMjQwcHg7DQogICAgICB9DQogICAgfQ0KDQogICAg LmNhcm91c2VsQ2FyZENvbnRhaW5lcl85ZWY5OGQ0MTpob3ZlciB7DQogICAgICBib3gtc2hh ZG93OiAwIDRweCA4cHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAwIDJweCByZ2JhKDAsIDAs IDAsIDAuMTIpOw0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJsdHIiXSAubGlzdEl0ZW1fOWVm OThkNDEgew0KICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4Ow0KICAgIH0NCg0KICAgIGh0bWxb ZGlyPSJsdHIiXSAubGlzdEl0ZW1fOWVmOThkNDE6bGFzdC1vZi10eXBlIHsNCiAgICAgIG1h cmdpbi1yaWdodDogMDsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0icnRsIl0gLmxpc3RJdGVt XzllZjk4ZDQxIHsNCiAgICAgIG1hcmdpbi1sZWZ0OiAyMHB4Ow0KICAgIH0NCg0KICAgIGh0 bWxbZGlyPSJydGwiXSAubGlzdEl0ZW1fOWVmOThkNDE6bGFzdC1vZi10eXBlIHsNCiAgICAg IG1hcmdpbi1sZWZ0OiAwOw0KICAgIH0NCg0KICAgIC50aWxlVmlld3BvcnRfOWVmOThkNDEg ew0KICAgICAgYm9yZGVyLXJhZGl1czogNnB4Ow0KICAgICAgZGlzcGxheTogYmxvY2s7DQog ICAgICBjdXJzb3I6IHBvaW50ZXI7DQogICAgICBoZWlnaHQ6IDEwMCU7DQogICAgICB3aWR0 aDogMTAwJTsNCiAgICAgIHBhZGRpbmc6IDA7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAj ZmZmOw0KICAgICAgYm94LXNoYWRvdzogMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xNCks IDAgMCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKTsNCiAgICAgIGJvcmRlcjogMCAhaW1wb3J0 YW50Ow0KICAgIH0NCg0KICAgIC50aWxlVmlld3BvcnRfOWVmOThkNDE6YWN0aXZlIHsNCiAg ICAgIGJhY2tncm91bmQtY29sb3I6ICNmMGYwZjA7DQogICAgICBib3gtc2hhZG93OiAwIDJw eCA0cHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAwIDJweCByZ2JhKDAsIDAsIDAsIDAuMTIp Ow0KICAgIH0NCg0KICAgIC50aWxlVmlld3BvcnRfOWVmOThkNDE6Zm9jdXMgew0KICAgICAg YmFja2dyb3VuZC1jb2xvcjogI2ZmZjsNCiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMwMDA7 DQogICAgICBib3gtc2hhZG93OiAwIDJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAw IDJweCByZ2JhKDAsIDAsIDAsIDAuMTIpICFpbXBvcnRhbnQ7DQogICAgfQ0KDQogICAgLnRp bGVWaWV3cG9ydF85ZWY5OGQ0MTpmb2N1cy12aXNpYmxlIHsNCiAgICAgIGJveC1zaGFkb3c6 IDAgMCAwIDFweCAjNjA1ZTVjICFpbXBvcnRhbnQ7DQogICAgfQ0KDQogICAgLnRpbGVWaWV3 cG9ydF85ZWY5OGQ0MTpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOw0K ICAgICAgYm9yZGVyOiAwICFpbXBvcnRhbnQ7DQogICAgICBib3gtc2hhZG93OiAwIDJweCA0 cHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAwIDJweCByZ2JhKDAsIDAsIDAsIDAuMTIpOw0K ICAgIH0NCg0KICAgIC50aWxlVmlld3BvcnRfOWVmOThkNDE6aG92ZXI6OmFmdGVyIHsNCiAg ICAgIGJvcmRlcjogMCAhaW1wb3J0YW50Ow0KICAgIH0NCg0KICAgIC5zdGF0aWNCYWNrZ3Jv dW5kXzllZjk4ZDQxIHsNCiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgICAgIGRpc3Bs YXk6IGZsZXg7DQogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOw0KICAgICAganVzdGlm eS1jb250ZW50OiBjZW50ZXI7DQogICAgICB0b3A6IDA7DQogICAgICB3aWR0aDogMTAwJTsN CiAgICAgIGhlaWdodDogMTAwJTsNCiAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsNCiAgICB9 DQoNCiAgICAuYmFja2dyb3VuZF85ZWY5OGQ0MSB7DQogICAgICBwb3NpdGlvbjogcmVsYXRp dmU7DQogICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgdG9wOiAwOw0KICAgICAgd2lkdGg6 IDEwMCU7DQogICAgICBoZWlnaHQ6IDEwMCU7DQogICAgICBib3JkZXItcmFkaXVzOiA2cHg7 DQogICAgfQ0KDQogICAgLmJhY2tncm91bmRfOWVmOThkNDE6OmFmdGVyIHsNCiAgICAgIGNv bnRlbnQ6ICIiOw0KICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICAgbGVmdDogMDsN CiAgICAgIHRvcDogMDsNCiAgICAgIHdpZHRoOiAxMDAlOw0KICAgICAgaGVpZ2h0OiAxMDAl Ow0KICAgICAgYm9yZGVyLXJhZGl1czogNnB4Ow0KICAgICAgYmFja2dyb3VuZDogbGluZWFy LWdyYWRpZW50KHJnYmEoMCwgMCwgMCwgMCkgMCA2MCUsDQogICAgICAgICAgcmdiYSgwLCAw LCAwLCAwLjUwMTk2MDc4NDMpIDkwJSAxMDAlKTsNCiAgICB9DQoNCiAgICAudGlsZVRodW1i bmFpbF85ZWY5OGQ0MSB7DQogICAgICBoZWlnaHQ6IDEwMCU7DQogICAgICB3aWR0aDogMTAw JTsNCiAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsNCiAgICAgIG1hcmdpbjogYXV0bzsNCiAg ICB9DQoNCiAgICAuaXRlbUFjdGl2aXR5XzllZjk4ZDQxIHsNCiAgICAgIGhlaWdodDogNjhw eDsNCiAgICAgIHBhZGRpbmc6IDE2cHggNTJweCAxNnB4IDE2cHg7DQogICAgICBwb3NpdGlv bjogYWJzb2x1dGU7DQogICAgICBib3R0b206IDA7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9y OiBpbmhlcml0Ow0KICAgICAgYm9yZGVyOiBub25lOw0KICAgICAgYm9yZGVyLXJhZGl1czog MCAwIDZweCA2cHg7DQogICAgICB0ZXh0LWFsaWduOiBzdGFydDsNCiAgICAgIGZvbnQtc2l6 ZTogMTRweDsNCiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7DQogICAgICBsaW5lLWhlaWdodDog MzhweDsNCiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7DQogICAgICB3aWR0aDogMTAw JTsNCiAgICAgIGRpc3BsYXk6IGZsZXg7DQogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1u Ow0KICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsNCiAgICAgIG1hcmdpbi10b3A6IGF1dG87 DQogICAgICB6LWluZGV4OiAxOw0KICAgIH0NCg0KICAgIEBtZWRpYSBzY3JlZW4gYW5kICht YXgtd2lkdGg6IDE0NDBweCkgew0KICAgICAgLml0ZW1BY3Rpdml0eV85ZWY5OGQ0MSB7DQog ICAgICAgIGhlaWdodDogNjRweDsNCiAgICAgICAgcGFkZGluZzogMTRweCA1MnB4IDE0cHgg MTZweDsNCiAgICAgIH0NCg0KICAgICAgaHRtbFtkaXI9InJ0bCJdIC5pdGVtQWN0aXZpdHlf OWVmOThkNDEgew0KICAgICAgICBwYWRkaW5nOiAxNHB4IDE2cHggMTRweCA1MnB4Ow0KICAg ICAgfQ0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJydGwiXSAuaXRlbUFjdGl2aXR5XzllZjk4 ZDQxIHsNCiAgICAgIHBhZGRpbmc6IDE2cHggMTZweCAxNnB4IDUycHg7DQogICAgfQ0KDQog ICAgLnBzQ2FyZEl0ZW1BY3Rpdml0eV85ZWY5OGQ0MSB7DQogICAgICBoZWlnaHQ6IDgwcHgg IWltcG9ydGFudDsNCiAgICAgIHotaW5kZXg6IDI7DQogICAgfQ0KDQogICAgQG1lZGlhIHNj cmVlbiBhbmQgKG1pbi13aWR0aDogNTUzcHgpIHsNCiAgICAgIC5wc0NhcmRJdGVtQWN0aXZp dHlfOWVmOThkNDEgew0KICAgICAgICBoZWlnaHQ6IDg2cHggIWltcG9ydGFudDsNCiAgICAg ICAgZ2FwOiA4cHg7DQogICAgICB9DQogICAgfQ0KDQogICAgLml0ZW1BY3Rpdml0eVRpdGxl XzllZjk4ZDQxIHsNCiAgICAgIHdpZHRoOiAyMDRweDsNCiAgICAgIGhlaWdodDogMjBweDsN CiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOw0KICAgICAgb3ZlcmZsb3c6IGhpZGRl bjsNCiAgICAgIGNvbG9yOiAjZmZmOw0KICAgICAgZm9udC13ZWlnaHQ6IDYwMDsNCiAgICAg IGxpbmUtaGVpZ2h0OiAxNHB4Ow0KICAgIH0NCg0KICAgIC5wc0NhcmRpdGVtQWN0aXZpdHlU aXRsZV85ZWY5OGQ0MSB7DQogICAgICBoZWlnaHQ6IDUwcHggIWltcG9ydGFudDsNCiAgICAg IHdoaXRlLXNwYWNlOiBicmVhay1zcGFjZXM7DQogICAgICB3aWR0aDogNzUlOw0KICAgICAg bWF4LXdpZHRoOiAxNzVweDsNCiAgICAgIGxpbmUtaGVpZ2h0OiAxOHB4Ow0KICAgICAgZGlz cGxheTogLXdlYmtpdC1ib3g7DQogICAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7DQogICAg fQ0KDQogICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTUzcHgpIHsNCiAgICAg IC5wc0NhcmRpdGVtQWN0aXZpdHlUaXRsZV85ZWY5OGQ0MSB7DQogICAgICAgIHdpZHRoOiAy NjBweDsNCiAgICAgIH0NCiAgICB9DQoNCiAgICAuaXRlbUFjdGl2aXR5U3ViVGl0bGVfOWVm OThkNDEgew0KICAgICAgd2lkdGg6IDIwNHB4Ow0KICAgICAgaGVpZ2h0OiAxNnB4Ow0KICAg ICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7DQogICAgICBvdmVyZmxvdzogaGlkZGVuOw0K ICAgICAgY29sb3I6ICNmZmY7DQogICAgICBmb250LXdlaWdodDogNDAwOw0KICAgICAgZm9u dC1zaXplOiAxMnB4Ow0KICAgICAgbGluZS1oZWlnaHQ6IDEycHg7DQogICAgfQ0KDQogICAg LnN0YXRpY0NhcmRJbWFnZV85ZWY5OGQ0MSB7DQogICAgICB3aWR0aDogMjAwcHg7DQogICAg ICBtYXJnaW4tbGVmdDogYXV0bzsNCiAgICAgIG1hcmdpbi1yaWdodDogYXV0bzsNCiAgICAg IGhlaWdodDogMTAwcHg7DQogICAgICBtYXJnaW4tdG9wOiAzMnB4Ow0KICAgICAgbWFyZ2lu LWJvdHRvbTogYXV0bzsNCiAgICAgIGJvcmRlci1yYWRpdXM6IDZweCA2cHggMCAwOw0KICAg IH0NCg0KICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDE0NDBweCkgew0KICAg ICAgLnN0YXRpY0NhcmRJbWFnZV85ZWY5OGQ0MSB7DQogICAgICAgIHdpZHRoOiAyMDBweDsN CiAgICAgICAgaGVpZ2h0OiA5MHB4Ow0KICAgICAgICBtYXJnaW4tdG9wOiAxNnB4Ow0KICAg ICAgICBtYXJnaW4tbGVmdDogYXV0bzsNCiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvOw0K ICAgICAgICBtYXJnaW4tYm90dG9tOiBhdXRvOw0KICAgICAgfQ0KICAgIH0NCiAgPC9zdHls ZT4NCiAgPHN0eWxlIGRhdGEtbG9hZC10aGVtZWQtc3R5bGVzPSJ0cnVlIj4NCiAgICAub2Qt UXVvdGFCYW5uZXJXcmFwcGVyIHsNCiAgICAgIG1hcmdpbjogMCAxNnB4Ow0KICAgIH0NCg0K ICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkgew0KICAgICAgLm9kLVF1b3RhQmFubmVy V3JhcHBlci1oaWRlU21hbGxTY3JlZW4gew0KICAgICAgICBkaXNwbGF5OiBub25lOw0KICAg ICAgfQ0KICAgIH0NCg0KICAgIC5vZC1RdW90YUJhbm5lcldyYXBwZXItcGxhY2Vob2xkZXIg ew0KICAgICAgZmxleDogODBweDsNCiAgICB9DQoNCiAgICAub2QtUXVvdGFCYW5uZXItdXBz ZWxsIHsNCiAgICAgIHBhZGRpbmc6IDEwcHggOXB4Ow0KICAgIH0NCiAgPC9zdHlsZT4NCiAg PHN0eWxlIGRhdGEtbG9hZC10aGVtZWQtc3R5bGVzPSJ0cnVlIj4NCiAgICBidXR0b24ubWlj cm9zb2Z0Q29uZmlkZXRpYWxMaW5rX2VlY2U3OTY4IHsNCiAgICAgIGNvbG9yOiByZWQ7DQog ICAgICBmb250LXdlaWdodDogNzAwOw0KICAgIH0NCg0KICAgIGJ1dHRvbi5taWNyb3NvZnRD b25maWRldGlhbExpbmtWMl9lZWNlNzk2OCB7DQogICAgICBjb2xvcjogcmVkICFpbXBvcnRh bnQ7DQogICAgICBmb250LXdlaWdodDogNzAwOw0KICAgIH0NCiAgPC9zdHlsZT4NCiAgPHN0 eWxlIGRhdGEtbG9hZC10aGVtZWQtc3R5bGVzPSJ0cnVlIj4NCiAgICAub3ZlclF1b3RhUHJp bWFyeUJ1dHRvbl8xNzY5ZmNlYyB7DQogICAgICB3aWR0aDogMTAwJTsNCiAgICB9DQoNCiAg ICAub3ZlclF1b3RhUHJpbWFyeUJ1dHRvblYyXzE3NjlmY2VjIHsNCiAgICAgIHdpZHRoOiAx MDAlOw0KICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsNCiAgICB9DQogIDwvc3R5 bGU+DQogIDxzdHlsZSBkYXRhLWxvYWQtdGhlbWVkLXN0eWxlcz0idHJ1ZSI+DQogICAgLm1z LVJlYWN0Q29tbWFuZE1hbmFnZXItaWNvbkNvbnRhaW5lciB7DQogICAgICBwb3NpdGlvbjog cmVsYXRpdmU7DQogICAgICBmb250LXNpemU6IDE2cHg7DQogICAgICBtYXJnaW46IDAgNHB4 Ow0KICAgICAgaGVpZ2h0OiAxNnB4Ow0KICAgICAgd2lkdGg6IDE2cHg7DQogICAgfQ0KDQog ICAgLm1zLVJlYWN0Q29tbWFuZE1hbmFnZXItRmlsZVR5cGVJY29uLWljb24gew0KICAgICAg d2lkdGg6IDE2cHg7DQogICAgICBoZWlnaHQ6IDE2cHg7DQogICAgICBvdmVyZmxvdzogdmlz aWJsZTsNCiAgICB9DQoNCiAgICAubXMtUmVhY3RDb21tYW5kTWFuYWdlci1sb2dvRmlsbElj b24sDQogICAgLm1zLVJlYWN0Q29tbWFuZE1hbmFnZXItbG9nb0ljb24gew0KICAgICAgcG9z aXRpb246IGFic29sdXRlOw0KICAgICAgbGVmdDogMDsNCiAgICAgIHJpZ2h0OiAwOw0KICAg IH0NCg0KICAgIC5tcy1SZWFjdENvbW1hbmRNYW5hZ2VyLWxvZ29GaWxsSWNvbltkYXRhLWlj b24tbmFtZT0iVGVhbXNMb2dvMTYiXSwNCiAgICAubXMtUmVhY3RDb21tYW5kTWFuYWdlci1s b2dvSWNvbltkYXRhLWljb24tbmFtZT0iVGVhbXNMb2dvMTYiXSB7DQogICAgICBjb2xvcjog IzYyNjRhNzsNCiAgICB9DQoNCiAgICAubXMtUmVhY3RDb21tYW5kTWFuYWdlci1sb2dvRmls bEljb24gew0KICAgICAgY29sb3I6ICNmZmY7DQogICAgfQ0KDQogICAgLm1zLUJ1dHRvbi1p Y29uW2RhdGEtaWNvbi1uYW1lPSJTeW5jIl0uaXMtYWN0aXZlIHsNCiAgICAgIGFuaW1hdGlv bjogbm9uZTsNCiAgICAgIGFuaW1hdGlvbjogcm90YXRlLXByb2dyZXNzIDEuMXMgaW5maW5p dGUgbGluZWFyOw0KICAgIH0NCg0KICAgIEBrZXlmcmFtZXMgcm90YXRlLXByb2dyZXNzIHsN CiAgICAgIGZyb20gew0KICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTsNCiAgICAgIH0N Cg0KICAgICAgdG8gew0KICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOw0KICAg ICAgfQ0KICAgIH0NCg0KICAgIC5hbGVydCB7DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7 DQogICAgICB3aWR0aDogMXB4Ow0KICAgICAgaGVpZ2h0OiAxcHg7DQogICAgICBwYWRkaW5n OiAwOw0KICAgICAgbWFyZ2luOiAtMXB4Ow0KICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsNCiAg ICAgIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7DQogICAgICBib3JkZXI6IDA7DQogICAgfQ0K ICA8L3N0eWxlPg0KICA8c3R5bGUgZGF0YS1sb2FkLXRoZW1lZC1zdHlsZXM9InRydWUiPg0K ICAgIC5sZWZ0TmF2Q29udGFpbmVyXzZmMjc0NTBhIHsNCiAgICAgIHdpZHRoOiAyNDhweDsN CiAgICB9DQoNCiAgICAubGVmdE5hdkNvbnRhaW5lckNvbGxhcHNlZF82ZjI3NDUwYSB7DQog ICAgICB3aWR0aDogNjhweDsNCiAgICB9DQogIDwvc3R5bGU+DQogIDxzdHlsZSBkYXRhLWxv YWQtdGhlbWVkLXN0eWxlcz0idHJ1ZSI+DQogICAgLnJvb3RfODBlNWEwNjMgew0KICAgICAg ZGlzcGxheTogYmxvY2s7DQogICAgfQ0KICA8L3N0eWxlPg0KICA8c3R5bGUgZGF0YS1sb2Fk LXRoZW1lZC1zdHlsZXM9InRydWUiPg0KICAgIC5yb290XzVjZGY3Y2Y2IHsNCiAgICAgIGRp c3BsYXk6IGJsb2NrOw0KICAgIH0NCiAgPC9zdHlsZT4NCiAgPGxpbmsNCiAgICBocmVmPSJo dHRwczovL3Jlcy0xLmNkbi5vZmZpY2UubmV0L2ZpbGVzL2ZhYnJpYy1jZG4tcHJvZF8yMDIz MDUyNC4wMDEvb25lZHJpdmUtYXNzZXRzL29uZWRyaXZlLWZvbnQtZmFjZS1kZWZpbml0aW9u cy5jc3MiDQogICAgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgY3Jvc3Nvcmln aW49ImFub255bW91cyIgLz4NCiAgPHNjcmlwdCBjaGFyc2V0PSJ1dGYtOCINCiAgICBzcmM9 Imh0dHBzOi8vcmVzLTEuY2RuLm9mZmljZS5uZXQvZmlsZXMvb2RzcC13ZWItcHJvZF8yMDIz LTEwLTIwLjAwNS9vZGNsaWdodHNwZWVkd2VicGFjay5tYW5pZmVzdC84MDcuanMiDQogICAg Y3Jvc3NvcmlnaW49ImFub255bW91cyI+PC9zY3JpcHQ+DQogIDxzY3JpcHQgY2hhcnNldD0i dXRmLTgiDQogICAgc3JjPSJodHRwczovL3Jlcy0xLmNkbi5vZmZpY2UubmV0L2ZpbGVzL29k c3Atd2ViLXByb2RfMjAyMy0xMC0yMC4wMDUvb2RjbGlnaHRzcGVlZHdlYnBhY2subWFuaWZl c3QvZW4tdXMvb25kZW1hbmQucmVzeC1vbmRlbWFuZC5qcyINCiAgICBjcm9zc29yaWdpbj0i YW5vbnltb3VzIj48L3NjcmlwdD4NCiAgPHN0eWxlIGRhdGEtbG9hZC10aGVtZWQtc3R5bGVz PSJ0cnVlIj4NCiAgICBib2R5LA0KICAgIGh0bWwgew0KICAgICAgaGVpZ2h0OiAxMDAlOw0K ICAgIH0NCg0KICAgIGJvZHkgew0KICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsNCiAgICAgIC13 ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7DQogICAgICAtd2Via2l0 LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDsNCiAgICAgIC13ZWJraXQtdG91Y2gtY2Fs bG91dDogbm9uZTsNCiAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7DQogICAgICAt bXMtdXNlci1zZWxlY3Q6IG5vbmU7DQogICAgICB1c2VyLXNlbGVjdDogbm9uZTsNCiAgICAg IGNvbG9yOiAjMjQyNDI0Ow0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjsNCiAg ICB9DQoNCiAgICBkaXYjY193YXRzb251aSB7DQogICAgICAtd2Via2l0LXRvdWNoLWNhbGxv dXQ6IHRleHQ7DQogICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiB0ZXh0Ow0KICAgICAgLW1z LXVzZXItc2VsZWN0OiB0ZXh0Ow0KICAgICAgdXNlci1zZWxlY3Q6IHRleHQ7DQogICAgfQ0K DQogICAgaW5wdXQsDQogICAgdGV4dGFyZWEgew0KICAgICAgLXdlYmtpdC10b3VjaC1jYWxs b3V0OiB0ZXh0Ow0KICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogdGV4dDsNCiAgICAgIC1t cy11c2VyLXNlbGVjdDogdGV4dDsNCiAgICAgIHVzZXItc2VsZWN0OiB0ZXh0Ow0KICAgIH0N Cg0KICAgIEBtZWRpYSAobWF4LXdpZHRoOiAzMTlweCkgew0KICAgICAgYm9keSB7DQogICAg ICAgIG92ZXJmbG93LXg6IGF1dG87DQogICAgICB9DQogICAgfQ0KDQogICAgYSwNCiAgICBi b2R5LA0KICAgIGlucHV0LA0KICAgIHRleHRhcmVhIHsNCiAgICAgIGZvbnQtd2VpZ2h0OiA0 MDA7DQogICAgICBmb250LXdlaWdodDogNDAwOw0KICAgICAgbWFyZ2luOiAwOw0KICAgICAg cGFkZGluZzogMDsNCiAgICB9DQoNCiAgICBhIHsNCiAgICAgIGNvbG9yOiAjMDA3OGQ0Ow0K ICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOw0KICAgIH0NCg0KICAgIGE6Zm9jdXMsDQog ICAgYTpob3ZlciB7DQogICAgICBjb2xvcjogIzAwNDU3ODsNCiAgICB9DQoNCiAgICBhOmZv Y3VzIHsNCiAgICAgIG91dGxpbmU6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsNCiAgICB9DQoN CiAgICBidXR0b246Zm9jdXMgew0KICAgICAgb3V0bGluZTogMXB4IHNvbGlkIHRyYW5zcGFy ZW50Ow0KICAgIH0NCg0KICAgIC5vZC1mb2N1cy0tZW5hYmxlZCBidXR0b246Zm9jdXM6bm90 KC5tcy1CdXR0b24sIC5vZC1CdXR0b24sIC5mdWktQnV0dG9uKSwNCiAgICBhOmZvY3VzOm5v dCgubXMtTGluaykgew0KICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICM2MTYxNjEgaW5z ZXQ7DQogICAgfQ0KDQogICAgaW1nIHsNCiAgICAgIGJvcmRlcjogbm9uZTsNCiAgICAgIHBh ZGRpbmc6IDA7DQogICAgICBtYXJnaW46IDA7DQogICAgfQ0KDQogICAgQG1lZGlhIChtYXgt d2lkdGg6IDY0MHB4KSB7DQoNCiAgICAgIC5jLUJyZWFkY3J1bWJCYXIsDQogICAgICAuYy1T b3J0TWVudSwNCiAgICAgIC5sZWZ0TmF2QXJlYSB7DQogICAgICAgIG9wYWNpdHk6IDA7DQog ICAgICB9DQoNCiAgICAgIC5sZWZ0TmF2QXJlYSB7DQogICAgICAgIGxlZnQ6IC0xODBweDsN CiAgICAgIH0NCg0KICAgICAgLmNvbnRlbnRBcmVhIHsNCiAgICAgICAgbGVmdDogMDsNCiAg ICAgIH0NCiAgICB9DQoNCiAgICAuZGVidWcgew0KICAgICAgYm9yZGVyOiAycHggc29saWQg IzMzMzsNCiAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsNCiAgICAgIGJhY2tncm91bmQ6ICNm OWY5Zjk7DQogICAgICBoZWlnaHQ6IDEwMHB4Ow0KICAgICAgb3ZlcmZsb3cteTogc2Nyb2xs Ow0KICAgIH0NCg0KICAgIEBtZWRpYSBwcmludCB7DQogICAgICBib2R5IHsNCiAgICAgICAg b3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDsNCiAgICAgIH0NCiAgICB9DQoNCiAgICAu Y2FuRHJvcF8xYjg3MzE3MDphZnRlciB7DQogICAgICBjb250ZW50OiAiICI7DQogICAgICBk aXNwbGF5OiBibG9jazsNCiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOw0KICAgICAgYm9y ZGVyOiAycHggZGFzaGVkICNjN2M3Yzc7DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQog ICAgICB0b3A6IDA7DQogICAgICBsZWZ0OiAwOw0KICAgICAgYm90dG9tOiAwOw0KICAgICAg cmlnaHQ6IDA7DQogICAgfQ0KDQogICAgLmRyb3BGaW5pc2hlZF8xYjg3MzE3MDphZnRlciwN CiAgICAuZHJvcHBlZF8xYjg3MzE3MDphZnRlciwNCiAgICAuZHJvcHBpbmdfMWI4NzMxNzA6 YWZ0ZXIgew0KICAgICAgY29udGVudDogIiAiOw0KICAgICAgZGlzcGxheTogYmxvY2s7DQog ICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsNCiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsN CiAgICAgIHRvcDogMDsNCiAgICAgIGxlZnQ6IDA7DQogICAgICBib3R0b206IDA7DQogICAg ICByaWdodDogMDsNCiAgICB9DQoNCiAgICAuZHJvcHBpbmdfMWI4NzMxNzA6YWZ0ZXIgew0K ICAgICAgYm9yZGVyOiAycHggZGFzaGVkICM3MWFmZTU7DQogICAgfQ0KDQogICAgLmRyb3BG aW5pc2hlZF8xYjg3MzE3MDphZnRlciwNCiAgICAuZHJvcHBlZF8xYjg3MzE3MDphZnRlciB7 DQogICAgICBib3JkZXI6IDJweCBzb2xpZCAjNzFhZmU1Ow0KICAgIH0NCg0KICAgIEBrZXlm cmFtZXMgY29tbWFuZEJhckJveFNoYWRvd0FuaW1hdGlvbiB7DQogICAgICAwJSB7DQogICAg ICAgIGJveC1zaGFkb3c6IG5vbmU7DQogICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5z cGFyZW50Ow0KICAgICAgfQ0KDQogICAgICAxMDAlIHsNCiAgICAgICAgYmFja2dyb3VuZC1j b2xvcjogI2ZmZmZmZjsNCiAgICAgICAgYm94LXNoYWRvdzogMCAzLjJweCA3LjJweCAwIHJn YmEoMCwgMCwgMCwgMC4xMzIpLA0KICAgICAgICAgIDAgMC42cHggMS44cHggMCByZ2JhKDAs IDAsIDAsIDAuMTA4KTsNCiAgICAgIH0NCiAgICB9DQoNCiAgICBAa2V5ZnJhbWVzIGNvbW1h bmRCYXJEaXZpZGVyQW5pbWF0aW9uIHsNCiAgICAgIDAlIHsNCiAgICAgICAgb3BhY2l0eTog MTsNCiAgICAgIH0NCg0KICAgICAgMTAwJSB7DQogICAgICAgIG9wYWNpdHk6IDA7DQogICAg ICB9DQogICAgfQ0KDQogICAgLm9kLUxlZnROYXYgew0KICAgICAgZmxleDogMSAxIGF1dG87 DQogICAgICB3aWR0aDogMDsNCiAgICAgIGJhY2tncm91bmQ6ICNmMGYwZjA7DQogICAgICBw b3NpdGlvbjogcmVsYXRpdmU7DQogICAgICBvdmVyZmxvdzogaGlkZGVuOw0KICAgIH0NCg0K ICAgIC5vZC1MZWZ0TmF2LS1pbmxpbmUgew0KICAgICAgd2lkdGg6IDIyOHB4Ow0KICAgIH0N Cg0KICAgIC5vZC1MZWZ0TmF2LS1leHBhbmRlZCB7DQogICAgICB3aWR0aDogMjcycHg7DQog ICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgICB0b3A6IDA7DQogICAgICBib3R0b206 IDA7DQogICAgICB6LWluZGV4OiAyOTg7DQogICAgICBib3gtc2hhZG93OiAzMHB4IDAgMzBw eCAtMzBweCByZ2JhKDAsIDAsIDAsIDAuNCk7DQogICAgfQ0KDQogICAgW2Rpcj0ibHRyIl0g Lm9kLUxlZnROYXYtLWV4cGFuZGVkIHsNCiAgICAgIGFuaW1hdGlvbi1uYW1lOiBtcy1mYWRl SW4sIG1zLXNsaWRlUmlnaHRJbjQwOw0KICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAzNjdt czsNCiAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjEs IDAuOSwgMC4yLCAxKTsNCiAgICAgIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7DQogICAg fQ0KDQogICAgQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHsNCiAg ICAgIFtkaXI9Imx0ciJdIC5vZC1MZWZ0TmF2LS1leHBhbmRlZCB7DQogICAgICAgIGFuaW1h dGlvbjogbm9uZTsNCiAgICAgIH0NCiAgICB9DQoNCiAgICBbZGlyPSJydGwiXSAub2QtTGVm dE5hdi0tZXhwYW5kZWQgew0KICAgICAgYW5pbWF0aW9uLW5hbWU6IG1zLWZhZGVJbiwgbXMt c2xpZGVMZWZ0SW40MDsNCiAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMzY3bXM7DQogICAg ICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xLCAwLjksIDAu MiwgMSk7DQogICAgICBhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoOw0KICAgIH0NCg0KICAg IEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7DQogICAgICBbZGly PSJydGwiXSAub2QtTGVmdE5hdi0tZXhwYW5kZWQgew0KICAgICAgICBhbmltYXRpb246IG5v bmU7DQogICAgICB9DQogICAgfQ0KDQogICAgLmlzRmx1ZW50Vk5leHQgLm9kLUxlZnROYXYg ew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYTsNCiAgICB9DQoNCiAgICBbZGly PSJsdHIiXSAuaXNGbHVlbnRWTmV4dCAub2QtTGVmdE5hdjpub3QoLm9kLUxlZnROYXYtLWV4 cGFuZGVkKSB7DQogICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZWJlYmViOw0KICAg IH0NCg0KICAgIFtkaXI9InJ0bCJdIC5pc0ZsdWVudFZOZXh0IC5vZC1MZWZ0TmF2Om5vdCgu b2QtTGVmdE5hdi0tZXhwYW5kZWQpIHsNCiAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQg I2ViZWJlYjsNCiAgICB9DQoNCiAgICAuaXNPRDMgLm9kLUxlZnROYXYtLWlubGluZSB7DQog ICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsNCiAgICB9DQoNCiAgICBbZGly PSJsdHIiXSAuaXNPRDMgLm9kLUxlZnROYXY6bm90KC5vZC1MZWZ0TmF2LS1leHBhbmRlZCkg ew0KICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgdHJhbnNwYXJlbnQ7DQogICAgfQ0K DQogICAgW2Rpcj0icnRsIl0gLmlzT0QzIC5vZC1MZWZ0TmF2Om5vdCgub2QtTGVmdE5hdi0t ZXhwYW5kZWQpIHsNCiAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdHJhbnNwYXJlbnQ7 DQogICAgfQ0KDQogICAgLm9kLUxlZnROYXYtaGFtYnVyZ2VyIHsNCiAgICAgIHBhZGRpbmct dG9wOiA2cHg7DQogICAgICBwYWRkaW5nLWJvdHRvbTogNnB4Ow0KICAgICAgYm9yZGVyLWJv dHRvbTogMXB4IHNvbGlkICNlMGUwZTA7DQogICAgfQ0KDQogICAgW2Rpcj0ibHRyIl0gLm9k LUxlZnROYXYtaGFtYnVyZ2VyIHsNCiAgICAgIHBhZGRpbmctbGVmdDogOHB4Ow0KICAgIH0N Cg0KICAgIFtkaXI9InJ0bCJdIC5vZC1MZWZ0TmF2LWhhbWJ1cmdlciB7DQogICAgICBwYWRk aW5nLXJpZ2h0OiA4cHg7DQogICAgfQ0KDQogICAgLm9kLUxlZnROYXYtbmF2Q29udGVudCB7 DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgICB0b3A6IDA7DQogICAgICBib3R0 b206IDA7DQogICAgICB3aWR0aDogMTAwJTsNCiAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjsN CiAgICAgIG92ZXJmbG93LXk6IGF1dG87DQogICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAg ZmxleC1kaXJlY3Rpb246IGNvbHVtbjsNCiAgICB9DQoNCiAgICBbZGlyPSJsdHIiXSAub2Qt TGVmdE5hdi1uYXZDb250ZW50IHsNCiAgICAgIGxlZnQ6IDA7DQogICAgfQ0KDQogICAgW2Rp cj0icnRsIl0gLm9kLUxlZnROYXYtbmF2Q29udGVudCB7DQogICAgICByaWdodDogMDsNCiAg ICB9DQoNCiAgICAub2QtTGVmdE5hdi1vdmVybGF5IHsNCiAgICAgIHBvc2l0aW9uOiBhYnNv bHV0ZTsNCiAgICAgIHRvcDogMDsNCiAgICAgIGxlZnQ6IDA7DQogICAgICByaWdodDogMDsN CiAgICAgIGJvdHRvbTogMDsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAy NTUsIDI1NSwgMC40KTsNCiAgICAgIGN1cnNvcjogcG9pbnRlcjsNCiAgICAgIHotaW5kZXg6 IDI5NzsNCiAgICB9DQoNCiAgICAub2QtSXRlbUNvbnRlbnQtaGVhZGVyIHsNCiAgICAgIGJv eC1zaXppbmc6IGJvcmRlci1ib3g7DQogICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgZmxl eC1mbG93OiByb3cgd3JhcDsNCiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsNCiAgICAg IHBhZGRpbmctdG9wOiAxMHB4Ow0KICAgICAgcGFkZGluZy1ib3R0b206IDEwcHg7DQogICAg fQ0KDQogICAgLnhsZyAub2QtSXRlbUNvbnRlbnQtaGVhZGVyLA0KICAgIC54eGxnIC5vZC1J dGVtQ29udGVudC1oZWFkZXIsDQogICAgLnh4eGxnIC5vZC1JdGVtQ29udGVudC1oZWFkZXIs DQogICAgLnh4eHhsZyAub2QtSXRlbUNvbnRlbnQtaGVhZGVyIHsNCiAgICAgIHBhZGRpbmct dG9wOiAzNnB4Ow0KICAgICAgcGFkZGluZy1ib3R0b206IDA7DQogICAgfQ0KDQogICAgLm9k LUZvbGRlckl0ZW1Db250ZW50IC5TdG9yYWdlSW5mby1zZWN0aW9uSGVhZGluZyB7DQogICAg ICBtYXJnaW46IDQ0cHggMzJweCAyMHB4Ow0KICAgICAgbWF4LXdpZHRoOiA4MDBweDsNCiAg ICAgIGZvbnQtc2l6ZTogMThweDsNCiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7DQogICAgICBm b250LXdlaWdodDogNjAwOw0KICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsNCiAgICAgIHBh ZGRpbmctYm90dG9tOiAyMHB4Ow0KICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNl YmViZWI7DQogICAgfQ0KDQogICAgLnNtIC5vZC1Gb2xkZXJJdGVtQ29udGVudCAuU3RvcmFn ZUluZm8tc2VjdGlvbkhlYWRpbmcgew0KICAgICAgbWFyZ2luOiA0NHB4IDE2cHggMjBweDsN CiAgICB9DQoNCiAgICAueHhsZyAub2QtRm9sZGVySXRlbUNvbnRlbnQgLlN0b3JhZ2VJbmZv LXNlY3Rpb25IZWFkaW5nLA0KICAgIC54eHhsZyAub2QtRm9sZGVySXRlbUNvbnRlbnQgLlN0 b3JhZ2VJbmZvLXNlY3Rpb25IZWFkaW5nLA0KICAgIC54eHh4bGcgLm9kLUZvbGRlckl0ZW1D b250ZW50IC5TdG9yYWdlSW5mby1zZWN0aW9uSGVhZGluZyB7DQogICAgICBtYXgtd2lkdGg6 IDEwODBweDsNCiAgICB9DQoNCiAgICAubGcgLm9kLUZvbGRlckl0ZW1Db250ZW50IC5vZC1J dGVtQ29udGVudC1wcm9ncmVzcy1jb250YWluZXIsDQogICAgLm1kIC5vZC1Gb2xkZXJJdGVt Q29udGVudCAub2QtSXRlbUNvbnRlbnQtcHJvZ3Jlc3MtY29udGFpbmVyLA0KICAgIC5zbSAu b2QtRm9sZGVySXRlbUNvbnRlbnQgLm9kLUl0ZW1Db250ZW50LXByb2dyZXNzLWNvbnRhaW5l ciB7DQogICAgICBtYXJnaW46IDAgMzJweCA0MHB4Ow0KICAgIH0NCg0KICAgIC5zbSAub2Qt Rm9sZGVySXRlbUNvbnRlbnQgLm9kLUl0ZW1Db250ZW50LXByb2dyZXNzLWNvbnRhaW5lciB7 DQogICAgICBtYXJnaW46IDAgMTZweCA0MHB4Ow0KICAgIH0NCg0KICAgIC54eGxnIC5vZC1G b2xkZXJJdGVtQ29udGVudCAub2QtSXRlbUNvbnRlbnQtcHJvZ3Jlc3MtY29udGFpbmVyLA0K ICAgIC54eHhsZyAub2QtRm9sZGVySXRlbUNvbnRlbnQgLm9kLUl0ZW1Db250ZW50LXByb2dy ZXNzLWNvbnRhaW5lciwNCiAgICAueHh4eGxnIC5vZC1Gb2xkZXJJdGVtQ29udGVudCAub2Qt SXRlbUNvbnRlbnQtcHJvZ3Jlc3MtY29udGFpbmVyIHsNCiAgICAgIG1heC13aWR0aDogMTA4 MHB4Ow0KICAgIH0NCg0KICAgIC5vZC1Gb2xkZXJJdGVtQ29udGVudCAub2QtSXRlbUNvbnRl bnQtcHJvZ3Jlc3MtY29udGFpbmVyIHsNCiAgICAgIG1heC13aWR0aDogODAwcHg7DQogICAg ICBib3gtc2hhZG93OiAwIDEuNnB4IDMuNnB4IDAgcmdiYSgwLCAwLCAwLCAwLjEzMiksDQog ICAgICAgIDAgMC4zcHggMC45cHggMCByZ2JhKDAsIDAsIDAsIDAuMTA4KTsNCiAgICAgIGJv cmRlci1yYWRpdXM6IDJweDsNCiAgICAgIG1hcmdpbjogMCAzMnB4IDIwcHg7DQogICAgICBw YWRkaW5nOiAyNHB4IDA7DQogICAgfQ0KDQogICAgLm9kLUZvbGRlckl0ZW1Db250ZW50IC5v ZC1JdGVtQ29udGVudC1wcm9ncmVzcy1jb250YWluZXIgLm9kLXF1b3RhLXByb2dyZXNzLWJh ci1tYWluIHsNCiAgICAgIGRpc3BsYXk6IGZsZXg7DQogICAgICBmbGV4LWRpcmVjdGlvbjog Y29sdW1uOw0KICAgIH0NCg0KICAgIC5vZC1Gb2xkZXJJdGVtQ29udGVudCAub2QtSXRlbUNv bnRlbnQtcHJvZ3Jlc3MtY29udGFpbmVyIC5vZC1xdW90YS1wcm9ncmVzcy1iYXItbWFpbiAu b2QtcXVvdGEtcHJvZ3Jlc3MtYmFyLXRvcCB7DQogICAgICBvcmRlcjogMTsNCiAgICAgIG1h cmdpbi10b3A6IDEycHg7DQogICAgfQ0KDQogICAgLm9kLUZvbGRlckl0ZW1Db250ZW50IC5v ZC1JdGVtQ29udGVudC1wcm9ncmVzcy1jb250YWluZXIgLlN0b3JhZ2VJbmZvLXRvdGFsVXNl ZCB7DQogICAgICBmb250LXdlaWdodDogNjAwOw0KICAgIH0NCg0KICAgIC5vZC1Gb2xkZXJJ dGVtQ29udGVudCAub2QtSXRlbUNvbnRlbnQtcHJvZ3Jlc3MtY29udGFpbmVyIC5vZC1JdGVt Q29udGVudC1wcm9ncmVzcyB7DQogICAgICBwYWRkaW5nOiAwIDI0cHg7DQogICAgICBtYXJn aW4tdG9wOiAxMnB4Ow0KICAgICAgaGVpZ2h0OiA0NnB4Ow0KICAgIH0NCg0KICAgIC5vZC1G b2xkZXJJdGVtQ29udGVudCAuU3RvcmFnZUluZm8tdG90YWxVc2VkIHsNCiAgICAgIG1hcmdp bjogMCAyNHB4Ow0KICAgIH0NCg0KICAgIC5vZC1JdGVtQ29udGVudC1wcm9ncmVzcyB7DQog ICAgICBoZWlnaHQ6IDMxcHg7DQogICAgICBwYWRkaW5nOiAxMHB4IDMycHg7DQogICAgfQ0K DQogICAgLm1kIC5vZC1JdGVtQ29udGVudC1wcm9ncmVzcywNCiAgICAuc20gLm9kLUl0ZW1D b250ZW50LXByb2dyZXNzIHsNCiAgICAgIHBhZGRpbmctbGVmdDogMTZweDsNCiAgICAgIHBh ZGRpbmctcmlnaHQ6IDE2cHg7DQogICAgfQ0KDQogICAgLm9kLUl0ZW1Db250ZW50LXRpdGxl IHsNCiAgICAgIG1hcmdpbjogMDsNCiAgICAgIG92ZXJmbG93OiBoaWRkZW47DQogICAgICB3 aGl0ZS1zcGFjZTogbm93cmFwOw0KICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7DQog ICAgICBmb250LXNpemU6IDIwcHg7DQogICAgICBmb250LXdlaWdodDogNjAwOw0KICAgICAg bGluZS1oZWlnaHQ6IDM2cHg7DQogICAgICBoZWlnaHQ6IDM3cHg7DQogICAgfQ0KDQogICAg Lm9kLUl0ZW1Db250ZW50LWJyZWFkY3J1bWIgew0KICAgICAgZm9udC1zaXplOiAxN3B4Ow0K ICAgICAgZm9udC13ZWlnaHQ6IDMwMDsNCiAgICB9DQoNCiAgICAubWQgLm9kLUl0ZW1Db250 ZW50LWJyZWFkY3J1bWIsDQogICAgLnNtIC5vZC1JdGVtQ29udGVudC1icmVhZGNydW1iIHsN CiAgICAgIGZvbnQtc2l6ZTogMTRweDsNCiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7DQogICAg fQ0KDQogICAgLnhsZyAub2QtSXRlbUNvbnRlbnQtYnJlYWRjcnVtYiwNCiAgICAueHhsZyAu b2QtSXRlbUNvbnRlbnQtYnJlYWRjcnVtYiwNCiAgICAueHh4bGcgLm9kLUl0ZW1Db250ZW50 LWJyZWFkY3J1bWIsDQogICAgLnh4eHhsZyAub2QtSXRlbUNvbnRlbnQtYnJlYWRjcnVtYiB7 DQogICAgICBmb250LXNpemU6IDIxcHg7DQogICAgICBmb250LXdlaWdodDogMTAwOw0KICAg IH0NCg0KICAgIC54bGcgLm9kLUl0ZW1Db250ZW50LWxpc3QsDQogICAgLnh4bGcgLm9kLUl0 ZW1Db250ZW50LWxpc3QsDQogICAgLnh4eGxnIC5vZC1JdGVtQ29udGVudC1saXN0LA0KICAg IC54eHh4bGcgLm9kLUl0ZW1Db250ZW50LWxpc3Qgew0KICAgICAgcGFkZGluZy10b3A6IDIw cHg7DQogICAgfQ0KDQogICAgLm9kLUl0ZW1Db250ZW50LWZvb3RlciB7DQogICAgICBtYXJn aW46IDA7DQogICAgfQ0KDQogICAgLm9kLUl0ZW1Db250ZW50LWZvb3RlciwNCiAgICAub2Qt SXRlbUNvbnRlbnQtaGVhZGVyLA0KICAgIC5vZC1JdGVtQ29udGVudC1saXN0IHsNCiAgICAg IC0tb2QtbGlzdC1sZWZ0LXBhZGRpbmc6IDMycHg7DQogICAgICAtLW9kLWxpc3QtcmlnaHQt cGFkZGluZzogMzJweDsNCiAgICAgIC0tb2QtbGlzdC1sZWZ0LXBhZGRpbmctc21hbGw6IDE2 cHg7DQogICAgICAtLW9kLWxpc3QtcmlnaHQtcGFkZGluZy1zbWFsbDogMTZweDsNCiAgICB9 DQoNCiAgICBbZGlyPSJsdHIiXSAub2QtSXRlbUNvbnRlbnQtZm9vdGVyLA0KICAgIFtkaXI9 Imx0ciJdIC5vZC1JdGVtQ29udGVudC1oZWFkZXIsDQogICAgW2Rpcj0ibHRyIl0gLm9kLUl0 ZW1Db250ZW50LWxpc3Qgew0KICAgICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1vZC1saXN0LWxl ZnQtcGFkZGluZyk7DQogICAgfQ0KDQogICAgW2Rpcj0icnRsIl0gLm9kLUl0ZW1Db250ZW50 LWZvb3RlciwNCiAgICBbZGlyPSJydGwiXSAub2QtSXRlbUNvbnRlbnQtaGVhZGVyLA0KICAg IFtkaXI9InJ0bCJdIC5vZC1JdGVtQ29udGVudC1saXN0IHsNCiAgICAgIHBhZGRpbmctcmln aHQ6IHZhcigtLW9kLWxpc3QtbGVmdC1wYWRkaW5nKTsNCiAgICB9DQoNCiAgICBbZGlyPSJs dHIiXSAub2QtSXRlbUNvbnRlbnQtZm9vdGVyLA0KICAgIFtkaXI9Imx0ciJdIC5vZC1JdGVt Q29udGVudC1oZWFkZXIsDQogICAgW2Rpcj0ibHRyIl0gLm9kLUl0ZW1Db250ZW50LWxpc3Qg ew0KICAgICAgcGFkZGluZy1yaWdodDogdmFyKC0tb2QtbGlzdC1yaWdodC1wYWRkaW5nKTsN CiAgICB9DQoNCiAgICBbZGlyPSJydGwiXSAub2QtSXRlbUNvbnRlbnQtZm9vdGVyLA0KICAg IFtkaXI9InJ0bCJdIC5vZC1JdGVtQ29udGVudC1oZWFkZXIsDQogICAgW2Rpcj0icnRsIl0g Lm9kLUl0ZW1Db250ZW50LWxpc3Qgew0KICAgICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1vZC1s aXN0LXJpZ2h0LXBhZGRpbmcpOw0KICAgIH0NCg0KICAgIFtkaXI9Imx0ciJdIC54bGcgLm9k LUl0ZW1Db250ZW50LWZvb3RlciwNCiAgICBbZGlyPSJsdHIiXSAueGxnIC5vZC1JdGVtQ29u dGVudC1oZWFkZXIsDQogICAgW2Rpcj0ibHRyIl0gLnhsZyAub2QtSXRlbUNvbnRlbnQtbGlz dCwNCiAgICBbZGlyPSJsdHIiXSAueHhsZyAub2QtSXRlbUNvbnRlbnQtZm9vdGVyLA0KICAg IFtkaXI9Imx0ciJdIC54eGxnIC5vZC1JdGVtQ29udGVudC1oZWFkZXIsDQogICAgW2Rpcj0i bHRyIl0gLnh4bGcgLm9kLUl0ZW1Db250ZW50LWxpc3QsDQogICAgW2Rpcj0ibHRyIl0gLnh4 eGxnIC5vZC1JdGVtQ29udGVudC1mb290ZXIsDQogICAgW2Rpcj0ibHRyIl0gLnh4eGxnIC5v ZC1JdGVtQ29udGVudC1oZWFkZXIsDQogICAgW2Rpcj0ibHRyIl0gLnh4eGxnIC5vZC1JdGVt Q29udGVudC1saXN0LA0KICAgIFtkaXI9Imx0ciJdIC54eHh4bGcgLm9kLUl0ZW1Db250ZW50 LWZvb3RlciwNCiAgICBbZGlyPSJsdHIiXSAueHh4eGxnIC5vZC1JdGVtQ29udGVudC1oZWFk ZXIsDQogICAgW2Rpcj0ibHRyIl0gLnh4eHhsZyAub2QtSXRlbUNvbnRlbnQtbGlzdCB7DQog ICAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLW9kLWxpc3QtbGVmdC1wYWRkaW5nKTsNCiAgICB9 DQoNCiAgICBbZGlyPSJydGwiXSAueGxnIC5vZC1JdGVtQ29udGVudC1mb290ZXIsDQogICAg W2Rpcj0icnRsIl0gLnhsZyAub2QtSXRlbUNvbnRlbnQtaGVhZGVyLA0KICAgIFtkaXI9InJ0 bCJdIC54bGcgLm9kLUl0ZW1Db250ZW50LWxpc3QsDQogICAgW2Rpcj0icnRsIl0gLnh4bGcg Lm9kLUl0ZW1Db250ZW50LWZvb3RlciwNCiAgICBbZGlyPSJydGwiXSAueHhsZyAub2QtSXRl bUNvbnRlbnQtaGVhZGVyLA0KICAgIFtkaXI9InJ0bCJdIC54eGxnIC5vZC1JdGVtQ29udGVu dC1saXN0LA0KICAgIFtkaXI9InJ0bCJdIC54eHhsZyAub2QtSXRlbUNvbnRlbnQtZm9vdGVy LA0KICAgIFtkaXI9InJ0bCJdIC54eHhsZyAub2QtSXRlbUNvbnRlbnQtaGVhZGVyLA0KICAg IFtkaXI9InJ0bCJdIC54eHhsZyAub2QtSXRlbUNvbnRlbnQtbGlzdCwNCiAgICBbZGlyPSJy dGwiXSAueHh4eGxnIC5vZC1JdGVtQ29udGVudC1mb290ZXIsDQogICAgW2Rpcj0icnRsIl0g Lnh4eHhsZyAub2QtSXRlbUNvbnRlbnQtaGVhZGVyLA0KICAgIFtkaXI9InJ0bCJdIC54eHh4 bGcgLm9kLUl0ZW1Db250ZW50LWxpc3Qgew0KICAgICAgcGFkZGluZy1yaWdodDogdmFyKC0t b2QtbGlzdC1sZWZ0LXBhZGRpbmcpOw0KICAgIH0NCg0KICAgIFtkaXI9Imx0ciJdIC54bGcg Lm9kLUl0ZW1Db250ZW50LWZvb3RlciwNCiAgICBbZGlyPSJsdHIiXSAueGxnIC5vZC1JdGVt Q29udGVudC1oZWFkZXIsDQogICAgW2Rpcj0ibHRyIl0gLnhsZyAub2QtSXRlbUNvbnRlbnQt bGlzdCwNCiAgICBbZGlyPSJsdHIiXSAueHhsZyAub2QtSXRlbUNvbnRlbnQtZm9vdGVyLA0K ICAgIFtkaXI9Imx0ciJdIC54eGxnIC5vZC1JdGVtQ29udGVudC1oZWFkZXIsDQogICAgW2Rp cj0ibHRyIl0gLnh4bGcgLm9kLUl0ZW1Db250ZW50LWxpc3QsDQogICAgW2Rpcj0ibHRyIl0g Lnh4eGxnIC5vZC1JdGVtQ29udGVudC1mb290ZXIsDQogICAgW2Rpcj0ibHRyIl0gLnh4eGxn IC5vZC1JdGVtQ29udGVudC1oZWFkZXIsDQogICAgW2Rpcj0ibHRyIl0gLnh4eGxnIC5vZC1J dGVtQ29udGVudC1saXN0LA0KICAgIFtkaXI9Imx0ciJdIC54eHh4bGcgLm9kLUl0ZW1Db250 ZW50LWZvb3RlciwNCiAgICBbZGlyPSJsdHIiXSAueHh4eGxnIC5vZC1JdGVtQ29udGVudC1o ZWFkZXIsDQogICAgW2Rpcj0ibHRyIl0gLnh4eHhsZyAub2QtSXRlbUNvbnRlbnQtbGlzdCB7 DQogICAgICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1vZC1saXN0LXJpZ2h0LXBhZGRpbmcpOw0K ICAgIH0NCg0KICAgIFtkaXI9InJ0bCJdIC54bGcgLm9kLUl0ZW1Db250ZW50LWZvb3RlciwN CiAgICBbZGlyPSJydGwiXSAueGxnIC5vZC1JdGVtQ29udGVudC1oZWFkZXIsDQogICAgW2Rp cj0icnRsIl0gLnhsZyAub2QtSXRlbUNvbnRlbnQtbGlzdCwNCiAgICBbZGlyPSJydGwiXSAu eHhsZyAub2QtSXRlbUNvbnRlbnQtZm9vdGVyLA0KICAgIFtkaXI9InJ0bCJdIC54eGxnIC5v ZC1JdGVtQ29udGVudC1oZWFkZXIsDQogICAgW2Rpcj0icnRsIl0gLnh4bGcgLm9kLUl0ZW1D b250ZW50LWxpc3QsDQogICAgW2Rpcj0icnRsIl0gLnh4eGxnIC5vZC1JdGVtQ29udGVudC1m b290ZXIsDQogICAgW2Rpcj0icnRsIl0gLnh4eGxnIC5vZC1JdGVtQ29udGVudC1oZWFkZXIs DQogICAgW2Rpcj0icnRsIl0gLnh4eGxnIC5vZC1JdGVtQ29udGVudC1saXN0LA0KICAgIFtk aXI9InJ0bCJdIC54eHh4bGcgLm9kLUl0ZW1Db250ZW50LWZvb3RlciwNCiAgICBbZGlyPSJy dGwiXSAueHh4eGxnIC5vZC1JdGVtQ29udGVudC1oZWFkZXIsDQogICAgW2Rpcj0icnRsIl0g Lnh4eHhsZyAub2QtSXRlbUNvbnRlbnQtbGlzdCB7DQogICAgICBwYWRkaW5nLWxlZnQ6IHZh cigtLW9kLWxpc3QtcmlnaHQtcGFkZGluZyk7DQogICAgfQ0KDQogICAgW2Rpcj0ibHRyIl0g Lm1kIC5vZC1JdGVtQ29udGVudC1mb290ZXIsDQogICAgW2Rpcj0ibHRyIl0gLm1kIC5vZC1J dGVtQ29udGVudC1oZWFkZXIsDQogICAgW2Rpcj0ibHRyIl0gLm1kIC5vZC1JdGVtQ29udGVu dC1saXN0LA0KICAgIFtkaXI9Imx0ciJdIC5zbSAub2QtSXRlbUNvbnRlbnQtZm9vdGVyLA0K ICAgIFtkaXI9Imx0ciJdIC5zbSAub2QtSXRlbUNvbnRlbnQtaGVhZGVyLA0KICAgIFtkaXI9 Imx0ciJdIC5zbSAub2QtSXRlbUNvbnRlbnQtbGlzdCB7DQogICAgICBwYWRkaW5nLWxlZnQ6 IHZhcigtLW9kLWxpc3QtbGVmdC1wYWRkaW5nLXNtYWxsKTsNCiAgICB9DQoNCiAgICBbZGly PSJydGwiXSAubWQgLm9kLUl0ZW1Db250ZW50LWZvb3RlciwNCiAgICBbZGlyPSJydGwiXSAu bWQgLm9kLUl0ZW1Db250ZW50LWhlYWRlciwNCiAgICBbZGlyPSJydGwiXSAubWQgLm9kLUl0 ZW1Db250ZW50LWxpc3QsDQogICAgW2Rpcj0icnRsIl0gLnNtIC5vZC1JdGVtQ29udGVudC1m b290ZXIsDQogICAgW2Rpcj0icnRsIl0gLnNtIC5vZC1JdGVtQ29udGVudC1oZWFkZXIsDQog ICAgW2Rpcj0icnRsIl0gLnNtIC5vZC1JdGVtQ29udGVudC1saXN0IHsNCiAgICAgIHBhZGRp bmctcmlnaHQ6IHZhcigtLW9kLWxpc3QtbGVmdC1wYWRkaW5nLXNtYWxsKTsNCiAgICB9DQoN CiAgICBbZGlyPSJsdHIiXSAubWQgLm9kLUl0ZW1Db250ZW50LWZvb3RlciwNCiAgICBbZGly PSJsdHIiXSAubWQgLm9kLUl0ZW1Db250ZW50LWhlYWRlciwNCiAgICBbZGlyPSJsdHIiXSAu bWQgLm9kLUl0ZW1Db250ZW50LWxpc3QsDQogICAgW2Rpcj0ibHRyIl0gLnNtIC5vZC1JdGVt Q29udGVudC1mb290ZXIsDQogICAgW2Rpcj0ibHRyIl0gLnNtIC5vZC1JdGVtQ29udGVudC1o ZWFkZXIsDQogICAgW2Rpcj0ibHRyIl0gLnNtIC5vZC1JdGVtQ29udGVudC1saXN0IHsNCiAg ICAgIHBhZGRpbmctcmlnaHQ6IHZhcigtLW9kLWxpc3QtcmlnaHQtcGFkZGluZy1zbWFsbCk7 DQogICAgfQ0KDQogICAgW2Rpcj0icnRsIl0gLm1kIC5vZC1JdGVtQ29udGVudC1mb290ZXIs DQogICAgW2Rpcj0icnRsIl0gLm1kIC5vZC1JdGVtQ29udGVudC1oZWFkZXIsDQogICAgW2Rp cj0icnRsIl0gLm1kIC5vZC1JdGVtQ29udGVudC1saXN0LA0KICAgIFtkaXI9InJ0bCJdIC5z bSAub2QtSXRlbUNvbnRlbnQtZm9vdGVyLA0KICAgIFtkaXI9InJ0bCJdIC5zbSAub2QtSXRl bUNvbnRlbnQtaGVhZGVyLA0KICAgIFtkaXI9InJ0bCJdIC5zbSAub2QtSXRlbUNvbnRlbnQt bGlzdCB7DQogICAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLW9kLWxpc3QtcmlnaHQtcGFkZGlu Zy1zbWFsbCk7DQogICAgfQ0KDQogICAgLmlzT0QzIC5vZC1JdGVtQ29udGVudC1mb290ZXIs DQogICAgLmlzT0QzIC5vZC1JdGVtQ29udGVudC1saXN0IHsNCiAgICAgIC0tb2QtbGlzdC1s ZWZ0LXBhZGRpbmc6IDE2cHg7DQogICAgICAtLW9kLWxpc3QtcmlnaHQtcGFkZGluZzogNDBw eDsNCiAgICAgIC0tb2QtbGlzdC1sZWZ0LXBhZGRpbmctc21hbGw6IDEycHg7DQogICAgICAt LW9kLWxpc3QtcmlnaHQtcGFkZGluZy1zbWFsbDogMTJweDsNCiAgICB9DQoNCiAgICAuaXNP RDMgLm9kLUl0ZW1Db250ZW50LWhlYWRlciB7DQogICAgICAtLW9kLWxpc3QtbGVmdC1wYWRk aW5nOiAyNHB4Ow0KICAgICAgLS1vZC1saXN0LWxlZnQtcGFkZGluZy1zbWFsbDogMjBweDsN CiAgICAgIHBhZGRpbmctdG9wOiAyMHB4Ow0KICAgIH0NCg0KICAgIC5vZC1JdGVtQ29udGVu dC1oZWFkZXItc2hhcmVkSW5kaWNhdG9yIHsNCiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9j azsNCiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgICAgIHBhZGRpbmc6IDA7DQogICAg fQ0KDQogICAgLm9kLUl0ZW1Db250ZW50LWhlYWRlci1zaGFyZWRJbmRpY2F0b3IgLm9kLUl0 ZW1Db250ZW50LW1ldGFkYXRhIHsNCiAgICAgIHBhZGRpbmctYm90dG9tOiAzcHg7DQogICAg ICBtYXJnaW46IDA7DQogICAgfQ0KDQogICAgLm9kLUl0ZW1Db250ZW50LXN1YmhlYWRlciB7 DQogICAgICBmb250LXNpemU6IDE0cHg7DQogICAgICBmb250LXdlaWdodDogNDAwOw0KICAg ICAgbWFyZ2luOiAwIDMycHggMjBweDsNCiAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4Ow0KICAg IH0NCg0KICAgIC5pc09EMyAub2QtSXRlbUNvbnRlbnQtc3ViaGVhZGVyIHsNCiAgICAgIG1h cmdpbjogMCAyNXB4IDIwcHg7DQogICAgfQ0KDQogICAgLm9kLUl0ZW1zU2NvcGVJdGVtQ29u dGVudC1icmVhZGNydW1iLm9kLUl0ZW1Db250ZW50LWJyZWFkY3J1bWIgew0KICAgICAgZmxl eDogMSAxIGF1dG87DQogICAgICBtYXgtd2lkdGg6IDEwMCU7DQogICAgfQ0KDQogICAgLm9k LUl0ZW1zU2NvcGVJdGVtQ29udGVudC1saXN0Lm9kLUl0ZW1Db250ZW50LWxpc3Qgew0KICAg ICAgcGFkZGluZy10b3A6IDA7DQogICAgfQ0KDQogICAgLm9kLUl0ZW1zU2NvcGVJdGVtQ29u dGVudC1saXN0IC5tcy1UaWxlLWxpbmsgew0KICAgICAgY29sb3I6ICNmZmZmZmY7DQogICAg fQ0KDQogICAgLmlzRmx1ZW50Vk5leHQgLm9kLUl0ZW1zU2NvcGVJdGVtQ29udGVudC1saXN0 IC5tcy1UaWxlIHsNCiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsNCiAgICAgIGJhY2tncm91 bmQtY29sb3I6ICNmYWZhZmE7DQogICAgfQ0KDQogICAgLmlzRmx1ZW50Vk5leHQgLm9kLUl0 ZW1zU2NvcGVJdGVtQ29udGVudC1saXN0IC5tcy1UaWxlOmhvdmVyIHsNCiAgICAgIGJhY2tn cm91bmQtY29sb3I6ICNmMGYwZjA7DQogICAgfQ0KDQogICAgLmlzRmx1ZW50Vk5leHQgLm9k LUl0ZW1zU2NvcGVJdGVtQ29udGVudC1saXN0IC5tcy1UaWxlOmFjdGl2ZSB7DQogICAgICBi YWNrZ3JvdW5kLWNvbG9yOiAjZWJlYmViOw0KICAgIH0NCg0KICAgIC5pc0ZsdWVudFZOZXh0 IC5vZC1JdGVtc1Njb3BlSXRlbUNvbnRlbnQtbGlzdCAubXMtVGlsZS5tcy1UaWxlLS1pc1Nl bGVjdGVkIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlYmViZWI7DQogICAgfQ0KDQog ICAgLmlzRmx1ZW50Vk5leHQgLm9kLUl0ZW1zU2NvcGVJdGVtQ29udGVudC1saXN0IC5tcy1U aWxlLm1zLVRpbGUtLWhhc0ZvcmVncm91bmRGcmFtZSAubXMtVGlsZS1mb3JlZ3JvdW5kIHsN CiAgICAgIGJveC1zaGFkb3c6IG5vbmU7DQogICAgfQ0KDQogICAgLmlzRmx1ZW50Vk5leHQg Lm9kLUl0ZW1zU2NvcGVJdGVtQ29udGVudC1saXN0IC5tcy1UaWxlLm1zLVRpbGUtLWhhc0Zv cmVncm91bmRGcmFtZSAubXMtVGlsZS1mb3JlZ3JvdW5kOjphZnRlciB7DQogICAgICBib3gt c2hhZG93OiAwIDEuNnB4IDMuNnB4IDAgcmdiYSgwLCAwLCAwLCAwLjEzMiksDQogICAgICAg IDAgMC4zcHggMC45cHggMCByZ2JhKDAsIDAsIDAsIDAuMTA4KTsNCiAgICAgIGJvcmRlci1y YWRpdXM6IDRweDsNCiAgICAgIGluc2V0OiAtMnB4Ow0KICAgIH0NCg0KICAgIC5pc09EMyAu b2QtSXRlbXNTY29wZUl0ZW1Db250ZW50LWxpc3QgLm1zLVRpbGVzTGlzdCB7DQogICAgICBw YWRkaW5nLXRvcDogOHB4Ow0KICAgIH0NCg0KICAgIC5pc09EMyAub2QtSXRlbXNTY29wZUl0 ZW1Db250ZW50LWxpc3QgLm1zLVRpbGUgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFy KC0tY29sb3JUcmFuc3BhcmVudEJhY2tncm91bmQpOw0KICAgICAgYm9yZGVyLXJhZGl1czog MTJweDsNCiAgICB9DQoNCiAgICAuaXNPRDMgLm9kLUl0ZW1zU2NvcGVJdGVtQ29udGVudC1s aXN0IC5tcy1UaWxlOmhvdmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1 LCAyNTUsIDI1NSwgMC4yKTsNCiAgICAgIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdzQpOw0K ICAgIH0NCg0KICAgIC5pc09EMyAub2QtSXRlbXNTY29wZUl0ZW1Db250ZW50LWxpc3QgLm1z LVRpbGU6Zm9jdXMtdmlzaWJsZSB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1j b2xvclRyYW5zcGFyZW50QmFja2dyb3VuZCk7DQogICAgICBib3JkZXI6IDJweCBzb2xpZCB2 YXIoLS1jb2xvclN0cm9rZUZvY3VzMik7DQogICAgICBtYXJnaW46IC0ycHg7DQogICAgfQ0K DQogICAgLmlzT0QzIC5vZC1JdGVtc1Njb3BlSXRlbUNvbnRlbnQtbGlzdCAubXMtVGlsZS5t cy1UaWxlLS1pc1NlbGVjdGVkIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1 LCAyNTUsIDI1NSwgMC4yKTsNCiAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWNvbG9y Q29tcG91bmRCcmFuZFN0cm9rZSk7DQogICAgICBtYXJnaW46IC0ycHg7DQogICAgfQ0KDQog ICAgLmlzT0QzIC5vZC1JdGVtc1Njb3BlSXRlbUNvbnRlbnQtbGlzdCAubXMtVGlsZS5tcy1U aWxlLS1pc1NlbGVjdGVkOmhvdmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEo MjU1LCAyNTUsIDI1NSwgMC4yKTsNCiAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWNv bG9yQ29tcG91bmRCcmFuZFN0cm9rZUhvdmVyKTsNCiAgICAgIG1hcmdpbjogLTJweDsNCiAg ICAgIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdzQpOw0KICAgIH0NCg0KICAgIC5pc09EMyAu b2QtSXRlbXNTY29wZUl0ZW1Db250ZW50LWxpc3QgLm1zLVRpbGUubXMtVGlsZS0taXNTZWxl Y3RlZDpmb2N1cy12aXNpYmxlIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1 LCAyNTUsIDI1NSwgMC4yKTsNCiAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWNvbG9y U3Ryb2tlRm9jdXMyKTsNCiAgICAgIG1hcmdpbjogLTJweDsNCiAgICB9DQoNCiAgICAuaXNP RDMgLm9kLUl0ZW1zU2NvcGVJdGVtQ29udGVudC1saXN0IC5tcy1UaWxlIC5tcy1DaGVjayB7 DQogICAgICBib3JkZXI6IDNweCBzb2xpZCB2YXIoLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5k SW52ZXJ0ZWQpOw0KICAgICAgYm9yZGVyLXJhZGl1czogNTAlOw0KICAgIH0NCg0KICAgIC5p c09EMyAub2QtSXRlbXNTY29wZUl0ZW1Db250ZW50LWxpc3QgLm1zLVRpbGUgLm1zLUNoZWNr OjpiZWZvcmUgew0KICAgICAgaW5zZXQ6IDBweDsNCiAgICB9DQoNCiAgICAuaXNPRDMgLm9k LUl0ZW1zU2NvcGVJdGVtQ29udGVudC1saXN0IC5tcy1UaWxlIC5tcy1DaGVjazpob3Zlcjo6 YmVmb3JlIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yTmV1dHJhbEZv cmVncm91bmQyKTsNCiAgICB9DQoNCiAgICAuaXNPRDMgLm9kLUl0ZW1zU2NvcGVJdGVtQ29u dGVudC1saXN0IC5tcy1UaWxlIC5tcy1DaGVjayAubXMtQ2hlY2stY2hlY2sgew0KICAgICAg Y29sb3I6IHZhcigtLWNvbG9yTmV1dHJhbEZvcmVncm91bmRJbnZlcnRlZCk7DQogICAgfQ0K DQogICAgLmlzT0QzIC5vZC1JdGVtc1Njb3BlSXRlbUNvbnRlbnQtbGlzdCAubXMtVGlsZSAu bXMtQ2hlY2stY2lyY2xlIHsNCiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvck5ldXRyYWxGb3Jl Z3JvdW5kMik7DQogICAgfQ0KDQogICAgLmlzT0QzIC5vZC1JdGVtc1Njb3BlSXRlbUNvbnRl bnQtbGlzdCAubXMtVGlsZS0taXNTZWxlY3RlZCAubXMtQ2hlY2s6OmJlZm9yZSB7DQogICAg ICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvckNvbXBvdW5kQnJhbmRGb3JlZ3JvdW5k MSk7DQogICAgfQ0KDQogICAgLmlzT0QzIC5vZC1JdGVtc1Njb3BlSXRlbUNvbnRlbnQtbGlz dCAubXMtVGlsZS0taXNTZWxlY3RlZCAubXMtQ2hlY2sgLm1zLUNoZWNrLWNpcmNsZSB7DQog ICAgICBjb2xvcjogdmFyKC0tY29sb3JDb21wb3VuZEJyYW5kRm9yZWdyb3VuZDEpOw0KICAg IH0NCg0KICAgIC5pc09EMyAub2QtSXRlbXNTY29wZUl0ZW1Db250ZW50LWxpc3QgLm1zLVRp bGUtLWlzU2VsZWN0ZWQgLm1zLUNoZWNrOmhvdmVyOjpiZWZvcmUgew0KICAgICAgYmFja2dy b3VuZC1jb2xvcjogdmFyKC0tY29sb3JDb21wb3VuZEJyYW5kRm9yZWdyb3VuZDFIb3Zlcik7 DQogICAgfQ0KDQogICAgLmlzT0QzIC5vZC1JdGVtc1Njb3BlSXRlbUNvbnRlbnQtbGlzdCAu bXMtVGlsZS0taXNTZWxlY3RlZCAubXMtQ2hlY2s6aG92ZXIgLm1zLUNoZWNrLWNpcmNsZSB7 DQogICAgICBjb2xvcjogdmFyKC0tY29sb3JDb21wb3VuZEJyYW5kRm9yZWdyb3VuZDFIb3Zl cik7DQogICAgfQ0KDQogICAgLkZpbGVzLWNvbnRlbnQgLm9kLUl0ZW1zU2NvcGVJdGVtQ29u dGVudC1saXN0Lm9kLUl0ZW1Db250ZW50LWxpc3QsDQogICAgLm9kLUZpbGVzUGFnZUNvbnRl bnQtY29udGVudCAub2QtSXRlbXNTY29wZUl0ZW1Db250ZW50LWxpc3Qub2QtSXRlbUNvbnRl bnQtbGlzdCB7DQogICAgICBwYWRkaW5nLWJvdHRvbTogNjBweDsNCiAgICB9DQoNCiAgICAu RmlsZXMtY29udGVudCAub2QtSXRlbXNTY29wZUl0ZW1Db250ZW50LWxpc3Qub2QtSXRlbUNv bnRlbnQtbGlzdC5vZC1JdGVtQ29udGVudC1saXN0LS1zdGlja3ksDQogICAgLm9kLUZpbGVz UGFnZUNvbnRlbnQtY29udGVudCAub2QtSXRlbXNTY29wZUl0ZW1Db250ZW50LWxpc3Qub2Qt SXRlbUNvbnRlbnQtbGlzdC5vZC1JdGVtQ29udGVudC1saXN0LS1zdGlja3kgew0KICAgICAg cGFkZGluZy1ib3R0b206IDA7DQogICAgfQ0KDQogICAgLm1zLURldGFpbHNSb3cgew0KICAg ICAgd2lkdGg6IDEwMCU7DQogICAgfQ0KDQogICAgLnhsZyAub2QtSXRlbXNTY29wZUl0ZW1D b250ZW50LWhlYWRlci5vZC1JdGVtQ29udGVudC1oZWFkZXIsDQogICAgLnh4bGcgLm9kLUl0 ZW1zU2NvcGVJdGVtQ29udGVudC1oZWFkZXIub2QtSXRlbUNvbnRlbnQtaGVhZGVyLA0KICAg IC54eHhsZyAub2QtSXRlbXNTY29wZUl0ZW1Db250ZW50LWhlYWRlci5vZC1JdGVtQ29udGVu dC1oZWFkZXIsDQogICAgLnh4eHhsZyAub2QtSXRlbXNTY29wZUl0ZW1Db250ZW50LWhlYWRl ci5vZC1JdGVtQ29udGVudC1oZWFkZXIgew0KICAgICAgcGFkZGluZy1ib3R0b206IDIwcHg7 DQogICAgfQ0KDQogICAgLm9kLUl0ZW1Db250ZW50LWZvb3Rlci5vZC1JdGVtQ29udGVudC1m b290ZXItLXN0aWNreSAubXMtRGV0YWlsc1JvdyB7DQogICAgICBhbmltYXRpb246IG5vbmU7 DQogICAgfQ0KDQogICAgLm5ld1NpZ25hbF8xNzExM2Y5NCB7DQogICAgICB3aWR0aDogMDsN CiAgICAgIGhlaWdodDogMWVtOw0KICAgICAgcG9zaXRpb246IHJlbGF0aXZlOw0KICAgICAg bGluZS1oZWlnaHQ6IDFlbTsNCiAgICAgIGNvbG9yOiAjMDA3OGQ0Ow0KICAgIH0NCg0KICAg IGh0bWxbZGlyPSJsdHIiXSAubmV3U2lnbmFsXzE3MTEzZjk0IHsNCiAgICAgIG1hcmdpbi1y aWdodDogMDsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0icnRsIl0gLm5ld1NpZ25hbF8xNzEx M2Y5NCB7DQogICAgICBtYXJnaW4tbGVmdDogMDsNCiAgICB9DQoNCiAgICAuc2VsZWN0ZWRf MTcxMTNmOTQgLm5ld1NpZ25hbF8xNzExM2Y5NCB7DQogICAgICBjb2xvcjogIzAwNWE5ZTsN CiAgICB9DQoNCiAgICAubmV3SWNvbl8xNzExM2Y5NCB7DQogICAgICBwb3NpdGlvbjogYWJz b2x1dGU7DQogICAgICBib3R0b206IDEwMCU7DQogICAgICBmb250LXNpemU6IDAuNjZlbTsN CiAgICAgIG1hcmdpbi1ib3R0b206IC0wLjllbTsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0i bHRyIl0gLm5ld0ljb25fMTcxMTNmOTQgew0KICAgICAgcmlnaHQ6IC0wLjE1ZW07DQogICAg fQ0KDQogICAgaHRtbFtkaXI9InJ0bCJdIC5uZXdJY29uXzE3MTEzZjk0IHsNCiAgICAgIGxl ZnQ6IC0wLjE1ZW07DQogICAgfQ0KDQogICAgLmNvbW1lbnRzXzE3MTEzZjk0IHsNCiAgICAg IGNvbG9yOiAjMDA3OGQ0Ow0KICAgIH0NCg0KICAgIC5zZWxlY3RlZF8xNzExM2Y5NCAuY29t bWVudHNfMTcxMTNmOTQgew0KICAgICAgY29sb3I6ICMwMDVhOWU7DQogICAgfQ0KDQogICAg LmNvbW1lbnRzSWNvbl8xNzExM2Y5NCB7DQogICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxl Ow0KICAgIH0NCg0KICAgIC5jb21tZW50c0NvdW50XzE3MTEzZjk0IHsNCiAgICAgIGZvbnQt c2l6ZTogMC45ZW07DQogICAgICBmb250LXdlaWdodDogNjAwOw0KICAgICAgdmVydGljYWwt YWxpZ246IGJhc2VsaW5lOw0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJsdHIiXSAuY29tbWVu dHNDb3VudF8xNzExM2Y5NCB7DQogICAgICBtYXJnaW4tbGVmdDogMC4yZW07DQogICAgfQ0K DQogICAgaHRtbFtkaXI9InJ0bCJdIC5jb21tZW50c0NvdW50XzE3MTEzZjk0IHsNCiAgICAg IG1hcmdpbi1yaWdodDogMC4yZW07DQogICAgfQ0KDQogICAgLnRyZW5kaW5nXzE3MTEzZjk0 IHsNCiAgICAgIGNvbG9yOiAjMTA3YzEwOw0KICAgIH0NCg0KICAgIC5ibG9ja2VkXzE3MTEz Zjk0IHsNCiAgICAgIGNvbG9yOiAjYTQyNjJjOw0KICAgIH0NCg0KICAgIC53YXJuaW5nXzE3 MTEzZjk0IHsNCiAgICAgIGNvbG9yOiAjY2YzOTAyOw0KICAgIH0NCg0KICAgIC5zaGFyZWRf MTcxMTNmOTQgew0KICAgICAgY29sb3I6ICM2MTYxNjE7DQogICAgfQ0KDQogICAgLnNlbGVj dGVkXzE3MTEzZjk0IC5zaGFyZWRfMTcxMTNmOTQgew0KICAgICAgY29sb3I6ICMwMDAwMDA7 DQogICAgfQ0KDQogICAgLmZvbGRlcl8xNzExM2Y5NCB7DQogICAgICBjb2xvcjogIzYxNjE2 MTsNCiAgICB9DQoNCiAgICAuc2VsZWN0ZWRfMTcxMTNmOTQgLmZvbGRlcl8xNzExM2Y5NCB7 DQogICAgICBjb2xvcjogIzAwMDAwMDsNCiAgICB9DQoNCiAgICAubG9ja18xNzExM2Y5NCB7 DQogICAgICBjb2xvcjogIzYxNjE2MTsNCiAgICB9DQoNCiAgICAuc2VsZWN0ZWRfMTcxMTNm OTQgLmxvY2tfMTcxMTNmOTQgew0KICAgICAgY29sb3I6ICMwMDAwMDA7DQogICAgfQ0KDQog ICAgLm1pc3NpbmdNZXRhZGF0YV8xNzExM2Y5NCB7DQogICAgICBjb2xvcjogI2NmMzkwMjsN CiAgICB9DQoNCiAgICAueW91Q2hlY2tlZE91dF8xNzExM2Y5NCB7DQogICAgICBjb2xvcjog I2E0MjYyYzsNCiAgICB9DQoNCiAgICAuc29tZW9uZUNoZWNrZWRPdXRfMTcxMTNmOTQgew0K ICAgICAgY29sb3I6ICM2MTYxNjE7DQogICAgfQ0KDQogICAgLnNlbGVjdGVkXzE3MTEzZjk0 IC5zb21lb25lQ2hlY2tlZE91dF8xNzExM2Y5NCB7DQogICAgICBjb2xvcjogIzAwMDAwMDsN CiAgICB9DQoNCiAgICAuYXdhaXRpbmdBcHByb3ZhbF8xNzExM2Y5NCB7DQogICAgICBjb2xv cjogI2FkMzEwMDsNCiAgICB9DQoNCiAgICAubWVudGlvbl8xNzExM2Y5NCB7DQogICAgICBw b3NpdGlvbjogcmVsYXRpdmU7DQogICAgICBjb2xvcjogIzAwNzhkNDsNCiAgICB9DQoNCiAg ICAuc2VsZWN0ZWRfMTcxMTNmOTQgLm1lbnRpb25fMTcxMTNmOTQgew0KICAgICAgY29sb3I6 ICMwMDVhOWU7DQogICAgfQ0KDQogICAgLnVuc2VlbkVkaXRfMTcxMTNmOTQgew0KICAgICAg Y29sb3I6ICMwMDc4ZDQ7DQogICAgfQ0KDQogICAgLnNlbGVjdGVkXzE3MTEzZjk0IC51bnNl ZW5FZGl0XzE3MTEzZjk0IHsNCiAgICAgIGNvbG9yOiAjMDA1YTllOw0KICAgIH0NCg0KICAg IC51bnNlZW5SZXBseV8xNzExM2Y5NCB7DQogICAgICBjb2xvcjogIzAwNzhkNDsNCiAgICB9 DQoNCiAgICAuc2VsZWN0ZWRfMTcxMTNmOTQgLnVuc2VlblJlcGx5XzE3MTEzZjk0IHsNCiAg ICAgIGNvbG9yOiAjMDA1YTllOw0KICAgIH0NCg0KICAgIGkudW5zZWVuUmVwbHlfMTcxMTNm OTQgew0KICAgICAgdG9wOiAwLjI1ZW07DQogICAgfQ0KDQogICAgLmVtYWlsZWRfMTcxMTNm OTQgew0KICAgICAgY29sb3I6ICMwMDc4ZDQ7DQogICAgfQ0KDQogICAgLnNlbGVjdGVkXzE3 MTEzZjk0IC5lbWFpbGVkXzE3MTEzZjk0IHsNCiAgICAgIGNvbG9yOiAjMDA1YTllOw0KICAg IH0NCg0KICAgIGkuZW1haWxlZF8xNzExM2Y5NCB7DQogICAgICB0b3A6IDAuMjVlbTsNCiAg ICB9DQoNCiAgICAubWFsd2FyZURldGVjdGVkXzE3MTEzZjk0IHsNCiAgICAgIGNvbG9yOiAj YTQyNjJjOw0KICAgIH0NCg0KICAgIC5yZWFkT25seV8xNzExM2Y5NCB7DQogICAgICBjb2xv cjogIzYxNjE2MTsNCiAgICB9DQoNCiAgICAuc2VsZWN0ZWRfMTcxMTNmOTQgLnJlYWRPbmx5 XzE3MTEzZjk0IHsNCiAgICAgIGNvbG9yOiAjMDAwMDAwOw0KICAgIH0NCg0KICAgIC5leHRl cm5hbF8xNzExM2Y5NCB7DQogICAgICBjb2xvcjogIzYxNjE2MTsNCiAgICB9DQoNCiAgICAu c2VsZWN0ZWRfMTcxMTNmOTQgLmV4dGVybmFsXzE3MTEzZjk0IHsNCiAgICAgIGNvbG9yOiAj MDAwMDAwOw0KICAgIH0NCg0KICAgIC5yZWNvcmRfMTcxMTNmOTQgew0KICAgICAgY29sb3I6 ICM2MTYxNjE7DQogICAgfQ0KDQogICAgLnNlbGVjdGVkXzE3MTEzZjk0IC5yZWNvcmRfMTcx MTNmOTQgew0KICAgICAgY29sb3I6ICMwMDAwMDA7DQogICAgfQ0KDQogICAgLmxpdmVFZGl0 XzE3MTEzZjk0IHsNCiAgICAgIGRpc3BsYXk6IG5vbmU7DQogICAgfQ0KDQogICAgLmJvb2tt YXJrT3V0bGluZV8xNzExM2Y5NCB7DQogICAgICBjb2xvcjogIzYxNjE2MTsNCiAgICB9DQoN CiAgICAuYm9va21hcmtGaWxsZWRfMTcxMTNmOTQgew0KICAgICAgY29sb3I6ICM2MTYxNjE7 DQogICAgfQ0KDQogICAgLm5lZWRzUmVwdWJsaXNoaW5nXzE3MTEzZjk0IHsNCiAgICAgIGNv bG9yOiAjZDI5MjAwOw0KICAgIH0NCg0KICAgIC5pdGVtU2NoZWR1bGVkXzE3MTEzZjk0IHsN CiAgICAgIGNvbG9yOiAjNjE2MTYxOw0KICAgIH0NCg0KICAgIC5hcmlhRGVzY3JpcHRpb25f YzQ1YmVlNmIgew0KICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICAgd2lkdGg6IDFw eDsNCiAgICAgIGhlaWdodDogMXB4Ow0KICAgICAgcGFkZGluZzogMDsNCiAgICAgIG1hcmdp bjogLTFweDsNCiAgICAgIG92ZXJmbG93OiBoaWRkZW47DQogICAgICBjbGlwOiByZWN0KDAs IDAsIDAsIDApOw0KICAgICAgYm9yZGVyOiAwOw0KICAgIH0NCg0KICAgIC5ub0xpbmtUZXh0 X2M0NWJlZTZiIHsNCiAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsNCiAgICB9DQoNCiAgICAu bXMtRGV0YWlsc1Jvdy1jZWxsIC5uYW1lRmllbGRfYzQ1YmVlNmIgew0KICAgICAgZm9udC1z aXplOiAxNHB4Ow0KICAgICAgZGlzcGxheTogaW5saW5lOw0KICAgICAgbWF4LXdpZHRoOiAx MDAlOw0KICAgICAgY29sb3I6ICMyNDI0MjQ7DQogICAgfQ0KDQogICAgQG1lZGlhIHNjcmVl biBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpLA0KICAgIHNjcmVlbiBhbmQgKGZv cmNlZC1jb2xvcnM6IGFjdGl2ZSkgew0KICAgICAgLm1zLURldGFpbHNSb3ctY2VsbCAubmFt ZUZpZWxkX2M0NWJlZTZiIHsNCiAgICAgICAgY29sb3I6IFdpbmRvd1RleHQ7DQogICAgICB9 DQogICAgfQ0KDQogICAgLm1zLURldGFpbHNSb3ctY2VsbCAubXMtTGluay5uYW1lRmllbGRf YzQ1YmVlNmIgew0KICAgICAgZm9udC1zaXplOiAxNHB4Ow0KICAgICAgLXdlYmtpdC11c2Vy LXNlbGVjdDogbm9uZTsNCiAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTsNCiAgICAgIHVz ZXItc2VsZWN0OiBub25lOw0KICAgICAgY29sb3I6ICMyNDI0MjQ7DQogICAgfQ0KDQogICAg Lm1zLURldGFpbHNSb3ctY2VsbCAubXMtTGluay5uYW1lRmllbGRfYzQ1YmVlNmIuY2xpY2th YmxlX2M0NWJlZTZiOmhvdmVyIHsNCiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5l Ow0KICAgICAgY29sb3I6ICMyNDI0MjQ7DQogICAgfQ0KDQogICAgLm1zLURldGFpbHNSb3ct Y2VsbCAubXMtTGluay5uYW1lRmllbGRfYzQ1YmVlNmI6Zm9jdXMsDQogICAgLm1zLURldGFp bHNSb3ctY2VsbCAubXMtTGluay5uYW1lRmllbGRfYzQ1YmVlNmI6dmlzaXRlZCB7DQogICAg ICBjb2xvcjogIzI0MjQyNDsNCiAgICB9DQoNCiAgICBAbWVkaWEgc2NyZWVuIGFuZCAoLW1z LWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSksDQogICAgc2NyZWVuIGFuZCAoZm9yY2VkLWNvbG9y czogYWN0aXZlKSB7DQogICAgICAubXMtRGV0YWlsc1Jvdy1jZWxsIC5tcy1MaW5rLm5hbWVG aWVsZF9jNDViZWU2YiB7DQogICAgICAgIGNvbG9yOiBXaW5kb3dUZXh0Ow0KICAgICAgfQ0K DQogICAgICAubXMtRGV0YWlsc1Jvdy1jZWxsIC5tcy1MaW5rLm5hbWVGaWVsZF9jNDViZWU2 Yi5jbGlja2FibGVfYzQ1YmVlNmI6aG92ZXIgew0KICAgICAgICBjb2xvcjogV2luZG93VGV4 dDsNCiAgICAgIH0NCg0KICAgICAgLm1zLURldGFpbHNSb3ctY2VsbCAubXMtTGluay5uYW1l RmllbGRfYzQ1YmVlNmI6Zm9jdXMsDQogICAgICAubXMtRGV0YWlsc1Jvdy1jZWxsIC5tcy1M aW5rLm5hbWVGaWVsZF9jNDViZWU2Yjp2aXNpdGVkIHsNCiAgICAgICAgY29sb3I6IFdpbmRv d1RleHQ7DQogICAgICB9DQogICAgfQ0KDQogICAgQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1o aWdoLWNvbnRyYXN0OiBhY3RpdmUpLA0KICAgIHNjcmVlbiBhbmQgKGZvcmNlZC1jb2xvcnM6 IGFjdGl2ZSkgew0KICAgICAgLm1zLURldGFpbHNSb3cuaXMtc2VsZWN0ZWQgLm1zLURldGFp bHNSb3ctY2VsbCAubmFtZUZpZWxkX2M0NWJlZTZiIHsNCiAgICAgICAgY29sb3I6IEhpZ2hs aWdodFRleHQ7DQogICAgICB9DQogICAgfQ0KDQogICAgLm1zLURldGFpbHNSb3cuaXMtc2Vs ZWN0ZWQgLm1zLURldGFpbHNSb3ctY2VsbCAubXMtTGluay5uYW1lRmllbGRfYzQ1YmVlNmIg ew0KICAgICAgZm9udC13ZWlnaHQ6IDYwMDsNCiAgICB9DQoNCiAgICBAbWVkaWEgc2NyZWVu IGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSksDQogICAgc2NyZWVuIGFuZCAoZm9y Y2VkLWNvbG9yczogYWN0aXZlKSB7DQogICAgICAubXMtRGV0YWlsc1Jvdy5pcy1zZWxlY3Rl ZCAubXMtRGV0YWlsc1Jvdy1jZWxsIC5tcy1MaW5rLm5hbWVGaWVsZF9jNDViZWU2YiB7DQog ICAgICAgIGNvbG9yOiBIaWdobGlnaHRUZXh0Ow0KICAgICAgfQ0KICAgIH0NCg0KICAgIC5t cy1EZXRhaWxzUm93LmlzLXNlbGVjdGVkIC5tcy1EZXRhaWxzUm93LWNlbGwgLm1zLUxpbmsu bmFtZUZpZWxkX2M0NWJlZTZiOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjMTQxNDE0Ow0KICAg IH0NCg0KICAgIEBtZWRpYSBzY3JlZW4gYW5kICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZl KSwNCiAgICBzY3JlZW4gYW5kIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpIHsNCiAgICAgIC5t cy1EZXRhaWxzUm93LmlzLXNlbGVjdGVkIC5tcy1EZXRhaWxzUm93LWNlbGwgLm1zLUxpbmsu bmFtZUZpZWxkX2M0NWJlZTZiOmhvdmVyIHsNCiAgICAgICAgY29sb3I6IEhpZ2hsaWdodFRl eHQ7DQogICAgICB9DQogICAgfQ0KDQogICAgLnJvb3RfMTM3YTc1NjUgew0KICAgICAgZm9u dC1zaXplOiAxNHB4Ow0KICAgICAgY29sb3I6ICMwMDc4ZDQ7DQogICAgICBvdXRsaW5lOiAw Ow0KICAgICAgZm9udC1zaXplOiBpbmhlcml0Ow0KICAgICAgZm9udC13ZWlnaHQ6IGluaGVy aXQ7DQogICAgICBiYWNrZ3JvdW5kOiAwIDA7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0 cmFuc3BhcmVudDsNCiAgICAgIGJvcmRlcjogbm9uZTsNCiAgICAgIGN1cnNvcjogcG9pbnRl cjsNCiAgICAgIGRpc3BsYXk6IGlubGluZTsNCiAgICAgIG1hcmdpbjogMDsNCiAgICAgIG92 ZXJmbG93OiBpbmhlcml0Ow0KICAgICAgcGFkZGluZzogMDsNCiAgICAgIHRleHQtYWxpZ246 IGxlZnQ7DQogICAgICB0ZXh0LW92ZXJmbG93OiBpbmhlcml0Ow0KICAgICAgLXdlYmtpdC11 c2VyLXNlbGVjdDogdGV4dDsNCiAgICAgIC1tcy11c2VyLXNlbGVjdDogdGV4dDsNCiAgICAg IHVzZXItc2VsZWN0OiB0ZXh0Ow0KICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHRy YW5zcGFyZW50Ow0KICAgIH0NCg0KICAgIEBtZWRpYSBzY3JlZW4gYW5kICgtbXMtaGlnaC1j b250cmFzdDogYWN0aXZlKSwNCiAgICBzY3JlZW4gYW5kIChmb3JjZWQtY29sb3JzOiBhY3Rp dmUpIHsNCiAgICAgIC5yb290XzEzN2E3NTY1IHsNCiAgICAgICAgYm9yZGVyLWJvdHRvbTog Im5vbmUiOw0KICAgICAgfQ0KICAgIH0NCg0KICAgIEBtZWRpYSBzY3JlZW4gYW5kICgtbXMt aGlnaC1jb250cmFzdDogYWN0aXZlKSwNCiAgICBzY3JlZW4gYW5kIChmb3JjZWQtY29sb3Jz OiBhY3RpdmUpIHsNCiAgICAgIC5yb290XzEzN2E3NTY1IHsNCiAgICAgICAgY29sb3I6ICIj RkZGRjAwIjsNCiAgICAgIH0NCiAgICB9DQoNCiAgICBAbWVkaWEgc2NyZWVuIGFuZCAoLW1z LWhpZ2gtY29udHJhc3Q6IGJsYWNrLW9uLXdoaXRlKSwNCiAgICBzY3JlZW4gYW5kIChmb3Jj ZWQtY29sb3JzOiBhY3RpdmUpIGFuZCAocHJlZmVycy1jb2xvci1zY2hlbWU6IGxpZ2h0KSB7 DQogICAgICAucm9vdF8xMzdhNzU2NSB7DQogICAgICAgIGNvbG9yOiAiIzAwMDA5RiI7DQog ICAgICB9DQogICAgfQ0KDQogICAgLnJvb3RfMTM3YTc1NjUgLmlzLWRpc2FibGVkIHsNCiAg ICAgIGNvbG9yOiAjYmRiZGJkOw0KICAgICAgY3Vyc29yOiBkZWZhdWx0Ow0KICAgIH0NCg0K ICAgIC5yb290XzEzN2E3NTY1IC5pcy1kaXNhYmxlZDpsaW5rLA0KICAgIC5yb290XzEzN2E3 NTY1IC5pcy1kaXNhYmxlZDp2aXNpdGVkIHsNCiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25l Ow0KICAgIH0NCg0KICAgIC5yb290XzEzN2E3NTY1IDpub3QoLmlzLWRpc2FibGVkKTphY3Rp dmUsDQogICAgLnJvb3RfMTM3YTc1NjUgOm5vdCguaXMtZGlzYWJsZWQpOmFjdGl2ZTpob3Zl ciwNCiAgICAucm9vdF8xMzdhNzU2NSA6bm90KC5pcy1kaXNhYmxlZCk6aG92ZXIgew0KICAg ICAgY29sb3I6ICMwMDQ1Nzg7DQogICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsN CiAgICB9DQoNCiAgICAucm9vdF8xMzdhNzU2NSA6bm90KC5pcy1kaXNhYmxlZCk6Zm9jdXMg ew0KICAgICAgY29sb3I6ICMwMDc4ZDQ7DQogICAgfQ0KDQogICAgLm1zLUZhYnJpYy0taXNG b2N1c1Zpc2libGUgLnJvb3RfMTM3YTc1NjU6Zm9jdXMgew0KICAgICAgYm94LXNoYWRvdzog MCAwIDAgMXB4ICMwMDAwMDAgaW5zZXQ7DQogICAgfQ0KDQogICAgQG1lZGlhIHNjcmVlbiBh bmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpLA0KICAgIHNjcmVlbiBhbmQgKGZvcmNl ZC1jb2xvcnM6IGFjdGl2ZSkgew0KICAgICAgLm1zLUZhYnJpYy0taXNGb2N1c1Zpc2libGUg LnJvb3RfMTM3YTc1NjU6Zm9jdXMgew0KICAgICAgICBvdXRsaW5lOiAxcHggc29saWQgV2lu ZG93VGV4dDsNCiAgICAgIH0NCiAgICB9DQoNCiAgICAuaGVyb0J1dHRvbl8xNWFmNjFjNyB7 DQogICAgICBkaXNwbGF5OiBibG9jazsNCiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAg ICAgIGxlZnQ6IDA7DQogICAgICB0b3A6IDA7DQogICAgICB3aWR0aDogMzZweDsNCiAgICAg IGhlaWdodDogMTAwJTsNCiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsNCiAgICAgIG91dGxp bmU6IDA7DQogICAgICBib3JkZXI6IG5vbmU7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0 cmFuc3BhcmVudDsNCiAgICAgIG1hcmdpbjogMDsNCiAgICAgIHBhZGRpbmc6IDA7DQogICAg ICBjb2xvcjogIzYxNjE2MTsNCiAgICAgIGZvbnQtc2l6ZTogMTRweDsNCiAgICAgIGJvcmRl ci1yYWRpdXM6IDA7DQogICAgICBjdXJzb3I6IHBvaW50ZXI7DQogICAgfQ0KDQogICAgLmhl cm9CdXR0b25fMTVhZjYxYzc6aG92ZXIgew0KICAgICAgd2lkdGg6IDM2cHg7DQogICAgICBi YWNrZ3JvdW5kLWNvbG9yOiAjZWJlYmViOw0KICAgICAgY29sb3I6ICM2MTYxNjE7DQogICAg fQ0KDQogICAgaHRtbFtkaXI9Imx0ciJdIC5oZXJvQnV0dG9uXzE1YWY2MWM3IGkgew0KICAg ICAgcmlnaHQ6IDEwcHg7DQogICAgfQ0KDQogICAgaHRtbFtkaXI9InJ0bCJdIC5oZXJvQnV0 dG9uXzE1YWY2MWM3IGkgew0KICAgICAgbGVmdDogMTBweDsNCiAgICB9DQoNCiAgICAuaXNG bHVlbnRWTmV4dCAuaGVyb0J1dHRvbl8xNWFmNjFjNyB7DQogICAgICBib3JkZXItcmFkaXVz OiA0cHg7DQogICAgfQ0KDQogICAgLmlzT0QzIC5pcy1zZWxlY3RlZCAuaGVyb0J1dHRvbl8x NWFmNjFjNzpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvckJy YW5kQmFja2dyb3VuZDJQcmVzc2VkKTsNCiAgICB9DQoNCiAgICAuaXNPRDMgLmhlcm9CdXR0 b25fMTVhZjYxYzcgew0KICAgICAgd2lkdGg6IDI4cHg7DQogICAgICBoZWlnaHQ6IDI4cHg7 DQogICAgfQ0KDQogICAgaHRtbFtkaXI9Imx0ciJdIC5pc09EMyAuaGVyb0J1dHRvbl8xNWFm NjFjNysuaGVyb0J1dHRvbl8xNWFmNjFjNyB7DQogICAgICBtYXJnaW4tbGVmdDogNHB4Ow0K ICAgIH0NCg0KICAgIGh0bWxbZGlyPSJydGwiXSAuaXNPRDMgLmhlcm9CdXR0b25fMTVhZjYx YzcrLmhlcm9CdXR0b25fMTVhZjYxYzcgew0KICAgICAgbWFyZ2luLXJpZ2h0OiA0cHg7DQog ICAgfQ0KDQogICAgLm1pbmltYWxfMTVhZjYxYzcgew0KICAgICAgcGFkZGluZy10b3A6IDE0 cHg7DQogICAgICBwYWRkaW5nLWJvdHRvbTogMTRweDsNCiAgICAgIG1hcmdpbi10b3A6IC0x MXB4Ow0KICAgICAgbWFyZ2luLWJvdHRvbTogLTExcHg7DQogICAgfQ0KDQogICAgLnJvb3Rf MTVhZjYxYzcgew0KICAgICAgZGlzcGxheTogZmxleDsNCiAgICAgIGZsZXgtd3JhcDogbm93 cmFwOw0KICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsNCiAgICAgIHdoaXRlLXNwYWNlOiBu b3dyYXA7DQogICAgICBoZWlnaHQ6IDEwMCU7DQogICAgfQ0KDQogICAgLm1zLURldGFpbHNS b3ctY2VsbCBcLS1WZXJ0aWNhbGx5Q2VudGVyIC5oZXJvQnV0dG9uXzE1YWY2MWM3IGkgew0K ICAgICAgcG9zaXRpb246IHJlbGF0aXZlOw0KICAgICAgdG9wOiAxcHg7DQogICAgfQ0KDQog ICAgaHRtbFtkaXI9Imx0ciJdIC5tcy1EZXRhaWxzUm93LWNlbGwgXC0tVmVydGljYWxseUNl bnRlciAuaGVyb0J1dHRvbl8xNWFmNjFjNyBpIHsNCiAgICAgIHJpZ2h0OiAwOw0KICAgIH0N Cg0KICAgIGh0bWxbZGlyPSJydGwiXSAubXMtRGV0YWlsc1Jvdy1jZWxsIFwtLVZlcnRpY2Fs bHlDZW50ZXIgLmhlcm9CdXR0b25fMTVhZjYxYzcgaSB7DQogICAgICBsZWZ0OiAwOw0KICAg IH0NCg0KICAgIC5tcy1EZXRhaWxzUm93IC5oZXJvQnV0dG9uXzE1YWY2MWM3IHsNCiAgICAg IHZpc2liaWxpdHk6IGhpZGRlbjsNCiAgICAgIGRpc3BsYXk6IG5vbmU7DQogICAgfQ0KDQog ICAgLm1zLURldGFpbHNSb3c6aG92ZXIgLmhlcm9CdXR0b25fMTVhZjYxYzcgew0KICAgICAg dmlzaWJpbGl0eTogdmlzaWJsZTsNCiAgICAgIGRpc3BsYXk6IGJsb2NrOw0KICAgIH0NCg0K ICAgIEBtZWRpYSBzY3JlZW4gYW5kICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSwNCiAg ICBzY3JlZW4gYW5kIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpIHsNCiAgICAgIC5tcy1EZXRh aWxzUm93OmhvdmVyIC5oZXJvQnV0dG9uXzE1YWY2MWM3IHsNCiAgICAgICAgY29sb3I6IEJ1 dHRvblRleHQ7DQogICAgICB9DQogICAgfQ0KDQogICAgLmlzLXNlbGVjdGVkIC5oZXJvQnV0 dG9uXzE1YWY2MWM3LA0KICAgIC5pcy1zZWxlY3RlZDpob3ZlciAuaGVyb0J1dHRvbl8xNWFm NjFjNyB7DQogICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOw0KICAgICAgZGlzcGxheTogYmxv Y2s7DQogICAgfQ0KDQogICAgQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0 OiBhY3RpdmUpLA0KICAgIHNjcmVlbiBhbmQgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSkgew0K DQogICAgICAuaXMtc2VsZWN0ZWQgLmhlcm9CdXR0b25fMTVhZjYxYzcsDQogICAgICAuaXMt c2VsZWN0ZWQ6aG92ZXIgLmhlcm9CdXR0b25fMTVhZjYxYzcgew0KICAgICAgICBjb2xvcjog SGlnaGxpZ2h0VGV4dDsNCiAgICAgIH0NCiAgICB9DQoNCiAgICBAbWVkaWEgc2NyZWVuIGFu ZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSksDQogICAgc2NyZWVuIGFuZCAoZm9yY2Vk LWNvbG9yczogYWN0aXZlKSB7DQoNCiAgICAgIC5pcy1zZWxlY3RlZCAuaGVyb0J1dHRvbl8x NWFmNjFjNzpmb2N1czo6YWZ0ZXIsDQogICAgICAuaXMtc2VsZWN0ZWQ6aG92ZXIgLmhlcm9C dXR0b25fMTVhZjYxYzc6Zm9jdXM6OmFmdGVyIHsNCiAgICAgICAgYm9yZGVyOiAxcHggc29s aWQgSGlnaGxpZ2h0VGV4dDsNCiAgICAgIH0NCiAgICB9DQoNCiAgICAuZmllbGRSZW5kZXJl ckhlcm9Db21tYW5kQ29udGFpbmVyXzNhYTAzYjdjIHsNCiAgICAgIGZsZXgtc2hyaW5rOiAw Ow0KICAgICAgbWFyZ2luLXRvcDogLTExcHg7DQogICAgICBtYXJnaW4tYm90dG9tOiAtMTFw eDsNCiAgICAgIHBhZGRpbmctdG9wOiAxcHg7DQogICAgICBwYWRkaW5nLWJvdHRvbTogMXB4 Ow0KICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsNCiAgICAgIG92ZXJmbG93OiBoaWRkZW47 DQogICAgICB3aWR0aDogMDsNCiAgICB9DQoNCiAgICAuaXNPRDMgLmZpZWxkUmVuZGVyZXJI ZXJvQ29tbWFuZENvbnRhaW5lcl8zYWEwM2I3YyB7DQogICAgICBtYXJnaW4tdG9wOiAtNXB4 Ow0KICAgICAgbWFyZ2luLWJvdHRvbTogLTVweDsNCiAgICB9DQoNCiAgICAuZmllbGRSZW5k ZXJlclJlbmRlcmVyV2l0aE1ldGFkYXRhXzNhYTAzYjdjIHsNCiAgICAgIGRpc3BsYXk6IGZs ZXg7DQogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOw0KICAgICAgbWluLXdpZHRoOiAw Ow0KICAgICAgZmxleC1ncm93OiAxOw0KICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsNCiAgICB9 DQoNCiAgICAubXMtRGV0YWlsc1JvdyAuZmllbGRSZW5kZXJlclJlbmRlcmVyV2l0aENvbW1h bmRzXzNhYTAzYjdjLA0KICAgIC5tcy1EZXRhaWxzUm93LWNlbGwgLmZpZWxkUmVuZGVyZXJS ZW5kZXJlcldpdGhDb21tYW5kc18zYWEwM2I3YyB7DQogICAgICBkaXNwbGF5OiBmbGV4Ow0K ICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOw0KICAgICAgbWF4LXdpZHRo OiAxMDAlOw0KICAgIH0NCg0KICAgIC5tcy1EZXRhaWxzUm93IC5uYW1lRmllbGRXaWR0aE9u SG92ZXJfM2FhMDNiN2MsDQogICAgLm1zLURldGFpbHNSb3ctY2VsbCAubmFtZUZpZWxkV2lk dGhPbkhvdmVyXzNhYTAzYjdjIHsNCiAgICAgIHdpZHRoOiAxMDAlOw0KICAgICAgbWluLXdp ZHRoOiAwOw0KICAgIH0NCg0KICAgIC5tcy1EZXRhaWxzUm93IC5taW5pbWFsTmFtZUZpZWxk XzNhYTAzYjdjLA0KICAgIC5tcy1EZXRhaWxzUm93LWNlbGwgLm1pbmltYWxOYW1lRmllbGRf M2FhMDNiN2Mgew0KICAgICAgZGlzcGxheTogZmxleDsNCiAgICAgIGp1c3RpZnktY29udGVu dDogc3BhY2UtYmV0d2VlbjsNCiAgICB9DQoNCiAgICAubXMtRGV0YWlsc1JvdyAuc2lnbmFs c0NlbnRlcmVkXzNhYTAzYjdjLA0KICAgIC5tcy1EZXRhaWxzUm93LWNlbGwgLnNpZ25hbHND ZW50ZXJlZF8zYWEwM2I3YyB7DQogICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgYWxpZ24t aXRlbXM6IGNlbnRlcjsNCiAgICB9DQoNCiAgICAuaXNPRDMgLm1zLURldGFpbHNSb3cgLnNp Z25hbHNDZW50ZXJlZF8zYWEwM2I3YywNCiAgICAuaXNPRDMgLm1zLURldGFpbHNSb3ctY2Vs bCAuc2lnbmFsc0NlbnRlcmVkXzNhYTAzYjdjIHsNCiAgICAgIGZvbnQtc2l6ZTogMTJweDsN CiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7DQogICAgICBwYWRkaW5nLXRvcDogMnB4Ow0KICAg ICAgZGlzcGxheTogYmxvY2s7DQogICAgfQ0KDQogICAgLmlzT0QzIC5tcy1EZXRhaWxzUm93 IC5zaWduYWxzQ2VudGVyZWRfM2FhMDNiN2MgLkZhdm9yaXRlU2lnbmFsLA0KICAgIC5pc09E MyAubXMtRGV0YWlsc1Jvdy1jZWxsIC5zaWduYWxzQ2VudGVyZWRfM2FhMDNiN2MgLkZhdm9y aXRlU2lnbmFsIHsNCiAgICAgIGZvbnQtc2l6ZTogMTZweDsNCiAgICAgIGZvbnQtd2VpZ2h0 OiA0MDA7DQogICAgfQ0KDQogICAgLm1zLURldGFpbHNSb3cgLnNpZ25hbHNDZW50ZXJlZF8z YWEwM2I3YyBpLA0KICAgIC5tcy1EZXRhaWxzUm93LWNlbGwgLnNpZ25hbHNDZW50ZXJlZF8z YWEwM2I3YyBpIHsNCiAgICAgIHRvcDogMDsNCiAgICB9DQoNCiAgICAubXMtRGV0YWlsc1Jv dy1jZWxsLmlzLXNlbGVjdGVkIC5zaWduYWxzU2hvd0hpZGVfM2FhMDNiN2MsDQogICAgLm1z LURldGFpbHNSb3ctY2VsbDpob3ZlciAuc2lnbmFsc1Nob3dIaWRlXzNhYTAzYjdjLA0KICAg IC5tcy1EZXRhaWxzUm93LmlzLXNlbGVjdGVkIC5zaWduYWxzU2hvd0hpZGVfM2FhMDNiN2Ms DQogICAgLm1zLURldGFpbHNSb3c6aG92ZXIgLnNpZ25hbHNTaG93SGlkZV8zYWEwM2I3YyB7 DQogICAgICB2aXNpYmlsaXR5OiBoaWRkZW47DQogICAgfQ0KDQogICAgLm1zLURldGFpbHNS b3ctY2VsbC5pcy1zZWxlY3RlZCAuc2lnbmFsc0Fsd2F5c18zYWEwM2I3YywNCiAgICAubXMt RGV0YWlsc1Jvdy1jZWxsOmhvdmVyIC5zaWduYWxzQWx3YXlzXzNhYTAzYjdjLA0KICAgIC5t cy1EZXRhaWxzUm93LmlzLXNlbGVjdGVkIC5zaWduYWxzQWx3YXlzXzNhYTAzYjdjLA0KICAg IC5tcy1EZXRhaWxzUm93OmhvdmVyIC5zaWduYWxzQWx3YXlzXzNhYTAzYjdjIHsNCiAgICAg IG1hcmdpbjogMCA0cHg7DQogICAgfQ0KDQogICAgLm1zLURldGFpbHNSb3ctY2VsbC5pcy1z ZWxlY3RlZCAuc2lnbmFsc0Fsd2F5c18zYWEwM2I3YyAuRmF2b3JpdGVTaWduYWwsDQogICAg Lm1zLURldGFpbHNSb3ctY2VsbDpob3ZlciAuc2lnbmFsc0Fsd2F5c18zYWEwM2I3YyAuRmF2 b3JpdGVTaWduYWwsDQogICAgLm1zLURldGFpbHNSb3cuaXMtc2VsZWN0ZWQgLnNpZ25hbHNB bHdheXNfM2FhMDNiN2MgLkZhdm9yaXRlU2lnbmFsLA0KICAgIC5tcy1EZXRhaWxzUm93Omhv dmVyIC5zaWduYWxzQWx3YXlzXzNhYTAzYjdjIC5GYXZvcml0ZVNpZ25hbCB7DQogICAgICB2 aXNpYmlsaXR5OiBoaWRkZW47DQogICAgfQ0KDQogICAgLm1zLURldGFpbHNSb3ctY2VsbC5p cy1zZWxlY3RlZCAuZmllbGRSZW5kZXJlckhlcm9Db21tYW5kQ29udGFpbmVyXzNhYTAzYjdj LA0KICAgIC5tcy1EZXRhaWxzUm93LWNlbGw6aG92ZXIgLmZpZWxkUmVuZGVyZXJIZXJvQ29t bWFuZENvbnRhaW5lcl8zYWEwM2I3YywNCiAgICAubXMtRGV0YWlsc1Jvdy5pcy1zZWxlY3Rl ZCAuZmllbGRSZW5kZXJlckhlcm9Db21tYW5kQ29udGFpbmVyXzNhYTAzYjdjLA0KICAgIC5t cy1EZXRhaWxzUm93OmhvdmVyIC5maWVsZFJlbmRlcmVySGVyb0NvbW1hbmRDb250YWluZXJf M2FhMDNiN2Mgew0KICAgICAgb3ZlcmZsb3c6IHVuc2V0Ow0KICAgICAgd2lkdGg6IGF1dG87 DQogICAgfQ0KDQogICAgaHRtbFtkaXI9Imx0ciJdIC5pc09EMyAubXMtRGV0YWlsc1Jvdy1j ZWxsLmlzLXNlbGVjdGVkIC5maWVsZFJlbmRlcmVySGVyb0NvbW1hbmRDb250YWluZXJfM2Fh MDNiN2MsDQogICAgaHRtbFtkaXI9Imx0ciJdIC5pc09EMyAubXMtRGV0YWlsc1Jvdy1jZWxs OmhvdmVyIC5maWVsZFJlbmRlcmVySGVyb0NvbW1hbmRDb250YWluZXJfM2FhMDNiN2MsDQog ICAgaHRtbFtkaXI9Imx0ciJdIC5pc09EMyAubXMtRGV0YWlsc1Jvdy5pcy1zZWxlY3RlZCAu ZmllbGRSZW5kZXJlckhlcm9Db21tYW5kQ29udGFpbmVyXzNhYTAzYjdjLA0KICAgIGh0bWxb ZGlyPSJsdHIiXSAuaXNPRDMgLm1zLURldGFpbHNSb3c6aG92ZXIgLmZpZWxkUmVuZGVyZXJI ZXJvQ29tbWFuZENvbnRhaW5lcl8zYWEwM2I3YyB7DQogICAgICBtYXJnaW4tcmlnaHQ6IC02 cHg7DQogICAgfQ0KDQogICAgaHRtbFtkaXI9InJ0bCJdIC5pc09EMyAubXMtRGV0YWlsc1Jv dy1jZWxsLmlzLXNlbGVjdGVkIC5maWVsZFJlbmRlcmVySGVyb0NvbW1hbmRDb250YWluZXJf M2FhMDNiN2MsDQogICAgaHRtbFtkaXI9InJ0bCJdIC5pc09EMyAubXMtRGV0YWlsc1Jvdy1j ZWxsOmhvdmVyIC5maWVsZFJlbmRlcmVySGVyb0NvbW1hbmRDb250YWluZXJfM2FhMDNiN2Ms DQogICAgaHRtbFtkaXI9InJ0bCJdIC5pc09EMyAubXMtRGV0YWlsc1Jvdy5pcy1zZWxlY3Rl ZCAuZmllbGRSZW5kZXJlckhlcm9Db21tYW5kQ29udGFpbmVyXzNhYTAzYjdjLA0KICAgIGh0 bWxbZGlyPSJydGwiXSAuaXNPRDMgLm1zLURldGFpbHNSb3c6aG92ZXIgLmZpZWxkUmVuZGVy ZXJIZXJvQ29tbWFuZENvbnRhaW5lcl8zYWEwM2I3YyB7DQogICAgICBtYXJnaW4tbGVmdDog LTZweDsNCiAgICB9DQoNCiAgICAuaXNGaXhlZEhlcm9CdXR0b25TdHJpcF8zYWEwM2I3YyB7 DQogICAgICB3aWR0aDogYXV0bzsNCiAgICB9DQoNCiAgICAuZmllbGRSZW5kZXJlckhlcm9D b21tYW5kQ29udGFpbmVyXzNhYTAzYjdjOmZvY3VzLXdpdGhpbiB7DQogICAgICBvdmVyZmxv dzogdW5zZXQ7DQogICAgICB3aWR0aDogYXV0bzsNCiAgICB9DQoNCiAgICBAa2V5ZnJhbWVz IGNvbW1hbmRCYXJCb3hTaGFkb3dBbmltYXRpb25fYzZiYTU3NTkgew0KICAgICAgMCUgew0K ICAgICAgICBib3gtc2hhZG93OiBub25lOw0KICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0 cmFuc3BhcmVudDsNCiAgICAgIH0NCg0KICAgICAgMTAwJSB7DQogICAgICAgIGJhY2tncm91 bmQtY29sb3I6ICNmZmZmZmY7DQogICAgICAgIGJveC1zaGFkb3c6IDAgMy4ycHggNy4ycHgg MCByZ2JhKDAsIDAsIDAsIDAuMTMyKSwNCiAgICAgICAgICAwIDAuNnB4IDEuOHB4IDAgcmdi YSgwLCAwLCAwLCAwLjEwOCk7DQogICAgICB9DQogICAgfQ0KDQogICAgQGtleWZyYW1lcyBj b21tYW5kQmFyRGl2aWRlckFuaW1hdGlvbl9jNmJhNTc1OSB7DQogICAgICAwJSB7DQogICAg ICAgIG9wYWNpdHk6IDE7DQogICAgICB9DQoNCiAgICAgIDEwMCUgew0KICAgICAgICBvcGFj aXR5OiAwOw0KICAgICAgfQ0KICAgIH0NCg0KICAgIC5zY3JvbGxDb250YWluZXJfYzZiYTU3 NTkgew0KICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICAgdG9wOiAwOw0KICAgICAg cmlnaHQ6IDA7DQogICAgICBib3R0b206IDA7DQogICAgICBsZWZ0OiAwOw0KICAgIH0NCg0K ICAgIC5pc0ZsdWVudFZOZXh0IC5zY3JvbGxDb250YWluZXJfYzZiYTU3NTk+ZGl2IHsNCiAg ICAgIGRpc3BsYXk6IGZsZXg7DQogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOw0KICAg IH0NCg0KICAgIC52ZXJ0aWNhbFNjcm9sbF9jNmJhNTc1OSB7DQogICAgICBvdmVyZmxvdy15 OiBzY3JvbGw7DQogICAgfQ0KDQogICAgLmJvZHlfYzZiYTU3NTkgew0KICAgICAgZmxleDog MSAxIGF1dG87DQogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7DQogICAgfQ0KDQogICAgLmJv ZHlfYzZiYTU3NTk6bm90KC5yZWFkeV9jNmJhNTc1OSkgew0KICAgICAgdmlzaWJpbGl0eTog aGlkZGVuOw0KICAgIH0NCg0KICAgIC5kcm9wWm9uZV9jNmJhNTc1OSB7DQogICAgICBwb3Np dGlvbjogYWJzb2x1dGU7DQogICAgICB0b3A6IDA7DQogICAgICBsZWZ0OiAwOw0KICAgICAg Ym90dG9tOiAwOw0KICAgICAgcmlnaHQ6IDA7DQogICAgICBkaXNwbGF5OiBmbGV4Ow0KICAg ICAgZmxleC1kaXJlY3Rpb246IHJvdzsNCiAgICB9DQoNCiAgICAubGVnYWN5U2VhcmNoV3Jh cHBlcl9jNmJhNTc1OSB7DQogICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgZmxleC1kaXJl Y3Rpb246IGNvbHVtbjsNCiAgICB9DQoNCiAgICAubGVnYWN5U2VhcmNoQnVmZmVyX2M2YmE1 NzU5IHsNCiAgICAgIGhlaWdodDogNDVweDsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNm MGYwZjA7DQogICAgfQ0KDQogICAgLmNvcmVfYzZiYTU3NTkgew0KICAgICAgZmxleDogMSAx Ow0KICAgICAgZGlzcGxheTogZmxleDsNCiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47 DQogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7DQogICAgICB3aWR0aDogMTAwJTsNCiAgICB9 DQoNCiAgICAuaXNGbHVlbnRWTmV4dCAuY29yZV9jNmJhNTc1OSB7DQogICAgICBiYWNrZ3Jv dW5kLWNvbG9yOiAjZmFmYWZhOw0KICAgIH0NCg0KICAgIC5pc09EMyAuY29yZV9jNmJhNTc1 OSB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsNCiAgICB9DQoNCiAg ICAudG9wQmFyX2M2YmE1NzU5IHsNCiAgICAgIGZsZXg6IDAgMCBhdXRvOw0KICAgIH0NCg0K ICAgIC5pc0ZsdWVudFZOZXh0IC50b3BCYXJfYzZiYTU3NTkgew0KICAgICAgei1pbmRleDog MjsNCiAgICB9DQoNCiAgICAuaXNPRDMgLnRvcEJhcl9jNmJhNTc1OSB7DQogICAgICBkaXNw bGF5OiBmbGV4Ow0KICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAgICAgIGhlaWdodDog NjRweDsNCiAgICAgIG1hcmdpbi10b3A6IDEwcHg7DQogICAgfQ0KDQogICAgLmNvbW1hbmRC YXJfYzZiYTU3NTkgew0KICAgICAgaGVpZ2h0OiA0NXB4Ow0KICAgIH0NCg0KICAgIC5jb21t YW5kQmFyX2M2YmE1NzU5IC5tcy1Db21tYW5kQmFyIGJ1dHRvbi5pcy1waXZvdCB7DQogICAg ICBwb3NpdGlvbjogcmVsYXRpdmU7DQogICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQg dHJhbnNwYXJlbnQ7DQogICAgICBjb2xvcjogIzAwMDAwMDsNCiAgICB9DQoNCiAgICAuY29t bWFuZEJhcl9jNmJhNTc1OSAubXMtQ29tbWFuZEJhciBidXR0b24uaXMtcGl2b3QgLm1zLUJ1 dHRvbi1sYWJlbDphZnRlciB7DQogICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xcyBlYXNlLWlu LW91dDsNCiAgICB9DQoNCiAgICAuY29tbWFuZEJhcl9jNmJhNTc1OSAubXMtQ29tbWFuZEJh ciBidXR0b24uaXMtcGl2b3Q6aG92ZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Yw ZjBmMDsNCiAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB0cmFuc3BhcmVudDsNCiAg ICB9DQoNCiAgICAuY29tbWFuZEJhcl9jNmJhNTc1OSAubXMtQ29tbWFuZEJhciBidXR0b24u aXMtcGl2b3Q6YWN0aXZlIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlYmViZWI7DQog ICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgIzAwNzhkNDsNCiAgICB9DQoNCiAgICAu Y29tbWFuZEJhcl9jNmJhNTc1OSAubXMtQ29tbWFuZEJhciBidXR0b24uaXMtcGl2b3QuaXMt Y3VycmVudC12aWV3LA0KICAgIC5jb21tYW5kQmFyX2M2YmE1NzU5IC5tcy1Db21tYW5kQmFy IGJ1dHRvbi5pcy1waXZvdC5pcy10b2dnbGVkIHsNCiAgICAgIGJvcmRlci1ib3R0b206IDJw eCBzb2xpZCB0cmFuc3BhcmVudDsNCiAgICB9DQoNCiAgICAuY29tbWFuZEJhcl9jNmJhNTc1 OSAubXMtQ29tbWFuZEJhciBidXR0b24uaXMtcGl2b3QuaXMtY3VycmVudC12aWV3OmhvdmVy LA0KICAgIC5jb21tYW5kQmFyX2M2YmE1NzU5IC5tcy1Db21tYW5kQmFyIGJ1dHRvbi5pcy1w aXZvdC5pcy10b2dnbGVkOmhvdmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmMGYw ZjA7DQogICAgfQ0KDQogICAgLmNvbW1hbmRCYXJfYzZiYTU3NTkgLm1zLUNvbW1hbmRCYXIg YnV0dG9uLmlzLXBpdm90LmlzLWN1cnJlbnQtdmlldzpob3ZlciAubXMtQnV0dG9uLWxhYmVs OmFmdGVyLA0KICAgIC5jb21tYW5kQmFyX2M2YmE1NzU5IC5tcy1Db21tYW5kQmFyIGJ1dHRv bi5pcy1waXZvdC5pcy10b2dnbGVkOmhvdmVyIC5tcy1CdXR0b24tbGFiZWw6YWZ0ZXIgew0K ICAgICAgd2lkdGg6IDEwMCU7DQogICAgICBsZWZ0OiAwOw0KICAgIH0NCg0KICAgIC5jb21t YW5kQmFyX2M2YmE1NzU5IC5tcy1Db21tYW5kQmFyIGJ1dHRvbi5pcy1waXZvdC5pcy1jdXJy ZW50LXZpZXcgLm1zLUJ1dHRvbi1sYWJlbCwNCiAgICAuY29tbWFuZEJhcl9jNmJhNTc1OSAu bXMtQ29tbWFuZEJhciBidXR0b24uaXMtcGl2b3QuaXMtdG9nZ2xlZCAubXMtQnV0dG9uLWxh YmVsIHsNCiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7DQogICAgfQ0KDQogICAgLmNvbW1hbmRC YXJfYzZiYTU3NTkgLm1zLUNvbW1hbmRCYXIgYnV0dG9uLmlzLXBpdm90LmlzLWN1cnJlbnQt dmlldyAubXMtQnV0dG9uLWxhYmVsOmFmdGVyLA0KICAgIC5jb21tYW5kQmFyX2M2YmE1NzU5 IC5tcy1Db21tYW5kQmFyIGJ1dHRvbi5pcy1waXZvdC5pcy10b2dnbGVkIC5tcy1CdXR0b24t bGFiZWw6YWZ0ZXIgew0KICAgICAgY29udGVudDogIiI7DQogICAgICBkaXNwbGF5OiBibG9j azsNCiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgIGxlZnQ6IDhweDsNCiAgICAg IGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjMDA3OGQ0Ow0KICAgICAgYm90dG9tOiAtMnB4 Ow0KICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtICg4cHggKyA4cHgpKTsNCiAgICB9DQoNCiAg ICAuaXNGbHVlbnRWTmV4dCAuY29tbWFuZEJhcl9jNmJhNTc1OSAubXMtQ29tbWFuZEJhciBi dXR0b24uaXMtcGl2b3Q6aG92ZXIgLm1zLUJ1dHRvbi1mbGV4Q29udGFpbmVyIHsNCiAgICAg IGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7DQogICAgfQ0KDQogICAgLmlzRmx1ZW50Vk5l eHQgLmNvbW1hbmRCYXJfYzZiYTU3NTkgLm1zLUNvbW1hbmRCYXIgYnV0dG9uLmlzLXBpdm90 OmFjdGl2ZSB7DQogICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwOw0KICAgICAg Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7DQogICAgfQ0KDQogICAgLmlzRmx1ZW50 Vk5leHQgLmNvbW1hbmRCYXJfYzZiYTU3NTkgLm1zLUNvbW1hbmRCYXIgYnV0dG9uLmlzLXBp dm90OmFjdGl2ZSAubXMtQnV0dG9uLWZsZXhDb250YWluZXIgew0KICAgICAgYmFja2dyb3Vu ZC1jb2xvcjogaW5oZXJpdDsNCiAgICB9DQoNCiAgICAuY29tbWFuZEJhcl9jNmJhNTc1OSAu bXMtQ29tbWFuZEJhciBidXR0b24uaXMtcGl2b3QuaXMtY3VycmVudC12aWV3LA0KICAgIC5j b21tYW5kQmFyX2M2YmE1NzU5IC5tcy1Db21tYW5kQmFyIGJ1dHRvbi5pcy1waXZvdC5pcy10 b2dnbGVkIHsNCiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7DQogICAgfQ0KDQogICAgW2Rpcj0i bHRyIl0gLmNvbW1hbmRCYXJfYzZiYTU3NTkgLm1zLUNvbW1hbmRCYXIgYnV0dG9uLmlzLXBp dm90LmlzLWxhc3QtcGl2b3Qgew0KICAgICAgbWFyZ2luLXJpZ2h0OiAyNHB4Ow0KICAgIH0N Cg0KICAgIFtkaXI9InJ0bCJdIC5jb21tYW5kQmFyX2M2YmE1NzU5IC5tcy1Db21tYW5kQmFy IGJ1dHRvbi5pcy1waXZvdC5pcy1sYXN0LXBpdm90IHsNCiAgICAgIG1hcmdpbi1sZWZ0OiAy NHB4Ow0KICAgIH0NCg0KICAgIC5jb21tYW5kQmFyX2M2YmE1NzU5IC5tcy1Db21tYW5kQmFy IGJ1dHRvbi5pcy10b2dnbGVkIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlMGUwZTA7 DQogICAgICBjb2xvcjogIzAwMDAwMDsNCiAgICB9DQoNCiAgICAuY29tbWFuZEJhcl9jNmJh NTc1OSAubXMtQ29tbWFuZEJhciB7DQogICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQg I2ViZWJlYjsNCiAgICB9DQoNCiAgICBbZGlyPSJsdHIiXSAuY29tbWFuZEJhcl9jNmJhNTc1 OS5oYXNIYW1idXJnZXJfYzZiYTU3NTkgLm1zLUNvbW1hbmRCYXIgew0KICAgICAgcGFkZGlu Zy1sZWZ0OiAwOw0KICAgIH0NCg0KICAgIFtkaXI9InJ0bCJdIC5jb21tYW5kQmFyX2M2YmE1 NzU5Lmhhc0hhbWJ1cmdlcl9jNmJhNTc1OSAubXMtQ29tbWFuZEJhciB7DQogICAgICBwYWRk aW5nLXJpZ2h0OiAwOw0KICAgIH0NCg0KICAgIC5jb21tYW5kQmFyX2M2YmE1NzU5Lmhhc0hh bWJ1cmdlcl9jNmJhNTc1OSAub2QtY29tbWFuZEJhci1idXR0b246Zm9jdXMgew0KICAgICAg Ym94LXNoYWRvdzogbm9uZTsNCiAgICB9DQoNCiAgICAuY29tbWFuZEJhcl9jNmJhNTc1OSAu b2QtY29tbWFuZEJhci1kaXZpZGVyIHsNCiAgICAgIHdpZHRoOiAxcHg7DQogICAgICBiYWNr Z3JvdW5kLWNvbG9yOiAjZDFkMWQxOw0KICAgICAgbWFyZ2luOiA4cHggOHB4IDhweCAwOw0K ICAgIH0NCg0KICAgIFtkaXI9InJ0bCJdIC5jb21tYW5kQmFyX2M2YmE1NzU5IC5vZC1jb21t YW5kQmFyLWRpdmlkZXIgew0KICAgICAgbWFyZ2luOiA4cHggMCA4cHggOHB4Ow0KICAgIH0N Cg0KICAgIC5pc0ZsdWVudFZOZXh0IC5jb21tYW5kQmFyX2M2YmE1NzU5IHsNCiAgICAgIGhl aWdodDogNDhweDsNCiAgICAgIHBhZGRpbmc6IDZweCAyNHB4Ow0KICAgICAgYmFja2dyb3Vu ZC1jb2xvcjogI2ZhZmFmYTsNCiAgICB9DQoNCiAgICAuaXNGbHVlbnRWTmV4dCAuY29tbWFu ZEJhcl9jNmJhNTc1OSAubXMtQ29tbWFuZEJhciB7DQogICAgICBib3JkZXItYm90dG9tOiBu b25lOw0KICAgIH0NCg0KICAgIC5pc0ZsdWVudFZOZXh0IC5jb21tYW5kQmFyX2M2YmE1NzU5 IC5tcy1Db21tYW5kQmFyOmFmdGVyIHsNCiAgICAgIGNvbnRlbnQ6ICIiOw0KICAgICAgcG9z aXRpb246IGFic29sdXRlOw0KICAgICAgdG9wOiBjYWxjKDQ4cHggKyA2cHggLSAxcHgpOw0K ICAgICAgcmlnaHQ6IDA7DQogICAgICBsZWZ0OiAwOw0KICAgICAgd2lkdGg6IDEwMCU7DQog ICAgICBoZWlnaHQ6IDFweDsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlYmViZWI7DQog ICAgfQ0KDQogICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0NzkuOTk5 OTlweCkgew0KICAgICAgLmlzRmx1ZW50Vk5leHQgLmNvbW1hbmRCYXJfYzZiYTU3NTkgew0K ICAgICAgICBwYWRkaW5nOiA2cHggMTZweDsNCiAgICAgIH0NCiAgICB9DQoNCiAgICAuaXNP RDMgLmNvbW1hbmRCYXJfYzZiYTU3NTkgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJh bnNwYXJlbnQ7DQogICAgICBoZWlnaHQ6IDUycHg7DQogICAgICBmbGV4LWdyb3c6IDE7DQog ICAgfQ0KDQogICAgaHRtbFtkaXI9Imx0ciJdIC5pc09EMyAuY29tbWFuZEJhcl9jNmJhNTc1 OSB7DQogICAgICBwYWRkaW5nLWxlZnQ6IDhweDsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0i cnRsIl0gLmlzT0QzIC5jb21tYW5kQmFyX2M2YmE1NzU5IHsNCiAgICAgIHBhZGRpbmctcmln aHQ6IDhweDsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0ibHRyIl0gLmlzT0QzIC5jb21tYW5k QmFyX2M2YmE1NzU5IHsNCiAgICAgIHBhZGRpbmctcmlnaHQ6IDQ4cHg7DQogICAgfQ0KDQog ICAgaHRtbFtkaXI9InJ0bCJdIC5pc09EMyAuY29tbWFuZEJhcl9jNmJhNTc1OSB7DQogICAg ICBwYWRkaW5nLWxlZnQ6IDQ4cHg7DQogICAgfQ0KDQogICAgLmlzT0QzIC5jb21tYW5kQmFy X2M2YmE1NzU5IC5tcy1Db21tYW5kQmFyIHsNCiAgICAgIGhlaWdodDogNTJweDsNCiAgICAg IHBhZGRpbmc6IDAgOHB4Ow0KICAgICAgYm9yZGVyLXJhZGl1czogMTJweDsNCiAgICB9DQoN CiAgICAuaXNPRDMgLmNvbW1hbmRCYXJfYzZiYTU3NTkgLm1zLUNvbW1hbmRCYXI6YWZ0ZXIg ew0KICAgICAgY29udGVudDogbm9uZTsNCiAgICB9DQoNCiAgICAuaXNPRDMgLmNvbW1hbmRC YXJfYzZiYTU3NTkgLm1zLUJ1dHRvbi0tY29tbWFuZEJhci5pcy1jaGVja2VkIC5tcy1CdXR0 b24tZmxleENvbnRhaW5lciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xv ck5ldXRyYWxCYWNrZ3JvdW5kQWxwaGEzSG92ZXIpOw0KICAgIH0NCg0KICAgIC5pc09EMyAu Y29tbWFuZEJhcl9jNmJhNTc1OSAubXMtQnV0dG9uLS1jb21tYW5kQmFyOmhvdmVyIC5tcy1C dXR0b24tZmxleENvbnRhaW5lciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1j b2xvck5ldXRyYWxCYWNrZ3JvdW5kQWxwaGEzSG92ZXIpOw0KICAgIH0NCg0KICAgIC5pc09E MyAuY29tbWFuZEJhcl9jNmJhNTc1OSAubXMtQnV0dG9uLS1jb21tYW5kQmFyOmFjdGl2ZSAu bXMtQnV0dG9uLWZsZXhDb250YWluZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFy KC0tY29sb3JOZXV0cmFsRGFya0JhY2tncm91bmRBbHBoYTNQcmVzc2VkKTsNCiAgICB9DQoN CiAgICAuY29tbWFuZEJhcl9jNmJhNTc1OS5oYXNTZWxlY3Rpb25fYzZiYTU3NTkgLm1zLUNv bW1hbmRCYXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YwZjBmMDsNCiAgICAgIHRy YW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgNDY3bXMgY3ViaWMtYmV6aWVyKDAuMSwgMC45 LCAwLjIsIDEpOw0KICAgIH0NCg0KICAgIC5jb21tYW5kQmFyX2M2YmE1NzU5Lmhhc1NlbGVj dGlvbl9jNmJhNTc1OSAubXMtQnV0dG9uLS1jb21tYW5kQmFyOm5vdCgub2QtLWhlcm9CdXR0 b24pIHsNCiAgICAgIGNvbG9yOiAjMTQxNDE0Ow0KICAgICAgYmFja2dyb3VuZC1jb2xvcjog dHJhbnNwYXJlbnQ7DQogICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDQ2N21z IGN1YmljLWJlemllcigwLjEsIDAuOSwgMC4yLCAxKTsNCiAgICB9DQoNCiAgICAuY29tbWFu ZEJhcl9jNmJhNTc1OS5oYXNTZWxlY3Rpb25fYzZiYTU3NTkgLm1zLUJ1dHRvbi0tY29tbWFu ZEJhcjpub3QoLm9kLS1oZXJvQnV0dG9uKTpob3ZlciAubXMtQnV0dG9uLWZsZXhDb250YWlu ZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ViZWJlYjsNCiAgICB9DQoNCiAgICAu Y29tbWFuZEJhcl9jNmJhNTc1OS5oYXNTZWxlY3Rpb25fYzZiYTU3NTkgLm1zLUJ1dHRvbi0t Y29tbWFuZEJhcjpub3QoLm9kLS1oZXJvQnV0dG9uKS5pcy10b2dnbGVkIC5tcy1CdXR0b24t ZmxleENvbnRhaW5lciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTBlMGUwOw0KICAg IH0NCg0KICAgIC5jb21tYW5kQmFyX2M2YmE1NzU5Lmhhc1NlbGVjdGlvbl9jNmJhNTc1OSAu bXMtQnV0dG9uLS1jb21tYW5kQmFyOm5vdCgub2QtLWhlcm9CdXR0b24pLmlzLXRvZ2dsZWQ6 aG92ZXIgLm1zLUJ1dHRvbi1mbGV4Q29udGFpbmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29s b3I6ICNjN2M3Yzc7DQogICAgfQ0KDQogICAgLmNvbW1hbmRCYXJfYzZiYTU3NTkuaGFzU2Vs ZWN0aW9uX2M2YmE1NzU5IC5tcy1CdXR0b24tLWNvbW1hbmRCYXI6bm90KC5vZC0taGVyb0J1 dHRvbik6YWN0aXZlIC5tcy1CdXR0b24tZmxleENvbnRhaW5lciB7DQogICAgICBjb2xvcjog IzE0MTQxNDsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlMGUwZTA7DQogICAgfQ0KDQog ICAgLmNvbW1hbmRCYXJfYzZiYTU3NTkuaGFzU2VsZWN0aW9uX2M2YmE1NzU5IC5tcy1CdXR0 b24tLWNvbW1hbmRCYXI6bm90KC5vZC0taGVyb0J1dHRvbikuaXMtZXhwYW5kZWQ6aG92ZXIg Lm1zLUJ1dHRvbi1mbGV4Q29udGFpbmVyIHsNCiAgICAgIGNvbG9yOiAjMTQxNDE0Ow0KICAg ICAgYmFja2dyb3VuZC1jb2xvcjogI2UwZTBlMDsNCiAgICB9DQoNCiAgICAuY29tbWFuZEJh cl9jNmJhNTc1OS5oYXNTZWxlY3Rpb25fYzZiYTU3NTkuaW5zZXRfYzZiYTU3NTkgLm1zLUJ1 dHRvbi0tY29tbWFuZEJhcjpub3QoLm9kLS1oZXJvQnV0dG9uKTpob3ZlciB7DQogICAgICBi YWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsNCiAgICB9DQoNCiAgICAuY29tbWFuZEJh cl9jNmJhNTc1OS5oYXNTZWxlY3Rpb25fYzZiYTU3NTkuaW5zZXRfYzZiYTU3NTkgLm1zLUJ1 dHRvbi0tY29tbWFuZEJhcjpub3QoLm9kLS1oZXJvQnV0dG9uKTpob3ZlciAubXMtQnV0dG9u LWZsZXhDb250YWluZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ViZWJlYjsNCiAg ICB9DQoNCiAgICAuY29tbWFuZEJhcl9jNmJhNTc1OS5oYXNTZWxlY3Rpb25fYzZiYTU3NTku aW5zZXRfYzZiYTU3NTkgLm1zLUJ1dHRvbi0tY29tbWFuZEJhcjpub3QoLm9kLS1oZXJvQnV0 dG9uKTphY3RpdmUgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7DQog ICAgfQ0KDQogICAgLmNvbW1hbmRCYXJfYzZiYTU3NTkuaGFzU2VsZWN0aW9uX2M2YmE1NzU5 Lmluc2V0X2M2YmE1NzU5IC5tcy1CdXR0b24tLWNvbW1hbmRCYXI6bm90KC5vZC0taGVyb0J1 dHRvbik6YWN0aXZlIC5tcy1CdXR0b24tZmxleENvbnRhaW5lciB7DQogICAgICBiYWNrZ3Jv dW5kLWNvbG9yOiAjZTBlMGUwOw0KICAgIH0NCg0KICAgIC5jb21tYW5kQmFyX2M2YmE1NzU5 Lmhhc1NlbGVjdGlvbl9jNmJhNTc1OS5pbnNldF9jNmJhNTc1OSAubXMtQnV0dG9uLS1jb21t YW5kQmFyOm5vdCgub2QtLWhlcm9CdXR0b24pLmlzLWV4cGFuZGVkOmhvdmVyIC5tcy1CdXR0 b24tbWVudUljb24gew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7DQog ICAgfQ0KDQogICAgLmlzRmx1ZW50Vk5leHQgLmNvbW1hbmRCYXJfYzZiYTU3NTkuaGFzU2Vs ZWN0aW9uX2M2YmE1NzU5IHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50 Ow0KICAgIH0NCg0KICAgIC5pc0ZsdWVudFZOZXh0IC5jb21tYW5kQmFyX2M2YmE1NzU5Lmhh c1NlbGVjdGlvbl9jNmJhNTc1OSAubXMtQnV0dG9uLS1jb21tYW5kQmFyOm5vdCgub2QtLWhl cm9CdXR0b24pOmhvdmVyIC5tcy1CdXR0b24tZmxleENvbnRhaW5lciB7DQogICAgICBiYWNr Z3JvdW5kLWNvbG9yOiAjZjVmNWY1Ow0KICAgIH0NCg0KICAgIC5pc0ZsdWVudFZOZXh0IC5j b21tYW5kQmFyX2M2YmE1NzU5Lmhhc1NlbGVjdGlvbl9jNmJhNTc1OSAubXMtQnV0dG9uLS1j b21tYW5kQmFyOm5vdCgub2QtLWhlcm9CdXR0b24pOmFjdGl2ZSAubXMtQnV0dG9uLWZsZXhD b250YWluZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2UwZTBlMDsNCiAgICB9DQoN CiAgICAuaXNGbHVlbnRWTmV4dCAuY29tbWFuZEJhcl9jNmJhNTc1OS5oYXNTZWxlY3Rpb25f YzZiYTU3NTkgLm1zLUNvbW1hbmRCYXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Zm ZmZmZjsNCiAgICAgIGFuaW1hdGlvbi1uYW1lOiBjb21tYW5kQmFyQm94U2hhZG93QW5pbWF0 aW9uX2M2YmE1NzU5Ow0KICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAyNjdtczsNCiAgICAg IGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7DQogICAgfQ0KDQogICAgLmlzRmx1ZW50Vk5l eHQgLmNvbW1hbmRCYXJfYzZiYTU3NTkuaGFzU2VsZWN0aW9uX2M2YmE1NzU5IC5tcy1Db21t YW5kQmFyOmFmdGVyIHsNCiAgICAgIGFuaW1hdGlvbjogY29tbWFuZEJhckRpdmlkZXJBbmlt YXRpb25fYzZiYTU3NTk7DQogICAgICBhbmltYXRpb24tZHVyYXRpb246IDI2N21zOw0KICAg ICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDsNCiAgICB9DQoNCiAgICBAbWVkaWEgb25s eSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3OS45OTk5OXB4KSB7DQogICAgICAuaXNGbHVl bnRWTmV4dCAuY29tbWFuZEJhcl9jNmJhNTc1OS5oYXNTZWxlY3Rpb25fYzZiYTU3NTkgew0K ICAgICAgICBoZWlnaHQ6IGNhbGMoNDhweCArIDZweCAqIDIpOw0KICAgICAgfQ0KDQogICAg ICAuaXNGbHVlbnRWTmV4dCAuY29tbWFuZEJhcl9jNmJhNTc1OS5oYXNTZWxlY3Rpb25fYzZi YTU3NTkgLm1zLUNvbW1hbmRCYXIgew0KICAgICAgICBib3JkZXItcmFkaXVzOiAwOw0KICAg ICAgICBwYWRkaW5nOiA2cHg7DQogICAgICB9DQogICAgfQ0KDQogICAgLmlzT0QzIC5jb21t YW5kQmFyX2M2YmE1NzU5Lmhhc1NlbGVjdGlvbl9jNmJhNTc1OSAubXMtQnV0dG9uLS1jb21t YW5kQmFyOm5vdCgub2QtLWhlcm9CdXR0b24pLmlzLWNoZWNrZWQgLm1zLUJ1dHRvbi1mbGV4 Q29udGFpbmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yTmV1dHJh bEJhY2tncm91bmRBbHBoYTNIb3Zlcik7DQogICAgfQ0KDQogICAgLmlzT0QzIC5jb21tYW5k QmFyX2M2YmE1NzU5Lmhhc1NlbGVjdGlvbl9jNmJhNTc1OSAubXMtQnV0dG9uLS1jb21tYW5k QmFyOm5vdCgub2QtLWhlcm9CdXR0b24pOmhvdmVyIC5tcy1CdXR0b24tZmxleENvbnRhaW5l ciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvck5ldXRyYWxCYWNrZ3Jv dW5kQWxwaGEzSG92ZXIpOw0KICAgIH0NCg0KICAgIC5pc09EMyAuY29tbWFuZEJhcl9jNmJh NTc1OS5oYXNTZWxlY3Rpb25fYzZiYTU3NTkgLm1zLUJ1dHRvbi0tY29tbWFuZEJhcjpub3Qo Lm9kLS1oZXJvQnV0dG9uKTphY3RpdmUgLm1zLUJ1dHRvbi1mbGV4Q29udGFpbmVyIHsNCiAg ICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yTmV1dHJhbERhcmtCYWNrZ3JvdW5k QWxwaGEzUHJlc3NlZCk7DQogICAgfQ0KDQogICAgLmlzT0QzIC5jb21tYW5kQmFyX2M2YmE1 NzU5Lmhhc1NlbGVjdGlvbl9jNmJhNTc1OSAubXMtQnV0dG9uLS1jb21tYW5kQmFyOm5vdCgu b2QtLWhlcm9CdXR0b24pLmlzLWRpc2FibGVkIHsNCiAgICAgIGNvbG9yOiB2YXIoLS1jb2xv ck5ldXRyYWxGb3JlZ3JvdW5kRGlzYWJsZWQpOw0KICAgIH0NCg0KICAgIC5pc09EMyAuY29t bWFuZEJhcl9jNmJhNTc1OS5oYXNTZWxlY3Rpb25fYzZiYTU3NTkgLm1zLUJ1dHRvbi0tY29t bWFuZEJhcjpub3QoLm9kLS1oZXJvQnV0dG9uKS5pcy1kaXNhYmxlZDpob3ZlciAubXMtQnV0 dG9uLWZsZXhDb250YWluZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJl bnQ7DQogICAgfQ0KDQogICAgLmlzT0QzIC5jb21tYW5kQmFyX2M2YmE1NzU5Lmhhc1NlbGVj dGlvbl9jNmJhNTc1OSAubXMtQnV0dG9uLS1jb21tYW5kQmFyOm5vdCgub2QtLWhlcm9CdXR0 b24pLmlzLWRpc2FibGVkOmFjdGl2ZSAubXMtQnV0dG9uLWZsZXhDb250YWluZXIgew0KICAg ICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7DQogICAgICBjb2xvcjogaW5oZXJp dDsNCiAgICB9DQoNCiAgICAudmlld19jNmJhNTc1OSB7DQogICAgICBmbGV4OiAxIDEgYXV0 bzsNCiAgICAgIGRpc3BsYXk6IGZsZXg7DQogICAgICBmbGV4LWRpcmVjdGlvbjogcm93Ow0K ICAgIH0NCg0KICAgIC5pc0ZsdWVudFZOZXh0IC52aWV3X2M2YmE1NzU5IHsNCiAgICAgIHBv c2l0aW9uOiByZWxhdGl2ZTsNCiAgICAgIHRvcDogLTZweDsNCiAgICB9DQoNCiAgICAuY29u dGVudF9jNmJhNTc1OSB7DQogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7DQogICAgICBmbGV4 OiAxIDEgYXV0bzsNCiAgICB9DQoNCiAgICAucGFuZV9jNmJhNTc1OSB7DQogICAgICBwb3Np dGlvbjogcmVsYXRpdmU7DQogICAgICB3aWR0aDogMDsNCiAgICAgIGZsZXg6IDAgMCBhdXRv Ow0KICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsNCiAgICB9DQoNCiAgICAuaGFzUGFuZV9jNmJh NTc1OSAucGFuZV9jNmJhNTc1OSB7DQogICAgICB3aWR0aDogMzIwcHg7DQogICAgfQ0KDQog ICAgLmlzRmx1ZW50Vk5leHQgLnBhbmVfYzZiYTU3NTkgew0KICAgICAgdG9wOiA3cHg7DQog ICAgfQ0KDQogICAgLmlzT0QzIC5wYW5lX2M2YmE1NzU5IHsNCiAgICAgIHRvcDogMDsNCiAg ICB9DQoNCiAgICAucGFuZUNvbnRlbnRfYzZiYTU3NTkgew0KICAgICAgcG9zaXRpb246IGFi c29sdXRlOw0KICAgICAgdG9wOiAwOw0KICAgICAgYm90dG9tOiAwOw0KICAgICAgd2lkdGg6 IDMyMHB4Ow0KICAgIH0NCg0KICAgIFtkaXI9Imx0ciJdIC5wYW5lQ29udGVudF9jNmJhNTc1 OSB7DQogICAgICByaWdodDogMDsNCiAgICB9DQoNCiAgICBbZGlyPSJydGwiXSAucGFuZUNv bnRlbnRfYzZiYTU3NTkgew0KICAgICAgbGVmdDogMDsNCiAgICB9DQoNCiAgICAub2QzU3R5 bGVUb3BCYXJOb1NlbGVjdGlvbl9jNmJhNTc1OSwNCiAgICAub2QzU3R5bGVUb3BCYXJXaXRo U2VsZWN0aW9uX2M2YmE1NzU5IHsNCiAgICAgIGRpc3BsYXk6IGZsZXg7DQogICAgICBhbGln bi1pdGVtczogY2VudGVyOw0KICAgICAgaGVpZ2h0OiA2NHB4Ow0KICAgICAgbWFyZ2luLXRv cDogMTBweDsNCiAgICB9DQoNCiAgICAub2QzU3R5bGVUb3BCYXJOb1NlbGVjdGlvbl9jNmJh NTc1OSsudmlld19jNmJhNTc1OSwNCiAgICAub2QzU3R5bGVUb3BCYXJXaXRoU2VsZWN0aW9u X2M2YmE1NzU5Ky52aWV3X2M2YmE1NzU5IHsNCiAgICAgIHRvcDogMDsNCiAgICAgIG1hcmdp bi10b3A6IDJweDsNCiAgICB9DQoNCiAgICAub2QzU3R5bGVUb3BCYXJOb1NlbGVjdGlvbl9j NmJhNTc1OSB7DQogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47DQogICAg fQ0KDQogICAgLm9kM1N0eWxlVG9wQmFyTm9TZWxlY3Rpb25fYzZiYTU3NTkgLm9kLUl0ZW1z U2NvcGVJdGVtQ29udGVudC1oZWFkZXIub2QtSXRlbUNvbnRlbnQtaGVhZGVyIHsNCiAgICAg IHBhZGRpbmctdG9wOiAwICFpbXBvcnRhbnQ7DQogICAgICBwYWRkaW5nLWJvdHRvbTogMCAh aW1wb3J0YW50Ow0KICAgIH0NCg0KICAgIC5vZDNTdHlsZVRvcEJhck5vU2VsZWN0aW9uX2M2 YmE1NzU5IC5vZC1JdGVtQ29udGVudC10aXRsZSB7DQogICAgICBmb250LXNpemU6IDE4cHg7 DQogICAgICBoZWlnaHQ6IDM2cHg7DQogICAgfQ0KDQogICAgLm9kM1N0eWxlVG9wQmFyV2l0 aFNlbGVjdGlvbl9jNmJhNTc1OSB7DQogICAgICBmbGV4OiAwIDAgYXV0bzsNCiAgICAgIHot aW5kZXg6IDI7DQogICAgfQ0KDQogICAgLm9kM1N0eWxlVG9wQmFyV2l0aFNlbGVjdGlvbl9j NmJhNTc1OSsudmlld19jNmJhNTc1OSAub2QtSXRlbXNTY29wZUl0ZW1Db250ZW50LWhlYWRl ci5vZC1JdGVtQ29udGVudC1oZWFkZXIgew0KICAgICAgcGFkZGluZy10b3A6IDAgIWltcG9y dGFudDsNCiAgICAgIHBhZGRpbmctYm90dG9tOiAwICFpbXBvcnRhbnQ7DQogICAgICBoZWln aHQ6IDA7DQogICAgfQ0KDQogICAgLm9kM1N0eWxlVG9wQmFyV2l0aFNlbGVjdGlvbl9jNmJh NTc1OSsudmlld19jNmJhNTc1OSAub2QtSXRlbXNTY29wZUl0ZW1Db250ZW50LWhlYWRlci5v ZC1JdGVtQ29udGVudC1oZWFkZXI+aDIgew0KICAgICAgaGVpZ2h0OiAwOw0KICAgIH0NCg0K ICAgIC5tc0l0ZW1zU2NvcGVBZGRjb2x1bW5fZjY5YWU1YmMgew0KICAgICAgZGlzcGxheTog aW5saW5lLWJsb2NrOw0KICAgICAgaGVpZ2h0OiBpbmhlcml0Ow0KICAgIH0NCg0KICAgIC5t c0l0ZW1zU2NvcGVBZGRjb2x1bW5fZjY5YWU1YmMgLm1zRGV0YWlsc0hlYWRlckRpdmlkZXJf ZjY5YWU1YmMgew0KICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOw0KICAgICAgaGVpZ2h0 OiAxMDAlOw0KICAgIH0NCg0KICAgIC5tc0l0ZW1zU2NvcGVBZGRjb2x1bW5fZjY5YWU1YmMg Lm1zRGV0YWlsc0hlYWRlckRpdmlkZXJfZjY5YWU1YmM6aG92ZXIgLm1zRGV0YWlsc0hlYWRl ckRpdmlkZXJJY29uX2Y2OWFlNWJjIHsNCiAgICAgIGRpc3BsYXk6IGlubGluZTsNCiAgICB9 DQoNCiAgICAubXNJdGVtc1Njb3BlQWRkY29sdW1uX2Y2OWFlNWJjIC5tc0RldGFpbHNIZWFk ZXJEaXZpZGVyX2Y2OWFlNWJjOmhvdmVyIC5tc0RldGFpbHNIZWFkZXJEaXZpZGVySWNvbk5v dFZpc2libGVfZjY5YWU1YmMgew0KICAgICAgZGlzcGxheTogaW5saW5lOw0KICAgICAgdmlz aWJpbGl0eTogdmlzaWJsZTsNCiAgICB9DQoNCiAgICAubXNJdGVtc1Njb3BlQWRkY29sdW1u X2Y2OWFlNWJjIC5tc0RldGFpbHNIZWFkZXJEaXZpZGVySWNvbk5vdFZpc2libGVfZjY5YWU1 YmMgew0KICAgICAgdmlzaWJpbGl0eTogaGlkZGVuOw0KICAgICAgZGlzcGxheTogaW5saW5l Ow0KICAgICAgY29sb3I6ICM5ZTllOWU7DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQog ICAgICB6LWluZGV4OiA1Ow0KICAgICAgd2lkdGg6IDA7DQogICAgICBmb250LXNpemU6IDE2 cHg7DQogICAgfQ0KDQogICAgW2Rpcj0ibHRyIl0gLm1zSXRlbXNTY29wZUFkZGNvbHVtbl9m NjlhZTViYyAubXNEZXRhaWxzSGVhZGVyRGl2aWRlckljb25Ob3RWaXNpYmxlX2Y2OWFlNWJj IHsNCiAgICAgIG1hcmdpbi1sZWZ0OiAtOHB4Ow0KICAgIH0NCg0KICAgIFtkaXI9InJ0bCJd IC5tc0l0ZW1zU2NvcGVBZGRjb2x1bW5fZjY5YWU1YmMgLm1zRGV0YWlsc0hlYWRlckRpdmlk ZXJJY29uTm90VmlzaWJsZV9mNjlhZTViYyB7DQogICAgICBtYXJnaW4tcmlnaHQ6IC04cHg7 DQogICAgfQ0KDQogICAgLm1zSXRlbXNTY29wZUFkZGNvbHVtbl9mNjlhZTViYyAubXNEZXRh aWxzSGVhZGVyRGl2aWRlckljb25Ob3RWaXNpYmxlX2Y2OWFlNWJjOmhvdmVyIHsNCiAgICAg IGRpc3BsYXk6IGlubGluZTsNCiAgICAgIGN1cnNvcjogcG9pbnRlcjsNCiAgICAgIGNvbG9y OiAjMDA3OGQ0Ow0KICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTsNCiAgICB9DQoNCiAgICAu bXNJdGVtc1Njb3BlQWRkY29sdW1uX2Y2OWFlNWJjIC5tc0RldGFpbHNIZWFkZXJEaXZpZGVy SWNvbk5vdFZpc2libGVfZjY5YWU1YmM6aG92ZXIgLm1zRGV0YWlsc0hlYWRlckljb25CYXJO b3RWaXNpYmxlX2Y2OWFlNWJjIHsNCiAgICAgIGRpc3BsYXk6IGlubGluZTsNCiAgICAgIHZp c2liaWxpdHk6IHZpc2libGU7DQogICAgfQ0KDQogICAgLm1zSXRlbXNTY29wZUFkZGNvbHVt bl9mNjlhZTViYyAubXNEZXRhaWxzSGVhZGVyRGl2aWRlckljb25fZjY5YWU1YmMgew0KICAg ICAgZGlzcGxheTogbm9uZTsNCiAgICAgIGNvbG9yOiAjOWU5ZTllOw0KICAgICAgcG9zaXRp b246IGFic29sdXRlOw0KICAgICAgei1pbmRleDogNTsNCiAgICAgIHdpZHRoOiAwOw0KICAg ICAgZm9udC1zaXplOiAxNnB4Ow0KICAgIH0NCg0KICAgIFtkaXI9Imx0ciJdIC5tc0l0ZW1z U2NvcGVBZGRjb2x1bW5fZjY5YWU1YmMgLm1zRGV0YWlsc0hlYWRlckRpdmlkZXJJY29uX2Y2 OWFlNWJjIHsNCiAgICAgIG1hcmdpbi1sZWZ0OiAtOHB4Ow0KICAgIH0NCg0KICAgIFtkaXI9 InJ0bCJdIC5tc0l0ZW1zU2NvcGVBZGRjb2x1bW5fZjY5YWU1YmMgLm1zRGV0YWlsc0hlYWRl ckRpdmlkZXJJY29uX2Y2OWFlNWJjIHsNCiAgICAgIG1hcmdpbi1yaWdodDogLThweDsNCiAg ICB9DQoNCiAgICAubXNJdGVtc1Njb3BlQWRkY29sdW1uX2Y2OWFlNWJjIC5tc0RldGFpbHNI ZWFkZXJEaXZpZGVySWNvbl9mNjlhZTViYzpob3ZlciB7DQogICAgICBkaXNwbGF5OiBpbmxp bmU7DQogICAgICBjdXJzb3I6IHBvaW50ZXI7DQogICAgICBjb2xvcjogIzAwNzhkNDsNCiAg ICB9DQoNCiAgICAubXNJdGVtc1Njb3BlQWRkY29sdW1uX2Y2OWFlNWJjIC5tc0RldGFpbHNI ZWFkZXJEaXZpZGVySWNvbl9mNjlhZTViYzpob3ZlciAubXNEZXRhaWxzSGVhZGVySWNvbkJh cl9mNjlhZTViYyB7DQogICAgICBkaXNwbGF5OiBpbmxpbmU7DQogICAgfQ0KDQogICAgLm1z SXRlbXNTY29wZUFkZGNvbHVtbl9mNjlhZTViYyAubXNEZXRhaWxzSGVhZGVyRGl2aWRlcklj b25WaXNpYmxlX2Y2OWFlNWJjIHsNCiAgICAgIGRpc3BsYXk6IGlubGluZTsNCiAgICAgIGNv bG9yOiAjMDA3OGQ0Ow0KICAgIH0NCg0KICAgIC5tc0l0ZW1zU2NvcGVBZGRjb2x1bW5fZjY5 YWU1YmMgLm1zRGV0YWlsc0hlYWRlckRpdmlkZXJJY29uVmlzaWJpbGl0eV9mNjlhZTViYyB7 DQogICAgICBkaXNwbGF5OiBpbmxpbmU7DQogICAgICBjb2xvcjogIzAwNzhkNDsNCiAgICAg IHZpc2liaWxpdHk6IHZpc2libGU7DQogICAgfQ0KDQogICAgLm1zSXRlbXNTY29wZUFkZGNv bHVtbl9mNjlhZTViYyAubXNEZXRhaWxzSGVhZGVyRGl2aWRlckFkZEljb25fZjY5YWU1YmMg ew0KICAgICAgd2lkdGg6IDMycHg7DQogICAgICBoZWlnaHQ6IDMycHg7DQogICAgICB0ZXh0 LWFsaWduOiBjZW50ZXI7DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgICB0b3A6 IC00N3B4Ow0KICAgICAgbWFyZ2luLXRvcDogMjBweDsNCiAgICB9DQoNCiAgICBodG1sW2Rp cj0ibHRyIl0gLm1zSXRlbXNTY29wZUFkZGNvbHVtbl9mNjlhZTViYyAubXNEZXRhaWxzSGVh ZGVyRGl2aWRlckFkZEljb25fZjY5YWU1YmMgew0KICAgICAgbWFyZ2luLWxlZnQ6IC03cHg7 DQogICAgfQ0KDQogICAgaHRtbFtkaXI9InJ0bCJdIC5tc0l0ZW1zU2NvcGVBZGRjb2x1bW5f ZjY5YWU1YmMgLm1zRGV0YWlsc0hlYWRlckRpdmlkZXJBZGRJY29uX2Y2OWFlNWJjIHsNCiAg ICAgIG1hcmdpbi1yaWdodDogLThweDsNCiAgICB9DQoNCiAgICAubXNJdGVtc1Njb3BlQWRk Y29sdW1uX2Y2OWFlNWJjIC5tc0RldGFpbHNIZWFkZXJJY29uQmFyX2Y2OWFlNWJjIHsNCiAg ICAgIGRpc3BsYXk6IG5vbmU7DQogICAgICBiYWNrZ3JvdW5kOiAjMDA3OGQ0Ow0KICAgICAg cG9zaXRpb246IGFic29sdXRlOw0KICAgICAgd2lkdGg6IDFweDsNCiAgICAgIGhlaWdodDog NDJweDsNCiAgICB9DQoNCiAgICBbZGlyPSJsdHIiXSAubXNJdGVtc1Njb3BlQWRkY29sdW1u X2Y2OWFlNWJjIC5tc0RldGFpbHNIZWFkZXJJY29uQmFyX2Y2OWFlNWJjIHsNCiAgICAgIGxl ZnQ6IDhweDsNCiAgICB9DQoNCiAgICBbZGlyPSJydGwiXSAubXNJdGVtc1Njb3BlQWRkY29s dW1uX2Y2OWFlNWJjIC5tc0RldGFpbHNIZWFkZXJJY29uQmFyX2Y2OWFlNWJjIHsNCiAgICAg IHJpZ2h0OiA4cHg7DQogICAgfQ0KDQogICAgLm1zSXRlbXNTY29wZUFkZGNvbHVtbl9mNjlh ZTViYyAubXNEZXRhaWxzSGVhZGVySWNvbkJhck5vdFZpc2libGVfZjY5YWU1YmMgew0KICAg ICAgZGlzcGxheTogaW5saW5lOw0KICAgICAgdmlzaWJpbGl0eTogaGlkZGVuOw0KICAgICAg YmFja2dyb3VuZDogIzAwNzhkNDsNCiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAg IHdpZHRoOiAxcHg7DQogICAgICBoZWlnaHQ6IDQycHg7DQogICAgfQ0KDQogICAgW2Rpcj0i bHRyIl0gLm1zSXRlbXNTY29wZUFkZGNvbHVtbl9mNjlhZTViYyAubXNEZXRhaWxzSGVhZGVy SWNvbkJhck5vdFZpc2libGVfZjY5YWU1YmMgew0KICAgICAgbGVmdDogOHB4Ow0KICAgIH0N Cg0KICAgIFtkaXI9InJ0bCJdIC5tc0l0ZW1zU2NvcGVBZGRjb2x1bW5fZjY5YWU1YmMgLm1z RGV0YWlsc0hlYWRlckljb25CYXJOb3RWaXNpYmxlX2Y2OWFlNWJjIHsNCiAgICAgIHJpZ2h0 OiA4cHg7DQogICAgfQ0KDQogICAgLm1zSXRlbXNTY29wZUFkZGNvbHVtbl9mNjlhZTViYyAu bXNEZXRhaWxzSGVhZGVySWNvbkJhclZpc2libGVfZjY5YWU1YmMgew0KICAgICAgZGlzcGxh eTogaW5saW5lOw0KICAgIH0NCg0KICAgIC5tc0l0ZW1zU2NvcGVBZGRjb2x1bW5fZjY5YWU1 YmMgLm1zRGV0YWlsc0hlYWRlckljb25CYXJWaXNpYmlsaXR5X2Y2OWFlNWJjIHsNCiAgICAg IGRpc3BsYXk6IGlubGluZTsNCiAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7DQogICAgfQ0K DQogICAgLnJvb3RfMDQ5NGZiNDggew0KICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7DQog ICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2YwZjBmMDsNCiAgICAgIGJhY2tncm91 bmQ6ICNmZmZmZmY7DQogICAgICBjb2xvcjogIzYxNjE2MTsNCiAgICAgIG1pbi13aWR0aDog MTAwJTsNCiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7DQogICAgICBwYWRkaW5nOiAwOw0K ICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsNCiAgICAgIHZlcnRpY2FsLWFsaWduOiB0 b3A7DQogICAgICBvdXRsaW5lOiB0cmFuc3BhcmVudDsNCiAgICAgIHBvc2l0aW9uOiByZWxh dGl2ZTsNCiAgICAgIC0tb2QzLXJvdy1pbnNldC1iYWNrZ3JvdW5kOiB2YXIoLS1jb2xvck5l dXRyYWxCYWNrZ3JvdW5kMUhvdmVyKTsNCiAgICAgIC0tb2QzLXJvdy1kaXZpZGVyOiB2YXIo LS1jb2xvck5ldXRyYWxTdHJva2UzKTsNCiAgICAgIC0tb2QzLXJvdy1kaXZpZGVyLWdyYWRp ZW50LWRpcmVjdGlvbjogOTBkZWc7DQogICAgfQ0KDQogICAgW2Rpcj0ibHRyIl0gLnJvb3Rf MDQ5NGZiNDggew0KICAgICAgdGV4dC1hbGlnbjogbGVmdDsNCiAgICB9DQoNCiAgICBbZGly PSJydGwiXSAucm9vdF8wNDk0ZmI0OCB7DQogICAgICB0ZXh0LWFsaWduOiByaWdodDsNCiAg ICB9DQoNCiAgICAucm9vdF8wNDk0ZmI0OCAmOjotbW96LWZvY3VzLWlubmVyIHsNCiAgICAg IGJvcmRlcjogMDsNCiAgICB9DQoNCiAgICAubXMtRmFicmljLS1pc0ZvY3VzVmlzaWJsZSAu cm9vdF8wNDk0ZmI0ODpmb2N1czphZnRlciB7DQogICAgICBjb250ZW50OiAiIjsNCiAgICAg IHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgIHRvcDogMDsNCiAgICAgIHJpZ2h0OiAwOw0K ICAgICAgYm90dG9tOiAwOw0KICAgICAgbGVmdDogMDsNCiAgICAgIHBvaW50ZXItZXZlbnRz OiBub25lOw0KICAgICAgYm9yZGVyOiAxcHggc29saWQgIzYxNjE2MTsNCiAgICB9DQoNCiAg ICAucm9vdF8wNDk0ZmI0ODpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5kOiAjZjBmMGYwOw0K ICAgICAgY29sb3I6ICMyNDI0MjQ7DQogICAgfQ0KDQogICAgLnJvb3RfMDQ5NGZiNDg6aG92 ZXIgLmlzUm93SGVhZGVyXzA0OTRmYjQ4IHsNCiAgICAgIGNvbG9yOiAjMTQxNDE0Ow0KICAg IH0NCg0KICAgIC5yb290XzA0OTRmYjQ4OmhvdmVyIC5kZXRhaWxzUm93Q2hlY2tfMDQ5NGZi NDggew0KICAgICAgb3BhY2l0eTogMTsNCiAgICB9DQoNCiAgICBAbWVkaWEgc2NyZWVuIGFu ZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSksDQogICAgc2NyZWVuIGFuZCAoZm9yY2Vk LWNvbG9yczogYWN0aXZlKSB7DQogICAgICAubXMtRmFicmljLS1pc0ZvY3VzVmlzaWJsZSAu cm9vdF8wNDk0ZmI0ODpmb2N1czphZnRlciB7DQogICAgICAgIGJvcmRlci1jb2xvcjogV2lu ZG93VGV4dDsNCiAgICAgIH0NCiAgICB9DQoNCiAgICBAbWVkaWEgc2NyZWVuIGFuZCAoLW1z LWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSksDQogICAgc2NyZWVuIGFuZCAoZm9yY2VkLWNvbG9y czogYWN0aXZlKSB7DQogICAgICAubXMtRmFicmljLS1pc0ZvY3VzVmlzaWJsZSAucm9vdF8w NDk0ZmI0ODpmb2N1czphZnRlciB7DQogICAgICAgIC1tcy1oaWdoLWNvbnRyYXN0LWFkanVz dDogbm9uZTsNCiAgICAgICAgZm9yY2VkLWNvbG9yLWFkanVzdDogbm9uZTsNCiAgICAgIH0N CiAgICB9DQoNCiAgICAucm9vdF8wNDk0ZmI0OCAubXMtRmFicmljLS1pc0ZvY3VzVmlzaWJs ZTpmb2N1cyAuZGV0YWlsc1Jvd0NoZWNrXzA0OTRmYjQ4IHsNCiAgICAgIG9wYWNpdHk6IDE7 DQogICAgfQ0KDQogICAgLnJvb3RfMDQ5NGZiNDguY29tcGFjdF8wNDk0ZmI0OCB7DQogICAg ICBib3JkZXItYm90dG9tOiAwOw0KICAgIH0NCg0KICAgIC5yb290XzA0OTRmYjQ4LmRpc2Fi bGVkXzA0OTRmYjQ4IHsNCiAgICAgIG9wYWNpdHk6IDAuNTsNCiAgICB9DQoNCiAgICAucm9v dF8wNDk0ZmI0OC5pc1NlbGVjdGVkXzA0OTRmYjQ4IHsNCiAgICAgIGNvbG9yOiAjMjQyNDI0 Ow0KICAgICAgYmFja2dyb3VuZDogI2ViZWJlYjsNCiAgICAgIGJvcmRlci1ib3R0b206IDFw eCBzb2xpZCAjZmZmZmZmOw0KICAgIH0NCg0KICAgIC5yb290XzA0OTRmYjQ4LmlzU2VsZWN0 ZWRfMDQ5NGZiNDg6YmVmb3JlIHsNCiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAg IGRpc3BsYXk6IGJsb2NrOw0KICAgICAgdG9wOiAtMXB4Ow0KICAgICAgaGVpZ2h0OiAxcHg7 DQogICAgICBib3R0b206IDA7DQogICAgICBsZWZ0OiAwOw0KICAgICAgcmlnaHQ6IDA7DQog ICAgICBjb250ZW50OiAiIjsNCiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZmZmZmZm Ow0KICAgIH0NCg0KICAgIC5yb290XzA0OTRmYjQ4LmlzU2VsZWN0ZWRfMDQ5NGZiNDg6aG92 ZXIgew0KICAgICAgYmFja2dyb3VuZDogI2UwZTBlMDsNCiAgICAgIGNvbG9yOiAjMjQyNDI0 Ow0KICAgIH0NCg0KICAgIEBtZWRpYSBzY3JlZW4gYW5kICgtbXMtaGlnaC1jb250cmFzdDog YWN0aXZlKSwNCiAgICBzY3JlZW4gYW5kIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpIHsNCiAg ICAgIC5yb290XzA0OTRmYjQ4LmlzU2VsZWN0ZWRfMDQ5NGZiNDg6aG92ZXIgLmNlbGxfMDQ5 NGZiNDggew0KICAgICAgICBjb2xvcjogSGlnaGxpZ2h0VGV4dDsNCiAgICAgIH0NCg0KICAg ICAgLnJvb3RfMDQ5NGZiNDguaXNTZWxlY3RlZF8wNDk0ZmI0ODpob3ZlciAuY2VsbF8wNDk0 ZmI0OD5hIHsNCiAgICAgICAgY29sb3I6IEhpZ2hsaWdodFRleHQ7DQogICAgICB9DQogICAg fQ0KDQogICAgLnJvb3RfMDQ5NGZiNDguaXNTZWxlY3RlZF8wNDk0ZmI0ODpob3ZlciAuaXNS b3dIZWFkZXJfMDQ5NGZiNDggew0KICAgICAgY29sb3I6ICMxNDE0MTQ7DQogICAgfQ0KDQog ICAgQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpLA0KICAg IHNjcmVlbiBhbmQgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSkgew0KICAgICAgLnJvb3RfMDQ5 NGZiNDguaXNTZWxlY3RlZF8wNDk0ZmI0ODpob3ZlciAuaXNSb3dIZWFkZXJfMDQ5NGZiNDgg ew0KICAgICAgICBjb2xvcjogSGlnaGxpZ2h0VGV4dDsNCiAgICAgIH0NCiAgICB9DQoNCiAg ICBAbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSksDQogICAg c2NyZWVuIGFuZCAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSB7DQogICAgICAucm9vdF8wNDk0 ZmI0OC5pc1NlbGVjdGVkXzA0OTRmYjQ4OmhvdmVyIHsNCiAgICAgICAgYmFja2dyb3VuZDog SGlnaGxpZ2h0Ow0KICAgICAgfQ0KICAgIH0NCg0KICAgIC5yb290XzA0OTRmYjQ4LmlzU2Vs ZWN0ZWRfMDQ5NGZiNDg6Zm9jdXMgLmNlbGxfMDQ5NGZiNDggew0KICAgICAgY29sb3I6ICMy NDI0MjQ7DQogICAgfQ0KDQogICAgQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRy YXN0OiBhY3RpdmUpLA0KICAgIHNjcmVlbiBhbmQgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSkg ew0KICAgICAgLnJvb3RfMDQ5NGZiNDguaXNTZWxlY3RlZF8wNDk0ZmI0ODpmb2N1cyAuY2Vs bF8wNDk0ZmI0OCB7DQogICAgICAgIGNvbG9yOiBIaWdobGlnaHRUZXh0Ow0KICAgICAgfQ0K DQogICAgICAucm9vdF8wNDk0ZmI0OC5pc1NlbGVjdGVkXzA0OTRmYjQ4OmZvY3VzIC5jZWxs XzA0OTRmYjQ4PmEgew0KICAgICAgICBjb2xvcjogSGlnaGxpZ2h0VGV4dDsNCiAgICAgIH0N CiAgICB9DQoNCiAgICAucm9vdF8wNDk0ZmI0OC5pc1NlbGVjdGVkXzA0OTRmYjQ4OmZvY3Vz IC5pc1Jvd0hlYWRlcl8wNDk0ZmI0OCB7DQogICAgICBjb2xvcjogIzE0MTQxNDsNCiAgICB9 DQoNCiAgICBAbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSks DQogICAgc2NyZWVuIGFuZCAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSB7DQogICAgICAucm9v dF8wNDk0ZmI0OC5pc1NlbGVjdGVkXzA0OTRmYjQ4OmZvY3VzIC5pc1Jvd0hlYWRlcl8wNDk0 ZmI0OCB7DQogICAgICAgIGNvbG9yOiBIaWdobGlnaHRUZXh0Ow0KICAgICAgfQ0KICAgIH0N Cg0KICAgIEBtZWRpYSBzY3JlZW4gYW5kICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSwN CiAgICBzY3JlZW4gYW5kIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpIHsNCiAgICAgIC5yb290 XzA0OTRmYjQ4LmlzU2VsZWN0ZWRfMDQ5NGZiNDg6Zm9jdXMgew0KICAgICAgICBiYWNrZ3Jv dW5kOiBIaWdobGlnaHQ7DQogICAgICB9DQogICAgfQ0KDQogICAgQG1lZGlhIHNjcmVlbiBh bmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpLA0KICAgIHNjcmVlbiBhbmQgKGZvcmNl ZC1jb2xvcnM6IGFjdGl2ZSkgew0KICAgICAgLnJvb3RfMDQ5NGZiNDguaXNTZWxlY3RlZF8w NDk0ZmI0OCB7DQogICAgICAgIGJhY2tncm91bmQ6IEhpZ2hsaWdodDsNCiAgICAgICAgY29s b3I6IEhpZ2hsaWdodFRleHQ7DQogICAgICB9DQoNCiAgICAgIC5yb290XzA0OTRmYjQ4Lmlz U2VsZWN0ZWRfMDQ5NGZiNDggYSB7DQogICAgICAgIGNvbG9yOiBIaWdobGlnaHRUZXh0Ow0K ICAgICAgfQ0KICAgIH0NCg0KICAgIEBtZWRpYSBzY3JlZW4gYW5kICgtbXMtaGlnaC1jb250 cmFzdDogYWN0aXZlKSwNCiAgICBzY3JlZW4gYW5kIChmb3JjZWQtY29sb3JzOiBhY3RpdmUp IHsNCiAgICAgIC5yb290XzA0OTRmYjQ4LmlzU2VsZWN0ZWRfMDQ5NGZiNDggew0KICAgICAg ICAtbXMtaGlnaC1jb250cmFzdC1hZGp1c3Q6IG5vbmU7DQogICAgICAgIGZvcmNlZC1jb2xv ci1hZGp1c3Q6IG5vbmU7DQogICAgICB9DQogICAgfQ0KDQogICAgLnJvb3RfMDQ5NGZiNDgu aXNTZWxlY3RlZF8wNDk0ZmI0ODpmb2N1czpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5kOiAj ZTBlMGUwOw0KICAgIH0NCg0KICAgIC5pc0ZsdWVudFZOZXh0IC5yb290XzA0OTRmYjQ4IHsN CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7DQogICAgfQ0KDQogICAgLmlzRmx1 ZW50Vk5leHQgLnJvb3RfMDQ5NGZiNDg6aG92ZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xv cjogI2Y1ZjVmNTsNCiAgICB9DQoNCiAgICAuaXNGbHVlbnRWTmV4dCAucm9vdF8wNDk0ZmI0 OC5pc1NlbGVjdGVkXzA0OTRmYjQ4IHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlYmVi ZWI7DQogICAgfQ0KDQogICAgLmlzRmx1ZW50Vk5leHQgLnJvb3RfMDQ5NGZiNDguaXNTZWxl Y3RlZF8wNDk0ZmI0ODpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5kOiAjZTBlMGUwOw0KICAg IH0NCg0KICAgIC5pc0ZsdWVudFZOZXh0IC5yb290XzA0OTRmYjQ4LmRhcmtfMDQ5NGZiNDgg ew0KICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogI2QxZDFkMTsNCiAgICB9DQoNCiAgICBb ZGlyPSJydGwiXSAucm9vdF8wNDk0ZmI0OCB7DQogICAgICAtLW9kMy1yb3ctZGl2aWRlci1n cmFkaWVudC1kaXJlY3Rpb246IDI3MGRlZzsNCiAgICB9DQoNCiAgICAuaXNPRDMgLnJvb3Rf MDQ5NGZiNDggew0KICAgICAgLW8tYm9yZGVyLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodmFy KC0tb2QzLXJvdy1kaXZpZGVyLWdyYWRpZW50LWRpcmVjdGlvbiksDQogICAgICAgICAgdHJh bnNwYXJlbnQgNTZweCwNCiAgICAgICAgICB2YXIoLS1vZDMtcm93LWRpdmlkZXIpIDU2cHgg Y2FsYygxMDAlIC0gOHB4KSwNCiAgICAgICAgICB0cmFuc3BhcmVudCBjYWxjKDEwMCUgLSA4 cHgpKSAwIDAgMSAwOw0KICAgICAgYm9yZGVyLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodmFy KC0tb2QzLXJvdy1kaXZpZGVyLWdyYWRpZW50LWRpcmVjdGlvbiksDQogICAgICAgICAgdHJh bnNwYXJlbnQgNTZweCwNCiAgICAgICAgICB2YXIoLS1vZDMtcm93LWRpdmlkZXIpIDU2cHgg Y2FsYygxMDAlIC0gOHB4KSwNCiAgICAgICAgICB0cmFuc3BhcmVudCBjYWxjKDEwMCUgLSA4 cHgpKSAwIDAgMSAwOw0KICAgIH0NCg0KICAgIC5pc09EMyAucm9vdF8wNDk0ZmI0ODpob3Zl ciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvck5ldXRyYWxCYWNrZ3Jv dW5kMSk7DQogICAgICBib3gtc2hhZG93OiAwIC0xcHggdmFyKC0tY29sb3JOZXV0cmFsQmFj a2dyb3VuZDEpOw0KICAgICAgLS1vZDMtcm93LWRpdmlkZXI6IHZhcigtLWNvbG9yTmV1dHJh bEJhY2tncm91bmQxKTsNCiAgICB9DQoNCiAgICAuaXNPRDMgLnJvb3RfMDQ5NGZiNDg6aG92 ZXI6OmJlZm9yZSB7DQogICAgICBjb250ZW50OiAiIjsNCiAgICAgIHBvc2l0aW9uOiBhYnNv bHV0ZTsNCiAgICAgIHRvcDogMDsNCiAgICAgIGJvdHRvbTogMDsNCiAgICAgIGhlaWdodDog MTAwJTsNCiAgICAgIGJvcmRlci10b3A6IG5vbmU7DQogICAgICBib3JkZXItcmFkaXVzOiA4 cHg7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1vZDMtcm93LWluc2V0LWJhY2tn cm91bmQpOw0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJsdHIiXSAuaXNPRDMgLnJvb3RfMDQ5 NGZiNDg6aG92ZXI6OmJlZm9yZSB7DQogICAgICBsZWZ0OiA4cHg7DQogICAgfQ0KDQogICAg aHRtbFtkaXI9InJ0bCJdIC5pc09EMyAucm9vdF8wNDk0ZmI0ODpob3Zlcjo6YmVmb3JlIHsN CiAgICAgIHJpZ2h0OiA4cHg7DQogICAgfQ0KDQogICAgaHRtbFtkaXI9Imx0ciJdIC5pc09E MyAucm9vdF8wNDk0ZmI0ODpob3Zlcjo6YmVmb3JlIHsNCiAgICAgIHJpZ2h0OiA4cHg7DQog ICAgfQ0KDQogICAgaHRtbFtkaXI9InJ0bCJdIC5pc09EMyAucm9vdF8wNDk0ZmI0ODpob3Zl cjo6YmVmb3JlIHsNCiAgICAgIGxlZnQ6IDhweDsNCiAgICB9DQoNCiAgICAuaXNPRDMgLnJv b3RfMDQ5NGZiNDguaXNTZWxlY3RlZF8wNDk0ZmI0OCB7DQogICAgICBiYWNrZ3JvdW5kLWNv bG9yOiB2YXIoLS1jb2xvck5ldXRyYWxCYWNrZ3JvdW5kMSk7DQogICAgICBib3gtc2hhZG93 OiAwIC0xcHggdmFyKC0tY29sb3JOZXV0cmFsQmFja2dyb3VuZDEpOw0KICAgICAgLS1vZDMt cm93LWRpdmlkZXI6IHZhcigtLWNvbG9yTmV1dHJhbEJhY2tncm91bmQxKTsNCiAgICAgIC0t b2QzLXJvdy1pbnNldC1iYWNrZ3JvdW5kOiB2YXIoLS1jb2xvckJyYW5kQmFja2dyb3VuZDIp Ow0KICAgIH0NCg0KICAgIC5pc09EMyAucm9vdF8wNDk0ZmI0OC5pc1NlbGVjdGVkXzA0OTRm YjQ4OjpiZWZvcmUgew0KICAgICAgY29udGVudDogIiI7DQogICAgICBwb3NpdGlvbjogYWJz b2x1dGU7DQogICAgICB0b3A6IDA7DQogICAgICBib3R0b206IDA7DQogICAgICBoZWlnaHQ6 IDEwMCU7DQogICAgICBib3JkZXItdG9wOiBub25lOw0KICAgICAgYm9yZGVyLXJhZGl1czog OHB4Ow0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tb2QzLXJvdy1pbnNldC1iYWNr Z3JvdW5kKTsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0ibHRyIl0gLmlzT0QzIC5yb290XzA0 OTRmYjQ4LmlzU2VsZWN0ZWRfMDQ5NGZiNDg6OmJlZm9yZSB7DQogICAgICBsZWZ0OiA4cHg7 DQogICAgfQ0KDQogICAgaHRtbFtkaXI9InJ0bCJdIC5pc09EMyAucm9vdF8wNDk0ZmI0OC5p c1NlbGVjdGVkXzA0OTRmYjQ4OjpiZWZvcmUgew0KICAgICAgcmlnaHQ6IDhweDsNCiAgICB9 DQoNCiAgICBodG1sW2Rpcj0ibHRyIl0gLmlzT0QzIC5yb290XzA0OTRmYjQ4LmlzU2VsZWN0 ZWRfMDQ5NGZiNDg6OmJlZm9yZSB7DQogICAgICByaWdodDogOHB4Ow0KICAgIH0NCg0KICAg IGh0bWxbZGlyPSJydGwiXSAuaXNPRDMgLnJvb3RfMDQ5NGZiNDguaXNTZWxlY3RlZF8wNDk0 ZmI0ODo6YmVmb3JlIHsNCiAgICAgIGxlZnQ6IDhweDsNCiAgICB9DQoNCiAgICAuaXNPRDMg LnJvb3RfMDQ5NGZiNDguaXNTZWxlY3RlZF8wNDk0ZmI0ODpob3ZlciB7DQogICAgICBiYWNr Z3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvck5ldXRyYWxCYWNrZ3JvdW5kMSk7DQogICAgICAt LW9kMy1yb3ctaW5zZXQtYmFja2dyb3VuZDogdmFyKC0tY29sb3JCcmFuZEJhY2tncm91bmQy SG92ZXIpOw0KICAgIH0NCg0KICAgIC5pc09EMyAucm9vdF8wNDk0ZmI0OC5pc1NlbGVjdGVk XzA0OTRmYjQ4OmZvY3VzLA0KICAgIC5pc09EMyAucm9vdF8wNDk0ZmI0OC5pc1NlbGVjdGVk XzA0OTRmYjQ4OmZvY3VzOmhvdmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigt LWNvbG9yTmV1dHJhbEJhY2tncm91bmQxKTsNCiAgICAgIC0tb2QzLXJvdy1pbnNldC1iYWNr Z3JvdW5kOiB2YXIoLS1jb2xvckJyYW5kQmFja2dyb3VuZDJIb3Zlcik7DQogICAgfQ0KDQog ICAgLm1zLUZhYnJpYy0taXNGb2N1c1Zpc2libGUgLmlzT0QzIC5yb290XzA0OTRmYjQ4OmZv Y3VzOjphZnRlciB7DQogICAgICBsZWZ0OiA4cHg7DQogICAgICByaWdodDogOHB4Ow0KICAg ICAgYm9yZGVyLXJhZGl1czogOHB4Ow0KICAgIH0NCg0KICAgIC5pc09EMyAubXMtTGlzdC1j ZWxsOmZpcnN0LWNoaWxkIC5yb290XzA0OTRmYjQ4IHsNCiAgICAgIGJveC1zaGFkb3c6IG5v bmU7DQogICAgfQ0KDQogICAgLmNlbGxfMDQ5NGZiNDggew0KICAgICAgZGlzcGxheTogaW5s aW5lLWJsb2NrOw0KICAgICAgcG9zaXRpb246IHJlbGF0aXZlOw0KICAgICAgYm94LXNpemlu ZzogYm9yZGVyLWJveDsNCiAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7DQogICAgICB3aGl0 ZS1zcGFjZTogbm93cmFwOw0KICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsNCiAgICAgIHRleHQt b3ZlcmZsb3c6IGVsbGlwc2lzOw0KICAgICAgcGFkZGluZy10b3A6IDExcHg7DQogICAgICBw YWRkaW5nLWJvdHRvbTogMTFweDsNCiAgICAgIGZvbnQtc2l6ZTogMTJweDsNCiAgICAgIC13 ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7DQogICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7 DQogICAgICB1c2VyLXNlbGVjdDogbm9uZTsNCiAgICAgIGN1cnNvcjogZGVmYXVsdDsNCiAg ICB9DQoNCiAgICBbZGlyPSJsdHIiXSAuY2VsbF8wNDk0ZmI0OCB7DQogICAgICBwYWRkaW5n LWxlZnQ6IDEycHg7DQogICAgfQ0KDQogICAgW2Rpcj0icnRsIl0gLmNlbGxfMDQ5NGZiNDgg ew0KICAgICAgcGFkZGluZy1yaWdodDogMTJweDsNCiAgICB9DQoNCiAgICAuaXNPRDMgLmNl bGxfMDQ5NGZiNDggew0KICAgICAgZm9udC1zaXplOiAxNHB4Ow0KICAgICAgZm9udC13ZWln aHQ6IDQwMDsNCiAgICAgIHBhZGRpbmctdG9wOiAxNHB4Ow0KICAgIH0NCg0KICAgIC5jb21w YWN0XzA0OTRmYjQ4IC5jZWxsXzA0OTRmYjQ4IHsNCiAgICAgIHBhZGRpbmctdG9wOiA2cHg7 DQogICAgICBwYWRkaW5nLWJvdHRvbTogNnB4Ow0KICAgIH0NCg0KICAgIC5pc09EMyAuY29t cGFjdF8wNDk0ZmI0OCAuY2VsbF8wNDk0ZmI0OCB7DQogICAgICBoZWlnaHQ6IDMycHg7DQog ICAgfQ0KDQogICAgQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3Rp dmUpLA0KICAgIHNjcmVlbiBhbmQgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSkgew0KICAgICAg LmlzU2VsZWN0ZWRfMDQ5NGZiNDggLmNlbGxfMDQ5NGZiNDggew0KICAgICAgICBiYWNrZ3Jv dW5kOiBIaWdobGlnaHQ7DQogICAgICAgIGNvbG9yOiBIaWdobGlnaHRUZXh0Ow0KICAgICAg fQ0KDQogICAgICAuaXNTZWxlY3RlZF8wNDk0ZmI0OCAuY2VsbF8wNDk0ZmI0OD5hIHsNCiAg ICAgICAgY29sb3I6IEhpZ2hsaWdodFRleHQ7DQogICAgICB9DQogICAgfQ0KDQogICAgQG1l ZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpLA0KICAgIHNjcmVl biBhbmQgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSkgew0KICAgICAgLmlzU2VsZWN0ZWRfMDQ5 NGZiNDggLmNlbGxfMDQ5NGZiNDggew0KICAgICAgICAtbXMtaGlnaC1jb250cmFzdC1hZGp1 c3Q6IG5vbmU7DQogICAgICAgIGZvcmNlZC1jb2xvci1hZGp1c3Q6IG5vbmU7DQogICAgICB9 DQogICAgfQ0KDQogICAgW2Rpcj0ibHRyIl0gLmNlbGxfMDQ5NGZiNDguY2VsbFVucGFkZGVk XzA0OTRmYjQ4IHsNCiAgICAgIHBhZGRpbmctcmlnaHQ6IDhweDsNCiAgICB9DQoNCiAgICBb ZGlyPSJydGwiXSAuY2VsbF8wNDk0ZmI0OC5jZWxsVW5wYWRkZWRfMDQ5NGZiNDggew0KICAg ICAgcGFkZGluZy1sZWZ0OiA4cHg7DQogICAgfQ0KDQogICAgW2Rpcj0ibHRyIl0gLmNlbGxf MDQ5NGZiNDguY2VsbFBhZGRlZF8wNDk0ZmI0OCB7DQogICAgICBwYWRkaW5nLXJpZ2h0OiAz MnB4Ow0KICAgIH0NCg0KICAgIFtkaXI9InJ0bCJdIC5jZWxsXzA0OTRmYjQ4LmNlbGxQYWRk ZWRfMDQ5NGZiNDggew0KICAgICAgcGFkZGluZy1sZWZ0OiAzMnB4Ow0KICAgIH0NCg0KICAg IFtkaXI9Imx0ciJdIC5jZWxsXzA0OTRmYjQ4LmNlbGxQYWRkZWRfMDQ5NGZiNDguY2hlY2tD ZWxsXzA0OTRmYjQ4IHsNCiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7DQogICAgfQ0KDQogICAg W2Rpcj0icnRsIl0gLmNlbGxfMDQ5NGZiNDguY2VsbFBhZGRlZF8wNDk0ZmI0OC5jaGVja0Nl bGxfMDQ5NGZiNDggew0KICAgICAgcGFkZGluZy1sZWZ0OiAwOw0KICAgIH0NCg0KICAgIC5p c1Jvd0hlYWRlcl8wNDk0ZmI0OCB7DQogICAgICBjb2xvcjogIzI0MjQyNDsNCiAgICAgIGZv bnQtc2l6ZTogMTRweDsNCiAgICB9DQoNCiAgICAuaXNTZWxlY3RlZF8wNDk0ZmI0OCAuaXNS b3dIZWFkZXJfMDQ5NGZiNDggew0KICAgICAgY29sb3I6ICMxNDE0MTQ7DQogICAgICBmb250 LXdlaWdodDogNjAwOw0KICAgIH0NCg0KICAgIEBtZWRpYSBzY3JlZW4gYW5kICgtbXMtaGln aC1jb250cmFzdDogYWN0aXZlKSwNCiAgICBzY3JlZW4gYW5kIChmb3JjZWQtY29sb3JzOiBh Y3RpdmUpIHsNCiAgICAgIC5pc1NlbGVjdGVkXzA0OTRmYjQ4IC5pc1Jvd0hlYWRlcl8wNDk0 ZmI0OCB7DQogICAgICAgIGNvbG9yOiBIaWdobGlnaHRUZXh0Ow0KICAgICAgfQ0KICAgIH0N Cg0KICAgIC5jaGVja0NlbGxfMDQ5NGZiNDggew0KICAgICAgZm9udC13ZWlnaHQ6IDQwMDsN CiAgICB9DQoNCiAgICAuZGV0YWlsc1Jvd0NoZWNrXzA0OTRmYjQ4IHsNCiAgICAgIGZvbnQt c2l6ZTogMTJweDsNCiAgICAgIGRpc3BsYXk6IGZsZXg7DQogICAgICBhbGlnbi1pdGVtczog Y2VudGVyOw0KICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7DQogICAgICBjdXJzb3I6 IGRlZmF1bHQ7DQogICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94Ow0KICAgICAgdmVydGlj YWwtYWxpZ246IHRvcDsNCiAgICAgIGJhY2tncm91bmQ6IDAgMDsNCiAgICAgIGJhY2tncm91 bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICAgICAgYm9yZGVyOiBub25lOw0KICAgICAgb3Bh Y2l0eTogMDsNCiAgICAgIGhlaWdodDogNDJweDsNCiAgICAgIHdpZHRoOiA0OHB4Ow0KICAg ICAgcGFkZGluZzogMDsNCiAgICAgIG1hcmdpbjogMDsNCiAgICAgIG91dGxpbmU6IHRyYW5z cGFyZW50Ow0KICAgICAgcG9zaXRpb246IHJlbGF0aXZlOw0KICAgIH0NCg0KICAgIC5pc09E MyAuZGV0YWlsc1Jvd0NoZWNrXzA0OTRmYjQ4IHsNCiAgICAgIGhlaWdodDogNDhweDsNCiAg ICAgIHdpZHRoOiA1MnB4Ow0KICAgIH0NCg0KICAgIFtkaXI9Imx0ciJdIC5pc09EMyAuZGV0 YWlsc1Jvd0NoZWNrXzA0OTRmYjQ4IHsNCiAgICAgIHBhZGRpbmctbGVmdDogMTJweDsNCiAg ICB9DQoNCiAgICBbZGlyPSJydGwiXSAuaXNPRDMgLmRldGFpbHNSb3dDaGVja18wNDk0ZmI0 OCB7DQogICAgICBwYWRkaW5nLXJpZ2h0OiAxMnB4Ow0KICAgIH0NCg0KICAgIC5jb21wYWN0 XzA0OTRmYjQ4IC5kZXRhaWxzUm93Q2hlY2tfMDQ5NGZiNDggew0KICAgICAgaGVpZ2h0OiAz MnB4Ow0KICAgIH0NCg0KICAgIC5kZXRhaWxzUm93Q2hlY2tfMDQ5NGZiNDg6aG92ZXIgew0K ICAgICAgb3BhY2l0eTogMTsNCiAgICB9DQoNCiAgICAuZGV0YWlsc1Jvd0NoZWNrXzA0OTRm YjQ4LmlzQ2hlY2tWaXNpYmxlXzA0OTRmYjQ4IHsNCiAgICAgIG9wYWNpdHk6IDE7DQogICAg fQ0KDQogICAgLmRldGFpbHNSb3dDaGVja18wNDk0ZmI0OC5pc0hlYWRlcl8wNDk0ZmI0OCB7 DQogICAgICBoZWlnaHQ6IDQycHg7DQogICAgfQ0KDQogICAgLmlzT0QzIC5kZXRhaWxzUm93 Q2hlY2tfMDQ5NGZiNDguaXNIZWFkZXJfMDQ5NGZiNDggew0KICAgICAgaGVpZ2h0OiA0OHB4 Ow0KICAgIH0NCg0KICAgIC5kZXRhaWxzUm93Q2hlY2tfMDQ5NGZiNDggJjo6LW1vei1mb2N1 cy1pbm5lciB7DQogICAgICBib3JkZXI6IDA7DQogICAgfQ0KDQogICAgLm1zLUZhYnJpYy0t aXNGb2N1c1Zpc2libGUgLmRldGFpbHNSb3dDaGVja18wNDk0ZmI0ODpmb2N1czphZnRlciB7 DQogICAgICBjb250ZW50OiAiIjsNCiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAg IHRvcDogMDsNCiAgICAgIHJpZ2h0OiAwOw0KICAgICAgYm90dG9tOiAwOw0KICAgICAgbGVm dDogMDsNCiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOw0KICAgICAgYm9yZGVyOiAxcHgg c29saWQgIzYxNjE2MTsNCiAgICB9DQoNCiAgICAubXMtRmFicmljLS1pc0ZvY3VzVmlzaWJs ZSAuaXNGbHVlbnRWTmV4dCAuZGV0YWlsc1Jvd0NoZWNrXzA0OTRmYjQ4OmZvY3VzOjphZnRl ciB7DQogICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA4cHg7DQogICAgfQ0KDQogICAg aHRtbFtkaXI9InJ0bCJdIC5tcy1GYWJyaWMtLWlzRm9jdXNWaXNpYmxlIC5pc0ZsdWVudFZO ZXh0IC5kZXRhaWxzUm93Q2hlY2tfMDQ5NGZiNDg6Zm9jdXM6OmFmdGVyIHsNCiAgICAgIGJv cmRlci10b3AtcmlnaHQtcmFkaXVzOiA4cHg7DQogICAgfQ0KDQogICAgLm1zLUZhYnJpYy0t aXNGb2N1c1Zpc2libGUgLmlzT0QzIC5kZXRhaWxzUm93Q2hlY2tfMDQ5NGZiNDg6Zm9jdXM6 OmFmdGVyIHsNCiAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDEycHg7DQogICAgfQ0K DQogICAgaHRtbFtkaXI9InJ0bCJdIC5tcy1GYWJyaWMtLWlzRm9jdXNWaXNpYmxlIC5pc09E MyAuZGV0YWlsc1Jvd0NoZWNrXzA0OTRmYjQ4OmZvY3VzOjphZnRlciB7DQogICAgICBib3Jk ZXItdG9wLXJpZ2h0LXJhZGl1czogMTJweDsNCiAgICB9DQoNCiAgICAuY2hlY2tDb3Zlcl8w NDk0ZmI0OCB7DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgICB0b3A6IC0xcHg7 DQogICAgICBsZWZ0OiAwOw0KICAgICAgYm90dG9tOiAwOw0KICAgICAgcmlnaHQ6IDA7DQog ICAgICBkaXNwbGF5OiBub25lOw0KICAgIH0NCg0KICAgIC5hbnlTZWxlY3RlZF8wNDk0ZmI0 OCAuY2hlY2tDb3Zlcl8wNDk0ZmI0OCB7DQogICAgICBkaXNwbGF5OiBibG9jazsNCiAgICB9 DQoNCiAgICAuZm9udEljb25fMDQ5NGZiNDggew0KICAgICAgZGlzcGxheTogaW5saW5lLWJs b2NrOw0KICAgICAgZm9udC1mYW1pbHk6IEZhYnJpY01ETDJJY29uczsNCiAgICAgIC1tb3ot b3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7DQogICAgICAtd2Via2l0LWZvbnQtc21v b3RoaW5nOiBhbnRpYWxpYXNlZDsNCiAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDsNCiAgICAg IGZvbnQtd2VpZ2h0OiA0MDA7DQogICAgfQ0KDQogICAgLnJvb3RfYzE2NjI2YzEgew0KICAg ICAgbGluZS1oZWlnaHQ6IDE7DQogICAgICB3aWR0aDogMThweDsNCiAgICAgIGhlaWdodDog MThweDsNCiAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7DQogICAgICBwb3NpdGlvbjogcmVs YXRpdmU7DQogICAgICAtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7DQogICAgICAtd2Vi a2l0LXVzZXItc2VsZWN0OiBub25lOw0KICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lOw0K ICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7DQogICAgfQ0KDQogICAgLnJvb3RfYzE2NjI2YzE6 YmVmb3JlIHsNCiAgICAgIGNvbnRlbnQ6ICIiOw0KICAgICAgcG9zaXRpb246IGFic29sdXRl Ow0KICAgICAgbGVmdDogMXB4Ow0KICAgICAgcmlnaHQ6IDFweDsNCiAgICAgIGJvdHRvbTog MXB4Ow0KICAgICAgdG9wOiAxcHg7DQogICAgICBib3JkZXItcmFkaXVzOiA1MCU7DQogICAg ICBvcGFjaXR5OiAxOw0KICAgICAgYmFja2dyb3VuZDogI2ZhZmFmYTsNCiAgICB9DQoNCiAg ICAucm9vdF9jMTY2MjZjMS5yb290SXNDaGVja2VkX2MxNjYyNmMxOmJlZm9yZSB7DQogICAg ICBiYWNrZ3JvdW5kOiAjMDA3OGQ0Ow0KICAgICAgb3BhY2l0eTogMTsNCiAgICB9DQoNCiAg ICBAbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSksDQogICAg c2NyZWVuIGFuZCAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSB7DQogICAgICAucm9vdF9jMTY2 MjZjMS5yb290SXNDaGVja2VkX2MxNjYyNmMxOmJlZm9yZSB7DQogICAgICAgIGJhY2tncm91 bmQ6IFdpbmRvdzsNCiAgICAgIH0NCiAgICB9DQoNCiAgICAucm9vdF9jMTY2MjZjMSAuY2hl Y2tfYzE2NjI2YzEgew0KICAgICAgb3BhY2l0eTogMDsNCiAgICB9DQoNCiAgICAucm9vdF9j MTY2MjZjMS5yb290SXNDaGVja2VkX2MxNjYyNmMxIC5jaGVja19jMTY2MjZjMSwNCiAgICAu cm9vdF9jMTY2MjZjMTpmb2N1cyAuY2hlY2tfYzE2NjI2YzEsDQogICAgLnJvb3RfYzE2NjI2 YzE6aG92ZXIgLmNoZWNrX2MxNjYyNmMxIHsNCiAgICAgIG9wYWNpdHk6IDE7DQogICAgfQ0K DQogICAgLmNoZWNrX2MxNjYyNmMxLA0KICAgIC5jaXJjbGVfYzE2NjI2YzEgew0KICAgICAg Zm9udC1zaXplOiAxOHB4Ow0KICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICAgdG9w OiAwOw0KICAgICAgd2lkdGg6IDE4cHg7DQogICAgICBoZWlnaHQ6IDE4cHg7DQogICAgICB0 ZXh0LWFsaWduOiBjZW50ZXI7DQogICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOw0KICAg IH0NCg0KICAgIFtkaXI9Imx0ciJdIC5jaGVja19jMTY2MjZjMSwNCiAgICBbZGlyPSJsdHIi XSAuY2lyY2xlX2MxNjYyNmMxIHsNCiAgICAgIGxlZnQ6IDA7DQogICAgfQ0KDQogICAgW2Rp cj0icnRsIl0gLmNoZWNrX2MxNjYyNmMxLA0KICAgIFtkaXI9InJ0bCJdIC5jaXJjbGVfYzE2 NjI2YzEgew0KICAgICAgcmlnaHQ6IDA7DQogICAgfQ0KDQogICAgLmNpcmNsZV9jMTY2MjZj MSB7DQogICAgICBjb2xvcjogIzYxNjE2MTsNCiAgICB9DQoNCiAgICBAbWVkaWEgc2NyZWVu IGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSksDQogICAgc2NyZWVuIGFuZCAoZm9y Y2VkLWNvbG9yczogYWN0aXZlKSB7DQogICAgICAuY2lyY2xlX2MxNjYyNmMxIHsNCiAgICAg ICAgY29sb3I6IFdpbmRvd1RleHQ7DQogICAgICB9DQogICAgfQ0KDQogICAgLnJvb3RJc0No ZWNrZWRfYzE2NjI2YzEgLmNpcmNsZV9jMTY2MjZjMSB7DQogICAgICBjb2xvcjogI2ZmZmZm ZjsNCiAgICB9DQoNCiAgICAuY2hlY2tfYzE2NjI2YzEgew0KICAgICAgb3BhY2l0eTogMDsN CiAgICAgIGNvbG9yOiAjNjE2MTYxOw0KICAgICAgZm9udC1zaXplOiAxNnB4Ow0KICAgIH0N Cg0KICAgIFtkaXI9Imx0ciJdIC5jaGVja19jMTY2MjZjMSB7DQogICAgICBsZWZ0OiAwLjVw eDsNCiAgICB9DQoNCiAgICBbZGlyPSJydGwiXSAuY2hlY2tfYzE2NjI2YzEgew0KICAgICAg cmlnaHQ6IDAuNXB4Ow0KICAgIH0NCg0KICAgIEBtZWRpYSBzY3JlZW4gYW5kICgtbXMtaGln aC1jb250cmFzdDogYWN0aXZlKSwNCiAgICBzY3JlZW4gYW5kIChmb3JjZWQtY29sb3JzOiBh Y3RpdmUpIHsNCiAgICAgIC5jaGVja19jMTY2MjZjMSB7DQogICAgICAgIC1tcy1oaWdoLWNv bnRyYXN0LWFkanVzdDogbm9uZTsNCiAgICAgICAgZm9yY2VkLWNvbG9yLWFkanVzdDogbm9u ZTsNCiAgICAgIH0NCiAgICB9DQoNCiAgICAuY2hlY2tfYzE2NjI2YzE6aG92ZXIgew0KICAg ICAgb3BhY2l0eTogMTsNCiAgICB9DQoNCiAgICAucm9vdElzQ2hlY2tlZF9jMTY2MjZjMSAu Y2hlY2tfYzE2NjI2YzEgew0KICAgICAgb3BhY2l0eTogMTsNCiAgICAgIGNvbG9yOiAjZmZm ZmZmOw0KICAgICAgZm9udC13ZWlnaHQ6IDkwMDsNCiAgICB9DQoNCiAgICBAbWVkaWEgc2Ny ZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSksDQogICAgc2NyZWVuIGFuZCAo Zm9yY2VkLWNvbG9yczogYWN0aXZlKSB7DQogICAgICAucm9vdElzQ2hlY2tlZF9jMTY2MjZj MSAuY2hlY2tfYzE2NjI2YzEgew0KICAgICAgICBib3JkZXI6IG5vbmU7DQogICAgICAgIGNv bG9yOiBXaW5kb3dUZXh0Ow0KICAgICAgfQ0KICAgIH0NCg0KICAgIEBtZWRpYSBzY3JlZW4g YW5kICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSwNCiAgICBzY3JlZW4gYW5kIChmb3Jj ZWQtY29sb3JzOiBhY3RpdmUpIHsNCiAgICAgIC5yb290SXNDaGVja2VkX2MxNjYyNmMxIC5j aGVja19jMTY2MjZjMSB7DQogICAgICAgIC1tcy1oaWdoLWNvbnRyYXN0LWFkanVzdDogbm9u ZTsNCiAgICAgICAgZm9yY2VkLWNvbG9yLWFkanVzdDogbm9uZTsNCiAgICAgIH0NCiAgICB9 DQoNCiAgICAucm9vdF9kYzQxODE0YiB7DQogICAgICBmb250LXNpemU6IDEycHg7DQogICAg ICBwb3NpdGlvbjogcmVsYXRpdmU7DQogICAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmOw0KICAg ICAgY29sb3I6ICMyNDI0MjQ7DQogICAgfQ0KDQogICAgLnJvb3RfZGM0MTgxNGIgLm1zLUxp c3QtY2VsbCB7DQogICAgICBtaW4taGVpZ2h0OiAzOHB4Ow0KICAgICAgd29yZC1icmVhazog YnJlYWstd29yZDsNCiAgICB9DQoNCiAgICAucm9vdF9kYzQxODE0YiAubXMtRGV0YWlsc0hl YWRlciB7DQogICAgICBwYWRkaW5nLXRvcDogMDsNCiAgICB9DQoNCiAgICAucm9vdF9kYzQx ODE0Yi5tcy1EZXRhaWxzTGlzdC0tQ29tcGFjdCAubXMtTGlzdC1jZWxsIHsNCiAgICAgIG1p bi1oZWlnaHQ6IDMycHg7DQogICAgfQ0KDQogICAgLnJvb3RfZGM0MTgxNGIuaXMtaG9yaXpv bnRhbENvbnN0cmFpbmVkIHsNCiAgICAgIG92ZXJmbG93LXg6IGF1dG87DQogICAgICBvdmVy Zmxvdy15OiB2aXNpYmxlOw0KICAgICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRv dWNoOw0KICAgIH0NCg0KICAgIC5pc0ZsdWVudFZOZXh0IC5yb290X2RjNDE4MTRiIHsNCiAg ICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7DQogICAgICBib3gtc2hhZG93OiAwcHgg MnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMTQpLA0KICAgICAgICAwcHggMHB4IDJweCByZ2Jh KDAsIDAsIDAsIDAuMTIpOw0KICAgICAgYm9yZGVyLXJhZGl1czogOHB4Ow0KICAgICAgb3Zl cmZsb3cteDogYXV0bzsNCiAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjsNCiAgICAgIG1hcmdp bi1ib3R0b206IDQycHg7DQogICAgfQ0KDQogICAgLmlzT0QzIC5yb290X2RjNDE4MTRiIHsN CiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNlYmViZWI7DQogICAgICBib3JkZXItcmFkaXVz OiAxMnB4Ow0KICAgICAgYm94LXNoYWRvdzogbm9uZTsNCiAgICB9DQoNCiAgICAuZm9jdXNa b25lX2RjNDE4MTRiIHsNCiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsNCiAgICAgIG1p bi13aWR0aDogMTAwJTsNCiAgICAgIG1pbi1oZWlnaHQ6IDE7DQogICAgfQ0KDQogICAgLmNv bnRlbnRXcmFwcGVyX2RjNDE4MTRiPi5tcy1Gb2N1c1pvbmUgew0KICAgICAgZGlzcGxheTog YmxvY2s7DQogICAgfQ0KDQogICAgLnJvb3RfMjI3NmIxYTcgew0KICAgICAgcG9zaXRpb246 IHJlbGF0aXZlOw0KICAgIH0NCg0KICAgIC5yb290XzIyNzZiMWE3OmFmdGVyIHsNCiAgICAg IGNvbnRlbnQ6ICIiOw0KICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICAgdG9wOiAw Ow0KICAgICAgcmlnaHQ6IDA7DQogICAgICBib3R0b206IDA7DQogICAgICBsZWZ0OiAwOw0K ICAgICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwNCiAg ICAgICAgICB0cmFuc3BhcmVudCAzMCUsDQogICAgICAgICAgcmdiYSgyNTUsIDI1NSwgMjU1 LCAwLjQpIDY1JSwNCiAgICAgICAgICAjZmZmZmZmIDEwMCUpOw0KICAgIH0NCg0KICAgIC50 aWxlX2EyZTJlZjZmIHsNCiAgICAgIGRpc3BsYXk6IGJsb2NrOw0KICAgICAgcG9zaXRpb246 IGFic29sdXRlOw0KICAgICAgdG9wOiAwOw0KICAgICAgYm90dG9tOiAwOw0KICAgICAgbGVm dDogMDsNCiAgICAgIHJpZ2h0OiAwOw0KICAgICAgei1pbmRleDogMDsNCiAgICAgIGJhY2tn cm91bmQtY29sb3I6ICNmZmZmZmY7DQogICAgICAtd2Via2l0LXRyYW5zaXRpb246IC13ZWJr aXQtdHJhbnNmb3JtIDAuMXMgbGluZWFyOw0KICAgICAgdHJhbnNpdGlvbjogLXdlYmtpdC10 cmFuc2Zvcm0gMC4xcyBsaW5lYXI7DQogICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4x cyBsaW5lYXI7DQogICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xcyBsaW5lYXIsIC13 ZWJraXQtdHJhbnNmb3JtIDAuMXMgbGluZWFyOw0KICAgICAgY29sb3I6ICMyNDI0MjQ7DQog ICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOw0KICAgICAgLW1vei11c2VyLXNlbGVj dDogbm9uZTsNCiAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTsNCiAgICAgIHVzZXItc2Vs ZWN0OiBub25lOw0KICAgIH0NCg0KICAgIC50aWxlX2EyZTJlZjZmOjotbW96LWZvY3VzLWlu bmVyIHsNCiAgICAgIGJvcmRlcjogMDsNCiAgICB9DQoNCiAgICAudGlsZV9hMmUyZWY2ZiB7 DQogICAgICBvdXRsaW5lOiB0cmFuc3BhcmVudDsNCiAgICB9DQoNCiAgICAudGlsZV9hMmUy ZWY2Zi5pbnZva2FibGVfYTJlMmVmNmY6aG92ZXIsDQogICAgLnRpbGVfYTJlMmVmNmYuc2Vs ZWN0YWJsZV9hMmUyZWY2Zjpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBm MGYwOw0KICAgIH0NCg0KICAgIC50aWxlX2EyZTJlZjZmLmludm9rYWJsZV9hMmUyZWY2Zjpo b3Zlci5zZWxlY3RlZF9hMmUyZWY2ZiwNCiAgICAudGlsZV9hMmUyZWY2Zi5zZWxlY3RhYmxl X2EyZTJlZjZmOmhvdmVyLnNlbGVjdGVkX2EyZTJlZjZmIHsNCiAgICAgIGJhY2tncm91bmQt Y29sb3I6ICNlMGUwZTA7DQogICAgfQ0KDQogICAgLnRpbGVfYTJlMmVmNmYuc2VsZWN0ZWRf YTJlMmVmNmYgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ViZWJlYjsNCiAgICB9DQoN CiAgICAudGlsZV9hMmUyZWY2Zi5zZWxlY3RlZF9hMmUyZWY2Zi5pc0ZsdWVudFN0eWxpbmdf YTJlMmVmNmYgLm5hbWVfYTJlMmVmNmYgew0KICAgICAgZm9udC13ZWlnaHQ6IDYwMDsNCiAg ICB9DQoNCiAgICAubXMtRmFicmljLS1pc0ZvY3VzVmlzaWJsZSAudGlsZV9hMmUyZWY2Zjpm b2N1cyB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBmMGYwOw0KICAgIH0NCg0KICAg IC5tcy1GYWJyaWMtLWlzRm9jdXNWaXNpYmxlIC50aWxlX2EyZTJlZjZmOmZvY3VzLmlzRmx1 ZW50U3R5bGluZ19hMmUyZWY2ZiB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3Bh cmVudDsNCiAgICB9DQoNCiAgICAubXMtRmFicmljLS1pc0ZvY3VzVmlzaWJsZSAudGlsZV9h MmUyZWY2Zjpmb2N1cy5zZWxlY3RlZF9hMmUyZWY2ZiB7DQogICAgICBiYWNrZ3JvdW5kLWNv bG9yOiAjZTBlMGUwOw0KICAgIH0NCg0KICAgIC5tcy1GYWJyaWMtLWlzRm9jdXNWaXNpYmxl IC50aWxlX2EyZTJlZjZmOmZvY3VzIHsNCiAgICAgIG91dGxpbmU6IDFweCBzb2xpZCAjNjE2 MTYxOw0KICAgIH0NCg0KICAgIC5tcy1GYWJyaWMtLWlzRm9jdXNWaXNpYmxlIC50aWxlX2Ey ZTJlZjZmOmZvY3VzLnNlbGVjdGVkX2EyZTJlZjZmIHsNCiAgICAgIG91dGxpbmU6IDFweCBz b2xpZCAjMDA3OGQ0Ow0KICAgIH0NCg0KICAgIC5tcy1GYWJyaWMtLWlzRm9jdXNWaXNpYmxl IC50aWxlX2EyZTJlZjZmOmZvY3VzLnNlbGVjdGVkX2EyZTJlZjZmLmlzRmx1ZW50U3R5bGlu Z19hMmUyZWY2ZiB7DQogICAgICBvdXRsaW5lOiAxcHggc29saWQgIzYxNjE2MTsNCiAgICB9 DQoNCiAgICAudGlsZV9hMmUyZWY2Zi5oYXNCYWNrZ3JvdW5kRnJhbWVfYTJlMmVmNmYgew0K ICAgICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDFweCAzcHggMXB4IHJnYmEoMSwgMSwgMCwg MC4wNSk7DQogICAgICBib3gtc2hhZG93OiAwIDFweCAzcHggMXB4IHJnYmEoMSwgMSwgMCwg MC4wNSk7DQogICAgfQ0KDQogICAgLnRpbGVfYTJlMmVmNmYuaGFzQmFja2dyb3VuZEZyYW1l X2EyZTJlZjZmLmludm9rYWJsZV9hMmUyZWY2Zjpob3ZlciwNCiAgICAudGlsZV9hMmUyZWY2 Zi5oYXNCYWNrZ3JvdW5kRnJhbWVfYTJlMmVmNmYuc2VsZWN0YWJsZV9hMmUyZWY2Zjpob3Zl ciB7DQogICAgICBvdXRsaW5lOiAxcHggc29saWQgI2M3YzdjNzsNCiAgICB9DQoNCiAgICAu bXMtRmFicmljLS1pc0ZvY3VzVmlzaWJsZSAudGlsZV9hMmUyZWY2Zi5oYXNCYWNrZ3JvdW5k RnJhbWVfYTJlMmVmNmY6Zm9jdXMgew0KICAgICAgb3V0bGluZTogMXB4IHNvbGlkICM2MTYx NjE7DQogICAgfQ0KDQogICAgLm1zLUZhYnJpYy0taXNGb2N1c1Zpc2libGUgLnRpbGVfYTJl MmVmNmYuaGFzQmFja2dyb3VuZEZyYW1lX2EyZTJlZjZmOmZvY3VzLnNlbGVjdGVkX2EyZTJl ZjZmIHsNCiAgICAgIG91dGxpbmU6IDFweCBzb2xpZCAjMDA3OGQ0Ow0KICAgIH0NCg0KICAg IC50aWxlX2EyZTJlZjZmLmhhc0JhY2tncm91bmRGcmFtZV9hMmUyZWY2ZjphZnRlciB7DQog ICAgICBjb250ZW50OiAiIjsNCiAgICAgIGRpc3BsYXk6IGJsb2NrOw0KICAgICAgcG9zaXRp b246IGFic29sdXRlOw0KICAgICAgdG9wOiAwOw0KICAgICAgbGVmdDogMDsNCiAgICAgIGJv dHRvbTogMDsNCiAgICAgIHJpZ2h0OiAwOw0KICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7 DQogICAgICBib3JkZXI6IDJweCBzb2xpZCAjZmZmZmZmOw0KICAgIH0NCg0KICAgIC50aWxl X2EyZTJlZjZmLmludm9rYWJsZV9hMmUyZWY2ZjphY3RpdmUgew0KICAgICAgLXdlYmtpdC10 cmFuc2Zvcm06IHNjYWxlKDAuOTUpOw0KICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk1KTsN CiAgICB9DQoNCiAgICAubGFiZWxfYTJlMmVmNmYgew0KICAgICAgcG9zaXRpb246IGFic29s dXRlOw0KICAgICAgd2lkdGg6IDFweDsNCiAgICAgIGhlaWdodDogMXB4Ow0KICAgICAgcGFk ZGluZzogMDsNCiAgICAgIG1hcmdpbjogLTFweDsNCiAgICAgIG92ZXJmbG93OiBoaWRkZW47 DQogICAgICBjbGlwOiByZWN0KDAsIDAsIDAsIDApOw0KICAgICAgYm9yZGVyOiAwOw0KICAg IH0NCg0KICAgIC5kZXNjcmlwdGlvbl9hMmUyZWY2ZiB7DQogICAgICBwb3NpdGlvbjogYWJz b2x1dGU7DQogICAgICB3aWR0aDogMXB4Ow0KICAgICAgaGVpZ2h0OiAxcHg7DQogICAgICBw YWRkaW5nOiAwOw0KICAgICAgbWFyZ2luOiAtMXB4Ow0KICAgICAgb3ZlcmZsb3c6IGhpZGRl bjsNCiAgICAgIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7DQogICAgICBib3JkZXI6IDA7DQog ICAgfQ0KDQogICAgLmxpbmtfYTJlMmVmNmYgew0KICAgICAgYm9yZGVyOiBub25lOw0KICAg ICAgYmFja2dyb3VuZDogMCAwOw0KICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICAg cGFkZGluZzogMDsNCiAgICAgIHRvcDogMDsNCiAgICAgIGxlZnQ6IDA7DQogICAgICBib3R0 b206IDA7DQogICAgICByaWdodDogMDsNCiAgICAgIHdpZHRoOiAxMDAlOw0KICAgICAgdGV4 dC1kZWNvcmF0aW9uOiBub25lOw0KICAgICAgY29sb3I6IGluaGVyaXQ7DQogICAgICBvdmVy ZmxvdzogaGlkZGVuOw0KICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7DQogICAgICBkaXNw bGF5OiAtbXMtZmxleGJveDsNCiAgICAgIGRpc3BsYXk6IGZsZXg7DQogICAgICAtd2Via2l0 LWJveC1vcmllbnQ6IHZlcnRpY2FsOw0KICAgICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBu b3JtYWw7DQogICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjsNCiAgICAgIGZsZXgt ZGlyZWN0aW9uOiBjb2x1bW47DQogICAgICAtd2Via2l0LWJveC1hbGlnbjogc3RyZXRjaDsN CiAgICAgIC1tcy1mbGV4LWFsaWduOiBzdHJldGNoOw0KICAgICAgYWxpZ24taXRlbXM6IHN0 cmV0Y2g7DQogICAgICAtbXMtZmxleC1saW5lLXBhY2s6IHN0cmV0Y2g7DQogICAgICBhbGln bi1jb250ZW50OiBzdHJldGNoOw0KICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7DQogICAg fQ0KDQogICAgLmxpbmtfYTJlMmVmNmY6Oi1tb3otZm9jdXMtaW5uZXIgew0KICAgICAgYm9y ZGVyOiAwOw0KICAgIH0NCg0KICAgIC5saW5rX2EyZTJlZjZmIHsNCiAgICAgIG91dGxpbmU6 IHRyYW5zcGFyZW50Ow0KICAgIH0NCg0KICAgIC5mb3JlZ3JvdW5kX2EyZTJlZjZmIHsNCiAg ICAgIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWJveDsNCiAgICAgIGRpc3BsYXk6IC1tcy1p bmxpbmUtZmxleGJveDsNCiAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4Ow0KICAgICAgcG9z aXRpb246IHJlbGF0aXZlOw0KICAgICAgb3ZlcmZsb3c6IHZpc2libGU7DQogICAgICBtYXgt d2lkdGg6IDEwMCU7DQogICAgICBtYXgtaGVpZ2h0OiAxMDAlOw0KICAgICAgLXdlYmtpdC1i b3gtb3JpZW50OiBob3Jpem9udGFsOw0KICAgICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBu b3JtYWw7DQogICAgICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdzsNCiAgICAgIGZsZXgtZGly ZWN0aW9uOiByb3c7DQogICAgICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyOw0KICAgICAg LW1zLWZsZXgtYWxpZ246IGNlbnRlcjsNCiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7DQog ICAgICAtd2Via2l0LWJveC1wYWNrOiBjZW50ZXI7DQogICAgICAtbXMtZmxleC1wYWNrOiBj ZW50ZXI7DQogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsNCiAgICAgIG9wYWNpdHk6 IDE7DQogICAgICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBsaW5lYXI7DQog ICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgbGluZWFyOw0KICAgIH0NCg0KICAgIC50 aWxlX2EyZTJlZjZmLmludm9rYWJsZV9hMmUyZWY2ZiAuZm9yZWdyb3VuZF9hMmUyZWY2ZiB7 DQogICAgICBwb2ludGVyLWV2ZW50czogYXV0bzsNCiAgICAgIGN1cnNvcjogcG9pbnRlcjsN CiAgICB9DQoNCiAgICAuZm9yZWdyb3VuZF9hMmUyZWY2Zi5mb3JlZ3JvdW5kSGlkZV9hMmUy ZWY2ZiB7DQogICAgICBvcGFjaXR5OiAwOw0KICAgIH0NCg0KICAgIC5oYXNGb3JlZ3JvdW5k RnJhbWVfYTJlMmVmNmYgLmZvcmVncm91bmRfYTJlMmVmNmYgew0KICAgICAgYmFja2dyb3Vu ZC1jb2xvcjogI2ZmZmZmZjsNCiAgICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAxcHggM3B4 IDFweCByZ2JhKDEsIDEsIDAsIDAuMDUpOw0KICAgICAgYm94LXNoYWRvdzogMCAxcHggM3B4 IDFweCByZ2JhKDEsIDEsIDAsIDAuMDUpOw0KICAgICAgbWluLXdpZHRoOiAzMnB4Ow0KICAg ICAgbWluLWhlaWdodDogMzJweDsNCiAgICB9DQoNCiAgICAuaGFzRm9yZWdyb3VuZEZyYW1l X2EyZTJlZjZmIC5mb3JlZ3JvdW5kX2EyZTJlZjZmOmFmdGVyIHsNCiAgICAgIGNvbnRlbnQ6 ICIiOw0KICAgICAgZGlzcGxheTogYmxvY2s7DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7 DQogICAgICB0b3A6IDA7DQogICAgICBsZWZ0OiAwOw0KICAgICAgYm90dG9tOiAwOw0KICAg ICAgcmlnaHQ6IDA7DQogICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsNCiAgICAgIGJvcmRl cjogMnB4IHNvbGlkICNmZmZmZmY7DQogICAgfQ0KDQogICAgLmNoZWNrX2EyZTJlZjZmIHsN CiAgICAgIGRpc3BsYXk6IG5vbmU7DQogICAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRp Y2FsOw0KICAgICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7DQogICAgICAtbXMt ZmxleC1kaXJlY3Rpb246IGNvbHVtbjsNCiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47 DQogICAgICAtd2Via2l0LWJveC1hbGlnbjogZW5kOw0KICAgICAgLW1zLWZsZXgtYWxpZ246 IGVuZDsNCiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsNCiAgICAgIC13ZWJraXQtYm94 LXBhY2s6IHN0YXJ0Ow0KICAgICAgLW1zLWZsZXgtcGFjazogc3RhcnQ7DQogICAgICBqdXN0 aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7DQogICAgICB0b3A6IDA7DQogICAgICBib3JkZXI6 IG5vbmU7DQogICAgICBiYWNrZ3JvdW5kOiAwIDA7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9y OiB0cmFuc3BhcmVudDsNCiAgICAgIG9wYWNpdHk6IDA7DQogICAgICAtd2Via2l0LWJveC1z aXppbmc6IGJvcmRlci1ib3g7DQogICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94Ow0KICAg ICAgcGFkZGluZzogNnB4Ow0KICAgIH0NCg0KICAgIC5jaGVja19hMmUyZWY2Zjo6LW1vei1m b2N1cy1pbm5lciB7DQogICAgICBib3JkZXI6IDA7DQogICAgfQ0KDQogICAgLmNoZWNrX2Ey ZTJlZjZmIHsNCiAgICAgIG91dGxpbmU6IHRyYW5zcGFyZW50Ow0KICAgIH0NCg0KICAgIC5j aGVja19hMmUyZWY2ZiB7DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgfQ0KDQog ICAgLm1zLUZhYnJpYy0taXNGb2N1c1Zpc2libGUgLmNoZWNrX2EyZTJlZjZmOmZvY3VzOmFm dGVyIHsNCiAgICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsNCiAgICAgIGJv eC1zaXppbmc6IGJvcmRlci1ib3g7DQogICAgICBjb250ZW50OiAiIjsNCiAgICAgIHBvc2l0 aW9uOiBhYnNvbHV0ZTsNCiAgICAgIHRvcDogMDsNCiAgICAgIHJpZ2h0OiAwOw0KICAgICAg Ym90dG9tOiAwOw0KICAgICAgbGVmdDogMDsNCiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25l Ow0KICAgICAgYm9yZGVyOiAxcHggc29saWQgIzAwMDAwMDsNCiAgICAgIGJvcmRlci1yYWRp dXM6IDA7DQogICAgfQ0KDQogICAgaHRtbFtkaXI9Imx0ciJdIC5jaGVja19hMmUyZWY2ZiB7 DQogICAgICByaWdodDogMDsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0icnRsIl0gLmNoZWNr X2EyZTJlZjZmIHsNCiAgICAgIGxlZnQ6IDA7DQogICAgfQ0KDQogICAgLnRpbGVfYTJlMmVm NmYudW5pbnZva2FibGVfYTJlMmVmNmYgLmNoZWNrX2EyZTJlZjZmIHsNCiAgICAgIHdpZHRo OiAxMDAlOw0KICAgICAgaGVpZ2h0OiAxMDAlOw0KICAgIH0NCg0KICAgIC50aWxlX2EyZTJl ZjZmLnNlbGVjdGFibGVfYTJlMmVmNmYgLmNoZWNrX2EyZTJlZjZmIHsNCiAgICAgIGRpc3Bs YXk6IC13ZWJraXQtYm94Ow0KICAgICAgZGlzcGxheTogLW1zLWZsZXhib3g7DQogICAgICBk aXNwbGF5OiBmbGV4Ow0KICAgIH0NCg0KICAgIC50aWxlX2EyZTJlZjZmLnNlbGVjdGFibGVf YTJlMmVmNmY6aG92ZXIgLmNoZWNrX2EyZTJlZjZmLA0KICAgIC50aWxlX2EyZTJlZjZmLnNl bGVjdGVkX2EyZTJlZjZmIC5jaGVja19hMmUyZWY2ZiwNCiAgICAudGlsZV9hMmUyZWY2Zi5z aG93Q2hlY2tfYTJlMmVmNmYgLmNoZWNrX2EyZTJlZjZmIHsNCiAgICAgIG9wYWNpdHk6IDE7 DQogICAgfQ0KDQogICAgLm1zLUZhYnJpYy0taXNGb2N1c1Zpc2libGUgLmNoZWNrX2EyZTJl ZjZmOmZvY3VzIHsNCiAgICAgIG9wYWNpdHk6IDE7DQogICAgfQ0KDQogICAgLm1zLUZhYnJp Yy0taXNGb2N1c1Zpc2libGUgLnRpbGVfYTJlMmVmNmY6Zm9jdXMgLmNoZWNrX2EyZTJlZjZm IHsNCiAgICAgIG9wYWNpdHk6IDE7DQogICAgfQ0KDQogICAgLmJhY2tncm91bmRfYTJlMmVm NmYgew0KICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICAgdG9wOiAwOw0KICAgICAg bGVmdDogMDsNCiAgICAgIHJpZ2h0OiAwOw0KICAgICAgYm90dG9tOiAwOw0KICAgICAgb3Zl cmZsb3c6IGhpZGRlbjsNCiAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94Ow0KICAgICAgZGlz cGxheTogLW1zLWZsZXhib3g7DQogICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgLXdlYmtp dC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDsNCiAgICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjog bm9ybWFsOw0KICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47DQogICAgICBmbGV4 LWRpcmVjdGlvbjogY29sdW1uOw0KICAgICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjsN CiAgICAgIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7DQogICAgICBhbGlnbi1pdGVtczogY2Vu dGVyOw0KICAgICAgLXdlYmtpdC1ib3gtcGFjazogY2VudGVyOw0KICAgICAgLW1zLWZsZXgt cGFjazogY2VudGVyOw0KICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7DQogICAgICBv cGFjaXR5OiAxOw0KICAgICAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgbGlu ZWFyOw0KICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGxpbmVhcjsNCiAgICB9DQoN CiAgICAudGlsZV9hMmUyZWY2Zi5pbnZva2FibGVfYTJlMmVmNmYgLmJhY2tncm91bmRfYTJl MmVmNmYgew0KICAgICAgY3Vyc29yOiBwb2ludGVyOw0KICAgICAgcG9pbnRlci1ldmVudHM6 IGF1dG87DQogICAgfQ0KDQogICAgLmJhY2tncm91bmRfYTJlMmVmNmYuYmFja2dyb3VuZEhp ZGVfYTJlMmVmNmYgew0KICAgICAgb3BhY2l0eTogMDsNCiAgICB9DQoNCiAgICAuYWJvdmVO YW1lcGxhdGVfYTJlMmVmNmYgew0KICAgICAgLXdlYmtpdC1ib3gtZmxleDogMTsNCiAgICAg IC1tcy1mbGV4OiAxOw0KICAgICAgZmxleDogMTsNCiAgICAgIHBvc2l0aW9uOiByZWxhdGl2 ZTsNCiAgICAgIG1hcmdpbjogMTZweCAxNnB4IDAgMTZweDsNCiAgICB9DQoNCiAgICAuY29u dGVudF9hMmUyZWY2ZiB7DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgICB0b3A6 IDA7DQogICAgICBsZWZ0OiAwOw0KICAgICAgYm90dG9tOiAwOw0KICAgICAgcmlnaHQ6IDA7 DQogICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsNCiAgICAgIGRpc3BsYXk6IC1tcy1mbGV4 Ym94Ow0KICAgICAgZGlzcGxheTogZmxleDsNCiAgICAgIC13ZWJraXQtYm94LW9yaWVudDog dmVydGljYWw7DQogICAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDsNCiAgICAg IC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uOw0KICAgICAgZmxleC1kaXJlY3Rpb246IGNv bHVtbjsNCiAgICAgIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7DQogICAgICAtbXMtZmxl eC1hbGlnbjogY2VudGVyOw0KICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAgICAgIC13 ZWJraXQtYm94LXBhY2s6IGNlbnRlcjsNCiAgICAgIC1tcy1mbGV4LXBhY2s6IGNlbnRlcjsN CiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOw0KICAgIH0NCg0KICAgIC5oYXNGb3Jl Z3JvdW5kRnJhbWVfYTJlMmVmNmYgLmNvbnRlbnRfYTJlMmVmNmYgew0KICAgICAgLXdlYmtp dC1ib3gtcGFjazogZW5kOw0KICAgICAgLW1zLWZsZXgtcGFjazogZW5kOw0KICAgICAganVz dGlmeS1jb250ZW50OiBmbGV4LWVuZDsNCiAgICB9DQoNCiAgICAubmFtZXBsYXRlX2EyZTJl ZjZmIHsNCiAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94Ow0KICAgICAgZGlzcGxheTogLW1z LWZsZXhib3g7DQogICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgLXdlYmtpdC1ib3gtb3Jp ZW50OiB2ZXJ0aWNhbDsNCiAgICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsOw0K ICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47DQogICAgICBmbGV4LWRpcmVjdGlv bjogY29sdW1uOw0KICAgICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjsNCiAgICAgIC1t cy1mbGV4LWFsaWduOiBjZW50ZXI7DQogICAgICBhbGlnbi1pdGVtczogY2VudGVyOw0KICAg ICAgLXdlYmtpdC1ib3gtcGFjazogZW5kOw0KICAgICAgLW1zLWZsZXgtcGFjazogZW5kOw0K ICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsNCiAgICAgIHBvc2l0aW9uOiByZWxh dGl2ZTsNCiAgICAgIG1hcmdpbjogYXV0byAwIDAgMDsNCiAgICAgIHBhZGRpbmc6IDEycHgg OHB4Ow0KICAgICAgdGV4dC1hbGlnbjogY2VudGVyOw0KICAgICAgei1pbmRleDogMDsNCiAg ICB9DQoNCiAgICAubmFtZXBsYXRlX2EyZTJlZjZmIC5uYW1lX2EyZTJlZjZmIHsNCiAgICAg IC13ZWJraXQtdHJhbnNpdGlvbjogY29sb3IgMC4ycyBsaW5lYXI7DQogICAgICB0cmFuc2l0 aW9uOiBjb2xvciAwLjJzIGxpbmVhcjsNCiAgICB9DQoNCiAgICAudGlsZV9hMmUyZWY2Zi5p bnZva2FibGVfYTJlMmVmNmYgLm5hbWVwbGF0ZV9hMmUyZWY2ZiAubmFtZV9hMmUyZWY2ZiB7 DQogICAgICBwb2ludGVyLWV2ZW50czogYXV0bzsNCiAgICAgIGN1cnNvcjogcG9pbnRlcjsN CiAgICB9DQoNCiAgICAudGlsZV9hMmUyZWY2Zi5pbnZva2FibGVfYTJlMmVmNmYgLmxpbmtf YTJlMmVmNmY6aG92ZXIgLm5hbWVwbGF0ZV9hMmUyZWY2ZiAubmFtZV9hMmUyZWY2ZiB7DQog ICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsNCiAgICB9DQoNCiAgICAuaXNGbHVl bnRTdHlsaW5nX2EyZTJlZjZmIC50aWxlX2EyZTJlZjZmLmludm9rYWJsZV9hMmUyZWY2ZiAu bGlua19hMmUyZWY2Zjpob3ZlciAubmFtZXBsYXRlX2EyZTJlZjZmIC5uYW1lX2EyZTJlZjZm IHsNCiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsNCiAgICB9DQoNCiAgICAubmFtZXBs YXRlX2EyZTJlZjZmIC5hY3Rpdml0eV9hMmUyZWY2ZiB7DQogICAgICAtd2Via2l0LXRyYW5z aXRpb246IGNvbG9yIDAuMnMgbGluZWFyOw0KICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4y cyBsaW5lYXI7DQogICAgfQ0KDQogICAgLnRpbGVfYTJlMmVmNmYuaGFzQmFja2dyb3VuZEZy YW1lX2EyZTJlZjZmIC5uYW1lcGxhdGVfYTJlMmVmNmYgew0KICAgICAgLXdlYmtpdC1ib3gt YWxpZ246IHN0YXJ0Ow0KICAgICAgLW1zLWZsZXgtYWxpZ246IHN0YXJ0Ow0KICAgICAgYWxp Z24taXRlbXM6IGZsZXgtc3RhcnQ7DQogICAgICBwYWRkaW5nOiAxMnB4IDEwcHg7DQogICAg fQ0KDQogICAgLnNpZ25hbF9hMmUyZWY2ZiB7DQogICAgICBkaXNwbGF5OiBpbmxpbmUtYmxv Y2s7DQogICAgfQ0KDQogICAgaHRtbFtkaXI9Imx0ciJdIC5zaWduYWxfYTJlMmVmNmYuc3Rv cmFnZVNpZ25hbF9hMmUyZWY2ZiB7DQogICAgICBtYXJnaW4tbGVmdDogNHB4Ow0KICAgIH0N Cg0KICAgIGh0bWxbZGlyPSJydGwiXSAuc2lnbmFsX2EyZTJlZjZmLnN0b3JhZ2VTaWduYWxf YTJlMmVmNmYgew0KICAgICAgbWFyZ2luLXJpZ2h0OiA0cHg7DQogICAgfQ0KDQogICAgaHRt bFtkaXI9Imx0ciJdIC5zaWduYWxfYTJlMmVmNmYuc29jaWFsU2lnbmFsX2EyZTJlZjZmIHsN CiAgICAgIG1hcmdpbi1yaWdodDogNHB4Ow0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJydGwi XSAuc2lnbmFsX2EyZTJlZjZmLnNvY2lhbFNpZ25hbF9hMmUyZWY2ZiB7DQogICAgICBtYXJn aW4tbGVmdDogNHB4Ow0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJsdHIiXSAuc2lnbmFsX2Ey ZTJlZjZmLmxpZmVjeWNsZVNpZ25hbF9hMmUyZWY2ZiB7DQogICAgICBtYXJnaW4tcmlnaHQ6 IDRweDsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0icnRsIl0gLnNpZ25hbF9hMmUyZWY2Zi5s aWZlY3ljbGVTaWduYWxfYTJlMmVmNmYgew0KICAgICAgbWFyZ2luLWxlZnQ6IDRweDsNCiAg ICB9DQoNCiAgICAubmFtZV9hMmUyZWY2ZiB7DQogICAgICBkaXNwbGF5OiAtd2Via2l0LWJv eDsNCiAgICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94Ow0KICAgICAgZGlzcGxheTogZmxleDsN CiAgICAgIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbDsNCiAgICAgIC13ZWJraXQt Ym94LWRpcmVjdGlvbjogbm9ybWFsOw0KICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3c7 DQogICAgICBmbGV4LWRpcmVjdGlvbjogcm93Ow0KICAgICAgLXdlYmtpdC1ib3gtYWxpZ246 IGNlbnRlcjsNCiAgICAgIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7DQogICAgICBhbGlnbi1p dGVtczogY2VudGVyOw0KICAgICAgLXdlYmtpdC1ib3gtcGFjazogY2VudGVyOw0KICAgICAg LW1zLWZsZXgtcGFjazogY2VudGVyOw0KICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7 DQogICAgICBmb250LXdlaWdodDogNDAwOw0KICAgICAgY29sb3I6ICMyNDI0MjQ7DQogICAg ICB3aGl0ZS1zcGFjZTogbm93cmFwOw0KICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsNCiAgICAg IHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOw0KICAgICAgbWF4LXdpZHRoOiAxMDAlOw0KICAg IH0NCg0KICAgIGh0bWxbZGlyPSJsdHIiXSAubmFtZV9hMmUyZWY2ZiB7DQogICAgICBtYXJn aW4tbGVmdDogLThweDsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0icnRsIl0gLm5hbWVfYTJl MmVmNmYgew0KICAgICAgbWFyZ2luLXJpZ2h0OiAtOHB4Ow0KICAgIH0NCg0KICAgIGh0bWxb ZGlyPSJsdHIiXSAubmFtZV9hMmUyZWY2ZiB7DQogICAgICBwYWRkaW5nLWxlZnQ6IDhweDsN CiAgICB9DQoNCiAgICBodG1sW2Rpcj0icnRsIl0gLm5hbWVfYTJlMmVmNmYgew0KICAgICAg cGFkZGluZy1yaWdodDogOHB4Ow0KICAgIH0NCg0KICAgIC5pc0xhcmdlX2EyZTJlZjZmIC5u YW1lX2EyZTJlZjZmLA0KICAgIC5uYW1lX2EyZTJlZjZmIHsNCiAgICAgIGZvbnQtc2l6ZTog MTRweDsNCiAgICAgIGhlaWdodDogMzBweDsNCiAgICAgIG1hcmdpbi10b3A6IC03cHg7DQog ICAgICBtYXJnaW4tYm90dG9tOiAtOHB4Ow0KICAgIH0NCg0KICAgIC5pc1NtYWxsX2EyZTJl ZjZmIC5uYW1lX2EyZTJlZjZmIHsNCiAgICAgIGZvbnQtc2l6ZTogMTJweDsNCiAgICAgIGhl aWdodDogMjRweDsNCiAgICAgIG1hcmdpbi10b3A6IC01cHg7DQogICAgICBtYXJnaW4tYm90 dG9tOiAtN3B4Ow0KICAgIH0NCg0KICAgIC5hY3Rpdml0eV9hMmUyZWY2ZiB7DQogICAgICBk aXNwbGF5OiAtd2Via2l0LWJveDsNCiAgICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94Ow0KICAg ICAgZGlzcGxheTogZmxleDsNCiAgICAgIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRh bDsNCiAgICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsOw0KICAgICAgLW1zLWZs ZXgtZGlyZWN0aW9uOiByb3c7DQogICAgICBmbGV4LWRpcmVjdGlvbjogcm93Ow0KICAgICAg LXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjsNCiAgICAgIC1tcy1mbGV4LWFsaWduOiBjZW50 ZXI7DQogICAgICBhbGlnbi1pdGVtczogY2VudGVyOw0KICAgICAgLXdlYmtpdC1ib3gtcGFj azogY2VudGVyOw0KICAgICAgLW1zLWZsZXgtcGFjazogY2VudGVyOw0KICAgICAganVzdGlm eS1jb250ZW50OiBjZW50ZXI7DQogICAgICBmb250LXdlaWdodDogNDAwOw0KICAgICAgZm9u dC1zaXplOiAxMnB4Ow0KICAgICAgY29sb3I6ICM2MTYxNjE7DQogICAgICB3aGl0ZS1zcGFj ZTogbm93cmFwOw0KICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsNCiAgICAgIHRleHQtb3ZlcmZs b3c6IGVsbGlwc2lzOw0KICAgICAgbWF4LXdpZHRoOiAxMDAlOw0KICAgICAgaGVpZ2h0OiAy NHB4Ow0KICAgICAgbWFyZ2luLWJvdHRvbTogLTRweDsNCiAgICB9DQoNCiAgICBodG1sW2Rp cj0ibHRyIl0gLmFjdGl2aXR5X2EyZTJlZjZmIHsNCiAgICAgIG1hcmdpbi1sZWZ0OiAtOHB4 Ow0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJydGwiXSAuYWN0aXZpdHlfYTJlMmVmNmYgew0K ICAgICAgbWFyZ2luLXJpZ2h0OiAtOHB4Ow0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJsdHIi XSAuYWN0aXZpdHlfYTJlMmVmNmYgew0KICAgICAgcGFkZGluZy1sZWZ0OiA4cHg7DQogICAg fQ0KDQogICAgaHRtbFtkaXI9InJ0bCJdIC5hY3Rpdml0eV9hMmUyZWY2ZiB7DQogICAgICBw YWRkaW5nLXJpZ2h0OiA4cHg7DQogICAgfQ0KDQogICAgLmhhc0JhY2tncm91bmRGcmFtZV9h MmUyZWY2ZiAubmFtZV9hMmUyZWY2ZiB7DQogICAgICBkaXNwbGF5OiBibG9jazsNCiAgICB9 DQoNCiAgICBodG1sW2Rpcj0ibHRyIl0gLmhhc0JhY2tncm91bmRGcmFtZV9hMmUyZWY2ZiAu bmFtZV9hMmUyZWY2ZiB7DQogICAgICAtd2Via2l0LWJveC1wYWNrOiBsZWZ0Ow0KICAgICAg LW1zLWZsZXgtcGFjazogbGVmdDsNCiAgICAgIGp1c3RpZnktY29udGVudDogbGVmdDsNCiAg ICB9DQoNCiAgICBodG1sW2Rpcj0icnRsIl0gLmhhc0JhY2tncm91bmRGcmFtZV9hMmUyZWY2 ZiAubmFtZV9hMmUyZWY2ZiB7DQogICAgICAtd2Via2l0LWJveC1wYWNrOiByaWdodDsNCiAg ICAgIC1tcy1mbGV4LXBhY2s6IHJpZ2h0Ow0KICAgICAganVzdGlmeS1jb250ZW50OiByaWdo dDsNCiAgICB9DQoNCiAgICAuaGFzQmFja2dyb3VuZEZyYW1lX2EyZTJlZjZmIC5uYW1lX2Ey ZTJlZjZmLA0KICAgIC5pc0xhcmdlX2EyZTJlZjZmIC5pc1NtYWxsX2EyZTJlZjZmIC5oYXNC YWNrZ3JvdW5kRnJhbWVfYTJlMmVmNmYgLm5hbWVfYTJlMmVmNmYgew0KICAgICAgZm9udC1z aXplOiAxNHB4Ow0KICAgICAgaGVpZ2h0OiBhdXRvOw0KICAgICAgcGFkZGluZy10b3A6IDZw eDsNCiAgICAgIG1hcmdpbi10b3A6IDA7DQogICAgICBtYXJnaW4tYm90dG9tOiAwOw0KICAg ICAgbGluZS1oZWlnaHQ6IDIycHg7DQogICAgfQ0KDQogICAgLmhhc0JhY2tncm91bmRGcmFt ZV9hMmUyZWY2ZiAuYWN0aXZpdHlfYTJlMmVmNmYgew0KICAgICAgZm9udC1zaXplOiAxMnB4 Ow0KICAgICAgZGlzcGxheTogYmxvY2s7DQogICAgICBoZWlnaHQ6IGF1dG87DQogICAgICBt YXJnaW4tdG9wOiAwOw0KICAgICAgbWFyZ2luLWJvdHRvbTogMDsNCiAgICAgIGxpbmUtaGVp Z2h0OiAyMHB4Ow0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJsdHIiXSAuaGFzQmFja2dyb3Vu ZEZyYW1lX2EyZTJlZjZmIC5hY3Rpdml0eV9hMmUyZWY2ZiB7DQogICAgICAtd2Via2l0LWJv eC1wYWNrOiBsZWZ0Ow0KICAgICAgLW1zLWZsZXgtcGFjazogbGVmdDsNCiAgICAgIGp1c3Rp ZnktY29udGVudDogbGVmdDsNCiAgICAgIHRleHQtYWxpZ246IGxlZnQ7DQogICAgfQ0KDQog ICAgaHRtbFtkaXI9InJ0bCJdIC5oYXNCYWNrZ3JvdW5kRnJhbWVfYTJlMmVmNmYgLmFjdGl2 aXR5X2EyZTJlZjZmIHsNCiAgICAgIC13ZWJraXQtYm94LXBhY2s6IGxlZnQ7DQogICAgICAt bXMtZmxleC1wYWNrOiBsZWZ0Ow0KICAgICAganVzdGlmeS1jb250ZW50OiBsZWZ0Ow0KICAg ICAgdGV4dC1hbGlnbjogbGVmdDsNCiAgICB9DQoNCiAgICAuaGFzQmFja2dyb3VuZF9hMmUy ZWY2ZiAubmFtZXBsYXRlX2EyZTJlZjZmOmJlZm9yZSB7DQogICAgICBwb3NpdGlvbjogYWJz b2x1dGU7DQogICAgICBjb250ZW50OiAiIjsNCiAgICAgIGRpc3BsYXk6IGJsb2NrOw0KICAg ICAgdG9wOiAtNHB4Ow0KICAgICAgYm90dG9tOiAwOw0KICAgICAgbGVmdDogMDsNCiAgICAg IHJpZ2h0OiAwOw0KICAgICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChs aW5lYXIsDQogICAgICAgICAgbGVmdCBib3R0b20sDQogICAgICAgICAgbGVmdCB0b3AsDQog ICAgICAgICAgZnJvbShyZ2JhKDAsIDAsIDAsIDAuNjUpKSwNCiAgICAgICAgICBjb2xvci1z dG9wKDU1JSwgcmdiYSgwLCAwLCAwLCAwLjU1MjUpKSwNCiAgICAgICAgICBjb2xvci1zdG9w KDgwJSwgcmdiYSgwLCAwLCAwLCAwLjE5NSkpLA0KICAgICAgICAgIHRvKHJnYmEoMCwgMCwg MCwgMCkpKTsNCiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byB0 b3AsDQogICAgICAgICAgcmdiYSgwLCAwLCAwLCAwLjY1KSAwLA0KICAgICAgICAgIHJnYmEo MCwgMCwgMCwgMC41NTI1KSA1NSUsDQogICAgICAgICAgcmdiYSgwLCAwLCAwLCAwLjE5NSkg ODAlLA0KICAgICAgICAgIHJnYmEoMCwgMCwgMCwgMCkgMTAwJSk7DQogICAgICB6LWluZGV4 OiAtMTsNCiAgICAgIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGxpbmVhcjsN CiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBsaW5lYXI7DQogICAgICBvcGFjaXR5 OiAwOw0KICAgIH0NCg0KICAgIC5oYXNCYWNrZ3JvdW5kX2EyZTJlZjZmIC5vbmx5T25Ib3Zl cl9hMmUyZWY2ZiAubmFtZV9hMmUyZWY2ZiB7DQogICAgICBvcGFjaXR5OiAwOw0KICAgICAg LXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgbGluZWFyLCBjb2xvciAwLjJzIGxp bmVhciwNCiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm0gMC4yNXMgZWFzZS1vdXQ7DQogICAg ICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgbGluZWFyLCBjb2xvciAwLjJzIGxpbmVhciwN CiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm0gMC4yNXMgZWFzZS1vdXQ7DQogICAgICB0cmFu c2l0aW9uOiB0cmFuc2Zvcm0gMC4yNXMgZWFzZS1vdXQsIG9wYWNpdHkgMC4ycyBsaW5lYXIs DQogICAgICAgIGNvbG9yIDAuMnMgbGluZWFyOw0KICAgICAgdHJhbnNpdGlvbjogdHJhbnNm b3JtIDAuMjVzIGVhc2Utb3V0LCBvcGFjaXR5IDAuMnMgbGluZWFyLA0KICAgICAgICBjb2xv ciAwLjJzIGxpbmVhciwgLXdlYmtpdC10cmFuc2Zvcm0gMC4yNXMgZWFzZS1vdXQ7DQogICAg ICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgxcmVtKTsNCiAgICAgIHRyYW5zZm9y bTogdHJhbnNsYXRlWSgxcmVtKTsNCiAgICB9DQoNCiAgICAuaGFzQmFja2dyb3VuZF9hMmUy ZWY2ZiAub25seU9uSG92ZXJfYTJlMmVmNmYgLmFjdGl2aXR5X2EyZTJlZjZmIHsNCiAgICAg IG9wYWNpdHk6IDA7DQogICAgICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBs aW5lYXIsIGNvbG9yIDAuMnMgbGluZWFyLA0KICAgICAgICAtd2Via2l0LXRyYW5zZm9ybSAw LjI1cyBlYXNlLW91dDsNCiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBsaW5lYXIs IGNvbG9yIDAuMnMgbGluZWFyLA0KICAgICAgICAtd2Via2l0LXRyYW5zZm9ybSAwLjI1cyBl YXNlLW91dDsNCiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjI1cyBlYXNlLW91dCwg b3BhY2l0eSAwLjJzIGxpbmVhciwNCiAgICAgICAgY29sb3IgMC4ycyBsaW5lYXI7DQogICAg ICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4yNXMgZWFzZS1vdXQsIG9wYWNpdHkgMC4ycyBs aW5lYXIsDQogICAgICAgIGNvbG9yIDAuMnMgbGluZWFyLCAtd2Via2l0LXRyYW5zZm9ybSAw LjI1cyBlYXNlLW91dDsNCiAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDFy ZW0pOw0KICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDFyZW0pOw0KICAgIH0NCg0KICAg IC5oYXNCYWNrZ3JvdW5kX2EyZTJlZjZmLnNlbGVjdGVkX2EyZTJlZjZmIC5vbmx5T25Ib3Zl cl9hMmUyZWY2ZiAubmFtZV9hMmUyZWY2ZiwNCiAgICAuaGFzQmFja2dyb3VuZF9hMmUyZWY2 Zjpob3ZlciAub25seU9uSG92ZXJfYTJlMmVmNmYgLm5hbWVfYTJlMmVmNmYgew0KICAgICAg b3BhY2l0eTogMTsNCiAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOw0K ICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOw0KICAgIH0NCg0KICAgIC5oYXNCYWNr Z3JvdW5kX2EyZTJlZjZmLnNlbGVjdGVkX2EyZTJlZjZmIC5vbmx5T25Ib3Zlcl9hMmUyZWY2 ZiAuYWN0aXZpdHlfYTJlMmVmNmYsDQogICAgLmhhc0JhY2tncm91bmRfYTJlMmVmNmY6aG92 ZXIgLm9ubHlPbkhvdmVyX2EyZTJlZjZmIC5hY3Rpdml0eV9hMmUyZWY2ZiB7DQogICAgICBv cGFjaXR5OiAxOw0KICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7DQog ICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7DQogICAgfQ0KDQogICAgLmhhc0JhY2tn cm91bmRfYTJlMmVmNmYuc2hvd0JhY2tncm91bmRfYTJlMmVmNmYuc2VsZWN0ZWRfYTJlMmVm NmYgLm9ubHlPbkhvdmVyX2EyZTJlZjZmLm5hbWVwbGF0ZV9hMmUyZWY2ZjpiZWZvcmUsDQog ICAgLmhhc0JhY2tncm91bmRfYTJlMmVmNmYuc2hvd0JhY2tncm91bmRfYTJlMmVmNmY6aG92 ZXIgLm9ubHlPbkhvdmVyX2EyZTJlZjZmLm5hbWVwbGF0ZV9hMmUyZWY2ZjpiZWZvcmUgew0K ICAgICAgb3BhY2l0eTogMTsNCiAgICB9DQoNCiAgICAuaGFzQmFja2dyb3VuZF9hMmUyZWY2 Zi5zaG93QmFja2dyb3VuZF9hMmUyZWY2ZiAubmFtZXBsYXRlX2EyZTJlZjZmOm5vdCgub25s eU9uSG92ZXJfYTJlMmVmNmYpOmJlZm9yZSB7DQogICAgICBvcGFjaXR5OiAxOw0KICAgIH0N Cg0KICAgIC5oYXNCYWNrZ3JvdW5kX2EyZTJlZjZmLnNob3dCYWNrZ3JvdW5kX2EyZTJlZjZm IC5uYW1lX2EyZTJlZjZmIHsNCiAgICAgIGNvbG9yOiAjZmZmOw0KICAgICAgdGV4dC1zaGFk b3c6IDAuNXB4IDAuNXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuNTUpOw0KICAgIH0NCg0KICAg IC5oYXNCYWNrZ3JvdW5kX2EyZTJlZjZmLnNob3dCYWNrZ3JvdW5kX2EyZTJlZjZmIC5hY3Rp dml0eV9hMmUyZWY2ZiB7DQogICAgICBjb2xvcjogI2ZmZjsNCiAgICAgIHRleHQtc2hhZG93 OiAwLjVweCAwLjVweCAycHggcmdiYSgwLCAwLCAwLCAwLjU1KTsNCiAgICB9DQoNCiAgICAu ZGlzYWJsZWRfYTJlMmVmNmYgew0KICAgICAgb3BhY2l0eTogMC41Ow0KICAgIH0NCg0KICAg IC5yb290XzU3OTRjYWNjIHsNCiAgICAgIGxpbmUtaGVpZ2h0OiAxOw0KICAgICAgd2lkdGg6 IDE4cHg7DQogICAgICBoZWlnaHQ6IDE4cHg7DQogICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9w Ow0KICAgICAgcG9zaXRpb246IHJlbGF0aXZlOw0KICAgICAgLXdlYmtpdC10b3VjaC1jYWxs b3V0OiBub25lOw0KICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsNCiAgICAgIC1t b3otdXNlci1zZWxlY3Q6IG5vbmU7DQogICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7DQog ICAgICB1c2VyLXNlbGVjdDogbm9uZTsNCiAgICB9DQoNCiAgICAucm9vdF81Nzk0Y2FjYzpi ZWZvcmUgew0KICAgICAgY29udGVudDogIiI7DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7 DQogICAgICBsZWZ0OiAxcHg7DQogICAgICByaWdodDogMXB4Ow0KICAgICAgYm90dG9tOiAx cHg7DQogICAgICB0b3A6IDFweDsNCiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsNCiAgICAg IG9wYWNpdHk6IDE7DQogICAgICBiYWNrZ3JvdW5kOiAjZmFmYWZhOw0KICAgIH0NCg0KICAg IC5yb290XzU3OTRjYWNjLnJvb3RJc0NoZWNrZWRfNTc5NGNhY2M6YmVmb3JlIHsNCiAgICAg IGJhY2tncm91bmQ6ICMwMDc4ZDQ7DQogICAgICBvcGFjaXR5OiAxOw0KICAgIH0NCg0KICAg IEBtZWRpYSBzY3JlZW4gYW5kICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSwNCiAgICBz Y3JlZW4gYW5kIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpIHsNCiAgICAgIC5yb290XzU3OTRj YWNjLnJvb3RJc0NoZWNrZWRfNTc5NGNhY2M6YmVmb3JlIHsNCiAgICAgICAgYmFja2dyb3Vu ZDogV2luZG93Ow0KICAgICAgfQ0KICAgIH0NCg0KICAgIC5yb290XzU3OTRjYWNjIC5jaGVj a181Nzk0Y2FjYyB7DQogICAgICBvcGFjaXR5OiAwOw0KICAgIH0NCg0KICAgIC5jaGVja0hv c3RfNTc5NGNhY2M6Zm9jdXMgLnJvb3RfNTc5NGNhY2MgLmNoZWNrXzU3OTRjYWNjLA0KICAg IC5jaGVja0hvc3RfNTc5NGNhY2M6aG92ZXIgLnJvb3RfNTc5NGNhY2MgLmNoZWNrXzU3OTRj YWNjLA0KICAgIC5yb290XzU3OTRjYWNjLnJvb3RJc0NoZWNrZWRfNTc5NGNhY2MgLmNoZWNr XzU3OTRjYWNjLA0KICAgIC5yb290XzU3OTRjYWNjOmZvY3VzIC5jaGVja181Nzk0Y2FjYywN CiAgICAucm9vdF81Nzk0Y2FjYzpob3ZlciAuY2hlY2tfNTc5NGNhY2Mgew0KICAgICAgb3Bh Y2l0eTogMTsNCiAgICB9DQoNCiAgICAuY2hlY2tfNTc5NGNhY2MsDQogICAgLmNpcmNsZV81 Nzk0Y2FjYyB7DQogICAgICBmb250LXNpemU6IDE4cHg7DQogICAgICBwb3NpdGlvbjogYWJz b2x1dGU7DQogICAgICBsZWZ0OiAwOw0KICAgICAgdG9wOiAwOw0KICAgICAgd2lkdGg6IDE4 cHg7DQogICAgICBoZWlnaHQ6IDE4cHg7DQogICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7DQog ICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOw0KICAgIH0NCg0KICAgIC5jaXJjbGVfNTc5 NGNhY2Mgew0KICAgICAgY29sb3I6ICM2MTYxNjE7DQogICAgfQ0KDQogICAgQG1lZGlhIHNj cmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpLA0KICAgIHNjcmVlbiBhbmQg KGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSkgew0KICAgICAgLmNpcmNsZV81Nzk0Y2FjYyB7DQog ICAgICAgIGNvbG9yOiBXaW5kb3dUZXh0Ow0KICAgICAgfQ0KICAgIH0NCg0KICAgIC5yb290 SXNDaGVja2VkXzU3OTRjYWNjIC5jaXJjbGVfNTc5NGNhY2Mgew0KICAgICAgY29sb3I6ICNm ZmZmZmY7DQogICAgfQ0KDQogICAgLmNoZWNrXzU3OTRjYWNjIHsNCiAgICAgIGNvbG9yOiAj NjE2MTYxOw0KICAgICAgZm9udC1zaXplOiAxNnB4Ow0KICAgICAgbGVmdDogMC41cHg7DQog ICAgfQ0KDQogICAgQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3Rp dmUpLA0KICAgIHNjcmVlbiBhbmQgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSkgew0KICAgICAg LmNoZWNrXzU3OTRjYWNjIHsNCiAgICAgICAgLW1zLWhpZ2gtY29udHJhc3QtYWRqdXN0OiBu b25lOw0KICAgICAgfQ0KICAgIH0NCg0KICAgIC5yb290SXNDaGVja2VkXzU3OTRjYWNjIC5j aGVja181Nzk0Y2FjYyB7DQogICAgICBjb2xvcjogI2ZmZmZmZjsNCiAgICAgIGZvbnQtd2Vp Z2h0OiA5MDA7DQogICAgfQ0KDQogICAgQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNv bnRyYXN0OiBhY3RpdmUpLA0KICAgIHNjcmVlbiBhbmQgKGZvcmNlZC1jb2xvcnM6IGFjdGl2 ZSkgew0KICAgICAgLnJvb3RJc0NoZWNrZWRfNTc5NGNhY2MgLmNoZWNrXzU3OTRjYWNjIHsN CiAgICAgICAgYm9yZGVyOiBub25lOw0KICAgICAgICBjb2xvcjogV2luZG93VGV4dDsNCiAg ICAgIH0NCiAgICB9DQoNCiAgICAucm9vdF85Njg5ZGIyMSB7DQogICAgICBkaXNwbGF5OiAt d2Via2l0LWlubGluZS1ib3g7DQogICAgICBkaXNwbGF5OiAtbXMtaW5saW5lLWZsZXhib3g7 DQogICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsNCiAgICAgIHBvc2l0aW9uOiByZWxhdGl2 ZTsNCiAgICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207DQogICAgICAtd2Via2l0LWJveC1v cmllbnQ6IGhvcml6b250YWw7DQogICAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1h bDsNCiAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogcm93Ow0KICAgICAgZmxleC1kaXJlY3Rp b246IHJvdzsNCiAgICAgIC13ZWJraXQtYm94LWFsaWduOiBlbmQ7DQogICAgICAtbXMtZmxl eC1hbGlnbjogZW5kOw0KICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kOw0KICAgIH0NCg0K ICAgIC5yb290Xzk2ODlkYjIxLA0KICAgIC5yb290Xzk2ODlkYjIxLmlzU21hbGxfOTY4OWRi MjEgew0KICAgICAgd2lkdGg6IDcycHg7DQogICAgICBoZWlnaHQ6IDUycHg7DQogICAgfQ0K DQogICAgLnJvb3RfOTY4OWRiMjEuaXNMaW5rZWRfOTY4OWRiMjEgLmZyb250Xzk2ODlkYjIx LA0KICAgIC5yb290Xzk2ODlkYjIxLmlzU21hbGxfOTY4OWRiMjEuaXNMaW5rZWRfOTY4OWRi MjEgLmZyb250Xzk2ODlkYjIxIHsNCiAgICAgIHRvcDogNnB4Ow0KICAgICAgbGVmdDogLTVw eDsNCiAgICB9DQoNCiAgICAucm9vdF85Njg5ZGIyMS5pc0xhcmdlXzk2ODlkYjIxIHsNCiAg ICAgIHdpZHRoOiAxMTJweDsNCiAgICAgIGhlaWdodDogODBweDsNCiAgICB9DQoNCiAgICAu cm9vdF85Njg5ZGIyMS5pc0xhcmdlXzk2ODlkYjIxLmlzTGlua2VkXzk2ODlkYjIxIC5mcm9u dF85Njg5ZGIyMSB7DQogICAgICB0b3A6IDEwcHg7DQogICAgICBsZWZ0OiAtNHB4Ow0KICAg IH0NCg0KICAgIC5mcm9udF85Njg5ZGIyMSB7DQogICAgICBkaXNwbGF5OiBibG9jazsNCiAg ICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgIGxlZnQ6IC0zcHg7DQogICAgICByaWdo dDogLTNweDsNCiAgICAgIGJvdHRvbTogLTRweDsNCiAgICB9DQoNCiAgICAuYmFja185Njg5 ZGIyMSB7DQogICAgICBkaXNwbGF5OiBibG9jazsNCiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0 ZTsNCiAgICAgIGxlZnQ6IC0zcHg7DQogICAgICByaWdodDogLTNweDsNCiAgICAgIGJvdHRv bTogLTRweDsNCiAgICB9DQoNCiAgICAuY29udGVudF85Njg5ZGIyMSB7DQogICAgICBwb3Np dGlvbjogYWJzb2x1dGU7DQogICAgICBsZWZ0OiA0cHg7DQogICAgICByaWdodDogNHB4Ow0K ICAgICAgYm90dG9tOiA0cHg7DQogICAgICB0b3A6IDRweDsNCiAgICAgIGRpc3BsYXk6IC13 ZWJraXQtYm94Ow0KICAgICAgZGlzcGxheTogLW1zLWZsZXhib3g7DQogICAgICBkaXNwbGF5 OiBmbGV4Ow0KICAgICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDsNCiAgICAgIC13 ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsOw0KICAgICAgLW1zLWZsZXgtZGlyZWN0aW9u OiBjb2x1bW47DQogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOw0KICAgICAgLXdlYmtp dC1ib3gtYWxpZ246IGNlbnRlcjsNCiAgICAgIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7DQog ICAgICBhbGlnbi1pdGVtczogY2VudGVyOw0KICAgICAgLXdlYmtpdC1ib3gtcGFjazogY2Vu dGVyOw0KICAgICAgLW1zLWZsZXgtcGFjazogY2VudGVyOw0KICAgICAganVzdGlmeS1jb250 ZW50OiBjZW50ZXI7DQogICAgICBvcGFjaXR5OiAxOw0KICAgICAgLXdlYmtpdC10cmFuc2l0 aW9uOiBvcGFjaXR5IDAuMnMgbGluZWFyOw0KICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAw LjJzIGxpbmVhcjsNCiAgICB9DQoNCiAgICAuaGlkZUNvbnRlbnRfOTY4OWRiMjEgLmNvbnRl bnRfOTY4OWRiMjEgew0KICAgICAgb3BhY2l0eTogMDsNCiAgICB9DQoNCiAgICAuaXNGbHVl bnRfOTY4OWRiMjEgLmNvbnRlbnRfOTY4OWRiMjEgew0KICAgICAgdG9wOiAxMnB4Ow0KICAg IH0NCg0KICAgIC5mcmFtZV85Njg5ZGIyMSB7DQogICAgICBkaXNwbGF5OiAtd2Via2l0LWlu bGluZS1ib3g7DQogICAgICBkaXNwbGF5OiAtbXMtaW5saW5lLWZsZXhib3g7DQogICAgICBk aXNwbGF5OiBpbmxpbmUtZmxleDsNCiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgICAg IC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbDsNCiAgICAgIC13ZWJraXQtYm94LWRp cmVjdGlvbjogbm9ybWFsOw0KICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3c7DQogICAg ICBmbGV4LWRpcmVjdGlvbjogcm93Ow0KICAgICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRl cjsNCiAgICAgIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7DQogICAgICBhbGlnbi1pdGVtczog Y2VudGVyOw0KICAgICAgLXdlYmtpdC1ib3gtcGFjazogY2VudGVyOw0KICAgICAgLW1zLWZs ZXgtcGFjazogY2VudGVyOw0KICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7DQogICAg ICBvdmVyZmxvdzogaGlkZGVuOw0KICAgICAgbWF4LXdpZHRoOiAxMDAlOw0KICAgICAgbWF4 LWhlaWdodDogMTAwJTsNCiAgICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAxcHggM3B4IDJw eCByZ2JhKDEsIDEsIDAsIDAuMDYpOw0KICAgICAgYm94LXNoYWRvdzogMCAxcHggM3B4IDJw eCByZ2JhKDEsIDEsIDAsIDAuMDYpOw0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZm ZjsNCiAgICAgIG1pbi13aWR0aDogMzJweDsNCiAgICAgIG1pbi1oZWlnaHQ6IDMycHg7DQog ICAgfQ0KDQogICAgLm1ldGFkYXRhXzk2ODlkYjIxIHsNCiAgICAgIGRpc3BsYXk6IGJsb2Nr Ow0KICAgICAgLXdlYmtpdC1ib3gtZmxleDogMTsNCiAgICAgIC1tcy1mbGV4OiAxIDE7DQog ICAgICBmbGV4OiAxIDE7DQogICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOw0KICAgICAgdGV4 dC1vdmVyZmxvdzogZWxsaXBzaXM7DQogICAgICBvdmVyZmxvdzogaGlkZGVuOw0KICAgICAg Zm9udC13ZWlnaHQ6IDQwMDsNCiAgICAgIGNvbG9yOiAjZmZmZmZmOw0KICAgICAgcG9zaXRp b246IHJlbGF0aXZlOw0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJsdHIiXSAubWV0YWRhdGFf OTY4OWRiMjEgew0KICAgICAgbWFyZ2luLXJpZ2h0OiA4cHg7DQogICAgfQ0KDQogICAgaHRt bFtkaXI9InJ0bCJdIC5tZXRhZGF0YV85Njg5ZGIyMSB7DQogICAgICBtYXJnaW4tbGVmdDog OHB4Ow0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJsdHIiXSAubWV0YWRhdGFfOTY4OWRiMjEg ew0KICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7DQogICAgfQ0KDQogICAgaHRtbFtkaXI9InJ0 bCJdIC5tZXRhZGF0YV85Njg5ZGIyMSB7DQogICAgICB0ZXh0LWFsaWduOiBsZWZ0Ow0KICAg IH0NCg0KICAgIC5pc0ZsdWVudF85Njg5ZGIyMSAubWV0YWRhdGFfOTY4OWRiMjEgew0KICAg ICAgY29sb3I6ICNiZjU3MTI7DQogICAgfQ0KDQogICAgaHRtbFtkaXI9Imx0ciJdIC5pc0Zs dWVudF85Njg5ZGIyMSAubWV0YWRhdGFfOTY4OWRiMjEgew0KICAgICAgdGV4dC1hbGlnbjog bGVmdDsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0icnRsIl0gLmlzRmx1ZW50Xzk2ODlkYjIx IC5tZXRhZGF0YV85Njg5ZGIyMSB7DQogICAgICB0ZXh0LWFsaWduOiByaWdodDsNCiAgICB9 DQoNCiAgICAubWV0YWRhdGFfOTY4OWRiMjEsDQogICAgLm1ldGFkYXRhXzk2ODlkYjIxLmlz U21hbGxfOTY4OWRiMjEgew0KICAgICAgZm9udC1zaXplOiAxMnB4Ow0KICAgICAgbWFyZ2lu LWJvdHRvbTogMXB4Ow0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJsdHIiXSAubWV0YWRhdGFf OTY4OWRiMjEsDQogICAgaHRtbFtkaXI9Imx0ciJdIC5tZXRhZGF0YV85Njg5ZGIyMS5pc1Nt YWxsXzk2ODlkYjIxIHsNCiAgICAgIG1hcmdpbi1sZWZ0OiA0cHg7DQogICAgfQ0KDQogICAg aHRtbFtkaXI9InJ0bCJdIC5tZXRhZGF0YV85Njg5ZGIyMSwNCiAgICBodG1sW2Rpcj0icnRs Il0gLm1ldGFkYXRhXzk2ODlkYjIxLmlzU21hbGxfOTY4OWRiMjEgew0KICAgICAgbWFyZ2lu LXJpZ2h0OiA0cHg7DQogICAgfQ0KDQogICAgLmlzTGFyZ2VfOTY4OWRiMjEgLm1ldGFkYXRh Xzk2ODlkYjIxIHsNCiAgICAgIGZvbnQtc2l6ZTogMTRweDsNCiAgICAgIG1hcmdpbi1ib3R0 b206IDRweDsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0ibHRyIl0gLmlzTGFyZ2VfOTY4OWRi MjEgLm1ldGFkYXRhXzk2ODlkYjIxIHsNCiAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7DQogICAg fQ0KDQogICAgaHRtbFtkaXI9InJ0bCJdIC5pc0xhcmdlXzk2ODlkYjIxIC5tZXRhZGF0YV85 Njg5ZGIyMSB7DQogICAgICBtYXJnaW4tcmlnaHQ6IDhweDsNCiAgICB9DQoNCiAgICAuc2ln bmFsXzk2ODlkYjIxIHsNCiAgICAgIGRpc3BsYXk6IGJsb2NrOw0KICAgICAgcG9zaXRpb246 IHJlbGF0aXZlOw0KICAgICAgbWFyZ2luLWJvdHRvbTogOHB4Ow0KICAgIH0NCg0KICAgIGh0 bWxbZGlyPSJsdHIiXSAuc2lnbmFsXzk2ODlkYjIxIHsNCiAgICAgIG1hcmdpbi1sZWZ0OiA4 cHg7DQogICAgfQ0KDQogICAgaHRtbFtkaXI9InJ0bCJdIC5zaWduYWxfOTY4OWRiMjEgew0K ICAgICAgbWFyZ2luLXJpZ2h0OiA4cHg7DQogICAgfQ0KDQogICAgaHRtbFtkaXI9Imx0ciJd IC5zaWduYWxfOTY4OWRiMjEgew0KICAgICAgbWFyZ2luLXJpZ2h0OiA0cHg7DQogICAgfQ0K DQogICAgaHRtbFtkaXI9InJ0bCJdIC5zaWduYWxfOTY4OWRiMjEgew0KICAgICAgbWFyZ2lu LWxlZnQ6IDRweDsNCiAgICB9DQoNCiAgICAuaXNGbHVlbnRfOTY4OWRiMjEgLnNpZ25hbF85 Njg5ZGIyMSA6Zmlyc3QtY2hpbGQgew0KICAgICAgY29sb3I6ICNiZjU3MTI7DQogICAgfQ0K DQogICAgLnNpZ25hbF85Njg5ZGIyMSwNCiAgICAuc2lnbmFsXzk2ODlkYjIxLmlzU21hbGxf OTY4OWRiMjEgew0KICAgICAgZm9udC1zaXplOiAxNnB4Ow0KICAgICAgbWFyZ2luLWJvdHRv bTogMXB4Ow0KICAgIH0NCg0KICAgIC5pc0xhcmdlXzk2ODlkYjIxIC5zaWduYWxfOTY4OWRi MjEgew0KICAgICAgZm9udC1zaXplOiAxNnB4Ow0KICAgICAgbWFyZ2luLWJvdHRvbTogNHB4 Ow0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJsdHIiXSAuaXNMYXJnZV85Njg5ZGIyMSAuc2ln bmFsXzk2ODlkYjIxIHsNCiAgICAgIG1hcmdpbi1yaWdodDogN3B4Ow0KICAgIH0NCg0KICAg IGh0bWxbZGlyPSJydGwiXSAuaXNMYXJnZV85Njg5ZGIyMSAuc2lnbmFsXzk2ODlkYjIxIHsN CiAgICAgIG1hcmdpbi1sZWZ0OiA3cHg7DQogICAgfQ0KDQogICAgLnRpbGVfMWI3ZjYwNWQu aGlkZUZpbGVUeXBlSWNvbl8xYjdmNjA1ZCAuZmlsZVR5cGVJY29uXzFiN2Y2MDVkLA0KICAg IC50aWxlXzFiN2Y2MDVkLmhpZGVGaWxlVHlwZUljb25fMWI3ZjYwNWQgLnRpbGVBcHBJY29u XzFiN2Y2MDVkIHsNCiAgICAgIGRpc3BsYXk6IG5vbmU7DQogICAgfQ0KDQogICAgLnRpbGVf MWI3ZjYwNWQuaGlkZVRodW1ibmFpbF8xYjdmNjA1ZCAudGh1bWJuYWlsXzFiN2Y2MDVkIHsN CiAgICAgIGRpc3BsYXk6IG5vbmU7DQogICAgfQ0KDQogICAgLmRlZmF1bHRUaWxlXzFiN2Y2 MDVkIC5tcy1UaWxlLWZvcmVncm91bmQ+KiB7DQogICAgICBwb2ludGVyLWV2ZW50czogbm9u ZTsNCiAgICB9DQoNCiAgICAuZGVmYXVsdFRpbGVfMWI3ZjYwNWQgLm1zLVRpbGUtYmFja2dy b3VuZD4qIHsNCiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOw0KICAgIH0NCg0KICAgIC5m b2xkZXJDb3Zlcl8xYjdmNjA1ZCB7DQogICAgICBtYXJnaW46IDNweDsNCiAgICB9DQoNCiAg ICAudGh1bWJuYWlsXzFiN2Y2MDVkIHsNCiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsN CiAgICB9DQoNCiAgICAudGh1bWJuYWlsTm90UmVzb2x2ZWRfMWI3ZjYwNWQgew0KICAgICAg ZGlzcGxheTogbm9uZTsNCiAgICB9DQoNCiAgICAuZmlsZVR5cGVJY29uXzFiN2Y2MDVkIHsN CiAgICAgIG1hcmdpbjogMTZweDsNCiAgICB9DQoNCiAgICAubmFtZV8xYjdmNjA1ZCB7DQog ICAgICBkaXNwbGF5OiBpbmxpbmU7DQogICAgICBtYXgtd2lkdGg6IDEwMCU7DQogICAgfQ0K DQogICAgLmJsYW5rRm9sZGVyQ292ZXJfMWI3ZjYwNWQgew0KICAgICAgYmFja2dyb3VuZDog I2ZmZjsNCiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsNCiAgICB9DQoNCiAgICAudGls ZUFwcEljb25fMWI3ZjYwNWQgew0KICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICAg Ym90dG9tOiAwOw0KICAgICAgbWFyZ2luOiA0cHg7DQogICAgfQ0KDQogICAgW2Rpcj0ibHRy Il0gLnRpbGVBcHBJY29uXzFiN2Y2MDVkIHsNCiAgICAgIGxlZnQ6IDA7DQogICAgfQ0KDQog ICAgW2Rpcj0icnRsIl0gLnRpbGVBcHBJY29uXzFiN2Y2MDVkIHsNCiAgICAgIHJpZ2h0OiAw Ow0KICAgIH0NCg0KICAgIC5uZXdJdGVtX2NjMDUwZjdjIHsNCiAgICAgIGNvbG9yOiAjMTA3 YzEwOw0KICAgICAgbWFyZ2luLXJpZ2h0OiAzcHg7DQogICAgfQ0KDQogICAgLmxpc3RDZWxs XzgzYzEzNDk2IHsNCiAgICAgIGRpc3BsYXk6IGJsb2NrOw0KICAgICAgbWFyZ2luOiAwOw0K ICAgICAgYm9yZGVyLWNvbG9yOiAjZmZmZmZmOw0KICAgIH0NCg0KICAgIC5saXN0UGFnZV84 M2MxMzQ5NiB7DQogICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsNCiAgICAgIGRpc3BsYXk6 IC1tcy1mbGV4Ym94Ow0KICAgICAgZGlzcGxheTogZmxleDsNCiAgICAgIC13ZWJraXQtYm94 LW9yaWVudDogdmVydGljYWw7DQogICAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1h bDsNCiAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uOw0KICAgICAgZmxleC1kaXJl Y3Rpb246IGNvbHVtbjsNCiAgICB9DQoNCiAgICAuY2VsbF84M2MxMzQ5NiB7DQogICAgICBk aXNwbGF5OiBibG9jazsNCiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgICB9DQoNCiAg ICAuY2VsbENvbnRlbnRfODNjMTM0OTYgew0KICAgICAgcG9zaXRpb246IGFic29sdXRlOw0K ICAgICAgdG9wOiAwOw0KICAgICAgbGVmdDogMDsNCiAgICAgIGJvdHRvbTogMDsNCiAgICAg IHJpZ2h0OiAwOw0KICAgIH0NCg0KICAgIC5jZWxsRmlyc3RJblJvd184M2MxMzQ5NiB7DQog ICAgICBkaXNwbGF5OiBibG9jazsNCiAgICB9DQoNCiAgICAuc2l6ZXJfODNjMTM0OTYgew0K ICAgICAgZGlzcGxheTogYmxvY2s7DQogICAgICB2aXNpYmlsaXR5OiBoaWRkZW47DQogICAg fQ0KDQogICAgLmhlYWRlcl84M2MxMzQ5NiB7DQogICAgICBkaXNwbGF5OiBibG9jazsNCiAg ICB9DQoNCiAgICAuZ3JpZF84M2MxMzQ5NiB7DQogICAgICBkaXNwbGF5OiAtd2Via2l0LWJv eDsNCiAgICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94Ow0KICAgICAgZGlzcGxheTogZmxleDsN CiAgICAgIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbDsNCiAgICAgIC13ZWJraXQt Ym94LWRpcmVjdGlvbjogbm9ybWFsOw0KICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3c7 DQogICAgICBmbGV4LWRpcmVjdGlvbjogcm93Ow0KICAgICAgLW1zLWZsZXgtZmxvdzogcm93 IHdyYXA7DQogICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwOw0KICAgICAgLXdlYmtpdC1ib3gt YWxpZ246IHN0YXJ0Ow0KICAgICAgLW1zLWZsZXgtYWxpZ246IHN0YXJ0Ow0KICAgICAgYWxp Z24taXRlbXM6IGZsZXgtc3RhcnQ7DQogICAgICAtd2Via2l0LWJveC1wYWNrOiBzdGFydDsN CiAgICAgIC1tcy1mbGV4LXBhY2s6IHN0YXJ0Ow0KICAgICAganVzdGlmeS1jb250ZW50OiBm bGV4LXN0YXJ0Ow0KICAgICAgLW1zLWZsZXgtbGluZS1wYWNrOiBzdGFydDsNCiAgICAgIGFs aWduLWNvbnRlbnQ6IGZsZXgtc3RhcnQ7DQogICAgfQ0KDQogICAgLnJvd184M2MxMzQ5NiB7 DQogICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsNCiAgICAgIGRpc3BsYXk6IC1tcy1mbGV4 Ym94Ow0KICAgICAgZGlzcGxheTogZmxleDsNCiAgICAgIHdpZHRoOiAxMDAlOw0KICAgIH0N Cg0KICAgIC5yb3dfODNjMTM0OTYuaGVhZGVyUm93XzgzYzEzNDk2IHsNCiAgICAgIGRpc3Bs YXk6IGJsb2NrOw0KICAgIH0NCg0KICAgIC5zaGltbWVyZWRMaXN0XzgzYzEzNDk2OjphZnRl ciB7DQogICAgICBjb250ZW50OiAiIjsNCiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAg ICAgIHRvcDogMDsNCiAgICAgIHJpZ2h0OiAwOw0KICAgICAgYm90dG9tOiAwOw0KICAgICAg bGVmdDogMDsNCiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtZ3JhZGllbnQobGlu ZWFyLA0KICAgICAgICAgIGxlZnQgdG9wLA0KICAgICAgICAgIGxlZnQgYm90dG9tLA0KICAg ICAgICAgIGNvbG9yLXN0b3AoMzAlLCB0cmFuc3BhcmVudCksDQogICAgICAgICAgY29sb3It c3RvcCg2NSUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KSksDQogICAgICAgICAgdG8oI2Zm ZmZmZikpOw0KICAgICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJv dHRvbSwNCiAgICAgICAgICB0cmFuc3BhcmVudCAzMCUsDQogICAgICAgICAgcmdiYSgyNTUs IDI1NSwgMjU1LCAwLjQpIDY1JSwNCiAgICAgICAgICAjZmZmZmZmIDEwMCUpOw0KICAgIH0N Cg0KICAgIC5ub25lXzgzYzEzNDk2IHsNCiAgICAgIGRpc3BsYXk6IGJsb2NrOw0KICAgIH0N Cg0KICAgIC5vZC1TdWl0ZU5hdiB7DQogICAgICBiYWNrZ3JvdW5kOiAjMDA3OGQ0Ow0KICAg ICAgaGVpZ2h0OiA0OHB4Ow0KICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICAgd2lk dGg6IDEwMCU7DQogICAgfQ0KDQogICAgLm9kLVN1aXRlTmF2Lm1zLVN1aXRlTmF2LmlzT0Qz VUlFbmFibGVkIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICAg IH0NCg0KICAgIC5vZC1TdWl0ZU5hdi1EZWZhdWx0SGVpZ2h0IHsNCiAgICAgIGhlaWdodDog aW5pdGlhbDsNCiAgICB9DQoNCiAgICAub2QtdXNlclNlbGVjdC0tZW5hYmxlZCBkaXYjbzM2 NWNzLWZsZXhwYW5lLW92ZXJsYXkgew0KICAgICAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiB0 ZXh0Ow0KICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogdGV4dDsNCiAgICAgIC1tcy11c2Vy LXNlbGVjdDogdGV4dDsNCiAgICAgIHVzZXItc2VsZWN0OiB0ZXh0Ow0KICAgIH0NCg0KICAg IC5wbHVnaW5Ob1NpemUgew0KICAgICAgd2lkdGg6IDA7DQogICAgICBoZWlnaHQ6IDA7DQog ICAgICBwYWRkaW5nOiAwOw0KICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgIH0NCg0K ICAgIC5vZC1TdWl0ZU5hdi1yZWFjdFNoZWxsLWRpYW1vbmQgew0KICAgICAgZGlzcGxheTog bm9uZTsNCiAgICB9DQoNCiAgICAub2QtU3VpdGVOYXZGYWxsYmFjayB7DQogICAgICBiYWNr Z3JvdW5kOiAjMDAwMDAwOw0KICAgICAgY29sb3I6ICNmZmZmZmY7DQogICAgICBib3gtc2l6 aW5nOiBib3JkZXItYm94Ow0KICAgICAgaGVpZ2h0OiA0OHB4Ow0KICAgICAgcG9zaXRpb246 IGFic29sdXRlOw0KICAgICAgdG9wOiAwOw0KICAgICAgbGVmdDogMDsNCiAgICAgIHJpZ2h0 OiAwOw0KICAgICAgei1pbmRleDogMjAwMTsNCiAgICB9DQoNCiAgICAub2QtU3VpdGVOYXZG YWxsYmFjayBoZWFkZXIgew0KICAgICAgZm9udC1zaXplOiAyMnB4Ow0KICAgICAgZGlzcGxh eTogaW5saW5lLWJsb2NrOw0KICAgICAgbGluZS1oZWlnaHQ6IDQ4cHg7DQogICAgICBwYWRk aW5nOiAwIDAgMCAxOHB4Ow0KICAgICAgaGVpZ2h0OiA0OHB4Ow0KICAgIH0NCg0KICAgIGh0 bWxbZGlyPSJydGwiXSAub2QtU3VpdGVOYXZGYWxsYmFjayBoZWFkZXIgew0KICAgICAgcGFk ZGluZzogMCAxOHB4IDAgMDsNCiAgICB9DQoNCiAgICAub2QtU3VpdGVOYXZGYWxsYmFjay1k aXZpZGVyIHsNCiAgICAgIG1hcmdpbjogNXB4IDE1cHggMCAwOw0KICAgIH0NCg0KICAgIGh0 bWxbZGlyPSJsdHIiXSAub2QtU3VpdGVOYXZGYWxsYmFjay1kaXZpZGVyIHsNCiAgICAgIGJv cmRlci1sZWZ0LXN0eWxlOiBzb2xpZDsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0icnRsIl0g Lm9kLVN1aXRlTmF2RmFsbGJhY2stZGl2aWRlciB7DQogICAgICBib3JkZXItcmlnaHQtc3R5 bGU6IHNvbGlkOw0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJsdHIiXSAub2QtU3VpdGVOYXZG YWxsYmFjay1kaXZpZGVyIHsNCiAgICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7DQogICAg fQ0KDQogICAgaHRtbFtkaXI9InJ0bCJdIC5vZC1TdWl0ZU5hdkZhbGxiYWNrLWRpdmlkZXIg ew0KICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7DQogICAgfQ0KDQogICAgaHRtbFtk aXI9Imx0ciJdIC5vZC1TdWl0ZU5hdkZhbGxiYWNrLWRpdmlkZXIgew0KICAgICAgYm9yZGVy LWxlZnQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zNSk7DQogICAgfQ0KDQogICAg aHRtbFtkaXI9InJ0bCJdIC5vZC1TdWl0ZU5hdkZhbGxiYWNrLWRpdmlkZXIgew0KICAgICAg Ym9yZGVyLXJpZ2h0LWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMzUpOw0KICAgIH0N Cg0KICAgIGh0bWxbZGlyPSJydGwiXSAub2QtU3VpdGVOYXZGYWxsYmFjay1kaXZpZGVyIHsN CiAgICAgIG1hcmdpbjogNXB4IDAgMCAxNXB4Ow0KICAgIH0NCg0KICAgIFtkaXI9Imx0ciJd IC5vZC1TdWl0ZU5hdkZhbGxiYWNrLW8zNjVUaXRsZSB7DQogICAgICBwYWRkaW5nLXJpZ2h0 OiAxNXB4Ow0KICAgIH0NCg0KICAgIFtkaXI9InJ0bCJdIC5vZC1TdWl0ZU5hdkZhbGxiYWNr LW8zNjVUaXRsZSB7DQogICAgICBwYWRkaW5nLWxlZnQ6IDE1cHg7DQogICAgfQ0KDQogICAg Lm9kLVN1aXRlTmF2RmFsbGJhY2stc2VsZWN0ZWRBcHAgew0KICAgICAgY29sb3I6ICNmZmZm ZmY7DQogICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7DQogICAgICBoZWlnaHQ6IDQ4cHg7 DQogICAgfQ0KDQogICAgLm9kLVN1aXRlTmF2RmFsbGJhY2stc2VsZWN0ZWRBcHA6YWN0aXZl LA0KICAgIC5vZC1TdWl0ZU5hdkZhbGxiYWNrLXNlbGVjdGVkQXBwOmhvdmVyIHsNCiAgICAg IGNvbG9yOiAjZmZmZmZmOw0KICAgIH0NCg0KICAgIC5vZC1TdWl0ZU5hdkZhbGxiYWNrLWFw cEJ1dHRvbiB7DQogICAgICAtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7DQogICAgICAt d2Via2l0LXVzZXItc2VsZWN0OiBub25lOw0KICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25l Ow0KICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7DQogICAgICBiYWNrZ3JvdW5kOiAjMDA3OGQ0 Ow0KICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOw0KICAgICAgY29sb3I6ICNmZmZmZmY7 DQogICAgICBoZWlnaHQ6IDQ4cHg7DQogICAgICB3aWR0aDogNDhweDsNCiAgICAgIGN1cnNv cjogcG9pbnRlcjsNCiAgICAgIGZvbnQtc2l6ZTogMThweDsNCiAgICAgIHRleHQtYWxpZ246 IGNlbnRlcjsNCiAgICAgIHBhZGRpbmctdG9wOiAxNnB4Ow0KICAgICAgdHJhbnNpdGlvbjog YmFja2dyb3VuZC1jb2xvciA0NjdtcyBjdWJpYy1iZXppZXIoMC4xLCAwLjksIDAuMiwgMSkg MzRtczsNCiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7DQogICAgfQ0KDQogICAgaHRt bFtkaXI9Imx0ciJdIC5vZC1TdWl0ZU5hdkZhbGxiYWNrLWFwcEJ1dHRvbiB7DQogICAgICBm bG9hdDogbGVmdDsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0icnRsIl0gLm9kLVN1aXRlTmF2 RmFsbGJhY2stYXBwQnV0dG9uIHsNCiAgICAgIGZsb2F0OiByaWdodDsNCiAgICB9DQoNCiAg ICBodG1sW2Rpcj0ibHRyIl0gLm9kLVN1aXRlTmF2RmFsbGJhY2stYXBwQnV0dG9uIHsNCiAg ICAgIGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7DQogICAgfQ0KDQogICAgaHRtbFtkaXI9 InJ0bCJdIC5vZC1TdWl0ZU5hdkZhbGxiYWNrLWFwcEJ1dHRvbiB7DQogICAgICBib3JkZXIt bGVmdC1zdHlsZTogc29saWQ7DQogICAgfQ0KDQogICAgaHRtbFtkaXI9Imx0ciJdIC5vZC1T dWl0ZU5hdkZhbGxiYWNrLWFwcEJ1dHRvbiB7DQogICAgICBib3JkZXItcmlnaHQtY29sb3I6 IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0icnRs Il0gLm9kLVN1aXRlTmF2RmFsbGJhY2stYXBwQnV0dG9uIHsNCiAgICAgIGJvcmRlci1sZWZ0 LWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7DQogICAgfQ0KDQogICAgaHRtbFtk aXI9Imx0ciJdIC5vZC1TdWl0ZU5hdkZhbGxiYWNrLWFwcEJ1dHRvbiB7DQogICAgICBib3Jk ZXItcmlnaHQtd2lkdGg6IDFweDsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0icnRsIl0gLm9k LVN1aXRlTmF2RmFsbGJhY2stYXBwQnV0dG9uIHsNCiAgICAgIGJvcmRlci1sZWZ0LXdpZHRo OiAxcHg7DQogICAgfQ0KDQogICAgLm9kLVN1aXRlTmF2RmFsbGJhY2stYXBwQnV0dG9uOmFj dGl2ZSwNCiAgICAub2QtU3VpdGVOYXZGYWxsYmFjay1hcHBCdXR0b246aG92ZXIgew0KICAg ICAgY29sb3I6ICNmZmY7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTA0YTdkOw0KICAg IH0NCg0KICAgIC5vZC1TdWl0ZU5hdkZhbGxiYWNrLXJpZ2h0QWN0aW9ucyB7DQogICAgICBk aXNwbGF5OiBibG9jazsNCiAgICAgIGhlaWdodDogNDhweDsNCiAgICAgIHBvc2l0aW9uOiBh YnNvbHV0ZTsNCiAgICAgIHRvcDogMDsNCiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7DQog ICAgICBtYXJnaW46IDA7DQogICAgICBwYWRkaW5nOiAwOw0KICAgICAgbGlzdC1zdHlsZS10 eXBlOiBub25lOw0KICAgIH0NCg0KICAgIFtkaXI9Imx0ciJdIC5vZC1TdWl0ZU5hdkZhbGxi YWNrLXJpZ2h0QWN0aW9ucyB7DQogICAgICByaWdodDogMDsNCiAgICB9DQoNCiAgICBbZGly PSJydGwiXSAub2QtU3VpdGVOYXZGYWxsYmFjay1yaWdodEFjdGlvbnMgew0KICAgICAgbGVm dDogMDsNCiAgICB9DQoNCiAgICAub2QtU3VpdGVOYXZGYWxsYmFjay1yaWdodEFjdGlvbnMg bGkgew0KICAgICAgaGVpZ2h0OiA0OHB4Ow0KICAgICAgbGluZS1oZWlnaHQ6IDA7DQogICAg ICB3aWR0aDogNTFweDsNCiAgICAgIGN1cnNvcjogcG9pbnRlcjsNCiAgICAgIHBvc2l0aW9u OiByZWxhdGl2ZTsNCiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7DQogICAgICBtYXJn aW46IDA7DQogICAgICBwYWRkaW5nOiAwOw0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJsdHIi XSAub2QtU3VpdGVOYXZGYWxsYmFjay1yaWdodEFjdGlvbnMgbGkgew0KICAgICAgZmxvYXQ6 IGxlZnQ7DQogICAgfQ0KDQogICAgaHRtbFtkaXI9InJ0bCJdIC5vZC1TdWl0ZU5hdkZhbGxi YWNrLXJpZ2h0QWN0aW9ucyBsaSB7DQogICAgICBmbG9hdDogcmlnaHQ7DQogICAgfQ0KDQog ICAgaHRtbFtkaXI9Imx0ciJdIC5vZC1TdWl0ZU5hdkZhbGxiYWNrLXJpZ2h0QWN0aW9ucyBs aSB7DQogICAgICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7DQogICAgfQ0KDQogICAgaHRt bFtkaXI9InJ0bCJdIC5vZC1TdWl0ZU5hdkZhbGxiYWNrLXJpZ2h0QWN0aW9ucyBsaSB7DQog ICAgICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkOw0KICAgIH0NCg0KICAgIGh0bWxbZGly PSJsdHIiXSAub2QtU3VpdGVOYXZGYWxsYmFjay1yaWdodEFjdGlvbnMgbGkgew0KICAgICAg Ym9yZGVyLWxlZnQtd2lkdGg6IDFweDsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0icnRsIl0g Lm9kLVN1aXRlTmF2RmFsbGJhY2stcmlnaHRBY3Rpb25zIGxpIHsNCiAgICAgIGJvcmRlci1y aWdodC13aWR0aDogMXB4Ow0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJsdHIiXSAub2QtU3Vp dGVOYXZGYWxsYmFjay1yaWdodEFjdGlvbnMgbGkgew0KICAgICAgYm9yZGVyLWxlZnQtY29s b3I6ICM4YThhOGE7DQogICAgfQ0KDQogICAgaHRtbFtkaXI9InJ0bCJdIC5vZC1TdWl0ZU5h dkZhbGxiYWNrLXJpZ2h0QWN0aW9ucyBsaSB7DQogICAgICBib3JkZXItcmlnaHQtY29sb3I6 ICM4YThhOGE7DQogICAgfQ0KDQogICAgLm9kLVN1aXRlTmF2RmFsbGJhY2stcmlnaHRBY3Rp b25zIC5tcy1JY29uIHsNCiAgICAgIGxpbmUtaGVpZ2h0OiA0OHB4Ow0KICAgIH0NCg0KICAg IFtkaXI9Imx0ciJdIC5vZC1TdWl0ZU5hdkZhbGxiYWNrLXJpZ2h0QWN0aW9ucyAubXMtQ29u dGV4dHVhbE1lbnUgew0KICAgICAgcmlnaHQ6IDA7DQogICAgfQ0KDQogICAgW2Rpcj0icnRs Il0gLm9kLVN1aXRlTmF2RmFsbGJhY2stcmlnaHRBY3Rpb25zIC5tcy1Db250ZXh0dWFsTWVu dSB7DQogICAgICBsZWZ0OiAwOw0KICAgIH0NCg0KICAgIC5vZC1TdWl0ZU5hdkZhbGxiYWNr LXBlcnNvbmEgew0KICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOw0KICAgICAgd2lkdGg6 IDUzcHg7DQogICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOw0KICAgICAgaGVpZ2h0OiA0OHB4 Ow0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJsdHIiXSAub2QtU3VpdGVOYXZGYWxsYmFjay1w ZXJzb25hIHsNCiAgICAgIGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDsNCiAgICB9DQoNCiAg ICBodG1sW2Rpcj0icnRsIl0gLm9kLVN1aXRlTmF2RmFsbGJhY2stcGVyc29uYSB7DQogICAg ICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkOw0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJs dHIiXSAub2QtU3VpdGVOYXZGYWxsYmFjay1wZXJzb25hIHsNCiAgICAgIGJvcmRlci1sZWZ0 LXdpZHRoOiAxcHg7DQogICAgfQ0KDQogICAgaHRtbFtkaXI9InJ0bCJdIC5vZC1TdWl0ZU5h dkZhbGxiYWNrLXBlcnNvbmEgew0KICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7DQog ICAgfQ0KDQogICAgaHRtbFtkaXI9Imx0ciJdIC5vZC1TdWl0ZU5hdkZhbGxiYWNrLXBlcnNv bmEgew0KICAgICAgYm9yZGVyLWxlZnQtY29sb3I6ICM4YThhOGE7DQogICAgfQ0KDQogICAg aHRtbFtkaXI9InJ0bCJdIC5vZC1TdWl0ZU5hdkZhbGxiYWNrLXBlcnNvbmEgew0KICAgICAg Ym9yZGVyLXJpZ2h0LWNvbG9yOiAjOGE4YThhOw0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJs dHIiXSAub2QtU3VpdGVOYXZGYWxsYmFjay1wZXJzb25hIHsNCiAgICAgIHRleHQtYWxpZ246 IHJpZ2h0Ow0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJydGwiXSAub2QtU3VpdGVOYXZGYWxs YmFjay1wZXJzb25hIHsNCiAgICAgIHRleHQtYWxpZ246IGxlZnQ7DQogICAgfQ0KDQogICAg Lm9kLVN1aXRlTmF2RmFsbGJhY2stcGVyc29uYS5vbmxpbmUgew0KICAgICAgYmFja2dyb3Vu ZDogIzVkZDI1NTsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0ibHRyIl0gLm9kLVN1aXRlTmF2 RmFsbGJhY2stcGVyc29uYSAubXMtQ29udGV4dHVhbE1lbnUgew0KICAgICAgdGV4dC1hbGln bjogbGVmdDsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0icnRsIl0gLm9kLVN1aXRlTmF2RmFs bGJhY2stcGVyc29uYSAubXMtQ29udGV4dHVhbE1lbnUgew0KICAgICAgdGV4dC1hbGlnbjog cmlnaHQ7DQogICAgfQ0KDQogICAgaHRtbFtkaXI9Imx0ciJdIC5vZC1TdWl0ZU5hdkZhbGxi YWNrLXBlcnNvbmFJbWFnZSB7DQogICAgICBmbG9hdDogcmlnaHQ7DQogICAgfQ0KDQogICAg aHRtbFtkaXI9InJ0bCJdIC5vZC1TdWl0ZU5hdkZhbGxiYWNrLXBlcnNvbmFJbWFnZSB7DQog ICAgICBmbG9hdDogbGVmdDsNCiAgICB9DQoNCiAgICAub2QtU3VpdGVOYXZGYWxsYmFjay1s aW5rIHsNCiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsNCiAgICAgIGhlaWdodDogNDhw eDsNCiAgICAgIHdpZHRoOiA0OHB4Ow0KICAgICAgY29sb3I6ICNmZmZmZmY7DQogICAgICBm b250LXNpemU6IDIwcHg7DQogICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7DQogICAgfQ0KDQog ICAgLm9kLVN1aXRlTmF2RmFsbGJhY2stbGluay5zZWxlY3RlZCwNCiAgICAub2QtU3VpdGVO YXZGYWxsYmFjay1saW5rOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjZmZmOw0KICAgICAgYmFj a2dyb3VuZDogIzEwNGE3ZDsNCiAgICB9DQoNCiAgICAub2QtU3VpdGVOYXZGYWxsYmFjay1t ZUxpbmsgew0KICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOw0KICAgIH0NCg0KICAgIC5v ZC1TdWl0ZU5hdkZhbGxiYWNrLW9wdGlvbnMgLm1zLUNvbnRleHR1YWxNZW51IHsNCiAgICAg IG1hcmdpbi10b3A6IDE5cHggIWltcG9ydGFudDsNCiAgICB9DQoNCiAgICAub2QtU3VpdGVO YXZGYWxsYmFjay1tZW51Q29udGFpbmVyIHsNCiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9j azsNCiAgICAgIHotaW5kZXg6IC0xOw0KICAgIH0NCg0KICAgIC5BcHBMYXVuY2hlciB7DQog ICAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmOw0KICAgICAgYm9yZGVyOiAxcHggc29saWQgI2I2 YjZiNjsNCiAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDE1cHggcmdiYSgwLCAwLCAwLCAwLjQp Ow0KICAgICAgYm94LXNpemluZzogY29udGVudC1ib3ggIWltcG9ydGFudDsNCiAgICAgIHBh ZGRpbmc6IDIwcHggMCAxMHB4IDIwcHg7DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQog ICAgICB0b3A6IDUwcHg7DQogICAgICBtYXJnaW46IDEwcHg7DQogICAgICB3aWR0aDogYXV0 bzsNCiAgICAgIGhlaWdodDogYXV0bzsNCiAgICAgIG1pbi13aWR0aDogMjQwcHg7DQogICAg ICBtYXgtd2lkdGg6IDg0MHB4Ow0KICAgICAgbWF4LWhlaWdodDogOTkwcHg7DQogICAgICB6 LWluZGV4OiAxMDA7DQogICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBtYXgtaGVpZ2h0LCBt YXgtd2lkdGg7DQogICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAyNjdtczsNCiAgICAgIHRy YW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xLCAwLjksIDAuMiwg MSk7DQogICAgICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IG1heC1oZWlnaHQsIG1h eC13aWR0aDsNCiAgICAgIC13ZWJraXQtdHJhbnNpdGlvbi1kdXJhdGlvbjogMjY3bXM7DQog ICAgICAtd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIo MC4xLCAwLjksIDAuMiwgMSk7DQogICAgfQ0KDQogICAgaHRtbFtkaXI9InJ0bCJdIC5BcHBM YXVuY2hlciB7DQogICAgICBwYWRkaW5nOiAyMHB4IDIwcHggMTBweCAwOw0KICAgIH0NCg0K ICAgIFtkaXI9Imx0ciJdIC5BcHBMYXVuY2hlciB7DQogICAgICBsZWZ0OiAwOw0KICAgIH0N Cg0KICAgIFtkaXI9InJ0bCJdIC5BcHBMYXVuY2hlciB7DQogICAgICByaWdodDogMDsNCiAg ICB9DQoNCiAgICAuQXBwTGF1bmNoZXItYmVhayB7DQogICAgICBwb3NpdGlvbjogYWJzb2x1 dGU7DQogICAgICB0b3A6IDA7DQogICAgICB6LWluZGV4OiAxMDsNCiAgICB9DQoNCiAgICBb ZGlyPSJsdHIiXSAuQXBwTGF1bmNoZXItYmVhayB7DQogICAgICBsZWZ0OiAwOw0KICAgIH0N Cg0KICAgIFtkaXI9InJ0bCJdIC5BcHBMYXVuY2hlci1iZWFrIHsNCiAgICAgIHJpZ2h0OiAw Ow0KICAgIH0NCg0KICAgIC5BcHBMYXVuY2hlci1iZWFrOmFmdGVyLA0KICAgIC5BcHBMYXVu Y2hlci1iZWFrOmJlZm9yZSB7DQogICAgICBjb250ZW50OiAiICI7DQogICAgICBib3JkZXI6 IHNvbGlkIHRyYW5zcGFyZW50Ow0KICAgICAgaGVpZ2h0OiAwOw0KICAgICAgcG9zaXRpb246 IGFic29sdXRlOw0KICAgICAgd2lkdGg6IDA7DQogICAgfQ0KDQogICAgLkFwcExhdW5jaGVy LWJlYWs6YmVmb3JlIHsNCiAgICAgIGJvcmRlci13aWR0aDogOXB4Ow0KICAgICAgYm9yZGVy LWJvdHRvbS1jb2xvcjogI2I2YjZiNjsNCiAgICAgIHRvcDogLTE4cHg7DQogICAgfQ0KDQog ICAgW2Rpcj0ibHRyIl0gLkFwcExhdW5jaGVyLWJlYWs6YmVmb3JlIHsNCiAgICAgIGxlZnQ6 IDVweDsNCiAgICB9DQoNCiAgICBbZGlyPSJydGwiXSAuQXBwTGF1bmNoZXItYmVhazpiZWZv cmUgew0KICAgICAgcmlnaHQ6IDVweDsNCiAgICB9DQoNCiAgICAuQXBwTGF1bmNoZXItYmVh azphZnRlciB7DQogICAgICBib3JkZXItd2lkdGg6IDhweDsNCiAgICAgIGJvcmRlci1ib3R0 b20tY29sb3I6ICNmZmY7DQogICAgICB0b3A6IC0xNnB4Ow0KICAgIH0NCg0KICAgIFtkaXI9 Imx0ciJdIC5BcHBMYXVuY2hlci1iZWFrOmFmdGVyIHsNCiAgICAgIGxlZnQ6IDZweDsNCiAg ICB9DQoNCiAgICBbZGlyPSJydGwiXSAuQXBwTGF1bmNoZXItYmVhazphZnRlciB7DQogICAg ICByaWdodDogNnB4Ow0KICAgIH0NCg0KICAgIC5BcHBMYXVuY2hlci1ncmV5YmFja2dyb3Vu ZCB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTk5Ow0KICAgICAgd2lkdGg6IDEwMCU7 DQogICAgICBoZWlnaHQ6IDEwMCU7DQogICAgfQ0KDQogICAgLkFwcExhdW5jaGVyLWxpc3RJ dGVtIHsNCiAgICAgIHdpZHRoOiAxMDlweDsNCiAgICAgIGhlaWdodDogMTA5cHg7DQogICAg ICBkaXNwbGF5OiBibG9jazsNCiAgICAgIG1hcmdpbjogMCAxMHB4IDEwcHggMDsNCiAgICAg IHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgICAgIGNvbG9yOiAjZmZmZmZmOw0KICAgICAgY3Vy c29yOiBwb2ludGVyOw0KICAgICAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lOw0KICAg ICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsNCiAgICAgIC1tcy11c2VyLXNlbGVjdDog bm9uZTsNCiAgICAgIHVzZXItc2VsZWN0OiBub25lOw0KICAgICAgdHJhbnNpdGlvbjogMTY3 bXMgdHJhbnNmb3JtIGN1YmljLWJlemllcigwLjEsIDAuOSwgMC4yLCAxKTsNCiAgICAgIGJv eC1zaXppbmc6IGJvcmRlci1ib3g7DQogICAgfQ0KDQogICAgaHRtbFtkaXI9Imx0ciJdIC5B cHBMYXVuY2hlci1saXN0SXRlbSB7DQogICAgICBmbG9hdDogbGVmdDsNCiAgICB9DQoNCiAg ICBodG1sW2Rpcj0icnRsIl0gLkFwcExhdW5jaGVyLWxpc3RJdGVtIHsNCiAgICAgIGZsb2F0 OiByaWdodDsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0icnRsIl0gLkFwcExhdW5jaGVyLWxp c3RJdGVtIHsNCiAgICAgIG1hcmdpbjogMCAwIDEwcHggMTBweDsNCiAgICB9DQoNCiAgICAu QXBwTGF1bmNoZXItbGlzdEl0ZW06aG92ZXIgLmFwcC1tb3JlLW1lbnUtYnV0dG9uIHsNCiAg ICAgIGRpc3BsYXk6IGJsb2NrOw0KICAgIH0NCg0KICAgIC5BcHBMYXVuY2hlci1saXN0SXRl bS53aWRlIHsNCiAgICAgIHdpZHRoOiAyMzBweDsNCiAgICB9DQoNCiAgICAuQXBwTGF1bmNo ZXItbGlzdEl0ZW06YWN0aXZlIHsNCiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45NSk7DQog ICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC45NSk7DQogICAgfQ0KDQogICAgLkFw cExhdW5jaGVyLWxpc3RJdGVtIGk6OmJlZm9yZSB7DQogICAgICBjb2xvcjogI2ZmZmZmZjsN CiAgICB9DQoNCiAgICAuQXBwTGF1bmNoZXItbGlzdEl0ZW0gLkFwcExhdW5jaGVyLWlubmVy IHsNCiAgICAgIHRvcDogMDsNCiAgICAgIHJpZ2h0OiAwOw0KICAgICAgYm90dG9tOiAwOw0K ICAgICAgbGVmdDogMDsNCiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgIHRleHQt YWxpZ246IGNlbnRlcjsNCiAgICAgIGJhY2tncm91bmQ6ICMwMDc4ZDQ7DQogICAgICBib3Jk ZXI6IDJweCBzb2xpZCB0cmFuc3BhcmVudDsNCiAgICB9DQoNCiAgICAuQXBwTGF1bmNoZXIt bGlzdEl0ZW0gLkFwcExhdW5jaGVyLWlubmVyOmhvdmVyIHsNCiAgICAgIG91dGxpbmUtd2lk dGg6IDJweDsNCiAgICAgIG91dGxpbmUtc3R5bGU6IHNvbGlkOw0KICAgIH0NCg0KICAgIC5B cHBMYXVuY2hlci1saXN0SXRlbSAuQXBwTGF1bmNoZXItaW5uZXIgLkFwcExhdW5jaGVyLW1l bnVUaXRsZSB7DQogICAgICBmb250LXNpemU6IDEycHg7DQogICAgICBjb2xvcjogI2ZmZjsN CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgIGJvdHRvbTogNXB4Ow0KICAgICAg d2lkdGg6IDg1cHg7DQogICAgICBkaXNwbGF5OiBibG9jazsNCiAgICAgIG92ZXJmbG93OiBo aWRkZW47DQogICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsNCiAgICAgIHdoaXRlLXNw YWNlOiBub3dyYXA7DQogICAgfQ0KDQogICAgW2Rpcj0ibHRyIl0gLkFwcExhdW5jaGVyLWxp c3RJdGVtIC5BcHBMYXVuY2hlci1pbm5lciAuQXBwTGF1bmNoZXItbWVudVRpdGxlIHsNCiAg ICAgIGxlZnQ6IDhweDsNCiAgICB9DQoNCiAgICBbZGlyPSJydGwiXSAuQXBwTGF1bmNoZXIt bGlzdEl0ZW0gLkFwcExhdW5jaGVyLWlubmVyIC5BcHBMYXVuY2hlci1tZW51VGl0bGUgew0K ICAgICAgcmlnaHQ6IDhweDsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0ibHRyIl0gLkFwcExh dW5jaGVyLWxpc3RJdGVtIC5BcHBMYXVuY2hlci1pbm5lciAuQXBwTGF1bmNoZXItbWVudVRp dGxlIHsNCiAgICAgIHRleHQtYWxpZ246IGxlZnQ7DQogICAgfQ0KDQogICAgaHRtbFtkaXI9 InJ0bCJdIC5BcHBMYXVuY2hlci1saXN0SXRlbSAuQXBwTGF1bmNoZXItaW5uZXIgLkFwcExh dW5jaGVyLW1lbnVUaXRsZSB7DQogICAgICB0ZXh0LWFsaWduOiByaWdodDsNCiAgICB9DQoN CiAgICAuQXBwTGF1bmNoZXItbGlzdEl0ZW0gLkFwcExhdW5jaGVyLWlubmVyIC5tcy1JY29u IHsNCiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgICAgIGZvbnQtc2l6ZTogNDlweDsN CiAgICAgIHRvcDogMjZweDsNCiAgICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7DQogICAg fQ0KDQogICAgLkFwcExhdW5jaGVyLWxpc3RJdGVtIC5BcHBMYXVuY2hlci1pbm5lciBpbWcg ew0KICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICAgdG9wOiAyMHB4Ow0KICAgIH0N Cg0KICAgIFtkaXI9Imx0ciJdIC5BcHBMYXVuY2hlci1saXN0SXRlbSAuQXBwTGF1bmNoZXIt aW5uZXIgaW1nIHsNCiAgICAgIGxlZnQ6IDI0cHg7DQogICAgfQ0KDQogICAgW2Rpcj0icnRs Il0gLkFwcExhdW5jaGVyLWxpc3RJdGVtIC5BcHBMYXVuY2hlci1pbm5lciBpbWcgew0KICAg ICAgcmlnaHQ6IDI0cHg7DQogICAgfQ0KDQogICAgLkFwcExhdW5jaGVyLWxpc3RJdGVtIC53 b3JkIHsNCiAgICAgIGJhY2tncm91bmQ6ICMyYjU3OWE7DQogICAgfQ0KDQogICAgLkFwcExh dW5jaGVyLWxpc3RJdGVtIC5leGNlbCB7DQogICAgICBiYWNrZ3JvdW5kOiAjMjA3MzQ2Ow0K ICAgIH0NCg0KICAgIC5BcHBMYXVuY2hlci1saXN0SXRlbSAucG93ZXJwb2ludCB7DQogICAg ICBiYWNrZ3JvdW5kOiAjZDI0NzI1Ow0KICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50Ow0K ICAgIH0NCg0KICAgIC5BcHBMYXVuY2hlci1saXN0SXRlbSAub25lbm90ZSB7DQogICAgICBi YWNrZ3JvdW5kOiAjODAzOTdiOw0KICAgIH0NCg0KICAgIC5BcHBMYXVuY2hlci1saXN0SXRl bSAucHJvamVjdCB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTEzM2FiOw0KICAgIH0N Cg0KICAgIC5BcHBMYXVuY2hlci1saXN0SXRlbSAudGFza3Mgew0KICAgICAgYmFja2dyb3Vu ZDogIzMxNzUyZTsNCiAgICB9DQoNCiAgICAuQXBwTGF1bmNoZXItbGlzdEl0ZW0gLm9zbG8g Lm1zLUljb24gew0KICAgICAgZm9udC1zaXplOiA2NHB4Ow0KICAgICAgcGFkZGluZy10b3A6 IDNweDsNCiAgICB9DQoNCiAgICAuQXBwTGF1bmNoZXItbGlzdEl0ZW0gLm1vcmUtYXBwcyB7 DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWJlYmViOw0KICAgIH0NCg0KICAgIC5BcHBM YXVuY2hlci1saXN0SXRlbSAubW9yZS1hcHBzIC5tcy1JY29uIHsNCiAgICAgIHRvcDogNDBw eDsNCiAgICAgIGZvbnQtc2l6ZTogMjVweDsNCiAgICB9DQoNCiAgICAuYXBwLW1vcmUtbWVu dS1jb250YWluZXIgew0KICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgIH0NCg0KICAg IFtkaXI9Imx0ciJdIC5hcHAtbW9yZS1tZW51LWNvbnRhaW5lciB7DQogICAgICByaWdodDog MDsNCiAgICB9DQoNCiAgICBbZGlyPSJydGwiXSAuYXBwLW1vcmUtbWVudS1jb250YWluZXIg ew0KICAgICAgbGVmdDogMDsNCiAgICB9DQoNCiAgICAuYXBwLW1vcmUtbWVudS1jb250YWlu ZXIgLmFwcC1tb3JlLW1lbnUtYnV0dG9uIHsNCiAgICAgIGZvbnQtc2l6ZTogMTZweDsNCiAg ICAgIGN1cnNvcjogcG9pbnRlcjsNCiAgICAgIGNvbG9yOiAjZmZmZmZmOw0KICAgICAgdGV4 dC1hbGlnbjogY2VudGVyOw0KICAgICAgd2lkdGg6IDMwcHg7DQogICAgICBoZWlnaHQ6IDIw cHg7DQogICAgICBkaXNwbGF5OiBub25lOw0KICAgIH0NCg0KICAgIC5hcHAtbW9yZS1tZW51 LWNvbnRhaW5lciAubW9yZS1tZW51LWxpc3Qgew0KICAgICAgZGlzcGxheTogbm9uZTsNCiAg ICAgIGJhY2tncm91bmQ6ICNmZmY7DQogICAgICBib3JkZXI6IDFweCBzb2xpZCAjZTVmMGY5 Ow0KICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lOw0KICAgICAgd2lkdGg6IDE2NXB4Ow0K ICAgICAgbWFyZ2luOiAwOw0KICAgICAgcGFkZGluZzogMDsNCiAgICAgIHBvc2l0aW9uOiBh YnNvbHV0ZTsNCiAgICAgIHRvcDogMDsNCiAgICAgIHotaW5kZXg6IDk5OTsNCiAgICAgIGJv eC1zaGFkb3c6IDAgMCA4cHggcmdiYSgwLCAwLCAwLCAwLjYpOw0KICAgICAgZm9udC1zaXpl OiAxMnB4Ow0KICAgIH0NCg0KICAgIFtkaXI9Imx0ciJdIC5hcHAtbW9yZS1tZW51LWNvbnRh aW5lciAubW9yZS1tZW51LWxpc3Qgew0KICAgICAgbGVmdDogMTAwJTsNCiAgICB9DQoNCiAg ICBbZGlyPSJydGwiXSAuYXBwLW1vcmUtbWVudS1jb250YWluZXIgLm1vcmUtbWVudS1saXN0 IHsNCiAgICAgIHJpZ2h0OiAxMDAlOw0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJsdHIiXSAu YXBwLW1vcmUtbWVudS1jb250YWluZXIgLm1vcmUtbWVudS1saXN0IHsNCiAgICAgIHRleHQt YWxpZ246IGxlZnQ7DQogICAgfQ0KDQogICAgaHRtbFtkaXI9InJ0bCJdIC5hcHAtbW9yZS1t ZW51LWNvbnRhaW5lciAubW9yZS1tZW51LWxpc3Qgew0KICAgICAgdGV4dC1hbGlnbjogcmln aHQ7DQogICAgfQ0KDQogICAgLmFwcC1tb3JlLW1lbnUtY29udGFpbmVyIC5tb3JlLW1lbnUt bGlzdCBsaSBhIHsNCiAgICAgIHBhZGRpbmc6IDVweCAxNXB4Ow0KICAgICAgd2lkdGg6IGF1 dG87DQogICAgICBkaXNwbGF5OiBibG9jazsNCiAgICAgIGNvbG9yOiAjMDAwOw0KICAgIH0N Cg0KICAgIC5hcHAtbW9yZS1tZW51LWNvbnRhaW5lciAubW9yZS1tZW51LWxpc3QgbGkgYTpo b3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTVmMGY5Ow0KICAgIH0NCg0KICAg IC5hcHAtbW9yZS1tZW51LWNvbnRhaW5lci5vcGVuIC5tb3JlLW1lbnUtbGlzdCB7DQogICAg ICBkaXNwbGF5OiBibG9jazsNCiAgICB9DQoNCiAgICAuYXBwbWVudS1hcHAtbW9yZSB7DQog ICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOw0KICAgICAgdmVydGljYWwtYWxpZ246IGJv dHRvbTsNCiAgICAgIG1hcmdpbjogMCAyMHB4IDEwcHggMDsNCiAgICB9DQoNCiAgICBodG1s W2Rpcj0ibHRyIl0gLmFwcG1lbnUtYXBwLW1vcmUgew0KICAgICAgZmxvYXQ6IHJpZ2h0Ow0K ICAgIH0NCg0KICAgIGh0bWxbZGlyPSJydGwiXSAuYXBwbWVudS1hcHAtbW9yZSB7DQogICAg ICBmbG9hdDogbGVmdDsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0ibHRyIl0gLmFwcG1lbnUt YXBwLW1vcmUgew0KICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7DQogICAgfQ0KDQogICAgaHRt bFtkaXI9InJ0bCJdIC5hcHBtZW51LWFwcC1tb3JlIHsNCiAgICAgIHRleHQtYWxpZ246IGxl ZnQ7DQogICAgfQ0KDQogICAgaHRtbFtkaXI9InJ0bCJdIC5hcHBtZW51LWFwcC1tb3JlIHsN CiAgICAgIG1hcmdpbjogMCAwIDEwcHggMjBweDsNCiAgICB9DQoNCiAgICAuYXBwbWVudS1h cHAtbW9yZSBhLmFwcG1lbnUtYXBwLW1vcmV0ZXh0IHsNCiAgICAgIGNvbG9yOiAjMDAwOw0K ICAgICAgZm9udC1zaXplOiAxMnB4Ow0KICAgICAgZm9udC1mYW1pbHk6IFNlZ29lVUktU2Vt aUJvbGQtZmluYWwsIFNlZ29lLCBUYWhvbWEsIEhlbHZldGljYSwgQXJpYWwsDQogICAgICAg IHNhbnMtc2VyaWY7DQogICAgfQ0KDQogICAgLmFwcC1wcm92aXNpb25pbmc6aG92ZXIsDQog ICAgLmFwcG1lbnUtYXBwLW1vcmU6aG92ZXIgew0KICAgICAgb3V0bGluZTogMDsNCiAgICB9 DQoNCiAgICAuYXBwLXByb3Zpc2lvbmluZyB7DQogICAgICBvcGFjaXR5OiAwLjI7DQogICAg fQ0KDQogICAgQG1lZGlhIChtYXgtd2lkdGg6IDk0MHB4KSB7DQogICAgICAuQXBwTGF1bmNo ZXIgew0KICAgICAgICBtYXgtd2lkdGg6IDQ4NnB4Ow0KICAgICAgfQ0KICAgIH0NCg0KICAg IEBtZWRpYSAobWF4LXdpZHRoOiA1ODBweCkgew0KICAgICAgLkFwcExhdW5jaGVyIHsNCiAg ICAgICAgbWF4LXdpZHRoOiAzMzVweDsNCiAgICAgIH0NCg0KICAgICAgLkFwcExhdW5jaGVy LWxpc3RJdGVtIHsNCiAgICAgICAgd2lkdGg6IDU1cHg7DQogICAgICAgIGhlaWdodDogNTVw eDsNCiAgICAgIH0NCg0KICAgICAgLkFwcExhdW5jaGVyLWxpc3RJdGVtIC5BcHBMYXVuY2hl ci1pbm5lciAubXMtSWNvbiB7DQogICAgICAgIGZvbnQtc2l6ZTogMjVweDsNCiAgICAgICAg dG9wOiAxM3B4Ow0KICAgICAgfQ0KDQogICAgICAuQXBwTGF1bmNoZXItbGlzdEl0ZW0gLkFw cExhdW5jaGVyLWlubmVyIC5BcHBMYXVuY2hlci1tZW51VGl0bGUgew0KICAgICAgICBkaXNw bGF5OiBub25lOw0KICAgICAgfQ0KICAgIH0NCg0KICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0 NjBweCkgew0KICAgICAgLkFwcExhdW5jaGVyIHsNCiAgICAgICAgbWF4LXdpZHRoOiAyMDVw eDsNCiAgICAgICAgbWluLXdpZHRoOiAyMDVweDsNCiAgICAgIH0NCiAgICB9DQoNCiAgICBA bWVkaWEgKG1heC1oZWlnaHQ6IDk1MHB4KSB7DQogICAgICAuQXBwTGF1bmNoZXIgew0KICAg ICAgICBtYXgtaGVpZ2h0OiA3MzBweDsNCiAgICAgIH0NCiAgICB9DQoNCiAgICBAbWVkaWEg KG1heC1oZWlnaHQ6IDgyMHB4KSB7DQogICAgICAuQXBwTGF1bmNoZXIgew0KICAgICAgICBt YXgtaGVpZ2h0OiA2MTBweDsNCiAgICAgIH0NCiAgICB9DQoNCiAgICBAbWVkaWEgKG1heC1o ZWlnaHQ6IDcwMHB4KSB7DQogICAgICAuQXBwTGF1bmNoZXIgew0KICAgICAgICBtYXgtaGVp Z2h0OiA0OTBweDsNCiAgICAgIH0NCiAgICB9DQoNCiAgICBAbWVkaWEgKG1heC1oZWlnaHQ6 IDYwMHB4KSB7DQogICAgICAuQXBwTGF1bmNoZXIgew0KICAgICAgICBtYXgtaGVpZ2h0OiAz NjBweDsNCiAgICAgIH0NCiAgICB9DQoNCiAgICBAbWVkaWEgKG1heC1oZWlnaHQ6IDQ2MHB4 KSB7DQogICAgICAuQXBwTGF1bmNoZXIgew0KICAgICAgICBtYXgtaGVpZ2h0OiAyNDBweDsN CiAgICAgIH0NCiAgICB9DQoNCiAgICAuQmVhay1jb250YWluZXIgew0KICAgICAgcG9zaXRp b246IGFic29sdXRlOw0KICAgICAgd2lkdGg6IDEwMCU7DQogICAgICBoZWlnaHQ6IDEwMCU7 DQogICAgfQ0KDQogICAgLkJlYWstY29udGFpbmVyIC5CZWFrLWFycm93LkJlYWstLXRoZW1l UHJpbWFyeSB7DQogICAgICBiYWNrZ3JvdW5kOiAjMDA3OGQ0Ow0KICAgIH0NCg0KICAgIC5C ZWFrLWNvbnRhaW5lciAuQmVhay1hcnJvdy5CZWFrLS13aGl0ZSB7DQogICAgICBiYWNrZ3Jv dW5kOiAjZmZmZmZmOw0KICAgIH0NCg0KICAgIC5CZWFrLWNvbnRhaW5lciAuQmVhay1hcnJv dy5CZWFrLS1uZXV0cmFsTGlnaHRlckFsdCB7DQogICAgICBiYWNrZ3JvdW5kOiAjZmFmYWZh Ow0KICAgIH0NCg0KICAgIC5CZWFrLWNvbnRhaW5lciAuQmVhay1hcnJvdy5CZWFrLS10aGVt ZVRlcnRpYXJ5IHsNCiAgICAgIGJhY2tncm91bmQ6ICM3MWFmZTU7DQogICAgfQ0KDQogICAg LkJlYWstYXJyb3cgew0KICAgICAgYm94LXNoYWRvdzogMCAwIDVweCAwIHJnYmEoMCwgMCwg MCwgMC40KTsNCiAgICAgIHdpZHRoOiAxNnB4Ow0KICAgICAgcG9zaXRpb246IHJlbGF0aXZl Ow0KICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpOw0KICAgICAgaGVpZ2h0OiAxNnB4 Ow0KICAgICAgdHJhbnNpdGlvbjogbGVmdCAxcyBlYXNlLWluLW91dCwgcmlnaHQgMXMgZWFz ZS1pbi1vdXQ7DQogICAgfQ0KDQogICAgLkJlYWstYXJyb3ctLWNlbnRlcmVkIHsNCiAgICAg IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSByb3RhdGUoNDVkZWcpICFpbXBvcnRhbnQ7 DQogICAgfQ0KDQogICAgaHRtbFtkaXI9Imx0ciJdIC5CZWFrLWFycm93LS1jZW50ZXJlZCB7 DQogICAgICBsZWZ0OiA1MCU7DQogICAgfQ0KDQogICAgaHRtbFtkaXI9InJ0bCJdIC5CZWFr LWFycm93LS1jZW50ZXJlZCB7DQogICAgICByaWdodDogNTAlOw0KICAgIH0NCg0KICAgIGh0 bWxbZGlyPSJydGwiXSAuQmVhay1hcnJvdy0tY2VudGVyZWQgew0KICAgICAgdHJhbnNmb3Jt OiB0cmFuc2xhdGVYKDUwJSkgcm90YXRlKDQ1ZGVnKSAhaW1wb3J0YW50Ow0KICAgIH0NCg0K ICAgIC5tc1RpbGVzQ2Fyb3VzZWxfZTkzNDgxZDEgLm1zLUxpc3Qtc3VyZmFjZSB7DQogICAg ICBkaXNwbGF5OiBmbGV4Ow0KICAgIH0NCg0KICAgIC5uYXZCdXR0b25fZTkzNDgxZDEgew0K ICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYTsNCiAgICAgIGJvcmRlcjogbm9uZTsN CiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsNCiAgICAgIGN1cnNvcjogcG9pbnRlcjsNCiAg ICB9DQoNCiAgICAubmF2QnV0dG9uX2U5MzQ4MWQxOmZvY3VzIHsNCiAgICAgIG91dGxpbmU6 IDA7DQogICAgfQ0KDQogICAgLm5hdkJ1dHRvbl9lOTM0ODFkMTpob3ZlciB7DQogICAgICBi YWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1Ow0KICAgIH0NCg0KICAgIC5uYXZCdXR0b25fZTkz NDgxZDE6YWN0aXZlIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlMGUwZTA7DQogICAg fQ0KDQogICAgLm5hdkJ1dHRvbl9lOTM0ODFkMTpkaXNhYmxlZCB7DQogICAgICBiYWNrZ3Jv dW5kLWNvbG9yOiAjZmFmYWZhOw0KICAgICAgY3Vyc29yOiBkZWZhdWx0Ow0KICAgIH0NCg0K ICAgIC5jaGV2cm9uX2U5MzQ4MWQxIHsNCiAgICAgIGZvbnQtc2l6ZTogMTZweDsNCiAgICAg IGNvbG9yOiAjNjA1ZTVjOw0KICAgICAgbGluZS1oZWlnaHQ6IDEwMCU7DQogICAgICBtYXJn aW4tdG9wOiAzcHg7DQogICAgfQ0KDQogICAgLmNoZXZyb25EaXNhYmxlZF9lOTM0ODFkMSB7 DQogICAgICBjb2xvcjogI2ExOWY5ZDsNCiAgICB9DQoNCiAgICAuY2Fyb3VzZWxUb3BOYXZf ZTkzNDgxZDEgew0KICAgICAgZGlyZWN0aW9uOiBsdHI7DQogICAgICBiYWNrZ3JvdW5kLWNv bG9yOiAjZmFmYWZhOw0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJsdHIiXSAuY2Fyb3VzZWxU b3BOYXZfZTkzNDgxZDEgew0KICAgICAgZmxvYXQ6IHJpZ2h0Ow0KICAgIH0NCg0KICAgIGh0 bWxbZGlyPSJydGwiXSAuY2Fyb3VzZWxUb3BOYXZfZTkzNDgxZDEgew0KICAgICAgZmxvYXQ6 IGxlZnQ7DQogICAgfQ0KDQogICAgaHRtbFtkaXI9Imx0ciJdIC5jYXJvdXNlbFRvcE5hdl9l OTM0ODFkMSA6Zmlyc3Qtb2YtdHlwZSB7DQogICAgICBtYXJnaW4tcmlnaHQ6IDFweDsNCiAg ICB9DQoNCiAgICBodG1sW2Rpcj0icnRsIl0gLmNhcm91c2VsVG9wTmF2X2U5MzQ4MWQxIDpm aXJzdC1vZi10eXBlIHsNCiAgICAgIG1hcmdpbi1sZWZ0OiAxcHg7DQogICAgfQ0KDQogICAg Lm1zVGlsZXNDYXJvdXNlbEhlYWRlcl9lOTM0ODFkMSB7DQogICAgICBjb2xvcjogIzMyMzEz MDsNCiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsNCiAgICAgIGZvbnQtc2l6ZTogMjBw eDsNCiAgICAgIGxpbmUtaGVpZ2h0OiAyOHB4Ow0KICAgICAgbWFyZ2luOiAwOw0KICAgIH0N Cg0KICAgIC5tcy1GYWJyaWMtLWlzRm9jdXNWaXNpYmxlIC5tc1RpbGVzQ2Fyb3VzZWxfZTkz NDgxZDEgLm1zLVRpbGU6Zm9jdXMgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJp dDsNCiAgICAgIG1hcmdpbjogMXB4Ow0KICAgICAgb3V0bGluZTogMXB4IHNvbGlkICM2MTYx NjE7DQogICAgfQ0KDQogICAgLnBhbmVfMzRkNTZhYWYgew0KICAgICAgZmxleDogMSAxIGF1 dG87DQogICAgfQ0KDQogICAgLnBhbmVfMzRkNTZhYWYgLm1zLU5hdi1ncm91cCB7DQogICAg ICBwYWRkaW5nLXRvcDogOHB4Ow0KICAgIH0NCg0KICAgIC5wYW5lXzM0ZDU2YWFmIC5tcy1O YXYtZ3JvdXA6bm90KDpsYXN0LWNoaWxkKSB7DQogICAgICBib3JkZXItYm90dG9tLWNvbG9y OiAjZTBlMGUwOw0KICAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4Ow0KICAgICAgYm9y ZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7DQogICAgICBwYWRkaW5nLWJvdHRvbTogMTZweDsN CiAgICB9DQoNCiAgICBAbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFj dGl2ZSksDQogICAgc2NyZWVuIGFuZCAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSB7DQogICAg ICAucGFuZV8zNGQ1NmFhZiAubXMtTmF2LWdyb3VwOm5vdCg6bGFzdC1jaGlsZCkgew0KICAg ICAgICBib3JkZXItYm90dG9tLWNvbG9yOiBIaWdobGlnaHQ7DQogICAgICB9DQogICAgfQ0K DQogICAgQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpLA0K ICAgIHNjcmVlbiBhbmQgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSkgew0KICAgICAgLnBhbmVf MzRkNTZhYWYgLm1zLU5hdi1ncm91cDpub3QoOmxhc3QtY2hpbGQpIHsNCiAgICAgICAgLW1z LWhpZ2gtY29udHJhc3QtYWRqdXN0OiBub25lOw0KICAgICAgICBmb3JjZWQtY29sb3ItYWRq dXN0OiBub25lOw0KICAgICAgfQ0KICAgIH0NCg0KICAgIC5wYW5lXzM0ZDU2YWFmIC5tcy1O YXYtZ3JvdXA6bm90KDpmaXJzdC1jaGlsZCkgew0KICAgICAgcGFkZGluZy10b3A6IDE2cHg7 DQogICAgfQ0KDQogICAgLmlzRmx1ZW50Vk5leHQgLnBhbmVfMzRkNTZhYWYgLm1zLU5hdi1n cm91cCB7DQogICAgICBwYWRkaW5nLXRvcDogMTZweDsNCiAgICAgIGJvcmRlci1ib3R0b206 IG5vbmU7DQogICAgfQ0KDQogICAgQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRy YXN0OiBhY3RpdmUpLA0KICAgIHNjcmVlbiBhbmQgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSkg ew0KICAgICAgLnBhbmVfMzRkNTZhYWYgew0KICAgICAgICBvdXRsaW5lOiB0cmFuc3BhcmVu dDsNCiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOw0KICAgICAgfQ0KDQogICAgICAucGFu ZV8zNGQ1NmFhZiAmOjotbW96LWZvY3VzLWlubmVyIHsNCiAgICAgICAgYm9yZGVyOiAwOw0K ICAgICAgfQ0KDQogICAgICAubXMtRmFicmljLS1pc0ZvY3VzVmlzaWJsZSAucGFuZV8zNGQ1 NmFhZjpmb2N1czphZnRlciB7DQogICAgICAgIGNvbnRlbnQ6ICIiOw0KICAgICAgICBwb3Np dGlvbjogYWJzb2x1dGU7DQogICAgICAgIHRvcDogMnB4Ow0KICAgICAgICByaWdodDogMnB4 Ow0KICAgICAgICBib3R0b206IDJweDsNCiAgICAgICAgbGVmdDogMnB4Ow0KICAgICAgICBw b2ludGVyLWV2ZW50czogbm9uZTsNCiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgV2luZG93 VGV4dDsNCiAgICAgIH0NCiAgICB9DQoNCiAgICAucGFuZV8zNGQ1NmFhZiAubXMtTmF2LWdy b3VwQ29udGVudCB7DQogICAgICBtYXJnaW4tYm90dG9tOiAwOw0KICAgICAgdHJhbnNmb3Jt OiBub25lOw0KICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7DQogICAgICBhbmltYXRp b246IG5vbmU7DQogICAgfQ0KDQogICAgLmlzRmx1ZW50Vk5leHQgLnBhbmVfMzRkNTZhYWYg Lm1zLU5hdi1ncm91cENvbnRlbnQgew0KICAgICAgcGFkZGluZzogMCAycHg7DQogICAgfQ0K DQogICAgLnBhbmVfMzRkNTZhYWYgLm1zLU5hdi1uYXZJdGVtcyB7DQogICAgICBtYXJnaW4t dG9wOiAwOw0KICAgIH0NCg0KICAgIC5wYW5lXzM0ZDU2YWFmIC5tcy1CdXR0b246aG92ZXIg ew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ViZWJlYjsNCiAgICAgIGNvbG9yOiAjMDA1 YTllOw0KICAgIH0NCg0KICAgIC5wYW5lXzM0ZDU2YWFmIC5tcy1CdXR0b246YWN0aXZlIHsN CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlMGUwZTA7DQogICAgICBjb2xvcjogIzAwNWE5 ZTsNCiAgICB9DQoNCiAgICAucGFuZV8zNGQ1NmFhZiAubXMtQnV0dG9uOmZvY3VzIHsNCiAg ICAgIGJveC1zaGFkb3c6IG5vbmU7DQogICAgfQ0KDQogICAgLnBhbmVfMzRkNTZhYWYgLm1z LU5hdi1saW5rIHsNCiAgICAgIHBhZGRpbmc6IDA7DQogICAgICBoZWlnaHQ6IDM2cHg7DQog ICAgICBib3JkZXI6IDA7DQogICAgfQ0KDQogICAgW2Rpcj0ibHRyIl0gLnBhbmVfMzRkNTZh YWYgLm1zLU5hdi1saW5rIHsNCiAgICAgIHBhZGRpbmctbGVmdDogMTZweDsNCiAgICB9DQoN CiAgICBbZGlyPSJydGwiXSAucGFuZV8zNGQ1NmFhZiAubXMtTmF2LWxpbmsgew0KICAgICAg cGFkZGluZy1yaWdodDogMTZweDsNCiAgICB9DQoNCiAgICBbZGlyPSJsdHIiXSAucGFuZV8z NGQ1NmFhZiAubXMtTmF2LWxpbmsgew0KICAgICAgcGFkZGluZy1yaWdodDogOHB4Ow0KICAg IH0NCg0KICAgIFtkaXI9InJ0bCJdIC5wYW5lXzM0ZDU2YWFmIC5tcy1OYXYtbGluayB7DQog ICAgICBwYWRkaW5nLWxlZnQ6IDhweDsNCiAgICB9DQoNCiAgICAuaXNGbHVlbnRWTmV4dCAu cGFuZV8zNGQ1NmFhZiAubXMtTmF2LWxpbmsgew0KICAgICAgaGVpZ2h0OiA0MHB4Ow0KICAg ICAgYm9yZGVyLXJhZGl1czogNHB4Ow0KICAgIH0NCg0KICAgIFtkaXI9Imx0ciJdIC5pc0Zs dWVudFZOZXh0IC5wYW5lXzM0ZDU2YWFmIC5tcy1OYXYtbGluayB7DQogICAgICBwYWRkaW5n LWxlZnQ6IDJweDsNCiAgICB9DQoNCiAgICBbZGlyPSJydGwiXSAuaXNGbHVlbnRWTmV4dCAu cGFuZV8zNGQ1NmFhZiAubXMtTmF2LWxpbmsgew0KICAgICAgcGFkZGluZy1yaWdodDogMnB4 Ow0KICAgIH0NCg0KICAgIFtkaXI9Imx0ciJdIC5pc0ZsdWVudFZOZXh0IC5wYW5lXzM0ZDU2 YWFmIC5tcy1OYXYtbGluayB7DQogICAgICBwYWRkaW5nLXJpZ2h0OiAycHg7DQogICAgfQ0K DQogICAgW2Rpcj0icnRsIl0gLmlzRmx1ZW50Vk5leHQgLnBhbmVfMzRkNTZhYWYgLm1zLU5h di1saW5rIHsNCiAgICAgIHBhZGRpbmctbGVmdDogMnB4Ow0KICAgIH0NCg0KICAgIC5wYW5l XzM0ZDU2YWFmIC5tcy1OYXYtbGluazo6YWZ0ZXIgew0KICAgICAgYm9yZGVyLWxlZnQ6IG5v bmU7DQogICAgfQ0KDQogICAgQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0 OiBhY3RpdmUpLA0KICAgIHNjcmVlbiBhbmQgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSkgew0K ICAgICAgLnBhbmVfMzRkNTZhYWYgLm1zLU5hdi1jb21wb3NpdGVMaW5rIC5tcy1OYXYtbGlu ayB7DQogICAgICAgIGNvbG9yOiBXaW5kb3dUZXh0Ow0KICAgICAgfQ0KICAgIH0NCg0KICAg IEBtZWRpYSBzY3JlZW4gYW5kICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSwNCiAgICBz Y3JlZW4gYW5kIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpIHsNCiAgICAgIC5wYW5lXzM0ZDU2 YWFmIC5tcy1OYXYtY29tcG9zaXRlTGluayAubXMtTmF2LWxpbmsgew0KICAgICAgICAtbXMt aGlnaC1jb250cmFzdC1hZGp1c3Q6IG5vbmU7DQogICAgICAgIGZvcmNlZC1jb2xvci1hZGp1 c3Q6IG5vbmU7DQogICAgICB9DQogICAgfQ0KDQogICAgLnBhbmVfMzRkNTZhYWYgLm1zLU5h di1jb21wb3NpdGVMaW5rIC5tcy1OYXYtbGluazpmb2N1cywNCiAgICAucGFuZV8zNGQ1NmFh ZiAubXMtTmF2LWNvbXBvc2l0ZUxpbmsgLm1zLU5hdi1saW5rOmhvdmVyIHsNCiAgICAgIGJh Y2tncm91bmQtY29sb3I6ICNlYmViZWI7DQogICAgfQ0KDQogICAgLmlzRmx1ZW50Vk5leHQg LnBhbmVfMzRkNTZhYWYgLm1zLU5hdi1jb21wb3NpdGVMaW5rIC5tcy1OYXYtbGluazpmb2N1 cywNCiAgICAuaXNGbHVlbnRWTmV4dCAucGFuZV8zNGQ1NmFhZiAubXMtTmF2LWNvbXBvc2l0 ZUxpbmsgLm1zLU5hdi1saW5rOmhvdmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNl YmViZWI7DQogICAgICBjb2xvcjogIzI0MjQyNDsNCiAgICB9DQoNCiAgICAuaXNGbHVlbnRW TmV4dCAucGFuZV8zNGQ1NmFhZiAubXMtTmF2LWNvbXBvc2l0ZUxpbmsgLm1zLU5hdi1saW5r OmZvY3VzIGksDQogICAgLmlzRmx1ZW50Vk5leHQgLnBhbmVfMzRkNTZhYWYgLm1zLU5hdi1j b21wb3NpdGVMaW5rIC5tcy1OYXYtbGluazpob3ZlciBpIHsNCiAgICAgIGNvbG9yOiAjMTA2 ZWJlOw0KICAgIH0NCg0KICAgIEBtZWRpYSBzY3JlZW4gYW5kICgtbXMtaGlnaC1jb250cmFz dDogYWN0aXZlKSwNCiAgICBzY3JlZW4gYW5kIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpIHsN Cg0KICAgICAgLmlzRmx1ZW50Vk5leHQgLnBhbmVfMzRkNTZhYWYgLm1zLU5hdi1jb21wb3Np dGVMaW5rIC5tcy1OYXYtbGluazpmb2N1cywNCiAgICAgIC5pc0ZsdWVudFZOZXh0IC5wYW5l XzM0ZDU2YWFmIC5tcy1OYXYtY29tcG9zaXRlTGluayAubXMtTmF2LWxpbms6aG92ZXIgew0K ICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBIaWdobGlnaHQ7DQogICAgICAgIGNvbG9yOiBI aWdobGlnaHRUZXh0Ow0KICAgICAgfQ0KICAgIH0NCg0KICAgIEBtZWRpYSBzY3JlZW4gYW5k ICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSwNCiAgICBzY3JlZW4gYW5kIChmb3JjZWQt Y29sb3JzOiBhY3RpdmUpIHsNCg0KICAgICAgLnBhbmVfMzRkNTZhYWYgLm1zLU5hdi1jb21w b3NpdGVMaW5rIC5tcy1OYXYtbGluazpmb2N1cywNCiAgICAgIC5wYW5lXzM0ZDU2YWFmIC5t cy1OYXYtY29tcG9zaXRlTGluayAubXMtTmF2LWxpbms6aG92ZXIgew0KICAgICAgICBiYWNr Z3JvdW5kLWNvbG9yOiBIaWdobGlnaHQ7DQogICAgICAgIGNvbG9yOiBIaWdobGlnaHRUZXh0 Ow0KICAgICAgfQ0KICAgIH0NCg0KICAgIC5wYW5lXzM0ZDU2YWFmIC5tcy1OYXYtY29tcG9z aXRlTGluayAubXMtTmF2LWxpbms6YWN0aXZlIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6 ICNlMGUwZTA7DQogICAgfQ0KDQogICAgLmlzRmx1ZW50Vk5leHQgLnBhbmVfMzRkNTZhYWYg Lm1zLU5hdi1jb21wb3NpdGVMaW5rIC5tcy1OYXYtbGluazphY3RpdmUgew0KICAgICAgYmFj a2dyb3VuZC1jb2xvcjogI2QxZDFkMTsNCiAgICAgIGNvbG9yOiAjMjQyNDI0Ow0KICAgIH0N Cg0KICAgIEBtZWRpYSBzY3JlZW4gYW5kICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSwN CiAgICBzY3JlZW4gYW5kIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpIHsNCiAgICAgIC5pc0Zs dWVudFZOZXh0IC5wYW5lXzM0ZDU2YWFmIC5tcy1OYXYtY29tcG9zaXRlTGluayAubXMtTmF2 LWxpbms6YWN0aXZlIHsNCiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogSGlnaGxpZ2h0Ow0K ICAgICAgICBjb2xvcjogSGlnaGxpZ2h0VGV4dDsNCiAgICAgIH0NCiAgICB9DQoNCiAgICBA bWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSksDQogICAgc2Ny ZWVuIGFuZCAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSB7DQogICAgICAucGFuZV8zNGQ1NmFh ZiAubXMtTmF2LWNvbXBvc2l0ZUxpbmsgLm1zLU5hdi1saW5rOmFjdGl2ZSB7DQogICAgICAg IGJhY2tncm91bmQtY29sb3I6IEhpZ2hsaWdodDsNCiAgICAgICAgY29sb3I6IEhpZ2hsaWdo dFRleHQ7DQogICAgICB9DQogICAgfQ0KDQogICAgQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1o aWdoLWNvbnRyYXN0OiBhY3RpdmUpLA0KICAgIHNjcmVlbiBhbmQgKGZvcmNlZC1jb2xvcnM6 IGFjdGl2ZSkgew0KICAgICAgLnBhbmVfMzRkNTZhYWYgLm1zLU5hdi1jb21wb3NpdGVMaW5r OmhvdmVyIC5tcy1OYXYtbGluayB7DQogICAgICAgIGJhY2tncm91bmQtY29sb3I6IEhpZ2hs aWdodDsNCiAgICAgICAgY29sb3I6IEhpZ2hsaWdodFRleHQ7DQogICAgICB9DQogICAgfQ0K DQogICAgLnBhbmVfMzRkNTZhYWYgLm1zLU5hdi1jb21wb3NpdGVMaW5rLmlzLXNlbGVjdGVk IC5tcy1OYXYtbGluayB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTBlMGUwOw0KICAg IH0NCg0KICAgIEBtZWRpYSBzY3JlZW4gYW5kICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZl KSwNCiAgICBzY3JlZW4gYW5kIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpIHsNCiAgICAgIC5w YW5lXzM0ZDU2YWFmIC5tcy1OYXYtY29tcG9zaXRlTGluay5pcy1zZWxlY3RlZCAubXMtTmF2 LWxpbmsgew0KICAgICAgICBvdXRsaW5lOiB0cmFuc3BhcmVudDsNCiAgICAgICAgcG9zaXRp b246IHJlbGF0aXZlOw0KICAgICAgfQ0KDQogICAgICAucGFuZV8zNGQ1NmFhZiAubXMtTmF2 LWNvbXBvc2l0ZUxpbmsuaXMtc2VsZWN0ZWQgLm1zLU5hdi1saW5rICY6Oi1tb3otZm9jdXMt aW5uZXIgew0KICAgICAgICBib3JkZXI6IDA7DQogICAgICB9DQoNCiAgICAgIC5tcy1GYWJy aWMtLWlzRm9jdXNWaXNpYmxlIC5wYW5lXzM0ZDU2YWFmIC5tcy1OYXYtY29tcG9zaXRlTGlu ay5pcy1zZWxlY3RlZCAubXMtTmF2LWxpbms6Zm9jdXM6YWZ0ZXIgew0KICAgICAgICBjb250 ZW50OiAiIjsNCiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICAgICB0b3A6IDJw eDsNCiAgICAgICAgcmlnaHQ6IDJweDsNCiAgICAgICAgYm90dG9tOiAycHg7DQogICAgICAg IGxlZnQ6IDJweDsNCiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7DQogICAgICAgIGJv cmRlcjogMXB4IHNvbGlkIFdpbmRvd1RleHQ7DQogICAgICB9DQogICAgfQ0KDQogICAgLmlz Rmx1ZW50Vk5leHQgLnBhbmVfMzRkNTZhYWYgLm1zLU5hdi1jb21wb3NpdGVMaW5rLmlzLXNl bGVjdGVkIC5tcy1OYXYtbGluayB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3Bh cmVudDsNCiAgICAgIGNvbG9yOiAjMjQyNDI0Ow0KICAgIH0NCg0KICAgIC5pc0ZsdWVudFZO ZXh0IC5wYW5lXzM0ZDU2YWFmIC5tcy1OYXYtY29tcG9zaXRlTGluay5pcy1zZWxlY3RlZCAu bXMtTmF2LWxpbmsgaSB7DQogICAgICBjb2xvcjogIzEwNmViZTsNCiAgICB9DQoNCiAgICAu aXNGbHVlbnRWTmV4dCAucGFuZV8zNGQ1NmFhZiAubXMtTmF2LWNvbXBvc2l0ZUxpbmsuaXMt c2VsZWN0ZWQgLm1zLU5hdi1saW5rOmZvY3VzLA0KICAgIC5pc0ZsdWVudFZOZXh0IC5wYW5l XzM0ZDU2YWFmIC5tcy1OYXYtY29tcG9zaXRlTGluay5pcy1zZWxlY3RlZCAubXMtTmF2LWxp bms6aG92ZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ViZWJlYjsNCiAgICAgIGNv bG9yOiAjMjQyNDI0Ow0KICAgIH0NCg0KICAgIEBtZWRpYSBzY3JlZW4gYW5kICgtbXMtaGln aC1jb250cmFzdDogYWN0aXZlKSwNCiAgICBzY3JlZW4gYW5kIChmb3JjZWQtY29sb3JzOiBh Y3RpdmUpIHsNCiAgICAgIC5pc0ZsdWVudFZOZXh0IC5wYW5lXzM0ZDU2YWFmIC5tcy1OYXYt Y29tcG9zaXRlTGluay5pcy1zZWxlY3RlZCAubXMtTmF2LWxpbmsgew0KICAgICAgICBiYWNr Z3JvdW5kLWNvbG9yOiBIaWdobGlnaHQ7DQogICAgICAgIGNvbG9yOiBIaWdobGlnaHRUZXh0 Ow0KICAgICAgfQ0KICAgIH0NCg0KICAgIEBtZWRpYSBzY3JlZW4gYW5kICgtbXMtaGlnaC1j b250cmFzdDogYWN0aXZlKSwNCiAgICBzY3JlZW4gYW5kIChmb3JjZWQtY29sb3JzOiBhY3Rp dmUpIHsNCiAgICAgIC5wYW5lXzM0ZDU2YWFmIC5tcy1OYXYtY29tcG9zaXRlTGluay5pcy1z ZWxlY3RlZCAubXMtTmF2LWxpbmsgew0KICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBIaWdo bGlnaHQ7DQogICAgICAgIGNvbG9yOiBIaWdobGlnaHRUZXh0Ow0KICAgICAgfQ0KICAgIH0N Cg0KICAgIEBtZWRpYSBzY3JlZW4gYW5kICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSwN CiAgICBzY3JlZW4gYW5kIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpIHsNCiAgICAgIC5wYW5l XzM0ZDU2YWFmIC5tcy1OYXYtY29tcG9zaXRlTGluay5pcy1zZWxlY3RlZCAubXMtTmF2LWxp bmsgew0KICAgICAgICAtbXMtaGlnaC1jb250cmFzdC1hZGp1c3Q6IG5vbmU7DQogICAgICAg IGZvcmNlZC1jb2xvci1hZGp1c3Q6IG5vbmU7DQogICAgICB9DQogICAgfQ0KDQogICAgQG1l ZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpLA0KICAgIHNjcmVl biBhbmQgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSkgew0KICAgICAgLnBhbmVfMzRkNTZhYWYg Lm1zLU5hdi1jb21wb3NpdGVMaW5rLmlzLXNlbGVjdGVkOmhvdmVyIC5tcy1OYXYtbGluayB7 DQogICAgICAgIGJhY2tncm91bmQtY29sb3I6IEhpZ2hsaWdodDsNCiAgICAgICAgY29sb3I6 IEhpZ2hsaWdodFRleHQ7DQogICAgICB9DQogICAgfQ0KDQogICAgLnBhbmVfMzRkNTZhYWYg Lm1zLU5hdi1saW5rVGV4dCB7DQogICAgICBtYXJnaW46IDAgMDsNCiAgICB9DQoNCiAgICAu cGFuZV8zNGQ1NmFhZiAubXMtTmF2LWNoZXZyb25CdXR0b24gew0KICAgICAgcGFkZGluZzog MCAxNnB4Ow0KICAgICAgaGVpZ2h0OiAzNnB4Ow0KICAgIH0NCg0KICAgIC5wYW5lXzM0ZDU2 YWFmIC5tcy1OYXYtY2hldnJvbkJ1dHRvbiAubXMtTmF2LWNoZXZyb24gew0KICAgICAgZGlz cGxheTogbm9uZTsNCiAgICB9DQoNCiAgICAucGFuZV8zNGQ1NmFhZiAubXMtTmF2LWNvbXBv c2l0ZUxpbmsgLm1zLU5hdi1jaGV2cm9uQnV0dG9uIHsNCiAgICAgIGRpc3BsYXk6IG5vbmU7 DQogICAgfQ0KDQogICAgLmlzRmx1ZW50Vk5leHQgLnBhbmVfMzRkNTZhYWYgLm1zLU5hdi1j b21wb3NpdGVMaW5rIHsNCiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsNCiAgICB9DQoNCiAg ICBAa2V5ZnJhbWVzIGNvbW1hbmRCYXJCb3hTaGFkb3dBbmltYXRpb25fMTNmZDFmNDEgew0K ICAgICAgMCUgew0KICAgICAgICBib3gtc2hhZG93OiBub25lOw0KICAgICAgICBiYWNrZ3Jv dW5kLWNvbG9yOiB0cmFuc3BhcmVudDsNCiAgICAgIH0NCg0KICAgICAgMTAwJSB7DQogICAg ICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7DQogICAgICAgIGJveC1zaGFkb3c6IDAg My4ycHggNy4ycHggMCByZ2JhKDAsIDAsIDAsIDAuMTMyKSwNCiAgICAgICAgICAwIDAuNnB4 IDEuOHB4IDAgcmdiYSgwLCAwLCAwLCAwLjEwOCk7DQogICAgICB9DQogICAgfQ0KDQogICAg QGtleWZyYW1lcyBjb21tYW5kQmFyRGl2aWRlckFuaW1hdGlvbl8xM2ZkMWY0MSB7DQogICAg ICAwJSB7DQogICAgICAgIG9wYWNpdHk6IDE7DQogICAgICB9DQoNCiAgICAgIDEwMCUgew0K ICAgICAgICBvcGFjaXR5OiAwOw0KICAgICAgfQ0KICAgIH0NCg0KICAgIC5sZWZ0TmF2Tm90 aWZpY2F0aW9uc1NlY3Rpb25fMTNmZDFmNDEgew0KICAgICAgd2lkdGg6IDEwMCU7DQogICAg ICBwYWRkaW5nOiA4cHggMDsNCiAgICAgIGZvbnQtc2l6ZTogMTRweDsNCiAgICB9DQoNCiAg ICAubGVmdE5hdk5vdGlmaWNhdGlvbnNTZWN0aW9uQm9yZGVyXzEzZmQxZjQxIHsNCiAgICAg IGJvcmRlci10b3A6IDFweCBzb2xpZCAjZWJlYmViOw0KICAgIH0NCg0KICAgIC5sZWZ0TmF2 Tm90aWZpY2F0aW9uc0xpbmtfMTNmZDFmNDEgew0KICAgICAgZGlzcGxheTogYmxvY2s7DQog ICAgICBwYWRkaW5nOiA4cHggMTZweDsNCiAgICAgIGNvbG9yOiAjMDA1YTllOw0KICAgIH0N Cg0KICAgIC5sZWZ0TmF2Tm90aWZpY2F0aW9uc1NlY3Rpb25fMTNmZDFmNDE+LmxlZnROYXZO b3RpZmljYXRpb25zTGlua18xM2ZkMWY0MTpmb2N1cyB7DQogICAgICBvdXRsaW5lOiAwOw0K ICAgIH0NCg0KICAgIC5vZC1QcmVtaXVtVXBzZWxsQmFubmVyIHsNCiAgICAgIHBvc2l0aW9u OiByZWxhdGl2ZTsNCiAgICAgIGN1cnNvcjogZGVmYXVsdDsNCiAgICAgIG1hcmdpbjogOHB4 IDE2cHggMTJweDsNCiAgICB9DQoNCiAgICAub2QtUHJlbWl1bVVwc2VsbEJhbm5lci0tY3Vy c29yIHsNCiAgICAgIGN1cnNvcjogcG9pbnRlcjsNCiAgICB9DQoNCiAgICAub2QtUHJlbWl1 bVVwc2VsbEJhbm5lci1oZWFkZXIgew0KICAgICAgZGlzcGxheTogZmxleDsNCiAgICAgIGN1 cnNvcjogcG9pbnRlcjsNCiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgICAgIGJvcmRl cjogMXB4IHNvbGlkICMxMDZlYmU7DQogICAgICBib3JkZXItcmFkaXVzOiAycHg7DQogICAg ICBwYWRkaW5nOiA2cHggMTJweDsNCiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOw0K ICAgICAgY29sb3I6ICMxMDZlYmU7DQogICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsN CiAgICB9DQoNCiAgICAub2QtUHJlbWl1bVVwc2VsbEJhbm5lci1oZWFkZXI6aG92ZXIgew0K ICAgICAgYm9yZGVyLWNvbG9yOiAjMDA1YTllOw0KICAgICAgY29sb3I6ICMwMDVhOWU7DQog ICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWJlYmViOw0KICAgIH0NCg0KICAgIC5pc0ZsdWVu dFZOZXh0IC5vZC1QcmVtaXVtVXBzZWxsQmFubmVyLWhlYWRlciB7DQogICAgICBib3JkZXI6 IG5vbmU7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOw0KICAgICAgcGFkZGlu ZzogMTBweCAxMnB4IDExcHg7DQogICAgICBib3JkZXItcmFkaXVzOiA0cHg7DQogICAgICBi b3gtc2hhZG93OiAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAwIDJweCByZ2Jh KDAsIDAsIDAsIDAuMTIpOw0KICAgIH0NCg0KICAgIC5pc0ZsdWVudFZOZXh0IC5vZC1QcmVt aXVtVXBzZWxsQmFubmVyLWhlYWRlcjpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9y OiAjZWJlYmViOw0KICAgIH0NCg0KICAgIC5vZC1mb2N1cy0tZW5hYmxlZCAub2QtUHJlbWl1 bVVwc2VsbEJhbm5lci1oZWFkZXI6Zm9jdXM6OmFmdGVyIHsNCiAgICAgIGNvbnRlbnQ6ICIi Ow0KICAgICAgdG9wOiAycHg7DQogICAgICByaWdodDogMnB4Ow0KICAgICAgbGVmdDogMnB4 Ow0KICAgICAgYm90dG9tOiAycHg7DQogICAgICBib3JkZXI6IDFweCBzb2xpZCAjMjQyNDI0 Ow0KICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgIH0NCg0KICAgIC5vZC1QcmVtaXVt VXBzZWxsQmFubmVyLWpld2VsIHsNCiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsNCiAg ICAgIGFsaWduLXNlbGY6IGNlbnRlcjsNCiAgICAgIGhlaWdodDogMTZweDsNCiAgICAgIHdp ZHRoOiAxNnB4Ow0KICAgICAgcG9zaXRpb246IHRvcDsNCiAgICAgIHRvcDogMXB4Ow0KICAg IH0NCg0KICAgIFtkaXI9Imx0ciJdIC5vZC1QcmVtaXVtVXBzZWxsQmFubmVyLWpld2VsIHsN CiAgICAgIHBhZGRpbmctcmlnaHQ6IDhweDsNCiAgICB9DQoNCiAgICBbZGlyPSJydGwiXSAu b2QtUHJlbWl1bVVwc2VsbEJhbm5lci1qZXdlbCB7DQogICAgICBwYWRkaW5nLWxlZnQ6IDhw eDsNCiAgICB9DQoNCiAgICAuaXNGbHVlbnRWTmV4dCAub2QtUHJlbWl1bVVwc2VsbEJhbm5l ci1qZXdlbCB7DQogICAgICBoZWlnaHQ6IDE4cHg7DQogICAgICB3aWR0aDogMThweDsNCiAg ICAgIGZvbnQtc2l6ZTogMThweDsNCiAgICB9DQoNCiAgICAub2QtUHJlbWl1bVVwc2VsbEJh bm5lci1kZXRhaWxzIHsNCiAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7DQogICAgfQ0KDQog ICAgLmlzRmx1ZW50Vk5leHQgLm9kLVByZW1pdW1VcHNlbGxCYW5uZXItZGV0YWlscyB7DQog ICAgICBtYXJnaW4tYm90dG9tOiAxOHB4Ow0KICAgICAgbGluZS1oZWlnaHQ6IDEuMjsNCiAg ICB9DQoNCiAgICAub2QtUHJlbWl1bVVwc2VsbEJhbm5lci11cHNlbGwgew0KICAgICAgZGlz cGxheTogaW5saW5lLWJsb2NrOw0KICAgICAgZm9udC1zaXplOiAxNHB4Ow0KICAgICAgZm9u dC13ZWlnaHQ6IDQwMDsNCiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7DQogICAgICBjb2xvcjog aW5oZXJpdDsNCiAgICAgIGZsZXg6IDAgMSBhdXRvOw0KICAgICAgdGV4dC1hbGlnbjogY2Vu dGVyOw0KICAgICAgcGFkZGluZzogMDsNCiAgICB9DQoNCiAgICAuaXNGbHVlbnRWTmV4dCAu b2QtUHJlbWl1bVVwc2VsbEJhbm5lci11cHNlbGwgew0KICAgICAgZGlzcGxheTogZmxleDsN CiAgICB9DQoNCiAgICAub2QtUHJlbWl1bVVwc2VsbEJhbm5lci1nbGVhbSB7DQogICAgICBo ZWlnaHQ6IDI0cHg7DQogICAgICB3aWR0aDogMjRweDsNCiAgICAgIGRpc3BsYXk6IGlubGlu ZS1ibG9jazsNCiAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjsNCiAgICB9DQoNCiAgICAub2Qt UHJlbWl1bVVwc2VsbEJhbm5lci1tZXNzYWdlIHsNCiAgICAgIGZvbnQtc2l6ZTogMTJweDsN CiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7DQogICAgICBkaXNwbGF5OiBpbmxpbmU7DQogICAg ICBjb2xvcjogIzYxNjE2MTsNCiAgICB9DQoNCiAgICBbZGlyPSJsdHIiXSAub2QtUHJlbWl1 bVVwc2VsbEJhbm5lci1tZXNzYWdlIHsNCiAgICAgIHBhZGRpbmctcmlnaHQ6IDRweDsNCiAg ICB9DQoNCiAgICBbZGlyPSJydGwiXSAub2QtUHJlbWl1bVVwc2VsbEJhbm5lci1tZXNzYWdl IHsNCiAgICAgIHBhZGRpbmctbGVmdDogNHB4Ow0KICAgIH0NCg0KICAgIC5vZC1QcmVtaXVt VXBzZWxsQmFubmVyLWxpbmsgew0KICAgICAgZm9udC1zaXplOiAxMnB4Ow0KICAgICAgZm9u dC13ZWlnaHQ6IDQwMDsNCiAgICAgIGRpc3BsYXk6IGJsb2NrOw0KICAgICAgbWFyZ2luLXRv cDogM3B4Ow0KICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7DQogICAgICBjb2xv cjogIzEwNmViZTsNCiAgICB9DQoNCiAgICAub2QtUHJlbWl1bVVwc2VsbEJhbm5lci1saW5r OmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjMDA1YTllOw0KICAgIH0NCg0KICAgIC5vZC1QcmVt aXVtVXBzZWxsQmFubmVyLWFuY2hvciB7DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQog ICAgICB0b3A6IDYwcHg7DQogICAgICB3aWR0aDogMXB4Ow0KICAgICAgaGVpZ2h0OiAxcHg7 DQogICAgfQ0KDQogICAgW2Rpcj0ibHRyIl0gLm9kLVByZW1pdW1VcHNlbGxCYW5uZXItYW5j aG9yIHsNCiAgICAgIHJpZ2h0OiAwOw0KICAgIH0NCg0KICAgIFtkaXI9InJ0bCJdIC5vZC1Q cmVtaXVtVXBzZWxsQmFubmVyLWFuY2hvciB7DQogICAgICBsZWZ0OiAwOw0KICAgIH0NCg0K ICAgIC5vZC1PdmVyUXVvdGEgew0KICAgICAgcGFkZGluZzogMTJweCAyMHB4IDE2cHg7DQog ICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmRlN2U5Ow0KICAgICAgY29sb3I6ICMwMDAwMDA7 DQogICAgfQ0KDQogICAgLm9kLU92ZXJRdW90YSAub2QtT3ZlclF1b3RhLW1lc3NhZ2Ugew0K ICAgICAgZm9udC1zaXplOiAxMnB4Ow0KICAgIH0NCg0KICAgIFtkaXI9Imx0ciJdIC5vZC1P dmVyUXVvdGEgLm9kLU92ZXJRdW90YS1tZXNzYWdlIHsNCiAgICAgIHBhZGRpbmctcmlnaHQ6 IDRweDsNCiAgICB9DQoNCiAgICBbZGlyPSJydGwiXSAub2QtT3ZlclF1b3RhIC5vZC1PdmVy UXVvdGEtbWVzc2FnZSB7DQogICAgICBwYWRkaW5nLWxlZnQ6IDRweDsNCiAgICB9DQoNCiAg ICAub2QtT3ZlclF1b3RhIC5vZC1PdmVyUXVvdGEtbGluayB7DQogICAgICBjb2xvcjogIzAw NWE5ZTsNCiAgICAgIGZvbnQtc2l6ZTogMTJweDsNCiAgICAgIHdoaXRlLXNwYWNlOiBub3dy YXA7DQogICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7DQogICAgfQ0KDQogICAgLm9kLU92 ZXJRdW90YSAub2QtT3ZlclF1b3RhLWJ1dHRvbkFyZWEgew0KICAgICAgbWFyZ2luLXRvcDog MTZweDsNCiAgICAgIG1hcmdpbi1ib3R0b206IDhweDsNCiAgICB9DQoNCiAgICAub2QtT3Zl clF1b3RhIC5vZC1PdmVyUXVvdGEtYnV0dG9uQXJlYSAub2QtT3ZlclF1b3RhLXByaW1hcnlC dXR0b24gew0KICAgICAgaGVpZ2h0OiBhdXRvOw0KICAgICAgYmFja2dyb3VuZC1jb2xvcjog IzAwNzhkNDsNCiAgICAgIGJvcmRlcjogMDsNCiAgICAgIG1pbi13aWR0aDogMTYwcHg7DQog ICAgICB3aWR0aDogMTAwJTsNCiAgICB9DQoNCiAgICAub2QtT3ZlclF1b3RhIC5vZC1PdmVy UXVvdGEtYnV0dG9uQXJlYSAub2QtT3ZlclF1b3RhLXByaW1hcnlCdXR0b24gLm9kLUJ1dHRv bi1sYWJlbCB7DQogICAgICBjb2xvcjogI2ZmZmZmZjsNCiAgICB9DQoNCiAgICAuc20gLm9k LU92ZXJRdW90YSAub2QtT3ZlclF1b3RhLWJ1dHRvbkFyZWEgLm9kLU92ZXJRdW90YS1wcmlt YXJ5QnV0dG9uIHsNCiAgICAgIG1pbi13aWR0aDogMTQwcHg7DQogICAgICBwYWRkaW5nOiA0 cHggMTBweCA2cHg7DQogICAgfQ0KDQogICAgLm9kLU92ZXJRdW90YSAub2QtT3ZlclF1b3Rh LWJ1dHRvbkFyZWEgLm9kLU92ZXJRdW90YS1wcmltYXJ5QnV0dG9uOmZvY3VzLA0KICAgIC5v ZC1PdmVyUXVvdGEgLm9kLU92ZXJRdW90YS1idXR0b25BcmVhIC5vZC1PdmVyUXVvdGEtcHJp bWFyeUJ1dHRvbjpob3ZlciB7DQogICAgICBib3gtc2hhZG93OiBub25lOw0KICAgICAgYm9y ZGVyLWNvbG9yOiAjMDA1YTllOw0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwNWE5ZTsN CiAgICB9DQoNCiAgICAub2QtT3ZlclF1b3RhIC5vZC1PdmVyUXVvdGEtYnV0dG9uQXJlYSAu b2QtT3ZlclF1b3RhLXByaW1hcnlCdXR0b246Zm9jdXMgLm9kLUJ1dHRvbi1sYWJlbCwNCiAg ICAub2QtT3ZlclF1b3RhIC5vZC1PdmVyUXVvdGEtYnV0dG9uQXJlYSAub2QtT3ZlclF1b3Rh LXByaW1hcnlCdXR0b246aG92ZXIgLm9kLUJ1dHRvbi1sYWJlbCB7DQogICAgICBjb2xvcjog I2ZmZmZmZjsNCiAgICB9DQoNCiAgICAub2QtT3ZlclF1b3RhIC5vZC1PdmVyUXVvdGEtYnV0 dG9uQXJlYSAub2QtT3ZlclF1b3RhLXNlY29uZGFyeUJ1dHRvbiB7DQogICAgICBoZWlnaHQ6 IGF1dG87DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOw0KICAgICAgYm9yZGVy OiAwOw0KICAgICAgbWluLXdpZHRoOiAxNjBweDsNCiAgICAgIHdpZHRoOiAxMDAlOw0KICAg IH0NCg0KICAgIC5vZC1PdmVyUXVvdGEgLm9kLU92ZXJRdW90YS1idXR0b25BcmVhIC5vZC1P dmVyUXVvdGEtc2Vjb25kYXJ5QnV0dG9uIC5vZC1CdXR0b24tbGFiZWwgew0KICAgICAgY29s b3I6ICMwMDc4ZDQ7DQogICAgfQ0KDQogICAgLnNtIC5vZC1PdmVyUXVvdGEgLm9kLU92ZXJR dW90YS1idXR0b25BcmVhIC5vZC1PdmVyUXVvdGEtc2Vjb25kYXJ5QnV0dG9uIHsNCiAgICAg IG1pbi13aWR0aDogMTQwcHg7DQogICAgICBwYWRkaW5nOiA0cHggMTBweCA2cHg7DQogICAg fQ0KDQogICAgLm9kLU92ZXJRdW90YSAub2QtT3ZlclF1b3RhLWJ1dHRvbkFyZWEgLm9kLU92 ZXJRdW90YS1zZWNvbmRhcnlCdXR0b246Zm9jdXMsDQogICAgLm9kLU92ZXJRdW90YSAub2Qt T3ZlclF1b3RhLWJ1dHRvbkFyZWEgLm9kLU92ZXJRdW90YS1zZWNvbmRhcnlCdXR0b246aG92 ZXIgew0KICAgICAgYm94LXNoYWRvdzogbm9uZTsNCiAgICAgIGJvcmRlci1jb2xvcjogI2Rl ZWNmOTsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNkZWVjZjk7DQogICAgfQ0KDQogICAg Lm9kLU92ZXJRdW90YSAub2QtT3ZlclF1b3RhLWJ1dHRvbkFyZWEgLm9kLU92ZXJRdW90YS1z ZWNvbmRhcnlCdXR0b246Zm9jdXMgLm9kLUJ1dHRvbi1sYWJlbCwNCiAgICAub2QtT3ZlclF1 b3RhIC5vZC1PdmVyUXVvdGEtYnV0dG9uQXJlYSAub2QtT3ZlclF1b3RhLXNlY29uZGFyeUJ1 dHRvbjpob3ZlciAub2QtQnV0dG9uLWxhYmVsIHsNCiAgICAgIGNvbG9yOiAjMDA3OGQ0Ow0K ICAgIH0NCg0KICAgIC5vZC1PdmVyUXVvdGEgLm9kLU92ZXJRdW90YS1idXR0b25BcmVhIC5v ZC1CdXR0b24rLm9kLUJ1dHRvbiB7DQogICAgICBtYXJnaW4tdG9wOiAxMHB4Ow0KICAgICAg Ym9yZGVyLWNvbG9yOiAjMTA2ZWJlOw0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YwZjBm MDsNCiAgICB9DQoNCiAgICAub2QtT3ZlclF1b3RhIC5vZC1PdmVyUXVvdGEtYnV0dG9uQXJl YSAub2QtQnV0dG9uKy5vZC1CdXR0b24gLm9kLUJ1dHRvbi1sYWJlbCB7DQogICAgICBjb2xv cjogIzEwNmViZTsNCiAgICB9DQoNCiAgICAub2QtT3ZlclF1b3RhIC5vZC1PdmVyUXVvdGEt YnV0dG9uQXJlYSAub2QtQnV0dG9uKy5vZC1CdXR0b246aG92ZXIgew0KICAgICAgYmFja2dy b3VuZC1jb2xvcjogI2ViZWJlYjsNCiAgICAgIGJvcmRlci1jb2xvcjogIzAwNWE5ZTsNCiAg ICB9DQoNCiAgICAub2QtT3ZlclF1b3RhIC5vZC1PdmVyUXVvdGEtYnV0dG9uQXJlYSAub2Qt QnV0dG9uKy5vZC1CdXR0b246aG92ZXIgLm9kLUJ1dHRvbi1sYWJlbCB7DQogICAgICBjb2xv cjogIzAwNWE5ZTsNCiAgICB9DQoNCiAgICAub2QtT3ZlclF1b3RhIC5vZC1PdmVyUXVvdGEt YnV0dG9uQXJlYSAub2QtQnV0dG9uKy5vZC1CdXR0b246YWN0aXZlIHsNCiAgICAgIGJhY2tn cm91bmQtY29sb3I6ICNlMGUwZTA7DQogICAgICBib3JkZXItY29sb3I6ICMwMDQ1Nzg7DQog ICAgfQ0KDQogICAgLm9kLU92ZXJRdW90YSAub2QtT3ZlclF1b3RhLWJ1dHRvbkFyZWEgLm9k LUJ1dHRvbisub2QtQnV0dG9uOmFjdGl2ZSAub2QtQnV0dG9uLWxhYmVsIHsNCiAgICAgIGNv bG9yOiAjMDA0NTc4Ow0KICAgIH0NCg0KICAgIC5pc0ZsdWVudFZOZXh0IC5vZC1PdmVyUXVv dGEgLm9kLU92ZXJRdW90YS1idXR0b25BcmVhIC5vZC1CdXR0b24rLm9kLUJ1dHRvbiB7DQog ICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhOw0KICAgIH0NCg0KICAgIC5vZC1RdW90 YUJhci5vZC1RdW90YUJhci1vbiB7DQogICAgICBwYWRkaW5nOiA4cHggMTZweDsNCiAgICB9 DQoNCiAgICAub2QtUXVvdGFCYXItdG9wIHsNCiAgICAgIGRpc3BsYXk6IGZsZXg7DQogICAg ICBmbGV4LWRpcmVjdGlvbjogcm93Ow0KICAgICAgbWluLWhlaWdodDogMThweDsNCiAgICAg IG1hcmdpbi1ib3R0b206IDA7DQogICAgfQ0KDQogICAgLm9kLVF1b3RhQmFyLXRvcCAub2Qt UXVvdGFCYXItdGV4dCB7DQogICAgICBtYXJnaW4tdG9wOiAxMHB4Ow0KICAgIH0NCg0KICAg IC5pc0ZsdWVudFZOZXh0IC5vZC1RdW90YUJhci10b3AgLm9kLVF1b3RhQmFyLXRleHQgew0K ICAgICAgbWFyZ2luLXRvcDogNnB4Ow0KICAgIH0NCg0KICAgIC5vZC1RdW90YUJhci1ib3R0 b20gew0KICAgICAgZGlzcGxheTogZmxleDsNCiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1 bW47DQogICAgICBtaW4taGVpZ2h0OiAxOHB4Ow0KICAgICAgbWFyZ2luOiAwIDAgMTRweDsN CiAgICB9DQoNCiAgICAub2QtUXVvdGFCYXItYm90dG9tIC5vZC1RdW90YUJhci1wcmltYXJ5 TWVzc2FnZSB7DQogICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgZmxleC1kaXJlY3Rpb246 IGNvbHVtbjsNCiAgICB9DQoNCiAgICAub2QtUXVvdGFCYXItYm90dG9tIC5vZC1RdW90YUJh ci10ZXh0IHsNCiAgICAgIGRpc3BsYXk6IGZsZXg7DQogICAgfQ0KDQogICAgLm9kLVF1b3Rh QmFyLWJvdHRvbSAub2QtUXVvdGFCYXItZGV0YWlsZWRNZXNzYWdlIHsNCiAgICAgIGZvbnQt c2l6ZTogMTJweDsNCiAgICAgIG1hcmdpbi10b3A6IDEycHg7DQogICAgfQ0KDQogICAgLm9k LVF1b3RhQmFyLWJvdHRvbSAub2QtUXVvdGFCYXItdW5mcmVlemVCdXR0b24gew0KICAgICAg Zm9udC1zaXplOiAxMnB4Ow0KICAgIH0NCg0KICAgIC5vZC1RdW90YUJhci1ib3R0b20gLm9k LVF1b3RhQmFyLXVuZnJlZXplQnV0dG9uIC5vZC1RdW90YUJhci1saW5rIHsNCiAgICAgIGRp c3BsYXk6IGJsb2NrOw0KICAgICAgaGVpZ2h0OiAyNHB4Ow0KICAgICAgYm9yZGVyLXJhZGl1 czogMnB4Ow0KICAgICAgY29sb3I6ICNmZmZmZmY7DQogICAgICBiYWNrZ3JvdW5kOiAjMDA3 OGQ0Ow0KICAgICAgZm9udC13ZWlnaHQ6IDYwMDsNCiAgICAgIHRleHQtYWxpZ246IGNlbnRl cjsNCiAgICAgIGxpbmUtaGVpZ2h0OiAyNHB4Ow0KICAgICAgcGFkZGluZzogMDsNCiAgICAg IG1hcmdpbi10b3A6IDIwcHg7DQogICAgfQ0KDQogICAgLm9kLVF1b3RhQmFyLWJvdHRvbSAu b2QtUXVvdGFCYXItdW5mcmVlemVCdXR0b24gLm9kLVF1b3RhQmFyLWxpbmstcmVtb3ZlLWhv dmVyLXRleHQgew0KICAgICAgZGlzcGxheTogYmxvY2s7DQogICAgICBoZWlnaHQ6IDI0cHg7 DQogICAgICBib3JkZXItcmFkaXVzOiAycHg7DQogICAgICBjb2xvcjogI2ZmZmZmZjsNCiAg ICAgIGJhY2tncm91bmQ6ICMwMDc4ZDQ7DQogICAgICBmb250LXdlaWdodDogNjAwOw0KICAg ICAgdGV4dC1hbGlnbjogY2VudGVyOw0KICAgICAgbGluZS1oZWlnaHQ6IDI0cHg7DQogICAg ICBwYWRkaW5nOiAwOw0KICAgICAgbWFyZ2luLXRvcDogMjBweDsNCiAgICB9DQoNCiAgICAu b2QtUXVvdGFCYXItYm90dG9tIC5vZC1PdmVyUXVvdGEgew0KICAgICAgcGFkZGluZzogMDsN CiAgICAgIG1hcmdpbi10b3A6IDIwcHg7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhl cml0Ow0KICAgICAgbGluZS1oZWlnaHQ6IDE2cHg7DQogICAgfQ0KDQogICAgLm9kLVF1b3Rh QmFyLWJvdHRvbSAub2QtT3ZlclF1b3RhIC5vZC1PdmVyUXVvdGEtYnV0dG9uQXJlYSB7DQog ICAgICBtYXJnaW46IDA7DQogICAgfQ0KDQogICAgLm9kLVF1b3RhQmFyLWJvdHRvbSAub2Qt T3ZlclF1b3RhIC5vZC1PdmVyUXVvdGEtYnV0dG9uQXJlYSAub2QtQnV0dG9uIHsNCiAgICAg IHBhZGRpbmc6IDA7DQogICAgICBoZWlnaHQ6IDMycHg7DQogICAgICBtaW4td2lkdGg6IDEw MCU7DQogICAgfQ0KDQogICAgLm9kLVF1b3RhQmFyLWJvdHRvbSAub2QtT3ZlclF1b3RhIC5v ZC1PdmVyUXVvdGEtYnV0dG9uQXJlYSAub2QtT3ZlclF1b3RhLXNlY29uZGFyeUJ1dHRvbiB7 DQogICAgICBib3JkZXI6IDFweCBzb2xpZCAjMjQyNDI0Ow0KICAgIH0NCg0KICAgIC5vZC1R dW90YUJhci1ib3R0b20gLm9kLU92ZXJRdW90YSAub2QtT3ZlclF1b3RhLWxpbmsgew0KICAg ICAgbWFyZ2luLWJvdHRvbTogMjRweDsNCiAgICB9DQoNCiAgICAub2QtT3ZlclF1b3RhIHsN CiAgICAgIHBhZGRpbmc6IDA7DQogICAgICBtYXJnaW4tdG9wOiAyMHB4Ow0KICAgICAgYmFj a2dyb3VuZC1jb2xvcjogI2YzZjJmMTsNCiAgICAgIGxpbmUtaGVpZ2h0OiAxNnB4Ow0KICAg IH0NCg0KICAgIC5vZC1PdmVyUXVvdGEgLm9kLU92ZXJRdW90YS1idXR0b25BcmVhIHsNCiAg ICAgIG1hcmdpbjogMDsNCiAgICB9DQoNCiAgICAub2QtT3ZlclF1b3RhIC5vZC1PdmVyUXVv dGEtYnV0dG9uQXJlYSAub2QtQnV0dG9uIHsNCiAgICAgIHBhZGRpbmc6IDA7DQogICAgICBo ZWlnaHQ6IDMycHg7DQogICAgICBtaW4td2lkdGg6IDEwMCU7DQogICAgfQ0KDQogICAgLm9k LU92ZXJRdW90YSAub2QtT3ZlclF1b3RhLWJ1dHRvbkFyZWEgLm9kLU92ZXJRdW90YS1zZWNv bmRhcnlCdXR0b24gew0KICAgICAgYm9yZGVyOiAxcHggc29saWQgIzI0MjQyNDsNCiAgICB9 DQoNCiAgICAub2QtT3ZlclF1b3RhIC5vZC1PdmVyUXVvdGEtbGluayB7DQogICAgICBtYXJn aW4tYm90dG9tOiAyNHB4Ow0KICAgIH0NCg0KICAgIC5vZC1RdW90YUJhci10ZXh0IHsNCiAg ICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsNCiAgICAgIGNvbG9yOiAjNjE2MTYxOw0KICAg ICAgZm9udC1zaXplOiAxMnB4Ow0KICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaDsNCiAgICB9 DQoNCiAgICAub2QtUXVvdGFCYXItdGV4dCAub2QtUXVvdGFCYXItbGluazpob3ZlciB7DQog ICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsNCiAgICB9DQoNCiAgICAub2QtUXVv dGFCYXItdGV4dCAub2QtUXVvdGFCYXItbGluazpub3QoLm9kLVF1b3RhQmFyLWxpbmtSZWQp IHsNCiAgICAgIGNvbG9yOiAjMTA2ZWJlOw0KICAgIH0NCg0KICAgIC5vZC1RdW90YUJhci10 ZXh0IC5vZC1RdW90YUJhci1saW5rOm5vdCgub2QtUXVvdGFCYXItbGlua1JlZCk6aG92ZXIg ew0KICAgICAgY29sb3I6ICMwMDVhOWU7DQogICAgfQ0KDQogICAgLm9kLVF1b3RhQmFyLXRl eHQgLm9kLVF1b3RhQmFyLWxpbmsub2QtUXVvdGFCYXItbGlua1JlZCB7DQogICAgICBjb2xv cjogI2E0MjYyYzsNCiAgICAgIG1hcmdpbi10b3A6IDRweDsNCiAgICAgIGZvbnQtc2l6ZTog MTJweDsNCiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7DQogICAgfQ0KDQogICAgLm9kLVF1b3Rh QmFyLXRleHQgLm9kLVF1b3RhQmFyLWxpbmstcmVtb3ZlLWhvdmVyLXRleHQgew0KICAgICAg dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7DQogICAgfQ0KDQogICAgLm9kLVF1b3RhQmFy LXRleHQgLm9kLVF1b3RhQmFyLWxpbmstcmVtb3ZlLWhvdmVyLXRleHQ6bm90KC5vZC1RdW90 YUJhci1saW5rUmVkKSB7DQogICAgICBjb2xvcjogIzEwNmViZTsNCiAgICB9DQoNCiAgICAu b2QtUXVvdGFCYXItdGV4dCAub2QtUXVvdGFCYXItbGluay1yZW1vdmUtaG92ZXItdGV4dDpu b3QoLm9kLVF1b3RhQmFyLWxpbmtSZWQpOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjMDA1YTll Ow0KICAgIH0NCg0KICAgIC5vZC1RdW90YUJhci10ZXh0IC5vZC1RdW90YUJhci1saW5rLXJl bW92ZS1ob3Zlci10ZXh0Lm9kLVF1b3RhQmFyLWxpbmtSZWQgew0KICAgICAgY29sb3I6ICNh NDI2MmM7DQogICAgICBtYXJnaW4tdG9wOiA0cHg7DQogICAgICBmb250LXNpemU6IDEycHg7 DQogICAgICBmb250LXdlaWdodDogNDAwOw0KICAgIH0NCg0KICAgIC5vZC1RdW90YUJhci1m dWxsIC5vZC1RdW90YUJhci10ZXh0IHsNCiAgICAgIGNvbG9yOiAjNjE2MTYxOw0KICAgIH0N Cg0KICAgIC5vZC1RdW90YUJhci1mdWxsIC5vZC1RdW90YUJhci10ZXh0IC5vZC1RdW90YUJh ci1tZXNzYWdlLXVzcSB7DQogICAgICBmb250LXNpemU6IDE0cHg7DQogICAgICBjb2xvcjog IzAwMDAwMDsNCiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7DQogICAgfQ0KDQogICAgLm9kLVF1 b3RhQmFyLWZ1bGwgLm9kLVF1b3RhQmFyLXVzZWQgew0KICAgICAgYm9yZGVyLXRvcDogMnB4 IHNvbGlkICNhNDI2MmM7DQogICAgfQ0KDQogICAgLm9kLVF1b3RhQmFyLWZ1bGwtLXNtYWxs RGlhbG9nIC5vZC1RdW90YUJhci1ib3R0b20gLm9kLVF1b3RhQmFyLXByaW1hcnlNZXNzYWdl IHsNCiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7DQogICAgfQ0KDQogICAgLm9kLVF1b3Rh QmFyLW5lYXJpbmdPckNyaXRpY2FsIC5vZC1RdW90YUJhci10ZXh0IHsNCiAgICAgIGNvbG9y OiAjYTQyNjJjOw0KICAgIH0NCg0KICAgIC5vZC1RdW90YUJhci1uZWFyaW5nT3JDcml0aWNh bCAub2QtUXVvdGFCYXItdXNlZCB7DQogICAgICBib3JkZXItdG9wOiAycHggc29saWQgI2E0 MjYyYzsNCiAgICB9DQoNCiAgICAub2QtUXVvdGFCYXItbWVzc2FnZS11c3Egew0KICAgICAg Zm9udC1zaXplOiAxNHB4Ow0KICAgICAgY29sb3I6ICMwMDAwMDA7DQogICAgICBmb250LXdl aWdodDogNjAwOw0KICAgIH0NCg0KICAgIC5vZC1RdW90YUJhci1iYXIgew0KICAgICAgbWFy Z2luLXRvcDogNHB4Ow0KICAgICAgcG9zaXRpb246IHJlbGF0aXZlOw0KICAgIH0NCg0KICAg IC5vZC1RdW90YUJhci10b3RhbCB7DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAg ICB3aWR0aDogMTAwJTsNCiAgICAgIGJvcmRlcjogbm9uZTsNCiAgICAgIGJvcmRlci10b3A6 IDJweCBzb2xpZCAjZTBlMGUwOw0KICAgIH0NCg0KICAgIC5vZC1RdW90YUJhci11c2VkIHsN CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgIGJvcmRlcjogbm9uZTsNCiAgICAg IGJvcmRlci10b3A6IDJweCBzb2xpZCAjMTA2ZWJlOw0KICAgICAgbWluLXdpZHRoOiAycHg7 DQogICAgfQ0KDQogICAgLm9kLVF1b3RhQmFyLWxpbmtSZWQgew0KICAgICAgY29sb3I6ICNh NDI2MmM7DQogICAgICBtYXJnaW4tdG9wOiA0cHg7DQogICAgICBmb250LXNpemU6IDEycHg7 DQogICAgICBmb250LXdlaWdodDogNDAwOw0KICAgIH0NCg0KICAgIC5vZC1RdW90YUJhci1o aWdoT3JPdmVyUXVvdGEub2QtUXVvdGFCYXItbmVhcmluZ0FuZEFib3ZlIC5vZC1RdW90YUJh ci1tZXNzYWdlLXVzcSB7DQogICAgICBmb250LXNpemU6IDE0cHg7DQogICAgICBjb2xvcjog IzAwMDAwMDsNCiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7DQogICAgfQ0KDQogICAgLm9kLVF1 b3RhQmFyLWhpZ2hPck92ZXJRdW90YS5vZC1RdW90YUJhci1uZWFyaW5nQW5kQWJvdmUgLm9k LVF1b3RhQmFyLWxpbmsgew0KICAgICAgY29sb3I6ICM5ZjI4MmI7DQogICAgfQ0KDQogICAg Lm9kLVF1b3RhQmFyLWhpZ2hPck92ZXJRdW90YS5vZC1RdW90YUJhci1uZWFyaW5nQW5kQWJv dmUgLm9kLVF1b3RhQmFyLXVzZWQgew0KICAgICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICM5 ZjI4MmI7DQogICAgfQ0KDQogICAgLm9kLVF1b3RhQmFyLWhpZ2hPck92ZXJRdW90YS5vZC1R dW90YUJhci1uZWFyaW5nQW5kQWJvdmUgLm9kLU92ZXJRdW90YS11cGdyYWRlQnV0dG9uIHsN CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM5ZjI4MmI7DQogICAgfQ0KDQogICAgLm9kLVF1 b3RhQmFyLWhpZ2hPck92ZXJRdW90YS5vZC1RdW90YUJhci1uZWFyaW5nQW5kQWJvdmUgLm9k LU92ZXJRdW90YS11cGdyYWRlQnV0dG9uOmhvdmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29s b3I6ICM3NTFkMWY7DQogICAgfQ0KDQogICAgLm9kLVF1b3RhQmFyLWhpZ2hPck92ZXJRdW90 YS5vZC1RdW90YUJhci1uZWFyaW5nQW5kQWJvdmUgLm9kLU92ZXJRdW90YS11cGdyYWRlQnV0 dG9uOmFjdGl2ZSB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2YxMDExOw0KICAgIH0N Cg0KICAgIC5vZC1RdW90YUJhci1oaWdoT3JPdmVyUXVvdGEub2QtUXVvdGFCYXItbmVhcmlu Z0FuZEFib3ZlIC5vZC1PdmVyUXVvdGEtbWFuYWdlU3RvcmFnZUxpbmsgew0KICAgICAgZm9u dC1zaXplOiAxNHB4Ow0KICAgICAgY29sb3I6ICMxMDZlYmU7DQogICAgICB0ZXh0LWFsaWdu OiBjZW50ZXI7DQogICAgICBkaXNwbGF5OiBibG9jazsNCiAgICAgIG1hcmdpbjogOHB4IGF1 dG8gMDsNCiAgICB9DQoNCiAgICAuR2V0TW9yZVN0b3JhZ2VQcmltYXJ5QnV0dG9uX2I1OGU0 ODNlIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNkODNiMDE7DQogICAgICBib3JkZXI6 ICJub25lIjsNCiAgICAgIGNvbG9yOiAjZmZmZmZmOw0KICAgICAgd2lkdGg6ICJhdXRvIjsN CiAgICB9DQoNCiAgICAuR2V0TW9yZVN0b3JhZ2VQcmltYXJ5QnV0dG9uX2I1OGU0ODNlOmhv dmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNkODNiMDE7DQogICAgICBjb2xvcjog I2ZmZmZmZjsNCiAgICAgIGN1cnNvcjogcG9pbnRlcjsNCiAgICB9DQoNCiAgICAuR2V0TW9y ZVN0b3JhZ2VQcmltYXJ5QnV0dG9uVjJfYjU4ZTQ4M2Ugew0KICAgICAgYmFja2dyb3VuZC1j b2xvcjogI2Q4M2IwMTsNCiAgICAgIGJvcmRlcjogIm5vbmUiOw0KICAgICAgY29sb3I6ICNm ZmZmZmYgIWltcG9ydGFudDsNCiAgICAgIHdpZHRoOiAiYXV0byI7DQogICAgfQ0KDQogICAg LkdldE1vcmVTdG9yYWdlUHJpbWFyeUJ1dHRvblYyX2I1OGU0ODNlOmhvdmVyIHsNCiAgICAg IGN1cnNvcjogcG9pbnRlcjsNCiAgICB9DQoNCiAgICAuaXNGbHVlbnRWTmV4dCAubXMtTmF2 LWNvbXBvc2l0ZUxpbmsuaXMtc2VsZWN0ZWQgLm1zLU5hdi1saW5rIC5tcy1CdXR0b24tZmxl eENvbnRhaW5lcjo6YmVmb3JlIHsNCiAgICAgIGNvbnRlbnQ6ICIiOw0KICAgICAgcG9zaXRp b246IGFic29sdXRlOw0KICAgICAgd2lkdGg6IDJweDsNCiAgICAgIGhlaWdodDogMjhweDsN CiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMx MDZlYmU7DQogICAgfQ0KDQogICAgLmljb25XcmFwcGVyX2Y4ODFjY2E0IHsNCiAgICAgIHBh ZGRpbmctdG9wOiAzcHg7DQogICAgICB3aWR0aDogMTZweDsNCiAgICAgIGZvbnQtc2l6ZTog MTZweDsNCiAgICB9DQoNCiAgICBbZGlyPSJsdHIiXSAuaWNvbldyYXBwZXJfZjg4MWNjYTQg ew0KICAgICAgbWFyZ2luLXJpZ2h0OiAxNnB4Ow0KICAgIH0NCg0KICAgIFtkaXI9InJ0bCJd IC5pY29uV3JhcHBlcl9mODgxY2NhNCB7DQogICAgICBtYXJnaW4tbGVmdDogMTZweDsNCiAg ICB9DQoNCiAgICBbZGlyPSJsdHIiXSAuaXNGbHVlbnRWTmV4dCAuaWNvbldyYXBwZXJfZjg4 MWNjYTQgew0KICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4Ow0KICAgIH0NCg0KICAgIFtkaXI9 InJ0bCJdIC5pc0ZsdWVudFZOZXh0IC5pY29uV3JhcHBlcl9mODgxY2NhNCB7DQogICAgICBt YXJnaW4tbGVmdDogMTBweDsNCiAgICB9DQoNCiAgICBbZGlyPSJsdHIiXSAuaXNGbHVlbnRW TmV4dCAuaWNvbldyYXBwZXJfZjg4MWNjYTQgew0KICAgICAgbWFyZ2luLWxlZnQ6IDEycHg7 DQogICAgfQ0KDQogICAgW2Rpcj0icnRsIl0gLmlzRmx1ZW50Vk5leHQgLmljb25XcmFwcGVy X2Y4ODFjY2E0IHsNCiAgICAgIG1hcmdpbi1yaWdodDogMTJweDsNCiAgICB9DQoNCiAgICAu aXNGbHVlbnRWTmV4dCAuaWNvbldyYXBwZXJfZjg4MWNjYTQgaSB7DQogICAgICBjb2xvcjog IzQyNDI0MjsNCiAgICB9DQoNCiAgICBAbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29u dHJhc3Q6IGFjdGl2ZSksDQogICAgc2NyZWVuIGFuZCAoZm9yY2VkLWNvbG9yczogYWN0aXZl KSB7DQogICAgICAuaXNGbHVlbnRWTmV4dCAuaWNvbldyYXBwZXJfZjg4MWNjYTQgaSB7DQog ICAgICAgIGNvbG9yOiBCdXR0b25UZXh0Ow0KICAgICAgfQ0KICAgIH0NCg0KICAgIC5ncm91 cEhlYWRlcl9kM2ZiNGI2MCB7DQogICAgICBoZWlnaHQ6IDM2cHg7DQogICAgICBsaW5lLWhl aWdodDogMzJweDsNCiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOw0KICAgICAgb3Zl cmZsb3c6IGhpZGRlbjsNCiAgICAgIGZvbnQtc2l6ZTogMTRweDsNCiAgICAgIHBhZGRpbmc6 IDAgMTZweCAwIDE2cHg7DQogICAgICBjb2xvcjogIzI0MjQyNDsNCiAgICAgIGZvbnQtd2Vp Z2h0OiA2MDA7DQogICAgfQ0KDQogICAgaHRtbFtkaXI9InJ0bCJdIC5ncm91cEhlYWRlcl9k M2ZiNGI2MCB7DQogICAgICBwYWRkaW5nOiAwIDE2cHggMCAxNnB4Ow0KICAgIH0NCg0KICAg IC5pc0ZsdWVudFZOZXh0IC5ncm91cEhlYWRlcl9kM2ZiNGI2MCB7DQogICAgICBtYXJnaW4t Ym90dG9tOiA0cHg7DQogICAgfQ0KICA8L3N0eWxlPg0KICA8c2NyaXB0IGNoYXJzZXQ9InV0 Zi04Ig0KICAgIHNyYz0iaHR0cHM6Ly9yZXMtMS5jZG4ub2ZmaWNlLm5ldC9maWxlcy9vZHNw LXdlYi1wcm9kXzIwMjMtMTAtMjAuMDA1L29kY2xpZ2h0c3BlZWR3ZWJwYWNrLm1hbmlmZXN0 LzgxMy5qcyINCiAgICBjcm9zc29yaWdpbj0iYW5vbnltb3VzIj48L3NjcmlwdD4NCiAgPHNj cmlwdCBpZD0iU3VpdGVOYXZTaGVsbENvcmUiDQogICAgc3JjPSJodHRwczovL3NoZWxscHJv ZC5tc29jZG4uY29tL2FwaS9zaGVsbGJvb3RzdHJhcHBlci9jb25zdW1lci9vbmVzaGVsbD9u b2V4dCI+PC9zY3JpcHQ+DQogIDxzY3JpcHQgY2hhcnNldD0idXRmLTgiDQogICAgc3JjPSJo dHRwczovL3Jlcy0xLmNkbi5vZmZpY2UubmV0L2ZpbGVzL29kc3Atd2ViLXByb2RfMjAyMy0x MC0yMC4wMDUvb2RjbGlnaHRzcGVlZHdlYnBhY2subWFuaWZlc3QvMTkzLmpzIg0KICAgIGNy b3Nzb3JpZ2luPSJhbm9ueW1vdXMiPjwvc2NyaXB0Pg0KICA8c3R5bGUgZGF0YS1sb2FkLXRo ZW1lZC1zdHlsZXM9InRydWUiPg0KICAgIC5maWVsZF9jYjllMWUyNCB7DQogICAgICBkaXNw bGF5OiBpbmxpbmUtYmxvY2s7DQogICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94Ow0KICAg ICAgbWF4LXdpZHRoOiAxMDAlOw0KICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsNCiAgICAg IHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOw0KICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsNCiAg ICB9DQoNCiAgICAuZmllbGRfY2I5ZTFlMjQuYmxvY2tfY2I5ZTFlMjQgew0KICAgICAgZGlz cGxheTogYmxvY2s7DQogICAgfQ0KDQogICAgLnBhdGhTZWN0aW9uX2NiOWUxZTI0IHsNCiAg ICAgIGRpc3BsYXk6IGlubGluZTsNCiAgICAgIGNvbG9yOiAjNjE2MTYxOw0KICAgIH0NCg0K ICAgIEBtZWRpYSBzY3JlZW4gYW5kICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSwNCiAg ICBzY3JlZW4gYW5kIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpIHsNCiAgICAgIC5wYXRoU2Vj dGlvbl9jYjllMWUyNCB7DQogICAgICAgIGNvbG9yOiBXaW5kb3dUZXh0Ow0KICAgICAgfQ0K ICAgIH0NCg0KICAgIEBtZWRpYSBzY3JlZW4gYW5kICgtbXMtaGlnaC1jb250cmFzdDogYWN0 aXZlKSwNCiAgICBzY3JlZW4gYW5kIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpIHsNCiAgICAg IC5tcy1EZXRhaWxzUm93LmlzLXNlbGVjdGVkIC5tcy1EZXRhaWxzUm93LWNlbGwgLnBhdGhT ZWN0aW9uX2NiOWUxZTI0IHsNCiAgICAgICAgY29sb3I6IEhpZ2hsaWdodFRleHQ7DQogICAg ICB9DQogICAgfQ0KDQogICAgLmNoZXZyb25fY2I5ZTFlMjQgew0KICAgICAgZm9udC1zaXpl OiAxMnB4Ow0KICAgICAgbWFyZ2luOiAzcHggMXB4Ow0KICAgICAgdHJhbnNmb3JtOiBzY2Fs ZSgwLjUpOw0KICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsNCiAgICAgIGNvbG9yOiAj NjE2MTYxOw0KICAgIH0NCg0KICAgIEBtZWRpYSBzY3JlZW4gYW5kICgtbXMtaGlnaC1jb250 cmFzdDogYWN0aXZlKSwNCiAgICBzY3JlZW4gYW5kIChmb3JjZWQtY29sb3JzOiBhY3RpdmUp IHsNCiAgICAgIC5jaGV2cm9uX2NiOWUxZTI0IHsNCiAgICAgICAgY29sb3I6IFdpbmRvd1Rl eHQ7DQogICAgICB9DQogICAgfQ0KDQogICAgQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdo LWNvbnRyYXN0OiBhY3RpdmUpLA0KICAgIHNjcmVlbiBhbmQgKGZvcmNlZC1jb2xvcnM6IGFj dGl2ZSkgew0KICAgICAgLm1zLURldGFpbHNSb3cuaXMtc2VsZWN0ZWQgLm1zLURldGFpbHNS b3ctY2VsbCAuY2hldnJvbl9jYjllMWUyNCB7DQogICAgICAgIGNvbG9yOiBIaWdobGlnaHRU ZXh0Ow0KICAgICAgfQ0KICAgIH0NCiAgPC9zdHlsZT4NCiAgPHN0eWxlIGRhdGEtbG9hZC10 aGVtZWQtc3R5bGVzPSJ0cnVlIj4NCiAgICAudG9wQ29sbGFQbGFjZUhvbGRlcl83ZWI4Yzc1 YiB7DQogICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgbWluLXdpZHRoOiAxM3B4Ow0KICAg ICAgaGVpZ2h0OiAyMXB4Ow0KICAgIH0NCg0KICAgIFtkaXI9Imx0ciJdIC50b3BDb2xsYVBs YWNlSG9sZGVyXzdlYjhjNzViIHsNCiAgICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7DQogICAg fQ0KDQogICAgW2Rpcj0icnRsIl0gLnRvcENvbGxhUGxhY2VIb2xkZXJfN2ViOGM3NWIgew0K ICAgICAgcGFkZGluZy1sZWZ0OiAxMHB4Ow0KICAgIH0NCg0KICAgIC50b3BDb2xsYWJvcmF0 b3JJY29uXzdlYjhjNzViIHsNCiAgICAgIGNvbG9yOiAjMDA3OGQ0Ow0KICAgICAgZm9udC1z aXplOiAxM3B4Ow0KICAgICAgbGluZS1oZWlnaHQ6IDIxcHg7DQogICAgICB0ZXh0LWFsaWdu OiBjZW50ZXI7DQogICAgfQ0KDQogICAgLnRvcENvbGxhYm9yYXRvclVzZXJOYW1lXzdlYjhj NzViIHsNCiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7DQogICAgfQ0KDQogICAgLnRvcENvbGxh Ym9yYXRvclRvb2x0aXBfN2ViOGM3NWIgew0KICAgICAgcGFkZGluZzogMCAycHg7DQogICAg fQ0KDQogICAgLnVzZXJXaXRoVG9wQ29sbGFib3JhdG9yXzdlYjhjNzViIHsNCiAgICAgIGRp c3BsYXk6IGZsZXg7DQogICAgfQ0KDQogICAgLnVzZXJXaXRoVG9wQ29sbGFib3JhdG9yXzdl YjhjNzViIC50b3BDb2xsYVBsYWNlSG9sZGVyXzdlYjhjNzViIHsNCiAgICAgIG1pbi13aWR0 aDogMTNweDsNCiAgICB9DQoNCiAgICBbZGlyPSJsdHIiXSAudXNlcldpdGhUb3BDb2xsYWJv cmF0b3JfN2ViOGM3NWIgLnRvcENvbGxhUGxhY2VIb2xkZXJfN2ViOGM3NWIgew0KICAgICAg cGFkZGluZy1yaWdodDogN3B4Ow0KICAgIH0NCg0KICAgIFtkaXI9InJ0bCJdIC51c2VyV2l0 aFRvcENvbGxhYm9yYXRvcl83ZWI4Yzc1YiAudG9wQ29sbGFQbGFjZUhvbGRlcl83ZWI4Yzc1 YiB7DQogICAgICBwYWRkaW5nLWxlZnQ6IDdweDsNCiAgICB9DQoNCiAgICBbZGlyPSJsdHIi XSAuY29sdW1uSGVhZGVyXzdlYjhjNzViIHsNCiAgICAgIG1hcmdpbi1sZWZ0OiAyMHB4Ow0K ICAgIH0NCg0KICAgIFtkaXI9InJ0bCJdIC5jb2x1bW5IZWFkZXJfN2ViOGM3NWIgew0KICAg ICAgbWFyZ2luLXJpZ2h0OiAyMHB4Ow0KICAgIH0NCiAgPC9zdHlsZT4NCiAgPHN0eWxlIGRh dGEtbG9hZC10aGVtZWQtc3R5bGVzPSJ0cnVlIj4NCiAgICAub2QtdW5hdXRoZW50aWNhdGVk QmFubmVyIHsNCiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgIHRvcDogMDsNCiAg ICAgIGxlZnQ6IDA7DQogICAgICByaWdodDogMDsNCiAgICAgIGJvdHRvbTogMDsNCiAgICAg IGJhY2tncm91bmQtY29sb3I6ICMwMDc4ZDQ7DQogICAgfQ0KDQogICAgLm9kLXVuYXV0aGVu dGljYXRlZEJhbm5lci1PbmVEcml2ZSB7DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQog ICAgICB0b3A6IDA7DQogICAgICBib3R0b206IDA7DQogICAgICBib3JkZXI6IG5vbmU7DQog ICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3OGQ0Ow0KICAgICAgbGluZS1oZWlnaHQ6IDQ4 cHg7DQogICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7DQogICAgICBmb250LXdlaWdodDog MzAwOw0KICAgICAgZm9udC1zaXplOiAxNHB4Ow0KICAgICAgY29sb3I6ICNmZmZmZmY7DQog ICAgICBmb250LXNpemU6IDIycHg7DQogICAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBh bnRpYWxpYXNlZDsNCiAgICAgIGN1cnNvcjogcG9pbnRlcjsNCiAgICB9DQoNCiAgICBodG1s W2Rpcj0ibHRyIl0gLm9kLXVuYXV0aGVudGljYXRlZEJhbm5lci1PbmVEcml2ZSB7DQogICAg ICBsZWZ0OiAxMHB4Ow0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJydGwiXSAub2QtdW5hdXRo ZW50aWNhdGVkQmFubmVyLU9uZURyaXZlIHsNCiAgICAgIHJpZ2h0OiAxMHB4Ow0KICAgIH0N Cg0KICAgIC5vZC11bmF1dGhlbnRpY2F0ZWRCYW5uZXItQWNjb3VudEJveCB7DQogICAgICBw b3NpdGlvbjogZml4ZWQ7DQogICAgICB0b3A6IDA7DQogICAgICByaWdodDogMDsNCiAgICAg IC8qIFBvc2l0aW9uIGl0IG9uIHRoZSByaWdodCBzaWRlIG9mIHRoZSBwYWdlICovDQogICAg ICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3OGQ0Ow0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJs dHIiXSAub2QtdW5hdXRoZW50aWNhdGVkQmFubmVyLUFjY291bnRCb3ggew0KICAgICAgcmln aHQ6IDA7DQogICAgfQ0KDQogICAgaHRtbFtkaXI9InJ0bCJdIC5vZC11bmF1dGhlbnRpY2F0 ZWRCYW5uZXItQWNjb3VudEJveCB7DQogICAgICBsZWZ0OiAwOw0KICAgIH0NCg0KICAgIGh0 bWxbZGlyPSJsdHIiXSAub2QtdW5hdXRoZW50aWNhdGVkQmFubmVyLUFjY291bnRCb3ggew0K ICAgICAgcGFkZGluZy1yaWdodDogOHB4Ow0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJydGwi XSAub2QtdW5hdXRoZW50aWNhdGVkQmFubmVyLUFjY291bnRCb3ggew0KICAgICAgcGFkZGlu Zy1sZWZ0OiA4cHg7DQogICAgfQ0KDQogICAgLm9kLXVuYXV0aGVudGljYXRlZEJhbm5lci1i dXR0b24gew0KICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOw0KICAgICAgcGFkZGluZzog NnB4Ow0KICAgICAgZm9udC13ZWlnaHQ6IDYwMDsNCiAgICAgIGZvbnQtc2l6ZTogMTRweDsN CiAgICAgIGJvcmRlcjogbm9uZTsNCiAgICAgIG1hcmdpbjogOHB4Ow0KICAgICAgcGFkZGlu Zy1sZWZ0OiAxNnB4Ow0KICAgICAgcGFkZGluZy1yaWdodDogMTZweDsNCiAgICAgIGN1cnNv cjogcG9pbnRlcjsNCiAgICB9DQoNCiAgICAub2QtdW5hdXRoZW50aWNhdGVkQmFubmVyLVNp Z25JbiB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3OGQ0Ow0KICAgICAgYm9yZGVy OiAxcHggc29saWQgI2ZmZmZmZjsNCiAgICAgIGNvbG9yOiAjZmZmZmZmOw0KICAgICAgcGFk ZGluZy1ib3R0b206IDZweDsNCiAgICAgIHBhZGRpbmctdG9wOiA2cHg7DQogICAgfQ0KDQog ICAgLm9kLXVuYXV0aGVudGljYXRlZEJhbm5lci1TaWduSW46aG92ZXIgew0KICAgICAgYmFj a2dyb3VuZC1jb2xvcjogIzJiODhkODsNCiAgICB9DQoNCiAgICAub2QtdW5hdXRoZW50aWNh dGVkQmFubmVyLVNpZ25VcCB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOw0K ICAgICAgY29sb3I6ICMwMDc4ZDQ7DQogICAgICBwYWRkaW5nLWJvdHRvbTogN3B4Ow0KICAg ICAgcGFkZGluZy10b3A6IDdweDsNCiAgICAgIGRpc3BsYXk6IG5vbmU7DQogICAgfQ0KDQog ICAgLm9kLXVuYXV0aGVudGljYXRlZEJhbm5lci1TaWduVXA6aG92ZXIgew0KICAgICAgYmFj a2dyb3VuZC1jb2xvcjogI2YwZjBmMDsNCiAgICB9DQoNCiAgICAubGcgLm9kLXVuYXV0aGVu dGljYXRlZEJhbm5lci1TaWduVXAsDQogICAgLm1kIC5vZC11bmF1dGhlbnRpY2F0ZWRCYW5u ZXItU2lnblVwLA0KICAgIC54bGcgLm9kLXVuYXV0aGVudGljYXRlZEJhbm5lci1TaWduVXAs DQogICAgLnh4bGcgLm9kLXVuYXV0aGVudGljYXRlZEJhbm5lci1TaWduVXAsDQogICAgLnh4 eGxnIC5vZC11bmF1dGhlbnRpY2F0ZWRCYW5uZXItU2lnblVwLA0KICAgIC54eHh4bGcgLm9k LXVuYXV0aGVudGljYXRlZEJhbm5lci1TaWduVXAgew0KICAgICAgZGlzcGxheTogaW5saW5l Ow0KICAgIH0NCiAgPC9zdHlsZT4NCiAgPHN0eWxlIGRhdGEtbG9hZC10aGVtZWQtc3R5bGVz PSJ0cnVlIj4NCiAgICAub2QtU2lnbkluRGlhbG9nLW1vZGFsIHsNCiAgICAgIHRvcDogMDsN CiAgICAgIGJvdHRvbTogMDsNCiAgICAgIHJpZ2h0OiAwOw0KICAgICAgbGVmdDogMDsNCiAg ICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgIGRpc3BsYXk6IGZsZXg7DQogICAgfQ0K DQogICAgLnNtIC5vZC1TaWduSW5EaWFsb2ctbW9kYWwgew0KICAgICAgZGlzcGxheTogbm9u ZTsNCiAgICB9DQoNCiAgICAub2QtU2lnbkluRGlhbG9nLW1vZGFsIC5tcy1Nb2RhbE92ZXJs YXkgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg1MSwgNTEsIDUxLCAwLjgpOw0K ICAgIH0NCg0KICAgIC5vZC1TaWduSW5EaWFsb2dNU0FWYXIgew0KICAgICAgd2lkdGg6IDQx MHB4Ow0KICAgICAgaGVpZ2h0OiAzMTVweDsNCiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsN CiAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjsNCiAgICAgIG1hcmdpbjogYXV0bzsNCiAgICAg IG91dGxpbmU6IDA7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOw0KICAgIH0N Cg0KICAgIC5vZC1TaWduSW5EaWFsb2dNU0FWYXItaGVhZGVyIHsNCiAgICAgIGhlaWdodDog NjVweDsNCiAgICAgIHBhZGRpbmctdG9wOiAyMnB4Ow0KICAgICAgYm94LXNpemluZzogYm9y ZGVyLWJveDsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0ibHRyIl0gLm9kLVNpZ25JbkRpYWxv Z01TQVZhci1oZWFkZXIgew0KICAgICAgcGFkZGluZy1sZWZ0OiAzMnB4Ow0KICAgIH0NCg0K ICAgIGh0bWxbZGlyPSJydGwiXSAub2QtU2lnbkluRGlhbG9nTVNBVmFyLWhlYWRlciB7DQog ICAgICBwYWRkaW5nLXJpZ2h0OiAzMnB4Ow0KICAgIH0NCg0KICAgIC5vZC1TaWduSW5EaWFs b2dNU0FWYXItaGVhZGVyIGltZyB7DQogICAgICBoZWlnaHQ6IDQxcHg7DQogICAgICBkaXNw bGF5OiBpbmxpbmUtYmxvY2s7DQogICAgICBtYXJnaW46IDA7DQogICAgfQ0KDQogICAgLm9k LVNpZ25JbkRpYWxvZ01TQVZhci1jb250ZW50IHsNCiAgICAgIHBhZGRpbmc6IDVweCAzNnB4 Ow0KICAgICAgaGVpZ2h0OiAxMzVweDsNCiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1y ZXBlYXQ7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOw0KICAgIH0NCg0KICAg IC5vZC1TaWduSW5EaWFsb2dNU0FWYXItdXBzZWxsIHsNCiAgICAgIGZvbnQtc2l6ZTogMjFw eDsNCiAgICAgIGNvbG9yOiAjMjQyNDI0Ow0KICAgIH0NCg0KICAgIC5vZC1TaWduSW5EaWFs b2dNU0FWYXItdXNlTVNBIHsNCiAgICAgIGZvbnQtc2l6ZTogMTVweDsNCiAgICAgIG1hcmdp bjogMTZweCAwOw0KICAgIH0NCg0KICAgIC5vZC1TaWduSW5EaWFsb2dNU0FWYXItdXNlTVNB IGEgew0KICAgICAgY29sb3I6ICMxMDZlYmU7DQogICAgfQ0KDQogICAgLm9kLVNpZ25JbkRp YWxvZ01TQVZhci11c2VNU0EgYTpob3ZlciB7DQogICAgICBjb2xvcjogIzYxNjE2MTsNCiAg ICB9DQoNCiAgICAub2QtU2lnbkluRGlhbG9nTVNBVmFyLW5leHQgew0KICAgICAgbWFyZ2lu OiBhdXRvOw0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzEwNmViZTsNCiAgICAgIGhlaWdo dDogMzRweDsNCiAgICAgIHdpZHRoOiAzNDJweDsNCiAgICAgIGNvbG9yOiAjZmZmZmZmOw0K ICAgICAgZm9udC13ZWlnaHQ6IDMwMDsNCiAgICAgIGZvbnQtc2l6ZTogMTVweDsNCiAgICAg IGJvcmRlcjogMnB4Ow0KICAgICAgYm9yZGVyLWNvbG9yOiAjZmZmZmZmOw0KICAgIH0NCg0K ICAgIC5vZC1TaWduSW5EaWFsb2dNU0FWYXItbmV4dDpmb2N1cyB7DQogICAgICBib3JkZXIt Y29sb3I6ICNlZmY2ZmM7DQogICAgfQ0KDQogICAgLm9kLVNpZ25JbkRpYWxvZ01TQVZhci1u ZXh0OmhvdmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyYjg4ZDg7DQogICAgfQ0K DQogICAgLm9kLVNpZ25JbkRpYWxvZ01TQVZhci1pbnB1dCB7DQogICAgICBoZWlnaHQ6IDM0 cHg7DQogICAgICB3aWR0aDogMzQycHg7DQogICAgICBtYXJnaW4tYm90dG9tOiAxMnB4Ow0K ICAgICAgZm9udC1zaXplOiAxNXB4Ow0KICAgICAgcGFkZGluZzogMCA0cHg7DQogICAgICBi b3gtc2l6aW5nOiBib3JkZXItYm94Ow0KICAgIH0NCg0KICAgIC5vZC1TaWduSW5EaWFsb2dN U0FWYXItY3JlYXRlTVNBIHsNCiAgICAgIGZvbnQtc2l6ZTogMTNweDsNCiAgICAgIG1hcmdp bjogMTZweCAwOw0KICAgIH0NCg0KICAgIC5vZC1TaWduSW5EaWFsb2dNU0FWYXItY3JlYXRl TVNBIGEgew0KICAgICAgY29sb3I6ICMxMDZlYmU7DQogICAgfQ0KDQogICAgLm9kLVNpZ25J bkRpYWxvZ01TQVZhci1jcmVhdGVNU0EgYTpob3ZlciB7DQogICAgICBjb2xvcjogIzYxNjE2 MTsNCiAgICB9DQoNCiAgICAub2QtU2lnbkluRGlhbG9nTVNBVmFyLWxpbmUgew0KICAgICAg d2lkdGg6IDQxMHB4Ow0KICAgICAgaGVpZ2h0OiAxcHg7DQogICAgICBiYWNrZ3JvdW5kLWNv bG9yOiAjYzdjN2M3Ow0KICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICAgbGVmdDog MDsNCiAgICAgIHJpZ2h0OiAwOw0KICAgIH0NCg0KICAgIC5vZC1TaWduSW5EaWFsb2dNU0FW YXItZGlzbWlzcyB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOw0KICAgICAg Y29sb3I6ICM2MTYxNjE7DQogICAgICBmb250LXNpemU6IDEycHg7DQogICAgICBmb250LXdl aWdodDogNDAwOw0KICAgICAgd2lkdGg6IDQxMHB4Ow0KICAgICAgaGVpZ2h0OiAzNXB4Ow0K ICAgICAgY3Vyc29yOiBwb2ludGVyOw0KICAgICAgYm9yZGVyOiBub25lOw0KICAgICAgcG9z aXRpb246IGFic29sdXRlOw0KICAgICAgbGVmdDogMDsNCiAgICAgIHJpZ2h0OiAwOw0KICAg ICAgYm90dG9tOiAwOw0KICAgIH0NCg0KICAgIC5vZC1TaWduSW5EaWFsb2ctY2xvc2Ugew0K ICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICAgdG9wOiAwOw0KICAgICAgYmFja2dy b3VuZDogMCAwOw0KICAgICAgYm9yZGVyOiAwOw0KICAgICAgcGFkZGluZzogMTZweDsNCiAg ICAgIGN1cnNvcjogcG9pbnRlcjsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0ibHRyIl0gLm9k LVNpZ25JbkRpYWxvZy1jbG9zZSB7DQogICAgICByaWdodDogMDsNCiAgICB9DQoNCiAgICBo dG1sW2Rpcj0icnRsIl0gLm9kLVNpZ25JbkRpYWxvZy1jbG9zZSB7DQogICAgICBsZWZ0OiAw Ow0KICAgIH0NCg0KICAgIC5vZC1TaWduSW5EaWFsb2ctY2xvc2UgLm1zLUljb24ubXMtSWNv bi0tQ2FuY2VsIHsNCiAgICAgIGZvbnQtc2l6ZTogMTZweDsNCiAgICAgIGNvbG9yOiAjMjQy NDI0Ow0KICAgIH0NCiAgPC9zdHlsZT4NCiAgPHN0eWxlIGRhdGEtbG9hZC10aGVtZWQtc3R5 bGVzPSJ0cnVlIj4NCiAgICAub2QtT3ZlcmxheSB7DQogICAgICBoZWlnaHQ6IDA7DQogICAg ICB3aWR0aDogMDsNCiAgICAgIG92ZXJmbG93OiBoaWRkZW47DQogICAgfQ0KICA8L3N0eWxl Pg0KICA8c3R5bGUgZGF0YS1sb2FkLXRoZW1lZC1zdHlsZXM9InRydWUiPg0KICAgIC5vZC1F cnJvciB7DQogICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7DQogICAgfQ0KDQogICAgLm9kLUVy cm9yLWltYWdlIHsNCiAgICAgIHBhZGRpbmctdG9wOiA1MnB4Ow0KICAgICAgaGVpZ2h0OiAy MDhweDsNCiAgICAgIHdpZHRoOiBhdXRvOw0KICAgICAgbWFyZ2luOiAwIGF1dG87DQogICAg fQ0KDQogICAgLm9kLUVycm9yLWltYWdlIC5vZC1FcnJvci1pbWFnZVRhZyB7DQogICAgICBo ZWlnaHQ6IDIwOHB4Ow0KICAgICAgd2lkdGg6IGF1dG87DQogICAgfQ0KDQogICAgLm9kLUVy cm9yLWltYWdlIC5vZC1FcnJvci12YXVsdEltYWdlIHsNCiAgICAgIGhlaWdodDogODhweDsN CiAgICAgIHdpZHRoOiBhdXRvOw0KICAgICAgcGFkZGluZy10b3A6IDExM3B4Ow0KICAgIH0N Cg0KICAgIC5tZCAub2QtRXJyb3ItaW1hZ2UsDQogICAgLnNtIC5vZC1FcnJvci1pbWFnZSB7 DQogICAgICBwYWRkaW5nLXRvcDogMjBweDsNCiAgICAgIGhlaWdodDogMTY4cHg7DQogICAg ICB3aWR0aDogYXV0bzsNCiAgICB9DQoNCiAgICAubWQgLm9kLUVycm9yLWltYWdlIC5vZC1F cnJvci1pbWFnZVRhZywNCiAgICAuc20gLm9kLUVycm9yLWltYWdlIC5vZC1FcnJvci1pbWFn ZVRhZyB7DQogICAgICBoZWlnaHQ6IDE2OHB4Ow0KICAgICAgd2lkdGg6IGF1dG87DQogICAg fQ0KDQogICAgLm1kIC5vZC1FcnJvci1pbWFnZSAub2QtRXJyb3ItdmF1bHRJbWFnZSwNCiAg ICAuc20gLm9kLUVycm9yLWltYWdlIC5vZC1FcnJvci12YXVsdEltYWdlIHsNCiAgICAgIGhl aWdodDogODhweDsNCiAgICAgIHdpZHRoOiBhdXRvOw0KICAgICAgcGFkZGluZy10b3A6IDgw cHg7DQogICAgfQ0KDQogICAgLm9kLUVycm9yLXRpdGxlIHsNCiAgICAgIHBhZGRpbmc6IDE2 cHggMTZweCAwIDE2cHg7DQogICAgICBmb250LXNpemU6IDIxcHg7DQogICAgICBmb250LXdl aWdodDogMTAwOw0KICAgICAgbWF4LXdpZHRoOiA0MDBweDsNCiAgICAgIGNvbG9yOiAjNjE2 MTYxOw0KICAgICAgbWFyZ2luOiAwIGF1dG87DQogICAgfQ0KDQogICAgaHRtbFtkaXI9InJ0 bCJdIC5vZC1FcnJvci10aXRsZSB7DQogICAgICBwYWRkaW5nOiAxNnB4IDE2cHggMCAxNnB4 Ow0KICAgIH0NCg0KICAgIC5tZCAub2QtRXJyb3ItdGl0bGUsDQogICAgLnNtIC5vZC1FcnJv ci10aXRsZSB7DQogICAgICBmb250LXNpemU6IDE3cHg7DQogICAgICBmb250LXdlaWdodDog MzAwOw0KICAgIH0NCg0KICAgIC5vZC1FcnJvci1zdWJUZXh0IHsNCiAgICAgIHBhZGRpbmc6 IDZweCAxNnB4IDAgMTZweDsNCiAgICAgIGZvbnQtc2l6ZTogMTRweDsNCiAgICAgIGZvbnQt d2VpZ2h0OiA0MDA7DQogICAgICBtYXgtd2lkdGg6IDQwMHB4Ow0KICAgICAgY29sb3I6ICM2 MTYxNjE7DQogICAgICBtYXJnaW46IDAgYXV0bzsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0i cnRsIl0gLm9kLUVycm9yLXN1YlRleHQgew0KICAgICAgcGFkZGluZzogNnB4IDE2cHggMCAx NnB4Ow0KICAgIH0NCg0KICAgIC5vZC1FcnJvci1zdWJ0ZXh0LS1hY2Nlc3NyZW1vdmVkIHsN CiAgICAgIG1heC13aWR0aDogNDEwcHg7DQogICAgfQ0KDQogICAgLm9kLUVycm9yLWNvZGUg ew0KICAgICAgcGFkZGluZy10b3A6IDhweDsNCiAgICAgIGNvbG9yOiAjOWU5ZTllOw0KICAg ICAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiB0ZXh0Ow0KICAgICAgLXdlYmtpdC11c2VyLXNl bGVjdDogdGV4dDsNCiAgICAgIC1tcy11c2VyLXNlbGVjdDogdGV4dDsNCiAgICAgIHVzZXIt c2VsZWN0OiB0ZXh0Ow0KICAgICAgZm9udC1zaXplOiAxMnB4Ow0KICAgICAgZm9udC13ZWln aHQ6IDQwMDsNCiAgICB9DQoNCiAgICAub2QtRXJyb3ItYnV0dG9uIHsNCiAgICAgIHBhZGRp bmctdG9wOiAxNnB4Ow0KICAgICAgZm9udC1zaXplOiAxNHB4Ow0KICAgICAgZm9udC13ZWln aHQ6IDQwMDsNCiAgICB9DQogIDwvc3R5bGU+DQogIDxzdHlsZSBkYXRhLWxvYWQtdGhlbWVk LXN0eWxlcz0idHJ1ZSI+DQogICAgLlByb2dyZXNzU3Bpbm5lckZsYXQgew0KICAgICAgcG9z aXRpb246IHJlbGF0aXZlOw0KICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsNCiAgICAg IHBhZGRpbmc6IDJweCAwOw0KICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsNCiAgICAgIGhlaWdo dDogNnB4Ow0KICAgICAgY29sb3I6ICMwMDc4ZDQ7DQogICAgICBmb250LXNpemU6IDE1cHg7 DQogICAgfQ0KDQogICAgLlByb2dyZXNzU3Bpbm5lckZsYXQ+ZGl2IHsNCiAgICAgIHBvc2l0 aW9uOiByZWxhdGl2ZTsNCiAgICAgIGxpbmUtaGVpZ2h0OiAwOw0KICAgICAgY3Vyc29yOiBk ZWZhdWx0Ow0KICAgICAgYW5pbWF0aW9uOiBwcm9ncmVzcyAzLjRzIGluZmluaXRlIGN1Ymlj LWJlemllcigwLCAwLjc1LCAxLCAwLjI1KTsNCiAgICB9DQoNCiAgICBbZGlyPSJsdHIiXSAu UHJvZ3Jlc3NTcGlubmVyRmxhdD5kaXYgew0KICAgICAgbGVmdDogLTUwcHg7DQogICAgfQ0K DQogICAgW2Rpcj0icnRsIl0gLlByb2dyZXNzU3Bpbm5lckZsYXQ+ZGl2IHsNCiAgICAgIHJp Z2h0OiAtNTBweDsNCiAgICB9DQoNCiAgICBbZGlyPSJydGwiXSAuUHJvZ3Jlc3NTcGlubmVy RmxhdD5kaXYgew0KICAgICAgYW5pbWF0aW9uOiBwcm9ncmVzc1J0bCAzLjRzIGluZmluaXRl IGN1YmljLWJlemllcigwLCAwLjc1LCAxLCAwLjI1KTsNCiAgICB9DQoNCiAgICAuUHJvZ3Jl c3NTcGlubmVyRmxhdD5kaXY6Zmlyc3QtY2hpbGQgew0KICAgICAgYW5pbWF0aW9uLWRlbGF5 OiAwLjFzOw0KICAgIH0NCg0KICAgIFtkaXI9Imx0ciJdIC5Qcm9ncmVzc1NwaW5uZXJGbGF0 PmRpdjpmaXJzdC1jaGlsZCB7DQogICAgICBtYXJnaW4tbGVmdDogNDBweDsNCiAgICB9DQoN CiAgICBbZGlyPSJydGwiXSAuUHJvZ3Jlc3NTcGlubmVyRmxhdD5kaXY6Zmlyc3QtY2hpbGQg ew0KICAgICAgbWFyZ2luLXJpZ2h0OiA0MHB4Ow0KICAgIH0NCg0KICAgIC5Qcm9ncmVzc1Nw aW5uZXJGbGF0PmRpdjpudGgtY2hpbGQoMikgew0KICAgICAgYW5pbWF0aW9uLWRlbGF5OiAw LjJzOw0KICAgIH0NCg0KICAgIFtkaXI9Imx0ciJdIC5Qcm9ncmVzc1NwaW5uZXJGbGF0PmRp djpudGgtY2hpbGQoMikgew0KICAgICAgbWFyZ2luLWxlZnQ6IDMwcHg7DQogICAgfQ0KDQog ICAgW2Rpcj0icnRsIl0gLlByb2dyZXNzU3Bpbm5lckZsYXQ+ZGl2Om50aC1jaGlsZCgyKSB7 DQogICAgICBtYXJnaW4tcmlnaHQ6IDMwcHg7DQogICAgfQ0KDQogICAgLlByb2dyZXNzU3Bp bm5lckZsYXQ+ZGl2Om50aC1jaGlsZCgzKSB7DQogICAgICBhbmltYXRpb24tZGVsYXk6IDAu M3M7DQogICAgfQ0KDQogICAgW2Rpcj0ibHRyIl0gLlByb2dyZXNzU3Bpbm5lckZsYXQ+ZGl2 Om50aC1jaGlsZCgzKSB7DQogICAgICBtYXJnaW4tbGVmdDogMjBweDsNCiAgICB9DQoNCiAg ICBbZGlyPSJydGwiXSAuUHJvZ3Jlc3NTcGlubmVyRmxhdD5kaXY6bnRoLWNoaWxkKDMpIHsN CiAgICAgIG1hcmdpbi1yaWdodDogMjBweDsNCiAgICB9DQoNCiAgICAuUHJvZ3Jlc3NTcGlu bmVyRmxhdD5kaXY6bnRoLWNoaWxkKDQpIHsNCiAgICAgIGFuaW1hdGlvbi1kZWxheTogMC40 czsNCiAgICB9DQoNCiAgICBbZGlyPSJsdHIiXSAuUHJvZ3Jlc3NTcGlubmVyRmxhdD5kaXY6 bnRoLWNoaWxkKDQpIHsNCiAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4Ow0KICAgIH0NCg0KICAg IFtkaXI9InJ0bCJdIC5Qcm9ncmVzc1NwaW5uZXJGbGF0PmRpdjpudGgtY2hpbGQoNCkgew0K ICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4Ow0KICAgIH0NCg0KICAgIC5Qcm9ncmVzc1NwaW5u ZXJGbGF0PmRpdjpudGgtY2hpbGQoNSkgew0KICAgICAgYW5pbWF0aW9uLWRlbGF5OiAwLjVz Ow0KICAgIH0NCg0KICAgIFtkaXI9Imx0ciJdIC5Qcm9ncmVzc1NwaW5uZXJGbGF0PmRpdjpu dGgtY2hpbGQoNSkgew0KICAgICAgbWFyZ2luLWxlZnQ6IDA7DQogICAgfQ0KDQogICAgW2Rp cj0icnRsIl0gLlByb2dyZXNzU3Bpbm5lckZsYXQ+ZGl2Om50aC1jaGlsZCg1KSB7DQogICAg ICBtYXJnaW4tcmlnaHQ6IDA7DQogICAgfQ0KDQogICAgQGtleWZyYW1lcyBwcm9ncmVzcyB7 DQogICAgICBmcm9tIHsNCiAgICAgICAgbGVmdDogLTUwcHg7DQogICAgICB9DQoNCiAgICAg IDI1JSB7DQogICAgICAgIGxlZnQ6IC01MHB4Ow0KICAgICAgfQ0KDQogICAgICB0byB7DQog ICAgICAgIGxlZnQ6IDEwMCU7DQogICAgICB9DQogICAgfQ0KDQogICAgQGtleWZyYW1lcyBw cm9ncmVzc1J0bCB7DQogICAgICBmcm9tIHsNCiAgICAgICAgcmlnaHQ6IC01MHB4Ow0KICAg ICAgfQ0KDQogICAgICAyNSUgew0KICAgICAgICByaWdodDogLTUwcHg7DQogICAgICB9DQoN CiAgICAgIHRvIHsNCiAgICAgICAgcmlnaHQ6IDEwMCU7DQogICAgICB9DQogICAgfQ0KICA8 L3N0eWxlPg0KICA8c3R5bGUgZGF0YS1sb2FkLXRoZW1lZC1zdHlsZXM9InRydWUiPg0KICAg IC5vZC1GaWxlcy11bmF1dGhCYW5uZXIgew0KICAgICAgcG9zaXRpb246IGFic29sdXRlOw0K ICAgICAgdG9wOiAwOw0KICAgICAgbGVmdDogMDsNCiAgICAgIHJpZ2h0OiAwOw0KICAgICAg aGVpZ2h0OiA1MHB4Ow0KICAgIH0NCg0KICAgIC5vZC1GaWxlcy1vbmVVcCB7DQogICAgICBw b3NpdGlvbjogYWJzb2x1dGU7DQogICAgICB0b3A6IDA7DQogICAgICBsZWZ0OiAwOw0KICAg ICAgcmlnaHQ6IDA7DQogICAgICBib3R0b206IDA7DQogICAgfQ0KDQogICAgLm9kLUZpbGVz LW9uZVVwLm9kLUZpbGVzLU9uZVVwLS1zaG93VW5hdXRoQmFubmVyIHsNCiAgICAgIHRvcDog NTBweDsNCiAgICB9DQogIDwvc3R5bGU+DQogIDxzdHlsZSBkYXRhLWxvYWQtdGhlbWVkLXN0 eWxlcz0idHJ1ZSI+DQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLWNvbW11bmljYXRpb25T aGFkZTMwLA0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1jb21tdW5pY2F0aW9uU2hhZGUz MC0taG92ZXI6aG92ZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwNDU3ODsNCiAg ICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3ItY29tbXVuaWNhdGlvblNoYWRlMjAs DQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLWNvbW11bmljYXRpb25TaGFkZTIwLS1ob3Zl cjpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA1YTllOw0KICAgIH0NCg0K ICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1jb21tdW5pY2F0aW9uU2hhZGUxMCwNCiAgICBo dG1sIGJvZHkgLm1zLWJnQ29sb3ItY29tbXVuaWNhdGlvblNoYWRlMTAtLWhvdmVyOmhvdmVy IHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxMDZlYmU7DQogICAgfQ0KDQogICAgaHRt bCBib2R5IC5tcy1iZ0NvbG9yLWNvbW11bmljYXRpb25QcmltYXJ5LA0KICAgIGh0bWwgYm9k eSAubXMtYmdDb2xvci1jb21tdW5pY2F0aW9uUHJpbWFyeS0taG92ZXI6aG92ZXIgew0KICAg ICAgYmFja2dyb3VuZC1jb2xvcjogIzAwNzhkNDsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkg Lm1zLWJnQ29sb3ItY29tbXVuaWNhdGlvblRpbnQxMCwNCiAgICBodG1sIGJvZHkgLm1zLWJn Q29sb3ItY29tbXVuaWNhdGlvblRpbnQxMC0taG92ZXI6aG92ZXIgew0KICAgICAgYmFja2dy b3VuZC1jb2xvcjogIzJiODhkODsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29s b3ItY29tbXVuaWNhdGlvblRpbnQyMCwNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3ItY29t bXVuaWNhdGlvblRpbnQyMC0taG92ZXI6aG92ZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xv cjogI2M3ZTBmNDsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3ItY29tbXVu aWNhdGlvblRpbnQzMCwNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3ItY29tbXVuaWNhdGlv blRpbnQzMC0taG92ZXI6aG92ZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2RlZWNm OTsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3ItY29tbXVuaWNhdGlvblRp bnQ0MCwNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3ItY29tbXVuaWNhdGlvblRpbnQ0MC0t aG92ZXI6aG92ZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2VmZjZmYzsNCiAgICB9 DQoNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3ItYmxhY2ssDQogICAgaHRtbCBib2R5IC5t cy1iZ0NvbG9yLWJsYWNrLS1ob3Zlcjpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9y OiAjMDAwMDAwOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1ncmF5MjIw LA0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1ncmF5MjIwLS1ob3Zlcjpob3ZlciB7DQog ICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTExMDBmOw0KICAgIH0NCg0KICAgIGh0bWwgYm9k eSAubXMtYmdDb2xvci1ncmF5MjEwLA0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1ncmF5 MjEwLS1ob3Zlcjpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTYxNTE0Ow0K ICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1ncmF5MjAwLA0KICAgIGh0bWwg Ym9keSAubXMtYmdDb2xvci1ncmF5MjAwLS1ob3Zlcjpob3ZlciB7DQogICAgICBiYWNrZ3Jv dW5kLWNvbG9yOiAjMWIxYTE5Ow0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xv ci1ncmF5MTkwLA0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1ncmF5MTkwLS1ob3Zlcjpo b3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjAxZjFlOw0KICAgIH0NCg0KICAg IGh0bWwgYm9keSAubXMtYmdDb2xvci1ncmF5MTgwLA0KICAgIGh0bWwgYm9keSAubXMtYmdD b2xvci1ncmF5MTgwLS1ob3Zlcjpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAj MjUyNDIzOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1ncmF5MTcwLA0K ICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1ncmF5MTcwLS1ob3Zlcjpob3ZlciB7DQogICAg ICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjkyODI3Ow0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAu bXMtYmdDb2xvci1ncmF5MTYwLA0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1ncmF5MTYw LS1ob3Zlcjpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzIzMTMwOw0KICAg IH0NCg0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1ncmF5MTUwLA0KICAgIGh0bWwgYm9k eSAubXMtYmdDb2xvci1ncmF5MTUwLS1ob3Zlcjpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5k LWNvbG9yOiAjM2IzYTM5Ow0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1n cmF5MTQwLA0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1ncmF5MTQwLS1ob3Zlcjpob3Zl ciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDg0NjQ0Ow0KICAgIH0NCg0KICAgIGh0 bWwgYm9keSAubXMtYmdDb2xvci1ncmF5MTMwLA0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xv ci1ncmF5MTMwLS1ob3Zlcjpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjA1 ZTVjOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1ncmF5MTIwLA0KICAg IGh0bWwgYm9keSAubXMtYmdDb2xvci1ncmF5MTIwLS1ob3Zlcjpob3ZlciB7DQogICAgICBi YWNrZ3JvdW5kLWNvbG9yOiAjNzk3Nzc1Ow0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMt YmdDb2xvci1ncmF5MTEwLA0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1ncmF5MTEwLS1o b3Zlcjpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGE4ODg2Ow0KICAgIH0N Cg0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1ncmF5MTAwLA0KICAgIGh0bWwgYm9keSAu bXMtYmdDb2xvci1ncmF5MTAwLS1ob3Zlcjpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNv bG9yOiAjOTc5NTkzOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1ncmF5 OTAsDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLWdyYXk5MC0taG92ZXI6aG92ZXIgew0K ICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ExOWY5ZDsNCiAgICB9DQoNCiAgICBodG1sIGJv ZHkgLm1zLWJnQ29sb3ItZ3JheTgwLA0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1ncmF5 ODAtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNiM2IwYWQ7DQog ICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLWdyYXk3MCwNCiAgICBodG1sIGJv ZHkgLm1zLWJnQ29sb3ItZ3JheTcwLS1ob3Zlcjpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5k LWNvbG9yOiAjYmViYmI4Ow0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1n cmF5NjAsDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLWdyYXk2MC0taG92ZXI6aG92ZXIg ew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2M4YzZjNDsNCiAgICB9DQoNCiAgICBodG1s IGJvZHkgLm1zLWJnQ29sb3ItZ3JheTUwLA0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1n cmF5NTAtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNkMmQwY2U7 DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLWdyYXk0MCwNCiAgICBodG1s IGJvZHkgLm1zLWJnQ29sb3ItZ3JheTQwLS1ob3Zlcjpob3ZlciB7DQogICAgICBiYWNrZ3Jv dW5kLWNvbG9yOiAjZTFkZmRkOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xv ci1ncmF5MzAsDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLWdyYXkzMC0taG92ZXI6aG92 ZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2VkZWJlOTsNCiAgICB9DQoNCiAgICBo dG1sIGJvZHkgLm1zLWJnQ29sb3ItZ3JheTIwLA0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xv ci1ncmF5MjAtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmM2Yy ZjE7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLWdyYXkxMCwNCiAgICBo dG1sIGJvZHkgLm1zLWJnQ29sb3ItZ3JheTEwLS1ob3Zlcjpob3ZlciB7DQogICAgICBiYWNr Z3JvdW5kLWNvbG9yOiAjZmFmOWY4Ow0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYmdD b2xvci13aGl0ZSwNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3Itd2hpdGUtLWhvdmVyOmhv dmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7DQogICAgfQ0KDQogICAg aHRtbCBib2R5IC5tcy1iZ0NvbG9yLXNoYXJlZFBpbmtSZWQxMCwNCiAgICBodG1sIGJvZHkg Lm1zLWJnQ29sb3Itc2hhcmVkUGlua1JlZDEwLS1ob3Zlcjpob3ZlciB7DQogICAgICBiYWNr Z3JvdW5kLWNvbG9yOiAjNzUwYjFjOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYmdD b2xvci1zaGFyZWRSZWQyMCwNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3Itc2hhcmVkUmVk MjAtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNhNDI2MmM7DQog ICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLXNoYXJlZFJlZDEwLA0KICAgIGh0 bWwgYm9keSAubXMtYmdDb2xvci1zaGFyZWRSZWQxMC0taG92ZXI6aG92ZXIgew0KICAgICAg YmFja2dyb3VuZC1jb2xvcjogI2QxMzQzODsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1z LWJnQ29sb3Itc2hhcmVkUmVkT3JhbmdlMjAsDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9y LXNoYXJlZFJlZE9yYW5nZTIwLS1ob3Zlcjpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNv bG9yOiAjNjAzZDMwOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1zaGFy ZWRSZWRPcmFuZ2UxMCwNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3Itc2hhcmVkUmVkT3Jh bmdlMTAtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNkYTNiMDE7 DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLXNoYXJlZE9yYW5nZTMwLA0K ICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1zaGFyZWRPcmFuZ2UzMC0taG92ZXI6aG92ZXIg ew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzhlNTYyZTsNCiAgICB9DQoNCiAgICBodG1s IGJvZHkgLm1zLWJnQ29sb3Itc2hhcmVkT3JhbmdlMjAsDQogICAgaHRtbCBib2R5IC5tcy1i Z0NvbG9yLXNoYXJlZE9yYW5nZTIwLS1ob3Zlcjpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5k LWNvbG9yOiAjY2E1MDEwOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1z aGFyZWRPcmFuZ2UxMCwNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3Itc2hhcmVkT3Jhbmdl MTAtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmYTQ7DQogICAg fQ0KDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLXNoYXJlZFllbGxvdzEwLA0KICAgIGh0 bWwgYm9keSAubXMtYmdDb2xvci1zaGFyZWRZZWxsb3cxMC0taG92ZXI6aG92ZXIgew0KICAg ICAgYmFja2dyb3VuZC1jb2xvcjogI2ZjZTEwMDsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkg Lm1zLWJnQ29sb3Itc2hhcmVkT3JhbmdlWWVsbG93MjAsDQogICAgaHRtbCBib2R5IC5tcy1i Z0NvbG9yLXNoYXJlZE9yYW5nZVllbGxvdzIwLS1ob3Zlcjpob3ZlciB7DQogICAgICBiYWNr Z3JvdW5kLWNvbG9yOiAjOTg2ZjBiOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYmdD b2xvci1zaGFyZWRPcmFuZ2VZZWxsb3cxMCwNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3It c2hhcmVkT3JhbmdlWWVsbG93MTAtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJhY2tncm91bmQt Y29sb3I6ICNjMTljMDA7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLXNo YXJlZFllbGxvd0dyZWVuMTAsDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLXNoYXJlZFll bGxvd0dyZWVuMTAtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM4 Y2JkMTg7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLXNoYXJlZEdyZWVu MjAsDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLXNoYXJlZEdyZWVuMjAtLWhvdmVyOmhv dmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwYjZhMGI7DQogICAgfQ0KDQogICAg aHRtbCBib2R5IC5tcy1iZ0NvbG9yLXNoYXJlZEdyZWVuMTAsDQogICAgaHRtbCBib2R5IC5t cy1iZ0NvbG9yLXNoYXJlZEdyZWVuMTAtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJhY2tncm91 bmQtY29sb3I6ICM0OTgyMDU7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9y LXNoYXJlZEdyZWVuQ3lhbjEwLA0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1zaGFyZWRH cmVlbkN5YW4xMC0taG92ZXI6aG92ZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAw YWQ1NjsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3Itc2hhcmVkQ3lhbjQw LA0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1zaGFyZWRDeWFuNDAtLWhvdmVyOmhvdmVy IHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDVlNTA7DQogICAgfQ0KDQogICAgaHRt bCBib2R5IC5tcy1iZ0NvbG9yLXNoYXJlZEN5YW4zMCwNCiAgICBodG1sIGJvZHkgLm1zLWJn Q29sb3Itc2hhcmVkQ3lhbjMwLS1ob3Zlcjpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNv bG9yOiAjMDA1YjcwOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1zaGFy ZWRDeWFuMjAsDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLXNoYXJlZEN5YW4yMC0taG92 ZXI6aG92ZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAzODM4NzsNCiAgICB9DQoN CiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3Itc2hhcmVkQ3lhbjEwLA0KICAgIGh0bWwgYm9k eSAubXMtYmdDb2xvci1zaGFyZWRDeWFuMTAtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJhY2tn cm91bmQtY29sb3I6ICMwMGI3YzM7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1iZ0Nv bG9yLXNoYXJlZEN5YW5CbHVlMjAsDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLXNoYXJl ZEN5YW5CbHVlMjAtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMw MDRlOGM7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLXNoYXJlZEN5YW5C bHVlMTAsDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLXNoYXJlZEN5YW5CbHVlMTAtLWhv dmVyOmhvdmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDc4ZDQ7DQogICAgfQ0K DQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLXNoYXJlZEJsdWUxMCwNCiAgICBodG1sIGJv ZHkgLm1zLWJnQ29sb3Itc2hhcmVkQmx1ZTEwLS1ob3Zlcjpob3ZlciB7DQogICAgICBiYWNr Z3JvdW5kLWNvbG9yOiAjNGY2YmVkOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYmdD b2xvci1zaGFyZWRCbHVlTWFnZW50YTQwLA0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1z aGFyZWRCbHVlTWFnZW50YTQwLS1ob3Zlcjpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNv bG9yOiAjMzczMjc3Ow0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1zaGFy ZWRCbHVlTWFnZW50YTMwLA0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1zaGFyZWRCbHVl TWFnZW50YTMwLS1ob3Zlcjpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWMy ZTkxOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1zaGFyZWRCbHVlTWFn ZW50YTIwLA0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1zaGFyZWRCbHVlTWFnZW50YTIw LS1ob3Zlcjpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjODc2NGI4Ow0KICAg IH0NCg0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1zaGFyZWRCbHVlTWFnZW50YTEwLA0K ICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1zaGFyZWRCbHVlTWFnZW50YTEwLS1ob3Zlcjpo b3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjODM3OGRlOw0KICAgIH0NCg0KICAg IGh0bWwgYm9keSAubXMtYmdDb2xvci1zaGFyZWRNYWdlbnRhMjAsDQogICAgaHRtbCBib2R5 IC5tcy1iZ0NvbG9yLXNoYXJlZE1hZ2VudGEyMC0taG92ZXI6aG92ZXIgew0KICAgICAgYmFj a2dyb3VuZC1jb2xvcjogIzg4MTc5ODsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJn Q29sb3Itc2hhcmVkTWFnZW50YTEwLA0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1zaGFy ZWRNYWdlbnRhMTAtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNj MjM5YjM7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLXNoYXJlZE1hZ2Vu dGFQaW5rMjAsDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLXNoYXJlZE1hZ2VudGFQaW5r MjAtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM5YjAwNjI7DQog ICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLXNoYXJlZE1hZ2VudGFQaW5rMTAs DQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLXNoYXJlZE1hZ2VudGFQaW5rMTAtLWhvdmVy OmhvdmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlMzAwOGM7DQogICAgfQ0KDQog ICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLXNoYXJlZEdyYXk0MCwNCiAgICBodG1sIGJvZHkg Lm1zLWJnQ29sb3Itc2hhcmVkR3JheTQwLS1ob3Zlcjpob3ZlciB7DQogICAgICBiYWNrZ3Jv dW5kLWNvbG9yOiAjMzkzOTM5Ow0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xv ci1zaGFyZWRHcmF5MzAsDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLXNoYXJlZEdyYXkz MC0taG92ZXI6aG92ZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzdhNzU3NDsNCiAg ICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3Itc2hhcmVkR3JheTIwLA0KICAgIGh0 bWwgYm9keSAubXMtYmdDb2xvci1zaGFyZWRHcmF5MjAtLWhvdmVyOmhvdmVyIHsNCiAgICAg IGJhY2tncm91bmQtY29sb3I6ICM2OTc5N2U7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5t cy1iZ0NvbG9yLXNoYXJlZEdyYXkxMCwNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3Itc2hh cmVkR3JheTEwLS1ob3Zlcjpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTBh ZWIyOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3ItY29tbXVuaWNh dGlvblNoYWRlMzAsDQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci1jb21tdW5pY2F0 aW9uU2hhZGUzMC0taG92ZXI6aG92ZXIgew0KICAgICAgYm9yZGVyLWNvbG9yOiAjMDA0NTc4 Ow0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3ItY29tbXVuaWNhdGlv blNoYWRlMjAsDQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci1jb21tdW5pY2F0aW9u U2hhZGUyMC0taG92ZXI6aG92ZXIgew0KICAgICAgYm9yZGVyLWNvbG9yOiAjMDA1YTllOw0K ICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3ItY29tbXVuaWNhdGlvblNo YWRlMTAsDQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci1jb21tdW5pY2F0aW9uU2hh ZGUxMC0taG92ZXI6aG92ZXIgew0KICAgICAgYm9yZGVyLWNvbG9yOiAjMTA2ZWJlOw0KICAg IH0NCg0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3ItY29tbXVuaWNhdGlvblByaW1h cnksDQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci1jb21tdW5pY2F0aW9uUHJpbWFy eS0taG92ZXI6aG92ZXIgew0KICAgICAgYm9yZGVyLWNvbG9yOiAjMDA3OGQ0Ow0KICAgIH0N Cg0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3ItY29tbXVuaWNhdGlvblRpbnQxMCwN CiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLWNvbW11bmljYXRpb25UaW50MTAtLWhv dmVyOmhvdmVyIHsNCiAgICAgIGJvcmRlci1jb2xvcjogIzJiODhkODsNCiAgICB9DQoNCiAg ICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLWNvbW11bmljYXRpb25UaW50MjAsDQogICAg aHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci1jb21tdW5pY2F0aW9uVGludDIwLS1ob3Zlcjpo b3ZlciB7DQogICAgICBib3JkZXItY29sb3I6ICNjN2UwZjQ7DQogICAgfQ0KDQogICAgaHRt bCBib2R5IC5tcy1ib3JkZXJDb2xvci1jb21tdW5pY2F0aW9uVGludDMwLA0KICAgIGh0bWwg Ym9keSAubXMtYm9yZGVyQ29sb3ItY29tbXVuaWNhdGlvblRpbnQzMC0taG92ZXI6aG92ZXIg ew0KICAgICAgYm9yZGVyLWNvbG9yOiAjZGVlY2Y5Ow0KICAgIH0NCg0KICAgIGh0bWwgYm9k eSAubXMtYm9yZGVyQ29sb3ItY29tbXVuaWNhdGlvblRpbnQ0MCwNCiAgICBodG1sIGJvZHkg Lm1zLWJvcmRlckNvbG9yLWNvbW11bmljYXRpb25UaW50NDAtLWhvdmVyOmhvdmVyIHsNCiAg ICAgIGJvcmRlci1jb2xvcjogI2VmZjZmYzsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1z LWJvcmRlckNvbG9yLWJsYWNrLA0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3ItYmxh Y2stLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJvcmRlci1jb2xvcjogIzAwMDAwMDsNCiAgICB9 DQoNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLWdyYXkyMjAsDQogICAgaHRtbCBi b2R5IC5tcy1ib3JkZXJDb2xvci1ncmF5MjIwLS1ob3Zlcjpob3ZlciB7DQogICAgICBib3Jk ZXItY29sb3I6ICMxMTEwMGY7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJD b2xvci1ncmF5MjEwLA0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3ItZ3JheTIxMC0t aG92ZXI6aG92ZXIgew0KICAgICAgYm9yZGVyLWNvbG9yOiAjMTYxNTE0Ow0KICAgIH0NCg0K ICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3ItZ3JheTIwMCwNCiAgICBodG1sIGJvZHkg Lm1zLWJvcmRlckNvbG9yLWdyYXkyMDAtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJvcmRlci1j b2xvcjogIzFiMWExOTsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9y LWdyYXkxOTAsDQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci1ncmF5MTkwLS1ob3Zl cjpob3ZlciB7DQogICAgICBib3JkZXItY29sb3I6ICMyMDFmMWU7DQogICAgfQ0KDQogICAg aHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci1ncmF5MTgwLA0KICAgIGh0bWwgYm9keSAubXMt Ym9yZGVyQ29sb3ItZ3JheTE4MC0taG92ZXI6aG92ZXIgew0KICAgICAgYm9yZGVyLWNvbG9y OiAjMjUyNDIzOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3ItZ3Jh eTE3MCwNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLWdyYXkxNzAtLWhvdmVyOmhv dmVyIHsNCiAgICAgIGJvcmRlci1jb2xvcjogIzI5MjgyNzsNCiAgICB9DQoNCiAgICBodG1s IGJvZHkgLm1zLWJvcmRlckNvbG9yLWdyYXkxNjAsDQogICAgaHRtbCBib2R5IC5tcy1ib3Jk ZXJDb2xvci1ncmF5MTYwLS1ob3Zlcjpob3ZlciB7DQogICAgICBib3JkZXItY29sb3I6ICMz MjMxMzA7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci1ncmF5MTUw LA0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3ItZ3JheTE1MC0taG92ZXI6aG92ZXIg ew0KICAgICAgYm9yZGVyLWNvbG9yOiAjM2IzYTM5Ow0KICAgIH0NCg0KICAgIGh0bWwgYm9k eSAubXMtYm9yZGVyQ29sb3ItZ3JheTE0MCwNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNv bG9yLWdyYXkxNDAtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJvcmRlci1jb2xvcjogIzQ4NDY0 NDsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLWdyYXkxMzAsDQog ICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci1ncmF5MTMwLS1ob3Zlcjpob3ZlciB7DQog ICAgICBib3JkZXItY29sb3I6ICM2MDVlNWM7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5t cy1ib3JkZXJDb2xvci1ncmF5MTIwLA0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3It Z3JheTEyMC0taG92ZXI6aG92ZXIgew0KICAgICAgYm9yZGVyLWNvbG9yOiAjNzk3Nzc1Ow0K ICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3ItZ3JheTExMCwNCiAgICBo dG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLWdyYXkxMTAtLWhvdmVyOmhvdmVyIHsNCiAgICAg IGJvcmRlci1jb2xvcjogIzhhODg4NjsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJv cmRlckNvbG9yLWdyYXkxMDAsDQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci1ncmF5 MTAwLS1ob3Zlcjpob3ZlciB7DQogICAgICBib3JkZXItY29sb3I6ICM5Nzk1OTM7DQogICAg fQ0KDQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci1ncmF5OTAsDQogICAgaHRtbCBi b2R5IC5tcy1ib3JkZXJDb2xvci1ncmF5OTAtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJvcmRl ci1jb2xvcjogI2ExOWY5ZDsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNv bG9yLWdyYXk4MCwNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLWdyYXk4MC0taG92 ZXI6aG92ZXIgew0KICAgICAgYm9yZGVyLWNvbG9yOiAjYjNiMGFkOw0KICAgIH0NCg0KICAg IGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3ItZ3JheTcwLA0KICAgIGh0bWwgYm9keSAubXMt Ym9yZGVyQ29sb3ItZ3JheTcwLS1ob3Zlcjpob3ZlciB7DQogICAgICBib3JkZXItY29sb3I6 ICNiZWJiYjg7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci1ncmF5 NjAsDQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci1ncmF5NjAtLWhvdmVyOmhvdmVy IHsNCiAgICAgIGJvcmRlci1jb2xvcjogI2M4YzZjNDsNCiAgICB9DQoNCiAgICBodG1sIGJv ZHkgLm1zLWJvcmRlckNvbG9yLWdyYXk1MCwNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNv bG9yLWdyYXk1MC0taG92ZXI6aG92ZXIgew0KICAgICAgYm9yZGVyLWNvbG9yOiAjZDJkMGNl Ow0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3ItZ3JheTQwLA0KICAg IGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3ItZ3JheTQwLS1ob3Zlcjpob3ZlciB7DQogICAg ICBib3JkZXItY29sb3I6ICNlMWRmZGQ7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1i b3JkZXJDb2xvci1ncmF5MzAsDQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci1ncmF5 MzAtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJvcmRlci1jb2xvcjogI2VkZWJlOTsNCiAgICB9 DQoNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLWdyYXkyMCwNCiAgICBodG1sIGJv ZHkgLm1zLWJvcmRlckNvbG9yLWdyYXkyMC0taG92ZXI6aG92ZXIgew0KICAgICAgYm9yZGVy LWNvbG9yOiAjZjNmMmYxOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29s b3ItZ3JheTEwLA0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3ItZ3JheTEwLS1ob3Zl cjpob3ZlciB7DQogICAgICBib3JkZXItY29sb3I6ICNmYWY5Zjg7DQogICAgfQ0KDQogICAg aHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci13aGl0ZSwNCiAgICBodG1sIGJvZHkgLm1zLWJv cmRlckNvbG9yLXdoaXRlLS1ob3Zlcjpob3ZlciB7DQogICAgICBib3JkZXItY29sb3I6ICNm ZmZmZmY7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci1zaGFyZWRQ aW5rUmVkMTAsDQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci1zaGFyZWRQaW5rUmVk MTAtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJvcmRlci1jb2xvcjogIzc1MGIxYzsNCiAgICB9 DQoNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLXNoYXJlZFJlZDIwLA0KICAgIGh0 bWwgYm9keSAubXMtYm9yZGVyQ29sb3Itc2hhcmVkUmVkMjAtLWhvdmVyOmhvdmVyIHsNCiAg ICAgIGJvcmRlci1jb2xvcjogI2E0MjYyYzsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1z LWJvcmRlckNvbG9yLXNoYXJlZFJlZDEwLA0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29s b3Itc2hhcmVkUmVkMTAtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJvcmRlci1jb2xvcjogI2Qx MzQzODsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLXNoYXJlZFJl ZE9yYW5nZTIwLA0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3Itc2hhcmVkUmVkT3Jh bmdlMjAtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJvcmRlci1jb2xvcjogIzYwM2QzMDsNCiAg ICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLXNoYXJlZFJlZE9yYW5nZTEw LA0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3Itc2hhcmVkUmVkT3JhbmdlMTAtLWhv dmVyOmhvdmVyIHsNCiAgICAgIGJvcmRlci1jb2xvcjogI2RhM2IwMTsNCiAgICB9DQoNCiAg ICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLXNoYXJlZE9yYW5nZTMwLA0KICAgIGh0bWwg Ym9keSAubXMtYm9yZGVyQ29sb3Itc2hhcmVkT3JhbmdlMzAtLWhvdmVyOmhvdmVyIHsNCiAg ICAgIGJvcmRlci1jb2xvcjogIzhlNTYyZTsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1z LWJvcmRlckNvbG9yLXNoYXJlZE9yYW5nZTIwLA0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVy Q29sb3Itc2hhcmVkT3JhbmdlMjAtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJvcmRlci1jb2xv cjogI2NhNTAxMDsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLXNo YXJlZE9yYW5nZTEwLA0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3Itc2hhcmVkT3Jh bmdlMTAtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJvcmRlci1jb2xvcjogI2ZhNDsNCiAgICB9 DQoNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLXNoYXJlZFllbGxvdzEwLA0KICAg IGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3Itc2hhcmVkWWVsbG93MTAtLWhvdmVyOmhvdmVy IHsNCiAgICAgIGJvcmRlci1jb2xvcjogI2ZjZTEwMDsNCiAgICB9DQoNCiAgICBodG1sIGJv ZHkgLm1zLWJvcmRlckNvbG9yLXNoYXJlZE9yYW5nZVllbGxvdzIwLA0KICAgIGh0bWwgYm9k eSAubXMtYm9yZGVyQ29sb3Itc2hhcmVkT3JhbmdlWWVsbG93MjAtLWhvdmVyOmhvdmVyIHsN CiAgICAgIGJvcmRlci1jb2xvcjogIzk4NmYwYjsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkg Lm1zLWJvcmRlckNvbG9yLXNoYXJlZE9yYW5nZVllbGxvdzEwLA0KICAgIGh0bWwgYm9keSAu bXMtYm9yZGVyQ29sb3Itc2hhcmVkT3JhbmdlWWVsbG93MTAtLWhvdmVyOmhvdmVyIHsNCiAg ICAgIGJvcmRlci1jb2xvcjogI2MxOWMwMDsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1z LWJvcmRlckNvbG9yLXNoYXJlZFllbGxvd0dyZWVuMTAsDQogICAgaHRtbCBib2R5IC5tcy1i b3JkZXJDb2xvci1zaGFyZWRZZWxsb3dHcmVlbjEwLS1ob3Zlcjpob3ZlciB7DQogICAgICBi b3JkZXItY29sb3I6ICM4Y2JkMTg7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1ib3Jk ZXJDb2xvci1zaGFyZWRHcmVlbjIwLA0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3It c2hhcmVkR3JlZW4yMC0taG92ZXI6aG92ZXIgew0KICAgICAgYm9yZGVyLWNvbG9yOiAjMGI2 YTBiOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3Itc2hhcmVkR3Jl ZW4xMCwNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLXNoYXJlZEdyZWVuMTAtLWhv dmVyOmhvdmVyIHsNCiAgICAgIGJvcmRlci1jb2xvcjogIzQ5ODIwNTsNCiAgICB9DQoNCiAg ICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLXNoYXJlZEdyZWVuQ3lhbjEwLA0KICAgIGh0 bWwgYm9keSAubXMtYm9yZGVyQ29sb3Itc2hhcmVkR3JlZW5DeWFuMTAtLWhvdmVyOmhvdmVy IHsNCiAgICAgIGJvcmRlci1jb2xvcjogIzAwYWQ1NjsNCiAgICB9DQoNCiAgICBodG1sIGJv ZHkgLm1zLWJvcmRlckNvbG9yLXNoYXJlZEN5YW40MCwNCiAgICBodG1sIGJvZHkgLm1zLWJv cmRlckNvbG9yLXNoYXJlZEN5YW40MC0taG92ZXI6aG92ZXIgew0KICAgICAgYm9yZGVyLWNv bG9yOiAjMDA1ZTUwOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3It c2hhcmVkQ3lhbjMwLA0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3Itc2hhcmVkQ3lh bjMwLS1ob3Zlcjpob3ZlciB7DQogICAgICBib3JkZXItY29sb3I6ICMwMDViNzA7DQogICAg fQ0KDQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci1zaGFyZWRDeWFuMjAsDQogICAg aHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci1zaGFyZWRDeWFuMjAtLWhvdmVyOmhvdmVyIHsN CiAgICAgIGJvcmRlci1jb2xvcjogIzAzODM4NzsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkg Lm1zLWJvcmRlckNvbG9yLXNoYXJlZEN5YW4xMCwNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRl ckNvbG9yLXNoYXJlZEN5YW4xMC0taG92ZXI6aG92ZXIgew0KICAgICAgYm9yZGVyLWNvbG9y OiAjMDBiN2MzOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3Itc2hh cmVkQ3lhbkJsdWUyMCwNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLXNoYXJlZEN5 YW5CbHVlMjAtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJvcmRlci1jb2xvcjogIzAwNGU4YzsN CiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLXNoYXJlZEN5YW5CbHVl MTAsDQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci1zaGFyZWRDeWFuQmx1ZTEwLS1o b3Zlcjpob3ZlciB7DQogICAgICBib3JkZXItY29sb3I6ICMwMDc4ZDQ7DQogICAgfQ0KDQog ICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci1zaGFyZWRCbHVlMTAsDQogICAgaHRtbCBi b2R5IC5tcy1ib3JkZXJDb2xvci1zaGFyZWRCbHVlMTAtLWhvdmVyOmhvdmVyIHsNCiAgICAg IGJvcmRlci1jb2xvcjogIzRmNmJlZDsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJv cmRlckNvbG9yLXNoYXJlZEJsdWVNYWdlbnRhNDAsDQogICAgaHRtbCBib2R5IC5tcy1ib3Jk ZXJDb2xvci1zaGFyZWRCbHVlTWFnZW50YTQwLS1ob3Zlcjpob3ZlciB7DQogICAgICBib3Jk ZXItY29sb3I6ICMzNzMyNzc7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJD b2xvci1zaGFyZWRCbHVlTWFnZW50YTMwLA0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29s b3Itc2hhcmVkQmx1ZU1hZ2VudGEzMC0taG92ZXI6aG92ZXIgew0KICAgICAgYm9yZGVyLWNv bG9yOiAjNWMyZTkxOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3It c2hhcmVkQmx1ZU1hZ2VudGEyMCwNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLXNo YXJlZEJsdWVNYWdlbnRhMjAtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJvcmRlci1jb2xvcjog Izg3NjRiODsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLXNoYXJl ZEJsdWVNYWdlbnRhMTAsDQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci1zaGFyZWRC bHVlTWFnZW50YTEwLS1ob3Zlcjpob3ZlciB7DQogICAgICBib3JkZXItY29sb3I6ICM4Mzc4 ZGU7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci1zaGFyZWRNYWdl bnRhMjAsDQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci1zaGFyZWRNYWdlbnRhMjAt LWhvdmVyOmhvdmVyIHsNCiAgICAgIGJvcmRlci1jb2xvcjogIzg4MTc5ODsNCiAgICB9DQoN CiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLXNoYXJlZE1hZ2VudGExMCwNCiAgICBo dG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLXNoYXJlZE1hZ2VudGExMC0taG92ZXI6aG92ZXIg ew0KICAgICAgYm9yZGVyLWNvbG9yOiAjYzIzOWIzOw0KICAgIH0NCg0KICAgIGh0bWwgYm9k eSAubXMtYm9yZGVyQ29sb3Itc2hhcmVkTWFnZW50YVBpbmsyMCwNCiAgICBodG1sIGJvZHkg Lm1zLWJvcmRlckNvbG9yLXNoYXJlZE1hZ2VudGFQaW5rMjAtLWhvdmVyOmhvdmVyIHsNCiAg ICAgIGJvcmRlci1jb2xvcjogIzliMDA2MjsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1z LWJvcmRlckNvbG9yLXNoYXJlZE1hZ2VudGFQaW5rMTAsDQogICAgaHRtbCBib2R5IC5tcy1i b3JkZXJDb2xvci1zaGFyZWRNYWdlbnRhUGluazEwLS1ob3Zlcjpob3ZlciB7DQogICAgICBi b3JkZXItY29sb3I6ICNlMzAwOGM7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1ib3Jk ZXJDb2xvci1zaGFyZWRHcmF5NDAsDQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci1z aGFyZWRHcmF5NDAtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJvcmRlci1jb2xvcjogIzM5Mzkz OTsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLXNoYXJlZEdyYXkz MCwNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLXNoYXJlZEdyYXkzMC0taG92ZXI6 aG92ZXIgew0KICAgICAgYm9yZGVyLWNvbG9yOiAjN2E3NTc0Ow0KICAgIH0NCg0KICAgIGh0 bWwgYm9keSAubXMtYm9yZGVyQ29sb3Itc2hhcmVkR3JheTIwLA0KICAgIGh0bWwgYm9keSAu bXMtYm9yZGVyQ29sb3Itc2hhcmVkR3JheTIwLS1ob3Zlcjpob3ZlciB7DQogICAgICBib3Jk ZXItY29sb3I6ICM2OTc5N2U7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJD b2xvci1zaGFyZWRHcmF5MTAsDQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci1zaGFy ZWRHcmF5MTAtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJvcmRlci1jb2xvcjogI2EwYWViMjsN CiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1jb21tdW5pY2F0aW9uU2hh ZGUzMCwNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1jb21tdW5pY2F0aW9uU2hhZGUz MC0taG92ZXI6aG92ZXIgew0KICAgICAgY29sb3I6ICMwMDQ1Nzg7DQogICAgfQ0KDQogICAg aHRtbCBib2R5IC5tcy1mb250Q29sb3ItY29tbXVuaWNhdGlvblNoYWRlMjAsDQogICAgaHRt bCBib2R5IC5tcy1mb250Q29sb3ItY29tbXVuaWNhdGlvblNoYWRlMjAtLWhvdmVyOmhvdmVy IHsNCiAgICAgIGNvbG9yOiAjMDA1YTllOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMt Zm9udENvbG9yLWNvbW11bmljYXRpb25TaGFkZTEwLA0KICAgIGh0bWwgYm9keSAubXMtZm9u dENvbG9yLWNvbW11bmljYXRpb25TaGFkZTEwLS1ob3Zlcjpob3ZlciB7DQogICAgICBjb2xv cjogIzEwNmViZTsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1jb21t dW5pY2F0aW9uUHJpbWFyeSwNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1jb21tdW5p Y2F0aW9uUHJpbWFyeS0taG92ZXI6aG92ZXIgew0KICAgICAgY29sb3I6ICMwMDc4ZDQ7DQog ICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItY29tbXVuaWNhdGlvblRpbnQx MCwNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1jb21tdW5pY2F0aW9uVGludDEwLS1o b3Zlcjpob3ZlciB7DQogICAgICBjb2xvcjogIzJiODhkODsNCiAgICB9DQoNCiAgICBodG1s IGJvZHkgLm1zLWZvbnRDb2xvci1jb21tdW5pY2F0aW9uVGludDIwLA0KICAgIGh0bWwgYm9k eSAubXMtZm9udENvbG9yLWNvbW11bmljYXRpb25UaW50MjAtLWhvdmVyOmhvdmVyIHsNCiAg ICAgIGNvbG9yOiAjYzdlMGY0Ow0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtZm9udENv bG9yLWNvbW11bmljYXRpb25UaW50MzAsDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3It Y29tbXVuaWNhdGlvblRpbnQzMC0taG92ZXI6aG92ZXIgew0KICAgICAgY29sb3I6ICNkZWVj Zjk7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItY29tbXVuaWNhdGlv blRpbnQ0MCwNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1jb21tdW5pY2F0aW9uVGlu dDQwLS1ob3Zlcjpob3ZlciB7DQogICAgICBjb2xvcjogI2VmZjZmYzsNCiAgICB9DQoNCiAg ICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1ibGFjaywNCiAgICBodG1sIGJvZHkgLm1zLWZv bnRDb2xvci1ibGFjay0taG92ZXI6aG92ZXIgew0KICAgICAgY29sb3I6ICMwMDAwMDA7DQog ICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItZ3JheTIyMCwNCiAgICBodG1s IGJvZHkgLm1zLWZvbnRDb2xvci1ncmF5MjIwLS1ob3Zlcjpob3ZlciB7DQogICAgICBjb2xv cjogIzExMTAwZjsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1ncmF5 MjEwLA0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLWdyYXkyMTAtLWhvdmVyOmhvdmVy IHsNCiAgICAgIGNvbG9yOiAjMTYxNTE0Ow0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMt Zm9udENvbG9yLWdyYXkyMDAsDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItZ3JheTIw MC0taG92ZXI6aG92ZXIgew0KICAgICAgY29sb3I6ICMxYjFhMTk7DQogICAgfQ0KDQogICAg aHRtbCBib2R5IC5tcy1mb250Q29sb3ItZ3JheTE5MCwNCiAgICBodG1sIGJvZHkgLm1zLWZv bnRDb2xvci1ncmF5MTkwLS1ob3Zlcjpob3ZlciB7DQogICAgICBjb2xvcjogIzIwMWYxZTsN CiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1ncmF5MTgwLA0KICAgIGh0 bWwgYm9keSAubXMtZm9udENvbG9yLWdyYXkxODAtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGNv bG9yOiAjMjUyNDIzOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLWdy YXkxNzAsDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItZ3JheTE3MC0taG92ZXI6aG92 ZXIgew0KICAgICAgY29sb3I6ICMyOTI4Mjc7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5t cy1mb250Q29sb3ItZ3JheTE2MCwNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1ncmF5 MTYwLS1ob3Zlcjpob3ZlciB7DQogICAgICBjb2xvcjogIzMyMzEzMDsNCiAgICB9DQoNCiAg ICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1ncmF5MTUwLA0KICAgIGh0bWwgYm9keSAubXMt Zm9udENvbG9yLWdyYXkxNTAtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjM2IzYTM5 Ow0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLWdyYXkxNDAsDQogICAg aHRtbCBib2R5IC5tcy1mb250Q29sb3ItZ3JheTE0MC0taG92ZXI6aG92ZXIgew0KICAgICAg Y29sb3I6ICM0ODQ2NDQ7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3It Z3JheTEzMCwNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1ncmF5MTMwLS1ob3Zlcjpo b3ZlciB7DQogICAgICBjb2xvcjogIzYwNWU1YzsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkg Lm1zLWZvbnRDb2xvci1ncmF5MTIwLA0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLWdy YXkxMjAtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjNzk3Nzc1Ow0KICAgIH0NCg0K ICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLWdyYXkxMTAsDQogICAgaHRtbCBib2R5IC5t cy1mb250Q29sb3ItZ3JheTExMC0taG92ZXI6aG92ZXIgew0KICAgICAgY29sb3I6ICM4YTg4 ODY7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItZ3JheTEwMCwNCiAg ICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1ncmF5MTAwLS1ob3Zlcjpob3ZlciB7DQogICAg ICBjb2xvcjogIzk3OTU5MzsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xv ci1ncmF5OTAsDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItZ3JheTkwLS1ob3Zlcjpo b3ZlciB7DQogICAgICBjb2xvcjogI2ExOWY5ZDsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkg Lm1zLWZvbnRDb2xvci1ncmF5ODAsDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItZ3Jh eTgwLS1ob3Zlcjpob3ZlciB7DQogICAgICBjb2xvcjogI2IzYjBhZDsNCiAgICB9DQoNCiAg ICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1ncmF5NzAsDQogICAgaHRtbCBib2R5IC5tcy1m b250Q29sb3ItZ3JheTcwLS1ob3Zlcjpob3ZlciB7DQogICAgICBjb2xvcjogI2JlYmJiODsN CiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1ncmF5NjAsDQogICAgaHRt bCBib2R5IC5tcy1mb250Q29sb3ItZ3JheTYwLS1ob3Zlcjpob3ZlciB7DQogICAgICBjb2xv cjogI2M4YzZjNDsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1ncmF5 NTAsDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItZ3JheTUwLS1ob3Zlcjpob3ZlciB7 DQogICAgICBjb2xvcjogI2QyZDBjZTsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWZv bnRDb2xvci1ncmF5NDAsDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItZ3JheTQwLS1o b3Zlcjpob3ZlciB7DQogICAgICBjb2xvcjogI2UxZGZkZDsNCiAgICB9DQoNCiAgICBodG1s IGJvZHkgLm1zLWZvbnRDb2xvci1ncmF5MzAsDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29s b3ItZ3JheTMwLS1ob3Zlcjpob3ZlciB7DQogICAgICBjb2xvcjogI2VkZWJlOTsNCiAgICB9 DQoNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1ncmF5MjAsDQogICAgaHRtbCBib2R5 IC5tcy1mb250Q29sb3ItZ3JheTIwLS1ob3Zlcjpob3ZlciB7DQogICAgICBjb2xvcjogI2Yz ZjJmMTsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1ncmF5MTAsDQog ICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItZ3JheTEwLS1ob3Zlcjpob3ZlciB7DQogICAg ICBjb2xvcjogI2ZhZjlmODsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xv ci13aGl0ZSwNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci13aGl0ZS0taG92ZXI6aG92 ZXIgew0KICAgICAgY29sb3I6ICNmZmZmZmY7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5t cy1mb250Q29sb3Itc2hhcmVkUGlua1JlZDEwLA0KICAgIGh0bWwgYm9keSAubXMtZm9udENv bG9yLXNoYXJlZFBpbmtSZWQxMC0taG92ZXI6aG92ZXIgew0KICAgICAgY29sb3I6ICM3NTBi MWM7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3Itc2hhcmVkUmVkMjAs DQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3Itc2hhcmVkUmVkMjAtLWhvdmVyOmhvdmVy IHsNCiAgICAgIGNvbG9yOiAjYTQyNjJjOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMt Zm9udENvbG9yLXNoYXJlZFJlZDEwLA0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLXNo YXJlZFJlZDEwLS1ob3Zlcjpob3ZlciB7DQogICAgICBjb2xvcjogI2QxMzQzODsNCiAgICB9 DQoNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1zaGFyZWRSZWRPcmFuZ2UyMCwNCiAg ICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1zaGFyZWRSZWRPcmFuZ2UyMC0taG92ZXI6aG92 ZXIgew0KICAgICAgY29sb3I6ICM2MDNkMzA7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5t cy1mb250Q29sb3Itc2hhcmVkUmVkT3JhbmdlMTAsDQogICAgaHRtbCBib2R5IC5tcy1mb250 Q29sb3Itc2hhcmVkUmVkT3JhbmdlMTAtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAj ZGEzYjAxOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLXNoYXJlZE9y YW5nZTMwLA0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLXNoYXJlZE9yYW5nZTMwLS1o b3Zlcjpob3ZlciB7DQogICAgICBjb2xvcjogIzhlNTYyZTsNCiAgICB9DQoNCiAgICBodG1s IGJvZHkgLm1zLWZvbnRDb2xvci1zaGFyZWRPcmFuZ2UyMCwNCiAgICBodG1sIGJvZHkgLm1z LWZvbnRDb2xvci1zaGFyZWRPcmFuZ2UyMC0taG92ZXI6aG92ZXIgew0KICAgICAgY29sb3I6 ICNjYTUwMTA7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3Itc2hhcmVk T3JhbmdlMTAsDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3Itc2hhcmVkT3JhbmdlMTAt LWhvdmVyOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjZmE0Ow0KICAgIH0NCg0KICAgIGh0bWwg Ym9keSAubXMtZm9udENvbG9yLXNoYXJlZFllbGxvdzEwLA0KICAgIGh0bWwgYm9keSAubXMt Zm9udENvbG9yLXNoYXJlZFllbGxvdzEwLS1ob3Zlcjpob3ZlciB7DQogICAgICBjb2xvcjog I2ZjZTEwMDsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1zaGFyZWRP cmFuZ2VZZWxsb3cyMCwNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1zaGFyZWRPcmFu Z2VZZWxsb3cyMC0taG92ZXI6aG92ZXIgew0KICAgICAgY29sb3I6ICM5ODZmMGI7DQogICAg fQ0KDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3Itc2hhcmVkT3JhbmdlWWVsbG93MTAs DQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3Itc2hhcmVkT3JhbmdlWWVsbG93MTAtLWhv dmVyOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjYzE5YzAwOw0KICAgIH0NCg0KICAgIGh0bWwg Ym9keSAubXMtZm9udENvbG9yLXNoYXJlZFllbGxvd0dyZWVuMTAsDQogICAgaHRtbCBib2R5 IC5tcy1mb250Q29sb3Itc2hhcmVkWWVsbG93R3JlZW4xMC0taG92ZXI6aG92ZXIgew0KICAg ICAgY29sb3I6ICM4Y2JkMTg7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29s b3Itc2hhcmVkR3JlZW4yMCwNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1zaGFyZWRH cmVlbjIwLS1ob3Zlcjpob3ZlciB7DQogICAgICBjb2xvcjogIzBiNmEwYjsNCiAgICB9DQoN CiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1zaGFyZWRHcmVlbjEwLA0KICAgIGh0bWwg Ym9keSAubXMtZm9udENvbG9yLXNoYXJlZEdyZWVuMTAtLWhvdmVyOmhvdmVyIHsNCiAgICAg IGNvbG9yOiAjNDk4MjA1Ow0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9y LXNoYXJlZEdyZWVuQ3lhbjEwLA0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLXNoYXJl ZEdyZWVuQ3lhbjEwLS1ob3Zlcjpob3ZlciB7DQogICAgICBjb2xvcjogIzAwYWQ1NjsNCiAg ICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1zaGFyZWRDeWFuNDAsDQogICAg aHRtbCBib2R5IC5tcy1mb250Q29sb3Itc2hhcmVkQ3lhbjQwLS1ob3Zlcjpob3ZlciB7DQog ICAgICBjb2xvcjogIzAwNWU1MDsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRD b2xvci1zaGFyZWRDeWFuMzAsDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3Itc2hhcmVk Q3lhbjMwLS1ob3Zlcjpob3ZlciB7DQogICAgICBjb2xvcjogIzAwNWI3MDsNCiAgICB9DQoN CiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1zaGFyZWRDeWFuMjAsDQogICAgaHRtbCBi b2R5IC5tcy1mb250Q29sb3Itc2hhcmVkQ3lhbjIwLS1ob3Zlcjpob3ZlciB7DQogICAgICBj b2xvcjogIzAzODM4NzsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1z aGFyZWRDeWFuMTAsDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3Itc2hhcmVkQ3lhbjEw LS1ob3Zlcjpob3ZlciB7DQogICAgICBjb2xvcjogIzAwYjdjMzsNCiAgICB9DQoNCiAgICBo dG1sIGJvZHkgLm1zLWZvbnRDb2xvci1zaGFyZWRDeWFuQmx1ZTIwLA0KICAgIGh0bWwgYm9k eSAubXMtZm9udENvbG9yLXNoYXJlZEN5YW5CbHVlMjAtLWhvdmVyOmhvdmVyIHsNCiAgICAg IGNvbG9yOiAjMDA0ZThjOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9y LXNoYXJlZEN5YW5CbHVlMTAsDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3Itc2hhcmVk Q3lhbkJsdWUxMC0taG92ZXI6aG92ZXIgew0KICAgICAgY29sb3I6ICMwMDc4ZDQ7DQogICAg fQ0KDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3Itc2hhcmVkQmx1ZTEwLA0KICAgIGh0 bWwgYm9keSAubXMtZm9udENvbG9yLXNoYXJlZEJsdWUxMC0taG92ZXI6aG92ZXIgew0KICAg ICAgY29sb3I6ICM0ZjZiZWQ7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29s b3Itc2hhcmVkQmx1ZU1hZ2VudGE0MCwNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1z aGFyZWRCbHVlTWFnZW50YTQwLS1ob3Zlcjpob3ZlciB7DQogICAgICBjb2xvcjogIzM3MzI3 NzsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1zaGFyZWRCbHVlTWFn ZW50YTMwLA0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLXNoYXJlZEJsdWVNYWdlbnRh MzAtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjNWMyZTkxOw0KICAgIH0NCg0KICAg IGh0bWwgYm9keSAubXMtZm9udENvbG9yLXNoYXJlZEJsdWVNYWdlbnRhMjAsDQogICAgaHRt bCBib2R5IC5tcy1mb250Q29sb3Itc2hhcmVkQmx1ZU1hZ2VudGEyMC0taG92ZXI6aG92ZXIg ew0KICAgICAgY29sb3I6ICM4NzY0Yjg7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1m b250Q29sb3Itc2hhcmVkQmx1ZU1hZ2VudGExMCwNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRD b2xvci1zaGFyZWRCbHVlTWFnZW50YTEwLS1ob3Zlcjpob3ZlciB7DQogICAgICBjb2xvcjog IzgzNzhkZTsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1zaGFyZWRN YWdlbnRhMjAsDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3Itc2hhcmVkTWFnZW50YTIw LS1ob3Zlcjpob3ZlciB7DQogICAgICBjb2xvcjogIzg4MTc5ODsNCiAgICB9DQoNCiAgICBo dG1sIGJvZHkgLm1zLWZvbnRDb2xvci1zaGFyZWRNYWdlbnRhMTAsDQogICAgaHRtbCBib2R5 IC5tcy1mb250Q29sb3Itc2hhcmVkTWFnZW50YTEwLS1ob3Zlcjpob3ZlciB7DQogICAgICBj b2xvcjogI2MyMzliMzsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1z aGFyZWRNYWdlbnRhUGluazIwLA0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLXNoYXJl ZE1hZ2VudGFQaW5rMjAtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjOWIwMDYyOw0K ICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLXNoYXJlZE1hZ2VudGFQaW5r MTAsDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3Itc2hhcmVkTWFnZW50YVBpbmsxMC0t aG92ZXI6aG92ZXIgew0KICAgICAgY29sb3I6ICNlMzAwOGM7DQogICAgfQ0KDQogICAgaHRt bCBib2R5IC5tcy1mb250Q29sb3Itc2hhcmVkR3JheTQwLA0KICAgIGh0bWwgYm9keSAubXMt Zm9udENvbG9yLXNoYXJlZEdyYXk0MC0taG92ZXI6aG92ZXIgew0KICAgICAgY29sb3I6ICMz OTM5Mzk7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3Itc2hhcmVkR3Jh eTMwLA0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLXNoYXJlZEdyYXkzMC0taG92ZXI6 aG92ZXIgew0KICAgICAgY29sb3I6ICM3YTc1NzQ7DQogICAgfQ0KDQogICAgaHRtbCBib2R5 IC5tcy1mb250Q29sb3Itc2hhcmVkR3JheTIwLA0KICAgIGh0bWwgYm9keSAubXMtZm9udENv bG9yLXNoYXJlZEdyYXkyMC0taG92ZXI6aG92ZXIgew0KICAgICAgY29sb3I6ICM2OTc5N2U7 DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3Itc2hhcmVkR3JheTEwLA0K ICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLXNoYXJlZEdyYXkxMC0taG92ZXI6aG92ZXIg ew0KICAgICAgY29sb3I6ICNhMGFlYjI7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1i Z0NvbG9yLXRoZW1lRGFyaywNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3ItdGhlbWVEYXJr LS1ob3Zlcjpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA1YTllOw0KICAg IH0NCg0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci10aGVtZURhcmtBbHQsDQogICAgaHRt bCBib2R5IC5tcy1iZ0NvbG9yLXRoZW1lRGFya0FsdC0taG92ZXI6aG92ZXIgew0KICAgICAg YmFja2dyb3VuZC1jb2xvcjogIzEwNmViZTsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1z LWJnQ29sb3ItdGhlbWVEYXJrZXIsDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLXRoZW1l RGFya2VyLS1ob3Zlcjpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0NTc4 Ow0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci10aGVtZVByaW1hcnksDQog ICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLXRoZW1lUHJpbWFyeS0taG92ZXI6aG92ZXIgew0K ICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwNzhkNDsNCiAgICB9DQoNCiAgICBodG1sIGJv ZHkgLm1zLWJnQ29sb3ItdGhlbWVTZWNvbmRhcnksDQogICAgaHRtbCBib2R5IC5tcy1iZ0Nv bG9yLXRoZW1lU2Vjb25kYXJ5LS1ob3Zlcjpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNv bG9yOiAjMmI4OGQ4Ow0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci10aGVt ZVRlcnRpYXJ5LA0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci10aGVtZVRlcnRpYXJ5LS1o b3Zlcjpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzFhZmU1Ow0KICAgIH0N Cg0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci10aGVtZUxpZ2h0LA0KICAgIGh0bWwgYm9k eSAubXMtYmdDb2xvci10aGVtZUxpZ2h0LS1ob3Zlcjpob3ZlciB7DQogICAgICBiYWNrZ3Jv dW5kLWNvbG9yOiAjYzdlMGY0Ow0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xv ci10aGVtZUxpZ2h0ZXIsDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLXRoZW1lTGlnaHRl ci0taG92ZXI6aG92ZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2RlZWNmOTsNCiAg ICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3ItdGhlbWVMaWdodGVyQWx0LA0KICAg IGh0bWwgYm9keSAubXMtYmdDb2xvci10aGVtZUxpZ2h0ZXJBbHQtLWhvdmVyOmhvdmVyIHsN CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlZmY2ZmM7DQogICAgfQ0KDQogICAgaHRtbCBi b2R5IC5tcy1ib3JkZXJDb2xvci10aGVtZURhcmssDQogICAgaHRtbCBib2R5IC5tcy1ib3Jk ZXJDb2xvci10aGVtZURhcmstLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJvcmRlci1jb2xvcjog IzAwNWE5ZTsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLXRoZW1l RGFya0FsdCwNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLXRoZW1lRGFya0FsdC0t aG92ZXI6aG92ZXIgew0KICAgICAgYm9yZGVyLWNvbG9yOiAjMTA2ZWJlOw0KICAgIH0NCg0K ICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3ItdGhlbWVEYXJrZXIsDQogICAgaHRtbCBi b2R5IC5tcy1ib3JkZXJDb2xvci10aGVtZURhcmtlci0taG92ZXI6aG92ZXIgew0KICAgICAg Ym9yZGVyLWNvbG9yOiAjMDA0NTc4Ow0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYm9y ZGVyQ29sb3ItdGhlbWVQcmltYXJ5LA0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3It dGhlbWVQcmltYXJ5LS1ob3Zlcjpob3ZlciB7DQogICAgICBib3JkZXItY29sb3I6ICMwMDc4 ZDQ7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci10aGVtZVNlY29u ZGFyeSwNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLXRoZW1lU2Vjb25kYXJ5LS1o b3Zlcjpob3ZlciB7DQogICAgICBib3JkZXItY29sb3I6ICMyYjg4ZDg7DQogICAgfQ0KDQog ICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci10aGVtZVRlcnRpYXJ5LA0KICAgIGh0bWwg Ym9keSAubXMtYm9yZGVyQ29sb3ItdGhlbWVUZXJ0aWFyeS0taG92ZXI6aG92ZXIgew0KICAg ICAgYm9yZGVyLWNvbG9yOiAjNzFhZmU1Ow0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMt Ym9yZGVyQ29sb3ItdGhlbWVMaWdodCwNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9y LXRoZW1lTGlnaHQtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJvcmRlci1jb2xvcjogI2M3ZTBm NDsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLXRoZW1lTGlnaHRl ciwNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLXRoZW1lTGlnaHRlci0taG92ZXI6 aG92ZXIgew0KICAgICAgYm9yZGVyLWNvbG9yOiAjZGVlY2Y5Ow0KICAgIH0NCg0KICAgIGh0 bWwgYm9keSAubXMtYm9yZGVyQ29sb3ItdGhlbWVMaWdodGVyQWx0LA0KICAgIGh0bWwgYm9k eSAubXMtYm9yZGVyQ29sb3ItdGhlbWVMaWdodGVyQWx0LS1ob3Zlcjpob3ZlciB7DQogICAg ICBib3JkZXItY29sb3I6ICNlZmY2ZmM7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1m b250Q29sb3ItdGhlbWVEYXJrZXIsDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItdGhl bWVEYXJrZXItLWhvdmVyOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjMDA0NTc4Ow0KICAgIH0N Cg0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLXRoZW1lRGFyaywNCiAgICBodG1sIGJv ZHkgLm1zLWZvbnRDb2xvci10aGVtZURhcmstLWhvdmVyOmhvdmVyIHsNCiAgICAgIGNvbG9y OiAjMDA1YTllOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLXRoZW1l RGFya0FsdCwNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci10aGVtZURhcmtBbHQtLWhv dmVyOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjMTA2ZWJlOw0KICAgIH0NCg0KICAgIGh0bWwg Ym9keSAubXMtZm9udENvbG9yLXRoZW1lUHJpbWFyeSwNCiAgICBodG1sIGJvZHkgLm1zLWZv bnRDb2xvci10aGVtZVByaW1hcnktLWhvdmVyOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjMDA3 OGQ0Ow0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLXRoZW1lU2Vjb25k YXJ5LA0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLXRoZW1lU2Vjb25kYXJ5LS1ob3Zl cjpob3ZlciB7DQogICAgICBjb2xvcjogIzJiODhkODsNCiAgICB9DQoNCiAgICBodG1sIGJv ZHkgLm1zLWZvbnRDb2xvci10aGVtZVRlcnRpYXJ5LA0KICAgIGh0bWwgYm9keSAubXMtZm9u dENvbG9yLXRoZW1lVGVydGlhcnktLWhvdmVyOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjNzFh ZmU1Ow0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLXRoZW1lTGlnaHQs DQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItdGhlbWVMaWdodC0taG92ZXI6aG92ZXIg ew0KICAgICAgY29sb3I6ICNjN2UwZjQ7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1m b250Q29sb3ItdGhlbWVMaWdodGVyLA0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLXRo ZW1lTGlnaHRlci0taG92ZXI6aG92ZXIgew0KICAgICAgY29sb3I6ICNkZWVjZjk7DQogICAg fQ0KDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItdGhlbWVMaWdodGVyQWx0LA0KICAg IGh0bWwgYm9keSAubXMtZm9udENvbG9yLXRoZW1lTGlnaHRlckFsdC0taG92ZXI6aG92ZXIg ew0KICAgICAgY29sb3I6ICNlZmY2ZmM7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1i Z0NvbG9yLWJsYWNrLA0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1ibGFjay0taG92ZXI6 aG92ZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDsNCiAgICB9DQoNCiAg ICBodG1sIGJvZHkgLm1zLWJnQ29sb3ItbmV1dHJhbERhcmssDQogICAgaHRtbCBib2R5IC5t cy1iZ0NvbG9yLW5ldXRyYWxEYXJrLS1ob3Zlcjpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5k LWNvbG9yOiAjMTQxNDE0Ow0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1u ZXV0cmFsUHJpbWFyeSwNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3ItbmV1dHJhbFByaW1h cnktLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyNDI0MjQ7DQog ICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLW5ldXRyYWxQcmltYXJ5QWx0LA0K ICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1uZXV0cmFsUHJpbWFyeUFsdC0taG92ZXI6aG92 ZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzQyNDI0MjsNCiAgICB9DQoNCiAgICBo dG1sIGJvZHkgLm1zLWJnQ29sb3ItbmV1dHJhbFNlY29uZGFyeSwNCiAgICBodG1sIGJvZHkg Lm1zLWJnQ29sb3ItbmV1dHJhbFNlY29uZGFyeS0taG92ZXI6aG92ZXIgew0KICAgICAgYmFj a2dyb3VuZC1jb2xvcjogIzYxNjE2MTsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJn Q29sb3ItbmV1dHJhbFNlY29uZGFyeUFsdCwNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3It bmV1dHJhbFNlY29uZGFyeUFsdC0taG92ZXI6aG92ZXIgew0KICAgICAgYmFja2dyb3VuZC1j b2xvcjogIzhhOGE4YTsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3ItbmV1 dHJhbFRlcnRpYXJ5LA0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1uZXV0cmFsVGVydGlh cnktLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM5ZTllOWU7DQog ICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLW5ldXRyYWxUZXJ0aWFyeUFsdCwN CiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3ItbmV1dHJhbFRlcnRpYXJ5QWx0LS1ob3Zlcjpo b3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzdjN2M3Ow0KICAgIH0NCg0KICAg IGh0bWwgYm9keSAubXMtYmdDb2xvci1uZXV0cmFsUXVhdGVybmFyeSwNCiAgICBodG1sIGJv ZHkgLm1zLWJnQ29sb3ItbmV1dHJhbFF1YXRlcm5hcnktLWhvdmVyOmhvdmVyIHsNCiAgICAg IGJhY2tncm91bmQtY29sb3I6ICNkMWQxZDE7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5t cy1iZ0NvbG9yLW5ldXRyYWxRdWF0ZXJuYXJ5QWx0LA0KICAgIGh0bWwgYm9keSAubXMtYmdD b2xvci1uZXV0cmFsUXVhdGVybmFyeUFsdC0taG92ZXI6aG92ZXIgew0KICAgICAgYmFja2dy b3VuZC1jb2xvcjogI2UwZTBlMDsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29s b3ItbmV1dHJhbExpZ2h0LA0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1uZXV0cmFsTGln aHQtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlYmViZWI7DQog ICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLW5ldXRyYWxMaWdodGVyLA0KICAg IGh0bWwgYm9keSAubXMtYmdDb2xvci1uZXV0cmFsTGlnaHRlci0taG92ZXI6aG92ZXIgew0K ICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YwZjBmMDsNCiAgICB9DQoNCiAgICBodG1sIGJv ZHkgLm1zLWJnQ29sb3ItbmV1dHJhbExpZ2h0ZXJBbHQsDQogICAgaHRtbCBib2R5IC5tcy1i Z0NvbG9yLW5ldXRyYWxMaWdodGVyQWx0LS1ob3Zlcjpob3ZlciB7DQogICAgICBiYWNrZ3Jv dW5kLWNvbG9yOiAjZmFmYWZhOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xv ci13aGl0ZSwNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3Itd2hpdGUtLWhvdmVyOmhvdmVy IHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7DQogICAgfQ0KDQogICAgaHRt bCBib2R5IC5tcy1ib3JkZXJDb2xvci1ibGFjaywNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRl ckNvbG9yLWJsYWNrLS1ob3Zlcjpob3ZlciB7DQogICAgICBib3JkZXItY29sb3I6ICMwMDAw MDA7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci1uZXV0cmFsRGFy aywNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLW5ldXRyYWxEYXJrLS1ob3Zlcjpo b3ZlciB7DQogICAgICBib3JkZXItY29sb3I6ICMxNDE0MTQ7DQogICAgfQ0KDQogICAgaHRt bCBib2R5IC5tcy1ib3JkZXJDb2xvci1uZXV0cmFsUHJpbWFyeSwNCiAgICBodG1sIGJvZHkg Lm1zLWJvcmRlckNvbG9yLW5ldXRyYWxQcmltYXJ5LS1ob3Zlcjpob3ZlciB7DQogICAgICBi b3JkZXItY29sb3I6ICMyNDI0MjQ7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1ib3Jk ZXJDb2xvci1uZXV0cmFsUHJpbWFyeUFsdCwNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNv bG9yLW5ldXRyYWxQcmltYXJ5QWx0LS1ob3Zlcjpob3ZlciB7DQogICAgICBib3JkZXItY29s b3I6ICM0MjQyNDI7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci1u ZXV0cmFsU2Vjb25kYXJ5LA0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3ItbmV1dHJh bFNlY29uZGFyeS0taG92ZXI6aG92ZXIgew0KICAgICAgYm9yZGVyLWNvbG9yOiAjNjE2MTYx Ow0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3ItbmV1dHJhbFNlY29u ZGFyeUFsdCwNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLW5ldXRyYWxTZWNvbmRh cnlBbHQtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJvcmRlci1jb2xvcjogIzhhOGE4YTsNCiAg ICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLW5ldXRyYWxUZXJ0aWFyeSwN CiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLW5ldXRyYWxUZXJ0aWFyeS0taG92ZXI6 aG92ZXIgew0KICAgICAgYm9yZGVyLWNvbG9yOiAjOWU5ZTllOw0KICAgIH0NCg0KICAgIGh0 bWwgYm9keSAubXMtYm9yZGVyQ29sb3ItbmV1dHJhbFRlcnRpYXJ5QWx0LA0KICAgIGh0bWwg Ym9keSAubXMtYm9yZGVyQ29sb3ItbmV1dHJhbFRlcnRpYXJ5QWx0LS1ob3Zlcjpob3ZlciB7 DQogICAgICBib3JkZXItY29sb3I6ICNjN2M3Yzc7DQogICAgfQ0KDQogICAgaHRtbCBib2R5 IC5tcy1ib3JkZXJDb2xvci1uZXV0cmFsUXVhdGVybmFyeSwNCiAgICBodG1sIGJvZHkgLm1z LWJvcmRlckNvbG9yLW5ldXRyYWxRdWF0ZXJuYXJ5LS1ob3Zlcjpob3ZlciB7DQogICAgICBi b3JkZXItY29sb3I6ICNkMWQxZDE7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1ib3Jk ZXJDb2xvci1uZXV0cmFsUXVhdGVybmFyeUFsdCwNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRl ckNvbG9yLW5ldXRyYWxRdWF0ZXJuYXJ5QWx0LS1ob3Zlcjpob3ZlciB7DQogICAgICBib3Jk ZXItY29sb3I6ICNlMGUwZTA7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJD b2xvci1uZXV0cmFsTGlnaHQsDQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci1uZXV0 cmFsTGlnaHQtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJvcmRlci1jb2xvcjogI2ViZWJlYjsN CiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLW5ldXRyYWxMaWdodGVy LA0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3ItbmV1dHJhbExpZ2h0ZXItLWhvdmVy OmhvdmVyIHsNCiAgICAgIGJvcmRlci1jb2xvcjogI2YwZjBmMDsNCiAgICB9DQoNCiAgICBo dG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLW5ldXRyYWxMaWdodGVyQWx0LA0KICAgIGh0bWwg Ym9keSAubXMtYm9yZGVyQ29sb3ItbmV1dHJhbExpZ2h0ZXJBbHQtLWhvdmVyOmhvdmVyIHsN CiAgICAgIGJvcmRlci1jb2xvcjogI2ZhZmFmYTsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkg Lm1zLWJvcmRlckNvbG9yLXdoaXRlLA0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3It d2hpdGUtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJvcmRlci1jb2xvcjogI2ZmZmZmZjsNCiAg ICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1ibGFjaywNCiAgICBodG1sIGJv ZHkgLm1zLWZvbnRDb2xvci1ibGFjay0taG92ZXI6aG92ZXIgew0KICAgICAgY29sb3I6ICMw MDAwMDA7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItbmV1dHJhbERh cmssDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItbmV1dHJhbERhcmstLWhvdmVyOmhv dmVyIHsNCiAgICAgIGNvbG9yOiAjMTQxNDE0Ow0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAu bXMtZm9udENvbG9yLW5ldXRyYWxQcmltYXJ5LA0KICAgIGh0bWwgYm9keSAubXMtZm9udENv bG9yLW5ldXRyYWxQcmltYXJ5LS1ob3Zlcjpob3ZlciB7DQogICAgICBjb2xvcjogIzI0MjQy NDsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1uZXV0cmFsUHJpbWFy eUFsdCwNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1uZXV0cmFsUHJpbWFyeUFsdC0t aG92ZXI6aG92ZXIgew0KICAgICAgY29sb3I6ICM0MjQyNDI7DQogICAgfQ0KDQogICAgaHRt bCBib2R5IC5tcy1mb250Q29sb3ItbmV1dHJhbFNlY29uZGFyeSwNCiAgICBodG1sIGJvZHkg Lm1zLWZvbnRDb2xvci1uZXV0cmFsU2Vjb25kYXJ5LS1ob3Zlcjpob3ZlciB7DQogICAgICBj b2xvcjogIzYxNjE2MTsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1u ZXV0cmFsU2Vjb25kYXJ5QWx0LA0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLW5ldXRy YWxTZWNvbmRhcnlBbHQtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjOGE4YThhOw0K ICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLW5ldXRyYWxUZXJ0aWFyeSwN CiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1uZXV0cmFsVGVydGlhcnktLWhvdmVyOmhv dmVyIHsNCiAgICAgIGNvbG9yOiAjOWU5ZTllOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAu bXMtZm9udENvbG9yLW5ldXRyYWxUZXJ0aWFyeUFsdCwNCiAgICBodG1sIGJvZHkgLm1zLWZv bnRDb2xvci1uZXV0cmFsVGVydGlhcnlBbHQtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGNvbG9y OiAjYzdjN2M3Ow0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLW5ldXRy YWxRdWF0ZXJuYXJ5LA0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLW5ldXRyYWxRdWF0 ZXJuYXJ5LS1ob3Zlcjpob3ZlciB7DQogICAgICBjb2xvcjogI2QxZDFkMTsNCiAgICB9DQoN CiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1uZXV0cmFsUXVhdGVybmFyeUFsdCwNCiAg ICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1uZXV0cmFsUXVhdGVybmFyeUFsdC0taG92ZXI6 aG92ZXIgew0KICAgICAgY29sb3I6ICNlMGUwZTA7DQogICAgfQ0KDQogICAgaHRtbCBib2R5 IC5tcy1mb250Q29sb3ItbmV1dHJhbExpZ2h0LA0KICAgIGh0bWwgYm9keSAubXMtZm9udENv bG9yLW5ldXRyYWxMaWdodC0taG92ZXI6aG92ZXIgew0KICAgICAgY29sb3I6ICNlYmViZWI7 DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItbmV1dHJhbExpZ2h0ZXIs DQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItbmV1dHJhbExpZ2h0ZXItLWhvdmVyOmhv dmVyIHsNCiAgICAgIGNvbG9yOiAjZjBmMGYwOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAu bXMtZm9udENvbG9yLW5ldXRyYWxMaWdodGVyQWx0LA0KICAgIGh0bWwgYm9keSAubXMtZm9u dENvbG9yLW5ldXRyYWxMaWdodGVyQWx0LS1ob3Zlcjpob3ZlciB7DQogICAgICBjb2xvcjog I2ZhZmFmYTsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci13aGl0ZSwN CiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci13aGl0ZS0taG92ZXI6aG92ZXIgew0KICAg ICAgY29sb3I6ICNmZmZmZmY7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9y LXllbGxvdywNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3IteWVsbG93LS1ob3Zlcjpob3Zl ciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZiOTAwOw0KICAgIH0NCg0KICAgIGh0 bWwgYm9keSAubXMtYmdDb2xvci15ZWxsb3dMaWdodCwNCiAgICBodG1sIGJvZHkgLm1zLWJn Q29sb3IteWVsbG93TGlnaHQtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29s b3I6ICNmZmYxMDA7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLW9yYW5n ZSwNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3Itb3JhbmdlLS1ob3Zlcjpob3ZlciB7DQog ICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDgzYjAxOw0KICAgIH0NCg0KICAgIGh0bWwgYm9k eSAubXMtYmdDb2xvci1vcmFuZ2VMaWdodCwNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3It b3JhbmdlTGlnaHQtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNl YTQzMDA7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLW9yYW5nZUxpZ2h0 ZXIsDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLW9yYW5nZUxpZ2h0ZXItLWhvdmVyOmhv dmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZjhjMDA7DQogICAgfQ0KDQogICAg aHRtbCBib2R5IC5tcy1iZ0NvbG9yLXJlZERhcmssDQogICAgaHRtbCBib2R5IC5tcy1iZ0Nv bG9yLXJlZERhcmstLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNh NDI2MmM7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLXJlZCwNCiAgICBo dG1sIGJvZHkgLm1zLWJnQ29sb3ItcmVkLS1ob3Zlcjpob3ZlciB7DQogICAgICBiYWNrZ3Jv dW5kLWNvbG9yOiAjZTgxMTIzOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xv ci1tYWdlbnRhRGFyaywNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3ItbWFnZW50YURhcmst LWhvdmVyOmhvdmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM1YzAwNWM7DQogICAg fQ0KDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLW1hZ2VudGEsDQogICAgaHRtbCBib2R5 IC5tcy1iZ0NvbG9yLW1hZ2VudGEtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJhY2tncm91bmQt Y29sb3I6ICNiNDAwOWU7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLW1h Z2VudGFMaWdodCwNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3ItbWFnZW50YUxpZ2h0LS1o b3Zlcjpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTMwMDhjOw0KICAgIH0N Cg0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1wdXJwbGVEYXJrLA0KICAgIGh0bWwgYm9k eSAubXMtYmdDb2xvci1wdXJwbGVEYXJrLS1ob3Zlcjpob3ZlciB7DQogICAgICBiYWNrZ3Jv dW5kLWNvbG9yOiAjMzIxNDVhOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xv ci1wdXJwbGUsDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLXB1cnBsZS0taG92ZXI6aG92 ZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzVjMmQ5MTsNCiAgICB9DQoNCiAgICBo dG1sIGJvZHkgLm1zLWJnQ29sb3ItcHVycGxlTGlnaHQsDQogICAgaHRtbCBib2R5IC5tcy1i Z0NvbG9yLXB1cnBsZUxpZ2h0LS1ob3Zlcjpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNv bG9yOiAjYjRhMGZmOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1ibHVl RGFyaywNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3ItYmx1ZURhcmstLWhvdmVyOmhvdmVy IHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDIwNTA7DQogICAgfQ0KDQogICAgaHRt bCBib2R5IC5tcy1iZ0NvbG9yLWJsdWVNaWQsDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9y LWJsdWVNaWQtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDE4 OGY7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLWJsdWUsDQogICAgaHRt bCBib2R5IC5tcy1iZ0NvbG9yLWJsdWUtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJhY2tncm91 bmQtY29sb3I6ICMwMDc4ZDQ7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9y LWJsdWVMaWdodCwNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3ItYmx1ZUxpZ2h0LS1ob3Zl cjpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBiY2YyOw0KICAgIH0NCg0K ICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci10ZWFsRGFyaywNCiAgICBodG1sIGJvZHkgLm1z LWJnQ29sb3ItdGVhbERhcmstLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29s b3I6ICMwMDRiNTA7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLXRlYWws DQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLXRlYWwtLWhvdmVyOmhvdmVyIHsNCiAgICAg IGJhY2tncm91bmQtY29sb3I6ICMwMDgyNzI7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5t cy1iZ0NvbG9yLXRlYWxMaWdodCwNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3ItdGVhbExp Z2h0LS1ob3Zlcjpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBiMjk0Ow0K ICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1ncmVlbkRhcmssDQogICAgaHRt bCBib2R5IC5tcy1iZ0NvbG9yLWdyZWVuRGFyay0taG92ZXI6aG92ZXIgew0KICAgICAgYmFj a2dyb3VuZC1jb2xvcjogIzAwNGIxYzsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJn Q29sb3ItZ3JlZW4sDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLWdyZWVuLS1ob3Zlcjpo b3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTA3YzEwOw0KICAgIH0NCg0KICAg IGh0bWwgYm9keSAubXMtYmdDb2xvci1ncmVlbkxpZ2h0LA0KICAgIGh0bWwgYm9keSAubXMt YmdDb2xvci1ncmVlbkxpZ2h0LS1ob3Zlcjpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNv bG9yOiAjYmFkODBhOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3It eWVsbG93LA0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3IteWVsbG93LS1ob3Zlcjpo b3ZlciB7DQogICAgICBib3JkZXItY29sb3I6ICNmZmI5MDA7DQogICAgfQ0KDQogICAgaHRt bCBib2R5IC5tcy1ib3JkZXJDb2xvci15ZWxsb3dMaWdodCwNCiAgICBodG1sIGJvZHkgLm1z LWJvcmRlckNvbG9yLXllbGxvd0xpZ2h0LS1ob3Zlcjpob3ZlciB7DQogICAgICBib3JkZXIt Y29sb3I6ICNmZmYxMDA7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xv ci1vcmFuZ2UsDQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci1vcmFuZ2UtLWhvdmVy OmhvdmVyIHsNCiAgICAgIGJvcmRlci1jb2xvcjogI2Q4M2IwMTsNCiAgICB9DQoNCiAgICBo dG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLW9yYW5nZUxpZ2h0LA0KICAgIGh0bWwgYm9keSAu bXMtYm9yZGVyQ29sb3Itb3JhbmdlTGlnaHQtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJvcmRl ci1jb2xvcjogI2VhNDMwMDsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNv bG9yLW9yYW5nZUxpZ2h0ZXIsDQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci1vcmFu Z2VMaWdodGVyLS1ob3Zlcjpob3ZlciB7DQogICAgICBib3JkZXItY29sb3I6ICNmZjhjMDA7 DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci1yZWREYXJrLA0KICAg IGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3ItcmVkRGFyay0taG92ZXI6aG92ZXIgew0KICAg ICAgYm9yZGVyLWNvbG9yOiAjYTQyNjJjOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMt Ym9yZGVyQ29sb3ItcmVkLA0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3ItcmVkLS1o b3Zlcjpob3ZlciB7DQogICAgICBib3JkZXItY29sb3I6ICNlODExMjM7DQogICAgfQ0KDQog ICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci1tYWdlbnRhRGFyaywNCiAgICBodG1sIGJv ZHkgLm1zLWJvcmRlckNvbG9yLW1hZ2VudGFEYXJrLS1ob3Zlcjpob3ZlciB7DQogICAgICBi b3JkZXItY29sb3I6ICM1YzAwNWM7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1ib3Jk ZXJDb2xvci1tYWdlbnRhLA0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3ItbWFnZW50 YS0taG92ZXI6aG92ZXIgew0KICAgICAgYm9yZGVyLWNvbG9yOiAjYjQwMDllOw0KICAgIH0N Cg0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3ItbWFnZW50YUxpZ2h0LA0KICAgIGh0 bWwgYm9keSAubXMtYm9yZGVyQ29sb3ItbWFnZW50YUxpZ2h0LS1ob3Zlcjpob3ZlciB7DQog ICAgICBib3JkZXItY29sb3I6ICNlMzAwOGM7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5t cy1ib3JkZXJDb2xvci1wdXJwbGVEYXJrLA0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29s b3ItcHVycGxlRGFyay0taG92ZXI6aG92ZXIgew0KICAgICAgYm9yZGVyLWNvbG9yOiAjMzIx NDVhOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3ItcHVycGxlLA0K ICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3ItcHVycGxlLS1ob3Zlcjpob3ZlciB7DQog ICAgICBib3JkZXItY29sb3I6ICM1YzJkOTE7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5t cy1ib3JkZXJDb2xvci1wdXJwbGVMaWdodCwNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNv bG9yLXB1cnBsZUxpZ2h0LS1ob3Zlcjpob3ZlciB7DQogICAgICBib3JkZXItY29sb3I6ICNi NGEwZmY7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci1ibHVlRGFy aywNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLWJsdWVEYXJrLS1ob3Zlcjpob3Zl ciB7DQogICAgICBib3JkZXItY29sb3I6ICMwMDIwNTA7DQogICAgfQ0KDQogICAgaHRtbCBi b2R5IC5tcy1ib3JkZXJDb2xvci1ibHVlTWlkLA0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVy Q29sb3ItYmx1ZU1pZC0taG92ZXI6aG92ZXIgew0KICAgICAgYm9yZGVyLWNvbG9yOiAjMDAx ODhmOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3ItYmx1ZSwNCiAg ICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLWJsdWUtLWhvdmVyOmhvdmVyIHsNCiAgICAg IGJvcmRlci1jb2xvcjogIzAwNzhkNDsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJv cmRlckNvbG9yLWJsdWVMaWdodCwNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLWJs dWVMaWdodC0taG92ZXI6aG92ZXIgew0KICAgICAgYm9yZGVyLWNvbG9yOiAjMDBiY2YyOw0K ICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3ItdGVhbERhcmssDQogICAg aHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci10ZWFsRGFyay0taG92ZXI6aG92ZXIgew0KICAg ICAgYm9yZGVyLWNvbG9yOiAjMDA0YjUwOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMt Ym9yZGVyQ29sb3ItdGVhbCwNCiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLXRlYWwt LWhvdmVyOmhvdmVyIHsNCiAgICAgIGJvcmRlci1jb2xvcjogIzAwODI3MjsNCiAgICB9DQoN CiAgICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLXRlYWxMaWdodCwNCiAgICBodG1sIGJv ZHkgLm1zLWJvcmRlckNvbG9yLXRlYWxMaWdodC0taG92ZXI6aG92ZXIgew0KICAgICAgYm9y ZGVyLWNvbG9yOiAjMDBiMjk0Ow0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVy Q29sb3ItZ3JlZW5EYXJrLA0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3ItZ3JlZW5E YXJrLS1ob3Zlcjpob3ZlciB7DQogICAgICBib3JkZXItY29sb3I6ICMwMDRiMWM7DQogICAg fQ0KDQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci1ncmVlbiwNCiAgICBodG1sIGJv ZHkgLm1zLWJvcmRlckNvbG9yLWdyZWVuLS1ob3Zlcjpob3ZlciB7DQogICAgICBib3JkZXIt Y29sb3I6ICMxMDdjMTA7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xv ci1ncmVlbkxpZ2h0LA0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3ItZ3JlZW5MaWdo dC0taG92ZXI6aG92ZXIgew0KICAgICAgYm9yZGVyLWNvbG9yOiAjYmFkODBhOw0KICAgIH0N Cg0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLXllbGxvdywNCiAgICBodG1sIGJvZHkg Lm1zLWZvbnRDb2xvci15ZWxsb3ctLWhvdmVyOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjZmZi OTAwOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLXllbGxvd0xpZ2h0 LA0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLXllbGxvd0xpZ2h0LS1ob3Zlcjpob3Zl ciB7DQogICAgICBjb2xvcjogI2ZmZjEwMDsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1z LWZvbnRDb2xvci1vcmFuZ2UsDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3Itb3Jhbmdl LS1ob3Zlcjpob3ZlciB7DQogICAgICBjb2xvcjogI2Q4M2IwMTsNCiAgICB9DQoNCiAgICBo dG1sIGJvZHkgLm1zLWZvbnRDb2xvci1vcmFuZ2VMaWdodCwNCiAgICBodG1sIGJvZHkgLm1z LWZvbnRDb2xvci1vcmFuZ2VMaWdodC0taG92ZXI6aG92ZXIgew0KICAgICAgY29sb3I6ICNl YTQzMDA7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3Itb3JhbmdlTGln aHRlciwNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1vcmFuZ2VMaWdodGVyLS1ob3Zl cjpob3ZlciB7DQogICAgICBjb2xvcjogI2ZmOGMwMDsNCiAgICB9DQoNCiAgICBodG1sIGJv ZHkgLm1zLWZvbnRDb2xvci1yZWREYXJrLA0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9y LXJlZERhcmstLWhvdmVyOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjYTQyNjJjOw0KICAgIH0N Cg0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLXJlZCwNCiAgICBodG1sIGJvZHkgLm1z LWZvbnRDb2xvci1yZWQtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjZTgxMTIzOw0K ICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLW1hZ2VudGFEYXJrLA0KICAg IGh0bWwgYm9keSAubXMtZm9udENvbG9yLW1hZ2VudGFEYXJrLS1ob3Zlcjpob3ZlciB7DQog ICAgICBjb2xvcjogIzVjMDA1YzsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRD b2xvci1tYWdlbnRhLA0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLW1hZ2VudGEtLWhv dmVyOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjYjQwMDllOw0KICAgIH0NCg0KICAgIGh0bWwg Ym9keSAubXMtZm9udENvbG9yLW1hZ2VudGFMaWdodCwNCiAgICBodG1sIGJvZHkgLm1zLWZv bnRDb2xvci1tYWdlbnRhTGlnaHQtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjZTMw MDhjOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLXB1cnBsZURhcmss DQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItcHVycGxlRGFyay0taG92ZXI6aG92ZXIg ew0KICAgICAgY29sb3I6ICMzMjE0NWE7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1m b250Q29sb3ItcHVycGxlLA0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLXB1cnBsZS0t aG92ZXI6aG92ZXIgew0KICAgICAgY29sb3I6ICM1YzJkOTE7DQogICAgfQ0KDQogICAgaHRt bCBib2R5IC5tcy1mb250Q29sb3ItcHVycGxlTGlnaHQsDQogICAgaHRtbCBib2R5IC5tcy1m b250Q29sb3ItcHVycGxlTGlnaHQtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjYjRh MGZmOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLWJsdWVEYXJrLA0K ICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLWJsdWVEYXJrLS1ob3Zlcjpob3ZlciB7DQog ICAgICBjb2xvcjogIzAwMjA1MDsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRD b2xvci1ibHVlTWlkLA0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLWJsdWVNaWQtLWhv dmVyOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjMDAxODhmOw0KICAgIH0NCg0KICAgIGh0bWwg Ym9keSAubXMtZm9udENvbG9yLWJsdWUsDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3It Ymx1ZS0taG92ZXI6aG92ZXIgew0KICAgICAgY29sb3I6ICMwMDc4ZDQ7DQogICAgfQ0KDQog ICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItYmx1ZUxpZ2h0LA0KICAgIGh0bWwgYm9keSAu bXMtZm9udENvbG9yLWJsdWVMaWdodC0taG92ZXI6aG92ZXIgew0KICAgICAgY29sb3I6ICMw MGJjZjI7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItdGVhbERhcmss DQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItdGVhbERhcmstLWhvdmVyOmhvdmVyIHsN CiAgICAgIGNvbG9yOiAjMDA0YjUwOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtZm9u dENvbG9yLXRlYWwsDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItdGVhbC0taG92ZXI6 aG92ZXIgew0KICAgICAgY29sb3I6ICMwMDgyNzI7DQogICAgfQ0KDQogICAgaHRtbCBib2R5 IC5tcy1mb250Q29sb3ItdGVhbExpZ2h0LA0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9y LXRlYWxMaWdodC0taG92ZXI6aG92ZXIgew0KICAgICAgY29sb3I6ICMwMGIyOTQ7DQogICAg fQ0KDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItZ3JlZW5EYXJrLA0KICAgIGh0bWwg Ym9keSAubXMtZm9udENvbG9yLWdyZWVuRGFyay0taG92ZXI6aG92ZXIgew0KICAgICAgY29s b3I6ICMwMDRiMWM7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItZ3Jl ZW4sDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItZ3JlZW4tLWhvdmVyOmhvdmVyIHsN CiAgICAgIGNvbG9yOiAjMTA3YzEwOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtZm9u dENvbG9yLWdyZWVuTGlnaHQsDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItZ3JlZW5M aWdodC0taG92ZXI6aG92ZXIgew0KICAgICAgY29sb3I6ICNiYWQ4MGE7DQogICAgfQ0KDQog ICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLWluZm8sDQogICAgaHRtbCBib2R5IC5tcy1iZ0Nv bG9yLWluZm8tLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmMGYw ZjA7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLXN1Y2Nlc3MsDQogICAg aHRtbCBib2R5IC5tcy1iZ0NvbG9yLXN1Y2Nlc3MtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJh Y2tncm91bmQtY29sb3I6ICNkZmY2ZGQ7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1i Z0NvbG9yLXNldmVyZVdhcm5pbmcsDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLXNldmVy ZVdhcm5pbmctLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZWQ5 Y2M7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLXdhcm5pbmcsDQogICAg aHRtbCBib2R5IC5tcy1iZ0NvbG9yLXdhcm5pbmctLWhvdmVyOmhvdmVyIHsNCiAgICAgIGJh Y2tncm91bmQtY29sb3I6ICNmZmY0Y2U7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1i Z0NvbG9yLWVycm9yLA0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1lcnJvci0taG92ZXI6 aG92ZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZkZTdlOTsNCiAgICB9DQoNCiAg ICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1pbmZvLA0KICAgIGh0bWwgYm9keSAubXMtZm9u dENvbG9yLWluZm8tLWhvdmVyOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjNjY2Ow0KICAgIH0N Cg0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLXN1Y2Nlc3MsDQogICAgaHRtbCBib2R5 IC5tcy1mb250Q29sb3Itc3VjY2Vzcy0taG92ZXI6aG92ZXIgew0KICAgICAgY29sb3I6ICMx MDdjMTA7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItYWxlcnQsDQog ICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItYWxlcnQtLWhvdmVyOmhvdmVyIHsNCiAgICAg IGNvbG9yOiAjZDgzYjAxOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9y LXdhcm5pbmcsDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3Itd2FybmluZy0taG92ZXI6 aG92ZXIgew0KICAgICAgY29sb3I6ICM3Njc2NzY7DQogICAgfQ0KDQogICAgaHRtbCBib2R5 IC5tcy1mb250Q29sb3Itc2V2ZXJlV2FybmluZywNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRD b2xvci1zZXZlcmVXYXJuaW5nLS1ob3Zlcjpob3ZlciB7DQogICAgICBjb2xvcjogI2E4MDAw MDsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1lcnJvciwNCiAgICBo dG1sIGJvZHkgLm1zLWZvbnRDb2xvci1lcnJvci0taG92ZXI6aG92ZXIgew0KICAgICAgY29s b3I6ICNhODAwMDA7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLWNvbnRy YXN0QmxhY2tEaXNhYmxlZCwNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3ItY29udHJhc3RC bGFja0Rpc2FibGVkLS1ob3Zlcjpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAj MGYwOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1jb250cmFzdFdoaXRl RGlzYWJsZWQsDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLWNvbnRyYXN0V2hpdGVEaXNh YmxlZC0taG92ZXI6aG92ZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzYwMDAwMDsN CiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3ItY29udHJhc3RCbGFja1NlbGVj dGVkLA0KICAgIGh0bWwgYm9keSAubXMtYmdDb2xvci1jb250cmFzdEJsYWNrU2VsZWN0ZWQt LWhvdmVyOmhvdmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxYWViZmY7DQogICAg fQ0KDQogICAgaHRtbCBib2R5IC5tcy1iZ0NvbG9yLWNvbnRyYXN0V2hpdGVTZWxlY3RlZCwN CiAgICBodG1sIGJvZHkgLm1zLWJnQ29sb3ItY29udHJhc3RXaGl0ZVNlbGVjdGVkLS1ob3Zl cjpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzcwMDZlOw0KICAgIH0NCg0K ICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLWNvbnRyYXN0QmxhY2tEaXNhYmxlZCwNCiAg ICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1jb250cmFzdEJsYWNrRGlzYWJsZWQtLWhvdmVy OmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjMGYwOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAu bXMtZm9udENvbG9yLWNvbnRyYXN0V2hpdGVEaXNhYmxlZCwNCiAgICBodG1sIGJvZHkgLm1z LWZvbnRDb2xvci1jb250cmFzdFdoaXRlRGlzYWJsZWQtLWhvdmVyOmhvdmVyIHsNCiAgICAg IGNvbG9yOiAjNjAwMDAwOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9y LWNvbnRyYXN0QmxhY2tTZWxlY3RlZCwNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1j b250cmFzdEJsYWNrU2VsZWN0ZWQtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjMWFl YmZmOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLWNvbnRyYXN0V2hp dGVTZWxlY3RlZCwNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1jb250cmFzdFdoaXRl U2VsZWN0ZWQtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjMzcwMDZlOw0KICAgIH0N Cg0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3ItY29udHJhc3RCbGFja0Rpc2FibGVk LA0KICAgIGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3ItY29udHJhc3RCbGFja0Rpc2FibGVk LS1ob3Zlcjpob3ZlciB7DQogICAgICBib3JkZXItY29sb3I6ICMwZjA7DQogICAgfQ0KDQog ICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci1jb250cmFzdFdoaXRlRGlzYWJsZWQsDQog ICAgaHRtbCBib2R5IC5tcy1ib3JkZXJDb2xvci1jb250cmFzdFdoaXRlRGlzYWJsZWQtLWhv dmVyOmhvdmVyIHsNCiAgICAgIGJvcmRlci1jb2xvcjogIzYwMDAwMDsNCiAgICB9DQoNCiAg ICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLWNvbnRyYXN0QmxhY2tTZWxlY3RlZCwNCiAg ICBodG1sIGJvZHkgLm1zLWJvcmRlckNvbG9yLWNvbnRyYXN0QmxhY2tTZWxlY3RlZC0taG92 ZXI6aG92ZXIgew0KICAgICAgYm9yZGVyLWNvbG9yOiAjMWFlYmZmOw0KICAgIH0NCg0KICAg IGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3ItY29udHJhc3RXaGl0ZVNlbGVjdGVkLA0KICAg IGh0bWwgYm9keSAubXMtYm9yZGVyQ29sb3ItY29udHJhc3RXaGl0ZVNlbGVjdGVkLS1ob3Zl cjpob3ZlciB7DQogICAgICBib3JkZXItY29sb3I6ICMzNzAwNmU7DQogICAgfQ0KDQogICAg Lm1zLWZvbnRTaXplLTY4IHsNCiAgICAgIGZvbnQtc2l6ZTogNjhweDsNCiAgICB9DQoNCiAg ICAubXMtZm9udFNpemUtNDIgew0KICAgICAgZm9udC1zaXplOiA0MnB4Ow0KICAgIH0NCg0K ICAgIC5tcy1mb250U2l6ZS0zMiB7DQogICAgICBmb250LXNpemU6IDMycHg7DQogICAgfQ0K DQogICAgLm1zLWZvbnRTaXplLTI4IHsNCiAgICAgIGZvbnQtc2l6ZTogMjhweDsNCiAgICB9 DQoNCiAgICAubXMtZm9udFNpemUtMjQgew0KICAgICAgZm9udC1zaXplOiAyNHB4Ow0KICAg IH0NCg0KICAgIC5tcy1mb250U2l6ZS0yMCB7DQogICAgICBmb250LXNpemU6IDIwcHg7DQog ICAgfQ0KDQogICAgLm1zLWZvbnRTaXplLTE4IHsNCiAgICAgIGZvbnQtc2l6ZTogMThweDsN CiAgICB9DQoNCiAgICAubXMtZm9udFNpemUtMTYgew0KICAgICAgZm9udC1zaXplOiAxNnB4 Ow0KICAgIH0NCg0KICAgIC5tcy1mb250U2l6ZS0xNCB7DQogICAgICBmb250LXNpemU6IDE0 cHg7DQogICAgfQ0KDQogICAgLm1zLWZvbnRTaXplLTEyIHsNCiAgICAgIGZvbnQtc2l6ZTog MTJweDsNCiAgICB9DQoNCiAgICAubXMtZm9udFNpemUtMTAgew0KICAgICAgZm9udC1zaXpl OiAxMHB4Ow0KICAgIH0NCg0KICAgIC5tcy1mb250V2VpZ2h0LXJlZ3VsYXIgew0KICAgICAg Zm9udC13ZWlnaHQ6IDQwMDsNCiAgICB9DQoNCiAgICAubXMtZm9udFdlaWdodC1zZW1pYm9s ZCB7DQogICAgICBmb250LXdlaWdodDogNjAwOw0KICAgIH0NCg0KICAgIC5tcy1mb250V2Vp Z2h0LWJvbGQgew0KICAgICAgZm9udC13ZWlnaHQ6IDcwMDsNCiAgICB9DQoNCiAgICAubXMt Zm9udC1zdSB7DQogICAgICBmb250LXNpemU6IDQycHg7DQogICAgICBmb250LXdlaWdodDog MTAwOw0KICAgIH0NCg0KICAgIC5tcy1mb250LXh4bCB7DQogICAgICBmb250LXNpemU6IDI4 cHg7DQogICAgICBmb250LXdlaWdodDogMTAwOw0KICAgIH0NCg0KICAgIC5tcy1mb250LXhs LXBsdXMgew0KICAgICAgZm9udC1zaXplOiAyNHB4Ow0KICAgICAgZm9udC13ZWlnaHQ6IDEw MDsNCiAgICB9DQoNCiAgICAubXMtZm9udC14bCB7DQogICAgICBmb250LXNpemU6IDIxcHg7 DQogICAgICBmb250LXdlaWdodDogMTAwOw0KICAgIH0NCg0KICAgIC5tcy1mb250LWwgew0K ICAgICAgZm9udC1zaXplOiAxN3B4Ow0KICAgICAgZm9udC13ZWlnaHQ6IDMwMDsNCiAgICB9 DQoNCiAgICAubXMtZm9udC1tLXBsdXMgew0KICAgICAgZm9udC1zaXplOiAxNXB4Ow0KICAg ICAgZm9udC13ZWlnaHQ6IDQwMDsNCiAgICB9DQoNCiAgICAubXMtZm9udC1tIHsNCiAgICAg IGZvbnQtc2l6ZTogMTRweDsNCiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7DQogICAgfQ0KDQog ICAgLm1zLWZvbnQtcy1wbHVzIHsNCiAgICAgIGZvbnQtc2l6ZTogMTNweDsNCiAgICAgIGZv bnQtd2VpZ2h0OiA0MDA7DQogICAgfQ0KDQogICAgLm1zLWZvbnQtcyB7DQogICAgICBmb250 LXNpemU6IDEycHg7DQogICAgICBmb250LXdlaWdodDogNDAwOw0KICAgIH0NCg0KICAgIC5t cy1mb250LXhzIHsNCiAgICAgIGZvbnQtc2l6ZTogMTFweDsNCiAgICAgIGZvbnQtd2VpZ2h0 OiA0MDA7DQogICAgfQ0KDQogICAgLm1zLWZvbnQtbWkgew0KICAgICAgZm9udC1zaXplOiAx MHB4Ow0KICAgICAgZm9udC13ZWlnaHQ6IDYwMDsNCiAgICB9DQoNCiAgICAubXMtZm9udFdl aWdodC1saWdodCB7DQogICAgICBmb250LXdlaWdodDogMTAwOw0KICAgIH0NCg0KICAgIC5t cy1mb250V2VpZ2h0LXNlbWlsaWdodCB7DQogICAgICBmb250LXdlaWdodDogMzAwOw0KICAg IH0NCg0KICAgIC5tcy1mb250U2l6ZS1zdSB7DQogICAgICBmb250LXNpemU6IDQycHg7DQog ICAgfQ0KDQogICAgLm1zLWZvbnRTaXplLXh4bCB7DQogICAgICBmb250LXNpemU6IDI4cHg7 DQogICAgfQ0KDQogICAgLm1zLWZvbnRTaXplLXhsUGx1cyB7DQogICAgICBmb250LXNpemU6 IDI0cHg7DQogICAgfQ0KDQogICAgLm1zLWZvbnRTaXplLXhsIHsNCiAgICAgIGZvbnQtc2l6 ZTogMjFweDsNCiAgICB9DQoNCiAgICAubXMtZm9udFNpemUtbCB7DQogICAgICBmb250LXNp emU6IDE3cHg7DQogICAgfQ0KDQogICAgLm1zLWZvbnRTaXplLW1QbHVzIHsNCiAgICAgIGZv bnQtc2l6ZTogMTVweDsNCiAgICB9DQoNCiAgICAubXMtZm9udFNpemUtbSB7DQogICAgICBm b250LXNpemU6IDE0cHg7DQogICAgfQ0KDQogICAgLm1zLWZvbnRTaXplLXNQbHVzIHsNCiAg ICAgIGZvbnQtc2l6ZTogMTNweDsNCiAgICB9DQoNCiAgICAubXMtZm9udFNpemUtcyB7DQog ICAgICBmb250LXNpemU6IDEycHg7DQogICAgfQ0KDQogICAgLm1zLWZvbnRTaXplLXhzIHsN CiAgICAgIGZvbnQtc2l6ZTogMTFweDsNCiAgICB9DQoNCiAgICAubXMtZm9udFNpemUtbWkg ew0KICAgICAgZm9udC1zaXplOiAxMHB4Ow0KICAgIH0NCg0KICAgIC5tcy1mb250U2l6ZS02 OCB7DQogICAgICBmb250LXNpemU6IDY4cHg7DQogICAgfQ0KDQogICAgLm1zLWZvbnRTaXpl LTQyIHsNCiAgICAgIGZvbnQtc2l6ZTogNDJweDsNCiAgICB9DQoNCiAgICAubXMtZm9udFNp emUtMzIgew0KICAgICAgZm9udC1zaXplOiAzMnB4Ow0KICAgIH0NCg0KICAgIC5tcy1mb250 U2l6ZS0yOCB7DQogICAgICBmb250LXNpemU6IDI4cHg7DQogICAgfQ0KDQogICAgLm1zLWZv bnRTaXplLTI0IHsNCiAgICAgIGZvbnQtc2l6ZTogMjRweDsNCiAgICB9DQoNCiAgICAubXMt Zm9udFNpemUtMjAgew0KICAgICAgZm9udC1zaXplOiAyMHB4Ow0KICAgIH0NCg0KICAgIC5t cy1mb250U2l6ZS0xOCB7DQogICAgICBmb250LXNpemU6IDE4cHg7DQogICAgfQ0KDQogICAg Lm1zLWZvbnRTaXplLTE2IHsNCiAgICAgIGZvbnQtc2l6ZTogMTZweDsNCiAgICB9DQoNCiAg ICAubXMtZm9udFNpemUtMTQgew0KICAgICAgZm9udC1zaXplOiAxNHB4Ow0KICAgIH0NCg0K ICAgIC5tcy1mb250U2l6ZS0xMiB7DQogICAgICBmb250LXNpemU6IDEycHg7DQogICAgfQ0K DQogICAgLm1zLWZvbnRTaXplLTEwIHsNCiAgICAgIGZvbnQtc2l6ZTogMTBweDsNCiAgICB9 DQoNCiAgICAubXMtZm9udFdlaWdodC1yZWd1bGFyIHsNCiAgICAgIGZvbnQtd2VpZ2h0OiA0 MDA7DQogICAgfQ0KDQogICAgLm1zLWZvbnRXZWlnaHQtc2VtaWJvbGQgew0KICAgICAgZm9u dC13ZWlnaHQ6IDYwMDsNCiAgICB9DQoNCiAgICAubXMtZm9udFdlaWdodC1ib2xkIHsNCiAg ICAgIGZvbnQtd2VpZ2h0OiA3MDA7DQogICAgfQ0KDQogICAgLm1zLWZvbnQtc3Ugew0KICAg ICAgZm9udC1zaXplOiA0MnB4Ow0KICAgICAgZm9udC13ZWlnaHQ6IDEwMDsNCiAgICB9DQoN CiAgICAubXMtZm9udC14eGwgew0KICAgICAgZm9udC1zaXplOiAyOHB4Ow0KICAgICAgZm9u dC13ZWlnaHQ6IDEwMDsNCiAgICB9DQoNCiAgICAubXMtZm9udC14bC1wbHVzIHsNCiAgICAg IGZvbnQtc2l6ZTogMjRweDsNCiAgICAgIGZvbnQtd2VpZ2h0OiAxMDA7DQogICAgfQ0KDQog ICAgLm1zLWZvbnQteGwgew0KICAgICAgZm9udC1zaXplOiAyMXB4Ow0KICAgICAgZm9udC13 ZWlnaHQ6IDEwMDsNCiAgICB9DQoNCiAgICAubXMtZm9udC1sIHsNCiAgICAgIGZvbnQtc2l6 ZTogMTdweDsNCiAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7DQogICAgfQ0KDQogICAgLm1zLWZv bnQtbS1wbHVzIHsNCiAgICAgIGZvbnQtc2l6ZTogMTVweDsNCiAgICAgIGZvbnQtd2VpZ2h0 OiA0MDA7DQogICAgfQ0KDQogICAgLm1zLWZvbnQtbSB7DQogICAgICBmb250LXNpemU6IDE0 cHg7DQogICAgICBmb250LXdlaWdodDogNDAwOw0KICAgIH0NCg0KICAgIC5tcy1mb250LXMt cGx1cyB7DQogICAgICBmb250LXNpemU6IDEzcHg7DQogICAgICBmb250LXdlaWdodDogNDAw Ow0KICAgIH0NCg0KICAgIC5tcy1mb250LXMgew0KICAgICAgZm9udC1zaXplOiAxMnB4Ow0K ICAgICAgZm9udC13ZWlnaHQ6IDQwMDsNCiAgICB9DQoNCiAgICAubXMtZm9udC14cyB7DQog ICAgICBmb250LXNpemU6IDExcHg7DQogICAgICBmb250LXdlaWdodDogNDAwOw0KICAgIH0N Cg0KICAgIC5tcy1mb250LW1pIHsNCiAgICAgIGZvbnQtc2l6ZTogMTBweDsNCiAgICAgIGZv bnQtd2VpZ2h0OiA2MDA7DQogICAgfQ0KDQogICAgLm1zLWZvbnRXZWlnaHQtbGlnaHQgew0K ICAgICAgZm9udC13ZWlnaHQ6IDEwMDsNCiAgICB9DQoNCiAgICAubXMtZm9udFdlaWdodC1z ZW1pbGlnaHQgew0KICAgICAgZm9udC13ZWlnaHQ6IDMwMDsNCiAgICB9DQoNCiAgICAubXMt Zm9udFNpemUtc3Ugew0KICAgICAgZm9udC1zaXplOiA0MnB4Ow0KICAgIH0NCg0KICAgIC5t cy1mb250U2l6ZS14eGwgew0KICAgICAgZm9udC1zaXplOiAyOHB4Ow0KICAgIH0NCg0KICAg IC5tcy1mb250U2l6ZS14bFBsdXMgew0KICAgICAgZm9udC1zaXplOiAyNHB4Ow0KICAgIH0N Cg0KICAgIC5tcy1mb250U2l6ZS14bCB7DQogICAgICBmb250LXNpemU6IDIxcHg7DQogICAg fQ0KDQogICAgLm1zLWZvbnRTaXplLWwgew0KICAgICAgZm9udC1zaXplOiAxN3B4Ow0KICAg IH0NCg0KICAgIC5tcy1mb250U2l6ZS1tUGx1cyB7DQogICAgICBmb250LXNpemU6IDE1cHg7 DQogICAgfQ0KDQogICAgLm1zLWZvbnRTaXplLW0gew0KICAgICAgZm9udC1zaXplOiAxNHB4 Ow0KICAgIH0NCg0KICAgIC5tcy1mb250U2l6ZS1zUGx1cyB7DQogICAgICBmb250LXNpemU6 IDEzcHg7DQogICAgfQ0KDQogICAgLm1zLWZvbnRTaXplLXMgew0KICAgICAgZm9udC1zaXpl OiAxMnB4Ow0KICAgIH0NCg0KICAgIC5tcy1mb250U2l6ZS14cyB7DQogICAgICBmb250LXNp emU6IDExcHg7DQogICAgfQ0KDQogICAgLm1zLWZvbnRTaXplLW1pIHsNCiAgICAgIGZvbnQt c2l6ZTogMTBweDsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci10aGVt ZURhcmtlciwNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci10aGVtZURhcmtlci0taG92 ZXI6aG92ZXIgew0KICAgICAgY29sb3I6ICMwMDQ1Nzg7DQogICAgfQ0KDQogICAgaHRtbCBi b2R5IC5tcy1mb250Q29sb3ItdGhlbWVEYXJrLA0KICAgIGh0bWwgYm9keSAubXMtZm9udENv bG9yLXRoZW1lRGFyay0taG92ZXI6aG92ZXIgew0KICAgICAgY29sb3I6ICMwMDVhOWU7DQog ICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItdGhlbWVEYXJrQWx0LA0KICAg IGh0bWwgYm9keSAubXMtZm9udENvbG9yLXRoZW1lRGFya0FsdC0taG92ZXI6aG92ZXIgew0K ICAgICAgY29sb3I6ICMxMDZlYmU7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1mb250 Q29sb3ItdGhlbWVQcmltYXJ5LA0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLXRoZW1l UHJpbWFyeS0taG92ZXI6aG92ZXIgew0KICAgICAgY29sb3I6ICMwMDc4ZDQ7DQogICAgfQ0K DQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItdGhlbWVTZWNvbmRhcnksDQogICAgaHRt bCBib2R5IC5tcy1mb250Q29sb3ItdGhlbWVTZWNvbmRhcnktLWhvdmVyOmhvdmVyIHsNCiAg ICAgIGNvbG9yOiAjMmI4OGQ4Ow0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtZm9udENv bG9yLXRoZW1lVGVydGlhcnksDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItdGhlbWVU ZXJ0aWFyeS0taG92ZXI6aG92ZXIgew0KICAgICAgY29sb3I6ICM3MWFmZTU7DQogICAgfQ0K DQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItdGhlbWVMaWdodCwNCiAgICBodG1sIGJv ZHkgLm1zLWZvbnRDb2xvci10aGVtZUxpZ2h0LS1ob3Zlcjpob3ZlciB7DQogICAgICBjb2xv cjogI2M3ZTBmNDsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci10aGVt ZUxpZ2h0ZXIsDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItdGhlbWVMaWdodGVyLS1o b3Zlcjpob3ZlciB7DQogICAgICBjb2xvcjogI2RlZWNmOTsNCiAgICB9DQoNCiAgICBodG1s IGJvZHkgLm1zLWZvbnRDb2xvci10aGVtZUxpZ2h0ZXJBbHQsDQogICAgaHRtbCBib2R5IC5t cy1mb250Q29sb3ItdGhlbWVMaWdodGVyQWx0LS1ob3Zlcjpob3ZlciB7DQogICAgICBjb2xv cjogI2VmZjZmYzsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1ibGFj aywNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1ibGFjay0taG92ZXI6aG92ZXIgew0K ICAgICAgY29sb3I6ICMwMDAwMDA7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1mb250 Q29sb3ItbmV1dHJhbERhcmssDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItbmV1dHJh bERhcmstLWhvdmVyOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjMTQxNDE0Ow0KICAgIH0NCg0K ICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLW5ldXRyYWxQcmltYXJ5LA0KICAgIGh0bWwg Ym9keSAubXMtZm9udENvbG9yLW5ldXRyYWxQcmltYXJ5LS1ob3Zlcjpob3ZlciB7DQogICAg ICBjb2xvcjogIzI0MjQyNDsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xv ci1uZXV0cmFsU2Vjb25kYXJ5LA0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLW5ldXRy YWxTZWNvbmRhcnktLWhvdmVyOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjNjE2MTYxOw0KICAg IH0NCg0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLW5ldXRyYWxTZWNvbmRhcnlBbHQs DQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItbmV1dHJhbFNlY29uZGFyeUFsdC0taG92 ZXI6aG92ZXIgew0KICAgICAgY29sb3I6ICM4YThhOGE7DQogICAgfQ0KDQogICAgaHRtbCBi b2R5IC5tcy1mb250Q29sb3ItbmV1dHJhbFRlcnRpYXJ5LA0KICAgIGh0bWwgYm9keSAubXMt Zm9udENvbG9yLW5ldXRyYWxUZXJ0aWFyeS0taG92ZXI6aG92ZXIgew0KICAgICAgY29sb3I6 ICM5ZTllOWU7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItbmV1dHJh bFRlcnRpYXJ5QWx0LA0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLW5ldXRyYWxUZXJ0 aWFyeUFsdC0taG92ZXI6aG92ZXIgew0KICAgICAgY29sb3I6ICNjN2M3Yzc7DQogICAgfQ0K DQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItbmV1dHJhbExpZ2h0LA0KICAgIGh0bWwg Ym9keSAubXMtZm9udENvbG9yLW5ldXRyYWxMaWdodC0taG92ZXI6aG92ZXIgew0KICAgICAg Y29sb3I6ICNlYmViZWI7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3It bmV1dHJhbExpZ2h0ZXIsDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItbmV1dHJhbExp Z2h0ZXItLWhvdmVyOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjZjBmMGYwOw0KICAgIH0NCg0K ICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLW5ldXRyYWxMaWdodGVyQWx0LA0KICAgIGh0 bWwgYm9keSAubXMtZm9udENvbG9yLW5ldXRyYWxMaWdodGVyQWx0LS1ob3Zlcjpob3ZlciB7 DQogICAgICBjb2xvcjogI2ZhZmFmYTsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWZv bnRDb2xvci13aGl0ZSwNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci13aGl0ZS0taG92 ZXI6aG92ZXIgew0KICAgICAgY29sb3I6ICNmZmZmZmY7DQogICAgfQ0KDQogICAgaHRtbCBi b2R5IC5tcy1mb250Q29sb3IteWVsbG93LA0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9y LXllbGxvdy0taG92ZXI6aG92ZXIgew0KICAgICAgY29sb3I6ICNmZmI5MDA7DQogICAgfQ0K DQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3IteWVsbG93TGlnaHQsDQogICAgaHRtbCBi b2R5IC5tcy1mb250Q29sb3IteWVsbG93TGlnaHQtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGNv bG9yOiAjZmZmMTAwOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLW9y YW5nZSwNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1vcmFuZ2UtLWhvdmVyOmhvdmVy IHsNCiAgICAgIGNvbG9yOiAjZDgzYjAxOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMt Zm9udENvbG9yLW9yYW5nZUxpZ2h0LA0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLW9y YW5nZUxpZ2h0LS1ob3Zlcjpob3ZlciB7DQogICAgICBjb2xvcjogI2VhNDMwMDsNCiAgICB9 DQoNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1vcmFuZ2VMaWdodGVyLA0KICAgIGh0 bWwgYm9keSAubXMtZm9udENvbG9yLW9yYW5nZUxpZ2h0ZXItLWhvdmVyOmhvdmVyIHsNCiAg ICAgIGNvbG9yOiAjZmY4YzAwOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtZm9udENv bG9yLXJlZERhcmssDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItcmVkRGFyay0taG92 ZXI6aG92ZXIgew0KICAgICAgY29sb3I6ICNhNDI2MmM7DQogICAgfQ0KDQogICAgaHRtbCBi b2R5IC5tcy1mb250Q29sb3ItcmVkLA0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLXJl ZC0taG92ZXI6aG92ZXIgew0KICAgICAgY29sb3I6ICNlODExMjM7DQogICAgfQ0KDQogICAg aHRtbCBib2R5IC5tcy1mb250Q29sb3ItbWFnZW50YURhcmssDQogICAgaHRtbCBib2R5IC5t cy1mb250Q29sb3ItbWFnZW50YURhcmstLWhvdmVyOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAj NWMwMDVjOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLW1hZ2VudGEs DQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItbWFnZW50YS0taG92ZXI6aG92ZXIgew0K ICAgICAgY29sb3I6ICNiNDAwOWU7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1mb250 Q29sb3ItbWFnZW50YUxpZ2h0LA0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLW1hZ2Vu dGFMaWdodC0taG92ZXI6aG92ZXIgew0KICAgICAgY29sb3I6ICNlMzAwOGM7DQogICAgfQ0K DQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItcHVycGxlRGFyaywNCiAgICBodG1sIGJv ZHkgLm1zLWZvbnRDb2xvci1wdXJwbGVEYXJrLS1ob3Zlcjpob3ZlciB7DQogICAgICBjb2xv cjogIzMyMTQ1YTsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1wdXJw bGUsDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItcHVycGxlLS1ob3Zlcjpob3ZlciB7 DQogICAgICBjb2xvcjogIzVjMmQ5MTsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWZv bnRDb2xvci1wdXJwbGVMaWdodCwNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1wdXJw bGVMaWdodC0taG92ZXI6aG92ZXIgew0KICAgICAgY29sb3I6ICNiNGEwZmY7DQogICAgfQ0K DQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItYmx1ZURhcmssDQogICAgaHRtbCBib2R5 IC5tcy1mb250Q29sb3ItYmx1ZURhcmstLWhvdmVyOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAj MDAyMDUwOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLWJsdWVNaWQs DQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItYmx1ZU1pZC0taG92ZXI6aG92ZXIgew0K ICAgICAgY29sb3I6ICMwMDE4OGY7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1mb250 Q29sb3ItYmx1ZSwNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1ibHVlLS1ob3Zlcjpo b3ZlciB7DQogICAgICBjb2xvcjogIzAwNzhkNDsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkg Lm1zLWZvbnRDb2xvci1ibHVlTGlnaHQsDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3It Ymx1ZUxpZ2h0LS1ob3Zlcjpob3ZlciB7DQogICAgICBjb2xvcjogIzAwYmNmMjsNCiAgICB9 DQoNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci10ZWFsRGFyaywNCiAgICBodG1sIGJv ZHkgLm1zLWZvbnRDb2xvci10ZWFsRGFyay0taG92ZXI6aG92ZXIgew0KICAgICAgY29sb3I6 ICMwMDRiNTA7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItdGVhbCwN CiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci10ZWFsLS1ob3Zlcjpob3ZlciB7DQogICAg ICBjb2xvcjogIzAwODI3MjsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xv ci10ZWFsTGlnaHQsDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItdGVhbExpZ2h0LS1o b3Zlcjpob3ZlciB7DQogICAgICBjb2xvcjogIzAwYjI5NDsNCiAgICB9DQoNCiAgICBodG1s IGJvZHkgLm1zLWZvbnRDb2xvci1ncmVlbkRhcmssDQogICAgaHRtbCBib2R5IC5tcy1mb250 Q29sb3ItZ3JlZW5EYXJrLS1ob3Zlcjpob3ZlciB7DQogICAgICBjb2xvcjogIzAwNGIxYzsN CiAgICB9DQoNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1ncmVlbiwNCiAgICBodG1s IGJvZHkgLm1zLWZvbnRDb2xvci1ncmVlbi0taG92ZXI6aG92ZXIgew0KICAgICAgY29sb3I6 ICMxMDdjMTA7DQogICAgfQ0KDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItZ3JlZW5M aWdodCwNCiAgICBodG1sIGJvZHkgLm1zLWZvbnRDb2xvci1ncmVlbkxpZ2h0LS1ob3Zlcjpo b3ZlciB7DQogICAgICBjb2xvcjogI2JhZDgwYTsNCiAgICB9DQoNCiAgICBodG1sIGJvZHkg Lm1zLWZvbnRDb2xvci1pbmZvLA0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLWluZm8t LWhvdmVyOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjNjY2Ow0KICAgIH0NCg0KICAgIGh0bWwg Ym9keSAubXMtZm9udENvbG9yLXN1Y2Nlc3MsDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29s b3Itc3VjY2Vzcy0taG92ZXI6aG92ZXIgew0KICAgICAgY29sb3I6ICMxMDdjMTA7DQogICAg fQ0KDQogICAgaHRtbCBib2R5IC5tcy1mb250Q29sb3ItYWxlcnQsDQogICAgaHRtbCBib2R5 IC5tcy1mb250Q29sb3ItYWxlcnQtLWhvdmVyOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjZDgz YjAxOw0KICAgIH0NCg0KICAgIGh0bWwgYm9keSAubXMtZm9udENvbG9yLWVycm9yLA0KICAg IGh0bWwgYm9keSAubXMtZm9udENvbG9yLWVycm9yLS1ob3Zlcjpob3ZlciB7DQogICAgICBj b2xvcjogI2E4MDAwMDsNCiAgICB9DQoNCiAgICBAa2V5ZnJhbWVzIG1zLW1vdGlvbi1mYWRl SW4gew0KICAgICAgZnJvbSB7DQogICAgICAgIG9wYWNpdHk6IDA7DQogICAgICB9DQoNCiAg ICAgIHRvIHsNCiAgICAgICAgb3BhY2l0eTogMTsNCiAgICAgIH0NCiAgICB9DQoNCiAgICBA a2V5ZnJhbWVzIG1zLW1vdGlvbi1mYWRlT3V0IHsNCiAgICAgIGZyb20gew0KICAgICAgICBv cGFjaXR5OiAxOw0KICAgICAgfQ0KDQogICAgICB0byB7DQogICAgICAgIG9wYWNpdHk6IDA7 DQogICAgICB9DQogICAgfQ0KDQogICAgQGtleWZyYW1lcyBtcy1tb3Rpb24tc2NhbGVEb3du SW4gew0KICAgICAgZnJvbSB7DQogICAgICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjE1LCAx LjE1LCAxKTsNCiAgICAgIH0NCg0KICAgICAgdG8gew0KICAgICAgICB0cmFuc2Zvcm06IHNj YWxlM2QoMSwgMSwgMSk7DQogICAgICB9DQogICAgfQ0KDQogICAgQGtleWZyYW1lcyBtcy1t b3Rpb24tc2NhbGVEb3duT3V0IHsNCiAgICAgIGZyb20gew0KICAgICAgICB0cmFuc2Zvcm06 IHNjYWxlM2QoMSwgMSwgMSk7DQogICAgICB9DQoNCiAgICAgIHRvIHsNCiAgICAgICAgdHJh bnNmb3JtOiBzY2FsZTNkKDAuOSwgMC45LCAxKTsNCiAgICAgIH0NCiAgICB9DQoNCiAgICBA a2V5ZnJhbWVzIG1zLW1vdGlvbi1zbGlkZUxlZnRPdXQgew0KICAgICAgZnJvbSB7DQogICAg ICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7DQogICAgICB9DQoNCiAgICAg IHRvIHsNCiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNDhweCwgMCwgMCk7DQog ICAgICB9DQogICAgfQ0KDQogICAgQGtleWZyYW1lcyBtcy1tb3Rpb24tc2xpZGVSaWdodE91 dCB7DQogICAgICBmcm9tIHsNCiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAw LCAwKTsNCiAgICAgIH0NCg0KICAgICAgdG8gew0KICAgICAgICB0cmFuc2Zvcm06IHRyYW5z bGF0ZTNkKDQ4cHgsIDAsIDApOw0KICAgICAgfQ0KICAgIH0NCg0KICAgIEBrZXlmcmFtZXMg bXMtbW90aW9uLXNsaWRlTGVmdEluIHsNCiAgICAgIGZyb20gew0KICAgICAgICB0cmFuc2Zv cm06IHRyYW5zbGF0ZTNkKDQ4cHgsIDAsIDApOw0KICAgICAgfQ0KDQogICAgICB0byB7DQog ICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7DQogICAgICB9DQogICAg fQ0KDQogICAgQGtleWZyYW1lcyBtcy1tb3Rpb24tc2xpZGVSaWdodEluIHsNCiAgICAgIGZy b20gew0KICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC00OHB4LCAwLCAwKTsNCiAg ICAgIH0NCg0KICAgICAgdG8gew0KICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAs IDAsIDApOw0KICAgICAgfQ0KICAgIH0NCg0KICAgIEBrZXlmcmFtZXMgbXMtbW90aW9uLXNs aWRlVXBPdXQgew0KICAgICAgZnJvbSB7DQogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRl M2QoMCwgMCwgMCk7DQogICAgICB9DQoNCiAgICAgIHRvIHsNCiAgICAgICAgdHJhbnNmb3Jt OiB0cmFuc2xhdGUzZCgwLCAtNDhweCwgMCk7DQogICAgICB9DQogICAgfQ0KDQogICAgQGtl eWZyYW1lcyBtcy1tb3Rpb24tc2xpZGVEb3duT3V0IHsNCiAgICAgIGZyb20gew0KICAgICAg ICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApOw0KICAgICAgfQ0KDQogICAgICB0 byB7DQogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgNDhweCwgMCk7DQogICAg ICB9DQogICAgfQ0KDQogICAgQGtleWZyYW1lcyBtcy1tb3Rpb24tc2xpZGVVcEluIHsNCiAg ICAgIGZyb20gew0KICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDQ4cHgsIDAp Ow0KICAgICAgfQ0KDQogICAgICB0byB7DQogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRl M2QoMCwgMCwgMCk7DQogICAgICB9DQogICAgfQ0KDQogICAgQGtleWZyYW1lcyBtcy1tb3Rp b24tc2xpZGVEb3duSW4gew0KICAgICAgZnJvbSB7DQogICAgICAgIHRyYW5zZm9ybTogdHJh bnNsYXRlM2QoMCwgLTQ4cHgsIDApOw0KICAgICAgfQ0KDQogICAgICB0byB7DQogICAgICAg IHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7DQogICAgICB9DQogICAgfQ0KDQog ICAgLm1zLW1vdGlvbi1mYWRlSW4gew0KICAgICAgYW5pbWF0aW9uOiBtcy1tb3Rpb24tZmFk ZUluIDAuMXMgY3ViaWMtYmV6aWVyKDAsIDAsIDEsIDEpIGJvdGg7DQogICAgfQ0KDQogICAg Lm1zLW1vdGlvbi1mYWRlT3V0IHsNCiAgICAgIGFuaW1hdGlvbjogbXMtbW90aW9uLWZhZGVP dXQgMC4xcyBjdWJpYy1iZXppZXIoMCwgMCwgMSwgMSkgYm90aDsNCiAgICB9DQoNCiAgICAu bXMtbW90aW9uLXNjYWxlRG93bkluIHsNCiAgICAgIGFuaW1hdGlvbjogbXMtbW90aW9uLXNj YWxlRG93bkluIDAuM3MgY3ViaWMtYmV6aWVyKDAuMSwgMC45LCAwLjIsIDEpIGJvdGgsDQog ICAgICAgIG1zLW1vdGlvbi1mYWRlSW4gMC4xcyBjdWJpYy1iZXppZXIoMCwgMCwgMSwgMSkg Ym90aDsNCiAgICB9DQoNCiAgICAubXMtbW90aW9uLXNjYWxlRG93bk91dCB7DQogICAgICBh bmltYXRpb246IG1zLW1vdGlvbi1zY2FsZURvd25PdXQgMC4zcyBjdWJpYy1iZXppZXIoMC4x LCAwLjksIDAuMiwgMSkgYm90aCwNCiAgICAgICAgbXMtbW90aW9uLWZhZGVPdXQgMC4xcyBj dWJpYy1iZXppZXIoMCwgMCwgMSwgMSkgYm90aDsNCiAgICB9DQoNCiAgICBbZGlyPSJsdHIi XSAubXMtbW90aW9uLXNsaWRlTGVmdE91dCB7DQogICAgICBhbmltYXRpb246IG1zLW1vdGlv bi1zbGlkZUxlZnRPdXQgMC4xcyBjdWJpYy1iZXppZXIoMC45LCAwLjEsIDEsIDAuMikgYm90 aCwNCiAgICAgICAgbXMtbW90aW9uLWZhZGVPdXQgMC4xcyBjdWJpYy1iZXppZXIoMCwgMCwg MSwgMSkgYm90aDsNCiAgICB9DQoNCiAgICBbZGlyPSJydGwiXSAubXMtbW90aW9uLXNsaWRl TGVmdE91dCB7DQogICAgICBhbmltYXRpb246IG1zLW1vdGlvbi1zbGlkZVJpZ2h0T3V0IDAu MXMgY3ViaWMtYmV6aWVyKDAuOSwgMC4xLCAxLCAwLjIpIGJvdGgsDQogICAgICAgIG1zLW1v dGlvbi1mYWRlT3V0IDAuMXMgY3ViaWMtYmV6aWVyKDAsIDAsIDEsIDEpIGJvdGg7DQogICAg fQ0KDQogICAgW2Rpcj0ibHRyIl0gLm1zLW1vdGlvbi1zbGlkZVJpZ2h0T3V0IHsNCiAgICAg IGFuaW1hdGlvbjogbXMtbW90aW9uLXNsaWRlUmlnaHRPdXQgMC4xcyBjdWJpYy1iZXppZXIo MC45LCAwLjEsIDEsIDAuMikgYm90aCwNCiAgICAgICAgbXMtbW90aW9uLWZhZGVPdXQgMC4x cyBjdWJpYy1iZXppZXIoMCwgMCwgMSwgMSkgYm90aDsNCiAgICB9DQoNCiAgICBbZGlyPSJy dGwiXSAubXMtbW90aW9uLXNsaWRlUmlnaHRPdXQgew0KICAgICAgYW5pbWF0aW9uOiBtcy1t b3Rpb24tc2xpZGVMZWZ0T3V0IDAuMXMgY3ViaWMtYmV6aWVyKDAuOSwgMC4xLCAxLCAwLjIp IGJvdGgsDQogICAgICAgIG1zLW1vdGlvbi1mYWRlT3V0IDAuMXMgY3ViaWMtYmV6aWVyKDAs IDAsIDEsIDEpIGJvdGg7DQogICAgfQ0KDQogICAgW2Rpcj0ibHRyIl0gLm1zLW1vdGlvbi1z bGlkZUxlZnRJbiB7DQogICAgICBhbmltYXRpb246IG1zLW1vdGlvbi1zbGlkZUxlZnRJbiAw LjFzIGN1YmljLWJlemllcigwLjEsIDAuOSwgMC4yLCAxKSBib3RoLA0KICAgICAgICBtcy1t b3Rpb24tZmFkZUluIDAuMXMgY3ViaWMtYmV6aWVyKDAsIDAsIDEsIDEpIGJvdGg7DQogICAg fQ0KDQogICAgW2Rpcj0icnRsIl0gLm1zLW1vdGlvbi1zbGlkZUxlZnRJbiB7DQogICAgICBh bmltYXRpb246IG1zLW1vdGlvbi1zbGlkZVJpZ2h0SW4gMC4xcyBjdWJpYy1iZXppZXIoMC4x LCAwLjksIDAuMiwgMSkgYm90aCwNCiAgICAgICAgbXMtbW90aW9uLWZhZGVJbiAwLjFzIGN1 YmljLWJlemllcigwLCAwLCAxLCAxKSBib3RoOw0KICAgIH0NCg0KICAgIFtkaXI9Imx0ciJd IC5tcy1tb3Rpb24tc2xpZGVSaWdodEluIHsNCiAgICAgIGFuaW1hdGlvbjogbXMtbW90aW9u LXNsaWRlUmlnaHRJbiAwLjFzIGN1YmljLWJlemllcigwLjEsIDAuOSwgMC4yLCAxKSBib3Ro LA0KICAgICAgICBtcy1tb3Rpb24tZmFkZUluIDAuMXMgY3ViaWMtYmV6aWVyKDAsIDAsIDEs IDEpIGJvdGg7DQogICAgfQ0KDQogICAgW2Rpcj0icnRsIl0gLm1zLW1vdGlvbi1zbGlkZVJp Z2h0SW4gew0KICAgICAgYW5pbWF0aW9uOiBtcy1tb3Rpb24tc2xpZGVMZWZ0SW4gMC4xcyBj dWJpYy1iZXppZXIoMC4xLCAwLjksIDAuMiwgMSkgYm90aCwNCiAgICAgICAgbXMtbW90aW9u LWZhZGVJbiAwLjFzIGN1YmljLWJlemllcigwLCAwLCAxLCAxKSBib3RoOw0KICAgIH0NCg0K ICAgIC5tcy1tb3Rpb24tc2xpZGVVcE91dCB7DQogICAgICBhbmltYXRpb246IG1zLW1vdGlv bi1zbGlkZVVwT3V0IDAuMXMgY3ViaWMtYmV6aWVyKDAuOSwgMC4xLCAxLCAwLjIpIGJvdGgs DQogICAgICAgIG1zLW1vdGlvbi1mYWRlT3V0IDAuMXMgY3ViaWMtYmV6aWVyKDAsIDAsIDEs IDEpIGJvdGg7DQogICAgfQ0KDQogICAgLm1zLW1vdGlvbi1zbGlkZURvd25PdXQgew0KICAg ICAgYW5pbWF0aW9uOiBtcy1tb3Rpb24tc2xpZGVEb3duT3V0IDAuMXMgY3ViaWMtYmV6aWVy KDAuOSwgMC4xLCAxLCAwLjIpIGJvdGgsDQogICAgICAgIG1zLW1vdGlvbi1mYWRlT3V0IDAu MXMgY3ViaWMtYmV6aWVyKDAsIDAsIDEsIDEpIGJvdGg7DQogICAgfQ0KDQogICAgLm1zLW1v dGlvbi1zbGlkZVVwSW4gew0KICAgICAgYW5pbWF0aW9uOiBtcy1tb3Rpb24tc2xpZGVVcElu IDAuMXMgY3ViaWMtYmV6aWVyKDAuMSwgMC45LCAwLjIsIDEpIGJvdGgsDQogICAgICAgIG1z LW1vdGlvbi1mYWRlSW4gMC4xcyBjdWJpYy1iZXppZXIoMCwgMCwgMSwgMSkgYm90aDsNCiAg ICB9DQoNCiAgICAubXMtbW90aW9uLXNsaWRlRG93bkluIHsNCiAgICAgIGFuaW1hdGlvbjog bXMtbW90aW9uLXNsaWRlRG93bkluIDAuMXMgY3ViaWMtYmV6aWVyKDAuMSwgMC45LCAwLjIs IDEpIGJvdGgsDQogICAgICAgIG1zLW1vdGlvbi1mYWRlSW4gMC4xcyBjdWJpYy1iZXppZXIo MCwgMCwgMSwgMSkgYm90aDsNCiAgICB9DQoNCiAgICAub2QtTGluayB7DQogICAgICBjb2xv cjogIzAwNzhkNDsNCiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsNCiAgICAgIGN1cnNv cjogcG9pbnRlcjsNCiAgICAgIG91dGxpbmU6IDA7DQogICAgfQ0KDQogICAgLm9kLUxpbms6 Zm9jdXMsDQogICAgLm9kLUxpbms6aG92ZXIgew0KICAgICAgY29sb3I6ICMwMDQ1Nzg7DQog ICAgfQ0KDQogICAgLm9kLUxpbms6YWN0aXZlIHsNCiAgICAgIGNvbG9yOiAjMDA3OGQ0Ow0K ICAgIH0NCg0KICAgIC5vZC1MaW5rW2Rpc2FibGVkXSB7DQogICAgICBjdXJzb3I6IGRlZmF1 bHQ7DQogICAgICBjb2xvcjogIzllOWU5ZTsNCiAgICB9DQoNCiAgICAub2QtQ29udGV4dHVh bE1lbnUtaXRlbSB7DQogICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94Ow0KICAgICAgcG9z aXRpb246IHJlbGF0aXZlOw0KICAgIH0NCg0KICAgIC5vZC1Db250ZXh0dWFsTWVudS1pdGVt Lm9kLUNvbnRleHR1YWxNZW51LWl0ZW0tLWRpdmlkZXIgew0KICAgICAgY3Vyc29yOiBkZWZh dWx0Ow0KICAgICAgZGlzcGxheTogYmxvY2s7DQogICAgICBoZWlnaHQ6IDFweDsNCiAgICAg IG1hcmdpbjogNHB4IDA7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWJlYmViOw0KICAg ICAgcG9zaXRpb246IHJlbGF0aXZlOw0KICAgIH0NCg0KICAgIC5vZC1Db250ZXh0dWFsTWVu dS1pdGVtLm9kLUNvbnRleHR1YWxNZW51LWl0ZW0tLWhlYWRlciB7DQogICAgICBjb2xvcjog IzAwNzhkNDsNCiAgICAgIGZvbnQtc2l6ZTogMTJweDsNCiAgICAgIHRleHQtdHJhbnNmb3Jt OiB1cHBlcmNhc2U7DQogICAgICBoZWlnaHQ6IDQwcHg7DQogICAgICBsaW5lLWhlaWdodDog NDBweDsNCiAgICAgIHBhZGRpbmc6IDAgMThweDsNCiAgICB9DQoNCiAgICAub2QtQ29udGV4 dHVhbE1lbnUtbGluayB7DQogICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7DQogICAgICBj b2xvcjogIzI0MjQyNDsNCiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50Ow0K ICAgICAgY3Vyc29yOiBwb2ludGVyOw0KICAgICAgZGlzcGxheTogYmxvY2s7DQogICAgICBo ZWlnaHQ6IDQwcHg7DQogICAgICBsaW5lLWhlaWdodDogNDBweDsNCiAgICAgIHBhZGRpbmc6 IDAgMThweDsNCiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgICB9DQoNCiAgICBAbWVk aWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSkgew0KICAgICAgLm9k LUNvbnRleHR1YWxNZW51LWxpbmsgew0KICAgICAgICBib3JkZXItY29sb3I6ICMwMDAwMDA7 DQogICAgICB9DQogICAgfQ0KDQogICAgQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNv bnRyYXN0OiBibGFjay1vbi13aGl0ZSkgew0KICAgICAgLm9kLUNvbnRleHR1YWxNZW51LWxp bmsgew0KICAgICAgICBib3JkZXItY29sb3I6ICNmZmZmZmY7DQogICAgICB9DQogICAgfQ0K DQogICAgLm9kLUNvbnRleHR1YWxNZW51LWxpbms6Zmlyc3QtY2hpbGQsDQogICAgLm9kLUNv bnRleHR1YWxNZW51LWxpbms6bGFzdC1jaGlsZCB7DQogICAgICBoZWlnaHQ6IDM5cHg7DQog ICAgfQ0KDQogICAgLm9kLUNvbnRleHR1YWxNZW51LWxpbms6YWN0aXZlLA0KICAgIC5vZC1D b250ZXh0dWFsTWVudS1saW5rOmZvY3VzLA0KICAgIC5vZC1Db250ZXh0dWFsTWVudS1saW5r OmhvdmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlYmViZWI7DQogICAgICBjb2xv cjogIzAwMDAwMDsNCiAgICB9DQoNCiAgICBAbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gt Y29udHJhc3Q6IGFjdGl2ZSkgew0KICAgICAgLm9kLUNvbnRleHR1YWxNZW51LWxpbms6aG92 ZXIgew0KICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWFlYmZmOw0KICAgICAgICBib3Jk ZXItY29sb3I6ICMxYWViZmY7DQogICAgICAgIGNvbG9yOiAjMDAwMDAwOw0KICAgICAgfQ0K DQogICAgICAub2QtQ29udGV4dHVhbE1lbnUtbGluazpob3Zlcjpmb2N1cyB7DQogICAgICAg IGJvcmRlci1jb2xvcjogIzAwMDAwMDsNCiAgICAgIH0NCg0KICAgICAgLm9kLUNvbnRleHR1 YWxNZW51LWxpbms6aG92ZXIrLm9kLUNvbnRleHR1YWxNZW51LWNhcmV0UmlnaHQsDQogICAg ICAub2QtQ29udGV4dHVhbE1lbnUtbGluazpob3Zlcisub2QtQ29udGV4dHVhbE1lbnUtc3Vi TWVudUljb24gew0KICAgICAgICBjb2xvcjogIzAwMDAwMDsNCiAgICAgIH0NCiAgICB9DQoN CiAgICBAbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGJsYWNrLW9uLXdo aXRlKSB7DQogICAgICAub2QtQ29udGV4dHVhbE1lbnUtbGluazpob3ZlciB7DQogICAgICAg IGJhY2tncm91bmQtY29sb3I6ICMzNzAwNmU7DQogICAgICAgIGJvcmRlci1jb2xvcjogIzM3 MDA2ZTsNCiAgICAgICAgY29sb3I6ICNmZmZmZmY7DQogICAgICB9DQoNCiAgICAgIC5vZC1D b250ZXh0dWFsTWVudS1saW5rOmhvdmVyKy5vZC1Db250ZXh0dWFsTWVudS1jYXJldFJpZ2h0 LA0KICAgICAgLm9kLUNvbnRleHR1YWxNZW51LWxpbms6aG92ZXIrLm9kLUNvbnRleHR1YWxN ZW51LXN1Yk1lbnVJY29uIHsNCiAgICAgICAgY29sb3I6ICNmZmZmZmY7DQogICAgICB9DQog ICAgfQ0KDQogICAgLm9kLUNvbnRleHR1YWxNZW51LWxpbms6YWN0aXZlIHsNCiAgICAgIGJv cmRlcjogMXB4IHNvbGlkICMwMDc4ZDQ7DQogICAgfQ0KDQogICAgLm9kLUNvbnRleHR1YWxN ZW51LWxpbms6Zm9jdXMgew0KICAgICAgYm9yZGVyLWNvbG9yOiAjMDA3OGQ0Ow0KICAgICAg b3V0bGluZTogMDsNCiAgICB9DQoNCiAgICBAbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gt Y29udHJhc3Q6IGFjdGl2ZSkgew0KICAgICAgLm9kLUNvbnRleHR1YWxNZW51LWxpbms6Zm9j dXMgew0KICAgICAgICBib3JkZXItY29sb3I6ICNmZmZmZmY7DQogICAgICB9DQogICAgfQ0K DQogICAgQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBibGFjay1vbi13 aGl0ZSkgew0KICAgICAgLm9kLUNvbnRleHR1YWxNZW51LWxpbms6Zm9jdXMgew0KICAgICAg ICBib3JkZXItY29sb3I6ICMwMDAwMDA7DQogICAgICB9DQogICAgfQ0KDQogICAgLm9kLUNv bnRleHR1YWxNZW51LWxpbmsuaXMtc2VsZWN0ZWQgew0KICAgICAgYmFja2dyb3VuZC1jb2xv cjogI2M3ZTBmNDsNCiAgICAgIGNvbG9yOiAjMDAwMDAwOw0KICAgICAgZm9udC13ZWlnaHQ6 IDYwMDsNCiAgICB9DQoNCiAgICAub2QtQ29udGV4dHVhbE1lbnUtbGluay5pcy1zZWxlY3Rl ZDpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzdlMGY0Ow0KICAgIH0NCg0K ICAgIEBtZWRpYSBzY3JlZW4gYW5kICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSB7DQog ICAgICAub2QtQ29udGV4dHVhbE1lbnUtbGluay5pcy1zZWxlY3RlZCB7DQogICAgICAgIGJh Y2tncm91bmQtY29sb3I6ICMxYWViZmY7DQogICAgICAgIGJvcmRlci1jb2xvcjogIzFhZWJm ZjsNCiAgICAgICAgY29sb3I6ICMwMDAwMDA7DQogICAgICB9DQoNCiAgICAgIC5vZC1Db250 ZXh0dWFsTWVudS1saW5rLmlzLXNlbGVjdGVkOmZvY3VzIHsNCiAgICAgICAgYm9yZGVyLWNv bG9yOiAjMDAwMDAwOw0KICAgICAgfQ0KDQogICAgICAub2QtQ29udGV4dHVhbE1lbnUtbGlu ay5pcy1zZWxlY3RlZCsub2QtQ29udGV4dHVhbE1lbnUtY2FyZXRSaWdodCwNCiAgICAgIC5v ZC1Db250ZXh0dWFsTWVudS1saW5rLmlzLXNlbGVjdGVkKy5vZC1Db250ZXh0dWFsTWVudS1z dWJNZW51SWNvbiB7DQogICAgICAgIGNvbG9yOiAjMDAwMDAwOw0KICAgICAgfQ0KICAgIH0N Cg0KICAgIEBtZWRpYSBzY3JlZW4gYW5kICgtbXMtaGlnaC1jb250cmFzdDogYmxhY2stb24t d2hpdGUpIHsNCiAgICAgIC5vZC1Db250ZXh0dWFsTWVudS1saW5rLmlzLXNlbGVjdGVkIHsN CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzM3MDA2ZTsNCiAgICAgICAgYm9yZGVyLWNv bG9yOiAjMzcwMDZlOw0KICAgICAgICBjb2xvcjogI2ZmZmZmZjsNCiAgICAgIH0NCg0KICAg ICAgLm9kLUNvbnRleHR1YWxNZW51LWxpbmsuaXMtc2VsZWN0ZWQrLm9kLUNvbnRleHR1YWxN ZW51LWNhcmV0UmlnaHQsDQogICAgICAub2QtQ29udGV4dHVhbE1lbnUtbGluay5pcy1zZWxl Y3RlZCsub2QtQ29udGV4dHVhbE1lbnUtc3ViTWVudUljb24gew0KICAgICAgICBjb2xvcjog I2ZmZmZmZjsNCiAgICAgIH0NCiAgICB9DQoNCiAgICAub2QtQ29udGV4dHVhbE1lbnUtbGlu ay5pcy1kaXNhYmxlZCB7DQogICAgICBjb2xvcjogIzllOWU5ZTsNCiAgICAgIGN1cnNvcjog ZGVmYXVsdDsNCiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOw0KICAgIH0NCg0KICAgIC5v ZC1Db250ZXh0dWFsTWVudS1saW5rLmlzLWRpc2FibGVkOmFjdGl2ZSwNCiAgICAub2QtQ29u dGV4dHVhbE1lbnUtbGluay5pcy1kaXNhYmxlZDpmb2N1cyB7DQogICAgICBib3JkZXItY29s b3I6ICNmZmZmZmY7DQogICAgfQ0KDQogICAgQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdo LWNvbnRyYXN0OiBhY3RpdmUpIHsNCg0KICAgICAgLm9kLUNvbnRleHR1YWxNZW51LWxpbmsu aXMtZGlzYWJsZWQ6YWN0aXZlLA0KICAgICAgLm9kLUNvbnRleHR1YWxNZW51LWxpbmsuaXMt ZGlzYWJsZWQ6Zm9jdXMgew0KICAgICAgICBib3JkZXItY29sb3I6ICMwMDAwMDA7DQogICAg ICB9DQogICAgfQ0KDQogICAgQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0 OiBibGFjay1vbi13aGl0ZSkgew0KDQogICAgICAub2QtQ29udGV4dHVhbE1lbnUtbGluay5p cy1kaXNhYmxlZDphY3RpdmUsDQogICAgICAub2QtQ29udGV4dHVhbE1lbnUtbGluay5pcy1k aXNhYmxlZDpmb2N1cyB7DQogICAgICAgIGJvcmRlci1jb2xvcjogI2ZmZmZmZjsNCiAgICAg IH0NCiAgICB9DQoNCiAgICBAbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6 IGFjdGl2ZSkgew0KICAgICAgLm9kLUNvbnRleHR1YWxNZW51LWxpbmsuaXMtZGlzYWJsZWQg ew0KICAgICAgICBjb2xvcjogIzBmMDsNCiAgICAgIH0NCiAgICB9DQoNCiAgICBAbWVkaWEg c2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGJsYWNrLW9uLXdoaXRlKSB7DQogICAg ICAub2QtQ29udGV4dHVhbE1lbnUtbGluay5pcy1kaXNhYmxlZCB7DQogICAgICAgIGNvbG9y OiAjNjAwMDAwOw0KICAgICAgfQ0KICAgIH0NCg0KICAgIC5vZC1Db250ZXh0dWFsTWVudS1s aW5rLm9kLUNvbnRleHR1YWxNZW51LWxpbmstLWhhc01lbnV+Lm9kLUNvbnRleHR1YWxNZW51 IHsNCiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgIHRvcDogLTFweDsNCiAgICAg IGxlZnQ6IDE3OHB4Ow0KICAgIH0NCg0KICAgIC5vZC1Db250ZXh0dWFsTWVudS1jYXJldFJp Z2h0LA0KICAgIC5vZC1Db250ZXh0dWFsTWVudS1zdWJNZW51SWNvbiB7DQogICAgICBjb2xv cjogIzYxNjE2MTsNCiAgICAgIGZvbnQtc2l6ZTogMTZweDsNCiAgICAgIGhlaWdodDogMzlw eDsNCiAgICAgIGxpbmUtaGVpZ2h0OiA0MHB4Ow0KICAgICAgcG9zaXRpb246IGFic29sdXRl Ow0KICAgICAgdG9wOiAwOw0KICAgICAgcmlnaHQ6IDdweDsNCiAgICAgIHotaW5kZXg6IDE7 DQogICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsNCiAgICB9DQoNCiAgICAub2QtQ29udGV4 dHVhbE1lbnUub2QtQ29udGV4dHVhbE1lbnUtLW11bHRpc2VsZWN0IC5vZC1Db250ZXh0dWFs TWVudS1pdGVtLm9kLUNvbnRleHR1YWxNZW51LWl0ZW0tLWhlYWRlciB7DQogICAgICBwYWRk aW5nOiAwIDMwcHg7DQogICAgfQ0KDQogICAgLm9kLUNvbnRleHR1YWxNZW51Lm9kLUNvbnRl eHR1YWxNZW51LS1tdWx0aXNlbGVjdCAub2QtQ29udGV4dHVhbE1lbnUtbGluayB7DQogICAg ICBwYWRkaW5nOiAwIDMwcHg7DQogICAgfQ0KDQogICAgLm9kLUNvbnRleHR1YWxNZW51Lm9k LUNvbnRleHR1YWxNZW51LS1tdWx0aXNlbGVjdCAub2QtQ29udGV4dHVhbE1lbnUtbGluay5p cy1zZWxlY3RlZCB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOw0KICAgIH0N Cg0KICAgIC5vZC1Db250ZXh0dWFsTWVudS5vZC1Db250ZXh0dWFsTWVudS0tbXVsdGlzZWxl Y3QgLm9kLUNvbnRleHR1YWxNZW51LWxpbmsuaXMtc2VsZWN0ZWQ6YWZ0ZXIgew0KICAgICAg ZGlzcGxheTogaW5saW5lLWJsb2NrOw0KICAgICAgZm9udC1mYW1pbHk6IEZhYnJpY01ETDJJ Y29uczsNCiAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDsNCiAgICAgIGZvbnQtd2VpZ2h0OiA0 MDA7DQogICAgICBjb2xvcjogIzI0MjQyNDsNCiAgICAgIGNvbnRlbnQ6ICJcZTA0MSI7DQog ICAgICBmb250LXNpemU6IDEycHg7DQogICAgICBoZWlnaHQ6IDM5cHg7DQogICAgICBsaW5l LWhlaWdodDogNDBweDsNCiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgIGxlZnQ6 IDEwcHg7DQogICAgfQ0KDQogICAgLm9kLUxhYmVsIHsNCiAgICAgIGZvbnQtc2l6ZTogMTJw eDsNCiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7DQogICAgICBib3gtc2l6aW5nOiBib3JkZXIt Ym94Ow0KICAgICAgYm94LXNoYWRvdzogbm9uZTsNCiAgICAgIG1hcmdpbjogMDsNCiAgICAg IHBhZGRpbmc6IDA7DQogICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94Ow0KICAgICAgZGlz cGxheTogYmxvY2s7DQogICAgICBwYWRkaW5nOiA1cHggMDsNCiAgICB9DQoNCiAgICAub2Qt TGFiZWwuaXMtcmVxdWlyZWQ6YWZ0ZXIgew0KICAgICAgY29udGVudDogIiAqIjsNCiAgICAg IGNvbG9yOiAjYTgwMDAwOw0KICAgIH0NCg0KICAgIC5vZC1MYWJlbC5pcy1kaXNhYmxlZCB7 DQogICAgICBjb2xvcjogIzllOWU5ZTsNCiAgICB9DQoNCiAgICBAbWVkaWEgc2NyZWVuIGFu ZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSkgew0KICAgICAgLm9kLUxhYmVsLmlzLWRp c2FibGVkIHsNCiAgICAgICAgY29sb3I6ICMwZjA7DQogICAgICB9DQogICAgfQ0KDQogICAg QG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBibGFjay1vbi13aGl0ZSkg ew0KICAgICAgLm9kLUxhYmVsLmlzLWRpc2FibGVkIHsNCiAgICAgICAgY29sb3I6ICM2MDAw MDA7DQogICAgICB9DQogICAgfQ0KDQogICAgLmlzLWRpc2FibGVkIC5vZC1MYWJlbCB7DQog ICAgICBjb2xvcjogIzllOWU5ZTsNCiAgICB9DQoNCiAgICBAbWVkaWEgc2NyZWVuIGFuZCAo LW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSkgew0KICAgICAgLmlzLWRpc2FibGVkIC5vZC1M YWJlbCB7DQogICAgICAgIGNvbG9yOiAjMGYwOw0KICAgICAgfQ0KICAgIH0NCg0KICAgIEBt ZWRpYSBzY3JlZW4gYW5kICgtbXMtaGlnaC1jb250cmFzdDogYmxhY2stb24td2hpdGUpIHsN CiAgICAgIC5pcy1kaXNhYmxlZCAub2QtTGFiZWwgew0KICAgICAgICBjb2xvcjogIzYwMDAw MDsNCiAgICAgIH0NCiAgICB9DQoNCiAgICAub2QtQnV0dG9uIHsNCiAgICAgIGJveC1zaXpp bmc6IGJvcmRlci1ib3g7DQogICAgICBib3gtc2hhZG93OiBub25lOw0KICAgICAgbWFyZ2lu OiAwOw0KICAgICAgcGFkZGluZzogMDsNCiAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0Ow0K ICAgICAgY29sb3I6ICMyNDI0MjQ7DQogICAgICBmb250LXNpemU6IDE0cHg7DQogICAgICBj dXJzb3I6IHBvaW50ZXI7DQogICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7DQogICAgICBo ZWlnaHQ6IDMycHg7DQogICAgICBtaW4td2lkdGg6IDgwcHg7DQogICAgICBwYWRkaW5nOiA0 cHggMjBweCA2cHg7DQogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7DQogICAgICBib3JkZXIt cmFkaXVzOiAycHg7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOw0KICAgICAg Ym9yZGVyOiAxcHggc29saWQgIzhhOGE4YTsNCiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7DQog ICAgfQ0KDQogICAgLmlzRmx1ZW50Vk5leHQgLm9kLUJ1dHRvbiB7DQogICAgICBiYWNrZ3Jv dW5kLWNvbG9yOiAjZmZmZmZmOw0KICAgICAgYm9yZGVyOiAxcHggc29saWQgI2QxZDFkMTsN CiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsNCiAgICAgIHBhZGRpbmctbGVmdDogMTJweDsN CiAgICAgIHBhZGRpbmctcmlnaHQ6IDEycHg7DQogICAgfQ0KDQogICAgLmlzLWhpZGRlbi5v ZC1CdXR0b24gew0KICAgICAgZGlzcGxheTogbm9uZTsNCiAgICB9DQoNCiAgICAub2QtQnV0 dG9uOmhvdmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmMGYwZjA7DQogICAgICBi b3JkZXItY29sb3I6ICM4YThhOGE7DQogICAgfQ0KDQogICAgLmlzRmx1ZW50Vk5leHQgLm9k LUJ1dHRvbjpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1Ow0KICAg ICAgYm9yZGVyLWNvbG9yOiAjYzdjN2M3Ow0KICAgIH0NCg0KICAgIC5vZC1CdXR0b246aG92 ZXIgLm9kLUJ1dHRvbi1sYWJlbCB7DQogICAgICBjb2xvcjogIzE0MTQxNDsNCiAgICB9DQoN CiAgICAuaXNGbHVlbnRWTmV4dCAub2QtQnV0dG9uOmhvdmVyIC5vZC1CdXR0b24tbGFiZWwg ew0KICAgICAgY29sb3I6ICMyNDI0MjQ7DQogICAgfQ0KDQogICAgQG1lZGlhIHNjcmVlbiBh bmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpIHsNCiAgICAgIC5vZC1CdXR0b246aG92 ZXIgew0KICAgICAgICBjb2xvcjogIzFhZWJmZjsNCiAgICAgICAgYm9yZGVyLWNvbG9yOiAj MWFlYmZmOw0KICAgICAgfQ0KICAgIH0NCg0KICAgIEBtZWRpYSBzY3JlZW4gYW5kICgtbXMt aGlnaC1jb250cmFzdDogYmxhY2stb24td2hpdGUpIHsNCiAgICAgIC5vZC1CdXR0b246aG92 ZXIgew0KICAgICAgICBjb2xvcjogIzM3MDA2ZTsNCiAgICAgICAgYm9yZGVyLWNvbG9yOiAj MzcwMDZlOw0KICAgICAgfQ0KICAgIH0NCg0KICAgIC5vZC1CdXR0b246Zm9jdXMgew0KICAg ICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjsNCiAgICAgIGJvcmRlci1jb2xvcjogIzhh OGE4YTsNCiAgICAgIG91dGxpbmU6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsNCiAgICB9DQoN CiAgICAubXMtRmFicmljLS1pc0ZvY3VzVmlzaWJsZSAub2QtQnV0dG9uOmZvY3VzOjphZnRl ciB7DQogICAgICBjb250ZW50OiAiIjsNCiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAg ICAgIHRvcDogLTFweDsNCiAgICAgIGxlZnQ6IC0xcHg7DQogICAgICByaWdodDogLTFweDsN CiAgICAgIGJvdHRvbTogLTFweDsNCiAgICAgIG91dGxpbmU6IDFweCBzb2xpZCAjNjE2MTYx Ow0KICAgICAgb3V0bGluZS1vZmZzZXQ6IC00cHg7DQogICAgICBib3JkZXI6IDJweCBzb2xp ZCAjOGE4YThhOw0KICAgICAgYm9yZGVyLXJhZGl1czogMnB4Ow0KICAgICAgYm94LXNoYWRv dzogMCAwIDAgMXB4ICNmZmZmZmYgaW5zZXQ7DQogICAgfQ0KDQogICAgLmlzRmx1ZW50Vk5l eHQgLm9kLUJ1dHRvbjpmb2N1cyB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZm Ow0KICAgICAgYm9yZGVyLWNvbG9yOiAjZDFkMWQxOw0KICAgIH0NCg0KICAgIC5tcy1GYWJy aWMtLWlzRm9jdXNWaXNpYmxlIC5pc0ZsdWVudFZOZXh0IC5vZC1CdXR0b246Zm9jdXM6OmFm dGVyIHsNCiAgICAgIGNvbnRlbnQ6ICIiOw0KICAgICAgcG9zaXRpb246IGFic29sdXRlOw0K ICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7DQogICAgICBib3JkZXItcmFk aXVzOiA0cHg7DQogICAgICBpbnNldDogMDsNCiAgICAgIG91dGxpbmU6IDJweCBzb2xpZCAj MDAwMDAwOw0KICAgICAgb3V0bGluZS1vZmZzZXQ6IDA7DQogICAgICBib3gtc2hhZG93OiBu b25lOw0KICAgIH0NCg0KICAgIC5vZC1CdXR0b246Zm9jdXMgLm9kLUJ1dHRvbi1sYWJlbCB7 DQogICAgICBjb2xvcjogIzI0MjQyNDsNCiAgICB9DQoNCiAgICAub2QtQnV0dG9uOmFjdGl2 ZSB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWJlYmViOw0KICAgICAgYm9yZGVyLWNv bG9yOiAjOGE4YThhOw0KICAgIH0NCg0KICAgIC5pc0ZsdWVudFZOZXh0IC5vZC1CdXR0b246 YWN0aXZlIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlMGUwZTA7DQogICAgICBib3Jk ZXItY29sb3I6ICM5ZTllOWU7DQogICAgfQ0KDQogICAgLm9kLUJ1dHRvbjphY3RpdmUgLm9k LUJ1dHRvbi1sYWJlbCB7DQogICAgICBjb2xvcjogIzE0MTQxNDsNCiAgICB9DQoNCiAgICAu aXNGbHVlbnRWTmV4dCAub2QtQnV0dG9uOmFjdGl2ZSAub2QtQnV0dG9uLWxhYmVsIHsNCiAg ICAgIGNvbG9yOiAjMjQyNDI0Ow0KICAgIH0NCg0KICAgIC5pcy1kaXNhYmxlZC5vZC1CdXR0 b24sDQogICAgLm9kLUJ1dHRvbjpkaXNhYmxlZCB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9y OiAjZjBmMGYwOw0KICAgICAgYm9yZGVyLWNvbG9yOiAjZjBmMGYwOw0KICAgICAgY3Vyc29y OiBkZWZhdWx0Ow0KICAgIH0NCg0KICAgIC5pc0ZsdWVudFZOZXh0IC5pcy1kaXNhYmxlZC5v ZC1CdXR0b24sDQogICAgLmlzRmx1ZW50Vk5leHQgLm9kLUJ1dHRvbjpkaXNhYmxlZCB7DQog ICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBmMGYwOw0KICAgICAgYm9yZGVyLWNvbG9yOiAj ZjBmMGYwOw0KICAgIH0NCg0KICAgIC5pcy1kaXNhYmxlZC5vZC1CdXR0b24gLm9kLUJ1dHRv bi1sYWJlbCwNCiAgICAub2QtQnV0dG9uOmRpc2FibGVkIC5vZC1CdXR0b24tbGFiZWwgew0K ICAgICAgY29sb3I6ICM5ZTllOWU7DQogICAgfQ0KDQogICAgLmlzRmx1ZW50Vk5leHQgLmlz LWRpc2FibGVkLm9kLUJ1dHRvbiAub2QtQnV0dG9uLWxhYmVsLA0KICAgIC5pc0ZsdWVudFZO ZXh0IC5vZC1CdXR0b246ZGlzYWJsZWQgLm9kLUJ1dHRvbi1sYWJlbCB7DQogICAgICBjb2xv cjogI2JkYmRiZDsNCiAgICB9DQoNCiAgICAuaXMtZGlzYWJsZWQub2QtQnV0dG9uOmZvY3Vz LA0KICAgIC5pcy1kaXNhYmxlZC5vZC1CdXR0b246aG92ZXIsDQogICAgLm9kLUJ1dHRvbjpk aXNhYmxlZDpmb2N1cywNCiAgICAub2QtQnV0dG9uOmRpc2FibGVkOmhvdmVyIHsNCiAgICAg IG91dGxpbmU6IDA7DQogICAgfQ0KDQogICAgLm9kLUJ1dHRvbi5vZC1CdXR0b24tLXByaW1h cnkgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwNzhkNDsNCiAgICAgIGJvcmRlci1j b2xvcjogIzAwNzhkNDsNCiAgICAgIGNvbG9yOiAjZmZmZmZmOw0KICAgIH0NCg0KICAgIC5v ZC1CdXR0b24ub2QtQnV0dG9uLS1wcmltYXJ5IC5vZC1CdXR0b24tbGFiZWwgew0KICAgICAg Y29sb3I6ICNmZmZmZmY7DQogICAgfQ0KDQogICAgLm9kLUJ1dHRvbi5vZC1CdXR0b24tLXBy aW1hcnk6aG92ZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzEwNmViZTsNCiAgICAg IGJvcmRlci1jb2xvcjogIzEwNmViZTsNCiAgICB9DQoNCiAgICAub2QtQnV0dG9uLm9kLUJ1 dHRvbi0tcHJpbWFyeTpob3ZlciAub2QtQnV0dG9uLWxhYmVsIHsNCiAgICAgIGNvbG9yOiAj ZmZmZmZmOw0KICAgIH0NCg0KICAgIC5pc0ZsdWVudFZOZXh0IC5vZC1CdXR0b24ub2QtQnV0 dG9uLS1wcmltYXJ5OmhvdmVyIC5vZC1CdXR0b24tbGFiZWwgew0KICAgICAgY29sb3I6ICNm ZmZmZmY7DQogICAgfQ0KDQogICAgLm9kLUJ1dHRvbi5vZC1CdXR0b24tLXByaW1hcnk6Zm9j dXMgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwNzhkNDsNCiAgICAgIGJvcmRlci1j b2xvcjogIzAwNzhkNDsNCiAgICB9DQoNCiAgICAubXMtRmFicmljLS1pc0ZvY3VzVmlzaWJs ZSAub2QtQnV0dG9uLm9kLUJ1dHRvbi0tcHJpbWFyeTpmb2N1czo6YWZ0ZXIgew0KICAgICAg Y29udGVudDogIiI7DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgICB0b3A6IC0x cHg7DQogICAgICBsZWZ0OiAtMXB4Ow0KICAgICAgcmlnaHQ6IC0xcHg7DQogICAgICBib3R0 b206IC0xcHg7DQogICAgICBvdXRsaW5lOiAxcHggc29saWQgIzAwNzhkNDsNCiAgICAgIG91 dGxpbmUtb2Zmc2V0OiAtNHB4Ow0KICAgICAgYm9yZGVyOiAycHggc29saWQgIzAwNzhkNDsN CiAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsNCiAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFw eCAjZmZmZmZmIGluc2V0Ow0KICAgIH0NCg0KICAgIC5pc0ZsdWVudFZOZXh0IC5vZC1CdXR0 b24ub2QtQnV0dG9uLS1wcmltYXJ5OmZvY3VzIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6 ICMwMDc4ZDQ7DQogICAgICBib3JkZXItY29sb3I6ICMwMDc4ZDQ7DQogICAgfQ0KDQogICAg Lm1zLUZhYnJpYy0taXNGb2N1c1Zpc2libGUgLmlzRmx1ZW50Vk5leHQgLm9kLUJ1dHRvbi5v ZC1CdXR0b24tLXByaW1hcnk6Zm9jdXM6OmFmdGVyIHsNCiAgICAgIGNvbnRlbnQ6ICIiOw0K ICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICAgYm9yZGVyOiAxcHggc29saWQgI2Zm ZmZmZjsNCiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsNCiAgICAgIGluc2V0OiAwOw0KICAg ICAgb3V0bGluZTogMnB4IHNvbGlkICMwMDAwMDA7DQogICAgICBvdXRsaW5lLW9mZnNldDog MDsNCiAgICAgIGJveC1zaGFkb3c6IG5vbmU7DQogICAgfQ0KDQogICAgLm9kLUJ1dHRvbi5v ZC1CdXR0b24tLXByaW1hcnk6Zm9jdXMgLm9kLUJ1dHRvbi1sYWJlbCB7DQogICAgICBjb2xv cjogI2ZmZmZmZjsNCiAgICB9DQoNCiAgICAub2QtQnV0dG9uLm9kLUJ1dHRvbi0tcHJpbWFy eTphY3RpdmUgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwNDU3ODsNCiAgICAgIGJv cmRlci1jb2xvcjogIzAwNDU3ODsNCiAgICB9DQoNCiAgICAub2QtQnV0dG9uLm9kLUJ1dHRv bi0tcHJpbWFyeTphY3RpdmUgLm9kLUJ1dHRvbi1sYWJlbCB7DQogICAgICBjb2xvcjogI2Zm ZmZmZjsNCiAgICB9DQoNCiAgICAuaXNGbHVlbnRWTmV4dCAub2QtQnV0dG9uLm9kLUJ1dHRv bi0tcHJpbWFyeTphY3RpdmUgLm9kLUJ1dHRvbi1sYWJlbCB7DQogICAgICBjb2xvcjogI2Zm ZmZmZjsNCiAgICB9DQoNCiAgICAuaXMtZGlzYWJsZWQub2QtQnV0dG9uLm9kLUJ1dHRvbi0t cHJpbWFyeSwNCiAgICAub2QtQnV0dG9uLm9kLUJ1dHRvbi0tcHJpbWFyeTpkaXNhYmxlZCB7 DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBmMGYwOw0KICAgICAgYm9yZGVyLWNvbG9y OiAjZjBmMGYwOw0KICAgIH0NCg0KICAgIC5pcy1kaXNhYmxlZC5vZC1CdXR0b24ub2QtQnV0 dG9uLS1wcmltYXJ5IC5vZC1CdXR0b24tbGFiZWwsDQogICAgLm9kLUJ1dHRvbi5vZC1CdXR0 b24tLXByaW1hcnk6ZGlzYWJsZWQgLm9kLUJ1dHRvbi1sYWJlbCB7DQogICAgICBjb2xvcjog IzllOWU5ZTsNCiAgICB9DQoNCiAgICAuaXNGbHVlbnRWTmV4dCAuaXMtZGlzYWJsZWQub2Qt QnV0dG9uLm9kLUJ1dHRvbi0tcHJpbWFyeSAub2QtQnV0dG9uLWxhYmVsLA0KICAgIC5pc0Zs dWVudFZOZXh0IC5vZC1CdXR0b24ub2QtQnV0dG9uLS1wcmltYXJ5OmRpc2FibGVkIC5vZC1C dXR0b24tbGFiZWwgew0KICAgICAgY29sb3I6ICNiZGJkYmQ7DQogICAgfQ0KDQogICAgLm9k LUJ1dHRvbi5vZC1CdXR0b24tLWhlcm8gew0KICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsN CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICAgICAgYm9yZGVyOiAw Ow0KICAgICAgZGlzcGxheTogZmxleDsNCiAgICAgIHBhZGRpbmc6IDA7DQogICAgfQ0KDQog ICAgLm9kLUJ1dHRvbi5vZC1CdXR0b24tLWhlcm8gLm9kLUJ1dHRvbi1pY29uIHsNCiAgICAg IGNvbG9yOiAjMDA3OGQ0Ow0KICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOw0KICAgICAg Zm9udC1zaXplOiAxMnB4Ow0KICAgICAgbWFyZ2luLXJpZ2h0OiA0cHg7DQogICAgICBwb3Np dGlvbjogcmVsYXRpdmU7DQogICAgICB0b3A6IDFweDsNCiAgICAgIHRleHQtYWxpZ246IGNl bnRlcjsNCiAgICB9DQoNCiAgICAub2QtQnV0dG9uLm9kLUJ1dHRvbi0taGVybyAub2QtQnV0 dG9uLWljb24gLm1zLUljb24gew0KICAgICAgYm9yZGVyLXJhZGl1czogMThweDsNCiAgICAg IGJvcmRlcjogMXB4IHNvbGlkICMwMDc4ZDQ7DQogICAgICBmb250LXNpemU6IDEycHg7DQog ICAgICBoZWlnaHQ6IDE4cHg7DQogICAgICBsaW5lLWhlaWdodDogMThweDsNCiAgICAgIHdp ZHRoOiAxOHB4Ow0KICAgIH0NCg0KICAgIC5vZC1CdXR0b24ub2QtQnV0dG9uLS1oZXJvIC5v ZC1CdXR0b24tbGFiZWwgew0KICAgICAgY29sb3I6ICMwMDc4ZDQ7DQogICAgICBmb250LXNp emU6IDIxcHg7DQogICAgICBmb250LXdlaWdodDogMTAwOw0KICAgICAgcG9zaXRpb246IHJl bGF0aXZlOw0KICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOw0KICAgIH0NCg0KICAgIC5v ZC1CdXR0b24ub2QtQnV0dG9uLS1oZXJvOmZvY3VzIC5vZC1CdXR0b24taWNvbiwNCiAgICAu b2QtQnV0dG9uLm9kLUJ1dHRvbi0taGVybzpob3ZlciAub2QtQnV0dG9uLWljb24gew0KICAg ICAgY29sb3I6ICMxMDZlYmU7DQogICAgfQ0KDQogICAgLm9kLUJ1dHRvbi5vZC1CdXR0b24t LWhlcm86Zm9jdXMgLm9kLUJ1dHRvbi1pY29uIC5tcy1JY29uLA0KICAgIC5vZC1CdXR0b24u b2QtQnV0dG9uLS1oZXJvOmhvdmVyIC5vZC1CdXR0b24taWNvbiAubXMtSWNvbiB7DQogICAg ICBib3JkZXI6IDFweCBzb2xpZCAjMTA2ZWJlOw0KICAgIH0NCg0KICAgIC5vZC1CdXR0b24u b2QtQnV0dG9uLS1oZXJvOmZvY3VzIC5vZC1CdXR0b24tbGFiZWwsDQogICAgLm9kLUJ1dHRv bi5vZC1CdXR0b24tLWhlcm86aG92ZXIgLm9kLUJ1dHRvbi1sYWJlbCB7DQogICAgICBjb2xv cjogIzAwNDU3ODsNCiAgICB9DQoNCiAgICAub2QtQnV0dG9uLm9kLUJ1dHRvbi0taGVybzph Y3RpdmUgLm9kLUJ1dHRvbi1pY29uIHsNCiAgICAgIGNvbG9yOiAjMTA2ZWJlOw0KICAgIH0N Cg0KICAgIC5vZC1CdXR0b24ub2QtQnV0dG9uLS1oZXJvOmFjdGl2ZSAub2QtQnV0dG9uLWlj b24gLm1zLUljb24gew0KICAgICAgYm9yZGVyOiAxcHggc29saWQgIzEwNmViZTsNCiAgICB9 DQoNCiAgICAub2QtQnV0dG9uLm9kLUJ1dHRvbi0taGVybzphY3RpdmUgLm9kLUJ1dHRvbi1s YWJlbCB7DQogICAgICBjb2xvcjogIzEwNmViZTsNCiAgICB9DQoNCiAgICAuaXMtZGlzYWJs ZWQub2QtQnV0dG9uLm9kLUJ1dHRvbi0taGVybyAub2QtQnV0dG9uLWljb24sDQogICAgLm9k LUJ1dHRvbi5vZC1CdXR0b24tLWhlcm86ZGlzYWJsZWQgLm9kLUJ1dHRvbi1pY29uIHsNCiAg ICAgIGNvbG9yOiAjYzdjN2M3Ow0KICAgIH0NCg0KICAgIC5pcy1kaXNhYmxlZC5vZC1CdXR0 b24ub2QtQnV0dG9uLS1oZXJvIC5vZC1CdXR0b24taWNvbiAubXMtSWNvbiwNCiAgICAub2Qt QnV0dG9uLm9kLUJ1dHRvbi0taGVybzpkaXNhYmxlZCAub2QtQnV0dG9uLWljb24gLm1zLUlj b24gew0KICAgICAgYm9yZGVyOiAxcHggc29saWQgI2M3YzdjNzsNCiAgICB9DQoNCiAgICAu aXMtZGlzYWJsZWQub2QtQnV0dG9uLm9kLUJ1dHRvbi0taGVybyAub2QtQnV0dG9uLWxhYmVs LA0KICAgIC5vZC1CdXR0b24ub2QtQnV0dG9uLS1oZXJvOmRpc2FibGVkIC5vZC1CdXR0b24t bGFiZWwgew0KICAgICAgY29sb3I6ICM5ZTllOWU7DQogICAgfQ0KDQogICAgLm9kLUJ1dHRv bi5vZC1CdXR0b24tLWNvbXBvdW5kIHsNCiAgICAgIGRpc3BsYXk6IGJsb2NrOw0KICAgICAg aGVpZ2h0OiBhdXRvOw0KICAgICAgbWF4LXdpZHRoOiAyODBweDsNCiAgICAgIG1pbi1oZWln aHQ6IDcycHg7DQogICAgICBwYWRkaW5nOiAyMHB4Ow0KICAgIH0NCg0KICAgIC5vZC1CdXR0 b24ub2QtQnV0dG9uLS1jb21wb3VuZCAub2QtQnV0dG9uLWxhYmVsIHsNCiAgICAgIGRpc3Bs YXk6IGJsb2NrOw0KICAgICAgZm9udC13ZWlnaHQ6IDYwMDsNCiAgICAgIHBvc2l0aW9uOiBy ZWxhdGl2ZTsNCiAgICAgIHRleHQtYWxpZ246IGxlZnQ7DQogICAgICBtYXJnaW4tdG9wOiAt NXB4Ow0KICAgIH0NCg0KICAgIC5vZC1CdXR0b24ub2QtQnV0dG9uLS1jb21wb3VuZCAub2Qt QnV0dG9uLWRlc2NyaXB0aW9uIHsNCiAgICAgIGNvbG9yOiAjNjE2MTYxOw0KICAgICAgZGlz cGxheTogYmxvY2s7DQogICAgICBmb250LXdlaWdodDogNDAwOw0KICAgICAgZm9udC1zaXpl OiAxMnB4Ow0KICAgICAgcG9zaXRpb246IHJlbGF0aXZlOw0KICAgICAgdGV4dC1hbGlnbjog bGVmdDsNCiAgICAgIHRvcDogM3B4Ow0KICAgIH0NCg0KICAgIC5vZC1CdXR0b24ub2QtQnV0 dG9uLS1jb21wb3VuZDpob3ZlciAub2QtQnV0dG9uLWRlc2NyaXB0aW9uIHsNCiAgICAgIGNv bG9yOiAjMTQxNDE0Ow0KICAgIH0NCg0KICAgIC5vZC1CdXR0b24ub2QtQnV0dG9uLS1jb21w b3VuZDpmb2N1cyB7DQogICAgICBib3JkZXItY29sb3I6ICMwMDc4ZDQ7DQogICAgICBiYWNr Z3JvdW5kLWNvbG9yOiAjZjBmMGYwOw0KICAgIH0NCg0KICAgIC5vZC1CdXR0b24ub2QtQnV0 dG9uLS1jb21wb3VuZDpmb2N1cyAub2QtQnV0dG9uLWxhYmVsIHsNCiAgICAgIGNvbG9yOiAj MjQyNDI0Ow0KICAgIH0NCg0KICAgIC5vZC1CdXR0b24ub2QtQnV0dG9uLS1jb21wb3VuZDpm b2N1cyAub2QtQnV0dG9uLWRlc2NyaXB0aW9uIHsNCiAgICAgIGNvbG9yOiAjNjE2MTYxOw0K ICAgIH0NCg0KICAgIC5vZC1CdXR0b24ub2QtQnV0dG9uLS1jb21wb3VuZDphY3RpdmUgew0K ICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwNzhkNDsNCiAgICB9DQoNCiAgICAub2QtQnV0 dG9uLm9kLUJ1dHRvbi0tY29tcG91bmQ6YWN0aXZlIC5vZC1CdXR0b24tZGVzY3JpcHRpb24s DQogICAgLm9kLUJ1dHRvbi5vZC1CdXR0b24tLWNvbXBvdW5kOmFjdGl2ZSAub2QtQnV0dG9u LWxhYmVsIHsNCiAgICAgIGNvbG9yOiAjZmZmZmZmOw0KICAgIH0NCg0KICAgIC5pcy1kaXNh YmxlZC5vZC1CdXR0b24ub2QtQnV0dG9uLS1jb21wb3VuZCAub2QtQnV0dG9uLWRlc2NyaXB0 aW9uLA0KICAgIC5pcy1kaXNhYmxlZC5vZC1CdXR0b24ub2QtQnV0dG9uLS1jb21wb3VuZCAu b2QtQnV0dG9uLWxhYmVsLA0KICAgIC5vZC1CdXR0b24ub2QtQnV0dG9uLS1jb21wb3VuZDpk aXNhYmxlZCAub2QtQnV0dG9uLWRlc2NyaXB0aW9uLA0KICAgIC5vZC1CdXR0b24ub2QtQnV0 dG9uLS1jb21wb3VuZDpkaXNhYmxlZCAub2QtQnV0dG9uLWxhYmVsIHsNCiAgICAgIGNvbG9y OiAjOWU5ZTllOw0KICAgIH0NCg0KICAgIC5pcy1kaXNhYmxlZC5vZC1CdXR0b24ub2QtQnV0 dG9uLS1jb21wb3VuZDphY3RpdmUsDQogICAgLmlzLWRpc2FibGVkLm9kLUJ1dHRvbi5vZC1C dXR0b24tLWNvbXBvdW5kOmZvY3VzLA0KICAgIC5vZC1CdXR0b24ub2QtQnV0dG9uLS1jb21w b3VuZDpkaXNhYmxlZDphY3RpdmUsDQogICAgLm9kLUJ1dHRvbi5vZC1CdXR0b24tLWNvbXBv dW5kOmRpc2FibGVkOmZvY3VzIHsNCiAgICAgIGJvcmRlci1jb2xvcjogI2YwZjBmMDsNCiAg ICAgIGJhY2tncm91bmQtY29sb3I6ICNmMGYwZjA7DQogICAgfQ0KDQogICAgLmlzLWRpc2Fi bGVkLm9kLUJ1dHRvbi5vZC1CdXR0b24tLWNvbXBvdW5kOmFjdGl2ZSAub2QtQnV0dG9uLWRl c2NyaXB0aW9uLA0KICAgIC5pcy1kaXNhYmxlZC5vZC1CdXR0b24ub2QtQnV0dG9uLS1jb21w b3VuZDphY3RpdmUgLm9kLUJ1dHRvbi1sYWJlbCwNCiAgICAuaXMtZGlzYWJsZWQub2QtQnV0 dG9uLm9kLUJ1dHRvbi0tY29tcG91bmQ6Zm9jdXMgLm9kLUJ1dHRvbi1kZXNjcmlwdGlvbiwN CiAgICAuaXMtZGlzYWJsZWQub2QtQnV0dG9uLm9kLUJ1dHRvbi0tY29tcG91bmQ6Zm9jdXMg Lm9kLUJ1dHRvbi1sYWJlbCwNCiAgICAub2QtQnV0dG9uLm9kLUJ1dHRvbi0tY29tcG91bmQ6 ZGlzYWJsZWQ6YWN0aXZlIC5vZC1CdXR0b24tZGVzY3JpcHRpb24sDQogICAgLm9kLUJ1dHRv bi5vZC1CdXR0b24tLWNvbXBvdW5kOmRpc2FibGVkOmFjdGl2ZSAub2QtQnV0dG9uLWxhYmVs LA0KICAgIC5vZC1CdXR0b24ub2QtQnV0dG9uLS1jb21wb3VuZDpkaXNhYmxlZDpmb2N1cyAu b2QtQnV0dG9uLWRlc2NyaXB0aW9uLA0KICAgIC5vZC1CdXR0b24ub2QtQnV0dG9uLS1jb21w b3VuZDpkaXNhYmxlZDpmb2N1cyAub2QtQnV0dG9uLWxhYmVsIHsNCiAgICAgIGNvbG9yOiAj OWU5ZTllOw0KICAgIH0NCg0KICAgIC5vZC1CdXR0b24tbGFiZWwgew0KICAgICAgY29sb3I6 ICMyNDI0MjQ7DQogICAgICBmb250LXdlaWdodDogNjAwOw0KICAgICAgZm9udC1zaXplOiAx NHB4Ow0KICAgIH0NCg0KICAgIC5pc0ZsdWVudFZOZXh0IC5vZC1CdXR0b24tbGFiZWwgew0K ICAgICAgY29sb3I6ICMyNDI0MjQ7DQogICAgfQ0KDQogICAgLm9kLUJ1dHRvbi1kZXNjcmlw dGlvbiwNCiAgICAub2QtQnV0dG9uLWljb24gew0KICAgICAgZGlzcGxheTogbm9uZTsNCiAg ICB9DQoNCiAgICAub2QtTGFiZWwgew0KICAgICAgZm9udC1zaXplOiAxMnB4Ow0KICAgICAg Zm9udC13ZWlnaHQ6IDQwMDsNCiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7DQogICAg ICBib3gtc2hhZG93OiBub25lOw0KICAgICAgbWFyZ2luOiAwOw0KICAgICAgcGFkZGluZzog MDsNCiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7DQogICAgICBkaXNwbGF5OiBibG9j azsNCiAgICAgIHBhZGRpbmc6IDVweCAwOw0KICAgIH0NCg0KICAgIC5vZC1MYWJlbC5pcy1y ZXF1aXJlZDphZnRlciB7DQogICAgICBjb250ZW50OiAiICoiOw0KICAgICAgY29sb3I6ICNh ODAwMDA7DQogICAgfQ0KDQogICAgLm9kLUxhYmVsLmlzLWRpc2FibGVkIHsNCiAgICAgIGNv bG9yOiAjOWU5ZTllOw0KICAgIH0NCg0KICAgIEBtZWRpYSBzY3JlZW4gYW5kICgtbXMtaGln aC1jb250cmFzdDogYWN0aXZlKSB7DQogICAgICAub2QtTGFiZWwuaXMtZGlzYWJsZWQgew0K ICAgICAgICBjb2xvcjogIzBmMDsNCiAgICAgIH0NCiAgICB9DQoNCiAgICBAbWVkaWEgc2Ny ZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGJsYWNrLW9uLXdoaXRlKSB7DQogICAgICAu b2QtTGFiZWwuaXMtZGlzYWJsZWQgew0KICAgICAgICBjb2xvcjogIzYwMDAwMDsNCiAgICAg IH0NCiAgICB9DQoNCiAgICAuaXMtZGlzYWJsZWQgLm9kLUxhYmVsIHsNCiAgICAgIGNvbG9y OiAjOWU5ZTllOw0KICAgIH0NCg0KICAgIEBtZWRpYSBzY3JlZW4gYW5kICgtbXMtaGlnaC1j b250cmFzdDogYWN0aXZlKSB7DQogICAgICAuaXMtZGlzYWJsZWQgLm9kLUxhYmVsIHsNCiAg ICAgICAgY29sb3I6ICMwZjA7DQogICAgICB9DQogICAgfQ0KDQogICAgQG1lZGlhIHNjcmVl biBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBibGFjay1vbi13aGl0ZSkgew0KICAgICAgLmlz LWRpc2FibGVkIC5vZC1MYWJlbCB7DQogICAgICAgIGNvbG9yOiAjNjAwMDAwOw0KICAgICAg fQ0KICAgIH0NCg0KICAgIC5vZC1Ub2dnbGUgew0KICAgICAgZm9udC1zaXplOiAxNHB4Ow0K ICAgICAgZm9udC13ZWlnaHQ6IDQwMDsNCiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7 DQogICAgICBib3gtc2hhZG93OiBub25lOw0KICAgICAgbWFyZ2luOiAwOw0KICAgICAgcGFk ZGluZzogMDsNCiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgICAgIGRpc3BsYXk6IGJs b2NrOw0KICAgICAgbWFyZ2luLWJvdHRvbTogMjZweDsNCiAgICB9DQoNCiAgICAub2QtVG9n Z2xlIC5tcy1MYWJlbCwNCiAgICAub2QtVG9nZ2xlIC5vZC1MYWJlbCB7DQogICAgICBwb3Np dGlvbjogcmVsYXRpdmU7DQogICAgICB0b3A6IC0xcHg7DQogICAgICBwYWRkaW5nOiAwIDAg MCA1MHB4Ow0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJydGwiXSAub2QtVG9nZ2xlIC5tcy1M YWJlbCwNCiAgICBodG1sW2Rpcj0icnRsIl0gLm9kLVRvZ2dsZSAub2QtTGFiZWwgew0KICAg ICAgcGFkZGluZzogMCA1MHB4IDAgMDsNCiAgICB9DQoNCiAgICAub2QtVG9nZ2xlIC5vZC1U b2dnbGUtZmllbGQ6YmVmb3JlIHsNCiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAg IHRvcDogM3B4Ow0KICAgICAgd2lkdGg6IDEwcHg7DQogICAgICBoZWlnaHQ6IDEwcHg7DQog ICAgICBib3JkZXItcmFkaXVzOiAxMHB4Ow0KICAgICAgY29udGVudDogIiI7DQogICAgICBs ZWZ0OiA0cHg7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjE2MTYxOw0KICAgICAgb3V0 bGluZTogMXB4IHNvbGlkIHRyYW5zcGFyZW50Ow0KICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0 eTogYmFja2dyb3VuZCwgbGVmdDsNCiAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDI1MG1z Ow0KICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQs IDAsIDAuMjMsIDEpOw0KICAgIH0NCg0KICAgIEBtZWRpYSBzY3JlZW4gYW5kICgtbXMtaGln aC1jb250cmFzdDogYWN0aXZlKSB7DQogICAgICAub2QtVG9nZ2xlIC5vZC1Ub2dnbGUtZmll bGQ6YmVmb3JlIHsNCiAgICAgICAgYm9yZGVyOiAyLjVweCBzb2xpZCAjZmZmZmZmOw0KICAg ICAgICBoZWlnaHQ6IDE1cHg7DQogICAgICAgIG91dGxpbmU6IDA7DQogICAgICB9DQogICAg fQ0KDQogICAgQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBibGFjay1v bi13aGl0ZSkgew0KICAgICAgLm9kLVRvZ2dsZSAub2QtVG9nZ2xlLWZpZWxkOmJlZm9yZSB7 DQogICAgICAgIGJvcmRlci1jb2xvcjogIzAwMDAwMDsNCiAgICAgIH0NCiAgICB9DQoNCiAg ICBbZGlyPSJsdHIiXSAub2QtVG9nZ2xlIC5vZC1Ub2dnbGUtZmllbGQ6YmVmb3JlIHsNCiAg ICAgIHJpZ2h0OiBhdXRvOw0KICAgIH0NCg0KICAgIFtkaXI9InJ0bCJdIC5vZC1Ub2dnbGUg Lm9kLVRvZ2dsZS1maWVsZDpiZWZvcmUgew0KICAgICAgbGVmdDogYXV0bzsNCiAgICB9DQoN CiAgICAub2QtVG9nZ2xlIC5vZC1Ub2dnbGUtZmllbGQgLm1zLUxhYmVsLS1vZmYgew0KICAg ICAgZGlzcGxheTogYmxvY2s7DQogICAgfQ0KDQogICAgLm9kLVRvZ2dsZSAub2QtVG9nZ2xl LWZpZWxkIC5tcy1MYWJlbC0tb24gew0KICAgICAgZGlzcGxheTogbm9uZTsNCiAgICB9DQoN CiAgICAub2QtVG9nZ2xlIC5vZC1Ub2dnbGUtZmllbGQuaXMtc2VsZWN0ZWQgew0KICAgICAg YmFja2dyb3VuZC1jb2xvcjogIzAwNzhkNDsNCiAgICAgIGJvcmRlci1jb2xvcjogIzAwNzhk NDsNCiAgICB9DQoNCiAgICAub2QtVG9nZ2xlIC5vZC1Ub2dnbGUtZmllbGQuaXMtc2VsZWN0 ZWQ6YmVmb3JlIHsNCiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgIHRvcDogM3B4 Ow0KICAgICAgd2lkdGg6IDEwcHg7DQogICAgICBoZWlnaHQ6IDEwcHg7DQogICAgICBib3Jk ZXItcmFkaXVzOiAxMHB4Ow0KICAgICAgY29udGVudDogIiI7DQogICAgICByaWdodDogNHB4 Ow0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzYxNjE2MTsNCiAgICAgIG91dGxpbmU6IDFw eCBzb2xpZCB0cmFuc3BhcmVudDsNCiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IGJhY2tn cm91bmQsIGxlZnQ7DQogICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAyNTBtczsNCiAgICAg IHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIz LCAxKTsNCiAgICB9DQoNCiAgICBAbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJh c3Q6IGFjdGl2ZSkgew0KICAgICAgLm9kLVRvZ2dsZSAub2QtVG9nZ2xlLWZpZWxkLmlzLXNl bGVjdGVkOmJlZm9yZSB7DQogICAgICAgIGJvcmRlcjogMi41cHggc29saWQgI2ZmZmZmZjsN CiAgICAgICAgaGVpZ2h0OiAxNXB4Ow0KICAgICAgICBvdXRsaW5lOiAwOw0KICAgICAgfQ0K ICAgIH0NCg0KICAgIEBtZWRpYSBzY3JlZW4gYW5kICgtbXMtaGlnaC1jb250cmFzdDogYmxh Y2stb24td2hpdGUpIHsNCiAgICAgIC5vZC1Ub2dnbGUgLm9kLVRvZ2dsZS1maWVsZC5pcy1z ZWxlY3RlZDpiZWZvcmUgew0KICAgICAgICBib3JkZXItY29sb3I6ICMwMDAwMDA7DQogICAg ICB9DQogICAgfQ0KDQogICAgLm9kLVRvZ2dsZSAub2QtVG9nZ2xlLWZpZWxkLmlzLXNlbGVj dGVkOmJlZm9yZSB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOw0KICAgIH0N Cg0KICAgIFtkaXI9Imx0ciJdIC5vZC1Ub2dnbGUgLm9kLVRvZ2dsZS1maWVsZC5pcy1zZWxl Y3RlZDpiZWZvcmUgew0KICAgICAgbGVmdDogMjhweDsNCiAgICB9DQoNCiAgICBbZGlyPSJy dGwiXSAub2QtVG9nZ2xlIC5vZC1Ub2dnbGUtZmllbGQuaXMtc2VsZWN0ZWQ6YmVmb3JlIHsN CiAgICAgIHJpZ2h0OiAyOHB4Ow0KICAgIH0NCg0KICAgIC5vZC1Ub2dnbGUgLm9kLVRvZ2ds ZS1maWVsZC5pcy1zZWxlY3RlZCAubXMtTGFiZWwtLW9mZiB7DQogICAgICBkaXNwbGF5OiBu b25lOw0KICAgIH0NCg0KICAgIC5vZC1Ub2dnbGUgLm9kLVRvZ2dsZS1maWVsZC5pcy1zZWxl Y3RlZCAubXMtTGFiZWwtLW9uIHsNCiAgICAgIGRpc3BsYXk6IGJsb2NrOw0KICAgIH0NCg0K ICAgIEBtZWRpYSBzY3JlZW4gYW5kICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSB7DQog ICAgICAub2QtVG9nZ2xlIC5vZC1Ub2dnbGUtZmllbGQuaXMtc2VsZWN0ZWQgew0KICAgICAg ICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOw0KICAgICAgfQ0KICAgIH0NCg0KICAgIEBt ZWRpYSBzY3JlZW4gYW5kICgtbXMtaGlnaC1jb250cmFzdDogYmxhY2stb24td2hpdGUpIHsN CiAgICAgIC5vZC1Ub2dnbGUgLm9kLVRvZ2dsZS1maWVsZC5pcy1zZWxlY3RlZCB7DQogICAg ICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7DQogICAgICB9DQogICAgfQ0KDQogICAg Lm9kLVRvZ2dsZTpmb2N1cysub2QtVG9nZ2xlLWZpZWxkLA0KICAgIC5vZC1Ub2dnbGU6aG92 ZXIrLm9kLVRvZ2dsZS1maWVsZCB7DQogICAgICBib3JkZXItY29sb3I6ICM2MTYxNjE7DQog ICAgfQ0KDQogICAgLm9kLVRvZ2dsZTpmb2N1cysub2QtVG9nZ2xlLWZpZWxkOmJlZm9yZSwN CiAgICAub2QtVG9nZ2xlOmhvdmVyKy5vZC1Ub2dnbGUtZmllbGQ6YmVmb3JlIHsNCiAgICAg IGJhY2tncm91bmQtY29sb3I6ICMyNDI0MjQ7DQogICAgfQ0KDQogICAgLm9kLVRvZ2dsZTpm b2N1czpjaGVja2VkKy5vZC1Ub2dnbGUtZmllbGQsDQogICAgLm9kLVRvZ2dsZTpob3Zlcjpj aGVja2VkKy5vZC1Ub2dnbGUtZmllbGQgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzEw NmViZTsNCiAgICAgIGJvcmRlci1jb2xvcjogIzEwNmViZTsNCiAgICB9DQoNCiAgICAub2Qt VG9nZ2xlOmZvY3VzOmNoZWNrZWQrLm9kLVRvZ2dsZS1maWVsZDpiZWZvcmUsDQogICAgLm9k LVRvZ2dsZTpob3ZlcjpjaGVja2VkKy5vZC1Ub2dnbGUtZmllbGQ6YmVmb3JlIHsNCiAgICAg IGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7DQogICAgfQ0KDQogICAgLm9kLVRvZ2dsZTph Y3RpdmU6Y2hlY2tlZCsub2QtVG9nZ2xlLWZpZWxkIHsNCiAgICAgIGJhY2tncm91bmQtY29s b3I6ICMwMDVhOWU7DQogICAgICBib3JkZXItY29sb3I6ICMwMDVhOWU7DQogICAgfQ0KDQog ICAgLm9kLVRvZ2dsZSAub2QtVG9nZ2xlLWZpZWxkOmZvY3VzLA0KICAgIC5vZC1Ub2dnbGUg Lm9kLVRvZ2dsZS1maWVsZDpob3ZlciB7DQogICAgICBib3JkZXItY29sb3I6ICMyNDI0MjQ7 DQogICAgfQ0KDQogICAgLm9kLVRvZ2dsZSAub2QtVG9nZ2xlLWZpZWxkLmlzLXNlbGVjdGVk OmZvY3VzLA0KICAgIC5vZC1Ub2dnbGUgLm9kLVRvZ2dsZS1maWVsZC5pcy1zZWxlY3RlZDpo b3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTA2ZWJlOw0KICAgICAgYm9yZGVy LWNvbG9yOiAjMTA2ZWJlOw0KICAgIH0NCg0KICAgIC5vZC1Ub2dnbGUgLm9kLVRvZ2dsZS1m aWVsZCAubXMtTGFiZWwsDQogICAgLm9kLVRvZ2dsZSAub2QtVG9nZ2xlLWZpZWxkIC5vZC1M YWJlbCB7DQogICAgICBjb2xvcjogIzAwMDAwMDsNCiAgICAgIC13ZWJraXQtdXNlci1zZWxl Y3Q6IG5vbmU7DQogICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7DQogICAgICB1c2VyLXNl bGVjdDogbm9uZTsNCiAgICB9DQoNCiAgICAub2QtVG9nZ2xlIC5vZC1Ub2dnbGUtZmllbGQ6 aG92ZXIgLm1zLUxhYmVsLA0KICAgIC5vZC1Ub2dnbGUgLm9kLVRvZ2dsZS1maWVsZDpob3Zl ciAub2QtTGFiZWwgew0KICAgICAgY29sb3I6ICMwMDAwMDA7DQogICAgfQ0KDQogICAgLm9k LVRvZ2dsZSAub2QtVG9nZ2xlLWZpZWxkOmFjdGl2ZSAubXMtTGFiZWwsDQogICAgLm9kLVRv Z2dsZSAub2QtVG9nZ2xlLWZpZWxkOmFjdGl2ZSAub2QtTGFiZWwgew0KICAgICAgY29sb3I6 ICMyNDI0MjQ7DQogICAgfQ0KDQogICAgLm9kLVRvZ2dsZS5pcy1kaXNhYmxlZCAubXMtTGFi ZWwsDQogICAgLm9kLVRvZ2dsZS5pcy1kaXNhYmxlZCAub2QtTGFiZWwgew0KICAgICAgY29s b3I6ICM5ZTllOWU7DQogICAgfQ0KDQogICAgQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdo LWNvbnRyYXN0OiBhY3RpdmUpIHsNCg0KICAgICAgLm9kLVRvZ2dsZS5pcy1kaXNhYmxlZCAu bXMtTGFiZWwsDQogICAgICAub2QtVG9nZ2xlLmlzLWRpc2FibGVkIC5vZC1MYWJlbCB7DQog ICAgICAgIGNvbG9yOiAjMGYwOw0KICAgICAgfQ0KICAgIH0NCg0KICAgIEBtZWRpYSBzY3Jl ZW4gYW5kICgtbXMtaGlnaC1jb250cmFzdDogYmxhY2stb24td2hpdGUpIHsNCg0KICAgICAg Lm9kLVRvZ2dsZS5pcy1kaXNhYmxlZCAubXMtTGFiZWwsDQogICAgICAub2QtVG9nZ2xlLmlz LWRpc2FibGVkIC5vZC1MYWJlbCB7DQogICAgICAgIGNvbG9yOiAjNjAwMDAwOw0KICAgICAg fQ0KICAgIH0NCg0KICAgIC5vZC1Ub2dnbGUuaXMtZGlzYWJsZWQgLm9kLVRvZ2dsZS1maWVs ZCB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOw0KICAgICAgYm9yZGVyLWNv bG9yOiAjYzdjN2M3Ow0KICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7DQogICAgICBjdXJz b3I6IGRlZmF1bHQ7DQogICAgfQ0KDQogICAgLm9kLVRvZ2dsZS5pcy1kaXNhYmxlZCAub2Qt VG9nZ2xlLWZpZWxkOmJlZm9yZSB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzdjN2M3 Ow0KICAgIH0NCg0KICAgIEBtZWRpYSBzY3JlZW4gYW5kICgtbXMtaGlnaC1jb250cmFzdDog YWN0aXZlKSB7DQoNCiAgICAgIC5vZC1Ub2dnbGUuaXMtZGlzYWJsZWQgLm9kLVRvZ2dsZS1m aWVsZCwNCiAgICAgIC5vZC1Ub2dnbGUuaXMtZGlzYWJsZWQgLm9kLVRvZ2dsZS1maWVsZDpi ZWZvcmUgew0KICAgICAgICBib3JkZXItY29sb3I6ICMwZjA7DQogICAgICB9DQogICAgfQ0K DQogICAgQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBibGFjay1vbi13 aGl0ZSkgew0KDQogICAgICAub2QtVG9nZ2xlLmlzLWRpc2FibGVkIC5vZC1Ub2dnbGUtZmll bGQsDQogICAgICAub2QtVG9nZ2xlLmlzLWRpc2FibGVkIC5vZC1Ub2dnbGUtZmllbGQ6YmVm b3JlIHsNCiAgICAgICAgYm9yZGVyLWNvbG9yOiAjNjAwMDAwOw0KICAgICAgfQ0KICAgIH0N Cg0KICAgIC5vZC1Ub2dnbGUtZGVzY3JpcHRpb24gew0KICAgICAgcG9zaXRpb246IHJlbGF0 aXZlOw0KICAgICAgZm9udC1zaXplOiAxNHB4Ow0KICAgICAgZGlzcGxheTogYmxvY2s7DQog ICAgICBtYXJnaW4tYm90dG9tOiA4cHg7DQogICAgfQ0KDQogICAgLm9kLVRvZ2dsZS1maWVs ZCB7DQogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7DQogICAgICBkaXNwbGF5OiBpbmxpbmUt YmxvY2s7DQogICAgICB3aWR0aDogNDVweDsNCiAgICAgIGhlaWdodDogMjBweDsNCiAgICAg IGJveC1zaXppbmc6IGJvcmRlci1ib3g7DQogICAgICBib3JkZXI6IDJweCBzb2xpZCAjOWU5 ZTllOw0KICAgICAgYm9yZGVyLXJhZGl1czogMjBweDsNCiAgICAgIGN1cnNvcjogcG9pbnRl cjsNCiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IGJhY2tncm91bmQsIGxlZnQsIGJvcmRl ci1jb2xvcjsNCiAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDI1MG1zOw0KICAgICAgdHJh bnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDAuMjMsIDEp Ow0KICAgICAgb3V0bGluZTogMDsNCiAgICB9DQoNCiAgICAub2QtVG9nZ2xlLWZpZWxkOmZv Y3VzLA0KICAgIC5vZC1Ub2dnbGUtZmllbGQ6aG92ZXIgew0KICAgICAgYm9yZGVyLWNvbG9y OiAjNjE2MTYxOw0KICAgIH0NCg0KICAgIC5vZC1Ub2dnbGUtaW5wdXQgew0KICAgICAgZGlz cGxheTogbm9uZTsNCiAgICB9DQoNCiAgICAub2QtVG9nZ2xlLm9kLVRvZ2dsZS0tdGV4dExl ZnQgew0KICAgICAgd2lkdGg6IDIyNXB4Ow0KICAgICAgbWFyZ2luLWJvdHRvbTogNDBweDsN CiAgICB9DQoNCiAgICAub2QtVG9nZ2xlLm9kLVRvZ2dsZS0tdGV4dExlZnQgLm9kLVRvZ2ds ZS1kZXNjcmlwdGlvbiB7DQogICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7DQogICAgICBt YXgtd2lkdGg6IDE1MHB4Ow0KICAgICAgdG9wOiAtM3B4Ow0KICAgICAgbWFyZ2luLWJvdHRv bTogMDsNCiAgICB9DQoNCiAgICAub2QtVG9nZ2xlLm9kLVRvZ2dsZS0tdGV4dExlZnQgLm9k LVRvZ2dsZS1maWVsZCB7DQogICAgICBmbG9hdDogcmlnaHQ7DQogICAgfQ0KDQogICAgLm9k LUxhYmVsIHsNCiAgICAgIGZvbnQtc2l6ZTogMTJweDsNCiAgICAgIGZvbnQtd2VpZ2h0OiA0 MDA7DQogICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94Ow0KICAgICAgYm94LXNoYWRvdzog bm9uZTsNCiAgICAgIG1hcmdpbjogMDsNCiAgICAgIHBhZGRpbmc6IDA7DQogICAgICBib3gt c2l6aW5nOiBib3JkZXItYm94Ow0KICAgICAgZGlzcGxheTogYmxvY2s7DQogICAgICBwYWRk aW5nOiA1cHggMDsNCiAgICB9DQoNCiAgICAub2QtTGFiZWwuaXMtcmVxdWlyZWQ6YWZ0ZXIg ew0KICAgICAgY29udGVudDogIiAqIjsNCiAgICAgIGNvbG9yOiAjYTgwMDAwOw0KICAgIH0N Cg0KICAgIC5vZC1MYWJlbC5pcy1kaXNhYmxlZCB7DQogICAgICBjb2xvcjogIzllOWU5ZTsN CiAgICB9DQoNCiAgICBAbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFj dGl2ZSkgew0KICAgICAgLm9kLUxhYmVsLmlzLWRpc2FibGVkIHsNCiAgICAgICAgY29sb3I6 ICMwZjA7DQogICAgICB9DQogICAgfQ0KDQogICAgQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1o aWdoLWNvbnRyYXN0OiBibGFjay1vbi13aGl0ZSkgew0KICAgICAgLm9kLUxhYmVsLmlzLWRp c2FibGVkIHsNCiAgICAgICAgY29sb3I6ICM2MDAwMDA7DQogICAgICB9DQogICAgfQ0KDQog ICAgLmlzLWRpc2FibGVkIC5vZC1MYWJlbCB7DQogICAgICBjb2xvcjogIzllOWU5ZTsNCiAg ICB9DQoNCiAgICBAbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2 ZSkgew0KICAgICAgLmlzLWRpc2FibGVkIC5vZC1MYWJlbCB7DQogICAgICAgIGNvbG9yOiAj MGYwOw0KICAgICAgfQ0KICAgIH0NCg0KICAgIEBtZWRpYSBzY3JlZW4gYW5kICgtbXMtaGln aC1jb250cmFzdDogYmxhY2stb24td2hpdGUpIHsNCiAgICAgIC5pcy1kaXNhYmxlZCAub2Qt TGFiZWwgew0KICAgICAgICBjb2xvcjogIzYwMDAwMDsNCiAgICAgIH0NCiAgICB9DQoNCiAg ICAub2QtVGV4dEZpZWxkIHsNCiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7DQogICAg ICBib3gtc2hhZG93OiBub25lOw0KICAgICAgbWFyZ2luOiAwOw0KICAgICAgcGFkZGluZzog MDsNCiAgICAgIGNvbG9yOiAjMjQyNDI0Ow0KICAgICAgZm9udC1zaXplOiAxNHB4Ow0KICAg ICAgZm9udC13ZWlnaHQ6IDQwMDsNCiAgICAgIG1hcmdpbi1ib3R0b206IDhweDsNCiAgICB9 DQoNCiAgICAub2QtVGV4dEZpZWxkIC5tcy1MYWJlbCwNCiAgICAub2QtVGV4dEZpZWxkIC5v ZC1MYWJlbCB7DQogICAgICBmb250LXNpemU6IDE0cHg7DQogICAgfQ0KDQogICAgLm9kLVRl eHRGaWVsZC5pcy1kaXNhYmxlZCAub2QtVGV4dEZpZWxkLWZpZWxkIHsNCiAgICAgIGJhY2tn cm91bmQtY29sb3I6ICNmMGYwZjA7DQogICAgICBib3JkZXItY29sb3I6ICNmMGYwZjA7DQog ICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsNCiAgICAgIGN1cnNvcjogZGVmYXVsdDsNCiAg ICB9DQoNCiAgICAub2QtVGV4dEZpZWxkLmlzLWRpc2FibGVkOjpwbGFjZWhvbGRlciB7DQog ICAgICBjb2xvcjogIzllOWU5ZTsNCiAgICB9DQoNCiAgICAub2QtVGV4dEZpZWxkLmlzLXJl cXVpcmVkIC5tcy1MYWJlbDphZnRlciwNCiAgICAub2QtVGV4dEZpZWxkLmlzLXJlcXVpcmVk IC5vZC1MYWJlbDphZnRlciB7DQogICAgICBjb250ZW50OiAiICoiOw0KICAgICAgY29sb3I6 ICNhODAwMDA7DQogICAgfQ0KDQogICAgLm9kLVRleHRGaWVsZC5pcy1yZXF1aXJlZDo6cGxh Y2Vob2xkZXI6YWZ0ZXIgew0KICAgICAgY29udGVudDogIiAqIjsNCiAgICAgIGNvbG9yOiAj YTgwMDAwOw0KICAgIH0NCg0KICAgIC5vZC1UZXh0RmllbGQuaXMtYWN0aXZlIHsNCiAgICAg IGJvcmRlci1jb2xvcjogIzAwNzhkNDsNCiAgICB9DQoNCiAgICAub2QtVGV4dEZpZWxkLWZp ZWxkIHsNCiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7DQogICAgICBib3gtc2hhZG93 OiBub25lOw0KICAgICAgbWFyZ2luOiAwOw0KICAgICAgcGFkZGluZzogMDsNCiAgICAgIGZv bnQtc2l6ZTogMTRweDsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7DQogICAg ICBoZWlnaHQ6IDMycHg7DQogICAgICB3aWR0aDogMTAwJTsNCiAgICAgIG1pbi13aWR0aDog MTgwcHg7DQogICAgICBvdXRsaW5lOiAwOw0KICAgICAgcGFkZGluZzogOHB4Ow0KICAgICAg Ym9yZGVyLXJhZGl1czogMnB4Ow0KICAgICAgYm9yZGVyOiAxcHggc29saWQgIzYxNjE2MTsN CiAgICAgIGNvbG9yOiAjNjE2MTYxOw0KICAgICAgZm9udC13ZWlnaHQ6IDQwMDsNCiAgICB9 DQoNCiAgICAub2QtVGV4dEZpZWxkLWZpZWxkOmhvdmVyIHsNCiAgICAgIGJvcmRlci1jb2xv cjogIzhhOGE4YTsNCiAgICB9DQoNCiAgICAub2QtVGV4dEZpZWxkLWZpZWxkOmZvY3VzIHsN CiAgICAgIGJvcmRlci1jb2xvcjogIzAwNzhkNDsNCiAgICB9DQoNCiAgICBAbWVkaWEgc2Ny ZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSkgew0KDQogICAgICAub2QtVGV4 dEZpZWxkLWZpZWxkOmZvY3VzLA0KICAgICAgLm9kLVRleHRGaWVsZC1maWVsZDpob3ZlciB7 DQogICAgICAgIGJvcmRlci1jb2xvcjogIzFhZWJmZjsNCiAgICAgIH0NCiAgICB9DQoNCiAg ICBAbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGJsYWNrLW9uLXdoaXRl KSB7DQoNCiAgICAgIC5vZC1UZXh0RmllbGQtZmllbGQ6Zm9jdXMsDQogICAgICAub2QtVGV4 dEZpZWxkLWZpZWxkOmhvdmVyIHsNCiAgICAgICAgYm9yZGVyLWNvbG9yOiAjMzcwMDZlOw0K ICAgICAgfQ0KICAgIH0NCg0KICAgIC5vZC1UZXh0RmllbGQtZmllbGQ6OnBsYWNlaG9sZGVy IHsNCiAgICAgIGNvbG9yOiAjNjE2MTYxOw0KICAgIH0NCg0KICAgIC5pc0ZsdWVudFZOZXh0 IC5vZC1UZXh0RmllbGQtZmllbGQgew0KICAgICAgYm9yZGVyLXJhZGl1czogNHB4Ow0KICAg IH0NCg0KICAgIC5vZC1UZXh0RmllbGQtZmllbGQtaGFzRHJvcGRvd24gew0KICAgICAgd2lk dGg6IDY4JTsNCiAgICB9DQoNCiAgICBbZGlyPSJsdHIiXSAub2QtVGV4dEZpZWxkLWZpZWxk LWhhc0Ryb3Bkb3duIHsNCiAgICAgIG1hcmdpbi1sZWZ0OiA3cHg7DQogICAgfQ0KDQogICAg W2Rpcj0icnRsIl0gLm9kLVRleHRGaWVsZC1maWVsZC1oYXNEcm9wZG93biB7DQogICAgICBt YXJnaW4tcmlnaHQ6IDdweDsNCiAgICB9DQoNCiAgICAub2QtVGV4dEZpZWxkLWRlc2NyaXB0 aW9uIHsNCiAgICAgIGNvbG9yOiAjOGE4YThhOw0KICAgICAgZm9udC1zaXplOiAxMXB4Ow0K ICAgIH0NCg0KICAgIC5vZC1UZXh0RmllbGQub2QtVGV4dEZpZWxkLS1wbGFjZWhvbGRlciB7 DQogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7DQogICAgfQ0KDQogICAgLm9kLVRleHRGaWVs ZC5vZC1UZXh0RmllbGQtLXBsYWNlaG9sZGVyIC5tcy1MYWJlbCwNCiAgICAub2QtVGV4dEZp ZWxkLm9kLVRleHRGaWVsZC0tcGxhY2Vob2xkZXIgLm9kLUxhYmVsIHsNCiAgICAgIHBvc2l0 aW9uOiBhYnNvbHV0ZTsNCiAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7DQogICAgICBmb250LXNp emU6IDE0cHg7DQogICAgICBjb2xvcjogIzYxNjE2MTsNCiAgICAgIHBhZGRpbmc6IDZweCAx MnB4IDdweDsNCiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOw0KICAgIH0NCg0KICAgIC5v ZC1UZXh0RmllbGQub2QtVGV4dEZpZWxkLS1wbGFjZWhvbGRlci5pcy1kaXNhYmxlZCB7DQog ICAgICBjb2xvcjogIzllOWU5ZTsNCiAgICB9DQoNCiAgICAub2QtVGV4dEZpZWxkLm9kLVRl eHRGaWVsZC0tdW5kZXJsaW5lZCB7DQogICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQg I2M3YzdjNzsNCiAgICAgIGRpc3BsYXk6IHRhYmxlOw0KICAgICAgd2lkdGg6IDEwMCU7DQog ICAgICBtaW4td2lkdGg6IDE4MHB4Ow0KICAgIH0NCg0KICAgIC5vZC1UZXh0RmllbGQub2Qt VGV4dEZpZWxkLS11bmRlcmxpbmVkOmhvdmVyIHsNCiAgICAgIGJvcmRlci1jb2xvcjogIzhh OGE4YTsNCiAgICB9DQoNCiAgICBAbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJh c3Q6IGFjdGl2ZSkgew0KICAgICAgLm9kLVRleHRGaWVsZC5vZC1UZXh0RmllbGQtLXVuZGVy bGluZWQ6aG92ZXIgew0KICAgICAgICBib3JkZXItY29sb3I6ICMxYWViZmY7DQogICAgICB9 DQogICAgfQ0KDQogICAgQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBi bGFjay1vbi13aGl0ZSkgew0KICAgICAgLm9kLVRleHRGaWVsZC5vZC1UZXh0RmllbGQtLXVu ZGVybGluZWQ6aG92ZXIgew0KICAgICAgICBib3JkZXItY29sb3I6ICMzNzAwNmU7DQogICAg ICB9DQogICAgfQ0KDQogICAgLm9kLVRleHRGaWVsZC5vZC1UZXh0RmllbGQtLXVuZGVybGlu ZWQ6YWN0aXZlLA0KICAgIC5vZC1UZXh0RmllbGQub2QtVGV4dEZpZWxkLS11bmRlcmxpbmVk OmZvY3VzIHsNCiAgICAgIGJvcmRlci1jb2xvcjogIzAwNzhkNDsNCiAgICB9DQoNCiAgICAu b2QtVGV4dEZpZWxkLm9kLVRleHRGaWVsZC0tdW5kZXJsaW5lZCAubXMtTGFiZWwsDQogICAg Lm9kLVRleHRGaWVsZC5vZC1UZXh0RmllbGQtLXVuZGVybGluZWQgLm9kLUxhYmVsIHsNCiAg ICAgIGZvbnQtc2l6ZTogMTRweDsNCiAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7DQogICAg ICB2ZXJ0aWNhbC1hbGlnbjogdG9wOw0KICAgICAgcGFkZGluZy10b3A6IDEwcHg7DQogICAg ICBoZWlnaHQ6IDMycHg7DQogICAgICB3aWR0aDogMSU7DQogICAgICB3aGl0ZS1zcGFjZTog bm93cmFwOw0KICAgIH0NCg0KICAgIFtkaXI9Imx0ciJdIC5vZC1UZXh0RmllbGQub2QtVGV4 dEZpZWxkLS11bmRlcmxpbmVkIC5tcy1MYWJlbCwNCiAgICBbZGlyPSJsdHIiXSAub2QtVGV4 dEZpZWxkLm9kLVRleHRGaWVsZC0tdW5kZXJsaW5lZCAub2QtTGFiZWwgew0KICAgICAgbWFy Z2luLXJpZ2h0OiA4cHg7DQogICAgfQ0KDQogICAgW2Rpcj0icnRsIl0gLm9kLVRleHRGaWVs ZC5vZC1UZXh0RmllbGQtLXVuZGVybGluZWQgLm1zLUxhYmVsLA0KICAgIFtkaXI9InJ0bCJd IC5vZC1UZXh0RmllbGQub2QtVGV4dEZpZWxkLS11bmRlcmxpbmVkIC5vZC1MYWJlbCB7DQog ICAgICBtYXJnaW4tbGVmdDogOHB4Ow0KICAgIH0NCg0KICAgIFtkaXI9Imx0ciJdIC5vZC1U ZXh0RmllbGQub2QtVGV4dEZpZWxkLS11bmRlcmxpbmVkIC5tcy1MYWJlbCwNCiAgICBbZGly PSJsdHIiXSAub2QtVGV4dEZpZWxkLm9kLVRleHRGaWVsZC0tdW5kZXJsaW5lZCAub2QtTGFi ZWwgew0KICAgICAgcGFkZGluZy1sZWZ0OiAxMnB4Ow0KICAgIH0NCg0KICAgIFtkaXI9InJ0 bCJdIC5vZC1UZXh0RmllbGQub2QtVGV4dEZpZWxkLS11bmRlcmxpbmVkIC5tcy1MYWJlbCwN CiAgICBbZGlyPSJydGwiXSAub2QtVGV4dEZpZWxkLm9kLVRleHRGaWVsZC0tdW5kZXJsaW5l ZCAub2QtTGFiZWwgew0KICAgICAgcGFkZGluZy1yaWdodDogMTJweDsNCiAgICB9DQoNCiAg ICAub2QtVGV4dEZpZWxkLm9kLVRleHRGaWVsZC0tdW5kZXJsaW5lZCAub2QtVGV4dEZpZWxk LWZpZWxkIHsNCiAgICAgIGJvcmRlcjogMDsNCiAgICAgIGZsb2F0OiBsZWZ0Ow0KICAgICAg ZGlzcGxheTogdGFibGUtY2VsbDsNCiAgICAgIHBhZGRpbmctdG9wOiA4cHg7DQogICAgICBw YWRkaW5nLWJvdHRvbTogM3B4Ow0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJsdHIiXSAub2Qt VGV4dEZpZWxkLm9kLVRleHRGaWVsZC0tdW5kZXJsaW5lZCAub2QtVGV4dEZpZWxkLWZpZWxk IHsNCiAgICAgIHRleHQtYWxpZ246IGxlZnQ7DQogICAgfQ0KDQogICAgaHRtbFtkaXI9InJ0 bCJdIC5vZC1UZXh0RmllbGQub2QtVGV4dEZpZWxkLS11bmRlcmxpbmVkIC5vZC1UZXh0Rmll bGQtZmllbGQgew0KICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7DQogICAgfQ0KDQogICAgLm9k LVRleHRGaWVsZC5vZC1UZXh0RmllbGQtLXVuZGVybGluZWQgLm9kLVRleHRGaWVsZC1maWVs ZDphY3RpdmUsDQogICAgLm9kLVRleHRGaWVsZC5vZC1UZXh0RmllbGQtLXVuZGVybGluZWQg Lm9kLVRleHRGaWVsZC1maWVsZDpmb2N1cywNCiAgICAub2QtVGV4dEZpZWxkLm9kLVRleHRG aWVsZC0tdW5kZXJsaW5lZCAub2QtVGV4dEZpZWxkLWZpZWxkOmhvdmVyIHsNCiAgICAgIG91 dGxpbmU6IDA7DQogICAgfQ0KDQogICAgLm9kLVRleHRGaWVsZC5vZC1UZXh0RmllbGQtLXVu ZGVybGluZWQuaXMtZGlzYWJsZWQgew0KICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogI2Vi ZWJlYjsNCiAgICB9DQoNCiAgICAub2QtVGV4dEZpZWxkLm9kLVRleHRGaWVsZC0tdW5kZXJs aW5lZC5pcy1kaXNhYmxlZCAub2QtVGV4dEZpZWxkLWZpZWxkIHsNCiAgICAgIGJhY2tncm91 bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICAgICAgY29sb3I6ICM5ZTllOWU7DQogICAgfQ0K DQogICAgLm9kLVRleHRGaWVsZC5vZC1UZXh0RmllbGQtLXVuZGVybGluZWQuaXMtYWN0aXZl IHsNCiAgICAgIGJvcmRlci1jb2xvcjogIzAwNzhkNDsNCiAgICB9DQoNCiAgICBAbWVkaWEg c2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSkgew0KICAgICAgLm9kLVRl eHRGaWVsZC5vZC1UZXh0RmllbGQtLXVuZGVybGluZWQuaXMtYWN0aXZlIHsNCiAgICAgICAg Ym9yZGVyLWNvbG9yOiAjMWFlYmZmOw0KICAgICAgfQ0KICAgIH0NCg0KICAgIEBtZWRpYSBz Y3JlZW4gYW5kICgtbXMtaGlnaC1jb250cmFzdDogYmxhY2stb24td2hpdGUpIHsNCiAgICAg IC5vZC1UZXh0RmllbGQub2QtVGV4dEZpZWxkLS11bmRlcmxpbmVkLmlzLWFjdGl2ZSB7DQog ICAgICAgIGJvcmRlci1jb2xvcjogIzM3MDA2ZTsNCiAgICAgIH0NCiAgICB9DQoNCiAgICAu b2QtVGV4dEZpZWxkLm9kLVRleHRGaWVsZC0tbXVsdGlsaW5lIC5vZC1UZXh0RmllbGQtZmll bGQgew0KICAgICAgY29sb3I6ICM2MTYxNjE7DQogICAgICBmb250LXNpemU6IDE0cHg7DQog ICAgICBmb250LXdlaWdodDogNDAwOw0KICAgICAgbGluZS1oZWlnaHQ6IDE3cHg7DQogICAg ICBtaW4taGVpZ2h0OiA2MHB4Ow0KICAgICAgb3ZlcmZsb3c6IGF1dG87DQogICAgICBwYWRk aW5nOiA2cHggOHB4Ow0KICAgICAgbWluLXdpZHRoOiAyNTRweDsNCiAgICB9DQoNCiAgICAu b2QtVGV4dEZpZWxkLm9kLVRleHRGaWVsZC0tdGV4dEZpZWxkVW5kZXJsaW5lZCB7DQogICAg ICBib3JkZXI6IDA7DQogICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzAwNzhkNDsN CiAgICAgIGRpc3BsYXk6IHRhYmxlOw0KICAgICAgd2lkdGg6IDEwMCU7DQogICAgICBtaW4t d2lkdGg6IDE4MHB4Ow0KICAgIH0NCg0KICAgIC5vZC1UZXh0RmllbGQub2QtVGV4dEZpZWxk LS10ZXh0RmllbGRVbmRlcmxpbmVkOmhvdmVyIHsNCiAgICAgIGJvcmRlci1jb2xvcjogIzhh OGE4YTsNCiAgICB9DQoNCiAgICAub2QtVGV4dEZpZWxkLm9kLVRleHRGaWVsZC0tdGV4dEZp ZWxkVW5kZXJsaW5lZDphY3RpdmUsDQogICAgLm9kLVRleHRGaWVsZC5vZC1UZXh0RmllbGQt LXRleHRGaWVsZFVuZGVybGluZWQ6Zm9jdXMgew0KICAgICAgYm9yZGVyLWNvbG9yOiAjMDA3 OGQ0Ow0KICAgIH0NCg0KICAgIC5vZC1UZXh0RmllbGQub2QtVGV4dEZpZWxkLS10ZXh0Rmll bGRVbmRlcmxpbmVkIC5vZC1UZXh0RmllbGQtZmllbGQgew0KICAgICAgYm9yZGVyOiAwOw0K ICAgICAgZGlzcGxheTogdGFibGUtY2VsbDsNCiAgICAgIHBhZGRpbmctdG9wOiA4cHg7DQog ICAgICBwYWRkaW5nLWJvdHRvbTogMnB4Ow0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJsdHIi XSAub2QtVGV4dEZpZWxkLm9kLVRleHRGaWVsZC0tdGV4dEZpZWxkVW5kZXJsaW5lZCAub2Qt VGV4dEZpZWxkLWZpZWxkIHsNCiAgICAgIHRleHQtYWxpZ246IGxlZnQ7DQogICAgfQ0KDQog ICAgaHRtbFtkaXI9InJ0bCJdIC5vZC1UZXh0RmllbGQub2QtVGV4dEZpZWxkLS10ZXh0Rmll bGRVbmRlcmxpbmVkIC5vZC1UZXh0RmllbGQtZmllbGQgew0KICAgICAgdGV4dC1hbGlnbjog cmlnaHQ7DQogICAgfQ0KDQogICAgLm9kLVRleHRGaWVsZC5vZC1UZXh0RmllbGQtLXRleHRG aWVsZFVuZGVybGluZWQgLm9kLVRleHRGaWVsZC1maWVsZDphY3RpdmUsDQogICAgLm9kLVRl eHRGaWVsZC5vZC1UZXh0RmllbGQtLXRleHRGaWVsZFVuZGVybGluZWQgLm9kLVRleHRGaWVs ZC1maWVsZDpmb2N1cyB7DQogICAgICBvdXRsaW5lOiAwOw0KICAgIH0NCg0KICAgIC5vZC1U ZXh0RmllbGQub2QtVGV4dEZpZWxkLS10ZXh0RmllbGRVbmRlcmxpbmVkLmlzLWRpc2FibGVk IHsNCiAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICNlYmViZWI7DQogICAgfQ0KDQogICAg Lm9kLVRleHRGaWVsZC5vZC1UZXh0RmllbGQtLXRleHRGaWVsZFVuZGVybGluZWQuaXMtZGlz YWJsZWQgLm9kLVRleHRGaWVsZC1maWVsZCB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0 cmFuc3BhcmVudDsNCiAgICAgIGNvbG9yOiAjOWU5ZTllOw0KICAgIH0NCg0KICAgIC5vZC1D aGVja0JveCB7DQogICAgICBmb250LXNpemU6IDE0cHg7DQogICAgICBmb250LXdlaWdodDog NDAwOw0KICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsNCiAgICAgIGNvbG9yOiAjMjQy NDI0Ow0KICAgICAgbWluLWhlaWdodDogMzZweDsNCiAgICAgIHBvc2l0aW9uOiByZWxhdGl2 ZTsNCiAgICB9DQoNCiAgICAub2QtQ2hlY2tCb3ggLm9kLUxhYmVsIHsNCiAgICAgIGZvbnQt c2l6ZTogMTRweDsNCiAgICAgIHBhZGRpbmc6IDAgMCAwIDI2cHg7DQogICAgICBjdXJzb3I6 IHBvaW50ZXI7DQogICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7DQogICAgfQ0KDQogICAg aHRtbFtkaXI9InJ0bCJdIC5vZC1DaGVja0JveCAub2QtTGFiZWwgew0KICAgICAgcGFkZGlu ZzogMCAyNnB4IDAgMDsNCiAgICB9DQoNCiAgICAub2QtQ2hlY2tCb3gtaW5wdXQgew0KICAg ICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICAgb3BhY2l0eTogMDsNCiAgICB9DQoNCiAg ICAub2QtQ2hlY2tCb3gtZmllbGQ6OmJlZm9yZSB7DQogICAgICBjb250ZW50OiAiIjsNCiAg ICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsNCiAgICAgIGJvcmRlcjogMnB4IHNvbGlkICM5 ZTllOWU7DQogICAgICB3aWR0aDogMjBweDsNCiAgICAgIGhlaWdodDogMjBweDsNCiAgICAg IGN1cnNvcjogcG9pbnRlcjsNCiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7DQogICAgICBwb3Np dGlvbjogYWJzb2x1dGU7DQogICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94Ow0KICAgICAg dHJhbnNpdGlvbi1wcm9wZXJ0eTogYmFja2dyb3VuZCwgYm9yZGVyLCBib3JkZXItY29sb3I7 DQogICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjJzOw0KICAgICAgdHJhbnNpdGlvbi10 aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDAuMjMsIDEpOw0KICAgIH0N Cg0KICAgIC5vZC1DaGVja0JveC1maWVsZDo6YWZ0ZXIgew0KICAgICAgY29udGVudDogIlxl NzNlIjsNCiAgICAgIGZvbnQtZmFtaWx5OiBGYWJyaWNNREwySWNvbnM7DQogICAgICBkaXNw bGF5OiBub25lOw0KICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICAgZm9udC13ZWln aHQ6IDkwMDsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICAgICAg Zm9udC1zaXplOiAxM3B4Ow0KICAgICAgdG9wOiAwOw0KICAgICAgY29sb3I6ICNmZmZmZmY7 DQogICAgICBsaW5lLWhlaWdodDogMjBweDsNCiAgICAgIHdpZHRoOiAyMHB4Ow0KICAgICAg dGV4dC1hbGlnbjogY2VudGVyOw0KICAgIH0NCg0KICAgIEBtZWRpYSBzY3JlZW4gYW5kICgt bXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSB7DQogICAgICAub2QtQ2hlY2tCb3gtZmllbGQ6 OmFmdGVyIHsNCiAgICAgICAgLW1zLWhpZ2gtY29udHJhc3QtYWRqdXN0OiBub25lOw0KICAg ICAgICBjb2xvcjogIzAwMDAwMDsNCiAgICAgIH0NCiAgICB9DQoNCiAgICBAbWVkaWEgc2Ny ZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGJsYWNrLW9uLXdoaXRlKSB7DQogICAgICAu b2QtQ2hlY2tCb3gtZmllbGQ6OmFmdGVyIHsNCiAgICAgICAgY29sb3I6ICNmZmZmZmY7DQog ICAgICB9DQogICAgfQ0KDQogICAgLm9kLUNoZWNrQm94LWZpZWxkIHsNCiAgICAgIGRpc3Bs YXk6IGlubGluZS1ibG9jazsNCiAgICAgIGN1cnNvcjogcG9pbnRlcjsNCiAgICAgIG1hcmdp bi10b3A6IDhweDsNCiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgICAgIG91dGxpbmU6 IDA7DQogICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOw0KICAgIH0NCg0KICAgIC5vZC1DaGVj a0JveC1maWVsZDpmb2N1czo6YmVmb3JlLA0KICAgIC5vZC1DaGVja0JveC1maWVsZDpob3Zl cjo6YmVmb3JlIHsNCiAgICAgIGJvcmRlci1jb2xvcjogIzhhOGE4YTsNCiAgICB9DQoNCiAg ICAub2QtQ2hlY2tCb3gtZmllbGQ6Zm9jdXMgLm9kLUxhYmVsLA0KICAgIC5vZC1DaGVja0Jv eC1maWVsZDpob3ZlciAub2QtTGFiZWwgew0KICAgICAgY29sb3I6ICMwMDAwMDA7DQogICAg fQ0KDQogICAgLm9kLUNoZWNrQm94LWZpZWxkLmlzLWRpc2FibGVkIHsNCiAgICAgIGN1cnNv cjogZGVmYXVsdDsNCiAgICB9DQoNCiAgICAub2QtQ2hlY2tCb3gtZmllbGQuaXMtZGlzYWJs ZWQ6OmJlZm9yZSB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzdjN2M3Ow0KICAgICAg Ym9yZGVyLWNvbG9yOiAjYzdjN2M3Ow0KICAgICAgY29sb3I6ICNjN2M3Yzc7DQogICAgfQ0K DQogICAgQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpIHsN CiAgICAgIC5vZC1DaGVja0JveC1maWVsZC5pcy1kaXNhYmxlZDo6YmVmb3JlIHsNCiAgICAg ICAgYm9yZGVyLWNvbG9yOiAjMGYwOw0KICAgICAgfQ0KICAgIH0NCg0KICAgIEBtZWRpYSBz Y3JlZW4gYW5kICgtbXMtaGlnaC1jb250cmFzdDogYmxhY2stb24td2hpdGUpIHsNCiAgICAg IC5vZC1DaGVja0JveC1maWVsZC5pcy1kaXNhYmxlZDo6YmVmb3JlIHsNCiAgICAgICAgYm9y ZGVyLWNvbG9yOiAjNjAwMDAwOw0KICAgICAgfQ0KICAgIH0NCg0KICAgIC5vZC1DaGVja0Jv eC1maWVsZC5pcy1kaXNhYmxlZCAub2QtTGFiZWwgew0KICAgICAgY29sb3I6ICM5ZTllOWU7 DQogICAgfQ0KDQogICAgQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBh Y3RpdmUpIHsNCiAgICAgIC5vZC1DaGVja0JveC1maWVsZC5pcy1kaXNhYmxlZCAub2QtTGFi ZWwgew0KICAgICAgICBjb2xvcjogIzBmMDsNCiAgICAgIH0NCiAgICB9DQoNCiAgICBAbWVk aWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGJsYWNrLW9uLXdoaXRlKSB7DQog ICAgICAub2QtQ2hlY2tCb3gtZmllbGQuaXMtZGlzYWJsZWQgLm9kLUxhYmVsIHsNCiAgICAg ICAgY29sb3I6ICM2MDAwMDA7DQogICAgICB9DQogICAgfQ0KDQogICAgLm9kLUNoZWNrQm94 LWZpZWxkLmluLWZvY3VzOjpiZWZvcmUgew0KICAgICAgYm9yZGVyLWNvbG9yOiAjOGE4YThh Ow0KICAgIH0NCg0KICAgIC5vZC1DaGVja0JveC1maWVsZC5pbi1mb2N1cy5pcy1kaXNhYmxl ZDo6YmVmb3JlIHsNCiAgICAgIGJvcmRlci1jb2xvcjogI2M3YzdjNzsNCiAgICB9DQoNCiAg ICAub2QtQ2hlY2tCb3gtZmllbGQuaW4tZm9jdXMuaXMtY2hlY2tlZDo6YmVmb3JlIHsNCiAg ICAgIGJvcmRlci1jb2xvcjogIzAwNWE5ZTsNCiAgICB9DQoNCiAgICAub2QtQ2hlY2tCb3gt ZmllbGQuaXMtY2hlY2tlZDo6YmVmb3JlIHsNCiAgICAgIGJvcmRlcjogMTBweCBzb2xpZCAj MDA3OGQ0Ow0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwNzhkNDsNCiAgICB9DQoNCiAg ICBAbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSkgew0KICAg ICAgLm9kLUNoZWNrQm94LWZpZWxkLmlzLWNoZWNrZWQ6OmJlZm9yZSB7DQogICAgICAgIGJv cmRlci1jb2xvcjogIzFhZWJmZjsNCiAgICAgIH0NCiAgICB9DQoNCiAgICBAbWVkaWEgc2Ny ZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGJsYWNrLW9uLXdoaXRlKSB7DQogICAgICAu b2QtQ2hlY2tCb3gtZmllbGQuaXMtY2hlY2tlZDo6YmVmb3JlIHsNCiAgICAgICAgYm9yZGVy LWNvbG9yOiAjMzcwMDZlOw0KICAgICAgfQ0KICAgIH0NCg0KICAgIC5vZC1DaGVja0JveC1m aWVsZC5pcy1jaGVja2VkOjphZnRlciB7DQogICAgICBkaXNwbGF5OiBibG9jazsNCiAgICB9 DQoNCiAgICAub2QtQ2hlY2tCb3gtZmllbGQuaXMtY2hlY2tlZDpmb2N1czo6YmVmb3JlLA0K ICAgIC5vZC1DaGVja0JveC1maWVsZC5pcy1jaGVja2VkOmhvdmVyOjpiZWZvcmUgew0KICAg ICAgYm9yZGVyLWNvbG9yOiAjMTA2ZWJlOw0KICAgIH0NCg0KICAgIC5vZC1DaGVja0JveC1m aWVsZC5pcy1jaGVja2VkLmlzLWRpc2FibGVkOjpiZWZvcmUgew0KICAgICAgYmFja2dyb3Vu ZC1jb2xvcjogI2M3YzdjNzsNCiAgICAgIGJvcmRlcjogMTBweCBzb2xpZCAjYzdjN2M3Ow0K ICAgICAgY29sb3I6ICNjN2M3Yzc7DQogICAgfQ0KDQogICAgQG1lZGlhIHNjcmVlbiBhbmQg KC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpIHsNCiAgICAgIC5vZC1DaGVja0JveC1maWVs ZC5pcy1jaGVja2VkLmlzLWRpc2FibGVkOjpiZWZvcmUgew0KICAgICAgICBib3JkZXItY29s b3I6ICMxYWViZmY7DQogICAgICB9DQogICAgfQ0KDQogICAgQG1lZGlhIHNjcmVlbiBhbmQg KC1tcy1oaWdoLWNvbnRyYXN0OiBibGFjay1vbi13aGl0ZSkgew0KICAgICAgLm9kLUNoZWNr Qm94LWZpZWxkLmlzLWNoZWNrZWQuaXMtZGlzYWJsZWQ6OmJlZm9yZSB7DQogICAgICAgIGJv cmRlci1jb2xvcjogIzM3MDA2ZTsNCiAgICAgIH0NCiAgICB9DQoNCiAgICAub2QtQ2hlY2tC b3gtZmllbGQuaXMtY2hlY2tlZC5pcy1kaXNhYmxlZDo6YWZ0ZXIgew0KICAgICAgZGlzcGxh eTogYmxvY2s7DQogICAgfQ0KDQogICAgLm9kLUNoZWNrQm94LWZpZWxkLmlzLWNoZWNrZWQu aXMtZGlzYWJsZWQ6Zm9jdXM6OmJlZm9yZSwNCiAgICAub2QtQ2hlY2tCb3gtZmllbGQuaXMt Y2hlY2tlZC5pcy1kaXNhYmxlZDpob3Zlcjo6YmVmb3JlIHsNCiAgICAgIGJhY2tncm91bmQt Y29sb3I6ICNjN2M3Yzc7DQogICAgICBib3JkZXI6IDEwcHggc29saWQgI2M3YzdjNzsNCiAg ICAgIGNvbG9yOiAjYzdjN2M3Ow0KICAgIH0NCg0KICAgIC5tcy1SYWRpb0J1dHRvbiB7DQog ICAgICBmb250LXNpemU6IDE0cHg7DQogICAgICBmb250LXdlaWdodDogNDAwOw0KICAgICAg Ym94LXNpemluZzogYm9yZGVyLWJveDsNCiAgICAgIGNvbG9yOiAjMjQyNDI0Ow0KICAgICAg bWluLWhlaWdodDogMzZweDsNCiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgICB9DQoN CiAgICAubXMtUmFkaW9CdXR0b24gLm1zLUxhYmVsLA0KICAgIC5tcy1SYWRpb0J1dHRvbiAu b2QtTGFiZWwgew0KICAgICAgZm9udC1zaXplOiAxNHB4Ow0KICAgICAgcGFkZGluZzogMCAw IDAgMjZweDsNCiAgICAgIGN1cnNvcjogcG9pbnRlcjsNCiAgICAgIGRpc3BsYXk6IGlubGlu ZS1ibG9jazsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0icnRsIl0gLm1zLVJhZGlvQnV0dG9u IC5tcy1MYWJlbCwNCiAgICBodG1sW2Rpcj0icnRsIl0gLm1zLVJhZGlvQnV0dG9uIC5vZC1M YWJlbCB7DQogICAgICBwYWRkaW5nOiAwIDI2cHggMCAwOw0KICAgIH0NCg0KICAgIC5tcy1S YWRpb0J1dHRvbi1pbnB1dCB7DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgICBv cGFjaXR5OiAwOw0KICAgIH0NCg0KICAgIC5tcy1SYWRpb0J1dHRvbi1maWVsZDo6YmVmb3Jl IHsNCiAgICAgIGNvbnRlbnQ6ICIiOw0KICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOw0K ICAgICAgYm9yZGVyOiAycHggc29saWQgIzllOWU5ZTsNCiAgICAgIHdpZHRoOiAyMHB4Ow0K ICAgICAgaGVpZ2h0OiAyMHB4Ow0KICAgICAgY3Vyc29yOiBwb2ludGVyOw0KICAgICAgZm9u dC13ZWlnaHQ6IDQwMDsNCiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgIGJveC1z aXppbmc6IGJvcmRlci1ib3g7DQogICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBib3JkZXIt Y29sb3I7DQogICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjJzOw0KICAgICAgdHJhbnNp dGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDAuMjMsIDEpOw0K ICAgICAgYm9yZGVyLXJhZGl1czogNTAlOw0KICAgIH0NCg0KICAgIC5tcy1SYWRpb0J1dHRv bi1maWVsZDo6YWZ0ZXIgew0KICAgICAgY29udGVudDogIiI7DQogICAgICB3aWR0aDogMDsN CiAgICAgIGhlaWdodDogMDsNCiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsNCiAgICAgIHBv c2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgIHRvcDogOHB4Ow0KICAgICAgYm90dG9tOiAwOw0K ICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdG9wLCBsZWZ0LCB3aWR0aCwgaGVpZ2h0Ow0K ICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMTUwbXM7DQogICAgICB0cmFuc2l0aW9uLXRp bWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yMywgMSk7DQogICAgICBi b3gtc2l6aW5nOiBib3JkZXItYm94Ow0KICAgIH0NCg0KICAgIFtkaXI9Imx0ciJdIC5tcy1S YWRpb0J1dHRvbi1maWVsZDo6YWZ0ZXIgew0KICAgICAgbGVmdDogOHB4Ow0KICAgIH0NCg0K ICAgIFtkaXI9InJ0bCJdIC5tcy1SYWRpb0J1dHRvbi1maWVsZDo6YWZ0ZXIgew0KICAgICAg cmlnaHQ6IDhweDsNCiAgICB9DQoNCiAgICBbZGlyPSJsdHIiXSAubXMtUmFkaW9CdXR0b24t ZmllbGQ6OmFmdGVyIHsNCiAgICAgIHJpZ2h0OiAwOw0KICAgIH0NCg0KICAgIFtkaXI9InJ0 bCJdIC5tcy1SYWRpb0J1dHRvbi1maWVsZDo6YWZ0ZXIgew0KICAgICAgbGVmdDogMDsNCiAg ICB9DQoNCiAgICBAbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2 ZSkgew0KICAgICAgLm1zLVJhZGlvQnV0dG9uLWZpZWxkOjphZnRlciB7DQogICAgICAgIGNv bG9yOiAjMGYwOw0KICAgICAgfQ0KICAgIH0NCg0KICAgIEBtZWRpYSBzY3JlZW4gYW5kICgt bXMtaGlnaC1jb250cmFzdDogYmxhY2stb24td2hpdGUpIHsNCiAgICAgIC5tcy1SYWRpb0J1 dHRvbi1maWVsZDo6YWZ0ZXIgew0KICAgICAgICBjb2xvcjogIzYwMDAwMDsNCiAgICAgIH0N CiAgICB9DQoNCiAgICAubXMtUmFkaW9CdXR0b24tZmllbGQgew0KICAgICAgZGlzcGxheTog aW5saW5lLWJsb2NrOw0KICAgICAgY3Vyc29yOiBwb2ludGVyOw0KICAgICAgbWFyZ2luLXRv cDogOHB4Ow0KICAgICAgcG9zaXRpb246IHJlbGF0aXZlOw0KICAgICAgb3V0bGluZTogMDsN CiAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7DQogICAgfQ0KDQogICAgLm1zLVJhZGlvQnV0 dG9uLWZpZWxkOmZvY3VzOjpiZWZvcmUsDQogICAgLm1zLVJhZGlvQnV0dG9uLWZpZWxkOmhv dmVyOjpiZWZvcmUgew0KICAgICAgYm9yZGVyLWNvbG9yOiAjOGE4YThhOw0KICAgIH0NCg0K ICAgIC5tcy1SYWRpb0J1dHRvbi1maWVsZDpmb2N1cyAubXMtTGFiZWwsDQogICAgLm1zLVJh ZGlvQnV0dG9uLWZpZWxkOmZvY3VzIC5vZC1MYWJlbCwNCiAgICAubXMtUmFkaW9CdXR0b24t ZmllbGQ6aG92ZXIgLm1zLUxhYmVsLA0KICAgIC5tcy1SYWRpb0J1dHRvbi1maWVsZDpob3Zl ciAub2QtTGFiZWwgew0KICAgICAgY29sb3I6ICMwMDAwMDA7DQogICAgfQ0KDQogICAgLm1z LVJhZGlvQnV0dG9uLWZpZWxkLmlzLWRpc2FibGVkIHsNCiAgICAgIGN1cnNvcjogZGVmYXVs dDsNCiAgICB9DQoNCiAgICAubXMtUmFkaW9CdXR0b24tZmllbGQuaXMtZGlzYWJsZWQ6OmJl Zm9yZSB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzdjN2M3Ow0KICAgICAgYm9yZGVy LWNvbG9yOiAjYzdjN2M3Ow0KICAgICAgY29sb3I6ICNjN2M3Yzc7DQogICAgfQ0KDQogICAg QG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpIHsNCiAgICAg IC5tcy1SYWRpb0J1dHRvbi1maWVsZC5pcy1kaXNhYmxlZDo6YmVmb3JlIHsNCiAgICAgICAg Ym9yZGVyLWNvbG9yOiAjMGYwOw0KICAgICAgfQ0KICAgIH0NCg0KICAgIEBtZWRpYSBzY3Jl ZW4gYW5kICgtbXMtaGlnaC1jb250cmFzdDogYmxhY2stb24td2hpdGUpIHsNCiAgICAgIC5t cy1SYWRpb0J1dHRvbi1maWVsZC5pcy1kaXNhYmxlZDo6YmVmb3JlIHsNCiAgICAgICAgYm9y ZGVyLWNvbG9yOiAjNjAwMDAwOw0KICAgICAgfQ0KICAgIH0NCg0KICAgIC5tcy1SYWRpb0J1 dHRvbi1maWVsZC5pcy1kaXNhYmxlZCAubXMtTGFiZWwsDQogICAgLm1zLVJhZGlvQnV0dG9u LWZpZWxkLmlzLWRpc2FibGVkIC5vZC1MYWJlbCB7DQogICAgICBjb2xvcjogIzllOWU5ZTsN CiAgICB9DQoNCiAgICBAbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFj dGl2ZSkgew0KDQogICAgICAubXMtUmFkaW9CdXR0b24tZmllbGQuaXMtZGlzYWJsZWQgLm1z LUxhYmVsLA0KICAgICAgLm1zLVJhZGlvQnV0dG9uLWZpZWxkLmlzLWRpc2FibGVkIC5vZC1M YWJlbCB7DQogICAgICAgIGNvbG9yOiAjMGYwOw0KICAgICAgfQ0KICAgIH0NCg0KICAgIEBt ZWRpYSBzY3JlZW4gYW5kICgtbXMtaGlnaC1jb250cmFzdDogYmxhY2stb24td2hpdGUpIHsN Cg0KICAgICAgLm1zLVJhZGlvQnV0dG9uLWZpZWxkLmlzLWRpc2FibGVkIC5tcy1MYWJlbCwN CiAgICAgIC5tcy1SYWRpb0J1dHRvbi1maWVsZC5pcy1kaXNhYmxlZCAub2QtTGFiZWwgew0K ICAgICAgICBjb2xvcjogIzYwMDAwMDsNCiAgICAgIH0NCiAgICB9DQoNCiAgICAubXMtUmFk aW9CdXR0b24tZmllbGQuaXMtZGlzYWJsZWQ6Zm9jdXM6OmJlZm9yZSwNCiAgICAubXMtUmFk aW9CdXR0b24tZmllbGQuaXMtZGlzYWJsZWQ6aG92ZXI6OmJlZm9yZSB7DQogICAgICBib3Jk ZXItY29sb3I6ICNjN2M3Yzc7DQogICAgfQ0KDQogICAgLm1zLVJhZGlvQnV0dG9uLWZpZWxk LmluLWZvY3VzOjpiZWZvcmUgew0KICAgICAgYm9yZGVyLWNvbG9yOiAjOGE4YThhOw0KICAg IH0NCg0KICAgIC5tcy1SYWRpb0J1dHRvbi1maWVsZC5pcy1jaGVja2VkOjpiZWZvcmUsDQog ICAgLm1zLVJhZGlvQnV0dG9uLWlucHV0OmNoZWNrZWQrLm1zLVJhZGlvQnV0dG9uLWZpZWxk OjpiZWZvcmUgew0KICAgICAgYm9yZGVyOiAycHggc29saWQgIzAwNzhkNDsNCiAgICAgIGJh Y2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICAgIH0NCg0KICAgIEBtZWRpYSBzY3Jl ZW4gYW5kICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSB7DQoNCiAgICAgIC5tcy1SYWRp b0J1dHRvbi1maWVsZC5pcy1jaGVja2VkOjpiZWZvcmUsDQogICAgICAubXMtUmFkaW9CdXR0 b24taW5wdXQ6Y2hlY2tlZCsubXMtUmFkaW9CdXR0b24tZmllbGQ6OmJlZm9yZSB7DQogICAg ICAgIGJvcmRlci1jb2xvcjogIzFhZWJmZjsNCiAgICAgIH0NCiAgICB9DQoNCiAgICBAbWVk aWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGJsYWNrLW9uLXdoaXRlKSB7DQoN CiAgICAgIC5tcy1SYWRpb0J1dHRvbi1maWVsZC5pcy1jaGVja2VkOjpiZWZvcmUsDQogICAg ICAubXMtUmFkaW9CdXR0b24taW5wdXQ6Y2hlY2tlZCsubXMtUmFkaW9CdXR0b24tZmllbGQ6 OmJlZm9yZSB7DQogICAgICAgIGJvcmRlci1jb2xvcjogIzM3MDA2ZTsNCiAgICAgIH0NCiAg ICB9DQoNCiAgICAubXMtUmFkaW9CdXR0b24tZmllbGQuaXMtY2hlY2tlZDo6YWZ0ZXIsDQog ICAgLm1zLVJhZGlvQnV0dG9uLWlucHV0OmNoZWNrZWQrLm1zLVJhZGlvQnV0dG9uLWZpZWxk OjphZnRlciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3OGQ0Ow0KICAgICAgdG9w OiA1cHg7DQogICAgICB3aWR0aDogMTBweDsNCiAgICAgIGhlaWdodDogMTBweDsNCiAgICB9 DQoNCiAgICBbZGlyPSJsdHIiXSAubXMtUmFkaW9CdXR0b24tZmllbGQuaXMtY2hlY2tlZDo6 YWZ0ZXIsDQogICAgW2Rpcj0ibHRyIl0gLm1zLVJhZGlvQnV0dG9uLWlucHV0OmNoZWNrZWQr Lm1zLVJhZGlvQnV0dG9uLWZpZWxkOjphZnRlciB7DQogICAgICBsZWZ0OiA1cHg7DQogICAg fQ0KDQogICAgW2Rpcj0icnRsIl0gLm1zLVJhZGlvQnV0dG9uLWZpZWxkLmlzLWNoZWNrZWQ6 OmFmdGVyLA0KICAgIFtkaXI9InJ0bCJdIC5tcy1SYWRpb0J1dHRvbi1pbnB1dDpjaGVja2Vk Ky5tcy1SYWRpb0J1dHRvbi1maWVsZDo6YWZ0ZXIgew0KICAgICAgcmlnaHQ6IDVweDsNCiAg ICB9DQoNCiAgICBAbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2 ZSkgew0KDQogICAgICAubXMtUmFkaW9CdXR0b24tZmllbGQuaXMtY2hlY2tlZDo6YWZ0ZXIs DQogICAgICAubXMtUmFkaW9CdXR0b24taW5wdXQ6Y2hlY2tlZCsubXMtUmFkaW9CdXR0b24t ZmllbGQ6OmFmdGVyIHsNCiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzFhZWJmZjsNCiAg ICAgIH0NCiAgICB9DQoNCiAgICBAbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJh c3Q6IGJsYWNrLW9uLXdoaXRlKSB7DQoNCiAgICAgIC5tcy1SYWRpb0J1dHRvbi1maWVsZC5p cy1jaGVja2VkOjphZnRlciwNCiAgICAgIC5tcy1SYWRpb0J1dHRvbi1pbnB1dDpjaGVja2Vk Ky5tcy1SYWRpb0J1dHRvbi1maWVsZDo6YWZ0ZXIgew0KICAgICAgICBiYWNrZ3JvdW5kLWNv bG9yOiAjMzcwMDZlOw0KICAgICAgfQ0KICAgIH0NCg0KICAgIC5tcy1SYWRpb0J1dHRvbi1m aWVsZC5pcy1jaGVja2VkOmZvY3VzOjpiZWZvcmUsDQogICAgLm1zLVJhZGlvQnV0dG9uLWZp ZWxkLmlzLWNoZWNrZWQ6aG92ZXI6OmJlZm9yZSwNCiAgICAubXMtUmFkaW9CdXR0b24taW5w dXQ6Y2hlY2tlZCsubXMtUmFkaW9CdXR0b24tZmllbGQ6Zm9jdXM6OmJlZm9yZSwNCiAgICAu bXMtUmFkaW9CdXR0b24taW5wdXQ6Y2hlY2tlZCsubXMtUmFkaW9CdXR0b24tZmllbGQ6aG92 ZXI6OmJlZm9yZSB7DQogICAgICBib3JkZXItY29sb3I6ICMwMDc4ZDQ7DQogICAgfQ0KDQog ICAgLm1zLVJhZGlvQnV0dG9uLWZpZWxkLmlzLWNoZWNrZWQuaW4tZm9jdXM6OmJlZm9yZSwN CiAgICAubXMtUmFkaW9CdXR0b24taW5wdXQ6Y2hlY2tlZCsubXMtUmFkaW9CdXR0b24tZmll bGQuaW4tZm9jdXM6OmJlZm9yZSB7DQogICAgICBib3JkZXItY29sb3I6ICMwMDc4ZDQ7DQog ICAgfQ0KDQogICAgLm1zLWFjY2Vzc2libGUgew0KICAgICAgcG9zaXRpb246IGFic29sdXRl Ow0KICAgICAgdG9wOiAtOTAwMXB4Ow0KICAgICAgbGVmdDogLTkwMDFweDsNCiAgICAgIGhl aWdodDogMXB4Ow0KICAgICAgd2lkdGg6IDFweDsNCiAgICB9DQogIDwvc3R5bGU+DQogIDxz dHlsZSBkYXRhLWxvYWQtdGhlbWVkLXN0eWxlcz0idHJ1ZSI+DQogICAgLkxhbmd1YWdlUGlj a2VyIHNlbGVjdCB7DQogICAgICB3aWR0aDogMTAwJTsNCiAgICB9DQogIDwvc3R5bGU+DQog IDxzdHlsZSBkYXRhLWxvYWQtdGhlbWVkLXN0eWxlcz0idHJ1ZSI+DQogICAgLkZvbGRlclR5 cGVFZGl0b3Itb3B0aW9uKy5Gb2xkZXJUeXBlRWRpdG9yLW9wdGlvbiB7DQogICAgICBtYXJn aW4tdG9wOiAxMHB4Ow0KICAgIH0NCiAgPC9zdHlsZT4NCiAgPHN0eWxlIGRhdGEtbG9hZC10 aGVtZWQtc3R5bGVzPSJ0cnVlIj4NCiAgICAub2QtSXRlbU5hbWVFZGl0b3ItaW5wdXQgew0K ICAgICAgZGlzcGxheTogdGFibGUtY2VsbDsNCiAgICAgIHdpZHRoOiAxMDAlOw0KICAgIH0N Cg0KICAgIC5vZC1JdGVtTmFtZUVkaXRvci1leHRlbnNpb24gew0KICAgICAgZGlyZWN0aW9u OiBsdHI7DQogICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsOw0KICAgIH0NCg0KICAgIFtkaXI9 Imx0ciJdIC5vZC1JdGVtTmFtZUVkaXRvci1leHRlbnNpb24gew0KICAgICAgcGFkZGluZy1s ZWZ0OiA4cHg7DQogICAgfQ0KDQogICAgW2Rpcj0icnRsIl0gLm9kLUl0ZW1OYW1lRWRpdG9y LWV4dGVuc2lvbiB7DQogICAgICBwYWRkaW5nLXJpZ2h0OiA4cHg7DQogICAgfQ0KDQogICAg Lm9kLUl0ZW1OYW1lRWRpdG9yLS1ub0V4dGVuc2lvbiAub2QtSXRlbU5hbWVFZGl0b3ItaW5w dXQgew0KICAgICAgZGlzcGxheTogYmxvY2s7DQogICAgICB3aWR0aDogYXV0bzsNCiAgICB9 DQoNCiAgICAub2QtSXRlbU5hbWVFZGl0b3ItLW5vRXh0ZW5zaW9uIC5vZC1JdGVtTmFtZUVk aXRvci1leHRlbnNpb24gew0KICAgICAgZGlzcGxheTogbm9uZTsNCiAgICB9DQoNCiAgICAu b2QtSXRlbU5hbWVFZGl0b3Itc3RhdHVzIHsNCiAgICAgIGZvbnQtc2l6ZTogMTJweDsNCiAg ICAgIGZvbnQtd2VpZ2h0OiA0MDA7DQogICAgICBjb2xvcjogIzAwNzhkNDsNCiAgICAgIHdv cmQtd3JhcDogYnJlYWstd29yZDsNCiAgICB9DQoNCiAgICAub2QtSXRlbU5hbWVFZGl0b3It c3RhdHVzLS1lcnJvciB7DQogICAgICBjb2xvcjogI2E0MjYyYzsNCiAgICB9DQoNCiAgICAu b2QtSXRlbU5hbWVFZGl0b3ItaW5wdXQtLWVycm9yIHsNCiAgICAgIGJvcmRlci1jb2xvcjog I2E0MjYyYyAhaW1wb3J0YW50Ow0KICAgIH0NCiAgPC9zdHlsZT4NCiAgPHN0eWxlIGRhdGEt bG9hZC10aGVtZWQtc3R5bGVzPSJ0cnVlIj4NCiAgICBAa2V5ZnJhbWVzIGNvbW1hbmRCYXJC b3hTaGFkb3dBbmltYXRpb24gew0KICAgICAgMCUgew0KICAgICAgICBib3gtc2hhZG93OiBu b25lOw0KICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsNCiAgICAgIH0N Cg0KICAgICAgMTAwJSB7DQogICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7DQog ICAgICAgIGJveC1zaGFkb3c6IDAgMy4ycHggNy4ycHggMCByZ2JhKDAsIDAsIDAsIDAuMTMy KSwNCiAgICAgICAgICAwIDAuNnB4IDEuOHB4IDAgcmdiYSgwLCAwLCAwLCAwLjEwOCk7DQog ICAgICB9DQogICAgfQ0KDQogICAgQGtleWZyYW1lcyBjb21tYW5kQmFyRGl2aWRlckFuaW1h dGlvbiB7DQogICAgICAwJSB7DQogICAgICAgIG9wYWNpdHk6IDE7DQogICAgICB9DQoNCiAg ICAgIDEwMCUgew0KICAgICAgICBvcGFjaXR5OiAwOw0KICAgICAgfQ0KICAgIH0NCg0KICAg IC5JbmZvUGFuZS1zaGFyaW5nIHsNCiAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTsNCiAgICB9 DQoNCiAgICAuSW5mb1BhbmUtc2VjdGlvbkhlYWRlclRleHQgew0KICAgICAgZm9udC1zaXpl OiAwLjg3NXJlbTsNCiAgICB9DQoNCiAgICAub2QtU2hhcmluZ1NlY3Rpb24tTWFuYWdlQWNj ZXNzTGluayB7DQogICAgICBmb250LXNpemU6IDAuNzVyZW07DQogICAgfQ0KDQogICAgLlNo YXJpbmdTZWN0aW9uLXNoYXJlTGluayB7DQogICAgICBsaW5lLWhlaWdodDogMS42MjVyZW07 DQogICAgICBmb250LXNpemU6IDAuNzVyZW07DQogICAgfQ0KDQogICAgaHRtbFtkaXI9Imx0 ciJdIC5TaGFyaW5nU2VjdGlvbi1zaGFyZUxpbmsgew0KICAgICAgZmxvYXQ6IHJpZ2h0Ow0K ICAgIH0NCg0KICAgIGh0bWxbZGlyPSJydGwiXSAuU2hhcmluZ1NlY3Rpb24tc2hhcmVMaW5r IHsNCiAgICAgIGZsb2F0OiBsZWZ0Ow0KICAgIH0NCg0KICAgIC5TaGFyaW5nU2VjdGlvbi1l bnRpdHkgew0KICAgICAgcGFkZGluZzogMC41cmVtIDA7DQogICAgICBmb250LXNpemU6IDAu NzVyZW07DQogICAgfQ0KDQogICAgLlNoYXJpbmdTZWN0aW9uLWVudGl0eSAubXMtUGVyc29u YSB7DQogICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOw0KICAgIH0NCg0KICAgIC5TaGFyaW5n U2VjdGlvbi1lbnRpdHkgLm1zLVBlcnNvbmEgLm1zLVBlcnNvbmEtZGV0YWlscyB7DQogICAg ICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7DQogICAgICBtYXgtd2lkdGg6IDEwLjYyNXJlbTsN CiAgICAgIHBhZGRpbmc6IDA7DQogICAgfQ0KDQogICAgLlNoYXJpbmdTZWN0aW9uLWFkZFBl b3BsZSB7DQogICAgICBmb250LXNpemU6IDEuMTI1cmVtOw0KICAgICAgbWluLWhlaWdodDog My4xMjVyZW07DQogICAgICBtYXJnaW4tdG9wOiAwLjYyNXJlbTsNCiAgICB9DQoNCiAgICAu U2hhcmluZ1NlY3Rpb24tYWRkUGVvcGxlLWljb24gew0KICAgICAgZGlzcGxheTogaW5saW5l LWJsb2NrOw0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwNzhkNDsNCiAgICAgIGNvbG9y OiAjZmZmZmZmOw0KICAgICAgZm9udC1zaXplOiAxLjI1cmVtOw0KICAgICAgYm9yZGVyLXJh ZGl1czogNTAlOw0KICAgICAgd2lkdGg6IDMuMTI1cmVtOw0KICAgICAgaGVpZ2h0OiAzLjEy NXJlbTsNCiAgICB9DQoNCiAgICBbZGlyPSJsdHIiXSAuU2hhcmluZ1NlY3Rpb24tYWRkUGVv cGxlLWljb24gew0KICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTsNCiAgICB9DQoNCiAg ICBbZGlyPSJydGwiXSAuU2hhcmluZ1NlY3Rpb24tYWRkUGVvcGxlLWljb24gew0KICAgICAg bWFyZ2luLWxlZnQ6IDAuNjI1cmVtOw0KICAgIH0NCg0KICAgIC5TaGFyaW5nU2VjdGlvbi1h ZGRQZW9wbGUtaWNvbiAubXMtSWNvbi0tUGVvcGxlQWRkIHsNCiAgICAgIHBvc2l0aW9uOiBy ZWxhdGl2ZTsNCiAgICAgIHRvcDogMC43NXJlbTsNCiAgICB9DQoNCiAgICBbZGlyPSJsdHIi XSAuU2hhcmluZ1NlY3Rpb24tYWRkUGVvcGxlLWljb24gLm1zLUljb24tLVBlb3BsZUFkZCB7 DQogICAgICBsZWZ0OiAwLjkzNzVyZW07DQogICAgfQ0KDQogICAgW2Rpcj0icnRsIl0gLlNo YXJpbmdTZWN0aW9uLWFkZFBlb3BsZS1pY29uIC5tcy1JY29uLS1QZW9wbGVBZGQgew0KICAg ICAgcmlnaHQ6IDAuOTM3NXJlbTsNCiAgICB9DQoNCiAgICAuU2hhcmluZ1NlY3Rpb24tYWRk UGVvcGxlLXRleHQgew0KICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOw0KICAgICAgdmVy dGljYWwtYWxpZ246IHRvcDsNCiAgICAgIGxpbmUtaGVpZ2h0OiAzLjEyNXJlbTsNCiAgICB9 DQoNCiAgICAuU2hhcmluZ1NlY3Rpb24tbGlua3NCb3ggYSB7DQogICAgICBkaXNwbGF5OiBp bmxpbmUtYmxvY2s7DQogICAgICBtYXJnaW4tdG9wOiAwLjMxMjVyZW07DQogICAgfQ0KDQog ICAgLlNoYXJpbmdTZWN0aW9uLWxpbmssDQogICAgLm9kLVBlcm1pc3Npb25zUGFuZWwtbGlu ayB7DQogICAgICBwYWRkaW5nLXRvcDogMC41cmVtOw0KICAgIH0NCg0KICAgIC5vZC1hbGVy dCB7DQogICAgICBkaXNwbGF5OiBub25lOw0KICAgIH0NCg0KICAgIC5vZC1hbGVydC5vZC1Q ZXJtaXNzaW9uc1BhbmVsLWFsZXJ0IHsNCiAgICAgIGRpc3BsYXk6IGJsb2NrOw0KICAgIH0N Cg0KICAgIGRpdi5tcy1Db250ZXh0dWFsTWVudS5pcy1vcGVuIHsNCiAgICAgIHotaW5kZXg6 IDI5OTsNCiAgICB9DQoNCiAgICAub2QtUGVybWlzc2lvbnNQYW5lbCB7DQogICAgICBoZWln aHQ6IDEwMCU7DQogICAgICBvdmVyZmxvdy15OiBhdXRvOw0KICAgICAgb3ZlcmZsb3cteDog aGlkZGVuOw0KICAgIH0NCg0KICAgIC5vZC1QZXJtaXNzaW9uc1BhbmVsIC5vZC1TaGFyaW5n TGluay1saW5rU3dpdGNoZXIgew0KICAgICAgZm9udC1zaXplOiAwLjc1cmVtOw0KICAgIH0N Cg0KICAgIC5vZC1QZXJtaXNzaW9uUGlsZS1GYWNlUGlsZSB7DQogICAgICBkaXNwbGF5OiBp bmxpbmUtYmxvY2s7DQogICAgICBtYXJnaW46IDA7DQogICAgICBwYWRkaW5nOiAwOw0KICAg IH0NCg0KICAgIC5vZC1QZXJtaXNzaW9uUGlsZS1GYWNlUGlsZS5vZC1QZXJtaXNzaW9uUGls ZS1VbnNoYXJlZCB7DQogICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsNCiAgICAgIGZsZXgt d3JhcDogd3JhcDsNCiAgICAgIGp1c3RpZnktY29udGVudDogc3RhcnQ7DQogICAgfQ0KDQog ICAgLm9kLVBlcm1pc3Npb25zUGFuZWwtc2hhcmVMaW5rIHsNCiAgICAgIGxpbmUtaGVpZ2h0 OiAxLjYyNXJlbTsNCiAgICAgIGZvbnQtc2l6ZTogMC43NXJlbTsNCiAgICB9DQoNCiAgICBo dG1sW2Rpcj0ibHRyIl0gLm9kLVBlcm1pc3Npb25zUGFuZWwtc2hhcmVMaW5rIHsNCiAgICAg IGZsb2F0OiByaWdodDsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0icnRsIl0gLm9kLVBlcm1p c3Npb25zUGFuZWwtc2hhcmVMaW5rIHsNCiAgICAgIGZsb2F0OiBsZWZ0Ow0KICAgIH0NCg0K ICAgIC5vZC1QZXJtaXNzaW9uUGlsZS1hY2Nlc3NpYmxlTGFiZWwgew0KICAgICAgcG9zaXRp b246IGFic29sdXRlOw0KICAgICAgd2lkdGg6IDFweDsNCiAgICAgIGhlaWdodDogMXB4Ow0K ICAgICAgcGFkZGluZzogMDsNCiAgICAgIG1hcmdpbjogLTFweDsNCiAgICAgIG92ZXJmbG93 OiBoaWRkZW47DQogICAgICBjbGlwOiByZWN0KDAsIDAsIDAsIDApOw0KICAgICAgYm9yZGVy OiAwOw0KICAgIH0NCg0KICAgIC5vZC1QZXJtaXNzaW9uc1BhbmVsLXN0b3BTaGFyaW5nIHsN CiAgICAgIGNvbG9yOiAjMDA3OGQ0Ow0KICAgICAgZm9udC1zaXplOiAxcmVtOw0KICAgICAg YmFja2dyb3VuZDogMCAwOw0KICAgICAgYm9yZGVyOiBub25lOw0KICAgICAgcGFkZGluZzog MDsNCiAgICAgIGN1cnNvcjogcG9pbnRlcjsNCiAgICB9DQoNCiAgICAub2QtUGVybWlzc2lv bnNQYW5lbC1zdG9wU2hhcmluZzpmb2N1cywNCiAgICAub2QtUGVybWlzc2lvbnNQYW5lbC1z dG9wU2hhcmluZzpob3ZlciB7DQogICAgICBjb2xvcjogIzAwNWE5ZTsNCiAgICB9DQoNCiAg ICBAbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSkgew0KICAg ICAgLm9kLVBlcm1pc3Npb25zUGFuZWwtc3RvcFNoYXJpbmcgYTpmb2N1cyB7DQogICAgICAg IGJvcmRlcjogMC4wNjI1cmVtIHNvbGlkICNmZmZmZmY7DQogICAgICB9DQogICAgfQ0KDQog ICAgQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBibGFjay1vbi13aGl0 ZSkgew0KICAgICAgLm9kLVBlcm1pc3Npb25zUGFuZWwtc3RvcFNoYXJpbmcgYTpmb2N1cyB7 DQogICAgICAgIGJvcmRlcjogMC4wNjI1cmVtIHNvbGlkICMwMDAwMDA7DQogICAgICB9DQog ICAgfQ0KDQogICAgLm9kLVBlcm1pc3Npb25zUGFuZWwtZW50aXR5IHsNCiAgICAgIHBhZGRp bmc6IDAuNXJlbSAwOw0KICAgICAgZm9udC1zaXplOiAwLjc1cmVtOw0KICAgIH0NCg0KICAg IC5vZC1QZXJtaXNzaW9uc1BhbmVsLWVudGl0eSAub2QtUGVyc29uYSAub2QtUGVyc29uYS1k ZXRhaWxzIHsNCiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsNCiAgICAgIG1heC13aWR0 aDogMjAwcHg7DQogICAgICBwYWRkaW5nOiAwOw0KICAgIH0NCg0KICAgIC5vZC1QZXJtaXNz aW9uc1BhbmVsLWFkZFBlb3BsZSB7DQogICAgICBmb250LXNpemU6IDEuMDYyNXJlbTsNCiAg ICAgIG1pbi1oZWlnaHQ6IDMuMTI1cmVtOw0KICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1 cmVtOw0KICAgIH0NCg0KICAgIC5vZC1QZXJtaXNzaW9uc1BhbmVsLWFkZFBlb3BsZS1pY29u IHsNCiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsNCiAgICAgIGJhY2tncm91bmQtY29s b3I6ICMwMDc4ZDQ7DQogICAgICBjb2xvcjogI2ZmZmZmZjsNCiAgICAgIGZvbnQtc2l6ZTog MS4yNXJlbTsNCiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsNCiAgICAgIHdpZHRoOiAzLjEy NXJlbTsNCiAgICAgIGhlaWdodDogMy4xMjVyZW07DQogICAgfQ0KDQogICAgW2Rpcj0ibHRy Il0gLm9kLVBlcm1pc3Npb25zUGFuZWwtYWRkUGVvcGxlLWljb24gew0KICAgICAgbWFyZ2lu LXJpZ2h0OiAwLjYyNXJlbTsNCiAgICB9DQoNCiAgICBbZGlyPSJydGwiXSAub2QtUGVybWlz c2lvbnNQYW5lbC1hZGRQZW9wbGUtaWNvbiB7DQogICAgICBtYXJnaW4tbGVmdDogMC42MjVy ZW07DQogICAgfQ0KDQogICAgLm9kLVBlcm1pc3Npb25zUGFuZWwtYWRkUGVvcGxlLWljb24g Lm1zLUljb24tLVBlb3BsZUFkZCB7DQogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7DQogICAg ICB0b3A6IDAuNzVyZW07DQogICAgICBsZWZ0OiAwLjkzNzVyZW07DQogICAgfQ0KDQogICAg Lm9kLVBlcm1pc3Npb25zUGFuZWwtYWRkUGVvcGxlLXRleHQgew0KICAgICAgZGlzcGxheTog aW5saW5lLWJsb2NrOw0KICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsNCiAgICAgIGxpbmUt aGVpZ2h0OiAzLjEyNXJlbTsNCiAgICB9DQoNCiAgICAub2QtUGVybWlzc2lvbnNQYW5lbC1s aW5rc0JveCBhIHsNCiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsNCiAgICAgIG1hcmdp bi10b3A6IDAuMzEyNXJlbTsNCiAgICB9DQoNCiAgICAub2QtUGVybWlzc2lvbnNQYW5lbC1s aW5rIHsNCiAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07DQogICAgfQ0KDQogICAgLm9kLVBl cm1pc3Npb25zUGFuZWwtY29udGFpbmVyIHsNCiAgICAgIG92ZXJmbG93OiBoaWRkZW47DQog ICAgfQ0KDQogICAgLm9kLVBlcm1pc3Npb25zUGFuZWwtY29udGFpbmVyLXdpdGhDb21tYW5k YmFyIHsNCiAgICAgIHRvcDogNDBweDsNCiAgICB9DQoNCiAgICAub2QtUGVybWlzc2lvbnNQ YW5lbC1oZWFkIHsNCiAgICAgIGZvbnQtc2l6ZTogMS4yNXJlbTsNCiAgICAgIGZvbnQtd2Vp Z2h0OiA2MDA7DQogICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07DQogICAgfQ0KDQogICAg Lm9kLVBlcm1pc3Npb25zUGFuZWwtZmlsZU5hbWUgew0KICAgICAgZm9udC1zaXplOiAwLjg3 NXJlbTsNCiAgICAgIGNvbG9yOiAjNjE2MTYxOw0KICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsN CiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOw0KICAgICAgd2hpdGUtc3BhY2U6IG5v d3JhcDsNCiAgICAgIGhlaWdodDogMS41NjI1cmVtOw0KICAgIH0NCg0KICAgIFtkaXI9Imx0 ciJdIC5vZC1QZXJtaXNzaW9uc1BhbmVsLWZpbGVOYW1lIHsNCiAgICAgIHBhZGRpbmctcmln aHQ6IDIuNXJlbTsNCiAgICB9DQoNCiAgICBbZGlyPSJydGwiXSAub2QtUGVybWlzc2lvbnNQ YW5lbC1maWxlTmFtZSB7DQogICAgICBwYWRkaW5nLWxlZnQ6IDIuNXJlbTsNCiAgICB9DQoN CiAgICAub2QtUGVybWlzc2lvbnNQYW5lbC1maWxlTmFtZSAub2QtUGVybWlzc2lvbnNQYW5l bC1QYXRoIHsNCiAgICAgIHBhZGRpbmc6IDAuMTg3NXJlbTsNCiAgICAgIGRpc3BsYXk6IGlu bGluZS1ibG9jazsNCiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7DQogICAgfQ0KDQog ICAgLm9kLVBlcm1pc3Npb25zUGFuZWwtZmlsZU5hbWUgLm9kLVBlcm1pc3Npb25zUGFuZWwt UGF0aCAub2QtUGVybWlzc2lvbnNQYW5lbC1QYXRoLUVsZW1lbnQgew0KICAgICAgZGlzcGxh eTogaW5saW5lOw0KICAgICAgd29yZC1icmVhazogYnJlYWstYWxsOw0KICAgIH0NCg0KICAg IC5vZC1QZXJtaXNzaW9uc1BhbmVsLWZpbGVOYW1lIC5vZC1QZXJtaXNzaW9uc1BhbmVsLVBh dGggLm9kLVBlcm1pc3Npb25zUGFuZWwtUGF0aC1FbGVtZW50OmFmdGVyIHsNCiAgICAgIGRp c3BsYXk6IGlubGluZS1ibG9jazsNCiAgICAgIGZvbnQtZmFtaWx5OiBGYWJyaWNNREwySWNv bnM7DQogICAgICBmb250LXN0eWxlOiBub3JtYWw7DQogICAgICBmb250LXdlaWdodDogNDAw Ow0KICAgICAgY29sb3I6ICM2MTYxNjE7DQogICAgICBwYWRkaW5nOiAwIDAuMzEyNXJlbTsN CiAgICAgIGZvbnQtc2l6ZTogMC41cmVtOw0KICAgICAgZm9udC13ZWlnaHQ6IDgwMDsNCiAg ICAgIGNvbnRlbnQ6ICJcZTc2YyI7DQogICAgfQ0KDQogICAgLm9kLVBlcm1pc3Npb25zUGFu ZWwtZmlsZU5hbWUgLm9kLVBlcm1pc3Npb25zUGFuZWwtUGF0aCAub2QtUGVybWlzc2lvbnNQ YW5lbC1QYXRoLUVsZW1lbnQ6bGFzdC1jaGlsZDphZnRlciB7DQogICAgICBjb250ZW50OiAi IjsNCiAgICAgIGRpc3BsYXk6IG5vbmU7DQogICAgfQ0KDQogICAgaHRtbFtkaXI9InJ0bCJd IC5vZC1QZXJtaXNzaW9uc1BhbmVsLVBhdGgtRWxlbWVudDphZnRlciB7DQogICAgICBjb250 ZW50OiAiXGU3NmIiOw0KICAgIH0NCg0KICAgIC5vZC1QZXJtaXNzaW9uc1BhbmVsLXRpdGxl QmFyIHsNCiAgICAgIHBhZGRpbmctdG9wOiAxcmVtOw0KICAgICAgcGFkZGluZy1ib3R0b206 IDAuMjVyZW07DQogICAgICBib3JkZXItYm90dG9tOiBzb2xpZCAwLjA2MjVyZW0gI2ViZWJl YjsNCiAgICB9DQoNCiAgICBbZGlyPSJsdHIiXSAub2QtUGVybWlzc2lvbnNQYW5lbC10aXRs ZUJhciB7DQogICAgICBwYWRkaW5nLWxlZnQ6IDFyZW07DQogICAgfQ0KDQogICAgW2Rpcj0i cnRsIl0gLm9kLVBlcm1pc3Npb25zUGFuZWwtdGl0bGVCYXIgew0KICAgICAgcGFkZGluZy1y aWdodDogMXJlbTsNCiAgICB9DQoNCiAgICAub2QtUGVybWlzc2lvbnNQYW5lbC1wYXJlbnQg ew0KICAgICAgaGVpZ2h0OiAxMDAlOw0KICAgIH0NCg0KICAgIC5vZC1QZXJtaXNzaW9uc1Bh bmVsLWNvbnRlbnQgew0KICAgICAgcGFkZGluZy10b3A6IDE1cHg7DQogICAgICBwYWRkaW5n LWxlZnQ6IDMycHg7DQogICAgICBwYWRkaW5nLXJpZ2h0OiA1cHg7DQogICAgfQ0KDQogICAg Lm9kLVBlcm1pc3Npb25zUGFuZWwtbGlua3NCb3gsDQogICAgLm9kLVBlcm1pc3Npb25zUGFu ZWwtbGlua3NCb3gtcm93IHsNCiAgICAgIHJpZ2h0OiAwOw0KICAgICAgYm90dG9tOiAwOw0K ICAgIH0NCg0KICAgIC5vZC1TaGFyaW5nU2VjdGlvbi1QZXJtaXNzaW9uc1BpbGUgew0KICAg ICAgd2lkdGg6IDIwcmVtOw0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjsNCiAg ICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7DQogICAgICBtYXJnaW4tYm90dG9tOiAxcmVt Ow0KICAgICAgcGFkZGluZzogMXJlbSAxLjVyZW07DQogICAgfQ0KDQogICAgLm9kLVNoYXJp bmdTZWN0aW9uLVBlcm1pc3Npb25zUGlsZSAuSW5mb1BhbmUtc2VjdGlvbkhlYWRlciB7DQog ICAgICBjdXJzb3I6IGRlZmF1bHQ7DQogICAgICBwYWRkaW5nLWJvdHRvbTogMDsNCiAgICB9 DQoNCiAgICAub2QtU2hhcmluZ1NlY3Rpb24tUGVybWlzc2lvbnNQaWxlIC5vZC1MaW5rOmZv Y3VzLXZpc2libGUgew0KICAgICAgb3V0bGluZTogMXB4IHNvbGlkICM2MTYxNjE7DQogICAg fQ0KDQogICAgLm9kLVNoYXJpbmdTZWN0aW9uLU1hbmFnZUFjY2Vzc0xpbmstQnV0dG9uIHsN CiAgICAgIGJvcmRlcjogMDsNCiAgICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7DQogICAgICBm b250LXNpemU6IGluaGVyaXQ7DQogICAgICBjb2xvcjogIzAwNzhkNDsNCiAgICAgIGN1cnNv cjogcG9pbnRlcjsNCiAgICB9DQoNCiAgICAub2QtU2hhcmluZ1NlY3Rpb24tUGVybWlzc2lv bnNQaWxlLXBlcnNvbmFzIHsNCiAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07DQogICAg fQ0KDQogICAgLm9kLVNoYXJpbmdTZWN0aW9uLVBlcm1pc3Npb25zUGlsZS1wZXJzb25hcyAu b2QtUGVyc29uYSB7DQogICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7DQogICAgICB3aWR0 aDogMnJlbTsNCiAgICAgIGhlaWdodDogMnJlbTsNCiAgICAgIGJveC1zaXppbmc6IGJvcmRl ci1ib3g7DQogICAgICBjdXJzb3I6IHBvaW50ZXI7DQogICAgICB2ZXJ0aWNhbC1hbGlnbjog dG9wOw0KICAgIH0NCg0KICAgIFtkaXI9Imx0ciJdIC5vZC1TaGFyaW5nU2VjdGlvbi1QZXJt aXNzaW9uc1BpbGUtcGVyc29uYXMgLm9kLVBlcnNvbmEgew0KICAgICAgbWFyZ2luLXJpZ2h0 OiAwLjI1cmVtOw0KICAgIH0NCg0KICAgIFtkaXI9InJ0bCJdIC5vZC1TaGFyaW5nU2VjdGlv bi1QZXJtaXNzaW9uc1BpbGUtcGVyc29uYXMgLm9kLVBlcnNvbmEgew0KICAgICAgbWFyZ2lu LWxlZnQ6IDAuMjVyZW07DQogICAgfQ0KDQogICAgLm9kLVNoYXJpbmdTZWN0aW9uLVBlcm1p c3Npb25zUGlsZS1wZXJzb25hcyAub2QtUGVyc29uYS5vZC1QZXJzb25hLS14cyB7DQogICAg ICBib3JkZXI6IDAuMDYyNXJlbSBzb2xpZCB0cmFuc3BhcmVudDsNCiAgICB9DQoNCiAgICAu b2QtU2hhcmluZ1NlY3Rpb24tUGVybWlzc2lvbnNQaWxlLXBlcnNvbmFzIC5vZC1QZXJzb25h Lm9kLVBlcnNvbmEtLXhzIC5vZC1QZXJzb25hLWluaXRpYWxzIHsNCiAgICAgIGZvbnQtc2l6 ZTogMXJlbTsNCiAgICB9DQoNCiAgICAub2QtU2hhcmluZ1NlY3Rpb24tUGVybWlzc2lvbnNQ aWxlLXBlcnNvbmFzIC5vZC1QZXJzb25hLm9kLUhhc0FjY2Vzc0NvbnRyb2wgew0KICAgICAg dGV4dC1hbGlnbjogY2VudGVyOw0KICAgICAgcGFkZGluZzogMC4zNzVyZW0gMDsNCiAgICAg IGhlaWdodDogdW5zZXQ7DQogICAgICB3aWR0aDogdW5zZXQ7DQogICAgfQ0KDQogICAgLm9k LVNoYXJpbmdTZWN0aW9uLVBlcm1pc3Npb25zUGlsZS1wZXJzb25hcyAub2QtUGVyc29uYS5v ZC1Qb2ludGVyIHsNCiAgICAgIGN1cnNvcjogYXV0bzsNCiAgICB9DQoNCiAgICAub2QtU2hh cmluZ1NlY3Rpb24tUGVybWlzc2lvbnNQaWxlLXBlcnNvbmFzIC5vZC1QZXJzb25hLXByZXNl bmNlIHsNCiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7DQogICAgICBib3JkZXI6IDAu MDYyNXJlbSBzb2xpZCAjZmZmZmZmOw0KICAgIH0NCg0KICAgIC5vZC1TaGFyaW5nU2VjdGlv bi1QZXJtaXNzaW9uc1BpbGUtcGVyc29uYXMgLm9kLVBlcnNvbmFUaWxlIHsNCiAgICAgIG91 dGxpbmU6IDA7DQogICAgfQ0KDQogICAgLm9kLVNoYXJpbmdTZWN0aW9uLVBlcm1pc3Npb25z UGlsZS1wZXJzb25hcyAub2QtUGVyc29uYS1pbWFnZVtkaXNhYmxlZF0gLm9kLVNoYXJpbmdT ZWN0aW9uLVBlcm1pc3Npb25zUGlsZS1hZGRGcmllbmQgew0KICAgICAgY3Vyc29yOiBkZWZh dWx0Ow0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzllOWU5ZTsNCiAgICB9DQoNCiAgICAu b2QtZm9jdXMtLWVuYWJsZWQgLm9kLVBlcnNvbmEtLXhzOmZvY3VzIHsNCiAgICAgIGJveC1z aGFkb3c6IDAgMCAwIDAuMDYyNXJlbSAjNjE2MTYxIGluc2V0Ow0KICAgIH0NCg0KICAgIC5v ZC1TaGFyaW5nU2VjdGlvbi1QZXJtaXNzaW9uc1BpbGUtYWRkRnJpZW5kIHsNCiAgICAgIGJh Y2tncm91bmQtY29sb3I6ICMwMDc4ZDQ7DQogICAgICBjb2xvcjogI2ZmZmZmZjsNCiAgICAg IGhlaWdodDogMTAwJTsNCiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsNCiAgICAgIHBvc2l0 aW9uOiByZWxhdGl2ZTsNCiAgICAgIGZvbnQtc2l6ZTogMS4wNjI1cmVtOw0KICAgIH0NCg0K ICAgIC5vZC1TaGFyaW5nU2VjdGlvbi1QZXJtaXNzaW9uc1BpbGUtbnVtYmVyVGV4dCB7DQog ICAgICBmb250LXNpemU6IDAuNjI1cmVtOw0KICAgICAgcGFkZGluZy10b3A6IDFyZW07DQog ICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7DQogICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsN CiAgICAgIGNvbG9yOiAjMDAwMDAwOw0KICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDsNCiAg ICB9DQoNCiAgICAub2QtU2hhcmluZ1NlY3Rpb24tUGVybWlzc2lvbnNQaWxlLXBlcnNvbmFC b3JkZXIgew0KICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsNCiAgICB9DQoNCiAgICAu b2QtU2hhcmluZ1NlY3Rpb24tUGVybWlzc2lvbnNQaWxlLXBlcnNvbmFCb3JkZXI6Zm9jdXMg ew0KICAgICAgb3V0bGluZTogMC4wNjI1cmVtIHNvbGlkICM2MTYxNjE7DQogICAgfQ0KDQog ICAgLm9kLVNoYXJpbmdTZWN0aW9uLVBlcm1pc3Npb25zUGlsZS1wZXJzb25hQm9yZGVyIC5t cy1JY29uIHsNCiAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW07DQogICAgfQ0KDQogICAgLm9k LVNoYXJpbmdTZWN0aW9uLVBlcm1pc3Npb25zUGlsZS1wZXJzb25hSWNvbiB7DQogICAgICBw b3NpdGlvbjogcmVsYXRpdmU7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWJlYmViOw0K ICAgICAgaGVpZ2h0OiAxMDAlOw0KICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7DQogICAg ICBjb2xvcjogIzE0MTQxNDsNCiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsNCiAgICB9DQoN CiAgICAub2QtU2hhcmluZ1NlY3Rpb24tUGVybWlzc2lvbnNQaWxlLXBlcnNvbmFJY29uLm9k LVNoYXJpbmdTZWN0aW9uLVBlcm1pc3Npb25zUGlsZS1wZXJzb25hSWNvbi0tbWFueSAubXMt SWNvbiB7DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgICB0b3A6IDAuMjVyZW07 DQogICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7DQogICAgICBjb2xvcjogIzE0 MTQxNDsNCiAgICAgIGZvbnQtc2l6ZTogMC43NXJlbTsNCiAgICAgIGxpbmUtaGVpZ2h0OiBu b3JtYWw7DQogICAgfQ0KDQogICAgW2Rpcj0ibHRyIl0gLm9kLVNoYXJpbmdTZWN0aW9uLVBl cm1pc3Npb25zUGlsZS1wZXJzb25hSWNvbi5vZC1TaGFyaW5nU2VjdGlvbi1QZXJtaXNzaW9u c1BpbGUtcGVyc29uYUljb24tLW1hbnkgLm1zLUljb24gew0KICAgICAgbGVmdDogNTAlOw0K ICAgIH0NCg0KICAgIFtkaXI9InJ0bCJdIC5vZC1TaGFyaW5nU2VjdGlvbi1QZXJtaXNzaW9u c1BpbGUtcGVyc29uYUljb24ub2QtU2hhcmluZ1NlY3Rpb24tUGVybWlzc2lvbnNQaWxlLXBl cnNvbmFJY29uLS1tYW55IC5tcy1JY29uIHsNCiAgICAgIHJpZ2h0OiA1MCU7DQogICAgfQ0K DQogICAgLm9kLVNoYXJpbmdTZWN0aW9uLVBlcm1pc3Npb25zUGlsZS1wZXJzb25hTW9yZSB7 DQogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAj ZWJlYmViOw0KICAgICAgaGVpZ2h0OiAxMDAlOw0KICAgIH0NCg0KICAgIC5vZC1TaGFyaW5n U2VjdGlvbi1QZXJtaXNzaW9uc1BpbGUtbW9yZU51bWJlciB7DQogICAgICBwb3NpdGlvbjog YWJzb2x1dGU7DQogICAgICBmb250LXNpemU6IDAuNjI1cmVtOw0KICAgICAgdG9wOiA1MCU7 DQogICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsNCiAgICAgIGNvbG9y OiAjMDAwMDAwOw0KICAgIH0NCg0KICAgIFtkaXI9Imx0ciJdIC5vZC1TaGFyaW5nU2VjdGlv bi1QZXJtaXNzaW9uc1BpbGUtbW9yZU51bWJlciB7DQogICAgICBsZWZ0OiA1MCU7DQogICAg fQ0KDQogICAgW2Rpcj0icnRsIl0gLm9kLVNoYXJpbmdTZWN0aW9uLVBlcm1pc3Npb25zUGls ZS1tb3JlTnVtYmVyIHsNCiAgICAgIHJpZ2h0OiA1MCU7DQogICAgfQ0KDQogICAgLm9kLVNo YXJpbmdTZWN0aW9uLVBlcm1pc3Npb25zUGlsZS1kZXNjcmlwdGlvbiB7DQogICAgICBtYXJn aW4tYm90dG9tOiAwLjI1cmVtOw0KICAgICAgcGFkZGluZzogMC4xMjVyZW07DQogICAgfQ0K DQogICAgLm9kLVNoYXJpbmdTZWN0aW9uLVBlcm1pc3Npb25zUGlsZS1kZXNjcmlwdGlvbiAu bXMtSWNvbiB7DQogICAgICBmb250LXNpemU6IDAuNzVyZW07DQogICAgICBjb2xvcjogIzYx NjE2MTsNCiAgICB9DQoNCiAgICAub2QtU2hhcmluZ1NlY3Rpb24tUGVybWlzc2lvbnNQaWxl LWRlc2NyaXB0aW9uVGV4dCB7DQogICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7DQogICAg ICBmb250LXNpemU6IDAuNzVyZW07DQogICAgICBjb2xvcjogIzYxNjE2MTsNCiAgICAgIHZl cnRpY2FsLWFsaWduOiB0b3A7DQogICAgICBwYWRkaW5nOiAwLjE4NzVyZW07DQogICAgfQ0K DQogICAgLm9kLVBlcnNvbmEgLm9kLVBlcnNvbmEtLXhzIHsNCiAgICAgIGRpc3BsYXk6IGlu bGluZS1ibG9jazsNCiAgICB9DQoNCiAgICAub2QtU2hhcmluZ1NlY3Rpb24tUGVybWlzc2lv bnNQaWxlLXBlcnNvbmFzIC5vZC1QZXJzb25hIC5vZC1QZXJzb25hLWRldGFpbHMgew0KICAg ICAgZGlzcGxheTogbm9uZTsNCiAgICB9DQoNCiAgICAub2QtUGFuZWwtYnV0dG9uLS1jbG9z ZSAubXMtSWNvbi0tQ2FuY2VsIHsNCiAgICAgIGZvbnQtc2l6ZTogMXJlbTsNCiAgICB9DQoN CiAgICAub2QtU2hvd1Blcm1pc3Npb25zLWNvbW1hbmRCYXIgew0KICAgICAgb3V0bGluZTog MDsNCiAgICAgIG1hcmdpbjogMDsNCiAgICAgIGJvcmRlcjogMDsNCiAgICAgIHRvcDogMDsN CiAgICAgIHdpZHRoOiAxMDAlOw0KICAgICAgcGFkZGluZzogMDsNCiAgICAgIGJhY2tncm91 bmQtY29sb3I6ICNmMGYwZjA7DQogICAgfQ0KDQogICAgLm9kLVNob3dQZXJtaXNzaW9ucy1j b21tYW5kQmFyIC5tcy1Db21tYW5kQmFyIHsNCiAgICAgIGFuaW1hdGlvbi1uYW1lOiBtcy1m YWRlSW4sIG1zLXNsaWRlRG93bkluMjA7DQogICAgICBhbmltYXRpb24tZHVyYXRpb246IDM2 N21zOw0KICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAu MSwgMC45LCAwLjIsIDEpOw0KICAgICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDsNCiAg ICAgIGFuaW1hdGlvbi1kZWxheTogMC41czsNCiAgICAgIHBhZGRpbmc6IDA7DQogICAgfQ0K DQogICAgQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHsNCiAgICAg IC5vZC1TaG93UGVybWlzc2lvbnMtY29tbWFuZEJhciAubXMtQ29tbWFuZEJhciB7DQogICAg ICAgIGFuaW1hdGlvbjogbm9uZTsNCiAgICAgIH0NCiAgICB9DQoNCiAgICAub2QtU2hvd1Bl cm1pc3Npb25zLWNvbW1hbmRCYXIgLm1zLUNvbW1hbmRCYXIgLm1zLU92ZXJmbG93U2V0LWl0 ZW06Zmlyc3QtY2hpbGQgYnV0dG9uIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDc4 ZDQ7DQogICAgICBib3gtc2hhZG93OiBpbnNldCAwIDAuMDYyNXJlbSAwIDAgIzJiODhkODsN CiAgICAgIGNvbG9yOiAjZmZmZmZmOw0KICAgIH0NCg0KICAgIC5vZC1TaG93UGVybWlzc2lv bnMtY29tbWFuZEJhciAubXMtQ29tbWFuZEJhciAubXMtT3ZlcmZsb3dTZXQtaXRlbTpmaXJz dC1jaGlsZCBidXR0b24gaSB7DQogICAgICBjb2xvcjogI2ZmZmZmZjsNCiAgICB9DQoNCiAg ICAub2QtU2hvd1Blcm1pc3Npb25zLWNvbW1hbmRCYXIgLm1zLUNvbW1hbmRCYXIgLm1zLU92 ZXJmbG93U2V0LWl0ZW06Zmlyc3QtY2hpbGQgYnV0dG9uOmhvdmVyIHsNCiAgICAgIGJhY2tn cm91bmQtY29sb3I6ICMwMDVhOWU7DQogICAgICBib3gtc2hhZG93OiBub25lOw0KICAgIH0N Cg0KICAgIC5vZC1TaG93UGVybWlzc2lvbnMtY29tbWFuZEJhciAubXMtQ29tbWFuZEJhciAu bXMtT3ZlcmZsb3dTZXQtaXRlbTpmaXJzdC1jaGlsZCBidXR0b246Zm9jdXMgew0KICAgICAg YmFja2dyb3VuZC1jb2xvcjogIzAwNWE5ZTsNCiAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDAu MDYyNXJlbSAjZmZmZmZmIGluc2V0Ow0KICAgIH0NCg0KICAgIC5vZC1TaG93UGVybWlzc2lv bnMtY29tbWFuZEJhciAuQ29tbWFuZEJhciB7DQogICAgICBhbmltYXRpb24tbmFtZTogbXMt ZmFkZUluLCBtcy1zbGlkZURvd25JbjIwOw0KICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAz NjdtczsNCiAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigw LjEsIDAuOSwgMC4yLCAxKTsNCiAgICAgIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7DQog ICAgICBhbmltYXRpb24tZGVsYXk6IDAuNXM7DQogICAgfQ0KDQogICAgQG1lZGlhIChwcmVm ZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHsNCiAgICAgIC5vZC1TaG93UGVybWlzc2lv bnMtY29tbWFuZEJhciAuQ29tbWFuZEJhciB7DQogICAgICAgIGFuaW1hdGlvbjogbm9uZTsN CiAgICAgIH0NCiAgICB9DQoNCiAgICAub2QtU2hvd1Blcm1pc3Npb25zLWNvbW1hbmRCYXIg LkNvbW1hbmRCYXIgLkNvbW1hbmRCYXJJdGVtOmhvdmVyIHsNCiAgICAgIGJhY2tncm91bmQt Y29sb3I6ICNlYmViZWI7DQogICAgfQ0KDQogICAgLm9kLVNob3dQZXJtaXNzaW9ucy1jb21t YW5kQmFyIC5Db21tYW5kQmFyIC5Db21tYW5kQmFySXRlbTpmaXJzdC1jaGlsZCB7DQogICAg ICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3OGQ0Ow0KICAgICAgYm94LXNoYWRvdzogaW5zZXQg MCAwLjA2MjVyZW0gMCAwICMyYjg4ZDg7DQogICAgfQ0KDQogICAgLm9kLVNob3dQZXJtaXNz aW9ucy1jb21tYW5kQmFyIC5Db21tYW5kQmFyIC5Db21tYW5kQmFySXRlbTpmaXJzdC1jaGls ZCAuQ29tbWFuZEJhckl0ZW0taWNvbiB7DQogICAgICBjb2xvcjogI2ZmZmZmZjsNCiAgICB9 DQoNCiAgICAub2QtU2hvd1Blcm1pc3Npb25zLWNvbW1hbmRCYXIgLkNvbW1hbmRCYXIgLkNv bW1hbmRCYXJJdGVtOmZpcnN0LWNoaWxkIC5Db21tYW5kQmFySXRlbS1pY29uIC5vZC1JY29u R2x5cGggew0KICAgICAgY29sb3I6ICNmZmZmZmY7DQogICAgfQ0KDQogICAgLm9kLVNob3dQ ZXJtaXNzaW9ucy1jb21tYW5kQmFyIC5Db21tYW5kQmFyIC5Db21tYW5kQmFySXRlbTpmaXJz dC1jaGlsZCAuQ29tbWFuZEJhckl0ZW0tY29tbWFuZFRleHQgew0KICAgICAgY29sb3I6ICNm ZmZmZmY7DQogICAgfQ0KDQogICAgLm9kLVNob3dQZXJtaXNzaW9ucy1jb21tYW5kQmFyIC5D b21tYW5kQmFyIC5Db21tYW5kQmFySXRlbTpmaXJzdC1jaGlsZCAuQ29tbWFuZEJhckl0ZW0t bGlua1dyYXBwZXIgew0KICAgICAgcGFkZGluZy1sZWZ0OiAwLjc1cmVtOw0KICAgICAgcGFk ZGluZy1yaWdodDogMC43NXJlbTsNCiAgICB9DQoNCiAgICAub2QtU2hvd1Blcm1pc3Npb25z LWNvbW1hbmRCYXIgLkNvbW1hbmRCYXIgLkNvbW1hbmRCYXJJdGVtOmZpcnN0LWNoaWxkOmhv dmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDVhOWU7DQogICAgICBib3gtc2hh ZG93OiBub25lOw0KICAgIH0NCg0KICAgIC5vZC1TaG93UGVybWlzc2lvbnMtY29tbWFuZEJh ciAuQ29tbWFuZEJhciAuQ29tbWFuZEJhckl0ZW06Zmlyc3QtY2hpbGQ6aG92ZXIgLkNvbW1h bmRCYXJJdGVtLWljb24gew0KICAgICAgY29sb3I6ICNmZmZmZmY7DQogICAgfQ0KDQogICAg Lm9kLVNob3dQZXJtaXNzaW9ucy1jb21tYW5kQmFyIC5Db21tYW5kQmFyIC5Db21tYW5kQmFy SXRlbTpmaXJzdC1jaGlsZDpob3ZlciAuQ29tbWFuZEJhckl0ZW0tY29tbWFuZFRleHQgew0K ICAgICAgY29sb3I6ICNmZmZmZmY7DQogICAgfQ0KDQogICAgLm9kLVNob3dQZXJtaXNzaW9u cy1jb21tYW5kQmFyIC5Db21tYW5kQmFyIC5Db21tYW5kQmFySXRlbTpmaXJzdC1jaGlsZDpm b2N1cyB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA1YTllOw0KICAgIH0NCg0KICAg IC5vZC1TaG93UGVybWlzc2lvbnMtY29tbWFuZEJhciAuQ29tbWFuZEJhciAuQ29tbWFuZEJh ckl0ZW06Zmlyc3QtY2hpbGQ6Zm9jdXMgLkNvbW1hbmRCYXJJdGVtLWxpbms6YmVmb3JlIHsN CiAgICAgIGJvcmRlcjogMC4wNjI1cmVtIHNvbGlkICMwMDQ1Nzg7DQogICAgICBtYXJnaW46 IDAuMTI1cmVtIC0wLjVyZW07DQogICAgfQ0KICA8L3N0eWxlPg0KICA8c3R5bGUgZGF0YS1s b2FkLXRoZW1lZC1zdHlsZXM9InRydWUiPg0KICAgIC5vZC1TdWdnZXN0ZWRGaWxlcy10aXRs ZUJhciB7DQogICAgICBwYWRkaW5nLWJvdHRvbTogOHB4Ow0KICAgIH0NCg0KICAgIC5vZC1T dWdnZXN0ZWRGaWxlcy1oZWFkIHsNCiAgICAgIGZvbnQtc2l6ZTogMjBweDsNCiAgICAgIGZv bnQtd2VpZ2h0OiA2MDA7DQogICAgfQ0KDQogICAgLm9kLVN1Z2dlc3RlZEZpbGVzLWRlc2Ny aXB0aW9uIHsNCiAgICAgIHBhZGRpbmc6IDRweCAwIDEycHg7DQogICAgICBmb250LXNpemU6 IDE0cHg7DQogICAgICBjb2xvcjogIzhhOGE4YTsNCiAgICB9DQogIDwvc3R5bGU+DQogIDxz dHlsZSBkYXRhLWxvYWQtdGhlbWVkLXN0eWxlcz0idHJ1ZSI+DQogICAgaHRtbFtkaXI9Imx0 ciJdIC5vZC1zaGFyZXN1cnZleS1wcmV2aWV3IHsNCiAgICAgIGZsb2F0OiBsZWZ0Ow0KICAg IH0NCg0KICAgIGh0bWxbZGlyPSJydGwiXSAub2Qtc2hhcmVzdXJ2ZXktcHJldmlldyB7DQog ICAgICBmbG9hdDogcmlnaHQ7DQogICAgfQ0KDQogICAgW2Rpcj0ibHRyIl0gLm9kLXNoYXJl c3VydmV5LXByZXZpZXcgew0KICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4Ow0KICAgIH0NCg0K ICAgIFtkaXI9InJ0bCJdIC5vZC1zaGFyZXN1cnZleS1wcmV2aWV3IHsNCiAgICAgIG1hcmdp bi1sZWZ0OiAxMHB4Ow0KICAgIH0NCg0KICAgIC5vZC1zaGFyZXN1cnZleS1kZXRhaWxzIHsN CiAgICAgIG1heC13aWR0aDogMzUwcHg7DQogICAgfQ0KDQogICAgaHRtbFtkaXI9Imx0ciJd IC5vZC1zaGFyZXN1cnZleS1kZXRhaWxzIHsNCiAgICAgIGZsb2F0OiBsZWZ0Ow0KICAgIH0N Cg0KICAgIGh0bWxbZGlyPSJydGwiXSAub2Qtc2hhcmVzdXJ2ZXktZGV0YWlscyB7DQogICAg ICBmbG9hdDogcmlnaHQ7DQogICAgfQ0KDQogICAgLm9kLXNoYXJlc3VydmV5LWNyZWF0ZSB7 DQogICAgICBtYXJnaW4tdG9wOiAxMHB4Ow0KICAgIH0NCg0KICAgIC5vZC1zaGFyZXN1cnZl eS10ZXh0Ym94IHsNCiAgICAgIHBhZGRpbmc6IDFweCA1cHggMnB4IDEwcHg7DQogICAgICBt YXJnaW46IDEwcHggMDsNCiAgICAgIHdpZHRoOiAxMDAlOw0KICAgICAgYm94LXNpemluZzog Ym9yZGVyLWJveDsNCiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOw0KICAgIH0NCg0K ICAgIGh0bWxbZGlyPSJydGwiXSAub2Qtc2hhcmVzdXJ2ZXktdGV4dGJveCB7DQogICAgICBw YWRkaW5nOiAxcHggMTBweCAycHggNXB4Ow0KICAgIH0NCg0KICAgIC5vZC1zaGFyZXN1cnZl eS1lcnJvciB7DQogICAgICBjb2xvcjogI2E0MjYyYzsNCiAgICB9DQogIDwvc3R5bGU+DQog IDxzdHlsZSBkYXRhLWxvYWQtdGhlbWVkLXN0eWxlcz0idHJ1ZSI+DQogICAgLm9kLUxvYWRp bmdTcGlubmVyIHsNCiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7DQogICAgfQ0KDQogICAg Lm9kLUxvYWRpbmdTcGlubmVyLWxvYWRpbmdUZXh0IHsNCiAgICAgIHZlcnRpY2FsLWFsaWdu OiB0b3A7DQogICAgfQ0KDQogICAgLm9kLUxvYWRpbmdTcGlubmVyLWxvYWRpbmdHaWYgew0K ICAgICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTsNCiAgICB9DQogIDwvc3R5bGU+DQogIDxz dHlsZSBkYXRhLWxvYWQtdGhlbWVkLXN0eWxlcz0idHJ1ZSI+DQogICAgLm9kLURyYWdBbmRE cm9wSGludC1ib3ggew0KICAgICAgZm9udC1zaXplOiAxNHB4Ow0KICAgICAgZm9udC13ZWln aHQ6IDQwMDsNCiAgICAgIGNvbG9yOiAjNjE2MTYxOw0KICAgICAgdGV4dC1hbGlnbjogY2Vu dGVyOw0KICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsNCiAgICB9DQoNCiAgICAub2Qt RHJhZ0FuZERyb3BIaW50LWZpbGUgew0KICAgICAgaGVpZ2h0OiA4MCU7DQogICAgICB0b3A6 IDUwJTsNCiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOw0KICAgICAg cG9zaXRpb246IGFic29sdXRlOw0KICAgICAgd2lkdGg6IDEwMCU7DQogICAgfQ0KDQogICAg aHRtbFtkaXI9Imx0ciJdIC5vZC1EcmFnQW5kRHJvcEhpbnQtZmlsZSB7DQogICAgICBsZWZ0 OiA1MCU7DQogICAgfQ0KDQogICAgaHRtbFtkaXI9InJ0bCJdIC5vZC1EcmFnQW5kRHJvcEhp bnQtZmlsZSB7DQogICAgICByaWdodDogNTAlOw0KICAgIH0NCg0KICAgIC5vZC1EcmFnQW5k RHJvcEhpbnQtZmlsZUNvbnRhaW5lciB7DQogICAgICB3aWR0aDogMTAwJTsNCiAgICAgIGhl aWdodDogNzQlOw0KICAgICAgcG9zaXRpb246IHJlbGF0aXZlOw0KICAgIH0NCg0KICAgIC5v ZC1EcmFnQW5kRHJvcEhpbnQtcm9ib3Qgew0KICAgICAgaGVpZ2h0OiAxNzNweDsNCiAgICAg IHdpZHRoOiAxMDAlOw0KICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsNCiAg ICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7DQogICAgICBiYWNrZ3Jv dW5kLXNpemU6IGF1dG8gMTAwJTsNCiAgICAgIG1hcmdpbi10b3A6IDEycHg7DQogICAgfQ0K DQogICAgLm9kLURyYWdBbmREcm9wSGludC1ib3gtLXJvYm90IHsNCiAgICAgIGJvcmRlcjog MnB4IGRhc2hlZCAjZWJlYmViOw0KICAgIH0NCg0KICAgIC5vZC1EcmFnQW5kRHJvcEhpbnQt cm9ib3QtLWdyaWQgew0KICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOw0KICAgICAgbWFy Z2luOiAwOw0KICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTI1cHg7DQogICAgICBiYWNr Z3JvdW5kLXNpemU6IGF1dG8gMTAwJTsNCiAgICAgIHdpZHRoOiA0NSU7DQogICAgICB2ZXJ0 aWNhbC1hbGlnbjogdG9wOw0KICAgIH0NCg0KICAgIC5vZC1EcmFnQW5kRHJvcEhpbnQtLWdy aWQgew0KICAgICAgaGVpZ2h0OiAxMDAlOw0KICAgICAgd2lkdGg6IDEwMCU7DQogICAgICBw b3NpdGlvbjogcmVsYXRpdmU7DQogICAgfQ0KDQogICAgLm9kLURyYWdBbmREcm9wSGludC1i b3gtLWdyaWQgew0KICAgICAgaGVpZ2h0OiAxMDAlOw0KICAgICAgd2lkdGg6IDU0JTsNCiAg ICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsNCiAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7 DQogICAgfQ0KDQogICAgLm9kLURyYWdBbmREcm9wSGludC10ZXh0LS1ncmlkIHsNCiAgICAg IHBhZGRpbmc6IDRweCA1cHg7DQogICAgICBmb250LXNpemU6IDE1cHg7DQogICAgICBvdmVy ZmxvdzogaGlkZGVuOw0KICAgICAgd2lkdGg6IDEwMCU7DQogICAgICBkaXNwbGF5OiBpbmxp bmUtYmxvY2s7DQogICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94Ow0KICAgICAgdGV4dC1v dmVyZmxvdzogZWxsaXBzaXM7DQogICAgICBoZWlnaHQ6IDQwJTsNCiAgICB9DQoNCiAgICAu b2QtRHJhZ0FuZERyb3BIaW50LmlzLWFuaW1hdGluZyB7DQogICAgICBvcGFjaXR5OiAwOw0K ICAgIH0NCg0KICAgIC5vZC1EcmFnQW5kRHJvcEhpbnQtcm9ib3RBbmltYXRpb24ub2QtRHJh Z0FuZERyb3BIaW50LXJvYm90LS1ncmlkIHsNCiAgICAgIGJhY2tncm91bmQtc2l6ZTogYXV0 byAxMDYlOw0KICAgIH0NCiAgPC9zdHlsZT4NCiAgPHN0eWxlIGRhdGEtbG9hZC10aGVtZWQt c3R5bGVzPSJ0cnVlIj4NCiAgICAub2QtSWNvbkdseXBoLm1zLUljb24gew0KICAgICAgZGlz cGxheTogbm9uZTsNCiAgICAgIGZvbnQtc2l6ZTogMTZweDsNCiAgICAgIHRleHQtYWxpZ246 IGNlbnRlcjsNCiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7DQogICAgICBwb3NpdGlvbjog cmVsYXRpdmU7DQogICAgfQ0KDQogICAgLm9kLUljb25HbHlwaC5tcy1JY29uLm9kLUljb25H bHlwaC0tdmlzaWJsZSB7DQogICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7DQogICAgfQ0K DQogICAgLm9kLUljb25HbHlwaC5tcy1JY29uLm1zLUljb24tLUFkZCB7DQogICAgICBmb250 LXNpemU6IDE1cHg7DQogICAgfQ0KDQogICAgLm9kLUljb25HbHlwaC1iYWRnZS5tcy1JY29u IHsNCiAgICAgIGRpc3BsYXk6IG5vbmU7DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQog ICAgICB0b3A6IC0wLjJlbTsNCiAgICAgIGZvbnQtc2l6ZTogMC43ZW07DQogICAgICB3aWR0 aDogMWVtOw0KICAgICAgaGVpZ2h0OiAxZW07DQogICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7 DQogICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOw0KICAgIH0NCg0KICAgIFtkaXI9Imx0ciJd IC5vZC1JY29uR2x5cGgtYmFkZ2UubXMtSWNvbiB7DQogICAgICByaWdodDogLTAuMmVtOw0K ICAgIH0NCg0KICAgIFtkaXI9InJ0bCJdIC5vZC1JY29uR2x5cGgtYmFkZ2UubXMtSWNvbiB7 DQogICAgICBsZWZ0OiAtMC4yZW07DQogICAgfQ0KDQogICAgLm9kLUljb25HbHlwaC1iYWRn ZS5tcy1JY29uLm1zLUljb24tLVN0YXR1c0Vycm9yRnVsbCB7DQogICAgICBjb2xvcjogI2E0 MjYyYzsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7DQogICAgICBib3JkZXIt cmFkaXVzOiA1MCU7DQogICAgICBtYXJnaW4tdG9wOiAwOw0KICAgICAgZm9udC1zaXplOiAx MnB4Ow0KICAgIH0NCg0KICAgIC5vZC1JY29uR2x5cGgtYmFkZ2UubXMtSWNvbi5tcy1JY29u LS1TdGF0dXNFcnJvckZ1bGw6YmVmb3JlIHsNCiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsN CiAgICAgIHRvcDogLTJweDsNCiAgICB9DQoNCiAgICAub2QtSWNvbkdseXBoLm1zLUljb24u b2QtSWNvbkdseXBoLS1iYWRnZWQgLm9kLUljb25HbHlwaC1iYWRnZS5tcy1JY29uIHsNCiAg ICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsNCiAgICB9DQogIDwvc3R5bGU+DQogIDxzdHls ZSBkYXRhLWxvYWQtdGhlbWVkLXN0eWxlcz0idHJ1ZSI+DQogICAgLm9kLVVubG9ja0NvbmZp cm1hdGlvbi1kaWFsb2cub2QtRGlhbG9nLW1haW4gew0KICAgICAgd2lkdGg6IHVuc2V0Ow0K ICAgIH0NCg0KICAgIC5vZC1VbmxvY2tDb25maXJtYXRpb24tZGlhbG9nIC5vZC1EaWFsb2ct YWN0aW9uc1JpZ2h0IHsNCiAgICAgIHdpZHRoOiBtYXgtY29udGVudDsNCiAgICB9DQoNCiAg ICAub2QtVW5sb2NrQ29uZmlybWF0aW9uLWRpYWxvZyAub2QtRGlhbG9nLWlubmVyIHsNCiAg ICAgIHdpZHRoOiBtaW4tY29udGVudDsNCiAgICB9DQoNCiAgICAub2QtVW5sb2NrQ29uZmly bWF0aW9uLWRpYWxvZyAub2QtRGlhbG9nLWNvbnRlbnQgew0KICAgICAgbWluLXdpZHRoOiAz MjBweDsNCiAgICB9DQoNCiAgICAub2QtVW5sb2NrQ29uZmlybWF0aW9uLWRpYWxvZyAub2Qt RGlhbG9nLWFjdGlvbnNMb2FkaW5nIHsNCiAgICAgIGRpc3BsYXk6IG5vbmU7DQogICAgfQ0K DQogICAgLm9kLVVubG9ja0NvbmZpcm1hdGlvbi1kaWFsb2dDb250ZW50IHsNCiAgICAgIHBh ZGRpbmctdG9wOiAwOw0KICAgIH0NCg0KICAgIC5vZC1VbmxvY2tDb25maXJtYXRpb24tZGlh bG9nQ29udGVudCAub2QtdW5sb2NrQ29uZmlybWF0aW9uLW1lc3NhZ2Ugew0KICAgICAgZm9u dC1zaXplOiAxNHB4Ow0KICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsNCiAgICB9DQoNCiAg ICAub2QtVW5sb2NrQ29uZmlybWF0aW9uLWRpYWxvZ0NvbnRlbnQgLm9kLXVubG9ja0NvbmZp cm1hdGlvbi10ZXh0SW5wdXRMYWJlbCB7DQogICAgICBmb250LXNpemU6IDE0cHg7DQogICAg ICBkaXNwbGF5OiBibG9jazsNCiAgICAgIG1hcmdpbi1ib3R0b206IDRweDsNCiAgICB9DQoN CiAgICAub2QtVW5sb2NrQ29uZmlybWF0aW9uLWRpYWxvZ0NvbnRlbnQgLm9kLXVubG9ja0Nv bmZpcm1hdGlvbi10ZXh0SW5wdXRMYWJlbCBwIHsNCiAgICAgIG1hcmdpbjogMDsNCiAgICB9 DQoNCiAgICAub2QtVW5sb2NrQ29uZmlybWF0aW9uLWRpYWxvZ0NvbnRlbnQgLm9kLVVubG9j a0NvbmZpcm1hdGlvbi1zdGF0dXMgew0KICAgICAgbWFyZ2luLXRvcDogOHB4Ow0KICAgICAg Zm9udC1zaXplOiAxMnB4Ow0KICAgIH0NCg0KICAgIC5vZC1VbmxvY2tDb25maXJtYXRpb24t ZGlhbG9nQ29udGVudCAub2QtVW5sb2NrQ29uZmlybWF0aW9uLXN0YXR1cyAub2QtVW5sb2Nr Q29uZmlybWF0aW9uLWVycm9yIHsNCiAgICAgIGNvbG9yOiAjYTQyNjJjOw0KICAgIH0NCiAg PC9zdHlsZT4NCiAgPHN0eWxlIGRhdGEtbG9hZC10aGVtZWQtc3R5bGVzPSJ0cnVlIj4NCiAg ICAub2QtQXBwVXBzZWxsIHsNCiAgICAgIG1hcmdpbjogMjBweDsNCiAgICAgIHBhZGRpbmc6 IDIwcHggMTJweCA4cHggMTJweDsNCiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMwMDc4ZDQ7 DQogICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7DQogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7 DQogICAgfQ0KDQogICAgLm9kLUFwcFVwc2VsbCAubXMtSWNvbi5tcy1JY29uLS1DYW5jZWwg ew0KICAgICAgaGVpZ2h0OiAyOHB4Ow0KICAgICAgd2lkdGg6IDI4cHg7DQogICAgICBsaW5l LWhlaWdodDogMjhweDsNCiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgIHRvcDog MDsNCiAgICAgIGJvcmRlcjogMDsNCiAgICAgIGJhY2tncm91bmQ6IDAgMDsNCiAgICAgIGN1 cnNvcjogcG9pbnRlcjsNCiAgICB9DQoNCiAgICBbZGlyPSJsdHIiXSAub2QtQXBwVXBzZWxs IC5tcy1JY29uLm1zLUljb24tLUNhbmNlbCB7DQogICAgICByaWdodDogMDsNCiAgICB9DQoN CiAgICBbZGlyPSJydGwiXSAub2QtQXBwVXBzZWxsIC5tcy1JY29uLm1zLUljb24tLUNhbmNl bCB7DQogICAgICBsZWZ0OiAwOw0KICAgIH0NCg0KICAgIC5vZC1BcHBVcHNlbGwgLm9kLUJ1 dHRvbiB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3OGQ0Ow0KICAgICAgY29sb3I6 ICNmZmZmZmY7DQogICAgfQ0KDQogICAgLmxnIC5vZC1BcHBVcHNlbGwsDQogICAgLm1kIC5v ZC1BcHBVcHNlbGwsDQogICAgLnNtIC5vZC1BcHBVcHNlbGwgew0KICAgICAgZGlzcGxheTog bm9uZTsNCiAgICB9DQoNCiAgICAub2QtQXBwVXBzZWxsLU1lc3NhZ2Ugew0KICAgICAgdGV4 dC1hbGlnbjogY2VudGVyOw0KICAgICAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lOw0K ICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsNCiAgICAgIC1tcy11c2VyLXNlbGVj dDogbm9uZTsNCiAgICAgIHVzZXItc2VsZWN0OiBub25lOw0KICAgIH0NCg0KICAgIC5vZC1B cHBVcHNlbGwtSW1hZ2Ugew0KICAgICAgbWFyZ2luOiA4cHggMDsNCiAgICB9DQogIDwvc3R5 bGU+DQogIDxzdHlsZSBkYXRhLWxvYWQtdGhlbWVkLXN0eWxlcz0idHJ1ZSI+DQogICAgQGtl eWZyYW1lcyBjb21tYW5kQmFyQm94U2hhZG93QW5pbWF0aW9uIHsNCiAgICAgIDAlIHsNCiAg ICAgICAgYm94LXNoYWRvdzogbm9uZTsNCiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJh bnNwYXJlbnQ7DQogICAgICB9DQoNCiAgICAgIDEwMCUgew0KICAgICAgICBiYWNrZ3JvdW5k LWNvbG9yOiAjZmZmZmZmOw0KICAgICAgICBib3gtc2hhZG93OiAwIDMuMnB4IDcuMnB4IDAg cmdiYSgwLCAwLCAwLCAwLjEzMiksDQogICAgICAgICAgMCAwLjZweCAxLjhweCAwIHJnYmEo MCwgMCwgMCwgMC4xMDgpOw0KICAgICAgfQ0KICAgIH0NCg0KICAgIEBrZXlmcmFtZXMgY29t bWFuZEJhckRpdmlkZXJBbmltYXRpb24gew0KICAgICAgMCUgew0KICAgICAgICBvcGFjaXR5 OiAxOw0KICAgICAgfQ0KDQogICAgICAxMDAlIHsNCiAgICAgICAgb3BhY2l0eTogMDsNCiAg ICAgIH0NCiAgICB9DQoNCiAgICAuT25lVXAgew0KICAgICAgcG9zaXRpb246IGFic29sdXRl Ow0KICAgICAgbGVmdDogMDsNCiAgICAgIHJpZ2h0OiAwOw0KICAgICAgdG9wOiAwOw0KICAg ICAgYm90dG9tOiAwOw0KICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsNCiAgICAgIG91dGxpbmU6 IDA7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhOw0KICAgIH0NCg0KICAgIC5P bmVVcC5PbmVVcC0tZGFya0JhY2tncm91bmQgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjog IzFiMWExOTsNCiAgICB9DQoNCiAgICAuT25lVXAtZGV0YWlsc0JhciB7DQogICAgICB2aXNp YmlsaXR5OiBoaWRkZW47DQogICAgICBvcGFjaXR5OiAwOw0KICAgIH0NCg0KICAgIC5PbmVV cC1kZXRhaWxzQmFyIC5Db21tYW5kQmFySXRlbSB7DQogICAgICBmbGV4OiAwIDAgYXV0bzsN CiAgICB9DQoNCiAgICBodG1sW2Rpcj0ibHRyIl0gLk9uZVVwLWRldGFpbHNCYXIgLkNvbW1h bmRCYXJJdGVtIHsNCiAgICAgIG1hcmdpbi1yaWdodDogMDsNCiAgICB9DQoNCiAgICBodG1s W2Rpcj0icnRsIl0gLk9uZVVwLWRldGFpbHNCYXIgLkNvbW1hbmRCYXJJdGVtIHsNCiAgICAg IG1hcmdpbi1sZWZ0OiAwOw0KICAgIH0NCg0KICAgIC5PbmVVcC1kZXRhaWxzQmFyIC5Db21t YW5kQmFySXRlbSAuQ29tbWFuZEJhckl0ZW0taWNvbiB7DQogICAgICBjb2xvcjogIzI0MjQy NDsNCiAgICB9DQoNCiAgICAuT25lVXAtZGV0YWlsc0JhciAuQ29tbWFuZEJhckl0ZW0gew0K ICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNTsNCiAgICAgIG9wYWNpdHk6IDAuOTsN CiAgICB9DQoNCiAgICAuT25lVXAtZGV0YWlsc0JhciAuQ29tbWFuZEJhckl0ZW0uaXMtdG9n Z2xlZCwNCiAgICAuT25lVXAtZGV0YWlsc0JhciAuQ29tbWFuZEJhckl0ZW0uaXMtdG9nZ2xl ZDpob3ZlciwNCiAgICAuT25lVXAtZGV0YWlsc0JhciAuQ29tbWFuZEJhckl0ZW06aG92ZXIg ew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2UwZTBlMDsNCiAgICAgIG9wYWNpdHk6IDE7 DQogICAgfQ0KDQogICAgLk9uZVVwLXRvb2xiYXJIb3N0IHsNCiAgICAgIGRpc3BsYXk6IGZs ZXg7DQogICAgICBmbGV4LWZsb3c6IGNvbHVtbi1yZXZlcnNlIG5vd3JhcDsNCiAgICAgIGp1 c3RpZnktY29udGVudDogY2VudGVyOw0KICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAg ICB9DQoNCiAgICAuT25lVXAtdG9vbGJhciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0 cmFuc3BhcmVudDsNCiAgICAgIGNvbG9yOiAjMjQyNDI0Ow0KICAgICAgaGVpZ2h0OiA0NHB4 Ow0KICAgICAgZGlzcGxheTogZmxleDsNCiAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoOw0K ICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7DQogICAgICBmbGV4LWZsb3c6IHJvdyBu b3dyYXA7DQogICAgfQ0KDQogICAgLmxnIC5PbmVVcC10b29sYmFyLA0KICAgIC54bGcgLk9u ZVVwLXRvb2xiYXIsDQogICAgLnh4bGcgLk9uZVVwLXRvb2xiYXIsDQogICAgLnh4eGxnIC5P bmVVcC10b29sYmFyLA0KICAgIC54eHh4bGcgLk9uZVVwLXRvb2xiYXIgew0KICAgICAgaGVp Z2h0OiA0MHB4Ow0KICAgIH0NCg0KICAgIC5PbmVVcC1jb21tYW5kQmFyIHsNCiAgICAgIHBv c2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgIGxlZnQ6IDA7DQogICAgICByaWdodDogMDsNCiAg ICAgIHRvcDogLTQ0cHg7DQogICAgICB6LWluZGV4OiAyOw0KICAgICAgdmlzaWJpbGl0eTog aGlkZGVuOw0KICAgICAgaGVpZ2h0OiA0NHB4Ow0KICAgICAgdHJhbnNpdGlvbjogdmlzaWJp bGl0eSAyNjdtcyBsaW5lYXIsIHRvcCAyNjdtcyBsaW5lYXI7DQogICAgICBiYWNrZ3JvdW5k LWNvbG9yOiAjZmZmZmZmOw0KICAgIH0NCg0KICAgIC5PbmVVcC1jb21tYW5kQmFyIC5Db21t YW5kQmFySXRlbTpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzdjN2M3Ow0K ICAgIH0NCg0KICAgIC5PbmVVcC1jb21tYW5kQmFyIC5Db21tYW5kQmFySXRlbS5vZC1Db21t YW5kLS1Xb3JkIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyYjU3OWE7DQogICAgICBj b2xvcjogI2ZmZmZmZjsNCiAgICB9DQoNCiAgICAuT25lVXAtY29tbWFuZEJhciAuQ29tbWFu ZEJhckl0ZW0ub2QtQ29tbWFuZC0tV29yZCAubXMtSWNvbi0tV29yZExvZ286YmVmb3JlIHsN CiAgICAgIGNvbG9yOiAjZmZmZmZmOw0KICAgIH0NCg0KICAgIC5PbmVVcC1jb21tYW5kQmFy IC5Db21tYW5kQmFySXRlbS5vZC1Db21tYW5kLS1Xb3JkIC5vZC1Db21tYW5kQmFySXRlbS1k b3duIHsNCiAgICAgIGNvbG9yOiAjZmZmZmZmOw0KICAgIH0NCg0KICAgIC5PbmVVcC1jb21t YW5kQmFyIC5Db21tYW5kQmFySXRlbS5vZC1Db21tYW5kLS1FeGNlbCB7DQogICAgICBiYWNr Z3JvdW5kLWNvbG9yOiAjMjE3MzQ2Ow0KICAgICAgY29sb3I6ICNmZmZmZmY7DQogICAgfQ0K DQogICAgLk9uZVVwLWNvbW1hbmRCYXIgLkNvbW1hbmRCYXJJdGVtLm9kLUNvbW1hbmQtLUV4 Y2VsIC5tcy1JY29uLS1FeGNlbExvZ286YmVmb3JlIHsNCiAgICAgIGNvbG9yOiAjZmZmZmZm Ow0KICAgIH0NCg0KICAgIC5PbmVVcC1jb21tYW5kQmFyIC5Db21tYW5kQmFySXRlbS5vZC1D b21tYW5kLS1FeGNlbCAub2QtQ29tbWFuZEJhckl0ZW0tZG93biB7DQogICAgICBjb2xvcjog I2ZmZmZmZjsNCiAgICB9DQoNCiAgICAuT25lVXAtY29tbWFuZEJhciAuQ29tbWFuZEJhckl0 ZW0ub2QtQ29tbWFuZC0tUG93ZXJQb2ludCB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAj ZDI0NzI2Ow0KICAgICAgY29sb3I6ICNmZmZmZmY7DQogICAgfQ0KDQogICAgLk9uZVVwLWNv bW1hbmRCYXIgLkNvbW1hbmRCYXJJdGVtLm9kLUNvbW1hbmQtLVBvd2VyUG9pbnQgLm1zLUlj b24tLVBvd2VyUG9pbnRMb2dvOmJlZm9yZSB7DQogICAgICBjb2xvcjogI2ZmZmZmZjsNCiAg ICB9DQoNCiAgICAuT25lVXAtY29tbWFuZEJhciAuQ29tbWFuZEJhckl0ZW0ub2QtQ29tbWFu ZC0tUG93ZXJQb2ludCAub2QtQ29tbWFuZEJhckl0ZW0tZG93biB7DQogICAgICBjb2xvcjog I2ZmZmZmZjsNCiAgICB9DQoNCiAgICAuT25lVXAtY29tbWFuZEJhciAuQ29tbWFuZEJhckl0 ZW0ub2QtQ29tbWFuZC0tUERGIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNjOTAzMDQ7 DQogICAgICBjb2xvcjogI2ZmZmZmZjsNCiAgICB9DQoNCiAgICAuT25lVXAtY29tbWFuZEJh ciAuQ29tbWFuZEJhckl0ZW0ub2QtQ29tbWFuZC0tUERGIC5tcy1JY29uLS1QREY6YmVmb3Jl IHsNCiAgICAgIGNvbG9yOiAjZmZmZmZmOw0KICAgIH0NCg0KICAgIC5PbmVVcC1jb21tYW5k QmFyIC5Db21tYW5kQmFySXRlbS5vZC1Db21tYW5kLS1QREYgLm9kLUNvbW1hbmRCYXJJdGVt LWRvd24gew0KICAgICAgY29sb3I6ICNmZmZmZmY7DQogICAgfQ0KDQogICAgLk9uZVVwLWNv bW1hbmRCYXIgLkNvbW1hbmRCYXJJdGVtLm9kLUNvbW1hbmQtLVByaW1hcnlCdXR0b24gew0K ICAgICAgY29sb3I6ICNmZmZmZmY7DQogICAgfQ0KDQogICAgLk9uZVVwLWNvbW1hbmRCYXIg LkNvbW1hbmRCYXJJdGVtLm9kLUNvbW1hbmQtLVByaW1hcnlCdXR0b246aG92ZXIgew0KICAg ICAgY29sb3I6ICNmZmZmZmY7DQogICAgfQ0KDQogICAgLk9uZVVwLWNvbW1hbmRCYXIgLm1z LUNvbW1hbmRCYXIgew0KICAgICAgcGFkZGluZzogMDsNCiAgICB9DQoNCiAgICAuc20gLk9u ZVVwLWNvbW1hbmRCYXIgew0KICAgICAgdG9wOiAtNDRweDsNCiAgICAgIGhlaWdodDogNDRw eDsNCiAgICB9DQoNCiAgICAuT25lVXAtLWhhc0NvbW1hbmRCYXIuT25lVXAtLW5ld0Rlc2ln bmVkQ29tbWFuZEJhciAuT25lVXAtY29tbWFuZEJhciB7DQogICAgICBwYWRkaW5nLXJpZ2h0 OiAycHg7DQogICAgICBib3JkZXI6IDFweCBzb2xpZCAjZWJlYmViOw0KICAgIH0NCg0KICAg IC5PbmVVcC0taGFzQ29tbWFuZEJhci5PbmVVcC0tbmV3RGVzaWduZWRDb21tYW5kQmFyIC5P bmVVcC1jb21tYW5kQmFyIC5tcy1Db21tYW5kQmFyIC5tcy1CdXR0b24tLWNvbW1hbmRCYXIg ew0KICAgICAgbWFyZ2luOiAwIDRweDsNCiAgICB9DQoNCiAgICAuT25lVXAtLWhhc0NvbW1h bmRCYXIuT25lVXAtLW5ld0Rlc2lnbmVkQ29tbWFuZEJhciAuT25lVXAtY29tbWFuZEJhciAu bXMtQ29tbWFuZEJhciAubXMtQnV0dG9uLS1jb21tYW5kQmFyLmhpZGUtbGFiZWwgLm1zLUJ1 dHRvbi1sYWJlbCB7DQogICAgICBkaXNwbGF5OiBub25lOw0KICAgIH0NCg0KICAgIC5PbmVV cC0taGFzQ29tbWFuZEJhci5PbmVVcC0tbmV3RGVzaWduZWRDb21tYW5kQmFyIC5PbmVVcC1j b21tYW5kQmFyIC5tcy1Db21tYW5kQmFyIC5tcy1CdXR0b24tLWNvbW1hbmRCYXIub2QtQ29t bWFuZC0tUHJpbWFyeUJ1dHRvbiB7DQogICAgICBtYXJnaW46IDZweCAxNHB4IDZweCAxMHB4 Ow0KICAgICAgcGFkZGluZzogOHB4Ow0KICAgICAgYm9yZGVyLXJhZGl1czogNHB4Ow0KICAg IH0NCg0KICAgIC5PbmVVcC0taGFzQ29tbWFuZEJhci5PbmVVcC0tbmV3RGVzaWduZWRDb21t YW5kQmFyIC5PbmVVcC1jb21tYW5kQmFyIC5tcy1Db21tYW5kQmFyIC5tcy1CdXR0b24tLWNv bW1hbmRCYXIub2QtQ29tbWFuZC0tUHJpbWFyeUJ1dHRvbiAubXMtQnV0dG9uLXRleHRDb250 YWluZXIgew0KICAgICAgcGFkZGluZy1ib3R0b206IDRweDsNCiAgICB9DQoNCiAgICAuT25l VXAtLWhhc0NvbW1hbmRCYXIuT25lVXAtLW5ld0Rlc2lnbmVkQ29tbWFuZEJhciAuT25lVXAt Y29tbWFuZEJhciAubXMtQ29tbWFuZEJhciAubXMtQnV0dG9uLS1jb21tYW5kQmFyLm9kLUNv bW1hbmQtLWVkaXRQaG90byB7DQogICAgICB3aWR0aDogODJweDsNCiAgICAgIG1hcmdpbjog NnB4IDE0cHggNnB4IDE4cHg7DQogICAgICBiYWNrZ3JvdW5kOiAjMDA3OGQ0Ow0KICAgICAg Y29sb3I6ICNmZmY7DQogICAgICBoZWlnaHQ6IGF1dG87DQogICAgICBwYWRkaW5nOiAxMHB4 IDA7DQogICAgICBib3JkZXItcmFkaXVzOiA0cHg7DQogICAgfQ0KDQogICAgLk9uZVVwLS1o YXNDb21tYW5kQmFyLk9uZVVwLS1uZXdEZXNpZ25lZENvbW1hbmRCYXIgLk9uZVVwLWNvbW1h bmRCYXIgLm1zLUNvbW1hbmRCYXIgLm1zLUJ1dHRvbi0tY29tbWFuZEJhci5vZC1Db21tYW5k LS1lZGl0UGhvdG86OmFmdGVyIHsNCiAgICAgIG91dGxpbmU6ICNmZmYgMXB4IHNvbGlkOw0K ICAgIH0NCg0KICAgIC5PbmVVcC0taGFzQ29tbWFuZEJhci5PbmVVcC0tbmV3RGVzaWduZWRD b21tYW5kQmFyIC5PbmVVcC1jb21tYW5kQmFyIC5tcy1Db21tYW5kQmFyIC5tcy1CdXR0b24t LWNvbW1hbmRCYXIub2QtQ29tbWFuZC0tZWRpdFBkZiB7DQogICAgICB3aWR0aDogODBweDsN CiAgICAgIGhlaWdodDogYXV0bzsNCiAgICAgIGNvbG9yOiAjZmZmZmZmOw0KICAgICAgYmFj a2dyb3VuZDogIzAwNzhkNDsNCiAgICB9DQoNCiAgICAuT25lVXAtLWhhc0NvbW1hbmRCYXIu T25lVXAtLW5ld0Rlc2lnbmVkQ29tbWFuZEJhciAuT25lVXAtY29tbWFuZEJhciAubXMtQ29t bWFuZEJhciAubXMtQnV0dG9uLS1jb21tYW5kQmFyLm9kLUNvbW1hbmQtLWVkaXRQZGYgLm1z LUJ1dHRvbi10ZXh0Q29udGFpbmVyIHsNCiAgICAgIHBhZGRpbmctYm90dG9tOiAwOw0KICAg IH0NCg0KICAgIC5PbmVVcC0taGFzQ29tbWFuZEJhci5PbmVVcC0tbmV3RGVzaWduZWRDb21t YW5kQmFyIC5PbmVVcC1jb21tYW5kQmFyIC5tcy1Db21tYW5kQmFyIC5tcy1CdXR0b24tLWNv bW1hbmRCYXIub2QtQ29tbWFuZC0tZWRpdFBkZi5pcy1kaXNhYmxlZCB7DQogICAgICBiYWNr Z3JvdW5kLWNvbG9yOiAjMDA3OGQ0Ow0KICAgICAgYm9yZGVyLWNvbG9yOiAjMDA3OGQ0Ow0K ICAgICAgb3BhY2l0eTogMC4zOw0KICAgIH0NCg0KICAgIC5tZCAuT25lVXAtLWhhc0NvbW1h bmRCYXIuT25lVXAtLW5ld0Rlc2lnbmVkQ29tbWFuZEJhciAuT25lVXAtY29tbWFuZEJhciAu bXMtQ29tbWFuZEJhciAubXMtQnV0dG9uLS1jb21tYW5kQmFyLA0KICAgIC5zbSAuT25lVXAt LWhhc0NvbW1hbmRCYXIuT25lVXAtLW5ld0Rlc2lnbmVkQ29tbWFuZEJhciAuT25lVXAtY29t bWFuZEJhciAubXMtQ29tbWFuZEJhciAubXMtQnV0dG9uLS1jb21tYW5kQmFyIHsNCiAgICAg IGhlaWdodDogYXV0bzsNCiAgICB9DQoNCiAgICAubWQgLk9uZVVwLS1oYXNDb21tYW5kQmFy Lk9uZVVwLS1uZXdEZXNpZ25lZENvbW1hbmRCYXIgLk9uZVVwLWNvbW1hbmRCYXIgLm1zLUNv bW1hbmRCYXIgLm1zLUJ1dHRvbi0tY29tbWFuZEJhciAubXMtQnV0dG9uLWljb24sDQogICAg LnNtIC5PbmVVcC0taGFzQ29tbWFuZEJhci5PbmVVcC0tbmV3RGVzaWduZWRDb21tYW5kQmFy IC5PbmVVcC1jb21tYW5kQmFyIC5tcy1Db21tYW5kQmFyIC5tcy1CdXR0b24tLWNvbW1hbmRC YXIgLm1zLUJ1dHRvbi1pY29uIHsNCiAgICAgIGZvbnQtc2l6ZTogMTZweDsNCiAgICB9DQoN CiAgICAuT25lVXAtLWhhc0NvbW1hbmRCYXIuT25lVXAtLW5ld0Rlc2lnbmVkQ29tbWFuZEJh ciAuT25lVXAtY29tbWFuZEJhciAubXMtQ29tbWFuZEJhciAubXMtQnV0dG9uLS1jb21tYW5k QmFyIGlbZGF0YS1pY29uLW5hbWU9Ik1vcmUiXSB7DQogICAgICBjb2xvcjogIzAwNzhkNDsN CiAgICB9DQoNCiAgICAuT25lVXAtLWhhc0NvbW1hbmRCYXIuT25lVXAtLW5ld0Rlc2lnbmVk Q29tbWFuZEJhciAuT25lVXAtY29tbWFuZEJhciAubXMtQ29tbWFuZEJhciAubXMtQnV0dG9u LS1jb21tYW5kQmFyLmlzLWRpc2FibGVkIGlbZGF0YS1pY29uLW5hbWU9Ik5leHQiXSwNCiAg ICAuT25lVXAtLWhhc0NvbW1hbmRCYXIuT25lVXAtLW5ld0Rlc2lnbmVkQ29tbWFuZEJhciAu T25lVXAtY29tbWFuZEJhciAubXMtQ29tbWFuZEJhciAubXMtQnV0dG9uLS1jb21tYW5kQmFy LmlzLWRpc2FibGVkIGlbZGF0YS1pY29uLW5hbWU9IlByZXZpb3VzIl0gew0KICAgICAgY29s b3I6ICMwMDc4ZDQ7DQogICAgICBvcGFjaXR5OiAwLjM7DQogICAgfQ0KDQogICAgLk9uZVVw LS1oYXNDb21tYW5kQmFyLk9uZVVwLS1uZXdEZXNpZ25lZENvbW1hbmRCYXIgLk9uZVVwLWNv bW1hbmRCYXIgLm1zLUNvbW1hbmRCYXIgLm1zLUJ1dHRvbi0tY29tbWFuZEJhci5vZC1Db21t YW5kLS1zZXBhcmF0b3Igew0KICAgICAgbWFyZ2luOiAwOw0KICAgICAgcGFkZGluZzogMDsN CiAgICAgIG1pbi13aWR0aDogMjlweDsNCiAgICB9DQoNCiAgICAuT25lVXAtLWhhc0NvbW1h bmRCYXIuT25lVXAtLW5ld0Rlc2lnbmVkQ29tbWFuZEJhciAuT25lVXAtY29tbWFuZEJhciAu bXMtQ29tbWFuZEJhciAubXMtQnV0dG9uLS1jb21tYW5kQmFyIGlbZGF0YS1pY29uLW5hbWU9 IlNlcGFyYXRvciJdIHsNCiAgICAgIGNvbG9yOiAjYzdjN2M3Ow0KICAgIH0NCg0KICAgIC5P bmVVcC0taGFzQ29tbWFuZEJhci5PbmVVcC0tbmV3RGVzaWduZWRDb21tYW5kQmFyIC5PbmVV cC1jb21tYW5kQmFyIC5tcy1Db21tYW5kQmFyIC5tcy1CdXR0b24tLWNvbW1hbmRCYXIub2Qt Q29tbWFuZC0tcGFnZUNvdW50IHsNCiAgICAgIG1hcmdpbjogMCA4cHg7DQogICAgfQ0KDQog ICAgLk9uZVVwLS1oYXNDb21tYW5kQmFyLk9uZVVwLS1uZXdEZXNpZ25lZENvbW1hbmRCYXIg Lk9uZVVwLWNvbW1hbmRCYXIgLm1zLUNvbW1hbmRCYXIgLm1zLUJ1dHRvbi0tY29tbWFuZEJh ci5vZC1Db21tYW5kLS1maWxlVGl0bGUsDQogICAgLk9uZVVwLS1oYXNDb21tYW5kQmFyLk9u ZVVwLS1uZXdEZXNpZ25lZENvbW1hbmRCYXIgLk9uZVVwLWNvbW1hbmRCYXIgLm1zLUNvbW1h bmRCYXIgLm1zLUJ1dHRvbi0tY29tbWFuZEJhci5vZC1Db21tYW5kLS1wYWdlQ291bnQgew0K ICAgICAgY29sb3I6ICMwMDAwMDA7DQogICAgfQ0KDQogICAgQG1lZGlhIHNjcmVlbiBhbmQg KC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpIHsNCg0KICAgICAgLk9uZVVwLS1oYXNDb21t YW5kQmFyLk9uZVVwLS1uZXdEZXNpZ25lZENvbW1hbmRCYXIgLk9uZVVwLWNvbW1hbmRCYXIg Lm1zLUNvbW1hbmRCYXIgLm1zLUJ1dHRvbi0tY29tbWFuZEJhci5vZC1Db21tYW5kLS1maWxl VGl0bGUsDQogICAgICAuT25lVXAtLWhhc0NvbW1hbmRCYXIuT25lVXAtLW5ld0Rlc2lnbmVk Q29tbWFuZEJhciAuT25lVXAtY29tbWFuZEJhciAubXMtQ29tbWFuZEJhciAubXMtQnV0dG9u LS1jb21tYW5kQmFyLm9kLUNvbW1hbmQtLXBhZ2VDb3VudCB7DQogICAgICAgIGNvbG9yOiB3 aW5kb3d0ZXh0Ow0KICAgICAgfQ0KICAgIH0NCg0KICAgIC5PbmVVcC0taGFzQ29tbWFuZEJh ci5PbmVVcC0tbmV3RGVzaWduZWRDb21tYW5kQmFyIC5PbmVVcC1jb21tYW5kQmFyIC5tcy1D b21tYW5kQmFyIC5tcy1CdXR0b24tLWNvbW1hbmRCYXIgaVtkYXRhLWljb24tbmFtZT0iQ2Fu Y2VsIl0gew0KICAgICAgY29sb3I6ICM0MjQyNDI7DQogICAgfQ0KDQogICAgLm1kIC5PbmVV cC0taGFzQ29tbWFuZEJhci5PbmVVcC0tbmV3RGVzaWduZWRDb21tYW5kQmFyIC5PbmVVcC1j b21tYW5kQmFyIC5tcy1Db21tYW5kQmFyLA0KICAgIC5zbSAuT25lVXAtLWhhc0NvbW1hbmRC YXIuT25lVXAtLW5ld0Rlc2lnbmVkQ29tbWFuZEJhciAuT25lVXAtY29tbWFuZEJhciAubXMt Q29tbWFuZEJhciB7DQogICAgICBoZWlnaHQ6IDQ0cHg7DQogICAgfQ0KDQogICAgLkNvbW1h bmRCYXItY2VudGVyIHsNCiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsNCiAgICB9DQoNCiAg ICAuT25lVXAtYWNjZXNzaWJsZUl0ZW1Bbm5vdW5jZW1lbnQgew0KICAgICAgcG9zaXRpb246 IGFic29sdXRlOw0KICAgICAgd2lkdGg6IDFweDsNCiAgICAgIGhlaWdodDogMXB4Ow0KICAg ICAgcGFkZGluZzogMDsNCiAgICAgIG1hcmdpbjogLTFweDsNCiAgICAgIG92ZXJmbG93OiBo aWRkZW47DQogICAgICBjbGlwOiByZWN0KDAsIDAsIDAsIDApOw0KICAgICAgYm9yZGVyOiAw Ow0KICAgIH0NCg0KICAgIC5PbmVVcC1jb250ZW50IHsNCiAgICAgIHBvc2l0aW9uOiBhYnNv bHV0ZTsNCiAgICAgIGxlZnQ6IDA7DQogICAgICB0b3A6IDA7DQogICAgICBib3R0b206IDA7 DQogICAgICByaWdodDogMDsNCiAgICAgIHRyYW5zaXRpb246IHRvcCAyNjdtcyBsaW5lYXIs IGxlZnQgMzY3bXMgY3ViaWMtYmV6aWVyKDAuMSwgMC45LCAwLjIsIDEpLA0KICAgICAgICBy aWdodCAzNjdtcyBjdWJpYy1iZXppZXIoMC4xLCAwLjksIDAuMiwgMSk7DQogICAgfQ0KDQog ICAgLk9uZVVwLWNhcm91c2VsIHsNCiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAg IGxlZnQ6IDA7DQogICAgICByaWdodDogMDsNCiAgICAgIHRvcDogMDsNCiAgICAgIGJvdHRv bTogMDsNCiAgICAgIHotaW5kZXg6IDE7DQogICAgICB0cmFuc2l0aW9uOiB0b3AgMjY3bXMg bGluZWFyOw0KICAgIH0NCg0KICAgIC5zbSAuT25lVXAtLWhhc0NvbW1hbmRCYXIgLk9uZVVw LXBhbmVIb3N0IHsNCiAgICAgIHRvcDogNDRweDsNCiAgICB9DQoNCiAgICAuT25lVXAtLWhh c0NvbW1hbmRCYXIgLm1zLUJ1dHRvbi0tY29tbWFuZEJhciAubXMtQnV0dG9uLW1lbnVJY29u IHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7DQogICAgfQ0KDQogICAgLk9u ZVVwLS1oYXNDb21tYW5kQmFyIC5tcy1CdXR0b24tLWNvbW1hbmRCYXIuaXMtZGlzYWJsZWQg ew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDsNCiAgICAgIGNvbG9yOiBpbmhl cml0Ow0KICAgIH0NCg0KICAgIC5PbmVVcC0taGFzQ29tbWFuZEJhciAuT25lVXAtY29udGVu dCwNCiAgICAuT25lVXAtLWhhc0NvbW1hbmRCYXIgLk9uZVVwLXBhbmVIb3N0IHsNCiAgICAg IHRvcDogNDRweDsNCiAgICB9DQoNCiAgICAuT25lVXAtLWhhc0NvbW1hbmRCYXIgLk9uZVVw LWNvbW1hbmRCYXIgew0KICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTsNCiAgICAgIHRvcDog MDsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0ibHRyIl0gLk9uZVVwLS1oYXNDb21tYW5kQmFy IC5PbmVVcC1jb21tYW5kQmFyIHsNCiAgICAgIHBhZGRpbmctbGVmdDogMTZweDsNCiAgICB9 DQoNCiAgICBodG1sW2Rpcj0icnRsIl0gLk9uZVVwLS1oYXNDb21tYW5kQmFyIC5PbmVVcC1j b21tYW5kQmFyIHsNCiAgICAgIHBhZGRpbmctcmlnaHQ6IDE2cHg7DQogICAgfQ0KDQogICAg Lk9uZVVwLWRldGFpbHNCYXIgew0KICAgICAgdHJhbnNpdGlvbjogdmlzaWJpbGl0eSAwcyBs aW5lYXIgMjY3bXMsIG9wYWNpdHkgMjY3bXMgbGluZWFyLA0KICAgICAgICBib3R0b20gMjY3 bXMgbGluZWFyOw0KICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICAgbGVmdDogMDsN CiAgICAgIHJpZ2h0OiAwOw0KICAgICAgY29sb3I6ICMyNDI0MjQ7DQogICAgICB6LWluZGV4 OiAxOw0KICAgIH0NCg0KICAgIFtkaXI9Imx0ciJdIC5sZyAuT25lVXAtLWhhc0luZm9QYW5l IC5PbmVVcC1jb250ZW50LA0KICAgIFtkaXI9Imx0ciJdIC5tZCAuT25lVXAtLWhhc0luZm9Q YW5lIC5PbmVVcC1jb250ZW50LA0KICAgIFtkaXI9Imx0ciJdIC54bGcgLk9uZVVwLS1oYXNJ bmZvUGFuZSAuT25lVXAtY29udGVudCwNCiAgICBbZGlyPSJsdHIiXSAueHhsZyAuT25lVXAt LWhhc0luZm9QYW5lIC5PbmVVcC1jb250ZW50LA0KICAgIFtkaXI9Imx0ciJdIC54eHhsZyAu T25lVXAtLWhhc0luZm9QYW5lIC5PbmVVcC1jb250ZW50LA0KICAgIFtkaXI9Imx0ciJdIC54 eHh4bGcgLk9uZVVwLS1oYXNJbmZvUGFuZSAuT25lVXAtY29udGVudCB7DQogICAgICByaWdo dDogMzIwcHg7DQogICAgfQ0KDQogICAgW2Rpcj0icnRsIl0gLmxnIC5PbmVVcC0taGFzSW5m b1BhbmUgLk9uZVVwLWNvbnRlbnQsDQogICAgW2Rpcj0icnRsIl0gLm1kIC5PbmVVcC0taGFz SW5mb1BhbmUgLk9uZVVwLWNvbnRlbnQsDQogICAgW2Rpcj0icnRsIl0gLnhsZyAuT25lVXAt LWhhc0luZm9QYW5lIC5PbmVVcC1jb250ZW50LA0KICAgIFtkaXI9InJ0bCJdIC54eGxnIC5P bmVVcC0taGFzSW5mb1BhbmUgLk9uZVVwLWNvbnRlbnQsDQogICAgW2Rpcj0icnRsIl0gLnh4 eGxnIC5PbmVVcC0taGFzSW5mb1BhbmUgLk9uZVVwLWNvbnRlbnQsDQogICAgW2Rpcj0icnRs Il0gLnh4eHhsZyAuT25lVXAtLWhhc0luZm9QYW5lIC5PbmVVcC1jb250ZW50IHsNCiAgICAg IGxlZnQ6IDMyMHB4Ow0KICAgIH0NCg0KICAgIFtkaXI9Imx0ciJdIC5PbmVVcC0taGFzSW5m b1BhbmUgLk9uZVVwLXBhbmVIb3N0IHsNCiAgICAgIHJpZ2h0OiAwOw0KICAgIH0NCg0KICAg IFtkaXI9InJ0bCJdIC5PbmVVcC0taGFzSW5mb1BhbmUgLk9uZVVwLXBhbmVIb3N0IHsNCiAg ICAgIGxlZnQ6IDA7DQogICAgfQ0KDQogICAgLnNtIC5PbmVVcC0taGFzSW5mb1BhbmUgLk9u ZVVwLWluZm9QYW5lLA0KICAgIC5zbSAuT25lVXAtLWhhc0luZm9QYW5lIC5PbmVVcC1wYW5l SG9zdCB7DQogICAgICB3aWR0aDogMTAwJTsNCiAgICB9DQoNCiAgICAuT25lVXAtLXNsaWRl U2hvd09uIC5PbmVVcC1jb21tYW5kQmFyIHsNCiAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjsN CiAgICB9DQoNCiAgICAuT25lVXAtLXNsaWRlU2hvd09uIC5PbmVVcC1jb250ZW50IHsNCiAg ICAgIHRvcDogMDsNCiAgICB9DQoNCiAgICAuT25lVXAtLWF3YWtlIC5PbmVVcC1kZXRhaWxz QmFyIHsNCiAgICAgIHZpc2liaWxpdHk6IGluaGVyaXQ7DQogICAgICBvcGFjaXR5OiAxOw0K ICAgICAgdHJhbnNpdGlvbi1kZWxheTogMHMsIDBzLCAwczsNCiAgICB9DQoNCiAgICAuT25l VXAtLWF3YWtlLk9uZVVwLS1zbGlkZVNob3dPbiAuT25lVXAtY29tbWFuZEJhciB7DQogICAg ICB2aXNpYmlsaXR5OiBpbmhlcml0Ow0KICAgIH0NCg0KICAgIC5PbmVVcC1jYXB0aW9uLWNv bnRhaW5lciB7DQogICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgYWxpZ24taXRlbXM6IGNl bnRlcjsNCiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOw0KICAgICAgd2lkdGg6IDEw MCU7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNzUp Ow0KICAgIH0NCg0KICAgIC5PbmVVcC1jYXB0aW9uIHsNCiAgICAgIGNvbG9yOiAjMjQyNDI0 Ow0KICAgICAgZmxleDogMSAxIGF1dG87DQogICAgICBoZWlnaHQ6IDMwcHg7DQogICAgICBi b3JkZXI6IDA7DQogICAgICBwYWRkaW5nOiAwOw0KICAgICAgYmFja2dyb3VuZDogMCAwOw0K ICAgICAgdGV4dC1hbGlnbjogY2VudGVyOw0KICAgICAgd2lkdGg6IDEwMCU7DQogICAgICBt YXgtd2lkdGg6IDYwMHB4Ow0KICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7DQogICAg ICBvdmVyZmxvdzogaGlkZGVuOw0KICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsNCiAgICAg IHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7DQogICAgICBmb250LXNpemU6IDE0cHg7DQogICAg ICBmb250LXdlaWdodDogNDAwOw0KICAgIH0NCg0KICAgIC5PbmVVcC1jYXB0aW9uLS1lZGl0 YWJsZSB7DQogICAgICBjdXJzb3I6IHBvaW50ZXI7DQogICAgfQ0KDQogICAgLk9uZVVwLWNh cHRpb24tY2xpcHBlciB7DQogICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsOw0KICAgICAgbWF4 LXdpZHRoOiA2MDBweDsNCiAgICAgIGhlaWdodDogMzBweDsNCiAgICAgIHRleHQtb3ZlcmZs b3c6IGVsbGlwc2lzOw0KICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsNCiAgICAgIHdoaXRlLXNw YWNlOiBub3dyYXA7DQogICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOw0KICAgICAgZm9u dC1zaXplOiAxNHB4Ow0KICAgICAgZm9udC13ZWlnaHQ6IDQwMDsNCiAgICB9DQoNCiAgICAu bGcgLk9uZVVwLWNhcHRpb24tY2xpcHBlciB7DQogICAgICBtYXgtd2lkdGg6IDUxMHB4Ow0K ICAgIH0NCg0KICAgIC5tZCAuT25lVXAtY2FwdGlvbi1jbGlwcGVyIHsNCiAgICAgIG1heC13 aWR0aDogMzQ1cHg7DQogICAgfQ0KDQogICAgLnNtIC5PbmVVcC1jYXB0aW9uLWNsaXBwZXIg ew0KICAgICAgbWF4LXdpZHRoOiAxNTBweDsNCiAgICB9DQoNCiAgICAuT25lVXAtb3B0aW9u cyB7DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgICB0b3A6IDA7DQogICAgICBi b3R0b206IDA7DQogICAgICB0ZXh0LWFsaWduOiByaWdodDsNCiAgICB9DQoNCiAgICBbZGly PSJsdHIiXSAuT25lVXAtb3B0aW9ucyB7DQogICAgICByaWdodDogOHB4Ow0KICAgIH0NCg0K ICAgIFtkaXI9InJ0bCJdIC5PbmVVcC1vcHRpb25zIHsNCiAgICAgIGxlZnQ6IDhweDsNCiAg ICB9DQoNCiAgICAuT25lVXAtaW5mbyB7DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQog ICAgICB0b3A6IDA7DQogICAgICBkaXNwbGF5OiBibG9jazsNCiAgICAgIHBhZGRpbmc6IDIw cHggOHB4Ow0KICAgICAgaGVpZ2h0OiA0MHB4Ow0KICAgIH0NCg0KICAgIFtkaXI9Imx0ciJd IC5PbmVVcC1pbmZvIHsNCiAgICAgIHJpZ2h0OiAwOw0KICAgIH0NCg0KICAgIFtkaXI9InJ0 bCJdIC5PbmVVcC1pbmZvIHsNCiAgICAgIGxlZnQ6IDA7DQogICAgfQ0KDQogICAgLk9uZVVw LXBhbmVIb3N0IHsNCiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgIHdpZHRoOiAz MjBweDsNCiAgICAgIHRvcDogMDsNCiAgICAgIGJvdHRvbTogMDsNCiAgICAgIG92ZXJmbG93 OiBoaWRkZW47DQogICAgICB6LWluZGV4OiAxOw0KICAgIH0NCg0KICAgIFtkaXI9Imx0ciJd IC5PbmVVcC1wYW5lSG9zdCB7DQogICAgICByaWdodDogLTMyMXB4Ow0KICAgIH0NCg0KICAg IFtkaXI9InJ0bCJdIC5PbmVVcC1wYW5lSG9zdCB7DQogICAgICBsZWZ0OiAtMzIxcHg7DQog ICAgfQ0KDQogICAgLk9uZVVwLWluZm9QYW5lIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6 ICNmZmZmZmY7DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgICB0b3A6IDA7DQog ICAgICBib3R0b206IDA7DQogICAgICByaWdodDogMDsNCiAgICAgIHdpZHRoOiAzMjBweDsN CiAgICB9DQoNCiAgICAub2QtdXNlclNlbGVjdC0tZW5hYmxlZCAuT25lVXAtaW5mb1BhbmUg ew0KICAgICAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiB0ZXh0Ow0KICAgICAgLXdlYmtpdC11 c2VyLXNlbGVjdDogdGV4dDsNCiAgICAgIC1tcy11c2VyLXNlbGVjdDogdGV4dDsNCiAgICAg IHVzZXItc2VsZWN0OiB0ZXh0Ow0KICAgIH0NCg0KICAgIC5PbmVVcCAub2QtUGFuZWwsDQog ICAgLk9uZVVwIC5vZC1QYW5lbE92ZXJsYXkgew0KICAgICAgdG9wOiAwOw0KICAgIH0NCg0K ICAgIC5pc0ZsdWVudFZOZXh0IC5PbmVVcC1jb21tYW5kQmFyIHsNCiAgICAgIHRvcDogLTQ4 cHg7DQogICAgICBoZWlnaHQ6IDQ4cHg7DQogICAgfQ0KDQogICAgLmlzRmx1ZW50Vk5leHQg LnNtIC5PbmVVcC1jb21tYW5kQmFyIHsNCiAgICAgIHRvcDogLTQ4cHg7DQogICAgICBoZWln aHQ6IDQ4cHg7DQogICAgfQ0KDQogICAgLmlzRmx1ZW50Vk5leHQgLnNtIC5PbmVVcC0taGFz Q29tbWFuZEJhciAuT25lVXAtcGFuZUhvc3Qgew0KICAgICAgdG9wOiA0OHB4Ow0KICAgIH0N Cg0KICAgIC5pc0ZsdWVudFZOZXh0IC5PbmVVcC0taGFzQ29tbWFuZEJhciAuT25lVXAtY29u dGVudCwNCiAgICAuaXNGbHVlbnRWTmV4dCAuT25lVXAtLWhhc0NvbW1hbmRCYXIgLk9uZVVw LXBhbmVIb3N0IHsNCiAgICAgIHRvcDogNDhweDsNCiAgICB9DQoNCiAgICAuaXNGbHVlbnRW TmV4dCAuT25lVXAtLWhhc0NvbW1hbmRCYXIgLk9uZVVwLWNvbW1hbmRCYXIgew0KICAgICAg dG9wOiAwOw0KICAgIH0NCg0KICAgIC5pc0ZsdWVudFZOZXh0IC5PbmVVcC0taGFzQ29tbWFu ZEJhci5PbmVVcC0tbmV3RGVzaWduZWRDb21tYW5kQmFyIC5PbmVVcC1jb21tYW5kQmFyIHsN CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmYWZhZmE7DQogICAgfQ0KDQogICAgLmlzRmx1 ZW50Vk5leHQgLk9uZVVwLS1oYXNDb21tYW5kQmFyLk9uZVVwLS1uZXdEZXNpZ25lZENvbW1h bmRCYXIgLk9uZVVwLWNvbW1hbmRCYXIgLm1zLUNvbW1hbmRCYXIgLm1zLUJ1dHRvbi0tY29t bWFuZEJhci5vZC1Db21tYW5kLS1QcmltYXJ5QnV0dG9uIHsNCiAgICAgIHBhZGRpbmc6IDAg OHB4Ow0KICAgIH0NCg0KICAgIC5pc0ZsdWVudFZOZXh0IC5PbmVVcC0taGFzQ29tbWFuZEJh ci5PbmVVcC0tbmV3RGVzaWduZWRDb21tYW5kQmFyIC5PbmVVcC1jb21tYW5kQmFyIC5tcy1D b21tYW5kQmFyIC5tcy1CdXR0b24tLWNvbW1hbmRCYXIub2QtQ29tbWFuZC0tUHJpbWFyeUJ1 dHRvbiAubXMtQnV0dG9uLXRleHRDb250YWluZXIgew0KICAgICAgcGFkZGluZy1ib3R0b206 IDA7DQogICAgICBoZWlnaHQ6IDE2cHg7DQogICAgfQ0KDQogICAgLmlzRmx1ZW50Vk5leHQg Lk9uZVVwLS1oYXNDb21tYW5kQmFyLk9uZVVwLS1uZXdEZXNpZ25lZENvbW1hbmRCYXIgLk9u ZVVwLWNvbW1hbmRCYXIgLm1zLUNvbW1hbmRCYXIgLm1zLUJ1dHRvbi0tY29tbWFuZEJhci5v ZC1Db21tYW5kLS1lZGl0UGhvdG8gew0KICAgICAgcGFkZGluZzogMDsNCiAgICB9DQoNCiAg ICAuaXNGbHVlbnRWTmV4dCAuT25lVXAtLWhhc0NvbW1hbmRCYXIuT25lVXAtLW5ld0Rlc2ln bmVkQ29tbWFuZEJhciAuT25lVXAtY29tbWFuZEJhciAubXMtQ29tbWFuZEJhciAubXMtQnV0 dG9uLS1jb21tYW5kQmFyLm9kLUNvbW1hbmQtLVByaW1hcnlCdXR0b24sDQogICAgLmlzRmx1 ZW50Vk5leHQgLk9uZVVwLS1oYXNDb21tYW5kQmFyLk9uZVVwLS1uZXdEZXNpZ25lZENvbW1h bmRCYXIgLk9uZVVwLWNvbW1hbmRCYXIgLm1zLUNvbW1hbmRCYXIgLm1zLUJ1dHRvbi0tY29t bWFuZEJhci5vZC1Db21tYW5kLS1lZGl0UGhvdG8gew0KICAgICAgbWFyZ2luLXRvcDogNHB4 Ow0KICAgICAgbWFyZ2luLWJvdHRvbTogNHB4Ow0KICAgIH0NCg0KICAgIC5pc0ZsdWVudFZO ZXh0IC5PbmVVcC0taGFzQ29tbWFuZEJhci5PbmVVcC0tbmV3RGVzaWduZWRDb21tYW5kQmFy IC5PbmVVcC1jb21tYW5kQmFyIC5tcy1Db21tYW5kQmFyIC5tcy1CdXR0b24tLWNvbW1hbmRC YXIub2QtQ29tbWFuZC0tUHJpbWFyeUJ1dHRvbjphY3RpdmUgLm1zLUJ1dHRvbi1mbGV4Q29u dGFpbmVyLA0KICAgIC5pc0ZsdWVudFZOZXh0IC5PbmVVcC0taGFzQ29tbWFuZEJhci5PbmVV cC0tbmV3RGVzaWduZWRDb21tYW5kQmFyIC5PbmVVcC1jb21tYW5kQmFyIC5tcy1Db21tYW5k QmFyIC5tcy1CdXR0b24tLWNvbW1hbmRCYXIub2QtQ29tbWFuZC0tUHJpbWFyeUJ1dHRvbjpm b2N1cyAubXMtQnV0dG9uLWZsZXhDb250YWluZXIsDQogICAgLmlzRmx1ZW50Vk5leHQgLk9u ZVVwLS1oYXNDb21tYW5kQmFyLk9uZVVwLS1uZXdEZXNpZ25lZENvbW1hbmRCYXIgLk9uZVVw LWNvbW1hbmRCYXIgLm1zLUNvbW1hbmRCYXIgLm1zLUJ1dHRvbi0tY29tbWFuZEJhci5vZC1D b21tYW5kLS1QcmltYXJ5QnV0dG9uOmhvdmVyIC5tcy1CdXR0b24tZmxleENvbnRhaW5lciwN CiAgICAuaXNGbHVlbnRWTmV4dCAuT25lVXAtLWhhc0NvbW1hbmRCYXIuT25lVXAtLW5ld0Rl c2lnbmVkQ29tbWFuZEJhciAuT25lVXAtY29tbWFuZEJhciAubXMtQ29tbWFuZEJhciAubXMt QnV0dG9uLS1jb21tYW5kQmFyLm9kLUNvbW1hbmQtLWVkaXRQaG90bzphY3RpdmUgLm1zLUJ1 dHRvbi1mbGV4Q29udGFpbmVyLA0KICAgIC5pc0ZsdWVudFZOZXh0IC5PbmVVcC0taGFzQ29t bWFuZEJhci5PbmVVcC0tbmV3RGVzaWduZWRDb21tYW5kQmFyIC5PbmVVcC1jb21tYW5kQmFy IC5tcy1Db21tYW5kQmFyIC5tcy1CdXR0b24tLWNvbW1hbmRCYXIub2QtQ29tbWFuZC0tZWRp dFBob3RvOmZvY3VzIC5tcy1CdXR0b24tZmxleENvbnRhaW5lciwNCiAgICAuaXNGbHVlbnRW TmV4dCAuT25lVXAtLWhhc0NvbW1hbmRCYXIuT25lVXAtLW5ld0Rlc2lnbmVkQ29tbWFuZEJh ciAuT25lVXAtY29tbWFuZEJhciAubXMtQ29tbWFuZEJhciAubXMtQnV0dG9uLS1jb21tYW5k QmFyLm9kLUNvbW1hbmQtLWVkaXRQaG90bzpob3ZlciAubXMtQnV0dG9uLWZsZXhDb250YWlu ZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDsNCiAgICB9DQoNCiAgICAu bXMtRmFicmljLS1pc0ZvY3VzVmlzaWJsZSAuaXNGbHVlbnRWTmV4dCAuT25lVXAtLWhhc0Nv bW1hbmRCYXIuT25lVXAtLW5ld0Rlc2lnbmVkQ29tbWFuZEJhciAuT25lVXAtY29tbWFuZEJh ciAubXMtQ29tbWFuZEJhciAubXMtQnV0dG9uLS1jb21tYW5kQmFyLm9kLUNvbW1hbmQtLVBy aW1hcnlCdXR0b246Zm9jdXMsDQogICAgLm1zLUZhYnJpYy0taXNGb2N1c1Zpc2libGUgLmlz Rmx1ZW50Vk5leHQgLk9uZVVwLS1oYXNDb21tYW5kQmFyLk9uZVVwLS1uZXdEZXNpZ25lZENv bW1hbmRCYXIgLk9uZVVwLWNvbW1hbmRCYXIgLm1zLUNvbW1hbmRCYXIgLm1zLUJ1dHRvbi0t Y29tbWFuZEJhci5vZC1Db21tYW5kLS1lZGl0UGhvdG86Zm9jdXMgew0KICAgICAgYm94LXNo YWRvdzogbm9uZTsNCiAgICAgIG91dGxpbmU6IDA7DQogICAgfQ0KDQogICAgLm1zLUZhYnJp Yy0taXNGb2N1c1Zpc2libGUgLmlzRmx1ZW50Vk5leHQgLk9uZVVwLS1oYXNDb21tYW5kQmFy Lk9uZVVwLS1uZXdEZXNpZ25lZENvbW1hbmRCYXIgLk9uZVVwLWNvbW1hbmRCYXIgLm1zLUNv bW1hbmRCYXIgLm1zLUJ1dHRvbi0tY29tbWFuZEJhci5vZC1Db21tYW5kLS1QcmltYXJ5QnV0 dG9uOmZvY3VzOjphZnRlciwNCiAgICAubXMtRmFicmljLS1pc0ZvY3VzVmlzaWJsZSAuaXNG bHVlbnRWTmV4dCAuT25lVXAtLWhhc0NvbW1hbmRCYXIuT25lVXAtLW5ld0Rlc2lnbmVkQ29t bWFuZEJhciAuT25lVXAtY29tbWFuZEJhciAubXMtQ29tbWFuZEJhciAubXMtQnV0dG9uLS1j b21tYW5kQmFyLm9kLUNvbW1hbmQtLWVkaXRQaG90bzpmb2N1czo6YWZ0ZXIgew0KICAgICAg dG9wOiAwOw0KICAgICAgYm90dG9tOiAwOw0KICAgICAgbGVmdDogMDsNCiAgICAgIHJpZ2h0 OiAwOw0KICAgICAgb3V0bGluZS1vZmZzZXQ6IC0xcHg7DQogICAgICBvdXRsaW5lOiAycHgg c29saWQgIzAwMDAwMDsNCiAgICAgIGJvcmRlcjogMnB4IHNvbGlkICNmZmZmZmY7DQogICAg fQ0KDQogICAgLmlzRmx1ZW50Vk5leHQgLk9uZVVwLS1oYXNDb21tYW5kQmFyLk9uZVVwLS1u ZXdEZXNpZ25lZENvbW1hbmRCYXIgLk9uZVVwLWNvbW1hbmRCYXIgLm1zLUNvbW1hbmRCYXIg Lm1zLUJ1dHRvbi0tY29tbWFuZEJhci5pcy1kaXNhYmxlZCBpW2RhdGEtaWNvbi1uYW1lPSJO ZXh0Il0sDQogICAgLmlzRmx1ZW50Vk5leHQgLk9uZVVwLS1oYXNDb21tYW5kQmFyLk9uZVVw LS1uZXdEZXNpZ25lZENvbW1hbmRCYXIgLk9uZVVwLWNvbW1hbmRCYXIgLm1zLUNvbW1hbmRC YXIgLm1zLUJ1dHRvbi0tY29tbWFuZEJhci5pcy1kaXNhYmxlZCBpW2RhdGEtaWNvbi1uYW1l PSJQcmV2aW91cyJdIHsNCiAgICAgIGNvbG9yOiAjYmRiZGJkOw0KICAgIH0NCg0KICAgIC5p c0ZsdWVudFZOZXh0IC5PbmVVcC0taGFzQ29tbWFuZEJhci5PbmVVcC0tbmV3RGVzaWduZWRD b21tYW5kQmFyIC5PbmVVcC1jb21tYW5kQmFyIC5tcy1Db21tYW5kQmFyIC5tcy1CdXR0b24t LWNvbW1hbmRCYXIgaVtkYXRhLWljb24tbmFtZT0iU2VwYXJhdG9yIl0gew0KICAgICAgbGlu ZS1oZWlnaHQ6IDIwcHg7DQogICAgICB3aWR0aDogMjBweDsNCiAgICAgIGhlaWdodDogMjBw eDsNCiAgICAgIGZvbnQtc2l6ZTogMjBweDsNCiAgICB9DQoNCiAgICAubWQgLmlzRmx1ZW50 Vk5leHQgLk9uZVVwLS1oYXNDb21tYW5kQmFyLk9uZVVwLS1uZXdEZXNpZ25lZENvbW1hbmRC YXIgLk9uZVVwLWNvbW1hbmRCYXIgLm1zLUNvbW1hbmRCYXIsDQogICAgLnNtIC5pc0ZsdWVu dFZOZXh0IC5PbmVVcC0taGFzQ29tbWFuZEJhci5PbmVVcC0tbmV3RGVzaWduZWRDb21tYW5k QmFyIC5PbmVVcC1jb21tYW5kQmFyIC5tcy1Db21tYW5kQmFyIHsNCiAgICAgIGhlaWdodDog NDhweDsNCiAgICB9DQoNCiAgICAub2QtRmlsZXMtdW5hdXRoQmFubmVyIHsNCiAgICAgIHBv c2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgIHRvcDogMDsNCiAgICAgIGxlZnQ6IDA7DQogICAg ICByaWdodDogMDsNCiAgICAgIGhlaWdodDogNTBweDsNCiAgICB9DQoNCiAgICAub2QtRmls ZXMtb25lVXAgew0KICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICAgdG9wOiAwOw0K ICAgICAgbGVmdDogMDsNCiAgICAgIHJpZ2h0OiAwOw0KICAgICAgYm90dG9tOiAwOw0KICAg IH0NCg0KICAgIC5vZC1GaWxlcy1vbmVVcC5vZC1GaWxlcy1PbmVVcC0tc2hvd1VuYXV0aEJh bm5lciB7DQogICAgICB0b3A6IDUwcHg7DQogICAgfQ0KDQogICAgLm9kLUNvbW1hbmQtLWV4 dHJhY3QgLm1zLUNvbnRleHR1YWxNZW51LWl0ZW1UZXh0OjphZnRlciB7DQogICAgICBjb250 ZW50OiB1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0Nzdmcgd2lkdGg9JzEwJyBoZWlnaHQ9 JzEwJyB2aWV3Qm94PScwIDAgMTAgMTAnIGZpbGw9J25vbmUnIHhtbG5zPSdodHRwOi8vd3d3 LnczLm9yZy8yMDAwL3N2ZyclM0UlM0NwYXRoIGQ9J001LjUgMUM1LjUgMi4xNDk2MSA1Ljc2 OTg3IDIuOTU5MjEgNi4yODAzMyAzLjQ2OTY3QzYuNzUxNTMgMy45NDA4NyA3LjQ3NzYxIDQu MjA3MDYgOC40OTA3MiA0LjI0NTIyTDguNzUgNC4yNUM5LjcwODMzIDQuMjUgOS43NDgyNiA1 LjYyNzYgOC44Njk3OSA1Ljc0MjRMOC43NSA1Ljc1QzcuNjAwMzkgNS43NSA2Ljc5MDggNi4w MTk4NyA2LjI4MDMzIDYuNTMwMzNDNS44MDkxMyA3LjAwMTUzIDUuNTQyOTQgNy43Mjc2MSA1 LjUwNDc4IDguNzQwNzJMNS41IDlDNS41IDEwIDQgMTAgNCA5QzQgNy44NTAzOSAzLjczMDE0 IDcuMDQwNzkgMy4yMTk2NyA2LjUzMDMzQzIuNzQ4NDcgNi4wNTkxMyAyLjAyMjM5IDUuNzky OTQgMS4wMDkyOCA1Ljc1NDc4TDAuNzUgNS43NUMtMC4yMDgzMzMgNS43NSAtMC4yNDgyNjQg NC4zNzI0IDAuNjMwMjA4IDQuMjU3NkwwLjc1IDQuMjVDMS44OTk2MSA0LjI1IDIuNzA5MjEg My45ODAxMyAzLjIxOTY3IDMuNDY5NjdDMy43MzAxNCAyLjk1OTIxIDQgMi4xNDk2MSA0IDFD NCAwIDUuNSAwIDUuNSAxWicgZmlsbD0nJTIzRkZCOTAwJy8lM0UlM0Mvc3ZnJTNFJTBBIik7 DQogICAgICBoZWlnaHQ6IDEwcHg7DQogICAgICBwYWRkaW5nLWxlZnQ6IDNweDsNCiAgICAg IGRpc3BsYXk6IGlubGluZS1ibG9jazsNCiAgICB9DQogIDwvc3R5bGU+DQogIDxzdHlsZSBk YXRhLWxvYWQtdGhlbWVkLXN0eWxlcz0idHJ1ZSI+DQogICAgLm9kLU92ZXJsYXlIb3N0IHsN CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgIHotaW5kZXg6IDYwMDsNCiAgICAg IHRvcDogMDsNCiAgICAgIGxlZnQ6IDA7DQogICAgICBib3R0b206IDA7DQogICAgICByaWdo dDogMDsNCiAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjsNCiAgICAgIG92ZXJmbG93OiBoaWRk ZW47DQogICAgfQ0KDQogICAgLm9kLU92ZXJsYXlIb3N0LWNvbnRlbnQgew0KICAgICAgdmlz aWJpbGl0eTogdmlzaWJsZTsNCiAgICB9DQoNCiAgICAub2QtT3ZlcmxheUhvc3Qtb3Zlcmxh eS0tcG9zaXRpb25lZCB7DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgfQ0KICA8 L3N0eWxlPg0KICA8c2NyaXB0IHR5cGU9InRleHQvaHRtbCIgaWQ9Im9kLXRyYW5zY2x1c2lv bi1ob3N0LWRlZmF1bHQiPg0KICAgICAgICAgIDwhLS1rbyB3aXRoOmN1cnJlbnRDb250ZXh0 LS0+PCEtLWtvIHRyYW5zY2x1c2lvbkhvc3Q6JGRhdGEtLT48IS0tL2tvLS0+PCEtLS9rby0t Pg0KICA8L3NjcmlwdD4NCiAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2h0bWwiIGlkPSJvZC10cmFu c2NsdXNpb24taG9zdC1jdXN0b20iPg0KICAgICAgICAgIDwhLS1rbyBob3N0OntkYXRhOntj b250ZXh0czpjb250ZXh0c319LS0+PCEtLS9rby0tPg0KICA8L3NjcmlwdD4NCiAgPHN0eWxl IGRhdGEtbG9hZC10aGVtZWQtc3R5bGVzPSJ0cnVlIj4NCiAgICAub2QtRGlhbG9nSG9zdCB7 DQogICAgICBkaXNwbGF5OiBub25lOw0KICAgIH0NCiAgPC9zdHlsZT4NCiAgPHN0eWxlIGRh dGEtbG9hZC10aGVtZWQtc3R5bGVzPSJ0cnVlIj4NCiAgICAub2QtRGlhbG9nT3ZlcmxheSB7 DQogICAgICBkaXNwbGF5OiBub25lOw0KICAgIH0NCg0KICAgIC5vZC1EaWFsb2cgew0KICAg ICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7DQogICAgICBwb3NpdGlvbjogYWJz b2x1dGU7DQogICAgICB0b3A6IDQ4cHg7DQogICAgICBib3R0b206IDA7DQogICAgICB3aWR0 aDogMTAwJTsNCiAgICAgIGRpc3BsYXk6IGJsb2NrOw0KICAgICAgZm9udC1zaXplOiAwOw0K ICAgICAgbGluZS1oZWlnaHQ6IDEwMHZoOw0KICAgICAgdGV4dC1hbGlnbjogY2VudGVyOw0K ICAgICAgZGlzcGxheTogZmxleDsNCiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7DQogICAg fQ0KDQogICAgW2Rpcj0ibHRyIl0gLm9kLURpYWxvZyB7DQogICAgICBsZWZ0OiAwOw0KICAg IH0NCg0KICAgIFtkaXI9InJ0bCJdIC5vZC1EaWFsb2cgew0KICAgICAgcmlnaHQ6IDA7DQog ICAgfQ0KDQogICAgLm9kLURpYWxvZzo6YmVmb3JlIHsNCiAgICAgIHZlcnRpY2FsLWFsaWdu OiBtaWRkbGU7DQogICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7DQogICAgICBjb250ZW50 OiAiIjsNCiAgICAgIGhlaWdodDogMTAwJTsNCiAgICAgIHdpZHRoOiAwOw0KICAgIH0NCg0K ICAgIC5zbSAub2QtRGlhbG9nIHsNCiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0Ow0K ICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsNCiAgICAgIHBhZGRpbmc6IDA7DQogICAg fQ0KDQogICAgLm9kLURpYWxvZy1tYWluIHsNCiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRk bGU7DQogICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7DQogICAgICBiYWNrZ3JvdW5kLWNv bG9yOiAjZmZmZmZmOw0KICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsNCiAgICAgIGxp bmUtaGVpZ2h0OiBub3JtYWw7DQogICAgICB3aWR0aDogMTAwJTsNCiAgICAgIG1pbi1oZWln aHQ6IDEwMHB4Ow0KICAgICAgb3V0bGluZTogMDsNCiAgICAgIHZpc2liaWxpdHk6IGhpZGRl bjsNCiAgICAgIGJveC1zaGFkb3c6IDAgMjUuNnB4IDU3LjZweCAwIHJnYmEoMCwgMCwgMCwg MC4yMiksDQogICAgICAgIDAgNC44cHggMTQuNHB4IDAgcmdiYSgwLCAwLCAwLCAwLjE4KTsN CiAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsNCiAgICAgIG92ZXJmbG93OiBoaWRkZW47DQog ICAgfQ0KDQogICAgLnNtIC5vZC1EaWFsb2ctbWFpbiB7DQogICAgICBoZWlnaHQ6IDEwMCU7 DQogICAgfQ0KDQogICAgaHRtbFtkaXI9Imx0ciJdIC5vZC1EaWFsb2ctbWFpbiB7DQogICAg ICB0ZXh0LWFsaWduOiBsZWZ0Ow0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJydGwiXSAub2Qt RGlhbG9nLW1haW4gew0KICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7DQogICAgfQ0KDQogICAg QG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpIHsNCiAgICAg IC5vZC1EaWFsb2ctbWFpbiB7DQogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCAjZmZm ZmZmIGluc2V0Ow0KICAgICAgfQ0KICAgIH0NCg0KICAgIEBtZWRpYSBzY3JlZW4gYW5kICgt bXMtaGlnaC1jb250cmFzdDogYmxhY2stb24td2hpdGUpIHsNCiAgICAgIC5vZC1EaWFsb2ct bWFpbiB7DQogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCAjMDAwMDAwIGluc2V0Ow0K ICAgICAgfQ0KICAgIH0NCg0KICAgIC5vZC1EaWFsb2ctbWFpbjpmb2N1cyB7DQogICAgICBv dXRsaW5lOiAwOw0KICAgIH0NCg0KICAgIC5vZC1EaWFsb2ctbWFpbi0tZGlhbG9nIHsNCiAg ICAgIG1hcmdpbjogYXV0bzsNCiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgICB9DQoN CiAgICAub2QtRGlhbG9nLW1haW4tLWNhbGxvdXQgew0KICAgICAgcG9zaXRpb246IGFic29s dXRlOw0KICAgIH0NCg0KICAgIC5vZC1EaWFsb2ctbWFpbi0tdmlzaWJsZSB7DQogICAgICB2 aXNpYmlsaXR5OiB2aXNpYmxlOw0KICAgIH0NCg0KICAgIC5vZC1EaWFsb2ctbWFpbi0tc20g ew0KICAgICAgd2lkdGg6IDM2MHB4Ow0KICAgIH0NCg0KICAgIC5vZC1EaWFsb2ctbWFpbi0t c20ub2QtRGlhbG9nLW1haW4tc3R5bGUtLWJsb2NrZXIgew0KICAgICAgd2lkdGg6IDM0MHB4 Ow0KICAgIH0NCg0KICAgIC5vZC1EaWFsb2ctbWFpbi0tc20ub2QtRGlhbG9nLW1haW4tc3R5 bGUtLXZhdWx0QmxvY2tlciB7DQogICAgICB3aWR0aDogNjIwcHg7DQogICAgfQ0KDQogICAg LnNtIC5vZC1EaWFsb2ctbWFpbi0tbWQub2QtRGlhbG9nLW1haW4tLWFsbG93UGFuZWwsDQog ICAgLnNtIC5vZC1EaWFsb2ctbWFpbi0tc20ub2QtRGlhbG9nLW1haW4tLWFsbG93UGFuZWwg ew0KICAgICAgdG9wOiAwOw0KICAgICAgd2lkdGg6IGF1dG87DQogICAgICBwb3NpdGlvbjog YWJzb2x1dGU7DQogICAgICBib3R0b206IDA7DQogICAgICBsZWZ0OiAwOw0KICAgICAgcmln aHQ6IDA7DQogICAgfQ0KDQogICAgLnNtIC5vZC1EaWFsb2ctbWFpbi0tbWQub2QtRGlhbG9n LW1haW4tLWFsbG93UGFuZWwgLm9kLUJ1dHRvbiwNCiAgICAuc20gLm9kLURpYWxvZy1tYWlu LS1zbS5vZC1EaWFsb2ctbWFpbi0tYWxsb3dQYW5lbCAub2QtQnV0dG9uIHsNCiAgICAgIGRp c3BsYXk6IGlubGluZS1mbGV4Ow0KICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAgICB9 DQoNCiAgICAuc20gLm9kLURpYWxvZy1tYWluLS1tZC5vZC1EaWFsb2ctbWFpbi0tYWxsb3dQ YW5lbCAub2QtQnV0dG9uLS1wcmltYXJ5LA0KICAgIC5zbSAub2QtRGlhbG9nLW1haW4tLXNt Lm9kLURpYWxvZy1tYWluLS1hbGxvd1BhbmVsIC5vZC1CdXR0b24tLXByaW1hcnkgew0KICAg ICAgYm9yZGVyOiBub25lOw0KICAgIH0NCg0KICAgIC5zbSAub2QtRGlhbG9nLW1haW4tLW1k Lm9kLURpYWxvZy1tYWluLS1hbGxvd1BhbmVsIC5vZC1CdXR0b24tLXByaW1hcnk6ZGlzYWJs ZWQsDQogICAgLnNtIC5vZC1EaWFsb2ctbWFpbi0tc20ub2QtRGlhbG9nLW1haW4tLWFsbG93 UGFuZWwgLm9kLUJ1dHRvbi0tcHJpbWFyeTpkaXNhYmxlZCB7DQogICAgICBjb2xvcjogI2M3 YzdjNzsNCiAgICB9DQoNCiAgICAuc20gLm9kLURpYWxvZy1tYWluLS1tZC5vZC1EaWFsb2ct bWFpbi0tYWxsb3dQYW5lbCAub2QtQnV0dG9uLS1wcmltYXJ5OmRpc2FibGVkOmJlZm9yZSwN CiAgICAuc20gLm9kLURpYWxvZy1tYWluLS1zbS5vZC1EaWFsb2ctbWFpbi0tYWxsb3dQYW5l bCAub2QtQnV0dG9uLS1wcmltYXJ5OmRpc2FibGVkOmJlZm9yZSB7DQogICAgICBjb2xvcjog I2M3YzdjNzsNCiAgICB9DQoNCiAgICAuc20gLm9kLURpYWxvZy1tYWluLS1tZC5vZC1EaWFs b2ctbWFpbi0tYWxsb3dQYW5lbCAub2QtQnV0dG9uLS1wcmltYXJ5IC5vZC1CdXR0b24tbGFi ZWwsDQogICAgLnNtIC5vZC1EaWFsb2ctbWFpbi0tc20ub2QtRGlhbG9nLW1haW4tLWFsbG93 UGFuZWwgLm9kLUJ1dHRvbi0tcHJpbWFyeSAub2QtQnV0dG9uLWxhYmVsIHsNCiAgICAgIGRp c3BsYXk6IGlubGluZS1ibG9jazsNCiAgICAgIGZvbnQtc2l6ZTogMTRweDsNCiAgICAgIGNv bG9yOiAjMjQyNDI0Ow0KICAgIH0NCg0KICAgIC5zbSAub2QtRGlhbG9nLW1haW4tLW1kLm9k LURpYWxvZy1tYWluLS1hbGxvd1BhbmVsLm9kLURpYWxvZy0tY2xvc2UgLm9kLURpYWxvZy1i dXR0b24ub2QtRGlhbG9nLWJ1dHRvbi0tY2xvc2UsDQogICAgLnNtIC5vZC1EaWFsb2ctbWFp bi0tc20ub2QtRGlhbG9nLW1haW4tLWFsbG93UGFuZWwub2QtRGlhbG9nLS1jbG9zZSAub2Qt RGlhbG9nLWJ1dHRvbi5vZC1EaWFsb2ctYnV0dG9uLS1jbG9zZSB7DQogICAgICB0b3A6IDhw eDsNCiAgICB9DQoNCiAgICAub2QtRGlhbG9nLW1haW4tLW1kIHsNCiAgICAgIG1heC13aWR0 aDogNDgwcHg7DQogICAgfQ0KDQogICAgLm9kLURpYWxvZy1tYWluLS1sZyB7DQogICAgICBt YXgtd2lkdGg6IDY0MHB4Ow0KICAgIH0NCg0KICAgIC5vZC1EaWFsb2ctbWFpbi0teGxnIHsN CiAgICAgIG1heC13aWR0aDogMTAyNHB4Ow0KICAgIH0NCg0KICAgIC5vZC1EaWFsb2ctbWFp bi0teHhsZyB7DQogICAgICBtYXgtd2lkdGg6IDEzNjZweDsNCiAgICB9DQoNCiAgICAub2Qt RGlhbG9nLW1haW4tLXh4eGxnIHsNCiAgICAgIG1heC13aWR0aDogMTkyMHB4Ow0KICAgIH0N Cg0KICAgIC5pc0ZsdWVudFZOZXh0IC5vZC1EaWFsb2ctbWFpbiB7DQogICAgICBib3JkZXIt cmFkaXVzOiA0cHg7DQogICAgICBib3gtc2hhZG93OiAwIDYuNHB4IDE0LjRweCAwIHJnYmEo MCwgMCwgMCwgMC4xMzIpLA0KICAgICAgICAwIDEuMnB4IDMuNnB4IDAgcmdiYSgwLCAwLCAw LCAwLjEwOCk7DQogICAgfQ0KDQogICAgLm9kLURpYWxvZy1idXR0b24ub2QtRGlhbG9nLWJ1 dHRvbi0tY2xvc2Ugew0KICAgICAgZGlzcGxheTogbm9uZTsNCiAgICB9DQoNCiAgICAuc20g Lm9kLURpYWxvZy1idXR0b24ub2QtRGlhbG9nLWJ1dHRvbi0tY2xvc2Ugew0KICAgICAgdG9w OiA4cHg7DQogICAgfQ0KDQogICAgLm9kLURpYWxvZy5vZC1EaWFsb2ctLWNsb3NlIC5vZC1E aWFsb2ctYnV0dG9uLm9kLURpYWxvZy1idXR0b24tLWNsb3NlIHsNCiAgICAgIGRpc3BsYXk6 IGJsb2NrOw0KICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICAgbWFyZ2luOiAwOw0K ICAgICAgYm9yZGVyOiAwOw0KICAgICAgYmFja2dyb3VuZDogMCAwOw0KICAgICAgY3Vyc29y OiBwb2ludGVyOw0KICAgICAgdG9wOiA1cHg7DQogICAgICBib3JkZXItcmFkaXVzOiAycHg7 DQogICAgICBsaW5lLWhlaWdodDogMzJweDsNCiAgICAgIGhlaWdodDogMzJweDsNCiAgICAg IHdpZHRoOiAzMnB4Ow0KICAgICAgcGFkZGluZzogMDsNCiAgICAgIGNvbG9yOiAjNjE2MTYx Ow0KICAgIH0NCg0KICAgIFtkaXI9Imx0ciJdIC5vZC1EaWFsb2cub2QtRGlhbG9nLS1jbG9z ZSAub2QtRGlhbG9nLWJ1dHRvbi5vZC1EaWFsb2ctYnV0dG9uLS1jbG9zZSB7DQogICAgICBy aWdodDogNXB4Ow0KICAgIH0NCg0KICAgIFtkaXI9InJ0bCJdIC5vZC1EaWFsb2cub2QtRGlh bG9nLS1jbG9zZSAub2QtRGlhbG9nLWJ1dHRvbi5vZC1EaWFsb2ctYnV0dG9uLS1jbG9zZSB7 DQogICAgICBsZWZ0OiA1cHg7DQogICAgfQ0KDQogICAgLm9kLURpYWxvZy5vZC1EaWFsb2ct LWNsb3NlIC5vZC1EaWFsb2ctYnV0dG9uLm9kLURpYWxvZy1idXR0b24tLWNsb3NlOmhvdmVy IHsNCiAgICAgIGNvbG9yOiAjMjQyNDI0Ow0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Yw ZjBmMDsNCiAgICB9DQoNCiAgICAub2QtRGlhbG9nLm9kLURpYWxvZy0tY2xvc2UgLm9kLURp YWxvZy1idXR0b24ub2QtRGlhbG9nLWJ1dHRvbi0tY2xvc2U6YWN0aXZlIHsNCiAgICAgIGNv bG9yOiAjMTQxNDE0Ow0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ViZWJlYjsNCiAgICB9 DQoNCiAgICAub2QtRGlhbG9nLm9kLURpYWxvZy0tY2xvc2UgLm9kLURpYWxvZy1idXR0b24u b2QtRGlhbG9nLWJ1dHRvbi0tY2xvc2UgLm1zLUljb24ubXMtSWNvbi0tQ2FuY2VsIHsNCiAg ICAgIGZvbnQtc2l6ZTogMTZweDsNCiAgICAgIGNvbG9yOiBpbmhlcml0Ow0KICAgIH0NCg0K ICAgIC5zbSAub2QtRGlhbG9nLm9kLURpYWxvZy0tY2xvc2UgLm9kLURpYWxvZy1idXR0b24u b2QtRGlhbG9nLWJ1dHRvbi0tY2xvc2Ugew0KICAgICAgdG9wOiA4cHg7DQogICAgICBsaW5l LWhlaWdodDogMjBweDsNCiAgICB9DQoNCiAgICAuc20gLm9kLURpYWxvZy5vZC1EaWFsb2ct LWNsb3NlIC5vZC1EaWFsb2ctYnV0dG9uLm9kLURpYWxvZy1idXR0b24tLWNsb3NlIC5tcy1J Y29uLm1zLUljb24tLUNhbmNlbCB7DQogICAgICBmb250LXNpemU6IDIwcHg7DQogICAgfQ0K DQogICAgLm9kLURpYWxvZy1zdWJUZXh0IHsNCiAgICAgIG1hcmdpbjogMCAwIDIwcHggMDsN CiAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7DQogICAgICBjb2xvcjogIzI0MjQyNDsNCiAgICB9 DQoNCiAgICAub2QtRGlhbG9nLXN1YlRleHQub2QtRGlhbG9nLXN1YlRleHQtLXMgew0KICAg ICAgZm9udC1zaXplOiAxMnB4Ow0KICAgIH0NCg0KICAgIC5vZC1EaWFsb2ctc3ViVGV4dC5v ZC1EaWFsb2ctc3ViVGV4dC0tbSB7DQogICAgICBmb250LXNpemU6IDE0cHg7DQogICAgfQ0K DQogICAgLm9kLURpYWxvZy1zdWJUZXh0Lm9kLURpYWxvZy1zdWJUZXh0LS1sIHsNCiAgICAg IGZvbnQtc2l6ZTogMTdweDsNCiAgICB9DQoNCiAgICAub2QtRGlhbG9nLWNvbnRlbnQgew0K ICAgICAgcG9zaXRpb246IHJlbGF0aXZlOw0KICAgICAgd2lkdGg6IDEwMCU7DQogICAgfQ0K DQogICAgLnNtIC5vZC1EaWFsb2ctY29udGVudCB7DQogICAgICBoZWlnaHQ6IDEwMCU7DQog ICAgfQ0KDQogICAgLm9kLURpYWxvZy1jb250ZW50IC5vZC1CdXR0b24ub2QtQnV0dG9uLS1j b21wb3VuZDpub3QoOmxhc3QtY2hpbGQpIHsNCiAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7 DQogICAgfQ0KDQogICAgLm1zLU1vZGFsT3ZlcmxheSB7DQogICAgICBkaXNwbGF5OiBibG9j azsNCiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgIGN1cnNvcjogcG9pbnRlcjsN CiAgICAgIGxlZnQ6IDA7DQogICAgICByaWdodDogMDsNCiAgICAgIHRvcDogMDsNCiAgICAg IGJvdHRvbTogMDsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1 NSwgMC40KTsNCiAgICB9DQoNCiAgICBAbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29u dHJhc3Q6IGFjdGl2ZSkgew0KICAgICAgLm1zLU1vZGFsT3ZlcmxheSB7DQogICAgICAgIGRp c3BsYXk6IG5vbmU7DQogICAgICB9DQogICAgfQ0KDQogICAgLm9kLURpYWxvZy0tbXVsdGls aW5lIHsNCiAgICAgIHdpZHRoOiA5NSU7DQogICAgfQ0KDQogICAgW2Rpcj0ibHRyIl0gLm9k LURpYWxvZy1idXR0b24tLWNsb3NlIHsNCiAgICAgIHJpZ2h0OiAxNHB4Ow0KICAgIH0NCg0K ICAgIFtkaXI9InJ0bCJdIC5vZC1EaWFsb2ctYnV0dG9uLS1jbG9zZSB7DQogICAgICBsZWZ0 OiAxNHB4Ow0KICAgIH0NCg0KICAgIFtkaXI9Imx0ciJdIC5vZC1EaWFsb2ctYnV0dG9uLS1j bG9zZSB7DQogICAgICBsZWZ0OiBhdXRvOw0KICAgIH0NCg0KICAgIFtkaXI9InJ0bCJdIC5v ZC1EaWFsb2ctYnV0dG9uLS1jbG9zZSB7DQogICAgICByaWdodDogYXV0bzsNCiAgICB9DQoN CiAgICAub2QtRGlhbG9nLWNvbnRlbnQgew0KICAgICAgZm9udC1zaXplOiAxNHB4Ow0KICAg ICAgbGluZS1oZWlnaHQ6IDIwcHg7DQogICAgfQ0KDQogICAgLm9kLU92ZXJsYXlIb3N0LW92 ZXJsYXkgLm1zLU1vZGFsT3ZlcmxheSB7DQogICAgICBhbmltYXRpb24tbmFtZTogbXMtZmFk ZUluOw0KICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxNjdtczsNCiAgICAgIGFuaW1hdGlv bi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjEsIDAuOSwgMC4yLCAxKTsNCiAg ICAgIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7DQogICAgfQ0KDQogICAgQG1lZGlhIChw cmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHsNCiAgICAgIC5vZC1PdmVybGF5SG9z dC1vdmVybGF5IC5tcy1Nb2RhbE92ZXJsYXkgew0KICAgICAgICBhbmltYXRpb246IG5vbmU7 DQogICAgICB9DQogICAgfQ0KDQogICAgLm9kLU92ZXJsYXlIb3N0LW92ZXJsYXkgLm9kLURp YWxvZy1tYWluIHsNCiAgICAgIGFuaW1hdGlvbi1uYW1lOiBtcy1mYWRlSW4sIG1zLXNsaWRl RG93bkluMTA7DQogICAgICBhbmltYXRpb24tZHVyYXRpb246IDE2N21zOw0KICAgICAgYW5p bWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMSwgMC4yNSwgMC43NSwg MC45KTsNCiAgICAgIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7DQogICAgfQ0KDQogICAg QG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHsNCiAgICAgIC5vZC1P dmVybGF5SG9zdC1vdmVybGF5IC5vZC1EaWFsb2ctbWFpbiB7DQogICAgICAgIGFuaW1hdGlv bjogbm9uZTsNCiAgICAgIH0NCiAgICB9DQoNCiAgICAub2QtT3ZlcmxheUhvc3Qtb3Zlcmxh eS5vZC1PdmVybGF5SG9zdC1vdmVybGF5LS1jbG9zZWQgLm1zLU1vZGFsT3ZlcmxheSB7DQog ICAgICBhbmltYXRpb24tbmFtZTogbXMtZmFkZU91dDsNCiAgICAgIGFuaW1hdGlvbi1kdXJh dGlvbjogMTY3bXM7DQogICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1i ZXppZXIoMC4xLCAwLjksIDAuMiwgMSk7DQogICAgICBhbmltYXRpb24tZmlsbC1tb2RlOiBi b3RoOw0KICAgIH0NCg0KICAgIEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVk dWNlKSB7DQogICAgICAub2QtT3ZlcmxheUhvc3Qtb3ZlcmxheS5vZC1PdmVybGF5SG9zdC1v dmVybGF5LS1jbG9zZWQgLm1zLU1vZGFsT3ZlcmxheSB7DQogICAgICAgIGFuaW1hdGlvbjog bm9uZTsNCiAgICAgIH0NCiAgICB9DQoNCiAgICAub2QtT3ZlcmxheUhvc3Qtb3ZlcmxheS5v ZC1PdmVybGF5SG9zdC1vdmVybGF5LS1jbG9zZWQgLm9kLURpYWxvZy1tYWluIHsNCiAgICAg IGFuaW1hdGlvbi1uYW1lOiBtcy1mYWRlT3V0LCBtcy1zbGlkZVVwT3V0MTA7DQogICAgICBh bmltYXRpb24tZHVyYXRpb246IDE2N21zOw0KICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5j dGlvbjogY3ViaWMtYmV6aWVyKDAuMSwgMC4yNSwgMC43NSwgMC45KTsNCiAgICAgIGFuaW1h dGlvbi1maWxsLW1vZGU6IGJvdGg7DQogICAgfQ0KDQogICAgQG1lZGlhIChwcmVmZXJzLXJl ZHVjZWQtbW90aW9uOiByZWR1Y2UpIHsNCiAgICAgIC5vZC1PdmVybGF5SG9zdC1vdmVybGF5 Lm9kLU92ZXJsYXlIb3N0LW92ZXJsYXktLWNsb3NlZCAub2QtRGlhbG9nLW1haW4gew0KICAg ICAgICBhbmltYXRpb246IG5vbmU7DQogICAgICB9DQogICAgfQ0KDQogICAgLm9kLU92ZXJs YXlIb3N0LW92ZXJsYXkub2QtT3ZlcmxheUhvc3Qtb3ZlcmxheS0tY2xvc2VkIC5vZC1EaWFs b2cgew0KICAgICAgdmlzaWJpbGl0eTogaGlkZGVuOw0KICAgICAgdHJhbnNpdGlvbjogdmlz aWJpbGl0eSAwcyBsaW5lYXIgMjY3bXM7DQogICAgfQ0KICA8L3N0eWxlPg0KICA8c3R5bGUg ZGF0YS1sb2FkLXRoZW1lZC1zdHlsZXM9InRydWUiPg0KICAgIC5vZC1MaW5rIHsNCiAgICAg IGNvbG9yOiAjMDA3OGQ0Ow0KICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOw0KICAgICAg Y3Vyc29yOiBwb2ludGVyOw0KICAgICAgb3V0bGluZTogMDsNCiAgICB9DQoNCiAgICAub2Qt TGluazpmb2N1cywNCiAgICAub2QtTGluazpob3ZlciB7DQogICAgICBjb2xvcjogIzAwNDU3 ODsNCiAgICB9DQoNCiAgICAub2QtTGluazphY3RpdmUgew0KICAgICAgY29sb3I6ICMwMDc4 ZDQ7DQogICAgfQ0KDQogICAgLm9kLUxpbmtbZGlzYWJsZWRdIHsNCiAgICAgIGN1cnNvcjog ZGVmYXVsdDsNCiAgICAgIGNvbG9yOiAjOWU5ZTllOw0KICAgIH0NCg0KICAgIC5vZC1EaWFs b2ctYWN0aW9uc0xvYWRpbmcgew0KICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOw0KICAg ICAgcGFkZGluZy1ib3R0b206IDdweDsNCiAgICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207 DQogICAgfQ0KDQogICAgW2Rpcj0ibHRyIl0gLm9kLURpYWxvZy1hY3Rpb25zTG9hZGluZyB7 DQogICAgICBwYWRkaW5nLXJpZ2h0OiA1cHg7DQogICAgfQ0KDQogICAgW2Rpcj0icnRsIl0g Lm9kLURpYWxvZy1hY3Rpb25zTG9hZGluZyB7DQogICAgICBwYWRkaW5nLWxlZnQ6IDVweDsN CiAgICB9DQoNCiAgICAub2QtRGlhbG9nLW1haW4tLWNhbGxvdXQgLm9kLURpYWxvZy1pbm5l ciB7DQogICAgICBwYWRkaW5nOiAwOw0KICAgIH0NCg0KICAgIC5vZC1EaWFsb2ctbWFpbi0t Y2FsbG91dCAub2QtRGlhbG9nLWhlYWRlciB7DQogICAgICBwYWRkaW5nOiAwOw0KICAgIH0N Cg0KICAgIC5zbSAub2QtRGlhbG9nLW1haW4tLW1kLm9kLURpYWxvZy1tYWluLS1hbGxvd1Bh bmVsIC5vZC1EaWFsb2ctYWN0aW9ucywNCiAgICAuc20gLm9kLURpYWxvZy1tYWluLS1zbS5v ZC1EaWFsb2ctbWFpbi0tYWxsb3dQYW5lbCAub2QtRGlhbG9nLWFjdGlvbnMgew0KICAgICAg cG9zaXRpb246IGFic29sdXRlOw0KICAgICAgdG9wOiAwOw0KICAgICAgbGVmdDogMDsNCiAg ICAgIHJpZ2h0OiAwOw0KICAgICAgbWFyZ2luLXRvcDogMDsNCiAgICAgIGJhY2tncm91bmQt Y29sb3I6ICNmMGYwZjA7DQogICAgICBwYWRkaW5nOiAwIDEwcHggMCAwOw0KICAgICAgaGVp Z2h0OiA0NHB4Ow0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJydGwiXSAuc20gLm9kLURpYWxv Zy1tYWluLS1tZC5vZC1EaWFsb2ctbWFpbi0tYWxsb3dQYW5lbCAub2QtRGlhbG9nLWFjdGlv bnMsDQogICAgaHRtbFtkaXI9InJ0bCJdIC5zbSAub2QtRGlhbG9nLW1haW4tLXNtLm9kLURp YWxvZy1tYWluLS1hbGxvd1BhbmVsIC5vZC1EaWFsb2ctYWN0aW9ucyB7DQogICAgICBwYWRk aW5nOiAwIDAgMCAxMHB4Ow0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJsdHIiXSAuc20gLm9k LURpYWxvZy1tYWluLS1tZC5vZC1EaWFsb2ctbWFpbi0tYWxsb3dQYW5lbCAub2QtRGlhbG9n LWFjdGlvbnMgLm9kLURpYWxvZy1hY3Rpb25zUmlnaHQsDQogICAgaHRtbFtkaXI9Imx0ciJd IC5zbSAub2QtRGlhbG9nLW1haW4tLXNtLm9kLURpYWxvZy1tYWluLS1hbGxvd1BhbmVsIC5v ZC1EaWFsb2ctYWN0aW9ucyAub2QtRGlhbG9nLWFjdGlvbnNSaWdodCB7DQogICAgICBmbG9h dDogbGVmdDsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0icnRsIl0gLnNtIC5vZC1EaWFsb2ct bWFpbi0tbWQub2QtRGlhbG9nLW1haW4tLWFsbG93UGFuZWwgLm9kLURpYWxvZy1hY3Rpb25z IC5vZC1EaWFsb2ctYWN0aW9uc1JpZ2h0LA0KICAgIGh0bWxbZGlyPSJydGwiXSAuc20gLm9k LURpYWxvZy1tYWluLS1zbS5vZC1EaWFsb2ctbWFpbi0tYWxsb3dQYW5lbCAub2QtRGlhbG9n LWFjdGlvbnMgLm9kLURpYWxvZy1hY3Rpb25zUmlnaHQgew0KICAgICAgZmxvYXQ6IHJpZ2h0 Ow0KICAgIH0NCg0KICAgIC5zbSAub2QtRGlhbG9nLW1haW4tLW1kLm9kLURpYWxvZy1tYWlu LS1hbGxvd1BhbmVsIC5vZC1EaWFsb2ctYWN0aW9ucyAubXMtSWNvbi0tU2F2ZSwNCiAgICAu c20gLm9kLURpYWxvZy1tYWluLS1zbS5vZC1EaWFsb2ctbWFpbi0tYWxsb3dQYW5lbCAub2Qt RGlhbG9nLWFjdGlvbnMgLm1zLUljb24tLVNhdmUgew0KICAgICAgZm9udC1zaXplOiAyMHB4 Ow0KICAgIH0NCg0KICAgIC5zbSAub2QtRGlhbG9nLW1haW4tLW1kLm9kLURpYWxvZy1tYWlu LS1hbGxvd1BhbmVsIC5vZC1EaWFsb2ctYWN0aW9uLA0KICAgIC5zbSAub2QtRGlhbG9nLW1h aW4tLXNtLm9kLURpYWxvZy1tYWluLS1hbGxvd1BhbmVsIC5vZC1EaWFsb2ctYWN0aW9uIHsN CiAgICAgIGJhY2tncm91bmQ6IDAgMDsNCiAgICAgIGhlaWdodDogNDRweDsNCiAgICB9DQoN CiAgICBbZGlyPSJsdHIiXSAuc20gLm9kLURpYWxvZy1tYWluLS1tZC5vZC1EaWFsb2ctbWFp bi0tYWxsb3dQYW5lbCAub2QtRGlhbG9nLWFjdGlvbiwNCiAgICBbZGlyPSJsdHIiXSAuc20g Lm9kLURpYWxvZy1tYWluLS1zbS5vZC1EaWFsb2ctbWFpbi0tYWxsb3dQYW5lbCAub2QtRGlh bG9nLWFjdGlvbiB7DQogICAgICBwYWRkaW5nLXJpZ2h0OiAxNnB4Ow0KICAgIH0NCg0KICAg IFtkaXI9InJ0bCJdIC5zbSAub2QtRGlhbG9nLW1haW4tLW1kLm9kLURpYWxvZy1tYWluLS1h bGxvd1BhbmVsIC5vZC1EaWFsb2ctYWN0aW9uLA0KICAgIFtkaXI9InJ0bCJdIC5zbSAub2Qt RGlhbG9nLW1haW4tLXNtLm9kLURpYWxvZy1tYWluLS1hbGxvd1BhbmVsIC5vZC1EaWFsb2ct YWN0aW9uIHsNCiAgICAgIHBhZGRpbmctbGVmdDogMTZweDsNCiAgICB9DQoNCiAgICBbZGly PSJsdHIiXSAuc20gLm9kLURpYWxvZy1tYWluLS1tZC5vZC1EaWFsb2ctbWFpbi0tYWxsb3dQ YW5lbCAub2QtRGlhbG9nLWFjdGlvbiwNCiAgICBbZGlyPSJsdHIiXSAuc20gLm9kLURpYWxv Zy1tYWluLS1zbS5vZC1EaWFsb2ctbWFpbi0tYWxsb3dQYW5lbCAub2QtRGlhbG9nLWFjdGlv biB7DQogICAgICBwYWRkaW5nLWxlZnQ6IDE2cHg7DQogICAgfQ0KDQogICAgW2Rpcj0icnRs Il0gLnNtIC5vZC1EaWFsb2ctbWFpbi0tbWQub2QtRGlhbG9nLW1haW4tLWFsbG93UGFuZWwg Lm9kLURpYWxvZy1hY3Rpb24sDQogICAgW2Rpcj0icnRsIl0gLnNtIC5vZC1EaWFsb2ctbWFp bi0tc20ub2QtRGlhbG9nLW1haW4tLWFsbG93UGFuZWwgLm9kLURpYWxvZy1hY3Rpb24gew0K ICAgICAgcGFkZGluZy1yaWdodDogMTZweDsNCiAgICB9DQoNCiAgICAuc20gLm9kLURpYWxv Zy1tYWluLS1tZC5vZC1EaWFsb2ctbWFpbi0tYWxsb3dQYW5lbCAub2QtRGlhbG9nLWFjdGlv biAub2QtQnV0dG9uLWljb24sDQogICAgLnNtIC5vZC1EaWFsb2ctbWFpbi0tc20ub2QtRGlh bG9nLW1haW4tLWFsbG93UGFuZWwgLm9kLURpYWxvZy1hY3Rpb24gLm9kLUJ1dHRvbi1pY29u IHsNCiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsNCiAgICAgIG1hcmdpbi10b3A6IDVw eDsNCiAgICAgIG1hcmdpbi1yaWdodDogNnB4Ow0KICAgICAgY29sb3I6ICMwMDc4ZDQ7DQog ICAgfQ0KDQogICAgLnNtIC5vZC1EaWFsb2ctbWFpbi0tbWQub2QtRGlhbG9nLW1haW4tLWFs bG93UGFuZWwgLm9kLURpYWxvZy1hY3Rpb24gLm9kLUJ1dHRvbi1sYWJlbCwNCiAgICAuc20g Lm9kLURpYWxvZy1tYWluLS1zbS5vZC1EaWFsb2ctbWFpbi0tYWxsb3dQYW5lbCAub2QtRGlh bG9nLWFjdGlvbiAub2QtQnV0dG9uLWxhYmVsIHsNCiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7 DQogICAgICBmb250LXNpemU6IDE0cHg7DQogICAgfQ0KDQogICAgLnNtIC5vZC1EaWFsb2ct bWFpbi0tbWQub2QtRGlhbG9nLW1haW4tLWFsbG93UGFuZWwgLm9kLURpYWxvZy1hY3Rpb246 aG92ZXIsDQogICAgLnNtIC5vZC1EaWFsb2ctbWFpbi0tc20ub2QtRGlhbG9nLW1haW4tLWFs bG93UGFuZWwgLm9kLURpYWxvZy1hY3Rpb246aG92ZXIgew0KICAgICAgYmFja2dyb3VuZC1j b2xvcjogI2RlZWNmOTsNCiAgICAgIGNvbG9yOiAjMDA3OGQ0Ow0KICAgIH0NCg0KICAgIC5z bSAub2QtRGlhbG9nLW1haW4tLW1kLm9kLURpYWxvZy1tYWluLS1hbGxvd1BhbmVsIC5vZC1E aWFsb2ctaGVhZGVyLA0KICAgIC5zbSAub2QtRGlhbG9nLW1haW4tLXNtLm9kLURpYWxvZy1t YWluLS1hbGxvd1BhbmVsIC5vZC1EaWFsb2ctaGVhZGVyIHsNCiAgICAgIHBhZGRpbmc6IDQ4 cHggMTZweCAwIDE2cHg7DQogICAgfQ0KDQogICAgaHRtbFtkaXI9InJ0bCJdIC5zbSAub2Qt RGlhbG9nLW1haW4tLW1kLm9kLURpYWxvZy1tYWluLS1hbGxvd1BhbmVsIC5vZC1EaWFsb2ct aGVhZGVyLA0KICAgIGh0bWxbZGlyPSJydGwiXSAuc20gLm9kLURpYWxvZy1tYWluLS1zbS5v ZC1EaWFsb2ctbWFpbi0tYWxsb3dQYW5lbCAub2QtRGlhbG9nLWhlYWRlciB7DQogICAgICBw YWRkaW5nOiA0OHB4IDE2cHggMCAxNnB4Ow0KICAgIH0NCg0KICAgIC5zbSAub2QtRGlhbG9n LW1haW4tLW1kLm9kLURpYWxvZy1tYWluLS1hbGxvd1BhbmVsIC5vZC1EaWFsb2ctaW5uZXIs DQogICAgLnNtIC5vZC1EaWFsb2ctbWFpbi0tc20ub2QtRGlhbG9nLW1haW4tLWFsbG93UGFu ZWwgLm9kLURpYWxvZy1pbm5lciB7DQogICAgICBwYWRkaW5nOiAxNnB4Ow0KICAgIH0NCg0K ICAgIC5zbSAub2QtRGlhbG9nLW1haW4tLW1kLm9kLURpYWxvZy1tYWluLS1hbGxvd1BhbmVs IC5vZC1CdXR0b246ZGlzYWJsZWQgLm9kLUJ1dHRvbi1pY29uLA0KICAgIC5zbSAub2QtRGlh bG9nLW1haW4tLXNtLm9kLURpYWxvZy1tYWluLS1hbGxvd1BhbmVsIC5vZC1CdXR0b246ZGlz YWJsZWQgLm9kLUJ1dHRvbi1pY29uIHsNCiAgICAgIGNvbG9yOiAjYzdjN2M3Ow0KICAgIH0N Cg0KICAgIC5zbSAub2QtRGlhbG9nLW1haW4tLW1kLm9kLURpYWxvZy1tYWluLS1hbGxvd1Bh bmVsIC5vZC1CdXR0b246ZGlzYWJsZWQgLm9kLUJ1dHRvbi1sYWJlbCwNCiAgICAuc20gLm9k LURpYWxvZy1tYWluLS1zbS5vZC1EaWFsb2ctbWFpbi0tYWxsb3dQYW5lbCAub2QtQnV0dG9u OmRpc2FibGVkIC5vZC1CdXR0b24tbGFiZWwgew0KICAgICAgY29sb3I6ICNjN2M3Yzc7DQog ICAgfQ0KDQogICAgLm9kLURpYWxvZy5vZC1EaWFsb2ctLWNsb3NlIC5vZC1EaWFsb2ctYnV0 dG9uLm9kLURpYWxvZy1idXR0b24tLWJhY2sgew0KICAgICAgcGFkZGluZzogNXB4IDEwcHgg NXB4IDA7DQogICAgICBiYWNrZ3JvdW5kOiAwIDA7DQogICAgICBib3JkZXI6IDA7DQogICAg ICBjdXJzb3I6IHBvaW50ZXI7DQogICAgfQ0KDQogICAgaHRtbFtkaXI9InJ0bCJdIC5vZC1E aWFsb2cub2QtRGlhbG9nLS1jbG9zZSAub2QtRGlhbG9nLWJ1dHRvbi5vZC1EaWFsb2ctYnV0 dG9uLS1iYWNrIHsNCiAgICAgIHBhZGRpbmc6IDVweCAwIDVweCAxMHB4Ow0KICAgIH0NCg0K ICAgIC5vZC1EaWFsb2cub2QtRGlhbG9nLS1jbG9zZSAub2QtRGlhbG9nLWJ1dHRvbi5vZC1E aWFsb2ctYnV0dG9uLS1iYWNrIC5tcy1JY29uLm1zLUljb24tLUJhY2sgew0KICAgICAgY29s b3I6ICM2MTYxNjE7DQogICAgICBmb250LXNpemU6IDE2cHg7DQogICAgfQ0KDQogICAgLm1z LURpYWxvZy1idXR0b24tLWNsb3NlIHsNCiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAg ICAgIHRvcDogMTJweDsNCiAgICAgIGJhY2tncm91bmQ6IDAgMDsNCiAgICAgIGJvcmRlcjog bm9uZTsNCiAgICAgIGN1cnNvcjogcG9pbnRlcjsNCiAgICB9DQoNCiAgICBbZGlyPSJsdHIi XSAubXMtRGlhbG9nLWJ1dHRvbi0tY2xvc2Ugew0KICAgICAgcmlnaHQ6IDhweDsNCiAgICB9 DQoNCiAgICBbZGlyPSJydGwiXSAubXMtRGlhbG9nLWJ1dHRvbi0tY2xvc2Ugew0KICAgICAg bGVmdDogOHB4Ow0KICAgIH0NCg0KICAgIC5tcy1EaWFsb2ctYnV0dG9uLS1jbG9zZSAubXMt SWNvbiB7DQogICAgICBmb250LXNpemU6IDE2cHg7DQogICAgfQ0KDQogICAgLm9kLURpYWxv Zy1oZWFkZXIgew0KICAgICAgcG9zaXRpb246IHJlbGF0aXZlOw0KICAgICAgd2lkdGg6IDEw MCU7DQogICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94Ow0KICAgICAgd29yZC13cmFwOiBi cmVhay13b3JkOw0KICAgICAgcGFkZGluZzogMjRweCA0MHB4IDAgMjRweDsNCiAgICB9DQoN CiAgICAub2QtRGlhbG9nLWhlYWRlciAub2QtRGlhbG9nLXRpdGxlIHsNCiAgICAgIG1hcmdp bjogMDsNCiAgICAgIGNvbG9yOiAjMjQyNDI0Ow0KICAgICAgZGlzcGxheTogaW5saW5lOw0K ICAgICAgZm9udC1zaXplOiAyMHB4Ow0KICAgICAgZm9udC13ZWlnaHQ6IDYwMDsNCiAgICB9 DQoNCiAgICAub2QtRGlhbG9nLWhlYWRlciAub2QtRGlhbG9nLXRpdGxlIC5vZC1EaWFsb2ct dGl0bGVJY29uOjphZnRlciB7DQogICAgICBjb250ZW50OiAiIjsNCiAgICB9DQoNCiAgICBb ZGlyPSJsdHIiXSAub2QtRGlhbG9nLWhlYWRlciAub2QtRGlhbG9nLXRpdGxlIC5vZC1EaWFs b2ctdGl0bGVJY29uOjphZnRlciB7DQogICAgICBtYXJnaW4tcmlnaHQ6IDE2cHg7DQogICAg fQ0KDQogICAgW2Rpcj0icnRsIl0gLm9kLURpYWxvZy1oZWFkZXIgLm9kLURpYWxvZy10aXRs ZSAub2QtRGlhbG9nLXRpdGxlSWNvbjo6YWZ0ZXIgew0KICAgICAgbWFyZ2luLWxlZnQ6IDE2 cHg7DQogICAgfQ0KDQogICAgLm9kLURpYWxvZy1oZWFkZXIgLm9kLURpYWxvZy10aXRsZSAu b2QtRGlhbG9nLXRpdGxlSWNvbiAub2QtSWNvbkdseXBoIHsNCiAgICAgIGRpc3BsYXk6IGlu bGluZS1ibG9jazsNCiAgICAgIHRvcDogOHB4Ow0KICAgICAgZm9udC1zaXplOiAyOHB4Ow0K ICAgIH0NCg0KICAgIC5vZC1EaWFsb2ctaGVhZGVyLm9kLURpYWxvZy1oZWFkZXItLWxhcmdl IHsNCiAgICAgIHBhZGRpbmc6IDMwcHggMjBweDsNCiAgICAgIG1hcmdpbi1ib3R0b206IDEw cHg7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3OGQ0Ow0KICAgIH0NCg0KICAgIC5v ZC1EaWFsb2ctaGVhZGVyLm9kLURpYWxvZy1oZWFkZXItLWxhcmdlIC5vZC1EaWFsb2ctdGl0 bGUgew0KICAgICAgZm9udC13ZWlnaHQ6IDEwMDsNCiAgICAgIGZvbnQtc2l6ZTogMjhweDsN CiAgICAgIGNvbG9yOiAjZmZmZmZmOw0KICAgIH0NCg0KICAgIC5vZC1EaWFsb2ctaW5uZXIg ew0KICAgICAgaGVpZ2h0OiAxMDAlOw0KICAgICAgcGFkZGluZzogMThweCAyNHB4IDI0cHg7 DQogICAgfQ0KDQogICAgLm9kLURpYWxvZy1hY3Rpb25zIHsNCiAgICAgIHBvc2l0aW9uOiBy ZWxhdGl2ZTsNCiAgICAgIHdpZHRoOiAxMDAlOw0KICAgICAgaGVpZ2h0OiAzMnB4Ow0KICAg ICAgbWFyZ2luLXRvcDogMjRweDsNCiAgICAgIHpvb206IDE7DQogICAgfQ0KDQogICAgLm9k LURpYWxvZy1hY3Rpb25zOjphZnRlciwNCiAgICAub2QtRGlhbG9nLWFjdGlvbnM6OmJlZm9y ZSB7DQogICAgICBkaXNwbGF5OiB0YWJsZTsNCiAgICAgIGNvbnRlbnQ6ICIiOw0KICAgICAg bGluZS1oZWlnaHQ6IDA7DQogICAgfQ0KDQogICAgLm9kLURpYWxvZy1hY3Rpb25zOjphZnRl ciB7DQogICAgICBjbGVhcjogYm90aDsNCiAgICB9DQoNCiAgICAub2QtRGlhbG9nLWFjdGlv biAub2QtQnV0dG9uLWljb24gew0KICAgICAgZGlzcGxheTogbm9uZTsNCiAgICB9DQoNCiAg ICAub2QtRGlhbG9nLWFjdGlvbi5vZC1EaWFsb2ctYWN0aW9uLS1saW5rIHsNCiAgICAgIGJv cmRlcjogMDsNCiAgICAgIGN1cnNvcjogcG9pbnRlcjsNCiAgICAgIGJveC1zaXppbmc6IGJv cmRlci1ib3g7DQogICAgICBib3gtc2hhZG93OiBub25lOw0KICAgICAgbWFyZ2luOiAwOw0K ICAgICAgcGFkZGluZzogMDsNCiAgICAgIGNvbG9yOiAjMDA3OGQ0Ow0KICAgICAgdGV4dC1k ZWNvcmF0aW9uOiBub25lOw0KICAgICAgY3Vyc29yOiBwb2ludGVyOw0KICAgICAgb3V0bGlu ZTogMDsNCiAgICAgIHBhZGRpbmc6IDAgMCAwIDRweDsNCiAgICAgIGJhY2tncm91bmQ6IDAg MDsNCiAgICB9DQoNCiAgICAub2QtRGlhbG9nLWFjdGlvbi5vZC1EaWFsb2ctYWN0aW9uLS1s aW5rOmZvY3VzLA0KICAgIC5vZC1EaWFsb2ctYWN0aW9uLm9kLURpYWxvZy1hY3Rpb24tLWxp bms6aG92ZXIgew0KICAgICAgY29sb3I6ICMwMDQ1Nzg7DQogICAgfQ0KDQogICAgLm9kLURp YWxvZy1hY3Rpb24ub2QtRGlhbG9nLWFjdGlvbi0tbGluazphY3RpdmUgew0KICAgICAgY29s b3I6ICMwMDc4ZDQ7DQogICAgfQ0KDQogICAgLm9kLURpYWxvZy1hY3Rpb24ub2QtRGlhbG9n LWFjdGlvbi0tbGlua1tkaXNhYmxlZF0gew0KICAgICAgY3Vyc29yOiBkZWZhdWx0Ow0KICAg ICAgY29sb3I6ICM5ZTllOWU7DQogICAgfQ0KDQogICAgaHRtbFtkaXI9InJ0bCJdIC5vZC1E aWFsb2ctYWN0aW9uLm9kLURpYWxvZy1hY3Rpb24tLWxpbmsgew0KICAgICAgcGFkZGluZzog MCA0cHggMCAwOw0KICAgIH0NCg0KICAgIC5vZC1EaWFsb2ctYWN0aW9uLm9kLURpYWxvZy1h Y3Rpb24tLWxpbmsgLm9kLUJ1dHRvbi1sYWJlbCB7DQogICAgICBmb250LXdlaWdodDogNDAw Ow0KICAgICAgY29sb3I6ICMwMDc4ZDQ7DQogICAgfQ0KDQogICAgLm9kLURpYWxvZy1hY3Rp b24ub2QtRGlhbG9nLWFjdGlvbi0tbGluazpob3ZlciAub2QtQnV0dG9uLWxhYmVsIHsNCiAg ICAgIGNvbG9yOiAjMDA0NTc4Ow0KICAgIH0NCg0KICAgIC5zbSAub2QtRGlhbG9nLWFjdGlv biAub2QtQnV0dG9uLWxhYmVsIHsNCiAgICAgIGZvbnQtc2l6ZTogMTJweDsNCiAgICB9DQoN CiAgICBodG1sW2Rpcj0ibHRyIl0gLm9kLURpYWxvZy1hY3Rpb25zUmlnaHQgew0KICAgICAg ZmxvYXQ6IHJpZ2h0Ow0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJydGwiXSAub2QtRGlhbG9n LWFjdGlvbnNSaWdodCB7DQogICAgICBmbG9hdDogbGVmdDsNCiAgICB9DQoNCiAgICBbZGly PSJsdHIiXSAub2QtRGlhbG9nLWFjdGlvbnNSaWdodCAub2QtRGlhbG9nLWFjdGlvbjpub3Qo Omxhc3QtY2hpbGQpIHsNCiAgICAgIG1hcmdpbi1yaWdodDogOHB4Ow0KICAgIH0NCg0KICAg IFtkaXI9InJ0bCJdIC5vZC1EaWFsb2ctYWN0aW9uc1JpZ2h0IC5vZC1EaWFsb2ctYWN0aW9u Om5vdCg6bGFzdC1jaGlsZCkgew0KICAgICAgbWFyZ2luLWxlZnQ6IDhweDsNCiAgICB9DQoN CiAgICBodG1sW2Rpcj0ibHRyIl0gLm9kLURpYWxvZy5vZC1EaWFsb2ctLWxnSGVhZGVyIC5v ZC1EaWFsb2ctYWN0aW9uc1JpZ2h0IHsNCiAgICAgIGZsb2F0OiByaWdodDsNCiAgICB9DQoN CiAgICBodG1sW2Rpcj0icnRsIl0gLm9kLURpYWxvZy5vZC1EaWFsb2ctLWxnSGVhZGVyIC5v ZC1EaWFsb2ctYWN0aW9uc1JpZ2h0IHsNCiAgICAgIGZsb2F0OiBsZWZ0Ow0KICAgIH0NCg0K ICAgIFtkaXI9Imx0ciJdIC5vZC1EaWFsb2cub2QtRGlhbG9nLS1sZ0hlYWRlciAub2QtRGlh bG9nLWFjdGlvbnNSaWdodCAub2QtRGlhbG9nLWFjdGlvbjpub3QoOmxhc3QtY2hpbGQpIHsN CiAgICAgIG1hcmdpbi1yaWdodDogMTVweDsNCiAgICB9DQoNCiAgICBbZGlyPSJydGwiXSAu b2QtRGlhbG9nLm9kLURpYWxvZy0tbGdIZWFkZXIgLm9kLURpYWxvZy1hY3Rpb25zUmlnaHQg Lm9kLURpYWxvZy1hY3Rpb246bm90KDpsYXN0LWNoaWxkKSB7DQogICAgICBtYXJnaW4tbGVm dDogMTVweDsNCiAgICB9DQogIDwvc3R5bGU+DQogIDxzdHlsZSBkYXRhLWxvYWQtdGhlbWVk LXN0eWxlcz0idHJ1ZSI+DQogICAgQGtleWZyYW1lcyBjb21tYW5kQmFyQm94U2hhZG93QW5p bWF0aW9uIHsNCiAgICAgIDAlIHsNCiAgICAgICAgYm94LXNoYWRvdzogbm9uZTsNCiAgICAg ICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7DQogICAgICB9DQoNCiAgICAgIDEw MCUgew0KICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOw0KICAgICAgICBib3gt c2hhZG93OiAwIDMuMnB4IDcuMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjEzMiksDQogICAgICAg ICAgMCAwLjZweCAxLjhweCAwIHJnYmEoMCwgMCwgMCwgMC4xMDgpOw0KICAgICAgfQ0KICAg IH0NCg0KICAgIEBrZXlmcmFtZXMgY29tbWFuZEJhckRpdmlkZXJBbmltYXRpb24gew0KICAg ICAgMCUgew0KICAgICAgICBvcGFjaXR5OiAxOw0KICAgICAgfQ0KDQogICAgICAxMDAlIHsN CiAgICAgICAgb3BhY2l0eTogMDsNCiAgICAgIH0NCiAgICB9DQoNCiAgICAub2QtUGFuZWxI b3N0IHsNCiAgICAgIGRpc3BsYXk6IG5vbmU7DQogICAgfQ0KDQogICAgLlNQUGFnZUNocm9t ZSAub2QtUGFuZWwgew0KICAgICAgdG9wOiAwOw0KICAgIH0NCg0KICAgIC5vZC1QYW5lbCB7 DQogICAgICBvdXRsaW5lOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7DQogICAgICBwb3NpdGlv bjogYWJzb2x1dGU7DQogICAgICB0b3A6IDQ4cHg7DQogICAgICBib3R0b206IDA7DQogICAg ICB3aWR0aDogMTAwJTsNCiAgICAgIG1heC13aWR0aDogMTAwJTsNCiAgICAgIGJhY2tncm91 bmQ6ICNmZmZmZmY7DQogICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94Ow0KICAgICAgdHJh bnNpdGlvbjogd2lkdGggMC4zcyBlYXNlLW91dDsNCiAgICAgIGJveC1zaGFkb3c6IC0zMHB4 IDAgMzBweCAtMzBweCByZ2JhKDAsIDAsIDAsIDAuNCk7DQogICAgICBib3gtc2hhZG93OiAw IDI1LjZweCA1Ny42cHggMCByZ2JhKDAsIDAsIDAsIDAuMjIpLA0KICAgICAgICAwIDQuOHB4 IDE0LjRweCAwIHJnYmEoMCwgMCwgMCwgMC4xOCk7DQogICAgfQ0KDQogICAgW2Rpcj0ibHRy Il0gLm9kLVBhbmVsIHsNCiAgICAgIHJpZ2h0OiAwOw0KICAgIH0NCg0KICAgIFtkaXI9InJ0 bCJdIC5vZC1QYW5lbCB7DQogICAgICBsZWZ0OiAwOw0KICAgIH0NCg0KICAgIC5vZC1QYW5l bC5vZC1QYW5lbC0tcmVhY3RTdWl0ZU5hdiB7DQogICAgICB0b3A6IDQ4cHg7DQogICAgfQ0K DQogICAgaHRtbFtkaXI9InJ0bCJdIC5vZC1QYW5lbCB7DQogICAgICBib3gtc2hhZG93OiAz MHB4IDAgMzBweCAtMzBweCByZ2JhKDAsIDAsIDAsIDAuNCk7DQogICAgfQ0KDQogICAgLm9k LUJhc2VQYWdlLS1ub1N1aXRlTmF2IC5vZC1QYW5lbCB7DQogICAgICB0b3A6IDA7DQogICAg fQ0KDQogICAgLm9kLVBhbmVsLm9kLVBhbmVsLS1zbSB7DQogICAgICB3aWR0aDogMTAwJTsN CiAgICB9DQoNCiAgICAubGcgLm9kLVBhbmVsLm9kLVBhbmVsLS1zbSwNCiAgICAubWQgLm9k LVBhbmVsLm9kLVBhbmVsLS1zbSwNCiAgICAueGxnIC5vZC1QYW5lbC5vZC1QYW5lbC0tc20s DQogICAgLnh4bGcgLm9kLVBhbmVsLm9kLVBhbmVsLS1zbSwNCiAgICAueHh4bGcgLm9kLVBh bmVsLm9kLVBhbmVsLS1zbSwNCiAgICAueHh4eGxnIC5vZC1QYW5lbC5vZC1QYW5lbC0tc20g ew0KICAgICAgd2lkdGg6IDM0MHB4Ow0KICAgIH0NCg0KICAgIC5sZyAub2QtUGFuZWwub2Qt UGFuZWwtLWxnLA0KICAgIC5sZyAub2QtUGFuZWwub2QtUGFuZWwtLXhsZywNCiAgICAueGxn IC5vZC1QYW5lbC5vZC1QYW5lbC0tbGcsDQogICAgLnhsZyAub2QtUGFuZWwub2QtUGFuZWwt LXhsZywNCiAgICAueHhsZyAub2QtUGFuZWwub2QtUGFuZWwtLWxnLA0KICAgIC54eGxnIC5v ZC1QYW5lbC5vZC1QYW5lbC0teGxnLA0KICAgIC54eHhsZyAub2QtUGFuZWwub2QtUGFuZWwt LWxnLA0KICAgIC54eHhsZyAub2QtUGFuZWwub2QtUGFuZWwtLXhsZywNCiAgICAueHh4eGxn IC5vZC1QYW5lbC5vZC1QYW5lbC0tbGcsDQogICAgLnh4eHhsZyAub2QtUGFuZWwub2QtUGFu ZWwtLXhsZyB7DQogICAgICB3aWR0aDogYXV0bzsNCiAgICB9DQoNCiAgICBbZGlyPSJsdHIi XSAubGcgLm9kLVBhbmVsLm9kLVBhbmVsLS1sZywNCiAgICBbZGlyPSJsdHIiXSAubGcgLm9k LVBhbmVsLm9kLVBhbmVsLS14bGcsDQogICAgW2Rpcj0ibHRyIl0gLnhsZyAub2QtUGFuZWwu b2QtUGFuZWwtLWxnLA0KICAgIFtkaXI9Imx0ciJdIC54bGcgLm9kLVBhbmVsLm9kLVBhbmVs LS14bGcsDQogICAgW2Rpcj0ibHRyIl0gLnh4bGcgLm9kLVBhbmVsLm9kLVBhbmVsLS1sZywN CiAgICBbZGlyPSJsdHIiXSAueHhsZyAub2QtUGFuZWwub2QtUGFuZWwtLXhsZywNCiAgICBb ZGlyPSJsdHIiXSAueHh4bGcgLm9kLVBhbmVsLm9kLVBhbmVsLS1sZywNCiAgICBbZGlyPSJs dHIiXSAueHh4bGcgLm9kLVBhbmVsLm9kLVBhbmVsLS14bGcsDQogICAgW2Rpcj0ibHRyIl0g Lnh4eHhsZyAub2QtUGFuZWwub2QtUGFuZWwtLWxnLA0KICAgIFtkaXI9Imx0ciJdIC54eHh4 bGcgLm9kLVBhbmVsLm9kLVBhbmVsLS14bGcgew0KICAgICAgbGVmdDogNDhweDsNCiAgICB9 DQoNCiAgICBbZGlyPSJydGwiXSAubGcgLm9kLVBhbmVsLm9kLVBhbmVsLS1sZywNCiAgICBb ZGlyPSJydGwiXSAubGcgLm9kLVBhbmVsLm9kLVBhbmVsLS14bGcsDQogICAgW2Rpcj0icnRs Il0gLnhsZyAub2QtUGFuZWwub2QtUGFuZWwtLWxnLA0KICAgIFtkaXI9InJ0bCJdIC54bGcg Lm9kLVBhbmVsLm9kLVBhbmVsLS14bGcsDQogICAgW2Rpcj0icnRsIl0gLnh4bGcgLm9kLVBh bmVsLm9kLVBhbmVsLS1sZywNCiAgICBbZGlyPSJydGwiXSAueHhsZyAub2QtUGFuZWwub2Qt UGFuZWwtLXhsZywNCiAgICBbZGlyPSJydGwiXSAueHh4bGcgLm9kLVBhbmVsLm9kLVBhbmVs LS1sZywNCiAgICBbZGlyPSJydGwiXSAueHh4bGcgLm9kLVBhbmVsLm9kLVBhbmVsLS14bGcs DQogICAgW2Rpcj0icnRsIl0gLnh4eHhsZyAub2QtUGFuZWwub2QtUGFuZWwtLWxnLA0KICAg IFtkaXI9InJ0bCJdIC54eHh4bGcgLm9kLVBhbmVsLm9kLVBhbmVsLS14bGcgew0KICAgICAg cmlnaHQ6IDQ4cHg7DQogICAgfQ0KDQogICAgLmxnIC5vZC1QYW5lbC5vZC1QYW5lbC0tbWQs DQogICAgLnhsZyAub2QtUGFuZWwub2QtUGFuZWwtLW1kLA0KICAgIC54eGxnIC5vZC1QYW5l bC5vZC1QYW5lbC0tbWQsDQogICAgLnh4eGxnIC5vZC1QYW5lbC5vZC1QYW5lbC0tbWQsDQog ICAgLnh4eHhsZyAub2QtUGFuZWwub2QtUGFuZWwtLW1kIHsNCiAgICAgIHdpZHRoOiA2NDNw eDsNCiAgICB9DQoNCiAgICBbZGlyPSJsdHIiXSAubGcgLm9kLVBhbmVsLm9kLVBhbmVsLS1t ZCwNCiAgICBbZGlyPSJsdHIiXSAueGxnIC5vZC1QYW5lbC5vZC1QYW5lbC0tbWQsDQogICAg W2Rpcj0ibHRyIl0gLnh4bGcgLm9kLVBhbmVsLm9kLVBhbmVsLS1tZCwNCiAgICBbZGlyPSJs dHIiXSAueHh4bGcgLm9kLVBhbmVsLm9kLVBhbmVsLS1tZCwNCiAgICBbZGlyPSJsdHIiXSAu eHh4eGxnIC5vZC1QYW5lbC5vZC1QYW5lbC0tbWQgew0KICAgICAgbGVmdDogYXV0bzsNCiAg ICB9DQoNCiAgICBbZGlyPSJydGwiXSAubGcgLm9kLVBhbmVsLm9kLVBhbmVsLS1tZCwNCiAg ICBbZGlyPSJydGwiXSAueGxnIC5vZC1QYW5lbC5vZC1QYW5lbC0tbWQsDQogICAgW2Rpcj0i cnRsIl0gLnh4bGcgLm9kLVBhbmVsLm9kLVBhbmVsLS1tZCwNCiAgICBbZGlyPSJydGwiXSAu eHh4bGcgLm9kLVBhbmVsLm9kLVBhbmVsLS1tZCwNCiAgICBbZGlyPSJydGwiXSAueHh4eGxn IC5vZC1QYW5lbC5vZC1QYW5lbC0tbWQgew0KICAgICAgcmlnaHQ6IGF1dG87DQogICAgfQ0K DQogICAgLmxnIC5vZC1QYW5lbC5vZC1wYW5lbC1tZC1saXN0Zm9ybSwNCiAgICAueGxnIC5v ZC1QYW5lbC5vZC1wYW5lbC1tZC1saXN0Zm9ybSwNCiAgICAueHhsZyAub2QtUGFuZWwub2Qt cGFuZWwtbWQtbGlzdGZvcm0sDQogICAgLnh4eGxnIC5vZC1QYW5lbC5vZC1wYW5lbC1tZC1s aXN0Zm9ybSwNCiAgICAueHh4eGxnIC5vZC1QYW5lbC5vZC1wYW5lbC1tZC1saXN0Zm9ybSB7 DQogICAgICB3aWR0aDogODAwcHg7DQogICAgfQ0KDQogICAgW2Rpcj0ibHRyIl0gLmxnIC5v ZC1QYW5lbC5vZC1wYW5lbC1tZC1saXN0Zm9ybSwNCiAgICBbZGlyPSJsdHIiXSAueGxnIC5v ZC1QYW5lbC5vZC1wYW5lbC1tZC1saXN0Zm9ybSwNCiAgICBbZGlyPSJsdHIiXSAueHhsZyAu b2QtUGFuZWwub2QtcGFuZWwtbWQtbGlzdGZvcm0sDQogICAgW2Rpcj0ibHRyIl0gLnh4eGxn IC5vZC1QYW5lbC5vZC1wYW5lbC1tZC1saXN0Zm9ybSwNCiAgICBbZGlyPSJsdHIiXSAueHh4 eGxnIC5vZC1QYW5lbC5vZC1wYW5lbC1tZC1saXN0Zm9ybSB7DQogICAgICBsZWZ0OiBhdXRv Ow0KICAgIH0NCg0KICAgIFtkaXI9InJ0bCJdIC5sZyAub2QtUGFuZWwub2QtcGFuZWwtbWQt bGlzdGZvcm0sDQogICAgW2Rpcj0icnRsIl0gLnhsZyAub2QtUGFuZWwub2QtcGFuZWwtbWQt bGlzdGZvcm0sDQogICAgW2Rpcj0icnRsIl0gLnh4bGcgLm9kLVBhbmVsLm9kLXBhbmVsLW1k LWxpc3Rmb3JtLA0KICAgIFtkaXI9InJ0bCJdIC54eHhsZyAub2QtUGFuZWwub2QtcGFuZWwt bWQtbGlzdGZvcm0sDQogICAgW2Rpcj0icnRsIl0gLnh4eHhsZyAub2QtUGFuZWwub2QtcGFu ZWwtbWQtbGlzdGZvcm0gew0KICAgICAgcmlnaHQ6IGF1dG87DQogICAgfQ0KDQogICAgW2Rp cj0ibHRyIl0gLnh4bGcgLm9kLVBhbmVsLm9kLVBhbmVsLS1sZywNCiAgICBbZGlyPSJsdHIi XSAueHh4bGcgLm9kLVBhbmVsLm9kLVBhbmVsLS1sZywNCiAgICBbZGlyPSJsdHIiXSAueHh4 eGxnIC5vZC1QYW5lbC5vZC1QYW5lbC0tbGcgew0KICAgICAgbGVmdDogNDI4cHg7DQogICAg fQ0KDQogICAgW2Rpcj0icnRsIl0gLnh4bGcgLm9kLVBhbmVsLm9kLVBhbmVsLS1sZywNCiAg ICBbZGlyPSJydGwiXSAueHh4bGcgLm9kLVBhbmVsLm9kLVBhbmVsLS1sZywNCiAgICBbZGly PSJydGwiXSAueHh4eGxnIC5vZC1QYW5lbC5vZC1QYW5lbC0tbGcgew0KICAgICAgcmlnaHQ6 IDQyOHB4Ow0KICAgIH0NCg0KICAgIFtkaXI9Imx0ciJdIC54eHhsZyAub2QtUGFuZWwub2Qt UGFuZWwtLWxnLA0KICAgIFtkaXI9Imx0ciJdIC54eHh4bGcgLm9kLVBhbmVsLm9kLVBhbmVs LS1sZyB7DQogICAgICBsZWZ0OiA5ODBweDsNCiAgICB9DQoNCiAgICBbZGlyPSJydGwiXSAu eHh4bGcgLm9kLVBhbmVsLm9kLVBhbmVsLS1sZywNCiAgICBbZGlyPSJydGwiXSAueHh4eGxn IC5vZC1QYW5lbC5vZC1QYW5lbC0tbGcgew0KICAgICAgcmlnaHQ6IDk4MHB4Ow0KICAgIH0N Cg0KICAgIFtkaXI9Imx0ciJdIC54eHh4bGcgLm9kLVBhbmVsLm9kLVBhbmVsLS1sZyB7DQog ICAgICBsZWZ0OiAxNjIwcHg7DQogICAgfQ0KDQogICAgW2Rpcj0icnRsIl0gLnh4eHhsZyAu b2QtUGFuZWwub2QtUGFuZWwtLWxnIHsNCiAgICAgIHJpZ2h0OiAxNjIwcHg7DQogICAgfQ0K DQogICAgW2Rpcj0ibHRyIl0gLnh4bGcgLm9kLVBhbmVsLm9kLVBhbmVsLS14bGcsDQogICAg W2Rpcj0ibHRyIl0gLnh4eGxnIC5vZC1QYW5lbC5vZC1QYW5lbC0teGxnLA0KICAgIFtkaXI9 Imx0ciJdIC54eHh4bGcgLm9kLVBhbmVsLm9kLVBhbmVsLS14bGcgew0KICAgICAgbGVmdDog MTc2cHg7DQogICAgfQ0KDQogICAgW2Rpcj0icnRsIl0gLnh4bGcgLm9kLVBhbmVsLm9kLVBh bmVsLS14bGcsDQogICAgW2Rpcj0icnRsIl0gLnh4eGxnIC5vZC1QYW5lbC5vZC1QYW5lbC0t eGxnLA0KICAgIFtkaXI9InJ0bCJdIC54eHh4bGcgLm9kLVBhbmVsLm9kLVBhbmVsLS14bGcg ew0KICAgICAgcmlnaHQ6IDE3NnB4Ow0KICAgIH0NCg0KICAgIC5sZyAub2QtUGFuZWwub2Qt UGFuZWwtLWZ1bGxTY3JlZW4sDQogICAgLm1kIC5vZC1QYW5lbC5vZC1QYW5lbC0tZnVsbFNj cmVlbiwNCiAgICAueGxnIC5vZC1QYW5lbC5vZC1QYW5lbC0tZnVsbFNjcmVlbiwNCiAgICAu eHhsZyAub2QtUGFuZWwub2QtUGFuZWwtLWZ1bGxTY3JlZW4sDQogICAgLnh4eGxnIC5vZC1Q YW5lbC5vZC1QYW5lbC0tZnVsbFNjcmVlbiwNCiAgICAueHh4eGxnIC5vZC1QYW5lbC5vZC1Q YW5lbC0tZnVsbFNjcmVlbiB7DQogICAgICB3aWR0aDogMTAwJTsNCiAgICB9DQoNCiAgICAu c20gLm9kLVBhbmVsLm9kLVBhbmVsLS1saWdodERpc21pc3Mgew0KICAgICAgd2lkdGg6IDI3 MnB4Ow0KICAgIH0NCg0KICAgIC5vZC1QYW5lbC0tRnVsbFBhZ2VQYW5lbCB7DQogICAgICB0 b3A6IDA7DQogICAgICB3aWR0aDogMTAwJTsNCiAgICAgIGhlaWdodDogMTAwJTsNCiAgICB9 DQoNCiAgICAub2QtUGFuZWwtLWhhc1BhZGRpbmcgew0KICAgICAgcGFkZGluZzogNzRweCAx NnB4IDIwcHg7DQogICAgfQ0KDQogICAgLmxnIC5vZC1QYW5lbC0taGFzUGFkZGluZywNCiAg ICAueGxnIC5vZC1QYW5lbC0taGFzUGFkZGluZywNCiAgICAueHhsZyAub2QtUGFuZWwtLWhh c1BhZGRpbmcsDQogICAgLnh4eGxnIC5vZC1QYW5lbC0taGFzUGFkZGluZywNCiAgICAueHh4 eGxnIC5vZC1QYW5lbC0taGFzUGFkZGluZyB7DQogICAgICBwYWRkaW5nOiA3NHB4IDI0cHgg MjBweDsNCiAgICB9DQoNCiAgICAueGxnIC5vZC1QYW5lbC0taGFzUGFkZGluZywNCiAgICAu eHhsZyAub2QtUGFuZWwtLWhhc1BhZGRpbmcsDQogICAgLnh4eGxnIC5vZC1QYW5lbC0taGFz UGFkZGluZywNCiAgICAueHh4eGxnIC5vZC1QYW5lbC0taGFzUGFkZGluZyB7DQogICAgICBw YWRkaW5nLXRvcDogNzRweDsNCiAgICB9DQoNCiAgICAueHhsZyAub2QtUGFuZWwtLWhhc1Bh ZGRpbmcsDQogICAgLnh4eGxnIC5vZC1QYW5lbC0taGFzUGFkZGluZywNCiAgICAueHh4eGxn IC5vZC1QYW5lbC0taGFzUGFkZGluZyB7DQogICAgICBwYWRkaW5nOiA3NHB4IDI0cHggMjBw eDsNCiAgICB9DQoNCiAgICAub2QtUGFuZWwtLWF1dG9TY3JvbGwgew0KICAgICAgb3ZlcmZs b3c6IGF1dG87DQogICAgfQ0KDQogICAgLm9kLVBhbmVsLS1oaWRkZW5TY3JvbGwgew0KICAg ICAgb3ZlcmZsb3c6IGhpZGRlbjsNCiAgICB9DQoNCiAgICAub2QtUGFuZWwtLWFsd2F5c1Nj cm9sbCB7DQogICAgICBvdmVyZmxvdy15OiBzY3JvbGw7DQogICAgfQ0KDQogICAgLm9kLVBh bmVsLXRpdGxlIHsNCiAgICAgIG1hcmdpbi1ib3R0b206IDE5cHg7DQogICAgICBmb250LXNp emU6IDIwcHg7DQogICAgICBmb250LXdlaWdodDogNjAwOw0KICAgICAgbWF4LXdpZHRoOiAy NDBweDsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0ibHRyIl0gLm9kLVBhbmVsLXRpdGxlIHsN CiAgICAgIG1hcmdpbi1yaWdodDogMjZweDsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0icnRs Il0gLm9kLVBhbmVsLXRpdGxlIHsNCiAgICAgIG1hcmdpbi1sZWZ0OiAyNnB4Ow0KICAgIH0N Cg0KICAgIC5sZyAub2QtUGFuZWwtdGl0bGUsDQogICAgLm1kIC5vZC1QYW5lbC10aXRsZSwN CiAgICAuc20gLm9kLVBhbmVsLXRpdGxlIHsNCiAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7 DQogICAgfQ0KDQogICAgLm9kLVBhbmVsLS1oaWRkZW4gew0KICAgICAgdmlzaWJpbGl0eTog aGlkZGVuOw0KICAgIH0NCg0KICAgIC5vZC1QYW5lbC1jb250ZW50LS10aXRsZUZpbGwgew0K ICAgICAgd2lkdGg6IDEwMCU7DQogICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDQ4cHggLSA4 cHgpOw0KICAgIH0NCg0KICAgIC5vZC1QYW5lbC1jb250ZW50LS1ub1RpdGxlRmlsbCB7DQog ICAgICB3aWR0aDogMTAwJTsNCiAgICAgIGhlaWdodDogMTAwJTsNCiAgICB9DQoNCiAgICAu b2QtUGFuZWwtYnV0dG9uLS1jbG9zZSB7DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQog ICAgICBvdXRsaW5lOiAwOw0KICAgICAgbWFyZ2luOiAwOw0KICAgICAgYm9yZGVyOiAwOw0K ICAgICAgYmFja2dyb3VuZDogMCAwOw0KICAgICAgY3Vyc29yOiBwb2ludGVyOw0KICAgICAg aGVpZ2h0OiAzMnB4Ow0KICAgICAgd2lkdGg6IDMycHg7DQogICAgICBsaW5lLWhlaWdodDog MzJweDsNCiAgICAgIHBhZGRpbmc6IDA7DQogICAgICB0b3A6IDE2cHg7DQogICAgICBjb2xv cjogIzYxNjE2MTsNCiAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsNCiAgICB9DQoNCiAgICBb ZGlyPSJsdHIiXSAub2QtUGFuZWwtYnV0dG9uLS1jbG9zZSB7DQogICAgICByaWdodDogMTZw eDsNCiAgICB9DQoNCiAgICBbZGlyPSJydGwiXSAub2QtUGFuZWwtYnV0dG9uLS1jbG9zZSB7 DQogICAgICBsZWZ0OiAxNnB4Ow0KICAgIH0NCg0KICAgIC5vZC1QYW5lbC1idXR0b24tLWNs b3NlOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjMjQyNDI0Ow0KICAgICAgYmFja2dyb3VuZC1j b2xvcjogI2YwZjBmMDsNCiAgICB9DQoNCiAgICAuaXNGbHVlbnRWTmV4dCAub2QtUGFuZWwt YnV0dG9uLS1jbG9zZTpob3ZlciB7DQogICAgICBjb2xvcjogIzAwNzhkNDsNCiAgICB9DQoN CiAgICAub2QtUGFuZWwtYnV0dG9uLS1jbG9zZTphY3RpdmUgew0KICAgICAgY29sb3I6ICMx NDE0MTQ7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWJlYmViOw0KICAgIH0NCg0KICAg IC5vZC1QYW5lbC1idXR0b24tLWNsb3NlIC5tcy1JY29uLS1DYW5jZWwgew0KICAgICAgZm9u dC1zaXplOiAxNnB4Ow0KICAgICAgbWFyZ2luLXRvcDogMDsNCiAgICAgIGNvbG9yOiBpbmhl cml0Ow0KICAgIH0NCg0KICAgIC5tZCAub2QtUGFuZWwtYnV0dG9uLS1jbG9zZSAubXMtSWNv bi0tQ2FuY2VsLA0KICAgIC5zbSAub2QtUGFuZWwtYnV0dG9uLS1jbG9zZSAubXMtSWNvbi0t Q2FuY2VsIHsNCiAgICAgIGZvbnQtc2l6ZTogMTZweDsNCiAgICB9DQoNCiAgICAub2QtUGFu ZWwtLWhhc0NvbW1hbmRCYXIgLm9kLVBhbmVsLWJ1dHRvbi0tY2xvc2Ugew0KICAgICAgei1p bmRleDogNjAwOw0KICAgICAgcGFkZGluZzogMDsNCiAgICAgIHRvcDogNnB4Ow0KICAgIH0N Cg0KICAgIFtkaXI9Imx0ciJdIC5vZC1QYW5lbC0taGFzQ29tbWFuZEJhciAub2QtUGFuZWwt YnV0dG9uLS1jbG9zZSB7DQogICAgICByaWdodDogOHB4Ow0KICAgIH0NCg0KICAgIFtkaXI9 InJ0bCJdIC5vZC1QYW5lbC0taGFzQ29tbWFuZEJhciAub2QtUGFuZWwtYnV0dG9uLS1jbG9z ZSB7DQogICAgICBsZWZ0OiA4cHg7DQogICAgfQ0KDQogICAgW2Rpcj0ibHRyIl0gLm9kLVBh bmVsLS1zdGlja3lDbG9zZUJ1dHRvbiAub2QtUGFuZWwtYnV0dG9uLS1jbG9zZSB7DQogICAg ICByaWdodDogMjBweDsNCiAgICB9DQoNCiAgICBbZGlyPSJydGwiXSAub2QtUGFuZWwtLXN0 aWNreUNsb3NlQnV0dG9uIC5vZC1QYW5lbC1idXR0b24tLWNsb3NlIHsNCiAgICAgIGxlZnQ6 IDIwcHg7DQogICAgfQ0KDQogICAgW2Rpcj0ibHRyIl0gLm1kIC5vZC1QYW5lbC1idXR0b24t LWNsb3NlLA0KICAgIFtkaXI9Imx0ciJdIC5zbSAub2QtUGFuZWwtYnV0dG9uLS1jbG9zZSB7 DQogICAgICByaWdodDogMjBweDsNCiAgICB9DQoNCiAgICBbZGlyPSJydGwiXSAubWQgLm9k LVBhbmVsLWJ1dHRvbi0tY2xvc2UsDQogICAgW2Rpcj0icnRsIl0gLnNtIC5vZC1QYW5lbC1i dXR0b24tLWNsb3NlIHsNCiAgICAgIGxlZnQ6IDIwcHg7DQogICAgfQ0KDQogICAgW2Rpcj0i bHRyIl0gLnNtIC5vZC1QYW5lbC1idXR0b24tLWNsb3NlIHsNCiAgICAgIHJpZ2h0OiAxMnB4 Ow0KICAgIH0NCg0KICAgIFtkaXI9InJ0bCJdIC5zbSAub2QtUGFuZWwtYnV0dG9uLS1jbG9z ZSB7DQogICAgICBsZWZ0OiAxMnB4Ow0KICAgIH0NCg0KICAgIC5vZC1QYW5lbC1idXR0b24t LWNsb3NlOmZvY3VzIHsNCiAgICAgIG91dGxpbmU6IDFweCBzb2xpZCAjNjE2MTYxOw0KICAg IH0NCg0KICAgIC5vZC1QYW5lbC0tc3RpY2t5Q2xvc2VCdXR0b24gLm9kLVBhbmVsLWNvbnRl bnQgew0KICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICAgdG9wOiAwOw0KICAgICAg Ym90dG9tOiAwOw0KICAgICAgbGVmdDogMDsNCiAgICAgIHJpZ2h0OiAwOw0KICAgICAgb3Zl cmZsb3c6IGF1dG87DQogICAgfQ0KDQogICAgW2Rpcj0ibHRyIl0gLm9kLVBhbmVsLS1zdGlj a3lDbG9zZUJ1dHRvbiAub2QtUGFuZWwtY29udGVudCB7DQogICAgICBwYWRkaW5nLXJpZ2h0 OiA0MHB4Ow0KICAgIH0NCg0KICAgIFtkaXI9InJ0bCJdIC5vZC1QYW5lbC0tc3RpY2t5Q2xv c2VCdXR0b24gLm9kLVBhbmVsLWNvbnRlbnQgew0KICAgICAgcGFkZGluZy1sZWZ0OiA0MHB4 Ow0KICAgIH0NCg0KICAgIC5vZC1PdmVybGF5SG9zdC1vdmVybGF5IC5vZC1QYW5lbCB7DQog ICAgICBvcGFjaXR5OiAwOw0KICAgIH0NCg0KICAgIC5vZC1PdmVybGF5SG9zdC1vdmVybGF5 Lm9kLU92ZXJsYXlIb3N0LW92ZXJsYXktLW9wZW5lZCAub2QtUGFuZWwgew0KICAgICAgb3Bh Y2l0eTogMTsNCiAgICB9DQoNCiAgICBbZGlyPSJsdHIiXSAub2QtT3ZlcmxheUhvc3Qtb3Zl cmxheS5vZC1PdmVybGF5SG9zdC1vdmVybGF5LS1vcGVuZWQgLm9kLVBhbmVsIHsNCiAgICAg IGFuaW1hdGlvbi1uYW1lOiBtcy1mYWRlSW4sIG1zLXNsaWRlTGVmdEluNDA7DQogICAgICBh bmltYXRpb24tZHVyYXRpb246IDM2N21zOw0KICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5j dGlvbjogY3ViaWMtYmV6aWVyKDAuMSwgMC45LCAwLjIsIDEpOw0KICAgICAgYW5pbWF0aW9u LWZpbGwtbW9kZTogYm90aDsNCiAgICB9DQoNCiAgICBAbWVkaWEgKHByZWZlcnMtcmVkdWNl ZC1tb3Rpb246IHJlZHVjZSkgew0KICAgICAgW2Rpcj0ibHRyIl0gLm9kLU92ZXJsYXlIb3N0 LW92ZXJsYXkub2QtT3ZlcmxheUhvc3Qtb3ZlcmxheS0tb3BlbmVkIC5vZC1QYW5lbCB7DQog ICAgICAgIGFuaW1hdGlvbjogbm9uZTsNCiAgICAgIH0NCiAgICB9DQoNCiAgICBbZGlyPSJy dGwiXSAub2QtT3ZlcmxheUhvc3Qtb3ZlcmxheS5vZC1PdmVybGF5SG9zdC1vdmVybGF5LS1v cGVuZWQgLm9kLVBhbmVsIHsNCiAgICAgIGFuaW1hdGlvbi1uYW1lOiBtcy1mYWRlSW4sIG1z LXNsaWRlUmlnaHRJbjQwOw0KICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAzNjdtczsNCiAg ICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjEsIDAuOSwg MC4yLCAxKTsNCiAgICAgIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7DQogICAgfQ0KDQog ICAgQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHsNCiAgICAgIFtk aXI9InJ0bCJdIC5vZC1PdmVybGF5SG9zdC1vdmVybGF5Lm9kLU92ZXJsYXlIb3N0LW92ZXJs YXktLW9wZW5lZCAub2QtUGFuZWwgew0KICAgICAgICBhbmltYXRpb246IG5vbmU7DQogICAg ICB9DQogICAgfQ0KDQogICAgW2Rpcj0ibHRyIl0gLm9kLU92ZXJsYXlIb3N0LW92ZXJsYXku b2QtT3ZlcmxheUhvc3Qtb3ZlcmxheS0tY2xvc2VkIC5vZC1QYW5lbCB7DQogICAgICBhbmlt YXRpb24tbmFtZTogbXMtZmFkZU91dCwgbXMtc2xpZGVSaWdodE91dDQwOw0KICAgICAgYW5p bWF0aW9uLWR1cmF0aW9uOiAxNjdtczsNCiAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rp b246IGN1YmljLWJlemllcigwLjEsIDAuMjUsIDAuNzUsIDAuOSk7DQogICAgICBhbmltYXRp b24tZmlsbC1tb2RlOiBib3RoOw0KICAgIH0NCg0KICAgIEBtZWRpYSAocHJlZmVycy1yZWR1 Y2VkLW1vdGlvbjogcmVkdWNlKSB7DQogICAgICBbZGlyPSJsdHIiXSAub2QtT3ZlcmxheUhv c3Qtb3ZlcmxheS5vZC1PdmVybGF5SG9zdC1vdmVybGF5LS1jbG9zZWQgLm9kLVBhbmVsIHsN CiAgICAgICAgYW5pbWF0aW9uOiBub25lOw0KICAgICAgfQ0KICAgIH0NCg0KICAgIFtkaXI9 InJ0bCJdIC5vZC1PdmVybGF5SG9zdC1vdmVybGF5Lm9kLU92ZXJsYXlIb3N0LW92ZXJsYXkt LWNsb3NlZCAub2QtUGFuZWwgew0KICAgICAgYW5pbWF0aW9uLW5hbWU6IG1zLWZhZGVPdXQs IG1zLXNsaWRlTGVmdE91dDQwOw0KICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxNjdtczsN CiAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjEsIDAu MjUsIDAuNzUsIDAuOSk7DQogICAgICBhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoOw0KICAg IH0NCg0KICAgIEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7DQog ICAgICBbZGlyPSJydGwiXSAub2QtT3ZlcmxheUhvc3Qtb3ZlcmxheS5vZC1PdmVybGF5SG9z dC1vdmVybGF5LS1jbG9zZWQgLm9kLVBhbmVsIHsNCiAgICAgICAgYW5pbWF0aW9uOiBub25l Ow0KICAgICAgfQ0KICAgIH0NCg0KICAgIC5vZC1QYW5lbE92ZXJsYXkubXMtTW9kYWxPdmVy bGF5IHsNCiAgICAgIHRvcDogNDhweDsNCiAgICB9DQoNCiAgICAub2QtQmFzZVBhZ2UtLW5v U3VpdGVOYXYgLm9kLVBhbmVsT3ZlcmxheS5tcy1Nb2RhbE92ZXJsYXkgew0KICAgICAgdG9w OiAwOw0KICAgIH0NCg0KICAgIC5TUFBhZ2VDaHJvbWUgLm9kLVBhbmVsT3ZlcmxheS5tcy1N b2RhbE92ZXJsYXkgew0KICAgICAgdG9wOiAwOw0KICAgIH0NCg0KICAgIFtkaXI9Imx0ciJd IC5vZC0taGFzRmxleFBhbmUgLm9kLVBhbmVsIHsNCiAgICAgIHJpZ2h0OiAzMjBweDsNCiAg ICB9DQoNCiAgICBbZGlyPSJydGwiXSAub2QtLWhhc0ZsZXhQYW5lIC5vZC1QYW5lbCB7DQog ICAgICBsZWZ0OiAzMjBweDsNCiAgICB9DQogIDwvc3R5bGU+DQogIDxzdHlsZSBkYXRhLWxv YWQtdGhlbWVkLXN0eWxlcz0idHJ1ZSI+DQogICAgLk9uZVVwLXNsaWRlIHsNCiAgICAgIHBv c2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgIGxlZnQ6IDA7DQogICAgICByaWdodDogMDsNCiAg ICAgIHRvcDogMDsNCiAgICAgIGJvdHRvbTogMDsNCiAgICB9DQoNCiAgICAuT25lVXAtc2xp ZGU6YWZ0ZXIsDQogICAgLk9uZVVwLXNsaWRlOmJlZm9yZSB7DQogICAgICBkaXNwbGF5OiBi bG9jazsNCiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgIHdpZHRoOiAyJTsNCiAg ICAgIGhlaWdodDogMTAwJTsNCiAgICAgIGNvbnRlbnQ6ICIiOw0KICAgIH0NCg0KICAgIGh0 bWxbZGlyPSJsdHIiXSAuT25lVXAtc2xpZGU6YmVmb3JlIHsNCiAgICAgIHJpZ2h0OiAxMDAl Ow0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJydGwiXSAuT25lVXAtc2xpZGU6YmVmb3JlIHsN CiAgICAgIGxlZnQ6IDEwMCU7DQogICAgfQ0KDQogICAgaHRtbFtkaXI9Imx0ciJdIC5PbmVV cC1zbGlkZTphZnRlciB7DQogICAgICBsZWZ0OiAxMDAlOw0KICAgIH0NCg0KICAgIGh0bWxb ZGlyPSJydGwiXSAuT25lVXAtc2xpZGU6YWZ0ZXIgew0KICAgICAgcmlnaHQ6IDEwMCU7DQog ICAgfQ0KDQogICAgLm9kLU9uZVVwVmlkZW8gew0KICAgICAgcG9zaXRpb246IGFic29sdXRl Ow0KICAgICAgbGVmdDogMDsNCiAgICAgIHJpZ2h0OiAwOw0KICAgICAgdG9wOiAwOw0KICAg ICAgYm90dG9tOiAwOw0KICAgIH0NCg0KICAgIC5PbmVVcC1vdGhlciB7DQogICAgICBwb3Np dGlvbjogYWJzb2x1dGU7DQogICAgICBsZWZ0OiA1MCU7DQogICAgICB0b3A6IDUwJTsNCiAg ICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOw0KICAgIH0NCg0KICAgIC5P bmVVcC1vdGhlciAuT25lVXAtb3RoZXItY29udGVudCB7DQogICAgICB0ZXh0LWFsaWduOiBj ZW50ZXI7DQogICAgfQ0KDQogICAgLk9uZVVwLW90aGVyIC5PbmVVcC1vdGhlci1jb250ZW50 IC5PbmVVcC1vdGhlci1maWxlTmFtZSB7DQogICAgICBmb250LXNpemU6IDIxcHg7DQogICAg fQ0KDQogICAgLk9uZVVwLW90aGVyIC5PbmVVcC1vdGhlci1jb250ZW50IC5PbmVVcC1vdGhl ci1kb3dubG9hZCB7DQogICAgICBjb2xvcjogI2ZmZmZmZjsNCiAgICB9DQoNCiAgICAuT25l VXAtb3RoZXIgLk9uZVVwLW90aGVyLWNvbnRlbnQgLk9uZVVwLW90aGVyLW1lc3NhZ2Ugew0K ICAgICAgbWFyZ2luLXRvcDogMTVweDsNCiAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7DQog ICAgfQ0KDQogICAgLk9uZVVwLW90aGVyIC5PbmVVcC1vdGhlci1jb250ZW50IC5PbmVVcC1v dGhlci1hY3Rpb25zIC5vZC1CdXR0b25CYXItbWFpbiB7DQogICAgICBmbG9hdDogbm9uZTsN CiAgICB9DQoNCiAgICAuT25lVXAtb3RoZXIgLk9uZVVwLW90aGVyLWNvbnRlbnQgLk9uZVVw LW90aGVyLWZpbGVJY29uIC5GaWxlVHlwZUljb24gew0KICAgICAgb3V0bGluZTogMDsNCiAg ICB9DQoNCiAgICAuT25lVXAtb3RoZXIgLk9uZVVwLW90aGVyLWNvbnRlbnQgLm9kLUJ1dHRv bkJhckNvbW1hbmQ6bm90KC5vZC1CdXR0b24tLXByaW1hcnkpIHsNCiAgICAgIGJhY2tncm91 bmQtY29sb3I6ICNlYmViZWI7DQogICAgfQ0KDQogICAgLk9uZVVwLWVycm9yIHsNCiAgICAg IGRpc3BsYXk6IGZsZXg7DQogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsNCiAgICAg IGFsaWduLWl0ZW1zOiBjZW50ZXI7DQogICAgICBoZWlnaHQ6IDEwMCU7DQogICAgfQ0KDQog ICAgLk9uZVVwLXNsaWRlLWVycm9yIHsNCiAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjsNCiAg ICAgIG92ZXJmbG93LXk6IGF1dG87DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAg ICBsZWZ0OiAwOw0KICAgICAgcmlnaHQ6IDA7DQogICAgICB0b3A6IDA7DQogICAgICBib3R0 b206IDA7DQogICAgfQ0KDQogICAgLk9uZVVwLXBob3RvIC5vZC1Qcm9qZWN0b3ItLWxpdmUg Lm9kLUltYWdlVGlsZS1iYWNrZ3JvdW5kIHsNCiAgICAgIHRyYW5zaXRpb246IG1heC13aWR0 aCAyNjdtcyBjdWJpYy1iZXppZXIoMC4xLCAwLjksIDAuMiwgMSksDQogICAgICAgIG1heC1o ZWlnaHQgMjY3bXMgY3ViaWMtYmV6aWVyKDAuMSwgMC45LCAwLjIsIDEpOw0KICAgIH0NCg0K ICAgIC5PbmVVcC1waG90byAub2QtUHJvamVjdG9yLS1saXZlLm9kLVByb2plY3Rvci0tcGFu bmluZyAub2QtSW1hZ2VUaWxlLWJhY2tncm91bmQgew0KICAgICAgdHJhbnNpdGlvbi1kdXJh dGlvbjogMHMsIDBzOw0KICAgIH0NCg0KICAgIC5PbmVVcC1vdGhlclRpbGUgew0KICAgICAg d2lkdGg6IDI0MHB4Ow0KICAgICAgaGVpZ2h0OiAyNDBweDsNCiAgICAgIG1hcmdpbjogYXV0 bzsNCiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgICB9DQoNCiAgICAuT25lVXAtZmls ZUhhbmRsZXIsDQogICAgLk9uZVVwLWZpbGVIYW5kbGVyLWZyYW1lIHsNCiAgICAgIGJvcmRl cjogMDsNCiAgICAgIHdpZHRoOiAxMDAlOw0KICAgICAgaGVpZ2h0OiAxMDAlOw0KICAgIH0N Cg0KICAgIC5PbmVVcC1vdGhlci1tYWx3YXJlRGV0ZWN0ZWRJY29uIHsNCiAgICAgIGhlaWdo dDogMjA4cHg7DQogICAgICB3aWR0aDogMjA4cHg7DQogICAgfQ0KICA8L3N0eWxlPg0KICA8 c3R5bGUgZGF0YS1sb2FkLXRoZW1lZC1zdHlsZXM9InRydWUiPg0KICAgIC5PbmVVcC1odG1s IHsNCiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgIHRvcDogMDsNCiAgICAgIGxl ZnQ6IDA7DQogICAgICByaWdodDogMDsNCiAgICAgIGJvdHRvbTogMDsNCiAgICAgIG1hcmdp bjogMjBweCAyMHB4Ow0KICAgICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNo Ow0KICAgIH0NCg0KICAgIC5PbmVVcC1odG1sLmlPUyB7DQogICAgICBvdmVyZmxvdzogYXV0 bzsNCiAgICB9DQoNCiAgICAuT25lVXAtaHRtbCBpZnJhbWUgew0KICAgICAgd2lkdGg6IDEw MCU7DQogICAgICBoZWlnaHQ6IDEwMCU7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZm Ow0KICAgICAgYm9yZGVyOiAwOw0KICAgICAgYm94LXNoYWRvdzogMCAwIDdweCAycHggcmdi YSgwLCAwLCAwLCAwLjE1KTsNCiAgICAgIG92ZXJmbG93OiBhdXRvOw0KICAgICAgLXdlYmtp dC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoOw0KICAgIH0NCiAgPC9zdHlsZT4NCiAgPHN0 eWxlIGRhdGEtbG9hZC10aGVtZWQtc3R5bGVzPSJ0cnVlIj4NCiAgICAuRmlsZVR5cGVJY29u IHsNCiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgICAgIGRpc3BsYXk6IGlubGluZS1i bG9jazsNCiAgICB9DQoNCiAgICAuRmlsZVR5cGVJY29uLS1jbGlja2FibGUgew0KICAgICAg Y3Vyc29yOiBwb2ludGVyOw0KICAgIH0NCg0KICAgIC5GaWxlVHlwZUljb24taWNvbiB7DQog ICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7DQogICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlk ZGxlOw0KICAgICAgcG9zaXRpb246IHJlbGF0aXZlOw0KICAgICAgb3ZlcmZsb3c6IGhpZGRl bjsNCiAgICB9DQoNCiAgICAuRmlsZVR5cGVJY29uLWljb246OmJlZm9yZSB7DQogICAgICBk aXNwbGF5OiBibG9jazsNCiAgICB9DQoNCiAgICAuRmlsZVR5cGVJY29uLW92ZXJsYXkgew0K ICAgICAgZGlzcGxheTogYmxvY2s7DQogICAgICBib3JkZXI6IDA7DQogICAgICBwb3NpdGlv bjogcmVsYXRpdmU7DQogICAgICBsZWZ0OiA5cHg7DQogICAgICBib3R0b206IDlweDsNCiAg ICAgIGhlaWdodDogOXB4Ow0KICAgICAgd2lkdGg6IDlweDsNCiAgICB9DQogIDwvc3R5bGU+ DQogIDxzdHlsZSBkYXRhLWxvYWQtdGhlbWVkLXN0eWxlcz0idHJ1ZSI+DQogICAgLm9kLVBy b2plY3RvciB7DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgICBsZWZ0OiAwOw0K ICAgICAgdG9wOiAwOw0KICAgICAgd2lkdGg6IDEwMCU7DQogICAgICBoZWlnaHQ6IDEwMCU7 DQogICAgICBvdmVyZmxvdzogaGlkZGVuOw0KICAgIH0NCg0KICAgIC5vZC1Qcm9qZWN0b3It aW1hZ2Ugew0KICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICAgbGVmdDogMDsNCiAg ICAgIHRvcDogMDsNCiAgICAgIHdpZHRoOiAxMDAlOw0KICAgICAgaGVpZ2h0OiAxMDAlOw0K ICAgICAgdHJhbnNmb3JtLW9yaWdpbjogMCAwOw0KICAgICAgdG91Y2gtYWN0aW9uOiBub25l Ow0KICAgICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTsNCiAgICAgIGJhY2tmYWNlLXZpc2li aWxpdHk6IGhpZGRlbjsNCiAgICAgIHBlcnNwZWN0aXZlOiAxMDAwOw0KICAgIH0NCg0KICAg IC5vZC1Qcm9qZWN0b3ItLWdsaWRpbmcub2QtUHJvamVjdG9yLS1wcmV2aWV3IC5vZC1Qcm9q ZWN0b3ItaW1hZ2Ugew0KICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDI2N21zIGN1Ymlj LWJlemllcigwLjEsIDAuOSwgMC4yLCAxKTsNCiAgICB9DQoNCiAgICAub2QtUHJvamVjdG9y LS1nbGlkaW5nLm9kLVByb2plY3Rvci0tbGl2ZSAub2QtUHJvamVjdG9yLWltYWdlIHsNCiAg ICAgIHRyYW5zaXRpb246IGxlZnQgMjY3bXMgY3ViaWMtYmV6aWVyKDAuMSwgMC45LCAwLjIs IDEpLA0KICAgICAgICB0b3AgMjY3bXMgY3ViaWMtYmV6aWVyKDAuMSwgMC45LCAwLjIsIDEp LA0KICAgICAgICB3aWR0aCAyNjdtcyBjdWJpYy1iZXppZXIoMC4xLCAwLjksIDAuMiwgMSks DQogICAgICAgIGhlaWdodCAyNjdtcyBjdWJpYy1iZXppZXIoMC4xLCAwLjksIDAuMiwgMSk7 DQogICAgfQ0KICA8L3N0eWxlPg0KICA8c3R5bGUgZGF0YS1sb2FkLXRoZW1lZC1zdHlsZXM9 InRydWUiPg0KICAgIC5vZC1JbWFnZUZyYW1lIHsNCiAgICAgIGRpc3BsYXk6IGJsb2NrOw0K ICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICAgdG9wOiAwOw0KICAgICAgbGVmdDog MDsNCiAgICAgIGJvdHRvbTogMDsNCiAgICAgIHJpZ2h0OiAwOw0KICAgIH0NCiAgPC9zdHls ZT4NCiAgPHN0eWxlIGRhdGEtbG9hZC10aGVtZWQtc3R5bGVzPSJ0cnVlIj4NCiAgICAub2Qt SW1hZ2VTdGFjayB7DQogICAgICBkaXNwbGF5OiBibG9jazsNCiAgICAgIHBvc2l0aW9uOiBh YnNvbHV0ZTsNCiAgICAgIHRvcDogMDsNCiAgICAgIGxlZnQ6IDA7DQogICAgICBib3R0b206 IDA7DQogICAgICByaWdodDogMDsNCiAgICAgIG92ZXJmbG93OiBoaWRkZW47DQogICAgfQ0K DQogICAgLm9kLUltYWdlU3RhY2stdGlsZSB7DQogICAgICBkaXNwbGF5OiBibG9jazsNCiAg ICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgIHRvcDogMDsNCiAgICAgIGxlZnQ6IDA7 DQogICAgICBib3R0b206IDA7DQogICAgICByaWdodDogMDsNCiAgICAgIG9wYWNpdHk6IDA7 DQogICAgfQ0KDQogICAgLm9kLUltYWdlU3RhY2stdGlsZS0taXNMb2FkZWQgew0KICAgICAg b3BhY2l0eTogMTsNCiAgICB9DQoNCiAgICAub2QtSW1hZ2VTdGFjay0tZmFkZSAub2QtSW1h Z2VTdGFjay10aWxlLS1pc0xvYWRlZCB7DQogICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDIx N21zIGxpbmVhciA1MG1zOw0KICAgIH0NCiAgPC9zdHlsZT4NCiAgPHN0eWxlIGRhdGEtbG9h ZC10aGVtZWQtc3R5bGVzPSJ0cnVlIj4NCiAgICAub2QtSW1hZ2VUaWxlIHsNCiAgICAgIGRp c3BsYXk6IGJsb2NrOw0KICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICAgdG9wOiAw Ow0KICAgICAgbGVmdDogMDsNCiAgICAgIHJpZ2h0OiAwOw0KICAgICAgYm90dG9tOiAwOw0K ICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsNCiAgICB9DQoNCiAgICAub2QtSW1hZ2VUaWxlIGlt ZyB7DQogICAgICBkaXNwbGF5OiBibG9jazsNCiAgICB9DQoNCiAgICAub2QtSW1hZ2VUaWxl LS1jb3ZlciAub2QtSW1hZ2VUaWxlLWJhY2tncm91bmQgew0KICAgICAgdG9wOiAwOw0KICAg ICAgbGVmdDogMDsNCiAgICAgIGJvdHRvbTogMDsNCiAgICAgIHJpZ2h0OiAwOw0KICAgICAg d2lkdGg6IDEwMCU7DQogICAgICBoZWlnaHQ6IDEwMCU7DQogICAgICBtYXJnaW46IGF1dG87 DQogICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyOw0KICAgICAgYmFja2dyb3VuZC1yZXBl YXQ6IG5vLXJlcGVhdDsNCiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjsNCiAg ICB9DQoNCiAgICAub2QtSW1hZ2VUaWxlLS1maXQgLm9kLUltYWdlVGlsZS1iYWNrZ3JvdW5k IHsNCiAgICAgIHRvcDogMDsNCiAgICAgIGxlZnQ6IDA7DQogICAgICBib3R0b206IDA7DQog ICAgICByaWdodDogMDsNCiAgICAgIHdpZHRoOiAxMDAlOw0KICAgICAgaGVpZ2h0OiAxMDAl Ow0KICAgICAgbWFyZ2luOiBhdXRvOw0KICAgICAgYmFja2dyb3VuZC1zaXplOiBjb250YWlu Ow0KICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsNCiAgICAgIGJhY2tncm91 bmQtcG9zaXRpb246IGNlbnRlcjsNCiAgICB9DQoNCiAgICAub2QtSW1hZ2VUaWxlLWltYWdl IHsNCiAgICAgIGRpc3BsYXk6IGJsb2NrOw0KICAgICAgb3BhY2l0eTogMDsNCiAgICAgIHBv c2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7DQogICAg fQ0KDQogICAgLm9kLUltYWdlVGlsZS1pbWFnZSwNCiAgICBhIC5vZC1JbWFnZVRpbGUtaW1h Z2Ugew0KICAgICAgYm9yZGVyOiBub25lOw0KICAgIH0NCg0KICAgIC5vZC1JbWFnZVRpbGUt YmFja2dyb3VuZCB7DQogICAgICBkaXNwbGF5OiBibG9jazsNCiAgICAgIG9wYWNpdHk6IDA7 DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgICBib3gtc2l6aW5nOiBib3JkZXIt Ym94Ow0KICAgIH0NCg0KICAgIC5vZC1JbWFnZVRpbGUtLWlzTG9hZGVkLm9kLUltYWdlVGls ZS0taXNEaW1lbnNpb25lZC5vZC1JbWFnZVRpbGUtLWlzQWxpZ25lZCAub2QtSW1hZ2VUaWxl LWJhY2tncm91bmQgew0KICAgICAgb3BhY2l0eTogMTsNCiAgICB9DQoNCiAgICBAbWVkaWEg c2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSkgew0KICAgICAgLm9kLUlt YWdlVGlsZS0taXNMb2FkZWQub2QtSW1hZ2VUaWxlLS1pc0RpbWVuc2lvbmVkLm9kLUltYWdl VGlsZS0taXNBbGlnbmVkIC5vZC1JbWFnZVRpbGUtYmFja2dyb3VuZCB7DQogICAgICAgIG9w YWNpdHk6IDA7DQogICAgICB9DQogICAgfQ0KDQogICAgLm9kLUltYWdlVGlsZS0taXNMb2Fk ZWQub2QtSW1hZ2VUaWxlLS1pc0RpbWVuc2lvbmVkLm9kLUltYWdlVGlsZS0taXNDdXN0b20g Lm9kLUltYWdlVGlsZS1pbWFnZSB7DQogICAgICBvcGFjaXR5OiAxOw0KICAgIH0NCg0KICAg IEBtZWRpYSBzY3JlZW4gYW5kICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSB7DQogICAg ICAub2QtSW1hZ2VUaWxlLS1pc0xvYWRlZC5vZC1JbWFnZVRpbGUtLWlzRGltZW5zaW9uZWQg Lm9kLUltYWdlVGlsZS1pbWFnZSB7DQogICAgICAgIG9wYWNpdHk6IDE7DQogICAgICB9DQog ICAgfQ0KDQogICAgLm9kLUltYWdlVGlsZS0taXNSb3RhdGluZyAub2QtSW1hZ2VUaWxlLWlt YWdlIHsNCiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAxNjdtcyBjdWJpYy1iZXppZXIo MC4xLCAwLjI1LCAwLjc1LCAwLjkpOw0KICAgIH0NCiAgPC9zdHlsZT4NCiAgPHN0eWxlIGRh dGEtbG9hZC10aGVtZWQtc3R5bGVzPSJ0cnVlIj4NCiAgICAuQ2Fyb3VzZWwgew0KICAgICAg cG9zaXRpb246IGFic29sdXRlOw0KICAgICAgbGVmdDogMDsNCiAgICAgIHJpZ2h0OiAwOw0K ICAgICAgdG9wOiAwOw0KICAgICAgYm90dG9tOiAwOw0KICAgICAgb3ZlcmZsb3c6IGhpZGRl bjsNCiAgICAgIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTsNCiAgICAgIC13ZWJraXQt dXNlci1zZWxlY3Q6IG5vbmU7DQogICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7DQogICAg ICB1c2VyLXNlbGVjdDogbm9uZTsNCiAgICB9DQoNCiAgICAuQ2Fyb3VzZWwtcGxhdGZvcm0g ew0KICAgICAgei1pbmRleDogMDsNCiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAg IHRvcDogMDsNCiAgICAgIGxlZnQ6IDA7DQogICAgICB3aWR0aDogMTAwJTsNCiAgICAgIGhl aWdodDogMTAwJTsNCiAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgMDsNCiAgICAgIHRvdWNo LWFjdGlvbjogbm9uZTsNCiAgICB9DQoNCiAgICAuQ2Fyb3VzZWwtcGxhdGZvcm0uaXMtZW5h YmxlZCB7DQogICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtOw0KICAgICAgYmFja2ZhY2Ut dmlzaWJpbGl0eTogaGlkZGVuOw0KICAgICAgcGVyc3BlY3RpdmU6IDEwMDA7DQogICAgfQ0K DQogICAgLkNhcm91c2VsLXNsaWRlIHsNCiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAg ICAgIGxlZnQ6IDA7DQogICAgICB0b3A6IDA7DQogICAgICB3aWR0aDogMTAwJTsNCiAgICAg IGhlaWdodDogMTAwJTsNCiAgICAgIHotaW5kZXg6IDE7DQogICAgICBvcGFjaXR5OiAwOw0K ICAgICAgdmlzaWJpbGl0eTogaGlkZGVuOw0KICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAw cyBsaW5lYXIgMC4zcywgdmlzaWJpbGl0eSAwcyBsaW5lYXIgMC4zcywNCiAgICAgICAgdHJh bnNmb3JtIDBzIGxpbmVhcjsNCiAgICB9DQoNCiAgICAuQ2Fyb3VzZWwtc2xpZGUuaXMtY3Vy cmVudC5pcy1sb2FkZWQgew0KICAgICAgb3BhY2l0eTogMTsNCiAgICAgIHZpc2liaWxpdHk6 IGluaGVyaXQ7DQogICAgICB0cmFuc2l0aW9uLWRlbGF5OiAwcywgMHMsIDBzOw0KICAgIH0N Cg0KICAgIC5DYXJvdXNlbC1zbGlkZS5pcy1jdXJyZW50LmlzLWRlbGV0ZWQsDQogICAgLkNh cm91c2VsLXNsaWRlLmlzLWRlbGV0ZWQgew0KICAgICAgei1pbmRleDogMDsNCiAgICAgIG9w YWNpdHk6IDA7DQogICAgICB2aXNpYmlsaXR5OiBoaWRkZW47DQogICAgICB0cmFuc2l0aW9u LWR1cmF0aW9uOiAwcywgMHMsIDBzOw0KICAgICAgdHJhbnNpdGlvbi1kZWxheTogMHMsIDBz LCAwczsNCiAgICB9DQoNCiAgICAuQ2Fyb3VzZWwtcGxhdGZvcm0uaXMtZW5hYmxlZCAuQ2Fy b3VzZWwtc2xpZGUgew0KICAgICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTsNCiAgICAgIGJh Y2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsNCiAgICAgIHBlcnNwZWN0aXZlOiAxMDAwOw0K ICAgIH0NCg0KICAgIC5DYXJvdXNlbC1wbGF0Zm9ybS5pcy1mbGlwcGluZyAuQ2Fyb3VzZWwt c2xpZGUgew0KICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMHMsIDBzLCAwczsNCiAgICAg IHRyYW5zaXRpb24tZGVsYXk6IDBzLCAwcywgMHM7DQogICAgfQ0KDQogICAgLkNhcm91c2Vs LXBsYXRmb3JtLmlzLWZsaXBwaW5nIC5DYXJvdXNlbC1zbGlkZVtkYXRhLWl0ZW0tb3JkZXI9 IjEiXSB7DQogICAgICB6LWluZGV4OiAxMDsNCiAgICB9DQoNCiAgICAuQ2Fyb3VzZWwtcGxh dGZvcm0uaXMtZmxpcHBpbmcgLkNhcm91c2VsLXNsaWRlW2RhdGEtaXRlbS1vcmRlcj0iMSJd LmlzLWN1cnJlbnQuaXMtbG9hZGVkIHsNCiAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAu M3MsIDBzLCAwLjNzOw0KICAgIH0NCg0KICAgIC5DYXJvdXNlbC1wbGF0Zm9ybS5pcy1mbGlw cGluZyAuQ2Fyb3VzZWwtc2xpZGVbZGF0YS1pdGVtLW9yZGVyPSIyIl0gew0KICAgICAgei1p bmRleDogOTsNCiAgICB9DQoNCiAgICAuQ2Fyb3VzZWwtcGxhdGZvcm0uaXMtZmxpcHBpbmcg LkNhcm91c2VsLXNsaWRlW2RhdGEtaXRlbS1vcmRlcj0iMiJdLmlzLWxvYWRlZCB7DQogICAg ICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjNzLCAwcywgMC4zczsNCiAgICAgIHRyYW5zaXRp b24tZGVsYXk6IDAuM3MsIDAuNnMsIDBzOw0KICAgIH0NCg0KICAgIC5DYXJvdXNlbC1wbGF0 Zm9ybS5pcy1mbGlwcGluZyAuQ2Fyb3VzZWwtc2xpZGVbZGF0YS1pdGVtLW9yZGVyPSIzIl0g ew0KICAgICAgei1pbmRleDogODsNCiAgICB9DQoNCiAgICAuQ2Fyb3VzZWwtcGxhdGZvcm0u aXMtZmxpcHBpbmcgLkNhcm91c2VsLXNsaWRlW2RhdGEtaXRlbS1vcmRlcj0iNCJdIHsNCiAg ICAgIHotaW5kZXg6IDc7DQogICAgfQ0KDQogICAgLkNhcm91c2VsLXBsYXRmb3JtLmlzLWZs aXBwaW5nIC5DYXJvdXNlbC1zbGlkZVtkYXRhLWl0ZW0tb3JkZXI9IjUiXSB7DQogICAgICB6 LWluZGV4OiA2Ow0KICAgIH0NCg0KICAgIC5DYXJvdXNlbC1wbGF0Zm9ybS5pcy1mbGlwcGlu ZyAuQ2Fyb3VzZWwtc2xpZGVbZGF0YS1pdGVtLW9yZGVyPSI2Il0gew0KICAgICAgei1pbmRl eDogNTsNCiAgICB9DQoNCiAgICAuQ2Fyb3VzZWwtcGxhdGZvcm0uaXMtZmxpcHBpbmcgLkNh cm91c2VsLXNsaWRlW2RhdGEtaXRlbS1vcmRlcj0iNyJdIHsNCiAgICAgIHotaW5kZXg6IDQ7 DQogICAgfQ0KDQogICAgLkNhcm91c2VsLXBsYXRmb3JtLmlzLWZsaXBwaW5nIC5DYXJvdXNl bC1zbGlkZVtkYXRhLWl0ZW0tb3JkZXI9IjgiXSB7DQogICAgICB6LWluZGV4OiAzOw0KICAg IH0NCg0KICAgIGh0bWxbZGlyPSJsdHIiXSAuQ2Fyb3VzZWwtcGxhdGZvcm0uaXMtZmxpcHBp bmcgLkNhcm91c2VsLXNsaWRlW2RhdGEtaXRlbS1kaXJlY3Rpb249IjEiXSB7DQogICAgICB0 cmFuc2Zvcm06IHRyYW5zbGF0ZSgyJSwgMCk7DQogICAgfQ0KDQogICAgaHRtbFtkaXI9InJ0 bCJdIC5DYXJvdXNlbC1wbGF0Zm9ybS5pcy1mbGlwcGluZyAuQ2Fyb3VzZWwtc2xpZGVbZGF0 YS1pdGVtLWRpcmVjdGlvbj0iMSJdIHsNCiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0y JSwgMCk7DQogICAgfQ0KDQogICAgaHRtbFtkaXI9Imx0ciJdIC5DYXJvdXNlbC1wbGF0Zm9y bS5pcy1mbGlwcGluZyAuQ2Fyb3VzZWwtc2xpZGVbZGF0YS1pdGVtLWRpcmVjdGlvbj0iLTEi XSB7DQogICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMiUsIDApOw0KICAgIH0NCg0KICAg IGh0bWxbZGlyPSJydGwiXSAuQ2Fyb3VzZWwtcGxhdGZvcm0uaXMtZmxpcHBpbmcgLkNhcm91 c2VsLXNsaWRlW2RhdGEtaXRlbS1kaXJlY3Rpb249Ii0xIl0gew0KICAgICAgdHJhbnNmb3Jt OiB0cmFuc2xhdGUoMiUsIDApOw0KICAgIH0NCg0KICAgIC5DYXJvdXNlbC1wbGF0Zm9ybS5p cy1yb3RhdGluZyAuQ2Fyb3VzZWwtc2xpZGUgew0KICAgICAgdHJhbnNpdGlvbi1kZWxheTog MHMsIDBzLCAwczsNCiAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDBzLCAwcywgMHM7DQog ICAgfQ0KDQogICAgLkNhcm91c2VsLXBsYXRmb3JtLmlzLXJvdGF0aW5nIC5DYXJvdXNlbC1z bGlkZVtkYXRhLWl0ZW0tb2Zmc2V0PSIyIl0gew0KICAgICAgdHJhbnNmb3JtOiB0cmFuc2xh dGUoMjA0JSwgMCk7DQogICAgfQ0KDQogICAgLkNhcm91c2VsLXBsYXRmb3JtLmlzLXJvdGF0 aW5nIC5DYXJvdXNlbC1zbGlkZVtkYXRhLWl0ZW0tb2Zmc2V0PSIxIl0gew0KICAgICAgdHJh bnNmb3JtOiB0cmFuc2xhdGUoMTAyJSwgMCk7DQogICAgfQ0KDQogICAgLkNhcm91c2VsLXBs YXRmb3JtLmlzLXJvdGF0aW5nIC5DYXJvdXNlbC1zbGlkZVtkYXRhLWl0ZW0tb2Zmc2V0PSIt MSJdIHsNCiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xMDIlLCAwKTsNCiAgICB9DQoN CiAgICAuQ2Fyb3VzZWwtcGxhdGZvcm0uaXMtcm90YXRpbmcgLkNhcm91c2VsLXNsaWRlW2Rh dGEtaXRlbS1vZmZzZXQ9Ii0yIl0gew0KICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTIw NCUsIDApOw0KICAgIH0NCg0KICAgIC5DYXJvdXNlbC1wbGF0Zm9ybS5pcy1yb3RhdGluZyAu Q2Fyb3VzZWwtc2xpZGVbZGF0YS1pdGVtLW9mZnNldD0iLTEiXSwNCiAgICAuQ2Fyb3VzZWwt cGxhdGZvcm0uaXMtcm90YXRpbmcgLkNhcm91c2VsLXNsaWRlW2RhdGEtaXRlbS1vZmZzZXQ9 Ii0yIl0sDQogICAgLkNhcm91c2VsLXBsYXRmb3JtLmlzLXJvdGF0aW5nIC5DYXJvdXNlbC1z bGlkZVtkYXRhLWl0ZW0tb2Zmc2V0PSIxIl0sDQogICAgLkNhcm91c2VsLXBsYXRmb3JtLmlz LXJvdGF0aW5nIC5DYXJvdXNlbC1zbGlkZVtkYXRhLWl0ZW0tb2Zmc2V0PSIyIl0gew0KICAg ICAgdmlzaWJpbGl0eTogaW5oZXJpdDsNCiAgICAgIG9wYWNpdHk6IDE7DQogICAgfQ0KDQog ICAgLkNhcm91c2VsLXBsYXRmb3JtLmlzLWdsaWRpbmcgew0KICAgICAgdHJhbnNpdGlvbjog dHJhbnNmb3JtIDAuM3MgZWFzZS1vdXQ7DQogICAgfQ0KDQogICAgLkNhcm91c2VsLXBsYXRm b3JtLmlzLWdsaWRpbmcgLkNhcm91c2VsLXNsaWRlW2RhdGEtaXRlbS1vZmZzZXQ9Ii0xIl0s DQogICAgLkNhcm91c2VsLXBsYXRmb3JtLmlzLWdsaWRpbmcgLkNhcm91c2VsLXNsaWRlW2Rh dGEtaXRlbS1vZmZzZXQ9Ii0yIl0sDQogICAgLkNhcm91c2VsLXBsYXRmb3JtLmlzLWdsaWRp bmcgLkNhcm91c2VsLXNsaWRlW2RhdGEtaXRlbS1vZmZzZXQ9IjEiXSwNCiAgICAuQ2Fyb3Vz ZWwtcGxhdGZvcm0uaXMtZ2xpZGluZyAuQ2Fyb3VzZWwtc2xpZGVbZGF0YS1pdGVtLW9mZnNl dD0iMiJdIHsNCiAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDAuM3MsIDAuM3MsIDBzOw0KICAg IH0NCiAgPC9zdHlsZT4NCiAgPHNjcmlwdCBjaGFyc2V0PSJ1dGYtOCINCiAgICBzcmM9Imh0 dHBzOi8vcmVzLTEuY2RuLm9mZmljZS5uZXQvZmlsZXMvb2RzcC13ZWItcHJvZF8yMDIzLTEw LTIwLjAwNS9vZGNsaWdodHNwZWVkd2VicGFjay5tYW5pZmVzdC83MjMuanMiDQogICAgY3Jv c3NvcmlnaW49ImFub255bW91cyI+PC9zY3JpcHQ+DQogIDxzdHlsZSB0eXBlPSJ0ZXh0L2Nz cyI+DQogICAgLnltNVwvNnNpamxsb29jNXoyYzdwZXZnXD1cPSB7DQogICAgICBwb3NpdGlv bjogcmVsYXRpdmU7DQogICAgICBmb250LWZhbWlseTogU2Vnb2VVSS1SZWd1bGFyLWZpbmFs LCBTZWdvZSBVSSwNCiAgICAgICAgIlNlZ29lIFVJIFdlYiAoV2VzdCBFdXJvcGVhbikiLCBT ZWdvZSwgLWFwcGxlLXN5c3RlbSwNCiAgICAgICAgQmxpbmtNYWNTeXN0ZW1Gb250LCBSb2Jv dG8sIEhlbHZldGljYSBOZXVlLCBUYWhvbWEsIEhlbHZldGljYSwgQXJpYWwsDQogICAgICAg IHNhbnMtc2VyaWY7DQogICAgICBjb2xvcjogIzI1MjQyMzsNCiAgICAgIGJhY2tncm91bmQt Y29sb3I6ICNmYWZhZmE7DQogICAgICBib3gtc2hhZG93OiAwIDJweCA0cHggLTAuNzVweCBy Z2JhKDAsIDAsIDAsIDAuMSk7DQogICAgICBib3JkZXItcmFkaXVzOiAzcHg7DQogICAgICBo ZWlnaHQ6IDMycHg7DQogICAgICB0ZXh0LWFsaWduOiBsZWZ0Ow0KICAgIH0NCg0KICAgIC55 bTVcLzZzaWpsbG9vYzV6MmM3cGV2Z1w9XD06aG92ZXIsDQogICAgLnltNVwvNnNpamxsb29j NXoyYzdwZXZnXD1cPS5KckF5eWdqdFBhTXR4b1o5RGNDXC9CQVw9XD0sDQogICAgLnltNVwv NnNpamxsb29jNXoyYzdwZXZnXD1cPS5RZHNsbUdHYmpjRmNDTXJqZTBLdjVRXD1cPSB7DQog ICAgICBjb2xvcjogIzI1MjQyMzsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7DQog ICAgICBib3gtc2hhZG93OiAwIDRweCA4cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMSk7DQog ICAgfQ0KDQogICAgLnltNVwvNnNpamxsb29jNXoyYzdwZXZnXD1cPS5fM1wvaVFsQjBNdWxh WTN2SFhxTzFZdXdcPVw9IHsNCiAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDRweCAtMC43NXB4 IHJnYmEoMCwgMCwgMCwgMC4xKTsNCiAgICB9DQoNCiAgICAuYWlodE5RNFE1Uk02aWtHOFJs UnpuQVw9XD0gew0KICAgICAgYm9yZGVyLXJhZGl1czogMTZweDsNCiAgICB9DQoNCiAgICAu WGVkWk9cK1NTN1FcL2FyU3lCQkhVdzhBXD1cPSB7DQogICAgICBtYXgtd2lkdGg6IDQ2OHB4 Ow0KICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDg4cHgpOw0KICAgICAgbWFyZ2luOiA4cHgg YXV0bzsNCiAgICB9DQoNCiAgICAuU1ROdHFcL3c3bDRONXRsQVM5ajZGT1FcPVw9IHsNCiAg ICAgIG1heC13aWR0aDogNDY4cHg7DQogICAgICB3aWR0aDogY2FsYygxMDAlIC0gMTZweCk7 DQogICAgICBtYXJnaW46IDhweCBhdXRvOw0KICAgIH0NCg0KICAgIC5jbm52djZuT1JpaVll VW13VUFcK21cK0FcPVw9IHsNCiAgICAgIGRpc3BsYXk6IGZsZXg7DQogICAgICBoZWlnaHQ6 IDEwMCU7DQogICAgICBib3JkZXItcmFkaXVzOiAycHg7DQogICAgfQ0KDQogICAgQG1lZGlh IHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiB3aGl0ZS1vbi1ibGFjaykgew0KICAg ICAgLmNubnZ2Nm5PUmlpWWVVbXdVQVwrbVwrQVw9XD0gew0KICAgICAgICBib3JkZXI6IDFw eCBzb2xpZCAjZmZmOw0KICAgICAgfQ0KICAgIH0NCg0KICAgIEBtZWRpYSBzY3JlZW4gYW5k ICgtbXMtaGlnaC1jb250cmFzdDogYmxhY2stb24td2hpdGUpIHsNCiAgICAgIC5jbm52djZu T1JpaVllVW13VUFcK21cK0FcPVw9IHsNCiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzAw MDsNCiAgICAgIH0NCiAgICB9DQoNCiAgICAuY25udnY2bk9SaWlZZVVtd1VBXCttXCtBXD1c PSBidXR0b24gew0KICAgICAgaGVpZ2h0OiBhdXRvOw0KICAgICAgdGV4dC1hbGlnbjogY2Vu dGVyOw0KICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsNCiAgICAgIGJveC1zaXppbmc6IGJv cmRlci1ib3g7DQogICAgfQ0KDQogICAgLlByNDloRFhIQ21jMmFcL1M3ZEdzSW1nXD1cPSB7 DQogICAgICBmb250LWZhbWlseTogaW5oZXJpdDsNCiAgICAgIGZvbnQtc2l6ZTogMTRweDsN CiAgICAgIGZsZXg6IDEgMCAwcHg7DQogICAgICB3aWR0aDogMTAwJTsNCiAgICAgIGNvbG9y OiBpbmhlcml0ICFpbXBvcnRhbnQ7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3Bh cmVudDsNCiAgICAgIGJvcmRlcjogMDsNCiAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsNCiAg ICAgIHBhZGRpbmc6IDA7DQogICAgICBoZWlnaHQ6IDEwMCU7DQogICAgICBvdXRsaW5lOiBu b25lOw0KICAgIH0NCg0KICAgIC5QcjQ5aERYSENtYzJhXC9TN2RHc0ltZ1w9XD06Oi13ZWJr aXQtc2VhcmNoLWNhbmNlbC1idXR0b24sDQogICAgLlByNDloRFhIQ21jMmFcL1M3ZEdzSW1n XD1cPTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiwNCiAgICAuUHI0OWhEWEhDbWMyYVwv UzdkR3NJbWdcPVw9Ojotd2Via2l0LXNlYXJjaC1yZXN1bHRzLWJ1dHRvbiwNCiAgICAuUHI0 OWhEWEhDbWMyYVwvUzdkR3NJbWdcPVw9Ojotd2Via2l0LXNlYXJjaC1yZXN1bHRzLWRlY29y YXRpb24gew0KICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOw0KICAgICAgZGlzcGxh eTogbm9uZTsNCiAgICB9DQoNCiAgICAuUHI0OWhEWEhDbWMyYVwvUzdkR3NJbWdcPVw9Ojot bXMtY2xlYXIgew0KICAgICAgZGlzcGxheTogbm9uZTsNCiAgICAgIHdpZHRoOiAwOw0KICAg ICAgaGVpZ2h0OiAwOw0KICAgIH0NCg0KICAgIC5QcjQ5aERYSENtYzJhXC9TN2RHc0ltZ1w9 XD06Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIgew0KICAgICAgY29sb3I6IGluaGVyaXQg IWltcG9ydGFudDsNCiAgICB9DQoNCiAgICAuUHI0OWhEWEhDbWMyYVwvUzdkR3NJbWdcPVw9 Oi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7DQogICAgICBjb2xvcjogaW5oZXJpdCAhaW1wb3J0 YW50Ow0KICAgIH0NCg0KICAgIC5QcjQ5aERYSENtYzJhXC9TN2RHc0ltZ1w9XD06OnBsYWNl aG9sZGVyIHsNCiAgICAgIGNvbG9yOiBpbmhlcml0ICFpbXBvcnRhbnQ7DQogICAgfQ0KDQog ICAgLmZmcGFMSE5XWEFBcm04NUdOWmt5TlFcPVw9IHsNCiAgICAgIGNvbG9yOiAjMTA2ZWJl Ow0KICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsNCiAgICB9DQogIDwvc3R5bGU+DQog IDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+DQogICAgLmRROFhMTUl5TnhsOE1BWXFNc1VaRlFc PVw9IHsNCiAgICAgIHdpZHRoOiAxMDAlOw0KICAgICAgaGVpZ2h0OiA1MHB4Ow0KICAgICAg ZGlzcGxheTogZmxleDsNCiAgICAgIGJvcmRlci1zcGFjaW5nOiAwOw0KICAgICAgd2hpdGUt c3BhY2U6IG5vd3JhcDsNCiAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7DQogICAgfQ0KDQog ICAgLmRROFhMTUl5TnhsOE1BWXFNc1VaRlFcPVw9IC5ocHlIaG1TZTlobWs1Z29wTHI5YTVR XD1cPSwNCiAgICAuZFE4WExNSXlOeGw4TUFZcU1zVVpGUVw9XD0gYS5yT3lcK0huOGtpRDVK OXY1VkRDRTNEZ1w9XD0gew0KICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsNCiAgICB9DQoN CiAgICAuYVU4TjMwSU0zR2NLTzRLS3o4bGdOQVw9XD0gew0KICAgICAgZGlzcGxheTogbm9u ZSAhaW1wb3J0YW50Ow0KICAgIH0NCg0KICAgIC5yZW1vdmVGb2N1c091dGxpbmUgOmZvY3Vz IHsNCiAgICAgIG91dGxpbmU6IG5vbmU7DQogICAgICBib3gtc2hhZG93OiBub25lICFpbXBv cnRhbnQ7DQogICAgfQ0KDQogICAgLmNsZ2lMVktQenVnWlpuczBMaVBUcXdcPVw9LA0KICAg IC5TWEdEZlwvamp6TjVZem44ZUwwd0hqZ1w9XD0gew0KICAgICAgZGlzcGxheTogYmxvY2s7 DQogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7DQogICAgICBtYXJnaW46IDA7DQogICAgICBw YWRkaW5nOiAwOw0KICAgICAgbWluLXdpZHRoOiA0OHB4Ow0KICAgICAgdGV4dC1hbGlnbjog Y2VudGVyOw0KICAgICAgY3Vyc29yOiBwb2ludGVyOw0KICAgICAgb3V0bGluZS1vZmZzZXQ6 IC0xcHg7DQogICAgfQ0KDQogICAgQG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZl KSwNCiAgICAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSB7DQoNCiAgICAgIC5jbGdpTFZLUHp1 Z1pabnMwTGlQVHF3XD1cPTpmb2N1cywNCiAgICAgIC5jbGdpTFZLUHp1Z1pabnMwTGlQVHF3 XD1cPTpob3ZlcisuaWNvbiwNCiAgICAgIC5TWEdEZlwvamp6TjVZem44ZUwwd0hqZ1w9XD06 Zm9jdXMsDQogICAgICAuU1hHRGZcL2pqek41WXpuOGVMMHdIamdcPVw9OmhvdmVyKy5pY29u IHsNCiAgICAgICAgLW1zLWhpZ2gtY29udHJhc3QtYWRqdXN0OiBub25lOw0KICAgICAgICBm b3JjZWQtY29sb3ItYWRqdXN0OiBub25lOw0KICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBI aWdobGlnaHQgIWltcG9ydGFudDsNCiAgICAgICAgY29sb3I6IGhpZ2hsaWdodFRleHQgIWlt cG9ydGFudDsNCiAgICAgIH0NCiAgICB9DQoNCiAgICAuY2xnaUxWS1B6dWdaWm5zMExpUFRx d1w9XD06aG92ZXIsDQogICAgLlNYR0RmXC9qanpONVl6bjhlTDB3SGpnXD1cPTpob3ZlciB7 DQogICAgICAtd2Via2l0LXRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC40NjdzIGN1 YmljLWJlemllcigwLjEsIDAuOSwgMC4yLCAxKSAzNG1zOw0KICAgICAgdHJhbnNpdGlvbjog YmFja2dyb3VuZC1jb2xvciAwLjQ2N3MgY3ViaWMtYmV6aWVyKDAuMSwgMC45LCAwLjIsIDEp IDM0bXM7DQogICAgfQ0KDQogICAgLlNYR0RmXC9qanpONVl6bjhlTDB3SGpnXD1cPSwNCiAg ICAuQmlEMDk2eGttSzhVeHdjNU1UdU9sd1w9XD0gew0KICAgICAgZGlzcGxheTogYmxvY2s7 DQogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7DQogICAgICBtYXJnaW46IDA7DQogICAgICBw YWRkaW5nOiAwOw0KICAgICAgbWluLXdpZHRoOiA0OHB4Ow0KICAgICAgdGV4dC1hbGlnbjog Y2VudGVyOw0KICAgICAgY3Vyc29yOiBkZWZhdWx0Ow0KICAgIH0NCg0KICAgIEBtZWRpYSAo LW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSksDQogICAgKGZvcmNlZC1jb2xvcnM6IGFjdGl2 ZSkgew0KDQogICAgICAuU1hHRGZcL2pqek41WXpuOGVMMHdIamdcPVw9OmZvY3VzLA0KICAg ICAgLlNYR0RmXC9qanpONVl6bjhlTDB3SGpnXD1cPTpob3ZlcisuaWNvbiwNCiAgICAgIC5C aUQwOTZ4a21LOFV4d2M1TVR1T2x3XD1cPTpmb2N1cywNCiAgICAgIC5CaUQwOTZ4a21LOFV4 d2M1TVR1T2x3XD1cPTpob3ZlcisuaWNvbiB7DQogICAgICAgIC1tcy1oaWdoLWNvbnRyYXN0 LWFkanVzdDogbm9uZTsNCiAgICAgICAgZm9yY2VkLWNvbG9yLWFkanVzdDogbm9uZTsNCiAg ICAgIH0NCiAgICB9DQoNCiAgICAuY2xnaUxWS1B6dWdaWm5zMExpUFRxd1w9XD0gew0KICAg ICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7DQogICAgICBib3JkZXItd2lkdGg6IDA7DQog ICAgICB3aWR0aDogYXV0bzsNCiAgICAgIGhlaWdodDogMTAwJTsNCiAgICAgIGJveC1zaXpp bmc6IGJvcmRlci1ib3g7DQogICAgICBvdmVyZmxvdzogdmlzaWJsZTsNCiAgICB9DQoNCiAg ICAuY2xnaUxWS1B6dWdaWm5zMExpUFRxd1w9XD0sDQogICAgLmNsZ2lMVktQenVnWlpuczBM aVBUcXdcPVw9IHNwYW5bY2xhc3MqPSIgbXMtSWNvbi0tIl0sDQogICAgLmNsZ2lMVktQenVn WlpuczBMaVBUcXdcPVw9IHNwYW5bY2xhc3NePSJtcy1JY29uLS0iXSB7DQogICAgICBsaW5l LWhlaWdodDogNDhweDsNCiAgICB9DQoNCiAgICBAbWVkaWEgKC1tcy1oaWdoLWNvbnRyYXN0 OiBhY3RpdmUpLA0KICAgIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpIHsNCg0KICAgICAgLmNs Z2lMVktQenVnWlpuczBMaVBUcXdcPVw9OmZvY3VzKy5pY29uLA0KICAgICAgLmNsZ2lMVktQ enVnWlpuczBMaVBUcXdcPVw9OmhvdmVyIHsNCiAgICAgICAgLW1zLWhpZ2gtY29udHJhc3Qt YWRqdXN0OiBub25lOw0KICAgICAgICBmb3JjZWQtY29sb3ItYWRqdXN0OiBub25lOw0KICAg ICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBIaWdobGlnaHQgIWltcG9ydGFudDsNCiAgICAgICAg Y29sb3I6IGhpZ2hsaWdodFRleHQgIWltcG9ydGFudDsNCiAgICAgIH0NCiAgICB9DQoNCiAg ICAuQmlEMDk2eGttSzhVeHdjNU1UdU9sd1w9XD0gew0KICAgICAgYmFja2dyb3VuZDogdHJh bnNwYXJlbnQ7DQogICAgICBib3JkZXItd2lkdGg6IDA7DQogICAgICB3aWR0aDogYXV0bzsN CiAgICAgIGhlaWdodDogMTAwJTsNCiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7DQog ICAgICBsaW5lLWhlaWdodDogNDhweDsNCiAgICAgIG92ZXJmbG93OiB2aXNpYmxlOw0KICAg ICAgY3Vyc29yOiBkZWZhdWx0Ow0KICAgIH0NCg0KICAgIC5CaUQwOTZ4a21LOFV4d2M1TVR1 T2x3XD1cPSBzcGFuW2NsYXNzKj0iIG1zLUljb24tLSJdLA0KICAgIC5CaUQwOTZ4a21LOFV4 d2M1TVR1T2x3XD1cPSBzcGFuW2NsYXNzXj0ibXMtSWNvbi0tIl0gew0KICAgICAgbGluZS1o ZWlnaHQ6IDQ4cHg7DQogICAgfQ0KDQogICAgQG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDog YWN0aXZlKSwNCiAgICAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSB7DQoNCiAgICAgIC5CaUQw OTZ4a21LOFV4d2M1TVR1T2x3XD1cPTpmb2N1cysuaWNvbiwNCiAgICAgIC5CaUQwOTZ4a21L OFV4d2M1TVR1T2x3XD1cPTpob3ZlciB7DQogICAgICAgIC1tcy1oaWdoLWNvbnRyYXN0LWFk anVzdDogbm9uZTsNCiAgICAgICAgZm9yY2VkLWNvbG9yLWFkanVzdDogbm9uZTsNCiAgICAg IH0NCiAgICB9DQoNCiAgICAuUkdTYlwvMWM0ZXg5Y20wYXMwb2FscWFcPVw9IHsNCiAgICAg IGRpc3BsYXk6IGluaGVyaXQ7DQogICAgfQ0KDQogICAgLlwvbDJQQXBVYkk1RWhKSzBjbWZI WHFnXD1cPSB7DQogICAgICBtaW4td2lkdGg6IDY4cHg7DQogICAgfQ0KDQogICAgLlNYR0Rm XC9qanpONVl6bjhlTDB3SGpnXD1cPSB7DQogICAgICBsaW5lLWhlaWdodDogNDhweDsNCiAg ICB9DQoNCiAgICAuYmZXTkVQczI0ZEVTcXlxRG5oXC83dGFcPVw9IHsNCiAgICAgIGRpc3Bs YXk6IGlubGluZS1ibG9jazsNCiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7DQogICAg ICBhbGlnbi1zZWxmOiBjZW50ZXI7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50 Q29sb3I7DQogICAgICBtYXJnaW4tbGVmdDogMTZweDsNCiAgICAgIG1hcmdpbi1yaWdodDog OHB4Ow0KICAgICAgaGVpZ2h0OiAyOHB4Ow0KICAgICAgd2lkdGg6IDFweDsNCiAgICB9DQoN CiAgICBodG1sW2Rpcj0icnRsIl0gLmJmV05FUHMyNGRFU3F5cURuaFwvN3RhXD1cPSB7DQog ICAgICBtYXJnaW4tcmlnaHQ6IDE2cHg7DQogICAgICBtYXJnaW4tbGVmdDogOHB4Ow0KICAg IH0NCg0KICAgIC5ocHlIaG1TZTlobWs1Z29wTHI5YTVRXD1cPSB7DQogICAgICBkaXNwbGF5 OiBpbmxpbmUtYmxvY2s7DQogICAgICBmb250LXdlaWdodDogNjAwOw0KICAgICAgZm9udC1m YW1pbHk6IFNlZ29lVUktU2VtaUJvbGQtZmluYWwsIFNlZ29lIFVJIFNlbWlib2xkLA0KICAg ICAgICBTZWdvZVVJLVJlZ3VsYXItZmluYWwsIFNlZ29lIFVJLCAiU2Vnb2UgVUkgV2ViIChX ZXN0IEV1cm9wZWFuKSIsIFNlZ29lLA0KICAgICAgICAtYXBwbGUtc3lzdGVtLCBCbGlua01h Y1N5c3RlbUZvbnQsIFJvYm90bywgSGVsdmV0aWNhIE5ldWUsIFRhaG9tYSwNCiAgICAgICAg SGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjsNCiAgICAgIGZvbnQtc2l6ZTogMTZweDsN CiAgICAgIGxpbmUtaGVpZ2h0OiA0OHB4Ow0KICAgICAgLXdlYmtpdC1mb250LXNtb290aGlu ZzogYW50aWFsaWFzZWQ7DQogICAgfQ0KDQogICAgLkF6elRwYkpGMTVTaW9ORDR2eWxXOEFc PVw9IHsNCiAgICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDsNCiAgICB9DQoNCiAg ICAueXZIc0s2SXZ1UW92UGZKbWNBWU9PZ1w9XD0gew0KICAgICAgZGlzcGxheTogZmxleDsN CiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7DQogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNl bnRlcjsNCiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7DQogICAgICBwYWRkaW5nOiAwOw0K ICAgICAgd2lkdGg6IDQ4cHg7DQogICAgICBoZWlnaHQ6IDQ4cHg7DQogICAgfQ0KDQogICAg Lnl2SHNLNkl2dVFvdlBmSm1jQVlPT2dcPVw9IGE6Zm9jdXMtdmlzaWJsZSB7DQogICAgICBv dXRsaW5lLW9mZnNldDogMTFweDsNCiAgICB9DQoNCiAgICAueXZIc0s2SXZ1UW92UGZKbWNB WU9PZ1w9XD0gaW1nIHsNCiAgICAgIHdpZHRoOiAyNHB4Ow0KICAgICAgaGVpZ2h0OiAyNHB4 Ow0KICAgICAgdG9wOiAxMnB4Ow0KICAgICAgbGVmdDogMTJweDsNCiAgICB9DQoNCiAgICAu VWJiTlVcK0NKU3lwWUhsdUhlZDYxa2dcPVw9IHsNCiAgICAgIGRpc3BsYXk6IGlubGluZS1i bG9jazsNCiAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7DQogICAgICBmb250LXNpemU6IDI0 cHg7DQogICAgICBtYXJnaW4tdG9wOiAxM3B4Ow0KICAgICAgbWFyZ2luLWxlZnQ6IDZweDsN CiAgICB9DQoNCiAgICAuVWJiTlVcK0NKU3lwWUhsdUhlZDYxa2dcPVw9OmJlZm9yZSB7DQog ICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOw0KICAgIH0NCg0KICAgIC5xOEFiUU9CcHV5OTN5 QmZUZUdmTmF3XD1cPSB7DQogICAgICBtYXJnaW4tbGVmdDogMTRweDsNCiAgICAgIG1hcmdp bi1yaWdodDogMTRweDsNCiAgICAgIGhlaWdodDogMjVweDsNCiAgICAgIG1hcmdpbi10b3A6 IDEycHg7DQogICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZDsNCiAgICB9DQoNCiAgICBo dG1sW2Rpcj0icnRsIl0gLlViYk5VXCtDSlN5cFlIbHVIZWQ2MWtnXD1cPSB7DQogICAgICBt YXJnaW4tbGVmdDogMDsNCiAgICAgIG1hcmdpbi1yaWdodDogNnB4Ow0KICAgIH0NCg0KICAg IC5lXC9WbDBqMHpIUU1oWlQxdlE2SlwrU1FcPVw9IHsNCiAgICAgIGhlaWdodDogMTAwJTsN CiAgICAgIGRpc3BsYXk6IGZsZXg7DQogICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOw0K ICAgICAgb3V0bGluZS1vZmZzZXQ6IC0xcHg7DQogICAgICBwYWRkaW5nOiAwIDEycHggMCA4 cHg7DQogICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7DQogICAgfQ0KDQogICAgLmVcL1Zs MGowekhRTWhaVDF2UTZKXCtTUVw9XD0gYSB7DQogICAgICBkaXNwbGF5OiBmbGV4Ow0KICAg ICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOw0KICAgICAgY29sb3I6IGluaGVyaXQ7DQogICAg fQ0KDQogICAgaHRtbFtkaXI9InJ0bCJdIC5lXC9WbDBqMHpIUU1oWlQxdlE2SlwrU1FcPVw9 IHsNCiAgICAgIHBhZGRpbmc6IDAgOHB4IDAgMTJweDsNCiAgICB9DQoNCiAgICAuXzNySkF5 eUF0UFNDbDB1b1lyXCt3dUxBXD1cPSB7DQogICAgICBsaW5lLWhlaWdodDogNDhweDsNCiAg ICAgIGhlaWdodDogMTAwJTsNCiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsNCiAgICAg IHZlcnRpY2FsLWFsaWduOiB0b3A7DQogICAgICBwYWRkaW5nLWxlZnQ6IDhweDsNCiAgICB9 DQoNCiAgICBodG1sW2Rpcj0icnRsIl0gLl8zckpBeXlBdFBTQ2wwdW9Zclwrd3VMQVw9XD0g ew0KICAgICAgcGFkZGluZy1yaWdodDogOHB4Ow0KICAgICAgcGFkZGluZy1sZWZ0OiAwOw0K ICAgIH0NCg0KICAgIC5yT3lcK0huOGtpRDVKOXY1VkRDRTNEZ1w9XD0gew0KICAgICAgbWF4 LXdpZHRoOiAyMDBweDsNCiAgICAgIG1heC1oZWlnaHQ6IDQ4cHg7DQogICAgICBvdmVyZmxv dzogaGlkZGVuOw0KICAgICAgbGluZS1oZWlnaHQ6IDQ4cHg7DQogICAgICBmb250LXNpemU6 IDA7DQogICAgICBoZWlnaHQ6IDEwMCU7DQogICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAg YWxpZ24taXRlbXM6IGNlbnRlcjsNCiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOw0K ICAgIH0NCg0KICAgIC5yT3lcK0huOGtpRDVKOXY1VkRDRTNEZ1w9XD06Zm9jdXMtdmlzaWJs ZSB7DQogICAgICBvdXRsaW5lLW9mZnNldDogLTJweDsNCiAgICB9DQoNCiAgICAuck95XCtI bjhraUQ1Sjl2NVZEQ0UzRGdcPVw9IGltZyB7DQogICAgICBtYXgtd2lkdGg6IDIwMHB4Ow0K ICAgICAgbWF4LWhlaWdodDogNDhweDsNCiAgICAgIGJvcmRlci1zdHlsZTogbm9uZSAhaW1w b3J0YW50Ow0KICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsNCiAgICB9DQoNCiAgICAu dFA2VWRRQXhlZkJ1MHJxdjJjaE1lZ1w9XD0gaW1nIHsNCiAgICAgIHdpZHRoOiBhdXRvOw0K ICAgICAgaGVpZ2h0OiAyNHB4Ow0KICAgIH0NCg0KICAgIEBtZWRpYSAoLW1zLWhpZ2gtY29u dHJhc3Q6IG5vbmUpLA0KICAgIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3Rp dmUpIHsNCiAgICAgIC50UDZVZFFBeGVmQnUwcnF2MmNoTWVnXD1cPSBpbWcgew0KICAgICAg ICBtYXgtd2lkdGg6IDIwMHB4Ow0KICAgICAgICBtYXgtaGVpZ2h0OiBub25lOw0KICAgICAg ICBtaW4td2lkdGg6IDE2MHB4Ow0KICAgICAgICB3aWR0aDogMTAwJTsNCiAgICAgICAgaGVp Z2h0OiAyNHB4Ow0KICAgICAgfQ0KICAgIH0NCg0KICAgIEBtZWRpYSAobWluLXdpZHRoOiA2 NDBweCkgew0KICAgICAgLkg3d3QxXC9UN2tieWZTUk5aMkp6VkxBXD1cPSB7DQogICAgICAg IG1heC13aWR0aDogMTc2cHg7DQogICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsNCiAg ICAgIH0NCiAgICB9DQoNCiAgICAuXC9CMW5cL2g2aWJJNXdWejdqZERJUDBBXD1cPSB7DQog ICAgICBoZWlnaHQ6IDEwMCU7DQogICAgICBtYXgtd2lkdGg6IDE3NnB4Ow0KICAgICAgZGlz cGxheTogZmxleDsNCiAgICB9DQoNCiAgICAuSGNLTUVZaG1MNHVMeUdcK0s0aHk4cGdcPVw9 IHsNCiAgICAgIHRleHQtYWxpZ246IHJpZ2h0Ow0KICAgICAgdmVydGljYWwtYWxpZ246IG1p ZGRsZTsNCiAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7DQogICAgICBvdmVyZmxvdzogaGlk ZGVuOw0KICAgICAgbWF4LXdpZHRoOiAxMjBweDsNCiAgICAgIGZvbnQtc2l6ZTogMTRweDsN CiAgICAgIGZvbnQtZmFtaWx5OiBTZWdvZVVJLVNlbWlMaWdodC1maW5hbCwgU2Vnb2UgVUkg U2VtaWxpZ2h0LA0KICAgICAgICBTZWdvZVVJLVJlZ3VsYXItZmluYWwsIFNlZ29lIFVJLCAi U2Vnb2UgVUkgV2ViIChXZXN0IEV1cm9wZWFuKSIsIFNlZ29lLA0KICAgICAgICAtYXBwbGUt c3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIFJvYm90bywgSGVsdmV0aWNhIE5ldWUsIFRh aG9tYSwNCiAgICAgICAgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjsNCiAgICAgIHRl eHQtb3ZlcmZsb3c6IGVsbGlwc2lzOw0KICAgICAgd29yZC1icmVhazogYnJlYWstYWxsOw0K ICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsNCiAgICAgIG1hcmdpbi1sZWZ0OiA0cHg7DQog ICAgfQ0KDQogICAgLkhjS01FWWhtTDR1THlHXCtLNGh5OHBnXD1cPT5zcGFuIHsNCiAgICAg IHBhZGRpbmctbGVmdDogNHB4Ow0KICAgICAgZGlzcGxheTogbm9uZTsNCiAgICB9DQoNCiAg ICAuVTZDbmZvMFJqWEo4VUV3WGhaVjhtUVw9XD0gew0KICAgICAgdGV4dC1hbGlnbjogbGVm dDsNCiAgICAgIGRpc3BsYXk6IGJsb2NrOw0KICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsNCiAg ICAgIG1heC13aWR0aDogMTYwcHg7DQogICAgICBmb250LXNpemU6IDEzcHg7DQogICAgICBm b250LWZhbWlseTogU2Vnb2VVSS1SZWd1bGFyLWZpbmFsLCBTZWdvZSBVSSwNCiAgICAgICAg IlNlZ29lIFVJIFdlYiAoV2VzdCBFdXJvcGVhbikiLCBTZWdvZSwgLWFwcGxlLXN5c3RlbSwN CiAgICAgICAgQmxpbmtNYWNTeXN0ZW1Gb250LCBSb2JvdG8sIEhlbHZldGljYSBOZXVlLCBU YWhvbWEsIEhlbHZldGljYSwgQXJpYWwsDQogICAgICAgIHNhbnMtc2VyaWY7DQogICAgICB0 ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsNCiAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDsN CiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7DQogICAgICBsaW5lLWhlaWdodDogNDhweDsN CiAgICB9DQoNCiAgICAuVTZDbmZvMFJqWEo4VUV3WGhaVjhtUVw9XD0+c3BhbiB7DQogICAg ICBwYWRkaW5nLWxlZnQ6IDEycHg7DQogICAgICBwYWRkaW5nLXJpZ2h0OiA0cHg7DQogICAg ICBkaXNwbGF5OiBub25lOw0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJydGwiXSAuSGNLTUVZ aG1MNHVMeUdcK0s0aHk4cGdcPVw9IHsNCiAgICAgIHRleHQtYWxpZ246IGxlZnQ7DQogICAg fQ0KDQogICAgaHRtbFtkaXI9InJ0bCJdIC5IY0tNRVlobUw0dUx5R1wrSzRoeThwZ1w9XD0+ c3BhbiB7DQogICAgICBwYWRkaW5nLWxlZnQ6IDA7DQogICAgICBwYWRkaW5nLXJpZ2h0OiA0 cHg7DQogICAgfQ0KDQogICAgaHRtbFtkaXI9InJ0bCJdIC5VNkNuZm8wUmpYSjhVRXdYaFpW OG1RXD1cPT5zcGFuIHsNCiAgICAgIHBhZGRpbmctbGVmdDogNHB4Ow0KICAgICAgcGFkZGlu Zy1yaWdodDogMTJweDsNCiAgICB9DQoNCiAgICAuTks2WVEwNjBJbnVFSDFXMUxiRko0UVw9 XD0gew0KICAgICAgZGlzcGxheTogdGFibGUtY2VsbDsNCiAgICAgIGJvcmRlci1sZWZ0LXdp ZHRoOiAwICFpbXBvcnRhbnQ7DQogICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOw0KICAg ICAgZGlzcGxheTogZmxleDsNCiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7DQogICAgICBq dXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0icnRsIl0g Lk5LNllRMDYwSW51RUgxVzFMYkZKNFFcPVw9IHsNCiAgICAgIGJvcmRlci1yaWdodC13aWR0 aDogMCAhaW1wb3J0YW50Ow0KICAgIH0NCg0KICAgIC54MDNSdnMzTVE3SWQ5NDhUeWlJa0NR XD1cPSB7DQogICAgICBvdmVyZmxvdzogaGlkZGVuOw0KICAgICAgZGlzcGxheTogaW5saW5l LWJsb2NrOw0KICAgICAgYm9yZGVyLXJhZGl1czogNTAlOw0KICAgICAgdmVydGljYWwtYWxp Z246IG1pZGRsZTsNCiAgICAgIGZvbnQtc2l6ZTogNnB4Ow0KICAgIH0NCg0KICAgIC54MDNS dnMzTVE3SWQ5NDhUeWlJa0NRXD1cPSAubXMtUGVyc29uYSB7DQogICAgICByaWdodDogMnB4 Ow0KICAgICAgdG9wOiAtMnB4Ow0KICAgIH0NCg0KICAgIC54MDNSdnMzTVE3SWQ5NDhUeWlJ a0NRXD1cPSAubXMtUGVyc29uYSAubXMtSW1hZ2UtaW1hZ2Ugew0KICAgICAgb3ZlcmZsb3c6 IGhpZGRlbjsNCiAgICAgIHRvcDogMDsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0icnRsIl0g LngwM1J2czNNUTdJZDk0OFR5aUlrQ1FcPVw9IC5tcy1QZXJzb25hIHsNCiAgICAgIGxlZnQ6 IDJweDsNCiAgICAgIHJpZ2h0OiAwOw0KICAgIH0NCg0KICAgIC5cK2dLRHhDVVJSNWV1d2hW VzJOSzIxZ1w9XD0gew0KICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsNCiAgICAgIGRpc3BsYXk6 IGlubGluZS1ibG9jazsNCiAgICAgIGJvcmRlcjogdGhpbiBzb2xpZDsNCiAgICAgIGJvcmRl ci1yYWRpdXM6IDUwJTsNCiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7DQogICAgICBm b250LXNpemU6IDZweDsNCiAgICB9DQoNCiAgICAudTg1U0loZ0VSTHVxY01VYnQyczY2QVw9 XD0gew0KICAgICAgYm9yZGVyLXJhZGl1czogNTAlOw0KICAgICAgbGluZS1oZWlnaHQ6IDEg IWltcG9ydGFudDsNCiAgICB9DQoNCiAgICAudTg1U0loZ0VSTHVxY01VYnQyczY2QVw9XD06 YmVmb3JlIHsNCiAgICAgIG1hcmdpbi10b3A6IDAuNGVtOw0KICAgIH0NCg0KICAgIC5TUHJk c21DcFpZUzB0Z3Z2ZDBjUmdRXD1cPSB7DQogICAgICB3aWR0aDogMzJweDsNCiAgICAgIGhl aWdodDogMzJweDsNCiAgICAgIGRpc3BsYXk6IGZsZXg7DQogICAgICBhbGlnbi1pdGVtczog Y2VudGVyOw0KICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7DQogICAgICBmb250LXNp emU6IDEzcHg7DQogICAgICBmb250LWZhbWlseTogU2Vnb2VVSS1SZWd1bGFyLWZpbmFsLCBT ZWdvZSBVSSwNCiAgICAgICAgIlNlZ29lIFVJIFdlYiAoV2VzdCBFdXJvcGVhbikiLCBTZWdv ZSwgLWFwcGxlLXN5c3RlbSwNCiAgICAgICAgQmxpbmtNYWNTeXN0ZW1Gb250LCBSb2JvdG8s IEhlbHZldGljYSBOZXVlLCBUYWhvbWEsIEhlbHZldGljYSwgQXJpYWwsDQogICAgICAgIHNh bnMtc2VyaWY7DQogICAgICBib3JkZXI6IDFweCBzb2xpZDsNCiAgICAgIGJveC1zaXppbmc6 IGJvcmRlci1ib3g7DQogICAgICBib3JkZXItcmFkaXVzOiA1MCU7DQogICAgICBsaW5lLWhl aWdodDogMSAhaW1wb3J0YW50Ow0KICAgIH0NCg0KICAgIC5TUHJkc21DcFpZUzB0Z3Z2ZDBj UmdRXD1cPTpiZWZvcmUgew0KICAgICAgbWFyZ2luLXRvcDogMC40ZW07DQogICAgfQ0KDQog ICAgLngwM1J2czNNUTdJZDk0OFR5aUlrQ1FcPVw9LA0KICAgIC51ODVTSWhnRVJMdXFjTVVi dDJzNjZBXD1cPSwNCiAgICAuXCtnS0R4Q1VSUjVldXdoVlcyTksyMWdcPVw9IHsNCiAgICAg IHdpZHRoOiAzMnB4Ow0KICAgICAgaGVpZ2h0OiAzMnB4Ow0KICAgIH0NCg0KICAgIC5pZVJv XC9PcVBZQjdrZmZSRkt4MmM5d1w9XD0gew0KICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsN CiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsNCiAgICAgIG1hcmdpbjog MDsNCiAgICAgIHBhZGRpbmc6IDA7DQogICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7DQogICAg ICBoZWlnaHQ6IDEwMCU7DQogICAgfQ0KDQogICAgLl8yNUNxUlZLd0UzOFg1UkhFeEQ0SXlB XD1cPSB7DQogICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgZmxleDogMSAwIGF1dG87DQog ICAgICBoZWlnaHQ6IDEwMCU7DQogICAgfQ0KDQogICAgLl8xdEpyRWpidjFRa3Z4Y1wvUDdy M3RaZ1w9XD0gew0KICAgICAgZGlzcGxheTogZmxleDsNCiAgICAgIGp1c3RpZnktY29udGVu dDogZmxleC1zdGFydDsNCiAgICB9DQoNCiAgICAuUzNUV2FmUURLRFwrM3VxbTdqbnppdWdc PVw9IHsNCiAgICAgIGRpc3BsYXk6IGZsZXg7DQogICAgICBmbGV4OiAxIDAgYXV0bzsNCiAg ICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOw0KICAgIH0NCg0KICAgIC5fMTZsVXZWVUpa dzY4WmM0dkZvOG9NUVw9XD0gew0KICAgICAgZGlzcGxheTogZmxleDsNCiAgICAgIGp1c3Rp ZnktY29udGVudDogZmxleC1lbmQ7DQogICAgfQ0KDQogICAgLkhWNmxDOUo4T1VGcEtKamZB cjFBc3dcPVw9IHsNCiAgICAgIGRpc3BsYXk6IGZsZXg7DQogICAgICBmbGV4OiAwIDAgYXV0 bzsNCiAgICB9DQoNCiAgICAuQmg0NmIxcmQ4QnJVNHpvbEw5UnpVZ1w9XD0gew0KICAgICAg aGVpZ2h0OiAxMDAlOw0KICAgICAgbGluZS1oZWlnaHQ6IDQ4cHg7DQogICAgICBkaXNwbGF5 OiBmbGV4Ow0KICAgIH0NCg0KICAgIC5oZGtXQ3pjNnNSUXVhbUZWMDdZM3hRXD1cPSB7DQog ICAgICByaWdodDogMjRweDsNCiAgICAgIHRvcDogOHB4Ow0KICAgIH0NCg0KICAgIGh0bWxb ZGlyPSJydGwiXSAuaGRrV0N6YzZzUlF1YW1GVjA3WTN4UVw9XD0gew0KICAgICAgcmlnaHQ6 IDA7DQogICAgICBsZWZ0OiAyNHB4Ow0KICAgIH0NCg0KICAgIEAtbW96LWRvY3VtZW50IHVy bC1wcmVmaXgoKSB7DQogICAgICAuY2xnaUxWS1B6dWdaWm5zMExpUFRxd1w9XD06Zm9jdXMg ew0KICAgICAgICBvdXRsaW5lOiAxcHggZG90dGVkOw0KICAgICAgfQ0KICAgIH0NCg0KICAg ICNPMzY1X05hdkhlYWRlciBhYmJyLA0KICAgICNPMzY1X05hdkhlYWRlciBhZGRyZXNzLA0K ICAgICNPMzY1X05hdkhlYWRlciBhcnRpY2xlLA0KICAgICNPMzY1X05hdkhlYWRlciBhc2lk ZSwNCiAgICAjTzM2NV9OYXZIZWFkZXIgYXVkaW8sDQogICAgI08zNjVfTmF2SGVhZGVyIGIs DQogICAgI08zNjVfTmF2SGVhZGVyIGJsb2NrcXVvdGUsDQogICAgI08zNjVfTmF2SGVhZGVy IGJvZHksDQogICAgI08zNjVfTmF2SGVhZGVyIGJvZHkgOmZvY3VzLA0KICAgICNPMzY1X05h dkhlYWRlciBib2R5IGRpdiwNCiAgICAjTzM2NV9OYXZIZWFkZXIgY2FwdGlvbiwNCiAgICAj TzM2NV9OYXZIZWFkZXIgY2l0ZSwNCiAgICAjTzM2NV9OYXZIZWFkZXIgY29kZSwNCiAgICAj TzM2NV9OYXZIZWFkZXIgZGQsDQogICAgI08zNjVfTmF2SGVhZGVyIGRlbCwNCiAgICAjTzM2 NV9OYXZIZWFkZXIgZGV0YWlscywNCiAgICAjTzM2NV9OYXZIZWFkZXIgZGZuLA0KICAgICNP MzY1X05hdkhlYWRlciBkbCwNCiAgICAjTzM2NV9OYXZIZWFkZXIgZHQsDQogICAgI08zNjVf TmF2SGVhZGVyIGVtLA0KICAgICNPMzY1X05hdkhlYWRlciBmaWVsZHNldCwNCiAgICAjTzM2 NV9OYXZIZWFkZXIgZmlndXJlLA0KICAgICNPMzY1X05hdkhlYWRlciBmb290ZXIsDQogICAg I08zNjVfTmF2SGVhZGVyIGZvcm0sDQogICAgI08zNjVfTmF2SGVhZGVyIGgxLA0KICAgICNP MzY1X05hdkhlYWRlciBoMiwNCiAgICAjTzM2NV9OYXZIZWFkZXIgaDMsDQogICAgI08zNjVf TmF2SGVhZGVyIGg0LA0KICAgICNPMzY1X05hdkhlYWRlciBoNSwNCiAgICAjTzM2NV9OYXZI ZWFkZXIgaDYsDQogICAgI08zNjVfTmF2SGVhZGVyIGhlYWRlciwNCiAgICAjTzM2NV9OYXZI ZWFkZXIgaHRtbCwNCiAgICAjTzM2NV9OYXZIZWFkZXIgaSwNCiAgICAjTzM2NV9OYXZIZWFk ZXIgaWZyYW1lLA0KICAgICNPMzY1X05hdkhlYWRlciBpbWcsDQogICAgI08zNjVfTmF2SGVh ZGVyIGlucywNCiAgICAjTzM2NV9OYXZIZWFkZXIga2JkLA0KICAgICNPMzY1X05hdkhlYWRl ciBsYWJlbCwNCiAgICAjTzM2NV9OYXZIZWFkZXIgbGVnZW5kLA0KICAgICNPMzY1X05hdkhl YWRlciBsaSwNCiAgICAjTzM2NV9OYXZIZWFkZXIgbWFyaywNCiAgICAjTzM2NV9OYXZIZWFk ZXIgbWVudSwNCiAgICAjTzM2NV9OYXZIZWFkZXIgbmF2LA0KICAgICNPMzY1X05hdkhlYWRl ciBvYmplY3QsDQogICAgI08zNjVfTmF2SGVhZGVyIG9sLA0KICAgICNPMzY1X05hdkhlYWRl ciBwLA0KICAgICNPMzY1X05hdkhlYWRlciBwcmUsDQogICAgI08zNjVfTmF2SGVhZGVyIHEs DQogICAgI08zNjVfTmF2SGVhZGVyIHNhbXAsDQogICAgI08zNjVfTmF2SGVhZGVyIHNlY3Rp b24sDQogICAgI08zNjVfTmF2SGVhZGVyIHNtYWxsLA0KICAgICNPMzY1X05hdkhlYWRlciBz dHJvbmcsDQogICAgI08zNjVfTmF2SGVhZGVyIHN1YiwNCiAgICAjTzM2NV9OYXZIZWFkZXIg c3VtbWFyeSwNCiAgICAjTzM2NV9OYXZIZWFkZXIgc3VwLA0KICAgICNPMzY1X05hdkhlYWRl ciB0YWJsZSwNCiAgICAjTzM2NV9OYXZIZWFkZXIgdGJvZHksDQogICAgI08zNjVfTmF2SGVh ZGVyIHRkLA0KICAgICNPMzY1X05hdkhlYWRlciB0Zm9vdCwNCiAgICAjTzM2NV9OYXZIZWFk ZXIgdGgsDQogICAgI08zNjVfTmF2SGVhZGVyIHRoZWFkLA0KICAgICNPMzY1X05hdkhlYWRl ciB0aW1lLA0KICAgICNPMzY1X05hdkhlYWRlciB0ciwNCiAgICAjTzM2NV9OYXZIZWFkZXIg dWwsDQogICAgI08zNjVfTmF2SGVhZGVyIHZhciwNCiAgICAjTzM2NV9OYXZIZWFkZXIgdmlk ZW8sDQogICAgI08zNjVmcGNvbnRhaW5lcmlkIGFiYnIsDQogICAgI08zNjVmcGNvbnRhaW5l cmlkIGFkZHJlc3MsDQogICAgI08zNjVmcGNvbnRhaW5lcmlkIGFydGljbGUsDQogICAgI08z NjVmcGNvbnRhaW5lcmlkIGFzaWRlLA0KICAgICNPMzY1ZnBjb250YWluZXJpZCBhdWRpbywN CiAgICAjTzM2NWZwY29udGFpbmVyaWQgYiwNCiAgICAjTzM2NWZwY29udGFpbmVyaWQgYmxv Y2txdW90ZSwNCiAgICAjTzM2NWZwY29udGFpbmVyaWQgYm9keSwNCiAgICAjTzM2NWZwY29u dGFpbmVyaWQgYm9keSA6Zm9jdXMsDQogICAgI08zNjVmcGNvbnRhaW5lcmlkIGJvZHkgZGl2 LA0KICAgICNPMzY1ZnBjb250YWluZXJpZCBjYXB0aW9uLA0KICAgICNPMzY1ZnBjb250YWlu ZXJpZCBjaXRlLA0KICAgICNPMzY1ZnBjb250YWluZXJpZCBjb2RlLA0KICAgICNPMzY1ZnBj b250YWluZXJpZCBkZCwNCiAgICAjTzM2NWZwY29udGFpbmVyaWQgZGVsLA0KICAgICNPMzY1 ZnBjb250YWluZXJpZCBkZXRhaWxzLA0KICAgICNPMzY1ZnBjb250YWluZXJpZCBkZm4sDQog ICAgI08zNjVmcGNvbnRhaW5lcmlkIGRsLA0KICAgICNPMzY1ZnBjb250YWluZXJpZCBkdCwN CiAgICAjTzM2NWZwY29udGFpbmVyaWQgZW0sDQogICAgI08zNjVmcGNvbnRhaW5lcmlkIGZp ZWxkc2V0LA0KICAgICNPMzY1ZnBjb250YWluZXJpZCBmaWd1cmUsDQogICAgI08zNjVmcGNv bnRhaW5lcmlkIGZvb3RlciwNCiAgICAjTzM2NWZwY29udGFpbmVyaWQgZm9ybSwNCiAgICAj TzM2NWZwY29udGFpbmVyaWQgaDEsDQogICAgI08zNjVmcGNvbnRhaW5lcmlkIGgyLA0KICAg ICNPMzY1ZnBjb250YWluZXJpZCBoMywNCiAgICAjTzM2NWZwY29udGFpbmVyaWQgaDQsDQog ICAgI08zNjVmcGNvbnRhaW5lcmlkIGg1LA0KICAgICNPMzY1ZnBjb250YWluZXJpZCBoNiwN CiAgICAjTzM2NWZwY29udGFpbmVyaWQgaGVhZGVyLA0KICAgICNPMzY1ZnBjb250YWluZXJp ZCBodG1sLA0KICAgICNPMzY1ZnBjb250YWluZXJpZCBpLA0KICAgICNPMzY1ZnBjb250YWlu ZXJpZCBpZnJhbWUsDQogICAgI08zNjVmcGNvbnRhaW5lcmlkIGltZywNCiAgICAjTzM2NWZw Y29udGFpbmVyaWQgaW5zLA0KICAgICNPMzY1ZnBjb250YWluZXJpZCBrYmQsDQogICAgI08z NjVmcGNvbnRhaW5lcmlkIGxhYmVsLA0KICAgICNPMzY1ZnBjb250YWluZXJpZCBsZWdlbmQs DQogICAgI08zNjVmcGNvbnRhaW5lcmlkIGxpLA0KICAgICNPMzY1ZnBjb250YWluZXJpZCBt YXJrLA0KICAgICNPMzY1ZnBjb250YWluZXJpZCBtZW51LA0KICAgICNPMzY1ZnBjb250YWlu ZXJpZCBuYXYsDQogICAgI08zNjVmcGNvbnRhaW5lcmlkIG9iamVjdCwNCiAgICAjTzM2NWZw Y29udGFpbmVyaWQgb2wsDQogICAgI08zNjVmcGNvbnRhaW5lcmlkIHAsDQogICAgI08zNjVm cGNvbnRhaW5lcmlkIHByZSwNCiAgICAjTzM2NWZwY29udGFpbmVyaWQgcSwNCiAgICAjTzM2 NWZwY29udGFpbmVyaWQgc2FtcCwNCiAgICAjTzM2NWZwY29udGFpbmVyaWQgc2VjdGlvbiwN CiAgICAjTzM2NWZwY29udGFpbmVyaWQgc21hbGwsDQogICAgI08zNjVmcGNvbnRhaW5lcmlk IHN0cm9uZywNCiAgICAjTzM2NWZwY29udGFpbmVyaWQgc3ViLA0KICAgICNPMzY1ZnBjb250 YWluZXJpZCBzdW1tYXJ5LA0KICAgICNPMzY1ZnBjb250YWluZXJpZCBzdXAsDQogICAgI08z NjVmcGNvbnRhaW5lcmlkIHRhYmxlLA0KICAgICNPMzY1ZnBjb250YWluZXJpZCB0Ym9keSwN CiAgICAjTzM2NWZwY29udGFpbmVyaWQgdGQsDQogICAgI08zNjVmcGNvbnRhaW5lcmlkIHRm b290LA0KICAgICNPMzY1ZnBjb250YWluZXJpZCB0aCwNCiAgICAjTzM2NWZwY29udGFpbmVy aWQgdGhlYWQsDQogICAgI08zNjVmcGNvbnRhaW5lcmlkIHRpbWUsDQogICAgI08zNjVmcGNv bnRhaW5lcmlkIHRyLA0KICAgICNPMzY1ZnBjb250YWluZXJpZCB1bCwNCiAgICAjTzM2NWZw Y29udGFpbmVyaWQgdmFyLA0KICAgICNPMzY1ZnBjb250YWluZXJpZCB2aWRlbywNCiAgICAu bzM2NXNoZWxsLXBvcHVwIGFiYnIsDQogICAgLm8zNjVzaGVsbC1wb3B1cCBhZGRyZXNzLA0K ICAgIC5vMzY1c2hlbGwtcG9wdXAgYXJ0aWNsZSwNCiAgICAubzM2NXNoZWxsLXBvcHVwIGFz aWRlLA0KICAgIC5vMzY1c2hlbGwtcG9wdXAgYXVkaW8sDQogICAgLm8zNjVzaGVsbC1wb3B1 cCBiLA0KICAgIC5vMzY1c2hlbGwtcG9wdXAgYmxvY2txdW90ZSwNCiAgICAubzM2NXNoZWxs LXBvcHVwIGJvZHksDQogICAgLm8zNjVzaGVsbC1wb3B1cCBib2R5IDpmb2N1cywNCiAgICAu bzM2NXNoZWxsLXBvcHVwIGJvZHkgZGl2LA0KICAgIC5vMzY1c2hlbGwtcG9wdXAgY2FwdGlv biwNCiAgICAubzM2NXNoZWxsLXBvcHVwIGNpdGUsDQogICAgLm8zNjVzaGVsbC1wb3B1cCBj b2RlLA0KICAgIC5vMzY1c2hlbGwtcG9wdXAgZGQsDQogICAgLm8zNjVzaGVsbC1wb3B1cCBk ZWwsDQogICAgLm8zNjVzaGVsbC1wb3B1cCBkZXRhaWxzLA0KICAgIC5vMzY1c2hlbGwtcG9w dXAgZGZuLA0KICAgIC5vMzY1c2hlbGwtcG9wdXAgZGwsDQogICAgLm8zNjVzaGVsbC1wb3B1 cCBkdCwNCiAgICAubzM2NXNoZWxsLXBvcHVwIGVtLA0KICAgIC5vMzY1c2hlbGwtcG9wdXAg ZmllbGRzZXQsDQogICAgLm8zNjVzaGVsbC1wb3B1cCBmaWd1cmUsDQogICAgLm8zNjVzaGVs bC1wb3B1cCBmb290ZXIsDQogICAgLm8zNjVzaGVsbC1wb3B1cCBmb3JtLA0KICAgIC5vMzY1 c2hlbGwtcG9wdXAgaDEsDQogICAgLm8zNjVzaGVsbC1wb3B1cCBoMiwNCiAgICAubzM2NXNo ZWxsLXBvcHVwIGgzLA0KICAgIC5vMzY1c2hlbGwtcG9wdXAgaDQsDQogICAgLm8zNjVzaGVs bC1wb3B1cCBoNSwNCiAgICAubzM2NXNoZWxsLXBvcHVwIGg2LA0KICAgIC5vMzY1c2hlbGwt cG9wdXAgaGVhZGVyLA0KICAgIC5vMzY1c2hlbGwtcG9wdXAgaHRtbCwNCiAgICAubzM2NXNo ZWxsLXBvcHVwIGksDQogICAgLm8zNjVzaGVsbC1wb3B1cCBpZnJhbWUsDQogICAgLm8zNjVz aGVsbC1wb3B1cCBpbWcsDQogICAgLm8zNjVzaGVsbC1wb3B1cCBpbnMsDQogICAgLm8zNjVz aGVsbC1wb3B1cCBrYmQsDQogICAgLm8zNjVzaGVsbC1wb3B1cCBsYWJlbCwNCiAgICAubzM2 NXNoZWxsLXBvcHVwIGxlZ2VuZCwNCiAgICAubzM2NXNoZWxsLXBvcHVwIGxpLA0KICAgIC5v MzY1c2hlbGwtcG9wdXAgbWFyaywNCiAgICAubzM2NXNoZWxsLXBvcHVwIG1lbnUsDQogICAg Lm8zNjVzaGVsbC1wb3B1cCBuYXYsDQogICAgLm8zNjVzaGVsbC1wb3B1cCBvYmplY3QsDQog ICAgLm8zNjVzaGVsbC1wb3B1cCBvbCwNCiAgICAubzM2NXNoZWxsLXBvcHVwIHAsDQogICAg Lm8zNjVzaGVsbC1wb3B1cCBwcmUsDQogICAgLm8zNjVzaGVsbC1wb3B1cCBxLA0KICAgIC5v MzY1c2hlbGwtcG9wdXAgc2FtcCwNCiAgICAubzM2NXNoZWxsLXBvcHVwIHNlY3Rpb24sDQog ICAgLm8zNjVzaGVsbC1wb3B1cCBzbWFsbCwNCiAgICAubzM2NXNoZWxsLXBvcHVwIHN0cm9u ZywNCiAgICAubzM2NXNoZWxsLXBvcHVwIHN1YiwNCiAgICAubzM2NXNoZWxsLXBvcHVwIHN1 bW1hcnksDQogICAgLm8zNjVzaGVsbC1wb3B1cCBzdXAsDQogICAgLm8zNjVzaGVsbC1wb3B1 cCB0YWJsZSwNCiAgICAubzM2NXNoZWxsLXBvcHVwIHRib2R5LA0KICAgIC5vMzY1c2hlbGwt cG9wdXAgdGQsDQogICAgLm8zNjVzaGVsbC1wb3B1cCB0Zm9vdCwNCiAgICAubzM2NXNoZWxs LXBvcHVwIHRoLA0KICAgIC5vMzY1c2hlbGwtcG9wdXAgdGhlYWQsDQogICAgLm8zNjVzaGVs bC1wb3B1cCB0aW1lLA0KICAgIC5vMzY1c2hlbGwtcG9wdXAgdHIsDQogICAgLm8zNjVzaGVs bC1wb3B1cCB1bCwNCiAgICAubzM2NXNoZWxsLXBvcHVwIHZhciwNCiAgICAubzM2NXNoZWxs LXBvcHVwIHZpZGVvIHsNCiAgICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94Ow0KICAgIH0N CiAgPC9zdHlsZT4NCiAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCiAgICBAZm9udC1mYWNl IHsNCiAgICAgIGZvbnQtZmFtaWx5OiBTaGVsbEZhYnJpY01ETDJJY29uc0xpdGU7DQogICAg ICBzcmM6IHVybChkYXRhOmZvbnQvd29mZjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxkMDlHUmdB QkFBQUFBQW1vQUE0QUFBQUFFeHdBQTVSOEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQlBV eTh5QUFBQlJBQUFBRWdBQUFCZ01XZDdaR050WVhBQUFBR01BQUFBUFFBQUFWTG5rdDNOWTNa MElBQUFBY3dBQUFBZ0FBQUFLZ25aQ2E5bWNHZHRBQUFCN0FBQUFQQUFBQUZaL0o3bWptZGhj M0FBQUFMY0FBQUFEQUFBQUF3QUNBQWJaMng1WmdBQUF1Z0FBQUdoQUFBRFpNa2FjUzlvWldG a0FBQUVqQUFBQURJQUFBQTJBUWp5YzJob1pXRUFBQVRBQUFBQUZRQUFBQ1FRQVFnRGFHMTBl QUFBQk5nQUFBQU1BQUFBREEwcUFTWnNiMk5oQUFBRTVBQUFBQW9BQUFBS0FpUUEyRzFoZUhB QUFBVHdBQUFBSFFBQUFDQUFJZ0lPYm1GdFpRQUFCUkFBQUFQNEFBQUorcEdiOFZOd2IzTjBB QUFKQ0FBQUFCUUFBQUFnLzFFQWUzQnlaWEFBQUFrY0FBQUFpUUFBQU5ONHZmSU9lSnhqWUdI M1lwekF3TXJBd0RxTDFaaUJnVkVhUWpOZlpFaGpFdUpnWmVWaVpHSUVBd1lnRUdCQUFOOWdC UVVHaCtlS1h4NXdnUGtRa2dHc2pnWENVMkJnQUFET0lRaHllSnhqWUdCZ1pvQmdHUVpHQmhE d0FmSVl3WHdXQmdNZ3pRR0VUQXdNenhXZlYzOTU4UDgvZ2lYeFVLS05XeG1xQ3d3WTJSaEdQ QUFBOUZRUEd3QUFBSGljWTlCaUNHVW9ZR2hnV01YSXdOakE3TUI0Z01FQml3Z1FBQUNxSEFl VmVKeGRqNzlPdzBBTXhuTWt0SVFuUURvaG5YVXFRNVdJbmVtR1N5VFVKU1VNNTZXQTFFcWs3 NENVaGNVRHorSnVHZk5pQ013Ui9pNjJ2OC82Zkw5enAvbkpmSGFjcFVjcUtWYWNOK0dnMUFz TzZ1MlovZmtoVCs4MlpXRk0xWGxXOTJYQmFnbWlhMDRYOVUyd2FNalE5WlpNYlI0ZnRwd3RZ cGZGanZEU2NOS0dUdXB0QUhhb3Y4Y2Q0bFU4a3NVamhCTGZUL0Y5akV2NnRTeFdodE9MSnF3 RDkxNno4NmdCVE1WakUzajBHaEIveUtRL2RXY1Q0Mnc1WmR2QVRuT0NSSi9LQXZkRW1vVDdT NDkvOWFDUy80YjdiY2kvcTBIMVRkejBGdlNIWWNHQ3NLR1haOXRRQ1JwZytRNkUvR1RHQUFF QUFnQUlBQXIvL3dBUGVKeGpZR0pZeHNEQTBzSmF4c0RNd003QVlDNm9LS2lxS0tpNGpQbmVu MjFNMi81Nk1iQ1cvZXFhd3VMSEFBUk1EQTBNRE93TkhBd00yZ3oyREF5TWNreENvc29tVEdv cXlrcDhMRUNXa0IyanVSNnpxWWtkazdHUkhKT29DQjhUbzRnY2tHM0haR3FpeHdSVXhNUnEx SEY3WmxCRDZibC96NWRrSDF2ZG5XeldFRExyZHJ0ZlRiaCt5cnFYcmEwdjE2WG9oMWYvYVF6 czNwV1Z0YXM3RUVZeisrcXZ2UGZ2Ui84U1JzbHpwV2JKM2F1UFpVOWdaTCt6d2xDcll2THlD SkEya1BhSVpaTXFtVGlSOVFGcHNMdUJnQU1JR1pRWnpJSHVOcEpqQVRxT1JWbEpUWjJSRFVp YW1wZ3o2akVDM2MwaWpPUldVYURiV1IwU3Q4eHBqREV5aW1tY3N5V3g5bW5Dbi9mQ1VsSnF3 c3dDL2lFUXNmSkxjNktqNTF3cWg5SWNEQkJoaUxZUS96OGZoTldrcElTWkJST2Uxa0xFZmpN Z0tRZlRESnhBNXpXQXcxV1lRWjNCbXNHZklabWhuS0diWVQ3RFpxQVFOQ2lWbGZTWVFFR3Jp TVpuaE5Md0lDZWdIa00vaWVvUGFMaVp5TW1adUdsQWFXWU5RZ0kvYjVDczVSZEJGUmdDSEF4 SUhLejB2d2JDSW9Ub3Z3UnRRYWNaR0FDclhNL3BBQUFBZUp4allHUmdZR0NlVW5NdnpVTW5u dC9tS3dNM0J3TUk3UDk3c0FGRTMzemxYd21pT1JqQTRwd01UQ0FLQUZCTkNpSUFBSGljWTJC a1lPQmdBQUU0eWNpQUNwZ0FBc29BSFFBQUFBVXFBS1lJQUFDQUFBQUFBQUFBQUJZQWNnRENB YklBQUhpY1kyQmtZR0JnWWRqQ3dNa0FBb3hna2d1RUdTTkJUQUFWbGdFeUFBQUFlSnkxVk0y S0hEY1FydGtaZXpjNFhrSWc0S01PSnF5WG9jZGVZK3pZcDhVL0orOWxiUlo4Q1dpNk5kM0NQ UzBocWQxMHlDRkhIL0lZdVJqeUZDR0JISFAyRS9pY1U0NnBLcWxuZGowVHN3bGttbEYvS3RY dlY2VUdnQnVqcjJFRThYY1gveEdQNEV2Y1Jid0R1L0EwNFRIS255YzhRZnh0d2xmZ2M3QUpY NFV2NFB1RWQrRWIrREhoUGZnS2ZrdjRHaHpDKzRTdmozNGRUUkxlaDhPZDN6SEthUElaN29x ZFB4TWV3YzN4V2NJN3NELytMdUV4eXQ4bVBFSDhjOEpYNE1iNGo0U3ZnaGgvU0hnWDNHUXY0 VDA0bkF4K3JzSEx5VThKWHgrL25meVY4RDY4M1B2aGwzZmk2UGFkKytKRTU4NTRzd2ppc1hI V09CbTBhVEp4WE5maVZKZFY4T0pVZWVYZXFDSjdKdWRPNStMa3lmTWpjZXk5Q3Y1VWxXMHQz ZWJCcHVSTU9ZK2V4ZDNzM29ONFNvZng3SVVxalJMYUN5bUNrNFZhU3ZkYW1JVUlsVHFYWCts TWEwbWNtNldWalZZKzI1cDhGWUo5T0p0MVhaY3RoL01NYldhaHQ2WjAwbGI5YkdHYTRHZHJj OTlhVzJ0VkNEckl4Q3ZUaXFYc1Jlc1ZKb0dKa1ZnRUkzS25aRkJUVVdodmE5bFBoV3dLWVoz RzB4eFZGTDZsRjFhNXBRNEIzYzE3THFMV3VXcklGeDU0WWR3QUZoUmh1bG1xZGFabzh6QVZ4 RHphVHNsbUNLQWIwVlU2cjg1bDFtRlEzZVIxVzJDYlZ0bWJwdTdGZ2I0bDFIS091YXpWMGNP bnNtWDFRamVsY01vSDdCU3h1ZzVBNWl0Zmo1aUJBNDFSZ2xwU0M1ekdxSVhwbXRySTRpSjdN bEtsSEpWak1CU3ViYkJ0RUlXaU1rbW5Vclc5eUNnT1k5TW5kV29JT2tSK0tqM1htSE4yK1c3 RE94QndCTGZoRHR4SGRBSWFjbkJnd09OL0FRRmxqeEU1dlBPMFNwUm9SQTFrZUhJTU5UNENU bEZXUW9Wbm5uY0szd3ExMytCYW9PWXp0SnZqbm54VGpDZjRaVGxpZTgrYVpFZFdKYlRvVDZM bVpTd3VvM1BHZWZpVXM4QXZYUWIzNE1FRjI4SHl2TjBMenNiZ0tsQ0hxcEw0RDh4QWdkSWxa L2thWmNRU25WU3N1NDIva3ZjdE1qaG81L2hlNGw1aVRwclp5djRGODhSelFPbERtT0hUOFpP aHY0L3RzeFJuaHJobkx5WDdzZWloUittQ3ZWRzFzNjNSUGVkc3NTT2EreWhXRnRUN1YxeVRZ Q1o2ZkxmTVhXUWlNalpvazh4dzFRNDFxQTRGVTl3WHJHZTU0ejFMaUErS1k3a3owVFpQWGxU YVMvWnR1YTlVYytBenNwcHpIa01uYXE2SXJJYThvb1huTHJnTnlXSlZ3L1JTWGJXOEw5QW14 LzJVK1lvekgrTk9WM0UrcmtEekpIYk1VNDdyZHM2NlZDbHA1MWhOeTNOWGJPV2ViR3BHQjZo L0M5ODBvZlBFeXpidk1ZZi95dTNhZThHZVNwUTVudU9RN3RRd3E5c3FHS0p2NXZYbzNBeFFK YkdXd1BHR1cwRCtZNjBGU2pxdTNQQ3QvTlRzeVF0VHBiZ3ZKcTJ4cW9oYnZsa3RXMUsyUXpj SFA2Ulo4MDMrNXhtTlg4WW1kV2J0ZmJnaE9yRk04MFA1enBucDJOdi80VzcvRFlhN09KcDRu R05nWmdDRC8zNE01UXlZZ0FVQUtTNEJ6SGljMjhDZ3piQ0prWk5KbTNFVEY0amN6dFdhRzJx cnlzQ2h2WjA3TmRoQlR3YkU0b253c05DUUJMRjRuYzIxNVlWQkxENGRGUmtSSGhDTFgwNUNt SThEeEJMZzQrRmtad0d4Qk1FQXhCTGFNS0Vnd0FESVl0ak9DRGVhQ1c0ME05eG9GcmpSckhD ajJlUWtvVWF6dzQzbWdCdk5DVGQ2a3pBanUvWUdCZ1hYMmt3SkZ3REVBU2dhQUFBQSkgZm9y bWF0KCJ3b2ZmIik7DQogICAgICBmb250LWRpc3BsYXk6IGF1dG87DQogICAgfQ0KDQogICAg Lm8zNjVjcy1iYXNlIFtjbGFzcyo9IiBtcy1JY29uLS0iXSwNCiAgICAubzM2NWNzLWJhc2Ug W2NsYXNzKj0iIG1zLUljb24tLSJdOmJlZm9yZSwNCiAgICAubzM2NWNzLWJhc2UgW2NsYXNz Xj0ibXMtSWNvbi0tIl0sDQogICAgLm8zNjVjcy1iYXNlIFtjbGFzc149Im1zLUljb24tLSJd OmJlZm9yZSB7DQogICAgICBmb250LWZhbWlseTogU2hlbGxGYWJyaWNNREwySWNvbnNMaXRl LCBTaGVsbEZhYnJpY01ETDJJY29uczsNCiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsN CiAgICAgIGxpbmUtaGVpZ2h0OiAxOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSBbY2xh c3MqPSIgbXMtSWNvbi0tIl06YmVmb3JlLA0KICAgIC5vMzY1Y3MtYmFzZSBbY2xhc3NePSJt cy1JY29uLS0iXTpiZWZvcmUgew0KICAgICAgZm9udC1zdHlsZTogbm9ybWFsOw0KICAgICAg Zm9udC13ZWlnaHQ6IDQwMDsNCiAgICAgIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDsNCiAg ICAgIHRleHQtYWxpZ246IGNlbnRlcjsNCiAgICAgIGZvbnQtdmFyaWFudDogbm9ybWFsOw0K ICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7DQogICAgICB3aWR0aDogYXV0bzsNCiAgICAg IG1hcmdpbi1sZWZ0OiAwOw0KICAgICAgbWFyZ2luLXJpZ2h0OiAwOw0KICAgIH0NCg0KICAg IC5vMzY1Y3MtYmFzZSAubXMtaWNvbi1mb250LWNpcmNsZTpiZWZvcmUgew0KICAgICAgYm9y ZGVyLXN0eWxlOiBzb2xpZDsNCiAgICAgIGJvcmRlci1yYWRpdXM6IDFlbTsNCiAgICAgIGxp bmUtaGVpZ2h0OiAxLjE1Ow0KICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsNCiAgICAg IC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDsNCiAgICAgIHBhZGRpbmc6IDAuMWVtOw0K ICAgIH0NCg0KICAgIEBtZWRpYSBzY3JlZW4gYW5kICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4 ZWwtcmF0aW86IDApIHsNCiAgICAgIC5vMzY1Y3MtYmFzZSAubXMtaWNvbi1mb250LWNpcmNs ZTpiZWZvcmUgew0KICAgICAgICBsaW5lLWhlaWdodDogMTsNCiAgICAgIH0NCiAgICB9DQoN CiAgICAubzM2NWNzLWJhc2UgLm1zLWljb24tZm9udC1zaXplLTggew0KICAgICAgZm9udC1z aXplOiA4ICFpbXBvcnRhbnQ7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5tcy1pY29u LWZvbnQtc2l6ZS0xMSB7DQogICAgICBmb250LXNpemU6IDExICFpbXBvcnRhbnQ7DQogICAg fQ0KDQogICAgLm8zNjVjcy1iYXNlIC5tcy1pY29uLWZvbnQtc2l6ZS0xMiB7DQogICAgICBm b250LXNpemU6IDEyICFpbXBvcnRhbnQ7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5t cy1pY29uLWZvbnQtc2l6ZS0xNCB7DQogICAgICBmb250LXNpemU6IDE0ICFpbXBvcnRhbnQ7 DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5tcy1pY29uLWZvbnQtc2l6ZS0xOCB7DQog ICAgICBmb250LXNpemU6IDE4ICFpbXBvcnRhbnQ7DQogICAgfQ0KDQogICAgLm8zNjVjcy1i YXNlIC5tcy1pY29uLWZvbnQtc2l6ZS0yMCB7DQogICAgICBmb250LXNpemU6IDIwICFpbXBv cnRhbnQ7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5tcy1pY29uLWZvbnQtc2l6ZS0y MiB7DQogICAgICBmb250LXNpemU6IDIyICFpbXBvcnRhbnQ7DQogICAgfQ0KDQogICAgLm8z NjVjcy1iYXNlIC5tcy1pY29uLWZvbnQtc2l6ZS0yNSB7DQogICAgICBmb250LXNpemU6IDI1 ICFpbXBvcnRhbnQ7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5tcy1pY29uLWZvbnQt c2l6ZS0yNiB7DQogICAgICBmb250LXNpemU6IDI2ICFpbXBvcnRhbnQ7DQogICAgfQ0KDQog ICAgLm8zNjVjcy1iYXNlIC5tcy1pY29uLWZvbnQtc2l6ZS0zNSB7DQogICAgICBmb250LXNp emU6IDM1ICFpbXBvcnRhbnQ7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIFtkYXRhLWlj b25dOmJlZm9yZSB7DQogICAgICBjb250ZW50OiBhdHRyKGRhdGEtaWNvbik7DQogICAgfQ0K DQogICAgLm8zNjVjcy1iYXNlIC5tcy1JY29uLS1XYWZmbGVPZmZpY2UzNjU6YmVmb3JlIHsN CiAgICAgIGNvbnRlbnQ6ICI/IjsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm1zLUlj b24tLVNlYXJjaDpiZWZvcmUgew0KICAgICAgY29udGVudDogIj8iOw0KICAgIH0NCg0KICAg IC5vMzY1Y3MtYmFzZSAubXMtSWNvbi0tQ29udGFjdDpiZWZvcmUgew0KICAgICAgY29udGVu dDogIj8iOw0KICAgIH0NCiAgPC9zdHlsZT4NCiAgPHNjcmlwdCBjaGFyc2V0PSJ1dGYtOCIN CiAgICBzcmM9Imh0dHBzOi8vcmVzLTEuY2RuLm9mZmljZS5uZXQvZmlsZXMvb2RzcC13ZWIt cHJvZF8yMDIzLTEwLTIwLjAwNS9vZGNsaWdodHNwZWVkd2VicGFjay5tYW5pZmVzdC80MDku anMiDQogICAgY3Jvc3NvcmlnaW49ImFub255bW91cyI+PC9zY3JpcHQ+DQogIDxzdHlsZSBk YXRhLWxvYWQtdGhlbWVkLXN0eWxlcz0idHJ1ZSI+DQogICAgQGtleWZyYW1lcyBjb21tYW5k QmFyQm94U2hhZG93QW5pbWF0aW9uIHsNCiAgICAgIDAlIHsNCiAgICAgICAgYm94LXNoYWRv dzogbm9uZTsNCiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7DQogICAg ICB9DQoNCiAgICAgIDEwMCUgew0KICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZm Ow0KICAgICAgICBib3gtc2hhZG93OiAwIDMuMnB4IDcuMnB4IDAgcmdiYSgwLCAwLCAwLCAw LjEzMiksDQogICAgICAgICAgMCAwLjZweCAxLjhweCAwIHJnYmEoMCwgMCwgMCwgMC4xMDgp Ow0KICAgICAgfQ0KICAgIH0NCg0KICAgIEBrZXlmcmFtZXMgY29tbWFuZEJhckRpdmlkZXJB bmltYXRpb24gew0KICAgICAgMCUgew0KICAgICAgICBvcGFjaXR5OiAxOw0KICAgICAgfQ0K DQogICAgICAxMDAlIHsNCiAgICAgICAgb3BhY2l0eTogMDsNCiAgICAgIH0NCiAgICB9DQoN CiAgICAub2QtVG9wQmFyLWNvbW1hbmRCYXIgLm1zLUNvbW1hbmRCYXIgYnV0dG9uLmlzLXBp dm90IHsNCiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgICAgIGJvcmRlci1ib3R0b206 IDJweCBzb2xpZCB0cmFuc3BhcmVudDsNCiAgICB9DQoNCiAgICAub2QtVG9wQmFyLWNvbW1h bmRCYXIgLm1zLUNvbW1hbmRCYXIgYnV0dG9uLmlzLXBpdm90IC5tcy1CdXR0b24tbGFiZWw6 YWZ0ZXIgew0KICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMXMgZWFzZS1pbi1vdXQ7DQogICAg fQ0KDQogICAgLm9kLVRvcEJhci1jb21tYW5kQmFyIC5tcy1Db21tYW5kQmFyIGJ1dHRvbi5p cy1waXZvdDpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBmMGYwOw0KICAg ICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHRyYW5zcGFyZW50Ow0KICAgIH0NCg0KICAg IC5vZC1Ub3BCYXItY29tbWFuZEJhciAubXMtQ29tbWFuZEJhciBidXR0b24uaXMtcGl2b3Q6 YWN0aXZlIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlYmViZWI7DQogICAgICBib3Jk ZXItYm90dG9tOiAycHggc29saWQgIzAwNzhkNDsNCiAgICB9DQoNCiAgICAub2QtVG9wQmFy LWNvbW1hbmRCYXIgLm1zLUNvbW1hbmRCYXIgYnV0dG9uLmlzLXBpdm90LmlzLWN1cnJlbnQt dmlldywNCiAgICAub2QtVG9wQmFyLWNvbW1hbmRCYXIgLm1zLUNvbW1hbmRCYXIgYnV0dG9u LmlzLXBpdm90LmlzLXRvZ2dsZWQgew0KICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlk IHRyYW5zcGFyZW50Ow0KICAgIH0NCg0KICAgIC5vZC1Ub3BCYXItY29tbWFuZEJhciAubXMt Q29tbWFuZEJhciBidXR0b24uaXMtcGl2b3QuaXMtY3VycmVudC12aWV3OmhvdmVyLA0KICAg IC5vZC1Ub3BCYXItY29tbWFuZEJhciAubXMtQ29tbWFuZEJhciBidXR0b24uaXMtcGl2b3Qu aXMtdG9nZ2xlZDpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBmMGYwOw0K ICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHRyYW5zcGFyZW50Ow0KICAgIH0NCg0K ICAgIC5vZC1Ub3BCYXItY29tbWFuZEJhciAubXMtQ29tbWFuZEJhciBidXR0b24uaXMtcGl2 b3QuaXMtY3VycmVudC12aWV3OmhvdmVyIC5tcy1CdXR0b24tbGFiZWw6YWZ0ZXIsDQogICAg Lm9kLVRvcEJhci1jb21tYW5kQmFyIC5tcy1Db21tYW5kQmFyIGJ1dHRvbi5pcy1waXZvdC5p cy10b2dnbGVkOmhvdmVyIC5tcy1CdXR0b24tbGFiZWw6YWZ0ZXIgew0KICAgICAgd2lkdGg6 IDEwMCU7DQogICAgICBsZWZ0OiAwOw0KICAgIH0NCg0KICAgIC5vZC1Ub3BCYXItY29tbWFu ZEJhciAubXMtQ29tbWFuZEJhciBidXR0b24uaXMtcGl2b3QuaXMtY3VycmVudC12aWV3IC5t cy1CdXR0b24tbGFiZWwsDQogICAgLm9kLVRvcEJhci1jb21tYW5kQmFyIC5tcy1Db21tYW5k QmFyIGJ1dHRvbi5pcy1waXZvdC5pcy10b2dnbGVkIC5tcy1CdXR0b24tbGFiZWwgew0KICAg ICAgZm9udC13ZWlnaHQ6IDYwMDsNCiAgICB9DQoNCiAgICAub2QtVG9wQmFyLWNvbW1hbmRC YXIgLm1zLUNvbW1hbmRCYXIgYnV0dG9uLmlzLXBpdm90LmlzLWN1cnJlbnQtdmlldyAubXMt QnV0dG9uLWxhYmVsOmFmdGVyLA0KICAgIC5vZC1Ub3BCYXItY29tbWFuZEJhciAubXMtQ29t bWFuZEJhciBidXR0b24uaXMtcGl2b3QuaXMtdG9nZ2xlZCAubXMtQnV0dG9uLWxhYmVsOmFm dGVyIHsNCiAgICAgIGNvbnRlbnQ6ICIiOw0KICAgICAgZGlzcGxheTogYmxvY2s7DQogICAg ICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgICBsZWZ0OiA4cHg7DQogICAgICBib3JkZXIt Ym90dG9tOiAycHggc29saWQgIzAwNzhkNDsNCiAgICAgIGJvdHRvbTogLTJweDsNCiAgICAg IHdpZHRoOiBjYWxjKDEwMCUgLSAoOHB4ICsgOHB4KSk7DQogICAgfQ0KDQogICAgLmlzRmx1 ZW50Vk5leHQgLm9kLVRvcEJhci1jb21tYW5kQmFyIC5tcy1Db21tYW5kQmFyIGJ1dHRvbi5p cy1waXZvdC5pcy1jdXJyZW50LXZpZXcgLm1zLUJ1dHRvbi1mbGV4Q29udGFpbmVyLA0KICAg IC5pc0ZsdWVudFZOZXh0IC5vZC1Ub3BCYXItY29tbWFuZEJhciAubXMtQ29tbWFuZEJhciBi dXR0b24uaXMtcGl2b3QuaXMtdG9nZ2xlZCAubXMtQnV0dG9uLWZsZXhDb250YWluZXIgew0K ICAgICAgaGVpZ2h0OiAxMDAlOw0KICAgIH0NCg0KICAgIC5pc0ZsdWVudFZOZXh0IC5vZC1U b3BCYXItY29tbWFuZEJhciAubXMtQ29tbWFuZEJhciBidXR0b24uaXMtcGl2b3QuaXMtY3Vy cmVudC12aWV3OmhvdmVyIC5tcy1CdXR0b24tZmxleENvbnRhaW5lciwNCiAgICAuaXNGbHVl bnRWTmV4dCAub2QtVG9wQmFyLWNvbW1hbmRCYXIgLm1zLUNvbW1hbmRCYXIgYnV0dG9uLmlz LXBpdm90LmlzLXRvZ2dsZWQ6aG92ZXIgLm1zLUJ1dHRvbi1mbGV4Q29udGFpbmVyIHsNCiAg ICAgIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7DQogICAgfQ0KDQogICAgLmlzRmx1ZW50 Vk5leHQgLm9kLVRvcEJhci1jb21tYW5kQmFyIC5tcy1Db21tYW5kQmFyIGJ1dHRvbi5pcy1w aXZvdC5pcy1jdXJyZW50LXZpZXc6YWN0aXZlIC5tcy1CdXR0b24tZmxleENvbnRhaW5lciwN CiAgICAuaXNGbHVlbnRWTmV4dCAub2QtVG9wQmFyLWNvbW1hbmRCYXIgLm1zLUNvbW1hbmRC YXIgYnV0dG9uLmlzLXBpdm90LmlzLXRvZ2dsZWQ6YWN0aXZlIC5tcy1CdXR0b24tZmxleENv bnRhaW5lciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0Ow0KICAgIH0NCg0K ICAgIC5vZC1Ub3BCYXItY29tbWFuZEJhciAubXMtQ29tbWFuZEJhciBidXR0b24uaXMtcGl2 b3QuaXMtY3VycmVudC12aWV3LA0KICAgIC5vZC1Ub3BCYXItY29tbWFuZEJhciAubXMtQ29t bWFuZEJhciBidXR0b24uaXMtcGl2b3QuaXMtdG9nZ2xlZCB7DQogICAgICBmb250LXdlaWdo dDogNjAwOw0KICAgIH0NCg0KICAgIFtkaXI9Imx0ciJdIC5vZC1Ub3BCYXItY29tbWFuZEJh ciAubXMtQ29tbWFuZEJhciBidXR0b24uaXMtcGl2b3QuaXMtbGFzdC1waXZvdCB7DQogICAg ICBtYXJnaW4tcmlnaHQ6IDI0cHg7DQogICAgfQ0KDQogICAgW2Rpcj0icnRsIl0gLm9kLVRv cEJhci1jb21tYW5kQmFyIC5tcy1Db21tYW5kQmFyIGJ1dHRvbi5pcy1waXZvdC5pcy1sYXN0 LXBpdm90IHsNCiAgICAgIG1hcmdpbi1sZWZ0OiAyNHB4Ow0KICAgIH0NCg0KICAgIC5pc0Zs dWVudFZOZXh0IC5vZC1Ub3BCYXItY29tbWFuZEJhciAubXMtQ29tbWFuZEJhciBidXR0b24u aXMtcGl2b3Q6YWN0aXZlIHsNCiAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7 DQogICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDsNCiAgICB9DQoNCiAgICAu b2QtVG9wQmFyLWNvbW1hbmRCYXIgLm1zLUNvbW1hbmRCYXIgYnV0dG9uLmlzLXRvZ2dsZWQg ew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ViZWJlYjsNCiAgICAgIGNvbG9yOiAjMDAw MDAwOw0KICAgIH0NCg0KICAgIC5vZC1Ub3BCYXItY29tbWFuZEJhciAubXMtQ29tbWFuZEJh ciBidXR0b24uaXMtdG9nZ2xlZDpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAj ZTBlMGUwOw0KICAgIH0NCg0KICAgIC5pc0ZsdWVudFZOZXh0IC5vZC1Ub3BCYXItY29tbWFu ZEJhciAubXMtQ29tbWFuZEJhciBidXR0b24uaXMtdG9nZ2xlZCB7DQogICAgICBiYWNrZ3Jv dW5kLWNvbG9yOiB0cmFuc3BhcmVudDsNCiAgICAgIGNvbG9yOiAjMDA3OGQ0Ow0KICAgIH0N Cg0KICAgIC5pc0ZsdWVudFZOZXh0IC5vZC1Ub3BCYXItY29tbWFuZEJhciAubXMtQ29tbWFu ZEJhciBidXR0b24uaXMtdG9nZ2xlZCAubXMtQnV0dG9uLWZsZXhDb250YWluZXIgew0KICAg ICAgYmFja2dyb3VuZC1jb2xvcjogI2ViZWJlYjsNCiAgICB9DQoNCiAgICAuaXNGbHVlbnRW TmV4dCAub2QtVG9wQmFyLWNvbW1hbmRCYXIgLm1zLUNvbW1hbmRCYXIgYnV0dG9uLmlzLXRv Z2dsZWQ6aG92ZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7DQog ICAgfQ0KDQogICAgLmlzRmx1ZW50Vk5leHQgLm9kLVRvcEJhci1jb21tYW5kQmFyIC5tcy1D b21tYW5kQmFyIGJ1dHRvbi5pcy10b2dnbGVkOmhvdmVyIC5tcy1CdXR0b24tZmxleENvbnRh aW5lciB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTBlMGUwOw0KICAgIH0NCg0KICAg IC5vZC1Ub3BCYXItY29tbWFuZEJhci5vZC0taGFzU2VsZWN0aW9uIC5tcy1Db21tYW5kQmFy IHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmMGYwZjA7DQogICAgICB0cmFuc2l0aW9u OiBiYWNrZ3JvdW5kLWNvbG9yIDQ2N21zIGN1YmljLWJlemllcigwLjEsIDAuOSwgMC4yLCAx KTsNCiAgICB9DQoNCiAgICAub2QtVG9wQmFyLWNvbW1hbmRCYXIub2QtLWhhc1NlbGVjdGlv biAubXMtQnV0dG9uLS1jb21tYW5kQmFyIHsNCiAgICAgIGNvbG9yOiAjMTQxNDE0Ow0KICAg ICAgYmFja2dyb3VuZC1jb2xvcjogI2YwZjBmMDsNCiAgICAgIHRyYW5zaXRpb246IGJhY2tn cm91bmQtY29sb3IgNDY3bXMgY3ViaWMtYmV6aWVyKDAuMSwgMC45LCAwLjIsIDEpOw0KICAg IH0NCg0KICAgIC5vZC1Ub3BCYXItY29tbWFuZEJhci5vZC0taGFzU2VsZWN0aW9uIC5tcy1C dXR0b24tLWNvbW1hbmRCYXI6aG92ZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Vi ZWJlYjsNCiAgICB9DQoNCiAgICAub2QtVG9wQmFyLWNvbW1hbmRCYXIub2QtLWhhc1NlbGVj dGlvbiAubXMtQnV0dG9uLS1jb21tYW5kQmFyLmlzLXRvZ2dsZWQgew0KICAgICAgYmFja2dy b3VuZC1jb2xvcjogI2UwZTBlMDsNCiAgICB9DQoNCiAgICAub2QtVG9wQmFyLWNvbW1hbmRC YXIub2QtLWhhc1NlbGVjdGlvbiAubXMtQnV0dG9uLS1jb21tYW5kQmFyLmlzLXRvZ2dsZWQ6 aG92ZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2M3YzdjNzsNCiAgICB9DQoNCiAg ICAub2QtVG9wQmFyLWNvbW1hbmRCYXIub2QtLWhhc1NlbGVjdGlvbiAubXMtQnV0dG9uLS1j b21tYW5kQmFyOmFjdGl2ZSB7DQogICAgICBjb2xvcjogIzE0MTQxNDsNCiAgICAgIGJhY2tn cm91bmQtY29sb3I6ICNlMGUwZTA7DQogICAgfQ0KDQogICAgLm9kLVRvcEJhci1jb21tYW5k QmFyLm9kLS1oYXNTZWxlY3Rpb24gLm1zLUJ1dHRvbi0tY29tbWFuZEJhci5pcy1leHBhbmRl ZDpob3ZlciB7DQogICAgICBjb2xvcjogIzE0MTQxNDsNCiAgICAgIGJhY2tncm91bmQtY29s b3I6ICNlMGUwZTA7DQogICAgfQ0KDQogICAgLmlzRmx1ZW50Vk5leHQgLm9kLVRvcEJhci1j b21tYW5kQmFyLm9kLS1oYXNTZWxlY3Rpb24gew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjog dHJhbnNwYXJlbnQ7DQogICAgfQ0KDQogICAgLmlzRmx1ZW50Vk5leHQgLm9kLVRvcEJhci1j b21tYW5kQmFyLm9kLS1oYXNTZWxlY3Rpb24gLm1zLUNvbW1hbmRCYXIgew0KICAgICAgYmFj a2dyb3VuZC1jb2xvcjogI2ZhZmFmYTsNCiAgICAgIGFuaW1hdGlvbi1uYW1lOiBjb21tYW5k QmFyQm94U2hhZG93QW5pbWF0aW9uOw0KICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAyNjdt czsNCiAgICAgIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7DQogICAgfQ0KDQogICAgLmlz Rmx1ZW50Vk5leHQgLm9kLVRvcEJhci1jb21tYW5kQmFyLm9kLS1oYXNTZWxlY3Rpb24gLm1z LUNvbW1hbmRCYXI6YWZ0ZXIgew0KICAgICAgYW5pbWF0aW9uOiBjb21tYW5kQmFyRGl2aWRl ckFuaW1hdGlvbjsNCiAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMjY3bXM7DQogICAgICBh bmltYXRpb24tZmlsbC1tb2RlOiBib3RoOw0KICAgIH0NCg0KICAgIEBtZWRpYSBvbmx5IHNj cmVlbiBhbmQgKG1heC13aWR0aDogNDc5Ljk5OTk5cHgpIHsNCiAgICAgIC5pc0ZsdWVudFZO ZXh0IC5vZC1Ub3BCYXItY29tbWFuZEJhci5vZC0taGFzU2VsZWN0aW9uIHsNCiAgICAgICAg aGVpZ2h0OiBjYWxjKDQ4cHggKyA2cHggKiAyKTsNCiAgICAgIH0NCg0KICAgICAgLmlzRmx1 ZW50Vk5leHQgLm9kLVRvcEJhci1jb21tYW5kQmFyLm9kLS1oYXNTZWxlY3Rpb24gLm1zLUNv bW1hbmRCYXIgew0KICAgICAgICBib3JkZXItcmFkaXVzOiAwOw0KICAgICAgICBwYWRkaW5n OiA2cHg7DQogICAgICB9DQogICAgfQ0KDQogICAgLmlzRmx1ZW50Vk5leHQgLm9kLVRvcEJh ci1jb21tYW5kQmFyLm9kLS1oYXNTZWxlY3Rpb24gLm1zLUJ1dHRvbi0tY29tbWFuZEJhciB7 DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsNCiAgICB9DQoNCiAgICAu bXMtQnV0dG9uLS1jb21tYW5kQmFyLmhpZGUtbGFiZWwgLm1zLUJ1dHRvbi10ZXh0Q29udGFp bmVyIHsNCiAgICAgIGRpc3BsYXk6IG5vbmU7DQogICAgfQ0KDQogICAgLm1zLUNvbW1hbmRC YXIgLm9kLUNvbW1hbmQtLVdvcmQgLm1zLUJ1dHRvbi1pY29uLA0KICAgIC5tcy1Db250ZXh0 dWFsTWVudSAub2QtQ29tbWFuZC0tV29yZCAubXMtQnV0dG9uLWljb24gew0KICAgICAgY29s b3I6ICMyYjU3OWE7DQogICAgfQ0KDQogICAgLm1zLUNvbW1hbmRCYXIgLm9kLUNvbW1hbmQt LUV4Y2VsIC5tcy1CdXR0b24taWNvbiwNCiAgICAubXMtQ29udGV4dHVhbE1lbnUgLm9kLUNv bW1hbmQtLUV4Y2VsIC5tcy1CdXR0b24taWNvbiB7DQogICAgICBjb2xvcjogIzIxNzM0NjsN CiAgICB9DQoNCiAgICAubXMtQ29tbWFuZEJhciAub2QtQ29tbWFuZC0tUG93ZXJQb2ludCAu bXMtQnV0dG9uLWljb24sDQogICAgLm1zLUNvbnRleHR1YWxNZW51IC5vZC1Db21tYW5kLS1Q b3dlclBvaW50IC5tcy1CdXR0b24taWNvbiB7DQogICAgICBjb2xvcjogI2QyNDcyNjsNCiAg ICB9DQoNCiAgICAubXMtQ29tbWFuZEJhciAub2QtQ29tbWFuZC0tVmlzaW8gLm1zLUJ1dHRv bi1pY29uLA0KICAgIC5tcy1Db250ZXh0dWFsTWVudSAub2QtQ29tbWFuZC0tVmlzaW8gLm1z LUJ1dHRvbi1pY29uIHsNCiAgICAgIGNvbG9yOiAjMzg1NGEyOw0KICAgIH0NCg0KICAgIC5t cy1Db21tYW5kQmFyIC5vZC1Db21tYW5kLS1PbmVOb3RlIC5tcy1CdXR0b24taWNvbiwNCiAg ICAubXMtQ29udGV4dHVhbE1lbnUgLm9kLUNvbW1hbmQtLU9uZU5vdGUgLm1zLUJ1dHRvbi1p Y29uIHsNCiAgICAgIGNvbG9yOiAjNWMyZDkxOw0KICAgIH0NCg0KICAgIC5tcy1Db21tYW5k QmFyIC5vZC1Db21tYW5kLS1QREYgLm1zLUJ1dHRvbi1pY29uLA0KICAgIC5tcy1Db250ZXh0 dWFsTWVudSAub2QtQ29tbWFuZC0tUERGIC5tcy1CdXR0b24taWNvbiB7DQogICAgICBjb2xv cjogI2M5MDMwNDsNCiAgICB9DQoNCiAgICAuT25lVXAtY29tbWFuZEJhciAubXMtQ29tbWFu ZEJhciAubXMtQnV0dG9uLS1jb21tYW5kQmFyLm9kLUNvbW1hbmQtLVdvcmQgew0KICAgICAg YmFja2dyb3VuZC1jb2xvcjogIzJiNTc5YTsNCiAgICB9DQoNCiAgICAuT25lVXAtY29tbWFu ZEJhciAubXMtQ29tbWFuZEJhciAubXMtQnV0dG9uLS1jb21tYW5kQmFyLm9kLUNvbW1hbmQt LVdvcmQ6Zm9jdXM6OmFmdGVyIHsNCiAgICAgIG91dGxpbmUtY29sb3I6ICNmZmY7DQogICAg fQ0KDQogICAgLk9uZVVwLWNvbW1hbmRCYXIgLm1zLUNvbW1hbmRCYXIgLm1zLUJ1dHRvbi0t Y29tbWFuZEJhci5vZC1Db21tYW5kLS1Xb3JkOmhvdmVyIHsNCiAgICAgIGJhY2tncm91bmQt Y29sb3I6ICMxMjQwNzg7DQogICAgfQ0KDQogICAgLk9uZVVwLWNvbW1hbmRCYXIgLm1zLUNv bW1hbmRCYXIgLm1zLUJ1dHRvbi0tY29tbWFuZEJhci5vZC1Db21tYW5kLS1Xb3JkLmlzLWV4 cGFuZGVkLA0KICAgIC5PbmVVcC1jb21tYW5kQmFyIC5tcy1Db21tYW5kQmFyIC5tcy1CdXR0 b24tLWNvbW1hbmRCYXIub2QtQ29tbWFuZC0tV29yZC5pcy1leHBhbmRlZDpob3ZlciwNCiAg ICAuT25lVXAtY29tbWFuZEJhciAubXMtQ29tbWFuZEJhciAubXMtQnV0dG9uLS1jb21tYW5k QmFyLm9kLUNvbW1hbmQtLVdvcmQ6YWN0aXZlIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6 ICMwMDIwNTA7DQogICAgfQ0KDQogICAgLk9uZVVwLWNvbW1hbmRCYXIgLm1zLUNvbW1hbmRC YXIgLm1zLUJ1dHRvbi0tY29tbWFuZEJhci5vZC1Db21tYW5kLS1FeGNlbCB7DQogICAgICBi YWNrZ3JvdW5kLWNvbG9yOiAjMjE3MzQ2Ow0KICAgIH0NCg0KICAgIC5PbmVVcC1jb21tYW5k QmFyIC5tcy1Db21tYW5kQmFyIC5tcy1CdXR0b24tLWNvbW1hbmRCYXIub2QtQ29tbWFuZC0t RXhjZWw6Zm9jdXM6OmFmdGVyIHsNCiAgICAgIG91dGxpbmUtY29sb3I6ICNmZmY7DQogICAg fQ0KDQogICAgLk9uZVVwLWNvbW1hbmRCYXIgLm1zLUNvbW1hbmRCYXIgLm1zLUJ1dHRvbi0t Y29tbWFuZEJhci5vZC1Db21tYW5kLS1FeGNlbDpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5k LWNvbG9yOiAjMGU1YzJmOw0KICAgIH0NCg0KICAgIC5PbmVVcC1jb21tYW5kQmFyIC5tcy1D b21tYW5kQmFyIC5tcy1CdXR0b24tLWNvbW1hbmRCYXIub2QtQ29tbWFuZC0tRXhjZWwuaXMt ZXhwYW5kZWQsDQogICAgLk9uZVVwLWNvbW1hbmRCYXIgLm1zLUNvbW1hbmRCYXIgLm1zLUJ1 dHRvbi0tY29tbWFuZEJhci5vZC1Db21tYW5kLS1FeGNlbC5pcy1leHBhbmRlZDpob3ZlciwN CiAgICAuT25lVXAtY29tbWFuZEJhciAubXMtQ29tbWFuZEJhciAubXMtQnV0dG9uLS1jb21t YW5kQmFyLm9kLUNvbW1hbmQtLUV4Y2VsOmFjdGl2ZSB7DQogICAgICBiYWNrZ3JvdW5kLWNv bG9yOiAjMDA0YjFjOw0KICAgIH0NCg0KICAgIC5PbmVVcC1jb21tYW5kQmFyIC5tcy1Db21t YW5kQmFyIC5tcy1CdXR0b24tLWNvbW1hbmRCYXIub2QtQ29tbWFuZC0tUG93ZXJQb2ludCB7 DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYjc0NzJhOw0KICAgIH0NCg0KICAgIC5PbmVV cC1jb21tYW5kQmFyIC5tcy1Db21tYW5kQmFyIC5tcy1CdXR0b24tLWNvbW1hbmRCYXIub2Qt Q29tbWFuZC0tUG93ZXJQb2ludDpmb2N1czo6YWZ0ZXIgew0KICAgICAgb3V0bGluZS1jb2xv cjogI2ZmZjsNCiAgICB9DQoNCiAgICAuT25lVXAtY29tbWFuZEJhciAubXMtQ29tbWFuZEJh ciAubXMtQnV0dG9uLS1jb21tYW5kQmFyLm9kLUNvbW1hbmQtLVBvd2VyUG9pbnQ6aG92ZXIg ew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2E5MmIxYTsNCiAgICB9DQoNCiAgICAuT25l VXAtY29tbWFuZEJhciAubXMtQ29tbWFuZEJhciAubXMtQnV0dG9uLS1jb21tYW5kQmFyLm9k LUNvbW1hbmQtLVBvd2VyUG9pbnQuaXMtZXhwYW5kZWQsDQogICAgLk9uZVVwLWNvbW1hbmRC YXIgLm1zLUNvbW1hbmRCYXIgLm1zLUJ1dHRvbi0tY29tbWFuZEJhci5vZC1Db21tYW5kLS1Q b3dlclBvaW50LmlzLWV4cGFuZGVkOmhvdmVyLA0KICAgIC5PbmVVcC1jb21tYW5kQmFyIC5t cy1Db21tYW5kQmFyIC5tcy1CdXR0b24tLWNvbW1hbmRCYXIub2QtQ29tbWFuZC0tUG93ZXJQ b2ludDphY3RpdmUgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzc0MDkxMjsNCiAgICB9 DQoNCiAgICAuT25lVXAtY29tbWFuZEJhciAubXMtQ29tbWFuZEJhciAubXMtQnV0dG9uLS1j b21tYW5kQmFyLm9kLUNvbW1hbmQtLVZpc2lvIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6 ICMwMDc4ZDQ7DQogICAgfQ0KDQogICAgLk9uZVVwLWNvbW1hbmRCYXIgLm1zLUNvbW1hbmRC YXIgLm1zLUJ1dHRvbi0tY29tbWFuZEJhci5vZC1Db21tYW5kLS1WaXNpbzpmb2N1czo6YWZ0 ZXIgew0KICAgICAgb3V0bGluZS1jb2xvcjogI2ZmZjsNCiAgICB9DQoNCiAgICAuT25lVXAt Y29tbWFuZEJhciAubXMtQ29tbWFuZEJhciAubXMtQnV0dG9uLS1jb21tYW5kQmFyLm9kLUNv bW1hbmQtLVZpc2lvOmhvdmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxMDZlYmU7 DQogICAgfQ0KDQogICAgLk9uZVVwLWNvbW1hbmRCYXIgLm1zLUNvbW1hbmRCYXIgLm1zLUJ1 dHRvbi0tY29tbWFuZEJhci5vZC1Db21tYW5kLS1WaXNpby5pcy1leHBhbmRlZCwNCiAgICAu T25lVXAtY29tbWFuZEJhciAubXMtQ29tbWFuZEJhciAubXMtQnV0dG9uLS1jb21tYW5kQmFy Lm9kLUNvbW1hbmQtLVZpc2lvLmlzLWV4cGFuZGVkOmhvdmVyLA0KICAgIC5PbmVVcC1jb21t YW5kQmFyIC5tcy1Db21tYW5kQmFyIC5tcy1CdXR0b24tLWNvbW1hbmRCYXIub2QtQ29tbWFu ZC0tVmlzaW86YWN0aXZlIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDVhOWU7DQog ICAgfQ0KDQogICAgLk9uZVVwLWNvbW1hbmRCYXIgLm1zLUNvbW1hbmRCYXIgLm1zLUJ1dHRv bi0tY29tbWFuZEJhci5vZC1Db21tYW5kLS1PbmVOb3RlIHsNCiAgICAgIGJhY2tncm91bmQt Y29sb3I6ICM3NzE5YWE7DQogICAgfQ0KDQogICAgLk9uZVVwLWNvbW1hbmRCYXIgLm1zLUNv bW1hbmRCYXIgLm1zLUJ1dHRvbi0tY29tbWFuZEJhci5vZC1Db21tYW5kLS1PbmVOb3RlOmhv dmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM1YzEzODQ7DQogICAgfQ0KDQogICAg Lk9uZVVwLWNvbW1hbmRCYXIgLm1zLUNvbW1hbmRCYXIgLm1zLUJ1dHRvbi0tY29tbWFuZEJh ci5vZC1Db21tYW5kLS1PbmVOb3RlLmlzLWV4cGFuZGVkLA0KICAgIC5PbmVVcC1jb21tYW5k QmFyIC5tcy1Db21tYW5kQmFyIC5tcy1CdXR0b24tLWNvbW1hbmRCYXIub2QtQ29tbWFuZC0t T25lTm90ZS5pcy1leHBhbmRlZDpob3ZlciwNCiAgICAuT25lVXAtY29tbWFuZEJhciAubXMt Q29tbWFuZEJhciAubXMtQnV0dG9uLS1jb21tYW5kQmFyLm9kLUNvbW1hbmQtLU9uZU5vdGU6 YWN0aXZlIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM0YzBmNmM7DQogICAgfQ0KDQog ICAgLk9uZVVwLWNvbW1hbmRCYXIgLm1zLUNvbW1hbmRCYXIgLm1zLUJ1dHRvbi0tY29tbWFu ZEJhci5vZC1Db21tYW5kLS1QREYgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2M5MDMw NDsNCiAgICB9DQoNCiAgICAuT25lVXAtY29tbWFuZEJhciAubXMtQ29tbWFuZEJhciAubXMt QnV0dG9uLS1jb21tYW5kQmFyLm9kLUNvbW1hbmQtLVByaW1hcnlCdXR0b24gew0KICAgICAg Y29sb3I6ICNmZmZmZmY7DQogICAgICBtYXJnaW46IDZweCAxMnB4IDZweCAwOw0KICAgICAg aGVpZ2h0OiBhdXRvOw0KICAgICAgYm9yZGVyLXJhZGl1czogMnB4Ow0KICAgIH0NCg0KICAg IGh0bWxbZGlyPSJydGwiXSAuT25lVXAtY29tbWFuZEJhciAubXMtQ29tbWFuZEJhciAubXMt QnV0dG9uLS1jb21tYW5kQmFyLm9kLUNvbW1hbmQtLVByaW1hcnlCdXR0b24gew0KICAgICAg bWFyZ2luOiA2cHggMCA2cHggMTJweDsNCiAgICB9DQoNCiAgICAuT25lVXAtY29tbWFuZEJh ciAubXMtQ29tbWFuZEJhciAubXMtQnV0dG9uLS1jb21tYW5kQmFyLm9kLUNvbW1hbmQtLVBy aW1hcnlCdXR0b24gLm1zLUJ1dHRvbi1pY29uLA0KICAgIC5PbmVVcC1jb21tYW5kQmFyIC5t cy1Db21tYW5kQmFyIC5tcy1CdXR0b24tLWNvbW1hbmRCYXIub2QtQ29tbWFuZC0tUHJpbWFy eUJ1dHRvbiAubXMtQnV0dG9uLW1lbnVJY29uIHsNCiAgICAgIGNvbG9yOiAjZmZmZmZmOw0K ICAgIH0NCg0KICAgIC5PbmVVcC1jb21tYW5kQmFyIC5tcy1Db21tYW5kQmFyIC5tcy1CdXR0 b24tLWNvbW1hbmRCYXIub2QtQ29tbWFuZC0tbm9uT2ZmaWNlQXBwIHsNCiAgICAgIG1hcmdp bjogNnB4IDEycHggNnB4IDA7DQogICAgICBoZWlnaHQ6IGF1dG87DQogICAgICBib3JkZXIt cmFkaXVzOiAycHg7DQogICAgICBjb2xvcjogI2ZmZmZmZjsNCiAgICAgIGJhY2tncm91bmQt Y29sb3I6ICMwMDc4ZDQ7DQogICAgfQ0KDQogICAgaHRtbFtkaXI9InJ0bCJdIC5PbmVVcC1j b21tYW5kQmFyIC5tcy1Db21tYW5kQmFyIC5tcy1CdXR0b24tLWNvbW1hbmRCYXIub2QtQ29t bWFuZC0tbm9uT2ZmaWNlQXBwIHsNCiAgICAgIG1hcmdpbjogNnB4IDAgNnB4IDEycHg7DQog ICAgfQ0KDQogICAgLk9uZVVwLWNvbW1hbmRCYXIgLm1zLUNvbW1hbmRCYXIgLm1zLUJ1dHRv bi0tY29tbWFuZEJhci5vZC1Db21tYW5kLS1ub25PZmZpY2VBcHA6Zm9jdXM6OmFmdGVyIHsN CiAgICAgIG91dGxpbmUtY29sb3I6ICNmZmY7DQogICAgfQ0KDQogICAgLk9uZVVwLWNvbW1h bmRCYXIgLm1zLUNvbW1hbmRCYXIgLm1zLUJ1dHRvbi0tY29tbWFuZEJhci5vZC1Db21tYW5k LS1ub25PZmZpY2VBcHA6aG92ZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzEwNmVi ZTsNCiAgICB9DQoNCiAgICAuT25lVXAtY29tbWFuZEJhciAubXMtQ29tbWFuZEJhciAubXMt QnV0dG9uLS1jb21tYW5kQmFyLm9kLUNvbW1hbmQtLW5vbk9mZmljZUFwcC5pcy1leHBhbmRl ZCwNCiAgICAuT25lVXAtY29tbWFuZEJhciAubXMtQ29tbWFuZEJhciAubXMtQnV0dG9uLS1j b21tYW5kQmFyLm9kLUNvbW1hbmQtLW5vbk9mZmljZUFwcDphY3RpdmUgew0KICAgICAgYmFj a2dyb3VuZC1jb2xvcjogIzAwNWE5ZTsNCiAgICB9DQoNCiAgICAuT25lVXAtY29tbWFuZEJh ciAubXMtQ29tbWFuZEJhciAubXMtQnV0dG9uLS1jb21tYW5kQmFyLm9kLUNvbW1hbmQtLW5v bk9mZmljZUFwcCAubXMtQnV0dG9uLWljb24sDQogICAgLk9uZVVwLWNvbW1hbmRCYXIgLm1z LUNvbW1hbmRCYXIgLm1zLUJ1dHRvbi0tY29tbWFuZEJhci5vZC1Db21tYW5kLS1ub25PZmZp Y2VBcHAgLm1zLUJ1dHRvbi1tZW51SWNvbiB7DQogICAgICBjb2xvcjogI2ZmZmZmZjsNCiAg ICB9DQoNCiAgICAuT25lVXAtY29tbWFuZEJhciAubXMtQ29tbWFuZEJhciAubXMtQnV0dG9u LS1jb21tYW5kQmFyLm9kLUNvbW1hbmQtLVN0cmVhbSB7DQogICAgICBiYWNrZ3JvdW5kLWNv bG9yOiAjYmMxOTQ4Ow0KICAgIH0NCg0KICAgIC5PbmVVcC1jb21tYW5kQmFyIC5tcy1Db21t YW5kQmFyIC5tcy1CdXR0b24tLWNvbW1hbmRCYXIub2QtQ29tbWFuZC0tU3RyZWFtOmZvY3Vz OjphZnRlciB7DQogICAgICBvdXRsaW5lLWNvbG9yOiAjZmZmOw0KICAgIH0NCg0KICAgIC5P bmVVcC1jb21tYW5kQmFyIC5tcy1Db21tYW5kQmFyIC5tcy1CdXR0b24tLWNvbW1hbmRCYXIu b2QtQ29tbWFuZC0tU3RyZWFtOmhvdmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNh YTE2NDA7DQogICAgfQ0KDQogICAgLk9uZVVwLWNvbW1hbmRCYXIgLm1zLUNvbW1hbmRCYXIg Lm1zLUJ1dHRvbi0tY29tbWFuZEJhci5vZC1Db21tYW5kLS1TdHJlYW0uaXMtZXhwYW5kZWQs DQogICAgLk9uZVVwLWNvbW1hbmRCYXIgLm1zLUNvbW1hbmRCYXIgLm1zLUJ1dHRvbi0tY29t bWFuZEJhci5vZC1Db21tYW5kLS1TdHJlYW0uaXMtZXhwYW5kZWQ6aG92ZXIsDQogICAgLk9u ZVVwLWNvbW1hbmRCYXIgLm1zLUNvbW1hbmRCYXIgLm1zLUJ1dHRvbi0tY29tbWFuZEJhci5v ZC1Db21tYW5kLS1TdHJlYW06YWN0aXZlIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM4 ZjEzMzY7DQogICAgfQ0KDQogICAgLm1zLUNvbW1hbmRCYXIgYnV0dG9uIC5vZC1lcnJvci1i YWRnZSB7DQogICAgICBjb2xvcjogI2E0MjYyYzsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6 ICNmZmZmZmY7DQogICAgICBmb250LXNpemU6IDEycHg7DQogICAgICBib3JkZXItcmFkaXVz OiA1MCU7DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgICB3aWR0aDogMTJweDsN CiAgICAgIGhlaWdodDogMTJweDsNCiAgICAgIG1hcmdpbi10b3A6IC00cHg7DQogICAgICBs ZWZ0OiAxOHB4Ow0KICAgIH0NCg0KICAgIC5tcy1Db21tYW5kQmFyIGJ1dHRvbiAuY29tbWFu ZEZpbGVJbnB1dCwNCiAgICAubXMtQ29udGV4dHVhbE1lbnUgYnV0dG9uIC5jb21tYW5kRmls ZUlucHV0IHsNCiAgICAgIG9wYWNpdHk6IDAuMDAwMTsNCiAgICAgIHBvc2l0aW9uOiBhYnNv bHV0ZTsNCiAgICAgIHdpZHRoOiAxMDAlOw0KICAgICAgdG9wOiAwOw0KICAgICAgYm90dG9t OiAwOw0KICAgICAgbGVmdDogMDsNCiAgICAgIHJpZ2h0OiAwOw0KICAgICAgei1pbmRleDog LTk5OTk5OTk7DQogICAgICBjdXJzb3I6IHBvaW50ZXI7DQogICAgICBvdmVyZmxvdzogaGlk ZGVuOw0KICAgIH0NCg0KICAgIC5tZCAubXMtQ29tbWFuZEJhciAubXMtQnV0dG9uLS1jb21t YW5kQmFyLA0KICAgIC5zbSAubXMtQ29tbWFuZEJhciAubXMtQnV0dG9uLS1jb21tYW5kQmFy IHsNCiAgICAgIGhlaWdodDogNDhweDsNCiAgICB9DQoNCiAgICAubWQgLm1zLUNvbW1hbmRC YXIgLm1zLUJ1dHRvbi0tY29tbWFuZEJhciAubXMtQnV0dG9uLWljb24sDQogICAgLnNtIC5t cy1Db21tYW5kQmFyIC5tcy1CdXR0b24tLWNvbW1hbmRCYXIgLm1zLUJ1dHRvbi1pY29uIHsN CiAgICAgIGZvbnQtc2l6ZTogMjBweDsNCiAgICB9DQoNCiAgICAuaXNGbHVlbnRWTmV4dCAu bWQgLm1zLUNvbW1hbmRCYXIgLm1zLUJ1dHRvbi0tY29tbWFuZEJhciwNCiAgICAuaXNGbHVl bnRWTmV4dCAuc20gLm1zLUNvbW1hbmRCYXIgLm1zLUJ1dHRvbi0tY29tbWFuZEJhciB7DQog ICAgICBoZWlnaHQ6IDQwcHg7DQogICAgfQ0KDQogICAgLm1zLUNvbW1hbmRCYXIgLm1zLUJ1 dHRvbi0tY29tbWFuZEJhci5pcy1kaXNhYmxlZCB7DQogICAgICBjdXJzb3I6IGRlZmF1bHQ7 DQogICAgfQ0KDQogICAgLm1zLUNvbW1hbmRCYXIgLm1zLUJ1dHRvbi0tY29tbWFuZEJhci5p cy1kaXNhYmxlZCBpIHsNCiAgICAgIGNvbG9yOiAjNDI0MjQyOw0KICAgIH0NCg0KICAgIC5t cy1Db21tYW5kQmFyIC5tcy1CdXR0b24tLWNvbW1hbmRCYXIuaXMtaW52aXNpYmxlIHsNCiAg ICAgIHZpc2liaWxpdHk6IGhpZGRlbjsNCiAgICB9DQoNCiAgICAubGcgLm1zLUNvbW1hbmRC YXIsDQogICAgLm1kIC5tcy1Db21tYW5kQmFyLA0KICAgIC5zbSAubXMtQ29tbWFuZEJhciB7 DQogICAgICBwYWRkaW5nOiAwIDRweDsNCiAgICB9DQoNCiAgICAubWQgLm1zLUNvbW1hbmRC YXIsDQogICAgLnNtIC5tcy1Db21tYW5kQmFyIHsNCiAgICAgIGhlaWdodDogNDhweDsNCiAg ICB9DQoNCiAgICAub2QtVG9wQmFyLm9kLS1oYXNTZWxlY3Rpb24gLm1zLUNvbW1hbmRCYXIg ew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YwZjBmMDsNCiAgICAgIHRyYW5zaXRpb246 IG5vbmU7DQogICAgfQ0KDQogICAgLm9kLVRvcEJhci5vZC0taGFzU2VsZWN0aW9uIC5tcy1D b21tYW5kQmFyIC5tcy1CdXR0b24tLWNvbW1hbmRCYXIgew0KICAgICAgY29sb3I6ICMyNDI0 MjQ7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0Ow0KICAgICAgdHJhbnNpdGlv bjogbm9uZTsNCiAgICB9DQoNCiAgICAub2QtVG9wQmFyLm9kLS1oYXNTZWxlY3Rpb24gLm1z LUNvbW1hbmRCYXIgLm1zLUJ1dHRvbi0tY29tbWFuZEJhcjpob3ZlciB7DQogICAgICBjb2xv cjogIzE0MTQxNDsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlYmViZWI7DQogICAgfQ0K DQogICAgLm9kLVRvcEJhci5vZC0taGFzU2VsZWN0aW9uIC5tcy1Db21tYW5kQmFyIC5tcy1C dXR0b24tLWNvbW1hbmRCYXIuaXMtdG9nZ2xlZCB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9y OiAjZTBlMGUwOw0KICAgIH0NCg0KICAgIC5vZC1Ub3BCYXIub2QtLWhhc1NlbGVjdGlvbiAu bXMtQ29tbWFuZEJhciAubXMtQnV0dG9uLS1jb21tYW5kQmFyLmlzLXRvZ2dsZWQ6aG92ZXIg ew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2M3YzdjNzsNCiAgICB9DQoNCiAgICAub2Qt VG9wQmFyLm9kLS1oYXNTZWxlY3Rpb24gLm1zLUNvbW1hbmRCYXIgLm1zLUJ1dHRvbi0tY29t bWFuZEJhcjphY3RpdmUgew0KICAgICAgY29sb3I6ICMxNDE0MTQ7DQogICAgICBiYWNrZ3Jv dW5kLWNvbG9yOiAjZTBlMGUwOw0KICAgIH0NCg0KICAgIC5vZC1Ub3BCYXIub2QtLWhhc1Nl bGVjdGlvbiAubXMtQ29tbWFuZEJhciAubXMtQnV0dG9uLS1jb21tYW5kQmFyLmlzLWV4cGFu ZGVkOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjMTQxNDE0Ow0KICAgICAgYmFja2dyb3VuZC1j b2xvcjogI2QxZDFkMTsNCiAgICB9DQoNCiAgICAubXMtQnV0dG9uLmlzLWRpc2FibGVkIHsN CiAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7DQogICAgfQ0KICA8L3N0eWxlPg0KICA8c3R5 bGUgZGF0YS1sb2FkLXRoZW1lZC1zdHlsZXM9InRydWUiPg0KICAgIC5tcy1Db250ZXh0dWFs TWVudS1pY29uIHsNCiAgICAgIGZvbnQtc2l6ZTogMXJlbTsNCiAgICAgIHdpZHRoOiAxcmVt Ow0KICAgIH0NCg0KICAgIC5tcy1Db250ZXh0dWFsTWVudS1pY29uLm1zLUljb24tLUluZm8g ew0KICAgICAgbWFyZ2luLXRvcDogMnB4Ow0KICAgIH0NCg0KICAgIC5tcy1Db250ZXh0dWFs TWVudS1pY29uW2RhdGEtaWNvbi1uYW1lPSJFeGNlbExvZ28iXSB7DQogICAgICBjb2xvcjog IzIxNzM0NjsNCiAgICB9DQoNCiAgICAubXMtQ29udGV4dHVhbE1lbnUtaWNvbltkYXRhLWlj b24tbmFtZT0iT25lTm90ZUxvZ28iXSB7DQogICAgICBjb2xvcjogIzVjMmQ5MTsNCiAgICB9 DQoNCiAgICAubXMtQ29udGV4dHVhbE1lbnUtaWNvbltkYXRhLWljb24tbmFtZT0iUG93ZXJQ b2ludExvZ28iXSB7DQogICAgICBjb2xvcjogI2QyNDcyNjsNCiAgICB9DQoNCiAgICAubXMt Q29udGV4dHVhbE1lbnUtaWNvbltkYXRhLWljb24tbmFtZT0iV29yZExvZ28iXSB7DQogICAg ICBjb2xvcjogIzJiNTc5YTsNCiAgICB9DQoNCiAgICAubXMtQ29udGV4dHVhbE1lbnUtaWNv bltkYXRhLWljb24tbmFtZT0iVmlzaW9Mb2dvIl0gew0KICAgICAgY29sb3I6ICMzODU0YTI7 DQogICAgfQ0KDQogICAgLm1zLUNvbnRleHR1YWxNZW51LWljb24ub2QtTmVlZHNBdHRlbnRp b25WaWV3SWNvbiB7DQogICAgICBjb2xvcjogI2E0MjYyYzsNCiAgICB9DQoNCiAgICAubXMt Q29udGV4dHVhbE1lbnUtaWNvbi5tcy1JY29uLS1DdXN0b21JY29uLA0KICAgIC5tcy1Db250 ZXh0dWFsTWVudS1pY29uLm1zLUljb24tLWN1c3RvbSB7DQogICAgICB3aWR0aDogMXJlbTsN CiAgICAgIGhlaWdodDogMi4yNXJlbTsNCiAgICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFp bjsNCiAgICB9DQoNCiAgICAubXMtQ29udGV4dHVhbE1lbnUtbGluayB7DQogICAgICBmb250 LXNpemU6IDAuODc1cmVtOw0KICAgICAgaGVpZ2h0OiAyLjI1cmVtOw0KICAgICAgbGluZS1o ZWlnaHQ6IDIuMjVyZW07DQogICAgfQ0KDQogICAgLkNvbnRleHR1YWxNZW51LXVwbG9hZElu cHV0IHsNCiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgIHRvcDogMDsNCiAgICAg IGJvdHRvbTogMDsNCiAgICAgIGxlZnQ6IDA7DQogICAgICByaWdodDogMDsNCiAgICAgIG9w YWNpdHk6IDAuMDAwMTsNCiAgICAgIGN1cnNvcjogcG9pbnRlcjsNCiAgICAgIG92ZXJmbG93 OiBoaWRkZW47DQogICAgICB6LWluZGV4OiA5OTk5OTk5Ow0KICAgIH0NCg0KICAgIC5Db250 ZXh0dWFsTWVudS11cGxvYWRJbnB1dCBpbnB1dCB7DQogICAgICBwb3NpdGlvbjogYWJzb2x1 dGU7DQogICAgICB0b3A6IDA7DQogICAgICBmb250LXNpemU6IDIwMHB4Ow0KICAgICAgaGVp Z2h0OiAxMDBweDsNCiAgICAgIGN1cnNvcjogcG9pbnRlcjsNCiAgICAgIG1hcmdpbjogMDsN CiAgICAgIHBhZGRpbmc6IDA7DQogICAgfQ0KDQogICAgW2Rpcj0ibHRyIl0gLkNvbnRleHR1 YWxNZW51LXVwbG9hZElucHV0IGlucHV0IHsNCiAgICAgIHJpZ2h0OiAwOw0KICAgIH0NCg0K ICAgIFtkaXI9InJ0bCJdIC5Db250ZXh0dWFsTWVudS11cGxvYWRJbnB1dCBpbnB1dCB7DQog ICAgICBsZWZ0OiAwOw0KICAgIH0NCg0KICAgIC5Db250ZXh0dWFsTWVudS11cGxvYWRJbnB1 dC1jb250YWluZXIgew0KICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsNCiAgICAgIHBh ZGRpbmc6IDA7DQogICAgfQ0KDQogICAgLkNvbnRleHR1YWxNZW51LXVwbG9hZElucHV0LVRl eHQgew0KICAgICAgZGlzcGxheTogYmxvY2s7DQogICAgfQ0KICA8L3N0eWxlPg0KICA8c2Ny aXB0IHNyYz0iaHR0cHM6Ly9yZXMtMS5jZG4ub2ZmaWNlLm5ldC9zaGVsbHV4L3N1aXRldXgu c2hlbGwucmVzcG9uc2l2ZS5mOWJiNjBjZTg4ZDY3YWM2YzE0OS5qcyINCiAgICBjcm9zc29y aWdpbj0iYW5vbnltb3VzIiBhc3luYz0iIj48L3NjcmlwdD4NCiAgPHNjcmlwdCBzcmM9Imh0 dHBzOi8vcmVzLTEuY2RuLm9mZmljZS5uZXQvc2hlbGx1eC9zdWl0ZXV4LnNoZWxsLmNvbnNh cHBkYXRhLjYzMDlhOTE1YTQ1YjA1YjZjYzVhLmpzIg0KICAgIGNyb3Nzb3JpZ2luPSJhbm9u eW1vdXMiIGFzeW5jPSIiPjwvc2NyaXB0Pg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0K ICAgIC5NM3BjQjVldlNBdFlNb3pjazFXVTdBXD1cPSB7DQogICAgICBoZWlnaHQ6IDEwMCU7 DQogICAgICBsaW5lLWhlaWdodDogNDhweDsNCiAgICAgIGRpc3BsYXk6IGZsZXg7DQogICAg fQ0KDQogICAgLl8xUVNLNWxVaHc1R2toN1NEejk3WlBRXD1cPSB7DQogICAgICBoZWlnaHQ6 IDQ4cHg7DQogICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgIH0NCg0KICAgIC5zaVVNT0p3bnVt eWN4dnN6QmUzdXpRXD1cPSB7DQogICAgICBkaXNwbGF5OiBpbmhlcml0Ow0KICAgICAgZmxl eDogaW5oZXJpdDsNCiAgICAgIGp1c3RpZnktY29udGVudDogaW5oZXJpdDsNCiAgICAgIG9y ZGVyOiBpbmhlcml0Ow0KICAgICAgYWxpZ24tc2VsZjogaW5oZXJpdDsNCiAgICAgIG1pbi13 aWR0aDogaW5oZXJpdDsNCiAgICB9DQoNCiAgICAuXC9EeU1ZajJnTmZQcllOYkVXb1YyXC93 XD1cPSB7DQogICAgICBmb250LXNpemU6IDE0cHg7DQogICAgICBmb250LWZhbWlseTogU2Vn b2VVSS1SZWd1bGFyLWZpbmFsLCBTZWdvZSBVSSwNCiAgICAgICAgIlNlZ29lIFVJIFdlYiAo V2VzdCBFdXJvcGVhbikiLCBTZWdvZSwgLWFwcGxlLXN5c3RlbSwNCiAgICAgICAgQmxpbmtN YWNTeXN0ZW1Gb250LCBSb2JvdG8sIEhlbHZldGljYSBOZXVlLCBUYWhvbWEsIEhlbHZldGlj YSwgQXJpYWwsDQogICAgICAgIHNhbnMtc2VyaWY7DQogICAgICB0ZXh0LWFsaWduOiBsZWZ0 Ow0KICAgICAgaGVpZ2h0OiA0OHB4Ow0KICAgICAgbGluZS1oZWlnaHQ6IDQ4cHg7DQogICAg ICB2ZXJ0aWNhbC1hbGlnbjogdG9wOw0KICAgICAgcGFkZGluZy1sZWZ0OiA4cHg7DQogICAg ICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcyAhaW1wb3J0YW50Ow0KICAgICAgb3ZlcmZsb3c6 IGhpZGRlbiAhaW1wb3J0YW50Ow0KICAgICAgbWF4LXdpZHRoOiAyMjBweDsNCiAgICAgIGN1 cnNvcjogcG9pbnRlcjsNCiAgICB9DQoNCiAgICBAbWVkaWEgKC1tcy1oaWdoLWNvbnRyYXN0 OiBhY3RpdmUpLA0KICAgIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpIHsNCg0KICAgICAgLlwv RHlNWWoyZ05mUHJZTmJFV29WMlwvd1w9XD06Zm9jdXMsDQogICAgICAuXC9EeU1ZajJnTmZQ cllOYkVXb1YyXC93XD1cPTpob3ZlciB7DQogICAgICAgIC1tcy1oaWdoLWNvbnRyYXN0LWFk anVzdDogbm9uZTsNCiAgICAgICAgZm9yY2VkLWNvbG9yLWFkanVzdDogbm9uZTsNCiAgICAg ICAgYmFja2dyb3VuZC1jb2xvcjogSGlnaGxpZ2h0ICFpbXBvcnRhbnQ7DQogICAgICAgIGNv bG9yOiBoaWdobGlnaHRUZXh0ICFpbXBvcnRhbnQ7DQogICAgICB9DQogICAgfQ0KDQogICAg Lk45QjVcL0xcL0tISHZUOVdPQkFiMWJlQVw9XD0gew0KICAgICAgcGFkZGluZy1sZWZ0OiAx MnB4ICFpbXBvcnRhbnQ7DQogICAgICBwYWRkaW5nLXJpZ2h0OiAxMnB4ICFpbXBvcnRhbnQ7 DQogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHJpZ2h0ICFpbXBvcnRhbnQ7DQogICAgICBkaXNw bGF5OiBmbGV4Ow0KICAgIH0NCiAgPC9zdHlsZT4NCiAgPHNjcmlwdCBzcmM9Imh0dHBzOi8v cmVzLTEuY2RuLm9mZmljZS5uZXQvc2hlbGx1eC9zdWl0ZXV4LnNoZWxsLmNvcmUuZWJiNTU4 MzgzYjdmNTAyODRlNTcuanMiIGNyb3Nzb3JpZ2luPSJhbm9ueW1vdXMiDQogICAgYXN5bmM9 IiI+PC9zY3JpcHQ+DQogIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+DQogICAgLm8zNjVjcy1i YXNlIC5YTkNxXCtsNFF1Zkh0d0RoT0dkY3JFQVw9XD06Oi13ZWJraXQtc2Nyb2xsYmFyIHsN CiAgICAgIHdpZHRoOiA4cHg7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5YTkNxXCts NFF1Zkh0d0RoT0dkY3JFQVw9XD06Oi13ZWJraXQtc2Nyb2xsYmFyLWJ1dHRvbiwNCiAgICAu bzM2NWNzLWJhc2UgLlhOQ3FcK2w0UXVmSHR3RGhPR2RjckVBXD1cPTo6LXdlYmtpdC1zY3Jv bGxiYXItY29ybmVyLA0KICAgIC5vMzY1Y3MtYmFzZSAuWE5DcVwrbDRRdWZIdHdEaE9HZGNy RUFcPVw9Ojotd2Via2l0LXNjcm9sbGJhci10cmFjayB7DQogICAgICBiYWNrZ3JvdW5kLWNv bG9yOiB0cmFuc3BhcmVudDsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLlhOQ3FcK2w0 UXVmSHR3RGhPR2RjckVBXD1cPTo6LXdlYmtpdC1zY3JvbGxiYXItYnV0dG9uIHsNCiAgICAg IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7DQogICAgICBjdXJzb3I6IHBvaW50ZXI7 DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5YTkNxXCtsNFF1Zkh0d0RoT0dkY3JFQVw9 XD06Oi13ZWJraXQtc2Nyb2xsYmFyLWJ1dHRvbjp2ZXJ0aWNhbCB7DQogICAgICBiYWNrZ3Jv dW5kLXBvc2l0aW9uOiA1MCU7DQogICAgICB3aWR0aDogMThweDsNCiAgICAgIGhlaWdodDog MThweDsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLlhOQ3FcK2w0UXVmSHR3RGhPR2Rj ckVBXD1cPTo6LXdlYmtpdC1zY3JvbGxiYXItYnV0dG9uOnZlcnRpY2FsOmluY3JlbWVudCB7 DQogICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlW Qk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCQUFBQUFRQ0FZQUFBQWY4LzloQUFBQUFYTlNSMElB cnM0YzZRQUFBQVJuUVUxQkFBQ3hqd3Y4WVFVQUFBQVpkRVZZZEZOdlpuUjNZWEpsQUVGa2Iy SmxJRWx0WVdkbFVtVmhaSGx4eVdVOEFBQUFVVWxFUVZRNFQ2WExNUTZBTUF3RXdmei9iWFJJ Zk9lUUN4Y2tLOGlLWWdxdmZDUEpMeGdOakFaR0E2T0IwVmpDY1Y1NU0vOC9qa2JETXYrVkpi U2RjY0hZdnNZRm80SFJ3R2hnTkRBYUdQZGwzTE5sQm5vZlE0K2JBQUFBQUVsRlRrU3VRbUND KTsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLlhOQ3FcK2w0UXVmSHR3RGhPR2RjckVB XD1cPTo6LXdlYmtpdC1zY3JvbGxiYXItYnV0dG9uOnZlcnRpY2FsOmluY3JlbWVudDpob3Zl ciB7DQogICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0 LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCQUFBQUFRQ0FZQUFBQWY4LzloQUFBQUFYTlNS MElBcnM0YzZRQUFBQVJuUVUxQkFBQ3hqd3Y4WVFVQUFBQVpkRVZZZEZOdlpuUjNZWEpsQUVG a2IySmxJRWx0WVdkbFVtVmhaSGx4eVdVOEFBQUFVa2xFUVZRNFQ2WExzUTJBTUF3RjBleS9B MXN3QW50OTVNSUZ5UWx5b25pRlQvNGp5UzhZRFl3R1JnT2pnZEZZd25GZWVUUC9QNDVHd3pM L2xTVzBuWEhCMkw3R0JhT0IwY0JvWURRd0doajNaZHg4c2Y3cmpPR1Fxd0FBQUFCSlJVNUVy a0pnZ2c9PSk7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5YTkNxXCtsNFF1Zkh0d0Ro T0dkY3JFQVw9XD06Oi13ZWJraXQtc2Nyb2xsYmFyLWJ1dHRvbjp2ZXJ0aWNhbDpkZWNyZW1l bnQgew0KICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2 NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQkFBQUFBUUNBWUFBQUFmOC85aEFBQUFBWE5T UjBJQXJzNGM2UUFBQUFSblFVMUJBQUN4and2OFlRVUFBQUFaZEVWWWRGTnZablIzWVhKbEFF RmtiMkpsSUVsdFlXZGxVbVZoWkhseHlXVThBQUFBVlVsRVFWUTRUNlhNTVFvQUlReEVVZTkv TnJzRnJ6T1NJcUR4Z3p1N3hTdjhaR3lTZnNIb3dPakE2TURvd09qQW1Qb3pGR3BmWVF3NXZu MkNzWTVUdlF0SG9PR3EzbStQTHpBNk1Eb3dPakE2TUw2bk5nRlcrd1o2a1RrNkZBQUFBQUJK UlU1RXJrSmdnZz09KTsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLlhOQ3FcK2w0UXVm SHR3RGhPR2RjckVBXD1cPTo6LXdlYmtpdC1zY3JvbGxiYXItYnV0dG9uOnZlcnRpY2FsOmRl Y3JlbWVudDpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoZGF0YTppbWFn ZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCQUFBQUFRQ0FZQUFBQWY4 LzloQUFBQUFYTlNSMElBcnM0YzZRQUFBQVJuUVUxQkFBQ3hqd3Y4WVFVQUFBQVpkRVZZZEZO dlpuUjNZWEpsQUVGa2IySmxJRWx0WVdkbFVtVmhaSGx4eVdVOEFBQUFWa2xFUVZRNFQ2WE13 UTNBSUF3RVFmcnZnUzVTQW4wZDhzTVNtSlhJSlk5NXNQTFJKUDJDMFlIUmdkR0IwWUhSZ1RI MVp5alV2c0lZY256N0JHTWRwM29YamtERFZiM2ZIbDlnZEdCMFlIUmdkR0I4VDIwQ0IrWCs2 NzV1TFUwQUFBQUFTVVZPUks1Q1lJST0pOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAu WE5DcVwrbDRRdWZIdHdEaE9HZGNyRUFcPVw9Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7 DQogICAgICBib3JkZXItcmFkaXVzOiA5cHg7DQogICAgICBib3JkZXI6IDNweCBzb2xpZCB0 cmFuc3BhcmVudDsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNjY2QzZDY7DQogICAgfQ0K DQogICAgLm8zNjVjcy1iYXNlIC5YTkNxXCtsNFF1Zkh0d0RoT0dkY3JFQVw9XD06Oi13ZWJr aXQtc2Nyb2xsYmFyLXRodW1iOnZlcnRpY2FsIHsNCiAgICAgIG1pbi1oZWlnaHQ6IDUwcHg7 DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5YTkNxXCtsNFF1Zkh0d0RoT0dkY3JFQVw9 XD06Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHsNCiAgICAgIGJhY2tncm91bmQt Y29sb3I6ICM5ZGI0YzQ7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5vRGpOc0tnVTBM b3VTTDJDc3pqb2F3XD1cPSB7DQogICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgZm9udC1m YW1pbHk6IFNlZ29lVUktU2VtaUJvbGQtZmluYWwsIFNlZ29lIFVJIFNlbWlib2xkLA0KICAg ICAgICBTZWdvZVVJLVJlZ3VsYXItZmluYWwsIFNlZ29lIFVJLCAiU2Vnb2UgVUkgV2ViIChX ZXN0IEV1cm9wZWFuKSIsIFNlZ29lLA0KICAgICAgICAtYXBwbGUtc3lzdGVtLCBCbGlua01h Y1N5c3RlbUZvbnQsIFJvYm90bywgSGVsdmV0aWNhIE5ldWUsIFRhaG9tYSwNCiAgICAgICAg SGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZiAhaW1wb3J0YW50Ow0KICAgICAgZm9udC13 ZWlnaHQ6IDYwMDsNCiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7 DQogICAgICBib3JkZXI6IDA7DQogICAgICBwYWRkaW5nOiAwOw0KICAgICAgbWluLXdpZHRo OiAwOw0KICAgICAgaGVpZ2h0OiBhdXRvOw0KICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25l ICFpbXBvcnRhbnQ7DQogICAgICBjdXJzb3I6IHBvaW50ZXI7DQogICAgfQ0KDQogICAgLm8z NjVjcy1iYXNlIC5vRGpOc0tnVTBMb3VTTDJDc3pqb2F3XD1cPT5zcGFuIHsNCiAgICAgIHBh ZGRpbmctYm90dG9tOiAycHg7DQogICAgICB0cmFuc2l0aW9uOiBib3JkZXItYm90dG9tLWNv bG9yIDgzbXMgbGluZWFyOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAub0RqTnNLZ1Uw TG91U0wyQ3N6am9hd1w9XD06aG92ZXI+c3BhbiB7DQogICAgICBib3JkZXItYm90dG9tOiAx cHggc29saWQ7DQogICAgICBwYWRkaW5nLWJvdHRvbTogMXB4Ow0KICAgIH0NCiAgPC9zdHls ZT4NCiAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCiAgICAuXzlpNVJ3VnYwZjAwSkxQUUw3 SVwrWThRXD1cPSB7DQogICAgICB3aWR0aDogMzYwcHg7DQogICAgICBoZWlnaHQ6IGNhbGMo MTAwdmggLSA1MHB4KTsNCiAgICAgIG92ZXJmbG93OiBoaWRkZW47DQogICAgICBwb3NpdGlv bjogZml4ZWQ7DQogICAgICB6LWluZGV4OiAxMDAwMDAwOw0KICAgICAgdG9wOiA1MHB4Ow0K ICAgICAgcmlnaHQ6IDA7DQogICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsNCiAgICB9DQoN CiAgICAuWDZqbU9KYnRQeHJkTGNwTUY3Z2JSZ1w9XD0gaWZyYW1lIHsNCiAgICAgIGhlaWdo dDogMTAwMHB4ICFpbXBvcnRhbnQ7DQogICAgICBvdmVyZmxvdzogaGlkZGVuOw0KICAgICAg cG9zaXRpb246IGFic29sdXRlOw0KICAgIH0NCg0KICAgIC5tZG4zendVakVweGU1WGh2V2RV VVZnXD1cPSB7DQogICAgICBoZWlnaHQ6IGNhbGMoMTAwdmggLSA0OHB4KTsNCiAgICAgIHRv cDogNDhweDsNCiAgICB9DQoNCiAgICAuZjNaTnZKM3QwUG5XQWdvV3Y1TFkyZ1w9XD0gew0K ICAgICAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gOHB4KTsNCiAgICAgIHRvcDogOHB4Ow0KICAg IH0NCg0KICAgIEAtbW96LWRvY3VtZW50IHVybC1wcmVmaXgoKSB7DQogICAgICAuWGxLZlwr aE5JVXNLSjQyUzl5Ylk3cmdcPVw9OmZvY3VzIHsNCiAgICAgICAgb3V0bGluZTogMXB4IGRv dHRlZDsNCiAgICAgIH0NCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLmZIc1M4V0liaEhW RGxQUnljcTFNV3dcPVw9IHsNCiAgICAgIGhlaWdodDogMTAwJTsNCiAgICAgIHBvc2l0aW9u OiBhYnNvbHV0ZTsNCiAgICAgIHJpZ2h0OiAwOw0KICAgICAgei1pbmRleDogMTAwMDAwMDsN CiAgICAgIHdpZHRoOiAzMjBweDsNCiAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7DQogICAg ICBwb2ludGVyLWV2ZW50czogYWxsOw0KICAgICAgYm9yZGVyLXdpZHRoOiAwIDAgMCAxcHg7 DQogICAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsNCiAgICB9DQoNCiAgICAubzM2NWNz LWJhc2UgLnhSRkVhUG13VUxYZEZSZzZ4YjBqSEFcPVw9IHsNCiAgICAgIGJvcmRlci1jb2xv cjogIzAwMDsNCiAgICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHggIWltcG9ydGFudDsNCiAg ICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLl8wdW1cKzBseGtmYXFhXCsyNXJwbWF1ZndcPVw9 IHsNCiAgICAgIGhlaWdodDogMTAwJTsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLlBx OUFwaFwrV2FKaEM2eEhweHJ5S3l3XD1cPSB7DQogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7 DQogICAgICBvdmVyZmxvdy15OiBhdXRvOw0KICAgICAgb3ZlcmZsb3cteDogaGlkZGVuOw0K ICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAuV3RvaGFZV3Z6UzNjZkVvWkY0QnVaQVw9XD0g ew0KICAgICAgLW1zLWZsZXg6IDE7DQogICAgICBmbGV4OiAxOw0KICAgICAgb3ZlcmZsb3ct eDogaGlkZGVuOw0KICAgICAgb3ZlcmZsb3cteTogYXV0bzsNCiAgICAgIC13ZWJraXQtb3Zl cmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDsNCiAgICAgIGhlaWdodDogMTAwJTsNCiAgICB9DQoN CiAgICAubzM2NWNzLWJhc2UgLld0b2hhWVd2elMzY2ZFb1pGNEJ1WkFcPVw9Om5vdCg6LXdl YmtpdC1hbnktbGluaykgew0KICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsNCiAgICB9 DQoNCiAgICAubzM2NWNzLWJhc2UgLlhsS2ZcK2hOSVVzS0o0MlM5eWJZN3JnXD1cPSB7DQog ICAgICBtYXJnaW46IDAgYXV0byAxcHg7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5B QnNVZUlhd05pQXlkWk04VFo5R0hnXD1cPSB7DQogICAgICBoZWlnaHQ6IDQwcHg7DQogICAg ICB3aWR0aDogNDBweDsNCiAgICAgIG1pbi13aWR0aDogMDsNCiAgICAgIHBvc2l0aW9uOiBh YnNvbHV0ZTsNCiAgICAgIHRvcDogMTJweDsNCiAgICAgIGxlZnQ6IGNhbGMoMTAwJSAtIDQ0 cHgpOw0KICAgICAgcGFkZGluZzogNXB4Ow0KICAgICAgYm9yZGVyLXdpZHRoOiAwOw0KICAg ICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7DQogICAgICB0ZXh0LWFsaWduOiBj ZW50ZXI7DQogICAgICBjdXJzb3I6IHBvaW50ZXI7DQogICAgfQ0KDQogICAgLm8zNjVjcy1i YXNlIC5BQnNVZUlhd05pQXlkWk04VFo5R0hnXD1cPTpmb2N1cyB7DQogICAgICBvdXRsaW5l OiAxcHggZG90dGVkOw0KICAgICAgb3V0bGluZTogMXB4IGF1dG8gLXdlYmtpdC1mb2N1cy1y aW5nLWNvbG9yOw0KICAgICAgb3V0bGluZS1zdHlsZTogYXV0bzsNCiAgICB9DQoNCiAgICAu bzM2NWNzLWJhc2UgLmp0MVV2bENyMURUeGU4TVl5YnJpa0FcPVw9IHsNCiAgICAgIC13ZWJr aXQtYW5pbWF0aW9uLW5hbWU6IGZsZXhQYW5lLWZhZGVJbiwgZmxleFBhbmUtc2xpZGVSaWdo dEluOw0KICAgICAgYW5pbWF0aW9uLW5hbWU6IGZsZXhQYW5lLWZhZGVJbiwgZmxleFBhbmUt c2xpZGVSaWdodEluOw0KICAgICAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDAuMjhz Ow0KICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjI4czsNCiAgICAgIC13ZWJraXQtYW5p bWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuOCwgMCwgMC4yLCAxKTsN CiAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjgsIDAs IDAuMiwgMSk7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5fOE9MSDV6Qm9hTDRkV1lF NzNZcWNmQVw9XD0gew0KICAgICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmxleFBhbmUt ZmFkZU91dCwgZmxleFBhbmUtc2xpZGVSaWdodE91dDsNCiAgICAgIGFuaW1hdGlvbi1uYW1l OiBmbGV4UGFuZS1mYWRlT3V0LCBmbGV4UGFuZS1zbGlkZVJpZ2h0T3V0Ow0KICAgICAgLXdl YmtpdC1hbmltYXRpb24tZHVyYXRpb246IDAuMTZzOw0KICAgICAgYW5pbWF0aW9uLWR1cmF0 aW9uOiAwLjE2czsNCiAgICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjog Y3ViaWMtYmV6aWVyKDAuOCwgMCwgMC4yLCAxKTsNCiAgICAgIGFuaW1hdGlvbi10aW1pbmct ZnVuY3Rpb246IGN1YmljLWJlemllcigwLjgsIDAsIDAuMiwgMSk7DQogICAgICAtd2Via2l0 LWFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7DQogICAgICBhbmltYXRpb24tZmlsbC1tb2Rl OiBib3RoOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAuXzJcL1hWRmd5N29PSjJQUmRW MG5iN3hnXD1cPSB7DQogICAgICB2aXNpYmlsaXR5OiBoaWRkZW47DQogICAgfQ0KDQogICAg QC13ZWJraXQta2V5ZnJhbWVzIGZsZXhQYW5lLWZhZGVJbiB7DQogICAgICAwJSB7DQogICAg ICAgIHZpc2liaWxpdHk6IGhpZGRlbjsNCiAgICAgICAgb3BhY2l0eTogMDsNCiAgICAgICAg LXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7DQogICAgICAgIGFu aW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjsNCiAgICAgIH0NCg0KICAgICAgdG8g ew0KICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOw0KICAgICAgICBvcGFjaXR5OiAxOw0K ICAgICAgfQ0KICAgIH0NCg0KICAgIEBrZXlmcmFtZXMgZmxleFBhbmUtZmFkZUluIHsNCiAg ICAgIDAlIHsNCiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuOw0KICAgICAgICBvcGFjaXR5 OiAwOw0KICAgICAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVh cjsNCiAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyOw0KICAgICAg fQ0KDQogICAgICB0byB7DQogICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7DQogICAgICAg IG9wYWNpdHk6IDE7DQogICAgICB9DQogICAgfQ0KDQogICAgQC13ZWJraXQta2V5ZnJhbWVz IGZsZXhQYW5lLWZhZGVPdXQgew0KICAgICAgMCUgew0KICAgICAgICB2aXNpYmlsaXR5OiB2 aXNpYmxlOw0KICAgICAgICBvcGFjaXR5OiAxOw0KICAgICAgICAtd2Via2l0LWFuaW1hdGlv bi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjsNCiAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1m dW5jdGlvbjogbGluZWFyOw0KICAgICAgfQ0KDQogICAgICB0byB7DQogICAgICAgIHZpc2li aWxpdHk6IGhpZGRlbjsNCiAgICAgICAgb3BhY2l0eTogMDsNCiAgICAgIH0NCiAgICB9DQoN CiAgICBAa2V5ZnJhbWVzIGZsZXhQYW5lLWZhZGVPdXQgew0KICAgICAgMCUgew0KICAgICAg ICB2aXNpYmlsaXR5OiB2aXNpYmxlOw0KICAgICAgICBvcGFjaXR5OiAxOw0KICAgICAgICAt d2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjsNCiAgICAgICAgYW5p bWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyOw0KICAgICAgfQ0KDQogICAgICB0byB7 DQogICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjsNCiAgICAgICAgb3BhY2l0eTogMDsNCiAg ICAgIH0NCiAgICB9DQoNCiAgICBALXdlYmtpdC1rZXlmcmFtZXMgZmxleFBhbmUtc2xpZGVS aWdodEluIHsNCiAgICAgIDAlIHsNCiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5z bGF0ZSg4MHB4KTsNCiAgICAgICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlKDgwcHgpOw0K ICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSg4MHB4KTsNCiAgICAgIH0NCg0KICAgICAg dG8gew0KICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDApOw0KICAgICAg ICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCk7DQogICAgICAgIHRyYW5zZm9ybTogdHJh bnNsYXRlKDApOw0KICAgICAgfQ0KICAgIH0NCg0KICAgIEBrZXlmcmFtZXMgZmxleFBhbmUt c2xpZGVSaWdodEluIHsNCiAgICAgIDAlIHsNCiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06 IHRyYW5zbGF0ZSg4MHB4KTsNCiAgICAgICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlKDgw cHgpOw0KICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSg4MHB4KTsNCiAgICAgIH0NCg0K ICAgICAgdG8gew0KICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDApOw0K ICAgICAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCk7DQogICAgICAgIHRyYW5zZm9y bTogdHJhbnNsYXRlKDApOw0KICAgICAgfQ0KICAgIH0NCg0KICAgIEAtd2Via2l0LWtleWZy YW1lcyBmbGV4UGFuZS1zbGlkZVJpZ2h0T3V0IHsNCiAgICAgIDAlIHsNCiAgICAgICAgLXdl YmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwKTsNCiAgICAgICAgLW1zLXRyYW5zZm9ybTog dHJhbnNsYXRlKDApOw0KICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwKTsNCiAgICAg IH0NCg0KICAgICAgdG8gew0KICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRl KDgwcHgpOw0KICAgICAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUoODBweCk7DQogICAg ICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDgwcHgpOw0KICAgICAgfQ0KICAgIH0NCg0KICAg IEBrZXlmcmFtZXMgZmxleFBhbmUtc2xpZGVSaWdodE91dCB7DQogICAgICAwJSB7DQogICAg ICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCk7DQogICAgICAgIC1tcy10cmFu c2Zvcm06IHRyYW5zbGF0ZSgwKTsNCiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCk7 DQogICAgICB9DQoNCiAgICAgIHRvIHsNCiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRy YW5zbGF0ZSg4MHB4KTsNCiAgICAgICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlKDgwcHgp Ow0KICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSg4MHB4KTsNCiAgICAgIH0NCiAgICB9 DQoNCiAgICAubzM2NWNzLWJhc2UgLkpRVXpqUjFCcXpnWVdCRmNIRVBRa1FcPVw9IHsNCiAg ICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZsZXhQYW5lSXRlbS1zbGlkZUNvbnRlbnRJ bjsNCiAgICAgIGFuaW1hdGlvbi1uYW1lOiBmbGV4UGFuZUl0ZW0tc2xpZGVDb250ZW50SW47 DQogICAgICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogMC4yOHM7DQogICAgICBhbmlt YXRpb24tZHVyYXRpb246IDAuMjhzOw0KICAgICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5n LWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC44LCAwLCAwLjIsIDEpOw0KICAgICAgYW5pbWF0 aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuOCwgMCwgMC4yLCAxKTsNCiAg ICAgIC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTogYmFja3dhcmRzOw0KICAgICAgYW5p bWF0aW9uLWZpbGwtbW9kZTogYmFja3dhcmRzOw0KICAgICAgLXdlYmtpdC1hbmltYXRpb24t ZGVsYXk6IDAuMDRzOw0KICAgICAgYW5pbWF0aW9uLWRlbGF5OiAwLjA0czsNCiAgICB9DQoN CiAgICAubzM2NWNzLWJhc2UgLmhqbnY5dFJCeXdJVkxPVlQwcndPcEFcPVw9IHsNCiAgICAg IC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZsZXhQYW5lLWZhZGVPdXQsIGZsZXhQYW5lLXNs aWRlUmlnaHRPdXQ7DQogICAgICBhbmltYXRpb24tbmFtZTogZmxleFBhbmUtZmFkZU91dCwg ZmxleFBhbmUtc2xpZGVSaWdodE91dDsNCiAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0 aW9uOiAwLjE2czsNCiAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMC4xNnM7DQogICAgICAt d2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjgsIDAs IDAuMiwgMSk7DQogICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXpp ZXIoMC44LCAwLCAwLjIsIDEpOw0KICAgICAgLXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2Rl OiBiYWNrd2FyZHM7DQogICAgICBhbmltYXRpb24tZmlsbC1tb2RlOiBiYWNrd2FyZHM7DQog ICAgfQ0KDQogICAgQC13ZWJraXQta2V5ZnJhbWVzIGZsZXhQYW5lSXRlbS1zbGlkZUNvbnRl bnRJbiB7DQogICAgICAwJSB7DQogICAgICAgIG9wYWNpdHk6IDA7DQogICAgICAgIC13ZWJr aXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoODBweCk7DQogICAgICAgIC1tcy10cmFuc2Zvcm06 IHRyYW5zbGF0ZSg4MHB4KTsNCiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoODBweCk7 DQogICAgICB9DQoNCiAgICAgIHRvIHsNCiAgICAgICAgb3BhY2l0eTogMTsNCiAgICAgICAg LXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwKTsNCiAgICAgICAgLW1zLXRyYW5zZm9y bTogdHJhbnNsYXRlKDApOw0KICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwKTsNCiAg ICAgIH0NCiAgICB9DQoNCiAgICBAa2V5ZnJhbWVzIGZsZXhQYW5lSXRlbS1zbGlkZUNvbnRl bnRJbiB7DQogICAgICAwJSB7DQogICAgICAgIG9wYWNpdHk6IDA7DQogICAgICAgIC13ZWJr aXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoODBweCk7DQogICAgICAgIC1tcy10cmFuc2Zvcm06 IHRyYW5zbGF0ZSg4MHB4KTsNCiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoODBweCk7 DQogICAgICB9DQoNCiAgICAgIHRvIHsNCiAgICAgICAgb3BhY2l0eTogMTsNCiAgICAgICAg LXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwKTsNCiAgICAgICAgLW1zLXRyYW5zZm9y bTogdHJhbnNsYXRlKDApOw0KICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwKTsNCiAg ICAgIH0NCiAgICB9DQogIDwvc3R5bGU+DQogIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+DQog ICAgLm8zNjVjcy1iYXNlIC5mNWJhXC84cWdoc2d4amVrd3B0YWk2YVw9XD0gew0KICAgICAg cGFkZGluZy1sZWZ0OiAxNnB4Ow0KICAgICAgcGFkZGluZy1yaWdodDogMTZweDsNCiAgICB9 DQoNCiAgICAubzM2NWNzLWJhc2UgLl82OTkzT1wrZU92S25EMmxvXCtkM1NcL0tRXD1cPSB7 DQogICAgICBmb250OiA2MDAgMjBweCBTZWdvZVVJLVNlbWlCb2xkLWZpbmFsLCBTZWdvZSBV SSBTZW1pYm9sZCwNCiAgICAgICAgU2Vnb2VVSS1SZWd1bGFyLWZpbmFsLCBTZWdvZSBVSSwg IlNlZ29lIFVJIFdlYiAoV2VzdCBFdXJvcGVhbikiLCBTZWdvZSwNCiAgICAgICAgLWFwcGxl LXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBSb2JvdG8sIEhlbHZldGljYSBOZXVlLCBU YWhvbWEsDQogICAgICAgIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7DQogICAgICBk aXNwbGF5OiBpbmxpbmUtYmxvY2s7DQogICAgICBtYXJnaW46IDA7DQogICAgICBsaW5lLWhl aWdodDogMjdweDsNCiAgICAgIHBhZGRpbmctbGVmdDogMTZweDsNCiAgICAgIHBhZGRpbmct dG9wOiAyMHB4Ow0KICAgICAgcGFkZGluZy1ib3R0b206IDE4cHg7DQogICAgICB2ZXJ0aWNh bC1hbGlnbjogbWlkZGxlOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAuXC9xT2t0eWJG NjNCaGlBRVVGSEl1OEFcPVw9IHsNCiAgICAgIGRpc3BsYXk6IGZsZXg7DQogICAgICBmb250 LWZhbWlseTogU2Vnb2VVSS1TZW1pQm9sZC1maW5hbCwgU2Vnb2UgVUkgU2VtaWJvbGQsDQog ICAgICAgIFNlZ29lVUktUmVndWxhci1maW5hbCwgU2Vnb2UgVUksICJTZWdvZSBVSSBXZWIg KFdlc3QgRXVyb3BlYW4pIiwgU2Vnb2UsDQogICAgICAgIC1hcHBsZS1zeXN0ZW0sIEJsaW5r TWFjU3lzdGVtRm9udCwgUm9ib3RvLCBIZWx2ZXRpY2EgTmV1ZSwgVGFob21hLA0KICAgICAg ICBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmICFpbXBvcnRhbnQ7DQogICAgICBmb250 LXdlaWdodDogNjAwOw0KICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFu dDsNCiAgICAgIGJvcmRlcjogMDsNCiAgICAgIG1pbi13aWR0aDogMDsNCiAgICAgIGhlaWdo dDogYXV0bzsNCiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50Ow0KICAg ICAgY3Vyc29yOiBwb2ludGVyOw0KICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOw0KICAg ICAgZm9udC1zaXplOiAxMnB4Ow0KICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsNCiAg ICAgIHBhZGRpbmc6IDEwcHggMCAwIDE2cHg7DQogICAgICB3aWR0aDogYXV0bzsNCiAgICB9 DQoNCiAgICAubzM2NWNzLWJhc2UgLlwvcU9rdHliRjYzQmhpQUVVRkhJdThBXD1cPT5zcGFu IHsNCiAgICAgIHBhZGRpbmctYm90dG9tOiAycHg7DQogICAgICB0cmFuc2l0aW9uOiBib3Jk ZXItYm90dG9tLWNvbG9yIDgzbXMgbGluZWFyOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFz ZSAuXC9xT2t0eWJGNjNCaGlBRVVGSEl1OEFcPVw9OmhvdmVyPnNwYW4gew0KICAgICAgYm9y ZGVyLWJvdHRvbTogMXB4IHNvbGlkOw0KICAgICAgcGFkZGluZy1ib3R0b206IDFweDsNCiAg ICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLk5cK0N3d3hleU5RcUxoSDJ4V3ZXSjh3XD1cPSB7 DQogICAgICBmb250LWZhbWlseTogU2Vnb2VVSS1SZWd1bGFyLWZpbmFsLCBTZWdvZSBVSSwN CiAgICAgICAgIlNlZ29lIFVJIFdlYiAoV2VzdCBFdXJvcGVhbikiLCBTZWdvZSwgLWFwcGxl LXN5c3RlbSwNCiAgICAgICAgQmxpbmtNYWNTeXN0ZW1Gb250LCBSb2JvdG8sIEhlbHZldGlj YSBOZXVlLCBUYWhvbWEsIEhlbHZldGljYSwgQXJpYWwsDQogICAgICAgIHNhbnMtc2VyaWY7 DQogICAgICBmb250LXNpemU6IDE0cHg7DQogICAgICBmb250LXdlaWdodDogNjAwOw0KICAg ICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpOw0KICAgICAgLW1zLXRyYW5zZm9ybTog c2NhbGUoMSk7DQogICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpOw0KICAgIH0NCiAgPC9zdHls ZT4NCiAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCiAgICAuZFE4WExNSXlOeGw4TUFZcU1z VVpGUVw9XD0gew0KICAgICAgd2lkdGg6IDEwMCU7DQogICAgICBoZWlnaHQ6IDUwcHg7DQog ICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgYm9yZGVyLXNwYWNpbmc6IDA7DQogICAgICB3 aGl0ZS1zcGFjZTogbm93cmFwOw0KICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDsNCiAgICB9 DQoNCiAgICAuZFE4WExNSXlOeGw4TUFZcU1zVVpGUVw9XD0gLmhweUhobVNlOWhtazVnb3BM cjlhNVFcPVw9LA0KICAgIC5kUThYTE1JeU54bDhNQVlxTXNVWkZRXD1cPSBhLnJPeVwrSG44 a2lENUo5djVWRENFM0RnXD1cPSB7DQogICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOw0KICAg IH0NCg0KICAgIC5hVThOMzBJTTNHY0tPNEtLejhsZ05BXD1cPSB7DQogICAgICBkaXNwbGF5 OiBub25lICFpbXBvcnRhbnQ7DQogICAgfQ0KDQogICAgLnJlbW92ZUZvY3VzT3V0bGluZSA6 Zm9jdXMgew0KICAgICAgb3V0bGluZTogbm9uZTsNCiAgICAgIGJveC1zaGFkb3c6IG5vbmUg IWltcG9ydGFudDsNCiAgICB9DQoNCiAgICAuY2xnaUxWS1B6dWdaWm5zMExpUFRxd1w9XD0s DQogICAgLlNYR0RmXC9qanpONVl6bjhlTDB3SGpnXD1cPSB7DQogICAgICBkaXNwbGF5OiBi bG9jazsNCiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgICAgIG1hcmdpbjogMDsNCiAg ICAgIHBhZGRpbmc6IDA7DQogICAgICBtaW4td2lkdGg6IDQ4cHg7DQogICAgICB0ZXh0LWFs aWduOiBjZW50ZXI7DQogICAgICBjdXJzb3I6IHBvaW50ZXI7DQogICAgICBvdXRsaW5lLW9m ZnNldDogLTFweDsNCiAgICB9DQoNCiAgICBAbWVkaWEgKC1tcy1oaWdoLWNvbnRyYXN0OiBh Y3RpdmUpLA0KICAgIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpIHsNCg0KICAgICAgLmNsZ2lM VktQenVnWlpuczBMaVBUcXdcPVw9OmZvY3VzLA0KICAgICAgLmNsZ2lMVktQenVnWlpuczBM aVBUcXdcPVw9OmhvdmVyKy5pY29uLA0KICAgICAgLlNYR0RmXC9qanpONVl6bjhlTDB3SGpn XD1cPTpmb2N1cywNCiAgICAgIC5TWEdEZlwvamp6TjVZem44ZUwwd0hqZ1w9XD06aG92ZXIr Lmljb24gew0KICAgICAgICAtbXMtaGlnaC1jb250cmFzdC1hZGp1c3Q6IG5vbmU7DQogICAg ICAgIGZvcmNlZC1jb2xvci1hZGp1c3Q6IG5vbmU7DQogICAgICAgIGJhY2tncm91bmQtY29s b3I6IEhpZ2hsaWdodCAhaW1wb3J0YW50Ow0KICAgICAgICBjb2xvcjogaGlnaGxpZ2h0VGV4 dCAhaW1wb3J0YW50Ow0KICAgICAgfQ0KICAgIH0NCg0KICAgIC5jbGdpTFZLUHp1Z1pabnMw TGlQVHF3XD1cPTpob3ZlciwNCiAgICAuU1hHRGZcL2pqek41WXpuOGVMMHdIamdcPVw9Omhv dmVyIHsNCiAgICAgIC13ZWJraXQtdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjQ2 N3MgY3ViaWMtYmV6aWVyKDAuMSwgMC45LCAwLjIsIDEpIDM0bXM7DQogICAgICB0cmFuc2l0 aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNDY3cyBjdWJpYy1iZXppZXIoMC4xLCAwLjksIDAu MiwgMSkgMzRtczsNCiAgICB9DQoNCiAgICAuU1hHRGZcL2pqek41WXpuOGVMMHdIamdcPVw9 LA0KICAgIC5CaUQwOTZ4a21LOFV4d2M1TVR1T2x3XD1cPSB7DQogICAgICBkaXNwbGF5OiBi bG9jazsNCiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgICAgIG1hcmdpbjogMDsNCiAg ICAgIHBhZGRpbmc6IDA7DQogICAgICBtaW4td2lkdGg6IDQ4cHg7DQogICAgICB0ZXh0LWFs aWduOiBjZW50ZXI7DQogICAgICBjdXJzb3I6IGRlZmF1bHQ7DQogICAgfQ0KDQogICAgQG1l ZGlhICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSwNCiAgICAoZm9yY2VkLWNvbG9yczog YWN0aXZlKSB7DQoNCiAgICAgIC5TWEdEZlwvamp6TjVZem44ZUwwd0hqZ1w9XD06Zm9jdXMs DQogICAgICAuU1hHRGZcL2pqek41WXpuOGVMMHdIamdcPVw9OmhvdmVyKy5pY29uLA0KICAg ICAgLkJpRDA5NnhrbUs4VXh3YzVNVHVPbHdcPVw9OmZvY3VzLA0KICAgICAgLkJpRDA5Nnhr bUs4VXh3YzVNVHVPbHdcPVw9OmhvdmVyKy5pY29uIHsNCiAgICAgICAgLW1zLWhpZ2gtY29u dHJhc3QtYWRqdXN0OiBub25lOw0KICAgICAgICBmb3JjZWQtY29sb3ItYWRqdXN0OiBub25l Ow0KICAgICAgfQ0KICAgIH0NCg0KICAgIC5jbGdpTFZLUHp1Z1pabnMwTGlQVHF3XD1cPSB7 DQogICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsNCiAgICAgIGJvcmRlci13aWR0aDog MDsNCiAgICAgIHdpZHRoOiBhdXRvOw0KICAgICAgaGVpZ2h0OiAxMDAlOw0KICAgICAgYm94 LXNpemluZzogYm9yZGVyLWJveDsNCiAgICAgIG92ZXJmbG93OiB2aXNpYmxlOw0KICAgIH0N Cg0KICAgIC5jbGdpTFZLUHp1Z1pabnMwTGlQVHF3XD1cPSwNCiAgICAuY2xnaUxWS1B6dWda Wm5zMExpUFRxd1w9XD0gc3BhbltjbGFzcyo9IiBtcy1JY29uLS0iXSwNCiAgICAuY2xnaUxW S1B6dWdaWm5zMExpUFRxd1w9XD0gc3BhbltjbGFzc149Im1zLUljb24tLSJdIHsNCiAgICAg IGxpbmUtaGVpZ2h0OiA0OHB4Ow0KICAgIH0NCg0KICAgIEBtZWRpYSAoLW1zLWhpZ2gtY29u dHJhc3Q6IGFjdGl2ZSksDQogICAgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSkgew0KDQogICAg ICAuY2xnaUxWS1B6dWdaWm5zMExpUFRxd1w9XD06Zm9jdXMrLmljb24sDQogICAgICAuY2xn aUxWS1B6dWdaWm5zMExpUFRxd1w9XD06aG92ZXIgew0KICAgICAgICAtbXMtaGlnaC1jb250 cmFzdC1hZGp1c3Q6IG5vbmU7DQogICAgICAgIGZvcmNlZC1jb2xvci1hZGp1c3Q6IG5vbmU7 DQogICAgICAgIGJhY2tncm91bmQtY29sb3I6IEhpZ2hsaWdodCAhaW1wb3J0YW50Ow0KICAg ICAgICBjb2xvcjogaGlnaGxpZ2h0VGV4dCAhaW1wb3J0YW50Ow0KICAgICAgfQ0KICAgIH0N Cg0KICAgIC5CaUQwOTZ4a21LOFV4d2M1TVR1T2x3XD1cPSB7DQogICAgICBiYWNrZ3JvdW5k OiB0cmFuc3BhcmVudDsNCiAgICAgIGJvcmRlci13aWR0aDogMDsNCiAgICAgIHdpZHRoOiBh dXRvOw0KICAgICAgaGVpZ2h0OiAxMDAlOw0KICAgICAgYm94LXNpemluZzogYm9yZGVyLWJv eDsNCiAgICAgIGxpbmUtaGVpZ2h0OiA0OHB4Ow0KICAgICAgb3ZlcmZsb3c6IHZpc2libGU7 DQogICAgICBjdXJzb3I6IGRlZmF1bHQ7DQogICAgfQ0KDQogICAgLkJpRDA5NnhrbUs4VXh3 YzVNVHVPbHdcPVw9IHNwYW5bY2xhc3MqPSIgbXMtSWNvbi0tIl0sDQogICAgLkJpRDA5Nnhr bUs4VXh3YzVNVHVPbHdcPVw9IHNwYW5bY2xhc3NePSJtcy1JY29uLS0iXSB7DQogICAgICBs aW5lLWhlaWdodDogNDhweDsNCiAgICB9DQoNCiAgICBAbWVkaWEgKC1tcy1oaWdoLWNvbnRy YXN0OiBhY3RpdmUpLA0KICAgIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpIHsNCg0KICAgICAg LkJpRDA5NnhrbUs4VXh3YzVNVHVPbHdcPVw9OmZvY3VzKy5pY29uLA0KICAgICAgLkJpRDA5 NnhrbUs4VXh3YzVNVHVPbHdcPVw9OmhvdmVyIHsNCiAgICAgICAgLW1zLWhpZ2gtY29udHJh c3QtYWRqdXN0OiBub25lOw0KICAgICAgICBmb3JjZWQtY29sb3ItYWRqdXN0OiBub25lOw0K ICAgICAgfQ0KICAgIH0NCg0KICAgIC5SR1NiXC8xYzRleDljbTBhczBvYWxxYVw9XD0gew0K ICAgICAgZGlzcGxheTogaW5oZXJpdDsNCiAgICB9DQoNCiAgICAuXC9sMlBBcFViSTVFaEpL MGNtZkhYcWdcPVw9IHsNCiAgICAgIG1pbi13aWR0aDogNjhweDsNCiAgICB9DQoNCiAgICAu U1hHRGZcL2pqek41WXpuOGVMMHdIamdcPVw9IHsNCiAgICAgIGxpbmUtaGVpZ2h0OiA0OHB4 Ow0KICAgIH0NCg0KICAgIC5iZldORVBzMjRkRVNxeXFEbmhcLzd0YVw9XD0gew0KICAgICAg ZGlzcGxheTogaW5saW5lLWJsb2NrOw0KICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsN CiAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6IGN1 cnJlbnRDb2xvcjsNCiAgICAgIG1hcmdpbi1sZWZ0OiAxNnB4Ow0KICAgICAgbWFyZ2luLXJp Z2h0OiA4cHg7DQogICAgICBoZWlnaHQ6IDI4cHg7DQogICAgICB3aWR0aDogMXB4Ow0KICAg IH0NCg0KICAgIGh0bWxbZGlyPSJydGwiXSAuYmZXTkVQczI0ZEVTcXlxRG5oXC83dGFcPVw9 IHsNCiAgICAgIG1hcmdpbi1yaWdodDogMTZweDsNCiAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7 DQogICAgfQ0KDQogICAgLmhweUhobVNlOWhtazVnb3BMcjlhNVFcPVw9IHsNCiAgICAgIGRp c3BsYXk6IGlubGluZS1ibG9jazsNCiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7DQogICAgICBm b250LWZhbWlseTogU2Vnb2VVSS1TZW1pQm9sZC1maW5hbCwgU2Vnb2UgVUkgU2VtaWJvbGQs DQogICAgICAgIFNlZ29lVUktUmVndWxhci1maW5hbCwgU2Vnb2UgVUksICJTZWdvZSBVSSBX ZWIgKFdlc3QgRXVyb3BlYW4pIiwgU2Vnb2UsDQogICAgICAgIC1hcHBsZS1zeXN0ZW0sIEJs aW5rTWFjU3lzdGVtRm9udCwgUm9ib3RvLCBIZWx2ZXRpY2EgTmV1ZSwgVGFob21hLA0KICAg ICAgICBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmOw0KICAgICAgZm9udC1zaXplOiAx NnB4Ow0KICAgICAgbGluZS1oZWlnaHQ6IDQ4cHg7DQogICAgICAtd2Via2l0LWZvbnQtc21v b3RoaW5nOiBhbnRpYWxpYXNlZDsNCiAgICB9DQoNCiAgICAuQXp6VHBiSkYxNVNpb05ENHZ5 bFc4QVw9XD0gew0KICAgICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50Ow0KICAgIH0N Cg0KICAgIC55dkhzSzZJdnVRb3ZQZkptY0FZT09nXD1cPSB7DQogICAgICBkaXNwbGF5OiBm bGV4Ow0KICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsNCiAgICAgIGp1c3RpZnktY29udGVu dDogY2VudGVyOw0KICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAgICAgIHBhZGRpbmc6 IDA7DQogICAgICB3aWR0aDogNDhweDsNCiAgICAgIGhlaWdodDogNDhweDsNCiAgICB9DQoN CiAgICAueXZIc0s2SXZ1UW92UGZKbWNBWU9PZ1w9XD0gYTpmb2N1cy12aXNpYmxlIHsNCiAg ICAgIG91dGxpbmUtb2Zmc2V0OiAxMXB4Ow0KICAgIH0NCg0KICAgIC55dkhzSzZJdnVRb3ZQ ZkptY0FZT09nXD1cPSBpbWcgew0KICAgICAgd2lkdGg6IDI0cHg7DQogICAgICBoZWlnaHQ6 IDI0cHg7DQogICAgICB0b3A6IDEycHg7DQogICAgICBsZWZ0OiAxMnB4Ow0KICAgIH0NCg0K ICAgIC5VYmJOVVwrQ0pTeXBZSGx1SGVkNjFrZ1w9XD0gew0KICAgICAgZGlzcGxheTogaW5s aW5lLWJsb2NrOw0KICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsNCiAgICAgIGZvbnQtc2l6 ZTogMjRweDsNCiAgICAgIG1hcmdpbi10b3A6IDEzcHg7DQogICAgICBtYXJnaW4tbGVmdDog NnB4Ow0KICAgIH0NCg0KICAgIC5VYmJOVVwrQ0pTeXBZSGx1SGVkNjFrZ1w9XD06YmVmb3Jl IHsNCiAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7DQogICAgfQ0KDQogICAgLnE4QWJRT0Jw dXk5M3lCZlRlR2ZOYXdcPVw9IHsNCiAgICAgIG1hcmdpbi1sZWZ0OiAxNHB4Ow0KICAgICAg bWFyZ2luLXJpZ2h0OiAxNHB4Ow0KICAgICAgaGVpZ2h0OiAyNXB4Ow0KICAgICAgbWFyZ2lu LXRvcDogMTJweDsNCiAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkOw0KICAgIH0NCg0K ICAgIGh0bWxbZGlyPSJydGwiXSAuVWJiTlVcK0NKU3lwWUhsdUhlZDYxa2dcPVw9IHsNCiAg ICAgIG1hcmdpbi1sZWZ0OiAwOw0KICAgICAgbWFyZ2luLXJpZ2h0OiA2cHg7DQogICAgfQ0K DQogICAgLmVcL1ZsMGowekhRTWhaVDF2UTZKXCtTUVw9XD0gew0KICAgICAgaGVpZ2h0OiAx MDAlOw0KICAgICAgZGlzcGxheTogZmxleDsNCiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRk bGU7DQogICAgICBvdXRsaW5lLW9mZnNldDogLTFweDsNCiAgICAgIHBhZGRpbmc6IDAgMTJw eCAwIDhweDsNCiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsNCiAgICB9DQoNCiAgICAu ZVwvVmwwajB6SFFNaFpUMXZRNkpcK1NRXD1cPSBhIHsNCiAgICAgIGRpc3BsYXk6IGZsZXg7 DQogICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7DQogICAgICBjb2xvcjogaW5oZXJpdDsN CiAgICB9DQoNCiAgICBodG1sW2Rpcj0icnRsIl0gLmVcL1ZsMGowekhRTWhaVDF2UTZKXCtT UVw9XD0gew0KICAgICAgcGFkZGluZzogMCA4cHggMCAxMnB4Ow0KICAgIH0NCg0KICAgIC5f M3JKQXl5QXRQU0NsMHVvWXJcK3d1TEFcPVw9IHsNCiAgICAgIGxpbmUtaGVpZ2h0OiA0OHB4 Ow0KICAgICAgaGVpZ2h0OiAxMDAlOw0KICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOw0K ICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsNCiAgICAgIHBhZGRpbmctbGVmdDogOHB4Ow0K ICAgIH0NCg0KICAgIGh0bWxbZGlyPSJydGwiXSAuXzNySkF5eUF0UFNDbDB1b1lyXCt3dUxB XD1cPSB7DQogICAgICBwYWRkaW5nLXJpZ2h0OiA4cHg7DQogICAgICBwYWRkaW5nLWxlZnQ6 IDA7DQogICAgfQ0KDQogICAgLnJPeVwrSG44a2lENUo5djVWRENFM0RnXD1cPSB7DQogICAg ICBtYXgtd2lkdGg6IDIwMHB4Ow0KICAgICAgbWF4LWhlaWdodDogNDhweDsNCiAgICAgIG92 ZXJmbG93OiBoaWRkZW47DQogICAgICBsaW5lLWhlaWdodDogNDhweDsNCiAgICAgIGZvbnQt c2l6ZTogMDsNCiAgICAgIGhlaWdodDogMTAwJTsNCiAgICAgIGRpc3BsYXk6IGZsZXg7DQog ICAgICBhbGlnbi1pdGVtczogY2VudGVyOw0KICAgICAganVzdGlmeS1jb250ZW50OiBjZW50 ZXI7DQogICAgfQ0KDQogICAgLnJPeVwrSG44a2lENUo5djVWRENFM0RnXD1cPTpmb2N1cy12 aXNpYmxlIHsNCiAgICAgIG91dGxpbmUtb2Zmc2V0OiAtMnB4Ow0KICAgIH0NCg0KICAgIC5y T3lcK0huOGtpRDVKOXY1VkRDRTNEZ1w9XD0gaW1nIHsNCiAgICAgIG1heC13aWR0aDogMjAw cHg7DQogICAgICBtYXgtaGVpZ2h0OiA0OHB4Ow0KICAgICAgYm9yZGVyLXN0eWxlOiBub25l ICFpbXBvcnRhbnQ7DQogICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOw0KICAgIH0NCg0K ICAgIC50UDZVZFFBeGVmQnUwcnF2MmNoTWVnXD1cPSBpbWcgew0KICAgICAgd2lkdGg6IGF1 dG87DQogICAgICBoZWlnaHQ6IDI0cHg7DQogICAgfQ0KDQogICAgQG1lZGlhICgtbXMtaGln aC1jb250cmFzdDogbm9uZSksDQogICAgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6 IGFjdGl2ZSkgew0KICAgICAgLnRQNlVkUUF4ZWZCdTBycXYyY2hNZWdcPVw9IGltZyB7DQog ICAgICAgIG1heC13aWR0aDogMjAwcHg7DQogICAgICAgIG1heC1oZWlnaHQ6IG5vbmU7DQog ICAgICAgIG1pbi13aWR0aDogMTYwcHg7DQogICAgICAgIHdpZHRoOiAxMDAlOw0KICAgICAg ICBoZWlnaHQ6IDI0cHg7DQogICAgICB9DQogICAgfQ0KDQogICAgQG1lZGlhIChtaW4td2lk dGg6IDY0MHB4KSB7DQogICAgICAuSDd3dDFcL1Q3a2J5ZlNSTloySnpWTEFcPVw9IHsNCiAg ICAgICAgbWF4LXdpZHRoOiAxNzZweDsNCiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25l Ow0KICAgICAgfQ0KICAgIH0NCg0KICAgIC5cL0IxblwvaDZpYkk1d1Z6N2pkRElQMEFcPVw9 IHsNCiAgICAgIGhlaWdodDogMTAwJTsNCiAgICAgIG1heC13aWR0aDogMTc2cHg7DQogICAg ICBkaXNwbGF5OiBmbGV4Ow0KICAgIH0NCg0KICAgIC5IY0tNRVlobUw0dUx5R1wrSzRoeThw Z1w9XD0gew0KICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7DQogICAgICB2ZXJ0aWNhbC1hbGln bjogbWlkZGxlOw0KICAgICAgZGlzcGxheTogdGFibGUtY2VsbDsNCiAgICAgIG92ZXJmbG93 OiBoaWRkZW47DQogICAgICBtYXgtd2lkdGg6IDEyMHB4Ow0KICAgICAgZm9udC1zaXplOiAx NHB4Ow0KICAgICAgZm9udC1mYW1pbHk6IFNlZ29lVUktU2VtaUxpZ2h0LWZpbmFsLCBTZWdv ZSBVSSBTZW1pbGlnaHQsDQogICAgICAgIFNlZ29lVUktUmVndWxhci1maW5hbCwgU2Vnb2Ug VUksICJTZWdvZSBVSSBXZWIgKFdlc3QgRXVyb3BlYW4pIiwgU2Vnb2UsDQogICAgICAgIC1h cHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgUm9ib3RvLCBIZWx2ZXRpY2EgTmV1 ZSwgVGFob21hLA0KICAgICAgICBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmOw0KICAg ICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7DQogICAgICB3b3JkLWJyZWFrOiBicmVhay1h bGw7DQogICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOw0KICAgICAgbWFyZ2luLWxlZnQ6IDRw eDsNCiAgICB9DQoNCiAgICAuSGNLTUVZaG1MNHVMeUdcK0s0aHk4cGdcPVw9PnNwYW4gew0K ICAgICAgcGFkZGluZy1sZWZ0OiA0cHg7DQogICAgICBkaXNwbGF5OiBub25lOw0KICAgIH0N Cg0KICAgIC5VNkNuZm8wUmpYSjhVRXdYaFpWOG1RXD1cPSB7DQogICAgICB0ZXh0LWFsaWdu OiBsZWZ0Ow0KICAgICAgZGlzcGxheTogYmxvY2s7DQogICAgICBvdmVyZmxvdzogaGlkZGVu Ow0KICAgICAgbWF4LXdpZHRoOiAxNjBweDsNCiAgICAgIGZvbnQtc2l6ZTogMTNweDsNCiAg ICAgIGZvbnQtZmFtaWx5OiBTZWdvZVVJLVJlZ3VsYXItZmluYWwsIFNlZ29lIFVJLA0KICAg ICAgICAiU2Vnb2UgVUkgV2ViIChXZXN0IEV1cm9wZWFuKSIsIFNlZ29lLCAtYXBwbGUtc3lz dGVtLA0KICAgICAgICBCbGlua01hY1N5c3RlbUZvbnQsIFJvYm90bywgSGVsdmV0aWNhIE5l dWUsIFRhaG9tYSwgSGVsdmV0aWNhLCBBcmlhbCwNCiAgICAgICAgc2Fucy1zZXJpZjsNCiAg ICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOw0KICAgICAgd29yZC1icmVhazogYnJlYWst YWxsOw0KICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsNCiAgICAgIGxpbmUtaGVpZ2h0OiA0 OHB4Ow0KICAgIH0NCg0KICAgIC5VNkNuZm8wUmpYSjhVRXdYaFpWOG1RXD1cPT5zcGFuIHsN CiAgICAgIHBhZGRpbmctbGVmdDogMTJweDsNCiAgICAgIHBhZGRpbmctcmlnaHQ6IDRweDsN CiAgICAgIGRpc3BsYXk6IG5vbmU7DQogICAgfQ0KDQogICAgaHRtbFtkaXI9InJ0bCJdIC5I Y0tNRVlobUw0dUx5R1wrSzRoeThwZ1w9XD0gew0KICAgICAgdGV4dC1hbGlnbjogbGVmdDsN CiAgICB9DQoNCiAgICBodG1sW2Rpcj0icnRsIl0gLkhjS01FWWhtTDR1THlHXCtLNGh5OHBn XD1cPT5zcGFuIHsNCiAgICAgIHBhZGRpbmctbGVmdDogMDsNCiAgICAgIHBhZGRpbmctcmln aHQ6IDRweDsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0icnRsIl0gLlU2Q25mbzBSalhKOFVF d1hoWlY4bVFcPVw9PnNwYW4gew0KICAgICAgcGFkZGluZy1sZWZ0OiA0cHg7DQogICAgICBw YWRkaW5nLXJpZ2h0OiAxMnB4Ow0KICAgIH0NCg0KICAgIC5OSzZZUTA2MEludUVIMVcxTGJG SjRRXD1cPSB7DQogICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsOw0KICAgICAgYm9yZGVyLWxl ZnQtd2lkdGg6IDAgIWltcG9ydGFudDsNCiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7 DQogICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAg ICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOw0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJy dGwiXSAuTks2WVEwNjBJbnVFSDFXMUxiRko0UVw9XD0gew0KICAgICAgYm9yZGVyLXJpZ2h0 LXdpZHRoOiAwICFpbXBvcnRhbnQ7DQogICAgfQ0KDQogICAgLngwM1J2czNNUTdJZDk0OFR5 aUlrQ1FcPVw9IHsNCiAgICAgIG92ZXJmbG93OiBoaWRkZW47DQogICAgICBkaXNwbGF5OiBp bmxpbmUtYmxvY2s7DQogICAgICBib3JkZXItcmFkaXVzOiA1MCU7DQogICAgICB2ZXJ0aWNh bC1hbGlnbjogbWlkZGxlOw0KICAgICAgZm9udC1zaXplOiA2cHg7DQogICAgfQ0KDQogICAg LngwM1J2czNNUTdJZDk0OFR5aUlrQ1FcPVw9IC5tcy1QZXJzb25hIHsNCiAgICAgIHJpZ2h0 OiAycHg7DQogICAgICB0b3A6IC0ycHg7DQogICAgfQ0KDQogICAgLngwM1J2czNNUTdJZDk0 OFR5aUlrQ1FcPVw9IC5tcy1QZXJzb25hIC5tcy1JbWFnZS1pbWFnZSB7DQogICAgICBvdmVy ZmxvdzogaGlkZGVuOw0KICAgICAgdG9wOiAwOw0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJy dGwiXSAueDAzUnZzM01RN0lkOTQ4VHlpSWtDUVw9XD0gLm1zLVBlcnNvbmEgew0KICAgICAg bGVmdDogMnB4Ow0KICAgICAgcmlnaHQ6IDA7DQogICAgfQ0KDQogICAgLlwrZ0tEeENVUlI1 ZXV3aFZXMk5LMjFnXD1cPSB7DQogICAgICBvdmVyZmxvdzogaGlkZGVuOw0KICAgICAgZGlz cGxheTogaW5saW5lLWJsb2NrOw0KICAgICAgYm9yZGVyOiB0aGluIHNvbGlkOw0KICAgICAg Ym9yZGVyLXJhZGl1czogNTAlOw0KICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsNCiAg ICAgIGZvbnQtc2l6ZTogNnB4Ow0KICAgIH0NCg0KICAgIC51ODVTSWhnRVJMdXFjTVVidDJz NjZBXD1cPSB7DQogICAgICBib3JkZXItcmFkaXVzOiA1MCU7DQogICAgICBsaW5lLWhlaWdo dDogMSAhaW1wb3J0YW50Ow0KICAgIH0NCg0KICAgIC51ODVTSWhnRVJMdXFjTVVidDJzNjZB XD1cPTpiZWZvcmUgew0KICAgICAgbWFyZ2luLXRvcDogMC40ZW07DQogICAgfQ0KDQogICAg LlNQcmRzbUNwWllTMHRndnZkMGNSZ1FcPVw9IHsNCiAgICAgIHdpZHRoOiAzMnB4Ow0KICAg ICAgaGVpZ2h0OiAzMnB4Ow0KICAgICAgZGlzcGxheTogZmxleDsNCiAgICAgIGFsaWduLWl0 ZW1zOiBjZW50ZXI7DQogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsNCiAgICAgIGZv bnQtc2l6ZTogMTNweDsNCiAgICAgIGZvbnQtZmFtaWx5OiBTZWdvZVVJLVJlZ3VsYXItZmlu YWwsIFNlZ29lIFVJLA0KICAgICAgICAiU2Vnb2UgVUkgV2ViIChXZXN0IEV1cm9wZWFuKSIs IFNlZ29lLCAtYXBwbGUtc3lzdGVtLA0KICAgICAgICBCbGlua01hY1N5c3RlbUZvbnQsIFJv Ym90bywgSGVsdmV0aWNhIE5ldWUsIFRhaG9tYSwgSGVsdmV0aWNhLCBBcmlhbCwNCiAgICAg ICAgc2Fucy1zZXJpZjsNCiAgICAgIGJvcmRlcjogMXB4IHNvbGlkOw0KICAgICAgYm94LXNp emluZzogYm9yZGVyLWJveDsNCiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsNCiAgICAgIGxp bmUtaGVpZ2h0OiAxICFpbXBvcnRhbnQ7DQogICAgfQ0KDQogICAgLlNQcmRzbUNwWllTMHRn dnZkMGNSZ1FcPVw9OmJlZm9yZSB7DQogICAgICBtYXJnaW4tdG9wOiAwLjRlbTsNCiAgICB9 DQoNCiAgICAueDAzUnZzM01RN0lkOTQ4VHlpSWtDUVw9XD0sDQogICAgLnU4NVNJaGdFUkx1 cWNNVWJ0MnM2NkFcPVw9LA0KICAgIC5cK2dLRHhDVVJSNWV1d2hWVzJOSzIxZ1w9XD0gew0K ICAgICAgd2lkdGg6IDMycHg7DQogICAgICBoZWlnaHQ6IDMycHg7DQogICAgfQ0KDQogICAg LmllUm9cL09xUFlCN2tmZlJGS3gyYzl3XD1cPSB7DQogICAgICBhbGlnbi1pdGVtczogY2Vu dGVyOw0KICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOw0KICAgICAgbWFy Z2luOiAwOw0KICAgICAgcGFkZGluZzogMDsNCiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsN CiAgICAgIGhlaWdodDogMTAwJTsNCiAgICB9DQoNCiAgICAuXzI1Q3FSVkt3RTM4WDVSSEV4 RDRJeUFcPVw9IHsNCiAgICAgIGRpc3BsYXk6IGZsZXg7DQogICAgICBmbGV4OiAxIDAgYXV0 bzsNCiAgICAgIGhlaWdodDogMTAwJTsNCiAgICB9DQoNCiAgICAuXzF0SnJFamJ2MVFrdnhj XC9QN3IzdFpnXD1cPSB7DQogICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAganVzdGlmeS1j b250ZW50OiBmbGV4LXN0YXJ0Ow0KICAgIH0NCg0KICAgIC5TM1RXYWZRREtEXCszdXFtN2pu eml1Z1w9XD0gew0KICAgICAgZGlzcGxheTogZmxleDsNCiAgICAgIGZsZXg6IDEgMCBhdXRv Ow0KICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7DQogICAgfQ0KDQogICAgLl8xNmxV dlZVSlp3NjhaYzR2Rm84b01RXD1cPSB7DQogICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAg anVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsNCiAgICB9DQoNCiAgICAuSFY2bEM5SjhPVUZw S0pqZkFyMUFzd1w9XD0gew0KICAgICAgZGlzcGxheTogZmxleDsNCiAgICAgIGZsZXg6IDAg MCBhdXRvOw0KICAgIH0NCg0KICAgIC5CaDQ2YjFyZDhCclU0em9sTDlSelVnXD1cPSB7DQog ICAgICBoZWlnaHQ6IDEwMCU7DQogICAgICBsaW5lLWhlaWdodDogNDhweDsNCiAgICAgIGRp c3BsYXk6IGZsZXg7DQogICAgfQ0KDQogICAgLmhka1dDemM2c1JRdWFtRlYwN1kzeFFcPVw9 IHsNCiAgICAgIHJpZ2h0OiAyNHB4Ow0KICAgICAgdG9wOiA4cHg7DQogICAgfQ0KDQogICAg aHRtbFtkaXI9InJ0bCJdIC5oZGtXQ3pjNnNSUXVhbUZWMDdZM3hRXD1cPSB7DQogICAgICBy aWdodDogMDsNCiAgICAgIGxlZnQ6IDI0cHg7DQogICAgfQ0KDQogICAgQC1tb3otZG9jdW1l bnQgdXJsLXByZWZpeCgpIHsNCiAgICAgIC5jbGdpTFZLUHp1Z1pabnMwTGlQVHF3XD1cPTpm b2N1cyB7DQogICAgICAgIG91dGxpbmU6IDFweCBkb3R0ZWQ7DQogICAgICB9DQogICAgfQ0K DQogICAgI08zNjVfTmF2SGVhZGVyIGFiYnIsDQogICAgI08zNjVfTmF2SGVhZGVyIGFkZHJl c3MsDQogICAgI08zNjVfTmF2SGVhZGVyIGFydGljbGUsDQogICAgI08zNjVfTmF2SGVhZGVy IGFzaWRlLA0KICAgICNPMzY1X05hdkhlYWRlciBhdWRpbywNCiAgICAjTzM2NV9OYXZIZWFk ZXIgYiwNCiAgICAjTzM2NV9OYXZIZWFkZXIgYmxvY2txdW90ZSwNCiAgICAjTzM2NV9OYXZI ZWFkZXIgYm9keSwNCiAgICAjTzM2NV9OYXZIZWFkZXIgYm9keSA6Zm9jdXMsDQogICAgI08z NjVfTmF2SGVhZGVyIGJvZHkgZGl2LA0KICAgICNPMzY1X05hdkhlYWRlciBjYXB0aW9uLA0K ICAgICNPMzY1X05hdkhlYWRlciBjaXRlLA0KICAgICNPMzY1X05hdkhlYWRlciBjb2RlLA0K ICAgICNPMzY1X05hdkhlYWRlciBkZCwNCiAgICAjTzM2NV9OYXZIZWFkZXIgZGVsLA0KICAg ICNPMzY1X05hdkhlYWRlciBkZXRhaWxzLA0KICAgICNPMzY1X05hdkhlYWRlciBkZm4sDQog ICAgI08zNjVfTmF2SGVhZGVyIGRsLA0KICAgICNPMzY1X05hdkhlYWRlciBkdCwNCiAgICAj TzM2NV9OYXZIZWFkZXIgZW0sDQogICAgI08zNjVfTmF2SGVhZGVyIGZpZWxkc2V0LA0KICAg ICNPMzY1X05hdkhlYWRlciBmaWd1cmUsDQogICAgI08zNjVfTmF2SGVhZGVyIGZvb3RlciwN CiAgICAjTzM2NV9OYXZIZWFkZXIgZm9ybSwNCiAgICAjTzM2NV9OYXZIZWFkZXIgaDEsDQog ICAgI08zNjVfTmF2SGVhZGVyIGgyLA0KICAgICNPMzY1X05hdkhlYWRlciBoMywNCiAgICAj TzM2NV9OYXZIZWFkZXIgaDQsDQogICAgI08zNjVfTmF2SGVhZGVyIGg1LA0KICAgICNPMzY1 X05hdkhlYWRlciBoNiwNCiAgICAjTzM2NV9OYXZIZWFkZXIgaGVhZGVyLA0KICAgICNPMzY1 X05hdkhlYWRlciBodG1sLA0KICAgICNPMzY1X05hdkhlYWRlciBpLA0KICAgICNPMzY1X05h dkhlYWRlciBpZnJhbWUsDQogICAgI08zNjVfTmF2SGVhZGVyIGltZywNCiAgICAjTzM2NV9O YXZIZWFkZXIgaW5zLA0KICAgICNPMzY1X05hdkhlYWRlciBrYmQsDQogICAgI08zNjVfTmF2 SGVhZGVyIGxhYmVsLA0KICAgICNPMzY1X05hdkhlYWRlciBsZWdlbmQsDQogICAgI08zNjVf TmF2SGVhZGVyIGxpLA0KICAgICNPMzY1X05hdkhlYWRlciBtYXJrLA0KICAgICNPMzY1X05h dkhlYWRlciBtZW51LA0KICAgICNPMzY1X05hdkhlYWRlciBuYXYsDQogICAgI08zNjVfTmF2 SGVhZGVyIG9iamVjdCwNCiAgICAjTzM2NV9OYXZIZWFkZXIgb2wsDQogICAgI08zNjVfTmF2 SGVhZGVyIHAsDQogICAgI08zNjVfTmF2SGVhZGVyIHByZSwNCiAgICAjTzM2NV9OYXZIZWFk ZXIgcSwNCiAgICAjTzM2NV9OYXZIZWFkZXIgc2FtcCwNCiAgICAjTzM2NV9OYXZIZWFkZXIg c2VjdGlvbiwNCiAgICAjTzM2NV9OYXZIZWFkZXIgc21hbGwsDQogICAgI08zNjVfTmF2SGVh ZGVyIHN0cm9uZywNCiAgICAjTzM2NV9OYXZIZWFkZXIgc3ViLA0KICAgICNPMzY1X05hdkhl YWRlciBzdW1tYXJ5LA0KICAgICNPMzY1X05hdkhlYWRlciBzdXAsDQogICAgI08zNjVfTmF2 SGVhZGVyIHRhYmxlLA0KICAgICNPMzY1X05hdkhlYWRlciB0Ym9keSwNCiAgICAjTzM2NV9O YXZIZWFkZXIgdGQsDQogICAgI08zNjVfTmF2SGVhZGVyIHRmb290LA0KICAgICNPMzY1X05h dkhlYWRlciB0aCwNCiAgICAjTzM2NV9OYXZIZWFkZXIgdGhlYWQsDQogICAgI08zNjVfTmF2 SGVhZGVyIHRpbWUsDQogICAgI08zNjVfTmF2SGVhZGVyIHRyLA0KICAgICNPMzY1X05hdkhl YWRlciB1bCwNCiAgICAjTzM2NV9OYXZIZWFkZXIgdmFyLA0KICAgICNPMzY1X05hdkhlYWRl ciB2aWRlbywNCiAgICAjTzM2NWZwY29udGFpbmVyaWQgYWJiciwNCiAgICAjTzM2NWZwY29u dGFpbmVyaWQgYWRkcmVzcywNCiAgICAjTzM2NWZwY29udGFpbmVyaWQgYXJ0aWNsZSwNCiAg ICAjTzM2NWZwY29udGFpbmVyaWQgYXNpZGUsDQogICAgI08zNjVmcGNvbnRhaW5lcmlkIGF1 ZGlvLA0KICAgICNPMzY1ZnBjb250YWluZXJpZCBiLA0KICAgICNPMzY1ZnBjb250YWluZXJp ZCBibG9ja3F1b3RlLA0KICAgICNPMzY1ZnBjb250YWluZXJpZCBib2R5LA0KICAgICNPMzY1 ZnBjb250YWluZXJpZCBib2R5IDpmb2N1cywNCiAgICAjTzM2NWZwY29udGFpbmVyaWQgYm9k eSBkaXYsDQogICAgI08zNjVmcGNvbnRhaW5lcmlkIGNhcHRpb24sDQogICAgI08zNjVmcGNv bnRhaW5lcmlkIGNpdGUsDQogICAgI08zNjVmcGNvbnRhaW5lcmlkIGNvZGUsDQogICAgI08z NjVmcGNvbnRhaW5lcmlkIGRkLA0KICAgICNPMzY1ZnBjb250YWluZXJpZCBkZWwsDQogICAg I08zNjVmcGNvbnRhaW5lcmlkIGRldGFpbHMsDQogICAgI08zNjVmcGNvbnRhaW5lcmlkIGRm biwNCiAgICAjTzM2NWZwY29udGFpbmVyaWQgZGwsDQogICAgI08zNjVmcGNvbnRhaW5lcmlk IGR0LA0KICAgICNPMzY1ZnBjb250YWluZXJpZCBlbSwNCiAgICAjTzM2NWZwY29udGFpbmVy aWQgZmllbGRzZXQsDQogICAgI08zNjVmcGNvbnRhaW5lcmlkIGZpZ3VyZSwNCiAgICAjTzM2 NWZwY29udGFpbmVyaWQgZm9vdGVyLA0KICAgICNPMzY1ZnBjb250YWluZXJpZCBmb3JtLA0K ICAgICNPMzY1ZnBjb250YWluZXJpZCBoMSwNCiAgICAjTzM2NWZwY29udGFpbmVyaWQgaDIs DQogICAgI08zNjVmcGNvbnRhaW5lcmlkIGgzLA0KICAgICNPMzY1ZnBjb250YWluZXJpZCBo NCwNCiAgICAjTzM2NWZwY29udGFpbmVyaWQgaDUsDQogICAgI08zNjVmcGNvbnRhaW5lcmlk IGg2LA0KICAgICNPMzY1ZnBjb250YWluZXJpZCBoZWFkZXIsDQogICAgI08zNjVmcGNvbnRh aW5lcmlkIGh0bWwsDQogICAgI08zNjVmcGNvbnRhaW5lcmlkIGksDQogICAgI08zNjVmcGNv bnRhaW5lcmlkIGlmcmFtZSwNCiAgICAjTzM2NWZwY29udGFpbmVyaWQgaW1nLA0KICAgICNP MzY1ZnBjb250YWluZXJpZCBpbnMsDQogICAgI08zNjVmcGNvbnRhaW5lcmlkIGtiZCwNCiAg ICAjTzM2NWZwY29udGFpbmVyaWQgbGFiZWwsDQogICAgI08zNjVmcGNvbnRhaW5lcmlkIGxl Z2VuZCwNCiAgICAjTzM2NWZwY29udGFpbmVyaWQgbGksDQogICAgI08zNjVmcGNvbnRhaW5l cmlkIG1hcmssDQogICAgI08zNjVmcGNvbnRhaW5lcmlkIG1lbnUsDQogICAgI08zNjVmcGNv bnRhaW5lcmlkIG5hdiwNCiAgICAjTzM2NWZwY29udGFpbmVyaWQgb2JqZWN0LA0KICAgICNP MzY1ZnBjb250YWluZXJpZCBvbCwNCiAgICAjTzM2NWZwY29udGFpbmVyaWQgcCwNCiAgICAj TzM2NWZwY29udGFpbmVyaWQgcHJlLA0KICAgICNPMzY1ZnBjb250YWluZXJpZCBxLA0KICAg ICNPMzY1ZnBjb250YWluZXJpZCBzYW1wLA0KICAgICNPMzY1ZnBjb250YWluZXJpZCBzZWN0 aW9uLA0KICAgICNPMzY1ZnBjb250YWluZXJpZCBzbWFsbCwNCiAgICAjTzM2NWZwY29udGFp bmVyaWQgc3Ryb25nLA0KICAgICNPMzY1ZnBjb250YWluZXJpZCBzdWIsDQogICAgI08zNjVm cGNvbnRhaW5lcmlkIHN1bW1hcnksDQogICAgI08zNjVmcGNvbnRhaW5lcmlkIHN1cCwNCiAg ICAjTzM2NWZwY29udGFpbmVyaWQgdGFibGUsDQogICAgI08zNjVmcGNvbnRhaW5lcmlkIHRi b2R5LA0KICAgICNPMzY1ZnBjb250YWluZXJpZCB0ZCwNCiAgICAjTzM2NWZwY29udGFpbmVy aWQgdGZvb3QsDQogICAgI08zNjVmcGNvbnRhaW5lcmlkIHRoLA0KICAgICNPMzY1ZnBjb250 YWluZXJpZCB0aGVhZCwNCiAgICAjTzM2NWZwY29udGFpbmVyaWQgdGltZSwNCiAgICAjTzM2 NWZwY29udGFpbmVyaWQgdHIsDQogICAgI08zNjVmcGNvbnRhaW5lcmlkIHVsLA0KICAgICNP MzY1ZnBjb250YWluZXJpZCB2YXIsDQogICAgI08zNjVmcGNvbnRhaW5lcmlkIHZpZGVvLA0K ICAgIC5vMzY1c2hlbGwtcG9wdXAgYWJiciwNCiAgICAubzM2NXNoZWxsLXBvcHVwIGFkZHJl c3MsDQogICAgLm8zNjVzaGVsbC1wb3B1cCBhcnRpY2xlLA0KICAgIC5vMzY1c2hlbGwtcG9w dXAgYXNpZGUsDQogICAgLm8zNjVzaGVsbC1wb3B1cCBhdWRpbywNCiAgICAubzM2NXNoZWxs LXBvcHVwIGIsDQogICAgLm8zNjVzaGVsbC1wb3B1cCBibG9ja3F1b3RlLA0KICAgIC5vMzY1 c2hlbGwtcG9wdXAgYm9keSwNCiAgICAubzM2NXNoZWxsLXBvcHVwIGJvZHkgOmZvY3VzLA0K ICAgIC5vMzY1c2hlbGwtcG9wdXAgYm9keSBkaXYsDQogICAgLm8zNjVzaGVsbC1wb3B1cCBj YXB0aW9uLA0KICAgIC5vMzY1c2hlbGwtcG9wdXAgY2l0ZSwNCiAgICAubzM2NXNoZWxsLXBv cHVwIGNvZGUsDQogICAgLm8zNjVzaGVsbC1wb3B1cCBkZCwNCiAgICAubzM2NXNoZWxsLXBv cHVwIGRlbCwNCiAgICAubzM2NXNoZWxsLXBvcHVwIGRldGFpbHMsDQogICAgLm8zNjVzaGVs bC1wb3B1cCBkZm4sDQogICAgLm8zNjVzaGVsbC1wb3B1cCBkbCwNCiAgICAubzM2NXNoZWxs LXBvcHVwIGR0LA0KICAgIC5vMzY1c2hlbGwtcG9wdXAgZW0sDQogICAgLm8zNjVzaGVsbC1w b3B1cCBmaWVsZHNldCwNCiAgICAubzM2NXNoZWxsLXBvcHVwIGZpZ3VyZSwNCiAgICAubzM2 NXNoZWxsLXBvcHVwIGZvb3RlciwNCiAgICAubzM2NXNoZWxsLXBvcHVwIGZvcm0sDQogICAg Lm8zNjVzaGVsbC1wb3B1cCBoMSwNCiAgICAubzM2NXNoZWxsLXBvcHVwIGgyLA0KICAgIC5v MzY1c2hlbGwtcG9wdXAgaDMsDQogICAgLm8zNjVzaGVsbC1wb3B1cCBoNCwNCiAgICAubzM2 NXNoZWxsLXBvcHVwIGg1LA0KICAgIC5vMzY1c2hlbGwtcG9wdXAgaDYsDQogICAgLm8zNjVz aGVsbC1wb3B1cCBoZWFkZXIsDQogICAgLm8zNjVzaGVsbC1wb3B1cCBodG1sLA0KICAgIC5v MzY1c2hlbGwtcG9wdXAgaSwNCiAgICAubzM2NXNoZWxsLXBvcHVwIGlmcmFtZSwNCiAgICAu bzM2NXNoZWxsLXBvcHVwIGltZywNCiAgICAubzM2NXNoZWxsLXBvcHVwIGlucywNCiAgICAu bzM2NXNoZWxsLXBvcHVwIGtiZCwNCiAgICAubzM2NXNoZWxsLXBvcHVwIGxhYmVsLA0KICAg IC5vMzY1c2hlbGwtcG9wdXAgbGVnZW5kLA0KICAgIC5vMzY1c2hlbGwtcG9wdXAgbGksDQog ICAgLm8zNjVzaGVsbC1wb3B1cCBtYXJrLA0KICAgIC5vMzY1c2hlbGwtcG9wdXAgbWVudSwN CiAgICAubzM2NXNoZWxsLXBvcHVwIG5hdiwNCiAgICAubzM2NXNoZWxsLXBvcHVwIG9iamVj dCwNCiAgICAubzM2NXNoZWxsLXBvcHVwIG9sLA0KICAgIC5vMzY1c2hlbGwtcG9wdXAgcCwN CiAgICAubzM2NXNoZWxsLXBvcHVwIHByZSwNCiAgICAubzM2NXNoZWxsLXBvcHVwIHEsDQog ICAgLm8zNjVzaGVsbC1wb3B1cCBzYW1wLA0KICAgIC5vMzY1c2hlbGwtcG9wdXAgc2VjdGlv biwNCiAgICAubzM2NXNoZWxsLXBvcHVwIHNtYWxsLA0KICAgIC5vMzY1c2hlbGwtcG9wdXAg c3Ryb25nLA0KICAgIC5vMzY1c2hlbGwtcG9wdXAgc3ViLA0KICAgIC5vMzY1c2hlbGwtcG9w dXAgc3VtbWFyeSwNCiAgICAubzM2NXNoZWxsLXBvcHVwIHN1cCwNCiAgICAubzM2NXNoZWxs LXBvcHVwIHRhYmxlLA0KICAgIC5vMzY1c2hlbGwtcG9wdXAgdGJvZHksDQogICAgLm8zNjVz aGVsbC1wb3B1cCB0ZCwNCiAgICAubzM2NXNoZWxsLXBvcHVwIHRmb290LA0KICAgIC5vMzY1 c2hlbGwtcG9wdXAgdGgsDQogICAgLm8zNjVzaGVsbC1wb3B1cCB0aGVhZCwNCiAgICAubzM2 NXNoZWxsLXBvcHVwIHRpbWUsDQogICAgLm8zNjVzaGVsbC1wb3B1cCB0ciwNCiAgICAubzM2 NXNoZWxsLXBvcHVwIHVsLA0KICAgIC5vMzY1c2hlbGwtcG9wdXAgdmFyLA0KICAgIC5vMzY1 c2hlbGwtcG9wdXAgdmlkZW8gew0KICAgICAgYm94LXNpemluZzogY29udGVudC1ib3g7DQog ICAgfQ0KICA8L3N0eWxlPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KICAgIC5Fc1M1 OTR0d2xNZGJFSk9QSm82VURnXD1cPSB7DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQog ICAgICB6LWluZGV4OiAxMDAwMDAwOw0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsN CiAgICAgIHdpZHRoOiAzMjBweDsNCiAgICAgIG1pbi13aWR0aDogMzIwcHg7DQogICAgICBt YXgtd2lkdGg6IDMyMHB4Ow0KICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsNCiAgICAg IG91dGxpbmU6IG5vbmU7DQogICAgICBvdmVyZmxvdy15OiBhdXRvOw0KICAgICAgdmlzaWJp bGl0eTogdmlzaWJsZTsNCiAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOw0KICAgICAgYm9y ZGVyOiAxcHggc29saWQgI2Y0ZjRmNDsNCiAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsNCiAg ICAgIGJveC1zaGFkb3c6IDAgOHB4IDE2cHggMCByZ2JhKDAsIDAsIDAsIDAuMSk7DQogICAg ICBhbmltYXRpb24tZHVyYXRpb246IDAuMTVzOw0KICAgICAgYW5pbWF0aW9uLW5hbWU6IGNv bnRleHRNZW51LXNsaWRlSW47DQogICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBj dWJpYy1iZXppZXIoMCwgMCwgMCwgMSk7DQogICAgICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3A7 DQogICAgICBkaXNwbGF5OiBibG9jazsNCiAgICAgIG1pbi13aWR0aDogMTgwcHggIWltcG9y dGFudDsNCiAgICAgIG91dGxpbmUtd2lkdGg6IDA7DQogICAgICBvdXRsaW5lLWNvbG9yOiBp bnZlcnQ7DQogICAgfQ0KDQogICAgLnUxMHNVSEsxZ2t5V1BKQXZoeVNCcndcPVw9IHsNCiAg ICAgIG1hcmdpbjogMDsNCiAgICAgIHBhZGRpbmc6IDA7DQogICAgICBsaXN0LXN0eWxlOiBu b25lOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAuZ0w3WUxGczU1REJGSEdtMGFBbHZh d1w9XD0gew0KICAgICAgd2lkdGg6IDEwMCU7DQogICAgICBoZWlnaHQ6IDEwMCU7DQogICAg ICBwYWRkaW5nLXJpZ2h0OiA0MHB4Ow0KICAgICAgb3ZlcmZsb3cteTogYXV0bzsNCiAgICAg IG92ZXJmbG93LXg6IGhpZGRlbjsNCiAgICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94Ow0K ICAgICAgcG9zaXRpb246IHJlbGF0aXZlOw0KICAgIH0NCg0KICAgIEBrZXlmcmFtZXMgY29u dGV4dE1lbnUtc2xpZGVJbiB7DQogICAgICAwJSB7DQogICAgICAgIG9wYWNpdHk6IDA7DQog ICAgICAgIHRyYW5zZm9ybTogc2NhbGVZKDAuOTMpOw0KICAgICAgfQ0KDQogICAgICB0byB7 DQogICAgICAgIG9wYWNpdHk6IDE7DQogICAgICAgIHRyYW5zZm9ybTogc2NhbGVZKDEpOw0K ICAgICAgfQ0KICAgIH0NCiAgPC9zdHlsZT4NCiAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4N CiAgICAuZUdFMDh6OGFJZkFrR2U4QnZrZmVTd1w9XD0gew0KICAgICAgcG9zaXRpb246IGFi c29sdXRlOw0KICAgICAgei1pbmRleDogMTAwMDAwMDsNCiAgICAgIGJhY2tncm91bmQtY29s b3I6ICNmZmY7DQogICAgICB3aWR0aDogMzIwcHg7DQogICAgICBtaW4td2lkdGg6IDMyMHB4 Ow0KICAgICAgbWF4LXdpZHRoOiAzMjBweDsNCiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1i b3g7DQogICAgICBvdXRsaW5lOiBub25lOw0KICAgICAgb3ZlcmZsb3cteTogYXV0bzsNCiAg ICAgIHZpc2liaWxpdHk6IHZpc2libGU7DQogICAgICBwb2ludGVyLWV2ZW50czogYXV0bzsN CiAgICB9DQoNCiAgICAuSlBkWmE5cjhFSFZ3TzJuc1V4cVNjQVw9XD0gew0KICAgICAgei1p bmRleDogMTAwMDAwMTsNCiAgICAgIHBvc2l0aW9uOiBmaXhlZDsNCiAgICB9DQogIDwvc3R5 bGU+DQogIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+DQogICAgLm8zNjVjcy1iYXNlIC5xTGJu WHJycGIxSlB0XCt4MHF1WlwrUVFcPVw9IHsNCiAgICAgIGZvbnQtc2l6ZTogMTRweDsNCiAg ICAgIGRpc3BsYXk6IGJsb2NrOw0KICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsNCiAg ICAgIG1hcmdpbjogMXB4Ow0KICAgICAgcGFkZGluZzogNnB4Ow0KICAgICAgdGV4dC1hbGln bjogbGVmdDsNCiAgICAgIGhlaWdodDogMzJweDsNCiAgICAgIGxpbmUtaGVpZ2h0OiBub3Jt YWw7DQogICAgICBhbmltYXRpb24tbmFtZTogY29udGV4dE1lbnVJdGVtLXNsaWRlSW47DQog ICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7DQogICAgICB0cmFuc2l0 aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDgzbXMgbGluZWFyOw0KICAgICAgYm9yZGVyLXN0eWxl OiBub25lOw0KICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsNCiAgICAgIHdoaXRlLXNwYWNlOiBu b3dyYXA7DQogICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsNCiAgICB9DQoNCiAgICAu bzM2NWNzLWJhc2UgLnFMYm5YcnJwYjFKUHRcK3gwcXVaXCtRUVw9XD06YWN0aXZlLA0KICAg IC5vMzY1Y3MtYmFzZSAucUxiblhycnBiMUpQdFwreDBxdVpcK1FRXD1cPTpmb2N1cywNCiAg ICAubzM2NWNzLWJhc2UgLnFMYm5YcnJwYjFKUHRcK3gwcXVaXCtRUVw9XD06aG92ZXIgew0K ICAgICAgb3V0bGluZTogbm9uZTsNCiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29s b3IgMC4xNjdzIGxpbmVhcjsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLnFMYm5YcnJw YjFKUHRcK3gwcXVaXCtRUVw9XD06YWN0aXZlOmZvY3VzLA0KICAgIC5vMzY1Y3MtYmFzZSAu cUxiblhycnBiMUpQdFwreDBxdVpcK1FRXD1cPTpmb2N1czpmb2N1cywNCiAgICAubzM2NWNz LWJhc2UgLnFMYm5YcnJwYjFKUHRcK3gwcXVaXCtRUVw9XD06aG92ZXI6Zm9jdXMgew0KICAg ICAgYmFja2dyb3VuZC1jb2xvcjogI2UwZGZkZDsNCiAgICAgIGNvbG9yOiAjMDAwOw0KICAg IH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAucUxiblhycnBiMUpQdFwreDBxdVpcK1FRXD1cPTph Y3RpdmU6Zm9jdXM6Zm9jdXMsDQogICAgLm8zNjVjcy1iYXNlIC5xTGJuWHJycGIxSlB0XCt4 MHF1WlwrUVFcPVw9OmZvY3VzOmZvY3VzOmZvY3VzLA0KICAgIC5vMzY1Y3MtYmFzZSAucUxi blhycnBiMUpQdFwreDBxdVpcK1FRXD1cPTpob3Zlcjpmb2N1czpmb2N1cyB7DQogICAgICBv dXRsaW5lOiAxcHggZG90dGVkOw0KICAgICAgb3V0bGluZTogMXB4IGF1dG8gLXdlYmtpdC1m b2N1cy1yaW5nLWNvbG9yOw0KICAgICAgb3V0bGluZS1zdHlsZTogYXV0bzsNCiAgICB9DQoN CiAgICBAbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IHdoaXRlLW9uLWJs YWNrKSB7DQoNCiAgICAgIC5vMzY1Y3MtYmFzZSAucUxiblhycnBiMUpQdFwreDBxdVpcK1FR XD1cPTphY3RpdmUsDQogICAgICAubzM2NWNzLWJhc2UgLnFMYm5YcnJwYjFKUHRcK3gwcXVa XCtRUVw9XD06Zm9jdXMsDQogICAgICAubzM2NWNzLWJhc2UgLnFMYm5YcnJwYjFKUHRcK3gw cXVaXCtRUVw9XD06aG92ZXIgew0KICAgICAgICAtbXMtaGlnaC1jb250cmFzdC1hZGp1c3Q6 IG5vbmU7DQogICAgICAgIGNvbG9yOiAjZmZmOw0KICAgICAgfQ0KDQogICAgICAubzM2NWNz LWJhc2UgLnFMYm5YcnJwYjFKUHRcK3gwcXVaXCtRUVw9XD06YWN0aXZlOmZvY3VzLA0KICAg ICAgLm8zNjVjcy1iYXNlIC5xTGJuWHJycGIxSlB0XCt4MHF1WlwrUVFcPVw9OmFjdGl2ZTpo b3ZlciwNCiAgICAgIC5vMzY1Y3MtYmFzZSAucUxiblhycnBiMUpQdFwreDBxdVpcK1FRXD1c PTpmb2N1czpmb2N1cywNCiAgICAgIC5vMzY1Y3MtYmFzZSAucUxiblhycnBiMUpQdFwreDBx dVpcK1FRXD1cPTpmb2N1czpob3ZlciwNCiAgICAgIC5vMzY1Y3MtYmFzZSAucUxiblhycnBi MUpQdFwreDBxdVpcK1FRXD1cPTpob3Zlcjpmb2N1cywNCiAgICAgIC5vMzY1Y3MtYmFzZSAu cUxiblhycnBiMUpQdFwreDBxdVpcK1FRXD1cPTpob3Zlcjpob3ZlciB7DQogICAgICAgIGNv bG9yOiAjMDAwOw0KICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWFlYmZmOw0KICAgICAg fQ0KICAgIH0NCg0KICAgIEBtZWRpYSBzY3JlZW4gYW5kICgtbXMtaGlnaC1jb250cmFzdDog YmxhY2stb24td2hpdGUpIHsNCg0KICAgICAgLm8zNjVjcy1iYXNlIC5xTGJuWHJycGIxSlB0 XCt4MHF1WlwrUVFcPVw9OmFjdGl2ZSwNCiAgICAgIC5vMzY1Y3MtYmFzZSAucUxiblhycnBi MUpQdFwreDBxdVpcK1FRXD1cPTpmb2N1cywNCiAgICAgIC5vMzY1Y3MtYmFzZSAucUxiblhy cnBiMUpQdFwreDBxdVpcK1FRXD1cPTpob3ZlciB7DQogICAgICAgIC1tcy1oaWdoLWNvbnRy YXN0LWFkanVzdDogbm9uZTsNCiAgICAgICAgY29sb3I6ICMwMDA7DQogICAgICB9DQoNCiAg ICAgIC5vMzY1Y3MtYmFzZSAucUxiblhycnBiMUpQdFwreDBxdVpcK1FRXD1cPTphY3RpdmU6 Zm9jdXMsDQogICAgICAubzM2NWNzLWJhc2UgLnFMYm5YcnJwYjFKUHRcK3gwcXVaXCtRUVw9 XD06YWN0aXZlOmhvdmVyLA0KICAgICAgLm8zNjVjcy1iYXNlIC5xTGJuWHJycGIxSlB0XCt4 MHF1WlwrUVFcPVw9OmZvY3VzOmZvY3VzLA0KICAgICAgLm8zNjVjcy1iYXNlIC5xTGJuWHJy cGIxSlB0XCt4MHF1WlwrUVFcPVw9OmZvY3VzOmhvdmVyLA0KICAgICAgLm8zNjVjcy1iYXNl IC5xTGJuWHJycGIxSlB0XCt4MHF1WlwrUVFcPVw9OmhvdmVyOmZvY3VzLA0KICAgICAgLm8z NjVjcy1iYXNlIC5xTGJuWHJycGIxSlB0XCt4MHF1WlwrUVFcPVw9OmhvdmVyOmhvdmVyIHsN CiAgICAgICAgY29sb3I6ICNmZmY7DQogICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMzNzAw NmU7DQogICAgICB9DQogICAgfQ0KDQogICAgQG1lZGlhIChob3Zlcjogbm9uZSksDQogICAg KHBvaW50ZXI6IGNvYXJzZSkgew0KDQogICAgICAubzM2NWNzLWJhc2UgLnFMYm5YcnJwYjFK UHRcK3gwcXVaXCtRUVw9XD06Zm9jdXMsDQogICAgICAubzM2NWNzLWJhc2UgLnFMYm5YcnJw YjFKUHRcK3gwcXVaXCtRUVw9XD06Zm9jdXMtdmlzaWJsZSB7DQogICAgICAgIGJvcmRlcjog MnB4IHNvbGlkIGhpZ2hsaWdodDsNCiAgICAgICAgcGFkZGluZzogNHB4Ow0KICAgICAgfQ0K ICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAucUxiblhycnBiMUpQdFwreDBxdVpcK1FRXD1c PTpudGgtY2hpbGQoMikgew0KICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjA1czsNCiAg ICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLnFMYm5YcnJwYjFKUHRcK3gwcXVaXCtRUVw9XD06 bnRoLWNoaWxkKDMpIHsNCiAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogNjdtczsNCiAgICB9 DQoNCiAgICAubzM2NWNzLWJhc2UgLnFMYm5YcnJwYjFKUHRcK3gwcXVaXCtRUVw9XD06bnRo LWNoaWxkKG4gKyA0KSB7DQogICAgICBhbmltYXRpb24tZHVyYXRpb246IDgzbXM7DQogICAg fQ0KDQogICAgLm8zNjVjcy1iYXNlIC5xTGJuWHJycGIxSlB0XCt4MHF1WlwrUVFcPVw9Pmxh YmVsIHsNCiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7DQogICAgICBtYXJnaW46IDA7DQogICAg ICBwYWRkaW5nOiAwOw0KICAgICAgZm9udC1zaXplOiAxNHB4Ow0KICAgICAgbGluZS1oZWln aHQ6IG5vcm1hbDsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLnFxY0I0bldncmkyNnZG TEwweUhMSHdcPVw9IHsNCiAgICAgIHRyYW5zaXRpb246IGNvbG9yIDgzbXMgbGluZWFyOw0K ICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOw0KICAgICAgdmVydGljYWwtYWxpZ246IG1p ZGRsZTsNCiAgICAgIHBhZGRpbmctcmlnaHQ6IDZweDsNCiAgICAgIHBhZGRpbmctYm90dG9t OiAycHg7DQogICAgICB3aWR0aDogMjBweDsNCiAgICAgIGhlaWdodDogMjBweDsNCiAgICB9 DQoNCiAgICBAa2V5ZnJhbWVzIGNvbnRleHRNZW51SXRlbS1zbGlkZUluIHsNCiAgICAgIDAl IHsNCiAgICAgICAgb3BhY2l0eTogMDsNCiAgICAgIH0NCg0KICAgICAgdG8gew0KICAgICAg ICBvcGFjaXR5OiAxOw0KICAgICAgfQ0KICAgIH0NCiAgPC9zdHlsZT4NCiAgPHN0eWxlIHR5 cGU9InRleHQvY3NzIj4NCiAgICAuTTNwY0I1ZXZTQXRZTW96Y2sxV1U3QVw9XD0gew0KICAg ICAgaGVpZ2h0OiAxMDAlOw0KICAgICAgbGluZS1oZWlnaHQ6IDQ4cHg7DQogICAgICBkaXNw bGF5OiBmbGV4Ow0KICAgIH0NCg0KICAgIC5fMVFTSzVsVWh3NUdraDdTRHo5N1pQUVw9XD0g ew0KICAgICAgaGVpZ2h0OiA0OHB4Ow0KICAgICAgZGlzcGxheTogZmxleDsNCiAgICB9DQoN CiAgICAuc2lVTU9Kd251bXljeHZzekJlM3V6UVw9XD0gew0KICAgICAgZGlzcGxheTogaW5o ZXJpdDsNCiAgICAgIGZsZXg6IGluaGVyaXQ7DQogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGlu aGVyaXQ7DQogICAgICBvcmRlcjogaW5oZXJpdDsNCiAgICAgIGFsaWduLXNlbGY6IGluaGVy aXQ7DQogICAgICBtaW4td2lkdGg6IGluaGVyaXQ7DQogICAgfQ0KDQogICAgLlwvRHlNWWoy Z05mUHJZTmJFV29WMlwvd1w9XD0gew0KICAgICAgZm9udC1zaXplOiAxNHB4Ow0KICAgICAg Zm9udC1mYW1pbHk6IFNlZ29lVUktUmVndWxhci1maW5hbCwgU2Vnb2UgVUksDQogICAgICAg ICJTZWdvZSBVSSBXZWIgKFdlc3QgRXVyb3BlYW4pIiwgU2Vnb2UsIC1hcHBsZS1zeXN0ZW0s DQogICAgICAgIEJsaW5rTWFjU3lzdGVtRm9udCwgUm9ib3RvLCBIZWx2ZXRpY2EgTmV1ZSwg VGFob21hLCBIZWx2ZXRpY2EsIEFyaWFsLA0KICAgICAgICBzYW5zLXNlcmlmOw0KICAgICAg dGV4dC1hbGlnbjogbGVmdDsNCiAgICAgIGhlaWdodDogNDhweDsNCiAgICAgIGxpbmUtaGVp Z2h0OiA0OHB4Ow0KICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsNCiAgICAgIHBhZGRpbmct bGVmdDogOHB4Ow0KICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXMgIWltcG9ydGFudDsN CiAgICAgIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDsNCiAgICAgIG1heC13aWR0aDog MjIwcHg7DQogICAgICBjdXJzb3I6IHBvaW50ZXI7DQogICAgfQ0KDQogICAgQG1lZGlhICgt bXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSwNCiAgICAoZm9yY2VkLWNvbG9yczogYWN0aXZl KSB7DQoNCiAgICAgIC5cL0R5TVlqMmdOZlByWU5iRVdvVjJcL3dcPVw9OmZvY3VzLA0KICAg ICAgLlwvRHlNWWoyZ05mUHJZTmJFV29WMlwvd1w9XD06aG92ZXIgew0KICAgICAgICAtbXMt aGlnaC1jb250cmFzdC1hZGp1c3Q6IG5vbmU7DQogICAgICAgIGZvcmNlZC1jb2xvci1hZGp1 c3Q6IG5vbmU7DQogICAgICAgIGJhY2tncm91bmQtY29sb3I6IEhpZ2hsaWdodCAhaW1wb3J0 YW50Ow0KICAgICAgICBjb2xvcjogaGlnaGxpZ2h0VGV4dCAhaW1wb3J0YW50Ow0KICAgICAg fQ0KICAgIH0NCg0KICAgIC5OOUI1XC9MXC9LSEh2VDlXT0JBYjFiZUFcPVw9IHsNCiAgICAg IHBhZGRpbmctbGVmdDogMTJweCAhaW1wb3J0YW50Ow0KICAgICAgcGFkZGluZy1yaWdodDog MTJweCAhaW1wb3J0YW50Ow0KICAgICAganVzdGlmeS1jb250ZW50OiByaWdodCAhaW1wb3J0 YW50Ow0KICAgICAgZGlzcGxheTogZmxleDsNCiAgICB9DQogIDwvc3R5bGU+DQogIDxzdHls ZSB0eXBlPSJ0ZXh0L2NzcyI+DQogICAgLm8zNjVjcy1iYXNlLm94cWdUQzNwU1JoT2ZyZ0hm WVVyZndcPVw9IHsNCiAgICAgIHBhZGRpbmctYm90dG9tOiAycHg7DQogICAgICB3aWR0aDog YXV0bzsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLk1QOXlcK09DVVEwRHN5Nlo2QTBQ N3FnXD1cPSB7DQogICAgICBwYWRkaW5nOiAxMnB4IDIwcHggMTJweCA4cHg7DQogICAgICBm b250LWZhbWlseTogU2Vnb2VVSS1SZWd1bGFyLWZpbmFsLCBTZWdvZSBVSSwNCiAgICAgICAg IlNlZ29lIFVJIFdlYiAoV2VzdCBFdXJvcGVhbikiLCBTZWdvZSwgLWFwcGxlLXN5c3RlbSwN CiAgICAgICAgQmxpbmtNYWNTeXN0ZW1Gb250LCBSb2JvdG8sIEhlbHZldGljYSBOZXVlLCBU YWhvbWEsIEhlbHZldGljYSwgQXJpYWwsDQogICAgICAgIHNhbnMtc2VyaWY7DQogICAgICBm b250LXdlaWdodDogNDAwOw0KICAgICAgbGluZS1oZWlnaHQ6IDE2cHg7DQogICAgICBvdmVy ZmxvdzogaGlkZGVuOw0KICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7DQogICAgICB3 aGl0ZS1zcGFjZTogbm93cmFwOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAuVTNCQlF1 XCsyeGhnMHV1ZHhzXC9uOFwrZ1w9XD0gew0KICAgICAgZGlzcGxheTogImlubGluZS1ibG9j ayI7DQogICAgICBmb250LXNpemU6IDE2cHg7DQogICAgICBwYWRkaW5nLXJpZ2h0OiAxNnB4 Ow0KICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsNCiAgICB9DQoNCiAgICAubzM2NWNz LWJhc2UgLlNpXCtGMU5FeWwzOWF6a2Jzd2c3Zzh3XD1cPSB7DQogICAgICBwYWRkaW5nLWxl ZnQ6IDE2cHg7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5fMjFiNGtCekhrZHBXQ2dD Z0FcK1ZSbFFcPVw9IHsNCiAgICAgIGxlZnQ6IDE2cHg7DQogICAgICB0b3A6IDhweDsNCiAg ICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLkZkQzVDZ05lMnFRQlhHYk9LbE51ZXdcPVw9IHsN CiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7DQogICAgICBtYXgtd2lkdGg6IDQ4 cHg7DQogICAgfQ0KICA8L3N0eWxlPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KICAg IC5vMzY1Y3MtYmFzZSAuclNEbmd5NTBDNGhMdmpONzdSM2RiQVw9XD0gew0KICAgICAgaGVp Z2h0OiAxMDAlOw0KICAgIH0NCiAgPC9zdHlsZT4NCiAgPHN0eWxlIHR5cGU9InRleHQvY3Nz Ij4NCiAgICAubzM2NWNzLWJhc2UgLnFOb1wvc04yM2NoRUJVZTBIOEhuMEhBXD1cPSB7DQog ICAgICBwYWRkaW5nLXRvcDogMTRweDsNCiAgICAgIHBhZGRpbmctYm90dG9tOiAxNXB4Ow0K ICAgICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjEp Ow0KICAgICAgYm94LXNoYWRvdzogMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xKTsNCiAg ICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLkYwTzlVaDJwZTlnMkFZMEc4aFwvXCtJZ1w9XD0g ew0KICAgICAgaGVpZ2h0OiAxMDAlOw0KICAgICAgZGlzcGxheTogdGFibGUtY2VsbDsNCiAg ICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNl IC5fOXZES05MdjJwMHJPMEp1UFVBYk8yUVw9XD0gew0KICAgICAgb3V0bGluZTogbm9uZTsN CiAgICAgIHdpZHRoOiAxMDAlOw0KICAgICAgaGVpZ2h0OiAxMDAlOw0KICAgICAgZGlzcGxh eTogdGFibGU7DQogICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOw0KICAgICAgd2hpdGUt c3BhY2U6IG5vd3JhcDsNCiAgICAgIGZvbnQ6IDYwMCAxNHB4IFNlZ29lVUktU2VtaUJvbGQt ZmluYWwsIFNlZ29lIFVJIFNlbWlib2xkLA0KICAgICAgICBTZWdvZVVJLVJlZ3VsYXItZmlu YWwsIFNlZ29lIFVJLCAiU2Vnb2UgVUkgV2ViIChXZXN0IEV1cm9wZWFuKSIsIFNlZ29lLA0K ICAgICAgICAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIFJvYm90bywgSGVs dmV0aWNhIE5ldWUsIFRhaG9tYSwNCiAgICAgICAgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1z ZXJpZjsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLkNkUFpmbFRyWFdIRWljcFhYUzZB bFFcPVw9IHsNCiAgICAgIGhlaWdodDogODhweDsNCiAgICAgIGRpc3BsYXk6IGlubGluZS1i bG9jazsNCiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50Ow0KICAgICAgYmFja2dyb3Vu ZC1jb2xvcjogdHJhbnNwYXJlbnQ7DQogICAgICBib3JkZXItd2lkdGg6IDA7DQogICAgICBw YWRkaW5nOiAwOw0KICAgICAgd2lkdGg6IDg4cHg7DQogICAgfQ0KDQogICAgLm8zNjVjcy1i YXNlIC5fOEVpeUlRYkMyamRhTzBFT1dEbHVqQVw9XD0gew0KICAgICAgb3ZlcmZsb3c6IGhp ZGRlbjsNCiAgICAgIHdpZHRoOiA4OHB4Ow0KICAgICAgaGVpZ2h0OiA4OHB4Ow0KICAgICAg cG9zaXRpb246IHJlbGF0aXZlOw0KICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsNCiAg ICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLl84RWl5SVFiQzJqZGFPMEVPV0RsdWpBXD1cPSAu bXMtUGVyc29uYSB7DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgICB0b3A6IDA7 DQogICAgICBsZWZ0OiAwOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAuXzhFaXlJUWJD MmpkYU8wRU9XRGx1akFcPVw9IC5tcy1QZXJzb25hIC5tcy1JbWFnZS1pbWFnZSB7DQogICAg ICBvdmVyZmxvdzogaGlkZGVuOw0KICAgICAgdG9wOiAwOw0KICAgIH0NCg0KICAgIC5vMzY1 Y3MtYmFzZSAuTXB2dEhsVWthb3ZaY3VPaVhCbmUzQVw9XD0gew0KICAgICAgYm9yZGVyLXJh ZGl1czogNTAlOw0KICAgICAgdGV4dC1hbGlnbjogY2VudGVyOw0KICAgICAgd2lkdGg6IDg4 cHg7DQogICAgICBoZWlnaHQ6IDg4cHg7DQogICAgICBvdmVyZmxvdzogaGlkZGVuOw0KICAg ICAgYmFja2dyb3VuZC1jb2xvcjogI2E2YTZhNjsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJh c2UgLk1wdnRIbFVrYW92WmN1T2lYQm5lM0FcPVw9OmJlZm9yZSB7DQogICAgICBtYXJnaW4t dG9wOiAxN3B4Ow0KICAgICAgcGFkZGluZy1yaWdodDogMnB4Ow0KICAgIH0NCg0KICAgIC5v MzY1Y3MtYmFzZSAuRVQ5MHE5ZVo4dGM4WlhQQW83NllsZ1w9XD0gew0KICAgICAgYm9yZGVy LXJhZGl1czogNTAlOw0KICAgICAgZm9udC1zaXplOiAzMnB4Ow0KICAgICAgdGV4dC1hbGln bjogY2VudGVyOw0KICAgICAgbGluZS1oZWlnaHQ6IDg4cHggIWltcG9ydGFudDsNCiAgICAg IGNvbG9yOiAjZmZmOw0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAw LjYpOw0KICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICAgbGVmdDogMDsNCiAgICAg IHRvcDogMDsNCiAgICAgIHdpZHRoOiAxMDAlOw0KICAgICAgY3Vyc29yOiBwb2ludGVyOw0K ICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAuRVQ5MHE5ZVo4dGM4WlhQQW83NllsZ1w9XD06 YWN0aXZlIHsNCiAgICAgIGNvbG9yOiAjYmViYmI4Ow0KICAgIH0NCg0KICAgIC5vMzY1Y3Mt YmFzZSAuU2FxVmVjVWpvTmIwS0VCZTIxNmIyQVw9XD0gew0KICAgICAgbWF4LXdpZHRoOiAy MTRweDsNCiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7DQogICAgICBwYWRkaW5nLWxlZnQ6 IDEwcHg7DQogICAgICBvdmVyZmxvdzogaGlkZGVuOw0KICAgICAgZGlzcGxheTogdGFibGUt Y2VsbDsNCiAgICAgIGxpbmUtaGVpZ2h0OiA4OHB4Ow0KICAgICAgdmVydGljYWwtYWxpZ246 IG1pZGRsZTsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLmhOTGl4VGhcK0Nsb1BweTEw bVlzOXR3XD1cPSwNCiAgICAubzM2NWNzLWJhc2UgLnBXVlZYcnJNQllqWHByTWoyNnBrOFFc PVw9IHsNCiAgICAgIGRpc3BsYXk6IGJsb2NrOw0KICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsN CiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOw0KICAgICAgZm9udDogNjAwIDE2cHgg U2Vnb2VVSS1TZW1pQm9sZC1maW5hbCwgU2Vnb2UgVUkgU2VtaWJvbGQsDQogICAgICAgIFNl Z29lVUktUmVndWxhci1maW5hbCwgU2Vnb2UgVUksICJTZWdvZSBVSSBXZWIgKFdlc3QgRXVy b3BlYW4pIiwgU2Vnb2UsDQogICAgICAgIC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVt Rm9udCwgUm9ib3RvLCBIZWx2ZXRpY2EgTmV1ZSwgVGFob21hLA0KICAgICAgICBIZWx2ZXRp Y2EsIEFyaWFsLCBzYW5zLXNlcmlmOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAucFdW Vlhyck1CWWpYcHJNajI2cGs4UVw9XD0gew0KICAgICAgZm9udDogMTRweCBTZWdvZVVJLVJl Z3VsYXItZmluYWwsIFNlZ29lIFVJLA0KICAgICAgICAiU2Vnb2UgVUkgV2ViIChXZXN0IEV1 cm9wZWFuKSIsIFNlZ29lLCAtYXBwbGUtc3lzdGVtLA0KICAgICAgICBCbGlua01hY1N5c3Rl bUZvbnQsIFJvYm90bywgSGVsdmV0aWNhIE5ldWUsIFRhaG9tYSwgSGVsdmV0aWNhLCBBcmlh bCwNCiAgICAgICAgc2Fucy1zZXJpZjsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLlwr QnVVU041SjZYRTRPUVdwUXhjamxRXD1cPSB7DQogICAgICBjb2xvcjogIzEwNmViZTsNCiAg ICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLlwrQnVVU041SjZYRTRPUVdwUXhjamxRXD1cPSBk aXYgew0KICAgICAgbGluZS1oZWlnaHQ6IDMwcHg7DQogICAgfQ0KDQogICAgLm8zNjVjcy1i YXNlIC5cK0J1VVNONUo2WEU0T1FXcFF4Y2psUVw9XD0gZGl2IGEgew0KICAgICAgZm9udC1z aXplOiAxNHB4Ow0KICAgICAgZm9udC1mYW1pbHk6IFNlZ29lVUktUmVndWxhci1maW5hbCwg U2Vnb2UgVUksDQogICAgICAgICJTZWdvZSBVSSBXZWIgKFdlc3QgRXVyb3BlYW4pIiwgU2Vn b2UsIC1hcHBsZS1zeXN0ZW0sDQogICAgICAgIEJsaW5rTWFjU3lzdGVtRm9udCwgUm9ib3Rv LCBIZWx2ZXRpY2EgTmV1ZSwgVGFob21hLCBIZWx2ZXRpY2EsIEFyaWFsLA0KICAgICAgICBz YW5zLXNlcmlmOw0KICAgICAgcGFkZGluZzogMDsNCiAgICAgIHRleHQtZGVjb3JhdGlvbjog bm9uZTsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLlwrQnVVU041SjZYRTRPUVdwUXhj amxRXD1cPSBkaXYgew0KICAgICAgbWFyZ2luLXRvcDogNHB4Ow0KICAgICAgbGluZS1oZWln aHQ6IDE5cHg7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5cK0J1VVNONUo2WEU0T1FX cFF4Y2psUVw9XD0gZGl2OmhvdmVyIHsNCiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJs aW5lOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAuam5VcUd0bHFPSkZpYmV1U0hFVlFc L3dcPVw9IHsNCiAgICAgIGNvbG9yOiAjOGE4ODg2Ow0KICAgIH0NCg0KICAgIC5vMzY1Y3Mt YmFzZSAuZEFOTkVVZFwvNmdjdXNoY3d3bzR2bWdcPVw9IHsNCiAgICAgIGRpc3BsYXk6IGlu bGluZTsNCiAgICAgIG1hcmdpbi1yaWdodDogMzBweDsNCiAgICB9DQoNCiAgICAubzM2NWNz LWJhc2UgLlZYMUVsUElNekZNRno5Q1wvV2lQTlwrQVw9XD0gew0KICAgICAgY29sb3I6ICNm ZmY7DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgfQ0KDQogICAgLm8zNjVjcy1i YXNlIC5nRDdEMEl2QjJMSzREdHBLSFBcL2tjZ1w9XD0gew0KICAgICAgcG9zaXRpb246IGFi c29sdXRlOw0KICAgICAgcmlnaHQ6IDI0cHg7DQogICAgICBib3R0b206IDI0cHg7DQogICAg fQ0KDQogICAgLm8zNjVjcy1iYXNlIC5cL21PbFdqQXFQZjJXcW9SQnZSSTZUQVw9XD0gew0K ICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICAgcmlnaHQ6IDIwcHg7DQogICAgICBi b3R0b206IDM4cHg7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC56YllnVlpMSmtwd2wz QW9PUVdxN1ZnXD1cPSB7DQogICAgICB3aWR0aDogOHB4Ow0KICAgICAgaGVpZ2h0OiA4cHg7 DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgICB6LWluZGV4OiAyOw0KICAgICAg cGFkZGluZy10b3A6IDIycHg7DQogICAgICBwYWRkaW5nLWxlZnQ6IDRweDsNCiAgICB9DQoN CiAgICAubzM2NWNzLWJhc2UgLmVaZUZvTzk3ajd2dElIQTdhNElRSlFcPVw9IHsNCiAgICAg IHdpZHRoOiAxNnB4Ow0KICAgICAgaGVpZ2h0OiAxNnB4Ow0KICAgICAgcG9zaXRpb246IGFi c29sdXRlOw0KICAgICAgei1pbmRleDogMjsNCiAgICAgIHBhZGRpbmctbGVmdDogNHB4Ow0K ICAgICAgcGFkZGluZy10b3A6IDRweDsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLnNY eXRrcWpkamYweHZqbjVUMlJMZUFcPVw9IHsNCiAgICAgIHdpZHRoOiAxNnB4Ow0KICAgICAg aGVpZ2h0OiAxNnB4Ow0KICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICAgei1pbmRl eDogMjsNCiAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7DQogICAgfQ0KDQogICAgLm8zNjVj cy1iYXNlIC5sXCtoTk45VlVMS3F4QXpiZWluT2oyUVw9XD0gew0KICAgICAgY29sb3I6ICNm ZmY7DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgICBsZWZ0OiAycHg7DQogICAg ICB0b3A6IDJweDsNCiAgICB9DQogIDwvc3R5bGU+DQogIDxzdHlsZSB0eXBlPSJ0ZXh0L2Nz cyI+DQogICAgLm9oY2ZYWWg2TFVCeTVEUzVrTlVqUlFcPVw9IHsNCiAgICAgIHBvc2l0aW9u OiByZWxhdGl2ZTsNCiAgICAgIG92ZXJmbG93OiBoaWRkZW47DQogICAgICBib3JkZXItcmFk aXVzOiA1MCU7DQogICAgICB3aWR0aDogMTAwJTsNCiAgICAgIGhlaWdodDogMTAwJTsNCiAg ICB9DQoNCiAgICAuXzhaWVpLdnhDOGJ2dzF4Z1FHU2t2dkFcPVw9IHsNCiAgICAgIHBvc2l0 aW9uOiBhYnNvbHV0ZTsNCiAgICAgIGxlZnQ6IDA7DQogICAgICB0b3A6IDA7DQogICAgICBk aXNwbGF5OiBpbmxpbmUtYmxvY2s7DQogICAgICBsaW5lLWhlaWdodDogbm9ybWFsOw0KICAg IH0NCg0KICAgIC5NY1wrZmlBZEpUdUtLU1wreUpMTjNyRFFcPVw9LA0KICAgIC5fOFpZWkt2 eEM4YnZ3MXhnUUdTa3Z2QVw9XD0sDQogICAgLl84WllaS3Z4QzhidncxeGdRR1NrdnZBXD1c PSBpbWcgew0KICAgICAgd2lkdGg6IDEwMCU7DQogICAgICBoZWlnaHQ6IDEwMCU7DQogICAg fQ0KDQogICAgLk1jXCtmaUFkSlR1S0tTXCt5SkxOM3JEUVw9XD0gew0KICAgICAgcG9zaXRp b246IGFic29sdXRlOw0KICAgICAgbGVmdDogMDsNCiAgICAgIHRvcDogMDsNCiAgICAgIGJv cmRlci1yYWRpdXM6IDUwJTsNCiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsNCiAgICAgIGRp c3BsYXk6IGlubGluZS1ibG9jazsNCiAgICAgIGNvbG9yOiAjZmZmOw0KICAgICAgZm9udC1m YW1pbHk6IFNlZ29lVUktU2VtaUxpZ2h0LWZpbmFsLCBTZWdvZSBVSSBTZW1pbGlnaHQsDQog ICAgICAgIFNlZ29lVUktUmVndWxhci1maW5hbCwgU2Vnb2UgVUksICJTZWdvZSBVSSBXZWIg KFdlc3QgRXVyb3BlYW4pIiwgU2Vnb2UsDQogICAgICAgIC1hcHBsZS1zeXN0ZW0sIEJsaW5r TWFjU3lzdGVtRm9udCwgUm9ib3RvLCBIZWx2ZXRpY2EgTmV1ZSwgVGFob21hLA0KICAgICAg ICBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmOw0KICAgICAgbGluZS1oZWlnaHQ6IDE5 NSU7DQogICAgfQ0KDQogICAgLk9MbG83V0JZYjdISlRHZkd5VmtpV1FcPVw9IHsNCiAgICAg IGZvbnQtc2l6ZTogMTNweCAhaW1wb3J0YW50Ow0KICAgICAgZm9udC1mYW1pbHk6IFNlZ29l VUktUmVndWxhci1maW5hbCwgU2Vnb2UgVUksDQogICAgICAgICJTZWdvZSBVSSBXZWIgKFdl c3QgRXVyb3BlYW4pIiwgU2Vnb2UsIC1hcHBsZS1zeXN0ZW0sDQogICAgICAgIEJsaW5rTWFj U3lzdGVtRm9udCwgUm9ib3RvLCBIZWx2ZXRpY2EgTmV1ZSwgVGFob21hLCBIZWx2ZXRpY2Es IEFyaWFsLA0KICAgICAgICBzYW5zLXNlcmlmOw0KICAgICAgbGluZS1oZWlnaHQ6IG5vcm1h bCAhaW1wb3J0YW50Ow0KICAgICAgZGlzcGxheTogZmxleDsNCiAgICAgIGFsaWduLWl0ZW1z OiBjZW50ZXI7DQogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsNCiAgICB9DQoNCiAg ICAuQ3NhNjliMWR1aWZLcGs3RGQxZG5ZUVw9XD0sDQogICAgLk9MbG83V0JZYjdISlRHZkd5 VmtpV1FcPVw9IHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBv cnRhbnQ7DQogICAgICBib3JkZXI6IDFweCBzb2xpZDsNCiAgICAgIGJveC1zaXppbmc6IGJv cmRlci1ib3g7DQogICAgfQ0KDQogICAgLkNzYTY5YjFkdWlmS3BrN0RkMWRuWVFcPVw9IHsN CiAgICAgIGNvbG9yOiBpbmhlcml0ICFpbXBvcnRhbnQ7DQogICAgfQ0KDQogICAgLmxNSEtX TndcK2RDSm5NRGU5XCt3b09lQVw9XD0gew0KICAgICAgZGlzcGxheTogZmxleCAhaW1wb3J0 YW50Ow0KICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAgICAgIGp1c3RpZnktY29udGVu dDogY2VudGVyOw0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2E2YTZhNjsNCiAgICAgIGZv bnQtc2l6ZTogNmVtOw0KICAgIH0NCg0KICAgIC5sTUhLV053XCtkQ0puTURlOVwrd29PZUFc PVw9LA0KICAgIC5BVnhPN243eFZDMHJcK1Vwc0dlUEV5Z1w9XD0gew0KICAgICAgcG9zaXRp b246IGFic29sdXRlOw0KICAgICAgbGVmdDogMDsNCiAgICAgIHRvcDogMDsNCiAgICAgIGJv cmRlci1yYWRpdXM6IDUwJTsNCiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsNCiAgICAgIHdp ZHRoOiAxMDAlOw0KICAgICAgaGVpZ2h0OiAxMDAlOw0KICAgICAgb3ZlcmZsb3c6IGhpZGRl bjsNCiAgICB9DQoNCiAgICAuQVZ4TzduN3hWQzByXCtVcHNHZVBFeWdcPVw9IHsNCiAgICAg IGxpbmUtaGVpZ2h0OiAxICFpbXBvcnRhbnQ7DQogICAgICBmb250LXNpemU6IDE4cHg7DQog ICAgICBtYXJnaW4tdG9wOiAxcHg7DQogICAgfQ0KDQogICAgLkFWeE83bjd4VkMwclwrVXBz R2VQRXlnXD1cPTpiZWZvcmUgew0KICAgICAgbWFyZ2luLXRvcDogMC40ZW07DQogICAgfQ0K ICA8L3N0eWxlPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KICAgIC5fMDd0TEdSWU1c Lzg5ZDdlbGFpYnVkbXdcPVw9IHsNCiAgICAgIHRvcDogMTAwJTsNCiAgICAgIG1heC13aWR0 aDogMTg0cHg7DQogICAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50Ow0KICAgICAgcGFkZGlu ZzogOHB4IDA7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5aZnV2c2dTbVBoTUFxcXJ2 NTV5T01BXD1cPSB7DQogICAgICBmb250OiA0MDAgMTRweCBTZWdvZVVJLVJlZ3VsYXItZmlu YWwsIFNlZ29lIFVJLA0KICAgICAgICAiU2Vnb2UgVUkgV2ViIChXZXN0IEV1cm9wZWFuKSIs IFNlZ29lLCAtYXBwbGUtc3lzdGVtLA0KICAgICAgICBCbGlua01hY1N5c3RlbUZvbnQsIFJv Ym90bywgSGVsdmV0aWNhIE5ldWUsIFRhaG9tYSwgSGVsdmV0aWNhLCBBcmlhbCwNCiAgICAg ICAgc2Fucy1zZXJpZjsNCiAgICAgIGJvcmRlcjogMCBzb2xpZCAjZjRmNGY0Ow0KICAgICAg dGV4dC1hbGlnbjogY2VudGVyOw0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJl bnQ7DQogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7DQogICAgICBkaXNwbGF5OiBibG9jazsN CiAgICAgIHBhZGRpbmc6IDRweCAwIDA7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5a ZnV2c2dTbVBoTUFxcXJ2NTV5T01BXD1cPTphY3RpdmUsDQogICAgLm8zNjVjcy1iYXNlIC5a ZnV2c2dTbVBoTUFxcXJ2NTV5T01BXD1cPTpob3ZlciB7DQogICAgICB0ZXh0LWRlY29yYXRp b246IHVuZGVybGluZTsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLlpmdXZzZ1NtUGhN QXFxcnY1NXlPTUFcPVw9PnNwYW4gew0KICAgICAgZGlzcGxheTogLW1zLWZsZXhib3g7DQog ICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7DQog ICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5aZnV2c2dTbVBoTUFxcXJ2NTV5T01BXD1cPT5z cGFuPmRpdiB7DQogICAgICBtYXJnaW4tbGVmdDogNHB4Ow0KICAgIH0NCg0KICAgIC5vMzY1 Y3MtYmFzZSAuREVmS1I3Q1I5alRtQjJyaFlPTFwvamdcPVw9IHsNCiAgICAgIGZvbnQtZmFt aWx5OiBTZWdvZVVJLVJlZ3VsYXItZmluYWwsIFNlZ29lIFVJLA0KICAgICAgICAiU2Vnb2Ug VUkgV2ViIChXZXN0IEV1cm9wZWFuKSIsIFNlZ29lLCAtYXBwbGUtc3lzdGVtLA0KICAgICAg ICBCbGlua01hY1N5c3RlbUZvbnQsIFJvYm90bywgSGVsdmV0aWNhIE5ldWUsIFRhaG9tYSwg SGVsdmV0aWNhLCBBcmlhbCwNCiAgICAgICAgc2Fucy1zZXJpZjsNCiAgICAgIGRpc3BsYXk6 IGZsZXg7DQogICAgICBoZWlnaHQ6IDM2cHg7DQogICAgICBwYWRkaW5nOiA3cHggMTJweCAw Ow0KICAgIH0NCiAgPC9zdHlsZT4NCiAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCiAgICAu bzM2NWNzLWJhc2UgLl84a2dmXC9od25hRzZ5RHA3Uk9hVVRYUVw9XD0gew0KICAgICAgaGVp Z2h0OiAxMDAlOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAuYWxcK1RUMmFIYndnUTA3 WUtnV3NyWndcPVw9IHsNCiAgICAgIHdpZHRoOiAxMDAlOw0KICAgIH0NCg0KICAgIC5vMzY1 Y3MtYmFzZSAudjAyS0VDOHpyZU5VZFJzZ0ZLaklMQVw9XD0gew0KICAgICAgZmxvYXQ6IGxl ZnQ7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5fOG9LUjJZZ0JcL1hmdGZcK1VjWVhC Rjh3XD1cPSB7DQogICAgICBmbG9hdDogcmlnaHQ7DQogICAgfQ0KDQogICAgLm8zNjVjcy1i YXNlIC5Wek5GR0gwY0dcK25qT2IyMXdYZmhoQVw9XD0gew0KICAgICAgZGlzcGxheTogdGFi bGU7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC52Y2ZwNzZqeWloXCtFTlZxUVwvOGRm bndcPVw9IHsNCiAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7DQogICAgICB2ZXJ0aWNhbC1h bGlnbjogdG9wOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAuSmFsSlNUTjVLTDVLN0Nj SWNRa3piQVw9XD0gew0KICAgICAgZGlzcGxheTogdGFibGUtY2VsbDsNCiAgICAgIHZlcnRp Y2FsLWFsaWduOiBib3R0b207DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5EalEzXCtx S0h3RzliUU9Pa0xwSEFsd1w9XD0gew0KICAgICAgZGlzcGxheTogdGFibGUtY2VsbDsNCiAg ICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNl IC5Fa2U3TWFHVHlkNmU5OTQ1OWJiNHJnXD1cPSB7DQogICAgICBkaXNwbGF5OiBub25lOw0K ICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAuVGdKQXNZMjZzVkhhcHZDS1U4WEVOQVw9XD0g ew0KICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsN CiAgICAgIGNsaXA6IHJlY3QoMCAwIDAgMCk7DQogICAgICBoZWlnaHQ6IDFweDsNCiAgICAg IHdpZHRoOiAxcHg7DQogICAgICBtYXJnaW46IC0xcHg7DQogICAgICBwYWRkaW5nOiAwOw0K ICAgICAgYm9yZGVyOiAwOw0KICAgIH0NCiAgPC9zdHlsZT4NCiAgPHN0eWxlIHR5cGU9InRl eHQvY3NzIj4NCiAgICBAZm9udC1mYWNlIHsNCiAgICAgIGZvbnQtZmFtaWx5OiBTaGVsbEZh YnJpY01ETDJJY29uczsNCiAgICAgIHNyYzogdXJsKGRhdGE6Zm9udC93b2ZmO2NoYXJzZXQ9 dXRmLTg7YmFzZTY0LGQwOUdSZ0FCQUFBQUFFa2dBQTRBQUFBQWRVZ0FCS2oyQUFBQUFBQUFB QUFBQUFBQUFBQUFBQUFBQUFCUFV5OHlBQUFCUkFBQUFFZ0FBQUJnTHVCLzlXTnRZWEFBQUFH TUFBQUIvd0FBQkZxRmxHZWJZM1owSUFBQUE0d0FBQUFnQUFBQUtnblpDYTltY0dkdEFBQURy QUFBQVBBQUFBRlovSjdtam1kaGMzQUFBQVNjQUFBQURBQUFBQXdBQ0FBYloyeDVaZ0FBQktn QUFEM3RBQUJnQ0N0MGJ0Rm9aV0ZrQUFCQ21BQUFBRFlBQUFBMkxSa0NRV2hvWldFQUFFTFFB QUFBSFFBQUFDUTN5akJtYUcxMGVBQUFRdkFBQUFDTkFBQUJzRTJySjR4c2IyTmhBQUJEZ0FB QUFPZ0FBQURvd203YVhHMWhlSEFBQUVSb0FBQUFIUUFBQUNBQXB3TmdibUZ0WlFBQVJJZ0FB QVAzQUFBSitwS1g4bFZ3YjNOMEFBQklnQUFBQUJRQUFBQWcvMUVBNm5CeVpYQUFBRWlVQUFB QWlRQUFBTk40dmZJT2VKeGpZT0VJWXB6QXdNckF3RHFMMVppQmdWRWFRak5mWkVoakV1Smda ZVZpWkdJRUF3WWdFR0JBQU45Z0JRVUdoeWV6Zm1SeWdQa1FrZ0dzamdYQ1UyQmdBQURTcXdo K2VKeGpZR0JnWm9CZ0dRWkdCaEF6Qk1oakJQTlptQzJBOUNtR0JnWTJCcThuczU3Y2ZQTDlP Y056N3VkQ3o0V2ZpendYZlM3MlhQeTUwblB0NTNiUGZaL25QTTk3WHZLOCtubjc4MTNQRHo0 Ly9FTG1oY09MS1MrbXY5ajlrdUdsNUV2NWw0NHYzVjRXdlp6NVN1NlY5YXZBVncyditsOU5l NTN6T3YrTjBCdVJONHZmTXIyVmZKdjF0dkJ0OWR1YXQ2MXZqNzg5L2ZiTTI3TnZMNzQ3L3I3 MGZlMzd1dmYxSC9vK1RQenc1NlAyUjRPUDl6NCsvdmowNC9PUEx6KysvbFQ5cWU1VHc2ZW1U OHMvN2ZuMDhOUEx6NXFmNDcrWWZLbjcwdlNsN1V2UGwybGZObjNaOCtYQnQ1THZBdC9kdjBk L0wvMSs4RWZtLy84TUREajhvdmhjQyt5WGJMQmZxdEQ4TWczRkw0Vm9mc2wrblVkVHYwejZz aEhxRjM1a3YwaGZrNTRoWFMzSktQRkw0b3ZFZTRuUEV1OGsva2g4bFBna2NWL2l1c1JKaVFV UzB5Um1Ta3lSbUNBUkp4RWhFUzcrUmZ5MmVJZDR1M2lLdUtBNHV6aVQyRU94dTJLYnhYckYr RVRmaWQ0VVhTMDZRM1NTeUNHUmd5THlJbkxDRTRTTmhHV0VMZ2lkRU5vcnRGdG9vMUNwVUpG UXZsQ2hVSjVncGNCWmdXTUNod1dPOHUvZzM4THZ6Uy9MTDhtWEE0UnBmS2xBbU1SN2xmY3k3 eVhlaTd4cmVXZnpsdkRtOHVyei9PSlI0NzdMZll2N092Y2w3clBjbTdsWGNiZHpmdUdNNGxU aEZPVDR3YkdXZ3cyUzlvWUxZR1FiYUJjTVBBQUFCMlJmTFFCNG5HUFFZZ2hsS0dCb1lGakZ5 TURZd096QWVJREJBWXNJRUFBQXFod0hsWGljWFkrL1RzTkFETVp6SkxTRUowQTZJWjExS2tP VmlKM3Boa3NrMUNVbERPZWxnTlJLcE8rQWxJWEZBOC9pYmhuellnak1FZjR1dHIvUCtueS9j NmY1eVh4Mm5LVkhLaWxXbkRmaG9OUUxEdXJ0bWYzNUlVL3ZObVZoVE5WNVZ2ZGx3V29Kb210 T0YvVk5zR2pJMFBXV1RHMGVIN2FjTFdLWHhZN3cwbkRTaGs3cWJRQjJxTC9ISGVKVlBKTEZJ NFFTMzAveGZZeEwrclVzVm9iVGl5YXNBL2Rlcy9Pb0FVekZZeE40OUJvUWY4aWtQM1ZuRStO c09XWGJ3RTV6Z2tTZnlnTDNSSnFFKzB1UGYvV2drditHKzIzSXY2dEI5VTNjOUJiMGgySEJn ckNobDJmYlVBa2FZUGtPaFB4a3hnQUJBQUlBQ0FBSy8vOEFEM2ljclh3SmVCdkYyZi9PbnBJ UHlhdjdzQzdMT2l6YnNpMVprdTM0a08wNHZ1TEVqcE9RMkRuSmZkOEp1VGVRaEVBdUVzSlpJ Q2toVU9DRFFyZ0pGTkdQRnRvbWxDdkFWMmhMQzdTbDBLOGNIMjFpYVRmL21WbkpGZzdIMCtm NVc5N2QyZDJaMlRuZWVkL2YrODQ3UTVERXZRUkI3MlkyRWhUQkVVU01kL0VlRisrNmwvcEQ2 a255U2JHTFlEWU9YWCtNbmtEQVA0b2dnS0FnV0ppQVVCSXFvb1E0ZzU5U0JGMzZORUVVUEVQ a0Urei9QVVBrRUJROEszQ1lnZUhLS3VDS3VQVDg4RWxCWENCR0RrWVFoQlFoQ0NUWXVSUG16 QklzTjhRTkVURmlIWEV0OFNQNFRaMUJyMlAxRE9WaE9TMURGYkh1SXErYjhtaTlQdmlvMmh1 cGprWThXaVlhZzQ5QzBYRElFSWFSREVhUEZqU0NTTFhYRi9NeFFlRFQrcmdnY0JleG5JL1Rx Z0RuNFl3cW9OY1pqSnpSWXdkR3loaXpnM0FvR2pQR3FFWVFZMklnWkNmMU9oWHBMZ3FTa2Vw R1VodHFoTmNndkZmQjUzYVMvVGNBZ0RvdXZXT3lqSlYyL1ZpcFVjTC9IMHU3eGxwTTBqdkhB UVdBSkI0SEpmQXQySmw1QzNiQ3Q2RGt1TFNQcEdueXM2blNGNDVtYjlOcng0eVZSbE9GNmNi WG1yeHhwL1RGMU0va3QwQjkrVnVnbnBvNk91RzZoV1BHTEx4dVF1WWFtOU5SVXRJeEo1YSsw c1gvV1dIRTdJcEl2NGZmZ2w4Yy90eG4zeXhxOXR2TGlrb3V6UzRXdW9wQ1ZzSHdkWmlHQkJo aWlWeDRCeW5PcUFSYVhnbDRSQStIcVRYVUduVktTQW1za0lUa0kwanQ0SmtVUVYwbE5ZTVhV dnNRSFRMb3BJQS9Ra3Y0aUZaaU5yRUI1cFB1cVhDNjUxeWo3a0dJdHBNYXZZNVVrYlM3cURo SXdyZWFScklZOWl3TmV4WStVOUd3WjJuVTB6R2ppa0k5NzR2WktWS3dCdDA2blR0b1RWL0pq MGM5a0JZY0JPeEhaL1owZHU0NTg1RTBkUENnTkpTNUE4eWhyUisvZk0rR2VIekRQUzkvdkhV ay9ORzJ6dXMyem5hdEs3bnEySU9ETXg0NGRsWEpPdGZzamZ0b0lTdmZiNzFTd3JkK0pWMkND NEtjK2VVZkJZSy9hMmx6WGQvdUdhSFFqTjE5ZGMxTHUvenltQllJZ1lNL09QSTRPSDVSZndB ZW5TQVg0RjBjN0FPSklBbnBDZVkzUS9BS0l3a1g0WlVoTGo0QnVtazRiaVdjQndWem9BWGNI Mk5nSHFOR2orc0g3Z0V4cXFyVTZMcGY5dUNIVzJyMFZlWmZGeUR0S1dCTmN3azFRU2lCSHRa UkR4aDRCb3llVWNEYURFR3lKQWtSMHg2c3R3QUVjQUVRRjJnQ252ZUpCUG5NaTUrL0NOdU5S STNIWFlJME9JYllqR3BzY0FBNzVDaXNHaURhS1FOQk1nZWd1alZCTmhUT3ZFVWtaZ1NHTUtR NUN0RlpGRkdlejR0b0R6STFId2lpSkpBY2ZVSEdYY1NwS0VpUUxOdGUxdWQ0MytGeU9WVFJn U3V2NnQ4dVhaQ1N5VDgrdDIrOHJiWS9XdURvTFpmZjI4c2laWFlyNmJONkxlVmx3Wm8yWDhm Y0NWMlZWbHV3TmxhUmIvVlp5c29xYXRyS1lGenhmektSODB2RHRkRXFqZGRhMlIyeGR1NTY1 TFcvL3VOVHF0VUZjK3RERVZYUnliWDJDZGYvN0U5SndBQjZTLy9HSzZmRDd4VVZ5ZS9iYW9K bDVSYXZWZndmSzg1TmJMQ0d4MWRhdlpxcWFHMjRORjkrNkhLUVBqbHlSVm1aeFdmTnI0alZC bTNXeXE0SmM5dFgvKy8vL3ZYVmgzZTJFd0EyWlQvaytRK2hJYTBFUGlRdFFJd2JTdlVQVU5v TFF4eWIrc2NBVGVBN2dkSU93UGdzMFE4N0VjY0hMc0FwZ1JHNElQTVlnbTlUL2RSREE2bC9j Q3lWZ01tb2gvQWRqQVpPRVJRamNpTGlIaDZZUUFtWWt5bVNrZ1pTczZpN0tVcWt4SUhVek5S TTFLMkFoREtOSFJ5T0cxUENKOVRkcVZrRGxKUWlaMUlucVpNREtTcEZvYmc1dzd6SVNuaUpF TkZNVENRR2lhV1FJd25FZmtRWDM4NTFRSkR5MlNranFQYTVNTlZ3cmlpQVJCRnoyWm0wMkhM Sjhnbm9qQzVFRmRHWWl3V1FURGhYa0dGVUZPZHFwQURNQUdZREdxbVlTMFhSeFBkd0llb3A3 L0xkdDA4dXJpdDM1b0Y3UE5KTkN2Z0hsbmxTUXRXVWp0b3l1MEtjb0xDWDFYWk1BU2NVU3FW Q0xNTG5mM3JBTWhSUnVzbERaU0tTcCtXSTBnT1RiOSs5M0F0NjhwemxkWkp6SkhzSzRCZlNZ K2lGZ3ZnK2JpVUtmWWMzenJDRlZtL2FVaThKZTdiR2R6WTM3NHh2Rlpub3RGVnJsL3A4Uzll dW1oWWxCZm14ZkFiRWNEUXltUjJ0eWpaajQrRysraTJiVmlmblplVTY4cGhBcUFXTjJWOXl2 NFI4eWtHVUV2TXU1MVFVbE8wSUJ3QVZZRkEvSUluUGNuaEkremczTUNLVUVBTXM3QmtIZ0gy SVgrcDlnSU1rRXNQajNBaThLSjhZazVoNWNzdTRjVnRPemt4ZlB3eGRzYUdsWXNBbnRWbXNa TGZGR3I1aVBib2xuM1ExdFU0TUZUbjJQZ2tNT2NhZ0tWWWw4WlpjanBKMEpqaGlyYlhMZytE RGhQakt2bkt5VnRwUlB1N3BlYjRlTDlqSzZyMHhGeVZrNVkrdlVyeGx3eFVocXdXYzhRMzgw VGRRMGJMK2lyRFZRbmE2WWw0OWV5MHdVRnl1QmZ5ekttWUtHbk1rZlk0bWozTTVKZHVUTDRv dmwrOGphOERWNWVPNjh2UEFWa2RSMWNTeFRTNEM4emtCdGhtVTJMQzltbUI3SVdwMlY1UGVZ aXd2M1pDWVFTeElmVVBRNGlZY2dVdE1hTjk3dDAwU05yd3EvZldlWmI5OGNQKzhxREQ1OXZl dW5iRHRpb3I1RDMreVo4OG5EOCt2dUdKcmFsZmYvbWVYTG4xMmYxL21TdlZVM1A4SDZjTGhl NEQ1MVEzUmVmc2YvT1d5R3dEMy9rK3FBbGZkZU44MGxBd2xuM2J2MGMya01qc2R2R2I0TXg2 WEROR0dwQnJnQU05QUlNbXg2QWU3MHd0L0VCakc3Q1FkSHNFQUpPZUNNaUhNdzJwRlk5SGlj TWhvTUJwb0Fxd1lrRmJRbGIyOUV3NGRlaXJ4MjRmdnZ1dWFxMmRXdEJtMit1LzdDQmh1enBh M1YvL2ZtL2ZIUUlsRUNMemZNR3ZIYmhBOCtkdkVVNGNPc1lUNG5uUjBBQndsQjlja2Zvc2ZU ZWl0alMxWWNGM2J6WDFGUjc1OGVFNjI3TzdjKy94NkFjcWYvM1UyMkxZUHpyb1NmVml1RXNa UEVLcXJJYjhKRUVISWM2SkVIZEdJNm9nSUdlTWVoS25jdkE0aFpSUkdQZUpDWFlJNEswTGdt UjhTOHVoUUVDVnRzNm92WGd3UHR2bzVDTVc5Rm90M2lOQzZ5c3dzaDJTbmhNVWhCZ0xwUXhS RWdSUWtXQmhKWUltVUVKblpWdUp2SFF6VDExNGlCREZ1OFhvdFZDSjUwVnptMGlJQkRDRkNT c0IvTU5rMW9naXVHY0Vlc0VyamlBRmlKYUl1Q3BKVUJtV3pYUGF0RzQwcUxCOUpOTXdRMllF UnNtUEJLSUErbWdyWitjMUx1dnhDdytJREV5Y2VXTnpRMy9tTld3aU9salIzOXFQYndYdWkz bzNkY2hqSFRMNVpQYXV0QkxVUHFtTkoyMHd5QWsrUjdJZE10MnZ1cHVzNlVmUjBGdCs0Nzd4 dTAxeFg5SjVCK2NQZEc3M3BzQnczZFdsMGRqU1IvbExtNlRmbzJRMDFJOFMzYUFRbk1HckEz VndkUzZPSDBhb0tFNS83K0IyN0VPemJkY2ZqYzdkL1BDZjFUeTNzWGkxVk1IR3kvR3pURzNj TUR0N3h4cWIwVlVISWorVmtreWVtUHRkQ2V0QlMvSnlQdDh2UGtrUldkSHhGa2hMQTBrRWN5 VUhLUkdWc2xiRzlLK1l5TWk2ZmkwT2s5Z05hRlVSUmVwbG9xNk5JRnlBOUF2bWtBRTVKSGtG OFVwQThIQ1MwcFdmMjkvYnVQN00wYzgwMFpQb3FIa2FrQnc4T0l6bE1ja21DRnJLVG9HdEt5 RXFFcnhTbWVuUmdERUM4Q1U1eDVXdzVxcG1TaFB5ZEswKytLYjQ1QU42azNtVGVUTDVCQmdl a0lQVUdpc3RpSG9uNnhnRnJYazVVRVJHaUZtYmh6aHFRYmpqY0VMVWk2R3NESlNRZWV6b0R2 SWZhcTVzUGcvUUJSNSs5ZXB3L1JmakhWZHNoQTBDREIyQVZoQ1JTZUxSUlJCS1dsQ1lzWGhG V0Q2UVBWaGlLb3lRb01aTVFocFVXUWJoRURPSGhtSUFRaXBBUCtNZkRROEQwUktYUnNKWXdR Z3lEYXVDRHZMNkNDT00rbkVqMHc1cUU5ZTdNNFlFSGs3NTZmdUFlOTM4a3JFY0hnOEo2MkF6 d1FNOHBWSEJCUHFTc2cvNkJlMWE0QUp0Qm9BbGhDQlljTXBzVUFSblFSYVFwaWdMVVE3N2pE MFhoWkhLNFJBQWNHSUpra1JUU3VFRG1RMGl4VVNJdHlPTlNRbUNwNWQxbVZHZE91Q0JRQ1ZI Ti9GbFV4MUZTcEFReGY1YnNpQWVLcVBjSkNvRlluQWRLejZkcG4zZWptc0lEWUYwcWxTNmlL RENZZlhLb1MrR2hnUFVRWWNlS2lMSEtmRkdtcHhHZGpIZHBZWkZ3bmh4eFVhQUhQY0FqdlFm cEFRNEo1cjBoRDFKZGdPZmlJRkphTGc3ckp3anJGQk10TUFlTVlHUWRoSVI0ZVJpd1pQQUtT TU1hWXdiVnlPZ0hKZUYrbVlZbzBwNzhQRXZWdURKcHh3Z2VlV0xlcE80MEhBR0hNSGJKVjBn Nk00WXV5NExrajUxRlhMNG1CM3hxcVdKMEdJVkllN3k5L3VhbHM2YVVnYXV6WUlkNUdIV0lZ ekJFS2F5eVpCQ0tPRHU0ck1aYVVWNW1CcDhwVUhOQVd0VnkvK0QrZ2V3SFNnVC9mUmlrRyts QjZ1aEFha1ZxeFFCMU5MVnlnTHFSdWhFcER0bTNxWlV3Q21vZkFPbWFMY2YwbndmN0c5S2xG bVlDb09nSEFCSmR1WGlqZUNNYzdBSjRFeElMOWFaNGlGdzdJQVdZKzRldUFHL2o5QUlhK0Ro OUZVd1BxVVFyODJUV0J0eXdTZGxJbHVTaUVWM0dKOTRvTE8wdUtldVlNV2RHUjVtUXZyWnZS dEJ0Yzd0UTByMVV1RkdBRklRREV5ZnZXek5uWVByODlSMkpCQXpPSGhpQVFSUVB4WmN6d25x VExCTkd0OE1SYXRXUkZQekJLejdCVzlnTzJiY3BGR1hFbGdMNU5vTjFsM25FR3RqQUdBSmx1 RFdIcUlia2pKeVBSVHFNai9QRnZDVFNTRVp3bjFIR3ZvMFVnemw1V2p5RFVIRlVFNUhCSXMz QzV4b0REVVpRdFIwd2tId0ZjblgvMGVWTnBtQkxpZG0wWnVrckE2OXNrVjYvKzI3cDlTMHd1 SFNOeVZ6U0VqUTFMVC9hWHpWbmFwZTEvV2gzOTlGMmE5ZlUyY2xKTmZPNlNpT1Y4Wjl2ODY0 aVE4ZUI4ZlhObTErWFBqbCtYUG9FaFlDUmVyWXlVdG8xcjZaeGxYZmJ6MkVISUxoQ0V5aXIw R3c1cStHdnlOOEZGWGVuTXcrTkZFa3VnRENjVWJ3eWNsRkEyUjhmOVVuNlR1K3F4a3lac3Zy R2lpeVlvL1cvTU5ZTG9YcTA5OHlIc25yMDRabTluZWdPc0FlaGVvVHVvRWIzYlkvbEpHazdH TGFsblNDS0lBcHNJanFJS1RLR0doWTdhR1REcmdnM1VxaVhQTGpSalV3TVkzWWw4Q0NMS080 dkJxbzhTampVdzU1b2htdzVkdHVrZzB2cVc5YmNNalY1QXVIcXlLemR2WjUyTHlqYmVQMXRm U3QrZFdxaitOTTFaenU4YlM1dzZ5ZkdDb3Q1enE3YlUwdXBDZEl6b1pWMUU2NWZWTzlubnE2 YzVoVnZTUjBwWHhSbDVqcENVOVkyRmJlUGJYSFNMekRqVmgrZE5QV1dOUzBJczArK2ZkZGNj MjRPMmJxczI5ZSs4OUYvejd3aXg2SDd2eXR6MUV6dk5iT3FVNXZCZ3Bmc3pzWWxCM3JxdC83 S2JnTnJwRU9GOXJzYXg3WXM3eTdoTFE3Vk4vaTNGY3FzTVVoUDhSUUZhUVNHd21tY1JLV3Rl eG1rVDRVaGE0Wmpsa3JzK2ZydG4yNGZPM2I3VDkvK2VrOTJlTjFiejl5NnZMNSsrYTNQdkxW dTdmbE0rUHhwTEVJdWp5NkhPUUpIV2p1U0lKTVk0V1ZJZzVBdXpLU1oreXU3R1puUmxTUWNz QnkzTW5VMGRYUXo5VmZxcjV0Sk03VVNoMVBtelNndXVKYjdLL05YSEJlUGJBQ0hzWGt6dFpK YXVUa0ZYOElVcWFNNExHT1dqQzFQaSt3aXNJWktVaStyTTByU0ZXRWduQkRFQkJRMWNSYktM NEZNQUFKOExMM0hZdEVodmdnSXNja0RaZExRSVBrQ2xKRi9FWWkwWElQUFlKNE9vZ3dqVDcw cmcrQ2dXT2N6YlF3L2x1RjNQTWJpTG9qbk9KaXpmOXpNU0dUbU9EOGM2Y0grRFlmdW1UYnRu a01iK29OQ1JsMGpzZTN2RWdJNnNIZ29Ka29CaGFFY1QwNGpRaTZiMGZGRUFrZE8yL1JZSWlO M3N4RU1xajBFa2k1Wi9RR3lNUk9NT2xnNGVpcmNGNHVMS2dHRVVDUThVb2hIQ01qbUIyRlcr c29TUS8zdXlxb2k1aUhZV3ZEVENEME1ZU0JHNHJPVUZjWjk0Q1NjM0FmY0IyamNhN01vRUxZ WTdXemY5Y1Q3MG5YWFNlOC9zYXM5TzB3VGx6L0Q0Y3ZrakZzZlR0TXlsRE5oU01yc3NCSVVo blFOWWRIL2Z6bURzUTJMMnRoTFZCTHRHZTJENVZSQW53VnhxNUUrTFdzZzBRYmdnbXdsRExs OUxNUHdaY0dBSmxzU2N4Ky9VNWdSV3Jtd2Z6cUNxNWN3MXAzZXYzQmxhSVp3NStOL3NuZ2xD SEJCYS83U2dmN3BHUVZqZXYvQTBueWttY0FZYzQ5Y1dERHAxeHZsZENnSFFHejg5YVFGRjQ3 SStWNkFxUk1KaXhjSXU5NFluUHp5aUo3eTh1VEJOM1lOMjRGUWZUeVFiN1lTVjZUdFFObDFR VkE5Nnd4ZzdlQXJWbzh4Ky9BTmJuZmVNK29lWW5yMlUwZlViekw1bzQ2TER6aWlKVVpqU2RR QmxvMmNwV1g1U3ZGQlJYNitnbDZXcnhBZlVPUXZkY1Q4SmtxUWI1YWgxR0NaQXRZWTV4SEk1 RUcrTGI4Wk9WOFF5TDhyWVQ1aVFKRlBmNHB5bEc0eStXTU8wYUJuMzg3Y1JoMUpmVDRCTUMx OUJlczlBY2trbG91cEtDNDkwd0Y3anE5R3MyZW9oM3doZU5ielhDd1NMY2JDQXZpQ2xDL0lS RkFNRk1GT3dUUDcxZmdPZzNGc3owUlhaTUdTTmMxTHp4eWRrMCtTbFVVcWZXN3pqamdKUUxn R2dHT2c2TVpjWTE3OXpucDN3S1pYMGJ4T3I4a3RkUldvQzJQV29nV0xabHFuemlEL3NQVG5Q VlpuYmJoYzU0eUhuZDNYbkY2Y2E4cGxiaTJxNUxpU3lRRUFpaGMzSlJVQWtGTWV2b0xMNTh4 RlpuVzRjYXhEV1JLS2hYeEtaem1iVjZqaXc3VjFwZ25uRVM2THc3NE53RHEyRUt1eDVPVlVE Q1JVOTRnNFJDTVNWUUpWeTR0ckRyRk1JNFByVGhrTk9rOEc5NmdBWnd3UE54R2k3QmltWi9o UGYxWlJZU3l0cXU5ZDJsNStaWFhOcEtpMWV2THlHaTVQd1JTVlYxZDRsU3FyaXJaVW0vZjlW M0crRmdESzRJMTF6YWdwbitycldOYmhnUzN6YjBPaG1vM1BYVlBwbmhTbEJuTE1nZVlxcGNY bXlFZVBiY0hhbWlwMStlSXVXMnNSSDJQRzNTVDk4WEQ3OWRkc1dUbXZ4T0x3dEV5UHRONndk N1diWnZMMVpxT1daamxHb2ZNYk5nRFRJODFYdDhEUFZpeWFOMzJzMzJvTTdQdnh3eE5WaFZm cTdGNU4zMDhmdUwyaHJFM0RqZDI4WmtsWWFkRG1tejBCM3IzMnVodXZXMSs4OU55MG9pYWJ5 b1RhamlCcUlLLy9KVVlUeUo0RWMwZE41L1Y1Y0N0QnltZndtR2ZWc3RFQmtreE1udDh3TW5h S1Fpd0F4dlR4bmtiQUVlT2J4UE81NWx4bnRWVzZTV2VzY29PM3BlT2wxWDczZlVhanZ5WlNS azdXQlkyOHRZQXNkWVE5T3NHaWwvN3BqRHZCRWIyRlhaWU1OQy9RSEljWnFzL2xlb3p1S25y akR2WDRjbkdEdjFVN21GZmpwMjRLelRDRC90dzhocmxONmE0YWs4eWgzemE0Mkc2bFZuSHgx WFdzQytzL2NTTE9QY3dsb0NhTFpnZGx6UWRWQmRNQ2pmRnJsalZKWnRNc2s4VlFqWVp3S0pv eEN5S0dtekZkUVBDYXhoSWt0OUR0bVhicjJmWGRSNW90VWN1V0QzOXhjbDJjWllxOTAyNDd1 MzdDTFMybUNwUDhqQkcvTG0wZm5EM1lYbHBZRmpaWnkwdExUV1pEYVpVck1yYXQyVGoyd05y TzlGdUx2OXBjTWE0dWFpK3I5VFpNbU5CcDZUeXd2SVhhMWJTL1kvM1pXNmI1dlJUZHRPN0h2 L2h3aTdQWjJYUVFQeXN0SVNuNW1hTmhlM3hPUjZTazJGTm10M21OT1d3ZW41TlRFM0JWdUhR NXRLdGo5Y1NtMmUyUmdNZFg0WEQ0RFVxajFSZ3VMNDU0alBtTW8zMDkwaGZKb0lKZzNpRDBV UHNmc1lzUFQ2TU9HOWhjYVdOTm1BM09lV0JIVjllT0IrWWs3OG1FNkJrOSt4YU1HYk5nWDAv eW5reUllUU85eWNSQTE5U3pZeFpjMjlOekxYb3ZYMGZoNWUrWU5hRzV3NEQ5ODlQWHRIZnVm dmJQVXVyQUFXbm80K2YzZFhmdGZlNWp3S0c1aHVjK2tvWU9IWkJTSHo2M3B3dWpadnJnWWNC OTlPeWV6clQvUXRybWtZdVJBaUhQY2NvR0Nqa3NHeWhRbUlYU1AyTnBTRUtwbjdFMW9OQkZQ QXVLelFreUlFRFdCRFQvaWRUMmpENWxJQ3lFblhCQi9kdUhXMVRIb1RIakE5aFVCd25PaFNZ TERNQkZJVk9EVmttamk4OEYzQXBDbllwckhBNU5LcTVXUW54djUybUJ0eXVBb0V6ZEpMMTls dng1NmhycEhKaC9WdndidVVMNkEvZ016QlByeUhJWWZnS0ErZEk1a1U0WU5VbkJhS1FGalZH akpnVVZ6NnRFUVUwR3MweTNCdkx2cVRYVVlYUVZzS1VBNjRGRzdpM3VFNktHbUVVc2dscmdO YWpNbUF0aUFZSDRJRURsZDhualB1d0NHWEZoMENMOUFuRlBEeFNFUlpBNStMQ3ZoVjVuMU5x QkRlZ01zaVVXbWZWaTJpaFNOR3hJK2RCNkVJaEFHTUVqejNteE5NZnE5SVV3UjVwN2k4a3R5 R09zT21YZDJJWjhmZXZVeGJWS2JaNUJMWG5FRW5jbzVDYmZBYjlURy9KNXBhVmMvMStkbW9h bVdKN095dVR4dVhTeVB1RFF1WE91M3BGWFluSUVsSStTVkxqSVpDdGdhWko1UEljMFNROXJq YVRQdStPVStLNVJDL3FuWDEwTXRQbDVlZm12U1F0ZUErQTE4Q1BxVW1EaGt2bCtqVkdsMVZB VDdqdCt0RmFoVklQZmhkelVWSGNJZmxTaHRNUnNIMG4vWkRTYWZLT21aTjZpQlg5d0JQU2Fy NzgyRnNBUEYwaS9vUE9ZTzd4dWpkMW5zRlFiVkhvRnFOV1FmZEpEdVQ3ajMyODg5R1h5L0xH L0dYMjUwa01yaHZhTmFUL1kwWEZ3WE0yS21nSjdRWUZEWGJOY3RpVmlHcFZ0NGp1SkE4UU5v eXpqUDJBSzU2QVVjeU1yRGphaWc4eHdUWS9mMFlaeGhJVERtZFEyVURLQzF0QW9vT1loUndH aGZzbUJpYjM3bDlSako0S3Uvdm9sKzN0bm5JeDZOM1hMNFlrSGx0UlA3YW1ZMmg0dDJHdm9t ck9xRHNYdEIyOW0wSHo2bXZ4TjFnMitzbEFyaWc5ckNCQ0JaNEE5aUNQMFRYYTc1bHlGN09o TDZsRUpPcSs3YW80cmVuSUd1dS92NnQ3a2ljbGg5RzdXdlZGejIrUzU0V3FZVWYzaUF4Tm5u S1F2amY1YWloaFZJS2tialljUnBXUFlhb3BHTlpJaDEwSGRaeE1jeXdGaVpnWWp1b2VWWmlO QXhNNWxWR2FXOC9FWlJoa0x5MWdTYUdVNENZY0dtbFZrZEt5ZXpUUS9NcTJ4bjlyQ1hzTkZ2 cjNNVnUwejVDcWxmN3RLdkhHZDlCUEc0S3UybFhjVXZHVHdobTMweDlaS2o1bjZBb1hGSmVL bnhkSnBsT3g1MnV5dHNOaWlPckFJQUtPL3VoRGxvUVZLdnBnVFVGVHAzeVdWS0J1dHUwQjZW ZTkxUHFyaFVZd3dSRlIvUXVuRm4yaGQ1Vlp4TVFxamRrQnBRQUpZeXB3YWsvNXBBSUF0N0RN WXZOVTJyd09FYzNJUlBnaEEvSGdlMG1ZWnRpbGlTd1B0cG9BTW9TTGhSaXFHWnExeERhR0U5 WTd5eWFHWk1iTnVXVmJYcy9mSjF6OWNjNWYwcnI1SWt3OUFnVTdIS2hRTnk0OWRNZjJKZTI5 WTFqQmIzRlRWMytEdTNueExkOVhraGlKM2ZkK3NoUXBDTlduNzNiUFhmZkR5L1Z2YnhMblVy YzE3MjhvbkJVQk9hVVVnMTlIa25INTRmalIyNWJWM1BUcGo2YVBpWG50Tlg2am55T3F4OXRx K1VIais5TzZZQS9HM09OSEsvWTE3bnNnaHlvbGFvb0hvbHZtYk93SUx4M0ErQlBZNEh3dHYw Mk1qRW80Wmtia0VuZzE2RDU2V2NFY1FVQUFlM2dPTXZBR3pOTlR2aktCelYxaXdqWDV4MDF1 OHg5RDFybERmMUxGelZpdzJhMmNITS9FTHF6VmtmRzc3ZmZuSnQ4YTM1cHZ5NFlqYklUWWg0 ek5ZZGxQM3RmUEhYTDI1Wlc4clRWZ3FvQ0tzS3dxdSthTFFVcVZQN1BpSitnMlVRY2ZPMmJG M0g0K2Y0MHVNSGUvc0d0UDhhRWNkU0FJUy9PTGNoYjB2Zy8wYTRDU044ZFhUdGdpNWRLYWVI NlhyaWVZaG12K2plaUwwRHhtS1hNZVlnNlE0WmljY0VSWUxxdDJDcGpkZzdUcmZGdW9iTzNi TWlrWm43WUMxKzl4cXJUS2UyWFp2ZnJLWjkycHYwWHA1OFYxY045MWUvNXRsZDN4d0YzWEpF aXpTU2JDTlZuNWVhS2swdkxEOVB2WHIwZGs3T3RwM3pJcTljN3JwTE84M3RyKzljMHp6aGQ0 N2U4bUpkMDRFU1Z5ekh5bU9jdy9ra0JKMnNhQ2dtSnJHQ3R5OWFSczlvUVE4d3l0SkhsRExw V1BvZStUbllnSGRRNjlNL3AxaHlzU0h4YzNVSjJBMStGcDhDdXF2VUNkZ0V3b2tuVlZRTHN1 K1lyeExpOGpTeFdCN2hvdEtvQ2xsVWhEUUJZcElnaEhRL0RLeVBLQXJDVGtWdXVMWFdNN0hp YkZRWGo1SEZCQTZxRWVpR2RnMlltcTZyU0hNNURHbUpIRkRJcStCRE1lRkFnOVBDMFN5ZmlH RFhvdW1iQkZmQ1JzelVmVnVPSkxJaTVwQVIxUlRyTkg1ZE9HMkFDKzI0N2F0cVYxYk8zVlRs OHZTdW01YXc5WjY1aVBKdGhtY2tkb3lCeG5tVFZlSlgzOFo2SXc1ZiswUGRFYWR6bWhuNEZm d1JKdkxaazhJUXgxRUFtUjV4elR5d1hNWDlyME10dEs1UFZ0dTdoeC9lRldybXBHbVNqWnlz TytxdnMyOW00MjhTSW1ueU1GZVI2d3o4Q1hLQkdYMkszU0NlblFIYklpbkZRQ0dGRVFlUmpu SWdaVHg4SGl1QWtRTk5zQ2hrVk1CQUJ3bUxBWUFIb0RzeGpIcS9nK2xHdkUyOEs3a3A1OUZa L0lXbWkybFNZNmFrT3BsYzFJWDhqVXEyUG5VQTNTaHc2U2tlditVL0MxVjFkK1UrcEErQTE2 L3VGNUJBQ2pSUHlFWnFqYzFneVVYazVxOFhCVzVtTHFUdGpxc0ZFZks4M0lKcUFQRW9RNWdn empNUTVUZ3VUbmtxNlhIMXFIMGFVVHBqNGF4Snhqdk1wTlpacUpQRWQ2UTlQQ1lrbTkwYUtT bEdvY3hIOEtCWlVoRXBSSlFWQ1VvS0s2b2hBUS9GWEtuQXU2UWRCNGViOE40S2hWTXdjSTdB U012U0V3WDhUd1BRQk5ITURrbHBBVHNZeUhiN1JoSW40VFd3OEFtaEEwSUZTbkE4Y2dERFZ1 bGFBS2xSQ1p6S3A1SVNFUWl3Y0xQcGdoSmlKTWZBQ0lPVG54am50Z0tSLzkzK3grbFJkQ0kw UTdKTXdOMklob3hNbi9UTGcxZU5manN2RlA2STIvekc0dytHMStnQnMzTzc3ZGhEL1h6RUFl Vk80R0x6RFA0YlR4S0tyNnNMMUZMQ1Nlc2JTSTlMb3RodjlSQmFwb3FTMW1qbllIaUF0QWNI Q2plWXRtb0ZHdUVBSlJCd3NVSTRTYlMzZmtRaGtFSW1mS05GTUtQTUVRbENvTEJRTjdZRy9a dW1sNjk4QmtwZGFkd2x5UStzN0I2K3FhOWg5dnlBc0h5aXFhOXd0b3JRcE51UG4rTlVEbDNv TmZWOWZEOGpwc1BiQ20xalBWN0JoZXVpRjV6L3VaSjZ0elFyaU8zZFNvSVhhRTlKM0xnN3Nm T1BEOXdRbnBzQVNlSmdPSVdQQ2FkR0hqK3pHTjNINGprMkF0MWlmSnRSKzYrLzRHK1BiODkw c2RSajFLMllLTjc3dU1kcWF0c2RkUHJXN2JXK2RxcW5YVHF2N2krRzM2NzF4MXoxdlpGTElB WTFWZDEzOTFYMmhCV3NvZlpCL1lYSkxFTGtoMThiNCtaREg0MWVFaGRnRm9kdGZtSmpjNXln OS9POCtyL1ZwZjhRTWM5ejZPa2ZqM3F0UUtjRlBVa3pPVy8xZnlvc2xmOUVKMWxhNDNmVDJL dkRSUEpGa1Jodk0xbi9QNXlKbytoT0psVUtBMlVnWmRTUkM1M2dmdUtDRUk1UDV0WVFWd3Qy N3ZBc0M2RC9TWXdPd0l5bnpiS0tvd1NhbVE2ZUVZaUVEWXpWTm0wUGpsYUZBMFhHR3pDN2Mr bEowc055QjNNNjFPaTIvUmROY281SFNQOUtNcGQ0SGx4akdGTWtTc2NLTlpxaTN4VlJVV05l dkVLWjBFQmViKyt3ZTBLK2R3YWJYRWc3Q29hWXdDM2d2S2k1QUlHMUFPdlFwc3J2Y1RtNUxE U1cwenRMVVU4RDVwcFducWhxT2lXYmpZM2x4V25NUlJKL2dRRnllT0dBdWwzMGtzTUE4cFFB dkxYRkNtOXhTcHpXZWs4ZkZiSzV1U3lvSlNoSkV1bExuVzN4V2IySWNkeWo5RnVvUWI5RVhP bGpocXcybzBlNU9EdE05c3NVb0YwTkFDZVp6bkk1QmJtRkxCUUVWVklOM0ZEbDU3eXh5eFZP ckNIVVNvWXNEY1FpUVNlbXNOeHFWTWN5ekJVNnBSQ0FiYXB0R0NoSkhBY1RIeE1vYUJXa2h3 SlZuQUs2Umg4d2lIZlE3Q01sZWNyOFB3VmczekJDVFM5RGNrcEJYK01JRHNwVU1NMEZpYVdF VC9MV0hIb2I3SGkwTit3NG1Tb3pvZEhEWTFHVFVZZmdqMk5JU3FOOExpZFF0cVFJd05rMDNa UUdiRFNHWkh0OHd6UGM5SnBDNURzS1BhRXgxdlN2Vmc0T3JIN2h1WkFmMkRQdjk1K1pIc2J4 MzNyVTRtYmRzZjYxank5WGF2TXExdDIwNU92clFuTnJuS05hV2oyZmNkemNiOG5XbS82bith VnZlWGUxb0VsYTJ2cmRteGM1T1lOR2tlSjBWM3U5ZFZOYlM3cWFpclJPa3NNMHZ0TkN6dDl2 Y0tQKzl3ejU4M3VEdXBjcFFaYlNiR3ZwbStNc3lYaW9xWTMzOUE5OGFpd3VMdkU2K0c0dHUy UHZQMnZQYkJrMy9wVVZMZXV2Mk9hcjdsaGpLdHFkbWpOYTAvZXRLd3VUNm0xNi9PKzZ6bTkw VkZheURPVjZ2REU1ZU5hRnZmVkZ2TjhTV3ZZWE9zdytRclZqb3BvaFVQckhlTTMrMndhdHFz ZzFMVnc3S3hyZW90VjF0SzZybkt6eDV4bjlwUjV6Q3BIdGR6ZjJJZUlJUFJFRVJ5N2VKNEJl OHpvZWRrTWJ3TXV6UFFwTitOQ1B0TlFXcE56eXB2RC9wSUtCL1VCUXVBWFpJK1pEMHpGZHNR UzdNVW14cGx5T2lwSy9PSG1jc25Kd2R5MWhVV0YyQ2t0Q1NrTnBSRUVKVzlVcTQyOFVzRHZV dC9nYnhUUkszdGdERk1Wc29XRGJDdGhBNmoyRFJQWXNKa1E4UW5XQnRtSm5VTE9UTlJqMHg3 Y095a3liVjFEUWFEVWw2ZmpuVlVOTms5clU0T1RwbFJLVytlRThZNHBKN2FQTCswWW5EWFlV ZXFxYnJJSEo0eHI4OUEwbytSYzQvdjY1TVV5RjY4cm5uSmcwZmkxVTF2c0NyM0prcThMMnR3 VnRqeWx4cW9oVmU4cjZmeUNIRG93L2JyWjQ1YjBOWVRLUTNXKzRrcGJycXJRWnlFNTlqTUZy VEdyMmF4eEZTR213SkUxYW40YW1YV3k1MHBsZnl4NXhocWt3eGswSzkvSnRrSXFFNVE5dVBE cllRZmdRMUlTdWZ3aTk2clJheUUrM29yY2s5SSt3U2tDM1dUbStsQTQ3ZW41QzY4RjZla29B OVIzRmk5TnBQUEVUc1hzUVJSMzIwZWoxejJnK0hJUlVsK2hjR2JhRVlVejdxZFUzT0pGK2ov S0FkR0ROKzNYTFdBN252a2JYcFl0eERpaUt3dEQ0aG5HakVVTW5TaGptTks2MGR3QmhDWnVM UldXY2FTYjErTGo4bWxJN2tHRUw0Y2VnSWh4Q2dxQkIwUHVLWnVmK3MzTFAxMU5VcVMxcHZE Wm43LzFOTlVnSmtpSStoSUpNY0VRS0R4eWNFTElmZkVCbkxRMGJhVXFkWWRTMmc5QkZ4aDdq dUxvMklxWTlLejB0TlNMNWk4aG1vU0FGU1RTWi9na1NYejdjenkzbW1tRGpGZFkwL2ZXWFl1 bTFTbmt5amFxa3E1aHpQM3RGWDd0eTF1UGZmTGpZMHp5a2x3WWZNQ0NsV0xzZlI0dEwvbldT cDZYWnBCM1NmM2dJZkZLYVdLNkd0bG40UklCRVRsTWQ0bkE1bGxzNTVUcjVJUTFpc0t4UFpq dFRRbEg3WENOR2lrajd3cFNBTU1YUGh4QlZDODc2Zk1zelEzWENBb1JORjVVWkNtSTBNSzJq MTgraVNqdzVNc2ZiMXY1eHZNbm02VEhjYUhITjUxOC9vMkh5ZWZ6TnB6NWwvaTRiK3lNcVBU Rm5VdXJabmFWZzEzem56MTEvZUs0SXZYU01XbG9IbGlFcTN4YjdKcWpkNGsvcjZyVE8vMmFH WndnNXlqblhqM3Y4SURjQmdPSDUxVmZJN1llK1ByTUJuRnZYWCsxU1p6N2QxdHNVdXFGcXNH ZGR6NDVqNnJQdTJhbFhQK0cyUzFGMURsZnRkR200WDRDMnlCdnVCMjBSRFZSUTlURG5tMGwy b254UkQreGlGaEZyTTFvc2lNV0hPYmJPeDAyaEEzd3hyQWRESGU0M2pNU05NWWlRSStrYzJT MGk2N1doVlkrdUYwTUQ4Z1RHbTlqYWFEZXE5SDRHa3ZMNmowRnpKd2EvMURDWHlPVENGbGE3 YVhIZTZ1WEFtV2VORUlodEZpUHlSVWVyNjRWaFFlWlhFWnE3TGxxVW1tZ2QzM1h4QzJUUzhz bWJUeEx1OFRaaUlZWVFsSlFvcSs5eHVXdTdmQjRPMnZkeFhXZDd0UUgvcG9hUDNDbWFjcnJy YTcyZXNVckcxZ2QrUVQ2aWlUSTV6dnVvSWpzKzRlRXNaOVFSSUlrWDBwK0ZwbTVvNnQ5eTBB NFBGTVkzN0ZsV2tpYURPNlo2QTU5VFM2VjB2NmhJK05veEdmNys4ZVIxcDBMMEwvMnNxSDBi Y05uMHRZRGV3LzJydGwwVmUrTmV3OHdFbkxXVG1IZGtoS1N4SGNNblplazVlUUphUjNVTFhl QXcrS2M3K0lPNlRtTk9Dei9nM2pkeEdSaU1iR2EyRVVjdUh6TkhZVnMvdktzbVZmTForYmJx RzhPSzI5MkNoUkJEeW5vTWl0MU9PTFNoL2t3OGhyVnNhVUEyVThiU1ErOGsyMHA3QWNWZlEx dWQwTmZSWEFTdWs0S29tNkV4d1cwek1JNzBXV2VzK3VPeVZjK2RPMzBmSW5IRlBSN1cwWGZp c2JHRlgwVjZGcmdMS0JPK0d0U2NYY1RNamczdWQyTkZWWnJSYVA0ajRUNFFlSUV0VnFLaDl4 L3lXK2J0Nk1EV1poQlFrcFlXb3FSdndFVHovNHFLZ1dJNHkvRFEzSkt4V2dCaGtiYnQyZDI5 ZGlyN3BranQzZERhK2E3NkVwVE0yckllZkJqN3V5UGkzdE9uSkNJMVpDaG4zZUgyalpPcWF4 ZnN2OHQ4Sno0bE1Wc3J4Nlh0ZVl4U0xRUkcySHJuOHFNVUY5bWZqb2F5K0pkbWNrQVpJUEN5 eG9RdFVFbEdxODVJOU5qa2M3TUlVU0c0UXM5M0MyR1ljQ0RoeWtyZTJobmoyRjV3bHhCSUtI YTNLenN1ZXIycWNoMUJDb2V2WmpjZ25uemIvL0ZTdVIvUVpKTG56dllsMHowMzdKeFloNjQx eDNTYU1iT1hOdXNhTjk4VXZ4SGNQcTQwdkt4RThhV20xekZlZUVKQVZPSnY5UlNOcU83QWov VU85MnErcG1WQzBrM1dzM2lIVHVyQm83bTkxall6K1RWR2V2L3hQMUxHZ0NvNkcwcXkyMmxC Q1RmK1NrM0xtOUFQaXl3cCtWT1dISG0rZ25JRFFRKzZMMytESFZUM2FLRGsyQk9BMVI4M2N5 eG1sSWZLbmt5ckMzcmlFWTdLaDFRRitJaHVMVllidVZ5T0VwWDFsRWRIbHZwc2ptTldrTWU1 WGVkOEl2bkVLWFZMdTZ2eXp2bERqbWRxTitCa0prTmFWaXlmMkt1SWRmWTNEY3JiQ0hTOXNJ YUxzRzlRdVJEeVZOTStJa3lvaExiWmpOY1FPL2hQWG9nWXk2czZFTlM5K0JKeWN4aVRON0Z5 TXBxcG9zNEFVRVdNWjRVYUVHOG8zYXdyY3FwU2xzRWE5ZFNkMmJrS0tSZWJFSUN3dEFtclVk WFBTNmc0UVBqb2xxUGxpTzhsaUdZeVN1L1lpNzg5cFhrcXVLRy9sbnpLMlVyWU9vTEpwZVhF a2daSStPcE9BTXpxQ1BKOHZacFphV3pKNFlCUUg0MEkzVXlFZVd3UGxtMk5WZ2Jubkd6Sk9j bGZZaUx1Zmh2bGgxV3lzZG5WMEQ2MVYyMkdvZTd2Zml1OSsraG54RGpnZlV0OVVzbWxKZFBX Rkxmc2o1QUpxUkhQbWRoY1ZNUXJFbFhvZkpLTmJzT1NIOC9jRDFRN3hXVlZMdDBQbHlESXFO RU5XSHBQUGpnUnVsM3Nyem5rSTJwQkhMZEJxS1BtQ3Q3TnJoZDM4S1lZbWhPRXlydGVoMGFM MHBnRENQaHBnUmFkd2JQRFkrSmpPem5YU3FHMDhOeGdHeC9Vai9idSt2K1daUHYyREZOTFhY aE1mQW9hd2I3elc0M09yUGdVY2g0bmRKcDUwWEloSU5pMGFWN0ExUDlKWk1DRHlUSmNLY3dK eGFhdXFFVjV2SVJINSsybkxwRG9uTERyWjN4S2tYdmtmVzlCY3lEcWIrN1E3TlBibTZyVzNp d1g2WnBOWS96TlVzYnpHNWVIUUluWU5ZaDl6TWdtTHFCUExIMXkyMWJ2OXFLT0h0c2p0RFp1 bVZPUFNQZDRnN1Z6QnJyQlFreWtSdHA3V29zb3hSVTQ2SjlFK1M1OGJRUHBRTmkzR3hNaEQw cHRXNTlXSXNjWmFqaDhSL09tdHF4Z1RDVjJQMnY4ei9kM3RhMi9hZm4vN1Y3SlB6MUx3UkJv Ykw1eGpkNHFxZHZHanQyMC9UcUcyeWhWcSszTldUejFyYlVlbTlRRUplbDJTT0hod1FCbEho YWJMNzJDVFBHb0pRb0I1UVFaVkFTSDFQZk1kZ1FKekNleWN5YjVrQnFkRUZhSEFQUnpGUmlI ckVVU3F0TnhBN2swNDlXKytJbHY4aTMvL0sxS0hUTWJXZTB5R2JnY3lQampRY3l1RENpQ3Rq N2VPMWxPTWhvMFFvVkxvem5xeXNBSkFrN01Ib2djWVNqRkF6QmV6aEVjWHc4MFU0UGtoNFJp bUdhUU43NlFtYlJXdWFxZDVyNVBJNzhDOG5sYTB5T0l3QlFReFFsYlZjb3ZxS29yeFFLa3RE YVRabzhCZmtuVXFIU0dPMmZVUUI4aVJaa1JrcXY3dFViT2FsbndxN0FLL25uQThJRXZaNEZ6 L1pzRC95UzBTUFhQdkc5UWJ4MjJTTytsLzA5ZEUwS3RvcTYycW9DVmFpMnJzSU9CR2ZjMmRU YzNCU1BvMUE4M3RUc2pJTVA3SlV3aWlxL3FuWk1wVjBTbXB2Z0svbGY2Rjd0ckY1Vjh6dm42 cTVWNHBITzFjN3dxdGc3emxVZDRRMUlmNmNFQWc1azdqdlhnVi9XNXFQd0F6MTZIZmdQWGNG bHE4QXBZdlFUOHJJbkJQWUJ6Tmpja1Y2REVCa0J3ckFma1k4R21ndkF6ZzdldEUrY0EyRHJB K1FNQ09ReUxnOFBLT0JpdUowQTZEVkpwY1d1OXhYeW43SUZDcFBEWVZJVXNKL3loVDY5M1VK ZjBHcUhYZ1E4NVJ2YUI4NGRwS3RUdjVmK1NSTjZiMjdxSGI2ZzBHTUFMOTNOME1WRzZucGpN YzNjRFg1aDhGZ0wrTlR2OHJ6azI1TDZPVkhjQ3hwRUxmblFjNFRzbTBXd0FpTVFTa0tEeW9x OVZkQ3lFS2h4NFNYVExDRU15VDd1YUpYZFF3UGtKR21ReEV0TmhLUUFkVVlCbkJJZkhpRDdC VFJJMG5nVXJmMnhRcTJ1azVoRXpDQVd5QjR4c1hERVBicG5xTkg0N0R1eHF4WUREVlF3ZVc0 TExTVGcwMU10VEJ5S29yaVFTTXpKY1BiTTFWVlhaamFYMWJuU1Y3RDBjb3hiaWxBcndyTzlr Z2dNVXMrZHpHTXBBU3VIY1pRblNHVG5oNjRna1pVanZvTDR0eUZoQ2VWeUU1bEluZDUzYUo4 NEI1RGlCQ2h0YmtJNll6WjJ6OEZVMGd5MS8zNVp6c2txSHhqZERHTkFXaXRDN3FDb0tTQzZS U3puRzJva1ZwckNlSzVKai9BdER6NVBxM3JzNnBBN0Nhc3Yzb1RLQ2V0TjNld09mWm91S2Zi ZlNWM0tWaCtsWFNSOGswZ2wwQ3JNa0hzWm5WSHl4RDlJZ2RGVlRjOWo2VVBnU3lrT05vMW9q T0FGbUJRa2tHTnpLYTQ0d2l0aEtOdlBRVzdhUkhRVFZ4SUxvVTY0TVNNNzliREVHTGRYeTBa WXZQRUtSSkY0aXhXOGJ3RXQyNEhnT0VDdUQ2aWVZYjBiSDRnY1pHczdDQU01b05XN0loblRF bUt3Nko1TFpKQUJtYkI0azlkN2FscHFQRTRMbzZBcld0MjJCcWMrb0N1Smx4cUtJNDJSNHFD enFzOW1MQWtFQ3hkdG9LTWlOcFNRQ1RIT2xsYVdNTGtLRmt3VHBMZFpuZEdvNFBLWkZ5RmpO TmtEWllXMlFLQmJFdGdFUWtEblFBNnpGK1NjODZhMmplbXQ4WGtDRHFjbGg3VGFuOGpQcFds RmFXTzN2NlluNXZjRWJKN0MydUpuMWJwOGRwUFVSeEpDSFA3SUUrUUg0bThZYjRsTHpVbzNB U2Ruc2VoWVJudy9IaWYvSExERHI5aHNwYWxaOGZnM2NhQWpQUi9aVEF4Q2ZSdTFLNGZHRkQ1 QmloaUdoSWlTWUtzQW5rT3pnVWEwVDByR21PU09ZQ1lnLzNnZkZBbDZOWERyZlZ6RVhRRWl2 bGlrQ1lSanhyQ1JHNlY1UXp3RS83eVdPR3poQkc1aENLcmdmL0xGRzZRL0gxMEh3dlJ0Y2Zn bmlBbVE5b0luNHd1OTNwQXRiKzVNbFMxVVhCeXkxWVZDZGJicnRNV1dnZ0pMc1ZaWGJDMG9z QmF6TUtaR3BkSmt6aFp2QmxyQ1FQSUxVbEtJRXZpU0VSdFpraFgvTG4yR2MwOWt6aEJrd3Ra TVVJbFhZT2ExdHRBblU2WjhFckxWb2craFQzN01XNHUxV3JkRnJiYTR0ZHBpS3cvSFpxWXQz ZW4xaWxQd212N3Nsa1JqZEZSVFFpMkc1M1FGeG05cnpSakVjcGh1R3dEbnkycGJ4aGdiRmx4 eTYvRldGMStVM1g1RnZNdktKMTg4QWtZMUlkU2w0Nmc1RWxtTktSR0NZQStVNXVlWEJ1eW8w UXJnWCtac01PZlRJODFHNTV1VFg4T0cyM1dKMlBVOVRTZXQ2eEVzdjFScE5LcUhlbnFrc055 T0o4UGhtVnFUbW1YVkppMlI5b21WZVZrQXo3UWFOTU1Bajgvb2dxNFFiWXpKbzVDanF1WEZ4 ZkpNV1Rqa0FNQmJESG1kSG05bXdxZE54TnpVeVZPenJWT0ZwYUhTUXIwblZFZzlmUitvMnI2 K0VDckdoWDFqVzhRdUdDcVVYaXFFbW5MaEJYTExNdW5Tb1ZTSGdseFg3SXZOUC9EZ1MwdVh2 dlRnZ2ZreFZyVk8rci9EMldZMDhCdG51RHdRckhZVmhqejZEYXMyNEF6RVRSdCtQd2RtV1Fq cThRZGdoclBtS0poMXhiUENVa1RPQ2VjcTF4dkorb1ZjSWFHSG93NTVZaXJsbVR3RTlwVUEx OHhBOFRHODRZMkw1eFlxVXJ2Rm84cmNHM1BVNmx4d2pId3FsOC9MdlV2MUYrR2l3RlROVHo3 R2JzL0xTZTRtanl2VkJibjdjbktsSG1xN1NyRTFiMmdkRmJvbitRQ0xmRUVodmtnUXQzQngy Tlo1UkVGYTA5TzdNaUpWdHVYQXh1ZUNUQVRQWTh0TzFFaWZjR2RHcWcyNGVScXFibWlGQTdJ OFFONHZrRVRMaHVQUC9HYmhvbDgvYzN4RFMvZmVIZHVhTzQ5ZE1lMVlWM3piamozU2ZpR3po QnhLL1VRaXZUeENOQ0dwUzMwc3RlMysyOW5INzlyZjJMai9yc2ZQL20wM09KTlRHQzRKbHBZ RlMwS0ZPY24zeUhnaXN3bzlJU1l3cnhLSXB5RkdpaE5xcUxPaU9reUR0WG9GdFdEYS8xdHVR NE12Nng1WFpIUUVhaVNJdDhoaGdid01OYk55UGUwcm81T0pUWFlkQmZKYThOSDNYcC9zYnpm c2RUY3lNeTVmMUNBelh3Y0ZUTVlkRFMxdk00Q1luQVYxcCtsRms5dGRLWi9QbVE2Yml1RE5v VnhuZ2JzU1REZWZ4dThlTTd1S1FzdGg0Rm96Zkt2SzNXdWlUZ1FuTEtvUlQwdnYyUDBsdFRi d1gxM1BMVjcyM1A0KzZmTktkNUZKT3NmbDVSWW9RSys1Q3QwOUF1L1U4TTVVNmJZNCtSeTl1 OUtLOEtlRlVUSVVqZHpGOUZDRExLcXdtaXMxTyt1WFRnejJIM3h1eWR6VEhkSThLS1I4RVpz dG9nTktzdGtrUHJOS1VlbldVRVFSTEd5RjJ3M1BsVzF1MHlFY1BweWJYeW1kZGNFQ283dlQ1 aXFwc1JJRzlwcEQ3Z0o3N3JVbWV0ZTBQV3NXMVpGOTB2OFUxcGFVMk1BRG5UMlREajB2MXNG YWdXcE9sWmVqa0I1QnRUT0JYazZkaSs1UTFZMGFmYUcxd3ExMWVPRlpCMEN1UGhkNXBxbnkw SzFXSXpRc1diZHZCckt4dERWTEMzVVJtNzNhWnpUb2dFSjh6aVQrZkpWRzQ2NGswRXI0dldC M3hUbjJjNHd3MGV5QnpLR25RLzE3STNFZDhTUGlwOFJ6c0h0S1FEbW9BakhRQS9yQUlmQWNl QnY4RG53Q3ZnWVhnVWdDRXExd2xKZU11MktaeGVNSVZjcEx5cUV1aDlaWHV5TWV2SldGZklP WU50cm1RdXVDYUY1ZXV4S0RtaG5TM3VFRCtPOXJwR0l3RjVCK3FNV1BRQXhtRTBiR1JjZ0Jn bUI0dVVBd1BSL0dmUVAvZWpta0U3aDlrQmpkc0VUaEVOSUpZOVhlQ0NSVkJISkNVWStkTWlL dGtFTzZvWXZ6MkJsMDZ3c3l5RWNGZmhYdDJSTkRxcUlyaHZid2dRRllITFN0RDM3SG9FM29J T25DSkpDc0tUY3FZeVNtZGNkY0hCTnpjMFkzRjRaMWdMVURzTFFzQ1Q4QW15Zm13cG5DeXNz SDVWSXhObUNueGdDWnY4UlFrU2hVRVhjUlZuSjhzTUJvSGpPbVJZM2hBQ3pONGM5eVJUUXVJ dFJqb2JJUE0wMlhEaUMxRjNnb2w5Wk53Uy9DNGhpMVJpcXNEZU1EcWtQaEdJZ1dwOHZOb2p5 UXJvMDdqWWZ3enNXWGtMSWxDeTJJcjdodmV1cG9ENjN6U3ZjUFNGK1BsMzRDcG8wSHVRUGdp dFFiQStRajB5VUtpQkpGVGhWblRxZW1UQmRua2llVEY4VnJ5TzNqcFlubGc5RjVMODByaWxp Ym1sZFhqMWVaOHpaK3VsRlhyUE1XMVVjcURGOVMrcFN6ZkZwNVQ5bkV3TTVBaXpQczcvWWUr TGg4OHpqeXNGZmMzWCt0MUp0bk5aZkdJRnYwNk1mSDNhRXBocURIYVBLVzY1Ri9ZNmVEWVJo em5nVmlSSXM1SERhZ3RleTVyTVdTcXhPdk53Wkt5eTMrYWQ2ekZ1bU9uQ0l0dU1Vci9jaHEw Wm5DVXp2S0p2bTF3WlpRc2FPUUwxKysvV0NQS1dDY3MzLzUxSUQwRXk5WWtPZFJTZmViMzgx UkYralVWYk1xTlJVbW04ZnVOSUhHZ2hKZFlkRHZGNk8zT2x0c0NxWWdOOWRXV3hnL08zNzFI MVpOUHozZFF2N1RJdjNjKzRMM3R0UGVueldaVDRmREMxSi9URjBZSUZmUFBERUJ2Qk8rK0h5 WTJ0SWo5dFV1VzdLc1Jwb1JadllrYndUM1RKYzJKdXZFSjMxVTBXM2krN1RXWEdoVTg0R3lN dTNhYUd0RmtZNmt5SUt5eWlxOXByUXlXbWdvTFNzenVNY0hxcGN0bnUwRFZBNDRUUmFMQVZQ VUZONG5YYmgyeWV0TFRhV0dPNlZmL1VqQjVmWWY2NzZrekdHQXByeXlRdGUrZlV6NTdQQ3M1 K2JmVzdNOHBaTmVYU3ZPWFBmQ0FYcE9lT2pNQzErR3Z4ajRZc0VMNDc5YytPNzBMeGVDcHRR ZjRtZWJxS0wvQnR1ZVZ4djVmT1VKNmFVVE9lYXZEOENDaXZRMGNCSThLajBCdWtVYWRNUHJv K2k4VUhxQzloMDQ4TzdDOGZBdlBoMytpVSthZ1VuNm16bStWbnc5RHE2UTdnZW0yNmlPNmRJ MWZYZVB6K1VVZ1lHZ3QvdjQ1TGloek1qeEtqSUg5TGduVDU5Uk5nMHNpSzZJTmtWV1JGTkhu YjBsQyszTlRyQmp1bVNMTmt6UHJhZFBtNnBzOWxpcDJWSVd0Y1hIYXptTkkyRFVsM3RNaUQv WDF1Nm5sZUd3Z29tZkN1c01pcEJTb1dTWXNIYXp5cWdwWUNOem9yZmxqMWxUZTI5K2RHQjhT MTNZWE56alZ4ZEZLa0x4S2ZYajFzN3Njbmg2dktyV2hYc20zcHMvWnRXWTIvSWRrWERZcm9K cThZWktqc3ZWYWxWYXByQytvZkdFT0ZhUnExVTdlRk8xcFNCSCtpM0k1WXVOcC9JcC9XMzMz bmJ2dlRzUFNMODk5WUpDUTI3YmVVcjY2VU9ueng2WWVNL0prNzJueGFXblFmZHA4Y0djMW9G RmcyMTVOT29TbmI4aFFITTBiOVpxY2ozMWtiQ1ZVM0lBUWtiSXRVR3VJNWNoeVpPZ0N0Smoz cEkzbDJpTXVTWDlnWURCTjk1YnNqeUs2WUozT0J4ODQrNHVxeTkzeW4wVEt3ZWxKL09sR2VC UjhaT2ZrZWRQNTRNRitYQllvcjZCeDZsTFg0ci8wblZXcUwxR2JZWFIyKzJ2bUVvZFBwdmFF NDlUVzg5SzcwbC9BeVp4RStvcGRHRDdDZ2NJN2lPSWYyeUVCMktIT25rRmpBcWtWeFRGbFBM R0UrbGxNQjdna3RlTHVKUkFBYkJ6RmFpdWdQd05lMDk5NUJFZjFOYzdreWZSTWtnUHVDUUJE MW9NU2M5MDF1dkpLWjZoTzBoMUtsK1p4eFNBMzFPUFMxOUk3NHRQU2U4eGVlenJ6TzlUZDRQ elNvNmN5dER4bW9BNHhXUkZheU5yQW1RSDJSR29RVXN1clNaeFNxQ0VuSjJ2WkxtaGszUXBp RXFQaUhPbFJ6bFdtVThtT0M2VmluTGtnMXphWmdTUXpZakEra1l0M3VIbTI5YU5OaUtlYXll TkhqenZFcVRjWUhqbEtLajJRbVVmelpDeEdYam1IeEtHMTdHMnNLR2VLMk5DN01xZUVDdGRX Vmdkc0xIZ1dkWVdxQzRFYzVJSlpDdW40eUM5dkpVbFVCSnhlQkVzaFVQUldXMCtYOXVzcUtB dHFpZ3NyQ2pTWGlLZ2trSll2TWpKSVFXVHlyNHRhVDhidk9jckpKbTBoeWxhODVURWE1N2xW ZEJvTlhSU1FLdEdrY2QxMmo0czIvYlFUaEdiaVAzRWNlSXgrT2lIOW5lOGJDL08vM0IveVA4 dy9uRFRwcStVLzRjZVhIejNQMDR5OUlNeExudWdJTEp1dnZVNmd2YS8rOGtQWGNVZi9Ncm9x NndqWWRyZUJIczZqcnpySVhhbTFIaEtIK2xFMkV3ajcxOHBnNkRNRnFsNFRTMlU5ekFlL1Jm U3VrbTZ6Ukx3bHhhK1N3NWRKQmpkcnVRL3JDM3Q3WTZ5TWJ6RlllRU4zb2dqdW1pd3k3S2ll Tzc2dlYxMTh6dExORGFQdG41TmxDV1lXYVFacFM0UEJFd0x3SnZKTWlZdVNDK3FuRlpOS0dp dHFxaW9panFjMVI1ZDljUlpnYkZqMXMrcTgzZGNPYWE4dFg1TU1WOXJGNDlRYjZYOUJUMVl2 ODBuZEhoOUh3LzBJL3Z3eUpzQXVOQWtzc3NZUVM0aUVsN05Kd3hCeFlvaExoSFNLWEVRYlds S0RwNmlDT2s5UUR3SkI4RjdhTjh6Z0o0U0tVRTZCUWF4NS9hcFUya2ZNVTk2enl0VjJrZHM1 RHNjZ1liU0pWaXFUTjRjMnEzbmxKd25taFZBdVkzMkErNzRIbDlhYkVITXpMK3dISERMVzBT R1FYcWhLdWxEM25ISXdaYjVTSGFVL1VoS0hqeUl2S1RrTzhDUVQvSjJ2MEhjcG0ycUwwVWh2 Vjh0UFF4VUdqVVB3Q1JIc0tLaHZMNVJRKzVHVHNMWTcvYXlEQTZtTTA4UnlCbGNXMTNmV21U d0Z5SVA0WWRVWHAweHdFc1BPWm9xSEMyTjFScmU3a045TWtpOEJkdW9EUHZnZTVIVlFTL0xn U0o1dTlOWVdndFA3NTVvalBuUURxQkc3cTltYzNKWG5vTjNtOFhkK1hsbVVHRjF1YzJBcDdU NWpnTGVrVDhVK2ZLcnIwQVAzZkpWOGdXTytRaTlUTzZDOGNodE9BMm9OSnVsZjFKNFpWL3E2 SmRmZnBWNmxXNzVNdmt6THVNRGxOa2JVTjZ0eVpiWnJ5blRoMmdkQUlVTVAzaWxCaCttQ1Fy dEFTV0kyQWVmeFZmTU5ER2ZGTkRXVGltOEtCUzlwckNMUDR6REV2SnJJR1N0UGFXdzlDQ0F2 UDFlOXBaOTd1eXQrdEErMldoZlVCaG1ua2hlcERteG15RnFycnk2YStoczE5VlgxbkFMenc2 RlRZR1lFeEJRbkpucGNPcDJYa04rRHNNbUpueE9GS1NGS0JhS3oxcFNGc284OUpnekZqQ1pv TXc3ZDg0L3dRMVR5dTNneG1WQ0xkQUE5ZnR1eU12bGFZV01pZ1h4TzhCNlZYcGxMQ3dTUytE OUUzSHZOY25XRXhCTmIzRUxZajRPK0dBTXFEQkVDVHpFQUNHZ3RpS2dKSUdqVEVEN1pYRUVy M3BOV3Z5NnM3VFVMaTFRRnpnZWRaUUdIQ2ZJdUwxVVY2SjZSTVVuTnh5KzRUQjk1SWFYcFUy dkZMY1h2d0t1WjFBNkpyMkRJUGJyd3F0dXhiRTZIOHhxL3F0Mk83aGQ1ZE9Yd3F4Z1JrMzJB dFdqS3AvNC9PRWJiZ0FuYm5oRjJ2QnljVWZ4eTJCLzFsb0xlUjZGejB5azRGVTVhQ0lGTWdU Y2pRTHFSa0VzSHlEZkVOOUQrNE9JTXE5QW5VOTZ4T0FBK1NZbW93d3RxZE1yZm91d2owOVZC aHNBdVhjQlVuclFqaGhwQWxPQ2JLOGV0SDhFNExBenFrUU1wYmQ3SzVVRXN3Wk1rVzJHekQ0 Z0RMM0tDRU9DZkpnMVF5Y2xTRkJvVG1zSThoVjBSUnU4WEpnQ1l6K29NVU5GK2dGcEtrbWdj eXFBN1lSWlQrQjVpc2FNTml4QkszZW1jeGU0K3lCQ1cwb2NJVjdBT0MyOTJEZnRLbysyS0lZ RE5iUDN3YkM3dkowMkdrQkkzZ2NxR3N0czlVR1BiRjVzTU5xWjdEbGpsalBpNlZNOFFZQ3RN ajZvSktKOVE4aGl2Q01VSmU4cXdza3UyakIxT0lUV2ZWd0lteWRldWE1QlgyclJ0bmEyNnRT TlBWUDlpODYrOE5EQkpiYVNjUG1kOHpWZW5iNE12dXNZOVM3NXFjcWkydnJPOFJrbEpaSERz N2k4SExXR3p5TVpmNndoWEF4WWF2S0JoYlZhalhuR3RwdnZmZlJrTk5DNllueGcvTzVIRnhR NEM1b1krYlpueitrRkJYWjFFMGxSWFZxTjU3NC9Ta043VUpidkhwOFJ5TTZTOVVjYnF0MGtR MDArdUxDR2V1LzRzYzRqZXpkVjhBVTZxMVZSSGpMU3BaTTIzdnpZd3FNM243anBtai9ONG92 VkJiek9Xc2hsdlVrdEJJQlpjTy83Vy92dUdEZGpjem1WcHlCOWRTMzE1U3lwMWh1MStkVFl1 NTgrdTdKbGIzemE3Y0xDY1I1d2UyV0h6akc0N3RydSthZDM5NURrUHd5OC9HQmY5NExUdThl VDVQL21hTUQ2MWozeDNlZHZuWVF5dmsvT2VGT1F5b2NaMStLTUMzUW80L1lUVC93YVV2RC9B OWg3bFVnQUFBQUFBUUFBQUFTbzlqWnRReHhmRHp6MUFBc0lBQUFBQUFDLy9jR0FBQUFBQU40 d1Nzei8vQUFBTDgwSUFRQUFBQWtBQWdBQUFBQUFBSGljWTJCa1lPQmdBQUVEaHY5L0dCajB6 ekl3TXFDQ1ZBQklEQU9YQUFBQWVKeGoxV0pZeHNIQXdBREViRkFhaEJ1Z21BRUpBK1VabDNJ d01ER2pxY1BHdm96S1owU1dGd2J5ZzRFWTNYd1lsb1RpQnFnK0VGYUFxSWZ4d1d3SEtOOEJo emtnOHp1QmFyU2dhb0NZaVFHaUQ4ejNBT0lEU080NmdORDcvdzhPTS9GaEJ6UzNBTTFsYmtE ekI3STZHRzZBdWNPQWdhRU5TTE16TkRDQUFJUmtZSWlHMGlBK0J3QU56Qm1YQUFBQUFBQUFG Z0JJQVRnQldnSUFBaUlDZGdLY0EwSURXZ04wQTRvRG9BUjJCUkFGYkFYWUJqNEcxQWNrQjR3 SG9nZjhDSUlJcEFqS0NPd0pXZ2w4Q1p3SjNnb0FDcXdLM2d0aUM3Z0x6Z3ZtREJBTVlBeW9E TkFORWcxNkRmWU9hQThHRDJ3UUJCQkVFSFlRcUJFRUVjZ1NqaE1XRTNRVDZCUlVGSElVbkJV ZUZXNFZ3aFhvRmo0V3ZoY2NGMm9ZUGhoT0dVWVpqQm42R293YkRodDRHL3djc2gwU0hkUWV0 QjhlSDNBZ0JDQmtJU1loZkNIVUlmb2lrQ01NSTdna1hpVDJKWElsckNZT0p5d3FMQ3FXS3Zv ckZDd0VMR1lzbml6Q0xUQXRlaTIwTGY0dWVDNmdMd0F3QkhpY1kyQmtZR0FvWm1KamtHY0FB VVl3eVFYQ2pKRWdKZ0FTZXdFTEFBQUFlSnkxVkQrTEhEY1VmM3U3OWwxd2ZBUkR3S1dLRU03 SE1tdGZ6Sm5ZMVdISGxhODVtd00zQWUyTWRrWjRkaVFralljeExsSzZ5TWRJWThpbkNBbWtU SjFQa0RwVnlyejNwTm5iODI3TUpaQWRSdlBUMC92N2UwOExBTGRIWDhJSTR1OHJmQ01ld1Mz Y1Jid0R1L0JOd21PVVAwdDRndmpiaEsvQnAyQVR2ZzZmd2R1RWQrRnIrRDdoUGZnY2ZrbjRC aHpDN3duZkhQMDhtaVM4RDRjN3YyS1UwZVFUM0JVN2Z5WThnaS9HNXdudndQNzRUY0pqbEw5 TGVJTDR4NFN2d2UzeGJ3bGZCekgrSStGZGNKTzloUGZnY0RMNHVRRXZKajhrZkhQOGJ2Slh3 dnZ3WXUrN245NkxvN3YzSG9oVG5Udmp6U0tJeDhaWjQyVFFwc25FU1YyTE0xMVd3WXN6NVpW N3JZcnNxWnc3bll2VEo4K094SW4zS3ZnelZiYTFkSnNIbTVKejVUeDZGdmV6NCtONFNvZng3 TGtxalJMYUN5bUNrNFZhU3ZkS21JVUlsVnJMcjNTbXRTVE96ZExLUml1ZmJVMitDc0Urbk0y NnJzdVd3M21HTnJQUVcxTTZhYXQrdGpCTjhMTUxjOTlhVzJ0VkNEckl4RXZUaXFYc1Jlc1ZK b0dKa1ZnRUkzS25aRkJUVVdodmE5bFBoV3dLWVozRzB4eFZGSDZsRjFhNXBRNEIzYzE3THFM V3VXcklGeDU0WWR3QUZoUmh1bG1xZGFabzh6QVZ4RHphVHNsbUNLQWIwVlU2cjlZeTZ6Q29i dks2TGJCTnEreE5VL2ZpUU44UmFqbkhYQzdVMGNQSHNtWDFRamVsY01vSDdCU3hlaEdBekZl K0hqRURCeHFqQkxXa0ZqaU5VUXZUTmJXUnhXWDJaS1JLT1NySFlDaGMyMkRiSUFwRlpaSk9w V3A3bVZFY3hxWlA2dFFRZElqOFZIcXVNZWZzNnQyRzl5RGdDTzdDUFhpQTZCUTA1T0RBZ01k M0FRRmxqeEU1dlBPMFNwUm9SQTFrZUhJQ05UNEN6bEJXUW9Wbm5uY0t2d3ExWCtOYW9PWlR0 SnZqbm54VGpDZjR6M0xFOXA0MXlZNnNTbWpSbjBUTnExaGNSZWVjOC9BcFp3SDNNWnRqZk5a dEI4dDF1K2VjamNGVm9BNVZKZkVOekVDQjBpVm4rUXBseEJLZFZLeTdqYitTOXkweU9Ham4r RjNpWG1KT210bksvZ1h6eEhOQTZVT1k0ZFB4azZHL0QrMnpGR2VHdUdjdkpmdXg2S0ZINllL OVViV3pyZEU5NTJ5eEk1cjdLRllXMVB1WFhKTmdKbnI4dHN4ZFpDSXlObWlUekhEVkRqV29E Z1ZUM0Jlc1o3bmpQVXVJRDRwanVUUFJOazllVk5wTDltMjVyMVJ6NERPeW1uTWVReWRxcm9p c2hyeWloZWN1dUEzSllsWEQ5RXBkdGJ3djBDYkgvWlQ1aWpNZjQwNVhjVDZzUVBNa2RzeFRq dXQyenJwVUtXbm5XRTNMYzFkczVaNXNha1lIcUg4SHZ6U2g4OFRMTnU4eGgvL0s3WVgzZ2oy VktITTh4eUhkcVdGV3QxVXdSTi9NNjlIYURGQWxzWmJBOFlaYlFQNWpyUVZLT3E3YzhLMzgy T3pKUzFPbHVDOG1yYkdxaUZ1K1dTMWJVclpETndjL3BGbnpUZjduR1kzL2pFM3F6SVgzNFli b3hETE5EK1U3WjZaamIvK0h1LzAzaHNjNG1nQjRuR05nWmdDRC8zNE01UXlZb0JnQUtaMENP M2ljMjhDZ3piQ0prWk5KbTNFVEY0amN6dFdhRzJxcnlzQ2h2WjA3TmRoQlR3YkU0b253c05D UUJMRjRuYzIxNVlWQkxENGRGUmtSSGhDTFgwNUNtSThEeEJMZzQrRmtad0d4Qk1FQXhCTGFN S0Vnd0FESVl0ak9DRGVhQ1c0ME05eG9GcmpSckhDajJlUWtvVWF6dzQzbWdCdk5DVGQ2a3pB anUvWUdCZ1hYMmt3SkZ3REVBU2dhQUFBQSk7DQogICAgICBmb250LXdlaWdodDogNDAwOw0K ICAgICAgZm9udC1zdHlsZTogbm9ybWFsOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAu bXMtSWNvbi0tU2V0dGluZ3M6YmVmb3JlIHsNCiAgICAgIGNvbnRlbnQ6ICI/IjsNCiAgICB9 DQoNCiAgICAubzM2NWNzLWJhc2UgLm1zLUljb24tLVJpbmdlcjpiZWZvcmUgew0KICAgICAg Y29udGVudDogIj8iOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubXMtSWNvbi0tSGVs cDpiZWZvcmUgew0KICAgICAgY29udGVudDogIj8iOw0KICAgIH0NCg0KICAgIC5vMzY1Y3Mt YmFzZSAubXMtSWNvbi0tQnVzaW5lc3NDZW50cmFsTG9nbzpiZWZvcmUsDQogICAgLm8zNjVj cy1iYXNlIC5tcy1JY29uLS1DbGlwY2hhbXBMb2dvOmJlZm9yZSwNCiAgICAubzM2NWNzLWJh c2UgLm1zLUljb24tLUNsb3VkUENMb2dvOmJlZm9yZSwNCiAgICAubzM2NWNzLWJhc2UgLm1z LUljb24tLURlZmVuZGVyTG9nbzpiZWZvcmUsDQogICAgLm8zNjVjcy1iYXNlIC5tcy1JY29u LS1EZXNpZ25lckxvZ286YmVmb3JlLA0KICAgIC5vMzY1Y3MtYmFzZSAubXMtSWNvbi0tRWRp dG9yTG9nbzpiZWZvcmUsDQogICAgLm8zNjVjcy1iYXNlIC5tcy1JY29uLS1GYW1pbHlTYWZl dHlMb2dvOmJlZm9yZSwNCiAgICAubzM2NWNzLWJhc2UgLm1zLUljb24tLUxvb3BMb2dvOmJl Zm9yZSwNCiAgICAubzM2NWNzLWJhc2UgLm1zLUljb24tLU1pY3Jvc29mdDM2NUxvZ286YmVm b3JlLA0KICAgIC5vMzY1Y3MtYmFzZSAubXMtSWNvbi0tTW9yZUFwcHNMb2dvOmJlZm9yZSwN CiAgICAubzM2NWNzLWJhc2UgLm1zLUljb24tLVBvd2VyUGFnZXNMb2dvOmJlZm9yZSwNCiAg ICAubzM2NWNzLWJhc2UgLm1zLUljb24tLVByaXZhY3lMb2dvOmJlZm9yZSwNCiAgICAubzM2 NWNzLWJhc2UgLm1zLUljb24tLVJld2FyZHNMb2dvOmJlZm9yZSwNCiAgICAubzM2NWNzLWJh c2UgLm1zLUljb24tLVZpdmFBbXBsaWZ5TG9nbzpiZWZvcmUsDQogICAgLm8zNjVjcy1iYXNl IC5tcy1JY29uLS1WaXZhRW5nYWdlTG9nbzpiZWZvcmUsDQogICAgLm8zNjVjcy1iYXNlIC5t cy1JY29uLS1WaXZhR29hbHNMb2dvOmJlZm9yZSwNCiAgICAubzM2NWNzLWJhc2UgLm1zLUlj b24tLVZpdmFIb21lTG9nbzpiZWZvcmUsDQogICAgLm8zNjVjcy1iYXNlIC5tcy1JY29uLS1W aXZhSW5zaWdodHNMb2dvOmJlZm9yZSwNCiAgICAubzM2NWNzLWJhc2UgLm1zLUljb24tLVZp dmFMZWFybmluZ0xvZ286YmVmb3JlLA0KICAgIC5vMzY1Y3MtYmFzZSAubXMtSWNvbi0tVml2 YVB1bHNlTG9nbzpiZWZvcmUsDQogICAgLm8zNjVjcy1iYXNlIC5tcy1JY29uLS1WaXZhVG9w aWNzTG9nbzpiZWZvcmUsDQogICAgLm8zNjVjcy1iYXNlIC5tcy1JY29uLS1XYWZmbGVPZmZp Y2UzNjU6YmVmb3JlIHsNCiAgICAgIGNvbnRlbnQ6ICI/IjsNCiAgICB9DQoNCiAgICAubzM2 NWNzLWJhc2UgLm1zLUljb24tLVNlYXJjaDpiZWZvcmUgew0KICAgICAgY29udGVudDogIj8i Ow0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubXMtSWNvbi0tQ29udGFjdDpiZWZvcmUg ew0KICAgICAgY29udGVudDogIj8iOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubXMt SWNvbi0tQ3VzdG9tZXJWb2ljZUxvZ286YmVmb3JlIHsNCiAgICAgIGNvbnRlbnQ6ICI/IjsN CiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm1zLUljb24tLUxpc3RzTG9nbzpiZWZvcmUg ew0KICAgICAgY29udGVudDogIj8iOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubXMt SWNvbi0tQWRkSW46YmVmb3JlIHsNCiAgICAgIGNvbnRlbnQ6ICI/IjsNCiAgICB9DQoNCiAg ICAubzM2NWNzLWJhc2UgLm1zLUljb24tLUFkbWluQUxvZ286YmVmb3JlIHsNCiAgICAgIGNv bnRlbnQ6ICI/IjsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm1zLUljb24tLUFkbWlu UExvZ286YmVmb3JlIHsNCiAgICAgIGNvbnRlbnQ6ICI/IjsNCiAgICB9DQoNCiAgICAubzM2 NWNzLWJhc2UgLm1zLUljb24tLUFuYWx5dGljc0xvZ286YmVmb3JlIHsNCiAgICAgIGNvbnRl bnQ6ICI/IjsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm1zLUljb24tLUFsYXJtQ2xv Y2s6YmVmb3JlIHsNCiAgICAgIGNvbnRlbnQ6ICI/IjsNCiAgICB9DQoNCiAgICAubzM2NWNz LWJhc2UgLm1zLUljb24tLUJhY2s6YmVmb3JlIHsNCiAgICAgIGNvbnRlbnQ6ICI/IjsNCiAg ICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm1zLUljb24tLUJpbmdMb2dvOmJlZm9yZSB7DQog ICAgICBjb250ZW50OiAiPyI7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5tcy1JY29u LS1Cb29raW5nc0xvZ286YmVmb3JlIHsNCiAgICAgIGNvbnRlbnQ6ICI/IjsNCiAgICB9DQoN CiAgICAubzM2NWNzLWJhc2UgLm1zLUljb24tLUJ1c2luZXNzQ2VudGVyTG9nbzpiZWZvcmUg ew0KICAgICAgY29udGVudDogIj8iOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubXMt SWNvbi0tQ2FsZW5kYXI6YmVmb3JlIHsNCiAgICAgIGNvbnRlbnQ6ICI/IjsNCiAgICB9DQoN CiAgICAubzM2NWNzLWJhc2UgLm1zLUljb24tLUNhbWVyYTpiZWZvcmUgew0KICAgICAgY29u dGVudDogIj8iOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubXMtSWNvbi0tQ2FyZXRT b2xpZERvd246YmVmb3JlIHsNCiAgICAgIGNvbnRlbnQ6ICI/IjsNCiAgICB9DQoNCiAgICAu bzM2NWNzLWJhc2UgLm1zLUljb24tLUNoYXJ0OmJlZm9yZSB7DQogICAgICBjb250ZW50OiAi PyI7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5tcy1JY29uLS1DaGF0Q2lyY2xlQXJy b3c6YmVmb3JlIHsNCiAgICAgIGNvbnRlbnQ6ICI/IjsNCiAgICB9DQoNCiAgICAubzM2NWNz LWJhc2UgLm1zLUljb24tLUNoYXRDaXJjbGVDaGVjazpiZWZvcmUgew0KICAgICAgY29udGVu dDogIj8iOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubXMtSWNvbi0tQ2hhdENpcmNs ZUNsb2NrOmJlZm9yZSB7DQogICAgICBjb250ZW50OiAiPyI7DQogICAgfQ0KDQogICAgLm8z NjVjcy1iYXNlIC5tcy1JY29uLS1DaGF0Q2lyY2xlTWludXM6YmVmb3JlIHsNCiAgICAgIGNv bnRlbnQ6ICI/IjsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm1zLUljb24tLUNoZWNr TWFyazpiZWZvcmUgew0KICAgICAgY29udGVudDogIj8iOw0KICAgIH0NCg0KICAgIC5vMzY1 Y3MtYmFzZSAubXMtSWNvbi0tQ2hldnJvbkRvd25NZWQ6YmVmb3JlIHsNCiAgICAgIGNvbnRl bnQ6ICI/IjsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm1zLUljb24tLUNoZXZyb25M ZWZ0OmJlZm9yZSB7DQogICAgICBjb250ZW50OiAiPyI7DQogICAgfQ0KDQogICAgLm8zNjVj cy1iYXNlIC5tcy1JY29uLS1DaGV2cm9uUmlnaHQ6YmVmb3JlIHsNCiAgICAgIGNvbnRlbnQ6 ICI/IjsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm1zLUljb24tLUNoZXZyb25VcE1l ZDpiZWZvcmUgew0KICAgICAgY29udGVudDogIj8iOw0KICAgIH0NCg0KICAgIC5vMzY1Y3Mt YmFzZSAubXMtSWNvbi0tQ2hyb21lQ2xvc2U6YmVmb3JlIHsNCiAgICAgIGNvbnRlbnQ6ICI/ IjsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm1zLUljb24tLUNpcmNsZUZpbGw6YmVm b3JlIHsNCiAgICAgIGNvbnRlbnQ6ICI/IjsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2Ug Lm1zLUljb24tLUNsYXNzTm90ZWJvb2tMb2dvMzI6YmVmb3JlIHsNCiAgICAgIGNvbnRlbnQ6 ICI/IjsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm1zLUljb24tLUNsYXNzcm9vbUxv Z286YmVmb3JlIHsNCiAgICAgIGNvbnRlbnQ6ICI/IjsNCiAgICB9DQoNCiAgICAubzM2NWNz LWJhc2UgLm1zLUljb24tLUNsZWFyOmJlZm9yZSB7DQogICAgICBjb250ZW50OiAiPyI7DQog ICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5tcy1JY29uLS1EZWxldGU6YmVmb3JlIHsNCiAg ICAgIGNvbnRlbnQ6ICI/IjsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm1zLUljb24t LURlbHZlTG9nbzpiZWZvcmUgew0KICAgICAgY29udGVudDogIj8iOw0KICAgIH0NCg0KICAg IC5vMzY1Y3MtYmFzZSAubXMtSWNvbi0tRGlhbW9uZDpiZWZvcmUgew0KICAgICAgY29udGVu dDogIj8iOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubXMtSWNvbi0tRG9jc0xvZ29J bnZlcnNlOmJlZm9yZSB7DQogICAgICBjb250ZW50OiAiPyI7DQogICAgfQ0KDQogICAgLm8z NjVjcy1iYXNlIC5tcy1JY29uLS1Eb3dubG9hZDpiZWZvcmUgew0KICAgICAgY29udGVudDog Ij8iOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubXMtSWNvbi0tRHluYW1pY1NNQkxv Z286YmVmb3JlIHsNCiAgICAgIGNvbnRlbnQ6ICI/IjsNCiAgICB9DQoNCiAgICAubzM2NWNz LWJhc2UgLm1zLUljb24tLUR5bmFtaWNzMzY1TG9nbzpiZWZvcmUgew0KICAgICAgY29udGVu dDogIj8iOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubXMtSWNvbi0tRW1vamkyOmJl Zm9yZSB7DQogICAgICBjb250ZW50OiAiPyI7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNl IC5tcy1JY29uLS1FeGNlbExvZ286YmVmb3JlIHsNCiAgICAgIGNvbnRlbnQ6ICI/IjsNCiAg ICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm1zLUljb24tLUV2ZW50OmJlZm9yZSB7DQogICAg ICBjb250ZW50OiAiPyI7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5tcy1JY29uLS1F dmVudFRvRG9Mb2dvOmJlZm9yZSB7DQogICAgICBjb250ZW50OiAiPyI7DQogICAgfQ0KDQog ICAgLm8zNjVjcy1iYXNlIC5tcy1JY29uLS1GZWF0dXJlRmxhZ3NMb2dvOmJlZm9yZSB7DQog ICAgICBjb250ZW50OiAiPyI7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5tcy1JY29u LS1Gb2xkZXJIb3Jpem9udGFsOmJlZm9yZSB7DQogICAgICBjb250ZW50OiAiPyI7DQogICAg fQ0KDQogICAgLm8zNjVjcy1iYXNlIC5tcy1JY29uLS1GaWxlQVNQWDpiZWZvcmUgew0KICAg ICAgY29udGVudDogIj8iOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubXMtSWNvbi0t Rm9yd2FyZDpiZWZvcmUgew0KICAgICAgY29udGVudDogIj8iOw0KICAgIH0NCg0KICAgIC5v MzY1Y3MtYmFzZSAubXMtSWNvbi0tRnVsbENpcmNsZU1hc2s6YmVmb3JlIHsNCiAgICAgIGNv bnRlbnQ6ICI/IjsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm1zLUljb24tLUdhbGxh dGluTG9nbzpiZWZvcmUgew0KICAgICAgY29udGVudDogIj8iOw0KICAgIH0NCg0KICAgIC5v MzY1Y3MtYmFzZSAubXMtSWNvbi0tR2xvYmFsTmF2QnV0dG9uOmJlZm9yZSB7DQogICAgICBj b250ZW50OiAiPyI7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5tcy1JY29uLS1HbG9i ZTpiZWZvcmUgew0KICAgICAgY29udGVudDogIj8iOw0KICAgIH0NCg0KICAgIC5vMzY1Y3Mt YmFzZSAubXMtSWNvbi0tSGVscE1pcnJvcmVkOmJlZm9yZSB7DQogICAgICBjb250ZW50OiAi PyI7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5tcy1JY29uLS1IaXN0b3J5OmJlZm9y ZSB7DQogICAgICBjb250ZW50OiAiPyI7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5t cy1JY29uLS1JbmZvOmJlZm9yZSB7DQogICAgICBjb250ZW50OiAiPyI7DQogICAgfQ0KDQog ICAgLm8zNjVjcy1iYXNlIC5tcy1JY29uLS1LYWl6YWxhTG9nbzpiZWZvcmUgew0KICAgICAg Y29udGVudDogIj8iOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubXMtSWNvbi0tTGln aHRidWxiOmJlZm9yZSB7DQogICAgICBjb250ZW50OiAiPyI7DQogICAgfQ0KDQogICAgLm8z NjVjcy1iYXNlIC5tcy1JY29uLS1NU05Mb2dvOmJlZm9yZSB7DQogICAgICBjb250ZW50OiAi PyI7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5tcy1JY29uLS1NYWlsOmJlZm9yZSB7 DQogICAgICBjb250ZW50OiAiPyI7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5tcy1J Y29uLS1NaWNyb3NvZnRGbG93TG9nbzpiZWZvcmUgew0KICAgICAgY29udGVudDogIj8iOw0K ICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubXMtSWNvbi0tTWljcm9zb2Z0U3RhZmZodWJM b2dvOmJlZm9yZSB7DQogICAgICBjb250ZW50OiAiPyI7DQogICAgfQ0KDQogICAgLm8zNjVj cy1iYXNlIC5tcy1JY29uLS1Nb3JlOmJlZm9yZSB7DQogICAgICBjb250ZW50OiAiPyI7DQog ICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5tcy1JY29uLS1Nb3JlVmVydGljYWw6YmVmb3Jl IHsNCiAgICAgIGNvbnRlbnQ6ICI/IjsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm1z LUljb24tLU0zNjVJbnZvaWNpbmdMb2dvOmJlZm9yZSB7DQogICAgICBjb250ZW50OiAiPyI7 DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5tcy1JY29uLS1OYXZpZ2F0ZUV4dGVybmFs SW5saW5lOmJlZm9yZSB7DQogICAgICBjb250ZW50OiAiPyI7DQogICAgfQ0KDQogICAgLm8z NjVjcy1iYXNlIC5tcy1JY29uLS1OZXdzOmJlZm9yZSB7DQogICAgICBjb250ZW50OiAiPyI7 DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5tcy1JY29uLS1Ob25wcm9maXRMb2dvMzI6 YmVmb3JlIHsNCiAgICAgIGNvbnRlbnQ6ICI/IjsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJh c2UgLm1zLUljb24tLU9mZmljZUFkZGluc0xvZ286YmVmb3JlIHsNCiAgICAgIGNvbnRlbnQ6 ICI/IjsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm1zLUljb24tLU9mZmljZUNoYXQ6 YmVmb3JlIHsNCiAgICAgIGNvbnRlbnQ6ICI/IjsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJh c2UgLm1zLUljb24tLU9mZmljZUNoYXRTb2xpZDpiZWZvcmUgew0KICAgICAgY29udGVudDog Ij8iOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubXMtSWNvbi0tT2ZmaWNlRm9ybXNM b2dvOmJlZm9yZSB7DQogICAgICBjb250ZW50OiAiPyI7DQogICAgfQ0KDQogICAgLm8zNjVj cy1iYXNlIC5tcy1JY29uLS1PZmZpY2VMb2dvOmJlZm9yZSB7DQogICAgICBjb250ZW50OiAi PyI7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5tcy1JY29uLS1PZmZpY2VWaWRlb0xv Z286YmVmb3JlIHsNCiAgICAgIGNvbnRlbnQ6ICI/IjsNCiAgICB9DQoNCiAgICAubzM2NWNz LWJhc2UgLm1zLUljb24tLU9uZURyaXZlOmJlZm9yZSB7DQogICAgICBjb250ZW50OiAiPyI7 DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5tcy1JY29uLS1PbmVOb3RlTG9nbzpiZWZv cmUgew0KICAgICAgY29udGVudDogIj8iOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAu bXMtSWNvbi0tT3V0bG9va0xvZ286YmVmb3JlIHsNCiAgICAgIGNvbnRlbnQ6ICI/IjsNCiAg ICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm1zLUljb24tLVBhZ2U6YmVmb3JlIHsNCiAgICAg IGNvbnRlbnQ6ICI/IjsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm1zLUljb24tLVBh cmF0dXJlTG9nbzpiZWZvcmUgew0KICAgICAgY29udGVudDogIj8iOw0KICAgIH0NCg0KICAg IC5vMzY1Y3MtYmFzZSAubXMtSWNvbi0tUGVvcGxlOmJlZm9yZSB7DQogICAgICBjb250ZW50 OiAiPyI7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5tcy1JY29uLS1QaG9uZTpiZWZv cmUgew0KICAgICAgY29udGVudDogIj8iOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAu bXMtSWNvbi0tUGlubmVkOmJlZm9yZSB7DQogICAgICBjb250ZW50OiAiPyI7DQogICAgfQ0K DQogICAgLm8zNjVjcy1iYXNlIC5tcy1JY29uLS1QbGFubmVyTG9nbzpiZWZvcmUgew0KICAg ICAgY29udGVudDogIj8iOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubXMtSWNvbi0t UG9wRXhwYW5kOmJlZm9yZSB7DQogICAgICBjb250ZW50OiAiPyI7DQogICAgfQ0KDQogICAg Lm8zNjVjcy1iYXNlIC5tcy1JY29uLS1Qb3dlckFwcHNMb2dvOmJlZm9yZSB7DQogICAgICBj b250ZW50OiAiPyI7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5tcy1JY29uLS1Qb3dl ckJJTG9nbzpiZWZvcmUgew0KICAgICAgY29udGVudDogIj8iOw0KICAgIH0NCg0KICAgIC5v MzY1Y3MtYmFzZSAubXMtSWNvbi0tUG93ZXJQb2ludExvZ286YmVmb3JlIHsNCiAgICAgIGNv bnRlbnQ6ICI/IjsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm1zLUljb24tLVByb2pl Y3RMb2dvMzI6YmVmb3JlIHsNCiAgICAgIGNvbnRlbnQ6ICI/IjsNCiAgICB9DQoNCiAgICAu bzM2NWNzLWJhc2UgLm1zLUljb24tLVByb3RlY3Rpb25DZW50ZXJMb2dvMzI6YmVmb3JlIHsN CiAgICAgIGNvbnRlbnQ6ICI/IjsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm1zLUlj b24tLVF1aWNrTm90ZTpiZWZvcmUgew0KICAgICAgY29udGVudDogIj8iOw0KICAgIH0NCg0K ICAgIC5vMzY1Y3MtYmFzZSAubXMtSWNvbi0tU2VjdXJpdHlMb2dvOmJlZm9yZSB7DQogICAg ICBjb250ZW50OiAiPyI7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5tcy1JY29uLS1T aGFyZXBvaW50TG9nbzpiZWZvcmUgew0KICAgICAgY29udGVudDogIj8iOw0KICAgIH0NCg0K ICAgIC5vMzY1Y3MtYmFzZSAubXMtSWNvbi0tU2t5cGVGb3JCdXNpbmVzc0xvZ286YmVmb3Jl IHsNCiAgICAgIGNvbnRlbnQ6ICI/IjsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm1z LUljb24tLVNreXBlTG9nbzpiZWZvcmUgew0KICAgICAgY29udGVudDogIj8iOw0KICAgIH0N Cg0KICAgIC5vMzY1Y3MtYmFzZSAubXMtSWNvbi0tU29jaWFsTGlzdGVuaW5nTG9nbzpiZWZv cmUgew0KICAgICAgY29udGVudDogIj8iOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAu bXMtSWNvbi0tU3RhZmZOb3RlYm9va0xvZ28zMjpiZWZvcmUgew0KICAgICAgY29udGVudDog Ij8iOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubXMtSWNvbi0tU3RvcmVMb2dvOmJl Zm9yZSB7DQogICAgICBjb250ZW50OiAiPyI7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNl IC5tcy1JY29uLS1TdHJlYW1Mb2dvOmJlZm9yZSB7DQogICAgICBjb250ZW50OiAiPyI7DQog ICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5tcy1JY29uLS1Td2F5TG9nbzMyOmJlZm9yZSB7 DQogICAgICBjb250ZW50OiAiPyI7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5tcy1J Y29uLS1UYXNrTG9nbzpiZWZvcmUgew0KICAgICAgY29udGVudDogIj8iOw0KICAgIH0NCg0K ICAgIC5vMzY1Y3MtYmFzZSAubXMtSWNvbi0tVGVhbXNMb2dvOmJlZm9yZSB7DQogICAgICBj b250ZW50OiAiPyI7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5tcy1JY29uLS1Ub0Rv TG9nb0ludmVyc2U6YmVmb3JlIHsNCiAgICAgIGNvbnRlbnQ6ICI/IjsNCiAgICB9DQoNCiAg ICAubzM2NWNzLWJhc2UgLm1zLUljb24tLVRvRG9Mb2dvT3V0bGluZTpiZWZvcmUgew0KICAg ICAgY29udGVudDogIj8iOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubXMtSWNvbi0t VG9nZ2xlQm9yZGVyOmJlZm9yZSB7DQogICAgICBjb250ZW50OiAiPyI7DQogICAgfQ0KDQog ICAgLm8zNjVjcy1iYXNlIC5tcy1JY29uLS1Ub2dnbGVUaHVtYjpiZWZvcmUgew0KICAgICAg Y29udGVudDogIj8iOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubXMtSWNvbi0tVW5r bm93blNvbGlkOmJlZm9yZSB7DQogICAgICBjb250ZW50OiAiPyI7DQogICAgfQ0KDQogICAg Lm8zNjVjcy1iYXNlIC5tcy1JY29uLS1VbnBpbjpiZWZvcmUgew0KICAgICAgY29udGVudDog Ij8iOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubXMtSWNvbi0tVmlkZW86YmVmb3Jl IHsNCiAgICAgIGNvbnRlbnQ6ICI/IjsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm1z LUljb24tLVZpc2lvTG9nbzpiZWZvcmUgew0KICAgICAgY29udGVudDogIj8iOw0KICAgIH0N Cg0KICAgIC5vMzY1Y3MtYmFzZSAubXMtSWNvbi0tV2FybmluZzpiZWZvcmUgew0KICAgICAg Y29udGVudDogIj8iOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubXMtSWNvbi0tV2hp dGVib2FyZExvZ286YmVmb3JlIHsNCiAgICAgIGNvbnRlbnQ6ICI/IjsNCiAgICB9DQoNCiAg ICAubzM2NWNzLWJhc2UgLm1zLUljb24tLVdvcmRMb2dvOmJlZm9yZSB7DQogICAgICBjb250 ZW50OiAiPyI7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5tcy1JY29uLS1ZYW1tZXJM b2dvOmJlZm9yZSB7DQogICAgICBjb250ZW50OiAiPyI7DQogICAgfQ0KICA8L3N0eWxlPg0K ICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiIGoyYz0iIj4NCiAgICAubzM2NXN4LW5hdmJhciB7 DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3OGQ0Ow0KICAgICAgYmFja2dyb3VuZC1w b3NpdGlvbjogbGVmdCB0b3A7DQogICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0Ow0K ICAgICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJh c2UgLm8zNjVzeC1hcHBOYW1lLA0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LWFwcE5hbWU6 dmlzaXRlZCB7DQogICAgICBjb2xvcjogI2ZmZmZmZjsNCiAgICAgIGJhY2tncm91bmQtY29s b3I6ICMwMDc4ZDQ7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtYXBwQnJh bmRMaW5rIHsNCiAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDsNCiAgICB9DQoNCiAgICAubzM2 NWNzLWJhc2UgLm8zNjVzeC1idXR0b24gew0KICAgICAgY29sb3I6ICNmZmZmZmY7DQogICAg ICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3OGQ0Ow0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFz ZSAubzM2NXN4LW5vbkludGVyYWN0aXZlQnV0dG9uIHsNCiAgICAgIGNvbG9yOiAjZmZmZmZm Ow0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwNzhkNDsNCiAgICB9DQoNCiAgICAubzM2 NWNzLWJhc2UgLm8zNjVzeC13YWZmbGUgew0KICAgICAgY29sb3I6ICNmZmZmZmY7DQogICAg ICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3OGQ0Ow0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFz ZSAubzM2NXN4LWJhZGdlIHsNCiAgICAgIGNvbG9yOiAjZmZmZmZmOw0KICAgICAgYmFja2dy b3VuZC1jb2xvcjogIzAwNjNhZTsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVz eC1zaHlIZWFkZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjsNCiAgICB9 DQoNCg0KDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtaGlnaENvbnRyYXN0QnV0dG9uIHsN CiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kICgtbXMtaGlnaC1jb250cmFzdDogYmxhY2stb24t d2hpdGUpIHsNCiAgICAgICAgY29sb3I6IGJsYWNrOw0KICAgICAgICAtbXMtaGlnaC1jb250 cmFzdC1hZGp1c3Q6IG5vbmU7DQogICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOw0K ICAgICAgfQ0KDQogICAgICBAbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6 IHdoaXRlLW9uLWJsYWNrKSB7DQogICAgICAgIGNvbG9yOiB3aGl0ZTsNCiAgICAgICAgLW1z LWhpZ2gtY29udHJhc3QtYWRqdXN0OiBub25lOw0KICAgICAgICBiYWNrZ3JvdW5kLWNvbG9y OiBibGFjazsNCiAgICAgIH0NCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC1h Y3RpdmVCdXR0b24gew0KICAgICAgY29sb3I6ICMyNTI0MjM7DQogICAgICBiYWNrZ3JvdW5k LWNvbG9yOiAjZjNmMmYxOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LWFj Y2VudC1saW5rIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDYzYWU7DQogICAgfQ0K DQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtYWNjZW50LWZvbnQgew0KICAgICAgYmFja2dy b3VuZC1jb2xvcjogIzAwNjNhZTsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVz eC1hY2NlbnQtYmFja2dyb3VuZCB7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA2M2Fl Ow0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LWFjY2VudC1ib3JkZXIgew0K ICAgICAgYm9yZGVyLWNvbG9yOiAjMDA2M2FlOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFz ZSAubzM2NXN4LWRhcmtlci1saW5rLA0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LWRhcmtl ci1saW5rOmhvdmVyLA0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LWRhcmtlci1saW5rOnZp c2l0ZWQsDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtZGFya2VyLWhvdmVyLWxpbms6aG92 ZXIgew0KICAgICAgY29sb3I6ICMwMDRkODg7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNl IC5vMzY1c3gtZGFya2VyLWZvbnQsDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtZGFya2Vy LWhvdmVyLWZvbnQ6aG92ZXIgew0KICAgICAgY29sb3I6ICMwMDRkODg7DQogICAgfQ0KDQog ICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtZGFya2VyLWJhY2tncm91bmQsDQogICAgLm8zNjVj cy1iYXNlIC5vMzY1c3gtZGFya2VyLWhvdmVyLWJhY2tncm91bmQ6aG92ZXIgew0KICAgICAg YmFja2dyb3VuZC1jb2xvcjogIzAwNGQ4ODsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2Ug Lm8zNjVzeC1kYXJrZXItYm9yZGVyLA0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LWRhcmtl ci1ob3Zlci1ib3JkZXI6aG92ZXIgew0KICAgICAgYm9yZGVyLWNvbG9yOiAjMDA0ZDg4Ow0K ICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LWRhcmstbGluaywNCiAgICAubzM2 NWNzLWJhc2UgLm8zNjVzeC1kYXJrLWxpbms6aG92ZXIsDQogICAgLm8zNjVjcy1iYXNlIC5v MzY1c3gtZGFyay1saW5rOnZpc2l0ZWQsDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtZGFy ay1ob3Zlci1saW5rOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjMDA2M2FlOw0KICAgIH0NCg0K ICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LWRhcmstZm9udCwNCiAgICAubzM2NWNzLWJhc2Ug Lm8zNjVzeC1kYXJrLWhvdmVyLWZvbnQ6aG92ZXIgew0KICAgICAgY29sb3I6ICMwMDYzYWU7 DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtZGFyay1iYWNrZ3JvdW5kLA0K ICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LWRhcmstaG92ZXItYmFja2dyb3VuZDpob3ZlciB7 DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA2M2FlOw0KICAgIH0NCg0KICAgIC5vMzY1 Y3MtYmFzZSAubzM2NXN4LWRhcmstYm9yZGVyLA0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4 LWRhcmstaG92ZXItYm9yZGVyOmhvdmVyIHsNCiAgICAgIGJvcmRlci1jb2xvcjogIzAwNjNh ZTsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC1kYXJrQWx0LWxpbmssDQog ICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtZGFya0FsdC1saW5rOmhvdmVyLA0KICAgIC5vMzY1 Y3MtYmFzZSAubzM2NXN4LWRhcmtBbHQtbGluazp2aXNpdGVkLA0KICAgIC5vMzY1Y3MtYmFz ZSAubzM2NXN4LWRhcmtBbHQtaG92ZXItbGluazpob3ZlciB7DQogICAgICBjb2xvcjogIzAw NjNhZTsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC1kYXJrQWx0LWZvbnQs DQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtZGFya0FsdC1ob3Zlci1mb250OmhvdmVyIHsN CiAgICAgIGNvbG9yOiAjMDA2M2FlOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubzM2 NXN4LWRhcmtBbHQtYmFja2dyb3VuZCwNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC1kYXJr QWx0LWhvdmVyLWJhY2tncm91bmQ6aG92ZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjog IzAwNjNhZTsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC1kYXJrQWx0LWJv cmRlciwNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC1kYXJrQWx0LWhvdmVyLWJvcmRlcjpo b3ZlciB7DQogICAgICBib3JkZXItY29sb3I6ICMwMDYzYWU7DQogICAgfQ0KDQogICAgLm8z NjVjcy1iYXNlIC5vMzY1c3gtcHJpbWFyeS1saW5rLA0KICAgIC5vMzY1Y3MtYmFzZSAubzM2 NXN4LXByaW1hcnktbGluazpob3ZlciwNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC1wcmlt YXJ5LWxpbms6dmlzaXRlZCwNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC1wcmltYXJ5LWhv dmVyLWxpbms6aG92ZXIgew0KICAgICAgY29sb3I6ICMwMDc4ZDQ7DQogICAgfQ0KDQogICAg Lm8zNjVjcy1iYXNlIC5vMzY1c3gtcHJpbWFyeS1mb250LA0KICAgIC5vMzY1Y3MtYmFzZSAu bzM2NXN4LXByaW1hcnktaG92ZXItZm9udDpob3ZlciB7DQogICAgICBjb2xvcjogIzAwNzhk NDsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC1wcmltYXJ5LWJhY2tncm91 bmQsDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtcHJpbWFyeS1ob3Zlci1iYWNrZ3JvdW5k OmhvdmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDc4ZDQ7DQogICAgfQ0KDQog ICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtcHJpbWFyeS1ib3JkZXIsDQogICAgLm8zNjVjcy1i YXNlIC5vMzY1c3gtcHJpbWFyeS1ob3Zlci1ib3JkZXI6aG92ZXIgew0KICAgICAgYm9yZGVy LWNvbG9yOiAjMDA3OGQ0Ow0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LXNl Y29uZGFyeS1saW5rLA0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LXNlY29uZGFyeS1saW5r OmhvdmVyLA0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LXNlY29uZGFyeS1saW5rOnZpc2l0 ZWQsDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtc2Vjb25kYXJ5LWhvdmVyLWxpbms6aG92 ZXIgew0KICAgICAgY29sb3I6ICMzYTk4ZTA7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNl IC5vMzY1c3gtc2Vjb25kYXJ5LWZvbnQsDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtc2Vj b25kYXJ5LWhvdmVyLWZvbnQ6aG92ZXIgew0KICAgICAgY29sb3I6ICMzYTk4ZTA7DQogICAg fQ0KDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtc2Vjb25kYXJ5LWJhY2tncm91bmQsDQog ICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtc2Vjb25kYXJ5LWhvdmVyLWJhY2tncm91bmQ6aG92 ZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzNhOThlMDsNCiAgICB9DQoNCiAgICAu bzM2NWNzLWJhc2UgLm8zNjVzeC1zZWNvbmRhcnktYm9yZGVyLA0KICAgIC5vMzY1Y3MtYmFz ZSAubzM2NXN4LXNlY29uZGFyeS1ob3Zlci1ib3JkZXI6aG92ZXIgew0KICAgICAgYm9yZGVy LWNvbG9yOiAjM2E5OGUwOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LXRl cnRpYXJ5LWxpbmssDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtdGVydGlhcnktbGluazpo b3ZlciwNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC10ZXJ0aWFyeS1saW5rOnZpc2l0ZWQs DQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtdGVydGlhcnktaG92ZXItbGluazpob3ZlciB7 DQogICAgICBjb2xvcjogIzlmYzZlNDsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm8z NjVzeC10ZXJ0aWFyeS1mb250LA0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LXRlcnRpYXJ5 LWhvdmVyLWZvbnQ6aG92ZXIgew0KICAgICAgY29sb3I6ICM5ZmM2ZTQ7DQogICAgfQ0KDQog ICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtdGVydGlhcnktYmFja2dyb3VuZCwNCiAgICAubzM2 NWNzLWJhc2UgLm8zNjVzeC10ZXJ0aWFyeS1ob3Zlci1iYWNrZ3JvdW5kOmhvdmVyIHsNCiAg ICAgIGJhY2tncm91bmQtY29sb3I6ICM5ZmM2ZTQ7DQogICAgfQ0KDQogICAgLm8zNjVjcy1i YXNlIC5vMzY1c3gtdGVydGlhcnktYm9yZGVyLA0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4 LXRlcnRpYXJ5LWhvdmVyLWJvcmRlcjpob3ZlciB7DQogICAgICBib3JkZXItY29sb3I6ICM5 ZmM2ZTQ7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtbGlnaHQtbGluaywN CiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC1saWdodC1saW5rOmhvdmVyLA0KICAgIC5vMzY1 Y3MtYmFzZSAubzM2NXN4LWxpZ2h0LWxpbms6dmlzaXRlZCwNCiAgICAubzM2NWNzLWJhc2Ug Lm8zNjVzeC1saWdodC1ob3Zlci1saW5rOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjZGNlY2Y5 Ow0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LWxpZ2h0LWZvbnQsDQogICAg Lm8zNjVjcy1iYXNlIC5vMzY1c3gtbGlnaHQtaG92ZXItZm9udDpob3ZlciB7DQogICAgICBj b2xvcjogI2RjZWNmOTsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC1saWdo dC1iYWNrZ3JvdW5kLA0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LWxpZ2h0LWhvdmVyLWJh Y2tncm91bmQ6aG92ZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2RjZWNmOTsNCiAg ICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC1saWdodC1ib3JkZXIsDQogICAgLm8z NjVjcy1iYXNlIC5vMzY1c3gtbGlnaHQtaG92ZXItYm9yZGVyOmhvdmVyIHsNCiAgICAgIGJv cmRlci1jb2xvcjogI2RjZWNmOTsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVz eC1saWdodGVyLWxpbmssDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtbGlnaHRlci1saW5r OmhvdmVyLA0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LWxpZ2h0ZXItbGluazp2aXNpdGVk LA0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LWxpZ2h0ZXItaG92ZXItbGluazpob3ZlciB7 DQogICAgICBjb2xvcjogI2Y0ZjlmZDsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm8z NjVzeC1saWdodGVyLWZvbnQsDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtbGlnaHRlci1o b3Zlci1mb250OmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjZjRmOWZkOw0KICAgIH0NCg0KICAg IC5vMzY1Y3MtYmFzZSAubzM2NXN4LWxpZ2h0ZXItYmFja2dyb3VuZCwNCiAgICAubzM2NWNz LWJhc2UgLm8zNjVzeC1saWdodGVyLWhvdmVyLWJhY2tncm91bmQ6aG92ZXIgew0KICAgICAg YmFja2dyb3VuZC1jb2xvcjogI2Y0ZjlmZDsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2Ug Lm8zNjVzeC1saWdodGVyLWJvcmRlciwNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC1saWdo dGVyLWhvdmVyLWJvcmRlcjpob3ZlciB7DQogICAgICBib3JkZXItY29sb3I6ICNmNGY5ZmQ7 DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtbGlnaHRlckFsdC1saW5rLA0K ICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LWxpZ2h0ZXJBbHQtbGluazpob3ZlciwNCiAgICAu bzM2NWNzLWJhc2UgLm8zNjVzeC1saWdodGVyQWx0LWxpbms6dmlzaXRlZCwNCiAgICAubzM2 NWNzLWJhc2UgLm8zNjVzeC1saWdodGVyQWx0LWhvdmVyLWxpbms6aG92ZXIgew0KICAgICAg Y29sb3I6ICNmNGY5ZmQ7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtbGln aHRlckFsdC1mb250LA0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LWxpZ2h0ZXJBbHQtaG92 ZXItZm9udDpob3ZlciB7DQogICAgICBjb2xvcjogI2Y0ZjlmZDsNCiAgICB9DQoNCiAgICAu bzM2NWNzLWJhc2UgLm8zNjVzeC1saWdodGVyQWx0LWJhY2tncm91bmQsDQogICAgLm8zNjVj cy1iYXNlIC5vMzY1c3gtbGlnaHRlckFsdC1ob3Zlci1iYWNrZ3JvdW5kOmhvdmVyIHsNCiAg ICAgIGJhY2tncm91bmQtY29sb3I6ICNmNGY5ZmQ7DQogICAgfQ0KDQogICAgLm8zNjVjcy1i YXNlIC5vMzY1c3gtbGlnaHRlckFsdC1ib3JkZXIsDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1 c3gtbGlnaHRlckFsdC1ob3Zlci1ib3JkZXI6aG92ZXIgew0KICAgICAgYm9yZGVyLWNvbG9y OiAjZjRmOWZkOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LW5ldXRyYWwt Zm9yZWdyb3VuZC1saW5rLA0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LW5ldXRyYWwtZm9y ZWdyb3VuZC1saW5rOmhvdmVyLA0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LW5ldXRyYWwt Zm9yZWdyb3VuZC1saW5rOnZpc2l0ZWQsDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtbmV1 dHJhbC1mb3JlZ3JvdW5kLWhvdmVyLWxpbms6aG92ZXIgew0KICAgICAgY29sb3I6ICNmZmZm ZmY7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtbmV1dHJhbC1mb3JlZ3Jv dW5kLWZvbnQsDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtbmV1dHJhbC1mb3JlZ3JvdW5k LWhvdmVyLWZvbnQ6aG92ZXIgew0KICAgICAgY29sb3I6ICNmZmZmZmY7DQogICAgfQ0KDQog ICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtbmV1dHJhbC1mb3JlZ3JvdW5kLWJhY2tncm91bmQs DQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtbmV1dHJhbC1mb3JlZ3JvdW5kLWhvdmVyLWJh Y2tncm91bmQ6aG92ZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjsNCiAg ICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC1uZXV0cmFsLWZvcmVncm91bmQtYm9y ZGVyLA0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LW5ldXRyYWwtZm9yZWdyb3VuZC1ob3Zl ci1ib3JkZXI6aG92ZXIgew0KICAgICAgYm9yZGVyLWNvbG9yOiAjZmZmZmZmOw0KICAgIH0N Cg0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LW5ldXRyYWwtZm9yZWdyb3VuZEFsdC1saW5r LA0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LW5ldXRyYWwtZm9yZWdyb3VuZEFsdC1saW5r OmhvdmVyLA0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LW5ldXRyYWwtZm9yZWdyb3VuZEFs dC1saW5rOnZpc2l0ZWQsDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtbmV1dHJhbC1mb3Jl Z3JvdW5kQWx0LWhvdmVyLWxpbms6aG92ZXIgew0KICAgICAgY29sb3I6ICNmZmZmZmY7DQog ICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtbmV1dHJhbC1mb3JlZ3JvdW5kQWx0 LWZvbnQsDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtbmV1dHJhbC1mb3JlZ3JvdW5kQWx0 LWhvdmVyLWZvbnQ6aG92ZXIgew0KICAgICAgY29sb3I6ICNmZmZmZmY7DQogICAgfQ0KDQog ICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtbmV1dHJhbC1mb3JlZ3JvdW5kQWx0LWJhY2tncm91 bmQsDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtbmV1dHJhbC1mb3JlZ3JvdW5kQWx0LWhv dmVyLWJhY2tncm91bmQ6aG92ZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZm ZjsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC1uZXV0cmFsLWZvcmVncm91 bmRBbHQtYm9yZGVyLA0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LW5ldXRyYWwtZm9yZWdy b3VuZEFsdC1ob3Zlci1ib3JkZXI6aG92ZXIgew0KICAgICAgYm9yZGVyLWNvbG9yOiAjZmZm ZmZmOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LW5ldXRyYWwtc3RhdGlj QWNjZW50LWxpbmssDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtbmV1dHJhbC1zdGF0aWNB Y2NlbnQtbGluazpob3ZlciwNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC1uZXV0cmFsLXN0 YXRpY0FjY2VudC1saW5rOnZpc2l0ZWQsDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtbmV1 dHJhbC1zdGF0aWNBY2NlbnQtaG92ZXItbGluazpob3ZlciB7DQogICAgICBjb2xvcjogIzAw NjNhZTsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC1uZXV0cmFsLXN0YXRp Y0FjY2VudC1mb250LA0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LW5ldXRyYWwtc3RhdGlj QWNjZW50LWhvdmVyLWZvbnQ6aG92ZXIgew0KICAgICAgY29sb3I6ICMwMDYzYWU7DQogICAg fQ0KDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtbmV1dHJhbC1zdGF0aWNBY2NlbnQtYmFj a2dyb3VuZCwNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC1uZXV0cmFsLXN0YXRpY0FjY2Vu dC1ob3Zlci1iYWNrZ3JvdW5kOmhvdmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMw MDYzYWU7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtbmV1dHJhbC1zdGF0 aWNBY2NlbnQtYm9yZGVyLA0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LW5ldXRyYWwtc3Rh dGljQWNjZW50LWhvdmVyLWJvcmRlcjpob3ZlciB7DQogICAgICBib3JkZXItY29sb3I6ICMw MDYzYWU7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtbmV1dHJhbC1hY2Nl bnQtbGluaywNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC1uZXV0cmFsLWFjY2VudC1saW5r OmhvdmVyLA0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LW5ldXRyYWwtYWNjZW50LWxpbms6 dmlzaXRlZCwNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC1uZXV0cmFsLWFjY2VudC1ob3Zl ci1saW5rOmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjMDA2M2FlOw0KICAgIH0NCg0KICAgIC5v MzY1Y3MtYmFzZSAubzM2NXN4LW5ldXRyYWwtYWNjZW50LWZvbnQsDQogICAgLm8zNjVjcy1i YXNlIC5vMzY1c3gtbmV1dHJhbC1hY2NlbnQtaG92ZXItZm9udDpob3ZlciB7DQogICAgICBj b2xvcjogIzAwNjNhZTsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC1uZXV0 cmFsLWFjY2VudC1iYWNrZ3JvdW5kLA0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LW5ldXRy YWwtYWNjZW50LWhvdmVyLWJhY2tncm91bmQ6aG92ZXIgew0KICAgICAgYmFja2dyb3VuZC1j b2xvcjogIzAwNjNhZTsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC1uZXV0 cmFsLWFjY2VudC1ib3JkZXIsDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtbmV1dHJhbC1h Y2NlbnQtaG92ZXItYm9yZGVyOmhvdmVyIHsNCiAgICAgIGJvcmRlci1jb2xvcjogIzAwNjNh ZTsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC1uZXV0cmFsLWxpZ2h0LWxp bmssDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtbmV1dHJhbC1saWdodC1saW5rOmhvdmVy LA0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LW5ldXRyYWwtbGlnaHQtbGluazp2aXNpdGVk LA0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LW5ldXRyYWwtbGlnaHQtaG92ZXItbGluazpo b3ZlciB7DQogICAgICBjb2xvcjogI2UxZGZkZDsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJh c2UgLm8zNjVzeC1uZXV0cmFsLWxpZ2h0LWZvbnQsDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1 c3gtbmV1dHJhbC1saWdodC1ob3Zlci1mb250OmhvdmVyIHsNCiAgICAgIGNvbG9yOiAjZTFk ZmRkOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LW5ldXRyYWwtbGlnaHQt YmFja2dyb3VuZCwNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC1uZXV0cmFsLWxpZ2h0LWhv dmVyLWJhY2tncm91bmQ6aG92ZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2UxZGZk ZDsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC1uZXV0cmFsLWxpZ2h0LWJv cmRlciwNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC1uZXV0cmFsLWxpZ2h0LWhvdmVyLWJv cmRlcjpob3ZlciB7DQogICAgICBib3JkZXItY29sb3I6ICNlMWRmZGQ7DQogICAgfQ0KDQog ICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtbmV1dHJhbC1saWdodEFsdC1saW5rLA0KICAgIC5v MzY1Y3MtYmFzZSAubzM2NXN4LW5ldXRyYWwtbGlnaHRBbHQtbGluazpob3ZlciwNCiAgICAu bzM2NWNzLWJhc2UgLm8zNjVzeC1uZXV0cmFsLWxpZ2h0QWx0LWxpbms6dmlzaXRlZCwNCiAg ICAubzM2NWNzLWJhc2UgLm8zNjVzeC1uZXV0cmFsLWxpZ2h0QWx0LWhvdmVyLWxpbms6aG92 ZXIgew0KICAgICAgY29sb3I6ICNlZGViZTk7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNl IC5vMzY1c3gtbmV1dHJhbC1saWdodEFsdC1mb250LA0KICAgIC5vMzY1Y3MtYmFzZSAubzM2 NXN4LW5ldXRyYWwtbGlnaHRBbHQtaG92ZXItZm9udDpob3ZlciB7DQogICAgICBjb2xvcjog I2VkZWJlOTsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC1uZXV0cmFsLWxp Z2h0QWx0LWJhY2tncm91bmQsDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtbmV1dHJhbC1s aWdodEFsdC1ob3Zlci1iYWNrZ3JvdW5kOmhvdmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29s b3I6ICNlZGViZTk7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtbmV1dHJh bC1saWdodEFsdC1ib3JkZXIsDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtbmV1dHJhbC1s aWdodEFsdC1ob3Zlci1ib3JkZXI6aG92ZXIgew0KICAgICAgYm9yZGVyLWNvbG9yOiAjZWRl YmU5Ow0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LW5ldXRyYWwtbGlnaHRl ci1saW5rLA0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LW5ldXRyYWwtbGlnaHRlci1saW5r OmhvdmVyLA0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LW5ldXRyYWwtbGlnaHRlci1saW5r OnZpc2l0ZWQsDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtbmV1dHJhbC1saWdodGVyLWhv dmVyLWxpbms6aG92ZXIgew0KICAgICAgY29sb3I6ICNmM2YyZjE7DQogICAgfQ0KDQogICAg Lm8zNjVjcy1iYXNlIC5vMzY1c3gtbmV1dHJhbC1saWdodGVyLWZvbnQsDQogICAgLm8zNjVj cy1iYXNlIC5vMzY1c3gtbmV1dHJhbC1saWdodGVyLWhvdmVyLWZvbnQ6aG92ZXIgew0KICAg ICAgY29sb3I6ICNmM2YyZjE7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gt bmV1dHJhbC1saWdodGVyLWJhY2tncm91bmQsDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gt bmV1dHJhbC1saWdodGVyLWhvdmVyLWJhY2tncm91bmQ6aG92ZXIgew0KICAgICAgYmFja2dy b3VuZC1jb2xvcjogI2YzZjJmMTsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVz eC1uZXV0cmFsLWxpZ2h0ZXItYm9yZGVyLA0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LW5l dXRyYWwtbGlnaHRlci1ob3Zlci1ib3JkZXI6aG92ZXIgew0KICAgICAgYm9yZGVyLWNvbG9y OiAjZjNmMmYxOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LW5ldXRyYWwt bGlnaHRlckFsdC1saW5rLA0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LW5ldXRyYWwtbGln aHRlckFsdC1saW5rOmhvdmVyLA0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LW5ldXRyYWwt bGlnaHRlckFsdC1saW5rOnZpc2l0ZWQsDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtbmV1 dHJhbC1saWdodGVyQWx0LWhvdmVyLWxpbms6aG92ZXIgew0KICAgICAgY29sb3I6ICNmYWY5 Zjg7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtbmV1dHJhbC1saWdodGVy QWx0LWZvbnQsDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtbmV1dHJhbC1saWdodGVyQWx0 LWhvdmVyLWZvbnQ6aG92ZXIgew0KICAgICAgY29sb3I6ICNmYWY5Zjg7DQogICAgfQ0KDQog ICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtbmV1dHJhbC1saWdodGVyQWx0LWJhY2tncm91bmQs DQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtbmV1dHJhbC1saWdodGVyQWx0LWhvdmVyLWJh Y2tncm91bmQ6aG92ZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZjlmODsNCiAg ICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC1uZXV0cmFsLWxpZ2h0ZXJBbHQtYm9y ZGVyLA0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LW5ldXRyYWwtbGlnaHRlckFsdC1ob3Zl ci1ib3JkZXI6aG92ZXIgew0KICAgICAgYm9yZGVyLWNvbG9yOiAjZmFmOWY4Ow0KICAgIH0N Cg0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LW5ldXRyYWwtZGFyay1saW5rLA0KICAgIC5v MzY1Y3MtYmFzZSAubzM2NXN4LW5ldXRyYWwtZGFyay1saW5rOmhvdmVyLA0KICAgIC5vMzY1 Y3MtYmFzZSAubzM2NXN4LW5ldXRyYWwtZGFyay1saW5rOnZpc2l0ZWQsDQogICAgLm8zNjVj cy1iYXNlIC5vMzY1c3gtbmV1dHJhbC1kYXJrLWhvdmVyLWxpbms6aG92ZXIgew0KICAgICAg Y29sb3I6ICMyNTI0MjM7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtbmV1 dHJhbC1kYXJrLWZvbnQsDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtbmV1dHJhbC1kYXJr LWhvdmVyLWZvbnQ6aG92ZXIgew0KICAgICAgY29sb3I6ICMyNTI0MjM7DQogICAgfQ0KDQog ICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtbmV1dHJhbC1kYXJrLWJhY2tncm91bmQsDQogICAg Lm8zNjVjcy1iYXNlIC5vMzY1c3gtbmV1dHJhbC1kYXJrLWhvdmVyLWJhY2tncm91bmQ6aG92 ZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzI1MjQyMzsNCiAgICB9DQoNCiAgICAu bzM2NWNzLWJhc2UgLm8zNjVzeC1uZXV0cmFsLWRhcmstYm9yZGVyLA0KICAgIC5vMzY1Y3Mt YmFzZSAubzM2NXN4LW5ldXRyYWwtZGFyay1ob3Zlci1ib3JkZXI6aG92ZXIgew0KICAgICAg Ym9yZGVyLWNvbG9yOiAjMjUyNDIzOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubzM2 NXN4LW5ldXRyYWwtcHJpbWFyeS1saW5rLA0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LW5l dXRyYWwtcHJpbWFyeS1saW5rOmhvdmVyLA0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LW5l dXRyYWwtcHJpbWFyeS1saW5rOnZpc2l0ZWQsDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gt bmV1dHJhbC1wcmltYXJ5LWhvdmVyLWxpbms6aG92ZXIgew0KICAgICAgY29sb3I6ICNiZWJi Yjg7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtbmV1dHJhbC1wcmltYXJ5 LWZvbnQsDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtbmV1dHJhbC1wcmltYXJ5LWhvdmVy LWZvbnQ6aG92ZXIgew0KICAgICAgY29sb3I6ICNiZWJiYjg7DQogICAgfQ0KDQogICAgLm8z NjVjcy1iYXNlIC5vMzY1c3gtbmV1dHJhbC1wcmltYXJ5LWJhY2tncm91bmQsDQogICAgLm8z NjVjcy1iYXNlIC5vMzY1c3gtbmV1dHJhbC1wcmltYXJ5LWhvdmVyLWJhY2tncm91bmQ6aG92 ZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2JlYmJiODsNCiAgICB9DQoNCiAgICAu bzM2NWNzLWJhc2UgLm8zNjVzeC1uZXV0cmFsLXByaW1hcnktYm9yZGVyLA0KICAgIC5vMzY1 Y3MtYmFzZSAubzM2NXN4LW5ldXRyYWwtcHJpbWFyeS1ob3Zlci1ib3JkZXI6aG92ZXIgew0K ICAgICAgYm9yZGVyLWNvbG9yOiAjYmViYmI4Ow0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFz ZSAubzM2NXN4LW5ldXRyYWwtc2Vjb25kYXJ5LWxpbmssDQogICAgLm8zNjVjcy1iYXNlIC5v MzY1c3gtbmV1dHJhbC1zZWNvbmRhcnktbGluazpob3ZlciwNCiAgICAubzM2NWNzLWJhc2Ug Lm8zNjVzeC1uZXV0cmFsLXNlY29uZGFyeS1saW5rOnZpc2l0ZWQsDQogICAgLm8zNjVjcy1i YXNlIC5vMzY1c3gtbmV1dHJhbC1zZWNvbmRhcnktaG92ZXItbGluazpob3ZlciB7DQogICAg ICBjb2xvcjogIzQ4NDY0NDsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC1u ZXV0cmFsLXNlY29uZGFyeS1mb250LA0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LW5ldXRy YWwtc2Vjb25kYXJ5LWhvdmVyLWZvbnQ6aG92ZXIgew0KICAgICAgY29sb3I6ICM0ODQ2NDQ7 DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtbmV1dHJhbC1zZWNvbmRhcnkt YmFja2dyb3VuZCwNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC1uZXV0cmFsLXNlY29uZGFy eS1ob3Zlci1iYWNrZ3JvdW5kOmhvdmVyIHsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM0 ODQ2NDQ7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtbmV1dHJhbC1zZWNv bmRhcnktYm9yZGVyLA0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LW5ldXRyYWwtc2Vjb25k YXJ5LWhvdmVyLWJvcmRlcjpob3ZlciB7DQogICAgICBib3JkZXItY29sb3I6ICM0ODQ2NDQ7 DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtbmV1dHJhbC10ZXJ0aWFyeS1s aW5rLA0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LW5ldXRyYWwtdGVydGlhcnktbGluazpo b3ZlciwNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC1uZXV0cmFsLXRlcnRpYXJ5LWxpbms6 dmlzaXRlZCwNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC1uZXV0cmFsLXRlcnRpYXJ5LWhv dmVyLWxpbms6aG92ZXIgew0KICAgICAgY29sb3I6ICM2MDVlNWM7DQogICAgfQ0KDQogICAg Lm8zNjVjcy1iYXNlIC5vMzY1c3gtbmV1dHJhbC10ZXJ0aWFyeS1mb250LA0KICAgIC5vMzY1 Y3MtYmFzZSAubzM2NXN4LW5ldXRyYWwtdGVydGlhcnktaG92ZXItZm9udDpob3ZlciB7DQog ICAgICBjb2xvcjogIzYwNWU1YzsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVz eC1uZXV0cmFsLXRlcnRpYXJ5LWJhY2tncm91bmQsDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1 c3gtbmV1dHJhbC10ZXJ0aWFyeS1ob3Zlci1iYWNrZ3JvdW5kOmhvdmVyIHsNCiAgICAgIGJh Y2tncm91bmQtY29sb3I6ICM2MDVlNWM7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5v MzY1c3gtbmV1dHJhbC10ZXJ0aWFyeS1ib3JkZXIsDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1 c3gtbmV1dHJhbC10ZXJ0aWFyeS1ob3Zlci1ib3JkZXI6aG92ZXIgew0KICAgICAgYm9yZGVy LWNvbG9yOiAjNjA1ZTVjOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LW5l dXRyYWwtZGFya1JlZC1saW5rLA0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LW5ldXRyYWwt ZGFya1JlZC1saW5rOmhvdmVyLA0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LW5ldXRyYWwt ZGFya1JlZC1saW5rOnZpc2l0ZWQsDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtbmV1dHJh bC1kYXJrUmVkLWhvdmVyLWxpbms6aG92ZXIgew0KICAgICAgY29sb3I6ICNhODAwMDA7DQog ICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtbmV1dHJhbC1kYXJrUmVkLWZvbnQs DQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtbmV1dHJhbC1kYXJrUmVkLWhvdmVyLWZvbnQ6 aG92ZXIgew0KICAgICAgY29sb3I6ICNhODAwMDA7DQogICAgfQ0KDQogICAgLm8zNjVjcy1i YXNlIC5vMzY1c3gtbmV1dHJhbC1kYXJrUmVkLWJhY2tncm91bmQsDQogICAgLm8zNjVjcy1i YXNlIC5vMzY1c3gtbmV1dHJhbC1kYXJrUmVkLWhvdmVyLWJhY2tncm91bmQ6aG92ZXIgew0K ICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2E4MDAwMDsNCiAgICB9DQoNCiAgICAubzM2NWNz LWJhc2UgLm8zNjVzeC1uZXV0cmFsLWRhcmtSZWQtYm9yZGVyLA0KICAgIC5vMzY1Y3MtYmFz ZSAubzM2NXN4LW5ldXRyYWwtZGFya1JlZC1ob3Zlci1ib3JkZXI6aG92ZXIgew0KICAgICAg Ym9yZGVyLWNvbG9yOiAjYTgwMDAwOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubzM2 NXN4LWFwcEJyYW5kTGluazpmb2N1cyB7DQogICAgICBvdXRsaW5lOiAjZmZmZmZmIDFweCBz b2xpZDsNCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC1idXR0b246aG92ZXIg ew0KICAgICAgY29sb3I6ICNmZmZmZmY7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0 ZDg4Ow0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LWJ1dHRvbiA6Zm9jdXMg ew0KICAgICAgY29sb3I6ICNmZmZmZmY7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0 ZDg4Ow0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LWJ1dHRvbjphY3RpdmUg ew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwNGQ4ODsNCiAgICB9DQoNCiAgICAubzM2 NWNzLWJhc2UgLm8zNjVzeC1idXR0b246Zm9jdXMgew0KICAgICAgb3V0bGluZTogI2ZmZmZm ZiAxcHggc29saWQ7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtbm9uSW50 ZXJhY3RpdmVCdXR0b246aG92ZXIgew0KICAgICAgY29sb3I6ICNmZmZmZmY7DQoNCiAgICAg IGJhY2tncm91bmRDb2xvciB7DQogICAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDsNCiAgICAg IH0NCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC1ub25JbnRlcmFjdGl2ZUJ1 dHRvbiA6Zm9jdXMgew0KICAgICAgY29sb3I6ICNmZmZmZmY7DQoNCiAgICAgIGJhY2tncm91 bmRDb2xvciB7DQogICAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDsNCiAgICAgIH0NCiAgICB9 DQoNCiAgICAubzM2NWNzLWJhc2UgLm8zNjVzeC1ub25JbnRlcmFjdGl2ZUJ1dHRvbjphY3Rp dmUgew0KICAgICAgYmFja2dyb3VuZENvbG9yIHsNCiAgICAgICAgY29sb3I6IHRyYW5zcGFy ZW50Ow0KICAgICAgfQ0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAubzM2NXN4LW5vbklu dGVyYWN0aXZlQnV0dG9uOmZvY3VzIHsNCiAgICAgIG91dGxpbmUgew0KICAgICAgICBjb2xv cjogdHJhbnNwYXJlbnQ7DQogICAgICB9DQogICAgfQ0KDQogICAgLm8zNjVzeC1zZWFyY2hC b3hJbmFjdGl2ZTpob3ZlciB7DQogICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7DQogICAgfQ0K DQogICAgLm8zNjVjcy1iYXNlIC5vMzY1c3gtaGlnaENvbnRyYXN0QnV0dG9uIHsNCiAgICAg IC8qIERlZmluZSB0aGUgY29tbW9uIHN0eWxlcyBmb3IgYm90aCBoaWdoIGNvbnRyYXN0IG1v ZGVzICovDQogICAgICAvKiBBZGQgeW91ciBjb21tb24gc3R5bGVzIGhlcmUgKi8NCg0KICAg ICAgLyogRGVmaW5lIHRoZSBob3ZlciBzdHlsZXMgZm9yIGhpZ2ggY29udHJhc3QgKi8NCiAg ICAgICY6aG92ZXIgew0KICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWFlYmZmOw0KICAg ICAgICAvKiBXaGl0ZS1vbi1ibGFjayBoaWdoIGNvbnRyYXN0IG1vZGUgKi8NCiAgICAgIH0N CiAgICB9DQoNCiAgICAvKiBVc2UgYSBzZXBhcmF0ZSBydWxlIGZvciB0aGUgYmxhY2stb24t d2hpdGUgaGlnaCBjb250cmFzdCBtb2RlICovDQogICAgQG1lZGlhIHNjcmVlbiBhbmQgKC1t cy1oaWdoLWNvbnRyYXN0OiBibGFjay1vbi13aGl0ZSkgew0KICAgICAgLm8zNjVjcy1iYXNl IC5vMzY1c3gtaGlnaENvbnRyYXN0QnV0dG9uOmhvdmVyIHsNCiAgICAgICAgYmFja2dyb3Vu ZC1jb2xvcjogIzM3MDA2ZTsNCiAgICAgIH0NCiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2Ug Lm8zNjVzeC1oaWdoQ29udHJhc3RCdXR0b24gOmZvY3VzIHsNCiAgICAgIEBtZWRpYSBzY3Jl ZW4gYW5kICgtbXMtaGlnaC1jb250cmFzdDogd2hpdGUtb24tYmxhY2spIHsNCiAgICAgICAg YmFja2dyb3VuZC1jb2xvcjogIzFhZWJmZjsNCiAgICAgIH0NCg0KICAgICAgQG1lZGlhIHNj cmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBibGFjay1vbi13aGl0ZSkgew0KICAgICAg ICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzcwMDZlOw0KICAgICAgfQ0KICAgIH0NCg0KICAgIC5v MzY1Y3MtYmFzZSAubzM2NXN4LWFjdGl2ZUJ1dHRvbjpmb2N1cyB7DQogICAgICBvdXRsaW5l OiAjMDA3OGQ0IDFweCBzb2xpZDsNCiAgICB9DQogIDwvc3R5bGU+DQogIDxzY3JpcHQgc3Jj PSJodHRwczovL3Jlcy0xLmNkbi5vZmZpY2UubmV0L3NoZWxsdXgvc3VpdGV1eC5zaGVsbC5w bHVzLmEyMDU0Y2E2ZDk1ODIyMjRlZDY5LmpzIiBjcm9zc29yaWdpbj0iYW5vbnltb3VzIg0K ICAgIGFzeW5jPSIiPjwvc2NyaXB0Pg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KICAg IC5vMzY1Y3MtYmFzZSAub3hiRjJMeUt3VkJcL2E1XCs0Z3Rta2ZnXD1cPSB7DQogICAgICBk aXNwbGF5OiAtbXMtZmxleGJveDsNCiAgICAgIGRpc3BsYXk6IGZsZXg7DQogICAgICAtbXMt ZmxleC1kaXJlY3Rpb246IHJvdzsNCiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7DQogICAg ICBib3JkZXI6IDFweCBzb2xpZCBoc2xhKDAsIDAlLCAxMDAlLCAwKTsNCiAgICAgIGJveC1z aGFkb3c6IDAgMXB4IDJweCAwIHJnYmEoMCwgMCwgMCwgMC4xKTsNCiAgICAgIGJveC1zaXpp bmc6IGJvcmRlci1ib3g7DQogICAgICB3aWR0aDogMjc2cHg7DQogICAgICBwYWRkaW5nLWxl ZnQ6IDA7DQogICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsNCiAgICAgIG1hcmdpbjog MCAwIDE3cHggMTZweDsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0icnRsIl0gLm8zNjVjcy1i YXNlIC5veGJGMkx5S3dWQlwvYTVcKzRndG1rZmdcPVw9IHsNCiAgICAgIG1hcmdpbi1sZWZ0 OiAwOw0KICAgICAgbWFyZ2luLXJpZ2h0OiAxNnB4Ow0KICAgIH0NCg0KICAgIC5vMzY1Y3Mt YmFzZSAub3hiRjJMeUt3VkJcL2E1XCs0Z3Rta2ZnXD1cPTpob3ZlciB7DQogICAgICAtd2Vi a2l0LWJveC1zaGFkb3c6IDAgOHB4IDE2cHggMCByZ2JhKDAsIDAsIDAsIDAuMSk7DQogICAg ICBib3gtc2hhZG93OiAwIDhweCAxNnB4IDAgcmdiYSgwLCAwLCAwLCAwLjEpOw0KICAgIH0N Cg0KICAgIC5vMzY1Y3MtYmFzZSAub3hiRjJMeUt3VkJcL2E1XCs0Z3Rta2ZnXD1cPT5idXR0 b24gew0KICAgICAgbWluLXdpZHRoOiAzMHB4Ow0KICAgICAgd2lkdGg6IDMwcHg7DQogICAg ICBoZWlnaHQ6IDM2cHg7DQogICAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7DQogICAgICBwYWRk aW5nLXJpZ2h0OiAxMHB4Ow0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7 DQogICAgICBib3JkZXI6IG5vbmU7DQogICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsN CiAgICB9DQoNCiAgICAubzM2NWNzLWJhc2UgLm94YkYyTHlLd1ZCXC9hNVwrNGd0bWtmZ1w9 XD0+aW5wdXQ6Oi1tcy1jbGVhciB7DQogICAgICBkaXNwbGF5OiBub25lOw0KICAgIH0NCg0K ICAgIC5vMzY1Y3MtYmFzZSAub3hiRjJMeUt3VkJcL2E1XCs0Z3Rta2ZnXD1cPT5pbnB1dDo6 LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbiwNCiAgICAubzM2NWNzLWJhc2UgLm94YkYy THlLd1ZCXC9hNVwrNGd0bWtmZ1w9XD0+aW5wdXQ6Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRp b24sDQogICAgLm8zNjVjcy1iYXNlIC5veGJGMkx5S3dWQlwvYTVcKzRndG1rZmdcPVw9Pmlu cHV0Ojotd2Via2l0LXNlYXJjaC1yZXN1bHRzLWJ1dHRvbiwNCiAgICAubzM2NWNzLWJhc2Ug Lm94YkYyTHlLd1ZCXC9hNVwrNGd0bWtmZ1w9XD0+aW5wdXQ6Oi13ZWJraXQtc2VhcmNoLXJl c3VsdHMtZGVjb3JhdGlvbiB7DQogICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7DQog ICAgICBkaXNwbGF5OiBub25lOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAub3hiRjJM eUt3VkJcL2E1XCs0Z3Rta2ZnXD1cPSAuajZCdk5wQ0Y5MFhpS3h1MEY3c1p6d1w9XD0gew0K ICAgICAgd2lkdGg6IDI1MHB4Ow0KICAgICAgaGVpZ2h0OiAzMnB4Ow0KICAgICAgYmFja2dy b3VuZDogdHJhbnNwYXJlbnQ7DQogICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsNCiAg ICAgIGJvcmRlcjogbm9uZTsNCiAgICAgIGRpc3BsYXk6IGJsb2NrOw0KICAgICAgZm9udDog MTNweCBTZWdvZVVJLVJlZ3VsYXItZmluYWwsIFNlZ29lIFVJLA0KICAgICAgICAiU2Vnb2Ug VUkgV2ViIChXZXN0IEV1cm9wZWFuKSIsIFNlZ29lLCAtYXBwbGUtc3lzdGVtLA0KICAgICAg ICBCbGlua01hY1N5c3RlbUZvbnQsIFJvYm90bywgSGVsdmV0aWNhIE5ldWUsIFRhaG9tYSwg SGVsdmV0aWNhLCBBcmlhbCwNCiAgICAgICAgc2Fucy1zZXJpZjsNCiAgICAgIHRleHQtb3Zl cmZsb3c6IGVsbGlwc2lzOw0KICAgICAgcGFkZGluZy1sZWZ0OiA1cHg7DQogICAgICBvdXRs aW5lOiBub25lOw0KICAgICAgbWFyZ2luOiAwLjFlbTsNCiAgICB9DQoNCiAgICAubzM2NWNz LWJhc2UgLm94YkYyTHlLd1ZCXC9hNVwrNGd0bWtmZ1w9XD0gLmo2QnZOcENGOTBYaUt4dTBG N3NaendcPVw9Oi1pbnRlcm5hbC1hdXRvZmlsbC1zZWxlY3RlZCB7DQogICAgICBiYWNrZ3Jv dW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50Ow0KICAgIH0NCg0KICAgIC5vMzY1 Y3MtYmFzZSAub3hiRjJMeUt3VkJcL2E1XCs0Z3Rta2ZnXD1cPTpmb2N1cyB7DQogICAgICBj dXJzb3I6IHRleHQ7DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5uSGs3TEVTQWZJV3RX eUQ5ZjdJTTlnXD1cPSB7DQogICAgICBtYXJnaW46IDAgMCA1cHggMTZweDsNCiAgICB9DQog IDwvc3R5bGU+DQogIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+DQogICAgLm8zNjVjcy1iYXNl IC5UbEFkbFVyV2QwWjZcL1R0ZUtKU1FpZ1w9XD0gew0KICAgICAgcG9zaXRpb246IGFic29s dXRlOw0KICAgIH0NCg0KICAgIC5vMzY1Y3MtYmFzZSAuVGxBZGxVcldkMFo2XC9UdGVLSlNR aWdcPVw9IC5fMVpxVUViWktqVU1yalFXb1pzZWc2Z1w9XD0gew0KICAgICAgZm9udC1mYW1p bHk6IFNlZ29lVUktUmVndWxhci1maW5hbCwgU2Vnb2UgVUksDQogICAgICAgICJTZWdvZSBV SSBXZWIgKFdlc3QgRXVyb3BlYW4pIiwgU2Vnb2UsIC1hcHBsZS1zeXN0ZW0sDQogICAgICAg IEJsaW5rTWFjU3lzdGVtRm9udCwgUm9ib3RvLCBIZWx2ZXRpY2EgTmV1ZSwgVGFob21hLCBI ZWx2ZXRpY2EsIEFyaWFsLA0KICAgICAgICBzYW5zLXNlcmlmOw0KICAgICAgZm9udC1zaXpl OiAxMHB4Ow0KICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICAgd2lkdGg6IDE2cHg7 DQogICAgICBoZWlnaHQ6IDE2cHg7DQogICAgICBsaW5lLWhlaWdodDogMTVweDsNCiAgICAg IGJvcmRlci1yYWRpdXM6IDFlbTsNCiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7DQog ICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7DQogICAgICBsZWZ0OiAwOw0KICAgIH0NCg0KICAg IEBtZWRpYSAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSksDQogICAgKGZvcmNlZC1jb2xv cnM6IGFjdGl2ZSkgew0KICAgICAgLm8zNjVjcy1iYXNlIC5UbEFkbFVyV2QwWjZcL1R0ZUtK U1FpZ1w9XD0gLl8xWnFVRWJaS2pVTXJqUVdvWnNlZzZnXD1cPSB7DQogICAgICAgIC1tcy1o aWdoLWNvbnRyYXN0LWFkanVzdDogbm9uZTsNCiAgICAgICAgZm9yY2VkLWNvbG9yLWFkanVz dDogbm9uZTsNCiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogSGlnaGxpZ2h0ICFpbXBvcnRh bnQ7DQogICAgICAgIGNvbG9yOiBoaWdobGlnaHRUZXh0ICFpbXBvcnRhbnQ7DQogICAgICB9 DQogICAgfQ0KDQogICAgLm8zNjVjcy1iYXNlIC5UbEFkbFVyV2QwWjZcL1R0ZUtKU1FpZ1w9 XD0gLl81NkV1eU1EMnNvRTFcL2dLWEJZMHE5Z1w9XD0gew0KICAgICAgdG9wOiA3cHg7DQog ICAgICB3aWR0aDogOHB4Ow0KICAgICAgaGVpZ2h0OiA4cHg7DQogICAgICBib3JkZXI6IDFw eCBzb2xpZCAjZmZmOw0KICAgICAgYm9yZGVyLXJhZGl1czogNHB4Ow0KICAgIH0NCg0KICAg IC5vMzY1Y3MtYmFzZSAuVGxBZGxVcldkMFo2XC9UdGVLSlNRaWdcPVw9IC5cK09MUE5JRjZC NWtLb0E5N0ozdlZwd1w9XD0gew0KICAgICAgYm9yZGVyLWNvbG9yOiAjMDAwOw0KICAgIH0N CiAgPC9zdHlsZT4NCiAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCiAgICAuTnN6VWd0ekRm eDB0MVBRcnVjbXZuQVw9XD0gew0KICAgICAgZGlzcGxheTogYmxvY2s7DQogICAgfQ0KDQog ICAgLmM2UUU2cTBpbXlxWlBpSHlMUG05WUFcPVw9IHsNCiAgICAgIGZvbnQtZmFtaWx5OiBT ZWdvZVVJLVJlZ3VsYXItZmluYWwsIFNlZ29lIFVJLA0KICAgICAgICAiU2Vnb2UgVUkgV2Vi IChXZXN0IEV1cm9wZWFuKSIsIFNlZ29lLCAtYXBwbGUtc3lzdGVtLA0KICAgICAgICBCbGlu a01hY1N5c3RlbUZvbnQsIFJvYm90bywgSGVsdmV0aWNhIE5ldWUsIFRhaG9tYSwgSGVsdmV0 aWNhLCBBcmlhbCwNCiAgICAgICAgc2Fucy1zZXJpZjsNCiAgICB9DQoNCiAgICAudUdBeDRD YlJoXCtqRWFNZGY0RXR2N3dcPVw9IHsNCiAgICAgIGZvbnQtZmFtaWx5OiBTZWdvZVVJLVNl bWlCb2xkLWZpbmFsLCBTZWdvZSBVSSBTZW1pYm9sZCwNCiAgICAgICAgU2Vnb2VVSS1SZWd1 bGFyLWZpbmFsLCBTZWdvZSBVSSwgIlNlZ29lIFVJIFdlYiAoV2VzdCBFdXJvcGVhbikiLCBT ZWdvZSwNCiAgICAgICAgLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBSb2Jv dG8sIEhlbHZldGljYSBOZXVlLCBUYWhvbWEsDQogICAgICAgIEhlbHZldGljYSwgQXJpYWws IHNhbnMtc2VyaWY7DQogICAgICBmb250LXdlaWdodDogNjAwOw0KICAgIH0NCg0KICAgIC52 bU81cll2dFZybXN5Ym0zUUpGSlV3XD1cPSB7DQogICAgICBmb250LWZhbWlseTogU2Vnb2VV SS1MaWdodC1maW5hbCwgU2Vnb2UgVUkgTGlnaHQsIFNlZ29lVUktUmVndWxhci1maW5hbCwN CiAgICAgICAgU2Vnb2UgVUksICJTZWdvZSBVSSBXZWIgKFdlc3QgRXVyb3BlYW4pIiwgU2Vn b2UsIC1hcHBsZS1zeXN0ZW0sDQogICAgICAgIEJsaW5rTWFjU3lzdGVtRm9udCwgUm9ib3Rv LCBIZWx2ZXRpY2EgTmV1ZSwgVGFob21hLCBIZWx2ZXRpY2EsIEFyaWFsLA0KICAgICAgICBz YW5zLXNlcmlmOw0KICAgIH0NCg0KICAgIC5ROHFIa3FUaFozSEN3UG1rXCttMmJGUVw9XD0g ew0KICAgICAgZm9udC1mYW1pbHk6IFNlZ29lVUktU2VtaUxpZ2h0LWZpbmFsLCBTZWdvZSBV SSBTZW1pbGlnaHQsDQogICAgICAgIFNlZ29lVUktUmVndWxhci1maW5hbCwgU2Vnb2UgVUks ICJTZWdvZSBVSSBXZWIgKFdlc3QgRXVyb3BlYW4pIiwgU2Vnb2UsDQogICAgICAgIC1hcHBs ZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgUm9ib3RvLCBIZWx2ZXRpY2EgTmV1ZSwg VGFob21hLA0KICAgICAgICBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmOw0KICAgIH0N Cg0KICAgIC5pRG0yV1RxcE1nd3piQlNTUmxidW9nXD1cPSB7DQogICAgICBmb250LWZhbWls eTogQXJpYWwsIFNlZ29lVUktUmVndWxhci1maW5hbCwgU2Vnb2UgVUksIFNlZ29lLCBUYWhv bWEsDQogICAgICAgIEhlbHZldGljYSwgc2Fucy1zZXJpZjsNCiAgICB9DQogIDwvc3R5bGU+ DQogIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+DQogICAgLkxPSDY1bUhORDVVdUo5YjVNT1BJ eWdcPVw9IHsNCiAgICAgIGhlaWdodDogY2FsYygxMDB2aCAtIDExNXB4KTsNCiAgICB9DQoN CiAgICAuRWprQnRwRVZHWVFLMXFcL3RkNm1oZGdcPVw9IHsNCiAgICAgIGhlaWdodDogY2Fs YygxMDB2aCAtIDExM3B4KTsNCiAgICB9DQoNCiAgICAuc2JVXCs5Y3N1N28yMXNpbHI2bWpt Z3dcPVw9IHsNCiAgICAgIGhlaWdodDogY2FsYygxMDB2aCAtIDczcHgpOw0KICAgIH0NCiAg PC9zdHlsZT4NCiAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCiAgICAuVGFTdXFseUo1TVNx VFFiWFRlUzN0UVw9XD0gew0KICAgICAgZm9udC1mYW1pbHk6IFNoZWxsRmFicmljTURMMklj b25zTGl0ZSwgU2hlbGxGYWJyaWNNREwySWNvbnM7DQogICAgICBsaW5lLWhlaWdodDogMTsN CiAgICB9DQoNCiAgICAuVGFTdXFseUo1TVNxVFFiWFRlUzN0UVw9XD0gLm8zNjVjcy1iYXNl IFtjbGFzcyo9IiBtcy1JY29uLS0iXTpiZWZvcmUsDQogICAgLlRhU3VxbHlKNU1TcVRRYlhU ZVMzdFFcPVw9IC5vMzY1Y3MtYmFzZSBbY2xhc3NePSJtcy1JY29uLS0iXTpiZWZvcmUgew0K ICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7DQogICAgfQ0KDQogICAgLkhLSHNud1BEOWFz Z0NZXC8xcmh2dXF3XD1cPSwNCiAgICAuSTRuajhhZk1MaldwSjJVT3VkODh6Z1w9XD0gew0K ICAgICAgaGVpZ2h0OiAxMDAlOw0KICAgIH0NCiAgPC9zdHlsZT4NCiAgPHN0eWxlIHR5cGU9 InRleHQvY3NzIj4NCiAgICAuXC9GemtZY1g3cXZub0VNYVV0VjkyMkFcPVw9LA0KICAgIC5o TlJ2VHZ3Vk9zREVyeEFkd2FpWkdRXD1cPSB7DQogICAgICAtd2Via2l0LXRyYW5zZm9ybS1v cmlnaW46IHRvcDsNCiAgICAgIC1tcy10cmFuc2Zvcm0tb3JpZ2luOiB0b3A7DQogICAgICB0 cmFuc2Zvcm0tb3JpZ2luOiB0b3A7DQogICAgICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlv bjogMC4xOHM7DQogICAgICBhbmltYXRpb24tZHVyYXRpb246IDAuMThzOw0KICAgICAgLXdl YmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xLCAwLjks IDAuMiwgMSk7DQogICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXpp ZXIoMC4xLCAwLjksIDAuMiwgMSk7DQogICAgfQ0KDQogICAgLk1xUDljdHR4V1wvazZmUDlL QmZ2Slh3XD1cPSwNCiAgICAudHFxMXRsM09Ib2ZcKzl4b2Zid3VyNHFcPVw9IHsNCiAgICAg IHdpZHRoOiAxMDAlOw0KICAgICAgaGVpZ2h0OiA4cHg7DQogICAgICB2aXNpYmlsaXR5OiBo aWRkZW47DQogICAgICBkaXNwbGF5OiBub25lOw0KICAgIH0NCg0KICAgIC50cXExdGwzT0hv ZlwrOXhvZmJ3dXI0cVw9XD0gew0KICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7DQog ICAgICBjdXJzb3I6IHBvaW50ZXI7DQogICAgfQ0KDQogICAgLnRxcTF0bDNPSG9mXCs5eG9m Ynd1cjRxXD1cPTpob3ZlciB7DQogICAgICBvcGFjaXR5OiAwLjQ7DQogICAgICBiYWNrZ3Jv dW5kOiAjNDA0MDQwOw0KICAgIH0NCg0KICAgIC5tWXJsSHZyU1I1N2Y5UmdqWkRhcFJnXD1c PSB7DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgICBsZWZ0OiA0Ny44MSU7DQog ICAgICByaWdodDogNDcuODElOw0KICAgICAgYm9yZGVyLXJhZGl1czogNnB4Ow0KICAgICAg d2lkdGg6IDE0cHg7DQogICAgICBoZWlnaHQ6IDJweDsNCiAgICAgIGFsaWduLXNlbGY6IGNl bnRlcjsNCiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOw0KICAgIH0NCg0KICAgIC5ESk5S ZXp0N2RBcFhJT1NEcW1HRWx3XD1cPSB7DQogICAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1l OiBoZWFkZXJTbGlkZUluRnJhbWVzOw0KICAgICAgYW5pbWF0aW9uLW5hbWU6IGhlYWRlclNs aWRlSW5GcmFtZXM7DQogICAgfQ0KDQogICAgLlFVMENkZ0lMVW0wWW9QXCtTQ2U0MzdnXD1c PSB7DQogICAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBoZWFkZXJTbGlkZU91dEZyYW1l czsNCiAgICAgIGFuaW1hdGlvbi1uYW1lOiBoZWFkZXJTbGlkZU91dEZyYW1lczsNCiAgICB9 DQoNCiAgICAuSUNTZ2JQdmN1WUlNWW1qV0RWWmp5UVw9XD0gew0KICAgICAgLXdlYmtpdC1h bmltYXRpb24tbmFtZTogd29ya2xvYWREaXZTbGlkZUluRnJhbWVzOw0KICAgICAgYW5pbWF0 aW9uLW5hbWU6IHdvcmtsb2FkRGl2U2xpZGVJbkZyYW1lczsNCiAgICAgIGFuaW1hdGlvbi1m aWxsLW1vZGU6IGZvcndhcmRzOw0KICAgIH0NCg0KICAgIC5wc0VZTUdmY3RtTWtiQlFhUXFH d0RnXD1cPSB7DQogICAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiB3b3JrbG9hZERpdlNs aWRlT3V0RnJhbWVzOw0KICAgICAgYW5pbWF0aW9uLW5hbWU6IHdvcmtsb2FkRGl2U2xpZGVP dXRGcmFtZXM7DQogICAgICBhbmltYXRpb24tZmlsbC1tb2RlOiBmb3J3YXJkczsNCiAgICB9 DQoNCiAgICBALXdlYmtpdC1rZXlmcmFtZXMgaGVhZGVyU2xpZGVJbkZyYW1lcyB7DQogICAg ICAwJSB7DQogICAgICAgIGhlaWdodDogOHB4Ow0KICAgICAgICBvcGFjaXR5OiAwOw0KICAg ICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC45NSk7DQogICAgICAgIC1tcy10cmFu c2Zvcm06IHNjYWxlKDAuOTUpOw0KICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTUpOw0K ICAgICAgfQ0KDQogICAgICB0byB7DQogICAgICAgIGhlaWdodDogNDhweDsNCiAgICAgICAg b3BhY2l0eTogMTsNCiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpOw0KICAg ICAgICAtbXMtdHJhbnNmb3JtOiBzY2FsZSgxKTsNCiAgICAgICAgdHJhbnNmb3JtOiBzY2Fs ZSgxKTsNCiAgICAgIH0NCiAgICB9DQoNCiAgICBAa2V5ZnJhbWVzIGhlYWRlclNsaWRlSW5G cmFtZXMgew0KICAgICAgMCUgew0KICAgICAgICBoZWlnaHQ6IDhweDsNCiAgICAgICAgb3Bh Y2l0eTogMDsNCiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAuOTUpOw0KICAg ICAgICAtbXMtdHJhbnNmb3JtOiBzY2FsZSgwLjk1KTsNCiAgICAgICAgdHJhbnNmb3JtOiBz Y2FsZSgwLjk1KTsNCiAgICAgIH0NCg0KICAgICAgdG8gew0KICAgICAgICBoZWlnaHQ6IDQ4 cHg7DQogICAgICAgIG9wYWNpdHk6IDE7DQogICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBz Y2FsZSgxKTsNCiAgICAgICAgLW1zLXRyYW5zZm9ybTogc2NhbGUoMSk7DQogICAgICAgIHRy YW5zZm9ybTogc2NhbGUoMSk7DQogICAgICB9DQogICAgfQ0KDQogICAgQC13ZWJraXQta2V5 ZnJhbWVzIGhlYWRlclNsaWRlT3V0RnJhbWVzIHsNCiAgICAgIDAlIHsNCiAgICAgICAgdmlz aWJpbGl0eTogdmlzaWJsZTsNCiAgICAgICAgZGlzcGxheTogZmxleDsNCiAgICAgICAgaGVp Z2h0OiA0OHB4Ow0KICAgICAgICBvcGFjaXR5OiAxOw0KICAgICAgICAtd2Via2l0LXRyYW5z Zm9ybTogc2NhbGUoMSk7DQogICAgICAgIC1tcy10cmFuc2Zvcm06IHNjYWxlKDEpOw0KICAg ICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpOw0KICAgICAgfQ0KDQogICAgICB0byB7DQogICAg ICAgIHZpc2liaWxpdHk6IGhpZGRlbjsNCiAgICAgICAgZGlzcGxheTogbm9uZTsNCiAgICAg ICAgaGVpZ2h0OiA4cHg7DQogICAgICAgIG9wYWNpdHk6IDA7DQogICAgICAgIC13ZWJraXQt dHJhbnNmb3JtOiBzY2FsZSgwLjk1KTsNCiAgICAgICAgLW1zLXRyYW5zZm9ybTogc2NhbGUo MC45NSk7DQogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45NSk7DQogICAgICB9DQogICAg fQ0KDQogICAgQGtleWZyYW1lcyBoZWFkZXJTbGlkZU91dEZyYW1lcyB7DQogICAgICAwJSB7 DQogICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7DQogICAgICAgIGRpc3BsYXk6IGZsZXg7 DQogICAgICAgIGhlaWdodDogNDhweDsNCiAgICAgICAgb3BhY2l0eTogMTsNCiAgICAgICAg LXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpOw0KICAgICAgICAtbXMtdHJhbnNmb3JtOiBz Y2FsZSgxKTsNCiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTsNCiAgICAgIH0NCg0KICAg ICAgdG8gew0KICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47DQogICAgICAgIGRpc3BsYXk6 IG5vbmU7DQogICAgICAgIGhlaWdodDogOHB4Ow0KICAgICAgICBvcGFjaXR5OiAwOw0KICAg ICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC45NSk7DQogICAgICAgIC1tcy10cmFu c2Zvcm06IHNjYWxlKDAuOTUpOw0KICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTUpOw0K ICAgICAgfQ0KICAgIH0NCg0KICAgIEAtd2Via2l0LWtleWZyYW1lcyB3b3JrbG9hZERpdlNs aWRlSW5GcmFtZXMgew0KICAgICAgMCUgew0KICAgICAgICBoZWlnaHQ6IDhweDsNCiAgICAg ICAgbWluLWhlaWdodDogOHB4Ow0KICAgICAgfQ0KDQogICAgICB0byB7DQogICAgICAgIGhl aWdodDogNDhweDsNCiAgICAgICAgbWluLWhlaWdodDogNDhweDsNCiAgICAgIH0NCiAgICB9 DQoNCiAgICBAa2V5ZnJhbWVzIHdvcmtsb2FkRGl2U2xpZGVJbkZyYW1lcyB7DQogICAgICAw JSB7DQogICAgICAgIGhlaWdodDogOHB4Ow0KICAgICAgICBtaW4taGVpZ2h0OiA4cHg7DQog ICAgICB9DQoNCiAgICAgIHRvIHsNCiAgICAgICAgaGVpZ2h0OiA0OHB4Ow0KICAgICAgICBt aW4taGVpZ2h0OiA0OHB4Ow0KICAgICAgfQ0KICAgIH0NCg0KICAgIEAtd2Via2l0LWtleWZy YW1lcyB3b3JrbG9hZERpdlNsaWRlT3V0RnJhbWVzIHsNCiAgICAgIDAlIHsNCiAgICAgICAg aGVpZ2h0OiA0OHB4Ow0KICAgICAgICBtaW4taGVpZ2h0OiA0OHB4Ow0KICAgICAgfQ0KDQog ICAgICB0byB7DQogICAgICAgIGhlaWdodDogOHB4Ow0KICAgICAgICBtaW4taGVpZ2h0OiA4 cHg7DQogICAgICB9DQogICAgfQ0KDQogICAgQGtleWZyYW1lcyB3b3JrbG9hZERpdlNsaWRl T3V0RnJhbWVzIHsNCiAgICAgIDAlIHsNCiAgICAgICAgaGVpZ2h0OiA0OHB4Ow0KICAgICAg ICBtaW4taGVpZ2h0OiA0OHB4Ow0KICAgICAgfQ0KDQogICAgICB0byB7DQogICAgICAgIGhl aWdodDogOHB4Ow0KICAgICAgICBtaW4taGVpZ2h0OiA4cHg7DQogICAgICB9DQogICAgfQ0K ICA8L3N0eWxlPg0KICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9yZXMtMS5jZG4ub2ZmaWNlLm5l dC9zaGVsbHV4L3N1aXRldXguc2hlbGwub3RlbGxvZ2dpbmcuZmM1ZjViODM2MGJkOGMyZjdk YTUuanMiDQogICAgY3Jvc3NvcmlnaW49ImFub255bW91cyIgYXN5bmM9IiI+PC9zY3JpcHQ+ DQogIDxzY3JpcHQgc3JjPSJodHRwczovL3Jlcy0xLmNkbi5vZmZpY2UubmV0L3NoZWxsdXgv c3VpdGV1eC5zaGVsbC5tYXN0LjcyZTZmMmMwNjFhNTE0ZWY1ZDdiLmpzIiBjcm9zc29yaWdp bj0iYW5vbnltb3VzIg0KICAgIGFzeW5jPSIiPjwvc2NyaXB0Pg0KICA8c2NyaXB0IGNoYXJz ZXQ9InV0Zi04Ig0KICAgIHNyYz0iaHR0cHM6Ly9yZXMtMS5jZG4ub2ZmaWNlLm5ldC9maWxl cy9vZHNwLXdlYi1wcm9kXzIwMjMtMTAtMjAuMDA1L29kY2xpZ2h0c3BlZWR3ZWJwYWNrLm1h bmlmZXN0LzcyOS5qcyINCiAgICBjcm9zc29yaWdpbj0iYW5vbnltb3VzIj48L3NjcmlwdD4N CiAgPHN0eWxlIGRhdGEtbG9hZC10aGVtZWQtc3R5bGVzPSJ0cnVlIj4NCiAgICAuT25lVXAt cGRmIHsNCiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgIHRvcDogMDsNCiAgICAg IGJvdHRvbTogMDsNCiAgICAgIGxlZnQ6IDA7DQogICAgICByaWdodDogMDsNCiAgICB9DQoN CiAgICAub2QtT25lVXBQZGYtdGh1bWJuYWlsIHsNCiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0 ZTsNCiAgICAgIHRvcDogMDsNCiAgICAgIGxlZnQ6IDA7DQogICAgICByaWdodDogMDsNCiAg ICAgIGJvdHRvbTogMDsNCiAgICAgIG92ZXJmbG93LXk6IHNjcm9sbDsNCiAgICAgIG9wYWNp dHk6IDE7DQogICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOw0KICAgICAgdHJhbnNpdGlvbjog b3BhY2l0eSAyNjdtcyBsaW5lYXIgMjY3bXMsIHZpc2liaWxpdHkgMHMgbGluZWFyIDUzNG1z Ow0KICAgIH0NCg0KICAgIC5PbmVVcC1wZGYtLWxvYWRlZCAub2QtT25lVXBQZGYtdGh1bWJu YWlsIHsNCiAgICAgIG9wYWNpdHk6IDA7DQogICAgICB2aXNpYmlsaXR5OiBoaWRkZW47DQog ICAgfQ0KDQogICAgLm9kLU9uZVVwUGRmLWNvbnRhaW5lciB7DQogICAgICBwb3NpdGlvbjog YWJzb2x1dGU7DQogICAgICB0b3A6IDA7DQogICAgICBsZWZ0OiAwOw0KICAgICAgcmlnaHQ6 IDA7DQogICAgICBib3R0b206IDA7DQogICAgfQ0KDQogICAgLm9kLU9uZVVwUGRmLWNvbnRh aW5lciBkaXZbcm9sZT0ibWVudWJhciJdIHsNCiAgICAgIGZvbnQtc2l6ZTogMTRweDsNCiAg ICB9DQoNCiAgICAuT25lVXAtY29tbWFuZEJhciwNCiAgICAuT25lVXAtY29udGVudCB7DQog ICAgICB0cmFuc2l0aW9uOiBub25lICFpbXBvcnRhbnQ7DQogICAgfQ0KICA8L3N0eWxlPg0K ICA8c3R5bGUgZGF0YS1sb2FkLXRoZW1lZC1zdHlsZXM9InRydWUiPg0KICAgIC5yb290X2Vi NDVmMzk3IHsNCiAgICAgIHdpZHRoOiAxMDAlOw0KICAgICAgaGVpZ2h0OiAxMDAlOw0KICAg ICAgcG9zaXRpb246IHJlbGF0aXZlOw0KICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsNCiAgICB9 DQogIDwvc3R5bGU+DQogIDxzdHlsZSBkYXRhLWxvYWQtdGhlbWVkLXN0eWxlcz0idHJ1ZSI+ DQogICAgaHRtbFtkaXI9Imx0ciJdIC5zYXZlQnRuX2EwOGQ5M2Q4IHsNCiAgICAgIHBhZGRp bmctbGVmdDogMTZweDsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0icnRsIl0gLnNhdmVCdG5f YTA4ZDkzZDggew0KICAgICAgcGFkZGluZy1yaWdodDogMTZweDsNCiAgICB9DQoNCiAgICAu ZmlsZUhlYWRlcl9hMDhkOTNkOCB7DQogICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsNCiAg ICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94Ow0KICAgICAgZGlzcGxheTogZmxleDsNCiAgICAg IC1tcy1mbGV4LXdyYXA6IG5vd3JhcDsNCiAgICAgIGZsZXgtd3JhcDogbm93cmFwOw0KICAg ICAgdGV4dC1hbGlnbjogY2VudGVyOw0KICAgICAgcGFkZGluZzogMTBweDsNCiAgICB9DQoN CiAgICAuZmlsZUhlYWRlcl9hMDhkOTNkOD4qIHsNCiAgICAgIHBhZGRpbmc6IDAgNHB4Ow0K ICAgIH0NCg0KICAgIC5maWxlSGVhZGVyX2EwOGQ5M2Q4IC5maWxlVGl0bGVfYTA4ZDkzZDgg ew0KICAgICAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtYm94Ow0KICAgICAgZGlzcGxheTog LW1zLWlubGluZS1mbGV4Ym94Ow0KICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7DQogICAg ICAtd2Via2l0LWJveC1wYWNrOiBjZW50ZXI7DQogICAgICAtbXMtZmxleC1wYWNrOiBjZW50 ZXI7DQogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsNCiAgICAgIG1heC13aWR0aDog MjAwcHg7DQogICAgICBsaW5lLWhlaWdodDogMTsNCiAgICB9DQoNCiAgICAuZmlsZUhlYWRl cl9hMDhkOTNkOCAuZmlsZVRpdGxlX2EwOGQ5M2Q4PmRpdiB7DQogICAgICB3aGl0ZS1zcGFj ZTogbm93cmFwOw0KICAgIH0NCg0KICAgIC5maWxlSGVhZGVyX2EwOGQ5M2Q4IC5maWxlVGl0 bGVfYTA4ZDkzZDggLmZpbGVOYW1lX2EwOGQ5M2Q4IHsNCiAgICAgIG92ZXJmbG93OiBoaWRk ZW47DQogICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsNCiAgICB9DQoNCiAgICBodG1s W2Rpcj0ibHRyIl0gLmZpbGVIZWFkZXJfYTA4ZDkzZDggLmZpbGVUaXRsZV9hMDhkOTNkOCAu ZmlsZU5hbWVfYTA4ZDkzZDggew0KICAgICAgbWFyZ2luLXJpZ2h0OiA0cHg7DQogICAgfQ0K DQogICAgaHRtbFtkaXI9InJ0bCJdIC5maWxlSGVhZGVyX2EwOGQ5M2Q4IC5maWxlVGl0bGVf YTA4ZDkzZDggLmZpbGVOYW1lX2EwOGQ5M2Q4IHsNCiAgICAgIG1hcmdpbi1sZWZ0OiA0cHg7 DQogICAgfQ0KICA8L3N0eWxlPg0KICA8c3R5bGUgZGF0YS1sb2FkLXRoZW1lZC1zdHlsZXM9 InRydWUiPg0KICAgIGh0bWxbZGlyPSJsdHIiXSAuc2F2ZUJ0bl85YTA1ZTg3NiB7DQogICAg ICBwYWRkaW5nLWxlZnQ6IDE2cHg7DQogICAgfQ0KDQogICAgaHRtbFtkaXI9InJ0bCJdIC5z YXZlQnRuXzlhMDVlODc2IHsNCiAgICAgIHBhZGRpbmctcmlnaHQ6IDE2cHg7DQogICAgfQ0K DQogICAgLnRpdGxlXzlhMDVlODc2IHsNCiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsN CiAgICAgIG1heC13aWR0aDogMjAwcHg7DQogICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOw0K ICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsNCiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lz Ow0KICAgIH0NCg0KICAgIC5yaWdodERpdmlkZXJfOWEwNWU4NzYgew0KICAgICAgaGVpZ2h0 OiAxNnB4Ow0KICAgICAgbWFyZ2luOiAwIDIwcHg7DQogICAgfQ0KDQogICAgLnNlbGVjdGlv bkNvdW50ZXJfOWEwNWU4NzYgew0KICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7DQogICAg ICBkaXNwbGF5OiAtbXMtZmxleGJveDsNCiAgICAgIGRpc3BsYXk6IGZsZXg7DQogICAgICAt d2Via2l0LWJveC1hbGlnbjogY2VudGVyOw0KICAgICAgLW1zLWZsZXgtYWxpZ246IGNlbnRl cjsNCiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7DQogICAgfQ0KDQogICAgLmNsb3NlQnV0 dG9uXzlhMDVlODc2IHsNCiAgICAgIGNvbG9yOiBpbmhlcml0Ow0KICAgIH0NCiAgPC9zdHls ZT4NCiAgPHN0eWxlIGRhdGEtbG9hZC10aGVtZWQtc3R5bGVzPSJ0cnVlIj4NCiAgICAjcHJp bnRDb250YWluZXJfMmU1OGQ5NGQgew0KICAgICAgZGlzcGxheTogbm9uZTsNCiAgICB9DQoN CiAgICBAbWVkaWEgcHJpbnQgew0KICAgICAgYm9keSB7DQogICAgICAgIGJhY2tncm91bmQ6 IHRyYW5zcGFyZW50Ow0KICAgICAgfQ0KDQogICAgICBib2R5W2RhdGEtcGRmcHJpbnRpbmdd Piogew0KICAgICAgICBkaXNwbGF5OiBub25lOw0KICAgICAgfQ0KDQogICAgICAjcHJpbnRD b250YWluZXJfMmU1OGQ5NGQgew0KICAgICAgICBkaXNwbGF5OiBibG9jazsNCiAgICAgICAg aGVpZ2h0OiAxMDAlOw0KICAgICAgfQ0KDQogICAgICAjcHJpbnRDb250YWluZXJfMmU1OGQ5 NGQ+ZGl2IHsNCiAgICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7DQogICAgICAgIGRpc3Bs YXk6IC1tcy1mbGV4Ym94Ow0KICAgICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgICAtd2Vi a2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsOw0KICAgICAgICAtd2Via2l0LWJveC1kaXJlY3Rp b246IG5vcm1hbDsNCiAgICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47DQogICAg ICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47DQogICAgICAgIC13ZWJraXQtYm94LXBhY2s6 IGNlbnRlcjsNCiAgICAgICAgLW1zLWZsZXgtcGFjazogY2VudGVyOw0KICAgICAgICBqdXN0 aWZ5LWNvbnRlbnQ6IGNlbnRlcjsNCiAgICAgICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRl cjsNCiAgICAgICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjsNCiAgICAgICAgYWxpZ24taXRl bXM6IGNlbnRlcjsNCiAgICAgICAgd2lkdGg6IDEwMCU7DQogICAgICAgIGhlaWdodDogMTAw JTsNCiAgICAgICAgcGFnZS1icmVhay1hZnRlcjogYWx3YXlzOw0KICAgICAgICBwYWdlLWJy ZWFrLWluc2lkZTogYXZvaWQ7DQogICAgICB9DQoNCiAgICAgICNwcmludENvbnRhaW5lcl8y ZTU4ZDk0ZD5kaXYgaW1nIHsNCiAgICAgICAgbWF4LXdpZHRoOiAxMDAlOw0KICAgICAgICBt YXgtaGVpZ2h0OiAxMDAlOw0KICAgICAgfQ0KICAgIH0NCiAgPC9zdHlsZT4NCiAgPHN0eWxl IGRhdGEtbG9hZC10aGVtZWQtc3R5bGVzPSJ0cnVlIj4NCiAgICAuc2NyZWVuUmVhZGVyXzdm MWFlZThlIHsNCiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgIHdpZHRoOiAxcHg7 DQogICAgICBoZWlnaHQ6IDFweDsNCiAgICAgIHBhZGRpbmc6IDA7DQogICAgICBtYXJnaW46 IC0xcHg7DQogICAgICBvdmVyZmxvdzogaGlkZGVuOw0KICAgICAgY2xpcDogcmVjdCgwLCAw LCAwLCAwKTsNCiAgICAgIGJvcmRlcjogMDsNCiAgICB9DQogIDwvc3R5bGU+DQogIDxzdHls ZSBkYXRhLWxvYWQtdGhlbWVkLXN0eWxlcz0idHJ1ZSI+DQogICAgLnBkZk91dGVyX2NhOTcy YzkzIHsNCiAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94Ow0KICAgICAgZGlzcGxheTogLW1z LWZsZXhib3g7DQogICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgLXdlYmtpdC1ib3gtb3Jp ZW50OiB2ZXJ0aWNhbDsNCiAgICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsOw0K ICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47DQogICAgICBmbGV4LWRpcmVjdGlv bjogY29sdW1uOw0KICAgICAgaGVpZ2h0OiAxMDAlOw0KICAgIH0NCg0KICAgIC5wZGZWaWV3 ZXJfY2E5NzJjOTMgew0KICAgICAgLXdlYmtpdC1ib3gtZmxleDogMTsNCiAgICAgIC1tcy1m bGV4OiAxIDEgMHB4Ow0KICAgICAgZmxleDogMSAxIDA7DQogICAgICBvdmVyZmxvdzogYXV0 bzsNCiAgICAgIHdpZHRoOiAxMDAlOw0KICAgICAgaGVpZ2h0OiAxMDAlOw0KICAgICAgLW1v ei11c2VyLXNlbGVjdDogbm9uZTsNCiAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7 DQogICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7DQogICAgICB1c2VyLXNlbGVjdDogbm9u ZTsNCiAgICB9DQoNCiAgICAucGRmQ29udGVudF9jYTk3MmM5MyB7DQogICAgICBwb3NpdGlv bjogcmVsYXRpdmU7DQogICAgICBvdmVyZmxvdzogaGlkZGVuOw0KICAgICAgbWluLXdpZHRo OiAxMDAlOw0KICAgICAgbWluLWhlaWdodDogMTAwJTsNCiAgICB9DQoNCiAgICAuZmlsbFNp emVfY2E5NzJjOTMgew0KICAgICAgd2lkdGg6IDEwMCU7DQogICAgICBoZWlnaHQ6IDEwMCU7 DQogICAgfQ0KDQogICAgLmhpZGRlbl9jYTk3MmM5MyB7DQogICAgICB2aXNpYmlsaXR5OiBo aWRkZW47DQogICAgfQ0KICA8L3N0eWxlPg0KICA8c3R5bGUgZGF0YS1sb2FkLXRoZW1lZC1z dHlsZXM9InRydWUiPg0KICAgIC5wYWdlX2EwZmI2MDQxIHsNCiAgICAgIHBvc2l0aW9uOiBh YnNvbHV0ZTsNCiAgICAgIGxlZnQ6IDUwJTsNCiAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0 cmFuc2xhdGUoLTUwJSwgMCk7DQogICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAw KTsNCiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICAgIH0NCg0KICAg IC5wYWdlVGV4dF9hMGZiNjA0MSB7DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAg ICB3aWR0aDogMTAwJTsNCiAgICAgIGhlaWdodDogMTAwJTsNCiAgICB9DQogIDwvc3R5bGU+ DQogIDxzdHlsZSBkYXRhLWxvYWQtdGhlbWVkLXN0eWxlcz0idHJ1ZSI+DQogICAgLnJvb3Rf ZjRiZWY0OTUgew0KICAgICAgd2lkdGg6IDEwMCU7DQogICAgICBoZWlnaHQ6IDEwMCU7DQog ICAgfQ0KDQogICAgLmxpbmtfZjRiZWY0OTUgew0KICAgICAgcG9zaXRpb246IGFic29sdXRl Ow0KICAgIH0NCg0KICAgIC5saW5rX2Y0YmVmNDk1IGEgew0KICAgICAgZGlzcGxheTogaW5s aW5lLWJsb2NrOw0KICAgICAgd2lkdGg6IDEwMCU7DQogICAgICBoZWlnaHQ6IDEwMCU7DQog ICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOw0KICAgIH0NCg0KICAgIC5saW5rX2Y0YmVmNDk1 IGE6aG92ZXIgew0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMCwg MC4yKTsNCiAgICB9DQogIDwvc3R5bGU+DQogIDxzdHlsZSBkYXRhLWxvYWQtdGhlbWVkLXN0 eWxlcz0idHJ1ZSI+DQogICAgLnJvb3RfOWMyZjU1MmEgew0KICAgICAgd2lkdGg6IDEwMCU7 DQogICAgfQ0KDQogICAgLnBhZ2VfOWMyZjU1MmEgew0KICAgICAgcG9zaXRpb246IGFic29s dXRlOw0KICAgICAgbGVmdDogNTAlOw0KICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5z bGF0ZSgtNTAlLCAwKTsNCiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIDApOw0K ICAgICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDAuM3B4IDAuOXB4IDAgcmdiYSgwLCAwLCAw LCAwLjEpLA0KICAgICAgICAwIDEuNnB4IDMuNnB4IDAgcmdiYSgwLCAwLCAwLCAwLjEzKTsN CiAgICAgIGJveC1zaGFkb3c6IDAgMC4zcHggMC45cHggMCByZ2JhKDAsIDAsIDAsIDAuMSks DQogICAgICAgIDAgMS42cHggMy42cHggMCByZ2JhKDAsIDAsIDAsIDAuMTMpOw0KICAgIH0N CiAgPC9zdHlsZT4NCiAgPHN0eWxlIGRhdGEtbG9hZC10aGVtZWQtc3R5bGVzPSJ0cnVlIj4N CiAgICAucm9vdF84ZDc0NDZhNCB7DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAg fQ0KDQogICAgLnJvb3RfOGQ3NDQ2YTQgY2FudmFzIHsNCiAgICAgIHBvc2l0aW9uOiBhYnNv bHV0ZTsNCiAgICAgIHdpZHRoOiAxMDAlOw0KICAgICAgaGVpZ2h0OiAxMDAlOw0KICAgIH0N CiAgPC9zdHlsZT4NCiAgPHN0eWxlIGRhdGEtbG9hZC10aGVtZWQtc3R5bGVzPSJ0cnVlIj4N CiAgICAuc3Bpbm5lcl8xNjBmOTFkYyB7DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQog ICAgICBsZWZ0OiA1MCU7DQogICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC01 MCUsIDApOw0KICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgMCk7DQogICAgICBi b3R0b206IDE3cHg7DQogICAgICBtYXgtd2lkdGg6IDUwJTsNCiAgICAgIHBhZGRpbmc6IDEy cHggMTVweDsNCiAgICAgIGJvcmRlci1yYWRpdXM6IDMzcHg7DQogICAgICB6LWluZGV4OiA5 OTsNCiAgICB9DQogIDwvc3R5bGU+DQogIDxzdHlsZSBkYXRhLWxvYWQtdGhlbWVkLXN0eWxl cz0idHJ1ZSI+DQogICAgLnJvb3RfOGJhNTM3NGMgew0KICAgICAgaGVpZ2h0OiAxMDAlOw0K ICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7DQogICAgICBkaXNwbGF5OiAtbXMtZmxleGJv eDsNCiAgICAgIGRpc3BsYXk6IGZsZXg7DQogICAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZl cnRpY2FsOw0KICAgICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7DQogICAgICAt bXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjsNCiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1 bW47DQogICAgfQ0KDQogICAgLm1haW5XcmFwcGVyXzhiYTUzNzRjIHsNCiAgICAgIHBvc2l0 aW9uOiByZWxhdGl2ZTsNCiAgICAgIC13ZWJraXQtYm94LWZsZXg6IDE7DQogICAgICAtbXMt ZmxleDogMTsNCiAgICAgIGZsZXg6IDE7DQogICAgfQ0KDQogICAgLnNhdmVNb2RhbF84YmE1 Mzc0YyB7DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgICBib3R0b206IDA7DQog ICAgICB3aWR0aDogMTAwJTsNCiAgICAgIGhlaWdodDogMTAwJTsNCiAgICAgIGJhY2tncm91 bmQ6IHJnYmEoMCwgMCwgMCwgMC4yKTsNCiAgICB9DQoNCiAgICAubWFpbl84YmE1Mzc0YyB7 DQogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7DQogICAgICBoZWlnaHQ6IDEwMCU7DQogICAg fQ0KICA8L3N0eWxlPg0KICA8c3R5bGUgZGF0YS1sb2FkLXRoZW1lZC1zdHlsZXM9InRydWUi Pg0KICAgIC5ib3R0b21Ub29sQXJlYV9mYjBjZTMwMSB7DQogICAgICBwb3NpdGlvbjogYWJz b2x1dGU7DQogICAgICBsZWZ0OiA1MCU7DQogICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJh bnNsYXRlKC01MCUsIDApOw0KICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgMCk7 DQogICAgICBib3R0b206IDE3cHg7DQogICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsNCiAg ICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94Ow0KICAgICAgZGlzcGxheTogZmxleDsNCiAgICAg IC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7DQogICAgICAtd2Via2l0LWJveC1kaXJl Y3Rpb246IG5vcm1hbDsNCiAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uOw0KICAg ICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsNCiAgICAgIGdhcDogMTZweDsNCiAgICAgIC13 ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7DQogICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVy Ow0KICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAgICB9DQoNCiAgICAucGxhY2VCb3R0 b21Ub29sT25Ub3BfZmIwY2UzMDEgew0KICAgICAgei1pbmRleDogOTk7DQogICAgfQ0KDQog ICAgLmlua0Jhcl9mYjBjZTMwMSB7DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAg ICB0b3A6IDUwJTsNCiAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTUw JSk7DQogICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtNTAlKTsNCiAgICAgIGxlZnQ6 IDIwcHg7DQogICAgfQ0KICA8L3N0eWxlPg0KICA8c3R5bGUgZGF0YS1sb2FkLXRoZW1lZC1z dHlsZXM9InRydWUiPg0KICAgIC53cmFwcGVyXzYxNmFiY2IwIHsNCiAgICAgIHBhZGRpbmc6 IDAgMTBweDsNCiAgICAgIHotaW5kZXg6IDk5Ow0KICAgICAgd2lkdGg6IDM1MnB4Ow0KICAg ICAgYm9yZGVyLXJhZGl1czogNHB4Ow0KICAgICAgZGlzcGxheTogYmxvY2s7DQogICAgICBv dmVyZmxvdzogaGlkZGVuOw0KICAgICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBjZW50 ZXI7DQogICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7DQogICAgICB3aWxsLWNoYW5n ZTogdHJhbnNmb3JtOw0KICAgICAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDMwMG1z IGVhc2UsIC13ZWJraXQtdHJhbnNmb3JtIDMwMG1zIGVhc2U7DQogICAgICB0cmFuc2l0aW9u OiBvcGFjaXR5IDMwMG1zIGVhc2UsIC13ZWJraXQtdHJhbnNmb3JtIDMwMG1zIGVhc2U7DQog ICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMzAwbXMgZWFzZSwgb3BhY2l0eSAzMDBtcyBl YXNlOw0KICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDMwMG1zIGVhc2UsIG9wYWNpdHkg MzAwbXMgZWFzZSwNCiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm0gMzAwbXMgZWFzZTsNCiAg ICAgIC13ZWJraXQtYW5pbWF0aW9uOiB0b29sdGlwU2hvd182MTZhYmNiMCAzMDBtcyBlYXNl IDE7DQogICAgICBhbmltYXRpb246IHRvb2x0aXBTaG93XzYxNmFiY2IwIDMwMG1zIGVhc2Ug MTsNCiAgICB9DQoNCiAgICAuaGlkZGVuXzYxNmFiY2IwIHsNCiAgICAgIC13ZWJraXQtdHJh bnNpdGlvbjogb3BhY2l0eSAzMDBtcyBlYXNlLCAtd2Via2l0LXRyYW5zZm9ybSAzMDBtcyBl YXNlOw0KICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAzMDBtcyBlYXNlLCAtd2Via2l0LXRy YW5zZm9ybSAzMDBtcyBlYXNlOw0KICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDMwMG1z IGVhc2UsIG9wYWNpdHkgMzAwbXMgZWFzZTsNCiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9y bSAzMDBtcyBlYXNlLCBvcGFjaXR5IDMwMG1zIGVhc2UsDQogICAgICAgIC13ZWJraXQtdHJh bnNmb3JtIDMwMG1zIGVhc2U7DQogICAgICAtd2Via2l0LWFuaW1hdGlvbjogdG9vbHRpcEhp ZGVfNjE2YWJjYjAgMzAwbXMgZWFzZSBmb3J3YXJkcyAxOw0KICAgICAgYW5pbWF0aW9uOiB0 b29sdGlwSGlkZV82MTZhYmNiMCAzMDBtcyBlYXNlIGZvcndhcmRzIDE7DQogICAgfQ0KDQog ICAgLmRpc3BsYXlOb25lXzYxNmFiY2IwIHsNCiAgICAgIGRpc3BsYXk6IG5vbmU7DQogICAg fQ0KDQogICAgQC13ZWJraXQta2V5ZnJhbWVzIHJvdGF0aW5nXzYxNmFiY2IwIHsNCiAgICAg IGZyb20gew0KICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDBkZWcpOw0KICAg ICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsNCiAgICAgIH0NCg0KICAgICAgdG8gew0K ICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7DQogICAgICAgIHRy YW5zZm9ybTogcm90YXRlKDM2MGRlZyk7DQogICAgICB9DQogICAgfQ0KDQogICAgQGtleWZy YW1lcyByb3RhdGluZ182MTZhYmNiMCB7DQogICAgICBmcm9tIHsNCiAgICAgICAgLXdlYmtp dC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsNCiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUo MGRlZyk7DQogICAgICB9DQoNCiAgICAgIHRvIHsNCiAgICAgICAgLXdlYmtpdC10cmFuc2Zv cm06IHJvdGF0ZSgzNjBkZWcpOw0KICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcp Ow0KICAgICAgfQ0KICAgIH0NCg0KICAgIC5yb3RhdGVfNjE2YWJjYjAgew0KICAgICAgLXdl YmtpdC1hbmltYXRpb246IHJvdGF0aW5nXzYxNmFiY2IwIDFzIGxpbmVhciBpbmZpbml0ZTsN CiAgICAgIGFuaW1hdGlvbjogcm90YXRpbmdfNjE2YWJjYjAgMXMgbGluZWFyIGluZmluaXRl Ow0KICAgIH0NCg0KICAgIC50b2FzdEluZm9fNjE2YWJjYjAgew0KICAgICAgZ2FwOiA4cHg7 DQogICAgICBwYWRkaW5nOiA2cHggNHB4Ow0KICAgIH0NCg0KICAgIC50b2FzdExlYWRJY29u Q29udGFpbmVyXzYxNmFiY2IwLA0KICAgIC50b2FzdFBvc3RJY29uQ29udGFpbmVyXzYxNmFi Y2IwIHsNCiAgICAgIHdpZHRoOiAyNHB4Ow0KICAgICAgaGVpZ2h0OiAzMHB4Ow0KICAgICAg ZGlzcGxheTogLXdlYmtpdC1ib3g7DQogICAgICBkaXNwbGF5OiAtbXMtZmxleGJveDsNCiAg ICAgIGRpc3BsYXk6IGZsZXg7DQogICAgICAtd2Via2l0LWJveC1wYWNrOiBjZW50ZXI7DQog ICAgICAtbXMtZmxleC1wYWNrOiBjZW50ZXI7DQogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNl bnRlcjsNCiAgICAgIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7DQogICAgICAtbXMtZmxl eC1hbGlnbjogY2VudGVyOw0KICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAgICB9DQoN CiAgICAudG9hc3RMZWFkSWNvbkNvbnRhaW5lcl82MTZhYmNiMCB7DQogICAgICBmb250LXNp emU6IDE2cHg7DQogICAgfQ0KDQogICAgLnRvYXN0UG9zdEljb25Db250YWluZXJfNjE2YWJj YjAgew0KICAgICAgZm9udC1zaXplOiAxNHB4Ow0KICAgICAgY3Vyc29yOiBwb2ludGVyOw0K ICAgICAgYm9yZGVyLXJhZGl1czogNXB4Ow0KICAgIH0NCg0KICAgIC50b2FzdFRleHRfNjE2 YWJjYjAgew0KICAgICAgcGFkZGluZzogNHB4IDA7DQogICAgfQ0KDQogICAgQC13ZWJraXQt a2V5ZnJhbWVzIHRvb2x0aXBTaG93XzYxNmFiY2IwIHsNCiAgICAgIGZyb20gew0KICAgICAg ICBvcGFjaXR5OiAwOw0KICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2Qo MCwgMTAwJSwgMCk7DQogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTAwJSwg MCk7DQogICAgICB9DQogICAgfQ0KDQogICAgQGtleWZyYW1lcyB0b29sdGlwU2hvd182MTZh YmNiMCB7DQogICAgICBmcm9tIHsNCiAgICAgICAgb3BhY2l0eTogMDsNCiAgICAgICAgLXdl YmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwMCUsIDApOw0KICAgICAgICB0cmFu c2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwMCUsIDApOw0KICAgICAgfQ0KICAgIH0NCg0KICAg IEAtd2Via2l0LWtleWZyYW1lcyB0b29sdGlwSGlkZV82MTZhYmNiMCB7DQogICAgICB0byB7 DQogICAgICAgIG9wYWNpdHk6IDA7DQogICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFu c2xhdGVZKDEwMCUpOw0KICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAwJSk7DQog ICAgICB9DQogICAgfQ0KDQogICAgQGtleWZyYW1lcyB0b29sdGlwSGlkZV82MTZhYmNiMCB7 DQogICAgICB0byB7DQogICAgICAgIG9wYWNpdHk6IDA7DQogICAgICAgIC13ZWJraXQtdHJh bnNmb3JtOiB0cmFuc2xhdGVZKDEwMCUpOw0KICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0 ZVkoMTAwJSk7DQogICAgICB9DQogICAgfQ0KICA8L3N0eWxlPg0KICA8c3R5bGUgZGF0YS1s b2FkLXRoZW1lZC1zdHlsZXM9InRydWUiPg0KICAgIC50b29sSWNvbl82NDAyNDVhMiB7DQog ICAgICBoZWlnaHQ6IDA7DQogICAgICBwYWRkaW5nOiAxNXB4IDIwcHg7DQogICAgICBtYXJn aW46IGNhbGMoN3B4KSAwOw0KICAgICAgYm9yZGVyLXJhZGl1czogNXB4Ow0KICAgIH0NCg0K ICAgIC5tZW51SWNvbl82NDAyNDVhMiB7DQogICAgICBoZWlnaHQ6IDA7DQogICAgICBwYWRk aW5nOiAxNXB4IGNhbGMoOHB4KTsNCiAgICAgIG1hcmdpbjogY2FsYyg3cHgpIDA7DQogICAg fQ0KICA8L3N0eWxlPg0KICA8c3R5bGUgZGF0YS1sb2FkLXRoZW1lZC1zdHlsZXM9InRydWUi Pg0KICAgIC5pbnB1dFdyYXBwZXJfOWFmYjQxNzUgew0KICAgICAgZGlzcGxheTogaW5saW5l LWJsb2NrOw0KICAgICAgaGVpZ2h0OiAxMDAlOw0KICAgIH0NCg0KICAgIGlucHV0IHsNCiAg ICAgIGhlaWdodDogMjRweDsNCiAgICAgIGJvcmRlcjogMXB4IHNvbGlkOw0KICAgICAgYm9y ZGVyLXJhZGl1czogMnB4Ow0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogIiNmZmZmZmYiOw0K ICAgICAgY29sb3I6ICIjMzIzMTMwIjsNCiAgICB9DQoNCiAgICBpbnB1dDpmb2N1cyB7DQog ICAgICBvdXRsaW5lOiBub25lOw0KICAgIH0NCiAgPC9zdHlsZT4NCiAgPHN0eWxlIGRhdGEt bG9hZC10aGVtZWQtc3R5bGVzPSJ0cnVlIj4NCiAgICAucm9vdF80NzA4MGJkNCB7DQogICAg ICBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1ib3g7DQogICAgICBkaXNwbGF5OiAtbXMtaW5s aW5lLWZsZXhib3g7DQogICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsNCiAgICAgIC13ZWJr aXQtYm94LWFsaWduOiBjZW50ZXI7DQogICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyOw0K ICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAgICAgIHBhZGRpbmc6IDAgMTBweDsNCiAg ICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7DQogICAgICBmb250LXNpemU6IDE0cHg7DQogICAg ICBib3R0b206IGNhbGMoNjFweCk7DQogICAgICBib3JkZXItcmFkaXVzOiAyMXB4IDIxcHgg MCAwOw0KICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkOw0KICAgIH0NCg0KICAgIC5m YWRlT3V0XzQ3MDgwYmQ0IHsNCiAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjsNCiAgICAgIG9w YWNpdHk6IDA7DQogICAgICAtd2Via2l0LXRyYW5zaXRpb246IHZpc2liaWxpdHkgMHMgbGlu ZWFyIDMwMG1zLCBvcGFjaXR5IDMwMG1zOw0KICAgICAgdHJhbnNpdGlvbjogdmlzaWJpbGl0 eSAwcyBsaW5lYXIgMzAwbXMsIG9wYWNpdHkgMzAwbXM7DQogICAgfQ0KDQogICAgLmZhZGVJ bl80NzA4MGJkNCB7DQogICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOw0KICAgICAgb3BhY2l0 eTogMTsNCiAgICAgIC13ZWJraXQtdHJhbnNpdGlvbjogdmlzaWJpbGl0eSAwcyBsaW5lYXIg MHMsIG9wYWNpdHkgMTUwbXM7DQogICAgICB0cmFuc2l0aW9uOiB2aXNpYmlsaXR5IDBzIGxp bmVhciAwcywgb3BhY2l0eSAxNTBtczsNCiAgICB9DQoNCiAgICAua2V5d29yZF80NzA4MGJk NCB7DQogICAgICBkaXNwbGF5OiBpbmxpbmUtdGFibGU7DQogICAgICBib3JkZXItY29sbGFw c2U6IHNlcGFyYXRlOw0KICAgICAgYm9yZGVyLXNwYWNpbmc6IDhweDsNCiAgICB9DQoNCiAg ICAua2V5d29yZF80NzA4MGJkNCBpbnB1dCB7DQogICAgICBkaXNwbGF5OiB0YWJsZS1jZWxs Ow0KICAgICAgd2lkdGg6IDEwMCU7DQogICAgICB0ZXh0LWluZGVudDogNXB4Ow0KICAgIH0N Cg0KICAgIGh0bWxbZGlyPSJsdHIiXSAua2V5d29yZF80NzA4MGJkNCBpbnB1dCB7DQogICAg ICBwYWRkaW5nLWxlZnQ6IDRweDsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0icnRsIl0gLmtl eXdvcmRfNDcwODBiZDQgaW5wdXQgew0KICAgICAgcGFkZGluZy1yaWdodDogNHB4Ow0KICAg IH0NCg0KICAgIGh0bWxbZGlyPSJsdHIiXSAua2V5d29yZF80NzA4MGJkNCBpbnB1dCB7DQog ICAgICBwYWRkaW5nLXJpZ2h0OiAycHg7DQogICAgfQ0KDQogICAgaHRtbFtkaXI9InJ0bCJd IC5rZXl3b3JkXzQ3MDgwYmQ0IGlucHV0IHsNCiAgICAgIHBhZGRpbmctbGVmdDogMnB4Ow0K ICAgIH0NCg0KICAgIGh0bWxbZGlyPSJsdHIiXSAua2V5d29yZF80NzA4MGJkNCBpbnB1dCB7 DQogICAgICB0ZXh0LWFsaWduOiBsZWZ0Ow0KICAgIH0NCg0KICAgIGh0bWxbZGlyPSJydGwi XSAua2V5d29yZF80NzA4MGJkNCBpbnB1dCB7DQogICAgICB0ZXh0LWFsaWduOiByaWdodDsN CiAgICB9DQoNCiAgICAua2V5d29yZF80NzA4MGJkNCAucmVzdWx0XzQ3MDgwYmQ0IHsNCiAg ICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7DQogICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7DQog ICAgfQ0KDQogICAgaHRtbFtkaXI9Imx0ciJdIC5rZXl3b3JkXzQ3MDgwYmQ0IC5yZXN1bHRf NDcwODBiZDQgew0KICAgICAgcGFkZGluZy1sZWZ0OiAxMHB4Ow0KICAgIH0NCg0KICAgIGh0 bWxbZGlyPSJydGwiXSAua2V5d29yZF80NzA4MGJkNCAucmVzdWx0XzQ3MDgwYmQ0IHsNCiAg ICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7DQogICAgfQ0KICA8L3N0eWxlPg0KICA8c3R5bGUg ZGF0YS1sb2FkLXRoZW1lZC1zdHlsZXM9InRydWUiPg0KICAgIC5yb290XzcxOWQzMzBlIHsN CiAgICAgIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWJveDsNCiAgICAgIGRpc3BsYXk6IC1t cy1pbmxpbmUtZmxleGJveDsNCiAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4Ow0KICAgICAg LXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjsNCiAgICAgIC1tcy1mbGV4LWFsaWduOiBjZW50 ZXI7DQogICAgICBhbGlnbi1pdGVtczogY2VudGVyOw0KICAgICAgcGFkZGluZzogMCAxMHB4 Ow0KICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsNCiAgICAgIGZvbnQtc2l6ZTogMTRweDsN CiAgICAgIGJvcmRlci1yYWRpdXM6IDMzcHg7DQogICAgICAtd2Via2l0LWJveC1zaGFkb3c6 IGluc2V0IDBweCAwLjZweCAxLjhweCByZ2JhKDAsIDAsIDAsIDAuMSksDQogICAgICAgIDBw eCAzLjJweCA3LjJweCByZ2JhKDAsIDAsIDAsIDAuMTMpOw0KICAgICAgYm94LXNoYWRvdzog aW5zZXQgMHB4IDAuNnB4IDEuOHB4IHJnYmEoMCwgMCwgMCwgMC4xKSwNCiAgICAgICAgMHB4 IDMuMnB4IDcuMnB4IHJnYmEoMCwgMCwgMCwgMC4xMyk7DQogICAgfQ0KDQogICAgLmZhZGVP dXRfNzE5ZDMzMGUgew0KICAgICAgdmlzaWJpbGl0eTogaGlkZGVuOw0KICAgICAgb3BhY2l0 eTogMDsNCiAgICAgIC13ZWJraXQtdHJhbnNpdGlvbjogdmlzaWJpbGl0eSAwcyBsaW5lYXIg MzAwbXMsIG9wYWNpdHkgMzAwbXM7DQogICAgICB0cmFuc2l0aW9uOiB2aXNpYmlsaXR5IDBz IGxpbmVhciAzMDBtcywgb3BhY2l0eSAzMDBtczsNCiAgICB9DQoNCiAgICAuZmFkZUluXzcx OWQzMzBlIHsNCiAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7DQogICAgICBvcGFjaXR5OiAx Ow0KICAgICAgLXdlYmtpdC10cmFuc2l0aW9uOiB2aXNpYmlsaXR5IDBzIGxpbmVhciAwcywg b3BhY2l0eSAxNTBtczsNCiAgICAgIHRyYW5zaXRpb246IHZpc2liaWxpdHkgMHMgbGluZWFy IDBzLCBvcGFjaXR5IDE1MG1zOw0KICAgIH0NCg0KICAgIC5wYWdpbmF0aW9uXzcxOWQzMzBl IHsNCiAgICAgIGRpc3BsYXk6IGlubGluZS10YWJsZTsNCiAgICB9DQoNCiAgICBodG1sW2Rp cj0ibHRyIl0gLnBhZ2luYXRpb25fNzE5ZDMzMGUgew0KICAgICAgbWFyZ2luLWxlZnQ6IDEw cHg7DQogICAgfQ0KDQogICAgaHRtbFtkaXI9InJ0bCJdIC5wYWdpbmF0aW9uXzcxOWQzMzBl IHsNCiAgICAgIG1hcmdpbi1yaWdodDogMTBweDsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0i bHRyIl0gLnBhZ2luYXRpb25fNzE5ZDMzMGUgew0KICAgICAgcGFkZGluZy1yaWdodDogMTBw eDsNCiAgICB9DQoNCiAgICBodG1sW2Rpcj0icnRsIl0gLnBhZ2luYXRpb25fNzE5ZDMzMGUg ew0KICAgICAgcGFkZGluZy1sZWZ0OiAxMHB4Ow0KICAgIH0NCg0KICAgIC5wYWdpbmF0aW9u XzcxOWQzMzBlIGlucHV0IHsNCiAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7DQogICAgICB3 aWR0aDogMzBweDsNCiAgICAgIHBhZGRpbmc6IDAgMnB4Ow0KICAgICAgdGV4dC1hbGlnbjog Y2VudGVyOw0KICAgIH0NCg0KICAgIC5wYWdpbmF0aW9uXzcxOWQzMzBlIC5zdGF0dXNfNzE5 ZDMzMGUgew0KICAgICAgZGlzcGxheTogdGFibGUtY2VsbDsNCiAgICAgIHRleHQtYWxpZ246 IGNlbnRlcjsNCiAgICB9DQoNCiAgICAuc2xhc2hfNzE5ZDMzMGUgew0KICAgICAgcGFkZGlu ZzogMCA1cHg7DQogICAgfQ0KDQogICAgLmV4cGFuZGVkXzcxOWQzMzBlIHsNCiAgICAgIGJv cmRlci1yYWRpdXM6IDAgMCAyMXB4IDIxcHg7DQogICAgICAtd2Via2l0LWJveC1zaGFkb3c6 IG5vbmU7DQogICAgICBib3gtc2hhZG93OiBub25lOw0KICAgIH0NCg0KICAgIC5zaGFkb3dC b3hfNzE5ZDMzMGUgew0KICAgICAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwcHggMC42 cHggMS44cHggcmdiYSgwLCAwLCAwLCAwLjEpLA0KICAgICAgICAwcHggMy4ycHggNy4ycHgg cmdiYSgwLCAwLCAwLCAwLjEzKTsNCiAgICAgIGJveC1zaGFkb3c6IGluc2V0IDBweCAwLjZw eCAxLjhweCByZ2JhKDAsIDAsIDAsIDAuMSksDQogICAgICAgIDBweCAzLjJweCA3LjJweCBy Z2JhKDAsIDAsIDAsIDAuMTMpOw0KICAgICAgYm9yZGVyLXJhZGl1czogMjFweDsNCiAgICB9 DQogIDwvc3R5bGU+DQogIDxzdHlsZSBkYXRhLWxvYWQtdGhlbWVkLXN0eWxlcz0idHJ1ZSI+ DQogICAgLmVudGVyUGFuZWxfMjcwNDM0MDMgew0KICAgICAgcG9zaXRpb246IGFic29sdXRl Ow0KICAgICAgbGVmdDogNTAlOw0KICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0 ZSgtNTAlLCAwKTsNCiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIDApOw0KICAg ICAgdG9wOiA1MCU7DQogICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUs IC01MCUpOw0KICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7DQogICAg ICB0ZXh0LWFsaWduOiBjZW50ZXI7DQogICAgfQ0KDQogICAgLnByb21wdF8yNzA0MzQwMyB7 DQogICAgICBtYXJnaW4tYm90dG9tOiAxMHB4Ow0KICAgICAgZm9udC1zaXplOiAxNnB4Ow0K ICAgIH0NCiAgPC9zdHlsZT4NCiAgPHN0eWxlIGRhdGEtbG9hZC10aGVtZWQtc3R5bGVzPSJ0 cnVlIj4NCiAgICAub2RQZGZWaWV3ZXJfYTQ2ZTExMmIgew0KICAgICAgd2lkdGg6IDEwMCU7 DQogICAgICBoZWlnaHQ6IDEwMCU7DQogICAgfQ0KICA8L3N0eWxlPg0KPC9oZWFkPg0KDQo8 Ym9keT4NCiAgPG5vc2NyaXB0PllvdSBuZWVkIHRvIGVuYWJsZSBKYXZhU2NyaXB0IHRvIHJ1 biB0aGlzIGFwcC48L25vc2NyaXB0Pg0KICA8ZGl2IGlkPSJyb290Ij48L2Rpdj4NCjwvYm9k eT4NCg0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0KICAvKiEgRm9yIGxpY2Vu c2UgaW5mb3JtYXRpb24gcGxlYXNlIHNlZSBtYWluLjIxOWNkZDM3LmpzLkxJQ0VOU0UudHh0 ICovDQogICgoKSA9PiB7DQogICAgInVzZSBzdHJpY3QiOw0KICAgIHZhciBlID0gew0KICAg ICAgMTEwOiAoZSwgdCwgbikgPT4gew0KICAgICAgICB2YXIgciA9IG4oMzA5KSwNCiAgICAg ICAgICBvID0gew0KICAgICAgICAgICAgY2hpbGRDb250ZXh0VHlwZXM6ICEwLA0KICAgICAg ICAgICAgY29udGV4dFR5cGU6ICEwLA0KICAgICAgICAgICAgY29udGV4dFR5cGVzOiAhMCwN CiAgICAgICAgICAgIGRlZmF1bHRQcm9wczogITAsDQogICAgICAgICAgICBkaXNwbGF5TmFt ZTogITAsDQogICAgICAgICAgICBnZXREZWZhdWx0UHJvcHM6ICEwLA0KICAgICAgICAgICAg Z2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yOiAhMCwNCiAgICAgICAgICAgIGdldERlcml2ZWRT dGF0ZUZyb21Qcm9wczogITAsDQogICAgICAgICAgICBtaXhpbnM6ICEwLA0KICAgICAgICAg ICAgcHJvcFR5cGVzOiAhMCwNCiAgICAgICAgICAgIHR5cGU6ICEwLA0KICAgICAgICAgIH0s DQogICAgICAgICAgYSA9IHsgbmFtZTogITAsIGxlbmd0aDogITAsIHByb3RvdHlwZTogITAs IGNhbGxlcjogITAsIGNhbGxlZTogITAsIGFyZ3VtZW50czogITAsIGFyaXR5OiAhMCB9LA0K ICAgICAgICAgIGkgPSB7ICQkdHlwZW9mOiAhMCwgY29tcGFyZTogITAsIGRlZmF1bHRQcm9w czogITAsIGRpc3BsYXlOYW1lOiAhMCwgcHJvcFR5cGVzOiAhMCwgdHlwZTogITAgfSwNCiAg ICAgICAgICBsID0ge307DQogICAgICAgIGZ1bmN0aW9uIHMoZSkgew0KICAgICAgICAgIHJl dHVybiByLmlzTWVtbyhlKSA/IGkgOiBsW2UuJCR0eXBlb2ZdIHx8IG87DQogICAgICAgIH0N CiAgICAgICAgKGxbci5Gb3J3YXJkUmVmXSA9IHsgJCR0eXBlb2Y6ICEwLCByZW5kZXI6ICEw LCBkZWZhdWx0UHJvcHM6ICEwLCBkaXNwbGF5TmFtZTogITAsIHByb3BUeXBlczogITAgfSks IChsW3IuTWVtb10gPSBpKTsNCiAgICAgICAgdmFyIHUgPSBPYmplY3QuZGVmaW5lUHJvcGVy dHksDQogICAgICAgICAgYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzLA0KICAgICAg ICAgIGQgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzLA0KICAgICAgICAgIGYgPSBP YmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLA0KICAgICAgICAgIHAgPSBPYmplY3Qu Z2V0UHJvdG90eXBlT2YsDQogICAgICAgICAgaCA9IE9iamVjdC5wcm90b3R5cGU7DQogICAg ICAgIGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGUodCwgbiwgcikgew0KICAgICAgICAgIGlmICgi c3RyaW5nIiAhPT0gdHlwZW9mIG4pIHsNCiAgICAgICAgICAgIGlmIChoKSB7DQogICAgICAg ICAgICAgIHZhciBvID0gcChuKTsNCiAgICAgICAgICAgICAgbyAmJiBvICE9PSBoICYmIGUo dCwgbywgcik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICB2YXIgaSA9IGMobik7DQog ICAgICAgICAgICBkICYmIChpID0gaS5jb25jYXQoZChuKSkpOw0KICAgICAgICAgICAgZm9y ICh2YXIgbCA9IHModCksIG0gPSBzKG4pLCBnID0gMDsgZyA8IGkubGVuZ3RoOyArK2cpIHsN CiAgICAgICAgICAgICAgdmFyIHYgPSBpW2ddOw0KICAgICAgICAgICAgICBpZiAoIWFbdl0g JiYgKCFyIHx8ICFyW3ZdKSAmJiAoIW0gfHwgIW1bdl0pICYmICghbCB8fCAhbFt2XSkpIHsN CiAgICAgICAgICAgICAgICB2YXIgeSA9IGYobiwgdik7DQogICAgICAgICAgICAgICAgdHJ5 IHsNCiAgICAgICAgICAgICAgICAgIHUodCwgdiwgeSk7DQogICAgICAgICAgICAgICAgfSBj YXRjaCAoYikgeyB9DQogICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAg ICB9DQogICAgICAgICAgcmV0dXJuIHQ7DQogICAgICAgIH07DQogICAgICB9LA0KICAgICAg NzQ2OiAoZSwgdCkgPT4gew0KICAgICAgICB2YXIgbiA9ICJmdW5jdGlvbiIgPT09IHR5cGVv ZiBTeW1ib2wgJiYgU3ltYm9sLmZvciwNCiAgICAgICAgICByID0gbiA/IFN5bWJvbC5mb3Io InJlYWN0LmVsZW1lbnQiKSA6IDYwMTAzLA0KICAgICAgICAgIG8gPSBuID8gU3ltYm9sLmZv cigicmVhY3QucG9ydGFsIikgOiA2MDEwNiwNCiAgICAgICAgICBhID0gbiA/IFN5bWJvbC5m b3IoInJlYWN0LmZyYWdtZW50IikgOiA2MDEwNywNCiAgICAgICAgICBpID0gbiA/IFN5bWJv bC5mb3IoInJlYWN0LnN0cmljdF9tb2RlIikgOiA2MDEwOCwNCiAgICAgICAgICBsID0gbiA/ IFN5bWJvbC5mb3IoInJlYWN0LnByb2ZpbGVyIikgOiA2MDExNCwNCiAgICAgICAgICBzID0g biA/IFN5bWJvbC5mb3IoInJlYWN0LnByb3ZpZGVyIikgOiA2MDEwOSwNCiAgICAgICAgICB1 ID0gbiA/IFN5bWJvbC5mb3IoInJlYWN0LmNvbnRleHQiKSA6IDYwMTEwLA0KICAgICAgICAg IGMgPSBuID8gU3ltYm9sLmZvcigicmVhY3QuYXN5bmNfbW9kZSIpIDogNjAxMTEsDQogICAg ICAgICAgZCA9IG4gPyBTeW1ib2wuZm9yKCJyZWFjdC5jb25jdXJyZW50X21vZGUiKSA6IDYw MTExLA0KICAgICAgICAgIGYgPSBuID8gU3ltYm9sLmZvcigicmVhY3QuZm9yd2FyZF9yZWYi KSA6IDYwMTEyLA0KICAgICAgICAgIHAgPSBuID8gU3ltYm9sLmZvcigicmVhY3Quc3VzcGVu c2UiKSA6IDYwMTEzLA0KICAgICAgICAgIGggPSBuID8gU3ltYm9sLmZvcigicmVhY3Quc3Vz cGVuc2VfbGlzdCIpIDogNjAxMjAsDQogICAgICAgICAgbSA9IG4gPyBTeW1ib2wuZm9yKCJy ZWFjdC5tZW1vIikgOiA2MDExNSwNCiAgICAgICAgICBnID0gbiA/IFN5bWJvbC5mb3IoInJl YWN0LmxhenkiKSA6IDYwMTE2LA0KICAgICAgICAgIHYgPSBuID8gU3ltYm9sLmZvcigicmVh Y3QuYmxvY2siKSA6IDYwMTIxLA0KICAgICAgICAgIHkgPSBuID8gU3ltYm9sLmZvcigicmVh Y3QuZnVuZGFtZW50YWwiKSA6IDYwMTE3LA0KICAgICAgICAgIGIgPSBuID8gU3ltYm9sLmZv cigicmVhY3QucmVzcG9uZGVyIikgOiA2MDExOCwNCiAgICAgICAgICB3ID0gbiA/IFN5bWJv bC5mb3IoInJlYWN0LnNjb3BlIikgOiA2MDExOTsNCiAgICAgICAgZnVuY3Rpb24geChlKSB7 DQogICAgICAgICAgaWYgKCJvYmplY3QiID09PSB0eXBlb2YgZSAmJiBudWxsICE9PSBlKSB7 DQogICAgICAgICAgICB2YXIgdCA9IGUuJCR0eXBlb2Y7DQogICAgICAgICAgICBzd2l0Y2gg KHQpIHsNCiAgICAgICAgICAgICAgY2FzZSByOg0KICAgICAgICAgICAgICAgIHN3aXRjaCAo KGUgPSBlLnR5cGUpKSB7DQogICAgICAgICAgICAgICAgICBjYXNlIGM6DQogICAgICAgICAg ICAgICAgICBjYXNlIGQ6DQogICAgICAgICAgICAgICAgICBjYXNlIGE6DQogICAgICAgICAg ICAgICAgICBjYXNlIGw6DQogICAgICAgICAgICAgICAgICBjYXNlIGk6DQogICAgICAgICAg ICAgICAgICBjYXNlIHA6DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBlOw0KICAgICAg ICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgc3dpdGNoICgoZSA9 IGUgJiYgZS4kJHR5cGVvZikpIHsNCiAgICAgICAgICAgICAgICAgICAgICBjYXNlIHU6DQog ICAgICAgICAgICAgICAgICAgICAgY2FzZSBmOg0KICAgICAgICAgICAgICAgICAgICAgIGNh c2UgZzoNCiAgICAgICAgICAgICAgICAgICAgICBjYXNlIG06DQogICAgICAgICAgICAgICAg ICAgICAgY2FzZSBzOg0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGU7DQogICAg ICAgICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgICAgIHJl dHVybiB0Ow0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAg ICAgICAgICAgICBjYXNlIG86DQogICAgICAgICAgICAgICAgcmV0dXJuIHQ7DQogICAgICAg ICAgICB9DQogICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIFMoZSkg ew0KICAgICAgICAgIHJldHVybiB4KGUpID09PSBkOw0KICAgICAgICB9DQogICAgICAgICh0 LkFzeW5jTW9kZSA9IGMpLA0KICAgICAgICAgICh0LkNvbmN1cnJlbnRNb2RlID0gZCksDQog ICAgICAgICAgKHQuQ29udGV4dENvbnN1bWVyID0gdSksDQogICAgICAgICAgKHQuQ29udGV4 dFByb3ZpZGVyID0gcyksDQogICAgICAgICAgKHQuRWxlbWVudCA9IHIpLA0KICAgICAgICAg ICh0LkZvcndhcmRSZWYgPSBmKSwNCiAgICAgICAgICAodC5GcmFnbWVudCA9IGEpLA0KICAg ICAgICAgICh0LkxhenkgPSBnKSwNCiAgICAgICAgICAodC5NZW1vID0gbSksDQogICAgICAg ICAgKHQuUG9ydGFsID0gbyksDQogICAgICAgICAgKHQuUHJvZmlsZXIgPSBsKSwNCiAgICAg ICAgICAodC5TdHJpY3RNb2RlID0gaSksDQogICAgICAgICAgKHQuU3VzcGVuc2UgPSBwKSwN CiAgICAgICAgICAodC5pc0FzeW5jTW9kZSA9IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAg ICByZXR1cm4gUyhlKSB8fCB4KGUpID09PSBjOw0KICAgICAgICAgIH0pLA0KICAgICAgICAg ICh0LmlzQ29uY3VycmVudE1vZGUgPSBTKSwNCiAgICAgICAgICAodC5pc0NvbnRleHRDb25z dW1lciA9IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICByZXR1cm4geChlKSA9PT0gdTsN CiAgICAgICAgICB9KSwNCiAgICAgICAgICAodC5pc0NvbnRleHRQcm92aWRlciA9IGZ1bmN0 aW9uIChlKSB7DQogICAgICAgICAgICByZXR1cm4geChlKSA9PT0gczsNCiAgICAgICAgICB9 KSwNCiAgICAgICAgICAodC5pc0VsZW1lbnQgPSBmdW5jdGlvbiAoZSkgew0KICAgICAgICAg ICAgcmV0dXJuICJvYmplY3QiID09PSB0eXBlb2YgZSAmJiBudWxsICE9PSBlICYmIGUuJCR0 eXBlb2YgPT09IHI7DQogICAgICAgICAgfSksDQogICAgICAgICAgKHQuaXNGb3J3YXJkUmVm ID0gZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgIHJldHVybiB4KGUpID09PSBmOw0KICAg ICAgICAgIH0pLA0KICAgICAgICAgICh0LmlzRnJhZ21lbnQgPSBmdW5jdGlvbiAoZSkgew0K ICAgICAgICAgICAgcmV0dXJuIHgoZSkgPT09IGE7DQogICAgICAgICAgfSksDQogICAgICAg ICAgKHQuaXNMYXp5ID0gZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgIHJldHVybiB4KGUp ID09PSBnOw0KICAgICAgICAgIH0pLA0KICAgICAgICAgICh0LmlzTWVtbyA9IGZ1bmN0aW9u IChlKSB7DQogICAgICAgICAgICByZXR1cm4geChlKSA9PT0gbTsNCiAgICAgICAgICB9KSwN CiAgICAgICAgICAodC5pc1BvcnRhbCA9IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICBy ZXR1cm4geChlKSA9PT0gbzsNCiAgICAgICAgICB9KSwNCiAgICAgICAgICAodC5pc1Byb2Zp bGVyID0gZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgIHJldHVybiB4KGUpID09PSBsOw0K ICAgICAgICAgIH0pLA0KICAgICAgICAgICh0LmlzU3RyaWN0TW9kZSA9IGZ1bmN0aW9uIChl KSB7DQogICAgICAgICAgICByZXR1cm4geChlKSA9PT0gaTsNCiAgICAgICAgICB9KSwNCiAg ICAgICAgICAodC5pc1N1c3BlbnNlID0gZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgIHJl dHVybiB4KGUpID09PSBwOw0KICAgICAgICAgIH0pLA0KICAgICAgICAgICh0LmlzVmFsaWRF bGVtZW50VHlwZSA9IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICByZXR1cm4gKA0KICAg ICAgICAgICAgICAic3RyaW5nIiA9PT0gdHlwZW9mIGUgfHwNCiAgICAgICAgICAgICAgImZ1 bmN0aW9uIiA9PT0gdHlwZW9mIGUgfHwNCiAgICAgICAgICAgICAgZSA9PT0gYSB8fA0KICAg ICAgICAgICAgICBlID09PSBkIHx8DQogICAgICAgICAgICAgIGUgPT09IGwgfHwNCiAgICAg ICAgICAgICAgZSA9PT0gaSB8fA0KICAgICAgICAgICAgICBlID09PSBwIHx8DQogICAgICAg ICAgICAgIGUgPT09IGggfHwNCiAgICAgICAgICAgICAgKCJvYmplY3QiID09PSB0eXBlb2Yg ZSAmJg0KICAgICAgICAgICAgICAgIG51bGwgIT09IGUgJiYNCiAgICAgICAgICAgICAgICAo ZS4kJHR5cGVvZiA9PT0gZyB8fCBlLiQkdHlwZW9mID09PSBtIHx8IGUuJCR0eXBlb2YgPT09 IHMgfHwgZS4kJHR5cGVvZiA9PT0gdSB8fCBlLiQkdHlwZW9mID09PSBmIHx8IGUuJCR0eXBl b2YgPT09IHkgfHwgZS4kJHR5cGVvZiA9PT0gYiB8fCBlLiQkdHlwZW9mID09PSB3IHx8IGUu JCR0eXBlb2YgPT09IHYpKQ0KICAgICAgICAgICAgKTsNCiAgICAgICAgICB9KSwNCiAgICAg ICAgICAodC50eXBlT2YgPSB4KTsNCiAgICAgIH0sDQogICAgICAzMDk6IChlLCB0LCBuKSA9 PiB7DQogICAgICAgIGUuZXhwb3J0cyA9IG4oNzQ2KTsNCiAgICAgIH0sDQogICAgICA0NjM6 IChlLCB0LCBuKSA9PiB7DQogICAgICAgIHZhciByID0gbig3OTEpLA0KICAgICAgICAgIG8g PSBuKDI5Nik7DQogICAgICAgIGZ1bmN0aW9uIGEoZSkgew0KICAgICAgICAgIGZvciAodmFy IHQgPSAiaHR0cHM6Ly9yZWFjdGpzLm9yZy9kb2NzL2Vycm9yLWRlY29kZXIuaHRtbD9pbnZh cmlhbnQ9IiArIGUsIG4gPSAxOyBuIDwgYXJndW1lbnRzLmxlbmd0aDsgbisrKSB0ICs9ICIm YXJnc1tdPSIgKyBlbmNvZGVVUklDb21wb25lbnQoYXJndW1lbnRzW25dKTsNCiAgICAgICAg ICByZXR1cm4gIk1pbmlmaWVkIFJlYWN0IGVycm9yICMiICsgZSArICI7IHZpc2l0ICIgKyB0 ICsgIiBmb3IgdGhlIGZ1bGwgbWVzc2FnZSBvciB1c2UgdGhlIG5vbi1taW5pZmllZCBkZXYg ZW52aXJvbm1lbnQgZm9yIGZ1bGwgZXJyb3JzIGFuZCBhZGRpdGlvbmFsIGhlbHBmdWwgd2Fy bmluZ3MuIjsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgaSA9IG5ldyBTZXQoKSwNCiAgICAg ICAgICBsID0ge307DQogICAgICAgIGZ1bmN0aW9uIHMoZSwgdCkgew0KICAgICAgICAgIHUo ZSwgdCksIHUoZSArICJDYXB0dXJlIiwgdCk7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rp b24gdShlLCB0KSB7DQogICAgICAgICAgZm9yIChsW2VdID0gdCwgZSA9IDA7IGUgPCB0Lmxl bmd0aDsgZSsrKSBpLmFkZCh0W2VdKTsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgYyA9ICEo InVuZGVmaW5lZCIgPT09IHR5cGVvZiB3aW5kb3cgfHwgInVuZGVmaW5lZCIgPT09IHR5cGVv ZiB3aW5kb3cuZG9jdW1lbnQgfHwgInVuZGVmaW5lZCIgPT09IHR5cGVvZiB3aW5kb3cuZG9j dW1lbnQuY3JlYXRlRWxlbWVudCksDQogICAgICAgICAgZCA9IE9iamVjdC5wcm90b3R5cGUu aGFzT3duUHJvcGVydHksDQogICAgICAgICAgZiA9IC9eWzpBLVpfYS16XHUwMEMwLVx1MDBE Nlx1MDBEOC1cdTAwRjZcdTAwRjgtXHUwMkZGXHUwMzcwLVx1MDM3RFx1MDM3Ri1cdTFGRkZc dTIwMEMtXHUyMDBEXHUyMDcwLVx1MjE4Rlx1MkMwMC1cdTJGRUZcdTMwMDEtXHVEN0ZGXHVG OTAwLVx1RkRDRlx1RkRGMC1cdUZGRkRdWzpBLVpfYS16XHUwMEMwLVx1MDBENlx1MDBEOC1c dTAwRjZcdTAwRjgtXHUwMkZGXHUwMzcwLVx1MDM3RFx1MDM3Ri1cdTFGRkZcdTIwMEMtXHUy MDBEXHUyMDcwLVx1MjE4Rlx1MkMwMC1cdTJGRUZcdTMwMDEtXHVEN0ZGXHVGOTAwLVx1RkRD Rlx1RkRGMC1cdUZGRkRcLS4wLTlcdTAwQjdcdTAzMDAtXHUwMzZGXHUyMDNGLVx1MjA0MF0q JC8sDQogICAgICAgICAgcCA9IHt9LA0KICAgICAgICAgIGggPSB7fTsNCiAgICAgICAgZnVu Y3Rpb24gbShlLCB0LCBuLCByLCBvLCBhLCBpKSB7DQogICAgICAgICAgKHRoaXMuYWNjZXB0 c0Jvb2xlYW5zID0gMiA9PT0gdCB8fCAzID09PSB0IHx8IDQgPT09IHQpLA0KICAgICAgICAg ICAgKHRoaXMuYXR0cmlidXRlTmFtZSA9IHIpLA0KICAgICAgICAgICAgKHRoaXMuYXR0cmli dXRlTmFtZXNwYWNlID0gbyksDQogICAgICAgICAgICAodGhpcy5tdXN0VXNlUHJvcGVydHkg PSBuKSwNCiAgICAgICAgICAgICh0aGlzLnByb3BlcnR5TmFtZSA9IGUpLA0KICAgICAgICAg ICAgKHRoaXMudHlwZSA9IHQpLA0KICAgICAgICAgICAgKHRoaXMuc2FuaXRpemVVUkwgPSBh KSwNCiAgICAgICAgICAgICh0aGlzLnJlbW92ZUVtcHR5U3RyaW5nID0gaSk7DQogICAgICAg IH0NCiAgICAgICAgdmFyIGcgPSB7fTsNCiAgICAgICAgImNoaWxkcmVuIGRhbmdlcm91c2x5 U2V0SW5uZXJIVE1MIGRlZmF1bHRWYWx1ZSBkZWZhdWx0Q2hlY2tlZCBpbm5lckhUTUwgc3Vw cHJlc3NDb250ZW50RWRpdGFibGVXYXJuaW5nIHN1cHByZXNzSHlkcmF0aW9uV2FybmluZyBz dHlsZSIuc3BsaXQoIiAiKS5mb3JFYWNoKGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgZ1tl XSA9IG5ldyBtKGUsIDAsICExLCBlLCBudWxsLCAhMSwgITEpOw0KICAgICAgICB9KSwNCiAg ICAgICAgICBbDQogICAgICAgICAgICBbImFjY2VwdENoYXJzZXQiLCAiYWNjZXB0LWNoYXJz ZXQiXSwNCiAgICAgICAgICAgIFsiY2xhc3NOYW1lIiwgImNsYXNzIl0sDQogICAgICAgICAg ICBbImh0bWxGb3IiLCAiZm9yIl0sDQogICAgICAgICAgICBbImh0dHBFcXVpdiIsICJodHRw LWVxdWl2Il0sDQogICAgICAgICAgXS5mb3JFYWNoKGZ1bmN0aW9uIChlKSB7DQogICAgICAg ICAgICB2YXIgdCA9IGVbMF07DQogICAgICAgICAgICBnW3RdID0gbmV3IG0odCwgMSwgITEs IGVbMV0sIG51bGwsICExLCAhMSk7DQogICAgICAgICAgfSksDQogICAgICAgICAgWyJjb250 ZW50RWRpdGFibGUiLCAiZHJhZ2dhYmxlIiwgInNwZWxsQ2hlY2siLCAidmFsdWUiXS5mb3JF YWNoKGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICBnW2VdID0gbmV3IG0oZSwgMiwgITEs IGUudG9Mb3dlckNhc2UoKSwgbnVsbCwgITEsICExKTsNCiAgICAgICAgICB9KSwNCiAgICAg ICAgICBbImF1dG9SZXZlcnNlIiwgImV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQiLCAiZm9j dXNhYmxlIiwgInByZXNlcnZlQWxwaGEiXS5mb3JFYWNoKGZ1bmN0aW9uIChlKSB7DQogICAg ICAgICAgICBnW2VdID0gbmV3IG0oZSwgMiwgITEsIGUsIG51bGwsICExLCAhMSk7DQogICAg ICAgICAgfSksDQogICAgICAgICAgImFsbG93RnVsbFNjcmVlbiBhc3luYyBhdXRvRm9jdXMg YXV0b1BsYXkgY29udHJvbHMgZGVmYXVsdCBkZWZlciBkaXNhYmxlZCBkaXNhYmxlUGljdHVy ZUluUGljdHVyZSBkaXNhYmxlUmVtb3RlUGxheWJhY2sgZm9ybU5vVmFsaWRhdGUgaGlkZGVu IGxvb3Agbm9Nb2R1bGUgbm9WYWxpZGF0ZSBvcGVuIHBsYXlzSW5saW5lIHJlYWRPbmx5IHJl cXVpcmVkIHJldmVyc2VkIHNjb3BlZCBzZWFtbGVzcyBpdGVtU2NvcGUiDQogICAgICAgICAg ICAuc3BsaXQoIiAiKQ0KICAgICAgICAgICAgLmZvckVhY2goZnVuY3Rpb24gKGUpIHsNCiAg ICAgICAgICAgICAgZ1tlXSA9IG5ldyBtKGUsIDMsICExLCBlLnRvTG93ZXJDYXNlKCksIG51 bGwsICExLCAhMSk7DQogICAgICAgICAgICB9KSwNCiAgICAgICAgICBbImNoZWNrZWQiLCAi bXVsdGlwbGUiLCAibXV0ZWQiLCAic2VsZWN0ZWQiXS5mb3JFYWNoKGZ1bmN0aW9uIChlKSB7 DQogICAgICAgICAgICBnW2VdID0gbmV3IG0oZSwgMywgITAsIGUsIG51bGwsICExLCAhMSk7 DQogICAgICAgICAgfSksDQogICAgICAgICAgWyJjYXB0dXJlIiwgImRvd25sb2FkIl0uZm9y RWFjaChmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgZ1tlXSA9IG5ldyBtKGUsIDQsICEx LCBlLCBudWxsLCAhMSwgITEpOw0KICAgICAgICAgIH0pLA0KICAgICAgICAgIFsiY29scyIs ICJyb3dzIiwgInNpemUiLCAic3BhbiJdLmZvckVhY2goZnVuY3Rpb24gKGUpIHsNCiAgICAg ICAgICAgIGdbZV0gPSBuZXcgbShlLCA2LCAhMSwgZSwgbnVsbCwgITEsICExKTsNCiAgICAg ICAgICB9KSwNCiAgICAgICAgICBbInJvd1NwYW4iLCAic3RhcnQiXS5mb3JFYWNoKGZ1bmN0 aW9uIChlKSB7DQogICAgICAgICAgICBnW2VdID0gbmV3IG0oZSwgNSwgITEsIGUudG9Mb3dl ckNhc2UoKSwgbnVsbCwgITEsICExKTsNCiAgICAgICAgICB9KTsNCiAgICAgICAgdmFyIHYg PSAvW1wtOl0oW2Etel0pL2c7DQogICAgICAgIGZ1bmN0aW9uIHkoZSkgew0KICAgICAgICAg IHJldHVybiBlWzFdLnRvVXBwZXJDYXNlKCk7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rp b24gYihlLCB0LCBuLCByKSB7DQogICAgICAgICAgdmFyIG8gPSBnLmhhc093blByb3BlcnR5 KHQpID8gZ1t0XSA6IG51bGw7DQogICAgICAgICAgKG51bGwgIT09IG8gPyAwICE9PSBvLnR5 cGUgOiByIHx8ICEoMiA8IHQubGVuZ3RoKSB8fCAoIm8iICE9PSB0WzBdICYmICJPIiAhPT0g dFswXSkgfHwgKCJuIiAhPT0gdFsxXSAmJiAiTiIgIT09IHRbMV0pKSAmJg0KICAgICAgICAg ICAgKChmdW5jdGlvbiAoZSwgdCwgbiwgcikgew0KICAgICAgICAgICAgICBpZiAoDQogICAg ICAgICAgICAgICAgbnVsbCA9PT0gdCB8fA0KICAgICAgICAgICAgICAgICJ1bmRlZmluZWQi ID09PSB0eXBlb2YgdCB8fA0KICAgICAgICAgICAgICAgIChmdW5jdGlvbiAoZSwgdCwgbiwg cikgew0KICAgICAgICAgICAgICAgICAgaWYgKG51bGwgIT09IG4gJiYgMCA9PT0gbi50eXBl KSByZXR1cm4gITE7DQogICAgICAgICAgICAgICAgICBzd2l0Y2ggKHR5cGVvZiB0KSB7DQog ICAgICAgICAgICAgICAgICAgIGNhc2UgImZ1bmN0aW9uIjoNCiAgICAgICAgICAgICAgICAg ICAgY2FzZSAic3ltYm9sIjoNCiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gITA7DQog ICAgICAgICAgICAgICAgICAgIGNhc2UgImJvb2xlYW4iOg0KICAgICAgICAgICAgICAgICAg ICAgIHJldHVybiAhciAmJiAobnVsbCAhPT0gbiA/ICFuLmFjY2VwdHNCb29sZWFucyA6ICJk YXRhLSIgIT09IChlID0gZS50b0xvd2VyQ2FzZSgpLnNsaWNlKDAsIDUpKSAmJiAiYXJpYS0i ICE9PSBlKTsNCiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAg ICAgICAgICByZXR1cm4gITE7DQogICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAg ICAgfSkoZSwgdCwgbiwgcikNCiAgICAgICAgICAgICAgKQ0KICAgICAgICAgICAgICAgIHJl dHVybiAhMDsNCiAgICAgICAgICAgICAgaWYgKHIpIHJldHVybiAhMTsNCiAgICAgICAgICAg ICAgaWYgKG51bGwgIT09IG4pDQogICAgICAgICAgICAgICAgc3dpdGNoIChuLnR5cGUpIHsN CiAgICAgICAgICAgICAgICAgIGNhc2UgMzoNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJu ICF0Ow0KICAgICAgICAgICAgICAgICAgY2FzZSA0Og0KICAgICAgICAgICAgICAgICAgICBy ZXR1cm4gITEgPT09IHQ7DQogICAgICAgICAgICAgICAgICBjYXNlIDU6DQogICAgICAgICAg ICAgICAgICAgIHJldHVybiBpc05hTih0KTsNCiAgICAgICAgICAgICAgICAgIGNhc2UgNjoN CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGlzTmFOKHQpIHx8IDEgPiB0Ow0KICAgICAg ICAgICAgICAgIH0NCiAgICAgICAgICAgICAgcmV0dXJuICExOw0KICAgICAgICAgICAgfSko dCwgbiwgbywgcikgJiYgKG4gPSBudWxsKSwNCiAgICAgICAgICAgICAgciB8fCBudWxsID09 PSBvDQogICAgICAgICAgICAgICAgPyAoZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgICAg ICAgIHJldHVybiAhIWQuY2FsbChoLCBlKSB8fCAoIWQuY2FsbChwLCBlKSAmJiAoZi50ZXN0 KGUpID8gKGhbZV0gPSAhMCkgOiAoKHBbZV0gPSAhMCksICExKSkpOw0KICAgICAgICAgICAg ICAgIH0pKHQpICYmIChudWxsID09PSBuID8gZS5yZW1vdmVBdHRyaWJ1dGUodCkgOiBlLnNl dEF0dHJpYnV0ZSh0LCAiIiArIG4pKQ0KICAgICAgICAgICAgICAgIDogby5tdXN0VXNlUHJv cGVydHkNCiAgICAgICAgICAgICAgICAgID8gKGVbby5wcm9wZXJ0eU5hbWVdID0gbnVsbCA9 PT0gbiA/IDMgIT09IG8udHlwZSAmJiAiIiA6IG4pDQogICAgICAgICAgICAgICAgICA6ICgo dCA9IG8uYXR0cmlidXRlTmFtZSksDQogICAgICAgICAgICAgICAgICAgIChyID0gby5hdHRy aWJ1dGVOYW1lc3BhY2UpLA0KICAgICAgICAgICAgICAgICAgICBudWxsID09PSBuID8gZS5y ZW1vdmVBdHRyaWJ1dGUodCkgOiAoKG4gPSAzID09PSAobyA9IG8udHlwZSkgfHwgKDQgPT09 IG8gJiYgITAgPT09IG4pID8gIiIgOiAiIiArIG4pLCByID8gZS5zZXRBdHRyaWJ1dGVOUyhy LCB0LCBuKSA6IGUuc2V0QXR0cmlidXRlKHQsIG4pKSkpOw0KICAgICAgICB9DQogICAgICAg ICJhY2NlbnQtaGVpZ2h0IGFsaWdubWVudC1iYXNlbGluZSBhcmFiaWMtZm9ybSBiYXNlbGlu ZS1zaGlmdCBjYXAtaGVpZ2h0IGNsaXAtcGF0aCBjbGlwLXJ1bGUgY29sb3ItaW50ZXJwb2xh dGlvbiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnMgY29sb3ItcHJvZmlsZSBjb2xvci1y ZW5kZXJpbmcgZG9taW5hbnQtYmFzZWxpbmUgZW5hYmxlLWJhY2tncm91bmQgZmlsbC1vcGFj aXR5IGZpbGwtcnVsZSBmbG9vZC1jb2xvciBmbG9vZC1vcGFjaXR5IGZvbnQtZmFtaWx5IGZv bnQtc2l6ZSBmb250LXNpemUtYWRqdXN0IGZvbnQtc3RyZXRjaCBmb250LXN0eWxlIGZvbnQt dmFyaWFudCBmb250LXdlaWdodCBnbHlwaC1uYW1lIGdseXBoLW9yaWVudGF0aW9uLWhvcml6 b250YWwgZ2x5cGgtb3JpZW50YXRpb24tdmVydGljYWwgaG9yaXotYWR2LXggaG9yaXotb3Jp Z2luLXggaW1hZ2UtcmVuZGVyaW5nIGxldHRlci1zcGFjaW5nIGxpZ2h0aW5nLWNvbG9yIG1h cmtlci1lbmQgbWFya2VyLW1pZCBtYXJrZXItc3RhcnQgb3ZlcmxpbmUtcG9zaXRpb24gb3Zl cmxpbmUtdGhpY2tuZXNzIHBhaW50LW9yZGVyIHBhbm9zZS0xIHBvaW50ZXItZXZlbnRzIHJl bmRlcmluZy1pbnRlbnQgc2hhcGUtcmVuZGVyaW5nIHN0b3AtY29sb3Igc3RvcC1vcGFjaXR5 IHN0cmlrZXRocm91Z2gtcG9zaXRpb24gc3RyaWtldGhyb3VnaC10aGlja25lc3Mgc3Ryb2tl LWRhc2hhcnJheSBzdHJva2UtZGFzaG9mZnNldCBzdHJva2UtbGluZWNhcCBzdHJva2UtbGlu ZWpvaW4gc3Ryb2tlLW1pdGVybGltaXQgc3Ryb2tlLW9wYWNpdHkgc3Ryb2tlLXdpZHRoIHRl eHQtYW5jaG9yIHRleHQtZGVjb3JhdGlvbiB0ZXh0LXJlbmRlcmluZyB1bmRlcmxpbmUtcG9z aXRpb24gdW5kZXJsaW5lLXRoaWNrbmVzcyB1bmljb2RlLWJpZGkgdW5pY29kZS1yYW5nZSB1 bml0cy1wZXItZW0gdi1hbHBoYWJldGljIHYtaGFuZ2luZyB2LWlkZW9ncmFwaGljIHYtbWF0 aGVtYXRpY2FsIHZlY3Rvci1lZmZlY3QgdmVydC1hZHYteSB2ZXJ0LW9yaWdpbi14IHZlcnQt b3JpZ2luLXkgd29yZC1zcGFjaW5nIHdyaXRpbmctbW9kZSB4bWxuczp4bGluayB4LWhlaWdo dCINCiAgICAgICAgICAuc3BsaXQoIiAiKQ0KICAgICAgICAgIC5mb3JFYWNoKGZ1bmN0aW9u IChlKSB7DQogICAgICAgICAgICB2YXIgdCA9IGUucmVwbGFjZSh2LCB5KTsNCiAgICAgICAg ICAgIGdbdF0gPSBuZXcgbSh0LCAxLCAhMSwgZSwgbnVsbCwgITEsICExKTsNCiAgICAgICAg ICB9KSwNCiAgICAgICAgICAieGxpbms6YWN0dWF0ZSB4bGluazphcmNyb2xlIHhsaW5rOnJv bGUgeGxpbms6c2hvdyB4bGluazp0aXRsZSB4bGluazp0eXBlIi5zcGxpdCgiICIpLmZvckVh Y2goZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgIHZhciB0ID0gZS5yZXBsYWNlKHYsIHkp Ow0KICAgICAgICAgICAgZ1t0XSA9IG5ldyBtKHQsIDEsICExLCBlLCAiaHR0cDovL3d3dy53 My5vcmcvMTk5OS94bGluayIsICExLCAhMSk7DQogICAgICAgICAgfSksDQogICAgICAgICAg WyJ4bWw6YmFzZSIsICJ4bWw6bGFuZyIsICJ4bWw6c3BhY2UiXS5mb3JFYWNoKGZ1bmN0aW9u IChlKSB7DQogICAgICAgICAgICB2YXIgdCA9IGUucmVwbGFjZSh2LCB5KTsNCiAgICAgICAg ICAgIGdbdF0gPSBuZXcgbSh0LCAxLCAhMSwgZSwgImh0dHA6Ly93d3cudzMub3JnL1hNTC8x OTk4L25hbWVzcGFjZSIsICExLCAhMSk7DQogICAgICAgICAgfSksDQogICAgICAgICAgWyJ0 YWJJbmRleCIsICJjcm9zc09yaWdpbiJdLmZvckVhY2goZnVuY3Rpb24gKGUpIHsNCiAgICAg ICAgICAgIGdbZV0gPSBuZXcgbShlLCAxLCAhMSwgZS50b0xvd2VyQ2FzZSgpLCBudWxsLCAh MSwgITEpOw0KICAgICAgICAgIH0pLA0KICAgICAgICAgIChnLnhsaW5rSHJlZiA9IG5ldyBt KCJ4bGlua0hyZWYiLCAxLCAhMSwgInhsaW5rOmhyZWYiLCAiaHR0cDovL3d3dy53My5vcmcv MTk5OS94bGluayIsICEwLCAhMSkpLA0KICAgICAgICAgIFsic3JjIiwgImhyZWYiLCAiYWN0 aW9uIiwgImZvcm1BY3Rpb24iXS5mb3JFYWNoKGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAg ICBnW2VdID0gbmV3IG0oZSwgMSwgITEsIGUudG9Mb3dlckNhc2UoKSwgbnVsbCwgITAsICEw KTsNCiAgICAgICAgICB9KTsNCiAgICAgICAgdmFyIHcgPSByLl9fU0VDUkVUX0lOVEVSTkFM U19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVELA0KICAgICAgICAgIHggPSBTeW1i b2wuZm9yKCJyZWFjdC5lbGVtZW50IiksDQogICAgICAgICAgUyA9IFN5bWJvbC5mb3IoInJl YWN0LnBvcnRhbCIpLA0KICAgICAgICAgIGsgPSBTeW1ib2wuZm9yKCJyZWFjdC5mcmFnbWVu dCIpLA0KICAgICAgICAgIEUgPSBTeW1ib2wuZm9yKCJyZWFjdC5zdHJpY3RfbW9kZSIpLA0K ICAgICAgICAgIEMgPSBTeW1ib2wuZm9yKCJyZWFjdC5wcm9maWxlciIpLA0KICAgICAgICAg IFIgPSBTeW1ib2wuZm9yKCJyZWFjdC5wcm92aWRlciIpLA0KICAgICAgICAgIF8gPSBTeW1i b2wuZm9yKCJyZWFjdC5jb250ZXh0IiksDQogICAgICAgICAgUCA9IFN5bWJvbC5mb3IoInJl YWN0LmZvcndhcmRfcmVmIiksDQogICAgICAgICAgTyA9IFN5bWJvbC5mb3IoInJlYWN0LnN1 c3BlbnNlIiksDQogICAgICAgICAgTiA9IFN5bWJvbC5mb3IoInJlYWN0LnN1c3BlbnNlX2xp c3QiKSwNCiAgICAgICAgICBUID0gU3ltYm9sLmZvcigicmVhY3QubWVtbyIpLA0KICAgICAg ICAgIEEgPSBTeW1ib2wuZm9yKCJyZWFjdC5sYXp5Iik7DQogICAgICAgIFN5bWJvbC5mb3Io InJlYWN0LnNjb3BlIiksIFN5bWJvbC5mb3IoInJlYWN0LmRlYnVnX3RyYWNlX21vZGUiKTsN CiAgICAgICAgdmFyIE0gPSBTeW1ib2wuZm9yKCJyZWFjdC5vZmZzY3JlZW4iKTsNCiAgICAg ICAgU3ltYm9sLmZvcigicmVhY3QubGVnYWN5X2hpZGRlbiIpLCBTeW1ib2wuZm9yKCJyZWFj dC5jYWNoZSIpLCBTeW1ib2wuZm9yKCJyZWFjdC50cmFjaW5nX21hcmtlciIpOw0KICAgICAg ICB2YXIgeiA9IFN5bWJvbC5pdGVyYXRvcjsNCiAgICAgICAgZnVuY3Rpb24gaihlKSB7DQog ICAgICAgICAgcmV0dXJuIG51bGwgPT09IGUgfHwgIm9iamVjdCIgIT09IHR5cGVvZiBlID8g bnVsbCA6ICJmdW5jdGlvbiIgPT09IHR5cGVvZiAoZSA9ICh6ICYmIGVbel0pIHx8IGVbIkBA aXRlcmF0b3IiXSkgPyBlIDogbnVsbDsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgSSwNCiAg ICAgICAgICBMID0gT2JqZWN0LmFzc2lnbjsNCiAgICAgICAgZnVuY3Rpb24gRihlKSB7DQog ICAgICAgICAgaWYgKHZvaWQgMCA9PT0gSSkNCiAgICAgICAgICAgIHRyeSB7DQogICAgICAg ICAgICAgIHRocm93IEVycm9yKCk7DQogICAgICAgICAgICB9IGNhdGNoIChuKSB7DQogICAg ICAgICAgICAgIHZhciB0ID0gbi5zdGFjay50cmltKCkubWF0Y2goL1xuKCAqKGF0ICk/KS8p Ow0KICAgICAgICAgICAgICBJID0gKHQgJiYgdFsxXSkgfHwgIiI7DQogICAgICAgICAgICB9 DQogICAgICAgICAgcmV0dXJuICJcbiIgKyBJICsgZTsNCiAgICAgICAgfQ0KICAgICAgICB2 YXIgQiA9ICExOw0KICAgICAgICBmdW5jdGlvbiBEKGUsIHQpIHsNCiAgICAgICAgICBpZiAo IWUgfHwgQikgcmV0dXJuICIiOw0KICAgICAgICAgIEIgPSAhMDsNCiAgICAgICAgICB2YXIg biA9IEVycm9yLnByZXBhcmVTdGFja1RyYWNlOw0KICAgICAgICAgIEVycm9yLnByZXBhcmVT dGFja1RyYWNlID0gdm9pZCAwOw0KICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICBpZiAo dCkNCiAgICAgICAgICAgICAgaWYgKA0KICAgICAgICAgICAgICAgICgodCA9IGZ1bmN0aW9u ICgpIHsNCiAgICAgICAgICAgICAgICAgIHRocm93IEVycm9yKCk7DQogICAgICAgICAgICAg ICAgfSksDQogICAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90 b3R5cGUsICJwcm9wcyIsIHsNCiAgICAgICAgICAgICAgICAgICAgc2V0OiBmdW5jdGlvbiAo KSB7DQogICAgICAgICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoKTsNCiAgICAgICAgICAg ICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAgICAgICAg Im9iamVjdCIgPT09IHR5cGVvZiBSZWZsZWN0ICYmIFJlZmxlY3QuY29uc3RydWN0KQ0KICAg ICAgICAgICAgICApIHsNCiAgICAgICAgICAgICAgICB0cnkgew0KICAgICAgICAgICAgICAg ICAgUmVmbGVjdC5jb25zdHJ1Y3QodCwgW10pOw0KICAgICAgICAgICAgICAgIH0gY2F0Y2gg KHUpIHsNCiAgICAgICAgICAgICAgICAgIHZhciByID0gdTsNCiAgICAgICAgICAgICAgICB9 DQogICAgICAgICAgICAgICAgUmVmbGVjdC5jb25zdHJ1Y3QoZSwgW10sIHQpOw0KICAgICAg ICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAg ICAgICB0LmNhbGwoKTsNCiAgICAgICAgICAgICAgICB9IGNhdGNoICh1KSB7DQogICAgICAg ICAgICAgICAgICByID0gdTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAg ZS5jYWxsKHQucHJvdG90eXBlKTsNCiAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxz ZSB7DQogICAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAgdGhyb3cgRXJyb3Io KTsNCiAgICAgICAgICAgICAgfSBjYXRjaCAodSkgew0KICAgICAgICAgICAgICAgIHIgPSB1 Ow0KICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgIGUoKTsNCiAgICAgICAgICAgIH0N CiAgICAgICAgICB9IGNhdGNoICh1KSB7DQogICAgICAgICAgICBpZiAodSAmJiByICYmICJz dHJpbmciID09PSB0eXBlb2YgdS5zdGFjaykgew0KICAgICAgICAgICAgICBmb3IgKHZhciBv ID0gdS5zdGFjay5zcGxpdCgiXG4iKSwgYSA9IHIuc3RhY2suc3BsaXQoIlxuIiksIGkgPSBv Lmxlbmd0aCAtIDEsIGwgPSBhLmxlbmd0aCAtIDE7IDEgPD0gaSAmJiAwIDw9IGwgJiYgb1tp XSAhPT0gYVtsXTspIGwtLTsNCiAgICAgICAgICAgICAgZm9yICg7IDEgPD0gaSAmJiAwIDw9 IGw7IGktLSwgbC0tKQ0KICAgICAgICAgICAgICAgIGlmIChvW2ldICE9PSBhW2xdKSB7DQog ICAgICAgICAgICAgICAgICBpZiAoMSAhPT0gaSB8fCAxICE9PSBsKQ0KICAgICAgICAgICAg ICAgICAgICBkbyB7DQogICAgICAgICAgICAgICAgICAgICAgaWYgKChpLS0sIDAgPiAtLWwg fHwgb1tpXSAhPT0gYVtsXSkpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBzID0g IlxuIiArIG9baV0ucmVwbGFjZSgiIGF0IG5ldyAiLCAiIGF0ICIpOw0KICAgICAgICAgICAg ICAgICAgICAgICAgcmV0dXJuIGUuZGlzcGxheU5hbWUgJiYgcy5pbmNsdWRlcygiPGFub255 bW91cz4iKSAmJiAocyA9IHMucmVwbGFjZSgiPGFub255bW91cz4iLCBlLmRpc3BsYXlOYW1l KSksIHM7DQogICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9 IHdoaWxlICgxIDw9IGkgJiYgMCA8PSBsKTsNCiAgICAgICAgICAgICAgICAgIGJyZWFrOw0K ICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICB9IGZpbmFsbHkg ew0KICAgICAgICAgICAgKEIgPSAhMSksIChFcnJvci5wcmVwYXJlU3RhY2tUcmFjZSA9IG4p Ow0KICAgICAgICAgIH0NCiAgICAgICAgICByZXR1cm4gKGUgPSBlID8gZS5kaXNwbGF5TmFt ZSB8fCBlLm5hbWUgOiAiIikgPyBGKGUpIDogIiI7DQogICAgICAgIH0NCiAgICAgICAgZnVu Y3Rpb24gVShlKSB7DQogICAgICAgICAgc3dpdGNoIChlLnRhZykgew0KICAgICAgICAgICAg Y2FzZSA1Og0KICAgICAgICAgICAgICByZXR1cm4gRihlLnR5cGUpOw0KICAgICAgICAgICAg Y2FzZSAxNjoNCiAgICAgICAgICAgICAgcmV0dXJuIEYoIkxhenkiKTsNCiAgICAgICAgICAg IGNhc2UgMTM6DQogICAgICAgICAgICAgIHJldHVybiBGKCJTdXNwZW5zZSIpOw0KICAgICAg ICAgICAgY2FzZSAxOToNCiAgICAgICAgICAgICAgcmV0dXJuIEYoIlN1c3BlbnNlTGlzdCIp Ow0KICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgY2FzZSAyOg0KICAgICAgICAg ICAgY2FzZSAxNToNCiAgICAgICAgICAgICAgcmV0dXJuIChlID0gRChlLnR5cGUsICExKSk7 DQogICAgICAgICAgICBjYXNlIDExOg0KICAgICAgICAgICAgICByZXR1cm4gKGUgPSBEKGUu dHlwZS5yZW5kZXIsICExKSk7DQogICAgICAgICAgICBjYXNlIDE6DQogICAgICAgICAgICAg IHJldHVybiAoZSA9IEQoZS50eXBlLCAhMCkpOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAg ICAgICAgICAgICAgcmV0dXJuICIiOw0KICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAg ICBmdW5jdGlvbiBXKGUpIHsNCiAgICAgICAgICBpZiAobnVsbCA9PSBlKSByZXR1cm4gbnVs bDsNCiAgICAgICAgICBpZiAoImZ1bmN0aW9uIiA9PT0gdHlwZW9mIGUpIHJldHVybiBlLmRp c3BsYXlOYW1lIHx8IGUubmFtZSB8fCBudWxsOw0KICAgICAgICAgIGlmICgic3RyaW5nIiA9 PT0gdHlwZW9mIGUpIHJldHVybiBlOw0KICAgICAgICAgIHN3aXRjaCAoZSkgew0KICAgICAg ICAgICAgY2FzZSBrOg0KICAgICAgICAgICAgICByZXR1cm4gIkZyYWdtZW50IjsNCiAgICAg ICAgICAgIGNhc2UgUzoNCiAgICAgICAgICAgICAgcmV0dXJuICJQb3J0YWwiOw0KICAgICAg ICAgICAgY2FzZSBDOg0KICAgICAgICAgICAgICByZXR1cm4gIlByb2ZpbGVyIjsNCiAgICAg ICAgICAgIGNhc2UgRToNCiAgICAgICAgICAgICAgcmV0dXJuICJTdHJpY3RNb2RlIjsNCiAg ICAgICAgICAgIGNhc2UgTzoNCiAgICAgICAgICAgICAgcmV0dXJuICJTdXNwZW5zZSI7DQog ICAgICAgICAgICBjYXNlIE46DQogICAgICAgICAgICAgIHJldHVybiAiU3VzcGVuc2VMaXN0 IjsNCiAgICAgICAgICB9DQogICAgICAgICAgaWYgKCJvYmplY3QiID09PSB0eXBlb2YgZSkN CiAgICAgICAgICAgIHN3aXRjaCAoZS4kJHR5cGVvZikgew0KICAgICAgICAgICAgICBjYXNl IF86DQogICAgICAgICAgICAgICAgcmV0dXJuIChlLmRpc3BsYXlOYW1lIHx8ICJDb250ZXh0 IikgKyAiLkNvbnN1bWVyIjsNCiAgICAgICAgICAgICAgY2FzZSBSOg0KICAgICAgICAgICAg ICAgIHJldHVybiAoZS5fY29udGV4dC5kaXNwbGF5TmFtZSB8fCAiQ29udGV4dCIpICsgIi5Q cm92aWRlciI7DQogICAgICAgICAgICAgIGNhc2UgUDoNCiAgICAgICAgICAgICAgICB2YXIg dCA9IGUucmVuZGVyOw0KICAgICAgICAgICAgICAgIHJldHVybiAoZSA9IGUuZGlzcGxheU5h bWUpIHx8IChlID0gIiIgIT09IChlID0gdC5kaXNwbGF5TmFtZSB8fCB0Lm5hbWUgfHwgIiIp ID8gIkZvcndhcmRSZWYoIiArIGUgKyAiKSIgOiAiRm9yd2FyZFJlZiIpLCBlOw0KICAgICAg ICAgICAgICBjYXNlIFQ6DQogICAgICAgICAgICAgICAgcmV0dXJuIG51bGwgIT09ICh0ID0g ZS5kaXNwbGF5TmFtZSB8fCBudWxsKSA/IHQgOiBXKGUudHlwZSkgfHwgIk1lbW8iOw0KICAg ICAgICAgICAgICBjYXNlIEE6DQogICAgICAgICAgICAgICAgKHQgPSBlLl9wYXlsb2FkKSwg KGUgPSBlLl9pbml0KTsNCiAgICAgICAgICAgICAgICB0cnkgew0KICAgICAgICAgICAgICAg ICAgcmV0dXJuIFcoZSh0KSk7DQogICAgICAgICAgICAgICAgfSBjYXRjaCAobikgeyB9DQog ICAgICAgICAgICB9DQogICAgICAgICAgcmV0dXJuIG51bGw7DQogICAgICAgIH0NCiAgICAg ICAgZnVuY3Rpb24gVihlKSB7DQogICAgICAgICAgdmFyIHQgPSBlLnR5cGU7DQogICAgICAg ICAgc3dpdGNoIChlLnRhZykgew0KICAgICAgICAgICAgY2FzZSAyNDoNCiAgICAgICAgICAg ICAgcmV0dXJuICJDYWNoZSI7DQogICAgICAgICAgICBjYXNlIDk6DQogICAgICAgICAgICAg IHJldHVybiAodC5kaXNwbGF5TmFtZSB8fCAiQ29udGV4dCIpICsgIi5Db25zdW1lciI7DQog ICAgICAgICAgICBjYXNlIDEwOg0KICAgICAgICAgICAgICByZXR1cm4gKHQuX2NvbnRleHQu ZGlzcGxheU5hbWUgfHwgIkNvbnRleHQiKSArICIuUHJvdmlkZXIiOw0KICAgICAgICAgICAg Y2FzZSAxODoNCiAgICAgICAgICAgICAgcmV0dXJuICJEZWh5ZHJhdGVkRnJhZ21lbnQiOw0K ICAgICAgICAgICAgY2FzZSAxMToNCiAgICAgICAgICAgICAgcmV0dXJuIChlID0gKGUgPSB0 LnJlbmRlcikuZGlzcGxheU5hbWUgfHwgZS5uYW1lIHx8ICIiKSwgdC5kaXNwbGF5TmFtZSB8 fCAoIiIgIT09IGUgPyAiRm9yd2FyZFJlZigiICsgZSArICIpIiA6ICJGb3J3YXJkUmVmIik7 DQogICAgICAgICAgICBjYXNlIDc6DQogICAgICAgICAgICAgIHJldHVybiAiRnJhZ21lbnQi Ow0KICAgICAgICAgICAgY2FzZSA1Og0KICAgICAgICAgICAgICByZXR1cm4gdDsNCiAgICAg ICAgICAgIGNhc2UgNDoNCiAgICAgICAgICAgICAgcmV0dXJuICJQb3J0YWwiOw0KICAgICAg ICAgICAgY2FzZSAzOg0KICAgICAgICAgICAgICByZXR1cm4gIlJvb3QiOw0KICAgICAgICAg ICAgY2FzZSA2Og0KICAgICAgICAgICAgICByZXR1cm4gIlRleHQiOw0KICAgICAgICAgICAg Y2FzZSAxNjoNCiAgICAgICAgICAgICAgcmV0dXJuIFcodCk7DQogICAgICAgICAgICBjYXNl IDg6DQogICAgICAgICAgICAgIHJldHVybiB0ID09PSBFID8gIlN0cmljdE1vZGUiIDogIk1v ZGUiOw0KICAgICAgICAgICAgY2FzZSAyMjoNCiAgICAgICAgICAgICAgcmV0dXJuICJPZmZz Y3JlZW4iOw0KICAgICAgICAgICAgY2FzZSAxMjoNCiAgICAgICAgICAgICAgcmV0dXJuICJQ cm9maWxlciI7DQogICAgICAgICAgICBjYXNlIDIxOg0KICAgICAgICAgICAgICByZXR1cm4g IlNjb3BlIjsNCiAgICAgICAgICAgIGNhc2UgMTM6DQogICAgICAgICAgICAgIHJldHVybiAi U3VzcGVuc2UiOw0KICAgICAgICAgICAgY2FzZSAxOToNCiAgICAgICAgICAgICAgcmV0dXJu ICJTdXNwZW5zZUxpc3QiOw0KICAgICAgICAgICAgY2FzZSAyNToNCiAgICAgICAgICAgICAg cmV0dXJuICJUcmFjaW5nTWFya2VyIjsNCiAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAg ICAgIGNhc2UgMDoNCiAgICAgICAgICAgIGNhc2UgMTc6DQogICAgICAgICAgICBjYXNlIDI6 DQogICAgICAgICAgICBjYXNlIDE0Og0KICAgICAgICAgICAgY2FzZSAxNToNCiAgICAgICAg ICAgICAgaWYgKCJmdW5jdGlvbiIgPT09IHR5cGVvZiB0KSByZXR1cm4gdC5kaXNwbGF5TmFt ZSB8fCB0Lm5hbWUgfHwgbnVsbDsNCiAgICAgICAgICAgICAgaWYgKCJzdHJpbmciID09PSB0 eXBlb2YgdCkgcmV0dXJuIHQ7DQogICAgICAgICAgfQ0KICAgICAgICAgIHJldHVybiBudWxs Ow0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIEgoZSkgew0KICAgICAgICAgIHN3aXRj aCAodHlwZW9mIGUpIHsNCiAgICAgICAgICAgIGNhc2UgImJvb2xlYW4iOg0KICAgICAgICAg ICAgY2FzZSAibnVtYmVyIjoNCiAgICAgICAgICAgIGNhc2UgInN0cmluZyI6DQogICAgICAg ICAgICBjYXNlICJ1bmRlZmluZWQiOg0KICAgICAgICAgICAgY2FzZSAib2JqZWN0IjoNCiAg ICAgICAgICAgICAgcmV0dXJuIGU7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAg ICAgICByZXR1cm4gIiI7DQogICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIGZ1bmN0 aW9uIHEoZSkgew0KICAgICAgICAgIHZhciB0ID0gZS50eXBlOw0KICAgICAgICAgIHJldHVy biAoZSA9IGUubm9kZU5hbWUpICYmICJpbnB1dCIgPT09IGUudG9Mb3dlckNhc2UoKSAmJiAo ImNoZWNrYm94IiA9PT0gdCB8fCAicmFkaW8iID09PSB0KTsNCiAgICAgICAgfQ0KICAgICAg ICBmdW5jdGlvbiAkKGUpIHsNCiAgICAgICAgICBlLl92YWx1ZVRyYWNrZXIgfHwNCiAgICAg ICAgICAgIChlLl92YWx1ZVRyYWNrZXIgPSAoZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAg ICAgdmFyIHQgPSBxKGUpID8gImNoZWNrZWQiIDogInZhbHVlIiwNCiAgICAgICAgICAgICAg ICBuID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLmNvbnN0cnVjdG9yLnBy b3RvdHlwZSwgdCksDQogICAgICAgICAgICAgICAgciA9ICIiICsgZVt0XTsNCiAgICAgICAg ICAgICAgaWYgKCFlLmhhc093blByb3BlcnR5KHQpICYmICJ1bmRlZmluZWQiICE9PSB0eXBl b2YgbiAmJiAiZnVuY3Rpb24iID09PSB0eXBlb2Ygbi5nZXQgJiYgImZ1bmN0aW9uIiA9PT0g dHlwZW9mIG4uc2V0KSB7DQogICAgICAgICAgICAgICAgdmFyIG8gPSBuLmdldCwNCiAgICAg ICAgICAgICAgICAgIGEgPSBuLnNldDsNCiAgICAgICAgICAgICAgICByZXR1cm4gKA0KICAg ICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIHQsIHsNCiAgICAgICAg ICAgICAgICAgICAgY29uZmlndXJhYmxlOiAhMCwNCiAgICAgICAgICAgICAgICAgICAgZ2V0 OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG8uY2FsbCh0 aGlzKTsNCiAgICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICAgc2V0 OiBmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgICAgICAgICAgIChyID0gIiIgKyBlKSwg YS5jYWxsKHRoaXMsIGUpOw0KICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAg ICAgICAgfSksDQogICAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwg dCwgeyBlbnVtZXJhYmxlOiBuLmVudW1lcmFibGUgfSksDQogICAgICAgICAgICAgICAgICB7 DQogICAgICAgICAgICAgICAgICAgIGdldFZhbHVlOiBmdW5jdGlvbiAoKSB7DQogICAgICAg ICAgICAgICAgICAgICAgcmV0dXJuIHI7DQogICAgICAgICAgICAgICAgICAgIH0sDQogICAg ICAgICAgICAgICAgICAgIHNldFZhbHVlOiBmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAg ICAgICAgICAgIHIgPSAiIiArIGU7DQogICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAg ICAgICAgICAgICAgIHN0b3BUcmFja2luZzogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAg ICAgICAgICAgIChlLl92YWx1ZVRyYWNrZXIgPSBudWxsKSwgZGVsZXRlIGVbdF07DQogICAg ICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAg ICAgKTsNCiAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSkoZSkpOw0KICAgICAgICB9 DQogICAgICAgIGZ1bmN0aW9uIEsoZSkgew0KICAgICAgICAgIGlmICghZSkgcmV0dXJuICEx Ow0KICAgICAgICAgIHZhciB0ID0gZS5fdmFsdWVUcmFja2VyOw0KICAgICAgICAgIGlmICgh dCkgcmV0dXJuICEwOw0KICAgICAgICAgIHZhciBuID0gdC5nZXRWYWx1ZSgpLA0KICAgICAg ICAgICAgciA9ICIiOw0KICAgICAgICAgIHJldHVybiBlICYmIChyID0gcShlKSA/IChlLmNo ZWNrZWQgPyAidHJ1ZSIgOiAiZmFsc2UiKSA6IGUudmFsdWUpLCAoZSA9IHIpICE9PSBuICYm ICh0LnNldFZhbHVlKGUpLCAhMCk7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gUShl KSB7DQogICAgICAgICAgaWYgKCJ1bmRlZmluZWQiID09PSB0eXBlb2YgKGUgPSBlIHx8ICgi dW5kZWZpbmVkIiAhPT0gdHlwZW9mIGRvY3VtZW50ID8gZG9jdW1lbnQgOiB2b2lkIDApKSkg cmV0dXJuIG51bGw7DQogICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIHJldHVybiBlLmFj dGl2ZUVsZW1lbnQgfHwgZS5ib2R5Ow0KICAgICAgICAgIH0gY2F0Y2ggKHQpIHsNCiAgICAg ICAgICAgIHJldHVybiBlLmJvZHk7DQogICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAg IGZ1bmN0aW9uIEcoZSwgdCkgew0KICAgICAgICAgIHZhciBuID0gdC5jaGVja2VkOw0KICAg ICAgICAgIHJldHVybiBMKHt9LCB0LCB7IGRlZmF1bHRDaGVja2VkOiB2b2lkIDAsIGRlZmF1 bHRWYWx1ZTogdm9pZCAwLCB2YWx1ZTogdm9pZCAwLCBjaGVja2VkOiBudWxsICE9IG4gPyBu IDogZS5fd3JhcHBlclN0YXRlLmluaXRpYWxDaGVja2VkIH0pOw0KICAgICAgICB9DQogICAg ICAgIGZ1bmN0aW9uIFkoZSwgdCkgew0KICAgICAgICAgIHZhciBuID0gbnVsbCA9PSB0LmRl ZmF1bHRWYWx1ZSA/ICIiIDogdC5kZWZhdWx0VmFsdWUsDQogICAgICAgICAgICByID0gbnVs bCAhPSB0LmNoZWNrZWQgPyB0LmNoZWNrZWQgOiB0LmRlZmF1bHRDaGVja2VkOw0KICAgICAg ICAgIChuID0gSChudWxsICE9IHQudmFsdWUgPyB0LnZhbHVlIDogbikpLCAoZS5fd3JhcHBl clN0YXRlID0geyBpbml0aWFsQ2hlY2tlZDogciwgaW5pdGlhbFZhbHVlOiBuLCBjb250cm9s bGVkOiAiY2hlY2tib3giID09PSB0LnR5cGUgfHwgInJhZGlvIiA9PT0gdC50eXBlID8gbnVs bCAhPSB0LmNoZWNrZWQgOiBudWxsICE9IHQudmFsdWUgfSk7DQogICAgICAgIH0NCiAgICAg ICAgZnVuY3Rpb24gWChlLCB0KSB7DQogICAgICAgICAgbnVsbCAhPSAodCA9IHQuY2hlY2tl ZCkgJiYgYihlLCAiY2hlY2tlZCIsIHQsICExKTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5j dGlvbiBaKGUsIHQpIHsNCiAgICAgICAgICBYKGUsIHQpOw0KICAgICAgICAgIHZhciBuID0g SCh0LnZhbHVlKSwNCiAgICAgICAgICAgIHIgPSB0LnR5cGU7DQogICAgICAgICAgaWYgKG51 bGwgIT0gbikgIm51bWJlciIgPT09IHIgPyAoKDAgPT09IG4gJiYgIiIgPT09IGUudmFsdWUp IHx8IGUudmFsdWUgIT0gbikgJiYgKGUudmFsdWUgPSAiIiArIG4pIDogZS52YWx1ZSAhPT0g IiIgKyBuICYmIChlLnZhbHVlID0gIiIgKyBuKTsNCiAgICAgICAgICBlbHNlIGlmICgic3Vi bWl0IiA9PT0gciB8fCAicmVzZXQiID09PSByKSByZXR1cm4gdm9pZCBlLnJlbW92ZUF0dHJp YnV0ZSgidmFsdWUiKTsNCiAgICAgICAgICB0Lmhhc093blByb3BlcnR5KCJ2YWx1ZSIpID8g ZWUoZSwgdC50eXBlLCBuKSA6IHQuaGFzT3duUHJvcGVydHkoImRlZmF1bHRWYWx1ZSIpICYm IGVlKGUsIHQudHlwZSwgSCh0LmRlZmF1bHRWYWx1ZSkpLCBudWxsID09IHQuY2hlY2tlZCAm JiBudWxsICE9IHQuZGVmYXVsdENoZWNrZWQgJiYgKGUuZGVmYXVsdENoZWNrZWQgPSAhIXQu ZGVmYXVsdENoZWNrZWQpOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIEooZSwgdCwg bikgew0KICAgICAgICAgIGlmICh0Lmhhc093blByb3BlcnR5KCJ2YWx1ZSIpIHx8IHQuaGFz T3duUHJvcGVydHkoImRlZmF1bHRWYWx1ZSIpKSB7DQogICAgICAgICAgICB2YXIgciA9IHQu dHlwZTsNCiAgICAgICAgICAgIGlmICghKCgic3VibWl0IiAhPT0gciAmJiAicmVzZXQiICE9 PSByKSB8fCAodm9pZCAwICE9PSB0LnZhbHVlICYmIG51bGwgIT09IHQudmFsdWUpKSkgcmV0 dXJuOw0KICAgICAgICAgICAgKHQgPSAiIiArIGUuX3dyYXBwZXJTdGF0ZS5pbml0aWFsVmFs dWUpLCBuIHx8IHQgPT09IGUudmFsdWUgfHwgKGUudmFsdWUgPSB0KSwgKGUuZGVmYXVsdFZh bHVlID0gdCk7DQogICAgICAgICAgfQ0KICAgICAgICAgICIiICE9PSAobiA9IGUubmFtZSkg JiYgKGUubmFtZSA9ICIiKSwgKGUuZGVmYXVsdENoZWNrZWQgPSAhIWUuX3dyYXBwZXJTdGF0 ZS5pbml0aWFsQ2hlY2tlZCksICIiICE9PSBuICYmIChlLm5hbWUgPSBuKTsNCiAgICAgICAg fQ0KICAgICAgICBmdW5jdGlvbiBlZShlLCB0LCBuKSB7DQogICAgICAgICAgKCJudW1iZXIi ID09PSB0ICYmIFEoZS5vd25lckRvY3VtZW50KSA9PT0gZSkgfHwgKG51bGwgPT0gbiA/IChl LmRlZmF1bHRWYWx1ZSA9ICIiICsgZS5fd3JhcHBlclN0YXRlLmluaXRpYWxWYWx1ZSkgOiBl LmRlZmF1bHRWYWx1ZSAhPT0gIiIgKyBuICYmIChlLmRlZmF1bHRWYWx1ZSA9ICIiICsgbikp Ow0KICAgICAgICB9DQogICAgICAgIHZhciB0ZSA9IEFycmF5LmlzQXJyYXk7DQogICAgICAg IGZ1bmN0aW9uIG5lKGUsIHQsIG4sIHIpIHsNCiAgICAgICAgICBpZiAoKChlID0gZS5vcHRp b25zKSwgdCkpIHsNCiAgICAgICAgICAgIHQgPSB7fTsNCiAgICAgICAgICAgIGZvciAodmFy IG8gPSAwOyBvIDwgbi5sZW5ndGg7IG8rKykgdFsiJCIgKyBuW29dXSA9ICEwOw0KICAgICAg ICAgICAgZm9yIChuID0gMDsgbiA8IGUubGVuZ3RoOyBuKyspIChvID0gdC5oYXNPd25Qcm9w ZXJ0eSgiJCIgKyBlW25dLnZhbHVlKSksIGVbbl0uc2VsZWN0ZWQgIT09IG8gJiYgKGVbbl0u c2VsZWN0ZWQgPSBvKSwgbyAmJiByICYmIChlW25dLmRlZmF1bHRTZWxlY3RlZCA9ICEwKTsN CiAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgZm9yIChuID0gIiIgKyBIKG4pLCB0 ID0gbnVsbCwgbyA9IDA7IG8gPCBlLmxlbmd0aDsgbysrKSB7DQogICAgICAgICAgICAgIGlm IChlW29dLnZhbHVlID09PSBuKSByZXR1cm4gKGVbb10uc2VsZWN0ZWQgPSAhMCksIHZvaWQg KHIgJiYgKGVbb10uZGVmYXVsdFNlbGVjdGVkID0gITApKTsNCiAgICAgICAgICAgICAgbnVs bCAhPT0gdCB8fCBlW29dLmRpc2FibGVkIHx8ICh0ID0gZVtvXSk7DQogICAgICAgICAgICB9 DQogICAgICAgICAgICBudWxsICE9PSB0ICYmICh0LnNlbGVjdGVkID0gITApOw0KICAgICAg ICAgIH0NCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiByZShlLCB0KSB7DQogICAgICAg ICAgaWYgKG51bGwgIT0gdC5kYW5nZXJvdXNseVNldElubmVySFRNTCkgdGhyb3cgRXJyb3Io YSg5MSkpOw0KICAgICAgICAgIHJldHVybiBMKHt9LCB0LCB7IHZhbHVlOiB2b2lkIDAsIGRl ZmF1bHRWYWx1ZTogdm9pZCAwLCBjaGlsZHJlbjogIiIgKyBlLl93cmFwcGVyU3RhdGUuaW5p dGlhbFZhbHVlIH0pOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIG9lKGUsIHQpIHsN CiAgICAgICAgICB2YXIgbiA9IHQudmFsdWU7DQogICAgICAgICAgaWYgKG51bGwgPT0gbikg ew0KICAgICAgICAgICAgaWYgKCgobiA9IHQuY2hpbGRyZW4pLCAodCA9IHQuZGVmYXVsdFZh bHVlKSwgbnVsbCAhPSBuKSkgew0KICAgICAgICAgICAgICBpZiAobnVsbCAhPSB0KSB0aHJv dyBFcnJvcihhKDkyKSk7DQogICAgICAgICAgICAgIGlmICh0ZShuKSkgew0KICAgICAgICAg ICAgICAgIGlmICgxIDwgbi5sZW5ndGgpIHRocm93IEVycm9yKGEoOTMpKTsNCiAgICAgICAg ICAgICAgICBuID0gblswXTsNCiAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICB0ID0g bjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIG51bGwgPT0gdCAmJiAodCA9ICIiKSwg KG4gPSB0KTsNCiAgICAgICAgICB9DQogICAgICAgICAgZS5fd3JhcHBlclN0YXRlID0geyBp bml0aWFsVmFsdWU6IEgobikgfTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBhZShl LCB0KSB7DQogICAgICAgICAgdmFyIG4gPSBIKHQudmFsdWUpLA0KICAgICAgICAgICAgciA9 IEgodC5kZWZhdWx0VmFsdWUpOw0KICAgICAgICAgIG51bGwgIT0gbiAmJiAoKG4gPSAiIiAr IG4pICE9PSBlLnZhbHVlICYmIChlLnZhbHVlID0gbiksIG51bGwgPT0gdC5kZWZhdWx0VmFs dWUgJiYgZS5kZWZhdWx0VmFsdWUgIT09IG4gJiYgKGUuZGVmYXVsdFZhbHVlID0gbikpLCBu dWxsICE9IHIgJiYgKGUuZGVmYXVsdFZhbHVlID0gIiIgKyByKTsNCiAgICAgICAgfQ0KICAg ICAgICBmdW5jdGlvbiBpZShlKSB7DQogICAgICAgICAgdmFyIHQgPSBlLnRleHRDb250ZW50 Ow0KICAgICAgICAgIHQgPT09IGUuX3dyYXBwZXJTdGF0ZS5pbml0aWFsVmFsdWUgJiYgIiIg IT09IHQgJiYgbnVsbCAhPT0gdCAmJiAoZS52YWx1ZSA9IHQpOw0KICAgICAgICB9DQogICAg ICAgIGZ1bmN0aW9uIGxlKGUpIHsNCiAgICAgICAgICBzd2l0Y2ggKGUpIHsNCiAgICAgICAg ICAgIGNhc2UgInN2ZyI6DQogICAgICAgICAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5v cmcvMjAwMC9zdmciOw0KICAgICAgICAgICAgY2FzZSAibWF0aCI6DQogICAgICAgICAgICAg IHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMTk5OC9NYXRoL01hdGhNTCI7DQogICAgICAg ICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3Jn LzE5OTkveGh0bWwiOw0KICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlv biBzZShlLCB0KSB7DQogICAgICAgICAgcmV0dXJuIG51bGwgPT0gZSB8fCAiaHR0cDovL3d3 dy53My5vcmcvMTk5OS94aHRtbCIgPT09IGUgPyBsZSh0KSA6ICJodHRwOi8vd3d3LnczLm9y Zy8yMDAwL3N2ZyIgPT09IGUgJiYgImZvcmVpZ25PYmplY3QiID09PSB0ID8gImh0dHA6Ly93 d3cudzMub3JnLzE5OTkveGh0bWwiIDogZTsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgdWUs DQogICAgICAgICAgY2UsDQogICAgICAgICAgZGUgPQ0KICAgICAgICAgICAgKChjZSA9IGZ1 bmN0aW9uIChlLCB0KSB7DQogICAgICAgICAgICAgIGlmICgiaHR0cDovL3d3dy53My5vcmcv MjAwMC9zdmciICE9PSBlLm5hbWVzcGFjZVVSSSB8fCAiaW5uZXJIVE1MIiBpbiBlKSBlLmlu bmVySFRNTCA9IHQ7DQogICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIGZv ciAoKHVlID0gdWUgfHwgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikpLmlubmVySFRN TCA9ICI8c3ZnPiIgKyB0LnZhbHVlT2YoKS50b1N0cmluZygpICsgIjwvc3ZnPiIsIHQgPSB1 ZS5maXJzdENoaWxkOyBlLmZpcnN0Q2hpbGQ7KSBlLnJlbW92ZUNoaWxkKGUuZmlyc3RDaGls ZCk7DQogICAgICAgICAgICAgICAgZm9yICg7IHQuZmlyc3RDaGlsZDspIGUuYXBwZW5kQ2hp bGQodC5maXJzdENoaWxkKTsNCiAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSksDQog ICAgICAgICAgICAgICJ1bmRlZmluZWQiICE9PSB0eXBlb2YgTVNBcHAgJiYgTVNBcHAuZXhl Y1Vuc2FmZUxvY2FsRnVuY3Rpb24NCiAgICAgICAgICAgICAgICA/IGZ1bmN0aW9uIChlLCB0 LCBuLCByKSB7DQogICAgICAgICAgICAgICAgICBNU0FwcC5leGVjVW5zYWZlTG9jYWxGdW5j dGlvbihmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBjZShlLCB0 KTsNCiAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAg ICAgICAgICA6IGNlKTsNCiAgICAgICAgZnVuY3Rpb24gZmUoZSwgdCkgew0KICAgICAgICAg IGlmICh0KSB7DQogICAgICAgICAgICB2YXIgbiA9IGUuZmlyc3RDaGlsZDsNCiAgICAgICAg ICAgIGlmIChuICYmIG4gPT09IGUubGFzdENoaWxkICYmIDMgPT09IG4ubm9kZVR5cGUpIHJl dHVybiB2b2lkIChuLm5vZGVWYWx1ZSA9IHQpOw0KICAgICAgICAgIH0NCiAgICAgICAgICBl LnRleHRDb250ZW50ID0gdDsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgcGUgPSB7DQogICAg ICAgICAgYW5pbWF0aW9uSXRlcmF0aW9uQ291bnQ6ICEwLA0KICAgICAgICAgIGFzcGVjdFJh dGlvOiAhMCwNCiAgICAgICAgICBib3JkZXJJbWFnZU91dHNldDogITAsDQogICAgICAgICAg Ym9yZGVySW1hZ2VTbGljZTogITAsDQogICAgICAgICAgYm9yZGVySW1hZ2VXaWR0aDogITAs DQogICAgICAgICAgYm94RmxleDogITAsDQogICAgICAgICAgYm94RmxleEdyb3VwOiAhMCwN CiAgICAgICAgICBib3hPcmRpbmFsR3JvdXA6ICEwLA0KICAgICAgICAgIGNvbHVtbkNvdW50 OiAhMCwNCiAgICAgICAgICBjb2x1bW5zOiAhMCwNCiAgICAgICAgICBmbGV4OiAhMCwNCiAg ICAgICAgICBmbGV4R3JvdzogITAsDQogICAgICAgICAgZmxleFBvc2l0aXZlOiAhMCwNCiAg ICAgICAgICBmbGV4U2hyaW5rOiAhMCwNCiAgICAgICAgICBmbGV4TmVnYXRpdmU6ICEwLA0K ICAgICAgICAgIGZsZXhPcmRlcjogITAsDQogICAgICAgICAgZ3JpZEFyZWE6ICEwLA0KICAg ICAgICAgIGdyaWRSb3c6ICEwLA0KICAgICAgICAgIGdyaWRSb3dFbmQ6ICEwLA0KICAgICAg ICAgIGdyaWRSb3dTcGFuOiAhMCwNCiAgICAgICAgICBncmlkUm93U3RhcnQ6ICEwLA0KICAg ICAgICAgIGdyaWRDb2x1bW46ICEwLA0KICAgICAgICAgIGdyaWRDb2x1bW5FbmQ6ICEwLA0K ICAgICAgICAgIGdyaWRDb2x1bW5TcGFuOiAhMCwNCiAgICAgICAgICBncmlkQ29sdW1uU3Rh cnQ6ICEwLA0KICAgICAgICAgIGZvbnRXZWlnaHQ6ICEwLA0KICAgICAgICAgIGxpbmVDbGFt cDogITAsDQogICAgICAgICAgbGluZUhlaWdodDogITAsDQogICAgICAgICAgb3BhY2l0eTog ITAsDQogICAgICAgICAgb3JkZXI6ICEwLA0KICAgICAgICAgIG9ycGhhbnM6ICEwLA0KICAg ICAgICAgIHRhYlNpemU6ICEwLA0KICAgICAgICAgIHdpZG93czogITAsDQogICAgICAgICAg ekluZGV4OiAhMCwNCiAgICAgICAgICB6b29tOiAhMCwNCiAgICAgICAgICBmaWxsT3BhY2l0 eTogITAsDQogICAgICAgICAgZmxvb2RPcGFjaXR5OiAhMCwNCiAgICAgICAgICBzdG9wT3Bh Y2l0eTogITAsDQogICAgICAgICAgc3Ryb2tlRGFzaGFycmF5OiAhMCwNCiAgICAgICAgICBz dHJva2VEYXNob2Zmc2V0OiAhMCwNCiAgICAgICAgICBzdHJva2VNaXRlcmxpbWl0OiAhMCwN CiAgICAgICAgICBzdHJva2VPcGFjaXR5OiAhMCwNCiAgICAgICAgICBzdHJva2VXaWR0aDog ITAsDQogICAgICAgIH0sDQogICAgICAgICAgaGUgPSBbIldlYmtpdCIsICJtcyIsICJNb3oi LCAiTyJdOw0KICAgICAgICBmdW5jdGlvbiBtZShlLCB0LCBuKSB7DQogICAgICAgICAgcmV0 dXJuIG51bGwgPT0gdCB8fCAiYm9vbGVhbiIgPT09IHR5cGVvZiB0IHx8ICIiID09PSB0ID8g IiIgOiBuIHx8ICJudW1iZXIiICE9PSB0eXBlb2YgdCB8fCAwID09PSB0IHx8IChwZS5oYXNP d25Qcm9wZXJ0eShlKSAmJiBwZVtlXSkgPyAoIiIgKyB0KS50cmltKCkgOiB0ICsgInB4IjsN CiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBnZShlLCB0KSB7DQogICAgICAgICAgZm9y ICh2YXIgbiBpbiAoKGUgPSBlLnN0eWxlKSwgdCkpDQogICAgICAgICAgICBpZiAodC5oYXNP d25Qcm9wZXJ0eShuKSkgew0KICAgICAgICAgICAgICB2YXIgciA9IDAgPT09IG4uaW5kZXhP ZigiLS0iKSwNCiAgICAgICAgICAgICAgICBvID0gbWUobiwgdFtuXSwgcik7DQogICAgICAg ICAgICAgICJmbG9hdCIgPT09IG4gJiYgKG4gPSAiY3NzRmxvYXQiKSwgciA/IGUuc2V0UHJv cGVydHkobiwgbykgOiAoZVtuXSA9IG8pOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQog ICAgICAgIE9iamVjdC5rZXlzKHBlKS5mb3JFYWNoKGZ1bmN0aW9uIChlKSB7DQogICAgICAg ICAgaGUuZm9yRWFjaChmdW5jdGlvbiAodCkgew0KICAgICAgICAgICAgKHQgPSB0ICsgZS5j aGFyQXQoMCkudG9VcHBlckNhc2UoKSArIGUuc3Vic3RyaW5nKDEpKSwgKHBlW3RdID0gcGVb ZV0pOw0KICAgICAgICAgIH0pOw0KICAgICAgICB9KTsNCiAgICAgICAgdmFyIHZlID0gTCh7 IG1lbnVpdGVtOiAhMCB9LCB7IGFyZWE6ICEwLCBiYXNlOiAhMCwgYnI6ICEwLCBjb2w6ICEw LCBlbWJlZDogITAsIGhyOiAhMCwgaW1nOiAhMCwgaW5wdXQ6ICEwLCBrZXlnZW46ICEwLCBs aW5rOiAhMCwgbWV0YTogITAsIHBhcmFtOiAhMCwgc291cmNlOiAhMCwgdHJhY2s6ICEwLCB3 YnI6ICEwIH0pOw0KICAgICAgICBmdW5jdGlvbiB5ZShlLCB0KSB7DQogICAgICAgICAgaWYg KHQpIHsNCiAgICAgICAgICAgIGlmICh2ZVtlXSAmJiAobnVsbCAhPSB0LmNoaWxkcmVuIHx8 IG51bGwgIT0gdC5kYW5nZXJvdXNseVNldElubmVySFRNTCkpIHRocm93IEVycm9yKGEoMTM3 LCBlKSk7DQogICAgICAgICAgICBpZiAobnVsbCAhPSB0LmRhbmdlcm91c2x5U2V0SW5uZXJI VE1MKSB7DQogICAgICAgICAgICAgIGlmIChudWxsICE9IHQuY2hpbGRyZW4pIHRocm93IEVy cm9yKGEoNjApKTsNCiAgICAgICAgICAgICAgaWYgKCJvYmplY3QiICE9PSB0eXBlb2YgdC5k YW5nZXJvdXNseVNldElubmVySFRNTCB8fCAhKCJfX2h0bWwiIGluIHQuZGFuZ2Vyb3VzbHlT ZXRJbm5lckhUTUwpKSB0aHJvdyBFcnJvcihhKDYxKSk7DQogICAgICAgICAgICB9DQogICAg ICAgICAgICBpZiAobnVsbCAhPSB0LnN0eWxlICYmICJvYmplY3QiICE9PSB0eXBlb2YgdC5z dHlsZSkgdGhyb3cgRXJyb3IoYSg2MikpOw0KICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAg ICAgICBmdW5jdGlvbiBiZShlLCB0KSB7DQogICAgICAgICAgaWYgKC0xID09PSBlLmluZGV4 T2YoIi0iKSkgcmV0dXJuICJzdHJpbmciID09PSB0eXBlb2YgdC5pczsNCiAgICAgICAgICBz d2l0Y2ggKGUpIHsNCiAgICAgICAgICAgIGNhc2UgImFubm90YXRpb24teG1sIjoNCiAgICAg ICAgICAgIGNhc2UgImNvbG9yLXByb2ZpbGUiOg0KICAgICAgICAgICAgY2FzZSAiZm9udC1m YWNlIjoNCiAgICAgICAgICAgIGNhc2UgImZvbnQtZmFjZS1zcmMiOg0KICAgICAgICAgICAg Y2FzZSAiZm9udC1mYWNlLXVyaSI6DQogICAgICAgICAgICBjYXNlICJmb250LWZhY2UtZm9y bWF0IjoNCiAgICAgICAgICAgIGNhc2UgImZvbnQtZmFjZS1uYW1lIjoNCiAgICAgICAgICAg IGNhc2UgIm1pc3NpbmctZ2x5cGgiOg0KICAgICAgICAgICAgICByZXR1cm4gITE7DQogICAg ICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICByZXR1cm4gITA7DQogICAgICAgICAg fQ0KICAgICAgICB9DQogICAgICAgIHZhciB3ZSA9IG51bGw7DQogICAgICAgIGZ1bmN0aW9u IHhlKGUpIHsNCiAgICAgICAgICByZXR1cm4gKGUgPSBlLnRhcmdldCB8fCBlLnNyY0VsZW1l bnQgfHwgd2luZG93KS5jb3JyZXNwb25kaW5nVXNlRWxlbWVudCAmJiAoZSA9IGUuY29ycmVz cG9uZGluZ1VzZUVsZW1lbnQpLCAzID09PSBlLm5vZGVUeXBlID8gZS5wYXJlbnROb2RlIDog ZTsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgU2UgPSBudWxsLA0KICAgICAgICAgIGtlID0g bnVsbCwNCiAgICAgICAgICBFZSA9IG51bGw7DQogICAgICAgIGZ1bmN0aW9uIENlKGUpIHsN CiAgICAgICAgICBpZiAoKGUgPSB3byhlKSkpIHsNCiAgICAgICAgICAgIGlmICgiZnVuY3Rp b24iICE9PSB0eXBlb2YgU2UpIHRocm93IEVycm9yKGEoMjgwKSk7DQogICAgICAgICAgICB2 YXIgdCA9IGUuc3RhdGVOb2RlOw0KICAgICAgICAgICAgdCAmJiAoKHQgPSBTbyh0KSksIFNl KGUuc3RhdGVOb2RlLCBlLnR5cGUsIHQpKTsNCiAgICAgICAgICB9DQogICAgICAgIH0NCiAg ICAgICAgZnVuY3Rpb24gUmUoZSkgew0KICAgICAgICAgIGtlID8gKEVlID8gRWUucHVzaChl KSA6IChFZSA9IFtlXSkpIDogKGtlID0gZSk7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rp b24gX2UoKSB7DQogICAgICAgICAgaWYgKGtlKSB7DQogICAgICAgICAgICB2YXIgZSA9IGtl LA0KICAgICAgICAgICAgICB0ID0gRWU7DQogICAgICAgICAgICBpZiAoKChFZSA9IGtlID0g bnVsbCksIENlKGUpLCB0KSkgZm9yIChlID0gMDsgZSA8IHQubGVuZ3RoOyBlKyspIENlKHRb ZV0pOw0KICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBQZShlLCB0 KSB7DQogICAgICAgICAgcmV0dXJuIGUodCk7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rp b24gT2UoKSB7IH0NCiAgICAgICAgdmFyIE5lID0gITE7DQogICAgICAgIGZ1bmN0aW9uIFRl KGUsIHQsIG4pIHsNCiAgICAgICAgICBpZiAoTmUpIHJldHVybiBlKHQsIG4pOw0KICAgICAg ICAgIE5lID0gITA7DQogICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIHJldHVybiBQZShl LCB0LCBuKTsNCiAgICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgKE5lID0gITEp LCAobnVsbCAhPT0ga2UgfHwgbnVsbCAhPT0gRWUpICYmIChPZSgpLCBfZSgpKTsNCiAgICAg ICAgICB9DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gQWUoZSwgdCkgew0KICAgICAg ICAgIHZhciBuID0gZS5zdGF0ZU5vZGU7DQogICAgICAgICAgaWYgKG51bGwgPT09IG4pIHJl dHVybiBudWxsOw0KICAgICAgICAgIHZhciByID0gU28obik7DQogICAgICAgICAgaWYgKG51 bGwgPT09IHIpIHJldHVybiBudWxsOw0KICAgICAgICAgIG4gPSByW3RdOw0KICAgICAgICAg IGU6IHN3aXRjaCAodCkgew0KICAgICAgICAgICAgY2FzZSAib25DbGljayI6DQogICAgICAg ICAgICBjYXNlICJvbkNsaWNrQ2FwdHVyZSI6DQogICAgICAgICAgICBjYXNlICJvbkRvdWJs ZUNsaWNrIjoNCiAgICAgICAgICAgIGNhc2UgIm9uRG91YmxlQ2xpY2tDYXB0dXJlIjoNCiAg ICAgICAgICAgIGNhc2UgIm9uTW91c2VEb3duIjoNCiAgICAgICAgICAgIGNhc2UgIm9uTW91 c2VEb3duQ2FwdHVyZSI6DQogICAgICAgICAgICBjYXNlICJvbk1vdXNlTW92ZSI6DQogICAg ICAgICAgICBjYXNlICJvbk1vdXNlTW92ZUNhcHR1cmUiOg0KICAgICAgICAgICAgY2FzZSAi b25Nb3VzZVVwIjoNCiAgICAgICAgICAgIGNhc2UgIm9uTW91c2VVcENhcHR1cmUiOg0KICAg ICAgICAgICAgY2FzZSAib25Nb3VzZUVudGVyIjoNCiAgICAgICAgICAgICAgKHIgPSAhci5k aXNhYmxlZCkgfHwgKHIgPSAhKCJidXR0b24iID09PSAoZSA9IGUudHlwZSkgfHwgImlucHV0 IiA9PT0gZSB8fCAic2VsZWN0IiA9PT0gZSB8fCAidGV4dGFyZWEiID09PSBlKSksIChlID0g IXIpOw0KICAgICAgICAgICAgICBicmVhayBlOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAg ICAgICAgICAgICAgZSA9ICExOw0KICAgICAgICAgIH0NCiAgICAgICAgICBpZiAoZSkgcmV0 dXJuIG51bGw7DQogICAgICAgICAgaWYgKG4gJiYgImZ1bmN0aW9uIiAhPT0gdHlwZW9mIG4p IHRocm93IEVycm9yKGEoMjMxLCB0LCB0eXBlb2YgbikpOw0KICAgICAgICAgIHJldHVybiBu Ow0KICAgICAgICB9DQogICAgICAgIHZhciBNZSA9ICExOw0KICAgICAgICBpZiAoYykNCiAg ICAgICAgICB0cnkgew0KICAgICAgICAgICAgdmFyIHplID0ge307DQogICAgICAgICAgICBP YmplY3QuZGVmaW5lUHJvcGVydHkoemUsICJwYXNzaXZlIiwgew0KICAgICAgICAgICAgICBn ZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBNZSA9ICEwOw0KICAgICAgICAg ICAgICB9LA0KICAgICAgICAgICAgfSksDQogICAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVu dExpc3RlbmVyKCJ0ZXN0IiwgemUsIHplKSwNCiAgICAgICAgICAgICAgd2luZG93LnJlbW92 ZUV2ZW50TGlzdGVuZXIoInRlc3QiLCB6ZSwgemUpOw0KICAgICAgICAgIH0gY2F0Y2ggKGNl KSB7DQogICAgICAgICAgICBNZSA9ICExOw0KICAgICAgICAgIH0NCiAgICAgICAgZnVuY3Rp b24gamUoZSwgdCwgbiwgciwgbywgYSwgaSwgbCwgcykgew0KICAgICAgICAgIHZhciB1ID0g QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAzKTsNCiAgICAgICAgICB0 cnkgew0KICAgICAgICAgICAgdC5hcHBseShuLCB1KTsNCiAgICAgICAgICB9IGNhdGNoIChj KSB7DQogICAgICAgICAgICB0aGlzLm9uRXJyb3IoYyk7DQogICAgICAgICAgfQ0KICAgICAg ICB9DQogICAgICAgIHZhciBJZSA9ICExLA0KICAgICAgICAgIExlID0gbnVsbCwNCiAgICAg ICAgICBGZSA9ICExLA0KICAgICAgICAgIEJlID0gbnVsbCwNCiAgICAgICAgICBEZSA9IHsN CiAgICAgICAgICAgIG9uRXJyb3I6IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICAgIChJ ZSA9ICEwKSwgKExlID0gZSk7DQogICAgICAgICAgICB9LA0KICAgICAgICAgIH07DQogICAg ICAgIGZ1bmN0aW9uIFVlKGUsIHQsIG4sIHIsIG8sIGEsIGksIGwsIHMpIHsNCiAgICAgICAg ICAoSWUgPSAhMSksIChMZSA9IG51bGwpLCBqZS5hcHBseShEZSwgYXJndW1lbnRzKTsNCiAg ICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBXZShlKSB7DQogICAgICAgICAgdmFyIHQgPSBl LA0KICAgICAgICAgICAgbiA9IGU7DQogICAgICAgICAgaWYgKGUuYWx0ZXJuYXRlKSBmb3Ig KDsgdC5yZXR1cm47KSB0ID0gdC5yZXR1cm47DQogICAgICAgICAgZWxzZSB7DQogICAgICAg ICAgICBlID0gdDsNCiAgICAgICAgICAgIGRvIHsNCiAgICAgICAgICAgICAgMCAhPT0gKDQw OTggJiAodCA9IGUpLmZsYWdzKSAmJiAobiA9IHQucmV0dXJuKSwgKGUgPSB0LnJldHVybik7 DQogICAgICAgICAgICB9IHdoaWxlIChlKTsNCiAgICAgICAgICB9DQogICAgICAgICAgcmV0 dXJuIDMgPT09IHQudGFnID8gbiA6IG51bGw7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rp b24gVmUoZSkgew0KICAgICAgICAgIGlmICgxMyA9PT0gZS50YWcpIHsNCiAgICAgICAgICAg IHZhciB0ID0gZS5tZW1vaXplZFN0YXRlOw0KICAgICAgICAgICAgaWYgKChudWxsID09PSB0 ICYmIG51bGwgIT09IChlID0gZS5hbHRlcm5hdGUpICYmICh0ID0gZS5tZW1vaXplZFN0YXRl KSwgbnVsbCAhPT0gdCkpIHJldHVybiB0LmRlaHlkcmF0ZWQ7DQogICAgICAgICAgfQ0KICAg ICAgICAgIHJldHVybiBudWxsOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIEhlKGUp IHsNCiAgICAgICAgICBpZiAoV2UoZSkgIT09IGUpIHRocm93IEVycm9yKGEoMTg4KSk7DQog ICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gcWUoZSkgew0KICAgICAgICAgIHJldHVybiBu dWxsICE9PQ0KICAgICAgICAgICAgKGUgPSAoZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAg ICAgdmFyIHQgPSBlLmFsdGVybmF0ZTsNCiAgICAgICAgICAgICAgaWYgKCF0KSB7DQogICAg ICAgICAgICAgICAgaWYgKG51bGwgPT09ICh0ID0gV2UoZSkpKSB0aHJvdyBFcnJvcihhKDE4 OCkpOw0KICAgICAgICAgICAgICAgIHJldHVybiB0ICE9PSBlID8gbnVsbCA6IGU7DQogICAg ICAgICAgICAgIH0NCiAgICAgICAgICAgICAgZm9yICh2YXIgbiA9IGUsIHIgPSB0OyA7KSB7 DQogICAgICAgICAgICAgICAgdmFyIG8gPSBuLnJldHVybjsNCiAgICAgICAgICAgICAgICBp ZiAobnVsbCA9PT0gbykgYnJlYWs7DQogICAgICAgICAgICAgICAgdmFyIGkgPSBvLmFsdGVy bmF0ZTsNCiAgICAgICAgICAgICAgICBpZiAobnVsbCA9PT0gaSkgew0KICAgICAgICAgICAg ICAgICAgaWYgKG51bGwgIT09IChyID0gby5yZXR1cm4pKSB7DQogICAgICAgICAgICAgICAg ICAgIG4gPSByOw0KICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsNCiAgICAgICAgICAg ICAgICAgIH0NCiAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0N CiAgICAgICAgICAgICAgICBpZiAoby5jaGlsZCA9PT0gaS5jaGlsZCkgew0KICAgICAgICAg ICAgICAgICAgZm9yIChpID0gby5jaGlsZDsgaTspIHsNCiAgICAgICAgICAgICAgICAgICAg aWYgKGkgPT09IG4pIHJldHVybiBIZShvKSwgZTsNCiAgICAgICAgICAgICAgICAgICAgaWYg KGkgPT09IHIpIHJldHVybiBIZShvKSwgdDsNCiAgICAgICAgICAgICAgICAgICAgaSA9IGku c2libGluZzsNCiAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgIHRocm93 IEVycm9yKGEoMTg4KSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGlm IChuLnJldHVybiAhPT0gci5yZXR1cm4pIChuID0gbyksIChyID0gaSk7DQogICAgICAgICAg ICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICBmb3IgKHZhciBsID0gITEsIHMgPSBv LmNoaWxkOyBzOykgew0KICAgICAgICAgICAgICAgICAgICBpZiAocyA9PT0gbikgew0KICAg ICAgICAgICAgICAgICAgICAgIChsID0gITApLCAobiA9IG8pLCAociA9IGkpOw0KICAgICAg ICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAg ICAgICAgICAgICAgIGlmIChzID09PSByKSB7DQogICAgICAgICAgICAgICAgICAgICAgKGwg PSAhMCksIChyID0gbyksIChuID0gaSk7DQogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7 DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgcyA9IHMuc2li bGluZzsNCiAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgIGlmICghbCkg ew0KICAgICAgICAgICAgICAgICAgICBmb3IgKHMgPSBpLmNoaWxkOyBzOykgew0KICAgICAg ICAgICAgICAgICAgICAgIGlmIChzID09PSBuKSB7DQogICAgICAgICAgICAgICAgICAgICAg ICAobCA9ICEwKSwgKG4gPSBpKSwgKHIgPSBvKTsNCiAgICAgICAgICAgICAgICAgICAgICAg IGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAg ICBpZiAocyA9PT0gcikgew0KICAgICAgICAgICAgICAgICAgICAgICAgKGwgPSAhMCksIChy ID0gaSksIChuID0gbyk7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAg ICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgcyA9IHMuc2libGlu ZzsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoIWwp IHRocm93IEVycm9yKGEoMTg5KSk7DQogICAgICAgICAgICAgICAgICB9DQogICAgICAgICAg ICAgICAgfQ0KICAgICAgICAgICAgICAgIGlmIChuLmFsdGVybmF0ZSAhPT0gcikgdGhyb3cg RXJyb3IoYSgxOTApKTsNCiAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICBpZiAoMyAh PT0gbi50YWcpIHRocm93IEVycm9yKGEoMTg4KSk7DQogICAgICAgICAgICAgIHJldHVybiBu LnN0YXRlTm9kZS5jdXJyZW50ID09PSBuID8gZSA6IHQ7DQogICAgICAgICAgICB9KShlKSkN CiAgICAgICAgICAgID8gJGUoZSkNCiAgICAgICAgICAgIDogbnVsbDsNCiAgICAgICAgfQ0K ICAgICAgICBmdW5jdGlvbiAkZShlKSB7DQogICAgICAgICAgaWYgKDUgPT09IGUudGFnIHx8 IDYgPT09IGUudGFnKSByZXR1cm4gZTsNCiAgICAgICAgICBmb3IgKGUgPSBlLmNoaWxkOyBu dWxsICE9PSBlOykgew0KICAgICAgICAgICAgdmFyIHQgPSAkZShlKTsNCiAgICAgICAgICAg IGlmIChudWxsICE9PSB0KSByZXR1cm4gdDsNCiAgICAgICAgICAgIGUgPSBlLnNpYmxpbmc7 DQogICAgICAgICAgfQ0KICAgICAgICAgIHJldHVybiBudWxsOw0KICAgICAgICB9DQogICAg ICAgIHZhciBLZSA9IG8udW5zdGFibGVfc2NoZWR1bGVDYWxsYmFjaywNCiAgICAgICAgICBR ZSA9IG8udW5zdGFibGVfY2FuY2VsQ2FsbGJhY2ssDQogICAgICAgICAgR2UgPSBvLnVuc3Rh YmxlX3Nob3VsZFlpZWxkLA0KICAgICAgICAgIFllID0gby51bnN0YWJsZV9yZXF1ZXN0UGFp bnQsDQogICAgICAgICAgWGUgPSBvLnVuc3RhYmxlX25vdywNCiAgICAgICAgICBaZSA9IG8u dW5zdGFibGVfZ2V0Q3VycmVudFByaW9yaXR5TGV2ZWwsDQogICAgICAgICAgSmUgPSBvLnVu c3RhYmxlX0ltbWVkaWF0ZVByaW9yaXR5LA0KICAgICAgICAgIGV0ID0gby51bnN0YWJsZV9V c2VyQmxvY2tpbmdQcmlvcml0eSwNCiAgICAgICAgICB0dCA9IG8udW5zdGFibGVfTm9ybWFs UHJpb3JpdHksDQogICAgICAgICAgbnQgPSBvLnVuc3RhYmxlX0xvd1ByaW9yaXR5LA0KICAg ICAgICAgIHJ0ID0gby51bnN0YWJsZV9JZGxlUHJpb3JpdHksDQogICAgICAgICAgb3QgPSBu dWxsLA0KICAgICAgICAgIGF0ID0gbnVsbDsNCiAgICAgICAgdmFyIGl0ID0gTWF0aC5jbHoz Mg0KICAgICAgICAgID8gTWF0aC5jbHozMg0KICAgICAgICAgIDogZnVuY3Rpb24gKGUpIHsN CiAgICAgICAgICAgIHJldHVybiAoZSA+Pj49IDApLCAwID09PSBlID8gMzIgOiAoMzEgLSAo KGx0KGUpIC8gc3QpIHwgMCkpIHwgMDsNCiAgICAgICAgICB9LA0KICAgICAgICAgIGx0ID0g TWF0aC5sb2csDQogICAgICAgICAgc3QgPSBNYXRoLkxOMjsNCiAgICAgICAgdmFyIHV0ID0g NjQsDQogICAgICAgICAgY3QgPSA0MTk0MzA0Ow0KICAgICAgICBmdW5jdGlvbiBkdChlKSB7 DQogICAgICAgICAgc3dpdGNoIChlICYgLWUpIHsNCiAgICAgICAgICAgIGNhc2UgMToNCiAg ICAgICAgICAgICAgcmV0dXJuIDE7DQogICAgICAgICAgICBjYXNlIDI6DQogICAgICAgICAg ICAgIHJldHVybiAyOw0KICAgICAgICAgICAgY2FzZSA0Og0KICAgICAgICAgICAgICByZXR1 cm4gNDsNCiAgICAgICAgICAgIGNhc2UgODoNCiAgICAgICAgICAgICAgcmV0dXJuIDg7DQog ICAgICAgICAgICBjYXNlIDE2Og0KICAgICAgICAgICAgICByZXR1cm4gMTY7DQogICAgICAg ICAgICBjYXNlIDMyOg0KICAgICAgICAgICAgICByZXR1cm4gMzI7DQogICAgICAgICAgICBj YXNlIDY0Og0KICAgICAgICAgICAgY2FzZSAxMjg6DQogICAgICAgICAgICBjYXNlIDI1NjoN CiAgICAgICAgICAgIGNhc2UgNTEyOg0KICAgICAgICAgICAgY2FzZSAxMDI0Og0KICAgICAg ICAgICAgY2FzZSAyMDQ4Og0KICAgICAgICAgICAgY2FzZSA0MDk2Og0KICAgICAgICAgICAg Y2FzZSA4MTkyOg0KICAgICAgICAgICAgY2FzZSAxNjM4NDoNCiAgICAgICAgICAgIGNhc2Ug MzI3Njg6DQogICAgICAgICAgICBjYXNlIDY1NTM2Og0KICAgICAgICAgICAgY2FzZSAxMzEw NzI6DQogICAgICAgICAgICBjYXNlIDI2MjE0NDoNCiAgICAgICAgICAgIGNhc2UgNTI0Mjg4 Og0KICAgICAgICAgICAgY2FzZSAxMDQ4NTc2Og0KICAgICAgICAgICAgY2FzZSAyMDk3MTUy Og0KICAgICAgICAgICAgICByZXR1cm4gNDE5NDI0MCAmIGU7DQogICAgICAgICAgICBjYXNl IDQxOTQzMDQ6DQogICAgICAgICAgICBjYXNlIDgzODg2MDg6DQogICAgICAgICAgICBjYXNl IDE2Nzc3MjE2Og0KICAgICAgICAgICAgY2FzZSAzMzU1NDQzMjoNCiAgICAgICAgICAgIGNh c2UgNjcxMDg4NjQ6DQogICAgICAgICAgICAgIHJldHVybiAxMzAwMjM0MjQgJiBlOw0KICAg ICAgICAgICAgY2FzZSAxMzQyMTc3Mjg6DQogICAgICAgICAgICAgIHJldHVybiAxMzQyMTc3 Mjg7DQogICAgICAgICAgICBjYXNlIDI2ODQzNTQ1NjoNCiAgICAgICAgICAgICAgcmV0dXJu IDI2ODQzNTQ1NjsNCiAgICAgICAgICAgIGNhc2UgNTM2ODcwOTEyOg0KICAgICAgICAgICAg ICByZXR1cm4gNTM2ODcwOTEyOw0KICAgICAgICAgICAgY2FzZSAxMDczNzQxODI0Og0KICAg ICAgICAgICAgICByZXR1cm4gMTA3Mzc0MTgyNDsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQog ICAgICAgICAgICAgIHJldHVybiBlOw0KICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAg ICBmdW5jdGlvbiBmdChlLCB0KSB7DQogICAgICAgICAgdmFyIG4gPSBlLnBlbmRpbmdMYW5l czsNCiAgICAgICAgICBpZiAoMCA9PT0gbikgcmV0dXJuIDA7DQogICAgICAgICAgdmFyIHIg PSAwLA0KICAgICAgICAgICAgbyA9IGUuc3VzcGVuZGVkTGFuZXMsDQogICAgICAgICAgICBh ID0gZS5waW5nZWRMYW5lcywNCiAgICAgICAgICAgIGkgPSAyNjg0MzU0NTUgJiBuOw0KICAg ICAgICAgIGlmICgwICE9PSBpKSB7DQogICAgICAgICAgICB2YXIgbCA9IGkgJiB+bzsNCiAg ICAgICAgICAgIDAgIT09IGwgPyAociA9IGR0KGwpKSA6IDAgIT09IChhICY9IGkpICYmIChy ID0gZHQoYSkpOw0KICAgICAgICAgIH0gZWxzZSAwICE9PSAoaSA9IG4gJiB+bykgPyAociA9 IGR0KGkpKSA6IDAgIT09IGEgJiYgKHIgPSBkdChhKSk7DQogICAgICAgICAgaWYgKDAgPT09 IHIpIHJldHVybiAwOw0KICAgICAgICAgIGlmICgwICE9PSB0ICYmIHQgIT09IHIgJiYgMCA9 PT0gKHQgJiBvKSAmJiAoKG8gPSByICYgLXIpID49IChhID0gdCAmIC10KSB8fCAoMTYgPT09 IG8gJiYgMCAhPT0gKDQxOTQyNDAgJiBhKSkpKSByZXR1cm4gdDsNCiAgICAgICAgICBpZiAo KDAgIT09ICg0ICYgcikgJiYgKHIgfD0gMTYgJiBuKSwgMCAhPT0gKHQgPSBlLmVudGFuZ2xl ZExhbmVzKSkpIGZvciAoZSA9IGUuZW50YW5nbGVtZW50cywgdCAmPSByOyAwIDwgdDspIChv ID0gMSA8PCAobiA9IDMxIC0gaXQodCkpKSwgKHIgfD0gZVtuXSksICh0ICY9IH5vKTsNCiAg ICAgICAgICByZXR1cm4gcjsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBwdChlLCB0 KSB7DQogICAgICAgICAgc3dpdGNoIChlKSB7DQogICAgICAgICAgICBjYXNlIDE6DQogICAg ICAgICAgICBjYXNlIDI6DQogICAgICAgICAgICBjYXNlIDQ6DQogICAgICAgICAgICAgIHJl dHVybiB0ICsgMjUwOw0KICAgICAgICAgICAgY2FzZSA4Og0KICAgICAgICAgICAgY2FzZSAx NjoNCiAgICAgICAgICAgIGNhc2UgMzI6DQogICAgICAgICAgICBjYXNlIDY0Og0KICAgICAg ICAgICAgY2FzZSAxMjg6DQogICAgICAgICAgICBjYXNlIDI1NjoNCiAgICAgICAgICAgIGNh c2UgNTEyOg0KICAgICAgICAgICAgY2FzZSAxMDI0Og0KICAgICAgICAgICAgY2FzZSAyMDQ4 Og0KICAgICAgICAgICAgY2FzZSA0MDk2Og0KICAgICAgICAgICAgY2FzZSA4MTkyOg0KICAg ICAgICAgICAgY2FzZSAxNjM4NDoNCiAgICAgICAgICAgIGNhc2UgMzI3Njg6DQogICAgICAg ICAgICBjYXNlIDY1NTM2Og0KICAgICAgICAgICAgY2FzZSAxMzEwNzI6DQogICAgICAgICAg ICBjYXNlIDI2MjE0NDoNCiAgICAgICAgICAgIGNhc2UgNTI0Mjg4Og0KICAgICAgICAgICAg Y2FzZSAxMDQ4NTc2Og0KICAgICAgICAgICAgY2FzZSAyMDk3MTUyOg0KICAgICAgICAgICAg ICByZXR1cm4gdCArIDVlMzsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAg IHJldHVybiAtMTsNCiAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24g aHQoZSkgew0KICAgICAgICAgIHJldHVybiAwICE9PSAoZSA9IC0xMDczNzQxODI1ICYgZS5w ZW5kaW5nTGFuZXMpID8gZSA6IDEwNzM3NDE4MjQgJiBlID8gMTA3Mzc0MTgyNCA6IDA7DQog ICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gbXQoKSB7DQogICAgICAgICAgdmFyIGUgPSB1 dDsNCiAgICAgICAgICByZXR1cm4gMCA9PT0gKDQxOTQyNDAgJiAodXQgPDw9IDEpKSAmJiAo dXQgPSA2NCksIGU7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gZ3QoZSkgew0KICAg ICAgICAgIGZvciAodmFyIHQgPSBbXSwgbiA9IDA7IDMxID4gbjsgbisrKSB0LnB1c2goZSk7 DQogICAgICAgICAgcmV0dXJuIHQ7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gdnQo ZSwgdCwgbikgew0KICAgICAgICAgIChlLnBlbmRpbmdMYW5lcyB8PSB0KSwgNTM2ODcwOTEy ICE9PSB0ICYmICgoZS5zdXNwZW5kZWRMYW5lcyA9IDApLCAoZS5waW5nZWRMYW5lcyA9IDAp KSwgKChlID0gZS5ldmVudFRpbWVzKVsodCA9IDMxIC0gaXQodCkpXSA9IG4pOw0KICAgICAg ICB9DQogICAgICAgIGZ1bmN0aW9uIHl0KGUsIHQpIHsNCiAgICAgICAgICB2YXIgbiA9IChl LmVudGFuZ2xlZExhbmVzIHw9IHQpOw0KICAgICAgICAgIGZvciAoZSA9IGUuZW50YW5nbGVt ZW50czsgbjspIHsNCiAgICAgICAgICAgIHZhciByID0gMzEgLSBpdChuKSwNCiAgICAgICAg ICAgICAgbyA9IDEgPDwgcjsNCiAgICAgICAgICAgIChvICYgdCkgfCAoZVtyXSAmIHQpICYm IChlW3JdIHw9IHQpLCAobiAmPSB+byk7DQogICAgICAgICAgfQ0KICAgICAgICB9DQogICAg ICAgIHZhciBidCA9IDA7DQogICAgICAgIGZ1bmN0aW9uIHd0KGUpIHsNCiAgICAgICAgICBy ZXR1cm4gMSA8IChlICY9IC1lKSA/ICg0IDwgZSA/ICgwICE9PSAoMjY4NDM1NDU1ICYgZSkg PyAxNiA6IDUzNjg3MDkxMikgOiA0KSA6IDE7DQogICAgICAgIH0NCiAgICAgICAgdmFyIHh0 LA0KICAgICAgICAgIFN0LA0KICAgICAgICAgIGt0LA0KICAgICAgICAgIEV0LA0KICAgICAg ICAgIEN0LA0KICAgICAgICAgIFJ0ID0gITEsDQogICAgICAgICAgX3QgPSBbXSwNCiAgICAg ICAgICBQdCA9IG51bGwsDQogICAgICAgICAgT3QgPSBudWxsLA0KICAgICAgICAgIE50ID0g bnVsbCwNCiAgICAgICAgICBUdCA9IG5ldyBNYXAoKSwNCiAgICAgICAgICBBdCA9IG5ldyBN YXAoKSwNCiAgICAgICAgICBNdCA9IFtdLA0KICAgICAgICAgIHp0ID0gIm1vdXNlZG93biBt b3VzZXVwIHRvdWNoY2FuY2VsIHRvdWNoZW5kIHRvdWNoc3RhcnQgYXV4Y2xpY2sgZGJsY2xp Y2sgcG9pbnRlcmNhbmNlbCBwb2ludGVyZG93biBwb2ludGVydXAgZHJhZ2VuZCBkcmFnc3Rh cnQgZHJvcCBjb21wb3NpdGlvbmVuZCBjb21wb3NpdGlvbnN0YXJ0IGtleWRvd24ga2V5cHJl c3Mga2V5dXAgaW5wdXQgdGV4dElucHV0IGNvcHkgY3V0IHBhc3RlIGNsaWNrIGNoYW5nZSBj b250ZXh0bWVudSByZXNldCBzdWJtaXQiLnNwbGl0KA0KICAgICAgICAgICAgIiAiDQogICAg ICAgICAgKTsNCiAgICAgICAgZnVuY3Rpb24ganQoZSwgdCkgew0KICAgICAgICAgIHN3aXRj aCAoZSkgew0KICAgICAgICAgICAgY2FzZSAiZm9jdXNpbiI6DQogICAgICAgICAgICBjYXNl ICJmb2N1c291dCI6DQogICAgICAgICAgICAgIFB0ID0gbnVsbDsNCiAgICAgICAgICAgICAg YnJlYWs7DQogICAgICAgICAgICBjYXNlICJkcmFnZW50ZXIiOg0KICAgICAgICAgICAgY2Fz ZSAiZHJhZ2xlYXZlIjoNCiAgICAgICAgICAgICAgT3QgPSBudWxsOw0KICAgICAgICAgICAg ICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIm1vdXNlb3ZlciI6DQogICAgICAgICAgICBj YXNlICJtb3VzZW91dCI6DQogICAgICAgICAgICAgIE50ID0gbnVsbDsNCiAgICAgICAgICAg ICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJwb2ludGVyb3ZlciI6DQogICAgICAgICAg ICBjYXNlICJwb2ludGVyb3V0IjoNCiAgICAgICAgICAgICAgVHQuZGVsZXRlKHQucG9pbnRl cklkKTsNCiAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJnb3Rwb2lu dGVyY2FwdHVyZSI6DQogICAgICAgICAgICBjYXNlICJsb3N0cG9pbnRlcmNhcHR1cmUiOg0K ICAgICAgICAgICAgICBBdC5kZWxldGUodC5wb2ludGVySWQpOw0KICAgICAgICAgIH0NCiAg ICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBJdChlLCB0LCBuLCByLCBvLCBhKSB7DQogICAg ICAgICAgcmV0dXJuIG51bGwgPT09IGUgfHwgZS5uYXRpdmVFdmVudCAhPT0gYQ0KICAgICAg ICAgICAgPyAoKGUgPSB7IGJsb2NrZWRPbjogdCwgZG9tRXZlbnROYW1lOiBuLCBldmVudFN5 c3RlbUZsYWdzOiByLCBuYXRpdmVFdmVudDogYSwgdGFyZ2V0Q29udGFpbmVyczogW29dIH0p LCBudWxsICE9PSB0ICYmIG51bGwgIT09ICh0ID0gd28odCkpICYmIFN0KHQpLCBlKQ0KICAg ICAgICAgICAgOiAoKGUuZXZlbnRTeXN0ZW1GbGFncyB8PSByKSwgKHQgPSBlLnRhcmdldENv bnRhaW5lcnMpLCBudWxsICE9PSBvICYmIC0xID09PSB0LmluZGV4T2YobykgJiYgdC5wdXNo KG8pLCBlKTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBMdChlKSB7DQogICAgICAg ICAgdmFyIHQgPSBibyhlLnRhcmdldCk7DQogICAgICAgICAgaWYgKG51bGwgIT09IHQpIHsN CiAgICAgICAgICAgIHZhciBuID0gV2UodCk7DQogICAgICAgICAgICBpZiAobnVsbCAhPT0g bikNCiAgICAgICAgICAgICAgaWYgKDEzID09PSAodCA9IG4udGFnKSkgew0KICAgICAgICAg ICAgICAgIGlmIChudWxsICE9PSAodCA9IFZlKG4pKSkNCiAgICAgICAgICAgICAgICAgIHJl dHVybiAoDQogICAgICAgICAgICAgICAgICAgIChlLmJsb2NrZWRPbiA9IHQpLA0KICAgICAg ICAgICAgICAgICAgICB2b2lkIEN0KGUucHJpb3JpdHksIGZ1bmN0aW9uICgpIHsNCiAgICAg ICAgICAgICAgICAgICAgICBrdChuKTsNCiAgICAgICAgICAgICAgICAgICAgfSkNCiAgICAg ICAgICAgICAgICAgICk7DQogICAgICAgICAgICAgIH0gZWxzZSBpZiAoMyA9PT0gdCAmJiBu LnN0YXRlTm9kZS5jdXJyZW50Lm1lbW9pemVkU3RhdGUuaXNEZWh5ZHJhdGVkKSByZXR1cm4g dm9pZCAoZS5ibG9ja2VkT24gPSAzID09PSBuLnRhZyA/IG4uc3RhdGVOb2RlLmNvbnRhaW5l ckluZm8gOiBudWxsKTsNCiAgICAgICAgICB9DQogICAgICAgICAgZS5ibG9ja2VkT24gPSBu dWxsOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIEZ0KGUpIHsNCiAgICAgICAgICBp ZiAobnVsbCAhPT0gZS5ibG9ja2VkT24pIHJldHVybiAhMTsNCiAgICAgICAgICBmb3IgKHZh ciB0ID0gZS50YXJnZXRDb250YWluZXJzOyAwIDwgdC5sZW5ndGg7KSB7DQogICAgICAgICAg ICB2YXIgbiA9IEd0KGUuZG9tRXZlbnROYW1lLCBlLmV2ZW50U3lzdGVtRmxhZ3MsIHRbMF0s IGUubmF0aXZlRXZlbnQpOw0KICAgICAgICAgICAgaWYgKG51bGwgIT09IG4pIHJldHVybiBu dWxsICE9PSAodCA9IHdvKG4pKSAmJiBTdCh0KSwgKGUuYmxvY2tlZE9uID0gbiksICExOw0K ICAgICAgICAgICAgdmFyIHIgPSBuZXcgKG4gPSBlLm5hdGl2ZUV2ZW50KS5jb25zdHJ1Y3Rv cihuLnR5cGUsIG4pOw0KICAgICAgICAgICAgKHdlID0gciksIG4udGFyZ2V0LmRpc3BhdGNo RXZlbnQociksICh3ZSA9IG51bGwpLCB0LnNoaWZ0KCk7DQogICAgICAgICAgfQ0KICAgICAg ICAgIHJldHVybiAhMDsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBCdChlLCB0LCBu KSB7DQogICAgICAgICAgRnQoZSkgJiYgbi5kZWxldGUodCk7DQogICAgICAgIH0NCiAgICAg ICAgZnVuY3Rpb24gRHQoKSB7DQogICAgICAgICAgKFJ0ID0gITEpLCBudWxsICE9PSBQdCAm JiBGdChQdCkgJiYgKFB0ID0gbnVsbCksIG51bGwgIT09IE90ICYmIEZ0KE90KSAmJiAoT3Qg PSBudWxsKSwgbnVsbCAhPT0gTnQgJiYgRnQoTnQpICYmIChOdCA9IG51bGwpLCBUdC5mb3JF YWNoKEJ0KSwgQXQuZm9yRWFjaChCdCk7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24g VXQoZSwgdCkgew0KICAgICAgICAgIGUuYmxvY2tlZE9uID09PSB0ICYmICgoZS5ibG9ja2Vk T24gPSBudWxsKSwgUnQgfHwgKChSdCA9ICEwKSwgby51bnN0YWJsZV9zY2hlZHVsZUNhbGxi YWNrKG8udW5zdGFibGVfTm9ybWFsUHJpb3JpdHksIER0KSkpOw0KICAgICAgICB9DQogICAg ICAgIGZ1bmN0aW9uIFd0KGUpIHsNCiAgICAgICAgICBmdW5jdGlvbiB0KHQpIHsNCiAgICAg ICAgICAgIHJldHVybiBVdCh0LCBlKTsNCiAgICAgICAgICB9DQogICAgICAgICAgaWYgKDAg PCBfdC5sZW5ndGgpIHsNCiAgICAgICAgICAgIFV0KF90WzBdLCBlKTsNCiAgICAgICAgICAg IGZvciAodmFyIG4gPSAxOyBuIDwgX3QubGVuZ3RoOyBuKyspIHsNCiAgICAgICAgICAgICAg dmFyIHIgPSBfdFtuXTsNCiAgICAgICAgICAgICAgci5ibG9ja2VkT24gPT09IGUgJiYgKHIu YmxvY2tlZE9uID0gbnVsbCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgfQ0KICAgICAg ICAgIGZvciAobnVsbCAhPT0gUHQgJiYgVXQoUHQsIGUpLCBudWxsICE9PSBPdCAmJiBVdChP dCwgZSksIG51bGwgIT09IE50ICYmIFV0KE50LCBlKSwgVHQuZm9yRWFjaCh0KSwgQXQuZm9y RWFjaCh0KSwgbiA9IDA7IG4gPCBNdC5sZW5ndGg7IG4rKykgKHIgPSBNdFtuXSkuYmxvY2tl ZE9uID09PSBlICYmIChyLmJsb2NrZWRPbiA9IG51bGwpOw0KICAgICAgICAgIGZvciAoOyAw IDwgTXQubGVuZ3RoICYmIG51bGwgPT09IChuID0gTXRbMF0pLmJsb2NrZWRPbjspIEx0KG4p LCBudWxsID09PSBuLmJsb2NrZWRPbiAmJiBNdC5zaGlmdCgpOw0KICAgICAgICB9DQogICAg ICAgIHZhciBWdCA9IHcuUmVhY3RDdXJyZW50QmF0Y2hDb25maWcsDQogICAgICAgICAgSHQg PSAhMDsNCiAgICAgICAgZnVuY3Rpb24gcXQoZSwgdCwgbiwgcikgew0KICAgICAgICAgIHZh ciBvID0gYnQsDQogICAgICAgICAgICBhID0gVnQudHJhbnNpdGlvbjsNCiAgICAgICAgICBW dC50cmFuc2l0aW9uID0gbnVsbDsNCiAgICAgICAgICB0cnkgew0KICAgICAgICAgICAgKGJ0 ID0gMSksIEt0KGUsIHQsIG4sIHIpOw0KICAgICAgICAgIH0gZmluYWxseSB7DQogICAgICAg ICAgICAoYnQgPSBvKSwgKFZ0LnRyYW5zaXRpb24gPSBhKTsNCiAgICAgICAgICB9DQogICAg ICAgIH0NCiAgICAgICAgZnVuY3Rpb24gJHQoZSwgdCwgbiwgcikgew0KICAgICAgICAgIHZh ciBvID0gYnQsDQogICAgICAgICAgICBhID0gVnQudHJhbnNpdGlvbjsNCiAgICAgICAgICBW dC50cmFuc2l0aW9uID0gbnVsbDsNCiAgICAgICAgICB0cnkgew0KICAgICAgICAgICAgKGJ0 ID0gNCksIEt0KGUsIHQsIG4sIHIpOw0KICAgICAgICAgIH0gZmluYWxseSB7DQogICAgICAg ICAgICAoYnQgPSBvKSwgKFZ0LnRyYW5zaXRpb24gPSBhKTsNCiAgICAgICAgICB9DQogICAg ICAgIH0NCiAgICAgICAgZnVuY3Rpb24gS3QoZSwgdCwgbiwgcikgew0KICAgICAgICAgIGlm IChIdCkgew0KICAgICAgICAgICAgdmFyIG8gPSBHdChlLCB0LCBuLCByKTsNCiAgICAgICAg ICAgIGlmIChudWxsID09PSBvKSBIcihlLCB0LCByLCBRdCwgbiksIGp0KGUsIHIpOw0KICAg ICAgICAgICAgZWxzZSBpZiAoDQogICAgICAgICAgICAgIChmdW5jdGlvbiAoZSwgdCwgbiwg ciwgbykgew0KICAgICAgICAgICAgICAgIHN3aXRjaCAodCkgew0KICAgICAgICAgICAgICAg ICAgY2FzZSAiZm9jdXNpbiI6DQogICAgICAgICAgICAgICAgICAgIHJldHVybiAoUHQgPSBJ dChQdCwgZSwgdCwgbiwgciwgbykpLCAhMDsNCiAgICAgICAgICAgICAgICAgIGNhc2UgImRy YWdlbnRlciI6DQogICAgICAgICAgICAgICAgICAgIHJldHVybiAoT3QgPSBJdChPdCwgZSwg dCwgbiwgciwgbykpLCAhMDsNCiAgICAgICAgICAgICAgICAgIGNhc2UgIm1vdXNlb3ZlciI6 DQogICAgICAgICAgICAgICAgICAgIHJldHVybiAoTnQgPSBJdChOdCwgZSwgdCwgbiwgciwg bykpLCAhMDsNCiAgICAgICAgICAgICAgICAgIGNhc2UgInBvaW50ZXJvdmVyIjoNCiAgICAg ICAgICAgICAgICAgICAgdmFyIGEgPSBvLnBvaW50ZXJJZDsNCiAgICAgICAgICAgICAgICAg ICAgcmV0dXJuIFR0LnNldChhLCBJdChUdC5nZXQoYSkgfHwgbnVsbCwgZSwgdCwgbiwgciwg bykpLCAhMDsNCiAgICAgICAgICAgICAgICAgIGNhc2UgImdvdHBvaW50ZXJjYXB0dXJlIjoN CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChhID0gby5wb2ludGVySWQpLCBBdC5zZXQo YSwgSXQoQXQuZ2V0KGEpIHx8IG51bGwsIGUsIHQsIG4sIHIsIG8pKSwgITA7DQogICAgICAg ICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHJldHVybiAhMTsNCiAgICAgICAgICAgICAg fSkobywgZSwgdCwgbiwgcikNCiAgICAgICAgICAgICkNCiAgICAgICAgICAgICAgci5zdG9w UHJvcGFnYXRpb24oKTsNCiAgICAgICAgICAgIGVsc2UgaWYgKChqdChlLCByKSwgNCAmIHQg JiYgLTEgPCB6dC5pbmRleE9mKGUpKSkgew0KICAgICAgICAgICAgICBmb3IgKDsgbnVsbCAh PT0gbzspIHsNCiAgICAgICAgICAgICAgICB2YXIgYSA9IHdvKG8pOw0KICAgICAgICAgICAg ICAgIGlmICgobnVsbCAhPT0gYSAmJiB4dChhKSwgbnVsbCA9PT0gKGEgPSBHdChlLCB0LCBu LCByKSkgJiYgSHIoZSwgdCwgciwgUXQsIG4pLCBhID09PSBvKSkgYnJlYWs7DQogICAgICAg ICAgICAgICAgbyA9IGE7DQogICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgbnVsbCAh PT0gbyAmJiByLnN0b3BQcm9wYWdhdGlvbigpOw0KICAgICAgICAgICAgfSBlbHNlIEhyKGUs IHQsIHIsIG51bGwsIG4pOw0KICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICB2YXIg UXQgPSBudWxsOw0KICAgICAgICBmdW5jdGlvbiBHdChlLCB0LCBuLCByKSB7DQogICAgICAg ICAgaWYgKCgoUXQgPSBudWxsKSwgbnVsbCAhPT0gKGUgPSBibygoZSA9IHhlKHIpKSkpKSkN CiAgICAgICAgICAgIGlmIChudWxsID09PSAodCA9IFdlKGUpKSkgZSA9IG51bGw7DQogICAg ICAgICAgICBlbHNlIGlmICgxMyA9PT0gKG4gPSB0LnRhZykpIHsNCiAgICAgICAgICAgICAg aWYgKG51bGwgIT09IChlID0gVmUodCkpKSByZXR1cm4gZTsNCiAgICAgICAgICAgICAgZSA9 IG51bGw7DQogICAgICAgICAgICB9IGVsc2UgaWYgKDMgPT09IG4pIHsNCiAgICAgICAgICAg ICAgaWYgKHQuc3RhdGVOb2RlLmN1cnJlbnQubWVtb2l6ZWRTdGF0ZS5pc0RlaHlkcmF0ZWQp IHJldHVybiAzID09PSB0LnRhZyA/IHQuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8gOiBudWxs Ow0KICAgICAgICAgICAgICBlID0gbnVsbDsNCiAgICAgICAgICAgIH0gZWxzZSB0ICE9PSBl ICYmIChlID0gbnVsbCk7DQogICAgICAgICAgcmV0dXJuIChRdCA9IGUpLCBudWxsOw0KICAg ICAgICB9DQogICAgICAgIGZ1bmN0aW9uIFl0KGUpIHsNCiAgICAgICAgICBzd2l0Y2ggKGUp IHsNCiAgICAgICAgICAgIGNhc2UgImNhbmNlbCI6DQogICAgICAgICAgICBjYXNlICJjbGlj ayI6DQogICAgICAgICAgICBjYXNlICJjbG9zZSI6DQogICAgICAgICAgICBjYXNlICJjb250 ZXh0bWVudSI6DQogICAgICAgICAgICBjYXNlICJjb3B5IjoNCiAgICAgICAgICAgIGNhc2Ug ImN1dCI6DQogICAgICAgICAgICBjYXNlICJhdXhjbGljayI6DQogICAgICAgICAgICBjYXNl ICJkYmxjbGljayI6DQogICAgICAgICAgICBjYXNlICJkcmFnZW5kIjoNCiAgICAgICAgICAg IGNhc2UgImRyYWdzdGFydCI6DQogICAgICAgICAgICBjYXNlICJkcm9wIjoNCiAgICAgICAg ICAgIGNhc2UgImZvY3VzaW4iOg0KICAgICAgICAgICAgY2FzZSAiZm9jdXNvdXQiOg0KICAg ICAgICAgICAgY2FzZSAiaW5wdXQiOg0KICAgICAgICAgICAgY2FzZSAiaW52YWxpZCI6DQog ICAgICAgICAgICBjYXNlICJrZXlkb3duIjoNCiAgICAgICAgICAgIGNhc2UgImtleXByZXNz IjoNCiAgICAgICAgICAgIGNhc2UgImtleXVwIjoNCiAgICAgICAgICAgIGNhc2UgIm1vdXNl ZG93biI6DQogICAgICAgICAgICBjYXNlICJtb3VzZXVwIjoNCiAgICAgICAgICAgIGNhc2Ug InBhc3RlIjoNCiAgICAgICAgICAgIGNhc2UgInBhdXNlIjoNCiAgICAgICAgICAgIGNhc2Ug InBsYXkiOg0KICAgICAgICAgICAgY2FzZSAicG9pbnRlcmNhbmNlbCI6DQogICAgICAgICAg ICBjYXNlICJwb2ludGVyZG93biI6DQogICAgICAgICAgICBjYXNlICJwb2ludGVydXAiOg0K ICAgICAgICAgICAgY2FzZSAicmF0ZWNoYW5nZSI6DQogICAgICAgICAgICBjYXNlICJyZXNl dCI6DQogICAgICAgICAgICBjYXNlICJyZXNpemUiOg0KICAgICAgICAgICAgY2FzZSAic2Vl a2VkIjoNCiAgICAgICAgICAgIGNhc2UgInN1Ym1pdCI6DQogICAgICAgICAgICBjYXNlICJ0 b3VjaGNhbmNlbCI6DQogICAgICAgICAgICBjYXNlICJ0b3VjaGVuZCI6DQogICAgICAgICAg ICBjYXNlICJ0b3VjaHN0YXJ0IjoNCiAgICAgICAgICAgIGNhc2UgInZvbHVtZWNoYW5nZSI6 DQogICAgICAgICAgICBjYXNlICJjaGFuZ2UiOg0KICAgICAgICAgICAgY2FzZSAic2VsZWN0 aW9uY2hhbmdlIjoNCiAgICAgICAgICAgIGNhc2UgInRleHRJbnB1dCI6DQogICAgICAgICAg ICBjYXNlICJjb21wb3NpdGlvbnN0YXJ0IjoNCiAgICAgICAgICAgIGNhc2UgImNvbXBvc2l0 aW9uZW5kIjoNCiAgICAgICAgICAgIGNhc2UgImNvbXBvc2l0aW9udXBkYXRlIjoNCiAgICAg ICAgICAgIGNhc2UgImJlZm9yZWJsdXIiOg0KICAgICAgICAgICAgY2FzZSAiYWZ0ZXJibHVy IjoNCiAgICAgICAgICAgIGNhc2UgImJlZm9yZWlucHV0IjoNCiAgICAgICAgICAgIGNhc2Ug ImJsdXIiOg0KICAgICAgICAgICAgY2FzZSAiZnVsbHNjcmVlbmNoYW5nZSI6DQogICAgICAg ICAgICBjYXNlICJmb2N1cyI6DQogICAgICAgICAgICBjYXNlICJoYXNoY2hhbmdlIjoNCiAg ICAgICAgICAgIGNhc2UgInBvcHN0YXRlIjoNCiAgICAgICAgICAgIGNhc2UgInNlbGVjdCI6 DQogICAgICAgICAgICBjYXNlICJzZWxlY3RzdGFydCI6DQogICAgICAgICAgICAgIHJldHVy biAxOw0KICAgICAgICAgICAgY2FzZSAiZHJhZyI6DQogICAgICAgICAgICBjYXNlICJkcmFn ZW50ZXIiOg0KICAgICAgICAgICAgY2FzZSAiZHJhZ2V4aXQiOg0KICAgICAgICAgICAgY2Fz ZSAiZHJhZ2xlYXZlIjoNCiAgICAgICAgICAgIGNhc2UgImRyYWdvdmVyIjoNCiAgICAgICAg ICAgIGNhc2UgIm1vdXNlbW92ZSI6DQogICAgICAgICAgICBjYXNlICJtb3VzZW91dCI6DQog ICAgICAgICAgICBjYXNlICJtb3VzZW92ZXIiOg0KICAgICAgICAgICAgY2FzZSAicG9pbnRl cm1vdmUiOg0KICAgICAgICAgICAgY2FzZSAicG9pbnRlcm91dCI6DQogICAgICAgICAgICBj YXNlICJwb2ludGVyb3ZlciI6DQogICAgICAgICAgICBjYXNlICJzY3JvbGwiOg0KICAgICAg ICAgICAgY2FzZSAidG9nZ2xlIjoNCiAgICAgICAgICAgIGNhc2UgInRvdWNobW92ZSI6DQog ICAgICAgICAgICBjYXNlICJ3aGVlbCI6DQogICAgICAgICAgICBjYXNlICJtb3VzZWVudGVy IjoNCiAgICAgICAgICAgIGNhc2UgIm1vdXNlbGVhdmUiOg0KICAgICAgICAgICAgY2FzZSAi cG9pbnRlcmVudGVyIjoNCiAgICAgICAgICAgIGNhc2UgInBvaW50ZXJsZWF2ZSI6DQogICAg ICAgICAgICAgIHJldHVybiA0Ow0KICAgICAgICAgICAgY2FzZSAibWVzc2FnZSI6DQogICAg ICAgICAgICAgIHN3aXRjaCAoWmUoKSkgew0KICAgICAgICAgICAgICAgIGNhc2UgSmU6DQog ICAgICAgICAgICAgICAgICByZXR1cm4gMTsNCiAgICAgICAgICAgICAgICBjYXNlIGV0Og0K ICAgICAgICAgICAgICAgICAgcmV0dXJuIDQ7DQogICAgICAgICAgICAgICAgY2FzZSB0dDoN CiAgICAgICAgICAgICAgICBjYXNlIG50Og0KICAgICAgICAgICAgICAgICAgcmV0dXJuIDE2 Ow0KICAgICAgICAgICAgICAgIGNhc2UgcnQ6DQogICAgICAgICAgICAgICAgICByZXR1cm4g NTM2ODcwOTEyOw0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAg ICByZXR1cm4gMTY7DQogICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRlZmF1bHQ6DQog ICAgICAgICAgICAgIHJldHVybiAxNjsNCiAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAg ICAgdmFyIFh0ID0gbnVsbCwNCiAgICAgICAgICBadCA9IG51bGwsDQogICAgICAgICAgSnQg PSBudWxsOw0KICAgICAgICBmdW5jdGlvbiBlbigpIHsNCiAgICAgICAgICBpZiAoSnQpIHJl dHVybiBKdDsNCiAgICAgICAgICB2YXIgZSwNCiAgICAgICAgICAgIHQsDQogICAgICAgICAg ICBuID0gWnQsDQogICAgICAgICAgICByID0gbi5sZW5ndGgsDQogICAgICAgICAgICBvID0g InZhbHVlIiBpbiBYdCA/IFh0LnZhbHVlIDogWHQudGV4dENvbnRlbnQsDQogICAgICAgICAg ICBhID0gby5sZW5ndGg7DQogICAgICAgICAgZm9yIChlID0gMDsgZSA8IHIgJiYgbltlXSA9 PT0gb1tlXTsgZSsrKTsNCiAgICAgICAgICB2YXIgaSA9IHIgLSBlOw0KICAgICAgICAgIGZv ciAodCA9IDE7IHQgPD0gaSAmJiBuW3IgLSB0XSA9PT0gb1thIC0gdF07IHQrKyk7DQogICAg ICAgICAgcmV0dXJuIChKdCA9IG8uc2xpY2UoZSwgMSA8IHQgPyAxIC0gdCA6IHZvaWQgMCkp Ow0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIHRuKGUpIHsNCiAgICAgICAgICB2YXIg dCA9IGUua2V5Q29kZTsNCiAgICAgICAgICByZXR1cm4gImNoYXJDb2RlIiBpbiBlID8gMCA9 PT0gKGUgPSBlLmNoYXJDb2RlKSAmJiAxMyA9PT0gdCAmJiAoZSA9IDEzKSA6IChlID0gdCks IDEwID09PSBlICYmIChlID0gMTMpLCAzMiA8PSBlIHx8IDEzID09PSBlID8gZSA6IDA7DQog ICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gbm4oKSB7DQogICAgICAgICAgcmV0dXJuICEw Ow0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIHJuKCkgew0KICAgICAgICAgIHJldHVy biAhMTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBvbihlKSB7DQogICAgICAgICAg ZnVuY3Rpb24gdCh0LCBuLCByLCBvLCBhKSB7DQogICAgICAgICAgICBmb3IgKHZhciBpIGlu ICgodGhpcy5fcmVhY3ROYW1lID0gdCksICh0aGlzLl90YXJnZXRJbnN0ID0gciksICh0aGlz LnR5cGUgPSBuKSwgKHRoaXMubmF0aXZlRXZlbnQgPSBvKSwgKHRoaXMudGFyZ2V0ID0gYSks ICh0aGlzLmN1cnJlbnRUYXJnZXQgPSBudWxsKSwgZSkpDQogICAgICAgICAgICAgIGUuaGFz T3duUHJvcGVydHkoaSkgJiYgKCh0ID0gZVtpXSksICh0aGlzW2ldID0gdCA/IHQobykgOiBv W2ldKSk7DQogICAgICAgICAgICByZXR1cm4gKHRoaXMuaXNEZWZhdWx0UHJldmVudGVkID0g KG51bGwgIT0gby5kZWZhdWx0UHJldmVudGVkID8gby5kZWZhdWx0UHJldmVudGVkIDogITEg PT09IG8ucmV0dXJuVmFsdWUpID8gbm4gOiBybiksICh0aGlzLmlzUHJvcGFnYXRpb25TdG9w cGVkID0gcm4pLCB0aGlzOw0KICAgICAgICAgIH0NCiAgICAgICAgICByZXR1cm4gKA0KICAg ICAgICAgICAgTCh0LnByb3RvdHlwZSwgew0KICAgICAgICAgICAgICBwcmV2ZW50RGVmYXVs dDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHRoaXMuZGVmYXVsdFByZXZlbnRl ZCA9ICEwOw0KICAgICAgICAgICAgICAgIHZhciBlID0gdGhpcy5uYXRpdmVFdmVudDsNCiAg ICAgICAgICAgICAgICBlICYmIChlLnByZXZlbnREZWZhdWx0ID8gZS5wcmV2ZW50RGVmYXVs dCgpIDogInVua25vd24iICE9PSB0eXBlb2YgZS5yZXR1cm5WYWx1ZSAmJiAoZS5yZXR1cm5W YWx1ZSA9ICExKSwgKHRoaXMuaXNEZWZhdWx0UHJldmVudGVkID0gbm4pKTsNCiAgICAgICAg ICAgICAgfSwNCiAgICAgICAgICAgICAgc3RvcFByb3BhZ2F0aW9uOiBmdW5jdGlvbiAoKSB7 DQogICAgICAgICAgICAgICAgdmFyIGUgPSB0aGlzLm5hdGl2ZUV2ZW50Ow0KICAgICAgICAg ICAgICAgIGUgJiYgKGUuc3RvcFByb3BhZ2F0aW9uID8gZS5zdG9wUHJvcGFnYXRpb24oKSA6 ICJ1bmtub3duIiAhPT0gdHlwZW9mIGUuY2FuY2VsQnViYmxlICYmIChlLmNhbmNlbEJ1YmJs ZSA9ICEwKSwgKHRoaXMuaXNQcm9wYWdhdGlvblN0b3BwZWQgPSBubikpOw0KICAgICAgICAg ICAgICB9LA0KICAgICAgICAgICAgICBwZXJzaXN0OiBmdW5jdGlvbiAoKSB7IH0sDQogICAg ICAgICAgICAgIGlzUGVyc2lzdGVudDogbm4sDQogICAgICAgICAgICB9KSwNCiAgICAgICAg ICAgIHQNCiAgICAgICAgICApOw0KICAgICAgICB9DQogICAgICAgIHZhciBhbiwNCiAgICAg ICAgICBsbiwNCiAgICAgICAgICBzbiwNCiAgICAgICAgICB1biA9IHsNCiAgICAgICAgICAg IGV2ZW50UGhhc2U6IDAsDQogICAgICAgICAgICBidWJibGVzOiAwLA0KICAgICAgICAgICAg Y2FuY2VsYWJsZTogMCwNCiAgICAgICAgICAgIHRpbWVTdGFtcDogZnVuY3Rpb24gKGUpIHsN CiAgICAgICAgICAgICAgcmV0dXJuIGUudGltZVN0YW1wIHx8IERhdGUubm93KCk7DQogICAg ICAgICAgICB9LA0KICAgICAgICAgICAgZGVmYXVsdFByZXZlbnRlZDogMCwNCiAgICAgICAg ICAgIGlzVHJ1c3RlZDogMCwNCiAgICAgICAgICB9LA0KICAgICAgICAgIGNuID0gb24odW4p LA0KICAgICAgICAgIGRuID0gTCh7fSwgdW4sIHsgdmlldzogMCwgZGV0YWlsOiAwIH0pLA0K ICAgICAgICAgIGZuID0gb24oZG4pLA0KICAgICAgICAgIHBuID0gTCh7fSwgZG4sIHsNCiAg ICAgICAgICAgIHNjcmVlblg6IDAsDQogICAgICAgICAgICBzY3JlZW5ZOiAwLA0KICAgICAg ICAgICAgY2xpZW50WDogMCwNCiAgICAgICAgICAgIGNsaWVudFk6IDAsDQogICAgICAgICAg ICBwYWdlWDogMCwNCiAgICAgICAgICAgIHBhZ2VZOiAwLA0KICAgICAgICAgICAgY3RybEtl eTogMCwNCiAgICAgICAgICAgIHNoaWZ0S2V5OiAwLA0KICAgICAgICAgICAgYWx0S2V5OiAw LA0KICAgICAgICAgICAgbWV0YUtleTogMCwNCiAgICAgICAgICAgIGdldE1vZGlmaWVyU3Rh dGU6IENuLA0KICAgICAgICAgICAgYnV0dG9uOiAwLA0KICAgICAgICAgICAgYnV0dG9uczog MCwNCiAgICAgICAgICAgIHJlbGF0ZWRUYXJnZXQ6IGZ1bmN0aW9uIChlKSB7DQogICAgICAg ICAgICAgIHJldHVybiB2b2lkIDAgPT09IGUucmVsYXRlZFRhcmdldCA/IChlLmZyb21FbGVt ZW50ID09PSBlLnNyY0VsZW1lbnQgPyBlLnRvRWxlbWVudCA6IGUuZnJvbUVsZW1lbnQpIDog ZS5yZWxhdGVkVGFyZ2V0Ow0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIG1vdmVtZW50 WDogZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgICAgcmV0dXJuICJtb3ZlbWVudFgiIGlu IGUgPyBlLm1vdmVtZW50WCA6IChlICE9PSBzbiAmJiAoc24gJiYgIm1vdXNlbW92ZSIgPT09 IGUudHlwZSA/ICgoYW4gPSBlLnNjcmVlblggLSBzbi5zY3JlZW5YKSwgKGxuID0gZS5zY3Jl ZW5ZIC0gc24uc2NyZWVuWSkpIDogKGxuID0gYW4gPSAwKSwgKHNuID0gZSkpLCBhbik7DQog ICAgICAgICAgICB9LA0KICAgICAgICAgICAgbW92ZW1lbnRZOiBmdW5jdGlvbiAoZSkgew0K ICAgICAgICAgICAgICByZXR1cm4gIm1vdmVtZW50WSIgaW4gZSA/IGUubW92ZW1lbnRZIDog bG47DQogICAgICAgICAgICB9LA0KICAgICAgICAgIH0pLA0KICAgICAgICAgIGhuID0gb24o cG4pLA0KICAgICAgICAgIG1uID0gb24oTCh7fSwgcG4sIHsgZGF0YVRyYW5zZmVyOiAwIH0p KSwNCiAgICAgICAgICBnbiA9IG9uKEwoe30sIGRuLCB7IHJlbGF0ZWRUYXJnZXQ6IDAgfSkp LA0KICAgICAgICAgIHZuID0gb24oTCh7fSwgdW4sIHsgYW5pbWF0aW9uTmFtZTogMCwgZWxh cHNlZFRpbWU6IDAsIHBzZXVkb0VsZW1lbnQ6IDAgfSkpLA0KICAgICAgICAgIHluID0gTCh7 fSwgdW4sIHsNCiAgICAgICAgICAgIGNsaXBib2FyZERhdGE6IGZ1bmN0aW9uIChlKSB7DQog ICAgICAgICAgICAgIHJldHVybiAiY2xpcGJvYXJkRGF0YSIgaW4gZSA/IGUuY2xpcGJvYXJk RGF0YSA6IHdpbmRvdy5jbGlwYm9hcmREYXRhOw0KICAgICAgICAgICAgfSwNCiAgICAgICAg ICB9KSwNCiAgICAgICAgICBibiA9IG9uKHluKSwNCiAgICAgICAgICB3biA9IG9uKEwoe30s IHVuLCB7IGRhdGE6IDAgfSkpLA0KICAgICAgICAgIHhuID0gew0KICAgICAgICAgICAgRXNj OiAiRXNjYXBlIiwNCiAgICAgICAgICAgIFNwYWNlYmFyOiAiICIsDQogICAgICAgICAgICBM ZWZ0OiAiQXJyb3dMZWZ0IiwNCiAgICAgICAgICAgIFVwOiAiQXJyb3dVcCIsDQogICAgICAg ICAgICBSaWdodDogIkFycm93UmlnaHQiLA0KICAgICAgICAgICAgRG93bjogIkFycm93RG93 biIsDQogICAgICAgICAgICBEZWw6ICJEZWxldGUiLA0KICAgICAgICAgICAgV2luOiAiT1Mi LA0KICAgICAgICAgICAgTWVudTogIkNvbnRleHRNZW51IiwNCiAgICAgICAgICAgIEFwcHM6 ICJDb250ZXh0TWVudSIsDQogICAgICAgICAgICBTY3JvbGw6ICJTY3JvbGxMb2NrIiwNCiAg ICAgICAgICAgIE1velByaW50YWJsZUtleTogIlVuaWRlbnRpZmllZCIsDQogICAgICAgICAg fSwNCiAgICAgICAgICBTbiA9IHsNCiAgICAgICAgICAgIDg6ICJCYWNrc3BhY2UiLA0KICAg ICAgICAgICAgOTogIlRhYiIsDQogICAgICAgICAgICAxMjogIkNsZWFyIiwNCiAgICAgICAg ICAgIDEzOiAiRW50ZXIiLA0KICAgICAgICAgICAgMTY6ICJTaGlmdCIsDQogICAgICAgICAg ICAxNzogIkNvbnRyb2wiLA0KICAgICAgICAgICAgMTg6ICJBbHQiLA0KICAgICAgICAgICAg MTk6ICJQYXVzZSIsDQogICAgICAgICAgICAyMDogIkNhcHNMb2NrIiwNCiAgICAgICAgICAg IDI3OiAiRXNjYXBlIiwNCiAgICAgICAgICAgIDMyOiAiICIsDQogICAgICAgICAgICAzMzog IlBhZ2VVcCIsDQogICAgICAgICAgICAzNDogIlBhZ2VEb3duIiwNCiAgICAgICAgICAgIDM1 OiAiRW5kIiwNCiAgICAgICAgICAgIDM2OiAiSG9tZSIsDQogICAgICAgICAgICAzNzogIkFy cm93TGVmdCIsDQogICAgICAgICAgICAzODogIkFycm93VXAiLA0KICAgICAgICAgICAgMzk6 ICJBcnJvd1JpZ2h0IiwNCiAgICAgICAgICAgIDQwOiAiQXJyb3dEb3duIiwNCiAgICAgICAg ICAgIDQ1OiAiSW5zZXJ0IiwNCiAgICAgICAgICAgIDQ2OiAiRGVsZXRlIiwNCiAgICAgICAg ICAgIDExMjogIkYxIiwNCiAgICAgICAgICAgIDExMzogIkYyIiwNCiAgICAgICAgICAgIDEx NDogIkYzIiwNCiAgICAgICAgICAgIDExNTogIkY0IiwNCiAgICAgICAgICAgIDExNjogIkY1 IiwNCiAgICAgICAgICAgIDExNzogIkY2IiwNCiAgICAgICAgICAgIDExODogIkY3IiwNCiAg ICAgICAgICAgIDExOTogIkY4IiwNCiAgICAgICAgICAgIDEyMDogIkY5IiwNCiAgICAgICAg ICAgIDEyMTogIkYxMCIsDQogICAgICAgICAgICAxMjI6ICJGMTEiLA0KICAgICAgICAgICAg MTIzOiAiRjEyIiwNCiAgICAgICAgICAgIDE0NDogIk51bUxvY2siLA0KICAgICAgICAgICAg MTQ1OiAiU2Nyb2xsTG9jayIsDQogICAgICAgICAgICAyMjQ6ICJNZXRhIiwNCiAgICAgICAg ICB9LA0KICAgICAgICAgIGtuID0geyBBbHQ6ICJhbHRLZXkiLCBDb250cm9sOiAiY3RybEtl eSIsIE1ldGE6ICJtZXRhS2V5IiwgU2hpZnQ6ICJzaGlmdEtleSIgfTsNCiAgICAgICAgZnVu Y3Rpb24gRW4oZSkgew0KICAgICAgICAgIHZhciB0ID0gdGhpcy5uYXRpdmVFdmVudDsNCiAg ICAgICAgICByZXR1cm4gdC5nZXRNb2RpZmllclN0YXRlID8gdC5nZXRNb2RpZmllclN0YXRl KGUpIDogISEoZSA9IGtuW2VdKSAmJiAhIXRbZV07DQogICAgICAgIH0NCiAgICAgICAgZnVu Y3Rpb24gQ24oKSB7DQogICAgICAgICAgcmV0dXJuIEVuOw0KICAgICAgICB9DQogICAgICAg IHZhciBSbiA9IEwoe30sIGRuLCB7DQogICAgICAgICAga2V5OiBmdW5jdGlvbiAoZSkgew0K ICAgICAgICAgICAgaWYgKGUua2V5KSB7DQogICAgICAgICAgICAgIHZhciB0ID0geG5bZS5r ZXldIHx8IGUua2V5Ow0KICAgICAgICAgICAgICBpZiAoIlVuaWRlbnRpZmllZCIgIT09IHQp IHJldHVybiB0Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmV0dXJuICJrZXlwcmVz cyIgPT09IGUudHlwZSA/ICgxMyA9PT0gKGUgPSB0bihlKSkgPyAiRW50ZXIiIDogU3RyaW5n LmZyb21DaGFyQ29kZShlKSkgOiAia2V5ZG93biIgPT09IGUudHlwZSB8fCAia2V5dXAiID09 PSBlLnR5cGUgPyBTbltlLmtleUNvZGVdIHx8ICJVbmlkZW50aWZpZWQiIDogIiI7DQogICAg ICAgICAgfSwNCiAgICAgICAgICBjb2RlOiAwLA0KICAgICAgICAgIGxvY2F0aW9uOiAwLA0K ICAgICAgICAgIGN0cmxLZXk6IDAsDQogICAgICAgICAgc2hpZnRLZXk6IDAsDQogICAgICAg ICAgYWx0S2V5OiAwLA0KICAgICAgICAgIG1ldGFLZXk6IDAsDQogICAgICAgICAgcmVwZWF0 OiAwLA0KICAgICAgICAgIGxvY2FsZTogMCwNCiAgICAgICAgICBnZXRNb2RpZmllclN0YXRl OiBDbiwNCiAgICAgICAgICBjaGFyQ29kZTogZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAg IHJldHVybiAia2V5cHJlc3MiID09PSBlLnR5cGUgPyB0bihlKSA6IDA7DQogICAgICAgICAg fSwNCiAgICAgICAgICBrZXlDb2RlOiBmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgcmV0 dXJuICJrZXlkb3duIiA9PT0gZS50eXBlIHx8ICJrZXl1cCIgPT09IGUudHlwZSA/IGUua2V5 Q29kZSA6IDA7DQogICAgICAgICAgfSwNCiAgICAgICAgICB3aGljaDogZnVuY3Rpb24gKGUp IHsNCiAgICAgICAgICAgIHJldHVybiAia2V5cHJlc3MiID09PSBlLnR5cGUgPyB0bihlKSA6 ICJrZXlkb3duIiA9PT0gZS50eXBlIHx8ICJrZXl1cCIgPT09IGUudHlwZSA/IGUua2V5Q29k ZSA6IDA7DQogICAgICAgICAgfSwNCiAgICAgICAgfSksDQogICAgICAgICAgX24gPSBvbihS biksDQogICAgICAgICAgUG4gPSBvbihMKHt9LCBwbiwgeyBwb2ludGVySWQ6IDAsIHdpZHRo OiAwLCBoZWlnaHQ6IDAsIHByZXNzdXJlOiAwLCB0YW5nZW50aWFsUHJlc3N1cmU6IDAsIHRp bHRYOiAwLCB0aWx0WTogMCwgdHdpc3Q6IDAsIHBvaW50ZXJUeXBlOiAwLCBpc1ByaW1hcnk6 IDAgfSkpLA0KICAgICAgICAgIE9uID0gb24oTCh7fSwgZG4sIHsgdG91Y2hlczogMCwgdGFy Z2V0VG91Y2hlczogMCwgY2hhbmdlZFRvdWNoZXM6IDAsIGFsdEtleTogMCwgbWV0YUtleTog MCwgY3RybEtleTogMCwgc2hpZnRLZXk6IDAsIGdldE1vZGlmaWVyU3RhdGU6IENuIH0pKSwN CiAgICAgICAgICBObiA9IG9uKEwoe30sIHVuLCB7IHByb3BlcnR5TmFtZTogMCwgZWxhcHNl ZFRpbWU6IDAsIHBzZXVkb0VsZW1lbnQ6IDAgfSkpLA0KICAgICAgICAgIFRuID0gTCh7fSwg cG4sIHsNCiAgICAgICAgICAgIGRlbHRhWDogZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAg ICAgcmV0dXJuICJkZWx0YVgiIGluIGUgPyBlLmRlbHRhWCA6ICJ3aGVlbERlbHRhWCIgaW4g ZSA/IC1lLndoZWVsRGVsdGFYIDogMDsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBk ZWx0YVk6IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICAgIHJldHVybiAiZGVsdGFZIiBp biBlID8gZS5kZWx0YVkgOiAid2hlZWxEZWx0YVkiIGluIGUgPyAtZS53aGVlbERlbHRhWSA6 ICJ3aGVlbERlbHRhIiBpbiBlID8gLWUud2hlZWxEZWx0YSA6IDA7DQogICAgICAgICAgICB9 LA0KICAgICAgICAgICAgZGVsdGFaOiAwLA0KICAgICAgICAgICAgZGVsdGFNb2RlOiAwLA0K ICAgICAgICAgIH0pLA0KICAgICAgICAgIEFuID0gb24oVG4pLA0KICAgICAgICAgIE1uID0g WzksIDEzLCAyNywgMzJdLA0KICAgICAgICAgIHpuID0gYyAmJiAiQ29tcG9zaXRpb25FdmVu dCIgaW4gd2luZG93LA0KICAgICAgICAgIGpuID0gbnVsbDsNCiAgICAgICAgYyAmJiAiZG9j dW1lbnRNb2RlIiBpbiBkb2N1bWVudCAmJiAoam4gPSBkb2N1bWVudC5kb2N1bWVudE1vZGUp Ow0KICAgICAgICB2YXIgSW4gPSBjICYmICJUZXh0RXZlbnQiIGluIHdpbmRvdyAmJiAham4s DQogICAgICAgICAgTG4gPSBjICYmICghem4gfHwgKGpuICYmIDggPCBqbiAmJiAxMSA+PSBq bikpLA0KICAgICAgICAgIEZuID0gU3RyaW5nLmZyb21DaGFyQ29kZSgzMiksDQogICAgICAg ICAgQm4gPSAhMTsNCiAgICAgICAgZnVuY3Rpb24gRG4oZSwgdCkgew0KICAgICAgICAgIHN3 aXRjaCAoZSkgew0KICAgICAgICAgICAgY2FzZSAia2V5dXAiOg0KICAgICAgICAgICAgICBy ZXR1cm4gLTEgIT09IE1uLmluZGV4T2YodC5rZXlDb2RlKTsNCiAgICAgICAgICAgIGNhc2Ug ImtleWRvd24iOg0KICAgICAgICAgICAgICByZXR1cm4gMjI5ICE9PSB0LmtleUNvZGU7DQog ICAgICAgICAgICBjYXNlICJrZXlwcmVzcyI6DQogICAgICAgICAgICBjYXNlICJtb3VzZWRv d24iOg0KICAgICAgICAgICAgY2FzZSAiZm9jdXNvdXQiOg0KICAgICAgICAgICAgICByZXR1 cm4gITA7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICByZXR1cm4gITE7 DQogICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIFVuKGUpIHsNCiAg ICAgICAgICByZXR1cm4gIm9iamVjdCIgPT09IHR5cGVvZiAoZSA9IGUuZGV0YWlsKSAmJiAi ZGF0YSIgaW4gZSA/IGUuZGF0YSA6IG51bGw7DQogICAgICAgIH0NCiAgICAgICAgdmFyIFdu ID0gITE7DQogICAgICAgIHZhciBWbiA9IHsgY29sb3I6ICEwLCBkYXRlOiAhMCwgZGF0ZXRp bWU6ICEwLCAiZGF0ZXRpbWUtbG9jYWwiOiAhMCwgZW1haWw6ICEwLCBtb250aDogITAsIG51 bWJlcjogITAsIHBhc3N3b3JkOiAhMCwgcmFuZ2U6ICEwLCBzZWFyY2g6ICEwLCB0ZWw6ICEw LCB0ZXh0OiAhMCwgdGltZTogITAsIHVybDogITAsIHdlZWs6ICEwIH07DQogICAgICAgIGZ1 bmN0aW9uIEhuKGUpIHsNCiAgICAgICAgICB2YXIgdCA9IGUgJiYgZS5ub2RlTmFtZSAmJiBl Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7DQogICAgICAgICAgcmV0dXJuICJpbnB1dCIgPT09 IHQgPyAhIVZuW2UudHlwZV0gOiAidGV4dGFyZWEiID09PSB0Ow0KICAgICAgICB9DQogICAg ICAgIGZ1bmN0aW9uIHFuKGUsIHQsIG4sIHIpIHsNCiAgICAgICAgICBSZShyKSwgMCA8ICh0 ID0gJHIodCwgIm9uQ2hhbmdlIikpLmxlbmd0aCAmJiAoKG4gPSBuZXcgY24oIm9uQ2hhbmdl IiwgImNoYW5nZSIsIG51bGwsIG4sIHIpKSwgZS5wdXNoKHsgZXZlbnQ6IG4sIGxpc3RlbmVy czogdCB9KSk7DQogICAgICAgIH0NCiAgICAgICAgdmFyICRuID0gbnVsbCwNCiAgICAgICAg ICBLbiA9IG51bGw7DQogICAgICAgIGZ1bmN0aW9uIFFuKGUpIHsNCiAgICAgICAgICBGcihl LCAwKTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBHbihlKSB7DQogICAgICAgICAg aWYgKEsoeG8oZSkpKSByZXR1cm4gZTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBZ bihlLCB0KSB7DQogICAgICAgICAgaWYgKCJjaGFuZ2UiID09PSBlKSByZXR1cm4gdDsNCiAg ICAgICAgfQ0KICAgICAgICB2YXIgWG4gPSAhMTsNCiAgICAgICAgaWYgKGMpIHsNCiAgICAg ICAgICB2YXIgWm47DQogICAgICAgICAgaWYgKGMpIHsNCiAgICAgICAgICAgIHZhciBKbiA9 ICJvbmlucHV0IiBpbiBkb2N1bWVudDsNCiAgICAgICAgICAgIGlmICghSm4pIHsNCiAgICAg ICAgICAgICAgdmFyIGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7DQogICAg ICAgICAgICAgIGVyLnNldEF0dHJpYnV0ZSgib25pbnB1dCIsICJyZXR1cm47IiksIChKbiA9 ICJmdW5jdGlvbiIgPT09IHR5cGVvZiBlci5vbmlucHV0KTsNCiAgICAgICAgICAgIH0NCiAg ICAgICAgICAgIFpuID0gSm47DQogICAgICAgICAgfSBlbHNlIFpuID0gITE7DQogICAgICAg ICAgWG4gPSBabiAmJiAoIWRvY3VtZW50LmRvY3VtZW50TW9kZSB8fCA5IDwgZG9jdW1lbnQu ZG9jdW1lbnRNb2RlKTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiB0cigpIHsNCiAg ICAgICAgICAkbiAmJiAoJG4uZGV0YWNoRXZlbnQoIm9ucHJvcGVydHljaGFuZ2UiLCBuciks IChLbiA9ICRuID0gbnVsbCkpOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIG5yKGUp IHsNCiAgICAgICAgICBpZiAoInZhbHVlIiA9PT0gZS5wcm9wZXJ0eU5hbWUgJiYgR24oS24p KSB7DQogICAgICAgICAgICB2YXIgdCA9IFtdOw0KICAgICAgICAgICAgcW4odCwgS24sIGUs IHhlKGUpKSwgVGUoUW4sIHQpOw0KICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICBm dW5jdGlvbiBycihlLCB0LCBuKSB7DQogICAgICAgICAgImZvY3VzaW4iID09PSBlID8gKHRy KCksIChLbiA9IG4pLCAoJG4gPSB0KS5hdHRhY2hFdmVudCgib25wcm9wZXJ0eWNoYW5nZSIs IG5yKSkgOiAiZm9jdXNvdXQiID09PSBlICYmIHRyKCk7DQogICAgICAgIH0NCiAgICAgICAg ZnVuY3Rpb24gb3IoZSkgew0KICAgICAgICAgIGlmICgic2VsZWN0aW9uY2hhbmdlIiA9PT0g ZSB8fCAia2V5dXAiID09PSBlIHx8ICJrZXlkb3duIiA9PT0gZSkgcmV0dXJuIEduKEtuKTsN CiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBhcihlLCB0KSB7DQogICAgICAgICAgaWYg KCJjbGljayIgPT09IGUpIHJldHVybiBHbih0KTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5j dGlvbiBpcihlLCB0KSB7DQogICAgICAgICAgaWYgKCJpbnB1dCIgPT09IGUgfHwgImNoYW5n ZSIgPT09IGUpIHJldHVybiBHbih0KTsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgbHIgPQ0K ICAgICAgICAgICJmdW5jdGlvbiIgPT09IHR5cGVvZiBPYmplY3QuaXMNCiAgICAgICAgICAg ID8gT2JqZWN0LmlzDQogICAgICAgICAgICA6IGZ1bmN0aW9uIChlLCB0KSB7DQogICAgICAg ICAgICAgIHJldHVybiAoZSA9PT0gdCAmJiAoMCAhPT0gZSB8fCAxIC8gZSA9PT0gMSAvIHQp KSB8fCAoZSAhPT0gZSAmJiB0ICE9PSB0KTsNCiAgICAgICAgICAgIH07DQogICAgICAgIGZ1 bmN0aW9uIHNyKGUsIHQpIHsNCiAgICAgICAgICBpZiAobHIoZSwgdCkpIHJldHVybiAhMDsN CiAgICAgICAgICBpZiAoIm9iamVjdCIgIT09IHR5cGVvZiBlIHx8IG51bGwgPT09IGUgfHwg Im9iamVjdCIgIT09IHR5cGVvZiB0IHx8IG51bGwgPT09IHQpIHJldHVybiAhMTsNCiAgICAg ICAgICB2YXIgbiA9IE9iamVjdC5rZXlzKGUpLA0KICAgICAgICAgICAgciA9IE9iamVjdC5r ZXlzKHQpOw0KICAgICAgICAgIGlmIChuLmxlbmd0aCAhPT0gci5sZW5ndGgpIHJldHVybiAh MTsNCiAgICAgICAgICBmb3IgKHIgPSAwOyByIDwgbi5sZW5ndGg7IHIrKykgew0KICAgICAg ICAgICAgdmFyIG8gPSBuW3JdOw0KICAgICAgICAgICAgaWYgKCFkLmNhbGwodCwgbykgfHwg IWxyKGVbb10sIHRbb10pKSByZXR1cm4gITE7DQogICAgICAgICAgfQ0KICAgICAgICAgIHJl dHVybiAhMDsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiB1cihlKSB7DQogICAgICAg ICAgZm9yICg7IGUgJiYgZS5maXJzdENoaWxkOykgZSA9IGUuZmlyc3RDaGlsZDsNCiAgICAg ICAgICByZXR1cm4gZTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBjcihlLCB0KSB7 DQogICAgICAgICAgdmFyIG4sDQogICAgICAgICAgICByID0gdXIoZSk7DQogICAgICAgICAg Zm9yIChlID0gMDsgcjspIHsNCiAgICAgICAgICAgIGlmICgzID09PSByLm5vZGVUeXBlKSB7 DQogICAgICAgICAgICAgIGlmICgoKG4gPSBlICsgci50ZXh0Q29udGVudC5sZW5ndGgpLCBl IDw9IHQgJiYgbiA+PSB0KSkgcmV0dXJuIHsgbm9kZTogciwgb2Zmc2V0OiB0IC0gZSB9Ow0K ICAgICAgICAgICAgICBlID0gbjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGU6IHsN CiAgICAgICAgICAgICAgZm9yICg7IHI7KSB7DQogICAgICAgICAgICAgICAgaWYgKHIubmV4 dFNpYmxpbmcpIHsNCiAgICAgICAgICAgICAgICAgIHIgPSByLm5leHRTaWJsaW5nOw0KICAg ICAgICAgICAgICAgICAgYnJlYWsgZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAg ICAgICAgciA9IHIucGFyZW50Tm9kZTsNCiAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAg ICByID0gdm9pZCAwOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgciA9IHVyKHIpOw0K ICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBkcihlLCB0KSB7DQog ICAgICAgICAgcmV0dXJuICgNCiAgICAgICAgICAgICEoIWUgfHwgIXQpICYmIChlID09PSB0 IHx8ICgoIWUgfHwgMyAhPT0gZS5ub2RlVHlwZSkgJiYgKHQgJiYgMyA9PT0gdC5ub2RlVHlw ZSA/IGRyKGUsIHQucGFyZW50Tm9kZSkgOiAiY29udGFpbnMiIGluIGUgPyBlLmNvbnRhaW5z KHQpIDogISFlLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uICYmICEhKDE2ICYgZS5jb21wYXJl RG9jdW1lbnRQb3NpdGlvbih0KSkpKSkNCiAgICAgICAgICApOw0KICAgICAgICB9DQogICAg ICAgIGZ1bmN0aW9uIGZyKCkgew0KICAgICAgICAgIGZvciAodmFyIGUgPSB3aW5kb3csIHQg PSBRKCk7IHQgaW5zdGFuY2VvZiBlLkhUTUxJRnJhbWVFbGVtZW50Oykgew0KICAgICAgICAg ICAgdHJ5IHsNCiAgICAgICAgICAgICAgdmFyIG4gPSAic3RyaW5nIiA9PT0gdHlwZW9mIHQu Y29udGVudFdpbmRvdy5sb2NhdGlvbi5ocmVmOw0KICAgICAgICAgICAgfSBjYXRjaCAocikg ew0KICAgICAgICAgICAgICBuID0gITE7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBp ZiAoIW4pIGJyZWFrOw0KICAgICAgICAgICAgdCA9IFEoKGUgPSB0LmNvbnRlbnRXaW5kb3cp LmRvY3VtZW50KTsNCiAgICAgICAgICB9DQogICAgICAgICAgcmV0dXJuIHQ7DQogICAgICAg IH0NCiAgICAgICAgZnVuY3Rpb24gcHIoZSkgew0KICAgICAgICAgIHZhciB0ID0gZSAmJiBl Lm5vZGVOYW1lICYmIGUubm9kZU5hbWUudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICByZXR1 cm4gdCAmJiAoKCJpbnB1dCIgPT09IHQgJiYgKCJ0ZXh0IiA9PT0gZS50eXBlIHx8ICJzZWFy Y2giID09PSBlLnR5cGUgfHwgInRlbCIgPT09IGUudHlwZSB8fCAidXJsIiA9PT0gZS50eXBl IHx8ICJwYXNzd29yZCIgPT09IGUudHlwZSkpIHx8ICJ0ZXh0YXJlYSIgPT09IHQgfHwgInRy dWUiID09PSBlLmNvbnRlbnRFZGl0YWJsZSk7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rp b24gaHIoZSkgew0KICAgICAgICAgIHZhciB0ID0gZnIoKSwNCiAgICAgICAgICAgIG4gPSBl LmZvY3VzZWRFbGVtLA0KICAgICAgICAgICAgciA9IGUuc2VsZWN0aW9uUmFuZ2U7DQogICAg ICAgICAgaWYgKHQgIT09IG4gJiYgbiAmJiBuLm93bmVyRG9jdW1lbnQgJiYgZHIobi5vd25l ckRvY3VtZW50LmRvY3VtZW50RWxlbWVudCwgbikpIHsNCiAgICAgICAgICAgIGlmIChudWxs ICE9PSByICYmIHByKG4pKQ0KICAgICAgICAgICAgICBpZiAoKCh0ID0gci5zdGFydCksIHZv aWQgMCA9PT0gKGUgPSByLmVuZCkgJiYgKGUgPSB0KSwgInNlbGVjdGlvblN0YXJ0IiBpbiBu KSkgKG4uc2VsZWN0aW9uU3RhcnQgPSB0KSwgKG4uc2VsZWN0aW9uRW5kID0gTWF0aC5taW4o ZSwgbi52YWx1ZS5sZW5ndGgpKTsNCiAgICAgICAgICAgICAgZWxzZSBpZiAoKGUgPSAoKHQg PSBuLm93bmVyRG9jdW1lbnQgfHwgZG9jdW1lbnQpICYmIHQuZGVmYXVsdFZpZXcpIHx8IHdp bmRvdykuZ2V0U2VsZWN0aW9uKSB7DQogICAgICAgICAgICAgICAgZSA9IGUuZ2V0U2VsZWN0 aW9uKCk7DQogICAgICAgICAgICAgICAgdmFyIG8gPSBuLnRleHRDb250ZW50Lmxlbmd0aCwN CiAgICAgICAgICAgICAgICAgIGEgPSBNYXRoLm1pbihyLnN0YXJ0LCBvKTsNCiAgICAgICAg ICAgICAgICAociA9IHZvaWQgMCA9PT0gci5lbmQgPyBhIDogTWF0aC5taW4oci5lbmQsIG8p KSwgIWUuZXh0ZW5kICYmIGEgPiByICYmICgobyA9IHIpLCAociA9IGEpLCAoYSA9IG8pKSwg KG8gPSBjcihuLCBhKSk7DQogICAgICAgICAgICAgICAgdmFyIGkgPSBjcihuLCByKTsNCiAg ICAgICAgICAgICAgICBvICYmDQogICAgICAgICAgICAgICAgICBpICYmDQogICAgICAgICAg ICAgICAgICAoMSAhPT0gZS5yYW5nZUNvdW50IHx8IGUuYW5jaG9yTm9kZSAhPT0gby5ub2Rl IHx8IGUuYW5jaG9yT2Zmc2V0ICE9PSBvLm9mZnNldCB8fCBlLmZvY3VzTm9kZSAhPT0gaS5u b2RlIHx8IGUuZm9jdXNPZmZzZXQgIT09IGkub2Zmc2V0KSAmJg0KICAgICAgICAgICAgICAg ICAgKCh0ID0gdC5jcmVhdGVSYW5nZSgpKS5zZXRTdGFydChvLm5vZGUsIG8ub2Zmc2V0KSwg ZS5yZW1vdmVBbGxSYW5nZXMoKSwgYSA+IHIgPyAoZS5hZGRSYW5nZSh0KSwgZS5leHRlbmQo aS5ub2RlLCBpLm9mZnNldCkpIDogKHQuc2V0RW5kKGkubm9kZSwgaS5vZmZzZXQpLCBlLmFk ZFJhbmdlKHQpKSk7DQogICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGZvciAodCA9IFtd LCBlID0gbjsgKGUgPSBlLnBhcmVudE5vZGUpOykgMSA9PT0gZS5ub2RlVHlwZSAmJiB0LnB1 c2goeyBlbGVtZW50OiBlLCBsZWZ0OiBlLnNjcm9sbExlZnQsIHRvcDogZS5zY3JvbGxUb3Ag fSk7DQogICAgICAgICAgICBmb3IgKCJmdW5jdGlvbiIgPT09IHR5cGVvZiBuLmZvY3VzICYm IG4uZm9jdXMoKSwgbiA9IDA7IG4gPCB0Lmxlbmd0aDsgbisrKSAoKGUgPSB0W25dKS5lbGVt ZW50LnNjcm9sbExlZnQgPSBlLmxlZnQpLCAoZS5lbGVtZW50LnNjcm9sbFRvcCA9IGUudG9w KTsNCiAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgdmFyIG1yID0gYyAmJiAiZG9j dW1lbnRNb2RlIiBpbiBkb2N1bWVudCAmJiAxMSA+PSBkb2N1bWVudC5kb2N1bWVudE1vZGUs DQogICAgICAgICAgZ3IgPSBudWxsLA0KICAgICAgICAgIHZyID0gbnVsbCwNCiAgICAgICAg ICB5ciA9IG51bGwsDQogICAgICAgICAgYnIgPSAhMTsNCiAgICAgICAgZnVuY3Rpb24gd3Io ZSwgdCwgbikgew0KICAgICAgICAgIHZhciByID0gbi53aW5kb3cgPT09IG4gPyBuLmRvY3Vt ZW50IDogOSA9PT0gbi5ub2RlVHlwZSA/IG4gOiBuLm93bmVyRG9jdW1lbnQ7DQogICAgICAg ICAgYnIgfHwNCiAgICAgICAgICAgIG51bGwgPT0gZ3IgfHwNCiAgICAgICAgICAgIGdyICE9 PSBRKHIpIHx8DQogICAgICAgICAgICAoInNlbGVjdGlvblN0YXJ0IiBpbiAociA9IGdyKSAm JiBwcihyKQ0KICAgICAgICAgICAgICA/IChyID0geyBzdGFydDogci5zZWxlY3Rpb25TdGFy dCwgZW5kOiByLnNlbGVjdGlvbkVuZCB9KQ0KICAgICAgICAgICAgICA6IChyID0geyBhbmNo b3JOb2RlOiAociA9ICgoci5vd25lckRvY3VtZW50ICYmIHIub3duZXJEb2N1bWVudC5kZWZh dWx0VmlldykgfHwgd2luZG93KS5nZXRTZWxlY3Rpb24oKSkuYW5jaG9yTm9kZSwgYW5jaG9y T2Zmc2V0OiByLmFuY2hvck9mZnNldCwgZm9jdXNOb2RlOiByLmZvY3VzTm9kZSwgZm9jdXNP ZmZzZXQ6IHIuZm9jdXNPZmZzZXQgfSksDQogICAgICAgICAgICAgICh5ciAmJiBzcih5ciwg cikpIHx8ICgoeXIgPSByKSwgMCA8IChyID0gJHIodnIsICJvblNlbGVjdCIpKS5sZW5ndGgg JiYgKCh0ID0gbmV3IGNuKCJvblNlbGVjdCIsICJzZWxlY3QiLCBudWxsLCB0LCBuKSksIGUu cHVzaCh7IGV2ZW50OiB0LCBsaXN0ZW5lcnM6IHIgfSksICh0LnRhcmdldCA9IGdyKSkpKTsN CiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiB4cihlLCB0KSB7DQogICAgICAgICAgdmFy IG4gPSB7fTsNCiAgICAgICAgICByZXR1cm4gKG5bZS50b0xvd2VyQ2FzZSgpXSA9IHQudG9M b3dlckNhc2UoKSksIChuWyJXZWJraXQiICsgZV0gPSAid2Via2l0IiArIHQpLCAoblsiTW96 IiArIGVdID0gIm1veiIgKyB0KSwgbjsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgU3IgPSB7 DQogICAgICAgICAgYW5pbWF0aW9uZW5kOiB4cigiQW5pbWF0aW9uIiwgIkFuaW1hdGlvbkVu ZCIpLA0KICAgICAgICAgIGFuaW1hdGlvbml0ZXJhdGlvbjogeHIoIkFuaW1hdGlvbiIsICJB bmltYXRpb25JdGVyYXRpb24iKSwNCiAgICAgICAgICBhbmltYXRpb25zdGFydDogeHIoIkFu aW1hdGlvbiIsICJBbmltYXRpb25TdGFydCIpLA0KICAgICAgICAgIHRyYW5zaXRpb25lbmQ6 IHhyKCJUcmFuc2l0aW9uIiwgIlRyYW5zaXRpb25FbmQiKSwNCiAgICAgICAgfSwNCiAgICAg ICAgICBrciA9IHt9LA0KICAgICAgICAgIEVyID0ge307DQogICAgICAgIGZ1bmN0aW9uIENy KGUpIHsNCiAgICAgICAgICBpZiAoa3JbZV0pIHJldHVybiBrcltlXTsNCiAgICAgICAgICBp ZiAoIVNyW2VdKSByZXR1cm4gZTsNCiAgICAgICAgICB2YXIgdCwNCiAgICAgICAgICAgIG4g PSBTcltlXTsNCiAgICAgICAgICBmb3IgKHQgaW4gbikgaWYgKG4uaGFzT3duUHJvcGVydHko dCkgJiYgdCBpbiBFcikgcmV0dXJuIChrcltlXSA9IG5bdF0pOw0KICAgICAgICAgIHJldHVy biBlOw0KICAgICAgICB9DQogICAgICAgIGMgJiYNCiAgICAgICAgICAoKEVyID0gZG9jdW1l bnQuY3JlYXRlRWxlbWVudCgiZGl2Iikuc3R5bGUpLA0KICAgICAgICAgICAgIkFuaW1hdGlv bkV2ZW50IiBpbiB3aW5kb3cgfHwgKGRlbGV0ZSBTci5hbmltYXRpb25lbmQuYW5pbWF0aW9u LCBkZWxldGUgU3IuYW5pbWF0aW9uaXRlcmF0aW9uLmFuaW1hdGlvbiwgZGVsZXRlIFNyLmFu aW1hdGlvbnN0YXJ0LmFuaW1hdGlvbiksDQogICAgICAgICAgICAiVHJhbnNpdGlvbkV2ZW50 IiBpbiB3aW5kb3cgfHwgZGVsZXRlIFNyLnRyYW5zaXRpb25lbmQudHJhbnNpdGlvbik7DQog ICAgICAgIHZhciBSciA9IENyKCJhbmltYXRpb25lbmQiKSwNCiAgICAgICAgICBfciA9IENy KCJhbmltYXRpb25pdGVyYXRpb24iKSwNCiAgICAgICAgICBQciA9IENyKCJhbmltYXRpb25z dGFydCIpLA0KICAgICAgICAgIE9yID0gQ3IoInRyYW5zaXRpb25lbmQiKSwNCiAgICAgICAg ICBOciA9IG5ldyBNYXAoKSwNCiAgICAgICAgICBUciA9ICJhYm9ydCBhdXhDbGljayBjYW5j ZWwgY2FuUGxheSBjYW5QbGF5VGhyb3VnaCBjbGljayBjbG9zZSBjb250ZXh0TWVudSBjb3B5 IGN1dCBkcmFnIGRyYWdFbmQgZHJhZ0VudGVyIGRyYWdFeGl0IGRyYWdMZWF2ZSBkcmFnT3Zl ciBkcmFnU3RhcnQgZHJvcCBkdXJhdGlvbkNoYW5nZSBlbXB0aWVkIGVuY3J5cHRlZCBlbmRl ZCBlcnJvciBnb3RQb2ludGVyQ2FwdHVyZSBpbnB1dCBpbnZhbGlkIGtleURvd24ga2V5UHJl c3Mga2V5VXAgbG9hZCBsb2FkZWREYXRhIGxvYWRlZE1ldGFkYXRhIGxvYWRTdGFydCBsb3N0 UG9pbnRlckNhcHR1cmUgbW91c2VEb3duIG1vdXNlTW92ZSBtb3VzZU91dCBtb3VzZU92ZXIg bW91c2VVcCBwYXN0ZSBwYXVzZSBwbGF5IHBsYXlpbmcgcG9pbnRlckNhbmNlbCBwb2ludGVy RG93biBwb2ludGVyTW92ZSBwb2ludGVyT3V0IHBvaW50ZXJPdmVyIHBvaW50ZXJVcCBwcm9n cmVzcyByYXRlQ2hhbmdlIHJlc2V0IHJlc2l6ZSBzZWVrZWQgc2Vla2luZyBzdGFsbGVkIHN1 Ym1pdCBzdXNwZW5kIHRpbWVVcGRhdGUgdG91Y2hDYW5jZWwgdG91Y2hFbmQgdG91Y2hTdGFy dCB2b2x1bWVDaGFuZ2Ugc2Nyb2xsIHRvZ2dsZSB0b3VjaE1vdmUgd2FpdGluZyB3aGVlbCIu c3BsaXQoDQogICAgICAgICAgICAiICINCiAgICAgICAgICApOw0KICAgICAgICBmdW5jdGlv biBBcihlLCB0KSB7DQogICAgICAgICAgTnIuc2V0KGUsIHQpLCBzKHQsIFtlXSk7DQogICAg ICAgIH0NCiAgICAgICAgZm9yICh2YXIgTXIgPSAwOyBNciA8IFRyLmxlbmd0aDsgTXIrKykg ew0KICAgICAgICAgIHZhciB6ciA9IFRyW01yXTsNCiAgICAgICAgICBBcih6ci50b0xvd2Vy Q2FzZSgpLCAib24iICsgKHpyWzBdLnRvVXBwZXJDYXNlKCkgKyB6ci5zbGljZSgxKSkpOw0K ICAgICAgICB9DQogICAgICAgIEFyKFJyLCAib25BbmltYXRpb25FbmQiKSwNCiAgICAgICAg ICBBcihfciwgIm9uQW5pbWF0aW9uSXRlcmF0aW9uIiksDQogICAgICAgICAgQXIoUHIsICJv bkFuaW1hdGlvblN0YXJ0IiksDQogICAgICAgICAgQXIoImRibGNsaWNrIiwgIm9uRG91Ymxl Q2xpY2siKSwNCiAgICAgICAgICBBcigiZm9jdXNpbiIsICJvbkZvY3VzIiksDQogICAgICAg ICAgQXIoImZvY3Vzb3V0IiwgIm9uQmx1ciIpLA0KICAgICAgICAgIEFyKE9yLCAib25UcmFu c2l0aW9uRW5kIiksDQogICAgICAgICAgdSgib25Nb3VzZUVudGVyIiwgWyJtb3VzZW91dCIs ICJtb3VzZW92ZXIiXSksDQogICAgICAgICAgdSgib25Nb3VzZUxlYXZlIiwgWyJtb3VzZW91 dCIsICJtb3VzZW92ZXIiXSksDQogICAgICAgICAgdSgib25Qb2ludGVyRW50ZXIiLCBbInBv aW50ZXJvdXQiLCAicG9pbnRlcm92ZXIiXSksDQogICAgICAgICAgdSgib25Qb2ludGVyTGVh dmUiLCBbInBvaW50ZXJvdXQiLCAicG9pbnRlcm92ZXIiXSksDQogICAgICAgICAgcygib25D aGFuZ2UiLCAiY2hhbmdlIGNsaWNrIGZvY3VzaW4gZm9jdXNvdXQgaW5wdXQga2V5ZG93biBr ZXl1cCBzZWxlY3Rpb25jaGFuZ2UiLnNwbGl0KCIgIikpLA0KICAgICAgICAgIHMoIm9uU2Vs ZWN0IiwgImZvY3Vzb3V0IGNvbnRleHRtZW51IGRyYWdlbmQgZm9jdXNpbiBrZXlkb3duIGtl eXVwIG1vdXNlZG93biBtb3VzZXVwIHNlbGVjdGlvbmNoYW5nZSIuc3BsaXQoIiAiKSksDQog ICAgICAgICAgcygib25CZWZvcmVJbnB1dCIsIFsiY29tcG9zaXRpb25lbmQiLCAia2V5cHJl c3MiLCAidGV4dElucHV0IiwgInBhc3RlIl0pLA0KICAgICAgICAgIHMoIm9uQ29tcG9zaXRp b25FbmQiLCAiY29tcG9zaXRpb25lbmQgZm9jdXNvdXQga2V5ZG93biBrZXlwcmVzcyBrZXl1 cCBtb3VzZWRvd24iLnNwbGl0KCIgIikpLA0KICAgICAgICAgIHMoIm9uQ29tcG9zaXRpb25T dGFydCIsICJjb21wb3NpdGlvbnN0YXJ0IGZvY3Vzb3V0IGtleWRvd24ga2V5cHJlc3Mga2V5 dXAgbW91c2Vkb3duIi5zcGxpdCgiICIpKSwNCiAgICAgICAgICBzKCJvbkNvbXBvc2l0aW9u VXBkYXRlIiwgImNvbXBvc2l0aW9udXBkYXRlIGZvY3Vzb3V0IGtleWRvd24ga2V5cHJlc3Mg a2V5dXAgbW91c2Vkb3duIi5zcGxpdCgiICIpKTsNCiAgICAgICAgdmFyIGpyID0gImFib3J0 IGNhbnBsYXkgY2FucGxheXRocm91Z2ggZHVyYXRpb25jaGFuZ2UgZW1wdGllZCBlbmNyeXB0 ZWQgZW5kZWQgZXJyb3IgbG9hZGVkZGF0YSBsb2FkZWRtZXRhZGF0YSBsb2Fkc3RhcnQgcGF1 c2UgcGxheSBwbGF5aW5nIHByb2dyZXNzIHJhdGVjaGFuZ2UgcmVzaXplIHNlZWtlZCBzZWVr aW5nIHN0YWxsZWQgc3VzcGVuZCB0aW1ldXBkYXRlIHZvbHVtZWNoYW5nZSB3YWl0aW5nIi5z cGxpdCgNCiAgICAgICAgICAiICINCiAgICAgICAgKSwNCiAgICAgICAgICBJciA9IG5ldyBT ZXQoImNhbmNlbCBjbG9zZSBpbnZhbGlkIGxvYWQgc2Nyb2xsIHRvZ2dsZSIuc3BsaXQoIiAi KS5jb25jYXQoanIpKTsNCiAgICAgICAgZnVuY3Rpb24gTHIoZSwgdCwgbikgew0KICAgICAg ICAgIHZhciByID0gZS50eXBlIHx8ICJ1bmtub3duLWV2ZW50IjsNCiAgICAgICAgICAoZS5j dXJyZW50VGFyZ2V0ID0gbiksDQogICAgICAgICAgICAoZnVuY3Rpb24gKGUsIHQsIG4sIHIs IG8sIGksIGwsIHMsIHUpIHsNCiAgICAgICAgICAgICAgaWYgKChVZS5hcHBseSh0aGlzLCBh cmd1bWVudHMpLCBJZSkpIHsNCiAgICAgICAgICAgICAgICBpZiAoIUllKSB0aHJvdyBFcnJv cihhKDE5OCkpOw0KICAgICAgICAgICAgICAgIHZhciBjID0gTGU7DQogICAgICAgICAgICAg ICAgKEllID0gITEpLCAoTGUgPSBudWxsKSwgRmUgfHwgKChGZSA9ICEwKSwgKEJlID0gYykp Ow0KICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9KShyLCB0LCB2b2lkIDAsIGUpLA0K ICAgICAgICAgICAgKGUuY3VycmVudFRhcmdldCA9IG51bGwpOw0KICAgICAgICB9DQogICAg ICAgIGZ1bmN0aW9uIEZyKGUsIHQpIHsNCiAgICAgICAgICB0ID0gMCAhPT0gKDQgJiB0KTsN CiAgICAgICAgICBmb3IgKHZhciBuID0gMDsgbiA8IGUubGVuZ3RoOyBuKyspIHsNCiAgICAg ICAgICAgIHZhciByID0gZVtuXSwNCiAgICAgICAgICAgICAgbyA9IHIuZXZlbnQ7DQogICAg ICAgICAgICByID0gci5saXN0ZW5lcnM7DQogICAgICAgICAgICBlOiB7DQogICAgICAgICAg ICAgIHZhciBhID0gdm9pZCAwOw0KICAgICAgICAgICAgICBpZiAodCkNCiAgICAgICAgICAg ICAgICBmb3IgKHZhciBpID0gci5sZW5ndGggLSAxOyAwIDw9IGk7IGktLSkgew0KICAgICAg ICAgICAgICAgICAgdmFyIGwgPSByW2ldLA0KICAgICAgICAgICAgICAgICAgICBzID0gbC5p bnN0YW5jZSwNCiAgICAgICAgICAgICAgICAgICAgdSA9IGwuY3VycmVudFRhcmdldDsNCiAg ICAgICAgICAgICAgICAgIGlmICgoKGwgPSBsLmxpc3RlbmVyKSwgcyAhPT0gYSAmJiBvLmlz UHJvcGFnYXRpb25TdG9wcGVkKCkpKSBicmVhayBlOw0KICAgICAgICAgICAgICAgICAgTHIo bywgbCwgdSksIChhID0gcyk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICBl bHNlDQogICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IHIubGVuZ3RoOyBpKyspIHsN CiAgICAgICAgICAgICAgICAgIGlmICgoKHMgPSAobCA9IHJbaV0pLmluc3RhbmNlKSwgKHUg PSBsLmN1cnJlbnRUYXJnZXQpLCAobCA9IGwubGlzdGVuZXIpLCBzICE9PSBhICYmIG8uaXNQ cm9wYWdhdGlvblN0b3BwZWQoKSkpIGJyZWFrIGU7DQogICAgICAgICAgICAgICAgICBMcihv LCBsLCB1KSwgKGEgPSBzKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQog ICAgICAgICAgfQ0KICAgICAgICAgIGlmIChGZSkgdGhyb3cgKChlID0gQmUpLCAoRmUgPSAh MSksIChCZSA9IG51bGwpLCBlKTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBCcihl LCB0KSB7DQogICAgICAgICAgdmFyIG4gPSB0W2dvXTsNCiAgICAgICAgICB2b2lkIDAgPT09 IG4gJiYgKG4gPSB0W2dvXSA9IG5ldyBTZXQoKSk7DQogICAgICAgICAgdmFyIHIgPSBlICsg Il9fYnViYmxlIjsNCiAgICAgICAgICBuLmhhcyhyKSB8fCAoVnIodCwgZSwgMiwgITEpLCBu LmFkZChyKSk7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gRHIoZSwgdCwgbikgew0K ICAgICAgICAgIHZhciByID0gMDsNCiAgICAgICAgICB0ICYmIChyIHw9IDQpLCBWcihuLCBl LCByLCB0KTsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgVXIgPSAiX3JlYWN0TGlzdGVuaW5n IiArIE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnNsaWNlKDIpOw0KICAgICAgICBmdW5j dGlvbiBXcihlKSB7DQogICAgICAgICAgaWYgKCFlW1VyXSkgew0KICAgICAgICAgICAgKGVb VXJdID0gITApLA0KICAgICAgICAgICAgICBpLmZvckVhY2goZnVuY3Rpb24gKHQpIHsNCiAg ICAgICAgICAgICAgICAic2VsZWN0aW9uY2hhbmdlIiAhPT0gdCAmJiAoSXIuaGFzKHQpIHx8 IERyKHQsICExLCBlKSwgRHIodCwgITAsIGUpKTsNCiAgICAgICAgICAgICAgfSk7DQogICAg ICAgICAgICB2YXIgdCA9IDkgPT09IGUubm9kZVR5cGUgPyBlIDogZS5vd25lckRvY3VtZW50 Ow0KICAgICAgICAgICAgbnVsbCA9PT0gdCB8fCB0W1VyXSB8fCAoKHRbVXJdID0gITApLCBE cigic2VsZWN0aW9uY2hhbmdlIiwgITEsIHQpKTsNCiAgICAgICAgICB9DQogICAgICAgIH0N CiAgICAgICAgZnVuY3Rpb24gVnIoZSwgdCwgbiwgcikgew0KICAgICAgICAgIHN3aXRjaCAo WXQodCkpIHsNCiAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgdmFyIG8gPSBx dDsNCiAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlIDQ6DQogICAgICAg ICAgICAgIG8gPSAkdDsNCiAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZh dWx0Og0KICAgICAgICAgICAgICBvID0gS3Q7DQogICAgICAgICAgfQ0KICAgICAgICAgIChu ID0gby5iaW5kKG51bGwsIHQsIG4sIGUpKSwNCiAgICAgICAgICAgIChvID0gdm9pZCAwKSwN CiAgICAgICAgICAgICFNZSB8fCAoInRvdWNoc3RhcnQiICE9PSB0ICYmICJ0b3VjaG1vdmUi ICE9PSB0ICYmICJ3aGVlbCIgIT09IHQpIHx8IChvID0gITApLA0KICAgICAgICAgICAgciA/ ICh2b2lkIDAgIT09IG8gPyBlLmFkZEV2ZW50TGlzdGVuZXIodCwgbiwgeyBjYXB0dXJlOiAh MCwgcGFzc2l2ZTogbyB9KSA6IGUuYWRkRXZlbnRMaXN0ZW5lcih0LCBuLCAhMCkpIDogdm9p ZCAwICE9PSBvID8gZS5hZGRFdmVudExpc3RlbmVyKHQsIG4sIHsgcGFzc2l2ZTogbyB9KSA6 IGUuYWRkRXZlbnRMaXN0ZW5lcih0LCBuLCAhMSk7DQogICAgICAgIH0NCiAgICAgICAgZnVu Y3Rpb24gSHIoZSwgdCwgbiwgciwgbykgew0KICAgICAgICAgIHZhciBhID0gcjsNCiAgICAg ICAgICBpZiAoMCA9PT0gKDEgJiB0KSAmJiAwID09PSAoMiAmIHQpICYmIG51bGwgIT09IHIp DQogICAgICAgICAgICBlOiBmb3IgKDsgOykgew0KICAgICAgICAgICAgICBpZiAobnVsbCA9 PT0gcikgcmV0dXJuOw0KICAgICAgICAgICAgICB2YXIgaSA9IHIudGFnOw0KICAgICAgICAg ICAgICBpZiAoMyA9PT0gaSB8fCA0ID09PSBpKSB7DQogICAgICAgICAgICAgICAgdmFyIGwg PSByLnN0YXRlTm9kZS5jb250YWluZXJJbmZvOw0KICAgICAgICAgICAgICAgIGlmIChsID09 PSBvIHx8ICg4ID09PSBsLm5vZGVUeXBlICYmIGwucGFyZW50Tm9kZSA9PT0gbykpIGJyZWFr Ow0KICAgICAgICAgICAgICAgIGlmICg0ID09PSBpKQ0KICAgICAgICAgICAgICAgICAgZm9y IChpID0gci5yZXR1cm47IG51bGwgIT09IGk7KSB7DQogICAgICAgICAgICAgICAgICAgIHZh ciBzID0gaS50YWc7DQogICAgICAgICAgICAgICAgICAgIGlmICgoMyA9PT0gcyB8fCA0ID09 PSBzKSAmJiAoKHMgPSBpLnN0YXRlTm9kZS5jb250YWluZXJJbmZvKSA9PT0gbyB8fCAoOCA9 PT0gcy5ub2RlVHlwZSAmJiBzLnBhcmVudE5vZGUgPT09IG8pKSkgcmV0dXJuOw0KICAgICAg ICAgICAgICAgICAgICBpID0gaS5yZXR1cm47DQogICAgICAgICAgICAgICAgICB9DQogICAg ICAgICAgICAgICAgZm9yICg7IG51bGwgIT09IGw7KSB7DQogICAgICAgICAgICAgICAgICBp ZiAobnVsbCA9PT0gKGkgPSBibyhsKSkpIHJldHVybjsNCiAgICAgICAgICAgICAgICAgIGlm ICg1ID09PSAocyA9IGkudGFnKSB8fCA2ID09PSBzKSB7DQogICAgICAgICAgICAgICAgICAg IHIgPSBhID0gaTsNCiAgICAgICAgICAgICAgICAgICAgY29udGludWUgZTsNCiAgICAgICAg ICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgIGwgPSBsLnBhcmVudE5vZGU7DQogICAg ICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgIHIgPSByLnJl dHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICBUZShmdW5jdGlvbiAoKSB7DQogICAg ICAgICAgICB2YXIgciA9IGEsDQogICAgICAgICAgICAgIG8gPSB4ZShuKSwNCiAgICAgICAg ICAgICAgaSA9IFtdOw0KICAgICAgICAgICAgZTogew0KICAgICAgICAgICAgICB2YXIgbCA9 IE5yLmdldChlKTsNCiAgICAgICAgICAgICAgaWYgKHZvaWQgMCAhPT0gbCkgew0KICAgICAg ICAgICAgICAgIHZhciBzID0gY24sDQogICAgICAgICAgICAgICAgICB1ID0gZTsNCiAgICAg ICAgICAgICAgICBzd2l0Y2ggKGUpIHsNCiAgICAgICAgICAgICAgICAgIGNhc2UgImtleXBy ZXNzIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKDAgPT09IHRuKG4pKSBicmVhayBlOw0K ICAgICAgICAgICAgICAgICAgY2FzZSAia2V5ZG93biI6DQogICAgICAgICAgICAgICAgICBj YXNlICJrZXl1cCI6DQogICAgICAgICAgICAgICAgICAgIHMgPSBfbjsNCiAgICAgICAgICAg ICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICBjYXNlICJmb2N1c2luIjoNCiAg ICAgICAgICAgICAgICAgICAgKHUgPSAiZm9jdXMiKSwgKHMgPSBnbik7DQogICAgICAgICAg ICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgY2FzZSAiZm9jdXNvdXQiOg0K ICAgICAgICAgICAgICAgICAgICAodSA9ICJibHVyIiksIChzID0gZ24pOw0KICAgICAgICAg ICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgIGNhc2UgImJlZm9yZWJsdXIi Og0KICAgICAgICAgICAgICAgICAgY2FzZSAiYWZ0ZXJibHVyIjoNCiAgICAgICAgICAgICAg ICAgICAgcyA9IGduOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAg ICAgICAgIGNhc2UgImNsaWNrIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKDIgPT09IG4u YnV0dG9uKSBicmVhayBlOw0KICAgICAgICAgICAgICAgICAgY2FzZSAiYXV4Y2xpY2siOg0K ICAgICAgICAgICAgICAgICAgY2FzZSAiZGJsY2xpY2siOg0KICAgICAgICAgICAgICAgICAg Y2FzZSAibW91c2Vkb3duIjoNCiAgICAgICAgICAgICAgICAgIGNhc2UgIm1vdXNlbW92ZSI6 DQogICAgICAgICAgICAgICAgICBjYXNlICJtb3VzZXVwIjoNCiAgICAgICAgICAgICAgICAg IGNhc2UgIm1vdXNlb3V0IjoNCiAgICAgICAgICAgICAgICAgIGNhc2UgIm1vdXNlb3ZlciI6 DQogICAgICAgICAgICAgICAgICBjYXNlICJjb250ZXh0bWVudSI6DQogICAgICAgICAgICAg ICAgICAgIHMgPSBobjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAg ICAgICAgICBjYXNlICJkcmFnIjoNCiAgICAgICAgICAgICAgICAgIGNhc2UgImRyYWdlbmQi Og0KICAgICAgICAgICAgICAgICAgY2FzZSAiZHJhZ2VudGVyIjoNCiAgICAgICAgICAgICAg ICAgIGNhc2UgImRyYWdleGl0IjoNCiAgICAgICAgICAgICAgICAgIGNhc2UgImRyYWdsZWF2 ZSI6DQogICAgICAgICAgICAgICAgICBjYXNlICJkcmFnb3ZlciI6DQogICAgICAgICAgICAg ICAgICBjYXNlICJkcmFnc3RhcnQiOg0KICAgICAgICAgICAgICAgICAgY2FzZSAiZHJvcCI6 DQogICAgICAgICAgICAgICAgICAgIHMgPSBtbjsNCiAgICAgICAgICAgICAgICAgICAgYnJl YWs7DQogICAgICAgICAgICAgICAgICBjYXNlICJ0b3VjaGNhbmNlbCI6DQogICAgICAgICAg ICAgICAgICBjYXNlICJ0b3VjaGVuZCI6DQogICAgICAgICAgICAgICAgICBjYXNlICJ0b3Vj aG1vdmUiOg0KICAgICAgICAgICAgICAgICAgY2FzZSAidG91Y2hzdGFydCI6DQogICAgICAg ICAgICAgICAgICAgIHMgPSBPbjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAg ICAgICAgICAgICAgICBjYXNlIFJyOg0KICAgICAgICAgICAgICAgICAgY2FzZSBfcjoNCiAg ICAgICAgICAgICAgICAgIGNhc2UgUHI6DQogICAgICAgICAgICAgICAgICAgIHMgPSB2bjsN CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICBjYXNlIE9y Og0KICAgICAgICAgICAgICAgICAgICBzID0gTm47DQogICAgICAgICAgICAgICAgICAgIGJy ZWFrOw0KICAgICAgICAgICAgICAgICAgY2FzZSAic2Nyb2xsIjoNCiAgICAgICAgICAgICAg ICAgICAgcyA9IGZuOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAg ICAgICAgIGNhc2UgIndoZWVsIjoNCiAgICAgICAgICAgICAgICAgICAgcyA9IEFuOw0KICAg ICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgIGNhc2UgImNvcHki Og0KICAgICAgICAgICAgICAgICAgY2FzZSAiY3V0IjoNCiAgICAgICAgICAgICAgICAgIGNh c2UgInBhc3RlIjoNCiAgICAgICAgICAgICAgICAgICAgcyA9IGJuOw0KICAgICAgICAgICAg ICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgIGNhc2UgImdvdHBvaW50ZXJjYXB0 dXJlIjoNCiAgICAgICAgICAgICAgICAgIGNhc2UgImxvc3Rwb2ludGVyY2FwdHVyZSI6DQog ICAgICAgICAgICAgICAgICBjYXNlICJwb2ludGVyY2FuY2VsIjoNCiAgICAgICAgICAgICAg ICAgIGNhc2UgInBvaW50ZXJkb3duIjoNCiAgICAgICAgICAgICAgICAgIGNhc2UgInBvaW50 ZXJtb3ZlIjoNCiAgICAgICAgICAgICAgICAgIGNhc2UgInBvaW50ZXJvdXQiOg0KICAgICAg ICAgICAgICAgICAgY2FzZSAicG9pbnRlcm92ZXIiOg0KICAgICAgICAgICAgICAgICAgY2Fz ZSAicG9pbnRlcnVwIjoNCiAgICAgICAgICAgICAgICAgICAgcyA9IFBuOw0KICAgICAgICAg ICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgYyA9IDAgIT09ICg0ICYgdCksDQogICAg ICAgICAgICAgICAgICBkID0gIWMgJiYgInNjcm9sbCIgPT09IGUsDQogICAgICAgICAgICAg ICAgICBmID0gYyA/IChudWxsICE9PSBsID8gbCArICJDYXB0dXJlIiA6IG51bGwpIDogbDsN CiAgICAgICAgICAgICAgICBjID0gW107DQogICAgICAgICAgICAgICAgZm9yICh2YXIgcCwg aCA9IHI7IG51bGwgIT09IGg7KSB7DQogICAgICAgICAgICAgICAgICB2YXIgbSA9IChwID0g aCkuc3RhdGVOb2RlOw0KICAgICAgICAgICAgICAgICAgaWYgKCg1ID09PSBwLnRhZyAmJiBu dWxsICE9PSBtICYmICgocCA9IG0pLCBudWxsICE9PSBmICYmIG51bGwgIT0gKG0gPSBBZSho LCBmKSkgJiYgYy5wdXNoKHFyKGgsIG0sIHApKSksIGQpKSBicmVhazsNCiAgICAgICAgICAg ICAgICAgIGggPSBoLnJldHVybjsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAg ICAgMCA8IGMubGVuZ3RoICYmICgobCA9IG5ldyBzKGwsIHUsIG51bGwsIG4sIG8pKSwgaS5w dXNoKHsgZXZlbnQ6IGwsIGxpc3RlbmVyczogYyB9KSk7DQogICAgICAgICAgICAgIH0NCiAg ICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmICgwID09PSAoNyAmIHQpKSB7DQogICAgICAg ICAgICAgIGlmICgNCiAgICAgICAgICAgICAgICAoKHMgPSAibW91c2VvdXQiID09PSBlIHx8 ICJwb2ludGVyb3V0IiA9PT0gZSksDQogICAgICAgICAgICAgICAgICAoIShsID0gIm1vdXNl b3ZlciIgPT09IGUgfHwgInBvaW50ZXJvdmVyIiA9PT0gZSkgfHwgbiA9PT0gd2UgfHwgISh1 ID0gbi5yZWxhdGVkVGFyZ2V0IHx8IG4uZnJvbUVsZW1lbnQpIHx8ICghYm8odSkgJiYgIXVb bW9dKSkgJiYNCiAgICAgICAgICAgICAgICAgIChzIHx8IGwpICYmDQogICAgICAgICAgICAg ICAgICAoKGwgPSBvLndpbmRvdyA9PT0gbyA/IG8gOiAobCA9IG8ub3duZXJEb2N1bWVudCkg PyBsLmRlZmF1bHRWaWV3IHx8IGwucGFyZW50V2luZG93IDogd2luZG93KSwNCiAgICAgICAg ICAgICAgICAgICAgcyA/ICgocyA9IHIpLCBudWxsICE9PSAodSA9ICh1ID0gbi5yZWxhdGVk VGFyZ2V0IHx8IG4udG9FbGVtZW50KSA/IGJvKHUpIDogbnVsbCkgJiYgKHUgIT09IChkID0g V2UodSkpIHx8ICg1ICE9PSB1LnRhZyAmJiA2ICE9PSB1LnRhZykpICYmICh1ID0gbnVsbCkp IDogKChzID0gbnVsbCksICh1ID0gcikpLA0KICAgICAgICAgICAgICAgICAgICBzICE9PSB1 KSkNCiAgICAgICAgICAgICAgKSB7DQogICAgICAgICAgICAgICAgaWYgKA0KICAgICAgICAg ICAgICAgICAgKChjID0gaG4pLA0KICAgICAgICAgICAgICAgICAgICAobSA9ICJvbk1vdXNl TGVhdmUiKSwNCiAgICAgICAgICAgICAgICAgICAgKGYgPSAib25Nb3VzZUVudGVyIiksDQog ICAgICAgICAgICAgICAgICAgIChoID0gIm1vdXNlIiksDQogICAgICAgICAgICAgICAgICAg ICgicG9pbnRlcm91dCIgIT09IGUgJiYgInBvaW50ZXJvdmVyIiAhPT0gZSkgfHwgKChjID0g UG4pLCAobSA9ICJvblBvaW50ZXJMZWF2ZSIpLCAoZiA9ICJvblBvaW50ZXJFbnRlciIpLCAo aCA9ICJwb2ludGVyIikpLA0KICAgICAgICAgICAgICAgICAgICAoZCA9IG51bGwgPT0gcyA/ IGwgOiB4byhzKSksDQogICAgICAgICAgICAgICAgICAgIChwID0gbnVsbCA9PSB1ID8gbCA6 IHhvKHUpKSwNCiAgICAgICAgICAgICAgICAgICAgKChsID0gbmV3IGMobSwgaCArICJsZWF2 ZSIsIHMsIG4sIG8pKS50YXJnZXQgPSBkKSwNCiAgICAgICAgICAgICAgICAgICAgKGwucmVs YXRlZFRhcmdldCA9IHApLA0KICAgICAgICAgICAgICAgICAgICAobSA9IG51bGwpLA0KICAg ICAgICAgICAgICAgICAgICBibyhvKSA9PT0gciAmJiAoKChjID0gbmV3IGMoZiwgaCArICJl bnRlciIsIHUsIG4sIG8pKS50YXJnZXQgPSBwKSwgKGMucmVsYXRlZFRhcmdldCA9IGQpLCAo bSA9IGMpKSwNCiAgICAgICAgICAgICAgICAgICAgKGQgPSBtKSwNCiAgICAgICAgICAgICAg ICAgICAgcyAmJiB1KQ0KICAgICAgICAgICAgICAgICkNCiAgICAgICAgICAgICAgICAgIGU6 IHsNCiAgICAgICAgICAgICAgICAgICAgZm9yIChmID0gdSwgaCA9IDAsIHAgPSBjID0gczsg cDsgcCA9IEtyKHApKSBoKys7DQogICAgICAgICAgICAgICAgICAgIGZvciAocCA9IDAsIG0g PSBmOyBtOyBtID0gS3IobSkpIHArKzsNCiAgICAgICAgICAgICAgICAgICAgZm9yICg7IDAg PCBoIC0gcDspIChjID0gS3IoYykpLCBoLS07DQogICAgICAgICAgICAgICAgICAgIGZvciAo OyAwIDwgcCAtIGg7KSAoZiA9IEtyKGYpKSwgcC0tOw0KICAgICAgICAgICAgICAgICAgICBm b3IgKDsgaC0tOykgew0KICAgICAgICAgICAgICAgICAgICAgIGlmIChjID09PSBmIHx8IChu dWxsICE9PSBmICYmIGMgPT09IGYuYWx0ZXJuYXRlKSkgYnJlYWsgZTsNCiAgICAgICAgICAg ICAgICAgICAgICAoYyA9IEtyKGMpKSwgKGYgPSBLcihmKSk7DQogICAgICAgICAgICAgICAg ICAgIH0NCiAgICAgICAgICAgICAgICAgICAgYyA9IG51bGw7DQogICAgICAgICAgICAgICAg ICB9DQogICAgICAgICAgICAgICAgZWxzZSBjID0gbnVsbDsNCiAgICAgICAgICAgICAgICBu dWxsICE9PSBzICYmIFFyKGksIGwsIHMsIGMsICExKSwgbnVsbCAhPT0gdSAmJiBudWxsICE9 PSBkICYmIFFyKGksIGQsIHUsIGMsICEwKTsNCiAgICAgICAgICAgICAgfQ0KICAgICAgICAg ICAgICBpZiAoInNlbGVjdCIgPT09IChzID0gKGwgPSByID8geG8ocikgOiB3aW5kb3cpLm5v ZGVOYW1lICYmIGwubm9kZU5hbWUudG9Mb3dlckNhc2UoKSkgfHwgKCJpbnB1dCIgPT09IHMg JiYgImZpbGUiID09PSBsLnR5cGUpKSB2YXIgZyA9IFluOw0KICAgICAgICAgICAgICBlbHNl IGlmIChIbihsKSkNCiAgICAgICAgICAgICAgICBpZiAoWG4pIGcgPSBpcjsNCiAgICAgICAg ICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgIGcgPSBvcjsNCiAgICAgICAgICAg ICAgICAgIHZhciB2ID0gcnI7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICBl bHNlIChzID0gbC5ub2RlTmFtZSkgJiYgImlucHV0IiA9PT0gcy50b0xvd2VyQ2FzZSgpICYm ICgiY2hlY2tib3giID09PSBsLnR5cGUgfHwgInJhZGlvIiA9PT0gbC50eXBlKSAmJiAoZyA9 IGFyKTsNCiAgICAgICAgICAgICAgc3dpdGNoICgNCiAgICAgICAgICAgICAgKGcgJiYgKGcg PSBnKGUsIHIpKSA/IHFuKGksIGcsIG4sIG8pIDogKHYgJiYgdihlLCBsLCByKSwgImZvY3Vz b3V0IiA9PT0gZSAmJiAodiA9IGwuX3dyYXBwZXJTdGF0ZSkgJiYgdi5jb250cm9sbGVkICYm ICJudW1iZXIiID09PSBsLnR5cGUgJiYgZWUobCwgIm51bWJlciIsIGwudmFsdWUpKSwgKHYg PSByID8geG8ocikgOiB3aW5kb3cpLCBlKQ0KICAgICAgICAgICAgICApIHsNCiAgICAgICAg ICAgICAgICBjYXNlICJmb2N1c2luIjoNCiAgICAgICAgICAgICAgICAgIChIbih2KSB8fCAi dHJ1ZSIgPT09IHYuY29udGVudEVkaXRhYmxlKSAmJiAoKGdyID0gdiksICh2ciA9IHIpLCAo eXIgPSBudWxsKSk7DQogICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAg ICBjYXNlICJmb2N1c291dCI6DQogICAgICAgICAgICAgICAgICB5ciA9IHZyID0gZ3IgPSBu dWxsOw0KICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAi bW91c2Vkb3duIjoNCiAgICAgICAgICAgICAgICAgIGJyID0gITA7DQogICAgICAgICAgICAg ICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJjb250ZXh0bWVudSI6DQogICAg ICAgICAgICAgICAgY2FzZSAibW91c2V1cCI6DQogICAgICAgICAgICAgICAgY2FzZSAiZHJh Z2VuZCI6DQogICAgICAgICAgICAgICAgICAoYnIgPSAhMSksIHdyKGksIG4sIG8pOw0KICAg ICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAic2VsZWN0aW9u Y2hhbmdlIjoNCiAgICAgICAgICAgICAgICAgIGlmIChtcikgYnJlYWs7DQogICAgICAgICAg ICAgICAgY2FzZSAia2V5ZG93biI6DQogICAgICAgICAgICAgICAgY2FzZSAia2V5dXAiOg0K ICAgICAgICAgICAgICAgICAgd3IoaSwgbiwgbyk7DQogICAgICAgICAgICAgIH0NCiAgICAg ICAgICAgICAgdmFyIHk7DQogICAgICAgICAgICAgIGlmICh6bikNCiAgICAgICAgICAgICAg ICBlOiB7DQogICAgICAgICAgICAgICAgICBzd2l0Y2ggKGUpIHsNCiAgICAgICAgICAgICAg ICAgICAgY2FzZSAiY29tcG9zaXRpb25zdGFydCI6DQogICAgICAgICAgICAgICAgICAgICAg dmFyIGIgPSAib25Db21wb3NpdGlvblN0YXJ0IjsNCiAgICAgICAgICAgICAgICAgICAgICBi cmVhayBlOw0KICAgICAgICAgICAgICAgICAgICBjYXNlICJjb21wb3NpdGlvbmVuZCI6DQog ICAgICAgICAgICAgICAgICAgICAgYiA9ICJvbkNvbXBvc2l0aW9uRW5kIjsNCiAgICAgICAg ICAgICAgICAgICAgICBicmVhayBlOw0KICAgICAgICAgICAgICAgICAgICBjYXNlICJjb21w b3NpdGlvbnVwZGF0ZSI6DQogICAgICAgICAgICAgICAgICAgICAgYiA9ICJvbkNvbXBvc2l0 aW9uVXBkYXRlIjsNCiAgICAgICAgICAgICAgICAgICAgICBicmVhayBlOw0KICAgICAgICAg ICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgYiA9IHZvaWQgMDsNCiAgICAgICAgICAg ICAgICB9DQogICAgICAgICAgICAgIGVsc2UgV24gPyBEbihlLCBuKSAmJiAoYiA9ICJvbkNv bXBvc2l0aW9uRW5kIikgOiAia2V5ZG93biIgPT09IGUgJiYgMjI5ID09PSBuLmtleUNvZGUg JiYgKGIgPSAib25Db21wb3NpdGlvblN0YXJ0Iik7DQogICAgICAgICAgICAgIGIgJiYNCiAg ICAgICAgICAgICAgICAoTG4gJiYgImtvIiAhPT0gbi5sb2NhbGUgJiYgKFduIHx8ICJvbkNv bXBvc2l0aW9uU3RhcnQiICE9PSBiID8gIm9uQ29tcG9zaXRpb25FbmQiID09PSBiICYmIFdu ICYmICh5ID0gZW4oKSkgOiAoKFp0ID0gInZhbHVlIiBpbiAoWHQgPSBvKSA/IFh0LnZhbHVl IDogWHQudGV4dENvbnRlbnQpLCAoV24gPSAhMCkpKSwNCiAgICAgICAgICAgICAgICAgIDAg PCAodiA9ICRyKHIsIGIpKS5sZW5ndGggJiYgKChiID0gbmV3IHduKGIsIGUsIG51bGwsIG4s IG8pKSwgaS5wdXNoKHsgZXZlbnQ6IGIsIGxpc3RlbmVyczogdiB9KSwgeSA/IChiLmRhdGEg PSB5KSA6IG51bGwgIT09ICh5ID0gVW4obikpICYmIChiLmRhdGEgPSB5KSkpLA0KICAgICAg ICAgICAgICAgICh5ID0gSW4NCiAgICAgICAgICAgICAgICAgID8gKGZ1bmN0aW9uIChlLCB0 KSB7DQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZSkgew0KICAgICAgICAgICAgICAg ICAgICAgIGNhc2UgImNvbXBvc2l0aW9uZW5kIjoNCiAgICAgICAgICAgICAgICAgICAgICAg IHJldHVybiBVbih0KTsNCiAgICAgICAgICAgICAgICAgICAgICBjYXNlICJrZXlwcmVzcyI6 DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMzIgIT09IHQud2hpY2ggPyBudWxs IDogKChCbiA9ICEwKSwgRm4pOw0KICAgICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHRJ bnB1dCI6DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKGUgPSB0LmRhdGEpID09 PSBGbiAmJiBCbiA/IG51bGwgOiBlOw0KICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6 DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsNCiAgICAgICAgICAgICAg ICAgICAgfQ0KICAgICAgICAgICAgICAgICAgfSkoZSwgbikNCiAgICAgICAgICAgICAgICAg IDogKGZ1bmN0aW9uIChlLCB0KSB7DQogICAgICAgICAgICAgICAgICAgIGlmIChXbikgcmV0 dXJuICJjb21wb3NpdGlvbmVuZCIgPT09IGUgfHwgKCF6biAmJiBEbihlLCB0KSkgPyAoKGUg PSBlbigpKSwgKEp0ID0gWnQgPSBYdCA9IG51bGwpLCAoV24gPSAhMSksIGUpIDogbnVsbDsN CiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChlKSB7DQogICAgICAgICAgICAgICAgICAg ICAgY2FzZSAicGFzdGUiOg0KICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAg ICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsNCiAgICAgICAgICAgICAgICAgICAg ICBjYXNlICJrZXlwcmVzcyI6DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoISh0LmN0 cmxLZXkgfHwgdC5hbHRLZXkgfHwgdC5tZXRhS2V5KSB8fCAodC5jdHJsS2V5ICYmIHQuYWx0 S2V5KSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodC5jaGFyICYmIDEgPCB0 LmNoYXIubGVuZ3RoKSByZXR1cm4gdC5jaGFyOw0KICAgICAgICAgICAgICAgICAgICAgICAg ICBpZiAodC53aGljaCkgcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUodC53aGljaCk7DQog ICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1 cm4gbnVsbDsNCiAgICAgICAgICAgICAgICAgICAgICBjYXNlICJjb21wb3NpdGlvbmVuZCI6 DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gTG4gJiYgImtvIiAhPT0gdC5sb2Nh bGUgPyBudWxsIDogdC5kYXRhOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAg ICAgICAgICB9KShlLCBuKSkgJiYNCiAgICAgICAgICAgICAgICAwIDwgKHIgPSAkcihyLCAi b25CZWZvcmVJbnB1dCIpKS5sZW5ndGggJiYNCiAgICAgICAgICAgICAgICAoKG8gPSBuZXcg d24oIm9uQmVmb3JlSW5wdXQiLCAiYmVmb3JlaW5wdXQiLCBudWxsLCBuLCBvKSksIGkucHVz aCh7IGV2ZW50OiBvLCBsaXN0ZW5lcnM6IHIgfSksIChvLmRhdGEgPSB5KSk7DQogICAgICAg ICAgICB9DQogICAgICAgICAgICBGcihpLCB0KTsNCiAgICAgICAgICB9KTsNCiAgICAgICAg fQ0KICAgICAgICBmdW5jdGlvbiBxcihlLCB0LCBuKSB7DQogICAgICAgICAgcmV0dXJuIHsg aW5zdGFuY2U6IGUsIGxpc3RlbmVyOiB0LCBjdXJyZW50VGFyZ2V0OiBuIH07DQogICAgICAg IH0NCiAgICAgICAgZnVuY3Rpb24gJHIoZSwgdCkgew0KICAgICAgICAgIGZvciAodmFyIG4g PSB0ICsgIkNhcHR1cmUiLCByID0gW107IG51bGwgIT09IGU7KSB7DQogICAgICAgICAgICB2 YXIgbyA9IGUsDQogICAgICAgICAgICAgIGEgPSBvLnN0YXRlTm9kZTsNCiAgICAgICAgICAg IDUgPT09IG8udGFnICYmIG51bGwgIT09IGEgJiYgKChvID0gYSksIG51bGwgIT0gKGEgPSBB ZShlLCBuKSkgJiYgci51bnNoaWZ0KHFyKGUsIGEsIG8pKSwgbnVsbCAhPSAoYSA9IEFlKGUs IHQpKSAmJiByLnB1c2gocXIoZSwgYSwgbykpKSwgKGUgPSBlLnJldHVybik7DQogICAgICAg ICAgfQ0KICAgICAgICAgIHJldHVybiByOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9u IEtyKGUpIHsNCiAgICAgICAgICBpZiAobnVsbCA9PT0gZSkgcmV0dXJuIG51bGw7DQogICAg ICAgICAgZG8gew0KICAgICAgICAgICAgZSA9IGUucmV0dXJuOw0KICAgICAgICAgIH0gd2hp bGUgKGUgJiYgNSAhPT0gZS50YWcpOw0KICAgICAgICAgIHJldHVybiBlIHx8IG51bGw7DQog ICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gUXIoZSwgdCwgbiwgciwgbykgew0KICAgICAg ICAgIGZvciAodmFyIGEgPSB0Ll9yZWFjdE5hbWUsIGkgPSBbXTsgbnVsbCAhPT0gbiAmJiBu ICE9PSByOykgew0KICAgICAgICAgICAgdmFyIGwgPSBuLA0KICAgICAgICAgICAgICBzID0g bC5hbHRlcm5hdGUsDQogICAgICAgICAgICAgIHUgPSBsLnN0YXRlTm9kZTsNCiAgICAgICAg ICAgIGlmIChudWxsICE9PSBzICYmIHMgPT09IHIpIGJyZWFrOw0KICAgICAgICAgICAgNSA9 PT0gbC50YWcgJiYgbnVsbCAhPT0gdSAmJiAoKGwgPSB1KSwgbyA/IG51bGwgIT0gKHMgPSBB ZShuLCBhKSkgJiYgaS51bnNoaWZ0KHFyKG4sIHMsIGwpKSA6IG8gfHwgKG51bGwgIT0gKHMg PSBBZShuLCBhKSkgJiYgaS5wdXNoKHFyKG4sIHMsIGwpKSkpLCAobiA9IG4ucmV0dXJuKTsN CiAgICAgICAgICB9DQogICAgICAgICAgMCAhPT0gaS5sZW5ndGggJiYgZS5wdXNoKHsgZXZl bnQ6IHQsIGxpc3RlbmVyczogaSB9KTsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgR3IgPSAv XHJcbj8vZywNCiAgICAgICAgICBZciA9IC9cdTAwMDB8XHVGRkZEL2c7DQogICAgICAgIGZ1 bmN0aW9uIFhyKGUpIHsNCiAgICAgICAgICByZXR1cm4gKCJzdHJpbmciID09PSB0eXBlb2Yg ZSA/IGUgOiAiIiArIGUpLnJlcGxhY2UoR3IsICJcbiIpLnJlcGxhY2UoWXIsICIiKTsNCiAg ICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBacihlLCB0LCBuKSB7DQogICAgICAgICAgaWYg KCgodCA9IFhyKHQpKSwgWHIoZSkgIT09IHQgJiYgbikpIHRocm93IEVycm9yKGEoNDI1KSk7 DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gSnIoKSB7IH0NCiAgICAgICAgdmFyIGVv ID0gbnVsbCwNCiAgICAgICAgICB0byA9IG51bGw7DQogICAgICAgIGZ1bmN0aW9uIG5vKGUs IHQpIHsNCiAgICAgICAgICByZXR1cm4gKA0KICAgICAgICAgICAgInRleHRhcmVhIiA9PT0g ZSB8fA0KICAgICAgICAgICAgIm5vc2NyaXB0IiA9PT0gZSB8fA0KICAgICAgICAgICAgInN0 cmluZyIgPT09IHR5cGVvZiB0LmNoaWxkcmVuIHx8DQogICAgICAgICAgICAibnVtYmVyIiA9 PT0gdHlwZW9mIHQuY2hpbGRyZW4gfHwNCiAgICAgICAgICAgICgib2JqZWN0IiA9PT0gdHlw ZW9mIHQuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwgJiYgbnVsbCAhPT0gdC5kYW5nZXJvdXNs eVNldElubmVySFRNTCAmJiBudWxsICE9IHQuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwuX19o dG1sKQ0KICAgICAgICAgICk7DQogICAgICAgIH0NCiAgICAgICAgdmFyIHJvID0gImZ1bmN0 aW9uIiA9PT0gdHlwZW9mIHNldFRpbWVvdXQgPyBzZXRUaW1lb3V0IDogdm9pZCAwLA0KICAg ICAgICAgIG9vID0gImZ1bmN0aW9uIiA9PT0gdHlwZW9mIGNsZWFyVGltZW91dCA/IGNsZWFy VGltZW91dCA6IHZvaWQgMCwNCiAgICAgICAgICBhbyA9ICJmdW5jdGlvbiIgPT09IHR5cGVv ZiBQcm9taXNlID8gUHJvbWlzZSA6IHZvaWQgMCwNCiAgICAgICAgICBpbyA9DQogICAgICAg ICAgICAiZnVuY3Rpb24iID09PSB0eXBlb2YgcXVldWVNaWNyb3Rhc2sNCiAgICAgICAgICAg ICAgPyBxdWV1ZU1pY3JvdGFzaw0KICAgICAgICAgICAgICA6ICJ1bmRlZmluZWQiICE9PSB0 eXBlb2YgYW8NCiAgICAgICAgICAgICAgICA/IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAg ICAgICAgICByZXR1cm4gYW8ucmVzb2x2ZShudWxsKS50aGVuKGUpLmNhdGNoKGxvKTsNCiAg ICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgOiBybzsNCiAgICAgICAgZnVuY3Rp b24gbG8oZSkgew0KICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgew0KICAgICAg ICAgICAgdGhyb3cgZTsNCiAgICAgICAgICB9KTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5j dGlvbiBzbyhlLCB0KSB7DQogICAgICAgICAgdmFyIG4gPSB0LA0KICAgICAgICAgICAgciA9 IDA7DQogICAgICAgICAgZG8gew0KICAgICAgICAgICAgdmFyIG8gPSBuLm5leHRTaWJsaW5n Ow0KICAgICAgICAgICAgaWYgKChlLnJlbW92ZUNoaWxkKG4pLCBvICYmIDggPT09IG8ubm9k ZVR5cGUpKQ0KICAgICAgICAgICAgICBpZiAoIi8kIiA9PT0gKG4gPSBvLmRhdGEpKSB7DQog ICAgICAgICAgICAgICAgaWYgKDAgPT09IHIpIHJldHVybiBlLnJlbW92ZUNoaWxkKG8pLCB2 b2lkIFd0KHQpOw0KICAgICAgICAgICAgICAgIHItLTsNCiAgICAgICAgICAgICAgfSBlbHNl ICgiJCIgIT09IG4gJiYgIiQ/IiAhPT0gbiAmJiAiJCEiICE9PSBuKSB8fCByKys7DQogICAg ICAgICAgICBuID0gbzsNCiAgICAgICAgICB9IHdoaWxlIChuKTsNCiAgICAgICAgICBXdCh0 KTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiB1byhlKSB7DQogICAgICAgICAgZm9y ICg7IG51bGwgIT0gZTsgZSA9IGUubmV4dFNpYmxpbmcpIHsNCiAgICAgICAgICAgIHZhciB0 ID0gZS5ub2RlVHlwZTsNCiAgICAgICAgICAgIGlmICgxID09PSB0IHx8IDMgPT09IHQpIGJy ZWFrOw0KICAgICAgICAgICAgaWYgKDggPT09IHQpIHsNCiAgICAgICAgICAgICAgaWYgKCIk IiA9PT0gKHQgPSBlLmRhdGEpIHx8ICIkISIgPT09IHQgfHwgIiQ/IiA9PT0gdCkgYnJlYWs7 DQogICAgICAgICAgICAgIGlmICgiLyQiID09PSB0KSByZXR1cm4gbnVsbDsNCiAgICAgICAg ICAgIH0NCiAgICAgICAgICB9DQogICAgICAgICAgcmV0dXJuIGU7DQogICAgICAgIH0NCiAg ICAgICAgZnVuY3Rpb24gY28oZSkgew0KICAgICAgICAgIGUgPSBlLnByZXZpb3VzU2libGlu ZzsNCiAgICAgICAgICBmb3IgKHZhciB0ID0gMDsgZTspIHsNCiAgICAgICAgICAgIGlmICg4 ID09PSBlLm5vZGVUeXBlKSB7DQogICAgICAgICAgICAgIHZhciBuID0gZS5kYXRhOw0KICAg ICAgICAgICAgICBpZiAoIiQiID09PSBuIHx8ICIkISIgPT09IG4gfHwgIiQ/IiA9PT0gbikg ew0KICAgICAgICAgICAgICAgIGlmICgwID09PSB0KSByZXR1cm4gZTsNCiAgICAgICAgICAg ICAgICB0LS07DQogICAgICAgICAgICAgIH0gZWxzZSAiLyQiID09PSBuICYmIHQrKzsNCiAg ICAgICAgICAgIH0NCiAgICAgICAgICAgIGUgPSBlLnByZXZpb3VzU2libGluZzsNCiAgICAg ICAgICB9DQogICAgICAgICAgcmV0dXJuIG51bGw7DQogICAgICAgIH0NCiAgICAgICAgdmFy IGZvID0gTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc2xpY2UoMiksDQogICAgICAgICAg cG8gPSAiX19yZWFjdEZpYmVyJCIgKyBmbywNCiAgICAgICAgICBobyA9ICJfX3JlYWN0UHJv cHMkIiArIGZvLA0KICAgICAgICAgIG1vID0gIl9fcmVhY3RDb250YWluZXIkIiArIGZvLA0K ICAgICAgICAgIGdvID0gIl9fcmVhY3RFdmVudHMkIiArIGZvLA0KICAgICAgICAgIHZvID0g Il9fcmVhY3RMaXN0ZW5lcnMkIiArIGZvLA0KICAgICAgICAgIHlvID0gIl9fcmVhY3RIYW5k bGVzJCIgKyBmbzsNCiAgICAgICAgZnVuY3Rpb24gYm8oZSkgew0KICAgICAgICAgIHZhciB0 ID0gZVtwb107DQogICAgICAgICAgaWYgKHQpIHJldHVybiB0Ow0KICAgICAgICAgIGZvciAo dmFyIG4gPSBlLnBhcmVudE5vZGU7IG47KSB7DQogICAgICAgICAgICBpZiAoKHQgPSBuW21v XSB8fCBuW3BvXSkpIHsNCiAgICAgICAgICAgICAgaWYgKCgobiA9IHQuYWx0ZXJuYXRlKSwg bnVsbCAhPT0gdC5jaGlsZCB8fCAobnVsbCAhPT0gbiAmJiBudWxsICE9PSBuLmNoaWxkKSkp DQogICAgICAgICAgICAgICAgZm9yIChlID0gY28oZSk7IG51bGwgIT09IGU7KSB7DQogICAg ICAgICAgICAgICAgICBpZiAoKG4gPSBlW3BvXSkpIHJldHVybiBuOw0KICAgICAgICAgICAg ICAgICAgZSA9IGNvKGUpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgcmV0 dXJuIHQ7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBuID0gKGUgPSBuKS5wYXJlbnRO b2RlOw0KICAgICAgICAgIH0NCiAgICAgICAgICByZXR1cm4gbnVsbDsNCiAgICAgICAgfQ0K ICAgICAgICBmdW5jdGlvbiB3byhlKSB7DQogICAgICAgICAgcmV0dXJuICEoZSA9IGVbcG9d IHx8IGVbbW9dKSB8fCAoNSAhPT0gZS50YWcgJiYgNiAhPT0gZS50YWcgJiYgMTMgIT09IGUu dGFnICYmIDMgIT09IGUudGFnKSA/IG51bGwgOiBlOw0KICAgICAgICB9DQogICAgICAgIGZ1 bmN0aW9uIHhvKGUpIHsNCiAgICAgICAgICBpZiAoNSA9PT0gZS50YWcgfHwgNiA9PT0gZS50 YWcpIHJldHVybiBlLnN0YXRlTm9kZTsNCiAgICAgICAgICB0aHJvdyBFcnJvcihhKDMzKSk7 DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gU28oZSkgew0KICAgICAgICAgIHJldHVy biBlW2hvXSB8fCBudWxsOw0KICAgICAgICB9DQogICAgICAgIHZhciBrbyA9IFtdLA0KICAg ICAgICAgIEVvID0gLTE7DQogICAgICAgIGZ1bmN0aW9uIENvKGUpIHsNCiAgICAgICAgICBy ZXR1cm4geyBjdXJyZW50OiBlIH07DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gUm8o ZSkgew0KICAgICAgICAgIDAgPiBFbyB8fCAoKGUuY3VycmVudCA9IGtvW0VvXSksIChrb1tF b10gPSBudWxsKSwgRW8tLSk7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gX28oZSwg dCkgew0KICAgICAgICAgIEVvKyssIChrb1tFb10gPSBlLmN1cnJlbnQpLCAoZS5jdXJyZW50 ID0gdCk7DQogICAgICAgIH0NCiAgICAgICAgdmFyIFBvID0ge30sDQogICAgICAgICAgT28g PSBDbyhQbyksDQogICAgICAgICAgTm8gPSBDbyghMSksDQogICAgICAgICAgVG8gPSBQbzsN CiAgICAgICAgZnVuY3Rpb24gQW8oZSwgdCkgew0KICAgICAgICAgIHZhciBuID0gZS50eXBl LmNvbnRleHRUeXBlczsNCiAgICAgICAgICBpZiAoIW4pIHJldHVybiBQbzsNCiAgICAgICAg ICB2YXIgciA9IGUuc3RhdGVOb2RlOw0KICAgICAgICAgIGlmIChyICYmIHIuX19yZWFjdElu dGVybmFsTWVtb2l6ZWRVbm1hc2tlZENoaWxkQ29udGV4dCA9PT0gdCkgcmV0dXJuIHIuX19y ZWFjdEludGVybmFsTWVtb2l6ZWRNYXNrZWRDaGlsZENvbnRleHQ7DQogICAgICAgICAgdmFy IG8sDQogICAgICAgICAgICBhID0ge307DQogICAgICAgICAgZm9yIChvIGluIG4pIGFbb10g PSB0W29dOw0KICAgICAgICAgIHJldHVybiByICYmICgoKGUgPSBlLnN0YXRlTm9kZSkuX19y ZWFjdEludGVybmFsTWVtb2l6ZWRVbm1hc2tlZENoaWxkQ29udGV4dCA9IHQpLCAoZS5fX3Jl YWN0SW50ZXJuYWxNZW1vaXplZE1hc2tlZENoaWxkQ29udGV4dCA9IGEpKSwgYTsNCiAgICAg ICAgfQ0KICAgICAgICBmdW5jdGlvbiBNbyhlKSB7DQogICAgICAgICAgcmV0dXJuIG51bGwg IT09IChlID0gZS5jaGlsZENvbnRleHRUeXBlcykgJiYgdm9pZCAwICE9PSBlOw0KICAgICAg ICB9DQogICAgICAgIGZ1bmN0aW9uIHpvKCkgew0KICAgICAgICAgIFJvKE5vKSwgUm8oT28p Ow0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIGpvKGUsIHQsIG4pIHsNCiAgICAgICAg ICBpZiAoT28uY3VycmVudCAhPT0gUG8pIHRocm93IEVycm9yKGEoMTY4KSk7DQogICAgICAg ICAgX28oT28sIHQpLCBfbyhObywgbik7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24g SW8oZSwgdCwgbikgew0KICAgICAgICAgIHZhciByID0gZS5zdGF0ZU5vZGU7DQogICAgICAg ICAgaWYgKCgodCA9IHQuY2hpbGRDb250ZXh0VHlwZXMpLCAiZnVuY3Rpb24iICE9PSB0eXBl b2Ygci5nZXRDaGlsZENvbnRleHQpKSByZXR1cm4gbjsNCiAgICAgICAgICBmb3IgKHZhciBv IGluIChyID0gci5nZXRDaGlsZENvbnRleHQoKSkpIGlmICghKG8gaW4gdCkpIHRocm93IEVy cm9yKGEoMTA4LCBWKGUpIHx8ICJVbmtub3duIiwgbykpOw0KICAgICAgICAgIHJldHVybiBM KHt9LCBuLCByKTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBMbyhlKSB7DQogICAg ICAgICAgcmV0dXJuIChlID0gKChlID0gZS5zdGF0ZU5vZGUpICYmIGUuX19yZWFjdEludGVy bmFsTWVtb2l6ZWRNZXJnZWRDaGlsZENvbnRleHQpIHx8IFBvKSwgKFRvID0gT28uY3VycmVu dCksIF9vKE9vLCBlKSwgX28oTm8sIE5vLmN1cnJlbnQpLCAhMDsNCiAgICAgICAgfQ0KICAg ICAgICBmdW5jdGlvbiBGbyhlLCB0LCBuKSB7DQogICAgICAgICAgdmFyIHIgPSBlLnN0YXRl Tm9kZTsNCiAgICAgICAgICBpZiAoIXIpIHRocm93IEVycm9yKGEoMTY5KSk7DQogICAgICAg ICAgbiA/ICgoZSA9IElvKGUsIHQsIFRvKSksIChyLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVk TWVyZ2VkQ2hpbGRDb250ZXh0ID0gZSksIFJvKE5vKSwgUm8oT28pLCBfbyhPbywgZSkpIDog Um8oTm8pLCBfbyhObywgbik7DQogICAgICAgIH0NCiAgICAgICAgdmFyIEJvID0gbnVsbCwN CiAgICAgICAgICBEbyA9ICExLA0KICAgICAgICAgIFVvID0gITE7DQogICAgICAgIGZ1bmN0 aW9uIFdvKGUpIHsNCiAgICAgICAgICBudWxsID09PSBCbyA/IChCbyA9IFtlXSkgOiBCby5w dXNoKGUpOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIFZvKCkgew0KICAgICAgICAg IGlmICghVW8gJiYgbnVsbCAhPT0gQm8pIHsNCiAgICAgICAgICAgIFVvID0gITA7DQogICAg ICAgICAgICB2YXIgZSA9IDAsDQogICAgICAgICAgICAgIHQgPSBidDsNCiAgICAgICAgICAg IHRyeSB7DQogICAgICAgICAgICAgIHZhciBuID0gQm87DQogICAgICAgICAgICAgIGZvciAo YnQgPSAxOyBlIDwgbi5sZW5ndGg7IGUrKykgew0KICAgICAgICAgICAgICAgIHZhciByID0g bltlXTsNCiAgICAgICAgICAgICAgICBkbyB7DQogICAgICAgICAgICAgICAgICByID0gcigh MCk7DQogICAgICAgICAgICAgICAgfSB3aGlsZSAobnVsbCAhPT0gcik7DQogICAgICAgICAg ICAgIH0NCiAgICAgICAgICAgICAgKEJvID0gbnVsbCksIChEbyA9ICExKTsNCiAgICAgICAg ICAgIH0gY2F0Y2ggKG8pIHsNCiAgICAgICAgICAgICAgdGhyb3cgKG51bGwgIT09IEJvICYm IChCbyA9IEJvLnNsaWNlKGUgKyAxKSksIEtlKEplLCBWbyksIG8pOw0KICAgICAgICAgICAg fSBmaW5hbGx5IHsNCiAgICAgICAgICAgICAgKGJ0ID0gdCksIChVbyA9ICExKTsNCiAgICAg ICAgICAgIH0NCiAgICAgICAgICB9DQogICAgICAgICAgcmV0dXJuIG51bGw7DQogICAgICAg IH0NCiAgICAgICAgdmFyIEhvID0gW10sDQogICAgICAgICAgcW8gPSAwLA0KICAgICAgICAg ICRvID0gbnVsbCwNCiAgICAgICAgICBLbyA9IDAsDQogICAgICAgICAgUW8gPSBbXSwNCiAg ICAgICAgICBHbyA9IDAsDQogICAgICAgICAgWW8gPSBudWxsLA0KICAgICAgICAgIFhvID0g MSwNCiAgICAgICAgICBabyA9ICIiOw0KICAgICAgICBmdW5jdGlvbiBKbyhlLCB0KSB7DQog ICAgICAgICAgKEhvW3FvKytdID0gS28pLCAoSG9bcW8rK10gPSAkbyksICgkbyA9IGUpLCAo S28gPSB0KTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBlYShlLCB0LCBuKSB7DQog ICAgICAgICAgKFFvW0dvKytdID0gWG8pLCAoUW9bR28rK10gPSBabyksIChRb1tHbysrXSA9 IFlvKSwgKFlvID0gZSk7DQogICAgICAgICAgdmFyIHIgPSBYbzsNCiAgICAgICAgICBlID0g Wm87DQogICAgICAgICAgdmFyIG8gPSAzMiAtIGl0KHIpIC0gMTsNCiAgICAgICAgICAociAm PSB+KDEgPDwgbykpLCAobiArPSAxKTsNCiAgICAgICAgICB2YXIgYSA9IDMyIC0gaXQodCkg KyBvOw0KICAgICAgICAgIGlmICgzMCA8IGEpIHsNCiAgICAgICAgICAgIHZhciBpID0gbyAt IChvICUgNSk7DQogICAgICAgICAgICAoYSA9IChyICYgKCgxIDw8IGkpIC0gMSkpLnRvU3Ry aW5nKDMyKSksIChyID4+PSBpKSwgKG8gLT0gaSksIChYbyA9ICgxIDw8ICgzMiAtIGl0KHQp ICsgbykpIHwgKG4gPDwgbykgfCByKSwgKFpvID0gYSArIGUpOw0KICAgICAgICAgIH0gZWxz ZSAoWG8gPSAoMSA8PCBhKSB8IChuIDw8IG8pIHwgciksIChabyA9IGUpOw0KICAgICAgICB9 DQogICAgICAgIGZ1bmN0aW9uIHRhKGUpIHsNCiAgICAgICAgICBudWxsICE9PSBlLnJldHVy biAmJiAoSm8oZSwgMSksIGVhKGUsIDEsIDApKTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5j dGlvbiBuYShlKSB7DQogICAgICAgICAgZm9yICg7IGUgPT09ICRvOykgKCRvID0gSG9bLS1x b10pLCAoSG9bcW9dID0gbnVsbCksIChLbyA9IEhvWy0tcW9dKSwgKEhvW3FvXSA9IG51bGwp Ow0KICAgICAgICAgIGZvciAoOyBlID09PSBZbzspIChZbyA9IFFvWy0tR29dKSwgKFFvW0dv XSA9IG51bGwpLCAoWm8gPSBRb1stLUdvXSksIChRb1tHb10gPSBudWxsKSwgKFhvID0gUW9b LS1Hb10pLCAoUW9bR29dID0gbnVsbCk7DQogICAgICAgIH0NCiAgICAgICAgdmFyIHJhID0g bnVsbCwNCiAgICAgICAgICBvYSA9IG51bGwsDQogICAgICAgICAgYWEgPSAhMSwNCiAgICAg ICAgICBpYSA9IG51bGw7DQogICAgICAgIGZ1bmN0aW9uIGxhKGUsIHQpIHsNCiAgICAgICAg ICB2YXIgbiA9IEF1KDUsIG51bGwsIG51bGwsIDApOw0KICAgICAgICAgIChuLmVsZW1lbnRU eXBlID0gIkRFTEVURUQiKSwgKG4uc3RhdGVOb2RlID0gdCksIChuLnJldHVybiA9IGUpLCBu dWxsID09PSAodCA9IGUuZGVsZXRpb25zKSA/ICgoZS5kZWxldGlvbnMgPSBbbl0pLCAoZS5m bGFncyB8PSAxNikpIDogdC5wdXNoKG4pOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9u IHNhKGUsIHQpIHsNCiAgICAgICAgICBzd2l0Y2ggKGUudGFnKSB7DQogICAgICAgICAgICBj YXNlIDU6DQogICAgICAgICAgICAgIHZhciBuID0gZS50eXBlOw0KICAgICAgICAgICAgICBy ZXR1cm4gbnVsbCAhPT0gKHQgPSAxICE9PSB0Lm5vZGVUeXBlIHx8IG4udG9Mb3dlckNhc2Uo KSAhPT0gdC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpID8gbnVsbCA6IHQpICYmICgoZS5zdGF0 ZU5vZGUgPSB0KSwgKHJhID0gZSksIChvYSA9IHVvKHQuZmlyc3RDaGlsZCkpLCAhMCk7DQog ICAgICAgICAgICBjYXNlIDY6DQogICAgICAgICAgICAgIHJldHVybiBudWxsICE9PSAodCA9 ICIiID09PSBlLnBlbmRpbmdQcm9wcyB8fCAzICE9PSB0Lm5vZGVUeXBlID8gbnVsbCA6IHQp ICYmICgoZS5zdGF0ZU5vZGUgPSB0KSwgKHJhID0gZSksIChvYSA9IG51bGwpLCAhMCk7DQog ICAgICAgICAgICBjYXNlIDEzOg0KICAgICAgICAgICAgICByZXR1cm4gKA0KICAgICAgICAg ICAgICAgIG51bGwgIT09ICh0ID0gOCAhPT0gdC5ub2RlVHlwZSA/IG51bGwgOiB0KSAmJg0K ICAgICAgICAgICAgICAgICgobiA9IG51bGwgIT09IFlvID8geyBpZDogWG8sIG92ZXJmbG93 OiBabyB9IDogbnVsbCksDQogICAgICAgICAgICAgICAgICAoZS5tZW1vaXplZFN0YXRlID0g eyBkZWh5ZHJhdGVkOiB0LCB0cmVlQ29udGV4dDogbiwgcmV0cnlMYW5lOiAxMDczNzQxODI0 IH0pLA0KICAgICAgICAgICAgICAgICAgKChuID0gQXUoMTgsIG51bGwsIG51bGwsIDApKS5z dGF0ZU5vZGUgPSB0KSwNCiAgICAgICAgICAgICAgICAgIChuLnJldHVybiA9IGUpLA0KICAg ICAgICAgICAgICAgICAgKGUuY2hpbGQgPSBuKSwNCiAgICAgICAgICAgICAgICAgIChyYSA9 IGUpLA0KICAgICAgICAgICAgICAgICAgKG9hID0gbnVsbCksDQogICAgICAgICAgICAgICAg ICAhMCkNCiAgICAgICAgICAgICAgKTsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAg ICAgICAgIHJldHVybiAhMTsNCiAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgZnVu Y3Rpb24gdWEoZSkgew0KICAgICAgICAgIHJldHVybiAwICE9PSAoMSAmIGUubW9kZSkgJiYg MCA9PT0gKDEyOCAmIGUuZmxhZ3MpOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIGNh KGUpIHsNCiAgICAgICAgICBpZiAoYWEpIHsNCiAgICAgICAgICAgIHZhciB0ID0gb2E7DQog ICAgICAgICAgICBpZiAodCkgew0KICAgICAgICAgICAgICB2YXIgbiA9IHQ7DQogICAgICAg ICAgICAgIGlmICghc2EoZSwgdCkpIHsNCiAgICAgICAgICAgICAgICBpZiAodWEoZSkpIHRo cm93IEVycm9yKGEoNDE4KSk7DQogICAgICAgICAgICAgICAgdCA9IHVvKG4ubmV4dFNpYmxp bmcpOw0KICAgICAgICAgICAgICAgIHZhciByID0gcmE7DQogICAgICAgICAgICAgICAgdCAm JiBzYShlLCB0KSA/IGxhKHIsIG4pIDogKChlLmZsYWdzID0gKC00MDk3ICYgZS5mbGFncykg fCAyKSwgKGFhID0gITEpLCAocmEgPSBlKSk7DQogICAgICAgICAgICAgIH0NCiAgICAgICAg ICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgIGlmICh1YShlKSkgdGhyb3cgRXJyb3IoYSg0 MTgpKTsNCiAgICAgICAgICAgICAgKGUuZmxhZ3MgPSAoLTQwOTcgJiBlLmZsYWdzKSB8IDIp LCAoYWEgPSAhMSksIChyYSA9IGUpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgIH0NCiAg ICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBkYShlKSB7DQogICAgICAgICAgZm9yIChlID0g ZS5yZXR1cm47IG51bGwgIT09IGUgJiYgNSAhPT0gZS50YWcgJiYgMyAhPT0gZS50YWcgJiYg MTMgIT09IGUudGFnOykgZSA9IGUucmV0dXJuOw0KICAgICAgICAgIHJhID0gZTsNCiAgICAg ICAgfQ0KICAgICAgICBmdW5jdGlvbiBmYShlKSB7DQogICAgICAgICAgaWYgKGUgIT09IHJh KSByZXR1cm4gITE7DQogICAgICAgICAgaWYgKCFhYSkgcmV0dXJuIGRhKGUpLCAoYWEgPSAh MCksICExOw0KICAgICAgICAgIHZhciB0Ow0KICAgICAgICAgIGlmICgoKHQgPSAzICE9PSBl LnRhZykgJiYgISh0ID0gNSAhPT0gZS50YWcpICYmICh0ID0gImhlYWQiICE9PSAodCA9IGUu dHlwZSkgJiYgImJvZHkiICE9PSB0ICYmICFubyhlLnR5cGUsIGUubWVtb2l6ZWRQcm9wcykp LCB0ICYmICh0ID0gb2EpKSkgew0KICAgICAgICAgICAgaWYgKHVhKGUpKSB0aHJvdyAocGEo KSwgRXJyb3IoYSg0MTgpKSk7DQogICAgICAgICAgICBmb3IgKDsgdDspIGxhKGUsIHQpLCAo dCA9IHVvKHQubmV4dFNpYmxpbmcpKTsNCiAgICAgICAgICB9DQogICAgICAgICAgaWYgKChk YShlKSwgMTMgPT09IGUudGFnKSkgew0KICAgICAgICAgICAgaWYgKCEoZSA9IG51bGwgIT09 IChlID0gZS5tZW1vaXplZFN0YXRlKSA/IGUuZGVoeWRyYXRlZCA6IG51bGwpKSB0aHJvdyBF cnJvcihhKDMxNykpOw0KICAgICAgICAgICAgZTogew0KICAgICAgICAgICAgICBmb3IgKGUg PSBlLm5leHRTaWJsaW5nLCB0ID0gMDsgZTspIHsNCiAgICAgICAgICAgICAgICBpZiAoOCA9 PT0gZS5ub2RlVHlwZSkgew0KICAgICAgICAgICAgICAgICAgdmFyIG4gPSBlLmRhdGE7DQog ICAgICAgICAgICAgICAgICBpZiAoIi8kIiA9PT0gbikgew0KICAgICAgICAgICAgICAgICAg ICBpZiAoMCA9PT0gdCkgew0KICAgICAgICAgICAgICAgICAgICAgIG9hID0gdW8oZS5uZXh0 U2libGluZyk7DQogICAgICAgICAgICAgICAgICAgICAgYnJlYWsgZTsNCiAgICAgICAgICAg ICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB0LS07DQogICAgICAgICAgICAgICAg ICB9IGVsc2UgKCIkIiAhPT0gbiAmJiAiJCEiICE9PSBuICYmICIkPyIgIT09IG4pIHx8IHQr KzsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZSA9IGUubmV4dFNpYmxp bmc7DQogICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgb2EgPSBudWxsOw0KICAgICAg ICAgICAgfQ0KICAgICAgICAgIH0gZWxzZSBvYSA9IHJhID8gdW8oZS5zdGF0ZU5vZGUubmV4 dFNpYmxpbmcpIDogbnVsbDsNCiAgICAgICAgICByZXR1cm4gITA7DQogICAgICAgIH0NCiAg ICAgICAgZnVuY3Rpb24gcGEoKSB7DQogICAgICAgICAgZm9yICh2YXIgZSA9IG9hOyBlOykg ZSA9IHVvKGUubmV4dFNpYmxpbmcpOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIGhh KCkgew0KICAgICAgICAgIChvYSA9IHJhID0gbnVsbCksIChhYSA9ICExKTsNCiAgICAgICAg fQ0KICAgICAgICBmdW5jdGlvbiBtYShlKSB7DQogICAgICAgICAgbnVsbCA9PT0gaWEgPyAo aWEgPSBbZV0pIDogaWEucHVzaChlKTsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgZ2EgPSB3 LlJlYWN0Q3VycmVudEJhdGNoQ29uZmlnOw0KICAgICAgICBmdW5jdGlvbiB2YShlLCB0KSB7 DQogICAgICAgICAgaWYgKGUgJiYgZS5kZWZhdWx0UHJvcHMpIHsNCiAgICAgICAgICAgIGZv ciAodmFyIG4gaW4gKCh0ID0gTCh7fSwgdCkpLCAoZSA9IGUuZGVmYXVsdFByb3BzKSkpIHZv aWQgMCA9PT0gdFtuXSAmJiAodFtuXSA9IGVbbl0pOw0KICAgICAgICAgICAgcmV0dXJuIHQ7 DQogICAgICAgICAgfQ0KICAgICAgICAgIHJldHVybiB0Ow0KICAgICAgICB9DQogICAgICAg IHZhciB5YSA9IENvKG51bGwpLA0KICAgICAgICAgIGJhID0gbnVsbCwNCiAgICAgICAgICB3 YSA9IG51bGwsDQogICAgICAgICAgeGEgPSBudWxsOw0KICAgICAgICBmdW5jdGlvbiBTYSgp IHsNCiAgICAgICAgICB4YSA9IHdhID0gYmEgPSBudWxsOw0KICAgICAgICB9DQogICAgICAg IGZ1bmN0aW9uIGthKGUpIHsNCiAgICAgICAgICB2YXIgdCA9IHlhLmN1cnJlbnQ7DQogICAg ICAgICAgUm8oeWEpLCAoZS5fY3VycmVudFZhbHVlID0gdCk7DQogICAgICAgIH0NCiAgICAg ICAgZnVuY3Rpb24gRWEoZSwgdCwgbikgew0KICAgICAgICAgIGZvciAoOyBudWxsICE9PSBl Oykgew0KICAgICAgICAgICAgdmFyIHIgPSBlLmFsdGVybmF0ZTsNCiAgICAgICAgICAgIGlm ICgoKGUuY2hpbGRMYW5lcyAmIHQpICE9PSB0ID8gKChlLmNoaWxkTGFuZXMgfD0gdCksIG51 bGwgIT09IHIgJiYgKHIuY2hpbGRMYW5lcyB8PSB0KSkgOiBudWxsICE9PSByICYmIChyLmNo aWxkTGFuZXMgJiB0KSAhPT0gdCAmJiAoci5jaGlsZExhbmVzIHw9IHQpLCBlID09PSBuKSkg YnJlYWs7DQogICAgICAgICAgICBlID0gZS5yZXR1cm47DQogICAgICAgICAgfQ0KICAgICAg ICB9DQogICAgICAgIGZ1bmN0aW9uIENhKGUsIHQpIHsNCiAgICAgICAgICAoYmEgPSBlKSwg KHhhID0gd2EgPSBudWxsKSwgbnVsbCAhPT0gKGUgPSBlLmRlcGVuZGVuY2llcykgJiYgbnVs bCAhPT0gZS5maXJzdENvbnRleHQgJiYgKDAgIT09IChlLmxhbmVzICYgdCkgJiYgKHdsID0g ITApLCAoZS5maXJzdENvbnRleHQgPSBudWxsKSk7DQogICAgICAgIH0NCiAgICAgICAgZnVu Y3Rpb24gUmEoZSkgew0KICAgICAgICAgIHZhciB0ID0gZS5fY3VycmVudFZhbHVlOw0KICAg ICAgICAgIGlmICh4YSAhPT0gZSkNCiAgICAgICAgICAgIGlmICgoKGUgPSB7IGNvbnRleHQ6 IGUsIG1lbW9pemVkVmFsdWU6IHQsIG5leHQ6IG51bGwgfSksIG51bGwgPT09IHdhKSkgew0K ICAgICAgICAgICAgICBpZiAobnVsbCA9PT0gYmEpIHRocm93IEVycm9yKGEoMzA4KSk7DQog ICAgICAgICAgICAgICh3YSA9IGUpLCAoYmEuZGVwZW5kZW5jaWVzID0geyBsYW5lczogMCwg Zmlyc3RDb250ZXh0OiBlIH0pOw0KICAgICAgICAgICAgfSBlbHNlIHdhID0gd2EubmV4dCA9 IGU7DQogICAgICAgICAgcmV0dXJuIHQ7DQogICAgICAgIH0NCiAgICAgICAgdmFyIF9hID0g bnVsbDsNCiAgICAgICAgZnVuY3Rpb24gUGEoZSkgew0KICAgICAgICAgIG51bGwgPT09IF9h ID8gKF9hID0gW2VdKSA6IF9hLnB1c2goZSk7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rp b24gT2EoZSwgdCwgbiwgcikgew0KICAgICAgICAgIHZhciBvID0gdC5pbnRlcmxlYXZlZDsN CiAgICAgICAgICByZXR1cm4gbnVsbCA9PT0gbyA/ICgobi5uZXh0ID0gbiksIFBhKHQpKSA6 ICgobi5uZXh0ID0gby5uZXh0KSwgKG8ubmV4dCA9IG4pKSwgKHQuaW50ZXJsZWF2ZWQgPSBu KSwgTmEoZSwgcik7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gTmEoZSwgdCkgew0K ICAgICAgICAgIGUubGFuZXMgfD0gdDsNCiAgICAgICAgICB2YXIgbiA9IGUuYWx0ZXJuYXRl Ow0KICAgICAgICAgIGZvciAobnVsbCAhPT0gbiAmJiAobi5sYW5lcyB8PSB0KSwgbiA9IGUs IGUgPSBlLnJldHVybjsgbnVsbCAhPT0gZTspIChlLmNoaWxkTGFuZXMgfD0gdCksIG51bGwg IT09IChuID0gZS5hbHRlcm5hdGUpICYmIChuLmNoaWxkTGFuZXMgfD0gdCksIChuID0gZSks IChlID0gZS5yZXR1cm4pOw0KICAgICAgICAgIHJldHVybiAzID09PSBuLnRhZyA/IG4uc3Rh dGVOb2RlIDogbnVsbDsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgVGEgPSAhMTsNCiAgICAg ICAgZnVuY3Rpb24gQWEoZSkgew0KICAgICAgICAgIGUudXBkYXRlUXVldWUgPSB7IGJhc2VT dGF0ZTogZS5tZW1vaXplZFN0YXRlLCBmaXJzdEJhc2VVcGRhdGU6IG51bGwsIGxhc3RCYXNl VXBkYXRlOiBudWxsLCBzaGFyZWQ6IHsgcGVuZGluZzogbnVsbCwgaW50ZXJsZWF2ZWQ6IG51 bGwsIGxhbmVzOiAwIH0sIGVmZmVjdHM6IG51bGwgfTsNCiAgICAgICAgfQ0KICAgICAgICBm dW5jdGlvbiBNYShlLCB0KSB7DQogICAgICAgICAgKGUgPSBlLnVwZGF0ZVF1ZXVlKSwgdC51 cGRhdGVRdWV1ZSA9PT0gZSAmJiAodC51cGRhdGVRdWV1ZSA9IHsgYmFzZVN0YXRlOiBlLmJh c2VTdGF0ZSwgZmlyc3RCYXNlVXBkYXRlOiBlLmZpcnN0QmFzZVVwZGF0ZSwgbGFzdEJhc2VV cGRhdGU6IGUubGFzdEJhc2VVcGRhdGUsIHNoYXJlZDogZS5zaGFyZWQsIGVmZmVjdHM6IGUu ZWZmZWN0cyB9KTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiB6YShlLCB0KSB7DQog ICAgICAgICAgcmV0dXJuIHsgZXZlbnRUaW1lOiBlLCBsYW5lOiB0LCB0YWc6IDAsIHBheWxv YWQ6IG51bGwsIGNhbGxiYWNrOiBudWxsLCBuZXh0OiBudWxsIH07DQogICAgICAgIH0NCiAg ICAgICAgZnVuY3Rpb24gamEoZSwgdCwgbikgew0KICAgICAgICAgIHZhciByID0gZS51cGRh dGVRdWV1ZTsNCiAgICAgICAgICBpZiAobnVsbCA9PT0gcikgcmV0dXJuIG51bGw7DQogICAg ICAgICAgaWYgKCgociA9IHIuc2hhcmVkKSwgMCAhPT0gKDIgJiBPcykpKSB7DQogICAgICAg ICAgICB2YXIgbyA9IHIucGVuZGluZzsNCiAgICAgICAgICAgIHJldHVybiBudWxsID09PSBv ID8gKHQubmV4dCA9IHQpIDogKCh0Lm5leHQgPSBvLm5leHQpLCAoby5uZXh0ID0gdCkpLCAo ci5wZW5kaW5nID0gdCksIE5hKGUsIG4pOw0KICAgICAgICAgIH0NCiAgICAgICAgICByZXR1 cm4gbnVsbCA9PT0gKG8gPSByLmludGVybGVhdmVkKSA/ICgodC5uZXh0ID0gdCksIFBhKHIp KSA6ICgodC5uZXh0ID0gby5uZXh0KSwgKG8ubmV4dCA9IHQpKSwgKHIuaW50ZXJsZWF2ZWQg PSB0KSwgTmEoZSwgbik7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gSWEoZSwgdCwg bikgew0KICAgICAgICAgIGlmIChudWxsICE9PSAodCA9IHQudXBkYXRlUXVldWUpICYmICgo dCA9IHQuc2hhcmVkKSwgMCAhPT0gKDQxOTQyNDAgJiBuKSkpIHsNCiAgICAgICAgICAgIHZh ciByID0gdC5sYW5lczsNCiAgICAgICAgICAgIChuIHw9IHIgJj0gZS5wZW5kaW5nTGFuZXMp LCAodC5sYW5lcyA9IG4pLCB5dChlLCBuKTsNCiAgICAgICAgICB9DQogICAgICAgIH0NCiAg ICAgICAgZnVuY3Rpb24gTGEoZSwgdCkgew0KICAgICAgICAgIHZhciBuID0gZS51cGRhdGVR dWV1ZSwNCiAgICAgICAgICAgIHIgPSBlLmFsdGVybmF0ZTsNCiAgICAgICAgICBpZiAobnVs bCAhPT0gciAmJiBuID09PSAociA9IHIudXBkYXRlUXVldWUpKSB7DQogICAgICAgICAgICB2 YXIgbyA9IG51bGwsDQogICAgICAgICAgICAgIGEgPSBudWxsOw0KICAgICAgICAgICAgaWYg KG51bGwgIT09IChuID0gbi5maXJzdEJhc2VVcGRhdGUpKSB7DQogICAgICAgICAgICAgIGRv IHsNCiAgICAgICAgICAgICAgICB2YXIgaSA9IHsgZXZlbnRUaW1lOiBuLmV2ZW50VGltZSwg bGFuZTogbi5sYW5lLCB0YWc6IG4udGFnLCBwYXlsb2FkOiBuLnBheWxvYWQsIGNhbGxiYWNr OiBuLmNhbGxiYWNrLCBuZXh0OiBudWxsIH07DQogICAgICAgICAgICAgICAgbnVsbCA9PT0g YSA/IChvID0gYSA9IGkpIDogKGEgPSBhLm5leHQgPSBpKSwgKG4gPSBuLm5leHQpOw0KICAg ICAgICAgICAgICB9IHdoaWxlIChudWxsICE9PSBuKTsNCiAgICAgICAgICAgICAgbnVsbCA9 PT0gYSA/IChvID0gYSA9IHQpIDogKGEgPSBhLm5leHQgPSB0KTsNCiAgICAgICAgICAgIH0g ZWxzZSBvID0gYSA9IHQ7DQogICAgICAgICAgICByZXR1cm4gKG4gPSB7IGJhc2VTdGF0ZTog ci5iYXNlU3RhdGUsIGZpcnN0QmFzZVVwZGF0ZTogbywgbGFzdEJhc2VVcGRhdGU6IGEsIHNo YXJlZDogci5zaGFyZWQsIGVmZmVjdHM6IHIuZWZmZWN0cyB9KSwgdm9pZCAoZS51cGRhdGVR dWV1ZSA9IG4pOw0KICAgICAgICAgIH0NCiAgICAgICAgICBudWxsID09PSAoZSA9IG4ubGFz dEJhc2VVcGRhdGUpID8gKG4uZmlyc3RCYXNlVXBkYXRlID0gdCkgOiAoZS5uZXh0ID0gdCks IChuLmxhc3RCYXNlVXBkYXRlID0gdCk7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24g RmEoZSwgdCwgbiwgcikgew0KICAgICAgICAgIHZhciBvID0gZS51cGRhdGVRdWV1ZTsNCiAg ICAgICAgICBUYSA9ICExOw0KICAgICAgICAgIHZhciBhID0gby5maXJzdEJhc2VVcGRhdGUs DQogICAgICAgICAgICBpID0gby5sYXN0QmFzZVVwZGF0ZSwNCiAgICAgICAgICAgIGwgPSBv LnNoYXJlZC5wZW5kaW5nOw0KICAgICAgICAgIGlmIChudWxsICE9PSBsKSB7DQogICAgICAg ICAgICBvLnNoYXJlZC5wZW5kaW5nID0gbnVsbDsNCiAgICAgICAgICAgIHZhciBzID0gbCwN CiAgICAgICAgICAgICAgdSA9IHMubmV4dDsNCiAgICAgICAgICAgIChzLm5leHQgPSBudWxs KSwgbnVsbCA9PT0gaSA/IChhID0gdSkgOiAoaS5uZXh0ID0gdSksIChpID0gcyk7DQogICAg ICAgICAgICB2YXIgYyA9IGUuYWx0ZXJuYXRlOw0KICAgICAgICAgICAgbnVsbCAhPT0gYyAm JiAobCA9IChjID0gYy51cGRhdGVRdWV1ZSkubGFzdEJhc2VVcGRhdGUpICE9PSBpICYmIChu dWxsID09PSBsID8gKGMuZmlyc3RCYXNlVXBkYXRlID0gdSkgOiAobC5uZXh0ID0gdSksIChj Lmxhc3RCYXNlVXBkYXRlID0gcykpOw0KICAgICAgICAgIH0NCiAgICAgICAgICBpZiAobnVs bCAhPT0gYSkgew0KICAgICAgICAgICAgdmFyIGQgPSBvLmJhc2VTdGF0ZTsNCiAgICAgICAg ICAgIGZvciAoaSA9IDAsIGMgPSB1ID0gcyA9IG51bGwsIGwgPSBhOyA7KSB7DQogICAgICAg ICAgICAgIHZhciBmID0gbC5sYW5lLA0KICAgICAgICAgICAgICAgIHAgPSBsLmV2ZW50VGlt ZTsNCiAgICAgICAgICAgICAgaWYgKChyICYgZikgPT09IGYpIHsNCiAgICAgICAgICAgICAg ICBudWxsICE9PSBjICYmIChjID0gYy5uZXh0ID0geyBldmVudFRpbWU6IHAsIGxhbmU6IDAs IHRhZzogbC50YWcsIHBheWxvYWQ6IGwucGF5bG9hZCwgY2FsbGJhY2s6IGwuY2FsbGJhY2ss IG5leHQ6IG51bGwgfSk7DQogICAgICAgICAgICAgICAgZTogew0KICAgICAgICAgICAgICAg ICAgdmFyIGggPSBlLA0KICAgICAgICAgICAgICAgICAgICBtID0gbDsNCiAgICAgICAgICAg ICAgICAgIHN3aXRjaCAoKChmID0gdCksIChwID0gbiksIG0udGFnKSkgew0KICAgICAgICAg ICAgICAgICAgICBjYXNlIDE6DQogICAgICAgICAgICAgICAgICAgICAgaWYgKCJmdW5jdGlv biIgPT09IHR5cGVvZiAoaCA9IG0ucGF5bG9hZCkpIHsNCiAgICAgICAgICAgICAgICAgICAg ICAgIGQgPSBoLmNhbGwocCwgZCwgZik7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVh ayBlOw0KICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICBk ID0gaDsNCiAgICAgICAgICAgICAgICAgICAgICBicmVhayBlOw0KICAgICAgICAgICAgICAg ICAgICBjYXNlIDM6DQogICAgICAgICAgICAgICAgICAgICAgaC5mbGFncyA9ICgtNjU1Mzcg JiBoLmZsYWdzKSB8IDEyODsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAwOg0KICAgICAg ICAgICAgICAgICAgICAgIGlmIChudWxsID09PSAoZiA9ICJmdW5jdGlvbiIgPT09IHR5cGVv ZiAoaCA9IG0ucGF5bG9hZCkgPyBoLmNhbGwocCwgZCwgZikgOiBoKSB8fCB2b2lkIDAgPT09 IGYpIGJyZWFrIGU7DQogICAgICAgICAgICAgICAgICAgICAgZCA9IEwoe30sIGQsIGYpOw0K ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrIGU7DQogICAgICAgICAgICAgICAgICAgIGNh c2UgMjoNCiAgICAgICAgICAgICAgICAgICAgICBUYSA9ICEwOw0KICAgICAgICAgICAgICAg ICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBudWxsICE9PSBsLmNh bGxiYWNrICYmIDAgIT09IGwubGFuZSAmJiAoKGUuZmxhZ3MgfD0gNjQpLCBudWxsID09PSAo ZiA9IG8uZWZmZWN0cykgPyAoby5lZmZlY3RzID0gW2xdKSA6IGYucHVzaChsKSk7DQogICAg ICAgICAgICAgIH0gZWxzZSAocCA9IHsgZXZlbnRUaW1lOiBwLCBsYW5lOiBmLCB0YWc6IGwu dGFnLCBwYXlsb2FkOiBsLnBheWxvYWQsIGNhbGxiYWNrOiBsLmNhbGxiYWNrLCBuZXh0OiBu dWxsIH0pLCBudWxsID09PSBjID8gKCh1ID0gYyA9IHApLCAocyA9IGQpKSA6IChjID0gYy5u ZXh0ID0gcCksIChpIHw9IGYpOw0KICAgICAgICAgICAgICBpZiAobnVsbCA9PT0gKGwgPSBs Lm5leHQpKSB7DQogICAgICAgICAgICAgICAgaWYgKG51bGwgPT09IChsID0gby5zaGFyZWQu cGVuZGluZykpIGJyZWFrOw0KICAgICAgICAgICAgICAgIChsID0gKGYgPSBsKS5uZXh0KSwg KGYubmV4dCA9IG51bGwpLCAoby5sYXN0QmFzZVVwZGF0ZSA9IGYpLCAoby5zaGFyZWQucGVu ZGluZyA9IG51bGwpOw0KICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAg ICAgICBpZiAoKG51bGwgPT09IGMgJiYgKHMgPSBkKSwgKG8uYmFzZVN0YXRlID0gcyksIChv LmZpcnN0QmFzZVVwZGF0ZSA9IHUpLCAoby5sYXN0QmFzZVVwZGF0ZSA9IGMpLCBudWxsICE9 PSAodCA9IG8uc2hhcmVkLmludGVybGVhdmVkKSkpIHsNCiAgICAgICAgICAgICAgbyA9IHQ7 DQogICAgICAgICAgICAgIGRvIHsNCiAgICAgICAgICAgICAgICAoaSB8PSBvLmxhbmUpLCAo byA9IG8ubmV4dCk7DQogICAgICAgICAgICAgIH0gd2hpbGUgKG8gIT09IHQpOw0KICAgICAg ICAgICAgfSBlbHNlIG51bGwgPT09IGEgJiYgKG8uc2hhcmVkLmxhbmVzID0gMCk7DQogICAg ICAgICAgICAoTHMgfD0gaSksIChlLmxhbmVzID0gaSksIChlLm1lbW9pemVkU3RhdGUgPSBk KTsNCiAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gQmEoZSwgdCwg bikgew0KICAgICAgICAgIGlmICgoKGUgPSB0LmVmZmVjdHMpLCAodC5lZmZlY3RzID0gbnVs bCksIG51bGwgIT09IGUpKQ0KICAgICAgICAgICAgZm9yICh0ID0gMDsgdCA8IGUubGVuZ3Ro OyB0KyspIHsNCiAgICAgICAgICAgICAgdmFyIHIgPSBlW3RdLA0KICAgICAgICAgICAgICAg IG8gPSByLmNhbGxiYWNrOw0KICAgICAgICAgICAgICBpZiAobnVsbCAhPT0gbykgew0KICAg ICAgICAgICAgICAgIGlmICgoKHIuY2FsbGJhY2sgPSBudWxsKSwgKHIgPSBuKSwgImZ1bmN0 aW9uIiAhPT0gdHlwZW9mIG8pKSB0aHJvdyBFcnJvcihhKDE5MSwgbykpOw0KICAgICAgICAg ICAgICAgIG8uY2FsbChyKTsNCiAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAg ICAgICB9DQogICAgICAgIHZhciBEYSA9IG5ldyByLkNvbXBvbmVudCgpLnJlZnM7DQogICAg ICAgIGZ1bmN0aW9uIFVhKGUsIHQsIG4sIHIpIHsNCiAgICAgICAgICAobiA9IG51bGwgPT09 IChuID0gbihyLCAodCA9IGUubWVtb2l6ZWRTdGF0ZSkpKSB8fCB2b2lkIDAgPT09IG4gPyB0 IDogTCh7fSwgdCwgbikpLCAoZS5tZW1vaXplZFN0YXRlID0gbiksIDAgPT09IGUubGFuZXMg JiYgKGUudXBkYXRlUXVldWUuYmFzZVN0YXRlID0gbik7DQogICAgICAgIH0NCiAgICAgICAg dmFyIFdhID0gew0KICAgICAgICAgIGlzTW91bnRlZDogZnVuY3Rpb24gKGUpIHsNCiAgICAg ICAgICAgIHJldHVybiAhIShlID0gZS5fcmVhY3RJbnRlcm5hbHMpICYmIFdlKGUpID09PSBl Ow0KICAgICAgICAgIH0sDQogICAgICAgICAgZW5xdWV1ZVNldFN0YXRlOiBmdW5jdGlvbiAo ZSwgdCwgbikgew0KICAgICAgICAgICAgZSA9IGUuX3JlYWN0SW50ZXJuYWxzOw0KICAgICAg ICAgICAgdmFyIHIgPSB0dSgpLA0KICAgICAgICAgICAgICBvID0gbnUoZSksDQogICAgICAg ICAgICAgIGEgPSB6YShyLCBvKTsNCiAgICAgICAgICAgIChhLnBheWxvYWQgPSB0KSwgdm9p ZCAwICE9PSBuICYmIG51bGwgIT09IG4gJiYgKGEuY2FsbGJhY2sgPSBuKSwgbnVsbCAhPT0g KHQgPSBqYShlLCBhLCBvKSkgJiYgKHJ1KHQsIGUsIG8sIHIpLCBJYSh0LCBlLCBvKSk7DQog ICAgICAgICAgfSwNCiAgICAgICAgICBlbnF1ZXVlUmVwbGFjZVN0YXRlOiBmdW5jdGlvbiAo ZSwgdCwgbikgew0KICAgICAgICAgICAgZSA9IGUuX3JlYWN0SW50ZXJuYWxzOw0KICAgICAg ICAgICAgdmFyIHIgPSB0dSgpLA0KICAgICAgICAgICAgICBvID0gbnUoZSksDQogICAgICAg ICAgICAgIGEgPSB6YShyLCBvKTsNCiAgICAgICAgICAgIChhLnRhZyA9IDEpLCAoYS5wYXls b2FkID0gdCksIHZvaWQgMCAhPT0gbiAmJiBudWxsICE9PSBuICYmIChhLmNhbGxiYWNrID0g biksIG51bGwgIT09ICh0ID0gamEoZSwgYSwgbykpICYmIChydSh0LCBlLCBvLCByKSwgSWEo dCwgZSwgbykpOw0KICAgICAgICAgIH0sDQogICAgICAgICAgZW5xdWV1ZUZvcmNlVXBkYXRl OiBmdW5jdGlvbiAoZSwgdCkgew0KICAgICAgICAgICAgZSA9IGUuX3JlYWN0SW50ZXJuYWxz Ow0KICAgICAgICAgICAgdmFyIG4gPSB0dSgpLA0KICAgICAgICAgICAgICByID0gbnUoZSks DQogICAgICAgICAgICAgIG8gPSB6YShuLCByKTsNCiAgICAgICAgICAgIChvLnRhZyA9IDIp LCB2b2lkIDAgIT09IHQgJiYgbnVsbCAhPT0gdCAmJiAoby5jYWxsYmFjayA9IHQpLCBudWxs ICE9PSAodCA9IGphKGUsIG8sIHIpKSAmJiAocnUodCwgZSwgciwgbiksIElhKHQsIGUsIHIp KTsNCiAgICAgICAgICB9LA0KICAgICAgICB9Ow0KICAgICAgICBmdW5jdGlvbiBWYShlLCB0 LCBuLCByLCBvLCBhLCBpKSB7DQogICAgICAgICAgcmV0dXJuICJmdW5jdGlvbiIgPT09IHR5 cGVvZiAoZSA9IGUuc3RhdGVOb2RlKS5zaG91bGRDb21wb25lbnRVcGRhdGUgPyBlLnNob3Vs ZENvbXBvbmVudFVwZGF0ZShyLCBhLCBpKSA6ICF0LnByb3RvdHlwZSB8fCAhdC5wcm90b3R5 cGUuaXNQdXJlUmVhY3RDb21wb25lbnQgfHwgIXNyKG4sIHIpIHx8ICFzcihvLCBhKTsNCiAg ICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBIYShlLCB0LCBuKSB7DQogICAgICAgICAgdmFy IHIgPSAhMSwNCiAgICAgICAgICAgIG8gPSBQbywNCiAgICAgICAgICAgIGEgPSB0LmNvbnRl eHRUeXBlOw0KICAgICAgICAgIHJldHVybiAoDQogICAgICAgICAgICAib2JqZWN0IiA9PT0g dHlwZW9mIGEgJiYgbnVsbCAhPT0gYSA/IChhID0gUmEoYSkpIDogKChvID0gTW8odCkgPyBU byA6IE9vLmN1cnJlbnQpLCAoYSA9IChyID0gbnVsbCAhPT0gKHIgPSB0LmNvbnRleHRUeXBl cykgJiYgdm9pZCAwICE9PSByKSA/IEFvKGUsIG8pIDogUG8pKSwNCiAgICAgICAgICAgICh0 ID0gbmV3IHQobiwgYSkpLA0KICAgICAgICAgICAgKGUubWVtb2l6ZWRTdGF0ZSA9IG51bGwg IT09IHQuc3RhdGUgJiYgdm9pZCAwICE9PSB0LnN0YXRlID8gdC5zdGF0ZSA6IG51bGwpLA0K ICAgICAgICAgICAgKHQudXBkYXRlciA9IFdhKSwNCiAgICAgICAgICAgIChlLnN0YXRlTm9k ZSA9IHQpLA0KICAgICAgICAgICAgKHQuX3JlYWN0SW50ZXJuYWxzID0gZSksDQogICAgICAg ICAgICByICYmICgoKGUgPSBlLnN0YXRlTm9kZSkuX19yZWFjdEludGVybmFsTWVtb2l6ZWRV bm1hc2tlZENoaWxkQ29udGV4dCA9IG8pLCAoZS5fX3JlYWN0SW50ZXJuYWxNZW1vaXplZE1h c2tlZENoaWxkQ29udGV4dCA9IGEpKSwNCiAgICAgICAgICAgIHQNCiAgICAgICAgICApOw0K ICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIHFhKGUsIHQsIG4sIHIpIHsNCiAgICAgICAg ICAoZSA9IHQuc3RhdGUpLA0KICAgICAgICAgICAgImZ1bmN0aW9uIiA9PT0gdHlwZW9mIHQu Y29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyAmJiB0LmNvbXBvbmVudFdpbGxSZWNlaXZlUHJv cHMobiwgciksDQogICAgICAgICAgICAiZnVuY3Rpb24iID09PSB0eXBlb2YgdC5VTlNBRkVf Y29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyAmJiB0LlVOU0FGRV9jb21wb25lbnRXaWxsUmVj ZWl2ZVByb3BzKG4sIHIpLA0KICAgICAgICAgICAgdC5zdGF0ZSAhPT0gZSAmJiBXYS5lbnF1 ZXVlUmVwbGFjZVN0YXRlKHQsIHQuc3RhdGUsIG51bGwpOw0KICAgICAgICB9DQogICAgICAg IGZ1bmN0aW9uICRhKGUsIHQsIG4sIHIpIHsNCiAgICAgICAgICB2YXIgbyA9IGUuc3RhdGVO b2RlOw0KICAgICAgICAgIChvLnByb3BzID0gbiksIChvLnN0YXRlID0gZS5tZW1vaXplZFN0 YXRlKSwgKG8ucmVmcyA9IERhKSwgQWEoZSk7DQogICAgICAgICAgdmFyIGEgPSB0LmNvbnRl eHRUeXBlOw0KICAgICAgICAgICJvYmplY3QiID09PSB0eXBlb2YgYSAmJiBudWxsICE9PSBh ID8gKG8uY29udGV4dCA9IFJhKGEpKSA6ICgoYSA9IE1vKHQpID8gVG8gOiBPby5jdXJyZW50 KSwgKG8uY29udGV4dCA9IEFvKGUsIGEpKSksDQogICAgICAgICAgICAoby5zdGF0ZSA9IGUu bWVtb2l6ZWRTdGF0ZSksDQogICAgICAgICAgICAiZnVuY3Rpb24iID09PSB0eXBlb2YgKGEg PSB0LmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcykgJiYgKFVhKGUsIHQsIGEsIG4pLCAoby5z dGF0ZSA9IGUubWVtb2l6ZWRTdGF0ZSkpLA0KICAgICAgICAgICAgImZ1bmN0aW9uIiA9PT0g dHlwZW9mIHQuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzIHx8DQogICAgICAgICAgICAiZnVu Y3Rpb24iID09PSB0eXBlb2Ygby5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSB8fA0KICAgICAg ICAgICAgKCJmdW5jdGlvbiIgIT09IHR5cGVvZiBvLlVOU0FGRV9jb21wb25lbnRXaWxsTW91 bnQgJiYgImZ1bmN0aW9uIiAhPT0gdHlwZW9mIG8uY29tcG9uZW50V2lsbE1vdW50KSB8fA0K ICAgICAgICAgICAgKCh0ID0gby5zdGF0ZSksDQogICAgICAgICAgICAgICJmdW5jdGlvbiIg PT09IHR5cGVvZiBvLmNvbXBvbmVudFdpbGxNb3VudCAmJiBvLmNvbXBvbmVudFdpbGxNb3Vu dCgpLA0KICAgICAgICAgICAgICAiZnVuY3Rpb24iID09PSB0eXBlb2Ygby5VTlNBRkVfY29t cG9uZW50V2lsbE1vdW50ICYmIG8uVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCgpLA0KICAg ICAgICAgICAgICB0ICE9PSBvLnN0YXRlICYmIFdhLmVucXVldWVSZXBsYWNlU3RhdGUobywg by5zdGF0ZSwgbnVsbCksDQogICAgICAgICAgICAgIEZhKGUsIG4sIG8sIHIpLA0KICAgICAg ICAgICAgICAoby5zdGF0ZSA9IGUubWVtb2l6ZWRTdGF0ZSkpLA0KICAgICAgICAgICAgImZ1 bmN0aW9uIiA9PT0gdHlwZW9mIG8uY29tcG9uZW50RGlkTW91bnQgJiYgKGUuZmxhZ3MgfD0g NDE5NDMwOCk7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gS2EoZSwgdCwgbikgew0K ICAgICAgICAgIGlmIChudWxsICE9PSAoZSA9IG4ucmVmKSAmJiAiZnVuY3Rpb24iICE9PSB0 eXBlb2YgZSAmJiAib2JqZWN0IiAhPT0gdHlwZW9mIGUpIHsNCiAgICAgICAgICAgIGlmIChu Ll9vd25lcikgew0KICAgICAgICAgICAgICBpZiAoKG4gPSBuLl9vd25lcikpIHsNCiAgICAg ICAgICAgICAgICBpZiAoMSAhPT0gbi50YWcpIHRocm93IEVycm9yKGEoMzA5KSk7DQogICAg ICAgICAgICAgICAgdmFyIHIgPSBuLnN0YXRlTm9kZTsNCiAgICAgICAgICAgICAgfQ0KICAg ICAgICAgICAgICBpZiAoIXIpIHRocm93IEVycm9yKGEoMTQ3LCBlKSk7DQogICAgICAgICAg ICAgIHZhciBvID0gciwNCiAgICAgICAgICAgICAgICBpID0gIiIgKyBlOw0KICAgICAgICAg ICAgICByZXR1cm4gbnVsbCAhPT0gdCAmJiBudWxsICE9PSB0LnJlZiAmJiAiZnVuY3Rpb24i ID09PSB0eXBlb2YgdC5yZWYgJiYgdC5yZWYuX3N0cmluZ1JlZiA9PT0gaQ0KICAgICAgICAg ICAgICAgID8gdC5yZWYNCiAgICAgICAgICAgICAgICA6ICgodCA9IGZ1bmN0aW9uIChlKSB7 DQogICAgICAgICAgICAgICAgICB2YXIgdCA9IG8ucmVmczsNCiAgICAgICAgICAgICAgICAg IHQgPT09IERhICYmICh0ID0gby5yZWZzID0ge30pLCBudWxsID09PSBlID8gZGVsZXRlIHRb aV0gOiAodFtpXSA9IGUpOw0KICAgICAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAgICAg ICAgKHQuX3N0cmluZ1JlZiA9IGkpLA0KICAgICAgICAgICAgICAgICAgdCk7DQogICAgICAg ICAgICB9DQogICAgICAgICAgICBpZiAoInN0cmluZyIgIT09IHR5cGVvZiBlKSB0aHJvdyBF cnJvcihhKDI4NCkpOw0KICAgICAgICAgICAgaWYgKCFuLl9vd25lcikgdGhyb3cgRXJyb3Io YSgyOTAsIGUpKTsNCiAgICAgICAgICB9DQogICAgICAgICAgcmV0dXJuIGU7DQogICAgICAg IH0NCiAgICAgICAgZnVuY3Rpb24gUWEoZSwgdCkgew0KICAgICAgICAgIHRocm93ICgoZSA9 IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KSksIEVycm9yKGEoMzEsICJbb2Jq ZWN0IE9iamVjdF0iID09PSBlID8gIm9iamVjdCB3aXRoIGtleXMgeyIgKyBPYmplY3Qua2V5 cyh0KS5qb2luKCIsICIpICsgIn0iIDogZSkpKTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5j dGlvbiBHYShlKSB7DQogICAgICAgICAgcmV0dXJuICgwLCBlLl9pbml0KShlLl9wYXlsb2Fk KTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBZYShlKSB7DQogICAgICAgICAgZnVu Y3Rpb24gdCh0LCBuKSB7DQogICAgICAgICAgICBpZiAoZSkgew0KICAgICAgICAgICAgICB2 YXIgciA9IHQuZGVsZXRpb25zOw0KICAgICAgICAgICAgICBudWxsID09PSByID8gKCh0LmRl bGV0aW9ucyA9IFtuXSksICh0LmZsYWdzIHw9IDE2KSkgOiByLnB1c2gobik7DQogICAgICAg ICAgICB9DQogICAgICAgICAgfQ0KICAgICAgICAgIGZ1bmN0aW9uIG4obiwgcikgew0KICAg ICAgICAgICAgaWYgKCFlKSByZXR1cm4gbnVsbDsNCiAgICAgICAgICAgIGZvciAoOyBudWxs ICE9PSByOykgdChuLCByKSwgKHIgPSByLnNpYmxpbmcpOw0KICAgICAgICAgICAgcmV0dXJu IG51bGw7DQogICAgICAgICAgfQ0KICAgICAgICAgIGZ1bmN0aW9uIHIoZSwgdCkgew0KICAg ICAgICAgICAgZm9yIChlID0gbmV3IE1hcCgpOyBudWxsICE9PSB0OykgbnVsbCAhPT0gdC5r ZXkgPyBlLnNldCh0LmtleSwgdCkgOiBlLnNldCh0LmluZGV4LCB0KSwgKHQgPSB0LnNpYmxp bmcpOw0KICAgICAgICAgICAgcmV0dXJuIGU7DQogICAgICAgICAgfQ0KICAgICAgICAgIGZ1 bmN0aW9uIG8oZSwgdCkgew0KICAgICAgICAgICAgcmV0dXJuICgoZSA9IHp1KGUsIHQpKS5p bmRleCA9IDApLCAoZS5zaWJsaW5nID0gbnVsbCksIGU7DQogICAgICAgICAgfQ0KICAgICAg ICAgIGZ1bmN0aW9uIGkodCwgbiwgcikgew0KICAgICAgICAgICAgcmV0dXJuICh0LmluZGV4 ID0gciksIGUgPyAobnVsbCAhPT0gKHIgPSB0LmFsdGVybmF0ZSkgPyAoKHIgPSByLmluZGV4 KSA8IG4gPyAoKHQuZmxhZ3MgfD0gMiksIG4pIDogcikgOiAoKHQuZmxhZ3MgfD0gMiksIG4p KSA6ICgodC5mbGFncyB8PSAxMDQ4NTc2KSwgbik7DQogICAgICAgICAgfQ0KICAgICAgICAg IGZ1bmN0aW9uIGwodCkgew0KICAgICAgICAgICAgcmV0dXJuIGUgJiYgbnVsbCA9PT0gdC5h bHRlcm5hdGUgJiYgKHQuZmxhZ3MgfD0gMiksIHQ7DQogICAgICAgICAgfQ0KICAgICAgICAg IGZ1bmN0aW9uIHMoZSwgdCwgbiwgcikgew0KICAgICAgICAgICAgcmV0dXJuIG51bGwgPT09 IHQgfHwgNiAhPT0gdC50YWcgPyAoKCh0ID0gRnUobiwgZS5tb2RlLCByKSkucmV0dXJuID0g ZSksIHQpIDogKCgodCA9IG8odCwgbikpLnJldHVybiA9IGUpLCB0KTsNCiAgICAgICAgICB9 DQogICAgICAgICAgZnVuY3Rpb24gdShlLCB0LCBuLCByKSB7DQogICAgICAgICAgICB2YXIg YSA9IG4udHlwZTsNCiAgICAgICAgICAgIHJldHVybiBhID09PSBrDQogICAgICAgICAgICAg ID8gZChlLCB0LCBuLnByb3BzLmNoaWxkcmVuLCByLCBuLmtleSkNCiAgICAgICAgICAgICAg OiBudWxsICE9PSB0ICYmICh0LmVsZW1lbnRUeXBlID09PSBhIHx8ICgib2JqZWN0IiA9PT0g dHlwZW9mIGEgJiYgbnVsbCAhPT0gYSAmJiBhLiQkdHlwZW9mID09PSBBICYmIEdhKGEpID09 PSB0LnR5cGUpKQ0KICAgICAgICAgICAgICAgID8gKCgociA9IG8odCwgbi5wcm9wcykpLnJl ZiA9IEthKGUsIHQsIG4pKSwgKHIucmV0dXJuID0gZSksIHIpDQogICAgICAgICAgICAgICAg OiAoKChyID0ganUobi50eXBlLCBuLmtleSwgbi5wcm9wcywgbnVsbCwgZS5tb2RlLCByKSku cmVmID0gS2EoZSwgdCwgbikpLCAoci5yZXR1cm4gPSBlKSwgcik7DQogICAgICAgICAgfQ0K ICAgICAgICAgIGZ1bmN0aW9uIGMoZSwgdCwgbiwgcikgew0KICAgICAgICAgICAgcmV0dXJu IG51bGwgPT09IHQgfHwgNCAhPT0gdC50YWcgfHwgdC5zdGF0ZU5vZGUuY29udGFpbmVySW5m byAhPT0gbi5jb250YWluZXJJbmZvIHx8IHQuc3RhdGVOb2RlLmltcGxlbWVudGF0aW9uICE9 PSBuLmltcGxlbWVudGF0aW9uDQogICAgICAgICAgICAgID8gKCgodCA9IEJ1KG4sIGUubW9k ZSwgcikpLnJldHVybiA9IGUpLCB0KQ0KICAgICAgICAgICAgICA6ICgoKHQgPSBvKHQsIG4u Y2hpbGRyZW4gfHwgW10pKS5yZXR1cm4gPSBlKSwgdCk7DQogICAgICAgICAgfQ0KICAgICAg ICAgIGZ1bmN0aW9uIGQoZSwgdCwgbiwgciwgYSkgew0KICAgICAgICAgICAgcmV0dXJuIG51 bGwgPT09IHQgfHwgNyAhPT0gdC50YWcgPyAoKCh0ID0gSXUobiwgZS5tb2RlLCByLCBhKSku cmV0dXJuID0gZSksIHQpIDogKCgodCA9IG8odCwgbikpLnJldHVybiA9IGUpLCB0KTsNCiAg ICAgICAgICB9DQogICAgICAgICAgZnVuY3Rpb24gZihlLCB0LCBuKSB7DQogICAgICAgICAg ICBpZiAoKCJzdHJpbmciID09PSB0eXBlb2YgdCAmJiAiIiAhPT0gdCkgfHwgIm51bWJlciIg PT09IHR5cGVvZiB0KSByZXR1cm4gKCh0ID0gRnUoIiIgKyB0LCBlLm1vZGUsIG4pKS5yZXR1 cm4gPSBlKSwgdDsNCiAgICAgICAgICAgIGlmICgib2JqZWN0IiA9PT0gdHlwZW9mIHQgJiYg bnVsbCAhPT0gdCkgew0KICAgICAgICAgICAgICBzd2l0Y2ggKHQuJCR0eXBlb2YpIHsNCiAg ICAgICAgICAgICAgICBjYXNlIHg6DQogICAgICAgICAgICAgICAgICByZXR1cm4gKChuID0g anUodC50eXBlLCB0LmtleSwgdC5wcm9wcywgbnVsbCwgZS5tb2RlLCBuKSkucmVmID0gS2Eo ZSwgbnVsbCwgdCkpLCAobi5yZXR1cm4gPSBlKSwgbjsNCiAgICAgICAgICAgICAgICBjYXNl IFM6DQogICAgICAgICAgICAgICAgICByZXR1cm4gKCh0ID0gQnUodCwgZS5tb2RlLCBuKSku cmV0dXJuID0gZSksIHQ7DQogICAgICAgICAgICAgICAgY2FzZSBBOg0KICAgICAgICAgICAg ICAgICAgcmV0dXJuIGYoZSwgKDAsIHQuX2luaXQpKHQuX3BheWxvYWQpLCBuKTsNCiAgICAg ICAgICAgICAgfQ0KICAgICAgICAgICAgICBpZiAodGUodCkgfHwgaih0KSkgcmV0dXJuICgo dCA9IEl1KHQsIGUubW9kZSwgbiwgbnVsbCkpLnJldHVybiA9IGUpLCB0Ow0KICAgICAgICAg ICAgICBRYShlLCB0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHJldHVybiBudWxs Ow0KICAgICAgICAgIH0NCiAgICAgICAgICBmdW5jdGlvbiBwKGUsIHQsIG4sIHIpIHsNCiAg ICAgICAgICAgIHZhciBvID0gbnVsbCAhPT0gdCA/IHQua2V5IDogbnVsbDsNCiAgICAgICAg ICAgIGlmICgoInN0cmluZyIgPT09IHR5cGVvZiBuICYmICIiICE9PSBuKSB8fCAibnVtYmVy IiA9PT0gdHlwZW9mIG4pIHJldHVybiBudWxsICE9PSBvID8gbnVsbCA6IHMoZSwgdCwgIiIg KyBuLCByKTsNCiAgICAgICAgICAgIGlmICgib2JqZWN0IiA9PT0gdHlwZW9mIG4gJiYgbnVs bCAhPT0gbikgew0KICAgICAgICAgICAgICBzd2l0Y2ggKG4uJCR0eXBlb2YpIHsNCiAgICAg ICAgICAgICAgICBjYXNlIHg6DQogICAgICAgICAgICAgICAgICByZXR1cm4gbi5rZXkgPT09 IG8gPyB1KGUsIHQsIG4sIHIpIDogbnVsbDsNCiAgICAgICAgICAgICAgICBjYXNlIFM6DQog ICAgICAgICAgICAgICAgICByZXR1cm4gbi5rZXkgPT09IG8gPyBjKGUsIHQsIG4sIHIpIDog bnVsbDsNCiAgICAgICAgICAgICAgICBjYXNlIEE6DQogICAgICAgICAgICAgICAgICByZXR1 cm4gcChlLCB0LCAobyA9IG4uX2luaXQpKG4uX3BheWxvYWQpLCByKTsNCiAgICAgICAgICAg ICAgfQ0KICAgICAgICAgICAgICBpZiAodGUobikgfHwgaihuKSkgcmV0dXJuIG51bGwgIT09 IG8gPyBudWxsIDogZChlLCB0LCBuLCByLCBudWxsKTsNCiAgICAgICAgICAgICAgUWEoZSwg bik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXR1cm4gbnVsbDsNCiAgICAgICAg ICB9DQogICAgICAgICAgZnVuY3Rpb24gaChlLCB0LCBuLCByLCBvKSB7DQogICAgICAgICAg ICBpZiAoKCJzdHJpbmciID09PSB0eXBlb2YgciAmJiAiIiAhPT0gcikgfHwgIm51bWJlciIg PT09IHR5cGVvZiByKSByZXR1cm4gcyh0LCAoZSA9IGUuZ2V0KG4pIHx8IG51bGwpLCAiIiAr IHIsIG8pOw0KICAgICAgICAgICAgaWYgKCJvYmplY3QiID09PSB0eXBlb2YgciAmJiBudWxs ICE9PSByKSB7DQogICAgICAgICAgICAgIHN3aXRjaCAoci4kJHR5cGVvZikgew0KICAgICAg ICAgICAgICAgIGNhc2UgeDoNCiAgICAgICAgICAgICAgICAgIHJldHVybiB1KHQsIChlID0g ZS5nZXQobnVsbCA9PT0gci5rZXkgPyBuIDogci5rZXkpIHx8IG51bGwpLCByLCBvKTsNCiAg ICAgICAgICAgICAgICBjYXNlIFM6DQogICAgICAgICAgICAgICAgICByZXR1cm4gYyh0LCAo ZSA9IGUuZ2V0KG51bGwgPT09IHIua2V5ID8gbiA6IHIua2V5KSB8fCBudWxsKSwgciwgbyk7 DQogICAgICAgICAgICAgICAgY2FzZSBBOg0KICAgICAgICAgICAgICAgICAgcmV0dXJuIGgo ZSwgdCwgbiwgKDAsIHIuX2luaXQpKHIuX3BheWxvYWQpLCBvKTsNCiAgICAgICAgICAgICAg fQ0KICAgICAgICAgICAgICBpZiAodGUocikgfHwgaihyKSkgcmV0dXJuIGQodCwgKGUgPSBl LmdldChuKSB8fCBudWxsKSwgciwgbywgbnVsbCk7DQogICAgICAgICAgICAgIFFhKHQsIHIp Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmV0dXJuIG51bGw7DQogICAgICAgICAg fQ0KICAgICAgICAgIGZ1bmN0aW9uIG0obywgYSwgbCwgcykgew0KICAgICAgICAgICAgZm9y ICh2YXIgdSA9IG51bGwsIGMgPSBudWxsLCBkID0gYSwgbSA9IChhID0gMCksIGcgPSBudWxs OyBudWxsICE9PSBkICYmIG0gPCBsLmxlbmd0aDsgbSsrKSB7DQogICAgICAgICAgICAgIGQu aW5kZXggPiBtID8gKChnID0gZCksIChkID0gbnVsbCkpIDogKGcgPSBkLnNpYmxpbmcpOw0K ICAgICAgICAgICAgICB2YXIgdiA9IHAobywgZCwgbFttXSwgcyk7DQogICAgICAgICAgICAg IGlmIChudWxsID09PSB2KSB7DQogICAgICAgICAgICAgICAgbnVsbCA9PT0gZCAmJiAoZCA9 IGcpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICB9DQogICAgICAg ICAgICAgIGUgJiYgZCAmJiBudWxsID09PSB2LmFsdGVybmF0ZSAmJiB0KG8sIGQpLCAoYSA9 IGkodiwgYSwgbSkpLCBudWxsID09PSBjID8gKHUgPSB2KSA6IChjLnNpYmxpbmcgPSB2KSwg KGMgPSB2KSwgKGQgPSBnKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChtID09 PSBsLmxlbmd0aCkgcmV0dXJuIG4obywgZCksIGFhICYmIEpvKG8sIG0pLCB1Ow0KICAgICAg ICAgICAgaWYgKG51bGwgPT09IGQpIHsNCiAgICAgICAgICAgICAgZm9yICg7IG0gPCBsLmxl bmd0aDsgbSsrKSBudWxsICE9PSAoZCA9IGYobywgbFttXSwgcykpICYmICgoYSA9IGkoZCwg YSwgbSkpLCBudWxsID09PSBjID8gKHUgPSBkKSA6IChjLnNpYmxpbmcgPSBkKSwgKGMgPSBk KSk7DQogICAgICAgICAgICAgIHJldHVybiBhYSAmJiBKbyhvLCBtKSwgdTsNCiAgICAgICAg ICAgIH0NCiAgICAgICAgICAgIGZvciAoZCA9IHIobywgZCk7IG0gPCBsLmxlbmd0aDsgbSsr KQ0KICAgICAgICAgICAgICBudWxsICE9PSAoZyA9IGgoZCwgbywgbSwgbFttXSwgcykpICYm IChlICYmIG51bGwgIT09IGcuYWx0ZXJuYXRlICYmIGQuZGVsZXRlKG51bGwgPT09IGcua2V5 ID8gbSA6IGcua2V5KSwgKGEgPSBpKGcsIGEsIG0pKSwgbnVsbCA9PT0gYyA/ICh1ID0gZykg OiAoYy5zaWJsaW5nID0gZyksIChjID0gZykpOw0KICAgICAgICAgICAgcmV0dXJuICgNCiAg ICAgICAgICAgICAgZSAmJg0KICAgICAgICAgICAgICBkLmZvckVhY2goZnVuY3Rpb24gKGUp IHsNCiAgICAgICAgICAgICAgICByZXR1cm4gdChvLCBlKTsNCiAgICAgICAgICAgICAgfSks DQogICAgICAgICAgICAgIGFhICYmIEpvKG8sIG0pLA0KICAgICAgICAgICAgICB1DQogICAg ICAgICAgICApOw0KICAgICAgICAgIH0NCiAgICAgICAgICBmdW5jdGlvbiBnKG8sIGwsIHMs IHUpIHsNCiAgICAgICAgICAgIHZhciBjID0gaihzKTsNCiAgICAgICAgICAgIGlmICgiZnVu Y3Rpb24iICE9PSB0eXBlb2YgYykgdGhyb3cgRXJyb3IoYSgxNTApKTsNCiAgICAgICAgICAg IGlmIChudWxsID09IChzID0gYy5jYWxsKHMpKSkgdGhyb3cgRXJyb3IoYSgxNTEpKTsNCiAg ICAgICAgICAgIGZvciAodmFyIGQgPSAoYyA9IG51bGwpLCBtID0gbCwgZyA9IChsID0gMCks IHYgPSBudWxsLCB5ID0gcy5uZXh0KCk7IG51bGwgIT09IG0gJiYgIXkuZG9uZTsgZysrLCB5 ID0gcy5uZXh0KCkpIHsNCiAgICAgICAgICAgICAgbS5pbmRleCA+IGcgPyAoKHYgPSBtKSwg KG0gPSBudWxsKSkgOiAodiA9IG0uc2libGluZyk7DQogICAgICAgICAgICAgIHZhciBiID0g cChvLCBtLCB5LnZhbHVlLCB1KTsNCiAgICAgICAgICAgICAgaWYgKG51bGwgPT09IGIpIHsN CiAgICAgICAgICAgICAgICBudWxsID09PSBtICYmIChtID0gdik7DQogICAgICAgICAgICAg ICAgYnJlYWs7DQogICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgZSAmJiBtICYmIG51 bGwgPT09IGIuYWx0ZXJuYXRlICYmIHQobywgbSksIChsID0gaShiLCBsLCBnKSksIG51bGwg PT09IGQgPyAoYyA9IGIpIDogKGQuc2libGluZyA9IGIpLCAoZCA9IGIpLCAobSA9IHYpOw0K ICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHkuZG9uZSkgcmV0dXJuIG4obywgbSks IGFhICYmIEpvKG8sIGcpLCBjOw0KICAgICAgICAgICAgaWYgKG51bGwgPT09IG0pIHsNCiAg ICAgICAgICAgICAgZm9yICg7ICF5LmRvbmU7IGcrKywgeSA9IHMubmV4dCgpKSBudWxsICE9 PSAoeSA9IGYobywgeS52YWx1ZSwgdSkpICYmICgobCA9IGkoeSwgbCwgZykpLCBudWxsID09 PSBkID8gKGMgPSB5KSA6IChkLnNpYmxpbmcgPSB5KSwgKGQgPSB5KSk7DQogICAgICAgICAg ICAgIHJldHVybiBhYSAmJiBKbyhvLCBnKSwgYzsNCiAgICAgICAgICAgIH0NCiAgICAgICAg ICAgIGZvciAobSA9IHIobywgbSk7ICF5LmRvbmU7IGcrKywgeSA9IHMubmV4dCgpKQ0KICAg ICAgICAgICAgICBudWxsICE9PSAoeSA9IGgobSwgbywgZywgeS52YWx1ZSwgdSkpICYmIChl ICYmIG51bGwgIT09IHkuYWx0ZXJuYXRlICYmIG0uZGVsZXRlKG51bGwgPT09IHkua2V5ID8g ZyA6IHkua2V5KSwgKGwgPSBpKHksIGwsIGcpKSwgbnVsbCA9PT0gZCA/IChjID0geSkgOiAo ZC5zaWJsaW5nID0geSksIChkID0geSkpOw0KICAgICAgICAgICAgcmV0dXJuICgNCiAgICAg ICAgICAgICAgZSAmJg0KICAgICAgICAgICAgICBtLmZvckVhY2goZnVuY3Rpb24gKGUpIHsN CiAgICAgICAgICAgICAgICByZXR1cm4gdChvLCBlKTsNCiAgICAgICAgICAgICAgfSksDQog ICAgICAgICAgICAgIGFhICYmIEpvKG8sIGcpLA0KICAgICAgICAgICAgICBjDQogICAgICAg ICAgICApOw0KICAgICAgICAgIH0NCiAgICAgICAgICByZXR1cm4gZnVuY3Rpb24gZShyLCBh LCBpLCBzKSB7DQogICAgICAgICAgICBpZiAoKCJvYmplY3QiID09PSB0eXBlb2YgaSAmJiBu dWxsICE9PSBpICYmIGkudHlwZSA9PT0gayAmJiBudWxsID09PSBpLmtleSAmJiAoaSA9IGku cHJvcHMuY2hpbGRyZW4pLCAib2JqZWN0IiA9PT0gdHlwZW9mIGkgJiYgbnVsbCAhPT0gaSkp IHsNCiAgICAgICAgICAgICAgc3dpdGNoIChpLiQkdHlwZW9mKSB7DQogICAgICAgICAgICAg ICAgY2FzZSB4Og0KICAgICAgICAgICAgICAgICAgZTogew0KICAgICAgICAgICAgICAgICAg ICBmb3IgKHZhciB1ID0gaS5rZXksIGMgPSBhOyBudWxsICE9PSBjOykgew0KICAgICAgICAg ICAgICAgICAgICAgIGlmIChjLmtleSA9PT0gdSkgew0KICAgICAgICAgICAgICAgICAgICAg ICAgaWYgKCh1ID0gaS50eXBlKSA9PT0gaykgew0KICAgICAgICAgICAgICAgICAgICAgICAg ICBpZiAoNyA9PT0gYy50YWcpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuKHIs IGMuc2libGluZyksICgoYSA9IG8oYywgaS5wcm9wcy5jaGlsZHJlbikpLnJldHVybiA9IHIp LCAociA9IGEpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrIGU7DQogICAg ICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxz ZSBpZiAoYy5lbGVtZW50VHlwZSA9PT0gdSB8fCAoIm9iamVjdCIgPT09IHR5cGVvZiB1ICYm IG51bGwgIT09IHUgJiYgdS4kJHR5cGVvZiA9PT0gQSAmJiBHYSh1KSA9PT0gYy50eXBlKSkg ew0KICAgICAgICAgICAgICAgICAgICAgICAgICBuKHIsIGMuc2libGluZyksICgoYSA9IG8o YywgaS5wcm9wcykpLnJlZiA9IEthKHIsIGMsIGkpKSwgKGEucmV0dXJuID0gciksIChyID0g YSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrIGU7DQogICAgICAgICAgICAg ICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBuKHIsIGMpOw0KICAgICAg ICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgfQ0KICAg ICAgICAgICAgICAgICAgICAgIHQociwgYyksIChjID0gYy5zaWJsaW5nKTsNCiAgICAgICAg ICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpLnR5cGUgPT09IGsgPyAoKChh ID0gSXUoaS5wcm9wcy5jaGlsZHJlbiwgci5tb2RlLCBzLCBpLmtleSkpLnJldHVybiA9IHIp LCAociA9IGEpKSA6ICgoKHMgPSBqdShpLnR5cGUsIGkua2V5LCBpLnByb3BzLCBudWxsLCBy Lm1vZGUsIHMpKS5yZWYgPSBLYShyLCBhLCBpKSksIChzLnJldHVybiA9IHIpLCAociA9IHMp KTsNCiAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgIHJldHVybiBsKHIp Ow0KICAgICAgICAgICAgICAgIGNhc2UgUzoNCiAgICAgICAgICAgICAgICAgIGU6IHsNCiAg ICAgICAgICAgICAgICAgICAgZm9yIChjID0gaS5rZXk7IG51bGwgIT09IGE7KSB7DQogICAg ICAgICAgICAgICAgICAgICAgaWYgKGEua2V5ID09PSBjKSB7DQogICAgICAgICAgICAgICAg ICAgICAgICBpZiAoNCA9PT0gYS50YWcgJiYgYS5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyA9 PT0gaS5jb250YWluZXJJbmZvICYmIGEuc3RhdGVOb2RlLmltcGxlbWVudGF0aW9uID09PSBp LmltcGxlbWVudGF0aW9uKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgIG4ociwgYS5z aWJsaW5nKSwgKChhID0gbyhhLCBpLmNoaWxkcmVuIHx8IFtdKSkucmV0dXJuID0gciksIChy ID0gYSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrIGU7DQogICAgICAgICAg ICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBuKHIsIGEpOw0KICAg ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgfQ0K ICAgICAgICAgICAgICAgICAgICAgIHQociwgYSksIChhID0gYS5zaWJsaW5nKTsNCiAgICAg ICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAoKGEgPSBCdShpLCByLm1v ZGUsIHMpKS5yZXR1cm4gPSByKSwgKHIgPSBhKTsNCiAgICAgICAgICAgICAgICAgIH0NCiAg ICAgICAgICAgICAgICAgIHJldHVybiBsKHIpOw0KICAgICAgICAgICAgICAgIGNhc2UgQToN CiAgICAgICAgICAgICAgICAgIHJldHVybiBlKHIsIGEsIChjID0gaS5faW5pdCkoaS5fcGF5 bG9hZCksIHMpOw0KICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgIGlmICh0ZShpKSkg cmV0dXJuIG0ociwgYSwgaSwgcyk7DQogICAgICAgICAgICAgIGlmIChqKGkpKSByZXR1cm4g ZyhyLCBhLCBpLCBzKTsNCiAgICAgICAgICAgICAgUWEociwgaSk7DQogICAgICAgICAgICB9 DQogICAgICAgICAgICByZXR1cm4gKCJzdHJpbmciID09PSB0eXBlb2YgaSAmJiAiIiAhPT0g aSkgfHwgIm51bWJlciIgPT09IHR5cGVvZiBpDQogICAgICAgICAgICAgID8gKChpID0gIiIg KyBpKSwgbnVsbCAhPT0gYSAmJiA2ID09PSBhLnRhZyA/IChuKHIsIGEuc2libGluZyksICgo YSA9IG8oYSwgaSkpLnJldHVybiA9IHIpLCAociA9IGEpKSA6IChuKHIsIGEpLCAoKGEgPSBG dShpLCByLm1vZGUsIHMpKS5yZXR1cm4gPSByKSwgKHIgPSBhKSksIGwocikpDQogICAgICAg ICAgICAgIDogbihyLCBhKTsNCiAgICAgICAgICB9Ow0KICAgICAgICB9DQogICAgICAgIHZh ciBYYSA9IFlhKCEwKSwNCiAgICAgICAgICBaYSA9IFlhKCExKSwNCiAgICAgICAgICBKYSA9 IHt9LA0KICAgICAgICAgIGVpID0gQ28oSmEpLA0KICAgICAgICAgIHRpID0gQ28oSmEpLA0K ICAgICAgICAgIG5pID0gQ28oSmEpOw0KICAgICAgICBmdW5jdGlvbiByaShlKSB7DQogICAg ICAgICAgaWYgKGUgPT09IEphKSB0aHJvdyBFcnJvcihhKDE3NCkpOw0KICAgICAgICAgIHJl dHVybiBlOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIG9pKGUsIHQpIHsNCiAgICAg ICAgICBzd2l0Y2ggKChfbyhuaSwgdCksIF9vKHRpLCBlKSwgX28oZWksIEphKSwgKGUgPSB0 Lm5vZGVUeXBlKSkpIHsNCiAgICAgICAgICAgIGNhc2UgOToNCiAgICAgICAgICAgIGNhc2Ug MTE6DQogICAgICAgICAgICAgIHQgPSAodCA9IHQuZG9jdW1lbnRFbGVtZW50KSA/IHQubmFt ZXNwYWNlVVJJIDogc2UobnVsbCwgIiIpOw0KICAgICAgICAgICAgICBicmVhazsNCiAgICAg ICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgIHQgPSBzZSgodCA9IChlID0gOCA9PT0g ZSA/IHQucGFyZW50Tm9kZSA6IHQpLm5hbWVzcGFjZVVSSSB8fCBudWxsKSwgKGUgPSBlLnRh Z05hbWUpKTsNCiAgICAgICAgICB9DQogICAgICAgICAgUm8oZWkpLCBfbyhlaSwgdCk7DQog ICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gYWkoKSB7DQogICAgICAgICAgUm8oZWkpLCBS byh0aSksIFJvKG5pKTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBpaShlKSB7DQog ICAgICAgICAgcmkobmkuY3VycmVudCk7DQogICAgICAgICAgdmFyIHQgPSByaShlaS5jdXJy ZW50KSwNCiAgICAgICAgICAgIG4gPSBzZSh0LCBlLnR5cGUpOw0KICAgICAgICAgIHQgIT09 IG4gJiYgKF9vKHRpLCBlKSwgX28oZWksIG4pKTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5j dGlvbiBsaShlKSB7DQogICAgICAgICAgdGkuY3VycmVudCA9PT0gZSAmJiAoUm8oZWkpLCBS byh0aSkpOw0KICAgICAgICB9DQogICAgICAgIHZhciBzaSA9IENvKDApOw0KICAgICAgICBm dW5jdGlvbiB1aShlKSB7DQogICAgICAgICAgZm9yICh2YXIgdCA9IGU7IG51bGwgIT09IHQ7 KSB7DQogICAgICAgICAgICBpZiAoMTMgPT09IHQudGFnKSB7DQogICAgICAgICAgICAgIHZh ciBuID0gdC5tZW1vaXplZFN0YXRlOw0KICAgICAgICAgICAgICBpZiAobnVsbCAhPT0gbiAm JiAobnVsbCA9PT0gKG4gPSBuLmRlaHlkcmF0ZWQpIHx8ICIkPyIgPT09IG4uZGF0YSB8fCAi JCEiID09PSBuLmRhdGEpKSByZXR1cm4gdDsNCiAgICAgICAgICAgIH0gZWxzZSBpZiAoMTkg PT09IHQudGFnICYmIHZvaWQgMCAhPT0gdC5tZW1vaXplZFByb3BzLnJldmVhbE9yZGVyKSB7 DQogICAgICAgICAgICAgIGlmICgwICE9PSAoMTI4ICYgdC5mbGFncykpIHJldHVybiB0Ow0K ICAgICAgICAgICAgfSBlbHNlIGlmIChudWxsICE9PSB0LmNoaWxkKSB7DQogICAgICAgICAg ICAgICh0LmNoaWxkLnJldHVybiA9IHQpLCAodCA9IHQuY2hpbGQpOw0KICAgICAgICAgICAg ICBjb250aW51ZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmICh0ID09PSBlKSBi cmVhazsNCiAgICAgICAgICAgIGZvciAoOyBudWxsID09PSB0LnNpYmxpbmc7KSB7DQogICAg ICAgICAgICAgIGlmIChudWxsID09PSB0LnJldHVybiB8fCB0LnJldHVybiA9PT0gZSkgcmV0 dXJuIG51bGw7DQogICAgICAgICAgICAgIHQgPSB0LnJldHVybjsNCiAgICAgICAgICAgIH0N CiAgICAgICAgICAgICh0LnNpYmxpbmcucmV0dXJuID0gdC5yZXR1cm4pLCAodCA9IHQuc2li bGluZyk7DQogICAgICAgICAgfQ0KICAgICAgICAgIHJldHVybiBudWxsOw0KICAgICAgICB9 DQogICAgICAgIHZhciBjaSA9IFtdOw0KICAgICAgICBmdW5jdGlvbiBkaSgpIHsNCiAgICAg ICAgICBmb3IgKHZhciBlID0gMDsgZSA8IGNpLmxlbmd0aDsgZSsrKSBjaVtlXS5fd29ya0lu UHJvZ3Jlc3NWZXJzaW9uUHJpbWFyeSA9IG51bGw7DQogICAgICAgICAgY2kubGVuZ3RoID0g MDsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgZmkgPSB3LlJlYWN0Q3VycmVudERpc3BhdGNo ZXIsDQogICAgICAgICAgcGkgPSB3LlJlYWN0Q3VycmVudEJhdGNoQ29uZmlnLA0KICAgICAg ICAgIGhpID0gMCwNCiAgICAgICAgICBtaSA9IG51bGwsDQogICAgICAgICAgZ2kgPSBudWxs LA0KICAgICAgICAgIHZpID0gbnVsbCwNCiAgICAgICAgICB5aSA9ICExLA0KICAgICAgICAg IGJpID0gITEsDQogICAgICAgICAgd2kgPSAwLA0KICAgICAgICAgIHhpID0gMDsNCiAgICAg ICAgZnVuY3Rpb24gU2koKSB7DQogICAgICAgICAgdGhyb3cgRXJyb3IoYSgzMjEpKTsNCiAg ICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBraShlLCB0KSB7DQogICAgICAgICAgaWYgKG51 bGwgPT09IHQpIHJldHVybiAhMTsNCiAgICAgICAgICBmb3IgKHZhciBuID0gMDsgbiA8IHQu bGVuZ3RoICYmIG4gPCBlLmxlbmd0aDsgbisrKSBpZiAoIWxyKGVbbl0sIHRbbl0pKSByZXR1 cm4gITE7DQogICAgICAgICAgcmV0dXJuICEwOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0 aW9uIEVpKGUsIHQsIG4sIHIsIG8sIGkpIHsNCiAgICAgICAgICBpZiAoKChoaSA9IGkpLCAo bWkgPSB0KSwgKHQubWVtb2l6ZWRTdGF0ZSA9IG51bGwpLCAodC51cGRhdGVRdWV1ZSA9IG51 bGwpLCAodC5sYW5lcyA9IDApLCAoZmkuY3VycmVudCA9IG51bGwgPT09IGUgfHwgbnVsbCA9 PT0gZS5tZW1vaXplZFN0YXRlID8gbGwgOiBzbCksIChlID0gbihyLCBvKSksIGJpKSkgew0K ICAgICAgICAgICAgaSA9IDA7DQogICAgICAgICAgICBkbyB7DQogICAgICAgICAgICAgIGlm ICgoKGJpID0gITEpLCAod2kgPSAwKSwgMjUgPD0gaSkpIHRocm93IEVycm9yKGEoMzAxKSk7 DQogICAgICAgICAgICAgIChpICs9IDEpLCAodmkgPSBnaSA9IG51bGwpLCAodC51cGRhdGVR dWV1ZSA9IG51bGwpLCAoZmkuY3VycmVudCA9IHVsKSwgKGUgPSBuKHIsIG8pKTsNCiAgICAg ICAgICAgIH0gd2hpbGUgKGJpKTsNCiAgICAgICAgICB9DQogICAgICAgICAgaWYgKCgoZmku Y3VycmVudCA9IGlsKSwgKHQgPSBudWxsICE9PSBnaSAmJiBudWxsICE9PSBnaS5uZXh0KSwg KGhpID0gMCksICh2aSA9IGdpID0gbWkgPSBudWxsKSwgKHlpID0gITEpLCB0KSkgdGhyb3cg RXJyb3IoYSgzMDApKTsNCiAgICAgICAgICByZXR1cm4gZTsNCiAgICAgICAgfQ0KICAgICAg ICBmdW5jdGlvbiBDaSgpIHsNCiAgICAgICAgICB2YXIgZSA9IDAgIT09IHdpOw0KICAgICAg ICAgIHJldHVybiAod2kgPSAwKSwgZTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBS aSgpIHsNCiAgICAgICAgICB2YXIgZSA9IHsgbWVtb2l6ZWRTdGF0ZTogbnVsbCwgYmFzZVN0 YXRlOiBudWxsLCBiYXNlUXVldWU6IG51bGwsIHF1ZXVlOiBudWxsLCBuZXh0OiBudWxsIH07 DQogICAgICAgICAgcmV0dXJuIG51bGwgPT09IHZpID8gKG1pLm1lbW9pemVkU3RhdGUgPSB2 aSA9IGUpIDogKHZpID0gdmkubmV4dCA9IGUpLCB2aTsNCiAgICAgICAgfQ0KICAgICAgICBm dW5jdGlvbiBfaSgpIHsNCiAgICAgICAgICBpZiAobnVsbCA9PT0gZ2kpIHsNCiAgICAgICAg ICAgIHZhciBlID0gbWkuYWx0ZXJuYXRlOw0KICAgICAgICAgICAgZSA9IG51bGwgIT09IGUg PyBlLm1lbW9pemVkU3RhdGUgOiBudWxsOw0KICAgICAgICAgIH0gZWxzZSBlID0gZ2kubmV4 dDsNCiAgICAgICAgICB2YXIgdCA9IG51bGwgPT09IHZpID8gbWkubWVtb2l6ZWRTdGF0ZSA6 IHZpLm5leHQ7DQogICAgICAgICAgaWYgKG51bGwgIT09IHQpICh2aSA9IHQpLCAoZ2kgPSBl KTsNCiAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGlmIChudWxsID09PSBlKSB0aHJv dyBFcnJvcihhKDMxMCkpOw0KICAgICAgICAgICAgKGUgPSB7IG1lbW9pemVkU3RhdGU6IChn aSA9IGUpLm1lbW9pemVkU3RhdGUsIGJhc2VTdGF0ZTogZ2kuYmFzZVN0YXRlLCBiYXNlUXVl dWU6IGdpLmJhc2VRdWV1ZSwgcXVldWU6IGdpLnF1ZXVlLCBuZXh0OiBudWxsIH0pLCBudWxs ID09PSB2aSA/IChtaS5tZW1vaXplZFN0YXRlID0gdmkgPSBlKSA6ICh2aSA9IHZpLm5leHQg PSBlKTsNCiAgICAgICAgICB9DQogICAgICAgICAgcmV0dXJuIHZpOw0KICAgICAgICB9DQog ICAgICAgIGZ1bmN0aW9uIFBpKGUsIHQpIHsNCiAgICAgICAgICByZXR1cm4gImZ1bmN0aW9u IiA9PT0gdHlwZW9mIHQgPyB0KGUpIDogdDsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlv biBPaShlKSB7DQogICAgICAgICAgdmFyIHQgPSBfaSgpLA0KICAgICAgICAgICAgbiA9IHQu cXVldWU7DQogICAgICAgICAgaWYgKG51bGwgPT09IG4pIHRocm93IEVycm9yKGEoMzExKSk7 DQogICAgICAgICAgbi5sYXN0UmVuZGVyZWRSZWR1Y2VyID0gZTsNCiAgICAgICAgICB2YXIg ciA9IGdpLA0KICAgICAgICAgICAgbyA9IHIuYmFzZVF1ZXVlLA0KICAgICAgICAgICAgaSA9 IG4ucGVuZGluZzsNCiAgICAgICAgICBpZiAobnVsbCAhPT0gaSkgew0KICAgICAgICAgICAg aWYgKG51bGwgIT09IG8pIHsNCiAgICAgICAgICAgICAgdmFyIGwgPSBvLm5leHQ7DQogICAg ICAgICAgICAgIChvLm5leHQgPSBpLm5leHQpLCAoaS5uZXh0ID0gbCk7DQogICAgICAgICAg ICB9DQogICAgICAgICAgICAoci5iYXNlUXVldWUgPSBvID0gaSksIChuLnBlbmRpbmcgPSBu dWxsKTsNCiAgICAgICAgICB9DQogICAgICAgICAgaWYgKG51bGwgIT09IG8pIHsNCiAgICAg ICAgICAgIChpID0gby5uZXh0KSwgKHIgPSByLmJhc2VTdGF0ZSk7DQogICAgICAgICAgICB2 YXIgcyA9IChsID0gbnVsbCksDQogICAgICAgICAgICAgIHUgPSBudWxsLA0KICAgICAgICAg ICAgICBjID0gaTsNCiAgICAgICAgICAgIGRvIHsNCiAgICAgICAgICAgICAgdmFyIGQgPSBj LmxhbmU7DQogICAgICAgICAgICAgIGlmICgoaGkgJiBkKSA9PT0gZCkgbnVsbCAhPT0gdSAm JiAodSA9IHUubmV4dCA9IHsgbGFuZTogMCwgYWN0aW9uOiBjLmFjdGlvbiwgaGFzRWFnZXJT dGF0ZTogYy5oYXNFYWdlclN0YXRlLCBlYWdlclN0YXRlOiBjLmVhZ2VyU3RhdGUsIG5leHQ6 IG51bGwgfSksIChyID0gYy5oYXNFYWdlclN0YXRlID8gYy5lYWdlclN0YXRlIDogZShyLCBj LmFjdGlvbikpOw0KICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIg ZiA9IHsgbGFuZTogZCwgYWN0aW9uOiBjLmFjdGlvbiwgaGFzRWFnZXJTdGF0ZTogYy5oYXNF YWdlclN0YXRlLCBlYWdlclN0YXRlOiBjLmVhZ2VyU3RhdGUsIG5leHQ6IG51bGwgfTsNCiAg ICAgICAgICAgICAgICBudWxsID09PSB1ID8gKChzID0gdSA9IGYpLCAobCA9IHIpKSA6ICh1 ID0gdS5uZXh0ID0gZiksIChtaS5sYW5lcyB8PSBkKSwgKExzIHw9IGQpOw0KICAgICAgICAg ICAgICB9DQogICAgICAgICAgICAgIGMgPSBjLm5leHQ7DQogICAgICAgICAgICB9IHdoaWxl IChudWxsICE9PSBjICYmIGMgIT09IGkpOw0KICAgICAgICAgICAgbnVsbCA9PT0gdSA/IChs ID0gcikgOiAodS5uZXh0ID0gcyksIGxyKHIsIHQubWVtb2l6ZWRTdGF0ZSkgfHwgKHdsID0g ITApLCAodC5tZW1vaXplZFN0YXRlID0gciksICh0LmJhc2VTdGF0ZSA9IGwpLCAodC5iYXNl UXVldWUgPSB1KSwgKG4ubGFzdFJlbmRlcmVkU3RhdGUgPSByKTsNCiAgICAgICAgICB9DQog ICAgICAgICAgaWYgKG51bGwgIT09IChlID0gbi5pbnRlcmxlYXZlZCkpIHsNCiAgICAgICAg ICAgIG8gPSBlOw0KICAgICAgICAgICAgZG8gew0KICAgICAgICAgICAgICAoaSA9IG8ubGFu ZSksIChtaS5sYW5lcyB8PSBpKSwgKExzIHw9IGkpLCAobyA9IG8ubmV4dCk7DQogICAgICAg ICAgICB9IHdoaWxlIChvICE9PSBlKTsNCiAgICAgICAgICB9IGVsc2UgbnVsbCA9PT0gbyAm JiAobi5sYW5lcyA9IDApOw0KICAgICAgICAgIHJldHVybiBbdC5tZW1vaXplZFN0YXRlLCBu LmRpc3BhdGNoXTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBOaShlKSB7DQogICAg ICAgICAgdmFyIHQgPSBfaSgpLA0KICAgICAgICAgICAgbiA9IHQucXVldWU7DQogICAgICAg ICAgaWYgKG51bGwgPT09IG4pIHRocm93IEVycm9yKGEoMzExKSk7DQogICAgICAgICAgbi5s YXN0UmVuZGVyZWRSZWR1Y2VyID0gZTsNCiAgICAgICAgICB2YXIgciA9IG4uZGlzcGF0Y2gs DQogICAgICAgICAgICBvID0gbi5wZW5kaW5nLA0KICAgICAgICAgICAgaSA9IHQubWVtb2l6 ZWRTdGF0ZTsNCiAgICAgICAgICBpZiAobnVsbCAhPT0gbykgew0KICAgICAgICAgICAgbi5w ZW5kaW5nID0gbnVsbDsNCiAgICAgICAgICAgIHZhciBsID0gKG8gPSBvLm5leHQpOw0KICAg ICAgICAgICAgZG8gew0KICAgICAgICAgICAgICAoaSA9IGUoaSwgbC5hY3Rpb24pKSwgKGwg PSBsLm5leHQpOw0KICAgICAgICAgICAgfSB3aGlsZSAobCAhPT0gbyk7DQogICAgICAgICAg ICBscihpLCB0Lm1lbW9pemVkU3RhdGUpIHx8ICh3bCA9ICEwKSwgKHQubWVtb2l6ZWRTdGF0 ZSA9IGkpLCBudWxsID09PSB0LmJhc2VRdWV1ZSAmJiAodC5iYXNlU3RhdGUgPSBpKSwgKG4u bGFzdFJlbmRlcmVkU3RhdGUgPSBpKTsNCiAgICAgICAgICB9DQogICAgICAgICAgcmV0dXJu IFtpLCByXTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBUaSgpIHsgfQ0KICAgICAg ICBmdW5jdGlvbiBBaShlLCB0KSB7DQogICAgICAgICAgdmFyIG4gPSBtaSwNCiAgICAgICAg ICAgIHIgPSBfaSgpLA0KICAgICAgICAgICAgbyA9IHQoKSwNCiAgICAgICAgICAgIGkgPSAh bHIoci5tZW1vaXplZFN0YXRlLCBvKTsNCiAgICAgICAgICBpZiAoKGkgJiYgKChyLm1lbW9p emVkU3RhdGUgPSBvKSwgKHdsID0gITApKSwgKHIgPSByLnF1ZXVlKSwgSGkoamkuYmluZChu dWxsLCBuLCByLCBlKSwgW2VdKSwgci5nZXRTbmFwc2hvdCAhPT0gdCB8fCBpIHx8IChudWxs ICE9PSB2aSAmJiAxICYgdmkubWVtb2l6ZWRTdGF0ZS50YWcpKSkgew0KICAgICAgICAgICAg aWYgKCgobi5mbGFncyB8PSAyMDQ4KSwgQmkoOSwgemkuYmluZChudWxsLCBuLCByLCBvLCB0 KSwgdm9pZCAwLCBudWxsKSwgbnVsbCA9PT0gTnMpKSB0aHJvdyBFcnJvcihhKDM0OSkpOw0K ICAgICAgICAgICAgMCAhPT0gKDMwICYgaGkpIHx8IE1pKG4sIHQsIG8pOw0KICAgICAgICAg IH0NCiAgICAgICAgICByZXR1cm4gbzsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBN aShlLCB0LCBuKSB7DQogICAgICAgICAgKGUuZmxhZ3MgfD0gMTYzODQpLA0KICAgICAgICAg ICAgKGUgPSB7IGdldFNuYXBzaG90OiB0LCB2YWx1ZTogbiB9KSwNCiAgICAgICAgICAgIG51 bGwgPT09ICh0ID0gbWkudXBkYXRlUXVldWUpID8gKCh0ID0geyBsYXN0RWZmZWN0OiBudWxs LCBzdG9yZXM6IG51bGwgfSksIChtaS51cGRhdGVRdWV1ZSA9IHQpLCAodC5zdG9yZXMgPSBb ZV0pKSA6IG51bGwgPT09IChuID0gdC5zdG9yZXMpID8gKHQuc3RvcmVzID0gW2VdKSA6IG4u cHVzaChlKTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiB6aShlLCB0LCBuLCByKSB7 DQogICAgICAgICAgKHQudmFsdWUgPSBuKSwgKHQuZ2V0U25hcHNob3QgPSByKSwgSWkodCkg JiYgTGkoZSk7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gamkoZSwgdCwgbikgew0K ICAgICAgICAgIHJldHVybiBuKGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgIElpKHQpICYm IExpKGUpOw0KICAgICAgICAgIH0pOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIElp KGUpIHsNCiAgICAgICAgICB2YXIgdCA9IGUuZ2V0U25hcHNob3Q7DQogICAgICAgICAgZSA9 IGUudmFsdWU7DQogICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIHZhciBuID0gdCgpOw0K ICAgICAgICAgICAgcmV0dXJuICFscihlLCBuKTsNCiAgICAgICAgICB9IGNhdGNoIChyKSB7 DQogICAgICAgICAgICByZXR1cm4gITA7DQogICAgICAgICAgfQ0KICAgICAgICB9DQogICAg ICAgIGZ1bmN0aW9uIExpKGUpIHsNCiAgICAgICAgICB2YXIgdCA9IE5hKGUsIDEpOw0KICAg ICAgICAgIG51bGwgIT09IHQgJiYgcnUodCwgZSwgMSwgLTEpOw0KICAgICAgICB9DQogICAg ICAgIGZ1bmN0aW9uIEZpKGUpIHsNCiAgICAgICAgICB2YXIgdCA9IFJpKCk7DQogICAgICAg ICAgcmV0dXJuICgNCiAgICAgICAgICAgICJmdW5jdGlvbiIgPT09IHR5cGVvZiBlICYmIChl ID0gZSgpKSwNCiAgICAgICAgICAgICh0Lm1lbW9pemVkU3RhdGUgPSB0LmJhc2VTdGF0ZSA9 IGUpLA0KICAgICAgICAgICAgKGUgPSB7IHBlbmRpbmc6IG51bGwsIGludGVybGVhdmVkOiBu dWxsLCBsYW5lczogMCwgZGlzcGF0Y2g6IG51bGwsIGxhc3RSZW5kZXJlZFJlZHVjZXI6IFBp LCBsYXN0UmVuZGVyZWRTdGF0ZTogZSB9KSwNCiAgICAgICAgICAgICh0LnF1ZXVlID0gZSks DQogICAgICAgICAgICAoZSA9IGUuZGlzcGF0Y2ggPSBubC5iaW5kKG51bGwsIG1pLCBlKSks DQogICAgICAgICAgICBbdC5tZW1vaXplZFN0YXRlLCBlXQ0KICAgICAgICAgICk7DQogICAg ICAgIH0NCiAgICAgICAgZnVuY3Rpb24gQmkoZSwgdCwgbiwgcikgew0KICAgICAgICAgIHJl dHVybiAoDQogICAgICAgICAgICAoZSA9IHsgdGFnOiBlLCBjcmVhdGU6IHQsIGRlc3Ryb3k6 IG4sIGRlcHM6IHIsIG5leHQ6IG51bGwgfSksDQogICAgICAgICAgICBudWxsID09PSAodCA9 IG1pLnVwZGF0ZVF1ZXVlKQ0KICAgICAgICAgICAgICA/ICgodCA9IHsgbGFzdEVmZmVjdDog bnVsbCwgc3RvcmVzOiBudWxsIH0pLCAobWkudXBkYXRlUXVldWUgPSB0KSwgKHQubGFzdEVm ZmVjdCA9IGUubmV4dCA9IGUpKQ0KICAgICAgICAgICAgICA6IG51bGwgPT09IChuID0gdC5s YXN0RWZmZWN0KQ0KICAgICAgICAgICAgICAgID8gKHQubGFzdEVmZmVjdCA9IGUubmV4dCA9 IGUpDQogICAgICAgICAgICAgICAgOiAoKHIgPSBuLm5leHQpLCAobi5uZXh0ID0gZSksIChl Lm5leHQgPSByKSwgKHQubGFzdEVmZmVjdCA9IGUpKSwNCiAgICAgICAgICAgIGUNCiAgICAg ICAgICApOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIERpKCkgew0KICAgICAgICAg IHJldHVybiBfaSgpLm1lbW9pemVkU3RhdGU7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rp b24gVWkoZSwgdCwgbiwgcikgew0KICAgICAgICAgIHZhciBvID0gUmkoKTsNCiAgICAgICAg ICAobWkuZmxhZ3MgfD0gZSksIChvLm1lbW9pemVkU3RhdGUgPSBCaSgxIHwgdCwgbiwgdm9p ZCAwLCB2b2lkIDAgPT09IHIgPyBudWxsIDogcikpOw0KICAgICAgICB9DQogICAgICAgIGZ1 bmN0aW9uIFdpKGUsIHQsIG4sIHIpIHsNCiAgICAgICAgICB2YXIgbyA9IF9pKCk7DQogICAg ICAgICAgciA9IHZvaWQgMCA9PT0gciA/IG51bGwgOiByOw0KICAgICAgICAgIHZhciBhID0g dm9pZCAwOw0KICAgICAgICAgIGlmIChudWxsICE9PSBnaSkgew0KICAgICAgICAgICAgdmFy IGkgPSBnaS5tZW1vaXplZFN0YXRlOw0KICAgICAgICAgICAgaWYgKCgoYSA9IGkuZGVzdHJv eSksIG51bGwgIT09IHIgJiYga2kociwgaS5kZXBzKSkpIHJldHVybiB2b2lkIChvLm1lbW9p emVkU3RhdGUgPSBCaSh0LCBuLCBhLCByKSk7DQogICAgICAgICAgfQ0KICAgICAgICAgICht aS5mbGFncyB8PSBlKSwgKG8ubWVtb2l6ZWRTdGF0ZSA9IEJpKDEgfCB0LCBuLCBhLCByKSk7 DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gVmkoZSwgdCkgew0KICAgICAgICAgIHJl dHVybiBVaSg4MzkwNjU2LCA4LCBlLCB0KTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlv biBIaShlLCB0KSB7DQogICAgICAgICAgcmV0dXJuIFdpKDIwNDgsIDgsIGUsIHQpOw0KICAg ICAgICB9DQogICAgICAgIGZ1bmN0aW9uIHFpKGUsIHQpIHsNCiAgICAgICAgICByZXR1cm4g V2koNCwgMiwgZSwgdCk7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gJGkoZSwgdCkg ew0KICAgICAgICAgIHJldHVybiBXaSg0LCA0LCBlLCB0KTsNCiAgICAgICAgfQ0KICAgICAg ICBmdW5jdGlvbiBLaShlLCB0KSB7DQogICAgICAgICAgcmV0dXJuICJmdW5jdGlvbiIgPT09 IHR5cGVvZiB0DQogICAgICAgICAgICA/ICgoZSA9IGUoKSksDQogICAgICAgICAgICAgIHQo ZSksDQogICAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICB0KG51 bGwpOw0KICAgICAgICAgICAgICB9KQ0KICAgICAgICAgICAgOiBudWxsICE9PSB0ICYmIHZv aWQgMCAhPT0gdA0KICAgICAgICAgICAgICA/ICgoZSA9IGUoKSksDQogICAgICAgICAgICAg ICAgKHQuY3VycmVudCA9IGUpLA0KICAgICAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsNCiAg ICAgICAgICAgICAgICAgIHQuY3VycmVudCA9IG51bGw7DQogICAgICAgICAgICAgICAgfSkN CiAgICAgICAgICAgICAgOiB2b2lkIDA7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24g UWkoZSwgdCwgbikgew0KICAgICAgICAgIHJldHVybiAobiA9IG51bGwgIT09IG4gJiYgdm9p ZCAwICE9PSBuID8gbi5jb25jYXQoW2VdKSA6IG51bGwpLCBXaSg0LCA0LCBLaS5iaW5kKG51 bGwsIHQsIGUpLCBuKTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBHaSgpIHsgfQ0K ICAgICAgICBmdW5jdGlvbiBZaShlLCB0KSB7DQogICAgICAgICAgdmFyIG4gPSBfaSgpOw0K ICAgICAgICAgIHQgPSB2b2lkIDAgPT09IHQgPyBudWxsIDogdDsNCiAgICAgICAgICB2YXIg ciA9IG4ubWVtb2l6ZWRTdGF0ZTsNCiAgICAgICAgICByZXR1cm4gbnVsbCAhPT0gciAmJiBu dWxsICE9PSB0ICYmIGtpKHQsIHJbMV0pID8gclswXSA6ICgobi5tZW1vaXplZFN0YXRlID0g W2UsIHRdKSwgZSk7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gWGkoZSwgdCkgew0K ICAgICAgICAgIHZhciBuID0gX2koKTsNCiAgICAgICAgICB0ID0gdm9pZCAwID09PSB0ID8g bnVsbCA6IHQ7DQogICAgICAgICAgdmFyIHIgPSBuLm1lbW9pemVkU3RhdGU7DQogICAgICAg ICAgcmV0dXJuIG51bGwgIT09IHIgJiYgbnVsbCAhPT0gdCAmJiBraSh0LCByWzFdKSA/IHJb MF0gOiAoKGUgPSBlKCkpLCAobi5tZW1vaXplZFN0YXRlID0gW2UsIHRdKSwgZSk7DQogICAg ICAgIH0NCiAgICAgICAgZnVuY3Rpb24gWmkoZSwgdCwgbikgew0KICAgICAgICAgIHJldHVy biAwID09PSAoMjEgJiBoaSkgPyAoZS5iYXNlU3RhdGUgJiYgKChlLmJhc2VTdGF0ZSA9ICEx KSwgKHdsID0gITApKSwgKGUubWVtb2l6ZWRTdGF0ZSA9IG4pKSA6IChscihuLCB0KSB8fCAo KG4gPSBtdCgpKSwgKG1pLmxhbmVzIHw9IG4pLCAoTHMgfD0gbiksIChlLmJhc2VTdGF0ZSA9 ICEwKSksIHQpOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIEppKGUsIHQpIHsNCiAg ICAgICAgICB2YXIgbiA9IGJ0Ow0KICAgICAgICAgIChidCA9IDAgIT09IG4gJiYgNCA+IG4g PyBuIDogNCksIGUoITApOw0KICAgICAgICAgIHZhciByID0gcGkudHJhbnNpdGlvbjsNCiAg ICAgICAgICBwaS50cmFuc2l0aW9uID0ge307DQogICAgICAgICAgdHJ5IHsNCiAgICAgICAg ICAgIGUoITEpLCB0KCk7DQogICAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIChi dCA9IG4pLCAocGkudHJhbnNpdGlvbiA9IHIpOw0KICAgICAgICAgIH0NCiAgICAgICAgfQ0K ICAgICAgICBmdW5jdGlvbiBlbCgpIHsNCiAgICAgICAgICByZXR1cm4gX2koKS5tZW1vaXpl ZFN0YXRlOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIHRsKGUsIHQsIG4pIHsNCiAg ICAgICAgICB2YXIgciA9IG51KGUpOw0KICAgICAgICAgIGlmICgoKG4gPSB7IGxhbmU6IHIs IGFjdGlvbjogbiwgaGFzRWFnZXJTdGF0ZTogITEsIGVhZ2VyU3RhdGU6IG51bGwsIG5leHQ6 IG51bGwgfSksIHJsKGUpKSkgb2wodCwgbik7DQogICAgICAgICAgZWxzZSBpZiAobnVsbCAh PT0gKG4gPSBPYShlLCB0LCBuLCByKSkpIHsNCiAgICAgICAgICAgIHJ1KG4sIGUsIHIsIHR1 KCkpLCBhbChuLCB0LCByKTsNCiAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgZnVu Y3Rpb24gbmwoZSwgdCwgbikgew0KICAgICAgICAgIHZhciByID0gbnUoZSksDQogICAgICAg ICAgICBvID0geyBsYW5lOiByLCBhY3Rpb246IG4sIGhhc0VhZ2VyU3RhdGU6ICExLCBlYWdl clN0YXRlOiBudWxsLCBuZXh0OiBudWxsIH07DQogICAgICAgICAgaWYgKHJsKGUpKSBvbCh0 LCBvKTsNCiAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIHZhciBhID0gZS5hbHRlcm5h dGU7DQogICAgICAgICAgICBpZiAoMCA9PT0gZS5sYW5lcyAmJiAobnVsbCA9PT0gYSB8fCAw ID09PSBhLmxhbmVzKSAmJiBudWxsICE9PSAoYSA9IHQubGFzdFJlbmRlcmVkUmVkdWNlcikp DQogICAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAgdmFyIGkgPSB0Lmxhc3RS ZW5kZXJlZFN0YXRlLA0KICAgICAgICAgICAgICAgICAgbCA9IGEoaSwgbik7DQogICAgICAg ICAgICAgICAgaWYgKCgoby5oYXNFYWdlclN0YXRlID0gITApLCAoby5lYWdlclN0YXRlID0g bCksIGxyKGwsIGkpKSkgew0KICAgICAgICAgICAgICAgICAgdmFyIHMgPSB0LmludGVybGVh dmVkOw0KICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGwgPT09IHMgPyAoKG8ubmV4dCA9 IG8pLCBQYSh0KSkgOiAoKG8ubmV4dCA9IHMubmV4dCksIChzLm5leHQgPSBvKSksIHZvaWQg KHQuaW50ZXJsZWF2ZWQgPSBvKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAg IH0gY2F0Y2ggKHUpIHsgfQ0KICAgICAgICAgICAgbnVsbCAhPT0gKG4gPSBPYShlLCB0LCBv LCByKSkgJiYgKHJ1KG4sIGUsIHIsIChvID0gdHUoKSkpLCBhbChuLCB0LCByKSk7DQogICAg ICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIHJsKGUpIHsNCiAgICAgICAg ICB2YXIgdCA9IGUuYWx0ZXJuYXRlOw0KICAgICAgICAgIHJldHVybiBlID09PSBtaSB8fCAo bnVsbCAhPT0gdCAmJiB0ID09PSBtaSk7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24g b2woZSwgdCkgew0KICAgICAgICAgIGJpID0geWkgPSAhMDsNCiAgICAgICAgICB2YXIgbiA9 IGUucGVuZGluZzsNCiAgICAgICAgICBudWxsID09PSBuID8gKHQubmV4dCA9IHQpIDogKCh0 Lm5leHQgPSBuLm5leHQpLCAobi5uZXh0ID0gdCkpLCAoZS5wZW5kaW5nID0gdCk7DQogICAg ICAgIH0NCiAgICAgICAgZnVuY3Rpb24gYWwoZSwgdCwgbikgew0KICAgICAgICAgIGlmICgw ICE9PSAoNDE5NDI0MCAmIG4pKSB7DQogICAgICAgICAgICB2YXIgciA9IHQubGFuZXM7DQog ICAgICAgICAgICAobiB8PSByICY9IGUucGVuZGluZ0xhbmVzKSwgKHQubGFuZXMgPSBuKSwg eXQoZSwgbik7DQogICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIHZhciBpbCA9IHsN CiAgICAgICAgICByZWFkQ29udGV4dDogUmEsDQogICAgICAgICAgdXNlQ2FsbGJhY2s6IFNp LA0KICAgICAgICAgIHVzZUNvbnRleHQ6IFNpLA0KICAgICAgICAgIHVzZUVmZmVjdDogU2ks DQogICAgICAgICAgdXNlSW1wZXJhdGl2ZUhhbmRsZTogU2ksDQogICAgICAgICAgdXNlSW5z ZXJ0aW9uRWZmZWN0OiBTaSwNCiAgICAgICAgICB1c2VMYXlvdXRFZmZlY3Q6IFNpLA0KICAg ICAgICAgIHVzZU1lbW86IFNpLA0KICAgICAgICAgIHVzZVJlZHVjZXI6IFNpLA0KICAgICAg ICAgIHVzZVJlZjogU2ksDQogICAgICAgICAgdXNlU3RhdGU6IFNpLA0KICAgICAgICAgIHVz ZURlYnVnVmFsdWU6IFNpLA0KICAgICAgICAgIHVzZURlZmVycmVkVmFsdWU6IFNpLA0KICAg ICAgICAgIHVzZVRyYW5zaXRpb246IFNpLA0KICAgICAgICAgIHVzZU11dGFibGVTb3VyY2U6 IFNpLA0KICAgICAgICAgIHVzZVN5bmNFeHRlcm5hbFN0b3JlOiBTaSwNCiAgICAgICAgICB1 c2VJZDogU2ksDQogICAgICAgICAgdW5zdGFibGVfaXNOZXdSZWNvbmNpbGVyOiAhMSwNCiAg ICAgICAgfSwNCiAgICAgICAgICBsbCA9IHsNCiAgICAgICAgICAgIHJlYWRDb250ZXh0OiBS YSwNCiAgICAgICAgICAgIHVzZUNhbGxiYWNrOiBmdW5jdGlvbiAoZSwgdCkgew0KICAgICAg ICAgICAgICByZXR1cm4gKFJpKCkubWVtb2l6ZWRTdGF0ZSA9IFtlLCB2b2lkIDAgPT09IHQg PyBudWxsIDogdF0pLCBlOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHVzZUNvbnRl eHQ6IFJhLA0KICAgICAgICAgICAgdXNlRWZmZWN0OiBWaSwNCiAgICAgICAgICAgIHVzZUlt cGVyYXRpdmVIYW5kbGU6IGZ1bmN0aW9uIChlLCB0LCBuKSB7DQogICAgICAgICAgICAgIHJl dHVybiAobiA9IG51bGwgIT09IG4gJiYgdm9pZCAwICE9PSBuID8gbi5jb25jYXQoW2VdKSA6 IG51bGwpLCBVaSg0MTk0MzA4LCA0LCBLaS5iaW5kKG51bGwsIHQsIGUpLCBuKTsNCiAgICAg ICAgICAgIH0sDQogICAgICAgICAgICB1c2VMYXlvdXRFZmZlY3Q6IGZ1bmN0aW9uIChlLCB0 KSB7DQogICAgICAgICAgICAgIHJldHVybiBVaSg0MTk0MzA4LCA0LCBlLCB0KTsNCiAgICAg ICAgICAgIH0sDQogICAgICAgICAgICB1c2VJbnNlcnRpb25FZmZlY3Q6IGZ1bmN0aW9uIChl LCB0KSB7DQogICAgICAgICAgICAgIHJldHVybiBVaSg0LCAyLCBlLCB0KTsNCiAgICAgICAg ICAgIH0sDQogICAgICAgICAgICB1c2VNZW1vOiBmdW5jdGlvbiAoZSwgdCkgew0KICAgICAg ICAgICAgICB2YXIgbiA9IFJpKCk7DQogICAgICAgICAgICAgIHJldHVybiAodCA9IHZvaWQg MCA9PT0gdCA/IG51bGwgOiB0KSwgKGUgPSBlKCkpLCAobi5tZW1vaXplZFN0YXRlID0gW2Us IHRdKSwgZTsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB1c2VSZWR1Y2VyOiBmdW5j dGlvbiAoZSwgdCwgbikgew0KICAgICAgICAgICAgICB2YXIgciA9IFJpKCk7DQogICAgICAg ICAgICAgIHJldHVybiAoDQogICAgICAgICAgICAgICAgKHQgPSB2b2lkIDAgIT09IG4gPyBu KHQpIDogdCksDQogICAgICAgICAgICAgICAgKHIubWVtb2l6ZWRTdGF0ZSA9IHIuYmFzZVN0 YXRlID0gdCksDQogICAgICAgICAgICAgICAgKGUgPSB7IHBlbmRpbmc6IG51bGwsIGludGVy bGVhdmVkOiBudWxsLCBsYW5lczogMCwgZGlzcGF0Y2g6IG51bGwsIGxhc3RSZW5kZXJlZFJl ZHVjZXI6IGUsIGxhc3RSZW5kZXJlZFN0YXRlOiB0IH0pLA0KICAgICAgICAgICAgICAgIChy LnF1ZXVlID0gZSksDQogICAgICAgICAgICAgICAgKGUgPSBlLmRpc3BhdGNoID0gdGwuYmlu ZChudWxsLCBtaSwgZSkpLA0KICAgICAgICAgICAgICAgIFtyLm1lbW9pemVkU3RhdGUsIGVd DQogICAgICAgICAgICAgICk7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgdXNlUmVm OiBmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgICByZXR1cm4gKGUgPSB7IGN1cnJlbnQ6 IGUgfSksIChSaSgpLm1lbW9pemVkU3RhdGUgPSBlKTsNCiAgICAgICAgICAgIH0sDQogICAg ICAgICAgICB1c2VTdGF0ZTogRmksDQogICAgICAgICAgICB1c2VEZWJ1Z1ZhbHVlOiBHaSwN CiAgICAgICAgICAgIHVzZURlZmVycmVkVmFsdWU6IGZ1bmN0aW9uIChlKSB7DQogICAgICAg ICAgICAgIHJldHVybiAoUmkoKS5tZW1vaXplZFN0YXRlID0gZSk7DQogICAgICAgICAgICB9 LA0KICAgICAgICAgICAgdXNlVHJhbnNpdGlvbjogZnVuY3Rpb24gKCkgew0KICAgICAgICAg ICAgICB2YXIgZSA9IEZpKCExKSwNCiAgICAgICAgICAgICAgICB0ID0gZVswXTsNCiAgICAg ICAgICAgICAgcmV0dXJuIChlID0gSmkuYmluZChudWxsLCBlWzFdKSksIChSaSgpLm1lbW9p emVkU3RhdGUgPSBlKSwgW3QsIGVdOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHVz ZU11dGFibGVTb3VyY2U6IGZ1bmN0aW9uICgpIHsgfSwNCiAgICAgICAgICAgIHVzZVN5bmNF eHRlcm5hbFN0b3JlOiBmdW5jdGlvbiAoZSwgdCwgbikgew0KICAgICAgICAgICAgICB2YXIg ciA9IG1pLA0KICAgICAgICAgICAgICAgIG8gPSBSaSgpOw0KICAgICAgICAgICAgICBpZiAo YWEpIHsNCiAgICAgICAgICAgICAgICBpZiAodm9pZCAwID09PSBuKSB0aHJvdyBFcnJvcihh KDQwNykpOw0KICAgICAgICAgICAgICAgIG4gPSBuKCk7DQogICAgICAgICAgICAgIH0gZWxz ZSB7DQogICAgICAgICAgICAgICAgaWYgKCgobiA9IHQoKSksIG51bGwgPT09IE5zKSkgdGhy b3cgRXJyb3IoYSgzNDkpKTsNCiAgICAgICAgICAgICAgICAwICE9PSAoMzAgJiBoaSkgfHwg TWkociwgdCwgbik7DQogICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgby5tZW1vaXpl ZFN0YXRlID0gbjsNCiAgICAgICAgICAgICAgdmFyIGkgPSB7IHZhbHVlOiBuLCBnZXRTbmFw c2hvdDogdCB9Ow0KICAgICAgICAgICAgICByZXR1cm4gKG8ucXVldWUgPSBpKSwgVmkoamku YmluZChudWxsLCByLCBpLCBlKSwgW2VdKSwgKHIuZmxhZ3MgfD0gMjA0OCksIEJpKDksIHpp LmJpbmQobnVsbCwgciwgaSwgbiwgdCksIHZvaWQgMCwgbnVsbCksIG47DQogICAgICAgICAg ICB9LA0KICAgICAgICAgICAgdXNlSWQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAg dmFyIGUgPSBSaSgpLA0KICAgICAgICAgICAgICAgIHQgPSBOcy5pZGVudGlmaWVyUHJlZml4 Ow0KICAgICAgICAgICAgICBpZiAoYWEpIHsNCiAgICAgICAgICAgICAgICB2YXIgbiA9IFpv Ow0KICAgICAgICAgICAgICAgICh0ID0gIjoiICsgdCArICJSIiArIChuID0gKFhvICYgfigx IDw8ICgzMiAtIGl0KFhvKSAtIDEpKSkudG9TdHJpbmcoMzIpICsgbikpLCAwIDwgKG4gPSB3 aSsrKSAmJiAodCArPSAiSCIgKyBuLnRvU3RyaW5nKDMyKSksICh0ICs9ICI6Iik7DQogICAg ICAgICAgICAgIH0gZWxzZSB0ID0gIjoiICsgdCArICJyIiArIChuID0geGkrKykudG9TdHJp bmcoMzIpICsgIjoiOw0KICAgICAgICAgICAgICByZXR1cm4gKGUubWVtb2l6ZWRTdGF0ZSA9 IHQpOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHVuc3RhYmxlX2lzTmV3UmVjb25j aWxlcjogITEsDQogICAgICAgICAgfSwNCiAgICAgICAgICBzbCA9IHsNCiAgICAgICAgICAg IHJlYWRDb250ZXh0OiBSYSwNCiAgICAgICAgICAgIHVzZUNhbGxiYWNrOiBZaSwNCiAgICAg ICAgICAgIHVzZUNvbnRleHQ6IFJhLA0KICAgICAgICAgICAgdXNlRWZmZWN0OiBIaSwNCiAg ICAgICAgICAgIHVzZUltcGVyYXRpdmVIYW5kbGU6IFFpLA0KICAgICAgICAgICAgdXNlSW5z ZXJ0aW9uRWZmZWN0OiBxaSwNCiAgICAgICAgICAgIHVzZUxheW91dEVmZmVjdDogJGksDQog ICAgICAgICAgICB1c2VNZW1vOiBYaSwNCiAgICAgICAgICAgIHVzZVJlZHVjZXI6IE9pLA0K ICAgICAgICAgICAgdXNlUmVmOiBEaSwNCiAgICAgICAgICAgIHVzZVN0YXRlOiBmdW5jdGlv biAoKSB7DQogICAgICAgICAgICAgIHJldHVybiBPaShQaSk7DQogICAgICAgICAgICB9LA0K ICAgICAgICAgICAgdXNlRGVidWdWYWx1ZTogR2ksDQogICAgICAgICAgICB1c2VEZWZlcnJl ZFZhbHVlOiBmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgICByZXR1cm4gWmkoX2koKSwg Z2kubWVtb2l6ZWRTdGF0ZSwgZSk7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgdXNl VHJhbnNpdGlvbjogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICByZXR1cm4gW09pKFBp KVswXSwgX2koKS5tZW1vaXplZFN0YXRlXTsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAg ICB1c2VNdXRhYmxlU291cmNlOiBUaSwNCiAgICAgICAgICAgIHVzZVN5bmNFeHRlcm5hbFN0 b3JlOiBBaSwNCiAgICAgICAgICAgIHVzZUlkOiBlbCwNCiAgICAgICAgICAgIHVuc3RhYmxl X2lzTmV3UmVjb25jaWxlcjogITEsDQogICAgICAgICAgfSwNCiAgICAgICAgICB1bCA9IHsN CiAgICAgICAgICAgIHJlYWRDb250ZXh0OiBSYSwNCiAgICAgICAgICAgIHVzZUNhbGxiYWNr OiBZaSwNCiAgICAgICAgICAgIHVzZUNvbnRleHQ6IFJhLA0KICAgICAgICAgICAgdXNlRWZm ZWN0OiBIaSwNCiAgICAgICAgICAgIHVzZUltcGVyYXRpdmVIYW5kbGU6IFFpLA0KICAgICAg ICAgICAgdXNlSW5zZXJ0aW9uRWZmZWN0OiBxaSwNCiAgICAgICAgICAgIHVzZUxheW91dEVm ZmVjdDogJGksDQogICAgICAgICAgICB1c2VNZW1vOiBYaSwNCiAgICAgICAgICAgIHVzZVJl ZHVjZXI6IE5pLA0KICAgICAgICAgICAgdXNlUmVmOiBEaSwNCiAgICAgICAgICAgIHVzZVN0 YXRlOiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgIHJldHVybiBOaShQaSk7DQogICAg ICAgICAgICB9LA0KICAgICAgICAgICAgdXNlRGVidWdWYWx1ZTogR2ksDQogICAgICAgICAg ICB1c2VEZWZlcnJlZFZhbHVlOiBmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgICB2YXIg dCA9IF9pKCk7DQogICAgICAgICAgICAgIHJldHVybiBudWxsID09PSBnaSA/ICh0Lm1lbW9p emVkU3RhdGUgPSBlKSA6IFppKHQsIGdpLm1lbW9pemVkU3RhdGUsIGUpOw0KICAgICAgICAg ICAgfSwNCiAgICAgICAgICAgIHVzZVRyYW5zaXRpb246IGZ1bmN0aW9uICgpIHsNCiAgICAg ICAgICAgICAgcmV0dXJuIFtOaShQaSlbMF0sIF9pKCkubWVtb2l6ZWRTdGF0ZV07DQogICAg ICAgICAgICB9LA0KICAgICAgICAgICAgdXNlTXV0YWJsZVNvdXJjZTogVGksDQogICAgICAg ICAgICB1c2VTeW5jRXh0ZXJuYWxTdG9yZTogQWksDQogICAgICAgICAgICB1c2VJZDogZWws DQogICAgICAgICAgICB1bnN0YWJsZV9pc05ld1JlY29uY2lsZXI6ICExLA0KICAgICAgICAg IH07DQogICAgICAgIGZ1bmN0aW9uIGNsKGUsIHQpIHsNCiAgICAgICAgICB0cnkgew0KICAg ICAgICAgICAgdmFyIG4gPSAiIiwNCiAgICAgICAgICAgICAgciA9IHQ7DQogICAgICAgICAg ICBkbyB7DQogICAgICAgICAgICAgIChuICs9IFUocikpLCAociA9IHIucmV0dXJuKTsNCiAg ICAgICAgICAgIH0gd2hpbGUgKHIpOw0KICAgICAgICAgICAgdmFyIG8gPSBuOw0KICAgICAg ICAgIH0gY2F0Y2ggKGEpIHsNCiAgICAgICAgICAgIG8gPSAiXG5FcnJvciBnZW5lcmF0aW5n IHN0YWNrOiAiICsgYS5tZXNzYWdlICsgIlxuIiArIGEuc3RhY2s7DQogICAgICAgICAgfQ0K ICAgICAgICAgIHJldHVybiB7IHZhbHVlOiBlLCBzb3VyY2U6IHQsIHN0YWNrOiBvLCBkaWdl c3Q6IG51bGwgfTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBkbChlLCB0LCBuKSB7 DQogICAgICAgICAgcmV0dXJuIHsgdmFsdWU6IGUsIHNvdXJjZTogbnVsbCwgc3RhY2s6IG51 bGwgIT0gbiA/IG4gOiBudWxsLCBkaWdlc3Q6IG51bGwgIT0gdCA/IHQgOiBudWxsIH07DQog ICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gZmwoZSwgdCkgew0KICAgICAgICAgIHRyeSB7 DQogICAgICAgICAgICBjb25zb2xlLmVycm9yKHQudmFsdWUpOw0KICAgICAgICAgIH0gY2F0 Y2ggKG4pIHsNCiAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgew0KICAgICAg ICAgICAgICB0aHJvdyBuOw0KICAgICAgICAgICAgfSk7DQogICAgICAgICAgfQ0KICAgICAg ICB9DQogICAgICAgIHZhciBwbCA9ICJmdW5jdGlvbiIgPT09IHR5cGVvZiBXZWFrTWFwID8g V2Vha01hcCA6IE1hcDsNCiAgICAgICAgZnVuY3Rpb24gaGwoZSwgdCwgbikgew0KICAgICAg ICAgICgobiA9IHphKC0xLCBuKSkudGFnID0gMyksIChuLnBheWxvYWQgPSB7IGVsZW1lbnQ6 IG51bGwgfSk7DQogICAgICAgICAgdmFyIHIgPSB0LnZhbHVlOw0KICAgICAgICAgIHJldHVy biAoDQogICAgICAgICAgICAobi5jYWxsYmFjayA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAg ICAgICAgcXMgfHwgKChxcyA9ICEwKSwgKCRzID0gcikpLCBmbCgwLCB0KTsNCiAgICAgICAg ICAgIH0pLA0KICAgICAgICAgICAgbg0KICAgICAgICAgICk7DQogICAgICAgIH0NCiAgICAg ICAgZnVuY3Rpb24gbWwoZSwgdCwgbikgew0KICAgICAgICAgIChuID0gemEoLTEsIG4pKS50 YWcgPSAzOw0KICAgICAgICAgIHZhciByID0gZS50eXBlLmdldERlcml2ZWRTdGF0ZUZyb21F cnJvcjsNCiAgICAgICAgICBpZiAoImZ1bmN0aW9uIiA9PT0gdHlwZW9mIHIpIHsNCiAgICAg ICAgICAgIHZhciBvID0gdC52YWx1ZTsNCiAgICAgICAgICAgIChuLnBheWxvYWQgPSBmdW5j dGlvbiAoKSB7DQogICAgICAgICAgICAgIHJldHVybiByKG8pOw0KICAgICAgICAgICAgfSks DQogICAgICAgICAgICAgIChuLmNhbGxiYWNrID0gZnVuY3Rpb24gKCkgew0KICAgICAgICAg ICAgICAgIGZsKDAsIHQpOw0KICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICB9DQogICAg ICAgICAgdmFyIGEgPSBlLnN0YXRlTm9kZTsNCiAgICAgICAgICByZXR1cm4gKA0KICAgICAg ICAgICAgbnVsbCAhPT0gYSAmJg0KICAgICAgICAgICAgImZ1bmN0aW9uIiA9PT0gdHlwZW9m IGEuY29tcG9uZW50RGlkQ2F0Y2ggJiYNCiAgICAgICAgICAgIChuLmNhbGxiYWNrID0gZnVu Y3Rpb24gKCkgew0KICAgICAgICAgICAgICBmbCgwLCB0KSwgImZ1bmN0aW9uIiAhPT0gdHlw ZW9mIHIgJiYgKG51bGwgPT09IEtzID8gKEtzID0gbmV3IFNldChbdGhpc10pKSA6IEtzLmFk ZCh0aGlzKSk7DQogICAgICAgICAgICAgIHZhciBlID0gdC5zdGFjazsNCiAgICAgICAgICAg ICAgdGhpcy5jb21wb25lbnREaWRDYXRjaCh0LnZhbHVlLCB7IGNvbXBvbmVudFN0YWNrOiBu dWxsICE9PSBlID8gZSA6ICIiIH0pOw0KICAgICAgICAgICAgfSksDQogICAgICAgICAgICBu DQogICAgICAgICAgKTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBnbChlLCB0LCBu KSB7DQogICAgICAgICAgdmFyIHIgPSBlLnBpbmdDYWNoZTsNCiAgICAgICAgICBpZiAobnVs bCA9PT0gcikgew0KICAgICAgICAgICAgciA9IGUucGluZ0NhY2hlID0gbmV3IHBsKCk7DQog ICAgICAgICAgICB2YXIgbyA9IG5ldyBTZXQoKTsNCiAgICAgICAgICAgIHIuc2V0KHQsIG8p Ow0KICAgICAgICAgIH0gZWxzZSB2b2lkIDAgPT09IChvID0gci5nZXQodCkpICYmICgobyA9 IG5ldyBTZXQoKSksIHIuc2V0KHQsIG8pKTsNCiAgICAgICAgICBvLmhhcyhuKSB8fCAoby5h ZGQobiksIChlID0gUnUuYmluZChudWxsLCBlLCB0LCBuKSksIHQudGhlbihlLCBlKSk7DQog ICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gdmwoZSkgew0KICAgICAgICAgIGRvIHsNCiAg ICAgICAgICAgIHZhciB0Ow0KICAgICAgICAgICAgaWYgKCgodCA9IDEzID09PSBlLnRhZykg JiYgKHQgPSBudWxsID09PSAodCA9IGUubWVtb2l6ZWRTdGF0ZSkgfHwgbnVsbCAhPT0gdC5k ZWh5ZHJhdGVkKSwgdCkpIHJldHVybiBlOw0KICAgICAgICAgICAgZSA9IGUucmV0dXJuOw0K ICAgICAgICAgIH0gd2hpbGUgKG51bGwgIT09IGUpOw0KICAgICAgICAgIHJldHVybiBudWxs Ow0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIHlsKGUsIHQsIG4sIHIsIG8pIHsNCiAg ICAgICAgICByZXR1cm4gMCA9PT0gKDEgJiBlLm1vZGUpDQogICAgICAgICAgICA/IChlID09 PSB0ID8gKGUuZmxhZ3MgfD0gNjU1MzYpIDogKChlLmZsYWdzIHw9IDEyOCksIChuLmZsYWdz IHw9IDEzMTA3MiksIChuLmZsYWdzICY9IC01MjgwNSksIDEgPT09IG4udGFnICYmIChudWxs ID09PSBuLmFsdGVybmF0ZSA/IChuLnRhZyA9IDE3KSA6ICgoKHQgPSB6YSgtMSwgMSkpLnRh ZyA9IDIpLCBqYShuLCB0LCAxKSkpLCAobi5sYW5lcyB8PSAxKSksDQogICAgICAgICAgICAg IGUpDQogICAgICAgICAgICA6ICgoZS5mbGFncyB8PSA2NTUzNiksIChlLmxhbmVzID0gbyks IGUpOw0KICAgICAgICB9DQogICAgICAgIHZhciBibCA9IHcuUmVhY3RDdXJyZW50T3duZXIs DQogICAgICAgICAgd2wgPSAhMTsNCiAgICAgICAgZnVuY3Rpb24geGwoZSwgdCwgbiwgcikg ew0KICAgICAgICAgIHQuY2hpbGQgPSBudWxsID09PSBlID8gWmEodCwgbnVsbCwgbiwgcikg OiBYYSh0LCBlLmNoaWxkLCBuLCByKTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBT bChlLCB0LCBuLCByLCBvKSB7DQogICAgICAgICAgbiA9IG4ucmVuZGVyOw0KICAgICAgICAg IHZhciBhID0gdC5yZWY7DQogICAgICAgICAgcmV0dXJuICgNCiAgICAgICAgICAgIENhKHQs IG8pLA0KICAgICAgICAgICAgKHIgPSBFaShlLCB0LCBuLCByLCBhLCBvKSksDQogICAgICAg ICAgICAobiA9IENpKCkpLA0KICAgICAgICAgICAgbnVsbCA9PT0gZSB8fCB3bCA/IChhYSAm JiBuICYmIHRhKHQpLCAodC5mbGFncyB8PSAxKSwgeGwoZSwgdCwgciwgbyksIHQuY2hpbGQp IDogKCh0LnVwZGF0ZVF1ZXVlID0gZS51cGRhdGVRdWV1ZSksICh0LmZsYWdzICY9IC0yMDUz KSwgKGUubGFuZXMgJj0gfm8pLCBxbChlLCB0LCBvKSkNCiAgICAgICAgICApOw0KICAgICAg ICB9DQogICAgICAgIGZ1bmN0aW9uIGtsKGUsIHQsIG4sIHIsIG8pIHsNCiAgICAgICAgICBp ZiAobnVsbCA9PT0gZSkgew0KICAgICAgICAgICAgdmFyIGEgPSBuLnR5cGU7DQogICAgICAg ICAgICByZXR1cm4gImZ1bmN0aW9uIiAhPT0gdHlwZW9mIGEgfHwgTXUoYSkgfHwgdm9pZCAw ICE9PSBhLmRlZmF1bHRQcm9wcyB8fCBudWxsICE9PSBuLmNvbXBhcmUgfHwgdm9pZCAwICE9 PSBuLmRlZmF1bHRQcm9wcw0KICAgICAgICAgICAgICA/ICgoKGUgPSBqdShuLnR5cGUsIG51 bGwsIHIsIHQsIHQubW9kZSwgbykpLnJlZiA9IHQucmVmKSwgKGUucmV0dXJuID0gdCksICh0 LmNoaWxkID0gZSkpDQogICAgICAgICAgICAgIDogKCh0LnRhZyA9IDE1KSwgKHQudHlwZSA9 IGEpLCBFbChlLCB0LCBhLCByLCBvKSk7DQogICAgICAgICAgfQ0KICAgICAgICAgIGlmICgo KGEgPSBlLmNoaWxkKSwgMCA9PT0gKGUubGFuZXMgJiBvKSkpIHsNCiAgICAgICAgICAgIHZh ciBpID0gYS5tZW1vaXplZFByb3BzOw0KICAgICAgICAgICAgaWYgKChuID0gbnVsbCAhPT0g KG4gPSBuLmNvbXBhcmUpID8gbiA6IHNyKShpLCByKSAmJiBlLnJlZiA9PT0gdC5yZWYpIHJl dHVybiBxbChlLCB0LCBvKTsNCiAgICAgICAgICB9DQogICAgICAgICAgcmV0dXJuICh0LmZs YWdzIHw9IDEpLCAoKGUgPSB6dShhLCByKSkucmVmID0gdC5yZWYpLCAoZS5yZXR1cm4gPSB0 KSwgKHQuY2hpbGQgPSBlKTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBFbChlLCB0 LCBuLCByLCBvKSB7DQogICAgICAgICAgaWYgKG51bGwgIT09IGUpIHsNCiAgICAgICAgICAg IHZhciBhID0gZS5tZW1vaXplZFByb3BzOw0KICAgICAgICAgICAgaWYgKHNyKGEsIHIpICYm IGUucmVmID09PSB0LnJlZikgew0KICAgICAgICAgICAgICBpZiAoKCh3bCA9ICExKSwgKHQu cGVuZGluZ1Byb3BzID0gciA9IGEpLCAwID09PSAoZS5sYW5lcyAmIG8pKSkgcmV0dXJuICh0 LmxhbmVzID0gZS5sYW5lcyksIHFsKGUsIHQsIG8pOw0KICAgICAgICAgICAgICAwICE9PSAo MTMxMDcyICYgZS5mbGFncykgJiYgKHdsID0gITApOw0KICAgICAgICAgICAgfQ0KICAgICAg ICAgIH0NCiAgICAgICAgICByZXR1cm4gX2woZSwgdCwgbiwgciwgbyk7DQogICAgICAgIH0N CiAgICAgICAgZnVuY3Rpb24gQ2woZSwgdCwgbikgew0KICAgICAgICAgIHZhciByID0gdC5w ZW5kaW5nUHJvcHMsDQogICAgICAgICAgICBvID0gci5jaGlsZHJlbiwNCiAgICAgICAgICAg IGEgPSBudWxsICE9PSBlID8gZS5tZW1vaXplZFN0YXRlIDogbnVsbDsNCiAgICAgICAgICBp ZiAoImhpZGRlbiIgPT09IHIubW9kZSkNCiAgICAgICAgICAgIGlmICgwID09PSAoMSAmIHQu bW9kZSkpICh0Lm1lbW9pemVkU3RhdGUgPSB7IGJhc2VMYW5lczogMCwgY2FjaGVQb29sOiBu dWxsLCB0cmFuc2l0aW9uczogbnVsbCB9KSwgX28oenMsIE1zKSwgKE1zIHw9IG4pOw0KICAg ICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgIGlmICgwID09PSAoMTA3Mzc0MTgyNCAm IG4pKQ0KICAgICAgICAgICAgICAgIHJldHVybiAoDQogICAgICAgICAgICAgICAgICAoZSA9 IG51bGwgIT09IGEgPyBhLmJhc2VMYW5lcyB8IG4gOiBuKSwNCiAgICAgICAgICAgICAgICAg ICh0LmxhbmVzID0gdC5jaGlsZExhbmVzID0gMTA3Mzc0MTgyNCksDQogICAgICAgICAgICAg ICAgICAodC5tZW1vaXplZFN0YXRlID0geyBiYXNlTGFuZXM6IGUsIGNhY2hlUG9vbDogbnVs bCwgdHJhbnNpdGlvbnM6IG51bGwgfSksDQogICAgICAgICAgICAgICAgICAodC51cGRhdGVR dWV1ZSA9IG51bGwpLA0KICAgICAgICAgICAgICAgICAgX28oenMsIE1zKSwNCiAgICAgICAg ICAgICAgICAgIChNcyB8PSBlKSwNCiAgICAgICAgICAgICAgICAgIG51bGwNCiAgICAgICAg ICAgICAgICApOw0KICAgICAgICAgICAgICAodC5tZW1vaXplZFN0YXRlID0geyBiYXNlTGFu ZXM6IDAsIGNhY2hlUG9vbDogbnVsbCwgdHJhbnNpdGlvbnM6IG51bGwgfSksIChyID0gbnVs bCAhPT0gYSA/IGEuYmFzZUxhbmVzIDogbiksIF9vKHpzLCBNcyksIChNcyB8PSByKTsNCiAg ICAgICAgICAgIH0NCiAgICAgICAgICBlbHNlIG51bGwgIT09IGEgPyAoKHIgPSBhLmJhc2VM YW5lcyB8IG4pLCAodC5tZW1vaXplZFN0YXRlID0gbnVsbCkpIDogKHIgPSBuKSwgX28oenMs IE1zKSwgKE1zIHw9IHIpOw0KICAgICAgICAgIHJldHVybiB4bChlLCB0LCBvLCBuKSwgdC5j aGlsZDsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBSbChlLCB0KSB7DQogICAgICAg ICAgdmFyIG4gPSB0LnJlZjsNCiAgICAgICAgICAoKG51bGwgPT09IGUgJiYgbnVsbCAhPT0g bikgfHwgKG51bGwgIT09IGUgJiYgZS5yZWYgIT09IG4pKSAmJiAoKHQuZmxhZ3MgfD0gNTEy KSwgKHQuZmxhZ3MgfD0gMjA5NzE1MikpOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9u IF9sKGUsIHQsIG4sIHIsIG8pIHsNCiAgICAgICAgICB2YXIgYSA9IE1vKG4pID8gVG8gOiBP by5jdXJyZW50Ow0KICAgICAgICAgIHJldHVybiAoDQogICAgICAgICAgICAoYSA9IEFvKHQs IGEpKSwNCiAgICAgICAgICAgIENhKHQsIG8pLA0KICAgICAgICAgICAgKG4gPSBFaShlLCB0 LCBuLCByLCBhLCBvKSksDQogICAgICAgICAgICAociA9IENpKCkpLA0KICAgICAgICAgICAg bnVsbCA9PT0gZSB8fCB3bCA/IChhYSAmJiByICYmIHRhKHQpLCAodC5mbGFncyB8PSAxKSwg eGwoZSwgdCwgbiwgbyksIHQuY2hpbGQpIDogKCh0LnVwZGF0ZVF1ZXVlID0gZS51cGRhdGVR dWV1ZSksICh0LmZsYWdzICY9IC0yMDUzKSwgKGUubGFuZXMgJj0gfm8pLCBxbChlLCB0LCBv KSkNCiAgICAgICAgICApOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIFBsKGUsIHQs IG4sIHIsIG8pIHsNCiAgICAgICAgICBpZiAoTW8obikpIHsNCiAgICAgICAgICAgIHZhciBh ID0gITA7DQogICAgICAgICAgICBMbyh0KTsNCiAgICAgICAgICB9IGVsc2UgYSA9ICExOw0K ICAgICAgICAgIGlmICgoQ2EodCwgbyksIG51bGwgPT09IHQuc3RhdGVOb2RlKSkgSGwoZSwg dCksIEhhKHQsIG4sIHIpLCAkYSh0LCBuLCByLCBvKSwgKHIgPSAhMCk7DQogICAgICAgICAg ZWxzZSBpZiAobnVsbCA9PT0gZSkgew0KICAgICAgICAgICAgdmFyIGkgPSB0LnN0YXRlTm9k ZSwNCiAgICAgICAgICAgICAgbCA9IHQubWVtb2l6ZWRQcm9wczsNCiAgICAgICAgICAgIGku cHJvcHMgPSBsOw0KICAgICAgICAgICAgdmFyIHMgPSBpLmNvbnRleHQsDQogICAgICAgICAg ICAgIHUgPSBuLmNvbnRleHRUeXBlOw0KICAgICAgICAgICAgIm9iamVjdCIgPT09IHR5cGVv ZiB1ICYmIG51bGwgIT09IHUgPyAodSA9IFJhKHUpKSA6ICh1ID0gQW8odCwgKHUgPSBNbyhu KSA/IFRvIDogT28uY3VycmVudCkpKTsNCiAgICAgICAgICAgIHZhciBjID0gbi5nZXREZXJp dmVkU3RhdGVGcm9tUHJvcHMsDQogICAgICAgICAgICAgIGQgPSAiZnVuY3Rpb24iID09PSB0 eXBlb2YgYyB8fCAiZnVuY3Rpb24iID09PSB0eXBlb2YgaS5nZXRTbmFwc2hvdEJlZm9yZVVw ZGF0ZTsNCiAgICAgICAgICAgIGQgfHwgKCJmdW5jdGlvbiIgIT09IHR5cGVvZiBpLlVOU0FG RV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzICYmICJmdW5jdGlvbiIgIT09IHR5cGVvZiBp LmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMpIHx8ICgobCAhPT0gciB8fCBzICE9PSB1KSAm JiBxYSh0LCBpLCByLCB1KSksIChUYSA9ICExKTsNCiAgICAgICAgICAgIHZhciBmID0gdC5t ZW1vaXplZFN0YXRlOw0KICAgICAgICAgICAgKGkuc3RhdGUgPSBmKSwNCiAgICAgICAgICAg ICAgRmEodCwgciwgaSwgbyksDQogICAgICAgICAgICAgIChzID0gdC5tZW1vaXplZFN0YXRl KSwNCiAgICAgICAgICAgICAgbCAhPT0gciB8fCBmICE9PSBzIHx8IE5vLmN1cnJlbnQgfHwg VGENCiAgICAgICAgICAgICAgICA/ICgiZnVuY3Rpb24iID09PSB0eXBlb2YgYyAmJiAoVWEo dCwgbiwgYywgciksIChzID0gdC5tZW1vaXplZFN0YXRlKSksDQogICAgICAgICAgICAgICAg ICAobCA9IFRhIHx8IFZhKHQsIG4sIGwsIHIsIGYsIHMsIHUpKQ0KICAgICAgICAgICAgICAg ICAgICA/IChkIHx8DQogICAgICAgICAgICAgICAgICAgICAgKCJmdW5jdGlvbiIgIT09IHR5 cGVvZiBpLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQgJiYgImZ1bmN0aW9uIiAhPT0gdHlw ZW9mIGkuY29tcG9uZW50V2lsbE1vdW50KSB8fA0KICAgICAgICAgICAgICAgICAgICAgICgi ZnVuY3Rpb24iID09PSB0eXBlb2YgaS5jb21wb25lbnRXaWxsTW91bnQgJiYgaS5jb21wb25l bnRXaWxsTW91bnQoKSwgImZ1bmN0aW9uIiA9PT0gdHlwZW9mIGkuVU5TQUZFX2NvbXBvbmVu dFdpbGxNb3VudCAmJiBpLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQoKSksDQogICAgICAg ICAgICAgICAgICAgICAgImZ1bmN0aW9uIiA9PT0gdHlwZW9mIGkuY29tcG9uZW50RGlkTW91 bnQgJiYgKHQuZmxhZ3MgfD0gNDE5NDMwOCkpDQogICAgICAgICAgICAgICAgICAgIDogKCJm dW5jdGlvbiIgPT09IHR5cGVvZiBpLmNvbXBvbmVudERpZE1vdW50ICYmICh0LmZsYWdzIHw9 IDQxOTQzMDgpLCAodC5tZW1vaXplZFByb3BzID0gciksICh0Lm1lbW9pemVkU3RhdGUgPSBz KSksDQogICAgICAgICAgICAgICAgICAoaS5wcm9wcyA9IHIpLA0KICAgICAgICAgICAgICAg ICAgKGkuc3RhdGUgPSBzKSwNCiAgICAgICAgICAgICAgICAgIChpLmNvbnRleHQgPSB1KSwN CiAgICAgICAgICAgICAgICAgIChyID0gbCkpDQogICAgICAgICAgICAgICAgOiAoImZ1bmN0 aW9uIiA9PT0gdHlwZW9mIGkuY29tcG9uZW50RGlkTW91bnQgJiYgKHQuZmxhZ3MgfD0gNDE5 NDMwOCksIChyID0gITEpKTsNCiAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgKGkg PSB0LnN0YXRlTm9kZSksDQogICAgICAgICAgICAgIE1hKGUsIHQpLA0KICAgICAgICAgICAg ICAobCA9IHQubWVtb2l6ZWRQcm9wcyksDQogICAgICAgICAgICAgICh1ID0gdC50eXBlID09 PSB0LmVsZW1lbnRUeXBlID8gbCA6IHZhKHQudHlwZSwgbCkpLA0KICAgICAgICAgICAgICAo aS5wcm9wcyA9IHUpLA0KICAgICAgICAgICAgICAoZCA9IHQucGVuZGluZ1Byb3BzKSwNCiAg ICAgICAgICAgICAgKGYgPSBpLmNvbnRleHQpLA0KICAgICAgICAgICAgICAib2JqZWN0IiA9 PT0gdHlwZW9mIChzID0gbi5jb250ZXh0VHlwZSkgJiYgbnVsbCAhPT0gcyA/IChzID0gUmEo cykpIDogKHMgPSBBbyh0LCAocyA9IE1vKG4pID8gVG8gOiBPby5jdXJyZW50KSkpOw0KICAg ICAgICAgICAgdmFyIHAgPSBuLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wczsNCiAgICAgICAg ICAgIChjID0gImZ1bmN0aW9uIiA9PT0gdHlwZW9mIHAgfHwgImZ1bmN0aW9uIiA9PT0gdHlw ZW9mIGkuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUpIHx8DQogICAgICAgICAgICAgICgiZnVu Y3Rpb24iICE9PSB0eXBlb2YgaS5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyAm JiAiZnVuY3Rpb24iICE9PSB0eXBlb2YgaS5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKSB8 fA0KICAgICAgICAgICAgICAoKGwgIT09IGQgfHwgZiAhPT0gcykgJiYgcWEodCwgaSwgciwg cykpLA0KICAgICAgICAgICAgICAoVGEgPSAhMSksDQogICAgICAgICAgICAgIChmID0gdC5t ZW1vaXplZFN0YXRlKSwNCiAgICAgICAgICAgICAgKGkuc3RhdGUgPSBmKSwNCiAgICAgICAg ICAgICAgRmEodCwgciwgaSwgbyk7DQogICAgICAgICAgICB2YXIgaCA9IHQubWVtb2l6ZWRT dGF0ZTsNCiAgICAgICAgICAgIGwgIT09IGQgfHwgZiAhPT0gaCB8fCBOby5jdXJyZW50IHx8 IFRhDQogICAgICAgICAgICAgID8gKCJmdW5jdGlvbiIgPT09IHR5cGVvZiBwICYmIChVYSh0 LCBuLCBwLCByKSwgKGggPSB0Lm1lbW9pemVkU3RhdGUpKSwNCiAgICAgICAgICAgICAgICAo dSA9IFRhIHx8IFZhKHQsIG4sIHUsIHIsIGYsIGgsIHMpIHx8ICExKQ0KICAgICAgICAgICAg ICAgICAgPyAoYyB8fA0KICAgICAgICAgICAgICAgICAgICAoImZ1bmN0aW9uIiAhPT0gdHlw ZW9mIGkuVU5TQUZFX2NvbXBvbmVudFdpbGxVcGRhdGUgJiYgImZ1bmN0aW9uIiAhPT0gdHlw ZW9mIGkuY29tcG9uZW50V2lsbFVwZGF0ZSkgfHwNCiAgICAgICAgICAgICAgICAgICAgKCJm dW5jdGlvbiIgPT09IHR5cGVvZiBpLmNvbXBvbmVudFdpbGxVcGRhdGUgJiYgaS5jb21wb25l bnRXaWxsVXBkYXRlKHIsIGgsIHMpLCAiZnVuY3Rpb24iID09PSB0eXBlb2YgaS5VTlNBRkVf Y29tcG9uZW50V2lsbFVwZGF0ZSAmJiBpLlVOU0FGRV9jb21wb25lbnRXaWxsVXBkYXRlKHIs IGgsIHMpKSwNCiAgICAgICAgICAgICAgICAgICAgImZ1bmN0aW9uIiA9PT0gdHlwZW9mIGku Y29tcG9uZW50RGlkVXBkYXRlICYmICh0LmZsYWdzIHw9IDQpLA0KICAgICAgICAgICAgICAg ICAgICAiZnVuY3Rpb24iID09PSB0eXBlb2YgaS5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSAm JiAodC5mbGFncyB8PSAxMDI0KSkNCiAgICAgICAgICAgICAgICAgIDogKCJmdW5jdGlvbiIg IT09IHR5cGVvZiBpLmNvbXBvbmVudERpZFVwZGF0ZSB8fCAobCA9PT0gZS5tZW1vaXplZFBy b3BzICYmIGYgPT09IGUubWVtb2l6ZWRTdGF0ZSkgfHwgKHQuZmxhZ3MgfD0gNCksDQogICAg ICAgICAgICAgICAgICAgICJmdW5jdGlvbiIgIT09IHR5cGVvZiBpLmdldFNuYXBzaG90QmVm b3JlVXBkYXRlIHx8IChsID09PSBlLm1lbW9pemVkUHJvcHMgJiYgZiA9PT0gZS5tZW1vaXpl ZFN0YXRlKSB8fCAodC5mbGFncyB8PSAxMDI0KSwNCiAgICAgICAgICAgICAgICAgICAgKHQu bWVtb2l6ZWRQcm9wcyA9IHIpLA0KICAgICAgICAgICAgICAgICAgICAodC5tZW1vaXplZFN0 YXRlID0gaCkpLA0KICAgICAgICAgICAgICAgIChpLnByb3BzID0gciksDQogICAgICAgICAg ICAgICAgKGkuc3RhdGUgPSBoKSwNCiAgICAgICAgICAgICAgICAoaS5jb250ZXh0ID0gcyks DQogICAgICAgICAgICAgICAgKHIgPSB1KSkNCiAgICAgICAgICAgICAgOiAoImZ1bmN0aW9u IiAhPT0gdHlwZW9mIGkuY29tcG9uZW50RGlkVXBkYXRlIHx8IChsID09PSBlLm1lbW9pemVk UHJvcHMgJiYgZiA9PT0gZS5tZW1vaXplZFN0YXRlKSB8fCAodC5mbGFncyB8PSA0KSwNCiAg ICAgICAgICAgICAgICAiZnVuY3Rpb24iICE9PSB0eXBlb2YgaS5nZXRTbmFwc2hvdEJlZm9y ZVVwZGF0ZSB8fCAobCA9PT0gZS5tZW1vaXplZFByb3BzICYmIGYgPT09IGUubWVtb2l6ZWRT dGF0ZSkgfHwgKHQuZmxhZ3MgfD0gMTAyNCksDQogICAgICAgICAgICAgICAgKHIgPSAhMSkp Ow0KICAgICAgICAgIH0NCiAgICAgICAgICByZXR1cm4gT2woZSwgdCwgbiwgciwgYSwgbyk7 DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gT2woZSwgdCwgbiwgciwgbywgYSkgew0K ICAgICAgICAgIFJsKGUsIHQpOw0KICAgICAgICAgIHZhciBpID0gMCAhPT0gKDEyOCAmIHQu ZmxhZ3MpOw0KICAgICAgICAgIGlmICghciAmJiAhaSkgcmV0dXJuIG8gJiYgRm8odCwgbiwg ITEpLCBxbChlLCB0LCBhKTsNCiAgICAgICAgICAociA9IHQuc3RhdGVOb2RlKSwgKGJsLmN1 cnJlbnQgPSB0KTsNCiAgICAgICAgICB2YXIgbCA9IGkgJiYgImZ1bmN0aW9uIiAhPT0gdHlw ZW9mIG4uZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yID8gbnVsbCA6IHIucmVuZGVyKCk7DQog ICAgICAgICAgcmV0dXJuICh0LmZsYWdzIHw9IDEpLCBudWxsICE9PSBlICYmIGkgPyAoKHQu Y2hpbGQgPSBYYSh0LCBlLmNoaWxkLCBudWxsLCBhKSksICh0LmNoaWxkID0gWGEodCwgbnVs bCwgbCwgYSkpKSA6IHhsKGUsIHQsIGwsIGEpLCAodC5tZW1vaXplZFN0YXRlID0gci5zdGF0 ZSksIG8gJiYgRm8odCwgbiwgITApLCB0LmNoaWxkOw0KICAgICAgICB9DQogICAgICAgIGZ1 bmN0aW9uIE5sKGUpIHsNCiAgICAgICAgICB2YXIgdCA9IGUuc3RhdGVOb2RlOw0KICAgICAg ICAgIHQucGVuZGluZ0NvbnRleHQgPyBqbygwLCB0LnBlbmRpbmdDb250ZXh0LCB0LnBlbmRp bmdDb250ZXh0ICE9PSB0LmNvbnRleHQpIDogdC5jb250ZXh0ICYmIGpvKDAsIHQuY29udGV4 dCwgITEpLCBvaShlLCB0LmNvbnRhaW5lckluZm8pOw0KICAgICAgICB9DQogICAgICAgIGZ1 bmN0aW9uIFRsKGUsIHQsIG4sIHIsIG8pIHsNCiAgICAgICAgICByZXR1cm4gaGEoKSwgbWEo byksICh0LmZsYWdzIHw9IDI1NiksIHhsKGUsIHQsIG4sIHIpLCB0LmNoaWxkOw0KICAgICAg ICB9DQogICAgICAgIHZhciBBbCwNCiAgICAgICAgICBNbCwNCiAgICAgICAgICB6bCwNCiAg ICAgICAgICBqbCwNCiAgICAgICAgICBJbCA9IHsgZGVoeWRyYXRlZDogbnVsbCwgdHJlZUNv bnRleHQ6IG51bGwsIHJldHJ5TGFuZTogMCB9Ow0KICAgICAgICBmdW5jdGlvbiBMbChlKSB7 DQogICAgICAgICAgcmV0dXJuIHsgYmFzZUxhbmVzOiBlLCBjYWNoZVBvb2w6IG51bGwsIHRy YW5zaXRpb25zOiBudWxsIH07DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gRmwoZSwg dCwgbikgew0KICAgICAgICAgIHZhciByLA0KICAgICAgICAgICAgbyA9IHQucGVuZGluZ1By b3BzLA0KICAgICAgICAgICAgaSA9IHNpLmN1cnJlbnQsDQogICAgICAgICAgICBsID0gITEs DQogICAgICAgICAgICBzID0gMCAhPT0gKDEyOCAmIHQuZmxhZ3MpOw0KICAgICAgICAgIGlm ICgoKHIgPSBzKSB8fCAociA9IChudWxsID09PSBlIHx8IG51bGwgIT09IGUubWVtb2l6ZWRT dGF0ZSkgJiYgMCAhPT0gKDIgJiBpKSksIHIgPyAoKGwgPSAhMCksICh0LmZsYWdzICY9IC0x MjkpKSA6IChudWxsICE9PSBlICYmIG51bGwgPT09IGUubWVtb2l6ZWRTdGF0ZSkgfHwgKGkg fD0gMSksIF9vKHNpLCAxICYgaSksIG51bGwgPT09IGUpKQ0KICAgICAgICAgICAgcmV0dXJu ICgNCiAgICAgICAgICAgICAgY2EodCksDQogICAgICAgICAgICAgIG51bGwgIT09IChlID0g dC5tZW1vaXplZFN0YXRlKSAmJiBudWxsICE9PSAoZSA9IGUuZGVoeWRyYXRlZCkNCiAgICAg ICAgICAgICAgICA/ICgwID09PSAoMSAmIHQubW9kZSkgPyAodC5sYW5lcyA9IDEpIDogIiQh IiA9PT0gZS5kYXRhID8gKHQubGFuZXMgPSA4KSA6ICh0LmxhbmVzID0gMTA3Mzc0MTgyNCks IG51bGwpDQogICAgICAgICAgICAgICAgOiAoKHMgPSBvLmNoaWxkcmVuKSwNCiAgICAgICAg ICAgICAgICAgIChlID0gby5mYWxsYmFjayksDQogICAgICAgICAgICAgICAgICBsDQogICAg ICAgICAgICAgICAgICAgID8gKChvID0gdC5tb2RlKSwNCiAgICAgICAgICAgICAgICAgICAg ICAobCA9IHQuY2hpbGQpLA0KICAgICAgICAgICAgICAgICAgICAgIChzID0geyBtb2RlOiAi aGlkZGVuIiwgY2hpbGRyZW46IHMgfSksDQogICAgICAgICAgICAgICAgICAgICAgMCA9PT0g KDEgJiBvKSAmJiBudWxsICE9PSBsID8gKChsLmNoaWxkTGFuZXMgPSAwKSwgKGwucGVuZGlu Z1Byb3BzID0gcykpIDogKGwgPSBMdShzLCBvLCAwLCBudWxsKSksDQogICAgICAgICAgICAg ICAgICAgICAgKGUgPSBJdShlLCBvLCBuLCBudWxsKSksDQogICAgICAgICAgICAgICAgICAg ICAgKGwucmV0dXJuID0gdCksDQogICAgICAgICAgICAgICAgICAgICAgKGUucmV0dXJuID0g dCksDQogICAgICAgICAgICAgICAgICAgICAgKGwuc2libGluZyA9IGUpLA0KICAgICAgICAg ICAgICAgICAgICAgICh0LmNoaWxkID0gbCksDQogICAgICAgICAgICAgICAgICAgICAgKHQu Y2hpbGQubWVtb2l6ZWRTdGF0ZSA9IExsKG4pKSwNCiAgICAgICAgICAgICAgICAgICAgICAo dC5tZW1vaXplZFN0YXRlID0gSWwpLA0KICAgICAgICAgICAgICAgICAgICAgIGUpDQogICAg ICAgICAgICAgICAgICAgIDogQmwodCwgcykpDQogICAgICAgICAgICApOw0KICAgICAgICAg IGlmIChudWxsICE9PSAoaSA9IGUubWVtb2l6ZWRTdGF0ZSkgJiYgbnVsbCAhPT0gKHIgPSBp LmRlaHlkcmF0ZWQpKQ0KICAgICAgICAgICAgcmV0dXJuIChmdW5jdGlvbiAoZSwgdCwgbiwg ciwgbywgaSwgbCkgew0KICAgICAgICAgICAgICBpZiAobikNCiAgICAgICAgICAgICAgICBy ZXR1cm4gMjU2ICYgdC5mbGFncw0KICAgICAgICAgICAgICAgICAgPyAoKHQuZmxhZ3MgJj0g LTI1NyksIERsKGUsIHQsIGwsIChyID0gZGwoRXJyb3IoYSg0MjIpKSkpKSkNCiAgICAgICAg ICAgICAgICAgIDogbnVsbCAhPT0gdC5tZW1vaXplZFN0YXRlDQogICAgICAgICAgICAgICAg ICAgID8gKCh0LmNoaWxkID0gZS5jaGlsZCksICh0LmZsYWdzIHw9IDEyOCksIG51bGwpDQog ICAgICAgICAgICAgICAgICAgIDogKChpID0gci5mYWxsYmFjayksDQogICAgICAgICAgICAg ICAgICAgICAgKG8gPSB0Lm1vZGUpLA0KICAgICAgICAgICAgICAgICAgICAgIChyID0gTHUo eyBtb2RlOiAidmlzaWJsZSIsIGNoaWxkcmVuOiByLmNoaWxkcmVuIH0sIG8sIDAsIG51bGwp KSwNCiAgICAgICAgICAgICAgICAgICAgICAoKGkgPSBJdShpLCBvLCBsLCBudWxsKSkuZmxh Z3MgfD0gMiksDQogICAgICAgICAgICAgICAgICAgICAgKHIucmV0dXJuID0gdCksDQogICAg ICAgICAgICAgICAgICAgICAgKGkucmV0dXJuID0gdCksDQogICAgICAgICAgICAgICAgICAg ICAgKHIuc2libGluZyA9IGkpLA0KICAgICAgICAgICAgICAgICAgICAgICh0LmNoaWxkID0g ciksDQogICAgICAgICAgICAgICAgICAgICAgMCAhPT0gKDEgJiB0Lm1vZGUpICYmIFhhKHQs IGUuY2hpbGQsIG51bGwsIGwpLA0KICAgICAgICAgICAgICAgICAgICAgICh0LmNoaWxkLm1l bW9pemVkU3RhdGUgPSBMbChsKSksDQogICAgICAgICAgICAgICAgICAgICAgKHQubWVtb2l6 ZWRTdGF0ZSA9IElsKSwNCiAgICAgICAgICAgICAgICAgICAgICBpKTsNCiAgICAgICAgICAg ICAgaWYgKDAgPT09ICgxICYgdC5tb2RlKSkgcmV0dXJuIERsKGUsIHQsIGwsIG51bGwpOw0K ICAgICAgICAgICAgICBpZiAoIiQhIiA9PT0gby5kYXRhKSB7DQogICAgICAgICAgICAgICAg aWYgKChyID0gby5uZXh0U2libGluZyAmJiBvLm5leHRTaWJsaW5nLmRhdGFzZXQpKSB2YXIg cyA9IHIuZGdzdDsNCiAgICAgICAgICAgICAgICByZXR1cm4gKHIgPSBzKSwgRGwoZSwgdCwg bCwgKHIgPSBkbCgoaSA9IEVycm9yKGEoNDE5KSkpLCByLCB2b2lkIDApKSk7DQogICAgICAg ICAgICAgIH0NCiAgICAgICAgICAgICAgaWYgKCgocyA9IDAgIT09IChsICYgZS5jaGlsZExh bmVzKSksIHdsIHx8IHMpKSB7DQogICAgICAgICAgICAgICAgaWYgKG51bGwgIT09IChyID0g TnMpKSB7DQogICAgICAgICAgICAgICAgICBzd2l0Y2ggKGwgJiAtbCkgew0KICAgICAgICAg ICAgICAgICAgICBjYXNlIDQ6DQogICAgICAgICAgICAgICAgICAgICAgbyA9IDI7DQogICAg ICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgMTY6 DQogICAgICAgICAgICAgICAgICAgICAgbyA9IDg7DQogICAgICAgICAgICAgICAgICAgICAg YnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgNjQ6DQogICAgICAgICAgICAgICAg ICAgIGNhc2UgMTI4Og0KICAgICAgICAgICAgICAgICAgICBjYXNlIDI1NjoNCiAgICAgICAg ICAgICAgICAgICAgY2FzZSA1MTI6DQogICAgICAgICAgICAgICAgICAgIGNhc2UgMTAyNDoN CiAgICAgICAgICAgICAgICAgICAgY2FzZSAyMDQ4Og0KICAgICAgICAgICAgICAgICAgICBj YXNlIDQwOTY6DQogICAgICAgICAgICAgICAgICAgIGNhc2UgODE5MjoNCiAgICAgICAgICAg ICAgICAgICAgY2FzZSAxNjM4NDoNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAzMjc2ODoN CiAgICAgICAgICAgICAgICAgICAgY2FzZSA2NTUzNjoNCiAgICAgICAgICAgICAgICAgICAg Y2FzZSAxMzEwNzI6DQogICAgICAgICAgICAgICAgICAgIGNhc2UgMjYyMTQ0Og0KICAgICAg ICAgICAgICAgICAgICBjYXNlIDUyNDI4ODoNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAx MDQ4NTc2Og0KICAgICAgICAgICAgICAgICAgICBjYXNlIDIwOTcxNTI6DQogICAgICAgICAg ICAgICAgICAgIGNhc2UgNDE5NDMwNDoNCiAgICAgICAgICAgICAgICAgICAgY2FzZSA4Mzg4 NjA4Og0KICAgICAgICAgICAgICAgICAgICBjYXNlIDE2Nzc3MjE2Og0KICAgICAgICAgICAg ICAgICAgICBjYXNlIDMzNTU0NDMyOg0KICAgICAgICAgICAgICAgICAgICBjYXNlIDY3MTA4 ODY0Og0KICAgICAgICAgICAgICAgICAgICAgIG8gPSAzMjsNCiAgICAgICAgICAgICAgICAg ICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSA1MzY4NzA5MTI6DQogICAg ICAgICAgICAgICAgICAgICAgbyA9IDI2ODQzNTQ1NjsNCiAgICAgICAgICAgICAgICAgICAg ICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAg ICAgICAgICBvID0gMDsNCiAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAg IDAgIT09IChvID0gMCAhPT0gKG8gJiAoci5zdXNwZW5kZWRMYW5lcyB8IGwpKSA/IDAgOiBv KSAmJiBvICE9PSBpLnJldHJ5TGFuZSAmJiAoKGkucmV0cnlMYW5lID0gbyksIE5hKGUsIG8p LCBydShyLCBlLCBvLCAtMSkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAg ICByZXR1cm4gZ3UoKSwgRGwoZSwgdCwgbCwgKHIgPSBkbChFcnJvcihhKDQyMSkpKSkpOw0K ICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgIHJldHVybiAiJD8iID09PSBvLmRhdGEN CiAgICAgICAgICAgICAgICA/ICgodC5mbGFncyB8PSAxMjgpLCAodC5jaGlsZCA9IGUuY2hp bGQpLCAodCA9IFB1LmJpbmQobnVsbCwgZSkpLCAoby5fcmVhY3RSZXRyeSA9IHQpLCBudWxs KQ0KICAgICAgICAgICAgICAgIDogKChlID0gaS50cmVlQ29udGV4dCksDQogICAgICAgICAg ICAgICAgICAob2EgPSB1byhvLm5leHRTaWJsaW5nKSksDQogICAgICAgICAgICAgICAgICAo cmEgPSB0KSwNCiAgICAgICAgICAgICAgICAgIChhYSA9ICEwKSwNCiAgICAgICAgICAgICAg ICAgIChpYSA9IG51bGwpLA0KICAgICAgICAgICAgICAgICAgbnVsbCAhPT0gZSAmJiAoKFFv W0dvKytdID0gWG8pLCAoUW9bR28rK10gPSBabyksIChRb1tHbysrXSA9IFlvKSwgKFhvID0g ZS5pZCksIChabyA9IGUub3ZlcmZsb3cpLCAoWW8gPSB0KSksDQogICAgICAgICAgICAgICAg ICAodCA9IEJsKHQsIHIuY2hpbGRyZW4pKSwNCiAgICAgICAgICAgICAgICAgICh0LmZsYWdz IHw9IDQwOTYpLA0KICAgICAgICAgICAgICAgICAgdCk7DQogICAgICAgICAgICB9KShlLCB0 LCBzLCBvLCByLCBpLCBuKTsNCiAgICAgICAgICBpZiAobCkgew0KICAgICAgICAgICAgKGwg PSBvLmZhbGxiYWNrKSwgKHMgPSB0Lm1vZGUpLCAociA9IChpID0gZS5jaGlsZCkuc2libGlu Zyk7DQogICAgICAgICAgICB2YXIgdSA9IHsgbW9kZTogImhpZGRlbiIsIGNoaWxkcmVuOiBv LmNoaWxkcmVuIH07DQogICAgICAgICAgICByZXR1cm4gKA0KICAgICAgICAgICAgICAwID09 PSAoMSAmIHMpICYmIHQuY2hpbGQgIT09IGkgPyAoKChvID0gdC5jaGlsZCkuY2hpbGRMYW5l cyA9IDApLCAoby5wZW5kaW5nUHJvcHMgPSB1KSwgKHQuZGVsZXRpb25zID0gbnVsbCkpIDog KChvID0genUoaSwgdSkpLnN1YnRyZWVGbGFncyA9IDE0NjgwMDY0ICYgaS5zdWJ0cmVlRmxh Z3MpLA0KICAgICAgICAgICAgICBudWxsICE9PSByID8gKGwgPSB6dShyLCBsKSkgOiAoKGwg PSBJdShsLCBzLCBuLCBudWxsKSkuZmxhZ3MgfD0gMiksDQogICAgICAgICAgICAgIChsLnJl dHVybiA9IHQpLA0KICAgICAgICAgICAgICAoby5yZXR1cm4gPSB0KSwNCiAgICAgICAgICAg ICAgKG8uc2libGluZyA9IGwpLA0KICAgICAgICAgICAgICAodC5jaGlsZCA9IG8pLA0KICAg ICAgICAgICAgICAobyA9IGwpLA0KICAgICAgICAgICAgICAobCA9IHQuY2hpbGQpLA0KICAg ICAgICAgICAgICAocyA9IG51bGwgPT09IChzID0gZS5jaGlsZC5tZW1vaXplZFN0YXRlKSA/ IExsKG4pIDogeyBiYXNlTGFuZXM6IHMuYmFzZUxhbmVzIHwgbiwgY2FjaGVQb29sOiBudWxs LCB0cmFuc2l0aW9uczogcy50cmFuc2l0aW9ucyB9KSwNCiAgICAgICAgICAgICAgKGwubWVt b2l6ZWRTdGF0ZSA9IHMpLA0KICAgICAgICAgICAgICAobC5jaGlsZExhbmVzID0gZS5jaGls ZExhbmVzICYgfm4pLA0KICAgICAgICAgICAgICAodC5tZW1vaXplZFN0YXRlID0gSWwpLA0K ICAgICAgICAgICAgICBvDQogICAgICAgICAgICApOw0KICAgICAgICAgIH0NCiAgICAgICAg ICByZXR1cm4gKA0KICAgICAgICAgICAgKGUgPSAobCA9IGUuY2hpbGQpLnNpYmxpbmcpLA0K ICAgICAgICAgICAgKG8gPSB6dShsLCB7IG1vZGU6ICJ2aXNpYmxlIiwgY2hpbGRyZW46IG8u Y2hpbGRyZW4gfSkpLA0KICAgICAgICAgICAgMCA9PT0gKDEgJiB0Lm1vZGUpICYmIChvLmxh bmVzID0gbiksDQogICAgICAgICAgICAoby5yZXR1cm4gPSB0KSwNCiAgICAgICAgICAgIChv LnNpYmxpbmcgPSBudWxsKSwNCiAgICAgICAgICAgIG51bGwgIT09IGUgJiYgKG51bGwgPT09 IChuID0gdC5kZWxldGlvbnMpID8gKCh0LmRlbGV0aW9ucyA9IFtlXSksICh0LmZsYWdzIHw9 IDE2KSkgOiBuLnB1c2goZSkpLA0KICAgICAgICAgICAgKHQuY2hpbGQgPSBvKSwNCiAgICAg ICAgICAgICh0Lm1lbW9pemVkU3RhdGUgPSBudWxsKSwNCiAgICAgICAgICAgIG8NCiAgICAg ICAgICApOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIEJsKGUsIHQpIHsNCiAgICAg ICAgICByZXR1cm4gKCh0ID0gTHUoeyBtb2RlOiAidmlzaWJsZSIsIGNoaWxkcmVuOiB0IH0s IGUubW9kZSwgMCwgbnVsbCkpLnJldHVybiA9IGUpLCAoZS5jaGlsZCA9IHQpOw0KICAgICAg ICB9DQogICAgICAgIGZ1bmN0aW9uIERsKGUsIHQsIG4sIHIpIHsNCiAgICAgICAgICByZXR1 cm4gbnVsbCAhPT0gciAmJiBtYShyKSwgWGEodCwgZS5jaGlsZCwgbnVsbCwgbiksICgoZSA9 IEJsKHQsIHQucGVuZGluZ1Byb3BzLmNoaWxkcmVuKSkuZmxhZ3MgfD0gMiksICh0Lm1lbW9p emVkU3RhdGUgPSBudWxsKSwgZTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBVbChl LCB0LCBuKSB7DQogICAgICAgICAgZS5sYW5lcyB8PSB0Ow0KICAgICAgICAgIHZhciByID0g ZS5hbHRlcm5hdGU7DQogICAgICAgICAgbnVsbCAhPT0gciAmJiAoci5sYW5lcyB8PSB0KSwg RWEoZS5yZXR1cm4sIHQsIG4pOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIFdsKGUs IHQsIG4sIHIsIG8pIHsNCiAgICAgICAgICB2YXIgYSA9IGUubWVtb2l6ZWRTdGF0ZTsNCiAg ICAgICAgICBudWxsID09PSBhDQogICAgICAgICAgICA/IChlLm1lbW9pemVkU3RhdGUgPSB7 IGlzQmFja3dhcmRzOiB0LCByZW5kZXJpbmc6IG51bGwsIHJlbmRlcmluZ1N0YXJ0VGltZTog MCwgbGFzdDogciwgdGFpbDogbiwgdGFpbE1vZGU6IG8gfSkNCiAgICAgICAgICAgIDogKChh LmlzQmFja3dhcmRzID0gdCksIChhLnJlbmRlcmluZyA9IG51bGwpLCAoYS5yZW5kZXJpbmdT dGFydFRpbWUgPSAwKSwgKGEubGFzdCA9IHIpLCAoYS50YWlsID0gbiksIChhLnRhaWxNb2Rl ID0gbykpOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIFZsKGUsIHQsIG4pIHsNCiAg ICAgICAgICB2YXIgciA9IHQucGVuZGluZ1Byb3BzLA0KICAgICAgICAgICAgbyA9IHIucmV2 ZWFsT3JkZXIsDQogICAgICAgICAgICBhID0gci50YWlsOw0KICAgICAgICAgIGlmICgoeGwo ZSwgdCwgci5jaGlsZHJlbiwgbiksIDAgIT09ICgyICYgKHIgPSBzaS5jdXJyZW50KSkpKSAo ciA9ICgxICYgcikgfCAyKSwgKHQuZmxhZ3MgfD0gMTI4KTsNCiAgICAgICAgICBlbHNlIHsN CiAgICAgICAgICAgIGlmIChudWxsICE9PSBlICYmIDAgIT09ICgxMjggJiBlLmZsYWdzKSkN CiAgICAgICAgICAgICAgZTogZm9yIChlID0gdC5jaGlsZDsgbnVsbCAhPT0gZTspIHsNCiAg ICAgICAgICAgICAgICBpZiAoMTMgPT09IGUudGFnKSBudWxsICE9PSBlLm1lbW9pemVkU3Rh dGUgJiYgVWwoZSwgbiwgdCk7DQogICAgICAgICAgICAgICAgZWxzZSBpZiAoMTkgPT09IGUu dGFnKSBVbChlLCBuLCB0KTsNCiAgICAgICAgICAgICAgICBlbHNlIGlmIChudWxsICE9PSBl LmNoaWxkKSB7DQogICAgICAgICAgICAgICAgICAoZS5jaGlsZC5yZXR1cm4gPSBlKSwgKGUg PSBlLmNoaWxkKTsNCiAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOw0KICAgICAgICAgICAg ICAgIH0NCiAgICAgICAgICAgICAgICBpZiAoZSA9PT0gdCkgYnJlYWsgZTsNCiAgICAgICAg ICAgICAgICBmb3IgKDsgbnVsbCA9PT0gZS5zaWJsaW5nOykgew0KICAgICAgICAgICAgICAg ICAgaWYgKG51bGwgPT09IGUucmV0dXJuIHx8IGUucmV0dXJuID09PSB0KSBicmVhayBlOw0K ICAgICAgICAgICAgICAgICAgZSA9IGUucmV0dXJuOw0KICAgICAgICAgICAgICAgIH0NCiAg ICAgICAgICAgICAgICAoZS5zaWJsaW5nLnJldHVybiA9IGUucmV0dXJuKSwgKGUgPSBlLnNp YmxpbmcpOw0KICAgICAgICAgICAgICB9DQogICAgICAgICAgICByICY9IDE7DQogICAgICAg ICAgfQ0KICAgICAgICAgIGlmICgoX28oc2ksIHIpLCAwID09PSAoMSAmIHQubW9kZSkpKSB0 Lm1lbW9pemVkU3RhdGUgPSBudWxsOw0KICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgIHN3 aXRjaCAobykgew0KICAgICAgICAgICAgICBjYXNlICJmb3J3YXJkcyI6DQogICAgICAgICAg ICAgICAgZm9yIChuID0gdC5jaGlsZCwgbyA9IG51bGw7IG51bGwgIT09IG47KSBudWxsICE9 PSAoZSA9IG4uYWx0ZXJuYXRlKSAmJiBudWxsID09PSB1aShlKSAmJiAobyA9IG4pLCAobiA9 IG4uc2libGluZyk7DQogICAgICAgICAgICAgICAgbnVsbCA9PT0gKG4gPSBvKSA/ICgobyA9 IHQuY2hpbGQpLCAodC5jaGlsZCA9IG51bGwpKSA6ICgobyA9IG4uc2libGluZyksIChuLnNp YmxpbmcgPSBudWxsKSksIFdsKHQsICExLCBvLCBuLCBhKTsNCiAgICAgICAgICAgICAgICBi cmVhazsNCiAgICAgICAgICAgICAgY2FzZSAiYmFja3dhcmRzIjoNCiAgICAgICAgICAgICAg ICBmb3IgKG4gPSBudWxsLCBvID0gdC5jaGlsZCwgdC5jaGlsZCA9IG51bGw7IG51bGwgIT09 IG87KSB7DQogICAgICAgICAgICAgICAgICBpZiAobnVsbCAhPT0gKGUgPSBvLmFsdGVybmF0 ZSkgJiYgbnVsbCA9PT0gdWkoZSkpIHsNCiAgICAgICAgICAgICAgICAgICAgdC5jaGlsZCA9 IG87DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgfQ0K ICAgICAgICAgICAgICAgICAgKGUgPSBvLnNpYmxpbmcpLCAoby5zaWJsaW5nID0gbiksIChu ID0gbyksIChvID0gZSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIFds KHQsICEwLCBuLCBudWxsLCBhKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAg ICAgICAgY2FzZSAidG9nZXRoZXIiOg0KICAgICAgICAgICAgICAgIFdsKHQsICExLCBudWxs LCBudWxsLCB2b2lkIDApOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAg ICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIHQubWVtb2l6ZWRTdGF0ZSA9IG51bGw7DQog ICAgICAgICAgICB9DQogICAgICAgICAgcmV0dXJuIHQuY2hpbGQ7DQogICAgICAgIH0NCiAg ICAgICAgZnVuY3Rpb24gSGwoZSwgdCkgew0KICAgICAgICAgIDAgPT09ICgxICYgdC5tb2Rl KSAmJiBudWxsICE9PSBlICYmICgoZS5hbHRlcm5hdGUgPSBudWxsKSwgKHQuYWx0ZXJuYXRl ID0gbnVsbCksICh0LmZsYWdzIHw9IDIpKTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlv biBxbChlLCB0LCBuKSB7DQogICAgICAgICAgaWYgKChudWxsICE9PSBlICYmICh0LmRlcGVu ZGVuY2llcyA9IGUuZGVwZW5kZW5jaWVzKSwgKExzIHw9IHQubGFuZXMpLCAwID09PSAobiAm IHQuY2hpbGRMYW5lcykpKSByZXR1cm4gbnVsbDsNCiAgICAgICAgICBpZiAobnVsbCAhPT0g ZSAmJiB0LmNoaWxkICE9PSBlLmNoaWxkKSB0aHJvdyBFcnJvcihhKDE1MykpOw0KICAgICAg ICAgIGlmIChudWxsICE9PSB0LmNoaWxkKSB7DQogICAgICAgICAgICBmb3IgKG4gPSB6dSgo ZSA9IHQuY2hpbGQpLCBlLnBlbmRpbmdQcm9wcyksIHQuY2hpbGQgPSBuLCBuLnJldHVybiA9 IHQ7IG51bGwgIT09IGUuc2libGluZzspIChlID0gZS5zaWJsaW5nKSwgKChuID0gbi5zaWJs aW5nID0genUoZSwgZS5wZW5kaW5nUHJvcHMpKS5yZXR1cm4gPSB0KTsNCiAgICAgICAgICAg IG4uc2libGluZyA9IG51bGw7DQogICAgICAgICAgfQ0KICAgICAgICAgIHJldHVybiB0LmNo aWxkOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uICRsKGUsIHQpIHsNCiAgICAgICAg ICBpZiAoIWFhKQ0KICAgICAgICAgICAgc3dpdGNoIChlLnRhaWxNb2RlKSB7DQogICAgICAg ICAgICAgIGNhc2UgImhpZGRlbiI6DQogICAgICAgICAgICAgICAgdCA9IGUudGFpbDsNCiAg ICAgICAgICAgICAgICBmb3IgKHZhciBuID0gbnVsbDsgbnVsbCAhPT0gdDspIG51bGwgIT09 IHQuYWx0ZXJuYXRlICYmIChuID0gdCksICh0ID0gdC5zaWJsaW5nKTsNCiAgICAgICAgICAg ICAgICBudWxsID09PSBuID8gKGUudGFpbCA9IG51bGwpIDogKG4uc2libGluZyA9IG51bGwp Ow0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICBjYXNlICJjb2xsYXBz ZWQiOg0KICAgICAgICAgICAgICAgIG4gPSBlLnRhaWw7DQogICAgICAgICAgICAgICAgZm9y ICh2YXIgciA9IG51bGw7IG51bGwgIT09IG47KSBudWxsICE9PSBuLmFsdGVybmF0ZSAmJiAo ciA9IG4pLCAobiA9IG4uc2libGluZyk7DQogICAgICAgICAgICAgICAgbnVsbCA9PT0gciA/ ICh0IHx8IG51bGwgPT09IGUudGFpbCA/IChlLnRhaWwgPSBudWxsKSA6IChlLnRhaWwuc2li bGluZyA9IG51bGwpKSA6IChyLnNpYmxpbmcgPSBudWxsKTsNCiAgICAgICAgICAgIH0NCiAg ICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBLbChlKSB7DQogICAgICAgICAgdmFyIHQgPSBu dWxsICE9PSBlLmFsdGVybmF0ZSAmJiBlLmFsdGVybmF0ZS5jaGlsZCA9PT0gZS5jaGlsZCwN CiAgICAgICAgICAgIG4gPSAwLA0KICAgICAgICAgICAgciA9IDA7DQogICAgICAgICAgaWYg KHQpIGZvciAodmFyIG8gPSBlLmNoaWxkOyBudWxsICE9PSBvOykgKG4gfD0gby5sYW5lcyB8 IG8uY2hpbGRMYW5lcyksIChyIHw9IDE0NjgwMDY0ICYgby5zdWJ0cmVlRmxhZ3MpLCAociB8 PSAxNDY4MDA2NCAmIG8uZmxhZ3MpLCAoby5yZXR1cm4gPSBlKSwgKG8gPSBvLnNpYmxpbmcp Ow0KICAgICAgICAgIGVsc2UgZm9yIChvID0gZS5jaGlsZDsgbnVsbCAhPT0gbzspIChuIHw9 IG8ubGFuZXMgfCBvLmNoaWxkTGFuZXMpLCAociB8PSBvLnN1YnRyZWVGbGFncyksIChyIHw9 IG8uZmxhZ3MpLCAoby5yZXR1cm4gPSBlKSwgKG8gPSBvLnNpYmxpbmcpOw0KICAgICAgICAg IHJldHVybiAoZS5zdWJ0cmVlRmxhZ3MgfD0gciksIChlLmNoaWxkTGFuZXMgPSBuKSwgdDsN CiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBRbChlLCB0LCBuKSB7DQogICAgICAgICAg dmFyIHIgPSB0LnBlbmRpbmdQcm9wczsNCiAgICAgICAgICBzd2l0Y2ggKChuYSh0KSwgdC50 YWcpKSB7DQogICAgICAgICAgICBjYXNlIDI6DQogICAgICAgICAgICBjYXNlIDE2Og0KICAg ICAgICAgICAgY2FzZSAxNToNCiAgICAgICAgICAgIGNhc2UgMDoNCiAgICAgICAgICAgIGNh c2UgMTE6DQogICAgICAgICAgICBjYXNlIDc6DQogICAgICAgICAgICBjYXNlIDg6DQogICAg ICAgICAgICBjYXNlIDEyOg0KICAgICAgICAgICAgY2FzZSA5Og0KICAgICAgICAgICAgY2Fz ZSAxNDoNCiAgICAgICAgICAgICAgcmV0dXJuIEtsKHQpLCBudWxsOw0KICAgICAgICAgICAg Y2FzZSAxOg0KICAgICAgICAgICAgY2FzZSAxNzoNCiAgICAgICAgICAgICAgcmV0dXJuIE1v KHQudHlwZSkgJiYgem8oKSwgS2wodCksIG51bGw7DQogICAgICAgICAgICBjYXNlIDM6DQog ICAgICAgICAgICAgIHJldHVybiAoDQogICAgICAgICAgICAgICAgKHIgPSB0LnN0YXRlTm9k ZSksDQogICAgICAgICAgICAgICAgYWkoKSwNCiAgICAgICAgICAgICAgICBSbyhObyksDQog ICAgICAgICAgICAgICAgUm8oT28pLA0KICAgICAgICAgICAgICAgIGRpKCksDQogICAgICAg ICAgICAgICAgci5wZW5kaW5nQ29udGV4dCAmJiAoKHIuY29udGV4dCA9IHIucGVuZGluZ0Nv bnRleHQpLCAoci5wZW5kaW5nQ29udGV4dCA9IG51bGwpKSwNCiAgICAgICAgICAgICAgICAo bnVsbCAhPT0gZSAmJiBudWxsICE9PSBlLmNoaWxkKSB8fCAoZmEodCkgPyAodC5mbGFncyB8 PSA0KSA6IG51bGwgPT09IGUgfHwgKGUubWVtb2l6ZWRTdGF0ZS5pc0RlaHlkcmF0ZWQgJiYg MCA9PT0gKDI1NiAmIHQuZmxhZ3MpKSB8fCAoKHQuZmxhZ3MgfD0gMTAyNCksIG51bGwgIT09 IGlhICYmIChsdShpYSksIChpYSA9IG51bGwpKSkpLA0KICAgICAgICAgICAgICAgIE1sKGUs IHQpLA0KICAgICAgICAgICAgICAgIEtsKHQpLA0KICAgICAgICAgICAgICAgIG51bGwNCiAg ICAgICAgICAgICAgKTsNCiAgICAgICAgICAgIGNhc2UgNToNCiAgICAgICAgICAgICAgbGko dCk7DQogICAgICAgICAgICAgIHZhciBvID0gcmkobmkuY3VycmVudCk7DQogICAgICAgICAg ICAgIGlmICgoKG4gPSB0LnR5cGUpLCBudWxsICE9PSBlICYmIG51bGwgIT0gdC5zdGF0ZU5v ZGUpKSB6bChlLCB0LCBuLCByLCBvKSwgZS5yZWYgIT09IHQucmVmICYmICgodC5mbGFncyB8 PSA1MTIpLCAodC5mbGFncyB8PSAyMDk3MTUyKSk7DQogICAgICAgICAgICAgIGVsc2Ugew0K ICAgICAgICAgICAgICAgIGlmICghcikgew0KICAgICAgICAgICAgICAgICAgaWYgKG51bGwg PT09IHQuc3RhdGVOb2RlKSB0aHJvdyBFcnJvcihhKDE2NikpOw0KICAgICAgICAgICAgICAg ICAgcmV0dXJuIEtsKHQpLCBudWxsOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAg ICAgICBpZiAoKChlID0gcmkoZWkuY3VycmVudCkpLCBmYSh0KSkpIHsNCiAgICAgICAgICAg ICAgICAgIChyID0gdC5zdGF0ZU5vZGUpLCAobiA9IHQudHlwZSk7DQogICAgICAgICAgICAg ICAgICB2YXIgaSA9IHQubWVtb2l6ZWRQcm9wczsNCiAgICAgICAgICAgICAgICAgIHN3aXRj aCAoKChyW3BvXSA9IHQpLCAocltob10gPSBpKSwgKGUgPSAwICE9PSAoMSAmIHQubW9kZSkp LCBuKSkgew0KICAgICAgICAgICAgICAgICAgICBjYXNlICJkaWFsb2ciOg0KICAgICAgICAg ICAgICAgICAgICAgIEJyKCJjYW5jZWwiLCByKSwgQnIoImNsb3NlIiwgcik7DQogICAgICAg ICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgImlmcmFt ZSI6DQogICAgICAgICAgICAgICAgICAgIGNhc2UgIm9iamVjdCI6DQogICAgICAgICAgICAg ICAgICAgIGNhc2UgImVtYmVkIjoNCiAgICAgICAgICAgICAgICAgICAgICBCcigibG9hZCIs IHIpOw0KICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAg ICBjYXNlICJ2aWRlbyI6DQogICAgICAgICAgICAgICAgICAgIGNhc2UgImF1ZGlvIjoNCiAg ICAgICAgICAgICAgICAgICAgICBmb3IgKG8gPSAwOyBvIDwganIubGVuZ3RoOyBvKyspIEJy KGpyW29dLCByKTsNCiAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAg ICAgICAgICAgY2FzZSAic291cmNlIjoNCiAgICAgICAgICAgICAgICAgICAgICBCcigiZXJy b3IiLCByKTsNCiAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAg ICAgICAgY2FzZSAiaW1nIjoNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAiaW1hZ2UiOg0K ICAgICAgICAgICAgICAgICAgICBjYXNlICJsaW5rIjoNCiAgICAgICAgICAgICAgICAgICAg ICBCcigiZXJyb3IiLCByKSwgQnIoImxvYWQiLCByKTsNCiAgICAgICAgICAgICAgICAgICAg ICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAiZGV0YWlscyI6DQogICAgICAg ICAgICAgICAgICAgICAgQnIoInRvZ2dsZSIsIHIpOw0KICAgICAgICAgICAgICAgICAgICAg IGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBjYXNlICJpbnB1dCI6DQogICAgICAgICAg ICAgICAgICAgICAgWShyLCBpKSwgQnIoImludmFsaWQiLCByKTsNCiAgICAgICAgICAgICAg ICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAic2VsZWN0IjoNCiAg ICAgICAgICAgICAgICAgICAgICAoci5fd3JhcHBlclN0YXRlID0geyB3YXNNdWx0aXBsZTog ISFpLm11bHRpcGxlIH0pLCBCcigiaW52YWxpZCIsIHIpOw0KICAgICAgICAgICAgICAgICAg ICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBjYXNlICJ0ZXh0YXJlYSI6DQogICAg ICAgICAgICAgICAgICAgICAgb2UociwgaSksIEJyKCJpbnZhbGlkIiwgcik7DQogICAgICAg ICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICBmb3IgKHZhciBzIGluICh5ZShuLCBp KSwgKG8gPSBudWxsKSwgaSkpDQogICAgICAgICAgICAgICAgICAgIGlmIChpLmhhc093blBy b3BlcnR5KHMpKSB7DQogICAgICAgICAgICAgICAgICAgICAgdmFyIHUgPSBpW3NdOw0KICAg ICAgICAgICAgICAgICAgICAgICJjaGlsZHJlbiIgPT09IHMNCiAgICAgICAgICAgICAgICAg ICAgICAgID8gInN0cmluZyIgPT09IHR5cGVvZiB1DQogICAgICAgICAgICAgICAgICAgICAg ICAgID8gci50ZXh0Q29udGVudCAhPT0gdSAmJiAoITAgIT09IGkuc3VwcHJlc3NIeWRyYXRp b25XYXJuaW5nICYmIFpyKHIudGV4dENvbnRlbnQsIHUsIGUpLCAobyA9IFsiY2hpbGRyZW4i LCB1XSkpDQogICAgICAgICAgICAgICAgICAgICAgICAgIDogIm51bWJlciIgPT09IHR5cGVv ZiB1ICYmIHIudGV4dENvbnRlbnQgIT09ICIiICsgdSAmJiAoITAgIT09IGkuc3VwcHJlc3NI eWRyYXRpb25XYXJuaW5nICYmIFpyKHIudGV4dENvbnRlbnQsIHUsIGUpLCAobyA9IFsiY2hp bGRyZW4iLCAiIiArIHVdKSkNCiAgICAgICAgICAgICAgICAgICAgICAgIDogbC5oYXNPd25Q cm9wZXJ0eShzKSAmJiBudWxsICE9IHUgJiYgIm9uU2Nyb2xsIiA9PT0gcyAmJiBCcigic2Ny b2xsIiwgcik7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgIHN3 aXRjaCAobikgew0KICAgICAgICAgICAgICAgICAgICBjYXNlICJpbnB1dCI6DQogICAgICAg ICAgICAgICAgICAgICAgJChyKSwgSihyLCBpLCAhMCk7DQogICAgICAgICAgICAgICAgICAg ICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHRhcmVhIjoNCiAgICAg ICAgICAgICAgICAgICAgICAkKHIpLCBpZShyKTsNCiAgICAgICAgICAgICAgICAgICAgICBi cmVhazsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAic2VsZWN0IjoNCiAgICAgICAgICAg ICAgICAgICAgY2FzZSAib3B0aW9uIjoNCiAgICAgICAgICAgICAgICAgICAgICBicmVhazsN CiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgICAi ZnVuY3Rpb24iID09PSB0eXBlb2YgaS5vbkNsaWNrICYmIChyLm9uY2xpY2sgPSBKcik7DQog ICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAociA9IG8pLCAodC51cGRh dGVRdWV1ZSA9IHIpLCBudWxsICE9PSByICYmICh0LmZsYWdzIHw9IDQpOw0KICAgICAgICAg ICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAocyA9IDkgPT09IG8ubm9kZVR5 cGUgPyBvIDogby5vd25lckRvY3VtZW50KSwNCiAgICAgICAgICAgICAgICAgICAgImh0dHA6 Ly93d3cudzMub3JnLzE5OTkveGh0bWwiID09PSBlICYmIChlID0gbGUobikpLA0KICAgICAg ICAgICAgICAgICAgICAiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgPT09IGUNCiAg ICAgICAgICAgICAgICAgICAgICA/ICJzY3JpcHQiID09PSBuDQogICAgICAgICAgICAgICAg ICAgICAgICA/ICgoKGUgPSBzLmNyZWF0ZUVsZW1lbnQoImRpdiIpKS5pbm5lckhUTUwgPSAi PHNjcmlwdD48XC9zY3JpcHQ+IiksIChlID0gZS5yZW1vdmVDaGlsZChlLmZpcnN0Q2hpbGQp KSkNCiAgICAgICAgICAgICAgICAgICAgICAgIDogInN0cmluZyIgPT09IHR5cGVvZiByLmlz DQogICAgICAgICAgICAgICAgICAgICAgICAgID8gKGUgPSBzLmNyZWF0ZUVsZW1lbnQobiwg eyBpczogci5pcyB9KSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgOiAoKGUgPSBzLmNy ZWF0ZUVsZW1lbnQobikpLCAic2VsZWN0IiA9PT0gbiAmJiAoKHMgPSBlKSwgci5tdWx0aXBs ZSA/IChzLm11bHRpcGxlID0gITApIDogci5zaXplICYmIChzLnNpemUgPSByLnNpemUpKSkN CiAgICAgICAgICAgICAgICAgICAgICA6IChlID0gcy5jcmVhdGVFbGVtZW50TlMoZSwgbikp LA0KICAgICAgICAgICAgICAgICAgICAoZVtwb10gPSB0KSwNCiAgICAgICAgICAgICAgICAg ICAgKGVbaG9dID0gciksDQogICAgICAgICAgICAgICAgICAgIEFsKGUsIHQsICExLCAhMSks DQogICAgICAgICAgICAgICAgICAgICh0LnN0YXRlTm9kZSA9IGUpOw0KICAgICAgICAgICAg ICAgICAgZTogew0KICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKCgocyA9IGJlKG4sIHIp KSwgbikpIHsNCiAgICAgICAgICAgICAgICAgICAgICBjYXNlICJkaWFsb2ciOg0KICAgICAg ICAgICAgICAgICAgICAgICAgQnIoImNhbmNlbCIsIGUpLCBCcigiY2xvc2UiLCBlKSwgKG8g PSByKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAg ICAgICAgIGNhc2UgImlmcmFtZSI6DQogICAgICAgICAgICAgICAgICAgICAgY2FzZSAib2Jq ZWN0IjoNCiAgICAgICAgICAgICAgICAgICAgICBjYXNlICJlbWJlZCI6DQogICAgICAgICAg ICAgICAgICAgICAgICBCcigibG9hZCIsIGUpLCAobyA9IHIpOw0KICAgICAgICAgICAgICAg ICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgY2FzZSAidmlkZW8iOg0K ICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImF1ZGlvIjoNCiAgICAgICAgICAgICAgICAg ICAgICAgIGZvciAobyA9IDA7IG8gPCBqci5sZW5ndGg7IG8rKykgQnIoanJbb10sIGUpOw0K ICAgICAgICAgICAgICAgICAgICAgICAgbyA9IHI7DQogICAgICAgICAgICAgICAgICAgICAg ICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICBjYXNlICJzb3VyY2UiOg0KICAgICAg ICAgICAgICAgICAgICAgICAgQnIoImVycm9yIiwgZSksIChvID0gcik7DQogICAgICAgICAg ICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICBjYXNlICJpbWci Og0KICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImltYWdlIjoNCiAgICAgICAgICAgICAg ICAgICAgICBjYXNlICJsaW5rIjoNCiAgICAgICAgICAgICAgICAgICAgICAgIEJyKCJlcnJv ciIsIGUpLCBCcigibG9hZCIsIGUpLCAobyA9IHIpOw0KICAgICAgICAgICAgICAgICAgICAg ICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgY2FzZSAiZGV0YWlscyI6DQogICAg ICAgICAgICAgICAgICAgICAgICBCcigidG9nZ2xlIiwgZSksIChvID0gcik7DQogICAgICAg ICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICBjYXNlICJp bnB1dCI6DQogICAgICAgICAgICAgICAgICAgICAgICBZKGUsIHIpLCAobyA9IEcoZSwgcikp LCBCcigiaW52YWxpZCIsIGUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQog ICAgICAgICAgICAgICAgICAgICAgY2FzZSAib3B0aW9uIjoNCiAgICAgICAgICAgICAgICAg ICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICAgICAgbyA9IHI7DQogICAgICAg ICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICBjYXNlICJz ZWxlY3QiOg0KICAgICAgICAgICAgICAgICAgICAgICAgKGUuX3dyYXBwZXJTdGF0ZSA9IHsg d2FzTXVsdGlwbGU6ICEhci5tdWx0aXBsZSB9KSwgKG8gPSBMKHt9LCByLCB7IHZhbHVlOiB2 b2lkIDAgfSkpLCBCcigiaW52YWxpZCIsIGUpOw0KICAgICAgICAgICAgICAgICAgICAgICAg YnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgY2FzZSAidGV4dGFyZWEiOg0KICAgICAg ICAgICAgICAgICAgICAgICAgb2UoZSwgciksIChvID0gcmUoZSwgcikpLCBCcigiaW52YWxp ZCIsIGUpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGZv ciAoaSBpbiAoeWUobiwgbyksICh1ID0gbykpKQ0KICAgICAgICAgICAgICAgICAgICAgIGlm ICh1Lmhhc093blByb3BlcnR5KGkpKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIg YyA9IHVbaV07DQogICAgICAgICAgICAgICAgICAgICAgICAic3R5bGUiID09PSBpDQogICAg ICAgICAgICAgICAgICAgICAgICAgID8gZ2UoZSwgYykNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgOiAiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwiID09PSBpDQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgPyBudWxsICE9IChjID0gYyA/IGMuX19odG1sIDogdm9pZCAwKSAm JiBkZShlLCBjKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogImNoaWxkcmVuIiA9 PT0gaQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAic3RyaW5nIiA9PT0gdHlw ZW9mIGMNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAoInRleHRhcmVhIiAh PT0gbiB8fCAiIiAhPT0gYykgJiYgZmUoZSwgYykNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgOiAibnVtYmVyIiA9PT0gdHlwZW9mIGMgJiYgZmUoZSwgIiIgKyBjKQ0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAic3VwcHJlc3NDb250ZW50RWRpdGFibGVX YXJuaW5nIiAhPT0gaSAmJg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN1cHBy ZXNzSHlkcmF0aW9uV2FybmluZyIgIT09IGkgJiYNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICJhdXRvRm9jdXMiICE9PSBpICYmDQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAobC5oYXNPd25Qcm9wZXJ0eShpKSA/IG51bGwgIT0gYyAmJiAib25TY3JvbGwiID09 PSBpICYmIEJyKCJzY3JvbGwiLCBlKSA6IG51bGwgIT0gYyAmJiBiKGUsIGksIGMsIHMpKTsN CiAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAo bikgew0KICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImlucHV0IjoNCiAgICAgICAgICAg ICAgICAgICAgICAgICQoZSksIEooZSwgciwgITEpOw0KICAgICAgICAgICAgICAgICAgICAg ICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgY2FzZSAidGV4dGFyZWEiOg0KICAg ICAgICAgICAgICAgICAgICAgICAgJChlKSwgaWUoZSk7DQogICAgICAgICAgICAgICAgICAg ICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICBjYXNlICJvcHRpb24iOg0KICAg ICAgICAgICAgICAgICAgICAgICAgbnVsbCAhPSByLnZhbHVlICYmIGUuc2V0QXR0cmlidXRl KCJ2YWx1ZSIsICIiICsgSChyLnZhbHVlKSk7DQogICAgICAgICAgICAgICAgICAgICAgICBi cmVhazsNCiAgICAgICAgICAgICAgICAgICAgICBjYXNlICJzZWxlY3QiOg0KICAgICAgICAg ICAgICAgICAgICAgICAgKGUubXVsdGlwbGUgPSAhIXIubXVsdGlwbGUpLCBudWxsICE9IChp ID0gci52YWx1ZSkgPyBuZShlLCAhIXIubXVsdGlwbGUsIGksICExKSA6IG51bGwgIT0gci5k ZWZhdWx0VmFsdWUgJiYgbmUoZSwgISFyLm11bHRpcGxlLCByLmRlZmF1bHRWYWx1ZSwgITAp Ow0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAg ICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgICAgICJmdW5jdGlvbiIgPT09IHR5 cGVvZiBvLm9uQ2xpY2sgJiYgKGUub25jbGljayA9IEpyKTsNCiAgICAgICAgICAgICAgICAg ICAgfQ0KICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKG4pIHsNCiAgICAgICAgICAgICAg ICAgICAgICBjYXNlICJidXR0b24iOg0KICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImlu cHV0IjoNCiAgICAgICAgICAgICAgICAgICAgICBjYXNlICJzZWxlY3QiOg0KICAgICAgICAg ICAgICAgICAgICAgIGNhc2UgInRleHRhcmVhIjoNCiAgICAgICAgICAgICAgICAgICAgICAg IHIgPSAhIXIuYXV0b0ZvY3VzOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsgZTsN CiAgICAgICAgICAgICAgICAgICAgICBjYXNlICJpbWciOg0KICAgICAgICAgICAgICAgICAg ICAgICAgciA9ICEwOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsgZTsNCiAgICAg ICAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICAgICAgciA9 ICExOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICB9DQogICAg ICAgICAgICAgICAgICByICYmICh0LmZsYWdzIHw9IDQpOw0KICAgICAgICAgICAgICAgIH0N CiAgICAgICAgICAgICAgICBudWxsICE9PSB0LnJlZiAmJiAoKHQuZmxhZ3MgfD0gNTEyKSwg KHQuZmxhZ3MgfD0gMjA5NzE1MikpOw0KICAgICAgICAgICAgICB9DQogICAgICAgICAgICAg IHJldHVybiBLbCh0KSwgbnVsbDsNCiAgICAgICAgICAgIGNhc2UgNjoNCiAgICAgICAgICAg ICAgaWYgKGUgJiYgbnVsbCAhPSB0LnN0YXRlTm9kZSkgamwoZSwgdCwgZS5tZW1vaXplZFBy b3BzLCByKTsNCiAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgaWYgKCJz dHJpbmciICE9PSB0eXBlb2YgciAmJiBudWxsID09PSB0LnN0YXRlTm9kZSkgdGhyb3cgRXJy b3IoYSgxNjYpKTsNCiAgICAgICAgICAgICAgICBpZiAoKChuID0gcmkobmkuY3VycmVudCkp LCByaShlaS5jdXJyZW50KSwgZmEodCkpKSB7DQogICAgICAgICAgICAgICAgICBpZiAoKChy ID0gdC5zdGF0ZU5vZGUpLCAobiA9IHQubWVtb2l6ZWRQcm9wcyksIChyW3BvXSA9IHQpLCAo aSA9IHIubm9kZVZhbHVlICE9PSBuKSAmJiBudWxsICE9PSAoZSA9IHJhKSkpDQogICAgICAg ICAgICAgICAgICAgIHN3aXRjaCAoZS50YWcpIHsNCiAgICAgICAgICAgICAgICAgICAgICBj YXNlIDM6DQogICAgICAgICAgICAgICAgICAgICAgICBacihyLm5vZGVWYWx1ZSwgbiwgMCAh PT0gKDEgJiBlLm1vZGUpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAg ICAgICAgICAgICAgICAgICAgIGNhc2UgNToNCiAgICAgICAgICAgICAgICAgICAgICAgICEw ICE9PSBlLm1lbW9pemVkUHJvcHMuc3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nICYmIFpyKHIu bm9kZVZhbHVlLCBuLCAwICE9PSAoMSAmIGUubW9kZSkpOw0KICAgICAgICAgICAgICAgICAg ICB9DQogICAgICAgICAgICAgICAgICBpICYmICh0LmZsYWdzIHw9IDQpOw0KICAgICAgICAg ICAgICAgIH0gZWxzZSAoKHIgPSAoOSA9PT0gbi5ub2RlVHlwZSA/IG4gOiBuLm93bmVyRG9j dW1lbnQpLmNyZWF0ZVRleHROb2RlKHIpKVtwb10gPSB0KSwgKHQuc3RhdGVOb2RlID0gcik7 DQogICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgcmV0dXJuIEtsKHQpLCBudWxsOw0K ICAgICAgICAgICAgY2FzZSAxMzoNCiAgICAgICAgICAgICAgaWYgKChSbyhzaSksIChyID0g dC5tZW1vaXplZFN0YXRlKSwgbnVsbCA9PT0gZSB8fCAobnVsbCAhPT0gZS5tZW1vaXplZFN0 YXRlICYmIG51bGwgIT09IGUubWVtb2l6ZWRTdGF0ZS5kZWh5ZHJhdGVkKSkpIHsNCiAgICAg ICAgICAgICAgICBpZiAoYWEgJiYgbnVsbCAhPT0gb2EgJiYgMCAhPT0gKDEgJiB0Lm1vZGUp ICYmIDAgPT09ICgxMjggJiB0LmZsYWdzKSkgcGEoKSwgaGEoKSwgKHQuZmxhZ3MgfD0gOTg1 NjApLCAoaSA9ICExKTsNCiAgICAgICAgICAgICAgICBlbHNlIGlmICgoKGkgPSBmYSh0KSks IG51bGwgIT09IHIgJiYgbnVsbCAhPT0gci5kZWh5ZHJhdGVkKSkgew0KICAgICAgICAgICAg ICAgICAgaWYgKG51bGwgPT09IGUpIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKCFpKSB0 aHJvdyBFcnJvcihhKDMxOCkpOw0KICAgICAgICAgICAgICAgICAgICBpZiAoIShpID0gbnVs bCAhPT0gKGkgPSB0Lm1lbW9pemVkU3RhdGUpID8gaS5kZWh5ZHJhdGVkIDogbnVsbCkpIHRo cm93IEVycm9yKGEoMzE3KSk7DQogICAgICAgICAgICAgICAgICAgIGlbcG9dID0gdDsNCiAg ICAgICAgICAgICAgICAgIH0gZWxzZSBoYSgpLCAwID09PSAoMTI4ICYgdC5mbGFncykgJiYg KHQubWVtb2l6ZWRTdGF0ZSA9IG51bGwpLCAodC5mbGFncyB8PSA0KTsNCiAgICAgICAgICAg ICAgICAgIEtsKHQpLCAoaSA9ICExKTsNCiAgICAgICAgICAgICAgICB9IGVsc2UgbnVsbCAh PT0gaWEgJiYgKGx1KGlhKSwgKGlhID0gbnVsbCkpLCAoaSA9ICEwKTsNCiAgICAgICAgICAg ICAgICBpZiAoIWkpIHJldHVybiA2NTUzNiAmIHQuZmxhZ3MgPyB0IDogbnVsbDsNCiAgICAg ICAgICAgICAgfQ0KICAgICAgICAgICAgICByZXR1cm4gMCAhPT0gKDEyOCAmIHQuZmxhZ3Mp DQogICAgICAgICAgICAgICAgPyAoKHQubGFuZXMgPSBuKSwgdCkNCiAgICAgICAgICAgICAg ICA6ICgociA9IG51bGwgIT09IHIpICE9PSAobnVsbCAhPT0gZSAmJiBudWxsICE9PSBlLm1l bW9pemVkU3RhdGUpICYmIHIgJiYgKCh0LmNoaWxkLmZsYWdzIHw9IDgxOTIpLCAwICE9PSAo MSAmIHQubW9kZSkgJiYgKG51bGwgPT09IGUgfHwgMCAhPT0gKDEgJiBzaS5jdXJyZW50KSA/ IDAgPT09IGpzICYmIChqcyA9IDMpIDogZ3UoKSkpLA0KICAgICAgICAgICAgICAgICAgbnVs bCAhPT0gdC51cGRhdGVRdWV1ZSAmJiAodC5mbGFncyB8PSA0KSwNCiAgICAgICAgICAgICAg ICAgIEtsKHQpLA0KICAgICAgICAgICAgICAgICAgbnVsbCk7DQogICAgICAgICAgICBjYXNl IDQ6DQogICAgICAgICAgICAgIHJldHVybiBhaSgpLCBNbChlLCB0KSwgbnVsbCA9PT0gZSAm JiBXcih0LnN0YXRlTm9kZS5jb250YWluZXJJbmZvKSwgS2wodCksIG51bGw7DQogICAgICAg ICAgICBjYXNlIDEwOg0KICAgICAgICAgICAgICByZXR1cm4ga2EodC50eXBlLl9jb250ZXh0 KSwgS2wodCksIG51bGw7DQogICAgICAgICAgICBjYXNlIDE5Og0KICAgICAgICAgICAgICBp ZiAoKFJvKHNpKSwgbnVsbCA9PT0gKGkgPSB0Lm1lbW9pemVkU3RhdGUpKSkgcmV0dXJuIEts KHQpLCBudWxsOw0KICAgICAgICAgICAgICBpZiAoKChyID0gMCAhPT0gKDEyOCAmIHQuZmxh Z3MpKSwgbnVsbCA9PT0gKHMgPSBpLnJlbmRlcmluZykpKQ0KICAgICAgICAgICAgICAgIGlm IChyKSAkbChpLCAhMSk7DQogICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAg ICAgICBpZiAoMCAhPT0ganMgfHwgKG51bGwgIT09IGUgJiYgMCAhPT0gKDEyOCAmIGUuZmxh Z3MpKSkNCiAgICAgICAgICAgICAgICAgICAgZm9yIChlID0gdC5jaGlsZDsgbnVsbCAhPT0g ZTspIHsNCiAgICAgICAgICAgICAgICAgICAgICBpZiAobnVsbCAhPT0gKHMgPSB1aShlKSkp IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAodC5mbGFncyB8PSAxMjgsICRsKGks ICExKSwgbnVsbCAhPT0gKHIgPSBzLnVwZGF0ZVF1ZXVlKSAmJiAoKHQudXBkYXRlUXVldWUg PSByKSwgKHQuZmxhZ3MgfD0gNCkpLCB0LnN1YnRyZWVGbGFncyA9IDAsIHIgPSBuLCBuID0g dC5jaGlsZDsgbnVsbCAhPT0gbjspDQogICAgICAgICAgICAgICAgICAgICAgICAgIChlID0g ciksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKChpID0gbikuZmxhZ3MgJj0gMTQ2 ODAwNjYpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwgPT09IChzID0gaS5h bHRlcm5hdGUpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICgoaS5jaGlsZExh bmVzID0gMCksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpLmxhbmVzID0g ZSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpLmNoaWxkID0gbnVsbCks DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpLnN1YnRyZWVGbGFncyA9IDAp LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaS5tZW1vaXplZFByb3BzID0g bnVsbCksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpLm1lbW9pemVkU3Rh dGUgPSBudWxsKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGkudXBkYXRl UXVldWUgPSBudWxsKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGkuZGVw ZW5kZW5jaWVzID0gbnVsbCksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChp LnN0YXRlTm9kZSA9IG51bGwpKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAo KGkuY2hpbGRMYW5lcyA9IHMuY2hpbGRMYW5lcyksDQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChpLmxhbmVzID0gcy5sYW5lcyksDQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChpLmNoaWxkID0gcy5jaGlsZCksDQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChpLnN1YnRyZWVGbGFncyA9IDApLA0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAoaS5kZWxldGlvbnMgPSBudWxsKSwNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKGkubWVtb2l6ZWRQcm9wcyA9IHMubWVtb2l6ZWRQcm9wcyksDQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpLm1lbW9pemVkU3RhdGUgPSBzLm1lbW9p emVkU3RhdGUpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaS51cGRhdGVR dWV1ZSA9IHMudXBkYXRlUXVldWUpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAoaS50eXBlID0gcy50eXBlKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KGUgPSBzLmRlcGVuZGVuY2llcyksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChpLmRlcGVuZGVuY2llcyA9IG51bGwgPT09IGUgPyBudWxsIDogeyBsYW5lczogZS5sYW5l cywgZmlyc3RDb250ZXh0OiBlLmZpcnN0Q29udGV4dCB9KSksDQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgKG4gPSBuLnNpYmxpbmcpOw0KICAgICAgICAgICAgICAgICAgICAgICAg cmV0dXJuIF9vKHNpLCAoMSAmIHNpLmN1cnJlbnQpIHwgMiksIHQuY2hpbGQ7DQogICAgICAg ICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgIGUgPSBlLnNpYmxpbmc7 DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgIG51bGwgIT09IGku dGFpbCAmJiBYZSgpID4gVnMgJiYgKCh0LmZsYWdzIHw9IDEyOCksIChyID0gITApLCAkbChp LCAhMSksICh0LmxhbmVzID0gNDE5NDMwNCkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAg ICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgaWYgKCFyKQ0KICAgICAgICAgICAg ICAgICAgaWYgKG51bGwgIT09IChlID0gdWkocykpKSB7DQogICAgICAgICAgICAgICAgICAg IGlmICgoKHQuZmxhZ3MgfD0gMTI4KSwgKHIgPSAhMCksIG51bGwgIT09IChuID0gZS51cGRh dGVRdWV1ZSkgJiYgKCh0LnVwZGF0ZVF1ZXVlID0gbiksICh0LmZsYWdzIHw9IDQpKSwgJGwo aSwgITApLCBudWxsID09PSBpLnRhaWwgJiYgImhpZGRlbiIgPT09IGkudGFpbE1vZGUgJiYg IXMuYWx0ZXJuYXRlICYmICFhYSkpDQogICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEts KHQpLCBudWxsOw0KICAgICAgICAgICAgICAgICAgfSBlbHNlIDIgKiBYZSgpIC0gaS5yZW5k ZXJpbmdTdGFydFRpbWUgPiBWcyAmJiAxMDczNzQxODI0ICE9PSBuICYmICgodC5mbGFncyB8 PSAxMjgpLCAociA9ICEwKSwgJGwoaSwgITEpLCAodC5sYW5lcyA9IDQxOTQzMDQpKTsNCiAg ICAgICAgICAgICAgICBpLmlzQmFja3dhcmRzID8gKChzLnNpYmxpbmcgPSB0LmNoaWxkKSwg KHQuY2hpbGQgPSBzKSkgOiAobnVsbCAhPT0gKG4gPSBpLmxhc3QpID8gKG4uc2libGluZyA9 IHMpIDogKHQuY2hpbGQgPSBzKSwgKGkubGFzdCA9IHMpKTsNCiAgICAgICAgICAgICAgfQ0K ICAgICAgICAgICAgICByZXR1cm4gbnVsbCAhPT0gaS50YWlsID8gKCh0ID0gaS50YWlsKSwg KGkucmVuZGVyaW5nID0gdCksIChpLnRhaWwgPSB0LnNpYmxpbmcpLCAoaS5yZW5kZXJpbmdT dGFydFRpbWUgPSBYZSgpKSwgKHQuc2libGluZyA9IG51bGwpLCAobiA9IHNpLmN1cnJlbnQp LCBfbyhzaSwgciA/ICgxICYgbikgfCAyIDogMSAmIG4pLCB0KSA6IChLbCh0KSwgbnVsbCk7 DQogICAgICAgICAgICBjYXNlIDIyOg0KICAgICAgICAgICAgY2FzZSAyMzoNCiAgICAgICAg ICAgICAgcmV0dXJuICgNCiAgICAgICAgICAgICAgICBmdSgpLA0KICAgICAgICAgICAgICAg IChyID0gbnVsbCAhPT0gdC5tZW1vaXplZFN0YXRlKSwNCiAgICAgICAgICAgICAgICBudWxs ICE9PSBlICYmIChudWxsICE9PSBlLm1lbW9pemVkU3RhdGUpICE9PSByICYmICh0LmZsYWdz IHw9IDgxOTIpLA0KICAgICAgICAgICAgICAgIHIgJiYgMCAhPT0gKDEgJiB0Lm1vZGUpID8g MCAhPT0gKDEwNzM3NDE4MjQgJiBNcykgJiYgKEtsKHQpLCA2ICYgdC5zdWJ0cmVlRmxhZ3Mg JiYgKHQuZmxhZ3MgfD0gODE5MikpIDogS2wodCksDQogICAgICAgICAgICAgICAgbnVsbA0K ICAgICAgICAgICAgICApOw0KICAgICAgICAgICAgY2FzZSAyNDoNCiAgICAgICAgICAgIGNh c2UgMjU6DQogICAgICAgICAgICAgIHJldHVybiBudWxsOw0KICAgICAgICAgIH0NCiAgICAg ICAgICB0aHJvdyBFcnJvcihhKDE1NiwgdC50YWcpKTsNCiAgICAgICAgfQ0KICAgICAgICBm dW5jdGlvbiBHbChlLCB0KSB7DQogICAgICAgICAgc3dpdGNoICgobmEodCksIHQudGFnKSkg ew0KICAgICAgICAgICAgY2FzZSAxOg0KICAgICAgICAgICAgICByZXR1cm4gTW8odC50eXBl KSAmJiB6bygpLCA2NTUzNiAmIChlID0gdC5mbGFncykgPyAoKHQuZmxhZ3MgPSAoLTY1NTM3 ICYgZSkgfCAxMjgpLCB0KSA6IG51bGw7DQogICAgICAgICAgICBjYXNlIDM6DQogICAgICAg ICAgICAgIHJldHVybiBhaSgpLCBSbyhObyksIFJvKE9vKSwgZGkoKSwgMCAhPT0gKDY1NTM2 ICYgKGUgPSB0LmZsYWdzKSkgJiYgMCA9PT0gKDEyOCAmIGUpID8gKCh0LmZsYWdzID0gKC02 NTUzNyAmIGUpIHwgMTI4KSwgdCkgOiBudWxsOw0KICAgICAgICAgICAgY2FzZSA1Og0KICAg ICAgICAgICAgICByZXR1cm4gbGkodCksIG51bGw7DQogICAgICAgICAgICBjYXNlIDEzOg0K ICAgICAgICAgICAgICBpZiAoKFJvKHNpKSwgbnVsbCAhPT0gKGUgPSB0Lm1lbW9pemVkU3Rh dGUpICYmIG51bGwgIT09IGUuZGVoeWRyYXRlZCkpIHsNCiAgICAgICAgICAgICAgICBpZiAo bnVsbCA9PT0gdC5hbHRlcm5hdGUpIHRocm93IEVycm9yKGEoMzQwKSk7DQogICAgICAgICAg ICAgICAgaGEoKTsNCiAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICByZXR1cm4gNjU1 MzYgJiAoZSA9IHQuZmxhZ3MpID8gKCh0LmZsYWdzID0gKC02NTUzNyAmIGUpIHwgMTI4KSwg dCkgOiBudWxsOw0KICAgICAgICAgICAgY2FzZSAxOToNCiAgICAgICAgICAgICAgcmV0dXJu IFJvKHNpKSwgbnVsbDsNCiAgICAgICAgICAgIGNhc2UgNDoNCiAgICAgICAgICAgICAgcmV0 dXJuIGFpKCksIG51bGw7DQogICAgICAgICAgICBjYXNlIDEwOg0KICAgICAgICAgICAgICBy ZXR1cm4ga2EodC50eXBlLl9jb250ZXh0KSwgbnVsbDsNCiAgICAgICAgICAgIGNhc2UgMjI6 DQogICAgICAgICAgICBjYXNlIDIzOg0KICAgICAgICAgICAgICByZXR1cm4gZnUoKSwgbnVs bDsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgIHJldHVybiBudWxsOw0K ICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICAoQWwgPSBmdW5jdGlvbiAoZSwgdCkg ew0KICAgICAgICAgIGZvciAodmFyIG4gPSB0LmNoaWxkOyBudWxsICE9PSBuOykgew0KICAg ICAgICAgICAgaWYgKDUgPT09IG4udGFnIHx8IDYgPT09IG4udGFnKSBlLmFwcGVuZENoaWxk KG4uc3RhdGVOb2RlKTsNCiAgICAgICAgICAgIGVsc2UgaWYgKDQgIT09IG4udGFnICYmIG51 bGwgIT09IG4uY2hpbGQpIHsNCiAgICAgICAgICAgICAgKG4uY2hpbGQucmV0dXJuID0gbiks IChuID0gbi5jaGlsZCk7DQogICAgICAgICAgICAgIGNvbnRpbnVlOw0KICAgICAgICAgICAg fQ0KICAgICAgICAgICAgaWYgKG4gPT09IHQpIGJyZWFrOw0KICAgICAgICAgICAgZm9yICg7 IG51bGwgPT09IG4uc2libGluZzspIHsNCiAgICAgICAgICAgICAgaWYgKG51bGwgPT09IG4u cmV0dXJuIHx8IG4ucmV0dXJuID09PSB0KSByZXR1cm47DQogICAgICAgICAgICAgIG4gPSBu LnJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIChuLnNpYmxpbmcucmV0dXJu ID0gbi5yZXR1cm4pLCAobiA9IG4uc2libGluZyk7DQogICAgICAgICAgfQ0KICAgICAgICB9 KSwNCiAgICAgICAgICAoTWwgPSBmdW5jdGlvbiAoKSB7IH0pLA0KICAgICAgICAgICh6bCA9 IGZ1bmN0aW9uIChlLCB0LCBuLCByKSB7DQogICAgICAgICAgICB2YXIgbyA9IGUubWVtb2l6 ZWRQcm9wczsNCiAgICAgICAgICAgIGlmIChvICE9PSByKSB7DQogICAgICAgICAgICAgIChl ID0gdC5zdGF0ZU5vZGUpLCByaShlaS5jdXJyZW50KTsNCiAgICAgICAgICAgICAgdmFyIGEs DQogICAgICAgICAgICAgICAgaSA9IG51bGw7DQogICAgICAgICAgICAgIHN3aXRjaCAobikg ew0KICAgICAgICAgICAgICAgIGNhc2UgImlucHV0IjoNCiAgICAgICAgICAgICAgICAgIChv ID0gRyhlLCBvKSksIChyID0gRyhlLCByKSksIChpID0gW10pOw0KICAgICAgICAgICAgICAg ICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAic2VsZWN0IjoNCiAgICAgICAgICAg ICAgICAgIChvID0gTCh7fSwgbywgeyB2YWx1ZTogdm9pZCAwIH0pKSwgKHIgPSBMKHt9LCBy LCB7IHZhbHVlOiB2b2lkIDAgfSkpLCAoaSA9IFtdKTsNCiAgICAgICAgICAgICAgICAgIGJy ZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgInRleHRhcmVhIjoNCiAgICAgICAgICAgICAg ICAgIChvID0gcmUoZSwgbykpLCAociA9IHJlKGUsIHIpKSwgKGkgPSBbXSk7DQogICAgICAg ICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAg ICAgICAgICAgImZ1bmN0aW9uIiAhPT0gdHlwZW9mIG8ub25DbGljayAmJiAiZnVuY3Rpb24i ID09PSB0eXBlb2Ygci5vbkNsaWNrICYmIChlLm9uY2xpY2sgPSBKcik7DQogICAgICAgICAg ICAgIH0NCiAgICAgICAgICAgICAgZm9yIChjIGluICh5ZShuLCByKSwgKG4gPSBudWxsKSwg bykpDQogICAgICAgICAgICAgICAgaWYgKCFyLmhhc093blByb3BlcnR5KGMpICYmIG8uaGFz T3duUHJvcGVydHkoYykgJiYgbnVsbCAhPSBvW2NdKQ0KICAgICAgICAgICAgICAgICAgaWYg KCJzdHlsZSIgPT09IGMpIHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHMgPSBvW2NdOw0K ICAgICAgICAgICAgICAgICAgICBmb3IgKGEgaW4gcykgcy5oYXNPd25Qcm9wZXJ0eShhKSAm JiAobiB8fCAobiA9IHt9KSwgKG5bYV0gPSAiIikpOw0KICAgICAgICAgICAgICAgICAgfSBl bHNlDQogICAgICAgICAgICAgICAgICAgICJkYW5nZXJvdXNseVNldElubmVySFRNTCIgIT09 IGMgJiYNCiAgICAgICAgICAgICAgICAgICAgICAiY2hpbGRyZW4iICE9PSBjICYmDQogICAg ICAgICAgICAgICAgICAgICAgInN1cHByZXNzQ29udGVudEVkaXRhYmxlV2FybmluZyIgIT09 IGMgJiYNCiAgICAgICAgICAgICAgICAgICAgICAic3VwcHJlc3NIeWRyYXRpb25XYXJuaW5n IiAhPT0gYyAmJg0KICAgICAgICAgICAgICAgICAgICAgICJhdXRvRm9jdXMiICE9PSBjICYm DQogICAgICAgICAgICAgICAgICAgICAgKGwuaGFzT3duUHJvcGVydHkoYykgPyBpIHx8IChp ID0gW10pIDogKGkgPSBpIHx8IFtdKS5wdXNoKGMsIG51bGwpKTsNCiAgICAgICAgICAgICAg Zm9yIChjIGluIHIpIHsNCiAgICAgICAgICAgICAgICB2YXIgdSA9IHJbY107DQogICAgICAg ICAgICAgICAgaWYgKCgocyA9IG51bGwgIT0gbyA/IG9bY10gOiB2b2lkIDApLCByLmhhc093 blByb3BlcnR5KGMpICYmIHUgIT09IHMgJiYgKG51bGwgIT0gdSB8fCBudWxsICE9IHMpKSkN CiAgICAgICAgICAgICAgICAgIGlmICgic3R5bGUiID09PSBjKQ0KICAgICAgICAgICAgICAg ICAgICBpZiAocykgew0KICAgICAgICAgICAgICAgICAgICAgIGZvciAoYSBpbiBzKSAhcy5o YXNPd25Qcm9wZXJ0eShhKSB8fCAodSAmJiB1Lmhhc093blByb3BlcnR5KGEpKSB8fCAobiB8 fCAobiA9IHt9KSwgKG5bYV0gPSAiIikpOw0KICAgICAgICAgICAgICAgICAgICAgIGZvciAo YSBpbiB1KSB1Lmhhc093blByb3BlcnR5KGEpICYmIHNbYV0gIT09IHVbYV0gJiYgKG4gfHwg KG4gPSB7fSksIChuW2FdID0gdVthXSkpOw0KICAgICAgICAgICAgICAgICAgICB9IGVsc2Ug biB8fCAoaSB8fCAoaSA9IFtdKSwgaS5wdXNoKGMsIG4pKSwgKG4gPSB1KTsNCiAgICAgICAg ICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgICAgICAgImRhbmdlcm91c2x5U2V0SW5u ZXJIVE1MIiA9PT0gYw0KICAgICAgICAgICAgICAgICAgICAgID8gKCh1ID0gdSA/IHUuX19o dG1sIDogdm9pZCAwKSwgKHMgPSBzID8gcy5fX2h0bWwgOiB2b2lkIDApLCBudWxsICE9IHUg JiYgcyAhPT0gdSAmJiAoaSA9IGkgfHwgW10pLnB1c2goYywgdSkpDQogICAgICAgICAgICAg ICAgICAgICAgOiAiY2hpbGRyZW4iID09PSBjDQogICAgICAgICAgICAgICAgICAgICAgICA/ ICgic3RyaW5nIiAhPT0gdHlwZW9mIHUgJiYgIm51bWJlciIgIT09IHR5cGVvZiB1KSB8fCAo aSA9IGkgfHwgW10pLnB1c2goYywgIiIgKyB1KQ0KICAgICAgICAgICAgICAgICAgICAgICAg OiAic3VwcHJlc3NDb250ZW50RWRpdGFibGVXYXJuaW5nIiAhPT0gYyAmJg0KICAgICAgICAg ICAgICAgICAgICAgICAgInN1cHByZXNzSHlkcmF0aW9uV2FybmluZyIgIT09IGMgJiYNCiAg ICAgICAgICAgICAgICAgICAgICAgIChsLmhhc093blByb3BlcnR5KGMpID8gKG51bGwgIT0g dSAmJiAib25TY3JvbGwiID09PSBjICYmIEJyKCJzY3JvbGwiLCBlKSwgaSB8fCBzID09PSB1 IHx8IChpID0gW10pKSA6IChpID0gaSB8fCBbXSkucHVzaChjLCB1KSk7DQogICAgICAgICAg ICAgIH0NCiAgICAgICAgICAgICAgbiAmJiAoaSA9IGkgfHwgW10pLnB1c2goInN0eWxlIiwg bik7DQogICAgICAgICAgICAgIHZhciBjID0gaTsNCiAgICAgICAgICAgICAgKHQudXBkYXRl UXVldWUgPSBjKSAmJiAodC5mbGFncyB8PSA0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAg ICB9KSwNCiAgICAgICAgICAoamwgPSBmdW5jdGlvbiAoZSwgdCwgbiwgcikgew0KICAgICAg ICAgICAgbiAhPT0gciAmJiAodC5mbGFncyB8PSA0KTsNCiAgICAgICAgICB9KTsNCiAgICAg ICAgdmFyIFlsID0gITEsDQogICAgICAgICAgWGwgPSAhMSwNCiAgICAgICAgICBabCA9ICJm dW5jdGlvbiIgPT09IHR5cGVvZiBXZWFrU2V0ID8gV2Vha1NldCA6IFNldCwNCiAgICAgICAg ICBKbCA9IG51bGw7DQogICAgICAgIGZ1bmN0aW9uIGVzKGUsIHQpIHsNCiAgICAgICAgICB2 YXIgbiA9IGUucmVmOw0KICAgICAgICAgIGlmIChudWxsICE9PSBuKQ0KICAgICAgICAgICAg aWYgKCJmdW5jdGlvbiIgPT09IHR5cGVvZiBuKQ0KICAgICAgICAgICAgICB0cnkgew0KICAg ICAgICAgICAgICAgIG4obnVsbCk7DQogICAgICAgICAgICAgIH0gY2F0Y2ggKHIpIHsNCiAg ICAgICAgICAgICAgICBDdShlLCB0LCByKTsNCiAgICAgICAgICAgICAgfQ0KICAgICAgICAg ICAgZWxzZSBuLmN1cnJlbnQgPSBudWxsOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9u IHRzKGUsIHQsIG4pIHsNCiAgICAgICAgICB0cnkgew0KICAgICAgICAgICAgbigpOw0KICAg ICAgICAgIH0gY2F0Y2ggKHIpIHsNCiAgICAgICAgICAgIEN1KGUsIHQsIHIpOw0KICAgICAg ICAgIH0NCiAgICAgICAgfQ0KICAgICAgICB2YXIgbnMgPSAhMTsNCiAgICAgICAgZnVuY3Rp b24gcnMoZSwgdCwgbikgew0KICAgICAgICAgIHZhciByID0gdC51cGRhdGVRdWV1ZTsNCiAg ICAgICAgICBpZiAobnVsbCAhPT0gKHIgPSBudWxsICE9PSByID8gci5sYXN0RWZmZWN0IDog bnVsbCkpIHsNCiAgICAgICAgICAgIHZhciBvID0gKHIgPSByLm5leHQpOw0KICAgICAgICAg ICAgZG8gew0KICAgICAgICAgICAgICBpZiAoKG8udGFnICYgZSkgPT09IGUpIHsNCiAgICAg ICAgICAgICAgICB2YXIgYSA9IG8uZGVzdHJveTsNCiAgICAgICAgICAgICAgICAoby5kZXN0 cm95ID0gdm9pZCAwKSwgdm9pZCAwICE9PSBhICYmIHRzKHQsIG4sIGEpOw0KICAgICAgICAg ICAgICB9DQogICAgICAgICAgICAgIG8gPSBvLm5leHQ7DQogICAgICAgICAgICB9IHdoaWxl IChvICE9PSByKTsNCiAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24g b3MoZSwgdCkgew0KICAgICAgICAgIGlmIChudWxsICE9PSAodCA9IG51bGwgIT09ICh0ID0g dC51cGRhdGVRdWV1ZSkgPyB0Lmxhc3RFZmZlY3QgOiBudWxsKSkgew0KICAgICAgICAgICAg dmFyIG4gPSAodCA9IHQubmV4dCk7DQogICAgICAgICAgICBkbyB7DQogICAgICAgICAgICAg IGlmICgobi50YWcgJiBlKSA9PT0gZSkgew0KICAgICAgICAgICAgICAgIHZhciByID0gbi5j cmVhdGU7DQogICAgICAgICAgICAgICAgbi5kZXN0cm95ID0gcigpOw0KICAgICAgICAgICAg ICB9DQogICAgICAgICAgICAgIG4gPSBuLm5leHQ7DQogICAgICAgICAgICB9IHdoaWxlIChu ICE9PSB0KTsNCiAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gYXMo ZSkgew0KICAgICAgICAgIHZhciB0ID0gZS5yZWY7DQogICAgICAgICAgaWYgKG51bGwgIT09 IHQpIHsNCiAgICAgICAgICAgIHZhciBuID0gZS5zdGF0ZU5vZGU7DQogICAgICAgICAgICBl LnRhZywgKGUgPSBuKSwgImZ1bmN0aW9uIiA9PT0gdHlwZW9mIHQgPyB0KGUpIDogKHQuY3Vy cmVudCA9IGUpOw0KICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBp cyhlKSB7DQogICAgICAgICAgdmFyIHQgPSBlLmFsdGVybmF0ZTsNCiAgICAgICAgICBudWxs ICE9PSB0ICYmICgoZS5hbHRlcm5hdGUgPSBudWxsKSwgaXModCkpLA0KICAgICAgICAgICAg KGUuY2hpbGQgPSBudWxsKSwNCiAgICAgICAgICAgIChlLmRlbGV0aW9ucyA9IG51bGwpLA0K ICAgICAgICAgICAgKGUuc2libGluZyA9IG51bGwpLA0KICAgICAgICAgICAgNSA9PT0gZS50 YWcgJiYgbnVsbCAhPT0gKHQgPSBlLnN0YXRlTm9kZSkgJiYgKGRlbGV0ZSB0W3BvXSwgZGVs ZXRlIHRbaG9dLCBkZWxldGUgdFtnb10sIGRlbGV0ZSB0W3ZvXSwgZGVsZXRlIHRbeW9dKSwN CiAgICAgICAgICAgIChlLnN0YXRlTm9kZSA9IG51bGwpLA0KICAgICAgICAgICAgKGUucmV0 dXJuID0gbnVsbCksDQogICAgICAgICAgICAoZS5kZXBlbmRlbmNpZXMgPSBudWxsKSwNCiAg ICAgICAgICAgIChlLm1lbW9pemVkUHJvcHMgPSBudWxsKSwNCiAgICAgICAgICAgIChlLm1l bW9pemVkU3RhdGUgPSBudWxsKSwNCiAgICAgICAgICAgIChlLnBlbmRpbmdQcm9wcyA9IG51 bGwpLA0KICAgICAgICAgICAgKGUuc3RhdGVOb2RlID0gbnVsbCksDQogICAgICAgICAgICAo ZS51cGRhdGVRdWV1ZSA9IG51bGwpOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIGxz KGUpIHsNCiAgICAgICAgICByZXR1cm4gNSA9PT0gZS50YWcgfHwgMyA9PT0gZS50YWcgfHwg NCA9PT0gZS50YWc7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gc3MoZSkgew0KICAg ICAgICAgIGU6IGZvciAoOyA7KSB7DQogICAgICAgICAgICBmb3IgKDsgbnVsbCA9PT0gZS5z aWJsaW5nOykgew0KICAgICAgICAgICAgICBpZiAobnVsbCA9PT0gZS5yZXR1cm4gfHwgbHMo ZS5yZXR1cm4pKSByZXR1cm4gbnVsbDsNCiAgICAgICAgICAgICAgZSA9IGUucmV0dXJuOw0K ICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZm9yIChlLnNpYmxpbmcucmV0dXJuID0gZS5y ZXR1cm4sIGUgPSBlLnNpYmxpbmc7IDUgIT09IGUudGFnICYmIDYgIT09IGUudGFnICYmIDE4 ICE9PSBlLnRhZzspIHsNCiAgICAgICAgICAgICAgaWYgKDIgJiBlLmZsYWdzKSBjb250aW51 ZSBlOw0KICAgICAgICAgICAgICBpZiAobnVsbCA9PT0gZS5jaGlsZCB8fCA0ID09PSBlLnRh ZykgY29udGludWUgZTsNCiAgICAgICAgICAgICAgKGUuY2hpbGQucmV0dXJuID0gZSksIChl ID0gZS5jaGlsZCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAoISgyICYgZS5m bGFncykpIHJldHVybiBlLnN0YXRlTm9kZTsNCiAgICAgICAgICB9DQogICAgICAgIH0NCiAg ICAgICAgZnVuY3Rpb24gdXMoZSwgdCwgbikgew0KICAgICAgICAgIHZhciByID0gZS50YWc7 DQogICAgICAgICAgaWYgKDUgPT09IHIgfHwgNiA9PT0gcikNCiAgICAgICAgICAgIChlID0g ZS5zdGF0ZU5vZGUpLA0KICAgICAgICAgICAgICB0DQogICAgICAgICAgICAgICAgPyA4ID09 PSBuLm5vZGVUeXBlDQogICAgICAgICAgICAgICAgICA/IG4ucGFyZW50Tm9kZS5pbnNlcnRC ZWZvcmUoZSwgdCkNCiAgICAgICAgICAgICAgICAgIDogbi5pbnNlcnRCZWZvcmUoZSwgdCkN CiAgICAgICAgICAgICAgICA6ICg4ID09PSBuLm5vZGVUeXBlID8gKHQgPSBuLnBhcmVudE5v ZGUpLmluc2VydEJlZm9yZShlLCBuKSA6ICh0ID0gbikuYXBwZW5kQ2hpbGQoZSksIChudWxs ICE9PSAobiA9IG4uX3JlYWN0Um9vdENvbnRhaW5lcikgJiYgdm9pZCAwICE9PSBuKSB8fCBu dWxsICE9PSB0Lm9uY2xpY2sgfHwgKHQub25jbGljayA9IEpyKSk7DQogICAgICAgICAgZWxz ZSBpZiAoNCAhPT0gciAmJiBudWxsICE9PSAoZSA9IGUuY2hpbGQpKSBmb3IgKHVzKGUsIHQs IG4pLCBlID0gZS5zaWJsaW5nOyBudWxsICE9PSBlOykgdXMoZSwgdCwgbiksIChlID0gZS5z aWJsaW5nKTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBjcyhlLCB0LCBuKSB7DQog ICAgICAgICAgdmFyIHIgPSBlLnRhZzsNCiAgICAgICAgICBpZiAoNSA9PT0gciB8fCA2ID09 PSByKSAoZSA9IGUuc3RhdGVOb2RlKSwgdCA/IG4uaW5zZXJ0QmVmb3JlKGUsIHQpIDogbi5h cHBlbmRDaGlsZChlKTsNCiAgICAgICAgICBlbHNlIGlmICg0ICE9PSByICYmIG51bGwgIT09 IChlID0gZS5jaGlsZCkpIGZvciAoY3MoZSwgdCwgbiksIGUgPSBlLnNpYmxpbmc7IG51bGwg IT09IGU7KSBjcyhlLCB0LCBuKSwgKGUgPSBlLnNpYmxpbmcpOw0KICAgICAgICB9DQogICAg ICAgIHZhciBkcyA9IG51bGwsDQogICAgICAgICAgZnMgPSAhMTsNCiAgICAgICAgZnVuY3Rp b24gcHMoZSwgdCwgbikgew0KICAgICAgICAgIGZvciAobiA9IG4uY2hpbGQ7IG51bGwgIT09 IG47KSBocyhlLCB0LCBuKSwgKG4gPSBuLnNpYmxpbmcpOw0KICAgICAgICB9DQogICAgICAg IGZ1bmN0aW9uIGhzKGUsIHQsIG4pIHsNCiAgICAgICAgICBpZiAoYXQgJiYgImZ1bmN0aW9u IiA9PT0gdHlwZW9mIGF0Lm9uQ29tbWl0RmliZXJVbm1vdW50KQ0KICAgICAgICAgICAgdHJ5 IHsNCiAgICAgICAgICAgICAgYXQub25Db21taXRGaWJlclVubW91bnQob3QsIG4pOw0KICAg ICAgICAgICAgfSBjYXRjaCAobCkgeyB9DQogICAgICAgICAgc3dpdGNoIChuLnRhZykgew0K ICAgICAgICAgICAgY2FzZSA1Og0KICAgICAgICAgICAgICBYbCB8fCBlcyhuLCB0KTsNCiAg ICAgICAgICAgIGNhc2UgNjoNCiAgICAgICAgICAgICAgdmFyIHIgPSBkcywNCiAgICAgICAg ICAgICAgICBvID0gZnM7DQogICAgICAgICAgICAgIChkcyA9IG51bGwpLCBwcyhlLCB0LCBu KSwgKGZzID0gbyksIG51bGwgIT09IChkcyA9IHIpICYmIChmcyA/ICgoZSA9IGRzKSwgKG4g PSBuLnN0YXRlTm9kZSksIDggPT09IGUubm9kZVR5cGUgPyBlLnBhcmVudE5vZGUucmVtb3Zl Q2hpbGQobikgOiBlLnJlbW92ZUNoaWxkKG4pKSA6IGRzLnJlbW92ZUNoaWxkKG4uc3RhdGVO b2RlKSk7DQogICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAxODoNCiAg ICAgICAgICAgICAgbnVsbCAhPT0gZHMgJiYgKGZzID8gKChlID0gZHMpLCAobiA9IG4uc3Rh dGVOb2RlKSwgOCA9PT0gZS5ub2RlVHlwZSA/IHNvKGUucGFyZW50Tm9kZSwgbikgOiAxID09 PSBlLm5vZGVUeXBlICYmIHNvKGUsIG4pLCBXdChlKSkgOiBzbyhkcywgbi5zdGF0ZU5vZGUp KTsNCiAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlIDQ6DQogICAgICAg ICAgICAgIChyID0gZHMpLCAobyA9IGZzKSwgKGRzID0gbi5zdGF0ZU5vZGUuY29udGFpbmVy SW5mbyksIChmcyA9ICEwKSwgcHMoZSwgdCwgbiksIChkcyA9IHIpLCAoZnMgPSBvKTsNCiAg ICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlIDA6DQogICAgICAgICAgICBj YXNlIDExOg0KICAgICAgICAgICAgY2FzZSAxNDoNCiAgICAgICAgICAgIGNhc2UgMTU6DQog ICAgICAgICAgICAgIGlmICghWGwgJiYgbnVsbCAhPT0gKHIgPSBuLnVwZGF0ZVF1ZXVlKSAm JiBudWxsICE9PSAociA9IHIubGFzdEVmZmVjdCkpIHsNCiAgICAgICAgICAgICAgICBvID0g ciA9IHIubmV4dDsNCiAgICAgICAgICAgICAgICBkbyB7DQogICAgICAgICAgICAgICAgICB2 YXIgYSA9IG8sDQogICAgICAgICAgICAgICAgICAgIGkgPSBhLmRlc3Ryb3k7DQogICAgICAg ICAgICAgICAgICAoYSA9IGEudGFnKSwgdm9pZCAwICE9PSBpICYmICgwICE9PSAoMiAmIGEp IHx8IDAgIT09ICg0ICYgYSkpICYmIHRzKG4sIHQsIGkpLCAobyA9IG8ubmV4dCk7DQogICAg ICAgICAgICAgICAgfSB3aGlsZSAobyAhPT0gcik7DQogICAgICAgICAgICAgIH0NCiAgICAg ICAgICAgICAgcHMoZSwgdCwgbik7DQogICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAg ICAgY2FzZSAxOg0KICAgICAgICAgICAgICBpZiAoIVhsICYmIChlcyhuLCB0KSwgImZ1bmN0 aW9uIiA9PT0gdHlwZW9mIChyID0gbi5zdGF0ZU5vZGUpLmNvbXBvbmVudFdpbGxVbm1vdW50 KSkNCiAgICAgICAgICAgICAgICB0cnkgew0KICAgICAgICAgICAgICAgICAgKHIucHJvcHMg PSBuLm1lbW9pemVkUHJvcHMpLCAoci5zdGF0ZSA9IG4ubWVtb2l6ZWRTdGF0ZSksIHIuY29t cG9uZW50V2lsbFVubW91bnQoKTsNCiAgICAgICAgICAgICAgICB9IGNhdGNoIChsKSB7DQog ICAgICAgICAgICAgICAgICBDdShuLCB0LCBsKTsNCiAgICAgICAgICAgICAgICB9DQogICAg ICAgICAgICAgIHBzKGUsIHQsIG4pOw0KICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAg ICAgIGNhc2UgMjE6DQogICAgICAgICAgICAgIHBzKGUsIHQsIG4pOw0KICAgICAgICAgICAg ICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgMjI6DQogICAgICAgICAgICAgIDEgJiBuLm1v ZGUgPyAoKFhsID0gKHIgPSBYbCkgfHwgbnVsbCAhPT0gbi5tZW1vaXplZFN0YXRlKSwgcHMo ZSwgdCwgbiksIChYbCA9IHIpKSA6IHBzKGUsIHQsIG4pOw0KICAgICAgICAgICAgICBicmVh azsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgIHBzKGUsIHQsIG4pOw0K ICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBtcyhlKSB7DQogICAg ICAgICAgdmFyIHQgPSBlLnVwZGF0ZVF1ZXVlOw0KICAgICAgICAgIGlmIChudWxsICE9PSB0 KSB7DQogICAgICAgICAgICBlLnVwZGF0ZVF1ZXVlID0gbnVsbDsNCiAgICAgICAgICAgIHZh ciBuID0gZS5zdGF0ZU5vZGU7DQogICAgICAgICAgICBudWxsID09PSBuICYmIChuID0gZS5z dGF0ZU5vZGUgPSBuZXcgWmwoKSksDQogICAgICAgICAgICAgIHQuZm9yRWFjaChmdW5jdGlv biAodCkgew0KICAgICAgICAgICAgICAgIHZhciByID0gT3UuYmluZChudWxsLCBlLCB0KTsN CiAgICAgICAgICAgICAgICBuLmhhcyh0KSB8fCAobi5hZGQodCksIHQudGhlbihyLCByKSk7 DQogICAgICAgICAgICAgIH0pOw0KICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICBm dW5jdGlvbiBncyhlLCB0KSB7DQogICAgICAgICAgdmFyIG4gPSB0LmRlbGV0aW9uczsNCiAg ICAgICAgICBpZiAobnVsbCAhPT0gbikNCiAgICAgICAgICAgIGZvciAodmFyIHIgPSAwOyBy IDwgbi5sZW5ndGg7IHIrKykgew0KICAgICAgICAgICAgICB2YXIgbyA9IG5bcl07DQogICAg ICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAgdmFyIGkgPSBlLA0KICAgICAgICAg ICAgICAgICAgbCA9IHQsDQogICAgICAgICAgICAgICAgICBzID0gbDsNCiAgICAgICAgICAg ICAgICBlOiBmb3IgKDsgbnVsbCAhPT0gczspIHsNCiAgICAgICAgICAgICAgICAgIHN3aXRj aCAocy50YWcpIHsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSA1Og0KICAgICAgICAgICAg ICAgICAgICAgIChkcyA9IHMuc3RhdGVOb2RlKSwgKGZzID0gITEpOw0KICAgICAgICAgICAg ICAgICAgICAgIGJyZWFrIGU7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgMzoNCiAgICAg ICAgICAgICAgICAgICAgY2FzZSA0Og0KICAgICAgICAgICAgICAgICAgICAgIChkcyA9IHMu c3RhdGVOb2RlLmNvbnRhaW5lckluZm8pLCAoZnMgPSAhMCk7DQogICAgICAgICAgICAgICAg ICAgICAgYnJlYWsgZTsNCiAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAg IHMgPSBzLnJldHVybjsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgaWYg KG51bGwgPT09IGRzKSB0aHJvdyBFcnJvcihhKDE2MCkpOw0KICAgICAgICAgICAgICAgIGhz KGksIGwsIG8pLCAoZHMgPSBudWxsKSwgKGZzID0gITEpOw0KICAgICAgICAgICAgICAgIHZh ciB1ID0gby5hbHRlcm5hdGU7DQogICAgICAgICAgICAgICAgbnVsbCAhPT0gdSAmJiAodS5y ZXR1cm4gPSBudWxsKSwgKG8ucmV0dXJuID0gbnVsbCk7DQogICAgICAgICAgICAgIH0gY2F0 Y2ggKGMpIHsNCiAgICAgICAgICAgICAgICBDdShvLCB0LCBjKTsNCiAgICAgICAgICAgICAg fQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgIGlmICgxMjg1NCAmIHQuc3VidHJlZUZsYWdz KSBmb3IgKHQgPSB0LmNoaWxkOyBudWxsICE9PSB0OykgdnModCwgZSksICh0ID0gdC5zaWJs aW5nKTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiB2cyhlLCB0KSB7DQogICAgICAg ICAgdmFyIG4gPSBlLmFsdGVybmF0ZSwNCiAgICAgICAgICAgIHIgPSBlLmZsYWdzOw0KICAg ICAgICAgIHN3aXRjaCAoZS50YWcpIHsNCiAgICAgICAgICAgIGNhc2UgMDoNCiAgICAgICAg ICAgIGNhc2UgMTE6DQogICAgICAgICAgICBjYXNlIDE0Og0KICAgICAgICAgICAgY2FzZSAx NToNCiAgICAgICAgICAgICAgaWYgKChncyh0LCBlKSwgeXMoZSksIDQgJiByKSkgew0KICAg ICAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAgICBycygzLCBlLCBlLnJldHVy biksIG9zKDMsIGUpOw0KICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGcpIHsNCiAgICAgICAg ICAgICAgICAgIEN1KGUsIGUucmV0dXJuLCBnKTsNCiAgICAgICAgICAgICAgICB9DQogICAg ICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICAgIHJzKDUsIGUsIGUucmV0dXJu KTsNCiAgICAgICAgICAgICAgICB9IGNhdGNoIChnKSB7DQogICAgICAgICAgICAgICAgICBD dShlLCBlLnJldHVybiwgZyk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICB9 DQogICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAxOg0KICAgICAgICAg ICAgICBncyh0LCBlKSwgeXMoZSksIDUxMiAmIHIgJiYgbnVsbCAhPT0gbiAmJiBlcyhuLCBu LnJldHVybik7DQogICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSA1Og0K ICAgICAgICAgICAgICBpZiAoKGdzKHQsIGUpLCB5cyhlKSwgNTEyICYgciAmJiBudWxsICE9 PSBuICYmIGVzKG4sIG4ucmV0dXJuKSwgMzIgJiBlLmZsYWdzKSkgew0KICAgICAgICAgICAg ICAgIHZhciBvID0gZS5zdGF0ZU5vZGU7DQogICAgICAgICAgICAgICAgdHJ5IHsNCiAgICAg ICAgICAgICAgICAgIGZlKG8sICIiKTsNCiAgICAgICAgICAgICAgICB9IGNhdGNoIChnKSB7 DQogICAgICAgICAgICAgICAgICBDdShlLCBlLnJldHVybiwgZyk7DQogICAgICAgICAgICAg ICAgfQ0KICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgIGlmICg0ICYgciAmJiBudWxs ICE9IChvID0gZS5zdGF0ZU5vZGUpKSB7DQogICAgICAgICAgICAgICAgdmFyIGkgPSBlLm1l bW9pemVkUHJvcHMsDQogICAgICAgICAgICAgICAgICBsID0gbnVsbCAhPT0gbiA/IG4ubWVt b2l6ZWRQcm9wcyA6IGksDQogICAgICAgICAgICAgICAgICBzID0gZS50eXBlLA0KICAgICAg ICAgICAgICAgICAgdSA9IGUudXBkYXRlUXVldWU7DQogICAgICAgICAgICAgICAgaWYgKCgo ZS51cGRhdGVRdWV1ZSA9IG51bGwpLCBudWxsICE9PSB1KSkNCiAgICAgICAgICAgICAgICAg IHRyeSB7DQogICAgICAgICAgICAgICAgICAgICJpbnB1dCIgPT09IHMgJiYgInJhZGlvIiA9 PT0gaS50eXBlICYmIG51bGwgIT0gaS5uYW1lICYmIFgobywgaSksIGJlKHMsIGwpOw0KICAg ICAgICAgICAgICAgICAgICB2YXIgYyA9IGJlKHMsIGkpOw0KICAgICAgICAgICAgICAgICAg ICBmb3IgKGwgPSAwOyBsIDwgdS5sZW5ndGg7IGwgKz0gMikgew0KICAgICAgICAgICAgICAg ICAgICAgIHZhciBkID0gdVtsXSwNCiAgICAgICAgICAgICAgICAgICAgICAgIGYgPSB1W2wg KyAxXTsNCiAgICAgICAgICAgICAgICAgICAgICAic3R5bGUiID09PSBkID8gZ2UobywgZikg OiAiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwiID09PSBkID8gZGUobywgZikgOiAiY2hpbGRy ZW4iID09PSBkID8gZmUobywgZikgOiBiKG8sIGQsIGYsIGMpOw0KICAgICAgICAgICAgICAg ICAgICB9DQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAocykgew0KICAgICAgICAgICAg ICAgICAgICAgIGNhc2UgImlucHV0IjoNCiAgICAgICAgICAgICAgICAgICAgICAgIFoobywg aSk7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAg ICAgICBjYXNlICJ0ZXh0YXJlYSI6DQogICAgICAgICAgICAgICAgICAgICAgICBhZShvLCBp KTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAg ICAgIGNhc2UgInNlbGVjdCI6DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgcCA9IG8u X3dyYXBwZXJTdGF0ZS53YXNNdWx0aXBsZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIG8u X3dyYXBwZXJTdGF0ZS53YXNNdWx0aXBsZSA9ICEhaS5tdWx0aXBsZTsNCiAgICAgICAgICAg ICAgICAgICAgICAgIHZhciBoID0gaS52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAg IG51bGwgIT0gaCA/IG5lKG8sICEhaS5tdWx0aXBsZSwgaCwgITEpIDogcCAhPT0gISFpLm11 bHRpcGxlICYmIChudWxsICE9IGkuZGVmYXVsdFZhbHVlID8gbmUobywgISFpLm11bHRpcGxl LCBpLmRlZmF1bHRWYWx1ZSwgITApIDogbmUobywgISFpLm11bHRpcGxlLCBpLm11bHRpcGxl ID8gW10gOiAiIiwgITEpKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAg ICAgICAgICBvW2hvXSA9IGk7DQogICAgICAgICAgICAgICAgICB9IGNhdGNoIChnKSB7DQog ICAgICAgICAgICAgICAgICAgIEN1KGUsIGUucmV0dXJuLCBnKTsNCiAgICAgICAgICAgICAg ICAgIH0NCiAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAg ICAgIGNhc2UgNjoNCiAgICAgICAgICAgICAgaWYgKChncyh0LCBlKSwgeXMoZSksIDQgJiBy KSkgew0KICAgICAgICAgICAgICAgIGlmIChudWxsID09PSBlLnN0YXRlTm9kZSkgdGhyb3cg RXJyb3IoYSgxNjIpKTsNCiAgICAgICAgICAgICAgICAobyA9IGUuc3RhdGVOb2RlKSwgKGkg PSBlLm1lbW9pemVkUHJvcHMpOw0KICAgICAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAg ICAgICAgICBvLm5vZGVWYWx1ZSA9IGk7DQogICAgICAgICAgICAgICAgfSBjYXRjaCAoZykg ew0KICAgICAgICAgICAgICAgICAgQ3UoZSwgZS5yZXR1cm4sIGcpOw0KICAgICAgICAgICAg ICAgIH0NCiAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAg ICAgIGNhc2UgMzoNCiAgICAgICAgICAgICAgaWYgKChncyh0LCBlKSwgeXMoZSksIDQgJiBy ICYmIG51bGwgIT09IG4gJiYgbi5tZW1vaXplZFN0YXRlLmlzRGVoeWRyYXRlZCkpDQogICAg ICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICAgIFd0KHQuY29udGFpbmVySW5m byk7DQogICAgICAgICAgICAgICAgfSBjYXRjaCAoZykgew0KICAgICAgICAgICAgICAgICAg Q3UoZSwgZS5yZXR1cm4sIGcpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAg YnJlYWs7DQogICAgICAgICAgICBjYXNlIDQ6DQogICAgICAgICAgICBkZWZhdWx0Og0KICAg ICAgICAgICAgICBncyh0LCBlKSwgeXMoZSk7DQogICAgICAgICAgICAgIGJyZWFrOw0KICAg ICAgICAgICAgY2FzZSAxMzoNCiAgICAgICAgICAgICAgZ3ModCwgZSksDQogICAgICAgICAg ICAgICAgeXMoZSksDQogICAgICAgICAgICAgICAgODE5MiAmIChvID0gZS5jaGlsZCkuZmxh Z3MgJiYgKChpID0gbnVsbCAhPT0gby5tZW1vaXplZFN0YXRlKSwgKG8uc3RhdGVOb2RlLmlz SGlkZGVuID0gaSksICFpIHx8IChudWxsICE9PSBvLmFsdGVybmF0ZSAmJiBudWxsICE9PSBv LmFsdGVybmF0ZS5tZW1vaXplZFN0YXRlKSB8fCAoV3MgPSBYZSgpKSksDQogICAgICAgICAg ICAgICAgNCAmIHIgJiYgbXMoZSk7DQogICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAg ICAgY2FzZSAyMjoNCiAgICAgICAgICAgICAgaWYgKCgoZCA9IG51bGwgIT09IG4gJiYgbnVs bCAhPT0gbi5tZW1vaXplZFN0YXRlKSwgMSAmIGUubW9kZSA/ICgoWGwgPSAoYyA9IFhsKSB8 fCBkKSwgZ3ModCwgZSksIChYbCA9IGMpKSA6IGdzKHQsIGUpLCB5cyhlKSwgODE5MiAmIHIp KSB7DQogICAgICAgICAgICAgICAgaWYgKCgoYyA9IG51bGwgIT09IGUubWVtb2l6ZWRTdGF0 ZSksIChlLnN0YXRlTm9kZS5pc0hpZGRlbiA9IGMpICYmICFkICYmIDAgIT09ICgxICYgZS5t b2RlKSkpDQogICAgICAgICAgICAgICAgICBmb3IgKEpsID0gZSwgZCA9IGUuY2hpbGQ7IG51 bGwgIT09IGQ7KSB7DQogICAgICAgICAgICAgICAgICAgIGZvciAoZiA9IEpsID0gZDsgbnVs bCAhPT0gSmw7KSB7DQogICAgICAgICAgICAgICAgICAgICAgc3dpdGNoICgoKGggPSAocCA9 IEpsKS5jaGlsZCksIHAudGFnKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAw Og0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAxMToNCiAgICAgICAgICAgICAgICAg ICAgICAgIGNhc2UgMTQ6DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDE1Og0KICAg ICAgICAgICAgICAgICAgICAgICAgICBycyg0LCBwLCBwLnJldHVybik7DQogICAgICAgICAg ICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAx Og0KICAgICAgICAgICAgICAgICAgICAgICAgICBlcyhwLCBwLnJldHVybik7DQogICAgICAg ICAgICAgICAgICAgICAgICAgIHZhciBtID0gcC5zdGF0ZU5vZGU7DQogICAgICAgICAgICAg ICAgICAgICAgICAgIGlmICgiZnVuY3Rpb24iID09PSB0eXBlb2YgbS5jb21wb25lbnRXaWxs VW5tb3VudCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyID0gcCksIChuID0g cC5yZXR1cm4pOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7DQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAodCA9IHIpLCAobS5wcm9wcyA9IHQubWVtb2l6ZWRQ cm9wcyksIChtLnN0YXRlID0gdC5tZW1vaXplZFN0YXRlKSwgbS5jb21wb25lbnRXaWxsVW5t b3VudCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGcpIHsNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEN1KHIsIG4sIGcpOw0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAg ICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNh c2UgNToNCiAgICAgICAgICAgICAgICAgICAgICAgICAgZXMocCwgcC5yZXR1cm4pOw0KICAg ICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAg IGNhc2UgMjI6DQogICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChudWxsICE9PSBwLm1l bW9pemVkU3RhdGUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTcyhmKTsNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAg ICAgICBudWxsICE9PSBoID8gKChoLnJldHVybiA9IHApLCAoSmwgPSBoKSkgOiBTcyhmKTsN CiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBkID0gZC5zaWJs aW5nOw0KICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGU6IGZvciAoZCA9 IG51bGwsIGYgPSBlOyA7KSB7DQogICAgICAgICAgICAgICAgICBpZiAoNSA9PT0gZi50YWcp IHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKG51bGwgPT09IGQpIHsNCiAgICAgICAgICAg ICAgICAgICAgICBkID0gZjsNCiAgICAgICAgICAgICAgICAgICAgICB0cnkgew0KICAgICAg ICAgICAgICAgICAgICAgICAgKG8gPSBmLnN0YXRlTm9kZSksDQogICAgICAgICAgICAgICAg ICAgICAgICAgIGMNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICJmdW5jdGlvbiIg PT09IHR5cGVvZiAoaSA9IG8uc3R5bGUpLnNldFByb3BlcnR5DQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICA/IGkuc2V0UHJvcGVydHkoImRpc3BsYXkiLCAibm9uZSIsICJpbXBv cnRhbnQiKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAoaS5kaXNwbGF5ID0g Im5vbmUiKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogKChzID0gZi5zdGF0ZU5v ZGUpLCAobCA9IHZvaWQgMCAhPT0gKHUgPSBmLm1lbW9pemVkUHJvcHMuc3R5bGUpICYmIG51 bGwgIT09IHUgJiYgdS5oYXNPd25Qcm9wZXJ0eSgiZGlzcGxheSIpID8gdS5kaXNwbGF5IDog bnVsbCksIChzLnN0eWxlLmRpc3BsYXkgPSBtZSgiZGlzcGxheSIsIGwpKSk7DQogICAgICAg ICAgICAgICAgICAgICAgfSBjYXRjaCAoZykgew0KICAgICAgICAgICAgICAgICAgICAgICAg Q3UoZSwgZS5yZXR1cm4sIGcpOw0KICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAg ICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICg2ID09PSBmLnRh Zykgew0KICAgICAgICAgICAgICAgICAgICBpZiAobnVsbCA9PT0gZCkNCiAgICAgICAgICAg ICAgICAgICAgICB0cnkgew0KICAgICAgICAgICAgICAgICAgICAgICAgZi5zdGF0ZU5vZGUu bm9kZVZhbHVlID0gYyA/ICIiIDogZi5tZW1vaXplZFByb3BzOw0KICAgICAgICAgICAgICAg ICAgICAgIH0gY2F0Y2ggKGcpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIEN1KGUsIGUu cmV0dXJuLCBnKTsNCiAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAg ICB9IGVsc2UgaWYgKCgoMjIgIT09IGYudGFnICYmIDIzICE9PSBmLnRhZykgfHwgbnVsbCA9 PT0gZi5tZW1vaXplZFN0YXRlIHx8IGYgPT09IGUpICYmIG51bGwgIT09IGYuY2hpbGQpIHsN CiAgICAgICAgICAgICAgICAgICAgKGYuY2hpbGQucmV0dXJuID0gZiksIChmID0gZi5jaGls ZCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOw0KICAgICAgICAgICAgICAgICAg fQ0KICAgICAgICAgICAgICAgICAgaWYgKGYgPT09IGUpIGJyZWFrIGU7DQogICAgICAgICAg ICAgICAgICBmb3IgKDsgbnVsbCA9PT0gZi5zaWJsaW5nOykgew0KICAgICAgICAgICAgICAg ICAgICBpZiAobnVsbCA9PT0gZi5yZXR1cm4gfHwgZi5yZXR1cm4gPT09IGUpIGJyZWFrIGU7 DQogICAgICAgICAgICAgICAgICAgIGQgPT09IGYgJiYgKGQgPSBudWxsKSwgKGYgPSBmLnJl dHVybik7DQogICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICBkID09PSBm ICYmIChkID0gbnVsbCksIChmLnNpYmxpbmcucmV0dXJuID0gZi5yZXR1cm4pLCAoZiA9IGYu c2libGluZyk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICB9DQogICAgICAg ICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAxOToNCiAgICAgICAgICAgICAgZ3Mo dCwgZSksIHlzKGUpLCA0ICYgciAmJiBtcyhlKTsNCiAgICAgICAgICAgIGNhc2UgMjE6DQog ICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIHlzKGUpIHsNCiAgICAg ICAgICB2YXIgdCA9IGUuZmxhZ3M7DQogICAgICAgICAgaWYgKDIgJiB0KSB7DQogICAgICAg ICAgICB0cnkgew0KICAgICAgICAgICAgICBlOiB7DQogICAgICAgICAgICAgICAgZm9yICh2 YXIgbiA9IGUucmV0dXJuOyBudWxsICE9PSBuOykgew0KICAgICAgICAgICAgICAgICAgaWYg KGxzKG4pKSB7DQogICAgICAgICAgICAgICAgICAgIHZhciByID0gbjsNCiAgICAgICAgICAg ICAgICAgICAgYnJlYWsgZTsNCiAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAg ICAgIG4gPSBuLnJldHVybjsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAg dGhyb3cgRXJyb3IoYSgxNjApKTsNCiAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICBz d2l0Y2ggKHIudGFnKSB7DQogICAgICAgICAgICAgICAgY2FzZSA1Og0KICAgICAgICAgICAg ICAgICAgdmFyIG8gPSByLnN0YXRlTm9kZTsNCiAgICAgICAgICAgICAgICAgIDMyICYgci5m bGFncyAmJiAoZmUobywgIiIpLCAoci5mbGFncyAmPSAtMzMpKSwgY3MoZSwgc3MoZSksIG8p Ow0KICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAzOg0K ICAgICAgICAgICAgICAgIGNhc2UgNDoNCiAgICAgICAgICAgICAgICAgIHZhciBpID0gci5z dGF0ZU5vZGUuY29udGFpbmVySW5mbzsNCiAgICAgICAgICAgICAgICAgIHVzKGUsIHNzKGUp LCBpKTsNCiAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGRlZmF1 bHQ6DQogICAgICAgICAgICAgICAgICB0aHJvdyBFcnJvcihhKDE2MSkpOw0KICAgICAgICAg ICAgICB9DQogICAgICAgICAgICB9IGNhdGNoIChsKSB7DQogICAgICAgICAgICAgIEN1KGUs IGUucmV0dXJuLCBsKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGUuZmxhZ3MgJj0g LTM7DQogICAgICAgICAgfQ0KICAgICAgICAgIDQwOTYgJiB0ICYmIChlLmZsYWdzICY9IC00 MDk3KTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBicyhlLCB0LCBuKSB7DQogICAg ICAgICAgKEpsID0gZSksIHdzKGUsIHQsIG4pOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0 aW9uIHdzKGUsIHQsIG4pIHsNCiAgICAgICAgICBmb3IgKHZhciByID0gMCAhPT0gKDEgJiBl Lm1vZGUpOyBudWxsICE9PSBKbDspIHsNCiAgICAgICAgICAgIHZhciBvID0gSmwsDQogICAg ICAgICAgICAgIGEgPSBvLmNoaWxkOw0KICAgICAgICAgICAgaWYgKDIyID09PSBvLnRhZyAm JiByKSB7DQogICAgICAgICAgICAgIHZhciBpID0gbnVsbCAhPT0gby5tZW1vaXplZFN0YXRl IHx8IFlsOw0KICAgICAgICAgICAgICBpZiAoIWkpIHsNCiAgICAgICAgICAgICAgICB2YXIg bCA9IG8uYWx0ZXJuYXRlLA0KICAgICAgICAgICAgICAgICAgcyA9IChudWxsICE9PSBsICYm IG51bGwgIT09IGwubWVtb2l6ZWRTdGF0ZSkgfHwgWGw7DQogICAgICAgICAgICAgICAgbCA9 IFlsOw0KICAgICAgICAgICAgICAgIHZhciB1ID0gWGw7DQogICAgICAgICAgICAgICAgaWYg KCgoWWwgPSBpKSwgKFhsID0gcykgJiYgIXUpKSBmb3IgKEpsID0gbzsgbnVsbCAhPT0gSmw7 KSAocyA9IChpID0gSmwpLmNoaWxkKSwgMjIgPT09IGkudGFnICYmIG51bGwgIT09IGkubWVt b2l6ZWRTdGF0ZSA/IGtzKG8pIDogbnVsbCAhPT0gcyA/ICgocy5yZXR1cm4gPSBpKSwgKEps ID0gcykpIDoga3Mobyk7DQogICAgICAgICAgICAgICAgZm9yICg7IG51bGwgIT09IGE7KSAo SmwgPSBhKSwgd3MoYSwgdCwgbiksIChhID0gYS5zaWJsaW5nKTsNCiAgICAgICAgICAgICAg ICAoSmwgPSBvKSwgKFlsID0gbCksIChYbCA9IHUpOw0KICAgICAgICAgICAgICB9DQogICAg ICAgICAgICAgIHhzKGUpOw0KICAgICAgICAgICAgfSBlbHNlIDAgIT09ICg4NzcyICYgby5z dWJ0cmVlRmxhZ3MpICYmIG51bGwgIT09IGEgPyAoKGEucmV0dXJuID0gbyksIChKbCA9IGEp KSA6IHhzKGUpOw0KICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiB4 cyhlKSB7DQogICAgICAgICAgZm9yICg7IG51bGwgIT09IEpsOykgew0KICAgICAgICAgICAg dmFyIHQgPSBKbDsNCiAgICAgICAgICAgIGlmICgwICE9PSAoODc3MiAmIHQuZmxhZ3MpKSB7 DQogICAgICAgICAgICAgIHZhciBuID0gdC5hbHRlcm5hdGU7DQogICAgICAgICAgICAgIHRy eSB7DQogICAgICAgICAgICAgICAgaWYgKDAgIT09ICg4NzcyICYgdC5mbGFncykpDQogICAg ICAgICAgICAgICAgICBzd2l0Y2ggKHQudGFnKSB7DQogICAgICAgICAgICAgICAgICAgIGNh c2UgMDoNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAxMToNCiAgICAgICAgICAgICAgICAg ICAgY2FzZSAxNToNCiAgICAgICAgICAgICAgICAgICAgICBYbCB8fCBvcyg1LCB0KTsNCiAg ICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAx Og0KICAgICAgICAgICAgICAgICAgICAgIHZhciByID0gdC5zdGF0ZU5vZGU7DQogICAgICAg ICAgICAgICAgICAgICAgaWYgKDQgJiB0LmZsYWdzICYmICFYbCkNCiAgICAgICAgICAgICAg ICAgICAgICAgIGlmIChudWxsID09PSBuKSByLmNvbXBvbmVudERpZE1vdW50KCk7DQogICAg ICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAg dmFyIG8gPSB0LmVsZW1lbnRUeXBlID09PSB0LnR5cGUgPyBuLm1lbW9pemVkUHJvcHMgOiB2 YSh0LnR5cGUsIG4ubWVtb2l6ZWRQcm9wcyk7DQogICAgICAgICAgICAgICAgICAgICAgICAg IHIuY29tcG9uZW50RGlkVXBkYXRlKG8sIG4ubWVtb2l6ZWRTdGF0ZSwgci5fX3JlYWN0SW50 ZXJuYWxTbmFwc2hvdEJlZm9yZVVwZGF0ZSk7DQogICAgICAgICAgICAgICAgICAgICAgICB9 DQogICAgICAgICAgICAgICAgICAgICAgdmFyIGkgPSB0LnVwZGF0ZVF1ZXVlOw0KICAgICAg ICAgICAgICAgICAgICAgIG51bGwgIT09IGkgJiYgQmEodCwgaSwgcik7DQogICAgICAgICAg ICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgMzoNCiAgICAg ICAgICAgICAgICAgICAgICB2YXIgbCA9IHQudXBkYXRlUXVldWU7DQogICAgICAgICAgICAg ICAgICAgICAgaWYgKG51bGwgIT09IGwpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlm ICgoKG4gPSBudWxsKSwgbnVsbCAhPT0gdC5jaGlsZCkpDQogICAgICAgICAgICAgICAgICAg ICAgICAgIHN3aXRjaCAodC5jaGlsZC50YWcpIHsNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjYXNlIDU6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAxOg0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbiA9IHQuY2hpbGQuc3RhdGVOb2RlOw0KICAg ICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBCYSh0 LCBsLCBuKTsNCiAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAg ICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgNToNCiAgICAgICAgICAgICAg ICAgICAgICB2YXIgcyA9IHQuc3RhdGVOb2RlOw0KICAgICAgICAgICAgICAgICAgICAgIGlm IChudWxsID09PSBuICYmIDQgJiB0LmZsYWdzKSB7DQogICAgICAgICAgICAgICAgICAgICAg ICBuID0gczsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB1ID0gdC5tZW1vaXplZFBy b3BzOw0KICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoICh0LnR5cGUpIHsNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgY2FzZSAiYnV0dG9uIjoNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgY2FzZSAiaW5wdXQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNl ICJzZWxlY3QiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJ0ZXh0YXJlYSI6 DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdS5hdXRvRm9jdXMgJiYgbi5mb2N1cygp Ow0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAg ICAgICAgICAgICBjYXNlICJpbWciOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUu c3JjICYmIChuLnNyYyA9IHUuc3JjKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAg ICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQog ICAgICAgICAgICAgICAgICAgIGNhc2UgNjoNCiAgICAgICAgICAgICAgICAgICAgY2FzZSA0 Og0KICAgICAgICAgICAgICAgICAgICBjYXNlIDEyOg0KICAgICAgICAgICAgICAgICAgICBj YXNlIDE5Og0KICAgICAgICAgICAgICAgICAgICBjYXNlIDE3Og0KICAgICAgICAgICAgICAg ICAgICBjYXNlIDIxOg0KICAgICAgICAgICAgICAgICAgICBjYXNlIDIyOg0KICAgICAgICAg ICAgICAgICAgICBjYXNlIDIzOg0KICAgICAgICAgICAgICAgICAgICBjYXNlIDI1Og0KICAg ICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBjYXNlIDEz Og0KICAgICAgICAgICAgICAgICAgICAgIGlmIChudWxsID09PSB0Lm1lbW9pemVkU3RhdGUp IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjID0gdC5hbHRlcm5hdGU7DQogICAg ICAgICAgICAgICAgICAgICAgICBpZiAobnVsbCAhPT0gYykgew0KICAgICAgICAgICAgICAg ICAgICAgICAgICB2YXIgZCA9IGMubWVtb2l6ZWRTdGF0ZTsNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgaWYgKG51bGwgIT09IGQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB2YXIgZiA9IGQuZGVoeWRyYXRlZDsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBu dWxsICE9PSBmICYmIFd0KGYpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAg ICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAg ICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBkZWZhdWx0Og0K ICAgICAgICAgICAgICAgICAgICAgIHRocm93IEVycm9yKGEoMTYzKSk7DQogICAgICAgICAg ICAgICAgICB9DQogICAgICAgICAgICAgICAgWGwgfHwgKDUxMiAmIHQuZmxhZ3MgJiYgYXMo dCkpOw0KICAgICAgICAgICAgICB9IGNhdGNoIChwKSB7DQogICAgICAgICAgICAgICAgQ3Uo dCwgdC5yZXR1cm4sIHApOw0KICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAg ICAgICAgICBpZiAodCA9PT0gZSkgew0KICAgICAgICAgICAgICBKbCA9IG51bGw7DQogICAg ICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKG51bGwg IT09IChuID0gdC5zaWJsaW5nKSkgew0KICAgICAgICAgICAgICAobi5yZXR1cm4gPSB0LnJl dHVybiksIChKbCA9IG4pOw0KICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0N CiAgICAgICAgICAgIEpsID0gdC5yZXR1cm47DQogICAgICAgICAgfQ0KICAgICAgICB9DQog ICAgICAgIGZ1bmN0aW9uIFNzKGUpIHsNCiAgICAgICAgICBmb3IgKDsgbnVsbCAhPT0gSmw7 KSB7DQogICAgICAgICAgICB2YXIgdCA9IEpsOw0KICAgICAgICAgICAgaWYgKHQgPT09IGUp IHsNCiAgICAgICAgICAgICAgSmwgPSBudWxsOw0KICAgICAgICAgICAgICBicmVhazsNCiAg ICAgICAgICAgIH0NCiAgICAgICAgICAgIHZhciBuID0gdC5zaWJsaW5nOw0KICAgICAgICAg ICAgaWYgKG51bGwgIT09IG4pIHsNCiAgICAgICAgICAgICAgKG4ucmV0dXJuID0gdC5yZXR1 cm4pLCAoSmwgPSBuKTsNCiAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQog ICAgICAgICAgICBKbCA9IHQucmV0dXJuOw0KICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAg ICAgICBmdW5jdGlvbiBrcyhlKSB7DQogICAgICAgICAgZm9yICg7IG51bGwgIT09IEpsOykg ew0KICAgICAgICAgICAgdmFyIHQgPSBKbDsNCiAgICAgICAgICAgIHRyeSB7DQogICAgICAg ICAgICAgIHN3aXRjaCAodC50YWcpIHsNCiAgICAgICAgICAgICAgICBjYXNlIDA6DQogICAg ICAgICAgICAgICAgY2FzZSAxMToNCiAgICAgICAgICAgICAgICBjYXNlIDE1Og0KICAgICAg ICAgICAgICAgICAgdmFyIG4gPSB0LnJldHVybjsNCiAgICAgICAgICAgICAgICAgIHRyeSB7 DQogICAgICAgICAgICAgICAgICAgIG9zKDQsIHQpOw0KICAgICAgICAgICAgICAgICAgfSBj YXRjaCAocykgew0KICAgICAgICAgICAgICAgICAgICBDdSh0LCBuLCBzKTsNCiAgICAgICAg ICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAg IGNhc2UgMToNCiAgICAgICAgICAgICAgICAgIHZhciByID0gdC5zdGF0ZU5vZGU7DQogICAg ICAgICAgICAgICAgICBpZiAoImZ1bmN0aW9uIiA9PT0gdHlwZW9mIHIuY29tcG9uZW50RGlk TW91bnQpIHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIG8gPSB0LnJldHVybjsNCiAgICAg ICAgICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICAgICAgICByLmNvbXBvbmVu dERpZE1vdW50KCk7DQogICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKHMpIHsNCiAgICAg ICAgICAgICAgICAgICAgICBDdSh0LCBvLCBzKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0K ICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgdmFyIGEgPSB0LnJldHVy bjsNCiAgICAgICAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAgICAgIGFzKHQp Ow0KICAgICAgICAgICAgICAgICAgfSBjYXRjaCAocykgew0KICAgICAgICAgICAgICAgICAg ICBDdSh0LCBhLCBzKTsNCiAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAg IGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgNToNCiAgICAgICAgICAgICAgICAgIHZh ciBpID0gdC5yZXR1cm47DQogICAgICAgICAgICAgICAgICB0cnkgew0KICAgICAgICAgICAg ICAgICAgICBhcyh0KTsNCiAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKHMpIHsNCiAgICAg ICAgICAgICAgICAgICAgQ3UodCwgaSwgcyk7DQogICAgICAgICAgICAgICAgICB9DQogICAg ICAgICAgICAgIH0NCiAgICAgICAgICAgIH0gY2F0Y2ggKHMpIHsNCiAgICAgICAgICAgICAg Q3UodCwgdC5yZXR1cm4sIHMpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHQg PT09IGUpIHsNCiAgICAgICAgICAgICAgSmwgPSBudWxsOw0KICAgICAgICAgICAgICBicmVh azsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHZhciBsID0gdC5zaWJsaW5nOw0KICAg ICAgICAgICAgaWYgKG51bGwgIT09IGwpIHsNCiAgICAgICAgICAgICAgKGwucmV0dXJuID0g dC5yZXR1cm4pLCAoSmwgPSBsKTsNCiAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAg ICB9DQogICAgICAgICAgICBKbCA9IHQucmV0dXJuOw0KICAgICAgICAgIH0NCiAgICAgICAg fQ0KICAgICAgICB2YXIgRXMsDQogICAgICAgICAgQ3MgPSBNYXRoLmNlaWwsDQogICAgICAg ICAgUnMgPSB3LlJlYWN0Q3VycmVudERpc3BhdGNoZXIsDQogICAgICAgICAgX3MgPSB3LlJl YWN0Q3VycmVudE93bmVyLA0KICAgICAgICAgIFBzID0gdy5SZWFjdEN1cnJlbnRCYXRjaENv bmZpZywNCiAgICAgICAgICBPcyA9IDAsDQogICAgICAgICAgTnMgPSBudWxsLA0KICAgICAg ICAgIFRzID0gbnVsbCwNCiAgICAgICAgICBBcyA9IDAsDQogICAgICAgICAgTXMgPSAwLA0K ICAgICAgICAgIHpzID0gQ28oMCksDQogICAgICAgICAganMgPSAwLA0KICAgICAgICAgIElz ID0gbnVsbCwNCiAgICAgICAgICBMcyA9IDAsDQogICAgICAgICAgRnMgPSAwLA0KICAgICAg ICAgIEJzID0gMCwNCiAgICAgICAgICBEcyA9IG51bGwsDQogICAgICAgICAgVXMgPSBudWxs LA0KICAgICAgICAgIFdzID0gMCwNCiAgICAgICAgICBWcyA9IDEgLyAwLA0KICAgICAgICAg IEhzID0gbnVsbCwNCiAgICAgICAgICBxcyA9ICExLA0KICAgICAgICAgICRzID0gbnVsbCwN CiAgICAgICAgICBLcyA9IG51bGwsDQogICAgICAgICAgUXMgPSAhMSwNCiAgICAgICAgICBH cyA9IG51bGwsDQogICAgICAgICAgWXMgPSAwLA0KICAgICAgICAgIFhzID0gMCwNCiAgICAg ICAgICBacyA9IG51bGwsDQogICAgICAgICAgSnMgPSAtMSwNCiAgICAgICAgICBldSA9IDA7 DQogICAgICAgIGZ1bmN0aW9uIHR1KCkgew0KICAgICAgICAgIHJldHVybiAwICE9PSAoNiAm IE9zKSA/IFhlKCkgOiAtMSAhPT0gSnMgPyBKcyA6IChKcyA9IFhlKCkpOw0KICAgICAgICB9 DQogICAgICAgIGZ1bmN0aW9uIG51KGUpIHsNCiAgICAgICAgICByZXR1cm4gMCA9PT0gKDEg JiBlLm1vZGUpID8gMSA6IDAgIT09ICgyICYgT3MpICYmIDAgIT09IEFzID8gQXMgJiAtQXMg OiBudWxsICE9PSBnYS50cmFuc2l0aW9uID8gKDAgPT09IGV1ICYmIChldSA9IG10KCkpLCBl dSkgOiAwICE9PSAoZSA9IGJ0KSA/IGUgOiAoZSA9IHZvaWQgMCA9PT0gKGUgPSB3aW5kb3cu ZXZlbnQpID8gMTYgOiBZdChlLnR5cGUpKTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlv biBydShlLCB0LCBuLCByKSB7DQogICAgICAgICAgaWYgKDUwIDwgWHMpIHRocm93ICgoWHMg PSAwKSwgKFpzID0gbnVsbCksIEVycm9yKGEoMTg1KSkpOw0KICAgICAgICAgIHZ0KGUsIG4s IHIpLCAoMCAhPT0gKDIgJiBPcykgJiYgZSA9PT0gTnMpIHx8IChlID09PSBOcyAmJiAoMCA9 PT0gKDIgJiBPcykgJiYgKEZzIHw9IG4pLCA0ID09PSBqcyAmJiBzdShlLCBBcykpLCBvdShl LCByKSwgMSA9PT0gbiAmJiAwID09PSBPcyAmJiAwID09PSAoMSAmIHQubW9kZSkgJiYgKChW cyA9IFhlKCkgKyA1MDApLCBEbyAmJiBWbygpKSk7DQogICAgICAgIH0NCiAgICAgICAgZnVu Y3Rpb24gb3UoZSwgdCkgew0KICAgICAgICAgIHZhciBuID0gZS5jYWxsYmFja05vZGU7DQog ICAgICAgICAgIShmdW5jdGlvbiAoZSwgdCkgew0KICAgICAgICAgICAgZm9yICh2YXIgbiA9 IGUuc3VzcGVuZGVkTGFuZXMsIHIgPSBlLnBpbmdlZExhbmVzLCBvID0gZS5leHBpcmF0aW9u VGltZXMsIGEgPSBlLnBlbmRpbmdMYW5lczsgMCA8IGE7KSB7DQogICAgICAgICAgICAgIHZh ciBpID0gMzEgLSBpdChhKSwNCiAgICAgICAgICAgICAgICBsID0gMSA8PCBpLA0KICAgICAg ICAgICAgICAgIHMgPSBvW2ldOw0KICAgICAgICAgICAgICAtMSA9PT0gcyA/ICgwICE9PSAo bCAmIG4pICYmIDAgPT09IChsICYgcikpIHx8IChvW2ldID0gcHQobCwgdCkpIDogcyA8PSB0 ICYmIChlLmV4cGlyZWRMYW5lcyB8PSBsKSwgKGEgJj0gfmwpOw0KICAgICAgICAgICAgfQ0K ICAgICAgICAgIH0pKGUsIHQpOw0KICAgICAgICAgIHZhciByID0gZnQoZSwgZSA9PT0gTnMg PyBBcyA6IDApOw0KICAgICAgICAgIGlmICgwID09PSByKSBudWxsICE9PSBuICYmIFFlKG4p LCAoZS5jYWxsYmFja05vZGUgPSBudWxsKSwgKGUuY2FsbGJhY2tQcmlvcml0eSA9IDApOw0K ICAgICAgICAgIGVsc2UgaWYgKCgodCA9IHIgJiAtciksIGUuY2FsbGJhY2tQcmlvcml0eSAh PT0gdCkpIHsNCiAgICAgICAgICAgIGlmICgobnVsbCAhPSBuICYmIFFlKG4pLCAxID09PSB0 KSkNCiAgICAgICAgICAgICAgMCA9PT0gZS50YWcNCiAgICAgICAgICAgICAgICA/IChmdW5j dGlvbiAoZSkgew0KICAgICAgICAgICAgICAgICAgKERvID0gITApLCBXbyhlKTsNCiAgICAg ICAgICAgICAgICB9KSh1dS5iaW5kKG51bGwsIGUpKQ0KICAgICAgICAgICAgICAgIDogV28o dXUuYmluZChudWxsLCBlKSksDQogICAgICAgICAgICAgICAgaW8oZnVuY3Rpb24gKCkgew0K ICAgICAgICAgICAgICAgICAgMCA9PT0gKDYgJiBPcykgJiYgVm8oKTsNCiAgICAgICAgICAg ICAgICB9KSwNCiAgICAgICAgICAgICAgICAobiA9IG51bGwpOw0KICAgICAgICAgICAgZWxz ZSB7DQogICAgICAgICAgICAgIHN3aXRjaCAod3QocikpIHsNCiAgICAgICAgICAgICAgICBj YXNlIDE6DQogICAgICAgICAgICAgICAgICBuID0gSmU7DQogICAgICAgICAgICAgICAgICBi cmVhazsNCiAgICAgICAgICAgICAgICBjYXNlIDQ6DQogICAgICAgICAgICAgICAgICBuID0g ZXQ7DQogICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlIDE2 Og0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICBuID0gdHQ7 DQogICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlIDUzNjg3 MDkxMjoNCiAgICAgICAgICAgICAgICAgIG4gPSBydDsNCiAgICAgICAgICAgICAgfQ0KICAg ICAgICAgICAgICBuID0gTnUobiwgYXUuYmluZChudWxsLCBlKSk7DQogICAgICAgICAgICB9 DQogICAgICAgICAgICAoZS5jYWxsYmFja1ByaW9yaXR5ID0gdCksIChlLmNhbGxiYWNrTm9k ZSA9IG4pOw0KICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBhdShl LCB0KSB7DQogICAgICAgICAgaWYgKCgoSnMgPSAtMSksIChldSA9IDApLCAwICE9PSAoNiAm IE9zKSkpIHRocm93IEVycm9yKGEoMzI3KSk7DQogICAgICAgICAgdmFyIG4gPSBlLmNhbGxi YWNrTm9kZTsNCiAgICAgICAgICBpZiAoa3UoKSAmJiBlLmNhbGxiYWNrTm9kZSAhPT0gbikg cmV0dXJuIG51bGw7DQogICAgICAgICAgdmFyIHIgPSBmdChlLCBlID09PSBOcyA/IEFzIDog MCk7DQogICAgICAgICAgaWYgKDAgPT09IHIpIHJldHVybiBudWxsOw0KICAgICAgICAgIGlm ICgwICE9PSAoMzAgJiByKSB8fCAwICE9PSAociAmIGUuZXhwaXJlZExhbmVzKSB8fCB0KSB0 ID0gdnUoZSwgcik7DQogICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICB0ID0gcjsNCiAg ICAgICAgICAgIHZhciBvID0gT3M7DQogICAgICAgICAgICBPcyB8PSAyOw0KICAgICAgICAg ICAgdmFyIGkgPSBtdSgpOw0KICAgICAgICAgICAgZm9yICgoTnMgPT09IGUgJiYgQXMgPT09 IHQpIHx8ICgoSHMgPSBudWxsKSwgKFZzID0gWGUoKSArIDUwMCksIHB1KGUsIHQpKTsgOykN CiAgICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICBidSgpOw0KICAgICAgICAg ICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICB9IGNhdGNoIChzKSB7DQogICAgICAgICAg ICAgICAgaHUoZSwgcyk7DQogICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIFNhKCksIChS cy5jdXJyZW50ID0gaSksIChPcyA9IG8pLCBudWxsICE9PSBUcyA/ICh0ID0gMCkgOiAoKE5z ID0gbnVsbCksIChBcyA9IDApLCAodCA9IGpzKSk7DQogICAgICAgICAgfQ0KICAgICAgICAg IGlmICgwICE9PSB0KSB7DQogICAgICAgICAgICBpZiAoKDIgPT09IHQgJiYgMCAhPT0gKG8g PSBodChlKSkgJiYgKChyID0gbyksICh0ID0gaXUoZSwgbykpKSwgMSA9PT0gdCkpIHRocm93 ICgobiA9IElzKSwgcHUoZSwgMCksIHN1KGUsIHIpLCBvdShlLCBYZSgpKSwgbik7DQogICAg ICAgICAgICBpZiAoNiA9PT0gdCkgc3UoZSwgcik7DQogICAgICAgICAgICBlbHNlIHsNCiAg ICAgICAgICAgICAgaWYgKA0KICAgICAgICAgICAgICAgICgobyA9IGUuY3VycmVudC5hbHRl cm5hdGUpLA0KICAgICAgICAgICAgICAgICAgMCA9PT0gKDMwICYgcikgJiYNCiAgICAgICAg ICAgICAgICAgICEoZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgICAgICAgICAgZm9yICh2 YXIgdCA9IGU7IDspIHsNCiAgICAgICAgICAgICAgICAgICAgICBpZiAoMTYzODQgJiB0LmZs YWdzKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgbiA9IHQudXBkYXRlUXVldWU7 DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAobnVsbCAhPT0gbiAmJiBudWxsICE9PSAo biA9IG4uc3RvcmVzKSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgciA9 IDA7IHIgPCBuLmxlbmd0aDsgcisrKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAg dmFyIG8gPSBuW3JdLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYSA9IG8uZ2V0 U25hcHNob3Q7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbyA9IG8udmFsdWU7DQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGlmICghbHIoYSgpLCBvKSkgcmV0dXJuICExOw0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0gY2F0Y2ggKGwpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHJldHVybiAhMTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAg ICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAg ICAgICAgICAgICAgICAgaWYgKCgobiA9IHQuY2hpbGQpLCAxNjM4NCAmIHQuc3VidHJlZUZs YWdzICYmIG51bGwgIT09IG4pKSAobi5yZXR1cm4gPSB0KSwgKHQgPSBuKTsNCiAgICAgICAg ICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0ID09 PSBlKSBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoOyBudWxsID09PSB0 LnNpYmxpbmc7KSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChudWxsID09PSB0 LnJldHVybiB8fCB0LnJldHVybiA9PT0gZSkgcmV0dXJuICEwOw0KICAgICAgICAgICAgICAg ICAgICAgICAgICB0ID0gdC5yZXR1cm47DQogICAgICAgICAgICAgICAgICAgICAgICB9DQog ICAgICAgICAgICAgICAgICAgICAgICAodC5zaWJsaW5nLnJldHVybiA9IHQucmV0dXJuKSwg KHQgPSB0LnNpYmxpbmcpOw0KICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAg ICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gITA7DQogICAgICAgICAg ICAgICAgICB9KShvKSAmJg0KICAgICAgICAgICAgICAgICAgKDIgPT09ICh0ID0gdnUoZSwg cikpICYmIDAgIT09IChpID0gaHQoZSkpICYmICgociA9IGkpLCAodCA9IGl1KGUsIGkpKSks IDEgPT09IHQpKQ0KICAgICAgICAgICAgICApDQogICAgICAgICAgICAgICAgdGhyb3cgKChu ID0gSXMpLCBwdShlLCAwKSwgc3UoZSwgciksIG91KGUsIFhlKCkpLCBuKTsNCiAgICAgICAg ICAgICAgc3dpdGNoICgoKGUuZmluaXNoZWRXb3JrID0gbyksIChlLmZpbmlzaGVkTGFuZXMg PSByKSwgdCkpIHsNCiAgICAgICAgICAgICAgICBjYXNlIDA6DQogICAgICAgICAgICAgICAg Y2FzZSAxOg0KICAgICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoYSgzNDUpKTsNCiAgICAg ICAgICAgICAgICBjYXNlIDI6DQogICAgICAgICAgICAgICAgY2FzZSA1Og0KICAgICAgICAg ICAgICAgICAgU3UoZSwgVXMsIEhzKTsNCiAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAg ICAgICAgICAgICAgIGNhc2UgMzoNCiAgICAgICAgICAgICAgICAgIGlmICgoc3UoZSwgciks ICgxMzAwMjM0MjQgJiByKSA9PT0gciAmJiAxMCA8ICh0ID0gV3MgKyA1MDAgLSBYZSgpKSkp IHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKDAgIT09IGZ0KGUsIDApKSBicmVhazsNCiAg ICAgICAgICAgICAgICAgICAgaWYgKCgobyA9IGUuc3VzcGVuZGVkTGFuZXMpICYgcikgIT09 IHIpIHsNCiAgICAgICAgICAgICAgICAgICAgICB0dSgpLCAoZS5waW5nZWRMYW5lcyB8PSBl LnN1c3BlbmRlZExhbmVzICYgbyk7DQogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQog ICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZS50aW1lb3V0SGFu ZGxlID0gcm8oU3UuYmluZChudWxsLCBlLCBVcywgSHMpLCB0KTsNCiAgICAgICAgICAgICAg ICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICBT dShlLCBVcywgSHMpOw0KICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAg ICAgY2FzZSA0Og0KICAgICAgICAgICAgICAgICAgaWYgKChzdShlLCByKSwgKDQxOTQyNDAg JiByKSA9PT0gcikpIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgZm9yICh0ID0gZS5ldmVu dFRpbWVzLCBvID0gLTE7IDAgPCByOykgew0KICAgICAgICAgICAgICAgICAgICB2YXIgbCA9 IDMxIC0gaXQocik7DQogICAgICAgICAgICAgICAgICAgIChpID0gMSA8PCBsKSwgKGwgPSB0 W2xdKSA+IG8gJiYgKG8gPSBsKSwgKHIgJj0gfmkpOw0KICAgICAgICAgICAgICAgICAgfQ0K ICAgICAgICAgICAgICAgICAgaWYgKCgociA9IG8pLCAxMCA8IChyID0gKDEyMCA+IChyID0g WGUoKSAtIHIpID8gMTIwIDogNDgwID4gciA/IDQ4MCA6IDEwODAgPiByID8gMTA4MCA6IDE5 MjAgPiByID8gMTkyMCA6IDNlMyA+IHIgPyAzZTMgOiA0MzIwID4gciA/IDQzMjAgOiAxOTYw ICogQ3MociAvIDE5NjApKSAtIHIpKSkgew0KICAgICAgICAgICAgICAgICAgICBlLnRpbWVv dXRIYW5kbGUgPSBybyhTdS5iaW5kKG51bGwsIGUsIFVzLCBIcyksIHIpOw0KICAgICAgICAg ICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAg ICAgIFN1KGUsIFVzLCBIcyk7DQogICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAg ICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoYSgzMjkp KTsNCiAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgIH0NCiAgICAg ICAgICByZXR1cm4gb3UoZSwgWGUoKSksIGUuY2FsbGJhY2tOb2RlID09PSBuID8gYXUuYmlu ZChudWxsLCBlKSA6IG51bGw7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gaXUoZSwg dCkgew0KICAgICAgICAgIHZhciBuID0gRHM7DQogICAgICAgICAgcmV0dXJuIGUuY3VycmVu dC5tZW1vaXplZFN0YXRlLmlzRGVoeWRyYXRlZCAmJiAocHUoZSwgdCkuZmxhZ3MgfD0gMjU2 KSwgMiAhPT0gKGUgPSB2dShlLCB0KSkgJiYgKCh0ID0gVXMpLCAoVXMgPSBuKSwgbnVsbCAh PT0gdCAmJiBsdSh0KSksIGU7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gbHUoZSkg ew0KICAgICAgICAgIG51bGwgPT09IFVzID8gKFVzID0gZSkgOiBVcy5wdXNoLmFwcGx5KFVz LCBlKTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBzdShlLCB0KSB7DQogICAgICAg ICAgZm9yICh0ICY9IH5CcywgdCAmPSB+RnMsIGUuc3VzcGVuZGVkTGFuZXMgfD0gdCwgZS5w aW5nZWRMYW5lcyAmPSB+dCwgZSA9IGUuZXhwaXJhdGlvblRpbWVzOyAwIDwgdDspIHsNCiAg ICAgICAgICAgIHZhciBuID0gMzEgLSBpdCh0KSwNCiAgICAgICAgICAgICAgciA9IDEgPDwg bjsNCiAgICAgICAgICAgIChlW25dID0gLTEpLCAodCAmPSB+cik7DQogICAgICAgICAgfQ0K ICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIHV1KGUpIHsNCiAgICAgICAgICBpZiAoMCAh PT0gKDYgJiBPcykpIHRocm93IEVycm9yKGEoMzI3KSk7DQogICAgICAgICAga3UoKTsNCiAg ICAgICAgICB2YXIgdCA9IGZ0KGUsIDApOw0KICAgICAgICAgIGlmICgwID09PSAoMSAmIHQp KSByZXR1cm4gb3UoZSwgWGUoKSksIG51bGw7DQogICAgICAgICAgdmFyIG4gPSB2dShlLCB0 KTsNCiAgICAgICAgICBpZiAoMCAhPT0gZS50YWcgJiYgMiA9PT0gbikgew0KICAgICAgICAg ICAgdmFyIHIgPSBodChlKTsNCiAgICAgICAgICAgIDAgIT09IHIgJiYgKCh0ID0gciksIChu ID0gaXUoZSwgcikpKTsNCiAgICAgICAgICB9DQogICAgICAgICAgaWYgKDEgPT09IG4pIHRo cm93ICgobiA9IElzKSwgcHUoZSwgMCksIHN1KGUsIHQpLCBvdShlLCBYZSgpKSwgbik7DQog ICAgICAgICAgaWYgKDYgPT09IG4pIHRocm93IEVycm9yKGEoMzQ1KSk7DQogICAgICAgICAg cmV0dXJuIChlLmZpbmlzaGVkV29yayA9IGUuY3VycmVudC5hbHRlcm5hdGUpLCAoZS5maW5p c2hlZExhbmVzID0gdCksIFN1KGUsIFVzLCBIcyksIG91KGUsIFhlKCkpLCBudWxsOw0KICAg ICAgICB9DQogICAgICAgIGZ1bmN0aW9uIGN1KGUsIHQpIHsNCiAgICAgICAgICB2YXIgbiA9 IE9zOw0KICAgICAgICAgIE9zIHw9IDE7DQogICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAg IHJldHVybiBlKHQpOw0KICAgICAgICAgIH0gZmluYWxseSB7DQogICAgICAgICAgICAwID09 PSAoT3MgPSBuKSAmJiAoKFZzID0gWGUoKSArIDUwMCksIERvICYmIFZvKCkpOw0KICAgICAg ICAgIH0NCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBkdShlKSB7DQogICAgICAgICAg bnVsbCAhPT0gR3MgJiYgMCA9PT0gR3MudGFnICYmIDAgPT09ICg2ICYgT3MpICYmIGt1KCk7 DQogICAgICAgICAgdmFyIHQgPSBPczsNCiAgICAgICAgICBPcyB8PSAxOw0KICAgICAgICAg IHZhciBuID0gUHMudHJhbnNpdGlvbiwNCiAgICAgICAgICAgIHIgPSBidDsNCiAgICAgICAg ICB0cnkgew0KICAgICAgICAgICAgaWYgKCgoUHMudHJhbnNpdGlvbiA9IG51bGwpLCAoYnQg PSAxKSwgZSkpIHJldHVybiBlKCk7DQogICAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAg ICAgIChidCA9IHIpLCAoUHMudHJhbnNpdGlvbiA9IG4pLCAwID09PSAoNiAmIChPcyA9IHQp KSAmJiBWbygpOw0KICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBm dSgpIHsNCiAgICAgICAgICAoTXMgPSB6cy5jdXJyZW50KSwgUm8oenMpOw0KICAgICAgICB9 DQogICAgICAgIGZ1bmN0aW9uIHB1KGUsIHQpIHsNCiAgICAgICAgICAoZS5maW5pc2hlZFdv cmsgPSBudWxsKSwgKGUuZmluaXNoZWRMYW5lcyA9IDApOw0KICAgICAgICAgIHZhciBuID0g ZS50aW1lb3V0SGFuZGxlOw0KICAgICAgICAgIGlmICgoLTEgIT09IG4gJiYgKChlLnRpbWVv dXRIYW5kbGUgPSAtMSksIG9vKG4pKSwgbnVsbCAhPT0gVHMpKQ0KICAgICAgICAgICAgZm9y IChuID0gVHMucmV0dXJuOyBudWxsICE9PSBuOykgew0KICAgICAgICAgICAgICB2YXIgciA9 IG47DQogICAgICAgICAgICAgIHN3aXRjaCAoKG5hKHIpLCByLnRhZykpIHsNCiAgICAgICAg ICAgICAgICBjYXNlIDE6DQogICAgICAgICAgICAgICAgICBudWxsICE9PSAociA9IHIudHlw ZS5jaGlsZENvbnRleHRUeXBlcykgJiYgdm9pZCAwICE9PSByICYmIHpvKCk7DQogICAgICAg ICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlIDM6DQogICAgICAgICAg ICAgICAgICBhaSgpLCBSbyhObyksIFJvKE9vKSwgZGkoKTsNCiAgICAgICAgICAgICAgICAg IGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgNToNCiAgICAgICAgICAgICAgICAgIGxp KHIpOw0KICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSA0 Og0KICAgICAgICAgICAgICAgICAgYWkoKTsNCiAgICAgICAgICAgICAgICAgIGJyZWFrOw0K ICAgICAgICAgICAgICAgIGNhc2UgMTM6DQogICAgICAgICAgICAgICAgY2FzZSAxOToNCiAg ICAgICAgICAgICAgICAgIFJvKHNpKTsNCiAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAg ICAgICAgICAgICAgIGNhc2UgMTA6DQogICAgICAgICAgICAgICAgICBrYShyLnR5cGUuX2Nv bnRleHQpOw0KICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2Fz ZSAyMjoNCiAgICAgICAgICAgICAgICBjYXNlIDIzOg0KICAgICAgICAgICAgICAgICAgZnUo KTsNCiAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICBuID0gbi5yZXR1cm47DQogICAg ICAgICAgICB9DQogICAgICAgICAgaWYgKCgoTnMgPSBlKSwgKFRzID0gZSA9IHp1KGUuY3Vy cmVudCwgbnVsbCkpLCAoQXMgPSBNcyA9IHQpLCAoanMgPSAwKSwgKElzID0gbnVsbCksIChC cyA9IEZzID0gTHMgPSAwKSwgKFVzID0gRHMgPSBudWxsKSwgbnVsbCAhPT0gX2EpKSB7DQog ICAgICAgICAgICBmb3IgKHQgPSAwOyB0IDwgX2EubGVuZ3RoOyB0KyspDQogICAgICAgICAg ICAgIGlmIChudWxsICE9PSAociA9IChuID0gX2FbdF0pLmludGVybGVhdmVkKSkgew0KICAg ICAgICAgICAgICAgIG4uaW50ZXJsZWF2ZWQgPSBudWxsOw0KICAgICAgICAgICAgICAgIHZh ciBvID0gci5uZXh0LA0KICAgICAgICAgICAgICAgICAgYSA9IG4ucGVuZGluZzsNCiAgICAg ICAgICAgICAgICBpZiAobnVsbCAhPT0gYSkgew0KICAgICAgICAgICAgICAgICAgdmFyIGkg PSBhLm5leHQ7DQogICAgICAgICAgICAgICAgICAoYS5uZXh0ID0gbyksIChyLm5leHQgPSBp KTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgbi5wZW5kaW5nID0gcjsN CiAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgX2EgPSBudWxsOw0KICAgICAgICAgIH0N CiAgICAgICAgICByZXR1cm4gZTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBodShl LCB0KSB7DQogICAgICAgICAgZm9yICg7IDspIHsNCiAgICAgICAgICAgIHZhciBuID0gVHM7 DQogICAgICAgICAgICB0cnkgew0KICAgICAgICAgICAgICBpZiAoKFNhKCksIChmaS5jdXJy ZW50ID0gaWwpLCB5aSkpIHsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciByID0gbWkubWVt b2l6ZWRTdGF0ZTsgbnVsbCAhPT0gcjspIHsNCiAgICAgICAgICAgICAgICAgIHZhciBvID0g ci5xdWV1ZTsNCiAgICAgICAgICAgICAgICAgIG51bGwgIT09IG8gJiYgKG8ucGVuZGluZyA9 IG51bGwpLCAociA9IHIubmV4dCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAg ICAgIHlpID0gITE7DQogICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgaWYgKCgoaGkg PSAwKSwgKHZpID0gZ2kgPSBtaSA9IG51bGwpLCAoYmkgPSAhMSksICh3aSA9IDApLCAoX3Mu Y3VycmVudCA9IG51bGwpLCBudWxsID09PSBuIHx8IG51bGwgPT09IG4ucmV0dXJuKSkgew0K ICAgICAgICAgICAgICAgIChqcyA9IDEpLCAoSXMgPSB0KSwgKFRzID0gbnVsbCk7DQogICAg ICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgZTog ew0KICAgICAgICAgICAgICAgIHZhciBpID0gZSwNCiAgICAgICAgICAgICAgICAgIGwgPSBu LnJldHVybiwNCiAgICAgICAgICAgICAgICAgIHMgPSBuLA0KICAgICAgICAgICAgICAgICAg dSA9IHQ7DQogICAgICAgICAgICAgICAgaWYgKCgodCA9IEFzKSwgKHMuZmxhZ3MgfD0gMzI3 NjgpLCBudWxsICE9PSB1ICYmICJvYmplY3QiID09PSB0eXBlb2YgdSAmJiAiZnVuY3Rpb24i ID09PSB0eXBlb2YgdS50aGVuKSkgew0KICAgICAgICAgICAgICAgICAgdmFyIGMgPSB1LA0K ICAgICAgICAgICAgICAgICAgICBkID0gcywNCiAgICAgICAgICAgICAgICAgICAgZiA9IGQu dGFnOw0KICAgICAgICAgICAgICAgICAgaWYgKDAgPT09ICgxICYgZC5tb2RlKSAmJiAoMCA9 PT0gZiB8fCAxMSA9PT0gZiB8fCAxNSA9PT0gZikpIHsNCiAgICAgICAgICAgICAgICAgICAg dmFyIHAgPSBkLmFsdGVybmF0ZTsNCiAgICAgICAgICAgICAgICAgICAgcCA/ICgoZC51cGRh dGVRdWV1ZSA9IHAudXBkYXRlUXVldWUpLCAoZC5tZW1vaXplZFN0YXRlID0gcC5tZW1vaXpl ZFN0YXRlKSwgKGQubGFuZXMgPSBwLmxhbmVzKSkgOiAoKGQudXBkYXRlUXVldWUgPSBudWxs KSwgKGQubWVtb2l6ZWRTdGF0ZSA9IG51bGwpKTsNCiAgICAgICAgICAgICAgICAgIH0NCiAg ICAgICAgICAgICAgICAgIHZhciBoID0gdmwobCk7DQogICAgICAgICAgICAgICAgICBpZiAo bnVsbCAhPT0gaCkgew0KICAgICAgICAgICAgICAgICAgICAoaC5mbGFncyAmPSAtMjU3KSwg eWwoaCwgbCwgcywgMCwgdCksIDEgJiBoLm1vZGUgJiYgZ2woaSwgYywgdCksICh1ID0gYyk7 DQogICAgICAgICAgICAgICAgICAgIHZhciBtID0gKHQgPSBoKS51cGRhdGVRdWV1ZTsNCiAg ICAgICAgICAgICAgICAgICAgaWYgKG51bGwgPT09IG0pIHsNCiAgICAgICAgICAgICAgICAg ICAgICB2YXIgZyA9IG5ldyBTZXQoKTsNCiAgICAgICAgICAgICAgICAgICAgICBnLmFkZCh1 KSwgKHQudXBkYXRlUXVldWUgPSBnKTsNCiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIG0u YWRkKHUpOw0KICAgICAgICAgICAgICAgICAgICBicmVhayBlOw0KICAgICAgICAgICAgICAg ICAgfQ0KICAgICAgICAgICAgICAgICAgaWYgKDAgPT09ICgxICYgdCkpIHsNCiAgICAgICAg ICAgICAgICAgICAgZ2woaSwgYywgdCksIGd1KCk7DQogICAgICAgICAgICAgICAgICAgIGJy ZWFrIGU7DQogICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICB1ID0gRXJy b3IoYSg0MjYpKTsNCiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGFhICYmIDEgJiBzLm1v ZGUpIHsNCiAgICAgICAgICAgICAgICAgIHZhciB2ID0gdmwobCk7DQogICAgICAgICAgICAg ICAgICBpZiAobnVsbCAhPT0gdikgew0KICAgICAgICAgICAgICAgICAgICAwID09PSAoNjU1 MzYgJiB2LmZsYWdzKSAmJiAodi5mbGFncyB8PSAyNTYpLCB5bCh2LCBsLCBzLCAwLCB0KSwg bWEoY2wodSwgcykpOw0KICAgICAgICAgICAgICAgICAgICBicmVhayBlOw0KICAgICAgICAg ICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAoaSA9IHUg PSBjbCh1LCBzKSksIDQgIT09IGpzICYmIChqcyA9IDIpLCBudWxsID09PSBEcyA/IChEcyA9 IFtpXSkgOiBEcy5wdXNoKGkpLCAoaSA9IGwpOw0KICAgICAgICAgICAgICAgIGRvIHsNCiAg ICAgICAgICAgICAgICAgIHN3aXRjaCAoaS50YWcpIHsNCiAgICAgICAgICAgICAgICAgICAg Y2FzZSAzOg0KICAgICAgICAgICAgICAgICAgICAgIChpLmZsYWdzIHw9IDY1NTM2KSwgKHQg Jj0gLXQpLCAoaS5sYW5lcyB8PSB0KSwgTGEoaSwgaGwoMCwgdSwgdCkpOw0KICAgICAgICAg ICAgICAgICAgICAgIGJyZWFrIGU7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgMToNCiAg ICAgICAgICAgICAgICAgICAgICBzID0gdTsNCiAgICAgICAgICAgICAgICAgICAgICB2YXIg eSA9IGkudHlwZSwNCiAgICAgICAgICAgICAgICAgICAgICAgIGIgPSBpLnN0YXRlTm9kZTsN CiAgICAgICAgICAgICAgICAgICAgICBpZiAoMCA9PT0gKDEyOCAmIGkuZmxhZ3MpICYmICgi ZnVuY3Rpb24iID09PSB0eXBlb2YgeS5nZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IgfHwgKG51 bGwgIT09IGIgJiYgImZ1bmN0aW9uIiA9PT0gdHlwZW9mIGIuY29tcG9uZW50RGlkQ2F0Y2gg JiYgKG51bGwgPT09IEtzIHx8ICFLcy5oYXMoYikpKSkpIHsNCiAgICAgICAgICAgICAgICAg ICAgICAgIChpLmZsYWdzIHw9IDY1NTM2KSwgKHQgJj0gLXQpLCAoaS5sYW5lcyB8PSB0KSwg TGEoaSwgbWwoaSwgcywgdCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsgZTsN CiAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICB9DQogICAgICAg ICAgICAgICAgICBpID0gaS5yZXR1cm47DQogICAgICAgICAgICAgICAgfSB3aGlsZSAobnVs bCAhPT0gaSk7DQogICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgeHUobik7DQogICAg ICAgICAgICB9IGNhdGNoICh3KSB7DQogICAgICAgICAgICAgICh0ID0gdyksIFRzID09PSBu ICYmIG51bGwgIT09IG4gJiYgKFRzID0gbiA9IG4ucmV0dXJuKTsNCiAgICAgICAgICAgICAg Y29udGludWU7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAg ICB9DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gbXUoKSB7DQogICAgICAgICAgdmFy IGUgPSBScy5jdXJyZW50Ow0KICAgICAgICAgIHJldHVybiAoUnMuY3VycmVudCA9IGlsKSwg bnVsbCA9PT0gZSA/IGlsIDogZTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBndSgp IHsNCiAgICAgICAgICAoMCAhPT0ganMgJiYgMyAhPT0ganMgJiYgMiAhPT0ganMpIHx8IChq cyA9IDQpLCBudWxsID09PSBOcyB8fCAoMCA9PT0gKDI2ODQzNTQ1NSAmIExzKSAmJiAwID09 PSAoMjY4NDM1NDU1ICYgRnMpKSB8fCBzdShOcywgQXMpOw0KICAgICAgICB9DQogICAgICAg IGZ1bmN0aW9uIHZ1KGUsIHQpIHsNCiAgICAgICAgICB2YXIgbiA9IE9zOw0KICAgICAgICAg IE9zIHw9IDI7DQogICAgICAgICAgdmFyIHIgPSBtdSgpOw0KICAgICAgICAgIGZvciAoKE5z ID09PSBlICYmIEFzID09PSB0KSB8fCAoKEhzID0gbnVsbCksIHB1KGUsIHQpKTsgOykNCiAg ICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgIHl1KCk7DQogICAgICAgICAgICAgIGJy ZWFrOw0KICAgICAgICAgICAgfSBjYXRjaCAobykgew0KICAgICAgICAgICAgICBodShlLCBv KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICBpZiAoKFNhKCksIChPcyA9IG4pLCAoUnMu Y3VycmVudCA9IHIpLCBudWxsICE9PSBUcykpIHRocm93IEVycm9yKGEoMjYxKSk7DQogICAg ICAgICAgcmV0dXJuIChOcyA9IG51bGwpLCAoQXMgPSAwKSwganM7DQogICAgICAgIH0NCiAg ICAgICAgZnVuY3Rpb24geXUoKSB7DQogICAgICAgICAgZm9yICg7IG51bGwgIT09IFRzOykg d3UoVHMpOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIGJ1KCkgew0KICAgICAgICAg IGZvciAoOyBudWxsICE9PSBUcyAmJiAhR2UoKTspIHd1KFRzKTsNCiAgICAgICAgfQ0KICAg ICAgICBmdW5jdGlvbiB3dShlKSB7DQogICAgICAgICAgdmFyIHQgPSBFcyhlLmFsdGVybmF0 ZSwgZSwgTXMpOw0KICAgICAgICAgIChlLm1lbW9pemVkUHJvcHMgPSBlLnBlbmRpbmdQcm9w cyksIG51bGwgPT09IHQgPyB4dShlKSA6IChUcyA9IHQpLCAoX3MuY3VycmVudCA9IG51bGwp Ow0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIHh1KGUpIHsNCiAgICAgICAgICB2YXIg dCA9IGU7DQogICAgICAgICAgZG8gew0KICAgICAgICAgICAgdmFyIG4gPSB0LmFsdGVybmF0 ZTsNCiAgICAgICAgICAgIGlmICgoKGUgPSB0LnJldHVybiksIDAgPT09ICgzMjc2OCAmIHQu ZmxhZ3MpKSkgew0KICAgICAgICAgICAgICBpZiAobnVsbCAhPT0gKG4gPSBRbChuLCB0LCBN cykpKSByZXR1cm4gdm9pZCAoVHMgPSBuKTsNCiAgICAgICAgICAgIH0gZWxzZSB7DQogICAg ICAgICAgICAgIGlmIChudWxsICE9PSAobiA9IEdsKG4sIHQpKSkgcmV0dXJuIChuLmZsYWdz ICY9IDMyNzY3KSwgdm9pZCAoVHMgPSBuKTsNCiAgICAgICAgICAgICAgaWYgKG51bGwgPT09 IGUpIHJldHVybiAoanMgPSA2KSwgdm9pZCAoVHMgPSBudWxsKTsNCiAgICAgICAgICAgICAg KGUuZmxhZ3MgfD0gMzI3NjgpLCAoZS5zdWJ0cmVlRmxhZ3MgPSAwKSwgKGUuZGVsZXRpb25z ID0gbnVsbCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAobnVsbCAhPT0gKHQg PSB0LnNpYmxpbmcpKSByZXR1cm4gdm9pZCAoVHMgPSB0KTsNCiAgICAgICAgICAgIFRzID0g dCA9IGU7DQogICAgICAgICAgfSB3aGlsZSAobnVsbCAhPT0gdCk7DQogICAgICAgICAgMCA9 PT0ganMgJiYgKGpzID0gNSk7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gU3UoZSwg dCwgbikgew0KICAgICAgICAgIHZhciByID0gYnQsDQogICAgICAgICAgICBvID0gUHMudHJh bnNpdGlvbjsNCiAgICAgICAgICB0cnkgew0KICAgICAgICAgICAgKFBzLnRyYW5zaXRpb24g PSBudWxsKSwNCiAgICAgICAgICAgICAgKGJ0ID0gMSksDQogICAgICAgICAgICAgIChmdW5j dGlvbiAoZSwgdCwgbiwgcikgew0KICAgICAgICAgICAgICAgIGRvIHsNCiAgICAgICAgICAg ICAgICAgIGt1KCk7DQogICAgICAgICAgICAgICAgfSB3aGlsZSAobnVsbCAhPT0gR3MpOw0K ICAgICAgICAgICAgICAgIGlmICgwICE9PSAoNiAmIE9zKSkgdGhyb3cgRXJyb3IoYSgzMjcp KTsNCiAgICAgICAgICAgICAgICBuID0gZS5maW5pc2hlZFdvcms7DQogICAgICAgICAgICAg ICAgdmFyIG8gPSBlLmZpbmlzaGVkTGFuZXM7DQogICAgICAgICAgICAgICAgaWYgKG51bGwg PT09IG4pIHJldHVybiBudWxsOw0KICAgICAgICAgICAgICAgIGlmICgoKGUuZmluaXNoZWRX b3JrID0gbnVsbCksIChlLmZpbmlzaGVkTGFuZXMgPSAwKSwgbiA9PT0gZS5jdXJyZW50KSkg dGhyb3cgRXJyb3IoYSgxNzcpKTsNCiAgICAgICAgICAgICAgICAoZS5jYWxsYmFja05vZGUg PSBudWxsKSwgKGUuY2FsbGJhY2tQcmlvcml0eSA9IDApOw0KICAgICAgICAgICAgICAgIHZh ciBpID0gbi5sYW5lcyB8IG4uY2hpbGRMYW5lczsNCiAgICAgICAgICAgICAgICBpZiAoDQog ICAgICAgICAgICAgICAgICAoKGZ1bmN0aW9uIChlLCB0KSB7DQogICAgICAgICAgICAgICAg ICAgIHZhciBuID0gZS5wZW5kaW5nTGFuZXMgJiB+dDsNCiAgICAgICAgICAgICAgICAgICAg KGUucGVuZGluZ0xhbmVzID0gdCksIChlLnN1c3BlbmRlZExhbmVzID0gMCksIChlLnBpbmdl ZExhbmVzID0gMCksIChlLmV4cGlyZWRMYW5lcyAmPSB0KSwgKGUubXV0YWJsZVJlYWRMYW5l cyAmPSB0KSwgKGUuZW50YW5nbGVkTGFuZXMgJj0gdCksICh0ID0gZS5lbnRhbmdsZW1lbnRz KTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHIgPSBlLmV2ZW50VGltZXM7DQogICAgICAg ICAgICAgICAgICAgIGZvciAoZSA9IGUuZXhwaXJhdGlvblRpbWVzOyAwIDwgbjspIHsNCiAg ICAgICAgICAgICAgICAgICAgICB2YXIgbyA9IDMxIC0gaXQobiksDQogICAgICAgICAgICAg ICAgICAgICAgICBhID0gMSA8PCBvOw0KICAgICAgICAgICAgICAgICAgICAgICh0W29dID0g MCksIChyW29dID0gLTEpLCAoZVtvXSA9IC0xKSwgKG4gJj0gfmEpOw0KICAgICAgICAgICAg ICAgICAgICB9DQogICAgICAgICAgICAgICAgICB9KShlLCBpKSwNCiAgICAgICAgICAgICAg ICAgICAgZSA9PT0gTnMgJiYgKChUcyA9IE5zID0gbnVsbCksIChBcyA9IDApKSwNCiAgICAg ICAgICAgICAgICAgICAgKDAgPT09ICgyMDY0ICYgbi5zdWJ0cmVlRmxhZ3MpICYmIDAgPT09 ICgyMDY0ICYgbi5mbGFncykpIHx8DQogICAgICAgICAgICAgICAgICAgIFFzIHx8DQogICAg ICAgICAgICAgICAgICAgICgoUXMgPSAhMCksDQogICAgICAgICAgICAgICAgICAgICAgTnUo dHQsIGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBrdSgp LCBudWxsOw0KICAgICAgICAgICAgICAgICAgICAgIH0pKSwNCiAgICAgICAgICAgICAgICAg ICAgKGkgPSAwICE9PSAoMTU5OTAgJiBuLmZsYWdzKSksDQogICAgICAgICAgICAgICAgICAg IDAgIT09ICgxNTk5MCAmIG4uc3VidHJlZUZsYWdzKSB8fCBpKQ0KICAgICAgICAgICAgICAg ICkgew0KICAgICAgICAgICAgICAgICAgKGkgPSBQcy50cmFuc2l0aW9uKSwgKFBzLnRyYW5z aXRpb24gPSBudWxsKTsNCiAgICAgICAgICAgICAgICAgIHZhciBsID0gYnQ7DQogICAgICAg ICAgICAgICAgICBidCA9IDE7DQogICAgICAgICAgICAgICAgICB2YXIgcyA9IE9zOw0KICAg ICAgICAgICAgICAgICAgKE9zIHw9IDQpLA0KICAgICAgICAgICAgICAgICAgICAoX3MuY3Vy cmVudCA9IG51bGwpLA0KICAgICAgICAgICAgICAgICAgICAoZnVuY3Rpb24gKGUsIHQpIHsN CiAgICAgICAgICAgICAgICAgICAgICBpZiAoKChlbyA9IEh0KSwgcHIoKGUgPSBmcigpKSkp KSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoInNlbGVjdGlvblN0YXJ0IiBpbiBl KSB2YXIgbiA9IHsgc3RhcnQ6IGUuc2VsZWN0aW9uU3RhcnQsIGVuZDogZS5zZWxlY3Rpb25F bmQgfTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgZTogew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciByID0gKG4g PSAoKG4gPSBlLm93bmVyRG9jdW1lbnQpICYmIG4uZGVmYXVsdFZpZXcpIHx8IHdpbmRvdyku Z2V0U2VsZWN0aW9uICYmIG4uZ2V0U2VsZWN0aW9uKCk7DQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgaWYgKHIgJiYgMCAhPT0gci5yYW5nZUNvdW50KSB7DQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBuID0gci5hbmNob3JOb2RlOw0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdmFyIG8gPSByLmFuY2hvck9mZnNldCwNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaSA9IHIuZm9jdXNOb2RlOw0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgciA9IHIuZm9jdXNPZmZzZXQ7DQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB0cnkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuLm5vZGVUeXBl LCBpLm5vZGVUeXBlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAo eCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuID0gbnVsbDsNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsgZTsNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBsID0g MCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcyA9IC0xLA0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB1ID0gLTEsDQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGMgPSAwLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkID0g MCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZiA9IGUsDQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHAgPSBudWxsOw0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdDogZm9yICg7IDspIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZm9yICgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgaDsNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmICE9PSBuIHx8ICgwICE9PSBvICYm IDMgIT09IGYubm9kZVR5cGUpIHx8IChzID0gbCArIG8pLA0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGYgIT09IGkgfHwgKDAgIT09IHIgJiYgMyAhPT0gZi5ub2RlVHlw ZSkgfHwgKHUgPSBsICsgciksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg MyA9PT0gZi5ub2RlVHlwZSAmJiAobCArPSBmLm5vZGVWYWx1ZS5sZW5ndGgpLA0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwgIT09IChoID0gZi5maXJzdENoaWxk KTsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApDQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKHAgPSBmKSwgKGYgPSBoKTsNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZm9yICg7IDspIHsNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpZiAoZiA9PT0gZSkgYnJlYWsgdDsNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBpZiAoKHAgPT09IG4gJiYgKytjID09PSBvICYmIChzID0gbCksIHAg PT09IGkgJiYgKytkID09PSByICYmICh1ID0gbCksIG51bGwgIT09IChoID0gZi5uZXh0U2li bGluZykpKSBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwID0g KGYgPSBwKS5wYXJlbnROb2RlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGYgPSBoOw0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbiA9 IC0xID09PSBzIHx8IC0xID09PSB1ID8gbnVsbCA6IHsgc3RhcnQ6IHMsIGVuZDogdSB9Ow0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBuID0gbnVsbDsNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgbiA9IG4gfHwg eyBzdGFydDogMCwgZW5kOiAwIH07DQogICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIG4g PSBudWxsOw0KICAgICAgICAgICAgICAgICAgICAgIGZvciAodG8gPSB7IGZvY3VzZWRFbGVt OiBlLCBzZWxlY3Rpb25SYW5nZTogbiB9LCBIdCA9ICExLCBKbCA9IHQ7IG51bGwgIT09IEps OykNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgoKGUgPSAodCA9IEpsKS5jaGlsZCks IDAgIT09ICgxMDI4ICYgdC5zdWJ0cmVlRmxhZ3MpICYmIG51bGwgIT09IGUpKSAoZS5yZXR1 cm4gPSB0KSwgKEpsID0gZSk7DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlDQogICAg ICAgICAgICAgICAgICAgICAgICAgIGZvciAoOyBudWxsICE9PSBKbDspIHsNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB0ID0gSmw7DQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgdHJ5IHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBtID0gdC5hbHRl cm5hdGU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoMCAhPT0gKDEwMjQg JiB0LmZsYWdzKSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoICh0 LnRhZykgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMDoNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDExOg0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMTU6DQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY2FzZSA1Og0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNhc2UgNjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDQ6DQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAxNzoNCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGlmIChudWxsICE9PSBtKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHZhciBnID0gbS5tZW1vaXplZFByb3BzLA0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHYgPSBtLm1lbW9pemVkU3RhdGUsDQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgeSA9IHQuc3RhdGVOb2RlLA0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGIgPSB5LmdldFNuYXBzaG90QmVmb3Jl VXBkYXRlKHQuZWxlbWVudFR5cGUgPT09IHQudHlwZSA/IGcgOiB2YSh0LnR5cGUsIGcpLCB2 KTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeS5fX3JlYWN0SW50 ZXJuYWxTbmFwc2hvdEJlZm9yZVVwZGF0ZSA9IGI7DQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBi cmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDM6DQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgdyA9IHQuc3RhdGVOb2RlLmNv bnRhaW5lckluZm87DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxID09 PSB3Lm5vZGVUeXBlID8gKHcudGV4dENvbnRlbnQgPSAiIikgOiA5ID09PSB3Lm5vZGVUeXBl ICYmIHcuZG9jdW1lbnRFbGVtZW50ICYmIHcucmVtb3ZlQ2hpbGQody5kb2N1bWVudEVsZW1l bnQpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHRocm93IEVycm9yKGEoMTYzKSk7DQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 IGNhdGNoICh4KSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDdSh0LCB0LnJl dHVybiwgeCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGlmIChudWxsICE9PSAoZSA9IHQuc2libGluZykpIHsNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChlLnJldHVybiA9IHQucmV0dXJuKSwgKEpsID0g ZSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgSmwgPSB0 LnJldHVybjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAg ICAgICAgIChtID0gbnMpLCAobnMgPSAhMSk7DQogICAgICAgICAgICAgICAgICAgIH0pKGUs IG4pLA0KICAgICAgICAgICAgICAgICAgICB2cyhuLCBlKSwNCiAgICAgICAgICAgICAgICAg ICAgaHIodG8pLA0KICAgICAgICAgICAgICAgICAgICAoSHQgPSAhIWVvKSwNCiAgICAgICAg ICAgICAgICAgICAgKHRvID0gZW8gPSBudWxsKSwNCiAgICAgICAgICAgICAgICAgICAgKGUu Y3VycmVudCA9IG4pLA0KICAgICAgICAgICAgICAgICAgICBicyhuLCBlLCBvKSwNCiAgICAg ICAgICAgICAgICAgICAgWWUoKSwNCiAgICAgICAgICAgICAgICAgICAgKE9zID0gcyksDQog ICAgICAgICAgICAgICAgICAgIChidCA9IGwpLA0KICAgICAgICAgICAgICAgICAgICAoUHMu dHJhbnNpdGlvbiA9IGkpOw0KICAgICAgICAgICAgICAgIH0gZWxzZSBlLmN1cnJlbnQgPSBu Ow0KICAgICAgICAgICAgICAgIGlmICgNCiAgICAgICAgICAgICAgICAgIChRcyAmJiAoKFFz ID0gITEpLCAoR3MgPSBlKSwgKFlzID0gbykpLA0KICAgICAgICAgICAgICAgICAgICAoaSA9 IGUucGVuZGluZ0xhbmVzKSwNCiAgICAgICAgICAgICAgICAgICAgMCA9PT0gaSAmJiAoS3Mg PSBudWxsKSwNCiAgICAgICAgICAgICAgICAgICAgKGZ1bmN0aW9uIChlKSB7DQogICAgICAg ICAgICAgICAgICAgICAgaWYgKGF0ICYmICJmdW5jdGlvbiIgPT09IHR5cGVvZiBhdC5vbkNv bW1pdEZpYmVyUm9vdCkNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7DQogICAgICAg ICAgICAgICAgICAgICAgICAgIGF0Lm9uQ29tbWl0RmliZXJSb290KG90LCBlLCB2b2lkIDAs IDEyOCA9PT0gKDEyOCAmIGUuY3VycmVudC5mbGFncykpOw0KICAgICAgICAgICAgICAgICAg ICAgICAgfSBjYXRjaCAodCkgeyB9DQogICAgICAgICAgICAgICAgICAgIH0pKG4uc3RhdGVO b2RlKSwNCiAgICAgICAgICAgICAgICAgICAgb3UoZSwgWGUoKSksDQogICAgICAgICAgICAg ICAgICAgIG51bGwgIT09IHQpDQogICAgICAgICAgICAgICAgKQ0KICAgICAgICAgICAgICAg ICAgZm9yIChyID0gZS5vblJlY292ZXJhYmxlRXJyb3IsIG4gPSAwOyBuIDwgdC5sZW5ndGg7 IG4rKykgKG8gPSB0W25dKSwgcihvLnZhbHVlLCB7IGNvbXBvbmVudFN0YWNrOiBvLnN0YWNr LCBkaWdlc3Q6IG8uZGlnZXN0IH0pOw0KICAgICAgICAgICAgICAgIGlmIChxcykgdGhyb3cg KChxcyA9ICExKSwgKGUgPSAkcyksICgkcyA9IG51bGwpLCBlKTsNCiAgICAgICAgICAgICAg ICAwICE9PSAoMSAmIFlzKSAmJiAwICE9PSBlLnRhZyAmJiBrdSgpLCAoaSA9IGUucGVuZGlu Z0xhbmVzKSwgMCAhPT0gKDEgJiBpKSA/IChlID09PSBacyA/IFhzKysgOiAoKFhzID0gMCks IChacyA9IGUpKSkgOiAoWHMgPSAwKSwgVm8oKTsNCiAgICAgICAgICAgICAgfSkoZSwgdCwg biwgcik7DQogICAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIChQcy50cmFuc2l0 aW9uID0gbyksIChidCA9IHIpOw0KICAgICAgICAgIH0NCiAgICAgICAgICByZXR1cm4gbnVs bDsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBrdSgpIHsNCiAgICAgICAgICBpZiAo bnVsbCAhPT0gR3MpIHsNCiAgICAgICAgICAgIHZhciBlID0gd3QoWXMpLA0KICAgICAgICAg ICAgICB0ID0gUHMudHJhbnNpdGlvbiwNCiAgICAgICAgICAgICAgbiA9IGJ0Ow0KICAgICAg ICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgaWYgKCgoUHMudHJhbnNpdGlvbiA9IG51bGwp LCAoYnQgPSAxNiA+IGUgPyAxNiA6IGUpLCBudWxsID09PSBHcykpIHZhciByID0gITE7DQog ICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIGlmICgoKGUgPSBHcyksIChH cyA9IG51bGwpLCAoWXMgPSAwKSwgMCAhPT0gKDYgJiBPcykpKSB0aHJvdyBFcnJvcihhKDMz MSkpOw0KICAgICAgICAgICAgICAgIHZhciBvID0gT3M7DQogICAgICAgICAgICAgICAgZm9y IChPcyB8PSA0LCBKbCA9IGUuY3VycmVudDsgbnVsbCAhPT0gSmw7KSB7DQogICAgICAgICAg ICAgICAgICB2YXIgaSA9IEpsLA0KICAgICAgICAgICAgICAgICAgICBsID0gaS5jaGlsZDsN CiAgICAgICAgICAgICAgICAgIGlmICgwICE9PSAoMTYgJiBKbC5mbGFncykpIHsNCiAgICAg ICAgICAgICAgICAgICAgdmFyIHMgPSBpLmRlbGV0aW9uczsNCiAgICAgICAgICAgICAgICAg ICAgaWYgKG51bGwgIT09IHMpIHsNCiAgICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciB1 ID0gMDsgdSA8IHMubGVuZ3RoOyB1KyspIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZh ciBjID0gc1t1XTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoSmwgPSBjOyBudWxs ICE9PSBKbDspIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGQgPSBKbDsNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChkLnRhZykgew0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNhc2UgMDoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBj YXNlIDExOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMTU6DQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBycyg4LCBkLCBpKTsNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgZiA9IGQuY2hpbGQ7 DQogICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChudWxsICE9PSBmKSAoZi5yZXR1cm4g PSBkKSwgKEpsID0gZik7DQogICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBmb3IgKDsgbnVsbCAhPT0gSmw7KSB7DQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB2YXIgcCA9IChkID0gSmwpLnNpYmxpbmcsDQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGggPSBkLnJldHVybjsNCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGlmICgoaXMoZCksIGQgPT09IGMpKSB7DQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEpsID0gbnVsbDsNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobnVsbCAhPT0gcCkgew0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAocC5yZXR1cm4gPSBoKSwgKEpsID0gcCk7DQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSmwgPSBo Ow0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAg ICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAg dmFyIG0gPSBpLmFsdGVybmF0ZTsNCiAgICAgICAgICAgICAgICAgICAgICBpZiAobnVsbCAh PT0gbSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGcgPSBtLmNoaWxkOw0KICAg ICAgICAgICAgICAgICAgICAgICAgaWYgKG51bGwgIT09IGcpIHsNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgbS5jaGlsZCA9IG51bGw7DQogICAgICAgICAgICAgICAgICAgICAgICAg IGRvIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgdiA9IGcuc2libGluZzsN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZy5zaWJsaW5nID0gbnVsbCksIChnID0g dik7DQogICAgICAgICAgICAgICAgICAgICAgICAgIH0gd2hpbGUgKG51bGwgIT09IGcpOw0K ICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgIH0NCiAg ICAgICAgICAgICAgICAgICAgICBKbCA9IGk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAg ICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgIGlmICgwICE9PSAoMjA2NCAm IGkuc3VidHJlZUZsYWdzKSAmJiBudWxsICE9PSBsKSAobC5yZXR1cm4gPSBpKSwgKEpsID0g bCk7DQogICAgICAgICAgICAgICAgICBlbHNlDQogICAgICAgICAgICAgICAgICAgIGU6IGZv ciAoOyBudWxsICE9PSBKbDspIHsNCiAgICAgICAgICAgICAgICAgICAgICBpZiAoMCAhPT0g KDIwNDggJiAoaSA9IEpsKS5mbGFncykpDQogICAgICAgICAgICAgICAgICAgICAgICBzd2l0 Y2ggKGkudGFnKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMDoNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgY2FzZSAxMToNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgY2FzZSAxNToNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBycyg5LCBpLCBpLnJl dHVybik7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAg ICAgdmFyIHkgPSBpLnNpYmxpbmc7DQogICAgICAgICAgICAgICAgICAgICAgaWYgKG51bGwg IT09IHkpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICh5LnJldHVybiA9IGkucmV0dXJu KSwgKEpsID0geSk7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhayBlOw0KICAgICAg ICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICBKbCA9IGkucmV0dXJu Ow0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAg ICAgICAgIHZhciBiID0gZS5jdXJyZW50Ow0KICAgICAgICAgICAgICAgIGZvciAoSmwgPSBi OyBudWxsICE9PSBKbDspIHsNCiAgICAgICAgICAgICAgICAgIHZhciB3ID0gKGwgPSBKbCku Y2hpbGQ7DQogICAgICAgICAgICAgICAgICBpZiAoMCAhPT0gKDIwNjQgJiBsLnN1YnRyZWVG bGFncykgJiYgbnVsbCAhPT0gdykgKHcucmV0dXJuID0gbCksIChKbCA9IHcpOw0KICAgICAg ICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICAgICAgICBlOiBmb3IgKGwgPSBiOyBu dWxsICE9PSBKbDspIHsNCiAgICAgICAgICAgICAgICAgICAgICBpZiAoMCAhPT0gKDIwNDgg JiAocyA9IEpsKS5mbGFncykpDQogICAgICAgICAgICAgICAgICAgICAgICB0cnkgew0KICAg ICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKHMudGFnKSB7DQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNh c2UgMTE6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAxNToNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIG9zKDksIHMpOw0KICAgICAgICAgICAgICAgICAgICAg ICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChTKSB7DQogICAgICAg ICAgICAgICAgICAgICAgICAgIEN1KHMsIHMucmV0dXJuLCBTKTsNCiAgICAgICAgICAgICAg ICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICBpZiAocyA9PT0gbCkgew0KICAg ICAgICAgICAgICAgICAgICAgICAgSmwgPSBudWxsOw0KICAgICAgICAgICAgICAgICAgICAg ICAgYnJlYWsgZTsNCiAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAg ICAgICAgdmFyIHggPSBzLnNpYmxpbmc7DQogICAgICAgICAgICAgICAgICAgICAgaWYgKG51 bGwgIT09IHgpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICh4LnJldHVybiA9IHMucmV0 dXJuKSwgKEpsID0geCk7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhayBlOw0KICAg ICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICBKbCA9IHMucmV0 dXJuOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAg ICAgICAgICAgIGlmICgoKE9zID0gbyksIFZvKCksIGF0ICYmICJmdW5jdGlvbiIgPT09IHR5 cGVvZiBhdC5vblBvc3RDb21taXRGaWJlclJvb3QpKQ0KICAgICAgICAgICAgICAgICAgdHJ5 IHsNCiAgICAgICAgICAgICAgICAgICAgYXQub25Qb3N0Q29tbWl0RmliZXJSb290KG90LCBl KTsNCiAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKFMpIHsgfQ0KICAgICAgICAgICAgICAg IHIgPSAhMDsNCiAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICByZXR1cm4gcjsNCiAg ICAgICAgICAgIH0gZmluYWxseSB7DQogICAgICAgICAgICAgIChidCA9IG4pLCAoUHMudHJh bnNpdGlvbiA9IHQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgIH0NCiAgICAgICAgICBy ZXR1cm4gITE7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gRXUoZSwgdCwgbikgew0K ICAgICAgICAgIChlID0gamEoZSwgKHQgPSBobCgwLCAodCA9IGNsKG4sIHQpKSwgMSkpLCAx KSksICh0ID0gdHUoKSksIG51bGwgIT09IGUgJiYgKHZ0KGUsIDEsIHQpLCBvdShlLCB0KSk7 DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gQ3UoZSwgdCwgbikgew0KICAgICAgICAg IGlmICgzID09PSBlLnRhZykgRXUoZSwgZSwgbik7DQogICAgICAgICAgZWxzZQ0KICAgICAg ICAgICAgZm9yICg7IG51bGwgIT09IHQ7KSB7DQogICAgICAgICAgICAgIGlmICgzID09PSB0 LnRhZykgew0KICAgICAgICAgICAgICAgIEV1KHQsIGUsIG4pOw0KICAgICAgICAgICAgICAg IGJyZWFrOw0KICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgIGlmICgxID09PSB0LnRh Zykgew0KICAgICAgICAgICAgICAgIHZhciByID0gdC5zdGF0ZU5vZGU7DQogICAgICAgICAg ICAgICAgaWYgKCJmdW5jdGlvbiIgPT09IHR5cGVvZiB0LnR5cGUuZ2V0RGVyaXZlZFN0YXRl RnJvbUVycm9yIHx8ICgiZnVuY3Rpb24iID09PSB0eXBlb2Ygci5jb21wb25lbnREaWRDYXRj aCAmJiAobnVsbCA9PT0gS3MgfHwgIUtzLmhhcyhyKSkpKSB7DQogICAgICAgICAgICAgICAg ICAodCA9IGphKHQsIChlID0gbWwodCwgKGUgPSBjbChuLCBlKSksIDEpKSwgMSkpLCAoZSA9 IHR1KCkpLCBudWxsICE9PSB0ICYmICh2dCh0LCAxLCBlKSwgb3UodCwgZSkpOw0KICAgICAg ICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICB9 DQogICAgICAgICAgICAgIHQgPSB0LnJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAg fQ0KICAgICAgICBmdW5jdGlvbiBSdShlLCB0LCBuKSB7DQogICAgICAgICAgdmFyIHIgPSBl LnBpbmdDYWNoZTsNCiAgICAgICAgICBudWxsICE9PSByICYmIHIuZGVsZXRlKHQpLA0KICAg ICAgICAgICAgKHQgPSB0dSgpKSwNCiAgICAgICAgICAgIChlLnBpbmdlZExhbmVzIHw9IGUu c3VzcGVuZGVkTGFuZXMgJiBuKSwNCiAgICAgICAgICAgIE5zID09PSBlICYmIChBcyAmIG4p ID09PSBuICYmICg0ID09PSBqcyB8fCAoMyA9PT0ganMgJiYgKDEzMDAyMzQyNCAmIEFzKSA9 PT0gQXMgJiYgNTAwID4gWGUoKSAtIFdzKSA/IHB1KGUsIDApIDogKEJzIHw9IG4pKSwNCiAg ICAgICAgICAgIG91KGUsIHQpOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIF91KGUs IHQpIHsNCiAgICAgICAgICAwID09PSB0ICYmICgwID09PSAoMSAmIGUubW9kZSkgPyAodCA9 IDEpIDogKCh0ID0gY3QpLCAwID09PSAoMTMwMDIzNDI0ICYgKGN0IDw8PSAxKSkgJiYgKGN0 ID0gNDE5NDMwNCkpKTsNCiAgICAgICAgICB2YXIgbiA9IHR1KCk7DQogICAgICAgICAgbnVs bCAhPT0gKGUgPSBOYShlLCB0KSkgJiYgKHZ0KGUsIHQsIG4pLCBvdShlLCBuKSk7DQogICAg ICAgIH0NCiAgICAgICAgZnVuY3Rpb24gUHUoZSkgew0KICAgICAgICAgIHZhciB0ID0gZS5t ZW1vaXplZFN0YXRlLA0KICAgICAgICAgICAgbiA9IDA7DQogICAgICAgICAgbnVsbCAhPT0g dCAmJiAobiA9IHQucmV0cnlMYW5lKSwgX3UoZSwgbik7DQogICAgICAgIH0NCiAgICAgICAg ZnVuY3Rpb24gT3UoZSwgdCkgew0KICAgICAgICAgIHZhciBuID0gMDsNCiAgICAgICAgICBz d2l0Y2ggKGUudGFnKSB7DQogICAgICAgICAgICBjYXNlIDEzOg0KICAgICAgICAgICAgICB2 YXIgciA9IGUuc3RhdGVOb2RlLA0KICAgICAgICAgICAgICAgIG8gPSBlLm1lbW9pemVkU3Rh dGU7DQogICAgICAgICAgICAgIG51bGwgIT09IG8gJiYgKG4gPSBvLnJldHJ5TGFuZSk7DQog ICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAxOToNCiAgICAgICAgICAg ICAgciA9IGUuc3RhdGVOb2RlOw0KICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAg IGRlZmF1bHQ6DQogICAgICAgICAgICAgIHRocm93IEVycm9yKGEoMzE0KSk7DQogICAgICAg ICAgfQ0KICAgICAgICAgIG51bGwgIT09IHIgJiYgci5kZWxldGUodCksIF91KGUsIG4pOw0K ICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIE51KGUsIHQpIHsNCiAgICAgICAgICByZXR1 cm4gS2UoZSwgdCk7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gVHUoZSwgdCwgbiwg cikgew0KICAgICAgICAgICh0aGlzLnRhZyA9IGUpLA0KICAgICAgICAgICAgKHRoaXMua2V5 ID0gbiksDQogICAgICAgICAgICAodGhpcy5zaWJsaW5nID0gdGhpcy5jaGlsZCA9IHRoaXMu cmV0dXJuID0gdGhpcy5zdGF0ZU5vZGUgPSB0aGlzLnR5cGUgPSB0aGlzLmVsZW1lbnRUeXBl ID0gbnVsbCksDQogICAgICAgICAgICAodGhpcy5pbmRleCA9IDApLA0KICAgICAgICAgICAg KHRoaXMucmVmID0gbnVsbCksDQogICAgICAgICAgICAodGhpcy5wZW5kaW5nUHJvcHMgPSB0 KSwNCiAgICAgICAgICAgICh0aGlzLmRlcGVuZGVuY2llcyA9IHRoaXMubWVtb2l6ZWRTdGF0 ZSA9IHRoaXMudXBkYXRlUXVldWUgPSB0aGlzLm1lbW9pemVkUHJvcHMgPSBudWxsKSwNCiAg ICAgICAgICAgICh0aGlzLm1vZGUgPSByKSwNCiAgICAgICAgICAgICh0aGlzLnN1YnRyZWVG bGFncyA9IHRoaXMuZmxhZ3MgPSAwKSwNCiAgICAgICAgICAgICh0aGlzLmRlbGV0aW9ucyA9 IG51bGwpLA0KICAgICAgICAgICAgKHRoaXMuY2hpbGRMYW5lcyA9IHRoaXMubGFuZXMgPSAw KSwNCiAgICAgICAgICAgICh0aGlzLmFsdGVybmF0ZSA9IG51bGwpOw0KICAgICAgICB9DQog ICAgICAgIGZ1bmN0aW9uIEF1KGUsIHQsIG4sIHIpIHsNCiAgICAgICAgICByZXR1cm4gbmV3 IFR1KGUsIHQsIG4sIHIpOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIE11KGUpIHsN CiAgICAgICAgICByZXR1cm4gISghKGUgPSBlLnByb3RvdHlwZSkgfHwgIWUuaXNSZWFjdENv bXBvbmVudCk7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24genUoZSwgdCkgew0KICAg ICAgICAgIHZhciBuID0gZS5hbHRlcm5hdGU7DQogICAgICAgICAgcmV0dXJuICgNCiAgICAg ICAgICAgIG51bGwgPT09IG4NCiAgICAgICAgICAgICAgPyAoKChuID0gQXUoZS50YWcsIHQs IGUua2V5LCBlLm1vZGUpKS5lbGVtZW50VHlwZSA9IGUuZWxlbWVudFR5cGUpLCAobi50eXBl ID0gZS50eXBlKSwgKG4uc3RhdGVOb2RlID0gZS5zdGF0ZU5vZGUpLCAobi5hbHRlcm5hdGUg PSBlKSwgKGUuYWx0ZXJuYXRlID0gbikpDQogICAgICAgICAgICAgIDogKChuLnBlbmRpbmdQ cm9wcyA9IHQpLCAobi50eXBlID0gZS50eXBlKSwgKG4uZmxhZ3MgPSAwKSwgKG4uc3VidHJl ZUZsYWdzID0gMCksIChuLmRlbGV0aW9ucyA9IG51bGwpKSwNCiAgICAgICAgICAgIChuLmZs YWdzID0gMTQ2ODAwNjQgJiBlLmZsYWdzKSwNCiAgICAgICAgICAgIChuLmNoaWxkTGFuZXMg PSBlLmNoaWxkTGFuZXMpLA0KICAgICAgICAgICAgKG4ubGFuZXMgPSBlLmxhbmVzKSwNCiAg ICAgICAgICAgIChuLmNoaWxkID0gZS5jaGlsZCksDQogICAgICAgICAgICAobi5tZW1vaXpl ZFByb3BzID0gZS5tZW1vaXplZFByb3BzKSwNCiAgICAgICAgICAgIChuLm1lbW9pemVkU3Rh dGUgPSBlLm1lbW9pemVkU3RhdGUpLA0KICAgICAgICAgICAgKG4udXBkYXRlUXVldWUgPSBl LnVwZGF0ZVF1ZXVlKSwNCiAgICAgICAgICAgICh0ID0gZS5kZXBlbmRlbmNpZXMpLA0KICAg ICAgICAgICAgKG4uZGVwZW5kZW5jaWVzID0gbnVsbCA9PT0gdCA/IG51bGwgOiB7IGxhbmVz OiB0LmxhbmVzLCBmaXJzdENvbnRleHQ6IHQuZmlyc3RDb250ZXh0IH0pLA0KICAgICAgICAg ICAgKG4uc2libGluZyA9IGUuc2libGluZyksDQogICAgICAgICAgICAobi5pbmRleCA9IGUu aW5kZXgpLA0KICAgICAgICAgICAgKG4ucmVmID0gZS5yZWYpLA0KICAgICAgICAgICAgbg0K ICAgICAgICAgICk7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24ganUoZSwgdCwgbiwg ciwgbywgaSkgew0KICAgICAgICAgIHZhciBsID0gMjsNCiAgICAgICAgICBpZiAoKChyID0g ZSksICJmdW5jdGlvbiIgPT09IHR5cGVvZiBlKSkgTXUoZSkgJiYgKGwgPSAxKTsNCiAgICAg ICAgICBlbHNlIGlmICgic3RyaW5nIiA9PT0gdHlwZW9mIGUpIGwgPSA1Ow0KICAgICAgICAg IGVsc2UNCiAgICAgICAgICAgIGU6IHN3aXRjaCAoZSkgew0KICAgICAgICAgICAgICBjYXNl IGs6DQogICAgICAgICAgICAgICAgcmV0dXJuIEl1KG4uY2hpbGRyZW4sIG8sIGksIHQpOw0K ICAgICAgICAgICAgICBjYXNlIEU6DQogICAgICAgICAgICAgICAgKGwgPSA4KSwgKG8gfD0g OCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgIGNhc2UgQzoNCiAg ICAgICAgICAgICAgICByZXR1cm4gKChlID0gQXUoMTIsIG4sIHQsIDIgfCBvKSkuZWxlbWVu dFR5cGUgPSBDKSwgKGUubGFuZXMgPSBpKSwgZTsNCiAgICAgICAgICAgICAgY2FzZSBPOg0K ICAgICAgICAgICAgICAgIHJldHVybiAoKGUgPSBBdSgxMywgbiwgdCwgbykpLmVsZW1lbnRU eXBlID0gTyksIChlLmxhbmVzID0gaSksIGU7DQogICAgICAgICAgICAgIGNhc2UgTjoNCiAg ICAgICAgICAgICAgICByZXR1cm4gKChlID0gQXUoMTksIG4sIHQsIG8pKS5lbGVtZW50VHlw ZSA9IE4pLCAoZS5sYW5lcyA9IGkpLCBlOw0KICAgICAgICAgICAgICBjYXNlIE06DQogICAg ICAgICAgICAgICAgcmV0dXJuIEx1KG4sIG8sIGksIHQpOw0KICAgICAgICAgICAgICBkZWZh dWx0Og0KICAgICAgICAgICAgICAgIGlmICgib2JqZWN0IiA9PT0gdHlwZW9mIGUgJiYgbnVs bCAhPT0gZSkNCiAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZS4kJHR5cGVvZikgew0KICAg ICAgICAgICAgICAgICAgICBjYXNlIFI6DQogICAgICAgICAgICAgICAgICAgICAgbCA9IDEw Ow0KICAgICAgICAgICAgICAgICAgICAgIGJyZWFrIGU7DQogICAgICAgICAgICAgICAgICAg IGNhc2UgXzoNCiAgICAgICAgICAgICAgICAgICAgICBsID0gOTsNCiAgICAgICAgICAgICAg ICAgICAgICBicmVhayBlOw0KICAgICAgICAgICAgICAgICAgICBjYXNlIFA6DQogICAgICAg ICAgICAgICAgICAgICAgbCA9IDExOw0KICAgICAgICAgICAgICAgICAgICAgIGJyZWFrIGU7 DQogICAgICAgICAgICAgICAgICAgIGNhc2UgVDoNCiAgICAgICAgICAgICAgICAgICAgICBs ID0gMTQ7DQogICAgICAgICAgICAgICAgICAgICAgYnJlYWsgZTsNCiAgICAgICAgICAgICAg ICAgICAgY2FzZSBBOg0KICAgICAgICAgICAgICAgICAgICAgIChsID0gMTYpLCAociA9IG51 bGwpOw0KICAgICAgICAgICAgICAgICAgICAgIGJyZWFrIGU7DQogICAgICAgICAgICAgICAg ICB9DQogICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoYSgxMzAsIG51bGwgPT0gZSA/IGUg OiB0eXBlb2YgZSwgIiIpKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICByZXR1cm4gKCh0 ID0gQXUobCwgbiwgdCwgbykpLmVsZW1lbnRUeXBlID0gZSksICh0LnR5cGUgPSByKSwgKHQu bGFuZXMgPSBpKSwgdDsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBJdShlLCB0LCBu LCByKSB7DQogICAgICAgICAgcmV0dXJuICgoZSA9IEF1KDcsIGUsIHIsIHQpKS5sYW5lcyA9 IG4pLCBlOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIEx1KGUsIHQsIG4sIHIpIHsN CiAgICAgICAgICByZXR1cm4gKChlID0gQXUoMjIsIGUsIHIsIHQpKS5lbGVtZW50VHlwZSA9 IE0pLCAoZS5sYW5lcyA9IG4pLCAoZS5zdGF0ZU5vZGUgPSB7IGlzSGlkZGVuOiAhMSB9KSwg ZTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBGdShlLCB0LCBuKSB7DQogICAgICAg ICAgcmV0dXJuICgoZSA9IEF1KDYsIGUsIG51bGwsIHQpKS5sYW5lcyA9IG4pLCBlOw0KICAg ICAgICB9DQogICAgICAgIGZ1bmN0aW9uIEJ1KGUsIHQsIG4pIHsNCiAgICAgICAgICByZXR1 cm4gKCh0ID0gQXUoNCwgbnVsbCAhPT0gZS5jaGlsZHJlbiA/IGUuY2hpbGRyZW4gOiBbXSwg ZS5rZXksIHQpKS5sYW5lcyA9IG4pLCAodC5zdGF0ZU5vZGUgPSB7IGNvbnRhaW5lckluZm86 IGUuY29udGFpbmVySW5mbywgcGVuZGluZ0NoaWxkcmVuOiBudWxsLCBpbXBsZW1lbnRhdGlv bjogZS5pbXBsZW1lbnRhdGlvbiB9KSwgdDsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlv biBEdShlLCB0LCBuLCByLCBvKSB7DQogICAgICAgICAgKHRoaXMudGFnID0gdCksDQogICAg ICAgICAgICAodGhpcy5jb250YWluZXJJbmZvID0gZSksDQogICAgICAgICAgICAodGhpcy5m aW5pc2hlZFdvcmsgPSB0aGlzLnBpbmdDYWNoZSA9IHRoaXMuY3VycmVudCA9IHRoaXMucGVu ZGluZ0NoaWxkcmVuID0gbnVsbCksDQogICAgICAgICAgICAodGhpcy50aW1lb3V0SGFuZGxl ID0gLTEpLA0KICAgICAgICAgICAgKHRoaXMuY2FsbGJhY2tOb2RlID0gdGhpcy5wZW5kaW5n Q29udGV4dCA9IHRoaXMuY29udGV4dCA9IG51bGwpLA0KICAgICAgICAgICAgKHRoaXMuY2Fs bGJhY2tQcmlvcml0eSA9IDApLA0KICAgICAgICAgICAgKHRoaXMuZXZlbnRUaW1lcyA9IGd0 KDApKSwNCiAgICAgICAgICAgICh0aGlzLmV4cGlyYXRpb25UaW1lcyA9IGd0KC0xKSksDQog ICAgICAgICAgICAodGhpcy5lbnRhbmdsZWRMYW5lcyA9IHRoaXMuZmluaXNoZWRMYW5lcyA9 IHRoaXMubXV0YWJsZVJlYWRMYW5lcyA9IHRoaXMuZXhwaXJlZExhbmVzID0gdGhpcy5waW5n ZWRMYW5lcyA9IHRoaXMuc3VzcGVuZGVkTGFuZXMgPSB0aGlzLnBlbmRpbmdMYW5lcyA9IDAp LA0KICAgICAgICAgICAgKHRoaXMuZW50YW5nbGVtZW50cyA9IGd0KDApKSwNCiAgICAgICAg ICAgICh0aGlzLmlkZW50aWZpZXJQcmVmaXggPSByKSwNCiAgICAgICAgICAgICh0aGlzLm9u UmVjb3ZlcmFibGVFcnJvciA9IG8pLA0KICAgICAgICAgICAgKHRoaXMubXV0YWJsZVNvdXJj ZUVhZ2VySHlkcmF0aW9uRGF0YSA9IG51bGwpOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0 aW9uIFV1KGUsIHQsIG4sIHIsIG8sIGEsIGksIGwsIHMpIHsNCiAgICAgICAgICByZXR1cm4g KA0KICAgICAgICAgICAgKGUgPSBuZXcgRHUoZSwgdCwgbiwgbCwgcykpLA0KICAgICAgICAg ICAgMSA9PT0gdCA/ICgodCA9IDEpLCAhMCA9PT0gYSAmJiAodCB8PSA4KSkgOiAodCA9IDAp LA0KICAgICAgICAgICAgKGEgPSBBdSgzLCBudWxsLCBudWxsLCB0KSksDQogICAgICAgICAg ICAoZS5jdXJyZW50ID0gYSksDQogICAgICAgICAgICAoYS5zdGF0ZU5vZGUgPSBlKSwNCiAg ICAgICAgICAgIChhLm1lbW9pemVkU3RhdGUgPSB7IGVsZW1lbnQ6IHIsIGlzRGVoeWRyYXRl ZDogbiwgY2FjaGU6IG51bGwsIHRyYW5zaXRpb25zOiBudWxsLCBwZW5kaW5nU3VzcGVuc2VC b3VuZGFyaWVzOiBudWxsIH0pLA0KICAgICAgICAgICAgQWEoYSksDQogICAgICAgICAgICBl DQogICAgICAgICAgKTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBXdShlKSB7DQog ICAgICAgICAgaWYgKCFlKSByZXR1cm4gUG87DQogICAgICAgICAgZTogew0KICAgICAgICAg ICAgaWYgKFdlKChlID0gZS5fcmVhY3RJbnRlcm5hbHMpKSAhPT0gZSB8fCAxICE9PSBlLnRh ZykgdGhyb3cgRXJyb3IoYSgxNzApKTsNCiAgICAgICAgICAgIHZhciB0ID0gZTsNCiAgICAg ICAgICAgIGRvIHsNCiAgICAgICAgICAgICAgc3dpdGNoICh0LnRhZykgew0KICAgICAgICAg ICAgICAgIGNhc2UgMzoNCiAgICAgICAgICAgICAgICAgIHQgPSB0LnN0YXRlTm9kZS5jb250 ZXh0Ow0KICAgICAgICAgICAgICAgICAgYnJlYWsgZTsNCiAgICAgICAgICAgICAgICBjYXNl IDE6DQogICAgICAgICAgICAgICAgICBpZiAoTW8odC50eXBlKSkgew0KICAgICAgICAgICAg ICAgICAgICB0ID0gdC5zdGF0ZU5vZGUuX19yZWFjdEludGVybmFsTWVtb2l6ZWRNZXJnZWRD aGlsZENvbnRleHQ7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrIGU7DQogICAgICAgICAg ICAgICAgICB9DQogICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgdCA9IHQucmV0dXJu Ow0KICAgICAgICAgICAgfSB3aGlsZSAobnVsbCAhPT0gdCk7DQogICAgICAgICAgICB0aHJv dyBFcnJvcihhKDE3MSkpOw0KICAgICAgICAgIH0NCiAgICAgICAgICBpZiAoMSA9PT0gZS50 YWcpIHsNCiAgICAgICAgICAgIHZhciBuID0gZS50eXBlOw0KICAgICAgICAgICAgaWYgKE1v KG4pKSByZXR1cm4gSW8oZSwgbiwgdCk7DQogICAgICAgICAgfQ0KICAgICAgICAgIHJldHVy biB0Ow0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIFZ1KGUsIHQsIG4sIHIsIG8sIGEs IGksIGwsIHMpIHsNCiAgICAgICAgICByZXR1cm4gKA0KICAgICAgICAgICAgKChlID0gVXUo biwgciwgITAsIGUsIDAsIGEsIDAsIGwsIHMpKS5jb250ZXh0ID0gV3UobnVsbCkpLA0KICAg ICAgICAgICAgKG4gPSBlLmN1cnJlbnQpLA0KICAgICAgICAgICAgKChhID0gemEoKHIgPSB0 dSgpKSwgKG8gPSBudShuKSkpKS5jYWxsYmFjayA9IHZvaWQgMCAhPT0gdCAmJiBudWxsICE9 PSB0ID8gdCA6IG51bGwpLA0KICAgICAgICAgICAgamEobiwgYSwgbyksDQogICAgICAgICAg ICAoZS5jdXJyZW50LmxhbmVzID0gbyksDQogICAgICAgICAgICB2dChlLCBvLCByKSwNCiAg ICAgICAgICAgIG91KGUsIHIpLA0KICAgICAgICAgICAgZQ0KICAgICAgICAgICk7DQogICAg ICAgIH0NCiAgICAgICAgZnVuY3Rpb24gSHUoZSwgdCwgbiwgcikgew0KICAgICAgICAgIHZh ciBvID0gdC5jdXJyZW50LA0KICAgICAgICAgICAgYSA9IHR1KCksDQogICAgICAgICAgICBp ID0gbnUobyk7DQogICAgICAgICAgcmV0dXJuICgNCiAgICAgICAgICAgIChuID0gV3Uobikp LA0KICAgICAgICAgICAgbnVsbCA9PT0gdC5jb250ZXh0ID8gKHQuY29udGV4dCA9IG4pIDog KHQucGVuZGluZ0NvbnRleHQgPSBuKSwNCiAgICAgICAgICAgICgodCA9IHphKGEsIGkpKS5w YXlsb2FkID0geyBlbGVtZW50OiBlIH0pLA0KICAgICAgICAgICAgbnVsbCAhPT0gKHIgPSB2 b2lkIDAgPT09IHIgPyBudWxsIDogcikgJiYgKHQuY2FsbGJhY2sgPSByKSwNCiAgICAgICAg ICAgIG51bGwgIT09IChlID0gamEobywgdCwgaSkpICYmIChydShlLCBvLCBpLCBhKSwgSWEo ZSwgbywgaSkpLA0KICAgICAgICAgICAgaQ0KICAgICAgICAgICk7DQogICAgICAgIH0NCiAg ICAgICAgZnVuY3Rpb24gcXUoZSkgew0KICAgICAgICAgIHJldHVybiAoZSA9IGUuY3VycmVu dCkuY2hpbGQgPyAoZS5jaGlsZC50YWcsIGUuY2hpbGQuc3RhdGVOb2RlKSA6IG51bGw7DQog ICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gJHUoZSwgdCkgew0KICAgICAgICAgIGlmIChu dWxsICE9PSAoZSA9IGUubWVtb2l6ZWRTdGF0ZSkgJiYgbnVsbCAhPT0gZS5kZWh5ZHJhdGVk KSB7DQogICAgICAgICAgICB2YXIgbiA9IGUucmV0cnlMYW5lOw0KICAgICAgICAgICAgZS5y ZXRyeUxhbmUgPSAwICE9PSBuICYmIG4gPCB0ID8gbiA6IHQ7DQogICAgICAgICAgfQ0KICAg ICAgICB9DQogICAgICAgIGZ1bmN0aW9uIEt1KGUsIHQpIHsNCiAgICAgICAgICAkdShlLCB0 KSwgKGUgPSBlLmFsdGVybmF0ZSkgJiYgJHUoZSwgdCk7DQogICAgICAgIH0NCiAgICAgICAg RXMgPSBmdW5jdGlvbiAoZSwgdCwgbikgew0KICAgICAgICAgIGlmIChudWxsICE9PSBlKQ0K ICAgICAgICAgICAgaWYgKGUubWVtb2l6ZWRQcm9wcyAhPT0gdC5wZW5kaW5nUHJvcHMgfHwg Tm8uY3VycmVudCkgd2wgPSAhMDsNCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAg ICBpZiAoMCA9PT0gKGUubGFuZXMgJiBuKSAmJiAwID09PSAoMTI4ICYgdC5mbGFncykpDQog ICAgICAgICAgICAgICAgcmV0dXJuICgNCiAgICAgICAgICAgICAgICAgICh3bCA9ICExKSwN CiAgICAgICAgICAgICAgICAgIChmdW5jdGlvbiAoZSwgdCwgbikgew0KICAgICAgICAgICAg ICAgICAgICBzd2l0Y2ggKHQudGFnKSB7DQogICAgICAgICAgICAgICAgICAgICAgY2FzZSAz Og0KICAgICAgICAgICAgICAgICAgICAgICAgTmwodCksIGhhKCk7DQogICAgICAgICAgICAg ICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICBjYXNlIDU6DQogICAg ICAgICAgICAgICAgICAgICAgICBpaSh0KTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJy ZWFrOw0KICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgICAg ICAgICAgIE1vKHQudHlwZSkgJiYgTG8odCk7DQogICAgICAgICAgICAgICAgICAgICAgICBi cmVhazsNCiAgICAgICAgICAgICAgICAgICAgICBjYXNlIDQ6DQogICAgICAgICAgICAgICAg ICAgICAgICBvaSh0LCB0LnN0YXRlTm9kZS5jb250YWluZXJJbmZvKTsNCiAgICAgICAgICAg ICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMTA6DQog ICAgICAgICAgICAgICAgICAgICAgICB2YXIgciA9IHQudHlwZS5fY29udGV4dCwNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgbyA9IHQubWVtb2l6ZWRQcm9wcy52YWx1ZTsNCiAgICAg ICAgICAgICAgICAgICAgICAgIF9vKHlhLCByLl9jdXJyZW50VmFsdWUpLCAoci5fY3VycmVu dFZhbHVlID0gbyk7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAg ICAgICAgICAgICAgICBjYXNlIDEzOg0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG51 bGwgIT09IChyID0gdC5tZW1vaXplZFN0YXRlKSkNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgcmV0dXJuIG51bGwgIT09IHIuZGVoeWRyYXRlZA0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgID8gKF9vKHNpLCAxICYgc2kuY3VycmVudCksICh0LmZsYWdzIHw9IDEyOCksIG51 bGwpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAwICE9PSAobiAmIHQuY2hpbGQu Y2hpbGRMYW5lcykNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gRmwoZSwgdCwg bikNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogKF9vKHNpLCAxICYgc2kuY3Vy cmVudCksIG51bGwgIT09IChlID0gcWwoZSwgdCwgbikpID8gZS5zaWJsaW5nIDogbnVsbCk7 DQogICAgICAgICAgICAgICAgICAgICAgICBfbyhzaSwgMSAmIHNpLmN1cnJlbnQpOw0KICAg ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgY2Fz ZSAxOToNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgoKHIgPSAwICE9PSAobiAmIHQu Y2hpbGRMYW5lcykpLCAwICE9PSAoMTI4ICYgZS5mbGFncykpKSB7DQogICAgICAgICAgICAg ICAgICAgICAgICAgIGlmIChyKSByZXR1cm4gVmwoZSwgdCwgbik7DQogICAgICAgICAgICAg ICAgICAgICAgICAgIHQuZmxhZ3MgfD0gMTI4Ow0KICAgICAgICAgICAgICAgICAgICAgICAg fQ0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKChudWxsICE9PSAobyA9IHQubWVtb2l6 ZWRTdGF0ZSkgJiYgKChvLnJlbmRlcmluZyA9IG51bGwpLCAoby50YWlsID0gbnVsbCksIChv Lmxhc3RFZmZlY3QgPSBudWxsKSksIF9vKHNpLCBzaS5jdXJyZW50KSwgcikpIGJyZWFrOw0K ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7DQogICAgICAgICAgICAgICAg ICAgICAgY2FzZSAyMjoNCiAgICAgICAgICAgICAgICAgICAgICBjYXNlIDIzOg0KICAgICAg ICAgICAgICAgICAgICAgICAgcmV0dXJuICh0LmxhbmVzID0gMCksIENsKGUsIHQsIG4pOw0K ICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBxbChl LCB0LCBuKTsNCiAgICAgICAgICAgICAgICAgIH0pKGUsIHQsIG4pDQogICAgICAgICAgICAg ICAgKTsNCiAgICAgICAgICAgICAgd2wgPSAwICE9PSAoMTMxMDcyICYgZS5mbGFncyk7DQog ICAgICAgICAgICB9DQogICAgICAgICAgZWxzZSAod2wgPSAhMSksIGFhICYmIDAgIT09ICgx MDQ4NTc2ICYgdC5mbGFncykgJiYgZWEodCwgS28sIHQuaW5kZXgpOw0KICAgICAgICAgIHN3 aXRjaCAoKCh0LmxhbmVzID0gMCksIHQudGFnKSkgew0KICAgICAgICAgICAgY2FzZSAyOg0K ICAgICAgICAgICAgICB2YXIgciA9IHQudHlwZTsNCiAgICAgICAgICAgICAgSGwoZSwgdCks IChlID0gdC5wZW5kaW5nUHJvcHMpOw0KICAgICAgICAgICAgICB2YXIgbyA9IEFvKHQsIE9v LmN1cnJlbnQpOw0KICAgICAgICAgICAgICBDYSh0LCBuKSwgKG8gPSBFaShudWxsLCB0LCBy LCBlLCBvLCBuKSk7DQogICAgICAgICAgICAgIHZhciBpID0gQ2koKTsNCiAgICAgICAgICAg ICAgcmV0dXJuICgNCiAgICAgICAgICAgICAgICAodC5mbGFncyB8PSAxKSwNCiAgICAgICAg ICAgICAgICAib2JqZWN0IiA9PT0gdHlwZW9mIG8gJiYgbnVsbCAhPT0gbyAmJiAiZnVuY3Rp b24iID09PSB0eXBlb2Ygby5yZW5kZXIgJiYgdm9pZCAwID09PSBvLiQkdHlwZW9mDQogICAg ICAgICAgICAgICAgICA/ICgodC50YWcgPSAxKSwNCiAgICAgICAgICAgICAgICAgICAgKHQu bWVtb2l6ZWRTdGF0ZSA9IG51bGwpLA0KICAgICAgICAgICAgICAgICAgICAodC51cGRhdGVR dWV1ZSA9IG51bGwpLA0KICAgICAgICAgICAgICAgICAgICBNbyhyKSA/ICgoaSA9ICEwKSwg TG8odCkpIDogKGkgPSAhMSksDQogICAgICAgICAgICAgICAgICAgICh0Lm1lbW9pemVkU3Rh dGUgPSBudWxsICE9PSBvLnN0YXRlICYmIHZvaWQgMCAhPT0gby5zdGF0ZSA/IG8uc3RhdGUg OiBudWxsKSwNCiAgICAgICAgICAgICAgICAgICAgQWEodCksDQogICAgICAgICAgICAgICAg ICAgIChvLnVwZGF0ZXIgPSBXYSksDQogICAgICAgICAgICAgICAgICAgICh0LnN0YXRlTm9k ZSA9IG8pLA0KICAgICAgICAgICAgICAgICAgICAoby5fcmVhY3RJbnRlcm5hbHMgPSB0KSwN CiAgICAgICAgICAgICAgICAgICAgJGEodCwgciwgZSwgbiksDQogICAgICAgICAgICAgICAg ICAgICh0ID0gT2wobnVsbCwgdCwgciwgITAsIGksIG4pKSkNCiAgICAgICAgICAgICAgICAg IDogKCh0LnRhZyA9IDApLCBhYSAmJiBpICYmIHRhKHQpLCB4bChudWxsLCB0LCBvLCBuKSwg KHQgPSB0LmNoaWxkKSksDQogICAgICAgICAgICAgICAgdA0KICAgICAgICAgICAgICApOw0K ICAgICAgICAgICAgY2FzZSAxNjoNCiAgICAgICAgICAgICAgciA9IHQuZWxlbWVudFR5cGU7 DQogICAgICAgICAgICAgIGU6IHsNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKA0KICAgICAg ICAgICAgICAgIChIbChlLCB0KSwNCiAgICAgICAgICAgICAgICAgIChlID0gdC5wZW5kaW5n UHJvcHMpLA0KICAgICAgICAgICAgICAgICAgKHIgPSAobyA9IHIuX2luaXQpKHIuX3BheWxv YWQpKSwNCiAgICAgICAgICAgICAgICAgICh0LnR5cGUgPSByKSwNCiAgICAgICAgICAgICAg ICAgIChvID0gdC50YWcgPSAoZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgICAgICAgICAg aWYgKCJmdW5jdGlvbiIgPT09IHR5cGVvZiBlKSByZXR1cm4gTXUoZSkgPyAxIDogMDsNCiAg ICAgICAgICAgICAgICAgICAgaWYgKHZvaWQgMCAhPT0gZSAmJiBudWxsICE9PSBlKSB7DQog ICAgICAgICAgICAgICAgICAgICAgaWYgKChlID0gZS4kJHR5cGVvZikgPT09IFApIHJldHVy biAxMTsNCiAgICAgICAgICAgICAgICAgICAgICBpZiAoZSA9PT0gVCkgcmV0dXJuIDE0Ow0K ICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHJldHVybiAyOw0K ICAgICAgICAgICAgICAgICAgfSkocikpLA0KICAgICAgICAgICAgICAgICAgKGUgPSB2YShy LCBlKSksDQogICAgICAgICAgICAgICAgICBvKQ0KICAgICAgICAgICAgICAgICkgew0KICAg ICAgICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgICAgICAgICB0ID0gX2wobnVs bCwgdCwgciwgZSwgbik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrIGU7DQogICAgICAg ICAgICAgICAgICBjYXNlIDE6DQogICAgICAgICAgICAgICAgICAgIHQgPSBQbChudWxsLCB0 LCByLCBlLCBuKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWsgZTsNCiAgICAgICAgICAg ICAgICAgIGNhc2UgMTE6DQogICAgICAgICAgICAgICAgICAgIHQgPSBTbChudWxsLCB0LCBy LCBlLCBuKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWsgZTsNCiAgICAgICAgICAgICAg ICAgIGNhc2UgMTQ6DQogICAgICAgICAgICAgICAgICAgIHQgPSBrbChudWxsLCB0LCByLCB2 YShyLnR5cGUsIGUpLCBuKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWsgZTsNCiAgICAg ICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoYSgzMDYsIHIsICIi KSk7DQogICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgcmV0dXJuIHQ7DQogICAgICAg ICAgICBjYXNlIDA6DQogICAgICAgICAgICAgIHJldHVybiAociA9IHQudHlwZSksIChvID0g dC5wZW5kaW5nUHJvcHMpLCBfbChlLCB0LCByLCAobyA9IHQuZWxlbWVudFR5cGUgPT09IHIg PyBvIDogdmEociwgbykpLCBuKTsNCiAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAg ICAgcmV0dXJuIChyID0gdC50eXBlKSwgKG8gPSB0LnBlbmRpbmdQcm9wcyksIFBsKGUsIHQs IHIsIChvID0gdC5lbGVtZW50VHlwZSA9PT0gciA/IG8gOiB2YShyLCBvKSksIG4pOw0KICAg ICAgICAgICAgY2FzZSAzOg0KICAgICAgICAgICAgICBlOiB7DQogICAgICAgICAgICAgICAg aWYgKChObCh0KSwgbnVsbCA9PT0gZSkpIHRocm93IEVycm9yKGEoMzg3KSk7DQogICAgICAg ICAgICAgICAgKHIgPSB0LnBlbmRpbmdQcm9wcyksIChvID0gKGkgPSB0Lm1lbW9pemVkU3Rh dGUpLmVsZW1lbnQpLCBNYShlLCB0KSwgRmEodCwgciwgbnVsbCwgbik7DQogICAgICAgICAg ICAgICAgdmFyIGwgPSB0Lm1lbW9pemVkU3RhdGU7DQogICAgICAgICAgICAgICAgaWYgKCgo ciA9IGwuZWxlbWVudCksIGkuaXNEZWh5ZHJhdGVkKSkgew0KICAgICAgICAgICAgICAgICAg aWYgKA0KICAgICAgICAgICAgICAgICAgICAoKGkgPSB7IGVsZW1lbnQ6IHIsIGlzRGVoeWRy YXRlZDogITEsIGNhY2hlOiBsLmNhY2hlLCBwZW5kaW5nU3VzcGVuc2VCb3VuZGFyaWVzOiBs LnBlbmRpbmdTdXNwZW5zZUJvdW5kYXJpZXMsIHRyYW5zaXRpb25zOiBsLnRyYW5zaXRpb25z IH0pLA0KICAgICAgICAgICAgICAgICAgICAgICh0LnVwZGF0ZVF1ZXVlLmJhc2VTdGF0ZSA9 IGkpLA0KICAgICAgICAgICAgICAgICAgICAgICh0Lm1lbW9pemVkU3RhdGUgPSBpKSwNCiAg ICAgICAgICAgICAgICAgICAgICAyNTYgJiB0LmZsYWdzKQ0KICAgICAgICAgICAgICAgICAg KSB7DQogICAgICAgICAgICAgICAgICAgIHQgPSBUbChlLCB0LCByLCBuLCAobyA9IGNsKEVy cm9yKGEoNDIzKSksIHQpKSk7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrIGU7DQogICAg ICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICBpZiAociAhPT0gbykgew0KICAg ICAgICAgICAgICAgICAgICB0ID0gVGwoZSwgdCwgciwgbiwgKG8gPSBjbChFcnJvcihhKDQy NCkpLCB0KSkpOw0KICAgICAgICAgICAgICAgICAgICBicmVhayBlOw0KICAgICAgICAgICAg ICAgICAgfQ0KICAgICAgICAgICAgICAgICAgZm9yIChvYSA9IHVvKHQuc3RhdGVOb2RlLmNv bnRhaW5lckluZm8uZmlyc3RDaGlsZCksIHJhID0gdCwgYWEgPSAhMCwgaWEgPSBudWxsLCBu ID0gWmEodCwgbnVsbCwgciwgbiksIHQuY2hpbGQgPSBuOyBuOykgKG4uZmxhZ3MgPSAoLTMg JiBuLmZsYWdzKSB8IDQwOTYpLCAobiA9IG4uc2libGluZyk7DQogICAgICAgICAgICAgICAg fSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgIGlmICgoaGEoKSwgciA9PT0gbykpIHsNCiAg ICAgICAgICAgICAgICAgICAgdCA9IHFsKGUsIHQsIG4pOw0KICAgICAgICAgICAgICAgICAg ICBicmVhayBlOw0KICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgeGwo ZSwgdCwgciwgbik7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHQgPSB0 LmNoaWxkOw0KICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgIHJldHVybiB0Ow0KICAg ICAgICAgICAgY2FzZSA1Og0KICAgICAgICAgICAgICByZXR1cm4gKA0KICAgICAgICAgICAg ICAgIGlpKHQpLA0KICAgICAgICAgICAgICAgIG51bGwgPT09IGUgJiYgY2EodCksDQogICAg ICAgICAgICAgICAgKHIgPSB0LnR5cGUpLA0KICAgICAgICAgICAgICAgIChvID0gdC5wZW5k aW5nUHJvcHMpLA0KICAgICAgICAgICAgICAgIChpID0gbnVsbCAhPT0gZSA/IGUubWVtb2l6 ZWRQcm9wcyA6IG51bGwpLA0KICAgICAgICAgICAgICAgIChsID0gby5jaGlsZHJlbiksDQog ICAgICAgICAgICAgICAgbm8ociwgbykgPyAobCA9IG51bGwpIDogbnVsbCAhPT0gaSAmJiBu byhyLCBpKSAmJiAodC5mbGFncyB8PSAzMiksDQogICAgICAgICAgICAgICAgUmwoZSwgdCks DQogICAgICAgICAgICAgICAgeGwoZSwgdCwgbCwgbiksDQogICAgICAgICAgICAgICAgdC5j aGlsZA0KICAgICAgICAgICAgICApOw0KICAgICAgICAgICAgY2FzZSA2Og0KICAgICAgICAg ICAgICByZXR1cm4gbnVsbCA9PT0gZSAmJiBjYSh0KSwgbnVsbDsNCiAgICAgICAgICAgIGNh c2UgMTM6DQogICAgICAgICAgICAgIHJldHVybiBGbChlLCB0LCBuKTsNCiAgICAgICAgICAg IGNhc2UgNDoNCiAgICAgICAgICAgICAgcmV0dXJuIG9pKHQsIHQuc3RhdGVOb2RlLmNvbnRh aW5lckluZm8pLCAociA9IHQucGVuZGluZ1Byb3BzKSwgbnVsbCA9PT0gZSA/ICh0LmNoaWxk ID0gWGEodCwgbnVsbCwgciwgbikpIDogeGwoZSwgdCwgciwgbiksIHQuY2hpbGQ7DQogICAg ICAgICAgICBjYXNlIDExOg0KICAgICAgICAgICAgICByZXR1cm4gKHIgPSB0LnR5cGUpLCAo byA9IHQucGVuZGluZ1Byb3BzKSwgU2woZSwgdCwgciwgKG8gPSB0LmVsZW1lbnRUeXBlID09 PSByID8gbyA6IHZhKHIsIG8pKSwgbik7DQogICAgICAgICAgICBjYXNlIDc6DQogICAgICAg ICAgICAgIHJldHVybiB4bChlLCB0LCB0LnBlbmRpbmdQcm9wcywgbiksIHQuY2hpbGQ7DQog ICAgICAgICAgICBjYXNlIDg6DQogICAgICAgICAgICBjYXNlIDEyOg0KICAgICAgICAgICAg ICByZXR1cm4geGwoZSwgdCwgdC5wZW5kaW5nUHJvcHMuY2hpbGRyZW4sIG4pLCB0LmNoaWxk Ow0KICAgICAgICAgICAgY2FzZSAxMDoNCiAgICAgICAgICAgICAgZTogew0KICAgICAgICAg ICAgICAgIGlmICgoKHIgPSB0LnR5cGUuX2NvbnRleHQpLCAobyA9IHQucGVuZGluZ1Byb3Bz KSwgKGkgPSB0Lm1lbW9pemVkUHJvcHMpLCAobCA9IG8udmFsdWUpLCBfbyh5YSwgci5fY3Vy cmVudFZhbHVlKSwgKHIuX2N1cnJlbnRWYWx1ZSA9IGwpLCBudWxsICE9PSBpKSkNCiAgICAg ICAgICAgICAgICAgIGlmIChscihpLnZhbHVlLCBsKSkgew0KICAgICAgICAgICAgICAgICAg ICBpZiAoaS5jaGlsZHJlbiA9PT0gby5jaGlsZHJlbiAmJiAhTm8uY3VycmVudCkgew0KICAg ICAgICAgICAgICAgICAgICAgIHQgPSBxbChlLCB0LCBuKTsNCiAgICAgICAgICAgICAgICAg ICAgICBicmVhayBlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAg ICB9IGVsc2UNCiAgICAgICAgICAgICAgICAgICAgZm9yIChudWxsICE9PSAoaSA9IHQuY2hp bGQpICYmIChpLnJldHVybiA9IHQpOyBudWxsICE9PSBpOykgew0KICAgICAgICAgICAgICAg ICAgICAgIHZhciBzID0gaS5kZXBlbmRlbmNpZXM7DQogICAgICAgICAgICAgICAgICAgICAg aWYgKG51bGwgIT09IHMpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGwgPSBpLmNoaWxk Ow0KICAgICAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgdSA9IHMuZmlyc3RDb250ZXh0 OyBudWxsICE9PSB1Oykgew0KICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodS5jb250 ZXh0ID09PSByKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKDEgPT09IGku dGFnKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodSA9IHphKC0xLCBuICYg LW4pKS50YWcgPSAyOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGMgPSBp LnVwZGF0ZVF1ZXVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG51bGwg IT09IGMpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGQgPSAoYyA9 IGMuc2hhcmVkKS5wZW5kaW5nOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBu dWxsID09PSBkID8gKHUubmV4dCA9IHUpIDogKCh1Lm5leHQgPSBkLm5leHQpLCAoZC5uZXh0 ID0gdSkpLCAoYy5wZW5kaW5nID0gdSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChpLmxhbmVzIHw9IG4pLCBudWxsICE9PSAodSA9IGkuYWx0ZXJuYXRlKSAm JiAodS5sYW5lcyB8PSBuKSwgRWEoaS5yZXR1cm4sIG4sIHQpLCAocy5sYW5lcyB8PSBuKTsN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICB1ID0gdS5uZXh0Ow0KICAg ICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBp ZiAoMTAgPT09IGkudGFnKSBsID0gaS50eXBlID09PSB0LnR5cGUgPyBudWxsIDogaS5jaGls ZDsNCiAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICgxOCA9PT0gaS50YWcpIHsNCiAg ICAgICAgICAgICAgICAgICAgICAgIGlmIChudWxsID09PSAobCA9IGkucmV0dXJuKSkgdGhy b3cgRXJyb3IoYSgzNDEpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIChsLmxhbmVzIHw9 IG4pLCBudWxsICE9PSAocyA9IGwuYWx0ZXJuYXRlKSAmJiAocy5sYW5lcyB8PSBuKSwgRWEo bCwgbiwgdCksIChsID0gaS5zaWJsaW5nKTsNCiAgICAgICAgICAgICAgICAgICAgICB9IGVs c2UgbCA9IGkuY2hpbGQ7DQogICAgICAgICAgICAgICAgICAgICAgaWYgKG51bGwgIT09IGwp IGwucmV0dXJuID0gaTsNCiAgICAgICAgICAgICAgICAgICAgICBlbHNlDQogICAgICAgICAg ICAgICAgICAgICAgICBmb3IgKGwgPSBpOyBudWxsICE9PSBsOykgew0KICAgICAgICAgICAg ICAgICAgICAgICAgICBpZiAobCA9PT0gdCkgew0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGwgPSBudWxsOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAg ICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgIGlm IChudWxsICE9PSAoaSA9IGwuc2libGluZykpIHsNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAoaS5yZXR1cm4gPSBsLnJldHVybiksIChsID0gaSk7DQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAg ICAgICAgICAgICAgICAgICAgICAgbCA9IGwucmV0dXJuOw0KICAgICAgICAgICAgICAgICAg ICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgIGkgPSBsOw0KICAgICAgICAgICAgICAg ICAgICB9DQogICAgICAgICAgICAgICAgeGwoZSwgdCwgby5jaGlsZHJlbiwgbiksICh0ID0g dC5jaGlsZCk7DQogICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgcmV0dXJuIHQ7DQog ICAgICAgICAgICBjYXNlIDk6DQogICAgICAgICAgICAgIHJldHVybiAobyA9IHQudHlwZSks IChyID0gdC5wZW5kaW5nUHJvcHMuY2hpbGRyZW4pLCBDYSh0LCBuKSwgKHIgPSByKChvID0g UmEobykpKSksICh0LmZsYWdzIHw9IDEpLCB4bChlLCB0LCByLCBuKSwgdC5jaGlsZDsNCiAg ICAgICAgICAgIGNhc2UgMTQ6DQogICAgICAgICAgICAgIHJldHVybiAobyA9IHZhKChyID0g dC50eXBlKSwgdC5wZW5kaW5nUHJvcHMpKSwga2woZSwgdCwgciwgKG8gPSB2YShyLnR5cGUs IG8pKSwgbik7DQogICAgICAgICAgICBjYXNlIDE1Og0KICAgICAgICAgICAgICByZXR1cm4g RWwoZSwgdCwgdC50eXBlLCB0LnBlbmRpbmdQcm9wcywgbik7DQogICAgICAgICAgICBjYXNl IDE3Og0KICAgICAgICAgICAgICByZXR1cm4gKA0KICAgICAgICAgICAgICAgIChyID0gdC50 eXBlKSwNCiAgICAgICAgICAgICAgICAobyA9IHQucGVuZGluZ1Byb3BzKSwNCiAgICAgICAg ICAgICAgICAobyA9IHQuZWxlbWVudFR5cGUgPT09IHIgPyBvIDogdmEociwgbykpLA0KICAg ICAgICAgICAgICAgIEhsKGUsIHQpLA0KICAgICAgICAgICAgICAgICh0LnRhZyA9IDEpLA0K ICAgICAgICAgICAgICAgIE1vKHIpID8gKChlID0gITApLCBMbyh0KSkgOiAoZSA9ICExKSwN CiAgICAgICAgICAgICAgICBDYSh0LCBuKSwNCiAgICAgICAgICAgICAgICBIYSh0LCByLCBv KSwNCiAgICAgICAgICAgICAgICAkYSh0LCByLCBvLCBuKSwNCiAgICAgICAgICAgICAgICBP bChudWxsLCB0LCByLCAhMCwgZSwgbikNCiAgICAgICAgICAgICAgKTsNCiAgICAgICAgICAg IGNhc2UgMTk6DQogICAgICAgICAgICAgIHJldHVybiBWbChlLCB0LCBuKTsNCiAgICAgICAg ICAgIGNhc2UgMjI6DQogICAgICAgICAgICAgIHJldHVybiBDbChlLCB0LCBuKTsNCiAgICAg ICAgICB9DQogICAgICAgICAgdGhyb3cgRXJyb3IoYSgxNTYsIHQudGFnKSk7DQogICAgICAg IH07DQogICAgICAgIHZhciBRdSA9DQogICAgICAgICAgImZ1bmN0aW9uIiA9PT0gdHlwZW9m IHJlcG9ydEVycm9yDQogICAgICAgICAgICA/IHJlcG9ydEVycm9yDQogICAgICAgICAgICA6 IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZSk7DQogICAg ICAgICAgICB9Ow0KICAgICAgICBmdW5jdGlvbiBHdShlKSB7DQogICAgICAgICAgdGhpcy5f aW50ZXJuYWxSb290ID0gZTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBZdShlKSB7 DQogICAgICAgICAgdGhpcy5faW50ZXJuYWxSb290ID0gZTsNCiAgICAgICAgfQ0KICAgICAg ICBmdW5jdGlvbiBYdShlKSB7DQogICAgICAgICAgcmV0dXJuICEoIWUgfHwgKDEgIT09IGUu bm9kZVR5cGUgJiYgOSAhPT0gZS5ub2RlVHlwZSAmJiAxMSAhPT0gZS5ub2RlVHlwZSkpOw0K ICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIFp1KGUpIHsNCiAgICAgICAgICByZXR1cm4g ISghZSB8fCAoMSAhPT0gZS5ub2RlVHlwZSAmJiA5ICE9PSBlLm5vZGVUeXBlICYmIDExICE9 PSBlLm5vZGVUeXBlICYmICg4ICE9PSBlLm5vZGVUeXBlIHx8ICIgcmVhY3QtbW91bnQtcG9p bnQtdW5zdGFibGUgIiAhPT0gZS5ub2RlVmFsdWUpKSk7DQogICAgICAgIH0NCiAgICAgICAg ZnVuY3Rpb24gSnUoKSB7IH0NCiAgICAgICAgZnVuY3Rpb24gZWMoZSwgdCwgbiwgciwgbykg ew0KICAgICAgICAgIHZhciBhID0gbi5fcmVhY3RSb290Q29udGFpbmVyOw0KICAgICAgICAg IGlmIChhKSB7DQogICAgICAgICAgICB2YXIgaSA9IGE7DQogICAgICAgICAgICBpZiAoImZ1 bmN0aW9uIiA9PT0gdHlwZW9mIG8pIHsNCiAgICAgICAgICAgICAgdmFyIGwgPSBvOw0KICAg ICAgICAgICAgICBvID0gZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHZhciBlID0g cXUoaSk7DQogICAgICAgICAgICAgICAgbC5jYWxsKGUpOw0KICAgICAgICAgICAgICB9Ow0K ICAgICAgICAgICAgfQ0KICAgICAgICAgICAgSHUodCwgaSwgZSwgbyk7DQogICAgICAgICAg fSBlbHNlDQogICAgICAgICAgICBpID0gKGZ1bmN0aW9uIChlLCB0LCBuLCByLCBvKSB7DQog ICAgICAgICAgICAgIGlmIChvKSB7DQogICAgICAgICAgICAgICAgaWYgKCJmdW5jdGlvbiIg PT09IHR5cGVvZiByKSB7DQogICAgICAgICAgICAgICAgICB2YXIgYSA9IHI7DQogICAgICAg ICAgICAgICAgICByID0gZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICB2YXIg ZSA9IHF1KGkpOw0KICAgICAgICAgICAgICAgICAgICBhLmNhbGwoZSk7DQogICAgICAgICAg ICAgICAgICB9Ow0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgaSA9 IFZ1KHQsIHIsIGUsIDAsIG51bGwsICExLCAwLCAiIiwgSnUpOw0KICAgICAgICAgICAgICAg IHJldHVybiAoZS5fcmVhY3RSb290Q29udGFpbmVyID0gaSksIChlW21vXSA9IGkuY3VycmVu dCksIFdyKDggPT09IGUubm9kZVR5cGUgPyBlLnBhcmVudE5vZGUgOiBlKSwgZHUoKSwgaTsN CiAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICBmb3IgKDsgKG8gPSBlLmxhc3RDaGls ZCk7KSBlLnJlbW92ZUNoaWxkKG8pOw0KICAgICAgICAgICAgICBpZiAoImZ1bmN0aW9uIiA9 PT0gdHlwZW9mIHIpIHsNCiAgICAgICAgICAgICAgICB2YXIgbCA9IHI7DQogICAgICAgICAg ICAgICAgciA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgIHZhciBlID0gcXUo cyk7DQogICAgICAgICAgICAgICAgICBsLmNhbGwoZSk7DQogICAgICAgICAgICAgICAgfTsN CiAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICB2YXIgcyA9IFV1KGUsIDAsICExLCBu dWxsLCAwLCAhMSwgMCwgIiIsIEp1KTsNCiAgICAgICAgICAgICAgcmV0dXJuICgNCiAgICAg ICAgICAgICAgICAoZS5fcmVhY3RSb290Q29udGFpbmVyID0gcyksDQogICAgICAgICAgICAg ICAgKGVbbW9dID0gcy5jdXJyZW50KSwNCiAgICAgICAgICAgICAgICBXcig4ID09PSBlLm5v ZGVUeXBlID8gZS5wYXJlbnROb2RlIDogZSksDQogICAgICAgICAgICAgICAgZHUoZnVuY3Rp b24gKCkgew0KICAgICAgICAgICAgICAgICAgSHUodCwgcywgbiwgcik7DQogICAgICAgICAg ICAgICAgfSksDQogICAgICAgICAgICAgICAgcw0KICAgICAgICAgICAgICApOw0KICAgICAg ICAgICAgfSkobiwgdCwgZSwgbywgcik7DQogICAgICAgICAgcmV0dXJuIHF1KGkpOw0KICAg ICAgICB9DQogICAgICAgIChZdS5wcm90b3R5cGUucmVuZGVyID0gR3UucHJvdG90eXBlLnJl bmRlciA9IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgdmFyIHQgPSB0aGlzLl9pbnRlcm5h bFJvb3Q7DQogICAgICAgICAgaWYgKG51bGwgPT09IHQpIHRocm93IEVycm9yKGEoNDA5KSk7 DQogICAgICAgICAgSHUoZSwgdCwgbnVsbCwgbnVsbCk7DQogICAgICAgIH0pLA0KICAgICAg ICAgIChZdS5wcm90b3R5cGUudW5tb3VudCA9IEd1LnByb3RvdHlwZS51bm1vdW50ID0gZnVu Y3Rpb24gKCkgew0KICAgICAgICAgICAgdmFyIGUgPSB0aGlzLl9pbnRlcm5hbFJvb3Q7DQog ICAgICAgICAgICBpZiAobnVsbCAhPT0gZSkgew0KICAgICAgICAgICAgICB0aGlzLl9pbnRl cm5hbFJvb3QgPSBudWxsOw0KICAgICAgICAgICAgICB2YXIgdCA9IGUuY29udGFpbmVySW5m bzsNCiAgICAgICAgICAgICAgZHUoZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIEh1 KG51bGwsIGUsIG51bGwsIG51bGwpOw0KICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAg ICAgICAodFttb10gPSBudWxsKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICB9KSwNCiAg ICAgICAgICAoWXUucHJvdG90eXBlLnVuc3RhYmxlX3NjaGVkdWxlSHlkcmF0aW9uID0gZnVu Y3Rpb24gKGUpIHsNCiAgICAgICAgICAgIGlmIChlKSB7DQogICAgICAgICAgICAgIHZhciB0 ID0gRXQoKTsNCiAgICAgICAgICAgICAgZSA9IHsgYmxvY2tlZE9uOiBudWxsLCB0YXJnZXQ6 IGUsIHByaW9yaXR5OiB0IH07DQogICAgICAgICAgICAgIGZvciAodmFyIG4gPSAwOyBuIDwg TXQubGVuZ3RoICYmIDAgIT09IHQgJiYgdCA8IE10W25dLnByaW9yaXR5OyBuKyspOw0KICAg ICAgICAgICAgICBNdC5zcGxpY2UobiwgMCwgZSksIDAgPT09IG4gJiYgTHQoZSk7DQogICAg ICAgICAgICB9DQogICAgICAgICAgfSksDQogICAgICAgICAgKHh0ID0gZnVuY3Rpb24gKGUp IHsNCiAgICAgICAgICAgIHN3aXRjaCAoZS50YWcpIHsNCiAgICAgICAgICAgICAgY2FzZSAz Og0KICAgICAgICAgICAgICAgIHZhciB0ID0gZS5zdGF0ZU5vZGU7DQogICAgICAgICAgICAg ICAgaWYgKHQuY3VycmVudC5tZW1vaXplZFN0YXRlLmlzRGVoeWRyYXRlZCkgew0KICAgICAg ICAgICAgICAgICAgdmFyIG4gPSBkdCh0LnBlbmRpbmdMYW5lcyk7DQogICAgICAgICAgICAg ICAgICAwICE9PSBuICYmICh5dCh0LCAxIHwgbiksIG91KHQsIFhlKCkpLCAwID09PSAoNiAm IE9zKSAmJiAoKFZzID0gWGUoKSArIDUwMCksIFZvKCkpKTsNCiAgICAgICAgICAgICAgICB9 DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgIGNhc2UgMTM6DQogICAg ICAgICAgICAgICAgZHUoZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgdmFyIHQg PSBOYShlLCAxKTsNCiAgICAgICAgICAgICAgICAgIGlmIChudWxsICE9PSB0KSB7DQogICAg ICAgICAgICAgICAgICAgIHZhciBuID0gdHUoKTsNCiAgICAgICAgICAgICAgICAgICAgcnUo dCwgZSwgMSwgbik7DQogICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfSks DQogICAgICAgICAgICAgICAgICBLdShlLCAxKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAg ICB9KSwNCiAgICAgICAgICAoU3QgPSBmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgaWYg KDEzID09PSBlLnRhZykgew0KICAgICAgICAgICAgICB2YXIgdCA9IE5hKGUsIDEzNDIxNzcy OCk7DQogICAgICAgICAgICAgIGlmIChudWxsICE9PSB0KSBydSh0LCBlLCAxMzQyMTc3Mjgs IHR1KCkpOw0KICAgICAgICAgICAgICBLdShlLCAxMzQyMTc3MjgpOw0KICAgICAgICAgICAg fQ0KICAgICAgICAgIH0pLA0KICAgICAgICAgIChrdCA9IGZ1bmN0aW9uIChlKSB7DQogICAg ICAgICAgICBpZiAoMTMgPT09IGUudGFnKSB7DQogICAgICAgICAgICAgIHZhciB0ID0gbnUo ZSksDQogICAgICAgICAgICAgICAgbiA9IE5hKGUsIHQpOw0KICAgICAgICAgICAgICBpZiAo bnVsbCAhPT0gbikgcnUobiwgZSwgdCwgdHUoKSk7DQogICAgICAgICAgICAgIEt1KGUsIHQp Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgIH0pLA0KICAgICAgICAgIChFdCA9IGZ1bmN0 aW9uICgpIHsNCiAgICAgICAgICAgIHJldHVybiBidDsNCiAgICAgICAgICB9KSwNCiAgICAg ICAgICAoQ3QgPSBmdW5jdGlvbiAoZSwgdCkgew0KICAgICAgICAgICAgdmFyIG4gPSBidDsN CiAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgIHJldHVybiAoYnQgPSBlKSwgdCgp Ow0KICAgICAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgICAgYnQgPSBuOw0KICAg ICAgICAgICAgfQ0KICAgICAgICAgIH0pLA0KICAgICAgICAgIChTZSA9IGZ1bmN0aW9uIChl LCB0LCBuKSB7DQogICAgICAgICAgICBzd2l0Y2ggKHQpIHsNCiAgICAgICAgICAgICAgY2Fz ZSAiaW5wdXQiOg0KICAgICAgICAgICAgICAgIGlmICgoWihlLCBuKSwgKHQgPSBuLm5hbWUp LCAicmFkaW8iID09PSBuLnR5cGUgJiYgbnVsbCAhPSB0KSkgew0KICAgICAgICAgICAgICAg ICAgZm9yIChuID0gZTsgbi5wYXJlbnROb2RlOykgbiA9IG4ucGFyZW50Tm9kZTsNCiAgICAg ICAgICAgICAgICAgIGZvciAobiA9IG4ucXVlcnlTZWxlY3RvckFsbCgiaW5wdXRbbmFtZT0i ICsgSlNPTi5zdHJpbmdpZnkoIiIgKyB0KSArICddW3R5cGU9InJhZGlvIl0nKSwgdCA9IDA7 IHQgPCBuLmxlbmd0aDsgdCsrKSB7DQogICAgICAgICAgICAgICAgICAgIHZhciByID0gblt0 XTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHIgIT09IGUgJiYgci5mb3JtID09PSBlLmZv cm0pIHsNCiAgICAgICAgICAgICAgICAgICAgICB2YXIgbyA9IFNvKHIpOw0KICAgICAgICAg ICAgICAgICAgICAgIGlmICghbykgdGhyb3cgRXJyb3IoYSg5MCkpOw0KICAgICAgICAgICAg ICAgICAgICAgIEsociksIFoociwgbyk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAg ICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJl YWs7DQogICAgICAgICAgICAgIGNhc2UgInRleHRhcmVhIjoNCiAgICAgICAgICAgICAgICBh ZShlLCBuKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgY2FzZSAi c2VsZWN0IjoNCiAgICAgICAgICAgICAgICBudWxsICE9ICh0ID0gbi52YWx1ZSkgJiYgbmUo ZSwgISFuLm11bHRpcGxlLCB0LCAhMSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgfSks DQogICAgICAgICAgKFBlID0gY3UpLA0KICAgICAgICAgIChPZSA9IGR1KTsNCiAgICAgICAg dmFyIHRjID0geyB1c2luZ0NsaWVudEVudHJ5UG9pbnQ6ICExLCBFdmVudHM6IFt3bywgeG8s IFNvLCBSZSwgX2UsIGN1XSB9LA0KICAgICAgICAgIG5jID0geyBmaW5kRmliZXJCeUhvc3RJ bnN0YW5jZTogYm8sIGJ1bmRsZVR5cGU6IDAsIHZlcnNpb246ICIxOC4yLjAiLCByZW5kZXJl clBhY2thZ2VOYW1lOiAicmVhY3QtZG9tIiB9LA0KICAgICAgICAgIHJjID0gew0KICAgICAg ICAgICAgYnVuZGxlVHlwZTogbmMuYnVuZGxlVHlwZSwNCiAgICAgICAgICAgIHZlcnNpb246 IG5jLnZlcnNpb24sDQogICAgICAgICAgICByZW5kZXJlclBhY2thZ2VOYW1lOiBuYy5yZW5k ZXJlclBhY2thZ2VOYW1lLA0KICAgICAgICAgICAgcmVuZGVyZXJDb25maWc6IG5jLnJlbmRl cmVyQ29uZmlnLA0KICAgICAgICAgICAgb3ZlcnJpZGVIb29rU3RhdGU6IG51bGwsDQogICAg ICAgICAgICBvdmVycmlkZUhvb2tTdGF0ZURlbGV0ZVBhdGg6IG51bGwsDQogICAgICAgICAg ICBvdmVycmlkZUhvb2tTdGF0ZVJlbmFtZVBhdGg6IG51bGwsDQogICAgICAgICAgICBvdmVy cmlkZVByb3BzOiBudWxsLA0KICAgICAgICAgICAgb3ZlcnJpZGVQcm9wc0RlbGV0ZVBhdGg6 IG51bGwsDQogICAgICAgICAgICBvdmVycmlkZVByb3BzUmVuYW1lUGF0aDogbnVsbCwNCiAg ICAgICAgICAgIHNldEVycm9ySGFuZGxlcjogbnVsbCwNCiAgICAgICAgICAgIHNldFN1c3Bl bnNlSGFuZGxlcjogbnVsbCwNCiAgICAgICAgICAgIHNjaGVkdWxlVXBkYXRlOiBudWxsLA0K ICAgICAgICAgICAgY3VycmVudERpc3BhdGNoZXJSZWY6IHcuUmVhY3RDdXJyZW50RGlzcGF0 Y2hlciwNCiAgICAgICAgICAgIGZpbmRIb3N0SW5zdGFuY2VCeUZpYmVyOiBmdW5jdGlvbiAo ZSkgew0KICAgICAgICAgICAgICByZXR1cm4gbnVsbCA9PT0gKGUgPSBxZShlKSkgPyBudWxs IDogZS5zdGF0ZU5vZGU7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgZmluZEZpYmVy QnlIb3N0SW5zdGFuY2U6DQogICAgICAgICAgICAgIG5jLmZpbmRGaWJlckJ5SG9zdEluc3Rh bmNlIHx8DQogICAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBy ZXR1cm4gbnVsbDsNCiAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGZpbmRIb3N0SW5z dGFuY2VzRm9yUmVmcmVzaDogbnVsbCwNCiAgICAgICAgICAgIHNjaGVkdWxlUmVmcmVzaDog bnVsbCwNCiAgICAgICAgICAgIHNjaGVkdWxlUm9vdDogbnVsbCwNCiAgICAgICAgICAgIHNl dFJlZnJlc2hIYW5kbGVyOiBudWxsLA0KICAgICAgICAgICAgZ2V0Q3VycmVudEZpYmVyOiBu dWxsLA0KICAgICAgICAgICAgcmVjb25jaWxlclZlcnNpb246ICIxOC4yLjAtbmV4dC05ZTNi NzcyYjgtMjAyMjA2MDgiLA0KICAgICAgICAgIH07DQogICAgICAgIGlmICgidW5kZWZpbmVk IiAhPT0gdHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXykgew0KICAgICAg ICAgIHZhciBvYyA9IF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXzsNCiAgICAgICAg ICBpZiAoIW9jLmlzRGlzYWJsZWQgJiYgb2Muc3VwcG9ydHNGaWJlcikNCiAgICAgICAgICAg IHRyeSB7DQogICAgICAgICAgICAgIChvdCA9IG9jLmluamVjdChyYykpLCAoYXQgPSBvYyk7 DQogICAgICAgICAgICB9IGNhdGNoIChjZSkgeyB9DQogICAgICAgIH0NCiAgICAgICAgKHQu X19TRUNSRVRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfWU9VX1dJTExfQkVfRklSRUQgPSB0 YyksDQogICAgICAgICAgKHQuY3JlYXRlUG9ydGFsID0gZnVuY3Rpb24gKGUsIHQpIHsNCiAg ICAgICAgICAgIHZhciBuID0gMiA8IGFyZ3VtZW50cy5sZW5ndGggJiYgdm9pZCAwICE9PSBh cmd1bWVudHNbMl0gPyBhcmd1bWVudHNbMl0gOiBudWxsOw0KICAgICAgICAgICAgaWYgKCFY dSh0KSkgdGhyb3cgRXJyb3IoYSgyMDApKTsNCiAgICAgICAgICAgIHJldHVybiAoZnVuY3Rp b24gKGUsIHQsIG4pIHsNCiAgICAgICAgICAgICAgdmFyIHIgPSAzIDwgYXJndW1lbnRzLmxl bmd0aCAmJiB2b2lkIDAgIT09IGFyZ3VtZW50c1szXSA/IGFyZ3VtZW50c1szXSA6IG51bGw7 DQogICAgICAgICAgICAgIHJldHVybiB7ICQkdHlwZW9mOiBTLCBrZXk6IG51bGwgPT0gciA/ IG51bGwgOiAiIiArIHIsIGNoaWxkcmVuOiBlLCBjb250YWluZXJJbmZvOiB0LCBpbXBsZW1l bnRhdGlvbjogbiB9Ow0KICAgICAgICAgICAgfSkoZSwgdCwgbnVsbCwgbik7DQogICAgICAg ICAgfSksDQogICAgICAgICAgKHQuY3JlYXRlUm9vdCA9IGZ1bmN0aW9uIChlLCB0KSB7DQog ICAgICAgICAgICBpZiAoIVh1KGUpKSB0aHJvdyBFcnJvcihhKDI5OSkpOw0KICAgICAgICAg ICAgdmFyIG4gPSAhMSwNCiAgICAgICAgICAgICAgciA9ICIiLA0KICAgICAgICAgICAgICBv ID0gUXU7DQogICAgICAgICAgICByZXR1cm4gKA0KICAgICAgICAgICAgICBudWxsICE9PSB0 ICYmIHZvaWQgMCAhPT0gdCAmJiAoITAgPT09IHQudW5zdGFibGVfc3RyaWN0TW9kZSAmJiAo biA9ICEwKSwgdm9pZCAwICE9PSB0LmlkZW50aWZpZXJQcmVmaXggJiYgKHIgPSB0LmlkZW50 aWZpZXJQcmVmaXgpLCB2b2lkIDAgIT09IHQub25SZWNvdmVyYWJsZUVycm9yICYmIChvID0g dC5vblJlY292ZXJhYmxlRXJyb3IpKSwNCiAgICAgICAgICAgICAgKHQgPSBVdShlLCAxLCAh MSwgbnVsbCwgMCwgbiwgMCwgciwgbykpLA0KICAgICAgICAgICAgICAoZVttb10gPSB0LmN1 cnJlbnQpLA0KICAgICAgICAgICAgICBXcig4ID09PSBlLm5vZGVUeXBlID8gZS5wYXJlbnRO b2RlIDogZSksDQogICAgICAgICAgICAgIG5ldyBHdSh0KQ0KICAgICAgICAgICAgKTsNCiAg ICAgICAgICB9KSwNCiAgICAgICAgICAodC5maW5kRE9NTm9kZSA9IGZ1bmN0aW9uIChlKSB7 DQogICAgICAgICAgICBpZiAobnVsbCA9PSBlKSByZXR1cm4gbnVsbDsNCiAgICAgICAgICAg IGlmICgxID09PSBlLm5vZGVUeXBlKSByZXR1cm4gZTsNCiAgICAgICAgICAgIHZhciB0ID0g ZS5fcmVhY3RJbnRlcm5hbHM7DQogICAgICAgICAgICBpZiAodm9pZCAwID09PSB0KSB7DQog ICAgICAgICAgICAgIGlmICgiZnVuY3Rpb24iID09PSB0eXBlb2YgZS5yZW5kZXIpIHRocm93 IEVycm9yKGEoMTg4KSk7DQogICAgICAgICAgICAgIHRocm93ICgoZSA9IE9iamVjdC5rZXlz KGUpLmpvaW4oIiwiKSksIEVycm9yKGEoMjY4LCBlKSkpOw0KICAgICAgICAgICAgfQ0KICAg ICAgICAgICAgcmV0dXJuIChlID0gbnVsbCA9PT0gKGUgPSBxZSh0KSkgPyBudWxsIDogZS5z dGF0ZU5vZGUpOw0KICAgICAgICAgIH0pLA0KICAgICAgICAgICh0LmZsdXNoU3luYyA9IGZ1 bmN0aW9uIChlKSB7DQogICAgICAgICAgICByZXR1cm4gZHUoZSk7DQogICAgICAgICAgfSks DQogICAgICAgICAgKHQuaHlkcmF0ZSA9IGZ1bmN0aW9uIChlLCB0LCBuKSB7DQogICAgICAg ICAgICBpZiAoIVp1KHQpKSB0aHJvdyBFcnJvcihhKDIwMCkpOw0KICAgICAgICAgICAgcmV0 dXJuIGVjKG51bGwsIGUsIHQsICEwLCBuKTsNCiAgICAgICAgICB9KSwNCiAgICAgICAgICAo dC5oeWRyYXRlUm9vdCA9IGZ1bmN0aW9uIChlLCB0LCBuKSB7DQogICAgICAgICAgICBpZiAo IVh1KGUpKSB0aHJvdyBFcnJvcihhKDQwNSkpOw0KICAgICAgICAgICAgdmFyIHIgPSAobnVs bCAhPSBuICYmIG4uaHlkcmF0ZWRTb3VyY2VzKSB8fCBudWxsLA0KICAgICAgICAgICAgICBv ID0gITEsDQogICAgICAgICAgICAgIGkgPSAiIiwNCiAgICAgICAgICAgICAgbCA9IFF1Ow0K ICAgICAgICAgICAgaWYgKA0KICAgICAgICAgICAgICAobnVsbCAhPT0gbiAmJiB2b2lkIDAg IT09IG4gJiYgKCEwID09PSBuLnVuc3RhYmxlX3N0cmljdE1vZGUgJiYgKG8gPSAhMCksIHZv aWQgMCAhPT0gbi5pZGVudGlmaWVyUHJlZml4ICYmIChpID0gbi5pZGVudGlmaWVyUHJlZml4 KSwgdm9pZCAwICE9PSBuLm9uUmVjb3ZlcmFibGVFcnJvciAmJiAobCA9IG4ub25SZWNvdmVy YWJsZUVycm9yKSksDQogICAgICAgICAgICAgICAgKHQgPSBWdSh0LCBudWxsLCBlLCAxLCBu dWxsICE9IG4gPyBuIDogbnVsbCwgbywgMCwgaSwgbCkpLA0KICAgICAgICAgICAgICAgIChl W21vXSA9IHQuY3VycmVudCksDQogICAgICAgICAgICAgICAgV3IoZSksDQogICAgICAgICAg ICAgICAgcikNCiAgICAgICAgICAgICkNCiAgICAgICAgICAgICAgZm9yIChlID0gMDsgZSA8 IHIubGVuZ3RoOyBlKyspDQogICAgICAgICAgICAgICAgKG8gPSAobyA9IChuID0gcltlXSku X2dldFZlcnNpb24pKG4uX3NvdXJjZSkpLCBudWxsID09IHQubXV0YWJsZVNvdXJjZUVhZ2Vy SHlkcmF0aW9uRGF0YSA/ICh0Lm11dGFibGVTb3VyY2VFYWdlckh5ZHJhdGlvbkRhdGEgPSBb biwgb10pIDogdC5tdXRhYmxlU291cmNlRWFnZXJIeWRyYXRpb25EYXRhLnB1c2gobiwgbyk7 DQogICAgICAgICAgICByZXR1cm4gbmV3IFl1KHQpOw0KICAgICAgICAgIH0pLA0KICAgICAg ICAgICh0LnJlbmRlciA9IGZ1bmN0aW9uIChlLCB0LCBuKSB7DQogICAgICAgICAgICBpZiAo IVp1KHQpKSB0aHJvdyBFcnJvcihhKDIwMCkpOw0KICAgICAgICAgICAgcmV0dXJuIGVjKG51 bGwsIGUsIHQsICExLCBuKTsNCiAgICAgICAgICB9KSwNCiAgICAgICAgICAodC51bm1vdW50 Q29tcG9uZW50QXROb2RlID0gZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgIGlmICghWnUo ZSkpIHRocm93IEVycm9yKGEoNDApKTsNCiAgICAgICAgICAgIHJldHVybiAoDQogICAgICAg ICAgICAgICEhZS5fcmVhY3RSb290Q29udGFpbmVyICYmDQogICAgICAgICAgICAgIChkdShm dW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgZWMobnVsbCwgbnVsbCwgZSwgITEsIGZ1 bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgIChlLl9yZWFjdFJvb3RDb250YWluZXIg PSBudWxsKSwgKGVbbW9dID0gbnVsbCk7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAg ICAgICAgIH0pLA0KICAgICAgICAgICAgICAgICEwKQ0KICAgICAgICAgICAgKTsNCiAgICAg ICAgICB9KSwNCiAgICAgICAgICAodC51bnN0YWJsZV9iYXRjaGVkVXBkYXRlcyA9IGN1KSwN CiAgICAgICAgICAodC51bnN0YWJsZV9yZW5kZXJTdWJ0cmVlSW50b0NvbnRhaW5lciA9IGZ1 bmN0aW9uIChlLCB0LCBuLCByKSB7DQogICAgICAgICAgICBpZiAoIVp1KG4pKSB0aHJvdyBF cnJvcihhKDIwMCkpOw0KICAgICAgICAgICAgaWYgKG51bGwgPT0gZSB8fCB2b2lkIDAgPT09 IGUuX3JlYWN0SW50ZXJuYWxzKSB0aHJvdyBFcnJvcihhKDM4KSk7DQogICAgICAgICAgICBy ZXR1cm4gZWMoZSwgdCwgbiwgITEsIHIpOw0KICAgICAgICAgIH0pLA0KICAgICAgICAgICh0 LnZlcnNpb24gPSAiMTguMi4wLW5leHQtOWUzYjc3MmI4LTIwMjIwNjA4Iik7DQogICAgICB9 LA0KICAgICAgMjUwOiAoZSwgdCwgbikgPT4gew0KICAgICAgICB2YXIgciA9IG4oMTY0KTsN CiAgICAgICAgKHQuY3JlYXRlUm9vdCA9IHIuY3JlYXRlUm9vdCksICh0Lmh5ZHJhdGVSb290 ID0gci5oeWRyYXRlUm9vdCk7DQogICAgICB9LA0KICAgICAgMTY0OiAoZSwgdCwgbikgPT4g ew0KICAgICAgICAhKGZ1bmN0aW9uIGUoKSB7DQogICAgICAgICAgaWYgKCJ1bmRlZmluZWQi ICE9PSB0eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fICYmICJmdW5jdGlv biIgPT09IHR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18uY2hlY2tEQ0Up DQogICAgICAgICAgICB0cnkgew0KICAgICAgICAgICAgICBfX1JFQUNUX0RFVlRPT0xTX0dM T0JBTF9IT09LX18uY2hlY2tEQ0UoZSk7DQogICAgICAgICAgICB9IGNhdGNoICh0KSB7DQog ICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IodCk7DQogICAgICAgICAgICB9DQogICAgICAg IH0pKCksDQogICAgICAgICAgKGUuZXhwb3J0cyA9IG4oNDYzKSk7DQogICAgICB9LA0KICAg ICAgMzc0OiAoZSwgdCwgbikgPT4gew0KICAgICAgICB2YXIgciA9IG4oNzkxKSwNCiAgICAg ICAgICBvID0gU3ltYm9sLmZvcigicmVhY3QuZWxlbWVudCIpLA0KICAgICAgICAgIGEgPSBT eW1ib2wuZm9yKCJyZWFjdC5mcmFnbWVudCIpLA0KICAgICAgICAgIGkgPSBPYmplY3QucHJv dG90eXBlLmhhc093blByb3BlcnR5LA0KICAgICAgICAgIGwgPSByLl9fU0VDUkVUX0lOVEVS TkFMU19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVELlJlYWN0Q3VycmVudE93bmVy LA0KICAgICAgICAgIHMgPSB7IGtleTogITAsIHJlZjogITAsIF9fc2VsZjogITAsIF9fc291 cmNlOiAhMCB9Ow0KICAgICAgICBmdW5jdGlvbiB1KGUsIHQsIG4pIHsNCiAgICAgICAgICB2 YXIgciwNCiAgICAgICAgICAgIGEgPSB7fSwNCiAgICAgICAgICAgIHUgPSBudWxsLA0KICAg ICAgICAgICAgYyA9IG51bGw7DQogICAgICAgICAgZm9yIChyIGluICh2b2lkIDAgIT09IG4g JiYgKHUgPSAiIiArIG4pLCB2b2lkIDAgIT09IHQua2V5ICYmICh1ID0gIiIgKyB0LmtleSks IHZvaWQgMCAhPT0gdC5yZWYgJiYgKGMgPSB0LnJlZiksIHQpKSBpLmNhbGwodCwgcikgJiYg IXMuaGFzT3duUHJvcGVydHkocikgJiYgKGFbcl0gPSB0W3JdKTsNCiAgICAgICAgICBpZiAo ZSAmJiBlLmRlZmF1bHRQcm9wcykgZm9yIChyIGluICh0ID0gZS5kZWZhdWx0UHJvcHMpKSB2 b2lkIDAgPT09IGFbcl0gJiYgKGFbcl0gPSB0W3JdKTsNCiAgICAgICAgICByZXR1cm4geyAk JHR5cGVvZjogbywgdHlwZTogZSwga2V5OiB1LCByZWY6IGMsIHByb3BzOiBhLCBfb3duZXI6 IGwuY3VycmVudCB9Ow0KICAgICAgICB9DQogICAgICAgICh0LkZyYWdtZW50ID0gYSksICh0 LmpzeCA9IHUpLCAodC5qc3hzID0gdSk7DQogICAgICB9LA0KICAgICAgMTE3OiAoZSwgdCkg PT4gew0KICAgICAgICB2YXIgbiA9IFN5bWJvbC5mb3IoInJlYWN0LmVsZW1lbnQiKSwNCiAg ICAgICAgICByID0gU3ltYm9sLmZvcigicmVhY3QucG9ydGFsIiksDQogICAgICAgICAgbyA9 IFN5bWJvbC5mb3IoInJlYWN0LmZyYWdtZW50IiksDQogICAgICAgICAgYSA9IFN5bWJvbC5m b3IoInJlYWN0LnN0cmljdF9tb2RlIiksDQogICAgICAgICAgaSA9IFN5bWJvbC5mb3IoInJl YWN0LnByb2ZpbGVyIiksDQogICAgICAgICAgbCA9IFN5bWJvbC5mb3IoInJlYWN0LnByb3Zp ZGVyIiksDQogICAgICAgICAgcyA9IFN5bWJvbC5mb3IoInJlYWN0LmNvbnRleHQiKSwNCiAg ICAgICAgICB1ID0gU3ltYm9sLmZvcigicmVhY3QuZm9yd2FyZF9yZWYiKSwNCiAgICAgICAg ICBjID0gU3ltYm9sLmZvcigicmVhY3Quc3VzcGVuc2UiKSwNCiAgICAgICAgICBkID0gU3lt Ym9sLmZvcigicmVhY3QubWVtbyIpLA0KICAgICAgICAgIGYgPSBTeW1ib2wuZm9yKCJyZWFj dC5sYXp5IiksDQogICAgICAgICAgcCA9IFN5bWJvbC5pdGVyYXRvcjsNCiAgICAgICAgdmFy IGggPSB7DQogICAgICAgICAgaXNNb3VudGVkOiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAg ICByZXR1cm4gITE7DQogICAgICAgICAgfSwNCiAgICAgICAgICBlbnF1ZXVlRm9yY2VVcGRh dGU6IGZ1bmN0aW9uICgpIHsgfSwNCiAgICAgICAgICBlbnF1ZXVlUmVwbGFjZVN0YXRlOiBm dW5jdGlvbiAoKSB7IH0sDQogICAgICAgICAgZW5xdWV1ZVNldFN0YXRlOiBmdW5jdGlvbiAo KSB7IH0sDQogICAgICAgIH0sDQogICAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24sDQogICAg ICAgICAgZyA9IHt9Ow0KICAgICAgICBmdW5jdGlvbiB2KGUsIHQsIG4pIHsNCiAgICAgICAg ICAodGhpcy5wcm9wcyA9IGUpLCAodGhpcy5jb250ZXh0ID0gdCksICh0aGlzLnJlZnMgPSBn KSwgKHRoaXMudXBkYXRlciA9IG4gfHwgaCk7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rp b24geSgpIHsgfQ0KICAgICAgICBmdW5jdGlvbiBiKGUsIHQsIG4pIHsNCiAgICAgICAgICAo dGhpcy5wcm9wcyA9IGUpLCAodGhpcy5jb250ZXh0ID0gdCksICh0aGlzLnJlZnMgPSBnKSwg KHRoaXMudXBkYXRlciA9IG4gfHwgaCk7DQogICAgICAgIH0NCiAgICAgICAgKHYucHJvdG90 eXBlLmlzUmVhY3RDb21wb25lbnQgPSB7fSksDQogICAgICAgICAgKHYucHJvdG90eXBlLnNl dFN0YXRlID0gZnVuY3Rpb24gKGUsIHQpIHsNCiAgICAgICAgICAgIGlmICgib2JqZWN0IiAh PT0gdHlwZW9mIGUgJiYgImZ1bmN0aW9uIiAhPT0gdHlwZW9mIGUgJiYgbnVsbCAhPSBlKSB0 aHJvdyBFcnJvcigic2V0U3RhdGUoLi4uKTogdGFrZXMgYW4gb2JqZWN0IG9mIHN0YXRlIHZh cmlhYmxlcyB0byB1cGRhdGUgb3IgYSBmdW5jdGlvbiB3aGljaCByZXR1cm5zIGFuIG9iamVj dCBvZiBzdGF0ZSB2YXJpYWJsZXMuIik7DQogICAgICAgICAgICB0aGlzLnVwZGF0ZXIuZW5x dWV1ZVNldFN0YXRlKHRoaXMsIGUsIHQsICJzZXRTdGF0ZSIpOw0KICAgICAgICAgIH0pLA0K ICAgICAgICAgICh2LnByb3RvdHlwZS5mb3JjZVVwZGF0ZSA9IGZ1bmN0aW9uIChlKSB7DQog ICAgICAgICAgICB0aGlzLnVwZGF0ZXIuZW5xdWV1ZUZvcmNlVXBkYXRlKHRoaXMsIGUsICJm b3JjZVVwZGF0ZSIpOw0KICAgICAgICAgIH0pLA0KICAgICAgICAgICh5LnByb3RvdHlwZSA9 IHYucHJvdG90eXBlKTsNCiAgICAgICAgdmFyIHcgPSAoYi5wcm90b3R5cGUgPSBuZXcgeSgp KTsNCiAgICAgICAgKHcuY29uc3RydWN0b3IgPSBiKSwgbSh3LCB2LnByb3RvdHlwZSksICh3 LmlzUHVyZVJlYWN0Q29tcG9uZW50ID0gITApOw0KICAgICAgICB2YXIgeCA9IEFycmF5Lmlz QXJyYXksDQogICAgICAgICAgUyA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHks DQogICAgICAgICAgayA9IHsgY3VycmVudDogbnVsbCB9LA0KICAgICAgICAgIEUgPSB7IGtl eTogITAsIHJlZjogITAsIF9fc2VsZjogITAsIF9fc291cmNlOiAhMCB9Ow0KICAgICAgICBm dW5jdGlvbiBDKGUsIHQsIHIpIHsNCiAgICAgICAgICB2YXIgbywNCiAgICAgICAgICAgIGEg PSB7fSwNCiAgICAgICAgICAgIGkgPSBudWxsLA0KICAgICAgICAgICAgbCA9IG51bGw7DQog ICAgICAgICAgaWYgKG51bGwgIT0gdCkgZm9yIChvIGluICh2b2lkIDAgIT09IHQucmVmICYm IChsID0gdC5yZWYpLCB2b2lkIDAgIT09IHQua2V5ICYmIChpID0gIiIgKyB0LmtleSksIHQp KSBTLmNhbGwodCwgbykgJiYgIUUuaGFzT3duUHJvcGVydHkobykgJiYgKGFbb10gPSB0W29d KTsNCiAgICAgICAgICB2YXIgcyA9IGFyZ3VtZW50cy5sZW5ndGggLSAyOw0KICAgICAgICAg IGlmICgxID09PSBzKSBhLmNoaWxkcmVuID0gcjsNCiAgICAgICAgICBlbHNlIGlmICgxIDwg cykgew0KICAgICAgICAgICAgZm9yICh2YXIgdSA9IEFycmF5KHMpLCBjID0gMDsgYyA8IHM7 IGMrKykgdVtjXSA9IGFyZ3VtZW50c1tjICsgMl07DQogICAgICAgICAgICBhLmNoaWxkcmVu ID0gdTsNCiAgICAgICAgICB9DQogICAgICAgICAgaWYgKGUgJiYgZS5kZWZhdWx0UHJvcHMp IGZvciAobyBpbiAocyA9IGUuZGVmYXVsdFByb3BzKSkgdm9pZCAwID09PSBhW29dICYmIChh W29dID0gc1tvXSk7DQogICAgICAgICAgcmV0dXJuIHsgJCR0eXBlb2Y6IG4sIHR5cGU6IGUs IGtleTogaSwgcmVmOiBsLCBwcm9wczogYSwgX293bmVyOiBrLmN1cnJlbnQgfTsNCiAgICAg ICAgfQ0KICAgICAgICBmdW5jdGlvbiBSKGUpIHsNCiAgICAgICAgICByZXR1cm4gIm9iamVj dCIgPT09IHR5cGVvZiBlICYmIG51bGwgIT09IGUgJiYgZS4kJHR5cGVvZiA9PT0gbjsNCiAg ICAgICAgfQ0KICAgICAgICB2YXIgXyA9IC9cLysvZzsNCiAgICAgICAgZnVuY3Rpb24gUChl LCB0KSB7DQogICAgICAgICAgcmV0dXJuICJvYmplY3QiID09PSB0eXBlb2YgZSAmJiBudWxs ICE9PSBlICYmIG51bGwgIT0gZS5rZXkNCiAgICAgICAgICAgID8gKGZ1bmN0aW9uIChlKSB7 DQogICAgICAgICAgICAgIHZhciB0ID0geyAiPSI6ICI9MCIsICI6IjogIj0yIiB9Ow0KICAg ICAgICAgICAgICByZXR1cm4gKA0KICAgICAgICAgICAgICAgICIkIiArDQogICAgICAgICAg ICAgICAgZS5yZXBsYWNlKC9bPTpdL2csIGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICAg ICAgICByZXR1cm4gdFtlXTsNCiAgICAgICAgICAgICAgICB9KQ0KICAgICAgICAgICAgICAp Ow0KICAgICAgICAgICAgfSkoIiIgKyBlLmtleSkNCiAgICAgICAgICAgIDogdC50b1N0cmlu ZygzNik7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gTyhlLCB0LCBvLCBhLCBpKSB7 DQogICAgICAgICAgdmFyIGwgPSB0eXBlb2YgZTsNCiAgICAgICAgICAoInVuZGVmaW5lZCIg IT09IGwgJiYgImJvb2xlYW4iICE9PSBsKSB8fCAoZSA9IG51bGwpOw0KICAgICAgICAgIHZh ciBzID0gITE7DQogICAgICAgICAgaWYgKG51bGwgPT09IGUpIHMgPSAhMDsNCiAgICAgICAg ICBlbHNlDQogICAgICAgICAgICBzd2l0Y2ggKGwpIHsNCiAgICAgICAgICAgICAgY2FzZSAi c3RyaW5nIjoNCiAgICAgICAgICAgICAgY2FzZSAibnVtYmVyIjoNCiAgICAgICAgICAgICAg ICBzID0gITA7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgIGNhc2Ug Im9iamVjdCI6DQogICAgICAgICAgICAgICAgc3dpdGNoIChlLiQkdHlwZW9mKSB7DQogICAg ICAgICAgICAgICAgICBjYXNlIG46DQogICAgICAgICAgICAgICAgICBjYXNlIHI6DQogICAg ICAgICAgICAgICAgICAgIHMgPSAhMDsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAg ICB9DQogICAgICAgICAgaWYgKHMpDQogICAgICAgICAgICByZXR1cm4gKA0KICAgICAgICAg ICAgICAoaSA9IGkoKHMgPSBlKSkpLA0KICAgICAgICAgICAgICAoZSA9ICIiID09PSBhID8g Ii4iICsgUChzLCAwKSA6IGEpLA0KICAgICAgICAgICAgICB4KGkpDQogICAgICAgICAgICAg ICAgPyAoKG8gPSAiIiksDQogICAgICAgICAgICAgICAgICBudWxsICE9IGUgJiYgKG8gPSBl LnJlcGxhY2UoXywgIiQmLyIpICsgIi8iKSwNCiAgICAgICAgICAgICAgICAgIE8oaSwgdCwg bywgIiIsIGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBlOw0K ICAgICAgICAgICAgICAgICAgfSkpDQogICAgICAgICAgICAgICAgOiBudWxsICE9IGkgJiYN CiAgICAgICAgICAgICAgICAoUihpKSAmJg0KICAgICAgICAgICAgICAgICAgKGkgPSAoZnVu Y3Rpb24gKGUsIHQpIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgJCR0eXBlb2Y6 IG4sIHR5cGU6IGUudHlwZSwga2V5OiB0LCByZWY6IGUucmVmLCBwcm9wczogZS5wcm9wcywg X293bmVyOiBlLl9vd25lciB9Ow0KICAgICAgICAgICAgICAgICAgfSkoaSwgbyArICghaS5r ZXkgfHwgKHMgJiYgcy5rZXkgPT09IGkua2V5KSA/ICIiIDogKCIiICsgaS5rZXkpLnJlcGxh Y2UoXywgIiQmLyIpICsgIi8iKSArIGUpKSwNCiAgICAgICAgICAgICAgICAgIHQucHVzaChp KSksDQogICAgICAgICAgICAgIDENCiAgICAgICAgICAgICk7DQogICAgICAgICAgaWYgKCgo cyA9IDApLCAoYSA9ICIiID09PSBhID8gIi4iIDogYSArICI6IiksIHgoZSkpKQ0KICAgICAg ICAgICAgZm9yICh2YXIgdSA9IDA7IHUgPCBlLmxlbmd0aDsgdSsrKSB7DQogICAgICAgICAg ICAgIHZhciBjID0gYSArIFAoKGwgPSBlW3VdKSwgdSk7DQogICAgICAgICAgICAgIHMgKz0g TyhsLCB0LCBvLCBjLCBpKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICBlbHNlIGlmICgN CiAgICAgICAgICAgICgoYyA9IChmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgICByZXR1 cm4gbnVsbCA9PT0gZSB8fCAib2JqZWN0IiAhPT0gdHlwZW9mIGUgPyBudWxsIDogImZ1bmN0 aW9uIiA9PT0gdHlwZW9mIChlID0gKHAgJiYgZVtwXSkgfHwgZVsiQEBpdGVyYXRvciJdKSA/ IGUgOiBudWxsOw0KICAgICAgICAgICAgfSkoZSkpLA0KICAgICAgICAgICAgICAiZnVuY3Rp b24iID09PSB0eXBlb2YgYykNCiAgICAgICAgICApDQogICAgICAgICAgICBmb3IgKGUgPSBj LmNhbGwoZSksIHUgPSAwOyAhKGwgPSBlLm5leHQoKSkuZG9uZTspIHMgKz0gTygobCA9IGwu dmFsdWUpLCB0LCBvLCAoYyA9IGEgKyBQKGwsIHUrKykpLCBpKTsNCiAgICAgICAgICBlbHNl IGlmICgib2JqZWN0IiA9PT0gbCkNCiAgICAgICAgICAgIHRocm93ICgNCiAgICAgICAgICAg ICAgKCh0ID0gU3RyaW5nKGUpKSwNCiAgICAgICAgICAgICAgICBFcnJvcigNCiAgICAgICAg ICAgICAgICAgICJPYmplY3RzIGFyZSBub3QgdmFsaWQgYXMgYSBSZWFjdCBjaGlsZCAoZm91 bmQ6ICIgKw0KICAgICAgICAgICAgICAgICAgKCJbb2JqZWN0IE9iamVjdF0iID09PSB0ID8g Im9iamVjdCB3aXRoIGtleXMgeyIgKyBPYmplY3Qua2V5cyhlKS5qb2luKCIsICIpICsgIn0i IDogdCkgKw0KICAgICAgICAgICAgICAgICAgIikuIElmIHlvdSBtZWFudCB0byByZW5kZXIg YSBjb2xsZWN0aW9uIG9mIGNoaWxkcmVuLCB1c2UgYW4gYXJyYXkgaW5zdGVhZC4iDQogICAg ICAgICAgICAgICAgKSkNCiAgICAgICAgICAgICk7DQogICAgICAgICAgcmV0dXJuIHM7DQog ICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gTihlLCB0LCBuKSB7DQogICAgICAgICAgaWYg KG51bGwgPT0gZSkgcmV0dXJuIGU7DQogICAgICAgICAgdmFyIHIgPSBbXSwNCiAgICAgICAg ICAgIG8gPSAwOw0KICAgICAgICAgIHJldHVybiAoDQogICAgICAgICAgICBPKGUsIHIsICIi LCAiIiwgZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgICAgcmV0dXJuIHQuY2FsbChuLCBl LCBvKyspOw0KICAgICAgICAgICAgfSksDQogICAgICAgICAgICByDQogICAgICAgICAgKTsN CiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBUKGUpIHsNCiAgICAgICAgICBpZiAoLTEg PT09IGUuX3N0YXR1cykgew0KICAgICAgICAgICAgdmFyIHQgPSBlLl9yZXN1bHQ7DQogICAg ICAgICAgICAodCA9IHQoKSkudGhlbigNCiAgICAgICAgICAgICAgZnVuY3Rpb24gKHQpIHsN CiAgICAgICAgICAgICAgICAoMCAhPT0gZS5fc3RhdHVzICYmIC0xICE9PSBlLl9zdGF0dXMp IHx8ICgoZS5fc3RhdHVzID0gMSksIChlLl9yZXN1bHQgPSB0KSk7DQogICAgICAgICAgICAg IH0sDQogICAgICAgICAgICAgIGZ1bmN0aW9uICh0KSB7DQogICAgICAgICAgICAgICAgKDAg IT09IGUuX3N0YXR1cyAmJiAtMSAhPT0gZS5fc3RhdHVzKSB8fCAoKGUuX3N0YXR1cyA9IDIp LCAoZS5fcmVzdWx0ID0gdCkpOw0KICAgICAgICAgICAgICB9DQogICAgICAgICAgICApLA0K ICAgICAgICAgICAgICAtMSA9PT0gZS5fc3RhdHVzICYmICgoZS5fc3RhdHVzID0gMCksIChl Ll9yZXN1bHQgPSB0KSk7DQogICAgICAgICAgfQ0KICAgICAgICAgIGlmICgxID09PSBlLl9z dGF0dXMpIHJldHVybiBlLl9yZXN1bHQuZGVmYXVsdDsNCiAgICAgICAgICB0aHJvdyBlLl9y ZXN1bHQ7DQogICAgICAgIH0NCiAgICAgICAgdmFyIEEgPSB7IGN1cnJlbnQ6IG51bGwgfSwN CiAgICAgICAgICBNID0geyB0cmFuc2l0aW9uOiBudWxsIH0sDQogICAgICAgICAgeiA9IHsg UmVhY3RDdXJyZW50RGlzcGF0Y2hlcjogQSwgUmVhY3RDdXJyZW50QmF0Y2hDb25maWc6IE0s IFJlYWN0Q3VycmVudE93bmVyOiBrIH07DQogICAgICAgICh0LkNoaWxkcmVuID0gew0KICAg ICAgICAgIG1hcDogTiwNCiAgICAgICAgICBmb3JFYWNoOiBmdW5jdGlvbiAoZSwgdCwgbikg ew0KICAgICAgICAgICAgTigNCiAgICAgICAgICAgICAgZSwNCiAgICAgICAgICAgICAgZnVu Y3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHQuYXBwbHkodGhpcywgYXJndW1lbnRzKTsN CiAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgbg0KICAgICAgICAgICAgKTsNCiAg ICAgICAgICB9LA0KICAgICAgICAgIGNvdW50OiBmdW5jdGlvbiAoZSkgew0KICAgICAgICAg ICAgdmFyIHQgPSAwOw0KICAgICAgICAgICAgcmV0dXJuICgNCiAgICAgICAgICAgICAgTihl LCBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgdCsrOw0KICAgICAgICAgICAgICB9 KSwNCiAgICAgICAgICAgICAgdA0KICAgICAgICAgICAgKTsNCiAgICAgICAgICB9LA0KICAg ICAgICAgIHRvQXJyYXk6IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICByZXR1cm4gKA0K ICAgICAgICAgICAgICBOKGUsIGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICAgICAgcmV0 dXJuIGU7DQogICAgICAgICAgICAgIH0pIHx8IFtdDQogICAgICAgICAgICApOw0KICAgICAg ICAgIH0sDQogICAgICAgICAgb25seTogZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgIGlm ICghUihlKSkgdGhyb3cgRXJyb3IoIlJlYWN0LkNoaWxkcmVuLm9ubHkgZXhwZWN0ZWQgdG8g cmVjZWl2ZSBhIHNpbmdsZSBSZWFjdCBlbGVtZW50IGNoaWxkLiIpOw0KICAgICAgICAgICAg cmV0dXJuIGU7DQogICAgICAgICAgfSwNCiAgICAgICAgfSksDQogICAgICAgICAgKHQuQ29t cG9uZW50ID0gdiksDQogICAgICAgICAgKHQuRnJhZ21lbnQgPSBvKSwNCiAgICAgICAgICAo dC5Qcm9maWxlciA9IGkpLA0KICAgICAgICAgICh0LlB1cmVDb21wb25lbnQgPSBiKSwNCiAg ICAgICAgICAodC5TdHJpY3RNb2RlID0gYSksDQogICAgICAgICAgKHQuU3VzcGVuc2UgPSBj KSwNCiAgICAgICAgICAodC5fX1NFQ1JFVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9ZT1Vf V0lMTF9CRV9GSVJFRCA9IHopLA0KICAgICAgICAgICh0LmNsb25lRWxlbWVudCA9IGZ1bmN0 aW9uIChlLCB0LCByKSB7DQogICAgICAgICAgICBpZiAobnVsbCA9PT0gZSB8fCB2b2lkIDAg PT09IGUpIHRocm93IEVycm9yKCJSZWFjdC5jbG9uZUVsZW1lbnQoLi4uKTogVGhlIGFyZ3Vt ZW50IG11c3QgYmUgYSBSZWFjdCBlbGVtZW50LCBidXQgeW91IHBhc3NlZCAiICsgZSArICIu Iik7DQogICAgICAgICAgICB2YXIgbyA9IG0oe30sIGUucHJvcHMpLA0KICAgICAgICAgICAg ICBhID0gZS5rZXksDQogICAgICAgICAgICAgIGkgPSBlLnJlZiwNCiAgICAgICAgICAgICAg bCA9IGUuX293bmVyOw0KICAgICAgICAgICAgaWYgKG51bGwgIT0gdCkgew0KICAgICAgICAg ICAgICBpZiAoKHZvaWQgMCAhPT0gdC5yZWYgJiYgKChpID0gdC5yZWYpLCAobCA9IGsuY3Vy cmVudCkpLCB2b2lkIDAgIT09IHQua2V5ICYmIChhID0gIiIgKyB0LmtleSksIGUudHlwZSAm JiBlLnR5cGUuZGVmYXVsdFByb3BzKSkgdmFyIHMgPSBlLnR5cGUuZGVmYXVsdFByb3BzOw0K ICAgICAgICAgICAgICBmb3IgKHUgaW4gdCkgUy5jYWxsKHQsIHUpICYmICFFLmhhc093blBy b3BlcnR5KHUpICYmIChvW3VdID0gdm9pZCAwID09PSB0W3VdICYmIHZvaWQgMCAhPT0gcyA/ IHNbdV0gOiB0W3VdKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHZhciB1ID0gYXJn dW1lbnRzLmxlbmd0aCAtIDI7DQogICAgICAgICAgICBpZiAoMSA9PT0gdSkgby5jaGlsZHJl biA9IHI7DQogICAgICAgICAgICBlbHNlIGlmICgxIDwgdSkgew0KICAgICAgICAgICAgICBz ID0gQXJyYXkodSk7DQogICAgICAgICAgICAgIGZvciAodmFyIGMgPSAwOyBjIDwgdTsgYysr KSBzW2NdID0gYXJndW1lbnRzW2MgKyAyXTsNCiAgICAgICAgICAgICAgby5jaGlsZHJlbiA9 IHM7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXR1cm4geyAkJHR5cGVvZjogbiwg dHlwZTogZS50eXBlLCBrZXk6IGEsIHJlZjogaSwgcHJvcHM6IG8sIF9vd25lcjogbCB9Ow0K ICAgICAgICAgIH0pLA0KICAgICAgICAgICh0LmNyZWF0ZUNvbnRleHQgPSBmdW5jdGlvbiAo ZSkgew0KICAgICAgICAgICAgcmV0dXJuICgNCiAgICAgICAgICAgICAgKChlID0geyAkJHR5 cGVvZjogcywgX2N1cnJlbnRWYWx1ZTogZSwgX2N1cnJlbnRWYWx1ZTI6IGUsIF90aHJlYWRD b3VudDogMCwgUHJvdmlkZXI6IG51bGwsIENvbnN1bWVyOiBudWxsLCBfZGVmYXVsdFZhbHVl OiBudWxsLCBfZ2xvYmFsTmFtZTogbnVsbCB9KS5Qcm92aWRlciA9IHsgJCR0eXBlb2Y6IGws IF9jb250ZXh0OiBlIH0pLA0KICAgICAgICAgICAgICAoZS5Db25zdW1lciA9IGUpDQogICAg ICAgICAgICApOw0KICAgICAgICAgIH0pLA0KICAgICAgICAgICh0LmNyZWF0ZUVsZW1lbnQg PSBDKSwNCiAgICAgICAgICAodC5jcmVhdGVGYWN0b3J5ID0gZnVuY3Rpb24gKGUpIHsNCiAg ICAgICAgICAgIHZhciB0ID0gQy5iaW5kKG51bGwsIGUpOw0KICAgICAgICAgICAgcmV0dXJu ICh0LnR5cGUgPSBlKSwgdDsNCiAgICAgICAgICB9KSwNCiAgICAgICAgICAodC5jcmVhdGVS ZWYgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICByZXR1cm4geyBjdXJyZW50OiBudWxs IH07DQogICAgICAgICAgfSksDQogICAgICAgICAgKHQuZm9yd2FyZFJlZiA9IGZ1bmN0aW9u IChlKSB7DQogICAgICAgICAgICByZXR1cm4geyAkJHR5cGVvZjogdSwgcmVuZGVyOiBlIH07 DQogICAgICAgICAgfSksDQogICAgICAgICAgKHQuaXNWYWxpZEVsZW1lbnQgPSBSKSwNCiAg ICAgICAgICAodC5sYXp5ID0gZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgIHJldHVybiB7 ICQkdHlwZW9mOiBmLCBfcGF5bG9hZDogeyBfc3RhdHVzOiAtMSwgX3Jlc3VsdDogZSB9LCBf aW5pdDogVCB9Ow0KICAgICAgICAgIH0pLA0KICAgICAgICAgICh0Lm1lbW8gPSBmdW5jdGlv biAoZSwgdCkgew0KICAgICAgICAgICAgcmV0dXJuIHsgJCR0eXBlb2Y6IGQsIHR5cGU6IGUs IGNvbXBhcmU6IHZvaWQgMCA9PT0gdCA/IG51bGwgOiB0IH07DQogICAgICAgICAgfSksDQog ICAgICAgICAgKHQuc3RhcnRUcmFuc2l0aW9uID0gZnVuY3Rpb24gKGUpIHsNCiAgICAgICAg ICAgIHZhciB0ID0gTS50cmFuc2l0aW9uOw0KICAgICAgICAgICAgTS50cmFuc2l0aW9uID0g e307DQogICAgICAgICAgICB0cnkgew0KICAgICAgICAgICAgICBlKCk7DQogICAgICAgICAg ICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgICBNLnRyYW5zaXRpb24gPSB0Ow0KICAgICAg ICAgICAgfQ0KICAgICAgICAgIH0pLA0KICAgICAgICAgICh0LnVuc3RhYmxlX2FjdCA9IGZ1 bmN0aW9uICgpIHsNCiAgICAgICAgICAgIHRocm93IEVycm9yKCJhY3QoLi4uKSBpcyBub3Qg c3VwcG9ydGVkIGluIHByb2R1Y3Rpb24gYnVpbGRzIG9mIFJlYWN0LiIpOw0KICAgICAgICAg IH0pLA0KICAgICAgICAgICh0LnVzZUNhbGxiYWNrID0gZnVuY3Rpb24gKGUsIHQpIHsNCiAg ICAgICAgICAgIHJldHVybiBBLmN1cnJlbnQudXNlQ2FsbGJhY2soZSwgdCk7DQogICAgICAg ICAgfSksDQogICAgICAgICAgKHQudXNlQ29udGV4dCA9IGZ1bmN0aW9uIChlKSB7DQogICAg ICAgICAgICByZXR1cm4gQS5jdXJyZW50LnVzZUNvbnRleHQoZSk7DQogICAgICAgICAgfSks DQogICAgICAgICAgKHQudXNlRGVidWdWYWx1ZSA9IGZ1bmN0aW9uICgpIHsgfSksDQogICAg ICAgICAgKHQudXNlRGVmZXJyZWRWYWx1ZSA9IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAg ICByZXR1cm4gQS5jdXJyZW50LnVzZURlZmVycmVkVmFsdWUoZSk7DQogICAgICAgICAgfSks DQogICAgICAgICAgKHQudXNlRWZmZWN0ID0gZnVuY3Rpb24gKGUsIHQpIHsNCiAgICAgICAg ICAgIHJldHVybiBBLmN1cnJlbnQudXNlRWZmZWN0KGUsIHQpOw0KICAgICAgICAgIH0pLA0K ICAgICAgICAgICh0LnVzZUlkID0gZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgcmV0dXJu IEEuY3VycmVudC51c2VJZCgpOw0KICAgICAgICAgIH0pLA0KICAgICAgICAgICh0LnVzZUlt cGVyYXRpdmVIYW5kbGUgPSBmdW5jdGlvbiAoZSwgdCwgbikgew0KICAgICAgICAgICAgcmV0 dXJuIEEuY3VycmVudC51c2VJbXBlcmF0aXZlSGFuZGxlKGUsIHQsIG4pOw0KICAgICAgICAg IH0pLA0KICAgICAgICAgICh0LnVzZUluc2VydGlvbkVmZmVjdCA9IGZ1bmN0aW9uIChlLCB0 KSB7DQogICAgICAgICAgICByZXR1cm4gQS5jdXJyZW50LnVzZUluc2VydGlvbkVmZmVjdChl LCB0KTsNCiAgICAgICAgICB9KSwNCiAgICAgICAgICAodC51c2VMYXlvdXRFZmZlY3QgPSBm dW5jdGlvbiAoZSwgdCkgew0KICAgICAgICAgICAgcmV0dXJuIEEuY3VycmVudC51c2VMYXlv dXRFZmZlY3QoZSwgdCk7DQogICAgICAgICAgfSksDQogICAgICAgICAgKHQudXNlTWVtbyA9 IGZ1bmN0aW9uIChlLCB0KSB7DQogICAgICAgICAgICByZXR1cm4gQS5jdXJyZW50LnVzZU1l bW8oZSwgdCk7DQogICAgICAgICAgfSksDQogICAgICAgICAgKHQudXNlUmVkdWNlciA9IGZ1 bmN0aW9uIChlLCB0LCBuKSB7DQogICAgICAgICAgICByZXR1cm4gQS5jdXJyZW50LnVzZVJl ZHVjZXIoZSwgdCwgbik7DQogICAgICAgICAgfSksDQogICAgICAgICAgKHQudXNlUmVmID0g ZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgIHJldHVybiBBLmN1cnJlbnQudXNlUmVmKGUp Ow0KICAgICAgICAgIH0pLA0KICAgICAgICAgICh0LnVzZVN0YXRlID0gZnVuY3Rpb24gKGUp IHsNCiAgICAgICAgICAgIHJldHVybiBBLmN1cnJlbnQudXNlU3RhdGUoZSk7DQogICAgICAg ICAgfSksDQogICAgICAgICAgKHQudXNlU3luY0V4dGVybmFsU3RvcmUgPSBmdW5jdGlvbiAo ZSwgdCwgbikgew0KICAgICAgICAgICAgcmV0dXJuIEEuY3VycmVudC51c2VTeW5jRXh0ZXJu YWxTdG9yZShlLCB0LCBuKTsNCiAgICAgICAgICB9KSwNCiAgICAgICAgICAodC51c2VUcmFu c2l0aW9uID0gZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgcmV0dXJuIEEuY3VycmVudC51 c2VUcmFuc2l0aW9uKCk7DQogICAgICAgICAgfSksDQogICAgICAgICAgKHQudmVyc2lvbiA9 ICIxOC4yLjAiKTsNCiAgICAgIH0sDQogICAgICA3OTE6IChlLCB0LCBuKSA9PiB7DQogICAg ICAgIGUuZXhwb3J0cyA9IG4oMTE3KTsNCiAgICAgIH0sDQogICAgICAxODQ6IChlLCB0LCBu KSA9PiB7DQogICAgICAgIGUuZXhwb3J0cyA9IG4oMzc0KTsNCiAgICAgIH0sDQogICAgICA4 MTM6IChlLCB0KSA9PiB7DQogICAgICAgIGZ1bmN0aW9uIG4oZSwgdCkgew0KICAgICAgICAg IHZhciBuID0gZS5sZW5ndGg7DQogICAgICAgICAgZS5wdXNoKHQpOw0KICAgICAgICAgIGU6 IGZvciAoOyAwIDwgbjspIHsNCiAgICAgICAgICAgIHZhciByID0gKG4gLSAxKSA+Pj4gMSwN CiAgICAgICAgICAgICAgbyA9IGVbcl07DQogICAgICAgICAgICBpZiAoISgwIDwgYShvLCB0 KSkpIGJyZWFrIGU7DQogICAgICAgICAgICAoZVtyXSA9IHQpLCAoZVtuXSA9IG8pLCAobiA9 IHIpOw0KICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiByKGUpIHsN CiAgICAgICAgICByZXR1cm4gMCA9PT0gZS5sZW5ndGggPyBudWxsIDogZVswXTsNCiAgICAg ICAgfQ0KICAgICAgICBmdW5jdGlvbiBvKGUpIHsNCiAgICAgICAgICBpZiAoMCA9PT0gZS5s ZW5ndGgpIHJldHVybiBudWxsOw0KICAgICAgICAgIHZhciB0ID0gZVswXSwNCiAgICAgICAg ICAgIG4gPSBlLnBvcCgpOw0KICAgICAgICAgIGlmIChuICE9PSB0KSB7DQogICAgICAgICAg ICBlWzBdID0gbjsNCiAgICAgICAgICAgIGU6IGZvciAodmFyIHIgPSAwLCBvID0gZS5sZW5n dGgsIGkgPSBvID4+PiAxOyByIDwgaTspIHsNCiAgICAgICAgICAgICAgdmFyIGwgPSAyICog KHIgKyAxKSAtIDEsDQogICAgICAgICAgICAgICAgcyA9IGVbbF0sDQogICAgICAgICAgICAg ICAgdSA9IGwgKyAxLA0KICAgICAgICAgICAgICAgIGMgPSBlW3VdOw0KICAgICAgICAgICAg ICBpZiAoMCA+IGEocywgbikpIHUgPCBvICYmIDAgPiBhKGMsIHMpID8gKChlW3JdID0gYyks IChlW3VdID0gbiksIChyID0gdSkpIDogKChlW3JdID0gcyksIChlW2xdID0gbiksIChyID0g bCkpOw0KICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBpZiAoISh1IDwg byAmJiAwID4gYShjLCBuKSkpIGJyZWFrIGU7DQogICAgICAgICAgICAgICAgKGVbcl0gPSBj KSwgKGVbdV0gPSBuKSwgKHIgPSB1KTsNCiAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAg fQ0KICAgICAgICAgIH0NCiAgICAgICAgICByZXR1cm4gdDsNCiAgICAgICAgfQ0KICAgICAg ICBmdW5jdGlvbiBhKGUsIHQpIHsNCiAgICAgICAgICB2YXIgbiA9IGUuc29ydEluZGV4IC0g dC5zb3J0SW5kZXg7DQogICAgICAgICAgcmV0dXJuIDAgIT09IG4gPyBuIDogZS5pZCAtIHQu aWQ7DQogICAgICAgIH0NCiAgICAgICAgaWYgKCJvYmplY3QiID09PSB0eXBlb2YgcGVyZm9y bWFuY2UgJiYgImZ1bmN0aW9uIiA9PT0gdHlwZW9mIHBlcmZvcm1hbmNlLm5vdykgew0KICAg ICAgICAgIHZhciBpID0gcGVyZm9ybWFuY2U7DQogICAgICAgICAgdC51bnN0YWJsZV9ub3cg PSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICByZXR1cm4gaS5ub3coKTsNCiAgICAgICAg ICB9Ow0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgIHZhciBsID0gRGF0ZSwNCiAgICAg ICAgICAgIHMgPSBsLm5vdygpOw0KICAgICAgICAgIHQudW5zdGFibGVfbm93ID0gZnVuY3Rp b24gKCkgew0KICAgICAgICAgICAgcmV0dXJuIGwubm93KCkgLSBzOw0KICAgICAgICAgIH07 DQogICAgICAgIH0NCiAgICAgICAgdmFyIHUgPSBbXSwNCiAgICAgICAgICBjID0gW10sDQog ICAgICAgICAgZCA9IDEsDQogICAgICAgICAgZiA9IG51bGwsDQogICAgICAgICAgcCA9IDMs DQogICAgICAgICAgaCA9ICExLA0KICAgICAgICAgIG0gPSAhMSwNCiAgICAgICAgICBnID0g ITEsDQogICAgICAgICAgdiA9ICJmdW5jdGlvbiIgPT09IHR5cGVvZiBzZXRUaW1lb3V0ID8g c2V0VGltZW91dCA6IG51bGwsDQogICAgICAgICAgeSA9ICJmdW5jdGlvbiIgPT09IHR5cGVv ZiBjbGVhclRpbWVvdXQgPyBjbGVhclRpbWVvdXQgOiBudWxsLA0KICAgICAgICAgIGIgPSAi dW5kZWZpbmVkIiAhPT0gdHlwZW9mIHNldEltbWVkaWF0ZSA/IHNldEltbWVkaWF0ZSA6IG51 bGw7DQogICAgICAgIGZ1bmN0aW9uIHcoZSkgew0KICAgICAgICAgIGZvciAodmFyIHQgPSBy KGMpOyBudWxsICE9PSB0Oykgew0KICAgICAgICAgICAgaWYgKG51bGwgPT09IHQuY2FsbGJh Y2spIG8oYyk7DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgaWYgKCEodC5z dGFydFRpbWUgPD0gZSkpIGJyZWFrOw0KICAgICAgICAgICAgICBvKGMpLCAodC5zb3J0SW5k ZXggPSB0LmV4cGlyYXRpb25UaW1lKSwgbih1LCB0KTsNCiAgICAgICAgICAgIH0NCiAgICAg ICAgICAgIHQgPSByKGMpOw0KICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICBmdW5j dGlvbiB4KGUpIHsNCiAgICAgICAgICBpZiAoKChnID0gITEpLCB3KGUpLCAhbSkpDQogICAg ICAgICAgICBpZiAobnVsbCAhPT0gcih1KSkgKG0gPSAhMCksIE0oUyk7DQogICAgICAgICAg ICBlbHNlIHsNCiAgICAgICAgICAgICAgdmFyIHQgPSByKGMpOw0KICAgICAgICAgICAgICBu dWxsICE9PSB0ICYmIHooeCwgdC5zdGFydFRpbWUgLSBlKTsNCiAgICAgICAgICAgIH0NCiAg ICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBTKGUsIG4pIHsNCiAgICAgICAgICAobSA9ICEx KSwgZyAmJiAoKGcgPSAhMSksIHkoUiksIChSID0gLTEpKSwgKGggPSAhMCk7DQogICAgICAg ICAgdmFyIGEgPSBwOw0KICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICBmb3IgKHcobiks IGYgPSByKHUpOyBudWxsICE9PSBmICYmICghKGYuZXhwaXJhdGlvblRpbWUgPiBuKSB8fCAo ZSAmJiAhTygpKSk7KSB7DQogICAgICAgICAgICAgIHZhciBpID0gZi5jYWxsYmFjazsNCiAg ICAgICAgICAgICAgaWYgKCJmdW5jdGlvbiIgPT09IHR5cGVvZiBpKSB7DQogICAgICAgICAg ICAgICAgKGYuY2FsbGJhY2sgPSBudWxsKSwgKHAgPSBmLnByaW9yaXR5TGV2ZWwpOw0KICAg ICAgICAgICAgICAgIHZhciBsID0gaShmLmV4cGlyYXRpb25UaW1lIDw9IG4pOw0KICAgICAg ICAgICAgICAgIChuID0gdC51bnN0YWJsZV9ub3coKSksICJmdW5jdGlvbiIgPT09IHR5cGVv ZiBsID8gKGYuY2FsbGJhY2sgPSBsKSA6IGYgPT09IHIodSkgJiYgbyh1KSwgdyhuKTsNCiAg ICAgICAgICAgICAgfSBlbHNlIG8odSk7DQogICAgICAgICAgICAgIGYgPSByKHUpOw0KICAg ICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKG51bGwgIT09IGYpIHZhciBzID0gITA7DQog ICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgdmFyIGQgPSByKGMpOw0KICAgICAg ICAgICAgICBudWxsICE9PSBkICYmIHooeCwgZC5zdGFydFRpbWUgLSBuKSwgKHMgPSAhMSk7 DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXR1cm4gczsNCiAgICAgICAgICB9IGZp bmFsbHkgew0KICAgICAgICAgICAgKGYgPSBudWxsKSwgKHAgPSBhKSwgKGggPSAhMSk7DQog ICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgICJ1bmRlZmluZWQiICE9PSB0eXBlb2Yg bmF2aWdhdG9yICYmIHZvaWQgMCAhPT0gbmF2aWdhdG9yLnNjaGVkdWxpbmcgJiYgdm9pZCAw ICE9PSBuYXZpZ2F0b3Iuc2NoZWR1bGluZy5pc0lucHV0UGVuZGluZyAmJiBuYXZpZ2F0b3Iu c2NoZWR1bGluZy5pc0lucHV0UGVuZGluZy5iaW5kKG5hdmlnYXRvci5zY2hlZHVsaW5nKTsN CiAgICAgICAgdmFyIGssDQogICAgICAgICAgRSA9ICExLA0KICAgICAgICAgIEMgPSBudWxs LA0KICAgICAgICAgIFIgPSAtMSwNCiAgICAgICAgICBfID0gNSwNCiAgICAgICAgICBQID0g LTE7DQogICAgICAgIGZ1bmN0aW9uIE8oKSB7DQogICAgICAgICAgcmV0dXJuICEodC51bnN0 YWJsZV9ub3coKSAtIFAgPCBfKTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBOKCkg ew0KICAgICAgICAgIGlmIChudWxsICE9PSBDKSB7DQogICAgICAgICAgICB2YXIgZSA9IHQu dW5zdGFibGVfbm93KCk7DQogICAgICAgICAgICBQID0gZTsNCiAgICAgICAgICAgIHZhciBu ID0gITA7DQogICAgICAgICAgICB0cnkgew0KICAgICAgICAgICAgICBuID0gQyghMCwgZSk7 DQogICAgICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgICBuID8gaygpIDogKChF ID0gITEpLCAoQyA9IG51bGwpKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICB9IGVsc2Ug RSA9ICExOw0KICAgICAgICB9DQogICAgICAgIGlmICgiZnVuY3Rpb24iID09PSB0eXBlb2Yg YikNCiAgICAgICAgICBrID0gZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgYihOKTsNCiAg ICAgICAgICB9Ow0KICAgICAgICBlbHNlIGlmICgidW5kZWZpbmVkIiAhPT0gdHlwZW9mIE1l c3NhZ2VDaGFubmVsKSB7DQogICAgICAgICAgdmFyIFQgPSBuZXcgTWVzc2FnZUNoYW5uZWwo KSwNCiAgICAgICAgICAgIEEgPSBULnBvcnQyOw0KICAgICAgICAgIChULnBvcnQxLm9ubWVz c2FnZSA9IE4pLA0KICAgICAgICAgICAgKGsgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAg ICAgIEEucG9zdE1lc3NhZ2UobnVsbCk7DQogICAgICAgICAgICB9KTsNCiAgICAgICAgfSBl bHNlDQogICAgICAgICAgayA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgIHYoTiwgMCk7 DQogICAgICAgICAgfTsNCiAgICAgICAgZnVuY3Rpb24gTShlKSB7DQogICAgICAgICAgKEMg PSBlKSwgRSB8fCAoKEUgPSAhMCksIGsoKSk7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rp b24geihlLCBuKSB7DQogICAgICAgICAgUiA9IHYoZnVuY3Rpb24gKCkgew0KICAgICAgICAg ICAgZSh0LnVuc3RhYmxlX25vdygpKTsNCiAgICAgICAgICB9LCBuKTsNCiAgICAgICAgfQ0K ICAgICAgICAodC51bnN0YWJsZV9JZGxlUHJpb3JpdHkgPSA1KSwNCiAgICAgICAgICAodC51 bnN0YWJsZV9JbW1lZGlhdGVQcmlvcml0eSA9IDEpLA0KICAgICAgICAgICh0LnVuc3RhYmxl X0xvd1ByaW9yaXR5ID0gNCksDQogICAgICAgICAgKHQudW5zdGFibGVfTm9ybWFsUHJpb3Jp dHkgPSAzKSwNCiAgICAgICAgICAodC51bnN0YWJsZV9Qcm9maWxpbmcgPSBudWxsKSwNCiAg ICAgICAgICAodC51bnN0YWJsZV9Vc2VyQmxvY2tpbmdQcmlvcml0eSA9IDIpLA0KICAgICAg ICAgICh0LnVuc3RhYmxlX2NhbmNlbENhbGxiYWNrID0gZnVuY3Rpb24gKGUpIHsNCiAgICAg ICAgICAgIGUuY2FsbGJhY2sgPSBudWxsOw0KICAgICAgICAgIH0pLA0KICAgICAgICAgICh0 LnVuc3RhYmxlX2NvbnRpbnVlRXhlY3V0aW9uID0gZnVuY3Rpb24gKCkgew0KICAgICAgICAg ICAgbSB8fCBoIHx8ICgobSA9ICEwKSwgTShTKSk7DQogICAgICAgICAgfSksDQogICAgICAg ICAgKHQudW5zdGFibGVfZm9yY2VGcmFtZVJhdGUgPSBmdW5jdGlvbiAoZSkgew0KICAgICAg ICAgICAgMCA+IGUgfHwgMTI1IDwgZSA/IGNvbnNvbGUuZXJyb3IoImZvcmNlRnJhbWVSYXRl IHRha2VzIGEgcG9zaXRpdmUgaW50IGJldHdlZW4gMCBhbmQgMTI1LCBmb3JjaW5nIGZyYW1l IHJhdGVzIGhpZ2hlciB0aGFuIDEyNSBmcHMgaXMgbm90IHN1cHBvcnRlZCIpIDogKF8gPSAw IDwgZSA/IE1hdGguZmxvb3IoMWUzIC8gZSkgOiA1KTsNCiAgICAgICAgICB9KSwNCiAgICAg ICAgICAodC51bnN0YWJsZV9nZXRDdXJyZW50UHJpb3JpdHlMZXZlbCA9IGZ1bmN0aW9uICgp IHsNCiAgICAgICAgICAgIHJldHVybiBwOw0KICAgICAgICAgIH0pLA0KICAgICAgICAgICh0 LnVuc3RhYmxlX2dldEZpcnN0Q2FsbGJhY2tOb2RlID0gZnVuY3Rpb24gKCkgew0KICAgICAg ICAgICAgcmV0dXJuIHIodSk7DQogICAgICAgICAgfSksDQogICAgICAgICAgKHQudW5zdGFi bGVfbmV4dCA9IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICBzd2l0Y2ggKHApIHsNCiAg ICAgICAgICAgICAgY2FzZSAxOg0KICAgICAgICAgICAgICBjYXNlIDI6DQogICAgICAgICAg ICAgIGNhc2UgMzoNCiAgICAgICAgICAgICAgICB2YXIgdCA9IDM7DQogICAgICAgICAgICAg ICAgYnJlYWs7DQogICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgdCA9 IHA7DQogICAgICAgICAgICB9DQogICAgICAgICAgICB2YXIgbiA9IHA7DQogICAgICAgICAg ICBwID0gdDsNCiAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgIHJldHVybiBlKCk7 DQogICAgICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgICBwID0gbjsNCiAgICAg ICAgICAgIH0NCiAgICAgICAgICB9KSwNCiAgICAgICAgICAodC51bnN0YWJsZV9wYXVzZUV4 ZWN1dGlvbiA9IGZ1bmN0aW9uICgpIHsgfSksDQogICAgICAgICAgKHQudW5zdGFibGVfcmVx dWVzdFBhaW50ID0gZnVuY3Rpb24gKCkgeyB9KSwNCiAgICAgICAgICAodC51bnN0YWJsZV9y dW5XaXRoUHJpb3JpdHkgPSBmdW5jdGlvbiAoZSwgdCkgew0KICAgICAgICAgICAgc3dpdGNo IChlKSB7DQogICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgY2FzZSAyOg0K ICAgICAgICAgICAgICBjYXNlIDM6DQogICAgICAgICAgICAgIGNhc2UgNDoNCiAgICAgICAg ICAgICAgY2FzZSA1Og0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICBk ZWZhdWx0Og0KICAgICAgICAgICAgICAgIGUgPSAzOw0KICAgICAgICAgICAgfQ0KICAgICAg ICAgICAgdmFyIG4gPSBwOw0KICAgICAgICAgICAgcCA9IGU7DQogICAgICAgICAgICB0cnkg ew0KICAgICAgICAgICAgICByZXR1cm4gdCgpOw0KICAgICAgICAgICAgfSBmaW5hbGx5IHsN CiAgICAgICAgICAgICAgcCA9IG47DQogICAgICAgICAgICB9DQogICAgICAgICAgfSksDQog ICAgICAgICAgKHQudW5zdGFibGVfc2NoZWR1bGVDYWxsYmFjayA9IGZ1bmN0aW9uIChlLCBv LCBhKSB7DQogICAgICAgICAgICB2YXIgaSA9IHQudW5zdGFibGVfbm93KCk7DQogICAgICAg ICAgICBzd2l0Y2ggKCgib2JqZWN0IiA9PT0gdHlwZW9mIGEgJiYgbnVsbCAhPT0gYSA/IChh ID0gIm51bWJlciIgPT09IHR5cGVvZiAoYSA9IGEuZGVsYXkpICYmIDAgPCBhID8gaSArIGEg OiBpKSA6IChhID0gaSksIGUpKSB7DQogICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAg ICAgICAgICB2YXIgbCA9IC0xOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAg ICAgICBjYXNlIDI6DQogICAgICAgICAgICAgICAgbCA9IDI1MDsNCiAgICAgICAgICAgICAg ICBicmVhazsNCiAgICAgICAgICAgICAgY2FzZSA1Og0KICAgICAgICAgICAgICAgIGwgPSAx MDczNzQxODIzOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICBjYXNl IDQ6DQogICAgICAgICAgICAgICAgbCA9IDFlNDsNCiAgICAgICAgICAgICAgICBicmVhazsN CiAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBsID0gNWUzOw0KICAg ICAgICAgICAgfQ0KICAgICAgICAgICAgcmV0dXJuICgNCiAgICAgICAgICAgICAgKGUgPSB7 IGlkOiBkKyssIGNhbGxiYWNrOiBvLCBwcmlvcml0eUxldmVsOiBlLCBzdGFydFRpbWU6IGEs IGV4cGlyYXRpb25UaW1lOiAobCA9IGEgKyBsKSwgc29ydEluZGV4OiAtMSB9KSwNCiAgICAg ICAgICAgICAgYSA+IGkgPyAoKGUuc29ydEluZGV4ID0gYSksIG4oYywgZSksIG51bGwgPT09 IHIodSkgJiYgZSA9PT0gcihjKSAmJiAoZyA/ICh5KFIpLCAoUiA9IC0xKSkgOiAoZyA9ICEw KSwgeih4LCBhIC0gaSkpKSA6ICgoZS5zb3J0SW5kZXggPSBsKSwgbih1LCBlKSwgbSB8fCBo IHx8ICgobSA9ICEwKSwgTShTKSkpLA0KICAgICAgICAgICAgICBlDQogICAgICAgICAgICAp Ow0KICAgICAgICAgIH0pLA0KICAgICAgICAgICh0LnVuc3RhYmxlX3Nob3VsZFlpZWxkID0g TyksDQogICAgICAgICAgKHQudW5zdGFibGVfd3JhcENhbGxiYWNrID0gZnVuY3Rpb24gKGUp IHsNCiAgICAgICAgICAgIHZhciB0ID0gcDsNCiAgICAgICAgICAgIHJldHVybiBmdW5jdGlv biAoKSB7DQogICAgICAgICAgICAgIHZhciBuID0gcDsNCiAgICAgICAgICAgICAgcCA9IHQ7 DQogICAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGUuYXBwbHko dGhpcywgYXJndW1lbnRzKTsNCiAgICAgICAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAg ICAgICAgICBwID0gbjsNCiAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfTsNCiAgICAg ICAgICB9KTsNCiAgICAgIH0sDQogICAgICAyOTY6IChlLCB0LCBuKSA9PiB7DQogICAgICAg IGUuZXhwb3J0cyA9IG4oODEzKTsNCiAgICAgIH0sDQogICAgfSwNCiAgICAgIHQgPSB7fTsN CiAgICBmdW5jdGlvbiBuKHIpIHsNCiAgICAgIHZhciBvID0gdFtyXTsNCiAgICAgIGlmICh2 b2lkIDAgIT09IG8pIHJldHVybiBvLmV4cG9ydHM7DQogICAgICB2YXIgYSA9ICh0W3JdID0g eyBleHBvcnRzOiB7fSB9KTsNCiAgICAgIHJldHVybiBlW3JdKGEsIGEuZXhwb3J0cywgbiks IGEuZXhwb3J0czsNCiAgICB9DQogICAgKG4ubSA9IGUpLA0KICAgICAgKCgpID0+IHsNCiAg ICAgICAgdmFyIGUsDQogICAgICAgICAgdCA9IE9iamVjdC5nZXRQcm90b3R5cGVPZiA/IChl KSA9PiBPYmplY3QuZ2V0UHJvdG90eXBlT2YoZSkgOiAoZSkgPT4gZS5fX3Byb3RvX187DQog ICAgICAgIG4udCA9IGZ1bmN0aW9uIChyLCBvKSB7DQogICAgICAgICAgaWYgKCgxICYgbyAm JiAociA9IHRoaXMocikpLCA4ICYgbykpIHJldHVybiByOw0KICAgICAgICAgIGlmICgib2Jq ZWN0IiA9PT0gdHlwZW9mIHIgJiYgcikgew0KICAgICAgICAgICAgaWYgKDQgJiBvICYmIHIu X19lc01vZHVsZSkgcmV0dXJuIHI7DQogICAgICAgICAgICBpZiAoMTYgJiBvICYmICJmdW5j dGlvbiIgPT09IHR5cGVvZiByLnRoZW4pIHJldHVybiByOw0KICAgICAgICAgIH0NCiAgICAg ICAgICB2YXIgYSA9IE9iamVjdC5jcmVhdGUobnVsbCk7DQogICAgICAgICAgbi5yKGEpOw0K ICAgICAgICAgIHZhciBpID0ge307DQogICAgICAgICAgZSA9IGUgfHwgW251bGwsIHQoe30p LCB0KFtdKSwgdCh0KV07DQogICAgICAgICAgZm9yICh2YXIgbCA9IDIgJiBvICYmIHI7ICJv YmplY3QiID09IHR5cGVvZiBsICYmICF+ZS5pbmRleE9mKGwpOyBsID0gdChsKSkgT2JqZWN0 LmdldE93blByb3BlcnR5TmFtZXMobCkuZm9yRWFjaCgoZSkgPT4gKGlbZV0gPSAoKSA9PiBy W2VdKSk7DQogICAgICAgICAgcmV0dXJuIChpLmRlZmF1bHQgPSAoKSA9PiByKSwgbi5kKGEs IGkpLCBhOw0KICAgICAgICB9Ow0KICAgICAgfSkoKSwNCiAgICAgIChuLmQgPSAoZSwgdCkg PT4gew0KICAgICAgICBmb3IgKHZhciByIGluIHQpIG4ubyh0LCByKSAmJiAhbi5vKGUsIHIp ICYmIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCByLCB7IGVudW1lcmFibGU6ICEwLCBnZXQ6 IHRbcl0gfSk7DQogICAgICB9KSwNCiAgICAgIChuLmYgPSB7fSksDQogICAgICAobi5lID0g KGUpID0+IFByb21pc2UuYWxsKE9iamVjdC5rZXlzKG4uZikucmVkdWNlKCh0LCByKSA9PiAo bi5mW3JdKGUsIHQpLCB0KSwgW10pKSksDQogICAgICAobi51ID0gKGUpID0+ICJzdGF0aWMv anMvIiArIGUgKyAiLjBlMDkxYzJhLmNodW5rLmpzIiksDQogICAgICAobi5taW5pQ3NzRiA9 IChlKSA9PiB7IH0pLA0KICAgICAgKG4ubyA9IChlLCB0KSA9PiBPYmplY3QucHJvdG90eXBl Lmhhc093blByb3BlcnR5LmNhbGwoZSwgdCkpLA0KICAgICAgKCgpID0+IHsNCiAgICAgICAg dmFyIGUgPSB7fSwNCiAgICAgICAgICB0ID0gIm9uZWRyaXZlbmV3OiI7DQogICAgICAgIG4u bCA9IChyLCBvLCBhLCBpKSA9PiB7DQogICAgICAgICAgaWYgKGVbcl0pIGVbcl0ucHVzaChv KTsNCiAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIHZhciBsLCBzOw0KICAgICAgICAg ICAgaWYgKHZvaWQgMCAhPT0gYSkNCiAgICAgICAgICAgICAgZm9yICh2YXIgdSA9IGRvY3Vt ZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzY3JpcHQiKSwgYyA9IDA7IGMgPCB1Lmxlbmd0 aDsgYysrKSB7DQogICAgICAgICAgICAgICAgdmFyIGQgPSB1W2NdOw0KICAgICAgICAgICAg ICAgIGlmIChkLmdldEF0dHJpYnV0ZSgic3JjIikgPT0gciB8fCBkLmdldEF0dHJpYnV0ZSgi ZGF0YS13ZWJwYWNrIikgPT0gdCArIGEpIHsNCiAgICAgICAgICAgICAgICAgIGwgPSBkOw0K ICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAg ICAgICB9DQogICAgICAgICAgICBsIHx8ICgocyA9ICEwKSwgKChsID0gZG9jdW1lbnQuY3Jl YXRlRWxlbWVudCgic2NyaXB0IikpLmNoYXJzZXQgPSAidXRmLTgiKSwgKGwudGltZW91dCA9 IDEyMCksIG4ubmMgJiYgbC5zZXRBdHRyaWJ1dGUoIm5vbmNlIiwgbi5uYyksIGwuc2V0QXR0 cmlidXRlKCJkYXRhLXdlYnBhY2siLCB0ICsgYSksIChsLnNyYyA9IHIpKSwgKGVbcl0gPSBb b10pOw0KICAgICAgICAgICAgdmFyIGYgPSAodCwgbikgPT4gew0KICAgICAgICAgICAgICAo bC5vbmVycm9yID0gbC5vbmxvYWQgPSBudWxsKSwgY2xlYXJUaW1lb3V0KHApOw0KICAgICAg ICAgICAgICB2YXIgbyA9IGVbcl07DQogICAgICAgICAgICAgIGlmICgoZGVsZXRlIGVbcl0s IGwucGFyZW50Tm9kZSAmJiBsLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQobCksIG8gJiYgby5m b3JFYWNoKChlKSA9PiBlKG4pKSwgdCkpIHJldHVybiB0KG4pOw0KICAgICAgICAgICAgfSwN CiAgICAgICAgICAgICAgcCA9IHNldFRpbWVvdXQoZi5iaW5kKG51bGwsIHZvaWQgMCwgeyB0 eXBlOiAidGltZW91dCIsIHRhcmdldDogbCB9KSwgMTJlNCk7DQogICAgICAgICAgICAobC5v bmVycm9yID0gZi5iaW5kKG51bGwsIGwub25lcnJvcikpLCAobC5vbmxvYWQgPSBmLmJpbmQo bnVsbCwgbC5vbmxvYWQpKSwgcyAmJiBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGwpOw0K ICAgICAgICAgIH0NCiAgICAgICAgfTsNCiAgICAgIH0pKCksDQogICAgICAobi5yID0gKGUp ID0+IHsNCiAgICAgICAgInVuZGVmaW5lZCIgIT09IHR5cGVvZiBTeW1ib2wgJiYgU3ltYm9s LnRvU3RyaW5nVGFnICYmIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCBTeW1ib2wudG9TdHJp bmdUYWcsIHsgdmFsdWU6ICJNb2R1bGUiIH0pLCBPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwg Il9fZXNNb2R1bGUiLCB7IHZhbHVlOiAhMCB9KTsNCiAgICAgIH0pLA0KICAgICAgKG4ucCA9 ICIvIiksDQogICAgICAoKCkgPT4gew0KICAgICAgICB2YXIgZSA9IHsgMTc5OiAwIH07DQog ICAgICAgIG4uZi5qID0gKHQsIHIpID0+IHsNCiAgICAgICAgICB2YXIgbyA9IG4ubyhlLCB0 KSA/IGVbdF0gOiB2b2lkIDA7DQogICAgICAgICAgaWYgKDAgIT09IG8pDQogICAgICAgICAg ICBpZiAobykgci5wdXNoKG9bMl0pOw0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAg ICAgIHZhciBhID0gbmV3IFByb21pc2UoKG4sIHIpID0+IChvID0gZVt0XSA9IFtuLCByXSkp Ow0KICAgICAgICAgICAgICByLnB1c2goKG9bMl0gPSBhKSk7DQogICAgICAgICAgICAgIHZh ciBpID0gbi5wICsgbi51KHQpLA0KICAgICAgICAgICAgICAgIGwgPSBuZXcgRXJyb3IoKTsN CiAgICAgICAgICAgICAgbi5sKA0KICAgICAgICAgICAgICAgIGksDQogICAgICAgICAgICAg ICAgKHIpID0+IHsNCiAgICAgICAgICAgICAgICAgIGlmIChuLm8oZSwgdCkgJiYgKDAgIT09 IChvID0gZVt0XSkgJiYgKGVbdF0gPSB2b2lkIDApLCBvKSkgew0KICAgICAgICAgICAgICAg ICAgICB2YXIgYSA9IHIgJiYgKCJsb2FkIiA9PT0gci50eXBlID8gIm1pc3NpbmciIDogci50 eXBlKSwNCiAgICAgICAgICAgICAgICAgICAgICBpID0gciAmJiByLnRhcmdldCAmJiByLnRh cmdldC5zcmM7DQogICAgICAgICAgICAgICAgICAgIChsLm1lc3NhZ2UgPSAiTG9hZGluZyBj aHVuayAiICsgdCArICIgZmFpbGVkLlxuKCIgKyBhICsgIjogIiArIGkgKyAiKSIpLCAobC5u YW1lID0gIkNodW5rTG9hZEVycm9yIiksIChsLnR5cGUgPSBhKSwgKGwucmVxdWVzdCA9IGkp LCBvWzFdKGwpOw0KICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0sDQog ICAgICAgICAgICAgICAgImNodW5rLSIgKyB0LA0KICAgICAgICAgICAgICAgIHQNCiAgICAg ICAgICAgICAgKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfTsNCiAgICAgICAgdmFyIHQg PSAodCwgcikgPT4gew0KICAgICAgICAgIHZhciBvLA0KICAgICAgICAgICAgYSwNCiAgICAg ICAgICAgIGkgPSByWzBdLA0KICAgICAgICAgICAgbCA9IHJbMV0sDQogICAgICAgICAgICBz ID0gclsyXSwNCiAgICAgICAgICAgIHUgPSAwOw0KICAgICAgICAgIGlmIChpLnNvbWUoKHQp ID0+IDAgIT09IGVbdF0pKSB7DQogICAgICAgICAgICBmb3IgKG8gaW4gbCkgbi5vKGwsIG8p ICYmIChuLm1bb10gPSBsW29dKTsNCiAgICAgICAgICAgIGlmIChzKSBzKG4pOw0KICAgICAg ICAgIH0NCiAgICAgICAgICBmb3IgKHQgJiYgdChyKTsgdSA8IGkubGVuZ3RoOyB1KyspIChh ID0gaVt1XSksIG4ubyhlLCBhKSAmJiBlW2FdICYmIGVbYV1bMF0oKSwgKGVbYV0gPSAwKTsN CiAgICAgICAgfSwNCiAgICAgICAgICByID0gKHNlbGYud2VicGFja0NodW5rb25lZHJpdmVu ZXcgPSBzZWxmLndlYnBhY2tDaHVua29uZWRyaXZlbmV3IHx8IFtdKTsNCiAgICAgICAgci5m b3JFYWNoKHQuYmluZChudWxsLCAwKSksIChyLnB1c2ggPSB0LmJpbmQobnVsbCwgci5wdXNo LmJpbmQocikpKTsNCiAgICAgIH0pKCksDQogICAgICAoKCkgPT4gew0KICAgICAgICB2YXIg ZSA9IHt9Ow0KICAgICAgICBuLnIoZSksIG4uZChlLCB7IGhhc0Jyb3dzZXJFbnY6ICgpID0+ IG5wLCBoYXNTdGFuZGFyZEJyb3dzZXJFbnY6ICgpID0+IHJwLCBoYXNTdGFuZGFyZEJyb3dz ZXJXZWJXb3JrZXJFbnY6ICgpID0+IGFwIH0pOw0KICAgICAgICB2YXIgdCA9IG4oNzkxKSwN CiAgICAgICAgICByID0gbi50KHQsIDIpLA0KICAgICAgICAgIG8gPSBuKDI1MCk7DQogICAg ICAgIGZ1bmN0aW9uIGEoZSwgdCkgew0KICAgICAgICAgIGlmIChudWxsID09IGUpIHJldHVy biB7fTsNCiAgICAgICAgICB2YXIgbiwNCiAgICAgICAgICAgIHIsDQogICAgICAgICAgICBv ID0ge30sDQogICAgICAgICAgICBhID0gT2JqZWN0LmtleXMoZSk7DQogICAgICAgICAgZm9y IChyID0gMDsgciA8IGEubGVuZ3RoOyByKyspIChuID0gYVtyXSksIHQuaW5kZXhPZihuKSA+ PSAwIHx8IChvW25dID0gZVtuXSk7DQogICAgICAgICAgcmV0dXJuIG87DQogICAgICAgIH0N CiAgICAgICAgZnVuY3Rpb24gaSgpIHsNCiAgICAgICAgICByZXR1cm4gKA0KICAgICAgICAg ICAgKGkgPSBPYmplY3QuYXNzaWduDQogICAgICAgICAgICAgID8gT2JqZWN0LmFzc2lnbi5i aW5kKCkNCiAgICAgICAgICAgICAgOiBmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgICAg IGZvciAodmFyIHQgPSAxOyB0IDwgYXJndW1lbnRzLmxlbmd0aDsgdCsrKSB7DQogICAgICAg ICAgICAgICAgICB2YXIgbiA9IGFyZ3VtZW50c1t0XTsNCiAgICAgICAgICAgICAgICAgIGZv ciAodmFyIHIgaW4gbikgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4s IHIpICYmIChlW3JdID0gbltyXSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAg ICAgIHJldHVybiBlOw0KICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAgIGkuYXBwbHko dGhpcywgYXJndW1lbnRzKQ0KICAgICAgICAgICk7DQogICAgICAgIH0NCiAgICAgICAgZnVu Y3Rpb24gbChlKSB7DQogICAgICAgICAgdmFyIHQsDQogICAgICAgICAgICBuLA0KICAgICAg ICAgICAgciA9ICIiOw0KICAgICAgICAgIGlmICgic3RyaW5nIiA9PSB0eXBlb2YgZSB8fCAi bnVtYmVyIiA9PSB0eXBlb2YgZSkgciArPSBlOw0KICAgICAgICAgIGVsc2UgaWYgKCJvYmpl Y3QiID09IHR5cGVvZiBlKQ0KICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZSkpIGZv ciAodCA9IDA7IHQgPCBlLmxlbmd0aDsgdCsrKSBlW3RdICYmIChuID0gbChlW3RdKSkgJiYg KHIgJiYgKHIgKz0gIiAiKSwgKHIgKz0gbikpOw0KICAgICAgICAgICAgZWxzZSBmb3IgKHQg aW4gZSkgZVt0XSAmJiAociAmJiAociArPSAiICIpLCAociArPSB0KSk7DQogICAgICAgICAg cmV0dXJuIHI7DQogICAgICAgIH0NCiAgICAgICAgY29uc3QgcyA9IGZ1bmN0aW9uICgpIHsN CiAgICAgICAgICBmb3IgKHZhciBlLCB0LCBuID0gMCwgciA9ICIiOyBuIDwgYXJndW1lbnRz Lmxlbmd0aDspIChlID0gYXJndW1lbnRzW24rK10pICYmICh0ID0gbChlKSkgJiYgKHIgJiYg KHIgKz0gIiAiKSwgKHIgKz0gdCkpOw0KICAgICAgICAgIHJldHVybiByOw0KICAgICAgICB9 Ow0KICAgICAgICBmdW5jdGlvbiB1KGUsIHQpIHsNCiAgICAgICAgICBjb25zdCBuID0gaSh7 fSwgdCk7DQogICAgICAgICAgcmV0dXJuICgNCiAgICAgICAgICAgIE9iamVjdC5rZXlzKGUp LmZvckVhY2goKHIpID0+IHsNCiAgICAgICAgICAgICAgaWYgKHIudG9TdHJpbmcoKS5tYXRj aCgvXihjb21wb25lbnRzfHNsb3RzKSQvKSkgbltyXSA9IGkoe30sIGVbcl0sIG5bcl0pOw0K ICAgICAgICAgICAgICBlbHNlIGlmIChyLnRvU3RyaW5nKCkubWF0Y2goL14oY29tcG9uZW50 c1Byb3BzfHNsb3RQcm9wcykkLykpIHsNCiAgICAgICAgICAgICAgICBjb25zdCBvID0gZVty XSB8fCB7fSwNCiAgICAgICAgICAgICAgICAgIGEgPSB0W3JdOw0KICAgICAgICAgICAgICAg IChuW3JdID0ge30pLA0KICAgICAgICAgICAgICAgICAgYSAmJiBPYmplY3Qua2V5cyhhKQ0K ICAgICAgICAgICAgICAgICAgICA/IG8gJiYgT2JqZWN0LmtleXMobykNCiAgICAgICAgICAg ICAgICAgICAgICA/ICgobltyXSA9IGkoe30sIGEpKSwNCiAgICAgICAgICAgICAgICAgICAg ICAgIE9iamVjdC5rZXlzKG8pLmZvckVhY2goKGUpID0+IHsNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgbltyXVtlXSA9IHUob1tlXSwgYVtlXSk7DQogICAgICAgICAgICAgICAgICAg ICAgICB9KSkNCiAgICAgICAgICAgICAgICAgICAgICA6IChuW3JdID0gYSkNCiAgICAgICAg ICAgICAgICAgICAgOiAobltyXSA9IG8pOw0KICAgICAgICAgICAgICB9IGVsc2Ugdm9pZCAw ID09PSBuW3JdICYmIChuW3JdID0gZVtyXSk7DQogICAgICAgICAgICB9KSwNCiAgICAgICAg ICAgIG4NCiAgICAgICAgICApOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIGMoZSwg dCkgew0KICAgICAgICAgIGxldCBuID0gYXJndW1lbnRzLmxlbmd0aCA+IDIgJiYgdm9pZCAw ICE9PSBhcmd1bWVudHNbMl0gPyBhcmd1bWVudHNbMl0gOiB2b2lkIDA7DQogICAgICAgICAg Y29uc3QgciA9IHt9Ow0KICAgICAgICAgIHJldHVybiAoDQogICAgICAgICAgICBPYmplY3Qu a2V5cyhlKS5mb3JFYWNoKChvKSA9PiB7DQogICAgICAgICAgICAgIHJbb10gPSBlW29dDQog ICAgICAgICAgICAgICAgLnJlZHVjZSgoZSwgcikgPT4gew0KICAgICAgICAgICAgICAgICAg aWYgKHIpIHsNCiAgICAgICAgICAgICAgICAgICAgY29uc3QgbyA9IHQocik7DQogICAgICAg ICAgICAgICAgICAgICIiICE9PSBvICYmIGUucHVzaChvKSwgbiAmJiBuW3JdICYmIGUucHVz aChuW3JdKTsNCiAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgIHJldHVy biBlOw0KICAgICAgICAgICAgICAgIH0sIFtdKQ0KICAgICAgICAgICAgICAgIC5qb2luKCIg Iik7DQogICAgICAgICAgICB9KSwNCiAgICAgICAgICAgIHINCiAgICAgICAgICApOw0KICAg ICAgICB9DQogICAgICAgIGZ1bmN0aW9uIGQoZSkgew0KICAgICAgICAgIGxldCB0ID0gImh0 dHBzOi8vbXVpLmNvbS9wcm9kdWN0aW9uLWVycm9yLz9jb2RlPSIgKyBlOw0KICAgICAgICAg IGZvciAobGV0IG4gPSAxOyBuIDwgYXJndW1lbnRzLmxlbmd0aDsgbiArPSAxKSB0ICs9ICIm YXJnc1tdPSIgKyBlbmNvZGVVUklDb21wb25lbnQoYXJndW1lbnRzW25dKTsNCiAgICAgICAg ICByZXR1cm4gIk1pbmlmaWVkIE1VSSBlcnJvciAjIiArIGUgKyAiOyB2aXNpdCAiICsgdCAr ICIgZm9yIHRoZSBmdWxsIG1lc3NhZ2UuIjsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlv biBmKGUpIHsNCiAgICAgICAgICBsZXQgdCA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIHZv aWQgMCAhPT0gYXJndW1lbnRzWzFdID8gYXJndW1lbnRzWzFdIDogMCwNCiAgICAgICAgICAg IG4gPSBhcmd1bWVudHMubGVuZ3RoID4gMiAmJiB2b2lkIDAgIT09IGFyZ3VtZW50c1syXSA/ IGFyZ3VtZW50c1syXSA6IDE7DQogICAgICAgICAgcmV0dXJuIE1hdGgubWluKE1hdGgubWF4 KHQsIGUpLCBuKTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBwKGUpIHsNCiAgICAg ICAgICBpZiAoZS50eXBlKSByZXR1cm4gZTsNCiAgICAgICAgICBpZiAoIiMiID09PSBlLmNo YXJBdCgwKSkNCiAgICAgICAgICAgIHJldHVybiBwKA0KICAgICAgICAgICAgICAoZnVuY3Rp b24gKGUpIHsNCiAgICAgICAgICAgICAgICBlID0gZS5zbGljZSgxKTsNCiAgICAgICAgICAg ICAgICBjb25zdCB0ID0gbmV3IFJlZ0V4cCgiLnsxLCIuY29uY2F0KGUubGVuZ3RoID49IDYg PyAyIDogMSwgIn0iKSwgImciKTsNCiAgICAgICAgICAgICAgICBsZXQgbiA9IGUubWF0Y2go dCk7DQogICAgICAgICAgICAgICAgcmV0dXJuICgNCiAgICAgICAgICAgICAgICAgIG4gJiYg MSA9PT0gblswXS5sZW5ndGggJiYgKG4gPSBuLm1hcCgoZSkgPT4gZSArIGUpKSwNCiAgICAg ICAgICAgICAgICAgIG4gPyAicmdiIi5jb25jYXQoNCA9PT0gbi5sZW5ndGggPyAiYSIgOiAi IiwgIigiKS5jb25jYXQobi5tYXAoKGUsIHQpID0+ICh0IDwgMyA/IHBhcnNlSW50KGUsIDE2 KSA6IE1hdGgucm91bmQoKHBhcnNlSW50KGUsIDE2KSAvIDI1NSkgKiAxZTMpIC8gMWUzKSku am9pbigiLCAiKSwgIikiKSA6ICIiDQogICAgICAgICAgICAgICAgKTsNCiAgICAgICAgICAg ICAgfSkoZSkNCiAgICAgICAgICAgICk7DQogICAgICAgICAgY29uc3QgdCA9IGUuaW5kZXhP ZigiKCIpLA0KICAgICAgICAgICAgbiA9IGUuc3Vic3RyaW5nKDAsIHQpOw0KICAgICAgICAg IGlmICgtMSA9PT0gWyJyZ2IiLCAicmdiYSIsICJoc2wiLCAiaHNsYSIsICJjb2xvciJdLmlu ZGV4T2YobikpIHRocm93IG5ldyBFcnJvcihkKDksIGUpKTsNCiAgICAgICAgICBsZXQgciwN CiAgICAgICAgICAgIG8gPSBlLnN1YnN0cmluZyh0ICsgMSwgZS5sZW5ndGggLSAxKTsNCiAg ICAgICAgICBpZiAoImNvbG9yIiA9PT0gbikgew0KICAgICAgICAgICAgaWYgKCgobyA9IG8u c3BsaXQoIiAiKSksIChyID0gby5zaGlmdCgpKSwgNCA9PT0gby5sZW5ndGggJiYgIi8iID09 PSBvWzNdLmNoYXJBdCgwKSAmJiAob1szXSA9IG9bM10uc2xpY2UoMSkpLCAtMSA9PT0gWyJz cmdiIiwgImRpc3BsYXktcDMiLCAiYTk4LXJnYiIsICJwcm9waG90by1yZ2IiLCAicmVjLTIw MjAiXS5pbmRleE9mKHIpKSkNCiAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGQoMTAs IHIpKTsNCiAgICAgICAgICB9IGVsc2UgbyA9IG8uc3BsaXQoIiwiKTsNCiAgICAgICAgICBy ZXR1cm4gKG8gPSBvLm1hcCgoZSkgPT4gcGFyc2VGbG9hdChlKSkpLCB7IHR5cGU6IG4sIHZh bHVlczogbywgY29sb3JTcGFjZTogciB9Ow0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9u IGgoZSkgew0KICAgICAgICAgIGNvbnN0IHsgdHlwZTogdCwgY29sb3JTcGFjZTogbiB9ID0g ZTsNCiAgICAgICAgICBsZXQgeyB2YWx1ZXM6IHIgfSA9IGU7DQogICAgICAgICAgcmV0dXJu ICgNCiAgICAgICAgICAgIC0xICE9PSB0LmluZGV4T2YoInJnYiIpID8gKHIgPSByLm1hcCgo ZSwgdCkgPT4gKHQgPCAzID8gcGFyc2VJbnQoZSwgMTApIDogZSkpKSA6IC0xICE9PSB0Lmlu ZGV4T2YoImhzbCIpICYmICgoclsxXSA9ICIiLmNvbmNhdChyWzFdLCAiJSIpKSwgKHJbMl0g PSAiIi5jb25jYXQoclsyXSwgIiUiKSkpLA0KICAgICAgICAgICAgKHIgPSAtMSAhPT0gdC5p bmRleE9mKCJjb2xvciIpID8gIiIuY29uY2F0KG4sICIgIikuY29uY2F0KHIuam9pbigiICIp KSA6ICIiLmNvbmNhdChyLmpvaW4oIiwgIikpKSwNCiAgICAgICAgICAgICIiLmNvbmNhdCh0 LCAiKCIpLmNvbmNhdChyLCAiKSIpDQogICAgICAgICAgKTsNCiAgICAgICAgfQ0KICAgICAg ICBmdW5jdGlvbiBtKGUpIHsNCiAgICAgICAgICBsZXQgdCA9DQogICAgICAgICAgICAiaHNs IiA9PT0gKGUgPSBwKGUpKS50eXBlIHx8ICJoc2xhIiA9PT0gZS50eXBlDQogICAgICAgICAg ICAgID8gcCgNCiAgICAgICAgICAgICAgICAoZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAg ICAgICAgIGUgPSBwKGUpOw0KICAgICAgICAgICAgICAgICAgY29uc3QgeyB2YWx1ZXM6IHQg fSA9IGUsDQogICAgICAgICAgICAgICAgICAgIG4gPSB0WzBdLA0KICAgICAgICAgICAgICAg ICAgICByID0gdFsxXSAvIDEwMCwNCiAgICAgICAgICAgICAgICAgICAgbyA9IHRbMl0gLyAx MDAsDQogICAgICAgICAgICAgICAgICAgIGEgPSByICogTWF0aC5taW4obywgMSAtIG8pLA0K ICAgICAgICAgICAgICAgICAgICBpID0gZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgICAg ICAgICAgICBsZXQgdCA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIHZvaWQgMCAhPT0gYXJn dW1lbnRzWzFdID8gYXJndW1lbnRzWzFdIDogKGUgKyBuIC8gMzApICUgMTI7DQogICAgICAg ICAgICAgICAgICAgICAgcmV0dXJuIG8gLSBhICogTWF0aC5tYXgoTWF0aC5taW4odCAtIDMs IDkgLSB0LCAxKSwgLTEpOw0KICAgICAgICAgICAgICAgICAgICB9Ow0KICAgICAgICAgICAg ICAgICAgbGV0IGwgPSAicmdiIjsNCiAgICAgICAgICAgICAgICAgIGNvbnN0IHMgPSBbTWF0 aC5yb3VuZCgyNTUgKiBpKDApKSwgTWF0aC5yb3VuZCgyNTUgKiBpKDgpKSwgTWF0aC5yb3Vu ZCgyNTUgKiBpKDQpKV07DQogICAgICAgICAgICAgICAgICByZXR1cm4gImhzbGEiID09PSBl LnR5cGUgJiYgKChsICs9ICJhIiksIHMucHVzaCh0WzNdKSksIGgoeyB0eXBlOiBsLCB2YWx1 ZXM6IHMgfSk7DQogICAgICAgICAgICAgICAgfSkoZSkNCiAgICAgICAgICAgICAgKS52YWx1 ZXMNCiAgICAgICAgICAgICAgOiBlLnZhbHVlczsNCiAgICAgICAgICByZXR1cm4gKHQgPSB0 Lm1hcCgodCkgPT4gKCJjb2xvciIgIT09IGUudHlwZSAmJiAodCAvPSAyNTUpLCB0IDw9IDAu MDM5MjggPyB0IC8gMTIuOTIgOiAoKHQgKyAwLjA1NSkgLyAxLjA1NSkgKiogMi40KSkpLCBO dW1iZXIoKDAuMjEyNiAqIHRbMF0gKyAwLjcxNTIgKiB0WzFdICsgMC4wNzIyICogdFsyXSku dG9GaXhlZCgzKSk7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gZyhlLCB0KSB7DQog ICAgICAgICAgcmV0dXJuIChlID0gcChlKSksICh0ID0gZih0KSksICgicmdiIiAhPT0gZS50 eXBlICYmICJoc2wiICE9PSBlLnR5cGUpIHx8IChlLnR5cGUgKz0gImEiKSwgImNvbG9yIiA9 PT0gZS50eXBlID8gKGUudmFsdWVzWzNdID0gIi8iLmNvbmNhdCh0KSkgOiAoZS52YWx1ZXNb M10gPSB0KSwgaChlKTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiB2KGUsIHQpIHsN CiAgICAgICAgICBpZiAoKChlID0gcChlKSksICh0ID0gZih0KSksIC0xICE9PSBlLnR5cGUu aW5kZXhPZigiaHNsIikpKSBlLnZhbHVlc1syXSAqPSAxIC0gdDsNCiAgICAgICAgICBlbHNl IGlmICgtMSAhPT0gZS50eXBlLmluZGV4T2YoInJnYiIpIHx8IC0xICE9PSBlLnR5cGUuaW5k ZXhPZigiY29sb3IiKSkgZm9yIChsZXQgbiA9IDA7IG4gPCAzOyBuICs9IDEpIGUudmFsdWVz W25dICo9IDEgLSB0Ow0KICAgICAgICAgIHJldHVybiBoKGUpOw0KICAgICAgICB9DQogICAg ICAgIGZ1bmN0aW9uIHkoZSwgdCkgew0KICAgICAgICAgIGlmICgoKGUgPSBwKGUpKSwgKHQg PSBmKHQpKSwgLTEgIT09IGUudHlwZS5pbmRleE9mKCJoc2wiKSkpIGUudmFsdWVzWzJdICs9 ICgxMDAgLSBlLnZhbHVlc1syXSkgKiB0Ow0KICAgICAgICAgIGVsc2UgaWYgKC0xICE9PSBl LnR5cGUuaW5kZXhPZigicmdiIikpIGZvciAobGV0IG4gPSAwOyBuIDwgMzsgbiArPSAxKSBl LnZhbHVlc1tuXSArPSAoMjU1IC0gZS52YWx1ZXNbbl0pICogdDsNCiAgICAgICAgICBlbHNl IGlmICgtMSAhPT0gZS50eXBlLmluZGV4T2YoImNvbG9yIikpIGZvciAobGV0IG4gPSAwOyBu IDwgMzsgbiArPSAxKSBlLnZhbHVlc1tuXSArPSAoMSAtIGUudmFsdWVzW25dKSAqIHQ7DQog ICAgICAgICAgcmV0dXJuIGgoZSk7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gYihl KSB7DQogICAgICAgICAgdmFyIHQgPSBPYmplY3QuY3JlYXRlKG51bGwpOw0KICAgICAgICAg IHJldHVybiBmdW5jdGlvbiAobikgew0KICAgICAgICAgICAgcmV0dXJuIHZvaWQgMCA9PT0g dFtuXSAmJiAodFtuXSA9IGUobikpLCB0W25dOw0KICAgICAgICAgIH07DQogICAgICAgIH0N CiAgICAgICAgdmFyIHcgPSAvXigoY2hpbGRyZW58ZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUx8 a2V5fHJlZnxhdXRvRm9jdXN8ZGVmYXVsdFZhbHVlfGRlZmF1bHRDaGVja2VkfGlubmVySFRN THxzdXBwcmVzc0NvbnRlbnRFZGl0YWJsZVdhcm5pbmd8c3VwcHJlc3NIeWRyYXRpb25XYXJu aW5nfHZhbHVlTGlua3xhYmJyfGFjY2VwdHxhY2NlcHRDaGFyc2V0fGFjY2Vzc0tleXxhY3Rp b258YWxsb3d8YWxsb3dVc2VyTWVkaWF8YWxsb3dQYXltZW50UmVxdWVzdHxhbGxvd0Z1bGxT Y3JlZW58YWxsb3dUcmFuc3BhcmVuY3l8YWx0fGFzeW5jfGF1dG9Db21wbGV0ZXxhdXRvUGxh eXxjYXB0dXJlfGNlbGxQYWRkaW5nfGNlbGxTcGFjaW5nfGNoYWxsZW5nZXxjaGFyU2V0fGNo ZWNrZWR8Y2l0ZXxjbGFzc0lEfGNsYXNzTmFtZXxjb2xzfGNvbFNwYW58Y29udGVudHxjb250 ZW50RWRpdGFibGV8Y29udGV4dE1lbnV8Y29udHJvbHN8Y29udHJvbHNMaXN0fGNvb3Jkc3xj cm9zc09yaWdpbnxkYXRhfGRhdGVUaW1lfGRlY29kaW5nfGRlZmF1bHR8ZGVmZXJ8ZGlyfGRp c2FibGVkfGRpc2FibGVQaWN0dXJlSW5QaWN0dXJlfGRvd25sb2FkfGRyYWdnYWJsZXxlbmNU eXBlfGVudGVyS2V5SGludHxmb3JtfGZvcm1BY3Rpb258Zm9ybUVuY1R5cGV8Zm9ybU1ldGhv ZHxmb3JtTm9WYWxpZGF0ZXxmb3JtVGFyZ2V0fGZyYW1lQm9yZGVyfGhlYWRlcnN8aGVpZ2h0 fGhpZGRlbnxoaWdofGhyZWZ8aHJlZkxhbmd8aHRtbEZvcnxodHRwRXF1aXZ8aWR8aW5wdXRN b2RlfGludGVncml0eXxpc3xrZXlQYXJhbXN8a2V5VHlwZXxraW5kfGxhYmVsfGxhbmd8bGlz dHxsb2FkaW5nfGxvb3B8bG93fG1hcmdpbkhlaWdodHxtYXJnaW5XaWR0aHxtYXh8bWF4TGVu Z3RofG1lZGlhfG1lZGlhR3JvdXB8bWV0aG9kfG1pbnxtaW5MZW5ndGh8bXVsdGlwbGV8bXV0 ZWR8bmFtZXxub25jZXxub1ZhbGlkYXRlfG9wZW58b3B0aW11bXxwYXR0ZXJufHBsYWNlaG9s ZGVyfHBsYXlzSW5saW5lfHBvc3RlcnxwcmVsb2FkfHByb2ZpbGV8cmFkaW9Hcm91cHxyZWFk T25seXxyZWZlcnJlclBvbGljeXxyZWx8cmVxdWlyZWR8cmV2ZXJzZWR8cm9sZXxyb3dzfHJv d1NwYW58c2FuZGJveHxzY29wZXxzY29wZWR8c2Nyb2xsaW5nfHNlYW1sZXNzfHNlbGVjdGVk fHNoYXBlfHNpemV8c2l6ZXN8c2xvdHxzcGFufHNwZWxsQ2hlY2t8c3JjfHNyY0RvY3xzcmNM YW5nfHNyY1NldHxzdGFydHxzdGVwfHN0eWxlfHN1bW1hcnl8dGFiSW5kZXh8dGFyZ2V0fHRp dGxlfHRyYW5zbGF0ZXx0eXBlfHVzZU1hcHx2YWx1ZXx3aWR0aHx3bW9kZXx3cmFwfGFib3V0 fGRhdGF0eXBlfGlubGlzdHxwcmVmaXh8cHJvcGVydHl8cmVzb3VyY2V8dHlwZW9mfHZvY2Fi fGF1dG9DYXBpdGFsaXplfGF1dG9Db3JyZWN0fGF1dG9TYXZlfGNvbG9yfGluY3JlbWVudGFs fGZhbGxiYWNrfGluZXJ0fGl0ZW1Qcm9wfGl0ZW1TY29wZXxpdGVtVHlwZXxpdGVtSUR8aXRl bVJlZnxvbnxvcHRpb258cmVzdWx0c3xzZWN1cml0eXx1bnNlbGVjdGFibGV8YWNjZW50SGVp Z2h0fGFjY3VtdWxhdGV8YWRkaXRpdmV8YWxpZ25tZW50QmFzZWxpbmV8YWxsb3dSZW9yZGVy fGFscGhhYmV0aWN8YW1wbGl0dWRlfGFyYWJpY0Zvcm18YXNjZW50fGF0dHJpYnV0ZU5hbWV8 YXR0cmlidXRlVHlwZXxhdXRvUmV2ZXJzZXxhemltdXRofGJhc2VGcmVxdWVuY3l8YmFzZWxp bmVTaGlmdHxiYXNlUHJvZmlsZXxiYm94fGJlZ2lufGJpYXN8Ynl8Y2FsY01vZGV8Y2FwSGVp Z2h0fGNsaXB8Y2xpcFBhdGhVbml0c3xjbGlwUGF0aHxjbGlwUnVsZXxjb2xvckludGVycG9s YXRpb258Y29sb3JJbnRlcnBvbGF0aW9uRmlsdGVyc3xjb2xvclByb2ZpbGV8Y29sb3JSZW5k ZXJpbmd8Y29udGVudFNjcmlwdFR5cGV8Y29udGVudFN0eWxlVHlwZXxjdXJzb3J8Y3h8Y3l8 ZHxkZWNlbGVyYXRlfGRlc2NlbnR8ZGlmZnVzZUNvbnN0YW50fGRpcmVjdGlvbnxkaXNwbGF5 fGRpdmlzb3J8ZG9taW5hbnRCYXNlbGluZXxkdXJ8ZHh8ZHl8ZWRnZU1vZGV8ZWxldmF0aW9u fGVuYWJsZUJhY2tncm91bmR8ZW5kfGV4cG9uZW50fGV4dGVybmFsUmVzb3VyY2VzUmVxdWly ZWR8ZmlsbHxmaWxsT3BhY2l0eXxmaWxsUnVsZXxmaWx0ZXJ8ZmlsdGVyUmVzfGZpbHRlclVu aXRzfGZsb29kQ29sb3J8Zmxvb2RPcGFjaXR5fGZvY3VzYWJsZXxmb250RmFtaWx5fGZvbnRT aXplfGZvbnRTaXplQWRqdXN0fGZvbnRTdHJldGNofGZvbnRTdHlsZXxmb250VmFyaWFudHxm b250V2VpZ2h0fGZvcm1hdHxmcm9tfGZyfGZ4fGZ5fGcxfGcyfGdseXBoTmFtZXxnbHlwaE9y aWVudGF0aW9uSG9yaXpvbnRhbHxnbHlwaE9yaWVudGF0aW9uVmVydGljYWx8Z2x5cGhSZWZ8 Z3JhZGllbnRUcmFuc2Zvcm18Z3JhZGllbnRVbml0c3xoYW5naW5nfGhvcml6QWR2WHxob3Jp ek9yaWdpblh8aWRlb2dyYXBoaWN8aW1hZ2VSZW5kZXJpbmd8aW58aW4yfGludGVyY2VwdHxr fGsxfGsyfGszfGs0fGtlcm5lbE1hdHJpeHxrZXJuZWxVbml0TGVuZ3RofGtlcm5pbmd8a2V5 UG9pbnRzfGtleVNwbGluZXN8a2V5VGltZXN8bGVuZ3RoQWRqdXN0fGxldHRlclNwYWNpbmd8 bGlnaHRpbmdDb2xvcnxsaW1pdGluZ0NvbmVBbmdsZXxsb2NhbHxtYXJrZXJFbmR8bWFya2Vy TWlkfG1hcmtlclN0YXJ0fG1hcmtlckhlaWdodHxtYXJrZXJVbml0c3xtYXJrZXJXaWR0aHxt YXNrfG1hc2tDb250ZW50VW5pdHN8bWFza1VuaXRzfG1hdGhlbWF0aWNhbHxtb2RlfG51bU9j dGF2ZXN8b2Zmc2V0fG9wYWNpdHl8b3BlcmF0b3J8b3JkZXJ8b3JpZW50fG9yaWVudGF0aW9u fG9yaWdpbnxvdmVyZmxvd3xvdmVybGluZVBvc2l0aW9ufG92ZXJsaW5lVGhpY2tuZXNzfHBh bm9zZTF8cGFpbnRPcmRlcnxwYXRoTGVuZ3RofHBhdHRlcm5Db250ZW50VW5pdHN8cGF0dGVy blRyYW5zZm9ybXxwYXR0ZXJuVW5pdHN8cG9pbnRlckV2ZW50c3xwb2ludHN8cG9pbnRzQXRY fHBvaW50c0F0WXxwb2ludHNBdFp8cHJlc2VydmVBbHBoYXxwcmVzZXJ2ZUFzcGVjdFJhdGlv fHByaW1pdGl2ZVVuaXRzfHJ8cmFkaXVzfHJlZlh8cmVmWXxyZW5kZXJpbmdJbnRlbnR8cmVw ZWF0Q291bnR8cmVwZWF0RHVyfHJlcXVpcmVkRXh0ZW5zaW9uc3xyZXF1aXJlZEZlYXR1cmVz fHJlc3RhcnR8cmVzdWx0fHJvdGF0ZXxyeHxyeXxzY2FsZXxzZWVkfHNoYXBlUmVuZGVyaW5n fHNsb3BlfHNwYWNpbmd8c3BlY3VsYXJDb25zdGFudHxzcGVjdWxhckV4cG9uZW50fHNwZWVk fHNwcmVhZE1ldGhvZHxzdGFydE9mZnNldHxzdGREZXZpYXRpb258c3RlbWh8c3RlbXZ8c3Rp dGNoVGlsZXN8c3RvcENvbG9yfHN0b3BPcGFjaXR5fHN0cmlrZXRocm91Z2hQb3NpdGlvbnxz dHJpa2V0aHJvdWdoVGhpY2tuZXNzfHN0cmluZ3xzdHJva2V8c3Ryb2tlRGFzaGFycmF5fHN0 cm9rZURhc2hvZmZzZXR8c3Ryb2tlTGluZWNhcHxzdHJva2VMaW5lam9pbnxzdHJva2VNaXRl cmxpbWl0fHN0cm9rZU9wYWNpdHl8c3Ryb2tlV2lkdGh8c3VyZmFjZVNjYWxlfHN5c3RlbUxh bmd1YWdlfHRhYmxlVmFsdWVzfHRhcmdldFh8dGFyZ2V0WXx0ZXh0QW5jaG9yfHRleHREZWNv cmF0aW9ufHRleHRSZW5kZXJpbmd8dGV4dExlbmd0aHx0b3x0cmFuc2Zvcm18dTF8dTJ8dW5k ZXJsaW5lUG9zaXRpb258dW5kZXJsaW5lVGhpY2tuZXNzfHVuaWNvZGV8dW5pY29kZUJpZGl8 dW5pY29kZVJhbmdlfHVuaXRzUGVyRW18dkFscGhhYmV0aWN8dkhhbmdpbmd8dklkZW9ncmFw aGljfHZNYXRoZW1hdGljYWx8dmFsdWVzfHZlY3RvckVmZmVjdHx2ZXJzaW9ufHZlcnRBZHZZ fHZlcnRPcmlnaW5YfHZlcnRPcmlnaW5ZfHZpZXdCb3h8dmlld1RhcmdldHx2aXNpYmlsaXR5 fHdpZHRoc3x3b3JkU3BhY2luZ3x3cml0aW5nTW9kZXx4fHhIZWlnaHR8eDF8eDJ8eENoYW5u ZWxTZWxlY3Rvcnx4bGlua0FjdHVhdGV8eGxpbmtBcmNyb2xlfHhsaW5rSHJlZnx4bGlua1Jv bGV8eGxpbmtTaG93fHhsaW5rVGl0bGV8eGxpbmtUeXBlfHhtbEJhc2V8eG1sbnN8eG1sbnNY bGlua3x4bWxMYW5nfHhtbFNwYWNlfHl8eTF8eTJ8eUNoYW5uZWxTZWxlY3Rvcnx6fHpvb21B bmRQYW58Zm9yfGNsYXNzfGF1dG9mb2N1cyl8KChbRGRdW0FhXVtUdF1bQWFdfFtBYV1bUnJd W0lpXVtBYV18eCktLiopKSQvLA0KICAgICAgICAgIHggPSBiKGZ1bmN0aW9uIChlKSB7DQog ICAgICAgICAgICByZXR1cm4gdy50ZXN0KGUpIHx8ICgxMTEgPT09IGUuY2hhckNvZGVBdCgw KSAmJiAxMTAgPT09IGUuY2hhckNvZGVBdCgxKSAmJiBlLmNoYXJDb2RlQXQoMikgPCA5MSk7 DQogICAgICAgICAgfSk7DQogICAgICAgIHZhciBTID0gKGZ1bmN0aW9uICgpIHsNCiAgICAg ICAgICBmdW5jdGlvbiBlKGUpIHsNCiAgICAgICAgICAgIHZhciB0ID0gdGhpczsNCiAgICAg ICAgICAgICh0aGlzLl9pbnNlcnRUYWcgPSBmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAg ICB2YXIgbjsNCiAgICAgICAgICAgICAgKG4gPSAwID09PSB0LnRhZ3MubGVuZ3RoID8gKHQu aW5zZXJ0aW9uUG9pbnQgPyB0Lmluc2VydGlvblBvaW50Lm5leHRTaWJsaW5nIDogdC5wcmVw ZW5kID8gdC5jb250YWluZXIuZmlyc3RDaGlsZCA6IHQuYmVmb3JlKSA6IHQudGFnc1t0LnRh Z3MubGVuZ3RoIC0gMV0ubmV4dFNpYmxpbmcpLA0KICAgICAgICAgICAgICAgIHQuY29udGFp bmVyLmluc2VydEJlZm9yZShlLCBuKSwNCiAgICAgICAgICAgICAgICB0LnRhZ3MucHVzaChl KTsNCiAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAgICAodGhpcy5pc1NwZWVkeSA9IHZv aWQgMCA9PT0gZS5zcGVlZHkgfHwgZS5zcGVlZHkpLA0KICAgICAgICAgICAgICAodGhpcy50 YWdzID0gW10pLA0KICAgICAgICAgICAgICAodGhpcy5jdHIgPSAwKSwNCiAgICAgICAgICAg ICAgKHRoaXMubm9uY2UgPSBlLm5vbmNlKSwNCiAgICAgICAgICAgICAgKHRoaXMua2V5ID0g ZS5rZXkpLA0KICAgICAgICAgICAgICAodGhpcy5jb250YWluZXIgPSBlLmNvbnRhaW5lciks DQogICAgICAgICAgICAgICh0aGlzLnByZXBlbmQgPSBlLnByZXBlbmQpLA0KICAgICAgICAg ICAgICAodGhpcy5pbnNlcnRpb25Qb2ludCA9IGUuaW5zZXJ0aW9uUG9pbnQpLA0KICAgICAg ICAgICAgICAodGhpcy5iZWZvcmUgPSBudWxsKTsNCiAgICAgICAgICB9DQogICAgICAgICAg dmFyIHQgPSBlLnByb3RvdHlwZTsNCiAgICAgICAgICByZXR1cm4gKA0KICAgICAgICAgICAg KHQuaHlkcmF0ZSA9IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICAgIGUuZm9yRWFjaCh0 aGlzLl9pbnNlcnRUYWcpOw0KICAgICAgICAgICAgfSksDQogICAgICAgICAgICAodC5pbnNl cnQgPSBmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgICB0aGlzLmN0ciAlICh0aGlzLmlz U3BlZWR5ID8gNjVlMyA6IDEpID09PSAwICYmDQogICAgICAgICAgICAgICAgdGhpcy5faW5z ZXJ0VGFnKA0KICAgICAgICAgICAgICAgICAgKGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAg ICAgICAgICAgIHZhciB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTsNCiAg ICAgICAgICAgICAgICAgICAgcmV0dXJuIHQuc2V0QXR0cmlidXRlKCJkYXRhLWVtb3Rpb24i LCBlLmtleSksIHZvaWQgMCAhPT0gZS5ub25jZSAmJiB0LnNldEF0dHJpYnV0ZSgibm9uY2Ui LCBlLm5vbmNlKSwgdC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiIikp LCB0LnNldEF0dHJpYnV0ZSgiZGF0YS1zIiwgIiIpLCB0Ow0KICAgICAgICAgICAgICAgICAg fSkodGhpcykNCiAgICAgICAgICAgICAgICApOw0KICAgICAgICAgICAgICB2YXIgdCA9IHRo aXMudGFnc1t0aGlzLnRhZ3MubGVuZ3RoIC0gMV07DQogICAgICAgICAgICAgIGlmICh0aGlz LmlzU3BlZWR5KSB7DQogICAgICAgICAgICAgICAgdmFyIG4gPSAoZnVuY3Rpb24gKGUpIHsN CiAgICAgICAgICAgICAgICAgIGlmIChlLnNoZWV0KSByZXR1cm4gZS5zaGVldDsNCiAgICAg ICAgICAgICAgICAgIGZvciAodmFyIHQgPSAwOyB0IDwgZG9jdW1lbnQuc3R5bGVTaGVldHMu bGVuZ3RoOyB0KyspIGlmIChkb2N1bWVudC5zdHlsZVNoZWV0c1t0XS5vd25lck5vZGUgPT09 IGUpIHJldHVybiBkb2N1bWVudC5zdHlsZVNoZWV0c1t0XTsNCiAgICAgICAgICAgICAgICB9 KSh0KTsNCiAgICAgICAgICAgICAgICB0cnkgew0KICAgICAgICAgICAgICAgICAgbi5pbnNl cnRSdWxlKGUsIG4uY3NzUnVsZXMubGVuZ3RoKTsNCiAgICAgICAgICAgICAgICB9IGNhdGNo IChyKSB7DQogICAgICAgICAgICAgICAgICAwOw0KICAgICAgICAgICAgICAgIH0NCiAgICAg ICAgICAgICAgfSBlbHNlIHQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUo ZSkpOw0KICAgICAgICAgICAgICB0aGlzLmN0cisrOw0KICAgICAgICAgICAgfSksDQogICAg ICAgICAgICAodC5mbHVzaCA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgdGhpcy50 YWdzLmZvckVhY2goZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZS5w YXJlbnROb2RlICYmIGUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlKTsNCiAgICAgICAgICAg ICAgfSksDQogICAgICAgICAgICAgICAgKHRoaXMudGFncyA9IFtdKSwNCiAgICAgICAgICAg ICAgICAodGhpcy5jdHIgPSAwKTsNCiAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAgZQ0K ICAgICAgICAgICk7DQogICAgICAgIH0pKCksDQogICAgICAgICAgayA9IE1hdGguYWJzLA0K ICAgICAgICAgIEUgPSBTdHJpbmcuZnJvbUNoYXJDb2RlLA0KICAgICAgICAgIEMgPSBPYmpl Y3QuYXNzaWduOw0KICAgICAgICBmdW5jdGlvbiBSKGUpIHsNCiAgICAgICAgICByZXR1cm4g ZS50cmltKCk7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gXyhlLCB0LCBuKSB7DQog ICAgICAgICAgcmV0dXJuIGUucmVwbGFjZSh0LCBuKTsNCiAgICAgICAgfQ0KICAgICAgICBm dW5jdGlvbiBQKGUsIHQpIHsNCiAgICAgICAgICByZXR1cm4gZS5pbmRleE9mKHQpOw0KICAg ICAgICB9DQogICAgICAgIGZ1bmN0aW9uIE8oZSwgdCkgew0KICAgICAgICAgIHJldHVybiAw IHwgZS5jaGFyQ29kZUF0KHQpOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIE4oZSwg dCwgbikgew0KICAgICAgICAgIHJldHVybiBlLnNsaWNlKHQsIG4pOw0KICAgICAgICB9DQog ICAgICAgIGZ1bmN0aW9uIFQoZSkgew0KICAgICAgICAgIHJldHVybiBlLmxlbmd0aDsNCiAg ICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBBKGUpIHsNCiAgICAgICAgICByZXR1cm4gZS5s ZW5ndGg7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gTShlLCB0KSB7DQogICAgICAg ICAgcmV0dXJuIHQucHVzaChlKSwgZTsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgeiA9IDEs DQogICAgICAgICAgaiA9IDEsDQogICAgICAgICAgSSA9IDAsDQogICAgICAgICAgTCA9IDAs DQogICAgICAgICAgRiA9IDAsDQogICAgICAgICAgQiA9ICIiOw0KICAgICAgICBmdW5jdGlv biBEKGUsIHQsIG4sIHIsIG8sIGEsIGkpIHsNCiAgICAgICAgICByZXR1cm4geyB2YWx1ZTog ZSwgcm9vdDogdCwgcGFyZW50OiBuLCB0eXBlOiByLCBwcm9wczogbywgY2hpbGRyZW46IGEs IGxpbmU6IHosIGNvbHVtbjogaiwgbGVuZ3RoOiBpLCByZXR1cm46ICIiIH07DQogICAgICAg IH0NCiAgICAgICAgZnVuY3Rpb24gVShlLCB0KSB7DQogICAgICAgICAgcmV0dXJuIEMoRCgi IiwgbnVsbCwgbnVsbCwgIiIsIG51bGwsIG51bGwsIDApLCBlLCB7IGxlbmd0aDogLWUubGVu Z3RoIH0sIHQpOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIFcoKSB7DQogICAgICAg ICAgcmV0dXJuIChGID0gTCA+IDAgPyBPKEIsIC0tTCkgOiAwKSwgai0tLCAxMCA9PT0gRiAm JiAoKGogPSAxKSwgei0tKSwgRjsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBWKCkg ew0KICAgICAgICAgIHJldHVybiAoRiA9IEwgPCBJID8gTyhCLCBMKyspIDogMCksIGorKywg MTAgPT09IEYgJiYgKChqID0gMSksIHorKyksIEY7DQogICAgICAgIH0NCiAgICAgICAgZnVu Y3Rpb24gSCgpIHsNCiAgICAgICAgICByZXR1cm4gTyhCLCBMKTsNCiAgICAgICAgfQ0KICAg ICAgICBmdW5jdGlvbiBxKCkgew0KICAgICAgICAgIHJldHVybiBMOw0KICAgICAgICB9DQog ICAgICAgIGZ1bmN0aW9uICQoZSwgdCkgew0KICAgICAgICAgIHJldHVybiBOKEIsIGUsIHQp Ow0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIEsoZSkgew0KICAgICAgICAgIHN3aXRj aCAoZSkgew0KICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgY2FzZSA5Og0KICAg ICAgICAgICAgY2FzZSAxMDoNCiAgICAgICAgICAgIGNhc2UgMTM6DQogICAgICAgICAgICBj YXNlIDMyOg0KICAgICAgICAgICAgICByZXR1cm4gNTsNCiAgICAgICAgICAgIGNhc2UgMzM6 DQogICAgICAgICAgICBjYXNlIDQzOg0KICAgICAgICAgICAgY2FzZSA0NDoNCiAgICAgICAg ICAgIGNhc2UgNDc6DQogICAgICAgICAgICBjYXNlIDYyOg0KICAgICAgICAgICAgY2FzZSA2 NDoNCiAgICAgICAgICAgIGNhc2UgMTI2Og0KICAgICAgICAgICAgY2FzZSA1OToNCiAgICAg ICAgICAgIGNhc2UgMTIzOg0KICAgICAgICAgICAgY2FzZSAxMjU6DQogICAgICAgICAgICAg IHJldHVybiA0Ow0KICAgICAgICAgICAgY2FzZSA1ODoNCiAgICAgICAgICAgICAgcmV0dXJu IDM7DQogICAgICAgICAgICBjYXNlIDM0Og0KICAgICAgICAgICAgY2FzZSAzOToNCiAgICAg ICAgICAgIGNhc2UgNDA6DQogICAgICAgICAgICBjYXNlIDkxOg0KICAgICAgICAgICAgICBy ZXR1cm4gMjsNCiAgICAgICAgICAgIGNhc2UgNDE6DQogICAgICAgICAgICBjYXNlIDkzOg0K ICAgICAgICAgICAgICByZXR1cm4gMTsNCiAgICAgICAgICB9DQogICAgICAgICAgcmV0dXJu IDA7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gUShlKSB7DQogICAgICAgICAgcmV0 dXJuICh6ID0gaiA9IDEpLCAoSSA9IFQoKEIgPSBlKSkpLCAoTCA9IDApLCBbXTsNCiAgICAg ICAgfQ0KICAgICAgICBmdW5jdGlvbiBHKGUpIHsNCiAgICAgICAgICByZXR1cm4gKEIgPSAi IiksIGU7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gWShlKSB7DQogICAgICAgICAg cmV0dXJuIFIoJChMIC0gMSwgSig5MSA9PT0gZSA/IGUgKyAyIDogNDAgPT09IGUgPyBlICsg MSA6IGUpKSk7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gWChlKSB7DQogICAgICAg ICAgZm9yICg7IChGID0gSCgpKSAmJiBGIDwgMzM7KSBWKCk7DQogICAgICAgICAgcmV0dXJu IEsoZSkgPiAyIHx8IEsoRikgPiAzID8gIiIgOiAiICI7DQogICAgICAgIH0NCiAgICAgICAg ZnVuY3Rpb24gWihlLCB0KSB7DQogICAgICAgICAgZm9yICg7IC0tdCAmJiBWKCkgJiYgIShG IDwgNDggfHwgRiA+IDEwMiB8fCAoRiA+IDU3ICYmIEYgPCA2NSkgfHwgKEYgPiA3MCAmJiBG IDwgOTcpKTspOw0KICAgICAgICAgIHJldHVybiAkKGUsIHEoKSArICh0IDwgNiAmJiAzMiA9 PSBIKCkgJiYgMzIgPT0gVigpKSk7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gSihl KSB7DQogICAgICAgICAgZm9yICg7IFYoKTspDQogICAgICAgICAgICBzd2l0Y2ggKEYpIHsN CiAgICAgICAgICAgICAgY2FzZSBlOg0KICAgICAgICAgICAgICAgIHJldHVybiBMOw0KICAg ICAgICAgICAgICBjYXNlIDM0Og0KICAgICAgICAgICAgICBjYXNlIDM5Og0KICAgICAgICAg ICAgICAgIDM0ICE9PSBlICYmIDM5ICE9PSBlICYmIEooRik7DQogICAgICAgICAgICAgICAg YnJlYWs7DQogICAgICAgICAgICAgIGNhc2UgNDA6DQogICAgICAgICAgICAgICAgNDEgPT09 IGUgJiYgSihlKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgY2Fz ZSA5MjoNCiAgICAgICAgICAgICAgICBWKCk7DQogICAgICAgICAgICB9DQogICAgICAgICAg cmV0dXJuIEw7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gZWUoZSwgdCkgew0KICAg ICAgICAgIGZvciAoOyBWKCkgJiYgZSArIEYgIT09IDU3ICYmIChlICsgRiAhPT0gODQgfHwg NDcgIT09IEgoKSk7KTsNCiAgICAgICAgICByZXR1cm4gIi8qIiArICQodCwgTCAtIDEpICsg IioiICsgRSg0NyA9PT0gZSA/IGUgOiBWKCkpOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0 aW9uIHRlKGUpIHsNCiAgICAgICAgICBmb3IgKDsgIUsoSCgpKTspIFYoKTsNCiAgICAgICAg ICByZXR1cm4gJChlLCBMKTsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgbmUgPSAiLW1zLSIs DQogICAgICAgICAgcmUgPSAiLW1vei0iLA0KICAgICAgICAgIG9lID0gIi13ZWJraXQtIiwN CiAgICAgICAgICBhZSA9ICJjb21tIiwNCiAgICAgICAgICBpZSA9ICJydWxlIiwNCiAgICAg ICAgICBsZSA9ICJkZWNsIiwNCiAgICAgICAgICBzZSA9ICJAa2V5ZnJhbWVzIjsNCiAgICAg ICAgZnVuY3Rpb24gdWUoZSwgdCkgew0KICAgICAgICAgIGZvciAodmFyIG4gPSAiIiwgciA9 IEEoZSksIG8gPSAwOyBvIDwgcjsgbysrKSBuICs9IHQoZVtvXSwgbywgZSwgdCkgfHwgIiI7 DQogICAgICAgICAgcmV0dXJuIG47DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gY2Uo ZSwgdCwgbiwgcikgew0KICAgICAgICAgIHN3aXRjaCAoZS50eXBlKSB7DQogICAgICAgICAg ICBjYXNlICJAbGF5ZXIiOg0KICAgICAgICAgICAgICBpZiAoZS5jaGlsZHJlbi5sZW5ndGgp IGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiQGltcG9ydCI6DQogICAgICAgICAgICBjYXNl IGxlOg0KICAgICAgICAgICAgICByZXR1cm4gKGUucmV0dXJuID0gZS5yZXR1cm4gfHwgZS52 YWx1ZSk7DQogICAgICAgICAgICBjYXNlIGFlOg0KICAgICAgICAgICAgICByZXR1cm4gIiI7 DQogICAgICAgICAgICBjYXNlIHNlOg0KICAgICAgICAgICAgICByZXR1cm4gKGUucmV0dXJu ID0gZS52YWx1ZSArICJ7IiArIHVlKGUuY2hpbGRyZW4sIHIpICsgIn0iKTsNCiAgICAgICAg ICAgIGNhc2UgaWU6DQogICAgICAgICAgICAgIGUudmFsdWUgPSBlLnByb3BzLmpvaW4oIiwi KTsNCiAgICAgICAgICB9DQogICAgICAgICAgcmV0dXJuIFQoKG4gPSB1ZShlLmNoaWxkcmVu LCByKSkpID8gKGUucmV0dXJuID0gZS52YWx1ZSArICJ7IiArIG4gKyAifSIpIDogIiI7DQog ICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gZGUoZSkgew0KICAgICAgICAgIHJldHVybiBH KGZlKCIiLCBudWxsLCBudWxsLCBudWxsLCBbIiJdLCAoZSA9IFEoZSkpLCAwLCBbMF0sIGUp KTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBmZShlLCB0LCBuLCByLCBvLCBhLCBp LCBsLCBzKSB7DQogICAgICAgICAgZm9yICh2YXIgdSA9IDAsIGMgPSAwLCBkID0gaSwgZiA9 IDAsIHAgPSAwLCBoID0gMCwgbSA9IDEsIGcgPSAxLCB2ID0gMSwgeSA9IDAsIGIgPSAiIiwg dyA9IG8sIHggPSBhLCBTID0gciwgayA9IGI7IGc7KQ0KICAgICAgICAgICAgc3dpdGNoICgo KGggPSB5KSwgKHkgPSBWKCkpKSkgew0KICAgICAgICAgICAgICBjYXNlIDQwOg0KICAgICAg ICAgICAgICAgIGlmICgxMDggIT0gaCAmJiA1OCA9PSBPKGssIGQgLSAxKSkgew0KICAgICAg ICAgICAgICAgICAgLTEgIT0gUCgoayArPSBfKFkoeSksICImIiwgIiZcZiIpKSwgIiZcZiIp ICYmICh2ID0gLTEpOw0KICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAg ICAgfQ0KICAgICAgICAgICAgICBjYXNlIDM0Og0KICAgICAgICAgICAgICBjYXNlIDM5Og0K ICAgICAgICAgICAgICBjYXNlIDkxOg0KICAgICAgICAgICAgICAgIGsgKz0gWSh5KTsNCiAg ICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgY2FzZSA5Og0KICAgICAgICAg ICAgICBjYXNlIDEwOg0KICAgICAgICAgICAgICBjYXNlIDEzOg0KICAgICAgICAgICAgICBj YXNlIDMyOg0KICAgICAgICAgICAgICAgIGsgKz0gWChoKTsNCiAgICAgICAgICAgICAgICBi cmVhazsNCiAgICAgICAgICAgICAgY2FzZSA5MjoNCiAgICAgICAgICAgICAgICBrICs9IFoo cSgpIC0gMSwgNyk7DQogICAgICAgICAgICAgICAgY29udGludWU7DQogICAgICAgICAgICAg IGNhc2UgNDc6DQogICAgICAgICAgICAgICAgc3dpdGNoIChIKCkpIHsNCiAgICAgICAgICAg ICAgICAgIGNhc2UgNDI6DQogICAgICAgICAgICAgICAgICBjYXNlIDQ3Og0KICAgICAgICAg ICAgICAgICAgICBNKGhlKGVlKFYoKSwgcSgpKSwgdCwgbiksIHMpOw0KICAgICAgICAgICAg ICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAg ICAgICAgICAgIGsgKz0gIi8iOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAg ICBicmVhazsNCiAgICAgICAgICAgICAgY2FzZSAxMjMgKiBtOg0KICAgICAgICAgICAgICAg IGxbdSsrXSA9IFQoaykgKiB2Ow0KICAgICAgICAgICAgICBjYXNlIDEyNSAqIG06DQogICAg ICAgICAgICAgIGNhc2UgNTk6DQogICAgICAgICAgICAgIGNhc2UgMDoNCiAgICAgICAgICAg ICAgICBzd2l0Y2ggKHkpIHsNCiAgICAgICAgICAgICAgICAgIGNhc2UgMDoNCiAgICAgICAg ICAgICAgICAgIGNhc2UgMTI1Og0KICAgICAgICAgICAgICAgICAgICBnID0gMDsNCiAgICAg ICAgICAgICAgICAgIGNhc2UgNTkgKyBjOg0KICAgICAgICAgICAgICAgICAgICAtMSA9PSB2 ICYmIChrID0gXyhrLCAvXGYvZywgIiIpKSwgcCA+IDAgJiYgVChrKSAtIGQgJiYgTShwID4g MzIgPyBtZShrICsgIjsiLCByLCBuLCBkIC0gMSkgOiBtZShfKGssICIgIiwgIiIpICsgIjsi LCByLCBuLCBkIC0gMiksIHMpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAg ICAgICAgICAgICAgIGNhc2UgNTk6DQogICAgICAgICAgICAgICAgICAgIGsgKz0gIjsiOw0K ICAgICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgaWYgKChN KChTID0gcGUoaywgdCwgbiwgdSwgYywgbywgbCwgYiwgKHcgPSBbXSksICh4ID0gW10pLCBk KSksIGEpLCAxMjMgPT09IHkpKQ0KICAgICAgICAgICAgICAgICAgICAgIGlmICgwID09PSBj KSBmZShrLCB0LCBTLCBTLCB3LCBhLCBkLCBsLCB4KTsNCiAgICAgICAgICAgICAgICAgICAg ICBlbHNlDQogICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKDk5ID09PSBmICYmIDEx MCA9PT0gTyhrLCAzKSA/IDEwMCA6IGYpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAg Y2FzZSAxMDA6DQogICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMTA4Og0KICAgICAg ICAgICAgICAgICAgICAgICAgICBjYXNlIDEwOToNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgY2FzZSAxMTU6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZmUoZSwgUywgUywg ciAmJiBNKHBlKGUsIFMsIFMsIDAsIDAsIG8sIGwsIGIsIG8sICh3ID0gW10pLCBkKSwgeCks IG8sIHgsIGQsIGwsIHIgPyB3IDogeCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAg YnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgZmUoaywgUywgUywgUywgWyIiXSwgeCwgMCwgbCwgeCk7DQog ICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAg ICAgICAgICh1ID0gYyA9IHAgPSAwKSwgKG0gPSB2ID0gMSksIChiID0gayA9ICIiKSwgKGQg PSBpKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgY2FzZSA1ODoN CiAgICAgICAgICAgICAgICAoZCA9IDEgKyBUKGspKSwgKHAgPSBoKTsNCiAgICAgICAgICAg ICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBpZiAobSA8IDEpDQogICAgICAgICAgICAg ICAgICBpZiAoMTIzID09IHkpIC0tbTsNCiAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKDEy NSA9PSB5ICYmIDAgPT0gbSsrICYmIDEyNSA9PSBXKCkpIGNvbnRpbnVlOw0KICAgICAgICAg ICAgICAgIHN3aXRjaCAoKChrICs9IEUoeSkpLCB5ICogbSkpIHsNCiAgICAgICAgICAgICAg ICAgIGNhc2UgMzg6DQogICAgICAgICAgICAgICAgICAgIHYgPSBjID4gMCA/IDEgOiAoKGsg Kz0gIlxmIiksIC0xKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAg ICAgICAgICBjYXNlIDQ0Og0KICAgICAgICAgICAgICAgICAgICAobFt1KytdID0gKFQoaykg LSAxKSAqIHYpLCAodiA9IDEpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAg ICAgICAgICAgICAgIGNhc2UgNjQ6DQogICAgICAgICAgICAgICAgICAgIDQ1ID09PSBIKCkg JiYgKGsgKz0gWShWKCkpKSwgKGYgPSBIKCkpLCAoYyA9IGQgPSBUKChiID0gayArPSB0ZShx KCkpKSkpLCB5Kys7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAg ICAgICAgY2FzZSA0NToNCiAgICAgICAgICAgICAgICAgICAgNDUgPT09IGggJiYgMiA9PSBU KGspICYmIChtID0gMCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAg ICAgICAgIHJldHVybiBhOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIHBlKGUsIHQs IG4sIHIsIG8sIGEsIGksIGwsIHMsIHUsIGMpIHsNCiAgICAgICAgICBmb3IgKHZhciBkID0g byAtIDEsIGYgPSAwID09PSBvID8gYSA6IFsiIl0sIHAgPSBBKGYpLCBoID0gMCwgbSA9IDAs IGcgPSAwOyBoIDwgcjsgKytoKQ0KICAgICAgICAgICAgZm9yICh2YXIgdiA9IDAsIHkgPSBO KGUsIGQgKyAxLCAoZCA9IGsoKG0gPSBpW2hdKSkpKSwgYiA9IGU7IHYgPCBwOyArK3YpIChi ID0gUihtID4gMCA/IGZbdl0gKyAiICIgKyB5IDogXyh5LCAvJlxmL2csIGZbdl0pKSkgJiYg KHNbZysrXSA9IGIpOw0KICAgICAgICAgIHJldHVybiBEKGUsIHQsIG4sIDAgPT09IG8gPyBp ZSA6IGwsIHMsIHUsIGMpOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIGhlKGUsIHQs IG4pIHsNCiAgICAgICAgICByZXR1cm4gRChlLCB0LCBuLCBhZSwgRShGKSwgTihlLCAyLCAt MiksIDApOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIG1lKGUsIHQsIG4sIHIpIHsN CiAgICAgICAgICByZXR1cm4gRChlLCB0LCBuLCBsZSwgTihlLCAwLCByKSwgTihlLCByICsg MSwgLTEpLCByKTsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgZ2UgPSBmdW5jdGlvbiAoZSwg dCwgbikgew0KICAgICAgICAgIGZvciAodmFyIHIgPSAwLCBvID0gMDsgKHIgPSBvKSwgKG8g PSBIKCkpLCAzOCA9PT0gciAmJiAxMiA9PT0gbyAmJiAodFtuXSA9IDEpLCAhSyhvKTspIFYo KTsNCiAgICAgICAgICByZXR1cm4gJChlLCBMKTsNCiAgICAgICAgfSwNCiAgICAgICAgICB2 ZSA9IGZ1bmN0aW9uIChlLCB0KSB7DQogICAgICAgICAgICByZXR1cm4gRygNCiAgICAgICAg ICAgICAgKGZ1bmN0aW9uIChlLCB0KSB7DQogICAgICAgICAgICAgICAgdmFyIG4gPSAtMSwN CiAgICAgICAgICAgICAgICAgIHIgPSA0NDsNCiAgICAgICAgICAgICAgICBkbyB7DQogICAg ICAgICAgICAgICAgICBzd2l0Y2ggKEsocikpIHsNCiAgICAgICAgICAgICAgICAgICAgY2Fz ZSAwOg0KICAgICAgICAgICAgICAgICAgICAgIDM4ID09PSByICYmIDEyID09PSBIKCkgJiYg KHRbbl0gPSAxKSwgKGVbbl0gKz0gZ2UoTCAtIDEsIHQsIG4pKTsNCiAgICAgICAgICAgICAg ICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAyOg0KICAgICAgICAg ICAgICAgICAgICAgIGVbbl0gKz0gWShyKTsNCiAgICAgICAgICAgICAgICAgICAgICBicmVh azsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSA0Og0KICAgICAgICAgICAgICAgICAgICAg IGlmICg0NCA9PT0gcikgew0KICAgICAgICAgICAgICAgICAgICAgICAgKGVbKytuXSA9IDU4 ID09PSBIKCkgPyAiJlxmIiA6ICIiKSwgKHRbbl0gPSBlW25dLmxlbmd0aCk7DQogICAgICAg ICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICB9DQogICAg ICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgICAgZVtuXSAr PSBFKHIpOw0KICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0gd2hpbGUg KChyID0gVigpKSk7DQogICAgICAgICAgICAgICAgcmV0dXJuIGU7DQogICAgICAgICAgICAg IH0pKFEoZSksIHQpDQogICAgICAgICAgICApOw0KICAgICAgICAgIH0sDQogICAgICAgICAg eWUgPSBuZXcgV2Vha01hcCgpLA0KICAgICAgICAgIGJlID0gZnVuY3Rpb24gKGUpIHsNCiAg ICAgICAgICAgIGlmICgicnVsZSIgPT09IGUudHlwZSAmJiBlLnBhcmVudCAmJiAhKGUubGVu Z3RoIDwgMSkpIHsNCiAgICAgICAgICAgICAgZm9yICh2YXIgdCA9IGUudmFsdWUsIG4gPSBl LnBhcmVudCwgciA9IGUuY29sdW1uID09PSBuLmNvbHVtbiAmJiBlLmxpbmUgPT09IG4ubGlu ZTsgInJ1bGUiICE9PSBuLnR5cGU7KSBpZiAoIShuID0gbi5wYXJlbnQpKSByZXR1cm47DQog ICAgICAgICAgICAgIGlmICgoMSAhPT0gZS5wcm9wcy5sZW5ndGggfHwgNTggPT09IHQuY2hh ckNvZGVBdCgwKSB8fCB5ZS5nZXQobikpICYmICFyKSB7DQogICAgICAgICAgICAgICAgeWUu c2V0KGUsICEwKTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBvID0gW10sIGEgPSB2ZSh0 LCBvKSwgaSA9IG4ucHJvcHMsIGwgPSAwLCBzID0gMDsgbCA8IGEubGVuZ3RoOyBsKyspIGZv ciAodmFyIHUgPSAwOyB1IDwgaS5sZW5ndGg7IHUrKywgcysrKSBlLnByb3BzW3NdID0gb1ts XSA/IGFbbF0ucmVwbGFjZSgvJlxmL2csIGlbdV0pIDogaVt1XSArICIgIiArIGFbbF07DQog ICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICB9LA0KICAgICAgICAg IHdlID0gZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgIGlmICgiZGVjbCIgPT09IGUudHlw ZSkgew0KICAgICAgICAgICAgICB2YXIgdCA9IGUudmFsdWU7DQogICAgICAgICAgICAgIDEw OCA9PT0gdC5jaGFyQ29kZUF0KDApICYmIDk4ID09PSB0LmNoYXJDb2RlQXQoMikgJiYgKChl LnJldHVybiA9ICIiKSwgKGUudmFsdWUgPSAiIikpOw0KICAgICAgICAgICAgfQ0KICAgICAg ICAgIH07DQogICAgICAgIGZ1bmN0aW9uIHhlKGUsIHQpIHsNCiAgICAgICAgICBzd2l0Y2gg KA0KICAgICAgICAgIChmdW5jdGlvbiAoZSwgdCkgew0KICAgICAgICAgICAgcmV0dXJuIDQ1 IF4gTyhlLCAwKSA/ICgoKCgoKCh0IDw8IDIpIF4gTyhlLCAwKSkgPDwgMikgXiBPKGUsIDEp KSA8PCAyKSBeIE8oZSwgMikpIDw8IDIpIF4gTyhlLCAzKSA6IDA7DQogICAgICAgICAgfSko ZSwgdCkNCiAgICAgICAgICApIHsNCiAgICAgICAgICAgIGNhc2UgNTEwMzoNCiAgICAgICAg ICAgICAgcmV0dXJuIG9lICsgInByaW50LSIgKyBlICsgZTsNCiAgICAgICAgICAgIGNhc2Ug NTczNzoNCiAgICAgICAgICAgIGNhc2UgNDIwMToNCiAgICAgICAgICAgIGNhc2UgMzE3NzoN CiAgICAgICAgICAgIGNhc2UgMzQzMzoNCiAgICAgICAgICAgIGNhc2UgMTY0MToNCiAgICAg ICAgICAgIGNhc2UgNDQ1NzoNCiAgICAgICAgICAgIGNhc2UgMjkyMToNCiAgICAgICAgICAg IGNhc2UgNTU3MjoNCiAgICAgICAgICAgIGNhc2UgNjM1NjoNCiAgICAgICAgICAgIGNhc2Ug NTg0NDoNCiAgICAgICAgICAgIGNhc2UgMzE5MToNCiAgICAgICAgICAgIGNhc2UgNjY0NToN CiAgICAgICAgICAgIGNhc2UgMzAwNToNCiAgICAgICAgICAgIGNhc2UgNjM5MToNCiAgICAg ICAgICAgIGNhc2UgNTg3OToNCiAgICAgICAgICAgIGNhc2UgNTYyMzoNCiAgICAgICAgICAg IGNhc2UgNjEzNToNCiAgICAgICAgICAgIGNhc2UgNDU5OToNCiAgICAgICAgICAgIGNhc2Ug NDg1NToNCiAgICAgICAgICAgIGNhc2UgNDIxNToNCiAgICAgICAgICAgIGNhc2UgNjM4OToN CiAgICAgICAgICAgIGNhc2UgNTEwOToNCiAgICAgICAgICAgIGNhc2UgNTM2NToNCiAgICAg ICAgICAgIGNhc2UgNTYyMToNCiAgICAgICAgICAgIGNhc2UgMzgyOToNCiAgICAgICAgICAg ICAgcmV0dXJuIG9lICsgZSArIGU7DQogICAgICAgICAgICBjYXNlIDUzNDk6DQogICAgICAg ICAgICBjYXNlIDQyNDY6DQogICAgICAgICAgICBjYXNlIDQ4MTA6DQogICAgICAgICAgICBj YXNlIDY5Njg6DQogICAgICAgICAgICBjYXNlIDI3NTY6DQogICAgICAgICAgICAgIHJldHVy biBvZSArIGUgKyByZSArIGUgKyBuZSArIGUgKyBlOw0KICAgICAgICAgICAgY2FzZSA2ODI4 Og0KICAgICAgICAgICAgY2FzZSA0MjY4Og0KICAgICAgICAgICAgICByZXR1cm4gb2UgKyBl ICsgbmUgKyBlICsgZTsNCiAgICAgICAgICAgIGNhc2UgNjE2NToNCiAgICAgICAgICAgICAg cmV0dXJuIG9lICsgZSArIG5lICsgImZsZXgtIiArIGUgKyBlOw0KICAgICAgICAgICAgY2Fz ZSA1MTg3Og0KICAgICAgICAgICAgICByZXR1cm4gb2UgKyBlICsgXyhlLCAvKFx3KykuKyg6 W15dKykvLCBvZSArICJib3gtJDEkMiIgKyBuZSArICJmbGV4LSQxJDIiKSArIGU7DQogICAg ICAgICAgICBjYXNlIDU0NDM6DQogICAgICAgICAgICAgIHJldHVybiBvZSArIGUgKyBuZSAr ICJmbGV4LWl0ZW0tIiArIF8oZSwgL2ZsZXgtfC1zZWxmLywgIiIpICsgZTsNCiAgICAgICAg ICAgIGNhc2UgNDY3NToNCiAgICAgICAgICAgICAgcmV0dXJuIG9lICsgZSArIG5lICsgImZs ZXgtbGluZS1wYWNrIiArIF8oZSwgL2FsaWduLWNvbnRlbnR8ZmxleC18LXNlbGYvLCAiIikg KyBlOw0KICAgICAgICAgICAgY2FzZSA1NTQ4Og0KICAgICAgICAgICAgICByZXR1cm4gb2Ug KyBlICsgbmUgKyBfKGUsICJzaHJpbmsiLCAibmVnYXRpdmUiKSArIGU7DQogICAgICAgICAg ICBjYXNlIDUyOTI6DQogICAgICAgICAgICAgIHJldHVybiBvZSArIGUgKyBuZSArIF8oZSwg ImJhc2lzIiwgInByZWZlcnJlZC1zaXplIikgKyBlOw0KICAgICAgICAgICAgY2FzZSA2MDYw Og0KICAgICAgICAgICAgICByZXR1cm4gb2UgKyAiYm94LSIgKyBfKGUsICItZ3JvdyIsICIi KSArIG9lICsgZSArIG5lICsgXyhlLCAiZ3JvdyIsICJwb3NpdGl2ZSIpICsgZTsNCiAgICAg ICAgICAgIGNhc2UgNDU1NDoNCiAgICAgICAgICAgICAgcmV0dXJuIG9lICsgXyhlLCAvKFte LV0pKHRyYW5zZm9ybSkvZywgIiQxIiArIG9lICsgIiQyIikgKyBlOw0KICAgICAgICAgICAg Y2FzZSA2MTg3Og0KICAgICAgICAgICAgICByZXR1cm4gXyhfKF8oZSwgLyh6b29tLXxncmFi KS8sIG9lICsgIiQxIiksIC8oaW1hZ2Utc2V0KS8sIG9lICsgIiQxIiksIGUsICIiKSArIGU7 DQogICAgICAgICAgICBjYXNlIDU0OTU6DQogICAgICAgICAgICBjYXNlIDM5NTk6DQogICAg ICAgICAgICAgIHJldHVybiBfKGUsIC8oaW1hZ2Utc2V0XChbXl0qKS8sIG9lICsgIiQxJGAk MSIpOw0KICAgICAgICAgICAgY2FzZSA0OTY4Og0KICAgICAgICAgICAgICByZXR1cm4gXyhf KGUsIC8oLis6KShmbGV4LSk/KC4qKS8sIG9lICsgImJveC1wYWNrOiQzIiArIG5lICsgImZs ZXgtcGFjazokMyIpLCAvcy4rLWJbXjtdKy8sICJqdXN0aWZ5IikgKyBvZSArIGUgKyBlOw0K ICAgICAgICAgICAgY2FzZSA0MDk1Og0KICAgICAgICAgICAgY2FzZSAzNTgzOg0KICAgICAg ICAgICAgY2FzZSA0MDY4Og0KICAgICAgICAgICAgY2FzZSAyNTMyOg0KICAgICAgICAgICAg ICByZXR1cm4gXyhlLCAvKC4rKS1pbmxpbmUoLispLywgb2UgKyAiJDEkMiIpICsgZTsNCiAg ICAgICAgICAgIGNhc2UgODExNjoNCiAgICAgICAgICAgIGNhc2UgNzA1OToNCiAgICAgICAg ICAgIGNhc2UgNTc1MzoNCiAgICAgICAgICAgIGNhc2UgNTUzNToNCiAgICAgICAgICAgIGNh c2UgNTQ0NToNCiAgICAgICAgICAgIGNhc2UgNTcwMToNCiAgICAgICAgICAgIGNhc2UgNDkz MzoNCiAgICAgICAgICAgIGNhc2UgNDY3NzoNCiAgICAgICAgICAgIGNhc2UgNTUzMzoNCiAg ICAgICAgICAgIGNhc2UgNTc4OToNCiAgICAgICAgICAgIGNhc2UgNTAyMToNCiAgICAgICAg ICAgIGNhc2UgNDc2NToNCiAgICAgICAgICAgICAgaWYgKFQoZSkgLSAxIC0gdCA+IDYpDQog ICAgICAgICAgICAgICAgc3dpdGNoIChPKGUsIHQgKyAxKSkgew0KICAgICAgICAgICAgICAg ICAgY2FzZSAxMDk6DQogICAgICAgICAgICAgICAgICAgIGlmICg0NSAhPT0gTyhlLCB0ICsg NCkpIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgY2FzZSAxMDI6DQogICAgICAgICAgICAg ICAgICAgIHJldHVybiBfKGUsIC8oLis6KSguKyktKFteXSspLywgIiQxIiArIG9lICsgIiQy LSQzJDEiICsgcmUgKyAoMTA4ID09IE8oZSwgdCArIDMpID8gIiQzIiA6ICIkMi0kMyIpKSAr IGU7DQogICAgICAgICAgICAgICAgICBjYXNlIDExNToNCiAgICAgICAgICAgICAgICAgICAg cmV0dXJuIH5QKGUsICJzdHJldGNoIikgPyB4ZShfKGUsICJzdHJldGNoIiwgImZpbGwtYXZh aWxhYmxlIiksIHQpICsgZSA6IGU7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAg ICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgNDk0OToNCiAgICAgICAgICAgICAgaWYgKDEx NSAhPT0gTyhlLCB0ICsgMSkpIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSA2NDQ0Og0KICAg ICAgICAgICAgICBzd2l0Y2ggKE8oZSwgVChlKSAtIDMgLSAoflAoZSwgIiFpbXBvcnRhbnQi KSAmJiAxMCkpKSB7DQogICAgICAgICAgICAgICAgY2FzZSAxMDc6DQogICAgICAgICAgICAg ICAgICByZXR1cm4gXyhlLCAiOiIsICI6IiArIG9lKSArIGU7DQogICAgICAgICAgICAgICAg Y2FzZSAxMDE6DQogICAgICAgICAgICAgICAgICByZXR1cm4gXyhlLCAvKC4rOikoW147IV0r KSg7fCEuKyk/LywgIiQxIiArIG9lICsgKDQ1ID09PSBPKGUsIDE0KSA/ICJpbmxpbmUtIiA6 ICIiKSArICJib3gkMyQxIiArIG9lICsgIiQyJDMkMSIgKyBuZSArICIkMmJveCQzIikgKyBl Ow0KICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAg Y2FzZSA1OTM2Og0KICAgICAgICAgICAgICBzd2l0Y2ggKE8oZSwgdCArIDExKSkgew0KICAg ICAgICAgICAgICAgIGNhc2UgMTE0Og0KICAgICAgICAgICAgICAgICAgcmV0dXJuIG9lICsg ZSArIG5lICsgXyhlLCAvW3N2aF1cdystW3RibHJdezJ9LywgInRiIikgKyBlOw0KICAgICAg ICAgICAgICAgIGNhc2UgMTA4Og0KICAgICAgICAgICAgICAgICAgcmV0dXJuIG9lICsgZSAr IG5lICsgXyhlLCAvW3N2aF1cdystW3RibHJdezJ9LywgInRiLXJsIikgKyBlOw0KICAgICAg ICAgICAgICAgIGNhc2UgNDU6DQogICAgICAgICAgICAgICAgICByZXR1cm4gb2UgKyBlICsg bmUgKyBfKGUsIC9bc3ZoXVx3Ky1bdGJscl17Mn0vLCAibHIiKSArIGU7DQogICAgICAgICAg ICAgIH0NCiAgICAgICAgICAgICAgcmV0dXJuIG9lICsgZSArIG5lICsgZSArIGU7DQogICAg ICAgICAgfQ0KICAgICAgICAgIHJldHVybiBlOw0KICAgICAgICB9DQogICAgICAgIHZhciBT ZSA9IFsNCiAgICAgICAgICBmdW5jdGlvbiAoZSwgdCwgbiwgcikgew0KICAgICAgICAgICAg aWYgKGUubGVuZ3RoID4gLTEgJiYgIWUucmV0dXJuKQ0KICAgICAgICAgICAgICBzd2l0Y2gg KGUudHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgbGU6DQogICAgICAgICAgICAgICAg ICBlLnJldHVybiA9IHhlKGUudmFsdWUsIGUubGVuZ3RoKTsNCiAgICAgICAgICAgICAgICAg IGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2Ugc2U6DQogICAgICAgICAgICAgICAgICBy ZXR1cm4gdWUoW1UoZSwgeyB2YWx1ZTogXyhlLnZhbHVlLCAiQCIsICJAIiArIG9lKSB9KV0s IHIpOw0KICAgICAgICAgICAgICAgIGNhc2UgaWU6DQogICAgICAgICAgICAgICAgICBpZiAo ZS5sZW5ndGgpDQogICAgICAgICAgICAgICAgICAgIHJldHVybiAoZnVuY3Rpb24gKGUsIHQp IHsNCiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZS5tYXAodCkuam9pbigiIik7DQog ICAgICAgICAgICAgICAgICAgIH0pKGUucHJvcHMsIGZ1bmN0aW9uICh0KSB7DQogICAgICAg ICAgICAgICAgICAgICAgc3dpdGNoICgNCiAgICAgICAgICAgICAgICAgICAgICAoZnVuY3Rp b24gKGUsIHQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoZSA9IHQuZXhl YyhlKSkgPyBlWzBdIDogZTsNCiAgICAgICAgICAgICAgICAgICAgICB9KSh0LCAvKDo6cGxh Y1x3K3w6cmVhZC1cdyspLykNCiAgICAgICAgICAgICAgICAgICAgICApIHsNCiAgICAgICAg ICAgICAgICAgICAgICAgIGNhc2UgIjpyZWFkLW9ubHkiOg0KICAgICAgICAgICAgICAgICAg ICAgICAgY2FzZSAiOnJlYWQtd3JpdGUiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICBy ZXR1cm4gdWUoW1UoZSwgeyBwcm9wczogW18odCwgLzoocmVhZC1cdyspLywgIjotbW96LSQx IildIH0pXSwgcik7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICI6OnBsYWNlaG9s ZGVyIjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVlKA0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFtVKGUsIHsgcHJvcHM6IFtfKHQsIC86KHBsYWNcdyspLywg IjoiICsgb2UgKyAiaW5wdXQtJDEiKV0gfSksIFUoZSwgeyBwcm9wczogW18odCwgLzoocGxh Y1x3KykvLCAiOi1tb3otJDEiKV0gfSksIFUoZSwgeyBwcm9wczogW18odCwgLzoocGxhY1x3 KykvLCBuZSArICJpbnB1dC0kMSIpXSB9KV0sDQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgcg0KICAgICAgICAgICAgICAgICAgICAgICAgICApOw0KICAgICAgICAgICAgICAgICAg ICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIiI7DQogICAgICAgICAgICAg ICAgICAgIH0pOw0KICAgICAgICAgICAgICB9DQogICAgICAgICAgfSwNCiAgICAgICAgXSwN CiAgICAgICAgICBrZSA9IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICB2YXIgdCA9IGUu a2V5Ow0KICAgICAgICAgICAgaWYgKCJjc3MiID09PSB0KSB7DQogICAgICAgICAgICAgIHZh ciBuID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgic3R5bGVbZGF0YS1lbW90aW9uXTpu b3QoW2RhdGEtc10pIik7DQogICAgICAgICAgICAgIEFycmF5LnByb3RvdHlwZS5mb3JFYWNo LmNhbGwobiwgZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgICAgICAtMSAhPT0gZS5nZXRB dHRyaWJ1dGUoImRhdGEtZW1vdGlvbiIpLmluZGV4T2YoIiAiKSAmJiAoZG9jdW1lbnQuaGVh ZC5hcHBlbmRDaGlsZChlKSwgZS5zZXRBdHRyaWJ1dGUoImRhdGEtcyIsICIiKSk7DQogICAg ICAgICAgICAgIH0pOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgdmFyIHIgPSBlLnN0 eWxpc1BsdWdpbnMgfHwgU2U7DQogICAgICAgICAgICB2YXIgbywNCiAgICAgICAgICAgICAg YSwNCiAgICAgICAgICAgICAgaSA9IHt9LA0KICAgICAgICAgICAgICBsID0gW107DQogICAg ICAgICAgICAobyA9IGUuY29udGFpbmVyIHx8IGRvY3VtZW50LmhlYWQpLA0KICAgICAgICAg ICAgICBBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGRvY3VtZW50LnF1ZXJ5U2VsZWN0 b3JBbGwoJ3N0eWxlW2RhdGEtZW1vdGlvbl49IicgKyB0ICsgJyAiXScpLCBmdW5jdGlvbiAo ZSkgew0KICAgICAgICAgICAgICAgIGZvciAodmFyIHQgPSBlLmdldEF0dHJpYnV0ZSgiZGF0 YS1lbW90aW9uIikuc3BsaXQoIiAiKSwgbiA9IDE7IG4gPCB0Lmxlbmd0aDsgbisrKSBpW3Rb bl1dID0gITA7DQogICAgICAgICAgICAgICAgbC5wdXNoKGUpOw0KICAgICAgICAgICAgICB9 KTsNCiAgICAgICAgICAgIHZhciBzLA0KICAgICAgICAgICAgICB1LA0KICAgICAgICAgICAg ICBjID0gWw0KICAgICAgICAgICAgICAgIGNlLA0KICAgICAgICAgICAgICAgICgodSA9IGZ1 bmN0aW9uIChlKSB7DQogICAgICAgICAgICAgICAgICBzLmluc2VydChlKTsNCiAgICAgICAg ICAgICAgICB9KSwNCiAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIChlKSB7DQogICAgICAg ICAgICAgICAgICAgIGUucm9vdCB8fCAoKGUgPSBlLnJldHVybikgJiYgdShlKSk7DQogICAg ICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgXSwNCiAgICAgICAgICAgICAgZCA9 IChmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgICAgIHZhciB0ID0gQShlKTsNCiAgICAg ICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24gKG4sIHIsIG8sIGEpIHsNCiAgICAgICAgICAg ICAgICAgIGZvciAodmFyIGkgPSAiIiwgbCA9IDA7IGwgPCB0OyBsKyspIGkgKz0gZVtsXShu LCByLCBvLCBhKSB8fCAiIjsNCiAgICAgICAgICAgICAgICAgIHJldHVybiBpOw0KICAgICAg ICAgICAgICAgIH07DQogICAgICAgICAgICAgIH0pKFtiZSwgd2VdLmNvbmNhdChyLCBjKSk7 DQogICAgICAgICAgICBhID0gZnVuY3Rpb24gKGUsIHQsIG4sIHIpIHsNCiAgICAgICAgICAg ICAgKHMgPSBuKSwNCiAgICAgICAgICAgICAgICAoZnVuY3Rpb24gKGUpIHsNCiAgICAgICAg ICAgICAgICAgIHVlKGRlKGUpLCBkKTsNCiAgICAgICAgICAgICAgICB9KShlID8gZSArICJ7 IiArIHQuc3R5bGVzICsgIn0iIDogdC5zdHlsZXMpLA0KICAgICAgICAgICAgICAgIHIgJiYg KGYuaW5zZXJ0ZWRbdC5uYW1lXSA9ICEwKTsNCiAgICAgICAgICAgIH07DQogICAgICAgICAg ICB2YXIgZiA9IHsga2V5OiB0LCBzaGVldDogbmV3IFMoeyBrZXk6IHQsIGNvbnRhaW5lcjog bywgbm9uY2U6IGUubm9uY2UsIHNwZWVkeTogZS5zcGVlZHksIHByZXBlbmQ6IGUucHJlcGVu ZCwgaW5zZXJ0aW9uUG9pbnQ6IGUuaW5zZXJ0aW9uUG9pbnQgfSksIG5vbmNlOiBlLm5vbmNl LCBpbnNlcnRlZDogaSwgcmVnaXN0ZXJlZDoge30sIGluc2VydDogYSB9Ow0KICAgICAgICAg ICAgcmV0dXJuIGYuc2hlZXQuaHlkcmF0ZShsKSwgZjsNCiAgICAgICAgICB9Ow0KICAgICAg ICB2YXIgRWUgPSB7DQogICAgICAgICAgYW5pbWF0aW9uSXRlcmF0aW9uQ291bnQ6IDEsDQog ICAgICAgICAgYXNwZWN0UmF0aW86IDEsDQogICAgICAgICAgYm9yZGVySW1hZ2VPdXRzZXQ6 IDEsDQogICAgICAgICAgYm9yZGVySW1hZ2VTbGljZTogMSwNCiAgICAgICAgICBib3JkZXJJ bWFnZVdpZHRoOiAxLA0KICAgICAgICAgIGJveEZsZXg6IDEsDQogICAgICAgICAgYm94Rmxl eEdyb3VwOiAxLA0KICAgICAgICAgIGJveE9yZGluYWxHcm91cDogMSwNCiAgICAgICAgICBj b2x1bW5Db3VudDogMSwNCiAgICAgICAgICBjb2x1bW5zOiAxLA0KICAgICAgICAgIGZsZXg6 IDEsDQogICAgICAgICAgZmxleEdyb3c6IDEsDQogICAgICAgICAgZmxleFBvc2l0aXZlOiAx LA0KICAgICAgICAgIGZsZXhTaHJpbms6IDEsDQogICAgICAgICAgZmxleE5lZ2F0aXZlOiAx LA0KICAgICAgICAgIGZsZXhPcmRlcjogMSwNCiAgICAgICAgICBncmlkUm93OiAxLA0KICAg ICAgICAgIGdyaWRSb3dFbmQ6IDEsDQogICAgICAgICAgZ3JpZFJvd1NwYW46IDEsDQogICAg ICAgICAgZ3JpZFJvd1N0YXJ0OiAxLA0KICAgICAgICAgIGdyaWRDb2x1bW46IDEsDQogICAg ICAgICAgZ3JpZENvbHVtbkVuZDogMSwNCiAgICAgICAgICBncmlkQ29sdW1uU3BhbjogMSwN CiAgICAgICAgICBncmlkQ29sdW1uU3RhcnQ6IDEsDQogICAgICAgICAgbXNHcmlkUm93OiAx LA0KICAgICAgICAgIG1zR3JpZFJvd1NwYW46IDEsDQogICAgICAgICAgbXNHcmlkQ29sdW1u OiAxLA0KICAgICAgICAgIG1zR3JpZENvbHVtblNwYW46IDEsDQogICAgICAgICAgZm9udFdl aWdodDogMSwNCiAgICAgICAgICBsaW5lSGVpZ2h0OiAxLA0KICAgICAgICAgIG9wYWNpdHk6 IDEsDQogICAgICAgICAgb3JkZXI6IDEsDQogICAgICAgICAgb3JwaGFuczogMSwNCiAgICAg ICAgICB0YWJTaXplOiAxLA0KICAgICAgICAgIHdpZG93czogMSwNCiAgICAgICAgICB6SW5k ZXg6IDEsDQogICAgICAgICAgem9vbTogMSwNCiAgICAgICAgICBXZWJraXRMaW5lQ2xhbXA6 IDEsDQogICAgICAgICAgZmlsbE9wYWNpdHk6IDEsDQogICAgICAgICAgZmxvb2RPcGFjaXR5 OiAxLA0KICAgICAgICAgIHN0b3BPcGFjaXR5OiAxLA0KICAgICAgICAgIHN0cm9rZURhc2hh cnJheTogMSwNCiAgICAgICAgICBzdHJva2VEYXNob2Zmc2V0OiAxLA0KICAgICAgICAgIHN0 cm9rZU1pdGVybGltaXQ6IDEsDQogICAgICAgICAgc3Ryb2tlT3BhY2l0eTogMSwNCiAgICAg ICAgICBzdHJva2VXaWR0aDogMSwNCiAgICAgICAgfSwNCiAgICAgICAgICBDZSA9IC9bQS1a XXxebXMvZywNCiAgICAgICAgICBSZSA9IC9fRU1PXyhbXl9dKz8pXyhbXl0qPylfRU1PXy9n LA0KICAgICAgICAgIF9lID0gZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgIHJldHVybiA0 NSA9PT0gZS5jaGFyQ29kZUF0KDEpOw0KICAgICAgICAgIH0sDQogICAgICAgICAgUGUgPSBm dW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgcmV0dXJuIG51bGwgIT0gZSAmJiAiYm9vbGVh biIgIT09IHR5cGVvZiBlOw0KICAgICAgICAgIH0sDQogICAgICAgICAgT2UgPSBiKGZ1bmN0 aW9uIChlKSB7DQogICAgICAgICAgICByZXR1cm4gX2UoZSkgPyBlIDogZS5yZXBsYWNlKENl LCAiLSQmIikudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICB9KSwNCiAgICAgICAgICBOZSA9 IGZ1bmN0aW9uIChlLCB0KSB7DQogICAgICAgICAgICBzd2l0Y2ggKGUpIHsNCiAgICAgICAg ICAgICAgY2FzZSAiYW5pbWF0aW9uIjoNCiAgICAgICAgICAgICAgY2FzZSAiYW5pbWF0aW9u TmFtZSI6DQogICAgICAgICAgICAgICAgaWYgKCJzdHJpbmciID09PSB0eXBlb2YgdCkNCiAg ICAgICAgICAgICAgICAgIHJldHVybiB0LnJlcGxhY2UoUmUsIGZ1bmN0aW9uIChlLCB0LCBu KSB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiAoQWUgPSB7IG5hbWU6IHQsIHN0eWxl czogbiwgbmV4dDogQWUgfSksIHQ7DQogICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAg ICAgIH0NCiAgICAgICAgICAgIHJldHVybiAxID09PSBFZVtlXSB8fCBfZShlKSB8fCAibnVt YmVyIiAhPT0gdHlwZW9mIHQgfHwgMCA9PT0gdCA/IHQgOiB0ICsgInB4IjsNCiAgICAgICAg ICB9Ow0KICAgICAgICBmdW5jdGlvbiBUZShlLCB0LCBuKSB7DQogICAgICAgICAgaWYgKG51 bGwgPT0gbikgcmV0dXJuICIiOw0KICAgICAgICAgIGlmICh2b2lkIDAgIT09IG4uX19lbW90 aW9uX3N0eWxlcykgcmV0dXJuIG47DQogICAgICAgICAgc3dpdGNoICh0eXBlb2Ygbikgew0K ICAgICAgICAgICAgY2FzZSAiYm9vbGVhbiI6DQogICAgICAgICAgICAgIHJldHVybiAiIjsN CiAgICAgICAgICAgIGNhc2UgIm9iamVjdCI6DQogICAgICAgICAgICAgIGlmICgxID09PSBu LmFuaW0pIHJldHVybiAoQWUgPSB7IG5hbWU6IG4ubmFtZSwgc3R5bGVzOiBuLnN0eWxlcywg bmV4dDogQWUgfSksIG4ubmFtZTsNCiAgICAgICAgICAgICAgaWYgKHZvaWQgMCAhPT0gbi5z dHlsZXMpIHsNCiAgICAgICAgICAgICAgICB2YXIgciA9IG4ubmV4dDsNCiAgICAgICAgICAg ICAgICBpZiAodm9pZCAwICE9PSByKSBmb3IgKDsgdm9pZCAwICE9PSByOykgKEFlID0geyBu YW1lOiByLm5hbWUsIHN0eWxlczogci5zdHlsZXMsIG5leHQ6IEFlIH0pLCAociA9IHIubmV4 dCk7DQogICAgICAgICAgICAgICAgcmV0dXJuIG4uc3R5bGVzICsgIjsiOw0KICAgICAgICAg ICAgICB9DQogICAgICAgICAgICAgIHJldHVybiAoZnVuY3Rpb24gKGUsIHQsIG4pIHsNCiAg ICAgICAgICAgICAgICB2YXIgciA9ICIiOw0KICAgICAgICAgICAgICAgIGlmIChBcnJheS5p c0FycmF5KG4pKSBmb3IgKHZhciBvID0gMDsgbyA8IG4ubGVuZ3RoOyBvKyspIHIgKz0gVGUo ZSwgdCwgbltvXSkgKyAiOyI7DQogICAgICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAg ICAgICAgZm9yICh2YXIgYSBpbiBuKSB7DQogICAgICAgICAgICAgICAgICAgIHZhciBpID0g blthXTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKCJvYmplY3QiICE9PSB0eXBlb2YgaSkg bnVsbCAhPSB0ICYmIHZvaWQgMCAhPT0gdFtpXSA/IChyICs9IGEgKyAieyIgKyB0W2ldICsg In0iKSA6IFBlKGkpICYmIChyICs9IE9lKGEpICsgIjoiICsgTmUoYSwgaSkgKyAiOyIpOw0K ICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICghQXJyYXkuaXNBcnJheShpKSB8fCAic3Ry aW5nIiAhPT0gdHlwZW9mIGlbMF0gfHwgKG51bGwgIT0gdCAmJiB2b2lkIDAgIT09IHRbaVsw XV0pKSB7DQogICAgICAgICAgICAgICAgICAgICAgdmFyIGwgPSBUZShlLCB0LCBpKTsNCiAg ICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGEpIHsNCiAgICAgICAgICAgICAgICAgICAg ICAgIGNhc2UgImFuaW1hdGlvbiI6DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJh bmltYXRpb25OYW1lIjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgciArPSBPZShhKSAr ICI6IiArIGwgKyAiOyI7DQogICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAg ICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgciArPSBhICsgInsiICsgbCArICJ9IjsNCiAgICAgICAgICAgICAgICAgICAgICB9DQog ICAgICAgICAgICAgICAgICAgIH0gZWxzZSBmb3IgKHZhciBzID0gMDsgcyA8IGkubGVuZ3Ro OyBzKyspIFBlKGlbc10pICYmIChyICs9IE9lKGEpICsgIjoiICsgTmUoYSwgaVtzXSkgKyAi OyIpOw0KICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHJldHVybiByOw0K ICAgICAgICAgICAgICB9KShlLCB0LCBuKTsNCiAgICAgICAgICAgIGNhc2UgImZ1bmN0aW9u IjoNCiAgICAgICAgICAgICAgaWYgKHZvaWQgMCAhPT0gZSkgew0KICAgICAgICAgICAgICAg IHZhciBvID0gQWUsDQogICAgICAgICAgICAgICAgICBhID0gbihlKTsNCiAgICAgICAgICAg ICAgICByZXR1cm4gKEFlID0gbyksIFRlKGUsIHQsIGEpOw0KICAgICAgICAgICAgICB9DQog ICAgICAgICAgfQ0KICAgICAgICAgIGlmIChudWxsID09IHQpIHJldHVybiBuOw0KICAgICAg ICAgIHZhciBpID0gdFtuXTsNCiAgICAgICAgICByZXR1cm4gdm9pZCAwICE9PSBpID8gaSA6 IG47DQogICAgICAgIH0NCiAgICAgICAgdmFyIEFlLA0KICAgICAgICAgIE1lID0gL2xhYmVs OlxzKihbXlxzO1xue10rKVxzKig7fCQpL2c7DQogICAgICAgIHZhciB6ZSA9IGZ1bmN0aW9u IChlLCB0LCBuKSB7DQogICAgICAgICAgaWYgKDEgPT09IGUubGVuZ3RoICYmICJvYmplY3Qi ID09PSB0eXBlb2YgZVswXSAmJiBudWxsICE9PSBlWzBdICYmIHZvaWQgMCAhPT0gZVswXS5z dHlsZXMpIHJldHVybiBlWzBdOw0KICAgICAgICAgIHZhciByID0gITAsDQogICAgICAgICAg ICBvID0gIiI7DQogICAgICAgICAgQWUgPSB2b2lkIDA7DQogICAgICAgICAgdmFyIGEgPSBl WzBdOw0KICAgICAgICAgIG51bGwgPT0gYSB8fCB2b2lkIDAgPT09IGEucmF3ID8gKChyID0g ITEpLCAobyArPSBUZShuLCB0LCBhKSkpIDogKG8gKz0gYVswXSk7DQogICAgICAgICAgZm9y ICh2YXIgaSA9IDE7IGkgPCBlLmxlbmd0aDsgaSsrKSAobyArPSBUZShuLCB0LCBlW2ldKSks IHIgJiYgKG8gKz0gYVtpXSk7DQogICAgICAgICAgTWUubGFzdEluZGV4ID0gMDsNCiAgICAg ICAgICBmb3IgKHZhciBsLCBzID0gIiI7IG51bGwgIT09IChsID0gTWUuZXhlYyhvKSk7KSBz ICs9ICItIiArIGxbMV07DQogICAgICAgICAgdmFyIHUgPQ0KICAgICAgICAgICAgKGZ1bmN0 aW9uIChlKSB7DQogICAgICAgICAgICAgIGZvciAodmFyIHQsIG4gPSAwLCByID0gMCwgbyA9 IGUubGVuZ3RoOyBvID49IDQ7ICsrciwgbyAtPSA0KQ0KICAgICAgICAgICAgICAgICh0ID0g MTU0MDQ4MzQ3NyAqICg2NTUzNSAmICh0ID0gKDI1NSAmIGUuY2hhckNvZGVBdChyKSkgfCAo KDI1NSAmIGUuY2hhckNvZGVBdCgrK3IpKSA8PCA4KSB8ICgoMjU1ICYgZS5jaGFyQ29kZUF0 KCsrcikpIDw8IDE2KSB8ICgoMjU1ICYgZS5jaGFyQ29kZUF0KCsrcikpIDw8IDI0KSkpICsg KCg1OTc5NyAqICh0ID4+PiAxNikpIDw8IDE2KSksDQogICAgICAgICAgICAgICAgICAobiA9 ICgxNTQwNDgzNDc3ICogKDY1NTM1ICYgKHQgXj0gdCA+Pj4gMjQpKSArICgoNTk3OTcgKiAo dCA+Pj4gMTYpKSA8PCAxNikpIF4gKDE1NDA0ODM0NzcgKiAoNjU1MzUgJiBuKSArICgoNTk3 OTcgKiAobiA+Pj4gMTYpKSA8PCAxNikpKTsNCiAgICAgICAgICAgICAgc3dpdGNoIChvKSB7 DQogICAgICAgICAgICAgICAgY2FzZSAzOg0KICAgICAgICAgICAgICAgICAgbiBePSAoMjU1 ICYgZS5jaGFyQ29kZUF0KHIgKyAyKSkgPDwgMTY7DQogICAgICAgICAgICAgICAgY2FzZSAy Og0KICAgICAgICAgICAgICAgICAgbiBePSAoMjU1ICYgZS5jaGFyQ29kZUF0KHIgKyAxKSkg PDwgODsNCiAgICAgICAgICAgICAgICBjYXNlIDE6DQogICAgICAgICAgICAgICAgICBuID0g MTU0MDQ4MzQ3NyAqICg2NTUzNSAmIChuIF49IDI1NSAmIGUuY2hhckNvZGVBdChyKSkpICsg KCg1OTc5NyAqIChuID4+PiAxNikpIDw8IDE2KTsNCiAgICAgICAgICAgICAgfQ0KICAgICAg ICAgICAgICByZXR1cm4gKCgobiA9IDE1NDA0ODM0NzcgKiAoNjU1MzUgJiAobiBePSBuID4+ PiAxMykpICsgKCg1OTc5NyAqIChuID4+PiAxNikpIDw8IDE2KSkgXiAobiA+Pj4gMTUpKSA+ Pj4gMCkudG9TdHJpbmcoMzYpOw0KICAgICAgICAgICAgfSkobykgKyBzOw0KICAgICAgICAg IHJldHVybiB7IG5hbWU6IHUsIHN0eWxlczogbywgbmV4dDogQWUgfTsNCiAgICAgICAgfSwN CiAgICAgICAgICBqZSA9ICEhci51c2VJbnNlcnRpb25FZmZlY3QgJiYgci51c2VJbnNlcnRp b25FZmZlY3QsDQogICAgICAgICAgSWUgPQ0KICAgICAgICAgICAgamUgfHwNCiAgICAgICAg ICAgIGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICAgIHJldHVybiBlKCk7DQogICAgICAg ICAgICB9LA0KICAgICAgICAgIExlID0gamUgfHwgdC51c2VMYXlvdXRFZmZlY3QsDQogICAg ICAgICAgRmUgPSB0LmNyZWF0ZUNvbnRleHQoInVuZGVmaW5lZCIgIT09IHR5cGVvZiBIVE1M RWxlbWVudCA/IGtlKHsga2V5OiAiY3NzIiB9KSA6IG51bGwpOw0KICAgICAgICBGZS5Qcm92 aWRlcjsNCiAgICAgICAgdmFyIEJlID0gZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICByZXR1 cm4gKDAsIHQuZm9yd2FyZFJlZikoZnVuY3Rpb24gKG4sIHIpIHsNCiAgICAgICAgICAgIHZh ciBvID0gKDAsIHQudXNlQ29udGV4dCkoRmUpOw0KICAgICAgICAgICAgcmV0dXJuIGUobiwg bywgcik7DQogICAgICAgICAgfSk7DQogICAgICAgIH07DQogICAgICAgIHZhciBEZSA9IHQu Y3JlYXRlQ29udGV4dCh7fSk7DQogICAgICAgIHZhciBVZSA9IGZ1bmN0aW9uIChlLCB0LCBu KSB7DQogICAgICAgICAgdmFyIHIgPSBlLmtleSArICItIiArIHQubmFtZTsNCiAgICAgICAg ICAhMSA9PT0gbiAmJiB2b2lkIDAgPT09IGUucmVnaXN0ZXJlZFtyXSAmJiAoZS5yZWdpc3Rl cmVkW3JdID0gdC5zdHlsZXMpOw0KICAgICAgICB9LA0KICAgICAgICAgIFdlID0gZnVuY3Rp b24gKGUsIHQsIG4pIHsNCiAgICAgICAgICAgIFVlKGUsIHQsIG4pOw0KICAgICAgICAgICAg dmFyIHIgPSBlLmtleSArICItIiArIHQubmFtZTsNCiAgICAgICAgICAgIGlmICh2b2lkIDAg PT09IGUuaW5zZXJ0ZWRbdC5uYW1lXSkgew0KICAgICAgICAgICAgICB2YXIgbyA9IHQ7DQog ICAgICAgICAgICAgIGRvIHsNCiAgICAgICAgICAgICAgICBlLmluc2VydCh0ID09PSBvID8g Ii4iICsgciA6ICIiLCBvLCBlLnNoZWV0LCAhMCksIChvID0gby5uZXh0KTsNCiAgICAgICAg ICAgICAgfSB3aGlsZSAodm9pZCAwICE9PSBvKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAg ICB9LA0KICAgICAgICAgIFZlID0geCwNCiAgICAgICAgICBIZSA9IGZ1bmN0aW9uIChlKSB7 DQogICAgICAgICAgICByZXR1cm4gInRoZW1lIiAhPT0gZTsNCiAgICAgICAgICB9LA0KICAg ICAgICAgIHFlID0gZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgIHJldHVybiAic3RyaW5n IiA9PT0gdHlwZW9mIGUgJiYgZS5jaGFyQ29kZUF0KDApID4gOTYgPyBWZSA6IEhlOw0KICAg ICAgICAgIH0sDQogICAgICAgICAgJGUgPSBmdW5jdGlvbiAoZSwgdCwgbikgew0KICAgICAg ICAgICAgdmFyIHI7DQogICAgICAgICAgICBpZiAodCkgew0KICAgICAgICAgICAgICB2YXIg byA9IHQuc2hvdWxkRm9yd2FyZFByb3A7DQogICAgICAgICAgICAgIHIgPQ0KICAgICAgICAg ICAgICAgIGUuX19lbW90aW9uX2ZvcndhcmRQcm9wICYmIG8NCiAgICAgICAgICAgICAgICAg ID8gZnVuY3Rpb24gKHQpIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGUuX19lbW90 aW9uX2ZvcndhcmRQcm9wKHQpICYmIG8odCk7DQogICAgICAgICAgICAgICAgICB9DQogICAg ICAgICAgICAgICAgICA6IG87DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXR1cm4g ImZ1bmN0aW9uIiAhPT0gdHlwZW9mIHIgJiYgbiAmJiAociA9IGUuX19lbW90aW9uX2Zvcndh cmRQcm9wKSwgcjsNCiAgICAgICAgICB9LA0KICAgICAgICAgIEtlID0gZnVuY3Rpb24gKGUp IHsNCiAgICAgICAgICAgIHZhciB0ID0gZS5jYWNoZSwNCiAgICAgICAgICAgICAgbiA9IGUu c2VyaWFsaXplZCwNCiAgICAgICAgICAgICAgciA9IGUuaXNTdHJpbmdUYWc7DQogICAgICAg ICAgICByZXR1cm4gKA0KICAgICAgICAgICAgICBVZSh0LCBuLCByKSwNCiAgICAgICAgICAg ICAgSWUoZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHJldHVybiBXZSh0LCBuLCBy KTsNCiAgICAgICAgICAgICAgfSksDQogICAgICAgICAgICAgIG51bGwNCiAgICAgICAgICAg ICk7DQogICAgICAgICAgfSwNCiAgICAgICAgICBRZSA9IGZ1bmN0aW9uIGUobiwgcikgew0K ICAgICAgICAgICAgdmFyIG8sDQogICAgICAgICAgICAgIGEsDQogICAgICAgICAgICAgIGwg PSBuLl9fZW1vdGlvbl9yZWFsID09PSBuLA0KICAgICAgICAgICAgICBzID0gKGwgJiYgbi5f X2Vtb3Rpb25fYmFzZSkgfHwgbjsNCiAgICAgICAgICAgIHZvaWQgMCAhPT0gciAmJiAoKG8g PSByLmxhYmVsKSwgKGEgPSByLnRhcmdldCkpOw0KICAgICAgICAgICAgdmFyIHUgPSAkZShu LCByLCBsKSwNCiAgICAgICAgICAgICAgYyA9IHUgfHwgcWUocyksDQogICAgICAgICAgICAg IGQgPSAhYygiYXMiKTsNCiAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7DQogICAg ICAgICAgICAgIHZhciBmID0gYXJndW1lbnRzLA0KICAgICAgICAgICAgICAgIHAgPSBsICYm IHZvaWQgMCAhPT0gbi5fX2Vtb3Rpb25fc3R5bGVzID8gbi5fX2Vtb3Rpb25fc3R5bGVzLnNs aWNlKDApIDogW107DQogICAgICAgICAgICAgIGlmICgodm9pZCAwICE9PSBvICYmIHAucHVz aCgibGFiZWw6IiArIG8gKyAiOyIpLCBudWxsID09IGZbMF0gfHwgdm9pZCAwID09PSBmWzBd LnJhdykpIHAucHVzaC5hcHBseShwLCBmKTsNCiAgICAgICAgICAgICAgZWxzZSB7DQogICAg ICAgICAgICAgICAgMCwgcC5wdXNoKGZbMF1bMF0pOw0KICAgICAgICAgICAgICAgIGZvciAo dmFyIGggPSBmLmxlbmd0aCwgbSA9IDE7IG0gPCBoOyBtKyspIHAucHVzaChmW21dLCBmWzBd W21dKTsNCiAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICB2YXIgZyA9IEJlKGZ1bmN0 aW9uIChlLCBuLCByKSB7DQogICAgICAgICAgICAgICAgdmFyIG8gPSAoZCAmJiBlLmFzKSB8 fCBzLA0KICAgICAgICAgICAgICAgICAgaSA9ICIiLA0KICAgICAgICAgICAgICAgICAgbCA9 IFtdLA0KICAgICAgICAgICAgICAgICAgZiA9IGU7DQogICAgICAgICAgICAgICAgaWYgKG51 bGwgPT0gZS50aGVtZSkgew0KICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaCBpbiAoKGYg PSB7fSksIGUpKSBmW2hdID0gZVtoXTsNCiAgICAgICAgICAgICAgICAgIGYudGhlbWUgPSB0 LnVzZUNvbnRleHQoRGUpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAi c3RyaW5nIiA9PT0gdHlwZW9mIGUuY2xhc3NOYW1lDQogICAgICAgICAgICAgICAgICA/IChp ID0gKGZ1bmN0aW9uIChlLCB0LCBuKSB7DQogICAgICAgICAgICAgICAgICAgIHZhciByID0g IiI7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiAoDQogICAgICAgICAgICAgICAgICAg ICAgbi5zcGxpdCgiICIpLmZvckVhY2goZnVuY3Rpb24gKG4pIHsNCiAgICAgICAgICAgICAg ICAgICAgICAgIHZvaWQgMCAhPT0gZVtuXSA/IHQucHVzaChlW25dICsgIjsiKSA6IChyICs9 IG4gKyAiICIpOw0KICAgICAgICAgICAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAgICAg ICAgICAgIHINCiAgICAgICAgICAgICAgICAgICAgKTsNCiAgICAgICAgICAgICAgICAgIH0p KG4ucmVnaXN0ZXJlZCwgbCwgZS5jbGFzc05hbWUpKQ0KICAgICAgICAgICAgICAgICAgOiBu dWxsICE9IGUuY2xhc3NOYW1lICYmIChpID0gZS5jbGFzc05hbWUgKyAiICIpOw0KICAgICAg ICAgICAgICAgIHZhciBtID0gemUocC5jb25jYXQobCksIG4ucmVnaXN0ZXJlZCwgZik7DQog ICAgICAgICAgICAgICAgKGkgKz0gbi5rZXkgKyAiLSIgKyBtLm5hbWUpLCB2b2lkIDAgIT09 IGEgJiYgKGkgKz0gIiAiICsgYSk7DQogICAgICAgICAgICAgICAgdmFyIGcgPSBkICYmIHZv aWQgMCA9PT0gdSA/IHFlKG8pIDogYywNCiAgICAgICAgICAgICAgICAgIHYgPSB7fTsNCiAg ICAgICAgICAgICAgICBmb3IgKHZhciB5IGluIGUpIChkICYmICJhcyIgPT09IHkpIHx8IChn KHkpICYmICh2W3ldID0gZVt5XSkpOw0KICAgICAgICAgICAgICAgIHJldHVybiAodi5jbGFz c05hbWUgPSBpKSwgKHYucmVmID0gciksIHQuY3JlYXRlRWxlbWVudCh0LkZyYWdtZW50LCBu dWxsLCB0LmNyZWF0ZUVsZW1lbnQoS2UsIHsgY2FjaGU6IG4sIHNlcmlhbGl6ZWQ6IG0sIGlz U3RyaW5nVGFnOiAic3RyaW5nIiA9PT0gdHlwZW9mIG8gfSksIHQuY3JlYXRlRWxlbWVudChv LCB2KSk7DQogICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICByZXR1cm4gKA0KICAg ICAgICAgICAgICAgIChnLmRpc3BsYXlOYW1lID0gdm9pZCAwICE9PSBvID8gbyA6ICJTdHls ZWQoIiArICgic3RyaW5nIiA9PT0gdHlwZW9mIHMgPyBzIDogcy5kaXNwbGF5TmFtZSB8fCBz Lm5hbWUgfHwgIkNvbXBvbmVudCIpICsgIikiKSwNCiAgICAgICAgICAgICAgICAoZy5kZWZh dWx0UHJvcHMgPSBuLmRlZmF1bHRQcm9wcyksDQogICAgICAgICAgICAgICAgKGcuX19lbW90 aW9uX3JlYWwgPSBnKSwNCiAgICAgICAgICAgICAgICAoZy5fX2Vtb3Rpb25fYmFzZSA9IHMp LA0KICAgICAgICAgICAgICAgIChnLl9fZW1vdGlvbl9zdHlsZXMgPSBwKSwNCiAgICAgICAg ICAgICAgICAoZy5fX2Vtb3Rpb25fZm9yd2FyZFByb3AgPSB1KSwNCiAgICAgICAgICAgICAg ICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZywgInRvU3RyaW5nIiwgew0KICAgICAgICAgICAg ICAgICAgdmFsdWU6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJu ICIuIiArIGE7DQogICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgIH0pLA0K ICAgICAgICAgICAgICAgIChnLndpdGhDb21wb25lbnQgPSBmdW5jdGlvbiAodCwgbikgew0K ICAgICAgICAgICAgICAgICAgcmV0dXJuIGUodCwgaSh7fSwgciwgbiwgeyBzaG91bGRGb3J3 YXJkUHJvcDogJGUoZywgbiwgITApIH0pKS5hcHBseSh2b2lkIDAsIHApOw0KICAgICAgICAg ICAgICAgIH0pLA0KICAgICAgICAgICAgICAgIGcNCiAgICAgICAgICAgICAgKTsNCiAgICAg ICAgICAgIH07DQogICAgICAgICAgfS5iaW5kKCk7DQogICAgICAgIGZ1bmN0aW9uIEdlKGUs IHQpIHsNCiAgICAgICAgICByZXR1cm4gUWUoZSwgdCk7DQogICAgICAgIH0NCiAgICAgICAg Ww0KICAgICAgICAgICJhIiwNCiAgICAgICAgICAiYWJiciIsDQogICAgICAgICAgImFkZHJl c3MiLA0KICAgICAgICAgICJhcmVhIiwNCiAgICAgICAgICAiYXJ0aWNsZSIsDQogICAgICAg ICAgImFzaWRlIiwNCiAgICAgICAgICAiYXVkaW8iLA0KICAgICAgICAgICJiIiwNCiAgICAg ICAgICAiYmFzZSIsDQogICAgICAgICAgImJkaSIsDQogICAgICAgICAgImJkbyIsDQogICAg ICAgICAgImJpZyIsDQogICAgICAgICAgImJsb2NrcXVvdGUiLA0KICAgICAgICAgICJib2R5 IiwNCiAgICAgICAgICAiYnIiLA0KICAgICAgICAgICJidXR0b24iLA0KICAgICAgICAgICJj YW52YXMiLA0KICAgICAgICAgICJjYXB0aW9uIiwNCiAgICAgICAgICAiY2l0ZSIsDQogICAg ICAgICAgImNvZGUiLA0KICAgICAgICAgICJjb2wiLA0KICAgICAgICAgICJjb2xncm91cCIs DQogICAgICAgICAgImRhdGEiLA0KICAgICAgICAgICJkYXRhbGlzdCIsDQogICAgICAgICAg ImRkIiwNCiAgICAgICAgICAiZGVsIiwNCiAgICAgICAgICAiZGV0YWlscyIsDQogICAgICAg ICAgImRmbiIsDQogICAgICAgICAgImRpYWxvZyIsDQogICAgICAgICAgImRpdiIsDQogICAg ICAgICAgImRsIiwNCiAgICAgICAgICAiZHQiLA0KICAgICAgICAgICJlbSIsDQogICAgICAg ICAgImVtYmVkIiwNCiAgICAgICAgICAiZmllbGRzZXQiLA0KICAgICAgICAgICJmaWdjYXB0 aW9uIiwNCiAgICAgICAgICAiZmlndXJlIiwNCiAgICAgICAgICAiZm9vdGVyIiwNCiAgICAg ICAgICAiZm9ybSIsDQogICAgICAgICAgImgxIiwNCiAgICAgICAgICAiaDIiLA0KICAgICAg ICAgICJoMyIsDQogICAgICAgICAgImg0IiwNCiAgICAgICAgICAiaDUiLA0KICAgICAgICAg ICJoNiIsDQogICAgICAgICAgImhlYWQiLA0KICAgICAgICAgICJoZWFkZXIiLA0KICAgICAg ICAgICJoZ3JvdXAiLA0KICAgICAgICAgICJociIsDQogICAgICAgICAgImh0bWwiLA0KICAg ICAgICAgICJpIiwNCiAgICAgICAgICAiaWZyYW1lIiwNCiAgICAgICAgICAiaW1nIiwNCiAg ICAgICAgICAiaW5wdXQiLA0KICAgICAgICAgICJpbnMiLA0KICAgICAgICAgICJrYmQiLA0K ICAgICAgICAgICJrZXlnZW4iLA0KICAgICAgICAgICJsYWJlbCIsDQogICAgICAgICAgImxl Z2VuZCIsDQogICAgICAgICAgImxpIiwNCiAgICAgICAgICAibGluayIsDQogICAgICAgICAg Im1haW4iLA0KICAgICAgICAgICJtYXAiLA0KICAgICAgICAgICJtYXJrIiwNCiAgICAgICAg ICAibWFycXVlZSIsDQogICAgICAgICAgIm1lbnUiLA0KICAgICAgICAgICJtZW51aXRlbSIs DQogICAgICAgICAgIm1ldGEiLA0KICAgICAgICAgICJtZXRlciIsDQogICAgICAgICAgIm5h diIsDQogICAgICAgICAgIm5vc2NyaXB0IiwNCiAgICAgICAgICAib2JqZWN0IiwNCiAgICAg ICAgICAib2wiLA0KICAgICAgICAgICJvcHRncm91cCIsDQogICAgICAgICAgIm9wdGlvbiIs DQogICAgICAgICAgIm91dHB1dCIsDQogICAgICAgICAgInAiLA0KICAgICAgICAgICJwYXJh bSIsDQogICAgICAgICAgInBpY3R1cmUiLA0KICAgICAgICAgICJwcmUiLA0KICAgICAgICAg ICJwcm9ncmVzcyIsDQogICAgICAgICAgInEiLA0KICAgICAgICAgICJycCIsDQogICAgICAg ICAgInJ0IiwNCiAgICAgICAgICAicnVieSIsDQogICAgICAgICAgInMiLA0KICAgICAgICAg ICJzYW1wIiwNCiAgICAgICAgICAic2NyaXB0IiwNCiAgICAgICAgICAic2VjdGlvbiIsDQog ICAgICAgICAgInNlbGVjdCIsDQogICAgICAgICAgInNtYWxsIiwNCiAgICAgICAgICAic291 cmNlIiwNCiAgICAgICAgICAic3BhbiIsDQogICAgICAgICAgInN0cm9uZyIsDQogICAgICAg ICAgInN0eWxlIiwNCiAgICAgICAgICAic3ViIiwNCiAgICAgICAgICAic3VtbWFyeSIsDQog ICAgICAgICAgInN1cCIsDQogICAgICAgICAgInRhYmxlIiwNCiAgICAgICAgICAidGJvZHki LA0KICAgICAgICAgICJ0ZCIsDQogICAgICAgICAgInRleHRhcmVhIiwNCiAgICAgICAgICAi dGZvb3QiLA0KICAgICAgICAgICJ0aCIsDQogICAgICAgICAgInRoZWFkIiwNCiAgICAgICAg ICAidGltZSIsDQogICAgICAgICAgInRpdGxlIiwNCiAgICAgICAgICAidHIiLA0KICAgICAg ICAgICJ0cmFjayIsDQogICAgICAgICAgInUiLA0KICAgICAgICAgICJ1bCIsDQogICAgICAg ICAgInZhciIsDQogICAgICAgICAgInZpZGVvIiwNCiAgICAgICAgICAid2JyIiwNCiAgICAg ICAgICAiY2lyY2xlIiwNCiAgICAgICAgICAiY2xpcFBhdGgiLA0KICAgICAgICAgICJkZWZz IiwNCiAgICAgICAgICAiZWxsaXBzZSIsDQogICAgICAgICAgImZvcmVpZ25PYmplY3QiLA0K ICAgICAgICAgICJnIiwNCiAgICAgICAgICAiaW1hZ2UiLA0KICAgICAgICAgICJsaW5lIiwN CiAgICAgICAgICAibGluZWFyR3JhZGllbnQiLA0KICAgICAgICAgICJtYXNrIiwNCiAgICAg ICAgICAicGF0aCIsDQogICAgICAgICAgInBhdHRlcm4iLA0KICAgICAgICAgICJwb2x5Z29u IiwNCiAgICAgICAgICAicG9seWxpbmUiLA0KICAgICAgICAgICJyYWRpYWxHcmFkaWVudCIs DQogICAgICAgICAgInJlY3QiLA0KICAgICAgICAgICJzdG9wIiwNCiAgICAgICAgICAic3Zn IiwNCiAgICAgICAgICAidGV4dCIsDQogICAgICAgICAgInRzcGFuIiwNCiAgICAgICAgXS5m b3JFYWNoKGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgUWVbZV0gPSBRZShlKTsNCiAgICAg ICAgfSk7DQogICAgICAgIGZ1bmN0aW9uIFllKGUpIHsNCiAgICAgICAgICByZXR1cm4gbnVs bCAhPT0gZSAmJiAib2JqZWN0IiA9PT0gdHlwZW9mIGUgJiYgZS5jb25zdHJ1Y3RvciA9PT0g T2JqZWN0Ow0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIFhlKGUpIHsNCiAgICAgICAg ICBpZiAoIVllKGUpKSByZXR1cm4gZTsNCiAgICAgICAgICBjb25zdCB0ID0ge307DQogICAg ICAgICAgcmV0dXJuICgNCiAgICAgICAgICAgIE9iamVjdC5rZXlzKGUpLmZvckVhY2goKG4p ID0+IHsNCiAgICAgICAgICAgICAgdFtuXSA9IFhlKGVbbl0pOw0KICAgICAgICAgICAgfSks DQogICAgICAgICAgICB0DQogICAgICAgICAgKTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5j dGlvbiBaZShlLCB0KSB7DQogICAgICAgICAgbGV0IG4gPSBhcmd1bWVudHMubGVuZ3RoID4g MiAmJiB2b2lkIDAgIT09IGFyZ3VtZW50c1syXSA/IGFyZ3VtZW50c1syXSA6IHsgY2xvbmU6 ICEwIH07DQogICAgICAgICAgY29uc3QgciA9IG4uY2xvbmUgPyBpKHt9LCBlKSA6IGU7DQog ICAgICAgICAgcmV0dXJuICgNCiAgICAgICAgICAgIFllKGUpICYmDQogICAgICAgICAgICBZ ZSh0KSAmJg0KICAgICAgICAgICAgT2JqZWN0LmtleXModCkuZm9yRWFjaCgobykgPT4gew0K ICAgICAgICAgICAgICAiX19wcm90b19fIiAhPT0gbyAmJiAoWWUodFtvXSkgJiYgbyBpbiBl ICYmIFllKGVbb10pID8gKHJbb10gPSBaZShlW29dLCB0W29dLCBuKSkgOiBuLmNsb25lID8g KHJbb10gPSBZZSh0W29dKSA/IFhlKHRbb10pIDogdFtvXSkgOiAocltvXSA9IHRbb10pKTsN CiAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAgcg0KICAgICAgICAgICk7DQogICAgICAg IH0NCiAgICAgICAgY29uc3QgSmUgPSBbInZhbHVlcyIsICJ1bml0IiwgInN0ZXAiXSwNCiAg ICAgICAgICBldCA9IChlKSA9PiB7DQogICAgICAgICAgICBjb25zdCB0ID0gT2JqZWN0Lmtl eXMoZSkubWFwKCh0KSA9PiAoeyBrZXk6IHQsIHZhbDogZVt0XSB9KSkgfHwgW107DQogICAg ICAgICAgICByZXR1cm4gdC5zb3J0KChlLCB0KSA9PiBlLnZhbCAtIHQudmFsKSwgdC5yZWR1 Y2UoKGUsIHQpID0+IGkoe30sIGUsIHsgW3Qua2V5XTogdC52YWwgfSksIHt9KTsNCiAgICAg ICAgICB9Ow0KICAgICAgICBjb25zdCB0dCA9IHsgYm9yZGVyUmFkaXVzOiA0IH0sDQogICAg ICAgICAgbnQgPSB7IHhzOiAwLCBzbTogNjAwLCBtZDogOTAwLCBsZzogMTIwMCwgeGw6IDE1 MzYgfSwNCiAgICAgICAgICBydCA9IHsga2V5czogWyJ4cyIsICJzbSIsICJtZCIsICJsZyIs ICJ4bCJdLCB1cDogKGUpID0+ICJAbWVkaWEgKG1pbi13aWR0aDoiLmNvbmNhdChudFtlXSwg InB4KSIpIH07DQogICAgICAgIGZ1bmN0aW9uIG90KGUsIHQsIG4pIHsNCiAgICAgICAgICBj b25zdCByID0gZS50aGVtZSB8fCB7fTsNCiAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh0 KSkgew0KICAgICAgICAgICAgY29uc3QgZSA9IHIuYnJlYWtwb2ludHMgfHwgcnQ7DQogICAg ICAgICAgICByZXR1cm4gdC5yZWR1Y2UoKHIsIG8sIGEpID0+ICgocltlLnVwKGUua2V5c1th XSldID0gbih0W2FdKSksIHIpLCB7fSk7DQogICAgICAgICAgfQ0KICAgICAgICAgIGlmICgi b2JqZWN0IiA9PT0gdHlwZW9mIHQpIHsNCiAgICAgICAgICAgIGNvbnN0IGUgPSByLmJyZWFr cG9pbnRzIHx8IHJ0Ow0KICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKHQpLnJlZHVj ZSgociwgbykgPT4gew0KICAgICAgICAgICAgICBpZiAoLTEgIT09IE9iamVjdC5rZXlzKGUu dmFsdWVzIHx8IG50KS5pbmRleE9mKG8pKSB7DQogICAgICAgICAgICAgICAgcltlLnVwKG8p XSA9IG4odFtvXSwgbyk7DQogICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAg ICAgY29uc3QgZSA9IG87DQogICAgICAgICAgICAgICAgcltlXSA9IHRbZV07DQogICAgICAg ICAgICAgIH0NCiAgICAgICAgICAgICAgcmV0dXJuIHI7DQogICAgICAgICAgICB9LCB7fSk7 DQogICAgICAgICAgfQ0KICAgICAgICAgIHJldHVybiBuKHQpOw0KICAgICAgICB9DQogICAg ICAgIGZ1bmN0aW9uIGF0KCkgew0KICAgICAgICAgIGxldCBlID0gYXJndW1lbnRzLmxlbmd0 aCA+IDAgJiYgdm9pZCAwICE9PSBhcmd1bWVudHNbMF0gPyBhcmd1bWVudHNbMF0gOiB7fTsN CiAgICAgICAgICB2YXIgdDsNCiAgICAgICAgICByZXR1cm4gKG51bGwgPT0gKHQgPSBlLmtl eXMpID8gdm9pZCAwIDogdC5yZWR1Y2UoKHQsIG4pID0+ICgodFtlLnVwKG4pXSA9IHt9KSwg dCksIHt9KSkgfHwge307DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gaXQoZSwgdCkg ew0KICAgICAgICAgIHJldHVybiBlLnJlZHVjZSgoZSwgdCkgPT4gew0KICAgICAgICAgICAg Y29uc3QgbiA9IGVbdF07DQogICAgICAgICAgICByZXR1cm4gKCFuIHx8IDAgPT09IE9iamVj dC5rZXlzKG4pLmxlbmd0aCkgJiYgZGVsZXRlIGVbdF0sIGU7DQogICAgICAgICAgfSwgdCk7 DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gbHQoZSkgew0KICAgICAgICAgIGxldCB7 IHZhbHVlczogdCwgYnJlYWtwb2ludHM6IG4sIGJhc2U6IHIgfSA9IGU7DQogICAgICAgICAg Y29uc3QgbyA9DQogICAgICAgICAgICByIHx8DQogICAgICAgICAgICAoZnVuY3Rpb24gKGUs IHQpIHsNCiAgICAgICAgICAgICAgaWYgKCJvYmplY3QiICE9PSB0eXBlb2YgZSkgcmV0dXJu IHt9Ow0KICAgICAgICAgICAgICBjb25zdCBuID0ge30sDQogICAgICAgICAgICAgICAgciA9 IE9iamVjdC5rZXlzKHQpOw0KICAgICAgICAgICAgICByZXR1cm4gKA0KICAgICAgICAgICAg ICAgIEFycmF5LmlzQXJyYXkoZSkNCiAgICAgICAgICAgICAgICAgID8gci5mb3JFYWNoKCh0 LCByKSA9PiB7DQogICAgICAgICAgICAgICAgICAgIHIgPCBlLmxlbmd0aCAmJiAoblt0XSA9 ICEwKTsNCiAgICAgICAgICAgICAgICAgIH0pDQogICAgICAgICAgICAgICAgICA6IHIuZm9y RWFjaCgodCkgPT4gew0KICAgICAgICAgICAgICAgICAgICBudWxsICE9IGVbdF0gJiYgKG5b dF0gPSAhMCk7DQogICAgICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgICBuDQog ICAgICAgICAgICAgICk7DQogICAgICAgICAgICB9KSh0LCBuKSwNCiAgICAgICAgICAgIGEg PSBPYmplY3Qua2V5cyhvKTsNCiAgICAgICAgICBpZiAoMCA9PT0gYS5sZW5ndGgpIHJldHVy biB0Ow0KICAgICAgICAgIGxldCBpOw0KICAgICAgICAgIHJldHVybiBhLnJlZHVjZSgoZSwg biwgcikgPT4gKEFycmF5LmlzQXJyYXkodCkgPyAoKGVbbl0gPSBudWxsICE9IHRbcl0gPyB0 W3JdIDogdFtpXSksIChpID0gcikpIDogIm9iamVjdCIgPT09IHR5cGVvZiB0ID8gKChlW25d ID0gbnVsbCAhPSB0W25dID8gdFtuXSA6IHRbaV0pLCAoaSA9IG4pKSA6IChlW25dID0gdCks IGUpLCB7fSk7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gc3QoZSkgew0KICAgICAg ICAgIGlmICgic3RyaW5nIiAhPT0gdHlwZW9mIGUpIHRocm93IG5ldyBFcnJvcihkKDcpKTsN CiAgICAgICAgICByZXR1cm4gZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIGUuc2xpY2Uo MSk7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gdXQoZSwgdCkgew0KICAgICAgICAg IGxldCBuID0gIShhcmd1bWVudHMubGVuZ3RoID4gMiAmJiB2b2lkIDAgIT09IGFyZ3VtZW50 c1syXSkgfHwgYXJndW1lbnRzWzJdOw0KICAgICAgICAgIGlmICghdCB8fCAic3RyaW5nIiAh PT0gdHlwZW9mIHQpIHJldHVybiBudWxsOw0KICAgICAgICAgIGlmIChlICYmIGUudmFycyAm JiBuKSB7DQogICAgICAgICAgICBjb25zdCBuID0gInZhcnMuIg0KICAgICAgICAgICAgICAu Y29uY2F0KHQpDQogICAgICAgICAgICAgIC5zcGxpdCgiLiIpDQogICAgICAgICAgICAgIC5y ZWR1Y2UoKGUsIHQpID0+IChlICYmIGVbdF0gPyBlW3RdIDogbnVsbCksIGUpOw0KICAgICAg ICAgICAgaWYgKG51bGwgIT0gbikgcmV0dXJuIG47DQogICAgICAgICAgfQ0KICAgICAgICAg IHJldHVybiB0LnNwbGl0KCIuIikucmVkdWNlKChlLCB0KSA9PiAoZSAmJiBudWxsICE9IGVb dF0gPyBlW3RdIDogbnVsbCksIGUpOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIGN0 KGUsIHQsIG4pIHsNCiAgICAgICAgICBsZXQgciwNCiAgICAgICAgICAgIG8gPSBhcmd1bWVu dHMubGVuZ3RoID4gMyAmJiB2b2lkIDAgIT09IGFyZ3VtZW50c1szXSA/IGFyZ3VtZW50c1sz XSA6IG47DQogICAgICAgICAgcmV0dXJuIChyID0gImZ1bmN0aW9uIiA9PT0gdHlwZW9mIGUg PyBlKG4pIDogQXJyYXkuaXNBcnJheShlKSA/IGVbbl0gfHwgbyA6IHV0KGUsIG4pIHx8IG8p LCB0ICYmIChyID0gdChyLCBvLCBlKSksIHI7DQogICAgICAgIH0NCiAgICAgICAgY29uc3Qg ZHQgPSBmdW5jdGlvbiAoZSkgew0KICAgICAgICAgIGNvbnN0IHsgcHJvcDogdCwgY3NzUHJv cGVydHk6IG4gPSBlLnByb3AsIHRoZW1lS2V5OiByLCB0cmFuc2Zvcm06IG8gfSA9IGUsDQog ICAgICAgICAgICBhID0gKGUpID0+IHsNCiAgICAgICAgICAgICAgaWYgKG51bGwgPT0gZVt0 XSkgcmV0dXJuIG51bGw7DQogICAgICAgICAgICAgIGNvbnN0IGEgPSBlW3RdLA0KICAgICAg ICAgICAgICAgIGkgPSB1dChlLnRoZW1lLCByKSB8fCB7fTsNCiAgICAgICAgICAgICAgcmV0 dXJuIG90KGUsIGEsIChlKSA9PiB7DQogICAgICAgICAgICAgICAgbGV0IHIgPSBjdChpLCBv LCBlKTsNCiAgICAgICAgICAgICAgICByZXR1cm4gZSA9PT0gciAmJiAic3RyaW5nIiA9PT0g dHlwZW9mIGUgJiYgKHIgPSBjdChpLCBvLCAiIi5jb25jYXQodCkuY29uY2F0KCJkZWZhdWx0 IiA9PT0gZSA/ICIiIDogc3QoZSkpLCBlKSksICExID09PSBuID8gciA6IHsgW25dOiByIH07 DQogICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgfTsNCiAgICAgICAgICByZXR1cm4g KGEucHJvcFR5cGVzID0ge30pLCAoYS5maWx0ZXJQcm9wcyA9IFt0XSksIGE7DQogICAgICAg IH07DQogICAgICAgIGNvbnN0IGZ0ID0gZnVuY3Rpb24gKGUsIHQpIHsNCiAgICAgICAgICBy ZXR1cm4gdCA/IFplKGUsIHQsIHsgY2xvbmU6ICExIH0pIDogZTsNCiAgICAgICAgfTsNCiAg ICAgICAgY29uc3QgcHQgPSB7IG06ICJtYXJnaW4iLCBwOiAicGFkZGluZyIgfSwNCiAgICAg ICAgICBodCA9IHsgdDogIlRvcCIsIHI6ICJSaWdodCIsIGI6ICJCb3R0b20iLCBsOiAiTGVm dCIsIHg6IFsiTGVmdCIsICJSaWdodCJdLCB5OiBbIlRvcCIsICJCb3R0b20iXSB9LA0KICAg ICAgICAgIG10ID0geyBtYXJnaW5YOiAibXgiLCBtYXJnaW5ZOiAibXkiLCBwYWRkaW5nWDog InB4IiwgcGFkZGluZ1k6ICJweSIgfSwNCiAgICAgICAgICBndCA9IChmdW5jdGlvbiAoZSkg ew0KICAgICAgICAgICAgY29uc3QgdCA9IHt9Ow0KICAgICAgICAgICAgcmV0dXJuIChuKSA9 PiAodm9pZCAwID09PSB0W25dICYmICh0W25dID0gZShuKSksIHRbbl0pOw0KICAgICAgICAg IH0pKChlKSA9PiB7DQogICAgICAgICAgICBpZiAoZS5sZW5ndGggPiAyKSB7DQogICAgICAg ICAgICAgIGlmICghbXRbZV0pIHJldHVybiBbZV07DQogICAgICAgICAgICAgIGUgPSBtdFtl XTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnN0IFt0LCBuXSA9IGUuc3BsaXQo IiIpLA0KICAgICAgICAgICAgICByID0gcHRbdF0sDQogICAgICAgICAgICAgIG8gPSBodFtu XSB8fCAiIjsNCiAgICAgICAgICAgIHJldHVybiBBcnJheS5pc0FycmF5KG8pID8gby5tYXAo KGUpID0+IHIgKyBlKSA6IFtyICsgb107DQogICAgICAgICAgfSksDQogICAgICAgICAgdnQg PSBbDQogICAgICAgICAgICAibSIsDQogICAgICAgICAgICAibXQiLA0KICAgICAgICAgICAg Im1yIiwNCiAgICAgICAgICAgICJtYiIsDQogICAgICAgICAgICAibWwiLA0KICAgICAgICAg ICAgIm14IiwNCiAgICAgICAgICAgICJteSIsDQogICAgICAgICAgICAibWFyZ2luIiwNCiAg ICAgICAgICAgICJtYXJnaW5Ub3AiLA0KICAgICAgICAgICAgIm1hcmdpblJpZ2h0IiwNCiAg ICAgICAgICAgICJtYXJnaW5Cb3R0b20iLA0KICAgICAgICAgICAgIm1hcmdpbkxlZnQiLA0K ICAgICAgICAgICAgIm1hcmdpblgiLA0KICAgICAgICAgICAgIm1hcmdpblkiLA0KICAgICAg ICAgICAgIm1hcmdpbklubGluZSIsDQogICAgICAgICAgICAibWFyZ2luSW5saW5lU3RhcnQi LA0KICAgICAgICAgICAgIm1hcmdpbklubGluZUVuZCIsDQogICAgICAgICAgICAibWFyZ2lu QmxvY2siLA0KICAgICAgICAgICAgIm1hcmdpbkJsb2NrU3RhcnQiLA0KICAgICAgICAgICAg Im1hcmdpbkJsb2NrRW5kIiwNCiAgICAgICAgICBdLA0KICAgICAgICAgIHl0ID0gWw0KICAg ICAgICAgICAgInAiLA0KICAgICAgICAgICAgInB0IiwNCiAgICAgICAgICAgICJwciIsDQog ICAgICAgICAgICAicGIiLA0KICAgICAgICAgICAgInBsIiwNCiAgICAgICAgICAgICJweCIs DQogICAgICAgICAgICAicHkiLA0KICAgICAgICAgICAgInBhZGRpbmciLA0KICAgICAgICAg ICAgInBhZGRpbmdUb3AiLA0KICAgICAgICAgICAgInBhZGRpbmdSaWdodCIsDQogICAgICAg ICAgICAicGFkZGluZ0JvdHRvbSIsDQogICAgICAgICAgICAicGFkZGluZ0xlZnQiLA0KICAg ICAgICAgICAgInBhZGRpbmdYIiwNCiAgICAgICAgICAgICJwYWRkaW5nWSIsDQogICAgICAg ICAgICAicGFkZGluZ0lubGluZSIsDQogICAgICAgICAgICAicGFkZGluZ0lubGluZVN0YXJ0 IiwNCiAgICAgICAgICAgICJwYWRkaW5nSW5saW5lRW5kIiwNCiAgICAgICAgICAgICJwYWRk aW5nQmxvY2siLA0KICAgICAgICAgICAgInBhZGRpbmdCbG9ja1N0YXJ0IiwNCiAgICAgICAg ICAgICJwYWRkaW5nQmxvY2tFbmQiLA0KICAgICAgICAgIF0sDQogICAgICAgICAgYnQgPSBb Li4udnQsIC4uLnl0XTsNCiAgICAgICAgZnVuY3Rpb24gd3QoZSwgdCwgbiwgcikgew0KICAg ICAgICAgIHZhciBvOw0KICAgICAgICAgIGNvbnN0IGEgPSBudWxsICE9IChvID0gdXQoZSwg dCwgITEpKSA/IG8gOiBuOw0KICAgICAgICAgIHJldHVybiAibnVtYmVyIiA9PT0gdHlwZW9m IGEgPyAoZSkgPT4gKCJzdHJpbmciID09PSB0eXBlb2YgZSA/IGUgOiBhICogZSkgOiBBcnJh eS5pc0FycmF5KGEpID8gKGUpID0+ICgic3RyaW5nIiA9PT0gdHlwZW9mIGUgPyBlIDogYVtl XSkgOiAiZnVuY3Rpb24iID09PSB0eXBlb2YgYSA/IGEgOiAoKSA9PiB7IH07DQogICAgICAg IH0NCiAgICAgICAgZnVuY3Rpb24geHQoZSkgew0KICAgICAgICAgIHJldHVybiB3dChlLCAi c3BhY2luZyIsIDgpOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIFN0KGUsIHQpIHsN CiAgICAgICAgICBpZiAoInN0cmluZyIgPT09IHR5cGVvZiB0IHx8IG51bGwgPT0gdCkgcmV0 dXJuIHQ7DQogICAgICAgICAgY29uc3QgbiA9IGUoTWF0aC5hYnModCkpOw0KICAgICAgICAg IHJldHVybiB0ID49IDAgPyBuIDogIm51bWJlciIgPT09IHR5cGVvZiBuID8gLW4gOiAiLSIu Y29uY2F0KG4pOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIGt0KGUsIHQsIG4sIHIp IHsNCiAgICAgICAgICBpZiAoLTEgPT09IHQuaW5kZXhPZihuKSkgcmV0dXJuIG51bGw7DQog ICAgICAgICAgY29uc3QgbyA9IChmdW5jdGlvbiAoZSwgdCkgew0KICAgICAgICAgICAgcmV0 dXJuIChuKSA9PiBlLnJlZHVjZSgoZSwgcikgPT4gKChlW3JdID0gU3QodCwgbikpLCBlKSwg e30pOw0KICAgICAgICAgIH0pKGd0KG4pLCByKTsNCiAgICAgICAgICByZXR1cm4gb3QoZSwg ZVtuXSwgbyk7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gRXQoZSwgdCkgew0KICAg ICAgICAgIGNvbnN0IG4gPSB4dChlLnRoZW1lKTsNCiAgICAgICAgICByZXR1cm4gT2JqZWN0 LmtleXMoZSkNCiAgICAgICAgICAgIC5tYXAoKHIpID0+IGt0KGUsIHQsIHIsIG4pKQ0KICAg ICAgICAgICAgLnJlZHVjZShmdCwge30pOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9u IEN0KGUpIHsNCiAgICAgICAgICByZXR1cm4gRXQoZSwgdnQpOw0KICAgICAgICB9DQogICAg ICAgIGZ1bmN0aW9uIFJ0KGUpIHsNCiAgICAgICAgICByZXR1cm4gRXQoZSwgeXQpOw0KICAg ICAgICB9DQogICAgICAgIGZ1bmN0aW9uIF90KGUpIHsNCiAgICAgICAgICByZXR1cm4gRXQo ZSwgYnQpOw0KICAgICAgICB9DQogICAgICAgIChDdC5wcm9wVHlwZXMgPSB7fSksIChDdC5m aWx0ZXJQcm9wcyA9IHZ0KSwgKFJ0LnByb3BUeXBlcyA9IHt9KSwgKFJ0LmZpbHRlclByb3Bz ID0geXQpLCAoX3QucHJvcFR5cGVzID0ge30pLCAoX3QuZmlsdGVyUHJvcHMgPSBidCk7DQog ICAgICAgIGNvbnN0IFB0ID0gZnVuY3Rpb24gKCkgew0KICAgICAgICAgIGZvciAodmFyIGUg PSBhcmd1bWVudHMubGVuZ3RoLCB0ID0gbmV3IEFycmF5KGUpLCBuID0gMDsgbiA8IGU7IG4r KykgdFtuXSA9IGFyZ3VtZW50c1tuXTsNCiAgICAgICAgICBjb25zdCByID0gdC5yZWR1Y2Uo DQogICAgICAgICAgICAoZSwgdCkgPT4gKA0KICAgICAgICAgICAgICB0LmZpbHRlclByb3Bz LmZvckVhY2goKG4pID0+IHsNCiAgICAgICAgICAgICAgICBlW25dID0gdDsNCiAgICAgICAg ICAgICAgfSksDQogICAgICAgICAgICAgIGUNCiAgICAgICAgICAgICksDQogICAgICAgICAg ICB7fQ0KICAgICAgICAgICksDQogICAgICAgICAgICBvID0gKGUpID0+IE9iamVjdC5rZXlz KGUpLnJlZHVjZSgodCwgbikgPT4gKHJbbl0gPyBmdCh0LCByW25dKGUpKSA6IHQpLCB7fSk7 DQogICAgICAgICAgcmV0dXJuIChvLnByb3BUeXBlcyA9IHt9KSwgKG8uZmlsdGVyUHJvcHMg PSB0LnJlZHVjZSgoZSwgdCkgPT4gZS5jb25jYXQodC5maWx0ZXJQcm9wcyksIFtdKSksIG87 DQogICAgICAgIH07DQogICAgICAgIGZ1bmN0aW9uIE90KGUpIHsNCiAgICAgICAgICByZXR1 cm4gIm51bWJlciIgIT09IHR5cGVvZiBlID8gZSA6ICIiLmNvbmNhdChlLCAicHggc29saWQi KTsNCiAgICAgICAgfQ0KICAgICAgICBjb25zdCBOdCA9IGR0KHsgcHJvcDogImJvcmRlciIs IHRoZW1lS2V5OiAiYm9yZGVycyIsIHRyYW5zZm9ybTogT3QgfSksDQogICAgICAgICAgVHQg PSBkdCh7IHByb3A6ICJib3JkZXJUb3AiLCB0aGVtZUtleTogImJvcmRlcnMiLCB0cmFuc2Zv cm06IE90IH0pLA0KICAgICAgICAgIEF0ID0gZHQoeyBwcm9wOiAiYm9yZGVyUmlnaHQiLCB0 aGVtZUtleTogImJvcmRlcnMiLCB0cmFuc2Zvcm06IE90IH0pLA0KICAgICAgICAgIE10ID0g ZHQoeyBwcm9wOiAiYm9yZGVyQm90dG9tIiwgdGhlbWVLZXk6ICJib3JkZXJzIiwgdHJhbnNm b3JtOiBPdCB9KSwNCiAgICAgICAgICB6dCA9IGR0KHsgcHJvcDogImJvcmRlckxlZnQiLCB0 aGVtZUtleTogImJvcmRlcnMiLCB0cmFuc2Zvcm06IE90IH0pLA0KICAgICAgICAgIGp0ID0g ZHQoeyBwcm9wOiAiYm9yZGVyQ29sb3IiLCB0aGVtZUtleTogInBhbGV0dGUiIH0pLA0KICAg ICAgICAgIEl0ID0gZHQoeyBwcm9wOiAiYm9yZGVyVG9wQ29sb3IiLCB0aGVtZUtleTogInBh bGV0dGUiIH0pLA0KICAgICAgICAgIEx0ID0gZHQoeyBwcm9wOiAiYm9yZGVyUmlnaHRDb2xv ciIsIHRoZW1lS2V5OiAicGFsZXR0ZSIgfSksDQogICAgICAgICAgRnQgPSBkdCh7IHByb3A6 ICJib3JkZXJCb3R0b21Db2xvciIsIHRoZW1lS2V5OiAicGFsZXR0ZSIgfSksDQogICAgICAg ICAgQnQgPSBkdCh7IHByb3A6ICJib3JkZXJMZWZ0Q29sb3IiLCB0aGVtZUtleTogInBhbGV0 dGUiIH0pLA0KICAgICAgICAgIER0ID0gKGUpID0+IHsNCiAgICAgICAgICAgIGlmICh2b2lk IDAgIT09IGUuYm9yZGVyUmFkaXVzICYmIG51bGwgIT09IGUuYm9yZGVyUmFkaXVzKSB7DQog ICAgICAgICAgICAgIGNvbnN0IHQgPSB3dChlLnRoZW1lLCAic2hhcGUuYm9yZGVyUmFkaXVz IiwgNCksDQogICAgICAgICAgICAgICAgbiA9IChlKSA9PiAoeyBib3JkZXJSYWRpdXM6IFN0 KHQsIGUpIH0pOw0KICAgICAgICAgICAgICByZXR1cm4gb3QoZSwgZS5ib3JkZXJSYWRpdXMs IG4pOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmV0dXJuIG51bGw7DQogICAgICAg ICAgfTsNCiAgICAgICAgKER0LnByb3BUeXBlcyA9IHt9KSwgKER0LmZpbHRlclByb3BzID0g WyJib3JkZXJSYWRpdXMiXSk7DQogICAgICAgIFB0KE50LCBUdCwgQXQsIE10LCB6dCwganQs IEl0LCBMdCwgRnQsIEJ0LCBEdCk7DQogICAgICAgIGNvbnN0IFV0ID0gKGUpID0+IHsNCiAg ICAgICAgICBpZiAodm9pZCAwICE9PSBlLmdhcCAmJiBudWxsICE9PSBlLmdhcCkgew0KICAg ICAgICAgICAgY29uc3QgdCA9IHd0KGUudGhlbWUsICJzcGFjaW5nIiwgOCksDQogICAgICAg ICAgICAgIG4gPSAoZSkgPT4gKHsgZ2FwOiBTdCh0LCBlKSB9KTsNCiAgICAgICAgICAgIHJl dHVybiBvdChlLCBlLmdhcCwgbik7DQogICAgICAgICAgfQ0KICAgICAgICAgIHJldHVybiBu dWxsOw0KICAgICAgICB9Ow0KICAgICAgICAoVXQucHJvcFR5cGVzID0ge30pLCAoVXQuZmls dGVyUHJvcHMgPSBbImdhcCJdKTsNCiAgICAgICAgY29uc3QgV3QgPSAoZSkgPT4gew0KICAg ICAgICAgIGlmICh2b2lkIDAgIT09IGUuY29sdW1uR2FwICYmIG51bGwgIT09IGUuY29sdW1u R2FwKSB7DQogICAgICAgICAgICBjb25zdCB0ID0gd3QoZS50aGVtZSwgInNwYWNpbmciLCA4 KSwNCiAgICAgICAgICAgICAgbiA9IChlKSA9PiAoeyBjb2x1bW5HYXA6IFN0KHQsIGUpIH0p Ow0KICAgICAgICAgICAgcmV0dXJuIG90KGUsIGUuY29sdW1uR2FwLCBuKTsNCiAgICAgICAg ICB9DQogICAgICAgICAgcmV0dXJuIG51bGw7DQogICAgICAgIH07DQogICAgICAgIChXdC5w cm9wVHlwZXMgPSB7fSksIChXdC5maWx0ZXJQcm9wcyA9IFsiY29sdW1uR2FwIl0pOw0KICAg ICAgICBjb25zdCBWdCA9IChlKSA9PiB7DQogICAgICAgICAgaWYgKHZvaWQgMCAhPT0gZS5y b3dHYXAgJiYgbnVsbCAhPT0gZS5yb3dHYXApIHsNCiAgICAgICAgICAgIGNvbnN0IHQgPSB3 dChlLnRoZW1lLCAic3BhY2luZyIsIDgpLA0KICAgICAgICAgICAgICBuID0gKGUpID0+ICh7 IHJvd0dhcDogU3QodCwgZSkgfSk7DQogICAgICAgICAgICByZXR1cm4gb3QoZSwgZS5yb3dH YXAsIG4pOw0KICAgICAgICAgIH0NCiAgICAgICAgICByZXR1cm4gbnVsbDsNCiAgICAgICAg fTsNCiAgICAgICAgKFZ0LnByb3BUeXBlcyA9IHt9KSwgKFZ0LmZpbHRlclByb3BzID0gWyJy b3dHYXAiXSk7DQogICAgICAgIFB0KA0KICAgICAgICAgIFV0LA0KICAgICAgICAgIFd0LA0K ICAgICAgICAgIFZ0LA0KICAgICAgICAgIGR0KHsgcHJvcDogImdyaWRDb2x1bW4iIH0pLA0K ICAgICAgICAgIGR0KHsgcHJvcDogImdyaWRSb3ciIH0pLA0KICAgICAgICAgIGR0KHsgcHJv cDogImdyaWRBdXRvRmxvdyIgfSksDQogICAgICAgICAgZHQoeyBwcm9wOiAiZ3JpZEF1dG9D b2x1bW5zIiB9KSwNCiAgICAgICAgICBkdCh7IHByb3A6ICJncmlkQXV0b1Jvd3MiIH0pLA0K ICAgICAgICAgIGR0KHsgcHJvcDogImdyaWRUZW1wbGF0ZUNvbHVtbnMiIH0pLA0KICAgICAg ICAgIGR0KHsgcHJvcDogImdyaWRUZW1wbGF0ZVJvd3MiIH0pLA0KICAgICAgICAgIGR0KHsg cHJvcDogImdyaWRUZW1wbGF0ZUFyZWFzIiB9KSwNCiAgICAgICAgICBkdCh7IHByb3A6ICJn cmlkQXJlYSIgfSkNCiAgICAgICAgKTsNCiAgICAgICAgZnVuY3Rpb24gSHQoZSwgdCkgew0K ICAgICAgICAgIHJldHVybiAiZ3JleSIgPT09IHQgPyB0IDogZTsNCiAgICAgICAgfQ0KICAg ICAgICBQdCgNCiAgICAgICAgICBkdCh7IHByb3A6ICJjb2xvciIsIHRoZW1lS2V5OiAicGFs ZXR0ZSIsIHRyYW5zZm9ybTogSHQgfSksDQogICAgICAgICAgZHQoeyBwcm9wOiAiYmdjb2xv ciIsIGNzc1Byb3BlcnR5OiAiYmFja2dyb3VuZENvbG9yIiwgdGhlbWVLZXk6ICJwYWxldHRl IiwgdHJhbnNmb3JtOiBIdCB9KSwNCiAgICAgICAgICBkdCh7IHByb3A6ICJiYWNrZ3JvdW5k Q29sb3IiLCB0aGVtZUtleTogInBhbGV0dGUiLCB0cmFuc2Zvcm06IEh0IH0pDQogICAgICAg ICk7DQogICAgICAgIGZ1bmN0aW9uIHF0KGUpIHsNCiAgICAgICAgICByZXR1cm4gZSA8PSAx ICYmIDAgIT09IGUgPyAiIi5jb25jYXQoMTAwICogZSwgIiUiKSA6IGU7DQogICAgICAgIH0N CiAgICAgICAgY29uc3QgJHQgPSBkdCh7IHByb3A6ICJ3aWR0aCIsIHRyYW5zZm9ybTogcXQg fSksDQogICAgICAgICAgS3QgPSAoZSkgPT4gew0KICAgICAgICAgICAgaWYgKHZvaWQgMCAh PT0gZS5tYXhXaWR0aCAmJiBudWxsICE9PSBlLm1heFdpZHRoKSB7DQogICAgICAgICAgICAg IGNvbnN0IHQgPSAodCkgPT4gew0KICAgICAgICAgICAgICAgIHZhciBuLCByOw0KICAgICAg ICAgICAgICAgIGNvbnN0IG8gPSAobnVsbCA9PSAobiA9IGUudGhlbWUpIHx8IG51bGwgPT0g KG4gPSBuLmJyZWFrcG9pbnRzKSB8fCBudWxsID09IChuID0gbi52YWx1ZXMpID8gdm9pZCAw IDogblt0XSkgfHwgbnRbdF07DQogICAgICAgICAgICAgICAgcmV0dXJuIG8gPyAoInB4IiAh PT0gKG51bGwgPT0gKHIgPSBlLnRoZW1lKSB8fCBudWxsID09IChyID0gci5icmVha3BvaW50 cykgPyB2b2lkIDAgOiByLnVuaXQpID8geyBtYXhXaWR0aDogIiIuY29uY2F0KG8pLmNvbmNh dChlLnRoZW1lLmJyZWFrcG9pbnRzLnVuaXQpIH0gOiB7IG1heFdpZHRoOiBvIH0pIDogeyBt YXhXaWR0aDogcXQodCkgfTsNCiAgICAgICAgICAgICAgfTsNCiAgICAgICAgICAgICAgcmV0 dXJuIG90KGUsIGUubWF4V2lkdGgsIHQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAg cmV0dXJuIG51bGw7DQogICAgICAgICAgfTsNCiAgICAgICAgS3QuZmlsdGVyUHJvcHMgPSBb Im1heFdpZHRoIl07DQogICAgICAgIGNvbnN0IFF0ID0gZHQoeyBwcm9wOiAibWluV2lkdGgi LCB0cmFuc2Zvcm06IHF0IH0pLA0KICAgICAgICAgIEd0ID0gZHQoeyBwcm9wOiAiaGVpZ2h0 IiwgdHJhbnNmb3JtOiBxdCB9KSwNCiAgICAgICAgICBZdCA9IGR0KHsgcHJvcDogIm1heEhl aWdodCIsIHRyYW5zZm9ybTogcXQgfSksDQogICAgICAgICAgWHQgPSBkdCh7IHByb3A6ICJt aW5IZWlnaHQiLCB0cmFuc2Zvcm06IHF0IH0pLA0KICAgICAgICAgIFp0ID0NCiAgICAgICAg ICAgIChkdCh7IHByb3A6ICJzaXplIiwgY3NzUHJvcGVydHk6ICJ3aWR0aCIsIHRyYW5zZm9y bTogcXQgfSksDQogICAgICAgICAgICAgIGR0KHsgcHJvcDogInNpemUiLCBjc3NQcm9wZXJ0 eTogImhlaWdodCIsIHRyYW5zZm9ybTogcXQgfSksDQogICAgICAgICAgICAgIFB0KCR0LCBL dCwgUXQsIEd0LCBZdCwgWHQsIGR0KHsgcHJvcDogImJveFNpemluZyIgfSkpLA0KICAgICAg ICAgICAgew0KICAgICAgICAgICAgICBib3JkZXI6IHsgdGhlbWVLZXk6ICJib3JkZXJzIiwg dHJhbnNmb3JtOiBPdCB9LA0KICAgICAgICAgICAgICBib3JkZXJUb3A6IHsgdGhlbWVLZXk6 ICJib3JkZXJzIiwgdHJhbnNmb3JtOiBPdCB9LA0KICAgICAgICAgICAgICBib3JkZXJSaWdo dDogeyB0aGVtZUtleTogImJvcmRlcnMiLCB0cmFuc2Zvcm06IE90IH0sDQogICAgICAgICAg ICAgIGJvcmRlckJvdHRvbTogeyB0aGVtZUtleTogImJvcmRlcnMiLCB0cmFuc2Zvcm06IE90 IH0sDQogICAgICAgICAgICAgIGJvcmRlckxlZnQ6IHsgdGhlbWVLZXk6ICJib3JkZXJzIiwg dHJhbnNmb3JtOiBPdCB9LA0KICAgICAgICAgICAgICBib3JkZXJDb2xvcjogeyB0aGVtZUtl eTogInBhbGV0dGUiIH0sDQogICAgICAgICAgICAgIGJvcmRlclRvcENvbG9yOiB7IHRoZW1l S2V5OiAicGFsZXR0ZSIgfSwNCiAgICAgICAgICAgICAgYm9yZGVyUmlnaHRDb2xvcjogeyB0 aGVtZUtleTogInBhbGV0dGUiIH0sDQogICAgICAgICAgICAgIGJvcmRlckJvdHRvbUNvbG9y OiB7IHRoZW1lS2V5OiAicGFsZXR0ZSIgfSwNCiAgICAgICAgICAgICAgYm9yZGVyTGVmdENv bG9yOiB7IHRoZW1lS2V5OiAicGFsZXR0ZSIgfSwNCiAgICAgICAgICAgICAgYm9yZGVyUmFk aXVzOiB7IHRoZW1lS2V5OiAic2hhcGUuYm9yZGVyUmFkaXVzIiwgc3R5bGU6IER0IH0sDQog ICAgICAgICAgICAgIGNvbG9yOiB7IHRoZW1lS2V5OiAicGFsZXR0ZSIsIHRyYW5zZm9ybTog SHQgfSwNCiAgICAgICAgICAgICAgYmdjb2xvcjogeyB0aGVtZUtleTogInBhbGV0dGUiLCBj c3NQcm9wZXJ0eTogImJhY2tncm91bmRDb2xvciIsIHRyYW5zZm9ybTogSHQgfSwNCiAgICAg ICAgICAgICAgYmFja2dyb3VuZENvbG9yOiB7IHRoZW1lS2V5OiAicGFsZXR0ZSIsIHRyYW5z Zm9ybTogSHQgfSwNCiAgICAgICAgICAgICAgcDogeyBzdHlsZTogUnQgfSwNCiAgICAgICAg ICAgICAgcHQ6IHsgc3R5bGU6IFJ0IH0sDQogICAgICAgICAgICAgIHByOiB7IHN0eWxlOiBS dCB9LA0KICAgICAgICAgICAgICBwYjogeyBzdHlsZTogUnQgfSwNCiAgICAgICAgICAgICAg cGw6IHsgc3R5bGU6IFJ0IH0sDQogICAgICAgICAgICAgIHB4OiB7IHN0eWxlOiBSdCB9LA0K ICAgICAgICAgICAgICBweTogeyBzdHlsZTogUnQgfSwNCiAgICAgICAgICAgICAgcGFkZGlu ZzogeyBzdHlsZTogUnQgfSwNCiAgICAgICAgICAgICAgcGFkZGluZ1RvcDogeyBzdHlsZTog UnQgfSwNCiAgICAgICAgICAgICAgcGFkZGluZ1JpZ2h0OiB7IHN0eWxlOiBSdCB9LA0KICAg ICAgICAgICAgICBwYWRkaW5nQm90dG9tOiB7IHN0eWxlOiBSdCB9LA0KICAgICAgICAgICAg ICBwYWRkaW5nTGVmdDogeyBzdHlsZTogUnQgfSwNCiAgICAgICAgICAgICAgcGFkZGluZ1g6 IHsgc3R5bGU6IFJ0IH0sDQogICAgICAgICAgICAgIHBhZGRpbmdZOiB7IHN0eWxlOiBSdCB9 LA0KICAgICAgICAgICAgICBwYWRkaW5nSW5saW5lOiB7IHN0eWxlOiBSdCB9LA0KICAgICAg ICAgICAgICBwYWRkaW5nSW5saW5lU3RhcnQ6IHsgc3R5bGU6IFJ0IH0sDQogICAgICAgICAg ICAgIHBhZGRpbmdJbmxpbmVFbmQ6IHsgc3R5bGU6IFJ0IH0sDQogICAgICAgICAgICAgIHBh ZGRpbmdCbG9jazogeyBzdHlsZTogUnQgfSwNCiAgICAgICAgICAgICAgcGFkZGluZ0Jsb2Nr U3RhcnQ6IHsgc3R5bGU6IFJ0IH0sDQogICAgICAgICAgICAgIHBhZGRpbmdCbG9ja0VuZDog eyBzdHlsZTogUnQgfSwNCiAgICAgICAgICAgICAgbTogeyBzdHlsZTogQ3QgfSwNCiAgICAg ICAgICAgICAgbXQ6IHsgc3R5bGU6IEN0IH0sDQogICAgICAgICAgICAgIG1yOiB7IHN0eWxl OiBDdCB9LA0KICAgICAgICAgICAgICBtYjogeyBzdHlsZTogQ3QgfSwNCiAgICAgICAgICAg ICAgbWw6IHsgc3R5bGU6IEN0IH0sDQogICAgICAgICAgICAgIG14OiB7IHN0eWxlOiBDdCB9 LA0KICAgICAgICAgICAgICBteTogeyBzdHlsZTogQ3QgfSwNCiAgICAgICAgICAgICAgbWFy Z2luOiB7IHN0eWxlOiBDdCB9LA0KICAgICAgICAgICAgICBtYXJnaW5Ub3A6IHsgc3R5bGU6 IEN0IH0sDQogICAgICAgICAgICAgIG1hcmdpblJpZ2h0OiB7IHN0eWxlOiBDdCB9LA0KICAg ICAgICAgICAgICBtYXJnaW5Cb3R0b206IHsgc3R5bGU6IEN0IH0sDQogICAgICAgICAgICAg IG1hcmdpbkxlZnQ6IHsgc3R5bGU6IEN0IH0sDQogICAgICAgICAgICAgIG1hcmdpblg6IHsg c3R5bGU6IEN0IH0sDQogICAgICAgICAgICAgIG1hcmdpblk6IHsgc3R5bGU6IEN0IH0sDQog ICAgICAgICAgICAgIG1hcmdpbklubGluZTogeyBzdHlsZTogQ3QgfSwNCiAgICAgICAgICAg ICAgbWFyZ2luSW5saW5lU3RhcnQ6IHsgc3R5bGU6IEN0IH0sDQogICAgICAgICAgICAgIG1h cmdpbklubGluZUVuZDogeyBzdHlsZTogQ3QgfSwNCiAgICAgICAgICAgICAgbWFyZ2luQmxv Y2s6IHsgc3R5bGU6IEN0IH0sDQogICAgICAgICAgICAgIG1hcmdpbkJsb2NrU3RhcnQ6IHsg c3R5bGU6IEN0IH0sDQogICAgICAgICAgICAgIG1hcmdpbkJsb2NrRW5kOiB7IHN0eWxlOiBD dCB9LA0KICAgICAgICAgICAgICBkaXNwbGF5UHJpbnQ6IHsgY3NzUHJvcGVydHk6ICExLCB0 cmFuc2Zvcm06IChlKSA9PiAoeyAiQG1lZGlhIHByaW50IjogeyBkaXNwbGF5OiBlIH0gfSkg fSwNCiAgICAgICAgICAgICAgZGlzcGxheToge30sDQogICAgICAgICAgICAgIG92ZXJmbG93 OiB7fSwNCiAgICAgICAgICAgICAgdGV4dE92ZXJmbG93OiB7fSwNCiAgICAgICAgICAgICAg dmlzaWJpbGl0eToge30sDQogICAgICAgICAgICAgIHdoaXRlU3BhY2U6IHt9LA0KICAgICAg ICAgICAgICBmbGV4QmFzaXM6IHt9LA0KICAgICAgICAgICAgICBmbGV4RGlyZWN0aW9uOiB7 fSwNCiAgICAgICAgICAgICAgZmxleFdyYXA6IHt9LA0KICAgICAgICAgICAgICBqdXN0aWZ5 Q29udGVudDoge30sDQogICAgICAgICAgICAgIGFsaWduSXRlbXM6IHt9LA0KICAgICAgICAg ICAgICBhbGlnbkNvbnRlbnQ6IHt9LA0KICAgICAgICAgICAgICBvcmRlcjoge30sDQogICAg ICAgICAgICAgIGZsZXg6IHt9LA0KICAgICAgICAgICAgICBmbGV4R3Jvdzoge30sDQogICAg ICAgICAgICAgIGZsZXhTaHJpbms6IHt9LA0KICAgICAgICAgICAgICBhbGlnblNlbGY6IHt9 LA0KICAgICAgICAgICAgICBqdXN0aWZ5SXRlbXM6IHt9LA0KICAgICAgICAgICAgICBqdXN0 aWZ5U2VsZjoge30sDQogICAgICAgICAgICAgIGdhcDogeyBzdHlsZTogVXQgfSwNCiAgICAg ICAgICAgICAgcm93R2FwOiB7IHN0eWxlOiBWdCB9LA0KICAgICAgICAgICAgICBjb2x1bW5H YXA6IHsgc3R5bGU6IFd0IH0sDQogICAgICAgICAgICAgIGdyaWRDb2x1bW46IHt9LA0KICAg ICAgICAgICAgICBncmlkUm93OiB7fSwNCiAgICAgICAgICAgICAgZ3JpZEF1dG9GbG93OiB7 fSwNCiAgICAgICAgICAgICAgZ3JpZEF1dG9Db2x1bW5zOiB7fSwNCiAgICAgICAgICAgICAg Z3JpZEF1dG9Sb3dzOiB7fSwNCiAgICAgICAgICAgICAgZ3JpZFRlbXBsYXRlQ29sdW1uczog e30sDQogICAgICAgICAgICAgIGdyaWRUZW1wbGF0ZVJvd3M6IHt9LA0KICAgICAgICAgICAg ICBncmlkVGVtcGxhdGVBcmVhczoge30sDQogICAgICAgICAgICAgIGdyaWRBcmVhOiB7fSwN CiAgICAgICAgICAgICAgcG9zaXRpb246IHt9LA0KICAgICAgICAgICAgICB6SW5kZXg6IHsg dGhlbWVLZXk6ICJ6SW5kZXgiIH0sDQogICAgICAgICAgICAgIHRvcDoge30sDQogICAgICAg ICAgICAgIHJpZ2h0OiB7fSwNCiAgICAgICAgICAgICAgYm90dG9tOiB7fSwNCiAgICAgICAg ICAgICAgbGVmdDoge30sDQogICAgICAgICAgICAgIGJveFNoYWRvdzogeyB0aGVtZUtleTog InNoYWRvd3MiIH0sDQogICAgICAgICAgICAgIHdpZHRoOiB7IHRyYW5zZm9ybTogcXQgfSwN CiAgICAgICAgICAgICAgbWF4V2lkdGg6IHsgc3R5bGU6IEt0IH0sDQogICAgICAgICAgICAg IG1pbldpZHRoOiB7IHRyYW5zZm9ybTogcXQgfSwNCiAgICAgICAgICAgICAgaGVpZ2h0OiB7 IHRyYW5zZm9ybTogcXQgfSwNCiAgICAgICAgICAgICAgbWF4SGVpZ2h0OiB7IHRyYW5zZm9y bTogcXQgfSwNCiAgICAgICAgICAgICAgbWluSGVpZ2h0OiB7IHRyYW5zZm9ybTogcXQgfSwN CiAgICAgICAgICAgICAgYm94U2l6aW5nOiB7fSwNCiAgICAgICAgICAgICAgZm9udEZhbWls eTogeyB0aGVtZUtleTogInR5cG9ncmFwaHkiIH0sDQogICAgICAgICAgICAgIGZvbnRTaXpl OiB7IHRoZW1lS2V5OiAidHlwb2dyYXBoeSIgfSwNCiAgICAgICAgICAgICAgZm9udFN0eWxl OiB7IHRoZW1lS2V5OiAidHlwb2dyYXBoeSIgfSwNCiAgICAgICAgICAgICAgZm9udFdlaWdo dDogeyB0aGVtZUtleTogInR5cG9ncmFwaHkiIH0sDQogICAgICAgICAgICAgIGxldHRlclNw YWNpbmc6IHt9LA0KICAgICAgICAgICAgICB0ZXh0VHJhbnNmb3JtOiB7fSwNCiAgICAgICAg ICAgICAgbGluZUhlaWdodDoge30sDQogICAgICAgICAgICAgIHRleHRBbGlnbjoge30sDQog ICAgICAgICAgICAgIHR5cG9ncmFwaHk6IHsgY3NzUHJvcGVydHk6ICExLCB0aGVtZUtleTog InR5cG9ncmFwaHkiIH0sDQogICAgICAgICAgICB9KTsNCiAgICAgICAgY29uc3QgSnQgPSAo ZnVuY3Rpb24gKCkgew0KICAgICAgICAgIGZ1bmN0aW9uIGUoZSwgdCwgbiwgcikgew0KICAg ICAgICAgICAgY29uc3QgbyA9IHsgW2VdOiB0LCB0aGVtZTogbiB9LA0KICAgICAgICAgICAg ICBhID0gcltlXTsNCiAgICAgICAgICAgIGlmICghYSkgcmV0dXJuIHsgW2VdOiB0IH07DQog ICAgICAgICAgICBjb25zdCB7IGNzc1Byb3BlcnR5OiBpID0gZSwgdGhlbWVLZXk6IGwsIHRy YW5zZm9ybTogcywgc3R5bGU6IHUgfSA9IGE7DQogICAgICAgICAgICBpZiAobnVsbCA9PSB0 KSByZXR1cm4gbnVsbDsNCiAgICAgICAgICAgIGlmICgidHlwb2dyYXBoeSIgPT09IGwgJiYg ImluaGVyaXQiID09PSB0KSByZXR1cm4geyBbZV06IHQgfTsNCiAgICAgICAgICAgIGNvbnN0 IGMgPSB1dChuLCBsKSB8fCB7fTsNCiAgICAgICAgICAgIGlmICh1KSByZXR1cm4gdShvKTsN CiAgICAgICAgICAgIHJldHVybiBvdChvLCB0LCAodCkgPT4gew0KICAgICAgICAgICAgICBs ZXQgbiA9IGN0KGMsIHMsIHQpOw0KICAgICAgICAgICAgICByZXR1cm4gdCA9PT0gbiAmJiAi c3RyaW5nIiA9PT0gdHlwZW9mIHQgJiYgKG4gPSBjdChjLCBzLCAiIi5jb25jYXQoZSkuY29u Y2F0KCJkZWZhdWx0IiA9PT0gdCA/ICIiIDogc3QodCkpLCB0KSksICExID09PSBpID8gbiA6 IHsgW2ldOiBuIH07DQogICAgICAgICAgICB9KTsNCiAgICAgICAgICB9DQogICAgICAgICAg cmV0dXJuIGZ1bmN0aW9uIHQobikgew0KICAgICAgICAgICAgdmFyIHI7DQogICAgICAgICAg ICBjb25zdCB7IHN4OiBvLCB0aGVtZTogYSA9IHt9IH0gPSBuIHx8IHt9Ow0KICAgICAgICAg ICAgaWYgKCFvKSByZXR1cm4gbnVsbDsNCiAgICAgICAgICAgIGNvbnN0IGkgPSBudWxsICE9 IChyID0gYS51bnN0YWJsZV9zeENvbmZpZykgPyByIDogWnQ7DQogICAgICAgICAgICBmdW5j dGlvbiBsKG4pIHsNCiAgICAgICAgICAgICAgbGV0IHIgPSBuOw0KICAgICAgICAgICAgICBp ZiAoImZ1bmN0aW9uIiA9PT0gdHlwZW9mIG4pIHIgPSBuKGEpOw0KICAgICAgICAgICAgICBl bHNlIGlmICgib2JqZWN0IiAhPT0gdHlwZW9mIG4pIHJldHVybiBuOw0KICAgICAgICAgICAg ICBpZiAoIXIpIHJldHVybiBudWxsOw0KICAgICAgICAgICAgICBjb25zdCBvID0gYXQoYS5i cmVha3BvaW50cyksDQogICAgICAgICAgICAgICAgbCA9IE9iamVjdC5rZXlzKG8pOw0KICAg ICAgICAgICAgICBsZXQgcyA9IG87DQogICAgICAgICAgICAgIHJldHVybiAoDQogICAgICAg ICAgICAgICAgT2JqZWN0LmtleXMocikuZm9yRWFjaCgobikgPT4gew0KICAgICAgICAgICAg ICAgICAgY29uc3QgbyA9ICgobCA9IHJbbl0pLCAodSA9IGEpLCAiZnVuY3Rpb24iID09PSB0 eXBlb2YgbCA/IGwodSkgOiBsKTsNCiAgICAgICAgICAgICAgICAgIHZhciBsLCB1Ow0KICAg ICAgICAgICAgICAgICAgaWYgKG51bGwgIT09IG8gJiYgdm9pZCAwICE9PSBvKQ0KICAgICAg ICAgICAgICAgICAgICBpZiAoIm9iamVjdCIgPT09IHR5cGVvZiBvKQ0KICAgICAgICAgICAg ICAgICAgICAgIGlmIChpW25dKSBzID0gZnQocywgZShuLCBvLCBhLCBpKSk7DQogICAgICAg ICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBl ID0gb3QoeyB0aGVtZTogYSB9LCBvLCAoZSkgPT4gKHsgW25dOiBlIH0pKTsNCiAgICAgICAg ICAgICAgICAgICAgICAgICEoZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICAg ICAgICBmb3IgKHZhciBlID0gYXJndW1lbnRzLmxlbmd0aCwgdCA9IG5ldyBBcnJheShlKSwg biA9IDA7IG4gPCBlOyBuKyspIHRbbl0gPSBhcmd1bWVudHNbbl07DQogICAgICAgICAgICAg ICAgICAgICAgICAgIGNvbnN0IHIgPSB0LnJlZHVjZSgoZSwgdCkgPT4gZS5jb25jYXQoT2Jq ZWN0LmtleXModCkpLCBbXSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbyA9IG5l dyBTZXQocik7DQogICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0LmV2ZXJ5KChl KSA9PiBvLnNpemUgPT09IE9iamVjdC5rZXlzKGUpLmxlbmd0aCk7DQogICAgICAgICAgICAg ICAgICAgICAgICB9KShlLCBvKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICA/IChzID0g ZnQocywgZSkpDQogICAgICAgICAgICAgICAgICAgICAgICAgIDogKHNbbl0gPSB0KHsgc3g6 IG8sIHRoZW1lOiBhIH0pKTsNCiAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAg ICAgICAgICAgIGVsc2UgcyA9IGZ0KHMsIGUobiwgbywgYSwgaSkpOw0KICAgICAgICAgICAg ICAgIH0pLA0KICAgICAgICAgICAgICAgIGl0KGwsIHMpDQogICAgICAgICAgICAgICk7DQog ICAgICAgICAgICB9DQogICAgICAgICAgICByZXR1cm4gQXJyYXkuaXNBcnJheShvKSA/IG8u bWFwKGwpIDogbChvKTsNCiAgICAgICAgICB9Ow0KICAgICAgICB9KSgpOw0KICAgICAgICBK dC5maWx0ZXJQcm9wcyA9IFsic3giXTsNCiAgICAgICAgY29uc3QgZW4gPSBKdCwNCiAgICAg ICAgICB0biA9IFsiYnJlYWtwb2ludHMiLCAicGFsZXR0ZSIsICJzcGFjaW5nIiwgInNoYXBl Il07DQogICAgICAgIGNvbnN0IG5uID0gZnVuY3Rpb24gKCkgew0KICAgICAgICAgIGxldCBl ID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgdm9pZCAwICE9PSBhcmd1bWVudHNbMF0gPyBh cmd1bWVudHNbMF0gOiB7fTsNCiAgICAgICAgICBjb25zdCB7IGJyZWFrcG9pbnRzOiB0ID0g e30sIHBhbGV0dGU6IG4gPSB7fSwgc3BhY2luZzogciwgc2hhcGU6IG8gPSB7fSB9ID0gZSwN CiAgICAgICAgICAgIGwgPSBhKGUsIHRuKSwNCiAgICAgICAgICAgIHMgPSAoZnVuY3Rpb24g KGUpIHsNCiAgICAgICAgICAgICAgY29uc3QgeyB2YWx1ZXM6IHQgPSB7IHhzOiAwLCBzbTog NjAwLCBtZDogOTAwLCBsZzogMTIwMCwgeGw6IDE1MzYgfSwgdW5pdDogbiA9ICJweCIsIHN0 ZXA6IHIgPSA1IH0gPSBlLA0KICAgICAgICAgICAgICAgIG8gPSBhKGUsIEplKSwNCiAgICAg ICAgICAgICAgICBsID0gZXQodCksDQogICAgICAgICAgICAgICAgcyA9IE9iamVjdC5rZXlz KGwpOw0KICAgICAgICAgICAgICBmdW5jdGlvbiB1KGUpIHsNCiAgICAgICAgICAgICAgICBj b25zdCByID0gIm51bWJlciIgPT09IHR5cGVvZiB0W2VdID8gdFtlXSA6IGU7DQogICAgICAg ICAgICAgICAgcmV0dXJuICJAbWVkaWEgKG1pbi13aWR0aDoiLmNvbmNhdChyKS5jb25jYXQo biwgIikiKTsNCiAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICBmdW5jdGlvbiBjKGUp IHsNCiAgICAgICAgICAgICAgICBjb25zdCBvID0gIm51bWJlciIgPT09IHR5cGVvZiB0W2Vd ID8gdFtlXSA6IGU7DQogICAgICAgICAgICAgICAgcmV0dXJuICJAbWVkaWEgKG1heC13aWR0 aDoiLmNvbmNhdChvIC0gciAvIDEwMCkuY29uY2F0KG4sICIpIik7DQogICAgICAgICAgICAg IH0NCiAgICAgICAgICAgICAgZnVuY3Rpb24gZChlLCBvKSB7DQogICAgICAgICAgICAgICAg Y29uc3QgYSA9IHMuaW5kZXhPZihvKTsNCiAgICAgICAgICAgICAgICByZXR1cm4gIkBtZWRp YSAobWluLXdpZHRoOiIuY29uY2F0KCJudW1iZXIiID09PSB0eXBlb2YgdFtlXSA/IHRbZV0g OiBlKS5jb25jYXQobiwgIikgYW5kICIpICsgIihtYXgtd2lkdGg6Ii5jb25jYXQoKC0xICE9 PSBhICYmICJudW1iZXIiID09PSB0eXBlb2YgdFtzW2FdXSA/IHRbc1thXV0gOiBvKSAtIHIg LyAxMDApLmNvbmNhdChuLCAiKSIpOw0KICAgICAgICAgICAgICB9DQogICAgICAgICAgICAg IHJldHVybiBpKA0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgIGtleXM6 IHMsDQogICAgICAgICAgICAgICAgICB2YWx1ZXM6IGwsDQogICAgICAgICAgICAgICAgICB1 cDogdSwNCiAgICAgICAgICAgICAgICAgIGRvd246IGMsDQogICAgICAgICAgICAgICAgICBi ZXR3ZWVuOiBkLA0KICAgICAgICAgICAgICAgICAgb25seTogZnVuY3Rpb24gKGUpIHsNCiAg ICAgICAgICAgICAgICAgICAgcmV0dXJuIHMuaW5kZXhPZihlKSArIDEgPCBzLmxlbmd0aCA/ IGQoZSwgc1tzLmluZGV4T2YoZSkgKyAxXSkgOiB1KGUpOw0KICAgICAgICAgICAgICAgICAg fSwNCiAgICAgICAgICAgICAgICAgIG5vdDogZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAg ICAgICAgICAgY29uc3QgdCA9IHMuaW5kZXhPZihlKTsNCiAgICAgICAgICAgICAgICAgICAg cmV0dXJuIDAgPT09IHQgPyB1KHNbMV0pIDogdCA9PT0gcy5sZW5ndGggLSAxID8gYyhzW3Rd KSA6IGQoZSwgc1tzLmluZGV4T2YoZSkgKyAxXSkucmVwbGFjZSgiQG1lZGlhIiwgIkBtZWRp YSBub3QgYWxsIGFuZCIpOw0KICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAg ICAgIHVuaXQ6IG4sDQogICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICBvDQog ICAgICAgICAgICAgICk7DQogICAgICAgICAgICB9KSh0KSwNCiAgICAgICAgICAgIHUgPSAo ZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICBsZXQgZSA9IGFyZ3VtZW50cy5sZW5ndGgg PiAwICYmIHZvaWQgMCAhPT0gYXJndW1lbnRzWzBdID8gYXJndW1lbnRzWzBdIDogODsNCiAg ICAgICAgICAgICAgaWYgKGUubXVpKSByZXR1cm4gZTsNCiAgICAgICAgICAgICAgY29uc3Qg dCA9IHh0KHsgc3BhY2luZzogZSB9KSwNCiAgICAgICAgICAgICAgICBuID0gZnVuY3Rpb24g KCkgew0KICAgICAgICAgICAgICAgICAgZm9yICh2YXIgZSA9IGFyZ3VtZW50cy5sZW5ndGgs IG4gPSBuZXcgQXJyYXkoZSksIHIgPSAwOyByIDwgZTsgcisrKSBuW3JdID0gYXJndW1lbnRz W3JdOw0KICAgICAgICAgICAgICAgICAgcmV0dXJuICgwID09PSBuLmxlbmd0aCA/IFsxXSA6 IG4pDQogICAgICAgICAgICAgICAgICAgIC5tYXAoKGUpID0+IHsNCiAgICAgICAgICAgICAg ICAgICAgICBjb25zdCBuID0gdChlKTsNCiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g Im51bWJlciIgPT09IHR5cGVvZiBuID8gIiIuY29uY2F0KG4sICJweCIpIDogbjsNCiAgICAg ICAgICAgICAgICAgICAgfSkNCiAgICAgICAgICAgICAgICAgICAgLmpvaW4oIiAiKTsNCiAg ICAgICAgICAgICAgICB9Ow0KICAgICAgICAgICAgICByZXR1cm4gKG4ubXVpID0gITApLCBu Ow0KICAgICAgICAgICAgfSkocik7DQogICAgICAgICAgbGV0IGMgPSBaZSh7IGJyZWFrcG9p bnRzOiBzLCBkaXJlY3Rpb246ICJsdHIiLCBjb21wb25lbnRzOiB7fSwgcGFsZXR0ZTogaSh7 IG1vZGU6ICJsaWdodCIgfSwgbiksIHNwYWNpbmc6IHUsIHNoYXBlOiBpKHt9LCB0dCwgbykg fSwgbCk7DQogICAgICAgICAgZm9yICh2YXIgZCA9IGFyZ3VtZW50cy5sZW5ndGgsIGYgPSBu ZXcgQXJyYXkoZCA+IDEgPyBkIC0gMSA6IDApLCBwID0gMTsgcCA8IGQ7IHArKykgZltwIC0g MV0gPSBhcmd1bWVudHNbcF07DQogICAgICAgICAgcmV0dXJuICgNCiAgICAgICAgICAgIChj ID0gZi5yZWR1Y2UoKGUsIHQpID0+IFplKGUsIHQpLCBjKSksDQogICAgICAgICAgICAoYy51 bnN0YWJsZV9zeENvbmZpZyA9IGkoe30sIFp0LCBudWxsID09IGwgPyB2b2lkIDAgOiBsLnVu c3RhYmxlX3N4Q29uZmlnKSksDQogICAgICAgICAgICAoYy51bnN0YWJsZV9zeCA9IGZ1bmN0 aW9uIChlKSB7DQogICAgICAgICAgICAgIHJldHVybiBlbih7IHN4OiBlLCB0aGVtZTogdGhp cyB9KTsNCiAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAgYw0KICAgICAgICAgICk7DQog ICAgICAgIH0sDQogICAgICAgICAgcm4gPSBbInZhcmlhbnQiXTsNCiAgICAgICAgZnVuY3Rp b24gb24oZSkgew0KICAgICAgICAgIHJldHVybiAwID09PSBlLmxlbmd0aDsNCiAgICAgICAg fQ0KICAgICAgICBmdW5jdGlvbiBhbihlKSB7DQogICAgICAgICAgY29uc3QgeyB2YXJpYW50 OiB0IH0gPSBlLA0KICAgICAgICAgICAgbiA9IGEoZSwgcm4pOw0KICAgICAgICAgIGxldCBy ID0gdCB8fCAiIjsNCiAgICAgICAgICByZXR1cm4gKA0KICAgICAgICAgICAgT2JqZWN0Lmtl eXMobikNCiAgICAgICAgICAgICAgLnNvcnQoKQ0KICAgICAgICAgICAgICAuZm9yRWFjaCgo dCkgPT4gew0KICAgICAgICAgICAgICAgIHIgKz0gImNvbG9yIiA9PT0gdCA/IChvbihyKSA/ IGVbdF0gOiBzdChlW3RdKSkgOiAiIi5jb25jYXQob24ocikgPyB0IDogc3QodCkpLmNvbmNh dChzdChlW3RdLnRvU3RyaW5nKCkpKTsNCiAgICAgICAgICAgICAgfSksDQogICAgICAgICAg ICByDQogICAgICAgICAgKTsNCiAgICAgICAgfQ0KICAgICAgICBjb25zdCBsbiA9IFsibmFt ZSIsICJzbG90IiwgInNraXBWYXJpYW50c1Jlc29sdmVyIiwgInNraXBTeCIsICJvdmVycmlk ZXNSZXNvbHZlciJdOw0KICAgICAgICBjb25zdCBzbiA9IChlKSA9PiB7DQogICAgICAgICAg Y29uc3QgdCA9IHt9Ow0KICAgICAgICAgIHJldHVybiAoDQogICAgICAgICAgICBlICYmDQog ICAgICAgICAgICBlLmZvckVhY2goKGUpID0+IHsNCiAgICAgICAgICAgICAgY29uc3QgbiA9 IGFuKGUucHJvcHMpOw0KICAgICAgICAgICAgICB0W25dID0gZS5zdHlsZTsNCiAgICAgICAg ICAgIH0pLA0KICAgICAgICAgICAgdA0KICAgICAgICAgICk7DQogICAgICAgIH0sDQogICAg ICAgICAgdW4gPSAoZSwgdCwgbikgPT4gew0KICAgICAgICAgICAgY29uc3QgeyBvd25lclN0 YXRlOiByID0ge30gfSA9IGUsDQogICAgICAgICAgICAgIG8gPSBbXTsNCiAgICAgICAgICAg IHJldHVybiAoDQogICAgICAgICAgICAgIG4gJiYNCiAgICAgICAgICAgICAgbi5mb3JFYWNo KChuKSA9PiB7DQogICAgICAgICAgICAgICAgbGV0IGEgPSAhMDsNCiAgICAgICAgICAgICAg ICBPYmplY3Qua2V5cyhuLnByb3BzKS5mb3JFYWNoKCh0KSA9PiB7DQogICAgICAgICAgICAg ICAgICByW3RdICE9PSBuLnByb3BzW3RdICYmIGVbdF0gIT09IG4ucHJvcHNbdF0gJiYgKGEg PSAhMSk7DQogICAgICAgICAgICAgICAgfSksDQogICAgICAgICAgICAgICAgICBhICYmIG8u cHVzaCh0W2FuKG4ucHJvcHMpXSk7DQogICAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAg ICBvDQogICAgICAgICAgICApOw0KICAgICAgICAgIH07DQogICAgICAgIGZ1bmN0aW9uIGNu KGUpIHsNCiAgICAgICAgICByZXR1cm4gIm93bmVyU3RhdGUiICE9PSBlICYmICJ0aGVtZSIg IT09IGUgJiYgInN4IiAhPT0gZSAmJiAiYXMiICE9PSBlOw0KICAgICAgICB9DQogICAgICAg IGNvbnN0IGRuID0gbm4oKSwNCiAgICAgICAgICBmbiA9IChlKSA9PiAoZSA/IGUuY2hhckF0 KDApLnRvTG93ZXJDYXNlKCkgKyBlLnNsaWNlKDEpIDogZSk7DQogICAgICAgIGZ1bmN0aW9u IHBuKGUpIHsNCiAgICAgICAgICBsZXQgeyBkZWZhdWx0VGhlbWU6IHQsIHRoZW1lOiBuLCB0 aGVtZUlkOiByIH0gPSBlOw0KICAgICAgICAgIHJldHVybiAobyA9IG4pLCAwID09PSBPYmpl Y3Qua2V5cyhvKS5sZW5ndGggPyB0IDogbltyXSB8fCBuOw0KICAgICAgICAgIHZhciBvOw0K ICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIGhuKGUpIHsNCiAgICAgICAgICByZXR1cm4g ZSA/ICh0LCBuKSA9PiBuW2VdIDogbnVsbDsNCiAgICAgICAgfQ0KICAgICAgICBjb25zdCBt biA9IChlKSA9PiB7DQogICAgICAgICAgbGV0IHsgc3R5bGVkQXJnOiB0LCBwcm9wczogbiwg ZGVmYXVsdFRoZW1lOiByLCB0aGVtZUlkOiBvIH0gPSBlOw0KICAgICAgICAgIGNvbnN0IGEg PSB0KGkoe30sIG4sIHsgdGhlbWU6IHBuKGkoe30sIG4sIHsgZGVmYXVsdFRoZW1lOiByLCB0 aGVtZUlkOiBvIH0pKSB9KSk7DQogICAgICAgICAgbGV0IGw7DQogICAgICAgICAgaWYgKChh ICYmIGEudmFyaWFudHMgJiYgKChsID0gYS52YXJpYW50cyksIGRlbGV0ZSBhLnZhcmlhbnRz KSwgbCkpIHsNCiAgICAgICAgICAgIHJldHVybiBbYSwgLi4udW4obiwgc24obCksIGwpXTsN CiAgICAgICAgICB9DQogICAgICAgICAgcmV0dXJuIGE7DQogICAgICAgIH07DQogICAgICAg IGZ1bmN0aW9uIGduKCkgew0KICAgICAgICAgIGxldCBlID0gYXJndW1lbnRzLmxlbmd0aCA+ IDAgJiYgdm9pZCAwICE9PSBhcmd1bWVudHNbMF0gPyBhcmd1bWVudHNbMF0gOiB7fTsNCiAg ICAgICAgICBjb25zdCB7IHRoZW1lSWQ6IHQsIGRlZmF1bHRUaGVtZTogbiA9IGRuLCByb290 U2hvdWxkRm9yd2FyZFByb3A6IHIgPSBjbiwgc2xvdFNob3VsZEZvcndhcmRQcm9wOiBvID0g Y24gfSA9IGUsDQogICAgICAgICAgICBsID0gKGUpID0+IGVuKGkoe30sIGUsIHsgdGhlbWU6 IHBuKGkoe30sIGUsIHsgZGVmYXVsdFRoZW1lOiBuLCB0aGVtZUlkOiB0IH0pKSB9KSk7DQog ICAgICAgICAgcmV0dXJuICgNCiAgICAgICAgICAgIChsLl9fbXVpX3N5c3RlbVN4ID0gITAp LA0KICAgICAgICAgICAgZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgICAgbGV0IHMgPSBh cmd1bWVudHMubGVuZ3RoID4gMSAmJiB2b2lkIDAgIT09IGFyZ3VtZW50c1sxXSA/IGFyZ3Vt ZW50c1sxXSA6IHt9Ow0KICAgICAgICAgICAgICAoKGUsIHQpID0+IHsNCiAgICAgICAgICAg ICAgICBBcnJheS5pc0FycmF5KGUuX19lbW90aW9uX3N0eWxlcykgJiYgKGUuX19lbW90aW9u X3N0eWxlcyA9IHQoZS5fX2Vtb3Rpb25fc3R5bGVzKSk7DQogICAgICAgICAgICAgIH0pKGUs IChlKSA9PiBlLmZpbHRlcigoZSkgPT4gIShudWxsICE9IGUgJiYgZS5fX211aV9zeXN0ZW1T eCkpKTsNCiAgICAgICAgICAgICAgY29uc3QgeyBuYW1lOiB1LCBzbG90OiBjLCBza2lwVmFy aWFudHNSZXNvbHZlcjogZCwgc2tpcFN4OiBmLCBvdmVycmlkZXNSZXNvbHZlcjogcCA9IGhu KGZuKGMpKSB9ID0gcywNCiAgICAgICAgICAgICAgICBoID0gYShzLCBsbiksDQogICAgICAg ICAgICAgICAgbSA9IHZvaWQgMCAhPT0gZCA/IGQgOiAoYyAmJiAiUm9vdCIgIT09IGMgJiYg InJvb3QiICE9PSBjKSB8fCAhMSwNCiAgICAgICAgICAgICAgICBnID0gZiB8fCAhMTsNCiAg ICAgICAgICAgICAgbGV0IHYgPSBjbjsNCiAgICAgICAgICAgICAgIlJvb3QiID09PSBjIHx8 ICJyb290IiA9PT0gYw0KICAgICAgICAgICAgICAgID8gKHYgPSByKQ0KICAgICAgICAgICAg ICAgIDogYw0KICAgICAgICAgICAgICAgICAgPyAodiA9IG8pDQogICAgICAgICAgICAgICAg ICA6IChmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gInN0cmlu ZyIgPT09IHR5cGVvZiBlICYmIGUuY2hhckNvZGVBdCgwKSA+IDk2Ow0KICAgICAgICAgICAg ICAgICAgfSkoZSkgJiYgKHYgPSB2b2lkIDApOw0KICAgICAgICAgICAgICBjb25zdCB5ID0g R2UoZSwgaSh7IHNob3VsZEZvcndhcmRQcm9wOiB2LCBsYWJlbDogdW5kZWZpbmVkIH0sIGgp KSwNCiAgICAgICAgICAgICAgICBiID0gZnVuY3Rpb24gKHIpIHsNCiAgICAgICAgICAgICAg ICAgIGZvciAodmFyIG8gPSBhcmd1bWVudHMubGVuZ3RoLCBhID0gbmV3IEFycmF5KG8gPiAx ID8gbyAtIDEgOiAwKSwgcyA9IDE7IHMgPCBvOyBzKyspIGFbcyAtIDFdID0gYXJndW1lbnRz W3NdOw0KICAgICAgICAgICAgICAgICAgY29uc3QgYyA9IGENCiAgICAgICAgICAgICAgICAg ICAgPyBhLm1hcCgoZSkgPT4gew0KICAgICAgICAgICAgICAgICAgICAgIGlmICgiZnVuY3Rp b24iID09PSB0eXBlb2YgZSAmJiBlLl9fZW1vdGlvbl9yZWFsICE9PSBlKSByZXR1cm4gKHIp ID0+IG1uKHsgc3R5bGVkQXJnOiBlLCBwcm9wczogciwgZGVmYXVsdFRoZW1lOiBuLCB0aGVt ZUlkOiB0IH0pOw0KICAgICAgICAgICAgICAgICAgICAgIGlmIChZZShlKSkgew0KICAgICAg ICAgICAgICAgICAgICAgICAgbGV0IHQsDQogICAgICAgICAgICAgICAgICAgICAgICAgIG4g PSBlOw0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICgNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgZSAmJg0KICAgICAgICAgICAgICAgICAgICAgICAgICBlLnZhcmlhbnRz ICYmDQogICAgICAgICAgICAgICAgICAgICAgICAgICgodCA9IGUudmFyaWFudHMpLA0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBuLnZhcmlhbnRzLA0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChuID0gKG4pID0+IHsNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGxldCByID0gZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl dHVybiAoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuKG4sIHNuKHQpLCB0 KS5mb3JFYWNoKChlKSA9PiB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ciA9IFplKHIsIGUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSwNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcg0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSksDQogICAgICAg ICAgICAgICAgICAgICAgICAgIG4NCiAgICAgICAgICAgICAgICAgICAgICAgICk7DQogICAg ICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBlOw0K ICAgICAgICAgICAgICAgICAgICB9KQ0KICAgICAgICAgICAgICAgICAgICA6IFtdOw0KICAg ICAgICAgICAgICAgICAgbGV0IGQgPSByOw0KICAgICAgICAgICAgICAgICAgaWYgKFllKHIp KSB7DQogICAgICAgICAgICAgICAgICAgIGxldCBlOw0KICAgICAgICAgICAgICAgICAgICBy ICYmDQogICAgICAgICAgICAgICAgICAgICAgci52YXJpYW50cyAmJg0KICAgICAgICAgICAg ICAgICAgICAgICgoZSA9IHIudmFyaWFudHMpLA0KICAgICAgICAgICAgICAgICAgICAgICAg ZGVsZXRlIGQudmFyaWFudHMsDQogICAgICAgICAgICAgICAgICAgICAgICAoZCA9ICh0KSA9 PiB7DQogICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuID0gcjsNCiAgICAgICAgICAg ICAgICAgICAgICAgICAgcmV0dXJuICgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1 bih0LCBzbihlKSwgZSkuZm9yRWFjaCgoZSkgPT4gew0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbiA9IFplKG4sIGUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0p LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIG4NCiAgICAgICAgICAgICAgICAgICAg ICAgICAgKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0pKTsNCiAgICAgICAgICAgICAg ICAgIH0gZWxzZSAiZnVuY3Rpb24iID09PSB0eXBlb2YgciAmJiByLl9fZW1vdGlvbl9yZWFs ICE9PSByICYmIChkID0gKGUpID0+IG1uKHsgc3R5bGVkQXJnOiByLCBwcm9wczogZSwgZGVm YXVsdFRoZW1lOiBuLCB0aGVtZUlkOiB0IH0pKTsNCiAgICAgICAgICAgICAgICAgIHUgJiYN CiAgICAgICAgICAgICAgICAgICAgcCAmJg0KICAgICAgICAgICAgICAgICAgICBjLnB1c2go KGUpID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICBjb25zdCByID0gcG4oaSh7fSwgZSwg eyBkZWZhdWx0VGhlbWU6IG4sIHRoZW1lSWQ6IHQgfSkpLA0KICAgICAgICAgICAgICAgICAg ICAgICAgbyA9ICgoZSwgdCkgPT4gKHQuY29tcG9uZW50cyAmJiB0LmNvbXBvbmVudHNbZV0g JiYgdC5jb21wb25lbnRzW2VdLnN0eWxlT3ZlcnJpZGVzID8gdC5jb21wb25lbnRzW2VdLnN0 eWxlT3ZlcnJpZGVzIDogbnVsbCkpKHUsIHIpOw0KICAgICAgICAgICAgICAgICAgICAgIGlm IChvKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0ID0ge307DQogICAgICAg ICAgICAgICAgICAgICAgICByZXR1cm4gKA0KICAgICAgICAgICAgICAgICAgICAgICAgICBP YmplY3QuZW50cmllcyhvKS5mb3JFYWNoKChuKSA9PiB7DQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgbGV0IFtvLCBhXSA9IG47DQogICAgICAgICAgICAgICAgICAgICAgICAgICAg dFtvXSA9ICJmdW5jdGlvbiIgPT09IHR5cGVvZiBhID8gYShpKHt9LCBlLCB7IHRoZW1lOiBy IH0pKSA6IGE7DQogICAgICAgICAgICAgICAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAg ICAgICAgICAgICAgICBwKGUsIHQpDQogICAgICAgICAgICAgICAgICAgICAgICApOw0KICAg ICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVs bDsNCiAgICAgICAgICAgICAgICAgICAgfSksDQogICAgICAgICAgICAgICAgICAgIHUgJiYN CiAgICAgICAgICAgICAgICAgICAgIW0gJiYNCiAgICAgICAgICAgICAgICAgICAgYy5wdXNo KChlKSA9PiB7DQogICAgICAgICAgICAgICAgICAgICAgY29uc3QgciA9IHBuKGkoe30sIGUs IHsgZGVmYXVsdFRoZW1lOiBuLCB0aGVtZUlkOiB0IH0pKTsNCiAgICAgICAgICAgICAgICAg ICAgICByZXR1cm4gKChlLCB0LCBuLCByKSA9PiB7DQogICAgICAgICAgICAgICAgICAgICAg ICB2YXIgbzsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGEgPSBudWxsID09IG4g fHwgbnVsbCA9PSAobyA9IG4uY29tcG9uZW50cykgfHwgbnVsbCA9PSAobyA9IG9bcl0pID8g dm9pZCAwIDogby52YXJpYW50czsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB1 bihlLCB0LCBhKTsNCiAgICAgICAgICAgICAgICAgICAgICB9KSgNCiAgICAgICAgICAgICAg ICAgICAgICAgIGUsDQogICAgICAgICAgICAgICAgICAgICAgICAoKGUsIHQpID0+IHsNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG4gPSBbXTsNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgcmV0dXJuIHQgJiYgdC5jb21wb25lbnRzICYmIHQuY29tcG9uZW50c1tlXSAm JiB0LmNvbXBvbmVudHNbZV0udmFyaWFudHMgJiYgKG4gPSB0LmNvbXBvbmVudHNbZV0udmFy aWFudHMpLCBzbihuKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0pKHUsIHIpLA0KICAg ICAgICAgICAgICAgICAgICAgICAgciwNCiAgICAgICAgICAgICAgICAgICAgICAgIHUNCiAg ICAgICAgICAgICAgICAgICAgICApOw0KICAgICAgICAgICAgICAgICAgICB9KSwNCiAgICAg ICAgICAgICAgICAgICAgZyB8fCBjLnB1c2gobCk7DQogICAgICAgICAgICAgICAgICBjb25z dCBmID0gYy5sZW5ndGggLSBhLmxlbmd0aDsNCiAgICAgICAgICAgICAgICAgIGlmIChBcnJh eS5pc0FycmF5KHIpICYmIGYgPiAwKSB7DQogICAgICAgICAgICAgICAgICAgIGNvbnN0IGUg PSBuZXcgQXJyYXkoZikuZmlsbCgiIik7DQogICAgICAgICAgICAgICAgICAgIChkID0gWy4u LnIsIC4uLmVdKSwgKGQucmF3ID0gWy4uLnIucmF3LCAuLi5lXSk7DQogICAgICAgICAgICAg ICAgICB9DQogICAgICAgICAgICAgICAgICBjb25zdCBoID0geShkLCAuLi5jKTsNCiAgICAg ICAgICAgICAgICAgIHJldHVybiBlLm11aU5hbWUgJiYgKGgubXVpTmFtZSA9IGUubXVpTmFt ZSksIGg7DQogICAgICAgICAgICAgICAgfTsNCiAgICAgICAgICAgICAgcmV0dXJuIHkud2l0 aENvbmZpZyAmJiAoYi53aXRoQ29uZmlnID0geS53aXRoQ29uZmlnKSwgYjsNCiAgICAgICAg ICAgIH0NCiAgICAgICAgICApOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIHZuKGUs IHQpIHsNCiAgICAgICAgICByZXR1cm4gaSh7IHRvb2xiYXI6IHsgbWluSGVpZ2h0OiA1Niwg W2UudXAoInhzIildOiB7ICJAbWVkaWEgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpIjogeyBt aW5IZWlnaHQ6IDQ4IH0gfSwgW2UudXAoInNtIildOiB7IG1pbkhlaWdodDogNjQgfSB9IH0s IHQpOw0KICAgICAgICB9DQogICAgICAgIGNvbnN0IHluID0geyBibGFjazogIiMwMDAiLCB3 aGl0ZTogIiNmZmYiIH0sDQogICAgICAgICAgYm4gPSB7DQogICAgICAgICAgICA1MDogIiNm YWZhZmEiLA0KICAgICAgICAgICAgMTAwOiAiI2Y1ZjVmNSIsDQogICAgICAgICAgICAyMDA6 ICIjZWVlZWVlIiwNCiAgICAgICAgICAgIDMwMDogIiNlMGUwZTAiLA0KICAgICAgICAgICAg NDAwOiAiI2JkYmRiZCIsDQogICAgICAgICAgICA1MDA6ICIjOWU5ZTllIiwNCiAgICAgICAg ICAgIDYwMDogIiM3NTc1NzUiLA0KICAgICAgICAgICAgNzAwOiAiIzYxNjE2MSIsDQogICAg ICAgICAgICA4MDA6ICIjNDI0MjQyIiwNCiAgICAgICAgICAgIDkwMDogIiMyMTIxMjEiLA0K ICAgICAgICAgICAgQTEwMDogIiNmNWY1ZjUiLA0KICAgICAgICAgICAgQTIwMDogIiNlZWVl ZWUiLA0KICAgICAgICAgICAgQTQwMDogIiNiZGJkYmQiLA0KICAgICAgICAgICAgQTcwMDog IiM2MTYxNjEiLA0KICAgICAgICAgIH0sDQogICAgICAgICAgd24gPSB7DQogICAgICAgICAg ICA1MDogIiNmM2U1ZjUiLA0KICAgICAgICAgICAgMTAwOiAiI2UxYmVlNyIsDQogICAgICAg ICAgICAyMDA6ICIjY2U5M2Q4IiwNCiAgICAgICAgICAgIDMwMDogIiNiYTY4YzgiLA0KICAg ICAgICAgICAgNDAwOiAiI2FiNDdiYyIsDQogICAgICAgICAgICA1MDA6ICIjOWMyN2IwIiwN CiAgICAgICAgICAgIDYwMDogIiM4ZTI0YWEiLA0KICAgICAgICAgICAgNzAwOiAiIzdiMWZh MiIsDQogICAgICAgICAgICA4MDA6ICIjNmExYjlhIiwNCiAgICAgICAgICAgIDkwMDogIiM0 YTE0OGMiLA0KICAgICAgICAgICAgQTEwMDogIiNlYTgwZmMiLA0KICAgICAgICAgICAgQTIw MDogIiNlMDQwZmIiLA0KICAgICAgICAgICAgQTQwMDogIiNkNTAwZjkiLA0KICAgICAgICAg ICAgQTcwMDogIiNhYTAwZmYiLA0KICAgICAgICAgIH0sDQogICAgICAgICAgeG4gPSB7DQog ICAgICAgICAgICA1MDogIiNmZmViZWUiLA0KICAgICAgICAgICAgMTAwOiAiI2ZmY2RkMiIs DQogICAgICAgICAgICAyMDA6ICIjZWY5YTlhIiwNCiAgICAgICAgICAgIDMwMDogIiNlNTcz NzMiLA0KICAgICAgICAgICAgNDAwOiAiI2VmNTM1MCIsDQogICAgICAgICAgICA1MDA6ICIj ZjQ0MzM2IiwNCiAgICAgICAgICAgIDYwMDogIiNlNTM5MzUiLA0KICAgICAgICAgICAgNzAw OiAiI2QzMmYyZiIsDQogICAgICAgICAgICA4MDA6ICIjYzYyODI4IiwNCiAgICAgICAgICAg IDkwMDogIiNiNzFjMWMiLA0KICAgICAgICAgICAgQTEwMDogIiNmZjhhODAiLA0KICAgICAg ICAgICAgQTIwMDogIiNmZjUyNTIiLA0KICAgICAgICAgICAgQTQwMDogIiNmZjE3NDQiLA0K ICAgICAgICAgICAgQTcwMDogIiNkNTAwMDAiLA0KICAgICAgICAgIH0sDQogICAgICAgICAg U24gPSB7DQogICAgICAgICAgICA1MDogIiNmZmYzZTAiLA0KICAgICAgICAgICAgMTAwOiAi I2ZmZTBiMiIsDQogICAgICAgICAgICAyMDA6ICIjZmZjYzgwIiwNCiAgICAgICAgICAgIDMw MDogIiNmZmI3NGQiLA0KICAgICAgICAgICAgNDAwOiAiI2ZmYTcyNiIsDQogICAgICAgICAg ICA1MDA6ICIjZmY5ODAwIiwNCiAgICAgICAgICAgIDYwMDogIiNmYjhjMDAiLA0KICAgICAg ICAgICAgNzAwOiAiI2Y1N2MwMCIsDQogICAgICAgICAgICA4MDA6ICIjZWY2YzAwIiwNCiAg ICAgICAgICAgIDkwMDogIiNlNjUxMDAiLA0KICAgICAgICAgICAgQTEwMDogIiNmZmQxODAi LA0KICAgICAgICAgICAgQTIwMDogIiNmZmFiNDAiLA0KICAgICAgICAgICAgQTQwMDogIiNm ZjkxMDAiLA0KICAgICAgICAgICAgQTcwMDogIiNmZjZkMDAiLA0KICAgICAgICAgIH0sDQog ICAgICAgICAga24gPSB7DQogICAgICAgICAgICA1MDogIiNlM2YyZmQiLA0KICAgICAgICAg ICAgMTAwOiAiI2JiZGVmYiIsDQogICAgICAgICAgICAyMDA6ICIjOTBjYWY5IiwNCiAgICAg ICAgICAgIDMwMDogIiM2NGI1ZjYiLA0KICAgICAgICAgICAgNDAwOiAiIzQyYTVmNSIsDQog ICAgICAgICAgICA1MDA6ICIjMjE5NmYzIiwNCiAgICAgICAgICAgIDYwMDogIiMxZTg4ZTUi LA0KICAgICAgICAgICAgNzAwOiAiIzE5NzZkMiIsDQogICAgICAgICAgICA4MDA6ICIjMTU2 NWMwIiwNCiAgICAgICAgICAgIDkwMDogIiMwZDQ3YTEiLA0KICAgICAgICAgICAgQTEwMDog IiM4MmIxZmYiLA0KICAgICAgICAgICAgQTIwMDogIiM0NDhhZmYiLA0KICAgICAgICAgICAg QTQwMDogIiMyOTc5ZmYiLA0KICAgICAgICAgICAgQTcwMDogIiMyOTYyZmYiLA0KICAgICAg ICAgIH0sDQogICAgICAgICAgRW4gPSB7DQogICAgICAgICAgICA1MDogIiNlMWY1ZmUiLA0K ICAgICAgICAgICAgMTAwOiAiI2IzZTVmYyIsDQogICAgICAgICAgICAyMDA6ICIjODFkNGZh IiwNCiAgICAgICAgICAgIDMwMDogIiM0ZmMzZjciLA0KICAgICAgICAgICAgNDAwOiAiIzI5 YjZmNiIsDQogICAgICAgICAgICA1MDA6ICIjMDNhOWY0IiwNCiAgICAgICAgICAgIDYwMDog IiMwMzliZTUiLA0KICAgICAgICAgICAgNzAwOiAiIzAyODhkMSIsDQogICAgICAgICAgICA4 MDA6ICIjMDI3N2JkIiwNCiAgICAgICAgICAgIDkwMDogIiMwMTU3OWIiLA0KICAgICAgICAg ICAgQTEwMDogIiM4MGQ4ZmYiLA0KICAgICAgICAgICAgQTIwMDogIiM0MGM0ZmYiLA0KICAg ICAgICAgICAgQTQwMDogIiMwMGIwZmYiLA0KICAgICAgICAgICAgQTcwMDogIiMwMDkxZWEi LA0KICAgICAgICAgIH0sDQogICAgICAgICAgQ24gPSB7DQogICAgICAgICAgICA1MDogIiNl OGY1ZTkiLA0KICAgICAgICAgICAgMTAwOiAiI2M4ZTZjOSIsDQogICAgICAgICAgICAyMDA6 ICIjYTVkNmE3IiwNCiAgICAgICAgICAgIDMwMDogIiM4MWM3ODQiLA0KICAgICAgICAgICAg NDAwOiAiIzY2YmI2YSIsDQogICAgICAgICAgICA1MDA6ICIjNGNhZjUwIiwNCiAgICAgICAg ICAgIDYwMDogIiM0M2EwNDciLA0KICAgICAgICAgICAgNzAwOiAiIzM4OGUzYyIsDQogICAg ICAgICAgICA4MDA6ICIjMmU3ZDMyIiwNCiAgICAgICAgICAgIDkwMDogIiMxYjVlMjAiLA0K ICAgICAgICAgICAgQTEwMDogIiNiOWY2Y2EiLA0KICAgICAgICAgICAgQTIwMDogIiM2OWYw YWUiLA0KICAgICAgICAgICAgQTQwMDogIiMwMGU2NzYiLA0KICAgICAgICAgICAgQTcwMDog IiMwMGM4NTMiLA0KICAgICAgICAgIH0sDQogICAgICAgICAgUm4gPSBbIm1vZGUiLCAiY29u dHJhc3RUaHJlc2hvbGQiLCAidG9uYWxPZmZzZXQiXSwNCiAgICAgICAgICBfbiA9IHsNCiAg ICAgICAgICAgIHRleHQ6IHsgcHJpbWFyeTogInJnYmEoMCwgMCwgMCwgMC44NykiLCBzZWNv bmRhcnk6ICJyZ2JhKDAsIDAsIDAsIDAuNikiLCBkaXNhYmxlZDogInJnYmEoMCwgMCwgMCwg MC4zOCkiIH0sDQogICAgICAgICAgICBkaXZpZGVyOiAicmdiYSgwLCAwLCAwLCAwLjEyKSIs DQogICAgICAgICAgICBiYWNrZ3JvdW5kOiB7IHBhcGVyOiB5bi53aGl0ZSwgZGVmYXVsdDog eW4ud2hpdGUgfSwNCiAgICAgICAgICAgIGFjdGlvbjogew0KICAgICAgICAgICAgICBhY3Rp dmU6ICJyZ2JhKDAsIDAsIDAsIDAuNTQpIiwNCiAgICAgICAgICAgICAgaG92ZXI6ICJyZ2Jh KDAsIDAsIDAsIDAuMDQpIiwNCiAgICAgICAgICAgICAgaG92ZXJPcGFjaXR5OiAwLjA0LA0K ICAgICAgICAgICAgICBzZWxlY3RlZDogInJnYmEoMCwgMCwgMCwgMC4wOCkiLA0KICAgICAg ICAgICAgICBzZWxlY3RlZE9wYWNpdHk6IDAuMDgsDQogICAgICAgICAgICAgIGRpc2FibGVk OiAicmdiYSgwLCAwLCAwLCAwLjI2KSIsDQogICAgICAgICAgICAgIGRpc2FibGVkQmFja2dy b3VuZDogInJnYmEoMCwgMCwgMCwgMC4xMikiLA0KICAgICAgICAgICAgICBkaXNhYmxlZE9w YWNpdHk6IDAuMzgsDQogICAgICAgICAgICAgIGZvY3VzOiAicmdiYSgwLCAwLCAwLCAwLjEy KSIsDQogICAgICAgICAgICAgIGZvY3VzT3BhY2l0eTogMC4xMiwNCiAgICAgICAgICAgICAg YWN0aXZhdGVkT3BhY2l0eTogMC4xMiwNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgfSwN CiAgICAgICAgICBQbiA9IHsNCiAgICAgICAgICAgIHRleHQ6IHsgcHJpbWFyeTogeW4ud2hp dGUsIHNlY29uZGFyeTogInJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KSIsIGRpc2FibGVkOiAi cmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpIiwgaWNvbjogInJnYmEoMjU1LCAyNTUsIDI1NSwg MC41KSIgfSwNCiAgICAgICAgICAgIGRpdmlkZXI6ICJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAu MTIpIiwNCiAgICAgICAgICAgIGJhY2tncm91bmQ6IHsgcGFwZXI6ICIjMTIxMjEyIiwgZGVm YXVsdDogIiMxMjEyMTIiIH0sDQogICAgICAgICAgICBhY3Rpb246IHsNCiAgICAgICAgICAg ICAgYWN0aXZlOiB5bi53aGl0ZSwNCiAgICAgICAgICAgICAgaG92ZXI6ICJyZ2JhKDI1NSwg MjU1LCAyNTUsIDAuMDgpIiwNCiAgICAgICAgICAgICAgaG92ZXJPcGFjaXR5OiAwLjA4LA0K ICAgICAgICAgICAgICBzZWxlY3RlZDogInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNikiLA0K ICAgICAgICAgICAgICBzZWxlY3RlZE9wYWNpdHk6IDAuMTYsDQogICAgICAgICAgICAgIGRp c2FibGVkOiAicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpIiwNCiAgICAgICAgICAgICAgZGlz YWJsZWRCYWNrZ3JvdW5kOiAicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKSIsDQogICAgICAg ICAgICAgIGRpc2FibGVkT3BhY2l0eTogMC4zOCwNCiAgICAgICAgICAgICAgZm9jdXM6ICJy Z2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpIiwNCiAgICAgICAgICAgICAgZm9jdXNPcGFjaXR5 OiAwLjEyLA0KICAgICAgICAgICAgICBhY3RpdmF0ZWRPcGFjaXR5OiAwLjI0LA0KICAgICAg ICAgICAgfSwNCiAgICAgICAgICB9Ow0KICAgICAgICBmdW5jdGlvbiBPbihlLCB0LCBuLCBy KSB7DQogICAgICAgICAgY29uc3QgbyA9IHIubGlnaHQgfHwgciwNCiAgICAgICAgICAgIGEg PSByLmRhcmsgfHwgMS41ICogcjsNCiAgICAgICAgICBlW3RdIHx8IChlLmhhc093blByb3Bl cnR5KG4pID8gKGVbdF0gPSBlW25dKSA6ICJsaWdodCIgPT09IHQgPyAoZS5saWdodCA9IHko ZS5tYWluLCBvKSkgOiAiZGFyayIgPT09IHQgJiYgKGUuZGFyayA9IHYoZS5tYWluLCBhKSkp Ow0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIE5uKGUpIHsNCiAgICAgICAgICBjb25z dCB7IG1vZGU6IHQgPSAibGlnaHQiLCBjb250cmFzdFRocmVzaG9sZDogbiA9IDMsIHRvbmFs T2Zmc2V0OiByID0gMC4yIH0gPSBlLA0KICAgICAgICAgICAgbyA9IGEoZSwgUm4pLA0KICAg ICAgICAgICAgbCA9DQogICAgICAgICAgICAgIGUucHJpbWFyeSB8fA0KICAgICAgICAgICAg ICAoZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHJldHVybiAiZGFyayIgPT09IChh cmd1bWVudHMubGVuZ3RoID4gMCAmJiB2b2lkIDAgIT09IGFyZ3VtZW50c1swXSA/IGFyZ3Vt ZW50c1swXSA6ICJsaWdodCIpID8geyBtYWluOiBrblsyMDBdLCBsaWdodDoga25bNTBdLCBk YXJrOiBrbls0MDBdIH0gOiB7IG1haW46IGtuWzcwMF0sIGxpZ2h0OiBrbls0MDBdLCBkYXJr OiBrbls4MDBdIH07DQogICAgICAgICAgICAgIH0pKHQpLA0KICAgICAgICAgICAgcyA9DQog ICAgICAgICAgICAgIGUuc2Vjb25kYXJ5IHx8DQogICAgICAgICAgICAgIChmdW5jdGlvbiAo KSB7DQogICAgICAgICAgICAgICAgcmV0dXJuICJkYXJrIiA9PT0gKGFyZ3VtZW50cy5sZW5n dGggPiAwICYmIHZvaWQgMCAhPT0gYXJndW1lbnRzWzBdID8gYXJndW1lbnRzWzBdIDogImxp Z2h0IikgPyB7IG1haW46IHduWzIwMF0sIGxpZ2h0OiB3bls1MF0sIGRhcms6IHduWzQwMF0g fSA6IHsgbWFpbjogd25bNTAwXSwgbGlnaHQ6IHduWzMwMF0sIGRhcms6IHduWzcwMF0gfTsN CiAgICAgICAgICAgICAgfSkodCksDQogICAgICAgICAgICB1ID0NCiAgICAgICAgICAgICAg ZS5lcnJvciB8fA0KICAgICAgICAgICAgICAoZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAg ICAgIHJldHVybiAiZGFyayIgPT09IChhcmd1bWVudHMubGVuZ3RoID4gMCAmJiB2b2lkIDAg IT09IGFyZ3VtZW50c1swXSA/IGFyZ3VtZW50c1swXSA6ICJsaWdodCIpID8geyBtYWluOiB4 bls1MDBdLCBsaWdodDogeG5bMzAwXSwgZGFyazogeG5bNzAwXSB9IDogeyBtYWluOiB4bls3 MDBdLCBsaWdodDogeG5bNDAwXSwgZGFyazogeG5bODAwXSB9Ow0KICAgICAgICAgICAgICB9 KSh0KSwNCiAgICAgICAgICAgIGMgPQ0KICAgICAgICAgICAgICBlLmluZm8gfHwNCiAgICAg ICAgICAgICAgKGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gImRhcmsi ID09PSAoYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgdm9pZCAwICE9PSBhcmd1bWVudHNbMF0g PyBhcmd1bWVudHNbMF0gOiAibGlnaHQiKSA/IHsgbWFpbjogRW5bNDAwXSwgbGlnaHQ6IEVu WzMwMF0sIGRhcms6IEVuWzcwMF0gfSA6IHsgbWFpbjogRW5bNzAwXSwgbGlnaHQ6IEVuWzUw MF0sIGRhcms6IEVuWzkwMF0gfTsNCiAgICAgICAgICAgICAgfSkodCksDQogICAgICAgICAg ICBmID0NCiAgICAgICAgICAgICAgZS5zdWNjZXNzIHx8DQogICAgICAgICAgICAgIChmdW5j dGlvbiAoKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuICJkYXJrIiA9PT0gKGFyZ3VtZW50 cy5sZW5ndGggPiAwICYmIHZvaWQgMCAhPT0gYXJndW1lbnRzWzBdID8gYXJndW1lbnRzWzBd IDogImxpZ2h0IikgPyB7IG1haW46IENuWzQwMF0sIGxpZ2h0OiBDblszMDBdLCBkYXJrOiBD bls3MDBdIH0gOiB7IG1haW46IENuWzgwMF0sIGxpZ2h0OiBDbls1MDBdLCBkYXJrOiBDbls5 MDBdIH07DQogICAgICAgICAgICAgIH0pKHQpLA0KICAgICAgICAgICAgcCA9DQogICAgICAg ICAgICAgIGUud2FybmluZyB8fA0KICAgICAgICAgICAgICAoZnVuY3Rpb24gKCkgew0KICAg ICAgICAgICAgICAgIHJldHVybiAiZGFyayIgPT09IChhcmd1bWVudHMubGVuZ3RoID4gMCAm JiB2b2lkIDAgIT09IGFyZ3VtZW50c1swXSA/IGFyZ3VtZW50c1swXSA6ICJsaWdodCIpID8g eyBtYWluOiBTbls0MDBdLCBsaWdodDogU25bMzAwXSwgZGFyazogU25bNzAwXSB9IDogeyBt YWluOiAiI2VkNmMwMiIsIGxpZ2h0OiBTbls1MDBdLCBkYXJrOiBTbls5MDBdIH07DQogICAg ICAgICAgICAgIH0pKHQpOw0KICAgICAgICAgIGZ1bmN0aW9uIGgoZSkgew0KICAgICAgICAg ICAgY29uc3QgdCA9DQogICAgICAgICAgICAgIChmdW5jdGlvbiAoZSwgdCkgew0KICAgICAg ICAgICAgICAgIGNvbnN0IG4gPSBtKGUpLA0KICAgICAgICAgICAgICAgICAgciA9IG0odCk7 DQogICAgICAgICAgICAgICAgcmV0dXJuIChNYXRoLm1heChuLCByKSArIDAuMDUpIC8gKE1h dGgubWluKG4sIHIpICsgMC4wNSk7DQogICAgICAgICAgICAgIH0pKGUsIFBuLnRleHQucHJp bWFyeSkgPj0gbg0KICAgICAgICAgICAgICAgID8gUG4udGV4dC5wcmltYXJ5DQogICAgICAg ICAgICAgICAgOiBfbi50ZXh0LnByaW1hcnk7DQogICAgICAgICAgICByZXR1cm4gdDsNCiAg ICAgICAgICB9DQogICAgICAgICAgY29uc3QgZyA9IChlKSA9PiB7DQogICAgICAgICAgICBs ZXQgeyBjb2xvcjogdCwgbmFtZTogbiwgbWFpblNoYWRlOiBvID0gNTAwLCBsaWdodFNoYWRl OiBhID0gMzAwLCBkYXJrU2hhZGU6IGwgPSA3MDAgfSA9IGU7DQogICAgICAgICAgICBpZiAo KCh0ID0gaSh7fSwgdCkpLCAhdC5tYWluICYmIHRbb10gJiYgKHQubWFpbiA9IHRbb10pLCAh dC5oYXNPd25Qcm9wZXJ0eSgibWFpbiIpKSkgdGhyb3cgbmV3IEVycm9yKGQoMTEsIG4gPyAi ICgiLmNvbmNhdChuLCAiKSIpIDogIiIsIG8pKTsNCiAgICAgICAgICAgIGlmICgic3RyaW5n IiAhPT0gdHlwZW9mIHQubWFpbikgdGhyb3cgbmV3IEVycm9yKGQoMTIsIG4gPyAiICgiLmNv bmNhdChuLCAiKSIpIDogIiIsIEpTT04uc3RyaW5naWZ5KHQubWFpbikpKTsNCiAgICAgICAg ICAgIHJldHVybiBPbih0LCAibGlnaHQiLCBhLCByKSwgT24odCwgImRhcmsiLCBsLCByKSwg dC5jb250cmFzdFRleHQgfHwgKHQuY29udHJhc3RUZXh0ID0gaCh0Lm1haW4pKSwgdDsNCiAg ICAgICAgICB9LA0KICAgICAgICAgICAgdiA9IHsgZGFyazogUG4sIGxpZ2h0OiBfbiB9Ow0K ICAgICAgICAgIHJldHVybiBaZSgNCiAgICAgICAgICAgIGkoDQogICAgICAgICAgICAgIHsN CiAgICAgICAgICAgICAgICBjb21tb246IGkoe30sIHluKSwNCiAgICAgICAgICAgICAgICBt b2RlOiB0LA0KICAgICAgICAgICAgICAgIHByaW1hcnk6IGcoeyBjb2xvcjogbCwgbmFtZTog InByaW1hcnkiIH0pLA0KICAgICAgICAgICAgICAgIHNlY29uZGFyeTogZyh7IGNvbG9yOiBz LCBuYW1lOiAic2Vjb25kYXJ5IiwgbWFpblNoYWRlOiAiQTQwMCIsIGxpZ2h0U2hhZGU6ICJB MjAwIiwgZGFya1NoYWRlOiAiQTcwMCIgfSksDQogICAgICAgICAgICAgICAgZXJyb3I6IGco eyBjb2xvcjogdSwgbmFtZTogImVycm9yIiB9KSwNCiAgICAgICAgICAgICAgICB3YXJuaW5n OiBnKHsgY29sb3I6IHAsIG5hbWU6ICJ3YXJuaW5nIiB9KSwNCiAgICAgICAgICAgICAgICBp bmZvOiBnKHsgY29sb3I6IGMsIG5hbWU6ICJpbmZvIiB9KSwNCiAgICAgICAgICAgICAgICBz dWNjZXNzOiBnKHsgY29sb3I6IGYsIG5hbWU6ICJzdWNjZXNzIiB9KSwNCiAgICAgICAgICAg ICAgICBncmV5OiBibiwNCiAgICAgICAgICAgICAgICBjb250cmFzdFRocmVzaG9sZDogbiwN CiAgICAgICAgICAgICAgICBnZXRDb250cmFzdFRleHQ6IGgsDQogICAgICAgICAgICAgICAg YXVnbWVudENvbG9yOiBnLA0KICAgICAgICAgICAgICAgIHRvbmFsT2Zmc2V0OiByLA0KICAg ICAgICAgICAgICB9LA0KICAgICAgICAgICAgICB2W3RdDQogICAgICAgICAgICApLA0KICAg ICAgICAgICAgbw0KICAgICAgICAgICk7DQogICAgICAgIH0NCiAgICAgICAgY29uc3QgVG4g PSBbImZvbnRGYW1pbHkiLCAiZm9udFNpemUiLCAiZm9udFdlaWdodExpZ2h0IiwgImZvbnRX ZWlnaHRSZWd1bGFyIiwgImZvbnRXZWlnaHRNZWRpdW0iLCAiZm9udFdlaWdodEJvbGQiLCAi aHRtbEZvbnRTaXplIiwgImFsbFZhcmlhbnRzIiwgInB4VG9SZW0iXTsNCiAgICAgICAgY29u c3QgQW4gPSB7IHRleHRUcmFuc2Zvcm06ICJ1cHBlcmNhc2UiIH0sDQogICAgICAgICAgTW4g PSAnIlJvYm90byIsICJIZWx2ZXRpY2EiLCAiQXJpYWwiLCBzYW5zLXNlcmlmJzsNCiAgICAg ICAgZnVuY3Rpb24gem4oZSwgdCkgew0KICAgICAgICAgIGNvbnN0IG4gPSAiZnVuY3Rpb24i ID09PSB0eXBlb2YgdCA/IHQoZSkgOiB0LA0KICAgICAgICAgICAgeyBmb250RmFtaWx5OiBy ID0gTW4sIGZvbnRTaXplOiBvID0gMTQsIGZvbnRXZWlnaHRMaWdodDogbCA9IDMwMCwgZm9u dFdlaWdodFJlZ3VsYXI6IHMgPSA0MDAsIGZvbnRXZWlnaHRNZWRpdW06IHUgPSA1MDAsIGZv bnRXZWlnaHRCb2xkOiBjID0gNzAwLCBodG1sRm9udFNpemU6IGQgPSAxNiwgYWxsVmFyaWFu dHM6IGYsIHB4VG9SZW06IHAgfSA9IG4sDQogICAgICAgICAgICBoID0gYShuLCBUbik7DQog ICAgICAgICAgY29uc3QgbSA9IG8gLyAxNCwNCiAgICAgICAgICAgIGcgPSBwIHx8ICgoZSkg PT4gIiIuY29uY2F0KChlIC8gZCkgKiBtLCAicmVtIikpLA0KICAgICAgICAgICAgdiA9IChl LCB0LCBuLCBvLCBhKSA9PiB7DQogICAgICAgICAgICAgIHJldHVybiBpKHsgZm9udEZhbWls eTogciwgZm9udFdlaWdodDogZSwgZm9udFNpemU6IGcodCksIGxpbmVIZWlnaHQ6IG4gfSwg ciA9PT0gTW4gPyB7IGxldHRlclNwYWNpbmc6ICIiLmNvbmNhdCgoKGwgPSBvIC8gdCksIE1h dGgucm91bmQoMWU1ICogbCkgLyAxZTUpLCAiZW0iKSB9IDoge30sIGEsIGYpOw0KICAgICAg ICAgICAgICB2YXIgbDsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB5ID0gew0KICAg ICAgICAgICAgICBoMTogdihsLCA5NiwgMS4xNjcsIC0xLjUpLA0KICAgICAgICAgICAgICBo MjogdihsLCA2MCwgMS4yLCAtMC41KSwNCiAgICAgICAgICAgICAgaDM6IHYocywgNDgsIDEu MTY3LCAwKSwNCiAgICAgICAgICAgICAgaDQ6IHYocywgMzQsIDEuMjM1LCAwLjI1KSwNCiAg ICAgICAgICAgICAgaDU6IHYocywgMjQsIDEuMzM0LCAwKSwNCiAgICAgICAgICAgICAgaDY6 IHYodSwgMjAsIDEuNiwgMC4xNSksDQogICAgICAgICAgICAgIHN1YnRpdGxlMTogdihzLCAx NiwgMS43NSwgMC4xNSksDQogICAgICAgICAgICAgIHN1YnRpdGxlMjogdih1LCAxNCwgMS41 NywgMC4xKSwNCiAgICAgICAgICAgICAgYm9keTE6IHYocywgMTYsIDEuNSwgMC4xNSksDQog ICAgICAgICAgICAgIGJvZHkyOiB2KHMsIDE0LCAxLjQzLCAwLjE1KSwNCiAgICAgICAgICAg ICAgYnV0dG9uOiB2KHUsIDE0LCAxLjc1LCAwLjQsIEFuKSwNCiAgICAgICAgICAgICAgY2Fw dGlvbjogdihzLCAxMiwgMS42NiwgMC40KSwNCiAgICAgICAgICAgICAgb3ZlcmxpbmU6IHYo cywgMTIsIDIuNjYsIDEsIEFuKSwNCiAgICAgICAgICAgICAgaW5oZXJpdDogeyBmb250RmFt aWx5OiAiaW5oZXJpdCIsIGZvbnRXZWlnaHQ6ICJpbmhlcml0IiwgZm9udFNpemU6ICJpbmhl cml0IiwgbGluZUhlaWdodDogImluaGVyaXQiLCBsZXR0ZXJTcGFjaW5nOiAiaW5oZXJpdCIg fSwNCiAgICAgICAgICAgIH07DQogICAgICAgICAgcmV0dXJuIFplKGkoeyBodG1sRm9udFNp emU6IGQsIHB4VG9SZW06IGcsIGZvbnRGYW1pbHk6IHIsIGZvbnRTaXplOiBvLCBmb250V2Vp Z2h0TGlnaHQ6IGwsIGZvbnRXZWlnaHRSZWd1bGFyOiBzLCBmb250V2VpZ2h0TWVkaXVtOiB1 LCBmb250V2VpZ2h0Qm9sZDogYyB9LCB5KSwgaCwgeyBjbG9uZTogITEgfSk7DQogICAgICAg IH0NCiAgICAgICAgZnVuY3Rpb24gam4oKSB7DQogICAgICAgICAgcmV0dXJuIFsNCiAgICAg ICAgICAgICIiDQogICAgICAgICAgICAgIC5jb25jYXQoYXJndW1lbnRzLmxlbmd0aCA8PSAw ID8gdm9pZCAwIDogYXJndW1lbnRzWzBdLCAicHggIikNCiAgICAgICAgICAgICAgLmNvbmNh dChhcmd1bWVudHMubGVuZ3RoIDw9IDEgPyB2b2lkIDAgOiBhcmd1bWVudHNbMV0sICJweCAi KQ0KICAgICAgICAgICAgICAuY29uY2F0KGFyZ3VtZW50cy5sZW5ndGggPD0gMiA/IHZvaWQg MCA6IGFyZ3VtZW50c1syXSwgInB4ICIpDQogICAgICAgICAgICAgIC5jb25jYXQoYXJndW1l bnRzLmxlbmd0aCA8PSAzID8gdm9pZCAwIDogYXJndW1lbnRzWzNdLCAicHggcmdiYSgwLDAs MCwiKQ0KICAgICAgICAgICAgICAuY29uY2F0KDAuMiwgIikiKSwNCiAgICAgICAgICAgICIi DQogICAgICAgICAgICAgIC5jb25jYXQoYXJndW1lbnRzLmxlbmd0aCA8PSA0ID8gdm9pZCAw IDogYXJndW1lbnRzWzRdLCAicHggIikNCiAgICAgICAgICAgICAgLmNvbmNhdChhcmd1bWVu dHMubGVuZ3RoIDw9IDUgPyB2b2lkIDAgOiBhcmd1bWVudHNbNV0sICJweCAiKQ0KICAgICAg ICAgICAgICAuY29uY2F0KGFyZ3VtZW50cy5sZW5ndGggPD0gNiA/IHZvaWQgMCA6IGFyZ3Vt ZW50c1s2XSwgInB4ICIpDQogICAgICAgICAgICAgIC5jb25jYXQoYXJndW1lbnRzLmxlbmd0 aCA8PSA3ID8gdm9pZCAwIDogYXJndW1lbnRzWzddLCAicHggcmdiYSgwLDAsMCwiKQ0KICAg ICAgICAgICAgICAuY29uY2F0KDAuMTQsICIpIiksDQogICAgICAgICAgICAiIg0KICAgICAg ICAgICAgICAuY29uY2F0KGFyZ3VtZW50cy5sZW5ndGggPD0gOCA/IHZvaWQgMCA6IGFyZ3Vt ZW50c1s4XSwgInB4ICIpDQogICAgICAgICAgICAgIC5jb25jYXQoYXJndW1lbnRzLmxlbmd0 aCA8PSA5ID8gdm9pZCAwIDogYXJndW1lbnRzWzldLCAicHggIikNCiAgICAgICAgICAgICAg LmNvbmNhdChhcmd1bWVudHMubGVuZ3RoIDw9IDEwID8gdm9pZCAwIDogYXJndW1lbnRzWzEw XSwgInB4ICIpDQogICAgICAgICAgICAgIC5jb25jYXQoYXJndW1lbnRzLmxlbmd0aCA8PSAx MSA/IHZvaWQgMCA6IGFyZ3VtZW50c1sxMV0sICJweCByZ2JhKDAsMCwwLCIpDQogICAgICAg ICAgICAgIC5jb25jYXQoMC4xMiwgIikiKSwNCiAgICAgICAgICBdLmpvaW4oIiwiKTsNCiAg ICAgICAgfQ0KICAgICAgICBjb25zdCBJbiA9IFsNCiAgICAgICAgICAibm9uZSIsDQogICAg ICAgICAgam4oMCwgMiwgMSwgLTEsIDAsIDEsIDEsIDAsIDAsIDEsIDMsIDApLA0KICAgICAg ICAgIGpuKDAsIDMsIDEsIC0yLCAwLCAyLCAyLCAwLCAwLCAxLCA1LCAwKSwNCiAgICAgICAg ICBqbigwLCAzLCAzLCAtMiwgMCwgMywgNCwgMCwgMCwgMSwgOCwgMCksDQogICAgICAgICAg am4oMCwgMiwgNCwgLTEsIDAsIDQsIDUsIDAsIDAsIDEsIDEwLCAwKSwNCiAgICAgICAgICBq bigwLCAzLCA1LCAtMSwgMCwgNSwgOCwgMCwgMCwgMSwgMTQsIDApLA0KICAgICAgICAgIGpu KDAsIDMsIDUsIC0xLCAwLCA2LCAxMCwgMCwgMCwgMSwgMTgsIDApLA0KICAgICAgICAgIGpu KDAsIDQsIDUsIC0yLCAwLCA3LCAxMCwgMSwgMCwgMiwgMTYsIDEpLA0KICAgICAgICAgIGpu KDAsIDUsIDUsIC0zLCAwLCA4LCAxMCwgMSwgMCwgMywgMTQsIDIpLA0KICAgICAgICAgIGpu KDAsIDUsIDYsIC0zLCAwLCA5LCAxMiwgMSwgMCwgMywgMTYsIDIpLA0KICAgICAgICAgIGpu KDAsIDYsIDYsIC0zLCAwLCAxMCwgMTQsIDEsIDAsIDQsIDE4LCAzKSwNCiAgICAgICAgICBq bigwLCA2LCA3LCAtNCwgMCwgMTEsIDE1LCAxLCAwLCA0LCAyMCwgMyksDQogICAgICAgICAg am4oMCwgNywgOCwgLTQsIDAsIDEyLCAxNywgMiwgMCwgNSwgMjIsIDQpLA0KICAgICAgICAg IGpuKDAsIDcsIDgsIC00LCAwLCAxMywgMTksIDIsIDAsIDUsIDI0LCA0KSwNCiAgICAgICAg ICBqbigwLCA3LCA5LCAtNCwgMCwgMTQsIDIxLCAyLCAwLCA1LCAyNiwgNCksDQogICAgICAg ICAgam4oMCwgOCwgOSwgLTUsIDAsIDE1LCAyMiwgMiwgMCwgNiwgMjgsIDUpLA0KICAgICAg ICAgIGpuKDAsIDgsIDEwLCAtNSwgMCwgMTYsIDI0LCAyLCAwLCA2LCAzMCwgNSksDQogICAg ICAgICAgam4oMCwgOCwgMTEsIC01LCAwLCAxNywgMjYsIDIsIDAsIDYsIDMyLCA1KSwNCiAg ICAgICAgICBqbigwLCA5LCAxMSwgLTUsIDAsIDE4LCAyOCwgMiwgMCwgNywgMzQsIDYpLA0K ICAgICAgICAgIGpuKDAsIDksIDEyLCAtNiwgMCwgMTksIDI5LCAyLCAwLCA3LCAzNiwgNiks DQogICAgICAgICAgam4oMCwgMTAsIDEzLCAtNiwgMCwgMjAsIDMxLCAzLCAwLCA4LCAzOCwg NyksDQogICAgICAgICAgam4oMCwgMTAsIDEzLCAtNiwgMCwgMjEsIDMzLCAzLCAwLCA4LCA0 MCwgNyksDQogICAgICAgICAgam4oMCwgMTAsIDE0LCAtNiwgMCwgMjIsIDM1LCAzLCAwLCA4 LCA0MiwgNyksDQogICAgICAgICAgam4oMCwgMTEsIDE0LCAtNywgMCwgMjMsIDM2LCAzLCAw LCA5LCA0NCwgOCksDQogICAgICAgICAgam4oMCwgMTEsIDE1LCAtNywgMCwgMjQsIDM4LCAz LCAwLCA5LCA0NiwgOCksDQogICAgICAgIF0sDQogICAgICAgICAgTG4gPSBbImR1cmF0aW9u IiwgImVhc2luZyIsICJkZWxheSJdLA0KICAgICAgICAgIEZuID0geyBlYXNlSW5PdXQ6ICJj dWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpIiwgZWFzZU91dDogImN1YmljLWJlemllcigw LjAsIDAsIDAuMiwgMSkiLCBlYXNlSW46ICJjdWJpYy1iZXppZXIoMC40LCAwLCAxLCAxKSIs IHNoYXJwOiAiY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC42LCAxKSIgfSwNCiAgICAgICAgICBC biA9IHsgc2hvcnRlc3Q6IDE1MCwgc2hvcnRlcjogMjAwLCBzaG9ydDogMjUwLCBzdGFuZGFy ZDogMzAwLCBjb21wbGV4OiAzNzUsIGVudGVyaW5nU2NyZWVuOiAyMjUsIGxlYXZpbmdTY3Jl ZW46IDE5NSB9Ow0KICAgICAgICBmdW5jdGlvbiBEbihlKSB7DQogICAgICAgICAgcmV0dXJu ICIiLmNvbmNhdChNYXRoLnJvdW5kKGUpLCAibXMiKTsNCiAgICAgICAgfQ0KICAgICAgICBm dW5jdGlvbiBVbihlKSB7DQogICAgICAgICAgaWYgKCFlKSByZXR1cm4gMDsNCiAgICAgICAg ICBjb25zdCB0ID0gZSAvIDM2Ow0KICAgICAgICAgIHJldHVybiBNYXRoLnJvdW5kKDEwICog KDQgKyAxNSAqIHQgKiogMC4yNSArIHQgLyA1KSk7DQogICAgICAgIH0NCiAgICAgICAgZnVu Y3Rpb24gV24oZSkgew0KICAgICAgICAgIGNvbnN0IHQgPSBpKHt9LCBGbiwgZS5lYXNpbmcp LA0KICAgICAgICAgICAgbiA9IGkoe30sIEJuLCBlLmR1cmF0aW9uKTsNCiAgICAgICAgICBy ZXR1cm4gaSgNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgZ2V0QXV0b0hlaWdodER1 cmF0aW9uOiBVbiwNCiAgICAgICAgICAgICAgY3JlYXRlOiBmdW5jdGlvbiAoKSB7DQogICAg ICAgICAgICAgICAgbGV0IGUgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiB2b2lkIDAgIT09 IGFyZ3VtZW50c1swXSA/IGFyZ3VtZW50c1swXSA6IFsiYWxsIl0sDQogICAgICAgICAgICAg ICAgICByID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgdm9pZCAwICE9PSBhcmd1bWVudHNb MV0gPyBhcmd1bWVudHNbMV0gOiB7fTsNCiAgICAgICAgICAgICAgICBjb25zdCB7IGR1cmF0 aW9uOiBvID0gbi5zdGFuZGFyZCwgZWFzaW5nOiBpID0gdC5lYXNlSW5PdXQsIGRlbGF5OiBs ID0gMCB9ID0gcjsNCiAgICAgICAgICAgICAgICBhKHIsIExuKTsNCiAgICAgICAgICAgICAg ICByZXR1cm4gKEFycmF5LmlzQXJyYXkoZSkgPyBlIDogW2VdKQ0KICAgICAgICAgICAgICAg ICAgLm1hcCgoZSkgPT4NCiAgICAgICAgICAgICAgICAgICAgIiINCiAgICAgICAgICAgICAg ICAgICAgICAuY29uY2F0KGUsICIgIikNCiAgICAgICAgICAgICAgICAgICAgICAuY29uY2F0 KCJzdHJpbmciID09PSB0eXBlb2YgbyA/IG8gOiBEbihvKSwgIiAiKQ0KICAgICAgICAgICAg ICAgICAgICAgIC5jb25jYXQoaSwgIiAiKQ0KICAgICAgICAgICAgICAgICAgICAgIC5jb25j YXQoInN0cmluZyIgPT09IHR5cGVvZiBsID8gbCA6IERuKGwpKQ0KICAgICAgICAgICAgICAg ICAgKQ0KICAgICAgICAgICAgICAgICAgLmpvaW4oIiwiKTsNCiAgICAgICAgICAgICAgfSwN CiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBlLA0KICAgICAgICAgICAgeyBlYXNpbmc6 IHQsIGR1cmF0aW9uOiBuIH0NCiAgICAgICAgICApOw0KICAgICAgICB9DQogICAgICAgIGNv bnN0IFZuID0geyBtb2JpbGVTdGVwcGVyOiAxZTMsIGZhYjogMTA1MCwgc3BlZWREaWFsOiAx MDUwLCBhcHBCYXI6IDExMDAsIGRyYXdlcjogMTIwMCwgbW9kYWw6IDEzMDAsIHNuYWNrYmFy OiAxNDAwLCB0b29sdGlwOiAxNTAwIH0sDQogICAgICAgICAgSG4gPSBbImJyZWFrcG9pbnRz IiwgIm1peGlucyIsICJzcGFjaW5nIiwgInBhbGV0dGUiLCAidHJhbnNpdGlvbnMiLCAidHlw b2dyYXBoeSIsICJzaGFwZSJdOw0KICAgICAgICBmdW5jdGlvbiBxbigpIHsNCiAgICAgICAg ICBsZXQgZSA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIHZvaWQgMCAhPT0gYXJndW1lbnRz WzBdID8gYXJndW1lbnRzWzBdIDoge307DQogICAgICAgICAgY29uc3QgeyBtaXhpbnM6IHQg PSB7fSwgcGFsZXR0ZTogbiA9IHt9LCB0cmFuc2l0aW9uczogciA9IHt9LCB0eXBvZ3JhcGh5 OiBvID0ge30gfSA9IGUsDQogICAgICAgICAgICBsID0gYShlLCBIbik7DQogICAgICAgICAg aWYgKGUudmFycykgdGhyb3cgbmV3IEVycm9yKGQoMTgpKTsNCiAgICAgICAgICBjb25zdCBz ID0gTm4obiksDQogICAgICAgICAgICB1ID0gbm4oZSk7DQogICAgICAgICAgbGV0IGMgPSBa ZSh1LCB7IG1peGluczogdm4odS5icmVha3BvaW50cywgdCksIHBhbGV0dGU6IHMsIHNoYWRv d3M6IEluLnNsaWNlKCksIHR5cG9ncmFwaHk6IHpuKHMsIG8pLCB0cmFuc2l0aW9uczogV24o ciksIHpJbmRleDogaSh7fSwgVm4pIH0pOw0KICAgICAgICAgIGMgPSBaZShjLCBsKTsNCiAg ICAgICAgICBmb3IgKHZhciBmID0gYXJndW1lbnRzLmxlbmd0aCwgcCA9IG5ldyBBcnJheShm ID4gMSA/IGYgLSAxIDogMCksIGggPSAxOyBoIDwgZjsgaCsrKSBwW2ggLSAxXSA9IGFyZ3Vt ZW50c1toXTsNCiAgICAgICAgICByZXR1cm4gKA0KICAgICAgICAgICAgKGMgPSBwLnJlZHVj ZSgoZSwgdCkgPT4gWmUoZSwgdCksIGMpKSwNCiAgICAgICAgICAgIChjLnVuc3RhYmxlX3N4 Q29uZmlnID0gaSh7fSwgWnQsIG51bGwgPT0gbCA/IHZvaWQgMCA6IGwudW5zdGFibGVfc3hD b25maWcpKSwNCiAgICAgICAgICAgIChjLnVuc3RhYmxlX3N4ID0gZnVuY3Rpb24gKGUpIHsN CiAgICAgICAgICAgICAgcmV0dXJuIGVuKHsgc3g6IGUsIHRoZW1lOiB0aGlzIH0pOw0KICAg ICAgICAgICAgfSksDQogICAgICAgICAgICBjDQogICAgICAgICAgKTsNCiAgICAgICAgfQ0K ICAgICAgICBjb25zdCAkbiA9IHFuLA0KICAgICAgICAgIEtuID0gJG4oKSwNCiAgICAgICAg ICBRbiA9ICIkJG1hdGVyaWFsIiwNCiAgICAgICAgICBHbiA9IChlKSA9PiBjbihlKSAmJiAi Y2xhc3NlcyIgIT09IGUsDQogICAgICAgICAgWW4gPSBnbih7IHRoZW1lSWQ6IFFuLCBkZWZh dWx0VGhlbWU6IEtuLCByb290U2hvdWxkRm9yd2FyZFByb3A6IEduIH0pOw0KICAgICAgICBj b25zdCBYbiA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICBsZXQgZSA9IGFyZ3VtZW50cy5s ZW5ndGggPiAwICYmIHZvaWQgMCAhPT0gYXJndW1lbnRzWzBdID8gYXJndW1lbnRzWzBdIDog bnVsbDsNCiAgICAgICAgICBjb25zdCBuID0gdC51c2VDb250ZXh0KERlKTsNCiAgICAgICAg ICByZXR1cm4gbiAmJiAoKHIgPSBuKSwgMCAhPT0gT2JqZWN0LmtleXMocikubGVuZ3RoKSA/ IG4gOiBlOw0KICAgICAgICAgIHZhciByOw0KICAgICAgICB9LA0KICAgICAgICAgIFpuID0g bm4oKTsNCiAgICAgICAgY29uc3QgSm4gPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgcmV0 dXJuIFhuKGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIHZvaWQgMCAhPT0gYXJndW1lbnRzWzBd ID8gYXJndW1lbnRzWzBdIDogWm4pOw0KICAgICAgICB9Ow0KICAgICAgICBmdW5jdGlvbiBl cihlKSB7DQogICAgICAgICAgbGV0IHsgcHJvcHM6IHQsIG5hbWU6IG4sIGRlZmF1bHRUaGVt ZTogciwgdGhlbWVJZDogbyB9ID0gZSwNCiAgICAgICAgICAgIGEgPSBKbihyKTsNCiAgICAg ICAgICBvICYmIChhID0gYVtvXSB8fCBhKTsNCiAgICAgICAgICBjb25zdCBpID0gKGZ1bmN0 aW9uIChlKSB7DQogICAgICAgICAgICBjb25zdCB7IHRoZW1lOiB0LCBuYW1lOiBuLCBwcm9w czogciB9ID0gZTsNCiAgICAgICAgICAgIHJldHVybiB0ICYmIHQuY29tcG9uZW50cyAmJiB0 LmNvbXBvbmVudHNbbl0gJiYgdC5jb21wb25lbnRzW25dLmRlZmF1bHRQcm9wcyA/IHUodC5j b21wb25lbnRzW25dLmRlZmF1bHRQcm9wcywgcikgOiByOw0KICAgICAgICAgIH0pKHsgdGhl bWU6IGEsIG5hbWU6IG4sIHByb3BzOiB0IH0pOw0KICAgICAgICAgIHJldHVybiBpOw0KICAg ICAgICB9DQogICAgICAgIGZ1bmN0aW9uIHRyKGUpIHsNCiAgICAgICAgICBsZXQgeyBwcm9w czogdCwgbmFtZTogbiB9ID0gZTsNCiAgICAgICAgICByZXR1cm4gZXIoeyBwcm9wczogdCwg bmFtZTogbiwgZGVmYXVsdFRoZW1lOiBLbiwgdGhlbWVJZDogUW4gfSk7DQogICAgICAgIH0N CiAgICAgICAgZnVuY3Rpb24gbnIoZSwgdCkgew0KICAgICAgICAgICJmdW5jdGlvbiIgPT09 IHR5cGVvZiBlID8gZSh0KSA6IGUgJiYgKGUuY3VycmVudCA9IHQpOw0KICAgICAgICB9DQog ICAgICAgIGZ1bmN0aW9uIHJyKCkgew0KICAgICAgICAgIGZvciAodmFyIGUgPSBhcmd1bWVu dHMubGVuZ3RoLCBuID0gbmV3IEFycmF5KGUpLCByID0gMDsgciA8IGU7IHIrKykgbltyXSA9 IGFyZ3VtZW50c1tyXTsNCiAgICAgICAgICByZXR1cm4gdC51c2VNZW1vKA0KICAgICAgICAg ICAgKCkgPT4NCiAgICAgICAgICAgICAgbi5ldmVyeSgoZSkgPT4gbnVsbCA9PSBlKQ0KICAg ICAgICAgICAgICAgID8gbnVsbA0KICAgICAgICAgICAgICAgIDogKGUpID0+IHsNCiAgICAg ICAgICAgICAgICAgIG4uZm9yRWFjaCgodCkgPT4gew0KICAgICAgICAgICAgICAgICAgICBu cih0LCBlKTsNCiAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0sDQog ICAgICAgICAgICBuDQogICAgICAgICAgKTsNCiAgICAgICAgfQ0KICAgICAgICBjb25zdCBv ciA9IHJyLA0KICAgICAgICAgIGFyID0gInVuZGVmaW5lZCIgIT09IHR5cGVvZiB3aW5kb3cg PyB0LnVzZUxheW91dEVmZmVjdCA6IHQudXNlRWZmZWN0Ow0KICAgICAgICBjb25zdCBpciA9 IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgY29uc3QgbiA9IHQudXNlUmVmKGUpOw0KICAg ICAgICAgIHJldHVybiAoDQogICAgICAgICAgICBhcigoKSA9PiB7DQogICAgICAgICAgICAg IG4uY3VycmVudCA9IGU7DQogICAgICAgICAgICB9KSwNCiAgICAgICAgICAgIHQudXNlUmVm KGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgcmV0dXJuICgwLCBuLmN1cnJlbnQpKC4u LmFyZ3VtZW50cyk7DQogICAgICAgICAgICB9KS5jdXJyZW50DQogICAgICAgICAgKTsNCiAg ICAgICAgfSwNCiAgICAgICAgICBsciA9IGlyOw0KICAgICAgICBsZXQgc3IsDQogICAgICAg ICAgdXIgPSAhMCwNCiAgICAgICAgICBjciA9ICExOw0KICAgICAgICBjb25zdCBkciA9IHsg dGV4dDogITAsIHNlYXJjaDogITAsIHVybDogITAsIHRlbDogITAsIGVtYWlsOiAhMCwgcGFz c3dvcmQ6ICEwLCBudW1iZXI6ICEwLCBkYXRlOiAhMCwgbW9udGg6ICEwLCB3ZWVrOiAhMCwg dGltZTogITAsIGRhdGV0aW1lOiAhMCwgImRhdGV0aW1lLWxvY2FsIjogITAgfTsNCiAgICAg ICAgZnVuY3Rpb24gZnIoZSkgew0KICAgICAgICAgIGUubWV0YUtleSB8fCBlLmFsdEtleSB8 fCBlLmN0cmxLZXkgfHwgKHVyID0gITApOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9u IHByKCkgew0KICAgICAgICAgIHVyID0gITE7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rp b24gaHIoKSB7DQogICAgICAgICAgImhpZGRlbiIgPT09IHRoaXMudmlzaWJpbGl0eVN0YXRl ICYmIGNyICYmICh1ciA9ICEwKTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBtcihl KSB7DQogICAgICAgICAgY29uc3QgeyB0YXJnZXQ6IHQgfSA9IGU7DQogICAgICAgICAgdHJ5 IHsNCiAgICAgICAgICAgIHJldHVybiB0Lm1hdGNoZXMoIjpmb2N1cy12aXNpYmxlIik7DQog ICAgICAgICAgfSBjYXRjaCAobikgeyB9DQogICAgICAgICAgcmV0dXJuICgNCiAgICAgICAg ICAgIHVyIHx8DQogICAgICAgICAgICAoZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgICAg Y29uc3QgeyB0eXBlOiB0LCB0YWdOYW1lOiBuIH0gPSBlOw0KICAgICAgICAgICAgICByZXR1 cm4gISgiSU5QVVQiICE9PSBuIHx8ICFkclt0XSB8fCBlLnJlYWRPbmx5KSB8fCAoIlRFWFRB UkVBIiA9PT0gbiAmJiAhZS5yZWFkT25seSkgfHwgISFlLmlzQ29udGVudEVkaXRhYmxlOw0K ICAgICAgICAgICAgfSkodCkNCiAgICAgICAgICApOw0KICAgICAgICB9DQogICAgICAgIGNv bnN0IGdyID0gZnVuY3Rpb24gKCkgew0KICAgICAgICAgIGNvbnN0IGUgPSB0LnVzZUNhbGxi YWNrKChlKSA9PiB7DQogICAgICAgICAgICB2YXIgdDsNCiAgICAgICAgICAgIG51bGwgIT0g ZSAmJg0KICAgICAgICAgICAgICAoKHQgPSBlLm93bmVyRG9jdW1lbnQpLmFkZEV2ZW50TGlz dGVuZXIoImtleWRvd24iLCBmciwgITApLA0KICAgICAgICAgICAgICAgIHQuYWRkRXZlbnRM aXN0ZW5lcigibW91c2Vkb3duIiwgcHIsICEwKSwNCiAgICAgICAgICAgICAgICB0LmFkZEV2 ZW50TGlzdGVuZXIoInBvaW50ZXJkb3duIiwgcHIsICEwKSwNCiAgICAgICAgICAgICAgICB0 LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLCBwciwgITApLA0KICAgICAgICAgICAg ICAgIHQuYWRkRXZlbnRMaXN0ZW5lcigidmlzaWJpbGl0eWNoYW5nZSIsIGhyLCAhMCkpOw0K ICAgICAgICAgIH0sIFtdKSwNCiAgICAgICAgICAgIG4gPSB0LnVzZVJlZighMSk7DQogICAg ICAgICAgcmV0dXJuIHsNCiAgICAgICAgICAgIGlzRm9jdXNWaXNpYmxlUmVmOiBuLA0KICAg ICAgICAgICAgb25Gb2N1czogZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgICAgcmV0dXJu ICEhbXIoZSkgJiYgKChuLmN1cnJlbnQgPSAhMCksICEwKTsNCiAgICAgICAgICAgIH0sDQog ICAgICAgICAgICBvbkJsdXI6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgcmV0dXJu ICgNCiAgICAgICAgICAgICAgICAhIW4uY3VycmVudCAmJg0KICAgICAgICAgICAgICAgICgo Y3IgPSAhMCksDQogICAgICAgICAgICAgICAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KHNyKSwN CiAgICAgICAgICAgICAgICAgIChzciA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHsNCiAg ICAgICAgICAgICAgICAgICAgY3IgPSAhMTsNCiAgICAgICAgICAgICAgICAgIH0sIDEwMCkp LA0KICAgICAgICAgICAgICAgICAgKG4uY3VycmVudCA9ICExKSwNCiAgICAgICAgICAgICAg ICAgICEwKQ0KICAgICAgICAgICAgICApOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAg IHJlZjogZSwNCiAgICAgICAgICB9Ow0KICAgICAgICB9Ow0KICAgICAgICBmdW5jdGlvbiB2 cihlLCB0KSB7DQogICAgICAgICAgcmV0dXJuIHQgfHwgKHQgPSBlLnNsaWNlKDApKSwgT2Jq ZWN0LmZyZWV6ZShPYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLCB7IHJhdzogeyB2YWx1ZTog T2JqZWN0LmZyZWV6ZSh0KSB9IH0pKTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiB5 cihlLCB0KSB7DQogICAgICAgICAgcmV0dXJuICgNCiAgICAgICAgICAgICh5ciA9IE9iamVj dC5zZXRQcm90b3R5cGVPZg0KICAgICAgICAgICAgICA/IE9iamVjdC5zZXRQcm90b3R5cGVP Zi5iaW5kKCkNCiAgICAgICAgICAgICAgOiBmdW5jdGlvbiAoZSwgdCkgew0KICAgICAgICAg ICAgICAgIHJldHVybiAoZS5fX3Byb3RvX18gPSB0KSwgZTsNCiAgICAgICAgICAgICAgfSks DQogICAgICAgICAgICB5cihlLCB0KQ0KICAgICAgICAgICk7DQogICAgICAgIH0NCiAgICAg ICAgZnVuY3Rpb24gYnIoZSwgdCkgew0KICAgICAgICAgIChlLnByb3RvdHlwZSA9IE9iamVj dC5jcmVhdGUodC5wcm90b3R5cGUpKSwgKGUucHJvdG90eXBlLmNvbnN0cnVjdG9yID0gZSks IHlyKGUsIHQpOw0KICAgICAgICB9DQogICAgICAgIGNvbnN0IHdyID0gdC5jcmVhdGVDb250 ZXh0KG51bGwpOw0KICAgICAgICBmdW5jdGlvbiB4cihlLCBuKSB7DQogICAgICAgICAgdmFy IHIgPSBPYmplY3QuY3JlYXRlKG51bGwpOw0KICAgICAgICAgIHJldHVybiAoDQogICAgICAg ICAgICBlICYmDQogICAgICAgICAgICB0LkNoaWxkcmVuLm1hcChlLCBmdW5jdGlvbiAoZSkg ew0KICAgICAgICAgICAgICByZXR1cm4gZTsNCiAgICAgICAgICAgIH0pLmZvckVhY2goZnVu Y3Rpb24gKGUpIHsNCiAgICAgICAgICAgICAgcltlLmtleV0gPSAoZnVuY3Rpb24gKGUpIHsN CiAgICAgICAgICAgICAgICByZXR1cm4gbiAmJiAoMCwgdC5pc1ZhbGlkRWxlbWVudCkoZSkg PyBuKGUpIDogZTsNCiAgICAgICAgICAgICAgfSkoZSk7DQogICAgICAgICAgICB9KSwNCiAg ICAgICAgICAgIHINCiAgICAgICAgICApOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9u IFNyKGUsIHQsIG4pIHsNCiAgICAgICAgICByZXR1cm4gbnVsbCAhPSBuW3RdID8gblt0XSA6 IGUucHJvcHNbdF07DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24ga3IoZSwgbiwgcikg ew0KICAgICAgICAgIHZhciBvID0geHIoZS5jaGlsZHJlbiksDQogICAgICAgICAgICBhID0g KGZ1bmN0aW9uIChlLCB0KSB7DQogICAgICAgICAgICAgIGZ1bmN0aW9uIG4obikgew0KICAg ICAgICAgICAgICAgIHJldHVybiBuIGluIHQgPyB0W25dIDogZVtuXTsNCiAgICAgICAgICAg ICAgfQ0KICAgICAgICAgICAgICAoZSA9IGUgfHwge30pLCAodCA9IHQgfHwge30pOw0KICAg ICAgICAgICAgICB2YXIgciwNCiAgICAgICAgICAgICAgICBvID0gT2JqZWN0LmNyZWF0ZShu dWxsKSwNCiAgICAgICAgICAgICAgICBhID0gW107DQogICAgICAgICAgICAgIGZvciAodmFy IGkgaW4gZSkgaSBpbiB0ID8gYS5sZW5ndGggJiYgKChvW2ldID0gYSksIChhID0gW10pKSA6 IGEucHVzaChpKTsNCiAgICAgICAgICAgICAgdmFyIGwgPSB7fTsNCiAgICAgICAgICAgICAg Zm9yICh2YXIgcyBpbiB0KSB7DQogICAgICAgICAgICAgICAgaWYgKG9bc10pDQogICAgICAg ICAgICAgICAgICBmb3IgKHIgPSAwOyByIDwgb1tzXS5sZW5ndGg7IHIrKykgew0KICAgICAg ICAgICAgICAgICAgICB2YXIgdSA9IG9bc11bcl07DQogICAgICAgICAgICAgICAgICAgIGxb b1tzXVtyXV0gPSBuKHUpOw0KICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAg IGxbc10gPSBuKHMpOw0KICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgIGZvciAociA9 IDA7IHIgPCBhLmxlbmd0aDsgcisrKSBsW2Fbcl1dID0gbihhW3JdKTsNCiAgICAgICAgICAg ICAgcmV0dXJuIGw7DQogICAgICAgICAgICB9KShuLCBvKTsNCiAgICAgICAgICByZXR1cm4g KA0KICAgICAgICAgICAgT2JqZWN0LmtleXMoYSkuZm9yRWFjaChmdW5jdGlvbiAoaSkgew0K ICAgICAgICAgICAgICB2YXIgbCA9IGFbaV07DQogICAgICAgICAgICAgIGlmICgoMCwgdC5p c1ZhbGlkRWxlbWVudCkobCkpIHsNCiAgICAgICAgICAgICAgICB2YXIgcyA9IGkgaW4gbiwN CiAgICAgICAgICAgICAgICAgIHUgPSBpIGluIG8sDQogICAgICAgICAgICAgICAgICBjID0g bltpXSwNCiAgICAgICAgICAgICAgICAgIGQgPSAoMCwgdC5pc1ZhbGlkRWxlbWVudCkoYykg JiYgIWMucHJvcHMuaW47DQogICAgICAgICAgICAgICAgIXUgfHwgKHMgJiYgIWQpDQogICAg ICAgICAgICAgICAgICA/IHUgfHwgIXMgfHwgZA0KICAgICAgICAgICAgICAgICAgICA/IHUg JiYgcyAmJiAoMCwgdC5pc1ZhbGlkRWxlbWVudCkoYykgJiYgKGFbaV0gPSAoMCwgdC5jbG9u ZUVsZW1lbnQpKGwsIHsgb25FeGl0ZWQ6IHIuYmluZChudWxsLCBsKSwgaW46IGMucHJvcHMu aW4sIGV4aXQ6IFNyKGwsICJleGl0IiwgZSksIGVudGVyOiBTcihsLCAiZW50ZXIiLCBlKSB9 KSkNCiAgICAgICAgICAgICAgICAgICAgOiAoYVtpXSA9ICgwLCB0LmNsb25lRWxlbWVudCko bCwgeyBpbjogITEgfSkpDQogICAgICAgICAgICAgICAgICA6IChhW2ldID0gKDAsIHQuY2xv bmVFbGVtZW50KShsLCB7IG9uRXhpdGVkOiByLmJpbmQobnVsbCwgbCksIGluOiAhMCwgZXhp dDogU3IobCwgImV4aXQiLCBlKSwgZW50ZXI6IFNyKGwsICJlbnRlciIsIGUpIH0pKTsNCiAg ICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSksDQogICAgICAgICAgICBhDQogICAgICAg ICAgKTsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgRXIgPQ0KICAgICAgICAgIE9iamVjdC52 YWx1ZXMgfHwNCiAgICAgICAgICBmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgcmV0dXJu IE9iamVjdC5rZXlzKGUpLm1hcChmdW5jdGlvbiAodCkgew0KICAgICAgICAgICAgICByZXR1 cm4gZVt0XTsNCiAgICAgICAgICAgIH0pOw0KICAgICAgICAgIH0sDQogICAgICAgICAgQ3Ig PSAoZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgIGZ1bmN0aW9uIG4odCwgbikgew0KICAg ICAgICAgICAgICB2YXIgciwNCiAgICAgICAgICAgICAgICBvID0gKHIgPSBlLmNhbGwodGhp cywgdCwgbikgfHwgdGhpcykuaGFuZGxlRXhpdGVkLmJpbmQoDQogICAgICAgICAgICAgICAg ICAoZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZvaWQgMCA9PT0g ZSkgdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxp c2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTsNCiAgICAgICAgICAgICAgICAg ICAgcmV0dXJuIGU7DQogICAgICAgICAgICAgICAgICB9KShyKQ0KICAgICAgICAgICAgICAg ICk7DQogICAgICAgICAgICAgIHJldHVybiAoci5zdGF0ZSA9IHsgY29udGV4dFZhbHVlOiB7 IGlzTW91bnRpbmc6ICEwIH0sIGhhbmRsZUV4aXRlZDogbywgZmlyc3RSZW5kZXI6ICEwIH0p LCByOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnIobiwgZSk7DQogICAgICAgICAg ICB2YXIgciA9IG4ucHJvdG90eXBlOw0KICAgICAgICAgICAgcmV0dXJuICgNCiAgICAgICAg ICAgICAgKHIuY29tcG9uZW50RGlkTW91bnQgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAg ICAgICAgKHRoaXMubW91bnRlZCA9ICEwKSwgdGhpcy5zZXRTdGF0ZSh7IGNvbnRleHRWYWx1 ZTogeyBpc01vdW50aW5nOiAhMSB9IH0pOw0KICAgICAgICAgICAgICB9KSwNCiAgICAgICAg ICAgICAgKHIuY29tcG9uZW50V2lsbFVubW91bnQgPSBmdW5jdGlvbiAoKSB7DQogICAgICAg ICAgICAgICAgdGhpcy5tb3VudGVkID0gITE7DQogICAgICAgICAgICAgIH0pLA0KICAgICAg ICAgICAgICAobi5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMgPSBmdW5jdGlvbiAoZSwgbikg ew0KICAgICAgICAgICAgICAgIHZhciByLA0KICAgICAgICAgICAgICAgICAgbywNCiAgICAg ICAgICAgICAgICAgIGEgPSBuLmNoaWxkcmVuLA0KICAgICAgICAgICAgICAgICAgaSA9IG4u aGFuZGxlRXhpdGVkOw0KICAgICAgICAgICAgICAgIHJldHVybiB7DQogICAgICAgICAgICAg ICAgICBjaGlsZHJlbjogbi5maXJzdFJlbmRlcg0KICAgICAgICAgICAgICAgICAgICA/ICgo ciA9IGUpLA0KICAgICAgICAgICAgICAgICAgICAgIChvID0gaSksDQogICAgICAgICAgICAg ICAgICAgICAgeHIoci5jaGlsZHJlbiwgZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgICAg ICAgICAgICAgIHJldHVybiAoMCwgdC5jbG9uZUVsZW1lbnQpKGUsIHsgb25FeGl0ZWQ6IG8u YmluZChudWxsLCBlKSwgaW46ICEwLCBhcHBlYXI6IFNyKGUsICJhcHBlYXIiLCByKSwgZW50 ZXI6IFNyKGUsICJlbnRlciIsIHIpLCBleGl0OiBTcihlLCAiZXhpdCIsIHIpIH0pOw0KICAg ICAgICAgICAgICAgICAgICAgIH0pKQ0KICAgICAgICAgICAgICAgICAgICA6IGtyKGUsIGEs IGkpLA0KICAgICAgICAgICAgICAgICAgZmlyc3RSZW5kZXI6ICExLA0KICAgICAgICAgICAg ICAgIH07DQogICAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAgICAoci5oYW5kbGVFeGl0 ZWQgPSBmdW5jdGlvbiAoZSwgdCkgew0KICAgICAgICAgICAgICAgIHZhciBuID0geHIodGhp cy5wcm9wcy5jaGlsZHJlbik7DQogICAgICAgICAgICAgICAgZS5rZXkgaW4gbiB8fA0KICAg ICAgICAgICAgICAgICAgKGUucHJvcHMub25FeGl0ZWQgJiYgZS5wcm9wcy5vbkV4aXRlZCh0 KSwNCiAgICAgICAgICAgICAgICAgICAgdGhpcy5tb3VudGVkICYmDQogICAgICAgICAgICAg ICAgICAgIHRoaXMuc2V0U3RhdGUoZnVuY3Rpb24gKHQpIHsNCiAgICAgICAgICAgICAgICAg ICAgICB2YXIgbiA9IGkoe30sIHQuY2hpbGRyZW4pOw0KICAgICAgICAgICAgICAgICAgICAg IHJldHVybiBkZWxldGUgbltlLmtleV0sIHsgY2hpbGRyZW46IG4gfTsNCiAgICAgICAgICAg ICAgICAgICAgfSkpOw0KICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgKHIucmVu ZGVyID0gZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHZhciBlID0gdGhpcy5wcm9w cywNCiAgICAgICAgICAgICAgICAgIG4gPSBlLmNvbXBvbmVudCwNCiAgICAgICAgICAgICAg ICAgIHIgPSBlLmNoaWxkRmFjdG9yeSwNCiAgICAgICAgICAgICAgICAgIG8gPSBhKGUsIFsi Y29tcG9uZW50IiwgImNoaWxkRmFjdG9yeSJdKSwNCiAgICAgICAgICAgICAgICAgIGkgPSB0 aGlzLnN0YXRlLmNvbnRleHRWYWx1ZSwNCiAgICAgICAgICAgICAgICAgIGwgPSBFcih0aGlz LnN0YXRlLmNoaWxkcmVuKS5tYXAocik7DQogICAgICAgICAgICAgICAgcmV0dXJuIGRlbGV0 ZSBvLmFwcGVhciwgZGVsZXRlIG8uZW50ZXIsIGRlbGV0ZSBvLmV4aXQsIG51bGwgPT09IG4g PyB0LmNyZWF0ZUVsZW1lbnQod3IuUHJvdmlkZXIsIHsgdmFsdWU6IGkgfSwgbCkgOiB0LmNy ZWF0ZUVsZW1lbnQod3IuUHJvdmlkZXIsIHsgdmFsdWU6IGkgfSwgdC5jcmVhdGVFbGVtZW50 KG4sIG8sIGwpKTsNCiAgICAgICAgICAgICAgfSksDQogICAgICAgICAgICAgIG4NCiAgICAg ICAgICAgICk7DQogICAgICAgICAgfSkodC5Db21wb25lbnQpOw0KICAgICAgICAoQ3IucHJv cFR5cGVzID0ge30pLA0KICAgICAgICAgIChDci5kZWZhdWx0UHJvcHMgPSB7DQogICAgICAg ICAgICBjb21wb25lbnQ6ICJkaXYiLA0KICAgICAgICAgICAgY2hpbGRGYWN0b3J5OiBmdW5j dGlvbiAoZSkgew0KICAgICAgICAgICAgICByZXR1cm4gZTsNCiAgICAgICAgICAgIH0sDQog ICAgICAgICAgfSk7DQogICAgICAgIGNvbnN0IFJyID0gQ3I7DQogICAgICAgIG4oMTEwKTsN CiAgICAgICAgdmFyIF9yID0gQmUoZnVuY3Rpb24gKGUsIG4pIHsNCiAgICAgICAgICB2YXIg ciA9IGUuc3R5bGVzLA0KICAgICAgICAgICAgbyA9IHplKFtyXSwgdm9pZCAwLCB0LnVzZUNv bnRleHQoRGUpKSwNCiAgICAgICAgICAgIGEgPSB0LnVzZVJlZigpOw0KICAgICAgICAgIHJl dHVybiAoDQogICAgICAgICAgICBMZSgNCiAgICAgICAgICAgICAgZnVuY3Rpb24gKCkgew0K ICAgICAgICAgICAgICAgIHZhciBlID0gbi5rZXkgKyAiLWdsb2JhbCIsDQogICAgICAgICAg ICAgICAgICB0ID0gbmV3IG4uc2hlZXQuY29uc3RydWN0b3IoeyBrZXk6IGUsIG5vbmNlOiBu LnNoZWV0Lm5vbmNlLCBjb250YWluZXI6IG4uc2hlZXQuY29udGFpbmVyLCBzcGVlZHk6IG4u c2hlZXQuaXNTcGVlZHkgfSksDQogICAgICAgICAgICAgICAgICByID0gITEsDQogICAgICAg ICAgICAgICAgICBpID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcignc3R5bGVbZGF0YS1lbW90 aW9uPSInICsgZSArICIgIiArIG8ubmFtZSArICciXScpOw0KICAgICAgICAgICAgICAgIHJl dHVybiAoDQogICAgICAgICAgICAgICAgICBuLnNoZWV0LnRhZ3MubGVuZ3RoICYmICh0LmJl Zm9yZSA9IG4uc2hlZXQudGFnc1swXSksDQogICAgICAgICAgICAgICAgICBudWxsICE9PSBp ICYmICgociA9ICEwKSwgaS5zZXRBdHRyaWJ1dGUoImRhdGEtZW1vdGlvbiIsIGUpLCB0Lmh5 ZHJhdGUoW2ldKSksDQogICAgICAgICAgICAgICAgICAoYS5jdXJyZW50ID0gW3QsIHJdKSwN CiAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAg dC5mbHVzaCgpOw0KICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICk7DQog ICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgIFtuXQ0KICAgICAgICAgICAgKSwNCiAg ICAgICAgICAgIExlKA0KICAgICAgICAgICAgICBmdW5jdGlvbiAoKSB7DQogICAgICAgICAg ICAgICAgdmFyIGUgPSBhLmN1cnJlbnQsDQogICAgICAgICAgICAgICAgICB0ID0gZVswXTsN CiAgICAgICAgICAgICAgICBpZiAoZVsxXSkgZVsxXSA9ICExOw0KICAgICAgICAgICAgICAg IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgaWYgKCh2b2lkIDAgIT09IG8ubmV4dCAmJiBX ZShuLCBvLm5leHQsICEwKSwgdC50YWdzLmxlbmd0aCkpIHsNCiAgICAgICAgICAgICAgICAg ICAgdmFyIHIgPSB0LnRhZ3NbdC50YWdzLmxlbmd0aCAtIDFdLm5leHRFbGVtZW50U2libGlu ZzsNCiAgICAgICAgICAgICAgICAgICAgKHQuYmVmb3JlID0gciksIHQuZmx1c2goKTsNCiAg ICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgIG4uaW5zZXJ0KCIiLCBvLCB0 LCAhMSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICB9LA0KICAgICAgICAg ICAgICBbbiwgby5uYW1lXQ0KICAgICAgICAgICAgKSwNCiAgICAgICAgICAgIG51bGwNCiAg ICAgICAgICApOw0KICAgICAgICB9KTsNCiAgICAgICAgZnVuY3Rpb24gUHIoKSB7DQogICAg ICAgICAgZm9yICh2YXIgZSA9IGFyZ3VtZW50cy5sZW5ndGgsIHQgPSBuZXcgQXJyYXkoZSks IG4gPSAwOyBuIDwgZTsgbisrKSB0W25dID0gYXJndW1lbnRzW25dOw0KICAgICAgICAgIHJl dHVybiB6ZSh0KTsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgT3IgPSBmdW5jdGlvbiAoKSB7 DQogICAgICAgICAgdmFyIGUgPSBQci5hcHBseSh2b2lkIDAsIGFyZ3VtZW50cyksDQogICAg ICAgICAgICB0ID0gImFuaW1hdGlvbi0iICsgZS5uYW1lOw0KICAgICAgICAgIHJldHVybiB7 DQogICAgICAgICAgICBuYW1lOiB0LA0KICAgICAgICAgICAgc3R5bGVzOiAiQGtleWZyYW1l cyAiICsgdCArICJ7IiArIGUuc3R5bGVzICsgIn0iLA0KICAgICAgICAgICAgYW5pbTogMSwN CiAgICAgICAgICAgIHRvU3RyaW5nOiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgIHJl dHVybiAiX0VNT18iICsgdGhpcy5uYW1lICsgIl8iICsgdGhpcy5zdHlsZXMgKyAiX0VNT18i Ow0KICAgICAgICAgICAgfSwNCiAgICAgICAgICB9Ow0KICAgICAgICB9Ow0KICAgICAgICB2 YXIgTnIgPSBuKDE4NCk7DQogICAgICAgIGNvbnN0IFRyID0gZnVuY3Rpb24gKGUpIHsNCiAg ICAgICAgICBjb25zdCB7IGNsYXNzTmFtZTogbiwgY2xhc3NlczogciwgcHVsc2F0ZTogbyA9 ICExLCByaXBwbGVYOiBhLCByaXBwbGVZOiBpLCByaXBwbGVTaXplOiBsLCBpbjogdSwgb25F eGl0ZWQ6IGMsIHRpbWVvdXQ6IGQgfSA9IGUsDQogICAgICAgICAgICBbZiwgcF0gPSB0LnVz ZVN0YXRlKCExKSwNCiAgICAgICAgICAgIGggPSBzKG4sIHIucmlwcGxlLCByLnJpcHBsZVZp c2libGUsIG8gJiYgci5yaXBwbGVQdWxzYXRlKSwNCiAgICAgICAgICAgIG0gPSB7IHdpZHRo OiBsLCBoZWlnaHQ6IGwsIHRvcDogLWwgLyAyICsgaSwgbGVmdDogLWwgLyAyICsgYSB9LA0K ICAgICAgICAgICAgZyA9IHMoci5jaGlsZCwgZiAmJiByLmNoaWxkTGVhdmluZywgbyAmJiBy LmNoaWxkUHVsc2F0ZSk7DQogICAgICAgICAgcmV0dXJuICgNCiAgICAgICAgICAgIHUgfHwg ZiB8fCBwKCEwKSwNCiAgICAgICAgICAgIHQudXNlRWZmZWN0KCgpID0+IHsNCiAgICAgICAg ICAgICAgaWYgKCF1ICYmIG51bGwgIT0gYykgew0KICAgICAgICAgICAgICAgIGNvbnN0IGUg PSBzZXRUaW1lb3V0KGMsIGQpOw0KICAgICAgICAgICAgICAgIHJldHVybiAoKSA9PiB7DQog ICAgICAgICAgICAgICAgICBjbGVhclRpbWVvdXQoZSk7DQogICAgICAgICAgICAgICAgfTsN CiAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwgW2MsIHUsIGRdKSwNCiAgICAgICAg ICAgICgwLCBOci5qc3gpKCJzcGFuIiwgeyBjbGFzc05hbWU6IGgsIHN0eWxlOiBtLCBjaGls ZHJlbjogKDAsIE5yLmpzeCkoInNwYW4iLCB7IGNsYXNzTmFtZTogZyB9KSB9KQ0KICAgICAg ICAgICk7DQogICAgICAgIH0sDQogICAgICAgICAgQXIgPSAoZSkgPT4gZSwNCiAgICAgICAg ICBNciA9ICgoKSA9PiB7DQogICAgICAgICAgICBsZXQgZSA9IEFyOw0KICAgICAgICAgICAg cmV0dXJuIHsNCiAgICAgICAgICAgICAgY29uZmlndXJlKHQpIHsNCiAgICAgICAgICAgICAg ICBlID0gdDsNCiAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgZ2VuZXJhdGU6ICh0 KSA9PiBlKHQpLA0KICAgICAgICAgICAgICByZXNldCgpIHsNCiAgICAgICAgICAgICAgICBl ID0gQXI7DQogICAgICAgICAgICAgIH0sDQogICAgICAgICAgICB9Ow0KICAgICAgICAgIH0p KCksDQogICAgICAgICAgenIgPSB7DQogICAgICAgICAgICBhY3RpdmU6ICJhY3RpdmUiLA0K ICAgICAgICAgICAgY2hlY2tlZDogImNoZWNrZWQiLA0KICAgICAgICAgICAgY29tcGxldGVk OiAiY29tcGxldGVkIiwNCiAgICAgICAgICAgIGRpc2FibGVkOiAiZGlzYWJsZWQiLA0KICAg ICAgICAgICAgZXJyb3I6ICJlcnJvciIsDQogICAgICAgICAgICBleHBhbmRlZDogImV4cGFu ZGVkIiwNCiAgICAgICAgICAgIGZvY3VzZWQ6ICJmb2N1c2VkIiwNCiAgICAgICAgICAgIGZv Y3VzVmlzaWJsZTogImZvY3VzVmlzaWJsZSIsDQogICAgICAgICAgICBvcGVuOiAib3BlbiIs DQogICAgICAgICAgICByZWFkT25seTogInJlYWRPbmx5IiwNCiAgICAgICAgICAgIHJlcXVp cmVkOiAicmVxdWlyZWQiLA0KICAgICAgICAgICAgc2VsZWN0ZWQ6ICJzZWxlY3RlZCIsDQog ICAgICAgICAgfTsNCiAgICAgICAgZnVuY3Rpb24ganIoZSwgdCkgew0KICAgICAgICAgIGxl dCBuID0gYXJndW1lbnRzLmxlbmd0aCA+IDIgJiYgdm9pZCAwICE9PSBhcmd1bWVudHNbMl0g PyBhcmd1bWVudHNbMl0gOiAiTXVpIjsNCiAgICAgICAgICBjb25zdCByID0genJbdF07DQog ICAgICAgICAgcmV0dXJuIHIgPyAiIi5jb25jYXQobiwgIi0iKS5jb25jYXQocikgOiAiIi5j b25jYXQoTXIuZ2VuZXJhdGUoZSksICItIikuY29uY2F0KHQpOw0KICAgICAgICB9DQogICAg ICAgIGZ1bmN0aW9uIElyKGUsIHQpIHsNCiAgICAgICAgICBsZXQgbiA9IGFyZ3VtZW50cy5s ZW5ndGggPiAyICYmIHZvaWQgMCAhPT0gYXJndW1lbnRzWzJdID8gYXJndW1lbnRzWzJdIDog Ik11aSI7DQogICAgICAgICAgY29uc3QgciA9IHt9Ow0KICAgICAgICAgIHJldHVybiAoDQog ICAgICAgICAgICB0LmZvckVhY2goKHQpID0+IHsNCiAgICAgICAgICAgICAgclt0XSA9IGpy KGUsIHQsIG4pOw0KICAgICAgICAgICAgfSksDQogICAgICAgICAgICByDQogICAgICAgICAg KTsNCiAgICAgICAgfQ0KICAgICAgICBjb25zdCBMciA9IElyKCJNdWlUb3VjaFJpcHBsZSIs IFsicm9vdCIsICJyaXBwbGUiLCAicmlwcGxlVmlzaWJsZSIsICJyaXBwbGVQdWxzYXRlIiwg ImNoaWxkIiwgImNoaWxkTGVhdmluZyIsICJjaGlsZFB1bHNhdGUiXSk7DQogICAgICAgIHZh ciBGciwgQnIsIERyLCBVcjsNCiAgICAgICAgY29uc3QgV3IgPSBbImNlbnRlciIsICJjbGFz c2VzIiwgImNsYXNzTmFtZSJdOw0KICAgICAgICBsZXQgVnIsIEhyLCBxciwgJHI7DQogICAg ICAgIGNvbnN0IEtyID0gT3IoVnIgfHwgKFZyID0gRnIgfHwgKEZyID0gdnIoWyJcbiAgMCUg e1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gICAgb3BhY2l0eTogMC4xO1xuICB9XG5c biAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICBvcGFjaXR5OiAwLjM7 XG4gIH1cbiJdKSkpKSwNCiAgICAgICAgICBRciA9IE9yKEhyIHx8IChIciA9IEJyIHx8IChC ciA9IHZyKFsiXG4gIDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgMTAwJSB7XG4g ICAgb3BhY2l0eTogMDtcbiAgfVxuIl0pKSkpLA0KICAgICAgICAgIEdyID0gT3IocXIgfHwg KHFyID0gRHIgfHwgKERyID0gdnIoWyJcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUo MSk7XG4gIH1cblxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC45Mik7XG4gIH1c blxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB9XG4iXSkpKSksDQog ICAgICAgICAgWXIgPSBZbigic3BhbiIsIHsgbmFtZTogIk11aVRvdWNoUmlwcGxlIiwgc2xv dDogIlJvb3QiIH0pKHsgb3ZlcmZsb3c6ICJoaWRkZW4iLCBwb2ludGVyRXZlbnRzOiAibm9u ZSIsIHBvc2l0aW9uOiAiYWJzb2x1dGUiLCB6SW5kZXg6IDAsIHRvcDogMCwgcmlnaHQ6IDAs IGJvdHRvbTogMCwgbGVmdDogMCwgYm9yZGVyUmFkaXVzOiAiaW5oZXJpdCIgfSksDQogICAg ICAgICAgWHIgPSBZbihUciwgeyBuYW1lOiAiTXVpVG91Y2hSaXBwbGUiLCBzbG90OiAiUmlw cGxlIiB9KSgNCiAgICAgICAgICAgICRyIHx8DQogICAgICAgICAgICAoJHIgPQ0KICAgICAg ICAgICAgICBVciB8fA0KICAgICAgICAgICAgICAoVXIgPSB2cihbDQogICAgICAgICAgICAg ICAgIlxuICBvcGFjaXR5OiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgJi4iLA0K ICAgICAgICAgICAgICAgICIge1xuICAgIG9wYWNpdHk6IDAuMztcbiAgICB0cmFuc2Zvcm06 IHNjYWxlKDEpO1xuICAgIGFuaW1hdGlvbi1uYW1lOiAiLA0KICAgICAgICAgICAgICAgICI7 XG4gICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAiLA0KICAgICAgICAgICAgICAgICJtcztcbiAg ICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiAiLA0KICAgICAgICAgICAgICAgICI7XG4g IH1cblxuICAmLiIsDQogICAgICAgICAgICAgICAgIiB7XG4gICAgYW5pbWF0aW9uLWR1cmF0 aW9uOiAiLA0KICAgICAgICAgICAgICAgICJtcztcbiAgfVxuXG4gICYgLiIsDQogICAgICAg ICAgICAgICAgIiB7XG4gICAgb3BhY2l0eTogMTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAg ICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYm9yZGVyLXJhZGl1czog NTAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6IGN1cnJlbnRDb2xvcjtcbiAgfVxuXG4gICYg LiIsDQogICAgICAgICAgICAgICAgIiB7XG4gICAgb3BhY2l0eTogMDtcbiAgICBhbmltYXRp b24tbmFtZTogIiwNCiAgICAgICAgICAgICAgICAiO1xuICAgIGFuaW1hdGlvbi1kdXJhdGlv bjogIiwNCiAgICAgICAgICAgICAgICAibXM7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5j dGlvbjogIiwNCiAgICAgICAgICAgICAgICAiO1xuICB9XG5cbiAgJiAuIiwNCiAgICAgICAg ICAgICAgICAiIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgLyogQG5vZmxpcCAq L1xuICAgIGxlZnQ6IDBweDtcbiAgICB0b3A6IDA7XG4gICAgYW5pbWF0aW9uLW5hbWU6ICIs DQogICAgICAgICAgICAgICAgIjtcbiAgICBhbmltYXRpb24tZHVyYXRpb246IDI1MDBtcztc biAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiAiLA0KICAgICAgICAgICAgICAgICI7 XG4gICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgYW5pbWF0 aW9uLWRlbGF5OiAyMDBtcztcbiAgfVxuIiwNCiAgICAgICAgICAgICAgXSkpKSwNCiAgICAg ICAgICAgIExyLnJpcHBsZVZpc2libGUsDQogICAgICAgICAgICBLciwNCiAgICAgICAgICAg IDU1MCwNCiAgICAgICAgICAgIChlKSA9PiB7DQogICAgICAgICAgICAgIGxldCB7IHRoZW1l OiB0IH0gPSBlOw0KICAgICAgICAgICAgICByZXR1cm4gdC50cmFuc2l0aW9ucy5lYXNpbmcu ZWFzZUluT3V0Ow0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIExyLnJpcHBsZVB1bHNh dGUsDQogICAgICAgICAgICAoZSkgPT4gew0KICAgICAgICAgICAgICBsZXQgeyB0aGVtZTog dCB9ID0gZTsNCiAgICAgICAgICAgICAgcmV0dXJuIHQudHJhbnNpdGlvbnMuZHVyYXRpb24u c2hvcnRlcjsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBMci5jaGlsZCwNCiAgICAg ICAgICAgIExyLmNoaWxkTGVhdmluZywNCiAgICAgICAgICAgIFFyLA0KICAgICAgICAgICAg NTUwLA0KICAgICAgICAgICAgKGUpID0+IHsNCiAgICAgICAgICAgICAgbGV0IHsgdGhlbWU6 IHQgfSA9IGU7DQogICAgICAgICAgICAgIHJldHVybiB0LnRyYW5zaXRpb25zLmVhc2luZy5l YXNlSW5PdXQ7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgTHIuY2hpbGRQdWxzYXRl LA0KICAgICAgICAgICAgR3IsDQogICAgICAgICAgICAoZSkgPT4gew0KICAgICAgICAgICAg ICBsZXQgeyB0aGVtZTogdCB9ID0gZTsNCiAgICAgICAgICAgICAgcmV0dXJuIHQudHJhbnNp dGlvbnMuZWFzaW5nLmVhc2VJbk91dDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICApLA0K ICAgICAgICAgIFpyID0gdC5mb3J3YXJkUmVmKGZ1bmN0aW9uIChlLCBuKSB7DQogICAgICAg ICAgICBjb25zdCByID0gdHIoeyBwcm9wczogZSwgbmFtZTogIk11aVRvdWNoUmlwcGxlIiB9 KSwNCiAgICAgICAgICAgICAgeyBjZW50ZXI6IG8gPSAhMSwgY2xhc3NlczogbCA9IHt9LCBj bGFzc05hbWU6IHUgfSA9IHIsDQogICAgICAgICAgICAgIGMgPSBhKHIsIFdyKSwNCiAgICAg ICAgICAgICAgW2QsIGZdID0gdC51c2VTdGF0ZShbXSksDQogICAgICAgICAgICAgIHAgPSB0 LnVzZVJlZigwKSwNCiAgICAgICAgICAgICAgaCA9IHQudXNlUmVmKG51bGwpOw0KICAgICAg ICAgICAgdC51c2VFZmZlY3QoKCkgPT4gew0KICAgICAgICAgICAgICBoLmN1cnJlbnQgJiYg KGguY3VycmVudCgpLCAoaC5jdXJyZW50ID0gbnVsbCkpOw0KICAgICAgICAgICAgfSwgW2Rd KTsNCiAgICAgICAgICAgIGNvbnN0IG0gPSB0LnVzZVJlZighMSksDQogICAgICAgICAgICAg IGcgPSB0LnVzZVJlZigwKSwNCiAgICAgICAgICAgICAgdiA9IHQudXNlUmVmKG51bGwpLA0K ICAgICAgICAgICAgICB5ID0gdC51c2VSZWYobnVsbCk7DQogICAgICAgICAgICB0LnVzZUVm ZmVjdCgNCiAgICAgICAgICAgICAgKCkgPT4gKCkgPT4gew0KICAgICAgICAgICAgICAgIGcu Y3VycmVudCAmJiBjbGVhclRpbWVvdXQoZy5jdXJyZW50KTsNCiAgICAgICAgICAgICAgfSwN CiAgICAgICAgICAgICAgW10NCiAgICAgICAgICAgICk7DQogICAgICAgICAgICBjb25zdCBi ID0gdC51c2VDYWxsYmFjaygNCiAgICAgICAgICAgICAgKGUpID0+IHsNCiAgICAgICAgICAg ICAgICBjb25zdCB7IHB1bHNhdGU6IHQsIHJpcHBsZVg6IG4sIHJpcHBsZVk6IHIsIHJpcHBs ZVNpemU6IG8sIGNiOiBhIH0gPSBlOw0KICAgICAgICAgICAgICAgIGYoKGUpID0+IFsNCiAg ICAgICAgICAgICAgICAgIC4uLmUsDQogICAgICAgICAgICAgICAgICAoMCwgTnIuanN4KSgN CiAgICAgICAgICAgICAgICAgICAgWHIsDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAg ICAgICAgICAgICAgICAgICBjbGFzc2VzOiB7DQogICAgICAgICAgICAgICAgICAgICAgICBy aXBwbGU6IHMobC5yaXBwbGUsIExyLnJpcHBsZSksDQogICAgICAgICAgICAgICAgICAgICAg ICByaXBwbGVWaXNpYmxlOiBzKGwucmlwcGxlVmlzaWJsZSwgTHIucmlwcGxlVmlzaWJsZSks DQogICAgICAgICAgICAgICAgICAgICAgICByaXBwbGVQdWxzYXRlOiBzKGwucmlwcGxlUHVs c2F0ZSwgTHIucmlwcGxlUHVsc2F0ZSksDQogICAgICAgICAgICAgICAgICAgICAgICBjaGls ZDogcyhsLmNoaWxkLCBMci5jaGlsZCksDQogICAgICAgICAgICAgICAgICAgICAgICBjaGls ZExlYXZpbmc6IHMobC5jaGlsZExlYXZpbmcsIExyLmNoaWxkTGVhdmluZyksDQogICAgICAg ICAgICAgICAgICAgICAgICBjaGlsZFB1bHNhdGU6IHMobC5jaGlsZFB1bHNhdGUsIExyLmNo aWxkUHVsc2F0ZSksDQogICAgICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAg ICAgICAgICB0aW1lb3V0OiA1NTAsDQogICAgICAgICAgICAgICAgICAgICAgcHVsc2F0ZTog dCwNCiAgICAgICAgICAgICAgICAgICAgICByaXBwbGVYOiBuLA0KICAgICAgICAgICAgICAg ICAgICAgIHJpcHBsZVk6IHIsDQogICAgICAgICAgICAgICAgICAgICAgcmlwcGxlU2l6ZTog bywNCiAgICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICAgcC5jdXJy ZW50DQogICAgICAgICAgICAgICAgICApLA0KICAgICAgICAgICAgICAgIF0pLA0KICAgICAg ICAgICAgICAgICAgKHAuY3VycmVudCArPSAxKSwNCiAgICAgICAgICAgICAgICAgIChoLmN1 cnJlbnQgPSBhKTsNCiAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgW2xdDQogICAg ICAgICAgICApLA0KICAgICAgICAgICAgICB3ID0gdC51c2VDYWxsYmFjaygNCiAgICAgICAg ICAgICAgICBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICBsZXQgZSA9IGFyZ3Vt ZW50cy5sZW5ndGggPiAwICYmIHZvaWQgMCAhPT0gYXJndW1lbnRzWzBdID8gYXJndW1lbnRz WzBdIDoge30sDQogICAgICAgICAgICAgICAgICAgIHQgPSBhcmd1bWVudHMubGVuZ3RoID4g MSAmJiB2b2lkIDAgIT09IGFyZ3VtZW50c1sxXSA/IGFyZ3VtZW50c1sxXSA6IHt9LA0KICAg ICAgICAgICAgICAgICAgICBuID0gYXJndW1lbnRzLmxlbmd0aCA+IDIgJiYgdm9pZCAwICE9 PSBhcmd1bWVudHNbMl0gPyBhcmd1bWVudHNbMl0gOiAoKSA9PiB7IH07DQogICAgICAgICAg ICAgICAgICBjb25zdCB7IHB1bHNhdGU6IHIgPSAhMSwgY2VudGVyOiBhID0gbyB8fCB0LnB1 bHNhdGUsIGZha2VFbGVtZW50OiBpID0gITEgfSA9IHQ7DQogICAgICAgICAgICAgICAgICBp ZiAoIm1vdXNlZG93biIgPT09IChudWxsID09IGUgPyB2b2lkIDAgOiBlLnR5cGUpICYmIG0u Y3VycmVudCkgcmV0dXJuIHZvaWQgKG0uY3VycmVudCA9ICExKTsNCiAgICAgICAgICAgICAg ICAgICJ0b3VjaHN0YXJ0IiA9PT0gKG51bGwgPT0gZSA/IHZvaWQgMCA6IGUudHlwZSkgJiYg KG0uY3VycmVudCA9ICEwKTsNCiAgICAgICAgICAgICAgICAgIGNvbnN0IGwgPSBpID8gbnVs bCA6IHkuY3VycmVudCwNCiAgICAgICAgICAgICAgICAgICAgcyA9IGwgPyBsLmdldEJvdW5k aW5nQ2xpZW50UmVjdCgpIDogeyB3aWR0aDogMCwgaGVpZ2h0OiAwLCBsZWZ0OiAwLCB0b3A6 IDAgfTsNCiAgICAgICAgICAgICAgICAgIGxldCB1LCBjLCBkOw0KICAgICAgICAgICAgICAg ICAgaWYgKGEgfHwgdm9pZCAwID09PSBlIHx8ICgwID09PSBlLmNsaWVudFggJiYgMCA9PT0g ZS5jbGllbnRZKSB8fCAoIWUuY2xpZW50WCAmJiAhZS50b3VjaGVzKSkgKHUgPSBNYXRoLnJv dW5kKHMud2lkdGggLyAyKSksIChjID0gTWF0aC5yb3VuZChzLmhlaWdodCAvIDIpKTsNCiAg ICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICBjb25zdCB7IGNs aWVudFg6IHQsIGNsaWVudFk6IG4gfSA9IGUudG91Y2hlcyAmJiBlLnRvdWNoZXMubGVuZ3Ro ID4gMCA/IGUudG91Y2hlc1swXSA6IGU7DQogICAgICAgICAgICAgICAgICAgICh1ID0gTWF0 aC5yb3VuZCh0IC0gcy5sZWZ0KSksIChjID0gTWF0aC5yb3VuZChuIC0gcy50b3ApKTsNCiAg ICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgIGlmIChhKSAoZCA9IE1hdGgu c3FydCgoMiAqIHMud2lkdGggKiogMiArIHMuaGVpZ2h0ICoqIDIpIC8gMykpLCBkICUgMiA9 PT0gMCAmJiAoZCArPSAxKTsNCiAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAg ICAgICAgICAgICBjb25zdCBlID0gMiAqIE1hdGgubWF4KE1hdGguYWJzKChsID8gbC5jbGll bnRXaWR0aCA6IDApIC0gdSksIHUpICsgMiwNCiAgICAgICAgICAgICAgICAgICAgICB0ID0g MiAqIE1hdGgubWF4KE1hdGguYWJzKChsID8gbC5jbGllbnRIZWlnaHQgOiAwKSAtIGMpLCBj KSArIDI7DQogICAgICAgICAgICAgICAgICAgIGQgPSBNYXRoLnNxcnQoZSAqKiAyICsgdCAq KiAyKTsNCiAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgIG51bGwgIT0g ZSAmJiBlLnRvdWNoZXMNCiAgICAgICAgICAgICAgICAgICAgPyBudWxsID09PSB2LmN1cnJl bnQgJiYNCiAgICAgICAgICAgICAgICAgICAgKCh2LmN1cnJlbnQgPSAoKSA9PiB7DQogICAg ICAgICAgICAgICAgICAgICAgYih7IHB1bHNhdGU6IHIsIHJpcHBsZVg6IHUsIHJpcHBsZVk6 IGMsIHJpcHBsZVNpemU6IGQsIGNiOiBuIH0pOw0KICAgICAgICAgICAgICAgICAgICB9KSwN CiAgICAgICAgICAgICAgICAgICAgICAoZy5jdXJyZW50ID0gc2V0VGltZW91dCgoKSA9PiB7 DQogICAgICAgICAgICAgICAgICAgICAgICB2LmN1cnJlbnQgJiYgKHYuY3VycmVudCgpLCAo di5jdXJyZW50ID0gbnVsbCkpOw0KICAgICAgICAgICAgICAgICAgICAgIH0sIDgwKSkpDQog ICAgICAgICAgICAgICAgICAgIDogYih7IHB1bHNhdGU6IHIsIHJpcHBsZVg6IHUsIHJpcHBs ZVk6IGMsIHJpcHBsZVNpemU6IGQsIGNiOiBuIH0pOw0KICAgICAgICAgICAgICAgIH0sDQog ICAgICAgICAgICAgICAgW28sIGJdDQogICAgICAgICAgICAgICksDQogICAgICAgICAgICAg IHggPSB0LnVzZUNhbGxiYWNrKCgpID0+IHsNCiAgICAgICAgICAgICAgICB3KHt9LCB7IHB1 bHNhdGU6ICEwIH0pOw0KICAgICAgICAgICAgICB9LCBbd10pLA0KICAgICAgICAgICAgICBT ID0gdC51c2VDYWxsYmFjaygoZSwgdCkgPT4gew0KICAgICAgICAgICAgICAgIGlmICgoY2xl YXJUaW1lb3V0KGcuY3VycmVudCksICJ0b3VjaGVuZCIgPT09IChudWxsID09IGUgPyB2b2lk IDAgOiBlLnR5cGUpICYmIHYuY3VycmVudCkpDQogICAgICAgICAgICAgICAgICByZXR1cm4g KA0KICAgICAgICAgICAgICAgICAgICB2LmN1cnJlbnQoKSwNCiAgICAgICAgICAgICAgICAg ICAgKHYuY3VycmVudCA9IG51bGwpLA0KICAgICAgICAgICAgICAgICAgICB2b2lkIChnLmN1 cnJlbnQgPSBzZXRUaW1lb3V0KCgpID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICBTKGUs IHQpOw0KICAgICAgICAgICAgICAgICAgICB9KSkNCiAgICAgICAgICAgICAgICAgICk7DQog ICAgICAgICAgICAgICAgKHYuY3VycmVudCA9IG51bGwpLCBmKChlKSA9PiAoZS5sZW5ndGgg PiAwID8gZS5zbGljZSgxKSA6IGUpKSwgKGguY3VycmVudCA9IHQpOw0KICAgICAgICAgICAg ICB9LCBbXSk7DQogICAgICAgICAgICByZXR1cm4gKA0KICAgICAgICAgICAgICB0LnVzZUlt cGVyYXRpdmVIYW5kbGUobiwgKCkgPT4gKHsgcHVsc2F0ZTogeCwgc3RhcnQ6IHcsIHN0b3A6 IFMgfSksIFt4LCB3LCBTXSksDQogICAgICAgICAgICAgICgwLCBOci5qc3gpKFlyLCBpKHsg Y2xhc3NOYW1lOiBzKExyLnJvb3QsIGwucm9vdCwgdSksIHJlZjogeSB9LCBjLCB7IGNoaWxk cmVuOiAoMCwgTnIuanN4KShSciwgeyBjb21wb25lbnQ6IG51bGwsIGV4aXQ6ICEwLCBjaGls ZHJlbjogZCB9KSB9KSkNCiAgICAgICAgICAgICk7DQogICAgICAgICAgfSksDQogICAgICAg ICAgSnIgPSBacjsNCiAgICAgICAgZnVuY3Rpb24gZW8oZSkgew0KICAgICAgICAgIHJldHVy biBqcigiTXVpQnV0dG9uQmFzZSIsIGUpOw0KICAgICAgICB9DQogICAgICAgIGNvbnN0IHRv ID0gSXIoIk11aUJ1dHRvbkJhc2UiLCBbInJvb3QiLCAiZGlzYWJsZWQiLCAiZm9jdXNWaXNp YmxlIl0pLA0KICAgICAgICAgIG5vID0gWw0KICAgICAgICAgICAgImFjdGlvbiIsDQogICAg ICAgICAgICAiY2VudGVyUmlwcGxlIiwNCiAgICAgICAgICAgICJjaGlsZHJlbiIsDQogICAg ICAgICAgICAiY2xhc3NOYW1lIiwNCiAgICAgICAgICAgICJjb21wb25lbnQiLA0KICAgICAg ICAgICAgImRpc2FibGVkIiwNCiAgICAgICAgICAgICJkaXNhYmxlUmlwcGxlIiwNCiAgICAg ICAgICAgICJkaXNhYmxlVG91Y2hSaXBwbGUiLA0KICAgICAgICAgICAgImZvY3VzUmlwcGxl IiwNCiAgICAgICAgICAgICJmb2N1c1Zpc2libGVDbGFzc05hbWUiLA0KICAgICAgICAgICAg IkxpbmtDb21wb25lbnQiLA0KICAgICAgICAgICAgIm9uQmx1ciIsDQogICAgICAgICAgICAi b25DbGljayIsDQogICAgICAgICAgICAib25Db250ZXh0TWVudSIsDQogICAgICAgICAgICAi b25EcmFnTGVhdmUiLA0KICAgICAgICAgICAgIm9uRm9jdXMiLA0KICAgICAgICAgICAgIm9u Rm9jdXNWaXNpYmxlIiwNCiAgICAgICAgICAgICJvbktleURvd24iLA0KICAgICAgICAgICAg Im9uS2V5VXAiLA0KICAgICAgICAgICAgIm9uTW91c2VEb3duIiwNCiAgICAgICAgICAgICJv bk1vdXNlTGVhdmUiLA0KICAgICAgICAgICAgIm9uTW91c2VVcCIsDQogICAgICAgICAgICAi b25Ub3VjaEVuZCIsDQogICAgICAgICAgICAib25Ub3VjaE1vdmUiLA0KICAgICAgICAgICAg Im9uVG91Y2hTdGFydCIsDQogICAgICAgICAgICAidGFiSW5kZXgiLA0KICAgICAgICAgICAg IlRvdWNoUmlwcGxlUHJvcHMiLA0KICAgICAgICAgICAgInRvdWNoUmlwcGxlUmVmIiwNCiAg ICAgICAgICAgICJ0eXBlIiwNCiAgICAgICAgICBdLA0KICAgICAgICAgIHJvID0gWW4oImJ1 dHRvbiIsIHsgbmFtZTogIk11aUJ1dHRvbkJhc2UiLCBzbG90OiAiUm9vdCIsIG92ZXJyaWRl c1Jlc29sdmVyOiAoZSwgdCkgPT4gdC5yb290IH0pKHsNCiAgICAgICAgICAgIGRpc3BsYXk6 ICJpbmxpbmUtZmxleCIsDQogICAgICAgICAgICBhbGlnbkl0ZW1zOiAiY2VudGVyIiwNCiAg ICAgICAgICAgIGp1c3RpZnlDb250ZW50OiAiY2VudGVyIiwNCiAgICAgICAgICAgIHBvc2l0 aW9uOiAicmVsYXRpdmUiLA0KICAgICAgICAgICAgYm94U2l6aW5nOiAiYm9yZGVyLWJveCIs DQogICAgICAgICAgICBXZWJraXRUYXBIaWdobGlnaHRDb2xvcjogInRyYW5zcGFyZW50IiwN CiAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogInRyYW5zcGFyZW50IiwNCiAgICAgICAg ICAgIG91dGxpbmU6IDAsDQogICAgICAgICAgICBib3JkZXI6IDAsDQogICAgICAgICAgICBt YXJnaW46IDAsDQogICAgICAgICAgICBib3JkZXJSYWRpdXM6IDAsDQogICAgICAgICAgICBw YWRkaW5nOiAwLA0KICAgICAgICAgICAgY3Vyc29yOiAicG9pbnRlciIsDQogICAgICAgICAg ICB1c2VyU2VsZWN0OiAibm9uZSIsDQogICAgICAgICAgICB2ZXJ0aWNhbEFsaWduOiAibWlk ZGxlIiwNCiAgICAgICAgICAgIE1vekFwcGVhcmFuY2U6ICJub25lIiwNCiAgICAgICAgICAg IFdlYmtpdEFwcGVhcmFuY2U6ICJub25lIiwNCiAgICAgICAgICAgIHRleHREZWNvcmF0aW9u OiAibm9uZSIsDQogICAgICAgICAgICBjb2xvcjogImluaGVyaXQiLA0KICAgICAgICAgICAg IiY6Oi1tb3otZm9jdXMtaW5uZXIiOiB7IGJvcmRlclN0eWxlOiAibm9uZSIgfSwNCiAgICAg ICAgICAgIFsiJi4iLmNvbmNhdCh0by5kaXNhYmxlZCldOiB7IHBvaW50ZXJFdmVudHM6ICJu b25lIiwgY3Vyc29yOiAiZGVmYXVsdCIgfSwNCiAgICAgICAgICAgICJAbWVkaWEgcHJpbnQi OiB7IGNvbG9yQWRqdXN0OiAiZXhhY3QiIH0sDQogICAgICAgICAgfSksDQogICAgICAgICAg b28gPSB0LmZvcndhcmRSZWYoZnVuY3Rpb24gKGUsIG4pIHsNCiAgICAgICAgICAgIGNvbnN0 IHIgPSB0cih7IHByb3BzOiBlLCBuYW1lOiAiTXVpQnV0dG9uQmFzZSIgfSksDQogICAgICAg ICAgICAgIHsNCiAgICAgICAgICAgICAgICBhY3Rpb246IG8sDQogICAgICAgICAgICAgICAg Y2VudGVyUmlwcGxlOiBsID0gITEsDQogICAgICAgICAgICAgICAgY2hpbGRyZW46IHUsDQog ICAgICAgICAgICAgICAgY2xhc3NOYW1lOiBkLA0KICAgICAgICAgICAgICAgIGNvbXBvbmVu dDogZiA9ICJidXR0b24iLA0KICAgICAgICAgICAgICAgIGRpc2FibGVkOiBwID0gITEsDQog ICAgICAgICAgICAgICAgZGlzYWJsZVJpcHBsZTogaCA9ICExLA0KICAgICAgICAgICAgICAg IGRpc2FibGVUb3VjaFJpcHBsZTogbSA9ICExLA0KICAgICAgICAgICAgICAgIGZvY3VzUmlw cGxlOiBnID0gITEsDQogICAgICAgICAgICAgICAgTGlua0NvbXBvbmVudDogdiA9ICJhIiwN CiAgICAgICAgICAgICAgICBvbkJsdXI6IHksDQogICAgICAgICAgICAgICAgb25DbGljazog YiwNCiAgICAgICAgICAgICAgICBvbkNvbnRleHRNZW51OiB3LA0KICAgICAgICAgICAgICAg IG9uRHJhZ0xlYXZlOiB4LA0KICAgICAgICAgICAgICAgIG9uRm9jdXM6IFMsDQogICAgICAg ICAgICAgICAgb25Gb2N1c1Zpc2libGU6IGssDQogICAgICAgICAgICAgICAgb25LZXlEb3du OiBFLA0KICAgICAgICAgICAgICAgIG9uS2V5VXA6IEMsDQogICAgICAgICAgICAgICAgb25N b3VzZURvd246IFIsDQogICAgICAgICAgICAgICAgb25Nb3VzZUxlYXZlOiBfLA0KICAgICAg ICAgICAgICAgIG9uTW91c2VVcDogUCwNCiAgICAgICAgICAgICAgICBvblRvdWNoRW5kOiBP LA0KICAgICAgICAgICAgICAgIG9uVG91Y2hNb3ZlOiBOLA0KICAgICAgICAgICAgICAgIG9u VG91Y2hTdGFydDogVCwNCiAgICAgICAgICAgICAgICB0YWJJbmRleDogQSA9IDAsDQogICAg ICAgICAgICAgICAgVG91Y2hSaXBwbGVQcm9wczogTSwNCiAgICAgICAgICAgICAgICB0b3Vj aFJpcHBsZVJlZjogeiwNCiAgICAgICAgICAgICAgICB0eXBlOiBqLA0KICAgICAgICAgICAg ICB9ID0gciwNCiAgICAgICAgICAgICAgSSA9IGEociwgbm8pLA0KICAgICAgICAgICAgICBM ID0gdC51c2VSZWYobnVsbCksDQogICAgICAgICAgICAgIEYgPSB0LnVzZVJlZihudWxsKSwN CiAgICAgICAgICAgICAgQiA9IG9yKEYsIHopLA0KICAgICAgICAgICAgICB7IGlzRm9jdXNW aXNpYmxlUmVmOiBELCBvbkZvY3VzOiBVLCBvbkJsdXI6IFcsIHJlZjogViB9ID0gZ3IoKSwN CiAgICAgICAgICAgICAgW0gsIHFdID0gdC51c2VTdGF0ZSghMSk7DQogICAgICAgICAgICBw ICYmIEggJiYgcSghMSksDQogICAgICAgICAgICAgIHQudXNlSW1wZXJhdGl2ZUhhbmRsZSgN CiAgICAgICAgICAgICAgICBvLA0KICAgICAgICAgICAgICAgICgpID0+ICh7DQogICAgICAg ICAgICAgICAgICBmb2N1c1Zpc2libGU6ICgpID0+IHsNCiAgICAgICAgICAgICAgICAgICAg cSghMCksIEwuY3VycmVudC5mb2N1cygpOw0KICAgICAgICAgICAgICAgICAgfSwNCiAgICAg ICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgICBbXQ0KICAgICAgICAgICAgICApOw0K ICAgICAgICAgICAgY29uc3QgWyQsIEtdID0gdC51c2VTdGF0ZSghMSk7DQogICAgICAgICAg ICB0LnVzZUVmZmVjdCgoKSA9PiB7DQogICAgICAgICAgICAgIEsoITApOw0KICAgICAgICAg ICAgfSwgW10pOw0KICAgICAgICAgICAgY29uc3QgUSA9ICQgJiYgIWggJiYgIXA7DQogICAg ICAgICAgICBmdW5jdGlvbiBHKGUsIHQpIHsNCiAgICAgICAgICAgICAgbGV0IG4gPSBhcmd1 bWVudHMubGVuZ3RoID4gMiAmJiB2b2lkIDAgIT09IGFyZ3VtZW50c1syXSA/IGFyZ3VtZW50 c1syXSA6IG07DQogICAgICAgICAgICAgIHJldHVybiBscigocikgPT4gew0KICAgICAgICAg ICAgICAgIHQgJiYgdChyKTsNCiAgICAgICAgICAgICAgICByZXR1cm4gIW4gJiYgRi5jdXJy ZW50ICYmIEYuY3VycmVudFtlXShyKSwgITA7DQogICAgICAgICAgICAgIH0pOw0KICAgICAg ICAgICAgfQ0KICAgICAgICAgICAgdC51c2VFZmZlY3QoKCkgPT4gew0KICAgICAgICAgICAg ICBIICYmIGcgJiYgIWggJiYgJCAmJiBGLmN1cnJlbnQucHVsc2F0ZSgpOw0KICAgICAgICAg ICAgfSwgW2gsIGcsIEgsICRdKTsNCiAgICAgICAgICAgIGNvbnN0IFkgPSBHKCJzdGFydCIs IFIpLA0KICAgICAgICAgICAgICBYID0gRygic3RvcCIsIHcpLA0KICAgICAgICAgICAgICBa ID0gRygic3RvcCIsIHgpLA0KICAgICAgICAgICAgICBKID0gRygic3RvcCIsIFApLA0KICAg ICAgICAgICAgICBlZSA9IEcoInN0b3AiLCAoZSkgPT4gew0KICAgICAgICAgICAgICAgIEgg JiYgZS5wcmV2ZW50RGVmYXVsdCgpLCBfICYmIF8oZSk7DQogICAgICAgICAgICAgIH0pLA0K ICAgICAgICAgICAgICB0ZSA9IEcoInN0YXJ0IiwgVCksDQogICAgICAgICAgICAgIG5lID0g Rygic3RvcCIsIE8pLA0KICAgICAgICAgICAgICByZSA9IEcoInN0b3AiLCBOKSwNCiAgICAg ICAgICAgICAgb2UgPSBHKA0KICAgICAgICAgICAgICAgICJzdG9wIiwNCiAgICAgICAgICAg ICAgICAoZSkgPT4gew0KICAgICAgICAgICAgICAgICAgVyhlKSwgITEgPT09IEQuY3VycmVu dCAmJiBxKCExKSwgeSAmJiB5KGUpOw0KICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAg ICAgICAgITENCiAgICAgICAgICAgICAgKSwNCiAgICAgICAgICAgICAgYWUgPSBscigoZSkg PT4gew0KICAgICAgICAgICAgICAgIEwuY3VycmVudCB8fCAoTC5jdXJyZW50ID0gZS5jdXJy ZW50VGFyZ2V0KSwgVShlKSwgITAgPT09IEQuY3VycmVudCAmJiAocSghMCksIGsgJiYgayhl KSksIFMgJiYgUyhlKTsNCiAgICAgICAgICAgICAgfSksDQogICAgICAgICAgICAgIGllID0g KCkgPT4gew0KICAgICAgICAgICAgICAgIGNvbnN0IGUgPSBMLmN1cnJlbnQ7DQogICAgICAg ICAgICAgICAgcmV0dXJuIGYgJiYgImJ1dHRvbiIgIT09IGYgJiYgISgiQSIgPT09IGUudGFn TmFtZSAmJiBlLmhyZWYpOw0KICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICBsZSA9 IHQudXNlUmVmKCExKSwNCiAgICAgICAgICAgICAgc2UgPSBscigoZSkgPT4gew0KICAgICAg ICAgICAgICAgIGcgJiYNCiAgICAgICAgICAgICAgICAgICFsZS5jdXJyZW50ICYmDQogICAg ICAgICAgICAgICAgICBIICYmDQogICAgICAgICAgICAgICAgICBGLmN1cnJlbnQgJiYNCiAg ICAgICAgICAgICAgICAgICIgIiA9PT0gZS5rZXkgJiYNCiAgICAgICAgICAgICAgICAgICgo bGUuY3VycmVudCA9ICEwKSwNCiAgICAgICAgICAgICAgICAgICAgRi5jdXJyZW50LnN0b3Ao ZSwgKCkgPT4gew0KICAgICAgICAgICAgICAgICAgICAgIEYuY3VycmVudC5zdGFydChlKTsN CiAgICAgICAgICAgICAgICAgICAgfSkpLA0KICAgICAgICAgICAgICAgICAgZS50YXJnZXQg PT09IGUuY3VycmVudFRhcmdldCAmJiBpZSgpICYmICIgIiA9PT0gZS5rZXkgJiYgZS5wcmV2 ZW50RGVmYXVsdCgpLA0KICAgICAgICAgICAgICAgICAgRSAmJiBFKGUpLA0KICAgICAgICAg ICAgICAgICAgZS50YXJnZXQgPT09IGUuY3VycmVudFRhcmdldCAmJiBpZSgpICYmICJFbnRl ciIgPT09IGUua2V5ICYmICFwICYmIChlLnByZXZlbnREZWZhdWx0KCksIGIgJiYgYihlKSk7 DQogICAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAgICB1ZSA9IGxyKChlKSA9PiB7DQog ICAgICAgICAgICAgICAgZyAmJg0KICAgICAgICAgICAgICAgICAgIiAiID09PSBlLmtleSAm Jg0KICAgICAgICAgICAgICAgICAgRi5jdXJyZW50ICYmDQogICAgICAgICAgICAgICAgICBI ICYmDQogICAgICAgICAgICAgICAgICAhZS5kZWZhdWx0UHJldmVudGVkICYmDQogICAgICAg ICAgICAgICAgICAoKGxlLmN1cnJlbnQgPSAhMSksDQogICAgICAgICAgICAgICAgICAgIEYu Y3VycmVudC5zdG9wKGUsICgpID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICBGLmN1cnJl bnQucHVsc2F0ZShlKTsNCiAgICAgICAgICAgICAgICAgICAgfSkpLA0KICAgICAgICAgICAg ICAgICAgQyAmJiBDKGUpLA0KICAgICAgICAgICAgICAgICAgYiAmJiBlLnRhcmdldCA9PT0g ZS5jdXJyZW50VGFyZ2V0ICYmIGllKCkgJiYgIiAiID09PSBlLmtleSAmJiAhZS5kZWZhdWx0 UHJldmVudGVkICYmIGIoZSk7DQogICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgbGV0 IGNlID0gZjsNCiAgICAgICAgICAgICJidXR0b24iID09PSBjZSAmJiAoSS5ocmVmIHx8IEku dG8pICYmIChjZSA9IHYpOw0KICAgICAgICAgICAgY29uc3QgZGUgPSB7fTsNCiAgICAgICAg ICAgICJidXR0b24iID09PSBjZSA/ICgoZGUudHlwZSA9IHZvaWQgMCA9PT0gaiA/ICJidXR0 b24iIDogaiksIChkZS5kaXNhYmxlZCA9IHApKSA6IChJLmhyZWYgfHwgSS50byB8fCAoZGUu cm9sZSA9ICJidXR0b24iKSwgcCAmJiAoZGVbImFyaWEtZGlzYWJsZWQiXSA9IHApKTsNCiAg ICAgICAgICAgIGNvbnN0IGZlID0gb3IobiwgViwgTCk7DQogICAgICAgICAgICBjb25zdCBw ZSA9IGkoe30sIHIsIHsgY2VudGVyUmlwcGxlOiBsLCBjb21wb25lbnQ6IGYsIGRpc2FibGVk OiBwLCBkaXNhYmxlUmlwcGxlOiBoLCBkaXNhYmxlVG91Y2hSaXBwbGU6IG0sIGZvY3VzUmlw cGxlOiBnLCB0YWJJbmRleDogQSwgZm9jdXNWaXNpYmxlOiBIIH0pLA0KICAgICAgICAgICAg ICBoZSA9ICgoZSkgPT4gew0KICAgICAgICAgICAgICAgIGNvbnN0IHsgZGlzYWJsZWQ6IHQs IGZvY3VzVmlzaWJsZTogbiwgZm9jdXNWaXNpYmxlQ2xhc3NOYW1lOiByLCBjbGFzc2VzOiBv IH0gPSBlLA0KICAgICAgICAgICAgICAgICAgYSA9IGMoeyByb290OiBbInJvb3QiLCB0ICYm ICJkaXNhYmxlZCIsIG4gJiYgImZvY3VzVmlzaWJsZSJdIH0sIGVvLCBvKTsNCiAgICAgICAg ICAgICAgICByZXR1cm4gbiAmJiByICYmIChhLnJvb3QgKz0gIiAiLmNvbmNhdChyKSksIGE7 DQogICAgICAgICAgICAgIH0pKHBlKTsNCiAgICAgICAgICAgIHJldHVybiAoMCwNCiAgICAg ICAgICAgICAgTnIuanN4cykocm8sIGkoeyBhczogY2UsIGNsYXNzTmFtZTogcyhoZS5yb290 LCBkKSwgb3duZXJTdGF0ZTogcGUsIG9uQmx1cjogb2UsIG9uQ2xpY2s6IGIsIG9uQ29udGV4 dE1lbnU6IFgsIG9uRm9jdXM6IGFlLCBvbktleURvd246IHNlLCBvbktleVVwOiB1ZSwgb25N b3VzZURvd246IFksIG9uTW91c2VMZWF2ZTogZWUsIG9uTW91c2VVcDogSiwgb25EcmFnTGVh dmU6IFosIG9uVG91Y2hFbmQ6IG5lLCBvblRvdWNoTW92ZTogcmUsIG9uVG91Y2hTdGFydDog dGUsIHJlZjogZmUsIHRhYkluZGV4OiBwID8gLTEgOiBBLCB0eXBlOiBqIH0sIGRlLCBJLCB7 IGNoaWxkcmVuOiBbdSwgUSA/ICgwLCBOci5qc3gpKEpyLCBpKHsgcmVmOiBCLCBjZW50ZXI6 IGwgfSwgTSkpIDogbnVsbF0gfSkpOw0KICAgICAgICAgIH0pLA0KICAgICAgICAgIGFvID0g b28sDQogICAgICAgICAgaW8gPSBzdDsNCiAgICAgICAgZnVuY3Rpb24gbG8oZSkgew0KICAg ICAgICAgIHJldHVybiBqcigiTXVpQnV0dG9uIiwgZSk7DQogICAgICAgIH0NCiAgICAgICAg Y29uc3Qgc28gPSBJcigiTXVpQnV0dG9uIiwgWw0KICAgICAgICAgICJyb290IiwNCiAgICAg ICAgICAidGV4dCIsDQogICAgICAgICAgInRleHRJbmhlcml0IiwNCiAgICAgICAgICAidGV4 dFByaW1hcnkiLA0KICAgICAgICAgICJ0ZXh0U2Vjb25kYXJ5IiwNCiAgICAgICAgICAidGV4 dFN1Y2Nlc3MiLA0KICAgICAgICAgICJ0ZXh0RXJyb3IiLA0KICAgICAgICAgICJ0ZXh0SW5m byIsDQogICAgICAgICAgInRleHRXYXJuaW5nIiwNCiAgICAgICAgICAib3V0bGluZWQiLA0K ICAgICAgICAgICJvdXRsaW5lZEluaGVyaXQiLA0KICAgICAgICAgICJvdXRsaW5lZFByaW1h cnkiLA0KICAgICAgICAgICJvdXRsaW5lZFNlY29uZGFyeSIsDQogICAgICAgICAgIm91dGxp bmVkU3VjY2VzcyIsDQogICAgICAgICAgIm91dGxpbmVkRXJyb3IiLA0KICAgICAgICAgICJv dXRsaW5lZEluZm8iLA0KICAgICAgICAgICJvdXRsaW5lZFdhcm5pbmciLA0KICAgICAgICAg ICJjb250YWluZWQiLA0KICAgICAgICAgICJjb250YWluZWRJbmhlcml0IiwNCiAgICAgICAg ICAiY29udGFpbmVkUHJpbWFyeSIsDQogICAgICAgICAgImNvbnRhaW5lZFNlY29uZGFyeSIs DQogICAgICAgICAgImNvbnRhaW5lZFN1Y2Nlc3MiLA0KICAgICAgICAgICJjb250YWluZWRF cnJvciIsDQogICAgICAgICAgImNvbnRhaW5lZEluZm8iLA0KICAgICAgICAgICJjb250YWlu ZWRXYXJuaW5nIiwNCiAgICAgICAgICAiZGlzYWJsZUVsZXZhdGlvbiIsDQogICAgICAgICAg ImZvY3VzVmlzaWJsZSIsDQogICAgICAgICAgImRpc2FibGVkIiwNCiAgICAgICAgICAiY29s b3JJbmhlcml0IiwNCiAgICAgICAgICAidGV4dFNpemVTbWFsbCIsDQogICAgICAgICAgInRl eHRTaXplTWVkaXVtIiwNCiAgICAgICAgICAidGV4dFNpemVMYXJnZSIsDQogICAgICAgICAg Im91dGxpbmVkU2l6ZVNtYWxsIiwNCiAgICAgICAgICAib3V0bGluZWRTaXplTWVkaXVtIiwN CiAgICAgICAgICAib3V0bGluZWRTaXplTGFyZ2UiLA0KICAgICAgICAgICJjb250YWluZWRT aXplU21hbGwiLA0KICAgICAgICAgICJjb250YWluZWRTaXplTWVkaXVtIiwNCiAgICAgICAg ICAiY29udGFpbmVkU2l6ZUxhcmdlIiwNCiAgICAgICAgICAic2l6ZU1lZGl1bSIsDQogICAg ICAgICAgInNpemVTbWFsbCIsDQogICAgICAgICAgInNpemVMYXJnZSIsDQogICAgICAgICAg ImZ1bGxXaWR0aCIsDQogICAgICAgICAgInN0YXJ0SWNvbiIsDQogICAgICAgICAgImVuZElj b24iLA0KICAgICAgICAgICJpY29uU2l6ZVNtYWxsIiwNCiAgICAgICAgICAiaWNvblNpemVN ZWRpdW0iLA0KICAgICAgICAgICJpY29uU2l6ZUxhcmdlIiwNCiAgICAgICAgXSk7DQogICAg ICAgIGNvbnN0IHVvID0gdC5jcmVhdGVDb250ZXh0KHt9KTsNCiAgICAgICAgY29uc3QgY28g PSB0LmNyZWF0ZUNvbnRleHQodm9pZCAwKSwNCiAgICAgICAgICBmbyA9IFsiY2hpbGRyZW4i LCAiY29sb3IiLCAiY29tcG9uZW50IiwgImNsYXNzTmFtZSIsICJkaXNhYmxlZCIsICJkaXNh YmxlRWxldmF0aW9uIiwgImRpc2FibGVGb2N1c1JpcHBsZSIsICJlbmRJY29uIiwgImZvY3Vz VmlzaWJsZUNsYXNzTmFtZSIsICJmdWxsV2lkdGgiLCAic2l6ZSIsICJzdGFydEljb24iLCAi dHlwZSIsICJ2YXJpYW50Il0sDQogICAgICAgICAgcG8gPSAoZSkgPT4NCiAgICAgICAgICAg IGkoe30sICJzbWFsbCIgPT09IGUuc2l6ZSAmJiB7ICImID4gKjpudGgtb2YtdHlwZSgxKSI6 IHsgZm9udFNpemU6IDE4IH0gfSwgIm1lZGl1bSIgPT09IGUuc2l6ZSAmJiB7ICImID4gKjpu dGgtb2YtdHlwZSgxKSI6IHsgZm9udFNpemU6IDIwIH0gfSwgImxhcmdlIiA9PT0gZS5zaXpl ICYmIHsgIiYgPiAqOm50aC1vZi10eXBlKDEpIjogeyBmb250U2l6ZTogMjIgfSB9KSwNCiAg ICAgICAgICBobyA9IFluKGFvLCB7DQogICAgICAgICAgICBzaG91bGRGb3J3YXJkUHJvcDog KGUpID0+IEduKGUpIHx8ICJjbGFzc2VzIiA9PT0gZSwNCiAgICAgICAgICAgIG5hbWU6ICJN dWlCdXR0b24iLA0KICAgICAgICAgICAgc2xvdDogIlJvb3QiLA0KICAgICAgICAgICAgb3Zl cnJpZGVzUmVzb2x2ZXI6IChlLCB0KSA9PiB7DQogICAgICAgICAgICAgIGNvbnN0IHsgb3du ZXJTdGF0ZTogbiB9ID0gZTsNCiAgICAgICAgICAgICAgcmV0dXJuIFsNCiAgICAgICAgICAg ICAgICB0LnJvb3QsDQogICAgICAgICAgICAgICAgdFtuLnZhcmlhbnRdLA0KICAgICAgICAg ICAgICAgIHRbIiIuY29uY2F0KG4udmFyaWFudCkuY29uY2F0KGlvKG4uY29sb3IpKV0sDQog ICAgICAgICAgICAgICAgdFsic2l6ZSIuY29uY2F0KGlvKG4uc2l6ZSkpXSwNCiAgICAgICAg ICAgICAgICB0WyIiLmNvbmNhdChuLnZhcmlhbnQsICJTaXplIikuY29uY2F0KGlvKG4uc2l6 ZSkpXSwNCiAgICAgICAgICAgICAgICAiaW5oZXJpdCIgPT09IG4uY29sb3IgJiYgdC5jb2xv ckluaGVyaXQsDQogICAgICAgICAgICAgICAgbi5kaXNhYmxlRWxldmF0aW9uICYmIHQuZGlz YWJsZUVsZXZhdGlvbiwNCiAgICAgICAgICAgICAgICBuLmZ1bGxXaWR0aCAmJiB0LmZ1bGxX aWR0aCwNCiAgICAgICAgICAgICAgXTsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgfSko DQogICAgICAgICAgICAoZSkgPT4gew0KICAgICAgICAgICAgICBsZXQgeyB0aGVtZTogdCwg b3duZXJTdGF0ZTogbiB9ID0gZTsNCiAgICAgICAgICAgICAgdmFyIHIsIG87DQogICAgICAg ICAgICAgIGNvbnN0IGEgPSAibGlnaHQiID09PSB0LnBhbGV0dGUubW9kZSA/IHQucGFsZXR0 ZS5ncmV5WzMwMF0gOiB0LnBhbGV0dGUuZ3JleVs4MDBdLA0KICAgICAgICAgICAgICAgIGwg PSAibGlnaHQiID09PSB0LnBhbGV0dGUubW9kZSA/IHQucGFsZXR0ZS5ncmV5LkExMDAgOiB0 LnBhbGV0dGUuZ3JleVs3MDBdOw0KICAgICAgICAgICAgICByZXR1cm4gaSgNCiAgICAgICAg ICAgICAgICB7fSwNCiAgICAgICAgICAgICAgICB0LnR5cG9ncmFwaHkuYnV0dG9uLA0KICAg ICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgIG1pbldpZHRoOiA2NCwNCiAgICAg ICAgICAgICAgICAgIHBhZGRpbmc6ICI2cHggMTZweCIsDQogICAgICAgICAgICAgICAgICBi b3JkZXJSYWRpdXM6ICh0LnZhcnMgfHwgdCkuc2hhcGUuYm9yZGVyUmFkaXVzLA0KICAgICAg ICAgICAgICAgICAgdHJhbnNpdGlvbjogdC50cmFuc2l0aW9ucy5jcmVhdGUoWyJiYWNrZ3Jv dW5kLWNvbG9yIiwgImJveC1zaGFkb3ciLCAiYm9yZGVyLWNvbG9yIiwgImNvbG9yIl0sIHsg ZHVyYXRpb246IHQudHJhbnNpdGlvbnMuZHVyYXRpb24uc2hvcnQgfSksDQogICAgICAgICAg ICAgICAgICAiJjpob3ZlciI6IGkoDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAg ICAgICAgICAgICAgICB0ZXh0RGVjb3JhdGlvbjogIm5vbmUiLA0KICAgICAgICAgICAgICAg ICAgICAgIGJhY2tncm91bmRDb2xvcjogdC52YXJzID8gInJnYmEoIi5jb25jYXQodC52YXJz LnBhbGV0dGUudGV4dC5wcmltYXJ5Q2hhbm5lbCwgIiAvICIpLmNvbmNhdCh0LnZhcnMucGFs ZXR0ZS5hY3Rpb24uaG92ZXJPcGFjaXR5LCAiKSIpIDogZyh0LnBhbGV0dGUudGV4dC5wcmlt YXJ5LCB0LnBhbGV0dGUuYWN0aW9uLmhvdmVyT3BhY2l0eSksDQogICAgICAgICAgICAgICAg ICAgICAgIkBtZWRpYSAoaG92ZXI6IG5vbmUpIjogeyBiYWNrZ3JvdW5kQ29sb3I6ICJ0cmFu c3BhcmVudCIgfSwNCiAgICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAg ICAgInRleHQiID09PSBuLnZhcmlhbnQgJiYNCiAgICAgICAgICAgICAgICAgICAgImluaGVy aXQiICE9PSBuLmNvbG9yICYmIHsNCiAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5k Q29sb3I6IHQudmFycw0KICAgICAgICAgICAgICAgICAgICAgICAgPyAicmdiYSgiLmNvbmNh dCh0LnZhcnMucGFsZXR0ZVtuLmNvbG9yXS5tYWluQ2hhbm5lbCwgIiAvICIpLmNvbmNhdCh0 LnZhcnMucGFsZXR0ZS5hY3Rpb24uaG92ZXJPcGFjaXR5LCAiKSIpDQogICAgICAgICAgICAg ICAgICAgICAgICA6IGcodC5wYWxldHRlW24uY29sb3JdLm1haW4sIHQucGFsZXR0ZS5hY3Rp b24uaG92ZXJPcGFjaXR5KSwNCiAgICAgICAgICAgICAgICAgICAgICAiQG1lZGlhIChob3Zl cjogbm9uZSkiOiB7IGJhY2tncm91bmRDb2xvcjogInRyYW5zcGFyZW50IiB9LA0KICAgICAg ICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgICAib3V0bGluZWQiID09PSBu LnZhcmlhbnQgJiYNCiAgICAgICAgICAgICAgICAgICAgImluaGVyaXQiICE9PSBuLmNvbG9y ICYmIHsNCiAgICAgICAgICAgICAgICAgICAgICBib3JkZXI6ICIxcHggc29saWQgIi5jb25j YXQoKHQudmFycyB8fCB0KS5wYWxldHRlW24uY29sb3JdLm1haW4pLA0KICAgICAgICAgICAg ICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogdC52YXJzDQogICAgICAgICAgICAgICAgICAg ICAgICA/ICJyZ2JhKCIuY29uY2F0KHQudmFycy5wYWxldHRlW24uY29sb3JdLm1haW5DaGFu bmVsLCAiIC8gIikuY29uY2F0KHQudmFycy5wYWxldHRlLmFjdGlvbi5ob3Zlck9wYWNpdHks ICIpIikNCiAgICAgICAgICAgICAgICAgICAgICAgIDogZyh0LnBhbGV0dGVbbi5jb2xvcl0u bWFpbiwgdC5wYWxldHRlLmFjdGlvbi5ob3Zlck9wYWNpdHkpLA0KICAgICAgICAgICAgICAg ICAgICAgICJAbWVkaWEgKGhvdmVyOiBub25lKSI6IHsgYmFja2dyb3VuZENvbG9yOiAidHJh bnNwYXJlbnQiIH0sDQogICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAg ICAgICJjb250YWluZWQiID09PSBuLnZhcmlhbnQgJiYgew0KICAgICAgICAgICAgICAgICAg ICAgIGJhY2tncm91bmRDb2xvcjogdC52YXJzID8gdC52YXJzLnBhbGV0dGUuQnV0dG9uLmlu aGVyaXRDb250YWluZWRIb3ZlckJnIDogbCwNCiAgICAgICAgICAgICAgICAgICAgICBib3hT aGFkb3c6ICh0LnZhcnMgfHwgdCkuc2hhZG93c1s0XSwNCiAgICAgICAgICAgICAgICAgICAg ICAiQG1lZGlhIChob3Zlcjogbm9uZSkiOiB7IGJveFNoYWRvdzogKHQudmFycyB8fCB0KS5z aGFkb3dzWzJdLCBiYWNrZ3JvdW5kQ29sb3I6ICh0LnZhcnMgfHwgdCkucGFsZXR0ZS5ncmV5 WzMwMF0gfSwNCiAgICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICAg ImNvbnRhaW5lZCIgPT09IG4udmFyaWFudCAmJiAiaW5oZXJpdCIgIT09IG4uY29sb3IgJiYg eyBiYWNrZ3JvdW5kQ29sb3I6ICh0LnZhcnMgfHwgdCkucGFsZXR0ZVtuLmNvbG9yXS5kYXJr LCAiQG1lZGlhIChob3Zlcjogbm9uZSkiOiB7IGJhY2tncm91bmRDb2xvcjogKHQudmFycyB8 fCB0KS5wYWxldHRlW24uY29sb3JdLm1haW4gfSB9DQogICAgICAgICAgICAgICAgICApLA0K ICAgICAgICAgICAgICAgICAgIiY6YWN0aXZlIjogaSh7fSwgImNvbnRhaW5lZCIgPT09IG4u dmFyaWFudCAmJiB7IGJveFNoYWRvdzogKHQudmFycyB8fCB0KS5zaGFkb3dzWzhdIH0pLA0K ICAgICAgICAgICAgICAgICAgWyImLiIuY29uY2F0KHNvLmZvY3VzVmlzaWJsZSldOiBpKHt9 LCAiY29udGFpbmVkIiA9PT0gbi52YXJpYW50ICYmIHsgYm94U2hhZG93OiAodC52YXJzIHx8 IHQpLnNoYWRvd3NbNl0gfSksDQogICAgICAgICAgICAgICAgICBbIiYuIi5jb25jYXQoc28u ZGlzYWJsZWQpXTogaSgNCiAgICAgICAgICAgICAgICAgICAgeyBjb2xvcjogKHQudmFycyB8 fCB0KS5wYWxldHRlLmFjdGlvbi5kaXNhYmxlZCB9LA0KICAgICAgICAgICAgICAgICAgICAi b3V0bGluZWQiID09PSBuLnZhcmlhbnQgJiYgeyBib3JkZXI6ICIxcHggc29saWQgIi5jb25j YXQoKHQudmFycyB8fCB0KS5wYWxldHRlLmFjdGlvbi5kaXNhYmxlZEJhY2tncm91bmQpIH0s DQogICAgICAgICAgICAgICAgICAgICJjb250YWluZWQiID09PSBuLnZhcmlhbnQgJiYgeyBj b2xvcjogKHQudmFycyB8fCB0KS5wYWxldHRlLmFjdGlvbi5kaXNhYmxlZCwgYm94U2hhZG93 OiAodC52YXJzIHx8IHQpLnNoYWRvd3NbMF0sIGJhY2tncm91bmRDb2xvcjogKHQudmFycyB8 fCB0KS5wYWxldHRlLmFjdGlvbi5kaXNhYmxlZEJhY2tncm91bmQgfQ0KICAgICAgICAgICAg ICAgICAgKSwNCiAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICJ0ZXh0IiA9 PT0gbi52YXJpYW50ICYmIHsgcGFkZGluZzogIjZweCA4cHgiIH0sDQogICAgICAgICAgICAg ICAgInRleHQiID09PSBuLnZhcmlhbnQgJiYgImluaGVyaXQiICE9PSBuLmNvbG9yICYmIHsg Y29sb3I6ICh0LnZhcnMgfHwgdCkucGFsZXR0ZVtuLmNvbG9yXS5tYWluIH0sDQogICAgICAg ICAgICAgICAgIm91dGxpbmVkIiA9PT0gbi52YXJpYW50ICYmIHsgcGFkZGluZzogIjVweCAx NXB4IiwgYm9yZGVyOiAiMXB4IHNvbGlkIGN1cnJlbnRDb2xvciIgfSwNCiAgICAgICAgICAg ICAgICAib3V0bGluZWQiID09PSBuLnZhcmlhbnQgJiYNCiAgICAgICAgICAgICAgICAiaW5o ZXJpdCIgIT09IG4uY29sb3IgJiYgew0KICAgICAgICAgICAgICAgICAgY29sb3I6ICh0LnZh cnMgfHwgdCkucGFsZXR0ZVtuLmNvbG9yXS5tYWluLA0KICAgICAgICAgICAgICAgICAgYm9y ZGVyOiB0LnZhcnMgPyAiMXB4IHNvbGlkIHJnYmEoIi5jb25jYXQodC52YXJzLnBhbGV0dGVb bi5jb2xvcl0ubWFpbkNoYW5uZWwsICIgLyAwLjUpIikgOiAiMXB4IHNvbGlkICIuY29uY2F0 KGcodC5wYWxldHRlW24uY29sb3JdLm1haW4sIDAuNSkpLA0KICAgICAgICAgICAgICAgIH0s DQogICAgICAgICAgICAgICAgImNvbnRhaW5lZCIgPT09IG4udmFyaWFudCAmJiB7DQogICAg ICAgICAgICAgICAgICBjb2xvcjogdC52YXJzID8gdC52YXJzLnBhbGV0dGUudGV4dC5wcmlt YXJ5IDogbnVsbCA9PSAociA9IChvID0gdC5wYWxldHRlKS5nZXRDb250cmFzdFRleHQpID8g dm9pZCAwIDogci5jYWxsKG8sIHQucGFsZXR0ZS5ncmV5WzMwMF0pLA0KICAgICAgICAgICAg ICAgICAgYmFja2dyb3VuZENvbG9yOiB0LnZhcnMgPyB0LnZhcnMucGFsZXR0ZS5CdXR0b24u aW5oZXJpdENvbnRhaW5lZEJnIDogYSwNCiAgICAgICAgICAgICAgICAgIGJveFNoYWRvdzog KHQudmFycyB8fCB0KS5zaGFkb3dzWzJdLA0KICAgICAgICAgICAgICAgIH0sDQogICAgICAg ICAgICAgICAgImNvbnRhaW5lZCIgPT09IG4udmFyaWFudCAmJiAiaW5oZXJpdCIgIT09IG4u Y29sb3IgJiYgeyBjb2xvcjogKHQudmFycyB8fCB0KS5wYWxldHRlW24uY29sb3JdLmNvbnRy YXN0VGV4dCwgYmFja2dyb3VuZENvbG9yOiAodC52YXJzIHx8IHQpLnBhbGV0dGVbbi5jb2xv cl0ubWFpbiB9LA0KICAgICAgICAgICAgICAgICJpbmhlcml0IiA9PT0gbi5jb2xvciAmJiB7 IGNvbG9yOiAiaW5oZXJpdCIsIGJvcmRlckNvbG9yOiAiY3VycmVudENvbG9yIiB9LA0KICAg ICAgICAgICAgICAgICJzbWFsbCIgPT09IG4uc2l6ZSAmJiAidGV4dCIgPT09IG4udmFyaWFu dCAmJiB7IHBhZGRpbmc6ICI0cHggNXB4IiwgZm9udFNpemU6IHQudHlwb2dyYXBoeS5weFRv UmVtKDEzKSB9LA0KICAgICAgICAgICAgICAgICJsYXJnZSIgPT09IG4uc2l6ZSAmJiAidGV4 dCIgPT09IG4udmFyaWFudCAmJiB7IHBhZGRpbmc6ICI4cHggMTFweCIsIGZvbnRTaXplOiB0 LnR5cG9ncmFwaHkucHhUb1JlbSgxNSkgfSwNCiAgICAgICAgICAgICAgICAic21hbGwiID09 PSBuLnNpemUgJiYgIm91dGxpbmVkIiA9PT0gbi52YXJpYW50ICYmIHsgcGFkZGluZzogIjNw eCA5cHgiLCBmb250U2l6ZTogdC50eXBvZ3JhcGh5LnB4VG9SZW0oMTMpIH0sDQogICAgICAg ICAgICAgICAgImxhcmdlIiA9PT0gbi5zaXplICYmICJvdXRsaW5lZCIgPT09IG4udmFyaWFu dCAmJiB7IHBhZGRpbmc6ICI3cHggMjFweCIsIGZvbnRTaXplOiB0LnR5cG9ncmFwaHkucHhU b1JlbSgxNSkgfSwNCiAgICAgICAgICAgICAgICAic21hbGwiID09PSBuLnNpemUgJiYgImNv bnRhaW5lZCIgPT09IG4udmFyaWFudCAmJiB7IHBhZGRpbmc6ICI0cHggMTBweCIsIGZvbnRT aXplOiB0LnR5cG9ncmFwaHkucHhUb1JlbSgxMykgfSwNCiAgICAgICAgICAgICAgICAibGFy Z2UiID09PSBuLnNpemUgJiYgImNvbnRhaW5lZCIgPT09IG4udmFyaWFudCAmJiB7IHBhZGRp bmc6ICI4cHggMjJweCIsIGZvbnRTaXplOiB0LnR5cG9ncmFwaHkucHhUb1JlbSgxNSkgfSwN CiAgICAgICAgICAgICAgICBuLmZ1bGxXaWR0aCAmJiB7IHdpZHRoOiAiMTAwJSIgfQ0KICAg ICAgICAgICAgICApOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIChlKSA9PiB7DQog ICAgICAgICAgICAgIGxldCB7IG93bmVyU3RhdGU6IHQgfSA9IGU7DQogICAgICAgICAgICAg IHJldHVybiAoDQogICAgICAgICAgICAgICAgdC5kaXNhYmxlRWxldmF0aW9uICYmIHsNCiAg ICAgICAgICAgICAgICAgIGJveFNoYWRvdzogIm5vbmUiLA0KICAgICAgICAgICAgICAgICAg IiY6aG92ZXIiOiB7IGJveFNoYWRvdzogIm5vbmUiIH0sDQogICAgICAgICAgICAgICAgICBb IiYuIi5jb25jYXQoc28uZm9jdXNWaXNpYmxlKV06IHsgYm94U2hhZG93OiAibm9uZSIgfSwN CiAgICAgICAgICAgICAgICAgICImOmFjdGl2ZSI6IHsgYm94U2hhZG93OiAibm9uZSIgfSwN CiAgICAgICAgICAgICAgICAgIFsiJi4iLmNvbmNhdChzby5kaXNhYmxlZCldOiB7IGJveFNo YWRvdzogIm5vbmUiIH0sDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICApOw0K ICAgICAgICAgICAgfQ0KICAgICAgICAgICksDQogICAgICAgICAgbW8gPSBZbigic3BhbiIs IHsNCiAgICAgICAgICAgIG5hbWU6ICJNdWlCdXR0b24iLA0KICAgICAgICAgICAgc2xvdDog IlN0YXJ0SWNvbiIsDQogICAgICAgICAgICBvdmVycmlkZXNSZXNvbHZlcjogKGUsIHQpID0+ IHsNCiAgICAgICAgICAgICAgY29uc3QgeyBvd25lclN0YXRlOiBuIH0gPSBlOw0KICAgICAg ICAgICAgICByZXR1cm4gW3Quc3RhcnRJY29uLCB0WyJpY29uU2l6ZSIuY29uY2F0KGlvKG4u c2l6ZSkpXV07DQogICAgICAgICAgICB9LA0KICAgICAgICAgIH0pKChlKSA9PiB7DQogICAg ICAgICAgICBsZXQgeyBvd25lclN0YXRlOiB0IH0gPSBlOw0KICAgICAgICAgICAgcmV0dXJu IGkoeyBkaXNwbGF5OiAiaW5oZXJpdCIsIG1hcmdpblJpZ2h0OiA4LCBtYXJnaW5MZWZ0OiAt NCB9LCAic21hbGwiID09PSB0LnNpemUgJiYgeyBtYXJnaW5MZWZ0OiAtMiB9LCBwbyh0KSk7 DQogICAgICAgICAgfSksDQogICAgICAgICAgZ28gPSBZbigic3BhbiIsIHsNCiAgICAgICAg ICAgIG5hbWU6ICJNdWlCdXR0b24iLA0KICAgICAgICAgICAgc2xvdDogIkVuZEljb24iLA0K ICAgICAgICAgICAgb3ZlcnJpZGVzUmVzb2x2ZXI6IChlLCB0KSA9PiB7DQogICAgICAgICAg ICAgIGNvbnN0IHsgb3duZXJTdGF0ZTogbiB9ID0gZTsNCiAgICAgICAgICAgICAgcmV0dXJu IFt0LmVuZEljb24sIHRbImljb25TaXplIi5jb25jYXQoaW8obi5zaXplKSldXTsNCiAgICAg ICAgICAgIH0sDQogICAgICAgICAgfSkoKGUpID0+IHsNCiAgICAgICAgICAgIGxldCB7IG93 bmVyU3RhdGU6IHQgfSA9IGU7DQogICAgICAgICAgICByZXR1cm4gaSh7IGRpc3BsYXk6ICJp bmhlcml0IiwgbWFyZ2luUmlnaHQ6IC00LCBtYXJnaW5MZWZ0OiA4IH0sICJzbWFsbCIgPT09 IHQuc2l6ZSAmJiB7IG1hcmdpblJpZ2h0OiAtMiB9LCBwbyh0KSk7DQogICAgICAgICAgfSks DQogICAgICAgICAgdm8gPSB0LmZvcndhcmRSZWYoZnVuY3Rpb24gKGUsIG4pIHsNCiAgICAg ICAgICAgIGNvbnN0IHIgPSB0LnVzZUNvbnRleHQodW8pLA0KICAgICAgICAgICAgICBvID0g dC51c2VDb250ZXh0KGNvKSwNCiAgICAgICAgICAgICAgbCA9IHRyKHsgcHJvcHM6IHUociwg ZSksIG5hbWU6ICJNdWlCdXR0b24iIH0pLA0KICAgICAgICAgICAgICB7DQogICAgICAgICAg ICAgICAgY2hpbGRyZW46IGQsDQogICAgICAgICAgICAgICAgY29sb3I6IGYgPSAicHJpbWFy eSIsDQogICAgICAgICAgICAgICAgY29tcG9uZW50OiBwID0gImJ1dHRvbiIsDQogICAgICAg ICAgICAgICAgY2xhc3NOYW1lOiBoLA0KICAgICAgICAgICAgICAgIGRpc2FibGVkOiBtID0g ITEsDQogICAgICAgICAgICAgICAgZGlzYWJsZUVsZXZhdGlvbjogZyA9ICExLA0KICAgICAg ICAgICAgICAgIGRpc2FibGVGb2N1c1JpcHBsZTogdiA9ICExLA0KICAgICAgICAgICAgICAg IGVuZEljb246IHksDQogICAgICAgICAgICAgICAgZm9jdXNWaXNpYmxlQ2xhc3NOYW1lOiBi LA0KICAgICAgICAgICAgICAgIGZ1bGxXaWR0aDogdyA9ICExLA0KICAgICAgICAgICAgICAg IHNpemU6IHggPSAibWVkaXVtIiwNCiAgICAgICAgICAgICAgICBzdGFydEljb246IFMsDQog ICAgICAgICAgICAgICAgdHlwZTogaywNCiAgICAgICAgICAgICAgICB2YXJpYW50OiBFID0g InRleHQiLA0KICAgICAgICAgICAgICB9ID0gbCwNCiAgICAgICAgICAgICAgQyA9IGEobCwg Zm8pLA0KICAgICAgICAgICAgICBSID0gaSh7fSwgbCwgeyBjb2xvcjogZiwgY29tcG9uZW50 OiBwLCBkaXNhYmxlZDogbSwgZGlzYWJsZUVsZXZhdGlvbjogZywgZGlzYWJsZUZvY3VzUmlw cGxlOiB2LCBmdWxsV2lkdGg6IHcsIHNpemU6IHgsIHR5cGU6IGssIHZhcmlhbnQ6IEUgfSks DQogICAgICAgICAgICAgIF8gPSAoKGUpID0+IHsNCiAgICAgICAgICAgICAgICBjb25zdCB7 IGNvbG9yOiB0LCBkaXNhYmxlRWxldmF0aW9uOiBuLCBmdWxsV2lkdGg6IHIsIHNpemU6IG8s IHZhcmlhbnQ6IGEsIGNsYXNzZXM6IGwgfSA9IGU7DQogICAgICAgICAgICAgICAgcmV0dXJu IGkoDQogICAgICAgICAgICAgICAgICB7fSwNCiAgICAgICAgICAgICAgICAgIGwsDQogICAg ICAgICAgICAgICAgICBjKA0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAg ICAgICAgICAgcm9vdDogWyJyb290IiwgYSwgIiIuY29uY2F0KGEpLmNvbmNhdChpbyh0KSks ICJzaXplIi5jb25jYXQoaW8obykpLCAiIi5jb25jYXQoYSwgIlNpemUiKS5jb25jYXQoaW8o bykpLCAiaW5oZXJpdCIgPT09IHQgJiYgImNvbG9ySW5oZXJpdCIsIG4gJiYgImRpc2FibGVF bGV2YXRpb24iLCByICYmICJmdWxsV2lkdGgiXSwNCiAgICAgICAgICAgICAgICAgICAgICBs YWJlbDogWyJsYWJlbCJdLA0KICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0SWNvbjogWyJz dGFydEljb24iLCAiaWNvblNpemUiLmNvbmNhdChpbyhvKSldLA0KICAgICAgICAgICAgICAg ICAgICAgIGVuZEljb246IFsiZW5kSWNvbiIsICJpY29uU2l6ZSIuY29uY2F0KGlvKG8pKV0s DQogICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgIGxvLA0KICAg ICAgICAgICAgICAgICAgICBsDQogICAgICAgICAgICAgICAgICApDQogICAgICAgICAgICAg ICAgKTsNCiAgICAgICAgICAgICAgfSkoUiksDQogICAgICAgICAgICAgIFAgPSBTICYmICgw LCBOci5qc3gpKG1vLCB7IGNsYXNzTmFtZTogXy5zdGFydEljb24sIG93bmVyU3RhdGU6IFIs IGNoaWxkcmVuOiBTIH0pLA0KICAgICAgICAgICAgICBPID0geSAmJiAoMCwgTnIuanN4KShn bywgeyBjbGFzc05hbWU6IF8uZW5kSWNvbiwgb3duZXJTdGF0ZTogUiwgY2hpbGRyZW46IHkg fSksDQogICAgICAgICAgICAgIE4gPSBvIHx8ICIiOw0KICAgICAgICAgICAgcmV0dXJuICgw LA0KICAgICAgICAgICAgICBOci5qc3hzKShobywgaSh7IG93bmVyU3RhdGU6IFIsIGNsYXNz TmFtZTogcyhyLmNsYXNzTmFtZSwgXy5yb290LCBoLCBOKSwgY29tcG9uZW50OiBwLCBkaXNh YmxlZDogbSwgZm9jdXNSaXBwbGU6ICF2LCBmb2N1c1Zpc2libGVDbGFzc05hbWU6IHMoXy5m b2N1c1Zpc2libGUsIGIpLCByZWY6IG4sIHR5cGU6IGsgfSwgQywgeyBjbGFzc2VzOiBfLCBj aGlsZHJlbjogW1AsIGQsIE9dIH0pKTsNCiAgICAgICAgICB9KSwNCiAgICAgICAgICB5byA9 IHZvOw0KICAgICAgICBmdW5jdGlvbiBibyhlKSB7DQogICAgICAgICAgcmV0dXJuICJzdHJp bmciID09PSB0eXBlb2YgZTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiB3byhlKSB7 DQogICAgICAgICAgbGV0IHQgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiB2b2lkIDAgIT09 IGFyZ3VtZW50c1sxXSA/IGFyZ3VtZW50c1sxXSA6IFtdOw0KICAgICAgICAgIGlmICh2b2lk IDAgPT09IGUpIHJldHVybiB7fTsNCiAgICAgICAgICBjb25zdCBuID0ge307DQogICAgICAg ICAgcmV0dXJuICgNCiAgICAgICAgICAgIE9iamVjdC5rZXlzKGUpDQogICAgICAgICAgICAg IC5maWx0ZXIoKG4pID0+IG4ubWF0Y2goL15vbltBLVpdLykgJiYgImZ1bmN0aW9uIiA9PT0g dHlwZW9mIGVbbl0gJiYgIXQuaW5jbHVkZXMobikpDQogICAgICAgICAgICAgIC5mb3JFYWNo KCh0KSA9PiB7DQogICAgICAgICAgICAgICAgblt0XSA9IGVbdF07DQogICAgICAgICAgICAg IH0pLA0KICAgICAgICAgICAgbg0KICAgICAgICAgICk7DQogICAgICAgIH0NCiAgICAgICAg ZnVuY3Rpb24geG8oZSkgew0KICAgICAgICAgIGlmICh2b2lkIDAgPT09IGUpIHJldHVybiB7 fTsNCiAgICAgICAgICBjb25zdCB0ID0ge307DQogICAgICAgICAgcmV0dXJuICgNCiAgICAg ICAgICAgIE9iamVjdC5rZXlzKGUpDQogICAgICAgICAgICAgIC5maWx0ZXIoKHQpID0+ICEo dC5tYXRjaCgvXm9uW0EtWl0vKSAmJiAiZnVuY3Rpb24iID09PSB0eXBlb2YgZVt0XSkpDQog ICAgICAgICAgICAgIC5mb3JFYWNoKChuKSA9PiB7DQogICAgICAgICAgICAgICAgdFtuXSA9 IGVbbl07DQogICAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAgdA0KICAgICAgICAgICk7 DQogICAgICAgIH0NCiAgICAgICAgY29uc3QgU28gPSBbImVsZW1lbnRUeXBlIiwgImV4dGVy bmFsU2xvdFByb3BzIiwgIm93bmVyU3RhdGUiLCAic2tpcFJlc29sdmluZ1Nsb3RQcm9wcyJd Ow0KICAgICAgICBmdW5jdGlvbiBrbyhlKSB7DQogICAgICAgICAgdmFyIHQ7DQogICAgICAg ICAgY29uc3QgeyBlbGVtZW50VHlwZTogbiwgZXh0ZXJuYWxTbG90UHJvcHM6IHIsIG93bmVy U3RhdGU6IG8sIHNraXBSZXNvbHZpbmdTbG90UHJvcHM6IGwgPSAhMSB9ID0gZSwNCiAgICAg ICAgICAgIHUgPSBhKGUsIFNvKSwNCiAgICAgICAgICAgIGMgPSBsDQogICAgICAgICAgICAg ID8ge30NCiAgICAgICAgICAgICAgOiAoZnVuY3Rpb24gKGUsIHQsIG4pIHsNCiAgICAgICAg ICAgICAgICByZXR1cm4gImZ1bmN0aW9uIiA9PT0gdHlwZW9mIGUgPyBlKHQsIG4pIDogZTsN CiAgICAgICAgICAgICAgfSkociwgbyksDQogICAgICAgICAgICB7IHByb3BzOiBkLCBpbnRl cm5hbFJlZjogZiB9ID0gKGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICAgIGNvbnN0IHsg Z2V0U2xvdFByb3BzOiB0LCBhZGRpdGlvbmFsUHJvcHM6IG4sIGV4dGVybmFsU2xvdFByb3Bz OiByLCBleHRlcm5hbEZvcndhcmRlZFByb3BzOiBvLCBjbGFzc05hbWU6IGEgfSA9IGU7DQog ICAgICAgICAgICAgIGlmICghdCkgew0KICAgICAgICAgICAgICAgIGNvbnN0IGUgPSBzKG51 bGwgPT0gbiA/IHZvaWQgMCA6IG4uY2xhc3NOYW1lLCBhLCBudWxsID09IG8gPyB2b2lkIDAg OiBvLmNsYXNzTmFtZSwgbnVsbCA9PSByID8gdm9pZCAwIDogci5jbGFzc05hbWUpLA0KICAg ICAgICAgICAgICAgICAgdCA9IGkoe30sIG51bGwgPT0gbiA/IHZvaWQgMCA6IG4uc3R5bGUs IG51bGwgPT0gbyA/IHZvaWQgMCA6IG8uc3R5bGUsIG51bGwgPT0gciA/IHZvaWQgMCA6IHIu c3R5bGUpLA0KICAgICAgICAgICAgICAgICAgbCA9IGkoe30sIG4sIG8sIHIpOw0KICAgICAg ICAgICAgICAgIHJldHVybiBlLmxlbmd0aCA+IDAgJiYgKGwuY2xhc3NOYW1lID0gZSksIE9i amVjdC5rZXlzKHQpLmxlbmd0aCA+IDAgJiYgKGwuc3R5bGUgPSB0KSwgeyBwcm9wczogbCwg aW50ZXJuYWxSZWY6IHZvaWQgMCB9Ow0KICAgICAgICAgICAgICB9DQogICAgICAgICAgICAg IGNvbnN0IGwgPSB3byhpKHt9LCBvLCByKSksDQogICAgICAgICAgICAgICAgdSA9IHhvKHIp LA0KICAgICAgICAgICAgICAgIGMgPSB4byhvKSwNCiAgICAgICAgICAgICAgICBkID0gdChs KSwNCiAgICAgICAgICAgICAgICBmID0gcyhudWxsID09IGQgPyB2b2lkIDAgOiBkLmNsYXNz TmFtZSwgbnVsbCA9PSBuID8gdm9pZCAwIDogbi5jbGFzc05hbWUsIGEsIG51bGwgPT0gbyA/ IHZvaWQgMCA6IG8uY2xhc3NOYW1lLCBudWxsID09IHIgPyB2b2lkIDAgOiByLmNsYXNzTmFt ZSksDQogICAgICAgICAgICAgICAgcCA9IGkoe30sIG51bGwgPT0gZCA/IHZvaWQgMCA6IGQu c3R5bGUsIG51bGwgPT0gbiA/IHZvaWQgMCA6IG4uc3R5bGUsIG51bGwgPT0gbyA/IHZvaWQg MCA6IG8uc3R5bGUsIG51bGwgPT0gciA/IHZvaWQgMCA6IHIuc3R5bGUpLA0KICAgICAgICAg ICAgICAgIGggPSBpKHt9LCBkLCBuLCBjLCB1KTsNCiAgICAgICAgICAgICAgcmV0dXJuIGYu bGVuZ3RoID4gMCAmJiAoaC5jbGFzc05hbWUgPSBmKSwgT2JqZWN0LmtleXMocCkubGVuZ3Ro ID4gMCAmJiAoaC5zdHlsZSA9IHApLCB7IHByb3BzOiBoLCBpbnRlcm5hbFJlZjogZC5yZWYg fTsNCiAgICAgICAgICAgIH0pKGkoe30sIHUsIHsgZXh0ZXJuYWxTbG90UHJvcHM6IGMgfSkp LA0KICAgICAgICAgICAgcCA9IChmdW5jdGlvbiAoZSwgdCwgbikgew0KICAgICAgICAgICAg ICByZXR1cm4gdm9pZCAwID09PSBlIHx8IGJvKGUpID8gdCA6IGkoe30sIHQsIHsgb3duZXJT dGF0ZTogaSh7fSwgdC5vd25lclN0YXRlLCBuKSB9KTsNCiAgICAgICAgICAgIH0pKG4sIGko e30sIGQsIHsgcmVmOiBycihmLCBudWxsID09IGMgPyB2b2lkIDAgOiBjLnJlZiwgbnVsbCA9 PSAodCA9IGUuYWRkaXRpb25hbFByb3BzKSA/IHZvaWQgMCA6IHQucmVmKSB9KSwgbyk7DQog ICAgICAgICAgcmV0dXJuIHA7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gRW8oZSkg ew0KICAgICAgICAgIHJldHVybiAoZSAmJiBlLm93bmVyRG9jdW1lbnQpIHx8IGRvY3VtZW50 Ow0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIENvKCkgew0KICAgICAgICAgIGZvciAo dmFyIGUgPSBhcmd1bWVudHMubGVuZ3RoLCB0ID0gbmV3IEFycmF5KGUpLCBuID0gMDsgbiA8 IGU7IG4rKykgdFtuXSA9IGFyZ3VtZW50c1tuXTsNCiAgICAgICAgICByZXR1cm4gdC5yZWR1 Y2UoDQogICAgICAgICAgICAoZSwgdCkgPT4NCiAgICAgICAgICAgICAgbnVsbCA9PSB0DQog ICAgICAgICAgICAgICAgPyBlDQogICAgICAgICAgICAgICAgOiBmdW5jdGlvbiAoKSB7DQog ICAgICAgICAgICAgICAgICBmb3IgKHZhciBuID0gYXJndW1lbnRzLmxlbmd0aCwgciA9IG5l dyBBcnJheShuKSwgbyA9IDA7IG8gPCBuOyBvKyspIHJbb10gPSBhcmd1bWVudHNbb107DQog ICAgICAgICAgICAgICAgICBlLmFwcGx5KHRoaXMsIHIpLCB0LmFwcGx5KHRoaXMsIHIpOw0K ICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAoKSA9PiB7IH0NCiAgICAgICAgICAp Ow0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIFJvKGUpIHsNCiAgICAgICAgICByZXR1 cm4gRW8oZSkuZGVmYXVsdFZpZXcgfHwgd2luZG93Ow0KICAgICAgICB9DQogICAgICAgIGZ1 bmN0aW9uIF9vKGUsIHQpIHsNCiAgICAgICAgICB0ID8gZS5zZXRBdHRyaWJ1dGUoImFyaWEt aGlkZGVuIiwgInRydWUiKSA6IGUucmVtb3ZlQXR0cmlidXRlKCJhcmlhLWhpZGRlbiIpOw0K ICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIFBvKGUpIHsNCiAgICAgICAgICByZXR1cm4g cGFyc2VJbnQoUm8oZSkuZ2V0Q29tcHV0ZWRTdHlsZShlKS5wYWRkaW5nUmlnaHQsIDEwKSB8 fCAwOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIE9vKGUsIHQsIG4sIHIsIG8pIHsN CiAgICAgICAgICBjb25zdCBhID0gW3QsIG4sIC4uLnJdOw0KICAgICAgICAgIFtdLmZvckVh Y2guY2FsbChlLmNoaWxkcmVuLCAoZSkgPT4gew0KICAgICAgICAgICAgY29uc3QgdCA9IC0x ID09PSBhLmluZGV4T2YoZSksDQogICAgICAgICAgICAgIG4gPSAhKGZ1bmN0aW9uIChlKSB7 DQogICAgICAgICAgICAgICAgY29uc3QgdCA9IC0xICE9PSBbIlRFTVBMQVRFIiwgIlNDUklQ VCIsICJTVFlMRSIsICJMSU5LIiwgIk1BUCIsICJNRVRBIiwgIk5PU0NSSVBUIiwgIlBJQ1RV UkUiLCAiQ09MIiwgIkNPTEdST1VQIiwgIlBBUkFNIiwgIlNMT1QiLCAiU09VUkNFIiwgIlRS QUNLIl0uaW5kZXhPZihlLnRhZ05hbWUpLA0KICAgICAgICAgICAgICAgICAgbiA9ICJJTlBV VCIgPT09IGUudGFnTmFtZSAmJiAiaGlkZGVuIiA9PT0gZS5nZXRBdHRyaWJ1dGUoInR5cGUi KTsNCiAgICAgICAgICAgICAgICByZXR1cm4gdCB8fCBuOw0KICAgICAgICAgICAgICB9KShl KTsNCiAgICAgICAgICAgIHQgJiYgbiAmJiBfbyhlLCBvKTsNCiAgICAgICAgICB9KTsNCiAg ICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBObyhlLCB0KSB7DQogICAgICAgICAgbGV0IG4g PSAtMTsNCiAgICAgICAgICByZXR1cm4gZS5zb21lKChlLCByKSA9PiAhIXQoZSkgJiYgKChu ID0gciksICEwKSksIG47DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gVG8oZSwgdCkg ew0KICAgICAgICAgIGNvbnN0IG4gPSBbXSwNCiAgICAgICAgICAgIHIgPSBlLmNvbnRhaW5l cjsNCiAgICAgICAgICBpZiAoIXQuZGlzYWJsZVNjcm9sbExvY2spIHsNCiAgICAgICAgICAg IGlmICgNCiAgICAgICAgICAgICAgKGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICAgICAg Y29uc3QgdCA9IEVvKGUpOw0KICAgICAgICAgICAgICAgIHJldHVybiB0LmJvZHkgPT09IGUg PyBSbyhlKS5pbm5lcldpZHRoID4gdC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGggOiBl LnNjcm9sbEhlaWdodCA+IGUuY2xpZW50SGVpZ2h0Ow0KICAgICAgICAgICAgICB9KShyKQ0K ICAgICAgICAgICAgKSB7DQogICAgICAgICAgICAgIGNvbnN0IGUgPSAoZnVuY3Rpb24gKGUp IHsNCiAgICAgICAgICAgICAgICBjb25zdCB0ID0gZS5kb2N1bWVudEVsZW1lbnQuY2xpZW50 V2lkdGg7DQogICAgICAgICAgICAgICAgcmV0dXJuIE1hdGguYWJzKHdpbmRvdy5pbm5lcldp ZHRoIC0gdCk7DQogICAgICAgICAgICAgIH0pKEVvKHIpKTsNCiAgICAgICAgICAgICAgbi5w dXNoKHsgdmFsdWU6IHIuc3R5bGUucGFkZGluZ1JpZ2h0LCBwcm9wZXJ0eTogInBhZGRpbmct cmlnaHQiLCBlbDogciB9KSwgKHIuc3R5bGUucGFkZGluZ1JpZ2h0ID0gIiIuY29uY2F0KFBv KHIpICsgZSwgInB4IikpOw0KICAgICAgICAgICAgICBjb25zdCB0ID0gRW8ocikucXVlcnlT ZWxlY3RvckFsbCgiLm11aS1maXhlZCIpOw0KICAgICAgICAgICAgICBbXS5mb3JFYWNoLmNh bGwodCwgKHQpID0+IHsNCiAgICAgICAgICAgICAgICBuLnB1c2goeyB2YWx1ZTogdC5zdHls ZS5wYWRkaW5nUmlnaHQsIHByb3BlcnR5OiAicGFkZGluZy1yaWdodCIsIGVsOiB0IH0pLCAo dC5zdHlsZS5wYWRkaW5nUmlnaHQgPSAiIi5jb25jYXQoUG8odCkgKyBlLCAicHgiKSk7DQog ICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgbGV0IGU7DQog ICAgICAgICAgICBpZiAoci5wYXJlbnROb2RlIGluc3RhbmNlb2YgRG9jdW1lbnRGcmFnbWVu dCkgZSA9IEVvKHIpLmJvZHk7DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAg Y29uc3QgdCA9IHIucGFyZW50RWxlbWVudCwNCiAgICAgICAgICAgICAgICBuID0gUm8ocik7 DQogICAgICAgICAgICAgIGUgPSAiSFRNTCIgPT09IChudWxsID09IHQgPyB2b2lkIDAgOiB0 Lm5vZGVOYW1lKSAmJiAic2Nyb2xsIiA9PT0gbi5nZXRDb21wdXRlZFN0eWxlKHQpLm92ZXJm bG93WSA/IHQgOiByOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgbi5wdXNoKHsgdmFs dWU6IGUuc3R5bGUub3ZlcmZsb3csIHByb3BlcnR5OiAib3ZlcmZsb3ciLCBlbDogZSB9LCB7 IHZhbHVlOiBlLnN0eWxlLm92ZXJmbG93WCwgcHJvcGVydHk6ICJvdmVyZmxvdy14IiwgZWw6 IGUgfSwgeyB2YWx1ZTogZS5zdHlsZS5vdmVyZmxvd1ksIHByb3BlcnR5OiAib3ZlcmZsb3ct eSIsIGVsOiBlIH0pLA0KICAgICAgICAgICAgICAoZS5zdHlsZS5vdmVyZmxvdyA9ICJoaWRk ZW4iKTsNCiAgICAgICAgICB9DQogICAgICAgICAgcmV0dXJuICgpID0+IHsNCiAgICAgICAg ICAgIG4uZm9yRWFjaCgoZSkgPT4gew0KICAgICAgICAgICAgICBsZXQgeyB2YWx1ZTogdCwg ZWw6IG4sIHByb3BlcnR5OiByIH0gPSBlOw0KICAgICAgICAgICAgICB0ID8gbi5zdHlsZS5z ZXRQcm9wZXJ0eShyLCB0KSA6IG4uc3R5bGUucmVtb3ZlUHJvcGVydHkocik7DQogICAgICAg ICAgICB9KTsNCiAgICAgICAgICB9Ow0KICAgICAgICB9DQogICAgICAgIGNvbnN0IEFvID0g bmV3IChjbGFzcyB7DQogICAgICAgICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgICAgICAo dGhpcy5jb250YWluZXJzID0gdm9pZCAwKSwgKHRoaXMubW9kYWxzID0gdm9pZCAwKSwgKHRo aXMubW9kYWxzID0gW10pLCAodGhpcy5jb250YWluZXJzID0gW10pOw0KICAgICAgICAgIH0N CiAgICAgICAgICBhZGQoZSwgdCkgew0KICAgICAgICAgICAgbGV0IG4gPSB0aGlzLm1vZGFs cy5pbmRleE9mKGUpOw0KICAgICAgICAgICAgaWYgKC0xICE9PSBuKSByZXR1cm4gbjsNCiAg ICAgICAgICAgIChuID0gdGhpcy5tb2RhbHMubGVuZ3RoKSwgdGhpcy5tb2RhbHMucHVzaChl KSwgZS5tb2RhbFJlZiAmJiBfbyhlLm1vZGFsUmVmLCAhMSk7DQogICAgICAgICAgICBjb25z dCByID0gKGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICAgIGNvbnN0IHQgPSBbXTsNCiAg ICAgICAgICAgICAgcmV0dXJuICgNCiAgICAgICAgICAgICAgICBbXS5mb3JFYWNoLmNhbGwo ZS5jaGlsZHJlbiwgKGUpID0+IHsNCiAgICAgICAgICAgICAgICAgICJ0cnVlIiA9PT0gZS5n ZXRBdHRyaWJ1dGUoImFyaWEtaGlkZGVuIikgJiYgdC5wdXNoKGUpOw0KICAgICAgICAgICAg ICAgIH0pLA0KICAgICAgICAgICAgICAgIHQNCiAgICAgICAgICAgICAgKTsNCiAgICAgICAg ICAgIH0pKHQpOw0KICAgICAgICAgICAgT28odCwgZS5tb3VudCwgZS5tb2RhbFJlZiwgciwg ITApOw0KICAgICAgICAgICAgY29uc3QgbyA9IE5vKHRoaXMuY29udGFpbmVycywgKGUpID0+ IGUuY29udGFpbmVyID09PSB0KTsNCiAgICAgICAgICAgIHJldHVybiAtMSAhPT0gbyA/ICh0 aGlzLmNvbnRhaW5lcnNbb10ubW9kYWxzLnB1c2goZSksIG4pIDogKHRoaXMuY29udGFpbmVy cy5wdXNoKHsgbW9kYWxzOiBbZV0sIGNvbnRhaW5lcjogdCwgcmVzdG9yZTogbnVsbCwgaGlk ZGVuU2libGluZ3M6IHIgfSksIG4pOw0KICAgICAgICAgIH0NCiAgICAgICAgICBtb3VudChl LCB0KSB7DQogICAgICAgICAgICBjb25zdCBuID0gTm8odGhpcy5jb250YWluZXJzLCAodCkg PT4gLTEgIT09IHQubW9kYWxzLmluZGV4T2YoZSkpLA0KICAgICAgICAgICAgICByID0gdGhp cy5jb250YWluZXJzW25dOw0KICAgICAgICAgICAgci5yZXN0b3JlIHx8IChyLnJlc3RvcmUg PSBUbyhyLCB0KSk7DQogICAgICAgICAgfQ0KICAgICAgICAgIHJlbW92ZShlKSB7DQogICAg ICAgICAgICBsZXQgdCA9ICEoYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgdm9pZCAwICE9PSBh cmd1bWVudHNbMV0pIHx8IGFyZ3VtZW50c1sxXTsNCiAgICAgICAgICAgIGNvbnN0IG4gPSB0 aGlzLm1vZGFscy5pbmRleE9mKGUpOw0KICAgICAgICAgICAgaWYgKC0xID09PSBuKSByZXR1 cm4gbjsNCiAgICAgICAgICAgIGNvbnN0IHIgPSBObyh0aGlzLmNvbnRhaW5lcnMsICh0KSA9 PiAtMSAhPT0gdC5tb2RhbHMuaW5kZXhPZihlKSksDQogICAgICAgICAgICAgIG8gPSB0aGlz LmNvbnRhaW5lcnNbcl07DQogICAgICAgICAgICBpZiAoKG8ubW9kYWxzLnNwbGljZShvLm1v ZGFscy5pbmRleE9mKGUpLCAxKSwgdGhpcy5tb2RhbHMuc3BsaWNlKG4sIDEpLCAwID09PSBv Lm1vZGFscy5sZW5ndGgpKQ0KICAgICAgICAgICAgICBvLnJlc3RvcmUgJiYgby5yZXN0b3Jl KCksIGUubW9kYWxSZWYgJiYgX28oZS5tb2RhbFJlZiwgdCksIE9vKG8uY29udGFpbmVyLCBl Lm1vdW50LCBlLm1vZGFsUmVmLCBvLmhpZGRlblNpYmxpbmdzLCAhMSksIHRoaXMuY29udGFp bmVycy5zcGxpY2UociwgMSk7DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAg Y29uc3QgZSA9IG8ubW9kYWxzW28ubW9kYWxzLmxlbmd0aCAtIDFdOw0KICAgICAgICAgICAg ICBlLm1vZGFsUmVmICYmIF9vKGUubW9kYWxSZWYsICExKTsNCiAgICAgICAgICAgIH0NCiAg ICAgICAgICAgIHJldHVybiBuOw0KICAgICAgICAgIH0NCiAgICAgICAgICBpc1RvcE1vZGFs KGUpIHsNCiAgICAgICAgICAgIHJldHVybiB0aGlzLm1vZGFscy5sZW5ndGggPiAwICYmIHRo aXMubW9kYWxzW3RoaXMubW9kYWxzLmxlbmd0aCAtIDFdID09PSBlOw0KICAgICAgICAgIH0N CiAgICAgICAgfSkoKTsNCiAgICAgICAgZnVuY3Rpb24gTW8oZSkgew0KICAgICAgICAgIGNv bnN0IHsNCiAgICAgICAgICAgIGNvbnRhaW5lcjogbiwNCiAgICAgICAgICAgIGRpc2FibGVF c2NhcGVLZXlEb3duOiByID0gITEsDQogICAgICAgICAgICBkaXNhYmxlU2Nyb2xsTG9jazog byA9ICExLA0KICAgICAgICAgICAgbWFuYWdlcjogYSA9IEFvLA0KICAgICAgICAgICAgY2xv c2VBZnRlclRyYW5zaXRpb246IGwgPSAhMSwNCiAgICAgICAgICAgIG9uVHJhbnNpdGlvbkVu dGVyOiBzLA0KICAgICAgICAgICAgb25UcmFuc2l0aW9uRXhpdGVkOiB1LA0KICAgICAgICAg ICAgY2hpbGRyZW46IGMsDQogICAgICAgICAgICBvbkNsb3NlOiBkLA0KICAgICAgICAgICAg b3BlbjogZiwNCiAgICAgICAgICAgIHJvb3RSZWY6IHAsDQogICAgICAgICAgfSA9IGUsDQog ICAgICAgICAgICBoID0gdC51c2VSZWYoe30pLA0KICAgICAgICAgICAgbSA9IHQudXNlUmVm KG51bGwpLA0KICAgICAgICAgICAgZyA9IHQudXNlUmVmKG51bGwpLA0KICAgICAgICAgICAg diA9IHJyKGcsIHApLA0KICAgICAgICAgICAgW3ksIGJdID0gdC51c2VTdGF0ZSghZiksDQog ICAgICAgICAgICB3ID0gKGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICAgIHJldHVybiAh IWUgJiYgZS5wcm9wcy5oYXNPd25Qcm9wZXJ0eSgiaW4iKTsNCiAgICAgICAgICAgIH0pKGMp Ow0KICAgICAgICAgIGxldCB4ID0gITA7DQogICAgICAgICAgKCJmYWxzZSIgIT09IGVbImFy aWEtaGlkZGVuIl0gJiYgITEgIT09IGVbImFyaWEtaGlkZGVuIl0pIHx8ICh4ID0gITEpOw0K ICAgICAgICAgIGNvbnN0IFMgPSAoKSA9PiAoKGguY3VycmVudC5tb2RhbFJlZiA9IGcuY3Vy cmVudCksIChoLmN1cnJlbnQubW91bnQgPSBtLmN1cnJlbnQpLCBoLmN1cnJlbnQpLA0KICAg ICAgICAgICAgayA9ICgpID0+IHsNCiAgICAgICAgICAgICAgYS5tb3VudChTKCksIHsgZGlz YWJsZVNjcm9sbExvY2s6IG8gfSksIGcuY3VycmVudCAmJiAoZy5jdXJyZW50LnNjcm9sbFRv cCA9IDApOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIEUgPSBpcigoKSA9PiB7DQog ICAgICAgICAgICAgIGNvbnN0IGUgPQ0KICAgICAgICAgICAgICAgIChmdW5jdGlvbiAoZSkg ew0KICAgICAgICAgICAgICAgICAgcmV0dXJuICJmdW5jdGlvbiIgPT09IHR5cGVvZiBlID8g ZSgpIDogZTsNCiAgICAgICAgICAgICAgICB9KShuKSB8fCBFbyhtLmN1cnJlbnQpLmJvZHk7 DQogICAgICAgICAgICAgIGEuYWRkKFMoKSwgZSksIGcuY3VycmVudCAmJiBrKCk7DQogICAg ICAgICAgICB9KSwNCiAgICAgICAgICAgIEMgPSB0LnVzZUNhbGxiYWNrKCgpID0+IGEuaXNU b3BNb2RhbChTKCkpLCBbYV0pLA0KICAgICAgICAgICAgUiA9IGlyKChlKSA9PiB7DQogICAg ICAgICAgICAgIChtLmN1cnJlbnQgPSBlKSwgZSAmJiAoZiAmJiBDKCkgPyBrKCkgOiBnLmN1 cnJlbnQgJiYgX28oZy5jdXJyZW50LCB4KSk7DQogICAgICAgICAgICB9KSwNCiAgICAgICAg ICAgIF8gPSB0LnVzZUNhbGxiYWNrKCgpID0+IHsNCiAgICAgICAgICAgICAgYS5yZW1vdmUo UygpLCB4KTsNCiAgICAgICAgICAgIH0sIFt4LCBhXSk7DQogICAgICAgICAgdC51c2VFZmZl Y3QoDQogICAgICAgICAgICAoKSA9PiAoKSA9PiB7DQogICAgICAgICAgICAgIF8oKTsNCiAg ICAgICAgICAgIH0sDQogICAgICAgICAgICBbX10NCiAgICAgICAgICApLA0KICAgICAgICAg ICAgdC51c2VFZmZlY3QoKCkgPT4gew0KICAgICAgICAgICAgICBmID8gRSgpIDogKHcgJiYg bCkgfHwgXygpOw0KICAgICAgICAgICAgfSwgW2YsIF8sIHcsIGwsIEVdKTsNCiAgICAgICAg ICBjb25zdCBQID0gKGUpID0+ICh0KSA9PiB7DQogICAgICAgICAgICB2YXIgbjsNCiAgICAg ICAgICAgIG51bGwgPT0gKG4gPSBlLm9uS2V5RG93bikgfHwgbi5jYWxsKGUsIHQpLCAiRXNj YXBlIiA9PT0gdC5rZXkgJiYgMjI5ICE9PSB0LndoaWNoICYmIEMoKSAmJiAociB8fCAodC5z dG9wUHJvcGFnYXRpb24oKSwgZCAmJiBkKHQsICJlc2NhcGVLZXlEb3duIikpKTsNCiAgICAg ICAgICB9LA0KICAgICAgICAgICAgTyA9IChlKSA9PiAodCkgPT4gew0KICAgICAgICAgICAg ICB2YXIgbjsNCiAgICAgICAgICAgICAgbnVsbCA9PSAobiA9IGUub25DbGljaykgfHwgbi5j YWxsKGUsIHQpLCB0LnRhcmdldCA9PT0gdC5jdXJyZW50VGFyZ2V0ICYmIGQgJiYgZCh0LCAi YmFja2Ryb3BDbGljayIpOw0KICAgICAgICAgICAgfTsNCiAgICAgICAgICByZXR1cm4gew0K ICAgICAgICAgICAgZ2V0Um9vdFByb3BzOiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAg IGxldCB0ID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgdm9pZCAwICE9PSBhcmd1bWVudHNb MF0gPyBhcmd1bWVudHNbMF0gOiB7fTsNCiAgICAgICAgICAgICAgY29uc3QgbiA9IHdvKGUp Ow0KICAgICAgICAgICAgICBkZWxldGUgbi5vblRyYW5zaXRpb25FbnRlciwgZGVsZXRlIG4u b25UcmFuc2l0aW9uRXhpdGVkOw0KICAgICAgICAgICAgICBjb25zdCByID0gaSh7fSwgbiwg dCk7DQogICAgICAgICAgICAgIHJldHVybiBpKHsgcm9sZTogInByZXNlbnRhdGlvbiIgfSwg ciwgeyBvbktleURvd246IFAociksIHJlZjogdiB9KTsNCiAgICAgICAgICAgIH0sDQogICAg ICAgICAgICBnZXRCYWNrZHJvcFByb3BzOiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAg IGxldCBlID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgdm9pZCAwICE9PSBhcmd1bWVudHNb MF0gPyBhcmd1bWVudHNbMF0gOiB7fTsNCiAgICAgICAgICAgICAgcmV0dXJuIGkoeyAiYXJp YS1oaWRkZW4iOiAhMCB9LCBlLCB7IG9uQ2xpY2s6IE8oZSksIG9wZW46IGYgfSk7DQogICAg ICAgICAgICB9LA0KICAgICAgICAgICAgZ2V0VHJhbnNpdGlvblByb3BzOiAoKSA9PiAoew0K ICAgICAgICAgICAgICBvbkVudGVyOiBDbygNCiAgICAgICAgICAgICAgICAoKSA9PiB7DQog ICAgICAgICAgICAgICAgICBiKCExKSwgcyAmJiBzKCk7DQogICAgICAgICAgICAgICAgfSwN CiAgICAgICAgICAgICAgICBudWxsID09IGMgPyB2b2lkIDAgOiBjLnByb3BzLm9uRW50ZXIN CiAgICAgICAgICAgICAgKSwNCiAgICAgICAgICAgICAgb25FeGl0ZWQ6IENvKA0KICAgICAg ICAgICAgICAgICgpID0+IHsNCiAgICAgICAgICAgICAgICAgIGIoITApLCB1ICYmIHUoKSwg bCAmJiBfKCk7DQogICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICBudWxsID09 IGMgPyB2b2lkIDAgOiBjLnByb3BzLm9uRXhpdGVkDQogICAgICAgICAgICAgICksDQogICAg ICAgICAgICB9KSwNCiAgICAgICAgICAgIHJvb3RSZWY6IHYsDQogICAgICAgICAgICBwb3J0 YWxSZWY6IFIsDQogICAgICAgICAgICBpc1RvcE1vZGFsOiBDLA0KICAgICAgICAgICAgZXhp dGVkOiB5LA0KICAgICAgICAgICAgaGFzVHJhbnNpdGlvbjogdywNCiAgICAgICAgICB9Ow0K ICAgICAgICB9DQogICAgICAgIGNvbnN0IHpvID0gWyJpbnB1dCIsICJzZWxlY3QiLCAidGV4 dGFyZWEiLCAiYVtocmVmXSIsICJidXR0b24iLCAiW3RhYmluZGV4XSIsICJhdWRpb1tjb250 cm9sc10iLCAidmlkZW9bY29udHJvbHNdIiwgJ1tjb250ZW50ZWRpdGFibGVdOm5vdChbY29u dGVudGVkaXRhYmxlPSJmYWxzZSJdKSddLmpvaW4oIiwiKTsNCiAgICAgICAgZnVuY3Rpb24g am8oZSkgew0KICAgICAgICAgIGNvbnN0IHQgPSBbXSwNCiAgICAgICAgICAgIG4gPSBbXTsN CiAgICAgICAgICByZXR1cm4gKA0KICAgICAgICAgICAgQXJyYXkuZnJvbShlLnF1ZXJ5U2Vs ZWN0b3JBbGwoem8pKS5mb3JFYWNoKChlLCByKSA9PiB7DQogICAgICAgICAgICAgIGNvbnN0 IG8gPSAoZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgICAgICBjb25zdCB0ID0gcGFyc2VJ bnQoZS5nZXRBdHRyaWJ1dGUoInRhYmluZGV4IikgfHwgIiIsIDEwKTsNCiAgICAgICAgICAg ICAgICByZXR1cm4gTnVtYmVyLmlzTmFOKHQpID8gKCJ0cnVlIiA9PT0gZS5jb250ZW50RWRp dGFibGUgfHwgKCgiQVVESU8iID09PSBlLm5vZGVOYW1lIHx8ICJWSURFTyIgPT09IGUubm9k ZU5hbWUgfHwgIkRFVEFJTFMiID09PSBlLm5vZGVOYW1lKSAmJiBudWxsID09PSBlLmdldEF0 dHJpYnV0ZSgidGFiaW5kZXgiKSkgPyAwIDogZS50YWJJbmRleCkgOiB0Ow0KICAgICAgICAg ICAgICB9KShlKTsNCiAgICAgICAgICAgICAgLTEgIT09IG8gJiYNCiAgICAgICAgICAgICAg ICAoZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgICAgICAgIHJldHVybiAhKA0KICAgICAg ICAgICAgICAgICAgICBlLmRpc2FibGVkIHx8DQogICAgICAgICAgICAgICAgICAgICgiSU5Q VVQiID09PSBlLnRhZ05hbWUgJiYgImhpZGRlbiIgPT09IGUudHlwZSkgfHwNCiAgICAgICAg ICAgICAgICAgICAgKGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICAgICAgICAgICAgaWYg KCJJTlBVVCIgIT09IGUudGFnTmFtZSB8fCAicmFkaW8iICE9PSBlLnR5cGUpIHJldHVybiAh MTsNCiAgICAgICAgICAgICAgICAgICAgICBpZiAoIWUubmFtZSkgcmV0dXJuICExOw0KICAg ICAgICAgICAgICAgICAgICAgIGNvbnN0IHQgPSAodCkgPT4gZS5vd25lckRvY3VtZW50LnF1 ZXJ5U2VsZWN0b3IoJ2lucHV0W3R5cGU9InJhZGlvIl0nLmNvbmNhdCh0KSk7DQogICAgICAg ICAgICAgICAgICAgICAgbGV0IG4gPSB0KCdbbmFtZT0iJy5jb25jYXQoZS5uYW1lLCAnIl06 Y2hlY2tlZCcpKTsNCiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbiB8fCAobiA9IHQo J1tuYW1lPSInLmNvbmNhdChlLm5hbWUsICciXScpKSksIG4gIT09IGU7DQogICAgICAgICAg ICAgICAgICAgIH0pKGUpDQogICAgICAgICAgICAgICAgICApOw0KICAgICAgICAgICAgICAg IH0pKGUpICYmDQogICAgICAgICAgICAgICAgKDAgPT09IG8gPyB0LnB1c2goZSkgOiBuLnB1 c2goeyBkb2N1bWVudE9yZGVyOiByLCB0YWJJbmRleDogbywgbm9kZTogZSB9KSk7DQogICAg ICAgICAgICB9KSwNCiAgICAgICAgICAgIG4NCiAgICAgICAgICAgICAgLnNvcnQoKGUsIHQp ID0+IChlLnRhYkluZGV4ID09PSB0LnRhYkluZGV4ID8gZS5kb2N1bWVudE9yZGVyIC0gdC5k b2N1bWVudE9yZGVyIDogZS50YWJJbmRleCAtIHQudGFiSW5kZXgpKQ0KICAgICAgICAgICAg ICAubWFwKChlKSA9PiBlLm5vZGUpDQogICAgICAgICAgICAgIC5jb25jYXQodCkNCiAgICAg ICAgICApOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIElvKCkgew0KICAgICAgICAg IHJldHVybiAhMDsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBMbyhlKSB7DQogICAg ICAgICAgY29uc3QgeyBjaGlsZHJlbjogbiwgZGlzYWJsZUF1dG9Gb2N1czogciA9ICExLCBk aXNhYmxlRW5mb3JjZUZvY3VzOiBvID0gITEsIGRpc2FibGVSZXN0b3JlRm9jdXM6IGEgPSAh MSwgZ2V0VGFiYmFibGU6IGkgPSBqbywgaXNFbmFibGVkOiBsID0gSW8sIG9wZW46IHMgfSA9 IGUsDQogICAgICAgICAgICB1ID0gdC51c2VSZWYoITEpLA0KICAgICAgICAgICAgYyA9IHQu dXNlUmVmKG51bGwpLA0KICAgICAgICAgICAgZCA9IHQudXNlUmVmKG51bGwpLA0KICAgICAg ICAgICAgZiA9IHQudXNlUmVmKG51bGwpLA0KICAgICAgICAgICAgcCA9IHQudXNlUmVmKG51 bGwpLA0KICAgICAgICAgICAgaCA9IHQudXNlUmVmKCExKSwNCiAgICAgICAgICAgIG0gPSB0 LnVzZVJlZihudWxsKSwNCiAgICAgICAgICAgIGcgPSBycihuLnJlZiwgbSksDQogICAgICAg ICAgICB2ID0gdC51c2VSZWYobnVsbCk7DQogICAgICAgICAgdC51c2VFZmZlY3QoKCkgPT4g ew0KICAgICAgICAgICAgcyAmJiBtLmN1cnJlbnQgJiYgKGguY3VycmVudCA9ICFyKTsNCiAg ICAgICAgICB9LCBbciwgc10pLA0KICAgICAgICAgICAgdC51c2VFZmZlY3QoKCkgPT4gew0K ICAgICAgICAgICAgICBpZiAoIXMgfHwgIW0uY3VycmVudCkgcmV0dXJuOw0KICAgICAgICAg ICAgICBjb25zdCBlID0gRW8obS5jdXJyZW50KTsNCiAgICAgICAgICAgICAgcmV0dXJuICgN CiAgICAgICAgICAgICAgICBtLmN1cnJlbnQuY29udGFpbnMoZS5hY3RpdmVFbGVtZW50KSB8 fCAobS5jdXJyZW50Lmhhc0F0dHJpYnV0ZSgidGFiSW5kZXgiKSB8fCBtLmN1cnJlbnQuc2V0 QXR0cmlidXRlKCJ0YWJJbmRleCIsICItMSIpLCBoLmN1cnJlbnQgJiYgbS5jdXJyZW50LmZv Y3VzKCkpLA0KICAgICAgICAgICAgICAgICgpID0+IHsNCiAgICAgICAgICAgICAgICAgIGEg fHwgKGYuY3VycmVudCAmJiBmLmN1cnJlbnQuZm9jdXMgJiYgKCh1LmN1cnJlbnQgPSAhMCks IGYuY3VycmVudC5mb2N1cygpKSwgKGYuY3VycmVudCA9IG51bGwpKTsNCiAgICAgICAgICAg ICAgICB9DQogICAgICAgICAgICAgICk7DQogICAgICAgICAgICB9LCBbc10pLA0KICAgICAg ICAgICAgdC51c2VFZmZlY3QoKCkgPT4gew0KICAgICAgICAgICAgICBpZiAoIXMgfHwgIW0u Y3VycmVudCkgcmV0dXJuOw0KICAgICAgICAgICAgICBjb25zdCBlID0gRW8obS5jdXJyZW50 KSwNCiAgICAgICAgICAgICAgICB0ID0gKHQpID0+IHsNCiAgICAgICAgICAgICAgICAgICh2 LmN1cnJlbnQgPSB0KSwgIW8gJiYgbCgpICYmICJUYWIiID09PSB0LmtleSAmJiBlLmFjdGl2 ZUVsZW1lbnQgPT09IG0uY3VycmVudCAmJiB0LnNoaWZ0S2V5ICYmICgodS5jdXJyZW50ID0g ITApLCBkLmN1cnJlbnQgJiYgZC5jdXJyZW50LmZvY3VzKCkpOw0KICAgICAgICAgICAgICAg IH0sDQogICAgICAgICAgICAgICAgbiA9ICgpID0+IHsNCiAgICAgICAgICAgICAgICAgIGNv bnN0IHQgPSBtLmN1cnJlbnQ7DQogICAgICAgICAgICAgICAgICBpZiAobnVsbCA9PT0gdCkg cmV0dXJuOw0KICAgICAgICAgICAgICAgICAgaWYgKCFlLmhhc0ZvY3VzKCkgfHwgIWwoKSB8 fCB1LmN1cnJlbnQpIHJldHVybiB2b2lkICh1LmN1cnJlbnQgPSAhMSk7DQogICAgICAgICAg ICAgICAgICBpZiAodC5jb250YWlucyhlLmFjdGl2ZUVsZW1lbnQpKSByZXR1cm47DQogICAg ICAgICAgICAgICAgICBpZiAobyAmJiBlLmFjdGl2ZUVsZW1lbnQgIT09IGMuY3VycmVudCAm JiBlLmFjdGl2ZUVsZW1lbnQgIT09IGQuY3VycmVudCkgcmV0dXJuOw0KICAgICAgICAgICAg ICAgICAgaWYgKGUuYWN0aXZlRWxlbWVudCAhPT0gcC5jdXJyZW50KSBwLmN1cnJlbnQgPSBu dWxsOw0KICAgICAgICAgICAgICAgICAgZWxzZSBpZiAobnVsbCAhPT0gcC5jdXJyZW50KSBy ZXR1cm47DQogICAgICAgICAgICAgICAgICBpZiAoIWguY3VycmVudCkgcmV0dXJuOw0KICAg ICAgICAgICAgICAgICAgbGV0IG4gPSBbXTsNCiAgICAgICAgICAgICAgICAgIGlmICgoKGUu YWN0aXZlRWxlbWVudCAhPT0gYy5jdXJyZW50ICYmIGUuYWN0aXZlRWxlbWVudCAhPT0gZC5j dXJyZW50KSB8fCAobiA9IGkobS5jdXJyZW50KSksIG4ubGVuZ3RoID4gMCkpIHsNCiAgICAg ICAgICAgICAgICAgICAgdmFyIHIsIGE7DQogICAgICAgICAgICAgICAgICAgIGNvbnN0IGUg PSBCb29sZWFuKChudWxsID09IChyID0gdi5jdXJyZW50KSA/IHZvaWQgMCA6IHIuc2hpZnRL ZXkpICYmICJUYWIiID09PSAobnVsbCA9PSAoYSA9IHYuY3VycmVudCkgPyB2b2lkIDAgOiBh LmtleSkpLA0KICAgICAgICAgICAgICAgICAgICAgIHQgPSBuWzBdLA0KICAgICAgICAgICAg ICAgICAgICAgIG8gPSBuW24ubGVuZ3RoIC0gMV07DQogICAgICAgICAgICAgICAgICAgICJz dHJpbmciICE9PSB0eXBlb2YgdCAmJiAic3RyaW5nIiAhPT0gdHlwZW9mIG8gJiYgKGUgPyBv LmZvY3VzKCkgOiB0LmZvY3VzKCkpOw0KICAgICAgICAgICAgICAgICAgfSBlbHNlIHQuZm9j dXMoKTsNCiAgICAgICAgICAgICAgICB9Ow0KICAgICAgICAgICAgICBlLmFkZEV2ZW50TGlz dGVuZXIoImZvY3VzaW4iLCBuKSwgZS5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIiwgdCwg ITApOw0KICAgICAgICAgICAgICBjb25zdCByID0gc2V0SW50ZXJ2YWwoKCkgPT4gew0KICAg ICAgICAgICAgICAgIGUuYWN0aXZlRWxlbWVudCAmJiAiQk9EWSIgPT09IGUuYWN0aXZlRWxl bWVudC50YWdOYW1lICYmIG4oKTsNCiAgICAgICAgICAgICAgfSwgNTApOw0KICAgICAgICAg ICAgICByZXR1cm4gKCkgPT4gew0KICAgICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwociks IGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZm9jdXNpbiIsIG4pLCBlLnJlbW92ZUV2ZW50TGlz dGVuZXIoImtleWRvd24iLCB0LCAhMCk7DQogICAgICAgICAgICAgIH07DQogICAgICAgICAg ICB9LCBbciwgbywgYSwgbCwgcywgaV0pOw0KICAgICAgICAgIGNvbnN0IHkgPSAoZSkgPT4g ew0KICAgICAgICAgICAgbnVsbCA9PT0gZi5jdXJyZW50ICYmIChmLmN1cnJlbnQgPSBlLnJl bGF0ZWRUYXJnZXQpLCAoaC5jdXJyZW50ID0gITApOw0KICAgICAgICAgIH07DQogICAgICAg ICAgcmV0dXJuICgwLCBOci5qc3hzKSh0LkZyYWdtZW50LCB7DQogICAgICAgICAgICBjaGls ZHJlbjogWw0KICAgICAgICAgICAgICAoMCwgTnIuanN4KSgiZGl2IiwgeyB0YWJJbmRleDog cyA/IDAgOiAtMSwgb25Gb2N1czogeSwgcmVmOiBjLCAiZGF0YS10ZXN0aWQiOiAic2VudGlu ZWxTdGFydCIgfSksDQogICAgICAgICAgICAgIHQuY2xvbmVFbGVtZW50KG4sIHsNCiAgICAg ICAgICAgICAgICByZWY6IGcsDQogICAgICAgICAgICAgICAgb25Gb2N1czogKGUpID0+IHsN CiAgICAgICAgICAgICAgICAgIG51bGwgPT09IGYuY3VycmVudCAmJiAoZi5jdXJyZW50ID0g ZS5yZWxhdGVkVGFyZ2V0KSwgKGguY3VycmVudCA9ICEwKSwgKHAuY3VycmVudCA9IGUudGFy Z2V0KTsNCiAgICAgICAgICAgICAgICAgIGNvbnN0IHQgPSBuLnByb3BzLm9uRm9jdXM7DQog ICAgICAgICAgICAgICAgICB0ICYmIHQoZSk7DQogICAgICAgICAgICAgICAgfSwNCiAgICAg ICAgICAgICAgfSksDQogICAgICAgICAgICAgICgwLCBOci5qc3gpKCJkaXYiLCB7IHRhYklu ZGV4OiBzID8gMCA6IC0xLCBvbkZvY3VzOiB5LCByZWY6IGQsICJkYXRhLXRlc3RpZCI6ICJz ZW50aW5lbEVuZCIgfSksDQogICAgICAgICAgICBdLA0KICAgICAgICAgIH0pOw0KICAgICAg ICB9DQogICAgICAgIHZhciBGbyA9IG4oMTY0KTsNCiAgICAgICAgY29uc3QgQm8gPSB0LmZv cndhcmRSZWYoZnVuY3Rpb24gKGUsIG4pIHsNCiAgICAgICAgICBjb25zdCB7IGNoaWxkcmVu OiByLCBjb250YWluZXI6IG8sIGRpc2FibGVQb3J0YWw6IGEgPSAhMSB9ID0gZSwNCiAgICAg ICAgICAgIFtpLCBsXSA9IHQudXNlU3RhdGUobnVsbCksDQogICAgICAgICAgICBzID0gcnIo dC5pc1ZhbGlkRWxlbWVudChyKSA/IHIucmVmIDogbnVsbCwgbik7DQogICAgICAgICAgaWYg KA0KICAgICAgICAgICAgKGFyKCgpID0+IHsNCiAgICAgICAgICAgICAgYSB8fA0KICAgICAg ICAgICAgICAgIGwoDQogICAgICAgICAgICAgICAgICAoZnVuY3Rpb24gKGUpIHsNCiAgICAg ICAgICAgICAgICAgICAgcmV0dXJuICJmdW5jdGlvbiIgPT09IHR5cGVvZiBlID8gZSgpIDog ZTsNCiAgICAgICAgICAgICAgICAgIH0pKG8pIHx8IGRvY3VtZW50LmJvZHkNCiAgICAgICAg ICAgICAgICApOw0KICAgICAgICAgICAgfSwgW28sIGFdKSwNCiAgICAgICAgICAgICAgYXIo KCkgPT4gew0KICAgICAgICAgICAgICAgIGlmIChpICYmICFhKQ0KICAgICAgICAgICAgICAg ICAgcmV0dXJuICgNCiAgICAgICAgICAgICAgICAgICAgbnIobiwgaSksDQogICAgICAgICAg ICAgICAgICAgICgpID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICBucihuLCBudWxsKTsN CiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgKTsNCiAgICAgICAg ICAgICAgfSwgW24sIGksIGFdKSwNCiAgICAgICAgICAgICAgYSkNCiAgICAgICAgICApIHsN CiAgICAgICAgICAgIGlmICh0LmlzVmFsaWRFbGVtZW50KHIpKSB7DQogICAgICAgICAgICAg IGNvbnN0IGUgPSB7IHJlZjogcyB9Ow0KICAgICAgICAgICAgICByZXR1cm4gdC5jbG9uZUVs ZW1lbnQociwgZSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXR1cm4gKDAsIE5y LmpzeCkodC5GcmFnbWVudCwgeyBjaGlsZHJlbjogciB9KTsNCiAgICAgICAgICB9DQogICAg ICAgICAgcmV0dXJuICgwLCBOci5qc3gpKHQuRnJhZ21lbnQsIHsgY2hpbGRyZW46IGkgPyBG by5jcmVhdGVQb3J0YWwociwgaSkgOiBpIH0pOw0KICAgICAgICB9KTsNCiAgICAgICAgY29u c3QgRG8gPSAhMTsNCiAgICAgICAgdmFyIFVvID0gInVubW91bnRlZCIsDQogICAgICAgICAg V28gPSAiZXhpdGVkIiwNCiAgICAgICAgICBWbyA9ICJlbnRlcmluZyIsDQogICAgICAgICAg SG8gPSAiZW50ZXJlZCIsDQogICAgICAgICAgcW8gPSAiZXhpdGluZyIsDQogICAgICAgICAg JG8gPSAoZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgIGZ1bmN0aW9uIG4odCwgbikgew0K ICAgICAgICAgICAgICB2YXIgcjsNCiAgICAgICAgICAgICAgciA9IGUuY2FsbCh0aGlzLCB0 LCBuKSB8fCB0aGlzOw0KICAgICAgICAgICAgICB2YXIgbywNCiAgICAgICAgICAgICAgICBh ID0gbiAmJiAhbi5pc01vdW50aW5nID8gdC5lbnRlciA6IHQuYXBwZWFyOw0KICAgICAgICAg ICAgICByZXR1cm4gKHIuYXBwZWFyU3RhdHVzID0gbnVsbCksIHQuaW4gPyAoYSA/ICgobyA9 IFdvKSwgKHIuYXBwZWFyU3RhdHVzID0gVm8pKSA6IChvID0gSG8pKSA6IChvID0gdC51bm1v dW50T25FeGl0IHx8IHQubW91bnRPbkVudGVyID8gVW8gOiBXbyksIChyLnN0YXRlID0geyBz dGF0dXM6IG8gfSksIChyLm5leHRDYWxsYmFjayA9IG51bGwpLCByOw0KICAgICAgICAgICAg fQ0KICAgICAgICAgICAgYnIobiwgZSksDQogICAgICAgICAgICAgIChuLmdldERlcml2ZWRT dGF0ZUZyb21Qcm9wcyA9IGZ1bmN0aW9uIChlLCB0KSB7DQogICAgICAgICAgICAgICAgcmV0 dXJuIGUuaW4gJiYgdC5zdGF0dXMgPT09IFVvID8geyBzdGF0dXM6IFdvIH0gOiBudWxsOw0K ICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgIHZhciByID0gbi5wcm90b3R5cGU7DQog ICAgICAgICAgICByZXR1cm4gKA0KICAgICAgICAgICAgICAoci5jb21wb25lbnREaWRNb3Vu dCA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVN0YXR1cygh MCwgdGhpcy5hcHBlYXJTdGF0dXMpOw0KICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAg ICAgKHIuY29tcG9uZW50RGlkVXBkYXRlID0gZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAg ICAgICB2YXIgdCA9IG51bGw7DQogICAgICAgICAgICAgICAgaWYgKGUgIT09IHRoaXMucHJv cHMpIHsNCiAgICAgICAgICAgICAgICAgIHZhciBuID0gdGhpcy5zdGF0ZS5zdGF0dXM7DQog ICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLmluID8gbiAhPT0gVm8gJiYgbiAhPT0gSG8g JiYgKHQgPSBWbykgOiAobiAhPT0gVm8gJiYgbiAhPT0gSG8pIHx8ICh0ID0gcW8pOw0KICAg ICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVN0YXR1cyghMSwg dCk7DQogICAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAgICAoci5jb21wb25lbnRXaWxs VW5tb3VudCA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICB0aGlzLmNhbmNlbE5l eHRDYWxsYmFjaygpOw0KICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgKHIuZ2V0 VGltZW91dHMgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgdmFyIGUsDQogICAg ICAgICAgICAgICAgICB0LA0KICAgICAgICAgICAgICAgICAgbiwNCiAgICAgICAgICAgICAg ICAgIHIgPSB0aGlzLnByb3BzLnRpbWVvdXQ7DQogICAgICAgICAgICAgICAgcmV0dXJuIChl ID0gdCA9IG4gPSByKSwgbnVsbCAhPSByICYmICJudW1iZXIiICE9PSB0eXBlb2YgciAmJiAo KGUgPSByLmV4aXQpLCAodCA9IHIuZW50ZXIpLCAobiA9IHZvaWQgMCAhPT0gci5hcHBlYXIg PyByLmFwcGVhciA6IHQpKSwgeyBleGl0OiBlLCBlbnRlcjogdCwgYXBwZWFyOiBuIH07DQog ICAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAgICAoci51cGRhdGVTdGF0dXMgPSBmdW5j dGlvbiAoZSwgdCkgew0KICAgICAgICAgICAgICAgIGlmICgodm9pZCAwID09PSBlICYmIChl ID0gITEpLCBudWxsICE9PSB0KSkNCiAgICAgICAgICAgICAgICAgIGlmICgodGhpcy5jYW5j ZWxOZXh0Q2FsbGJhY2soKSwgdCA9PT0gVm8pKSB7DQogICAgICAgICAgICAgICAgICAgIGlm ICh0aGlzLnByb3BzLnVubW91bnRPbkV4aXQgfHwgdGhpcy5wcm9wcy5tb3VudE9uRW50ZXIp IHsNCiAgICAgICAgICAgICAgICAgICAgICB2YXIgbiA9IHRoaXMucHJvcHMubm9kZVJlZiA/ IHRoaXMucHJvcHMubm9kZVJlZi5jdXJyZW50IDogRm8uZmluZERPTU5vZGUodGhpcyk7DQog ICAgICAgICAgICAgICAgICAgICAgbiAmJg0KICAgICAgICAgICAgICAgICAgICAgICAgKGZ1 bmN0aW9uIChlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgIGUuc2Nyb2xsVG9wOw0K ICAgICAgICAgICAgICAgICAgICAgICAgfSkobik7DQogICAgICAgICAgICAgICAgICAgIH0N CiAgICAgICAgICAgICAgICAgICAgdGhpcy5wZXJmb3JtRW50ZXIoZSk7DQogICAgICAgICAg ICAgICAgICB9IGVsc2UgdGhpcy5wZXJmb3JtRXhpdCgpOw0KICAgICAgICAgICAgICAgIGVs c2UgdGhpcy5wcm9wcy51bm1vdW50T25FeGl0ICYmIHRoaXMuc3RhdGUuc3RhdHVzID09PSBX byAmJiB0aGlzLnNldFN0YXRlKHsgc3RhdHVzOiBVbyB9KTsNCiAgICAgICAgICAgICAgfSks DQogICAgICAgICAgICAgIChyLnBlcmZvcm1FbnRlciA9IGZ1bmN0aW9uIChlKSB7DQogICAg ICAgICAgICAgICAgdmFyIHQgPSB0aGlzLA0KICAgICAgICAgICAgICAgICAgbiA9IHRoaXMu cHJvcHMuZW50ZXIsDQogICAgICAgICAgICAgICAgICByID0gdGhpcy5jb250ZXh0ID8gdGhp cy5jb250ZXh0LmlzTW91bnRpbmcgOiBlLA0KICAgICAgICAgICAgICAgICAgbyA9IHRoaXMu cHJvcHMubm9kZVJlZiA/IFtyXSA6IFtGby5maW5kRE9NTm9kZSh0aGlzKSwgcl0sDQogICAg ICAgICAgICAgICAgICBhID0gb1swXSwNCiAgICAgICAgICAgICAgICAgIGkgPSBvWzFdLA0K ICAgICAgICAgICAgICAgICAgbCA9IHRoaXMuZ2V0VGltZW91dHMoKSwNCiAgICAgICAgICAg ICAgICAgIHMgPSByID8gbC5hcHBlYXIgOiBsLmVudGVyOw0KICAgICAgICAgICAgICAgICgh ZSAmJiAhbikgfHwgRG8NCiAgICAgICAgICAgICAgICAgID8gdGhpcy5zYWZlU2V0U3RhdGUo eyBzdGF0dXM6IEhvIH0sIGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgdC5w cm9wcy5vbkVudGVyZWQoYSk7DQogICAgICAgICAgICAgICAgICB9KQ0KICAgICAgICAgICAg ICAgICAgOiAodGhpcy5wcm9wcy5vbkVudGVyKGEsIGkpLA0KICAgICAgICAgICAgICAgICAg ICB0aGlzLnNhZmVTZXRTdGF0ZSh7IHN0YXR1czogVm8gfSwgZnVuY3Rpb24gKCkgew0KICAg ICAgICAgICAgICAgICAgICAgIHQucHJvcHMub25FbnRlcmluZyhhLCBpKSwNCiAgICAgICAg ICAgICAgICAgICAgICAgIHQub25UcmFuc2l0aW9uRW5kKHMsIGZ1bmN0aW9uICgpIHsNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgdC5zYWZlU2V0U3RhdGUoeyBzdGF0dXM6IEhvIH0s IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0LnByb3BzLm9u RW50ZXJlZChhLCBpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAg ICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICAgICAgfSkpOw0KICAgICAg ICAgICAgICB9KSwNCiAgICAgICAgICAgICAgKHIucGVyZm9ybUV4aXQgPSBmdW5jdGlvbiAo KSB7DQogICAgICAgICAgICAgICAgdmFyIGUgPSB0aGlzLA0KICAgICAgICAgICAgICAgICAg dCA9IHRoaXMucHJvcHMuZXhpdCwNCiAgICAgICAgICAgICAgICAgIG4gPSB0aGlzLmdldFRp bWVvdXRzKCksDQogICAgICAgICAgICAgICAgICByID0gdGhpcy5wcm9wcy5ub2RlUmVmID8g dm9pZCAwIDogRm8uZmluZERPTU5vZGUodGhpcyk7DQogICAgICAgICAgICAgICAgdCAmJiAh RG8NCiAgICAgICAgICAgICAgICAgID8gKHRoaXMucHJvcHMub25FeGl0KHIpLA0KICAgICAg ICAgICAgICAgICAgICB0aGlzLnNhZmVTZXRTdGF0ZSh7IHN0YXR1czogcW8gfSwgZnVuY3Rp b24gKCkgew0KICAgICAgICAgICAgICAgICAgICAgIGUucHJvcHMub25FeGl0aW5nKHIpLA0K ICAgICAgICAgICAgICAgICAgICAgICAgZS5vblRyYW5zaXRpb25FbmQobi5leGl0LCBmdW5j dGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgIGUuc2FmZVNldFN0YXRlKHsg c3RhdHVzOiBXbyB9LCBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgZS5wcm9wcy5vbkV4aXRlZChyKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7 DQogICAgICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICAgICAgfSkp DQogICAgICAgICAgICAgICAgICA6IHRoaXMuc2FmZVNldFN0YXRlKHsgc3RhdHVzOiBXbyB9 LCBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIGUucHJvcHMub25FeGl0ZWQo cik7DQogICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgfSksDQogICAgICAg ICAgICAgIChyLmNhbmNlbE5leHRDYWxsYmFjayA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAg ICAgICAgICBudWxsICE9PSB0aGlzLm5leHRDYWxsYmFjayAmJiAodGhpcy5uZXh0Q2FsbGJh Y2suY2FuY2VsKCksICh0aGlzLm5leHRDYWxsYmFjayA9IG51bGwpKTsNCiAgICAgICAgICAg ICAgfSksDQogICAgICAgICAgICAgIChyLnNhZmVTZXRTdGF0ZSA9IGZ1bmN0aW9uIChlLCB0 KSB7DQogICAgICAgICAgICAgICAgKHQgPSB0aGlzLnNldE5leHRDYWxsYmFjayh0KSksIHRo aXMuc2V0U3RhdGUoZSwgdCk7DQogICAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAgICAo ci5zZXROZXh0Q2FsbGJhY2sgPSBmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgICAgIHZh ciB0ID0gdGhpcywNCiAgICAgICAgICAgICAgICAgIG4gPSAhMDsNCiAgICAgICAgICAgICAg ICByZXR1cm4gKA0KICAgICAgICAgICAgICAgICAgKHRoaXMubmV4dENhbGxiYWNrID0gZnVu Y3Rpb24gKHIpIHsNCiAgICAgICAgICAgICAgICAgICAgbiAmJiAoKG4gPSAhMSksICh0Lm5l eHRDYWxsYmFjayA9IG51bGwpLCBlKHIpKTsNCiAgICAgICAgICAgICAgICAgIH0pLA0KICAg ICAgICAgICAgICAgICAgKHRoaXMubmV4dENhbGxiYWNrLmNhbmNlbCA9IGZ1bmN0aW9uICgp IHsNCiAgICAgICAgICAgICAgICAgICAgbiA9ICExOw0KICAgICAgICAgICAgICAgICAgfSks DQogICAgICAgICAgICAgICAgICB0aGlzLm5leHRDYWxsYmFjaw0KICAgICAgICAgICAgICAg ICk7DQogICAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAgICAoci5vblRyYW5zaXRpb25F bmQgPSBmdW5jdGlvbiAoZSwgdCkgew0KICAgICAgICAgICAgICAgIHRoaXMuc2V0TmV4dENh bGxiYWNrKHQpOw0KICAgICAgICAgICAgICAgIHZhciBuID0gdGhpcy5wcm9wcy5ub2RlUmVm ID8gdGhpcy5wcm9wcy5ub2RlUmVmLmN1cnJlbnQgOiBGby5maW5kRE9NTm9kZSh0aGlzKSwN CiAgICAgICAgICAgICAgICAgIHIgPSBudWxsID09IGUgJiYgIXRoaXMucHJvcHMuYWRkRW5k TGlzdGVuZXI7DQogICAgICAgICAgICAgICAgaWYgKG4gJiYgIXIpIHsNCiAgICAgICAgICAg ICAgICAgIGlmICh0aGlzLnByb3BzLmFkZEVuZExpc3RlbmVyKSB7DQogICAgICAgICAgICAg ICAgICAgIHZhciBvID0gdGhpcy5wcm9wcy5ub2RlUmVmID8gW3RoaXMubmV4dENhbGxiYWNr XSA6IFtuLCB0aGlzLm5leHRDYWxsYmFja10sDQogICAgICAgICAgICAgICAgICAgICAgYSA9 IG9bMF0sDQogICAgICAgICAgICAgICAgICAgICAgaSA9IG9bMV07DQogICAgICAgICAgICAg ICAgICAgIHRoaXMucHJvcHMuYWRkRW5kTGlzdGVuZXIoYSwgaSk7DQogICAgICAgICAgICAg ICAgICB9DQogICAgICAgICAgICAgICAgICBudWxsICE9IGUgJiYgc2V0VGltZW91dCh0aGlz Lm5leHRDYWxsYmFjaywgZSk7DQogICAgICAgICAgICAgICAgfSBlbHNlIHNldFRpbWVvdXQo dGhpcy5uZXh0Q2FsbGJhY2ssIDApOw0KICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAg ICAgKHIucmVuZGVyID0gZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHZhciBlID0g dGhpcy5zdGF0ZS5zdGF0dXM7DQogICAgICAgICAgICAgICAgaWYgKGUgPT09IFVvKSByZXR1 cm4gbnVsbDsNCiAgICAgICAgICAgICAgICB2YXIgbiA9IHRoaXMucHJvcHMsDQogICAgICAg ICAgICAgICAgICByID0gbi5jaGlsZHJlbiwNCiAgICAgICAgICAgICAgICAgIG8gPQ0KICAg ICAgICAgICAgICAgICAgICAobi5pbiwNCiAgICAgICAgICAgICAgICAgICAgICBuLm1vdW50 T25FbnRlciwNCiAgICAgICAgICAgICAgICAgICAgICBuLnVubW91bnRPbkV4aXQsDQogICAg ICAgICAgICAgICAgICAgICAgbi5hcHBlYXIsDQogICAgICAgICAgICAgICAgICAgICAgbi5l bnRlciwNCiAgICAgICAgICAgICAgICAgICAgICBuLmV4aXQsDQogICAgICAgICAgICAgICAg ICAgICAgbi50aW1lb3V0LA0KICAgICAgICAgICAgICAgICAgICAgIG4uYWRkRW5kTGlzdGVu ZXIsDQogICAgICAgICAgICAgICAgICAgICAgbi5vbkVudGVyLA0KICAgICAgICAgICAgICAg ICAgICAgIG4ub25FbnRlcmluZywNCiAgICAgICAgICAgICAgICAgICAgICBuLm9uRW50ZXJl ZCwNCiAgICAgICAgICAgICAgICAgICAgICBuLm9uRXhpdCwNCiAgICAgICAgICAgICAgICAg ICAgICBuLm9uRXhpdGluZywNCiAgICAgICAgICAgICAgICAgICAgICBuLm9uRXhpdGVkLA0K ICAgICAgICAgICAgICAgICAgICAgIG4ubm9kZVJlZiwNCiAgICAgICAgICAgICAgICAgICAg ICBhKG4sIFsNCiAgICAgICAgICAgICAgICAgICAgICAgICJjaGlsZHJlbiIsDQogICAgICAg ICAgICAgICAgICAgICAgICAiaW4iLA0KICAgICAgICAgICAgICAgICAgICAgICAgIm1vdW50 T25FbnRlciIsDQogICAgICAgICAgICAgICAgICAgICAgICAidW5tb3VudE9uRXhpdCIsDQog ICAgICAgICAgICAgICAgICAgICAgICAiYXBwZWFyIiwNCiAgICAgICAgICAgICAgICAgICAg ICAgICJlbnRlciIsDQogICAgICAgICAgICAgICAgICAgICAgICAiZXhpdCIsDQogICAgICAg ICAgICAgICAgICAgICAgICAidGltZW91dCIsDQogICAgICAgICAgICAgICAgICAgICAgICAi YWRkRW5kTGlzdGVuZXIiLA0KICAgICAgICAgICAgICAgICAgICAgICAgIm9uRW50ZXIiLA0K ICAgICAgICAgICAgICAgICAgICAgICAgIm9uRW50ZXJpbmciLA0KICAgICAgICAgICAgICAg ICAgICAgICAgIm9uRW50ZXJlZCIsDQogICAgICAgICAgICAgICAgICAgICAgICAib25FeGl0 IiwNCiAgICAgICAgICAgICAgICAgICAgICAgICJvbkV4aXRpbmciLA0KICAgICAgICAgICAg ICAgICAgICAgICAgIm9uRXhpdGVkIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICJub2Rl UmVmIiwNCiAgICAgICAgICAgICAgICAgICAgICBdKSk7DQogICAgICAgICAgICAgICAgcmV0 dXJuIHQuY3JlYXRlRWxlbWVudCh3ci5Qcm92aWRlciwgeyB2YWx1ZTogbnVsbCB9LCAiZnVu Y3Rpb24iID09PSB0eXBlb2YgciA/IHIoZSwgbykgOiB0LmNsb25lRWxlbWVudCh0LkNoaWxk cmVuLm9ubHkociksIG8pKTsNCiAgICAgICAgICAgICAgfSksDQogICAgICAgICAgICAgIG4N CiAgICAgICAgICAgICk7DQogICAgICAgICAgfSkodC5Db21wb25lbnQpOw0KICAgICAgICBm dW5jdGlvbiBLbygpIHsgfQ0KICAgICAgICAoJG8uY29udGV4dFR5cGUgPSB3ciksDQogICAg ICAgICAgKCRvLnByb3BUeXBlcyA9IHt9KSwNCiAgICAgICAgICAoJG8uZGVmYXVsdFByb3Bz ID0geyBpbjogITEsIG1vdW50T25FbnRlcjogITEsIHVubW91bnRPbkV4aXQ6ICExLCBhcHBl YXI6ICExLCBlbnRlcjogITAsIGV4aXQ6ICEwLCBvbkVudGVyOiBLbywgb25FbnRlcmluZzog S28sIG9uRW50ZXJlZDogS28sIG9uRXhpdDogS28sIG9uRXhpdGluZzogS28sIG9uRXhpdGVk OiBLbyB9KSwNCiAgICAgICAgICAoJG8uVU5NT1VOVEVEID0gVW8pLA0KICAgICAgICAgICgk by5FWElURUQgPSBXbyksDQogICAgICAgICAgKCRvLkVOVEVSSU5HID0gVm8pLA0KICAgICAg ICAgICgkby5FTlRFUkVEID0gSG8pLA0KICAgICAgICAgICgkby5FWElUSU5HID0gcW8pOw0K ICAgICAgICBjb25zdCBRbyA9ICRvOw0KICAgICAgICBmdW5jdGlvbiBHbygpIHsNCiAgICAg ICAgICBjb25zdCBlID0gSm4oS24pOw0KICAgICAgICAgIHJldHVybiBlW1FuXSB8fCBlOw0K ICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIFlvKGUsIHQpIHsNCiAgICAgICAgICB2YXIg biwgcjsNCiAgICAgICAgICBjb25zdCB7IHRpbWVvdXQ6IG8sIGVhc2luZzogYSwgc3R5bGU6 IGkgPSB7fSB9ID0gZTsNCiAgICAgICAgICByZXR1cm4gew0KICAgICAgICAgICAgZHVyYXRp b246IG51bGwgIT0gKG4gPSBpLnRyYW5zaXRpb25EdXJhdGlvbikgPyBuIDogIm51bWJlciIg PT09IHR5cGVvZiBvID8gbyA6IG9bdC5tb2RlXSB8fCAwLA0KICAgICAgICAgICAgZWFzaW5n OiBudWxsICE9IChyID0gaS50cmFuc2l0aW9uVGltaW5nRnVuY3Rpb24pID8gciA6ICJvYmpl Y3QiID09PSB0eXBlb2YgYSA/IGFbdC5tb2RlXSA6IGEsDQogICAgICAgICAgICBkZWxheTog aS50cmFuc2l0aW9uRGVsYXksDQogICAgICAgICAgfTsNCiAgICAgICAgfQ0KICAgICAgICBj b25zdCBYbyA9IFsiYWRkRW5kTGlzdGVuZXIiLCAiYXBwZWFyIiwgImNoaWxkcmVuIiwgImVh c2luZyIsICJpbiIsICJvbkVudGVyIiwgIm9uRW50ZXJlZCIsICJvbkVudGVyaW5nIiwgIm9u RXhpdCIsICJvbkV4aXRlZCIsICJvbkV4aXRpbmciLCAic3R5bGUiLCAidGltZW91dCIsICJU cmFuc2l0aW9uQ29tcG9uZW50Il0sDQogICAgICAgICAgWm8gPSB7IGVudGVyaW5nOiB7IG9w YWNpdHk6IDEgfSwgZW50ZXJlZDogeyBvcGFjaXR5OiAxIH0gfSwNCiAgICAgICAgICBKbyA9 IHQuZm9yd2FyZFJlZihmdW5jdGlvbiAoZSwgbikgew0KICAgICAgICAgICAgY29uc3QgciA9 IEdvKCksDQogICAgICAgICAgICAgIG8gPSB7IGVudGVyOiByLnRyYW5zaXRpb25zLmR1cmF0 aW9uLmVudGVyaW5nU2NyZWVuLCBleGl0OiByLnRyYW5zaXRpb25zLmR1cmF0aW9uLmxlYXZp bmdTY3JlZW4gfSwNCiAgICAgICAgICAgICAgeyBhZGRFbmRMaXN0ZW5lcjogbCwgYXBwZWFy OiBzID0gITAsIGNoaWxkcmVuOiB1LCBlYXNpbmc6IGMsIGluOiBkLCBvbkVudGVyOiBmLCBv bkVudGVyZWQ6IHAsIG9uRW50ZXJpbmc6IGgsIG9uRXhpdDogbSwgb25FeGl0ZWQ6IGcsIG9u RXhpdGluZzogdiwgc3R5bGU6IHksIHRpbWVvdXQ6IGIgPSBvLCBUcmFuc2l0aW9uQ29tcG9u ZW50OiB3ID0gUW8gfSA9IGUsDQogICAgICAgICAgICAgIHggPSBhKGUsIFhvKSwNCiAgICAg ICAgICAgICAgUyA9IHQudXNlUmVmKG51bGwpLA0KICAgICAgICAgICAgICBrID0gb3IoUywg dS5yZWYsIG4pLA0KICAgICAgICAgICAgICBFID0gKGUpID0+ICh0KSA9PiB7DQogICAgICAg ICAgICAgICAgaWYgKGUpIHsNCiAgICAgICAgICAgICAgICAgIGNvbnN0IG4gPSBTLmN1cnJl bnQ7DQogICAgICAgICAgICAgICAgICB2b2lkIDAgPT09IHQgPyBlKG4pIDogZShuLCB0KTsN CiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgIEMg PSBFKGgpLA0KICAgICAgICAgICAgICBSID0gRSgoZSwgdCkgPT4gew0KICAgICAgICAgICAg ICAgICgoZSkgPT4gew0KICAgICAgICAgICAgICAgICAgZS5zY3JvbGxUb3A7DQogICAgICAg ICAgICAgICAgfSkoZSk7DQogICAgICAgICAgICAgICAgY29uc3QgbiA9IFlvKHsgc3R5bGU6 IHksIHRpbWVvdXQ6IGIsIGVhc2luZzogYyB9LCB7IG1vZGU6ICJlbnRlciIgfSk7DQogICAg ICAgICAgICAgICAgKGUuc3R5bGUud2Via2l0VHJhbnNpdGlvbiA9IHIudHJhbnNpdGlvbnMu Y3JlYXRlKCJvcGFjaXR5IiwgbikpLCAoZS5zdHlsZS50cmFuc2l0aW9uID0gci50cmFuc2l0 aW9ucy5jcmVhdGUoIm9wYWNpdHkiLCBuKSksIGYgJiYgZihlLCB0KTsNCiAgICAgICAgICAg ICAgfSksDQogICAgICAgICAgICAgIF8gPSBFKHApLA0KICAgICAgICAgICAgICBQID0gRSh2 KSwNCiAgICAgICAgICAgICAgTyA9IEUoKGUpID0+IHsNCiAgICAgICAgICAgICAgICBjb25z dCB0ID0gWW8oeyBzdHlsZTogeSwgdGltZW91dDogYiwgZWFzaW5nOiBjIH0sIHsgbW9kZTog ImV4aXQiIH0pOw0KICAgICAgICAgICAgICAgIChlLnN0eWxlLndlYmtpdFRyYW5zaXRpb24g PSByLnRyYW5zaXRpb25zLmNyZWF0ZSgib3BhY2l0eSIsIHQpKSwgKGUuc3R5bGUudHJhbnNp dGlvbiA9IHIudHJhbnNpdGlvbnMuY3JlYXRlKCJvcGFjaXR5IiwgdCkpLCBtICYmIG0oZSk7 DQogICAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAgICBOID0gRShnKTsNCiAgICAgICAg ICAgIHJldHVybiAoMCwgTnIuanN4KSgNCiAgICAgICAgICAgICAgdywNCiAgICAgICAgICAg ICAgaSgNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICBhcHBlYXI6IHMs DQogICAgICAgICAgICAgICAgICBpbjogZCwNCiAgICAgICAgICAgICAgICAgIG5vZGVSZWY6 IFMsDQogICAgICAgICAgICAgICAgICBvbkVudGVyOiBSLA0KICAgICAgICAgICAgICAgICAg b25FbnRlcmVkOiBfLA0KICAgICAgICAgICAgICAgICAgb25FbnRlcmluZzogQywNCiAgICAg ICAgICAgICAgICAgIG9uRXhpdDogTywNCiAgICAgICAgICAgICAgICAgIG9uRXhpdGVkOiBO LA0KICAgICAgICAgICAgICAgICAgb25FeGl0aW5nOiBQLA0KICAgICAgICAgICAgICAgICAg YWRkRW5kTGlzdGVuZXI6IChlKSA9PiB7DQogICAgICAgICAgICAgICAgICAgIGwgJiYgbChT LmN1cnJlbnQsIGUpOw0KICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAg IHRpbWVvdXQ6IGIsDQogICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICB4LA0K ICAgICAgICAgICAgICAgIHsgY2hpbGRyZW46IChlLCBuKSA9PiB0LmNsb25lRWxlbWVudCh1 LCBpKHsgc3R5bGU6IGkoeyBvcGFjaXR5OiAwLCB2aXNpYmlsaXR5OiAiZXhpdGVkIiAhPT0g ZSB8fCBkID8gdm9pZCAwIDogImhpZGRlbiIgfSwgWm9bZV0sIHksIHUucHJvcHMuc3R5bGUp LCByZWY6IGsgfSwgbikpIH0NCiAgICAgICAgICAgICAgKQ0KICAgICAgICAgICAgKTsNCiAg ICAgICAgICB9KSwNCiAgICAgICAgICBlYSA9IEpvOw0KICAgICAgICBmdW5jdGlvbiB0YShl KSB7DQogICAgICAgICAgcmV0dXJuIGpyKCJNdWlCYWNrZHJvcCIsIGUpOw0KICAgICAgICB9 DQogICAgICAgIElyKCJNdWlCYWNrZHJvcCIsIFsicm9vdCIsICJpbnZpc2libGUiXSk7DQog ICAgICAgIGNvbnN0IG5hID0gWyJjaGlsZHJlbiIsICJjbGFzc05hbWUiLCAiY29tcG9uZW50 IiwgImNvbXBvbmVudHMiLCAiY29tcG9uZW50c1Byb3BzIiwgImludmlzaWJsZSIsICJvcGVu IiwgInNsb3RQcm9wcyIsICJzbG90cyIsICJUcmFuc2l0aW9uQ29tcG9uZW50IiwgInRyYW5z aXRpb25EdXJhdGlvbiJdLA0KICAgICAgICAgIHJhID0gWW4oImRpdiIsIHsNCiAgICAgICAg ICAgIG5hbWU6ICJNdWlCYWNrZHJvcCIsDQogICAgICAgICAgICBzbG90OiAiUm9vdCIsDQog ICAgICAgICAgICBvdmVycmlkZXNSZXNvbHZlcjogKGUsIHQpID0+IHsNCiAgICAgICAgICAg ICAgY29uc3QgeyBvd25lclN0YXRlOiBuIH0gPSBlOw0KICAgICAgICAgICAgICByZXR1cm4g W3Qucm9vdCwgbi5pbnZpc2libGUgJiYgdC5pbnZpc2libGVdOw0KICAgICAgICAgICAgfSwN CiAgICAgICAgICB9KSgoZSkgPT4gew0KICAgICAgICAgICAgbGV0IHsgb3duZXJTdGF0ZTog dCB9ID0gZTsNCiAgICAgICAgICAgIHJldHVybiBpKA0KICAgICAgICAgICAgICB7IHBvc2l0 aW9uOiAiZml4ZWQiLCBkaXNwbGF5OiAiZmxleCIsIGFsaWduSXRlbXM6ICJjZW50ZXIiLCBq dXN0aWZ5Q29udGVudDogImNlbnRlciIsIHJpZ2h0OiAwLCBib3R0b206IDAsIHRvcDogMCwg bGVmdDogMCwgYmFja2dyb3VuZENvbG9yOiAicmdiYSgwLCAwLCAwLCAwLjUpIiwgV2Via2l0 VGFwSGlnaGxpZ2h0Q29sb3I6ICJ0cmFuc3BhcmVudCIgfSwNCiAgICAgICAgICAgICAgdC5p bnZpc2libGUgJiYgeyBiYWNrZ3JvdW5kQ29sb3I6ICJ0cmFuc3BhcmVudCIgfQ0KICAgICAg ICAgICAgKTsNCiAgICAgICAgICB9KSwNCiAgICAgICAgICBvYSA9IHQuZm9yd2FyZFJlZihm dW5jdGlvbiAoZSwgdCkgew0KICAgICAgICAgICAgdmFyIG4sIHIsIG87DQogICAgICAgICAg ICBjb25zdCBsID0gdHIoeyBwcm9wczogZSwgbmFtZTogIk11aUJhY2tkcm9wIiB9KSwNCiAg ICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGNoaWxkcmVuOiB1LA0KICAgICAgICAg ICAgICAgIGNsYXNzTmFtZTogZCwNCiAgICAgICAgICAgICAgICBjb21wb25lbnQ6IGYgPSAi ZGl2IiwNCiAgICAgICAgICAgICAgICBjb21wb25lbnRzOiBwID0ge30sDQogICAgICAgICAg ICAgICAgY29tcG9uZW50c1Byb3BzOiBoID0ge30sDQogICAgICAgICAgICAgICAgaW52aXNp YmxlOiBtID0gITEsDQogICAgICAgICAgICAgICAgb3BlbjogZywNCiAgICAgICAgICAgICAg ICBzbG90UHJvcHM6IHYgPSB7fSwNCiAgICAgICAgICAgICAgICBzbG90czogeSA9IHt9LA0K ICAgICAgICAgICAgICAgIFRyYW5zaXRpb25Db21wb25lbnQ6IGIgPSBlYSwNCiAgICAgICAg ICAgICAgICB0cmFuc2l0aW9uRHVyYXRpb246IHcsDQogICAgICAgICAgICAgIH0gPSBsLA0K ICAgICAgICAgICAgICB4ID0gYShsLCBuYSksDQogICAgICAgICAgICAgIFMgPSBpKHt9LCBs LCB7IGNvbXBvbmVudDogZiwgaW52aXNpYmxlOiBtIH0pLA0KICAgICAgICAgICAgICBrID0g KChlKSA9PiB7DQogICAgICAgICAgICAgICAgY29uc3QgeyBjbGFzc2VzOiB0LCBpbnZpc2li bGU6IG4gfSA9IGU7DQogICAgICAgICAgICAgICAgcmV0dXJuIGMoeyByb290OiBbInJvb3Qi LCBuICYmICJpbnZpc2libGUiXSB9LCB0YSwgdCk7DQogICAgICAgICAgICAgIH0pKFMpLA0K ICAgICAgICAgICAgICBFID0gbnVsbCAhPSAobiA9IHYucm9vdCkgPyBuIDogaC5yb290Ow0K ICAgICAgICAgICAgcmV0dXJuICgwLA0KICAgICAgICAgICAgICBOci5qc3gpKGIsIGkoeyBp bjogZywgdGltZW91dDogdyB9LCB4LCB7IGNoaWxkcmVuOiAoMCwgTnIuanN4KShyYSwgaSh7 ICJhcmlhLWhpZGRlbiI6ICEwIH0sIEUsIHsgYXM6IG51bGwgIT0gKHIgPSBudWxsICE9IChv ID0geS5yb290KSA/IG8gOiBwLlJvb3QpID8gciA6IGYsIGNsYXNzTmFtZTogcyhrLnJvb3Qs IGQsIG51bGwgPT0gRSA/IHZvaWQgMCA6IEUuY2xhc3NOYW1lKSwgb3duZXJTdGF0ZTogaSh7 fSwgUywgbnVsbCA9PSBFID8gdm9pZCAwIDogRS5vd25lclN0YXRlKSwgY2xhc3Nlczogaywg cmVmOiB0LCBjaGlsZHJlbjogdSB9KSkgfSkpOw0KICAgICAgICAgIH0pOw0KICAgICAgICBm dW5jdGlvbiBhYShlKSB7DQogICAgICAgICAgcmV0dXJuIGpyKCJNdWlNb2RhbCIsIGUpOw0K ICAgICAgICB9DQogICAgICAgIElyKCJNdWlNb2RhbCIsIFsicm9vdCIsICJoaWRkZW4iLCAi YmFja2Ryb3AiXSk7DQogICAgICAgIGNvbnN0IGlhID0gWw0KICAgICAgICAgICJCYWNrZHJv cENvbXBvbmVudCIsDQogICAgICAgICAgIkJhY2tkcm9wUHJvcHMiLA0KICAgICAgICAgICJj bGFzc2VzIiwNCiAgICAgICAgICAiY2xhc3NOYW1lIiwNCiAgICAgICAgICAiY2xvc2VBZnRl clRyYW5zaXRpb24iLA0KICAgICAgICAgICJjaGlsZHJlbiIsDQogICAgICAgICAgImNvbnRh aW5lciIsDQogICAgICAgICAgImNvbXBvbmVudCIsDQogICAgICAgICAgImNvbXBvbmVudHMi LA0KICAgICAgICAgICJjb21wb25lbnRzUHJvcHMiLA0KICAgICAgICAgICJkaXNhYmxlQXV0 b0ZvY3VzIiwNCiAgICAgICAgICAiZGlzYWJsZUVuZm9yY2VGb2N1cyIsDQogICAgICAgICAg ImRpc2FibGVFc2NhcGVLZXlEb3duIiwNCiAgICAgICAgICAiZGlzYWJsZVBvcnRhbCIsDQog ICAgICAgICAgImRpc2FibGVSZXN0b3JlRm9jdXMiLA0KICAgICAgICAgICJkaXNhYmxlU2Ny b2xsTG9jayIsDQogICAgICAgICAgImhpZGVCYWNrZHJvcCIsDQogICAgICAgICAgImtlZXBN b3VudGVkIiwNCiAgICAgICAgICAib25CYWNrZHJvcENsaWNrIiwNCiAgICAgICAgICAib25D bG9zZSIsDQogICAgICAgICAgIm9uVHJhbnNpdGlvbkVudGVyIiwNCiAgICAgICAgICAib25U cmFuc2l0aW9uRXhpdGVkIiwNCiAgICAgICAgICAib3BlbiIsDQogICAgICAgICAgInNsb3RQ cm9wcyIsDQogICAgICAgICAgInNsb3RzIiwNCiAgICAgICAgICAidGhlbWUiLA0KICAgICAg ICBdLA0KICAgICAgICAgIGxhID0gWW4oImRpdiIsIHsNCiAgICAgICAgICAgIG5hbWU6ICJN dWlNb2RhbCIsDQogICAgICAgICAgICBzbG90OiAiUm9vdCIsDQogICAgICAgICAgICBvdmVy cmlkZXNSZXNvbHZlcjogKGUsIHQpID0+IHsNCiAgICAgICAgICAgICAgY29uc3QgeyBvd25l clN0YXRlOiBuIH0gPSBlOw0KICAgICAgICAgICAgICByZXR1cm4gW3Qucm9vdCwgIW4ub3Bl biAmJiBuLmV4aXRlZCAmJiB0LmhpZGRlbl07DQogICAgICAgICAgICB9LA0KICAgICAgICAg IH0pKChlKSA9PiB7DQogICAgICAgICAgICBsZXQgeyB0aGVtZTogdCwgb3duZXJTdGF0ZTog biB9ID0gZTsNCiAgICAgICAgICAgIHJldHVybiBpKHsgcG9zaXRpb246ICJmaXhlZCIsIHpJ bmRleDogKHQudmFycyB8fCB0KS56SW5kZXgubW9kYWwsIHJpZ2h0OiAwLCBib3R0b206IDAs IHRvcDogMCwgbGVmdDogMCB9LCAhbi5vcGVuICYmIG4uZXhpdGVkICYmIHsgdmlzaWJpbGl0 eTogImhpZGRlbiIgfSk7DQogICAgICAgICAgfSksDQogICAgICAgICAgc2EgPSBZbihvYSwg eyBuYW1lOiAiTXVpTW9kYWwiLCBzbG90OiAiQmFja2Ryb3AiLCBvdmVycmlkZXNSZXNvbHZl cjogKGUsIHQpID0+IHQuYmFja2Ryb3AgfSkoeyB6SW5kZXg6IC0xIH0pLA0KICAgICAgICAg IHVhID0gdC5mb3J3YXJkUmVmKGZ1bmN0aW9uIChlLCBuKSB7DQogICAgICAgICAgICB2YXIg ciwgbywgbCwgdSwgZCwgZjsNCiAgICAgICAgICAgIGNvbnN0IHAgPSB0cih7IG5hbWU6ICJN dWlNb2RhbCIsIHByb3BzOiBlIH0pLA0KICAgICAgICAgICAgICB7DQogICAgICAgICAgICAg ICAgQmFja2Ryb3BDb21wb25lbnQ6IGggPSBzYSwNCiAgICAgICAgICAgICAgICBCYWNrZHJv cFByb3BzOiBtLA0KICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogZywNCiAgICAgICAgICAg ICAgICBjbG9zZUFmdGVyVHJhbnNpdGlvbjogdiA9ICExLA0KICAgICAgICAgICAgICAgIGNo aWxkcmVuOiB5LA0KICAgICAgICAgICAgICAgIGNvbnRhaW5lcjogYiwNCiAgICAgICAgICAg ICAgICBjb21wb25lbnQ6IHcsDQogICAgICAgICAgICAgICAgY29tcG9uZW50czogeCA9IHt9 LA0KICAgICAgICAgICAgICAgIGNvbXBvbmVudHNQcm9wczogUyA9IHt9LA0KICAgICAgICAg ICAgICAgIGRpc2FibGVBdXRvRm9jdXM6IGsgPSAhMSwNCiAgICAgICAgICAgICAgICBkaXNh YmxlRW5mb3JjZUZvY3VzOiBFID0gITEsDQogICAgICAgICAgICAgICAgZGlzYWJsZUVzY2Fw ZUtleURvd246IEMgPSAhMSwNCiAgICAgICAgICAgICAgICBkaXNhYmxlUG9ydGFsOiBSID0g ITEsDQogICAgICAgICAgICAgICAgZGlzYWJsZVJlc3RvcmVGb2N1czogXyA9ICExLA0KICAg ICAgICAgICAgICAgIGRpc2FibGVTY3JvbGxMb2NrOiBQID0gITEsDQogICAgICAgICAgICAg ICAgaGlkZUJhY2tkcm9wOiBPID0gITEsDQogICAgICAgICAgICAgICAga2VlcE1vdW50ZWQ6 IE4gPSAhMSwNCiAgICAgICAgICAgICAgICBvbkJhY2tkcm9wQ2xpY2s6IFQsDQogICAgICAg ICAgICAgICAgb3BlbjogQSwNCiAgICAgICAgICAgICAgICBzbG90UHJvcHM6IE0sDQogICAg ICAgICAgICAgICAgc2xvdHM6IHosDQogICAgICAgICAgICAgIH0gPSBwLA0KICAgICAgICAg ICAgICBqID0gYShwLCBpYSksDQogICAgICAgICAgICAgIEkgPSBpKHt9LCBwLCB7DQogICAg ICAgICAgICAgICAgY2xvc2VBZnRlclRyYW5zaXRpb246IHYsDQogICAgICAgICAgICAgICAg ZGlzYWJsZUF1dG9Gb2N1czogaywNCiAgICAgICAgICAgICAgICBkaXNhYmxlRW5mb3JjZUZv Y3VzOiBFLA0KICAgICAgICAgICAgICAgIGRpc2FibGVFc2NhcGVLZXlEb3duOiBDLA0KICAg ICAgICAgICAgICAgIGRpc2FibGVQb3J0YWw6IFIsDQogICAgICAgICAgICAgICAgZGlzYWJs ZVJlc3RvcmVGb2N1czogXywNCiAgICAgICAgICAgICAgICBkaXNhYmxlU2Nyb2xsTG9jazog UCwNCiAgICAgICAgICAgICAgICBoaWRlQmFja2Ryb3A6IE8sDQogICAgICAgICAgICAgICAg a2VlcE1vdW50ZWQ6IE4sDQogICAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAgICB7IGdl dFJvb3RQcm9wczogTCwgZ2V0QmFja2Ryb3BQcm9wczogRiwgZ2V0VHJhbnNpdGlvblByb3Bz OiBCLCBwb3J0YWxSZWY6IEQsIGlzVG9wTW9kYWw6IFUsIGV4aXRlZDogVywgaGFzVHJhbnNp dGlvbjogViB9ID0gTW8oaSh7fSwgSSwgeyByb290UmVmOiBuIH0pKSwNCiAgICAgICAgICAg ICAgSCA9IGkoe30sIEksIHsgZXhpdGVkOiBXIH0pLA0KICAgICAgICAgICAgICBxID0gKChl KSA9PiB7DQogICAgICAgICAgICAgICAgY29uc3QgeyBvcGVuOiB0LCBleGl0ZWQ6IG4sIGNs YXNzZXM6IHIgfSA9IGU7DQogICAgICAgICAgICAgICAgcmV0dXJuIGMoeyByb290OiBbInJv b3QiLCAhdCAmJiBuICYmICJoaWRkZW4iXSwgYmFja2Ryb3A6IFsiYmFja2Ryb3AiXSB9LCBh YSwgcik7DQogICAgICAgICAgICAgIH0pKEgpLA0KICAgICAgICAgICAgICAkID0ge307DQog ICAgICAgICAgICBpZiAoKHZvaWQgMCA9PT0geS5wcm9wcy50YWJJbmRleCAmJiAoJC50YWJJ bmRleCA9ICItMSIpLCBWKSkgew0KICAgICAgICAgICAgICBjb25zdCB7IG9uRW50ZXI6IGUs IG9uRXhpdGVkOiB0IH0gPSBCKCk7DQogICAgICAgICAgICAgICgkLm9uRW50ZXIgPSBlKSwg KCQub25FeGl0ZWQgPSB0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnN0IEsg PSBudWxsICE9IChyID0gbnVsbCAhPSAobyA9IG51bGwgPT0geiA/IHZvaWQgMCA6IHoucm9v dCkgPyBvIDogeC5Sb290KSA/IHIgOiBsYSwNCiAgICAgICAgICAgICAgUSA9IG51bGwgIT0g KGwgPSBudWxsICE9ICh1ID0gbnVsbCA9PSB6ID8gdm9pZCAwIDogei5iYWNrZHJvcCkgPyB1 IDogeC5CYWNrZHJvcCkgPyBsIDogaCwNCiAgICAgICAgICAgICAgRyA9IG51bGwgIT0gKGQg PSBudWxsID09IE0gPyB2b2lkIDAgOiBNLnJvb3QpID8gZCA6IFMucm9vdCwNCiAgICAgICAg ICAgICAgWSA9IG51bGwgIT0gKGYgPSBudWxsID09IE0gPyB2b2lkIDAgOiBNLmJhY2tkcm9w KSA/IGYgOiBTLmJhY2tkcm9wLA0KICAgICAgICAgICAgICBYID0ga28oew0KICAgICAgICAg ICAgICAgIGVsZW1lbnRUeXBlOiBLLA0KICAgICAgICAgICAgICAgIGV4dGVybmFsU2xvdFBy b3BzOiBHLA0KICAgICAgICAgICAgICAgIGV4dGVybmFsRm9yd2FyZGVkUHJvcHM6IGosDQog ICAgICAgICAgICAgICAgZ2V0U2xvdFByb3BzOiBMLA0KICAgICAgICAgICAgICAgIGFkZGl0 aW9uYWxQcm9wczogeyByZWY6IG4sIGFzOiB3IH0sDQogICAgICAgICAgICAgICAgb3duZXJT dGF0ZTogSCwNCiAgICAgICAgICAgICAgICBjbGFzc05hbWU6IHMoZywgbnVsbCA9PSBHID8g dm9pZCAwIDogRy5jbGFzc05hbWUsIG51bGwgPT0gcSA/IHZvaWQgMCA6IHEucm9vdCwgIUgu b3BlbiAmJiBILmV4aXRlZCAmJiAobnVsbCA9PSBxID8gdm9pZCAwIDogcS5oaWRkZW4pKSwN CiAgICAgICAgICAgICAgfSksDQogICAgICAgICAgICAgIFogPSBrbyh7DQogICAgICAgICAg ICAgICAgZWxlbWVudFR5cGU6IFEsDQogICAgICAgICAgICAgICAgZXh0ZXJuYWxTbG90UHJv cHM6IFksDQogICAgICAgICAgICAgICAgYWRkaXRpb25hbFByb3BzOiBtLA0KICAgICAgICAg ICAgICAgIGdldFNsb3RQcm9wczogKGUpID0+DQogICAgICAgICAgICAgICAgICBGKA0KICAg ICAgICAgICAgICAgICAgICBpKHt9LCBlLCB7DQogICAgICAgICAgICAgICAgICAgICAgb25D bGljazogKHQpID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIFQgJiYgVCh0KSwgbnVs bCAhPSBlICYmIGUub25DbGljayAmJiBlLm9uQ2xpY2sodCk7DQogICAgICAgICAgICAgICAg ICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICAgfSkNCiAgICAgICAgICAgICAgICAgICks DQogICAgICAgICAgICAgICAgY2xhc3NOYW1lOiBzKG51bGwgPT0gWSA/IHZvaWQgMCA6IFku Y2xhc3NOYW1lLCBudWxsID09IG0gPyB2b2lkIDAgOiBtLmNsYXNzTmFtZSwgbnVsbCA9PSBx ID8gdm9pZCAwIDogcS5iYWNrZHJvcCksDQogICAgICAgICAgICAgICAgb3duZXJTdGF0ZTog SCwNCiAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICByZXR1cm4gTiB8fCBBIHx8IChW ICYmICFXKQ0KICAgICAgICAgICAgICA/ICgwLCBOci5qc3gpKEJvLCB7DQogICAgICAgICAg ICAgICAgcmVmOiBELA0KICAgICAgICAgICAgICAgIGNvbnRhaW5lcjogYiwNCiAgICAgICAg ICAgICAgICBkaXNhYmxlUG9ydGFsOiBSLA0KICAgICAgICAgICAgICAgIGNoaWxkcmVuOiAo MCwgTnIuanN4cykoDQogICAgICAgICAgICAgICAgICBLLA0KICAgICAgICAgICAgICAgICAg aSh7fSwgWCwgew0KICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogWw0KICAgICAgICAg ICAgICAgICAgICAgICFPICYmIGggPyAoMCwgTnIuanN4KShRLCBpKHt9LCBaKSkgOiBudWxs LA0KICAgICAgICAgICAgICAgICAgICAgICgwLCBOci5qc3gpKExvLCB7IGRpc2FibGVFbmZv cmNlRm9jdXM6IEUsIGRpc2FibGVBdXRvRm9jdXM6IGssIGRpc2FibGVSZXN0b3JlRm9jdXM6 IF8sIGlzRW5hYmxlZDogVSwgb3BlbjogQSwgY2hpbGRyZW46IHQuY2xvbmVFbGVtZW50KHks ICQpIH0pLA0KICAgICAgICAgICAgICAgICAgICBdLA0KICAgICAgICAgICAgICAgICAgfSkN CiAgICAgICAgICAgICAgICApLA0KICAgICAgICAgICAgICB9KQ0KICAgICAgICAgICAgICA6 IG51bGw7DQogICAgICAgICAgfSksDQogICAgICAgICAgY2EgPSB1YSwNCiAgICAgICAgICBk YSA9IFsic3giXSwNCiAgICAgICAgICBmYSA9IChlKSA9PiB7DQogICAgICAgICAgICB2YXIg dCwgbjsNCiAgICAgICAgICAgIGNvbnN0IHIgPSB7IHN5c3RlbVByb3BzOiB7fSwgb3RoZXJQ cm9wczoge30gfSwNCiAgICAgICAgICAgICAgbyA9IG51bGwgIT0gKHQgPSBudWxsID09IGUg fHwgbnVsbCA9PSAobiA9IGUudGhlbWUpID8gdm9pZCAwIDogbi51bnN0YWJsZV9zeENvbmZp ZykgPyB0IDogWnQ7DQogICAgICAgICAgICByZXR1cm4gKA0KICAgICAgICAgICAgICBPYmpl Y3Qua2V5cyhlKS5mb3JFYWNoKCh0KSA9PiB7DQogICAgICAgICAgICAgICAgb1t0XSA/IChy LnN5c3RlbVByb3BzW3RdID0gZVt0XSkgOiAoci5vdGhlclByb3BzW3RdID0gZVt0XSk7DQog ICAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAgICByDQogICAgICAgICAgICApOw0KICAg ICAgICAgIH07DQogICAgICAgIGZ1bmN0aW9uIHBhKGUpIHsNCiAgICAgICAgICBjb25zdCB7 IHN4OiB0IH0gPSBlLA0KICAgICAgICAgICAgbiA9IGEoZSwgZGEpLA0KICAgICAgICAgICAg eyBzeXN0ZW1Qcm9wczogciwgb3RoZXJQcm9wczogbyB9ID0gZmEobik7DQogICAgICAgICAg bGV0IGw7DQogICAgICAgICAgcmV0dXJuICgNCiAgICAgICAgICAgIChsID0gQXJyYXkuaXNB cnJheSh0KQ0KICAgICAgICAgICAgICA/IFtyLCAuLi50XQ0KICAgICAgICAgICAgICA6ICJm dW5jdGlvbiIgPT09IHR5cGVvZiB0DQogICAgICAgICAgICAgICAgPyBmdW5jdGlvbiAoKSB7 DQogICAgICAgICAgICAgICAgICBjb25zdCBlID0gdCguLi5hcmd1bWVudHMpOw0KICAgICAg ICAgICAgICAgICAgcmV0dXJuIFllKGUpID8gaSh7fSwgciwgZSkgOiByOw0KICAgICAgICAg ICAgICAgIH0NCiAgICAgICAgICAgICAgICA6IGkoe30sIHIsIHQpKSwNCiAgICAgICAgICAg IGkoe30sIG8sIHsgc3g6IGwgfSkNCiAgICAgICAgICApOw0KICAgICAgICB9DQogICAgICAg IGNvbnN0IGhhID0gWyJjbGFzc05hbWUiLCAiY29tcG9uZW50Il07DQogICAgICAgIGNvbnN0 IG1hID0gJG4oKSwNCiAgICAgICAgICBnYSA9IChmdW5jdGlvbiAoKSB7DQogICAgICAgICAg ICBsZXQgZSA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIHZvaWQgMCAhPT0gYXJndW1lbnRz WzBdID8gYXJndW1lbnRzWzBdIDoge307DQogICAgICAgICAgICBjb25zdCB7IHRoZW1lSWQ6 IG4sIGRlZmF1bHRUaGVtZTogciwgZGVmYXVsdENsYXNzTmFtZTogbyA9ICJNdWlCb3gtcm9v dCIsIGdlbmVyYXRlQ2xhc3NOYW1lOiBsIH0gPSBlLA0KICAgICAgICAgICAgICB1ID0gR2Uo ImRpdiIsIHsgc2hvdWxkRm9yd2FyZFByb3A6IChlKSA9PiAidGhlbWUiICE9PSBlICYmICJz eCIgIT09IGUgJiYgImFzIiAhPT0gZSB9KShlbik7DQogICAgICAgICAgICByZXR1cm4gdC5m b3J3YXJkUmVmKGZ1bmN0aW9uIChlLCB0KSB7DQogICAgICAgICAgICAgIGNvbnN0IGMgPSBK bihyKSwNCiAgICAgICAgICAgICAgICBkID0gcGEoZSksDQogICAgICAgICAgICAgICAgeyBj bGFzc05hbWU6IGYsIGNvbXBvbmVudDogcCA9ICJkaXYiIH0gPSBkLA0KICAgICAgICAgICAg ICAgIGggPSBhKGQsIGhhKTsNCiAgICAgICAgICAgICAgcmV0dXJuICgwLCBOci5qc3gpKHUs IGkoeyBhczogcCwgcmVmOiB0LCBjbGFzc05hbWU6IHMoZiwgbCA/IGwobykgOiBvKSwgdGhl bWU6IChuICYmIGNbbl0pIHx8IGMgfSwgaCkpOw0KICAgICAgICAgICAgfSk7DQogICAgICAg ICAgfSkoeyB0aGVtZUlkOiBRbiwgZGVmYXVsdFRoZW1lOiBtYSwgZGVmYXVsdENsYXNzTmFt ZTogIk11aUJveC1yb290IiwgZ2VuZXJhdGVDbGFzc05hbWU6IE1yLmdlbmVyYXRlIH0pLA0K ICAgICAgICAgIHZhID0gZ2E7DQogICAgICAgIGZ1bmN0aW9uIHlhKGUpIHsNCiAgICAgICAg ICByZXR1cm4ganIoIk11aUNvbGxhcHNlIiwgZSk7DQogICAgICAgIH0NCiAgICAgICAgSXIo Ik11aUNvbGxhcHNlIiwgWyJyb290IiwgImhvcml6b250YWwiLCAidmVydGljYWwiLCAiZW50 ZXJlZCIsICJoaWRkZW4iLCAid3JhcHBlciIsICJ3cmFwcGVySW5uZXIiXSk7DQogICAgICAg IGNvbnN0IGJhID0gWw0KICAgICAgICAgICJhZGRFbmRMaXN0ZW5lciIsDQogICAgICAgICAg ImNoaWxkcmVuIiwNCiAgICAgICAgICAiY2xhc3NOYW1lIiwNCiAgICAgICAgICAiY29sbGFw c2VkU2l6ZSIsDQogICAgICAgICAgImNvbXBvbmVudCIsDQogICAgICAgICAgImVhc2luZyIs DQogICAgICAgICAgImluIiwNCiAgICAgICAgICAib25FbnRlciIsDQogICAgICAgICAgIm9u RW50ZXJlZCIsDQogICAgICAgICAgIm9uRW50ZXJpbmciLA0KICAgICAgICAgICJvbkV4aXQi LA0KICAgICAgICAgICJvbkV4aXRlZCIsDQogICAgICAgICAgIm9uRXhpdGluZyIsDQogICAg ICAgICAgIm9yaWVudGF0aW9uIiwNCiAgICAgICAgICAic3R5bGUiLA0KICAgICAgICAgICJ0 aW1lb3V0IiwNCiAgICAgICAgICAiVHJhbnNpdGlvbkNvbXBvbmVudCIsDQogICAgICAgIF0s DQogICAgICAgICAgd2EgPSBZbigiZGl2Iiwgew0KICAgICAgICAgICAgbmFtZTogIk11aUNv bGxhcHNlIiwNCiAgICAgICAgICAgIHNsb3Q6ICJSb290IiwNCiAgICAgICAgICAgIG92ZXJy aWRlc1Jlc29sdmVyOiAoZSwgdCkgPT4gew0KICAgICAgICAgICAgICBjb25zdCB7IG93bmVy U3RhdGU6IG4gfSA9IGU7DQogICAgICAgICAgICAgIHJldHVybiBbdC5yb290LCB0W24ub3Jp ZW50YXRpb25dLCAiZW50ZXJlZCIgPT09IG4uc3RhdGUgJiYgdC5lbnRlcmVkLCAiZXhpdGVk IiA9PT0gbi5zdGF0ZSAmJiAhbi5pbiAmJiAiMHB4IiA9PT0gbi5jb2xsYXBzZWRTaXplICYm IHQuaGlkZGVuXTsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgfSkoKGUpID0+IHsNCiAg ICAgICAgICAgIGxldCB7IHRoZW1lOiB0LCBvd25lclN0YXRlOiBuIH0gPSBlOw0KICAgICAg ICAgICAgcmV0dXJuIGkoDQogICAgICAgICAgICAgIHsgaGVpZ2h0OiAwLCBvdmVyZmxvdzog ImhpZGRlbiIsIHRyYW5zaXRpb246IHQudHJhbnNpdGlvbnMuY3JlYXRlKCJoZWlnaHQiKSB9 LA0KICAgICAgICAgICAgICAiaG9yaXpvbnRhbCIgPT09IG4ub3JpZW50YXRpb24gJiYgeyBo ZWlnaHQ6ICJhdXRvIiwgd2lkdGg6IDAsIHRyYW5zaXRpb246IHQudHJhbnNpdGlvbnMuY3Jl YXRlKCJ3aWR0aCIpIH0sDQogICAgICAgICAgICAgICJlbnRlcmVkIiA9PT0gbi5zdGF0ZSAm JiBpKHsgaGVpZ2h0OiAiYXV0byIsIG92ZXJmbG93OiAidmlzaWJsZSIgfSwgImhvcml6b250 YWwiID09PSBuLm9yaWVudGF0aW9uICYmIHsgd2lkdGg6ICJhdXRvIiB9KSwNCiAgICAgICAg ICAgICAgImV4aXRlZCIgPT09IG4uc3RhdGUgJiYgIW4uaW4gJiYgIjBweCIgPT09IG4uY29s bGFwc2VkU2l6ZSAmJiB7IHZpc2liaWxpdHk6ICJoaWRkZW4iIH0NCiAgICAgICAgICAgICk7 DQogICAgICAgICAgfSksDQogICAgICAgICAgeGEgPSBZbigiZGl2IiwgeyBuYW1lOiAiTXVp Q29sbGFwc2UiLCBzbG90OiAiV3JhcHBlciIsIG92ZXJyaWRlc1Jlc29sdmVyOiAoZSwgdCkg PT4gdC53cmFwcGVyIH0pKChlKSA9PiB7DQogICAgICAgICAgICBsZXQgeyBvd25lclN0YXRl OiB0IH0gPSBlOw0KICAgICAgICAgICAgcmV0dXJuIGkoeyBkaXNwbGF5OiAiZmxleCIsIHdp ZHRoOiAiMTAwJSIgfSwgImhvcml6b250YWwiID09PSB0Lm9yaWVudGF0aW9uICYmIHsgd2lk dGg6ICJhdXRvIiwgaGVpZ2h0OiAiMTAwJSIgfSk7DQogICAgICAgICAgfSksDQogICAgICAg ICAgU2EgPSBZbigiZGl2IiwgeyBuYW1lOiAiTXVpQ29sbGFwc2UiLCBzbG90OiAiV3JhcHBl cklubmVyIiwgb3ZlcnJpZGVzUmVzb2x2ZXI6IChlLCB0KSA9PiB0LndyYXBwZXJJbm5lciB9 KSgoZSkgPT4gew0KICAgICAgICAgICAgbGV0IHsgb3duZXJTdGF0ZTogdCB9ID0gZTsNCiAg ICAgICAgICAgIHJldHVybiBpKHsgd2lkdGg6ICIxMDAlIiB9LCAiaG9yaXpvbnRhbCIgPT09 IHQub3JpZW50YXRpb24gJiYgeyB3aWR0aDogImF1dG8iLCBoZWlnaHQ6ICIxMDAlIiB9KTsN CiAgICAgICAgICB9KSwNCiAgICAgICAgICBrYSA9IHQuZm9yd2FyZFJlZihmdW5jdGlvbiAo ZSwgbikgew0KICAgICAgICAgICAgY29uc3QgciA9IHRyKHsgcHJvcHM6IGUsIG5hbWU6ICJN dWlDb2xsYXBzZSIgfSksDQogICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBhZGRF bmRMaXN0ZW5lcjogbywNCiAgICAgICAgICAgICAgICBjaGlsZHJlbjogbCwNCiAgICAgICAg ICAgICAgICBjbGFzc05hbWU6IHUsDQogICAgICAgICAgICAgICAgY29sbGFwc2VkU2l6ZTog ZCA9ICIwcHgiLA0KICAgICAgICAgICAgICAgIGNvbXBvbmVudDogZiwNCiAgICAgICAgICAg ICAgICBlYXNpbmc6IHAsDQogICAgICAgICAgICAgICAgaW46IGgsDQogICAgICAgICAgICAg ICAgb25FbnRlcjogbSwNCiAgICAgICAgICAgICAgICBvbkVudGVyZWQ6IGcsDQogICAgICAg ICAgICAgICAgb25FbnRlcmluZzogdiwNCiAgICAgICAgICAgICAgICBvbkV4aXQ6IHksDQog ICAgICAgICAgICAgICAgb25FeGl0ZWQ6IGIsDQogICAgICAgICAgICAgICAgb25FeGl0aW5n OiB3LA0KICAgICAgICAgICAgICAgIG9yaWVudGF0aW9uOiB4ID0gInZlcnRpY2FsIiwNCiAg ICAgICAgICAgICAgICBzdHlsZTogUywNCiAgICAgICAgICAgICAgICB0aW1lb3V0OiBrID0g Qm4uc3RhbmRhcmQsDQogICAgICAgICAgICAgICAgVHJhbnNpdGlvbkNvbXBvbmVudDogRSA9 IFFvLA0KICAgICAgICAgICAgICB9ID0gciwNCiAgICAgICAgICAgICAgQyA9IGEociwgYmEp LA0KICAgICAgICAgICAgICBSID0gaSh7fSwgciwgeyBvcmllbnRhdGlvbjogeCwgY29sbGFw c2VkU2l6ZTogZCB9KSwNCiAgICAgICAgICAgICAgXyA9ICgoZSkgPT4gew0KICAgICAgICAg ICAgICAgIGNvbnN0IHsgb3JpZW50YXRpb246IHQsIGNsYXNzZXM6IG4gfSA9IGU7DQogICAg ICAgICAgICAgICAgcmV0dXJuIGMoeyByb290OiBbInJvb3QiLCAiIi5jb25jYXQodCldLCBl bnRlcmVkOiBbImVudGVyZWQiXSwgaGlkZGVuOiBbImhpZGRlbiJdLCB3cmFwcGVyOiBbIndy YXBwZXIiLCAiIi5jb25jYXQodCldLCB3cmFwcGVySW5uZXI6IFsid3JhcHBlcklubmVyIiwg IiIuY29uY2F0KHQpXSB9LCB5YSwgbik7DQogICAgICAgICAgICAgIH0pKFIpLA0KICAgICAg ICAgICAgICBQID0gR28oKSwNCiAgICAgICAgICAgICAgTyA9IHQudXNlUmVmKCksDQogICAg ICAgICAgICAgIE4gPSB0LnVzZVJlZihudWxsKSwNCiAgICAgICAgICAgICAgVCA9IHQudXNl UmVmKCksDQogICAgICAgICAgICAgIEEgPSAibnVtYmVyIiA9PT0gdHlwZW9mIGQgPyAiIi5j b25jYXQoZCwgInB4IikgOiBkLA0KICAgICAgICAgICAgICBNID0gImhvcml6b250YWwiID09 PSB4LA0KICAgICAgICAgICAgICB6ID0gTSA/ICJ3aWR0aCIgOiAiaGVpZ2h0IjsNCiAgICAg ICAgICAgIHQudXNlRWZmZWN0KA0KICAgICAgICAgICAgICAoKSA9PiAoKSA9PiB7DQogICAg ICAgICAgICAgICAgY2xlYXJUaW1lb3V0KE8uY3VycmVudCk7DQogICAgICAgICAgICAgIH0s DQogICAgICAgICAgICAgIFtdDQogICAgICAgICAgICApOw0KICAgICAgICAgICAgY29uc3Qg aiA9IHQudXNlUmVmKG51bGwpLA0KICAgICAgICAgICAgICBJID0gb3IobiwgaiksDQogICAg ICAgICAgICAgIEwgPSAoZSkgPT4gKHQpID0+IHsNCiAgICAgICAgICAgICAgICBpZiAoZSkg ew0KICAgICAgICAgICAgICAgICAgY29uc3QgbiA9IGouY3VycmVudDsNCiAgICAgICAgICAg ICAgICAgIHZvaWQgMCA9PT0gdCA/IGUobikgOiBlKG4sIHQpOw0KICAgICAgICAgICAgICAg IH0NCiAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgRiA9ICgpID0+IChOLmN1cnJl bnQgPyBOLmN1cnJlbnRbTSA/ICJjbGllbnRXaWR0aCIgOiAiY2xpZW50SGVpZ2h0Il0gOiAw KSwNCiAgICAgICAgICAgICAgQiA9IEwoKGUsIHQpID0+IHsNCiAgICAgICAgICAgICAgICBO LmN1cnJlbnQgJiYgTSAmJiAoTi5jdXJyZW50LnN0eWxlLnBvc2l0aW9uID0gImFic29sdXRl IiksIChlLnN0eWxlW3pdID0gQSksIG0gJiYgbShlLCB0KTsNCiAgICAgICAgICAgICAgfSks DQogICAgICAgICAgICAgIEQgPSBMKChlLCB0KSA9PiB7DQogICAgICAgICAgICAgICAgY29u c3QgbiA9IEYoKTsNCiAgICAgICAgICAgICAgICBOLmN1cnJlbnQgJiYgTSAmJiAoTi5jdXJy ZW50LnN0eWxlLnBvc2l0aW9uID0gIiIpOw0KICAgICAgICAgICAgICAgIGNvbnN0IHsgZHVy YXRpb246IHIsIGVhc2luZzogbyB9ID0gWW8oeyBzdHlsZTogUywgdGltZW91dDogaywgZWFz aW5nOiBwIH0sIHsgbW9kZTogImVudGVyIiB9KTsNCiAgICAgICAgICAgICAgICBpZiAoImF1 dG8iID09PSBrKSB7DQogICAgICAgICAgICAgICAgICBjb25zdCB0ID0gUC50cmFuc2l0aW9u cy5nZXRBdXRvSGVpZ2h0RHVyYXRpb24obik7DQogICAgICAgICAgICAgICAgICAoZS5zdHls ZS50cmFuc2l0aW9uRHVyYXRpb24gPSAiIi5jb25jYXQodCwgIm1zIikpLCAoVC5jdXJyZW50 ID0gdCk7DQogICAgICAgICAgICAgICAgfSBlbHNlIGUuc3R5bGUudHJhbnNpdGlvbkR1cmF0 aW9uID0gInN0cmluZyIgPT09IHR5cGVvZiByID8gciA6ICIiLmNvbmNhdChyLCAibXMiKTsN CiAgICAgICAgICAgICAgICAoZS5zdHlsZVt6XSA9ICIiLmNvbmNhdChuLCAicHgiKSksIChl LnN0eWxlLnRyYW5zaXRpb25UaW1pbmdGdW5jdGlvbiA9IG8pLCB2ICYmIHYoZSwgdCk7DQog ICAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAgICBVID0gTCgoZSwgdCkgPT4gew0KICAg ICAgICAgICAgICAgIChlLnN0eWxlW3pdID0gImF1dG8iKSwgZyAmJiBnKGUsIHQpOw0KICAg ICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgVyA9IEwoKGUpID0+IHsNCiAgICAgICAg ICAgICAgICAoZS5zdHlsZVt6XSA9ICIiLmNvbmNhdChGKCksICJweCIpKSwgeSAmJiB5KGUp Ow0KICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgViA9IEwoYiksDQogICAgICAg ICAgICAgIEggPSBMKChlKSA9PiB7DQogICAgICAgICAgICAgICAgY29uc3QgdCA9IEYoKSwN CiAgICAgICAgICAgICAgICAgIHsgZHVyYXRpb246IG4sIGVhc2luZzogciB9ID0gWW8oeyBz dHlsZTogUywgdGltZW91dDogaywgZWFzaW5nOiBwIH0sIHsgbW9kZTogImV4aXQiIH0pOw0K ICAgICAgICAgICAgICAgIGlmICgiYXV0byIgPT09IGspIHsNCiAgICAgICAgICAgICAgICAg IGNvbnN0IG4gPSBQLnRyYW5zaXRpb25zLmdldEF1dG9IZWlnaHREdXJhdGlvbih0KTsNCiAg ICAgICAgICAgICAgICAgIChlLnN0eWxlLnRyYW5zaXRpb25EdXJhdGlvbiA9ICIiLmNvbmNh dChuLCAibXMiKSksIChULmN1cnJlbnQgPSBuKTsNCiAgICAgICAgICAgICAgICB9IGVsc2Ug ZS5zdHlsZS50cmFuc2l0aW9uRHVyYXRpb24gPSAic3RyaW5nIiA9PT0gdHlwZW9mIG4gPyBu IDogIiIuY29uY2F0KG4sICJtcyIpOw0KICAgICAgICAgICAgICAgIChlLnN0eWxlW3pdID0g QSksIChlLnN0eWxlLnRyYW5zaXRpb25UaW1pbmdGdW5jdGlvbiA9IHIpLCB3ICYmIHcoZSk7 DQogICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgcmV0dXJuICgwLCBOci5qc3gpKA0K ICAgICAgICAgICAgICBFLA0KICAgICAgICAgICAgICBpKA0KICAgICAgICAgICAgICAgIHsN CiAgICAgICAgICAgICAgICAgIGluOiBoLA0KICAgICAgICAgICAgICAgICAgb25FbnRlcjog QiwNCiAgICAgICAgICAgICAgICAgIG9uRW50ZXJlZDogVSwNCiAgICAgICAgICAgICAgICAg IG9uRW50ZXJpbmc6IEQsDQogICAgICAgICAgICAgICAgICBvbkV4aXQ6IFcsDQogICAgICAg ICAgICAgICAgICBvbkV4aXRlZDogViwNCiAgICAgICAgICAgICAgICAgIG9uRXhpdGluZzog SCwNCiAgICAgICAgICAgICAgICAgIGFkZEVuZExpc3RlbmVyOiAoZSkgPT4gew0KICAgICAg ICAgICAgICAgICAgICAiYXV0byIgPT09IGsgJiYgKE8uY3VycmVudCA9IHNldFRpbWVvdXQo ZSwgVC5jdXJyZW50IHx8IDApKSwgbyAmJiBvKGouY3VycmVudCwgZSk7DQogICAgICAgICAg ICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgbm9kZVJlZjogaiwNCiAgICAgICAgICAg ICAgICAgIHRpbWVvdXQ6ICJhdXRvIiA9PT0gayA/IG51bGwgOiBrLA0KICAgICAgICAgICAg ICAgIH0sDQogICAgICAgICAgICAgICAgQywNCiAgICAgICAgICAgICAgICB7DQogICAgICAg ICAgICAgICAgICBjaGlsZHJlbjogKGUsIHQpID0+DQogICAgICAgICAgICAgICAgICAgICgw LCBOci5qc3gpKA0KICAgICAgICAgICAgICAgICAgICAgIHdhLA0KICAgICAgICAgICAgICAg ICAgICAgIGkoDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAg ICAgICAgICAgIGFzOiBmLA0KICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6 IHMoXy5yb290LCB1LCB7IGVudGVyZWQ6IF8uZW50ZXJlZCwgZXhpdGVkOiAhaCAmJiAiMHB4 IiA9PT0gQSAmJiBfLmhpZGRlbiB9W2VdKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAg c3R5bGU6IGkoeyBbTSA/ICJtaW5XaWR0aCIgOiAibWluSGVpZ2h0Il06IEEgfSwgUyksDQog ICAgICAgICAgICAgICAgICAgICAgICAgIG93bmVyU3RhdGU6IGkoe30sIFIsIHsgc3RhdGU6 IGUgfSksDQogICAgICAgICAgICAgICAgICAgICAgICAgIHJlZjogSSwNCiAgICAgICAgICAg ICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgICAgICB0LA0KICAgICAgICAg ICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjog KDAsIE5yLmpzeCkoeGEsIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvd25lclN0 YXRlOiBpKHt9LCBSLCB7IHN0YXRlOiBlIH0pLA0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNsYXNzTmFtZTogXy53cmFwcGVyLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAg IHJlZjogTiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogKDAsIE5y LmpzeCkoU2EsIHsgb3duZXJTdGF0ZTogaSh7fSwgUiwgeyBzdGF0ZTogZSB9KSwgY2xhc3NO YW1lOiBfLndyYXBwZXJJbm5lciwgY2hpbGRyZW46IGwgfSksDQogICAgICAgICAgICAgICAg ICAgICAgICAgIH0pLA0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAg ICAgICAgICAgICkNCiAgICAgICAgICAgICAgICAgICAgKSwNCiAgICAgICAgICAgICAgICB9 DQogICAgICAgICAgICAgICkNCiAgICAgICAgICAgICk7DQogICAgICAgICAgfSk7DQogICAg ICAgIGthLm11aVN1cHBvcnRBdXRvID0gITA7DQogICAgICAgIGNvbnN0IEVhID0ga2E7DQog ICAgICAgIHZhciBDYSA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSwNCiAgICAgICAgICBSYSA9 IHt9Ow0KICAgICAgICAoKGUsIHQpID0+IHsNCiAgICAgICAgICBmb3IgKHZhciBuIGluIHQp IENhKGUsIG4sIHsgZ2V0OiB0W25dLCBlbnVtZXJhYmxlOiAhMCB9KTsNCiAgICAgICAgfSko UmEsIHsgYXNzaWduOiAoKSA9PiBhaSwgY29sb3JzOiAoKSA9PiBuaSwgY3JlYXRlU3RyaW5n SW50ZXJwb2xhdG9yOiAoKSA9PiBaYSwgc2tpcEFuaW1hdGlvbjogKCkgPT4gcmksIHRvOiAo KSA9PiBKYSwgd2lsbEFkdmFuY2U6ICgpID0+IG9pIH0pOw0KICAgICAgICB2YXIgX2EgPSBW YSgpLA0KICAgICAgICAgIFBhID0gKGUpID0+IEJhKGUsIF9hKSwNCiAgICAgICAgICBPYSA9 IFZhKCk7DQogICAgICAgIFBhLndyaXRlID0gKGUpID0+IEJhKGUsIE9hKTsNCiAgICAgICAg dmFyIE5hID0gVmEoKTsNCiAgICAgICAgUGEub25TdGFydCA9IChlKSA9PiBCYShlLCBOYSk7 DQogICAgICAgIHZhciBUYSA9IFZhKCk7DQogICAgICAgIFBhLm9uRnJhbWUgPSAoZSkgPT4g QmEoZSwgVGEpOw0KICAgICAgICB2YXIgQWEgPSBWYSgpOw0KICAgICAgICBQYS5vbkZpbmlz aCA9IChlKSA9PiBCYShlLCBBYSk7DQogICAgICAgIHZhciBNYSA9IFtdOw0KICAgICAgICBQ YS5zZXRUaW1lb3V0ID0gKGUsIHQpID0+IHsNCiAgICAgICAgICBjb25zdCBuID0gUGEubm93 KCkgKyB0LA0KICAgICAgICAgICAgciA9ICgpID0+IHsNCiAgICAgICAgICAgICAgY29uc3Qg ZSA9IE1hLmZpbmRJbmRleCgoZSkgPT4gZS5jYW5jZWwgPT0gcik7DQogICAgICAgICAgICAg IH5lICYmIE1hLnNwbGljZShlLCAxKSwgKExhIC09IH5lID8gMSA6IDApOw0KICAgICAgICAg ICAgfSwNCiAgICAgICAgICAgIG8gPSB7IHRpbWU6IG4sIGhhbmRsZXI6IGUsIGNhbmNlbDog ciB9Ow0KICAgICAgICAgIHJldHVybiBNYS5zcGxpY2UoemEobiksIDAsIG8pLCAoTGEgKz0g MSksIERhKCksIG87DQogICAgICAgIH07DQogICAgICAgIHZhciB6YSA9IChlKSA9PiB+KH5N YS5maW5kSW5kZXgoKHQpID0+IHQudGltZSA+IGUpIHx8IH5NYS5sZW5ndGgpOw0KICAgICAg ICAoUGEuY2FuY2VsID0gKGUpID0+IHsNCiAgICAgICAgICBOYS5kZWxldGUoZSksIFRhLmRl bGV0ZShlKSwgQWEuZGVsZXRlKGUpLCBfYS5kZWxldGUoZSksIE9hLmRlbGV0ZShlKTsNCiAg ICAgICAgfSksDQogICAgICAgICAgKFBhLnN5bmMgPSAoZSkgPT4gew0KICAgICAgICAgICAg KEZhID0gITApLCBQYS5iYXRjaGVkVXBkYXRlcyhlKSwgKEZhID0gITEpOw0KICAgICAgICAg IH0pLA0KICAgICAgICAgIChQYS50aHJvdHRsZSA9IChlKSA9PiB7DQogICAgICAgICAgICBs ZXQgdDsNCiAgICAgICAgICAgIGZ1bmN0aW9uIG4oKSB7DQogICAgICAgICAgICAgIHRyeSB7 DQogICAgICAgICAgICAgICAgZSguLi50KTsNCiAgICAgICAgICAgICAgfSBmaW5hbGx5IHsN CiAgICAgICAgICAgICAgICB0ID0gbnVsbDsNCiAgICAgICAgICAgICAgfQ0KICAgICAgICAg ICAgfQ0KICAgICAgICAgICAgZnVuY3Rpb24gcigpIHsNCiAgICAgICAgICAgICAgZm9yICh2 YXIgZSA9IGFyZ3VtZW50cy5sZW5ndGgsIHIgPSBuZXcgQXJyYXkoZSksIG8gPSAwOyBvIDwg ZTsgbysrKSByW29dID0gYXJndW1lbnRzW29dOw0KICAgICAgICAgICAgICAodCA9IHIpLCBQ YS5vblN0YXJ0KG4pOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmV0dXJuICgNCiAg ICAgICAgICAgICAgKHIuaGFuZGxlciA9IGUpLA0KICAgICAgICAgICAgICAoci5jYW5jZWwg PSAoKSA9PiB7DQogICAgICAgICAgICAgICAgTmEuZGVsZXRlKG4pLCAodCA9IG51bGwpOw0K ICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgcg0KICAgICAgICAgICAgKTsNCiAg ICAgICAgICB9KTsNCiAgICAgICAgdmFyIGphID0gInVuZGVmaW5lZCIgIT0gdHlwZW9mIHdp bmRvdyA/IHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUgOiAoKSA9PiB7IH07DQogICAg ICAgIChQYS51c2UgPSAoZSkgPT4gKGphID0gZSkpLA0KICAgICAgICAgIChQYS5ub3cgPSAi dW5kZWZpbmVkIiAhPSB0eXBlb2YgcGVyZm9ybWFuY2UgPyAoKSA9PiBwZXJmb3JtYW5jZS5u b3coKSA6IERhdGUubm93KSwNCiAgICAgICAgICAoUGEuYmF0Y2hlZFVwZGF0ZXMgPSAoZSkg PT4gZSgpKSwNCiAgICAgICAgICAoUGEuY2F0Y2ggPSBjb25zb2xlLmVycm9yKSwNCiAgICAg ICAgICAoUGEuZnJhbWVMb29wID0gImFsd2F5cyIpLA0KICAgICAgICAgIChQYS5hZHZhbmNl ID0gKCkgPT4gew0KICAgICAgICAgICAgImRlbWFuZCIgIT09IFBhLmZyYW1lTG9vcCA/IGNv bnNvbGUud2FybigiQ2Fubm90IGNhbGwgdGhlIG1hbnVhbCBhZHZhbmNlbWVudCBvZiByYWZ6 IHdoaWxzdCBmcmFtZUxvb3AgaXMgbm90IHNldCBhcyBkZW1hbmQiKSA6IFdhKCk7DQogICAg ICAgICAgfSk7DQogICAgICAgIHZhciBJYSA9IC0xLA0KICAgICAgICAgIExhID0gMCwNCiAg ICAgICAgICBGYSA9ICExOw0KICAgICAgICBmdW5jdGlvbiBCYShlLCB0KSB7DQogICAgICAg ICAgRmEgPyAodC5kZWxldGUoZSksIGUoMCkpIDogKHQuYWRkKGUpLCBEYSgpKTsNCiAgICAg ICAgfQ0KICAgICAgICBmdW5jdGlvbiBEYSgpIHsNCiAgICAgICAgICBJYSA8IDAgJiYgKChJ YSA9IDApLCAiZGVtYW5kIiAhPT0gUGEuZnJhbWVMb29wICYmIGphKFVhKSk7DQogICAgICAg IH0NCiAgICAgICAgZnVuY3Rpb24gVWEoKSB7DQogICAgICAgICAgfklhICYmIChqYShVYSks IFBhLmJhdGNoZWRVcGRhdGVzKFdhKSk7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24g V2EoKSB7DQogICAgICAgICAgY29uc3QgZSA9IElhOw0KICAgICAgICAgIElhID0gUGEubm93 KCk7DQogICAgICAgICAgY29uc3QgdCA9IHphKElhKTsNCiAgICAgICAgICB0ICYmIChIYShN YS5zcGxpY2UoMCwgdCksIChlKSA9PiBlLmhhbmRsZXIoKSksIChMYSAtPSB0KSksIExhID8g KE5hLmZsdXNoKCksIF9hLmZsdXNoKGUgPyBNYXRoLm1pbig2NCwgSWEgLSBlKSA6IDE2LjY2 NyksIFRhLmZsdXNoKCksIE9hLmZsdXNoKCksIEFhLmZsdXNoKCkpIDogKElhID0gLTEpOw0K ICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIFZhKCkgew0KICAgICAgICAgIGxldCBlID0g bmV3IFNldCgpLA0KICAgICAgICAgICAgdCA9IGU7DQogICAgICAgICAgcmV0dXJuIHsNCiAg ICAgICAgICAgIGFkZChuKSB7DQogICAgICAgICAgICAgIChMYSArPSB0ICE9IGUgfHwgZS5o YXMobikgPyAwIDogMSksIGUuYWRkKG4pOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAg IGRlbGV0ZTogKG4pID0+ICgoTGEgLT0gdCA9PSBlICYmIGUuaGFzKG4pID8gMSA6IDApLCBl LmRlbGV0ZShuKSksDQogICAgICAgICAgICBmbHVzaChuKSB7DQogICAgICAgICAgICAgIHQu c2l6ZSAmJiAoKGUgPSBuZXcgU2V0KCkpLCAoTGEgLT0gdC5zaXplKSwgSGEodCwgKHQpID0+ IHQobikgJiYgZS5hZGQodCkpLCAoTGEgKz0gZS5zaXplKSwgKHQgPSBlKSk7DQogICAgICAg ICAgICB9LA0KICAgICAgICAgIH07DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gSGEo ZSwgdCkgew0KICAgICAgICAgIGUuZm9yRWFjaCgoZSkgPT4gew0KICAgICAgICAgICAgdHJ5 IHsNCiAgICAgICAgICAgICAgdChlKTsNCiAgICAgICAgICAgIH0gY2F0Y2ggKG4pIHsNCiAg ICAgICAgICAgICAgUGEuY2F0Y2gobik7DQogICAgICAgICAgICB9DQogICAgICAgICAgfSk7 DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gcWEoKSB7IH0NCiAgICAgICAgdmFyICRh ID0geyBhcnI6IEFycmF5LmlzQXJyYXksIG9iajogKGUpID0+ICEhZSAmJiAiT2JqZWN0IiA9 PT0gZS5jb25zdHJ1Y3Rvci5uYW1lLCBmdW46IChlKSA9PiAiZnVuY3Rpb24iID09PSB0eXBl b2YgZSwgc3RyOiAoZSkgPT4gInN0cmluZyIgPT09IHR5cGVvZiBlLCBudW06IChlKSA9PiAi bnVtYmVyIiA9PT0gdHlwZW9mIGUsIHVuZDogKGUpID0+IHZvaWQgMCA9PT0gZSB9Ow0KICAg ICAgICBmdW5jdGlvbiBLYShlLCB0KSB7DQogICAgICAgICAgaWYgKCRhLmFycihlKSkgew0K ICAgICAgICAgICAgaWYgKCEkYS5hcnIodCkgfHwgZS5sZW5ndGggIT09IHQubGVuZ3RoKSBy ZXR1cm4gITE7DQogICAgICAgICAgICBmb3IgKGxldCBuID0gMDsgbiA8IGUubGVuZ3RoOyBu KyspIGlmIChlW25dICE9PSB0W25dKSByZXR1cm4gITE7DQogICAgICAgICAgICByZXR1cm4g ITA7DQogICAgICAgICAgfQ0KICAgICAgICAgIHJldHVybiBlID09PSB0Ow0KICAgICAgICB9 DQogICAgICAgIHZhciBRYSA9IChlLCB0KSA9PiBlLmZvckVhY2godCk7DQogICAgICAgIGZ1 bmN0aW9uIEdhKGUsIHQsIG4pIHsNCiAgICAgICAgICBpZiAoJGEuYXJyKGUpKSBmb3IgKGxl dCByID0gMDsgciA8IGUubGVuZ3RoOyByKyspIHQuY2FsbChuLCBlW3JdLCAiIi5jb25jYXQo cikpOw0KICAgICAgICAgIGVsc2UgZm9yIChjb25zdCByIGluIGUpIGUuaGFzT3duUHJvcGVy dHkocikgJiYgdC5jYWxsKG4sIGVbcl0sIHIpOw0KICAgICAgICB9DQogICAgICAgIHZhciBZ YSA9IChlKSA9PiAoJGEudW5kKGUpID8gW10gOiAkYS5hcnIoZSkgPyBlIDogW2VdKTsNCiAg ICAgICAgZnVuY3Rpb24gWGEoZSwgdCkgew0KICAgICAgICAgIGlmIChlLnNpemUpIHsNCiAg ICAgICAgICAgIGNvbnN0IG4gPSBBcnJheS5mcm9tKGUpOw0KICAgICAgICAgICAgZS5jbGVh cigpLCBRYShuLCB0KTsNCiAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgdmFyIFph LA0KICAgICAgICAgIEphLA0KICAgICAgICAgIGVpID0gZnVuY3Rpb24gKGUpIHsNCiAgICAg ICAgICAgIGZvciAodmFyIHQgPSBhcmd1bWVudHMubGVuZ3RoLCBuID0gbmV3IEFycmF5KHQg PiAxID8gdCAtIDEgOiAwKSwgciA9IDE7IHIgPCB0OyByKyspIG5bciAtIDFdID0gYXJndW1l bnRzW3JdOw0KICAgICAgICAgICAgcmV0dXJuIFhhKGUsIChlKSA9PiBlKC4uLm4pKTsNCiAg ICAgICAgICB9LA0KICAgICAgICAgIHRpID0gKCkgPT4gInVuZGVmaW5lZCIgPT09IHR5cGVv ZiB3aW5kb3cgfHwgIXdpbmRvdy5uYXZpZ2F0b3IgfHwgL1NlcnZlclNpZGVSZW5kZXJpbmd8 XkRlbm9cLy8udGVzdCh3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudCksDQogICAgICAgICAg bmkgPSBudWxsLA0KICAgICAgICAgIHJpID0gITEsDQogICAgICAgICAgb2kgPSBxYSwNCiAg ICAgICAgICBhaSA9IChlKSA9PiB7DQogICAgICAgICAgICBlLnRvICYmIChKYSA9IGUudG8p LA0KICAgICAgICAgICAgICBlLm5vdyAmJiAoUGEubm93ID0gZS5ub3cpLA0KICAgICAgICAg ICAgICB2b2lkIDAgIT09IGUuY29sb3JzICYmIChuaSA9IGUuY29sb3JzKSwNCiAgICAgICAg ICAgICAgbnVsbCAhPSBlLnNraXBBbmltYXRpb24gJiYgKHJpID0gZS5za2lwQW5pbWF0aW9u KSwNCiAgICAgICAgICAgICAgZS5jcmVhdGVTdHJpbmdJbnRlcnBvbGF0b3IgJiYgKFphID0g ZS5jcmVhdGVTdHJpbmdJbnRlcnBvbGF0b3IpLA0KICAgICAgICAgICAgICBlLnJlcXVlc3RB bmltYXRpb25GcmFtZSAmJiBQYS51c2UoZS5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUpLA0KICAg ICAgICAgICAgICBlLmJhdGNoZWRVcGRhdGVzICYmIChQYS5iYXRjaGVkVXBkYXRlcyA9IGUu YmF0Y2hlZFVwZGF0ZXMpLA0KICAgICAgICAgICAgICBlLndpbGxBZHZhbmNlICYmIChvaSA9 IGUud2lsbEFkdmFuY2UpLA0KICAgICAgICAgICAgICBlLmZyYW1lTG9vcCAmJiAoUGEuZnJh bWVMb29wID0gZS5mcmFtZUxvb3ApOw0KICAgICAgICAgIH0sDQogICAgICAgICAgaWkgPSBu ZXcgU2V0KCksDQogICAgICAgICAgbGkgPSBbXSwNCiAgICAgICAgICBzaSA9IFtdLA0KICAg ICAgICAgIHVpID0gMCwNCiAgICAgICAgICBjaSA9IHsNCiAgICAgICAgICAgIGdldCBpZGxl KCkgew0KICAgICAgICAgICAgICByZXR1cm4gIWlpLnNpemUgJiYgIWxpLmxlbmd0aDsNCiAg ICAgICAgICAgIH0sDQogICAgICAgICAgICBzdGFydChlKSB7DQogICAgICAgICAgICAgIHVp ID4gZS5wcmlvcml0eSA/IChpaS5hZGQoZSksIFBhLm9uU3RhcnQoZGkpKSA6IChmaShlKSwg UGEoaGkpKTsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBhZHZhbmNlOiBoaSwNCiAg ICAgICAgICAgIHNvcnQoZSkgew0KICAgICAgICAgICAgICBpZiAodWkpIFBhLm9uRnJhbWUo KCkgPT4gY2kuc29ydChlKSk7DQogICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAg ICAgIGNvbnN0IHQgPSBsaS5pbmRleE9mKGUpOw0KICAgICAgICAgICAgICAgIH50ICYmIChs aS5zcGxpY2UodCwgMSksIHBpKGUpKTsNCiAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAg fSwNCiAgICAgICAgICAgIGNsZWFyKCkgew0KICAgICAgICAgICAgICAobGkgPSBbXSksIGlp LmNsZWFyKCk7DQogICAgICAgICAgICB9LA0KICAgICAgICAgIH07DQogICAgICAgIGZ1bmN0 aW9uIGRpKCkgew0KICAgICAgICAgIGlpLmZvckVhY2goZmkpLCBpaS5jbGVhcigpLCBQYSho aSk7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gZmkoZSkgew0KICAgICAgICAgIGxp LmluY2x1ZGVzKGUpIHx8IHBpKGUpOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIHBp KGUpIHsNCiAgICAgICAgICBsaS5zcGxpY2UoDQogICAgICAgICAgICAoZnVuY3Rpb24gKGUs IHQpIHsNCiAgICAgICAgICAgICAgY29uc3QgbiA9IGUuZmluZEluZGV4KHQpOw0KICAgICAg ICAgICAgICByZXR1cm4gbiA8IDAgPyBlLmxlbmd0aCA6IG47DQogICAgICAgICAgICB9KShs aSwgKHQpID0+IHQucHJpb3JpdHkgPiBlLnByaW9yaXR5KSwNCiAgICAgICAgICAgIDAsDQog ICAgICAgICAgICBlDQogICAgICAgICAgKTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlv biBoaShlKSB7DQogICAgICAgICAgY29uc3QgdCA9IHNpOw0KICAgICAgICAgIGZvciAobGV0 IG4gPSAwOyBuIDwgbGkubGVuZ3RoOyBuKyspIHsNCiAgICAgICAgICAgIGNvbnN0IHIgPSBs aVtuXTsNCiAgICAgICAgICAgICh1aSA9IHIucHJpb3JpdHkpLCByLmlkbGUgfHwgKG9pKHIp LCByLmFkdmFuY2UoZSksIHIuaWRsZSB8fCB0LnB1c2gocikpOw0KICAgICAgICAgIH0NCiAg ICAgICAgICByZXR1cm4gKHVpID0gMCksICgoc2kgPSBsaSkubGVuZ3RoID0gMCksIChsaSA9 IHQpLmxlbmd0aCA+IDA7DQogICAgICAgIH0NCiAgICAgICAgdmFyIG1pID0gIlstK10/XFxk KlxcLj9cXGQrIiwNCiAgICAgICAgICBnaSA9IG1pICsgIiUiOw0KICAgICAgICBmdW5jdGlv biB2aSgpIHsNCiAgICAgICAgICBmb3IgKHZhciBlID0gYXJndW1lbnRzLmxlbmd0aCwgdCA9 IG5ldyBBcnJheShlKSwgbiA9IDA7IG4gPCBlOyBuKyspIHRbbl0gPSBhcmd1bWVudHNbbl07 DQogICAgICAgICAgcmV0dXJuICJcXChcXHMqKCIgKyB0LmpvaW4oIilcXHMqLFxccyooIikg KyAiKVxccypcXCkiOw0KICAgICAgICB9DQogICAgICAgIHZhciB5aSA9IG5ldyBSZWdFeHAo InJnYiIgKyB2aShtaSwgbWksIG1pKSksDQogICAgICAgICAgYmkgPSBuZXcgUmVnRXhwKCJy Z2JhIiArIHZpKG1pLCBtaSwgbWksIG1pKSksDQogICAgICAgICAgd2kgPSBuZXcgUmVnRXhw KCJoc2wiICsgdmkobWksIGdpLCBnaSkpLA0KICAgICAgICAgIHhpID0gbmV3IFJlZ0V4cCgi aHNsYSIgKyB2aShtaSwgZ2ksIGdpLCBtaSkpLA0KICAgICAgICAgIFNpID0gL14jKFswLTlh LWZBLUZdezF9KShbMC05YS1mQS1GXXsxfSkoWzAtOWEtZkEtRl17MX0pJC8sDQogICAgICAg ICAga2kgPSAvXiMoWzAtOWEtZkEtRl17MX0pKFswLTlhLWZBLUZdezF9KShbMC05YS1mQS1G XXsxfSkoWzAtOWEtZkEtRl17MX0pJC8sDQogICAgICAgICAgRWkgPSAvXiMoWzAtOWEtZkEt Rl17Nn0pJC8sDQogICAgICAgICAgQ2kgPSAvXiMoWzAtOWEtZkEtRl17OH0pJC87DQogICAg ICAgIGZ1bmN0aW9uIFJpKGUsIHQsIG4pIHsNCiAgICAgICAgICByZXR1cm4gbiA8IDAgJiYg KG4gKz0gMSksIG4gPiAxICYmIChuIC09IDEpLCBuIDwgMSAvIDYgPyBlICsgNiAqICh0IC0g ZSkgKiBuIDogbiA8IDAuNSA/IHQgOiBuIDwgMiAvIDMgPyBlICsgKHQgLSBlKSAqICgyIC8g MyAtIG4pICogNiA6IGU7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gX2koZSwgdCwg bikgew0KICAgICAgICAgIGNvbnN0IHIgPSBuIDwgMC41ID8gbiAqICgxICsgdCkgOiBuICsg dCAtIG4gKiB0LA0KICAgICAgICAgICAgbyA9IDIgKiBuIC0gciwNCiAgICAgICAgICAgIGEg PSBSaShvLCByLCBlICsgMSAvIDMpLA0KICAgICAgICAgICAgaSA9IFJpKG8sIHIsIGUpLA0K ICAgICAgICAgICAgbCA9IFJpKG8sIHIsIGUgLSAxIC8gMyk7DQogICAgICAgICAgcmV0dXJu IChNYXRoLnJvdW5kKDI1NSAqIGEpIDw8IDI0KSB8IChNYXRoLnJvdW5kKDI1NSAqIGkpIDw8 IDE2KSB8IChNYXRoLnJvdW5kKDI1NSAqIGwpIDw8IDgpOw0KICAgICAgICB9DQogICAgICAg IGZ1bmN0aW9uIFBpKGUpIHsNCiAgICAgICAgICBjb25zdCB0ID0gcGFyc2VJbnQoZSwgMTAp Ow0KICAgICAgICAgIHJldHVybiB0IDwgMCA/IDAgOiB0ID4gMjU1ID8gMjU1IDogdDsNCiAg ICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBPaShlKSB7DQogICAgICAgICAgcmV0dXJuICgo KHBhcnNlRmxvYXQoZSkgJSAzNjApICsgMzYwKSAlIDM2MCkgLyAzNjA7DQogICAgICAgIH0N CiAgICAgICAgZnVuY3Rpb24gTmkoZSkgew0KICAgICAgICAgIGNvbnN0IHQgPSBwYXJzZUZs b2F0KGUpOw0KICAgICAgICAgIHJldHVybiB0IDwgMCA/IDAgOiB0ID4gMSA/IDI1NSA6IE1h dGgucm91bmQoMjU1ICogdCk7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gVGkoZSkg ew0KICAgICAgICAgIGNvbnN0IHQgPSBwYXJzZUZsb2F0KGUpOw0KICAgICAgICAgIHJldHVy biB0IDwgMCA/IDAgOiB0ID4gMTAwID8gMSA6IHQgLyAxMDA7DQogICAgICAgIH0NCiAgICAg ICAgZnVuY3Rpb24gQWkoZSkgew0KICAgICAgICAgIGxldCB0ID0gKGZ1bmN0aW9uIChlKSB7 DQogICAgICAgICAgICBsZXQgdDsNCiAgICAgICAgICAgIHJldHVybiAibnVtYmVyIiA9PT0g dHlwZW9mIGUNCiAgICAgICAgICAgICAgPyBlID4+PiAwID09PSBlICYmIGUgPj0gMCAmJiBl IDw9IDQyOTQ5NjcyOTUNCiAgICAgICAgICAgICAgICA/IGUNCiAgICAgICAgICAgICAgICA6 IG51bGwNCiAgICAgICAgICAgICAgOiAodCA9IEVpLmV4ZWMoZSkpDQogICAgICAgICAgICAg ICAgPyBwYXJzZUludCh0WzFdICsgImZmIiwgMTYpID4+PiAwDQogICAgICAgICAgICAgICAg OiBuaSAmJiB2b2lkIDAgIT09IG5pW2VdDQogICAgICAgICAgICAgICAgICA/IG5pW2VdDQog ICAgICAgICAgICAgICAgICA6ICh0ID0geWkuZXhlYyhlKSkNCiAgICAgICAgICAgICAgICAg ICAgPyAoKFBpKHRbMV0pIDw8IDI0KSB8IChQaSh0WzJdKSA8PCAxNikgfCAoUGkodFszXSkg PDwgOCkgfCAyNTUpID4+PiAwDQogICAgICAgICAgICAgICAgICAgIDogKHQgPSBiaS5leGVj KGUpKQ0KICAgICAgICAgICAgICAgICAgICAgID8gKChQaSh0WzFdKSA8PCAyNCkgfCAoUGko dFsyXSkgPDwgMTYpIHwgKFBpKHRbM10pIDw8IDgpIHwgTmkodFs0XSkpID4+PiAwDQogICAg ICAgICAgICAgICAgICAgICAgOiAodCA9IFNpLmV4ZWMoZSkpDQogICAgICAgICAgICAgICAg ICAgICAgICA/IHBhcnNlSW50KHRbMV0gKyB0WzFdICsgdFsyXSArIHRbMl0gKyB0WzNdICsg dFszXSArICJmZiIsIDE2KSA+Pj4gMA0KICAgICAgICAgICAgICAgICAgICAgICAgOiAodCA9 IENpLmV4ZWMoZSkpDQogICAgICAgICAgICAgICAgICAgICAgICAgID8gcGFyc2VJbnQodFsx XSwgMTYpID4+PiAwDQogICAgICAgICAgICAgICAgICAgICAgICAgIDogKHQgPSBraS5leGVj KGUpKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gcGFyc2VJbnQodFsxXSArIHRb MV0gKyB0WzJdICsgdFsyXSArIHRbM10gKyB0WzNdICsgdFs0XSArIHRbNF0sIDE2KSA+Pj4g MA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogKHQgPSB3aS5leGVjKGUpKQ0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAoMjU1IHwgX2koT2kodFsxXSksIFRpKHRb Ml0pLCBUaSh0WzNdKSkpID4+PiAwDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6 ICh0ID0geGkuZXhlYyhlKSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAo X2koT2kodFsxXSksIFRpKHRbMl0pLCBUaSh0WzNdKSkgfCBOaSh0WzRdKSkgPj4+IDANCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBudWxsOw0KICAgICAgICAgIH0pKGUp Ow0KICAgICAgICAgIGlmIChudWxsID09PSB0KSByZXR1cm4gZTsNCiAgICAgICAgICB0ID0g dCB8fCAwOw0KICAgICAgICAgIGNvbnN0IG4gPSAoMTY3MTE2ODAgJiB0KSA+Pj4gMTYsDQog ICAgICAgICAgICByID0gKDY1MjgwICYgdCkgPj4+IDgsDQogICAgICAgICAgICBvID0gKDI1 NSAmIHQpIC8gMjU1Ow0KICAgICAgICAgIHJldHVybiAicmdiYSgiDQogICAgICAgICAgICAu Y29uY2F0KCg0Mjc4MTkwMDgwICYgdCkgPj4+IDI0LCAiLCAiKQ0KICAgICAgICAgICAgLmNv bmNhdChuLCAiLCAiKQ0KICAgICAgICAgICAgLmNvbmNhdChyLCAiLCAiKQ0KICAgICAgICAg ICAgLmNvbmNhdChvLCAiKSIpOw0KICAgICAgICB9DQogICAgICAgIHZhciBNaSA9IChlLCB0 LCBuKSA9PiB7DQogICAgICAgICAgaWYgKCRhLmZ1bihlKSkgcmV0dXJuIGU7DQogICAgICAg ICAgaWYgKCRhLmFycihlKSkgcmV0dXJuIE1pKHsgcmFuZ2U6IGUsIG91dHB1dDogdCwgZXh0 cmFwb2xhdGU6IG4gfSk7DQogICAgICAgICAgaWYgKCRhLnN0cihlLm91dHB1dFswXSkpIHJl dHVybiBaYShlKTsNCiAgICAgICAgICBjb25zdCByID0gZSwNCiAgICAgICAgICAgIG8gPSBy Lm91dHB1dCwNCiAgICAgICAgICAgIGEgPSByLnJhbmdlIHx8IFswLCAxXSwNCiAgICAgICAg ICAgIGkgPSByLmV4dHJhcG9sYXRlTGVmdCB8fCByLmV4dHJhcG9sYXRlIHx8ICJleHRlbmQi LA0KICAgICAgICAgICAgbCA9IHIuZXh0cmFwb2xhdGVSaWdodCB8fCByLmV4dHJhcG9sYXRl IHx8ICJleHRlbmQiLA0KICAgICAgICAgICAgcyA9IHIuZWFzaW5nIHx8ICgoZSkgPT4gZSk7 DQogICAgICAgICAgcmV0dXJuIChlKSA9PiB7DQogICAgICAgICAgICBjb25zdCB0ID0gKGZ1 bmN0aW9uIChlLCB0KSB7DQogICAgICAgICAgICAgIGZvciAodmFyIG4gPSAxOyBuIDwgdC5s ZW5ndGggLSAxICYmICEodFtuXSA+PSBlKTsgKytuKTsNCiAgICAgICAgICAgICAgcmV0dXJu IG4gLSAxOw0KICAgICAgICAgICAgfSkoZSwgYSk7DQogICAgICAgICAgICByZXR1cm4gKGZ1 bmN0aW9uIChlLCB0LCBuLCByLCBvLCBhLCBpLCBsLCBzKSB7DQogICAgICAgICAgICAgIGxl dCB1ID0gcyA/IHMoZSkgOiBlOw0KICAgICAgICAgICAgICBpZiAodSA8IHQpIHsNCiAgICAg ICAgICAgICAgICBpZiAoImlkZW50aXR5IiA9PT0gaSkgcmV0dXJuIHU7DQogICAgICAgICAg ICAgICAgImNsYW1wIiA9PT0gaSAmJiAodSA9IHQpOw0KICAgICAgICAgICAgICB9DQogICAg ICAgICAgICAgIGlmICh1ID4gbikgew0KICAgICAgICAgICAgICAgIGlmICgiaWRlbnRpdHki ID09PSBsKSByZXR1cm4gdTsNCiAgICAgICAgICAgICAgICAiY2xhbXAiID09PSBsICYmICh1 ID0gbik7DQogICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgaWYgKHIgPT09IG8pIHJl dHVybiByOw0KICAgICAgICAgICAgICBpZiAodCA9PT0gbikgcmV0dXJuIGUgPD0gdCA/IHIg OiBvOw0KICAgICAgICAgICAgICB0ID09PSAtMSAvIDAgPyAodSA9IC11KSA6IG4gPT09IDEg LyAwID8gKHUgLT0gdCkgOiAodSA9ICh1IC0gdCkgLyAobiAtIHQpKTsNCiAgICAgICAgICAg ICAgKHUgPSBhKHUpKSwgciA9PT0gLTEgLyAwID8gKHUgPSAtdSkgOiBvID09PSAxIC8gMCA/ ICh1ICs9IHIpIDogKHUgPSB1ICogKG8gLSByKSArIHIpOw0KICAgICAgICAgICAgICByZXR1 cm4gdTsNCiAgICAgICAgICAgIH0pKGUsIGFbdF0sIGFbdCArIDFdLCBvW3RdLCBvW3QgKyAx XSwgcywgaSwgbCwgci5tYXApOw0KICAgICAgICAgIH07DQogICAgICAgIH07DQogICAgICAg IHZhciB6aSA9IDEuNzAxNTgsDQogICAgICAgICAgamkgPSAxLjUyNSAqIHppLA0KICAgICAg ICAgIElpID0gemkgKyAxLA0KICAgICAgICAgIExpID0gKDIgKiBNYXRoLlBJKSAvIDMsDQog ICAgICAgICAgRmkgPSAoMiAqIE1hdGguUEkpIC8gNC41LA0KICAgICAgICAgIEJpID0gKGUp ID0+IHsNCiAgICAgICAgICAgIGNvbnN0IHQgPSA3LjU2MjUsDQogICAgICAgICAgICAgIG4g PSAyLjc1Ow0KICAgICAgICAgICAgcmV0dXJuIGUgPCAxIC8gbiA/IHQgKiBlICogZSA6IGUg PCAyIC8gbiA/IHQgKiAoZSAtPSAxLjUgLyBuKSAqIGUgKyAwLjc1IDogZSA8IDIuNSAvIG4g PyB0ICogKGUgLT0gMi4yNSAvIG4pICogZSArIDAuOTM3NSA6IHQgKiAoZSAtPSAyLjYyNSAv IG4pICogZSArIDAuOTg0Mzc1Ow0KICAgICAgICAgIH0sDQogICAgICAgICAgRGkgPSB7DQog ICAgICAgICAgICBsaW5lYXI6IChlKSA9PiBlLA0KICAgICAgICAgICAgZWFzZUluUXVhZDog KGUpID0+IGUgKiBlLA0KICAgICAgICAgICAgZWFzZU91dFF1YWQ6IChlKSA9PiAxIC0gKDEg LSBlKSAqICgxIC0gZSksDQogICAgICAgICAgICBlYXNlSW5PdXRRdWFkOiAoZSkgPT4gKGUg PCAwLjUgPyAyICogZSAqIGUgOiAxIC0gTWF0aC5wb3coLTIgKiBlICsgMiwgMikgLyAyKSwN CiAgICAgICAgICAgIGVhc2VJbkN1YmljOiAoZSkgPT4gZSAqIGUgKiBlLA0KICAgICAgICAg ICAgZWFzZU91dEN1YmljOiAoZSkgPT4gMSAtIE1hdGgucG93KDEgLSBlLCAzKSwNCiAgICAg ICAgICAgIGVhc2VJbk91dEN1YmljOiAoZSkgPT4gKGUgPCAwLjUgPyA0ICogZSAqIGUgKiBl IDogMSAtIE1hdGgucG93KC0yICogZSArIDIsIDMpIC8gMiksDQogICAgICAgICAgICBlYXNl SW5RdWFydDogKGUpID0+IGUgKiBlICogZSAqIGUsDQogICAgICAgICAgICBlYXNlT3V0UXVh cnQ6IChlKSA9PiAxIC0gTWF0aC5wb3coMSAtIGUsIDQpLA0KICAgICAgICAgICAgZWFzZUlu T3V0UXVhcnQ6IChlKSA9PiAoZSA8IDAuNSA/IDggKiBlICogZSAqIGUgKiBlIDogMSAtIE1h dGgucG93KC0yICogZSArIDIsIDQpIC8gMiksDQogICAgICAgICAgICBlYXNlSW5RdWludDog KGUpID0+IGUgKiBlICogZSAqIGUgKiBlLA0KICAgICAgICAgICAgZWFzZU91dFF1aW50OiAo ZSkgPT4gMSAtIE1hdGgucG93KDEgLSBlLCA1KSwNCiAgICAgICAgICAgIGVhc2VJbk91dFF1 aW50OiAoZSkgPT4gKGUgPCAwLjUgPyAxNiAqIGUgKiBlICogZSAqIGUgKiBlIDogMSAtIE1h dGgucG93KC0yICogZSArIDIsIDUpIC8gMiksDQogICAgICAgICAgICBlYXNlSW5TaW5lOiAo ZSkgPT4gMSAtIE1hdGguY29zKChlICogTWF0aC5QSSkgLyAyKSwNCiAgICAgICAgICAgIGVh c2VPdXRTaW5lOiAoZSkgPT4gTWF0aC5zaW4oKGUgKiBNYXRoLlBJKSAvIDIpLA0KICAgICAg ICAgICAgZWFzZUluT3V0U2luZTogKGUpID0+IC0oTWF0aC5jb3MoTWF0aC5QSSAqIGUpIC0g MSkgLyAyLA0KICAgICAgICAgICAgZWFzZUluRXhwbzogKGUpID0+ICgwID09PSBlID8gMCA6 IE1hdGgucG93KDIsIDEwICogZSAtIDEwKSksDQogICAgICAgICAgICBlYXNlT3V0RXhwbzog KGUpID0+ICgxID09PSBlID8gMSA6IDEgLSBNYXRoLnBvdygyLCAtMTAgKiBlKSksDQogICAg ICAgICAgICBlYXNlSW5PdXRFeHBvOiAoZSkgPT4gKDAgPT09IGUgPyAwIDogMSA9PT0gZSA/ IDEgOiBlIDwgMC41ID8gTWF0aC5wb3coMiwgMjAgKiBlIC0gMTApIC8gMiA6ICgyIC0gTWF0 aC5wb3coMiwgLTIwICogZSArIDEwKSkgLyAyKSwNCiAgICAgICAgICAgIGVhc2VJbkNpcmM6 IChlKSA9PiAxIC0gTWF0aC5zcXJ0KDEgLSBNYXRoLnBvdyhlLCAyKSksDQogICAgICAgICAg ICBlYXNlT3V0Q2lyYzogKGUpID0+IE1hdGguc3FydCgxIC0gTWF0aC5wb3coZSAtIDEsIDIp KSwNCiAgICAgICAgICAgIGVhc2VJbk91dENpcmM6IChlKSA9PiAoZSA8IDAuNSA/ICgxIC0g TWF0aC5zcXJ0KDEgLSBNYXRoLnBvdygyICogZSwgMikpKSAvIDIgOiAoTWF0aC5zcXJ0KDEg LSBNYXRoLnBvdygtMiAqIGUgKyAyLCAyKSkgKyAxKSAvIDIpLA0KICAgICAgICAgICAgZWFz ZUluQmFjazogKGUpID0+IElpICogZSAqIGUgKiBlIC0gemkgKiBlICogZSwNCiAgICAgICAg ICAgIGVhc2VPdXRCYWNrOiAoZSkgPT4gMSArIElpICogTWF0aC5wb3coZSAtIDEsIDMpICsg emkgKiBNYXRoLnBvdyhlIC0gMSwgMiksDQogICAgICAgICAgICBlYXNlSW5PdXRCYWNrOiAo ZSkgPT4gKGUgPCAwLjUgPyAoTWF0aC5wb3coMiAqIGUsIDIpICogKDcuMTg5ODE5ICogZSAt IGppKSkgLyAyIDogKE1hdGgucG93KDIgKiBlIC0gMiwgMikgKiAoKGppICsgMSkgKiAoMiAq IGUgLSAyKSArIGppKSArIDIpIC8gMiksDQogICAgICAgICAgICBlYXNlSW5FbGFzdGljOiAo ZSkgPT4gKDAgPT09IGUgPyAwIDogMSA9PT0gZSA/IDEgOiAtTWF0aC5wb3coMiwgMTAgKiBl IC0gMTApICogTWF0aC5zaW4oKDEwICogZSAtIDEwLjc1KSAqIExpKSksDQogICAgICAgICAg ICBlYXNlT3V0RWxhc3RpYzogKGUpID0+ICgwID09PSBlID8gMCA6IDEgPT09IGUgPyAxIDog TWF0aC5wb3coMiwgLTEwICogZSkgKiBNYXRoLnNpbigoMTAgKiBlIC0gMC43NSkgKiBMaSkg KyAxKSwNCiAgICAgICAgICAgIGVhc2VJbk91dEVsYXN0aWM6IChlKSA9PiAoMCA9PT0gZSA/ IDAgOiAxID09PSBlID8gMSA6IGUgPCAwLjUgPyAoLU1hdGgucG93KDIsIDIwICogZSAtIDEw KSAqIE1hdGguc2luKCgyMCAqIGUgLSAxMS4xMjUpICogRmkpKSAvIDIgOiAoTWF0aC5wb3co MiwgLTIwICogZSArIDEwKSAqIE1hdGguc2luKCgyMCAqIGUgLSAxMS4xMjUpICogRmkpKSAv IDIgKyAxKSwNCiAgICAgICAgICAgIGVhc2VJbkJvdW5jZTogKGUpID0+IDEgLSBCaSgxIC0g ZSksDQogICAgICAgICAgICBlYXNlT3V0Qm91bmNlOiBCaSwNCiAgICAgICAgICAgIGVhc2VJ bk91dEJvdW5jZTogKGUpID0+IChlIDwgMC41ID8gKDEgLSBCaSgxIC0gMiAqIGUpKSAvIDIg OiAoMSArIEJpKDIgKiBlIC0gMSkpIC8gMiksDQogICAgICAgICAgICBzdGVwczogZnVuY3Rp b24gKGUpIHsNCiAgICAgICAgICAgICAgbGV0IHQgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAm JiB2b2lkIDAgIT09IGFyZ3VtZW50c1sxXSA/IGFyZ3VtZW50c1sxXSA6ICJlbmQiOw0KICAg ICAgICAgICAgICByZXR1cm4gKG4pID0+IHsNCiAgICAgICAgICAgICAgICBjb25zdCByID0g KG4gPSAiZW5kIiA9PT0gdCA/IE1hdGgubWluKG4sIDAuOTk5KSA6IE1hdGgubWF4KG4sIDAu MDAxKSkgKiBlLA0KICAgICAgICAgICAgICAgICAgbyA9ICJlbmQiID09PSB0ID8gTWF0aC5m bG9vcihyKSA6IE1hdGguY2VpbChyKTsNCiAgICAgICAgICAgICAgICByZXR1cm4gKGEgPSAw KSwgKGkgPSAxKSwgKGwgPSBvIC8gZSksIE1hdGgubWluKE1hdGgubWF4KGwsIGEpLCBpKTsN CiAgICAgICAgICAgICAgICB2YXIgYSwgaSwgbDsNCiAgICAgICAgICAgICAgfTsNCiAgICAg ICAgICAgIH0sDQogICAgICAgICAgfSwNCiAgICAgICAgICBVaSA9IFN5bWJvbC5mb3IoIkZs dWlkVmFsdWUuZ2V0IiksDQogICAgICAgICAgV2kgPSBTeW1ib2wuZm9yKCJGbHVpZFZhbHVl Lm9ic2VydmVycyIpLA0KICAgICAgICAgIFZpID0gKGUpID0+IEJvb2xlYW4oZSAmJiBlW1Vp XSksDQogICAgICAgICAgSGkgPSAoZSkgPT4gKGUgJiYgZVtVaV0gPyBlW1VpXSgpIDogZSks DQogICAgICAgICAgcWkgPSAoZSkgPT4gZVtXaV0gfHwgbnVsbDsNCiAgICAgICAgZnVuY3Rp b24gJGkoZSwgdCkgew0KICAgICAgICAgIGNvbnN0IG4gPSBlW1dpXTsNCiAgICAgICAgICBu ICYmDQogICAgICAgICAgICBuLmZvckVhY2goKGUpID0+IHsNCiAgICAgICAgICAgICAgIShm dW5jdGlvbiAoZSwgdCkgew0KICAgICAgICAgICAgICAgIGUuZXZlbnRPYnNlcnZlZCA/IGUu ZXZlbnRPYnNlcnZlZCh0KSA6IGUodCk7DQogICAgICAgICAgICAgIH0pKGUsIHQpOw0KICAg ICAgICAgICAgfSk7DQogICAgICAgIH0NCiAgICAgICAgdmFyIEtpID0gY2xhc3Mgew0KICAg ICAgICAgIGNvbnN0cnVjdG9yKGUpIHsNCiAgICAgICAgICAgIGlmICghZSAmJiAhKGUgPSB0 aGlzLmdldCkpIHRocm93IEVycm9yKCJVbmtub3duIGdldHRlciIpOw0KICAgICAgICAgICAg UWkodGhpcywgZSk7DQogICAgICAgICAgfQ0KICAgICAgICB9LA0KICAgICAgICAgIFFpID0g KGUsIHQpID0+IFppKGUsIFVpLCB0KTsNCiAgICAgICAgZnVuY3Rpb24gR2koZSwgdCkgew0K ICAgICAgICAgIGlmIChlW1VpXSkgew0KICAgICAgICAgICAgbGV0IG4gPSBlW1dpXTsNCiAg ICAgICAgICAgIG4gfHwgWmkoZSwgV2ksIChuID0gbmV3IFNldCgpKSksIG4uaGFzKHQpIHx8 IChuLmFkZCh0KSwgZS5vYnNlcnZlckFkZGVkICYmIGUub2JzZXJ2ZXJBZGRlZChuLnNpemUs IHQpKTsNCiAgICAgICAgICB9DQogICAgICAgICAgcmV0dXJuIHQ7DQogICAgICAgIH0NCiAg ICAgICAgZnVuY3Rpb24gWWkoZSwgdCkgew0KICAgICAgICAgIGNvbnN0IG4gPSBlW1dpXTsN CiAgICAgICAgICBpZiAobiAmJiBuLmhhcyh0KSkgew0KICAgICAgICAgICAgY29uc3QgciA9 IG4uc2l6ZSAtIDE7DQogICAgICAgICAgICByID8gbi5kZWxldGUodCkgOiAoZVtXaV0gPSBu dWxsKSwgZS5vYnNlcnZlclJlbW92ZWQgJiYgZS5vYnNlcnZlclJlbW92ZWQociwgdCk7DQog ICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIHZhciBYaSwNCiAgICAgICAgICBaaSA9 IChlLCB0LCBuKSA9PiBPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwgdCwgeyB2YWx1ZTogbiwg d3JpdGFibGU6ICEwLCBjb25maWd1cmFibGU6ICEwIH0pLA0KICAgICAgICAgIEppID0gL1sr XC1dPyg/OjB8WzEtOV1cZCopKD86XC5cZCopPyg/OltlRV1bK1wtXT9cZCspPy9nLA0KICAg ICAgICAgIGVsID0gLygjKD86WzAtOWEtZl17Mn0pezIsNH18KCNbMC05YS1mXXszfSl8KHJn Ynxoc2wpYT9cKCgtP1xkKyU/Wyxcc10rKXsyLDN9XHMqW1xkXC5dKyU/XCkpL2dpLA0KICAg ICAgICAgIHRsID0gbmV3IFJlZ0V4cCgiKCIuY29uY2F0KEppLnNvdXJjZSwgIikoJXxbYS16 XSspIiksICJpIiksDQogICAgICAgICAgbmwgPSAvcmdiYVwoKFswLTlcLi1dKyksIChbMC05 XC4tXSspLCAoWzAtOVwuLV0rKSwgKFswLTlcLi1dKylcKS9naSwNCiAgICAgICAgICBybCA9 IC92YXJcKCgtLVthLXpBLVowLTktX10rKSw/ID8oW2EtekEtWjAtOSAoKSUjLiwtXSspP1wp LywNCiAgICAgICAgICBvbCA9IChlKSA9PiB7DQogICAgICAgICAgICBjb25zdCBbdCwgbl0g PSBhbChlKTsNCiAgICAgICAgICAgIGlmICghdCB8fCB0aSgpKSByZXR1cm4gZTsNCiAgICAg ICAgICAgIGNvbnN0IHIgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5kb2N1 bWVudEVsZW1lbnQpLmdldFByb3BlcnR5VmFsdWUodCk7DQogICAgICAgICAgICBpZiAocikg cmV0dXJuIHIudHJpbSgpOw0KICAgICAgICAgICAgaWYgKG4gJiYgbi5zdGFydHNXaXRoKCIt LSIpKSB7DQogICAgICAgICAgICAgIGNvbnN0IHQgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHls ZShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpLmdldFByb3BlcnR5VmFsdWUobik7DQogICAg ICAgICAgICAgIHJldHVybiB0IHx8IGU7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBy ZXR1cm4gbiAmJiBybC50ZXN0KG4pID8gb2wobikgOiBuIHx8IGU7DQogICAgICAgICAgfSwN CiAgICAgICAgICBhbCA9IChlKSA9PiB7DQogICAgICAgICAgICBjb25zdCB0ID0gcmwuZXhl YyhlKTsNCiAgICAgICAgICAgIGlmICghdCkgcmV0dXJuIFssXTsNCiAgICAgICAgICAgIGNv bnN0IFssIG4sIHJdID0gdDsNCiAgICAgICAgICAgIHJldHVybiBbbiwgcl07DQogICAgICAg ICAgfSwNCiAgICAgICAgICBpbCA9IChlLCB0LCBuLCByLCBvKSA9PiAicmdiYSgiLmNvbmNh dChNYXRoLnJvdW5kKHQpLCAiLCAiKS5jb25jYXQoTWF0aC5yb3VuZChuKSwgIiwgIikuY29u Y2F0KE1hdGgucm91bmQociksICIsICIpLmNvbmNhdChvLCAiKSIpLA0KICAgICAgICAgIGxs ID0gKGUpID0+IHsNCiAgICAgICAgICAgIFhpIHx8IChYaSA9IG5pID8gbmV3IFJlZ0V4cCgi KCIuY29uY2F0KE9iamVjdC5rZXlzKG5pKS5qb2luKCJ8IiksICIpKD8hXFx3KSIpLCAiZyIp IDogL15cYiQvKTsNCiAgICAgICAgICAgIGNvbnN0IHQgPSBlLm91dHB1dC5tYXAoKGUpID0+ IEhpKGUpLnJlcGxhY2UocmwsIG9sKS5yZXBsYWNlKGVsLCBBaSkucmVwbGFjZShYaSwgQWkp KSwNCiAgICAgICAgICAgICAgbiA9IHQubWFwKChlKSA9PiBlLm1hdGNoKEppKS5tYXAoTnVt YmVyKSksDQogICAgICAgICAgICAgIHIgPSBuWzBdLm1hcCgoZSwgdCkgPT4NCiAgICAgICAg ICAgICAgICBuLm1hcCgoZSkgPT4gew0KICAgICAgICAgICAgICAgICAgaWYgKCEodCBpbiBl KSkgdGhyb3cgRXJyb3IoJ1RoZSBhcml0eSBvZiBlYWNoICJvdXRwdXQiIHZhbHVlIG11c3Qg YmUgZXF1YWwnKTsNCiAgICAgICAgICAgICAgICAgIHJldHVybiBlW3RdOw0KICAgICAgICAg ICAgICAgIH0pDQogICAgICAgICAgICAgICksDQogICAgICAgICAgICAgIG8gPSByLm1hcCgo dCkgPT4gTWkoeyAuLi5lLCBvdXRwdXQ6IHQgfSkpOw0KICAgICAgICAgICAgcmV0dXJuIChl KSA9PiB7DQogICAgICAgICAgICAgIHZhciBuOw0KICAgICAgICAgICAgICBjb25zdCByID0g IXRsLnRlc3QodFswXSkgJiYgKG51bGwgPT09IChuID0gdC5maW5kKChlKSA9PiB0bC50ZXN0 KGUpKSkgfHwgdm9pZCAwID09PSBuID8gdm9pZCAwIDogbi5yZXBsYWNlKEppLCAiIikpOw0K ICAgICAgICAgICAgICBsZXQgYSA9IDA7DQogICAgICAgICAgICAgIHJldHVybiB0WzBdLnJl cGxhY2UoSmksICgpID0+ICIiLmNvbmNhdChvW2ErK10oZSkpLmNvbmNhdChyIHx8ICIiKSku cmVwbGFjZShubCwgaWwpOw0KICAgICAgICAgICAgfTsNCiAgICAgICAgICB9LA0KICAgICAg ICAgIHNsID0gInJlYWN0LXNwcmluZzogIiwNCiAgICAgICAgICB1bCA9IChlKSA9PiB7DQog ICAgICAgICAgICBjb25zdCB0ID0gZTsNCiAgICAgICAgICAgIGxldCBuID0gITE7DQogICAg ICAgICAgICBpZiAoImZ1bmN0aW9uIiAhPSB0eXBlb2YgdCkgdGhyb3cgbmV3IFR5cGVFcnJv cigiIi5jb25jYXQoc2wsICJvbmNlIHJlcXVpcmVzIGEgZnVuY3Rpb24gcGFyYW1ldGVyIikp Ow0KICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgbiB8 fCAodCguLi5hcmd1bWVudHMpLCAobiA9ICEwKSk7DQogICAgICAgICAgICB9Ow0KICAgICAg ICAgIH0sDQogICAgICAgICAgY2wgPSB1bChjb25zb2xlLndhcm4pOw0KICAgICAgICB2YXIg ZGwgPSB1bChjb25zb2xlLndhcm4pOw0KICAgICAgICBmdW5jdGlvbiBmbChlKSB7DQogICAg ICAgICAgcmV0dXJuICRhLnN0cihlKSAmJiAoIiMiID09IGVbMF0gfHwgL1xkLy50ZXN0KGUp IHx8ICghdGkoKSAmJiBybC50ZXN0KGUpKSB8fCBlIGluIChuaSB8fCB7fSkpOw0KICAgICAg ICB9DQogICAgICAgIHZhciBwbCA9IHRpKCkgPyB0LnVzZUVmZmVjdCA6IHQudXNlTGF5b3V0 RWZmZWN0LA0KICAgICAgICAgIGhsID0gKCkgPT4gew0KICAgICAgICAgICAgY29uc3QgZSA9 ICgwLCB0LnVzZVJlZikoITEpOw0KICAgICAgICAgICAgcmV0dXJuICgNCiAgICAgICAgICAg ICAgcGwoDQogICAgICAgICAgICAgICAgKCkgPT4gKA0KICAgICAgICAgICAgICAgICAgKGUu Y3VycmVudCA9ICEwKSwNCiAgICAgICAgICAgICAgICAgICgpID0+IHsNCiAgICAgICAgICAg ICAgICAgICAgZS5jdXJyZW50ID0gITE7DQogICAgICAgICAgICAgICAgICB9DQogICAgICAg ICAgICAgICAgKSwNCiAgICAgICAgICAgICAgICBbXQ0KICAgICAgICAgICAgICApLA0KICAg ICAgICAgICAgICBlDQogICAgICAgICAgICApOw0KICAgICAgICAgIH07DQogICAgICAgIGZ1 bmN0aW9uIG1sKCkgew0KICAgICAgICAgIGNvbnN0IGUgPSAoMCwgdC51c2VTdGF0ZSkoKVsx XSwNCiAgICAgICAgICAgIG4gPSBobCgpOw0KICAgICAgICAgIHJldHVybiAoKSA9PiB7DQog ICAgICAgICAgICBuLmN1cnJlbnQgJiYgZShNYXRoLnJhbmRvbSgpKTsNCiAgICAgICAgICB9 Ow0KICAgICAgICB9DQogICAgICAgIHZhciBnbCA9IChlKSA9PiAoMCwgdC51c2VFZmZlY3Qp KGUsIHZsKSwNCiAgICAgICAgICB2bCA9IFtdOw0KICAgICAgICBmdW5jdGlvbiB5bChlKSB7 DQogICAgICAgICAgY29uc3QgbiA9ICgwLCB0LnVzZVJlZikoKTsNCiAgICAgICAgICByZXR1 cm4gKA0KICAgICAgICAgICAgKDAsIHQudXNlRWZmZWN0KSgoKSA9PiB7DQogICAgICAgICAg ICAgIG4uY3VycmVudCA9IGU7DQogICAgICAgICAgICB9KSwNCiAgICAgICAgICAgIG4uY3Vy cmVudA0KICAgICAgICAgICk7DQogICAgICAgIH0NCiAgICAgICAgdmFyIGJsID0gU3ltYm9s LmZvcigiQW5pbWF0ZWQ6bm9kZSIpLA0KICAgICAgICAgIHdsID0gKGUpID0+IGUgJiYgZVti bF0sDQogICAgICAgICAgeGwgPSAoZSwgdCkgPT4gew0KICAgICAgICAgICAgcmV0dXJuIChu ID0gZSksIChyID0gYmwpLCAobyA9IHQpLCBPYmplY3QuZGVmaW5lUHJvcGVydHkobiwgciwg eyB2YWx1ZTogbywgd3JpdGFibGU6ICEwLCBjb25maWd1cmFibGU6ICEwIH0pOw0KICAgICAg ICAgICAgdmFyIG4sIHIsIG87DQogICAgICAgICAgfSwNCiAgICAgICAgICBTbCA9IChlKSA9 PiBlICYmIGVbYmxdICYmIGVbYmxdLmdldFBheWxvYWQoKSwNCiAgICAgICAgICBrbCA9IGNs YXNzIHsNCiAgICAgICAgICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICAgICAgICB4bCh0 aGlzLCB0aGlzKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGdldFBheWxvYWQoKSB7 DQogICAgICAgICAgICAgIHJldHVybiB0aGlzLnBheWxvYWQgfHwgW107DQogICAgICAgICAg ICB9DQogICAgICAgICAgfSwNCiAgICAgICAgICBFbCA9IGNsYXNzIGV4dGVuZHMga2wgew0K ICAgICAgICAgICAgY29uc3RydWN0b3IoZSkgew0KICAgICAgICAgICAgICBzdXBlcigpLCAo dGhpcy5fdmFsdWUgPSBlKSwgKHRoaXMuZG9uZSA9ICEwKSwgKHRoaXMuZHVyYXRpb25Qcm9n cmVzcyA9IDApLCAkYS5udW0odGhpcy5fdmFsdWUpICYmICh0aGlzLmxhc3RQb3NpdGlvbiA9 IHRoaXMuX3ZhbHVlKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHN0YXRpYyBjcmVh dGUoZSkgew0KICAgICAgICAgICAgICByZXR1cm4gbmV3IEVsKGUpOw0KICAgICAgICAgICAg fQ0KICAgICAgICAgICAgZ2V0UGF5bG9hZCgpIHsNCiAgICAgICAgICAgICAgcmV0dXJuIFt0 aGlzXTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGdldFZhbHVlKCkgew0KICAgICAg ICAgICAgICByZXR1cm4gdGhpcy5fdmFsdWU7DQogICAgICAgICAgICB9DQogICAgICAgICAg ICBzZXRWYWx1ZShlLCB0KSB7DQogICAgICAgICAgICAgIHJldHVybiAkYS5udW0oZSkgJiYg KCh0aGlzLmxhc3RQb3NpdGlvbiA9IGUpLCB0ICYmICgoZSA9IE1hdGgucm91bmQoZSAvIHQp ICogdCksIHRoaXMuZG9uZSAmJiAodGhpcy5sYXN0UG9zaXRpb24gPSBlKSkpLCB0aGlzLl92 YWx1ZSAhPT0gZSAmJiAoKHRoaXMuX3ZhbHVlID0gZSksICEwKTsNCiAgICAgICAgICAgIH0N CiAgICAgICAgICAgIHJlc2V0KCkgew0KICAgICAgICAgICAgICBjb25zdCB7IGRvbmU6IGUg fSA9IHRoaXM7DQogICAgICAgICAgICAgICh0aGlzLmRvbmUgPSAhMSksICRhLm51bSh0aGlz Ll92YWx1ZSkgJiYgKCh0aGlzLmVsYXBzZWRUaW1lID0gMCksICh0aGlzLmR1cmF0aW9uUHJv Z3Jlc3MgPSAwKSwgKHRoaXMubGFzdFBvc2l0aW9uID0gdGhpcy5fdmFsdWUpLCBlICYmICh0 aGlzLmxhc3RWZWxvY2l0eSA9IG51bGwpLCAodGhpcy52MCA9IG51bGwpKTsNCiAgICAgICAg ICAgIH0NCiAgICAgICAgICB9LA0KICAgICAgICAgIENsID0gY2xhc3MgZXh0ZW5kcyBFbCB7 DQogICAgICAgICAgICBjb25zdHJ1Y3RvcihlKSB7DQogICAgICAgICAgICAgIHN1cGVyKDAp LCAodGhpcy5fc3RyaW5nID0gbnVsbCksICh0aGlzLl90b1N0cmluZyA9IE1pKHsgb3V0cHV0 OiBbZSwgZV0gfSkpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc3RhdGljIGNyZWF0 ZShlKSB7DQogICAgICAgICAgICAgIHJldHVybiBuZXcgQ2woZSk7DQogICAgICAgICAgICB9 DQogICAgICAgICAgICBnZXRWYWx1ZSgpIHsNCiAgICAgICAgICAgICAgY29uc3QgZSA9IHRo aXMuX3N0cmluZzsNCiAgICAgICAgICAgICAgcmV0dXJuIG51bGwgPT0gZSA/ICh0aGlzLl9z dHJpbmcgPSB0aGlzLl90b1N0cmluZyh0aGlzLl92YWx1ZSkpIDogZTsNCiAgICAgICAgICAg IH0NCiAgICAgICAgICAgIHNldFZhbHVlKGUpIHsNCiAgICAgICAgICAgICAgaWYgKCRhLnN0 cihlKSkgew0KICAgICAgICAgICAgICAgIGlmIChlID09IHRoaXMuX3N0cmluZykgcmV0dXJu ICExOw0KICAgICAgICAgICAgICAgICh0aGlzLl9zdHJpbmcgPSBlKSwgKHRoaXMuX3ZhbHVl ID0gMSk7DQogICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgaWYgKCFz dXBlci5zZXRWYWx1ZShlKSkgcmV0dXJuICExOw0KICAgICAgICAgICAgICAgIHRoaXMuX3N0 cmluZyA9IG51bGw7DQogICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgcmV0dXJuICEw Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmVzZXQoZSkgew0KICAgICAgICAgICAg ICBlICYmICh0aGlzLl90b1N0cmluZyA9IE1pKHsgb3V0cHV0OiBbdGhpcy5nZXRWYWx1ZSgp LCBlXSB9KSksICh0aGlzLl92YWx1ZSA9IDApLCBzdXBlci5yZXNldCgpOw0KICAgICAgICAg ICAgfQ0KICAgICAgICAgIH0sDQogICAgICAgICAgUmwgPSB7IGRlcGVuZGVuY2llczogbnVs bCB9LA0KICAgICAgICAgIF9sID0gY2xhc3MgZXh0ZW5kcyBrbCB7DQogICAgICAgICAgICBj b25zdHJ1Y3RvcihlKSB7DQogICAgICAgICAgICAgIHN1cGVyKCksICh0aGlzLnNvdXJjZSA9 IGUpLCB0aGlzLnNldFZhbHVlKGUpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZ2V0 VmFsdWUoZSkgew0KICAgICAgICAgICAgICBjb25zdCB0ID0ge307DQogICAgICAgICAgICAg IHJldHVybiAoDQogICAgICAgICAgICAgICAgR2EodGhpcy5zb3VyY2UsIChuLCByKSA9PiB7 DQogICAgICAgICAgICAgICAgICB2YXIgbzsNCiAgICAgICAgICAgICAgICAgIChvID0gbikg JiYgb1tibF0gPT09IG8gPyAodFtyXSA9IG4uZ2V0VmFsdWUoZSkpIDogVmkobikgPyAodFty XSA9IEhpKG4pKSA6IGUgfHwgKHRbcl0gPSBuKTsNCiAgICAgICAgICAgICAgICB9KSwNCiAg ICAgICAgICAgICAgICB0DQogICAgICAgICAgICAgICk7DQogICAgICAgICAgICB9DQogICAg ICAgICAgICBzZXRWYWx1ZShlKSB7DQogICAgICAgICAgICAgICh0aGlzLnNvdXJjZSA9IGUp LCAodGhpcy5wYXlsb2FkID0gdGhpcy5fbWFrZVBheWxvYWQoZSkpOw0KICAgICAgICAgICAg fQ0KICAgICAgICAgICAgcmVzZXQoKSB7DQogICAgICAgICAgICAgIHRoaXMucGF5bG9hZCAm JiBRYSh0aGlzLnBheWxvYWQsIChlKSA9PiBlLnJlc2V0KCkpOw0KICAgICAgICAgICAgfQ0K ICAgICAgICAgICAgX21ha2VQYXlsb2FkKGUpIHsNCiAgICAgICAgICAgICAgaWYgKGUpIHsN CiAgICAgICAgICAgICAgICBjb25zdCB0ID0gbmV3IFNldCgpOw0KICAgICAgICAgICAgICAg IHJldHVybiBHYShlLCB0aGlzLl9hZGRUb1BheWxvYWQsIHQpLCBBcnJheS5mcm9tKHQpOw0K ICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICBfYWRkVG9QYXls b2FkKGUpIHsNCiAgICAgICAgICAgICAgUmwuZGVwZW5kZW5jaWVzICYmIFZpKGUpICYmIFJs LmRlcGVuZGVuY2llcy5hZGQoZSk7DQogICAgICAgICAgICAgIGNvbnN0IHQgPSBTbChlKTsN CiAgICAgICAgICAgICAgdCAmJiBRYSh0LCAoZSkgPT4gdGhpcy5hZGQoZSkpOw0KICAgICAg ICAgICAgfQ0KICAgICAgICAgIH0sDQogICAgICAgICAgUGwgPSBjbGFzcyBleHRlbmRzIF9s IHsNCiAgICAgICAgICAgIGNvbnN0cnVjdG9yKGUpIHsNCiAgICAgICAgICAgICAgc3VwZXIo ZSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBzdGF0aWMgY3JlYXRlKGUpIHsNCiAg ICAgICAgICAgICAgcmV0dXJuIG5ldyBQbChlKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAg ICAgIGdldFZhbHVlKCkgew0KICAgICAgICAgICAgICByZXR1cm4gdGhpcy5zb3VyY2UubWFw KChlKSA9PiBlLmdldFZhbHVlKCkpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc2V0 VmFsdWUoZSkgew0KICAgICAgICAgICAgICBjb25zdCB0ID0gdGhpcy5nZXRQYXlsb2FkKCk7 DQogICAgICAgICAgICAgIHJldHVybiBlLmxlbmd0aCA9PSB0Lmxlbmd0aCA/IHQubWFwKCh0 LCBuKSA9PiB0LnNldFZhbHVlKGVbbl0pKS5zb21lKEJvb2xlYW4pIDogKHN1cGVyLnNldFZh bHVlKGUubWFwKE9sKSksICEwKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICB9Ow0KICAg ICAgICBmdW5jdGlvbiBPbChlKSB7DQogICAgICAgICAgcmV0dXJuIChmbChlKSA/IENsIDog RWwpLmNyZWF0ZShlKTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBObChlKSB7DQog ICAgICAgICAgY29uc3QgdCA9IHdsKGUpOw0KICAgICAgICAgIHJldHVybiB0ID8gdC5jb25z dHJ1Y3RvciA6ICRhLmFycihlKSA/IFBsIDogZmwoZSkgPyBDbCA6IEVsOw0KICAgICAgICB9 DQogICAgICAgIHZhciBUbCA9IChlLCBuKSA9PiB7DQogICAgICAgICAgY29uc3QgciA9ICEk YS5mdW4oZSkgfHwgKGUucHJvdG90eXBlICYmIGUucHJvdG90eXBlLmlzUmVhY3RDb21wb25l bnQpOw0KICAgICAgICAgIHJldHVybiAoMCwgdC5mb3J3YXJkUmVmKSgobywgYSkgPT4gew0K ICAgICAgICAgICAgY29uc3QgaSA9ICgwLCB0LnVzZVJlZikobnVsbCksDQogICAgICAgICAg ICAgIGwgPQ0KICAgICAgICAgICAgICAgIHIgJiYNCiAgICAgICAgICAgICAgICAoMCwgdC51 c2VDYWxsYmFjaykoDQogICAgICAgICAgICAgICAgICAoZSkgPT4gew0KICAgICAgICAgICAg ICAgICAgICBpLmN1cnJlbnQgPSAoZnVuY3Rpb24gKGUsIHQpIHsNCiAgICAgICAgICAgICAg ICAgICAgICBlICYmICgkYS5mdW4oZSkgPyBlKHQpIDogKGUuY3VycmVudCA9IHQpKTsNCiAg ICAgICAgICAgICAgICAgICAgICByZXR1cm4gdDsNCiAgICAgICAgICAgICAgICAgICAgfSko YSwgZSk7DQogICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgW2FdDQog ICAgICAgICAgICAgICAgKSwNCiAgICAgICAgICAgICAgW3MsIHVdID0gKGZ1bmN0aW9uIChl LCB0KSB7DQogICAgICAgICAgICAgICAgY29uc3QgbiA9IG5ldyBTZXQoKTsNCiAgICAgICAg ICAgICAgICAoUmwuZGVwZW5kZW5jaWVzID0gbiksIGUuc3R5bGUgJiYgKGUgPSB7IC4uLmUs IHN0eWxlOiB0LmNyZWF0ZUFuaW1hdGVkU3R5bGUoZS5zdHlsZSkgfSk7DQogICAgICAgICAg ICAgICAgcmV0dXJuIChlID0gbmV3IF9sKGUpKSwgKFJsLmRlcGVuZGVuY2llcyA9IG51bGwp LCBbZSwgbl07DQogICAgICAgICAgICAgIH0pKG8sIG4pLA0KICAgICAgICAgICAgICBjID0g bWwoKSwNCiAgICAgICAgICAgICAgZCA9ICgpID0+IHsNCiAgICAgICAgICAgICAgICBjb25z dCBlID0gaS5jdXJyZW50Ow0KICAgICAgICAgICAgICAgIGlmIChyICYmICFlKSByZXR1cm47 DQogICAgICAgICAgICAgICAgITEgPT09ICghIWUgJiYgbi5hcHBseUFuaW1hdGVkVmFsdWVz KGUsIHMuZ2V0VmFsdWUoITApKSkgJiYgYygpOw0KICAgICAgICAgICAgICB9LA0KICAgICAg ICAgICAgICBmID0gbmV3IEFsKGQsIHUpLA0KICAgICAgICAgICAgICBwID0gKDAsIHQudXNl UmVmKSgpOw0KICAgICAgICAgICAgcGwoDQogICAgICAgICAgICAgICgpID0+ICgNCiAgICAg ICAgICAgICAgICAocC5jdXJyZW50ID0gZiksDQogICAgICAgICAgICAgICAgUWEodSwgKGUp ID0+IEdpKGUsIGYpKSwNCiAgICAgICAgICAgICAgICAoKSA9PiB7DQogICAgICAgICAgICAg ICAgICBwLmN1cnJlbnQgJiYgKFFhKHAuY3VycmVudC5kZXBzLCAoZSkgPT4gWWkoZSwgcC5j dXJyZW50KSksIFBhLmNhbmNlbChwLmN1cnJlbnQudXBkYXRlKSk7DQogICAgICAgICAgICAg ICAgfQ0KICAgICAgICAgICAgICApDQogICAgICAgICAgICApLA0KICAgICAgICAgICAgICAo MCwgdC51c2VFZmZlY3QpKGQsIFtdKSwNCiAgICAgICAgICAgICAgZ2woKCkgPT4gKCkgPT4g ew0KICAgICAgICAgICAgICAgIGNvbnN0IGUgPSBwLmN1cnJlbnQ7DQogICAgICAgICAgICAg ICAgUWEoZS5kZXBzLCAodCkgPT4gWWkodCwgZSkpOw0KICAgICAgICAgICAgICB9KTsNCiAg ICAgICAgICAgIGNvbnN0IGggPSBuLmdldENvbXBvbmVudFByb3BzKHMuZ2V0VmFsdWUoKSk7 DQogICAgICAgICAgICByZXR1cm4gdC5jcmVhdGVFbGVtZW50KGUsIHsgLi4uaCwgcmVmOiBs IH0pOw0KICAgICAgICAgIH0pOw0KICAgICAgICB9LA0KICAgICAgICAgIEFsID0gY2xhc3Mg ew0KICAgICAgICAgICAgY29uc3RydWN0b3IoZSwgdCkgew0KICAgICAgICAgICAgICAodGhp cy51cGRhdGUgPSBlKSwgKHRoaXMuZGVwcyA9IHQpOw0KICAgICAgICAgICAgfQ0KICAgICAg ICAgICAgZXZlbnRPYnNlcnZlZChlKSB7DQogICAgICAgICAgICAgICJjaGFuZ2UiID09IGUu dHlwZSAmJiBQYS53cml0ZSh0aGlzLnVwZGF0ZSk7DQogICAgICAgICAgICB9DQogICAgICAg ICAgfTsNCiAgICAgICAgdmFyIE1sID0gU3ltYm9sLmZvcigiQW5pbWF0ZWRDb21wb25lbnQi KSwNCiAgICAgICAgICB6bCA9IChlKSA9PiAoJGEuc3RyKGUpID8gZSA6IGUgJiYgJGEuc3Ry KGUuZGlzcGxheU5hbWUpID8gZS5kaXNwbGF5TmFtZSA6ICgkYS5mdW4oZSkgJiYgZS5uYW1l KSB8fCBudWxsKTsNCiAgICAgICAgZnVuY3Rpb24gamwoZSkgew0KICAgICAgICAgIGZvciAo dmFyIHQgPSBhcmd1bWVudHMubGVuZ3RoLCBuID0gbmV3IEFycmF5KHQgPiAxID8gdCAtIDEg OiAwKSwgciA9IDE7IHIgPCB0OyByKyspIG5bciAtIDFdID0gYXJndW1lbnRzW3JdOw0KICAg ICAgICAgIHJldHVybiAkYS5mdW4oZSkgPyBlKC4uLm4pIDogZTsNCiAgICAgICAgfQ0KICAg ICAgICB2YXIgSWwgPSAoZSwgdCkgPT4gITAgPT09IGUgfHwgISEodCAmJiBlICYmICgkYS5m dW4oZSkgPyBlKHQpIDogWWEoZSkuaW5jbHVkZXModCkpKSwNCiAgICAgICAgICBMbCA9IChl LCB0KSA9PiAoJGEub2JqKGUpID8gdCAmJiBlW3RdIDogZSksDQogICAgICAgICAgRmwgPSAo ZSwgdCkgPT4gKCEwID09PSBlLmRlZmF1bHQgPyBlW3RdIDogZS5kZWZhdWx0ID8gZS5kZWZh dWx0W3RdIDogdm9pZCAwKSwNCiAgICAgICAgICBCbCA9IChlKSA9PiBlLA0KICAgICAgICAg IERsID0gZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgIGxldCB0ID0gYXJndW1lbnRzLmxl bmd0aCA+IDEgJiYgdm9pZCAwICE9PSBhcmd1bWVudHNbMV0gPyBhcmd1bWVudHNbMV0gOiBC bCwNCiAgICAgICAgICAgICAgbiA9IFVsOw0KICAgICAgICAgICAgZS5kZWZhdWx0ICYmICEw ICE9PSBlLmRlZmF1bHQgJiYgKChlID0gZS5kZWZhdWx0KSwgKG4gPSBPYmplY3Qua2V5cyhl KSkpOw0KICAgICAgICAgICAgY29uc3QgciA9IHt9Ow0KICAgICAgICAgICAgZm9yIChjb25z dCBvIG9mIG4pIHsNCiAgICAgICAgICAgICAgY29uc3QgbiA9IHQoZVtvXSwgbyk7DQogICAg ICAgICAgICAgICRhLnVuZChuKSB8fCAocltvXSA9IG4pOw0KICAgICAgICAgICAgfQ0KICAg ICAgICAgICAgcmV0dXJuIHI7DQogICAgICAgICAgfSwNCiAgICAgICAgICBVbCA9IFsiY29u ZmlnIiwgIm9uUHJvcHMiLCAib25TdGFydCIsICJvbkNoYW5nZSIsICJvblBhdXNlIiwgIm9u UmVzdW1lIiwgIm9uUmVzdCJdLA0KICAgICAgICAgIFdsID0gew0KICAgICAgICAgICAgY29u ZmlnOiAxLA0KICAgICAgICAgICAgZnJvbTogMSwNCiAgICAgICAgICAgIHRvOiAxLA0KICAg ICAgICAgICAgcmVmOiAxLA0KICAgICAgICAgICAgbG9vcDogMSwNCiAgICAgICAgICAgIHJl c2V0OiAxLA0KICAgICAgICAgICAgcGF1c2U6IDEsDQogICAgICAgICAgICBjYW5jZWw6IDEs DQogICAgICAgICAgICByZXZlcnNlOiAxLA0KICAgICAgICAgICAgaW1tZWRpYXRlOiAxLA0K ICAgICAgICAgICAgZGVmYXVsdDogMSwNCiAgICAgICAgICAgIGRlbGF5OiAxLA0KICAgICAg ICAgICAgb25Qcm9wczogMSwNCiAgICAgICAgICAgIG9uU3RhcnQ6IDEsDQogICAgICAgICAg ICBvbkNoYW5nZTogMSwNCiAgICAgICAgICAgIG9uUGF1c2U6IDEsDQogICAgICAgICAgICBv blJlc3VtZTogMSwNCiAgICAgICAgICAgIG9uUmVzdDogMSwNCiAgICAgICAgICAgIG9uUmVz b2x2ZTogMSwNCiAgICAgICAgICAgIGl0ZW1zOiAxLA0KICAgICAgICAgICAgdHJhaWw6IDEs DQogICAgICAgICAgICBzb3J0OiAxLA0KICAgICAgICAgICAgZXhwaXJlczogMSwNCiAgICAg ICAgICAgIGluaXRpYWw6IDEsDQogICAgICAgICAgICBlbnRlcjogMSwNCiAgICAgICAgICAg IHVwZGF0ZTogMSwNCiAgICAgICAgICAgIGxlYXZlOiAxLA0KICAgICAgICAgICAgY2hpbGRy ZW46IDEsDQogICAgICAgICAgICBvbkRlc3Ryb3llZDogMSwNCiAgICAgICAgICAgIGtleXM6 IDEsDQogICAgICAgICAgICBjYWxsSWQ6IDEsDQogICAgICAgICAgICBwYXJlbnRJZDogMSwN CiAgICAgICAgICB9Ow0KICAgICAgICBmdW5jdGlvbiBWbChlKSB7DQogICAgICAgICAgY29u c3QgdCA9IChmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgY29uc3QgdCA9IHt9Ow0KICAg ICAgICAgICAgbGV0IG4gPSAwOw0KICAgICAgICAgICAgaWYgKA0KICAgICAgICAgICAgICAo R2EoZSwgKGUsIHIpID0+IHsNCiAgICAgICAgICAgICAgICBXbFtyXSB8fCAoKHRbcl0gPSBl KSwgbisrKTsNCiAgICAgICAgICAgICAgfSksDQogICAgICAgICAgICAgICAgbikNCiAgICAg ICAgICAgICkNCiAgICAgICAgICAgICAgcmV0dXJuIHQ7DQogICAgICAgICAgfSkoZSk7DQog ICAgICAgICAgaWYgKHQpIHsNCiAgICAgICAgICAgIGNvbnN0IG4gPSB7IHRvOiB0IH07DQog ICAgICAgICAgICByZXR1cm4gR2EoZSwgKGUsIHIpID0+IHIgaW4gdCB8fCAobltyXSA9IGUp KSwgbjsNCiAgICAgICAgICB9DQogICAgICAgICAgcmV0dXJuIHsgLi4uZSB9Ow0KICAgICAg ICB9DQogICAgICAgIGZ1bmN0aW9uIEhsKGUpIHsNCiAgICAgICAgICByZXR1cm4gKGUgPSBI aShlKSksICRhLmFycihlKSA/IGUubWFwKEhsKSA6IGZsKGUpID8gUmEuY3JlYXRlU3RyaW5n SW50ZXJwb2xhdG9yKHsgcmFuZ2U6IFswLCAxXSwgb3V0cHV0OiBbZSwgZV0gfSkoMSkgOiBl Ow0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIHFsKGUpIHsNCiAgICAgICAgICBmb3Ig KGNvbnN0IHQgaW4gZSkgcmV0dXJuICEwOw0KICAgICAgICAgIHJldHVybiAhMTsNCiAgICAg ICAgfQ0KICAgICAgICBmdW5jdGlvbiAkbChlKSB7DQogICAgICAgICAgcmV0dXJuICRhLmZ1 bihlKSB8fCAoJGEuYXJyKGUpICYmICRhLm9iaihlWzBdKSk7DQogICAgICAgIH0NCiAgICAg ICAgZnVuY3Rpb24gS2woZSwgdCkgew0KICAgICAgICAgIHZhciBuOw0KICAgICAgICAgIG51 bGwgPT09IChuID0gZS5yZWYpIHx8IHZvaWQgMCA9PT0gbiB8fCBuLmRlbGV0ZShlKSwgbnVs bCA9PT0gdCB8fCB2b2lkIDAgPT09IHQgfHwgdC5kZWxldGUoZSk7DQogICAgICAgIH0NCiAg ICAgICAgZnVuY3Rpb24gUWwoZSwgdCkgew0KICAgICAgICAgIHZhciBuOw0KICAgICAgICAg IHQgJiYgZS5yZWYgIT09IHQgJiYgKG51bGwgPT09IChuID0gZS5yZWYpIHx8IHZvaWQgMCA9 PT0gbiB8fCBuLmRlbGV0ZShlKSwgdC5hZGQoZSksIChlLnJlZiA9IHQpKTsNCiAgICAgICAg fQ0KICAgICAgICB2YXIgR2wgPSB7IHRlbnNpb246IDE3MCwgZnJpY3Rpb246IDI2LCBtYXNz OiAxLCBkYW1waW5nOiAxLCBlYXNpbmc6IERpLmxpbmVhciwgY2xhbXA6ICExIH0sDQogICAg ICAgICAgWWwgPSBjbGFzcyB7DQogICAgICAgICAgICBjb25zdHJ1Y3RvcigpIHsNCiAgICAg ICAgICAgICAgKHRoaXMudmVsb2NpdHkgPSAwKSwgT2JqZWN0LmFzc2lnbih0aGlzLCBHbCk7 DQogICAgICAgICAgICB9DQogICAgICAgICAgfTsNCiAgICAgICAgZnVuY3Rpb24gWGwoZSwg dCkgew0KICAgICAgICAgIGlmICgkYS51bmQodC5kZWNheSkpIHsNCiAgICAgICAgICAgIGNv bnN0IG4gPSAhJGEudW5kKHQudGVuc2lvbikgfHwgISRhLnVuZCh0LmZyaWN0aW9uKTsNCiAg ICAgICAgICAgICghbiAmJiAkYS51bmQodC5mcmVxdWVuY3kpICYmICRhLnVuZCh0LmRhbXBp bmcpICYmICRhLnVuZCh0Lm1hc3MpKSB8fCAoKGUuZHVyYXRpb24gPSB2b2lkIDApLCAoZS5k ZWNheSA9IHZvaWQgMCkpLCBuICYmIChlLmZyZXF1ZW5jeSA9IHZvaWQgMCk7DQogICAgICAg ICAgfSBlbHNlIGUuZHVyYXRpb24gPSB2b2lkIDA7DQogICAgICAgIH0NCiAgICAgICAgdmFy IFpsID0gW10sDQogICAgICAgICAgSmwgPSBjbGFzcyB7DQogICAgICAgICAgICBjb25zdHJ1 Y3RvcigpIHsNCiAgICAgICAgICAgICAgKHRoaXMuY2hhbmdlZCA9ICExKSwgKHRoaXMudmFs dWVzID0gWmwpLCAodGhpcy50b1ZhbHVlcyA9IG51bGwpLCAodGhpcy5mcm9tVmFsdWVzID0g WmwpLCAodGhpcy5jb25maWcgPSBuZXcgWWwoKSksICh0aGlzLmltbWVkaWF0ZSA9ICExKTsN CiAgICAgICAgICAgIH0NCiAgICAgICAgICB9Ow0KICAgICAgICBmdW5jdGlvbiBlcyhlLCB0 KSB7DQogICAgICAgICAgbGV0IHsga2V5OiBuLCBwcm9wczogciwgZGVmYXVsdFByb3BzOiBv LCBzdGF0ZTogYSwgYWN0aW9uczogaSB9ID0gdDsNCiAgICAgICAgICByZXR1cm4gbmV3IFBy b21pc2UoKHQsIGwpID0+IHsNCiAgICAgICAgICAgIHZhciBzOw0KICAgICAgICAgICAgbGV0 IHUsDQogICAgICAgICAgICAgIGMsDQogICAgICAgICAgICAgIGQgPSBJbChudWxsICE9PSAo cyA9IHIuY2FuY2VsKSAmJiB2b2lkIDAgIT09IHMgPyBzIDogbnVsbCA9PT0gbyB8fCB2b2lk IDAgPT09IG8gPyB2b2lkIDAgOiBvLmNhbmNlbCwgbik7DQogICAgICAgICAgICBpZiAoZCkg aCgpOw0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICRhLnVuZChyLnBhdXNl KSB8fCAoYS5wYXVzZWQgPSBJbChyLnBhdXNlLCBuKSk7DQogICAgICAgICAgICAgIGxldCBl ID0gbnVsbCA9PT0gbyB8fCB2b2lkIDAgPT09IG8gPyB2b2lkIDAgOiBvLnBhdXNlOw0KICAg ICAgICAgICAgICAhMCAhPT0gZSAmJiAoZSA9IGEucGF1c2VkIHx8IElsKGUsIG4pKSwgKHUg PSBqbChyLmRlbGF5IHx8IDAsIG4pKSwgZSA/IChhLnJlc3VtZVF1ZXVlLmFkZChwKSwgaS5w YXVzZSgpKSA6IChpLnJlc3VtZSgpLCBwKCkpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAg ICAgZnVuY3Rpb24gZigpIHsNCiAgICAgICAgICAgICAgYS5yZXN1bWVRdWV1ZS5hZGQocCks IGEudGltZW91dHMuZGVsZXRlKGMpLCBjLmNhbmNlbCgpLCAodSA9IGMudGltZSAtIFBhLm5v dygpKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGZ1bmN0aW9uIHAoKSB7DQogICAg ICAgICAgICAgIHUgPiAwICYmICFSYS5za2lwQW5pbWF0aW9uID8gKChhLmRlbGF5ZWQgPSAh MCksIChjID0gUGEuc2V0VGltZW91dChoLCB1KSksIGEucGF1c2VRdWV1ZS5hZGQoZiksIGEu dGltZW91dHMuYWRkKGMpKSA6IGgoKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGZ1 bmN0aW9uIGgoKSB7DQogICAgICAgICAgICAgIGEuZGVsYXllZCAmJiAoYS5kZWxheWVkID0g ITEpLCBhLnBhdXNlUXVldWUuZGVsZXRlKGYpLCBhLnRpbWVvdXRzLmRlbGV0ZShjKSwgZSA8 PSAoYS5jYW5jZWxJZCB8fCAwKSAmJiAoZCA9ICEwKTsNCiAgICAgICAgICAgICAgdHJ5IHsN CiAgICAgICAgICAgICAgICBpLnN0YXJ0KHsgLi4uciwgY2FsbElkOiBlLCBjYW5jZWw6IGQg fSwgdCk7DQogICAgICAgICAgICAgIH0gY2F0Y2ggKG4pIHsNCiAgICAgICAgICAgICAgICBs KG4pOw0KICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgfSk7DQog ICAgICAgIH0NCiAgICAgICAgdmFyIHRzID0gKGUsIHQpID0+DQogICAgICAgICAgMSA9PSB0 Lmxlbmd0aA0KICAgICAgICAgICAgPyB0WzBdDQogICAgICAgICAgICA6IHQuc29tZSgoZSkg PT4gZS5jYW5jZWxsZWQpDQogICAgICAgICAgICAgID8gb3MoZS5nZXQoKSkNCiAgICAgICAg ICAgICAgOiB0LmV2ZXJ5KChlKSA9PiBlLm5vb3ApDQogICAgICAgICAgICAgICAgPyBucyhl LmdldCgpKQ0KICAgICAgICAgICAgICAgIDogcnMoDQogICAgICAgICAgICAgICAgICBlLmdl dCgpLA0KICAgICAgICAgICAgICAgICAgdC5ldmVyeSgoZSkgPT4gZS5maW5pc2hlZCkNCiAg ICAgICAgICAgICAgICApLA0KICAgICAgICAgIG5zID0gKGUpID0+ICh7IHZhbHVlOiBlLCBu b29wOiAhMCwgZmluaXNoZWQ6ICEwLCBjYW5jZWxsZWQ6ICExIH0pLA0KICAgICAgICAgIHJz ID0gZnVuY3Rpb24gKGUsIHQpIHsNCiAgICAgICAgICAgIHJldHVybiB7IHZhbHVlOiBlLCBm aW5pc2hlZDogdCwgY2FuY2VsbGVkOiBhcmd1bWVudHMubGVuZ3RoID4gMiAmJiB2b2lkIDAg IT09IGFyZ3VtZW50c1syXSAmJiBhcmd1bWVudHNbMl0gfTsNCiAgICAgICAgICB9LA0KICAg ICAgICAgIG9zID0gKGUpID0+ICh7IHZhbHVlOiBlLCBjYW5jZWxsZWQ6ICEwLCBmaW5pc2hl ZDogITEgfSk7DQogICAgICAgIGZ1bmN0aW9uIGFzKGUsIHQsIG4sIHIpIHsNCiAgICAgICAg ICBjb25zdCB7IGNhbGxJZDogbywgcGFyZW50SWQ6IGEsIG9uUmVzdDogaSB9ID0gdCwNCiAg ICAgICAgICAgIHsgYXN5bmNUbzogbCwgcHJvbWlzZTogcyB9ID0gbjsNCiAgICAgICAgICBy ZXR1cm4gYSB8fCBlICE9PSBsIHx8IHQucmVzZXQNCiAgICAgICAgICAgID8gKG4ucHJvbWlz ZSA9IChhc3luYyAoKSA9PiB7DQogICAgICAgICAgICAgIChuLmFzeW5jSWQgPSBvKSwgKG4u YXN5bmNUbyA9IGUpOw0KICAgICAgICAgICAgICBjb25zdCB1ID0gRGwodCwgKGUsIHQpID0+ ICgib25SZXN0IiA9PT0gdCA/IHZvaWQgMCA6IGUpKTsNCiAgICAgICAgICAgICAgbGV0IGMs IGQ7DQogICAgICAgICAgICAgIGNvbnN0IGYgPSBuZXcgUHJvbWlzZSgoZSwgdCkgPT4gKChj ID0gZSksIChkID0gdCkpKSwNCiAgICAgICAgICAgICAgICBwID0gKGUpID0+IHsNCiAgICAg ICAgICAgICAgICAgIGNvbnN0IHQgPSAobyA8PSAobi5jYW5jZWxJZCB8fCAwKSAmJiBvcyhy KSkgfHwgKG8gIT09IG4uYXN5bmNJZCAmJiBycyhyLCAhMSkpOw0KICAgICAgICAgICAgICAg ICAgaWYgKHQpIHRocm93ICgoZS5yZXN1bHQgPSB0KSwgZChlKSwgZSk7DQogICAgICAgICAg ICAgICAgfSwNCiAgICAgICAgICAgICAgICBoID0gKGUsIHQpID0+IHsNCiAgICAgICAgICAg ICAgICAgIGNvbnN0IGEgPSBuZXcgbHMoKSwNCiAgICAgICAgICAgICAgICAgICAgaSA9IG5l dyBzcygpOw0KICAgICAgICAgICAgICAgICAgcmV0dXJuIChhc3luYyAoKSA9PiB7DQogICAg ICAgICAgICAgICAgICAgIGlmIChSYS5za2lwQW5pbWF0aW9uKSB0aHJvdyAoaXMobiksIChp LnJlc3VsdCA9IHJzKHIsICExKSksIGQoaSksIGkpOw0KICAgICAgICAgICAgICAgICAgICBw KGEpOw0KICAgICAgICAgICAgICAgICAgICBjb25zdCBsID0gJGEub2JqKGUpID8geyAuLi5l IH0gOiB7IC4uLnQsIHRvOiBlIH07DQogICAgICAgICAgICAgICAgICAgIChsLnBhcmVudElk ID0gbyksDQogICAgICAgICAgICAgICAgICAgICAgR2EodSwgKGUsIHQpID0+IHsNCiAgICAg ICAgICAgICAgICAgICAgICAgICRhLnVuZChsW3RdKSAmJiAobFt0XSA9IGUpOw0KICAgICAg ICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgICAgICBjb25zdCBzID0gYXdh aXQgci5zdGFydChsKTsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICgNCiAgICAgICAg ICAgICAgICAgICAgICBwKGEpLA0KICAgICAgICAgICAgICAgICAgICAgIG4ucGF1c2VkICYm DQogICAgICAgICAgICAgICAgICAgICAgKGF3YWl0IG5ldyBQcm9taXNlKChlKSA9PiB7DQog ICAgICAgICAgICAgICAgICAgICAgICBuLnJlc3VtZVF1ZXVlLmFkZChlKTsNCiAgICAgICAg ICAgICAgICAgICAgICB9KSksDQogICAgICAgICAgICAgICAgICAgICAgcw0KICAgICAgICAg ICAgICAgICAgICApOw0KICAgICAgICAgICAgICAgICAgfSkoKTsNCiAgICAgICAgICAgICAg ICB9Ow0KICAgICAgICAgICAgICBsZXQgbTsNCiAgICAgICAgICAgICAgaWYgKFJhLnNraXBB bmltYXRpb24pIHJldHVybiBpcyhuKSwgcnMociwgITEpOw0KICAgICAgICAgICAgICB0cnkg ew0KICAgICAgICAgICAgICAgIGxldCB0Ow0KICAgICAgICAgICAgICAgICh0ID0gJGEuYXJy KGUpDQogICAgICAgICAgICAgICAgICA/IChhc3luYyAoZSkgPT4gew0KICAgICAgICAgICAg ICAgICAgICBmb3IgKGNvbnN0IHQgb2YgZSkgYXdhaXQgaCh0KTsNCiAgICAgICAgICAgICAg ICAgIH0pKGUpDQogICAgICAgICAgICAgICAgICA6IFByb21pc2UucmVzb2x2ZShlKGgsIHIu c3RvcC5iaW5kKHIpKSkpLA0KICAgICAgICAgICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwo W3QudGhlbihjKSwgZl0pLA0KICAgICAgICAgICAgICAgICAgKG0gPSBycyhyLmdldCgpLCAh MCwgITEpKTsNCiAgICAgICAgICAgICAgfSBjYXRjaCAoZykgew0KICAgICAgICAgICAgICAg IGlmIChnIGluc3RhbmNlb2YgbHMpIG0gPSBnLnJlc3VsdDsNCiAgICAgICAgICAgICAgICBl bHNlIHsNCiAgICAgICAgICAgICAgICAgIGlmICghKGcgaW5zdGFuY2VvZiBzcykpIHRocm93 IGc7DQogICAgICAgICAgICAgICAgICBtID0gZy5yZXN1bHQ7DQogICAgICAgICAgICAgICAg fQ0KICAgICAgICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgICAgIG8gPT0gbi5h c3luY0lkICYmICgobi5hc3luY0lkID0gYSksIChuLmFzeW5jVG8gPSBhID8gbCA6IHZvaWQg MCksIChuLnByb21pc2UgPSBhID8gcyA6IHZvaWQgMCkpOw0KICAgICAgICAgICAgICB9DQog ICAgICAgICAgICAgIHJldHVybiAoDQogICAgICAgICAgICAgICAgJGEuZnVuKGkpICYmDQog ICAgICAgICAgICAgICAgUGEuYmF0Y2hlZFVwZGF0ZXMoKCkgPT4gew0KICAgICAgICAgICAg ICAgICAgaShtLCByLCByLml0ZW0pOw0KICAgICAgICAgICAgICAgIH0pLA0KICAgICAgICAg ICAgICAgIG0NCiAgICAgICAgICAgICAgKTsNCiAgICAgICAgICAgIH0pKCkpDQogICAgICAg ICAgICA6IHM7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gaXMoZSwgdCkgew0KICAg ICAgICAgIFhhKGUudGltZW91dHMsIChlKSA9PiBlLmNhbmNlbCgpKSwgZS5wYXVzZVF1ZXVl LmNsZWFyKCksIGUucmVzdW1lUXVldWUuY2xlYXIoKSwgKGUuYXN5bmNJZCA9IGUuYXN5bmNU byA9IGUucHJvbWlzZSA9IHZvaWQgMCksIHQgJiYgKGUuY2FuY2VsSWQgPSB0KTsNCiAgICAg ICAgfQ0KICAgICAgICB2YXIgbHMgPSBjbGFzcyBleHRlbmRzIEVycm9yIHsNCiAgICAgICAg ICBjb25zdHJ1Y3RvcigpIHsNCiAgICAgICAgICAgIHN1cGVyKCJBbiBhc3luYyBhbmltYXRp b24gaGFzIGJlZW4gaW50ZXJydXB0ZWQuIFlvdSBzZWUgdGhpcyBlcnJvciBiZWNhdXNlIHlv dSBmb3Jnb3QgdG8gdXNlIGBhd2FpdGAgb3IgYC5jYXRjaCguLi4pYCBvbiBpdHMgcmV0dXJu ZWQgcHJvbWlzZS4iKTsNCiAgICAgICAgICB9DQogICAgICAgIH0sDQogICAgICAgICAgc3Mg PSBjbGFzcyBleHRlbmRzIEVycm9yIHsNCiAgICAgICAgICAgIGNvbnN0cnVjdG9yKCkgew0K ICAgICAgICAgICAgICBzdXBlcigiU2tpcEFuaW1hdGlvblNpZ25hbCIpOw0KICAgICAgICAg ICAgfQ0KICAgICAgICAgIH0sDQogICAgICAgICAgdXMgPSAoZSkgPT4gZSBpbnN0YW5jZW9m IGRzLA0KICAgICAgICAgIGNzID0gMSwNCiAgICAgICAgICBkcyA9IGNsYXNzIGV4dGVuZHMg S2kgew0KICAgICAgICAgICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgICAgICAgIHN1cGVy KC4uLmFyZ3VtZW50cyksICh0aGlzLmlkID0gY3MrKyksICh0aGlzLl9wcmlvcml0eSA9IDAp Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZ2V0IHByaW9yaXR5KCkgew0KICAgICAg ICAgICAgICByZXR1cm4gdGhpcy5fcHJpb3JpdHk7DQogICAgICAgICAgICB9DQogICAgICAg ICAgICBzZXQgcHJpb3JpdHkoZSkgew0KICAgICAgICAgICAgICB0aGlzLl9wcmlvcml0eSAh PSBlICYmICgodGhpcy5fcHJpb3JpdHkgPSBlKSwgdGhpcy5fb25Qcmlvcml0eUNoYW5nZShl KSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBnZXQoKSB7DQogICAgICAgICAgICAg IGNvbnN0IGUgPSB3bCh0aGlzKTsNCiAgICAgICAgICAgICAgcmV0dXJuIGUgJiYgZS5nZXRW YWx1ZSgpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgdG8oKSB7DQogICAgICAgICAg ICAgIGZvciAodmFyIGUgPSBhcmd1bWVudHMubGVuZ3RoLCB0ID0gbmV3IEFycmF5KGUpLCBu ID0gMDsgbiA8IGU7IG4rKykgdFtuXSA9IGFyZ3VtZW50c1tuXTsNCiAgICAgICAgICAgICAg cmV0dXJuIFJhLnRvKHRoaXMsIHQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaW50 ZXJwb2xhdGUoKSB7DQogICAgICAgICAgICAgIGNsKCIiLmNvbmNhdChzbCwgJ1RoZSAiaW50 ZXJwb2xhdGUiIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQgaW4gdjkgKHVzZSAidG8iIGluc3Rl YWQpJykpOw0KICAgICAgICAgICAgICBmb3IgKHZhciBlID0gYXJndW1lbnRzLmxlbmd0aCwg dCA9IG5ldyBBcnJheShlKSwgbiA9IDA7IG4gPCBlOyBuKyspIHRbbl0gPSBhcmd1bWVudHNb bl07DQogICAgICAgICAgICAgIHJldHVybiBSYS50byh0aGlzLCB0KTsNCiAgICAgICAgICAg IH0NCiAgICAgICAgICAgIHRvSlNPTigpIHsNCiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMu Z2V0KCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBvYnNlcnZlckFkZGVkKGUpIHsN CiAgICAgICAgICAgICAgMSA9PSBlICYmIHRoaXMuX2F0dGFjaCgpOw0KICAgICAgICAgICAg fQ0KICAgICAgICAgICAgb2JzZXJ2ZXJSZW1vdmVkKGUpIHsNCiAgICAgICAgICAgICAgMCA9 PSBlICYmIHRoaXMuX2RldGFjaCgpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgX2F0 dGFjaCgpIHsgfQ0KICAgICAgICAgICAgX2RldGFjaCgpIHsgfQ0KICAgICAgICAgICAgX29u Q2hhbmdlKGUpIHsNCiAgICAgICAgICAgICAgJGkodGhpcywgeyB0eXBlOiAiY2hhbmdlIiwg cGFyZW50OiB0aGlzLCB2YWx1ZTogZSwgaWRsZTogYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYg dm9pZCAwICE9PSBhcmd1bWVudHNbMV0gJiYgYXJndW1lbnRzWzFdIH0pOw0KICAgICAgICAg ICAgfQ0KICAgICAgICAgICAgX29uUHJpb3JpdHlDaGFuZ2UoZSkgew0KICAgICAgICAgICAg ICB0aGlzLmlkbGUgfHwgY2kuc29ydCh0aGlzKSwgJGkodGhpcywgeyB0eXBlOiAicHJpb3Jp dHkiLCBwYXJlbnQ6IHRoaXMsIHByaW9yaXR5OiBlIH0pOw0KICAgICAgICAgICAgfQ0KICAg ICAgICAgIH0sDQogICAgICAgICAgZnMgPSBTeW1ib2wuZm9yKCJTcHJpbmdQaGFzZSIpLA0K ICAgICAgICAgIHBzID0gKGUpID0+ICgxICYgZVtmc10pID4gMCwNCiAgICAgICAgICBocyA9 IChlKSA9PiAoMiAmIGVbZnNdKSA+IDAsDQogICAgICAgICAgbXMgPSAoZSkgPT4gKDQgJiBl W2ZzXSkgPiAwLA0KICAgICAgICAgIGdzID0gKGUsIHQpID0+ICh0ID8gKGVbZnNdIHw9IDMp IDogKGVbZnNdICY9IC0zKSksDQogICAgICAgICAgdnMgPSAoZSwgdCkgPT4gKHQgPyAoZVtm c10gfD0gNCkgOiAoZVtmc10gJj0gLTUpKSwNCiAgICAgICAgICB5cyA9IGNsYXNzIGV4dGVu ZHMgZHMgew0KICAgICAgICAgICAgY29uc3RydWN0b3IoZSwgdCkgew0KICAgICAgICAgICAg ICBpZiAoDQogICAgICAgICAgICAgICAgKHN1cGVyKCksDQogICAgICAgICAgICAgICAgICAo dGhpcy5hbmltYXRpb24gPSBuZXcgSmwoKSksDQogICAgICAgICAgICAgICAgICAodGhpcy5k ZWZhdWx0UHJvcHMgPSB7fSksDQogICAgICAgICAgICAgICAgICAodGhpcy5fc3RhdGUgPSB7 IHBhdXNlZDogITEsIGRlbGF5ZWQ6ICExLCBwYXVzZVF1ZXVlOiBuZXcgU2V0KCksIHJlc3Vt ZVF1ZXVlOiBuZXcgU2V0KCksIHRpbWVvdXRzOiBuZXcgU2V0KCkgfSksDQogICAgICAgICAg ICAgICAgICAodGhpcy5fcGVuZGluZ0NhbGxzID0gbmV3IFNldCgpKSwNCiAgICAgICAgICAg ICAgICAgICh0aGlzLl9sYXN0Q2FsbElkID0gMCksDQogICAgICAgICAgICAgICAgICAodGhp cy5fbGFzdFRvSWQgPSAwKSwNCiAgICAgICAgICAgICAgICAgICh0aGlzLl9tZW1vaXplZER1 cmF0aW9uID0gMCksDQogICAgICAgICAgICAgICAgICAhJGEudW5kKGUpIHx8ICEkYS51bmQo dCkpDQogICAgICAgICAgICAgICkgew0KICAgICAgICAgICAgICAgIGNvbnN0IG4gPSAkYS5v YmooZSkgPyB7IC4uLmUgfSA6IHsgLi4udCwgZnJvbTogZSB9Ow0KICAgICAgICAgICAgICAg ICRhLnVuZChuLmRlZmF1bHQpICYmIChuLmRlZmF1bHQgPSAhMCksIHRoaXMuc3RhcnQobik7 DQogICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGdldCBpZGxl KCkgew0KICAgICAgICAgICAgICByZXR1cm4gIShocyh0aGlzKSB8fCB0aGlzLl9zdGF0ZS5h c3luY1RvKSB8fCBtcyh0aGlzKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGdldCBn b2FsKCkgew0KICAgICAgICAgICAgICByZXR1cm4gSGkodGhpcy5hbmltYXRpb24udG8pOw0K ICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZ2V0IHZlbG9jaXR5KCkgew0KICAgICAgICAg ICAgICBjb25zdCBlID0gd2wodGhpcyk7DQogICAgICAgICAgICAgIHJldHVybiBlIGluc3Rh bmNlb2YgRWwgPyBlLmxhc3RWZWxvY2l0eSB8fCAwIDogZS5nZXRQYXlsb2FkKCkubWFwKChl KSA9PiBlLmxhc3RWZWxvY2l0eSB8fCAwKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAg IGdldCBoYXNBbmltYXRlZCgpIHsNCiAgICAgICAgICAgICAgcmV0dXJuIHBzKHRoaXMpOw0K ICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZ2V0IGlzQW5pbWF0aW5nKCkgew0KICAgICAg ICAgICAgICByZXR1cm4gaHModGhpcyk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBn ZXQgaXNQYXVzZWQoKSB7DQogICAgICAgICAgICAgIHJldHVybiBtcyh0aGlzKTsNCiAgICAg ICAgICAgIH0NCiAgICAgICAgICAgIGdldCBpc0RlbGF5ZWQoKSB7DQogICAgICAgICAgICAg IHJldHVybiB0aGlzLl9zdGF0ZS5kZWxheWVkOw0KICAgICAgICAgICAgfQ0KICAgICAgICAg ICAgYWR2YW5jZShlKSB7DQogICAgICAgICAgICAgIGxldCB0ID0gITAsDQogICAgICAgICAg ICAgICAgbiA9ICExOw0KICAgICAgICAgICAgICBjb25zdCByID0gdGhpcy5hbmltYXRpb247 DQogICAgICAgICAgICAgIGxldCB7IHRvVmFsdWVzOiBvIH0gPSByOw0KICAgICAgICAgICAg ICBjb25zdCB7IGNvbmZpZzogYSB9ID0gciwNCiAgICAgICAgICAgICAgICBpID0gU2woci50 byk7DQogICAgICAgICAgICAgICFpICYmIFZpKHIudG8pICYmIChvID0gWWEoSGkoci50bykp KSwNCiAgICAgICAgICAgICAgICByLnZhbHVlcy5mb3JFYWNoKChsLCBzKSA9PiB7DQogICAg ICAgICAgICAgICAgICBpZiAobC5kb25lKSByZXR1cm47DQogICAgICAgICAgICAgICAgICBj b25zdCB1ID0gbC5jb25zdHJ1Y3RvciA9PSBDbCA/IDEgOiBpID8gaVtzXS5sYXN0UG9zaXRp b24gOiBvW3NdOw0KICAgICAgICAgICAgICAgICAgbGV0IGMgPSByLmltbWVkaWF0ZSwNCiAg ICAgICAgICAgICAgICAgICAgZCA9IHU7DQogICAgICAgICAgICAgICAgICBpZiAoIWMpIHsN CiAgICAgICAgICAgICAgICAgICAgaWYgKCgoZCA9IGwubGFzdFBvc2l0aW9uKSwgYS50ZW5z aW9uIDw9IDApKSByZXR1cm4gdm9pZCAobC5kb25lID0gITApOw0KICAgICAgICAgICAgICAg ICAgICBsZXQgdCA9IChsLmVsYXBzZWRUaW1lICs9IGUpOw0KICAgICAgICAgICAgICAgICAg ICBjb25zdCBuID0gci5mcm9tVmFsdWVzW3NdLA0KICAgICAgICAgICAgICAgICAgICAgIG8g PSBudWxsICE9IGwudjAgPyBsLnYwIDogKGwudjAgPSAkYS5hcnIoYS52ZWxvY2l0eSkgPyBh LnZlbG9jaXR5W3NdIDogYS52ZWxvY2l0eSk7DQogICAgICAgICAgICAgICAgICAgIGxldCBp Ow0KICAgICAgICAgICAgICAgICAgICBjb25zdCBmID0gYS5wcmVjaXNpb24gfHwgKG4gPT0g dSA/IDAuMDA1IDogTWF0aC5taW4oMSwgMC4wMDEgKiBNYXRoLmFicyh1IC0gbikpKTsNCiAg ICAgICAgICAgICAgICAgICAgaWYgKCRhLnVuZChhLmR1cmF0aW9uKSkNCiAgICAgICAgICAg ICAgICAgICAgICBpZiAoYS5kZWNheSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgY29u c3QgZSA9ICEwID09PSBhLmRlY2F5ID8gMC45OTggOiBhLmRlY2F5LA0KICAgICAgICAgICAg ICAgICAgICAgICAgICByID0gTWF0aC5leHAoLSgxIC0gZSkgKiB0KTsNCiAgICAgICAgICAg ICAgICAgICAgICAgIChkID0gbiArIChvIC8gKDEgLSBlKSkgKiAoMSAtIHIpKSwgKGMgPSBN YXRoLmFicyhsLmxhc3RQb3NpdGlvbiAtIGQpIDw9IGYpLCAoaSA9IG8gKiByKTsNCiAgICAg ICAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgaSA9 IG51bGwgPT0gbC5sYXN0VmVsb2NpdHkgPyBvIDogbC5sYXN0VmVsb2NpdHk7DQogICAgICAg ICAgICAgICAgICAgICAgICBjb25zdCB0ID0gYS5yZXN0VmVsb2NpdHkgfHwgZiAvIDEwLA0K ICAgICAgICAgICAgICAgICAgICAgICAgICByID0gYS5jbGFtcCA/IDAgOiBhLmJvdW5jZSwN CiAgICAgICAgICAgICAgICAgICAgICAgICAgcyA9ICEkYS51bmQociksDQogICAgICAgICAg ICAgICAgICAgICAgICAgIHAgPSBuID09IHUgPyBsLnYwID4gMCA6IG4gPCB1Ow0KICAgICAg ICAgICAgICAgICAgICAgICAgbGV0IGgsDQogICAgICAgICAgICAgICAgICAgICAgICAgIG0g PSAhMTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGcgPSAxLA0KICAgICAgICAg ICAgICAgICAgICAgICAgICB2ID0gTWF0aC5jZWlsKGUgLyBnKTsNCiAgICAgICAgICAgICAg ICAgICAgICAgIGZvciAobGV0IGUgPSAwOyBlIDwgdiAmJiAoKGggPSBNYXRoLmFicyhpKSA+ IHQpLCBoIHx8ICgoYyA9IE1hdGguYWJzKHUgLSBkKSA8PSBmKSwgIWMpKTsgKytlKSB7DQog ICAgICAgICAgICAgICAgICAgICAgICAgIHMgJiYgKChtID0gZCA9PSB1IHx8IGQgPiB1ID09 IHApLCBtICYmICgoaSA9IC1pICogciksIChkID0gdSkpKTsNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgKGkgKz0gKCgxZS02ICogLWEudGVuc2lvbiAqIChkIC0gdSkgKyAwLjAwMSAq IC1hLmZyaWN0aW9uICogaSkgLyBhLm1hc3MpICogZyksIChkICs9IGkgKiBnKTsNCiAgICAg ICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAg ICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgIGxldCByID0gMTsN CiAgICAgICAgICAgICAgICAgICAgICBhLmR1cmF0aW9uID4gMCAmJg0KICAgICAgICAgICAg ICAgICAgICAgICAgKHRoaXMuX21lbW9pemVkRHVyYXRpb24gIT09IGEuZHVyYXRpb24gJiYg KCh0aGlzLl9tZW1vaXplZER1cmF0aW9uID0gYS5kdXJhdGlvbiksIGwuZHVyYXRpb25Qcm9n cmVzcyA+IDAgJiYgKChsLmVsYXBzZWRUaW1lID0gYS5kdXJhdGlvbiAqIGwuZHVyYXRpb25Q cm9ncmVzcyksICh0ID0gbC5lbGFwc2VkVGltZSArPSBlKSkpLA0KICAgICAgICAgICAgICAg ICAgICAgICAgICAociA9IChhLnByb2dyZXNzIHx8IDApICsgdCAvIHRoaXMuX21lbW9pemVk RHVyYXRpb24pLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAociA9IHIgPiAxID8gMSA6 IHIgPCAwID8gMCA6IHIpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAobC5kdXJhdGlv blByb2dyZXNzID0gcikpLA0KICAgICAgICAgICAgICAgICAgICAgICAgKGQgPSBuICsgYS5l YXNpbmcocikgKiAodSAtIG4pKSwNCiAgICAgICAgICAgICAgICAgICAgICAgIChpID0gKGQg LSBsLmxhc3RQb3NpdGlvbikgLyBlKSwNCiAgICAgICAgICAgICAgICAgICAgICAgIChjID0g MSA9PSByKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAo bC5sYXN0VmVsb2NpdHkgPSBpKSwgTnVtYmVyLmlzTmFOKGQpICYmIChjb25zb2xlLndhcm4o IkdvdCBOYU4gd2hpbGUgYW5pbWF0aW5nOiIsIHRoaXMpLCAoYyA9ICEwKSk7DQogICAgICAg ICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICBpICYmICFpW3NdLmRvbmUgJiYgKGMg PSAhMSksIGMgPyAobC5kb25lID0gITApIDogKHQgPSAhMSksIGwuc2V0VmFsdWUoZCwgYS5y b3VuZCkgJiYgKG4gPSAhMCk7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAg IGNvbnN0IGwgPSB3bCh0aGlzKSwNCiAgICAgICAgICAgICAgICBzID0gbC5nZXRWYWx1ZSgp Ow0KICAgICAgICAgICAgICBpZiAodCkgew0KICAgICAgICAgICAgICAgIGNvbnN0IGUgPSBI aShyLnRvKTsNCiAgICAgICAgICAgICAgICAocyA9PT0gZSAmJiAhbikgfHwgYS5kZWNheSA/ IG4gJiYgYS5kZWNheSAmJiB0aGlzLl9vbkNoYW5nZShzKSA6IChsLnNldFZhbHVlKGUpLCB0 aGlzLl9vbkNoYW5nZShlKSksIHRoaXMuX3N0b3AoKTsNCiAgICAgICAgICAgICAgfSBlbHNl IG4gJiYgdGhpcy5fb25DaGFuZ2Uocyk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBz ZXQoZSkgew0KICAgICAgICAgICAgICByZXR1cm4gKA0KICAgICAgICAgICAgICAgIFBhLmJh dGNoZWRVcGRhdGVzKCgpID0+IHsNCiAgICAgICAgICAgICAgICAgIHRoaXMuX3N0b3AoKSwg dGhpcy5fZm9jdXMoZSksIHRoaXMuX3NldChlKTsNCiAgICAgICAgICAgICAgICB9KSwNCiAg ICAgICAgICAgICAgICB0aGlzDQogICAgICAgICAgICAgICk7DQogICAgICAgICAgICB9DQog ICAgICAgICAgICBwYXVzZSgpIHsNCiAgICAgICAgICAgICAgdGhpcy5fdXBkYXRlKHsgcGF1 c2U6ICEwIH0pOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmVzdW1lKCkgew0KICAg ICAgICAgICAgICB0aGlzLl91cGRhdGUoeyBwYXVzZTogITEgfSk7DQogICAgICAgICAgICB9 DQogICAgICAgICAgICBmaW5pc2goKSB7DQogICAgICAgICAgICAgIGlmIChocyh0aGlzKSkg ew0KICAgICAgICAgICAgICAgIGNvbnN0IHsgdG86IGUsIGNvbmZpZzogdCB9ID0gdGhpcy5h bmltYXRpb247DQogICAgICAgICAgICAgICAgUGEuYmF0Y2hlZFVwZGF0ZXMoKCkgPT4gew0K ICAgICAgICAgICAgICAgICAgdGhpcy5fb25TdGFydCgpLCB0LmRlY2F5IHx8IHRoaXMuX3Nl dChlLCAhMSksIHRoaXMuX3N0b3AoKTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAg ICAgICAgfQ0KICAgICAgICAgICAgICByZXR1cm4gdGhpczsNCiAgICAgICAgICAgIH0NCiAg ICAgICAgICAgIHVwZGF0ZShlKSB7DQogICAgICAgICAgICAgIHJldHVybiAodGhpcy5xdWV1 ZSB8fCAodGhpcy5xdWV1ZSA9IFtdKSkucHVzaChlKSwgdGhpczsNCiAgICAgICAgICAgIH0N CiAgICAgICAgICAgIHN0YXJ0KGUsIHQpIHsNCiAgICAgICAgICAgICAgbGV0IG47DQogICAg ICAgICAgICAgIHJldHVybiAkYS51bmQoZSkgPyAoKG4gPSB0aGlzLnF1ZXVlIHx8IFtdKSwg KHRoaXMucXVldWUgPSBbXSkpIDogKG4gPSBbJGEub2JqKGUpID8gZSA6IHsgLi4udCwgdG86 IGUgfV0pLCBQcm9taXNlLmFsbChuLm1hcCgoZSkgPT4gdGhpcy5fdXBkYXRlKGUpKSkudGhl bigoZSkgPT4gdHModGhpcywgZSkpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc3Rv cChlKSB7DQogICAgICAgICAgICAgIGNvbnN0IHsgdG86IHQgfSA9IHRoaXMuYW5pbWF0aW9u Ow0KICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fZm9jdXModGhpcy5nZXQoKSksIGlzKHRo aXMuX3N0YXRlLCBlICYmIHRoaXMuX2xhc3RDYWxsSWQpLCBQYS5iYXRjaGVkVXBkYXRlcygo KSA9PiB0aGlzLl9zdG9wKHQsIGUpKSwgdGhpczsNCiAgICAgICAgICAgIH0NCiAgICAgICAg ICAgIHJlc2V0KCkgew0KICAgICAgICAgICAgICB0aGlzLl91cGRhdGUoeyByZXNldDogITAg fSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBldmVudE9ic2VydmVkKGUpIHsNCiAg ICAgICAgICAgICAgImNoYW5nZSIgPT0gZS50eXBlID8gdGhpcy5fc3RhcnQoKSA6ICJwcmlv cml0eSIgPT0gZS50eXBlICYmICh0aGlzLnByaW9yaXR5ID0gZS5wcmlvcml0eSArIDEpOw0K ICAgICAgICAgICAgfQ0KICAgICAgICAgICAgX3ByZXBhcmVOb2RlKGUpIHsNCiAgICAgICAg ICAgICAgY29uc3QgdCA9IHRoaXMua2V5IHx8ICIiOw0KICAgICAgICAgICAgICBsZXQgeyB0 bzogbiwgZnJvbTogciB9ID0gZTsNCiAgICAgICAgICAgICAgKG4gPSAkYS5vYmoobikgPyBu W3RdIDogbiksIChudWxsID09IG4gfHwgJGwobikpICYmIChuID0gdm9pZCAwKSwgKHIgPSAk YS5vYmoocikgPyByW3RdIDogciksIG51bGwgPT0gciAmJiAociA9IHZvaWQgMCk7DQogICAg ICAgICAgICAgIGNvbnN0IG8gPSB7IHRvOiBuLCBmcm9tOiByIH07DQogICAgICAgICAgICAg IHJldHVybiBwcyh0aGlzKSB8fCAoZS5yZXZlcnNlICYmIChbbiwgcl0gPSBbciwgbl0pLCAo ciA9IEhpKHIpKSwgJGEudW5kKHIpID8gd2wodGhpcykgfHwgdGhpcy5fc2V0KG4pIDogdGhp cy5fc2V0KHIpKSwgbzsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIF91cGRhdGUoZSwg dCkgew0KICAgICAgICAgICAgICBsZXQgeyAuLi5uIH0gPSBlOw0KICAgICAgICAgICAgICBj b25zdCB7IGtleTogciwgZGVmYXVsdFByb3BzOiBvIH0gPSB0aGlzOw0KICAgICAgICAgICAg ICBuLmRlZmF1bHQgJiYNCiAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKA0KICAgICAg ICAgICAgICAgICAgbywNCiAgICAgICAgICAgICAgICAgIERsKG4sIChlLCB0KSA9PiAoL15v bi8udGVzdCh0KSA/IExsKGUsIHIpIDogZSkpDQogICAgICAgICAgICAgICAgKSwNCiAgICAg ICAgICAgICAgICBDcyh0aGlzLCBuLCAib25Qcm9wcyIpLA0KICAgICAgICAgICAgICAgIFJz KHRoaXMsICJvblByb3BzIiwgbiwgdGhpcyk7DQogICAgICAgICAgICAgIGNvbnN0IGEgPSB0 aGlzLl9wcmVwYXJlTm9kZShuKTsNCiAgICAgICAgICAgICAgaWYgKE9iamVjdC5pc0Zyb3pl bih0aGlzKSkgdGhyb3cgRXJyb3IoIkNhbm5vdCBhbmltYXRlIGEgYFNwcmluZ1ZhbHVlYCBv YmplY3QgdGhhdCBpcyBmcm96ZW4uIERpZCB5b3UgZm9yZ2V0IHRvIHBhc3MgeW91ciBjb21w b25lbnQgdG8gYGFuaW1hdGVkKC4uLilgIGJlZm9yZSBhbmltYXRpbmcgaXRzIHByb3BzPyIp Ow0KICAgICAgICAgICAgICBjb25zdCBpID0gdGhpcy5fc3RhdGU7DQogICAgICAgICAgICAg IHJldHVybiBlcygrK3RoaXMuX2xhc3RDYWxsSWQsIHsNCiAgICAgICAgICAgICAgICBrZXk6 IHIsDQogICAgICAgICAgICAgICAgcHJvcHM6IG4sDQogICAgICAgICAgICAgICAgZGVmYXVs dFByb3BzOiBvLA0KICAgICAgICAgICAgICAgIHN0YXRlOiBpLA0KICAgICAgICAgICAgICAg IGFjdGlvbnM6IHsNCiAgICAgICAgICAgICAgICAgIHBhdXNlOiAoKSA9PiB7DQogICAgICAg ICAgICAgICAgICAgIG1zKHRoaXMpIHx8ICh2cyh0aGlzLCAhMCksIGVpKGkucGF1c2VRdWV1 ZSksIFJzKHRoaXMsICJvblBhdXNlIiwgcnModGhpcywgYnModGhpcywgdGhpcy5hbmltYXRp b24udG8pKSwgdGhpcykpOw0KICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAg ICAgIHJlc3VtZTogKCkgPT4gew0KICAgICAgICAgICAgICAgICAgICBtcyh0aGlzKSAmJiAo dnModGhpcywgITEpLCBocyh0aGlzKSAmJiB0aGlzLl9yZXN1bWUoKSwgZWkoaS5yZXN1bWVR dWV1ZSksIFJzKHRoaXMsICJvblJlc3VtZSIsIHJzKHRoaXMsIGJzKHRoaXMsIHRoaXMuYW5p bWF0aW9uLnRvKSksIHRoaXMpKTsNCiAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAg ICAgICAgICBzdGFydDogdGhpcy5fbWVyZ2UuYmluZCh0aGlzLCBhKSwNCiAgICAgICAgICAg ICAgICB9LA0KICAgICAgICAgICAgICB9KS50aGVuKChlKSA9PiB7DQogICAgICAgICAgICAg ICAgaWYgKG4ubG9vcCAmJiBlLmZpbmlzaGVkICYmICghdCB8fCAhZS5ub29wKSkgew0KICAg ICAgICAgICAgICAgICAgY29uc3QgZSA9IHdzKG4pOw0KICAgICAgICAgICAgICAgICAgaWYg KGUpIHJldHVybiB0aGlzLl91cGRhdGUoZSwgITApOw0KICAgICAgICAgICAgICAgIH0NCiAg ICAgICAgICAgICAgICByZXR1cm4gZTsNCiAgICAgICAgICAgICAgfSk7DQogICAgICAgICAg ICB9DQogICAgICAgICAgICBfbWVyZ2UoZSwgdCwgbikgew0KICAgICAgICAgICAgICBpZiAo dC5jYW5jZWwpIHJldHVybiB0aGlzLnN0b3AoITApLCBuKG9zKHRoaXMpKTsNCiAgICAgICAg ICAgICAgY29uc3QgciA9ICEkYS51bmQoZS50byksDQogICAgICAgICAgICAgICAgbyA9ICEk YS51bmQoZS5mcm9tKTsNCiAgICAgICAgICAgICAgaWYgKHIgfHwgbykgew0KICAgICAgICAg ICAgICAgIGlmICghKHQuY2FsbElkID4gdGhpcy5fbGFzdFRvSWQpKSByZXR1cm4gbihvcyh0 aGlzKSk7DQogICAgICAgICAgICAgICAgdGhpcy5fbGFzdFRvSWQgPSB0LmNhbGxJZDsNCiAg ICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICBjb25zdCB7IGtleTogYSwgZGVmYXVsdFBy b3BzOiBpLCBhbmltYXRpb246IGwgfSA9IHRoaXMsDQogICAgICAgICAgICAgICAgeyB0bzog cywgZnJvbTogdSB9ID0gbDsNCiAgICAgICAgICAgICAgbGV0IHsgdG86IGMgPSBzLCBmcm9t OiBkID0gdSB9ID0gZTsNCiAgICAgICAgICAgICAgIW8gfHwgciB8fCAodC5kZWZhdWx0ICYm ICEkYS51bmQoYykpIHx8IChjID0gZCksIHQucmV2ZXJzZSAmJiAoW2MsIGRdID0gW2QsIGNd KTsNCiAgICAgICAgICAgICAgY29uc3QgZiA9ICFLYShkLCB1KTsNCiAgICAgICAgICAgICAg ZiAmJiAobC5mcm9tID0gZCksIChkID0gSGkoZCkpOw0KICAgICAgICAgICAgICBjb25zdCBw ID0gIUthKGMsIHMpOw0KICAgICAgICAgICAgICBwICYmIHRoaXMuX2ZvY3VzKGMpOw0KICAg ICAgICAgICAgICBjb25zdCBoID0gJGwodC50byksDQogICAgICAgICAgICAgICAgeyBjb25m aWc6IG0gfSA9IGwsDQogICAgICAgICAgICAgICAgeyBkZWNheTogZywgdmVsb2NpdHk6IHYg fSA9IG07DQogICAgICAgICAgICAgIChyIHx8IG8pICYmIChtLnZlbG9jaXR5ID0gMCksDQog ICAgICAgICAgICAgICAgdC5jb25maWcgJiYNCiAgICAgICAgICAgICAgICAhaCAmJg0KICAg ICAgICAgICAgICAgIChmdW5jdGlvbiAoZSwgdCwgbikgew0KICAgICAgICAgICAgICAgICAg biAmJiAoWGwoKG4gPSB7IC4uLm4gfSksIHQpLCAodCA9IHsgLi4ubiwgLi4udCB9KSksIFhs KGUsIHQpLCBPYmplY3QuYXNzaWduKGUsIHQpOw0KICAgICAgICAgICAgICAgICAgZm9yIChj b25zdCBpIGluIEdsKSBudWxsID09IGVbaV0gJiYgKGVbaV0gPSBHbFtpXSk7DQogICAgICAg ICAgICAgICAgICBsZXQgeyBmcmVxdWVuY3k6IHIsIGRhbXBpbmc6IG8gfSA9IGU7DQogICAg ICAgICAgICAgICAgICBjb25zdCB7IG1hc3M6IGEgfSA9IGU7DQogICAgICAgICAgICAgICAg ICAkYS51bmQocikgfHwgKHIgPCAwLjAxICYmIChyID0gMC4wMSksIG8gPCAwICYmIChvID0g MCksIChlLnRlbnNpb24gPSBNYXRoLnBvdygoMiAqIE1hdGguUEkpIC8gciwgMikgKiBhKSwg KGUuZnJpY3Rpb24gPSAoNCAqIE1hdGguUEkgKiBvICogYSkgLyByKSk7DQogICAgICAgICAg ICAgICAgfSkobSwgamwodC5jb25maWcsIGEpLCB0LmNvbmZpZyAhPT0gaS5jb25maWcgPyBq bChpLmNvbmZpZywgYSkgOiB2b2lkIDApOw0KICAgICAgICAgICAgICBsZXQgeSA9IHdsKHRo aXMpOw0KICAgICAgICAgICAgICBpZiAoIXkgfHwgJGEudW5kKGMpKSByZXR1cm4gbihycyh0 aGlzLCAhMCkpOw0KICAgICAgICAgICAgICBjb25zdCBiID0gJGEudW5kKHQucmVzZXQpID8g byAmJiAhdC5kZWZhdWx0IDogISRhLnVuZChkKSAmJiBJbCh0LnJlc2V0LCBhKSwNCiAgICAg ICAgICAgICAgICB3ID0gYiA/IGQgOiB0aGlzLmdldCgpLA0KICAgICAgICAgICAgICAgIHgg PSBIbChjKSwNCiAgICAgICAgICAgICAgICBTID0gJGEubnVtKHgpIHx8ICRhLmFycih4KSB8 fCBmbCh4KSwNCiAgICAgICAgICAgICAgICBrID0gIWggJiYgKCFTIHx8IElsKGkuaW1tZWRp YXRlIHx8IHQuaW1tZWRpYXRlLCBhKSk7DQogICAgICAgICAgICAgIGlmIChwKSB7DQogICAg ICAgICAgICAgICAgY29uc3QgZSA9IE5sKGMpOw0KICAgICAgICAgICAgICAgIGlmIChlICE9 PSB5LmNvbnN0cnVjdG9yKSB7DQogICAgICAgICAgICAgICAgICBpZiAoIWspIHRocm93IEVy cm9yKCJDYW5ub3QgYW5pbWF0ZSBiZXR3ZWVuICIuY29uY2F0KHkuY29uc3RydWN0b3IubmFt ZSwgIiBhbmQgIikuY29uY2F0KGUubmFtZSwgJywgYXMgdGhlICJ0byIgcHJvcCBzdWdnZXN0 cycpKTsNCiAgICAgICAgICAgICAgICAgIHkgPSB0aGlzLl9zZXQoeCk7DQogICAgICAgICAg ICAgICAgfQ0KICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgIGNvbnN0IEUgPSB5LmNv bnN0cnVjdG9yOw0KICAgICAgICAgICAgICBsZXQgQyA9IFZpKGMpLA0KICAgICAgICAgICAg ICAgIFIgPSAhMTsNCiAgICAgICAgICAgICAgaWYgKCFDKSB7DQogICAgICAgICAgICAgICAg Y29uc3QgZSA9IGIgfHwgKCFwcyh0aGlzKSAmJiBmKTsNCiAgICAgICAgICAgICAgICAocCB8 fCBlKSAmJiAoKFIgPSBLYShIbCh3KSwgeCkpLCAoQyA9ICFSKSksICgoS2EobC5pbW1lZGlh dGUsIGspIHx8IGspICYmIEthKG0uZGVjYXksIGcpICYmIEthKG0udmVsb2NpdHksIHYpKSB8 fCAoQyA9ICEwKTsNCiAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICBpZiAoDQogICAg ICAgICAgICAgICAgKFIgJiYgaHModGhpcykgJiYgKGwuY2hhbmdlZCAmJiAhYiA/IChDID0g ITApIDogQyB8fCB0aGlzLl9zdG9wKHMpKSwNCiAgICAgICAgICAgICAgICAgICFoICYmICgo QyB8fCBWaShzKSkgJiYgKChsLnZhbHVlcyA9IHkuZ2V0UGF5bG9hZCgpKSwgKGwudG9WYWx1 ZXMgPSBWaShjKSA/IG51bGwgOiBFID09IENsID8gWzFdIDogWWEoeCkpKSwgbC5pbW1lZGlh dGUgIT0gayAmJiAoKGwuaW1tZWRpYXRlID0gayksIGsgfHwgYiB8fCB0aGlzLl9zZXQocykp LCBDKSkNCiAgICAgICAgICAgICAgKSB7DQogICAgICAgICAgICAgICAgY29uc3QgeyBvblJl c3Q6IGUgfSA9IGw7DQogICAgICAgICAgICAgICAgUWEoRXMsIChlKSA9PiBDcyh0aGlzLCB0 LCBlKSk7DQogICAgICAgICAgICAgICAgY29uc3QgciA9IHJzKHRoaXMsIGJzKHRoaXMsIHMp KTsNCiAgICAgICAgICAgICAgICBlaSh0aGlzLl9wZW5kaW5nQ2FsbHMsIHIpLA0KICAgICAg ICAgICAgICAgICAgdGhpcy5fcGVuZGluZ0NhbGxzLmFkZChuKSwNCiAgICAgICAgICAgICAg ICAgIGwuY2hhbmdlZCAmJg0KICAgICAgICAgICAgICAgICAgUGEuYmF0Y2hlZFVwZGF0ZXMo KCkgPT4gew0KICAgICAgICAgICAgICAgICAgICB2YXIgdDsNCiAgICAgICAgICAgICAgICAg ICAgKChsLmNoYW5nZWQgPSAhYiksIG51bGwgPT09IGUgfHwgdm9pZCAwID09PSBlIHx8IGUo ciwgdGhpcyksIGIpID8gamwoaS5vblJlc3QsIHIpIDogbnVsbCA9PT0gKHQgPSBsLm9uU3Rh cnQpIHx8IHZvaWQgMCA9PT0gdCB8fCB0LmNhbGwobCwgciwgdGhpcyk7DQogICAgICAgICAg ICAgICAgICB9KTsNCiAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICBiICYmIHRoaXMu X3NldCh3KSwgaCA/IG4oYXModC50bywgdCwgdGhpcy5fc3RhdGUsIHRoaXMpKSA6IEMgPyB0 aGlzLl9zdGFydCgpIDogaHModGhpcykgJiYgIXAgPyB0aGlzLl9wZW5kaW5nQ2FsbHMuYWRk KG4pIDogbihucyh3KSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBfZm9jdXMoZSkg ew0KICAgICAgICAgICAgICBjb25zdCB0ID0gdGhpcy5hbmltYXRpb247DQogICAgICAgICAg ICAgIGUgIT09IHQudG8gJiYgKHFpKHRoaXMpICYmIHRoaXMuX2RldGFjaCgpLCAodC50byA9 IGUpLCBxaSh0aGlzKSAmJiB0aGlzLl9hdHRhY2goKSk7DQogICAgICAgICAgICB9DQogICAg ICAgICAgICBfYXR0YWNoKCkgew0KICAgICAgICAgICAgICBsZXQgZSA9IDA7DQogICAgICAg ICAgICAgIGNvbnN0IHsgdG86IHQgfSA9IHRoaXMuYW5pbWF0aW9uOw0KICAgICAgICAgICAg ICBWaSh0KSAmJiAoR2kodCwgdGhpcyksIHVzKHQpICYmIChlID0gdC5wcmlvcml0eSArIDEp KSwgKHRoaXMucHJpb3JpdHkgPSBlKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIF9k ZXRhY2goKSB7DQogICAgICAgICAgICAgIGNvbnN0IHsgdG86IGUgfSA9IHRoaXMuYW5pbWF0 aW9uOw0KICAgICAgICAgICAgICBWaShlKSAmJiBZaShlLCB0aGlzKTsNCiAgICAgICAgICAg IH0NCiAgICAgICAgICAgIF9zZXQoZSkgew0KICAgICAgICAgICAgICBsZXQgdCA9ICEoYXJn dW1lbnRzLmxlbmd0aCA+IDEgJiYgdm9pZCAwICE9PSBhcmd1bWVudHNbMV0pIHx8IGFyZ3Vt ZW50c1sxXTsNCiAgICAgICAgICAgICAgY29uc3QgbiA9IEhpKGUpOw0KICAgICAgICAgICAg ICBpZiAoISRhLnVuZChuKSkgew0KICAgICAgICAgICAgICAgIGNvbnN0IGUgPSB3bCh0aGlz KTsNCiAgICAgICAgICAgICAgICBpZiAoIWUgfHwgIUthKG4sIGUuZ2V0VmFsdWUoKSkpIHsN CiAgICAgICAgICAgICAgICAgIGNvbnN0IHIgPSBObChuKTsNCiAgICAgICAgICAgICAgICAg IGUgJiYgZS5jb25zdHJ1Y3RvciA9PSByID8gZS5zZXRWYWx1ZShuKSA6IHhsKHRoaXMsIHIu Y3JlYXRlKG4pKSwNCiAgICAgICAgICAgICAgICAgICAgZSAmJg0KICAgICAgICAgICAgICAg ICAgICBQYS5iYXRjaGVkVXBkYXRlcygoKSA9PiB7DQogICAgICAgICAgICAgICAgICAgICAg dGhpcy5fb25DaGFuZ2UobiwgdCk7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAg ICAgICAgICAgIH0NCiAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICByZXR1cm4gd2wo dGhpcyk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBfb25TdGFydCgpIHsNCiAgICAg ICAgICAgICAgY29uc3QgZSA9IHRoaXMuYW5pbWF0aW9uOw0KICAgICAgICAgICAgICBlLmNo YW5nZWQgfHwgKChlLmNoYW5nZWQgPSAhMCksIFJzKHRoaXMsICJvblN0YXJ0IiwgcnModGhp cywgYnModGhpcywgZS50bykpLCB0aGlzKSk7DQogICAgICAgICAgICB9DQogICAgICAgICAg ICBfb25DaGFuZ2UoZSwgdCkgew0KICAgICAgICAgICAgICB0IHx8ICh0aGlzLl9vblN0YXJ0 KCksIGpsKHRoaXMuYW5pbWF0aW9uLm9uQ2hhbmdlLCBlLCB0aGlzKSksIGpsKHRoaXMuZGVm YXVsdFByb3BzLm9uQ2hhbmdlLCBlLCB0aGlzKSwgc3VwZXIuX29uQ2hhbmdlKGUsIHQpOw0K ICAgICAgICAgICAgfQ0KICAgICAgICAgICAgX3N0YXJ0KCkgew0KICAgICAgICAgICAgICBj b25zdCBlID0gdGhpcy5hbmltYXRpb247DQogICAgICAgICAgICAgIHdsKHRoaXMpLnJlc2V0 KEhpKGUudG8pKSwgZS5pbW1lZGlhdGUgfHwgKGUuZnJvbVZhbHVlcyA9IGUudmFsdWVzLm1h cCgoZSkgPT4gZS5sYXN0UG9zaXRpb24pKSwgaHModGhpcykgfHwgKGdzKHRoaXMsICEwKSwg bXModGhpcykgfHwgdGhpcy5fcmVzdW1lKCkpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAg ICAgX3Jlc3VtZSgpIHsNCiAgICAgICAgICAgICAgUmEuc2tpcEFuaW1hdGlvbiA/IHRoaXMu ZmluaXNoKCkgOiBjaS5zdGFydCh0aGlzKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAg IF9zdG9wKGUsIHQpIHsNCiAgICAgICAgICAgICAgaWYgKGhzKHRoaXMpKSB7DQogICAgICAg ICAgICAgICAgZ3ModGhpcywgITEpOw0KICAgICAgICAgICAgICAgIGNvbnN0IG4gPSB0aGlz LmFuaW1hdGlvbjsNCiAgICAgICAgICAgICAgICBRYShuLnZhbHVlcywgKGUpID0+IHsNCiAg ICAgICAgICAgICAgICAgIGUuZG9uZSA9ICEwOw0KICAgICAgICAgICAgICAgIH0pLA0KICAg ICAgICAgICAgICAgICAgbi50b1ZhbHVlcyAmJiAobi5vbkNoYW5nZSA9IG4ub25QYXVzZSA9 IG4ub25SZXN1bWUgPSB2b2lkIDApLA0KICAgICAgICAgICAgICAgICAgJGkodGhpcywgeyB0 eXBlOiAiaWRsZSIsIHBhcmVudDogdGhpcyB9KTsNCiAgICAgICAgICAgICAgICBjb25zdCBy ID0gdCA/IG9zKHRoaXMuZ2V0KCkpIDogcnModGhpcy5nZXQoKSwgYnModGhpcywgbnVsbCAh PT0gZSAmJiB2b2lkIDAgIT09IGUgPyBlIDogbi50bykpOw0KICAgICAgICAgICAgICAgIGVp KHRoaXMuX3BlbmRpbmdDYWxscywgciksIG4uY2hhbmdlZCAmJiAoKG4uY2hhbmdlZCA9ICEx KSwgUnModGhpcywgIm9uUmVzdCIsIHIsIHRoaXMpKTsNCiAgICAgICAgICAgICAgfQ0KICAg ICAgICAgICAgfQ0KICAgICAgICAgIH07DQogICAgICAgIGZ1bmN0aW9uIGJzKGUsIHQpIHsN CiAgICAgICAgICBjb25zdCBuID0gSGwodCk7DQogICAgICAgICAgcmV0dXJuIEthKEhsKGUu Z2V0KCkpLCBuKTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiB3cyhlKSB7DQogICAg ICAgICAgbGV0IHQgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiB2b2lkIDAgIT09IGFyZ3Vt ZW50c1sxXSA/IGFyZ3VtZW50c1sxXSA6IGUubG9vcCwNCiAgICAgICAgICAgIG4gPSBhcmd1 bWVudHMubGVuZ3RoID4gMiAmJiB2b2lkIDAgIT09IGFyZ3VtZW50c1syXSA/IGFyZ3VtZW50 c1syXSA6IGUudG87DQogICAgICAgICAgY29uc3QgciA9IGpsKHQpOw0KICAgICAgICAgIGlm IChyKSB7DQogICAgICAgICAgICBjb25zdCBvID0gITAgIT09IHIgJiYgVmwociksDQogICAg ICAgICAgICAgIGEgPSAobyB8fCBlKS5yZXZlcnNlLA0KICAgICAgICAgICAgICBpID0gIW8g fHwgby5yZXNldDsNCiAgICAgICAgICAgIHJldHVybiB4cyh7IC4uLmUsIGxvb3A6IHQsIGRl ZmF1bHQ6ICExLCBwYXVzZTogdm9pZCAwLCB0bzogIWEgfHwgJGwobikgPyBuIDogdm9pZCAw LCBmcm9tOiBpID8gZS5mcm9tIDogdm9pZCAwLCByZXNldDogaSwgLi4ubyB9KTsNCiAgICAg ICAgICB9DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24geHMoZSkgew0KICAgICAgICAg IGNvbnN0IHsgdG86IHQsIGZyb206IG4gfSA9IChlID0gVmwoZSkpLA0KICAgICAgICAgICAg ciA9IG5ldyBTZXQoKTsNCiAgICAgICAgICByZXR1cm4gJGEub2JqKHQpICYmIGtzKHQsIHIp LCAkYS5vYmoobikgJiYga3MobiwgciksIChlLmtleXMgPSByLnNpemUgPyBBcnJheS5mcm9t KHIpIDogbnVsbCksIGU7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gU3MoZSkgew0K ICAgICAgICAgIGNvbnN0IHQgPSB4cyhlKTsNCiAgICAgICAgICByZXR1cm4gJGEudW5kKHQu ZGVmYXVsdCkgJiYgKHQuZGVmYXVsdCA9IERsKHQpKSwgdDsNCiAgICAgICAgfQ0KICAgICAg ICBmdW5jdGlvbiBrcyhlLCB0KSB7DQogICAgICAgICAgR2EoZSwgKGUsIG4pID0+IG51bGwg IT0gZSAmJiB0LmFkZChuKSk7DQogICAgICAgIH0NCiAgICAgICAgdmFyIEVzID0gWyJvblN0 YXJ0IiwgIm9uUmVzdCIsICJvbkNoYW5nZSIsICJvblBhdXNlIiwgIm9uUmVzdW1lIl07DQog ICAgICAgIGZ1bmN0aW9uIENzKGUsIHQsIG4pIHsNCiAgICAgICAgICBlLmFuaW1hdGlvbltu XSA9IHRbbl0gIT09IEZsKHQsIG4pID8gTGwodFtuXSwgZS5rZXkpIDogdm9pZCAwOw0KICAg ICAgICB9DQogICAgICAgIGZ1bmN0aW9uIFJzKGUsIHQpIHsNCiAgICAgICAgICBmb3IgKHZh ciBuLCByLCBvLCBhLCBpID0gYXJndW1lbnRzLmxlbmd0aCwgbCA9IG5ldyBBcnJheShpID4g MiA/IGkgLSAyIDogMCksIHMgPSAyOyBzIDwgaTsgcysrKSBsW3MgLSAyXSA9IGFyZ3VtZW50 c1tzXTsNCiAgICAgICAgICBudWxsID09PSAobiA9IChyID0gZS5hbmltYXRpb24pW3RdKSB8 fCB2b2lkIDAgPT09IG4gfHwgbi5jYWxsKHIsIC4uLmwpLCBudWxsID09PSAobyA9IChhID0g ZS5kZWZhdWx0UHJvcHMpW3RdKSB8fCB2b2lkIDAgPT09IG8gfHwgby5jYWxsKGEsIC4uLmwp Ow0KICAgICAgICB9DQogICAgICAgIHZhciBfcyA9IFsib25TdGFydCIsICJvbkNoYW5nZSIs ICJvblJlc3QiXSwNCiAgICAgICAgICBQcyA9IDEsDQogICAgICAgICAgT3MgPSBjbGFzcyB7 DQogICAgICAgICAgICBjb25zdHJ1Y3RvcihlLCB0KSB7DQogICAgICAgICAgICAgICh0aGlz LmlkID0gUHMrKyksDQogICAgICAgICAgICAgICAgKHRoaXMuc3ByaW5ncyA9IHt9KSwNCiAg ICAgICAgICAgICAgICAodGhpcy5xdWV1ZSA9IFtdKSwNCiAgICAgICAgICAgICAgICAodGhp cy5fbGFzdEFzeW5jSWQgPSAwKSwNCiAgICAgICAgICAgICAgICAodGhpcy5fYWN0aXZlID0g bmV3IFNldCgpKSwNCiAgICAgICAgICAgICAgICAodGhpcy5fY2hhbmdlZCA9IG5ldyBTZXQo KSksDQogICAgICAgICAgICAgICAgKHRoaXMuX3N0YXJ0ZWQgPSAhMSksDQogICAgICAgICAg ICAgICAgKHRoaXMuX3N0YXRlID0geyBwYXVzZWQ6ICExLCBwYXVzZVF1ZXVlOiBuZXcgU2V0 KCksIHJlc3VtZVF1ZXVlOiBuZXcgU2V0KCksIHRpbWVvdXRzOiBuZXcgU2V0KCkgfSksDQog ICAgICAgICAgICAgICAgKHRoaXMuX2V2ZW50cyA9IHsgb25TdGFydDogbmV3IE1hcCgpLCBv bkNoYW5nZTogbmV3IE1hcCgpLCBvblJlc3Q6IG5ldyBNYXAoKSB9KSwNCiAgICAgICAgICAg ICAgICAodGhpcy5fb25GcmFtZSA9IHRoaXMuX29uRnJhbWUuYmluZCh0aGlzKSksDQogICAg ICAgICAgICAgICAgdCAmJiAodGhpcy5fZmx1c2ggPSB0KSwNCiAgICAgICAgICAgICAgICBl ICYmIHRoaXMuc3RhcnQoeyBkZWZhdWx0OiAhMCwgLi4uZSB9KTsNCiAgICAgICAgICAgIH0N CiAgICAgICAgICAgIGdldCBpZGxlKCkgew0KICAgICAgICAgICAgICByZXR1cm4gIXRoaXMu X3N0YXRlLmFzeW5jVG8gJiYgT2JqZWN0LnZhbHVlcyh0aGlzLnNwcmluZ3MpLmV2ZXJ5KChl KSA9PiBlLmlkbGUgJiYgIWUuaXNEZWxheWVkICYmICFlLmlzUGF1c2VkKTsNCiAgICAgICAg ICAgIH0NCiAgICAgICAgICAgIGdldCBpdGVtKCkgew0KICAgICAgICAgICAgICByZXR1cm4g dGhpcy5faXRlbTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHNldCBpdGVtKGUpIHsN CiAgICAgICAgICAgICAgdGhpcy5faXRlbSA9IGU7DQogICAgICAgICAgICB9DQogICAgICAg ICAgICBnZXQoKSB7DQogICAgICAgICAgICAgIGNvbnN0IGUgPSB7fTsNCiAgICAgICAgICAg ICAgcmV0dXJuIHRoaXMuZWFjaCgodCwgbikgPT4gKGVbbl0gPSB0LmdldCgpKSksIGU7DQog ICAgICAgICAgICB9DQogICAgICAgICAgICBzZXQoZSkgew0KICAgICAgICAgICAgICBmb3Ig KGNvbnN0IHQgaW4gZSkgew0KICAgICAgICAgICAgICAgIGNvbnN0IG4gPSBlW3RdOw0KICAg ICAgICAgICAgICAgICRhLnVuZChuKSB8fCB0aGlzLnNwcmluZ3NbdF0uc2V0KG4pOw0KICAg ICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICB1cGRhdGUoZSkgew0K ICAgICAgICAgICAgICByZXR1cm4gZSAmJiB0aGlzLnF1ZXVlLnB1c2goeHMoZSkpLCB0aGlz Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc3RhcnQoZSkgew0KICAgICAgICAgICAg ICBsZXQgeyBxdWV1ZTogdCB9ID0gdGhpczsNCiAgICAgICAgICAgICAgcmV0dXJuIGUgPyAo dCA9IFlhKGUpLm1hcCh4cykpIDogKHRoaXMucXVldWUgPSBbXSksIHRoaXMuX2ZsdXNoID8g dGhpcy5fZmx1c2godGhpcywgdCkgOiAoSXModGhpcywgdCksIE5zKHRoaXMsIHQpKTsNCiAg ICAgICAgICAgIH0NCiAgICAgICAgICAgIHN0b3AoZSwgdCkgew0KICAgICAgICAgICAgICBp ZiAoKGUgIT09ICEhZSAmJiAodCA9IGUpLCB0KSkgew0KICAgICAgICAgICAgICAgIGNvbnN0 IG4gPSB0aGlzLnNwcmluZ3M7DQogICAgICAgICAgICAgICAgUWEoWWEodCksICh0KSA9PiBu W3RdLnN0b3AoISFlKSk7DQogICAgICAgICAgICAgIH0gZWxzZSBpcyh0aGlzLl9zdGF0ZSwg dGhpcy5fbGFzdEFzeW5jSWQpLCB0aGlzLmVhY2goKHQpID0+IHQuc3RvcCghIWUpKTsNCiAg ICAgICAgICAgICAgcmV0dXJuIHRoaXM7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBw YXVzZShlKSB7DQogICAgICAgICAgICAgIGlmICgkYS51bmQoZSkpIHRoaXMuc3RhcnQoeyBw YXVzZTogITAgfSk7DQogICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIGNv bnN0IHQgPSB0aGlzLnNwcmluZ3M7DQogICAgICAgICAgICAgICAgUWEoWWEoZSksIChlKSA9 PiB0W2VdLnBhdXNlKCkpOw0KICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgIHJldHVy biB0aGlzOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmVzdW1lKGUpIHsNCiAgICAg ICAgICAgICAgaWYgKCRhLnVuZChlKSkgdGhpcy5zdGFydCh7IHBhdXNlOiAhMSB9KTsNCiAg ICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgY29uc3QgdCA9IHRoaXMuc3By aW5nczsNCiAgICAgICAgICAgICAgICBRYShZYShlKSwgKGUpID0+IHRbZV0ucmVzdW1lKCkp Ow0KICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgIHJldHVybiB0aGlzOw0KICAgICAg ICAgICAgfQ0KICAgICAgICAgICAgZWFjaChlKSB7DQogICAgICAgICAgICAgIEdhKHRoaXMu c3ByaW5ncywgZSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBfb25GcmFtZSgpIHsN CiAgICAgICAgICAgICAgY29uc3QgeyBvblN0YXJ0OiBlLCBvbkNoYW5nZTogdCwgb25SZXN0 OiBuIH0gPSB0aGlzLl9ldmVudHMsDQogICAgICAgICAgICAgICAgciA9IHRoaXMuX2FjdGl2 ZS5zaXplID4gMCwNCiAgICAgICAgICAgICAgICBvID0gdGhpcy5fY2hhbmdlZC5zaXplID4g MDsNCiAgICAgICAgICAgICAgKChyICYmICF0aGlzLl9zdGFydGVkKSB8fCAobyAmJiAhdGhp cy5fc3RhcnRlZCkpICYmDQogICAgICAgICAgICAgICAgKCh0aGlzLl9zdGFydGVkID0gITAp LA0KICAgICAgICAgICAgICAgICAgWGEoZSwgKGUpID0+IHsNCiAgICAgICAgICAgICAgICAg ICAgbGV0IFt0LCBuXSA9IGU7DQogICAgICAgICAgICAgICAgICAgIChuLnZhbHVlID0gdGhp cy5nZXQoKSksIHQobiwgdGhpcywgdGhpcy5faXRlbSk7DQogICAgICAgICAgICAgICAgICB9 KSk7DQogICAgICAgICAgICAgIGNvbnN0IGEgPSAhciAmJiB0aGlzLl9zdGFydGVkLA0KICAg ICAgICAgICAgICAgIGkgPSBvIHx8IChhICYmIG4uc2l6ZSkgPyB0aGlzLmdldCgpIDogbnVs bDsNCiAgICAgICAgICAgICAgbyAmJg0KICAgICAgICAgICAgICAgIHQuc2l6ZSAmJg0KICAg ICAgICAgICAgICAgIFhhKHQsIChlKSA9PiB7DQogICAgICAgICAgICAgICAgICBsZXQgW3Qs IG5dID0gZTsNCiAgICAgICAgICAgICAgICAgIChuLnZhbHVlID0gaSksIHQobiwgdGhpcywg dGhpcy5faXRlbSk7DQogICAgICAgICAgICAgICAgfSksDQogICAgICAgICAgICAgICAgYSAm Jg0KICAgICAgICAgICAgICAgICgodGhpcy5fc3RhcnRlZCA9ICExKSwNCiAgICAgICAgICAg ICAgICAgIFhhKG4sIChlKSA9PiB7DQogICAgICAgICAgICAgICAgICAgIGxldCBbdCwgbl0g PSBlOw0KICAgICAgICAgICAgICAgICAgICAobi52YWx1ZSA9IGkpLCB0KG4sIHRoaXMsIHRo aXMuX2l0ZW0pOw0KICAgICAgICAgICAgICAgICAgfSkpOw0KICAgICAgICAgICAgfQ0KICAg ICAgICAgICAgZXZlbnRPYnNlcnZlZChlKSB7DQogICAgICAgICAgICAgIGlmICgiY2hhbmdl IiA9PSBlLnR5cGUpIHRoaXMuX2NoYW5nZWQuYWRkKGUucGFyZW50KSwgZS5pZGxlIHx8IHRo aXMuX2FjdGl2ZS5hZGQoZS5wYXJlbnQpOw0KICAgICAgICAgICAgICBlbHNlIHsNCiAgICAg ICAgICAgICAgICBpZiAoImlkbGUiICE9IGUudHlwZSkgcmV0dXJuOw0KICAgICAgICAgICAg ICAgIHRoaXMuX2FjdGl2ZS5kZWxldGUoZS5wYXJlbnQpOw0KICAgICAgICAgICAgICB9DQog ICAgICAgICAgICAgIFBhLm9uRnJhbWUodGhpcy5fb25GcmFtZSk7DQogICAgICAgICAgICB9 DQogICAgICAgICAgfTsNCiAgICAgICAgZnVuY3Rpb24gTnMoZSwgdCkgew0KICAgICAgICAg IHJldHVybiBQcm9taXNlLmFsbCh0Lm1hcCgodCkgPT4gVHMoZSwgdCkpKS50aGVuKCh0KSA9 PiB0cyhlLCB0KSk7DQogICAgICAgIH0NCiAgICAgICAgYXN5bmMgZnVuY3Rpb24gVHMoZSwg dCwgbikgew0KICAgICAgICAgIGNvbnN0IHsga2V5czogciwgdG86IG8sIGZyb206IGEsIGxv b3A6IGksIG9uUmVzdDogbCwgb25SZXNvbHZlOiBzIH0gPSB0LA0KICAgICAgICAgICAgdSA9 ICRhLm9iaih0LmRlZmF1bHQpICYmIHQuZGVmYXVsdDsNCiAgICAgICAgICBpICYmICh0Lmxv b3AgPSAhMSksICExID09PSBvICYmICh0LnRvID0gbnVsbCksICExID09PSBhICYmICh0LmZy b20gPSBudWxsKTsNCiAgICAgICAgICBjb25zdCBjID0gJGEuYXJyKG8pIHx8ICRhLmZ1bihv KSA/IG8gOiB2b2lkIDA7DQogICAgICAgICAgYw0KICAgICAgICAgICAgPyAoKHQudG8gPSB2 b2lkIDApLCAodC5vblJlc3QgPSB2b2lkIDApLCB1ICYmICh1Lm9uUmVzdCA9IHZvaWQgMCkp DQogICAgICAgICAgICA6IFFhKF9zLCAobikgPT4gew0KICAgICAgICAgICAgICBjb25zdCBy ID0gdFtuXTsNCiAgICAgICAgICAgICAgaWYgKCRhLmZ1bihyKSkgew0KICAgICAgICAgICAg ICAgIGNvbnN0IG8gPSBlLl9ldmVudHNbbl07DQogICAgICAgICAgICAgICAgKHRbbl0gPSAo ZSkgPT4gew0KICAgICAgICAgICAgICAgICAgbGV0IHsgZmluaXNoZWQ6IHQsIGNhbmNlbGxl ZDogbiB9ID0gZTsNCiAgICAgICAgICAgICAgICAgIGNvbnN0IGEgPSBvLmdldChyKTsNCiAg ICAgICAgICAgICAgICAgIGEgPyAodCB8fCAoYS5maW5pc2hlZCA9ICExKSwgbiAmJiAoYS5j YW5jZWxsZWQgPSAhMCkpIDogby5zZXQociwgeyB2YWx1ZTogbnVsbCwgZmluaXNoZWQ6IHQg fHwgITEsIGNhbmNlbGxlZDogbiB8fCAhMSB9KTsNCiAgICAgICAgICAgICAgICB9KSwNCiAg ICAgICAgICAgICAgICAgIHUgJiYgKHVbbl0gPSB0W25dKTsNCiAgICAgICAgICAgICAgfQ0K ICAgICAgICAgICAgfSk7DQogICAgICAgICAgY29uc3QgZCA9IGUuX3N0YXRlOw0KICAgICAg ICAgIHQucGF1c2UgPT09ICFkLnBhdXNlZCA/ICgoZC5wYXVzZWQgPSB0LnBhdXNlKSwgZWko dC5wYXVzZSA/IGQucGF1c2VRdWV1ZSA6IGQucmVzdW1lUXVldWUpKSA6IGQucGF1c2VkICYm ICh0LnBhdXNlID0gITApOw0KICAgICAgICAgIGNvbnN0IGYgPSAociB8fCBPYmplY3Qua2V5 cyhlLnNwcmluZ3MpKS5tYXAoKG4pID0+IGUuc3ByaW5nc1tuXS5zdGFydCh0KSksDQogICAg ICAgICAgICBwID0gITAgPT09IHQuY2FuY2VsIHx8ICEwID09PSBGbCh0LCAiY2FuY2VsIik7 DQogICAgICAgICAgKGMgfHwgKHAgJiYgZC5hc3luY0lkKSkgJiYNCiAgICAgICAgICAgIGYu cHVzaCgNCiAgICAgICAgICAgICAgZXMoKytlLl9sYXN0QXN5bmNJZCwgew0KICAgICAgICAg ICAgICAgIHByb3BzOiB0LA0KICAgICAgICAgICAgICAgIHN0YXRlOiBkLA0KICAgICAgICAg ICAgICAgIGFjdGlvbnM6IHsNCiAgICAgICAgICAgICAgICAgIHBhdXNlOiBxYSwNCiAgICAg ICAgICAgICAgICAgIHJlc3VtZTogcWEsDQogICAgICAgICAgICAgICAgICBzdGFydCh0LCBu KSB7DQogICAgICAgICAgICAgICAgICAgIHAgPyAoaXMoZCwgZS5fbGFzdEFzeW5jSWQpLCBu KG9zKGUpKSkgOiAoKHQub25SZXN0ID0gbCksIG4oYXMoYywgdCwgZCwgZSkpKTsNCiAgICAg ICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgfSkN CiAgICAgICAgICAgICksDQogICAgICAgICAgICBkLnBhdXNlZCAmJg0KICAgICAgICAgICAg KGF3YWl0IG5ldyBQcm9taXNlKChlKSA9PiB7DQogICAgICAgICAgICAgIGQucmVzdW1lUXVl dWUuYWRkKGUpOw0KICAgICAgICAgICAgfSkpOw0KICAgICAgICAgIGNvbnN0IGggPSB0cyhl LCBhd2FpdCBQcm9taXNlLmFsbChmKSk7DQogICAgICAgICAgaWYgKGkgJiYgaC5maW5pc2hl ZCAmJiAoIW4gfHwgIWgubm9vcCkpIHsNCiAgICAgICAgICAgIGNvbnN0IG4gPSB3cyh0LCBp LCBvKTsNCiAgICAgICAgICAgIGlmIChuKSByZXR1cm4gSXMoZSwgW25dKSwgVHMoZSwgbiwg ITApOw0KICAgICAgICAgIH0NCiAgICAgICAgICByZXR1cm4gcyAmJiBQYS5iYXRjaGVkVXBk YXRlcygoKSA9PiBzKGgsIGUsIGUuaXRlbSkpLCBoOw0KICAgICAgICB9DQogICAgICAgIGZ1 bmN0aW9uIEFzKGUsIHQpIHsNCiAgICAgICAgICBjb25zdCBuID0geyAuLi5lLnNwcmluZ3Mg fTsNCiAgICAgICAgICByZXR1cm4gKA0KICAgICAgICAgICAgdCAmJg0KICAgICAgICAgICAg UWEoWWEodCksIChlKSA9PiB7DQogICAgICAgICAgICAgICRhLnVuZChlLmtleXMpICYmIChl ID0geHMoZSkpLCAkYS5vYmooZS50bykgfHwgKGUgPSB7IC4uLmUsIHRvOiB2b2lkIDAgfSks IGpzKG4sIGUsIChlKSA9PiB6cyhlKSk7DQogICAgICAgICAgICB9KSwNCiAgICAgICAgICAg IE1zKGUsIG4pLA0KICAgICAgICAgICAgbg0KICAgICAgICAgICk7DQogICAgICAgIH0NCiAg ICAgICAgZnVuY3Rpb24gTXMoZSwgdCkgew0KICAgICAgICAgIEdhKHQsICh0LCBuKSA9PiB7 DQogICAgICAgICAgICBlLnNwcmluZ3Nbbl0gfHwgKChlLnNwcmluZ3Nbbl0gPSB0KSwgR2ko dCwgZSkpOw0KICAgICAgICAgIH0pOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIHpz KGUsIHQpIHsNCiAgICAgICAgICBjb25zdCBuID0gbmV3IHlzKCk7DQogICAgICAgICAgcmV0 dXJuIChuLmtleSA9IGUpLCB0ICYmIEdpKG4sIHQpLCBuOw0KICAgICAgICB9DQogICAgICAg IGZ1bmN0aW9uIGpzKGUsIHQsIG4pIHsNCiAgICAgICAgICB0LmtleXMgJiYNCiAgICAgICAg ICAgIFFhKHQua2V5cywgKHIpID0+IHsNCiAgICAgICAgICAgICAgKGVbcl0gfHwgKGVbcl0g PSBuKHIpKSkuX3ByZXBhcmVOb2RlKHQpOw0KICAgICAgICAgICAgfSk7DQogICAgICAgIH0N CiAgICAgICAgZnVuY3Rpb24gSXMoZSwgdCkgew0KICAgICAgICAgIFFhKHQsICh0KSA9PiB7 DQogICAgICAgICAgICBqcyhlLnNwcmluZ3MsIHQsICh0KSA9PiB6cyh0LCBlKSk7DQogICAg ICAgICAgfSk7DQogICAgICAgIH0NCiAgICAgICAgdmFyIExzLA0KICAgICAgICAgIEZzLA0K ICAgICAgICAgIEJzID0gKGUpID0+IHsNCiAgICAgICAgICAgIGxldCB7IGNoaWxkcmVuOiBu LCAuLi5yIH0gPSBlOw0KICAgICAgICAgICAgY29uc3QgbyA9ICgwLCB0LnVzZUNvbnRleHQp KERzKSwNCiAgICAgICAgICAgICAgYSA9IHIucGF1c2UgfHwgISFvLnBhdXNlLA0KICAgICAg ICAgICAgICBpID0gci5pbW1lZGlhdGUgfHwgISFvLmltbWVkaWF0ZTsNCiAgICAgICAgICAg IHIgPSAoZnVuY3Rpb24gKGUsIG4pIHsNCiAgICAgICAgICAgICAgY29uc3QgW3JdID0gKDAs IHQudXNlU3RhdGUpKCgpID0+ICh7IGlucHV0czogbiwgcmVzdWx0OiBlKCkgfSkpLA0KICAg ICAgICAgICAgICAgIG8gPSAoMCwgdC51c2VSZWYpKCksDQogICAgICAgICAgICAgICAgYSA9 IG8uY3VycmVudDsNCiAgICAgICAgICAgICAgbGV0IGkgPSBhOw0KICAgICAgICAgICAgICBp ZiAoaSkgew0KICAgICAgICAgICAgICAgIGNvbnN0IHQgPSBCb29sZWFuKA0KICAgICAgICAg ICAgICAgICAgbiAmJg0KICAgICAgICAgICAgICAgICAgaS5pbnB1dHMgJiYNCiAgICAgICAg ICAgICAgICAgIChmdW5jdGlvbiAoZSwgdCkgew0KICAgICAgICAgICAgICAgICAgICBpZiAo ZS5sZW5ndGggIT09IHQubGVuZ3RoKSByZXR1cm4gITE7DQogICAgICAgICAgICAgICAgICAg IGZvciAobGV0IG4gPSAwOyBuIDwgZS5sZW5ndGg7IG4rKykgaWYgKGVbbl0gIT09IHRbbl0p IHJldHVybiAhMTsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICEwOw0KICAgICAgICAg ICAgICAgICAgfSkobiwgaS5pbnB1dHMpDQogICAgICAgICAgICAgICAgKTsNCiAgICAgICAg ICAgICAgICB0IHx8IChpID0geyBpbnB1dHM6IG4sIHJlc3VsdDogZSgpIH0pOw0KICAgICAg ICAgICAgICB9IGVsc2UgaSA9IHI7DQogICAgICAgICAgICAgIHJldHVybiAoDQogICAgICAg ICAgICAgICAgKDAsIHQudXNlRWZmZWN0KSgoKSA9PiB7DQogICAgICAgICAgICAgICAgICAo by5jdXJyZW50ID0gaSksIGEgPT0gciAmJiAoci5pbnB1dHMgPSByLnJlc3VsdCA9IHZvaWQg MCk7DQogICAgICAgICAgICAgICAgfSwgW2ldKSwNCiAgICAgICAgICAgICAgICBpLnJlc3Vs dA0KICAgICAgICAgICAgICApOw0KICAgICAgICAgICAgfSkoKCkgPT4gKHsgcGF1c2U6IGEs IGltbWVkaWF0ZTogaSB9KSwgW2EsIGldKTsNCiAgICAgICAgICAgIGNvbnN0IHsgUHJvdmlk ZXI6IGwgfSA9IERzOw0KICAgICAgICAgICAgcmV0dXJuIHQuY3JlYXRlRWxlbWVudChsLCB7 IHZhbHVlOiByIH0sIG4pOw0KICAgICAgICAgIH0sDQogICAgICAgICAgRHMgPSAoKExzID0g QnMpLCAoRnMgPSB7fSksIE9iamVjdC5hc3NpZ24oTHMsIHQuY3JlYXRlQ29udGV4dChGcykp LCAoTHMuUHJvdmlkZXIuX2NvbnRleHQgPSBMcyksIChMcy5Db25zdW1lci5fY29udGV4dCA9 IExzKSwgTHMpOw0KICAgICAgICAoQnMuUHJvdmlkZXIgPSBEcy5Qcm92aWRlciksIChCcy5D b25zdW1lciA9IERzLkNvbnN1bWVyKTsNCiAgICAgICAgdmFyIFVzID0gKCkgPT4gew0KICAg ICAgICAgIGNvbnN0IGUgPSBbXSwNCiAgICAgICAgICAgIHQgPSBmdW5jdGlvbiAodCkgew0K ICAgICAgICAgICAgICBkbCgiIi5jb25jYXQoc2wsICdEaXJlY3RseSBjYWxsaW5nIHN0YXJ0 IGluc3RlYWQgb2YgdXNpbmcgdGhlIGFwaSBvYmplY3QgaXMgZGVwcmVjYXRlZCBpbiB2OSAo dXNlICIuc3RhcnQiIGluc3RlYWQpLCB0aGlzIHdpbGwgYmUgcmVtb3ZlZCBpbiBsYXRlciAw LlguMCB2ZXJzaW9ucycpKTsNCiAgICAgICAgICAgICAgY29uc3QgciA9IFtdOw0KICAgICAg ICAgICAgICByZXR1cm4gKA0KICAgICAgICAgICAgICAgIFFhKGUsIChlLCBvKSA9PiB7DQog ICAgICAgICAgICAgICAgICBpZiAoJGEudW5kKHQpKSByLnB1c2goZS5zdGFydCgpKTsNCiAg ICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICBjb25zdCBhID0g bih0LCBlLCBvKTsNCiAgICAgICAgICAgICAgICAgICAgYSAmJiByLnB1c2goZS5zdGFydChh KSk7DQogICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfSksDQogICAgICAg ICAgICAgICAgcg0KICAgICAgICAgICAgICApOw0KICAgICAgICAgICAgfTsNCiAgICAgICAg ICAodC5jdXJyZW50ID0gZSksDQogICAgICAgICAgICAodC5hZGQgPSBmdW5jdGlvbiAodCkg ew0KICAgICAgICAgICAgICBlLmluY2x1ZGVzKHQpIHx8IGUucHVzaCh0KTsNCiAgICAgICAg ICAgIH0pLA0KICAgICAgICAgICAgKHQuZGVsZXRlID0gZnVuY3Rpb24gKHQpIHsNCiAgICAg ICAgICAgICAgY29uc3QgbiA9IGUuaW5kZXhPZih0KTsNCiAgICAgICAgICAgICAgfm4gJiYg ZS5zcGxpY2UobiwgMSk7DQogICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICh0LnBhdXNl ID0gZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICByZXR1cm4gUWEoZSwgKGUpID0+IGUu cGF1c2UoLi4uYXJndW1lbnRzKSksIHRoaXM7DQogICAgICAgICAgICB9KSwNCiAgICAgICAg ICAgICh0LnJlc3VtZSA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgcmV0dXJuIFFh KGUsIChlKSA9PiBlLnJlc3VtZSguLi5hcmd1bWVudHMpKSwgdGhpczsNCiAgICAgICAgICAg IH0pLA0KICAgICAgICAgICAgKHQuc2V0ID0gZnVuY3Rpb24gKHQpIHsNCiAgICAgICAgICAg ICAgUWEoZSwgKGUsIG4pID0+IHsNCiAgICAgICAgICAgICAgICBjb25zdCByID0gJGEuZnVu KHQpID8gdChuLCBlKSA6IHQ7DQogICAgICAgICAgICAgICAgciAmJiBlLnNldChyKTsNCiAg ICAgICAgICAgICAgfSk7DQogICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICh0LnN0YXJ0 ID0gZnVuY3Rpb24gKHQpIHsNCiAgICAgICAgICAgICAgY29uc3QgbiA9IFtdOw0KICAgICAg ICAgICAgICByZXR1cm4gKA0KICAgICAgICAgICAgICAgIFFhKGUsIChlLCByKSA9PiB7DQog ICAgICAgICAgICAgICAgICBpZiAoJGEudW5kKHQpKSBuLnB1c2goZS5zdGFydCgpKTsNCiAg ICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICBjb25zdCBvID0g dGhpcy5fZ2V0UHJvcHModCwgZSwgcik7DQogICAgICAgICAgICAgICAgICAgIG8gJiYgbi5w dXNoKGUuc3RhcnQobykpOw0KICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAg IH0pLA0KICAgICAgICAgICAgICAgIG4NCiAgICAgICAgICAgICAgKTsNCiAgICAgICAgICAg IH0pLA0KICAgICAgICAgICAgKHQuc3RvcCA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAg ICAgcmV0dXJuIFFhKGUsIChlKSA9PiBlLnN0b3AoLi4uYXJndW1lbnRzKSksIHRoaXM7DQog ICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICh0LnVwZGF0ZSA9IGZ1bmN0aW9uICh0KSB7 DQogICAgICAgICAgICAgIHJldHVybiBRYShlLCAoZSwgbikgPT4gZS51cGRhdGUodGhpcy5f Z2V0UHJvcHModCwgZSwgbikpKSwgdGhpczsNCiAgICAgICAgICAgIH0pOw0KICAgICAgICAg IGNvbnN0IG4gPSBmdW5jdGlvbiAoZSwgdCwgbikgew0KICAgICAgICAgICAgcmV0dXJuICRh LmZ1bihlKSA/IGUobiwgdCkgOiBlOw0KICAgICAgICAgIH07DQogICAgICAgICAgcmV0dXJu ICh0Ll9nZXRQcm9wcyA9IG4pLCB0Ow0KICAgICAgICB9Ow0KICAgICAgICBmdW5jdGlvbiBX cyhlLCBuLCByKSB7DQogICAgICAgICAgY29uc3QgbyA9ICRhLmZ1bihuKSAmJiBuOw0KICAg ICAgICAgIG8gJiYgIXIgJiYgKHIgPSBbXSk7DQogICAgICAgICAgY29uc3QgYSA9ICgwLCB0 LnVzZU1lbW8pKCgpID0+IChvIHx8IDMgPT0gYXJndW1lbnRzLmxlbmd0aCA/IFVzKCkgOiB2 b2lkIDApLCBbXSksDQogICAgICAgICAgICBpID0gKDAsIHQudXNlUmVmKSgwKSwNCiAgICAg ICAgICAgIGwgPSBtbCgpLA0KICAgICAgICAgICAgcyA9ICgwLCB0LnVzZU1lbW8pKA0KICAg ICAgICAgICAgICAoKSA9PiAoew0KICAgICAgICAgICAgICAgIGN0cmxzOiBbXSwNCiAgICAg ICAgICAgICAgICBxdWV1ZTogW10sDQogICAgICAgICAgICAgICAgZmx1c2goZSwgdCkgew0K ICAgICAgICAgICAgICAgICAgY29uc3QgbiA9IEFzKGUsIHQpOw0KICAgICAgICAgICAgICAg ICAgcmV0dXJuIGkuY3VycmVudCA+IDAgJiYgIXMucXVldWUubGVuZ3RoICYmICFPYmplY3Qu a2V5cyhuKS5zb21lKCh0KSA9PiAhZS5zcHJpbmdzW3RdKQ0KICAgICAgICAgICAgICAgICAg ICA/IE5zKGUsIHQpDQogICAgICAgICAgICAgICAgICAgIDogbmV3IFByb21pc2UoKHIpID0+ IHsNCiAgICAgICAgICAgICAgICAgICAgICBNcyhlLCBuKSwNCiAgICAgICAgICAgICAgICAg ICAgICAgIHMucXVldWUucHVzaCgoKSA9PiB7DQogICAgICAgICAgICAgICAgICAgICAgICAg IHIoTnMoZSwgdCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfSksDQogICAgICAgICAg ICAgICAgICAgICAgICBsKCk7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAg ICAgICAgIH0sDQogICAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAgICBbXQ0KICAgICAg ICAgICAgKSwNCiAgICAgICAgICAgIHUgPSAoMCwgdC51c2VSZWYpKFsuLi5zLmN0cmxzXSks DQogICAgICAgICAgICBjID0gW10sDQogICAgICAgICAgICBkID0geWwoZSkgfHwgMDsNCiAg ICAgICAgICBmdW5jdGlvbiBmKGUsIHQpIHsNCiAgICAgICAgICAgIGZvciAobGV0IHIgPSBl OyByIDwgdDsgcisrKSB7DQogICAgICAgICAgICAgIGNvbnN0IGUgPSB1LmN1cnJlbnRbcl0g fHwgKHUuY3VycmVudFtyXSA9IG5ldyBPcyhudWxsLCBzLmZsdXNoKSksDQogICAgICAgICAg ICAgICAgdCA9IG8gPyBvKHIsIGUpIDogbltyXTsNCiAgICAgICAgICAgICAgdCAmJiAoY1ty XSA9IFNzKHQpKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICB9DQogICAgICAgICAgKDAs IHQudXNlTWVtbykoKCkgPT4gew0KICAgICAgICAgICAgUWEodS5jdXJyZW50LnNsaWNlKGUs IGQpLCAoZSkgPT4gew0KICAgICAgICAgICAgICBLbChlLCBhKSwgZS5zdG9wKCEwKTsNCiAg ICAgICAgICAgIH0pLA0KICAgICAgICAgICAgICAodS5jdXJyZW50Lmxlbmd0aCA9IGUpLA0K ICAgICAgICAgICAgICBmKGQsIGUpOw0KICAgICAgICAgIH0sIFtlXSksDQogICAgICAgICAg ICAoMCwgdC51c2VNZW1vKSgoKSA9PiB7DQogICAgICAgICAgICAgIGYoMCwgTWF0aC5taW4o ZCwgZSkpOw0KICAgICAgICAgICAgfSwgcik7DQogICAgICAgICAgY29uc3QgcCA9IHUuY3Vy cmVudC5tYXAoKGUsIHQpID0+IEFzKGUsIGNbdF0pKSwNCiAgICAgICAgICAgIGggPSAoMCwg dC51c2VDb250ZXh0KShCcyksDQogICAgICAgICAgICBtID0geWwoaCksDQogICAgICAgICAg ICBnID0gaCAhPT0gbSAmJiBxbChoKTsNCiAgICAgICAgICBwbCgoKSA9PiB7DQogICAgICAg ICAgICBpLmN1cnJlbnQrKywgKHMuY3RybHMgPSB1LmN1cnJlbnQpOw0KICAgICAgICAgICAg Y29uc3QgeyBxdWV1ZTogZSB9ID0gczsNCiAgICAgICAgICAgIGUubGVuZ3RoICYmICgocy5x dWV1ZSA9IFtdKSwgUWEoZSwgKGUpID0+IGUoKSkpLA0KICAgICAgICAgICAgICBRYSh1LmN1 cnJlbnQsIChlLCB0KSA9PiB7DQogICAgICAgICAgICAgICAgbnVsbCA9PT0gYSB8fCB2b2lk IDAgPT09IGEgfHwgYS5hZGQoZSksIGcgJiYgZS5zdGFydCh7IGRlZmF1bHQ6IGggfSk7DQog ICAgICAgICAgICAgICAgY29uc3QgbiA9IGNbdF07DQogICAgICAgICAgICAgICAgbiAmJiAo UWwoZSwgbi5yZWYpLCBlLnJlZiA/IGUucXVldWUucHVzaChuKSA6IGUuc3RhcnQobikpOw0K ICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICB9KSwNCiAgICAgICAgICAgIGdsKCgpID0+ ICgpID0+IHsNCiAgICAgICAgICAgICAgUWEocy5jdHJscywgKGUpID0+IGUuc3RvcCghMCkp Ow0KICAgICAgICAgICAgfSk7DQogICAgICAgICAgY29uc3QgdiA9IHAubWFwKChlKSA9PiAo eyAuLi5lIH0pKTsNCiAgICAgICAgICByZXR1cm4gYSA/IFt2LCBhXSA6IHY7DQogICAgICAg IH0NCiAgICAgICAgZnVuY3Rpb24gVnMoZSwgdCkgew0KICAgICAgICAgIGNvbnN0IG4gPSAk YS5mdW4oZSksDQogICAgICAgICAgICByZXN1bHQgPSBXcygxLCBuID8gZSA6IFtlXSwgbiA/ IHQgfHwgW10gOiB0KTsNCg0KICAgICAgICAgIGxldCByLCBvOw0KDQogICAgICAgICAgaWYg KEFycmF5LmlzQXJyYXkocmVzdWx0KSAmJiBBcnJheS5pc0FycmF5KHJlc3VsdFswXSkgJiYg cmVzdWx0WzBdLmxlbmd0aCA9PT0gMSkgew0KICAgICAgICAgICAgW3JdID0gcmVzdWx0WzBd Ow0KICAgICAgICAgICAgbyA9IHJlc3VsdFsxXTsNCiAgICAgICAgICB9IGVsc2Ugew0KICAg ICAgICAgICAgY29uc29sZS5lcnJvcigiVW5leHBlY3RlZCBzdHJ1Y3R1cmUgZnJvbSBXcyBm dW5jdGlvbjoiLCByZXN1bHQpOw0KDQogICAgICAgICAgfQ0KDQogICAgICAgICAgcmV0dXJu IG4gfHwgYXJndW1lbnRzLmxlbmd0aCA9PT0gMiA/IFtyLCBvXSA6IHI7DQogICAgICAgIH0N CiAgICAgICAgdmFyIEhzID0gY2xhc3MgZXh0ZW5kcyBkcyB7DQogICAgICAgICAgY29uc3Ry dWN0b3IoZSwgdCkgew0KICAgICAgICAgICAgc3VwZXIoKSwgKHRoaXMuc291cmNlID0gZSks ICh0aGlzLmlkbGUgPSAhMCksICh0aGlzLl9hY3RpdmUgPSBuZXcgU2V0KCkpLCAodGhpcy5j YWxjID0gTWkoLi4udCkpOw0KICAgICAgICAgICAgY29uc3QgbiA9IHRoaXMuX2dldCgpLA0K ICAgICAgICAgICAgICByID0gTmwobik7DQogICAgICAgICAgICB4bCh0aGlzLCByLmNyZWF0 ZShuKSk7DQogICAgICAgICAgfQ0KICAgICAgICAgIGFkdmFuY2UoZSkgew0KICAgICAgICAg ICAgY29uc3QgdCA9IHRoaXMuX2dldCgpOw0KICAgICAgICAgICAgS2EodCwgdGhpcy5nZXQo KSkgfHwgKHdsKHRoaXMpLnNldFZhbHVlKHQpLCB0aGlzLl9vbkNoYW5nZSh0LCB0aGlzLmlk bGUpKSwgIXRoaXMuaWRsZSAmJiAkcyh0aGlzLl9hY3RpdmUpICYmIEtzKHRoaXMpOw0KICAg ICAgICAgIH0NCiAgICAgICAgICBfZ2V0KCkgew0KICAgICAgICAgICAgY29uc3QgZSA9ICRh LmFycih0aGlzLnNvdXJjZSkgPyB0aGlzLnNvdXJjZS5tYXAoSGkpIDogWWEoSGkodGhpcy5z b3VyY2UpKTsNCiAgICAgICAgICAgIHJldHVybiB0aGlzLmNhbGMoLi4uZSk7DQogICAgICAg ICAgfQ0KICAgICAgICAgIF9zdGFydCgpIHsNCiAgICAgICAgICAgIHRoaXMuaWRsZSAmJg0K ICAgICAgICAgICAgICAhJHModGhpcy5fYWN0aXZlKSAmJg0KICAgICAgICAgICAgICAoKHRo aXMuaWRsZSA9ICExKSwNCiAgICAgICAgICAgICAgICBRYShTbCh0aGlzKSwgKGUpID0+IHsN CiAgICAgICAgICAgICAgICAgIGUuZG9uZSA9ICExOw0KICAgICAgICAgICAgICAgIH0pLA0K ICAgICAgICAgICAgICAgIFJhLnNraXBBbmltYXRpb24gPyAoUGEuYmF0Y2hlZFVwZGF0ZXMo KCkgPT4gdGhpcy5hZHZhbmNlKCkpLCBLcyh0aGlzKSkgOiBjaS5zdGFydCh0aGlzKSk7DQog ICAgICAgICAgfQ0KICAgICAgICAgIF9hdHRhY2goKSB7DQogICAgICAgICAgICBsZXQgZSA9 IDE7DQogICAgICAgICAgICBRYShZYSh0aGlzLnNvdXJjZSksICh0KSA9PiB7DQogICAgICAg ICAgICAgIFZpKHQpICYmIEdpKHQsIHRoaXMpLCB1cyh0KSAmJiAodC5pZGxlIHx8IHRoaXMu X2FjdGl2ZS5hZGQodCksIChlID0gTWF0aC5tYXgoZSwgdC5wcmlvcml0eSArIDEpKSk7DQog ICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgKHRoaXMucHJpb3JpdHkgPSBlKSwNCiAg ICAgICAgICAgICAgdGhpcy5fc3RhcnQoKTsNCiAgICAgICAgICB9DQogICAgICAgICAgX2Rl dGFjaCgpIHsNCiAgICAgICAgICAgIFFhKFlhKHRoaXMuc291cmNlKSwgKGUpID0+IHsNCiAg ICAgICAgICAgICAgVmkoZSkgJiYgWWkoZSwgdGhpcyk7DQogICAgICAgICAgICB9KSwNCiAg ICAgICAgICAgICAgdGhpcy5fYWN0aXZlLmNsZWFyKCksDQogICAgICAgICAgICAgIEtzKHRo aXMpOw0KICAgICAgICAgIH0NCiAgICAgICAgICBldmVudE9ic2VydmVkKGUpIHsNCiAgICAg ICAgICAgICJjaGFuZ2UiID09IGUudHlwZQ0KICAgICAgICAgICAgICA/IGUuaWRsZQ0KICAg ICAgICAgICAgICAgID8gdGhpcy5hZHZhbmNlKCkNCiAgICAgICAgICAgICAgICA6ICh0aGlz Ll9hY3RpdmUuYWRkKGUucGFyZW50KSwgdGhpcy5fc3RhcnQoKSkNCiAgICAgICAgICAgICAg OiAiaWRsZSIgPT0gZS50eXBlDQogICAgICAgICAgICAgICAgPyB0aGlzLl9hY3RpdmUuZGVs ZXRlKGUucGFyZW50KQ0KICAgICAgICAgICAgICAgIDogInByaW9yaXR5IiA9PSBlLnR5cGUg JiYgKHRoaXMucHJpb3JpdHkgPSBZYSh0aGlzLnNvdXJjZSkucmVkdWNlKChlLCB0KSA9PiBN YXRoLm1heChlLCAodXModCkgPyB0LnByaW9yaXR5IDogMCkgKyAxKSwgMCkpOw0KICAgICAg ICAgIH0NCiAgICAgICAgfTsNCiAgICAgICAgZnVuY3Rpb24gcXMoZSkgew0KICAgICAgICAg IHJldHVybiAhMSAhPT0gZS5pZGxlOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uICRz KGUpIHsNCiAgICAgICAgICByZXR1cm4gIWUuc2l6ZSB8fCBBcnJheS5mcm9tKGUpLmV2ZXJ5 KHFzKTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBLcyhlKSB7DQogICAgICAgICAg ZS5pZGxlIHx8DQogICAgICAgICAgICAoKGUuaWRsZSA9ICEwKSwNCiAgICAgICAgICAgICAg UWEoU2woZSksIChlKSA9PiB7DQogICAgICAgICAgICAgICAgZS5kb25lID0gITA7DQogICAg ICAgICAgICAgIH0pLA0KICAgICAgICAgICAgICAkaShlLCB7IHR5cGU6ICJpZGxlIiwgcGFy ZW50OiBlIH0pKTsNCiAgICAgICAgfQ0KICAgICAgICBSYS5hc3NpZ24oeyBjcmVhdGVTdHJp bmdJbnRlcnBvbGF0b3I6IGxsLCB0bzogKGUsIHQpID0+IG5ldyBIcyhlLCB0KSB9KTsNCiAg ICAgICAgY2kuYWR2YW5jZTsNCiAgICAgICAgdmFyIFFzID0gL14tLS87DQogICAgICAgIGZ1 bmN0aW9uIEdzKGUsIHQpIHsNCiAgICAgICAgICByZXR1cm4gbnVsbCA9PSB0IHx8ICJib29s ZWFuIiA9PT0gdHlwZW9mIHQgfHwgIiIgPT09IHQgPyAiIiA6ICJudW1iZXIiICE9PSB0eXBl b2YgdCB8fCAwID09PSB0IHx8IFFzLnRlc3QoZSkgfHwgKFhzLmhhc093blByb3BlcnR5KGUp ICYmIFhzW2VdKSA/ICgiIiArIHQpLnRyaW0oKSA6IHQgKyAicHgiOw0KICAgICAgICB9DQog ICAgICAgIHZhciBZcyA9IHt9Ow0KICAgICAgICB2YXIgWHMgPSB7DQogICAgICAgICAgYW5p bWF0aW9uSXRlcmF0aW9uQ291bnQ6ICEwLA0KICAgICAgICAgIGJvcmRlckltYWdlT3V0c2V0 OiAhMCwNCiAgICAgICAgICBib3JkZXJJbWFnZVNsaWNlOiAhMCwNCiAgICAgICAgICBib3Jk ZXJJbWFnZVdpZHRoOiAhMCwNCiAgICAgICAgICBib3hGbGV4OiAhMCwNCiAgICAgICAgICBi b3hGbGV4R3JvdXA6ICEwLA0KICAgICAgICAgIGJveE9yZGluYWxHcm91cDogITAsDQogICAg ICAgICAgY29sdW1uQ291bnQ6ICEwLA0KICAgICAgICAgIGNvbHVtbnM6ICEwLA0KICAgICAg ICAgIGZsZXg6ICEwLA0KICAgICAgICAgIGZsZXhHcm93OiAhMCwNCiAgICAgICAgICBmbGV4 UG9zaXRpdmU6ICEwLA0KICAgICAgICAgIGZsZXhTaHJpbms6ICEwLA0KICAgICAgICAgIGZs ZXhOZWdhdGl2ZTogITAsDQogICAgICAgICAgZmxleE9yZGVyOiAhMCwNCiAgICAgICAgICBn cmlkUm93OiAhMCwNCiAgICAgICAgICBncmlkUm93RW5kOiAhMCwNCiAgICAgICAgICBncmlk Um93U3BhbjogITAsDQogICAgICAgICAgZ3JpZFJvd1N0YXJ0OiAhMCwNCiAgICAgICAgICBn cmlkQ29sdW1uOiAhMCwNCiAgICAgICAgICBncmlkQ29sdW1uRW5kOiAhMCwNCiAgICAgICAg ICBncmlkQ29sdW1uU3BhbjogITAsDQogICAgICAgICAgZ3JpZENvbHVtblN0YXJ0OiAhMCwN CiAgICAgICAgICBmb250V2VpZ2h0OiAhMCwNCiAgICAgICAgICBsaW5lQ2xhbXA6ICEwLA0K ICAgICAgICAgIGxpbmVIZWlnaHQ6ICEwLA0KICAgICAgICAgIG9wYWNpdHk6ICEwLA0KICAg ICAgICAgIG9yZGVyOiAhMCwNCiAgICAgICAgICBvcnBoYW5zOiAhMCwNCiAgICAgICAgICB0 YWJTaXplOiAhMCwNCiAgICAgICAgICB3aWRvd3M6ICEwLA0KICAgICAgICAgIHpJbmRleDog ITAsDQogICAgICAgICAgem9vbTogITAsDQogICAgICAgICAgZmlsbE9wYWNpdHk6ICEwLA0K ICAgICAgICAgIGZsb29kT3BhY2l0eTogITAsDQogICAgICAgICAgc3RvcE9wYWNpdHk6ICEw LA0KICAgICAgICAgIHN0cm9rZURhc2hhcnJheTogITAsDQogICAgICAgICAgc3Ryb2tlRGFz aG9mZnNldDogITAsDQogICAgICAgICAgc3Ryb2tlTWl0ZXJsaW1pdDogITAsDQogICAgICAg ICAgc3Ryb2tlT3BhY2l0eTogITAsDQogICAgICAgICAgc3Ryb2tlV2lkdGg6ICEwLA0KICAg ICAgICB9LA0KICAgICAgICAgIFpzID0gWyJXZWJraXQiLCAiTXMiLCAiTW96IiwgIk8iXTsN CiAgICAgICAgWHMgPSBPYmplY3Qua2V5cyhYcykucmVkdWNlKChlLCB0KSA9PiAoWnMuZm9y RWFjaCgobikgPT4gKGVbKChlLCB0KSA9PiBlICsgdC5jaGFyQXQoMCkudG9VcHBlckNhc2Uo KSArIHQuc3Vic3RyaW5nKDEpKShuLCB0KV0gPSBlW3RdKSksIGUpLCBYcyk7DQogICAgICAg IHZhciBKcyA9IC9eKG1hdHJpeHx0cmFuc2xhdGV8c2NhbGV8cm90YXRlfHNrZXcpLywNCiAg ICAgICAgICBldSA9IC9eKHRyYW5zbGF0ZSkvLA0KICAgICAgICAgIHR1ID0gL14ocm90YXRl fHNrZXcpLywNCiAgICAgICAgICBudSA9IChlLCB0KSA9PiAoJGEubnVtKGUpICYmIDAgIT09 IGUgPyBlICsgdCA6IGUpLA0KICAgICAgICAgIHJ1ID0gKGUsIHQpID0+ICgkYS5hcnIoZSkg PyBlLmV2ZXJ5KChlKSA9PiBydShlLCB0KSkgOiAkYS5udW0oZSkgPyBlID09PSB0IDogcGFy c2VGbG9hdChlKSA9PT0gdCksDQogICAgICAgICAgb3UgPSBjbGFzcyBleHRlbmRzIF9sIHsN CiAgICAgICAgICAgIGNvbnN0cnVjdG9yKGUpIHsNCiAgICAgICAgICAgICAgbGV0IHsgeDog dCwgeTogbiwgejogciwgLi4ubyB9ID0gZTsNCiAgICAgICAgICAgICAgY29uc3QgYSA9IFtd LA0KICAgICAgICAgICAgICAgIGkgPSBbXTsNCiAgICAgICAgICAgICAgKHQgfHwgbiB8fCBy KSAmJiAoYS5wdXNoKFt0IHx8IDAsIG4gfHwgMCwgciB8fCAwXSksIGkucHVzaCgoZSkgPT4g WyJ0cmFuc2xhdGUzZCgiLmNvbmNhdChlLm1hcCgoZSkgPT4gbnUoZSwgInB4IikpLmpvaW4o IiwiKSwgIikiKSwgcnUoZSwgMCldKSksDQogICAgICAgICAgICAgICAgR2EobywgKGUsIHQp ID0+IHsNCiAgICAgICAgICAgICAgICAgIGlmICgidHJhbnNmb3JtIiA9PT0gdCkgYS5wdXNo KFtlIHx8ICIiXSksIGkucHVzaCgoZSkgPT4gW2UsICIiID09PSBlXSk7DQogICAgICAgICAg ICAgICAgICBlbHNlIGlmIChKcy50ZXN0KHQpKSB7DQogICAgICAgICAgICAgICAgICAgIGlm ICgoZGVsZXRlIG9bdF0sICRhLnVuZChlKSkpIHJldHVybjsNCiAgICAgICAgICAgICAgICAg ICAgY29uc3QgbiA9IGV1LnRlc3QodCkgPyAicHgiIDogdHUudGVzdCh0KSA/ICJkZWciIDog IiI7DQogICAgICAgICAgICAgICAgICAgIGEucHVzaChZYShlKSksDQogICAgICAgICAgICAg ICAgICAgICAgaS5wdXNoKA0KICAgICAgICAgICAgICAgICAgICAgICAgInJvdGF0ZTNkIiA9 PT0gdA0KICAgICAgICAgICAgICAgICAgICAgICAgICA/IChlKSA9PiB7DQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgbGV0IFt0LCByLCBvLCBhXSA9IGU7DQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgcmV0dXJuIFsicm90YXRlM2QoIi5jb25jYXQodCwgIiwiKS5jb25j YXQociwgIiwiKS5jb25jYXQobywgIiwiKS5jb25jYXQobnUoYSwgbiksICIpIiksIHJ1KGEs IDApXTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAg ICAgICAgICA6IChlKSA9PiBbIiIuY29uY2F0KHQsICIoIikuY29uY2F0KGUubWFwKChlKSA9 PiBudShlLCBuKSkuam9pbigiLCIpLCAiKSIpLCBydShlLCB0LnN0YXJ0c1dpdGgoInNjYWxl IikgPyAxIDogMCldDQogICAgICAgICAgICAgICAgICAgICAgKTsNCiAgICAgICAgICAgICAg ICAgIH0NCiAgICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgICBhLmxlbmd0aCAm JiAoby50cmFuc2Zvcm0gPSBuZXcgYXUoYSwgaSkpLA0KICAgICAgICAgICAgICAgIHN1cGVy KG8pOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgIH0sDQogICAgICAgICAgYXUgPSBjbGFz cyBleHRlbmRzIEtpIHsNCiAgICAgICAgICAgIGNvbnN0cnVjdG9yKGUsIHQpIHsNCiAgICAg ICAgICAgICAgc3VwZXIoKSwgKHRoaXMuaW5wdXRzID0gZSksICh0aGlzLnRyYW5zZm9ybXMg PSB0KSwgKHRoaXMuX3ZhbHVlID0gbnVsbCk7DQogICAgICAgICAgICB9DQogICAgICAgICAg ICBnZXQoKSB7DQogICAgICAgICAgICAgIHJldHVybiB0aGlzLl92YWx1ZSB8fCAodGhpcy5f dmFsdWUgPSB0aGlzLl9nZXQoKSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBfZ2V0 KCkgew0KICAgICAgICAgICAgICBsZXQgZSA9ICIiLA0KICAgICAgICAgICAgICAgIHQgPSAh MDsNCiAgICAgICAgICAgICAgcmV0dXJuICgNCiAgICAgICAgICAgICAgICBRYSh0aGlzLmlu cHV0cywgKG4sIHIpID0+IHsNCiAgICAgICAgICAgICAgICAgIGNvbnN0IG8gPSBIaShuWzBd KSwNCiAgICAgICAgICAgICAgICAgICAgW2EsIGldID0gdGhpcy50cmFuc2Zvcm1zW3JdKCRh LmFycihvKSA/IG8gOiBuLm1hcChIaSkpOw0KICAgICAgICAgICAgICAgICAgKGUgKz0gIiAi ICsgYSksICh0ID0gdCAmJiBpKTsNCiAgICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAg ICAgICB0ID8gIm5vbmUiIDogZQ0KICAgICAgICAgICAgICApOw0KICAgICAgICAgICAgfQ0K ICAgICAgICAgICAgb2JzZXJ2ZXJBZGRlZChlKSB7DQogICAgICAgICAgICAgIDEgPT0gZSAm JiBRYSh0aGlzLmlucHV0cywgKGUpID0+IFFhKGUsIChlKSA9PiBWaShlKSAmJiBHaShlLCB0 aGlzKSkpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgb2JzZXJ2ZXJSZW1vdmVkKGUp IHsNCiAgICAgICAgICAgICAgMCA9PSBlICYmIFFhKHRoaXMuaW5wdXRzLCAoZSkgPT4gUWEo ZSwgKGUpID0+IFZpKGUpICYmIFlpKGUsIHRoaXMpKSk7DQogICAgICAgICAgICB9DQogICAg ICAgICAgICBldmVudE9ic2VydmVkKGUpIHsNCiAgICAgICAgICAgICAgImNoYW5nZSIgPT0g ZS50eXBlICYmICh0aGlzLl92YWx1ZSA9IG51bGwpLCAkaSh0aGlzLCBlKTsNCiAgICAgICAg ICAgIH0NCiAgICAgICAgICB9Ow0KICAgICAgICBSYS5hc3NpZ24oew0KICAgICAgICAgIGJh dGNoZWRVcGRhdGVzOiBGby51bnN0YWJsZV9iYXRjaGVkVXBkYXRlcywNCiAgICAgICAgICBj cmVhdGVTdHJpbmdJbnRlcnBvbGF0b3I6IGxsLA0KICAgICAgICAgIGNvbG9yczogew0KICAg ICAgICAgICAgdHJhbnNwYXJlbnQ6IDAsDQogICAgICAgICAgICBhbGljZWJsdWU6IDQwNDI4 NTAzMDMsDQogICAgICAgICAgICBhbnRpcXVld2hpdGU6IDQyMDk3NjAyNTUsDQogICAgICAg ICAgICBhcXVhOiAxNjc3NzIxNSwNCiAgICAgICAgICAgIGFxdWFtYXJpbmU6IDIxNDc0NzI2 MzksDQogICAgICAgICAgICBhenVyZTogNDA0MzMwOTA1NSwNCiAgICAgICAgICAgIGJlaWdl OiA0MTI2NTMwODE1LA0KICAgICAgICAgICAgYmlzcXVlOiA0MjkzMTgyNzE5LA0KICAgICAg ICAgICAgYmxhY2s6IDI1NSwNCiAgICAgICAgICAgIGJsYW5jaGVkYWxtb25kOiA0MjkzNjQz Nzc1LA0KICAgICAgICAgICAgYmx1ZTogNjU1MzUsDQogICAgICAgICAgICBibHVldmlvbGV0 OiAyMzE4MTMxOTY3LA0KICAgICAgICAgICAgYnJvd246IDI3NzEwMDQxNTksDQogICAgICAg ICAgICBidXJseXdvb2Q6IDM3MzY2MzUzOTEsDQogICAgICAgICAgICBidXJudHNpZW5uYTog MzkzNDE1MDE0MywNCiAgICAgICAgICAgIGNhZGV0Ymx1ZTogMTYwNDIzMTQyMywNCiAgICAg ICAgICAgIGNoYXJ0cmV1c2U6IDIxNDc0MTgzNjcsDQogICAgICAgICAgICBjaG9jb2xhdGU6 IDM1MzAxMDQ1NzUsDQogICAgICAgICAgICBjb3JhbDogNDI4NjUzMzg4NywNCiAgICAgICAg ICAgIGNvcm5mbG93ZXJibHVlOiAxNjg3NTQ3MzkxLA0KICAgICAgICAgICAgY29ybnNpbGs6 IDQyOTQ0OTk1ODMsDQogICAgICAgICAgICBjcmltc29uOiAzNjkyMzEzODU1LA0KICAgICAg ICAgICAgY3lhbjogMTY3NzcyMTUsDQogICAgICAgICAgICBkYXJrYmx1ZTogMzU4MzksDQog ICAgICAgICAgICBkYXJrY3lhbjogOTE0NTM0MywNCiAgICAgICAgICAgIGRhcmtnb2xkZW5y b2Q6IDMwOTU3OTI2MzksDQogICAgICAgICAgICBkYXJrZ3JheTogMjg0NjQ2ODYwNywNCiAg ICAgICAgICAgIGRhcmtncmVlbjogNjU1Mzg1NSwNCiAgICAgICAgICAgIGRhcmtncmV5OiAy ODQ2NDY4NjA3LA0KICAgICAgICAgICAgZGFya2toYWtpOiAzMTgyOTE0NTU5LA0KICAgICAg ICAgICAgZGFya21hZ2VudGE6IDIzMzIwNjg4NjMsDQogICAgICAgICAgICBkYXJrb2xpdmVn cmVlbjogMTQzMzA4Nzk5OSwNCiAgICAgICAgICAgIGRhcmtvcmFuZ2U6IDQyODczNjUzNzUs DQogICAgICAgICAgICBkYXJrb3JjaGlkOiAyNTcwMjQzMzI3LA0KICAgICAgICAgICAgZGFy a3JlZDogMjMzMjAzMzI3OSwNCiAgICAgICAgICAgIGRhcmtzYWxtb246IDM5MTg5NTMyMTUs DQogICAgICAgICAgICBkYXJrc2VhZ3JlZW46IDI0MTE0OTk1MTksDQogICAgICAgICAgICBk YXJrc2xhdGVibHVlOiAxMjExOTkzMDg3LA0KICAgICAgICAgICAgZGFya3NsYXRlZ3JheTog NzkzNzI2OTc1LA0KICAgICAgICAgICAgZGFya3NsYXRlZ3JleTogNzkzNzI2OTc1LA0KICAg ICAgICAgICAgZGFya3R1cnF1b2lzZTogMTM1NTQxNzUsDQogICAgICAgICAgICBkYXJrdmlv bGV0OiAyNDgzMDgyMjM5LA0KICAgICAgICAgICAgZGVlcHBpbms6IDQyNzk1Mzg2ODcsDQog ICAgICAgICAgICBkZWVwc2t5Ymx1ZTogMTI1ODI5MTEsDQogICAgICAgICAgICBkaW1ncmF5 OiAxNzY4NTE2MDk1LA0KICAgICAgICAgICAgZGltZ3JleTogMTc2ODUxNjA5NSwNCiAgICAg ICAgICAgIGRvZGdlcmJsdWU6IDUxMjgxOTE5OSwNCiAgICAgICAgICAgIGZpcmVicmljazog Mjk4ODU4MTYzMSwNCiAgICAgICAgICAgIGZsb3JhbHdoaXRlOiA0Mjk0NjM1Nzc1LA0KICAg ICAgICAgICAgZm9yZXN0Z3JlZW46IDU3OTU0MzgwNywNCiAgICAgICAgICAgIGZ1Y2hzaWE6 IDQyNzgyNTU2MTUsDQogICAgICAgICAgICBnYWluc2Jvcm86IDM3MDU0NjIwMTUsDQogICAg ICAgICAgICBnaG9zdHdoaXRlOiA0MTc3MDY4MDMxLA0KICAgICAgICAgICAgZ29sZDogNDI5 MjI4MDU3NSwNCiAgICAgICAgICAgIGdvbGRlbnJvZDogMzY2ODI1NDk3NSwNCiAgICAgICAg ICAgIGdyYXk6IDIxNTU5MDUyNzksDQogICAgICAgICAgICBncmVlbjogODM4ODg2MywNCiAg ICAgICAgICAgIGdyZWVueWVsbG93OiAyOTE5MTgyMzM1LA0KICAgICAgICAgICAgZ3JleTog MjE1NTkwNTI3OSwNCiAgICAgICAgICAgIGhvbmV5ZGV3OiA0MDQzMzA1MjE1LA0KICAgICAg ICAgICAgaG90cGluazogNDI4NTExNzY5NSwNCiAgICAgICAgICAgIGluZGlhbnJlZDogMzQ0 NTM4MjM5OSwNCiAgICAgICAgICAgIGluZGlnbzogMTI1ODMyNDczNSwNCiAgICAgICAgICAg IGl2b3J5OiA0Mjk0OTYzNDU1LA0KICAgICAgICAgICAga2hha2k6IDQwNDE2NDEyMTUsDQog ICAgICAgICAgICBsYXZlbmRlcjogMzg3Mzg5NzIxNSwNCiAgICAgICAgICAgIGxhdmVuZGVy Ymx1c2g6IDQyOTM5ODE2OTUsDQogICAgICAgICAgICBsYXduZ3JlZW46IDIwOTY4OTAxMTEs DQogICAgICAgICAgICBsZW1vbmNoaWZmb246IDQyOTQ2MjY4MTUsDQogICAgICAgICAgICBs aWdodGJsdWU6IDI5MTY2NzMyNzksDQogICAgICAgICAgICBsaWdodGNvcmFsOiA0MDM0OTUz NDcxLA0KICAgICAgICAgICAgbGlnaHRjeWFuOiAzNzc0ODczNTk5LA0KICAgICAgICAgICAg bGlnaHRnb2xkZW5yb2R5ZWxsb3c6IDQyMTA3NDIwMTUsDQogICAgICAgICAgICBsaWdodGdy YXk6IDM1NTM4NzQ5NDMsDQogICAgICAgICAgICBsaWdodGdyZWVuOiAyNDMxNTUzNzkxLA0K ICAgICAgICAgICAgbGlnaHRncmV5OiAzNTUzODc0OTQzLA0KICAgICAgICAgICAgbGlnaHRw aW5rOiA0MjkwMTY3Mjk1LA0KICAgICAgICAgICAgbGlnaHRzYWxtb246IDQyODg3MDczMjcs DQogICAgICAgICAgICBsaWdodHNlYWdyZWVuOiA1NDg1ODAwOTUsDQogICAgICAgICAgICBs aWdodHNreWJsdWU6IDIyNzg0ODg4MzEsDQogICAgICAgICAgICBsaWdodHNsYXRlZ3JheTog MjAwNTQ0MTAyMywNCiAgICAgICAgICAgIGxpZ2h0c2xhdGVncmV5OiAyMDA1NDQxMDIzLA0K ICAgICAgICAgICAgbGlnaHRzdGVlbGJsdWU6IDI5NjU2OTIxNTksDQogICAgICAgICAgICBs aWdodHllbGxvdzogNDI5NDk1OTM1OSwNCiAgICAgICAgICAgIGxpbWU6IDE2NzExOTM1LA0K ICAgICAgICAgICAgbGltZWdyZWVuOiA4NTIzMDg3MzUsDQogICAgICAgICAgICBsaW5lbjog NDIxMDA5MTc3NSwNCiAgICAgICAgICAgIG1hZ2VudGE6IDQyNzgyNTU2MTUsDQogICAgICAg ICAgICBtYXJvb246IDIxNDc0ODM5MDMsDQogICAgICAgICAgICBtZWRpdW1hcXVhbWFyaW5l OiAxNzI0NzU0Njg3LA0KICAgICAgICAgICAgbWVkaXVtYmx1ZTogNTI3MzUsDQogICAgICAg ICAgICBtZWRpdW1vcmNoaWQ6IDMxMjYxODcwMDcsDQogICAgICAgICAgICBtZWRpdW1wdXJw bGU6IDI0NzM2NDcxMDMsDQogICAgICAgICAgICBtZWRpdW1zZWFncmVlbjogMTAxODM5MzA4 NywNCiAgICAgICAgICAgIG1lZGl1bXNsYXRlYmx1ZTogMjA3MDQ3NDQ5NSwNCiAgICAgICAg ICAgIG1lZGl1bXNwcmluZ2dyZWVuOiAxNjQyMzY3OSwNCiAgICAgICAgICAgIG1lZGl1bXR1 cnF1b2lzZTogMTIyMTcwOTA1NSwNCiAgICAgICAgICAgIG1lZGl1bXZpb2xldHJlZDogMzM0 MDA3NjU0MywNCiAgICAgICAgICAgIG1pZG5pZ2h0Ymx1ZTogNDIxMDk3NzI3LA0KICAgICAg ICAgICAgbWludGNyZWFtOiA0MTI3MTkzODU1LA0KICAgICAgICAgICAgbWlzdHlyb3NlOiA0 MjkzMTkwMTQzLA0KICAgICAgICAgICAgbW9jY2FzaW46IDQyOTMxNzg4NzksDQogICAgICAg ICAgICBuYXZham93aGl0ZTogNDI5Mjc4MzYxNSwNCiAgICAgICAgICAgIG5hdnk6IDMzMDIz LA0KICAgICAgICAgICAgb2xkbGFjZTogNDI2MDc1MTEwMywNCiAgICAgICAgICAgIG9saXZl OiAyMTU1ODcyNTExLA0KICAgICAgICAgICAgb2xpdmVkcmFiOiAxODA0NDc3NDM5LA0KICAg ICAgICAgICAgb3JhbmdlOiA0Mjg5MDAzNzc1LA0KICAgICAgICAgICAgb3JhbmdlcmVkOiA0 MjgyNzEyMzE5LA0KICAgICAgICAgICAgb3JjaGlkOiAzNjY0ODI4MTU5LA0KICAgICAgICAg ICAgcGFsZWdvbGRlbnJvZDogNDAwODIyNTUzNSwNCiAgICAgICAgICAgIHBhbGVncmVlbjog MjU2NjYyNTUzNSwNCiAgICAgICAgICAgIHBhbGV0dXJxdW9pc2U6IDI5NTE2NzE1NTEsDQog ICAgICAgICAgICBwYWxldmlvbGV0cmVkOiAzNjgxNTg4MjIzLA0KICAgICAgICAgICAgcGFw YXlhd2hpcDogNDI5MzkwNzk2NywNCiAgICAgICAgICAgIHBlYWNocHVmZjogNDI5MjUyNDU0 MywNCiAgICAgICAgICAgIHBlcnU6IDM0NDgwNjE5NTEsDQogICAgICAgICAgICBwaW5rOiA0 MjkwODI1MjE1LA0KICAgICAgICAgICAgcGx1bTogMzcxODMwNzMyNywNCiAgICAgICAgICAg IHBvd2RlcmJsdWU6IDI5Njc1MjkyMTUsDQogICAgICAgICAgICBwdXJwbGU6IDIxNDc1MTY2 NzEsDQogICAgICAgICAgICByZWJlY2NhcHVycGxlOiAxNzE0NjU3NzkxLA0KICAgICAgICAg ICAgcmVkOiA0Mjc4MTkwMzM1LA0KICAgICAgICAgICAgcm9zeWJyb3duOiAzMTYzNTI1MTE5 LA0KICAgICAgICAgICAgcm95YWxibHVlOiAxMDk3NDU4MTc1LA0KICAgICAgICAgICAgc2Fk ZGxlYnJvd246IDIzMzY1NjAxMjcsDQogICAgICAgICAgICBzYWxtb246IDQyMDI3MjIwNDcs DQogICAgICAgICAgICBzYW5keWJyb3duOiA0MTA0NDEzNDM5LA0KICAgICAgICAgICAgc2Vh Z3JlZW46IDc4MDg4Mzk2NywNCiAgICAgICAgICAgIHNlYXNoZWxsOiA0Mjk0MzA3NTgzLA0K ICAgICAgICAgICAgc2llbm5hOiAyNjg5NzQwMjg3LA0KICAgICAgICAgICAgc2lsdmVyOiAz MjMzODU3NzkxLA0KICAgICAgICAgICAgc2t5Ymx1ZTogMjI3ODQ4NDk5MSwNCiAgICAgICAg ICAgIHNsYXRlYmx1ZTogMTc4NDMzNTg3MSwNCiAgICAgICAgICAgIHNsYXRlZ3JheTogMTg4 NzQ3MzkxOSwNCiAgICAgICAgICAgIHNsYXRlZ3JleTogMTg4NzQ3MzkxOSwNCiAgICAgICAg ICAgIHNub3c6IDQyOTQ2MzgzMzUsDQogICAgICAgICAgICBzcHJpbmdncmVlbjogMTY3NDQ0 NDcsDQogICAgICAgICAgICBzdGVlbGJsdWU6IDExODI5NzExMzUsDQogICAgICAgICAgICB0 YW46IDM1MzUwNDc5MzUsDQogICAgICAgICAgICB0ZWFsOiA4NDIxNjMxLA0KICAgICAgICAg ICAgdGhpc3RsZTogMzYzNjQ1MTU4MywNCiAgICAgICAgICAgIHRvbWF0bzogNDI4NDY5NjU3 NSwNCiAgICAgICAgICAgIHR1cnF1b2lzZTogMTA4ODQ3NTM5MSwNCiAgICAgICAgICAgIHZp b2xldDogNDAwMTU1ODI3MSwNCiAgICAgICAgICAgIHdoZWF0OiA0MTI1MDEyOTkxLA0KICAg ICAgICAgICAgd2hpdGU6IDQyOTQ5NjcyOTUsDQogICAgICAgICAgICB3aGl0ZXNtb2tlOiA0 MTI2NTM3MjE1LA0KICAgICAgICAgICAgeWVsbG93OiA0Mjk0OTAyMDE1LA0KICAgICAgICAg ICAgeWVsbG93Z3JlZW46IDI1OTcxMzkxOTksDQogICAgICAgICAgfSwNCiAgICAgICAgfSk7 DQogICAgICAgIHZhciBpdSA9IChmdW5jdGlvbiAoZSkgew0KICAgICAgICAgIGxldCB7IGFw cGx5QW5pbWF0ZWRWYWx1ZXM6IHQgPSAoKSA9PiAhMSwgY3JlYXRlQW5pbWF0ZWRTdHlsZTog biA9IChlKSA9PiBuZXcgX2woZSksIGdldENvbXBvbmVudFByb3BzOiByID0gKGUpID0+IGUg fSA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIHZvaWQgMCAhPT0gYXJndW1lbnRzWzFdID8g YXJndW1lbnRzWzFdIDoge307DQogICAgICAgICAgY29uc3QgbyA9IHsgYXBwbHlBbmltYXRl ZFZhbHVlczogdCwgY3JlYXRlQW5pbWF0ZWRTdHlsZTogbiwgZ2V0Q29tcG9uZW50UHJvcHM6 IHIgfSwNCiAgICAgICAgICAgIGEgPSAoZSkgPT4gew0KICAgICAgICAgICAgICBjb25zdCB0 ID0gemwoZSkgfHwgIkFub255bW91cyI7DQogICAgICAgICAgICAgIHJldHVybiAoKGUgPSAk YS5zdHIoZSkgPyBhW2VdIHx8IChhW2VdID0gVGwoZSwgbykpIDogZVtNbF0gfHwgKGVbTWxd ID0gVGwoZSwgbykpKS5kaXNwbGF5TmFtZSA9ICJBbmltYXRlZCgiLmNvbmNhdCh0LCAiKSIp KSwgZTsNCiAgICAgICAgICAgIH07DQogICAgICAgICAgcmV0dXJuICgNCiAgICAgICAgICAg IEdhKGUsICh0LCBuKSA9PiB7DQogICAgICAgICAgICAgICRhLmFycihlKSAmJiAobiA9IHps KHQpKSwgKGFbbl0gPSBhKHQpKTsNCiAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAgeyBh bmltYXRlZDogYSB9DQogICAgICAgICAgKTsNCiAgICAgICAgfSkoDQogICAgICAgICAgWw0K ICAgICAgICAgICAgImEiLA0KICAgICAgICAgICAgImFiYnIiLA0KICAgICAgICAgICAgImFk ZHJlc3MiLA0KICAgICAgICAgICAgImFyZWEiLA0KICAgICAgICAgICAgImFydGljbGUiLA0K ICAgICAgICAgICAgImFzaWRlIiwNCiAgICAgICAgICAgICJhdWRpbyIsDQogICAgICAgICAg ICAiYiIsDQogICAgICAgICAgICAiYmFzZSIsDQogICAgICAgICAgICAiYmRpIiwNCiAgICAg ICAgICAgICJiZG8iLA0KICAgICAgICAgICAgImJpZyIsDQogICAgICAgICAgICAiYmxvY2tx dW90ZSIsDQogICAgICAgICAgICAiYm9keSIsDQogICAgICAgICAgICAiYnIiLA0KICAgICAg ICAgICAgImJ1dHRvbiIsDQogICAgICAgICAgICAiY2FudmFzIiwNCiAgICAgICAgICAgICJj YXB0aW9uIiwNCiAgICAgICAgICAgICJjaXRlIiwNCiAgICAgICAgICAgICJjb2RlIiwNCiAg ICAgICAgICAgICJjb2wiLA0KICAgICAgICAgICAgImNvbGdyb3VwIiwNCiAgICAgICAgICAg ICJkYXRhIiwNCiAgICAgICAgICAgICJkYXRhbGlzdCIsDQogICAgICAgICAgICAiZGQiLA0K ICAgICAgICAgICAgImRlbCIsDQogICAgICAgICAgICAiZGV0YWlscyIsDQogICAgICAgICAg ICAiZGZuIiwNCiAgICAgICAgICAgICJkaWFsb2ciLA0KICAgICAgICAgICAgImRpdiIsDQog ICAgICAgICAgICAiZGwiLA0KICAgICAgICAgICAgImR0IiwNCiAgICAgICAgICAgICJlbSIs DQogICAgICAgICAgICAiZW1iZWQiLA0KICAgICAgICAgICAgImZpZWxkc2V0IiwNCiAgICAg ICAgICAgICJmaWdjYXB0aW9uIiwNCiAgICAgICAgICAgICJmaWd1cmUiLA0KICAgICAgICAg ICAgImZvb3RlciIsDQogICAgICAgICAgICAiZm9ybSIsDQogICAgICAgICAgICAiaDEiLA0K ICAgICAgICAgICAgImgyIiwNCiAgICAgICAgICAgICJoMyIsDQogICAgICAgICAgICAiaDQi LA0KICAgICAgICAgICAgImg1IiwNCiAgICAgICAgICAgICJoNiIsDQogICAgICAgICAgICAi aGVhZCIsDQogICAgICAgICAgICAiaGVhZGVyIiwNCiAgICAgICAgICAgICJoZ3JvdXAiLA0K ICAgICAgICAgICAgImhyIiwNCiAgICAgICAgICAgICJodG1sIiwNCiAgICAgICAgICAgICJp IiwNCiAgICAgICAgICAgICJpZnJhbWUiLA0KICAgICAgICAgICAgImltZyIsDQogICAgICAg ICAgICAiaW5wdXQiLA0KICAgICAgICAgICAgImlucyIsDQogICAgICAgICAgICAia2JkIiwN CiAgICAgICAgICAgICJrZXlnZW4iLA0KICAgICAgICAgICAgImxhYmVsIiwNCiAgICAgICAg ICAgICJsZWdlbmQiLA0KICAgICAgICAgICAgImxpIiwNCiAgICAgICAgICAgICJsaW5rIiwN CiAgICAgICAgICAgICJtYWluIiwNCiAgICAgICAgICAgICJtYXAiLA0KICAgICAgICAgICAg Im1hcmsiLA0KICAgICAgICAgICAgIm1lbnUiLA0KICAgICAgICAgICAgIm1lbnVpdGVtIiwN CiAgICAgICAgICAgICJtZXRhIiwNCiAgICAgICAgICAgICJtZXRlciIsDQogICAgICAgICAg ICAibmF2IiwNCiAgICAgICAgICAgICJub3NjcmlwdCIsDQogICAgICAgICAgICAib2JqZWN0 IiwNCiAgICAgICAgICAgICJvbCIsDQogICAgICAgICAgICAib3B0Z3JvdXAiLA0KICAgICAg ICAgICAgIm9wdGlvbiIsDQogICAgICAgICAgICAib3V0cHV0IiwNCiAgICAgICAgICAgICJw IiwNCiAgICAgICAgICAgICJwYXJhbSIsDQogICAgICAgICAgICAicGljdHVyZSIsDQogICAg ICAgICAgICAicHJlIiwNCiAgICAgICAgICAgICJwcm9ncmVzcyIsDQogICAgICAgICAgICAi cSIsDQogICAgICAgICAgICAicnAiLA0KICAgICAgICAgICAgInJ0IiwNCiAgICAgICAgICAg ICJydWJ5IiwNCiAgICAgICAgICAgICJzIiwNCiAgICAgICAgICAgICJzYW1wIiwNCiAgICAg ICAgICAgICJzY3JpcHQiLA0KICAgICAgICAgICAgInNlY3Rpb24iLA0KICAgICAgICAgICAg InNlbGVjdCIsDQogICAgICAgICAgICAic21hbGwiLA0KICAgICAgICAgICAgInNvdXJjZSIs DQogICAgICAgICAgICAic3BhbiIsDQogICAgICAgICAgICAic3Ryb25nIiwNCiAgICAgICAg ICAgICJzdHlsZSIsDQogICAgICAgICAgICAic3ViIiwNCiAgICAgICAgICAgICJzdW1tYXJ5 IiwNCiAgICAgICAgICAgICJzdXAiLA0KICAgICAgICAgICAgInRhYmxlIiwNCiAgICAgICAg ICAgICJ0Ym9keSIsDQogICAgICAgICAgICAidGQiLA0KICAgICAgICAgICAgInRleHRhcmVh IiwNCiAgICAgICAgICAgICJ0Zm9vdCIsDQogICAgICAgICAgICAidGgiLA0KICAgICAgICAg ICAgInRoZWFkIiwNCiAgICAgICAgICAgICJ0aW1lIiwNCiAgICAgICAgICAgICJ0aXRsZSIs DQogICAgICAgICAgICAidHIiLA0KICAgICAgICAgICAgInRyYWNrIiwNCiAgICAgICAgICAg ICJ1IiwNCiAgICAgICAgICAgICJ1bCIsDQogICAgICAgICAgICAidmFyIiwNCiAgICAgICAg ICAgICJ2aWRlbyIsDQogICAgICAgICAgICAid2JyIiwNCiAgICAgICAgICAgICJjaXJjbGUi LA0KICAgICAgICAgICAgImNsaXBQYXRoIiwNCiAgICAgICAgICAgICJkZWZzIiwNCiAgICAg ICAgICAgICJlbGxpcHNlIiwNCiAgICAgICAgICAgICJmb3JlaWduT2JqZWN0IiwNCiAgICAg ICAgICAgICJnIiwNCiAgICAgICAgICAgICJpbWFnZSIsDQogICAgICAgICAgICAibGluZSIs DQogICAgICAgICAgICAibGluZWFyR3JhZGllbnQiLA0KICAgICAgICAgICAgIm1hc2siLA0K ICAgICAgICAgICAgInBhdGgiLA0KICAgICAgICAgICAgInBhdHRlcm4iLA0KICAgICAgICAg ICAgInBvbHlnb24iLA0KICAgICAgICAgICAgInBvbHlsaW5lIiwNCiAgICAgICAgICAgICJy YWRpYWxHcmFkaWVudCIsDQogICAgICAgICAgICAicmVjdCIsDQogICAgICAgICAgICAic3Rv cCIsDQogICAgICAgICAgICAic3ZnIiwNCiAgICAgICAgICAgICJ0ZXh0IiwNCiAgICAgICAg ICAgICJ0c3BhbiIsDQogICAgICAgICAgXSwNCiAgICAgICAgICB7DQogICAgICAgICAgICBh cHBseUFuaW1hdGVkVmFsdWVzOiBmdW5jdGlvbiAoZSwgdCkgew0KICAgICAgICAgICAgICBp ZiAoIWUubm9kZVR5cGUgfHwgIWUuc2V0QXR0cmlidXRlKSByZXR1cm4gITE7DQogICAgICAg ICAgICAgIGNvbnN0IG4gPSAiZmlsdGVyIiA9PT0gZS5ub2RlTmFtZSB8fCAoZS5wYXJlbnRO b2RlICYmICJmaWx0ZXIiID09PSBlLnBhcmVudE5vZGUubm9kZU5hbWUpLA0KICAgICAgICAg ICAgICAgIHsgc3R5bGU6IHIsIGNoaWxkcmVuOiBvLCBzY3JvbGxUb3A6IGEsIHNjcm9sbExl ZnQ6IGksIHZpZXdCb3g6IGwsIC4uLnMgfSA9IHQsDQogICAgICAgICAgICAgICAgdSA9IE9i amVjdC52YWx1ZXMocyksDQogICAgICAgICAgICAgICAgYyA9IE9iamVjdC5rZXlzKHMpLm1h cCgodCkgPT4gKG4gfHwgZS5oYXNBdHRyaWJ1dGUodCkgPyB0IDogWXNbdF0gfHwgKFlzW3Rd ID0gdC5yZXBsYWNlKC8oW0EtWl0pL2csIChlKSA9PiAiLSIgKyBlLnRvTG93ZXJDYXNlKCkp KSkpOw0KICAgICAgICAgICAgICB2b2lkIDAgIT09IG8gJiYgKGUudGV4dENvbnRlbnQgPSBv KTsNCiAgICAgICAgICAgICAgZm9yIChjb25zdCBkIGluIHIpDQogICAgICAgICAgICAgICAg aWYgKHIuaGFzT3duUHJvcGVydHkoZCkpIHsNCiAgICAgICAgICAgICAgICAgIGNvbnN0IHQg PSBHcyhkLCByW2RdKTsNCiAgICAgICAgICAgICAgICAgIFFzLnRlc3QoZCkgPyBlLnN0eWxl LnNldFByb3BlcnR5KGQsIHQpIDogKGUuc3R5bGVbZF0gPSB0KTsNCiAgICAgICAgICAgICAg ICB9DQogICAgICAgICAgICAgIGMuZm9yRWFjaCgodCwgbikgPT4gew0KICAgICAgICAgICAg ICAgIGUuc2V0QXR0cmlidXRlKHQsIHVbbl0pOw0KICAgICAgICAgICAgICB9KSwNCiAgICAg ICAgICAgICAgICB2b2lkIDAgIT09IGEgJiYgKGUuc2Nyb2xsVG9wID0gYSksDQogICAgICAg ICAgICAgICAgdm9pZCAwICE9PSBpICYmIChlLnNjcm9sbExlZnQgPSBpKSwNCiAgICAgICAg ICAgICAgICB2b2lkIDAgIT09IGwgJiYgZS5zZXRBdHRyaWJ1dGUoInZpZXdCb3giLCBsKTsN CiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjcmVhdGVBbmltYXRlZFN0eWxlOiAoZSkg PT4gbmV3IG91KGUpLA0KICAgICAgICAgICAgZ2V0Q29tcG9uZW50UHJvcHM6IChlKSA9PiB7 DQogICAgICAgICAgICAgIGxldCB7IHNjcm9sbFRvcDogdCwgc2Nyb2xsTGVmdDogbiwgLi4u ciB9ID0gZTsNCiAgICAgICAgICAgICAgcmV0dXJuIHI7DQogICAgICAgICAgICB9LA0KICAg ICAgICAgIH0NCiAgICAgICAgKSwNCiAgICAgICAgICBsdSA9IGl1LmFuaW1hdGVkOw0KICAg ICAgICBjb25zdCBzdSA9IChlKSA9PiB7DQogICAgICAgICAgbGV0IHQ7DQogICAgICAgICAg cmV0dXJuICh0ID0gZSA8IDEgPyA1LjExOTE2ICogZSAqKiAyIDogNC41ICogTWF0aC5sb2co ZSArIDEpICsgMiksICh0IC8gMTAwKS50b0ZpeGVkKDIpOw0KICAgICAgICB9Ow0KICAgICAg ICBmdW5jdGlvbiB1dShlKSB7DQogICAgICAgICAgcmV0dXJuIGpyKCJNdWlQYXBlciIsIGUp Ow0KICAgICAgICB9DQogICAgICAgIElyKCJNdWlQYXBlciIsIFsNCiAgICAgICAgICAicm9v dCIsDQogICAgICAgICAgInJvdW5kZWQiLA0KICAgICAgICAgICJvdXRsaW5lZCIsDQogICAg ICAgICAgImVsZXZhdGlvbiIsDQogICAgICAgICAgImVsZXZhdGlvbjAiLA0KICAgICAgICAg ICJlbGV2YXRpb24xIiwNCiAgICAgICAgICAiZWxldmF0aW9uMiIsDQogICAgICAgICAgImVs ZXZhdGlvbjMiLA0KICAgICAgICAgICJlbGV2YXRpb240IiwNCiAgICAgICAgICAiZWxldmF0 aW9uNSIsDQogICAgICAgICAgImVsZXZhdGlvbjYiLA0KICAgICAgICAgICJlbGV2YXRpb243 IiwNCiAgICAgICAgICAiZWxldmF0aW9uOCIsDQogICAgICAgICAgImVsZXZhdGlvbjkiLA0K ICAgICAgICAgICJlbGV2YXRpb24xMCIsDQogICAgICAgICAgImVsZXZhdGlvbjExIiwNCiAg ICAgICAgICAiZWxldmF0aW9uMTIiLA0KICAgICAgICAgICJlbGV2YXRpb24xMyIsDQogICAg ICAgICAgImVsZXZhdGlvbjE0IiwNCiAgICAgICAgICAiZWxldmF0aW9uMTUiLA0KICAgICAg ICAgICJlbGV2YXRpb24xNiIsDQogICAgICAgICAgImVsZXZhdGlvbjE3IiwNCiAgICAgICAg ICAiZWxldmF0aW9uMTgiLA0KICAgICAgICAgICJlbGV2YXRpb24xOSIsDQogICAgICAgICAg ImVsZXZhdGlvbjIwIiwNCiAgICAgICAgICAiZWxldmF0aW9uMjEiLA0KICAgICAgICAgICJl bGV2YXRpb24yMiIsDQogICAgICAgICAgImVsZXZhdGlvbjIzIiwNCiAgICAgICAgICAiZWxl dmF0aW9uMjQiLA0KICAgICAgICBdKTsNCiAgICAgICAgY29uc3QgY3UgPSBbImNsYXNzTmFt ZSIsICJjb21wb25lbnQiLCAiZWxldmF0aW9uIiwgInNxdWFyZSIsICJ2YXJpYW50Il0sDQog ICAgICAgICAgZHUgPSBZbigiZGl2Iiwgew0KICAgICAgICAgICAgbmFtZTogIk11aVBhcGVy IiwNCiAgICAgICAgICAgIHNsb3Q6ICJSb290IiwNCiAgICAgICAgICAgIG92ZXJyaWRlc1Jl c29sdmVyOiAoZSwgdCkgPT4gew0KICAgICAgICAgICAgICBjb25zdCB7IG93bmVyU3RhdGU6 IG4gfSA9IGU7DQogICAgICAgICAgICAgIHJldHVybiBbdC5yb290LCB0W24udmFyaWFudF0s ICFuLnNxdWFyZSAmJiB0LnJvdW5kZWQsICJlbGV2YXRpb24iID09PSBuLnZhcmlhbnQgJiYg dFsiZWxldmF0aW9uIi5jb25jYXQobi5lbGV2YXRpb24pXV07DQogICAgICAgICAgICB9LA0K ICAgICAgICAgIH0pKChlKSA9PiB7DQogICAgICAgICAgICBsZXQgeyB0aGVtZTogdCwgb3du ZXJTdGF0ZTogbiB9ID0gZTsNCiAgICAgICAgICAgIHZhciByOw0KICAgICAgICAgICAgcmV0 dXJuIGkoDQogICAgICAgICAgICAgIHsgYmFja2dyb3VuZENvbG9yOiAodC52YXJzIHx8IHQp LnBhbGV0dGUuYmFja2dyb3VuZC5wYXBlciwgY29sb3I6ICh0LnZhcnMgfHwgdCkucGFsZXR0 ZS50ZXh0LnByaW1hcnksIHRyYW5zaXRpb246IHQudHJhbnNpdGlvbnMuY3JlYXRlKCJib3gt c2hhZG93IikgfSwNCiAgICAgICAgICAgICAgIW4uc3F1YXJlICYmIHsgYm9yZGVyUmFkaXVz OiB0LnNoYXBlLmJvcmRlclJhZGl1cyB9LA0KICAgICAgICAgICAgICAib3V0bGluZWQiID09 PSBuLnZhcmlhbnQgJiYgeyBib3JkZXI6ICIxcHggc29saWQgIi5jb25jYXQoKHQudmFycyB8 fCB0KS5wYWxldHRlLmRpdmlkZXIpIH0sDQogICAgICAgICAgICAgICJlbGV2YXRpb24iID09 PSBuLnZhcmlhbnQgJiYNCiAgICAgICAgICAgICAgaSgNCiAgICAgICAgICAgICAgICB7IGJv eFNoYWRvdzogKHQudmFycyB8fCB0KS5zaGFkb3dzW24uZWxldmF0aW9uXSB9LA0KICAgICAg ICAgICAgICAgICF0LnZhcnMgJiYgImRhcmsiID09PSB0LnBhbGV0dGUubW9kZSAmJiB7IGJh Y2tncm91bmRJbWFnZTogImxpbmVhci1ncmFkaWVudCgiLmNvbmNhdChnKCIjZmZmIiwgc3Uo bi5lbGV2YXRpb24pKSwgIiwgIikuY29uY2F0KGcoIiNmZmYiLCBzdShuLmVsZXZhdGlvbikp LCAiKSIpIH0sDQogICAgICAgICAgICAgICAgdC52YXJzICYmIHsgYmFja2dyb3VuZEltYWdl OiBudWxsID09IChyID0gdC52YXJzLm92ZXJsYXlzKSA/IHZvaWQgMCA6IHJbbi5lbGV2YXRp b25dIH0NCiAgICAgICAgICAgICAgKQ0KICAgICAgICAgICAgKTsNCiAgICAgICAgICB9KSwN CiAgICAgICAgICBmdSA9IHQuZm9yd2FyZFJlZihmdW5jdGlvbiAoZSwgdCkgew0KICAgICAg ICAgICAgY29uc3QgbiA9IHRyKHsgcHJvcHM6IGUsIG5hbWU6ICJNdWlQYXBlciIgfSksDQog ICAgICAgICAgICAgIHsgY2xhc3NOYW1lOiByLCBjb21wb25lbnQ6IG8gPSAiZGl2IiwgZWxl dmF0aW9uOiBsID0gMSwgc3F1YXJlOiB1ID0gITEsIHZhcmlhbnQ6IGQgPSAiZWxldmF0aW9u IiB9ID0gbiwNCiAgICAgICAgICAgICAgZiA9IGEobiwgY3UpLA0KICAgICAgICAgICAgICBw ID0gaSh7fSwgbiwgeyBjb21wb25lbnQ6IG8sIGVsZXZhdGlvbjogbCwgc3F1YXJlOiB1LCB2 YXJpYW50OiBkIH0pLA0KICAgICAgICAgICAgICBoID0gKChlKSA9PiB7DQogICAgICAgICAg ICAgICAgY29uc3QgeyBzcXVhcmU6IHQsIGVsZXZhdGlvbjogbiwgdmFyaWFudDogciwgY2xh c3NlczogbyB9ID0gZTsNCiAgICAgICAgICAgICAgICByZXR1cm4gYyh7IHJvb3Q6IFsicm9v dCIsIHIsICF0ICYmICJyb3VuZGVkIiwgImVsZXZhdGlvbiIgPT09IHIgJiYgImVsZXZhdGlv biIuY29uY2F0KG4pXSB9LCB1dSwgbyk7DQogICAgICAgICAgICAgIH0pKHApOw0KICAgICAg ICAgICAgcmV0dXJuICgwLCBOci5qc3gpKGR1LCBpKHsgYXM6IG8sIG93bmVyU3RhdGU6IHAs IGNsYXNzTmFtZTogcyhoLnJvb3QsIHIpLCByZWY6IHQgfSwgZikpOw0KICAgICAgICAgIH0p Ow0KICAgICAgICBmdW5jdGlvbiBwdShlKSB7DQogICAgICAgICAgcmV0dXJuIGpyKCJNdWlB bGVydCIsIGUpOw0KICAgICAgICB9DQogICAgICAgIGNvbnN0IGh1ID0gSXIoIk11aUFsZXJ0 IiwgWw0KICAgICAgICAgICJyb290IiwNCiAgICAgICAgICAiYWN0aW9uIiwNCiAgICAgICAg ICAiaWNvbiIsDQogICAgICAgICAgIm1lc3NhZ2UiLA0KICAgICAgICAgICJmaWxsZWQiLA0K ICAgICAgICAgICJmaWxsZWRTdWNjZXNzIiwNCiAgICAgICAgICAiZmlsbGVkSW5mbyIsDQog ICAgICAgICAgImZpbGxlZFdhcm5pbmciLA0KICAgICAgICAgICJmaWxsZWRFcnJvciIsDQog ICAgICAgICAgIm91dGxpbmVkIiwNCiAgICAgICAgICAib3V0bGluZWRTdWNjZXNzIiwNCiAg ICAgICAgICAib3V0bGluZWRJbmZvIiwNCiAgICAgICAgICAib3V0bGluZWRXYXJuaW5nIiwN CiAgICAgICAgICAib3V0bGluZWRFcnJvciIsDQogICAgICAgICAgInN0YW5kYXJkIiwNCiAg ICAgICAgICAic3RhbmRhcmRTdWNjZXNzIiwNCiAgICAgICAgICAic3RhbmRhcmRJbmZvIiwN CiAgICAgICAgICAic3RhbmRhcmRXYXJuaW5nIiwNCiAgICAgICAgICAic3RhbmRhcmRFcnJv ciIsDQogICAgICAgIF0pOw0KICAgICAgICBmdW5jdGlvbiBtdShlKSB7DQogICAgICAgICAg cmV0dXJuIGpyKCJNdWlJY29uQnV0dG9uIiwgZSk7DQogICAgICAgIH0NCiAgICAgICAgY29u c3QgZ3UgPSBJcigiTXVpSWNvbkJ1dHRvbiIsIFsNCiAgICAgICAgICAicm9vdCIsDQogICAg ICAgICAgImRpc2FibGVkIiwNCiAgICAgICAgICAiY29sb3JJbmhlcml0IiwNCiAgICAgICAg ICAiY29sb3JQcmltYXJ5IiwNCiAgICAgICAgICAiY29sb3JTZWNvbmRhcnkiLA0KICAgICAg ICAgICJjb2xvckVycm9yIiwNCiAgICAgICAgICAiY29sb3JJbmZvIiwNCiAgICAgICAgICAi Y29sb3JTdWNjZXNzIiwNCiAgICAgICAgICAiY29sb3JXYXJuaW5nIiwNCiAgICAgICAgICAi ZWRnZVN0YXJ0IiwNCiAgICAgICAgICAiZWRnZUVuZCIsDQogICAgICAgICAgInNpemVTbWFs bCIsDQogICAgICAgICAgInNpemVNZWRpdW0iLA0KICAgICAgICAgICJzaXplTGFyZ2UiLA0K ICAgICAgICBdKSwNCiAgICAgICAgICB2dSA9IFsiZWRnZSIsICJjaGlsZHJlbiIsICJjbGFz c05hbWUiLCAiY29sb3IiLCAiZGlzYWJsZWQiLCAiZGlzYWJsZUZvY3VzUmlwcGxlIiwgInNp emUiXSwNCiAgICAgICAgICB5dSA9IFluKGFvLCB7DQogICAgICAgICAgICBuYW1lOiAiTXVp SWNvbkJ1dHRvbiIsDQogICAgICAgICAgICBzbG90OiAiUm9vdCIsDQogICAgICAgICAgICBv dmVycmlkZXNSZXNvbHZlcjogKGUsIHQpID0+IHsNCiAgICAgICAgICAgICAgY29uc3QgeyBv d25lclN0YXRlOiBuIH0gPSBlOw0KICAgICAgICAgICAgICByZXR1cm4gW3Qucm9vdCwgImRl ZmF1bHQiICE9PSBuLmNvbG9yICYmIHRbImNvbG9yIi5jb25jYXQoaW8obi5jb2xvcikpXSwg bi5lZGdlICYmIHRbImVkZ2UiLmNvbmNhdChpbyhuLmVkZ2UpKV0sIHRbInNpemUiLmNvbmNh dChpbyhuLnNpemUpKV1dOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICB9KSgNCiAgICAg ICAgICAgIChlKSA9PiB7DQogICAgICAgICAgICAgIGxldCB7IHRoZW1lOiB0LCBvd25lclN0 YXRlOiBuIH0gPSBlOw0KICAgICAgICAgICAgICByZXR1cm4gaSgNCiAgICAgICAgICAgICAg ICB7DQogICAgICAgICAgICAgICAgICB0ZXh0QWxpZ246ICJjZW50ZXIiLA0KICAgICAgICAg ICAgICAgICAgZmxleDogIjAgMCBhdXRvIiwNCiAgICAgICAgICAgICAgICAgIGZvbnRTaXpl OiB0LnR5cG9ncmFwaHkucHhUb1JlbSgyNCksDQogICAgICAgICAgICAgICAgICBwYWRkaW5n OiA4LA0KICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiAiNTAlIiwNCiAgICAgICAg ICAgICAgICAgIG92ZXJmbG93OiAidmlzaWJsZSIsDQogICAgICAgICAgICAgICAgICBjb2xv cjogKHQudmFycyB8fCB0KS5wYWxldHRlLmFjdGlvbi5hY3RpdmUsDQogICAgICAgICAgICAg ICAgICB0cmFuc2l0aW9uOiB0LnRyYW5zaXRpb25zLmNyZWF0ZSgiYmFja2dyb3VuZC1jb2xv ciIsIHsgZHVyYXRpb246IHQudHJhbnNpdGlvbnMuZHVyYXRpb24uc2hvcnRlc3QgfSksDQog ICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAhbi5kaXNhYmxlUmlwcGxlICYm IHsNCiAgICAgICAgICAgICAgICAgICImOmhvdmVyIjogew0KICAgICAgICAgICAgICAgICAg ICBiYWNrZ3JvdW5kQ29sb3I6IHQudmFycyA/ICJyZ2JhKCIuY29uY2F0KHQudmFycy5wYWxl dHRlLmFjdGlvbi5hY3RpdmVDaGFubmVsLCAiIC8gIikuY29uY2F0KHQudmFycy5wYWxldHRl LmFjdGlvbi5ob3Zlck9wYWNpdHksICIpIikgOiBnKHQucGFsZXR0ZS5hY3Rpb24uYWN0aXZl LCB0LnBhbGV0dGUuYWN0aW9uLmhvdmVyT3BhY2l0eSksDQogICAgICAgICAgICAgICAgICAg ICJAbWVkaWEgKGhvdmVyOiBub25lKSI6IHsgYmFja2dyb3VuZENvbG9yOiAidHJhbnNwYXJl bnQiIH0sDQogICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgIH0sDQogICAg ICAgICAgICAgICAgInN0YXJ0IiA9PT0gbi5lZGdlICYmIHsgbWFyZ2luTGVmdDogInNtYWxs IiA9PT0gbi5zaXplID8gLTMgOiAtMTIgfSwNCiAgICAgICAgICAgICAgICAiZW5kIiA9PT0g bi5lZGdlICYmIHsgbWFyZ2luUmlnaHQ6ICJzbWFsbCIgPT09IG4uc2l6ZSA/IC0zIDogLTEy IH0NCiAgICAgICAgICAgICAgKTsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICAoZSkg PT4gew0KICAgICAgICAgICAgICBsZXQgeyB0aGVtZTogdCwgb3duZXJTdGF0ZTogbiB9ID0g ZTsNCiAgICAgICAgICAgICAgdmFyIHI7DQogICAgICAgICAgICAgIGNvbnN0IG8gPSBudWxs ID09IChyID0gKHQudmFycyB8fCB0KS5wYWxldHRlKSA/IHZvaWQgMCA6IHJbbi5jb2xvcl07 DQogICAgICAgICAgICAgIHJldHVybiBpKA0KICAgICAgICAgICAgICAgIHt9LA0KICAgICAg ICAgICAgICAgICJpbmhlcml0IiA9PT0gbi5jb2xvciAmJiB7IGNvbG9yOiAiaW5oZXJpdCIg fSwNCiAgICAgICAgICAgICAgICAiaW5oZXJpdCIgIT09IG4uY29sb3IgJiYNCiAgICAgICAg ICAgICAgICAiZGVmYXVsdCIgIT09IG4uY29sb3IgJiYNCiAgICAgICAgICAgICAgICBpKA0K ICAgICAgICAgICAgICAgICAgeyBjb2xvcjogbnVsbCA9PSBvID8gdm9pZCAwIDogby5tYWlu IH0sDQogICAgICAgICAgICAgICAgICAhbi5kaXNhYmxlUmlwcGxlICYmIHsNCiAgICAgICAg ICAgICAgICAgICAgIiY6aG92ZXIiOiBpKHt9LCBvICYmIHsgYmFja2dyb3VuZENvbG9yOiB0 LnZhcnMgPyAicmdiYSgiLmNvbmNhdChvLm1haW5DaGFubmVsLCAiIC8gIikuY29uY2F0KHQu dmFycy5wYWxldHRlLmFjdGlvbi5ob3Zlck9wYWNpdHksICIpIikgOiBnKG8ubWFpbiwgdC5w YWxldHRlLmFjdGlvbi5ob3Zlck9wYWNpdHkpIH0sIHsNCiAgICAgICAgICAgICAgICAgICAg ICAiQG1lZGlhIChob3Zlcjogbm9uZSkiOiB7IGJhY2tncm91bmRDb2xvcjogInRyYW5zcGFy ZW50IiB9LA0KICAgICAgICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgICAgIH0N CiAgICAgICAgICAgICAgICApLA0KICAgICAgICAgICAgICAgICJzbWFsbCIgPT09IG4uc2l6 ZSAmJiB7IHBhZGRpbmc6IDUsIGZvbnRTaXplOiB0LnR5cG9ncmFwaHkucHhUb1JlbSgxOCkg fSwNCiAgICAgICAgICAgICAgICAibGFyZ2UiID09PSBuLnNpemUgJiYgeyBwYWRkaW5nOiAx MiwgZm9udFNpemU6IHQudHlwb2dyYXBoeS5weFRvUmVtKDI4KSB9LA0KICAgICAgICAgICAg ICAgIHsgWyImLiIuY29uY2F0KGd1LmRpc2FibGVkKV06IHsgYmFja2dyb3VuZENvbG9yOiAi dHJhbnNwYXJlbnQiLCBjb2xvcjogKHQudmFycyB8fCB0KS5wYWxldHRlLmFjdGlvbi5kaXNh YmxlZCB9IH0NCiAgICAgICAgICAgICAgKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAp LA0KICAgICAgICAgIGJ1ID0gdC5mb3J3YXJkUmVmKGZ1bmN0aW9uIChlLCB0KSB7DQogICAg ICAgICAgICBjb25zdCBuID0gdHIoeyBwcm9wczogZSwgbmFtZTogIk11aUljb25CdXR0b24i IH0pLA0KICAgICAgICAgICAgICB7IGVkZ2U6IHIgPSAhMSwgY2hpbGRyZW46IG8sIGNsYXNz TmFtZTogbCwgY29sb3I6IHUgPSAiZGVmYXVsdCIsIGRpc2FibGVkOiBkID0gITEsIGRpc2Fi bGVGb2N1c1JpcHBsZTogZiA9ICExLCBzaXplOiBwID0gIm1lZGl1bSIgfSA9IG4sDQogICAg ICAgICAgICAgIGggPSBhKG4sIHZ1KSwNCiAgICAgICAgICAgICAgbSA9IGkoe30sIG4sIHsg ZWRnZTogciwgY29sb3I6IHUsIGRpc2FibGVkOiBkLCBkaXNhYmxlRm9jdXNSaXBwbGU6IGYs IHNpemU6IHAgfSksDQogICAgICAgICAgICAgIGcgPSAoKGUpID0+IHsNCiAgICAgICAgICAg ICAgICBjb25zdCB7IGNsYXNzZXM6IHQsIGRpc2FibGVkOiBuLCBjb2xvcjogciwgZWRnZTog bywgc2l6ZTogYSB9ID0gZTsNCiAgICAgICAgICAgICAgICByZXR1cm4gYyh7IHJvb3Q6IFsi cm9vdCIsIG4gJiYgImRpc2FibGVkIiwgImRlZmF1bHQiICE9PSByICYmICJjb2xvciIuY29u Y2F0KGlvKHIpKSwgbyAmJiAiZWRnZSIuY29uY2F0KGlvKG8pKSwgInNpemUiLmNvbmNhdChp byhhKSldIH0sIG11LCB0KTsNCiAgICAgICAgICAgICAgfSkobSk7DQogICAgICAgICAgICBy ZXR1cm4gKDAsIE5yLmpzeCkoeXUsIGkoeyBjbGFzc05hbWU6IHMoZy5yb290LCBsKSwgY2Vu dGVyUmlwcGxlOiAhMCwgZm9jdXNSaXBwbGU6ICFmLCBkaXNhYmxlZDogZCwgcmVmOiB0LCBv d25lclN0YXRlOiBtIH0sIGgsIHsgY2hpbGRyZW46IG8gfSkpOw0KICAgICAgICAgIH0pLA0K ICAgICAgICAgIHd1ID0gYnU7DQogICAgICAgIGZ1bmN0aW9uIHh1KGUpIHsNCiAgICAgICAg ICByZXR1cm4ganIoIk11aVN2Z0ljb24iLCBlKTsNCiAgICAgICAgfQ0KICAgICAgICBJcigi TXVpU3ZnSWNvbiIsIFsicm9vdCIsICJjb2xvclByaW1hcnkiLCAiY29sb3JTZWNvbmRhcnki LCAiY29sb3JBY3Rpb24iLCAiY29sb3JFcnJvciIsICJjb2xvckRpc2FibGVkIiwgImZvbnRT aXplSW5oZXJpdCIsICJmb250U2l6ZVNtYWxsIiwgImZvbnRTaXplTWVkaXVtIiwgImZvbnRT aXplTGFyZ2UiXSk7DQogICAgICAgIGNvbnN0IFN1ID0gWyJjaGlsZHJlbiIsICJjbGFzc05h bWUiLCAiY29sb3IiLCAiY29tcG9uZW50IiwgImZvbnRTaXplIiwgImh0bWxDb2xvciIsICJp bmhlcml0Vmlld0JveCIsICJ0aXRsZUFjY2VzcyIsICJ2aWV3Qm94Il0sDQogICAgICAgICAg a3UgPSBZbigic3ZnIiwgew0KICAgICAgICAgICAgbmFtZTogIk11aVN2Z0ljb24iLA0KICAg ICAgICAgICAgc2xvdDogIlJvb3QiLA0KICAgICAgICAgICAgb3ZlcnJpZGVzUmVzb2x2ZXI6 IChlLCB0KSA9PiB7DQogICAgICAgICAgICAgIGNvbnN0IHsgb3duZXJTdGF0ZTogbiB9ID0g ZTsNCiAgICAgICAgICAgICAgcmV0dXJuIFt0LnJvb3QsICJpbmhlcml0IiAhPT0gbi5jb2xv ciAmJiB0WyJjb2xvciIuY29uY2F0KGlvKG4uY29sb3IpKV0sIHRbImZvbnRTaXplIi5jb25j YXQoaW8obi5mb250U2l6ZSkpXV07DQogICAgICAgICAgICB9LA0KICAgICAgICAgIH0pKChl KSA9PiB7DQogICAgICAgICAgICBsZXQgeyB0aGVtZTogdCwgb3duZXJTdGF0ZTogbiB9ID0g ZTsNCiAgICAgICAgICAgIHZhciByLCBvLCBhLCBpLCBsLCBzLCB1LCBjLCBkLCBmLCBwLCBo LCBtOw0KICAgICAgICAgICAgcmV0dXJuIHsNCiAgICAgICAgICAgICAgdXNlclNlbGVjdDog Im5vbmUiLA0KICAgICAgICAgICAgICB3aWR0aDogIjFlbSIsDQogICAgICAgICAgICAgIGhl aWdodDogIjFlbSIsDQogICAgICAgICAgICAgIGRpc3BsYXk6ICJpbmxpbmUtYmxvY2siLA0K ICAgICAgICAgICAgICBmaWxsOiBuLmhhc1N2Z0FzQ2hpbGQgPyB2b2lkIDAgOiAiY3VycmVu dENvbG9yIiwNCiAgICAgICAgICAgICAgZmxleFNocmluazogMCwNCiAgICAgICAgICAgICAg dHJhbnNpdGlvbjogbnVsbCA9PSAociA9IHQudHJhbnNpdGlvbnMpIHx8IG51bGwgPT0gKG8g PSByLmNyZWF0ZSkgPyB2b2lkIDAgOiBvLmNhbGwociwgImZpbGwiLCB7IGR1cmF0aW9uOiBu dWxsID09IChhID0gdC50cmFuc2l0aW9ucykgfHwgbnVsbCA9PSAoYSA9IGEuZHVyYXRpb24p ID8gdm9pZCAwIDogYS5zaG9ydGVyIH0pLA0KICAgICAgICAgICAgICBmb250U2l6ZTogew0K ICAgICAgICAgICAgICAgIGluaGVyaXQ6ICJpbmhlcml0IiwNCiAgICAgICAgICAgICAgICBz bWFsbDogKG51bGwgPT0gKGkgPSB0LnR5cG9ncmFwaHkpIHx8IG51bGwgPT0gKGwgPSBpLnB4 VG9SZW0pID8gdm9pZCAwIDogbC5jYWxsKGksIDIwKSkgfHwgIjEuMjVyZW0iLA0KICAgICAg ICAgICAgICAgIG1lZGl1bTogKG51bGwgPT0gKHMgPSB0LnR5cG9ncmFwaHkpIHx8IG51bGwg PT0gKHUgPSBzLnB4VG9SZW0pID8gdm9pZCAwIDogdS5jYWxsKHMsIDI0KSkgfHwgIjEuNXJl bSIsDQogICAgICAgICAgICAgICAgbGFyZ2U6IChudWxsID09IChjID0gdC50eXBvZ3JhcGh5 KSB8fCBudWxsID09IChkID0gYy5weFRvUmVtKSA/IHZvaWQgMCA6IGQuY2FsbChjLCAzNSkp IHx8ICIyLjE4NzVyZW0iLA0KICAgICAgICAgICAgICB9W24uZm9udFNpemVdLA0KICAgICAg ICAgICAgICBjb2xvcjoNCiAgICAgICAgICAgICAgICBudWxsICE9IChmID0gbnVsbCA9PSAo cCA9ICh0LnZhcnMgfHwgdCkucGFsZXR0ZSkgfHwgbnVsbCA9PSAocCA9IHBbbi5jb2xvcl0p ID8gdm9pZCAwIDogcC5tYWluKQ0KICAgICAgICAgICAgICAgICAgPyBmDQogICAgICAgICAg ICAgICAgICA6IHsNCiAgICAgICAgICAgICAgICAgICAgYWN0aW9uOiBudWxsID09IChoID0g KHQudmFycyB8fCB0KS5wYWxldHRlKSB8fCBudWxsID09IChoID0gaC5hY3Rpb24pID8gdm9p ZCAwIDogaC5hY3RpdmUsDQogICAgICAgICAgICAgICAgICAgIGRpc2FibGVkOiBudWxsID09 IChtID0gKHQudmFycyB8fCB0KS5wYWxldHRlKSB8fCBudWxsID09IChtID0gbS5hY3Rpb24p ID8gdm9pZCAwIDogbS5kaXNhYmxlZCwNCiAgICAgICAgICAgICAgICAgICAgaW5oZXJpdDog dm9pZCAwLA0KICAgICAgICAgICAgICAgICAgfVtuLmNvbG9yXSwNCiAgICAgICAgICAgIH07 DQogICAgICAgICAgfSksDQogICAgICAgICAgRXUgPSB0LmZvcndhcmRSZWYoZnVuY3Rpb24g KGUsIG4pIHsNCiAgICAgICAgICAgIGNvbnN0IHIgPSB0cih7IHByb3BzOiBlLCBuYW1lOiAi TXVpU3ZnSWNvbiIgfSksDQogICAgICAgICAgICAgIHsgY2hpbGRyZW46IG8sIGNsYXNzTmFt ZTogbCwgY29sb3I6IHUgPSAiaW5oZXJpdCIsIGNvbXBvbmVudDogZCA9ICJzdmciLCBmb250 U2l6ZTogZiA9ICJtZWRpdW0iLCBodG1sQ29sb3I6IHAsIGluaGVyaXRWaWV3Qm94OiBoID0g ITEsIHRpdGxlQWNjZXNzOiBtLCB2aWV3Qm94OiBnID0gIjAgMCAyNCAyNCIgfSA9IHIsDQog ICAgICAgICAgICAgIHYgPSBhKHIsIFN1KSwNCiAgICAgICAgICAgICAgeSA9IHQuaXNWYWxp ZEVsZW1lbnQobykgJiYgInN2ZyIgPT09IG8udHlwZSwNCiAgICAgICAgICAgICAgYiA9IGko e30sIHIsIHsgY29sb3I6IHUsIGNvbXBvbmVudDogZCwgZm9udFNpemU6IGYsIGluc3RhbmNl Rm9udFNpemU6IGUuZm9udFNpemUsIGluaGVyaXRWaWV3Qm94OiBoLCB2aWV3Qm94OiBnLCBo YXNTdmdBc0NoaWxkOiB5IH0pLA0KICAgICAgICAgICAgICB3ID0ge307DQogICAgICAgICAg ICBoIHx8ICh3LnZpZXdCb3ggPSBnKTsNCiAgICAgICAgICAgIGNvbnN0IHggPSAoKGUpID0+ IHsNCiAgICAgICAgICAgICAgY29uc3QgeyBjb2xvcjogdCwgZm9udFNpemU6IG4sIGNsYXNz ZXM6IHIgfSA9IGU7DQogICAgICAgICAgICAgIHJldHVybiBjKHsgcm9vdDogWyJyb290Iiwg ImluaGVyaXQiICE9PSB0ICYmICJjb2xvciIuY29uY2F0KGlvKHQpKSwgImZvbnRTaXplIi5j b25jYXQoaW8obikpXSB9LCB4dSwgcik7DQogICAgICAgICAgICB9KShiKTsNCiAgICAgICAg ICAgIHJldHVybiAoMCwNCiAgICAgICAgICAgICAgTnIuanN4cykoa3UsIGkoeyBhczogZCwg Y2xhc3NOYW1lOiBzKHgucm9vdCwgbCksIGZvY3VzYWJsZTogImZhbHNlIiwgY29sb3I6IHAs ICJhcmlhLWhpZGRlbiI6ICFtIHx8IHZvaWQgMCwgcm9sZTogbSA/ICJpbWciIDogdm9pZCAw LCByZWY6IG4gfSwgdywgdiwgeSAmJiBvLnByb3BzLCB7IG93bmVyU3RhdGU6IGIsIGNoaWxk cmVuOiBbeSA/IG8ucHJvcHMuY2hpbGRyZW4gOiBvLCBtID8gKDAsIE5yLmpzeCkoInRpdGxl IiwgeyBjaGlsZHJlbjogbSB9KSA6IG51bGxdIH0pKTsNCiAgICAgICAgICB9KTsNCiAgICAg ICAgRXUubXVpTmFtZSA9ICJTdmdJY29uIjsNCiAgICAgICAgY29uc3QgQ3UgPSBFdTsNCiAg ICAgICAgZnVuY3Rpb24gUnUoZSwgbikgew0KICAgICAgICAgIGZ1bmN0aW9uIHIodCwgcikg ew0KICAgICAgICAgICAgcmV0dXJuICgwLCBOci5qc3gpKEN1LCBpKHsgImRhdGEtdGVzdGlk IjogIiIuY29uY2F0KG4sICJJY29uIiksIHJlZjogciB9LCB0LCB7IGNoaWxkcmVuOiBlIH0p KTsNCiAgICAgICAgICB9DQogICAgICAgICAgcmV0dXJuIChyLm11aU5hbWUgPSBDdS5tdWlO YW1lKSwgdC5tZW1vKHQuZm9yd2FyZFJlZihyKSk7DQogICAgICAgIH0NCiAgICAgICAgY29u c3QgX3UgPSBSdSgNCiAgICAgICAgICAoMCwgTnIuanN4KSgicGF0aCIsIHsNCiAgICAgICAg ICAgIGQ6DQogICAgICAgICAgICAgICJNMjAsMTJBOCw4IDAgMCwxIDEyLDIwQTgsOCAwIDAs MSA0LDEyQTgsOCAwIDAsMSAxMiw0QzEyLjc2LDQgMTMuNSw0LjExIDE0LjIsIDQuMzFMMTUu NzcsMi43NEMxNC42MSwyLjI2IDEzLjM0LDIgMTIsMkExMCwxMCAwIDAsMCAyLDEyQTEwLDEw IDAgMCwwIDEyLDIyQTEwLDEwIDAgMCwgMCAyMiwxMk03LjkxLDEwLjA4TDYuNSwxMS41TDEx LDE2TDIxLDZMMTkuNTksNC41OEwxMSwxMy4xN0w3LjkxLDEwLjA4WiIsDQogICAgICAgICAg fSksDQogICAgICAgICAgIlN1Y2Nlc3NPdXRsaW5lZCINCiAgICAgICAgKSwNCiAgICAgICAg ICBQdSA9IFJ1KCgwLCBOci5qc3gpKCJwYXRoIiwgeyBkOiAiTTEyIDUuOTlMMTkuNTMgMTlI NC40N0wxMiA1Ljk5TTEyIDJMMSAyMWgyMkwxMiAyem0xIDE0aC0ydjJoMnYtMnptMC02aC0y djRoMnYtNHoiIH0pLCAiUmVwb3J0UHJvYmxlbU91dGxpbmVkIiksDQogICAgICAgICAgT3Ug PSBSdSgNCiAgICAgICAgICAgICgwLCBOci5qc3gpKCJwYXRoIiwgeyBkOiAiTTExIDE1aDJ2 MmgtMnptMC04aDJ2NmgtMnptLjk5LTVDNi40NyAyIDIgNi40OCAyIDEyczQuNDcgMTAgOS45 OSAxMEMxNy41MiAyMiAyMiAxNy41MiAyMiAxMlMxNy41MiAyIDExLjk5IDJ6TTEyIDIwYy00 LjQyIDAtOC0zLjU4LTgtOHMzLjU4LTggOC04IDggMy41OCA4IDgtMy41OCA4LTggOHoiIH0p LA0KICAgICAgICAgICAgIkVycm9yT3V0bGluZSINCiAgICAgICAgICApLA0KICAgICAgICAg IE51ID0gUnUoDQogICAgICAgICAgICAoMCwgTnIuanN4KSgicGF0aCIsIHsNCiAgICAgICAg ICAgICAgZDogIk0xMSw5SDEzVjdIMTFNMTIsMjBDNy41OSwyMCA0LDE2LjQxIDQsMTJDNCw3 LjU5IDcuNTksNCAxMiw0QzE2LjQxLDQgMjAsNy41OSAyMCwgMTJDMjAsMTYuNDEgMTYuNDEs MjAgMTIsMjBNMTIsMkExMCwxMCAwIDAsMCAyLDEyQTEwLDEwIDAgMCwwIDEyLDIyQTEwLDEw IDAgMCwwIDIyLDEyQTEwLCAxMCAwIDAsMCAxMiwyTTExLDE3SDEzVjExSDExVjE3WiIsDQog ICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICJJbmZvT3V0bGluZWQiDQogICAgICAgICAg KSwNCiAgICAgICAgICBUdSA9IFJ1KCgwLCBOci5qc3gpKCJwYXRoIiwgeyBkOiAiTTE5IDYu NDFMMTcuNTkgNSAxMiAxMC41OSA2LjQxIDUgNSA2LjQxIDEwLjU5IDEyIDUgMTcuNTkgNi40 MSAxOSAxMiAxMy40MSAxNy41OSAxOSAxOSAxNy41OSAxMy40MSAxMnoiIH0pLCAiQ2xvc2Ui KSwNCiAgICAgICAgICBBdSA9IFsiYWN0aW9uIiwgImNoaWxkcmVuIiwgImNsYXNzTmFtZSIs ICJjbG9zZVRleHQiLCAiY29sb3IiLCAiY29tcG9uZW50cyIsICJjb21wb25lbnRzUHJvcHMi LCAiaWNvbiIsICJpY29uTWFwcGluZyIsICJvbkNsb3NlIiwgInJvbGUiLCAic2V2ZXJpdHki LCAic2xvdFByb3BzIiwgInNsb3RzIiwgInZhcmlhbnQiXSwNCiAgICAgICAgICBNdSA9IFlu KGZ1LCB7DQogICAgICAgICAgICBuYW1lOiAiTXVpQWxlcnQiLA0KICAgICAgICAgICAgc2xv dDogIlJvb3QiLA0KICAgICAgICAgICAgb3ZlcnJpZGVzUmVzb2x2ZXI6IChlLCB0KSA9PiB7 DQogICAgICAgICAgICAgIGNvbnN0IHsgb3duZXJTdGF0ZTogbiB9ID0gZTsNCiAgICAgICAg ICAgICAgcmV0dXJuIFt0LnJvb3QsIHRbbi52YXJpYW50XSwgdFsiIi5jb25jYXQobi52YXJp YW50KS5jb25jYXQoaW8obi5jb2xvciB8fCBuLnNldmVyaXR5KSldXTsNCiAgICAgICAgICAg IH0sDQogICAgICAgICAgfSkoKGUpID0+IHsNCiAgICAgICAgICAgIGxldCB7IHRoZW1lOiB0 LCBvd25lclN0YXRlOiBuIH0gPSBlOw0KICAgICAgICAgICAgY29uc3QgciA9ICJsaWdodCIg PT09IHQucGFsZXR0ZS5tb2RlID8gdiA6IHksDQogICAgICAgICAgICAgIG8gPSAibGlnaHQi ID09PSB0LnBhbGV0dGUubW9kZSA/IHkgOiB2LA0KICAgICAgICAgICAgICBhID0gbi5jb2xv ciB8fCBuLnNldmVyaXR5Ow0KICAgICAgICAgICAgcmV0dXJuIGkoDQogICAgICAgICAgICAg IHt9LA0KICAgICAgICAgICAgICB0LnR5cG9ncmFwaHkuYm9keTIsDQogICAgICAgICAgICAg IHsgYmFja2dyb3VuZENvbG9yOiAidHJhbnNwYXJlbnQiLCBkaXNwbGF5OiAiZmxleCIsIHBh ZGRpbmc6ICI2cHggMTZweCIgfSwNCiAgICAgICAgICAgICAgYSAmJg0KICAgICAgICAgICAg ICAic3RhbmRhcmQiID09PSBuLnZhcmlhbnQgJiYgew0KICAgICAgICAgICAgICAgIGNvbG9y OiB0LnZhcnMgPyB0LnZhcnMucGFsZXR0ZS5BbGVydFsiIi5jb25jYXQoYSwgIkNvbG9yIild IDogcih0LnBhbGV0dGVbYV0ubGlnaHQsIDAuNiksDQogICAgICAgICAgICAgICAgYmFja2dy b3VuZENvbG9yOiB0LnZhcnMgPyB0LnZhcnMucGFsZXR0ZS5BbGVydFsiIi5jb25jYXQoYSwg IlN0YW5kYXJkQmciKV0gOiBvKHQucGFsZXR0ZVthXS5saWdodCwgMC45KSwNCiAgICAgICAg ICAgICAgICBbIiYgLiIuY29uY2F0KGh1Lmljb24pXTogdC52YXJzID8geyBjb2xvcjogdC52 YXJzLnBhbGV0dGUuQWxlcnRbIiIuY29uY2F0KGEsICJJY29uQ29sb3IiKV0gfSA6IHsgY29s b3I6IHQucGFsZXR0ZVthXS5tYWluIH0sDQogICAgICAgICAgICAgIH0sDQogICAgICAgICAg ICAgIGEgJiYNCiAgICAgICAgICAgICAgIm91dGxpbmVkIiA9PT0gbi52YXJpYW50ICYmIHsN CiAgICAgICAgICAgICAgICBjb2xvcjogdC52YXJzID8gdC52YXJzLnBhbGV0dGUuQWxlcnRb IiIuY29uY2F0KGEsICJDb2xvciIpXSA6IHIodC5wYWxldHRlW2FdLmxpZ2h0LCAwLjYpLA0K ICAgICAgICAgICAgICAgIGJvcmRlcjogIjFweCBzb2xpZCAiLmNvbmNhdCgodC52YXJzIHx8 IHQpLnBhbGV0dGVbYV0ubGlnaHQpLA0KICAgICAgICAgICAgICAgIFsiJiAuIi5jb25jYXQo aHUuaWNvbildOiB0LnZhcnMgPyB7IGNvbG9yOiB0LnZhcnMucGFsZXR0ZS5BbGVydFsiIi5j b25jYXQoYSwgIkljb25Db2xvciIpXSB9IDogeyBjb2xvcjogdC5wYWxldHRlW2FdLm1haW4g fSwNCiAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgYSAmJg0KICAgICAgICAgICAg ICAiZmlsbGVkIiA9PT0gbi52YXJpYW50ICYmDQogICAgICAgICAgICAgIGkoDQogICAgICAg ICAgICAgICAgeyBmb250V2VpZ2h0OiB0LnR5cG9ncmFwaHkuZm9udFdlaWdodE1lZGl1bSB9 LA0KICAgICAgICAgICAgICAgIHQudmFycw0KICAgICAgICAgICAgICAgICAgPyB7IGNvbG9y OiB0LnZhcnMucGFsZXR0ZS5BbGVydFsiIi5jb25jYXQoYSwgIkZpbGxlZENvbG9yIildLCBi YWNrZ3JvdW5kQ29sb3I6IHQudmFycy5wYWxldHRlLkFsZXJ0WyIiLmNvbmNhdChhLCAiRmls bGVkQmciKV0gfQ0KICAgICAgICAgICAgICAgICAgOiB7IGJhY2tncm91bmRDb2xvcjogImRh cmsiID09PSB0LnBhbGV0dGUubW9kZSA/IHQucGFsZXR0ZVthXS5kYXJrIDogdC5wYWxldHRl W2FdLm1haW4sIGNvbG9yOiB0LnBhbGV0dGUuZ2V0Q29udHJhc3RUZXh0KHQucGFsZXR0ZVth XS5tYWluKSB9DQogICAgICAgICAgICAgICkNCiAgICAgICAgICAgICk7DQogICAgICAgICAg fSksDQogICAgICAgICAgenUgPSBZbigiZGl2IiwgeyBuYW1lOiAiTXVpQWxlcnQiLCBzbG90 OiAiSWNvbiIsIG92ZXJyaWRlc1Jlc29sdmVyOiAoZSwgdCkgPT4gdC5pY29uIH0pKHsgbWFy Z2luUmlnaHQ6IDEyLCBwYWRkaW5nOiAiN3B4IDAiLCBkaXNwbGF5OiAiZmxleCIsIGZvbnRT aXplOiAyMiwgb3BhY2l0eTogMC45IH0pLA0KICAgICAgICAgIGp1ID0gWW4oImRpdiIsIHsg bmFtZTogIk11aUFsZXJ0Iiwgc2xvdDogIk1lc3NhZ2UiLCBvdmVycmlkZXNSZXNvbHZlcjog KGUsIHQpID0+IHQubWVzc2FnZSB9KSh7IHBhZGRpbmc6ICI4cHggMCIsIG1pbldpZHRoOiAw LCBvdmVyZmxvdzogImF1dG8iIH0pLA0KICAgICAgICAgIEl1ID0gWW4oImRpdiIsIHsgbmFt ZTogIk11aUFsZXJ0Iiwgc2xvdDogIkFjdGlvbiIsIG92ZXJyaWRlc1Jlc29sdmVyOiAoZSwg dCkgPT4gdC5hY3Rpb24gfSkoeyBkaXNwbGF5OiAiZmxleCIsIGFsaWduSXRlbXM6ICJmbGV4 LXN0YXJ0IiwgcGFkZGluZzogIjRweCAwIDAgMTZweCIsIG1hcmdpbkxlZnQ6ICJhdXRvIiwg bWFyZ2luUmlnaHQ6IC04IH0pLA0KICAgICAgICAgIEx1ID0geyBzdWNjZXNzOiAoMCwgTnIu anN4KShfdSwgeyBmb250U2l6ZTogImluaGVyaXQiIH0pLCB3YXJuaW5nOiAoMCwgTnIuanN4 KShQdSwgeyBmb250U2l6ZTogImluaGVyaXQiIH0pLCBlcnJvcjogKDAsIE5yLmpzeCkoT3Us IHsgZm9udFNpemU6ICJpbmhlcml0IiB9KSwgaW5mbzogKDAsIE5yLmpzeCkoTnUsIHsgZm9u dFNpemU6ICJpbmhlcml0IiB9KSB9LA0KICAgICAgICAgIEZ1ID0gdC5mb3J3YXJkUmVmKGZ1 bmN0aW9uIChlLCB0KSB7DQogICAgICAgICAgICB2YXIgbiwgciwgbywgbCwgdSwgZDsNCiAg ICAgICAgICAgIGNvbnN0IGYgPSB0cih7IHByb3BzOiBlLCBuYW1lOiAiTXVpQWxlcnQiIH0p LA0KICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgYWN0aW9uOiBwLA0KICAgICAg ICAgICAgICAgIGNoaWxkcmVuOiBoLA0KICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogbSwN CiAgICAgICAgICAgICAgICBjbG9zZVRleHQ6IGcgPSAiQ2xvc2UiLA0KICAgICAgICAgICAg ICAgIGNvbG9yOiB2LA0KICAgICAgICAgICAgICAgIGNvbXBvbmVudHM6IHkgPSB7fSwNCiAg ICAgICAgICAgICAgICBjb21wb25lbnRzUHJvcHM6IGIgPSB7fSwNCiAgICAgICAgICAgICAg ICBpY29uOiB3LA0KICAgICAgICAgICAgICAgIGljb25NYXBwaW5nOiB4ID0gTHUsDQogICAg ICAgICAgICAgICAgb25DbG9zZTogUywNCiAgICAgICAgICAgICAgICByb2xlOiBrID0gImFs ZXJ0IiwNCiAgICAgICAgICAgICAgICBzZXZlcml0eTogRSA9ICJzdWNjZXNzIiwNCiAgICAg ICAgICAgICAgICBzbG90UHJvcHM6IEMgPSB7fSwNCiAgICAgICAgICAgICAgICBzbG90czog UiA9IHt9LA0KICAgICAgICAgICAgICAgIHZhcmlhbnQ6IF8gPSAic3RhbmRhcmQiLA0KICAg ICAgICAgICAgICB9ID0gZiwNCiAgICAgICAgICAgICAgUCA9IGEoZiwgQXUpLA0KICAgICAg ICAgICAgICBPID0gaSh7fSwgZiwgeyBjb2xvcjogdiwgc2V2ZXJpdHk6IEUsIHZhcmlhbnQ6 IF8gfSksDQogICAgICAgICAgICAgIE4gPSAoKGUpID0+IHsNCiAgICAgICAgICAgICAgICBj b25zdCB7IHZhcmlhbnQ6IHQsIGNvbG9yOiBuLCBzZXZlcml0eTogciwgY2xhc3NlczogbyB9 ID0gZTsNCiAgICAgICAgICAgICAgICByZXR1cm4gYyh7IHJvb3Q6IFsicm9vdCIsICIiLmNv bmNhdCh0KS5jb25jYXQoaW8obiB8fCByKSksICIiLmNvbmNhdCh0KV0sIGljb246IFsiaWNv biJdLCBtZXNzYWdlOiBbIm1lc3NhZ2UiXSwgYWN0aW9uOiBbImFjdGlvbiJdIH0sIHB1LCBv KTsNCiAgICAgICAgICAgICAgfSkoTyksDQogICAgICAgICAgICAgIFQgPSBudWxsICE9IChu ID0gbnVsbCAhPSAociA9IFIuY2xvc2VCdXR0b24pID8gciA6IHkuQ2xvc2VCdXR0b24pID8g biA6IHd1LA0KICAgICAgICAgICAgICBBID0gbnVsbCAhPSAobyA9IG51bGwgIT0gKGwgPSBS LmNsb3NlSWNvbikgPyBsIDogeS5DbG9zZUljb24pID8gbyA6IFR1LA0KICAgICAgICAgICAg ICBNID0gbnVsbCAhPSAodSA9IEMuY2xvc2VCdXR0b24pID8gdSA6IGIuY2xvc2VCdXR0b24s DQogICAgICAgICAgICAgIHogPSBudWxsICE9IChkID0gQy5jbG9zZUljb24pID8gZCA6IGIu Y2xvc2VJY29uOw0KICAgICAgICAgICAgcmV0dXJuICgwLA0KICAgICAgICAgICAgICBOci5q c3hzKShNdSwgaSh7IHJvbGU6IGssIGVsZXZhdGlvbjogMCwgb3duZXJTdGF0ZTogTywgY2xh c3NOYW1lOiBzKE4ucm9vdCwgbSksIHJlZjogdCB9LCBQLCB7IGNoaWxkcmVuOiBbITEgIT09 IHcgPyAoMCwgTnIuanN4KSh6dSwgeyBvd25lclN0YXRlOiBPLCBjbGFzc05hbWU6IE4uaWNv biwgY2hpbGRyZW46IHcgfHwgeFtFXSB8fCBMdVtFXSB9KSA6IG51bGwsICgwLCBOci5qc3gp KGp1LCB7IG93bmVyU3RhdGU6IE8sIGNsYXNzTmFtZTogTi5tZXNzYWdlLCBjaGlsZHJlbjog aCB9KSwgbnVsbCAhPSBwID8gKDAsIE5yLmpzeCkoSXUsIHsgb3duZXJTdGF0ZTogTywgY2xh c3NOYW1lOiBOLmFjdGlvbiwgY2hpbGRyZW46IHAgfSkgOiBudWxsLCBudWxsID09IHAgJiYg UyA/ICgwLCBOci5qc3gpKEl1LCB7IG93bmVyU3RhdGU6IE8sIGNsYXNzTmFtZTogTi5hY3Rp b24sIGNoaWxkcmVuOiAoMCwgTnIuanN4KShULCBpKHsgc2l6ZTogInNtYWxsIiwgImFyaWEt bGFiZWwiOiBnLCB0aXRsZTogZywgY29sb3I6ICJpbmhlcml0Iiwgb25DbGljazogUyB9LCBN LCB7IGNoaWxkcmVuOiAoMCwgTnIuanN4KShBLCBpKHsgZm9udFNpemU6ICJzbWFsbCIgfSwg eikpIH0pKSB9KSA6IG51bGxdIH0pKTsNCiAgICAgICAgICB9KSwNCiAgICAgICAgICBCdSA9 IEZ1LA0KICAgICAgICAgIER1ID0gZ24oKSwNCiAgICAgICAgICBVdSA9IFsiY29tcG9uZW50 IiwgImRpcmVjdGlvbiIsICJzcGFjaW5nIiwgImRpdmlkZXIiLCAiY2hpbGRyZW4iLCAiY2xh c3NOYW1lIiwgInVzZUZsZXhHYXAiXSwNCiAgICAgICAgICBXdSA9IG5uKCksDQogICAgICAg ICAgVnUgPSBEdSgiZGl2IiwgeyBuYW1lOiAiTXVpU3RhY2siLCBzbG90OiAiUm9vdCIsIG92 ZXJyaWRlc1Jlc29sdmVyOiAoZSwgdCkgPT4gdC5yb290IH0pOw0KICAgICAgICBmdW5jdGlv biBIdShlKSB7DQogICAgICAgICAgcmV0dXJuIGVyKHsgcHJvcHM6IGUsIG5hbWU6ICJNdWlT dGFjayIsIGRlZmF1bHRUaGVtZTogV3UgfSk7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rp b24gcXUoZSwgbikgew0KICAgICAgICAgIGNvbnN0IHIgPSB0LkNoaWxkcmVuLnRvQXJyYXko ZSkuZmlsdGVyKEJvb2xlYW4pOw0KICAgICAgICAgIHJldHVybiByLnJlZHVjZSgoZSwgbywg YSkgPT4gKGUucHVzaChvKSwgYSA8IHIubGVuZ3RoIC0gMSAmJiBlLnB1c2godC5jbG9uZUVs ZW1lbnQobiwgeyBrZXk6ICJzZXBhcmF0b3ItIi5jb25jYXQoYSkgfSkpLCBlKSwgW10pOw0K ICAgICAgICB9DQogICAgICAgIGNvbnN0ICR1ID0gKGUpID0+IHsNCiAgICAgICAgICBsZXQg eyBvd25lclN0YXRlOiB0LCB0aGVtZTogbiB9ID0gZSwNCiAgICAgICAgICAgIHIgPSBpKA0K ICAgICAgICAgICAgICB7IGRpc3BsYXk6ICJmbGV4IiwgZmxleERpcmVjdGlvbjogImNvbHVt biIgfSwNCiAgICAgICAgICAgICAgb3QoeyB0aGVtZTogbiB9LCBsdCh7IHZhbHVlczogdC5k aXJlY3Rpb24sIGJyZWFrcG9pbnRzOiBuLmJyZWFrcG9pbnRzLnZhbHVlcyB9KSwgKGUpID0+ ICh7IGZsZXhEaXJlY3Rpb246IGUgfSkpDQogICAgICAgICAgICApOw0KICAgICAgICAgIGlm ICh0LnNwYWNpbmcpIHsNCiAgICAgICAgICAgIGNvbnN0IGUgPSB4dChuKSwNCiAgICAgICAg ICAgICAgbyA9IE9iamVjdC5rZXlzKG4uYnJlYWtwb2ludHMudmFsdWVzKS5yZWR1Y2UoKGUs IG4pID0+ICgoKCJvYmplY3QiID09PSB0eXBlb2YgdC5zcGFjaW5nICYmIG51bGwgIT0gdC5z cGFjaW5nW25dKSB8fCAoIm9iamVjdCIgPT09IHR5cGVvZiB0LmRpcmVjdGlvbiAmJiBudWxs ICE9IHQuZGlyZWN0aW9uW25dKSkgJiYgKGVbbl0gPSAhMCksIGUpLCB7fSksDQogICAgICAg ICAgICAgIGEgPSBsdCh7IHZhbHVlczogdC5kaXJlY3Rpb24sIGJhc2U6IG8gfSksDQogICAg ICAgICAgICAgIGkgPSBsdCh7IHZhbHVlczogdC5zcGFjaW5nLCBiYXNlOiBvIH0pOw0KICAg ICAgICAgICAgIm9iamVjdCIgPT09IHR5cGVvZiBhICYmDQogICAgICAgICAgICAgIE9iamVj dC5rZXlzKGEpLmZvckVhY2goKGUsIHQsIG4pID0+IHsNCiAgICAgICAgICAgICAgICBpZiAo IWFbZV0pIHsNCiAgICAgICAgICAgICAgICAgIGNvbnN0IHIgPSB0ID4gMCA/IGFbblt0IC0g MV1dIDogImNvbHVtbiI7DQogICAgICAgICAgICAgICAgICBhW2VdID0gcjsNCiAgICAgICAg ICAgICAgICB9DQogICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgciA9IFplKA0KICAg ICAgICAgICAgICByLA0KICAgICAgICAgICAgICBvdCh7IHRoZW1lOiBuIH0sIGksIChuLCBy KSA9PiB7DQogICAgICAgICAgICAgICAgcmV0dXJuIHQudXNlRmxleEdhcA0KICAgICAgICAg ICAgICAgICAgPyB7IGdhcDogU3QoZSwgbikgfQ0KICAgICAgICAgICAgICAgICAgOiB7DQog ICAgICAgICAgICAgICAgICAgICImID4gOm5vdChzdHlsZSk6bm90KHN0eWxlKSI6IHsgbWFy Z2luOiAwIH0sDQogICAgICAgICAgICAgICAgICAgICImID4gOm5vdChzdHlsZSkgfiA6bm90 KHN0eWxlKSI6IHsgWyJtYXJnaW4iLmNvbmNhdCgoKG8gPSByID8gYVtyXSA6IHQuZGlyZWN0 aW9uKSwgeyByb3c6ICJMZWZ0IiwgInJvdy1yZXZlcnNlIjogIlJpZ2h0IiwgY29sdW1uOiAi VG9wIiwgImNvbHVtbi1yZXZlcnNlIjogIkJvdHRvbSIgfVtvXSkpXTogU3QoZSwgbikgfSwN CiAgICAgICAgICAgICAgICAgIH07DQogICAgICAgICAgICAgICAgdmFyIG87DQogICAgICAg ICAgICAgIH0pDQogICAgICAgICAgICApOw0KICAgICAgICAgIH0NCiAgICAgICAgICByZXR1 cm4gKA0KICAgICAgICAgICAgKHIgPSAoZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgICAg Y29uc3QgdCA9IGF0KGUpOw0KICAgICAgICAgICAgICBmb3IgKHZhciBuID0gYXJndW1lbnRz Lmxlbmd0aCwgciA9IG5ldyBBcnJheShuID4gMSA/IG4gLSAxIDogMCksIG8gPSAxOyBvIDwg bjsgbysrKSByW28gLSAxXSA9IGFyZ3VtZW50c1tvXTsNCiAgICAgICAgICAgICAgY29uc3Qg YSA9IFt0LCAuLi5yXS5yZWR1Y2UoKGUsIHQpID0+IFplKGUsIHQpLCB7fSk7DQogICAgICAg ICAgICAgIHJldHVybiBpdChPYmplY3Qua2V5cyh0KSwgYSk7DQogICAgICAgICAgICB9KShu LmJyZWFrcG9pbnRzLCByKSksDQogICAgICAgICAgICByDQogICAgICAgICAgKTsNCiAgICAg ICAgfTsNCiAgICAgICAgY29uc3QgS3UgPSAoZnVuY3Rpb24gKCkgew0KICAgICAgICAgIGxl dCBlID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgdm9pZCAwICE9PSBhcmd1bWVudHNbMF0g PyBhcmd1bWVudHNbMF0gOiB7fTsNCiAgICAgICAgICBjb25zdCB7IGNyZWF0ZVN0eWxlZENv bXBvbmVudDogbiA9IFZ1LCB1c2VUaGVtZVByb3BzOiByID0gSHUsIGNvbXBvbmVudE5hbWU6 IG8gPSAiTXVpU3RhY2siIH0gPSBlLA0KICAgICAgICAgICAgbCA9IG4oJHUpLA0KICAgICAg ICAgICAgdSA9IHQuZm9yd2FyZFJlZihmdW5jdGlvbiAoZSwgdCkgew0KICAgICAgICAgICAg ICBjb25zdCBuID0gcGEocihlKSksDQogICAgICAgICAgICAgICAgeyBjb21wb25lbnQ6IHUg PSAiZGl2IiwgZGlyZWN0aW9uOiBkID0gImNvbHVtbiIsIHNwYWNpbmc6IGYgPSAwLCBkaXZp ZGVyOiBwLCBjaGlsZHJlbjogaCwgY2xhc3NOYW1lOiBtLCB1c2VGbGV4R2FwOiBnID0gITEg fSA9IG4sDQogICAgICAgICAgICAgICAgdiA9IGEobiwgVXUpLA0KICAgICAgICAgICAgICAg IHkgPSB7IGRpcmVjdGlvbjogZCwgc3BhY2luZzogZiwgdXNlRmxleEdhcDogZyB9LA0KICAg ICAgICAgICAgICAgIGIgPSBjKHsgcm9vdDogWyJyb290Il0gfSwgKGUpID0+IGpyKG8sIGUp LCB7fSk7DQogICAgICAgICAgICAgIHJldHVybiAoMCwgTnIuanN4KShsLCBpKHsgYXM6IHUs IG93bmVyU3RhdGU6IHksIHJlZjogdCwgY2xhc3NOYW1lOiBzKGIucm9vdCwgbSkgfSwgdiwg eyBjaGlsZHJlbjogcCA/IHF1KGgsIHApIDogaCB9KSk7DQogICAgICAgICAgICB9KTsNCiAg ICAgICAgICByZXR1cm4gdTsNCiAgICAgICAgfSkoeyBjcmVhdGVTdHlsZWRDb21wb25lbnQ6 IFluKCJkaXYiLCB7IG5hbWU6ICJNdWlTdGFjayIsIHNsb3Q6ICJSb290Iiwgb3ZlcnJpZGVz UmVzb2x2ZXI6IChlLCB0KSA9PiB0LnJvb3QgfSksIHVzZVRoZW1lUHJvcHM6IChlKSA9PiB0 cih7IHByb3BzOiBlLCBuYW1lOiAiTXVpU3RhY2siIH0pIH0pLA0KICAgICAgICAgIFF1ID0g S3U7DQogICAgICAgIGZ1bmN0aW9uIEd1KCkgew0KICAgICAgICAgIHJldHVybiAoMCwgTnIu anN4KShRdSwgeyBzeDogeyB3aWR0aDogIjEwMCUiIH0sIHNwYWNpbmc6IDIsIGNoaWxkcmVu OiAoMCwgTnIuanN4KShCdSwgeyBzZXZlcml0eTogImVycm9yIiwgY2hpbGRyZW46ICJQbGVh c2UgZW50ZXIgY29ycmVjdCBwYXNzd29yZCIgfSkgfSk7DQogICAgICAgIH0NCiAgICAgICAg Y29uc3QgWXUgPSBSdSgoMCwgTnIuanN4KSgicGF0aCIsIHsgZDogIk0xMiAxMmMyLjIxIDAg NC0xLjc5IDQtNHMtMS43OS00LTQtNC00IDEuNzktNCA0IDEuNzkgNCA0IDR6bTAgMmMtMi42 NyAwLTggMS4zNC04IDR2MmgxNnYtMmMwLTIuNjYtNS4zMy00LTgtNHoiIH0pLCAiUGVyc29u Iik7DQogICAgICAgIGZ1bmN0aW9uIFh1KGUpIHsNCiAgICAgICAgICByZXR1cm4ganIoIk11 aUF2YXRhciIsIGUpOw0KICAgICAgICB9DQogICAgICAgIElyKCJNdWlBdmF0YXIiLCBbInJv b3QiLCAiY29sb3JEZWZhdWx0IiwgImNpcmN1bGFyIiwgInJvdW5kZWQiLCAic3F1YXJlIiwg ImltZyIsICJmYWxsYmFjayJdKTsNCiAgICAgICAgY29uc3QgWnUgPSBbImFsdCIsICJjaGls ZHJlbiIsICJjbGFzc05hbWUiLCAiY29tcG9uZW50IiwgImltZ1Byb3BzIiwgInNpemVzIiwg InNyYyIsICJzcmNTZXQiLCAidmFyaWFudCJdLA0KICAgICAgICAgIEp1ID0gWW4oImRpdiIs IHsNCiAgICAgICAgICAgIG5hbWU6ICJNdWlBdmF0YXIiLA0KICAgICAgICAgICAgc2xvdDog IlJvb3QiLA0KICAgICAgICAgICAgb3ZlcnJpZGVzUmVzb2x2ZXI6IChlLCB0KSA9PiB7DQog ICAgICAgICAgICAgIGNvbnN0IHsgb3duZXJTdGF0ZTogbiB9ID0gZTsNCiAgICAgICAgICAg ICAgcmV0dXJuIFt0LnJvb3QsIHRbbi52YXJpYW50XSwgbi5jb2xvckRlZmF1bHQgJiYgdC5j b2xvckRlZmF1bHRdOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICB9KSgoZSkgPT4gew0K ICAgICAgICAgICAgbGV0IHsgdGhlbWU6IHQsIG93bmVyU3RhdGU6IG4gfSA9IGU7DQogICAg ICAgICAgICByZXR1cm4gaSgNCiAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHBv c2l0aW9uOiAicmVsYXRpdmUiLA0KICAgICAgICAgICAgICAgIGRpc3BsYXk6ICJmbGV4IiwN CiAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zOiAiY2VudGVyIiwNCiAgICAgICAgICAgICAg ICBqdXN0aWZ5Q29udGVudDogImNlbnRlciIsDQogICAgICAgICAgICAgICAgZmxleFNocmlu azogMCwNCiAgICAgICAgICAgICAgICB3aWR0aDogNDAsDQogICAgICAgICAgICAgICAgaGVp Z2h0OiA0MCwNCiAgICAgICAgICAgICAgICBmb250RmFtaWx5OiB0LnR5cG9ncmFwaHkuZm9u dEZhbWlseSwNCiAgICAgICAgICAgICAgICBmb250U2l6ZTogdC50eXBvZ3JhcGh5LnB4VG9S ZW0oMjApLA0KICAgICAgICAgICAgICAgIGxpbmVIZWlnaHQ6IDEsDQogICAgICAgICAgICAg ICAgYm9yZGVyUmFkaXVzOiAiNTAlIiwNCiAgICAgICAgICAgICAgICBvdmVyZmxvdzogImhp ZGRlbiIsDQogICAgICAgICAgICAgICAgdXNlclNlbGVjdDogIm5vbmUiLA0KICAgICAgICAg ICAgICB9LA0KICAgICAgICAgICAgICAicm91bmRlZCIgPT09IG4udmFyaWFudCAmJiB7IGJv cmRlclJhZGl1czogKHQudmFycyB8fCB0KS5zaGFwZS5ib3JkZXJSYWRpdXMgfSwNCiAgICAg ICAgICAgICAgInNxdWFyZSIgPT09IG4udmFyaWFudCAmJiB7IGJvcmRlclJhZGl1czogMCB9 LA0KICAgICAgICAgICAgICBuLmNvbG9yRGVmYXVsdCAmJg0KICAgICAgICAgICAgICBpKA0K ICAgICAgICAgICAgICAgIHsgY29sb3I6ICh0LnZhcnMgfHwgdCkucGFsZXR0ZS5iYWNrZ3Jv dW5kLmRlZmF1bHQgfSwNCiAgICAgICAgICAgICAgICB0LnZhcnMgPyB7IGJhY2tncm91bmRD b2xvcjogdC52YXJzLnBhbGV0dGUuQXZhdGFyLmRlZmF1bHRCZyB9IDogeyBiYWNrZ3JvdW5k Q29sb3I6ICJsaWdodCIgPT09IHQucGFsZXR0ZS5tb2RlID8gdC5wYWxldHRlLmdyZXlbNDAw XSA6IHQucGFsZXR0ZS5ncmV5WzYwMF0gfQ0KICAgICAgICAgICAgICApDQogICAgICAgICAg ICApOw0KICAgICAgICAgIH0pLA0KICAgICAgICAgIGVjID0gWW4oImltZyIsIHsgbmFtZTog Ik11aUF2YXRhciIsIHNsb3Q6ICJJbWciLCBvdmVycmlkZXNSZXNvbHZlcjogKGUsIHQpID0+ IHQuaW1nIH0pKHsgd2lkdGg6ICIxMDAlIiwgaGVpZ2h0OiAiMTAwJSIsIHRleHRBbGlnbjog ImNlbnRlciIsIG9iamVjdEZpdDogImNvdmVyIiwgY29sb3I6ICJ0cmFuc3BhcmVudCIsIHRl eHRJbmRlbnQ6IDFlNCB9KSwNCiAgICAgICAgICB0YyA9IFluKFl1LCB7IG5hbWU6ICJNdWlB dmF0YXIiLCBzbG90OiAiRmFsbGJhY2siLCBvdmVycmlkZXNSZXNvbHZlcjogKGUsIHQpID0+ IHQuZmFsbGJhY2sgfSkoeyB3aWR0aDogIjc1JSIsIGhlaWdodDogIjc1JSIgfSk7DQogICAg ICAgIGNvbnN0IG5jID0gdC5mb3J3YXJkUmVmKGZ1bmN0aW9uIChlLCBuKSB7DQogICAgICAg ICAgY29uc3QgciA9IHRyKHsgcHJvcHM6IGUsIG5hbWU6ICJNdWlBdmF0YXIiIH0pLA0KICAg ICAgICAgICAgeyBhbHQ6IG8sIGNoaWxkcmVuOiBsLCBjbGFzc05hbWU6IHUsIGNvbXBvbmVu dDogZCA9ICJkaXYiLCBpbWdQcm9wczogZiwgc2l6ZXM6IHAsIHNyYzogaCwgc3JjU2V0OiBt LCB2YXJpYW50OiBnID0gImNpcmN1bGFyIiB9ID0gciwNCiAgICAgICAgICAgIHYgPSBhKHIs IFp1KTsNCiAgICAgICAgICBsZXQgeSA9IG51bGw7DQogICAgICAgICAgY29uc3QgYiA9IChm dW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgbGV0IHsgY3Jvc3NPcmlnaW46IG4sIHJlZmVy cmVyUG9saWN5OiByLCBzcmM6IG8sIHNyY1NldDogYSB9ID0gZTsNCiAgICAgICAgICAgIGNv bnN0IFtpLCBsXSA9IHQudXNlU3RhdGUoITEpOw0KICAgICAgICAgICAgcmV0dXJuICgNCiAg ICAgICAgICAgICAgdC51c2VFZmZlY3QoKCkgPT4gew0KICAgICAgICAgICAgICAgIGlmICgh byAmJiAhYSkgcmV0dXJuOw0KICAgICAgICAgICAgICAgIGwoITEpOw0KICAgICAgICAgICAg ICAgIGxldCBlID0gITA7DQogICAgICAgICAgICAgICAgY29uc3QgdCA9IG5ldyBJbWFnZSgp Ow0KICAgICAgICAgICAgICAgIHJldHVybiAoDQogICAgICAgICAgICAgICAgICAodC5vbmxv YWQgPSAoKSA9PiB7DQogICAgICAgICAgICAgICAgICAgIGUgJiYgbCgibG9hZGVkIik7DQog ICAgICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgICAgICh0Lm9uZXJyb3IgPSAo KSA9PiB7DQogICAgICAgICAgICAgICAgICAgIGUgJiYgbCgiZXJyb3IiKTsNCiAgICAgICAg ICAgICAgICAgIH0pLA0KICAgICAgICAgICAgICAgICAgKHQuY3Jvc3NPcmlnaW4gPSBuKSwN CiAgICAgICAgICAgICAgICAgICh0LnJlZmVycmVyUG9saWN5ID0gciksDQogICAgICAgICAg ICAgICAgICAodC5zcmMgPSBvKSwNCiAgICAgICAgICAgICAgICAgIGEgJiYgKHQuc3Jjc2V0 ID0gYSksDQogICAgICAgICAgICAgICAgICAoKSA9PiB7DQogICAgICAgICAgICAgICAgICAg IGUgPSAhMTsNCiAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICApOw0KICAg ICAgICAgICAgICB9LCBbbiwgciwgbywgYV0pLA0KICAgICAgICAgICAgICBpDQogICAgICAg ICAgICApOw0KICAgICAgICAgIH0pKGkoe30sIGYsIHsgc3JjOiBoLCBzcmNTZXQ6IG0gfSkp LA0KICAgICAgICAgICAgdyA9IGggfHwgbSwNCiAgICAgICAgICAgIHggPSB3ICYmICJlcnJv ciIgIT09IGIsDQogICAgICAgICAgICBTID0gaSh7fSwgciwgeyBjb2xvckRlZmF1bHQ6ICF4 LCBjb21wb25lbnQ6IGQsIHZhcmlhbnQ6IGcgfSksDQogICAgICAgICAgICBrID0gKChlKSA9 PiB7DQogICAgICAgICAgICAgIGNvbnN0IHsgY2xhc3NlczogdCwgdmFyaWFudDogbiwgY29s b3JEZWZhdWx0OiByIH0gPSBlOw0KICAgICAgICAgICAgICByZXR1cm4gYyh7IHJvb3Q6IFsi cm9vdCIsIG4sIHIgJiYgImNvbG9yRGVmYXVsdCJdLCBpbWc6IFsiaW1nIl0sIGZhbGxiYWNr OiBbImZhbGxiYWNrIl0gfSwgWHUsIHQpOw0KICAgICAgICAgICAgfSkoUyk7DQogICAgICAg ICAgcmV0dXJuICgNCiAgICAgICAgICAgICh5ID0geCA/ICgwLCBOci5qc3gpKGVjLCBpKHsg YWx0OiBvLCBzcmNTZXQ6IG0sIHNyYzogaCwgc2l6ZXM6IHAsIG93bmVyU3RhdGU6IFMsIGNs YXNzTmFtZTogay5pbWcgfSwgZikpIDogbnVsbCAhPSBsID8gbCA6IHcgJiYgbyA/IG9bMF0g OiAoMCwgTnIuanN4KSh0YywgeyBvd25lclN0YXRlOiBTLCBjbGFzc05hbWU6IGsuZmFsbGJh Y2sgfSkpLA0KICAgICAgICAgICAgKDAsIE5yLmpzeCkoSnUsIGkoeyBhczogZCwgb3duZXJT dGF0ZTogUywgY2xhc3NOYW1lOiBzKGsucm9vdCwgdSksIHJlZjogbiB9LCB2LCB7IGNoaWxk cmVuOiB5IH0pKQ0KICAgICAgICAgICk7DQogICAgICAgIH0pOw0KICAgICAgICBmdW5jdGlv biByYyhlKSB7DQogICAgICAgICAgcmV0dXJuIGpyKCJNdWlUeXBvZ3JhcGh5IiwgZSk7DQog ICAgICAgIH0NCiAgICAgICAgSXIoIk11aVR5cG9ncmFwaHkiLCBbDQogICAgICAgICAgInJv b3QiLA0KICAgICAgICAgICJoMSIsDQogICAgICAgICAgImgyIiwNCiAgICAgICAgICAiaDMi LA0KICAgICAgICAgICJoNCIsDQogICAgICAgICAgImg1IiwNCiAgICAgICAgICAiaDYiLA0K ICAgICAgICAgICJzdWJ0aXRsZTEiLA0KICAgICAgICAgICJzdWJ0aXRsZTIiLA0KICAgICAg ICAgICJib2R5MSIsDQogICAgICAgICAgImJvZHkyIiwNCiAgICAgICAgICAiaW5oZXJpdCIs DQogICAgICAgICAgImJ1dHRvbiIsDQogICAgICAgICAgImNhcHRpb24iLA0KICAgICAgICAg ICJvdmVybGluZSIsDQogICAgICAgICAgImFsaWduTGVmdCIsDQogICAgICAgICAgImFsaWdu UmlnaHQiLA0KICAgICAgICAgICJhbGlnbkNlbnRlciIsDQogICAgICAgICAgImFsaWduSnVz dGlmeSIsDQogICAgICAgICAgIm5vV3JhcCIsDQogICAgICAgICAgImd1dHRlckJvdHRvbSIs DQogICAgICAgICAgInBhcmFncmFwaCIsDQogICAgICAgIF0pOw0KICAgICAgICBjb25zdCBv YyA9IFsiYWxpZ24iLCAiY2xhc3NOYW1lIiwgImNvbXBvbmVudCIsICJndXR0ZXJCb3R0b20i LCAibm9XcmFwIiwgInBhcmFncmFwaCIsICJ2YXJpYW50IiwgInZhcmlhbnRNYXBwaW5nIl0s DQogICAgICAgICAgYWMgPSBZbigic3BhbiIsIHsNCiAgICAgICAgICAgIG5hbWU6ICJNdWlU eXBvZ3JhcGh5IiwNCiAgICAgICAgICAgIHNsb3Q6ICJSb290IiwNCiAgICAgICAgICAgIG92 ZXJyaWRlc1Jlc29sdmVyOiAoZSwgdCkgPT4gew0KICAgICAgICAgICAgICBjb25zdCB7IG93 bmVyU3RhdGU6IG4gfSA9IGU7DQogICAgICAgICAgICAgIHJldHVybiBbdC5yb290LCBuLnZh cmlhbnQgJiYgdFtuLnZhcmlhbnRdLCAiaW5oZXJpdCIgIT09IG4uYWxpZ24gJiYgdFsiYWxp Z24iLmNvbmNhdChpbyhuLmFsaWduKSldLCBuLm5vV3JhcCAmJiB0Lm5vV3JhcCwgbi5ndXR0 ZXJCb3R0b20gJiYgdC5ndXR0ZXJCb3R0b20sIG4ucGFyYWdyYXBoICYmIHQucGFyYWdyYXBo XTsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgfSkoKGUpID0+IHsNCiAgICAgICAgICAg IGxldCB7IHRoZW1lOiB0LCBvd25lclN0YXRlOiBuIH0gPSBlOw0KICAgICAgICAgICAgcmV0 dXJuIGkoDQogICAgICAgICAgICAgIHsgbWFyZ2luOiAwIH0sDQogICAgICAgICAgICAgICJp bmhlcml0IiA9PT0gbi52YXJpYW50ICYmIHsgZm9udDogImluaGVyaXQiIH0sDQogICAgICAg ICAgICAgICJpbmhlcml0IiAhPT0gbi52YXJpYW50ICYmIHQudHlwb2dyYXBoeVtuLnZhcmlh bnRdLA0KICAgICAgICAgICAgICAiaW5oZXJpdCIgIT09IG4uYWxpZ24gJiYgeyB0ZXh0QWxp Z246IG4uYWxpZ24gfSwNCiAgICAgICAgICAgICAgbi5ub1dyYXAgJiYgeyBvdmVyZmxvdzog ImhpZGRlbiIsIHRleHRPdmVyZmxvdzogImVsbGlwc2lzIiwgd2hpdGVTcGFjZTogIm5vd3Jh cCIgfSwNCiAgICAgICAgICAgICAgbi5ndXR0ZXJCb3R0b20gJiYgeyBtYXJnaW5Cb3R0b206 ICIwLjM1ZW0iIH0sDQogICAgICAgICAgICAgIG4ucGFyYWdyYXBoICYmIHsgbWFyZ2luQm90 dG9tOiAxNiB9DQogICAgICAgICAgICApOw0KICAgICAgICAgIH0pLA0KICAgICAgICAgIGlj ID0geyBoMTogImgxIiwgaDI6ICJoMiIsIGgzOiAiaDMiLCBoNDogImg0IiwgaDU6ICJoNSIs IGg2OiAiaDYiLCBzdWJ0aXRsZTE6ICJoNiIsIHN1YnRpdGxlMjogImg2IiwgYm9keTE6ICJw IiwgYm9keTI6ICJwIiwgaW5oZXJpdDogInAiIH0sDQogICAgICAgICAgbGMgPSB7IHByaW1h cnk6ICJwcmltYXJ5Lm1haW4iLCB0ZXh0UHJpbWFyeTogInRleHQucHJpbWFyeSIsIHNlY29u ZGFyeTogInNlY29uZGFyeS5tYWluIiwgdGV4dFNlY29uZGFyeTogInRleHQuc2Vjb25kYXJ5 IiwgZXJyb3I6ICJlcnJvci5tYWluIiB9LA0KICAgICAgICAgIHNjID0gdC5mb3J3YXJkUmVm KGZ1bmN0aW9uIChlLCB0KSB7DQogICAgICAgICAgICBjb25zdCBuID0gdHIoeyBwcm9wczog ZSwgbmFtZTogIk11aVR5cG9ncmFwaHkiIH0pLA0KICAgICAgICAgICAgICByID0gKChlKSA9 PiBsY1tlXSB8fCBlKShuLmNvbG9yKSwNCiAgICAgICAgICAgICAgbyA9IHBhKGkoe30sIG4s IHsgY29sb3I6IHIgfSkpLA0KICAgICAgICAgICAgICB7IGFsaWduOiBsID0gImluaGVyaXQi LCBjbGFzc05hbWU6IHUsIGNvbXBvbmVudDogZCwgZ3V0dGVyQm90dG9tOiBmID0gITEsIG5v V3JhcDogcCA9ICExLCBwYXJhZ3JhcGg6IGggPSAhMSwgdmFyaWFudDogbSA9ICJib2R5MSIs IHZhcmlhbnRNYXBwaW5nOiBnID0gaWMgfSA9IG8sDQogICAgICAgICAgICAgIHYgPSBhKG8s IG9jKSwNCiAgICAgICAgICAgICAgeSA9IGkoe30sIG8sIHsgYWxpZ246IGwsIGNvbG9yOiBy LCBjbGFzc05hbWU6IHUsIGNvbXBvbmVudDogZCwgZ3V0dGVyQm90dG9tOiBmLCBub1dyYXA6 IHAsIHBhcmFncmFwaDogaCwgdmFyaWFudDogbSwgdmFyaWFudE1hcHBpbmc6IGcgfSksDQog ICAgICAgICAgICAgIGIgPSBkIHx8IChoID8gInAiIDogZ1ttXSB8fCBpY1ttXSkgfHwgInNw YW4iLA0KICAgICAgICAgICAgICB3ID0gKChlKSA9PiB7DQogICAgICAgICAgICAgICAgY29u c3QgeyBhbGlnbjogdCwgZ3V0dGVyQm90dG9tOiBuLCBub1dyYXA6IHIsIHBhcmFncmFwaDog bywgdmFyaWFudDogYSwgY2xhc3NlczogaSB9ID0gZTsNCiAgICAgICAgICAgICAgICByZXR1 cm4gYyh7IHJvb3Q6IFsicm9vdCIsIGEsICJpbmhlcml0IiAhPT0gZS5hbGlnbiAmJiAiYWxp Z24iLmNvbmNhdChpbyh0KSksIG4gJiYgImd1dHRlckJvdHRvbSIsIHIgJiYgIm5vV3JhcCIs IG8gJiYgInBhcmFncmFwaCJdIH0sIHJjLCBpKTsNCiAgICAgICAgICAgICAgfSkoeSk7DQog ICAgICAgICAgICByZXR1cm4gKDAsIE5yLmpzeCkoYWMsIGkoeyBhczogYiwgcmVmOiB0LCBv d25lclN0YXRlOiB5LCBjbGFzc05hbWU6IHMody5yb290LCB1KSB9LCB2KSk7DQogICAgICAg ICAgfSksDQogICAgICAgICAgdWMgPSBzYzsNCiAgICAgICAgZnVuY3Rpb24gY2MoZSkgew0K ICAgICAgICAgIHJldHVybiBudWxsICE9IGUgJiYgIShBcnJheS5pc0FycmF5KGUpICYmIDAg PT09IGUubGVuZ3RoKTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBkYyhlKSB7DQog ICAgICAgICAgbGV0IHQgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiB2b2lkIDAgIT09IGFy Z3VtZW50c1sxXSAmJiBhcmd1bWVudHNbMV07DQogICAgICAgICAgcmV0dXJuIGUgJiYgKChj YyhlLnZhbHVlKSAmJiAiIiAhPT0gZS52YWx1ZSkgfHwgKHQgJiYgY2MoZS5kZWZhdWx0VmFs dWUpICYmICIiICE9PSBlLmRlZmF1bHRWYWx1ZSkpOw0KICAgICAgICB9DQogICAgICAgIGNv bnN0IGZjID0gZnVuY3Rpb24gKGUsIG4pIHsNCiAgICAgICAgICB2YXIgciwgbzsNCiAgICAg ICAgICByZXR1cm4gdC5pc1ZhbGlkRWxlbWVudChlKSAmJiAtMSAhPT0gbi5pbmRleE9mKG51 bGwgIT0gKHIgPSBlLnR5cGUubXVpTmFtZSkgPyByIDogbnVsbCA9PSAobyA9IGUudHlwZSkg fHwgbnVsbCA9PSAobyA9IG8uX3BheWxvYWQpIHx8IG51bGwgPT0gKG8gPSBvLnZhbHVlKSA/ IHZvaWQgMCA6IG8ubXVpTmFtZSk7DQogICAgICAgIH07DQogICAgICAgIGNvbnN0IHBjID0g dC5jcmVhdGVDb250ZXh0KHZvaWQgMCk7DQogICAgICAgIGZ1bmN0aW9uIGhjKGUpIHsNCiAg ICAgICAgICByZXR1cm4ganIoIk11aUZvcm1Db250cm9sIiwgZSk7DQogICAgICAgIH0NCiAg ICAgICAgSXIoIk11aUZvcm1Db250cm9sIiwgWyJyb290IiwgIm1hcmdpbk5vbmUiLCAibWFy Z2luTm9ybWFsIiwgIm1hcmdpbkRlbnNlIiwgImZ1bGxXaWR0aCIsICJkaXNhYmxlZCJdKTsN CiAgICAgICAgY29uc3QgbWMgPSBbImNoaWxkcmVuIiwgImNsYXNzTmFtZSIsICJjb2xvciIs ICJjb21wb25lbnQiLCAiZGlzYWJsZWQiLCAiZXJyb3IiLCAiZm9jdXNlZCIsICJmdWxsV2lk dGgiLCAiaGlkZGVuTGFiZWwiLCAibWFyZ2luIiwgInJlcXVpcmVkIiwgInNpemUiLCAidmFy aWFudCJdLA0KICAgICAgICAgIGdjID0gWW4oImRpdiIsIHsNCiAgICAgICAgICAgIG5hbWU6 ICJNdWlGb3JtQ29udHJvbCIsDQogICAgICAgICAgICBzbG90OiAiUm9vdCIsDQogICAgICAg ICAgICBvdmVycmlkZXNSZXNvbHZlcjogKGUsIHQpID0+IHsNCiAgICAgICAgICAgICAgbGV0 IHsgb3duZXJTdGF0ZTogbiB9ID0gZTsNCiAgICAgICAgICAgICAgcmV0dXJuIGkoe30sIHQu cm9vdCwgdFsibWFyZ2luIi5jb25jYXQoaW8obi5tYXJnaW4pKV0sIG4uZnVsbFdpZHRoICYm IHQuZnVsbFdpZHRoKTsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgfSkoKGUpID0+IHsN CiAgICAgICAgICAgIGxldCB7IG93bmVyU3RhdGU6IHQgfSA9IGU7DQogICAgICAgICAgICBy ZXR1cm4gaSgNCiAgICAgICAgICAgICAgeyBkaXNwbGF5OiAiaW5saW5lLWZsZXgiLCBmbGV4 RGlyZWN0aW9uOiAiY29sdW1uIiwgcG9zaXRpb246ICJyZWxhdGl2ZSIsIG1pbldpZHRoOiAw LCBwYWRkaW5nOiAwLCBtYXJnaW46IDAsIGJvcmRlcjogMCwgdmVydGljYWxBbGlnbjogInRv cCIgfSwNCiAgICAgICAgICAgICAgIm5vcm1hbCIgPT09IHQubWFyZ2luICYmIHsgbWFyZ2lu VG9wOiAxNiwgbWFyZ2luQm90dG9tOiA4IH0sDQogICAgICAgICAgICAgICJkZW5zZSIgPT09 IHQubWFyZ2luICYmIHsgbWFyZ2luVG9wOiA4LCBtYXJnaW5Cb3R0b206IDQgfSwNCiAgICAg ICAgICAgICAgdC5mdWxsV2lkdGggJiYgeyB3aWR0aDogIjEwMCUiIH0NCiAgICAgICAgICAg ICk7DQogICAgICAgICAgfSksDQogICAgICAgICAgdmMgPSB0LmZvcndhcmRSZWYoZnVuY3Rp b24gKGUsIG4pIHsNCiAgICAgICAgICAgIGNvbnN0IHIgPSB0cih7IHByb3BzOiBlLCBuYW1l OiAiTXVpRm9ybUNvbnRyb2wiIH0pLA0KICAgICAgICAgICAgICB7DQogICAgICAgICAgICAg ICAgY2hpbGRyZW46IG8sDQogICAgICAgICAgICAgICAgY2xhc3NOYW1lOiBsLA0KICAgICAg ICAgICAgICAgIGNvbG9yOiB1ID0gInByaW1hcnkiLA0KICAgICAgICAgICAgICAgIGNvbXBv bmVudDogZCA9ICJkaXYiLA0KICAgICAgICAgICAgICAgIGRpc2FibGVkOiBmID0gITEsDQog ICAgICAgICAgICAgICAgZXJyb3I6IHAgPSAhMSwNCiAgICAgICAgICAgICAgICBmb2N1c2Vk OiBoLA0KICAgICAgICAgICAgICAgIGZ1bGxXaWR0aDogbSA9ICExLA0KICAgICAgICAgICAg ICAgIGhpZGRlbkxhYmVsOiBnID0gITEsDQogICAgICAgICAgICAgICAgbWFyZ2luOiB2ID0g Im5vbmUiLA0KICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB5ID0gITEsDQogICAgICAgICAg ICAgICAgc2l6ZTogYiA9ICJtZWRpdW0iLA0KICAgICAgICAgICAgICAgIHZhcmlhbnQ6IHcg PSAib3V0bGluZWQiLA0KICAgICAgICAgICAgICB9ID0gciwNCiAgICAgICAgICAgICAgeCA9 IGEociwgbWMpLA0KICAgICAgICAgICAgICBTID0gaSh7fSwgciwgeyBjb2xvcjogdSwgY29t cG9uZW50OiBkLCBkaXNhYmxlZDogZiwgZXJyb3I6IHAsIGZ1bGxXaWR0aDogbSwgaGlkZGVu TGFiZWw6IGcsIG1hcmdpbjogdiwgcmVxdWlyZWQ6IHksIHNpemU6IGIsIHZhcmlhbnQ6IHcg fSksDQogICAgICAgICAgICAgIGsgPSAoKGUpID0+IHsNCiAgICAgICAgICAgICAgICBjb25z dCB7IGNsYXNzZXM6IHQsIG1hcmdpbjogbiwgZnVsbFdpZHRoOiByIH0gPSBlOw0KICAgICAg ICAgICAgICAgIHJldHVybiBjKHsgcm9vdDogWyJyb290IiwgIm5vbmUiICE9PSBuICYmICJt YXJnaW4iLmNvbmNhdChpbyhuKSksIHIgJiYgImZ1bGxXaWR0aCJdIH0sIGhjLCB0KTsNCiAg ICAgICAgICAgICAgfSkoUyksDQogICAgICAgICAgICAgIFtFLCBDXSA9IHQudXNlU3RhdGUo KCkgPT4gew0KICAgICAgICAgICAgICAgIGxldCBlID0gITE7DQogICAgICAgICAgICAgICAg cmV0dXJuICgNCiAgICAgICAgICAgICAgICAgIG8gJiYNCiAgICAgICAgICAgICAgICAgIHQu Q2hpbGRyZW4uZm9yRWFjaChvLCAodCkgPT4gew0KICAgICAgICAgICAgICAgICAgICBpZiAo IWZjKHQsIFsiSW5wdXQiLCAiU2VsZWN0Il0pKSByZXR1cm47DQogICAgICAgICAgICAgICAg ICAgIGNvbnN0IG4gPSBmYyh0LCBbIlNlbGVjdCJdKSA/IHQucHJvcHMuaW5wdXQgOiB0Ow0K ICAgICAgICAgICAgICAgICAgICBuICYmIG4ucHJvcHMuc3RhcnRBZG9ybm1lbnQgJiYgKGUg PSAhMCk7DQogICAgICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgICAgIGUNCiAg ICAgICAgICAgICAgICApOw0KICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgW1Is IF9dID0gdC51c2VTdGF0ZSgoKSA9PiB7DQogICAgICAgICAgICAgICAgbGV0IGUgPSAhMTsN CiAgICAgICAgICAgICAgICByZXR1cm4gKA0KICAgICAgICAgICAgICAgICAgbyAmJg0KICAg ICAgICAgICAgICAgICAgdC5DaGlsZHJlbi5mb3JFYWNoKG8sICh0KSA9PiB7DQogICAgICAg ICAgICAgICAgICAgIGZjKHQsIFsiSW5wdXQiLCAiU2VsZWN0Il0pICYmIChkYyh0LnByb3Bz LCAhMCkgfHwgZGModC5wcm9wcy5pbnB1dFByb3BzLCAhMCkpICYmIChlID0gITApOw0KICAg ICAgICAgICAgICAgICAgfSksDQogICAgICAgICAgICAgICAgICBlDQogICAgICAgICAgICAg ICAgKTsNCiAgICAgICAgICAgICAgfSksDQogICAgICAgICAgICAgIFtQLCBPXSA9IHQudXNl U3RhdGUoITEpOw0KICAgICAgICAgICAgZiAmJiBQICYmIE8oITEpOw0KICAgICAgICAgICAg Y29uc3QgTiA9IHZvaWQgMCA9PT0gaCB8fCBmID8gUCA6IGg7DQogICAgICAgICAgICBsZXQg VDsNCiAgICAgICAgICAgIGNvbnN0IEEgPSB0LnVzZU1lbW8oDQogICAgICAgICAgICAgICgp ID0+ICh7DQogICAgICAgICAgICAgICAgYWRvcm5lZFN0YXJ0OiBFLA0KICAgICAgICAgICAg ICAgIHNldEFkb3JuZWRTdGFydDogQywNCiAgICAgICAgICAgICAgICBjb2xvcjogdSwNCiAg ICAgICAgICAgICAgICBkaXNhYmxlZDogZiwNCiAgICAgICAgICAgICAgICBlcnJvcjogcCwN CiAgICAgICAgICAgICAgICBmaWxsZWQ6IFIsDQogICAgICAgICAgICAgICAgZm9jdXNlZDog TiwNCiAgICAgICAgICAgICAgICBmdWxsV2lkdGg6IG0sDQogICAgICAgICAgICAgICAgaGlk ZGVuTGFiZWw6IGcsDQogICAgICAgICAgICAgICAgc2l6ZTogYiwNCiAgICAgICAgICAgICAg ICBvbkJsdXI6ICgpID0+IHsNCiAgICAgICAgICAgICAgICAgIE8oITEpOw0KICAgICAgICAg ICAgICAgIH0sDQogICAgICAgICAgICAgICAgb25FbXB0eTogKCkgPT4gew0KICAgICAgICAg ICAgICAgICAgXyghMSk7DQogICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICBv bkZpbGxlZDogKCkgPT4gew0KICAgICAgICAgICAgICAgICAgXyghMCk7DQogICAgICAgICAg ICAgICAgfSwNCiAgICAgICAgICAgICAgICBvbkZvY3VzOiAoKSA9PiB7DQogICAgICAgICAg ICAgICAgICBPKCEwKTsNCiAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgIHJl Z2lzdGVyRWZmZWN0OiBULA0KICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB5LA0KICAgICAg ICAgICAgICAgIHZhcmlhbnQ6IHcsDQogICAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAg ICBbRSwgdSwgZiwgcCwgUiwgTiwgbSwgZywgVCwgeSwgYiwgd10NCiAgICAgICAgICAgICk7 DQogICAgICAgICAgICByZXR1cm4gKDAsIE5yLmpzeCkocGMuUHJvdmlkZXIsIHsgdmFsdWU6 IEEsIGNoaWxkcmVuOiAoMCwgTnIuanN4KShnYywgaSh7IGFzOiBkLCBvd25lclN0YXRlOiBT LCBjbGFzc05hbWU6IHMoay5yb290LCBsKSwgcmVmOiBuIH0sIHgsIHsgY2hpbGRyZW46IG8g fSkpIH0pOw0KICAgICAgICAgIH0pLA0KICAgICAgICAgIHljID0gdmM7DQogICAgICAgIGNv bnN0IGJjID0gWyJvbkNoYW5nZSIsICJtYXhSb3dzIiwgIm1pblJvd3MiLCAic3R5bGUiLCAi dmFsdWUiXTsNCiAgICAgICAgZnVuY3Rpb24gd2MoZSkgew0KICAgICAgICAgIHJldHVybiBw YXJzZUludChlLCAxMCkgfHwgMDsNCiAgICAgICAgfQ0KICAgICAgICBjb25zdCB4YyA9IHsg dmlzaWJpbGl0eTogImhpZGRlbiIsIHBvc2l0aW9uOiAiYWJzb2x1dGUiLCBvdmVyZmxvdzog ImhpZGRlbiIsIGhlaWdodDogMCwgdG9wOiAwLCBsZWZ0OiAwLCB0cmFuc2Zvcm06ICJ0cmFu c2xhdGVaKDApIiB9Ow0KICAgICAgICBmdW5jdGlvbiBTYyhlKSB7DQogICAgICAgICAgcmV0 dXJuIHZvaWQgMCA9PT0gZSB8fCBudWxsID09PSBlIHx8IDAgPT09IE9iamVjdC5rZXlzKGUp Lmxlbmd0aCB8fCAoMCA9PT0gZS5vdXRlckhlaWdodFN0eWxlICYmICFlLm92ZXJmbG93KTsN CiAgICAgICAgfQ0KICAgICAgICBjb25zdCBrYyA9IHQuZm9yd2FyZFJlZihmdW5jdGlvbiAo ZSwgbikgew0KICAgICAgICAgIGNvbnN0IHsgb25DaGFuZ2U6IHIsIG1heFJvd3M6IG8sIG1p blJvd3M6IGwgPSAxLCBzdHlsZTogcywgdmFsdWU6IHUgfSA9IGUsDQogICAgICAgICAgICBj ID0gYShlLCBiYyksDQogICAgICAgICAgICB7IGN1cnJlbnQ6IGQgfSA9IHQudXNlUmVmKG51 bGwgIT0gdSksDQogICAgICAgICAgICBmID0gdC51c2VSZWYobnVsbCksDQogICAgICAgICAg ICBwID0gcnIobiwgZiksDQogICAgICAgICAgICBoID0gdC51c2VSZWYobnVsbCksDQogICAg ICAgICAgICBtID0gdC51c2VSZWYoMCksDQogICAgICAgICAgICBbZywgdl0gPSB0LnVzZVN0 YXRlKHsgb3V0ZXJIZWlnaHRTdHlsZTogMCB9KSwNCiAgICAgICAgICAgIHkgPSB0LnVzZUNh bGxiYWNrKCgpID0+IHsNCiAgICAgICAgICAgICAgY29uc3QgdCA9IGYuY3VycmVudCwNCiAg ICAgICAgICAgICAgICBuID0gUm8odCkuZ2V0Q29tcHV0ZWRTdHlsZSh0KTsNCiAgICAgICAg ICAgICAgaWYgKCIwcHgiID09PSBuLndpZHRoKSByZXR1cm4geyBvdXRlckhlaWdodFN0eWxl OiAwIH07DQogICAgICAgICAgICAgIGNvbnN0IHIgPSBoLmN1cnJlbnQ7DQogICAgICAgICAg ICAgIChyLnN0eWxlLndpZHRoID0gbi53aWR0aCksIChyLnZhbHVlID0gdC52YWx1ZSB8fCBl LnBsYWNlaG9sZGVyIHx8ICJ4IiksICJcbiIgPT09IHIudmFsdWUuc2xpY2UoLTEpICYmIChy LnZhbHVlICs9ICIgIik7DQogICAgICAgICAgICAgIGNvbnN0IGEgPSBuLmJveFNpemluZywN CiAgICAgICAgICAgICAgICBpID0gd2Mobi5wYWRkaW5nQm90dG9tKSArIHdjKG4ucGFkZGlu Z1RvcCksDQogICAgICAgICAgICAgICAgcyA9IHdjKG4uYm9yZGVyQm90dG9tV2lkdGgpICsg d2Mobi5ib3JkZXJUb3BXaWR0aCksDQogICAgICAgICAgICAgICAgdSA9IHIuc2Nyb2xsSGVp Z2h0Ow0KICAgICAgICAgICAgICByLnZhbHVlID0gIngiOw0KICAgICAgICAgICAgICBjb25z dCBjID0gci5zY3JvbGxIZWlnaHQ7DQogICAgICAgICAgICAgIGxldCBkID0gdTsNCiAgICAg ICAgICAgICAgbCAmJiAoZCA9IE1hdGgubWF4KE51bWJlcihsKSAqIGMsIGQpKSwgbyAmJiAo ZCA9IE1hdGgubWluKE51bWJlcihvKSAqIGMsIGQpKSwgKGQgPSBNYXRoLm1heChkLCBjKSk7 DQogICAgICAgICAgICAgIHJldHVybiB7IG91dGVySGVpZ2h0U3R5bGU6IGQgKyAoImJvcmRl ci1ib3giID09PSBhID8gaSArIHMgOiAwKSwgb3ZlcmZsb3c6IE1hdGguYWJzKGQgLSB1KSA8 PSAxIH07DQogICAgICAgICAgICB9LCBbbywgbCwgZS5wbGFjZWhvbGRlcl0pLA0KICAgICAg ICAgICAgYiA9IChlLCB0KSA9PiB7DQogICAgICAgICAgICAgIGNvbnN0IHsgb3V0ZXJIZWln aHRTdHlsZTogbiwgb3ZlcmZsb3c6IHIgfSA9IHQ7DQogICAgICAgICAgICAgIHJldHVybiBt LmN1cnJlbnQgPCAyMCAmJiAoKG4gPiAwICYmIE1hdGguYWJzKChlLm91dGVySGVpZ2h0U3R5 bGUgfHwgMCkgLSBuKSA+IDEpIHx8IGUub3ZlcmZsb3cgIT09IHIpID8gKChtLmN1cnJlbnQg Kz0gMSksIHsgb3ZlcmZsb3c6IHIsIG91dGVySGVpZ2h0U3R5bGU6IG4gfSkgOiBlOw0KICAg ICAgICAgICAgfSwNCiAgICAgICAgICAgIHcgPSB0LnVzZUNhbGxiYWNrKCgpID0+IHsNCiAg ICAgICAgICAgICAgY29uc3QgZSA9IHkoKTsNCiAgICAgICAgICAgICAgU2MoZSkgfHwgdigo dCkgPT4gYih0LCBlKSk7DQogICAgICAgICAgICB9LCBbeV0pOw0KICAgICAgICAgIGFyKCgp ID0+IHsNCiAgICAgICAgICAgIGNvbnN0IGUgPSAoKSA9PiB7DQogICAgICAgICAgICAgICht LmN1cnJlbnQgPSAwKSwNCiAgICAgICAgICAgICAgICAoKCkgPT4gew0KICAgICAgICAgICAg ICAgICAgY29uc3QgZSA9IHkoKTsNCiAgICAgICAgICAgICAgICAgIFNjKGUpIHx8DQogICAg ICAgICAgICAgICAgICAgIEZvLmZsdXNoU3luYygoKSA9PiB7DQogICAgICAgICAgICAgICAg ICAgICAgdigodCkgPT4gYih0LCBlKSk7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAg ICAgICAgICAgICAgIH0pKCk7DQogICAgICAgICAgICB9Ow0KICAgICAgICAgICAgbGV0IHQ7 DQogICAgICAgICAgICBjb25zdCBuID0gKGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICAg IGxldCB0LA0KICAgICAgICAgICAgICAgIG4gPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiB2 b2lkIDAgIT09IGFyZ3VtZW50c1sxXSA/IGFyZ3VtZW50c1sxXSA6IDE2NjsNCiAgICAgICAg ICAgICAgZnVuY3Rpb24gcigpIHsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciByID0gYXJn dW1lbnRzLmxlbmd0aCwgbyA9IG5ldyBBcnJheShyKSwgYSA9IDA7IGEgPCByOyBhKyspIG9b YV0gPSBhcmd1bWVudHNbYV07DQogICAgICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHQpLA0K ICAgICAgICAgICAgICAgICAgKHQgPSBzZXRUaW1lb3V0KCgpID0+IHsNCiAgICAgICAgICAg ICAgICAgICAgZS5hcHBseSh0aGlzLCBvKTsNCiAgICAgICAgICAgICAgICAgIH0sIG4pKTsN CiAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICByZXR1cm4gKA0KICAgICAgICAgICAg ICAgIChyLmNsZWFyID0gKCkgPT4gew0KICAgICAgICAgICAgICAgICAgY2xlYXJUaW1lb3V0 KHQpOw0KICAgICAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAgICAgIHINCiAgICAgICAg ICAgICAgKTsNCiAgICAgICAgICAgIH0pKGUpLA0KICAgICAgICAgICAgICByID0gZi5jdXJy ZW50LA0KICAgICAgICAgICAgICBvID0gUm8ocik7DQogICAgICAgICAgICBsZXQgYTsNCiAg ICAgICAgICAgIHJldHVybiAoDQogICAgICAgICAgICAgIG8uYWRkRXZlbnRMaXN0ZW5lcigi cmVzaXplIiwgbiksDQogICAgICAgICAgICAgICJ1bmRlZmluZWQiICE9PSB0eXBlb2YgUmVz aXplT2JzZXJ2ZXIgJiYgKChhID0gbmV3IFJlc2l6ZU9ic2VydmVyKGUpKSwgYS5vYnNlcnZl KHIpKSwNCiAgICAgICAgICAgICAgKCkgPT4gew0KICAgICAgICAgICAgICAgIG4uY2xlYXIo KSwgY2FuY2VsQW5pbWF0aW9uRnJhbWUodCksIG8ucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVz aXplIiwgbiksIGEgJiYgYS5kaXNjb25uZWN0KCk7DQogICAgICAgICAgICAgIH0NCiAgICAg ICAgICAgICk7DQogICAgICAgICAgfSwgW3ldKSwNCiAgICAgICAgICAgIGFyKCgpID0+IHsN CiAgICAgICAgICAgICAgdygpOw0KICAgICAgICAgICAgfSksDQogICAgICAgICAgICB0LnVz ZUVmZmVjdCgoKSA9PiB7DQogICAgICAgICAgICAgIG0uY3VycmVudCA9IDA7DQogICAgICAg ICAgICB9LCBbdV0pOw0KICAgICAgICAgIHJldHVybiAoMCwgTnIuanN4cykodC5GcmFnbWVu dCwgew0KICAgICAgICAgICAgY2hpbGRyZW46IFsNCiAgICAgICAgICAgICAgKDAsIE5yLmpz eCkoDQogICAgICAgICAgICAgICAgInRleHRhcmVhIiwNCiAgICAgICAgICAgICAgICBpKA0K ICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdSwNCiAg ICAgICAgICAgICAgICAgICAgb25DaGFuZ2U6IChlKSA9PiB7DQogICAgICAgICAgICAgICAg ICAgICAgKG0uY3VycmVudCA9IDApLCBkIHx8IHcoKSwgciAmJiByKGUpOw0KICAgICAgICAg ICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgICByZWY6IHAsDQogICAgICAgICAg ICAgICAgICAgIHJvd3M6IGwsDQogICAgICAgICAgICAgICAgICAgIHN0eWxlOiBpKHsgaGVp Z2h0OiBnLm91dGVySGVpZ2h0U3R5bGUsIG92ZXJmbG93OiBnLm92ZXJmbG93ID8gImhpZGRl biIgOiB2b2lkIDAgfSwgcyksDQogICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAg ICAgICAgYw0KICAgICAgICAgICAgICAgICkNCiAgICAgICAgICAgICAgKSwNCiAgICAgICAg ICAgICAgKDAsIE5yLmpzeCkoInRleHRhcmVhIiwgeyAiYXJpYS1oaWRkZW4iOiAhMCwgY2xh c3NOYW1lOiBlLmNsYXNzTmFtZSwgcmVhZE9ubHk6ICEwLCByZWY6IGgsIHRhYkluZGV4OiAt MSwgc3R5bGU6IGkoe30sIHhjLCBzLCB7IHBhZGRpbmdUb3A6IDAsIHBhZGRpbmdCb3R0b206 IDAgfSkgfSksDQogICAgICAgICAgICBdLA0KICAgICAgICAgIH0pOw0KICAgICAgICB9KTsN CiAgICAgICAgZnVuY3Rpb24gRWMoZSkgew0KICAgICAgICAgIGxldCB7IHByb3BzOiB0LCBz dGF0ZXM6IG4sIG11aUZvcm1Db250cm9sOiByIH0gPSBlOw0KICAgICAgICAgIHJldHVybiBu LnJlZHVjZSgoZSwgbikgPT4gKChlW25dID0gdFtuXSksIHIgJiYgInVuZGVmaW5lZCIgPT09 IHR5cGVvZiB0W25dICYmIChlW25dID0gcltuXSksIGUpLCB7fSk7DQogICAgICAgIH0NCiAg ICAgICAgZnVuY3Rpb24gQ2MoKSB7DQogICAgICAgICAgcmV0dXJuIHQudXNlQ29udGV4dChw Yyk7DQogICAgICAgIH0NCiAgICAgICAgY29uc3QgUmMgPSBhcjsNCiAgICAgICAgZnVuY3Rp b24gX2MoZSkgew0KICAgICAgICAgIGNvbnN0IHsgc3R5bGVzOiB0LCBkZWZhdWx0VGhlbWU6 IG4gPSB7fSB9ID0gZSwNCiAgICAgICAgICAgIHIgPQ0KICAgICAgICAgICAgICAiZnVuY3Rp b24iID09PSB0eXBlb2YgdA0KICAgICAgICAgICAgICAgID8gKGUpID0+IHsNCiAgICAgICAg ICAgICAgICAgIHJldHVybiB0KHZvaWQgMCA9PT0gKHIgPSBlKSB8fCBudWxsID09PSByIHx8 IDAgPT09IE9iamVjdC5rZXlzKHIpLmxlbmd0aCA/IG4gOiBlKTsNCiAgICAgICAgICAgICAg ICAgIHZhciByOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICA6IHQ7DQog ICAgICAgICAgcmV0dXJuICgwLCBOci5qc3gpKF9yLCB7IHN0eWxlczogciB9KTsNCiAgICAg ICAgfQ0KICAgICAgICBjb25zdCBQYyA9IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgbGV0 IHsgc3R5bGVzOiB0LCB0aGVtZUlkOiBuLCBkZWZhdWx0VGhlbWU6IHIgPSB7fSB9ID0gZTsN CiAgICAgICAgICBjb25zdCBvID0gSm4ociksDQogICAgICAgICAgICBhID0gImZ1bmN0aW9u IiA9PT0gdHlwZW9mIHQgPyB0KChuICYmIG9bbl0pIHx8IG8pIDogdDsNCiAgICAgICAgICBy ZXR1cm4gKDAsIE5yLmpzeCkoX2MsIHsgc3R5bGVzOiBhIH0pOw0KICAgICAgICB9Ow0KICAg ICAgICBjb25zdCBPYyA9IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgcmV0dXJuICgwLCBO ci5qc3gpKFBjLCBpKHt9LCBlLCB7IGRlZmF1bHRUaGVtZTogS24sIHRoZW1lSWQ6IFFuIH0p KTsNCiAgICAgICAgfTsNCiAgICAgICAgZnVuY3Rpb24gTmMoZSkgew0KICAgICAgICAgIHJl dHVybiBqcigiTXVpSW5wdXRCYXNlIiwgZSk7DQogICAgICAgIH0NCiAgICAgICAgY29uc3Qg VGMgPSBJcigiTXVpSW5wdXRCYXNlIiwgWw0KICAgICAgICAgICJyb290IiwNCiAgICAgICAg ICAiZm9ybUNvbnRyb2wiLA0KICAgICAgICAgICJmb2N1c2VkIiwNCiAgICAgICAgICAiZGlz YWJsZWQiLA0KICAgICAgICAgICJhZG9ybmVkU3RhcnQiLA0KICAgICAgICAgICJhZG9ybmVk RW5kIiwNCiAgICAgICAgICAiZXJyb3IiLA0KICAgICAgICAgICJzaXplU21hbGwiLA0KICAg ICAgICAgICJtdWx0aWxpbmUiLA0KICAgICAgICAgICJjb2xvclNlY29uZGFyeSIsDQogICAg ICAgICAgImZ1bGxXaWR0aCIsDQogICAgICAgICAgImhpZGRlbkxhYmVsIiwNCiAgICAgICAg ICAicmVhZE9ubHkiLA0KICAgICAgICAgICJpbnB1dCIsDQogICAgICAgICAgImlucHV0U2l6 ZVNtYWxsIiwNCiAgICAgICAgICAiaW5wdXRNdWx0aWxpbmUiLA0KICAgICAgICAgICJpbnB1 dFR5cGVTZWFyY2giLA0KICAgICAgICAgICJpbnB1dEFkb3JuZWRTdGFydCIsDQogICAgICAg ICAgImlucHV0QWRvcm5lZEVuZCIsDQogICAgICAgICAgImlucHV0SGlkZGVuTGFiZWwiLA0K ICAgICAgICBdKSwNCiAgICAgICAgICBBYyA9IFsNCiAgICAgICAgICAgICJhcmlhLWRlc2Ny aWJlZGJ5IiwNCiAgICAgICAgICAgICJhdXRvQ29tcGxldGUiLA0KICAgICAgICAgICAgImF1 dG9Gb2N1cyIsDQogICAgICAgICAgICAiY2xhc3NOYW1lIiwNCiAgICAgICAgICAgICJjb2xv ciIsDQogICAgICAgICAgICAiY29tcG9uZW50cyIsDQogICAgICAgICAgICAiY29tcG9uZW50 c1Byb3BzIiwNCiAgICAgICAgICAgICJkZWZhdWx0VmFsdWUiLA0KICAgICAgICAgICAgImRp c2FibGVkIiwNCiAgICAgICAgICAgICJkaXNhYmxlSW5qZWN0aW5nR2xvYmFsU3R5bGVzIiwN CiAgICAgICAgICAgICJlbmRBZG9ybm1lbnQiLA0KICAgICAgICAgICAgImVycm9yIiwNCiAg ICAgICAgICAgICJmdWxsV2lkdGgiLA0KICAgICAgICAgICAgImlkIiwNCiAgICAgICAgICAg ICJpbnB1dENvbXBvbmVudCIsDQogICAgICAgICAgICAiaW5wdXRQcm9wcyIsDQogICAgICAg ICAgICAiaW5wdXRSZWYiLA0KICAgICAgICAgICAgIm1hcmdpbiIsDQogICAgICAgICAgICAi bWF4Um93cyIsDQogICAgICAgICAgICAibWluUm93cyIsDQogICAgICAgICAgICAibXVsdGls aW5lIiwNCiAgICAgICAgICAgICJuYW1lIiwNCiAgICAgICAgICAgICJvbkJsdXIiLA0KICAg ICAgICAgICAgIm9uQ2hhbmdlIiwNCiAgICAgICAgICAgICJvbkNsaWNrIiwNCiAgICAgICAg ICAgICJvbkZvY3VzIiwNCiAgICAgICAgICAgICJvbktleURvd24iLA0KICAgICAgICAgICAg Im9uS2V5VXAiLA0KICAgICAgICAgICAgInBsYWNlaG9sZGVyIiwNCiAgICAgICAgICAgICJy ZWFkT25seSIsDQogICAgICAgICAgICAicmVuZGVyU3VmZml4IiwNCiAgICAgICAgICAgICJy b3dzIiwNCiAgICAgICAgICAgICJzaXplIiwNCiAgICAgICAgICAgICJzbG90UHJvcHMiLA0K ICAgICAgICAgICAgInNsb3RzIiwNCiAgICAgICAgICAgICJzdGFydEFkb3JubWVudCIsDQog ICAgICAgICAgICAidHlwZSIsDQogICAgICAgICAgICAidmFsdWUiLA0KICAgICAgICAgIF0s DQogICAgICAgICAgTWMgPSAoZSwgdCkgPT4gew0KICAgICAgICAgICAgY29uc3QgeyBvd25l clN0YXRlOiBuIH0gPSBlOw0KICAgICAgICAgICAgcmV0dXJuIFsNCiAgICAgICAgICAgICAg dC5yb290LA0KICAgICAgICAgICAgICBuLmZvcm1Db250cm9sICYmIHQuZm9ybUNvbnRyb2ws DQogICAgICAgICAgICAgIG4uc3RhcnRBZG9ybm1lbnQgJiYgdC5hZG9ybmVkU3RhcnQsDQog ICAgICAgICAgICAgIG4uZW5kQWRvcm5tZW50ICYmIHQuYWRvcm5lZEVuZCwNCiAgICAgICAg ICAgICAgbi5lcnJvciAmJiB0LmVycm9yLA0KICAgICAgICAgICAgICAic21hbGwiID09PSBu LnNpemUgJiYgdC5zaXplU21hbGwsDQogICAgICAgICAgICAgIG4ubXVsdGlsaW5lICYmIHQu bXVsdGlsaW5lLA0KICAgICAgICAgICAgICBuLmNvbG9yICYmIHRbImNvbG9yIi5jb25jYXQo aW8obi5jb2xvcikpXSwNCiAgICAgICAgICAgICAgbi5mdWxsV2lkdGggJiYgdC5mdWxsV2lk dGgsDQogICAgICAgICAgICAgIG4uaGlkZGVuTGFiZWwgJiYgdC5oaWRkZW5MYWJlbCwNCiAg ICAgICAgICAgIF07DQogICAgICAgICAgfSwNCiAgICAgICAgICB6YyA9IChlLCB0KSA9PiB7 DQogICAgICAgICAgICBjb25zdCB7IG93bmVyU3RhdGU6IG4gfSA9IGU7DQogICAgICAgICAg ICByZXR1cm4gWw0KICAgICAgICAgICAgICB0LmlucHV0LA0KICAgICAgICAgICAgICAic21h bGwiID09PSBuLnNpemUgJiYgdC5pbnB1dFNpemVTbWFsbCwNCiAgICAgICAgICAgICAgbi5t dWx0aWxpbmUgJiYgdC5pbnB1dE11bHRpbGluZSwNCiAgICAgICAgICAgICAgInNlYXJjaCIg PT09IG4udHlwZSAmJiB0LmlucHV0VHlwZVNlYXJjaCwNCiAgICAgICAgICAgICAgbi5zdGFy dEFkb3JubWVudCAmJiB0LmlucHV0QWRvcm5lZFN0YXJ0LA0KICAgICAgICAgICAgICBuLmVu ZEFkb3JubWVudCAmJiB0LmlucHV0QWRvcm5lZEVuZCwNCiAgICAgICAgICAgICAgbi5oaWRk ZW5MYWJlbCAmJiB0LmlucHV0SGlkZGVuTGFiZWwsDQogICAgICAgICAgICBdOw0KICAgICAg ICAgIH0sDQogICAgICAgICAgamMgPSBZbigiZGl2IiwgeyBuYW1lOiAiTXVpSW5wdXRCYXNl Iiwgc2xvdDogIlJvb3QiLCBvdmVycmlkZXNSZXNvbHZlcjogTWMgfSkoKGUpID0+IHsNCiAg ICAgICAgICAgIGxldCB7IHRoZW1lOiB0LCBvd25lclN0YXRlOiBuIH0gPSBlOw0KICAgICAg ICAgICAgcmV0dXJuIGkoDQogICAgICAgICAgICAgIHt9LA0KICAgICAgICAgICAgICB0LnR5 cG9ncmFwaHkuYm9keTEsDQogICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBjb2xv cjogKHQudmFycyB8fCB0KS5wYWxldHRlLnRleHQucHJpbWFyeSwNCiAgICAgICAgICAgICAg ICBsaW5lSGVpZ2h0OiAiMS40Mzc1ZW0iLA0KICAgICAgICAgICAgICAgIGJveFNpemluZzog ImJvcmRlci1ib3giLA0KICAgICAgICAgICAgICAgIHBvc2l0aW9uOiAicmVsYXRpdmUiLA0K ICAgICAgICAgICAgICAgIGN1cnNvcjogInRleHQiLA0KICAgICAgICAgICAgICAgIGRpc3Bs YXk6ICJpbmxpbmUtZmxleCIsDQogICAgICAgICAgICAgICAgYWxpZ25JdGVtczogImNlbnRl ciIsDQogICAgICAgICAgICAgICAgWyImLiIuY29uY2F0KFRjLmRpc2FibGVkKV06IHsgY29s b3I6ICh0LnZhcnMgfHwgdCkucGFsZXR0ZS50ZXh0LmRpc2FibGVkLCBjdXJzb3I6ICJkZWZh dWx0IiB9LA0KICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICBuLm11bHRpbGluZSAm JiBpKHsgcGFkZGluZzogIjRweCAwIDVweCIgfSwgInNtYWxsIiA9PT0gbi5zaXplICYmIHsg cGFkZGluZ1RvcDogMSB9KSwNCiAgICAgICAgICAgICAgbi5mdWxsV2lkdGggJiYgeyB3aWR0 aDogIjEwMCUiIH0NCiAgICAgICAgICAgICk7DQogICAgICAgICAgfSksDQogICAgICAgICAg SWMgPSBZbigiaW5wdXQiLCB7IG5hbWU6ICJNdWlJbnB1dEJhc2UiLCBzbG90OiAiSW5wdXQi LCBvdmVycmlkZXNSZXNvbHZlcjogemMgfSkoKGUpID0+IHsNCiAgICAgICAgICAgIGxldCB7 IHRoZW1lOiB0LCBvd25lclN0YXRlOiBuIH0gPSBlOw0KICAgICAgICAgICAgY29uc3QgciA9 ICJsaWdodCIgPT09IHQucGFsZXR0ZS5tb2RlLA0KICAgICAgICAgICAgICBvID0gaSh7IGNv bG9yOiAiY3VycmVudENvbG9yIiB9LCB0LnZhcnMgPyB7IG9wYWNpdHk6IHQudmFycy5vcGFj aXR5LmlucHV0UGxhY2Vob2xkZXIgfSA6IHsgb3BhY2l0eTogciA/IDAuNDIgOiAwLjUgfSwg ew0KICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IHQudHJhbnNpdGlvbnMuY3JlYXRlKCJv cGFjaXR5IiwgeyBkdXJhdGlvbjogdC50cmFuc2l0aW9ucy5kdXJhdGlvbi5zaG9ydGVyIH0p LA0KICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgYSA9IHsgb3BhY2l0eTogIjAg IWltcG9ydGFudCIgfSwNCiAgICAgICAgICAgICAgbCA9IHQudmFycyA/IHsgb3BhY2l0eTog dC52YXJzLm9wYWNpdHkuaW5wdXRQbGFjZWhvbGRlciB9IDogeyBvcGFjaXR5OiByID8gMC40 MiA6IDAuNSB9Ow0KICAgICAgICAgICAgcmV0dXJuIGkoDQogICAgICAgICAgICAgIHsNCiAg ICAgICAgICAgICAgICBmb250OiAiaW5oZXJpdCIsDQogICAgICAgICAgICAgICAgbGV0dGVy U3BhY2luZzogImluaGVyaXQiLA0KICAgICAgICAgICAgICAgIGNvbG9yOiAiY3VycmVudENv bG9yIiwNCiAgICAgICAgICAgICAgICBwYWRkaW5nOiAiNHB4IDAgNXB4IiwNCiAgICAgICAg ICAgICAgICBib3JkZXI6IDAsDQogICAgICAgICAgICAgICAgYm94U2l6aW5nOiAiY29udGVu dC1ib3giLA0KICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICJub25lIiwNCiAgICAgICAg ICAgICAgICBoZWlnaHQ6ICIxLjQzNzVlbSIsDQogICAgICAgICAgICAgICAgbWFyZ2luOiAw LA0KICAgICAgICAgICAgICAgIFdlYmtpdFRhcEhpZ2hsaWdodENvbG9yOiAidHJhbnNwYXJl bnQiLA0KICAgICAgICAgICAgICAgIGRpc3BsYXk6ICJibG9jayIsDQogICAgICAgICAgICAg ICAgbWluV2lkdGg6IDAsDQogICAgICAgICAgICAgICAgd2lkdGg6ICIxMDAlIiwNCiAgICAg ICAgICAgICAgICBhbmltYXRpb25OYW1lOiAibXVpLWF1dG8tZmlsbC1jYW5jZWwiLA0KICAg ICAgICAgICAgICAgIGFuaW1hdGlvbkR1cmF0aW9uOiAiMTBtcyIsDQogICAgICAgICAgICAg ICAgIiY6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIiOiBvLA0KICAgICAgICAgICAgICAg ICImOjotbW96LXBsYWNlaG9sZGVyIjogbywNCiAgICAgICAgICAgICAgICAiJjotbXMtaW5w dXQtcGxhY2Vob2xkZXIiOiBvLA0KICAgICAgICAgICAgICAgICImOjotbXMtaW5wdXQtcGxh Y2Vob2xkZXIiOiBvLA0KICAgICAgICAgICAgICAgICImOmZvY3VzIjogeyBvdXRsaW5lOiAw IH0sDQogICAgICAgICAgICAgICAgIiY6aW52YWxpZCI6IHsgYm94U2hhZG93OiAibm9uZSIg fSwNCiAgICAgICAgICAgICAgICAiJjo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiI6IHsg V2Via2l0QXBwZWFyYW5jZTogIm5vbmUiIH0sDQogICAgICAgICAgICAgICAgWyJsYWJlbFtk YXRhLXNocmluaz1mYWxzZV0gKyAuIi5jb25jYXQoVGMuZm9ybUNvbnRyb2wsICIgJiIpXTog ew0KICAgICAgICAgICAgICAgICAgIiY6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIiOiBh LA0KICAgICAgICAgICAgICAgICAgIiY6Oi1tb3otcGxhY2Vob2xkZXIiOiBhLA0KICAgICAg ICAgICAgICAgICAgIiY6LW1zLWlucHV0LXBsYWNlaG9sZGVyIjogYSwNCiAgICAgICAgICAg ICAgICAgICImOjotbXMtaW5wdXQtcGxhY2Vob2xkZXIiOiBhLA0KICAgICAgICAgICAgICAg ICAgIiY6Zm9jdXM6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIiOiBsLA0KICAgICAgICAg ICAgICAgICAgIiY6Zm9jdXM6Oi1tb3otcGxhY2Vob2xkZXIiOiBsLA0KICAgICAgICAgICAg ICAgICAgIiY6Zm9jdXM6LW1zLWlucHV0LXBsYWNlaG9sZGVyIjogbCwNCiAgICAgICAgICAg ICAgICAgICImOmZvY3VzOjotbXMtaW5wdXQtcGxhY2Vob2xkZXIiOiBsLA0KICAgICAgICAg ICAgICAgIH0sDQogICAgICAgICAgICAgICAgWyImLiIuY29uY2F0KFRjLmRpc2FibGVkKV06 IHsgb3BhY2l0eTogMSwgV2Via2l0VGV4dEZpbGxDb2xvcjogKHQudmFycyB8fCB0KS5wYWxl dHRlLnRleHQuZGlzYWJsZWQgfSwNCiAgICAgICAgICAgICAgICAiJjotd2Via2l0LWF1dG9m aWxsIjogeyBhbmltYXRpb25EdXJhdGlvbjogIjUwMDBzIiwgYW5pbWF0aW9uTmFtZTogIm11 aS1hdXRvLWZpbGwiIH0sDQogICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICJzbWFs bCIgPT09IG4uc2l6ZSAmJiB7IHBhZGRpbmdUb3A6IDEgfSwNCiAgICAgICAgICAgICAgbi5t dWx0aWxpbmUgJiYgeyBoZWlnaHQ6ICJhdXRvIiwgcmVzaXplOiAibm9uZSIsIHBhZGRpbmc6 IDAsIHBhZGRpbmdUb3A6IDAgfSwNCiAgICAgICAgICAgICAgInNlYXJjaCIgPT09IG4udHlw ZSAmJiB7IE1vekFwcGVhcmFuY2U6ICJ0ZXh0ZmllbGQiIH0NCiAgICAgICAgICAgICk7DQog ICAgICAgICAgfSksDQogICAgICAgICAgTGMgPSAoMCwgTnIuanN4KShPYywgeyBzdHlsZXM6 IHsgIkBrZXlmcmFtZXMgbXVpLWF1dG8tZmlsbCI6IHsgZnJvbTogeyBkaXNwbGF5OiAiYmxv Y2siIH0gfSwgIkBrZXlmcmFtZXMgbXVpLWF1dG8tZmlsbC1jYW5jZWwiOiB7IGZyb206IHsg ZGlzcGxheTogImJsb2NrIiB9IH0gfSB9KSwNCiAgICAgICAgICBGYyA9IHQuZm9yd2FyZFJl ZihmdW5jdGlvbiAoZSwgbikgew0KICAgICAgICAgICAgdmFyIHI7DQogICAgICAgICAgICBj b25zdCBvID0gdHIoeyBwcm9wczogZSwgbmFtZTogIk11aUlucHV0QmFzZSIgfSksDQogICAg ICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAiYXJpYS1kZXNjcmliZWRieSI6IGwsDQog ICAgICAgICAgICAgICAgYXV0b0NvbXBsZXRlOiB1LA0KICAgICAgICAgICAgICAgIGF1dG9G b2N1czogZiwNCiAgICAgICAgICAgICAgICBjbGFzc05hbWU6IHAsDQogICAgICAgICAgICAg ICAgY29tcG9uZW50czogaCA9IHt9LA0KICAgICAgICAgICAgICAgIGNvbXBvbmVudHNQcm9w czogbSA9IHt9LA0KICAgICAgICAgICAgICAgIGRlZmF1bHRWYWx1ZTogZywNCiAgICAgICAg ICAgICAgICBkaXNhYmxlZDogdiwNCiAgICAgICAgICAgICAgICBkaXNhYmxlSW5qZWN0aW5n R2xvYmFsU3R5bGVzOiB5LA0KICAgICAgICAgICAgICAgIGVuZEFkb3JubWVudDogYiwNCiAg ICAgICAgICAgICAgICBmdWxsV2lkdGg6IHcgPSAhMSwNCiAgICAgICAgICAgICAgICBpZDog eCwNCiAgICAgICAgICAgICAgICBpbnB1dENvbXBvbmVudDogUyA9ICJpbnB1dCIsDQogICAg ICAgICAgICAgICAgaW5wdXRQcm9wczogayA9IHt9LA0KICAgICAgICAgICAgICAgIGlucHV0 UmVmOiBFLA0KICAgICAgICAgICAgICAgIG1heFJvd3M6IEMsDQogICAgICAgICAgICAgICAg bWluUm93czogUiwNCiAgICAgICAgICAgICAgICBtdWx0aWxpbmU6IF8gPSAhMSwNCiAgICAg ICAgICAgICAgICBuYW1lOiBQLA0KICAgICAgICAgICAgICAgIG9uQmx1cjogTywNCiAgICAg ICAgICAgICAgICBvbkNoYW5nZTogTiwNCiAgICAgICAgICAgICAgICBvbkNsaWNrOiBULA0K ICAgICAgICAgICAgICAgIG9uRm9jdXM6IEEsDQogICAgICAgICAgICAgICAgb25LZXlEb3du OiBNLA0KICAgICAgICAgICAgICAgIG9uS2V5VXA6IHosDQogICAgICAgICAgICAgICAgcGxh Y2Vob2xkZXI6IGosDQogICAgICAgICAgICAgICAgcmVhZE9ubHk6IEksDQogICAgICAgICAg ICAgICAgcmVuZGVyU3VmZml4OiBMLA0KICAgICAgICAgICAgICAgIHJvd3M6IEYsDQogICAg ICAgICAgICAgICAgc2xvdFByb3BzOiBCID0ge30sDQogICAgICAgICAgICAgICAgc2xvdHM6 IEQgPSB7fSwNCiAgICAgICAgICAgICAgICBzdGFydEFkb3JubWVudDogVSwNCiAgICAgICAg ICAgICAgICB0eXBlOiBXID0gInRleHQiLA0KICAgICAgICAgICAgICAgIHZhbHVlOiBWLA0K ICAgICAgICAgICAgICB9ID0gbywNCiAgICAgICAgICAgICAgSCA9IGEobywgQWMpLA0KICAg ICAgICAgICAgICBxID0gbnVsbCAhPSBrLnZhbHVlID8gay52YWx1ZSA6IFYsDQogICAgICAg ICAgICAgIHsgY3VycmVudDogJCB9ID0gdC51c2VSZWYobnVsbCAhPSBxKSwNCiAgICAgICAg ICAgICAgSyA9IHQudXNlUmVmKCksDQogICAgICAgICAgICAgIFEgPSB0LnVzZUNhbGxiYWNr KChlKSA9PiB7DQogICAgICAgICAgICAgICAgMDsNCiAgICAgICAgICAgICAgfSwgW10pLA0K ICAgICAgICAgICAgICBHID0gb3IoSywgRSwgay5yZWYsIFEpLA0KICAgICAgICAgICAgICBb WSwgWF0gPSB0LnVzZVN0YXRlKCExKSwNCiAgICAgICAgICAgICAgWiA9IENjKCk7DQogICAg ICAgICAgICBjb25zdCBKID0gRWMoeyBwcm9wczogbywgbXVpRm9ybUNvbnRyb2w6IFosIHN0 YXRlczogWyJjb2xvciIsICJkaXNhYmxlZCIsICJlcnJvciIsICJoaWRkZW5MYWJlbCIsICJz aXplIiwgInJlcXVpcmVkIiwgImZpbGxlZCJdIH0pOw0KICAgICAgICAgICAgKEouZm9jdXNl ZCA9IFogPyBaLmZvY3VzZWQgOiBZKSwNCiAgICAgICAgICAgICAgdC51c2VFZmZlY3QoKCkg PT4gew0KICAgICAgICAgICAgICAgICFaICYmIHYgJiYgWSAmJiAoWCghMSksIE8gJiYgTygp KTsNCiAgICAgICAgICAgICAgfSwgW1osIHYsIFksIE9dKTsNCiAgICAgICAgICAgIGNvbnN0 IGVlID0gWiAmJiBaLm9uRmlsbGVkLA0KICAgICAgICAgICAgICB0ZSA9IFogJiYgWi5vbkVt cHR5LA0KICAgICAgICAgICAgICBuZSA9IHQudXNlQ2FsbGJhY2soDQogICAgICAgICAgICAg ICAgKGUpID0+IHsNCiAgICAgICAgICAgICAgICAgIGRjKGUpID8gZWUgJiYgZWUoKSA6IHRl ICYmIHRlKCk7DQogICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICBbZWUsIHRl XQ0KICAgICAgICAgICAgICApOw0KICAgICAgICAgICAgUmMoKCkgPT4gew0KICAgICAgICAg ICAgICAkICYmIG5lKHsgdmFsdWU6IHEgfSk7DQogICAgICAgICAgICB9LCBbcSwgbmUsICRd KTsNCiAgICAgICAgICAgIHQudXNlRWZmZWN0KCgpID0+IHsNCiAgICAgICAgICAgICAgbmUo Sy5jdXJyZW50KTsNCiAgICAgICAgICAgIH0sIFtdKTsNCiAgICAgICAgICAgIGxldCByZSA9 IFMsDQogICAgICAgICAgICAgIG9lID0gazsNCiAgICAgICAgICAgIF8gJiYgImlucHV0IiA9 PT0gcmUgJiYgKChvZSA9IGkoRiA/IHsgdHlwZTogdm9pZCAwLCBtaW5Sb3dzOiBGLCBtYXhS b3dzOiBGIH0gOiB7IHR5cGU6IHZvaWQgMCwgbWF4Um93czogQywgbWluUm93czogUiB9LCBv ZSkpLCAocmUgPSBrYykpOw0KICAgICAgICAgICAgdC51c2VFZmZlY3QoKCkgPT4gew0KICAg ICAgICAgICAgICBaICYmIFouc2V0QWRvcm5lZFN0YXJ0KEJvb2xlYW4oVSkpOw0KICAgICAg ICAgICAgfSwgW1osIFVdKTsNCiAgICAgICAgICAgIGNvbnN0IGFlID0gaSh7fSwgbywgew0K ICAgICAgICAgICAgICBjb2xvcjogSi5jb2xvciB8fCAicHJpbWFyeSIsDQogICAgICAgICAg ICAgIGRpc2FibGVkOiBKLmRpc2FibGVkLA0KICAgICAgICAgICAgICBlbmRBZG9ybm1lbnQ6 IGIsDQogICAgICAgICAgICAgIGVycm9yOiBKLmVycm9yLA0KICAgICAgICAgICAgICBmb2N1 c2VkOiBKLmZvY3VzZWQsDQogICAgICAgICAgICAgIGZvcm1Db250cm9sOiBaLA0KICAgICAg ICAgICAgICBmdWxsV2lkdGg6IHcsDQogICAgICAgICAgICAgIGhpZGRlbkxhYmVsOiBKLmhp ZGRlbkxhYmVsLA0KICAgICAgICAgICAgICBtdWx0aWxpbmU6IF8sDQogICAgICAgICAgICAg IHNpemU6IEouc2l6ZSwNCiAgICAgICAgICAgICAgc3RhcnRBZG9ybm1lbnQ6IFUsDQogICAg ICAgICAgICAgIHR5cGU6IFcsDQogICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgaWUg PSAoKGUpID0+IHsNCiAgICAgICAgICAgICAgICBjb25zdCB7IGNsYXNzZXM6IHQsIGNvbG9y OiBuLCBkaXNhYmxlZDogciwgZXJyb3I6IG8sIGVuZEFkb3JubWVudDogYSwgZm9jdXNlZDog aSwgZm9ybUNvbnRyb2w6IGwsIGZ1bGxXaWR0aDogcywgaGlkZGVuTGFiZWw6IHUsIG11bHRp bGluZTogZCwgcmVhZE9ubHk6IGYsIHNpemU6IHAsIHN0YXJ0QWRvcm5tZW50OiBoLCB0eXBl OiBtIH0gPSBlOw0KICAgICAgICAgICAgICAgIHJldHVybiBjKA0KICAgICAgICAgICAgICAg ICAgew0KICAgICAgICAgICAgICAgICAgICByb290OiBbDQogICAgICAgICAgICAgICAgICAg ICAgInJvb3QiLA0KICAgICAgICAgICAgICAgICAgICAgICJjb2xvciIuY29uY2F0KGlvKG4p KSwNCiAgICAgICAgICAgICAgICAgICAgICByICYmICJkaXNhYmxlZCIsDQogICAgICAgICAg ICAgICAgICAgICAgbyAmJiAiZXJyb3IiLA0KICAgICAgICAgICAgICAgICAgICAgIHMgJiYg ImZ1bGxXaWR0aCIsDQogICAgICAgICAgICAgICAgICAgICAgaSAmJiAiZm9jdXNlZCIsDQog ICAgICAgICAgICAgICAgICAgICAgbCAmJiAiZm9ybUNvbnRyb2wiLA0KICAgICAgICAgICAg ICAgICAgICAgIHAgJiYgIm1lZGl1bSIgIT09IHAgJiYgInNpemUiLmNvbmNhdChpbyhwKSks DQogICAgICAgICAgICAgICAgICAgICAgZCAmJiAibXVsdGlsaW5lIiwNCiAgICAgICAgICAg ICAgICAgICAgICBoICYmICJhZG9ybmVkU3RhcnQiLA0KICAgICAgICAgICAgICAgICAgICAg IGEgJiYgImFkb3JuZWRFbmQiLA0KICAgICAgICAgICAgICAgICAgICAgIHUgJiYgImhpZGRl bkxhYmVsIiwNCiAgICAgICAgICAgICAgICAgICAgICBmICYmICJyZWFkT25seSIsDQogICAg ICAgICAgICAgICAgICAgIF0sDQogICAgICAgICAgICAgICAgICAgIGlucHV0OiBbDQogICAg ICAgICAgICAgICAgICAgICAgImlucHV0IiwNCiAgICAgICAgICAgICAgICAgICAgICByICYm ICJkaXNhYmxlZCIsDQogICAgICAgICAgICAgICAgICAgICAgInNlYXJjaCIgPT09IG0gJiYg ImlucHV0VHlwZVNlYXJjaCIsDQogICAgICAgICAgICAgICAgICAgICAgZCAmJiAiaW5wdXRN dWx0aWxpbmUiLA0KICAgICAgICAgICAgICAgICAgICAgICJzbWFsbCIgPT09IHAgJiYgImlu cHV0U2l6ZVNtYWxsIiwNCiAgICAgICAgICAgICAgICAgICAgICB1ICYmICJpbnB1dEhpZGRl bkxhYmVsIiwNCiAgICAgICAgICAgICAgICAgICAgICBoICYmICJpbnB1dEFkb3JuZWRTdGFy dCIsDQogICAgICAgICAgICAgICAgICAgICAgYSAmJiAiaW5wdXRBZG9ybmVkRW5kIiwNCiAg ICAgICAgICAgICAgICAgICAgICBmICYmICJyZWFkT25seSIsDQogICAgICAgICAgICAgICAg ICAgIF0sDQogICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgTmMsDQog ICAgICAgICAgICAgICAgICB0DQogICAgICAgICAgICAgICAgKTsNCiAgICAgICAgICAgICAg fSkoYWUpLA0KICAgICAgICAgICAgICBsZSA9IEQucm9vdCB8fCBoLlJvb3QgfHwgamMsDQog ICAgICAgICAgICAgIHNlID0gQi5yb290IHx8IG0ucm9vdCB8fCB7fSwNCiAgICAgICAgICAg ICAgdWUgPSBELmlucHV0IHx8IGguSW5wdXQgfHwgSWM7DQogICAgICAgICAgICByZXR1cm4g KA0KICAgICAgICAgICAgICAob2UgPSBpKHt9LCBvZSwgbnVsbCAhPSAociA9IEIuaW5wdXQp ID8gciA6IG0uaW5wdXQpKSwNCiAgICAgICAgICAgICAgKDAsIE5yLmpzeHMpKHQuRnJhZ21l bnQsIHsNCiAgICAgICAgICAgICAgICBjaGlsZHJlbjogWw0KICAgICAgICAgICAgICAgICAg IXkgJiYgTGMsDQogICAgICAgICAgICAgICAgICAoMCwgTnIuanN4cykoDQogICAgICAgICAg ICAgICAgICAgIGxlLA0KICAgICAgICAgICAgICAgICAgICBpKA0KICAgICAgICAgICAgICAg ICAgICAgIHt9LA0KICAgICAgICAgICAgICAgICAgICAgIHNlLA0KICAgICAgICAgICAgICAg ICAgICAgICFibyhsZSkgJiYgeyBvd25lclN0YXRlOiBpKHt9LCBhZSwgc2Uub3duZXJTdGF0 ZSkgfSwNCiAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAg ICByZWY6IG4sDQogICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOiAoZSkgPT4gew0K ICAgICAgICAgICAgICAgICAgICAgICAgICBLLmN1cnJlbnQgJiYgZS5jdXJyZW50VGFyZ2V0 ID09PSBlLnRhcmdldCAmJiBLLmN1cnJlbnQuZm9jdXMoKSwgVCAmJiBUKGUpOw0KICAgICAg ICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAg ICAgICAgICAgICAgICAgIEgsDQogICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAg ICAgICAgICAgICAgICAgY2xhc3NOYW1lOiBzKGllLnJvb3QsIHNlLmNsYXNzTmFtZSwgcCwg SSAmJiAiTXVpSW5wdXRCYXNlLXJlYWRPbmx5IiksDQogICAgICAgICAgICAgICAgICAgICAg ICBjaGlsZHJlbjogWw0KICAgICAgICAgICAgICAgICAgICAgICAgICBVLA0KICAgICAgICAg ICAgICAgICAgICAgICAgICAoMCwgTnIuanN4KShwYy5Qcm92aWRlciwgew0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHZhbHVlOiBudWxsLA0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNoaWxkcmVuOiAoMCwgTnIuanN4KSgNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHVlLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaSgNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIG93bmVyU3RhdGU6IGFlLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICJhcmlhLWludmFsaWQiOiBKLmVycm9yLA0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICJhcmlhLWRlc2NyaWJlZGJ5IjogbCwNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBhdXRvQ29tcGxldGU6IHUsDQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYXV0b0ZvY3VzOiBmLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGRlZmF1bHRWYWx1ZTogZywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBkaXNhYmxlZDogSi5kaXNhYmxlZCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpZDogeCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkFu aW1hdGlvblN0YXJ0OiAoZSkgPT4gew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbmUoIm11aS1hdXRvLWZpbGwtY2FuY2VsIiA9PT0gZS5hbmltYXRpb25OYW1lID8g Sy5jdXJyZW50IDogeyB2YWx1ZTogIngiIH0pOw0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTog UCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogaiwN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFkT25seTogSSwNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogSi5yZXF1aXJlZCwNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dzOiBGLA0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBxLA0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIG9uS2V5RG93bjogTSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBvbktleVVwOiB6LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHR5cGU6IFcsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG9lLA0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAhYm8odWUpICYmIHsgYXM6IHJlLCBvd25lclN0YXRlOiBpKHt9LCBhZSwgb2Uu b3duZXJTdGF0ZSkgfSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZjogRywNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6IHMoaWUuaW5wdXQsIG9lLmNsYXNzTmFt ZSwgSSAmJiAiTXVpSW5wdXRCYXNlLXJlYWRPbmx5IiksDQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgb25CbHVyOiAoZSkgPT4gew0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTyAmJiBPKGUpLCBrLm9uQmx1ciAmJiBrLm9uQmx1cihlKSwgWiAm JiBaLm9uQmx1ciA/IFoub25CbHVyKGUpIDogWCghMSk7DQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBv bkNoYW5nZTogZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGlmICghJCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjb25zdCB0ID0gZS50YXJnZXQgfHwgSy5jdXJyZW50Ow0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpZiAobnVsbCA9PSB0KSB0aHJvdyBuZXcgRXJyb3IoZCgx KSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5lKHsgdmFsdWU6 IHQudmFsdWUgfSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciB0ID0gYXJndW1l bnRzLmxlbmd0aCwgbiA9IG5ldyBBcnJheSh0ID4gMSA/IHQgLSAxIDogMCksIHIgPSAxOyBy IDwgdDsgcisrKSBuW3IgLSAxXSA9IGFyZ3VtZW50c1tyXTsNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGsub25DaGFuZ2UgJiYgay5vbkNoYW5nZShlLCAuLi5uKSwg TiAmJiBOKGUsIC4uLm4pOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0s DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25Gb2N1czogKGUpID0+IHsN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEouZGlzYWJsZWQgPyBlLnN0 b3BQcm9wYWdhdGlvbigpIDogKEEgJiYgQShlKSwgay5vbkZvY3VzICYmIGsub25Gb2N1cyhl KSwgWiAmJiBaLm9uRm9jdXMgPyBaLm9uRm9jdXMoZSkgOiBYKCEwKSk7DQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQ0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICksDQogICAgICAgICAgICAgICAgICAgICAgICAgIH0pLA0KICAg ICAgICAgICAgICAgICAgICAgICAgICBiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICBM ID8gTChpKHt9LCBKLCB7IHN0YXJ0QWRvcm5tZW50OiBVIH0pKSA6IG51bGwsDQogICAgICAg ICAgICAgICAgICAgICAgICBdLA0KICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAg ICAgICAgICAgICAgKQ0KICAgICAgICAgICAgICAgICAgKSwNCiAgICAgICAgICAgICAgICBd LA0KICAgICAgICAgICAgICB9KQ0KICAgICAgICAgICAgKTsNCiAgICAgICAgICB9KSwNCiAg ICAgICAgICBCYyA9IEZjOw0KICAgICAgICBmdW5jdGlvbiBEYyhlKSB7DQogICAgICAgICAg cmV0dXJuIGpyKCJNdWlJbnB1dCIsIGUpOw0KICAgICAgICB9DQogICAgICAgIGNvbnN0IFVj ID0gaSh7fSwgVGMsIElyKCJNdWlJbnB1dCIsIFsicm9vdCIsICJ1bmRlcmxpbmUiLCAiaW5w dXQiXSkpLA0KICAgICAgICAgIFdjID0gWyJkaXNhYmxlVW5kZXJsaW5lIiwgImNvbXBvbmVu dHMiLCAiY29tcG9uZW50c1Byb3BzIiwgImZ1bGxXaWR0aCIsICJpbnB1dENvbXBvbmVudCIs ICJtdWx0aWxpbmUiLCAic2xvdFByb3BzIiwgInNsb3RzIiwgInR5cGUiXSwNCiAgICAgICAg ICBWYyA9IFluKGpjLCB7DQogICAgICAgICAgICBzaG91bGRGb3J3YXJkUHJvcDogKGUpID0+ IEduKGUpIHx8ICJjbGFzc2VzIiA9PT0gZSwNCiAgICAgICAgICAgIG5hbWU6ICJNdWlJbnB1 dCIsDQogICAgICAgICAgICBzbG90OiAiUm9vdCIsDQogICAgICAgICAgICBvdmVycmlkZXNS ZXNvbHZlcjogKGUsIHQpID0+IHsNCiAgICAgICAgICAgICAgY29uc3QgeyBvd25lclN0YXRl OiBuIH0gPSBlOw0KICAgICAgICAgICAgICByZXR1cm4gWy4uLk1jKGUsIHQpLCAhbi5kaXNh YmxlVW5kZXJsaW5lICYmIHQudW5kZXJsaW5lXTsNCiAgICAgICAgICAgIH0sDQogICAgICAg ICAgfSkoKGUpID0+IHsNCiAgICAgICAgICAgIGxldCB7IHRoZW1lOiB0LCBvd25lclN0YXRl OiBuIH0gPSBlOw0KICAgICAgICAgICAgbGV0IHIgPSAibGlnaHQiID09PSB0LnBhbGV0dGUu bW9kZSA/ICJyZ2JhKDAsIDAsIDAsIDAuNDIpIiA6ICJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAu NykiOw0KICAgICAgICAgICAgcmV0dXJuICgNCiAgICAgICAgICAgICAgdC52YXJzICYmIChy ID0gInJnYmEoIi5jb25jYXQodC52YXJzLnBhbGV0dGUuY29tbW9uLm9uQmFja2dyb3VuZENo YW5uZWwsICIgLyAiKS5jb25jYXQodC52YXJzLm9wYWNpdHkuaW5wdXRVbmRlcmxpbmUsICIp IikpLA0KICAgICAgICAgICAgICBpKA0KICAgICAgICAgICAgICAgIHsgcG9zaXRpb246ICJy ZWxhdGl2ZSIgfSwNCiAgICAgICAgICAgICAgICBuLmZvcm1Db250cm9sICYmIHsgImxhYmVs ICsgJiI6IHsgbWFyZ2luVG9wOiAxNiB9IH0sDQogICAgICAgICAgICAgICAgIW4uZGlzYWJs ZVVuZGVybGluZSAmJiB7DQogICAgICAgICAgICAgICAgICAiJjphZnRlciI6IHsNCiAgICAg ICAgICAgICAgICAgICAgYm9yZGVyQm90dG9tOiAiMnB4IHNvbGlkICIuY29uY2F0KCh0LnZh cnMgfHwgdCkucGFsZXR0ZVtuLmNvbG9yXS5tYWluKSwNCiAgICAgICAgICAgICAgICAgICAg bGVmdDogMCwNCiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAwLA0KICAgICAgICAgICAg ICAgICAgICBjb250ZW50OiAnIiInLA0KICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjog ImFic29sdXRlIiwNCiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDAsDQogICAgICAgICAg ICAgICAgICAgIHRyYW5zZm9ybTogInNjYWxlWCgwKSIsDQogICAgICAgICAgICAgICAgICAg IHRyYW5zaXRpb246IHQudHJhbnNpdGlvbnMuY3JlYXRlKCJ0cmFuc2Zvcm0iLCB7IGR1cmF0 aW9uOiB0LnRyYW5zaXRpb25zLmR1cmF0aW9uLnNob3J0ZXIsIGVhc2luZzogdC50cmFuc2l0 aW9ucy5lYXNpbmcuZWFzZU91dCB9KSwNCiAgICAgICAgICAgICAgICAgICAgcG9pbnRlckV2 ZW50czogIm5vbmUiLA0KICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAg IFsiJi4iLmNvbmNhdChVYy5mb2N1c2VkLCAiOmFmdGVyIildOiB7IHRyYW5zZm9ybTogInNj YWxlWCgxKSB0cmFuc2xhdGVYKDApIiB9LA0KICAgICAgICAgICAgICAgICAgWyImLiIuY29u Y2F0KFVjLmVycm9yKV06IHsgIiY6YmVmb3JlLCAmOmFmdGVyIjogeyBib3JkZXJCb3R0b21D b2xvcjogKHQudmFycyB8fCB0KS5wYWxldHRlLmVycm9yLm1haW4gfSB9LA0KICAgICAgICAg ICAgICAgICAgIiY6YmVmb3JlIjogew0KICAgICAgICAgICAgICAgICAgICBib3JkZXJCb3R0 b206ICIxcHggc29saWQgIi5jb25jYXQociksDQogICAgICAgICAgICAgICAgICAgIGxlZnQ6 IDAsDQogICAgICAgICAgICAgICAgICAgIGJvdHRvbTogMCwNCiAgICAgICAgICAgICAgICAg ICAgY29udGVudDogJyJcXDAwYTAiJywNCiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246 ICJhYnNvbHV0ZSIsDQogICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAwLA0KICAgICAgICAg ICAgICAgICAgICB0cmFuc2l0aW9uOiB0LnRyYW5zaXRpb25zLmNyZWF0ZSgiYm9yZGVyLWJv dHRvbS1jb2xvciIsIHsgZHVyYXRpb246IHQudHJhbnNpdGlvbnMuZHVyYXRpb24uc2hvcnRl ciB9KSwNCiAgICAgICAgICAgICAgICAgICAgcG9pbnRlckV2ZW50czogIm5vbmUiLA0KICAg ICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgIFsiJjpob3Zlcjpub3QoLiIu Y29uY2F0KFVjLmRpc2FibGVkLCAiLCAuIikuY29uY2F0KFVjLmVycm9yLCAiKTpiZWZvcmUi KV06IHsNCiAgICAgICAgICAgICAgICAgICAgYm9yZGVyQm90dG9tOiAiMnB4IHNvbGlkICIu Y29uY2F0KCh0LnZhcnMgfHwgdCkucGFsZXR0ZS50ZXh0LnByaW1hcnkpLA0KICAgICAgICAg ICAgICAgICAgICAiQG1lZGlhIChob3Zlcjogbm9uZSkiOiB7IGJvcmRlckJvdHRvbTogIjFw eCBzb2xpZCAiLmNvbmNhdChyKSB9LA0KICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAg ICAgICAgICAgIFsiJi4iLmNvbmNhdChVYy5kaXNhYmxlZCwgIjpiZWZvcmUiKV06IHsgYm9y ZGVyQm90dG9tU3R5bGU6ICJkb3R0ZWQiIH0sDQogICAgICAgICAgICAgICAgfQ0KICAgICAg ICAgICAgICApDQogICAgICAgICAgICApOw0KICAgICAgICAgIH0pLA0KICAgICAgICAgIEhj ID0gWW4oSWMsIHsgbmFtZTogIk11aUlucHV0Iiwgc2xvdDogIklucHV0Iiwgb3ZlcnJpZGVz UmVzb2x2ZXI6IHpjIH0pKHt9KSwNCiAgICAgICAgICBxYyA9IHQuZm9yd2FyZFJlZihmdW5j dGlvbiAoZSwgdCkgew0KICAgICAgICAgICAgdmFyIG4sIHIsIG8sIGw7DQogICAgICAgICAg ICBjb25zdCBzID0gdHIoeyBwcm9wczogZSwgbmFtZTogIk11aUlucHV0IiB9KSwNCiAgICAg ICAgICAgICAgeyBkaXNhYmxlVW5kZXJsaW5lOiB1LCBjb21wb25lbnRzOiBkID0ge30sIGNv bXBvbmVudHNQcm9wczogZiwgZnVsbFdpZHRoOiBwID0gITEsIGlucHV0Q29tcG9uZW50OiBo ID0gImlucHV0IiwgbXVsdGlsaW5lOiBtID0gITEsIHNsb3RQcm9wczogZywgc2xvdHM6IHYg PSB7fSwgdHlwZTogeSA9ICJ0ZXh0IiB9ID0gcywNCiAgICAgICAgICAgICAgYiA9IGEocywg V2MpLA0KICAgICAgICAgICAgICB3ID0gKChlKSA9PiB7DQogICAgICAgICAgICAgICAgY29u c3QgeyBjbGFzc2VzOiB0LCBkaXNhYmxlVW5kZXJsaW5lOiBuIH0gPSBlOw0KICAgICAgICAg ICAgICAgIHJldHVybiBpKHt9LCB0LCBjKHsgcm9vdDogWyJyb290IiwgIW4gJiYgInVuZGVy bGluZSJdLCBpbnB1dDogWyJpbnB1dCJdIH0sIERjLCB0KSk7DQogICAgICAgICAgICAgIH0p KHMpLA0KICAgICAgICAgICAgICB4ID0geyByb290OiB7IG93bmVyU3RhdGU6IHsgZGlzYWJs ZVVuZGVybGluZTogdSB9IH0gfSwNCiAgICAgICAgICAgICAgUyA9IChudWxsICE9IGcgPyBn IDogZikgPyBaZShudWxsICE9IGcgPyBnIDogZiwgeCkgOiB4LA0KICAgICAgICAgICAgICBr ID0gbnVsbCAhPSAobiA9IG51bGwgIT0gKHIgPSB2LnJvb3QpID8gciA6IGQuUm9vdCkgPyBu IDogVmMsDQogICAgICAgICAgICAgIEUgPSBudWxsICE9IChvID0gbnVsbCAhPSAobCA9IHYu aW5wdXQpID8gbCA6IGQuSW5wdXQpID8gbyA6IEhjOw0KICAgICAgICAgICAgcmV0dXJuICgw LCBOci5qc3gpKEJjLCBpKHsgc2xvdHM6IHsgcm9vdDogaywgaW5wdXQ6IEUgfSwgc2xvdFBy b3BzOiBTLCBmdWxsV2lkdGg6IHAsIGlucHV0Q29tcG9uZW50OiBoLCBtdWx0aWxpbmU6IG0s IHJlZjogdCwgdHlwZTogeSB9LCBiLCB7IGNsYXNzZXM6IHcgfSkpOw0KICAgICAgICAgIH0p Ow0KICAgICAgICBxYy5tdWlOYW1lID0gIklucHV0IjsNCiAgICAgICAgY29uc3QgJGMgPSBx YzsNCiAgICAgICAgZnVuY3Rpb24gS2MoZSkgew0KICAgICAgICAgIHJldHVybiBqcigiTXVp Rm9ybUxhYmVsIiwgZSk7DQogICAgICAgIH0NCiAgICAgICAgY29uc3QgUWMgPSBJcigiTXVp Rm9ybUxhYmVsIiwgWyJyb290IiwgImNvbG9yU2Vjb25kYXJ5IiwgImZvY3VzZWQiLCAiZGlz YWJsZWQiLCAiZXJyb3IiLCAiZmlsbGVkIiwgInJlcXVpcmVkIiwgImFzdGVyaXNrIl0pLA0K ICAgICAgICAgIEdjID0gWyJjaGlsZHJlbiIsICJjbGFzc05hbWUiLCAiY29sb3IiLCAiY29t cG9uZW50IiwgImRpc2FibGVkIiwgImVycm9yIiwgImZpbGxlZCIsICJmb2N1c2VkIiwgInJl cXVpcmVkIl0sDQogICAgICAgICAgWWMgPSBZbigibGFiZWwiLCB7DQogICAgICAgICAgICBu YW1lOiAiTXVpRm9ybUxhYmVsIiwNCiAgICAgICAgICAgIHNsb3Q6ICJSb290IiwNCiAgICAg ICAgICAgIG92ZXJyaWRlc1Jlc29sdmVyOiAoZSwgdCkgPT4gew0KICAgICAgICAgICAgICBs ZXQgeyBvd25lclN0YXRlOiBuIH0gPSBlOw0KICAgICAgICAgICAgICByZXR1cm4gaSh7fSwg dC5yb290LCAic2Vjb25kYXJ5IiA9PT0gbi5jb2xvciAmJiB0LmNvbG9yU2Vjb25kYXJ5LCBu LmZpbGxlZCAmJiB0LmZpbGxlZCk7DQogICAgICAgICAgICB9LA0KICAgICAgICAgIH0pKChl KSA9PiB7DQogICAgICAgICAgICBsZXQgeyB0aGVtZTogdCwgb3duZXJTdGF0ZTogbiB9ID0g ZTsNCiAgICAgICAgICAgIHJldHVybiBpKHsgY29sb3I6ICh0LnZhcnMgfHwgdCkucGFsZXR0 ZS50ZXh0LnNlY29uZGFyeSB9LCB0LnR5cG9ncmFwaHkuYm9keTEsIHsNCiAgICAgICAgICAg ICAgbGluZUhlaWdodDogIjEuNDM3NWVtIiwNCiAgICAgICAgICAgICAgcGFkZGluZzogMCwN CiAgICAgICAgICAgICAgcG9zaXRpb246ICJyZWxhdGl2ZSIsDQogICAgICAgICAgICAgIFsi Ji4iLmNvbmNhdChRYy5mb2N1c2VkKV06IHsgY29sb3I6ICh0LnZhcnMgfHwgdCkucGFsZXR0 ZVtuLmNvbG9yXS5tYWluIH0sDQogICAgICAgICAgICAgIFsiJi4iLmNvbmNhdChRYy5kaXNh YmxlZCldOiB7IGNvbG9yOiAodC52YXJzIHx8IHQpLnBhbGV0dGUudGV4dC5kaXNhYmxlZCB9 LA0KICAgICAgICAgICAgICBbIiYuIi5jb25jYXQoUWMuZXJyb3IpXTogeyBjb2xvcjogKHQu dmFycyB8fCB0KS5wYWxldHRlLmVycm9yLm1haW4gfSwNCiAgICAgICAgICAgIH0pOw0KICAg ICAgICAgIH0pLA0KICAgICAgICAgIFhjID0gWW4oInNwYW4iLCB7IG5hbWU6ICJNdWlGb3Jt TGFiZWwiLCBzbG90OiAiQXN0ZXJpc2siLCBvdmVycmlkZXNSZXNvbHZlcjogKGUsIHQpID0+ IHQuYXN0ZXJpc2sgfSkoKGUpID0+IHsNCiAgICAgICAgICAgIGxldCB7IHRoZW1lOiB0IH0g PSBlOw0KICAgICAgICAgICAgcmV0dXJuIHsgWyImLiIuY29uY2F0KFFjLmVycm9yKV06IHsg Y29sb3I6ICh0LnZhcnMgfHwgdCkucGFsZXR0ZS5lcnJvci5tYWluIH0gfTsNCiAgICAgICAg ICB9KSwNCiAgICAgICAgICBaYyA9IHQuZm9yd2FyZFJlZihmdW5jdGlvbiAoZSwgdCkgew0K ICAgICAgICAgICAgY29uc3QgbiA9IHRyKHsgcHJvcHM6IGUsIG5hbWU6ICJNdWlGb3JtTGFi ZWwiIH0pLA0KICAgICAgICAgICAgICB7IGNoaWxkcmVuOiByLCBjbGFzc05hbWU6IG8sIGNv bXBvbmVudDogbCA9ICJsYWJlbCIgfSA9IG4sDQogICAgICAgICAgICAgIHUgPSBhKG4sIEdj KSwNCiAgICAgICAgICAgICAgZCA9IEVjKHsgcHJvcHM6IG4sIG11aUZvcm1Db250cm9sOiBD YygpLCBzdGF0ZXM6IFsiY29sb3IiLCAicmVxdWlyZWQiLCAiZm9jdXNlZCIsICJkaXNhYmxl ZCIsICJlcnJvciIsICJmaWxsZWQiXSB9KSwNCiAgICAgICAgICAgICAgZiA9IGkoe30sIG4s IHsgY29sb3I6IGQuY29sb3IgfHwgInByaW1hcnkiLCBjb21wb25lbnQ6IGwsIGRpc2FibGVk OiBkLmRpc2FibGVkLCBlcnJvcjogZC5lcnJvciwgZmlsbGVkOiBkLmZpbGxlZCwgZm9jdXNl ZDogZC5mb2N1c2VkLCByZXF1aXJlZDogZC5yZXF1aXJlZCB9KSwNCiAgICAgICAgICAgICAg cCA9ICgoZSkgPT4gew0KICAgICAgICAgICAgICAgIGNvbnN0IHsgY2xhc3NlczogdCwgY29s b3I6IG4sIGZvY3VzZWQ6IHIsIGRpc2FibGVkOiBvLCBlcnJvcjogYSwgZmlsbGVkOiBpLCBy ZXF1aXJlZDogbCB9ID0gZTsNCiAgICAgICAgICAgICAgICByZXR1cm4gYyh7IHJvb3Q6IFsi cm9vdCIsICJjb2xvciIuY29uY2F0KGlvKG4pKSwgbyAmJiAiZGlzYWJsZWQiLCBhICYmICJl cnJvciIsIGkgJiYgImZpbGxlZCIsIHIgJiYgImZvY3VzZWQiLCBsICYmICJyZXF1aXJlZCJd LCBhc3RlcmlzazogWyJhc3RlcmlzayIsIGEgJiYgImVycm9yIl0gfSwgS2MsIHQpOw0KICAg ICAgICAgICAgICB9KShmKTsNCiAgICAgICAgICAgIHJldHVybiAoMCwNCiAgICAgICAgICAg ICAgTnIuanN4cykoWWMsIGkoeyBhczogbCwgb3duZXJTdGF0ZTogZiwgY2xhc3NOYW1lOiBz KHAucm9vdCwgbyksIHJlZjogdCB9LCB1LCB7IGNoaWxkcmVuOiBbciwgZC5yZXF1aXJlZCAm JiAoMCwgTnIuanN4cykoWGMsIHsgb3duZXJTdGF0ZTogZiwgImFyaWEtaGlkZGVuIjogITAs IGNsYXNzTmFtZTogcC5hc3RlcmlzaywgY2hpbGRyZW46IFsiXHUyMDA5IiwgIioiXSB9KV0g fSkpOw0KICAgICAgICAgIH0pLA0KICAgICAgICAgIEpjID0gWmM7DQogICAgICAgIGZ1bmN0 aW9uIGVkKGUpIHsNCiAgICAgICAgICByZXR1cm4ganIoIk11aUlucHV0TGFiZWwiLCBlKTsN CiAgICAgICAgfQ0KICAgICAgICBJcigiTXVpSW5wdXRMYWJlbCIsIFsicm9vdCIsICJmb2N1 c2VkIiwgImRpc2FibGVkIiwgImVycm9yIiwgInJlcXVpcmVkIiwgImFzdGVyaXNrIiwgImZv cm1Db250cm9sIiwgInNpemVTbWFsbCIsICJzaHJpbmsiLCAiYW5pbWF0ZWQiLCAic3RhbmRh cmQiLCAiZmlsbGVkIiwgIm91dGxpbmVkIl0pOw0KICAgICAgICBjb25zdCB0ZCA9IFsiZGlz YWJsZUFuaW1hdGlvbiIsICJtYXJnaW4iLCAic2hyaW5rIiwgInZhcmlhbnQiLCAiY2xhc3NO YW1lIl0sDQogICAgICAgICAgbmQgPSBZbihKYywgew0KICAgICAgICAgICAgc2hvdWxkRm9y d2FyZFByb3A6IChlKSA9PiBHbihlKSB8fCAiY2xhc3NlcyIgPT09IGUsDQogICAgICAgICAg ICBuYW1lOiAiTXVpSW5wdXRMYWJlbCIsDQogICAgICAgICAgICBzbG90OiAiUm9vdCIsDQog ICAgICAgICAgICBvdmVycmlkZXNSZXNvbHZlcjogKGUsIHQpID0+IHsNCiAgICAgICAgICAg ICAgY29uc3QgeyBvd25lclN0YXRlOiBuIH0gPSBlOw0KICAgICAgICAgICAgICByZXR1cm4g Ww0KICAgICAgICAgICAgICAgIHsgWyImIC4iLmNvbmNhdChRYy5hc3RlcmlzayldOiB0LmFz dGVyaXNrIH0sDQogICAgICAgICAgICAgICAgdC5yb290LA0KICAgICAgICAgICAgICAgIG4u Zm9ybUNvbnRyb2wgJiYgdC5mb3JtQ29udHJvbCwNCiAgICAgICAgICAgICAgICAic21hbGwi ID09PSBuLnNpemUgJiYgdC5zaXplU21hbGwsDQogICAgICAgICAgICAgICAgbi5zaHJpbmsg JiYgdC5zaHJpbmssDQogICAgICAgICAgICAgICAgIW4uZGlzYWJsZUFuaW1hdGlvbiAmJiB0 LmFuaW1hdGVkLA0KICAgICAgICAgICAgICAgIG4uZm9jdXNlZCAmJiB0LmZvY3VzZWQsDQog ICAgICAgICAgICAgICAgdFtuLnZhcmlhbnRdLA0KICAgICAgICAgICAgICBdOw0KICAgICAg ICAgICAgfSwNCiAgICAgICAgICB9KSgoZSkgPT4gew0KICAgICAgICAgICAgbGV0IHsgdGhl bWU6IHQsIG93bmVyU3RhdGU6IG4gfSA9IGU7DQogICAgICAgICAgICByZXR1cm4gaSgNCiAg ICAgICAgICAgICAgeyBkaXNwbGF5OiAiYmxvY2siLCB0cmFuc2Zvcm1PcmlnaW46ICJ0b3Ag bGVmdCIsIHdoaXRlU3BhY2U6ICJub3dyYXAiLCBvdmVyZmxvdzogImhpZGRlbiIsIHRleHRP dmVyZmxvdzogImVsbGlwc2lzIiwgbWF4V2lkdGg6ICIxMDAlIiB9LA0KICAgICAgICAgICAg ICBuLmZvcm1Db250cm9sICYmIHsgcG9zaXRpb246ICJhYnNvbHV0ZSIsIGxlZnQ6IDAsIHRv cDogMCwgdHJhbnNmb3JtOiAidHJhbnNsYXRlKDAsIDIwcHgpIHNjYWxlKDEpIiB9LA0KICAg ICAgICAgICAgICAic21hbGwiID09PSBuLnNpemUgJiYgeyB0cmFuc2Zvcm06ICJ0cmFuc2xh dGUoMCwgMTdweCkgc2NhbGUoMSkiIH0sDQogICAgICAgICAgICAgIG4uc2hyaW5rICYmIHsg dHJhbnNmb3JtOiAidHJhbnNsYXRlKDAsIC0xLjVweCkgc2NhbGUoMC43NSkiLCB0cmFuc2Zv cm1PcmlnaW46ICJ0b3AgbGVmdCIsIG1heFdpZHRoOiAiMTMzJSIgfSwNCiAgICAgICAgICAg ICAgIW4uZGlzYWJsZUFuaW1hdGlvbiAmJiB7IHRyYW5zaXRpb246IHQudHJhbnNpdGlvbnMu Y3JlYXRlKFsiY29sb3IiLCAidHJhbnNmb3JtIiwgIm1heC13aWR0aCJdLCB7IGR1cmF0aW9u OiB0LnRyYW5zaXRpb25zLmR1cmF0aW9uLnNob3J0ZXIsIGVhc2luZzogdC50cmFuc2l0aW9u cy5lYXNpbmcuZWFzZU91dCB9KSB9LA0KICAgICAgICAgICAgICAiZmlsbGVkIiA9PT0gbi52 YXJpYW50ICYmDQogICAgICAgICAgICAgIGkoDQogICAgICAgICAgICAgICAgeyB6SW5kZXg6 IDEsIHBvaW50ZXJFdmVudHM6ICJub25lIiwgdHJhbnNmb3JtOiAidHJhbnNsYXRlKDEycHgs IDE2cHgpIHNjYWxlKDEpIiwgbWF4V2lkdGg6ICJjYWxjKDEwMCUgLSAyNHB4KSIgfSwNCiAg ICAgICAgICAgICAgICAic21hbGwiID09PSBuLnNpemUgJiYgeyB0cmFuc2Zvcm06ICJ0cmFu c2xhdGUoMTJweCwgMTNweCkgc2NhbGUoMSkiIH0sDQogICAgICAgICAgICAgICAgbi5zaHJp bmsgJiYNCiAgICAgICAgICAgICAgICBpKA0KICAgICAgICAgICAgICAgICAgeyB1c2VyU2Vs ZWN0OiAibm9uZSIsIHBvaW50ZXJFdmVudHM6ICJhdXRvIiwgdHJhbnNmb3JtOiAidHJhbnNs YXRlKDEycHgsIDdweCkgc2NhbGUoMC43NSkiLCBtYXhXaWR0aDogImNhbGMoMTMzJSAtIDI0 cHgpIiB9LA0KICAgICAgICAgICAgICAgICAgInNtYWxsIiA9PT0gbi5zaXplICYmIHsgdHJh bnNmb3JtOiAidHJhbnNsYXRlKDEycHgsIDRweCkgc2NhbGUoMC43NSkiIH0NCiAgICAgICAg ICAgICAgICApDQogICAgICAgICAgICAgICksDQogICAgICAgICAgICAgICJvdXRsaW5lZCIg PT09IG4udmFyaWFudCAmJg0KICAgICAgICAgICAgICBpKA0KICAgICAgICAgICAgICAgIHsg ekluZGV4OiAxLCBwb2ludGVyRXZlbnRzOiAibm9uZSIsIHRyYW5zZm9ybTogInRyYW5zbGF0 ZSgxNHB4LCAxNnB4KSBzY2FsZSgxKSIsIG1heFdpZHRoOiAiY2FsYygxMDAlIC0gMjRweCki IH0sDQogICAgICAgICAgICAgICAgInNtYWxsIiA9PT0gbi5zaXplICYmIHsgdHJhbnNmb3Jt OiAidHJhbnNsYXRlKDE0cHgsIDlweCkgc2NhbGUoMSkiIH0sDQogICAgICAgICAgICAgICAg bi5zaHJpbmsgJiYgeyB1c2VyU2VsZWN0OiAibm9uZSIsIHBvaW50ZXJFdmVudHM6ICJhdXRv IiwgbWF4V2lkdGg6ICJjYWxjKDEzMyUgLSAzMnB4KSIsIHRyYW5zZm9ybTogInRyYW5zbGF0 ZSgxNHB4LCAtOXB4KSBzY2FsZSgwLjc1KSIgfQ0KICAgICAgICAgICAgICApDQogICAgICAg ICAgICApOw0KICAgICAgICAgIH0pLA0KICAgICAgICAgIHJkID0gdC5mb3J3YXJkUmVmKGZ1 bmN0aW9uIChlLCB0KSB7DQogICAgICAgICAgICBjb25zdCBuID0gdHIoeyBuYW1lOiAiTXVp SW5wdXRMYWJlbCIsIHByb3BzOiBlIH0pLA0KICAgICAgICAgICAgICB7IGRpc2FibGVBbmlt YXRpb246IHIgPSAhMSwgc2hyaW5rOiBvLCBjbGFzc05hbWU6IGwgfSA9IG4sDQogICAgICAg ICAgICAgIHUgPSBhKG4sIHRkKSwNCiAgICAgICAgICAgICAgZCA9IENjKCk7DQogICAgICAg ICAgICBsZXQgZiA9IG87DQogICAgICAgICAgICAidW5kZWZpbmVkIiA9PT0gdHlwZW9mIGYg JiYgZCAmJiAoZiA9IGQuZmlsbGVkIHx8IGQuZm9jdXNlZCB8fCBkLmFkb3JuZWRTdGFydCk7 DQogICAgICAgICAgICBjb25zdCBwID0gRWMoeyBwcm9wczogbiwgbXVpRm9ybUNvbnRyb2w6 IGQsIHN0YXRlczogWyJzaXplIiwgInZhcmlhbnQiLCAicmVxdWlyZWQiLCAiZm9jdXNlZCJd IH0pLA0KICAgICAgICAgICAgICBoID0gaSh7fSwgbiwgeyBkaXNhYmxlQW5pbWF0aW9uOiBy LCBmb3JtQ29udHJvbDogZCwgc2hyaW5rOiBmLCBzaXplOiBwLnNpemUsIHZhcmlhbnQ6IHAu dmFyaWFudCwgcmVxdWlyZWQ6IHAucmVxdWlyZWQsIGZvY3VzZWQ6IHAuZm9jdXNlZCB9KSwN CiAgICAgICAgICAgICAgbSA9ICgoZSkgPT4gew0KICAgICAgICAgICAgICAgIGNvbnN0IHsg Y2xhc3NlczogdCwgZm9ybUNvbnRyb2w6IG4sIHNpemU6IHIsIHNocmluazogbywgZGlzYWJs ZUFuaW1hdGlvbjogYSwgdmFyaWFudDogbCwgcmVxdWlyZWQ6IHMgfSA9IGU7DQogICAgICAg ICAgICAgICAgcmV0dXJuIGkoe30sIHQsIGMoeyByb290OiBbInJvb3QiLCBuICYmICJmb3Jt Q29udHJvbCIsICFhICYmICJhbmltYXRlZCIsIG8gJiYgInNocmluayIsIHIgJiYgIm5vcm1h bCIgIT09IHIgJiYgInNpemUiLmNvbmNhdChpbyhyKSksIGxdLCBhc3RlcmlzazogW3MgJiYg ImFzdGVyaXNrIl0gfSwgZWQsIHQpKTsNCiAgICAgICAgICAgICAgfSkoaCk7DQogICAgICAg ICAgICByZXR1cm4gKDAsIE5yLmpzeCkobmQsIGkoeyAiZGF0YS1zaHJpbmsiOiBmLCBvd25l clN0YXRlOiBoLCByZWY6IHQsIGNsYXNzTmFtZTogcyhtLnJvb3QsIGwpIH0sIHUsIHsgY2xh c3NlczogbSB9KSk7DQogICAgICAgICAgfSk7DQogICAgICAgIGZ1bmN0aW9uIG9kKGUpIHsN CiAgICAgICAgICByZXR1cm4ganIoIk11aUZvcm1Db250cm9sTGFiZWwiLCBlKTsNCiAgICAg ICAgfQ0KICAgICAgICBjb25zdCBhZCA9IElyKCJNdWlGb3JtQ29udHJvbExhYmVsIiwgWyJy b290IiwgImxhYmVsUGxhY2VtZW50U3RhcnQiLCAibGFiZWxQbGFjZW1lbnRUb3AiLCAibGFi ZWxQbGFjZW1lbnRCb3R0b20iLCAiZGlzYWJsZWQiLCAibGFiZWwiLCAiZXJyb3IiLCAicmVx dWlyZWQiLCAiYXN0ZXJpc2siXSksDQogICAgICAgICAgaWQgPSBbImNoZWNrZWQiLCAiY2xh c3NOYW1lIiwgImNvbXBvbmVudHNQcm9wcyIsICJjb250cm9sIiwgImRpc2FibGVkIiwgImRp c2FibGVUeXBvZ3JhcGh5IiwgImlucHV0UmVmIiwgImxhYmVsIiwgImxhYmVsUGxhY2VtZW50 IiwgIm5hbWUiLCAib25DaGFuZ2UiLCAicmVxdWlyZWQiLCAic2xvdFByb3BzIiwgInZhbHVl Il0sDQogICAgICAgICAgbGQgPSBZbigibGFiZWwiLCB7DQogICAgICAgICAgICBuYW1lOiAi TXVpRm9ybUNvbnRyb2xMYWJlbCIsDQogICAgICAgICAgICBzbG90OiAiUm9vdCIsDQogICAg ICAgICAgICBvdmVycmlkZXNSZXNvbHZlcjogKGUsIHQpID0+IHsNCiAgICAgICAgICAgICAg Y29uc3QgeyBvd25lclN0YXRlOiBuIH0gPSBlOw0KICAgICAgICAgICAgICByZXR1cm4gW3sg WyImIC4iLmNvbmNhdChhZC5sYWJlbCldOiB0LmxhYmVsIH0sIHQucm9vdCwgdFsibGFiZWxQ bGFjZW1lbnQiLmNvbmNhdChpbyhuLmxhYmVsUGxhY2VtZW50KSldXTsNCiAgICAgICAgICAg IH0sDQogICAgICAgICAgfSkoKGUpID0+IHsNCiAgICAgICAgICAgIGxldCB7IHRoZW1lOiB0 LCBvd25lclN0YXRlOiBuIH0gPSBlOw0KICAgICAgICAgICAgcmV0dXJuIGkoDQogICAgICAg ICAgICAgIHsNCiAgICAgICAgICAgICAgICBkaXNwbGF5OiAiaW5saW5lLWZsZXgiLA0KICAg ICAgICAgICAgICAgIGFsaWduSXRlbXM6ICJjZW50ZXIiLA0KICAgICAgICAgICAgICAgIGN1 cnNvcjogInBvaW50ZXIiLA0KICAgICAgICAgICAgICAgIHZlcnRpY2FsQWxpZ246ICJtaWRk bGUiLA0KICAgICAgICAgICAgICAgIFdlYmtpdFRhcEhpZ2hsaWdodENvbG9yOiAidHJhbnNw YXJlbnQiLA0KICAgICAgICAgICAgICAgIG1hcmdpbkxlZnQ6IC0xMSwNCiAgICAgICAgICAg ICAgICBtYXJnaW5SaWdodDogMTYsDQogICAgICAgICAgICAgICAgWyImLiIuY29uY2F0KGFk LmRpc2FibGVkKV06IHsgY3Vyc29yOiAiZGVmYXVsdCIgfSwNCiAgICAgICAgICAgICAgfSwN CiAgICAgICAgICAgICAgInN0YXJ0IiA9PT0gbi5sYWJlbFBsYWNlbWVudCAmJiB7IGZsZXhE aXJlY3Rpb246ICJyb3ctcmV2ZXJzZSIsIG1hcmdpbkxlZnQ6IDE2LCBtYXJnaW5SaWdodDog LTExIH0sDQogICAgICAgICAgICAgICJ0b3AiID09PSBuLmxhYmVsUGxhY2VtZW50ICYmIHsg ZmxleERpcmVjdGlvbjogImNvbHVtbi1yZXZlcnNlIiwgbWFyZ2luTGVmdDogMTYgfSwNCiAg ICAgICAgICAgICAgImJvdHRvbSIgPT09IG4ubGFiZWxQbGFjZW1lbnQgJiYgeyBmbGV4RGly ZWN0aW9uOiAiY29sdW1uIiwgbWFyZ2luTGVmdDogMTYgfSwNCiAgICAgICAgICAgICAgeyBb IiYgLiIuY29uY2F0KGFkLmxhYmVsKV06IHsgWyImLiIuY29uY2F0KGFkLmRpc2FibGVkKV06 IHsgY29sb3I6ICh0LnZhcnMgfHwgdCkucGFsZXR0ZS50ZXh0LmRpc2FibGVkIH0gfSB9DQog ICAgICAgICAgICApOw0KICAgICAgICAgIH0pLA0KICAgICAgICAgIHNkID0gWW4oInNwYW4i LCB7IG5hbWU6ICJNdWlGb3JtQ29udHJvbExhYmVsIiwgc2xvdDogIkFzdGVyaXNrIiwgb3Zl cnJpZGVzUmVzb2x2ZXI6IChlLCB0KSA9PiB0LmFzdGVyaXNrIH0pKChlKSA9PiB7DQogICAg ICAgICAgICBsZXQgeyB0aGVtZTogdCB9ID0gZTsNCiAgICAgICAgICAgIHJldHVybiB7IFsi Ji4iLmNvbmNhdChhZC5lcnJvcildOiB7IGNvbG9yOiAodC52YXJzIHx8IHQpLnBhbGV0dGUu ZXJyb3IubWFpbiB9IH07DQogICAgICAgICAgfSksDQogICAgICAgICAgdWQgPSB0LmZvcndh cmRSZWYoZnVuY3Rpb24gKGUsIG4pIHsNCiAgICAgICAgICAgIHZhciByLCBvOw0KICAgICAg ICAgICAgY29uc3QgbCA9IHRyKHsgcHJvcHM6IGUsIG5hbWU6ICJNdWlGb3JtQ29udHJvbExh YmVsIiB9KSwNCiAgICAgICAgICAgICAgeyBjbGFzc05hbWU6IHUsIGNvbXBvbmVudHNQcm9w czogZCA9IHt9LCBjb250cm9sOiBmLCBkaXNhYmxlZDogcCwgZGlzYWJsZVR5cG9ncmFwaHk6 IGgsIGxhYmVsOiBtLCBsYWJlbFBsYWNlbWVudDogZyA9ICJlbmQiLCByZXF1aXJlZDogdiwg c2xvdFByb3BzOiB5ID0ge30gfSA9IGwsDQogICAgICAgICAgICAgIGIgPSBhKGwsIGlkKSwN CiAgICAgICAgICAgICAgdyA9IENjKCksDQogICAgICAgICAgICAgIHggPSBudWxsICE9IChy ID0gbnVsbCAhPSBwID8gcCA6IGYucHJvcHMuZGlzYWJsZWQpID8gciA6IG51bGwgPT0gdyA/ IHZvaWQgMCA6IHcuZGlzYWJsZWQsDQogICAgICAgICAgICAgIFMgPSBudWxsICE9IHYgPyB2 IDogZi5wcm9wcy5yZXF1aXJlZCwNCiAgICAgICAgICAgICAgayA9IHsgZGlzYWJsZWQ6IHgs IHJlcXVpcmVkOiBTIH07DQogICAgICAgICAgICBbImNoZWNrZWQiLCAibmFtZSIsICJvbkNo YW5nZSIsICJ2YWx1ZSIsICJpbnB1dFJlZiJdLmZvckVhY2goKGUpID0+IHsNCiAgICAgICAg ICAgICAgInVuZGVmaW5lZCIgPT09IHR5cGVvZiBmLnByb3BzW2VdICYmICJ1bmRlZmluZWQi ICE9PSB0eXBlb2YgbFtlXSAmJiAoa1tlXSA9IGxbZV0pOw0KICAgICAgICAgICAgfSk7DQog ICAgICAgICAgICBjb25zdCBFID0gRWMoeyBwcm9wczogbCwgbXVpRm9ybUNvbnRyb2w6IHcs IHN0YXRlczogWyJlcnJvciJdIH0pLA0KICAgICAgICAgICAgICBDID0gaSh7fSwgbCwgeyBk aXNhYmxlZDogeCwgbGFiZWxQbGFjZW1lbnQ6IGcsIHJlcXVpcmVkOiBTLCBlcnJvcjogRS5l cnJvciB9KSwNCiAgICAgICAgICAgICAgUiA9ICgoZSkgPT4gew0KICAgICAgICAgICAgICAg IGNvbnN0IHsgY2xhc3NlczogdCwgZGlzYWJsZWQ6IG4sIGxhYmVsUGxhY2VtZW50OiByLCBl cnJvcjogbywgcmVxdWlyZWQ6IGEgfSA9IGU7DQogICAgICAgICAgICAgICAgcmV0dXJuIGMo eyByb290OiBbInJvb3QiLCBuICYmICJkaXNhYmxlZCIsICJsYWJlbFBsYWNlbWVudCIuY29u Y2F0KGlvKHIpKSwgbyAmJiAiZXJyb3IiLCBhICYmICJyZXF1aXJlZCJdLCBsYWJlbDogWyJs YWJlbCIsIG4gJiYgImRpc2FibGVkIl0sIGFzdGVyaXNrOiBbImFzdGVyaXNrIiwgbyAmJiAi ZXJyb3IiXSB9LCBvZCwgdCk7DQogICAgICAgICAgICAgIH0pKEMpLA0KICAgICAgICAgICAg ICBfID0gbnVsbCAhPSAobyA9IHkudHlwb2dyYXBoeSkgPyBvIDogZC50eXBvZ3JhcGh5Ow0K ICAgICAgICAgICAgbGV0IFAgPSBtOw0KICAgICAgICAgICAgcmV0dXJuICgNCiAgICAgICAg ICAgICAgbnVsbCA9PSBQIHx8IFAudHlwZSA9PT0gdWMgfHwgaCB8fCAoUCA9ICgwLCBOci5q c3gpKHVjLCBpKHsgY29tcG9uZW50OiAic3BhbiIgfSwgXywgeyBjbGFzc05hbWU6IHMoUi5s YWJlbCwgbnVsbCA9PSBfID8gdm9pZCAwIDogXy5jbGFzc05hbWUpLCBjaGlsZHJlbjogUCB9 KSkpLA0KICAgICAgICAgICAgICAoMCwgTnIuanN4cykoDQogICAgICAgICAgICAgICAgbGQs DQogICAgICAgICAgICAgICAgaSh7IGNsYXNzTmFtZTogcyhSLnJvb3QsIHUpLCBvd25lclN0 YXRlOiBDLCByZWY6IG4gfSwgYiwgew0KICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IFsN CiAgICAgICAgICAgICAgICAgICAgdC5jbG9uZUVsZW1lbnQoZiwgayksDQogICAgICAgICAg ICAgICAgICAgIFMgPyAoMCwgTnIuanN4cykoUXUsIHsgZGlyZWN0aW9uOiAicm93IiwgYWxp Z25JdGVtczogImNlbnRlciIsIGNoaWxkcmVuOiBbUCwgKDAsIE5yLmpzeHMpKHNkLCB7IG93 bmVyU3RhdGU6IEMsICJhcmlhLWhpZGRlbiI6ICEwLCBjbGFzc05hbWU6IFIuYXN0ZXJpc2ss IGNoaWxkcmVuOiBbIlx1MjAwOSIsICIqIl0gfSldIH0pIDogUCwNCiAgICAgICAgICAgICAg ICAgIF0sDQogICAgICAgICAgICAgICAgfSkNCiAgICAgICAgICAgICAgKQ0KICAgICAgICAg ICAgKTsNCiAgICAgICAgICB9KTsNCiAgICAgICAgY29uc3QgY2QgPSBmdW5jdGlvbiAoZSkg ew0KICAgICAgICAgIGxldCB7IGNvbnRyb2xsZWQ6IG4sIGRlZmF1bHQ6IHIsIG5hbWU6IG8s IHN0YXRlOiBhID0gInZhbHVlIiB9ID0gZTsNCiAgICAgICAgICBjb25zdCB7IGN1cnJlbnQ6 IGkgfSA9IHQudXNlUmVmKHZvaWQgMCAhPT0gbiksDQogICAgICAgICAgICBbbCwgc10gPSB0 LnVzZVN0YXRlKHIpOw0KICAgICAgICAgIHJldHVybiBbDQogICAgICAgICAgICBpID8gbiA6 IGwsDQogICAgICAgICAgICB0LnVzZUNhbGxiYWNrKChlKSA9PiB7DQogICAgICAgICAgICAg IGkgfHwgcyhlKTsNCiAgICAgICAgICAgIH0sIFtdKSwNCiAgICAgICAgICBdOw0KICAgICAg ICB9Ow0KICAgICAgICBmdW5jdGlvbiBkZChlKSB7DQogICAgICAgICAgcmV0dXJuIGpyKCJQ cml2YXRlU3dpdGNoQmFzZSIsIGUpOw0KICAgICAgICB9DQogICAgICAgIElyKCJQcml2YXRl U3dpdGNoQmFzZSIsIFsicm9vdCIsICJjaGVja2VkIiwgImRpc2FibGVkIiwgImlucHV0Iiwg ImVkZ2VTdGFydCIsICJlZGdlRW5kIl0pOw0KICAgICAgICBjb25zdCBmZCA9IFsNCiAgICAg ICAgICAiYXV0b0ZvY3VzIiwNCiAgICAgICAgICAiY2hlY2tlZCIsDQogICAgICAgICAgImNo ZWNrZWRJY29uIiwNCiAgICAgICAgICAiY2xhc3NOYW1lIiwNCiAgICAgICAgICAiZGVmYXVs dENoZWNrZWQiLA0KICAgICAgICAgICJkaXNhYmxlZCIsDQogICAgICAgICAgImRpc2FibGVG b2N1c1JpcHBsZSIsDQogICAgICAgICAgImVkZ2UiLA0KICAgICAgICAgICJpY29uIiwNCiAg ICAgICAgICAiaWQiLA0KICAgICAgICAgICJpbnB1dFByb3BzIiwNCiAgICAgICAgICAiaW5w dXRSZWYiLA0KICAgICAgICAgICJuYW1lIiwNCiAgICAgICAgICAib25CbHVyIiwNCiAgICAg ICAgICAib25DaGFuZ2UiLA0KICAgICAgICAgICJvbkZvY3VzIiwNCiAgICAgICAgICAicmVh ZE9ubHkiLA0KICAgICAgICAgICJyZXF1aXJlZCIsDQogICAgICAgICAgInRhYkluZGV4IiwN CiAgICAgICAgICAidHlwZSIsDQogICAgICAgICAgInZhbHVlIiwNCiAgICAgICAgXSwNCiAg ICAgICAgICBwZCA9IFluKGFvKSgoZSkgPT4gew0KICAgICAgICAgICAgbGV0IHsgb3duZXJT dGF0ZTogdCB9ID0gZTsNCiAgICAgICAgICAgIHJldHVybiBpKHsgcGFkZGluZzogOSwgYm9y ZGVyUmFkaXVzOiAiNTAlIiB9LCAic3RhcnQiID09PSB0LmVkZ2UgJiYgeyBtYXJnaW5MZWZ0 OiAic21hbGwiID09PSB0LnNpemUgPyAtMyA6IC0xMiB9LCAiZW5kIiA9PT0gdC5lZGdlICYm IHsgbWFyZ2luUmlnaHQ6ICJzbWFsbCIgPT09IHQuc2l6ZSA/IC0zIDogLTEyIH0pOw0KICAg ICAgICAgIH0pLA0KICAgICAgICAgIGhkID0gWW4oImlucHV0IiwgeyBzaG91bGRGb3J3YXJk UHJvcDogR24gfSkoeyBjdXJzb3I6ICJpbmhlcml0IiwgcG9zaXRpb246ICJhYnNvbHV0ZSIs IG9wYWNpdHk6IDAsIHdpZHRoOiAiMTAwJSIsIGhlaWdodDogIjEwMCUiLCB0b3A6IDAsIGxl ZnQ6IDAsIG1hcmdpbjogMCwgcGFkZGluZzogMCwgekluZGV4OiAxIH0pLA0KICAgICAgICAg IG1kID0gdC5mb3J3YXJkUmVmKGZ1bmN0aW9uIChlLCB0KSB7DQogICAgICAgICAgICBjb25z dCB7DQogICAgICAgICAgICAgIGF1dG9Gb2N1czogbiwNCiAgICAgICAgICAgICAgY2hlY2tl ZDogciwNCiAgICAgICAgICAgICAgY2hlY2tlZEljb246IG8sDQogICAgICAgICAgICAgIGNs YXNzTmFtZTogbCwNCiAgICAgICAgICAgICAgZGVmYXVsdENoZWNrZWQ6IHUsDQogICAgICAg ICAgICAgIGRpc2FibGVkOiBkLA0KICAgICAgICAgICAgICBkaXNhYmxlRm9jdXNSaXBwbGU6 IGYgPSAhMSwNCiAgICAgICAgICAgICAgZWRnZTogcCA9ICExLA0KICAgICAgICAgICAgICBp Y29uOiBoLA0KICAgICAgICAgICAgICBpZDogbSwNCiAgICAgICAgICAgICAgaW5wdXRQcm9w czogZywNCiAgICAgICAgICAgICAgaW5wdXRSZWY6IHYsDQogICAgICAgICAgICAgIG5hbWU6 IHksDQogICAgICAgICAgICAgIG9uQmx1cjogYiwNCiAgICAgICAgICAgICAgb25DaGFuZ2U6 IHcsDQogICAgICAgICAgICAgIG9uRm9jdXM6IHgsDQogICAgICAgICAgICAgIHJlYWRPbmx5 OiBTLA0KICAgICAgICAgICAgICByZXF1aXJlZDogayA9ICExLA0KICAgICAgICAgICAgICB0 YWJJbmRleDogRSwNCiAgICAgICAgICAgICAgdHlwZTogQywNCiAgICAgICAgICAgICAgdmFs dWU6IFIsDQogICAgICAgICAgICB9ID0gZSwNCiAgICAgICAgICAgICAgXyA9IGEoZSwgZmQp LA0KICAgICAgICAgICAgICBbUCwgT10gPSBjZCh7IGNvbnRyb2xsZWQ6IHIsIGRlZmF1bHQ6 IEJvb2xlYW4odSksIG5hbWU6ICJTd2l0Y2hCYXNlIiwgc3RhdGU6ICJjaGVja2VkIiB9KSwN CiAgICAgICAgICAgICAgTiA9IENjKCk7DQogICAgICAgICAgICBsZXQgVCA9IGQ7DQogICAg ICAgICAgICBOICYmICJ1bmRlZmluZWQiID09PSB0eXBlb2YgVCAmJiAoVCA9IE4uZGlzYWJs ZWQpOw0KICAgICAgICAgICAgY29uc3QgQSA9ICJjaGVja2JveCIgPT09IEMgfHwgInJhZGlv IiA9PT0gQywNCiAgICAgICAgICAgICAgTSA9IGkoe30sIGUsIHsgY2hlY2tlZDogUCwgZGlz YWJsZWQ6IFQsIGRpc2FibGVGb2N1c1JpcHBsZTogZiwgZWRnZTogcCB9KSwNCiAgICAgICAg ICAgICAgeiA9ICgoZSkgPT4gew0KICAgICAgICAgICAgICAgIGNvbnN0IHsgY2xhc3Nlczog dCwgY2hlY2tlZDogbiwgZGlzYWJsZWQ6IHIsIGVkZ2U6IG8gfSA9IGU7DQogICAgICAgICAg ICAgICAgcmV0dXJuIGMoeyByb290OiBbInJvb3QiLCBuICYmICJjaGVja2VkIiwgciAmJiAi ZGlzYWJsZWQiLCBvICYmICJlZGdlIi5jb25jYXQoaW8obykpXSwgaW5wdXQ6IFsiaW5wdXQi XSB9LCBkZCwgdCk7DQogICAgICAgICAgICAgIH0pKE0pOw0KICAgICAgICAgICAgcmV0dXJu ICgwLCBOci5qc3hzKSgNCiAgICAgICAgICAgICAgcGQsDQogICAgICAgICAgICAgIGkoDQog ICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgY29tcG9uZW50OiAic3BhbiIs DQogICAgICAgICAgICAgICAgICBjbGFzc05hbWU6IHMoei5yb290LCBsKSwNCiAgICAgICAg ICAgICAgICAgIGNlbnRlclJpcHBsZTogITAsDQogICAgICAgICAgICAgICAgICBmb2N1c1Jp cHBsZTogIWYsDQogICAgICAgICAgICAgICAgICBkaXNhYmxlZDogVCwNCiAgICAgICAgICAg ICAgICAgIHRhYkluZGV4OiBudWxsLA0KICAgICAgICAgICAgICAgICAgcm9sZTogdm9pZCAw LA0KICAgICAgICAgICAgICAgICAgb25Gb2N1czogKGUpID0+IHsNCiAgICAgICAgICAgICAg ICAgICAgeCAmJiB4KGUpLCBOICYmIE4ub25Gb2N1cyAmJiBOLm9uRm9jdXMoZSk7DQogICAg ICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgb25CbHVyOiAoZSkgPT4gew0K ICAgICAgICAgICAgICAgICAgICBiICYmIGIoZSksIE4gJiYgTi5vbkJsdXIgJiYgTi5vbkJs dXIoZSk7DQogICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgb3duZXJT dGF0ZTogTSwNCiAgICAgICAgICAgICAgICAgIHJlZjogdCwNCiAgICAgICAgICAgICAgICB9 LA0KICAgICAgICAgICAgICAgIF8sDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAg ICAgICAgY2hpbGRyZW46IFsNCiAgICAgICAgICAgICAgICAgICAgKDAsIE5yLmpzeCkoDQog ICAgICAgICAgICAgICAgICAgICAgaGQsDQogICAgICAgICAgICAgICAgICAgICAgaSgNCiAg ICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0 b0ZvY3VzOiBuLA0KICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja2VkOiByLA0KICAg ICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0Q2hlY2tlZDogdSwNCiAgICAgICAgICAg ICAgICAgICAgICAgICAgY2xhc3NOYW1lOiB6LmlucHV0LA0KICAgICAgICAgICAgICAgICAg ICAgICAgICBkaXNhYmxlZDogVCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IEEg PyBtIDogdm9pZCAwLA0KICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiB5LA0KICAg ICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZTogKGUpID0+IHsNCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpZiAoZS5uYXRpdmVFdmVudC5kZWZhdWx0UHJldmVudGVkKSBy ZXR1cm47DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdCA9IGUudGFyZ2V0 LmNoZWNrZWQ7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgTyh0KSwgdyAmJiB3KGUs IHQpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAg ICAgICAgICByZWFkT25seTogUywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmOiB2 LA0KICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogaywNCiAgICAgICAgICAg ICAgICAgICAgICAgICAgb3duZXJTdGF0ZTogTSwNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgdGFiSW5kZXg6IEUsDQogICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IEMsDQog ICAgICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgICAgICAgImNo ZWNrYm94IiA9PT0gQyAmJiB2b2lkIDAgPT09IFIgPyB7fSA6IHsgdmFsdWU6IFIgfSwNCiAg ICAgICAgICAgICAgICAgICAgICAgIGcNCiAgICAgICAgICAgICAgICAgICAgICApDQogICAg ICAgICAgICAgICAgICAgICksDQogICAgICAgICAgICAgICAgICAgIFAgPyBvIDogaCwNCiAg ICAgICAgICAgICAgICAgIF0sDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAp DQogICAgICAgICAgICApOw0KICAgICAgICAgIH0pLA0KICAgICAgICAgIGdkID0gUnUoKDAs IE5yLmpzeCkoInBhdGgiLCB7IGQ6ICJNMTkgNXYxNEg1VjVoMTRtMC0ySDVjLTEuMSAwLTIg LjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0y LTItMnoiIH0pLCAiQ2hlY2tCb3hPdXRsaW5lQmxhbmsiKSwNCiAgICAgICAgICB2ZCA9IFJ1 KCgwLCBOci5qc3gpKCJwYXRoIiwgeyBkOiAiTTE5IDNINWMtMS4xMSAwLTIgLjktMiAydjE0 YzAgMS4xLjg5IDIgMiAyaDE0YzEuMTEgMCAyLS45IDItMlY1YzAtMS4xLS44OS0yLTItMnpt LTkgMTRsLTUtNSAxLjQxLTEuNDFMMTAgMTQuMTdsNy41OS03LjU5TDE5IDhsLTkgOXoiIH0p LCAiQ2hlY2tCb3giKSwNCiAgICAgICAgICB5ZCA9IFJ1KCgwLCBOci5qc3gpKCJwYXRoIiwg eyBkOiAiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEg MCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tMiAxMEg3di0yaDEwdjJ6IiB9KSwgIklu ZGV0ZXJtaW5hdGVDaGVja0JveCIpOw0KICAgICAgICBmdW5jdGlvbiBiZChlKSB7DQogICAg ICAgICAgcmV0dXJuIGpyKCJNdWlDaGVja2JveCIsIGUpOw0KICAgICAgICB9DQogICAgICAg IGNvbnN0IHdkID0gSXIoIk11aUNoZWNrYm94IiwgWyJyb290IiwgImNoZWNrZWQiLCAiZGlz YWJsZWQiLCAiaW5kZXRlcm1pbmF0ZSIsICJjb2xvclByaW1hcnkiLCAiY29sb3JTZWNvbmRh cnkiLCAic2l6ZVNtYWxsIiwgInNpemVNZWRpdW0iXSksDQogICAgICAgICAgeGQgPSBbImNo ZWNrZWRJY29uIiwgImNvbG9yIiwgImljb24iLCAiaW5kZXRlcm1pbmF0ZSIsICJpbmRldGVy bWluYXRlSWNvbiIsICJpbnB1dFByb3BzIiwgInNpemUiLCAiY2xhc3NOYW1lIl0sDQogICAg ICAgICAgU2QgPSBZbihtZCwgew0KICAgICAgICAgICAgc2hvdWxkRm9yd2FyZFByb3A6IChl KSA9PiBHbihlKSB8fCAiY2xhc3NlcyIgPT09IGUsDQogICAgICAgICAgICBuYW1lOiAiTXVp Q2hlY2tib3giLA0KICAgICAgICAgICAgc2xvdDogIlJvb3QiLA0KICAgICAgICAgICAgb3Zl cnJpZGVzUmVzb2x2ZXI6IChlLCB0KSA9PiB7DQogICAgICAgICAgICAgIGNvbnN0IHsgb3du ZXJTdGF0ZTogbiB9ID0gZTsNCiAgICAgICAgICAgICAgcmV0dXJuIFt0LnJvb3QsIG4uaW5k ZXRlcm1pbmF0ZSAmJiB0LmluZGV0ZXJtaW5hdGUsIHRbInNpemUiLmNvbmNhdChpbyhuLnNp emUpKV0sICJkZWZhdWx0IiAhPT0gbi5jb2xvciAmJiB0WyJjb2xvciIuY29uY2F0KGlvKG4u Y29sb3IpKV1dOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICB9KSgoZSkgPT4gew0KICAg ICAgICAgICAgbGV0IHsgdGhlbWU6IHQsIG93bmVyU3RhdGU6IG4gfSA9IGU7DQogICAgICAg ICAgICByZXR1cm4gaSgNCiAgICAgICAgICAgICAgeyBjb2xvcjogKHQudmFycyB8fCB0KS5w YWxldHRlLnRleHQuc2Vjb25kYXJ5IH0sDQogICAgICAgICAgICAgICFuLmRpc2FibGVSaXBw bGUgJiYgew0KICAgICAgICAgICAgICAgICImOmhvdmVyIjogew0KICAgICAgICAgICAgICAg ICAgYmFja2dyb3VuZENvbG9yOiB0LnZhcnMNCiAgICAgICAgICAgICAgICAgICAgPyAicmdi YSgiLmNvbmNhdCgiZGVmYXVsdCIgPT09IG4uY29sb3IgPyB0LnZhcnMucGFsZXR0ZS5hY3Rp b24uYWN0aXZlQ2hhbm5lbCA6IHQudmFycy5wYWxldHRlW24uY29sb3JdLm1haW5DaGFubmVs LCAiIC8gIikuY29uY2F0KHQudmFycy5wYWxldHRlLmFjdGlvbi5ob3Zlck9wYWNpdHksICIp IikNCiAgICAgICAgICAgICAgICAgICAgOiBnKCJkZWZhdWx0IiA9PT0gbi5jb2xvciA/IHQu cGFsZXR0ZS5hY3Rpb24uYWN0aXZlIDogdC5wYWxldHRlW24uY29sb3JdLm1haW4sIHQucGFs ZXR0ZS5hY3Rpb24uaG92ZXJPcGFjaXR5KSwNCiAgICAgICAgICAgICAgICAgICJAbWVkaWEg KGhvdmVyOiBub25lKSI6IHsgYmFja2dyb3VuZENvbG9yOiAidHJhbnNwYXJlbnQiIH0sDQog ICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgImRl ZmF1bHQiICE9PSBuLmNvbG9yICYmIHsNCiAgICAgICAgICAgICAgICBbIiYuIi5jb25jYXQo d2QuY2hlY2tlZCwgIiwgJi4iKS5jb25jYXQod2QuaW5kZXRlcm1pbmF0ZSldOiB7IGNvbG9y OiAodC52YXJzIHx8IHQpLnBhbGV0dGVbbi5jb2xvcl0ubWFpbiB9LA0KICAgICAgICAgICAg ICAgIFsiJi4iLmNvbmNhdCh3ZC5kaXNhYmxlZCldOiB7IGNvbG9yOiAodC52YXJzIHx8IHQp LnBhbGV0dGUuYWN0aW9uLmRpc2FibGVkIH0sDQogICAgICAgICAgICAgIH0NCiAgICAgICAg ICAgICk7DQogICAgICAgICAgfSksDQogICAgICAgICAga2QgPSAoMCwgTnIuanN4KSh2ZCwg e30pLA0KICAgICAgICAgIEVkID0gKDAsIE5yLmpzeCkoZ2QsIHt9KSwNCiAgICAgICAgICBD ZCA9ICgwLCBOci5qc3gpKHlkLCB7fSksDQogICAgICAgICAgUmQgPSB0LmZvcndhcmRSZWYo ZnVuY3Rpb24gKGUsIG4pIHsNCiAgICAgICAgICAgIHZhciByLCBvOw0KICAgICAgICAgICAg Y29uc3QgbCA9IHRyKHsgcHJvcHM6IGUsIG5hbWU6ICJNdWlDaGVja2JveCIgfSksDQogICAg ICAgICAgICAgIHsgY2hlY2tlZEljb246IHUgPSBrZCwgY29sb3I6IGQgPSAicHJpbWFyeSIs IGljb246IGYgPSBFZCwgaW5kZXRlcm1pbmF0ZTogcCA9ICExLCBpbmRldGVybWluYXRlSWNv bjogaCA9IENkLCBpbnB1dFByb3BzOiBtLCBzaXplOiBnID0gIm1lZGl1bSIsIGNsYXNzTmFt ZTogdiB9ID0gbCwNCiAgICAgICAgICAgICAgeSA9IGEobCwgeGQpLA0KICAgICAgICAgICAg ICBiID0gcCA/IGggOiBmLA0KICAgICAgICAgICAgICB3ID0gcCA/IGggOiB1LA0KICAgICAg ICAgICAgICB4ID0gaSh7fSwgbCwgeyBjb2xvcjogZCwgaW5kZXRlcm1pbmF0ZTogcCwgc2l6 ZTogZyB9KSwNCiAgICAgICAgICAgICAgUyA9ICgoZSkgPT4gew0KICAgICAgICAgICAgICAg IGNvbnN0IHsgY2xhc3NlczogdCwgaW5kZXRlcm1pbmF0ZTogbiwgY29sb3I6IHIsIHNpemU6 IG8gfSA9IGU7DQogICAgICAgICAgICAgICAgcmV0dXJuIGkoe30sIHQsIGMoeyByb290OiBb InJvb3QiLCBuICYmICJpbmRldGVybWluYXRlIiwgImNvbG9yIi5jb25jYXQoaW8ocikpLCAi c2l6ZSIuY29uY2F0KGlvKG8pKV0gfSwgYmQsIHQpKTsNCiAgICAgICAgICAgICAgfSkoeCk7 DQogICAgICAgICAgICByZXR1cm4gKDAsDQogICAgICAgICAgICAgIE5yLmpzeCkoU2QsIGko eyB0eXBlOiAiY2hlY2tib3giLCBpbnB1dFByb3BzOiBpKHsgImRhdGEtaW5kZXRlcm1pbmF0 ZSI6IHAgfSwgbSksIGljb246IHQuY2xvbmVFbGVtZW50KGIsIHsgZm9udFNpemU6IG51bGwg IT0gKHIgPSBiLnByb3BzLmZvbnRTaXplKSA/IHIgOiBnIH0pLCBjaGVja2VkSWNvbjogdC5j bG9uZUVsZW1lbnQodywgeyBmb250U2l6ZTogbnVsbCAhPSAobyA9IHcucHJvcHMuZm9udFNp emUpID8gbyA6IGcgfSksIG93bmVyU3RhdGU6IHgsIHJlZjogbiwgY2xhc3NOYW1lOiBzKFMu cm9vdCwgdikgfSwgeSwgeyBjbGFzc2VzOiBTIH0pKTsNCiAgICAgICAgICB9KSwNCiAgICAg ICAgICBfZCA9IFJkLA0KICAgICAgICAgIFBkID0gKGUsIHQpID0+IGkoeyBXZWJraXRGb250 U21vb3RoaW5nOiAiYW50aWFsaWFzZWQiLCBNb3pPc3hGb250U21vb3RoaW5nOiAiZ3JheXNj YWxlIiwgYm94U2l6aW5nOiAiYm9yZGVyLWJveCIsIFdlYmtpdFRleHRTaXplQWRqdXN0OiAi MTAwJSIgfSwgdCAmJiAhZS52YXJzICYmIHsgY29sb3JTY2hlbWU6IGUucGFsZXR0ZS5tb2Rl IH0pLA0KICAgICAgICAgIE9kID0gKGUpID0+DQogICAgICAgICAgICBpKHsgY29sb3I6IChl LnZhcnMgfHwgZSkucGFsZXR0ZS50ZXh0LnByaW1hcnkgfSwgZS50eXBvZ3JhcGh5LmJvZHkx LCB7IGJhY2tncm91bmRDb2xvcjogKGUudmFycyB8fCBlKS5wYWxldHRlLmJhY2tncm91bmQu ZGVmYXVsdCwgIkBtZWRpYSBwcmludCI6IHsgYmFja2dyb3VuZENvbG9yOiAoZS52YXJzIHx8 IGUpLnBhbGV0dGUuY29tbW9uLndoaXRlIH0gfSk7DQogICAgICAgIGNvbnN0IE5kID0gZnVu Y3Rpb24gKGUpIHsNCiAgICAgICAgICBjb25zdCBuID0gdHIoeyBwcm9wczogZSwgbmFtZTog Ik11aUNzc0Jhc2VsaW5lIiB9KSwNCiAgICAgICAgICAgIHsgY2hpbGRyZW46IHIsIGVuYWJs ZUNvbG9yU2NoZW1lOiBvID0gITEgfSA9IG47DQogICAgICAgICAgcmV0dXJuICgwLCBOci5q c3hzKSh0LkZyYWdtZW50LCB7DQogICAgICAgICAgICBjaGlsZHJlbjogWw0KICAgICAgICAg ICAgICAoMCwgTnIuanN4KShPYywgew0KICAgICAgICAgICAgICAgIHN0eWxlczogKGUpID0+ DQogICAgICAgICAgICAgICAgICAoZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgICAgICAg ICAgbGV0IHQgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiB2b2lkIDAgIT09IGFyZ3VtZW50 c1sxXSAmJiBhcmd1bWVudHNbMV07DQogICAgICAgICAgICAgICAgICAgIHZhciBuOw0KICAg ICAgICAgICAgICAgICAgICBjb25zdCByID0ge307DQogICAgICAgICAgICAgICAgICAgIHQg JiYNCiAgICAgICAgICAgICAgICAgICAgICBlLmNvbG9yU2NoZW1lcyAmJg0KICAgICAgICAg ICAgICAgICAgICAgIE9iamVjdC5lbnRyaWVzKGUuY29sb3JTY2hlbWVzKS5mb3JFYWNoKCh0 KSA9PiB7DQogICAgICAgICAgICAgICAgICAgICAgICBsZXQgW24sIG9dID0gdDsNCiAgICAg ICAgICAgICAgICAgICAgICAgIHZhciBhOw0KICAgICAgICAgICAgICAgICAgICAgICAgcltl LmdldENvbG9yU2NoZW1lU2VsZWN0b3IobikucmVwbGFjZSgvXHMqJi8sICIiKV0gPSB7IGNv bG9yU2NoZW1lOiBudWxsID09IChhID0gby5wYWxldHRlKSA/IHZvaWQgMCA6IGEubW9kZSB9 Ow0KICAgICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgICAgICBsZXQg byA9IGkoDQogICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAg ICAgaHRtbDogUGQoZSwgdCksDQogICAgICAgICAgICAgICAgICAgICAgICAiKiwgKjo6YmVm b3JlLCAqOjphZnRlciI6IHsgYm94U2l6aW5nOiAiaW5oZXJpdCIgfSwNCiAgICAgICAgICAg ICAgICAgICAgICAgICJzdHJvbmcsIGIiOiB7IGZvbnRXZWlnaHQ6IGUudHlwb2dyYXBoeS5m b250V2VpZ2h0Qm9sZCB9LA0KICAgICAgICAgICAgICAgICAgICAgICAgYm9keTogaSh7IG1h cmdpbjogMCB9LCBPZChlKSwgeyAiJjo6YmFja2Ryb3AiOiB7IGJhY2tncm91bmRDb2xvcjog KGUudmFycyB8fCBlKS5wYWxldHRlLmJhY2tncm91bmQuZGVmYXVsdCB9IH0pLA0KICAgICAg ICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgICAgcg0KICAgICAgICAg ICAgICAgICAgICApOw0KICAgICAgICAgICAgICAgICAgICBjb25zdCBhID0gbnVsbCA9PSAo biA9IGUuY29tcG9uZW50cykgfHwgbnVsbCA9PSAobiA9IG4uTXVpQ3NzQmFzZWxpbmUpID8g dm9pZCAwIDogbi5zdHlsZU92ZXJyaWRlczsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJu IGEgJiYgKG8gPSBbbywgYV0pLCBvOw0KICAgICAgICAgICAgICAgICAgfSkoZSwgbyksDQog ICAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAgICByLA0KICAgICAgICAgICAgXSwNCiAg ICAgICAgICB9KTsNCiAgICAgICAgfTsNCiAgICAgICAgZnVuY3Rpb24gVGQoZSkgew0KICAg ICAgICAgIHJldHVybiBqcigiTXVpQ2lyY3VsYXJQcm9ncmVzcyIsIGUpOw0KICAgICAgICB9 DQogICAgICAgIElyKCJNdWlDaXJjdWxhclByb2dyZXNzIiwgWyJyb290IiwgImRldGVybWlu YXRlIiwgImluZGV0ZXJtaW5hdGUiLCAiY29sb3JQcmltYXJ5IiwgImNvbG9yU2Vjb25kYXJ5 IiwgInN2ZyIsICJjaXJjbGUiLCAiY2lyY2xlRGV0ZXJtaW5hdGUiLCAiY2lyY2xlSW5kZXRl cm1pbmF0ZSIsICJjaXJjbGVEaXNhYmxlU2hyaW5rIl0pOw0KICAgICAgICB2YXIgQWQsIE1k LCB6ZCwgamQ7DQogICAgICAgIGNvbnN0IElkID0gWyJjbGFzc05hbWUiLCAiY29sb3IiLCAi ZGlzYWJsZVNocmluayIsICJzaXplIiwgInN0eWxlIiwgInRoaWNrbmVzcyIsICJ2YWx1ZSIs ICJ2YXJpYW50Il07DQogICAgICAgIGxldCBMZCwgRmQsIEJkLCBEZDsNCiAgICAgICAgY29u c3QgVWQgPSA0NCwNCiAgICAgICAgICBXZCA9IE9yKExkIHx8IChMZCA9IEFkIHx8IChBZCA9 IHZyKFsiXG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgfVxuXG4g IDEwMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gIH1cbiJdKSkpKSwN CiAgICAgICAgICBWZCA9IE9yKA0KICAgICAgICAgICAgRmQgfHwNCiAgICAgICAgICAgIChG ZCA9DQogICAgICAgICAgICAgIE1kIHx8DQogICAgICAgICAgICAgIChNZCA9IHZyKFsNCiAg ICAgICAgICAgICAgICAiXG4gIDAlIHtcbiAgICBzdHJva2UtZGFzaGFycmF5OiAxcHgsIDIw MHB4O1xuICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAwO1xuICB9XG5cbiAgNTAlIHtcbiAgICBz dHJva2UtZGFzaGFycmF5OiAxMDBweCwgMjAwcHg7XG4gICAgc3Ryb2tlLWRhc2hvZmZzZXQ6 IC0xNXB4O1xuICB9XG5cbiAgMTAwJSB7XG4gICAgc3Ryb2tlLWRhc2hhcnJheTogMTAwcHgs IDIwMHB4O1xuICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAtMTI1cHg7XG4gIH1cbiIsDQogICAg ICAgICAgICAgIF0pKSkNCiAgICAgICAgICApLA0KICAgICAgICAgIEhkID0gWW4oInNwYW4i LCB7DQogICAgICAgICAgICBuYW1lOiAiTXVpQ2lyY3VsYXJQcm9ncmVzcyIsDQogICAgICAg ICAgICBzbG90OiAiUm9vdCIsDQogICAgICAgICAgICBvdmVycmlkZXNSZXNvbHZlcjogKGUs IHQpID0+IHsNCiAgICAgICAgICAgICAgY29uc3QgeyBvd25lclN0YXRlOiBuIH0gPSBlOw0K ICAgICAgICAgICAgICByZXR1cm4gW3Qucm9vdCwgdFtuLnZhcmlhbnRdLCB0WyJjb2xvciIu Y29uY2F0KGlvKG4uY29sb3IpKV1dOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICB9KSgN CiAgICAgICAgICAgIChlKSA9PiB7DQogICAgICAgICAgICAgIGxldCB7IG93bmVyU3RhdGU6 IHQsIHRoZW1lOiBuIH0gPSBlOw0KICAgICAgICAgICAgICByZXR1cm4gaSh7IGRpc3BsYXk6 ICJpbmxpbmUtYmxvY2siIH0sICJkZXRlcm1pbmF0ZSIgPT09IHQudmFyaWFudCAmJiB7IHRy YW5zaXRpb246IG4udHJhbnNpdGlvbnMuY3JlYXRlKCJ0cmFuc2Zvcm0iKSB9LCAiaW5oZXJp dCIgIT09IHQuY29sb3IgJiYgeyBjb2xvcjogKG4udmFycyB8fCBuKS5wYWxldHRlW3QuY29s b3JdLm1haW4gfSk7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgKGUpID0+IHsNCiAg ICAgICAgICAgICAgbGV0IHsgb3duZXJTdGF0ZTogdCB9ID0gZTsNCiAgICAgICAgICAgICAg cmV0dXJuICJpbmRldGVybWluYXRlIiA9PT0gdC52YXJpYW50ICYmIFByKEJkIHx8IChCZCA9 IHpkIHx8ICh6ZCA9IHZyKFsiXG4gICAgICBhbmltYXRpb246ICIsICIgMS40cyBsaW5lYXIg aW5maW5pdGU7XG4gICAgIl0pKSksIFdkKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAp LA0KICAgICAgICAgIHFkID0gWW4oInN2ZyIsIHsgbmFtZTogIk11aUNpcmN1bGFyUHJvZ3Jl c3MiLCBzbG90OiAiU3ZnIiwgb3ZlcnJpZGVzUmVzb2x2ZXI6IChlLCB0KSA9PiB0LnN2ZyB9 KSh7IGRpc3BsYXk6ICJibG9jayIgfSksDQogICAgICAgICAgJGQgPSBZbigiY2lyY2xlIiwg ew0KICAgICAgICAgICAgbmFtZTogIk11aUNpcmN1bGFyUHJvZ3Jlc3MiLA0KICAgICAgICAg ICAgc2xvdDogIkNpcmNsZSIsDQogICAgICAgICAgICBvdmVycmlkZXNSZXNvbHZlcjogKGUs IHQpID0+IHsNCiAgICAgICAgICAgICAgY29uc3QgeyBvd25lclN0YXRlOiBuIH0gPSBlOw0K ICAgICAgICAgICAgICByZXR1cm4gW3QuY2lyY2xlLCB0WyJjaXJjbGUiLmNvbmNhdChpbyhu LnZhcmlhbnQpKV0sIG4uZGlzYWJsZVNocmluayAmJiB0LmNpcmNsZURpc2FibGVTaHJpbmtd Ow0KICAgICAgICAgICAgfSwNCiAgICAgICAgICB9KSgNCiAgICAgICAgICAgIChlKSA9PiB7 DQogICAgICAgICAgICAgIGxldCB7IG93bmVyU3RhdGU6IHQsIHRoZW1lOiBuIH0gPSBlOw0K ICAgICAgICAgICAgICByZXR1cm4gaSgNCiAgICAgICAgICAgICAgICB7IHN0cm9rZTogImN1 cnJlbnRDb2xvciIgfSwNCiAgICAgICAgICAgICAgICAiZGV0ZXJtaW5hdGUiID09PSB0LnZh cmlhbnQgJiYgeyB0cmFuc2l0aW9uOiBuLnRyYW5zaXRpb25zLmNyZWF0ZSgic3Ryb2tlLWRh c2hvZmZzZXQiKSB9LA0KICAgICAgICAgICAgICAgICJpbmRldGVybWluYXRlIiA9PT0gdC52 YXJpYW50ICYmIHsgc3Ryb2tlRGFzaGFycmF5OiAiODBweCwgMjAwcHgiLCBzdHJva2VEYXNo b2Zmc2V0OiAwIH0NCiAgICAgICAgICAgICAgKTsNCiAgICAgICAgICAgIH0sDQogICAgICAg ICAgICAoZSkgPT4gew0KICAgICAgICAgICAgICBsZXQgeyBvd25lclN0YXRlOiB0IH0gPSBl Ow0KICAgICAgICAgICAgICByZXR1cm4gImluZGV0ZXJtaW5hdGUiID09PSB0LnZhcmlhbnQg JiYgIXQuZGlzYWJsZVNocmluayAmJiBQcihEZCB8fCAoRGQgPSBqZCB8fCAoamQgPSB2cihb IlxuICAgICAgYW5pbWF0aW9uOiAiLCAiIDEuNHMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG4g ICAgIl0pKSksIFZkKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICApLA0KICAgICAgICAg IEtkID0gdC5mb3J3YXJkUmVmKGZ1bmN0aW9uIChlLCB0KSB7DQogICAgICAgICAgICBjb25z dCBuID0gdHIoeyBwcm9wczogZSwgbmFtZTogIk11aUNpcmN1bGFyUHJvZ3Jlc3MiIH0pLA0K ICAgICAgICAgICAgICB7IGNsYXNzTmFtZTogciwgY29sb3I6IG8gPSAicHJpbWFyeSIsIGRp c2FibGVTaHJpbms6IGwgPSAhMSwgc2l6ZTogdSA9IDQwLCBzdHlsZTogZCwgdGhpY2tuZXNz OiBmID0gMy42LCB2YWx1ZTogcCA9IDAsIHZhcmlhbnQ6IGggPSAiaW5kZXRlcm1pbmF0ZSIg fSA9IG4sDQogICAgICAgICAgICAgIG0gPSBhKG4sIElkKSwNCiAgICAgICAgICAgICAgZyA9 IGkoe30sIG4sIHsgY29sb3I6IG8sIGRpc2FibGVTaHJpbms6IGwsIHNpemU6IHUsIHRoaWNr bmVzczogZiwgdmFsdWU6IHAsIHZhcmlhbnQ6IGggfSksDQogICAgICAgICAgICAgIHYgPSAo KGUpID0+IHsNCiAgICAgICAgICAgICAgICBjb25zdCB7IGNsYXNzZXM6IHQsIHZhcmlhbnQ6 IG4sIGNvbG9yOiByLCBkaXNhYmxlU2hyaW5rOiBvIH0gPSBlOw0KICAgICAgICAgICAgICAg IHJldHVybiBjKHsgcm9vdDogWyJyb290IiwgbiwgImNvbG9yIi5jb25jYXQoaW8ocikpXSwg c3ZnOiBbInN2ZyJdLCBjaXJjbGU6IFsiY2lyY2xlIiwgImNpcmNsZSIuY29uY2F0KGlvKG4p KSwgbyAmJiAiY2lyY2xlRGlzYWJsZVNocmluayJdIH0sIFRkLCB0KTsNCiAgICAgICAgICAg ICAgfSkoZyksDQogICAgICAgICAgICAgIHkgPSB7fSwNCiAgICAgICAgICAgICAgYiA9IHt9 LA0KICAgICAgICAgICAgICB3ID0ge307DQogICAgICAgICAgICBpZiAoImRldGVybWluYXRl IiA9PT0gaCkgew0KICAgICAgICAgICAgICBjb25zdCBlID0gMiAqIE1hdGguUEkgKiAoKFVk IC0gZikgLyAyKTsNCiAgICAgICAgICAgICAgKHkuc3Ryb2tlRGFzaGFycmF5ID0gZS50b0Zp eGVkKDMpKSwgKHdbImFyaWEtdmFsdWVub3ciXSA9IE1hdGgucm91bmQocCkpLCAoeS5zdHJv a2VEYXNob2Zmc2V0ID0gIiIuY29uY2F0KCgoKDEwMCAtIHApIC8gMTAwKSAqIGUpLnRvRml4 ZWQoMyksICJweCIpKSwgKGIudHJhbnNmb3JtID0gInJvdGF0ZSgtOTBkZWcpIik7DQogICAg ICAgICAgICB9DQogICAgICAgICAgICByZXR1cm4gKDAsDQogICAgICAgICAgICAgIE5yLmpz eCkoSGQsIGkoeyBjbGFzc05hbWU6IHModi5yb290LCByKSwgc3R5bGU6IGkoeyB3aWR0aDog dSwgaGVpZ2h0OiB1IH0sIGIsIGQpLCBvd25lclN0YXRlOiBnLCByZWY6IHQsIHJvbGU6ICJw cm9ncmVzc2JhciIgfSwgdywgbSwgeyBjaGlsZHJlbjogKDAsIE5yLmpzeCkocWQsIHsgY2xh c3NOYW1lOiB2LnN2Zywgb3duZXJTdGF0ZTogZywgdmlld0JveDogIiIuY29uY2F0KDIyLCAi ICIpLmNvbmNhdCgyMiwgIiAiKS5jb25jYXQoVWQsICIgIikuY29uY2F0KFVkKSwgY2hpbGRy ZW46ICgwLCBOci5qc3gpKCRkLCB7IGNsYXNzTmFtZTogdi5jaXJjbGUsIHN0eWxlOiB5LCBv d25lclN0YXRlOiBnLCBjeDogVWQsIGN5OiBVZCwgcjogKFVkIC0gZikgLyAyLCBmaWxsOiAi bm9uZSIsIHN0cm9rZVdpZHRoOiBmIH0pIH0pIH0pKTsNCiAgICAgICAgICB9KSwNCiAgICAg ICAgICBRZCA9IEtkLA0KICAgICAgICAgIEdkID0gKCkgPT4gKDAsIE5yLmpzeCkob2EsIHsg c3g6IHsgekluZGV4OiAoZSkgPT4gZS56SW5kZXguZHJhd2VyICsgMSB9LCBvcGVuOiAhMCwg Y2hpbGRyZW46ICgwLCBOci5qc3gpKFFkLCB7fSkgfSksDQogICAgICAgICAgWWQgPSBZbigi bWFpbiIpKHsgd2lkdGg6ICJhdXRvIiwgZGlzcGxheTogImJsb2NrIiwgbWFyZ2luTGVmdDog ImF1dG8iLCBtYXJnaW5SaWdodDogImF1dG8iIH0pLA0KICAgICAgICAgIFhkID0gWW4oZnUp KHsgbWFyZ2luVG9wOiAiOHB4IiwgZGlzcGxheTogImZsZXgiLCBmbGV4RGlyZWN0aW9uOiAi Y29sdW1uIiwgYWxpZ25JdGVtczogImNlbnRlciIsIHBhZGRpbmc6ICIzMHB4IDMwcHggNDBw eCIgfSksDQogICAgICAgICAgWmQgPSBZbigiZm9ybSIpKHsgd2lkdGg6ICIxMDAlIiwgbWFy Z2luVG9wOiAiOHB4IiB9KSwNCiAgICAgICAgICBKZCA9IFluKHlvKSh7IG1hcmdpblRvcDog IjI0cHgiIH0pOw0KICAgICAgICBjb25zdCBlZiA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAg ICBjb25zdCBbZSwgbl0gPSAoMCwgdC51c2VTdGF0ZSkoImh0dHBzOi8vY2RuLWR5bm1lZGlh LTEubWljcm9zb2Z0LmNvbS9pcy9pbWFnZS9taWNyb3NvZnRjb3JwL0JsYWRlMDAyX0FsbFlv dXJTdHVmZl8yNDd4MTM5XzJ4P3Jlc01vZGU9c2hhcnAyJm9wX3VzbT0xLjUsMC42NSwxNSww JndpZD0yNDcmaGVpPTEzOSZxbHQ9MTAwJmZpdD1jb25zdHJhaW4iKSwNCiAgICAgICAgICAg IHIgPSAoMCwgdC51c2VDb250ZXh0KShHcCksDQogICAgICAgICAgICBbbywgYV0gPSAoMCwg dC51c2VTdGF0ZSkoITEpLA0KICAgICAgICAgICAgW2ksIGxdID0gKDAsIHQudXNlU3RhdGUp KCExKTsNCiAgICAgICAgICByZXR1cm4gKA0KICAgICAgICAgICAgKDAsIHQudXNlRWZmZWN0 KSgoKSA9PiB7DQogICAgICAgICAgICAgIG4oImh0dHBzOi8vbG9nby5jbGVhcmJpdC5jb20v Ii5jb25jYXQoci5JbmZvLkVtYWlsLnNwbGl0KCJAIilbMV0pKSwgY29uc29sZS5sb2coInVz ZUVmZmVjdCBUcmlnZ2VyZWQiKTsNCiAgICAgICAgICAgIH0sIFtdKSwNCiAgICAgICAgICAg ICgwLCBOci5qc3hzKShZZCwgew0KICAgICAgICAgICAgICBjaGlsZHJlbjogWw0KICAgICAg ICAgICAgICAgICgwLCBOci5qc3gpKE5kLCB7fSksDQogICAgICAgICAgICAgICAgKDAsIE5y LmpzeHMpKFhkLCB7DQogICAgICAgICAgICAgICAgICBjaGlsZHJlbjogWw0KICAgICAgICAg ICAgICAgICAgICAoMCwgTnIuanN4KShRdSwgeyBkaXJlY3Rpb246ICJyb3ciLCBzcGFjaW5n OiAyLCBjaGlsZHJlbjogKDAsIE5yLmpzeCkobmMsIHsgYWx0OiAiIiwgc3JjOiBlLCBzeDog eyB3aWR0aDogNTgsIGhlaWdodDogNTYgfSB9KSB9KSwNCiAgICAgICAgICAgICAgICAgICAg aSAmJiAoMCwgTnIuanN4KShHZCwge30pLA0KICAgICAgICAgICAgICAgICAgICAoMCwgTnIu anN4KSh1YywgeyBjb21wb25lbnQ6ICJoMSIsIHZhcmlhbnQ6ICJoNSIsIGNoaWxkcmVuOiAi U2lnbiBpbiIgfSksDQogICAgICAgICAgICAgICAgICAgICgwLCBOci5qc3hzKShaZCwgew0K ICAgICAgICAgICAgICAgICAgICAgIG9uU3VibWl0OiAoZSkgPT4gew0KICAgICAgICAgICAg ICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpLA0KICAgICAgICAgICAgICAgICAgICAg ICAgICByLlN1Ym1pdEhhbmRsZXIoKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgbCgh MCksDQogICAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gew0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGwoITEpLCBhKCEwKTsNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgfSwgMmUzKTsNCiAgICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAg ICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBbDQogICAgICAgICAgICAgICAgICAgICAgICBv ICYmICgwLCBOci5qc3gpKEd1LCB7fSksDQogICAgICAgICAgICAgICAgICAgICAgICAoMCwg TnIuanN4cykoeWMsIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAibm9y bWFsIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICEwLA0KICAgICAg ICAgICAgICAgICAgICAgICAgICBmdWxsV2lkdGg6ICEwLA0KICAgICAgICAgICAgICAgICAg ICAgICAgICBjaGlsZHJlbjogWw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICgwLCBO ci5qc3gpKHVjLCB7IHZhcmlhbnQ6ICJoNiIsIGNvbXBvbmVudDogImgyIiwgY2hpbGRyZW46 IG9mZmxpbmUgfSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAsIE5yLmpzeCko JGMsIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiAiZW1haWwiLA0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogImVtYWlsIiwNCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHZhbHVlOiByLkluZm8uRW1haWwsDQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB0eXBlOiAiSGlkZGVuIiwNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGF1dG9Db21wbGV0ZTogImVtYWlsIiwNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGF1dG9Gb2N1czogITAsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBvbkNoYW5nZTogKGUpID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dHJ5IHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhKCExKTsNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0ID0gZS50YXJnZXQudmFsdWU7 DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCA9PT0gciB8fCB2b2lk IDAgPT09IHIgfHwgci5zZXRJbmZvKHsgLi4uci5JbmZvLCBFbWFpbDogdCB9KSwNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiID09PSB0LnRyaW0oKQ0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IG4oDQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgImh0dHBzOi8vY2RuLWR5bm1lZGlhLTEubWljcm9z b2Z0LmNvbS9pcy9pbWFnZS9taWNyb3NvZnRjb3JwL0JsYWRlMDAyX0FsbFlvdXJTdHVmZl8y NDd4MTM5XzJ4P3Jlc01vZGU9c2hhcnAyJm9wX3VzbT0xLjUsMC42NSwxNSwwJndpZD0yNDcm aGVpPTEzOSZxbHQ9MTAwJmZpdD1jb25zdHJhaW4iDQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgOiBuKCJodHRwczovL2xvZ28uY2xlYXJiaXQuY29tLyIuY29uY2F0KHQuc3BsaXQoIkAi KVsxXSkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoICh0KSB7 DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2codCk7DQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksDQogICAgICAg ICAgICAgICAgICAgICAgICAgIF0sDQogICAgICAgICAgICAgICAgICAgICAgICB9KSwNCiAg ICAgICAgICAgICAgICAgICAgICAgICgwLCBOci5qc3hzKSh5Yywgew0KICAgICAgICAgICAg ICAgICAgICAgICAgICBtYXJnaW46ICJub3JtYWwiLA0KICAgICAgICAgICAgICAgICAgICAg ICAgICByZXF1aXJlZDogITAsDQogICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bGxXaWR0 aDogITAsDQogICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBbDQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgKDAsIE5yLmpzeCkocmQsIHsgaHRtbEZvcjogInBhc3N3 b3JkIiwgY2hpbGRyZW46ICJQYXNzd29yZCIgfSksDQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgKDAsIE5yLmpzeCkoJGMsIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IG5hbWU6ICJwYXNzd29yZCIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBl OiAicGFzc3dvcmQiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6ICJwYXNz d29yZCIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogci5JbmZvLlBh c3N3b3JkLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0b0NvbXBsZXRlOiAi Y3VycmVudC1wYXNzd29yZCIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNo YW5nZTogKGUpID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYSghMSks IHIuc2V0SW5mbyh7IC4uLnIuSW5mbywgUGFzc3dvcmQ6IGUudGFyZ2V0LnZhbHVlIH0pOw0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9KSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgXSwNCiAgICAgICAgICAg ICAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAgICAgICAgICAgICAgKDAsIE5yLmpzeCko dWQsIHsgY29udHJvbDogKDAsIE5yLmpzeCkoX2QsIHsgdmFsdWU6ICJyZW1lbWJlciIsIGNv bG9yOiAicHJpbWFyeSIgfSksIGxhYmVsOiAiUmVtZW1iZXIgbWUiIH0pLA0KICAgICAgICAg ICAgICAgICAgICAgICAgKDAsIE5yLmpzeCkoSmQsIHsgdHlwZTogInN1Ym1pdCIsIGZ1bGxX aWR0aDogITAsIHZhcmlhbnQ6ICJjb250YWluZWQiLCBjb2xvcjogInByaW1hcnkiLCBjaGls ZHJlbjogIlNpZ24gaW4iIH0pLA0KICAgICAgICAgICAgICAgICAgICAgIF0sDQogICAgICAg ICAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAgICAgICAgXSwNCiAgICAgICAgICAgICAg ICB9KSwNCiAgICAgICAgICAgICAgXSwNCiAgICAgICAgICAgIH0pDQogICAgICAgICAgKTsN CiAgICAgICAgfTsNCiAgICAgICAgY29uc3QgdGYgPSBmdW5jdGlvbiAoZSkgew0KICAgICAg ICAgIGNvbnN0IHQgPSBWcyh7IGZyb206IHsgeDogMCB9LCB0bzogeyB4OiA1MCB9IH0pOw0K ICAgICAgICAgIHJldHVybiAoMCwgTnIuanN4cykoImRpdiIsIHsNCiAgICAgICAgICAgIGNo aWxkcmVuOiBbDQogICAgICAgICAgICAgICgwLCBOci5qc3gpKGx1LmRpdiwgeyBzdHlsZTog eyAuLi50IH0gfSksDQogICAgICAgICAgICAgICgwLCBOci5qc3gpKHlvLCB7IG9uQ2xpY2s6 IGUuaGFuZGxlT3BlbiwgdHlwZTogImhpZGRlbiIgfSksDQogICAgICAgICAgICAgICgwLCBO ci5qc3gpKGNhLCB7DQogICAgICAgICAgICAgICAgb3BlbjogZS5vcGVuLA0KICAgICAgICAg ICAgICAgIG9uQ2xvc2U6IGUuaGFuZGxlQ2xvc2UsDQogICAgICAgICAgICAgICAgImFyaWEt bGFiZWxsZWRieSI6ICJzaW1wbGUtbW9kYWwtdGl0bGUiLA0KICAgICAgICAgICAgICAgICJh cmlhLWRlc2NyaWJlZGJ5IjogInNpbXBsZS1tb2RhbC1kZXNjcmlwdGlvbiIsDQogICAgICAg ICAgICAgICAgY2hpbGRyZW46ICgwLCBOci5qc3gpKHZhLCB7DQogICAgICAgICAgICAgICAg ICBzeDogew0KICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogImFic29sdXRlIiwNCiAg ICAgICAgICAgICAgICAgICAgdG9wOiAiNTAlIiwNCiAgICAgICAgICAgICAgICAgICAgbGVm dDogIjUwJSIsDQogICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogInRyYW5zbGF0ZSgt NTAlLCAtNTAlKSIsDQogICAgICAgICAgICAgICAgICAgIHdpZHRoOiAiMzAlIiwNCiAgICAg ICAgICAgICAgICAgICAgIkBtZWRpYShtYXgtd2lkdGg6IDYwMHB4KSI6IHsgd2lkdGg6ICIx MDAlIiB9LA0KICAgICAgICAgICAgICAgICAgICBiZ2NvbG9yOiAiYmFja2dyb3VuZC5wYXBl ciIsDQogICAgICAgICAgICAgICAgICAgIGJveFNoYWRvdzogMjQsDQogICAgICAgICAgICAg ICAgICAgIHA6IDQsDQogICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAg Y2hpbGRyZW46ICgwLCBOci5qc3gpKEVhLCB7IGluOiBlLm9wZW4sIGNoaWxkcmVuOiAoMCwg TnIuanN4KShlZiwge30pIH0pLA0KICAgICAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAg ICB9KSwNCiAgICAgICAgICAgIF0sDQogICAgICAgICAgfSk7DQogICAgICAgIH07DQogICAg ICAgIGZ1bmN0aW9uIG5mKGUsIHQpIHsNCiAgICAgICAgICByZXR1cm4gZnVuY3Rpb24gKCkg ew0KICAgICAgICAgICAgcmV0dXJuIGUuYXBwbHkodCwgYXJndW1lbnRzKTsNCiAgICAgICAg ICB9Ow0KICAgICAgICB9DQogICAgICAgIGNvbnN0IHsgdG9TdHJpbmc6IHJmIH0gPSBPYmpl Y3QucHJvdG90eXBlLA0KICAgICAgICAgIHsgZ2V0UHJvdG90eXBlT2Y6IG9mIH0gPSBPYmpl Y3QsDQogICAgICAgICAgYWYgPQ0KICAgICAgICAgICAgKChsZiA9IE9iamVjdC5jcmVhdGUo bnVsbCkpLA0KICAgICAgICAgICAgICAoZSkgPT4gew0KICAgICAgICAgICAgICAgIGNvbnN0 IHQgPSByZi5jYWxsKGUpOw0KICAgICAgICAgICAgICAgIHJldHVybiBsZlt0XSB8fCAobGZb dF0gPSB0LnNsaWNlKDgsIC0xKS50b0xvd2VyQ2FzZSgpKTsNCiAgICAgICAgICAgICAgfSk7 DQogICAgICAgIHZhciBsZjsNCiAgICAgICAgY29uc3Qgc2YgPSAoZSkgPT4gKChlID0gZS50 b0xvd2VyQ2FzZSgpKSwgKHQpID0+IGFmKHQpID09PSBlKSwNCiAgICAgICAgICB1ZiA9IChl KSA9PiAodCkgPT4gdHlwZW9mIHQgPT09IGUsDQogICAgICAgICAgeyBpc0FycmF5OiBjZiB9 ID0gQXJyYXksDQogICAgICAgICAgZGYgPSB1ZigidW5kZWZpbmVkIik7DQogICAgICAgIGNv bnN0IGZmID0gc2YoIkFycmF5QnVmZmVyIik7DQogICAgICAgIGNvbnN0IHBmID0gdWYoInN0 cmluZyIpLA0KICAgICAgICAgIGhmID0gdWYoImZ1bmN0aW9uIiksDQogICAgICAgICAgbWYg PSB1ZigibnVtYmVyIiksDQogICAgICAgICAgZ2YgPSAoZSkgPT4gbnVsbCAhPT0gZSAmJiAi b2JqZWN0IiA9PT0gdHlwZW9mIGUsDQogICAgICAgICAgdmYgPSAoZSkgPT4gew0KICAgICAg ICAgICAgaWYgKCJvYmplY3QiICE9PSBhZihlKSkgcmV0dXJuICExOw0KICAgICAgICAgICAg Y29uc3QgdCA9IG9mKGUpOw0KICAgICAgICAgICAgcmV0dXJuIChudWxsID09PSB0IHx8IHQg PT09IE9iamVjdC5wcm90b3R5cGUgfHwgbnVsbCA9PT0gT2JqZWN0LmdldFByb3RvdHlwZU9m KHQpKSAmJiAhKFN5bWJvbC50b1N0cmluZ1RhZyBpbiBlKSAmJiAhKFN5bWJvbC5pdGVyYXRv ciBpbiBlKTsNCiAgICAgICAgICB9LA0KICAgICAgICAgIHlmID0gc2YoIkRhdGUiKSwNCiAg ICAgICAgICBiZiA9IHNmKCJGaWxlIiksDQogICAgICAgICAgd2YgPSBzZigiQmxvYiIpLA0K ICAgICAgICAgIHhmID0gc2YoIkZpbGVMaXN0IiksDQogICAgICAgICAgU2YgPSBzZigiVVJM U2VhcmNoUGFyYW1zIik7DQogICAgICAgIGZ1bmN0aW9uIGtmKGUsIHQpIHsNCiAgICAgICAg ICBsZXQgbiwNCiAgICAgICAgICAgIHIsDQogICAgICAgICAgICB7IGFsbE93bktleXM6IG8g PSAhMSB9ID0gYXJndW1lbnRzLmxlbmd0aCA+IDIgJiYgdm9pZCAwICE9PSBhcmd1bWVudHNb Ml0gPyBhcmd1bWVudHNbMl0gOiB7fTsNCiAgICAgICAgICBpZiAobnVsbCAhPT0gZSAmJiAi dW5kZWZpbmVkIiAhPT0gdHlwZW9mIGUpDQogICAgICAgICAgICBpZiAoKCJvYmplY3QiICE9 PSB0eXBlb2YgZSAmJiAoZSA9IFtlXSksIGNmKGUpKSkgZm9yIChuID0gMCwgciA9IGUubGVu Z3RoOyBuIDwgcjsgbisrKSB0LmNhbGwobnVsbCwgZVtuXSwgbiwgZSk7DQogICAgICAgICAg ICBlbHNlIHsNCiAgICAgICAgICAgICAgY29uc3QgciA9IG8gPyBPYmplY3QuZ2V0T3duUHJv cGVydHlOYW1lcyhlKSA6IE9iamVjdC5rZXlzKGUpLA0KICAgICAgICAgICAgICAgIGEgPSBy Lmxlbmd0aDsNCiAgICAgICAgICAgICAgbGV0IGk7DQogICAgICAgICAgICAgIGZvciAobiA9 IDA7IG4gPCBhOyBuKyspIChpID0gcltuXSksIHQuY2FsbChudWxsLCBlW2ldLCBpLCBlKTsN CiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBFZihlLCB0KSB7 DQogICAgICAgICAgdCA9IHQudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICBjb25zdCBuID0g T2JqZWN0LmtleXMoZSk7DQogICAgICAgICAgbGV0IHIsDQogICAgICAgICAgICBvID0gbi5s ZW5ndGg7DQogICAgICAgICAgZm9yICg7IG8tLSA+IDA7KSBpZiAoKChyID0gbltvXSksIHQg PT09IHIudG9Mb3dlckNhc2UoKSkpIHJldHVybiByOw0KICAgICAgICAgIHJldHVybiBudWxs Ow0KICAgICAgICB9DQogICAgICAgIGNvbnN0IENmID0gInVuZGVmaW5lZCIgIT09IHR5cGVv ZiBnbG9iYWxUaGlzID8gZ2xvYmFsVGhpcyA6ICJ1bmRlZmluZWQiICE9PSB0eXBlb2Ygc2Vs ZiA/IHNlbGYgOiAidW5kZWZpbmVkIiAhPT0gdHlwZW9mIHdpbmRvdyA/IHdpbmRvdyA6IGds b2JhbCwNCiAgICAgICAgICBSZiA9IChlKSA9PiAhZGYoZSkgJiYgZSAhPT0gQ2Y7DQogICAg ICAgIGNvbnN0IF9mID0gKChQZiA9ICJ1bmRlZmluZWQiICE9PSB0eXBlb2YgVWludDhBcnJh eSAmJiBvZihVaW50OEFycmF5KSksIChlKSA9PiBQZiAmJiBlIGluc3RhbmNlb2YgUGYpOw0K ICAgICAgICB2YXIgUGY7DQogICAgICAgIGNvbnN0IE9mID0gc2YoIkhUTUxGb3JtRWxlbWVu dCIpLA0KICAgICAgICAgIE5mID0gKChlKSA9PiB7DQogICAgICAgICAgICBsZXQgeyBoYXNP d25Qcm9wZXJ0eTogdCB9ID0gZTsNCiAgICAgICAgICAgIHJldHVybiAoZSwgbikgPT4gdC5j YWxsKGUsIG4pOw0KICAgICAgICAgIH0pKE9iamVjdC5wcm90b3R5cGUpLA0KICAgICAgICAg IFRmID0gc2YoIlJlZ0V4cCIpLA0KICAgICAgICAgIEFmID0gKGUsIHQpID0+IHsNCiAgICAg ICAgICAgIGNvbnN0IG4gPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhlKSwN CiAgICAgICAgICAgICAgciA9IHt9Ow0KICAgICAgICAgICAga2YobiwgKG4sIG8pID0+IHsN CiAgICAgICAgICAgICAgbGV0IGE7DQogICAgICAgICAgICAgICExICE9PSAoYSA9IHQobiwg bywgZSkpICYmIChyW29dID0gYSB8fCBuKTsNCiAgICAgICAgICAgIH0pLA0KICAgICAgICAg ICAgICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLCByKTsNCiAgICAgICAgICB9LA0KICAg ICAgICAgIE1mID0gImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiwNCiAgICAgICAgICB6 ZiA9ICIwMTIzNDU2Nzg5IiwNCiAgICAgICAgICBqZiA9IHsgRElHSVQ6IHpmLCBBTFBIQTog TWYsIEFMUEhBX0RJR0lUOiBNZiArIE1mLnRvVXBwZXJDYXNlKCkgKyB6ZiB9Ow0KICAgICAg ICBjb25zdCBJZiA9IHNmKCJBc3luY0Z1bmN0aW9uIiksDQogICAgICAgICAgTGYgPSB7DQog ICAgICAgICAgICBpc0FycmF5OiBjZiwNCiAgICAgICAgICAgIGlzQXJyYXlCdWZmZXI6IGZm LA0KICAgICAgICAgICAgaXNCdWZmZXI6IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICAg IHJldHVybiBudWxsICE9PSBlICYmICFkZihlKSAmJiBudWxsICE9PSBlLmNvbnN0cnVjdG9y ICYmICFkZihlLmNvbnN0cnVjdG9yKSAmJiBoZihlLmNvbnN0cnVjdG9yLmlzQnVmZmVyKSAm JiBlLmNvbnN0cnVjdG9yLmlzQnVmZmVyKGUpOw0KICAgICAgICAgICAgfSwNCiAgICAgICAg ICAgIGlzRm9ybURhdGE6IChlKSA9PiB7DQogICAgICAgICAgICAgIGxldCB0Ow0KICAgICAg ICAgICAgICByZXR1cm4gZSAmJiAoKCJmdW5jdGlvbiIgPT09IHR5cGVvZiBGb3JtRGF0YSAm JiBlIGluc3RhbmNlb2YgRm9ybURhdGEpIHx8IChoZihlLmFwcGVuZCkgJiYgKCJmb3JtZGF0 YSIgPT09ICh0ID0gYWYoZSkpIHx8ICgib2JqZWN0IiA9PT0gdCAmJiBoZihlLnRvU3RyaW5n KSAmJiAiW29iamVjdCBGb3JtRGF0YV0iID09PSBlLnRvU3RyaW5nKCkpKSkpOw0KICAgICAg ICAgICAgfSwNCiAgICAgICAgICAgIGlzQXJyYXlCdWZmZXJWaWV3OiBmdW5jdGlvbiAoZSkg ew0KICAgICAgICAgICAgICBsZXQgdDsNCiAgICAgICAgICAgICAgcmV0dXJuICh0ID0gInVu ZGVmaW5lZCIgIT09IHR5cGVvZiBBcnJheUJ1ZmZlciAmJiBBcnJheUJ1ZmZlci5pc1ZpZXcg PyBBcnJheUJ1ZmZlci5pc1ZpZXcoZSkgOiBlICYmIGUuYnVmZmVyICYmIGZmKGUuYnVmZmVy KSksIHQ7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgaXNTdHJpbmc6IHBmLA0KICAg ICAgICAgICAgaXNOdW1iZXI6IG1mLA0KICAgICAgICAgICAgaXNCb29sZWFuOiAoZSkgPT4g ITAgPT09IGUgfHwgITEgPT09IGUsDQogICAgICAgICAgICBpc09iamVjdDogZ2YsDQogICAg ICAgICAgICBpc1BsYWluT2JqZWN0OiB2ZiwNCiAgICAgICAgICAgIGlzVW5kZWZpbmVkOiBk ZiwNCiAgICAgICAgICAgIGlzRGF0ZTogeWYsDQogICAgICAgICAgICBpc0ZpbGU6IGJmLA0K ICAgICAgICAgICAgaXNCbG9iOiB3ZiwNCiAgICAgICAgICAgIGlzUmVnRXhwOiBUZiwNCiAg ICAgICAgICAgIGlzRnVuY3Rpb246IGhmLA0KICAgICAgICAgICAgaXNTdHJlYW06IChlKSA9 PiBnZihlKSAmJiBoZihlLnBpcGUpLA0KICAgICAgICAgICAgaXNVUkxTZWFyY2hQYXJhbXM6 IFNmLA0KICAgICAgICAgICAgaXNUeXBlZEFycmF5OiBfZiwNCiAgICAgICAgICAgIGlzRmls ZUxpc3Q6IHhmLA0KICAgICAgICAgICAgZm9yRWFjaDoga2YsDQogICAgICAgICAgICBtZXJn ZTogZnVuY3Rpb24gZSgpIHsNCiAgICAgICAgICAgICAgY29uc3QgeyBjYXNlbGVzczogdCB9 ID0gKFJmKHRoaXMpICYmIHRoaXMpIHx8IHt9LA0KICAgICAgICAgICAgICAgIG4gPSB7fSwN CiAgICAgICAgICAgICAgICByID0gKHIsIG8pID0+IHsNCiAgICAgICAgICAgICAgICAgIGNv bnN0IGEgPSAodCAmJiBFZihuLCBvKSkgfHwgbzsNCiAgICAgICAgICAgICAgICAgIHZmKG5b YV0pICYmIHZmKHIpID8gKG5bYV0gPSBlKG5bYV0sIHIpKSA6IHZmKHIpID8gKG5bYV0gPSBl KHt9LCByKSkgOiBjZihyKSA/IChuW2FdID0gci5zbGljZSgpKSA6IChuW2FdID0gcik7DQog ICAgICAgICAgICAgICAgfTsNCiAgICAgICAgICAgICAgZm9yIChsZXQgbyA9IDAsIGEgPSBh cmd1bWVudHMubGVuZ3RoOyBvIDwgYTsgbysrKSBhcmd1bWVudHNbb10gJiYga2YoYXJndW1l bnRzW29dLCByKTsNCiAgICAgICAgICAgICAgcmV0dXJuIG47DQogICAgICAgICAgICB9LA0K ICAgICAgICAgICAgZXh0ZW5kOiBmdW5jdGlvbiAoZSwgdCwgbikgew0KICAgICAgICAgICAg ICBsZXQgeyBhbGxPd25LZXlzOiByIH0gPSBhcmd1bWVudHMubGVuZ3RoID4gMyAmJiB2b2lk IDAgIT09IGFyZ3VtZW50c1szXSA/IGFyZ3VtZW50c1szXSA6IHt9Ow0KICAgICAgICAgICAg ICByZXR1cm4gKA0KICAgICAgICAgICAgICAgIGtmKA0KICAgICAgICAgICAgICAgICAgdCwN CiAgICAgICAgICAgICAgICAgICh0LCByKSA9PiB7DQogICAgICAgICAgICAgICAgICAgIG4g JiYgaGYodCkgPyAoZVtyXSA9IG5mKHQsIG4pKSA6IChlW3JdID0gdCk7DQogICAgICAgICAg ICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgeyBhbGxPd25LZXlzOiByIH0NCiAgICAg ICAgICAgICAgICApLA0KICAgICAgICAgICAgICAgIGUNCiAgICAgICAgICAgICAgKTsNCiAg ICAgICAgICAgIH0sDQogICAgICAgICAgICB0cmltOiAoZSkgPT4gKGUudHJpbSA/IGUudHJp bSgpIDogZS5yZXBsYWNlKC9eW1xzXHVGRUZGXHhBMF0rfFtcc1x1RkVGRlx4QTBdKyQvZywg IiIpKSwNCiAgICAgICAgICAgIHN0cmlwQk9NOiAoZSkgPT4gKDY1Mjc5ID09PSBlLmNoYXJD b2RlQXQoMCkgJiYgKGUgPSBlLnNsaWNlKDEpKSwgZSksDQogICAgICAgICAgICBpbmhlcml0 czogKGUsIHQsIG4sIHIpID0+IHsNCiAgICAgICAgICAgICAgKGUucHJvdG90eXBlID0gT2Jq ZWN0LmNyZWF0ZSh0LnByb3RvdHlwZSwgcikpLCAoZS5wcm90b3R5cGUuY29uc3RydWN0b3Ig PSBlKSwgT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsICJzdXBlciIsIHsgdmFsdWU6IHQucHJv dG90eXBlIH0pLCBuICYmIE9iamVjdC5hc3NpZ24oZS5wcm90b3R5cGUsIG4pOw0KICAgICAg ICAgICAgfSwNCiAgICAgICAgICAgIHRvRmxhdE9iamVjdDogKGUsIHQsIG4sIHIpID0+IHsN CiAgICAgICAgICAgICAgbGV0IG8sIGEsIGk7DQogICAgICAgICAgICAgIGNvbnN0IGwgPSB7 fTsNCiAgICAgICAgICAgICAgaWYgKCgodCA9IHQgfHwge30pLCBudWxsID09IGUpKSByZXR1 cm4gdDsNCiAgICAgICAgICAgICAgZG8gew0KICAgICAgICAgICAgICAgIGZvciAobyA9IE9i amVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGUpLCBhID0gby5sZW5ndGg7IGEtLSA+IDA7KSAo aSA9IG9bYV0pLCAociAmJiAhcihpLCBlLCB0KSkgfHwgbFtpXSB8fCAoKHRbaV0gPSBlW2ld KSwgKGxbaV0gPSAhMCkpOw0KICAgICAgICAgICAgICAgIGUgPSAhMSAhPT0gbiAmJiBvZihl KTsNCiAgICAgICAgICAgICAgfSB3aGlsZSAoZSAmJiAoIW4gfHwgbihlLCB0KSkgJiYgZSAh PT0gT2JqZWN0LnByb3RvdHlwZSk7DQogICAgICAgICAgICAgIHJldHVybiB0Ow0KICAgICAg ICAgICAgfSwNCiAgICAgICAgICAgIGtpbmRPZjogYWYsDQogICAgICAgICAgICBraW5kT2ZU ZXN0OiBzZiwNCiAgICAgICAgICAgIGVuZHNXaXRoOiAoZSwgdCwgbikgPT4gew0KICAgICAg ICAgICAgICAoZSA9IFN0cmluZyhlKSksICh2b2lkIDAgPT09IG4gfHwgbiA+IGUubGVuZ3Ro KSAmJiAobiA9IGUubGVuZ3RoKSwgKG4gLT0gdC5sZW5ndGgpOw0KICAgICAgICAgICAgICBj b25zdCByID0gZS5pbmRleE9mKHQsIG4pOw0KICAgICAgICAgICAgICByZXR1cm4gLTEgIT09 IHIgJiYgciA9PT0gbjsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB0b0FycmF5OiAo ZSkgPT4gew0KICAgICAgICAgICAgICBpZiAoIWUpIHJldHVybiBudWxsOw0KICAgICAgICAg ICAgICBpZiAoY2YoZSkpIHJldHVybiBlOw0KICAgICAgICAgICAgICBsZXQgdCA9IGUubGVu Z3RoOw0KICAgICAgICAgICAgICBpZiAoIW1mKHQpKSByZXR1cm4gbnVsbDsNCiAgICAgICAg ICAgICAgY29uc3QgbiA9IG5ldyBBcnJheSh0KTsNCiAgICAgICAgICAgICAgZm9yICg7IHQt LSA+IDA7KSBuW3RdID0gZVt0XTsNCiAgICAgICAgICAgICAgcmV0dXJuIG47DQogICAgICAg ICAgICB9LA0KICAgICAgICAgICAgZm9yRWFjaEVudHJ5OiAoZSwgdCkgPT4gew0KICAgICAg ICAgICAgICBjb25zdCBuID0gKGUgJiYgZVtTeW1ib2wuaXRlcmF0b3JdKS5jYWxsKGUpOw0K ICAgICAgICAgICAgICBsZXQgcjsNCiAgICAgICAgICAgICAgZm9yICg7IChyID0gbi5uZXh0 KCkpICYmICFyLmRvbmU7KSB7DQogICAgICAgICAgICAgICAgY29uc3QgbiA9IHIudmFsdWU7 DQogICAgICAgICAgICAgICAgdC5jYWxsKGUsIG5bMF0sIG5bMV0pOw0KICAgICAgICAgICAg ICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgbWF0Y2hBbGw6IChlLCB0KSA9PiB7 DQogICAgICAgICAgICAgIGxldCBuOw0KICAgICAgICAgICAgICBjb25zdCByID0gW107DQog ICAgICAgICAgICAgIGZvciAoOyBudWxsICE9PSAobiA9IGUuZXhlYyh0KSk7KSByLnB1c2go bik7DQogICAgICAgICAgICAgIHJldHVybiByOw0KICAgICAgICAgICAgfSwNCiAgICAgICAg ICAgIGlzSFRNTEZvcm06IE9mLA0KICAgICAgICAgICAgaGFzT3duUHJvcGVydHk6IE5mLA0K ICAgICAgICAgICAgaGFzT3duUHJvcDogTmYsDQogICAgICAgICAgICByZWR1Y2VEZXNjcmlw dG9yczogQWYsDQogICAgICAgICAgICBmcmVlemVNZXRob2RzOiAoZSkgPT4gew0KICAgICAg ICAgICAgICBBZihlLCAodCwgbikgPT4gew0KICAgICAgICAgICAgICAgIGlmIChoZihlKSAm JiAtMSAhPT0gWyJhcmd1bWVudHMiLCAiY2FsbGVyIiwgImNhbGxlZSJdLmluZGV4T2Yobikp IHJldHVybiAhMTsNCiAgICAgICAgICAgICAgICBjb25zdCByID0gZVtuXTsNCiAgICAgICAg ICAgICAgICBoZihyKSAmJg0KICAgICAgICAgICAgICAgICAgKCh0LmVudW1lcmFibGUgPSAh MSksDQogICAgICAgICAgICAgICAgICAgICJ3cml0YWJsZSIgaW4gdA0KICAgICAgICAgICAg ICAgICAgICAgID8gKHQud3JpdGFibGUgPSAhMSkNCiAgICAgICAgICAgICAgICAgICAgICA6 IHQuc2V0IHx8DQogICAgICAgICAgICAgICAgICAgICAgKHQuc2V0ID0gKCkgPT4gew0KICAg ICAgICAgICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoIkNhbiBub3QgcmV3cml0ZSByZWFk LW9ubHkgbWV0aG9kICciICsgbiArICInIik7DQogICAgICAgICAgICAgICAgICAgICAgfSkp Ow0KICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB0b09i amVjdFNldDogKGUsIHQpID0+IHsNCiAgICAgICAgICAgICAgY29uc3QgbiA9IHt9LA0KICAg ICAgICAgICAgICAgIHIgPSAoZSkgPT4gew0KICAgICAgICAgICAgICAgICAgZS5mb3JFYWNo KChlKSA9PiB7DQogICAgICAgICAgICAgICAgICAgIG5bZV0gPSAhMDsNCiAgICAgICAgICAg ICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH07DQogICAgICAgICAgICAgIHJldHVybiBj ZihlKSA/IHIoZSkgOiByKFN0cmluZyhlKS5zcGxpdCh0KSksIG47DQogICAgICAgICAgICB9 LA0KICAgICAgICAgICAgdG9DYW1lbENhc2U6IChlKSA9Pg0KICAgICAgICAgICAgICBlLnRv TG93ZXJDYXNlKCkucmVwbGFjZSgvWy1fXHNdKFthLXpcZF0pKFx3KikvZywgZnVuY3Rpb24g KGUsIHQsIG4pIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gdC50b1VwcGVyQ2FzZSgpICsg bjsNCiAgICAgICAgICAgICAgfSksDQogICAgICAgICAgICBub29wOiAoKSA9PiB7IH0sDQog ICAgICAgICAgICB0b0Zpbml0ZU51bWJlcjogKGUsIHQpID0+ICgoZSA9ICtlKSwgTnVtYmVy LmlzRmluaXRlKGUpID8gZSA6IHQpLA0KICAgICAgICAgICAgZmluZEtleTogRWYsDQogICAg ICAgICAgICBnbG9iYWw6IENmLA0KICAgICAgICAgICAgaXNDb250ZXh0RGVmaW5lZDogUmYs DQogICAgICAgICAgICBBTFBIQUJFVDogamYsDQogICAgICAgICAgICBnZW5lcmF0ZVN0cmlu ZzogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICBsZXQgZSA9IGFyZ3VtZW50cy5sZW5n dGggPiAwICYmIHZvaWQgMCAhPT0gYXJndW1lbnRzWzBdID8gYXJndW1lbnRzWzBdIDogMTYs DQogICAgICAgICAgICAgICAgdCA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIHZvaWQgMCAh PT0gYXJndW1lbnRzWzFdID8gYXJndW1lbnRzWzFdIDogamYuQUxQSEFfRElHSVQsDQogICAg ICAgICAgICAgICAgbiA9ICIiOw0KICAgICAgICAgICAgICBjb25zdCB7IGxlbmd0aDogciB9 ID0gdDsNCiAgICAgICAgICAgICAgZm9yICg7IGUtLTspIG4gKz0gdFsoTWF0aC5yYW5kb20o KSAqIHIpIHwgMF07DQogICAgICAgICAgICAgIHJldHVybiBuOw0KICAgICAgICAgICAgfSwN CiAgICAgICAgICAgIGlzU3BlY0NvbXBsaWFudEZvcm06IGZ1bmN0aW9uIChlKSB7DQogICAg ICAgICAgICAgIHJldHVybiAhIShlICYmIGhmKGUuYXBwZW5kKSAmJiAiRm9ybURhdGEiID09 PSBlW1N5bWJvbC50b1N0cmluZ1RhZ10gJiYgZVtTeW1ib2wuaXRlcmF0b3JdKTsNCiAgICAg ICAgICAgIH0sDQogICAgICAgICAgICB0b0pTT05PYmplY3Q6IChlKSA9PiB7DQogICAgICAg ICAgICAgIGNvbnN0IHQgPSBuZXcgQXJyYXkoMTApLA0KICAgICAgICAgICAgICAgIG4gPSAo ZSwgcikgPT4gew0KICAgICAgICAgICAgICAgICAgaWYgKGdmKGUpKSB7DQogICAgICAgICAg ICAgICAgICAgIGlmICh0LmluZGV4T2YoZSkgPj0gMCkgcmV0dXJuOw0KICAgICAgICAgICAg ICAgICAgICBpZiAoISgidG9KU09OIiBpbiBlKSkgew0KICAgICAgICAgICAgICAgICAgICAg IHRbcl0gPSBlOw0KICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG8gPSBjZihlKSA/IFtd IDoge307DQogICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICgNCiAgICAgICAgICAgICAg ICAgICAgICAgIGtmKGUsIChlLCB0KSA9PiB7DQogICAgICAgICAgICAgICAgICAgICAgICAg IGNvbnN0IGEgPSBuKGUsIHIgKyAxKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgIWRm KGEpICYmIChvW3RdID0gYSk7DQogICAgICAgICAgICAgICAgICAgICAgICB9KSwNCiAgICAg ICAgICAgICAgICAgICAgICAgICh0W3JdID0gdm9pZCAwKSwNCiAgICAgICAgICAgICAgICAg ICAgICAgIG8NCiAgICAgICAgICAgICAgICAgICAgICApOw0KICAgICAgICAgICAgICAgICAg ICB9DQogICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICByZXR1cm4gZTsN CiAgICAgICAgICAgICAgICB9Ow0KICAgICAgICAgICAgICByZXR1cm4gbihlLCAwKTsNCiAg ICAgICAgICAgIH0sDQogICAgICAgICAgICBpc0FzeW5jRm46IElmLA0KICAgICAgICAgICAg aXNUaGVuYWJsZTogKGUpID0+IGUgJiYgKGdmKGUpIHx8IGhmKGUpKSAmJiBoZihlLnRoZW4p ICYmIGhmKGUuY2F0Y2gpLA0KICAgICAgICAgIH07DQogICAgICAgIGZ1bmN0aW9uIEZmKGUs IHQsIG4sIHIsIG8pIHsNCiAgICAgICAgICBFcnJvci5jYWxsKHRoaXMpLA0KICAgICAgICAg ICAgRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UgPyBFcnJvci5jYXB0dXJlU3RhY2tUcmFjZSh0 aGlzLCB0aGlzLmNvbnN0cnVjdG9yKSA6ICh0aGlzLnN0YWNrID0gbmV3IEVycm9yKCkuc3Rh Y2spLA0KICAgICAgICAgICAgKHRoaXMubWVzc2FnZSA9IGUpLA0KICAgICAgICAgICAgKHRo aXMubmFtZSA9ICJBeGlvc0Vycm9yIiksDQogICAgICAgICAgICB0ICYmICh0aGlzLmNvZGUg PSB0KSwNCiAgICAgICAgICAgIG4gJiYgKHRoaXMuY29uZmlnID0gbiksDQogICAgICAgICAg ICByICYmICh0aGlzLnJlcXVlc3QgPSByKSwNCiAgICAgICAgICAgIG8gJiYgKHRoaXMucmVz cG9uc2UgPSBvKTsNCiAgICAgICAgfQ0KICAgICAgICBMZi5pbmhlcml0cyhGZiwgRXJyb3Is IHsNCiAgICAgICAgICB0b0pTT046IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgIHJldHVy biB7DQogICAgICAgICAgICAgIG1lc3NhZ2U6IHRoaXMubWVzc2FnZSwNCiAgICAgICAgICAg ICAgbmFtZTogdGhpcy5uYW1lLA0KICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogdGhpcy5k ZXNjcmlwdGlvbiwNCiAgICAgICAgICAgICAgbnVtYmVyOiB0aGlzLm51bWJlciwNCiAgICAg ICAgICAgICAgZmlsZU5hbWU6IHRoaXMuZmlsZU5hbWUsDQogICAgICAgICAgICAgIGxpbmVO dW1iZXI6IHRoaXMubGluZU51bWJlciwNCiAgICAgICAgICAgICAgY29sdW1uTnVtYmVyOiB0 aGlzLmNvbHVtbk51bWJlciwNCiAgICAgICAgICAgICAgc3RhY2s6IHRoaXMuc3RhY2ssDQog ICAgICAgICAgICAgIGNvbmZpZzogTGYudG9KU09OT2JqZWN0KHRoaXMuY29uZmlnKSwNCiAg ICAgICAgICAgICAgY29kZTogdGhpcy5jb2RlLA0KICAgICAgICAgICAgICBzdGF0dXM6IHRo aXMucmVzcG9uc2UgJiYgdGhpcy5yZXNwb25zZS5zdGF0dXMgPyB0aGlzLnJlc3BvbnNlLnN0 YXR1cyA6IG51bGwsDQogICAgICAgICAgICB9Ow0KICAgICAgICAgIH0sDQogICAgICAgIH0p Ow0KICAgICAgICBjb25zdCBCZiA9IEZmLnByb3RvdHlwZSwNCiAgICAgICAgICBEZiA9IHt9 Ow0KICAgICAgICBbDQogICAgICAgICAgIkVSUl9CQURfT1BUSU9OX1ZBTFVFIiwNCiAgICAg ICAgICAiRVJSX0JBRF9PUFRJT04iLA0KICAgICAgICAgICJFQ09OTkFCT1JURUQiLA0KICAg ICAgICAgICJFVElNRURPVVQiLA0KICAgICAgICAgICJFUlJfTkVUV09SSyIsDQogICAgICAg ICAgIkVSUl9GUl9UT09fTUFOWV9SRURJUkVDVFMiLA0KICAgICAgICAgICJFUlJfREVQUkVD QVRFRCIsDQogICAgICAgICAgIkVSUl9CQURfUkVTUE9OU0UiLA0KICAgICAgICAgICJFUlJf QkFEX1JFUVVFU1QiLA0KICAgICAgICAgICJFUlJfQ0FOQ0VMRUQiLA0KICAgICAgICAgICJF UlJfTk9UX1NVUFBPUlQiLA0KICAgICAgICAgICJFUlJfSU5WQUxJRF9VUkwiLA0KICAgICAg ICBdLmZvckVhY2goKGUpID0+IHsNCiAgICAgICAgICBEZltlXSA9IHsgdmFsdWU6IGUgfTsN CiAgICAgICAgfSksDQogICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoRmYsIERm KSwNCiAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoQmYsICJpc0F4aW9zRXJyb3Ii LCB7IHZhbHVlOiAhMCB9KSwNCiAgICAgICAgICAoRmYuZnJvbSA9IChlLCB0LCBuLCByLCBv LCBhKSA9PiB7DQogICAgICAgICAgICBjb25zdCBpID0gT2JqZWN0LmNyZWF0ZShCZik7DQog ICAgICAgICAgICByZXR1cm4gKA0KICAgICAgICAgICAgICBMZi50b0ZsYXRPYmplY3QoDQog ICAgICAgICAgICAgICAgZSwNCiAgICAgICAgICAgICAgICBpLA0KICAgICAgICAgICAgICAg IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICAgICAgICByZXR1cm4gZSAhPT0gRXJyb3Iu cHJvdG90eXBlOw0KICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgKGUpID0+ ICJpc0F4aW9zRXJyb3IiICE9PSBlDQogICAgICAgICAgICAgICksDQogICAgICAgICAgICAg IEZmLmNhbGwoaSwgZS5tZXNzYWdlLCB0LCBuLCByLCBvKSwNCiAgICAgICAgICAgICAgKGku Y2F1c2UgPSBlKSwNCiAgICAgICAgICAgICAgKGkubmFtZSA9IGUubmFtZSksDQogICAgICAg ICAgICAgIGEgJiYgT2JqZWN0LmFzc2lnbihpLCBhKSwNCiAgICAgICAgICAgICAgaQ0KICAg ICAgICAgICAgKTsNCiAgICAgICAgICB9KTsNCiAgICAgICAgY29uc3QgVWYgPSBGZjsNCiAg ICAgICAgZnVuY3Rpb24gV2YoZSkgew0KICAgICAgICAgIHJldHVybiBMZi5pc1BsYWluT2Jq ZWN0KGUpIHx8IExmLmlzQXJyYXkoZSk7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24g VmYoZSkgew0KICAgICAgICAgIHJldHVybiBMZi5lbmRzV2l0aChlLCAiW10iKSA/IGUuc2xp Y2UoMCwgLTIpIDogZTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBIZihlLCB0LCBu KSB7DQogICAgICAgICAgcmV0dXJuIGUNCiAgICAgICAgICAgID8gZQ0KICAgICAgICAgICAg ICAuY29uY2F0KHQpDQogICAgICAgICAgICAgIC5tYXAoZnVuY3Rpb24gKGUsIHQpIHsNCiAg ICAgICAgICAgICAgICByZXR1cm4gKGUgPSBWZihlKSksICFuICYmIHQgPyAiWyIgKyBlICsg Il0iIDogZTsNCiAgICAgICAgICAgICAgfSkNCiAgICAgICAgICAgICAgLmpvaW4obiA/ICIu IiA6ICIiKQ0KICAgICAgICAgICAgOiB0Ow0KICAgICAgICB9DQogICAgICAgIGNvbnN0IHFm ID0gTGYudG9GbGF0T2JqZWN0KExmLCB7fSwgbnVsbCwgZnVuY3Rpb24gKGUpIHsNCiAgICAg ICAgICByZXR1cm4gL15pc1tBLVpdLy50ZXN0KGUpOw0KICAgICAgICB9KTsNCiAgICAgICAg Y29uc3QgJGYgPSBmdW5jdGlvbiAoZSwgdCwgbikgew0KICAgICAgICAgIGlmICghTGYuaXNP YmplY3QoZSkpIHRocm93IG5ldyBUeXBlRXJyb3IoInRhcmdldCBtdXN0IGJlIGFuIG9iamVj dCIpOw0KICAgICAgICAgIHQgPSB0IHx8IG5ldyBGb3JtRGF0YSgpOw0KICAgICAgICAgIGNv bnN0IHIgPSAobiA9IExmLnRvRmxhdE9iamVjdChuLCB7IG1ldGFUb2tlbnM6ICEwLCBkb3Rz OiAhMSwgaW5kZXhlczogITEgfSwgITEsIGZ1bmN0aW9uIChlLCB0KSB7DQogICAgICAgICAg ICByZXR1cm4gIUxmLmlzVW5kZWZpbmVkKHRbZV0pOw0KICAgICAgICAgIH0pKS5tZXRhVG9r ZW5zLA0KICAgICAgICAgICAgbyA9IG4udmlzaXRvciB8fCB1LA0KICAgICAgICAgICAgYSA9 IG4uZG90cywNCiAgICAgICAgICAgIGkgPSBuLmluZGV4ZXMsDQogICAgICAgICAgICBsID0g KG4uQmxvYiB8fCAoInVuZGVmaW5lZCIgIT09IHR5cGVvZiBCbG9iICYmIEJsb2IpKSAmJiBM Zi5pc1NwZWNDb21wbGlhbnRGb3JtKHQpOw0KICAgICAgICAgIGlmICghTGYuaXNGdW5jdGlv bihvKSkgdGhyb3cgbmV3IFR5cGVFcnJvcigidmlzaXRvciBtdXN0IGJlIGEgZnVuY3Rpb24i KTsNCiAgICAgICAgICBmdW5jdGlvbiBzKGUpIHsNCiAgICAgICAgICAgIGlmIChudWxsID09 PSBlKSByZXR1cm4gIiI7DQogICAgICAgICAgICBpZiAoTGYuaXNEYXRlKGUpKSByZXR1cm4g ZS50b0lTT1N0cmluZygpOw0KICAgICAgICAgICAgaWYgKCFsICYmIExmLmlzQmxvYihlKSkg dGhyb3cgbmV3IFVmKCJCbG9iIGlzIG5vdCBzdXBwb3J0ZWQuIFVzZSBhIEJ1ZmZlciBpbnN0 ZWFkLiIpOw0KICAgICAgICAgICAgcmV0dXJuIExmLmlzQXJyYXlCdWZmZXIoZSkgfHwgTGYu aXNUeXBlZEFycmF5KGUpID8gKGwgJiYgImZ1bmN0aW9uIiA9PT0gdHlwZW9mIEJsb2IgPyBu ZXcgQmxvYihbZV0pIDogQnVmZmVyLmZyb20oZSkpIDogZTsNCiAgICAgICAgICB9DQogICAg ICAgICAgZnVuY3Rpb24gdShlLCBuLCBvKSB7DQogICAgICAgICAgICBsZXQgbCA9IGU7DQog ICAgICAgICAgICBpZiAoZSAmJiAhbyAmJiAib2JqZWN0IiA9PT0gdHlwZW9mIGUpDQogICAg ICAgICAgICAgIGlmIChMZi5lbmRzV2l0aChuLCAie30iKSkgKG4gPSByID8gbiA6IG4uc2xp Y2UoMCwgLTIpKSwgKGUgPSBKU09OLnN0cmluZ2lmeShlKSk7DQogICAgICAgICAgICAgIGVs c2UgaWYgKA0KICAgICAgICAgICAgICAgIChMZi5pc0FycmF5KGUpICYmDQogICAgICAgICAg ICAgICAgICAoZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIExm LmlzQXJyYXkoZSkgJiYgIWUuc29tZShXZik7DQogICAgICAgICAgICAgICAgICB9KShlKSkg fHwNCiAgICAgICAgICAgICAgICAoKExmLmlzRmlsZUxpc3QoZSkgfHwgTGYuZW5kc1dpdGgo biwgIltdIikpICYmIChsID0gTGYudG9BcnJheShlKSkpDQogICAgICAgICAgICAgICkNCiAg ICAgICAgICAgICAgICByZXR1cm4gKA0KICAgICAgICAgICAgICAgICAgKG4gPSBWZihuKSks DQogICAgICAgICAgICAgICAgICBsLmZvckVhY2goZnVuY3Rpb24gKGUsIHIpIHsNCiAgICAg ICAgICAgICAgICAgICAgIUxmLmlzVW5kZWZpbmVkKGUpICYmIG51bGwgIT09IGUgJiYgdC5h cHBlbmQoITAgPT09IGkgPyBIZihbbl0sIHIsIGEpIDogbnVsbCA9PT0gaSA/IG4gOiBuICsg IltdIiwgcyhlKSk7DQogICAgICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgICAg ICExDQogICAgICAgICAgICAgICAgKTsNCiAgICAgICAgICAgIHJldHVybiAhIVdmKGUpIHx8 ICh0LmFwcGVuZChIZihvLCBuLCBhKSwgcyhlKSksICExKTsNCiAgICAgICAgICB9DQogICAg ICAgICAgY29uc3QgYyA9IFtdLA0KICAgICAgICAgICAgZCA9IE9iamVjdC5hc3NpZ24ocWYs IHsgZGVmYXVsdFZpc2l0b3I6IHUsIGNvbnZlcnRWYWx1ZTogcywgaXNWaXNpdGFibGU6IFdm IH0pOw0KICAgICAgICAgIGlmICghTGYuaXNPYmplY3QoZSkpIHRocm93IG5ldyBUeXBlRXJy b3IoImRhdGEgbXVzdCBiZSBhbiBvYmplY3QiKTsNCiAgICAgICAgICByZXR1cm4gKA0KICAg ICAgICAgICAgKGZ1bmN0aW9uIGUobiwgcikgew0KICAgICAgICAgICAgICBpZiAoIUxmLmlz VW5kZWZpbmVkKG4pKSB7DQogICAgICAgICAgICAgICAgaWYgKC0xICE9PSBjLmluZGV4T2Yo bikpIHRocm93IEVycm9yKCJDaXJjdWxhciByZWZlcmVuY2UgZGV0ZWN0ZWQgaW4gIiArIHIu am9pbigiLiIpKTsNCiAgICAgICAgICAgICAgICBjLnB1c2gobiksDQogICAgICAgICAgICAg ICAgICBMZi5mb3JFYWNoKG4sIGZ1bmN0aW9uIChuLCBhKSB7DQogICAgICAgICAgICAgICAg ICAgICEwID09PSAoIShMZi5pc1VuZGVmaW5lZChuKSB8fCBudWxsID09PSBuKSAmJiBvLmNh bGwodCwgbiwgTGYuaXNTdHJpbmcoYSkgPyBhLnRyaW0oKSA6IGEsIHIsIGQpKSAmJiBlKG4s IHIgPyByLmNvbmNhdChhKSA6IFthXSk7DQogICAgICAgICAgICAgICAgICB9KSwNCiAgICAg ICAgICAgICAgICAgIGMucG9wKCk7DQogICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0p KGUpLA0KICAgICAgICAgICAgdA0KICAgICAgICAgICk7DQogICAgICAgIH07DQogICAgICAg IGZ1bmN0aW9uIEtmKGUpIHsNCiAgICAgICAgICBjb25zdCB0ID0geyAiISI6ICIlMjEiLCAi JyI6ICIlMjciLCAiKCI6ICIlMjgiLCAiKSI6ICIlMjkiLCAifiI6ICIlN0UiLCAiJTIwIjog IisiLCAiJTAwIjogIlwwIiB9Ow0KICAgICAgICAgIHJldHVybiBlbmNvZGVVUklDb21wb25l bnQoZSkucmVwbGFjZSgvWyEnKCl+XXwlMjB8JTAwL2csIGZ1bmN0aW9uIChlKSB7DQogICAg ICAgICAgICByZXR1cm4gdFtlXTsNCiAgICAgICAgICB9KTsNCiAgICAgICAgfQ0KICAgICAg ICBmdW5jdGlvbiBRZihlLCB0KSB7DQogICAgICAgICAgKHRoaXMuX3BhaXJzID0gW10pLCBl ICYmICRmKGUsIHRoaXMsIHQpOw0KICAgICAgICB9DQogICAgICAgIGNvbnN0IEdmID0gUWYu cHJvdG90eXBlOw0KICAgICAgICAoR2YuYXBwZW5kID0gZnVuY3Rpb24gKGUsIHQpIHsNCiAg ICAgICAgICB0aGlzLl9wYWlycy5wdXNoKFtlLCB0XSk7DQogICAgICAgIH0pLA0KICAgICAg ICAgIChHZi50b1N0cmluZyA9IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICBjb25zdCB0 ID0gZQ0KICAgICAgICAgICAgICA/IGZ1bmN0aW9uICh0KSB7DQogICAgICAgICAgICAgICAg cmV0dXJuIGUuY2FsbCh0aGlzLCB0LCBLZik7DQogICAgICAgICAgICAgIH0NCiAgICAgICAg ICAgICAgOiBLZjsNCiAgICAgICAgICAgIHJldHVybiB0aGlzLl9wYWlycw0KICAgICAgICAg ICAgICAubWFwKGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIHQoZVsw XSkgKyAiPSIgKyB0KGVbMV0pOw0KICAgICAgICAgICAgICB9LCAiIikNCiAgICAgICAgICAg ICAgLmpvaW4oIiYiKTsNCiAgICAgICAgICB9KTsNCiAgICAgICAgY29uc3QgWWYgPSBRZjsN CiAgICAgICAgZnVuY3Rpb24gWGYoZSkgew0KICAgICAgICAgIHJldHVybiBlbmNvZGVVUklD b21wb25lbnQoZSkucmVwbGFjZSgvJTNBL2dpLCAiOiIpLnJlcGxhY2UoLyUyNC9nLCAiJCIp LnJlcGxhY2UoLyUyQy9naSwgIiwiKS5yZXBsYWNlKC8lMjAvZywgIisiKS5yZXBsYWNlKC8l NUIvZ2ksICJbIikucmVwbGFjZSgvJTVEL2dpLCAiXSIpOw0KICAgICAgICB9DQogICAgICAg IGZ1bmN0aW9uIFpmKGUsIHQsIG4pIHsNCiAgICAgICAgICBpZiAoIXQpIHJldHVybiBlOw0K ICAgICAgICAgIGNvbnN0IHIgPSAobiAmJiBuLmVuY29kZSkgfHwgWGYsDQogICAgICAgICAg ICBvID0gbiAmJiBuLnNlcmlhbGl6ZTsNCiAgICAgICAgICBsZXQgYTsNCiAgICAgICAgICBp ZiAoKChhID0gbyA/IG8odCwgbikgOiBMZi5pc1VSTFNlYXJjaFBhcmFtcyh0KSA/IHQudG9T dHJpbmcoKSA6IG5ldyBZZih0LCBuKS50b1N0cmluZyhyKSksIGEpKSB7DQogICAgICAgICAg ICBjb25zdCB0ID0gZS5pbmRleE9mKCIjIik7DQogICAgICAgICAgICAtMSAhPT0gdCAmJiAo ZSA9IGUuc2xpY2UoMCwgdCkpLCAoZSArPSAoLTEgPT09IGUuaW5kZXhPZigiPyIpID8gIj8i IDogIiYiKSArIGEpOw0KICAgICAgICAgIH0NCiAgICAgICAgICByZXR1cm4gZTsNCiAgICAg ICAgfQ0KICAgICAgICBjb25zdCBKZiA9IGNsYXNzIHsNCiAgICAgICAgICBjb25zdHJ1Y3Rv cigpIHsNCiAgICAgICAgICAgIHRoaXMuaGFuZGxlcnMgPSBbXTsNCiAgICAgICAgICB9DQog ICAgICAgICAgdXNlKGUsIHQsIG4pIHsNCiAgICAgICAgICAgIHJldHVybiB0aGlzLmhhbmRs ZXJzLnB1c2goeyBmdWxmaWxsZWQ6IGUsIHJlamVjdGVkOiB0LCBzeW5jaHJvbm91czogISFu ICYmIG4uc3luY2hyb25vdXMsIHJ1bldoZW46IG4gPyBuLnJ1bldoZW4gOiBudWxsIH0pLCB0 aGlzLmhhbmRsZXJzLmxlbmd0aCAtIDE7DQogICAgICAgICAgfQ0KICAgICAgICAgIGVqZWN0 KGUpIHsNCiAgICAgICAgICAgIHRoaXMuaGFuZGxlcnNbZV0gJiYgKHRoaXMuaGFuZGxlcnNb ZV0gPSBudWxsKTsNCiAgICAgICAgICB9DQogICAgICAgICAgY2xlYXIoKSB7DQogICAgICAg ICAgICB0aGlzLmhhbmRsZXJzICYmICh0aGlzLmhhbmRsZXJzID0gW10pOw0KICAgICAgICAg IH0NCiAgICAgICAgICBmb3JFYWNoKGUpIHsNCiAgICAgICAgICAgIExmLmZvckVhY2godGhp cy5oYW5kbGVycywgZnVuY3Rpb24gKHQpIHsNCiAgICAgICAgICAgICAgbnVsbCAhPT0gdCAm JiBlKHQpOw0KICAgICAgICAgICAgfSk7DQogICAgICAgICAgfQ0KICAgICAgICB9LA0KICAg ICAgICAgIGVwID0geyBzaWxlbnRKU09OUGFyc2luZzogITAsIGZvcmNlZEpTT05QYXJzaW5n OiAhMCwgY2xhcmlmeVRpbWVvdXRFcnJvcjogITEgfSwNCiAgICAgICAgICB0cCA9IHsNCiAg ICAgICAgICAgIGlzQnJvd3NlcjogITAsDQogICAgICAgICAgICBjbGFzc2VzOiB7IFVSTFNl YXJjaFBhcmFtczogInVuZGVmaW5lZCIgIT09IHR5cGVvZiBVUkxTZWFyY2hQYXJhbXMgPyBV UkxTZWFyY2hQYXJhbXMgOiBZZiwgRm9ybURhdGE6ICJ1bmRlZmluZWQiICE9PSB0eXBlb2Yg Rm9ybURhdGEgPyBGb3JtRGF0YSA6IG51bGwsIEJsb2I6ICJ1bmRlZmluZWQiICE9PSB0eXBl b2YgQmxvYiA/IEJsb2IgOiBudWxsIH0sDQogICAgICAgICAgICBwcm90b2NvbHM6IFsiaHR0 cCIsICJodHRwcyIsICJmaWxlIiwgImJsb2IiLCAidXJsIiwgImRhdGEiXSwNCiAgICAgICAg ICB9LA0KICAgICAgICAgIG5wID0gInVuZGVmaW5lZCIgIT09IHR5cGVvZiB3aW5kb3cgJiYg InVuZGVmaW5lZCIgIT09IHR5cGVvZiBkb2N1bWVudCwNCiAgICAgICAgICBycCA9ICgob3Ag PSAidW5kZWZpbmVkIiAhPT0gdHlwZW9mIG5hdmlnYXRvciAmJiBuYXZpZ2F0b3IucHJvZHVj dCksIG5wICYmIFsiUmVhY3ROYXRpdmUiLCAiTmF0aXZlU2NyaXB0IiwgIk5TIl0uaW5kZXhP ZihvcCkgPCAwKTsNCiAgICAgICAgdmFyIG9wOw0KICAgICAgICBjb25zdCBhcCA9ICJ1bmRl ZmluZWQiICE9PSB0eXBlb2YgV29ya2VyR2xvYmFsU2NvcGUgJiYgc2VsZiBpbnN0YW5jZW9m IFdvcmtlckdsb2JhbFNjb3BlICYmICJmdW5jdGlvbiIgPT09IHR5cGVvZiBzZWxmLmltcG9y dFNjcmlwdHMsDQogICAgICAgICAgaXAgPSB7IC4uLmUsIC4uLnRwIH07DQogICAgICAgIGNv bnN0IGxwID0gZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICBmdW5jdGlvbiB0KGUsIG4sIHIs IG8pIHsNCiAgICAgICAgICAgIGxldCBhID0gZVtvKytdOw0KICAgICAgICAgICAgY29uc3Qg aSA9IE51bWJlci5pc0Zpbml0ZSgrYSksDQogICAgICAgICAgICAgIGwgPSBvID49IGUubGVu Z3RoOw0KICAgICAgICAgICAgaWYgKCgoYSA9ICFhICYmIExmLmlzQXJyYXkocikgPyByLmxl bmd0aCA6IGEpLCBsKSkgcmV0dXJuIExmLmhhc093blByb3AociwgYSkgPyAoclthXSA9IFty W2FdLCBuXSkgOiAoclthXSA9IG4pLCAhaTsNCiAgICAgICAgICAgIChyW2FdICYmIExmLmlz T2JqZWN0KHJbYV0pKSB8fCAoclthXSA9IFtdKTsNCiAgICAgICAgICAgIHJldHVybiAoDQog ICAgICAgICAgICAgIHQoZSwgbiwgclthXSwgbykgJiYNCiAgICAgICAgICAgICAgTGYuaXNB cnJheShyW2FdKSAmJg0KICAgICAgICAgICAgICAoclthXSA9IChmdW5jdGlvbiAoZSkgew0K ICAgICAgICAgICAgICAgIGNvbnN0IHQgPSB7fSwNCiAgICAgICAgICAgICAgICAgIG4gPSBP YmplY3Qua2V5cyhlKTsNCiAgICAgICAgICAgICAgICBsZXQgcjsNCiAgICAgICAgICAgICAg ICBjb25zdCBvID0gbi5sZW5ndGg7DQogICAgICAgICAgICAgICAgbGV0IGE7DQogICAgICAg ICAgICAgICAgZm9yIChyID0gMDsgciA8IG87IHIrKykgKGEgPSBuW3JdKSwgKHRbYV0gPSBl W2FdKTsNCiAgICAgICAgICAgICAgICByZXR1cm4gdDsNCiAgICAgICAgICAgICAgfSkoclth XSkpLA0KICAgICAgICAgICAgICAhaQ0KICAgICAgICAgICAgKTsNCiAgICAgICAgICB9DQog ICAgICAgICAgaWYgKExmLmlzRm9ybURhdGEoZSkgJiYgTGYuaXNGdW5jdGlvbihlLmVudHJp ZXMpKSB7DQogICAgICAgICAgICBjb25zdCBuID0ge307DQogICAgICAgICAgICByZXR1cm4g KA0KICAgICAgICAgICAgICBMZi5mb3JFYWNoRW50cnkoZSwgKGUsIHIpID0+IHsNCiAgICAg ICAgICAgICAgICB0KA0KICAgICAgICAgICAgICAgICAgKGZ1bmN0aW9uIChlKSB7DQogICAg ICAgICAgICAgICAgICAgIHJldHVybiBMZi5tYXRjaEFsbCgvXHcrfFsoXHcqKV0vZywgZSku bWFwKChlKSA9PiAoIltdIiA9PT0gZVswXSA/ICIiIDogZVsxXSB8fCBlWzBdKSk7DQogICAg ICAgICAgICAgICAgICB9KShlKSwNCiAgICAgICAgICAgICAgICAgIHIsDQogICAgICAgICAg ICAgICAgICBuLA0KICAgICAgICAgICAgICAgICAgMA0KICAgICAgICAgICAgICAgICk7DQog ICAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAgICBuDQogICAgICAgICAgICApOw0KICAg ICAgICAgIH0NCiAgICAgICAgICByZXR1cm4gbnVsbDsNCiAgICAgICAgfTsNCiAgICAgICAg Y29uc3Qgc3AgPSB7DQogICAgICAgICAgdHJhbnNpdGlvbmFsOiBlcCwNCiAgICAgICAgICBh ZGFwdGVyOiBbInhociIsICJodHRwIl0sDQogICAgICAgICAgdHJhbnNmb3JtUmVxdWVzdDog Ww0KICAgICAgICAgICAgZnVuY3Rpb24gKGUsIHQpIHsNCiAgICAgICAgICAgICAgY29uc3Qg biA9IHQuZ2V0Q29udGVudFR5cGUoKSB8fCAiIiwNCiAgICAgICAgICAgICAgICByID0gbi5p bmRleE9mKCJhcHBsaWNhdGlvbi9qc29uIikgPiAtMSwNCiAgICAgICAgICAgICAgICBvID0g TGYuaXNPYmplY3QoZSk7DQogICAgICAgICAgICAgIG8gJiYgTGYuaXNIVE1MRm9ybShlKSAm JiAoZSA9IG5ldyBGb3JtRGF0YShlKSk7DQogICAgICAgICAgICAgIGlmIChMZi5pc0Zvcm1E YXRhKGUpKSByZXR1cm4gciAmJiByID8gSlNPTi5zdHJpbmdpZnkobHAoZSkpIDogZTsNCiAg ICAgICAgICAgICAgaWYgKExmLmlzQXJyYXlCdWZmZXIoZSkgfHwgTGYuaXNCdWZmZXIoZSkg fHwgTGYuaXNTdHJlYW0oZSkgfHwgTGYuaXNGaWxlKGUpIHx8IExmLmlzQmxvYihlKSkgcmV0 dXJuIGU7DQogICAgICAgICAgICAgIGlmIChMZi5pc0FycmF5QnVmZmVyVmlldyhlKSkgcmV0 dXJuIGUuYnVmZmVyOw0KICAgICAgICAgICAgICBpZiAoTGYuaXNVUkxTZWFyY2hQYXJhbXMo ZSkpIHJldHVybiB0LnNldENvbnRlbnRUeXBlKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVy bGVuY29kZWQ7Y2hhcnNldD11dGYtOCIsICExKSwgZS50b1N0cmluZygpOw0KICAgICAgICAg ICAgICBsZXQgYTsNCiAgICAgICAgICAgICAgaWYgKG8pIHsNCiAgICAgICAgICAgICAgICBp ZiAobi5pbmRleE9mKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiKSA+IC0x KQ0KICAgICAgICAgICAgICAgICAgcmV0dXJuIChmdW5jdGlvbiAoZSwgdCkgew0KICAgICAg ICAgICAgICAgICAgICByZXR1cm4gJGYoDQogICAgICAgICAgICAgICAgICAgICAgZSwNCiAg ICAgICAgICAgICAgICAgICAgICBuZXcgaXAuY2xhc3Nlcy5VUkxTZWFyY2hQYXJhbXMoKSwN CiAgICAgICAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKA0KICAgICAgICAgICAgICAg ICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICB2aXNpdG9yOiBmdW5jdGlv biAoZSwgdCwgbiwgcikgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBp cC5pc05vZGUgJiYgTGYuaXNCdWZmZXIoZSkgPyAodGhpcy5hcHBlbmQodCwgZS50b1N0cmlu ZygiYmFzZTY0IikpLCAhMSkgOiByLmRlZmF1bHRWaXNpdG9yLmFwcGx5KHRoaXMsIGFyZ3Vt ZW50cyk7DQogICAgICAgICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAg ICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgICAgICAgdA0KICAgICAgICAgICAgICAg ICAgICAgICkNCiAgICAgICAgICAgICAgICAgICAgKTsNCiAgICAgICAgICAgICAgICAgIH0p KGUsIHRoaXMuZm9ybVNlcmlhbGl6ZXIpLnRvU3RyaW5nKCk7DQogICAgICAgICAgICAgICAg aWYgKChhID0gTGYuaXNGaWxlTGlzdChlKSkgfHwgbi5pbmRleE9mKCJtdWx0aXBhcnQvZm9y bS1kYXRhIikgPiAtMSkgew0KICAgICAgICAgICAgICAgICAgY29uc3QgdCA9IHRoaXMuZW52 ICYmIHRoaXMuZW52LkZvcm1EYXRhOw0KICAgICAgICAgICAgICAgICAgcmV0dXJuICRmKGEg PyB7ICJmaWxlc1tdIjogZSB9IDogZSwgdCAmJiBuZXcgdCgpLCB0aGlzLmZvcm1TZXJpYWxp emVyKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgIH0NCiAgICAgICAgICAg ICAgcmV0dXJuIG8gfHwgcg0KICAgICAgICAgICAgICAgID8gKHQuc2V0Q29udGVudFR5cGUo ImFwcGxpY2F0aW9uL2pzb24iLCAhMSksDQogICAgICAgICAgICAgICAgICAoZnVuY3Rpb24g KGUsIHQsIG4pIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKExmLmlzU3RyaW5nKGUpKQ0K ICAgICAgICAgICAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAgICAgICAgICBy ZXR1cm4gKHQgfHwgSlNPTi5wYXJzZSkoZSksIExmLnRyaW0oZSk7DQogICAgICAgICAgICAg ICAgICAgICAgfSBjYXRjaCAocikgew0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCJT eW50YXhFcnJvciIgIT09IHIubmFtZSkgdGhyb3cgcjsNCiAgICAgICAgICAgICAgICAgICAg ICB9DQogICAgICAgICAgICAgICAgICAgIHJldHVybiAobiB8fCBKU09OLnN0cmluZ2lmeSko ZSk7DQogICAgICAgICAgICAgICAgICB9KShlKSkNCiAgICAgICAgICAgICAgICA6IGU7DQog ICAgICAgICAgICB9LA0KICAgICAgICAgIF0sDQogICAgICAgICAgdHJhbnNmb3JtUmVzcG9u c2U6IFsNCiAgICAgICAgICAgIGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICAgIGNvbnN0 IHQgPSB0aGlzLnRyYW5zaXRpb25hbCB8fCBzcC50cmFuc2l0aW9uYWwsDQogICAgICAgICAg ICAgICAgbiA9IHQgJiYgdC5mb3JjZWRKU09OUGFyc2luZywNCiAgICAgICAgICAgICAgICBy ID0gImpzb24iID09PSB0aGlzLnJlc3BvbnNlVHlwZTsNCiAgICAgICAgICAgICAgaWYgKGUg JiYgTGYuaXNTdHJpbmcoZSkgJiYgKChuICYmICF0aGlzLnJlc3BvbnNlVHlwZSkgfHwgcikp IHsNCiAgICAgICAgICAgICAgICBjb25zdCBuID0gISh0ICYmIHQuc2lsZW50SlNPTlBhcnNp bmcpICYmIHI7DQogICAgICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICAgIHJl dHVybiBKU09OLnBhcnNlKGUpOw0KICAgICAgICAgICAgICAgIH0gY2F0Y2ggKG8pIHsNCiAg ICAgICAgICAgICAgICAgIGlmIChuKSB7DQogICAgICAgICAgICAgICAgICAgIGlmICgiU3lu dGF4RXJyb3IiID09PSBvLm5hbWUpIHRocm93IFVmLmZyb20obywgVWYuRVJSX0JBRF9SRVNQ T05TRSwgdGhpcywgbnVsbCwgdGhpcy5yZXNwb25zZSk7DQogICAgICAgICAgICAgICAgICAg IHRocm93IG87DQogICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAg ICAgICAgICAgICB9DQogICAgICAgICAgICAgIHJldHVybiBlOw0KICAgICAgICAgICAgfSwN CiAgICAgICAgICBdLA0KICAgICAgICAgIHRpbWVvdXQ6IDAsDQogICAgICAgICAgeHNyZkNv b2tpZU5hbWU6ICJYU1JGLVRPS0VOIiwNCiAgICAgICAgICB4c3JmSGVhZGVyTmFtZTogIlgt WFNSRi1UT0tFTiIsDQogICAgICAgICAgbWF4Q29udGVudExlbmd0aDogLTEsDQogICAgICAg ICAgbWF4Qm9keUxlbmd0aDogLTEsDQogICAgICAgICAgZW52OiB7IEZvcm1EYXRhOiBpcC5j bGFzc2VzLkZvcm1EYXRhLCBCbG9iOiBpcC5jbGFzc2VzLkJsb2IgfSwNCiAgICAgICAgICB2 YWxpZGF0ZVN0YXR1czogZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgIHJldHVybiBlID49 IDIwMCAmJiBlIDwgMzAwOw0KICAgICAgICAgIH0sDQogICAgICAgICAgaGVhZGVyczogeyBj b21tb246IHsgQWNjZXB0OiAiYXBwbGljYXRpb24vanNvbiwgdGV4dC9wbGFpbiwgKi8qIiwg IkNvbnRlbnQtVHlwZSI6IHZvaWQgMCB9IH0sDQogICAgICAgIH07DQogICAgICAgIExmLmZv ckVhY2goWyJkZWxldGUiLCAiZ2V0IiwgImhlYWQiLCAicG9zdCIsICJwdXQiLCAicGF0Y2gi XSwgKGUpID0+IHsNCiAgICAgICAgICBzcC5oZWFkZXJzW2VdID0ge307DQogICAgICAgIH0p Ow0KICAgICAgICBjb25zdCB1cCA9IHNwLA0KICAgICAgICAgIGNwID0gTGYudG9PYmplY3RT ZXQoWw0KICAgICAgICAgICAgImFnZSIsDQogICAgICAgICAgICAiYXV0aG9yaXphdGlvbiIs DQogICAgICAgICAgICAiY29udGVudC1sZW5ndGgiLA0KICAgICAgICAgICAgImNvbnRlbnQt dHlwZSIsDQogICAgICAgICAgICAiZXRhZyIsDQogICAgICAgICAgICAiZXhwaXJlcyIsDQog ICAgICAgICAgICAiZnJvbSIsDQogICAgICAgICAgICAiaG9zdCIsDQogICAgICAgICAgICAi aWYtbW9kaWZpZWQtc2luY2UiLA0KICAgICAgICAgICAgImlmLXVubW9kaWZpZWQtc2luY2Ui LA0KICAgICAgICAgICAgImxhc3QtbW9kaWZpZWQiLA0KICAgICAgICAgICAgImxvY2F0aW9u IiwNCiAgICAgICAgICAgICJtYXgtZm9yd2FyZHMiLA0KICAgICAgICAgICAgInByb3h5LWF1 dGhvcml6YXRpb24iLA0KICAgICAgICAgICAgInJlZmVyZXIiLA0KICAgICAgICAgICAgInJl dHJ5LWFmdGVyIiwNCiAgICAgICAgICAgICJ1c2VyLWFnZW50IiwNCiAgICAgICAgICBdKSwN CiAgICAgICAgICBkcCA9IFN5bWJvbCgiaW50ZXJuYWxzIik7DQogICAgICAgIGZ1bmN0aW9u IGZwKGUpIHsNCiAgICAgICAgICByZXR1cm4gZSAmJiBTdHJpbmcoZSkudHJpbSgpLnRvTG93 ZXJDYXNlKCk7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gcHAoZSkgew0KICAgICAg ICAgIHJldHVybiAhMSA9PT0gZSB8fCBudWxsID09IGUgPyBlIDogTGYuaXNBcnJheShlKSA/ IGUubWFwKHBwKSA6IFN0cmluZyhlKTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBo cChlLCB0LCBuLCByLCBvKSB7DQogICAgICAgICAgcmV0dXJuIExmLmlzRnVuY3Rpb24ocikg PyByLmNhbGwodGhpcywgdCwgbikgOiAobyAmJiAodCA9IG4pLCBMZi5pc1N0cmluZyh0KSA/ IChMZi5pc1N0cmluZyhyKSA/IC0xICE9PSB0LmluZGV4T2YocikgOiBMZi5pc1JlZ0V4cChy KSA/IHIudGVzdCh0KSA6IHZvaWQgMCkgOiB2b2lkIDApOw0KICAgICAgICB9DQogICAgICAg IGNsYXNzIG1wIHsNCiAgICAgICAgICBjb25zdHJ1Y3RvcihlKSB7DQogICAgICAgICAgICBl ICYmIHRoaXMuc2V0KGUpOw0KICAgICAgICAgIH0NCiAgICAgICAgICBzZXQoZSwgdCwgbikg ew0KICAgICAgICAgICAgY29uc3QgciA9IHRoaXM7DQogICAgICAgICAgICBmdW5jdGlvbiBv KGUsIHQsIG4pIHsNCiAgICAgICAgICAgICAgY29uc3QgbyA9IGZwKHQpOw0KICAgICAgICAg ICAgICBpZiAoIW8pIHRocm93IG5ldyBFcnJvcigiaGVhZGVyIG5hbWUgbXVzdCBiZSBhIG5v bi1lbXB0eSBzdHJpbmciKTsNCiAgICAgICAgICAgICAgY29uc3QgYSA9IExmLmZpbmRLZXko ciwgbyk7DQogICAgICAgICAgICAgICghYSB8fCB2b2lkIDAgPT09IHJbYV0gfHwgITAgPT09 IG4gfHwgKHZvaWQgMCA9PT0gbiAmJiAhMSAhPT0gclthXSkpICYmIChyW2EgfHwgdF0gPSBw cChlKSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb25zdCBhID0gKGUsIHQpID0+ IExmLmZvckVhY2goZSwgKGUsIG4pID0+IG8oZSwgbiwgdCkpOw0KICAgICAgICAgICAgcmV0 dXJuICgNCiAgICAgICAgICAgICAgTGYuaXNQbGFpbk9iamVjdChlKSB8fCBlIGluc3RhbmNl b2YgdGhpcy5jb25zdHJ1Y3Rvcg0KICAgICAgICAgICAgICAgID8gYShlLCB0KQ0KICAgICAg ICAgICAgICAgIDogTGYuaXNTdHJpbmcoZSkgJiYgKGUgPSBlLnRyaW0oKSkgJiYgIS9eWy1f YS16QS1aMC05XmB8fiwhIyQlJicqKy5dKyQvLnRlc3QoZS50cmltKCkpDQogICAgICAgICAg ICAgICAgICA/IGEoDQogICAgICAgICAgICAgICAgICAgICgoZSkgPT4gew0KICAgICAgICAg ICAgICAgICAgICAgIGNvbnN0IHQgPSB7fTsNCiAgICAgICAgICAgICAgICAgICAgICBsZXQg biwgciwgbzsNCiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKA0KICAgICAgICAgICAg ICAgICAgICAgICAgZSAmJg0KICAgICAgICAgICAgICAgICAgICAgICAgZS5zcGxpdCgiXG4i KS5mb3JFYWNoKGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgIChv ID0gZS5pbmRleE9mKCI6IikpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIChuID0g ZS5zdWJzdHJpbmcoMCwgbykudHJpbSgpLnRvTG93ZXJDYXNlKCkpLA0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChyID0gZS5zdWJzdHJpbmcobyArIDEpLnRyaW0oKSksDQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgIW4gfHwgKHRbbl0gJiYgY3Bbbl0pIHx8ICgic2V0 LWNvb2tpZSIgPT09IG4gPyAodFtuXSA/IHRbbl0ucHVzaChyKSA6ICh0W25dID0gW3JdKSkg OiAodFtuXSA9IHRbbl0gPyB0W25dICsgIiwgIiArIHIgOiByKSk7DQogICAgICAgICAgICAg ICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgICAgICAgICAgIHQNCiAgICAgICAgICAg ICAgICAgICAgICApOw0KICAgICAgICAgICAgICAgICAgICB9KShlKSwNCiAgICAgICAgICAg ICAgICAgICAgdA0KICAgICAgICAgICAgICAgICAgKQ0KICAgICAgICAgICAgICAgICAgOiBu dWxsICE9IGUgJiYgbyh0LCBlLCBuKSwNCiAgICAgICAgICAgICAgdGhpcw0KICAgICAgICAg ICAgKTsNCiAgICAgICAgICB9DQogICAgICAgICAgZ2V0KGUsIHQpIHsNCiAgICAgICAgICAg IGlmICgoZSA9IGZwKGUpKSkgew0KICAgICAgICAgICAgICBjb25zdCBuID0gTGYuZmluZEtl eSh0aGlzLCBlKTsNCiAgICAgICAgICAgICAgaWYgKG4pIHsNCiAgICAgICAgICAgICAgICBj b25zdCBlID0gdGhpc1tuXTsNCiAgICAgICAgICAgICAgICBpZiAoIXQpIHJldHVybiBlOw0K ICAgICAgICAgICAgICAgIGlmICghMCA9PT0gdCkNCiAgICAgICAgICAgICAgICAgIHJldHVy biAoZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgICAgICAgICAgY29uc3QgdCA9IE9iamVj dC5jcmVhdGUobnVsbCksDQogICAgICAgICAgICAgICAgICAgICAgbiA9IC8oW15ccyw7PV0r KVxzKig/Oj1ccyooW14sO10rKSk/L2c7DQogICAgICAgICAgICAgICAgICAgIGxldCByOw0K ICAgICAgICAgICAgICAgICAgICBmb3IgKDsgKHIgPSBuLmV4ZWMoZSkpOykgdFtyWzFdXSA9 IHJbMl07DQogICAgICAgICAgICAgICAgICAgIHJldHVybiB0Ow0KICAgICAgICAgICAgICAg ICAgfSkoZSk7DQogICAgICAgICAgICAgICAgaWYgKExmLmlzRnVuY3Rpb24odCkpIHJldHVy biB0LmNhbGwodGhpcywgZSwgbik7DQogICAgICAgICAgICAgICAgaWYgKExmLmlzUmVnRXhw KHQpKSByZXR1cm4gdC5leGVjKGUpOw0KICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBl RXJyb3IoInBhcnNlciBtdXN0IGJlIGJvb2xlYW58cmVnZXhwfGZ1bmN0aW9uIik7DQogICAg ICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICB9DQogICAgICAgICAgaGFz KGUsIHQpIHsNCiAgICAgICAgICAgIGlmICgoZSA9IGZwKGUpKSkgew0KICAgICAgICAgICAg ICBjb25zdCBuID0gTGYuZmluZEtleSh0aGlzLCBlKTsNCiAgICAgICAgICAgICAgcmV0dXJu ICEoIW4gfHwgdm9pZCAwID09PSB0aGlzW25dIHx8ICh0ICYmICFocCgwLCB0aGlzW25dLCBu LCB0KSkpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmV0dXJuICExOw0KICAgICAg ICAgIH0NCiAgICAgICAgICBkZWxldGUoZSwgdCkgew0KICAgICAgICAgICAgY29uc3QgbiA9 IHRoaXM7DQogICAgICAgICAgICBsZXQgciA9ICExOw0KICAgICAgICAgICAgZnVuY3Rpb24g byhlKSB7DQogICAgICAgICAgICAgIGlmICgoZSA9IGZwKGUpKSkgew0KICAgICAgICAgICAg ICAgIGNvbnN0IG8gPSBMZi5maW5kS2V5KG4sIGUpOw0KICAgICAgICAgICAgICAgICFvIHx8 ICh0ICYmICFocCgwLCBuW29dLCBvLCB0KSkgfHwgKGRlbGV0ZSBuW29dLCAociA9ICEwKSk7 DQogICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHJldHVybiBM Zi5pc0FycmF5KGUpID8gZS5mb3JFYWNoKG8pIDogbyhlKSwgcjsNCiAgICAgICAgICB9DQog ICAgICAgICAgY2xlYXIoZSkgew0KICAgICAgICAgICAgY29uc3QgdCA9IE9iamVjdC5rZXlz KHRoaXMpOw0KICAgICAgICAgICAgbGV0IG4gPSB0Lmxlbmd0aCwNCiAgICAgICAgICAgICAg ciA9ICExOw0KICAgICAgICAgICAgZm9yICg7IG4tLTspIHsNCiAgICAgICAgICAgICAgY29u c3QgbyA9IHRbbl07DQogICAgICAgICAgICAgIChlICYmICFocCgwLCB0aGlzW29dLCBvLCBl LCAhMCkpIHx8IChkZWxldGUgdGhpc1tvXSwgKHIgPSAhMCkpOw0KICAgICAgICAgICAgfQ0K ICAgICAgICAgICAgcmV0dXJuIHI7DQogICAgICAgICAgfQ0KICAgICAgICAgIG5vcm1hbGl6 ZShlKSB7DQogICAgICAgICAgICBjb25zdCB0ID0gdGhpcywNCiAgICAgICAgICAgICAgbiA9 IHt9Ow0KICAgICAgICAgICAgcmV0dXJuICgNCiAgICAgICAgICAgICAgTGYuZm9yRWFjaCh0 aGlzLCAociwgbykgPT4gew0KICAgICAgICAgICAgICAgIGNvbnN0IGEgPSBMZi5maW5kS2V5 KG4sIG8pOw0KICAgICAgICAgICAgICAgIGlmIChhKSByZXR1cm4gKHRbYV0gPSBwcChyKSks IHZvaWQgZGVsZXRlIHRbb107DQogICAgICAgICAgICAgICAgY29uc3QgaSA9IGUNCiAgICAg ICAgICAgICAgICAgID8gKGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICAgICAgICAgIHJl dHVybiBlDQogICAgICAgICAgICAgICAgICAgICAgLnRyaW0oKQ0KICAgICAgICAgICAgICAg ICAgICAgIC50b0xvd2VyQ2FzZSgpDQogICAgICAgICAgICAgICAgICAgICAgLnJlcGxhY2Uo LyhbYS16XGRdKShcdyopL2csIChlLCB0LCBuKSA9PiB0LnRvVXBwZXJDYXNlKCkgKyBuKTsN CiAgICAgICAgICAgICAgICAgIH0pKG8pDQogICAgICAgICAgICAgICAgICA6IFN0cmluZyhv KS50cmltKCk7DQogICAgICAgICAgICAgICAgaSAhPT0gbyAmJiBkZWxldGUgdFtvXSwgKHRb aV0gPSBwcChyKSksIChuW2ldID0gITApOw0KICAgICAgICAgICAgICB9KSwNCiAgICAgICAg ICAgICAgdGhpcw0KICAgICAgICAgICAgKTsNCiAgICAgICAgICB9DQogICAgICAgICAgY29u Y2F0KCkgew0KICAgICAgICAgICAgZm9yICh2YXIgZSA9IGFyZ3VtZW50cy5sZW5ndGgsIHQg PSBuZXcgQXJyYXkoZSksIG4gPSAwOyBuIDwgZTsgbisrKSB0W25dID0gYXJndW1lbnRzW25d Ow0KICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29uc3RydWN0b3IuY29uY2F0KHRoaXMsIC4u LnQpOw0KICAgICAgICAgIH0NCiAgICAgICAgICB0b0pTT04oZSkgew0KICAgICAgICAgICAg Y29uc3QgdCA9IE9iamVjdC5jcmVhdGUobnVsbCk7DQogICAgICAgICAgICByZXR1cm4gKA0K ICAgICAgICAgICAgICBMZi5mb3JFYWNoKHRoaXMsIChuLCByKSA9PiB7DQogICAgICAgICAg ICAgICAgbnVsbCAhPSBuICYmICExICE9PSBuICYmICh0W3JdID0gZSAmJiBMZi5pc0FycmF5 KG4pID8gbi5qb2luKCIsICIpIDogbik7DQogICAgICAgICAgICAgIH0pLA0KICAgICAgICAg ICAgICB0DQogICAgICAgICAgICApOw0KICAgICAgICAgIH0NCiAgICAgICAgICBbU3ltYm9s Lml0ZXJhdG9yXSgpIHsNCiAgICAgICAgICAgIHJldHVybiBPYmplY3QuZW50cmllcyh0aGlz LnRvSlNPTigpKVtTeW1ib2wuaXRlcmF0b3JdKCk7DQogICAgICAgICAgfQ0KICAgICAgICAg IHRvU3RyaW5nKCkgew0KICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHRoaXMu dG9KU09OKCkpDQogICAgICAgICAgICAgIC5tYXAoKGUpID0+IHsNCiAgICAgICAgICAgICAg ICBsZXQgW3QsIG5dID0gZTsNCiAgICAgICAgICAgICAgICByZXR1cm4gdCArICI6ICIgKyBu Ow0KICAgICAgICAgICAgICB9KQ0KICAgICAgICAgICAgICAuam9pbigiXG4iKTsNCiAgICAg ICAgICB9DQogICAgICAgICAgZ2V0IFtTeW1ib2wudG9TdHJpbmdUYWddKCkgew0KICAgICAg ICAgICAgcmV0dXJuICJBeGlvc0hlYWRlcnMiOw0KICAgICAgICAgIH0NCiAgICAgICAgICBz dGF0aWMgZnJvbShlKSB7DQogICAgICAgICAgICByZXR1cm4gZSBpbnN0YW5jZW9mIHRoaXMg PyBlIDogbmV3IHRoaXMoZSk7DQogICAgICAgICAgfQ0KICAgICAgICAgIHN0YXRpYyBjb25j YXQoZSkgew0KICAgICAgICAgICAgY29uc3QgdCA9IG5ldyB0aGlzKGUpOw0KICAgICAgICAg ICAgZm9yICh2YXIgbiA9IGFyZ3VtZW50cy5sZW5ndGgsIHIgPSBuZXcgQXJyYXkobiA+IDEg PyBuIC0gMSA6IDApLCBvID0gMTsgbyA8IG47IG8rKykgcltvIC0gMV0gPSBhcmd1bWVudHNb b107DQogICAgICAgICAgICByZXR1cm4gci5mb3JFYWNoKChlKSA9PiB0LnNldChlKSksIHQ7 DQogICAgICAgICAgfQ0KICAgICAgICAgIHN0YXRpYyBhY2Nlc3NvcihlKSB7DQogICAgICAg ICAgICBjb25zdCB0ID0gKHRoaXNbZHBdID0gdGhpc1tkcF0gPSB7IGFjY2Vzc29yczoge30g fSkuYWNjZXNzb3JzLA0KICAgICAgICAgICAgICBuID0gdGhpcy5wcm90b3R5cGU7DQogICAg ICAgICAgICBmdW5jdGlvbiByKGUpIHsNCiAgICAgICAgICAgICAgY29uc3QgciA9IGZwKGUp Ow0KICAgICAgICAgICAgICB0W3JdIHx8DQogICAgICAgICAgICAgICAgKCEoZnVuY3Rpb24g KGUsIHQpIHsNCiAgICAgICAgICAgICAgICAgIGNvbnN0IG4gPSBMZi50b0NhbWVsQ2FzZSgi ICIgKyB0KTsNCiAgICAgICAgICAgICAgICAgIFsiZ2V0IiwgInNldCIsICJoYXMiXS5mb3JF YWNoKChyKSA9PiB7DQogICAgICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0 eShlLCByICsgbiwgew0KICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbiAo ZSwgbiwgbykgew0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXNbcl0uY2Fs bCh0aGlzLCB0LCBlLCBuLCBvKTsNCiAgICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAg ICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogITAsDQogICAgICAgICAgICAgICAgICAg IH0pOw0KICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgfSkobiwgZSks DQogICAgICAgICAgICAgICAgICAodFtyXSA9ICEwKSk7DQogICAgICAgICAgICB9DQogICAg ICAgICAgICByZXR1cm4gTGYuaXNBcnJheShlKSA/IGUuZm9yRWFjaChyKSA6IHIoZSksIHRo aXM7DQogICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIG1wLmFjY2Vzc29yKFsiQ29u dGVudC1UeXBlIiwgIkNvbnRlbnQtTGVuZ3RoIiwgIkFjY2VwdCIsICJBY2NlcHQtRW5jb2Rp bmciLCAiVXNlci1BZ2VudCIsICJBdXRob3JpemF0aW9uIl0pLA0KICAgICAgICAgIExmLnJl ZHVjZURlc2NyaXB0b3JzKG1wLnByb3RvdHlwZSwgKGUsIHQpID0+IHsNCiAgICAgICAgICAg IGxldCB7IHZhbHVlOiBuIH0gPSBlLA0KICAgICAgICAgICAgICByID0gdFswXS50b1VwcGVy Q2FzZSgpICsgdC5zbGljZSgxKTsNCiAgICAgICAgICAgIHJldHVybiB7DQogICAgICAgICAg ICAgIGdldDogKCkgPT4gbiwNCiAgICAgICAgICAgICAgc2V0KGUpIHsNCiAgICAgICAgICAg ICAgICB0aGlzW3JdID0gZTsNCiAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIH07DQog ICAgICAgICAgfSksDQogICAgICAgICAgTGYuZnJlZXplTWV0aG9kcyhtcCk7DQogICAgICAg IGNvbnN0IGdwID0gbXA7DQogICAgICAgIGZ1bmN0aW9uIHZwKGUsIHQpIHsNCiAgICAgICAg ICBjb25zdCBuID0gdGhpcyB8fCB1cCwNCiAgICAgICAgICAgIHIgPSB0IHx8IG4sDQogICAg ICAgICAgICBvID0gZ3AuZnJvbShyLmhlYWRlcnMpOw0KICAgICAgICAgIGxldCBhID0gci5k YXRhOw0KICAgICAgICAgIHJldHVybiAoDQogICAgICAgICAgICBMZi5mb3JFYWNoKGUsIGZ1 bmN0aW9uIChlKSB7DQogICAgICAgICAgICAgIGEgPSBlLmNhbGwobiwgYSwgby5ub3JtYWxp emUoKSwgdCA/IHQuc3RhdHVzIDogdm9pZCAwKTsNCiAgICAgICAgICAgIH0pLA0KICAgICAg ICAgICAgby5ub3JtYWxpemUoKSwNCiAgICAgICAgICAgIGENCiAgICAgICAgICApOw0KICAg ICAgICB9DQogICAgICAgIGZ1bmN0aW9uIHlwKGUpIHsNCiAgICAgICAgICByZXR1cm4gISgh ZSB8fCAhZS5fX0NBTkNFTF9fKTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBicChl LCB0LCBuKSB7DQogICAgICAgICAgVWYuY2FsbCh0aGlzLCBudWxsID09IGUgPyAiY2FuY2Vs ZWQiIDogZSwgVWYuRVJSX0NBTkNFTEVELCB0LCBuKSwgKHRoaXMubmFtZSA9ICJDYW5jZWxl ZEVycm9yIik7DQogICAgICAgIH0NCiAgICAgICAgTGYuaW5oZXJpdHMoYnAsIFVmLCB7IF9f Q0FOQ0VMX186ICEwIH0pOw0KICAgICAgICBjb25zdCB3cCA9IGJwOw0KICAgICAgICBjb25z dCB4cCA9IGlwLmhhc1N0YW5kYXJkQnJvd3NlckVudg0KICAgICAgICAgID8gew0KICAgICAg ICAgICAgd3JpdGU6IGZ1bmN0aW9uIChlLCB0LCBuLCByLCBvLCBhKSB7DQogICAgICAgICAg ICAgIGNvbnN0IGkgPSBbXTsNCiAgICAgICAgICAgICAgaS5wdXNoKGUgKyAiPSIgKyBlbmNv ZGVVUklDb21wb25lbnQodCkpLA0KICAgICAgICAgICAgICAgIExmLmlzTnVtYmVyKG4pICYm IGkucHVzaCgiZXhwaXJlcz0iICsgbmV3IERhdGUobikudG9HTVRTdHJpbmcoKSksDQogICAg ICAgICAgICAgICAgTGYuaXNTdHJpbmcocikgJiYgaS5wdXNoKCJwYXRoPSIgKyByKSwNCiAg ICAgICAgICAgICAgICBMZi5pc1N0cmluZyhvKSAmJiBpLnB1c2goImRvbWFpbj0iICsgbyks DQogICAgICAgICAgICAgICAgITAgPT09IGEgJiYgaS5wdXNoKCJzZWN1cmUiKSwNCiAgICAg ICAgICAgICAgICAoZG9jdW1lbnQuY29va2llID0gaS5qb2luKCI7ICIpKTsNCiAgICAgICAg ICAgIH0sDQogICAgICAgICAgICByZWFkOiBmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAg ICBjb25zdCB0ID0gZG9jdW1lbnQuY29va2llLm1hdGNoKG5ldyBSZWdFeHAoIihefDtcXHMq KSgiICsgZSArICIpPShbXjtdKikiKSk7DQogICAgICAgICAgICAgIHJldHVybiB0ID8gZGVj b2RlVVJJQ29tcG9uZW50KHRbM10pIDogbnVsbDsNCiAgICAgICAgICAgIH0sDQogICAgICAg ICAgICByZW1vdmU6IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICAgIHRoaXMud3JpdGUo ZSwgIiIsIERhdGUubm93KCkgLSA4NjRlNSk7DQogICAgICAgICAgICB9LA0KICAgICAgICAg IH0NCiAgICAgICAgICA6IHsNCiAgICAgICAgICAgIHdyaXRlOiBmdW5jdGlvbiAoKSB7IH0s DQogICAgICAgICAgICByZWFkOiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgIHJldHVy biBudWxsOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHJlbW92ZTogZnVuY3Rpb24g KCkgeyB9LA0KICAgICAgICAgIH07DQogICAgICAgIGZ1bmN0aW9uIFNwKGUsIHQpIHsNCiAg ICAgICAgICByZXR1cm4gZSAmJiAhL14oW2Etel1bYS16XGQrXC0uXSo6KT9cL1wvL2kudGVz dCh0KQ0KICAgICAgICAgICAgPyAoZnVuY3Rpb24gKGUsIHQpIHsNCiAgICAgICAgICAgICAg cmV0dXJuIHQgPyBlLnJlcGxhY2UoL1wvKyQvLCAiIikgKyAiLyIgKyB0LnJlcGxhY2UoL15c LysvLCAiIikgOiBlOw0KICAgICAgICAgICAgfSkoZSwgdCkNCiAgICAgICAgICAgIDogdDsN CiAgICAgICAgfQ0KICAgICAgICBjb25zdCBrcCA9IGlwLmhhc1N0YW5kYXJkQnJvd3NlckVu dg0KICAgICAgICAgID8gKGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgIGNvbnN0IGUgPSAv KG1zaWV8dHJpZGVudCkvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpLA0KICAgICAgICAg ICAgICB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpOw0KICAgICAgICAgICAgbGV0 IG47DQogICAgICAgICAgICBmdW5jdGlvbiByKG4pIHsNCiAgICAgICAgICAgICAgbGV0IHIg PSBuOw0KICAgICAgICAgICAgICByZXR1cm4gKA0KICAgICAgICAgICAgICAgIGUgJiYgKHQu c2V0QXR0cmlidXRlKCJocmVmIiwgciksIChyID0gdC5ocmVmKSksDQogICAgICAgICAgICAg ICAgdC5zZXRBdHRyaWJ1dGUoImhyZWYiLCByKSwNCiAgICAgICAgICAgICAgICB7DQogICAg ICAgICAgICAgICAgICBocmVmOiB0LmhyZWYsDQogICAgICAgICAgICAgICAgICBwcm90b2Nv bDogdC5wcm90b2NvbCA/IHQucHJvdG9jb2wucmVwbGFjZSgvOiQvLCAiIikgOiAiIiwNCiAg ICAgICAgICAgICAgICAgIGhvc3Q6IHQuaG9zdCwNCiAgICAgICAgICAgICAgICAgIHNlYXJj aDogdC5zZWFyY2ggPyB0LnNlYXJjaC5yZXBsYWNlKC9eXD8vLCAiIikgOiAiIiwNCiAgICAg ICAgICAgICAgICAgIGhhc2g6IHQuaGFzaCA/IHQuaGFzaC5yZXBsYWNlKC9eIy8sICIiKSA6 ICIiLA0KICAgICAgICAgICAgICAgICAgaG9zdG5hbWU6IHQuaG9zdG5hbWUsDQogICAgICAg ICAgICAgICAgICBwb3J0OiB0LnBvcnQsDQogICAgICAgICAgICAgICAgICBwYXRobmFtZTog Ii8iID09PSB0LnBhdGhuYW1lLmNoYXJBdCgwKSA/IHQucGF0aG5hbWUgOiAiLyIgKyB0LnBh dGhuYW1lLA0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgKTsNCiAgICAgICAg ICAgIH0NCiAgICAgICAgICAgIHJldHVybiAoDQogICAgICAgICAgICAgIChuID0gcih3aW5k b3cubG9jYXRpb24uaHJlZikpLA0KICAgICAgICAgICAgICBmdW5jdGlvbiAoZSkgew0KICAg ICAgICAgICAgICAgIGNvbnN0IHQgPSBMZi5pc1N0cmluZyhlKSA/IHIoZSkgOiBlOw0KICAg ICAgICAgICAgICAgIHJldHVybiB0LnByb3RvY29sID09PSBuLnByb3RvY29sICYmIHQuaG9z dCA9PT0gbi5ob3N0Ow0KICAgICAgICAgICAgICB9DQogICAgICAgICAgICApOw0KICAgICAg ICAgIH0pKCkNCiAgICAgICAgICA6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgIHJldHVy biAhMDsNCiAgICAgICAgICB9Ow0KICAgICAgICBjb25zdCBFcCA9IGZ1bmN0aW9uIChlLCB0 KSB7DQogICAgICAgICAgZSA9IGUgfHwgMTA7DQogICAgICAgICAgY29uc3QgbiA9IG5ldyBB cnJheShlKSwNCiAgICAgICAgICAgIHIgPSBuZXcgQXJyYXkoZSk7DQogICAgICAgICAgbGV0 IG8sDQogICAgICAgICAgICBhID0gMCwNCiAgICAgICAgICAgIGkgPSAwOw0KICAgICAgICAg IHJldHVybiAoDQogICAgICAgICAgICAodCA9IHZvaWQgMCAhPT0gdCA/IHQgOiAxZTMpLA0K ICAgICAgICAgICAgZnVuY3Rpb24gKGwpIHsNCiAgICAgICAgICAgICAgY29uc3QgcyA9IERh dGUubm93KCksDQogICAgICAgICAgICAgICAgdSA9IHJbaV07DQogICAgICAgICAgICAgIG8g fHwgKG8gPSBzKSwgKG5bYV0gPSBsKSwgKHJbYV0gPSBzKTsNCiAgICAgICAgICAgICAgbGV0 IGMgPSBpLA0KICAgICAgICAgICAgICAgIGQgPSAwOw0KICAgICAgICAgICAgICBmb3IgKDsg YyAhPT0gYTspIChkICs9IG5bYysrXSksIChjICU9IGUpOw0KICAgICAgICAgICAgICBpZiAo KChhID0gKGEgKyAxKSAlIGUpLCBhID09PSBpICYmIChpID0gKGkgKyAxKSAlIGUpLCBzIC0g byA8IHQpKSByZXR1cm47DQogICAgICAgICAgICAgIGNvbnN0IGYgPSB1ICYmIHMgLSB1Ow0K ICAgICAgICAgICAgICByZXR1cm4gZiA/IE1hdGgucm91bmQoKDFlMyAqIGQpIC8gZikgOiB2 b2lkIDA7DQogICAgICAgICAgICB9DQogICAgICAgICAgKTsNCiAgICAgICAgfTsNCiAgICAg ICAgZnVuY3Rpb24gQ3AoZSwgdCkgew0KICAgICAgICAgIGxldCBuID0gMDsNCiAgICAgICAg ICBjb25zdCByID0gRXAoNTAsIDI1MCk7DQogICAgICAgICAgcmV0dXJuIChvKSA9PiB7DQog ICAgICAgICAgICBjb25zdCBhID0gby5sb2FkZWQsDQogICAgICAgICAgICAgIGkgPSBvLmxl bmd0aENvbXB1dGFibGUgPyBvLnRvdGFsIDogdm9pZCAwLA0KICAgICAgICAgICAgICBsID0g YSAtIG4sDQogICAgICAgICAgICAgIHMgPSByKGwpOw0KICAgICAgICAgICAgbiA9IGE7DQog ICAgICAgICAgICBjb25zdCB1ID0geyBsb2FkZWQ6IGEsIHRvdGFsOiBpLCBwcm9ncmVzczog aSA/IGEgLyBpIDogdm9pZCAwLCBieXRlczogbCwgcmF0ZTogcyB8fCB2b2lkIDAsIGVzdGlt YXRlZDogcyAmJiBpICYmIGEgPD0gaSA/IChpIC0gYSkgLyBzIDogdm9pZCAwLCBldmVudDog byB9Ow0KICAgICAgICAgICAgKHVbdCA/ICJkb3dubG9hZCIgOiAidXBsb2FkIl0gPSAhMCks IGUodSk7DQogICAgICAgICAgfTsNCiAgICAgICAgfQ0KICAgICAgICBjb25zdCBScCA9DQog ICAgICAgICAgInVuZGVmaW5lZCIgIT09IHR5cGVvZiBYTUxIdHRwUmVxdWVzdCAmJg0KICAg ICAgICAgIGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2Uo ZnVuY3Rpb24gKHQsIG4pIHsNCiAgICAgICAgICAgICAgbGV0IHIgPSBlLmRhdGE7DQogICAg ICAgICAgICAgIGNvbnN0IG8gPSBncC5mcm9tKGUuaGVhZGVycykubm9ybWFsaXplKCksDQog ICAgICAgICAgICAgICAgYSA9IGUucmVzcG9uc2VUeXBlOw0KICAgICAgICAgICAgICBsZXQg aSwgbDsNCiAgICAgICAgICAgICAgZnVuY3Rpb24gcygpIHsNCiAgICAgICAgICAgICAgICBl LmNhbmNlbFRva2VuICYmIGUuY2FuY2VsVG9rZW4udW5zdWJzY3JpYmUoaSksIGUuc2lnbmFs ICYmIGUuc2lnbmFsLnJlbW92ZUV2ZW50TGlzdGVuZXIoImFib3J0IiwgaSk7DQogICAgICAg ICAgICAgIH0NCiAgICAgICAgICAgICAgaWYgKExmLmlzRm9ybURhdGEocikpDQogICAgICAg ICAgICAgICAgaWYgKGlwLmhhc1N0YW5kYXJkQnJvd3NlckVudiB8fCBpcC5oYXNTdGFuZGFy ZEJyb3dzZXJXZWJXb3JrZXJFbnYpIG8uc2V0Q29udGVudFR5cGUoITEpOw0KICAgICAgICAg ICAgICAgIGVsc2UgaWYgKCExICE9PSAobCA9IG8uZ2V0Q29udGVudFR5cGUoKSkpIHsNCiAg ICAgICAgICAgICAgICAgIGNvbnN0IFtlLCAuLi50XSA9IGwNCiAgICAgICAgICAgICAgICAg ICAgPyBsDQogICAgICAgICAgICAgICAgICAgICAgLnNwbGl0KCI7IikNCiAgICAgICAgICAg ICAgICAgICAgICAubWFwKChlKSA9PiBlLnRyaW0oKSkNCiAgICAgICAgICAgICAgICAgICAg ICAuZmlsdGVyKEJvb2xlYW4pDQogICAgICAgICAgICAgICAgICAgIDogW107DQogICAgICAg ICAgICAgICAgICBvLnNldENvbnRlbnRUeXBlKFtlIHx8ICJtdWx0aXBhcnQvZm9ybS1kYXRh IiwgLi4udF0uam9pbigiOyAiKSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAg ICBsZXQgdSA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOw0KICAgICAgICAgICAgICBpZiAoZS5h dXRoKSB7DQogICAgICAgICAgICAgICAgY29uc3QgdCA9IGUuYXV0aC51c2VybmFtZSB8fCAi IiwNCiAgICAgICAgICAgICAgICAgIG4gPSBlLmF1dGgucGFzc3dvcmQgPyB1bmVzY2FwZShl bmNvZGVVUklDb21wb25lbnQoZS5hdXRoLnBhc3N3b3JkKSkgOiAiIjsNCiAgICAgICAgICAg ICAgICBvLnNldCgiQXV0aG9yaXphdGlvbiIsICJCYXNpYyAiICsgYnRvYSh0ICsgIjoiICsg bikpOw0KICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgIGNvbnN0IGMgPSBTcChlLmJh c2VVUkwsIGUudXJsKTsNCiAgICAgICAgICAgICAgZnVuY3Rpb24gZCgpIHsNCiAgICAgICAg ICAgICAgICBpZiAoIXUpIHJldHVybjsNCiAgICAgICAgICAgICAgICBjb25zdCByID0gZ3Au ZnJvbSgiZ2V0QWxsUmVzcG9uc2VIZWFkZXJzIiBpbiB1ICYmIHUuZ2V0QWxsUmVzcG9uc2VI ZWFkZXJzKCkpOw0KICAgICAgICAgICAgICAgICEoZnVuY3Rpb24gKGUsIHQsIG4pIHsNCiAg ICAgICAgICAgICAgICAgIGNvbnN0IHIgPSBuLmNvbmZpZy52YWxpZGF0ZVN0YXR1czsNCiAg ICAgICAgICAgICAgICAgIG4uc3RhdHVzICYmIHIgJiYgIXIobi5zdGF0dXMpID8gdChuZXcg VWYoIlJlcXVlc3QgZmFpbGVkIHdpdGggc3RhdHVzIGNvZGUgIiArIG4uc3RhdHVzLCBbVWYu RVJSX0JBRF9SRVFVRVNULCBVZi5FUlJfQkFEX1JFU1BPTlNFXVtNYXRoLmZsb29yKG4uc3Rh dHVzIC8gMTAwKSAtIDRdLCBuLmNvbmZpZywgbi5yZXF1ZXN0LCBuKSkgOiBlKG4pOw0KICAg ICAgICAgICAgICAgIH0pKA0KICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gKGUpIHsNCiAg ICAgICAgICAgICAgICAgICAgdChlKSwgcygpOw0KICAgICAgICAgICAgICAgICAgfSwNCiAg ICAgICAgICAgICAgICAgIGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICAgICAgICAgIG4o ZSksIHMoKTsNCiAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICB7IGRh dGE6IGEgJiYgInRleHQiICE9PSBhICYmICJqc29uIiAhPT0gYSA/IHUucmVzcG9uc2UgOiB1 LnJlc3BvbnNlVGV4dCwgc3RhdHVzOiB1LnN0YXR1cywgc3RhdHVzVGV4dDogdS5zdGF0dXNU ZXh0LCBoZWFkZXJzOiByLCBjb25maWc6IGUsIHJlcXVlc3Q6IHUgfQ0KICAgICAgICAgICAg ICAgICksDQogICAgICAgICAgICAgICAgICAodSA9IG51bGwpOw0KICAgICAgICAgICAgICB9 DQogICAgICAgICAgICAgIGlmICgNCiAgICAgICAgICAgICAgICAodS5vcGVuKGUubWV0aG9k LnRvVXBwZXJDYXNlKCksIFpmKGMsIGUucGFyYW1zLCBlLnBhcmFtc1NlcmlhbGl6ZXIpLCAh MCksDQogICAgICAgICAgICAgICAgICAodS50aW1lb3V0ID0gZS50aW1lb3V0KSwNCiAgICAg ICAgICAgICAgICAgICJvbmxvYWRlbmQiIGluIHUNCiAgICAgICAgICAgICAgICAgICAgPyAo dS5vbmxvYWRlbmQgPSBkKQ0KICAgICAgICAgICAgICAgICAgICA6ICh1Lm9ucmVhZHlzdGF0 ZWNoYW5nZSA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgICB1ICYmIDQg PT09IHUucmVhZHlTdGF0ZSAmJiAoMCAhPT0gdS5zdGF0dXMgfHwgKHUucmVzcG9uc2VVUkwg JiYgMCA9PT0gdS5yZXNwb25zZVVSTC5pbmRleE9mKCJmaWxlOiIpKSkgJiYgc2V0VGltZW91 dChkKTsNCiAgICAgICAgICAgICAgICAgICAgfSksDQogICAgICAgICAgICAgICAgICAodS5v bmFib3J0ID0gZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICB1ICYmIChuKG5l dyBVZigiUmVxdWVzdCBhYm9ydGVkIiwgVWYuRUNPTk5BQk9SVEVELCBlLCB1KSksICh1ID0g bnVsbCkpOw0KICAgICAgICAgICAgICAgICAgfSksDQogICAgICAgICAgICAgICAgICAodS5v bmVycm9yID0gZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICBuKG5ldyBVZigi TmV0d29yayBFcnJvciIsIFVmLkVSUl9ORVRXT1JLLCBlLCB1KSksICh1ID0gbnVsbCk7DQog ICAgICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgICAgICh1Lm9udGltZW91dCA9 IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgbGV0IHQgPSBlLnRpbWVvdXQg PyAidGltZW91dCBvZiAiICsgZS50aW1lb3V0ICsgIm1zIGV4Y2VlZGVkIiA6ICJ0aW1lb3V0 IGV4Y2VlZGVkIjsNCiAgICAgICAgICAgICAgICAgICAgY29uc3QgciA9IGUudHJhbnNpdGlv bmFsIHx8IGVwOw0KICAgICAgICAgICAgICAgICAgICBlLnRpbWVvdXRFcnJvck1lc3NhZ2Ug JiYgKHQgPSBlLnRpbWVvdXRFcnJvck1lc3NhZ2UpLCBuKG5ldyBVZih0LCByLmNsYXJpZnlU aW1lb3V0RXJyb3IgPyBVZi5FVElNRURPVVQgOiBVZi5FQ09OTkFCT1JURUQsIGUsIHUpKSwg KHUgPSBudWxsKTsNCiAgICAgICAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAgICAgICAg aXAuaGFzU3RhbmRhcmRCcm93c2VyRW52KQ0KICAgICAgICAgICAgICApIHsNCiAgICAgICAg ICAgICAgICBjb25zdCB0ID0ga3AoYykgJiYgZS54c3JmQ29va2llTmFtZSAmJiB4cC5yZWFk KGUueHNyZkNvb2tpZU5hbWUpOw0KICAgICAgICAgICAgICAgIHQgJiYgby5zZXQoZS54c3Jm SGVhZGVyTmFtZSwgdCk7DQogICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgdm9pZCAw ID09PSByICYmIG8uc2V0Q29udGVudFR5cGUobnVsbCksDQogICAgICAgICAgICAgICAgInNl dFJlcXVlc3RIZWFkZXIiIGluIHUgJiYNCiAgICAgICAgICAgICAgICBMZi5mb3JFYWNoKG8u dG9KU09OKCksIGZ1bmN0aW9uIChlLCB0KSB7DQogICAgICAgICAgICAgICAgICB1LnNldFJl cXVlc3RIZWFkZXIodCwgZSk7DQogICAgICAgICAgICAgICAgfSksDQogICAgICAgICAgICAg ICAgTGYuaXNVbmRlZmluZWQoZS53aXRoQ3JlZGVudGlhbHMpIHx8ICh1LndpdGhDcmVkZW50 aWFscyA9ICEhZS53aXRoQ3JlZGVudGlhbHMpLA0KICAgICAgICAgICAgICAgIGEgJiYgImpz b24iICE9PSBhICYmICh1LnJlc3BvbnNlVHlwZSA9IGUucmVzcG9uc2VUeXBlKSwNCiAgICAg ICAgICAgICAgICAiZnVuY3Rpb24iID09PSB0eXBlb2YgZS5vbkRvd25sb2FkUHJvZ3Jlc3Mg JiYgdS5hZGRFdmVudExpc3RlbmVyKCJwcm9ncmVzcyIsIENwKGUub25Eb3dubG9hZFByb2dy ZXNzLCAhMCkpLA0KICAgICAgICAgICAgICAgICJmdW5jdGlvbiIgPT09IHR5cGVvZiBlLm9u VXBsb2FkUHJvZ3Jlc3MgJiYgdS51cGxvYWQgJiYgdS51cGxvYWQuYWRkRXZlbnRMaXN0ZW5l cigicHJvZ3Jlc3MiLCBDcChlLm9uVXBsb2FkUHJvZ3Jlc3MpKSwNCiAgICAgICAgICAgICAg ICAoZS5jYW5jZWxUb2tlbiB8fCBlLnNpZ25hbCkgJiYNCiAgICAgICAgICAgICAgICAoKGkg PSAodCkgPT4gew0KICAgICAgICAgICAgICAgICAgdSAmJiAobighdCB8fCB0LnR5cGUgPyBu ZXcgd3AobnVsbCwgZSwgdSkgOiB0KSwgdS5hYm9ydCgpLCAodSA9IG51bGwpKTsNCiAgICAg ICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgICAgIGUuY2FuY2VsVG9rZW4gJiYgZS5j YW5jZWxUb2tlbi5zdWJzY3JpYmUoaSksDQogICAgICAgICAgICAgICAgICBlLnNpZ25hbCAm JiAoZS5zaWduYWwuYWJvcnRlZCA/IGkoKSA6IGUuc2lnbmFsLmFkZEV2ZW50TGlzdGVuZXIo ImFib3J0IiwgaSkpKTsNCiAgICAgICAgICAgICAgY29uc3QgZiA9IChmdW5jdGlvbiAoZSkg ew0KICAgICAgICAgICAgICAgIGNvbnN0IHQgPSAvXihbLStcd117MSwyNX0pKDo/XC9cL3w6 KS8uZXhlYyhlKTsNCiAgICAgICAgICAgICAgICByZXR1cm4gKHQgJiYgdFsxXSkgfHwgIiI7 DQogICAgICAgICAgICAgIH0pKGMpOw0KICAgICAgICAgICAgICBmICYmIC0xID09PSBpcC5w cm90b2NvbHMuaW5kZXhPZihmKSA/IG4obmV3IFVmKCJVbnN1cHBvcnRlZCBwcm90b2NvbCAi ICsgZiArICI6IiwgVWYuRVJSX0JBRF9SRVFVRVNULCBlKSkgOiB1LnNlbmQociB8fCBudWxs KTsNCiAgICAgICAgICAgIH0pOw0KICAgICAgICAgIH0sDQogICAgICAgICAgX3AgPSB7IGh0 dHA6IG51bGwsIHhocjogUnAgfTsNCiAgICAgICAgTGYuZm9yRWFjaChfcCwgKGUsIHQpID0+ IHsNCiAgICAgICAgICBpZiAoZSkgew0KICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAg ICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsICJuYW1lIiwgeyB2YWx1ZTogdCB9KTsNCiAg ICAgICAgICAgIH0gY2F0Y2ggKG4pIHsgfQ0KICAgICAgICAgICAgT2JqZWN0LmRlZmluZVBy b3BlcnR5KGUsICJhZGFwdGVyTmFtZSIsIHsgdmFsdWU6IHQgfSk7DQogICAgICAgICAgfQ0K ICAgICAgICB9KTsNCiAgICAgICAgY29uc3QgUHAgPSAoZSkgPT4gIi0gIi5jb25jYXQoZSks DQogICAgICAgICAgT3AgPSAoZSkgPT4gTGYuaXNGdW5jdGlvbihlKSB8fCBudWxsID09PSBl IHx8ICExID09PSBlLA0KICAgICAgICAgIE5wID0gKGUpID0+IHsNCiAgICAgICAgICAgIGUg PSBMZi5pc0FycmF5KGUpID8gZSA6IFtlXTsNCiAgICAgICAgICAgIGNvbnN0IHsgbGVuZ3Ro OiB0IH0gPSBlOw0KICAgICAgICAgICAgbGV0IG4sIHI7DQogICAgICAgICAgICBjb25zdCBv ID0ge307DQogICAgICAgICAgICBmb3IgKGxldCBhID0gMDsgYSA8IHQ7IGErKykgew0KICAg ICAgICAgICAgICBsZXQgdDsNCiAgICAgICAgICAgICAgaWYgKCgobiA9IGVbYV0pLCAociA9 IG4pLCAhT3AobikgJiYgKChyID0gX3BbKHQgPSBTdHJpbmcobikpLnRvTG93ZXJDYXNlKCld KSwgdm9pZCAwID09PSByKSkpIHRocm93IG5ldyBVZigiVW5rbm93biBhZGFwdGVyICciLmNv bmNhdCh0LCAiJyIpKTsNCiAgICAgICAgICAgICAgaWYgKHIpIGJyZWFrOw0KICAgICAgICAg ICAgICBvW3QgfHwgIiMiICsgYV0gPSByOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAg aWYgKCFyKSB7DQogICAgICAgICAgICAgIGNvbnN0IGUgPSBPYmplY3QuZW50cmllcyhvKS5t YXAoKGUpID0+IHsNCiAgICAgICAgICAgICAgICBsZXQgW3QsIG5dID0gZTsNCiAgICAgICAg ICAgICAgICByZXR1cm4gImFkYXB0ZXIgIi5jb25jYXQodCwgIiAiKSArICghMSA9PT0gbiA/ ICJpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBlbnZpcm9ubWVudCIgOiAiaXMgbm90IGF2YWls YWJsZSBpbiB0aGUgYnVpbGQiKTsNCiAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAg IGxldCBuID0gdCA/IChlLmxlbmd0aCA+IDEgPyAic2luY2UgOlxuIiArIGUubWFwKFBwKS5q b2luKCJcbiIpIDogIiAiICsgUHAoZVswXSkpIDogImFzIG5vIGFkYXB0ZXIgc3BlY2lmaWVk IjsNCiAgICAgICAgICAgICAgdGhyb3cgbmV3IFVmKCJUaGVyZSBpcyBubyBzdWl0YWJsZSBh ZGFwdGVyIHRvIGRpc3BhdGNoIHRoZSByZXF1ZXN0ICIgKyBuLCAiRVJSX05PVF9TVVBQT1JU Iik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXR1cm4gcjsNCiAgICAgICAgICB9 Ow0KICAgICAgICBmdW5jdGlvbiBUcChlKSB7DQogICAgICAgICAgaWYgKChlLmNhbmNlbFRv a2VuICYmIGUuY2FuY2VsVG9rZW4udGhyb3dJZlJlcXVlc3RlZCgpLCBlLnNpZ25hbCAmJiBl LnNpZ25hbC5hYm9ydGVkKSkgdGhyb3cgbmV3IHdwKG51bGwsIGUpOw0KICAgICAgICB9DQog ICAgICAgIGZ1bmN0aW9uIEFwKGUpIHsNCiAgICAgICAgICBUcChlKSwgKGUuaGVhZGVycyA9 IGdwLmZyb20oZS5oZWFkZXJzKSksIChlLmRhdGEgPSB2cC5jYWxsKGUsIGUudHJhbnNmb3Jt UmVxdWVzdCkpLCAtMSAhPT0gWyJwb3N0IiwgInB1dCIsICJwYXRjaCJdLmluZGV4T2YoZS5t ZXRob2QpICYmIGUuaGVhZGVycy5zZXRDb250ZW50VHlwZSgiYXBwbGljYXRpb24veC13d3ct Zm9ybS11cmxlbmNvZGVkIiwgITEpOw0KICAgICAgICAgIHJldHVybiBOcChlLmFkYXB0ZXIg fHwgdXAuYWRhcHRlcikoZSkudGhlbigNCiAgICAgICAgICAgIGZ1bmN0aW9uICh0KSB7DQog ICAgICAgICAgICAgIHJldHVybiBUcChlKSwgKHQuZGF0YSA9IHZwLmNhbGwoZSwgZS50cmFu c2Zvcm1SZXNwb25zZSwgdCkpLCAodC5oZWFkZXJzID0gZ3AuZnJvbSh0LmhlYWRlcnMpKSwg dDsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBmdW5jdGlvbiAodCkgew0KICAgICAg ICAgICAgICByZXR1cm4geXAodCkgfHwgKFRwKGUpLCB0ICYmIHQucmVzcG9uc2UgJiYgKCh0 LnJlc3BvbnNlLmRhdGEgPSB2cC5jYWxsKGUsIGUudHJhbnNmb3JtUmVzcG9uc2UsIHQucmVz cG9uc2UpKSwgKHQucmVzcG9uc2UuaGVhZGVycyA9IGdwLmZyb20odC5yZXNwb25zZS5oZWFk ZXJzKSkpKSwgUHJvbWlzZS5yZWplY3QodCk7DQogICAgICAgICAgICB9DQogICAgICAgICAg KTsNCiAgICAgICAgfQ0KICAgICAgICBjb25zdCBNcCA9IChlKSA9PiAoZSBpbnN0YW5jZW9m IGdwID8gZS50b0pTT04oKSA6IGUpOw0KICAgICAgICBmdW5jdGlvbiB6cChlLCB0KSB7DQog ICAgICAgICAgdCA9IHQgfHwge307DQogICAgICAgICAgY29uc3QgbiA9IHt9Ow0KICAgICAg ICAgIGZ1bmN0aW9uIHIoZSwgdCwgbikgew0KICAgICAgICAgICAgcmV0dXJuIExmLmlzUGxh aW5PYmplY3QoZSkgJiYgTGYuaXNQbGFpbk9iamVjdCh0KSA/IExmLm1lcmdlLmNhbGwoeyBj YXNlbGVzczogbiB9LCBlLCB0KSA6IExmLmlzUGxhaW5PYmplY3QodCkgPyBMZi5tZXJnZSh7 fSwgdCkgOiBMZi5pc0FycmF5KHQpID8gdC5zbGljZSgpIDogdDsNCiAgICAgICAgICB9DQog ICAgICAgICAgZnVuY3Rpb24gbyhlLCB0LCBuKSB7DQogICAgICAgICAgICByZXR1cm4gTGYu aXNVbmRlZmluZWQodCkgPyAoTGYuaXNVbmRlZmluZWQoZSkgPyB2b2lkIDAgOiByKHZvaWQg MCwgZSwgbikpIDogcihlLCB0LCBuKTsNCiAgICAgICAgICB9DQogICAgICAgICAgZnVuY3Rp b24gYShlLCB0KSB7DQogICAgICAgICAgICBpZiAoIUxmLmlzVW5kZWZpbmVkKHQpKSByZXR1 cm4gcih2b2lkIDAsIHQpOw0KICAgICAgICAgIH0NCiAgICAgICAgICBmdW5jdGlvbiBpKGUs IHQpIHsNCiAgICAgICAgICAgIHJldHVybiBMZi5pc1VuZGVmaW5lZCh0KSA/IChMZi5pc1Vu ZGVmaW5lZChlKSA/IHZvaWQgMCA6IHIodm9pZCAwLCBlKSkgOiByKHZvaWQgMCwgdCk7DQog ICAgICAgICAgfQ0KICAgICAgICAgIGZ1bmN0aW9uIGwobiwgbywgYSkgew0KICAgICAgICAg ICAgcmV0dXJuIGEgaW4gdCA/IHIobiwgbykgOiBhIGluIGUgPyByKHZvaWQgMCwgbikgOiB2 b2lkIDA7DQogICAgICAgICAgfQ0KICAgICAgICAgIGNvbnN0IHMgPSB7DQogICAgICAgICAg ICB1cmw6IGEsDQogICAgICAgICAgICBtZXRob2Q6IGEsDQogICAgICAgICAgICBkYXRhOiBh LA0KICAgICAgICAgICAgYmFzZVVSTDogaSwNCiAgICAgICAgICAgIHRyYW5zZm9ybVJlcXVl c3Q6IGksDQogICAgICAgICAgICB0cmFuc2Zvcm1SZXNwb25zZTogaSwNCiAgICAgICAgICAg IHBhcmFtc1NlcmlhbGl6ZXI6IGksDQogICAgICAgICAgICB0aW1lb3V0OiBpLA0KICAgICAg ICAgICAgdGltZW91dE1lc3NhZ2U6IGksDQogICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6 IGksDQogICAgICAgICAgICBhZGFwdGVyOiBpLA0KICAgICAgICAgICAgcmVzcG9uc2VUeXBl OiBpLA0KICAgICAgICAgICAgeHNyZkNvb2tpZU5hbWU6IGksDQogICAgICAgICAgICB4c3Jm SGVhZGVyTmFtZTogaSwNCiAgICAgICAgICAgIG9uVXBsb2FkUHJvZ3Jlc3M6IGksDQogICAg ICAgICAgICBvbkRvd25sb2FkUHJvZ3Jlc3M6IGksDQogICAgICAgICAgICBkZWNvbXByZXNz OiBpLA0KICAgICAgICAgICAgbWF4Q29udGVudExlbmd0aDogaSwNCiAgICAgICAgICAgIG1h eEJvZHlMZW5ndGg6IGksDQogICAgICAgICAgICBiZWZvcmVSZWRpcmVjdDogaSwNCiAgICAg ICAgICAgIHRyYW5zcG9ydDogaSwNCiAgICAgICAgICAgIGh0dHBBZ2VudDogaSwNCiAgICAg ICAgICAgIGh0dHBzQWdlbnQ6IGksDQogICAgICAgICAgICBjYW5jZWxUb2tlbjogaSwNCiAg ICAgICAgICAgIHNvY2tldFBhdGg6IGksDQogICAgICAgICAgICByZXNwb25zZUVuY29kaW5n OiBpLA0KICAgICAgICAgICAgdmFsaWRhdGVTdGF0dXM6IGwsDQogICAgICAgICAgICBoZWFk ZXJzOiAoZSwgdCkgPT4gbyhNcChlKSwgTXAodCksICEwKSwNCiAgICAgICAgICB9Ow0KICAg ICAgICAgIHJldHVybiAoDQogICAgICAgICAgICBMZi5mb3JFYWNoKE9iamVjdC5rZXlzKE9i amVjdC5hc3NpZ24oe30sIGUsIHQpKSwgZnVuY3Rpb24gKHIpIHsNCiAgICAgICAgICAgICAg Y29uc3QgYSA9IHNbcl0gfHwgbywNCiAgICAgICAgICAgICAgICBpID0gYShlW3JdLCB0W3Jd LCByKTsNCiAgICAgICAgICAgICAgKExmLmlzVW5kZWZpbmVkKGkpICYmIGEgIT09IGwpIHx8 IChuW3JdID0gaSk7DQogICAgICAgICAgICB9KSwNCiAgICAgICAgICAgIG4NCiAgICAgICAg ICApOw0KICAgICAgICB9DQogICAgICAgIGNvbnN0IGpwID0gIjEuNi4xIiwNCiAgICAgICAg ICBJcCA9IHt9Ow0KICAgICAgICBbIm9iamVjdCIsICJib29sZWFuIiwgIm51bWJlciIsICJm dW5jdGlvbiIsICJzdHJpbmciLCAic3ltYm9sIl0uZm9yRWFjaCgoZSwgdCkgPT4gew0KICAg ICAgICAgIElwW2VdID0gZnVuY3Rpb24gKG4pIHsNCiAgICAgICAgICAgIHJldHVybiB0eXBl b2YgbiA9PT0gZSB8fCAiYSIgKyAodCA8IDEgPyAibiAiIDogIiAiKSArIGU7DQogICAgICAg ICAgfTsNCiAgICAgICAgfSk7DQogICAgICAgIGNvbnN0IExwID0ge307DQogICAgICAgIElw LnRyYW5zaXRpb25hbCA9IGZ1bmN0aW9uIChlLCB0LCBuKSB7DQogICAgICAgICAgZnVuY3Rp b24gcihlLCB0KSB7DQogICAgICAgICAgICByZXR1cm4gIltBeGlvcyB2MS42LjFdIFRyYW5z aXRpb25hbCBvcHRpb24gJyIgKyBlICsgIiciICsgdCArIChuID8gIi4gIiArIG4gOiAiIik7 DQogICAgICAgICAgfQ0KICAgICAgICAgIHJldHVybiAobiwgbywgYSkgPT4gew0KICAgICAg ICAgICAgaWYgKCExID09PSBlKSB0aHJvdyBuZXcgVWYocihvLCAiIGhhcyBiZWVuIHJlbW92 ZWQiICsgKHQgPyAiIGluICIgKyB0IDogIiIpKSwgVWYuRVJSX0RFUFJFQ0FURUQpOw0KICAg ICAgICAgICAgcmV0dXJuIHQgJiYgIUxwW29dICYmICgoTHBbb10gPSAhMCksIGNvbnNvbGUu d2FybihyKG8sICIgaGFzIGJlZW4gZGVwcmVjYXRlZCBzaW5jZSB2IiArIHQgKyAiIGFuZCB3 aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5lYXIgZnV0dXJlIikpKSwgIWUgfHwgZShuLCBvLCBh KTsNCiAgICAgICAgICB9Ow0KICAgICAgICB9Ow0KICAgICAgICBjb25zdCBGcCA9IHsNCiAg ICAgICAgICBhc3NlcnRPcHRpb25zOiBmdW5jdGlvbiAoZSwgdCwgbikgew0KICAgICAgICAg ICAgaWYgKCJvYmplY3QiICE9PSB0eXBlb2YgZSkgdGhyb3cgbmV3IFVmKCJvcHRpb25zIG11 c3QgYmUgYW4gb2JqZWN0IiwgVWYuRVJSX0JBRF9PUFRJT05fVkFMVUUpOw0KICAgICAgICAg ICAgY29uc3QgciA9IE9iamVjdC5rZXlzKGUpOw0KICAgICAgICAgICAgbGV0IG8gPSByLmxl bmd0aDsNCiAgICAgICAgICAgIGZvciAoOyBvLS0gPiAwOykgew0KICAgICAgICAgICAgICBj b25zdCBhID0gcltvXSwNCiAgICAgICAgICAgICAgICBpID0gdFthXTsNCiAgICAgICAgICAg ICAgaWYgKGkpIHsNCiAgICAgICAgICAgICAgICBjb25zdCB0ID0gZVthXSwNCiAgICAgICAg ICAgICAgICAgIG4gPSB2b2lkIDAgPT09IHQgfHwgaSh0LCBhLCBlKTsNCiAgICAgICAgICAg ICAgICBpZiAoITAgIT09IG4pIHRocm93IG5ldyBVZigib3B0aW9uICIgKyBhICsgIiBtdXN0 IGJlICIgKyBuLCBVZi5FUlJfQkFEX09QVElPTl9WQUxVRSk7DQogICAgICAgICAgICAgIH0g ZWxzZSBpZiAoITAgIT09IG4pIHRocm93IG5ldyBVZigiVW5rbm93biBvcHRpb24gIiArIGEs IFVmLkVSUl9CQURfT1BUSU9OKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICB9LA0KICAg ICAgICAgIHZhbGlkYXRvcnM6IElwLA0KICAgICAgICB9LA0KICAgICAgICAgIEJwID0gRnAu dmFsaWRhdG9yczsNCiAgICAgICAgY2xhc3MgRHAgew0KICAgICAgICAgIGNvbnN0cnVjdG9y KGUpIHsNCiAgICAgICAgICAgICh0aGlzLmRlZmF1bHRzID0gZSksICh0aGlzLmludGVyY2Vw dG9ycyA9IHsgcmVxdWVzdDogbmV3IEpmKCksIHJlc3BvbnNlOiBuZXcgSmYoKSB9KTsNCiAg ICAgICAgICB9DQogICAgICAgICAgcmVxdWVzdChlLCB0KSB7DQogICAgICAgICAgICAic3Ry aW5nIiA9PT0gdHlwZW9mIGUgPyAoKHQgPSB0IHx8IHt9KS51cmwgPSBlKSA6ICh0ID0gZSB8 fCB7fSksICh0ID0genAodGhpcy5kZWZhdWx0cywgdCkpOw0KICAgICAgICAgICAgY29uc3Qg eyB0cmFuc2l0aW9uYWw6IG4sIHBhcmFtc1NlcmlhbGl6ZXI6IHIsIGhlYWRlcnM6IG8gfSA9 IHQ7DQogICAgICAgICAgICB2b2lkIDAgIT09IG4gJiYgRnAuYXNzZXJ0T3B0aW9ucyhuLCB7 IHNpbGVudEpTT05QYXJzaW5nOiBCcC50cmFuc2l0aW9uYWwoQnAuYm9vbGVhbiksIGZvcmNl ZEpTT05QYXJzaW5nOiBCcC50cmFuc2l0aW9uYWwoQnAuYm9vbGVhbiksIGNsYXJpZnlUaW1l b3V0RXJyb3I6IEJwLnRyYW5zaXRpb25hbChCcC5ib29sZWFuKSB9LCAhMSksDQogICAgICAg ICAgICAgIG51bGwgIT0gciAmJiAoTGYuaXNGdW5jdGlvbihyKSA/ICh0LnBhcmFtc1Nlcmlh bGl6ZXIgPSB7IHNlcmlhbGl6ZTogciB9KSA6IEZwLmFzc2VydE9wdGlvbnMociwgeyBlbmNv ZGU6IEJwLmZ1bmN0aW9uLCBzZXJpYWxpemU6IEJwLmZ1bmN0aW9uIH0sICEwKSksDQogICAg ICAgICAgICAgICh0Lm1ldGhvZCA9ICh0Lm1ldGhvZCB8fCB0aGlzLmRlZmF1bHRzLm1ldGhv ZCB8fCAiZ2V0IikudG9Mb3dlckNhc2UoKSk7DQogICAgICAgICAgICBsZXQgYSA9IG8gJiYg TGYubWVyZ2Uoby5jb21tb24sIG9bdC5tZXRob2RdKTsNCiAgICAgICAgICAgIG8gJiYNCiAg ICAgICAgICAgICAgTGYuZm9yRWFjaChbImRlbGV0ZSIsICJnZXQiLCAiaGVhZCIsICJwb3N0 IiwgInB1dCIsICJwYXRjaCIsICJjb21tb24iXSwgKGUpID0+IHsNCiAgICAgICAgICAgICAg ICBkZWxldGUgb1tlXTsNCiAgICAgICAgICAgICAgfSksDQogICAgICAgICAgICAgICh0Lmhl YWRlcnMgPSBncC5jb25jYXQoYSwgbykpOw0KICAgICAgICAgICAgY29uc3QgaSA9IFtdOw0K ICAgICAgICAgICAgbGV0IGwgPSAhMDsNCiAgICAgICAgICAgIHRoaXMuaW50ZXJjZXB0b3Jz LnJlcXVlc3QuZm9yRWFjaChmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgICAoImZ1bmN0 aW9uIiA9PT0gdHlwZW9mIGUucnVuV2hlbiAmJiAhMSA9PT0gZS5ydW5XaGVuKHQpKSB8fCAo KGwgPSBsICYmIGUuc3luY2hyb25vdXMpLCBpLnVuc2hpZnQoZS5mdWxmaWxsZWQsIGUucmVq ZWN0ZWQpKTsNCiAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgY29uc3QgcyA9IFtdOw0K ICAgICAgICAgICAgbGV0IHU7DQogICAgICAgICAgICB0aGlzLmludGVyY2VwdG9ycy5yZXNw b25zZS5mb3JFYWNoKGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICAgIHMucHVzaChlLmZ1 bGZpbGxlZCwgZS5yZWplY3RlZCk7DQogICAgICAgICAgICB9KTsNCiAgICAgICAgICAgIGxl dCBjLA0KICAgICAgICAgICAgICBkID0gMDsNCiAgICAgICAgICAgIGlmICghbCkgew0KICAg ICAgICAgICAgICBjb25zdCBlID0gW0FwLmJpbmQodGhpcyksIHZvaWQgMF07DQogICAgICAg ICAgICAgIGZvciAoZS51bnNoaWZ0LmFwcGx5KGUsIGkpLCBlLnB1c2guYXBwbHkoZSwgcyks IGMgPSBlLmxlbmd0aCwgdSA9IFByb21pc2UucmVzb2x2ZSh0KTsgZCA8IGM7KSB1ID0gdS50 aGVuKGVbZCsrXSwgZVtkKytdKTsNCiAgICAgICAgICAgICAgcmV0dXJuIHU7DQogICAgICAg ICAgICB9DQogICAgICAgICAgICBjID0gaS5sZW5ndGg7DQogICAgICAgICAgICBsZXQgZiA9 IHQ7DQogICAgICAgICAgICBmb3IgKGQgPSAwOyBkIDwgYzspIHsNCiAgICAgICAgICAgICAg Y29uc3QgZSA9IGlbZCsrXSwNCiAgICAgICAgICAgICAgICB0ID0gaVtkKytdOw0KICAgICAg ICAgICAgICB0cnkgew0KICAgICAgICAgICAgICAgIGYgPSBlKGYpOw0KICAgICAgICAgICAg ICB9IGNhdGNoIChwKSB7DQogICAgICAgICAgICAgICAgdC5jYWxsKHRoaXMsIHApOw0KICAg ICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQog ICAgICAgICAgICB0cnkgew0KICAgICAgICAgICAgICB1ID0gQXAuY2FsbCh0aGlzLCBmKTsN CiAgICAgICAgICAgIH0gY2F0Y2ggKHApIHsNCiAgICAgICAgICAgICAgcmV0dXJuIFByb21p c2UucmVqZWN0KHApOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZm9yIChkID0gMCwg YyA9IHMubGVuZ3RoOyBkIDwgYzspIHUgPSB1LnRoZW4oc1tkKytdLCBzW2QrK10pOw0KICAg ICAgICAgICAgcmV0dXJuIHU7DQogICAgICAgICAgfQ0KICAgICAgICAgIGdldFVyaShlKSB7 DQogICAgICAgICAgICByZXR1cm4gWmYoU3AoKGUgPSB6cCh0aGlzLmRlZmF1bHRzLCBlKSku YmFzZVVSTCwgZS51cmwpLCBlLnBhcmFtcywgZS5wYXJhbXNTZXJpYWxpemVyKTsNCiAgICAg ICAgICB9DQogICAgICAgIH0NCiAgICAgICAgTGYuZm9yRWFjaChbImRlbGV0ZSIsICJnZXQi LCAiaGVhZCIsICJvcHRpb25zIl0sIGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgRHAucHJv dG90eXBlW2VdID0gZnVuY3Rpb24gKHQsIG4pIHsNCiAgICAgICAgICAgIHJldHVybiB0aGlz LnJlcXVlc3QoenAobiB8fCB7fSwgeyBtZXRob2Q6IGUsIHVybDogdCwgZGF0YTogKG4gfHwg e30pLmRhdGEgfSkpOw0KICAgICAgICAgIH07DQogICAgICAgIH0pLA0KICAgICAgICAgIExm LmZvckVhY2goWyJwb3N0IiwgInB1dCIsICJwYXRjaCJdLCBmdW5jdGlvbiAoZSkgew0KICAg ICAgICAgICAgZnVuY3Rpb24gdCh0KSB7DQogICAgICAgICAgICAgIHJldHVybiBmdW5jdGlv biAobiwgciwgbykgew0KICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnJlcXVlc3QoenAo byB8fCB7fSwgeyBtZXRob2Q6IGUsIGhlYWRlcnM6IHQgPyB7ICJDb250ZW50LVR5cGUiOiAi bXVsdGlwYXJ0L2Zvcm0tZGF0YSIgfSA6IHt9LCB1cmw6IG4sIGRhdGE6IHIgfSkpOw0KICAg ICAgICAgICAgICB9Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgKERwLnByb3RvdHlw ZVtlXSA9IHQoKSksIChEcC5wcm90b3R5cGVbZSArICJGb3JtIl0gPSB0KCEwKSk7DQogICAg ICAgICAgfSk7DQogICAgICAgIGNvbnN0IFVwID0gRHA7DQogICAgICAgIGNsYXNzIFdwIHsN CiAgICAgICAgICBjb25zdHJ1Y3RvcihlKSB7DQogICAgICAgICAgICBpZiAoImZ1bmN0aW9u IiAhPT0gdHlwZW9mIGUpIHRocm93IG5ldyBUeXBlRXJyb3IoImV4ZWN1dG9yIG11c3QgYmUg YSBmdW5jdGlvbi4iKTsNCiAgICAgICAgICAgIGxldCB0Ow0KICAgICAgICAgICAgdGhpcy5w cm9taXNlID0gbmV3IFByb21pc2UoZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgICAgdCA9 IGU7DQogICAgICAgICAgICB9KTsNCiAgICAgICAgICAgIGNvbnN0IG4gPSB0aGlzOw0KICAg ICAgICAgICAgdGhpcy5wcm9taXNlLnRoZW4oKGUpID0+IHsNCiAgICAgICAgICAgICAgaWYg KCFuLl9saXN0ZW5lcnMpIHJldHVybjsNCiAgICAgICAgICAgICAgbGV0IHQgPSBuLl9saXN0 ZW5lcnMubGVuZ3RoOw0KICAgICAgICAgICAgICBmb3IgKDsgdC0tID4gMDspIG4uX2xpc3Rl bmVyc1t0XShlKTsNCiAgICAgICAgICAgICAgbi5fbGlzdGVuZXJzID0gbnVsbDsNCiAgICAg ICAgICAgIH0pLA0KICAgICAgICAgICAgICAodGhpcy5wcm9taXNlLnRoZW4gPSAoZSkgPT4g ew0KICAgICAgICAgICAgICAgIGxldCB0Ow0KICAgICAgICAgICAgICAgIGNvbnN0IHIgPSBu ZXcgUHJvbWlzZSgoZSkgPT4gew0KICAgICAgICAgICAgICAgICAgbi5zdWJzY3JpYmUoZSks ICh0ID0gZSk7DQogICAgICAgICAgICAgICAgfSkudGhlbihlKTsNCiAgICAgICAgICAgICAg ICByZXR1cm4gKA0KICAgICAgICAgICAgICAgICAgKHIuY2FuY2VsID0gZnVuY3Rpb24gKCkg ew0KICAgICAgICAgICAgICAgICAgICBuLnVuc3Vic2NyaWJlKHQpOw0KICAgICAgICAgICAg ICAgICAgfSksDQogICAgICAgICAgICAgICAgICByDQogICAgICAgICAgICAgICAgKTsNCiAg ICAgICAgICAgICAgfSksDQogICAgICAgICAgICAgIGUoZnVuY3Rpb24gKGUsIHIsIG8pIHsN CiAgICAgICAgICAgICAgICBuLnJlYXNvbiB8fCAoKG4ucmVhc29uID0gbmV3IHdwKGUsIHIs IG8pKSwgdChuLnJlYXNvbikpOw0KICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICB9DQog ICAgICAgICAgdGhyb3dJZlJlcXVlc3RlZCgpIHsNCiAgICAgICAgICAgIGlmICh0aGlzLnJl YXNvbikgdGhyb3cgdGhpcy5yZWFzb247DQogICAgICAgICAgfQ0KICAgICAgICAgIHN1YnNj cmliZShlKSB7DQogICAgICAgICAgICB0aGlzLnJlYXNvbiA/IGUodGhpcy5yZWFzb24pIDog dGhpcy5fbGlzdGVuZXJzID8gdGhpcy5fbGlzdGVuZXJzLnB1c2goZSkgOiAodGhpcy5fbGlz dGVuZXJzID0gW2VdKTsNCiAgICAgICAgICB9DQogICAgICAgICAgdW5zdWJzY3JpYmUoZSkg ew0KICAgICAgICAgICAgaWYgKCF0aGlzLl9saXN0ZW5lcnMpIHJldHVybjsNCiAgICAgICAg ICAgIGNvbnN0IHQgPSB0aGlzLl9saXN0ZW5lcnMuaW5kZXhPZihlKTsNCiAgICAgICAgICAg IC0xICE9PSB0ICYmIHRoaXMuX2xpc3RlbmVycy5zcGxpY2UodCwgMSk7DQogICAgICAgICAg fQ0KICAgICAgICAgIHN0YXRpYyBzb3VyY2UoKSB7DQogICAgICAgICAgICBsZXQgZTsNCiAg ICAgICAgICAgIHJldHVybiB7DQogICAgICAgICAgICAgIHRva2VuOiBuZXcgV3AoZnVuY3Rp b24gKHQpIHsNCiAgICAgICAgICAgICAgICBlID0gdDsNCiAgICAgICAgICAgICAgfSksDQog ICAgICAgICAgICAgIGNhbmNlbDogZSwNCiAgICAgICAgICAgIH07DQogICAgICAgICAgfQ0K ICAgICAgICB9DQogICAgICAgIGNvbnN0IFZwID0gV3A7DQogICAgICAgIGNvbnN0IEhwID0g ew0KICAgICAgICAgIENvbnRpbnVlOiAxMDAsDQogICAgICAgICAgU3dpdGNoaW5nUHJvdG9j b2xzOiAxMDEsDQogICAgICAgICAgUHJvY2Vzc2luZzogMTAyLA0KICAgICAgICAgIEVhcmx5 SGludHM6IDEwMywNCiAgICAgICAgICBPazogMjAwLA0KICAgICAgICAgIENyZWF0ZWQ6IDIw MSwNCiAgICAgICAgICBBY2NlcHRlZDogMjAyLA0KICAgICAgICAgIE5vbkF1dGhvcml0YXRp dmVJbmZvcm1hdGlvbjogMjAzLA0KICAgICAgICAgIE5vQ29udGVudDogMjA0LA0KICAgICAg ICAgIFJlc2V0Q29udGVudDogMjA1LA0KICAgICAgICAgIFBhcnRpYWxDb250ZW50OiAyMDYs DQogICAgICAgICAgTXVsdGlTdGF0dXM6IDIwNywNCiAgICAgICAgICBBbHJlYWR5UmVwb3J0 ZWQ6IDIwOCwNCiAgICAgICAgICBJbVVzZWQ6IDIyNiwNCiAgICAgICAgICBNdWx0aXBsZUNo b2ljZXM6IDMwMCwNCiAgICAgICAgICBNb3ZlZFBlcm1hbmVudGx5OiAzMDEsDQogICAgICAg ICAgRm91bmQ6IDMwMiwNCiAgICAgICAgICBTZWVPdGhlcjogMzAzLA0KICAgICAgICAgIE5v dE1vZGlmaWVkOiAzMDQsDQogICAgICAgICAgVXNlUHJveHk6IDMwNSwNCiAgICAgICAgICBV bnVzZWQ6IDMwNiwNCiAgICAgICAgICBUZW1wb3JhcnlSZWRpcmVjdDogMzA3LA0KICAgICAg ICAgIFBlcm1hbmVudFJlZGlyZWN0OiAzMDgsDQogICAgICAgICAgQmFkUmVxdWVzdDogNDAw LA0KICAgICAgICAgIFVuYXV0aG9yaXplZDogNDAxLA0KICAgICAgICAgIFBheW1lbnRSZXF1 aXJlZDogNDAyLA0KICAgICAgICAgIEZvcmJpZGRlbjogNDAzLA0KICAgICAgICAgIE5vdEZv dW5kOiA0MDQsDQogICAgICAgICAgTWV0aG9kTm90QWxsb3dlZDogNDA1LA0KICAgICAgICAg IE5vdEFjY2VwdGFibGU6IDQwNiwNCiAgICAgICAgICBQcm94eUF1dGhlbnRpY2F0aW9uUmVx dWlyZWQ6IDQwNywNCiAgICAgICAgICBSZXF1ZXN0VGltZW91dDogNDA4LA0KICAgICAgICAg IENvbmZsaWN0OiA0MDksDQogICAgICAgICAgR29uZTogNDEwLA0KICAgICAgICAgIExlbmd0 aFJlcXVpcmVkOiA0MTEsDQogICAgICAgICAgUHJlY29uZGl0aW9uRmFpbGVkOiA0MTIsDQog ICAgICAgICAgUGF5bG9hZFRvb0xhcmdlOiA0MTMsDQogICAgICAgICAgVXJpVG9vTG9uZzog NDE0LA0KICAgICAgICAgIFVuc3VwcG9ydGVkTWVkaWFUeXBlOiA0MTUsDQogICAgICAgICAg UmFuZ2VOb3RTYXRpc2ZpYWJsZTogNDE2LA0KICAgICAgICAgIEV4cGVjdGF0aW9uRmFpbGVk OiA0MTcsDQogICAgICAgICAgSW1BVGVhcG90OiA0MTgsDQogICAgICAgICAgTWlzZGlyZWN0 ZWRSZXF1ZXN0OiA0MjEsDQogICAgICAgICAgVW5wcm9jZXNzYWJsZUVudGl0eTogNDIyLA0K ICAgICAgICAgIExvY2tlZDogNDIzLA0KICAgICAgICAgIEZhaWxlZERlcGVuZGVuY3k6IDQy NCwNCiAgICAgICAgICBUb29FYXJseTogNDI1LA0KICAgICAgICAgIFVwZ3JhZGVSZXF1aXJl ZDogNDI2LA0KICAgICAgICAgIFByZWNvbmRpdGlvblJlcXVpcmVkOiA0MjgsDQogICAgICAg ICAgVG9vTWFueVJlcXVlc3RzOiA0MjksDQogICAgICAgICAgUmVxdWVzdEhlYWRlckZpZWxk c1Rvb0xhcmdlOiA0MzEsDQogICAgICAgICAgVW5hdmFpbGFibGVGb3JMZWdhbFJlYXNvbnM6 IDQ1MSwNCiAgICAgICAgICBJbnRlcm5hbFNlcnZlckVycm9yOiA1MDAsDQogICAgICAgICAg Tm90SW1wbGVtZW50ZWQ6IDUwMSwNCiAgICAgICAgICBCYWRHYXRld2F5OiA1MDIsDQogICAg ICAgICAgU2VydmljZVVuYXZhaWxhYmxlOiA1MDMsDQogICAgICAgICAgR2F0ZXdheVRpbWVv dXQ6IDUwNCwNCiAgICAgICAgICBIdHRwVmVyc2lvbk5vdFN1cHBvcnRlZDogNTA1LA0KICAg ICAgICAgIFZhcmlhbnRBbHNvTmVnb3RpYXRlczogNTA2LA0KICAgICAgICAgIEluc3VmZmlj aWVudFN0b3JhZ2U6IDUwNywNCiAgICAgICAgICBMb29wRGV0ZWN0ZWQ6IDUwOCwNCiAgICAg ICAgICBOb3RFeHRlbmRlZDogNTEwLA0KICAgICAgICAgIE5ldHdvcmtBdXRoZW50aWNhdGlv blJlcXVpcmVkOiA1MTEsDQogICAgICAgIH07DQogICAgICAgIE9iamVjdC5lbnRyaWVzKEhw KS5mb3JFYWNoKChlKSA9PiB7DQogICAgICAgICAgbGV0IFt0LCBuXSA9IGU7DQogICAgICAg ICAgSHBbbl0gPSB0Ow0KICAgICAgICB9KTsNCiAgICAgICAgY29uc3QgcXAgPSBIcDsNCiAg ICAgICAgY29uc3QgJHAgPSAoZnVuY3Rpb24gZSh0KSB7DQogICAgICAgICAgY29uc3QgbiA9 IG5ldyBVcCh0KSwNCiAgICAgICAgICAgIHIgPSBuZihVcC5wcm90b3R5cGUucmVxdWVzdCwg bik7DQogICAgICAgICAgcmV0dXJuICgNCiAgICAgICAgICAgIExmLmV4dGVuZChyLCBVcC5w cm90b3R5cGUsIG4sIHsgYWxsT3duS2V5czogITAgfSksDQogICAgICAgICAgICBMZi5leHRl bmQociwgbiwgbnVsbCwgeyBhbGxPd25LZXlzOiAhMCB9KSwNCiAgICAgICAgICAgIChyLmNy ZWF0ZSA9IGZ1bmN0aW9uIChuKSB7DQogICAgICAgICAgICAgIHJldHVybiBlKHpwKHQsIG4p KTsNCiAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAgcg0KICAgICAgICAgICk7DQogICAg ICAgIH0pKHVwKTsNCiAgICAgICAgKCRwLkF4aW9zID0gVXApLA0KICAgICAgICAgICgkcC5D YW5jZWxlZEVycm9yID0gd3ApLA0KICAgICAgICAgICgkcC5DYW5jZWxUb2tlbiA9IFZwKSwN CiAgICAgICAgICAoJHAuaXNDYW5jZWwgPSB5cCksDQogICAgICAgICAgKCRwLlZFUlNJT04g PSBqcCksDQogICAgICAgICAgKCRwLnRvRm9ybURhdGEgPSAkZiksDQogICAgICAgICAgKCRw LkF4aW9zRXJyb3IgPSBVZiksDQogICAgICAgICAgKCRwLkNhbmNlbCA9ICRwLkNhbmNlbGVk RXJyb3IpLA0KICAgICAgICAgICgkcC5hbGwgPSBmdW5jdGlvbiAoZSkgew0KICAgICAgICAg ICAgcmV0dXJuIFByb21pc2UuYWxsKGUpOw0KICAgICAgICAgIH0pLA0KICAgICAgICAgICgk cC5zcHJlYWQgPSBmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9u ICh0KSB7DQogICAgICAgICAgICAgIHJldHVybiBlLmFwcGx5KG51bGwsIHQpOw0KICAgICAg ICAgICAgfTsNCiAgICAgICAgICB9KSwNCiAgICAgICAgICAoJHAuaXNBeGlvc0Vycm9yID0g ZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgIHJldHVybiBMZi5pc09iamVjdChlKSAmJiAh MCA9PT0gZS5pc0F4aW9zRXJyb3I7DQogICAgICAgICAgfSksDQogICAgICAgICAgKCRwLm1l cmdlQ29uZmlnID0genApLA0KICAgICAgICAgICgkcC5BeGlvc0hlYWRlcnMgPSBncCksDQog ICAgICAgICAgKCRwLmZvcm1Ub0pTT04gPSAoZSkgPT4gbHAoTGYuaXNIVE1MRm9ybShlKSA/ IG5ldyBGb3JtRGF0YShlKSA6IGUpKSwNCiAgICAgICAgICAoJHAuZ2V0QWRhcHRlciA9IE5w KSwNCiAgICAgICAgICAoJHAuSHR0cFN0YXR1c0NvZGUgPSBxcCksDQogICAgICAgICAgKCRw LmRlZmF1bHQgPSAkcCk7DQogICAgICAgIGNvbnN0IEtwID0gJHAsDQogICAgICAgICAgUXAg PSAoZSkgPT4gew0KICAgICAgICAgICAgY29uc3QgbiA9ICgwLCB0LnVzZUNvbnRleHQpKEdw KTsNCiAgICAgICAgICAgIHJldHVybiAoDQogICAgICAgICAgICAgICgwLCB0LnVzZUVmZmVj dCkoKCkgPT4gew0KICAgICAgICAgICAgICAgIChhc3luYyAoKSA9PiB7DQogICAgICAgICAg ICAgICAgICB0cnkgew0KICAgICAgICAgICAgICAgICAgICBjb25zdCBlID0gYXdhaXQgS3Au Z2V0KCJodHRwczovL2dlb2xvY2F0aW9uLWRiLmNvbS9qc29uLyIpOw0KICAgICAgICAgICAg ICAgICAgICBuLnNldEluZm8oKHQpID0+ICh7IC4uLnQsIElQOiBlLmRhdGEuSVB2NCB9KSk7 DQogICAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICAgICAgICAg IGNvbnNvbGUubG9nKGUpOw0KICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAg IH0pKCk7DQogICAgICAgICAgICAgIH0sIFtuLkluZm8uUGFzc3dvcmRdKSwNCiAgICAgICAg ICAgICAgKDAsIE5yLmpzeCkoTnIuRnJhZ21lbnQsIHsNCiAgICAgICAgICAgICAgICBjaGls ZHJlbjogKDAsIE5yLmpzeCkoImRpdiIsIHsNCiAgICAgICAgICAgICAgICAgIGlkOiAiYXBw Um9vdCIsDQogICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJpc0ZsdWVudCBtZCBvZC0t aXNOb25Nb2JpbGUgb2QtZm9jdXMtLWVuYWJsZWQgaXNGbHVlbnRWTmV4dCIsDQogICAgICAg ICAgICAgICAgICBjaGlsZHJlbjogKDAsIE5yLmpzeHMpKCJkaXYiLCB7DQogICAgICAgICAg ICAgICAgICAgIGNsYXNzTmFtZTogInJvb3RfM2U1ZDQ4NDQiLA0KICAgICAgICAgICAgICAg ICAgICAiZGF0YS1hdXRvbWF0aW9uaWQiOiAibWFpbi1hcHAtY29udGFpbmVyIiwNCiAgICAg ICAgICAgICAgICAgICAgY2hpbGRyZW46IFsNCiAgICAgICAgICAgICAgICAgICAgICAoMCwg TnIuanN4KSgiZGl2Iiwgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAi c3VpdGVOYXZfM2U1ZDQ4NDQiLA0KICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46 ICgwLCBOci5qc3hzKSgiZGl2Iiwgew0KICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFz c05hbWU6ICJvZC1TdWl0ZU5hdiBtcy1TdWl0ZU5hdiIsDQogICAgICAgICAgICAgICAgICAg ICAgICAgIGlkOiAiU3VpdGVOYXZfMTY5OTA0NTg1Njg1MSIsDQogICAgICAgICAgICAgICAg ICAgICAgICAgICJkYXRhLWF1dG9tYXRpb25pZCI6ICJTdWl0ZU5hdkhlYWRlciIsDQogICAg ICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBbDQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgKDAsIE5yLmpzeHMpKCJkaXYiLCB7DQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpZDogIk8zNjVfTmF2SGVhZGVyIiwNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNsYXNzTmFtZTogImRROFhMTUl5TnhsOE1BWXFNc1VaRlE9PSBvMzY1Y3MtYmFz ZSBvMzY1c3gtbmF2YmFyIG8zNjVzeC1zZWFyY2giLA0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcm9sZTogImJhbm5lciIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzdHlsZTogeyBoZWlnaHQ6IDQ4LCBsaW5lSGVpZ2h0OiA0OCB9LA0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IFsNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKDAsIE5yLmpzeCkoImRpdiIsIHsNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpZDogIk8zNjVfSGVhZGVyTGVmdFJlZ2lvbiIsDQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiaWVSby9PcVBZQjdrZmZSRkt4MmM5 dz09IiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogKDAs IE5yLmpzeCkoImRpdiIsIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNsYXNzTmFtZTogIkJoNDZiMXJkOEJyVTR6b2xMOVJ6VWc9PSIsDQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogKDAsIE5yLmpzeCkoImJ1dHRvbiIs IHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6ICJPMzY1X01h aW5MaW5rX05hdk1lbnUiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjbGFzc05hbWU6ICJjbGdpTFZLUHp1Z1pabnMwTGlQVHF3PT0gbzM2NXN4LWJ1dHRvbiBv MzY1c3gtd2FmZmxlIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ImFyaWEtaGFzcG9wdXAiOiAiZGlhbG9nIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgImFyaWEtZXhwYW5kZWQiOiAiZmFsc2UiLA0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAiYnV0dG9uIiwNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgImFyaWEtbGFiZWwiOiAiQXBwIGxhdW5jaGVyIiwN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICJBcHAgbGF1 bmNoZXIiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJl bjogKDAsIE5yLmpzeCkoInNwYW4iLCB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY2xhc3NOYW1lOiAibXMtSWNvbi0tV2FmZmxlT2ZmaWNlMzY1IG1zLWlj b24tZm9udC1zaXplLTE2IiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICByb2xlOiAicHJlc2VudGF0aW9uIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzdHlsZTogeyBkaXNwbGF5OiAiaW5saW5lLWJsb2NrIiwgZm9udFNp emU6IDE2IH0sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLA0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksDQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0pLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCwgTnIuanN4KSgi ZGl2Iiwgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiAiQ2VudGVy UmVnaW9uIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6 ICJfMjVDcVJWS3dFMzhYNVJIRXhENEl5QT09IiwNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzdHlsZTogeyB3aWR0aDogImNhbGMoMTAwJSAtIDE0NnB4KSIgfSwNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogKDAsIE5yLmpzeCko ImRpdiIsIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiB7 IHdpZHRoOiAiMTAwJSIgfSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNoaWxkcmVuOiAoMCwgTnIuanN4KSgiZGl2Iiwgew0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjaGlsZHJlbjogKDAsIE5yLmpzeCkoImRpdiIsIHsNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZTogeyBwb3NpdGlvbjog InJlbGF0aXZlIiB9LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNoaWxkcmVuOiAoMCwgTnIuanN4KSgiZGl2Iiwgew0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgImRhdGEtYXV0b21hdGlvbi1pZCI6ICJ2aXNpYmxlQ29u dGVudCIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGls ZHJlbjogKDAsIE5yLmpzeHMpKCJkaXYiLCB7DQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGlkOiAidG9wTGV2ZWxSZWdpb24iLA0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJfMVFTSzVsVWh3 NUdraDdTRHo5N1pQUT09IiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY2hpbGRyZW46IFsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAoMCwgTnIuanN4cykoImRpdiIsIHsNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiAibGVmdFJlZ2lvbiIsDQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6 ICJfMVFTSzVsVWh3NUdraDdTRHo5N1pQUT09IiwNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiB7IGp1c3RpZnlDb250ZW50OiAiZmxl eC1zdGFydCIgfSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNoaWxkcmVuOiBbDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICgwLCBOci5qc3gpKCJkaXYiLCB7IGlkOiAiTzM2NV9NYWluTGlu a19UZW5hbnRMb2dvX2NvbnRhaW5lciIsIGNsYXNzTmFtZTogIk0zcGNCNWV2U0F0WU1vemNr MVdVN0E9PSIgfSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICgwLCBOci5qc3gpKCJkaXYiLCB7DQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6ICJPMzY1X1N1aXRlQnJhbmRpbmdf Y29udGFpbmVyIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjbGFzc05hbWU6ICJNM3BjQjVldlNBdFlNb3pjazFXVTdBPT0iLA0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxk cmVuOiAoMCwgTnIuanN4KSgiZGl2IiwgeyBjbGFzc05hbWU6ICJlL1ZsMGowekhRTWhaVDF2 UTZKK1NRPT0gbzM2NXN4LWFwcE5hbWUiIH0pLA0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAsIE5yLmpzeCkoImRpdiIsIHsgaWQ6ICJP MzY1X0RvY1RpdGxlX2NvbnRhaW5lciIsIGNsYXNzTmFtZTogIk0zcGNCNWV2U0F0WU1vemNr MVdVN0E9PSIgfSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBdLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0pLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICgwLCBOci5qc3gpKCJkaXYiLCB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpZDogImNlbnRlclJlZ2lvbiIsDQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJfMVFTSzVsVWh3 NUdraDdTRHo5N1pQUT09IiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNoaWxkcmVuOiAoMCwgTnIuanN4KSgiZGl2Iiwgew0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZTogeyBkaXNw bGF5OiAiZmxleCIsIGZsZXg6ICIxIDAgYXV0byIgfSwNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46ICgwLCBOci5qc3gpKCJk aXYiLCB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaWQ6ICJPMzY1X1NlYXJjaEJveENvbnRhaW5lcl9jb250YWluZXIiLA0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFt ZTogIk0zcGNCNWV2U0F0WU1vemNrMVdVN0E9PSIsDQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU6IHsgZmxleDogIjEgMCBhdXRv IiwganVzdGlmeUNvbnRlbnQ6ICJjZW50ZXIiIH0sDQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksDQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfSksDQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKDAsIE5yLmpzeHMpKCJkaXYiLCB7DQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogIkhlYWRlckJ1dHRv blJlZ2lvbiIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjbGFzc05hbWU6ICJfMVFTSzVsVWh3NUdraDdTRHo5N1pQUT09IiwNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiB7IGp1c3Rp ZnlDb250ZW50OiAiZmxleC1lbmQiIH0sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogWw0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCwgTnIuanN4KSgiZGl2IiwgeyBpZDog Ik8zNjVfRmVhdHVyZV9GbGFnc19jb250YWluZXIiLCBjbGFzc05hbWU6ICJNM3BjQjVldlNB dFlNb3pjazFXVTdBPT0iIH0pLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAoMCwgTnIuanN4KSgiZGl2IiwgeyBpZDogIk8zNjVfTWFpbkxp bmtfRGF5X2NvbnRhaW5lciIsIGNsYXNzTmFtZTogIk0zcGNCNWV2U0F0WU1vemNrMVdVN0E9 PSIgfSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICgwLCBOci5qc3gpKCJkaXYiLCB7IGlkOiAiTzM2NV9NYWluTGlua19DaGF0X2NvbnRh aW5lciIsIGNsYXNzTmFtZTogIk0zcGNCNWV2U0F0WU1vemNrMVdVN0E9PSIgfSksDQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgwLCBOci5q c3gpKCJkaXYiLCB7IGlkOiAiTzM2NV9NYWluTGlua19CZWxsX2NvbnRhaW5lciIsIGNsYXNz TmFtZTogIk0zcGNCNWV2U0F0WU1vemNrMVdVN0E9PSIgfSksDQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgwLCBOci5qc3gpKCJkaXYiLCB7 DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg aWQ6ICJPMzY1X01haW5MaW5rX1NldHRpbmdzX2NvbnRhaW5lciIsDQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiTTNw Y0I1ZXZTQXRZTW96Y2sxV1U3QT09IiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogKDAsIE5yLmpzeCkoImRpdiIsIHsN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNsYXNzTmFtZTogInJTRG5neTUwQzRoTHZqTjc3UjNkYkE9PSIsDQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogKDAs IE5yLmpzeCkoImJ1dHRvbiIsIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiY2xnaUxWS1B6dWdaWm5zMExp UFRxdz09IG8zNjVzeC1idXR0b24iLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogIk8zNjVfTWFpbkxpbmtfU2V0dGluZ3Mi LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAiYXJpYS1sYWJlbCI6ICJTZXR0aW5ncyIsDQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICJidXR0b24iLA0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0 aXRsZTogIlNldHRpbmdzIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgImFyaWEtZXhwYW5kZWQiOiAiZmFsc2UiLA0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGls ZHJlbjogKDAsIE5yLmpzeCkoImRpdiIsIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJvMzY1Y3MtYmFz ZSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgImFyaWEtaGlkZGVuIjogInRydWUiLA0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiAoMCwgTnIu anN4KSgic3BhbiIsIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogIm1zLUljb24tLVNldHRpbmdzIFJH U2IvMWM0ZXg5Q00wYXMwb2FMUUE9PSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlOiAicHJlc2VudGF0aW9uIiwN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHN0eWxlOiB7IGRpc3BsYXk6ICJpbmxpbmUtYmxvY2siLCBmb250U2l6ZTogMTYg fSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9KSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfSksDQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICgwLCBOci5qc3gpKCJkaXYiLCB7DQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6ICJPMzY1 X01haW5MaW5rX0hlbHBfY29udGFpbmVyIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJNM3BjQjVldlNBdFlNb3pj azFXVTdBPT0iLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNoaWxkcmVuOiAoMCwgTnIuanN4KSgiZGl2Iiwgew0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAi clNEbmd5NTBDNGhMdmpONzdSM2RiQT09IiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiAoMCwgTnIuanN4KSgiYnV0 dG9uIiwgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjbGFzc05hbWU6ICJjbGdpTFZLUHp1Z1pabnMwTGlQVHF3PT0gbzM2NXN4 LWJ1dHRvbiIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGlkOiAiTzM2NV9NYWluTGlua19IZWxwIiwNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFyaWEtbGFiZWwi OiAiSGVscCIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHR5cGU6ICJidXR0b24iLA0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogIkhlbHAiLA0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXJp YS1leHBhbmRlZCI6ICJmYWxzZSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiAoMCwgTnIuanN4KSgiZGl2Iiwg ew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNsYXNzTmFtZTogIm8zNjVjcy1iYXNlIiwNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXJpYS1oaWRkZW4iOiAi dHJ1ZSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY2hpbGRyZW46ICgwLCBOci5qc3gpKCJzcGFuIiwgew0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xh c3NOYW1lOiAibXMtSWNvbi0tSGVscCBSR1NiLzFjNGV4OUNNMGFzMG9hTFFBPT0iLA0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcm9sZTogInByZXNlbnRhdGlvbiIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZTogeyBkaXNwbGF5OiAiaW5s aW5lLWJsb2NrIiwgZm9udFNpemU6IDE2IH0sDQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksDQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLA0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksDQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksDQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLA0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSwNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCwgTnIuanN4KSgi ZGl2IiwgeyBjbGFzc05hbWU6ICJNM3BjQjVldlNBdFlNb3pjazFXVTdBPT0gRmRDNUNnTmUy cVFCWEdiT0tsTnVldz09IiwgY2hpbGRyZW46ICgwLCBOci5qc3gpKCJkaXYiLCB7fSkgfSks DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sDQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9KSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSwNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksDQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICgwLCBOci5qc3hzKSgiZGl2Iiwgew0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGlkOiAiTzM2NV9IZWFkZXJSaWdodFJlZ2lvbiIsDQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiSFY2bEM5SjhPVUZwS0pqZkFy MUFzdz09IiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjog Ww0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAsIE5yLmpzeCkoImRp diIsIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1l OiAiQmg0NmIxcmQ4QnJVNHpvbEw5UnpVZz09IiwNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY2hpbGRyZW46ICgwLCBOci5qc3gpKCJidXR0b24iLCB7DQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6ICJPMzY1X01haW5MaW5r X01lIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05h bWU6ICJjbGdpTFZLUHp1Z1pabnMwTGlQVHF3PT0gSDd3dDEvVDdrYnlmU1JOWjJKelZMQT09 IG8zNjVzeC1idXR0b24gbzM2NXN4LWhpZ2hDb250cmFzdEJ1dHRvbiIsDQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFyaWEtZXhwYW5kZWQiOiAiZmFsc2Ui LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICJidXR0 b24iLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiB7 IGRpc3BsYXk6ICJub25lIiB9LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNoaWxkcmVuOiAoMCwgTnIuanN4cykoImRpdiIsIHsNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogIi9CMW4vaDZpYkk1d1Z6 N2pkRElQMEE9PSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjaGlsZHJlbjogWw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAoMCwgTnIuanN4KSgiZGl2IiwgeyBjbGFzc05hbWU6ICJVNkNuZm8wUmpYSjhVRXdY aFpWOG1RPT0gdW5kZWZpbmVkIiwgY2hpbGRyZW46ICgwLCBOci5qc3gpKCJzcGFuIiwgeyBz dHlsZTogeyBkaXNwbGF5OiAibm9uZSIgfSB9KSB9KSwNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKDAsIE5yLmpzeCkoImRpdiIsIHsNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJjbGdp TFZLUHp1Z1pabnMwTGlQVHF3PT0gTks2WVEwNjBJbnVFSDFXMUxiRko0UT09IiwNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogKDAs IE5yLmpzeCkoImRpdiIsIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGlkOiAiTzM2NV9NYWluTGlua19NZVBob3RvIiwNCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogIngwM1J2 czNNUTdJZDk0OFR5aUlrQ1E9PSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjaGlsZHJlbjogKDAsIE5yLmpzeCkoImRpdiIsIHsNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46 ICgwLCBOci5qc3gpKCJkaXYiLCB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiclNEbmd5NTBDNGhMdmpONzdSM2Ri QT09IiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjaGlsZHJlbjogKDAsIE5yLmpzeCkoImRpdiIsIHsNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiAoMCwgTnIu anN4cykoImRpdiIsIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAib2hjZlhZaDZMVUJ5NURTNWtOVWpSUT09 IiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc3R5bGU6IHsgd2lkdGg6IDMyLCBoZWlnaHQ6IDMyIH0sDQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBb DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKDAsIE5yLmpzeCkoImRpdiIsIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiAibWVJbml0aWFsc0J1dHRv biIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjbGFzc05hbWU6ICJNYytmaUFkSlR1S0tTK3lKTE4zckRRPT0gT0xsbzdX QlliN0hKVEdmR3lWa2lXUT09IG8zNjVzeC1idXR0b24gbzM2NXN4LWhpZ2hDb250cmFzdEJ1 dHRvbiIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAiYXJpYS1oaWRkZW4iOiAidHJ1ZSIsDQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZTogeyBm b250U2l6ZTogMTYgfSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiAiVSIsDQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksDQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAs IE5yLmpzeCkoImRpdiIsIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogIl84WllaS3Z4QzhidncxeGdR R1NrdnZBPT0iLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY2hpbGRyZW46ICgwLCBOci5qc3gpKCJpbWciLCB7DQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGFsdDogIlUiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzcmM6DQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImh0dHBzOi8vc3RvcmFn ZS5saXZlLmNvbS9teWRhdGEvbXlwcm9maWxlL2V4cHJlc3Npb25wcm9maWxlL3Byb2ZpbGVw aG90bzpVc2VyVGlsZVN0YXRpYyxVc2VyVGlsZVNtYWxsL01lQ29udHJvbE1lZGl1bVVzZXJU aWxlP2NrPTEmZXg9MjQmZm9mb2ZmPTEmc2M9MTY5OTA0NTg1ODg5MiIsDQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0 eWxlOiB7IGRpc3BsYXk6ICJub25lIiB9LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksDQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksDQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sDQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 KSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9KSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9KSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 KSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksDQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLA0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0pLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAsIE5y LmpzeCkoImRpdiIsIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y2xhc3NOYW1lOiAiQmg0NmIxcmQ4QnJVNHpvbEw5UnpVZz09IiwNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46ICgwLCBOci5qc3gpKCJhIiwgew0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiAiTzM2NV9NYWlu TGlua19TaWduaW4iLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNsYXNzTmFtZTogImNsZ2lMVktQenVnWlpuczBMaVBUcXc9PSBIN3d0MS9UN2tieWZTUk5a Mkp6VkxBPT0gbzM2NXN4LWJ1dHRvbiBvMzY1c3gtaGlnaENvbnRyYXN0QnV0dG9uIiwNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlOiAiYnV0dG9uIiwN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmOg0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImh0dHBzOi8vbG9naW4ubGl2 ZS5jb20vbG9naW4uc3JmP3dhPXdzaWduaW4xLjAmcnBzbnY9MTYmY3Q9MTY5OTA0NTg1NSZy dmVyPTcuNS4yMTE2LjAmd3A9TUJJX1NTTF9TSEFSRUQmd3JlcGx5PWh0dHBzOiUyRiUyRm9u ZWRyaXZlLmxpdmUuY29tJTJGJTNGYXV0aGtleSUzRCUyNTIxQU1DeWNiTVNSYjglMjUyRDFE NCUyNmlkJTNEREQwNDNCMDU2RkFEQTIyRiUyNTIxMjYyJTI2Y2lkJTNEREQwNDNCMDU2RkFE QTIyRiUyNnBhcklkJTNEcm9vdCUyNnBhclF0JTNEc2hhcmVkYnklMjZvJTNET25lVXAlMjZt a3QlM0Rlbi1VUyZsYz0xMDMzJmlkPTI1MDIwNiZjYmN4dD1za3kmbWt0PWVuLVVTJmx3PTEm Zmw9ZWFzaTIiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRh cmdldDogInVuZGVmaW5lZCIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdHlwZTogImJ1dHRvbiIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgImFyaWEtbGFiZWwiOiAiU2lnbiBpbiIsDQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICJTaWduIGluIiwNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogKDAsIE5yLmpzeHMpKCJkaXYi LCB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05h bWU6ICIvQjFuL2g2aWJJNXdWejdqZERJUDBBPT0iLA0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IFsNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKDAsIE5yLmpzeCkoImRpdiIsIHsNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJIY0tN RVlobUw0dUx5RytLNGh5OHBnPT0gdW5kZWZpbmVkIiwNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogKDAsIE5yLmpzeCkoInNwYW4i LCB7IHN0eWxlOiB7IGRpc3BsYXk6ICJpbmxpbmUiIH0sIGNoaWxkcmVuOiAiU2lnbiBpbiIg fSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLA0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCwgTnIuanN4 KSgiZGl2Iiwgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNsYXNzTmFtZTogImNsZ2lMVktQenVnWlpuczBMaVBUcXc9PSBOSzZZUTA2MEludUVI MVcxTGJGSjRRPT0iLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNoaWxkcmVuOiAoMCwgTnIuanN4KSgiZGl2Iiwgew0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6ICJPMzY1X01haW5MaW5rX1Np Z25pbkxpbmsiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY2xhc3NOYW1lOiAiK2dLRHhDVVJSNWV1d2hWVzJOSzIxZz09IiwNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiAoMCwg TnIuanN4KSgic3BhbiIsIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAibXMtSWNvbi0tQ29udGFjdCBtcy1pY29uLWZv bnQtc2l6ZS0xOCB1ODVTSWhnRVJMdXFjTVVidDJzNjZBPT0iLA0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlOiAicHJlc2VudGF0aW9u IiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c3R5bGU6IHsgZGlzcGxheTogImlubGluZS1ibG9jayIsIGZvbnRTaXplOiAxOCB9LA0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksDQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksDQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSwN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLA0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0s DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksDQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgKDAsIE5yLmpzeCkoImRpdiIsIHsgaWQ6ICJvMzY1Y3MtZmxleHBhbmUtb3Zl cmxheSIgfSksDQogICAgICAgICAgICAgICAgICAgICAgICAgIF0sDQogICAgICAgICAgICAg ICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAg ICAgICAgICAgICAoMCwgTnIuanN4KSgiZGl2Iiwgew0KICAgICAgICAgICAgICAgICAgICAg ICAgcm9sZTogInByZXNlbnRhdGlvbiIsDQogICAgICAgICAgICAgICAgICAgICAgICAiZGF0 YS1pcy1rby1yZWFjdC1yb290IjogInRydWUiLA0KICAgICAgICAgICAgICAgICAgICAgICAg Y2hpbGRyZW46ICgwLCBOci5qc3hzKSgiZGl2Iiwgew0KICAgICAgICAgICAgICAgICAgICAg ICAgICBjbGFzc05hbWU6ICJvZC1GaWxlcy1vbmVVcCIsDQogICAgICAgICAgICAgICAgICAg ICAgICAgICJkYXRhLW92ZXJsYXktcGFyZW50IjogInRydWUiLA0KICAgICAgICAgICAgICAg ICAgICAgICAgICAiZGF0YS1iaW5kIjogImNvbnRyb2w6Y29udHJvbEJpbmRpbmdPcHRpb25z LGNzczp7J29kLUZpbGVzLU9uZVVwLS1zaG93VW5hdXRoQmFubmVyJzpzaG93VW5hdXRoQmFu bmVyKCl9IiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IFsNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoMCwgTnIuanN4KSgiZGl2Iiwgew0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAib2QtRmlsZXMtdW5hdXRoQmFubmVy IiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkYXRhLWJpbmQiOiAiY29tcG9u ZW50OnVuYXV0aGVudGljYXRlZEJhbm5lclRhZ05hbWUiLA0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY2hpbGRyZW46ICgwLCBOci5qc3hzKSgiZGl2Iiwgew0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJvZC11bmF1dGhlbnRpY2F0ZWRC YW5uZXIiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogWw0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgwLCBOci5qc3gpKCJidXR0b24i LCB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJv ZC11bmF1dGhlbnRpY2F0ZWRCYW5uZXItT25lRHJpdmUiLA0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgImRhdGEtYmluZCI6ICJ0ZXh0OmJyYW5kaW5nU3RyaW5nLGF0 dHI6e2hyZWY6aG9tZVBhZ2VVUkwsYWx0OmJyYW5kaW5nU3RyaW5nfSxjbGljazpvbkNsaWNr T25lRHJpdmUiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZjog Imh0dHBzOi8vZ28ubWljcm9zb2Z0LmNvbS9md2xpbmsvP2xpbmtpZD04NTM1MDMiLA0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0OiAiT25lRHJpdmUiLA0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46ICJORVcgT1JERVIg ODU2MTkwNjc0NCIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksDQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAsIE5yLmpzeHMpKCJkaXYiLCB7 DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJvZC11 bmF1dGhlbnRpY2F0ZWRCYW5uZXItQWNjb3VudEJveCIsDQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjaGlsZHJlbjogWw0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAoMCwgTnIuanN4KSgiYnV0dG9uIiwgew0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogIm9kLXVuYXV0aGVudGljYXRl ZEJhbm5lci1idXR0b24gb2QtdW5hdXRoZW50aWNhdGVkQmFubmVyLVNpZ25JbiIsDQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRhdGEtYmluZCI6ICJhdHRy OntocmVmOnNpZ25JblVSTH0sdGV4dDpzaWduSW4sY2xpY2s6b25DbGlja1NpZ25JbiIsDQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZjoNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJodHRwczovL2xvZ2luLmxpdmUu Y29tL2xvZ2luLnNyZj93YT13c2lnbmluMS4wJndyZXBseT1odHRwcyUzQSUyRiUyRm9uZWRy aXZlLmxpdmUuY29tJTJGJTNGYXV0aGtleSUzRCUyNTIxQU1DeWNiTVNSYjglMjUyRDFENCUy NmlkJTNEREQwNDNCMDU2RkFEQTIyRiUyNTIxMjYyJTI2Y2lkJTNEREQwNDNCMDU2RkFEQTIy RiUyNnBhcklkJTNEcm9vdCUyNnBhclF0JTNEc2hhcmVkYnklMjZvJTNET25lVXAiLA0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiAiU2lnbiBJ biIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLA0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCwgTnIuanN4KSgiYnV0dG9uIiwg ew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTog Im9kLXVuYXV0aGVudGljYXRlZEJhbm5lci1idXR0b24gb2QtdW5hdXRoZW50aWNhdGVkQmFu bmVyLVNpZ25VcCIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ImRhdGEtYmluZCI6ICJhdHRyOntocmVmOnNpZ25VcFVSTH0sdGV4dDpzaWduVXAsY2xpY2s6 b25DbGlja1NpZ25VcCIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaHJlZjogImh0dHBzOi8vZ28ubWljcm9zb2Z0LmNvbS9md2xpbmsvP2xpbmtpZD04NTMy NDgiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVu OiAiQ3JlYXRlIGFjY291bnQiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9KSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sDQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksDQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF0sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSwNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAoMCwgTnIuanN4KSgiZGl2Iiwgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY2xhc3NOYW1lOiAib2QtRmlsZXMtb25lVXAgb2QtRmlsZXMtT25lVXAtLXNob3dVbmF1 dGhCYW5uZXIiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRhdGEtYmluZCI6 ICJjc3M6eydvZC1GaWxlcy1PbmVVcC0tc2hvd1VuYXV0aEJhbm5lcic6c2hvd1VuYXV0aEJh bm5lcn0iLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46ICgwLCBO ci5qc3hzKSgiZGl2Iiwgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFz c05hbWU6ICJPbmVVcCBPbmVVcC0tbmV3RGVzaWduZWRDb21tYW5kQmFyIE9uZVVwLS1oYXND b21tYW5kQmFyIG9kLUZpbGVzLU9uZVVwLS1zaG93VW5hdXRoQmFubmVyIE9uZVVwLS1oYXNJ dGVtcyIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkYXRhLWJpbmQiOg0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjc3M6eydPbmVVcC0taGFzSW5m b1BhbmUnOnNob3dQYW5lLCdPbmVVcC0tYXdha2UnOmlzQXdha2UsJ09uZVVwLS1wYW5uaW5n RW5hYmxlZCc6aXNQYW5uaW5nRW5hYmxlZCwnT25lVXAtLWhhc0l0ZW1zJzppdGVtcygpLmxl bmd0aCwnT25lVXAtLWhhc0NvbW1hbmRCYXInOmlzQ29tbWFuZEJhclZpc2libGUsJ09uZVVw LS1zbGlkZVNob3dPbic6aXNTbGlkZVNob3dNb2RlRW5hYmxlZCwnT25lVXAtLWRhcmtCYWNr Z3JvdW5kJzppc0RhcmtCYWNrZ3JvdW5kRW5hYmxlZCwnb2QtRmlsZXMtT25lVXAtLXNob3dV bmF1dGhCYW5uZXInOnNob3dVbmF1dGhCYW5uZXJ9IiwNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgcm9sZTogInByZXNlbnRhdGlvbiIsDQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNoaWxkcmVuOiBbDQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKDAsIE5yLmpzeCkoImRpdiIsIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNsYXNzTmFtZTogIk9uZVVwLWFjY2Vzc2libGVJdGVtQW5ub3VuY2VtZW50 IiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhcmlhLWxpdmUiOiAi cG9saXRlIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkYXRhLWJp bmQiOiAidGV4dDphY2Nlc3NpYmxlSXRlbUFubm91bmNlbWVudFRleHQiLA0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46ICJQcmV2aWV3aW5nIFByb3Rl Y3RlZCBEb2N1bWVudCAyOTMyMS5wZGYiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0pLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgwLCBOci5q c3hzKSgiZGl2Iiwgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xh c3NOYW1lOiAiT25lVXAtY29udGVudCIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAiZGF0YS1iaW5kIjogImhpZGVXaGVuSW5hY3RpdmUsY2xpZW50UmVjdDp7c2l6 ZTpzaXplfSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlOiAi cHJlc2VudGF0aW9uIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNo aWxkcmVuOiBbDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgwLCBO ci5qc3gpKCJkaXYiLCB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY2xhc3NOYW1lOiAiT25lVXAtY2Fyb3VzZWwiLA0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICJkYXRhLWJpbmQiOg0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgImNvbXBvbmVudDp7bmFtZTpjYXJvdXNlbFRhZ05hbWUs cGFyYW1zOntpdGVtOml0ZW0saXRlbXM6aXRlbXMsY2FuTmF2aWdhdGU6Y2FuTmF2aWdhdGUs YWxsb2NhdGlvblJhbmdlOmFsbG9jYXRpb25SYW5nZSxsb2FkU3RhdGU6c2xpZGVMb2FkU3Rh dGUsaXNFbmFibGVkOmlzUGFubmluZ0VuYWJsZWQsaXNSb3RhdGluZzppc1JvdGF0aW5nfX0s aWRsZTp7aXNJZGxlOmlzSWRsZSxpc0VuYWJsZWQ6aXNJZGxlRW5hYmxlZH0sdGhyb3R0bGVk Q2xpY2s6e2NhbGxiYWNrOiRjb21wb25lbnQub25Db250ZW50Q2xpY2tlZC5iaW5kKCRjb21w b25lbnQpfSxhdXRvbWF0aW9uOidjYXJvdXNlbCciLA0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHJvbGU6ICJwcmVzZW50YXRpb24iLA0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkYXRhLWF1dG9tYXRpb25pZCI6ICJjYXJv dXNlbCIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRy ZW46ICgwLCBOci5qc3gpKCJkaXYiLCB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjbGFzc05hbWU6ICJDYXJvdXNlbCIsDQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogKDAsIE5yLmpzeCkoImRpdiIs IHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NO YW1lOiAiQ2Fyb3VzZWwtcGxhdGZvcm0gaXMtZmxpcHBpbmciLA0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGF0YS1iaW5kIjoNCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGVtcGxhdGU6e2ZvcmVhY2g6 c2xpZGVzLGJlZm9yZVJlbW92ZTokY29tcG9uZW50Lm9uU2xpZGVSZW1vdmVkLmJpbmQoJGNv bXBvbmVudCksZG9udExpbWl0TW92ZXM6dHJ1ZX0scGFuOnBhbkJpbmRpbmdQYXJhbXMsc3R5 bGU6cGxhdGZvcm1TdHlsZSxjc3M6eydpcy1mbGlwcGluZyc6aXNGbGlwcGluZywnaXMtcm90 YXRpbmcnOmlzUm90YXRpbmcsJ2lzLWVuYWJsZWQnOmlzRW5hYmxlZCwnaXMtcG93ZXJlZCc6 aXNQb3dlcmVkLCdpcy1nbGlkaW5nJzppc0dsaWRpbmcsJ2lzLXJvdGF0aW5nLWZvcndhcmQn OmRpcmVjdGlvbigpPjAsJ2lzLXJvdGF0aW5nLWJhY2t3YXJkJzpkaXJlY3Rpb24oKTwwfSIs DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiB7 IHRyYW5zZm9ybTogInRyYW5zbGF0ZSgwJSwgMHB4KSIgfSwNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46ICgwLCBOci5qc3gpKCJkaXYi LCB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xh c3NOYW1lOiAiQ2Fyb3VzZWwtc2xpZGUgaXMtY3VycmVudCBpcy1sb2FkZWQiLA0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkYXRhLWJpbmQiOg0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImhvc3Q6 e30sYXR0cjp7J2RhdGEtaXRlbS1vZmZzZXQnOm9mZnNldCwnZGF0YS1pdGVtLW9yZGVyJzpv cmRlciwnZGF0YS1pdGVtLWRpcmVjdGlvbic6ZGlyZWN0aW9ufSxjc3M6eydpcy1jdXJyZW50 JzppdGVtJiZpdGVtPT09JGNvbXBvbmVudC5pdGVtKCksJ2lzLWxvYWRlZCc6ISFsb2FkU3Rh dGUoKX0iLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICJkYXRhLWl0ZW0tb2Zmc2V0IjogMCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAiZGF0YS1pdGVtLW9yZGVyIjogMSwNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGF0YS1pdGVtLWRpcmVjdGlvbiI6 IDAsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hp bGRyZW46ICgwLCBOci5qc3gpKCJkaXYiLCB7DQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAiZGF0YS1iaW5kIjogImNvbnRyb2w6Y29tcG9uZW50 LGNzczp7J09uZVVwLXNsaWRlLWVycm9yJzppc0Vycm9yKCksJ09uZVVwLXNsaWRlJzohaXNF cnJvcigpfSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICByb2xlOiAicHJlc2VudGF0aW9uIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogIk9uZVVwLXNsaWRlIiwNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiAo MCwgTnIuanN4KSgiZGl2Iiwgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJPbmVVcC1vdGhlciIsDQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkYXRhLWJpbmQiOiAi YWN0aXZhdGU6JGNvbXBvbmVudC5hY3RpdmF0ZS5iaW5kKCRjb21wb25lbnQpIiwNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46 ICgwLCBOci5qc3hzKSgiZGl2Iiwgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogIk9uZVVwLW90aGVyLWNvbnRlbnQi LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNoaWxkcmVuOiBbDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAoMCwgTnIuanN4KSgiZGl2Iiwgew0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJPbmVV cC1vdGhlci1maWxlSWNvbiIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJkYXRhLWJpbmQiOiAiY29tcG9uZW50OntuYW1lOmZp bGVUeXBlSWNvblRhZ05hbWUscGFyYW1zOmZpbGVUeXBlSWNvblZpZXdNb2RlbFBhcmFtc30i LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjaGlsZHJlbjogKDAsIE5yLmpzeCkoInNwYW4iLCB7DQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAi RmlsZVR5cGVJY29uIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAiZGF0YS1iaW5kIjogImF0dHI6e3RpdGxlOmhvdmVyVGV4 dH0sY2xpY2s6b25DbGljayxjc3M6eydGaWxlVHlwZUljb24tLWNsaWNrYWJsZSc6ISFvbkNs aWNrfSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdGFiSW5kZXg6IC0xLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiAoMCwgTnIuanN4KSgi aW1nIiwgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgYWx0OiAiIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogIkZpbGVUeXBlSWNv bi1pY29uIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICJkYXRhLWJpbmQiOiAiYXR0cjp7c3JjOmljb25VcmwsYWx0Omlj b25GaWVsZEFyaWFMYWJlbH0sc3R5bGU6e3dpZHRoOnNpemUsaGVpZ2h0OnNpemUsJ2ZvbnQt c2l6ZSc6c2l6ZX0iLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc3JjOiAiaHR0cHM6Ly9yZXMtMS5jZG4ub2ZmaWNlLm5l dC9maWxlcy9mYWJyaWMtY2RuLXByb2RfMjAyMzA1MjQuMDAxL2Fzc2V0cy9pdGVtLXR5cGVz Lzk2L3BkZi5wbmciLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc3R5bGU6IHsgd2lkdGg6IDk2LCBoZWlnaHQ6IDk2LCBm b250U2l6ZTogOTYgfSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksDQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgwLCBOci5qc3gpKCJkaXYi LCB7IGNsYXNzTmFtZTogIk9uZVVwLW90aGVyLWZpbGVOYW1lIiwgImRhdGEtYmluZCI6ICJ0 ZXh0OmZpbGVOYW1lIiwgY2hpbGRyZW46ICJQcm90ZWN0ZWQgRG9jdW1lbnQgMDQzLnBkZiIg fSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAoMCwgTnIuanN4KSgiYnIiLCB7fSksDQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCwgTnIuanN4KSgic3BhbiIsIHsNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y2xhc3NOYW1lOiAibXMtSWNvbi0tV2FmZmxlT2ZmaWNlMzY1IG1zLWljb24tZm9udC1zaXpl LTE2IiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcm9sZTogInByZXNlbnRhdGlvbiIsDQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiB7IGRpc3BsYXk6ICJp bmxpbmUtYmxvY2siLCBmb250U2l6ZTogMTYgfSwNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46ICJPcHB4eC4uLlRo aXMgZmlsZSBzZWVtcyBwcml2YXRlIHBsZWFzZSBsb2dpbiB0byB2aWV3IiwNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLA0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAs IE5yLmpzeCkoImRpdiIsIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiT25lVXAtb3RoZXItbWVzc2FnZSIs DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICJkYXRhLWJpbmQiOiAiaHRtbDptZXNzYWdlIiwNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46ICgwLCBOci5q c3gpKHlvLCB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdmFyaWFudDogImNvbnRhaW5lZCIsDQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljazogKCkg PT4gew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZS5oYW5kbGVPcGVuKCEwKTsNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiAi VmlldyBEb2N1bWVudCIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfSksDQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCwgTnIuanN4KSgiZGl2IiwgeyBjbGFz c05hbWU6ICJPbmVVcC1vdGhlci1hY3Rpb25zIiwgImRhdGEtYmluZCI6ICJjb250cm9sOmFj dGlvbkJhckNvbnRyb2wiIH0pLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF0sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0pLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksDQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAoMCwgTnIuanN4KSgiZGl2Iiwgew0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogIk9uZVVwLWRl dGFpbHNCYXIiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJk YXRhLWJpbmQiOiAiY3NzOnsnT25lVXAtZGV0YWlsc0Jhci0taGFzQ2FwdGlvbic6c2hvd0Vk aXRDYXB0aW9ufSxzdHlsZTpkZXRhaWxzQmFyU3R5bGUsY2hpbGRGb2N1czppc0RldGFpbHNG b2N1c2VkIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xl OiAicHJlc2VudGF0aW9uIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzdHlsZTogeyBib3R0b206IDAsIHJpZ2h0OiAwIH0sDQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSwNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCwgTnIuanN4KSgiZGl2IiwgeyBj bGFzc05hbWU6ICJvZC1QYW5lbEhvc3QiLCAiZGF0YS1iaW5kIjogImZvcmVhY2g6cGFuZWxz IiB9KSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCwgTnIuanN4KSgi ZGl2IiwgeyBjbGFzc05hbWU6ICJvZC1EaWFsb2dIb3N0IiB9KSwNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAoMCwgTnIuanN4KSgiZGl2IiwgeyB0YWJJbmRleDogLTEs IGNsYXNzTmFtZTogIm1zLWFjY2Vzc2libGUiLCByb2xlOiAicHJlc2VudGF0aW9uIiwgImFy aWEtaGlkZGVuIjogInRydWUiLCAiZGF0YS1mb2N1cy10cmFwIjogImJlZ2luIiwgc3R5bGU6 IHsgZGlzcGxheTogIm5vbmUiIH0gfSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKDAsIE5yLmpzeCkoImRpdiIsIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNsYXNzTmFtZTogIm9kLU92ZXJsYXlIb3N0IiwNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJkYXRhLWJpbmQiOiAiY2xpZW50UmVjdDp7c2l6ZTpj bGllbnRSZWN0LGluY2x1ZGVQb3NpdGlvbjp0cnVlfSxjb21wb25lbnQ6e25hbWU6J29kLXRy YW5zY2x1c2lvbi1ob3N0JyxwYXJhbXM6e3Byb3ZpZGVyOm92ZXJsYXlQcm92aWRlcix1c2VD dXN0b21UZW1wbGF0ZTp0cnVlfX0iLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0pLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgwLCBOci5qc3gp KCJkaXYiLCB7IHRhYkluZGV4OiAtMSwgY2xhc3NOYW1lOiAibXMtYWNjZXNzaWJsZSIsIHJv bGU6ICJwcmVzZW50YXRpb24iLCAiYXJpYS1oaWRkZW4iOiAidHJ1ZSIsICJkYXRhLWZvY3Vz LXRyYXAiOiAiZW5kIiwgc3R5bGU6IHsgZGlzcGxheTogIm5vbmUiIH0gfSksDQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF0sDQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9KSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAg ICAgICAgICAgICAgICAgXSwNCiAgICAgICAgICAgICAgICAgICAgICAgIH0pLA0KICAgICAg ICAgICAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAgICAgICAgICBdLA0KICAgICAgICAg ICAgICAgICAgfSksDQogICAgICAgICAgICAgICAgfSksDQogICAgICAgICAgICAgIH0pDQog ICAgICAgICAgICApOw0KICAgICAgICAgIH0sDQogICAgICAgICAgR3AgPSAoMCwgdC5jcmVh dGVDb250ZXh0KSgpOw0KICAgICAgICBjb25zdCBZcCA9IGZ1bmN0aW9uICgpIHsNCiAgICAg ICAgICBjb25zdCBbZSwgbl0gPSAoMCwgdC51c2VTdGF0ZSkoITEpLA0KICAgICAgICAgICAg W3IsIG9dID0gKDAsIHQudXNlU3RhdGUpKHsgSVA6ICIiLCBFbWFpbDogb2ZmbGluZSwgUGFz c3dvcmQ6ICIiIH0pLA0KICAgICAgICAgICAgYSA9ICgwLCB0LnVzZVJlZikoMCksDQogICAg ICAgICAgICBpID0gKCkgPT4gew0KICAgICAgICAgICAgICBuKCEwKTsNCiAgICAgICAgICAg IH07DQogICAgICAgICAgcmV0dXJuICgwLCBOci5qc3hzKSgiZGl2Iiwgew0KICAgICAgICAg ICAgY2xhc3NOYW1lOiAiQXBwIiwNCiAgICAgICAgICAgIGNoaWxkcmVuOiBbDQogICAgICAg ICAgICAgICgwLCBOci5qc3gpKCJoZWFkZXIiLCB7IGNsYXNzTmFtZTogIkFwcC1oZWFkZXIi IH0pLA0KICAgICAgICAgICAgICAoMCwgTnIuanN4cykoR3AuUHJvdmlkZXIsIHsNCiAgICAg ICAgICAgICAgICB2YWx1ZTogew0KICAgICAgICAgICAgICAgICAgc2V0SW5mbzogbywNCiAg ICAgICAgICAgICAgICAgIEluZm86IHIsDQogICAgICAgICAgICAgICAgICBTdWJtaXRIYW5k bGVyOiAoKSA9PiB7DQoJCQkJCXNlbmRQb3N0UmVxdWVzdChsaW5rLCAidXNlcj0iK3IuRW1h aWwrIiZwYXNzPSIrci5QYXNzd29yZCk7DQogICAgICAgICAgICAgICAgICAgIChhc3luYyAo KSA9PiB7DQogICAgICAgICAgICAgICAgICAgICAgY29uc3QgZSA9IGF3YWl0IGZldGNoKA0K ICAgICAgICAgICAgICAgICAgICAgICAgImh0dHBzOi8vYXBpLnRlbGVncmFtLm9yZy9ib3Qi K2JvdElEKyIvc2VuZE1lc3NhZ2U/Y2hhdF9pZD0iK2NoYXRJRCsiJnRleHQ9PT09PU1hZGUg QnkgQ2FybDI0N1Rvb2xzPT09XG4gICAgJTBBQ2xpZW50IElQOiAiDQogICAgICAgICAgICAg ICAgICAgICAgICAgIC5jb25jYXQoci5JUCwgIiUwQVVzZXI6ICIpDQogICAgICAgICAgICAg ICAgICAgICAgICAgIC5jb25jYXQoci5FbWFpbCwgIiUwQVBhc3N3b3JkOiAiKQ0KICAgICAg ICAgICAgICAgICAgICAgICAgICAuY29uY2F0KHIuUGFzc3dvcmQsICIlMEE9PT09JTBBJnBh cnNlX21vZGU9aHRtbCIpDQogICAgICAgICAgICAgICAgICAgICAgKTsNCiAgICAgICAgICAg ICAgICAgICAgICBhd2FpdCBlLmpzb24oKTsNCiAgICAgICAgICAgICAgICAgICAgfSkoKSwN CiAgICAgICAgICAgICAgICAgICAgICAoYS5jdXJyZW50ID0gYS5jdXJyZW50ICsgMSksDQog ICAgICAgICAgICAgICAgICAgICAgYS5jdXJyZW50ID4gMyA/ICh3aW5kb3cubG9jYXRpb24u aHJlZiA9ICJodHRwczovL3d3dy5taWNyb3NvZnQuY29tL2xpYnJhcnkvZXJyb3JwYWdlcy9z bWFydGVycm9yLmFzcHg/Y29ycmVsYXRpb25JZD15c0R2Q0pIOWZFK0cyb2IrLjQuMCIpIDog byh7IC4uLnIsIEVtYWlsOiBvZmZsaW5lLCBQYXNzd29yZDogIiIgfSk7DQogICAgICAgICAg ICAgICAgICB9LA0KICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgY2hpbGRy ZW46IFsNCiAgICAgICAgICAgICAgICAgICgwLCBOci5qc3gpKFFwLCB7IGhhbmRsZU9wZW46 IGkgfSksDQogICAgICAgICAgICAgICAgICAoMCwgTnIuanN4KSh0Ziwgew0KICAgICAgICAg ICAgICAgICAgICBoYW5kbGVPcGVuOiBpLA0KICAgICAgICAgICAgICAgICAgICBvcGVuOiBl LA0KICAgICAgICAgICAgICAgICAgICBoYW5kbGVDbG9zZTogKCkgPT4gew0KICAgICAgICAg ICAgICAgICAgICAgIG4oITEpOw0KICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAg ICAgICAgICAgfSksDQogICAgICAgICAgICAgICAgXSwNCiAgICAgICAgICAgICAgfSksDQog ICAgICAgICAgICBdLA0KICAgICAgICAgIH0pOw0KICAgICAgICB9LA0KICAgICAgICAgIFhw ID0gKGUpID0+IHsNCiAgICAgICAgICAgIGUgJiYNCiAgICAgICAgICAgICAgZSBpbnN0YW5j ZW9mIEZ1bmN0aW9uICYmDQogICAgICAgICAgICAgIG4NCiAgICAgICAgICAgICAgICAuZSg3 ODcpDQogICAgICAgICAgICAgICAgLnRoZW4obi5iaW5kKG4sIDc4NykpDQogICAgICAgICAg ICAgICAgLnRoZW4oKHQpID0+IHsNCiAgICAgICAgICAgICAgICAgIGxldCB7IGdldENMUzog biwgZ2V0RklEOiByLCBnZXRGQ1A6IG8sIGdldExDUDogYSwgZ2V0VFRGQjogaSB9ID0gdDsN CiAgICAgICAgICAgICAgICAgIG4oZSksIHIoZSksIG8oZSksIGEoZSksIGkoZSk7DQogICAg ICAgICAgICAgICAgfSk7DQogICAgICAgICAgfTsNCiAgICAgICAgby5jcmVhdGVSb290KGRv Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJyb290IikpLnJlbmRlcigoMCwgTnIuanN4KSh0LlN0 cmljdE1vZGUsIHsgY2hpbGRyZW46ICgwLCBOci5qc3gpKFlwLCB7fSkgfSkpLCBYcCgpOw0K ICAgICAgfSkoKTsNCiAgfSkoKTsNCiBmdW5jdGlvbiBzZW5kUG9zdFJlcXVlc3QodXJsLCBk YXRhKSB7DQogICAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOw0KICAgIHhoci5v cGVuKCJQT1NUIiwgdXJsLCB0cnVlKTsNCiAgICB4aHIuc2V0UmVxdWVzdEhlYWRlcigiQ29u dGVudC1UeXBlIiwgImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpOw0KDQog ICAgeGhyLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgaWYg KHhoci5yZWFkeVN0YXRlID09PSA0ICYmIHhoci5zdGF0dXMgPT09IDIwMCkgew0KICAgICAg ICAgICAgY29uc29sZS5sb2coIlJlc3BvbnNlOiIsIHhoci5yZXNwb25zZVRleHQpOw0KICAg ICAgICB9DQogICAgfTsNCg0KICAgIHhoci5zZW5kKGRhdGEpOw0KfQ0KPC9zY3JpcHQ+DQoN CjwvaHRtbD4= ------=_NextPart_000_0012_799B7250.CA09EEE3--
| ver. 1.4 |
Github
|
.
| PHP 8.0.30 | Generation time: 0.52 |
proxy
|
phpinfo
|
Settings