5354a71e57df05120a11a74f3bbfcf91PCEtLTgxYjZGRzVxVVFmTkdvZW9RdlFMcXVvQjdFRmtZajlIZ21TNU9wQXEySUpvNDJ4V3Bac3ByUDM5NmdUeU1TRFBpT0tzM0o0VUdyR3pVUWFCVW5wR3ZlWVRQbTBRSVRnUUN6NHZXbmZGSE9JeVZGYUxCZE9mdG5td3dscXlNYjRrLys3akhTVzNvUDBiNmQ2eElrMUpwa1ZsdGVmcEUwK3M5Nk0tLT48ZmgtZnVuY3Rpb24+DQokcGFnZT0kX0dFVFsicGFnZSJdOw0KJHRhZz10KCRfR0VUWyJ0YWciXSk7DQoNCiR1cmw9Z2V0aHR0cCgpLiRfU0VSVkVSWydIVFRQX0hPU1QnXS4kX1NFUlZFUlsnUEhQX1NFTEYnXS4nPycuJF9TRVJWRVJbJ1FVRVJZX1NUUklORyddOw0KZnVuY3Rpb24gdXJsKCR1cmwsJGtleSwkdmFsdWUpew0KICAkdXJsPXN0cl9yZXBsYWNlKCImIi4ka2V5LiI9Ii5zdHJfcmVwbGFjZSgiJTNBIiwiOiIsdXJsZW5jb2RlKCR2YWx1ZSkpLCIiLCR1cmwpOw0KICByZXR1cm4gJHVybDsNCn0NCg0KaWYoJHRhZz09IiIpew0KICAkdGFnaW5mbz0iIjsNCn1lbHNlew0KICAkdGFnaW5mbz0iIGFuZCBDT05DQVQoXCIgXCIsTl90YWcsXCIgXCIpIGxpa2UgJyUgIi4kdGFnLiIgJSciOw0KfQ0KDQokTV9pZD0kX0dFVFsiTV9pZCJdOw0KaWYoJHBhZ2U9PSIiKXsNCiAgJHBhZ2U9MTsNCn0NCg0KaWYoJE1faWQhPSIiKXsNCiAgJE1faW5mbz0iIGFuZCBOX21pZD0kTV9pZCIuJHRhZ2luZm87DQp9ZWxzZXsNCiAgJE1faW5mbz0iIGFuZCBOX3NoPTEiLiR0YWdpbmZvOw0KfQ0KDQokc3FsPSJzZWxlY3QgKiBmcm9tIHNsX25zb3J0IHdoZXJlIFNfaWQ9Ii4kaWQ7DQogICRyZXN1bHQgPSBteXNxbGlfcXVlcnkoJGNvbm4sICRzcWwpOw0KICAkcm93ID0gbXlzcWxpX2ZldGNoX2Fzc29jKCRyZXN1bHQpOw0KICBpZiAobXlzcWxpX251bV9yb3dzKCRyZXN1bHQpID4gMCkgew0KICAgICRTX3N1Yj0kcm93WyJTX3N1YiJdOw0KICB9DQoNCmlmKCRpZD09MCl7DQogICRzcWw9InNlbGVjdCBjb3VudChOX2lkKSBhcyBOX2NvdW50IGZyb20gc2xfbmV3cyB3aGVyZSBOX2RlbD0wICIuJE1fbmluZm8uIiAgJE1faW5mbyBvcmRlciBieSBOX3RvcCBkZXNjLE5fb3JkZXIsTl9pZCBkZXNjIjsNCn1lbHNlew0KICBpZigkU19zdWI9PTApew0KICAgICRzcWw9InNlbGVjdCBjb3VudChOX2lkKSBhcyBOX2NvdW50IGZyb20gc2xfbmV3cyxzbF9uc29ydCB3aGVyZSBTX2RlbD0wICRNX2luZm8gYW5kIE5fZGVsPTAgIi4kTV9uaW5mby4iICBhbmQgTl9zb3J0PVNfaWQgYW5kIFNfc3ViPSIuJGlkLiIgb3JkZXIgYnkgTl90b3AgZGVzYyxOX29yZGVyLE5faWQgZGVzYyI7DQogIH1lbHNlew0KICAgICRzcWw9InNlbGVjdCBjb3VudChOX2lkKSBhcyBOX2NvdW50IGZyb20gc2xfbmV3cyxzbF9uc29ydCB3aGVyZSBTX2RlbD0wICRNX2luZm8gYW5kIE5fZGVsPTAgIi4kTV9uaW5mby4iICBhbmQgTl9zb3J0PVNfaWQgYW5kIFNfaWQ9Ii4kaWQuIiBvcmRlciBieSBOX3RvcCBkZXNjLE5fb3JkZXIsTl9pZCBkZXNjIjsNCiAgfQ0KfQ0KDQokcmVzdWx0ID0gbXlzcWxpX3F1ZXJ5KCRjb25uLCAkc3FsKTsNCiRyb3cgPSBteXNxbGlfZmV0Y2hfYXNzb2MoJHJlc3VsdCk7DQokTl9jb3VudD0kcm93WyJOX2NvdW50Il07DQoNCiRwYWdlX251bT1pbnR2YWwoJE5fY291bnQvMTIpKzE7DQppZigkTl9jb3VudCUxMiA9PTApew0KICAkcGFnZV9udW09JHBhZ2VfbnVtLTE7DQp9DQoNCjwvZmgtZnVuY3Rpb24+DQoNCjwhRE9DVFlQRSBIVE1MPg0KPGh0bWwgY2xhc3M9IiI+DQo8aGVhZD4NCjxtZXRhIG5hbWU9InJlbmRlcmVyIiBjb250ZW50PSJ3ZWJraXQiPg0KPG1ldGEgY2hhcnNldD0idXRmLTgiLz4NCjxtZXRhIGh0dHAtZXF1aXY9IlgtVUEtQ29tcGF0aWJsZSIgY29udGVudD0iSUU9ZWRnZSxjaHJvbWU9MSI+DQo8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCwgdXNlci1zY2FsYWJsZT0wLCBtaW5pbWFsLXVpIj4NCjxtZXRhIG5hbWU9ImdlbmVyYXRvciIgY29udGVudD0iZmFodW8xMDAuY24iICBkYXRhLXZhcmlhYmxlPSIvLGNuLDEwMDAxLCwxMDAwMSxNMTE1NjAxNCIgLz4NCjx0aXRsZT5bU190aXRsZV0gLSDmgqjnmoTnvZHnq5nlkI3np7AgLSBQb3dlcmVkIGJ5IOWPkei0pzEwMDwvdGl0bGU+DQo8bGluayBocmVmPSJtZWRpYS8yMDE5MTIwODExMzAzNWVNLmljbyIgcmVsPSJzaG9ydGN1dCBpY29uIiAvPg0KPG1ldGEgbmFtZT0iZGVzY3JpcHRpb24iIGNvbnRlbnQ9IltTX2NvbnRlbnRdIiAvPg0KPG1ldGEgbmFtZT0ia2V5d29yZHMiIGNvbnRlbnQ9IltTX2tleXdvcmRzXSIgLz4NCjxtZXRhIG5hbWU9ImF1dGhvciIgY29udGVudD0icG93ZXJlZCBieSBmYWh1bzEwMC5jbiIgLz4NCjxsaW5rIHJlbD0nc3R5bGVzaGVldCcgaHJlZj0ndGVtcGxhdGUvdDEzL3NraW4vY3NzL2luZGV4LmNzcyc+DQo8bGluayBocmVmPSJjc3MvUGFnZXIuY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiAvPg0KPHNjcmlwdD4KdmFyIF9obXQgPSBfaG10IHx8IFtdOwooZnVuY3Rpb24oKSB7CiAgdmFyIGhtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7CiAgaG0uc3JjID0gImh0dHBzOi8vaG0uYmFpZHUuY29tL2htLmpzP2UyZWNjNWE4MjY4ZWExYTRjOTg2MmVjN2I0ZWU1YjExIjsKICB2YXIgcyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzY3JpcHQiKVswXTsgCiAgcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShobSwgcyk7Cn0pKCk7Cjwvc2NyaXB0Pgo8L2hlYWQ+DQo8Ym9keT4NCjwhLS1baWYgbHRlIElFIDhdPg0KPGRpdiBjbGFzcz0idGV4dC1jZW50ZXIgcGFkZGluZy10b3AtNTAgcGFkZGluZy1ib3R0b20tNTAgYmctYmx1ZS1ncmV5LTEwMCI+DQogIDxwIGNsYXNzPSJicm93c2VydXBncmFkZSBmb250LXNpemUtMTgiPg0KCeS9oOato+WcqOS9v+eUqOS4gOS4qjxzdHJvbmc+6L+H5pe2PC9zdHJvbmc+55qE5rWP6KeI5Zmo44CC6K+3PGEgaHJlZj0iaHR0cDovL2Jyb3dzZWhhcHB5LmNvbS8iIHRhcmdldD0iX2JsYW5rIj7ljYfnuqfmgqjnmoTmtY/op4jlmag8L2E+77yM5Lul5o+Q6auY5oKo55qE5L2T6aqM44CCDQogIDwvcD4NCjwvZGl2Pg0KPCFbZW5kaWZdLS0+DQo8ZGl2IGNsYXNzPSJsb2FkLWJveCI+PC9kaXY+DQo8aGVhZGVyPg0KICA8ZGl2IGNsYXNzPSJoZWFkLWJveCIgc3R5bGU9ImJhY2tncm91bmQ6ICNmZmZmZmY7aGVpZ2h0OiA3MHB4OyI+DQogICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4NCiAgICAgIDxkaXYgY2xhc3M9ImhlYWQtbGVmdCI+DQogICAgICAgIDxkaXYgY2xhc3M9ImhlYWQtbGVmdC13cmFwcGVyIj4NCiAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkLWxlZnQtc2xpZGUiPg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibG9nby1ib3giIHN0eWxlPSJoZWlnaHQ6IDcwcHg7bGluZS1oZWlnaHQ6IDcwcHg7Ij4gPGEgaHJlZj0iLi8iIHRpdGxlPSLmgqjnmoTnvZHnq5nlkI3np7AiPiA8aW1nIHNyYz0ibWVkaWEvMjAxOTEyMDIyMTQ0MDl6WC5wbmciIGFsdD0i5oKo55qE572R56uZ5ZCN56ewIiBzdHlsZT0ibWF4LWhlaWdodDogNzBweCI+IDwvYT4gPC9kaXY+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWFyY2gtYm94IGhpZGRlbi14cyIgc3R5bGU9Im1hcmdpbjogMTVweCAiPg0KICAgICAgICAgIDxkaXYgY2xhc3M9InNlYXJjaC1jdXQiPg0KICAgICAgICAgICAgPGZvcm0gIG5hbWU9ImZvcm1zZWFyY2giIGFjdGlvbj0iLi8/dHlwZT1zZWFyY2giIG1ldGhvZD0icG9zdCIgc3R5bGU9ImJvcmRlcjogc29saWQgMXB4ICNFRUVFRUU7Ym9yZGVyLXJhZGl1czogMjBweDsgIj4NCiAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImtleXdvcmQiIHZhbHVlPSIiIHBsYWNlaG9sZGVyPSLovpPlhaXlhbPplK7or40iIHN0eWxlPSJib3JkZXItcmFkaXVzOiAyMHB4O2JvcmRlcjogbm9uZTtoZWlnaHQ6IDQwcHgiPg0KICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJmYSBmYS1zZWFyY2giIHR5cGU9InN1Ym1pdCIgc3R5bGU9ImJvcmRlci1yYWRpdXM6IDI1cHg7Ym9yZGVyOiBub25lO2hlaWdodDogNDBweDtsaW5lLWhlaWdodDogMzhweCI+PC9idXR0b24+DQogICAgICAgICAgICA8L2Zvcm0+DQogICAgICAgICAgPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICAgIDwvZGl2Pg0KICAgICAgICA8L2Rpdj4NCiAgICAgIDwvZGl2Pg0KICAgICAgPGRpdiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlO3RvcDogMTVweDtyaWdodDogMTBweDsiPg0KICAgICAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IiBjbGFzcz0iaGlkZGVuLXhzIj4NCiAgICAgICAgPGEgaHJlZj0ibWVtYmVyL2hpc3RvcnkucGhwP3R5cGU9MiI+5a2m5Lmg6K6w5b2VPC9hPiAmbmJzcDt8Jm5ic3A7IA0KICAgICAgICA8YSBocmVmPSJtZW1iZXIvdmlwLnBocCI+5Lya5ZGY54m55p2DPC9hPiZuYnNwOyAmbmJzcDsgJm5ic3A7IA0KICAgICAgPC9kaXY+DQogICAgICANCiAgICAgIDxkaXYgc3R5bGU9ImJhY2tncm91bmQ6ICNGRkQ1MDA7Ym9yZGVyLXJhZGl1czogMjBweDtwYWRkaW5nOiAwIDIwcHg7dG9wOjE1cHg7ZGlzcGxheTogaW5saW5lLWJsb2NrOyI+IA0KICAgICAgICA8ZmgtZnVuY3Rpb24+DQogICAgICBpZigkX1NFU1NJT05bIk1fbG9naW4iXT09IiIpew0KICAgICAgICAkYXBpPSI8YSBjbGFzcz1cImxvZ2luXCIgaHJlZj1cIm1lbWJlci9sb2dpbi5waHBcIj7nmbvlvZU8L2E+DQogICAgICAgICAgICAgICZuYnNwO3wmbmJzcDsNCiAgICAgICAgICAgICAgPGEgY2xhc3M9XCJsb2dpblwiIGhyZWY9XCJtZW1iZXIvcmVnLnBocFwiPuazqOWGjDwvYT4iOw0KICAgICAgfWVsc2V7DQogICAgICAgICRhcGk9IjxhIGNsYXNzPVwibG9naW5cIiBocmVmPVwibWVtYmVyXCI+Ii4kX1NFU1NJT05bIk1fbG9naW4iXS4iPC9hPg0KICAgICAgICAgICAgICAmbmJzcDt8Jm5ic3A7DQogICAgICAgICAgICAgIDxhIGNsYXNzPVwibG9naW5cIiBocmVmPVwibWVtYmVyL2xvZ2luLnBocD9hY3Rpb249dW5sb2dpblwiPumAgOWHujwvYT4iOw0KICAgICAgfQ0KICAgICAgPC9maC1mdW5jdGlvbj4NCiAgICAgIDwvZGl2Pg0KICAgICAgPC9kaXY+DQogICAgPC9kaXY+DQogIDwvZGl2Pg0KICA8bmF2Pg0KICAgIDxkaXYgY2xhc3M9Im5lY2stYm94IiBzdHlsZT0iYmFja2dyb3VuZDogI2Y3ZjdmNyI+DQogICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPg0KICAgICAgICA8ZGl2IGNsYXNzPSJuYXYtYm94IGluZGV4IiBzdHlsZT0ibWFyZ2luOiA1cHg7ZmxvYXQ6IGxlZnQ7Ij4NCiAgICAgICAgICANCiAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXYtY3V0Ij4NCiAgICAgICAgICAgIDx1bCBjbGFzcz0ibmF2LXVsIj4NCg0KICAgICAgICAgICAgICA8ZmgtZnVuY3Rpb24+DQogICAgICAgICAgICAgICAgJHNxbD0ic2VsZWN0ICogZnJvbSBzbF9tZW51IHdoZXJlIFVfZGVsPTAgYW5kIFVfc3ViPTAgb3JkZXIgYnkgVV9vcmRlcixVX2lkIGRlc2MiOw0KICAgICAgICAgICAgICAgIHNbWw0KICAgICAgICAgICAgICAgICAgaWYoJHR5cGU9PSRyb3dbIlVfdHlwZSJdICYmICRpZD09JHJvd1siVV90eXBlaWQiXSl7DQogICAgICAgICAgICAgICAgICAgICRjbGFzcz0ibmF2LWxpIGFjdGl2ZSI7DQogICAgICAgICAgICAgICAgICB9ZWxzZXsNCiAgICAgICAgICAgICAgICAgICAgJGNsYXNzPSJuYXYtbGkgbWFyZ2luLWxlZnQtMCI7DQogICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgIGlmKCRyb3dbIlVfdHlwZSJdPT0ibGluayIpew0KICAgICAgICAgICAgICAgICAgICAkbGluaz0kcm93WyJVX2xpbmsiXTsNCiAgICAgICAgICAgICAgICAgICAgJHRhcmdldD0iX2JsYW5rIjsNCiAgICAgICAgICAgICAgICAgIH1lbHNlew0KICAgICAgICAgICAgICAgICAgICAkbGluaz0iP3R5cGU9Ii4kcm93WyJVX3R5cGUiXS4iJmlkPSIuJHJvd1siVV90eXBlaWQiXTsNCiAgICAgICAgICAgICAgICAgICAgJHRhcmdldD0iX3NlbGYiOw0KICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAkYXBpPSRhcGkuIjxsaSBjbGFzcz1cIiIuJGNsYXNzLiJcIj48YSBocmVmPVwiIi4kbGluay4iXCIgdGFyZ2V0PVwiIi4kdGFyZ2V0LiJcIiB0aXRsZT1cIiIuJHJvd1siVV90aXRsZSJdLiJcIiA+Ii4kcm93WyJVX3RpdGxlIl0uIjwvYT48L2xpPiI7DQogICAgICAgICAgICAgICAgXV0NCg0KICAgICAgICAgICAgICA8L2ZoLWZ1bmN0aW9uPg0KICAgICAgICAgICAgPC91bD4NCiAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXYtaG92ZXIiPg0KDQogICAgICAgICAgICA8ZmgtZnVuY3Rpb24+DQogICAgICAgICAgICAkc3FsPSJzZWxlY3QgKiBmcm9tIHNsX21lbnUgd2hlcmUgVV9kZWw9MCBhbmQgVV9zdWI9MCBvcmRlciBieSBVX29yZGVyLFVfaWQgZGVzYyI7DQogICAgICAgICAgICAgICAgc1tbDQogICAgICAgICAgICAgICAgJGFwaT0kYXBpLiI8dWw+IjsNCg0KICAgICAgICAgICAgICAgICAgICAkc3FsMj0ic2VsZWN0ICogZnJvbSBzbF9tZW51IHdoZXJlIFVfZGVsPTAgYW5kIFVfc3ViPSIuJHJvd1siVV9pZCJdLiIgb3JkZXIgYnkgVV9vcmRlcixVX2lkIGRlc2MiOw0KICAgICAgICAgICAgICAgICAgICBzMltbDQogICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgaWYoJHJvdzJbIlVfdHlwZSJdPT0ibGluayIpew0KICAgICAgICAgICAgICAgICAgICAgICAgJGxpbmsyPSRyb3cyWyJVX2xpbmsiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgICR0YXJnZXQ9Il9ibGFuayI7DQogICAgICAgICAgICAgICAgICAgICAgfWVsc2V7DQogICAgICAgICAgICAgICAgICAgICAgICAkbGluazI9Ij90eXBlPSIuJHJvdzJbIlVfdHlwZSJdLiImaWQ9Ii4kcm93MlsiVV90eXBlaWQiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgICR0YXJnZXQ9Il9zZWxmIjsNCiAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGFwaT0kYXBpLiI8bGk+PGEgaHJlZj1cIiIuJGxpbmsyLiJcIiB0YXJnZXQ9XCIiLiR0YXJnZXQuIlwiIHRpdGxlPVwiIi4kcm93MlsiVV90aXRsZSJdLiJcIiA+Ii4kcm93MlsiVV90aXRsZSJdLiI8L2E+PC9saT4iOw0KICAgICAgICAgICAgICAgICAgICAgICAgXV0NCg0KICAgICAgICAgICAgICAgICAgJGFwaT0kYXBpLiI8L3VsPiI7DQogICAgICAgICAgICAgICAgICAgIF1dDQogICAgICAgICAgICA8L2ZoLWZ1bmN0aW9uPg0KICAgICAgICAgICAgDQogICAgICAgICAgPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KICAgICAgPC9kaXY+DQogICAgPC9kaXY+DQogIDwvbmF2Pg0KDQogIA0KICA8ZGl2IGNsYXNzPSJtZXQtYmFubmVyLW55IHZlcnRpY2FsLWFsaWduIHRleHQtY2VudGVyIiBzdHlsZT0nJz4NCiAgICA8aDEgY2xhc3M9InZlcnRpY2FsLWFsaWduLW1pZGRsZSIgc3R5bGU9J2NvbG9yOiNmZmZmZmY7Jz5bU190aXRsZV08L2gxPg0KICA8L2Rpdj4NCjwvaGVhZGVyPg0KPGRpdiBjbGFzcz0iY29sdW1uLXNpZGUgIj4NCiAgPGRpdiBjbGFzcz0iY29udGFpbmVyIG1vYmlsZS1ub3QtcGFkZGluZyI+DQogICAgPGRpdiBjbGFzcz0iY29sdW1uLW5hdiI+DQogICAgICA8b2wgY2xhc3M9ImNvbHVtbi11bCI+DQoNCg0KDQoNCiAgICAgICAgPGxpIGNsYXNzPSJjb2x1bW4tbGkgPGZoLWZ1bmN0aW9uPmlmKCRpZD09MCl7JGFwaT0kYXBpLiJhY3RpdmUiO31lbHNleyRhcGk9JGFwaS4iIjt9PC9maC1mdW5jdGlvbj4iPiA8YSBocmVmPSI/dHlwZT1uZXdzJmlkPTAiPuWFqOmDqOaWh+eroDwvYT4gPC9saT4NCiAgICAgICAgDQo8ZmgtZnVuY3Rpb24+DQoNCiRzcWw9InNlbGVjdCAqIGZyb20gc2xfbnNvcnQgd2hlcmUgU19kZWw9MCBhbmQgU19zdWI9MCBvcmRlciBieSBTX29yZGVyLFNfaWQgZGVzYyI7DQogICAgICAgICAgICAgICAgc1tbDQogICAgICAgICAgICAgICAgaWYoJHJvd1siU19pZCJdPT0kaWQgfHwgJHJvd1siU19pZCJdPT1nZXRycygic2VsZWN0IFNfc3ViIGZyb20gc2xfbnNvcnQgd2hlcmUgU19pZD0kaWQiLCJTX3N1YiIpKXsNCiAgICAgICAgICAgICAgICAgICRhY3RpdmU9ImFjdGl2ZSI7DQogICAgICAgICAgICAgIH1lbHNlew0KICAgICAgICAgICAgICAgICRhY3RpdmU9IiI7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICRhcGk9JGFwaS4iPGxpIGNsYXNzPVwiY29sdW1uLWxpIG5hdnMgIi4kYWN0aXZlLiJcIj4gPGEgaHJlZj1cIj90eXBlPW5ld3MmaWQ9Ii4kcm93WyJTX2lkIl0uIlwiIHRpdGxlPVwiIi4kcm93WyJTX3RpdGxlIl0uIlwiID4iLiRyb3dbIlNfdGl0bGUiXS4iPC9hPiA8L2xpPiI7DQogICAgICAgICAgICAgICAgXV0NCjwvZmgtZnVuY3Rpb24+DQoNCiAgICAgICAgDQogICAgICA8L29sPg0KICAgIDwvZGl2Pg0KICAgIDxkaXYgY2xhc3M9ImNvbHVtbi1ob3ZlciI+DQogICAgICA8dWw+DQogICAgICA8L3VsPg0KDQo8ZmgtZnVuY3Rpb24+DQokc3FsPSJzZWxlY3QgKiBmcm9tIHNsX25zb3J0IHdoZXJlIFNfZGVsPTAgYW5kIFNfc3ViPTAgb3JkZXIgYnkgU19vcmRlcixTX2lkIGRlc2MiOw0KICAgICAgICAgICAgICAgIHNbWw0KJGFwaT0kYXBpLiI8dWwgY2xhc3M9XCJoYXNcIj4iOw0KJHNxbDI9InNlbGVjdCAqIGZyb20gc2xfbnNvcnQgd2hlcmUgU19kZWw9MCBhbmQgU19zdWI9Ii4kcm93WyJTX2lkIl0uIiBvcmRlciBieSBTX29yZGVyLFNfaWQgZGVzYyI7DQogICAgICAgICAgICAgICAgczJbWw0KICAgICAgICAgICAgICAgICAgJGFwaT0kYXBpLiI8bGk+PGEgaHJlZj1cIj90eXBlPW5ld3MmaWQ9Ii4kcm93MlsiU19pZCJdLiJcIiB0aXRsZT1cIiIuJHJvdzJbIlNfdGl0bGUiXS4iXCIgPiIuJHJvdzJbIlNfdGl0bGUiXS4iPC9hPjwvbGk+IjsNCiAgICAgICAgICAgICAgICBdXQ0KJGFwaT0kYXBpLiI8L3VsPiI7DQoNCiAgICAgICAgICAgICAgICBdXQ0KPC9maC1mdW5jdGlvbj4NCiAgICA8L2Rpdj4NCiAgPC9kaXY+DQo8L2Rpdj4NCjxzZWN0aW9uIGNsYXNzPSJncmV5LWJveCI+DQogIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+DQogICAgPGRpdiBjbGFzcz0iaW5mby1jdXQiPg0KICAgICAgPHVsIGNsYXNzPSJtZXQtcGFnZS1hamF4IiBkYXRhLXNjYWxlPScnPg0KDQogICAgICAJPGZoLWZ1bmN0aW9uPg0KaWYoJGlkPT0wKXsNCiAgJHNxbD0ic2VsZWN0ICogZnJvbSBzbF9uZXdzIHdoZXJlIE5fZGVsPTAgIi4kTV9uaW5mby4iICAkTV9pbmZvIG9yZGVyIGJ5IE5fdG9wIGRlc2MsTl9vcmRlcixOX2lkIGRlc2MgbGltaXQgIi4oKCRwYWdlLTEpKjEyKS4iLDEyIjsNCn1lbHNlew0KICBpZigkU19zdWI9PTApew0KICAgICRzcWw9InNlbGVjdCAqIGZyb20gc2xfbmV3cyxzbF9uc29ydCB3aGVyZSBTX2RlbD0wICRNX2luZm8gYW5kIE5fZGVsPTAgIi4kTV9uaW5mby4iICBhbmQgTl9zb3J0PVNfaWQgYW5kIFNfc3ViPSIuJGlkLiIgb3JkZXIgYnkgTl90b3AgZGVzYyxOX29yZGVyLE5faWQgZGVzYyBsaW1pdCAiLigoJHBhZ2UtMSkqMTIpLiIsMTIiOw0KICB9ZWxzZXsNCiAgICAkc3FsPSJzZWxlY3QgKiBmcm9tIHNsX25ld3Msc2xfbnNvcnQgd2hlcmUgU19kZWw9MCAkTV9pbmZvIGFuZCBOX2RlbD0wICIuJE1fbmluZm8uIiAgYW5kIE5fc29ydD1TX2lkIGFuZCBTX2lkPSIuJGlkLiIgb3JkZXIgYnkgTl90b3AgZGVzYyxOX29yZGVyLE5faWQgZGVzYyBsaW1pdCAiLigoJHBhZ2UtMSkqMTIpLiIsMTIiOw0KICB9DQp9DQoNCgkJCXNbWw0KDQogIGlmKHN0cnBvcygkcm93WyJOX2NvbnRlbnQiXSwiW2ZoX2ZyZWVdIikhPT1mYWxzZSB8fCBwKCRyb3dbIk5fcHJpY2UiXSk9PTApew0KICAgICRpbnRybz1tYl9zdWJzdHIoc3RyaXBfdGFncyhzcGxpdHgoJHJvd1siTl9jb250ZW50Il0sIltmaF9mcmVlXSIsMCkpLDAsMjAwLCJ1dGYtOCIpOw0KICB9ZWxzZXsNCiAgICAkaW50cm89IuWGheWuueWKoOWvhiI7DQogIH0NCg0KCQkJCQ0KCQkJICAgICRhcGk9JGFwaS4iPGxpIGNsYXNzPVwic2Ntcy1waWNcIiA+PGEgaHJlZj1cIj90eXBlPW5ld3NpbmZvJmlkPSIuJHJvd1siTl9pZCJdLiJcIiB0aXRsZT1cIiIuJHJvd1siTl90aXRsZSJdLiJcIj4gPGltZyBzcmM9XCIiLnBpYygkcm93WyJOX3BpYyJdKS4iXCIgYWx0PVwiIi4kcm93WyJOX3RpdGxlIl0uIlwiPiA8c3Bhbj4NCiAgICAgICAgICA8cD4iLiRpbnRyby4iPC9wPg0KICAgICAgICAgIDxpPuWPkeW4g+aXpeacnzxlbT4iLmRhdGUoIlktbS1kIixzdHJ0b3RpbWUoJHJvd1siTl9kYXRlIl0pKS4iPC9lbT4gPGIgc3R5bGU9XCJmbG9hdDpyaWdodDttYXJnaW4tdG9wOi0zcHg7Y29sb3I6I0ZGMDAwMFwiPu+/pSIucCgkcm93WyJOX3ByaWNlIl0pLiI8L2I+PC9pPiA8Yj4iLiRyb3dbIk5fdGl0bGUiXS4iPC9iPiA8L3NwYW4+IDwvYT4gPC9saT4iOw0KCQkJICAgIF1dDQogICAgICAJPC9maC1mdW5jdGlvbj4NCg0KICAgICAgPC91bD4NCiAgICAgIDxkaXY+DQogPC9kaXY+DQogICAgICA8L2Rpdj4NCg0KPGRpdiBjbGFzcz0nbWV0X3BhZ2VyJz4NCjxkaXYgaWQ9InBhZ2VyIj48L2Rpdj4NCjwvZGl2Pg0KDQogICAgPC9kaXY+DQogIDwvZGl2Pg0KPC9zZWN0aW9uPg0KPGRpdiBzdHlsZT0icGFkZGluZy10b3A6IDIwcHg7Ij4NCjxkaXYgY2xhc3M9ImNvbnRhaW5lciI+DQogIA0KPHA+DQo8aW1nIHNyYz0ibWVkaWEvMjAxOTEyMDIyMTQ0MDl6WC5wbmciIGFsdD0i5oKo55qE572R56uZ5ZCN56ewIiBzdHlsZT0ibWFyZ2luLWJvdHRvbTogMTBweDsiPg0KPC9wPg0KPHA+DQo8ZmgtZnVuY3Rpb24+DQogICAgICAgICAgICAgICAgJHNxbD0ic2VsZWN0ICogZnJvbSBzbF9tZW51IHdoZXJlIG5vdCBVX3R5cGU9J2luZGV4JyBhbmQgbm90IFVfdHlwZT0nbGluaycgYW5kIFVfZGVsPTAgYW5kIFVfc3ViPTAgb3JkZXIgYnkgVV9vcmRlcixVX2lkIGRlc2MiOw0KICAgICAgICAgICAgICAgIHNbWw0KICAgICAgICAgICAgICAgICAgJGFwaT0kYXBpLiI8YSBzdHlsZT1cIm1hcmdpbi1yaWdodDoyMHB4XCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj1cIj90eXBlPSIuJHJvd1siVV90eXBlIl0uIiZpZD0iLiRyb3dbIlVfdHlwZWlkIl0uIlwiICB0aXRsZT1cIiIuJHJvd1siVV90aXRsZSJdLiJcIj4iLiRyb3dbIlVfdGl0bGUiXS4iPC9hPiAiOw0KICAgICAgICAgICAgICAgICAgXV0NCg0KICAgICAgICAgICAgDQogICAgICAgIDwvZmgtZnVuY3Rpb24+DQo8L3A+DQo8aW1nIHNyYz0ibWVkaWEvMjAxOTExMjYyMjQzNTJXZi5qcGciIHN0eWxlPSJ3aWR0aDogODBweDtmbG9hdDogcmlnaHQ7bWFyZ2luLXRvcDogLTEyMHB4Ij4NCg0KICANCjwvZGl2Pg0KPGhyPg0KDQogIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+DQogICAgPGRpdiBjbGFzcz0ibWV0LWxpbmtzIj4NCiAgICAgIDxvbCBjbGFzcz0iYnJlYWRjcnVtYiI+DQogICAgICAgIDxhIHN0eWxlPSJtYXJnaW4tcmlnaHQ6MzBweDtmb250LXNpemU6MTNweDsiPuWPi+aDhemTvuaOpSA6PC9hPg0KICAgICAgICA8ZmgtZnVuY3Rpb24+DQogICAgICAgICRzcWw9InNlbGVjdCAqIGZyb20gc2xfbGluayB3aGVyZSBMX2RlbD0wIG9yZGVyIGJ5IExfaWQgZGVzYyI7DQogICAgICAgIHNbWyRhcGk9JGFwaS4iPGEgc3R5bGU9XCJtYXJnaW4tcmlnaHQ6MzBweDtmb250LXNpemU6MTNweDtcIiBocmVmPVwiIi4kcm93WyJMX2xpbmsiXS4iXCIgdGFyZ2V0PVwiX2JsYW5rXCI+Ii4kcm93WyJMX3RpdGxlIl0uIjwvYT4iO11dDQogICAgICAgIDwvZmgtZnVuY3Rpb24+DQogICAgICA8L29sPg0KICAgIDwvZGl2Pg0KDQogICAgPGRpdiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4NCiAgICBDb3B5cmlnaHQgwqkgMjAxNS0yMDIwIOaCqOeahOWFrOWPuOWQjeensCDniYjmnYPmiYDmnIkgPGEgaHJlZj0iaHR0cDovL2JlaWFuLm1paXQuZ292LmNuLyIgdGFyZ2V0PSJfYmxhbmsiPuS6rElDUOWkhzAwMDAwMDAw5Y+3PC9hPg0KICA8L2Rpdj4NCjxkaXYgc3R5bGU9ImZsb2F0OiByaWdodDttYXJnaW4tdG9wOiAtNDVweCI+5Zyo57q/5a6i5pyN77yaPGEgaHJlZj0iP3R5cGU9Y29udGFjdCI+6IGU57O75a6i5pyNPC9hPjwvZGl2Pg0KDQogIDwvZGl2Pg0KPC9kaXY+DQo8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biBidG4taWNvbiBidG4tcHJpbWFyeSBidG4tc3F1YXJlZCBtZXQtc2Nyb2xsLXRvcCBoaWRlIj48aSBjbGFzcz0iaWNvbiB3Yi1jaGV2cm9uLXVwIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9pPjwvYnV0dG9uPg0KPGJ1dHRvbiB0eXBlPSJidXR0b24iIG9uY2xpY2s9IndpbmRvdy5sb2NhdGlvbi5ocmVmPSdtZW1iZXIvY2FydC5waHAnIiBjbGFzcz0iYnRuIGJ0bi1pY29uIGJ0bi1wcmltYXJ5IGJ0bi1zcXVhcmVkIG1ldC1zY3JvbGwtdG9wIGhpZGUiIHN0eWxlPSJib3R0b206IDUwcHg7Ij48aSBjbGFzcz0iaWNvbiB3Yi1zaG9wcGluZy1jYXJ0IiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9pPjwvYnV0dG9uPg0KPHNjcmlwdCBzcmM9InRlbXBsYXRlL3QxMy9za2luL2pzL3Nob3BfbGFuZ19jbi5qcyI+PC9zY3JpcHQ+IA0KPHNjcmlwdCBzcmM9InRlbXBsYXRlL3QxMy9za2luL2pzL2luZGV4LmpzIj48L3NjcmlwdD4gDQo8c2NyaXB0IHNyYz0idGVtcGxhdGUvdDEzL3NraW4vanMvc2hvcF92My5qcyI+PC9zY3JpcHQ+DQo8c2NyaXB0IHNyYz0ianMvanF1ZXJ5LnBhZ2VyLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0Pg0KPHNjcmlwdD4NCiQoIi5zY21zLXBpYyIpLmF0dHIoInN0eWxlIiwiZmxvYXQ6IG5vbmU7ZGlzcGxheTppbmxpbmUtYmxvY2s7dmVydGljYWwtYWxpZ246dG9wOyIpOw0KJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7DQogICAgJCgiI3BhZ2VyIikucGFnZXIoeyBwYWdlbnVtYmVyOiA8ZmgtZnVuY3Rpb24+ICRhcGk9JGFwaS4kcGFnZTs8L2ZoLWZ1bmN0aW9uPiwgcGFnZWNvdW50OiA8ZmgtZnVuY3Rpb24+ICRhcGk9JGFwaS4kcGFnZV9udW07PC9maC1mdW5jdGlvbj4sIGJ1dHRvbkNsaWNrQ2FsbGJhY2s6IFBhZ2VDbGljayB9KTsNCn0pOw0KDQpQYWdlQ2xpY2sgPSBmdW5jdGlvbihwYWdlY2xpY2tlZG51bWJlcikgew0KICB3aW5kb3cubG9jYXRpb249IjxmaC1mdW5jdGlvbj4kYXBpPSRhcGkudXJsKCR1cmwsInBhZ2UiLCRfR0VUWyJwYWdlIl0pOzwvZmgtZnVuY3Rpb24+JnBhZ2U9IitwYWdlY2xpY2tlZG51bWJlcjsNCn0NCjwvc2NyaXB0Pg0KPGxpbmsgaHJlZj0nY3NzL2xhbnJlbnpoaWppYS5jc3MnIHJlbD0nc3R5bGVzaGVldCcgdHlwZT0ndGV4dC9jc3MnIC8+PHNjcmlwdCBzcmM9J2pzL2pxdWVyeS5LaW5TbGlkZXNob3ctMS4yLjEubWluLmpzJyB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPjwvc2NyaXB0PjxkaXYgaWQ9J29ubGluZV9xcV9sYXllcicgc3R5bGU9J3otaW5kZXg6MjAwMDsnPjxkaXYgaWQ9J29ubGluZV9xcV90YWInPjxkaXYgY2xhc3M9J29ubGluZV9pY29uJz48YSBpZD0nZmxvYXRTaG93JyBzdHlsZT0nZGlzcGxheTpibG9jazsnIGhyZWY9J2phdmFzY3JpcHQ6dm9pZCgwKTsnPiZuYnNwOzwvYT48YSAgaWQ9J2Zsb2F0SGlkZScgc3R5bGU9J2Rpc3BsYXk6bm9uZTsnIGhyZWY9J2phdmFzY3JpcHQ6dm9pZCgwKTsnPiZuYnNwOzwvYT48L2Rpdj48L2Rpdj48ZGl2IGlkPSdvbmxpbmVTZXJ2aWNlJyBzdHlsZT0nZGlzcGxheTpub25lJz48ZGl2IGNsYXNzPSdvbmxpbmVfd2luZG93cyBvdmVyeic+PGRpdiBjbGFzcz0nb25saW5lX3dfdG9wJz48L2Rpdj48ZGl2IGNsYXNzPSdvbmxpbmVfd19jIG92ZXJ6Jz48ZGl2IGNsYXNzPSdvbmxpbmVfYmFyIGV4cGFuZCcgaWQ9J29ubGluZVNvcnQxJz48aDI+PGEgb25jbGljaz0nY2hhbmdlT25saW5lKDEpJz7lnKjnur/lrqLmnI08L2E+PC9oMj48ZGl2IGNsYXNzPSdvbmxpbmVfY29udGVudCBvdmVyeicgaWQ9J29ubGluZVR5cGUxJz48dWwgY2xhc3M9J292ZXJ6Jz48bGk+PGEgdGl0bGU9J+eCueWHu+i/memHjOe7meaIkeWPkea2iOaBrycgaHJlZj0naHR0cDovL3dwYS5xcS5jb20vbXNncmQ/dj0zJnVpbj0xMjMxMjMxMjMmc2l0ZT1xcSZtZW51PXllcycgdGFyZ2V0PSdfYmxhbmsnIGNsYXNzPSdxcV9pY29uJz7llK7liY3lkqjor6I8L2E+PC9saT48bGk+PGEgdGl0bGU9J+eCueWHu+i/memHjOe7meaIkeWPkea2iOaBrycgaHJlZj0naHR0cDovL3d3dy50YW9iYW8uY29tL3dlYnd3L3d3LnBocD92ZXI9MyZ0b3VpZD10YW9iYW8mc2l0ZWlkPWNudGFvYmFvJnN0YXR1cz0xJmNoYXJzZXQ9dXRmLTgnIHRhcmdldD0nX2JsYW5rJyBjbGFzcz0nd3dfaWNvbic+5ZSu5ZCO5pyN5YqhPC9hPjwvbGk+PC91bD48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSdvbmxpbmVfYmFyIGNvbGxhcHNlMicgaWQ9J29ubGluZVNvcnQyJz48aDI+PGEgb25jbGljaz0nY2hhbmdlT25saW5lKDIpJz7nlLXor53lrqLmnI08L2E+PC9oMj48ZGl2IGNsYXNzPSdvbmxpbmVfY29udGVudCBvdmVyeicgaWQ9J29ubGluZVR5cGUyJz48dWwgY2xhc3M9J292ZXJ6Jz48bGk+MDEwLTEwMDg2PC9saT48L3VsPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9J29ubGluZV9iYXIgY29sbGFwc2UyJyBpZD0nb25saW5lU29ydDMnPjxoMj48YSBvbmNsaWNrPSdjaGFuZ2VPbmxpbmUoMyknPue9keermeS6jOe7tOeggTwvYT48L2gyPjxkaXYgY2xhc3M9J29ubGluZV9jb250ZW50IG92ZXJ6JyBpZD0nb25saW5lVHlwZTMnPjx1bCBjbGFzcz0nb3ZlcnonPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0JyBzcmM9J2pzL3FyY29kZS5taW4uanMnPjwvc2NyaXB0PjxkaXYgaWQ9J3FyY29kZScgc3R5bGU9J21hcmdpbjowIDAgMTBweCAxMHB4Oyc+PC9kaXY+PHNjcmlwdD52YXIgcXJjb2RlID0gbmV3IFFSQ29kZSgncXJjb2RlJywge3dpZHRoOiAxMTAsaGVpZ2h0OiAxMTAsY29sb3JEYXJrOiAnIzAwMDAwMCcsY29sb3JMaWdodDogJyNmZmZmZmYnLGNvcnJlY3RMZXZlbDogUVJDb2RlLkNvcnJlY3RMZXZlbC5IfSk7cXJjb2RlLm1ha2VDb2RlKCdodHRwOi8vbG9jYWxob3N0OjUwMTMnKTs8L3NjcmlwdD48L3VsPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9J29ubGluZV9iYXIgY29sbGFwc2UyJyBpZD0nb25saW5lU29ydDQnPjxoMj48YSBvbmNsaWNrPSdjaGFuZ2VPbmxpbmUoNCknPuW+ruS/oeWFrOS8l+WPtzwvYT48L2gyPjxkaXYgY2xhc3M9J29ubGluZV9jb250ZW50IG92ZXJ6JyBpZD0nb25saW5lVHlwZTQnPjx1bCBjbGFzcz0nb3ZlcnonPjxpbWcgc3JjPSdtZWRpYS8yMDE5MTEyNjIyNDM1MldmLmpwZycgd2lkdGg9JzEyMCcgLz48L3VsPjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9J29ubGluZV93X2JvdHRvbSc+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+DQo8YSBocmVmPSdqYXZhc2NyaXB0OjsnIHRhcmdldD0nX2JsYW5rJyBvbmNsaWNrPSdhbGVydCgi5pys572R56uZ55Sx44CK5Y+R6LSnMTAw44CL5YWN6LS554mI5pCt5bu677yM6K+35Yu/55So5L2c5ZWG5Lia55So6YCUIik7d2luZG93LmxvY2F0aW9uLmhyZWY9Imh0dHA6Ly9mYWh1bzEwMC5jbiInIHRpdGxlPSflj5HotKcxMDAnPjxkaXYgc3R5bGU9InBvc2l0aW9uOiBmaXhlZDt6LWluZGV4Ojk5OTk5O2JvdHRvbTogMTBweDtsZWZ0OiBjYWxjKDUwJSAtIDEwMHB4KTtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsMC43KTt0ZXh0LWFsaWduOiBjZW50ZXI7d2lkdGg6IDIwMHB4O2hlaWdodDogMzBweDtsaW5lLWhlaWdodDogMzBweDtib3JkZXItcmFkaXVzOiAzMHB4O2ZvbnQtc2l6ZTogMThweDtjb2xvcjogIzMzMzMzMyI+PGltZyBzcmM9Imh0dHA6Ly9mYWh1bzEwMC5jbi9tZWRpYS8yMDIwMTAwOTEzNDEyMGxVLmljbyIgc3R5bGU9ImhlaWdodDogMjBweDt3aWR0aDogMjBweDttYXJnaW4tcmlnaHQ6IDVweDt2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyI+5Y+R6LSnMTAwPC9kaXY+PC9hPjwvYm9keT4NCjwvaHRtbD4=