7b59d2a9c68b23897d1b755957daad48PCEtLTc3NzNtYVNYYmF5UjdpRTFURTZIemNWTUNob3N1NkhEQU91WEhpcG1qUFNqSk1EU0hGT0owNVFmOHg1cVo0Y1VQRDQ4aFhxdmVURitoYTllZHRvLzdzSUhoVHhIZ1NyVlhRb3BYbGZUSTZQUjZyS1htWHplbVVKOVNuQjNrMk50SHNvNzdCaU1sbjhZTHVWZUpYREpvQ0NPRXNqSDlHVjh1ZmstLT48ZmgtZnVuY3Rpb24+DQokcGFnZT0kX0dFVFsicGFnZSJdOw0KJHRhZz10KCRfR0VUWyJ0YWciXSk7DQoNCiR1cmw9Z2V0aHR0cCgpLiRfU0VSVkVSWydIVFRQX0hPU1QnXS4kX1NFUlZFUlsnUEhQX1NFTEYnXS4nPycuJF9TRVJWRVJbJ1FVRVJZX1NUUklORyddOw0KZnVuY3Rpb24gdXJsKCR1cmwsJGtleSwkdmFsdWUpew0KICAkdXJsPXN0cl9yZXBsYWNlKCImIi4ka2V5LiI9Ii5zdHJfcmVwbGFjZSgiJTNBIiwiOiIsdXJsZW5jb2RlKCR2YWx1ZSkpLCIiLCR1cmwpOw0KICByZXR1cm4gJHVybDsNCn0NCg0KaWYoJHRhZz09IiIpew0KICAkdGFnaW5mbz0iIjsNCn1lbHNlew0KICAkdGFnaW5mbz0iIGFuZCBDT05DQVQoXCIgXCIsUF90YWcsXCIgXCIpIGxpa2UgJyUgIi4kdGFnLiIgJSciOw0KfQ0KDQokTV9pZD0kX0dFVFsiTV9pZCJdOw0KaWYoJHBhZ2U9PSIiKXsNCiAgJHBhZ2U9MTsNCn0NCmlmKCRNX2lkIT0iIil7DQogICRNX2luZm89IiBhbmQgUF9taWQ9JE1faWQgIi4kdGFnaW5mbzsNCn1lbHNlew0KICAkTV9pbmZvPSIgYW5kIFBfc2g9MSIuJHRhZ2luZm87DQp9DQoNCiRzcWw9InNlbGVjdCAqIGZyb20gc2xfcHNvcnQgd2hlcmUgU19pZD0iLiRpZDsNCiAgJHJlc3VsdCA9IG15c3FsaV9xdWVyeSgkY29ubiwgJHNxbCk7DQogICRyb3cgPSBteXNxbGlfZmV0Y2hfYXNzb2MoJHJlc3VsdCk7DQogIGlmIChteXNxbGlfbnVtX3Jvd3MoJHJlc3VsdCkgPiAwKSB7DQogICAgJFNfc3ViPSRyb3dbIlNfc3ViIl07DQogIH0NCg0KaWYoJGlkPT0wKXsNCiAgJHNxbD0ic2VsZWN0IGNvdW50KFBfaWQpIGFzIFBfY291bnQgZnJvbSBzbF9wcm9kdWN0IHdoZXJlIFBfZGVsPTAgIi4kTV9waW5mby4iICAiLnNodXhpbmcoIlBfc2h1eGluZyIpLiIgJE1faW5mbyBvcmRlciBieSBQX29yZGVyLFBfaWQgZGVzYyI7DQp9ZWxzZXsNCiAgaWYoJFNfc3ViPT0wKXsNCiAgICAkc3FsPSJzZWxlY3QgY291bnQoUF9pZCkgYXMgUF9jb3VudCBmcm9tIHNsX3Byb2R1Y3Qsc2xfcHNvcnQgd2hlcmUgU19kZWw9MCAiLnNodXhpbmcoIlBfc2h1eGluZyIpLiIgJE1faW5mbyBhbmQgUF9kZWw9MCAiLiRNX3BpbmZvLiIgIGFuZCBQX3NvcnQ9U19pZCBhbmQgU19zdWI9Ii4kaWQuIiBvcmRlciBieSBQX29yZGVyLFBfaWQgZGVzYyI7DQogIH1lbHNlew0KICAgICRzcWw9InNlbGVjdCBjb3VudChQX2lkKSBhcyBQX2NvdW50IGZyb20gc2xfcHJvZHVjdCxzbF9wc29ydCB3aGVyZSBTX2RlbD0wICIuc2h1eGluZygiUF9zaHV4aW5nIikuIiAkTV9pbmZvIGFuZCBQX2RlbD0wICIuJE1fcGluZm8uIiAgYW5kIFBfc29ydD1TX2lkIGFuZCBTX2lkPSIuJGlkLiIgb3JkZXIgYnkgUF9vcmRlcixQX2lkIGRlc2MiOw0KICB9DQp9DQoNCiRyZXN1bHQgPSBteXNxbGlfcXVlcnkoJGNvbm4sICRzcWwpOw0KJHJvdyA9IG15c3FsaV9mZXRjaF9hc3NvYygkcmVzdWx0KTsNCiRQX2NvdW50PSRyb3dbIlBfY291bnQiXTsNCg0KJHBhZ2VfbnVtPWludHZhbCgkUF9jb3VudC8xMCkrMTsNCmlmKCRQX2NvdW50JTEwID09MCl7DQogICRwYWdlX251bT0kcGFnZV9udW0tMTsNCn0NCg0KZnVuY3Rpb24gaXNfaGF2ZXMoJGEsJGIpew0KICBpZihpbl9hcnJheSgkYSwkYikpew0KICAgICAgcmV0dXJuIHRydWU7DQogIH1lbHNlew0KICAgICAgcmV0dXJuIGZhbHNlOw0KICB9DQp9DQoNCjwvZmgtZnVuY3Rpb24+DQoNCjwhRE9DVFlQRSBIVE1MPg0KPGh0bWwgY2xhc3M9IiAgIj4NCjxoZWFkPg0KPG1ldGEgbmFtZT0icmVuZGVyZXIiIGNvbnRlbnQ9IndlYmtpdCI+DQo8bWV0YSBjaGFyc2V0PSJ1dGYtOCIvPg0KPG1ldGEgaHR0cC1lcXVpdj0iWC1VQS1Db21wYXRpYmxlIiBjb250ZW50PSJJRT1lZGdlLGNocm9tZT0xIj4NCjxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wLCB1c2VyLXNjYWxhYmxlPTAsIG1pbmltYWwtdWkiPg0KPG1ldGEgbmFtZT0iZ2VuZXJhdG9yIiBjb250ZW50PSJmYWh1bzEwMC5jbiIgIGRhdGEtdmFyaWFibGU9Ii8sY24sMTAwMDEsLDEwMDAxLE0xMTU2MDE0IiAvPg0KPHRpdGxlPltTX3RpdGxlXSAtIOaCqOeahOe9keermeWQjeensCAtIFBvd2VyZWQgYnkg5Y+R6LSnMTAwPC90aXRsZT4NCjxsaW5rIGhyZWY9Im1lZGlhLzIwMTkxMjA4MTEzMDM1ZU0uaWNvIiByZWw9InNob3J0Y3V0IGljb24iIC8+DQo8bWV0YSBuYW1lPSJkZXNjcmlwdGlvbiIgY29udGVudD0iW1NfY29udGVudF0iIC8+DQo8bWV0YSBuYW1lPSJrZXl3b3JkcyIgY29udGVudD0iW1Nfa2V5d29yZHNdIiAvPg0KPG1ldGEgbmFtZT0iYXV0aG9yIiBjb250ZW50PSJwb3dlcmVkIGJ5IGZhaHVvMTAwLmNuIiAvPg0KPGxpbmsgcmVsPSdzdHlsZXNoZWV0JyBocmVmPSd0ZW1wbGF0ZS90MTMvc2tpbi9jc3MvaW5kZXguY3NzJz4NCjxsaW5rIGhyZWY9ImNzcy9QYWdlci5jc3MiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIC8+DQoNCjxzY3JpcHQ+CnZhciBfaG10ID0gX2htdCB8fCBbXTsKKGZ1bmN0aW9uKCkgewogIHZhciBobSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpOwogIGhtLnNyYyA9ICJodHRwczovL2htLmJhaWR1LmNvbS9obS5qcz9lMmVjYzVhODI2OGVhMWE0Yzk4NjJlYzdiNGVlNWIxMSI7CiAgdmFyIHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0IilbMF07IAogIHMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoaG0sIHMpOwp9KSgpOwo8L3NjcmlwdD4KPC9oZWFkPg0KPGJvZHk+DQo8IS0tW2lmIGx0ZSBJRSA4XT4NCjxkaXYgY2xhc3M9InRleHQtY2VudGVyIHBhZGRpbmctdG9wLTUwIHBhZGRpbmctYm90dG9tLTUwIGJnLWJsdWUtZ3JleS0xMDAiPg0KICA8cCBjbGFzcz0iYnJvd3NlcnVwZ3JhZGUgZm9udC1zaXplLTE4Ij4NCgnkvaDmraPlnKjkvb/nlKjkuIDkuKo8c3Ryb25nPui/h+aXtjwvc3Ryb25nPueahOa1j+iniOWZqOOAguivtzxhIGhyZWY9Imh0dHA6Ly9icm93c2VoYXBweS5jb20vIiB0YXJnZXQ9Il9ibGFuayI+5Y2H57qn5oKo55qE5rWP6KeI5ZmoPC9hPu+8jOS7peaPkOmrmOaCqOeahOS9k+mqjOOAgg0KICA8L3A+DQo8L2Rpdj4NCjwhW2VuZGlmXS0tPg0KPGRpdiBjbGFzcz0ibG9hZC1ib3giPjwvZGl2Pg0KPGhlYWRlcj4NCiAgPGRpdiBjbGFzcz0iaGVhZC1ib3giIHN0eWxlPSJiYWNrZ3JvdW5kOiAjZmZmZmZmO2hlaWdodDogNzBweDsiPg0KICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+DQogICAgICA8ZGl2IGNsYXNzPSJoZWFkLWxlZnQiPg0KICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkLWxlZnQtd3JhcHBlciI+DQogICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZC1sZWZ0LXNsaWRlIj4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxvZ28tYm94IiBzdHlsZT0iaGVpZ2h0OiA3MHB4O2xpbmUtaGVpZ2h0OiA3MHB4OyI+IDxhIGhyZWY9Ii4vIiB0aXRsZT0i5oKo55qE572R56uZ5ZCN56ewIj4gPGltZyBzcmM9Im1lZGlhLzIwMTkxMjAyMjE0NDA5elgucG5nIiBhbHQ9IuaCqOeahOe9keermeWQjeensCIgc3R5bGU9Im1heC1oZWlnaHQ6IDcwcHgiPiA8L2E+IDwvZGl2Pg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VhcmNoLWJveCBoaWRkZW4teHMiIHN0eWxlPSJtYXJnaW46IDE1cHggIj4NCiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWFyY2gtY3V0Ij4NCiAgICAgICAgICAgIDxmb3JtICBuYW1lPSJmb3Jtc2VhcmNoIiBhY3Rpb249Ii4vP3R5cGU9c2VhcmNoIiBtZXRob2Q9InBvc3QiIHN0eWxlPSJib3JkZXI6IHNvbGlkIDFweCAjRUVFRUVFO2JvcmRlci1yYWRpdXM6IDIwcHg7ICI+DQogICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJrZXl3b3JkIiB2YWx1ZT0iIiBwbGFjZWhvbGRlcj0i6L6T5YWl5YWz6ZSu6K+NIiBzdHlsZT0iYm9yZGVyLXJhZGl1czogMjBweDtib3JkZXI6IG5vbmU7aGVpZ2h0OiA0MHB4Ij4NCiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZmEgZmEtc2VhcmNoIiB0eXBlPSJzdWJtaXQiIHN0eWxlPSJib3JkZXItcmFkaXVzOiAyNXB4O2JvcmRlcjogbm9uZTtoZWlnaHQ6IDQwcHg7bGluZS1oZWlnaHQ6IDM4cHgiPjwvYnV0dG9uPg0KICAgICAgICAgICAgPC9mb3JtPg0KICAgICAgICAgIDwvZGl2Pg0KICAgICAgICA8L2Rpdj4NCiAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgPC9kaXY+DQogICAgICA8L2Rpdj4NCiAgICAgIDxkaXYgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTt0b3A6IDE1cHg7cmlnaHQ6IDEwcHg7Ij4NCiAgICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTogaW5saW5lLWJsb2NrOyIgY2xhc3M9ImhpZGRlbi14cyI+DQogICAgICAgIDxhIGhyZWY9Im1lbWJlci9oaXN0b3J5LnBocD90eXBlPTIiPuWtpuS5oOiusOW9lTwvYT4gJm5ic3A7fCZuYnNwOyANCiAgICAgICAgPGEgaHJlZj0ibWVtYmVyL3ZpcC5waHAiPuS8muWRmOeJueadgzwvYT4mbmJzcDsgJm5ic3A7ICZuYnNwOyANCiAgICAgIDwvZGl2Pg0KICAgICAgDQogICAgICA8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kOiAjRkZENTAwO2JvcmRlci1yYWRpdXM6IDIwcHg7cGFkZGluZzogMCAyMHB4O3RvcDoxNXB4O2Rpc3BsYXk6IGlubGluZS1ibG9jazsiPiANCiAgICAgICAgPGZoLWZ1bmN0aW9uPg0KICAgICAgaWYoJF9TRVNTSU9OWyJNX2xvZ2luIl09PSIiKXsNCiAgICAgICAgJGFwaT0iPGEgY2xhc3M9XCJsb2dpblwiIGhyZWY9XCJtZW1iZXIvbG9naW4ucGhwXCI+55m75b2VPC9hPg0KICAgICAgICAgICAgICAmbmJzcDt8Jm5ic3A7DQogICAgICAgICAgICAgIDxhIGNsYXNzPVwibG9naW5cIiBocmVmPVwibWVtYmVyL3JlZy5waHBcIj7ms6jlhow8L2E+IjsNCiAgICAgIH1lbHNlew0KICAgICAgICAkYXBpPSI8YSBjbGFzcz1cImxvZ2luXCIgaHJlZj1cIm1lbWJlclwiPiIuJF9TRVNTSU9OWyJNX2xvZ2luIl0uIjwvYT4NCiAgICAgICAgICAgICAgJm5ic3A7fCZuYnNwOw0KICAgICAgICAgICAgICA8YSBjbGFzcz1cImxvZ2luXCIgaHJlZj1cIm1lbWJlci9sb2dpbi5waHA/YWN0aW9uPXVubG9naW5cIj7pgIDlh7o8L2E+IjsNCiAgICAgIH0NCiAgICAgIDwvZmgtZnVuY3Rpb24+DQogICAgICA8L2Rpdj4NCiAgICAgIDwvZGl2Pg0KICAgIDwvZGl2Pg0KICA8L2Rpdj4NCiAgPG5hdj4NCiAgICA8ZGl2IGNsYXNzPSJuZWNrLWJveCIgc3R5bGU9ImJhY2tncm91bmQ6ICNmN2Y3ZjciPg0KICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibmF2LWJveCBpbmRleCIgc3R5bGU9Im1hcmdpbjogNXB4O2Zsb2F0OiBsZWZ0OyI+DQogICAgICAgICAgDQogICAgICAgICAgPGRpdiBjbGFzcz0ibmF2LWN1dCI+DQogICAgICAgICAgICA8dWwgY2xhc3M9Im5hdi11bCI+DQoNCiAgICAgICAgICAgICAgPGZoLWZ1bmN0aW9uPg0KICAgICAgICAgICAgICAgICRzcWw9InNlbGVjdCAqIGZyb20gc2xfbWVudSB3aGVyZSBVX2RlbD0wIGFuZCBVX3N1Yj0wIG9yZGVyIGJ5IFVfb3JkZXIsVV9pZCBkZXNjIjsNCiAgICAgICAgICAgICAgICBzW1sNCiAgICAgICAgICAgICAgICAgIGlmKCR0eXBlPT0kcm93WyJVX3R5cGUiXSAmJiAkaWQ9PSRyb3dbIlVfdHlwZWlkIl0pew0KICAgICAgICAgICAgICAgICAgICAkY2xhc3M9Im5hdi1saSBhY3RpdmUiOw0KICAgICAgICAgICAgICAgICAgfWVsc2V7DQogICAgICAgICAgICAgICAgICAgICRjbGFzcz0ibmF2LWxpIG1hcmdpbi1sZWZ0LTAiOw0KICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICBpZigkcm93WyJVX3R5cGUiXT09ImxpbmsiKXsNCiAgICAgICAgICAgICAgICAgICAgJGxpbms9JHJvd1siVV9saW5rIl07DQogICAgICAgICAgICAgICAgICAgICR0YXJnZXQ9Il9ibGFuayI7DQogICAgICAgICAgICAgICAgICB9ZWxzZXsNCiAgICAgICAgICAgICAgICAgICAgJGxpbms9Ij90eXBlPSIuJHJvd1siVV90eXBlIl0uIiZpZD0iLiRyb3dbIlVfdHlwZWlkIl07DQogICAgICAgICAgICAgICAgICAgICR0YXJnZXQ9Il9zZWxmIjsNCiAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgJGFwaT0kYXBpLiI8bGkgY2xhc3M9XCIiLiRjbGFzcy4iXCI+PGEgaHJlZj1cIiIuJGxpbmsuIlwiIHRhcmdldD1cIiIuJHRhcmdldC4iXCIgdGl0bGU9XCIiLiRyb3dbIlVfdGl0bGUiXS4iXCIgPiIuJHJvd1siVV90aXRsZSJdLiI8L2E+PC9saT4iOw0KICAgICAgICAgICAgICAgIF1dDQoNCiAgICAgICAgICAgICAgPC9maC1mdW5jdGlvbj4NCiAgICAgICAgICAgIDwvdWw+DQogICAgICAgICAgPC9kaXY+DQogICAgICAgICAgPGRpdiBjbGFzcz0ibmF2LWhvdmVyIj4NCg0KICAgICAgICAgICAgPGZoLWZ1bmN0aW9uPg0KICAgICAgICAgICAgJHNxbD0ic2VsZWN0ICogZnJvbSBzbF9tZW51IHdoZXJlIFVfZGVsPTAgYW5kIFVfc3ViPTAgb3JkZXIgYnkgVV9vcmRlcixVX2lkIGRlc2MiOw0KICAgICAgICAgICAgICAgIHNbWw0KICAgICAgICAgICAgICAgICRhcGk9JGFwaS4iPHVsPiI7DQoNCiAgICAgICAgICAgICAgICAgICAgJHNxbDI9InNlbGVjdCAqIGZyb20gc2xfbWVudSB3aGVyZSBVX2RlbD0wIGFuZCBVX3N1Yj0iLiRyb3dbIlVfaWQiXS4iIG9yZGVyIGJ5IFVfb3JkZXIsVV9pZCBkZXNjIjsNCiAgICAgICAgICAgICAgICAgICAgczJbWw0KICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgIGlmKCRyb3cyWyJVX3R5cGUiXT09ImxpbmsiKXsNCiAgICAgICAgICAgICAgICAgICAgICAgICRsaW5rMj0kcm93MlsiVV9saW5rIl07DQogICAgICAgICAgICAgICAgICAgICAgICAkdGFyZ2V0PSJfYmxhbmsiOw0KICAgICAgICAgICAgICAgICAgICAgIH1lbHNlew0KICAgICAgICAgICAgICAgICAgICAgICAgJGxpbmsyPSI/dHlwZT0iLiRyb3cyWyJVX3R5cGUiXS4iJmlkPSIuJHJvdzJbIlVfdHlwZWlkIl07DQogICAgICAgICAgICAgICAgICAgICAgICAkdGFyZ2V0PSJfc2VsZiI7DQogICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRhcGk9JGFwaS4iPGxpPjxhIGhyZWY9XCIiLiRsaW5rMi4iXCIgdGFyZ2V0PVwiIi4kdGFyZ2V0LiJcIiB0aXRsZT1cIiIuJHJvdzJbIlVfdGl0bGUiXS4iXCIgPiIuJHJvdzJbIlVfdGl0bGUiXS4iPC9hPjwvbGk+IjsNCiAgICAgICAgICAgICAgICAgICAgICAgIF1dDQoNCiAgICAgICAgICAgICAgICAgICRhcGk9JGFwaS4iPC91bD4iOw0KICAgICAgICAgICAgICAgICAgICBdXQ0KICAgICAgICAgICAgPC9maC1mdW5jdGlvbj4NCiAgICAgICAgICAgIA0KICAgICAgICAgIDwvZGl2Pg0KICAgICAgICA8L2Rpdj4NCiAgICAgIDwvZGl2Pg0KICAgIDwvZGl2Pg0KICA8L25hdj4NCiAgPGRpdiBjbGFzcz0ibWV0LWJhbm5lci1ueSB2ZXJ0aWNhbC1hbGlnbiB0ZXh0LWNlbnRlciIgc3R5bGU9Jyc+DQogICAgPGgxIGNsYXNzPSJ2ZXJ0aWNhbC1hbGlnbi1taWRkbGUiIHN0eWxlPSdjb2xvcjojZmZmZmZmOyc+W1NfdGl0bGVdPC9oMT4NCiAgPC9kaXY+DQo8L2hlYWRlcj4NCg0KPGRpdiBjbGFzcz0iY29sdW1uLXNpZGUgIj4NCiAgPGRpdiBjbGFzcz0iY29udGFpbmVyIG1vYmlsZS1ub3QtcGFkZGluZyI+DQogICAgPGRpdiBjbGFzcz0iY29sdW1uLW5hdiI+DQogICAgICA8b2wgY2xhc3M9ImNvbHVtbi11bCI+DQo8bGk+PGE+5ZWG5ZOB5YiG57G777yaPC9hPjwvbGk+DQogICAgICAgIDxsaSBjbGFzcz0iY29sdW1uLWxpIDxmaC1mdW5jdGlvbj5pZigkaWQ9PTApeyRhcGk9JGFwaS4iYWN0aXZlIjt9ZWxzZXskYXBpPSRhcGkuIiI7fTwvZmgtZnVuY3Rpb24+Ij4gPGEgaHJlZj0iP3R5cGU9cHJvZHVjdCZpZD0wIj7lhajpg6jllYblk4E8L2E+IDwvbGk+DQogICAgICAgIA0KPGZoLWZ1bmN0aW9uPg0KDQokc3FsPSJzZWxlY3QgKiBmcm9tIHNsX3Bzb3J0IHdoZXJlIFNfZGVsPTAgYW5kIFNfc3ViPTAgb3JkZXIgYnkgU19vcmRlcixTX2lkIGRlc2MiOw0KICAgICAgICAgICAgICAgIHNbWw0KDQoJICAgICAgICAgICAgaWYoJHJvd1siU19pZCJdPT0kaWQgfHwgJHJvd1siU19pZCJdPT1nZXRycygic2VsZWN0IFNfc3ViIGZyb20gc2xfcHNvcnQgd2hlcmUgU19pZD0kaWQiLCJTX3N1YiIpKXsNCgkgICAgICAgICAgICAgICAgJGFjdGl2ZT0iYWN0aXZlIjsNCgkgICAgICAgICAgICB9ZWxzZXsNCgkgICAgICAgICAgICAJJGFjdGl2ZT0iIjsNCgkgICAgICAgIAl9DQogICAgICAgICAgICAgICAgICAkYXBpPSRhcGkuIjxsaSBjbGFzcz1cImNvbHVtbi1saSBuYXZzICIuJGFjdGl2ZS4iXCI+IDxhIGhyZWY9XCI/dHlwZT1wcm9kdWN0JmlkPSIuJHJvd1siU19pZCJdLiJcIiB0aXRsZT1cIiIuJHJvd1siU190aXRsZSJdLiJcIiA+Ii4kcm93WyJTX3RpdGxlIl0uIjwvYT4gPC9saT4iOw0KICAgICAgICAgICAgICAgIF1dDQo8L2ZoLWZ1bmN0aW9uPg0KICAgICAgICANCiAgICAgIDwvb2w+DQogICAgPC9kaXY+DQogICAgPGRpdiBjbGFzcz0iY29sdW1uLWhvdmVyIj4NCiAgICAgIDx1bD4NCiAgICAgIDwvdWw+DQogICAgICA8dWw+DQogICAgICA8L3VsPg0KDQo8ZmgtZnVuY3Rpb24+DQokc3FsPSJzZWxlY3QgKiBmcm9tIHNsX3Bzb3J0IHdoZXJlIFNfZGVsPTAgYW5kIFNfc3ViPTAgb3JkZXIgYnkgU19vcmRlcixTX2lkIGRlc2MiOw0KICAgICAgICAgICAgICAgIHNbWw0KJGFwaT0kYXBpLiI8dWwgY2xhc3M9XCJoYXNcIj4iOw0KJHNxbDI9InNlbGVjdCAqIGZyb20gc2xfcHNvcnQgd2hlcmUgU19kZWw9MCBhbmQgU19zdWI9Ii4kcm93WyJTX2lkIl0uIiBvcmRlciBieSBTX29yZGVyLFNfaWQgZGVzYyI7DQogICAgICAgICAgICAgICAgczJbWw0KICAgICAgICAgICAgICAgICAgJGFwaT0kYXBpLiI8bGk+PGEgaHJlZj1cIj90eXBlPXByb2R1Y3QmaWQ9Ii4kcm93MlsiU19pZCJdLiJcIiB0aXRsZT1cIiIuJHJvdzJbIlNfdGl0bGUiXS4iXCIgPiIuJHJvdzJbIlNfdGl0bGUiXS4iPC9hPjwvbGk+IjsNCiAgICAgICAgICAgICAgICBdXQ0KJGFwaT0kYXBpLiI8L3VsPiI7DQoNCiAgICAgICAgICAgICAgICBdXQ0KPC9maC1mdW5jdGlvbj4NCiAgICA8L2Rpdj4NCiAgPC9kaXY+DQo8L2Rpdj4NCg0KPGRpdiBzdHlsZT0iaGVpZ2h0OiAxMHB4O2JhY2tncm91bmQ6ICNmN2Y3ZjciPjwvZGl2Pg0KPGRpdiBjbGFzcz0iY29sdW1uLXNpZGUgIiBzdHlsZT0iei1pbmRleDogMSI+DQogIDxkaXYgY2xhc3M9ImNvbnRhaW5lciBtb2JpbGUtbm90LXBhZGRpbmciPg0KPGZoLWZ1bmN0aW9uPg0KDQokYXJyID0gYXJyYXkoKTsNCmlmKCRpZD09MCl7DQogIC8vJHNxbD0ic2VsZWN0ICogZnJvbSBzbF9wcm9kdWN0IHdoZXJlIFBfZGVsPTAgIi4kTV9waW5mby4iICAkTV9pbmZvIG9yZGVyIGJ5IFBfdG9wIGRlc2MsUF9vcmRlcixQX2lkIGRlc2MiOw0KfWVsc2V7DQogIGlmKCRTX3N1Yj09MCl7DQogICAgJHNxbD0ic2VsZWN0ICogZnJvbSBzbF9wcm9kdWN0LHNsX3Bzb3J0IHdoZXJlIFNfZGVsPTAgJE1faW5mbyBhbmQgUF9kZWw9MCAiLiRNX3BpbmZvLiIgIGFuZCBQX3NvcnQ9U19pZCBhbmQgU19zdWI9Ii4kaWQuIiBvcmRlciBieSBQX3RvcCBkZXNjLFBfb3JkZXIsUF9pZCBkZXNjIjsNCiAgfWVsc2V7DQogICAgJHNxbD0ic2VsZWN0ICogZnJvbSBzbF9wcm9kdWN0LHNsX3Bzb3J0IHdoZXJlIFNfZGVsPTAgJE1faW5mbyBhbmQgUF9kZWw9MCAiLiRNX3BpbmZvLiIgIGFuZCBQX3NvcnQ9U19pZCBhbmQgU19pZD0iLiRpZC4iIG9yZGVyIGJ5IFBfdG9wIGRlc2MsUF9vcmRlcixQX2lkIGRlc2MiOw0KICB9DQp9DQoNCiRyZXN1bHQgPSBteXNxbGlfcXVlcnkoJGNvbm4sICAkc3FsKTsNCmlmIChteXNxbGlfbnVtX3Jvd3MoJHJlc3VsdCkgPiAwKSB7DQp3aGlsZSgkcm93ID0gbXlzcWxpX2ZldGNoX2Fzc29jKCRyZXN1bHQpKSB7DQogICAgICAgICRzeD1leHBsb2RlKCJcclxuIiwkcm93WyJQX3NodXhpbmciXSk7DQogICAgICAgIGZvcigkaT0wOyRpPGNvdW50KCRzeCk7JGkrKyl7DQogICAgICAgICAgaWYoc3BsaXR4KCRzeFskaV0sIjoiLDApIT0iIil7DQogICAgICAgICAgICAkYz1qc29uX2RlY29kZSgie1wiU190aXRsZVwiOlwiIi5zcGxpdHgoJHN4WyRpXSwiOiIsMCkuIlwifSIsdHJ1ZSk7DQogICAgICAgICAgICBpZighaXNfaGF2ZXMoJGMsJGFycikpew0KICAgICAgICAgICAgICBhcnJheV9wdXNoKCRhcnIsJGMpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCn0gDQoNCg0KZm9yKCRpPTA7JGk8Y291bnQoJGFycik7JGkrKyl7DQogICRhcnJbJGldWyJsaXN0Il09YXJyYXkoKTsNCiAgJHJlc3VsdCA9IG15c3FsaV9xdWVyeSgkY29ubiwgICRzcWwpOw0KICBpZiAobXlzcWxpX251bV9yb3dzKCRyZXN1bHQpID4gMCkgew0KICB3aGlsZSgkcm93ID0gbXlzcWxpX2ZldGNoX2Fzc29jKCRyZXN1bHQpKSB7DQogICAgICAgICAgJHN4PWV4cGxvZGUoIlxyXG4iLCRyb3dbIlBfc2h1eGluZyJdKTsNCiAgICAgICAgICBmb3IoJG09MDskbTxjb3VudCgkc3gpOyRtKyspew0KICAgICAgICAgICAgJHM9c3BsaXR4KCRzeFskbV0sIjoiLDApOw0KICAgICAgICAgICAgaWYoJHM9PSRhcnJbJGldWyJTX3RpdGxlIl0pew0KICAgICAgICAgICAgICAkdj1zcGxpdHgoJHN4WyRtXSwiOiIsMSk7DQogICAgICAgICAgICAgICAgaWYoJHYhPSIiKXsNCiAgICAgICAgICAgICAgICAgICR4PWpzb25fZGVjb2RlKCJ7XCJzaHV4aW5nXCI6XCIiLiR2LiJcIn0iLHRydWUpOw0KICAgICAgICAgICAgICAgICAgaWYoIWlzX2hhdmVzKCR4LCRhcnJbJGldWyJsaXN0Il0pKXsNCiAgICAgICAgICAgICAgICAgICAgYXJyYXlfcHVzaCgkYXJyWyRpXVsibGlzdCJdLCR4KTsNCiAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgIH0NCiAgfQ0KfQ0KDQoNCmZvcigkaT0wOyRpPGNvdW50KCRhcnIpOyRpKyspew0KICBmb3IoJGo9MDskajxjb3VudCgkYXJyWyRpXVsibGlzdCJdKTskaisrKXsNCiAgICBpZigkX0dFVFsiZiIuJGldPT0kYXJyWyRpXVsiU190aXRsZSJdLiI6Ii4kYXJyWyRpXVsibGlzdCJdWyRqXVsic2h1eGluZyJdKXsNCiAgICAgICRzZWxlY3RlZD0iYWN0aXZlIjsNCiAgICB9ZWxzZXsNCiAgICAgICRzZWxlY3RlZD0iIjsNCiAgICB9DQoNCiAgICAkc2h1eGluZz0kc2h1eGluZy4iPGxpIGNsYXNzPVwiIi4kc2VsZWN0ZWQuIlwiPiA8YSBzdHlsZT1cInBhZGRpbmc6MTBweDtcIiBocmVmPVwiIi51cmwoJHVybCwiZiIuJGksJF9HRVRbImYiLiRpXSkuIiZmIi4kaS4iPSIuJGFyclskaV1bIlNfdGl0bGUiXS4iOiIuJGFyclskaV1bImxpc3QiXVskal1bInNodXhpbmciXS4iXCIgPiIuJGFyclskaV1bImxpc3QiXVskal1bInNodXhpbmciXS4iPC9hPiA8L2xpPiI7DQoNCiAgfQ0KDQppZigkX0dFVFsiZiIuJGldPT0iIil7DQogICRzZWxlY3RlZD0iYWN0aXZlIjsNCn1lbHNlew0KICAkc2VsZWN0ZWQ9IiI7DQp9DQoNCiAgJGFwaT0kYXBpLiAiDQogIDxkaXYgY2xhc3M9XCJjb2x1bW4tbmF2XCI+PG9sIGNsYXNzPVwiY29sdW1uLXVsXCI+PGxpPjxhIHN0eWxlPVwicGFkZGluZzoxMHB4O1wiPiIuJGFyclskaV1bIlNfdGl0bGUiXS4i77yaPC9hPjwvbGk+PGxpIGNsYXNzPVwiIi4kc2VsZWN0ZWQuIlwiPjxhIHN0eWxlPVwicGFkZGluZzoxMHB4O1wiIGhyZWY9XCIiLnVybCgkdXJsLCJmIi4kaSwkX0dFVFsiZiIuJGldKS4iJmYiLiRpLiI9XCI+5LiN6ZmQPC9hPjwvbGk+Ii4kc2h1eGluZy4iPC9vbD48L2Rpdj4iOw0KICAkc2h1eGluZz0iIjsNCn0NCg0KPC9maC1mdW5jdGlvbj4NCjwvZGl2Pg0KPC9kaXY+DQoNCjxkaXYgY2xhc3M9ImdyZXktYm94Ij4NCiAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4NCiAgICA8ZGl2IGNsYXNzPSJob3N0LWN1dCI+DQogICAgICA8ZGl2IGNsYXNzPSJob3N0LWxpc3QgYWN0aXZlIj4NCiAgICAgICAgPHVsIGNsYXNzPSJibG9ja3MtMiBibG9ja3Mtc20tMyBibG9ja3MtbWQtNCBibG9ja3MteGxnLTUgIG1ldC1wYWdlLWFqYXggbWV0LWdyaWQiIGlkPSJtZXQtZ3JpZCIgZGF0YS1zY2FsZT0nMSc+DQoNCjxmaC1mdW5jdGlvbj4NCmlmKCRpZD09MCl7DQogICRzcWw9InNlbGVjdCAqIGZyb20gc2xfcHJvZHVjdCB3aGVyZSBQX2RlbD0wICIuJE1fcGluZm8uIiAgIi5zaHV4aW5nKCJQX3NodXhpbmciKS4iICRNX2luZm8gb3JkZXIgYnkgUF90b3AgZGVzYyxQX29yZGVyLFBfaWQgZGVzYyBsaW1pdCAiLigoJHBhZ2UtMSkqMTApLiIsMTAiOw0KfWVsc2V7DQogIGlmKCRTX3N1Yj09MCl7DQogICAgJHNxbD0ic2VsZWN0ICogZnJvbSBzbF9wcm9kdWN0LHNsX3Bzb3J0IHdoZXJlIFNfZGVsPTAgIi5zaHV4aW5nKCJQX3NodXhpbmciKS4iICRNX2luZm8gYW5kIFBfZGVsPTAgIi4kTV9waW5mby4iICBhbmQgUF9zb3J0PVNfaWQgYW5kIFNfc3ViPSIuJGlkLiIgb3JkZXIgYnkgUF90b3AgZGVzYyxQX29yZGVyLFBfaWQgZGVzYyBsaW1pdCAiLigoJHBhZ2UtMSkqMTApLiIsMTAiOw0KICB9ZWxzZXsNCiAgICAkc3FsPSJzZWxlY3QgKiBmcm9tIHNsX3Byb2R1Y3Qsc2xfcHNvcnQgd2hlcmUgU19kZWw9MCAiLnNodXhpbmcoIlBfc2h1eGluZyIpLiIgJE1faW5mbyBhbmQgUF9kZWw9MCAiLiRNX3BpbmZvLiIgIGFuZCBQX3NvcnQ9U19pZCBhbmQgU19pZD0iLiRpZC4iIG9yZGVyIGJ5IFBfdG9wIGRlc2MsUF9vcmRlcixQX2lkIGRlc2MgbGltaXQgIi4oKCRwYWdlLTEpKjEwKS4iLDEwIjsNCiAgfQ0KfQ0KDQogICAgc1tbDQoNCiAgICAgICAgICAgIGlmKCRyb3dbIlBfbWlkIl09PTApew0KICAgICAgICAgICAgICAgICR6eT0iPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTJweDtiYWNrZ3JvdW5kOiNjODE2MjM7Ym9yZGVyLXJhZGl1czo1cHg7cGFkZGluZzoxcHggM3B4O2NvbG9yOiNmZmZmZmY7bWFyZ2luLXJpZ2h0OjVweDtkaXNwbGF5OmlubGluZTtcIj7oh6rokKU8L3NwYW4+IjsNCiAgICAgICAgICAgICAgfWVsc2V7DQogICAgICAgICAgICAgICAgJHp5PSIiOw0KICAgICAgICAgICAgfQ0KDQogICAgICAkYXBpPSRhcGkuIjxsaSBjbGFzcz1cInNob3duIHNjbXMtcGljXCI+IDxhIGhyZWY9XCI/dHlwZT1wcm9kdWN0aW5mbyZpZD0iLiRyb3dbIlBfaWQiXS4iXCIgdGl0bGU9XCIiLiRyb3dbIlBfdGl0bGUiXS4iXCI+IA0KDQogICAgICAgIDxkaXYgc3R5bGU9XCJiYWNrZ3JvdW5kLWltYWdlOnVybCgiLnBpYyhzcGxpdHgoJHJvd1siUF9waWMiXSwifCIsMCkpLiIpO2JhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7YmFja2dyb3VuZC1wb3NpdGlvbjpjZW50ZXIgY2VudGVyO3dpZHRoOjEwMCU7aGVpZ2h0OjIwMHB4O2JhY2tncm91bmQtc2l6ZTogY292ZXI7bWFyZ2luOjBweCBhdXRvIDI1cHggYXV0b1wiIGNsYXNzPVwic3NzXCI+PC9kaXY+DQogICAgICAgICA8c3Bhbj4gPGI+Ii4kenkuJHJvd1siUF90aXRsZSJdLiI8L2I+IDxpPiZuYnNwOzwvaT4NCjxwPjxzcGFuIHN0eWxlPVwiZm9udC13ZWlnaHQ6Ym9sZDt0ZXh0LWFsaWduOmxlZnRcIj7vv6UiLnAoJHJvd1siUF9wcmljZSJdKS4iPC9zcGFuPiAgPHNwYW4gc3R5bGU9XCJjb2xvcjogIzk5OTk5OTtmbG9hdDpyaWdodDttYXJnaW4tdG9wOi0yMHB4O1wiPuW3suWUru+8miIuJHJvd1siUF9zb2xkIl0uIuS7tjwvc3Bhbj48L3A+DQo8L3NwYW4+IDwvYT4gPC9saT4iOw0KICAgICAgICAgICAgICAgIF1dDQo8L2ZoLWZ1bmN0aW9uPg0KDQogICAgICAgIDwvdWw+DQogICAgICAgIDxkaXY+DQo8ZGl2IGNsYXNzPSdtZXRfcGFnZXInPg0KPGRpdiBpZD0icGFnZXIiPjwvZGl2Pg0KPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KICAgICAgPC9kaXY+DQogICAgPC9kaXY+DQogIDwvZGl2Pg0KPC9kaXY+DQo8ZGl2IHN0eWxlPSJwYWRkaW5nLXRvcDogMjBweDsiPg0KPGRpdiBjbGFzcz0iY29udGFpbmVyIj4NCiAgDQo8cD4NCjxpbWcgc3JjPSJtZWRpYS8yMDE5MTIwMjIxNDQwOXpYLnBuZyIgYWx0PSLmgqjnmoTnvZHnq5nlkI3np7AiIHN0eWxlPSJtYXJnaW4tYm90dG9tOiAxMHB4OyI+DQo8L3A+DQo8cD4NCjxmaC1mdW5jdGlvbj4NCiAgICAgICAgICAgICAgICAkc3FsPSJzZWxlY3QgKiBmcm9tIHNsX21lbnUgd2hlcmUgbm90IFVfdHlwZT0naW5kZXgnIGFuZCBub3QgVV90eXBlPSdsaW5rJyBhbmQgVV9kZWw9MCBhbmQgVV9zdWI9MCBvcmRlciBieSBVX29yZGVyLFVfaWQgZGVzYyI7DQogICAgICAgICAgICAgICAgc1tbDQogICAgICAgICAgICAgICAgICAkYXBpPSRhcGkuIjxhIHN0eWxlPVwibWFyZ2luLXJpZ2h0OjIwcHhcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPVwiP3R5cGU9Ii4kcm93WyJVX3R5cGUiXS4iJmlkPSIuJHJvd1siVV90eXBlaWQiXS4iXCIgIHRpdGxlPVwiIi4kcm93WyJVX3RpdGxlIl0uIlwiPiIuJHJvd1siVV90aXRsZSJdLiI8L2E+ICI7DQogICAgICAgICAgICAgICAgICBdXQ0KDQogICAgICAgICAgICANCiAgICAgICAgPC9maC1mdW5jdGlvbj4NCjwvcD4NCjxpbWcgc3JjPSJtZWRpYS8yMDE5MTEyNjIyNDM1MldmLmpwZyIgc3R5bGU9IndpZHRoOiA4MHB4O2Zsb2F0OiByaWdodDttYXJnaW4tdG9wOiAtMTIwcHgiPg0KDQogIA0KPC9kaXY+DQo8aHI+DQoNCiAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4NCiAgICA8ZGl2IGNsYXNzPSJtZXQtbGlua3MiPg0KICAgICAgPG9sIGNsYXNzPSJicmVhZGNydW1iIj4NCiAgICAgICAgPGEgc3R5bGU9Im1hcmdpbi1yaWdodDozMHB4O2ZvbnQtc2l6ZToxM3B4OyI+5Y+L5oOF6ZO+5o6lIDo8L2E+DQogICAgICAgIDxmaC1mdW5jdGlvbj4NCiAgICAgICAgJHNxbD0ic2VsZWN0ICogZnJvbSBzbF9saW5rIHdoZXJlIExfZGVsPTAgb3JkZXIgYnkgTF9pZCBkZXNjIjsNCiAgICAgICAgc1tbJGFwaT0kYXBpLiI8YSBzdHlsZT1cIm1hcmdpbi1yaWdodDozMHB4O2ZvbnQtc2l6ZToxM3B4O1wiIGhyZWY9XCIiLiRyb3dbIkxfbGluayJdLiJcIiB0YXJnZXQ9XCJfYmxhbmtcIj4iLiRyb3dbIkxfdGl0bGUiXS4iPC9hPiI7XV0NCiAgICAgICAgPC9maC1mdW5jdGlvbj4NCiAgICAgIDwvb2w+DQogICAgPC9kaXY+DQoNCiAgICA8ZGl2IHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPg0KICAgIENvcHlyaWdodCDCqSAyMDE1LTIwMjAg5oKo55qE5YWs5Y+45ZCN56ewIOeJiOadg+aJgOaciSA8YSBocmVmPSJodHRwOi8vYmVpYW4ubWlpdC5nb3YuY24vIiB0YXJnZXQ9Il9ibGFuayI+5LqsSUNQ5aSHMDAwMDAwMDDlj7c8L2E+DQogIDwvZGl2Pg0KPGRpdiBzdHlsZT0iZmxvYXQ6IHJpZ2h0O21hcmdpbi10b3A6IC00NXB4Ij7lnKjnur/lrqLmnI3vvJo8YSBocmVmPSI/dHlwZT1jb250YWN0Ij7ogZTns7vlrqLmnI08L2E+PC9kaXY+DQoNCiAgPC9kaXY+DQo8L2Rpdj4NCjxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1pY29uIGJ0bi1wcmltYXJ5IGJ0bi1zcXVhcmVkIG1ldC1zY3JvbGwtdG9wIGhpZGUiPjxpIGNsYXNzPSJpY29uIHdiLWNoZXZyb24tdXAiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L2k+PC9idXR0b24+DQo8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgb25jbGljaz0id2luZG93LmxvY2F0aW9uLmhyZWY9J21lbWJlci9jYXJ0LnBocCciIGNsYXNzPSJidG4gYnRuLWljb24gYnRuLXByaW1hcnkgYnRuLXNxdWFyZWQgbWV0LXNjcm9sbC10b3AgaGlkZSIgc3R5bGU9ImJvdHRvbTogNTBweDsiPjxpIGNsYXNzPSJpY29uIHdiLXNob3BwaW5nLWNhcnQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L2k+PC9idXR0b24+DQo8c2NyaXB0IHNyYz0idGVtcGxhdGUvdDEzL3NraW4vanMvc2hvcF9sYW5nX2NuLmpzIj48L3NjcmlwdD4gDQo8c2NyaXB0IHNyYz0idGVtcGxhdGUvdDEzL3NraW4vanMvaW5kZXguanMiPjwvc2NyaXB0PiANCjxzY3JpcHQgc3JjPSJ0ZW1wbGF0ZS90MTMvc2tpbi9qcy9zaG9wX3YzLmpzIj48L3NjcmlwdD4NCg0KPHNjcmlwdCBzcmM9ImpzL2pxdWVyeS5wYWdlci5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4NCjxzY3JpcHQ+DQokKCIuc3NzIikuaGVpZ2h0KCQoIi5zc3MiKS53aWR0aCgpKTsNCiQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCkgew0KICAgICQoIiNwYWdlciIpLnBhZ2VyKHsgcGFnZW51bWJlcjogPGZoLWZ1bmN0aW9uPiAkYXBpPSRhcGkuJHBhZ2U7PC9maC1mdW5jdGlvbj4sIHBhZ2Vjb3VudDogPGZoLWZ1bmN0aW9uPiAkYXBpPSRhcGkuJHBhZ2VfbnVtOzwvZmgtZnVuY3Rpb24+LCBidXR0b25DbGlja0NhbGxiYWNrOiBQYWdlQ2xpY2sgfSk7DQp9KTsNCg0KUGFnZUNsaWNrID0gZnVuY3Rpb24ocGFnZWNsaWNrZWRudW1iZXIpIHsNCiAgd2luZG93LmxvY2F0aW9uPSI8ZmgtZnVuY3Rpb24+JGFwaT0kYXBpLnVybCgkdXJsLCJwYWdlIiwkX0dFVFsicGFnZSJdKTs8L2ZoLWZ1bmN0aW9uPiZwYWdlPSIrcGFnZWNsaWNrZWRudW1iZXI7DQp9DQo8L3NjcmlwdD4NCjxsaW5rIGhyZWY9J2Nzcy9sYW5yZW56aGlqaWEuY3NzJyByZWw9J3N0eWxlc2hlZXQnIHR5cGU9J3RleHQvY3NzJyAvPjxzY3JpcHQgc3JjPSdqcy9qcXVlcnkuS2luU2xpZGVzaG93LTEuMi4xLm1pbi5qcycgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz48L3NjcmlwdD48ZGl2IGlkPSdvbmxpbmVfcXFfbGF5ZXInIHN0eWxlPSd6LWluZGV4OjIwMDA7Jz48ZGl2IGlkPSdvbmxpbmVfcXFfdGFiJz48ZGl2IGNsYXNzPSdvbmxpbmVfaWNvbic+PGEgaWQ9J2Zsb2F0U2hvdycgc3R5bGU9J2Rpc3BsYXk6YmxvY2s7JyBocmVmPSdqYXZhc2NyaXB0OnZvaWQoMCk7Jz4mbmJzcDs8L2E+PGEgIGlkPSdmbG9hdEhpZGUnIHN0eWxlPSdkaXNwbGF5Om5vbmU7JyBocmVmPSdqYXZhc2NyaXB0OnZvaWQoMCk7Jz4mbmJzcDs8L2E+PC9kaXY+PC9kaXY+PGRpdiBpZD0nb25saW5lU2VydmljZScgc3R5bGU9J2Rpc3BsYXk6bm9uZSc+PGRpdiBjbGFzcz0nb25saW5lX3dpbmRvd3Mgb3ZlcnonPjxkaXYgY2xhc3M9J29ubGluZV93X3RvcCc+PC9kaXY+PGRpdiBjbGFzcz0nb25saW5lX3dfYyBvdmVyeic+PGRpdiBjbGFzcz0nb25saW5lX2JhciBleHBhbmQnIGlkPSdvbmxpbmVTb3J0MSc+PGgyPjxhIG9uY2xpY2s9J2NoYW5nZU9ubGluZSgxKSc+5Zyo57q/5a6i5pyNPC9hPjwvaDI+PGRpdiBjbGFzcz0nb25saW5lX2NvbnRlbnQgb3ZlcnonIGlkPSdvbmxpbmVUeXBlMSc+PHVsIGNsYXNzPSdvdmVyeic+PGxpPjxhIHRpdGxlPSfngrnlh7vov5nph4znu5nmiJHlj5Hmtojmga8nIGhyZWY9J2h0dHA6Ly93cGEucXEuY29tL21zZ3JkP3Y9MyZ1aW49MTIzMTIzMTIzJnNpdGU9cXEmbWVudT15ZXMnIHRhcmdldD0nX2JsYW5rJyBjbGFzcz0ncXFfaWNvbic+5ZSu5YmN5ZKo6K+iPC9hPjwvbGk+PGxpPjxhIHRpdGxlPSfngrnlh7vov5nph4znu5nmiJHlj5Hmtojmga8nIGhyZWY9J2h0dHA6Ly93d3cudGFvYmFvLmNvbS93ZWJ3dy93dy5waHA/dmVyPTMmdG91aWQ9dGFvYmFvJnNpdGVpZD1jbnRhb2JhbyZzdGF0dXM9MSZjaGFyc2V0PXV0Zi04JyB0YXJnZXQ9J19ibGFuaycgY2xhc3M9J3d3X2ljb24nPuWUruWQjuacjeWKoTwvYT48L2xpPjwvdWw+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0nb25saW5lX2JhciBjb2xsYXBzZTInIGlkPSdvbmxpbmVTb3J0Mic+PGgyPjxhIG9uY2xpY2s9J2NoYW5nZU9ubGluZSgyKSc+55S16K+d5a6i5pyNPC9hPjwvaDI+PGRpdiBjbGFzcz0nb25saW5lX2NvbnRlbnQgb3ZlcnonIGlkPSdvbmxpbmVUeXBlMic+PHVsIGNsYXNzPSdvdmVyeic+PGxpPjAxMC0xMDA4NjwvbGk+PC91bD48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSdvbmxpbmVfYmFyIGNvbGxhcHNlMicgaWQ9J29ubGluZVNvcnQzJz48aDI+PGEgb25jbGljaz0nY2hhbmdlT25saW5lKDMpJz7nvZHnq5nkuoznu7TnoIE8L2E+PC9oMj48ZGl2IGNsYXNzPSdvbmxpbmVfY29udGVudCBvdmVyeicgaWQ9J29ubGluZVR5cGUzJz48dWwgY2xhc3M9J292ZXJ6Jz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3JjPSdqcy9xcmNvZGUubWluLmpzJz48L3NjcmlwdD48ZGl2IGlkPSdxcmNvZGUnIHN0eWxlPSdtYXJnaW46MCAwIDEwcHggMTBweDsnPjwvZGl2PjxzY3JpcHQ+dmFyIHFyY29kZSA9IG5ldyBRUkNvZGUoJ3FyY29kZScsIHt3aWR0aDogMTEwLGhlaWdodDogMTEwLGNvbG9yRGFyazogJyMwMDAwMDAnLGNvbG9yTGlnaHQ6ICcjZmZmZmZmJyxjb3JyZWN0TGV2ZWw6IFFSQ29kZS5Db3JyZWN0TGV2ZWwuSH0pO3FyY29kZS5tYWtlQ29kZSgnaHR0cDovL2xvY2FsaG9zdDo1MDEzJyk7PC9zY3JpcHQ+PC91bD48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSdvbmxpbmVfYmFyIGNvbGxhcHNlMicgaWQ9J29ubGluZVNvcnQ0Jz48aDI+PGEgb25jbGljaz0nY2hhbmdlT25saW5lKDQpJz7lvq7kv6HlhazkvJflj7c8L2E+PC9oMj48ZGl2IGNsYXNzPSdvbmxpbmVfY29udGVudCBvdmVyeicgaWQ9J29ubGluZVR5cGU0Jz48dWwgY2xhc3M9J292ZXJ6Jz48aW1nIHNyYz0nbWVkaWEvMjAxOTExMjYyMjQzNTJXZi5qcGcnIHdpZHRoPScxMjAnIC8+PC91bD48L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSdvbmxpbmVfd19ib3R0b20nPjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2Pg0KPGEgaHJlZj0namF2YXNjcmlwdDo7JyB0YXJnZXQ9J19ibGFuaycgb25jbGljaz0nYWxlcnQoIuacrOe9keermeeUseOAiuWPkei0pzEwMOOAi+WFjei0ueeJiOaQreW7uu+8jOivt+WLv+eUqOS9nOWVhuS4mueUqOmAlCIpO3dpbmRvdy5sb2NhdGlvbi5ocmVmPSJodHRwOi8vZmFodW8xMDAuY24iJyB0aXRsZT0n5Y+R6LSnMTAwJz48ZGl2IHN0eWxlPSJwb3NpdGlvbjogZml4ZWQ7ei1pbmRleDo5OTk5OTtib3R0b206IDEwcHg7bGVmdDogY2FsYyg1MCUgLSAxMDBweCk7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LDAuNyk7dGV4dC1hbGlnbjogY2VudGVyO3dpZHRoOiAyMDBweDtoZWlnaHQ6IDMwcHg7bGluZS1oZWlnaHQ6IDMwcHg7Ym9yZGVyLXJhZGl1czogMzBweDtmb250LXNpemU6IDE4cHg7Y29sb3I6ICMzMzMzMzMiPjxpbWcgc3JjPSJodHRwOi8vZmFodW8xMDAuY24vbWVkaWEvMjAyMDEwMDkxMzQxMjBsVS5pY28iIHN0eWxlPSJoZWlnaHQ6IDIwcHg7d2lkdGg6IDIwcHg7bWFyZ2luLXJpZ2h0OiA1cHg7dmVydGljYWwtYWxpZ246IG1pZGRsZTsiPuWPkei0pzEwMDwvZGl2PjwvYT48L2JvZHk+DQo8L2h0bWw+