e21bf87af790303af791926c22316a68PCEtLWQ5NjBsbTg4U0FZNGRucnB4UlVrM1p5dFl0VlVsZ0tqbWo2c0ZSMWo1c0pDbUs4bGtlakNOS2R6Y0VVZk0yRzNCOFRLZklIcUFlN3hDSmFEU0Exd09ad3ZZeGdiUSswamZkMEd3L21SajEzTHpnQmdjM0Qwa2grcVhVZ2ZkMmVweFplQmtXYkJRSytXTVhQSXJ5QTlseWRvbSsxQVhITFoxU3ctLT48ZmgtZnVuY3Rpb24+DQokQz1nZXRycygic2VsZWN0ICogZnJvbSBzbF9jb25maWciKTsNCiRDX25fZGlzY291bnQyPSRDWyJDX25fZGlzY291bnQyIl07DQokQ19uX2Rpc2NvdW50PSRDWyJDX25fZGlzY291bnQiXTsNCg0KJGdlbmtleT10KCRfR0VUWyJnZW5rZXkiXSk7DQpteXNxbGlfcXVlcnkoJGNvbm4sICJ1cGRhdGUgc2xfbmV3cyBzZXQgTl92aWV3PU5fdmlldysxIHdoZXJlIE5faWQ9Ii4kaWQpOw0KJHNxbD0ic2VsZWN0ICogZnJvbSBzbF9uZXdzLHNsX25zb3J0IHdoZXJlIE5fc29ydD1TX2lkIGFuZCBOX2lkPSIuJGlkOw0KICAkcmVzdWx0ID0gbXlzcWxpX3F1ZXJ5KCRjb25uLCAkc3FsKTsNCiAgJHJvdyA9IG15c3FsaV9mZXRjaF9hc3NvYygkcmVzdWx0KTsNCiAgaWYgKG15c3FsaV9udW1fcm93cygkcmVzdWx0KSA+IDApIHsNCiAgICAkU19pZD0kcm93WyJTX2lkIl07DQogICAgJE5fbWlkPSRyb3dbIk5fbWlkIl07DQogICAgJE5fYXV0aG9yPSRyb3dbIk5fYXV0aG9yIl07DQogICAgJE5fdGFnPSRyb3dbIk5fdGFnIl07DQogICAgJE5fc2h1eGluZz0kcm93WyJOX3NodXhpbmciXTsNCiAgICAkTl9kb3dubG9hZD0kcm93WyJOX2Rvd25sb2FkIl07DQogICAgJGRvd25sb2FkPXBpYygkcm93WyJOX2Rvd25sb2FkIl0pOw0KICAgICROX3ByaWNlPSRyb3dbIk5fcHJpY2UiXTsNCiAgICAkTl9sb25nPSRyb3dbIk5fbG9uZyJdOw0KICB9DQoNCiAgaWYoJE5fcHJpY2U+MCl7Ly/mlofnq6DkuI3lhY3otLkNCgkJaWYoJE5fbG9uZz09MCl7Ly/msqHlvIDlkK/kuobpmZDml7bku5jotLkNCgkJCWlmKGdldHJzKCJzZWxlY3QgKiBmcm9tIHNsX29yZGVycyB3aGVyZSBPX2NvbnRlbnQ9JyIuJGdlbmtleS4iJyBhbmQgT19uaWQ9Ii4kaWQsIk9faWQiKSE9IiIgJiYgJGdlbmtleSE9IiIpey8v5bey5YWN55m75b2V6LSt5LmwDQoJCQkJJE5fYnV5PTE7DQoJCQl9ZWxzZXsNCgkJCQlpZigkX1NFU1NJT05bIk1faWQiXSE9IiIpey8v55m75b2V5LqG5Lya5ZGYDQoJCQkJCSRzcWwgPSAiU2VsZWN0ICogZnJvbSBzbF9vcmRlcnMgd2hlcmUgT19kZWw9MCBhbmQgT190eXBlPTEgYW5kIE9fc3RhdGU9MSBhbmQgT19uaWQ9Ii4kaWQuIiBhbmQgT19taWQ9Ii5pbnR2YWwoJF9TRVNTSU9OWyJNX2lkIl0pOw0KCQkJCQkkcmVzdWx0ID0gbXlzcWxpX3F1ZXJ5KCRjb25uLCAkc3FsKTsNCgkJCQkJJHJvdyA9IG15c3FsaV9mZXRjaF9hc3NvYygkcmVzdWx0KTsNCgkJCQkJaWYgKG15c3FsaV9udW1fcm93cygkcmVzdWx0KSA+IDApIHsvL+W3sui0reS5sA0KCQkJCQkJJE5fYnV5PTE7DQoJCQkJCX0gZWxzZSB7Ly/msqHotK3kubANCgkJCQkJCSRzcWw9InNlbGVjdCAqIGZyb20gc2xfbWVtYmVyIHdoZXJlIE1faWQ9Ii5pbnR2YWwoJF9TRVNTSU9OWyJNX2lkIl0pOw0KCQkJCQkJJHJlc3VsdCA9IG15c3FsaV9xdWVyeSgkY29ubiwgJHNxbCk7DQoJCQkJCQkkcm93ID0gbXlzcWxpX2ZldGNoX2Fzc29jKCRyZXN1bHQpOw0KCQkJCQkJJE1fdmlwdGltZT0kcm93WyJNX3ZpcHRpbWUiXTsNCgkJCQkJCSRNX3ZpcGxvbmc9JHJvd1siTV92aXBsb25nIl07DQoJCQkJCQlpZigkTV92aXBsb25nLSh0aW1lKCktc3RydG90aW1lKCRNX3ZpcHRpbWUpKS84NjQwMD4wKXsNCgkJCQkJCQlpZigkTV92aXBsb25nPjMwMDAwKXsNCgkJCQkJCQkJJE5fZGlzY291bnQ9JENfbl9kaXNjb3VudDIvMTA7DQoJCQkJCQkJfWVsc2V7DQoJCQkJCQkJCSROX2Rpc2NvdW50PSRDX25fZGlzY291bnQvMTA7DQoJCQkJCQkJfQ0KCQkJCQkJfWVsc2V7DQoJCQkJCQkJJE5fZGlzY291bnQ9MTsNCgkJCQkJCX0NCgkJCQkJCWlmKCROX2Rpc2NvdW50PT0wKXsvL1ZJUOS8muWRmDDmipgNCgkJCQkJCQkkTl9idXk9MTsNCgkJCQkJCX1lbHNlew0KCQkJCQkJCSROX2J1eT0wOw0KCQkJCQkJfQ0KCQkJCQl9DQoJCQkJfWVsc2V7Ly/msqHnmbvlvZXkvJrlkZgNCgkJCQkJJE5fYnV5PTA7DQoJCQkJfQ0KCQkJfQ0KCQl9ZWxzZXsvL+W8gOWQr+S6humZkOaXtuS7mOi0uQ0KCQkJaWYodGltZSgpPnN0cnRvdGltZSgiKyROX2xvbmcgaG91ciIsc3RydG90aW1lKCROX2RhdGUpKSl7Ly/lt7Lov4fmlLbotLnmnJ8NCgkJCQkkTl9idXk9MTsNCgkJCX1lbHNley8v5pyq6L+H5pS26LS55pyfDQoJCQkJJE5fYnV5PTA7DQoJCQl9DQoJCX0NCgl9ZWxzZXsvL+WFjei0uQ0KCQkkTl9idXk9MTsNCgl9DQoNCg0KPC9maC1mdW5jdGlvbj4NCjwhRE9DVFlQRSBodG1sPg0KPGh0bWw+PGhlYWQ+DQoJCTxtZXRhIGNoYXJzZXQ9IlVURi04Ij4NCgkJPG1ldGEgaHR0cC1lcXVpdj0iWC1VQS1Db21wYXRpYmxlIiBjb250ZW50PSJJRT1lZGdlLGNocm9tZT0xIj4NCgkJPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCxtaW5pbXVtLXNjYWxlPTEuMCxtYXhpbXVtLXNjYWxlPTEuMCx1c2VyLXNjYWxhYmxlPW5vIj4NCgkJPG1ldGEgbmFtZT0iYXBwbGUtbW9iaWxlLXdlYi1hcHAtdGl0bGUiIGNvbnRlbnQ9Ik1vZG93biI+DQoJCTxtZXRhIGh0dHAtZXF1aXY9IkNhY2hlLUNvbnRyb2wiIGNvbnRlbnQ9Im5vLXNpdGVhcHAiPg0KCQk8dGl0bGU+W05fdGl0bGVdIC0g5oKo55qE572R56uZ5ZCN56ewIC0gUG93ZXJlZCBieSDlj5HotKcxMDA8L3RpdGxlPg0KCQk8bGluayBocmVmPSJtZWRpYS8yMDE5MTIwODExMzAzNWVNLmljbyIgcmVsPSJzaG9ydGN1dCBpY29uIiAvPg0KCQk8bWV0YSBuYW1lPSJkZXNjcmlwdGlvbiIgY29udGVudD0iW05fZGVzY3JpcHRpb25dIiAvPg0KCQk8bWV0YSBuYW1lPSJrZXl3b3JkcyIgY29udGVudD0iW05fa2V5d29yZHNdIiAvPg0KCQk8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InRlbXBsYXRlL3QxNi9hc3NldHMvd2ViL3N0eWxlcy9saWJzLmNzcz8xNjM4MDA1NDE4Ij4NCgkJPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJ0ZW1wbGF0ZS90MTYvYXNzZXRzL3dlYi9zdHlsZXMvc3R5bGUuY3NzPzE2MzgwMDU0MTgiPg0KCQk8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InRlbXBsYXRlL3QxNi9hc3NldHMvd2ViL2ZvbnRzL2Nzcy9mb250YXdlc29tZS1hbGwubWluLmNzcyI+DQoJCTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0idGVtcGxhdGUvdDE2L2Fzc2V0cy9zdHlsZXMvc3dpcGVyLm1pbi5jc3MiPg0KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJ0ZW1wbGF0ZS90MTYvYXNzZXRzL3NjcmlwdHMvanF1ZXJ5Lm1pbi5qcyI+PC9zY3JpcHQ+DQoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InRlbXBsYXRlL3QxNi9hc3NldHMvc2NyaXB0cy9zd2lwZXIubWluLmpzIj48L3NjcmlwdD4NCgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0idGVtcGxhdGUvdDE2L2Fzc2V0cy9zY3JpcHRzL2xheWVyLmpzIj48L3NjcmlwdD4NCgkJPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJ0ZW1wbGF0ZS90MTYvYXNzZXRzL3NjcmlwdHMvdGhlbWUvZGVmYXVsdC9sYXllci5jc3M/dj0zLjMuMCIgaWQ9ImxheXVpY3NzLWxheWVyIj4NCgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0idGVtcGxhdGUvdDE2L2Fzc2V0cy9zY3JpcHRzL2JqcGx1cy5qcyI+PC9zY3JpcHQ+DQoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InRlbXBsYXRlL3QxNi9hc3NldHMvc2NyaXB0cy90bW9kanMuanMiPjwvc2NyaXB0Pg0KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJ0ZW1wbGF0ZS90MTYvYXNzZXRzL3NjcmlwdHMvY2xpcGJvYXJkLm1pbi5qcyI+PC9zY3JpcHQ+CQ0KDQoJPHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgaWQ9IkxBX0NPTExFQ1QiIHNyYz0iLy9zZGsuNTEubGEvanMtc2RrLXByby5taW4uanMiPjwvc2NyaXB0PjxzY3JpcHQ+TEEuaW5pdCh7aWQ6ICJKVTUxUmN6SDAxZWRhZ29nIixjazogIkpVNTFSY3pIMDFlZGFnb2cifSk8L3NjcmlwdD48L2hlYWQ+DQo8Ym9keT4JDQoNCjxoZWFkZXIgY2xhc3M9ImhlYWRlciI+DQoJPGRpdiBjbGFzcz0iY29udGFpbmVyIGNsZWFyZml4Ij4NCgkJPGRpdiBjbGFzcz0ibG9nbyI+DQoJCQk8YSBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTp1cmwobWVkaWEvMjAxOTEyMDIyMTQ0MDl6WC5wbmcpIiBocmVmPSIuLyIgdGl0bGU9IuaCqOeahOe9keermeWQjeensCI+PC9hPg0KCQk8L2Rpdj4NCgkJPHVsIGNsYXNzPSJuYXYtbWFpbiI+DQoNCjxmaC1mdW5jdGlvbj4NCiAgICAgICAgICAgICAgICAkc3FsPSJzZWxlY3QgKiBmcm9tIHNsX21lbnUgd2hlcmUgVV9oaWRlPTAgYW5kIFVfZGVsPTAgYW5kIFVfc3ViPTAgb3JkZXIgYnkgVV9vcmRlcixVX2lkIGRlc2MiOw0KICAgICAgICAgICAgICAgIHNbWw0KICAgICAgICAgICAgICAgICAgaWYoJHR5cGU9PSRyb3dbIlVfdHlwZSJdICYmICRpZD09JHJvd1siVV90eXBlaWQiXSl7DQogICAgICAgICAgICAgICAgICAgICRjbGFzcz0ibmF2LWxpIGFjdGl2ZSI7DQogICAgICAgICAgICAgICAgICB9ZWxzZXsNCiAgICAgICAgICAgICAgICAgICAgJGNsYXNzPSJuYXYtbGkgbWFyZ2luLWxlZnQtMCI7DQogICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgIGlmKCRyb3dbIlVfdHlwZSJdPT0ibGluayIpew0KICAgICAgICAgICAgICAgICAgICAkbGluaz0kcm93WyJVX2xpbmsiXTsNCiAgICAgICAgICAgICAgICAgICAgJHRhcmdldD0iX2JsYW5rIjsNCiAgICAgICAgICAgICAgICAgIH1lbHNlew0KICAgICAgICAgICAgICAgICAgICAkbGluaz0iP3R5cGU9Ii4kcm93WyJVX3R5cGUiXS4iJmlkPSIuJHJvd1siVV90eXBlaWQiXTsNCiAgICAgICAgICAgICAgICAgICAgJHRhcmdldD0iX3NlbGYiOw0KICAgICAgICAgICAgICAgICAgfQ0KJFVfY291bnQ9Z2V0cnMoInNlbGVjdCBjb3VudCgqKSBhcyBVX2NvdW50IGZyb20gc2xfbWVudSB3aGVyZSBVX2RlbD0wIGFuZCBVX3N1Yj0iLiRyb3dbIlVfaWQiXSwiVV9jb3VudCIpOw0KICAgICAgICAgICAgaWYoJFVfY291bnQ+MCl7DQoNCiAgICAgICAgICAgICAgICAgICAgJGFwaT0kYXBpLiI8bGkgY2xhc3M9XCJtZWdhMiBtZW51LWl0ZW0taGFzLWNoaWxkcmVuXCI+PGEgIGhyZWY9XCIiLiRsaW5rLiJcIiB0YXJnZXQ9XCIiLiR0YXJnZXQuIlwiIHRpdGxlPVwiIi4kcm93WyJVX3RpdGxlIl0uIlwiPiIuJHJvd1siVV90aXRsZSJdLiI8L2E+PHVsIGNsYXNzPVwic3ViLW1lbnVcIj4iOw0KDQogICAgICAgICAgICAgICAgICAgICRzcWwyPSJzZWxlY3QgKiBmcm9tIHNsX21lbnUgd2hlcmUgVV9oaWRlPTAgYW5kIFVfZGVsPTAgYW5kIFVfc3ViPSIuJHJvd1siVV9pZCJdLiIgb3JkZXIgYnkgVV9vcmRlcixVX2lkIGRlc2MiOw0KICAgICAgICAgICAgICAgICAgICBzMltbDQogICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgaWYoJHJvdzJbIlVfdHlwZSJdPT0ibGluayIpew0KICAgICAgICAgICAgICAgICAgICAgICAgJGxpbmsyPSRyb3cyWyJVX2xpbmsiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgICR0YXJnZXQ9Il9ibGFuayI7DQogICAgICAgICAgICAgICAgICAgICAgfWVsc2V7DQogICAgICAgICAgICAgICAgICAgICAgICAkbGluazI9Ij90eXBlPSIuJHJvdzJbIlVfdHlwZSJdLiImaWQ9Ii4kcm93MlsiVV90eXBlaWQiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgICR0YXJnZXQ9Il9zZWxmIjsNCiAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGFwaT0kYXBpLiI8bGk+PGEgaHJlZj1cIiIuJGxpbmsyLiJcIiB0YXJnZXQ9XCIiLiR0YXJnZXQuIlwiPiIuJHJvdzJbIlVfdGl0bGUiXS4iPC9hPjwvbGk+IjsNCiAgICAgICAgICAgICAgICAgICAgICAgIF1dDQoNCiRhcGk9JGFwaS4iPC91bD48L2xpPiI7DQp9ZWxzZXsNCiAgJGFwaT0kYXBpLiI8bGk+PGEgIGhyZWY9XCIiLiRsaW5rLiJcIiB0YXJnZXQ9XCIiLiR0YXJnZXQuIlwiIHRpdGxlPVwiIi4kcm93WyJVX3RpdGxlIl0uIlwiPiIuJHJvd1siVV90aXRsZSJdLiI8L2E+PC9saT4iOw0KfQ0KDQoNCiAgICAgICAgICAgICAgICBdXQ0KDQogICAgICAgICAgICAgIDwvZmgtZnVuY3Rpb24+DQoNCg0KCQkJCQkJCQk8L3VsPg0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0KCSQoIi5uYXYtbWFpbiBhIikuZWFjaChmdW5jdGlvbigpIHsNCgkJaWYgKCQodGhpcylbMF0uaHJlZiA9PSBTdHJpbmcod2luZG93LmxvY2F0aW9uKSkgew0KCQkJJCgiLm5hdi1tYWluIGEiKS5yZW1vdmVDbGFzcygiYWN0aXZlIik7DQoJCQkkKHRoaXMpLmFkZENsYXNzKCJhY3RpdmUiKTsNCgkJfQ0KCX0pOw0KPC9zY3JpcHQ+DQoJCTx1bCBjbGFzcz0ibmF2LXJpZ2h0Ij4NCgkJCTxsaSBjbGFzcz0ibmF2LXZpcCI+DQoJCQkJPGEgaHJlZj0iLi8/dHlwZT12aXAiPjxpIGNsYXNzPSJpY29uIGljb24tdmlwLXMiPjwvaT48L2E+DQoJCQk8L2xpPg0KCQkJPGxpIGNsYXNzPSJuYXYtc2VhcmNoIj4NCgkJCQk8YSBocmVmPSJqYXZhc2NyaXB0OjsiIGNsYXNzPSJzZWFyY2gtbG9hZGVyIiB0aXRsZT0i5pCc57SiIj48aSBjbGFzcz0iaWNvbiBpY29uLXNlYXJjaCI+PC9pPjwvYT4NCgkJCTwvbGk+DQoNCiAgICAgIDxmaC1mdW5jdGlvbj4NCiAgICAgIGlmKCRfU0VTU0lPTlsiTV9sb2dpbiJdPT0iIil7DQogICAgICAgICRhcGk9IjxsaSBjbGFzcz1cIm5hdi1sb2dpbiBub1wiPg0KICAgICAgICA8YSBocmVmPVwibWVtYmVyL2xvZ2luLnBocD9mcm9tPSIudXJsZW5jb2RlKCIuLi8/dHlwZT0kdHlwZSZpZD0kaWQiKS4iXCIgY2xhc3M9XCJzaWduaW4tbG9hMWRlclwiPjxzcGFuPueZu+W9lTwvc3Bhbj48L2E+DQogICAgICAgIDxiIGNsYXNzPVwibmF2LWxpbmVcIj48L2I+DQogICAgICAgIDxhIGhyZWY9XCJtZW1iZXIvcmVnLnBocD9mcm9tPSIudXJsZW5jb2RlKCIuLi8/dHlwZT0kdHlwZSZpZD0kaWQiKS4iXCIgY2xhc3M9XCJzaWduaW4tcjFlZ1wiPjxzcGFuPuazqOWGjDwvc3Bhbj48L2E+DQogICAgICA8L2xpPiI7DQogICAgICB9ZWxzZXsNCiAgICAgICAgJGFwaT0iPGxpIGNsYXNzPVwibmF2LWxvZ2luIG5vXCI+DQogICAgICAgIDxhIGhyZWY9XCJtZW1iZXJcIiBjbGFzcz1cInNpZ25pbi1sb2ExZGVyXCI+PHNwYW4+Ii4kX1NFU1NJT05bIk1fbG9naW4iXS4iPC9zcGFuPjwvYT4NCiAgICAgICAgPGIgY2xhc3M9XCJuYXYtbGluZVwiPjwvYj4NCiAgICAgICAgPGEgaHJlZj1cIm1lbWJlci9sb2dpbi5waHA/YWN0aW9uPXVubG9naW5cIiBjbGFzcz1cInNpZ25pbi1yMWVnXCI+PHNwYW4+6YCA5Ye6PC9zcGFuPjwvYT4NCiAgICAgIDwvbGk+IjsNCiAgICAgIH0NCiAgICAgIDwvZmgtZnVuY3Rpb24+DQoNCgkJCQkJPC91bD4NCgk8L2Rpdj4NCjwvaGVhZGVyPg0KDQo8ZGl2IGNsYXNzPSJzZWFyY2gtd3JhcCI+DQogIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+DQogICAgPGRpdiBjbGFzcz0ic2VhcmNoLWZvcm0iPg0KICAgICAgPGlucHV0IGF1dG9jb21wbGV0ZT0ib2ZmIiBjbGFzcz0ic2VhcmNoLWlucHV0IiB0eXBlPSJ0ZXh0IiBpZD0ibmFtZXMxIiBwbGFjZWhvbGRlcj0i6L6T5YWl5pCc57Si5YWz6ZSu6K+N5Zue6L2m77yM5aSa5Liq5YWz6ZSu6K+N55So56m65qC85YiG5byAIj4NCiAgICAgIDxpIGNsYXNzPSJpY29uIGljb24tY2xvc2UiPjwvaT4NCiAgICA8L2Rpdj4NCiAgPC9kaXY+DQo8L2Rpdj4NCg0KPGRpdiBjbGFzcz0ic2luZ2xlIj4NCiAgIDxkaXYgY2xhc3M9Im1haW4iPg0KCSAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIgY2xlYXJmaXgiPg0KCQkgICAgPGRpdiBjbGFzcz0iYnJlYWRjcnVtYnMiPuW9k+WJjeS9jee9ru+8mjxzcGFuPjxhIGhyZWY9Ii4vIj48c3Bhbj7pppbpobU8L3NwYW4+PC9hPjwvc3Bhbj4NCgkJCSAgICA8c3BhbiBjbGFzcz0ic2VwIj48aSBjbGFzcz0iZmEgZmEtYW5nbGUtcmlnaHQiPjwvaT48L3NwYW4+IA0KCQkJCTxzcGFuPjxhIGhyZWY9Ij90eXBlPW5ld3MmaWQ9W1NfaWRdIj4gPHNwYW4+W1NfdGl0bGVdPC9zcGFuPjwvYT48L3NwYW4+IA0KCQkJCTxzcGFuIGNsYXNzPSJzZXAiPjxpIGNsYXNzPSJmYSBmYS1hbmdsZS1yaWdodCI+PC9pPjwvc3Bhbj4gDQoJCQkJPHNwYW4+PGEgaHJlZj0iP3R5cGU9bmV3c2luZm8maWQ9W05faWRdIj48c3Bhbj5bTl90aXRsZV08L3NwYW4+PC9hPjwvc3Bhbj4gDQoJCQk8L2Rpdj4NCgkJICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQtd3JhcCI+DQoJCQkgICAgPGRpdiBjbGFzcz0iY29udGVudCI+DQoJCQkJICAgIDxhcnRpY2xlIGNsYXNzPSJzaW5nbGUtY29udGVudCI+DQoJCSAgICAJCSAgICA8aGVhZGVyIGNsYXNzPSJhcnRpY2xlLWhlYWRlciI+CTxoMSBjbGFzcz0iYXJ0aWNsZS10aXRsZSI+W05fdGl0bGVdPC9oMT4NCgkgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhcnRpY2xlLW1ldGEiPg0KCQkgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaXRlbSBwb3N0LXNpZ24iPuaOqOiNkDwvc3Bhbj4JCQ0KCQkJCQkJCQk8c3BhbiBjbGFzcz0iaXRlbSI+PGkgY2xhc3M9Imljb24gaWNvbi10aW1lIj48L2k+IFtOX2RhdGVdPC9zcGFuPgkJDQoJCQkJCQkJCTxzcGFuIGNsYXNzPSJpdGVtIj48aSBjbGFzcz0iaWNvbiBpY29uLWV5ZSI+PC9pPiBbTl92aWV3XTwvc3Bhbj4NCgkJCQkJCQkJPHNwYW4gY2xhc3M9Iml0ZW0iPjxpIGNsYXNzPSJpY29uIGljb24tcG9zdHMiPjwvaT4g77+lW05fcHJpY2VdPC9zcGFuPgkJCQkJCQ0KCQkJCQkJCSAgICA8c3BhbiBjbGFzcz0iaXRlbSBzaGFyZSI+PGkgY2xhc3M9Imljb24gaWNvbi1jb3ZlciI+PC9pPiDmoIfnrb7vvJoNCgkJCQkJCQkgICAgCTxmaC1mdW5jdGlvbj4NCgkJCQkJCQkJCQkkdGFnPWV4cGxvZGUoIiAiLCROX3RhZyk7DQoJCQkJCQkJCQkJZm9yKCRpPTA7JGk8Y291bnQoJHRhZyk7JGkrKyl7DQoJCQkJCQkJCSAgICAgICAgCWlmKCR0YWdbJGldIT0iIil7DQoJCQkJCQkJCSAgICAgICAgCQkkdGFncz0kdGFncy4iPGEgc3R5bGU9XCJib3JkZXI6c29saWQgMXB4ICNBQUFBQUE7ZGlzcGxheTppbmxpbmUtYmxvY2s7cGFkZGluZzoycHggNXB4O2JvcmRlci1yYWRpdXM6NXB4O21hcmdpbjo1cHg7Zm9udC1zaXplOjEycHg7XCIgaHJlZj1cIj90eXBlPW5ld3MmdGFnPSIuJHRhZ1skaV0uIlwiPiIuJHRhZ1skaV0uIjwvYT4iOw0KCQkJCQkJCQkgICAgICAgIAl9DQoJCQkJCQkJCSAgICAJfQ0KCQkJCQkJCQkgICAgCSRhcGk9JHRhZ3M7DQoJCQkJCQkJICAgIAk8L2ZoLWZ1bmN0aW9uPg0KCQkJCQkJCSAgICA8L3NwYW4+CQ0KCQkJCQkJCTwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9oZWFkZXI+CQkgICAgCQkNCgkJCQkJCTxkaXYgY2xhc3M9ImFydGljbGUtY29udGVudCI+DQoJCSAgICAJCQkgICAgW05fY29udGVudF0JCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkNCgkJCQkJCQkNCgkJCQkJCQkJCQkJCQkJICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CQkgICAgCQkJDQoNCgkJCQkJCQkJCQkJCQ0KCQkJCQkJPGRpdiBjbGFzcz0iYXJ0aWNsZS1zaGFyZXMiPg0KCQkJCQkJICAgIDxhIGhyZWY9ImphdmFzY3JpcHQ6OyIgY2xhc3M9InNoYXJlLXdlaXhpbiIgdGl0bGU9IuWIhuS6q+WIsOW+ruS/oSI+DQoJCQkJCQkJICAgIDxpIGNsYXNzPSJpY29uIGljb24td2VpeGluIj48L2k+DQoJCQkJCQkJPHNwYW4gY2xhc3M9InNoYXJlLXBvcG92ZXIiPjxzcGFuIGNsYXNzPSJzaGFyZS1wb3BvdmVyLWlubmVyIiBpZD0id2VpeGluLXFyY29kZSI+PC9zcGFuPjwvc3Bhbj48L2E+DQoJCQkJCQkJPGEgZGF0YS1zaGFyZT0icXpvbmUiIGNsYXNzPSJzaGFyZS1xem9uZSIgdGl0bGU9IuWIhuS6q+WIsFFR56m66Ze0Ij4NCgkJCQkJCQkgICA8aSBjbGFzcz0iaWNvbiBpY29uLXF6b25lIj48L2k+DQoJCQkJCQkJPC9hPg0KCQkJCQkJCTxhIGRhdGEtc2hhcmU9IndlaWJvIiBjbGFzcz0ic2hhcmUtdHNpbmEiIHRpdGxlPSLliIbkuqvliLDmlrDmtarlvq7ljZoiPg0KCQkJCQkJCSAgICA8aSBjbGFzcz0iaWNvbiBpY29uLXdlaWJvIj48L2k+DQoJCQkJCQkJPC9hPg0KCQkJCQkJCTxhIGRhdGEtc2hhcmU9InFxIiBjbGFzcz0ic2hhcmUtc3FxIiB0aXRsZT0i5YiG5Lqr5YiwUVHlpb3lj4siPg0KCQkJCQkJCQk8aSBjbGFzcz0iaWNvbiBpY29uLXFxIj48L2k+DQoJCQkJCQkJPC9hPg0KCQkJCQkJCTxhIGRhdGEtc2hhcmU9ImRvdWJhbiIgY2xhc3M9InNoYXJlLWRvdWJhbiIgdGl0bGU9IuWIhuS6q+WIsOixhueTo+e9kSI+DQoJCQkJCQkJICAgIDxpIGNsYXNzPSJpY29uIGljb24tZG91YmFuIj48L2k+DQoJCQkJCQkJPC9hPg0KCQkJCQkJCTxhIGhyZWY9ImphdmFzY3JpcHQ6OyIgY2xhc3M9ImFydGljbGUtY292ZXIgcmlnaHQgc2hhcmUiIHRpdGxlPSLliIbkuqvljaHniYciPg0KCQkJCQkJCSAgICA8aSBjbGFzcz0iaWNvbiBpY29uLWNvdmVyIj48L2k+IOWwgemdouWbvg0KCQkJCQkJCTwvYT4NCgkJCQkJCTwvZGl2Pg0KCQkJCQk8L2FydGljbGU+CQkJCQkJCQkJCQ0KCQkJCQkNCgkJCQkJPG5hdiBjbGFzcz0iYXJ0aWNsZS1uYXYiPg0KCQkJCQkgICAgCQkJCQkJPHNwYW4gY2xhc3M9ImFydGljbGUtbmF2LXByZXYiPuS4iuS4gOevhzxicj4NCgkJCQkJCSAgICA8YSBocmVmPSJbTl9QdXJsXSIgcmVsPSJwcmV2Ij5bTl9QdGl0bGVdPC9hPg0KCQkJCQkJPC9zcGFuPg0KCQkJCQkJCQkJCQkJCQkJCQkJPHNwYW4gY2xhc3M9ImFydGljbGUtbmF2LW5leHQiPuS4i+S4gOevhzxicj4NCgkJCQkJCSAgICA8YSBocmVmPSJbTl9OdXJsXSIgcmVsPSJuZXh0Ij5bTl9OdGl0bGVdPC9hPg0KCQkJCQkJPC9zcGFuPg0KCQkJCQkJCQkJCQk8L25hdj4NCgkJCSAgICA8L2Rpdj4NCgkJICAgIDwvZGl2Pg0KCQkNCgkJICAgIDxhc2lkZSBjbGFzcz0ic2lkZWJhciI+DQoJCQkgICAgPGRpdiBjbGFzcz0idGhlaWFTdGlja3lTaWRlYmFyIj4NCg0KPGZoLWZ1bmN0aW9uPg0KaWYoJE5fYnV5PT0xKXsNCmlmKCROX2Rvd25sb2FkPT0iIil7DQoJJGFwaT0nPGRpdiBjbGFzcz0id2lkZ2V0IHdpZGdldC1lcnBocGRvd24iPg0KCQkJCQkgICAgCQkJCQkgICAgPGZpZWxkc2V0IGNsYXNzPSJlcnBocGRvd24tY2hpbGQiPg0KCQkJCQkgICAgICAgIAkJCQkJCSAgICA8ZGl2IGNsYXNzPSJpdGVtIHZpcCI+VklQ5Lya5ZGY5Y+v5YWN6LS55LiL6L295LiO6L2s5a2YPC9kaXY+CQkJCQkNCgkJCQkJICAgICAgICAJCQkJCQkgICAgICAgIDxkaXYgY2xhc3M9Iml0ZW0gdmlwIj48YSBocmVmPSIjIj7ngrnlh7vpmIXor7s8L2E+PC9kaXY+DQoJCQkJCSAgICAgICAgCQkJCQkJICAgIAkJCQkJICAgIDwvZmllbGRzZXQ+DQoJCQkJCSAgICA8ZGl2IGNsYXNzPSJ0aXBzIj7mgqjlt7LotK3kubDor6XmlofmoaPvvIzlhajpg6jlhoXlrrnlt7LlvIDlj5HvvIE8L2Rpdj4NCgkJCQkJICAgIAkJCQkgICAgPC9kaXY+JzsNCn1lbHNlew0KCSRhcGk9JzxkaXYgY2xhc3M9IndpZGdldCB3aWRnZXQtZXJwaHBkb3duIj4NCgkJCQkJICAgIAkJCQkJICAgIDxmaWVsZHNldCBjbGFzcz0iZXJwaHBkb3duLWNoaWxkIj4NCgkJCQkJICAgICAgICAJCQkJCQkgICAgPGRpdiBjbGFzcz0iaXRlbSB2aXAiPlZJUOS8muWRmOWPr+WFjei0ueS4i+i9veS4jui9rOWtmDwvZGl2PgkJCQkJDQoJCQkJCSAgICAgICAgCQkJCQkJICAgICAgICA8ZGl2IGNsYXNzPSJpdGVtIHZpcCI+PGEgaHJlZj0iJy4kZG93bmxvYWQuJyI+54K55Ye75LiL6L29PC9hPjwvZGl2Pg0KCQkJCQkgICAgICAgIAkJCQkJCSAgICAJCQkJCSAgICA8L2ZpZWxkc2V0Pg0KCQkJCQkgICAgPGRpdiBjbGFzcz0idGlwcyI+5oKo5bey6LSt5Lmw6K+l5paH5qGj77yM6K+354K55Ye75oyJ6ZKu5LiL6L2977yBPC9kaXY+DQoJCQkJCSAgICAJCQkJICAgIDwvZGl2Pic7DQp9DQoJDQp9ZWxzZXsNCgkkYXBpPSc8ZGl2IGNsYXNzPSJ3aWRnZXQgd2lkZ2V0LWVycGhwZG93biI+DQoJCQkJCSAgICAJCQkJCSAgICA8ZmllbGRzZXQgY2xhc3M9ImVycGhwZG93bi1jaGlsZCI+DQoJCQkJCSAgICAgICAgCQkJCQkJICAgIDxkaXYgY2xhc3M9Iml0ZW0gdmlwIj5WSVDkvJrlkZjlj6/lhY3otLnkuIvovb3kuI7ovazlrZg8L2Rpdj4JCQkJCQ0KCQkJCQkgICAgICAgIAkJCQkJCSAgICAgICAgPGRpdiBjbGFzcz0iaXRlbSB2aXAiPjxhIGhyZWY9Im1lbWJlci92aXAucGhwIj7liqDlhaVWSVDkvJrlkZg8L2E+PC9kaXY+DQoJCQkJCSAgICAgICAgCQkJCQkJICAgIAkJCQkJICAgIDwvZmllbGRzZXQ+DQoJCQkJCSAgICA8ZGl2IGNsYXNzPSJ0aXBzIj7mnKzlhoXlrrnkuLrku5jotLnlhoXlrrnvvIzor7flhYjotK3kubDvvIE8L2Rpdj4NCgkJCQkJICAgIAkJCQkgICAgPC9kaXY+JzsNCn0NCg0KPC9maC1mdW5jdGlvbj4NCg0KCQkJCSAgICA8ZGl2IGNsYXNzPSJ3aWRnZXQgd2lkZ2V0LXBvc3RsaXN0Ij4NCgkJCQkJICAgIDxoMz48aSBjbGFzcz0iaWNvbiBpY29uLXBvc3RzIj48L2k+IOacgOaWsOWPkeW4gzwvaDM+DQoJCQkJCSAgICA8dWwgY2xhc3M9ImNsZWFyZml4IGhhc2ltZyI+DQoNCg0KCQkJCQkgICAgCSAgICA8ZmgtZnVuY3Rpb24+DQogICAgICAkaT0xOw0KICRzcWw9InNlbGVjdCAqIGZyb20gc2xfbmV3cyxzbF9uc29ydCB3aGVyZSBTX2lkPU5fc29ydCBhbmQgU19kZWw9MCBhbmQgTl9kZWw9MCAiLiRNX25pbmZvLiIgIG9yZGVyIGJ5IE5fZGF0ZSBkZXNjIGxpbWl0IDgiOw0KICAgICAgICAgIHNbWw0KICAgICAgJGFwaT0kYXBpLiI8bGkgb25jbGljaz1cImxvY2F0aW9uLmhyZWY9Jz90eXBlPW5ld3NpbmZvJmlkPSIuJHJvd1siTl9pZCJdLiInXCI+DQoJCQkJCQkJPGEgaHJlZj1cIj90eXBlPW5ld3NpbmZvJmlkPSIuJHJvd1siTl9pZCJdLiJcIiB0YXJnZXQ9XCJfYmxhbmtcIiB0aXRsZT1cIiIuJHJvd1siTl90aXRsZSJdLiJcIiBjbGFzcz1cImltZ1wiPg0KCQkJCQkJCQk8aW1nIHNyYz1cIiIucGljKCRyb3dbIk5fcGljIl0pLiJcIiBjbGFzcz1cInRodW1iXCIgYWx0PVwiIi4kcm93WyJOX3RpdGxlIl0uIlwiPg0KCQkJCQkJCTwvYT4NCgkJCQkJCQk8aDQ+PGEgaHJlZj1cIj90eXBlPW5ld3NpbmZvJmlkPSIuJHJvd1siTl9pZCJdLiJcIiB0YXJnZXQ9XCJfYmxhbmtcIiB0aXRsZT1cIiIuJHJvd1siTl90aXRsZSJdLiJcIj4iLiRyb3dbIk5fdGl0bGUiXS4iPC9hPjwvaDQ+DQoJCQkJCQkJPHAgY2xhc3M9XCJtZXRhXCIgc3R5bGU9XCJ3aGl0ZS1zcGFjZTpub3dyYXBcIj4NCgkJCQkJCQkJPHNwYW4gY2xhc3M9XCJ0aW1lXCI+PGkgY2xhc3M9XCJpY29uIGljb24tdGltZVwiPjwvaT4gIi5kYXRlKCJZLW0tZCIsc3RydG90aW1lKCRyb3dbIk5fZGF0ZSJdKSkuIjwvc3Bhbj4gDQoJCQkJCQkJCTxzcGFuIGNsYXNzPVwidmlld3NcIj48aSBjbGFzcz1cImljb24gaWNvbi1leWVcIj48L2k+ICIuJHJvd1siTl92aWV3Il0uIjwvc3Bhbj4gDQoJCQkJCQkJCTxzcGFuIGNsYXNzPVwiY29tbWVudHNcIj48aSBjbGFzcz1cImljb24gaWNvbi1wb3N0c1wiPjwvaT4g77+lIi5wKCRyb3dbIk5fcHJpY2UiXSkuIjwvc3Bhbj4NCgkJCQkJCQk8L3A+DQoJCQkJCQk8L2xpPiI7DQogICAgICRpPSRpKzE7DQogICAgIF1dDQo8L2ZoLWZ1bmN0aW9uPg0KDQoJCSAgICAgICAgICAgICAgICA8L3VsPg0KCQkgICAgICAgICAgICA8L2Rpdj4NCgkJCQkJDQoNCgkJCQkJPGRpdiBjbGFzcz0id2lkZ2V0IHdpZGdldC1wb3N0bGlzdCI+DQoJCQkJCSAgICA8aDM+PGkgY2xhc3M9Imljb24gaWNvbi1wb3N0cyI+PC9pPiDmnIDlpJrmtY/op4g8L2gzPg0KCQkJCQkgICAgPHVsIGNsYXNzPSJjbGVhcmZpeCBoYXNpbWciPg0KCQkJCQkgICAgCSAgICA8ZmgtZnVuY3Rpb24+DQogICAgICAkaT0xOw0KICRzcWw9InNlbGVjdCAqIGZyb20gc2xfbmV3cyxzbF9uc29ydCB3aGVyZSBTX2lkPU5fc29ydCBhbmQgU19kZWw9MCBhbmQgTl9kZWw9MCAiLiRNX25pbmZvLiIgIG9yZGVyIGJ5IE5fdmlldyBkZXNjIGxpbWl0IDgiOw0KICAgICAgICAgIHNbWw0KICAgICAgJGFwaT0kYXBpLiI8bGkgb25jbGljaz1cImxvY2F0aW9uLmhyZWY9Jz90eXBlPW5ld3NpbmZvJmlkPSIuJHJvd1siTl9pZCJdLiInXCI+DQoJCQkJCQkJPGEgaHJlZj1cIj90eXBlPW5ld3NpbmZvJmlkPSIuJHJvd1siTl9pZCJdLiJcIiB0YXJnZXQ9XCJfYmxhbmtcIiB0aXRsZT1cIiIuJHJvd1siTl90aXRsZSJdLiJcIiBjbGFzcz1cImltZ1wiPg0KCQkJCQkJCQk8aW1nIHNyYz1cIiIucGljKCRyb3dbIk5fcGljIl0pLiJcIiBjbGFzcz1cInRodW1iXCIgYWx0PVwiIi4kcm93WyJOX3RpdGxlIl0uIlwiPg0KCQkJCQkJCTwvYT4NCgkJCQkJCQk8aDQ+PGEgaHJlZj1cIj90eXBlPW5ld3NpbmZvJmlkPSIuJHJvd1siTl9pZCJdLiJcIiB0YXJnZXQ9XCJfYmxhbmtcIiB0aXRsZT1cIiIuJHJvd1siTl90aXRsZSJdLiJcIj4iLiRyb3dbIk5fdGl0bGUiXS4iPC9hPjwvaDQ+DQoJCQkJCQkJPHAgY2xhc3M9XCJtZXRhXCIgc3R5bGU9XCJ3aGl0ZS1zcGFjZTpub3dyYXBcIj4NCgkJCQkJCQkJPHNwYW4gY2xhc3M9XCJ0aW1lXCI+PGkgY2xhc3M9XCJpY29uIGljb24tdGltZVwiPjwvaT4gIi5kYXRlKCJZLW0tZCIsc3RydG90aW1lKCRyb3dbIk5fZGF0ZSJdKSkuIjwvc3Bhbj4gDQoJCQkJCQkJCTxzcGFuIGNsYXNzPVwidmlld3NcIj48aSBjbGFzcz1cImljb24gaWNvbi1leWVcIj48L2k+ICIuJHJvd1siTl92aWV3Il0uIjwvc3Bhbj4gDQoJCQkJCQkJCTxzcGFuIGNsYXNzPVwiY29tbWVudHNcIj48aSBjbGFzcz1cImljb24gaWNvbi1wb3N0c1wiPjwvaT4g77+lIi5wKCRyb3dbIk5fcHJpY2UiXSkuIjwvc3Bhbj4NCgkJCQkJCQk8L3A+DQoJCQkJCQk8L2xpPiI7DQogICAgICRpPSRpKzE7DQogICAgIF1dDQo8L2ZoLWZ1bmN0aW9uPg0KDQoNCg0KCQkJCQkgICAgCQkJCQkgICANCgkJCQkJICAgIAkNCgkJICAgICAgICAgICAgICAgIDwvdWw+DQoJCSAgICAgICAgICAgIDwvZGl2Pg0KDQoJCQkgICAgPC9kaXY+DQoJCSAgICA8L2FzaWRlPg0KCSAgICA8L2Rpdj4NCiAgICA8L2Rpdj4NCjwvZGl2Pg0KPGRpdiBjbGFzcz0iemNzIj4NCiAgICA8ZGl2IGNsYXNzPSJzaWduIj4JCQkNCgkgICAgPGRpdiBjbGFzcz0ic2lnbi1tYXNrIj48L2Rpdj4JCQkNCgkgICAgPGRpdiBjbGFzcz0ic2lnbi1ib3giPgkJCQkJDQoJCSAgICA8ZGl2IGNsYXNzPSJzaWduLWluIj4gIA0KCQkgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0taXRlbSB0aXRsZSI+6L6T5YWl6YKu566xPC9kaXY+DQoJCQkgICAgPGRpdiBjbGFzcz0iZm9ybS1pdGVtIj48aW5wdXQgdHlwZT0iZW1haWwiIG5hbWU9ImVtYWlsIiB2YWx1ZT0iIiBjbGFzcz0iZm9ybS1jb250cm9sIiBwbGFjZWhvbGRlcj0i6K+36L6T5YWl6L2s5a2Y55qE6YKu566xIj48aSBjbGFzcz0iaWNvbiBpY29uLW1haWwiPjwvaT48L2Rpdj4JCQkJDQoJCQkgICAgPGRpdiBjbGFzcz0iYnRuIHNpZ25pbnN1Ym1pdC1sb2FkZXIgZW1haWwiPuaPkCDkuqQ8L2Rpdj4NCgkJICAgIDwvZGl2Pg0KCQkgICAgPGRpdiBjbGFzcz0ic2lnbi13cmFwIj4NCgkJICAgICAgICA8ZGl2IGNsYXNzPSJzaWduLWNsb3NlIj7DlzwvZGl2Pg0KCQkgICAgPC9kaXY+DQoJICAgIDwvZGl2PgkJDQogICAgPC9kaXY+DQo8L2Rpdj4NCgkNCg0KDQo8ZGl2IGNsYXNzPSJ3cHBheS1jdXN0b20tbW9kYWwtYm94IHBheXR5cGUiPg0KCTxkaXYgY2xhc3M9IndwcGF5LW1vZGFsIj4NCgkJPGRpdiBjbGFzcz0ibGF5dWktbGF5ZXItdGl0bGUiPuivt+mAieaLqeaUr+S7mOaWueW8jzwvZGl2Pg0KCQk8ZGl2IGNsYXNzPSJsYXl1aS1sYXllci1zZXR3aW4iPg0KCQkgICAgPGEgaHJlZj0iamF2YXNjcmlwdDo7IiBjbGFzcz0ibGF5dWktbGF5ZXItaWNvIGxheXVpLWxheWVyLWNsb3NlMSI+PC9hPg0KCQk8L2Rpdj4NCgkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImdpZCIgdmFsdWU9IiI+DQogICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJndHlwZSIgdmFsdWU9IiI+CQkNCgkJPGRpdiBjbGFzcz0iZXJwaHAtd3BwYXktcXJjb2RlIG1vYmFudHUtd3BwYXkiPg0KCQkJCQk8ZGl2IGNsYXNzPSJzYXZlcGF5IGVycGhwZG93bi10eXBlLWxpbmsgYmctcGhvbmUiIGRhdGEtY29kZT0ieHVuaHVwYXkiPjxpIGNsYXNzPSJpY29uIGljb24teHVuaHVwYXktY29sb3IiPjwvaT4g5b6u5L+h5pSv5LuYPC9kaXY+DQoJCQkJPC9kaXY+DQoJCTxkaXYgY2xhc3M9IndwcGF5LWRlc2MiPuiZmuaLn+S6p+WTge+8jOS4gOe7j+aUr+S7mO+8jOamguS4jemAgOasvu+8gTwvZGl2Pg0KCTwvZGl2Pg0KPC9kaXY+DQo8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0Ij4NCgkkKCcuZ3JvdXAnKS51bmJpbmQoJ2NsaWNrJykuY2xpY2soZnVuY3Rpb24oKSB7CQ0KCQkkKCIuZ3JvdXBzIikuc2hvdygpOw0KCX0pOw0KICAgICQoJy52aXBzJykudW5iaW5kKCdjbGljaycpLmNsaWNrKGZ1bmN0aW9uKCkgew0KCQl2YXIgZ2lkID0gJCh0aGlzKS5kYXRhKCdnaWQnKTsNCgkgICAgJCgnI2dpZCcpLnZhbChnaWQpOw0KCQkkKCcjZ3R5cGUnKS52YWwoNCk7DQoJCSQoIi5wYXl0eXBlIikuc2hvdygpOw0KCX0pOw0KCQ0KICAgICQoJy5raWQnKS51bmJpbmQoJ2NsaWNrJykuY2xpY2soZnVuY3Rpb24oKSB7DQoJICAgICQoJyNnaWQnKS52YWwoIjg3NzQiKTsNCgkJJCgnI2d0eXBlJykudmFsKDMpOw0KCQkkKCIucGF5dHlwZSIpLnNob3coKTsNCgl9KTsNCgkNCiAgICAkKCcuY2lkJykudW5iaW5kKCdjbGljaycpLmNsaWNrKGZ1bmN0aW9uKCkgew0KCSAgICAkKCcjZ2lkJykudmFsKCI4Nzc0Iik7DQoJCSQoJyNndHlwZScpLnZhbCgyKTsNCgkJJCgiLnBheXR5cGUiKS5zaG93KCk7DQoJfSk7DQoJDQoJJCgnLmFpZCcpLnVuYmluZCgnY2xpY2snKS5jbGljayhmdW5jdGlvbigpIHsNCgkgICAgJCgnI2dpZCcpLnZhbCgiMTMwODQyIik7DQoJCSQoJyNndHlwZScpLnZhbCgxKTsNCgkJJCgiLnBheXR5cGUiKS5zaG93KCk7DQoJfSk7DQoNCgkkKCcubGF5dWktbGF5ZXItaWNvJykudW5iaW5kKCdjbGljaycpLmNsaWNrKGZ1bmN0aW9uKCkgew0KCQkkKCIucGF5dHlwZSIpLmhpZGUoKTsNCgkJJCgiLmdyb3VwcyIpLmhpZGUoKTsNCgl9KTsJDQoNCgkkKCcuc2F2ZXBheScpLmNsaWNrKGZ1bmN0aW9uICgpIHsNCgkJdmFyIGdpZCA9ICQoJyNnaWQnKS52YWwoKTsNCgkJdmFyIGd0eXBlID0gJCgnI2d0eXBlJykudmFsKCk7DQoJCXZhciBwdHlwZSA9ICQodGhpcykuZGF0YSgnY29kZScpOw0KCQlpZiAoZ2lkID09ICcnIHx8IHB0eXBlID09ICcnIHx8IGd0eXBlID09ICcnKSB7DQoJCQlsYXllci5tc2coJ+ivt+WIt+aWsOmHjeivlSEnKTsNCgkJCXJldHVybiBmYWxzZTsNCgkJfQ0KCQl2YXIgbG9hZHMgPSBsYXllci5sb2FkKDIpOw0KCQljb3JlX2pzb24oIi9pbmRleC5waHA/bW9kPW1vYmlsZSZhY3Q9Y29uZmlybSZkbz1vcmRlciZvcD1jb25maXJtJm09ZXNob3AmYmVpZD0xMCIsIHtwdHlwZTpwdHlwZSxnaWQ6Z2lkLGd0eXBlOmd0eXBlfSwgZnVuY3Rpb24gKHBqc29uKSB7DQoJCQlsYXllci5jbG9zZShsb2Fkcyk7DQoJCQlpZiAocGpzb24uc3RhdHVzID09IDApew0KCQkJCWxheWVyLm1zZyhwanNvbi5yZXN1bHQpOw0KCQkJCXJldHVybiBmYWxzZTsNCgkJCX0NCgkJCWlmIChwanNvbi5zdGF0dXMgPT0gMil7DQoJCQkJJCgiLnBheXR5cGUiKS5oaWRlKCk7DQoJCQkJbGF5ZXIubXNnKCfor7flhYjnmbvlvZUnKTsJCQkJDQoJCQkJc2V0VGltZW91dChmdW5jdGlvbigpIHsNCgkJCSAgICAgICAgJCgnLnNpZ25pbi1sb2FkZXInKS5jbGljaygpOw0KCQkgICAgICAgIH0sIDEwMDApOwkJCQkNCgkJCQlyZXR1cm4gZmFsc2U7DQoJCQl9DQoJCQlpZiAocGpzb24uc3RhdHVzID09IDEpew0KCQkJCWlmIChwdHlwZSA9PSAneHVuaHVwYXknKXsNCgkJCQkJbGF5ZXIubXNnKHBqc29uLnJlc3VsdC5tc2csew0KICAgICAgICAgICAgICAgICAgICAgICAgdGltZTogMTAwMCwgDQogICAgICAgICAgICAgICAgICAgIH0sIGZ1bmN0aW9uKCl7DQoJCQkJCSAgICBsb2NhdGlvbi5ocmVmID0gcGpzb24ucmVzdWx0LnVybDsNCiAgICAgICAgICAgICAgICAgICAgfSk7DQoJCQkJCXJldHVybiBmYWxzZTsNCgkJCSAgICB9DQoJCQkJaWYgKHB0eXBlID09ICdjcmVkaXQnKXsNCgkJCQkJbGF5ZXIubXNnKHBqc29uLnJlc3VsdC5tc2csew0KICAgICAgICAgICAgICAgICAgICAgICAgdGltZTogMTAwMCwgDQogICAgICAgICAgICAgICAgICAgIH0sIGZ1bmN0aW9uKCl7DQoJCQkJCSAgICBsb2NhdGlvbi5ocmVmID0gcGpzb24ucmVzdWx0LnVybDsNCiAgICAgICAgICAgICAgICAgICAgfSk7DQoJCQkJCXJldHVybiBmYWxzZTsNCgkJCSAgICB9DQoJCQkJbGF5ZXIubXNnKHBqc29uLnJlc3VsdC5tc2csew0KICAgICAgICAgICAgICAgICAgICB0aW1lOiAxMDAwLCANCiAgICAgICAgICAgICAgICB9LCBmdW5jdGlvbigpew0KCQkJCSAgICBsYXllci5vcGVuKHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IDIsDQogICAgICAgICAgICAgICAgICAgICAgICBhcmVhOiBbJzMzMHB4JywgJzQ4MHB4J10sDQogICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogZmFsc2UsDQogICAgICAgICAgICAgICAgICAgICAgICByZXNpemU6ZmFsc2UsDQogICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxiYXI6IGZhbHNlLA0KICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogcGpzb24ucmVzdWx0LnVybCArICcmdHlwZT0xJw0KICAgICAgICAgICAgICAgICAgICB9KTsNCgkJCQl9KTsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7ICAgICAgICAgICAgICANCgkJCX0NCgkJCWxheWVyLm1zZygn6K+35Yi35paw6YeN6K+VIScpOwkJCQkNCgkJfSwgdHJ1ZSk7DQoJfSk7DQo8L3NjcmlwdD4NCg0KPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCI+DQoNCg0KDQoNCgkkKCcuc2hhcmUtd2VpeGluJykuZWFjaChmdW5jdGlvbigpew0KCQlpZiggISQodGhpcykuZmluZCgnLnNoYXJlLXBvcG92ZXInKS5sZW5ndGgpew0KCQkJJCh0aGlzKS5hcHBlbmQoJzxzcGFuIGNsYXNzPSJzaGFyZS1wb3BvdmVyIj48c3BhbiBjbGFzcz0ic2hhcmUtcG9wb3Zlci1pbm5lciIgaWQ9IndlaXhpbi1xcmNvZGUiPjwvc3Bhbj48L3NwYW4+Jyk7DQoJCQkNCgkJfQ0KCX0pDQogICAgJCgiLmFydGljbGUtc2hhcmVzIGEiKS5vbignY2xpY2snLCBmdW5jdGlvbigpew0KCQl2YXIgdG8gPSAkKHRoaXMpLmRhdGEoJ3NoYXJlJyk7IA0KCQl2YXIgdGl0bGUgPSAiIjsNCgkJdmFyIGRlc2MgPSAiIjsNCgkJdmFyIHBpYyA9ICIiOw0KCQl2YXIgdXJsID0gIjxmaC1mdW5jdGlvbj4kYXBpPSRhcGkuZ2V0aHR0cCgpLiRfU0VSVkVSWydTRVJWRVJfTkFNRSddLic6Jy4kX1NFUlZFUlsnU0VSVkVSX1BPUlQnXS4kX1NFUlZFUlsnUkVRVUVTVF9VUkknXTs8L2ZoLWZ1bmN0aW9uPiI7DQoJCXN3aXRjaCh0byl7DQoJCSAgICBjYXNlICdxcSc6DQoJCSAgICAgICAgdXJsID0gJ2h0dHA6Ly9jb25uZWN0LnFxLmNvbS93aWRnZXQvc2hhcmVxcS9pbmRleC5odG1sP3VybD0nK3VybCsnJmRlc2M9JytkZXNjKycmc3VtbWFyeT0nK3RpdGxlKycmc2l0ZT16ZXNobGlmZSZwaWNzPScrcGljOw0KCQkgICAgICAgIHdpbmRvdy5vcGVuKHVybCk7DQoJCQkJYnJlYWs7DQoJCSAgICBjYXNlICd3ZWlibyc6DQoJCSAgICAgICAgdXJsID0gJ2h0dHA6Ly9zZXJ2aWNlLndlaWJvLmNvbS9zaGFyZS9zaGFyZS5waHA/dGl0bGU9Jyt0aXRsZSsnJnVybD0nK3VybCsnJnNvdXJjZT1ib29rbWFyayZwaWM9JytwaWM7DQoJCSAgICAgICAgd2luZG93Lm9wZW4odXJsKTsNCgkJCQlicmVhazsNCgkJICAgIGNhc2UgJ2RvdWJhbic6DQoJCSAgICAgICAgdXJsID0gJ2h0dHA6Ly93d3cuZG91YmFuLmNvbS9zaGFyZS9zZXJ2aWNlP2ltYWdlPScrcGljKycmaHJlZj0nK3VybCsnJm5hbWU9Jyt0aXRsZSsnJnRleHQ9JytkZXNjOw0KCQkgICAgICAgIHdpbmRvdy5vcGVuKHVybCk7DQoJCQkJYnJlYWs7DQoJCSAgICBjYXNlICdxem9uZSc6DQoJCSAgICAgICAgdXJsID0gJ2h0dHA6Ly9zbnMucXpvbmUucXEuY29tL2NnaS1iaW4vcXpzaGFyZS9jZ2lfcXpzaGFyZV9vbmVrZXk/dXJsPScrdXJsKycmdGl0bGU9Jyt0aXRsZSsnJmRlc2M9JytkZXNjOw0KCQkgICAgICAgIHdpbmRvdy5vcGVuKHVybCk7DQoJCQkJYnJlYWs7DQoJCSAgICBjYXNlICd0cXEnOg0KCQkgICAgICAgIHVybCA9ICdodHRwOi8vc2hhcmUudi50LnFxLmNvbS9pbmRleC5waHA/Yz1zaGFyZSZhPWluZGV4JnVybD0nK3VybCsnJnRpdGxlPScrdGl0bGU7DQoJCSAgICAgICAgd2luZG93Lm9wZW4odXJsKTsNCgkJCQlicmVhazsNCgkJICAgIGNhc2UgJ3JlbnJlbic6DQoJCSAgICAgICAgdXJsID0gJ2h0dHA6Ly93aWRnZXQucmVucmVuLmNvbS9kaWFsb2cvc2hhcmU/c3JjVXJsPScrcGljKycmcmVzb3VyY2VVcmw9Jyt1cmwrJyZ0aXRsZT0nK3RpdGxlKycmZGVzY3JpcHRpb249JytkZXNjOw0KCQkgICAgICAgIHdpbmRvdy5vcGVuKHVybCk7DQoJCQkgICAgYnJlYWs7CQ0KCQl9CQkJDQoJfSk7DQoJdmFyIGNsaXBib2FyZCA9IG5ldyBDbGlwYm9hcmQoJy5idG5zJyk7DQoJY2xpcGJvYXJkLm9uKCdzdWNjZXNzJywgZnVuY3Rpb24oZSkgew0KCQlsYXllci5tc2coJ+aPkOWPluWvhueggeWkjeWItuaIkOWKnycpOw0KCQlzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgew0KCQkJd2luZG93LmxvY2F0aW9uID0gZS50cmlnZ2VyLmRhdGFzZXQuY2xpcGJvYXJkVXJsOw0KCQl9LCAxMDAwKTsNCgl9KTsNCgljbGlwYm9hcmQub24oJ2Vycm9yJywgZnVuY3Rpb24oZSkgew0KCQlsYXllci5tc2coJ+aPkOWPluWvhueggeWkjeWItuWksei0pScpOw0KCX0pOw0KICAgICQoJy56aHVhbmN1bicpLmNsaWNrKGZ1bmN0aW9uICgpIHsNCgkgICAkKCIuemNzIikuYWRkQ2xhc3MoInNpZ24tc2hvdyIpOw0KCX0pOw0KCSQoJy5zaWduLWNsb3NlJykuY2xpY2soZnVuY3Rpb24gKCkgew0KCSAgICQoIi56Y3MiKS5yZW1vdmVDbGFzcygic2lnbi1zaG93Iik7DQoJfSk7DQogICAgJCgnLm5vemMnKS5jbGljayhmdW5jdGlvbiAoKSB7DQoJICAgbGF5ZXIubXNnKCfmnYPpmZDkuI3otrMs6K+35byA6YCaVklQ5Lya5ZGY5oiW5Y2V54us6LSt5Lmw77yBJyk7DQoJfSk7DQoJJCgnLmVtYWlsJykuY2xpY2soZnVuY3Rpb24gKCkgew0KCQl2YXIgZW1haWwgPSAkKCdpbnB1dFtuYW1lPSJlbWFpbCJdJykudmFsKCk7DQoJCWlmIChlbWFpbCA9PSAnJykgew0KCQkJbGF5ZXIubXNnKCfor7fovpPlhaXovazlrZjnmoTpgq7nrrEhJyk7DQoJCQlyZXR1cm47DQoJCX0NCgkJaWYgKCFlbWFpbC5tYXRjaCgvXlx3K0BcdytcLlx3KyQvaSkpew0KCQkJbGF5ZXIubXNnKCfpgq7nrrHmoLzlvI/kuI3mraPnoa4hJyk7DQoJCQlyZXR1cm47DQogICAgICAgIH0NCgkJdmFyIGxvYWRzID0gbGF5ZXIubG9hZCgyKTsNCgkJY29yZV9qc29uKCIvaW5kZXgucGhwP21vZD1tb2JpbGUmYWN0PWFydGljbGUmZG89YXJ0aWNsZSZvcD1lbWFpbCZtPWVzaG9wJmlkPTEzMDg0MiZiZWlkPTEwIiwge2VtYWlsOmVtYWlsfSwgZnVuY3Rpb24gKHBqc29uKSB7DQoJCQlsYXllci5jbG9zZShsb2Fkcyk7DQoJCQlpZiAocGpzb24uc3RhdHVzID09IDApew0KCQkJCWxheWVyLm1zZyhwanNvbi5yZXN1bHQpOw0KCQkJCXJldHVybjsNCgkJCX0NCgkJCWlmIChwanNvbi5zdGF0dXMgPT0gMil7DQoJCQkJbGF5ZXIubXNnKCfor7flhYjnmbvlvZUnKTsJCQkJDQoJCQkJc2V0VGltZW91dChmdW5jdGlvbigpIHsNCgkJCSAgICAgICAgJCgnLnNpZ25pbi1sb2FkZXInKS5jbGljaygpOw0KCQkgICAgICAgIH0sIDEwMDApOwkJCQkNCgkJCQlyZXR1cm4gZmFsc2U7DQoJCQl9DQoJCQlpZiAocGpzb24uc3RhdHVzID09IDEpew0KCQkJCSQoIi56Y3MiKS5yZW1vdmVDbGFzcygic2lnbi1zaG93Iik7DQoJCQkJbGF5ZXIubXNnKCfovazlrZjmiJDlip/vvIzlj5HpgIHlpKfnuqbpnIAzLTXliIbpkp/vvIzor7fms6jmhI/mn6XmlLbvvIEnKTsJCQkJDQoJCQkJcmV0dXJuOyAgICAgICAgICAgICAgICAgDQoJCQl9DQoJCQlsYXllci5tc2coJ+ivt+WIt+aWsOmHjeivlSEnKTsJCQkJDQoJCX0sIHRydWUpOw0KCX0pOw0KCQ0KCSQoJy5hcnRpY2xlLWNvbGxlY3QnKS5jbGljayhmdW5jdGlvbiAoKSB7DQoJCXZhciBnaWQgPSAkKHRoaXMpLmRhdGEoJ2lkJyk7DQoJCXZhciBjdHlwZSA9ICQoJyNjdHlwZScpLnZhbCgpOw0KCQlpZiAoZ2lkID09ICcnKSB7DQoJCQlsYXllci5tc2coJ+ivt+WIt+aWsOmHjeivlSEnKTsNCgkJCXJldHVybjsNCgkJfQ0KCQl2YXIgbG9hZHMgPSBsYXllci5sb2FkKDIpOw0KCQljb3JlX2pzb24oIi9pbmRleC5waHA/bW9kPW1vYmlsZSZhY3Q9dXRpbGl0eSZkbz1zYXZlcyZvcD1jb2xsZWN0JmJlaWQ9MTAiLCB7Z2lkOmdpZCxndHlwZToxLGN0eXBlOmN0eXBlfSwgZnVuY3Rpb24gKHBqc29uKSB7DQoJCQlsYXllci5jbG9zZShsb2Fkcyk7DQoJCQlpZiAocGpzb24uc3RhdHVzID09IDIpew0KCQkJCWxheWVyLm1zZygn6K+35YWI55m75b2VJyk7CQkJCQ0KCQkJCXNldFRpbWVvdXQoZnVuY3Rpb24oKSB7DQoJCQkgICAgICAgICQoJy5zaWduaW4tbG9hZGVyJykuY2xpY2soKTsNCgkJICAgICAgICB9LCAxMDAwKTsJCQkJDQoJCQkJcmV0dXJuIGZhbHNlOw0KCQkJfQ0KCQkJaWYgKHBqc29uLnN0YXR1cyA9PSAxKXsNCgkJCQlsYXllci5tc2cocGpzb24ucmVzdWx0KTsNCgkJCQl2YXIgY3R5cGUgPSAkKCcjY3R5cGUnKS52YWwoMSk7DQoJCQkJJCgiLmFydGljbGUtY29sbGVjdCIpLmFkZENsYXNzKCJhY3RpdmUiKTsNCgkJCQkkKCIuYXJ0aWNsZS1jb2xsZWN0IHNwYW4iKS5odG1sKCflt7LmlLbol48nKTsJCQkNCgkJCX0NCgkJCWlmIChwanNvbi5zdGF0dXMgPT0gMCl7DQoJCQkJbGF5ZXIubXNnKHBqc29uLnJlc3VsdCk7DQoJCQkJdmFyIGN0eXBlID0gJCgnI2N0eXBlJykudmFsKDApOw0KCQkJCSQoIi5hcnRpY2xlLWNvbGxlY3QiKS5yZW1vdmVDbGFzcygiYWN0aXZlIik7DQoJCQkJJCgiLmFydGljbGUtY29sbGVjdCBzcGFuIikuaHRtbCgn5pS26JePJyk7CQkJCQ0KCQkJfQ0KCQl9LCB0cnVlKTsNCgl9KTsJDQoNCjwvc2NyaXB0Pg0KDQoNCg0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCi53aWRnZXQtYm90dG9tLWxvZ28gLmZvb3Rlci1sb2dvIGltZ3t3aWR0aDogYXV0b30NCjwvc3R5bGU+DQo8Zm9vdGVyIGNsYXNzPSJmb290ZXIiPg0KCTxkaXYgY2xhc3M9ImNvbnRhaW5lciI+DQoJCTxkaXYgY2xhc3M9ImZvb3Rlci13aWRnZXRzIj4NCgkJCTxkaXYgY2xhc3M9ImZvb3Rlci13aWRnZXQgd2lkZ2V0LWJvdHRvbSB3aWRnZXQtYm90dG9tLWxvZ28iPg0KCQkJCTxzcGFuIGNsYXNzPSJmb290ZXItbG9nbyBsZWZ0Ij4NCgkJCQkgICAgPGltZyBzcmM9Im1lZGlhLzIwMTkxMTI2MjI0MzUyV2YuanBnIiBhbHQ9IuaCqOeahOe9keermeWQjeensCI+DQoJCQkJCTxwPuW+ruS/oeeJiDwvcD4NCgkJCQk8L3NwYW4+CQkJDQoJCQkgICAgPHNwYW4gY2xhc3M9ImZvb3Rlci1sb2dvIG1vYmlsZSI+DQoNCgkJCSAgICAJPGRpdiAgaWQ9ImJpbGxJbWFnZXgiIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7dmVydGljYWwtYWxpZ246IHRvcDtiYWNrZ3JvdW5kOiAjZmZmO3BhZGRpbmc6IDVweCA1cHggMCA1cHg7d2lkdGg6IDEyMHB4O2hlaWdodDogMTIwcHgiPjwvZGl2Pg0KDQoJCQkJCTxwPuaJi+acuueJiDwvcD4NCgkJCQk8L3NwYW4+DQoJCQk8L2Rpdj4NCgkJCTxkaXYgY2xhc3M9ImZvb3Rlci13aWRnZXQgd2lkZ2V0LWJvdHRvbSI+DQoJCQkJPGgzPuWFs+S6jjwvaDM+DQoJCQkJPGRpdiBjbGFzcz0iZm9vdGVyLXdpZGdldC1jb250ZW50Ij4NCgkJCQkJPHVsPg0KCQkJCQkJPGZoLWZ1bmN0aW9uPg0KCQkJCQkJCSRzcWw9InNlbGVjdCAqIGZyb20gc2xfdGV4dCB3aGVyZSBUX2RlbD0wIjsNCgkJCQkJCQlzW1sNCgkJCQkJCQkJJGFwaT0kYXBpLiI8bGk+PGEgaHJlZj1cIj90eXBlPXRleHQmaWQ9Ii4kcm93WyJUX2lkIl0uIlwiPiIuJHJvd1siVF90aXRsZSJdLiI8L2E+PC9saT4iOw0KCQkJCQkJCV1dDQoJCQkJCQk8L2ZoLWZ1bmN0aW9uPg0KDQoJCQkJCQkJCQkJPC91bD4NCgkJCQk8L2Rpdj4NCgkJCTwvZGl2Pg0KCQkJPGRpdiBjbGFzcz0iZm9vdGVyLXdpZGdldCB3aWRnZXQtYm90dG9tIj4NCgkJCQk8aDM+5YiG57G7PC9oMz4NCgkJCQk8ZGl2IGNsYXNzPSJmb290ZXItd2lkZ2V0LWNvbnRlbnQiPg0KCQkJCQk8dWw+DQoJCQkJCQk8ZmgtZnVuY3Rpb24+DQoJCQkJCQkJJHNxbD0ic2VsZWN0ICogZnJvbSBzbF9uc29ydCB3aGVyZSBTX3N1Yj0wIGFuZCBTX2RlbD0wIG9yZGVyIGJ5IFNfb3JkZXIsU19pZCBkZXNjIjsNCgkJCQkJCQlzW1sNCgkJCQkJCQkJJGFwaT0kYXBpLiI8bGk+PGEgaHJlZj1cIj90eXBlPW5ld3MmaWQ9Ii4kcm93WyJTX2lkIl0uIlwiPiIuJHJvd1siU190aXRsZSJdLiI8L2E+PC9saT4iOw0KCQkJCQkJCV1dDQoJCQkJCQk8L2ZoLWZ1bmN0aW9uPg0KDQoJCQkJCQkJCQkJPC91bD4NCgkJCQk8L2Rpdj4NCgkJCTwvZGl2Pg0KCQkJPGRpdiBjbGFzcz0iZm9vdGVyLXdpZGdldCB3aWRnZXQtYm90dG9tIHdpZGdldC1ib3R0b20tc2VhcmNoIj4NCgkJCQk8aDM+5pCc57SiPC9oMz4NCgkJCQk8ZGl2IGNsYXNzPSJmb290ZXItd2lkZ2V0LWNvbnRlbnQiPg0KCQkJCQk8ZGl2IGNsYXNzPSJzZWFyY2hmb3JtIGNsZWFyZml4Ij4NCgkJCQkJCTxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ibmFtZXMiIHBsYWNlaG9sZGVyPSLovpPlhaXlhbPplK7or43vvIzlpJrkuKrlhbPplK7or43nlKjnqbrmoLzliIblvIAiPg0KCQkJCQkJPGJ1dHRvbiBpZD0ic2VhcmNoIiB0eXBlPSJzdWJtaXQiPjxpIGNsYXNzPSJpY29uIGljb24tc2VhcmNoIj48L2k+PC9idXR0b24+DQoJCQkJCTwvZGl2Pg0KCQkJCQk8cD7lj5HotKcxMDAt6Jma5ouf5ZWG5ZOB6Ieq5Yqo5Y+R6LSn57O757ufPC9wPg0KCQkJCTwvZGl2Pg0KCQkJPC9kaXY+DQoJCTwvZGl2Pg0KCQk8ZGl2IGNsYXNzPSJmb290ZXItbGlua3MiPg0KCQkJPHVsPg0KCQkJCTxsaT7lj4vmg4Xpk77mjqXvvJo8L2xpPg0KCQkJCTxmaC1mdW5jdGlvbj4NCiAgICAgICAgJHNxbD0ic2VsZWN0ICogZnJvbSBzbF9saW5rIHdoZXJlIExfZGVsPTAgb3JkZXIgYnkgTF9pZCBkZXNjIjsNCiAgICAgICAgc1tbJGFwaT0kYXBpLiI8bGk+PGEgaHJlZj1cIiIuJHJvd1siTF9saW5rIl0uIlwiIHRhcmdldD1cIl9ibGFua1wiPiIuJHJvd1siTF90aXRsZSJdLiI8L2E+PC9saT4iO11dDQogICAgICAgIDwvZmgtZnVuY3Rpb24+DQoJCQkJCQkJPC91bD4NCgkJPC9kaXY+DQoJCTxwIGNsYXNzPSJjb3B5cmlnaHQiPkNvcHlyaWdodCDCqSAyMDE0LTIwMTcg5reE5Y2a6Zeq54G1572R57uc56eR5oqA5pyJ6ZmQ5YWs5Y+4IOeJiOadg+aJgOaciSA8YSBocmVmPSJodHRwczovL2JlaWFuLm1paXQuZ292LmNuLyIgdGFyZ2V0PSJfYmxhbmsiPumygUlDUOWkhzE1MDE1MTM35Y+3LTIgPC9hPjwvcD4NCgk8L2Rpdj4NCjwvZm9vdGVyPg0KPGRpdiBjbGFzcz0icm9sbGJhciI+DQoJPHVsPg0KCQk8bGkgY2xhc3M9InZpcC1saSI+DQoJCSAgICA8YSBocmVmPSJtZW1iZXIvdmlwLnBocCI+PGkgY2xhc3M9Imljb24gaWNvbi1jcm93bi1zIj48L2k+PC9hPg0KCQkJPGg2PuWNh+e6p1ZJUDxpPjwvaT48L2g2Pg0KCQk8L2xpPg0KCQk8bGkgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4NCgkJICAgIDxhIGhyZWY9ImphdmFzY3JpcHQ6OyIgY2xhc3M9ImRheS1jaGVja2luIj48aSBjbGFzcz0iaWNvbiBpY29uLWNhbGVuZGFyIj48L2k+PC9hPg0KCQkJPGg2Puavj+aXpeetvuWIsDxpPjwvaT48L2g2Pg0KCQk8L2xpPg0KCQk8bGkgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4NCgkJICAgIDxhIGhyZWY9ImphdmFzY3JpcHQ6OyIgdGFyZ2V0PSJfYmxhbmsiPjxpIGNsYXNzPSJpY29uIGljb24tcXEiPjwvaT48L2E+DQoJCQk8aDY+6IGU57O7UVE8aT48L2k+PC9oNj4NCgkJPC9saT4NCgkJPGxpPg0KCQkgICAgPGEgaHJlZj0iamF2YXNjcmlwdDo7IiBjbGFzcz0ia2VmdV93ZWl4aW4iPjxpIGNsYXNzPSJpY29uIGljb24td2VpeGluIj48L2k+DQoJCQkgICAgPGltZyBzcmM9Im1lZGlhLzIwMTkxMTI2MjI0MzUyV2YuanBnIj4NCgkJCTwvYT4NCgkJPC9saT4NCg0KCQk8bGkgY2xhc3M9InRvdG9wLWxpIiBzdHlsZT0iZGlzcGxheTogbGlzdC1pdGVtOyI+DQoJCSAgICA8YSBocmVmPSJqYXZhc2NyaXB0OjsiIGNsYXNzPSJ0b3RvcCI+PGkgY2xhc3M9Imljb24gaWNvbi1hcnJvdy11cCI+PC9pPjwvYT4NCgkJCTxoNj7ov5Tlm57pobbpg6g8aT48L2k+PC9oNj4NCgkJPC9saT4NCgk8L3VsPg0KPC9kaXY+DQoJCQ0KPGRpdiBjbGFzcz0ic2hhcmVzIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPg0KICAgIDxkaXYgY2xhc3M9Im1vYmlsZS1zaGFyZS1iZyI+PC9kaXY+DQogICAgPGRpdiBjbGFzcz0ibW9iaWxlLXNoYXJlLXdyYXAiPg0KICAgICAgICA8ZGl2IGNsYXNzPSJzd2lwZXItY29udGFpbmVyIiBpZD0icm90YXRlLXN3aXBlciI+DQogICAgICAgIDxkaXYgY2xhc3M9InN3aXBlci13cmFwcGVyIiBpZD0icG9zdGVyIj4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN3aXBlci1zbGlkZSByb3RhdGUtc2xpZGUiPg0KCSAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJsb2NrIj4NCgkJCQkgICAgPGRpdiBjbGFzcz0iZm9vdGVycyI+5YiG5Lqr5rW35oql5q2j5Zyo55Sf5oiQ5LitLi4uPC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSJ0ZW1wbGF0ZS90MTYvYXNzZXRzL2ltZy9zY3ouZ2lmIj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICA8L2Rpdj4NCiAgICAgICAgPGRpdiBjbGFzcz0ic3dpcGVyLXBhZ2luYXRpb24iIGlkPSJyb3RhdGUtcGFnaW5hdGlvbiI+PC9kaXY+DQoJCTxkaXYgY2xhc3M9InN3aXBlci1idXR0b24tbmV4dCI+PC9kaXY+DQogICAgICAgIDxkaXYgY2xhc3M9InN3aXBlci1idXR0b24tcHJldiI+PC9kaXY+DQogICAgICAgIDwvZGl2PgkNCiAgICAgICAgPGRpdiBjbGFzcz0ibW9iaWxlLXNoYXJlLWNsb3NlIj7DlzwvZGl2Pg0KICAgIDwvZGl2Pg0KPC9kaXY+DQoJDQoNCjxzY3JpcHQgc3JjPSJqcy9xcmNvZGUubWluLmpzIj48L3NjcmlwdD4NCjxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiPgkJDQoNCgkkKCcuc2hhcmUnKS5jbGljayhmdW5jdGlvbiAoKSB7DQoJICAgIGNvcmVfanNvbigiL2luZGV4LnBocD9tb2Q9bW9iaWxlJmFjdD11dGlsaXR5JmRvPXNoYXJlJm9wPXR3byZiZWlkPTEwIiwge3R5cGU6JzEnLGlkOicnfSwgZnVuY3Rpb24gKHNqc29uKSB7DQoJCSAgICBpZihzanNvbi5zdGF0dXM9PTEpew0KCQkJCSQoJyNwb3N0ZXInKS5odG1sKHRwbCgndHBsX3Bvc3Rlcicsc2pzb24ucmVzdWx0KSk7DQoJCQkJdmFyIGNsaXBib2FyZCA9IG5ldyBDbGlwYm9hcmQoJy5memxqJyk7DQogICAgICAgICAgICAgICAgY2xpcGJvYXJkLm9uKCdzdWNjZXNzJywgZnVuY3Rpb24oZSkgew0KCQkgICAgICAgICAgICBsYXllci5tc2coJ+mTvuaOpeWkjeWItuaIkOWKnycpOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIHZhciBzd2lwZXIgPSBuZXcgU3dpcGVyKCcjcm90YXRlLXN3aXBlcicsIHsNCiAgICAJICAgICAgICAgICAgcGFnaW5hdGlvbjogew0KICAgIAkJICAgICAgICAgICAgZWw6ICcjcm90YXRlLXBhZ2luYXRpb24nLA0KCQkJCQkJdHlwZTogJ2ZyYWN0aW9uJywNCiAgICAJICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICAgbmF2aWdhdGlvbjogew0KICAgICAgICAgICAgICAgICAgICAgICAgbmV4dEVsOiAnLnN3aXBlci1idXR0b24tbmV4dCcsDQogICAgICAgICAgICAgICAgICAgICAgICBwcmV2RWw6ICcuc3dpcGVyLWJ1dHRvbi1wcmV2JywNCiAgICAgICAgICAgICAgICAgICAgfSwNCiAgICAJICAgICAgICAgICAgcnVuQ2FsbGJhY2tzT25Jbml0OiB0cnVlLA0KICAgIAkgICAgICAgICAgICB3YXRjaFNsaWRlc1Byb2dyZXNzOiB0cnVlLA0KICAgIAkgICAgICAgICAgICBvbjogew0KICAgIAkJICAgICAgICAgICAgcHJvZ3Jlc3M6IGZ1bmN0aW9uKCkgew0KICAgIAkJCSAgICAgICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDwgdGhpcy5zbGlkZXMubGVuZ3RoOyBpKyspIHsNCiAgICAJCQkJICAgICAgICAgICAgaWYgKHRoaXMuc2xpZGVzW2ldLnByb2dyZXNzIDw9IDApIHsNCiAgICAJCQkJCSAgICAgICAgICAgIHRoaXMuc2xpZGVzLmVxKGkpLmZpbmQoIi5ibG9jayIpLnRyYW5zaXRpb24oMCkudHJhbnNmb3JtKCJyb3RhdGVaKCIgKyAxMyAqIE1hdGguYWJzKHRoaXMuc2xpZGVzW2ldLnByb2dyZXNzKSArICJkZWcpIHRyYW5zbGF0ZTNkKDAsIDAsIDApIikNCiAgICAJCQkJICAgICAgICAgICAgfQ0KICAgIAkJCSAgICAgICAgICAgIH0NCiAgICAJCSAgICAgICAgICAgIH0sDQogICAgCQkgICAgICAgICAgICBzZXRUcmFuc2l0aW9uOiBmdW5jdGlvbih0cmFuc2l0aW9uKSB7DQogICAgCQkJICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPCB0aGlzLnNsaWRlcy5sZW5ndGg7IGkrKykgew0KICAgIAkJCQkgICAgICAgICAgICBpZiAodGhpcy5zbGlkZXNbaV0ucHJvZ3Jlc3MgPD0gMCkgew0KICAgIAkJCQkJICAgICAgICAgICAgcm90ID0gMTMgKiBNYXRoLmFicyh0aGlzLnNsaWRlc1tpXS5wcm9ncmVzcyk7DQogICAgCQkJCQkgICAgICAgICAgICB0aGlzLnNsaWRlcy5lcShpKS5maW5kKCIuYmxvY2siKS50cmFuc2l0aW9uKHRyYW5zaXRpb24pLnRyYW5zZm9ybSgicm90YXRlWigiICsgcm90ICsgImRlZykgdHJhbnNsYXRlM2QoMCwgMCwgMCkiKQ0KICAgIAkJCQkgICAgICAgICAgICB9DQogICAgCQkJICAgICAgICAgICAgfQ0KICAgIAkJICAgICAgICAgICAgfSwNCg0KICAgIAkgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgIH0pOwkNCgkgICAgICAgIH0NCgkJCWlmKHNqc29uLnN0YXR1cz09MCl7DQoJCQkJJCgnI3Bvc3RlcicpLmh0bWwodHBsKCd0cGxfZW1wdHlzJyxzanNvbi5yZXN1bHQpKTsNCgkJCQl2YXIgY2xpcGJvYXJkID0gbmV3IENsaXBib2FyZCgnLmZ6bGonKTsNCiAgICAgICAgICAgICAgICBjbGlwYm9hcmQub24oJ3N1Y2Nlc3MnLCBmdW5jdGlvbihlKSB7DQoJCSAgICAgICAgICAgIGxheWVyLm1zZygn6ZO+5o6l5aSN5Yi25oiQ5YqfJyk7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgdmFyIHN3aXBlciA9IG5ldyBTd2lwZXIoJyNyb3RhdGUtc3dpcGVyJywgew0KICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0aW9uOiB7DQogICAgICAgICAgICAgICAgICAgICAgICBuZXh0RWw6ICcuc3dpcGVyLWJ1dHRvbi1uZXh0JywNCiAgICAgICAgICAgICAgICAgICAgICAgIHByZXZFbDogJy5zd2lwZXItYnV0dG9uLXByZXYnLA0KICAgICAgICAgICAgICAgICAgICB9LA0KICAgIAkgICAgICAgICAgICBydW5DYWxsYmFja3NPbkluaXQ6IHRydWUsDQogICAgCSAgICAgICAgICAgIHdhdGNoU2xpZGVzUHJvZ3Jlc3M6IHRydWUsDQogICAgCSAgICAgICAgICAgIG9uOiB7DQogICAgCQkgICAgICAgICAgICBwcm9ncmVzczogZnVuY3Rpb24oKSB7DQogICAgCQkJICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPCB0aGlzLnNsaWRlcy5sZW5ndGg7IGkrKykgew0KICAgIAkJCQkgICAgICAgICAgICBpZiAodGhpcy5zbGlkZXNbaV0ucHJvZ3Jlc3MgPD0gMCkgew0KICAgIAkJCQkJICAgICAgICAgICAgdGhpcy5zbGlkZXMuZXEoaSkuZmluZCgiLmJsb2NrIikudHJhbnNpdGlvbigwKS50cmFuc2Zvcm0oInJvdGF0ZVooIiArIDEzICogTWF0aC5hYnModGhpcy5zbGlkZXNbaV0ucHJvZ3Jlc3MpICsgImRlZykgdHJhbnNsYXRlM2QoMCwgMCwgMCkiKQ0KICAgIAkJCQkgICAgICAgICAgICB9DQogICAgCQkJICAgICAgICAgICAgfQ0KICAgIAkJICAgICAgICAgICAgfSwNCiAgICAJCSAgICAgICAgICAgIHNldFRyYW5zaXRpb246IGZ1bmN0aW9uKHRyYW5zaXRpb24pIHsNCiAgICAJCQkgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8IHRoaXMuc2xpZGVzLmxlbmd0aDsgaSsrKSB7DQogICAgCQkJCSAgICAgICAgICAgIGlmICh0aGlzLnNsaWRlc1tpXS5wcm9ncmVzcyA8PSAwKSB7DQogICAgCQkJCQkgICAgICAgICAgICByb3QgPSAxMyAqIE1hdGguYWJzKHRoaXMuc2xpZGVzW2ldLnByb2dyZXNzKTsNCiAgICAJCQkJCSAgICAgICAgICAgIHRoaXMuc2xpZGVzLmVxKGkpLmZpbmQoIi5ibG9jayIpLnRyYW5zaXRpb24odHJhbnNpdGlvbikudHJhbnNmb3JtKCJyb3RhdGVaKCIgKyByb3QgKyAiZGVnKSB0cmFuc2xhdGUzZCgwLCAwLCAwKSIpDQogICAgCQkJCSAgICAgICAgICAgIH0NCiAgICAJCQkgICAgICAgICAgICB9DQogICAgCQkgICAgICAgICAgICB9LA0KDQogICAgCSAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgfSk7CQ0KCSAgICAgICAgfQ0KCSAgICB9LHRydWUpOw0KCQkkKCIuc2hhcmVzIikuc2hvdygpOw0KCX0pOw0KCQ0KICAgICQoJy5tb2JpbGUtc2hhcmUtY2xvc2UnKS5jbGljayhmdW5jdGlvbiAoKSB7DQoJCSQoIi5zaGFyZXMiKS5oaWRlKCk7DQoJfSk7CQ0KPC9zY3JpcHQ+DQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+DQogICAgJCgiI25hbWVzIiwpLm9uKCdrZXlwcmVzcycsZnVuY3Rpb24oZSkgew0KICAgICAgICB2YXIga2V5Y29kZSA9IGUua2V5Q29kZTsNCiAgICAgICAgaWYoa2V5Y29kZT09JzEzJykgeyAgDQogICAgICAgICAgICAkKCcjc2VhcmNoJykuY2xpY2soKTsgICAgIA0KICAgICAgICB9DQogICAgfSk7DQogICAgJCgiI25hbWVzMSIpLm9uKCdrZXlwcmVzcycsZnVuY3Rpb24oZSkgew0KICAgICAgICB2YXIga2V5Y29kZSA9IGUua2V5Q29kZTsNCgkJdmFyIHNlYXJjaGtleSA9ICQudHJpbSgkKCIjbmFtZXMxIikudmFsKCkpOw0KICAgICAgICBpZihrZXljb2RlPT0nMTMnKSB7ICANCiAgICAgICAgICAgIGlmKHNlYXJjaGtleSA9PSAnJyl7CQ0KCQkJICAgIGxheWVyLm1zZygn6K+36L6T5YWl5pCc57Si5YWz6ZSu6K+NJyk7DQoJCSAgICB9ZWxzZXsNCiAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9ICI/dHlwZT1zZWFyY2gma2V5d29yZD0iK3NlYXJjaGtleTsNCgkJICAgIH0gICAgIA0KICAgICAgICB9DQogICAgfSk7CQ0KCSQoIiNzZWFyY2giKS5jbGljayhmdW5jdGlvbigpewkJDQoJCXZhciBzZWFyY2hrZXkgPSAkLnRyaW0oJCgiI25hbWVzIikudmFsKCkpOw0KCQlpZihzZWFyY2hrZXkgPT0gJycpewkNCgkJCWxheWVyLm1zZygn6K+36L6T5YWl5pCc57Si5YWz6ZSu6K+NJyk7DQoJCX1lbHNlew0KICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSAiP3R5cGU9c2VhcmNoJmtleXdvcmQ9IitzZWFyY2hrZXk7DQoJCX0NCgl9KTsNCgkNCgkkKCIubmF2LXNlYXJjaCIpLmNsaWNrKGZ1bmN0aW9uKCl7DQoJCSQoIi5zZWFyY2gtd3JhcCIpLmFkZENsYXNzKCdzaG93Jyk7DQoJfSk7CQ0KCSQoIi5zZWFyY2gtZm9ybSBpIikuY2xpY2soZnVuY3Rpb24oKXsNCgkJJCgiLnNlYXJjaC13cmFwIikucmVtb3ZlQ2xhc3MoJ3Nob3cnKTsNCgl9KTsNCg0KCSQod2luZG93KS5zY3JvbGwoZnVuY3Rpb24oKSB7DQoJCWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3AgKyBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcCA+IDE1MCA/IGpRdWVyeSgnLnRvdG9wLWxpJykuc2hvdygpIDogalF1ZXJ5KCcudG90b3AtbGknKS5oaWRlKCk7DQoJfSk7DQoJJCgiLnRvdG9wIikuY2xpY2soZnVuY3Rpb24oKXsNCgkJd2luZG93LnNjcm9sbFRvKDAsMCk7DQoJfSk7DQoNCgl2YXIgcXJjb2RleCA9IG5ldyBRUkNvZGUoJ2JpbGxJbWFnZXgnLCB7d2lkdGg6IDExMCxoZWlnaHQ6IDExMCxjb2xvckRhcms6ICcjMDAwMDAwJyxjb2xvckxpZ2h0OiAnI2ZmZmZmZicsY29ycmVjdExldmVsOiBRUkNvZGUuQ29ycmVjdExldmVsLkh9KTsNCnFyY29kZXgubWFrZUNvZGUoIjxmaC1mdW5jdGlvbj4kYXBpPSRhcGkuZ2V0aHR0cCgpLiRfU0VSVkVSWydTRVJWRVJfTkFNRSddLic6Jy4kX1NFUlZFUlsnU0VSVkVSX1BPUlQnXS4kX1NFUlZFUlsnUkVRVUVTVF9VUkknXTs8L2ZoLWZ1bmN0aW9uPiIpOw0KDQo8L3NjcmlwdD4NCjxzY3JpcHQ+DQoJdmFyIHFyY29kZXkgPSBuZXcgUVJDb2RlKCd3ZWl4aW4tcXJjb2RlJywge3dpZHRoOiA4MCxoZWlnaHQ6IDgwLGNvbG9yRGFyazogJyMwMDAwMDAnLGNvbG9yTGlnaHQ6ICcjZmZmZmZmJyxjb3JyZWN0TGV2ZWw6IFFSQ29kZS5Db3JyZWN0TGV2ZWwuSH0pOw0KcXJjb2RleS5tYWtlQ29kZSgiPGZoLWZ1bmN0aW9uPiRhcGk9JGFwaS5nZXRodHRwKCkuJF9TRVJWRVJbJ1NFUlZFUl9OQU1FJ10uJzonLiRfU0VSVkVSWydTRVJWRVJfUE9SVCddLiRfU0VSVkVSWydSRVFVRVNUX1VSSSddOzwvZmgtZnVuY3Rpb24+Iik7DQo8L3NjcmlwdD4NCjxhIGhyZWY9J2h0dHA6Ly9mYWh1bzEwMC5jbicgdGFyZ2V0PSdfYmxhbmsnICB0aXRsZT0n5Y+R6LSnMTAwJz48ZGl2IHN0eWxlPSJwb3NpdGlvbjogZml4ZWQ7ei1pbmRleDo5OTk5OTtib3R0b206IDEwcHg7bGVmdDogY2FsYyg1MCUgLSAxMDBweCk7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LDAuNyk7dGV4dC1hbGlnbjogY2VudGVyO3dpZHRoOiAyMDBweDtoZWlnaHQ6IDMwcHg7bGluZS1oZWlnaHQ6IDMwcHg7Ym9yZGVyLXJhZGl1czogMzBweDtmb250LXNpemU6IDE4cHg7Y29sb3I6ICMzMzMzMzMiPjxpbWcgc3JjPSJodHRwOi8vZmFodW8xMDAuY24vbWVkaWEvMjAyMDEwMDkxMzQxMjBsVS5pY28iIHN0eWxlPSJoZWlnaHQ6IDIwcHg7d2lkdGg6IDIwcHg7bWFyZ2luLXJpZ2h0OiA1cHg7dmVydGljYWwtYWxpZ246IG1pZGRsZTtkaXNwbGF5OmlubGluZSI+5Y+R6LSnMTAwPC9kaXY+PC9hPjwvYm9keT48L2h0bWw+