@co0ontty/wand 2.3.1 → 2.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3,9 +3,9 @@ import { Buffer } from "node:buffer";
3
3
  function decode(value) {
4
4
  return Buffer.from(value, "base64").toString("utf8");
5
5
  }
6
- export const EMBEDDED_WEB_ASSET_VERSION = "09f48445b97a";
6
+ export const EMBEDDED_WEB_ASSET_VERSION = "4be473618869";
7
7
  export const EMBEDDED_WEB_ASSETS = {
8
- scriptsJs: decode("InVzZSBzdHJpY3QiOygoKT0+e3ZhciBDdT0id2FuZC1sZWdhY3ktcHdhLWNsZWFudXAtdjEiLFVsPVsid2FuZC1zdGF0aWMtIiwid2FuZC1ydW50aW1lLSJdO2Z1bmN0aW9uIFVyKGUpe2lmKCFlKXJldHVybiExO3RyeXtjb25zdCB0PW5ldyBVUkwoZS5zY3JpcHRVUkwsbG9jYXRpb24uaHJlZik7cmV0dXJuIHQub3JpZ2luPT09bG9jYXRpb24ub3JpZ2luJiZ0LnBhdGhuYW1lPT09Ii9zdy5qcyJ9Y2F0Y2h7cmV0dXJuITF9fWZ1bmN0aW9uIFZsKGUpe3JldHVybiBVcihlLmluc3RhbGxpbmcpfHxVcihlLndhaXRpbmcpfHxVcihlLmFjdGl2ZSl9ZnVuY3Rpb24gS2woKXt0cnl7cmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKEN1KT09PSJkb25lIn1jYXRjaHtyZXR1cm4hMX19ZnVuY3Rpb24gSmwoKXt0cnl7bG9jYWxTdG9yYWdlLnNldEl0ZW0oQ3UsImRvbmUiKX1jYXRjaHt9fWFzeW5jIGZ1bmN0aW9uIEdsKCl7aWYoISgic2VydmljZVdvcmtlciJpbiBuYXZpZ2F0b3IpKXJldHVybiEwO3RyeXtjb25zdCB0PShhd2FpdCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5nZXRSZWdpc3RyYXRpb25zKCkpLmZpbHRlcihWbCk7cmV0dXJuIGF3YWl0IFByb21pc2UuYWxsKHQubWFwKG49Pm4udW5yZWdpc3RlcigpKSksITB9Y2F0Y2h7cmV0dXJuITF9fWFzeW5jIGZ1bmN0aW9uIFlsKCl7aWYoISgiY2FjaGVzImluIHdpbmRvdykpcmV0dXJuITA7dHJ5e2NvbnN0IHQ9KGF3YWl0IGNhY2hlcy5rZXlzKCkpLmZpbHRlcihuPT5VbC5zb21lKGk9Pm4uc3RhcnRzV2l0aChpKSkpO3JldHVybiBhd2FpdCBQcm9taXNlLmFsbCh0Lm1hcChuPT5jYWNoZXMuZGVsZXRlKG4pKSksITB9Y2F0Y2h7cmV0dXJuITF9fWFzeW5jIGZ1bmN0aW9uIFFsKCl7aWYoS2woKSlyZXR1cm47Y29uc3QgZT0ic2VydmljZVdvcmtlciJpbiBuYXZpZ2F0b3ImJlVyKG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmNvbnRyb2xsZXIpLFt0LG5dPWF3YWl0IFByb21pc2UuYWxsKFtHbCgpLFlsKCldKTshdHx8IW58fChKbCgpLGUmJmxvY2F0aW9uLnJlbG9hZCgpKX1RbCgpO3ZhciBFZz0iJHtlc2NhcGVIdG1sKGNvbmZpZ1BhdGgpfSIsemk9IndhbmQtY2hhdC1leHBhbmQtc3RhdGUtdjEiLFZyPVtmdW5jdGlvbigpe31dOyhmdW5jdGlvbigpe3RyeXt2YXIgdD1sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgid2FuZC1scy1zY2hlbWEiKSxuPXQ9PW51bGw/MDpwYXJzZUludCh0LDEwKTtuPj0wfHwobj0wKTtmb3IodmFyIGk9bjtpPFZyLmxlbmd0aDtpKyspdHJ5e1ZyW2ldKCl9Y2F0Y2h7fW48VnIubGVuZ3RoJiZsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgid2FuZC1scy1zY2hlbWEiLFN0cmluZyhWci5sZW5ndGgpKX1jYXRjaHt9fSkoKTtmdW5jdGlvbiBVaShlLHQpe3RyeXt2YXIgbj1sb2NhbFN0b3JhZ2UuZ2V0SXRlbShlKTtyZXR1cm4gbj09PSJ0cnVlIj8hMDpuPT09ImZhbHNlIj8hMTp0fWNhdGNoe3JldHVybiB0fX1mdW5jdGlvbiB4ZShlLHQpe3RyeXtsb2NhbFN0b3JhZ2Uuc2V0SXRlbShlLFN0cmluZyghIXQpKX1jYXRjaHt9fXZhciByPXtzZWxlY3RlZElkOihmdW5jdGlvbigpe3RyeXt2YXIgZT1uZXcgVVJMKHdpbmRvdy5sb2NhdGlvbi5ocmVmKSx0PWUuc2VhcmNoUGFyYW1zLmdldCgic2Vzc2lvbiIpO2lmKHQpcmV0dXJuIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCJ3YW5kLXNlbGVjdGVkLXNlc3Npb24iLHQpLGUuc2VhcmNoUGFyYW1zLmRlbGV0ZSgic2Vzc2lvbiIpLGhpc3RvcnkucmVwbGFjZVN0YXRlKGhpc3Rvcnkuc3RhdGUsIiIsZS50b1N0cmluZygpKSx0fWNhdGNoe310cnl7cmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKCJ3YW5kLXNlbGVjdGVkLXNlc3Npb24iKXx8bnVsbH1jYXRjaHtyZXR1cm4gbnVsbH19KSgpLHBvbGxUaW1lcjpudWxsLGNvbmZpZzpudWxsLHNlc3Npb25zOltdLHN1Z2dlc3Rpb25UaW1lcjpudWxsLHRlcm1pbmFsOm51bGwsdGVybWluYWxGaXRJblByb2dyZXNzOiExLHRlcm1pbmFsU2Vzc2lvbklkOm51bGwsdGVybWluYWxPdXRwdXQ6IiIsdGVybWluYWxPdXRwdXRNYXJrZXI6MCx0ZXJtaW5hbExpdmVTdHJlYW1TZXNzaW9uczp7fSxzeW5jT3V0cHV0QnVmZmVyOm51bGwsc3luY091dHB1dERlYWRsaW5lOjAsc3luY0ZyYW1pbmdSZXNpZHVlOiExLGxhc3RDaHVua0F0OjAsdGVybWluYWxIZWFsdGhUaW1lcjpudWxsLGxhc3RUZXJtaW5hbFJlc3luY0F0OjAsdGVybWluYWxBdXRvRm9sbG93OiEwLHRlcm1pbmFsUHJvZ3JhbW1hdGljU2Nyb2xsVW50aWw6MCx0ZXJtaW5hbFNjcm9sbElkbGVUaW1lcjpudWxsLHRlcm1pbmFsU2Nyb2xsVGhyZXNob2xkOjEyLHNob3dUZXJtaW5hbEp1bXBUb0JvdHRvbTohMSx0ZXJtaW5hbFZpZXdwb3J0RWw6bnVsbCx0ZXJtaW5hbFZpZXdwb3J0U2Nyb2xsSGFuZGxlcjpudWxsLHRlcm1pbmFsVmlld3BvcnRUb3VjaEhhbmRsZXI6bnVsbCx0ZXJtaW5hbFZpZXdwb3J0VG91Y2hTdGFydEhhbmRsZXI6bnVsbCx0ZXJtaW5hbFRvdWNoU3RhcnRZOjAsdGVybWluYWxDb21wb3Npbmc6ITEscmVzaXplT2JzZXJ2ZXI6bnVsbCxyZXNpemVIYW5kbGVyOm51bGwscmVzaXplVGltZXI6bnVsbCxpbnB1dFF1ZXVlOlByb21pc2UucmVzb2x2ZSgpLHBlbmRpbmdNZXNzYWdlczpbXSxtZXNzYWdlUXVldWU6W10sY3Jvc3NTZXNzaW9uUXVldWU6KGZ1bmN0aW9uKCl7dHJ5e3ZhciBlPWxvY2FsU3RvcmFnZS5nZXRJdGVtKCJ3YW5kLWNyb3NzLXNlc3Npb24tcXVldWUiKSx0PWU/SlNPTi5wYXJzZShlKTpbXTtyZXR1cm4gQXJyYXkuaXNBcnJheSh0KT90OltdfWNhdGNoe3JldHVybltdfX0pKCksc3RydWN0dXJlZElucHV0UXVldWU6W10scXVldWVCYXJFeHBhbmRlZDohMSxxdWV1ZUJhckhvdmVySW5kZXg6bnVsbCxxdWV1ZUJhckRyYWc6bnVsbCxxdWV1ZUJhclByb21vdGluZzohMSxkcmFmdHM6e30saXNTeW5jaW5nSW5wdXRCb3g6ITEsbG9naW5QZW5kaW5nOiExLGxvZ2luQ2hlY2tlZDohMSxib290c3RyYXBwaW5nOiEwLHNlc3Npb25zRHJhd2VyT3BlbjpVaSgid2FuZC1zaWRlYmFyLW9wZW4iLCExKSxzaWRlYmFyUGlubmVkOlVpKCJ3YW5kLXNpZGViYXItcGlubmVkIiwhMCksc2lkZWJhckNvbGxhcHNlZDpVaSgid2FuZC1zaWRlYmFyLWNvbGxhcHNlZCIsITEpLG1vZGFsT3BlbjohMSxwcmVzZXRWYWx1ZToiIixjd2RWYWx1ZToiIixtb2RlVmFsdWU6Im1hbmFnZWQiLGNoYXRNb2RlOiJtYW5hZ2VkIixjaGF0TW9kZWw6KGZ1bmN0aW9uKCl7dHJ5e3JldHVybiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgid2FuZC1jaGF0LW1vZGVsIil8fCIifWNhdGNoe3JldHVybiIifX0pKCksY2hhdFRoaW5raW5nOihmdW5jdGlvbigpe3RyeXt2YXIgZT1sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgid2FuZC10aGlua2luZy1lZmZvcnQiKXx8Im9mZiI7cmV0dXJuIGU9PT0ib2ZmInx8ZT09PSJzdGFuZGFyZCJ8fGU9PT0iZGVlcCJ8fGU9PT0ibWF4Ij9lOiJvZmYifWNhdGNoe3JldHVybiJvZmYifX0pKCksYXZhaWxhYmxlTW9kZWxzOltdLGF2YWlsYWJsZUNvZGV4TW9kZWxzOltdLG1vZGVsc1JlZnJlc2hpbmc6ITEsc2Vzc2lvbkNyZWF0ZUtpbmQ6InN0cnVjdHVyZWQiLHNlc3Npb25DcmVhdGVXb3JrdHJlZTohMSxzZXNzaW9uVG9vbDoiY2xhdWRlIixhY3RpdmVXb3JrdHJlZU1lcmdlU2Vzc2lvbklkOm51bGwsd29ya3RyZWVNZXJnZUNoZWNrUmVzdWx0Om51bGwsd29ya3RyZWVNZXJnZUxvYWRpbmc6ITEsd29ya3RyZWVNZXJnZVN1Ym1pdHRpbmc6ITEsd29ya3RyZWVNZXJnZUVycm9yOiIiLHByZWZlcnJlZENvbW1hbmQ6ImNsYXVkZSIsc3RydWN0dXJlZFJ1bm5lcjoiY2xhdWRlLWNsaS1wcmludCIsbGFzdFJlc2l6ZTp7Y29sczowLHJvd3M6MH0saXNPbmxpbmU6bmF2aWdhdG9yLm9uTGluZSx3czpudWxsLHdzQ29ubmVjdGVkOiExLGxhc3RXc01lc3NhZ2VBdDowLHdzSGVhcnRiZWF0Q2hlY2tUaW1lcjpudWxsLF91cGRhdGVCdWJibGVTaG93bjohMSxub3RpZmljYXRpb25IaXN0b3J5Ont9LGRlbGF5ZWROb3RpZmljYXRpb25UaW1lcjpudWxsLG5vdGlmU291bmQ6KGZ1bmN0aW9uKCl7dHJ5e3ZhciBlPWxvY2FsU3RvcmFnZS5nZXRJdGVtKCJ3YW5kLW5vdGlmLXNvdW5kIik7cmV0dXJuIGU9PT1udWxsPyEwOmU9PT0idHJ1ZSJ9Y2F0Y2h7cmV0dXJuITB9fSkoKSxub3RpZlZvbHVtZTooZnVuY3Rpb24oKXt0cnl7dmFyIGU9bG9jYWxTdG9yYWdlLmdldEl0ZW0oIndhbmQtbm90aWYtdm9sdW1lIik7cmV0dXJuIGU9PT1udWxsPzgwOk1hdGgubWF4KDAsTWF0aC5taW4oMTAwLHBhcnNlSW50KGUsMTApfHw4MCkpfWNhdGNoe3JldHVybiA4MH19KSgpLG5vdGlmQnViYmxlOihmdW5jdGlvbigpe3RyeXt2YXIgZT1sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgid2FuZC1ub3RpZi1idWJibGUiKTtyZXR1cm4gZT09PW51bGw/ITA6ZT09PSJ0cnVlIn1jYXRjaHtyZXR1cm4hMH19KSgpLHRvb2xDb250ZW50Q2FjaGU6e30sbGFzdFNlcUJ5U2Vzc2lvbjp7fSxjdXJyZW50VmlldzoidGVybWluYWwiLHRlcm1pbmFsU2NhbGU6KGZ1bmN0aW9uKCl7dHJ5e3ZhciBlPWxvY2FsU3RvcmFnZS5nZXRJdGVtKCJ3YW5kLXRlcm1pbmFsLXNjYWxlIik7cmV0dXJuIGU/cGFyc2VGbG9hdChlKToxfWNhdGNoe3JldHVybiAxfX0pKCksdGVybWluYWxCYXNlRm9udFNpemU6MTMsa2V5Ym9hcmRQb3B1cE9wZW46ITEsZmlsZVBhbmVsT3BlbjooZnVuY3Rpb24oKXt0cnl7cmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKCJ3YW5kLWZpbGUtcGFuZWwtb3BlbiIpPT09InRydWUifWNhdGNoe3JldHVybiExfX0pKCksdG9wYmFyTW9yZU9wZW46ITEsZ2l0U3RhdHVzOm51bGwsZ2l0U3RhdHVzU2Vzc2lvbklkOm51bGwsZ2l0U3RhdHVzTG9hZGluZzohMSxnaXRTdGF0dXNJbmZsaWdodDpudWxsLGdpdFN0YXR1c0xhc3RGZXRjaEF0OjAscXVpY2tDb21taXRPcGVuOiExLHF1aWNrQ29tbWl0U3VibWl0dGluZzohMSxxdWlja0NvbW1pdEdlbmVyYXRpbmc6ITEscXVpY2tDb21taXRFcnJvcjoiIixxdWlja0NvbW1pdEZvcm06e2N1c3RvbU1lc3NhZ2U6IiIsdGFnOiIiLHRhZ0VkaXRlZDohMX0scXVpY2tDb21taXRQdXNoaW5nOiExLHF1aWNrQ29tbWl0UHVzaEVycm9yOiIiLHF1aWNrQ29tbWl0UmVzdWx0Om51bGwscXVpY2tDb21taXREcmFnQWN0aW9uOiJjb21taXQiLHF1aWNrQ29tbWl0U3VibW9kdWxlSW50ZW50OiExLGNoYXRTdGlja1RvQm90dG9tOiEwLGNoYXRBdXRvRm9sZEVuYWJsZWQ6ITEsY2hhdEF1dG9Gb2xkU25hcHNob3Q6bnVsbCxjaGF0VW5yZWFkQ291bnQ6MCxjaGF0VW5yZWFkU3RhcnRJbmRleDotMSxjaGF0U2Nyb2xsVGhyZXNob2xkOjE2MCxjaGF0SXNQcm9ncmFtbWF0aWNTY3JvbGw6ITEsY2hhdFByb2dyYW1tYXRpY1Njcm9sbFVudGlsOjAsY2hhdFNjcm9sbEVsZW1lbnQ6bnVsbCxjaGF0U2Nyb2xsSGFuZGxlcjpudWxsLGNoYXRTY3JvbGxXaGVlbEhhbmRsZXI6bnVsbCxjaGF0U2Nyb2xsVG91Y2hTdGFydEhhbmRsZXI6bnVsbCxjaGF0U2Nyb2xsVG91Y2hNb3ZlSGFuZGxlcjpudWxsLGNoYXRUb3VjaFN0YXJ0WTowLGNoYXRJbml0aWFsUmVuZGVyRG9uZTohMSxsYXN0Rm9yZWdyb3VuZFN5bmNBdDowLGZvcmVncm91bmRTeW5jVGltZXI6bnVsbCx3c1JlY29ubmVjdEF0dGVtcHRzOjAsd3NSZWNvbm5lY3RUaW1lcjpudWxsLGN1cnJlbnRNZXNzYWdlczpbXSxsYXN0UmVuZGVyZWRIYXNoOjAsbGFzdFJlbmRlcmVkTXNnQ291bnQ6MCxsYXN0UmVuZGVyZWRFbXB0eTpudWxsLHJlbmRlclBlbmRpbmc6ITEsY2hhdFBhZ2VTaXplOjIwLGNoYXRSZW5kZXJlZENvdW50OjIwLGN1cnJlbnRUYXNrOm51bGwsdGVybWluYWxJbnRlcmFjdGl2ZTohMSxtaW5pS2V5Ym9hcmRWaXNpYmxlOiExLG1vZGlmaWVyczp7Y3RybDohMSxhbHQ6ITEsc2hpZnQ6ITF9LGpveXN0aWNrUG9zOihmdW5jdGlvbigpe3RyeXt2YXIgZT1sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgid2FuZC1iYWxsLXBvcyIpO2lmKCFlKXJldHVybiBudWxsO3ZhciB0PUpTT04ucGFyc2UoZSk7cmV0dXJuIHQmJnR5cGVvZiB0PT0ib2JqZWN0Ij90Om51bGx9Y2F0Y2h7cmV0dXJuIG51bGx9fSkoKSxqb3lzdGlja1Bpbm5lZE9wZW46ITEsam95c3RpY2tSb290RWw6bnVsbCxqb3lzdGlja1BhbmVsRWw6bnVsbCxqb3lzdGlja0JhY2tkcm9wRWw6bnVsbCxqb3lzdGlja0JhbGxFbDpudWxsLGpveXN0aWNrUG9pbnRlcklkOm51bGwsam95c3RpY2tHZXN0dXJlOm51bGwsam95c3RpY2tQcmVzc1N0YXJ0Om51bGwsam95c3RpY2tMb25nUHJlc3NUaW1lcjpudWxsLGpveXN0aWNrTW92ZUhhbmRsZXI6bnVsbCxqb3lzdGlja1VwSGFuZGxlcjpudWxsLGpveXN0aWNrUmVzaXplSGFuZGxlcjpudWxsLGZpbGVTZWFyY2hRdWVyeToiIixmaWxlRXhwbG9yZXJMb2FkaW5nOiExLGFsbEZpbGVzOltdLGZpbGVFeHBsb3JlckN3ZDoiIixmaWxlRXhwbG9yZXJUcnVuY2F0ZWQ6ITEsZmlsZUV4cGxvcmVyVG90YWw6MCxjbGF1ZGVIaXN0b3J5OltdLGNsYXVkZUhpc3RvcnlMb2FkZWQ6ITEsY2xhdWRlSGlzdG9yeUV4cGFuZGVkOiExLGNsYXVkZUhpc3RvcnlFeHBhbmRlZERpcnM6e30sYXJjaGl2ZWRFeHBhbmRlZDohMSxzZXNzaW9uc01hbmFnZU1vZGU6ITEsc2VsZWN0ZWRTZXNzaW9uSWRzOnt9LHNlbGVjdGVkQ2xhdWRlSGlzdG9yeUlkczp7fSxjb2RleEhpc3Rvcnk6W10sY29kZXhIaXN0b3J5TG9hZGVkOiExLGNvZGV4SGlzdG9yeUV4cGFuZGVkRGlyczp7fSxzZWxlY3RlZENvZGV4SGlzdG9yeUlkczp7fSxhc2tVc2VyU2VsZWN0aW9uczp7fSxxdWV1ZUVwb2NoOjAscGVuZGluZ0F0dGFjaG1lbnRzOltdLHdvcmtpbmdEaXI6KGZ1bmN0aW9uKCl7dHJ5e3ZhciBlPWxvY2FsU3RvcmFnZS5nZXRJdGVtKCJ3YW5kLXdvcmtpbmctZGlyIik7cmV0dXJuIGV8fCIifWNhdGNoe3JldHVybiIifX0pKCl9LFZpPSJcdTRFMkRcdTY1ODciLEtyPXtcdTRFMkRcdTY1ODc6eyJzdWJhZ2VudC50YWciOiJcdTVCNTBcdTRFRTNcdTc0MDYiLCJzdWJhZ2VudC5oYW5kb2ZmIjoie3BhcmVudH0gXHU4QkE5IHtzdWJ9IFx1NUUyRVx1NUZEOSIsInN1YmFnZW50LmhhbmRvZmYud2l0aF9kZXNjIjoie3BhcmVudH0gXHU4QkE5IHtzdWJ9IFx1NUUyRVx1NUZEOVx1RkYxQSIsInN1YmFnZW50LmNvbnRpbnVlZCI6Ilx1N0VFN1x1N0VFRFx1OEY5M1x1NTFGQSIsInN1YmFnZW50LnRhc2suZG9uZSI6Ilx1NEVGQlx1NTJBMVx1NUI4Q1x1NjIxMCIsInN1YmFnZW50LnRhc2suZmFpbGVkIjoiXHU0RUZCXHU1MkExXHU1OTMxXHU4RDI1Iiwic3ViYWdlbnQucnVubmluZyI6Ilx1OEZEMFx1ODg0Q1x1NEUyRCIsInN1YmFnZW50Lm5vX291dHB1dCI6Ilx1RkYwOFx1NjVFMFx1OEY5M1x1NTFGQVx1RkYwOSIsInN1YmFnZW50LmhlbHBlcl9mYWxsYmFja19wcmVmaXgiOiJcdTUzNEZcdTRGNUNcdTczMkJceEI3Iiwic3ViYWdlbnQudGl0bGVfYXJpYSI6Ilx1NzBCOVx1NTFGQlx1NUM1NVx1NUYwMCAvIFx1NjUzNlx1OEQ3N1x1NUI1MFx1NEVFM1x1NzQwNlx1OEY5M1x1NTFGQSIsInN1YmFnZW50LnRhZ190aXRsZSI6Ilx1NUI1MFx1NEVFM1x1NzQwNiAvIHN1YmFnZW50IiwidWkuZXhwYW5kIjoiXHU1QzU1XHU1RjAwIiwidWkuY29sbGFwc2UiOiJcdTY1MzZcdThENzciLCJ1aS5leHBhbmRfcGFuZWxfYXJpYSI6Ilx1NUM1NVx1NUYwMFx1NUI1MFx1NEVFM1x1NzQwNlx1OEY5M1x1NTFGQSIsInVpLmNvbGxhcHNlX3BhbmVsX2FyaWEiOiJcdTY1MzZcdThENzdcdTVCNTBcdTRFRTNcdTc0MDZcdThGOTNcdTUxRkEiLCJoaXN0b3J5LmV4cGFuZCI6Ilx1NUM1NVx1NUYwMFx1NTM4Nlx1NTNGMlx1NUJGOVx1OEJERCIsImhpc3RvcnkuY29sbGFwc2UiOiJcdTY1MzZcdThENzdcdTUzODZcdTUzRjJcdTVCRjlcdThCREQiLCJoaXN0b3J5LnJvdW5kcyI6IntufSBcdThGNkVcdTVCRjlcdThCREQiLCJoaXN0b3J5LnRvb2xzIjoie259IFx1NkIyMVx1NURFNVx1NTE3N1x1OEMwM1x1NzUyOCIsImhpc3RvcnkuYWdlbnRzIjoie259IFx1NEUyQVx1NUI1MFx1NEVFM1x1NzQwNiIsImhpc3RvcnkuZXJyb3JzIjoie259IFx1NEUyQVx1NTkzMVx1OEQyNSIsInN0b3AuY29uZmlybS50aXRsZSI6Ilx1NTA1Q1x1NkI2Mlx1NEVGQlx1NTJBMSIsInN0b3AuY29uZmlybS5tZXNzYWdlIjoiXHU3ODZFXHU1QjlBXHU4OTgxXHU1MDVDXHU2QjYyXHU1RjUzXHU1MjREXHU2QjYzXHU1NzI4XHU4RkQwXHU4ODRDXHU3Njg0XHU0RUZCXHU1MkExXHU1NDE3XHVGRjFGIiwic3RvcC5jb25maXJtLm9rIjoiXHU1MDVDXHU2QjYyIiwic3RvcC5jb25maXJtLmNhbmNlbCI6Ilx1NTNENlx1NkQ4OCJ9LEVuZ2xpc2g6eyJzdWJhZ2VudC50YWciOiJTdWJhZ2VudCIsInN1YmFnZW50LmhhbmRvZmYiOiJ7cGFyZW50fSBhc2tlZCB7c3VifSBmb3IgaGVscCIsInN1YmFnZW50LmhhbmRvZmYud2l0aF9kZXNjIjoie3BhcmVudH0gYXNrZWQge3N1Yn0gZm9yIGhlbHAgd2l0aDogIiwic3ViYWdlbnQuY29udGludWVkIjoiY29udGludWVkIiwic3ViYWdlbnQudGFzay5kb25lIjoiVGFzayBjb21wbGV0ZSIsInN1YmFnZW50LnRhc2suZmFpbGVkIjoiVGFzayBmYWlsZWQiLCJzdWJhZ2VudC5ydW5uaW5nIjoiUnVubmluZyIsInN1YmFnZW50Lm5vX291dHB1dCI6IihubyBvdXRwdXQpIiwic3ViYWdlbnQuaGVscGVyX2ZhbGxiYWNrX3ByZWZpeCI6IkhlbHBlclx4QjciLCJzdWJhZ2VudC50aXRsZV9hcmlhIjoiQ2xpY2sgdG8gZXhwYW5kIC8gY29sbGFwc2Ugc3ViYWdlbnQgb3V0cHV0Iiwic3ViYWdlbnQudGFnX3RpdGxlIjoiU3ViYWdlbnQiLCJ1aS5leHBhbmQiOiJFeHBhbmQiLCJ1aS5jb2xsYXBzZSI6IkNvbGxhcHNlIiwidWkuZXhwYW5kX3BhbmVsX2FyaWEiOiJFeHBhbmQgc3ViYWdlbnQgb3V0cHV0IiwidWkuY29sbGFwc2VfcGFuZWxfYXJpYSI6IkNvbGxhcHNlIHN1YmFnZW50IG91dHB1dCIsImhpc3RvcnkuZXhwYW5kIjoiU2hvdyBlYXJsaWVyIGNvbnZlcnNhdGlvbiIsImhpc3RvcnkuY29sbGFwc2UiOiJIaWRlIGVhcmxpZXIgY29udmVyc2F0aW9uIiwiaGlzdG9yeS5yb3VuZHMiOiJ7bn0gcm91bmRzIiwiaGlzdG9yeS50b29scyI6IntufSB0b29sIGNhbGxzIiwiaGlzdG9yeS5hZ2VudHMiOiJ7bn0gc3ViYWdlbnRzIiwiaGlzdG9yeS5lcnJvcnMiOiJ7bn0gZmFpbGVkIiwic3RvcC5jb25maXJtLnRpdGxlIjoiU3RvcCB0YXNrIiwic3RvcC5jb25maXJtLm1lc3NhZ2UiOiJTdG9wIHRoZSB0YXNrIHRoYXQncyBjdXJyZW50bHkgcnVubmluZz8iLCJzdG9wLmNvbmZpcm0ub2siOiJTdG9wIiwic3RvcC5jb25maXJtLmNhbmNlbCI6IkNhbmNlbCJ9fTtmdW5jdGlvbiBCdSgpe3ZhciBlPXIuY29uZmlnJiZ0eXBlb2Ygci5jb25maWcubGFuZ3VhZ2U9PSJzdHJpbmciP3IuY29uZmlnLmxhbmd1YWdlLnRyaW0oKToiIjtpZighZSlyZXR1cm4gVmk7aWYoS3JbZV0pcmV0dXJuIGU7dmFyIHQ9ZS50b0xvd2VyQ2FzZSgpO3JldHVybiB0PT09ImVuZ2xpc2gifHx0PT09ImVuInx8dC5pbmRleE9mKCJlbmdsaXNoIik9PT0wfHx0LmluZGV4T2YoIlx1ODJGMSIpPT09MD8iRW5nbGlzaCI6dD09PSJcdTRFMkRcdTY1ODcifHx0PT09InpoInx8dC5pbmRleE9mKCJ6aCIpPT09MHx8dC5pbmRleE9mKCJcdTRFMkQiKT09PTB8fHQuaW5kZXhPZigiY2hpbmVzZSIpPT09MD8iXHU0RTJEXHU2NTg3IjoiRW5nbGlzaCJ9ZnVuY3Rpb24gY2UoZSx0KXt2YXIgbj1CdSgpLGk9S3Jbbl18fEtyW1ZpXSxhPWkmJmUgaW4gaT9pW2VdOm51bGw7aWYoYT09bnVsbCl7dmFyIHU9S3JbVmldO2E9dSYmZSBpbiB1P3VbZV06ZX1pZih0JiZ0eXBlb2YgYT09InN0cmluZyIpZm9yKHZhciBzIGluIHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQscykmJihhPWEuc3BsaXQoInsiK3MrIn0iKS5qb2luKHRbc10pKTtyZXR1cm4gYX12YXIgJGw9e3NoaWVsZDonPHBhdGggZD0iTTEyIDIyczgtNCA4LTEwVjVsLTgtMy04IDN2N2MwIDYgOCAxMCA4IDEweiIvPicsc2hpZWxkQ2hlY2s6JzxwYXRoIGQ9Ik0xMiAyMnM4LTQgOC0xMFY1bC04LTMtOCAzdjdjMCA2IDggMTAgOCAxMHoiLz48cG9seWxpbmUgcG9pbnRzPSI5IDEyIDExIDE0IDE1IDEwIi8+JyxjcHU6JzxyZWN0IHg9IjciIHk9IjciIHdpZHRoPSIxMCIgaGVpZ2h0PSIxMCIgcng9IjIiLz48cGF0aCBkPSJNOSAxdjMiLz48cGF0aCBkPSJNMTUgMXYzIi8+PHBhdGggZD0iTTkgMjB2MyIvPjxwYXRoIGQ9Ik0xNSAyMHYzIi8+PHBhdGggZD0iTTIwIDloMyIvPjxwYXRoIGQ9Ik0yMCAxNWgzIi8+PHBhdGggZD0iTTEgOWgzIi8+PHBhdGggZD0iTTEgMTVoMyIvPjxyZWN0IHg9IjEwIiB5PSIxMCIgd2lkdGg9IjQiIGhlaWdodD0iNCIgcng9IjEiLz4nLGJyYWluOic8cGF0aCBkPSJNOS41IDQuNWEzIDMgMCAwIDAtNC43IDMuMSAzLjMgMy4zIDAgMCAwIC4zIDYuMUEzIDMgMCAwIDAgOCAxOWgxLjVWNC41eiIvPjxwYXRoIGQ9Ik0xNC41IDQuNWEzIDMgMCAwIDEgNC43IDMuMSAzLjMgMy4zIDAgMCAxLS4zIDYuMUEzIDMgMCAwIDEgMTYgMTloLTEuNVY0LjV6Ii8+PHBhdGggZD0iTTkuNSA4SDcuOCIvPjxwYXRoIGQ9Ik0xNC41IDhoMS43Ii8+PHBhdGggZD0iTTkuNSAxM0g3LjYiLz48cGF0aCBkPSJNMTQuNSAxM2gxLjkiLz4nLGtleWJvYXJkOic8cmVjdCB4PSIyIiB5PSI2IiB3aWR0aD0iMjAiIGhlaWdodD0iMTIiIHJ4PSIyIi8+PGxpbmUgeDE9IjYiIHkxPSIxMCIgeDI9IjYiIHkyPSIxMCIvPjxsaW5lIHgxPSIxMCIgeTE9IjEwIiB4Mj0iMTAiIHkyPSIxMCIvPjxsaW5lIHgxPSIxNCIgeTE9IjEwIiB4Mj0iMTQiIHkyPSIxMCIvPjxsaW5lIHgxPSIxOCIgeTE9IjEwIiB4Mj0iMTgiIHkyPSIxMCIvPjxsaW5lIHgxPSI2IiB5MT0iMTQiIHgyPSI2IiB5Mj0iMTQiLz48bGluZSB4MT0iMTgiIHkxPSIxNCIgeDI9IjE4IiB5Mj0iMTQiLz48bGluZSB4MT0iOSIgeTE9IjE0IiB4Mj0iMTUiIHkyPSIxNCIvPicsdGVybWluYWw6Jzxwb2x5bGluZSBwb2ludHM9IjQgNyA5IDEyIDQgMTciLz48bGluZSB4MT0iMTIiIHkxPSIxNyIgeDI9IjIwIiB5Mj0iMTciLz4nLGNoYXQ6JzxwYXRoIGQ9Ik0yMSAxMmE4IDggMCAwIDEtMTIuOSA2LjNMMyAyMGwxLjctNS4xQTggOCAwIDEgMSAyMSAxMnoiLz4nLGZvbGRlcjonPHBhdGggZD0iTTMgN2EyIDIgMCAwIDEgMi0yaDRsMiAyaDhhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yeiIvPicsdHJhc2g6Jzxwb2x5bGluZSBwb2ludHM9IjMgNiA1IDYgMjEgNiIvPjxwYXRoIGQ9Ik0xOSA2bC0xIDEzYTIgMiAwIDAgMS0yIDJIOGEyIDIgMCAwIDEtMi0yTDUgNiIvPjxwYXRoIGQ9Ik0xMCAxMXY2Ii8+PHBhdGggZD0iTTE0IDExdjYiLz48cGF0aCBkPSJNOSA2VjRhMSAxIDAgMCAxIDEtMWg0YTEgMSAwIDAgMSAxIDF2MiIvPicsY2hldnJvbkRvd246Jzxwb2x5bGluZSBwb2ludHM9IjYgOSAxMiAxNSAxOCA5Ii8+JyxiZWxsOic8cGF0aCBkPSJNMTggMTZ2LTVhNiA2IDAgMSAwLTEyIDB2NWwtMiAyaDE2eiIvPjxwYXRoIGQ9Ik0xMCAyMWEyIDIgMCAwIDAgNCAwIi8+JyxtdXNpYzonPHBhdGggZD0iTTkgMThWNWwxMi0ydjEzIi8+PGNpcmNsZSBjeD0iNiIgY3k9IjE4IiByPSIzIi8+PGNpcmNsZSBjeD0iMTgiIGN5PSIxNiIgcj0iMyIvPicsdmlicmF0ZTonPHJlY3QgeD0iOSIgeT0iNCIgd2lkdGg9IjYiIGhlaWdodD0iMTYiIHJ4PSIxIi8+PHBhdGggZD0iTTUgOHY4Ii8+PHBhdGggZD0iTTMgMTB2NCIvPjxwYXRoIGQ9Ik0xOSA4djgiLz48cGF0aCBkPSJNMjEgMTB2NCIvPicsZ2xvYmU6JzxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjkiLz48bGluZSB4MT0iMyIgeTE9IjEyIiB4Mj0iMjEiIHkyPSIxMiIvPjxwYXRoIGQ9Ik0xMiAzYTE0IDE0IDAgMCAxIDAgMTgiLz48cGF0aCBkPSJNMTIgM2ExNCAxNCAwIDAgMCAwIDE4Ii8+JyxzbWFydHBob25lOic8cmVjdCB4PSI2IiB5PSIyIiB3aWR0aD0iMTIiIGhlaWdodD0iMjAiIHJ4PSIyLjUiLz48bGluZSB4MT0iMTEiIHkxPSIxOCIgeDI9IjEzIiB5Mj0iMTgiLz4nLGRlc2t0b3A6JzxyZWN0IHg9IjMiIHk9IjQiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxMiIgcng9IjIiLz48bGluZSB4MT0iOCIgeTE9IjIwIiB4Mj0iMTYiIHkyPSIyMCIvPjxsaW5lIHgxPSIxMiIgeTE9IjE2IiB4Mj0iMTIiIHkyPSIyMCIvPicsbGluazonPHBhdGggZD0iTTEwIDE0YTQuNSA0LjUgMCAwIDAgNi4zNiAwbDMtM2E0LjUgNC41IDAgMSAwLTYuMzYtNi4zNmwtMS40MiAxLjQxIi8+PHBhdGggZD0iTTE0IDEwYTQuNSA0LjUgMCAwIDAtNi4zNiAwbC0zIDNhNC41IDQuNSAwIDEgMCA2LjM2IDYuMzZsMS40Mi0xLjQxIi8+JyxwYWxldHRlOic8Y2lyY2xlIGN4PSIxMy41IiBjeT0iNi41IiByPSIxIi8+PGNpcmNsZSBjeD0iMTcuNSIgY3k9IjEwLjUiIHI9IjEiLz48Y2lyY2xlIGN4PSI4LjUiIGN5PSI3LjUiIHI9IjEiLz48Y2lyY2xlIGN4PSI2LjUiIGN5PSIxMi41IiByPSIxIi8+PHBhdGggZD0iTTEyIDNhOSA5IDAgMSAwIDAgMTggMS41IDEuNSAwIDAgMCAxLjEtMi41IDEuNSAxLjUgMCAwIDEgMS4xLTIuNWgyLjNBNC41IDQuNSAwIDAgMCAyMSAxMS41QzIxIDYuOCAxNi45NyAzIDEyIDN6Ii8+JyxwbGF5Oic8cG9seWdvbiBwb2ludHM9IjYgNCAyMCAxMiA2IDIwIDYgNCIvPicsd3JlbmNoOic8cGF0aCBkPSJNMTQuNyA2LjNhNCA0IDAgMSAxIDQgNGwtOSA5LTMuNSAxIDEtMy41IDcuNS03LjV6Ii8+JyxwYXc6JzxjaXJjbGUgY3g9IjcuNSIgY3k9IjkiIHI9IjIiIGZpbGw9ImN1cnJlbnRDb2xvciIgc3Ryb2tlPSJub25lIi8+PGNpcmNsZSBjeD0iMTIiIGN5PSI2LjgiIHI9IjIiIGZpbGw9ImN1cnJlbnRDb2xvciIgc3Ryb2tlPSJub25lIi8+PGNpcmNsZSBjeD0iMTYuNSIgY3k9IjkiIHI9IjIiIGZpbGw9ImN1cnJlbnRDb2xvciIgc3Ryb2tlPSJub25lIi8+PGNpcmNsZSBjeD0iMTgiIGN5PSIxMy4zIiByPSIxLjgiIGZpbGw9ImN1cnJlbnRDb2xvciIgc3Ryb2tlPSJub25lIi8+PHBhdGggZD0iTTcuMiAxNi4zYy41LTIuOSAyLjMtNC44IDQuOC00LjhzNC4zIDEuOSA0LjggNC44Yy4zIDEuOC0uOSAzLjItMi42IDIuNi0uOC0uMy0xLjQtLjYtMi4yLS42cy0xLjQuMy0yLjIuNmMtMS43LjYtMi45LS44LTIuNi0yLjZ6IiBmaWxsPSJjdXJyZW50Q29sb3IiIHN0cm9rZT0ibm9uZSIvPicsZWRpdDonPHBhdGggZD0iTTEyIDIwaDkiLz48cGF0aCBkPSJNMTYuNSAzLjVhMi4xMiAyLjEyIDAgMCAxIDMgM0w3IDE5bC00IDEgMS00eiIvPicsc2lnbmFsOic8cGF0aCBkPSJNMiAxMmExNSAxNSAwIDAgMSAyMCAwIi8+PHBhdGggZD0iTTUgMTZhMTAgMTAgMCAwIDEgMTQgMCIvPjxwYXRoIGQ9Ik05IDIwYTQgNCAwIDAgMSA2IDAiLz48Y2lyY2xlIGN4PSIxMiIgY3k9IjIwIiByPSIwLjUiIGZpbGw9ImN1cnJlbnRDb2xvciIvPicsZmlsZTonPHBhdGggZD0iTTE0IDNINmEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlY5eiIvPjxwb2x5bGluZSBwb2ludHM9IjE0IDMgMTQgOSAyMCA5Ii8+JyxzaWdtYTonPHBvbHlsaW5lIHBvaW50cz0iMTggNCA2IDQgMTMgMTIgNiAyMCAxOCAyMCIvPicseDonPHBhdGggZD0iTTE4IDYgNiAxOCIvPjxwYXRoIGQ9Ik02IDZsMTIgMTIiLz4nLHBsdXM6JzxsaW5lIHgxPSIxMiIgeTE9IjUiIHgyPSIxMiIgeTI9IjE5Ii8+PGxpbmUgeDE9IjUiIHkxPSIxMiIgeDI9IjE5IiB5Mj0iMTIiLz4nLG1pYzonPHJlY3QgeD0iOSIgeT0iMyIgd2lkdGg9IjYiIGhlaWdodD0iMTEiIHJ4PSIzIi8+PHBhdGggZD0iTTUgMTFhNyA3IDAgMCAwIDE0IDAiLz48bGluZSB4MT0iMTIiIHkxPSIxOCIgeDI9IjEyIiB5Mj0iMjEiLz48bGluZSB4MT0iOSIgeTE9IjIxIiB4Mj0iMTUiIHkyPSIyMSIvPicscGFwZXJjbGlwOic8cGF0aCBkPSJNMjEuNDQgMTEuMDUgMTIuMjUgMjAuMjRhNiA2IDAgMCAxLTguNDktOC40OWw4Ljg0LTguODRhNCA0IDAgMSAxIDUuNjYgNS42Nkw5LjQxIDE3LjQxYTIgMiAwIDEgMS0yLjgzLTIuODNsOC44NC04LjgzIi8+J307ZnVuY3Rpb24geihlLHQpe3ZhciBuPSRsW2VdO2lmKCFuKXJldHVybiIiO3Q9dHx8e307dmFyIGk9dC5zaXplfHwxNCxhPXQuc3Ryb2tlV2lkdGh8fDEuOCx1PXQuY2xzPycgY2xhc3M9IicrdC5jbHMrJyInOiIiLHM9dC5maWxsfHwibm9uZSI7cmV0dXJuIjxzdmciK3UrJyB3aWR0aD0iJytpKyciIGhlaWdodD0iJytpKyciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iJytzKyciIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IicrYSsnIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj4nK24rIjwvc3ZnPiJ9ZnVuY3Rpb24gdW4oKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2hhdC1vdXRwdXQiKTtpZighZSlyZXR1cm4gci5jaGF0U2Nyb2xsRWxlbWVudD1udWxsLG51bGw7dmFyIHQ9ZS5xdWVyeVNlbGVjdG9yKCIuY2hhdC1tZXNzYWdlcyIpO3JldHVybiB0PyhyLmNoYXRTY3JvbGxFbGVtZW50PXQsdCk6KHIuY2hhdFNjcm9sbEVsZW1lbnQ9bnVsbCxudWxsKX1mdW5jdGlvbiBLaShlKXt2YXIgdD1lfHx1bigpO3JldHVybiB0P01hdGguYWJzKHQuc2Nyb2xsVG9wKTxyLmNoYXRTY3JvbGxUaHJlc2hvbGQ6ITB9ZnVuY3Rpb24gRmcoZSl7ci5jaGF0U3RpY2tUb0JvdHRvbT0hIWUsci5jaGF0U3RpY2tUb0JvdHRvbSYmQ24oe3JlbW92ZURpdmlkZXI6ITB9KSxWZSgpfWZ1bmN0aW9uIENuKGUpe2U9ZXx8e307dmFyIHQ9ci5jaGF0VW5yZWFkQ291bnQ+MHx8ci5jaGF0VW5yZWFkU3RhcnRJbmRleD49MDtpZihyLmNoYXRVbnJlYWRDb3VudD0wLHIuY2hhdFVucmVhZFN0YXJ0SW5kZXg9LTEsZS5yZW1vdmVEaXZpZGVyIT09ITEpe3ZhciBuPXVuKCk7aWYobil7dmFyIGk9bi5xdWVyeVNlbGVjdG9yKCIuY2hhdC11bnJlYWQtZGl2aWRlciIpO2kmJmkucGFyZW50Tm9kZSYmaS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGkpfX10JiZWZSgpfWZ1bmN0aW9uIEppKGUpe2lmKGV8fChlPXVuKCkpLCEhZSl7dmFyIHQ9ZS5xdWVyeVNlbGVjdG9yKCIuY2hhdC11bnJlYWQtZGl2aWRlciIpO2lmKHIuY2hhdFVucmVhZFN0YXJ0SW5kZXg8MHx8ci5jaGF0VW5yZWFkQ291bnQ8PTApe3QmJnQucGFyZW50Tm9kZSYmdC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHQpO3JldHVybn1mb3IodmFyIG49ci5jaGF0VW5yZWFkU3RhcnRJbmRleCxpPWUucXVlcnlTZWxlY3RvckFsbCgiLmNoYXQtbWVzc2FnZSIpLGE9bnVsbCx1PTA7dTxpLmxlbmd0aDt1Kyspe3ZhciBzPWlbdV0uZ2V0QXR0cmlidXRlKCJkYXRhLW1zZy1pbmRleCIpO2lmKHMhPT1udWxsKXt2YXIgbz1wYXJzZUludChzLDEwKTtpZighaXNOYU4obykmJm88bil7YT1pW3VdO2JyZWFrfX19dmFyIGw9ci5jaGF0VW5yZWFkQ291bnQrIiBcdTY3NjFcdTY1QjBcdTZEODhcdTYwNkYiO3R8fCh0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHQuY2xhc3NOYW1lPSJjaGF0LXVucmVhZC1kaXZpZGVyIix0LnNldEF0dHJpYnV0ZSgicm9sZSIsInNlcGFyYXRvciIpLHQuaW5uZXJIVE1MPSc8c3BhbiBjbGFzcz0iY2hhdC11bnJlYWQtZGl2aWRlci1saW5lIj48L3NwYW4+PHNwYW4gY2xhc3M9ImNoYXQtdW5yZWFkLWRpdmlkZXItbGFiZWwiPjwvc3Bhbj48c3BhbiBjbGFzcz0iY2hhdC11bnJlYWQtZGl2aWRlci1saW5lIj48L3NwYW4+JyksdC5xdWVyeVNlbGVjdG9yKCIuY2hhdC11bnJlYWQtZGl2aWRlci1sYWJlbCIpLnRleHRDb250ZW50PWwsYT8odC5uZXh0U2libGluZyE9PWF8fHQucGFyZW50Tm9kZSE9PWUpJiZlLmluc2VydEJlZm9yZSh0LGEpOih0LnBhcmVudE5vZGUhPT1lfHx0Lm5leHRTaWJsaW5nIT09bnVsbCkmJmUuYXBwZW5kQ2hpbGQodCl9fWZ1bmN0aW9uIFZlKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoYXQtdW5yZWFkLWJ1YmJsZSIpO2lmKGUpe3ZhciB0PXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihvKXtyZXR1cm4gby5pZD09PXIuc2VsZWN0ZWRJZH0pLG49IUtpKCksaT0hIXQmJnIuY3VycmVudFZpZXc9PT0iY2hhdCImJm47ZS5jbGFzc0xpc3QudG9nZ2xlKCJ2aXNpYmxlIixpKSxlLmNsYXNzTGlzdC50b2dnbGUoImhhcy11bnJlYWQiLHIuY2hhdFVucmVhZENvdW50PjApO3ZhciBhPWUucXVlcnlTZWxlY3RvcigiLmNoYXQtdW5yZWFkLWJ1YmJsZS1jb3VudCIpO2EmJihyLmNoYXRVbnJlYWRDb3VudD4wPyhhLnRleHRDb250ZW50PXIuY2hhdFVucmVhZENvdW50Pjk5PyI5OSsiOlN0cmluZyhyLmNoYXRVbnJlYWRDb3VudCksYS5jbGFzc0xpc3QuYWRkKCJ2aXNpYmxlIikpOihhLnRleHRDb250ZW50PSIiLGEuY2xhc3NMaXN0LnJlbW92ZSgidmlzaWJsZSIpKSk7dmFyIHU9ci5jaGF0VW5yZWFkQ291bnQ+MD9yLmNoYXRVbnJlYWRDb3VudCsiIFx1Njc2MVx1NjVCMFx1NkQ4OFx1NjA2Rlx1RkYwQ1x1NzBCOVx1NTFGQlx1NjdFNVx1NzcwQiI6Ilx1NTZERVx1NTIzMFx1NjcwMFx1NjVCMFx1NkQ4OFx1NjA2RiI7ZS5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLHUpLGUuc2V0QXR0cmlidXRlKCJ0aXRsZSIsdSk7dmFyIHM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoYXQtb3V0cHV0Iik7cyYmcy5jbGFzc0xpc3QudG9nZ2xlKCJoYXMtanVtcC1idG4iLGkpfX1mdW5jdGlvbiBzcigpe0dpKCl9ZnVuY3Rpb24gR2koZSl7dmFyIHQ9ZXx8dW4oKTtpZih0KXt2YXIgbj10LnF1ZXJ5U2VsZWN0b3IoIi5jaGF0LXBpbi1zcGFjZXIiKTtuJiZuLnBhcmVudE5vZGUmJm4ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChuKX19ZnVuY3Rpb24gRHUoZSl7dmFyIHQ9dW4oKTtpZighKCF0fHwhdC5pc0Nvbm5lY3RlZCkpe3NyKCksR2kodCksci5jaGF0SXNQcm9ncmFtbWF0aWNTY3JvbGw9ITA7dmFyIG49ZnVuY3Rpb24oKXtyLmNoYXRJc1Byb2dyYW1tYXRpY1Njcm9sbD0hMSxyLmNoYXRTdGlja1RvQm90dG9tPSEwLENuKHtyZW1vdmVEaXZpZGVyOiEwfSksVmUoKX07aWYoZSYmdHlwZW9mIHQuc2Nyb2xsVG89PSJmdW5jdGlvbiIpe3Quc2Nyb2xsVG8oe3RvcDowLGJlaGF2aW9yOiJzbW9vdGgifSksc2V0VGltZW91dChuLDI2MCk7cmV0dXJufXQuc2Nyb2xsVG9wPTAscmVxdWVzdEFuaW1hdGlvbkZyYW1lKG4pfX1mdW5jdGlvbiBrdSgpe3ZhciBlPXVuKCk7c3IoKSxlJiZHaShlKSxyLmNoYXRTdGlja1RvQm90dG9tPSEwLENuKHtyZW1vdmVEaXZpZGVyOiEwfSksZSYmZS5pc0Nvbm5lY3RlZCYmKHIuY2hhdElzUHJvZ3JhbW1hdGljU2Nyb2xsPSEwLHIuY2hhdFByb2dyYW1tYXRpY1Njcm9sbFVudGlsPURhdGUubm93KCkrMTgwLGUuc2Nyb2xsVG9wPTAscmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7ci5jaGF0SXNQcm9ncmFtbWF0aWNTY3JvbGw9ITF9KSksVmUoKX1mdW5jdGlvbiBvcigpe3ZhciBlPXVuKCk7aWYoISghZXx8IWUuaXNDb25uZWN0ZWQpKXtpZihyLmNoYXRTY3JvbGxFbGVtZW50PT09ZSYmci5jaGF0U2Nyb2xsSGFuZGxlcil7VmUoKTtyZXR1cm59ci5jaGF0U2Nyb2xsRWxlbWVudCYmKHIuY2hhdFNjcm9sbEhhbmRsZXImJnIuY2hhdFNjcm9sbEVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIixyLmNoYXRTY3JvbGxIYW5kbGVyKSxyLmNoYXRTY3JvbGxXaGVlbEhhbmRsZXImJnIuY2hhdFNjcm9sbEVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigid2hlZWwiLHIuY2hhdFNjcm9sbFdoZWVsSGFuZGxlciksci5jaGF0U2Nyb2xsVG91Y2hTdGFydEhhbmRsZXImJnIuY2hhdFNjcm9sbEVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsci5jaGF0U2Nyb2xsVG91Y2hTdGFydEhhbmRsZXIpLHIuY2hhdFNjcm9sbFRvdWNoTW92ZUhhbmRsZXImJnIuY2hhdFNjcm9sbEVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIixyLmNoYXRTY3JvbGxUb3VjaE1vdmVIYW5kbGVyKSksci5jaGF0U2Nyb2xsRWxlbWVudD1lLHIuY2hhdFNjcm9sbEhhbmRsZXI9ZnVuY3Rpb24oKXtpZihlLmlzQ29ubmVjdGVkKXtpZihyLmNoYXRJc1Byb2dyYW1tYXRpY1Njcm9sbHx8RGF0ZS5ub3coKTxyLmNoYXRQcm9ncmFtbWF0aWNTY3JvbGxVbnRpbCl7VmUoKTtyZXR1cm59c3IoKTt2YXIgdD1LaShlKTt0PyhyLmNoYXRTdGlja1RvQm90dG9tPSEwLENuKHtyZW1vdmVEaXZpZGVyOiEwfSkpOnIuY2hhdFN0aWNrVG9Cb3R0b209ITEsVmUoKX19LHIuY2hhdFNjcm9sbFdoZWVsSGFuZGxlcj1mdW5jdGlvbih0KXtyLmNoYXRJc1Byb2dyYW1tYXRpY1Njcm9sbHx8dC5kZWx0YVk8MCYmKHNyKCksci5jaGF0U3RpY2tUb0JvdHRvbT0hMSxWZSgpKX0sci5jaGF0U2Nyb2xsVG91Y2hTdGFydEhhbmRsZXI9ZnVuY3Rpb24odCl7IXQudG91Y2hlc3x8dC50b3VjaGVzLmxlbmd0aD09PTB8fChyLmNoYXRUb3VjaFN0YXJ0WT10LnRvdWNoZXNbMF0uY2xpZW50WSl9LHIuY2hhdFNjcm9sbFRvdWNoTW92ZUhhbmRsZXI9ZnVuY3Rpb24odCl7aWYoIXIuY2hhdElzUHJvZ3JhbW1hdGljU2Nyb2xsJiYhKCF0LnRvdWNoZXN8fHQudG91Y2hlcy5sZW5ndGg9PT0wKSl7dmFyIG49dC50b3VjaGVzWzBdLmNsaWVudFktci5jaGF0VG91Y2hTdGFydFk7bj40JiYoc3IoKSxyLmNoYXRTdGlja1RvQm90dG9tPSExLFZlKCkpfX0sZS5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLHIuY2hhdFNjcm9sbEhhbmRsZXIse3Bhc3NpdmU6ITB9KSxlLmFkZEV2ZW50TGlzdGVuZXIoIndoZWVsIixyLmNoYXRTY3JvbGxXaGVlbEhhbmRsZXIse3Bhc3NpdmU6ITB9KSxlLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLHIuY2hhdFNjcm9sbFRvdWNoU3RhcnRIYW5kbGVyLHtwYXNzaXZlOiEwfSksZS5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLHIuY2hhdFNjcm9sbFRvdWNoTW92ZUhhbmRsZXIse3Bhc3NpdmU6ITB9KSxWZSgpfX1mdW5jdGlvbiBBdSgpe2lmKHIuY2hhdFJlbmRlcmVkQ291bnQ8ci5jdXJyZW50TWVzc2FnZXMubGVuZ3RoKXtyLmNoYXRSZW5kZXJlZENvdW50Kz1yLmNoYXRQYWdlU2l6ZSxLZSghMCk7cmV0dXJufXZhciBlPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbih0KXtyZXR1cm4gdC5pZD09PXIuc2VsZWN0ZWRJZH0pO2UmJnR5cGVvZiBlLm1lc3NhZ2VPZmZzZXQ9PSJudW1iZXIiJiZlLm1lc3NhZ2VPZmZzZXQ+MCYmbW0oKX12YXIgbHI9bnVsbDtmdW5jdGlvbiBYbCgpe2xyJiYobHIuZGlzY29ubmVjdCgpLGxyPW51bGwpO3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGF0LWxvYWQtbW9yZS1zZW50aW5lbCIpO2lmKGUpe3ZhciB0PWUucXVlcnlTZWxlY3RvcigiLmNoYXQtbG9hZC1tb3JlLWJ0biIpO3QmJih0Lm9uY2xpY2s9ZnVuY3Rpb24oKXtBdSgpfSk7dmFyIG49ISEod2luZG93Lm1hdGNoTWVkaWEmJndpbmRvdy5tYXRjaE1lZGlhKCIocG9pbnRlcjogY29hcnNlKSIpLm1hdGNoZXMpLGk9d2luZG93LmlubmVyV2lkdGg8PTc2ODtufHxpfHx3aW5kb3cuX193YW5kSW1lTmF0aXZlfHx3aW5kb3cuX193YW5kSW9zTmF0aXZlfHx0eXBlb2YgSW50ZXJzZWN0aW9uT2JzZXJ2ZXI+InUifHwobHI9bmV3IEludGVyc2VjdGlvbk9ic2VydmVyKGZ1bmN0aW9uKGEpe2Zvcih2YXIgdT0wO3U8YS5sZW5ndGg7dSsrKWlmKGFbdV0uaXNJbnRlcnNlY3Rpbmcpe0F1KCk7YnJlYWt9fSx7cm9vdDp1bigpLHJvb3RNYXJnaW46IjIwMHB4In0pLGxyLm9ic2VydmUoZSkpfX1mdW5jdGlvbiB3ZSgpe3RyeXtyLnNlbGVjdGVkSWQ/bG9jYWxTdG9yYWdlLnNldEl0ZW0oIndhbmQtc2VsZWN0ZWQtc2Vzc2lvbiIsci5zZWxlY3RlZElkKTpsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgid2FuZC1zZWxlY3RlZC1zZXNzaW9uIil9Y2F0Y2h7fX1mdW5jdGlvbiBZaShlKXtyZXR1cm4gZSYmQXJyYXkuaXNBcnJheShlLnF1ZXVlZE1lc3NhZ2VzKT9lLnF1ZXVlZE1lc3NhZ2VzOnIuc3RydWN0dXJlZElucHV0UXVldWV9ZnVuY3Rpb24gWmwoKXt2YXIgZT1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24odCl7cmV0dXJuIHQuaWQ9PT1yLnNlbGVjdGVkSWR9KTtyZXR1cm4gWWkoZSl9ZnVuY3Rpb24gSnIoZSl7dmFyIHQ9WWkoZSk7ci5zdHJ1Y3R1cmVkSW5wdXRRdWV1ZT1BcnJheS5pc0FycmF5KHQpP3Quc2xpY2UoKTpbXX1mdW5jdGlvbiB4dShlLHQpe3JldHVybiEhKGUmJkFycmF5LmlzQXJyYXkoZS5jb250ZW50KSYmZS5jb250ZW50LnNvbWUoZnVuY3Rpb24obil7cmV0dXJuIG4mJnR5cGVvZiBuPT0ib2JqZWN0IiYmblt0XX0pKX1mdW5jdGlvbiBlYyhlKXtyZXR1cm4hIShlJiZlLnJvbGU9PT0idXNlciImJnh1KGUsIl9fcXVldWVkIikpfWZ1bmN0aW9uIHRjKGUpe3JldHVybiEhKGUmJmUucm9sZT09PSJhc3Npc3RhbnQiJiZ4dShlLCJfX3Byb2Nlc3NpbmciKSl9ZnVuY3Rpb24gY3IoZSl7aWYoIUFycmF5LmlzQXJyYXkoZSkpcmV0dXJuW107Zm9yKHZhciB0PSExLG49W10saT0wO2k8ZS5sZW5ndGg7aSsrKXt2YXIgYT1lW2ldO2lmKGVjKGEpfHx0YyhhKSl7dD0hMDtjb250aW51ZX1uLnB1c2goYSl9cmV0dXJuIHQ/bjplfWZ1bmN0aW9uIG5jKGUsdCl7aWYoIWV8fCFBcnJheS5pc0FycmF5KGUubWVzc2FnZXMpKXJldHVybiBlO3ZhciBuPWUuc2Vzc2lvbktpbmR8fHQmJnQuc2Vzc2lvbktpbmQ7aWYobiE9PSJzdHJ1Y3R1cmVkIilyZXR1cm4gZTt2YXIgaT1jcihlLm1lc3NhZ2VzKTtyZXR1cm4gaT09PWUubWVzc2FnZXM/ZTpPYmplY3QuYXNzaWduKHt9LGUse21lc3NhZ2VzOml9KX1mdW5jdGlvbiBTdSgpe3RyeXt2YXIgZT1abCgpO2lmKCFyLnNlbGVjdGVkSWR8fGUubGVuZ3RoPT09MClyZXR1cm47bG9jYWxTdG9yYWdlLnNldEl0ZW0oIndhbmQtc3RydWN0dXJlZC1xdWV1ZSIsSlNPTi5zdHJpbmdpZnkoe3Nlc3Npb25JZDpyLnNlbGVjdGVkSWQsaXRlbXM6ZX0pKX1jYXRjaHt9fWZ1bmN0aW9uIEl1KGUpe3RyeXt2YXIgdD1sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgid2FuZC1zdHJ1Y3R1cmVkLXF1ZXVlIik7aWYoIXQpcmV0dXJuO3ZhciBuPUpTT04ucGFyc2UodCk7KCFlfHwhbnx8bi5zZXNzaW9uSWQ9PT1lKSYmbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oIndhbmQtc3RydWN0dXJlZC1xdWV1ZSIpfWNhdGNoe2xvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCJ3YW5kLXN0cnVjdHVyZWQtcXVldWUiKX19ZnVuY3Rpb24gVHUoKXt2YXIgZT1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oaSl7cmV0dXJuIGkuaWQ9PT1yLnNlbGVjdGVkSWR9KTtpZihlJiZBcnJheS5pc0FycmF5KGUucXVldWVkTWVzc2FnZXMpKXtKcihlKSxTdSgpO3JldHVybn10cnl7dmFyIHQ9bG9jYWxTdG9yYWdlLmdldEl0ZW0oIndhbmQtc3RydWN0dXJlZC1xdWV1ZSIpO2lmKCF0KXJldHVybjt2YXIgbj1KU09OLnBhcnNlKHQpO2lmKCFufHxuLnNlc3Npb25JZCE9PXIuc2VsZWN0ZWRJZHx8IUFycmF5LmlzQXJyYXkobi5pdGVtcykpcmV0dXJuO3Iuc3RydWN0dXJlZElucHV0UXVldWU9bi5pdGVtcy5zbGljZSgwLDEwKX1jYXRjaHtyLnN0cnVjdHVyZWRJbnB1dFF1ZXVlPVtdfX1mdW5jdGlvbiBYdCgpe3RyeXtpZihyLmNyb3NzU2Vzc2lvblF1ZXVlLmxlbmd0aD09PTApe2xvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCJ3YW5kLWNyb3NzLXNlc3Npb24tcXVldWUiKTtyZXR1cm59bG9jYWxTdG9yYWdlLnNldEl0ZW0oIndhbmQtY3Jvc3Mtc2Vzc2lvbi1xdWV1ZSIsSlNPTi5zdHJpbmdpZnkoci5jcm9zc1Nlc3Npb25RdWV1ZSkpfWNhdGNoe319ZnVuY3Rpb24gc24oKXtyZXR1cm4gci5jb25maWcmJnIuY29uZmlnLmRlZmF1bHRDd2R8fCIvdG1wIn1mdW5jdGlvbiBMdSgpe3RyeXt2YXIgZT1sb2NhbFN0b3JhZ2UuZ2V0SXRlbSh6aSk7aWYoIWUpcmV0dXJue307dmFyIHQ9SlNPTi5wYXJzZShlKTtyZXR1cm4gdCYmdHlwZW9mIHQ9PSJvYmplY3QiP3Q6e319Y2F0Y2h7cmV0dXJue319fWZ1bmN0aW9uIHJjKGUpe3RyeXtpZighZXx8T2JqZWN0LmtleXMoZSkubGVuZ3RoPT09MCl7bG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oemkpO3JldHVybn1sb2NhbFN0b3JhZ2Uuc2V0SXRlbSh6aSxKU09OLnN0cmluZ2lmeShlKSl9Y2F0Y2h7fX1mdW5jdGlvbiBpYygpe3ZhciBlPXIuc2VsZWN0ZWRJZDtpZighZSlyZXR1cm57fTt2YXIgdD1MdSgpLG49dFtlXTtyZXR1cm4gbiYmdHlwZW9mIG49PSJvYmplY3QiP246e319ZnVuY3Rpb24gWGUoZSl7aWYoIWV8fCFyLnNlbGVjdGVkSWQpcmV0dXJuIG51bGw7dmFyIHQ9aWMoKTtyZXR1cm4gdHlwZW9mIHRbZV09PSJib29sZWFuIj90W2VdOm51bGx9ZnVuY3Rpb24gTXUoZSx0KXtpZighKCFlfHwhci5zZWxlY3RlZElkKSl7dmFyIG49THUoKSxpPXIuc2VsZWN0ZWRJZCxhPW5baV07KCFhfHx0eXBlb2YgYSE9Im9iamVjdCIpJiYoYT17fSksYVtlXT0hIXQsbltpXT1hLHJjKG4pfX1mdW5jdGlvbiBxdShlLHQpe3JldHVybiBlP2UudXVpZD8ibXNnOiIrZS51dWlkOmUuaWQ/Im1zZzoiK2UuaWQ6ZS5tZXNzYWdlSWQ/Im1zZzoiK2UubWVzc2FnZUlkOmUudHVybklkPyJtc2c6IitlLnR1cm5JZDoibXNnOiIrKHR5cGVvZiB0PT0ibnVtYmVyIj90OjApOiJtc2c6dW5rbm93bi0iKyh0eXBlb2YgdD09Im51bWJlciI/dDowKX1mdW5jdGlvbiBxdChlLHQpe2Zvcih2YXIgbj1bXSxpPTA7aTx0Lmxlbmd0aDtpKyspe3ZhciBhPXRbaV07YT09bnVsbHx8YT09PSIifHxuLnB1c2goU3RyaW5nKGEpKX1yZXR1cm4gZSsiOiIrbi5qb2luKCI6Iil9ZnVuY3Rpb24gUG4oZSl7cmV0dXJuIWV8fCFlLmRhdGFzZXQ/IiI6ZS5kYXRhc2V0LmV4cGFuZEtleXx8IiJ9ZnVuY3Rpb24gYWMoZSx0KXtpZighZSlyZXR1cm4hMTtzd2l0Y2godCl7Y2FzZSJ0b29sLWNhcmQiOmNhc2UiZGlmZiI6cmV0dXJuIWUuY2xhc3NMaXN0LmNvbnRhaW5zKCJjb2xsYXBzZWQiKTtjYXNlInRoaW5raW5nIjpyZXR1cm4gZS5jbGFzc0xpc3QuY29udGFpbnMoImV4cGFuZGVkIikmJiFlLmNsYXNzTGlzdC5jb250YWlucygiY29sbGFwc2VkIik7Y2FzZSJpbmxpbmUtdG9vbCI6cmV0dXJuIGUuY2xhc3NMaXN0LmNvbnRhaW5zKCJpbmxpbmUtdG9vbC1vcGVuIik7Y2FzZSJ0ZXJtaW5hbCI6e3ZhciBuPWUucXVlcnlTZWxlY3RvcigiLnRlcm0tYm9keSIpO3JldHVybiBuP24uc3R5bGUuZGlzcGxheSE9PSJub25lIjplLmRhdGFzZXQuZXhwYW5kZWQ9PT0idHJ1ZSJ9Y2FzZSJ0b29sLWdyb3VwIjpyZXR1cm4gZS5nZXRBdHRyaWJ1dGUoImRhdGEtZXhwYW5kZWQiKT09PSJ0cnVlIjtjYXNlInN1YmFnZW50LXJlcGx5IjpyZXR1cm4gZS5nZXRBdHRyaWJ1dGUoImRhdGEtZXhwYW5kZWQiKT09PSJ0cnVlIjtjYXNlInN1YmFnZW50LXBhbmVsIjpyZXR1cm4gZS5nZXRBdHRyaWJ1dGUoImRhdGEtZXhwYW5kZWQiKT09PSJ0cnVlIjtkZWZhdWx0OnJldHVybiExfX1mdW5jdGlvbiBRaShlLHQsbil7aWYoZSlzd2l0Y2godCl7Y2FzZSJ0b29sLWNhcmQiOmNhc2UiZGlmZiI6e2UuY2xhc3NMaXN0LnRvZ2dsZSgiY29sbGFwc2VkIiwhbik7YnJlYWt9Y2FzZSJ0aGlua2luZyI6e2UuY2xhc3NMaXN0LnRvZ2dsZSgiY29sbGFwc2VkIiwhbiksZS5jbGFzc0xpc3QudG9nZ2xlKCJleHBhbmRlZCIsISFuKTt2YXIgaT1lLnF1ZXJ5U2VsZWN0b3IoIi50aGlua2luZy1pbmxpbmUtcHJldmlldyIpO2lmKGkpe3ZhciBhPWUuZGF0YXNldC50aGlua2luZ3x8IiIsdT1hLnNsaWNlKDAsNTcpKyhhLmxlbmd0aD42MD8iXHUyMDI2IjoiIik7aS50ZXh0Q29udGVudD1uP2E6dX12YXIgcz1lLnF1ZXJ5U2VsZWN0b3IoIi50aGlua2luZy1pbmxpbmUtYWN0aW9uIik7cyYmKHMudGV4dENvbnRlbnQ9bj8iXHU2NTM2XHU4RDc3IjoiXHU1QzU1XHU1RjAwIik7YnJlYWt9Y2FzZSJpbmxpbmUtdG9vbCI6e2UuY2xhc3NMaXN0LnRvZ2dsZSgiaW5saW5lLXRvb2wtb3BlbiIsISFuKTt2YXIgbz1lLnF1ZXJ5U2VsZWN0b3IoIi5pbmxpbmUtdG9vbC1leHBhbmRlZCIpO28mJihvLnN0eWxlLmRpc3BsYXk9bj8iYmxvY2siOiJub25lIik7YnJlYWt9Y2FzZSJ0ZXJtaW5hbCI6e3ZhciBsPWUucXVlcnlTZWxlY3RvcigiLnRlcm0tYm9keSIpO2wmJihsLnN0eWxlLmRpc3BsYXk9bj8iYmxvY2siOiJub25lIiksZS5kYXRhc2V0LmV4cGFuZGVkPW4/InRydWUiOiJmYWxzZSI7dmFyIGM9ZS5xdWVyeVNlbGVjdG9yKCIudGVybS10b2dnbGUtaWNvbiIpO2MmJihjLnRleHRDb250ZW50PW4/Ilx1MjVCQyI6Ilx1MjVCNiIpO2JyZWFrfWNhc2UidG9vbC1ncm91cCI6e2Uuc2V0QXR0cmlidXRlKCJkYXRhLWV4cGFuZGVkIixuPyJ0cnVlIjoiZmFsc2UiKTt2YXIgZj1lLnF1ZXJ5U2VsZWN0b3IoIi50b29sLWdyb3VwLWJvZHkiKTtmJiYoZi5zdHlsZS5kaXNwbGF5PW4/ImJsb2NrIjoibm9uZSIpO3ZhciBkPWUucXVlcnlTZWxlY3RvcigiLnRvb2wtZ3JvdXAtY2hldnJvbiIpO2QmJihkLnN0eWxlLnRyYW5zZm9ybT1uPyJyb3RhdGUoMTgwZGVnKSI6IiIpO2JyZWFrfWNhc2Uic3ViYWdlbnQtcmVwbHkiOntlLnNldEF0dHJpYnV0ZSgiZGF0YS1leHBhbmRlZCIsbj8idHJ1ZSI6ImZhbHNlIik7dmFyIHY9ZS5xdWVyeVNlbGVjdG9yKCIuc3ViYWdlbnQtcmVwbHktdG9nZ2xlLWxhYmVsIik7diYmKHYudGV4dENvbnRlbnQ9bj8iXHU2NTM2XHU4RDc3IjoiXHU1QzU1XHU1RjAwIik7dmFyIGg9ZS5xdWVyeVNlbGVjdG9yKCIuc3ViYWdlbnQtcmVwbHktdG9nZ2xlIik7aCYmKGguc2V0QXR0cmlidXRlKCJhcmlhLWV4cGFuZGVkIixuPyJ0cnVlIjoiZmFsc2UiKSxoLnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsbj8iXHU2NTM2XHU4RDc3XHU1QjUwXHU0RUUzXHU3NDA2XHU1NkRFXHU1OTBEIjoiXHU1QzU1XHU1RjAwXHU1QjUwXHU0RUUzXHU3NDA2XHU1NkRFXHU1OTBEXHU1MTY4XHU2NTg3IikpO2JyZWFrfWNhc2Uic3ViYWdlbnQtcGFuZWwiOntlLnNldEF0dHJpYnV0ZSgiZGF0YS1leHBhbmRlZCIsbj8idHJ1ZSI6ImZhbHNlIik7Zm9yKHZhciBnPWUucXVlcnlTZWxlY3RvckFsbCgiLnN1YmFnZW50LXBhbmVsLXRvZ2dsZSIpLG09MDttPGcubGVuZ3RoO20rKyl7dmFyIHk9Z1ttXTt5LnNldEF0dHJpYnV0ZSgiYXJpYS1leHBhbmRlZCIsbj8idHJ1ZSI6ImZhbHNlIikseS5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLG4/Ilx1NjUzNlx1OEQ3N1x1NUI1MFx1NEVFM1x1NzQwNlx1OEY5M1x1NTFGQSI6Ilx1NUM1NVx1NUYwMFx1NUI1MFx1NEVFM1x1NzQwNlx1OEY5M1x1NTFGQSIpO3ZhciB3PXkucXVlcnlTZWxlY3RvcigiLnN1YmFnZW50LXBhbmVsLXRvZ2dsZS1sYWJlbCIpO3cmJih3LnRleHRDb250ZW50PW4/Ilx1NjUzNlx1OEQ3NyI6Ilx1NUM1NVx1NUYwMCIpfXZhciBFPWUucXVlcnlTZWxlY3RvcigiLnN1YmFnZW50LXBhbmVsLWJvZHkiKTtFJiYobj9FLnNjcm9sbFRvcD0wOkUuc2Nyb2xsVG9wPUUuc2Nyb2xsSGVpZ2h0KTticmVha319fWZ1bmN0aW9uIEJuKGUsdCl7dmFyIG49UG4oZSk7biYmTXUobixhYyhlLHQpKX1mdW5jdGlvbiAkaShlKXshZXx8IXIuc2VsZWN0ZWRJZHx8ZS5xdWVyeVNlbGVjdG9yQWxsKCJbZGF0YS1leHBhbmQta2V5XSIpLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIG49UG4odCksaT10LmRhdGFzZXQuZXhwYW5kS2luZHx8IiIsYT1YZShuKTthPT09bnVsbHx8IWl8fFFpKHQsaSxhKX0pfWZ1bmN0aW9uIE5lKCl7cmV0dXJuIHdpbmRvdy5pbm5lcldpZHRoPD03Njh9ZnVuY3Rpb24gT3UoKXtyZXR1cm4hIXIuc2Vzc2lvbnNEcmF3ZXJPcGVuJiYoTmUoKXx8IXIuc2lkZWJhclBpbm5lZCl9ZnVuY3Rpb24gWGkoZSl7ci5maWxlUGFuZWxPcGVuPWU7dHJ5e2xvY2FsU3RvcmFnZS5zZXRJdGVtKCJ3YW5kLWZpbGUtcGFuZWwtb3BlbiIsU3RyaW5nKHIuZmlsZVBhbmVsT3BlbikpfWNhdGNoe31yLmZpbGVQYW5lbE9wZW4mJk5lKCkmJihyLnNlc3Npb25zRHJhd2VyT3Blbj0hMSx4ZSgid2FuZC1zaWRlYmFyLW9wZW4iLCExKSksb24oKSxyLmZpbGVQYW5lbE9wZW4mJk90KCl9ZnVuY3Rpb24gR3IoKXtYaSghci5maWxlUGFuZWxPcGVuKX1mdW5jdGlvbiB1Yygpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLXNpZGUtcGFuZWwiKSx0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5tYWluLWNvbnRlbnQiKSxuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLXBhbmVsLXRvZ2dsZS1idG4iKSxpPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLXBhbmVsLWJhY2tkcm9wIik7ZSYmZS5jbGFzc0xpc3QudG9nZ2xlKCJvcGVuIixyLmZpbGVQYW5lbE9wZW4pLHQmJnQuY2xhc3NMaXN0LnRvZ2dsZSgiZmlsZS1wYW5lbC1vcGVuIixyLmZpbGVQYW5lbE9wZW4pLGkmJmkuY2xhc3NMaXN0LnRvZ2dsZSgib3BlbiIsci5maWxlUGFuZWxPcGVuKSxuJiZuLmNsYXNzTGlzdC50b2dnbGUoImFjdGl2ZSIsci5maWxlUGFuZWxPcGVuKX1mdW5jdGlvbiBvbigpe3FyKCksdWMoKX1mdW5jdGlvbiBzYyhlKXt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS1leHBsb3Jlci1jd2QiKTtpZih0KXt2YXIgbj1lJiZlLmN3ZD9lLmN3ZDpzbigpO3QudGFnTmFtZT09PSJJTlBVVCI/ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCE9PXQmJih0LnZhbHVlPW4sZ2codCkpOnQudGV4dENvbnRlbnQ9bix0LnRpdGxlPW47dmFyIGk9dC5jbG9zZXN0KCIuZmlsZS1leHBsb3Jlci1oZWFkZXIiKTtpJiZpcihpKX19ZnVuY3Rpb24gUHUoKXtyLmZpbGVQYW5lbE9wZW4mJlhpKCExKX1mdW5jdGlvbiBIdShlKXt2YXIgdD1yLnRlcm1pbmFsU2NhbGUrZTtpZih0PU1hdGgubWF4KC41LE1hdGgubWluKDIsdCkpLHQ9TWF0aC5yb3VuZCh0KjQpLzQsdCE9PXIudGVybWluYWxTY2FsZSl7ci50ZXJtaW5hbFNjYWxlPXQ7dHJ5e2xvY2FsU3RvcmFnZS5zZXRJdGVtKCJ3YW5kLXRlcm1pbmFsLXNjYWxlIixTdHJpbmcodCkpfWNhdGNoe31fdSgpLG9jKCl9fWZ1bmN0aW9uIF91KCl7aWYoISghci50ZXJtaW5hbHx8IXIudGVybWluYWwuZWxlbWVudCkpe3ZhciBlPXIudGVybWluYWxCYXNlRm9udFNpemUqci50ZXJtaW5hbFNjYWxlLHQ9TWF0aC5tYXgoMSxNYXRoLnJvdW5kKGUpKSxuPU1hdGgubWF4KDEsTWF0aC5yb3VuZChlKjEuNSkpO3IudGVybWluYWwuZWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgiLS10ZXJtLWZvbnQtc2l6ZSIsdCsicHgiKSxyLnRlcm1pbmFsLmVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoIi0tdGVybS1yb3ctaGVpZ2h0IixuKyJweCIpLHR5cGVvZiByLnRlcm1pbmFsLnJlbWVhc3VyZT09ImZ1bmN0aW9uIiYmcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7ci50ZXJtaW5hbCYmci50ZXJtaW5hbC5yZW1lYXN1cmUoKX0pfX1mdW5jdGlvbiBvYygpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXJtaW5hbC1zY2FsZS1sYWJlbC10b3AiKTtlJiYoZS50ZXh0Q29udGVudD1NYXRoLnJvdW5kKHIudGVybWluYWxTY2FsZSoxMDApKyIlIil9dmFyIGxjPXsiY2hldnJvbi1sZWZ0IjonPHBhdGggZD0iTTE1IDE4bC02LTYgNi02Ii8+JywiYXJyb3ctdXAiOic8cGF0aCBkPSJNMTIgMTlWNSIvPjxwYXRoIGQ9Ik01IDEybDctNyA3IDciLz4nLHJlZnJlc2g6JzxwYXRoIGQ9Ik0yMSAxMmE5IDkgMCAxIDEtMy02LjciLz48cGF0aCBkPSJNMjEgNHY1aC01Ii8+JyxleWU6JzxwYXRoIGQ9Ik0xIDEyczQtNyAxMS03IDExIDcgMTEgNy00IDctMTEgN1MxIDEyIDEgMTJ6Ii8+PGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMyIvPicsImV5ZS1vZmYiOic8cGF0aCBkPSJNMTcuOTQgMTcuOTRBMTAuOTQgMTAuOTQgMCAwIDEgMTIgMTljLTcgMC0xMS03LTExLTdhMTkuODYgMTkuODYgMCAwIDEgNC4yMi01LjE4Ii8+PHBhdGggZD0iTTEgMWwyMiAyMiIvPjxwYXRoIGQ9Ik05LjkgNC4yNEExMC45NCAxMC45NCAwIDAgMSAxMiA0YzcgMCAxMSA3IDExIDdhMTkuODMgMTkuODMgMCAwIDEtMy4zNiA0LjI3Ii8+PHBhdGggZD0iTTE0LjEyIDE0LjEyYTMgMyAwIDEgMS00LjI0LTQuMjQiLz4nLHg6JzxwYXRoIGQ9Ik0xOCA2TDYgMTgiLz48cGF0aCBkPSJNNiA2bDEyIDEyIi8+JyxzZWFyY2g6JzxjaXJjbGUgY3g9IjExIiBjeT0iMTEiIHI9IjciLz48cGF0aCBkPSJNMjEgMjFsLTQuMy00LjMiLz4nLGNvcHk6JzxyZWN0IHg9IjkiIHk9IjkiIHdpZHRoPSIxMSIgaGVpZ2h0PSIxMSIgcng9IjIiLz48cGF0aCBkPSJNNSAxNVY1YTIgMiAwIDAgMSAyLTJoMTAiLz4nLGNsaXBib2FyZDonPHJlY3QgeD0iOCIgeT0iMyIgd2lkdGg9IjgiIGhlaWdodD0iNCIgcng9IjEiLz48cGF0aCBkPSJNMTYgNWgyYTIgMiAwIDAgMSAyIDJ2MTJhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJWN2EyIDIgMCAwIDEgMi0yaDIiLz4nLGRvd25sb2FkOic8cGF0aCBkPSJNMjEgMTV2NGEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnYtNCIvPjxwYXRoIGQ9Ik03IDEwbDUgNSA1LTUiLz48cGF0aCBkPSJNMTIgMTVWMyIvPicsZWRpdDonPHBhdGggZD0iTTEyIDIwaDkiLz48cGF0aCBkPSJNMTYuNSAzLjVhMi4xMjEgMi4xMjEgMCAwIDEgMyAzTDcgMTlsLTQgMSAxLTR6Ii8+JyxzYXZlOic8cGF0aCBkPSJNMTkgMjFINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgxMWw1IDV2MTFhMiAyIDAgMCAxLTIgMnoiLz48cGF0aCBkPSJNMTcgMjF2LThIN3Y4Ii8+PHBhdGggZD0iTTcgM3Y1aDgiLz4nLCJyb3RhdGUtY2N3IjonPHBhdGggZD0iTTMgMTJhOSA5IDAgMSAwIDMtNi43Ii8+PHBhdGggZD0iTTMgNHY1aDUiLz4nLCJ3cmFwLXRleHQiOic8cGF0aCBkPSJNMyA2aDE4Ii8+PHBhdGggZD0iTTMgMTJoMTVhMyAzIDAgMSAxIDAgNmgtNCIvPjxwYXRoIGQ9Ik0xNiAxNmwtMiAyIDIgMiIvPjxwYXRoIGQ9Ik0zIDE4aDYiLz4nLHR5cGU6JzxwYXRoIGQ9Ik00IDdWNGgxNnYzIi8+PHBhdGggZD0iTTkgMjBoNiIvPjxwYXRoIGQ9Ik0xMiA0djE2Ii8+JyxtaW51czonPHBhdGggZD0iTTUgMTJoMTQiLz4nLHBsdXM6JzxwYXRoIGQ9Ik0xMiA1djE0Ii8+PHBhdGggZD0iTTUgMTJoMTQiLz4nLCJzZW5kLXRvLWlucHV0IjonPHBhdGggZD0iTTIyIDJMMTEgMTMiLz48cGF0aCBkPSJNMjIgMmwtNyAyMC00LTktOS00eiIvPicsdGVybWluYWw6Jzxwb2x5bGluZSBwb2ludHM9IjQgMTcgMTAgMTEgNCA1Ii8+PGxpbmUgeDE9IjEyIiB5MT0iMTkiIHgyPSIyMCIgeTI9IjE5Ii8+JywiZm9sZGVyLW9wZW4iOic8cGF0aCBkPSJNNiAxNGwxLjQ1LTIuOUEyIDIgMCAwIDEgOS4yNCAxMEgyMGEyIDIgMCAwIDEgMS45NCAyLjVsLTEuNTUgNmEyIDIgMCAwIDEtMS45NCAxLjVINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgzLjkzYTIgMiAwIDAgMSAxLjY2LjlsLjgyIDEuMmEyIDIgMCAwIDAgMS42Ni45SDE4YTIgMiAwIDAgMSAyIDJ2MiIvPicsaW5mbzonPGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMTAiLz48bGluZSB4MT0iMTIiIHkxPSIxNiIgeDI9IjEyIiB5Mj0iMTIiLz48bGluZSB4MT0iMTIiIHkxPSI4IiB4Mj0iMTIuMDEiIHkyPSI4Ii8+J307ZnVuY3Rpb24gTWUoZSx0KXt0PXR8fHt9O3ZhciBuPWxjW2VdfHwiIixpPXQuc2l6ZXx8MTYsYT10LmNsYXNzTmFtZT8iICIrdC5jbGFzc05hbWU6IiI7cmV0dXJuJzxzdmcgY2xhc3M9IndhbmQtaWNvbiB3YW5kLWljb24tJytlK2ErJyIgd2lkdGg9IicraSsnIiBoZWlnaHQ9IicraSsnIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPicrbisiPC9zdmc+In1mdW5jdGlvbiBjYyhlKXt2YXIgdD1lfHxzbigpO3JldHVybiB0Pyc8ZGl2IGNsYXNzPSJmaWxlLXRyZWUiIGlkPSJmaWxlLXRyZWUiIGRhdGEtY3dkPSInK3AodCkrJyI+PGRpdiBjbGFzcz0idHJlZS1sb2FkaW5nIj5cdTUyQTBcdThGN0RcdTRFMkRcdTIwMjY8L2Rpdj48L2Rpdj4nOic8ZGl2IGNsYXNzPSJmaWxlLWV4cGxvcmVyIGVtcHR5Ij5cdTY3MkFcdTkxNERcdTdGNkVcdTVERTVcdTRGNUNcdTc2RUVcdTVGNTVcdTMwMDI8L2Rpdj4nfXZhciBkYz17cG5nOiJcdXsxRjVCQ31cdUZFMEYiLGpwZzoiXHV7MUY1QkN9XHVGRTBGIixqcGVnOiJcdXsxRjVCQ31cdUZFMEYiLGdpZjoiXHV7MUY1QkN9XHVGRTBGIix3ZWJwOiJcdXsxRjVCQ31cdUZFMEYiLHN2ZzoiXHV7MUY1QkN9XHVGRTBGIixhdmlmOiJcdXsxRjVCQ31cdUZFMEYiLGJtcDoiXHV7MUY1QkN9XHVGRTBGIixpY286Ilx1ezFGNUJDfVx1RkUwRiIsaGVpYzoiXHV7MUY1QkN9XHVGRTBGIixoZWlmOiJcdXsxRjVCQ31cdUZFMEYiLHBkZjoiXHV7MUY0RDV9Iixkb2M6Ilx1ezFGNEQ4fSIsZG9jeDoiXHV7MUY0RDh9IixvZHQ6Ilx1ezFGNEQ4fSIseGxzOiJcdXsxRjRDQX0iLHhsc3g6Ilx1ezFGNENBfSIsY3N2OiJcdXsxRjRDQX0iLHRzdjoiXHV7MUY0Q0F9IixwcHQ6Ilx1ezFGNEQ5fSIscHB0eDoiXHV7MUY0RDl9IixtcDQ6Ilx1ezFGM0FDfSIsd2VibToiXHV7MUYzQUN9Iixtb3Y6Ilx1ezFGM0FDfSIsbWt2OiJcdXsxRjNBQ30iLG00djoiXHV7MUYzQUN9IixvZ3Y6Ilx1ezFGM0FDfSIsbXAzOiJcdXsxRjNCNX0iLHdhdjoiXHV7MUYzQjV9IixvZ2c6Ilx1ezFGM0I1fSIsbTRhOiJcdXsxRjNCNX0iLGZsYWM6Ilx1ezFGM0I1fSIsYWFjOiJcdXsxRjNCNX0iLG9wdXM6Ilx1ezFGM0I1fSIsemlwOiJcdXsxRjRFNn0iLHRhcjoiXHV7MUY0RTZ9IixnejoiXHV7MUY0RTZ9Iix0Z3o6Ilx1ezFGNEU2fSIsYnoyOiJcdXsxRjRFNn0iLCI3eiI6Ilx1ezFGNEU2fSIscmFyOiJcdXsxRjRFNn0iLHh6OiJcdXsxRjRFNn0iLG1kOiJcdXsxRjRERH0iLG1hcmtkb3duOiJcdXsxRjRERH0iLG1keDoiXHV7MUY0RER9Iixyc3Q6Ilx1ezFGNEREfSIsdHh0OiJcdXsxRjRERH0iLGxvZzoiXHV7MUY0RER9IixodG1sOiJcdXsxRjMxMH0iLGh0bToiXHV7MUYzMTB9Iix4bWw6Ilx1ezFGMzEwfSIsY3NzOiJcdXsxRjNBOH0iLHNjc3M6Ilx1ezFGM0E4fSIsbGVzczoiXHV7MUYzQTh9Iixqc29uOiJcdTI2OTlcdUZFMEYiLGpzb25jOiJcdTI2OTlcdUZFMEYiLHlhbWw6Ilx1MjY5OVx1RkUwRiIseW1sOiJcdTI2OTlcdUZFMEYiLHRvbWw6Ilx1MjY5OVx1RkUwRiIsaW5pOiJcdTI2OTlcdUZFMEYiLGNmZzoiXHUyNjk5XHVGRTBGIixjb25mOiJcdTI2OTlcdUZFMEYiLGVudjoiXHUyNjk5XHVGRTBGIixlZGl0b3Jjb25maWc6Ilx1MjY5OVx1RkUwRiIsdHM6Ilx1ezFGNERDfSIsdHN4OiJcdXsxRjREQ30iLGpzOiJcdXsxRjREQ30iLGpzeDoiXHV7MUY0REN9IixtanM6Ilx1ezFGNERDfSIsY2pzOiJcdXsxRjREQ30iLHB5OiJcdXsxRjREQ30iLHJiOiJcdXsxRjREQ30iLGdvOiJcdXsxRjREQ30iLHJzOiJcdXsxRjREQ30iLGphdmE6Ilx1ezFGNERDfSIsYzoiXHV7MUY0REN9IixjcHA6Ilx1ezFGNERDfSIsaDoiXHV7MUY0REN9IixocHA6Ilx1ezFGNERDfSIsY3M6Ilx1ezFGNERDfSIsc3dpZnQ6Ilx1ezFGNERDfSIsa3Q6Ilx1ezFGNERDfSIsc2NhbGE6Ilx1ezFGNERDfSIscGhwOiJcdXsxRjREQ30iLHNoOiJcdXsxRjREQ30iLGJhc2g6Ilx1ezFGNERDfSIsenNoOiJcdXsxRjREQ30iLGZpc2g6Ilx1ezFGNERDfSIsbHVhOiJcdXsxRjREQ30iLHNxbDoiXHV7MUY0REN9IixncmFwaHFsOiJcdXsxRjREQ30iLHByb3RvOiJcdXsxRjREQ30iLHZ1ZToiXHV7MUY0REN9IixzdmVsdGU6Ilx1ezFGNERDfSIsZGlmZjoiXHV7MUY0REN9IixwYXRjaDoiXHV7MUY0REN9Iix0dGY6Ilx1ezFGNTI0fSIsb3RmOiJcdXsxRjUyNH0iLHdvZmY6Ilx1ezFGNTI0fSIsd29mZjI6Ilx1ezFGNTI0fSIsZW90OiJcdXsxRjUyNH0ifTtmdW5jdGlvbiBOdShlKXtpZighZSlyZXR1cm4iXHV7MUY0QzR9IjtpZihlLnR5cGU9PT0iZGlyIilyZXR1cm4iXHV7MUY0QzF9Ijt2YXIgdD0oZS5uYW1lfHwiIikudG9Mb3dlckNhc2UoKTtpZih0PT09ImRvY2tlcmZpbGUiKXJldHVybiJcdXsxRjQzM30iO2lmKHQ9PT0ibWFrZWZpbGUiKXJldHVybiJcdXsxRjZFMH1cdUZFMEYiO2lmKHQ9PT0ibGljZW5zZSIpcmV0dXJuIlx1ezFGNERDfSI7aWYodD09PSJyZWFkbWUiKXJldHVybiJcdXsxRjRERH0iO3ZhciBuPXQubGFzdEluZGV4T2YoIi4iKTtpZihuPDB8fG49PT10Lmxlbmd0aC0xKXJldHVybiJcdXsxRjRDNH0iO3ZhciBpPXQuc2xpY2UobisxKTtyZXR1cm4gZGNbaV18fCJcdXsxRjRDNH0ifWZ1bmN0aW9uIEhuKGUpe2lmKHR5cGVvZiBlIT0ibnVtYmVyInx8IWlzRmluaXRlKGUpfHxlPDApcmV0dXJuIiI7aWYoZTwxMDI0KXJldHVybiBlKyIgQiI7dmFyIHQ9ZS8xMDI0O2lmKHQ8MTAyNClyZXR1cm4odD49MTA/TWF0aC5yb3VuZCh0KTp0LnRvRml4ZWQoMSkpKyIgS0IiO3ZhciBuPXQvMTAyNDtpZihuPDEwMjQpcmV0dXJuKG4+PTEwP01hdGgucm91bmQobik6bi50b0ZpeGVkKDEpKSsiIE1CIjt2YXIgaT1uLzEwMjQ7cmV0dXJuKGk+PTEwP01hdGgucm91bmQoaSk6aS50b0ZpeGVkKDEpKSsiIEdCIn1mdW5jdGlvbiBmYyhlKXtpZighZSlyZXR1cm4iIjt2YXIgdD1EYXRlLnBhcnNlKGUpO3JldHVybiBpc05hTih0KT8iIjpuZXcgRGF0ZSh0KS50b0xvY2FsZVN0cmluZygpfWZ1bmN0aW9uIGp1KCl7aWYoci5maWxlRXhwbG9yZXJDd2QpcmV0dXJuIHIuZmlsZUV4cGxvcmVyQ3dkO2lmKHIuc2VsZWN0ZWRJZCl7dmFyIGU9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKHQpe3JldHVybiB0LmlkPT09ci5zZWxlY3RlZElkfSk7aWYoZSYmZS5jd2QpcmV0dXJuIGUuY3dkfXJldHVybiBzbigpfWZ1bmN0aW9uIE90KGUpe2U9ZXx8e307dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtZXhwbG9yZXIiKSxuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLWV4cGxvcmVyLWN3ZCIpO2lmKHQpe3ZhciBpPWUuY3dkfHxqdSgpO2lmKCFpKXt0LmlubmVySFRNTD0nPGRpdiBjbGFzcz0iZmlsZS1leHBsb3JlciBlbXB0eSI+XHU2Q0ExXHU2NzA5XHU1M0VGXHU2NjNFXHU3OTNBXHU3Njg0XHU1REU1XHU0RjVDXHU3NkVFXHU1RjU1XHUzMDAyPC9kaXY+JztyZXR1cm59ci5maWxlRXhwbG9yZXJDd2Q9aSxyLmZpbGVFeHBsb3JlckxvYWRpbmc9ITAsci5hbGxGaWxlcz1bXSxyLmZpbGVFeHBsb3JlclRydW5jYXRlZD0hMSxyLmZpbGVFeHBsb3JlclRvdGFsPTAsdC5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImZpbGUtZXhwbG9yZXIiPjxkaXYgY2xhc3M9InRyZWUtbG9hZGluZyIgc3R5bGU9InBhZGRpbmc6MTJweDtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtmb250LXNpemU6MC44MTI1cmVtOyI+XHU1MkEwXHU4RjdEXHU0RTJEXHUyMDI2PC9kaXY+PC9kaXY+JyxuJiYobi50YWdOYW1lPT09IklOUFVUIj9kb2N1bWVudC5hY3RpdmVFbGVtZW50IT09biYmKG4udmFsdWU9aSk6bi50ZXh0Q29udGVudD1pLG4udGl0bGU9aSk7dmFyIGE9Ii9hcGkvZGlyZWN0b3J5P3E9IitlbmNvZGVVUklDb21wb25lbnQoaSkrIiZnaXRTdGF0dXM9dHJ1ZSI7ZmV0Y2goYSx7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24odSl7aWYoIXUub2spdGhyb3cgbmV3IEVycm9yKCJGYWlsZWQgdG8gbG9hZCBkaXJlY3RvcnkuIik7cmV0dXJuIHUuanNvbigpfSkudGhlbihmdW5jdGlvbih1KXtyLmZpbGVFeHBsb3JlckxvYWRpbmc9ITE7dmFyIHMsbyxsO2lmKEFycmF5LmlzQXJyYXkodSk/KHM9dSxvPSExLGw9dS5sZW5ndGgpOihzPXUmJnUuaXRlbXN8fFtdLG89ISEodSYmdS50cnVuY2F0ZWQpLGw9dSYmdS50b3RhbHx8cy5sZW5ndGgpLCFzfHxzLmxlbmd0aD09PTApe3QuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJmaWxlLWV4cGxvcmVyIGVtcHR5Ij5cdTdBN0FcdTc2RUVcdTVGNTVcdTYyMTZcdTY1RTBcdTZDRDVcdThCQkZcdTk1RUVcdTMwMDI8L2Rpdj4nO3JldHVybn1yLmFsbEZpbGVzPXMsci5maWxlRXhwbG9yZXJUcnVuY2F0ZWQ9byxyLmZpbGVFeHBsb3JlclRvdGFsPWwsUnUoKX0pLmNhdGNoKGZ1bmN0aW9uKCl7ci5maWxlRXhwbG9yZXJMb2FkaW5nPSExLHQuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJmaWxlLWV4cGxvcmVyIGVtcHR5Ij5cdTUyQTBcdThGN0RcdTU5MzFcdThEMjVcdUZGMENcdThCRjdcdTY4QzBcdTY3RTVcdThERUZcdTVGODRcdTYyMTZcdTY3NDNcdTk2NTBcdTMwMDI8L2Rpdj4nfSl9fWZ1bmN0aW9uIFJ1KCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtZXhwbG9yZXIiKTtpZihlKXt2YXIgdD1yLmZpbGVFeHBsb3JlckN3ZHx8IiI7aWYodCl7dmFyIG49ci5maWxlU2VhcmNoUXVlcnksaT1yLmFsbEZpbGVzfHxbXSxhPWk7aWYobil7dmFyIHU9bi50b0xvd2VyQ2FzZSgpO2E9aS5maWx0ZXIoZnVuY3Rpb24obCl7cmV0dXJuIGwubmFtZS50b0xvd2VyQ2FzZSgpLmluZGV4T2YodSkhPT0tMX0pfWlmKGEubGVuZ3RoPT09MCl7ZS5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImZpbGUtZXhwbG9yZXIgZW1wdHkiPicrKG4/Ilx1NkNBMVx1NjcwOVx1NjI3RVx1NTIzMFx1NTMzOVx1OTE0RFx1NzY4NFx1NjU4N1x1NEVGNiI6Ilx1N0E3QVx1NzZFRVx1NUY1NSIpKyI8L2Rpdj4iO3JldHVybn12YXIgcz0iIjtpZighbiYmci5maWxlRXhwbG9yZXJUcnVuY2F0ZWQpe3ZhciBvPWkubGVuZ3RoO3M9JzxkaXYgY2xhc3M9InRyZWUtdHJ1bmNhdGVkIiB0aXRsZT0iXHU1NDBFXHU3QUVGXHU2MzA5XHU1QjU3XHU2QkNEXHU1RThGXHU2NzAwXHU1OTFBXHU4RkQ0XHU1NkRFICcrbysnIFx1OTg3OSI+XHU2NjNFXHU3OTNBXHU1MjREICcrbysiIFx1OTg3OSAvIFx1NTE3MSAiK3IuZmlsZUV4cGxvcmVyVG90YWwrIiBcdTk4Nzk8L2Rpdj4ifWUuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJmaWxlLXRyZWUiIGlkPSJmaWxlLXRyZWUiIGRhdGEtY3dkPSInK3AodCkrJyI+JythLm1hcChmdW5jdGlvbihsKXtyZXR1cm4gV3UobCl9KS5qb2luKCIiKSsiPC9kaXY+IitzLHp1KCl9fX1mdW5jdGlvbiBXdShlLHQpe3Q9dHx8MDt2YXIgbj1wKGUubmFtZSksaT1lLnR5cGU9PT0iZGlyIixhPU51KGUpLHU9aT8iXHUyNUI4IjoiIixzPWk/IiI6IiBlbXB0eSIsbz1lLmdpdFN0YXR1cyxsPXBjKG8pLGM9IiI7cmV0dXJuIWkmJnR5cGVvZiBlLnNpemU9PSJudW1iZXIiJiYoYz0nPHNwYW4gY2xhc3M9InRyZWUtbWV0YSIgdGl0bGU9Ilx1NTkyN1x1NUMwRlx1RkYxQScrcChIbihlLnNpemUpKSsoZS5tdGltZT9gClx1NEZFRVx1NjUzOVx1NjVGNlx1OTVGNFx1RkYxQWArcChmYyhlLm10aW1lKSk6IiIpKyciPicrcChIbihlLnNpemUpKSsiPC9zcGFuPiIpLCc8ZGl2IGNsYXNzPSJ0cmVlLWl0ZW0iIGRhdGEtcGF0aD0iJytwKGUucGF0aCkrJyIgZGF0YS10eXBlPSInK3AoZS50eXBlKSsnIiBkYXRhLW5hbWU9IicrcChlLm5hbWUpKyciIHRhYmluZGV4PSIwIj48c3BhbiBjbGFzcz0idHJlZS10b2dnbGUnK3MrJyI+Jyt1Kyc8L3NwYW4+PHNwYW4gY2xhc3M9InRyZWUtaWNvbiI+JythKyc8L3NwYW4+PHNwYW4gY2xhc3M9InRyZWUtbmFtZSI+JytuKyI8L3NwYW4+IitjKyhsPyc8c3BhbiBjbGFzcz0iZ2l0LXN0YXR1cy1iYWRnZSAnK2wuY2xhc3MrJyIgdGl0bGU9IicrbC50aXRsZSsnIj4nK2wudGV4dCsiPC9zcGFuPiI6IiIpKyI8L2Rpdj4ifWZ1bmN0aW9uIHBjKGUpe3JldHVybiBlP2Uuc3RhZ2VkPT09ImFkZGVkIj97dGV4dDoiQSIsY2xhc3M6ImdpdC1hZGRlZCIsdGl0bGU6Ilx1NURGMlx1NjY4Mlx1NUI1OFx1RkYwOFx1NjVCMFx1NTg5RVx1RkYwOSJ9OmUuc3RhZ2VkPT09Im1vZGlmaWVkIj97dGV4dDoiTSIsY2xhc3M6ImdpdC1tb2RpZmllZCIsdGl0bGU6Ilx1NURGMlx1NjY4Mlx1NUI1OFx1RkYwOFx1NEZFRVx1NjUzOVx1RkYwOSJ9OmUuc3RhZ2VkPT09ImRlbGV0ZWQiP3t0ZXh0OiJEIixjbGFzczoiZ2l0LWRlbGV0ZWQiLHRpdGxlOiJcdTVERjJcdTY2ODJcdTVCNThcdUZGMDhcdTUyMjBcdTk2NjRcdUZGMDkifTplLnN0YWdlZD09PSJyZW5hbWVkIj97dGV4dDoiUiIsY2xhc3M6ImdpdC1yZW5hbWVkIix0aXRsZToiXHU1REYyXHU2NjgyXHU1QjU4XHVGRjA4XHU5MUNEXHU1NDdEXHU1NDBEXHVGRjA5In06ZS51bnN0YWdlZD09PSJtb2RpZmllZCI/e3RleHQ6Ik0iLGNsYXNzOiJnaXQtdW5zdGFnZWQiLHRpdGxlOiJcdTY3MkFcdTY2ODJcdTVCNThcdUZGMDhcdTRGRUVcdTY1MzlcdUZGMDkifTplLnVuc3RhZ2VkPT09ImRlbGV0ZWQiP3t0ZXh0OiJEIixjbGFzczoiZ2l0LXVuc3RhZ2VkLWRlbGV0ZWQiLHRpdGxlOiJcdTY3MkFcdTY2ODJcdTVCNThcdUZGMDhcdTUyMjBcdTk2NjRcdUZGMDkifTplLnVudHJhY2tlZD97dGV4dDoiPyIsY2xhc3M6ImdpdC11bnRyYWNrZWQiLHRpdGxlOiJcdTY3MkFcdThEREZcdThFMkEifTpudWxsOm51bGx9ZnVuY3Rpb24genUoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS10cmVlIik7aWYoZSl7ZS5xdWVyeVNlbGVjdG9yQWxsKCIudHJlZS1pdGVtW2RhdGEtdHlwZT0nZGlyJ10iKS5mb3JFYWNoKGZ1bmN0aW9uKGkpe2kuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKGEpe3ZjKGkpfSl9KSxlLnF1ZXJ5U2VsZWN0b3JBbGwoIi50cmVlLWl0ZW1bZGF0YS10eXBlPSdmaWxlJ10iKS5mb3JFYWNoKGZ1bmN0aW9uKGkpe3ZhciBhPWZ1bmN0aW9uKCl7UXIoaS5kYXRhc2V0LnBhdGgpfTtpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixhKSxpLmFkZEV2ZW50TGlzdGVuZXIoImRibGNsaWNrIixhKX0pO3ZhciB0PW51bGwsbj0hMTtlLnF1ZXJ5U2VsZWN0b3JBbGwoIi50cmVlLWl0ZW0iKS5mb3JFYWNoKGZ1bmN0aW9uKGkpe2kuYWRkRXZlbnRMaXN0ZW5lcigiY29udGV4dG1lbnUiLGZ1bmN0aW9uKGEpe2EucHJldmVudERlZmF1bHQoKSxVdShhLmNsaWVudFgsYS5jbGllbnRZLGkpfSksaS5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IixmdW5jdGlvbihhKXtuPSExLHQ9c2V0VGltZW91dChmdW5jdGlvbigpe249ITA7dmFyIHU9YS50b3VjaGVzJiZhLnRvdWNoZXNbMF07VXUodT91LmNsaWVudFg6MCx1P3UuY2xpZW50WTowLGkpfSw1MDApfSx7cGFzc2l2ZTohMH0pLGkuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLGZ1bmN0aW9uKCl7dCYmKGNsZWFyVGltZW91dCh0KSx0PW51bGwpfSksaS5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLGZ1bmN0aW9uKCl7dCYmKGNsZWFyVGltZW91dCh0KSx0PW51bGwpfSl9KX19ZnVuY3Rpb24gdmMoZSl7dmFyIHQ9ZS5kYXRhc2V0LnBhdGgsbj1lLnF1ZXJ5U2VsZWN0b3IoIi50cmVlLXRvZ2dsZSIpLGk9ZS5uZXh0RWxlbWVudFNpYmxpbmc7aWYoaSYmaS5jbGFzc0xpc3QuY29udGFpbnMoInRyZWUtY2hpbGRyZW4iKSl7dmFyIGE9aS5jbGFzc0xpc3QuY29udGFpbnMoIm9wZW4iKTtpLmNsYXNzTGlzdC50b2dnbGUoIm9wZW4iKSxuJiZuLmNsYXNzTGlzdC50b2dnbGUoIm9wZW4iLCFhKTt2YXIgdT1lLnF1ZXJ5U2VsZWN0b3IoIi50cmVlLWljb24iKTt1JiYodS50ZXh0Q29udGVudD1hPyJcdXsxRjRDMX0iOiJcdXsxRjRDMn0iKTtyZXR1cm59biYmbi5jbGFzc0xpc3QuYWRkKCJvcGVuIik7dmFyIHM9ZS5xdWVyeVNlbGVjdG9yKCIudHJlZS1pY29uIik7cyYmKHMudGV4dENvbnRlbnQ9Ilx1ezFGNEMyfSIpO3ZhciBvPSIvYXBpL2RpcmVjdG9yeT9xPSIrZW5jb2RlVVJJQ29tcG9uZW50KHQpKyImZ2l0U3RhdHVzPXRydWUiO2ZldGNoKG8se2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKGwpe3JldHVybiBsLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24obCl7dmFyIGM7QXJyYXkuaXNBcnJheShsKT9jPWw6Yz1sJiZsLml0ZW1zfHxbXTt2YXIgZj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtmLmNsYXNzTmFtZT0idHJlZS1jaGlsZHJlbiBvcGVuIiwhY3x8Yy5sZW5ndGg9PT0wP2YuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJ0cmVlLWl0ZW0iIHN0eWxlPSJjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtjdXJzb3I6ZGVmYXVsdDsiPjxzcGFuIGNsYXNzPSJ0cmVlLXRvZ2dsZSBlbXB0eSI+XHUyNUI4PC9zcGFuPjxzcGFuIGNsYXNzPSJ0cmVlLW5hbWUiPlx1RkYwOFx1N0E3QVx1NzZFRVx1NUY1NVx1RkYwOTwvc3Bhbj48L2Rpdj4nOmYuaW5uZXJIVE1MPWMubWFwKGZ1bmN0aW9uKGQpe3JldHVybiBXdShkKX0pLmpvaW4oIiIpLGUucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZixlLm5leHRTaWJsaW5nKSx6dSgpfSkuY2F0Y2goZnVuY3Rpb24oKXt9KX1mdW5jdGlvbiBtYygpe3ZhciBlPWp1KCk7aWYoZSl7dmFyIHQ9ZS5yZXBsYWNlKC9cLyskLywiIikucmVwbGFjZSgvXC9bXlwvXSskLywiIik7dHx8KHQ9Ii8iKSx0IT09ZSYmT3Qoe2N3ZDp0fSl9fWZ1bmN0aW9uIFppKGUpe3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dC1ib3giKTtpZighdClyZXR1cm4hMTt2YXIgbj10LnZhbHVlfHwiIixpPW4mJiFuLmVuZHNXaXRoKCIgIikmJiFuLmVuZHNXaXRoKGAKYCk/IiAiOiIiO3QudmFsdWU9bitpK2UsdC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgiaW5wdXQiLHtidWJibGVzOiEwfSkpO3RyeXt0LmZvY3VzKCksdC5zZXRTZWxlY3Rpb25SYW5nZSh0LnZhbHVlLmxlbmd0aCx0LnZhbHVlLmxlbmd0aCl9Y2F0Y2h7fXJldHVybiEwfWZ1bmN0aW9uIFlyKGUpe2lmKG5hdmlnYXRvci5jbGlwYm9hcmQmJm5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KXJldHVybiBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChlKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuITB9KS5jYXRjaChmdW5jdGlvbigpe3JldHVybiB0KCl9KTtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHQoKSk7ZnVuY3Rpb24gdCgpe3RyeXt2YXIgbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZXh0YXJlYSIpO24udmFsdWU9ZSxuLnN0eWxlLnBvc2l0aW9uPSJmaXhlZCIsbi5zdHlsZS5sZWZ0PSItOTk5OXB4Iixkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKG4pLG4uc2VsZWN0KCk7dmFyIGk9ZG9jdW1lbnQuZXhlY0NvbW1hbmQoImNvcHkiKTtyZXR1cm4gZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChuKSxpfWNhdGNoe3JldHVybiExfX19ZnVuY3Rpb24gRHQoZSl7aWYodHlwZW9mIHdpbmRvdy5zaG93VG9hc3Q9PSJmdW5jdGlvbiIpe3dpbmRvdy5zaG93VG9hc3QoZSk7cmV0dXJufXZhciB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3QuY2xhc3NOYW1lPSJ3YW5kLW1pbmktdG9hc3QiLHQudGV4dENvbnRlbnQ9ZSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHQpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXt0LmNsYXNzTGlzdC5hZGQoInNob3ciKX0sMTApLHNldFRpbWVvdXQoZnVuY3Rpb24oKXt0LmNsYXNzTGlzdC5yZW1vdmUoInNob3ciKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dC5yZW1vdmUoKX0sMjIwKX0sMTYwMCl9ZnVuY3Rpb24gX24oKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS1jb250ZXh0LW1lbnUiKTtlJiZlLnJlbW92ZSgpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIixfbiwhMCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIixfbiwhMCl9ZnVuY3Rpb24gVXUoZSx0LG4pe19uKCk7dmFyIGk9bi5kYXRhc2V0LnBhdGh8fCIiLGE9bi5kYXRhc2V0LnR5cGV8fCJmaWxlIix1PXIuZmlsZUV4cGxvcmVyQ3dkfHwiIixzPWk7dSYmaS5pbmRleE9mKHUpPT09MCYmKHM9aS5zbGljZSh1Lmxlbmd0aCkucmVwbGFjZSgvXlwvKy8sIiIpfHwiLiIpO3ZhciBvPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO28uaWQ9ImZpbGUtY29udGV4dC1tZW51IixvLmNsYXNzTmFtZT0iZmlsZS1jb250ZXh0LW1lbnUiO3ZhciBsPVtdO2E9PT0iZmlsZSI/bC5wdXNoKHtsYWJlbDoiXHU2MjUzXHU1RjAwXHU5ODg0XHU4OUM4IixpY29uOiJcdXsxRjQ0MX0iLHJ1bjpmdW5jdGlvbigpe1FyKGkpfX0pOmwucHVzaCh7bGFiZWw6Ilx1OEZEQlx1NTE2NVx1NkI2NFx1NzZFRVx1NUY1NSIsaWNvbjoiXHV7MUY0QzJ9IixydW46ZnVuY3Rpb24oKXtPdCh7Y3dkOml9KX19KSxsLnB1c2goe2xhYmVsOiJcdTU5MERcdTUyMzZcdTVCOENcdTY1NzRcdThERUZcdTVGODQiLGljb246Ilx1ezFGNENCfSIscnVuOmZ1bmN0aW9uKCl7WXIoaSkudGhlbihmdW5jdGlvbigpe0R0KCJcdTVERjJcdTU5MERcdTUyMzZcdThERUZcdTVGODQiKX0pfX0pLHMmJnMhPT1pJiZsLnB1c2goe2xhYmVsOiJcdTU5MERcdTUyMzZcdTc2RjhcdTVCRjlcdThERUZcdTVGODQiLGljb246Ilx1ezFGNENCfSIscnVuOmZ1bmN0aW9uKCl7WXIocykudGhlbihmdW5jdGlvbigpe0R0KCJcdTVERjJcdTU5MERcdTUyMzZcdTc2RjhcdTVCRjlcdThERUZcdTVGODQiKX0pfX0pLGwucHVzaCh7bGFiZWw6Ilx1N0M5OFx1OEQzNFx1OERFRlx1NUY4NFx1NTIzMFx1OEY5M1x1NTE2NVx1Njg0NiIsaWNvbjoiXHUyNzBGXHVGRTBGIixydW46ZnVuY3Rpb24oKXtaaShpKSYmRHQoIlx1NURGMlx1N0M5OFx1OEQzNFx1NTIzMFx1OEY5M1x1NTE2NVx1Njg0NiIpfX0pLGE9PT0iZmlsZSImJmwucHVzaCh7bGFiZWw6Ilx1NEUwQlx1OEY3RFx1NjU4N1x1NEVGNiIsaWNvbjoiXHUyQjA3IixydW46ZnVuY3Rpb24oKXt2YXIgZz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7Zy5ocmVmPSIvYXBpL2ZpbGUtcmF3P2Rvd25sb2FkPTEmcGF0aD0iK2VuY29kZVVSSUNvbXBvbmVudChpKSxnLnJlbD0ibm9vcGVuZXIiLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZyksZy5jbGljaygpLGcucmVtb3ZlKCl9fSksby5pbm5lckhUTUw9bC5tYXAoZnVuY3Rpb24oZyxtKXtyZXR1cm4nPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJmaWxlLWNvbnRleHQtbWVudS1pdGVtIiBkYXRhLWlkeD0iJyttKyciPjxzcGFuIGNsYXNzPSJjdHgtaWNvbiI+JytnLmljb24rJzwvc3Bhbj48c3BhbiBjbGFzcz0iY3R4LWxhYmVsIj4nK3AoZy5sYWJlbCkrIjwvc3Bhbj48L2J1dHRvbj4ifSkuam9pbigiIiksZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChvKTt2YXIgYz13aW5kb3cuaW5uZXJXaWR0aCxmPXdpbmRvdy5pbm5lckhlaWdodCxkPW8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksdj1NYXRoLm1pbihlLGMtZC53aWR0aC04KSxoPU1hdGgubWluKHQsZi1kLmhlaWdodC04KTtvLnN0eWxlLmxlZnQ9TWF0aC5tYXgoOCx2KSsicHgiLG8uc3R5bGUudG9wPU1hdGgubWF4KDgsaCkrInB4IixvLnF1ZXJ5U2VsZWN0b3JBbGwoIi5maWxlLWNvbnRleHQtbWVudS1pdGVtIikuZm9yRWFjaChmdW5jdGlvbihnKXtnLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihtKXttLnN0b3BQcm9wYWdhdGlvbigpO3ZhciB5PXBhcnNlSW50KGcuZGF0YXNldC5pZHgsMTApO19uKCksbFt5XSYmbFt5XS5ydW4oKX0pfSksc2V0VGltZW91dChmdW5jdGlvbigpe2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixfbiwhMCksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIixfbiwhMCl9LDApfXZhciBPPW51bGw7ZnVuY3Rpb24gUXIoZSl7dmFyIHQ9TyYmTy5vdmVybGF5O2lmKHQpe08ucGF0aD1lLE8uZWRpdGluZz0hMSxPLmRpcnR5PSExO3ZhciBzPXQucXVlcnlTZWxlY3RvcigiLmZpbGUtcHJldmlldy10aXRsZSIpO3MmJihzLmlubmVySFRNTD0nPHNwYW4gY2xhc3M9ImZpbGUtcHJldmlldy1pY29uIj5cdXsxRjRDNH08L3NwYW4+PGRpdiBjbGFzcz0iZmlsZS1wcmV2aWV3LW5hbWUtYmxvY2siPjxkaXYgY2xhc3M9ImZpbGUtcHJldmlldy1uYW1lLXJvdyI+PHNwYW4gY2xhc3M9ImZpbGUtcHJldmlldy1maWxlbmFtZSI+XHU1MkEwXHU4RjdEXHU0RTJEXHUyMDI2PC9zcGFuPjwvZGl2PicrbHQoIiIsImZpbGUtcHJldmlldy1wYXRoIikrIjwvZGl2PiIpO3ZhciBvPXQucXVlcnlTZWxlY3RvcigiLmZpbGUtcHJldmlldy10b29sYmFyIik7byYmKG8uaW5uZXJIVE1MPSIiKTt2YXIgbD10LnF1ZXJ5U2VsZWN0b3IoIi5maWxlLXByZXZpZXctcGF0aCIpO2J1KGwsIiIpO3ZhciBjPXQucXVlcnlTZWxlY3RvcigiLmZpbGUtcHJldmlldy1ib2R5Iik7YyYmKGMuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJmaWxlLXByZXZpZXctbG9hZGluZyI+XHU1MkEwXHU4RjdEXHU5ODg0XHU4OUM4XHUyMDI2PC9kaXY+Jyl9ZWxzZXt0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHQuY2xhc3NOYW1lPSJmaWxlLXByZXZpZXctb3ZlcmxheSIsdC5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImZpbGUtcHJldmlldy1tb2RhbCIgdGFiaW5kZXg9Ii0xIj48ZGl2IGNsYXNzPSJmaWxlLXByZXZpZXctaGVhZGVyIj48ZGl2IGNsYXNzPSJmaWxlLXByZXZpZXctdGl0bGUiPjxzcGFuIGNsYXNzPSJmaWxlLXByZXZpZXctaWNvbiI+XHV7MUY0QzR9PC9zcGFuPjxkaXYgY2xhc3M9ImZpbGUtcHJldmlldy1uYW1lLWJsb2NrIj48ZGl2IGNsYXNzPSJmaWxlLXByZXZpZXctbmFtZS1yb3ciPjxzcGFuIGNsYXNzPSJmaWxlLXByZXZpZXctZmlsZW5hbWUiPlx1NTJBMFx1OEY3RFx1NEUyRFx1MjAyNjwvc3Bhbj48L2Rpdj4nK2x0KCIiLCJmaWxlLXByZXZpZXctcGF0aCIpKyc8L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJmaWxlLXByZXZpZXctdG9vbGJhciI+PC9kaXY+PGJ1dHRvbiBjbGFzcz0iZmlsZS1wcmV2aWV3LWNsb3NlIiB0aXRsZT0iXHU1MTczXHU5NUVEIChFc2MpIiBhcmlhLWxhYmVsPSJcdTUxNzNcdTk1RUQiPicrTWUoIngiLHtzaXplOjE4fSkrJzwvYnV0dG9uPjwvZGl2PjxkaXYgY2xhc3M9ImZpbGUtcHJldmlldy1ib2R5Ij48ZGl2IGNsYXNzPSJmaWxlLXByZXZpZXctbG9hZGluZyI+XHU1MkEwXHU4RjdEXHU5ODg0XHU4OUM4XHUyMDI2PC9kaXY+PC9kaXY+PC9kaXY+Jyxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHQpO3ZhciBuPXQucXVlcnlTZWxlY3RvcigiLmZpbGUtcHJldmlldy1jbG9zZSIpLGk9ZnVuY3Rpb24oKXtpZihPJiZPLmRpcnR5JiZ0eXBlb2YgbG49PSJmdW5jdGlvbiIpe2xuKHt0eXBlOiJ3YXJuaW5nIix0aXRsZToiXHU2NTNFXHU1RjAzXHU2NzJBXHU0RkREXHU1QjU4XHU3Njg0XHU0RkVFXHU2NTM5XHVGRjFGIixtZXNzYWdlOiJcdTVGNTNcdTUyNERcdTY1ODdcdTRFRjZcdTY3MDlcdTY3MkFcdTRGRERcdTVCNThcdTc2ODRcdTY1MzlcdTUyQThcdUZGMENcdTUxNzNcdTk1RURcdTU0MEVcdTRGMUFcdTRFMjJcdTU5MzFcdTMwMDIiLGJ1dHRvbnM6W3tsYWJlbDoiXHU3RUU3XHU3RUVEXHU3RjE2XHU4RjkxIix2YWx1ZTohMSxraW5kOiJnaG9zdCJ9LHtsYWJlbDoiXHU2NTNFXHU1RjAzXHU0RkVFXHU2NTM5Iix2YWx1ZTohMCxraW5kOiJkYW5nZXIiLGF1dG9mb2N1czohMH1dLGNhbmNlbFZhbHVlOiExfSkudGhlbihmdW5jdGlvbihkKXtkJiZhKCl9KTtyZXR1cm59YSgpfSxhPWZ1bmN0aW9uKCl7dC5yZW1vdmUoKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIix1KSxPPW51bGx9O24uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGkpLHQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKGQpe2QudGFyZ2V0PT09dCYmaSgpfSk7dmFyIHU9ZnVuY3Rpb24oZCl7aWYoKGQua2V5PT09InMifHxkLmtleT09PSJTIikmJihkLmN0cmxLZXl8fGQubWV0YUtleSkmJk8mJk8uZWRpdGluZyl7ZC5wcmV2ZW50RGVmYXVsdCgpLFF1KCk7cmV0dXJufWlmKGQua2V5PT09IkVzY2FwZSIpe2lmKE8mJk8uZWRpdGluZyl7ZC5wcmV2ZW50RGVmYXVsdCgpLFl1KCk7cmV0dXJufWkoKTtyZXR1cm59TyYmKGQudGFyZ2V0JiYoZC50YXJnZXQudGFnTmFtZT09PSJJTlBVVCJ8fGQudGFyZ2V0LnRhZ05hbWU9PT0iVEVYVEFSRUEiKXx8Ty5lZGl0aW5nfHwoZC5rZXk9PT0iQXJyb3dMZWZ0Ij8oZC5wcmV2ZW50RGVmYXVsdCgpLFZ1KC0xKSk6ZC5rZXk9PT0iQXJyb3dSaWdodCImJihkLnByZXZlbnREZWZhdWx0KCksVnUoMSkpKSl9O2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLHUpLE89e292ZXJsYXk6dCxjbG9zZTppLHBhdGg6ZSxkYXRhOm51bGwsZWRpdGluZzohMSxkaXJ0eTohMX19dmFyIGY9dC5xdWVyeVNlbGVjdG9yKCIuZmlsZS1wcmV2aWV3LXBhdGgiKTtidShmLGUpLGZldGNoKCIvYXBpL2ZpbGUtcHJldmlldz9wYXRoPSIrZW5jb2RlVVJJQ29tcG9uZW50KGUpLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihkKXtyZXR1cm4gZC5qc29uKCkudGhlbihmdW5jdGlvbih2KXtyZXR1cm57b2s6ZC5vayxzdGF0dXM6ZC5zdGF0dXMsZGF0YTp2fX0pfSkudGhlbihmdW5jdGlvbihkKXt2YXIgdj10LnF1ZXJ5U2VsZWN0b3IoIi5maWxlLXByZXZpZXctYm9keSIpO2lmKCFkLm9rfHxkLmRhdGEmJmQuZGF0YS5lcnJvcil7dmFyIGg9ZC5kYXRhJiZkLmRhdGEuZXJyb3J8fCJcdTUyQTBcdThGN0RcdTU5MzFcdThEMjUiO2Quc3RhdHVzPT09NDEzJiZkLmRhdGEmJmQuZGF0YS5zaXplJiYoaCs9Ilx1RkYwOFx1NjU4N1x1NEVGNlx1NTkyN1x1NUMwRlx1RkYxQSIrSG4oZC5kYXRhLnNpemUpKyJcdUZGMDkiKSx2LmlubmVySFRNTD0nPGRpdiBjbGFzcz0iZmlsZS1wcmV2aWV3LWVycm9yIj48c3BhbiBjbGFzcz0icHJldmlldy1lcnJvci1pY29uIj5cdTI2QTA8L3NwYW4+PHNwYW4+JytwKGgpKyI8L3NwYW4+PC9kaXY+IixkLnN0YXR1cz09PTQxMyYmZWEodCx7a2luZDoiYmluYXJ5IixwYXRoOmUsbmFtZTplLnNwbGl0KCIvIikucG9wKCl8fGUsZXh0OiIiLHNpemU6ZC5kYXRhJiZkLmRhdGEuc2l6ZXx8MH0pO3JldHVybn1PLmRhdGE9ZC5kYXRhLEt1KHQsZC5kYXRhKX0pLmNhdGNoKGZ1bmN0aW9uKCl7dmFyIGQ9dC5xdWVyeVNlbGVjdG9yKCIuZmlsZS1wcmV2aWV3LWJvZHkiKTtkLmlubmVySFRNTD0nPGRpdiBjbGFzcz0iZmlsZS1wcmV2aWV3LWVycm9yIj48c3BhbiBjbGFzcz0icHJldmlldy1lcnJvci1pY29uIj5cdTI2QTA8L3NwYW4+PHNwYW4+XHU1MkEwXHU4RjdEXHU5ODg0XHU4OUM4XHU1OTMxXHU4RDI1PC9zcGFuPjwvZGl2Pid9KX1mdW5jdGlvbiBWdShlKXtpZihPKXt2YXIgdD0oci5hbGxGaWxlc3x8W10pLmZpbHRlcihmdW5jdGlvbihvKXtyZXR1cm4gby50eXBlPT09ImZpbGUifSk7aWYodC5sZW5ndGgpe2Zvcih2YXIgbj1PLnBhdGgsaT0tMSxhPTA7YTx0Lmxlbmd0aDthKyspaWYodFthXS5wYXRoPT09bil7aT1hO2JyZWFrfWlmKCEoaTwwKSl7dmFyIHU9KGkrZSt0Lmxlbmd0aCkldC5sZW5ndGgscz10W3VdLnBhdGg7cyYmcyE9PW4mJlFyKHMpfX19fWZ1bmN0aW9uIEt1KGUsdCl7dmFyIG49ZS5xdWVyeVNlbGVjdG9yKCIuZmlsZS1wcmV2aWV3LWZpbGVuYW1lIik7biYmKG4udGV4dENvbnRlbnQ9dC5uYW1lKTt2YXIgaT1lLnF1ZXJ5U2VsZWN0b3IoIi5maWxlLXByZXZpZXctaWNvbiIpO2kmJihpLnRleHRDb250ZW50PU51KHtuYW1lOnQubmFtZSx0eXBlOiJmaWxlIn0pKTt2YXIgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5maWxlLXByZXZpZXctdGl0bGUiKSx1PWUucXVlcnlTZWxlY3RvcigiLmZpbGUtcHJldmlldy1sYW5nIik7dSYmdS5yZW1vdmUoKTt2YXIgcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7cy5jbGFzc05hbWU9ImZpbGUtcHJldmlldy1sYW5nIjt2YXIgbz17aW1hZ2U6Ilx1NTZGRVx1NzI0NyIscGRmOiJQREYiLHZpZGVvOiJcdTg5QzZcdTk4OTEiLGF1ZGlvOiJcdTk3RjNcdTk4OTEiLGJpbmFyeToiXHU0RThDXHU4RkRCXHU1MjM2In07dC5raW5kPT09InRleHQiP3MudGV4dENvbnRlbnQ9dC5sYW5nfHwodC5leHR8fCIiKS5yZXBsYWNlKCIuIiwiIil8fCJ0ZXh0IjpzLnRleHRDb250ZW50PW9bdC5raW5kXXx8KHQuZXh0fHwiIikucmVwbGFjZSgiLiIsIiIpfHx0LmtpbmQsYSYmYS5hcHBlbmRDaGlsZChzKSxlYShlLHQpO3ZhciBsPWUucXVlcnlTZWxlY3RvcigiLmZpbGUtcHJldmlldy1ib2R5Iik7bC5pbm5lckhUTUw9IiIsbC5jbGFzc0xpc3QucmVtb3ZlKCJraW5kLXRleHQiLCJraW5kLWltYWdlIiwia2luZC1wZGYiLCJraW5kLXZpZGVvIiwia2luZC1hdWRpbyIsImtpbmQtYmluYXJ5IiksbC5jbGFzc0xpc3QuYWRkKCJraW5kLSIrKHQua2luZHx8InRleHQiKSksdC5raW5kPT09ImltYWdlIj9oYyhsLHQpOnQua2luZD09PSJwZGYiP3ljKGwsdCk6dC5raW5kPT09InZpZGVvIj9iYyhsLHQpOnQua2luZD09PSJhdWRpbyI/RWMobCx0KTp0LmtpbmQ9PT0iYmluYXJ5Ij9GYyhsLHQpOnQubGFuZz09PSJtYXJrZG93biJ8fC9cLihtZHxtYXJrZG93bnxtZHgpJC9pLnRlc3QodC5uYW1lfHwiIik/bC5pbm5lckhUTUw9JzxkaXYgY2xhc3M9Im1hcmtkb3duLXByZXZpZXciPicrRGModC5jb250ZW50fHwiIikrIjwvZGl2PiI6Z2MobCx0KX1mdW5jdGlvbiBnYyhlLHQpe3ZhciBuPVh1KHQuY29udGVudHx8IiIsdC5sYW5nKSxpPW4uc3BsaXQoYApgKSxhPWkubWFwKGZ1bmN0aW9uKHUscyl7cmV0dXJuIHMrMX0pO2UuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJjb2RlLXByZXZpZXctd3JhcHBlciI+PGRpdiBjbGFzcz0iY29kZS1wcmV2aWV3LWxpbmVzIj4nK2Euam9pbihgCmApKyc8L2Rpdj48ZGl2IGNsYXNzPSJjb2RlLXByZXZpZXctY29udGVudCI+PHByZT4nK2kuam9pbihgCmApKyI8L3ByZT48L2Rpdj48L2Rpdj4ifWZ1bmN0aW9uIGhjKGUsdCl7dmFyIG49Ii9hcGkvZmlsZS1yYXc/cGF0aD0iK2VuY29kZVVSSUNvbXBvbmVudCh0LnBhdGgpO2UuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJpbWFnZS1wcmV2aWV3LXdyYXBwZXIiPjxpbWcgY2xhc3M9ImltYWdlLXByZXZpZXctaW1nIiBzcmM9IicrbisnIiBhbHQ9IicrcCh0Lm5hbWUpKyciIC8+PC9kaXY+Jzt2YXIgaT1lLnF1ZXJ5U2VsZWN0b3IoIi5pbWFnZS1wcmV2aWV3LWltZyIpO2lmKGkpe3ZhciBhPSExO2kuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7YT0hYSxpLmNsYXNzTGlzdC50b2dnbGUoInpvb21lZCIsYSl9KX19ZnVuY3Rpb24geWMoZSx0KXt2YXIgbj0iL2FwaS9maWxlLXJhdz9wYXRoPSIrZW5jb2RlVVJJQ29tcG9uZW50KHQucGF0aCk7ZS5pbm5lckhUTUw9JzxpZnJhbWUgY2xhc3M9InBkZi1wcmV2aWV3LWZyYW1lIiBzcmM9IicrbisnIiB0aXRsZT0iJytwKHQubmFtZSkrJyI+PC9pZnJhbWU+J31mdW5jdGlvbiBiYyhlLHQpe3ZhciBuPSIvYXBpL2ZpbGUtcmF3P3BhdGg9IitlbmNvZGVVUklDb21wb25lbnQodC5wYXRoKTtlLmlubmVySFRNTD0nPGRpdiBjbGFzcz0ibWVkaWEtcHJldmlldy13cmFwcGVyIj48dmlkZW8gY2xhc3M9Im1lZGlhLXByZXZpZXctdmlkZW8iIGNvbnRyb2xzIHByZWxvYWQ9Im1ldGFkYXRhIiBzcmM9IicrbisnIj5cdTYwQThcdTc2ODRcdTZENEZcdTg5QzhcdTU2NjhcdTRFMERcdTY1MkZcdTYzMDEgdmlkZW8gXHU2ODA3XHU3QjdFXHUzMDAyPC92aWRlbz48ZGl2IGNsYXNzPSJtZWRpYS1wcmV2aWV3LW1ldGEiPicrcChIbih0LnNpemUpKSsiPC9kaXY+PC9kaXY+In1mdW5jdGlvbiBFYyhlLHQpe3ZhciBuPSIvYXBpL2ZpbGUtcmF3P3BhdGg9IitlbmNvZGVVUklDb21wb25lbnQodC5wYXRoKTtlLmlubmVySFRNTD0nPGRpdiBjbGFzcz0ibWVkaWEtcHJldmlldy13cmFwcGVyIGF1ZGlvIj48ZGl2IGNsYXNzPSJtZWRpYS1wcmV2aWV3LWljb24iPlx1ezFGM0I1fTwvZGl2PjxkaXYgY2xhc3M9Im1lZGlhLXByZXZpZXctbmFtZSI+JytwKHQubmFtZSkrJzwvZGl2PjxhdWRpbyBjbGFzcz0ibWVkaWEtcHJldmlldy1hdWRpbyIgY29udHJvbHMgcHJlbG9hZD0ibWV0YWRhdGEiIHNyYz0iJytuKyciPlx1NjBBOFx1NzY4NFx1NkQ0Rlx1ODlDOFx1NTY2OFx1NEUwRFx1NjUyRlx1NjMwMSBhdWRpbyBcdTY4MDdcdTdCN0VcdTMwMDI8L2F1ZGlvPjxkaXYgY2xhc3M9Im1lZGlhLXByZXZpZXctbWV0YSI+JytwKEhuKHQuc2l6ZSkpKyI8L2Rpdj48L2Rpdj4ifWZ1bmN0aW9uIEZjKGUsdCl7dmFyIG49Ii9hcGkvZmlsZS1yYXc/ZG93bmxvYWQ9MSZwYXRoPSIrZW5jb2RlVVJJQ29tcG9uZW50KHQucGF0aCk7ZS5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImJpbmFyeS1wcmV2aWV3LWNhcmQiPjxkaXYgY2xhc3M9ImJpbmFyeS1wcmV2aWV3LWljb24iPlx1ezFGNEU2fTwvZGl2PjxkaXYgY2xhc3M9ImJpbmFyeS1wcmV2aWV3LW5hbWUiPicrcCh0Lm5hbWUpKyc8L2Rpdj48ZGl2IGNsYXNzPSJiaW5hcnktcHJldmlldy1tZXRhIj48c3Bhbj4nK3AoKHQuZXh0fHwiIikucmVwbGFjZSgvXlwuLywiIil8fCJcdTY3MkFcdTc3RTVcdTY4M0NcdTVGMEYiKSsiPC9zcGFuPjxzcGFuPlx4Qjc8L3NwYW4+PHNwYW4+IitwKEhuKHQuc2l6ZSkpKyI8L3NwYW4+PC9kaXY+IitsdCh0LnBhdGgsImJpbmFyeS1wcmV2aWV3LXBhdGgiKSsnPGRpdiBjbGFzcz0iYmluYXJ5LXByZXZpZXctYWN0aW9ucyI+PGEgY2xhc3M9ImJpbmFyeS1wcmV2aWV3LWJ0biIgaHJlZj0iJytuKyciIGRvd25sb2FkPSInK3AodC5uYW1lKSsnIj5cdTRFMEJcdThGN0RcdTY1ODdcdTRFRjY8L2E+PGJ1dHRvbiBjbGFzcz0iYmluYXJ5LXByZXZpZXctYnRuIiB0eXBlPSJidXR0b24iIGRhdGEtYWN0aW9uPSJ2aWV3LWNhdCI+XHU1NzI4XHU3RUM4XHU3QUVGXHU0RTJEXHU2N0U1XHU3NzBCPC9idXR0b24+PC9kaXY+PC9kaXY+JyxLdChlKTt2YXIgaT1lLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLWFjdGlvbj0idmlldy1jYXQiXScpO2kmJmkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7WmkoJ2NhdCAtLSAiJyt0LnBhdGgrJyInKSYmRHQoIlx1NTQ3RFx1NEVFNFx1NURGMlx1N0M5OFx1OEQzNFx1NTIzMFx1OEY5M1x1NTE2NVx1Njg0NiIpfSl9ZnVuY3Rpb24gZWEoZSx0KXt2YXIgbj1lLnF1ZXJ5U2VsZWN0b3IoIi5maWxlLXByZXZpZXctdG9vbGJhciIpO2lmKG4pe2lmKG4uaW5uZXJIVE1MPSIiLG4uY2xhc3NMaXN0LnJlbW92ZSgiZWRpdGluZyIpLE8mJk8uZWRpdGluZyl7bi5jbGFzc0xpc3QuYWRkKCJlZGl0aW5nIiksZHIoZSx0KTtyZXR1cm59dmFyIGk9W107dC5raW5kPT09InRleHQiJiZpLnB1c2goe2xhYmVsOiJcdTdGMTZcdThGOTFcdTY1ODdcdTRFRjYgKEUpIixpY29uOk1lKCJlZGl0IikscHJpbWFyeTohMCxhY3Rpb246ZnVuY3Rpb24oKXt3YygpfX0pLGkucHVzaCh7bGFiZWw6Ilx1NTkwRFx1NTIzNlx1OERFRlx1NUY4NCIsaWNvbjpNZSgiY2xpcGJvYXJkIiksYWN0aW9uOmZ1bmN0aW9uKCl7WXIodC5wYXRoKS50aGVuKGZ1bmN0aW9uKCl7RHQoIlx1NURGMlx1NTkwRFx1NTIzNlx1OERFRlx1NUY4NCIpfSl9fSksaS5wdXNoKHtsYWJlbDoiXHU3Qzk4XHU4RDM0XHU1MjMwXHU4RjkzXHU1MTY1XHU2ODQ2IixpY29uOk1lKCJzZW5kLXRvLWlucHV0IiksYWN0aW9uOmZ1bmN0aW9uKCl7WmkodC5wYXRoKSYmRHQoIlx1NURGMlx1N0M5OFx1OEQzNFx1NTIzMFx1OEY5M1x1NTE2NVx1Njg0NiIpfX0pLGkucHVzaCh7bGFiZWw6Ilx1NEUwQlx1OEY3RCIsaWNvbjpNZSgiZG93bmxvYWQiKSxhY3Rpb246ZnVuY3Rpb24oKXt2YXIgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7YS5ocmVmPSIvYXBpL2ZpbGUtcmF3P2Rvd25sb2FkPTEmcGF0aD0iK2VuY29kZVVSSUNvbXBvbmVudCh0LnBhdGgpLGEuZG93bmxvYWQ9dC5uYW1lfHwiIixkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGEpLGEuY2xpY2soKSxhLnJlbW92ZSgpfX0pLHQua2luZD09PSJ0ZXh0IiYmKGkucHVzaCh7bGFiZWw6Ilx1NTkwRFx1NTIzNlx1NTE2OFx1OTBFOFx1NTE4NVx1NUJCOSIsaWNvbjpNZSgiY29weSIpLGFjdGlvbjpmdW5jdGlvbigpe1lyKHQuY29udGVudHx8IiIpLnRoZW4oZnVuY3Rpb24oKXtEdCgiXHU1REYyXHU1OTBEXHU1MjM2XHU1MTg1XHU1QkI5Iil9KX19KSxpLnB1c2goe2xhYmVsOiJcdTUyMDdcdTYzNjJcdTgxRUFcdTUyQThcdTYzNjJcdTg4NEMiLGljb246TWUoIndyYXAtdGV4dCIpLHRvZ2dsZUNsYXNzOiJ0b29sYmFyLWFjdGl2ZSIsZ2V0SW5pdGlhbDpmdW5jdGlvbigpe3ZhciBhPWUucXVlcnlTZWxlY3RvcigiLmNvZGUtcHJldmlldy1jb250ZW50IHByZSIpO3JldHVybiBhJiZhLmNsYXNzTGlzdC5jb250YWlucygid3JhcCIpfSxhY3Rpb246ZnVuY3Rpb24oYSl7dmFyIHU9ZS5xdWVyeVNlbGVjdG9yKCIuY29kZS1wcmV2aWV3LWNvbnRlbnQgcHJlIik7dSYmKHUuY2xhc3NMaXN0LnRvZ2dsZSgid3JhcCIpLGEuY2xhc3NMaXN0LnRvZ2dsZSgidG9vbGJhci1hY3RpdmUiLHUuY2xhc3NMaXN0LmNvbnRhaW5zKCJ3cmFwIikpKX19KSxpLnB1c2goe2tpbmQ6Imdyb3VwIixjbGFzc05hbWU6InRvb2xiYXItZ3JvdXAtZm9udHNpemUiLGNoaWxkcmVuOlt7bGFiZWw6Ilx1N0YyOVx1NUMwRlx1NUI1N1x1NTNGNyIsaWNvbjpNZSgibWludXMiKSxhY3Rpb246ZnVuY3Rpb24oKXskdShlLC0xKX19LHtraW5kOiJsYWJlbCIsaWNvbjpNZSgidHlwZSIpLGxhYmVsOiJcdTVCNTdcdTUzRjcifSx7bGFiZWw6Ilx1NjUzRVx1NTkyN1x1NUI1N1x1NTNGNyIsaWNvbjpNZSgicGx1cyIpLGFjdGlvbjpmdW5jdGlvbigpeyR1KGUsMSl9fV19KSksSnUobixpLGUpfX1mdW5jdGlvbiBKdShlLHQsbil7dC5mb3JFYWNoKGZ1bmN0aW9uKGkpe2lmKGkua2luZD09PSJncm91cCIpe3ZhciBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2EuY2xhc3NOYW1lPSJmaWxlLXByZXZpZXctdG9vbGJhci1ncm91cCIrKGkuY2xhc3NOYW1lPyIgIitpLmNsYXNzTmFtZToiIiksaS5jaGlsZHJlbi5mb3JFYWNoKGZ1bmN0aW9uKHUpe2lmKHUua2luZD09PSJsYWJlbCIpe3ZhciBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTtzLmNsYXNzTmFtZT0iZmlsZS1wcmV2aWV3LXRvb2xiYXItZ3JvdXBsYWJlbCIscy50aXRsZT11LmxhYmVsfHwiIixzLmlubmVySFRNTD11Lmljb258fCIiLGEuYXBwZW5kQ2hpbGQocyk7cmV0dXJufWEuYXBwZW5kQ2hpbGQoR3UodSkpfSksZS5hcHBlbmRDaGlsZChhKTtyZXR1cm59ZS5hcHBlbmRDaGlsZChHdShpKSl9KX1mdW5jdGlvbiBHdShlKXt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJidXR0b24iKTtyZXR1cm4gdC50eXBlPSJidXR0b24iLHQuY2xhc3NOYW1lPSJmaWxlLXByZXZpZXctdG9vbGJhci1idG4iLGUucHJpbWFyeSYmdC5jbGFzc0xpc3QuYWRkKCJwcmltYXJ5IiksZS5kYW5nZXImJnQuY2xhc3NMaXN0LmFkZCgiZGFuZ2VyIiksdC50aXRsZT1lLmxhYmVsLHQuc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIixlLmxhYmVsKSx0LmlubmVySFRNTD0nPHNwYW4gY2xhc3M9InRvb2xiYXItaWNvbiI+JysoZS5pY29ufHwiIikrIjwvc3Bhbj4iKyhlLnRleHQ/JzxzcGFuIGNsYXNzPSJ0b29sYmFyLXRleHQiPicrcChlLnRleHQpKyI8L3NwYW4+IjoiIiksZS5nZXRJbml0aWFsJiZlLmdldEluaXRpYWwoKSYmdC5jbGFzc0xpc3QuYWRkKCJ0b29sYmFyLWFjdGl2ZSIpLHQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKG4pe24uc3RvcFByb3BhZ2F0aW9uKCksdHlwZW9mIGUuYWN0aW9uPT0iZnVuY3Rpb24iJiZlLmFjdGlvbih0KX0pLHR9ZnVuY3Rpb24gZHIoZSx0KXt2YXIgbj1lLnF1ZXJ5U2VsZWN0b3IoIi5maWxlLXByZXZpZXctdG9vbGJhciIpO2lmKG4pe24uaW5uZXJIVE1MPSIiO3ZhciBpPU8mJk8uc2F2aW5nLGE9W3tsYWJlbDoiXHU0RkREXHU1QjU4IChDdHJsK1MpIixpY29uOk1lKCJzYXZlIiksdGV4dDoiXHU0RkREXHU1QjU4IixwcmltYXJ5OiEwLGFjdGlvbjpmdW5jdGlvbigpe1F1KCl9fSx7bGFiZWw6Ilx1NjRBNFx1OTUwMFx1NjUzOVx1NTJBOCIsaWNvbjpNZSgicm90YXRlLWNjdyIpLGFjdGlvbjpmdW5jdGlvbigpe0NjKCl9fSx7bGFiZWw6Ilx1OTAwMFx1NTFGQVx1N0YxNlx1OEY5MSAoRXNjKSIsaWNvbjpNZSgieCIpLGFjdGlvbjpmdW5jdGlvbigpe1l1KCl9fV07SnUobixhLGUpLGkmJm4ucXVlcnlTZWxlY3RvckFsbCgiLmZpbGUtcHJldmlldy10b29sYmFyLWJ0biIpLmZvckVhY2goZnVuY3Rpb24odSl7dS5kaXNhYmxlZD0hMH0pfX1mdW5jdGlvbiB3Yygpe2lmKCEoIU98fCFPLmRhdGEpKXt2YXIgZT1PLmRhdGE7aWYoZS5raW5kPT09InRleHQiKXtPLmVkaXRpbmc9ITAsTy5kaXJ0eT0hMSxPLm9yaWdpbmFsQ29udGVudD1lLmNvbnRlbnR8fCIiO3ZhciB0PU8ub3ZlcmxheSxuPXQucXVlcnlTZWxlY3RvcigiLmZpbGUtcHJldmlldy1ib2R5Iik7aWYobil7bi5jbGFzc0xpc3QuYWRkKCJlZGl0aW5nIiksbi5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImNvZGUtZWRpdG9yLXdyYXBwZXIiPjx0ZXh0YXJlYSBjbGFzcz0iY29kZS1lZGl0b3ItdGV4dGFyZWEiIHNwZWxsY2hlY2s9ImZhbHNlIiBhdXRvY29tcGxldGU9Im9mZiIgYXV0b2NvcnJlY3Q9Im9mZiIgYXV0b2NhcGl0YWxpemU9Im9mZiIgd3JhcD0ib2ZmIj48L3RleHRhcmVhPjwvZGl2Pic7dmFyIGk9bi5xdWVyeVNlbGVjdG9yKCIuY29kZS1lZGl0b3ItdGV4dGFyZWEiKTtpJiYoaS52YWx1ZT1lLmNvbnRlbnR8fCIiLGkuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLGZ1bmN0aW9uKCl7dmFyIGE9aS52YWx1ZSE9PShPLm9yaWdpbmFsQ29udGVudHx8IiIpO2EhPT1PLmRpcnR5JiYoTy5kaXJ0eT1hLGZyKCkpfSksaS5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixmdW5jdGlvbihhKXtpZihhLmtleT09PSJUYWIiKXthLnByZXZlbnREZWZhdWx0KCk7dmFyIHU9aS5zZWxlY3Rpb25TdGFydCxzPWkuc2VsZWN0aW9uRW5kLG89IiAgIjtpLnZhbHVlPWkudmFsdWUuc2xpY2UoMCx1KStvK2kudmFsdWUuc2xpY2UocyksaS5zZWxlY3Rpb25TdGFydD1pLnNlbGVjdGlvbkVuZD11K28ubGVuZ3RoLGkuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoImlucHV0IikpfX0pLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtpLmZvY3VzKCksaS5zZXRTZWxlY3Rpb25SYW5nZSgwLDApLGkuc2Nyb2xsVG9wPTB9LDMwKSksZWEodCxlKSxmcigpfX19fWZ1bmN0aW9uIFl1KCl7aWYoISghT3x8IU8uZWRpdGluZykpe3ZhciBlPWZ1bmN0aW9uKCl7Ty5lZGl0aW5nPSExLE8uZGlydHk9ITE7dmFyIHQ9Ty5vdmVybGF5LG49dC5xdWVyeVNlbGVjdG9yKCIuZmlsZS1wcmV2aWV3LWJvZHkiKTtuJiZuLmNsYXNzTGlzdC5yZW1vdmUoImVkaXRpbmciKSxLdSh0LE8uZGF0YSksZnIoKX07aWYoTy5kaXJ0eSYmdHlwZW9mIGxuPT0iZnVuY3Rpb24iKXtsbih7dHlwZToid2FybmluZyIsdGl0bGU6Ilx1NjUzRVx1NUYwM1x1NjcyQVx1NEZERFx1NUI1OFx1NzY4NFx1NEZFRVx1NjUzOVx1RkYxRiIsbWVzc2FnZToiXHU1RjUzXHU1MjREXHU2NTg3XHU0RUY2XHU2NzA5XHU2NzJBXHU0RkREXHU1QjU4XHU3Njg0XHU2NTM5XHU1MkE4XHVGRjBDXHU5MDAwXHU1MUZBXHU3RjE2XHU4RjkxXHU1NDBFXHU0RjFBXHU0RTIyXHU1OTMxXHUzMDAyIixidXR0b25zOlt7bGFiZWw6Ilx1N0VFN1x1N0VFRFx1N0YxNlx1OEY5MSIsdmFsdWU6ITEsa2luZDoiZ2hvc3QifSx7bGFiZWw6Ilx1NjUzRVx1NUYwM1x1NEZFRVx1NjUzOSIsdmFsdWU6ITAsa2luZDoiZGFuZ2VyIixhdXRvZm9jdXM6ITB9XSxjYW5jZWxWYWx1ZTohMX0pLnRoZW4oZnVuY3Rpb24odCl7dCYmZSgpfSk7cmV0dXJufWUoKX19ZnVuY3Rpb24gQ2MoKXtpZighKCFPfHwhTy5lZGl0aW5nKSl7dmFyIGU9Ty5vdmVybGF5LHQ9ZS5xdWVyeVNlbGVjdG9yKCIuY29kZS1lZGl0b3ItdGV4dGFyZWEiKTt0JiYodC52YWx1ZT1PLm9yaWdpbmFsQ29udGVudHx8IiIsTy5kaXJ0eT0hMSxmcigpLHQuZm9jdXMoKSl9fWZ1bmN0aW9uIFF1KCl7aWYoISghT3x8IU8uZWRpdGluZykmJiFPLnNhdmluZyl7dmFyIGU9Ty5vdmVybGF5LHQ9ZS5xdWVyeVNlbGVjdG9yKCIuY29kZS1lZGl0b3ItdGV4dGFyZWEiKTtpZih0KXt2YXIgbj10LnZhbHVlO2lmKG49PT0oTy5vcmlnaW5hbENvbnRlbnR8fCIiKSl7RHQoIlx1NkNBMVx1NjcwOVx1NjUzOVx1NTJBOCIpO3JldHVybn1PLnNhdmluZz0hMCxkcihlLE8uZGF0YSksZmV0Y2goIi9hcGkvZmlsZS13cml0ZSIse21ldGhvZDoiUE9TVCIsY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGJvZHk6SlNPTi5zdHJpbmdpZnkoe3BhdGg6Ty5wYXRoLGNvbnRlbnQ6bn0pfSkudGhlbihmdW5jdGlvbihpKXtyZXR1cm4gaS5qc29uKCkudGhlbihmdW5jdGlvbihhKXtyZXR1cm57b2s6aS5vayxzdGF0dXM6aS5zdGF0dXMsZGF0YTphfX0pfSkudGhlbihmdW5jdGlvbihpKXtpZihPLnNhdmluZz0hMSwhaS5va3x8aS5kYXRhJiZpLmRhdGEuZXJyb3Ipe3ZhciBhPWkuZGF0YSYmaS5kYXRhLmVycm9yfHwiXHU0RkREXHU1QjU4XHU1OTMxXHU4RDI1ICgiK2kuc3RhdHVzKyIpIjtEdChhKSxkcihlLE8uZGF0YSk7cmV0dXJufWlmKE8uZGF0YS5jb250ZW50PW4sTy5kYXRhLnNpemU9aS5kYXRhJiZpLmRhdGEuc2l6ZXx8bi5sZW5ndGgsTy5vcmlnaW5hbENvbnRlbnQ9bixPLmRpcnR5PSExLER0KCJcdTVERjJcdTRGRERcdTVCNTgiKSxmcigpLGRyKGUsTy5kYXRhKSx0eXBlb2YgT3Q9PSJmdW5jdGlvbiIpdHJ5e090KCl9Y2F0Y2h7fX0pLmNhdGNoKGZ1bmN0aW9uKGkpe08uc2F2aW5nPSExLER0KCJcdTRGRERcdTVCNThcdTU5MzFcdThEMjVcdUZGMUEiKyhpJiZpLm1lc3NhZ2U/aS5tZXNzYWdlOiJcdTdGNTFcdTdFRENcdTk1MTlcdThCRUYiKSksZHIoZSxPLmRhdGEpfSl9fX1mdW5jdGlvbiBmcigpe2lmKE8pe3ZhciBlPU8ub3ZlcmxheTtpZihlKXt2YXIgdD1lLnF1ZXJ5U2VsZWN0b3IoIi5maWxlLXByZXZpZXctbmFtZS1yb3ciKTtpZih0KXt2YXIgbj10LnF1ZXJ5U2VsZWN0b3IoIi5maWxlLXByZXZpZXctZGlydHkiKTtpZihPLmRpcnR5KXtpZighbil7dmFyIGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpO2kuY2xhc3NOYW1lPSJmaWxlLXByZXZpZXctZGlydHkiLGkudGl0bGU9Ilx1NjcwOVx1NjcyQVx1NEZERFx1NUI1OFx1NzY4NFx1NEZFRVx1NjUzOSIsaS50ZXh0Q29udGVudD0iXHUyNUNGIFx1NjcyQVx1NEZERFx1NUI1OCIsdC5hcHBlbmRDaGlsZChpKX19ZWxzZSBuJiZuLnJlbW92ZSgpfX19fWZ1bmN0aW9uICR1KGUsdCl7dmFyIG49ZS5xdWVyeVNlbGVjdG9yKCIuY29kZS1wcmV2aWV3LWNvbnRlbnQgcHJlIiksaT1lLnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLXByZXZpZXctbGluZXMiKTtpZihuKXt2YXIgYT1wYXJzZUZsb2F0KGdldENvbXB1dGVkU3R5bGUobikuZm9udFNpemUpfHwxMyx1PU1hdGgubWF4KDEwLE1hdGgubWluKDIyLGErdCkpO24uc3R5bGUuZm9udFNpemU9dSsicHgiLGkmJihpLnN0eWxlLmZvbnRTaXplPXUrInB4Iil9fWZ1bmN0aW9uIFh1KGUsdCl7dmFyIG49ZS5yZXBsYWNlKC8mL2csIiZhbXA7IikucmVwbGFjZSgvPC9nLCImbHQ7IikucmVwbGFjZSgvPi9nLCImZ3Q7IiksaT1CYygpO2lmKCFpKXJldHVybiBuO3ZhciBhPVtdO2Zvcih2YXIgdSBpbiBpKXt2YXIgcz1pW3VdO3MmJnMucGF0dGVybiYmYS5wdXNoKHtwYXR0ZXJuOnMucGF0dGVybixjbHM6cy5jbHMscHJpb3JpdHk6cy5wcmlvcml0eXx8NX0pfWEuc29ydChmdW5jdGlvbihjLGYpe3JldHVybiBmLnByaW9yaXR5LWMucHJpb3JpdHl9KTt2YXIgbz1hLm1hcChmdW5jdGlvbihjKXtyZXR1cm4iKCIrYy5wYXR0ZXJuLnNvdXJjZSsiKSJ9KSxsPW5ldyBSZWdFeHAoby5qb2luKCJ8IiksImdtIik7cmV0dXJuIG4ucmVwbGFjZShsLGZ1bmN0aW9uKGMpe2Zvcih2YXIgZj0wO2Y8YS5sZW5ndGg7ZisrKXt2YXIgZD1hW2ZdLHY9bmV3IFJlZ0V4cCgiXiIrZC5wYXR0ZXJuLnNvdXJjZSsiJCIsImdtIik7aWYodi50ZXN0KGMpKXJldHVybic8c3BhbiBjbGFzcz0iJytkLmNscysnIj4nK2MrIjwvc3Bhbj4ifXJldHVybiBjfSl9ZnVuY3Rpb24gQmMoKXtyZXR1cm57Y29tbWVudDp7cGF0dGVybjovXC9cLy4qfCNbXlxuXSoveSxjbHM6InN5bnRheC1jb21tZW50Iixwcmlvcml0eToxfSxzdHJpbmc6e3BhdHRlcm46LyIoPzpbXiJcXF18XFwuKSoifCcoPzpbXidcXF18XFwuKSonfGAoPzpbXmBcXF18XFwuKSpgL3ksY2xzOiJzeW50YXgtc3RyaW5nIixwcmlvcml0eToyfSxrZXl3b3JkOntwYXR0ZXJuOi9cYig/OmFzeW5jfGF3YWl0fGJyZWFrfGNhc2V8Y2F0Y2h8Y2xhc3N8Y29uc3R8Y29udGludWV8ZGVidWdnZXJ8ZGVjbGFyZXxkZWZhdWx0fGRlbGV0ZXxkb3xlbHNlfGVudW18ZXhwb3J0fGV4dGVuZHN8ZmluYWxseXxmb3J8ZnJvbXxmdW5jdGlvbnxnZXR8aWZ8aW1wbGVtZW50c3xpbXBvcnR8aW58aW5zdGFuY2VvZnxpbnRlcmZhY2V8bGV0fG1vZHVsZXxuYW1lc3BhY2V8bmV3fG51bGx8b2Z8b3ZlcnJpZGV8cHJpdmF0ZXxwcm90ZWN0ZWR8cHVibGljfHJlYWRvbmx5fHJldHVybnxzZXR8c3RhdGljfHN1cGVyfHN3aXRjaHx0aGlzfHRocm93fHRyeXx0eXBlfHR5cGVvZnx1bmRlZmluZWR8dmFyfHZvaWR8d2hpbGV8eWllbGR8YWJzdHJhY3R8YXN8YmFzZXxib29sfGJ5dGV8Y2hhcnxkZWNpbWFsfGRvdWJsZXxldmVudHxleHBsaWNpdHxleHRlcm58ZmFsc2V8Zml4ZWR8ZmxvYXR8Zm9yZWFjaHxnb3RvfGltcGxpY2l0fGlufGludHxpbnRlcm5hbHxpc3xsb2NrfGxvbmd8b2JqZWN0fG9wZXJhdG9yfG91dHxwYXJhbXN8cGFydGlhbHxyZWFkb25seXxyZWZ8c2J5dGV8c2VhbGVkfHNob3J0fHNpemVvZnxzdGFja2FsbG9jfHN0cmluZ3xzdHJ1Y3R8c3dpdGNofHRocm93fHRydWV8dHJ5fHVpbnR8dWxvbmd8dW5jaGVja2VkfHVuc2FmZXx1c2hvcnR8dXNpbmd8dmlydHVhbHx2b2xhdGlsZXx3aGVyZXx3aGlsZXx3aXRofHlpZWxkfGRlZnxlbGlmfGVsc2V8ZXhjZXB0fGV4ZWN8ZmluYWxseXxmb3J8ZnJvbXxnbG9iYWx8aWZ8aW1wb3J0fGxhbWJkYXxub25sb2NhbHxub3R8b3J8cGFzc3xwcmludHxyYWlzZXxyZXR1cm58dHJ5fHdoaWxlfHdpdGh8eWllbGR8VHJ1ZXxGYWxzZXxOb25lfGFuZHxpbnxpc3xsYW1iZGF8bm90fG9yfGZufHB1Ynx1c2V8bW9kfGltcGx8dHJhaXR8c3RydWN0fGVudW18bWF0Y2h8bG9vcHx3aGlsZXxmb3J8aWZ8ZWxzZXxyZXR1cm58c2VsZnxzdXBlcnxjcmF0ZXx3aGVyZXxhc3luY3xhd2FpdHxtb3ZlfHJlZnxtdXR8c3RhdGljfGNvbnN0fHVuc2FmZXxleHRlcm58dXNlfGFzfGltcGx8c3RydWN0fGVudW18dHlwZXxmbnxsZXR8bG9vcHxpZnxlbHNlfG1hdGNofHJldHVybnxzZWxmfFNlbGZ8bW9kfHB1YnxjcmF0ZXxtYWNyb3xkZXJpdmV8d2hlcmV8YXN5bmN8YXdhaXR8ZHlufHNlbGZ8cGFja2FnZXxmdW5jfGdvfHJldHVybnxkZWZlcnxnb3xpZnxlbHNlfHN3aXRjaHxjYXNlfGRlZmF1bHR8Zm9yfHJhbmdlfHNlbGVjdHxicmVha3xjb250aW51ZXxmYWxsdGhyb3VnaHxjb25zdHxzdHJ1Y3R8ZW51bXx0eXBlfGludGVyZmFjZXxtYXB8Y2hhbnx2YXJ8bmlsfHRydWV8ZmFsc2V8aW90YXxsZW58Y2FwfGFwcGVuZHxtYWtlfG5ld3xwYW5pY3xyZWNvdmVyfHNlbGVjdHxlbHNlfGlmfGVsaWZ8ZW5kfGZvcnxmdW5jdGlvbnxpZnxpbnxsb2NhbHxuaWx8bm90fG9yfHJlcGVhdHxyZXR1cm58dGhlbnx0cnVlfHVudGlsfHdoaWxlfGVuZHxhbmR8YmVnaW58ZG98ZW5kfGZhbHNlfGZvcnxmdW5jdGlvbnxpZnxpbnxsb2NhbHxuaWx8bm90fG9yfHJlcGVhdHxyZXR1cm58dGhlbnx0cnVlfHVudGlsfHdoaWxlKVxiL3ksY2xzOiJzeW50YXgta2V5d29yZCIscHJpb3JpdHk6M30sbnVtYmVyOntwYXR0ZXJuOi9cYig/OjB4W1xkYS1mQS1GXSt8MGJbMDFdK3wwb1swLTddK3xcZCtcLj9cZCooPzplWystXT9cZCspPylcYi95LGNsczoic3ludGF4LW51bWJlciIscHJpb3JpdHk6Mn0sZnVuY3Rpb246e3BhdHRlcm46L1xiW0EtWl1bYS16QS1aMC05XSpbYS16XVx3Kig/PVxzKlwoKS95LGNsczoic3ludGF4LWZ1bmN0aW9uIixwcmlvcml0eTo0fSx0eXBlOntwYXR0ZXJuOi9cYig/OnN0cmluZ3xudW1iZXJ8Ym9vbGVhbnx2b2lkfGFueXx1bmtub3dufG5ldmVyfG9iamVjdHxzeW1ib2x8YmlnaW50fEFycmF5fE9iamVjdHxTdHJpbmd8TnVtYmVyfEJvb2xlYW58TWFwfFNldHxXZWFrTWFwfFdlYWtTZXR8UHJvbWlzZXxFcnJvcnxUeXBlfEludGVyZmFjZXxFbnVtfENsYXNzfFN0cnVjdHxJbXBsfFRyYWl0fGZufGZuY3xmdW5jfGZ1bmN0aW9ufGRlZnxwcm9jfGZ1bnxwdWJ8c3RhdGljfGNvbnN0fGxldHx2YXJ8aW50fGZsb2F0fGRvdWJsZXxib29sfGNoYXJ8Ynl0ZXxzdHJpbmd8dTh8dTE2fHUzMnx1NjR8aTh8aTE2fGkzMnxpNjR8ZjMyfGY2NHx1c2l6ZXxpc2l6ZXxzdHJ8VmVjfEhhc2hNYXB8T3B0aW9ufFJlc3VsdHxCb3h8UmN8QXJjfENlbGx8UmVmQ2VsbClcYi95LGNsczoic3ludGF4LXR5cGUiLHByaW9yaXR5OjR9LG9wZXJhdG9yOntwYXR0ZXJuOi9bK1wtKi8lPTw+ISZ8Xn4/Ol0rfFwuXC5cLj8veSxjbHM6InN5bnRheC1vcGVyYXRvciIscHJpb3JpdHk6NX0scHVuY3R1YXRpb246e3BhdHRlcm46L1t7fVtcXSgpOyxcLl0veSxjbHM6InN5bnRheC1wdW5jdHVhdGlvbiIscHJpb3JpdHk6Nn19fWZ1bmN0aW9uIERjKGUpe2lmKCFlKXJldHVybiIiO3ZhciB0PXAoZSk7dD10LnJlcGxhY2UoL2BgYChcdyopXG4oW1xzXFNdKj8pYGBgL2csZnVuY3Rpb24oaSxhLHUpe3ZhciBzPVh1KHUudHJpbSgpLGEpLG89cy5yZXBsYWNlKC9fL2csIiYjOTU7IikucmVwbGFjZSgvXCovZywiJiM0MjsiKTtyZXR1cm4nPHByZT48Y29kZSBjbGFzcz0ibGFuZ3VhZ2UtJythKyciPicrbysiPC9jb2RlPjwvcHJlPiJ9KSx0PXQucmVwbGFjZSgvYChbXmBdKylgL2csZnVuY3Rpb24oaSxhKXtyZXR1cm4iPGNvZGU+IithLnJlcGxhY2UoL18vZywiJiM5NTsiKS5yZXBsYWNlKC9cKi9nLCImIzQyOyIpKyI8L2NvZGU+In0pLHQ9dC5yZXBsYWNlKC9eIyMjIyMjXHMrKC4qKSQvZ20sIjxoNj4kMTwvaDY+IiksdD10LnJlcGxhY2UoL14jIyMjI1xzKyguKikkL2dtLCI8aDU+JDE8L2g1PiIpLHQ9dC5yZXBsYWNlKC9eIyMjI1xzKyguKikkL2dtLCI8aDQ+JDE8L2g0PiIpLHQ9dC5yZXBsYWNlKC9eIyMjXHMrKC4qKSQvZ20sIjxoMz4kMTwvaDM+IiksdD10LnJlcGxhY2UoL14jI1xzKyguKikkL2dtLCI8aDI+JDE8L2gyPiIpLHQ9dC5yZXBsYWNlKC9eI1xzKyguKikkL2dtLCI8aDE+JDE8L2gxPiIpLHQ9dC5yZXBsYWNlKC9cKlwqXCooLis/KVwqXCpcKi9nLCI8c3Ryb25nPjxlbT4kMTwvZW0+PC9zdHJvbmc+IiksdD10LnJlcGxhY2UoL1wqXCooLis/KVwqXCovZywiPHN0cm9uZz4kMTwvc3Ryb25nPiIpLHQ9dC5yZXBsYWNlKC9cKiguKz8pXCovZywiPGVtPiQxPC9lbT4iKSx0PXQucmVwbGFjZSgvKF58W15cd10pX19fKFxTKD86W15cbl0qP1xTKT8pX19fKD8hXHcpL2csIiQxPHN0cm9uZz48ZW0+JDI8L2VtPjwvc3Ryb25nPiIpLHQ9dC5yZXBsYWNlKC8oXnxbXlx3XSlfXyhcUyg/OlteXG5dKj9cUyk/KV9fKD8hXHcpL2csIiQxPHN0cm9uZz4kMjwvc3Ryb25nPiIpLHQ9dC5yZXBsYWNlKC8oXnxbXlx3XSlfKFxTKD86W15cbl9dKj9cUyk/KV8oPyFcdykvZywiJDE8ZW0+JDI8L2VtPiIpLHQ9dC5yZXBsYWNlKC9+figuKz8pfn4vZywiPGRlbD4kMTwvZGVsPiIpLHQ9dC5yZXBsYWNlKC9cWyhbXlxdXSspXF1cKChbXildKylcKS9nLCc8YSBocmVmPSIkMiIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIiPiQxPC9hPicpLHQ9dC5yZXBsYWNlKC8hXFsoW15cXV0qKVxdXCgoW14pXSspXCkvZywnPGltZyBzcmM9IiQyIiBhbHQ9IiQxIj4nKSx0PXQucmVwbGFjZSgvXiZndDtccysoLiopJC9nbSwiPGJsb2NrcXVvdGU+JDE8L2Jsb2NrcXVvdGU+IiksdD10LnJlcGxhY2UoL14tLS0rJC9nbSwiPGhyPiIpLHQ9dC5yZXBsYWNlKC9eXCpcKlwqKyQvZ20sIjxocj4iKSx0PXQucmVwbGFjZSgvXltcLVwqXVxzKyguKikkL2dtLCI8bGk+JDE8L2xpPiIpLHQ9dC5yZXBsYWNlKC8oPGxpPi4qPFwvbGk+XG4/KSsvZywiPHVsPiQmPC91bD4iKSx0PXQucmVwbGFjZSgvXlxkK1wuXHMrKC4qKSQvZ20sIjxsaT4kMTwvbGk+IiksdD0kbyh0KTt2YXIgbj10LnNwbGl0KC9cbnsyLH0vKTtyZXR1cm4gdD1uLm1hcChmdW5jdGlvbihpKXtyZXR1cm4gaT1pLnRyaW0oKSxpPy9ePChoWzEtNl18dWx8b2x8bGl8YmxvY2txdW90ZXxwcmV8dGFibGV8aHJ8ZGl2KS8udGVzdChpKT9pOiI8cD4iK2kucmVwbGFjZSgvXG4vZywiPGJyPiIpKyI8L3A+IjoiIn0pLmpvaW4oYApgKSx0fWZ1bmN0aW9uIFp1KCl7aWYoIXIuc2VsZWN0ZWRJZHx8IXIuZ2l0U3RhdHVzfHwhci5naXRTdGF0dXMuaXNHaXR8fHIuZ2l0U3RhdHVzU2Vzc2lvbklkIT09ci5zZWxlY3RlZElkKXJldHVybiIiO3ZhciBlPXIuZ2l0U3RhdHVzLmJyYW5jaHx8Ij8iLHQ9ci5naXRTdGF0dXMubW9kaWZpZWRDb3VudHx8MCxuPWUrKHQ/IiAgXHhCNyAgIit0KyIgXHU0RTJBXHU2NTg3XHU0RUY2XHU1Rjg1XHU2M0QwXHU0RUE0IjoiICBceEI3ICBcdTVERTVcdTRGNUNcdTUzM0FcdTVFNzJcdTUxQzAiKTtyZXR1cm4nPGJ1dHRvbiBpZD0idG9wYmFyLWdpdC1iYWRnZSIgY2xhc3M9InRvcGJhci1naXQtYmFkZ2UiIHR5cGU9ImJ1dHRvbiIgdGl0bGU9IicrcChuKSsnIiBhcmlhLWxhYmVsPSJcdTVGRUJcdTYzNzdcdTYzRDBcdTRFQTQiPjxzdmcgY2xhc3M9InRvcGJhci1naXQtaWNvbiIgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxjaXJjbGUgY3g9IjYiIGN5PSI2IiByPSIyIi8+PGNpcmNsZSBjeD0iNiIgY3k9IjE4IiByPSIyIi8+PGNpcmNsZSBjeD0iMTgiIGN5PSI5IiByPSIyIi8+PHBhdGggZD0iTTYgOHY4Ii8+PHBhdGggZD0iTTE4IDExdjFhMyAzIDAgMCAxLTMgM0g5Ii8+PC9zdmc+PHNwYW4gY2xhc3M9InRvcGJhci1naXQtYnJhbmNoIj4nK3AoZSkrIjwvc3Bhbj4iKyh0PjA/JzxzcGFuIGNsYXNzPSJ0b3BiYXItZ2l0LWNvdW50Ij5ceEI3Jyt0KyI8L3NwYW4+IjonPHNwYW4gY2xhc3M9InRvcGJhci1naXQtY2xlYW4iIGFyaWEtaGlkZGVuPSJ0cnVlIj5cdTI3MTM8L3NwYW4+JykrIjwvYnV0dG9uPiJ9ZnVuY3Rpb24gdGEoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9wYmFyLWdpdC1zbG90Iik7aWYoZSl7ZS5pbm5lckhUTUw9WnUoKTt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9wYmFyLWdpdC1iYWRnZSIpO3QmJnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKG4pe24ucHJldmVudERlZmF1bHQoKSxlcygpfSl9fWZ1bmN0aW9uIGtjKGUpe2lmKCFlKXJldHVybiIiO3ZhciB0PXIudG9wYmFyTW9yZU9wZW4sbj0hIWUuY2xhdWRlU2Vzc2lvbklkLGk9ISFlLmN3ZCxhPWUud29ya3RyZWVFbmFibGVkJiZlLndvcmt0cmVlJiZlLndvcmt0cmVlLmJyYW5jaCYmZS53b3JrdHJlZS5wYXRoLHU9ZS53b3JrdHJlZU1lcmdlU3RhdHVzPT09Im1lcmdlZCImJmUud29ya3RyZWVNZXJnZUluZm8mJmUud29ya3RyZWVNZXJnZUluZm8uY2xlYW51cERvbmU9PT0hMSxzPWUuc3RhdHVzPT09InJ1bm5pbmcifHxlLndvcmt0cmVlTWVyZ2VTdGF0dXM9PT0ibWVyZ2luZyIsbz1hJiZlLndvcmt0cmVlTWVyZ2VTdGF0dXMhPT0ibWVyZ2VkIixsPXUsYz1ufHxpfHwhMCxmPW98fGx8fCEwLGQ9Jzxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHJlY3QgeD0iOSIgeT0iOSIgd2lkdGg9IjEzIiBoZWlnaHQ9IjEzIiByeD0iMiIgcnk9IjIiLz48cGF0aCBkPSJNNSAxNUg0YTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDlhMiAyIDAgMCAxIDIgMnYxIi8+PC9zdmc+Jyx2PSc8c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0xNy41IDE5YTQuNSA0LjUgMCAxIDAtMS41LTguNzRBNiA2IDAgMSAwIDYgMTRoMTEuNXoiLz48L3N2Zz4nLGg9Jzxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTIyIDE5YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmg1bDIgM2g5YTIgMiAwIDAgMSAyIDJ6Ii8+PC9zdmc+JyxnPSc8c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxsaW5lIHgxPSI0IiB5MT0iOSIgeDI9IjIwIiB5Mj0iOSIvPjxsaW5lIHgxPSI0IiB5MT0iMTUiIHgyPSIyMCIgeTI9IjE1Ii8+PGxpbmUgeDE9IjEwIiB5MT0iMyIgeDI9IjgiIHkyPSIyMSIvPjxsaW5lIHgxPSIxNiIgeTE9IjMiIHgyPSIxNCIgeTI9IjIxIi8+PC9zdmc+JyxtPSc8c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik03IDdoMTAiLz48cGF0aCBkPSJNNyAxMmgxMCIvPjxwYXRoIGQ9Ik03IDE3aDEwIi8+PHBhdGggZD0iTTUgN2wtMiAyIDIgMiIvPjxwYXRoIGQ9Ik0xOSAxNWwyIDItMiAyIi8+PC9zdmc+Jyx5PSc8c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0zIDZoMTgiLz48cGF0aCBkPSJNOCA2VjRhMiAyIDAgMDEyLTJoNGEyIDIgMCAwMTIgMnYyIi8+PHBhdGggZD0iTTE5IDZsLTEgMTRhMiAyIDAgMDEtMiAySDhhMiAyIDAgMDEtMi0yTDUgNiIvPjwvc3ZnPicsdz0iIjtpZihuKXt2YXIgRT1lLnByb3ZpZGVyPT09ImNvZGV4Ij8iXHU1OTBEXHU1MjM2IENvZGV4IHRocmVhZCBJRCI6Ilx1NTkwRFx1NTIzNiBDbGF1ZGUgXHU0RjFBXHU4QkREIElEIjt3Kz0nPGJ1dHRvbiBjbGFzcz0idG9wYmFyLW1vcmUtaXRlbSIgZGF0YS1hY3Rpb249ImNvcHktY2xhdWRlLXNlc3Npb24taWQiIHR5cGU9ImJ1dHRvbiIgcm9sZT0ibWVudWl0ZW0iPicrdisiPHNwYW4+IitFKyI8L3NwYW4+PC9idXR0b24+In1pJiYodys9JzxidXR0b24gY2xhc3M9InRvcGJhci1tb3JlLWl0ZW0iIGRhdGEtYWN0aW9uPSJjb3B5LWN3ZCIgdHlwZT0iYnV0dG9uIiByb2xlPSJtZW51aXRlbSI+JytoKyI8c3Bhbj5cdTU5MERcdTUyMzZcdTVERTVcdTRGNUNcdTc2RUVcdTVGNTU8L3NwYW4+PC9idXR0b24+Iiksdys9JzxidXR0b24gY2xhc3M9InRvcGJhci1tb3JlLWl0ZW0iIGRhdGEtYWN0aW9uPSJjb3B5LXNlc3Npb24taWQiIHR5cGU9ImJ1dHRvbiIgcm9sZT0ibWVudWl0ZW0iPicrZysiPHNwYW4+XHU1OTBEXHU1MjM2XHU0RjFBXHU4QkREIElEPC9zcGFuPjwvYnV0dG9uPiI7dmFyIEI9IiI7bz9CKz0nPGJ1dHRvbiBjbGFzcz0idG9wYmFyLW1vcmUtaXRlbSIgZGF0YS1hY3Rpb249Indvcmt0cmVlLW1lcmdlIiB0eXBlPSJidXR0b24iIHJvbGU9Im1lbnVpdGVtIicrKHM/IiBkaXNhYmxlZCI6IiIpKyI+IittKyI8c3Bhbj5cdTU0MDhcdTVFNzZcdTUyMzBcdTRFM0JcdTUyMDZcdTY1MkZcdTIwMjY8L3NwYW4+PC9idXR0b24+IjpsJiYoQis9JzxidXR0b24gY2xhc3M9InRvcGJhci1tb3JlLWl0ZW0iIGRhdGEtYWN0aW9uPSJ3b3JrdHJlZS1jbGVhbnVwIiB0eXBlPSJidXR0b24iIHJvbGU9Im1lbnVpdGVtIj4nK20rIjxzcGFuPlx1OTFDRFx1OEJENSB3b3JrdHJlZSBcdTZFMDVcdTc0MDY8L3NwYW4+PC9idXR0b24+IiksQis9JzxidXR0b24gY2xhc3M9InRvcGJhci1tb3JlLWl0ZW0gdG9wYmFyLW1vcmUtaXRlbS1kYW5nZXIiIGRhdGEtYWN0aW9uPSJkZWxldGUtc2Vzc2lvbiIgdHlwZT0iYnV0dG9uIiByb2xlPSJtZW51aXRlbSI+Jyt5KyI8c3Bhbj5cdTUyMjBcdTk2NjRcdTVGNTNcdTUyNERcdTRGMUFcdThCREQ8L3NwYW4+PC9idXR0b24+Ijt2YXIgRj1jJiZmPyc8ZGl2IGNsYXNzPSJ0b3BiYXItbW9yZS1kaXZpZGVyIiByb2xlPSJzZXBhcmF0b3IiPjwvZGl2Pic6IiI7cmV0dXJuJzxkaXYgY2xhc3M9InRvcGJhci1tb3JlLXdyYXAiPjxidXR0b24gaWQ9InRvcGJhci1tb3JlLWJ1dHRvbiIgY2xhc3M9InRvcGJhci1idG4gc3F1YXJlJysodD8iIGFjdGl2ZSI6IiIpKyciIHR5cGU9ImJ1dHRvbiIgYXJpYS1sYWJlbD0iXHU1RjUzXHU1MjREXHU0RjFBXHU4QkREXHU2NENEXHU0RjVDIiBhcmlhLWhhc3BvcHVwPSJtZW51IiBhcmlhLWV4cGFuZGVkPSInKyh0PyJ0cnVlIjoiZmFsc2UiKSsnIiB0aXRsZT0iXHU1RjUzXHU1MjREXHU0RjFBXHU4QkREXHU2NENEXHU0RjVDIj48c3ZnIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjEiLz48Y2lyY2xlIGN4PSIxMiIgY3k9IjUiIHI9IjEiLz48Y2lyY2xlIGN4PSIxMiIgY3k9IjE5IiByPSIxIi8+PC9zdmc+PC9idXR0b24+PGRpdiBpZD0idG9wYmFyLW1vcmUtbWVudSIgY2xhc3M9InRvcGJhci1tb3JlLW1lbnUnKyh0PyIiOiIgaGlkZGVuIikrJyIgcm9sZT0ibWVudSIgYXJpYS1sYWJlbD0iXHU1RjUzXHU1MjREXHU0RjFBXHU4QkREIj4nK3crRitCKyI8L2Rpdj48L2Rpdj4ifWZ1bmN0aW9uIERuKGUsdCl7aWYoIWUpcmV0dXJuIFByb21pc2UucmVzb2x2ZShudWxsKTt2YXIgbj10JiZ0LmZvcmNlLGk9RGF0ZS5ub3coKTtpZighbiYmci5naXRTdGF0dXNTZXNzaW9uSWQ9PT1lJiZyLmdpdFN0YXR1cyYmaS1yLmdpdFN0YXR1c0xhc3RGZXRjaEF0PDFlMylyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHIuZ2l0U3RhdHVzKTtpZihyLmdpdFN0YXR1c0luZmxpZ2h0JiZyLmdpdFN0YXR1c0luZmxpZ2h0LnNlc3Npb25JZD09PWUpcmV0dXJuIHIuZ2l0U3RhdHVzSW5mbGlnaHQucHJvbWlzZTtyLmdpdFN0YXR1c0xvYWRpbmc9ITA7dmFyIGE9ZmV0Y2goIi9hcGkvc2Vzc2lvbnMvIitlbmNvZGVVUklDb21wb25lbnQoZSkrIi9naXQtc3RhdHVzIix7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24odSl7cmV0dXJuIHUub2s/dS5qc29uKCk6e2lzR2l0OiExfX0pLnRoZW4oZnVuY3Rpb24odSl7cmV0dXJuIHIuZ2l0U3RhdHVzPXV8fHtpc0dpdDohMX0sci5naXRTdGF0dXNTZXNzaW9uSWQ9ZSxyLmdpdFN0YXR1c0xhc3RGZXRjaEF0PURhdGUubm93KCksdGEoKSx1fSkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm4gci5naXRTdGF0dXM9e2lzR2l0OiExfSxyLmdpdFN0YXR1c1Nlc3Npb25JZD1lLHIuZ2l0U3RhdHVzTGFzdEZldGNoQXQ9RGF0ZS5ub3coKSx0YSgpLG51bGx9KS5maW5hbGx5KGZ1bmN0aW9uKCl7ci5naXRTdGF0dXNMb2FkaW5nPSExLHIuZ2l0U3RhdHVzSW5mbGlnaHQmJnIuZ2l0U3RhdHVzSW5mbGlnaHQuc2Vzc2lvbklkPT09ZSYmKHIuZ2l0U3RhdHVzSW5mbGlnaHQ9bnVsbCl9KTtyZXR1cm4gci5naXRTdGF0dXNJbmZsaWdodD17c2Vzc2lvbklkOmUscHJvbWlzZTphfSxhfXZhciBrbj1udWxsLEFuPW51bGwsd2c9bnVsbDtmdW5jdGlvbiBBYyhlKXtyZXR1cm4gZT09PSJjb21taXQtdGFnInx8ZT09PSJjb21taXQtdGFnLXB1c2gifHxlPT09ImNvbW1pdC1wdXNoIj9lOiJjb21taXQifWZ1bmN0aW9uIHhjKGUpe3JldHVybiBlPUFjKGUpLGU9PT0iY29tbWl0LXRhZy1wdXNoIj97YWN0aW9uOmUsbGFiZWw6IkNvbW1pdCArIFRhZyArIFB1c2giLHZlcmI6Ilx1NjNEMFx1NEVBNFx1MzAwMVx1NjI1MyBUYWcgXHU1RTc2XHU2M0E4XHU5MDAxIix3aXRoVGFnOiEwLHB1c2g6ITAsdG9uZToiYWxsIn06ZT09PSJjb21taXQtdGFnIj97YWN0aW9uOmUsbGFiZWw6IkNvbW1pdCArIFRhZyIsdmVyYjoiXHU2M0QwXHU0RUE0XHU1RTc2XHU2MjUzIFRhZyIsd2l0aFRhZzohMCxwdXNoOiExLHRvbmU6InRhZyJ9OmU9PT0iY29tbWl0LXB1c2giP3thY3Rpb246ZSxsYWJlbDoiQ29tbWl0ICsgUHVzaCIsdmVyYjoiXHU2M0QwXHU0RUE0XHU1RTc2XHU2M0E4XHU5MDAxIix3aXRoVGFnOiExLHB1c2g6ITAsdG9uZToicHVzaCJ9OnthY3Rpb246ImNvbW1pdCIsbGFiZWw6IkNvbW1pdCIsdmVyYjoiXHU0RUM1XHU2M0QwXHU0RUE0Iix3aXRoVGFnOiExLHB1c2g6ITEsdG9uZToiY29tbWl0In19ZnVuY3Rpb24gZXMoKXtpZihyLnNlbGVjdGVkSWQpe3IucXVpY2tDb21taXRPcGVuPSEwLHIucXVpY2tDb21taXRTdWJtaXR0aW5nPSExLHIucXVpY2tDb21taXRBdXRvR2VuZXJhdGluZz0hMSxyLnF1aWNrQ29tbWl0RXJyb3I9IiIsci5xdWlja0NvbW1pdEZvcm09e2N1c3RvbU1lc3NhZ2U6IiIsdGFnOiIiLHRhZ0VkaXRlZDohMX0sci5xdWlja0NvbW1pdFB1c2hpbmc9ITEsci5xdWlja0NvbW1pdFB1c2hFcnJvcj0iIixyLnF1aWNrQ29tbWl0UmVzdWx0PW51bGwsci5xdWlja0NvbW1pdERyYWdBY3Rpb249ImNvbW1pdCIsZXIoKSx5bigpLHRyKCksUHQoKTt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicXVpY2stY29tbWl0LW1vZGFsIik7ZSYmKGUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksci5sYXN0Rm9jdXNlZEVsZW1lbnQ9ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCxQaShlKSksa24mJmRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLGtuKSxrbj1mdW5jdGlvbih0KXt0LmtleT09PSJFc2NhcGUiJiZyLnF1aWNrQ29tbWl0T3BlbiYmIXIucXVpY2tDb21taXRTdWJtaXR0aW5nJiYhci5xdWlja0NvbW1pdFB1c2hpbmcmJk5uKCl9LGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGtuKSxEbihyLnNlbGVjdGVkSWQse2ZvcmNlOiEwfSkudGhlbihmdW5jdGlvbigpe3IucXVpY2tDb21taXRPcGVuJiZQdCgpfSl9fWZ1bmN0aW9uIE5uKCl7ci5xdWlja0NvbW1pdE9wZW49ITEsci5xdWlja0NvbW1pdFN1Ym1pdHRpbmc9ITEsci5xdWlja0NvbW1pdEVycm9yPSIiLHIucXVpY2tDb21taXRSZXN1bHQ9bnVsbCxyLnF1aWNrQ29tbWl0RHJhZ0FjdGlvbj0iY29tbWl0Ijt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicXVpY2stY29tbWl0LW1vZGFsIik7ZSYmZS5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSxyLmZvY3VzVHJhcEhhbmRsZXImJihkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIixyLmZvY3VzVHJhcEhhbmRsZXIpLHIuZm9jdXNUcmFwSGFuZGxlcj1udWxsKSxrbiYmKGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLGtuKSxrbj1udWxsKSxBbiYmKEFuKCksQW49bnVsbCksci5sYXN0Rm9jdXNlZEVsZW1lbnQmJnR5cGVvZiByLmxhc3RGb2N1c2VkRWxlbWVudC5mb2N1cz09ImZ1bmN0aW9uIiYmci5sYXN0Rm9jdXNlZEVsZW1lbnQuZm9jdXMoKX1mdW5jdGlvbiBQdCgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJxdWljay1jb21taXQtbW9kYWwiKTtpZihlKXtBbiYmKEFuKCksQW49bnVsbCk7dmFyIHQ9cnMoKSxuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO24uaW5uZXJIVE1MPXQ7dmFyIGk9bi5xdWVyeVNlbGVjdG9yKCIjcXVpY2stY29tbWl0LW1vZGFsIik7aSYmKGUuaW5uZXJIVE1MPWkuaW5uZXJIVE1MLHRzKCkpfX1mdW5jdGlvbiB0cygpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJxdWljay1jb21taXQtY2xvc2UtYnRuIik7ZSYmZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsTm4pO3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJxdWljay1jb21taXQtY2FuY2VsLWJ0biIpO3QmJnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLE5uKTt2YXIgbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicXVpY2stY29tbWl0LWFpLWJ0biIpO24mJm4uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLExjKTt2YXIgaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicXVpY2stY29tbWl0LW1lc3NhZ2UiKTtpJiYoaS5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsZnVuY3Rpb24oKXtyLnF1aWNrQ29tbWl0Rm9ybS5jdXN0b21NZXNzYWdlPWkudmFsdWV9KSxpLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGZ1bmN0aW9uKHMpeyhzLm1ldGFLZXl8fHMuY3RybEtleSkmJnMua2V5PT09IkVudGVyIiYmKHMucHJldmVudERlZmF1bHQoKSxqbigiY29tbWl0IikpfSkpO3ZhciBhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJxdWljay1jb21taXQtdGFnIik7YSYmKGEuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLGZ1bmN0aW9uKCl7ci5xdWlja0NvbW1pdEZvcm0udGFnPWEudmFsdWUsci5xdWlja0NvbW1pdEZvcm0udGFnRWRpdGVkPSEwfSksYS5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixmdW5jdGlvbihzKXtzLmtleT09PSJFbnRlciImJihzLnByZXZlbnREZWZhdWx0KCksam4oImNvbW1pdC10YWciKSl9KSk7dmFyIHU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInF1aWNrLWNvbW1pdC1wdXNoLWFmdGVyLWJ0biIpO3UmJnUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7dmFyIHM9ci5xdWlja0NvbW1pdFJlc3VsdHx8e307TWMoe3B1c2hDb21taXRzOiEwLHB1c2hUYWdzOiEhcy50YWdOYW1lLGNsb3NlT25TdWNjZXNzOiEwfSl9KSxUYygpfWZ1bmN0aW9uIFNjKGUpe3ZhciB0PSEhKGUmJmUudGFnKSxuPSEhKGUmJmUucHVzaCk7cmV0dXJuIHQmJm4/ImNvbW1pdC10YWctcHVzaCI6dD8iY29tbWl0LXRhZyI6bj8iY29tbWl0LXB1c2giOiJjb21taXQifXZhciBJYz01OCwkcj0xMDtmdW5jdGlvbiBucyhlKXtyZXR1cm4gZT09PSJ0YWciP3thY3Rpb246ImNvbW1pdC10YWciLHN1YjohMX06ZT09PSJwdXNoIj97YWN0aW9uOiJjb21taXQtcHVzaCIsc3ViOiExfTplPT09InN1YiI/e2FjdGlvbjoiY29tbWl0IixzdWI6ITB9OnthY3Rpb246ImNvbW1pdCIsc3ViOiExfX1mdW5jdGlvbiBUYygpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJxYy1kb2NrLWZpZWxkIiksdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicWMtZG9jay1zdGFnZSIpLG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInFjLWRvY2stbGF1bmNoIiksaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicWMtZG9jay1jbHVzdGVyIik7aWYoIWV8fCF0fHwhbnx8IWkpcmV0dXJuO3ZhciBhPVsiY29tbWl0IiwidGFnIiwicHVzaCJdLHU9e307aWYoYS5mb3JFYWNoKGZ1bmN0aW9uKEQpe3VbRF09ZS5xdWVyeVNlbGVjdG9yKCdbZGF0YS1jaGlwPSInK0QrJyJdJyl9KSwhdS5jb21taXR8fCF1LnRhZ3x8IXUucHVzaClyZXR1cm47dS5zdWI9ZS5xdWVyeVNlbGVjdG9yKCdbZGF0YS1jaGlwPSJzdWIiXScpO3ZhciBzPSEhdS5zdWIsbz1zP2EuY29uY2F0KFsic3ViIl0pOmE7ZnVuY3Rpb24gbChEKXtyZXR1cm4gdVtEXT91W0RdLm9mZnNldFdpZHRoOjkwfWZ1bmN0aW9uIGMoKXtyZXR1cm4gdS5jb21taXQ/dS5jb21taXQub2Zmc2V0SGVpZ2h0OjM4fWZ1bmN0aW9uIGYoKXtyZXR1cm4gd2luZG93Lm1hdGNoTWVkaWEmJndpbmRvdy5tYXRjaE1lZGlhKCIobWF4LXdpZHRoOiA3MjBweCkiKS5tYXRjaGVzfWZ1bmN0aW9uIGQoKXt2YXIgRD1lLmNsaWVudFdpZHRoLE09ZS5jbGllbnRIZWlnaHQsTD1jKCksVz1sKCJjb21taXQiKSxLPWwoInRhZyIpLFg9bCgicHVzaCIpO2lmKGYoKSYmcyl7dmFyIG5lPU1hdGgubWF4KDgsTSouMi1MLzIpLHNlPU1hdGgubWluKE0tTC04LE0qLjctTC8yKSxyZT1mdW5jdGlvbihhZSl7cmV0dXJuIE1hdGgubWF4KDgsRCouMjctYWUvMil9LFQ9ZnVuY3Rpb24oYWUpe3JldHVybiBNYXRoLm1pbihELWFlLTgsRCouNzMtYWUvMil9O3JldHVybntjb21taXQ6e3g6cmUoVykseTpuZX0sdGFnOnt4OlQoSykseTpuZX0scHVzaDp7eDpyZShYKSx5OnNlfSxzdWI6e3g6VChsKCJzdWIiKSkseTpzZX19fXZhciBxPWYoKSxOPXE/TWF0aC5tYXgoOCxNKi4xOC1MLzIpOk1hdGgubWF4KDgsTSouMTIpLFk9cT9NYXRoLm1pbihNLUwtOCxNKi43Mi1MLzIpOk1hdGgubWluKE0tTC04LE0qLjg4LUwpLEo9cT8uMjQ6LjI4LGllPXE/Ljc2Oi43MixkZT17Y29tbWl0Ont4Ok1hdGgubWF4KDgsKEQtVykvMikseTpOfSx0YWc6e3g6TWF0aC5tYXgoOCxEKkotSy8yKSx5Oll9LHB1c2g6e3g6TWF0aC5taW4oRC1YLTgsRCppZS1YLzIpLHk6WX19O2lmKHMpe3ZhciB0ZT1sKCJzdWIiKTtkZS5zdWI9e3g6TWF0aC5taW4oRC10ZS04LEQqLjk0LXRlLzIpLHk6TWF0aC5tYXgoOCxNYXRoLm1pbihNLUwtOCwoTS1MKS8yKSl9fXJldHVybiBkZX12YXIgdj17fTtmdW5jdGlvbiBoKEQsTSxMKXt1W0RdJiYodVtEXS5zdHlsZS50cmFuc2Zvcm09InRyYW5zbGF0ZSgiK00udG9GaXhlZCgxKSsicHgsIitMLnRvRml4ZWQoMSkrInB4KSIpfWZ1bmN0aW9uIGcoRCl7dj1kKCksby5mb3JFYWNoKGZ1bmN0aW9uKE0pe3VbTV0uY2xhc3NMaXN0LnRvZ2dsZSgicWMtY2hpcC0tYW5pbSIsISFEKSxoKE0sdltNXS54LHZbTV0ueSl9KX1nKCExKTt2YXIgbT1udWxsO2Z1bmN0aW9uIHkoRCxNLEwpe3ZhciBXPWMoKSxLPTI0LFg9by5maWx0ZXIoZnVuY3Rpb24oTil7cmV0dXJuIEQuaW5kZXhPZihOKT49MH0pLG5lPVgucmVkdWNlKGZ1bmN0aW9uKE4sWSl7cmV0dXJuIE1hdGgubWF4KE4sbChZKSl9LDApLHNlPW5lK01hdGgubWF4KDAsWC5sZW5ndGgtMSkqSyxyZT1lLmNsaWVudEhlaWdodCxUPU0tc2UvMixxPU1hdGgubWF4KDIsTWF0aC5taW4ocmUtVy0yLEwtVy8yKSk7cmV0dXJuIFguZm9yRWFjaChmdW5jdGlvbihOKXtoKE4sVCxxKSxUKz1LfSkse3g6TS1zZS8yLTcseTpxLTcsdzpzZSsxNCxoOlcrMTR9fWZ1bmN0aW9uIHcoRCl7aS5jbGFzc0xpc3QuYWRkKCJpcy1hY3RpdmUiKSxpLnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlKCIrRC54LnRvRml4ZWQoMSkrInB4LCIrRC55LnRvRml4ZWQoMSkrInB4KSIsaS5zdHlsZS53aWR0aD1ELncudG9GaXhlZCgxKSsicHgiLGkuc3R5bGUuaGVpZ2h0PUQuaC50b0ZpeGVkKDEpKyJweCJ9ZnVuY3Rpb24gRSgpe2kuY2xhc3NMaXN0LnJlbW92ZSgiaXMtYWN0aXZlIil9ZnVuY3Rpb24gQihEKXtyZXR1cm4gU2Moe2NvbW1pdDohMCx0YWc6RC5pbmRleE9mKCJ0YWciKT49MCxwdXNoOkQuaW5kZXhPZigicHVzaCIpPj0wfSl9ZnVuY3Rpb24gRihEKXtyZXR1cm4gRC5pbmRleE9mKCJzdWIiKT49MH1mdW5jdGlvbiB4KEQpe3ZhciBNPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJxYy1kb2NrLWxhdW5jaC1sYWJlbCIpO00mJihNLnRleHRDb250ZW50PUQpfWZ1bmN0aW9uIFMoRCxNKXt2YXIgTD1uLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JldHVybiBEPj1MLmxlZnQmJkQ8PUwucmlnaHQmJk0+PUwudG9wJiZNPD1MLmJvdHRvbX1mdW5jdGlvbiBfKEQpe3JldHVybiBmdW5jdGlvbihNKXtpZighKHVbRF0uZGlzYWJsZWR8fFhyKCkpKXttPXthbmNob3I6RCxwb2ludGVySWQ6TS5wb2ludGVySWQsc3RhcnRYOk0uY2xpZW50WCxzdGFydFk6TS5jbGllbnRZLG1vdmVkOiExLG1lbWJlcnM6W0RdfSxvLmZvckVhY2goZnVuY3Rpb24oTCl7dVtMXS5jbGFzc0xpc3QucmVtb3ZlKCJxYy1jaGlwLS1hbmltIil9KSx1W0RdLmNsYXNzTGlzdC5hZGQoImlzLWdyYWJiaW5nIik7dHJ5e3VbRF0uc2V0UG9pbnRlckNhcHR1cmUoTS5wb2ludGVySWQpfWNhdGNoe310LmNsYXNzTGlzdC5hZGQoImlzLWRyYWdnaW5nIiksTS5wcmV2ZW50RGVmYXVsdCgpfX19ZnVuY3Rpb24gVihEKXtpZighKCFtfHxtLnBvaW50ZXJJZCE9PUQucG9pbnRlcklkKSl7KE1hdGguYWJzKEQuY2xpZW50WC1tLnN0YXJ0WCk+M3x8TWF0aC5hYnMoRC5jbGllbnRZLW0uc3RhcnRZKT4zKSYmKG0ubW92ZWQ9ITApO3ZhciBNPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksTD1ELmNsaWVudFgtTS5sZWZ0LFc9RC5jbGllbnRZLU0udG9wO2lmKGEuZm9yRWFjaChmdW5jdGlvbihxKXtpZighKG0ubWVtYmVycy5pbmRleE9mKHEpPj0wKSl7dmFyIE49dltxXS54K2wocSkvMixZPXZbcV0ueStjKCkvMixKPUwtTixpZT1XLVk7TWF0aC5zcXJ0KEoqSitpZSppZSk8SWMmJihtLm1lbWJlcnMucHVzaChxKSx1W3FdLmNsYXNzTGlzdC5yZW1vdmUoInFjLWNoaXAtLWFuaW0iKSx1W3FdLmNsYXNzTGlzdC5hZGQoImlzLWF0dGFjaGVkIikpfX0pLHMmJm0ubWVtYmVycy5pbmRleE9mKCJzdWIiKTwwKXt2YXIgSz12LnN1Yi54LSRyLFg9di5zdWIueS0kcixuZT12LnN1Yi54K2woInN1YiIpKyRyLHNlPXYuc3ViLnkrYygpKyRyO0w+PUsmJkw8PW5lJiZXPj1YJiZXPD1zZSYmKG0ubWVtYmVycy5wdXNoKCJzdWIiKSx1LnN1Yi5jbGFzc0xpc3QucmVtb3ZlKCJxYy1jaGlwLS1hbmltIiksdS5zdWIuY2xhc3NMaXN0LmFkZCgiaXMtYXR0YWNoZWQiKSl9dmFyIHJlPXkobS5tZW1iZXJzLEwsVyksVD1TKEQuY2xpZW50WCxELmNsaWVudFkpO3Quc2V0QXR0cmlidXRlKCJkYXRhLWhvdCIsVD8iMSI6IjAiKSx0LnNldEF0dHJpYnV0ZSgiZGF0YS1hY3Rpb24iLEIobS5tZW1iZXJzKSksbS5tZW1iZXJzLmxlbmd0aD4xP3cocmUpOkUoKSx4KFQ/Ilx1Njc3RVx1NjI0Qlx1NjI2N1x1ODg0QyI6Ilx1NjNEMFx1NEVBNCIpfX1mdW5jdGlvbiBVKEQsTSl7aWYoISghbXx8bS5wb2ludGVySWQhPT1ELnBvaW50ZXJJZCkpe3ZhciBMPW07bT1udWxsLHQuY2xhc3NMaXN0LnJlbW92ZSgiaXMtZHJhZ2dpbmciKSx0LnNldEF0dHJpYnV0ZSgiZGF0YS1ob3QiLCIwIikseCgiXHU2M0QwXHU0RUE0IiksRSgpLG8uZm9yRWFjaChmdW5jdGlvbihLKXt1W0tdLmNsYXNzTGlzdC5yZW1vdmUoImlzLWdyYWJiaW5nIiwiaXMtYXR0YWNoZWQiKX0pO3RyeXt1W0wuYW5jaG9yXS5yZWxlYXNlUG9pbnRlckNhcHR1cmUoTC5wb2ludGVySWQpfWNhdGNoe31pZighTSYmIUwubW92ZWQpe3ZhciBXPW5zKEwuYW5jaG9yKTtqbihXLmFjdGlvbixXLnN1Yik7cmV0dXJufWlmKCFNJiZTKEQuY2xpZW50WCxELmNsaWVudFkpKXtqbihCKEwubWVtYmVycyksRihMLm1lbWJlcnMpKTtyZXR1cm59dC5zZXRBdHRyaWJ1dGUoImRhdGEtYWN0aW9uIiwiY29tbWl0IiksZyghMCl9fXZhciBJPWZ1bmN0aW9uKCl7ci5xdWlja0NvbW1pdE9wZW4mJiFtJiZnKCExKX07d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsSSksby5mb3JFYWNoKGZ1bmN0aW9uKEQpe3ZhciBNPXVbRF07TS5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVyZG93biIsXyhEKSksTS5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVybW92ZSIsViksTS5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVydXAiLGZ1bmN0aW9uKEwpe1UoTCwhMSl9KSxNLmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJjYW5jZWwiLGZ1bmN0aW9uKEwpe1UoTCwhMCl9KSxNLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGZ1bmN0aW9uKEwpe2lmKCEoTS5kaXNhYmxlZHx8WHIoKSkmJihMLmtleT09PSJFbnRlciJ8fEwua2V5PT09IiAifHxMLmtleT09PSJTcGFjZWJhciIpKXtMLnByZXZlbnREZWZhdWx0KCk7dmFyIFc9bnMoRCk7am4oVy5hY3Rpb24sVy5zdWIpfX0pfSksbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXtuLmRpc2FibGVkfHxYcigpfHxtfHxqbigiY29tbWl0Iil9KSxBbj1mdW5jdGlvbigpe3dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJyZXNpemUiLEkpLG09bnVsbH19ZnVuY3Rpb24gTGMoKXtpZighKCFyLnNlbGVjdGVkSWR8fHIucXVpY2tDb21taXRHZW5lcmF0aW5nKSl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInF1aWNrLWNvbW1pdC1tZXNzYWdlIik7ZSYmKHIucXVpY2tDb21taXRGb3JtLmN1c3RvbU1lc3NhZ2U9ZS52YWx1ZSk7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInF1aWNrLWNvbW1pdC10YWciKTt0JiYoci5xdWlja0NvbW1pdEZvcm0udGFnPXQudmFsdWUpLHIucXVpY2tDb21taXRHZW5lcmF0aW5nPSEwLHIucXVpY2tDb21taXRFcnJvcj0iIixQdCgpLGZldGNoKCIvYXBpL3Nlc3Npb25zLyIrZW5jb2RlVVJJQ29tcG9uZW50KHIuc2VsZWN0ZWRJZCkrIi9nZW5lcmF0ZS1jb21taXQtbWVzc2FnZSIse21ldGhvZDoiUE9TVCIsY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGJvZHk6SlNPTi5zdHJpbmdpZnkoe30pfSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gbi5qc29uKCkudGhlbihmdW5jdGlvbihpKXtyZXR1cm57b2s6bi5vayxkYXRhOml9fSl9KS50aGVuKGZ1bmN0aW9uKG4pe2lmKCFuLm9rKXRocm93IG5ldyBFcnJvcihuLmRhdGEmJm4uZGF0YS5lcnJvcnx8IkFJIFx1NzUxRlx1NjIxMFx1NTkzMVx1OEQyNVx1MzAwMiIpO3ZhciBpPW4uZGF0YXx8e30sYT10eXBlb2YgaS5tZXNzYWdlPT0ic3RyaW5nIj9pLm1lc3NhZ2U6IiIsdT10eXBlb2YgaS5zdWdnZXN0ZWRUYWc9PSJzdHJpbmciP2kuc3VnZ2VzdGVkVGFnLnRyaW0oKToiIixzPShyLnF1aWNrQ29tbWl0Rm9ybS5jdXN0b21NZXNzYWdlfHwiIikudHJpbSgpOyFzJiZhJiYoci5xdWlja0NvbW1pdEZvcm0uY3VzdG9tTWVzc2FnZT1hKSx1JiYoci5xdWlja0NvbW1pdEZvcm0udGFnRWRpdGVkfHwoci5xdWlja0NvbW1pdEZvcm0udGFnPXUpLHIucXVpY2tDb21taXREcmFnQWN0aW9uPSJjb21taXQtdGFnIil9KS5jYXRjaChmdW5jdGlvbihuKXtyLnF1aWNrQ29tbWl0RXJyb3I9biYmbi5tZXNzYWdlfHwiQUkgXHU3NTFGXHU2MjEwXHU1OTMxXHU4RDI1XHUzMDAyIn0pLmZpbmFsbHkoZnVuY3Rpb24oKXtyLnF1aWNrQ29tbWl0R2VuZXJhdGluZz0hMSxyLnF1aWNrQ29tbWl0T3BlbiYmUHQoKX0pfX1mdW5jdGlvbiBqbihlLHQpe2lmKCEoIXIuc2VsZWN0ZWRJZHx8ci5xdWlja0NvbW1pdFN1Ym1pdHRpbmcpKXt2YXIgbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicXVpY2stY29tbWl0LW1lc3NhZ2UiKTtuJiYoci5xdWlja0NvbW1pdEZvcm0uY3VzdG9tTWVzc2FnZT1uLnZhbHVlKTt2YXIgaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicXVpY2stY29tbWl0LXRhZyIpO2kmJihyLnF1aWNrQ29tbWl0Rm9ybS50YWc9aS52YWx1ZSk7dmFyIGE9ci5xdWlja0NvbW1pdEZvcm18fHt9LHU9eGMoZXx8ci5xdWlja0NvbW1pdERyYWdBY3Rpb258fCJjb21taXQiKSxzPXUud2l0aFRhZyxvPXM/KGEudGFnfHwiIikudHJpbSgpOiIiLGw9KGEuY3VzdG9tTWVzc2FnZXx8IiIpLnRyaW0oKSxjPSFsLGY9e2JyYW5jaDooci5naXRTdGF0dXN8fHt9KS5icmFuY2h8fCIiLGNvbW1pdEhhc2g6KHIuZ2l0U3RhdHVzfHx7fSkubGFzdENvbW1pdCYmKHIuZ2l0U3RhdHVzfHx7fSkubGFzdENvbW1pdC5zaG9ydEhhc2g/KHIuZ2l0U3RhdHVzfHx7fSkubGFzdENvbW1pdC5zaG9ydEhhc2g6KHIuZ2l0U3RhdHVzfHx7fSkuaGVhZD8oci5naXRTdGF0dXN8fHt9KS5oZWFkLnN1YnN0cmluZygwLDcpOiIiLGNvbW1pdFN1YmplY3Q6KHIuZ2l0U3RhdHVzfHx7fSkubGFzdENvbW1pdCYmKHIuZ2l0U3RhdHVzfHx7fSkubGFzdENvbW1pdC5zdWJqZWN0PyhyLmdpdFN0YXR1c3x8e30pLmxhc3RDb21taXQuc3ViamVjdDoiIix0YWc6KHIuZ2l0U3RhdHVzfHx7fSkubGF0ZXN0VGFnfHwiIn0sZD17YXV0b01lc3NhZ2U6YyxjdXN0b21NZXNzYWdlOmM/IiI6bCx0YWc6byxhdXRvVGFnOiEhKHMmJiFvKSxwdXNoOiEhdS5wdXNoLHN1Ym1vZHVsZTohIXR9O3IucXVpY2tDb21taXRTdWJtaXR0aW5nPSEwLHIucXVpY2tDb21taXRTdWJtb2R1bGVJbnRlbnQ9ISF0LHIucXVpY2tDb21taXRBdXRvR2VuZXJhdGluZz1jfHxkLmF1dG9UYWcsci5xdWlja0NvbW1pdEVycm9yPSIiLHIucXVpY2tDb21taXRQdXNoRXJyb3I9IiIsci5xdWlja0NvbW1pdFJlc3VsdD1udWxsLHIucXVpY2tDb21taXREcmFnQWN0aW9uPXUuYWN0aW9uLFB0KCksZmV0Y2goIi9hcGkvc2Vzc2lvbnMvIitlbmNvZGVVUklDb21wb25lbnQoci5zZWxlY3RlZElkKSsiL3F1aWNrLWNvbW1pdCIse21ldGhvZDoiUE9TVCIsY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGJvZHk6SlNPTi5zdHJpbmdpZnkoZCl9KS50aGVuKGZ1bmN0aW9uKHYpe3JldHVybiB2Lmpzb24oKS50aGVuKGZ1bmN0aW9uKGgpe3JldHVybntvazp2Lm9rLGRhdGE6aH19KX0pLnRoZW4oZnVuY3Rpb24odil7aWYoIXYub2spdGhyb3cgbmV3IEVycm9yKHYuZGF0YSYmdi5kYXRhLmVycm9yfHwiXHU1RkVCXHU2Mzc3XHU2M0QwXHU0RUE0XHU1OTMxXHU4RDI1XHUzMDAyIik7dmFyIGg9di5kYXRhfHx7fSxnPWguY29tbWl0JiZoLmNvbW1pdC5oYXNoP2guY29tbWl0Lmhhc2guc3Vic3RyaW5nKDAsNyk6IiIsbT1oLnRhZyYmaC50YWcubmFtZT9oLnRhZy5uYW1lOiIiLHk9QXJyYXkuaXNBcnJheShoLnN1Ym1vZHVsZUNvbW1pdHMpP2guc3VibW9kdWxlQ29tbWl0czpbXSx3PXkubGVuZ3RoPjA/Ilx1NURGMlx1NTE0OFx1NjNEMFx1NEVBNCAiK3kubGVuZ3RoKyIgXHU0RTJBIHN1Ym1vZHVsZVx1RkYwOCIreS5tYXAoZnVuY3Rpb24oQil7cmV0dXJuIEIucGF0aH0pLmpvaW4oIlx1MzAwMSIpKyJcdUZGMDlcdUZGMEMiOiIiLEU9dysiXHU1REYyXHU2M0QwXHU0RUE0IisoZz8iICIrZzoiIikrKG0/Ilx1RkYwQ1x1NURGMlx1NjI1MyBUYWcgIittOiIiKTtyLnF1aWNrQ29tbWl0UmVzdWx0PXthY3Rpb246dS5hY3Rpb24saW5jbHVkZVN1Ym1vZHVsZTohIXQscHVzaGVkOiEhaC5wdXNoZWQscHVzaEVycm9yOmgucHVzaEVycm9yfHwiIixjb21taXRIYXNoOmcsY29tbWl0TWVzc2FnZTpoLmNvbW1pdCYmaC5jb21taXQubWVzc2FnZT9oLmNvbW1pdC5tZXNzYWdlOmwsdGFnTmFtZTptLG9sZFRhZzpmLnRhZyxvbGRDb21taXRIYXNoOmYuY29tbWl0SGFzaCxvbGRDb21taXRTdWJqZWN0OmYuY29tbWl0U3ViamVjdCxzdWJtb2R1bGVDb3VudDp5Lmxlbmd0aH0sdS5wdXNoJiYhaC5wdXNoRXJyb3I/KHR5cGVvZiBrPT0iZnVuY3Rpb24iJiZrKEUrIlx1RkYwQ1x1NURGMlx1NjNBOFx1OTAwMVx1MzAwMiIsInN1Y2Nlc3MiKSxObigpKToodHlwZW9mIGs9PSJmdW5jdGlvbiImJmsoRSsoaC5wdXNoRXJyb3I/Ilx1RkYxQnB1c2ggXHU1OTMxXHU4RDI1XHVGRjFBIitoLnB1c2hFcnJvcjoiXHUzMDAyIiksaC5wdXNoRXJyb3I/ImVycm9yIjoic3VjY2VzcyIpLHIuc2VsZWN0ZWRJZCYmRG4oci5zZWxlY3RlZElkLHtmb3JjZTohMH0pLnRoZW4oZnVuY3Rpb24oKXtyLnF1aWNrQ29tbWl0T3BlbiYmUHQoKX0pKX0pLmNhdGNoKGZ1bmN0aW9uKHYpe3IucXVpY2tDb21taXRFcnJvcj12JiZ2Lm1lc3NhZ2V8fCJcdTVGRUJcdTYzNzdcdTYzRDBcdTRFQTRcdTU5MzFcdThEMjVcdTMwMDIifSkuZmluYWxseShmdW5jdGlvbigpe3IucXVpY2tDb21taXRTdWJtaXR0aW5nPSExLHIucXVpY2tDb21taXRBdXRvR2VuZXJhdGluZz0hMSxyLnF1aWNrQ29tbWl0T3BlbiYmUHQoKX0pfX1mdW5jdGlvbiBNYyhlKXtpZighKCFyLnNlbGVjdGVkSWR8fHIucXVpY2tDb21taXRQdXNoaW5nKSl7dmFyIHQ9ISEoZSYmZS5wdXNoQ29tbWl0cyksbj0hIShlJiZlLnB1c2hUYWdzKSxpPSEhKGUmJmUuY2xvc2VPblN1Y2Nlc3MpO2lmKCEoIXQmJiFuKSl7dmFyIGE9ci5xdWlja0NvbW1pdFJlc3VsdHx8e30sdT0hIWEuaW5jbHVkZVN1Ym1vZHVsZTtyLnF1aWNrQ29tbWl0UHVzaGluZz0hMCxyLnF1aWNrQ29tbWl0UHVzaEVycm9yPSIiLFB0KCksZmV0Y2goIi9hcGkvc2Vzc2lvbnMvIitlbmNvZGVVUklDb21wb25lbnQoci5zZWxlY3RlZElkKSsiL2dpdC9wdXNoIix7bWV0aG9kOiJQT1NUIixjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sYm9keTpKU09OLnN0cmluZ2lmeSh7cHVzaENvbW1pdHM6dCxwdXNoVGFnczpuLHN1Ym1vZHVsZTp1LHRhZzphLnRhZ05hbWV8fCIifSl9KS50aGVuKGZ1bmN0aW9uKHMpe3JldHVybiBzLmpzb24oKS50aGVuKGZ1bmN0aW9uKG8pe3JldHVybntvazpzLm9rLGRhdGE6b319KX0pLnRoZW4oZnVuY3Rpb24ocyl7dmFyIG89cy5kYXRhfHx7fTtpZighcy5vayl0aHJvdyBuZXcgRXJyb3IobyYmby5lcnJvcnx8Ilx1NjNBOFx1OTAwMVx1NTkzMVx1OEQyNVx1MzAwMiIpO2lmKG8uZXJyb3Ipe3IucXVpY2tDb21taXRQdXNoRXJyb3I9by5lcnJvcix0eXBlb2Ygaz09ImZ1bmN0aW9uIiYmaygiXHU2M0E4XHU5MDAxXHU1OTMxXHU4RDI1XHVGRjFBIitvLmVycm9yLCJlcnJvciIpO3JldHVybn12YXIgbD1bXTtvLnB1c2hlZENvbW1pdHMmJmwucHVzaCgiY29tbWl0cyIpLG8ucHVzaGVkVGFncyYmbC5wdXNoKCJ0YWdzIik7dmFyIGM9bC5sZW5ndGg/bC5qb2luKCIgXHU1NDhDICIpOiJcdUZGMDhcdTY1RTBcdTUxODVcdTVCQjlcdUZGMDkiO3R5cGVvZiBrPT0iZnVuY3Rpb24iJiZrKCJcdTVERjJcdTYzQThcdTkwMDEgIitjLCJzdWNjZXNzIiksci5xdWlja0NvbW1pdFJlc3VsdCYmKHIucXVpY2tDb21taXRSZXN1bHQucHVzaGVkPSEwKSxpPyhObigpLHIuc2VsZWN0ZWRJZCYmRG4oci5zZWxlY3RlZElkLHtmb3JjZTohMH0pKTpyLnNlbGVjdGVkSWQmJkRuKHIuc2VsZWN0ZWRJZCx7Zm9yY2U6ITB9KS50aGVuKGZ1bmN0aW9uKCl7ci5xdWlja0NvbW1pdE9wZW4mJlB0KCl9KX0pLmNhdGNoKGZ1bmN0aW9uKHMpe3IucXVpY2tDb21taXRQdXNoRXJyb3I9cyYmcy5tZXNzYWdlfHwiXHU2M0E4XHU5MDAxXHU1OTMxXHU4RDI1XHUzMDAyIix0eXBlb2Ygaz09ImZ1bmN0aW9uIiYmayhyLnF1aWNrQ29tbWl0UHVzaEVycm9yLCJlcnJvciIpfSkuZmluYWxseShmdW5jdGlvbigpe3IucXVpY2tDb21taXRQdXNoaW5nPSExLHIucXVpY2tDb21taXRPcGVuJiZQdCgpfSl9fX1mdW5jdGlvbiBxYyhlKXt2YXIgdD0oZXx8IiIpLnRyaW0oKTtpZih0PT09Ij8/IilyZXR1cm57bGV0dGVyOiJVIixjbHM6InVudHJhY2tlZCIsdGl0bGU6Ilx1NjcyQVx1OERERlx1OEUyQSJ9O2lmKHQ9PT0iISEiKXJldHVybntsZXR0ZXI6IkkiLGNsczoiaWdub3JlZCIsdGl0bGU6Ilx1NURGMlx1NUZGRFx1NzU2NSJ9O2Zvcih2YXIgbj0iIixpPTA7aTxlLmxlbmd0aDtpKyspaWYoZVtpXSYmZVtpXSE9PSIuIiYmZVtpXSE9PSIgIil7bj1lW2ldO2JyZWFrfW49KG58fHRbMF18fCI/IikudG9VcHBlckNhc2UoKTt2YXIgYT17QTp7Y2xzOiJhZGQiLHRpdGxlOiJcdTY1QjBcdTU4OUUifSxNOntjbHM6Im1vZCIsdGl0bGU6Ilx1NEZFRVx1NjUzOSJ9LEQ6e2NsczoiZGVsIix0aXRsZToiXHU1MjIwXHU5NjY0In0sUjp7Y2xzOiJyZW4iLHRpdGxlOiJcdTkxQ0RcdTU0N0RcdTU0MEQifSxDOntjbHM6InJlbiIsdGl0bGU6Ilx1NTkwRFx1NTIzNiJ9LFQ6e2NsczoibW9kIix0aXRsZToiXHU3QzdCXHU1NzhCXHU1M0Q4XHU2NkY0In0sVTp7Y2xzOiJkZWwiLHRpdGxlOiJcdTUxQjJcdTdBODEifX0sdT1hW25dfHx7Y2xzOiJvdGhlciIsdGl0bGU6Ilx1NURGMlx1NjZGNFx1NjUzOSJ9O3JldHVybntsZXR0ZXI6bixjbHM6dS5jbHMsdGl0bGU6dS50aXRsZX19ZnVuY3Rpb24gQ2coZSl7dmFyIHQ9ZS5tYXAoZnVuY3Rpb24obil7dmFyIGk9cWMobi5zdGF0dXN8fCIiKSxhPW4ucGF0aHx8IiIsdT1hLmxhc3RJbmRleE9mKCIvIikscz11Pj0wP2Euc2xpY2UoMCx1KzEpOiIiLG89dT49MD9hLnNsaWNlKHUrMSk6YSxsPSIiO2lmKG4uaXNTdWJtb2R1bGUpe3ZhciBjPW4uc3VibW9kdWxlU3RhdGV8fHt9LGY9W107Yy5jb21taXRDaGFuZ2VkJiZmLnB1c2goIlx1NjVCMFx1NjMwN1x1OTQ4OCIpLGMuaGFzVHJhY2tlZENoYW5nZXMmJmYucHVzaCgiZGlydHkiKSxjLmhhc1VudHJhY2tlZCYmZi5wdXNoKCJcdTY3MkFcdThEREZcdThFMkEiKTt2YXIgZD1mLmxlbmd0aD8ic3VibW9kdWxlIFx4QjcgIitmLmpvaW4oIiAvICIpOiJzdWJtb2R1bGUiO2w9JzxzcGFuIGNsYXNzPSJxYy1zdWJtb2R1bGUtYmFkZ2UiPicrcChkKSsiPC9zcGFuPiJ9cmV0dXJuJzxkaXYgY2xhc3M9InFjLWZpbGUtcm93IiB0aXRsZT0iJytwKGEpKyciPjxzcGFuIGNsYXNzPSJxYy1maWxlLWJhZGdlIHFjLWJhZGdlLScraS5jbHMrJyIgdGl0bGU9IicrcChpLnRpdGxlKSsnIj4nK3AoaS5sZXR0ZXIpKyc8L3NwYW4+PHNwYW4gY2xhc3M9InFjLWZpbGUtcGF0aCI+Jysocz8nPHNwYW4gY2xhc3M9InFjLWZpbGUtZGlyIj4nK3AocykrIjwvc3Bhbj4iOiIiKSsnPHNwYW4gY2xhc3M9InFjLWZpbGUtbmFtZSI+JytwKG8pKyI8L3NwYW4+PC9zcGFuPiIrbCsiPC9kaXY+In0pLmpvaW4oIiIpO3JldHVybiB0fHwnPGRpdiBjbGFzcz0icWMtZW1wdHkiPlx1NkNBMVx1NjcwOVx1NTNFRlx1NjNEMFx1NEVBNFx1NzY4NFx1NjUzOVx1NTJBOFx1MzAwMjwvZGl2Pid9ZnVuY3Rpb24gWHIoKXtyZXR1cm4gci5xdWlja0NvbW1pdFN1Ym1pdHRpbmd8fHIucXVpY2tDb21taXRQdXNoaW5nfWZ1bmN0aW9uIFpyKGUsdCxuLGkpe3JldHVybic8ZGl2IGNsYXNzPSJxYy1wYWlyJysoaT8iICIraToiIikrJyI+PGRpdiBjbGFzcz0icWMtcGFpci1sYWJlbCI+JytwKGUpKyc8L2Rpdj48ZGl2IGNsYXNzPSJxYy1wYWlyLWZsb3ciPjxkaXYgY2xhc3M9InFjLXBhaXItdmFsdWUgcWMtcGFpci12YWx1ZS0tZnJvbSI+Jyt0Kyc8L2Rpdj48ZGl2IGNsYXNzPSJxYy1wYWlyLWFycm93IiBhcmlhLWhpZGRlbj0idHJ1ZSI+XHUyMTkyPC9kaXY+PGRpdiBjbGFzcz0icWMtcGFpci12YWx1ZSBxYy1wYWlyLXZhbHVlLS10byI+JytuKyI8L2Rpdj48L2Rpdj48L2Rpdj4ifWZ1bmN0aW9uIE9jKCl7dmFyIGU9ci5naXRTdGF0dXN8fHt9O2lmKGUuaGFzU3VibW9kdWxlPT09ITApcmV0dXJuITA7Zm9yKHZhciB0PWUuZmlsZXN8fFtdLG49MDtuPHQubGVuZ3RoO24rKylpZih0W25dJiZ0W25dLmlzU3VibW9kdWxlPT09ITApcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gUGMoZSl7dmFyIHQ9IWV8fFhyKCksbj1PYygpO2lmKHIucXVpY2tDb21taXRTdWJtaXR0aW5nKXt2YXIgaT1yLnF1aWNrQ29tbWl0U3VibW9kdWxlSW50ZW50PyJcdUZGMDhcdTU0MkIgc3VibW9kdWxlXHVGRjA5IjoiIixhPShyLnF1aWNrQ29tbWl0QXV0b0dlbmVyYXRpbmc/IkFJIFx1NzUxRlx1NjIxMCArIFx1NjNEMFx1NEVBNFx1NEUyRFx1MjAyNiI6Ilx1NjI2N1x1ODg0Q1x1NEUyRFx1MjAyNiIpK2k7cmV0dXJuJzxkaXYgY2xhc3M9InFjLWRvY2std3JhcCI+PGRpdiBjbGFzcz0icWMtZG9jay1idXN5IiByb2xlPSJzdGF0dXMiPjxzcGFuIGNsYXNzPSJxYy1kb2NrLWJ1c3ktZG90Ij48L3NwYW4+JytwKGEpKyI8L2Rpdj48L2Rpdj4ifWZ1bmN0aW9uIHUobyxsLGMpe3JldHVybic8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InFjLWNoaXAgcWMtY2hpcC0tJytvKyciIGRhdGEtY2hpcD0iJytvKyciJysoYz8nIHRpdGxlPSInK3AoYykrJyInOiIiKSsodD8iIGRpc2FibGVkIjoiIikrJz48c3BhbiBjbGFzcz0icWMtY2hpcC1kb3QiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L3NwYW4+PHNwYW4gY2xhc3M9InFjLWNoaXAtbGFiZWwiPicrbCsiPC9zcGFuPjwvYnV0dG9uPiJ9dmFyIHM9dD9lPyIiOiJcdTVERTVcdTRGNUNcdTUzM0FcdTVFNzJcdTUxQzBcdUZGMENcdTY1RTBcdTUzRUZcdTYzRDBcdTRFQTQiOiJcdTYyRDZcdTUyQThcdTc4QzFcdTU0MzhcdTdFQzRcdTU0MDggXHhCNyBcdTRFMjJcdThGREJcdTYzRDBcdTRFQTRcdTUzM0FcdTYyNjdcdTg4NEMgXHhCNyBcdTUzNTVcdTUxRkJcdTc2RjRcdTYzQTVcdTYyNjdcdTg4NENcdThCRTVcdTk4NzkiKyhuPyIgXHhCNyBTdWIgXHU3NDAzXHU1M0VGXHU5MDA5XHVGRjBDXHU3RUIzXHU1MTY1XHU1NDBFXHU5MDEyXHU1RjUyXHU1OTA0XHU3NDA2IHN1Ym1vZHVsZSI6IiIpO3JldHVybic8ZGl2IGNsYXNzPSJxYy1kb2NrLXdyYXAgcWMtZG9jay13cmFwLS1tYWduZXRpYyInKyh0PycgZGF0YS1kaXNhYmxlZD0iMSInOiIiKSsnPjxkaXYgaWQ9InFjLWRvY2stc3RhZ2UiIGNsYXNzPSJxYy1kb2NrLXN0YWdlIiBkYXRhLWFjdGlvbj0iY29tbWl0IiBkYXRhLWhvdD0iMCI+PGRpdiBpZD0icWMtZG9jay1maWVsZCIgY2xhc3M9InFjLWRvY2stZmllbGQiPjxkaXYgaWQ9InFjLWRvY2stY2x1c3RlciIgY2xhc3M9InFjLWRvY2stY2x1c3RlciIgYXJpYS1oaWRkZW49InRydWUiPjwvZGl2PicrdSgiY29tbWl0IiwiQ29tbWl0IikrdSgidGFnIiwiVGFnIikrdSgicHVzaCIsIlB1c2giKSsobj91KCJzdWIiLCJTdWIiLCJcdTYzRDBcdTRFQTRcdTcyMzZcdTRFRDNcdTVFOTNcdTVFNzZcdTkwMTJcdTVGNTJcdThGREJcdTUxNjUgc3VibW9kdWxlXHVGRjA4Y29tbWl0IC8gdGFnIC8gXHU1MjA2XHU1MjJCXHU2M0E4XHU5MDAxXHVGRjA5Iik6IiIpKyc8L2Rpdj48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgaWQ9InFjLWRvY2stbGF1bmNoIiBjbGFzcz0icWMtZG9jay1sYXVuY2giJysodD8iIGRpc2FibGVkIjoiIikrJyBhcmlhLWxhYmVsPSJcdTYyNjdcdTg4NENcdTYzRDBcdTRFQTQiPjxzcGFuIGNsYXNzPSJxYy1kb2NrLWxhdW5jaC1hcnJvdyIgYXJpYS1oaWRkZW49InRydWUiPjxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjIiIGhlaWdodD0iMjIiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIuMyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNNSAxMmgxMk0xMyA2bDYgNi02IDYiLz48L3N2Zz48L3NwYW4+PHNwYW4gaWQ9InFjLWRvY2stbGF1bmNoLWxhYmVsIiBjbGFzcz0icWMtZG9jay1sYXVuY2gtbGFiZWwiPlx1NjNEMFx1NEVBNDwvc3Bhbj48L2J1dHRvbj48L2Rpdj48ZGl2IGNsYXNzPSJxYy1kb2NrLWhpbnQiPicrcChzKSsiPC9kaXY+PC9kaXY+In1mdW5jdGlvbiBIYygpe3ZhciBlPXIucXVpY2tDb21taXRSZXN1bHQ7aWYoIWUpcmV0dXJuIiI7dmFyIHQ9ZS5vbGRDb21taXRIYXNoPyI8Y29kZT4iK3AoZS5vbGRDb21taXRIYXNoKSsiPC9jb2RlPiIrKGUub2xkQ29tbWl0U3ViamVjdD8iPHNwYW4+IitwKGUub2xkQ29tbWl0U3ViamVjdCkrIjwvc3Bhbj4iOiIiKTonPHNwYW4gY2xhc3M9InFjLW11dGVkIj5cdTY1RTA8L3NwYW4+JyxuPWUuY29tbWl0SGFzaD8iPGNvZGU+IitwKGUuY29tbWl0SGFzaCkrIjwvY29kZT48c3Bhbj4iK3AoZS5jb21taXRNZXNzYWdlfHwiIikrIjwvc3Bhbj4iOic8c3BhbiBjbGFzcz0icWMtbXV0ZWQiPlx1NjVFMDwvc3Bhbj4nLGk9ZS5vbGRUYWc/Ijxjb2RlPiIrcChlLm9sZFRhZykrIjwvY29kZT4iOic8c3BhbiBjbGFzcz0icWMtbXV0ZWQiPlx1NjVFMCB0YWc8L3NwYW4+JyxhPWUudGFnTmFtZT8iPGNvZGU+IitwKGUudGFnTmFtZSkrIjwvY29kZT4iOic8c3BhbiBjbGFzcz0icWMtbXV0ZWQiPlx1NjcyQVx1NjI1MyB0YWc8L3NwYW4+Jyx1PWUucHVzaGVkPyc8c3BhbiBjbGFzcz0icWMtcmVzdWx0LXB1c2hlZCI+XHU1REYyXHU2M0E4XHU5MDAxPC9zcGFuPic6JzxidXR0b24gaWQ9InF1aWNrLWNvbW1pdC1wdXNoLWFmdGVyLWJ0biIgY2xhc3M9ImJ0biBidG4tcHJpbWFyeSBidG4tc20iIHR5cGU9ImJ1dHRvbiInKyhyLnF1aWNrQ29tbWl0UHVzaGluZz8iIGRpc2FibGVkIjoiIikrIj4iKyhyLnF1aWNrQ29tbWl0UHVzaGluZz8iXHU2M0E4XHU5MDAxXHU0RTJELi4uIjoiUHVzaCAmIENsb3NlIikrIjwvYnV0dG9uPiI7cmV0dXJuJzxzZWN0aW9uIGNsYXNzPSJxYy1yZXN1bHQtcGFuZWwiPicrWnIoIkNvbW1pdCIsdCxuLCIiKStacigiVGFnIixpLGEsInFjLXBhaXItLXRhZyIpKyhlLnB1c2hFcnJvcnx8ci5xdWlja0NvbW1pdFB1c2hFcnJvcj8nPHAgY2xhc3M9ImVycm9yLW1lc3NhZ2UiPicrcChlLnB1c2hFcnJvcnx8ci5xdWlja0NvbW1pdFB1c2hFcnJvcikrIjwvcD4iOiIiKSsnPGRpdiBjbGFzcz0icWMtcmVzdWx0LWFjdGlvbnMiPjxidXR0b24gaWQ9InF1aWNrLWNvbW1pdC1jYW5jZWwtYnRuIiBjbGFzcz0iYnRuIGJ0bi1naG9zdCBidG4tc20iIHR5cGU9ImJ1dHRvbiI+XHU1MTczXHU5NUVEPC9idXR0b24+Jyt1KyI8L2Rpdj48L3NlY3Rpb24+In1mdW5jdGlvbiBycygpe3ZhciBlPXIuZ2l0U3RhdHVzfHx7fSx0PXIucXVpY2tDb21taXRGb3JtfHx7Y3VzdG9tTWVzc2FnZToiIix0YWc6IiIsdGFnRWRpdGVkOiExfSxuPShlLm1vZGlmaWVkQ291bnR8fDApPjAsaT1yLnF1aWNrQ29tbWl0R2VuZXJhdGluZyxhPWUubGFzdENvbW1pdHx8e30sdT1hLnNob3J0SGFzaD8iPGNvZGU+IitwKGEuc2hvcnRIYXNoKSsiPC9jb2RlPjxzcGFuPiIrcChhLnN1YmplY3R8fCIiKSsiPC9zcGFuPiI6ZS5oZWFkPyI8Y29kZT4iK3AoZS5oZWFkLnN1YnN0cmluZygwLDcpKSsiPC9jb2RlPiI6JzxzcGFuIGNsYXNzPSJxYy1tdXRlZCI+XHU2NUUwIGNvbW1pdDwvc3Bhbj4nLHM9ZS5sYXRlc3RUYWc/Ijxjb2RlPiIrcChlLmxhdGVzdFRhZykrIjwvY29kZT4iOic8c3BhbiBjbGFzcz0icWMtbXV0ZWQiPlx1NjVFMCB0YWc8L3NwYW4+JyxvPSc8aW5wdXQgdHlwZT0idGV4dCIgaWQ9InF1aWNrLWNvbW1pdC10YWciIGNsYXNzPSJmaWVsZC1pbnB1dCBxYy10YWctZmllbGQtaW5wdXQiIHBsYWNlaG9sZGVyPSJcdTc1NTlcdTdBN0FcdTUyMTkgQUkgXHU3NTFGXHU2MjEwIiB2YWx1ZT0iJytwKHQudGFnfHwiIikrJyInKyhyLnF1aWNrQ29tbWl0U3VibWl0dGluZz8iIGRpc2FibGVkIjoiIikrIj4iLGw9Jzx0ZXh0YXJlYSBpZD0icXVpY2stY29tbWl0LW1lc3NhZ2UiIGNsYXNzPSJmaWVsZC1pbnB1dCBxYy1tZXNzYWdlLWlucHV0IiByb3dzPSIzIiBwbGFjZWhvbGRlcj0iTmV3IGNvbW1pdCBtZXNzYWdlIiAnKyhyLnF1aWNrQ29tbWl0U3VibWl0dGluZz8iZGlzYWJsZWQiOiIiKSsiPiIrcCh0LmN1c3RvbU1lc3NhZ2V8fCIiKSsiPC90ZXh0YXJlYT4iLGM9W107Yy5wdXNoKGUuYnJhbmNofHwiKG5vIGJyYW5jaCkiKSxjLnB1c2gobj8oZS5tb2RpZmllZENvdW50fHwwKSsiIFx1NEUyQVx1NjUzOVx1NTJBOCI6Ilx1NURFNVx1NEY1Q1x1NTMzQVx1NUU3Mlx1NTFDMCIpLHR5cGVvZiBlLmFoZWFkPT0ibnVtYmVyIiYmZS5haGVhZD4wJiZjLnB1c2goIlx1MjE5MSIrZS5haGVhZCksdHlwZW9mIGUuYmVoaW5kPT0ibnVtYmVyIiYmZS5iZWhpbmQ+MCYmYy5wdXNoKCJcdTIxOTMiK2UuYmVoaW5kKTt2YXIgZj1yLnF1aWNrQ29tbWl0UmVzdWx0PyIiOic8c2VjdGlvbiBjbGFzcz0icWMtcmVsZWFzZS1wYW5lbCI+PGRpdiBjbGFzcz0icWMtbWVzc2FnZS1oZWFkZXIiPjxzcGFuIGNsYXNzPSJxYy1zZWN0aW9uLXRpdGxlIj5OZXc8L3NwYW4+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGlkPSJxdWljay1jb21taXQtYWktYnRuIiBjbGFzcz0iYnRuIGJ0bi1naG9zdCBidG4tc20gcWMtYWktYnRuIicrKGk/IiBkaXNhYmxlZCI6IiIpKycgdGl0bGU9IkFJIFx1NzUxRlx1NjIxMCBjb21taXQgbWVzc2FnZSBcdTRFMEUgdGFnIj48c3ZnIHZpZXdCb3g9IjAgMCAxNiAxNiIgd2lkdGg9IjEzIiBoZWlnaHQ9IjEzIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHBhdGggZD0iTTggMS41bDEuNCAzLjZMMTMgNi41IDkuNCA3LjkgOCAxMS41IDYuNiA3LjkgMyA2LjVsMy42LTEuNEw4IDEuNXpNMTIuNSAxMC41bC43IDEuOCAxLjguNy0xLjguNy0uNyAxLjgtLjctMS44LTEuOC0uNyAxLjgtLjcuNy0xLjh6IiBmaWxsPSJjdXJyZW50Q29sb3IiLz48L3N2Zz48c3Bhbj4nKyhpPyJcdTc1MUZcdTYyMTBcdTRFMkQuLi4iOiJBSSIpKyI8L3NwYW4+PC9idXR0b24+PC9kaXY+IitacigiQ29tbWl0Iix1LGwsInFjLXBhaXItLWNvbW1pdCIpK1pyKCJUYWciLHMsbywicWMtcGFpci0tdGFnIikrKHIucXVpY2tDb21taXRFcnJvcj8nPHAgY2xhc3M9ImVycm9yLW1lc3NhZ2UiPicrcChyLnF1aWNrQ29tbWl0RXJyb3IpKyI8L3A+IjoiIikrUGMobikrJzxkaXYgY2xhc3M9InFjLW1vZGFsLWFjdGlvbnMiPjxidXR0b24gaWQ9InF1aWNrLWNvbW1pdC1jYW5jZWwtYnRuIiBjbGFzcz0iYnRuIGJ0bi1naG9zdCBidG4tc20iIHR5cGU9ImJ1dHRvbiI+XHU1M0Q2XHU2RDg4PC9idXR0b24+PC9kaXY+PC9zZWN0aW9uPicsZD1IYygpO3JldHVybic8c2VjdGlvbiBpZD0icXVpY2stY29tbWl0LW1vZGFsIiBjbGFzcz0ibW9kYWwtYmFja2Ryb3AnKyhyLnF1aWNrQ29tbWl0T3Blbj8iIjoiIGhpZGRlbiIpKyciPjxkaXYgY2xhc3M9Im1vZGFsIHF1aWNrLWNvbW1pdC1tb2RhbCIgcm9sZT0iZGlhbG9nIiBhcmlhLWxhYmVsbGVkYnk9InF1aWNrLWNvbW1pdC10aXRsZSI+PGRpdiBjbGFzcz0ibW9kYWwtaGVhZGVyIj48ZGl2PjxoMiBpZD0icXVpY2stY29tbWl0LXRpdGxlIiBjbGFzcz0ibW9kYWwtdGl0bGUiPlx1NUZFQlx1NjM3N1x1NjNEMFx1NEVBNDwvaDI+PHAgY2xhc3M9Im1vZGFsLXN1YnRpdGxlIj4nK3AoYy5qb2luKCIgXHhCNyAiKSkrJzwvcD48L2Rpdj48YnV0dG9uIGlkPSJxdWljay1jb21taXQtY2xvc2UtYnRuIiBjbGFzcz0iYnRuIGJ0bi1naG9zdCBidG4taWNvbiBtb2RhbC1jbG9zZS1idG4iIHR5cGU9ImJ1dHRvbiIgYXJpYS1sYWJlbD0iXHU1MTczXHU5NUVEIj48c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyLjQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxsaW5lIHgxPSI2IiB5MT0iNiIgeDI9IjE4IiB5Mj0iMTgiLz48bGluZSB4MT0iMTgiIHkxPSI2IiB4Mj0iNiIgeTI9IjE4Ii8+PC9zdmc+PC9idXR0b24+PC9kaXY+PGRpdiBjbGFzcz0ibW9kYWwtYm9keSI+JytmK2QrIjwvZGl2PjwvZGl2Pjwvc2VjdGlvbj4ifWZ1bmN0aW9uIF9jKCl7cmV0dXJuJzxzZWN0aW9uIGlkPSJ3b3JrdHJlZS1tZXJnZS1tb2RhbCIgY2xhc3M9Im1vZGFsLWJhY2tkcm9wIGhpZGRlbiI+PGRpdiBjbGFzcz0ibW9kYWwgd29ya3RyZWUtbWVyZ2UtbW9kYWwiPjxkaXYgY2xhc3M9Im1vZGFsLWhlYWRlciI+PGRpdj48aDIgY2xhc3M9Im1vZGFsLXRpdGxlIj5cdTU0MDhcdTVFNzYgV29ya3RyZWU8L2gyPjxwIGNsYXNzPSJtb2RhbC1zdWJ0aXRsZSI+XHU2OEMwXHU2N0U1XHU1RjUzXHU1MjREXHU0RUZCXHU1MkExXHU1MjA2XHU2NTJGXHU1RTc2XHU1RkVCXHU2Mzc3XHU1NDA4XHU1RTc2XHU1MjMwXHU0RTNCXHU1MjA2XHU2NTJGXHUzMDAyPC9wPjwvZGl2PjxidXR0b24gaWQ9ImNsb3NlLXdvcmt0cmVlLW1lcmdlLWJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tZ2hvc3QgYnRuLWljb24gbW9kYWwtY2xvc2UtYnRuIiB0eXBlPSJidXR0b24iIGFyaWEtbGFiZWw9Ilx1NTE3M1x1OTVFRCI+PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi40IiBzdHJva2UtbGluZWNhcD0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48bGluZSB4MT0iNiIgeTE9IjYiIHgyPSIxOCIgeTI9IjE4Ii8+PGxpbmUgeDE9IjE4IiB5MT0iNiIgeDI9IjYiIHkyPSIxOCIvPjwvc3ZnPjwvYnV0dG9uPjwvZGl2PjxkaXYgY2xhc3M9Im1vZGFsLWJvZHkiPjxkaXYgaWQ9Indvcmt0cmVlLW1lcmdlLWNvbnRlbnQiIGNsYXNzPSJ3b3JrdHJlZS1tZXJnZS1jb250ZW50Ij48L2Rpdj48cCBpZD0id29ya3RyZWUtbWVyZ2UtZXJyb3IiIGNsYXNzPSJlcnJvci1tZXNzYWdlIGhpZGRlbiI+PC9wPjxkaXYgY2xhc3M9Indvcmt0cmVlLW1lcmdlLWFjdGlvbnMiPjxidXR0b24gaWQ9Indvcmt0cmVlLW1lcmdlLWNhbmNlbC1idXR0b24iIGNsYXNzPSJidG4gYnRuLXNlY29uZGFyeSI+XHU1M0Q2XHU2RDg4PC9idXR0b24+PGJ1dHRvbiBpZD0id29ya3RyZWUtbWVyZ2UtY29uZmlybS1idXR0b24iIGNsYXNzPSJidG4gYnRuLXByaW1hcnkiPlx1Nzg2RVx1OEJBNFx1NTQwOFx1NUU3Nlx1NUU3Nlx1NkUwNVx1NzQwNjwvYnV0dG9uPjwvZGl2PjwvZGl2PjwvZGl2Pjwvc2VjdGlvbj4nfWZ1bmN0aW9uIE5jKCl7cmV0dXJuJzxzZWN0aW9uIGlkPSJzZXR0aW5ncy1tb2RhbCIgY2xhc3M9Im1vZGFsLWJhY2tkcm9wIGhpZGRlbiI+PGRpdiBjbGFzcz0ibW9kYWwgc2V0dGluZ3MtbW9kYWwiPjxkaXYgY2xhc3M9Im1vZGFsLWhlYWRlciBzZXR0aW5ncy1tb2RhbC1oZWFkZXIiPjxkaXYgY2xhc3M9InNldHRpbmdzLW1vZGFsLXRpdGxlLWdyb3VwIj48aDIgY2xhc3M9Im1vZGFsLXRpdGxlIj5cdThCQkVcdTdGNkU8L2gyPjxwIGNsYXNzPSJzZXR0aW5ncy1tb2RhbC1zdWJ0aXRsZSI+XHU4QzAzXHU2NTc0XHU1RTk0XHU3NTI4XHU5MTREXHU3RjZFXHUzMDAxXHU5MDFBXHU3N0U1XHUzMDAxXHU1Qjg5XHU1MTY4XHU1NDhDXHU2NjNFXHU3OTNBXHU1MDRGXHU1OTdEPC9wPjwvZGl2PjxidXR0b24gaWQ9ImNsb3NlLXNldHRpbmdzLWJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tZ2hvc3QgYnRuLWljb24gbW9kYWwtY2xvc2UtYnRuIiB0eXBlPSJidXR0b24iIGFyaWEtbGFiZWw9Ilx1NTE3M1x1OTVFRCI+PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi40IiBzdHJva2UtbGluZWNhcD0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48bGluZSB4MT0iNiIgeTE9IjYiIHgyPSIxOCIgeTI9IjE4Ii8+PGxpbmUgeDE9IjE4IiB5MT0iNiIgeDI9IjYiIHkyPSIxOCIvPjwvc3ZnPjwvYnV0dG9uPjwvZGl2PjxkaXYgY2xhc3M9Im1vZGFsLWJvZHkgc2V0dGluZ3MtbW9kYWwtYm9keSI+PGRpdiBjbGFzcz0ic2V0dGluZ3MtbGF5b3V0Ij48YXNpZGUgY2xhc3M9InNldHRpbmdzLXNpZGViYXIiPjxkaXYgY2xhc3M9InNldHRpbmdzLXNpZGViYXItaGVhZGVyIj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1zaWRlYmFyLXRpdGxlIj5cdTUwNEZcdTU5N0RcdThCQkVcdTdGNkU8L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1zaWRlYmFyLWhpbnQiPlx1NURFNlx1NEZBN1x1NTIwN1x1NjM2Mlx1NTIwNlx1NTMzQVx1RkYwQ1x1NTNGM1x1NEZBN1x1NjdFNVx1NzcwQlx1OEJFNlx1N0VDNlx1OEJGNFx1NjYwRVx1NEUwRVx1OTAwOVx1OTg3OVx1MzAwMjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLXRhYnMiIHJvbGU9InRhYmxpc3QiIGFyaWEtbGFiZWw9Ilx1OEJCRVx1N0Y2RVx1NTIwNlx1N0VDNCIgYXJpYS1vcmllbnRhdGlvbj0idmVydGljYWwiPjxidXR0b24gY2xhc3M9InNldHRpbmdzLXRhYiBhY3RpdmUiIGRhdGEtdGFiPSJhYm91dCIgcm9sZT0idGFiIiBhcmlhLXNlbGVjdGVkPSJ0cnVlIiBhcmlhLWNvbnRyb2xzPSJzZXR0aW5ncy10YWItYWJvdXQiPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy10YWItbWFpbiI+XHU1MTczXHU0RThFPC9zcGFuPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy10YWItbWV0YSI+XHU3MjQ4XHU2NzJDXHUzMDAxXHU2NkY0XHU2NUIwXHU0RTBFXHU4RkRFXHU2M0E1XHU2NUI5XHU1RjBGPC9zcGFuPjwvYnV0dG9uPjxidXR0b24gY2xhc3M9InNldHRpbmdzLXRhYiIgZGF0YS10YWI9ImdlbmVyYWwiIHJvbGU9InRhYiIgYXJpYS1zZWxlY3RlZD0iZmFsc2UiIGFyaWEtY29udHJvbHM9InNldHRpbmdzLXRhYi1nZW5lcmFsIj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdGFiLW1haW4iPlx1NTdGQVx1NjcyQ1x1OTE0RFx1N0Y2RTwvc3Bhbj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdGFiLW1ldGEiPlx1NEUzQlx1NjczQVx1MzAwMVx1NkEyMVx1NUYwRlx1MzAwMVx1OEJFRFx1OEEwMFx1MzAwMVx1NzZFRVx1NUY1NTwvc3Bhbj48L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJzZXR0aW5ncy10YWIiIGRhdGEtdGFiPSJub3RpZmljYXRpb25zIiByb2xlPSJ0YWIiIGFyaWEtc2VsZWN0ZWQ9ImZhbHNlIiBhcmlhLWNvbnRyb2xzPSJzZXR0aW5ncy10YWItbm90aWZpY2F0aW9ucyI+PHNwYW4gY2xhc3M9InNldHRpbmdzLXRhYi1tYWluIj5cdTkwMUFcdTc3RTU8L3NwYW4+PHNwYW4gY2xhc3M9InNldHRpbmdzLXRhYi1tZXRhIj5cdTYzRDBcdTc5M0FcdTk3RjNcdTRFMEVcdTZENEZcdTg5QzhcdTU2NjhcdTkwMUFcdTc3RTU8L3NwYW4+PC9idXR0b24+PGJ1dHRvbiBjbGFzcz0ic2V0dGluZ3MtdGFiIiBkYXRhLXRhYj0ic2VjdXJpdHkiIHJvbGU9InRhYiIgYXJpYS1zZWxlY3RlZD0iZmFsc2UiIGFyaWEtY29udHJvbHM9InNldHRpbmdzLXRhYi1zZWN1cml0eSI+PHNwYW4gY2xhc3M9InNldHRpbmdzLXRhYi1tYWluIj5cdTVCODlcdTUxNjg8L3NwYW4+PHNwYW4gY2xhc3M9InNldHRpbmdzLXRhYi1tZXRhIj5cdTVCQzZcdTc4MDFcdTRFMEVcdThCQzFcdTRFNjY8L3NwYW4+PC9idXR0b24+PGJ1dHRvbiBjbGFzcz0ic2V0dGluZ3MtdGFiIiBkYXRhLXRhYj0icHJlc2V0cyIgcm9sZT0idGFiIiBhcmlhLXNlbGVjdGVkPSJmYWxzZSIgYXJpYS1jb250cm9scz0ic2V0dGluZ3MtdGFiLXByZXNldHMiPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy10YWItbWFpbiI+XHU1NDdEXHU0RUU0XHU5ODg0XHU4QkJFPC9zcGFuPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy10YWItbWV0YSI+XHU2N0U1XHU3NzBCXHU1REYyXHU2NzA5XHU5ODg0XHU4QkJFPC9zcGFuPjwvYnV0dG9uPjxidXR0b24gY2xhc3M9InNldHRpbmdzLXRhYiIgZGF0YS10YWI9ImRpc3BsYXkiIHJvbGU9InRhYiIgYXJpYS1zZWxlY3RlZD0iZmFsc2UiIGFyaWEtY29udHJvbHM9InNldHRpbmdzLXRhYi1kaXNwbGF5Ij48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdGFiLW1haW4iPlx1NjYzRVx1NzkzQTwvc3Bhbj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdGFiLW1ldGEiPlx1NTM2MVx1NzI0N1x1OUVEOFx1OEJBNFx1NUM1NVx1NUYwMFx1ODg0Q1x1NEUzQTwvc3Bhbj48L2J1dHRvbj48L2Rpdj48L2FzaWRlPjxkaXYgY2xhc3M9InNldHRpbmdzLWNvbnRlbnQiPjxkaXYgY2xhc3M9InNldHRpbmdzLXBhbmVsIGFjdGl2ZSIgaWQ9InNldHRpbmdzLXRhYi1hYm91dCIgcm9sZT0idGFicGFuZWwiPjxkaXYgY2xhc3M9InNldHRpbmdzLXBhbmVsLWhlYWRlciI+PGgzIGNsYXNzPSJzZXR0aW5ncy1wYW5lbC10aXRsZSI+XHU1MTczXHU0RThFIFdhbmQ8L2gzPjxwIGNsYXNzPSJzZXR0aW5ncy1wYW5lbC1kZXNjIj5cdTY3RTVcdTc3MEJcdTcyNDhcdTY3MkNcdTRGRTFcdTYwNkZcdTMwMDFcdTY2RjRcdTY1QjBcdTcyQjZcdTYwMDFcdTU0OEMgQW5kcm9pZCBBcHAgXHU4RkRFXHU2M0E1XHU2NUI5XHU1RjBGXHUzMDAyPC9wPjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLWFib3V0LWluZm8iPjxkaXYgY2xhc3M9InNldHRpbmdzLWFib3V0LXJvdyI+PHNwYW4gY2xhc3M9InNldHRpbmdzLWxhYmVsIj5cdTUzMDVcdTU0MEQ8L3NwYW4+PHNwYW4gY2xhc3M9InNldHRpbmdzLXZhbHVlIiBpZD0ic2V0dGluZ3MtcGtnLW5hbWUiPi08L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtYWJvdXQtcm93Ij48c3BhbiBjbGFzcz0ic2V0dGluZ3MtbGFiZWwiPlx1NUY1M1x1NTI0RFx1NzI0OFx1NjcyQzwvc3Bhbj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdmFsdWUiIGlkPSJzZXR0aW5ncy12ZXJzaW9uIj4tPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLWFib3V0LXJvdyI+PHNwYW4gY2xhc3M9InNldHRpbmdzLWxhYmVsIj5Ob2RlLmpzIFx1ODk4MVx1NkM0Mjwvc3Bhbj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdmFsdWUiIGlkPSJzZXR0aW5ncy1ub2RlLXJlcSI+LTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1hYm91dC1yb3ciPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1sYWJlbCI+XHU0RUQzXHU1RTkzXHU1NzMwXHU1NzQwPC9zcGFuPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy12YWx1ZSIgaWQ9InNldHRpbmdzLXJlcG8tdXJsIj48YSBocmVmPSIjIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub29wZW5lciI+LTwvYT48L3NwYW4+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtdXBkYXRlLXNlY3Rpb24iIGlkPSJ3ZWItdXBkYXRlLXNlY3Rpb24iPjxkaXYgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taGVhZCI+PHNwYW4gY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taWNvbiI+Jyt6KCJnbG9iZSIse3NpemU6MTgsc3Ryb2tlV2lkdGg6MS43fSkrJzwvc3Bhbj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWQtdGV4dCI+PGg0IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWRpbmciPldlYiBcdTdBRUY8L2g0PjxwIGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLXN1YiI+XHU2RDRGXHU4OUM4XHU1NjY4XHU4QkJGXHU5NUVFXHU3Njg0XHU2NzBEXHU1MkExXHU3MjQ4XHU2NzJDPC9wPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLWFib3V0LXJvdyI+PHNwYW4gY2xhc3M9InNldHRpbmdzLWxhYmVsIj5cdTY3MDBcdTY1QjBcdTcyNDhcdTY3MkM8L3NwYW4+PHNwYW4gY2xhc3M9InNldHRpbmdzLXZhbHVlIiBpZD0ic2V0dGluZ3MtbGF0ZXN0LXZlcnNpb24iPi08L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtdXBkYXRlLWFjdGlvbnMiPjxidXR0b24gaWQ9ImNoZWNrLXVwZGF0ZS1idXR0b24iIGNsYXNzPSJidG4gYnRuLXNlY29uZGFyeSBidG4tc20iPlx1NjhDMFx1NjdFNVx1NjZGNFx1NjVCMDwvYnV0dG9uPjxidXR0b24gaWQ9ImRvLXVwZGF0ZS1idXR0b24iIGNsYXNzPSJidG4gYnRuLXByaW1hcnkgYnRuLXNtIGhpZGRlbiI+XHU2NkY0XHU2NUIwXHU1MjMwXHU2NzAwXHU2NUIwXHU3MjQ4PC9idXR0b24+PGJ1dHRvbiBpZD0iZG8tcmVzdGFydC1idXR0b24iIGNsYXNzPSJidG4gYnRuLXN1Y2Nlc3MgYnRuLXNtIGhpZGRlbiI+XHU5MUNEXHU1NDJGXHU3NTFGXHU2NTQ4PC9idXR0b24+PC9kaXY+PHAgaWQ9InVwZGF0ZS1tZXNzYWdlIiBjbGFzcz0iaGludCBoaWRkZW4iPjwvcD48ZGl2IGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtcm93Ij48ZGl2IGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtdGV4dCI+PHNwYW4gY2xhc3M9InNldHRpbmdzLXRvZ2dsZS10aXRsZSI+QmV0YSBcdTkwMUFcdTkwNTM8L3NwYW4+PHNwYW4gY2xhc3M9InNldHRpbmdzLXRvZ2dsZS1kZXNjIj5cdTY2RjRcdTY1QjBcdTUyMzAgbnBtIGJldGEgXHU3MjQ4XHU2NzJDXHVGRjA4dGFnICsgY29tbWl0IFx1NUMzRVx1NjgwN1x1RkYwOVx1RkYwQ1x1NUMxRFx1OUM5Q1x1NjVCMFx1NTI5Rlx1ODBGRFx1RkYwQ1x1NTNFRlx1ODBGRFx1NEUwRFx1N0EzM1x1NUI5QVx1MzAwMjwvc3Bhbj48L2Rpdj48bGFiZWwgY2xhc3M9InNldHRpbmdzLXN3aXRjaCI+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iYmV0YS1jaGFubmVsLXRvZ2dsZSIgY2xhc3M9InN3aXRjaC10b2dnbGUiPjxzcGFuIGNsYXNzPSJzd2l0Y2gtc2xpZGVyIj48L3NwYW4+PC9sYWJlbD48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtcm93Ij48ZGl2IGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtdGV4dCI+PHNwYW4gY2xhc3M9InNldHRpbmdzLXRvZ2dsZS10aXRsZSI+XHU4MUVBXHU1MkE4XHU2NkY0XHU2NUIwPC9zcGFuPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtZGVzYyI+XHU2OEMwXHU2RDRCXHU1MjMwXHU2NUIwXHU3MjQ4XHU2NzJDXHU1QzA2XHU4MUVBXHU1MkE4XHU0RTBCXHU4RjdEXHU1Qjg5XHU4OEM1XHU1RTc2XHU5MUNEXHU1NDJGXHU2NzBEXHU1MkExXHUzMDAyPC9zcGFuPjwvZGl2PjxsYWJlbCBjbGFzcz0ic2V0dGluZ3Mtc3dpdGNoIj48aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJhdXRvLXVwZGF0ZS13ZWItdG9nZ2xlIiBjbGFzcz0ic3dpdGNoLXRvZ2dsZSI+PHNwYW4gY2xhc3M9InN3aXRjaC1zbGlkZXIiPjwvc3Bhbj48L2xhYmVsPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLXVwZGF0ZS1zZWN0aW9uIGhpZGRlbiIgaWQ9ImFuZHJvaWQtYXBrLXNlY3Rpb24iPjxkaXYgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taGVhZCI+PHNwYW4gY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taWNvbiI+Jyt6KCJzbWFydHBob25lIix7c2l6ZToxOCxzdHJva2VXaWR0aDoxLjd9KSsnPC9zcGFuPjxkaXYgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taGVhZC10ZXh0Ij48aDQgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taGVhZGluZyI+QW5kcm9pZCBBcHA8L2g0PjxwIGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLXN1YiI+XHU1MzlGXHU3NTFGXHU1QkEyXHU2MjM3XHU3QUVGXHU3MjQ4XHU2NzJDXHU0RTBFIEFQSyBcdTRFMEJcdThGN0Q8L3A+PC9kaXY+PC9kaXY+PGRpdiBpZD0iYW5kcm9pZC1hcGstY3VycmVudC1yb3ciIGNsYXNzPSJzZXR0aW5ncy1hYm91dC1yb3cgaGlkZGVuIj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtbGFiZWwiPlx1NUY1M1x1NTI0RFx1NzI0OFx1NjcyQzwvc3Bhbj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdmFsdWUiIGlkPSJzZXR0aW5ncy1hbmRyb2lkLWFway1jdXJyZW50Ij4tPC9zcGFuPjwvZGl2PjxkaXYgaWQ9ImFuZHJvaWQtYXBrLWdpdGh1Yi1yb3ciIGNsYXNzPSJzZXR0aW5ncy1hYm91dC1yb3cgc2V0dGluZ3MtYWJvdXQtcm93LWFjdGlvbiBoaWRkZW4iPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1sYWJlbCI+XHU3RUJGXHU0RTBBXHU3MjQ4XHU2NzJDPC9zcGFuPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy12YWx1ZSBzZXR0aW5ncy12YWx1ZS1mbGV4IiBpZD0ic2V0dGluZ3MtYW5kcm9pZC1hcGstZ2l0aHViIj4tPC9zcGFuPjxidXR0b24gaWQ9ImRvd25sb2FkLWdpdGh1Yi1hcGstYnRuIiBjbGFzcz0iYnRuIGJ0bi1zZWNvbmRhcnkgYnRuLXNtIGhpZGRlbiIgdHlwZT0iYnV0dG9uIj5cdTRFMEJcdThGN0Q8L2J1dHRvbj48L2Rpdj48ZGl2IGlkPSJhbmRyb2lkLWFway1sb2NhbC1yb3ciIGNsYXNzPSJzZXR0aW5ncy1hYm91dC1yb3cgc2V0dGluZ3MtYWJvdXQtcm93LWFjdGlvbiBoaWRkZW4iPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1sYWJlbCI+XHU2NzJDXHU1NzMwXHU3MjQ4XHU2NzJDPC9zcGFuPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy12YWx1ZSBzZXR0aW5ncy12YWx1ZS1mbGV4IiBpZD0ic2V0dGluZ3MtYW5kcm9pZC1hcGstbG9jYWwiPi08L3NwYW4+PGJ1dHRvbiBpZD0iZG93bmxvYWQtbG9jYWwtYXBrLWJ0biIgY2xhc3M9ImJ0biBidG4tc2Vjb25kYXJ5IGJ0bi1zbSBoaWRkZW4iIHR5cGU9ImJ1dHRvbiI+XHU0RTBCXHU4RjdEPC9idXR0b24+PC9kaXY+PGRpdiBpZD0iYW5kcm9pZC1hdXRvLXVwZGF0ZS1yb3ciIGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtcm93IGhpZGRlbiI+PGRpdiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLXRleHQiPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtdGl0bGUiPlx1ODFFQVx1NTJBOFx1NjZGNFx1NjVCMDwvc3Bhbj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLWRlc2MiIGlkPSJhbmRyb2lkLWF1dG8tdXBkYXRlLWhpbnQiPlx1NjhDMFx1NkQ0Qlx1NTIzMFx1NjVCMFx1NzI0OCBBUEsgXHU2NUY2XHU4MUVBXHU1MkE4XHU2MkM5XHU4RDc3XHU0RTBCXHU4RjdEXHVGRjBDXHU1Qjg5XHU4OEM1XHU0RUNEXHU5NzAwXHU1NzI4XHU3Q0ZCXHU3RURGXHU0RTJEXHU3ODZFXHU4QkE0XHUzMDAyPC9zcGFuPjwvZGl2PjxsYWJlbCBjbGFzcz0ic2V0dGluZ3Mtc3dpdGNoIj48aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJhdXRvLXVwZGF0ZS1hcGstdG9nZ2xlIiBjbGFzcz0ic3dpdGNoLXRvZ2dsZSI+PHNwYW4gY2xhc3M9InN3aXRjaC1zbGlkZXIiPjwvc3Bhbj48L2xhYmVsPjwvZGl2PjxwIGlkPSJhbmRyb2lkLWFway1tZXNzYWdlIiBjbGFzcz0iaGludCBoaWRkZW4iPjwvcD48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy11cGRhdGUtc2VjdGlvbiBoaWRkZW4iIGlkPSJtYWNvcy1kbWctc2VjdGlvbiI+PGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkIj48c3BhbiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1pY29uIj4nK3ooImRlc2t0b3AiLHtzaXplOjE4LHN0cm9rZVdpZHRoOjEuN30pKyc8L3NwYW4+PGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkLXRleHQiPjxoNCBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkaW5nIj5tYWNPUyBBcHA8L2g0PjxwIGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLXN1YiI+XHU1MzlGXHU3NTFGXHU1QkEyXHU2MjM3XHU3QUVGXHU3MjQ4XHU2NzJDXHU0RTBFIERNRyBcdTRFMEJcdThGN0Q8L3A+PC9kaXY+PC9kaXY+PGRpdiBpZD0ibWFjb3MtZG1nLWN1cnJlbnQtcm93IiBjbGFzcz0ic2V0dGluZ3MtYWJvdXQtcm93IGhpZGRlbiI+PHNwYW4gY2xhc3M9InNldHRpbmdzLWxhYmVsIj5cdTVGNTNcdTUyNERcdTcyNDhcdTY3MkM8L3NwYW4+PHNwYW4gY2xhc3M9InNldHRpbmdzLXZhbHVlIiBpZD0ic2V0dGluZ3MtbWFjb3MtZG1nLWN1cnJlbnQiPi08L3NwYW4+PC9kaXY+PGRpdiBpZD0ibWFjb3MtZG1nLWdpdGh1Yi1yb3ciIGNsYXNzPSJzZXR0aW5ncy1hYm91dC1yb3cgc2V0dGluZ3MtYWJvdXQtcm93LWFjdGlvbiBoaWRkZW4iPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1sYWJlbCI+XHU3RUJGXHU0RTBBXHU3MjQ4XHU2NzJDPC9zcGFuPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy12YWx1ZSBzZXR0aW5ncy12YWx1ZS1mbGV4IiBpZD0ic2V0dGluZ3MtbWFjb3MtZG1nLWdpdGh1YiI+LTwvc3Bhbj48YnV0dG9uIGlkPSJkb3dubG9hZC1naXRodWItZG1nLWJ0biIgY2xhc3M9ImJ0biBidG4tc2Vjb25kYXJ5IGJ0bi1zbSBoaWRkZW4iIHR5cGU9ImJ1dHRvbiI+XHU0RTBCXHU4RjdEPC9idXR0b24+PC9kaXY+PGRpdiBpZD0ibWFjb3MtZG1nLWxvY2FsLXJvdyIgY2xhc3M9InNldHRpbmdzLWFib3V0LXJvdyBzZXR0aW5ncy1hYm91dC1yb3ctYWN0aW9uIGhpZGRlbiI+PHNwYW4gY2xhc3M9InNldHRpbmdzLWxhYmVsIj5cdTY3MkNcdTU3MzBcdTcyNDhcdTY3MkM8L3NwYW4+PHNwYW4gY2xhc3M9InNldHRpbmdzLXZhbHVlIHNldHRpbmdzLXZhbHVlLWZsZXgiIGlkPSJzZXR0aW5ncy1tYWNvcy1kbWctbG9jYWwiPi08L3NwYW4+PGJ1dHRvbiBpZD0iZG93bmxvYWQtbG9jYWwtZG1nLWJ0biIgY2xhc3M9ImJ0biBidG4tc2Vjb25kYXJ5IGJ0bi1zbSBoaWRkZW4iIHR5cGU9ImJ1dHRvbiI+XHU0RTBCXHU4RjdEPC9idXR0b24+PC9kaXY+PGRpdiBpZD0ibWFjb3MtYXV0by11cGRhdGUtcm93IiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLXJvdyBoaWRkZW4iPjxkaXYgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS10ZXh0Ij48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLXRpdGxlIj5cdTgxRUFcdTUyQThcdTY2RjRcdTY1QjA8L3NwYW4+PHNwYW4gY2xhc3M9InNldHRpbmdzLXRvZ2dsZS1kZXNjIiBpZD0ibWFjb3MtYXV0by11cGRhdGUtaGludCI+XHU2OEMwXHU2RDRCXHU1MjMwXHU2NUIwXHU3MjQ4IERNRyBcdTVDMDZcdTgxRUFcdTUyQThcdTRFMEJcdThGN0RcdTVFNzZcdTYzMDJcdThGN0RcdTMwMDI8L3NwYW4+PC9kaXY+PGxhYmVsIGNsYXNzPSJzZXR0aW5ncy1zd2l0Y2giPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9ImF1dG8tdXBkYXRlLWRtZy10b2dnbGUiIGNsYXNzPSJzd2l0Y2gtdG9nZ2xlIj48c3BhbiBjbGFzcz0ic3dpdGNoLXNsaWRlciI+PC9zcGFuPjwvbGFiZWw+PC9kaXY+PHAgaWQ9Im1hY29zLWRtZy1tZXNzYWdlIiBjbGFzcz0iaGludCBoaWRkZW4iPjwvcD48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy11cGRhdGUtc2VjdGlvbiIgaWQ9ImFuZHJvaWQtY29ubmVjdC1zZWN0aW9uIj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWQiPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWljb24iPicreigibGluayIse3NpemU6MTgsc3Ryb2tlV2lkdGg6MS43fSkrJzwvc3Bhbj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWQtdGV4dCI+PGg0IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWRpbmciPkFwcCBcdThGREVcdTYzQTVcdTc4MDE8L2g0PjxwIGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLXN1YiI+XHU3Qzk4XHU4RDM0XHU1MjMwIEFuZHJvaWQgQXBwIFx1NTM3M1x1NTNFRlx1ODFFQVx1NTJBOFx1OEZERVx1NjNBNVx1RkYwQ1x1NjVFMFx1OTcwMFx1NUJDNlx1NzgwMVx1RkYxQlx1NjUzOVx1NUJDNlx1NzgwMVx1NTQwRVx1NTkzMVx1NjU0OFx1MzAwMjwvcD48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1jb25uZWN0LXVybC1ib3giPjxjb2RlIGlkPSJhbmRyb2lkLWNvbm5lY3QtY29kZSIgY2xhc3M9InNldHRpbmdzLWNvbm5lY3QtdXJsLXRleHQiPi08L2NvZGU+PGJ1dHRvbiBpZD0iY29weS1jb25uZWN0LWNvZGUtYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1zZWNvbmRhcnkgYnRuLXNtIiB0eXBlPSJidXR0b24iIHRpdGxlPSJcdTU5MERcdTUyMzZcdThGREVcdTYzQTVcdTc4MDEiPlx1NTkwRFx1NTIzNjwvYnV0dG9uPjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLWNvbm5lY3QtcXItYm94Ij48ZGl2IGNsYXNzPSJzZXR0aW5ncy1jb25uZWN0LXFyLXdyYXAiIGlkPSJhbmRyb2lkLWNvbm5lY3QtcXItd3JhcCIgdGl0bGU9Ilx1NzBCOVx1NTFGQlx1NjUzRVx1NTkyNyI+PGNhbnZhcyBpZD0iYW5kcm9pZC1jb25uZWN0LXFyIiB3aWR0aD0iMTgwIiBoZWlnaHQ9IjE4MCI+PC9jYW52YXM+PGRpdiBjbGFzcz0ic2V0dGluZ3MtY29ubmVjdC1xci1lbXB0eSIgaWQ9ImFuZHJvaWQtY29ubmVjdC1xci1lbXB0eSI+XHU3NTFGXHU2MjEwXHU0RTJEXHUyMDI2PC9kaXY+PC9kaXY+PHAgY2xhc3M9InNldHRpbmdzLWNvbm5lY3QtcXItaGludCI+XHU3NTI4IFdhbmQgQXBwIFx1NjI2Qlx1NEUwMFx1NjI2Qlx1RkYwQ1x1NTM3M1x1NTNFRlx1NEUwMFx1OTUyRVx1NTg2Qlx1NTE2NVx1NjcwRFx1NTJBMVx1NTY2OFx1NTczMFx1NTc0MFx1NEUwRVx1OEZERVx1NjNBNVx1NzgwMVx1MzAwMjwvcD48L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1wYW5lbCIgaWQ9InNldHRpbmdzLXRhYi1ub3RpZmljYXRpb25zIiByb2xlPSJ0YWJwYW5lbCI+PGRpdiBjbGFzcz0ic2V0dGluZ3MtcGFuZWwtaGVhZGVyIj48aDMgY2xhc3M9InNldHRpbmdzLXBhbmVsLXRpdGxlIj5cdTkwMUFcdTc3RTU8L2gzPjxwIGNsYXNzPSJzZXR0aW5ncy1wYW5lbC1kZXNjIj5cdThCQkVcdTdGNkVcdTYzRDBcdTc5M0FcdTk3RjNcdTMwMDFcdTdDRkJcdTdFREZcdTkwMUFcdTc3RTVcdTU0OENcdTZENEZcdTg5QzhcdTU2NjhcdTkwMUFcdTc3RTVcdTc2ODRcdTg4NENcdTRFM0FcdTMwMDI8L3A+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3Mtbm90aWZpY2F0aW9uLXNlY3Rpb24iPjxkaXYgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taGVhZCI+PHNwYW4gY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taWNvbiI+Jyt6KCJiZWxsIix7c2l6ZToxOCxzdHJva2VXaWR0aDoxLjd9KSsnPC9zcGFuPjxkaXYgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taGVhZC10ZXh0Ij48aDQgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taGVhZGluZyI+XHU5MDFBXHU3N0U1XHU1MDRGXHU1OTdEPC9oND48cCBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1zdWIiPlx1NjNEMFx1NzkzQVx1OTdGM1x1NEUwRVx1NUU5NFx1NzUyOFx1NTE4NVx1OTAxQVx1NzdFNVx1NkMxNFx1NkNFMTwvcD48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtcm93Ij48ZGl2IGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtdGV4dCI+PGxhYmVsIGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtdGl0bGUiIGZvcj0iY2ZnLW5vdGlmLXNvdW5kIj5cdTY0QURcdTY1M0VcdTYzRDBcdTc5M0FcdTk3RjM8L2xhYmVsPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtZGVzYyI+XHU5MUNEXHU4OTgxXHU5MDFBXHU3N0U1XHVGRjA4XHU3MjQ4XHU2NzJDXHU2NkY0XHU2NUIwXHUzMDAxXHU2NzQzXHU5NjUwXHU3QjQ5XHU1Rjg1XHU3QjQ5XHVGRjA5XHU2NUY2XHU2NEFEXHU2NTNFXHU2N0Q0XHU1NDhDXHU2M0QwXHU3OTNBXHU5N0YzXHUzMDAyPC9zcGFuPjwvZGl2PjxsYWJlbCBjbGFzcz0ic2V0dGluZ3Mtc3dpdGNoIj48aW5wdXQgaWQ9ImNmZy1ub3RpZi1zb3VuZCIgdHlwZT0iY2hlY2tib3giIGNsYXNzPSJzd2l0Y2gtdG9nZ2xlIiAvPjxzcGFuIGNsYXNzPSJzd2l0Y2gtc2xpZGVyIj48L3NwYW4+PC9sYWJlbD48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1yYW5nZS1yb3ciIGlkPSJub3RpZi12b2x1bWUtZmllbGQiPjxsYWJlbCBjbGFzcz0ic2V0dGluZ3MtcmFuZ2UtbGFiZWwiIGZvcj0iY2ZnLW5vdGlmLXZvbHVtZSI+XHU5N0YzXHU5MUNGPC9sYWJlbD48aW5wdXQgaWQ9ImNmZy1ub3RpZi12b2x1bWUiIHR5cGU9InJhbmdlIiBtaW49IjAiIG1heD0iMTAwIiBzdGVwPSI1IiBjbGFzcz0ic2V0dGluZ3MtcmFuZ2UiIC8+PHNwYW4gaWQ9ImNmZy1ub3RpZi12b2x1bWUtdmFsIiBjbGFzcz0ic2V0dGluZ3MtcmFuZ2UtdmFsdWUiPjgwJTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtcm93Ij48ZGl2IGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtdGV4dCI+PGxhYmVsIGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtdGl0bGUiIGZvcj0iY2ZnLW5vdGlmLWJ1YmJsZSI+XHU1RTk0XHU3NTI4XHU1MTg1XHU5MDFBXHU3N0U1XHU2QzE0XHU2Q0UxPC9sYWJlbD48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLWRlc2MiPlx1NTcyOFx1OTg3NVx1OTc2Mlx1OTg3Nlx1OTBFOFx1NUYzOVx1NTFGQVx1NkQ2RVx1NTJBOFx1OTAxQVx1NzdFNVx1NkMxNFx1NkNFMVx1MzAwMjwvc3Bhbj48L2Rpdj48bGFiZWwgY2xhc3M9InNldHRpbmdzLXN3aXRjaCI+PGlucHV0IGlkPSJjZmctbm90aWYtYnViYmxlIiB0eXBlPSJjaGVja2JveCIgY2xhc3M9InN3aXRjaC10b2dnbGUiIC8+PHNwYW4gY2xhc3M9InN3aXRjaC1zbGlkZXIiPjwvc3Bhbj48L2xhYmVsPjwvZGl2PjwvZGl2PjxkaXYgaWQ9Im5hdGl2ZS1zb3VuZC1zZWN0aW9uIiBjbGFzcz0ic2V0dGluZ3Mtbm90aWZpY2F0aW9uLXNlY3Rpb24gaGlkZGVuIj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWQiPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWljb24iPicreigibXVzaWMiLHtzaXplOjE4LHN0cm9rZVdpZHRoOjEuN30pKyc8L3NwYW4+PGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkLXRleHQiPjxoNCBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkaW5nIj5cdTdDRkJcdTdFREZcdTkwMUFcdTc3RTVcdTk0QzNcdTU4RjA8L2g0PjxwIGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLXN1YiI+XHU5MDA5XHU2MkU5IEFuZHJvaWQgXHU3Q0ZCXHU3RURGXHU5MDFBXHU3N0U1XHU0RjdGXHU3NTI4XHU3Njg0XHU5NEMzXHU1OEYwPC9wPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLXJvdy13aXRoLWFjdGlvbiI+PHNlbGVjdCBpZD0ibmF0aXZlLXNvdW5kLXNlbGVjdCIgY2xhc3M9ImZpZWxkLWlucHV0IGZpZWxkLXNlbGVjdCI+PC9zZWxlY3Q+PGJ1dHRvbiBpZD0ibmF0aXZlLXNvdW5kLXByZXZpZXciIGNsYXNzPSJidG4gYnRuLXNlY29uZGFyeSBidG4tc20gYnRuLXdpdGgtaWNvbiIgdHlwZT0iYnV0dG9uIj4nK3ooInBsYXkiLHtzaXplOjExLHN0cm9rZVdpZHRoOjEuOCxmaWxsOiJjdXJyZW50Q29sb3IifSkrJzxzcGFuPlx1OEJENVx1NTQyQzwvc3Bhbj48L2J1dHRvbj48L2Rpdj48L2Rpdj48ZGl2IGlkPSJuYXRpdmUtaGFwdGljLXNlY3Rpb24iIGNsYXNzPSJzZXR0aW5ncy1ub3RpZmljYXRpb24tc2VjdGlvbiBoaWRkZW4iPjxkaXYgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taGVhZCI+PHNwYW4gY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taWNvbiI+Jyt6KCJ2aWJyYXRlIix7c2l6ZToxOCxzdHJva2VXaWR0aDoxLjd9KSsnPC9zcGFuPjxkaXYgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taGVhZC10ZXh0Ij48aDQgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taGVhZGluZyI+XHU4OUU2XHU2MTFGXHU1M0NEXHU5OTg4PC9oND48cCBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1zdWIiPlx1NjMwOVx1OTRBRVx1NjRDRFx1NEY1Q1x1NTQ4Q1x1NEVGQlx1NTJBMVx1NUI4Q1x1NjIxMFx1NjVGNlx1NjNEMFx1NEY5Qlx1NjMyRlx1NTJBOFx1NTNDRFx1OTk4ODwvcD48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtcm93Ij48ZGl2IGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtdGV4dCI+PGxhYmVsIGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtdGl0bGUiIGZvcj0iY2ZnLWhhcHRpYy1lbmFibGVkIj5cdTU0MkZcdTc1MjhcdTg5RTZcdTYxMUZcdTUzQ0RcdTk5ODg8L2xhYmVsPjwvZGl2PjxsYWJlbCBjbGFzcz0ic2V0dGluZ3Mtc3dpdGNoIj48aW5wdXQgaWQ9ImNmZy1oYXB0aWMtZW5hYmxlZCIgdHlwZT0iY2hlY2tib3giIGNsYXNzPSJzd2l0Y2gtdG9nZ2xlIiAvPjxzcGFuIGNsYXNzPSJzd2l0Y2gtc2xpZGVyIj48L3NwYW4+PC9sYWJlbD48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1ub3RpZmljYXRpb24tc2VjdGlvbiI+PGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkIj48c3BhbiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1pY29uIj4nK3ooImdsb2JlIix7c2l6ZToxOCxzdHJva2VXaWR0aDoxLjd9KSsnPC9zcGFuPjxkaXYgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taGVhZC10ZXh0Ij48aDQgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taGVhZGluZyI+XHU2RDRGXHU4OUM4XHU1NjY4XHU5MDFBXHU3N0U1PC9oND48cCBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1zdWIiPlx1Njc2NVx1ODFFQVx1N0NGQlx1N0VERlx1OTAxQVx1NzdFNVx1NEUyRFx1NUZDM1x1NzY4NFx1NUYzOVx1N0E5NzwvcD48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1hYm91dC1yb3ciPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1sYWJlbCI+XHU2Mzg4XHU2NzQzXHU3MkI2XHU2MDAxPC9zcGFuPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy12YWx1ZSIgaWQ9Im5vdGlmaWNhdGlvbi1wZXJtaXNzaW9uLXN0YXR1cyI+LTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy11cGRhdGUtYWN0aW9ucyI+PGJ1dHRvbiBpZD0ibm90aWZpY2F0aW9uLXJlcXVlc3QtYnRuIiBjbGFzcz0iYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zbSBoaWRkZW4iIHR5cGU9ImJ1dHRvbiI+XHU2Mzg4XHU2NzQzXHU5MDFBXHU3N0U1PC9idXR0b24+PGJ1dHRvbiBpZD0ibm90aWZpY2F0aW9uLXJlc2V0LWJ0biIgY2xhc3M9ImJ0biBidG4tZ2hvc3QgYnRuLXNtIGhpZGRlbiIgdHlwZT0iYnV0dG9uIj5cdTkxQ0RcdTY1QjBcdTYzODhcdTY3NDM8L2J1dHRvbj48YnV0dG9uIGlkPSJub3RpZmljYXRpb24tdGVzdC1idG4iIGNsYXNzPSJidG4gYnRuLXNlY29uZGFyeSBidG4tc20iIHR5cGU9ImJ1dHRvbiI+XHU1M0QxXHU5MDAxXHU2RDRCXHU4QkQ1XHU5MDFBXHU3N0U1PC9idXR0b24+PGJ1dHRvbiBpZD0ibm90aWZpY2F0aW9uLXRlc3QtZGVsYXktYnRuIiBjbGFzcz0iYnRuIGJ0bi1naG9zdCBidG4tc20iIHR5cGU9ImJ1dHRvbiI+MTAgXHU3OUQyXHU1NDBFXHU1M0QxXHU5MDAxPC9idXR0b24+PC9kaXY+PHAgaWQ9Im5vdGlmaWNhdGlvbi10ZXN0LW1lc3NhZ2UiIGNsYXNzPSJoaW50IGhpZGRlbiI+PC9wPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLXBhbmVsIiBpZD0ic2V0dGluZ3MtdGFiLWdlbmVyYWwiIHJvbGU9InRhYnBhbmVsIj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1wYW5lbC1oZWFkZXIiPjxoMyBjbGFzcz0ic2V0dGluZ3MtcGFuZWwtdGl0bGUiPlx1NTdGQVx1NjcyQ1x1OTE0RFx1N0Y2RTwvaDM+PHAgY2xhc3M9InNldHRpbmdzLXBhbmVsLWRlc2MiPlx1OTE0RFx1N0Y2RVx1NjcwRFx1NTJBMVx1NzZEMVx1NTQyQ1x1NTczMFx1NTc0MFx1MzAwMVx1OUVEOFx1OEJBNFx1NkEyMVx1NUYwRlx1MzAwMVx1OEJFRFx1OEEwMFx1NTQ4Q1x1NURFNVx1NEY1Q1x1NzZFRVx1NUY1NVx1MzAwMjwvcD48L2Rpdj48ZGl2IGNsYXNzPSJmaWVsZC1yb3ciPjxkaXYgY2xhc3M9ImZpZWxkIj48bGFiZWwgY2xhc3M9ImZpZWxkLWxhYmVsIiBmb3I9ImNmZy1ob3N0Ij5cdTc2RDFcdTU0MkNcdTU3MzBcdTU3NDAgKGhvc3QpPC9sYWJlbD48aW5wdXQgaWQ9ImNmZy1ob3N0IiB0eXBlPSJ0ZXh0IiBjbGFzcz0iZmllbGQtaW5wdXQiIHBsYWNlaG9sZGVyPSIxMjcuMC4wLjEiIC8+PC9kaXY+PGRpdiBjbGFzcz0iZmllbGQiPjxsYWJlbCBjbGFzcz0iZmllbGQtbGFiZWwiIGZvcj0iY2ZnLXBvcnQiPlx1N0FFRlx1NTNFMyAocG9ydCk8L2xhYmVsPjxpbnB1dCBpZD0iY2ZnLXBvcnQiIHR5cGU9Im51bWJlciIgY2xhc3M9ImZpZWxkLWlucHV0IiBwbGFjZWhvbGRlcj0iODQ0MyIgbWluPSIxIiBtYXg9IjY1NTM1IiAvPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS1yb3ciPjxkaXYgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS10ZXh0Ij48bGFiZWwgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS10aXRsZSIgZm9yPSJjZmctaHR0cHMiPlx1NTQyRlx1NzUyOCBIVFRQUzwvbGFiZWw+PHNwYW4gY2xhc3M9InNldHRpbmdzLXRvZ2dsZS1kZXNjIj5cdTRGN0ZcdTc1MjhcdTgxRUFcdTdCN0VcdTU0MERcdThCQzFcdTRFNjZcdTUyQTBcdTVCQzZcdTZENEZcdTg5QzhcdTU2NjhcdTUyMzBcdTY3MERcdTUyQTFcdTc2ODRcdThGREVcdTYzQTVcdUZGMENob3N0IFx1NEUzQVx1OTc1RSAxMjcuMC4wLjEgXHU2NUY2XHU1RUZBXHU4QkFFXHU1RjAwXHU1NDJGXHUzMDAyPC9zcGFuPjwvZGl2PjxsYWJlbCBjbGFzcz0ic2V0dGluZ3Mtc3dpdGNoIj48aW5wdXQgaWQ9ImNmZy1odHRwcyIgdHlwZT0iY2hlY2tib3giIGNsYXNzPSJzd2l0Y2gtdG9nZ2xlIiAvPjxzcGFuIGNsYXNzPSJzd2l0Y2gtc2xpZGVyIj48L3NwYW4+PC9sYWJlbD48L2Rpdj48ZGl2IGNsYXNzPSJmaWVsZC1yb3ciPjxkaXYgY2xhc3M9ImZpZWxkIj48bGFiZWwgY2xhc3M9ImZpZWxkLWxhYmVsIiBmb3I9ImNmZy1tb2RlIj5cdTlFRDhcdThCQTRcdTYyNjdcdTg4NENcdTZBMjFcdTVGMEY8L2xhYmVsPjxzZWxlY3QgaWQ9ImNmZy1tb2RlIiBjbGFzcz0iZmllbGQtaW5wdXQiPjxvcHRpb24gdmFsdWU9ImRlZmF1bHQiPmRlZmF1bHQ8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJhc3Npc3QiPmFzc2lzdDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImFnZW50Ij5hZ2VudDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImFnZW50LW1heCI+YWdlbnQtbWF4PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iYXV0by1lZGl0Ij5hdXRvLWVkaXQ8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJmdWxsLWFjY2VzcyI+ZnVsbC1hY2Nlc3M8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJuYXRpdmUiPm5hdGl2ZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Im1hbmFnZWQiPm1hbmFnZWQ8L29wdGlvbj48L3NlbGVjdD48L2Rpdj48ZGl2IGNsYXNzPSJmaWVsZCI+PGxhYmVsIGNsYXNzPSJmaWVsZC1sYWJlbCIgZm9yPSJjZmctbGFuZ3VhZ2UiPlx1NTZERVx1NTkwRFx1OEJFRFx1OEEwMDwvbGFiZWw+PHNlbGVjdCBpZD0iY2ZnLWxhbmd1YWdlIiBjbGFzcz0iZmllbGQtaW5wdXQiPjxvcHRpb24gdmFsdWU9IiI+XHU4MUVBXHU1MkE4XHVGRjA4XHU0RTBEXHU2MzA3XHU1QjlBXHVGRjA5PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iXHU0RTJEXHU2NTg3Ij5cdTRFMkRcdTY1ODc8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJFbmdsaXNoIj5FbmdsaXNoPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iXHU2NUU1XHU2NzJDXHU4QTlFIj5cdTY1RTVcdTY3MkNcdThBOUU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJcdUQ1NUNcdUFENkRcdUM1QjQiPlx1RDU1Q1x1QUQ2RFx1QzVCNDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkVzcGFceEYxb2wiPkVzcGFceEYxb2w8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJGcmFuXHhFN2FpcyI+RnJhblx4RTdhaXM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJEZXV0c2NoIj5EZXV0c2NoPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iXHUwNDIwXHUwNDQzXHUwNDQxXHUwNDQxXHUwNDNBXHUwNDM4XHUwNDM5Ij5cdTA0MjBcdTA0NDNcdTA0NDFcdTA0NDFcdTA0M0FcdTA0MzhcdTA0Mzk8L29wdGlvbj48L3NlbGVjdD48L2Rpdj48L2Rpdj48cCBjbGFzcz0iZmllbGQtaGludCIgc3R5bGU9Im1hcmdpbi10b3A6LTRweDsiPlx1OEJCRVx1N0Y2RVx1NTZERVx1NTkwRFx1OEJFRFx1OEEwMFx1NTQwRVx1RkYwQ0NsYXVkZSBcdTVDMDZcdTVDM0RcdTkxQ0ZcdTRGN0ZcdTc1MjhcdTYzMDdcdTVCOUFcdThCRURcdThBMDBcdTU2REVcdTU5MERcdTMwMDI8L3A+PGRpdiBjbGFzcz0iZmllbGQiPjxsYWJlbCBjbGFzcz0iZmllbGQtbGFiZWwiIGZvcj0iY2ZnLXN0cnVjdHVyZWQtcnVubmVyIj5cdTdFRDNcdTY3ODRcdTUzMTZcdTRGMUFcdThCREQgUnVubmVyPC9sYWJlbD48c2VsZWN0IGlkPSJjZmctc3RydWN0dXJlZC1ydW5uZXIiIGNsYXNzPSJmaWVsZC1pbnB1dCI+PG9wdGlvbiB2YWx1ZT0ic2RrIj5TREtcdUZGMDhAYW50aHJvcGljLWFpL2NsYXVkZS1hZ2VudC1zZGtcdUZGMENcdTlFRDhcdThCQTRcdUZGMDk8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJjbGkiPkNMSVx1RkYwOHNwYXduIGNsYXVkZSAtcFx1RkYwOTwvb3B0aW9uPjwvc2VsZWN0PjxwIGNsYXNzPSJmaWVsZC1oaW50IiBzdHlsZT0ibWFyZ2luLXRvcDo0cHg7Ij5TREsgXHU2QTIxXHU1RjBGXHU0RjdGXHU3NTI4XHU1Qjk4XHU2NUI5IEFnZW50IFNESyBcdTY2RkZcdTRFRTMgQ0xJIHN1YnByb2Nlc3NcdUZGMENcdTYzQTVcdTUzRTNcdTY2RjRcdTY1NzRcdTZEMDFcdUZGMENcdTUyOUZcdTgwRkRcdTdCNDlcdTRFRjdcdTMwMDJcdTRGRERcdTVCNThcdTU0MEVcdTVCRjlcdTY1QjBcdTVFRkFcdTRGMUFcdThCRERcdTdBQ0JcdTUzNzNcdTc1MUZcdTY1NDhcdTMwMDI8L3A+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLXJvdyI+PGRpdiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLXRleHQiPjxsYWJlbCBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLXRpdGxlIiBmb3I9ImNmZy1pbmhlcml0LWVudiI+XHU3RUU3XHU2MjdGXHU3M0FGXHU1ODgzXHU1M0Q4XHU5MUNGPC9sYWJlbD48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLWRlc2MiPlx1NTQyRlx1NTJBOCBQVFkgLyBcdTdFRDNcdTY3ODRcdTUzMTZcdTVCNTBcdThGREJcdTdBMEJcdTY1RjZcdUZGMENcdTYyOEFcdTVGNTNcdTUyNERcdTY3MERcdTUyQTFcdThGREJcdTdBMEJcdTc2ODRcdTczQUZcdTU4ODNcdTUzRDhcdTkxQ0ZcdTRGMjBcdTdFRDkgY2xhdWRlIC8gY29kZXhcdTMwMDJcdTUxNzNcdTk1RURcdTU0MEVcdTVCNTBcdThGREJcdTdBMEJcdTRFQzVcdTgzQjdcdTVGOTdcdTY3MDBcdTVDMEZcdTUzRUZcdTc1MjhcdTczQUZcdTU4ODNcdUZGMDhQQVRIL0hPTUUvU0hFTEwvTEFORy9URVJNIFx1N0I0OVx1RkYwOVx1RkYwQ1x1NTNFRlx1NzUyOFx1NEU4RVx1OTY5NFx1NzlCQiBBUEkga2V5IFx1N0I0OVx1NjU0Rlx1NjExRlx1NTFFRFx1NjM2RVx1MzAwMjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtYXNpZGUiPjxidXR0b24gdHlwZT0iYnV0dG9uIiBpZD0iY2ZnLXZpZXctZW52LWJ0biIgY2xhc3M9ImJ0biBidG4tc2Vjb25kYXJ5IGJ0bi1zbSIgdGl0bGU9Ilx1NjdFNVx1NzcwQlx1NUI5RVx1OTY0NVx1NEYxQVx1NkNFOFx1NTE2NVx1NTIzMFx1NUI1MFx1OEZEQlx1N0EwQlx1NzY4NFx1NzNBRlx1NTg4M1x1NTNEOFx1OTFDRiI+XHU2N0U1XHU3NzBCPC9idXR0b24+PGxhYmVsIGNsYXNzPSJzZXR0aW5ncy1zd2l0Y2giPjxpbnB1dCBpZD0iY2ZnLWluaGVyaXQtZW52IiB0eXBlPSJjaGVja2JveCIgY2xhc3M9InN3aXRjaC10b2dnbGUiIC8+PHNwYW4gY2xhc3M9InN3aXRjaC1zbGlkZXIiPjwvc3Bhbj48L2xhYmVsPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImZpZWxkIj48bGFiZWwgY2xhc3M9ImZpZWxkLWxhYmVsIiBmb3I9ImNmZy1kZWZhdWx0LW1vZGVsIj5cdTlFRDhcdThCQTRcdTZBMjFcdTU3OEI8L2xhYmVsPjxkaXYgY2xhc3M9InNldHRpbmdzLXJvdy13aXRoLWFjdGlvbiI+PHNlbGVjdCBpZD0iY2ZnLWRlZmF1bHQtbW9kZWwiIGNsYXNzPSJmaWVsZC1pbnB1dCBmaWVsZC1zZWxlY3QiPjxvcHRpb24gdmFsdWU9IiI+XHU4RERGXHU5NjhGIENsYXVkZSBDb2RlIFx1OUVEOFx1OEJBNDwvb3B0aW9uPjwvc2VsZWN0PjxidXR0b24gdHlwZT0iYnV0dG9uIiBpZD0iY2ZnLWRlZmF1bHQtbW9kZWwtcmVmcmVzaCIgY2xhc3M9ImJ0biBidG4tc2Vjb25kYXJ5IGJ0bi1zbSIgdGl0bGU9Ilx1NTIzN1x1NjVCMFx1NkEyMVx1NTc4Qlx1NTIxN1x1ODg2OCI+XHU1MjM3XHU2NUIwPC9idXR0b24+PC9kaXY+PHAgY2xhc3M9ImZpZWxkLWhpbnQiIGlkPSJjZmctZGVmYXVsdC1tb2RlbC12ZXJzaW9uIj5cdTY1QjBcdTVFRkFcdTRGMUFcdThCRERcdTY1RjZcdTlFRDhcdThCQTRcdTRGN0ZcdTc1MjhcdThCRTVcdTZBMjFcdTU3OEJcdUZGMUJcdThGRDBcdTg4NENcdTRFMkRcdTc2ODRcdTRGMUFcdThCRERcdTUzRUZcdTU3MjhcdThGOTNcdTUxNjVcdTY4NDZcdTUyMDdcdTYzNjJcdTMwMDI8L3A+PC9kaXY+PGRpdiBjbGFzcz0iZmllbGQiPjxsYWJlbCBjbGFzcz0iZmllbGQtbGFiZWwiIGZvcj0iY2ZnLWN3ZCI+XHU5RUQ4XHU4QkE0XHU1REU1XHU0RjVDXHU3NkVFXHU1RjU1PC9sYWJlbD48aW5wdXQgaWQ9ImNmZy1jd2QiIHR5cGU9InRleHQiIGNsYXNzPSJmaWVsZC1pbnB1dCIgcGxhY2Vob2xkZXI9Ii9ob21lL3VzZXIiIC8+PC9kaXY+PGRpdiBjbGFzcz0iZmllbGQiPjxsYWJlbCBjbGFzcz0iZmllbGQtbGFiZWwiIGZvcj0iY2ZnLXNoZWxsIj5TaGVsbDwvbGFiZWw+PGlucHV0IGlkPSJjZmctc2hlbGwiIHR5cGU9InRleHQiIGNsYXNzPSJmaWVsZC1pbnB1dCIgcGxhY2Vob2xkZXI9Ii9iaW4vYmFzaCIgLz48L2Rpdj4nKyh0eXBlb2YgV2FuZE5hdGl2ZTwidSImJnR5cGVvZiBXYW5kTmF0aXZlLmdldEFwcEljb249PSJmdW5jdGlvbiI/JzxkaXYgY2xhc3M9InNldHRpbmdzLWFwcC1pY29uLWJsb2NrIj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWQiPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWljb24iPicreigicGFsZXR0ZSIse3NpemU6MTgsc3Ryb2tlV2lkdGg6MS43fSkrJzwvc3Bhbj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWQtdGV4dCI+PGg0IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWRpbmciPlx1NUU5NFx1NzUyOFx1NTZGRVx1NjgwNzwvaDQ+PHAgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24tc3ViIj5cdTkwMDlcdTYyRTkgQXBwIFx1NTQyRlx1NTJBOFx1NTY2OFx1NTZGRVx1NjgwN1x1RkYwQ1x1OEZENFx1NTZERVx1Njg0Q1x1OTc2Mlx1NTQwRVx1NzUxRlx1NjU0ODwvcD48L2Rpdj48L2Rpdj48ZGl2IGlkPSJhcHAtaWNvbi1waWNrZXIiIGNsYXNzPSJzZXR0aW5ncy1hcHAtaWNvbi1waWNrZXIiPjxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0ic2V0dGluZ3MtYXBwLWljb24tb3B0aW9uIiBkYXRhLWljb249InNob3J0aGFpciI+PHNwYW4gY2xhc3M9InNldHRpbmdzLWFwcC1pY29uLXByZXZpZXciPicra2kudXNlcisnPC9zcGFuPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1hcHAtaWNvbi1sYWJlbCI+XHU4RDVCXHU1MzVBXHU4NjRFXHU1OTlFPC9zcGFuPjwvYnV0dG9uPjxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0ic2V0dGluZ3MtYXBwLWljb24tb3B0aW9uIiBkYXRhLWljb249ImdhcmZpZWxkIj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtYXBwLWljb24tcHJldmlldyI+JytraS5hc3Npc3RhbnQrJzwvc3Bhbj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtYXBwLWljb24tbGFiZWwiPlx1NTJFNFx1NTJCM1x1NTIxRFx1NEU4Qzwvc3Bhbj48L2J1dHRvbj48L2Rpdj48cCBpZD0iYXBwLWljb24tbWVzc2FnZSIgY2xhc3M9ImhpbnQgaGlkZGVuIj48L3A+PC9kaXY+JzoiIikrJzxkaXYgY2xhc3M9InNldHRpbmdzLWFjdGlvbnMgc2V0dGluZ3MtYWN0aW9ucy1zdGlja3kiPjxidXR0b24gaWQ9InNhdmUtY29uZmlnLWJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tcHJpbWFyeSBidG4tYmxvY2siPlx1NEZERFx1NUI1OFx1OTE0RFx1N0Y2RTwvYnV0dG9uPjwvZGl2PjxwIGlkPSJjb25maWctbWVzc2FnZSIgY2xhc3M9ImhpbnQgaGlkZGVuIHNldHRpbmdzLXN0YXR1cy1tZXNzYWdlIj48L3A+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtcGFuZWwiIGlkPSJzZXR0aW5ncy10YWItc2VjdXJpdHkiIHJvbGU9InRhYnBhbmVsIj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1wYW5lbC1oZWFkZXIiPjxoMyBjbGFzcz0ic2V0dGluZ3MtcGFuZWwtdGl0bGUiPlx1NUI4OVx1NTE2ODwvaDM+PHAgY2xhc3M9InNldHRpbmdzLXBhbmVsLWRlc2MiPlx1N0JBMVx1NzQwNlx1NzY3Qlx1NUY1NVx1NUJDNlx1NzgwMVx1NEUwRSBTU0wgXHU4QkMxXHU0RTY2XHVGRjBDXHU2NTRGXHU2MTFGXHU1M0Q4XHU2NkY0XHU4QkY3XHU3ODZFXHU4QkE0XHU1NDBFXHU1MThEXHU0RkREXHU1QjU4XHUzMDAyPC9wPjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLWNhcmQiPjxkaXYgY2xhc3M9InNldHRpbmdzLWNhcmQtaGVhZCI+PHNwYW4gY2xhc3M9InNldHRpbmdzLWNhcmQtaWNvbiI+XHV7MUY1MTJ9PC9zcGFuPjxkaXYgY2xhc3M9InNldHRpbmdzLWNhcmQtaGVhZC10ZXh0Ij48aDMgY2xhc3M9InNldHRpbmdzLWNhcmQtdGl0bGUiPlx1NEZFRVx1NjUzOVx1NUJDNlx1NzgwMTwvaDM+PHAgY2xhc3M9InNldHRpbmdzLWNhcmQtZGVzYyI+XHU4MUYzXHU1QzExIDYgXHU0RTJBXHU1QjU3XHU3QjI2XHVGRjFCXHU0RkREXHU1QjU4XHU1NDBFXHU0RTBCXHU2QjIxXHU3NjdCXHU1RjU1XHU3NTFGXHU2NTQ4XHUzMDAyPC9wPjwvZGl2PjwvZGl2Pjxmb3JtIGlkPSJjaGFuZ2UtcGFzc3dvcmQtZm9ybSIgYXV0b2NvbXBsZXRlPSJvbiIgb25zdWJtaXQ9InJldHVybiBmYWxzZTsiPjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ1c2VybmFtZSIgYXV0b2NvbXBsZXRlPSJ1c2VybmFtZSIgdmFsdWU9IndhbmQiIHRhYmluZGV4PSItMSIgYXJpYS1oaWRkZW49InRydWUiIHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0Oi05OTk5cHg7d2lkdGg6MXB4O2hlaWdodDoxcHg7b3BhY2l0eTowO3BvaW50ZXItZXZlbnRzOm5vbmUiIHJlYWRvbmx5IC8+PGRpdiBjbGFzcz0iZmllbGQiPjxsYWJlbCBjbGFzcz0iZmllbGQtbGFiZWwiIGZvcj0ibmV3LXBhc3N3b3JkIj5cdTY1QjBcdTVCQzZcdTc4MDE8L2xhYmVsPjxpbnB1dCBpZD0ibmV3LXBhc3N3b3JkIiB0eXBlPSJwYXNzd29yZCIgY2xhc3M9ImZpZWxkLWlucHV0IiBwbGFjZWhvbGRlcj0iXHU4RjkzXHU1MTY1XHU2NUIwXHU1QkM2XHU3ODAxXHVGRjA4XHU4MUYzXHU1QzExIDYgXHU0RTJBXHU1QjU3XHU3QjI2XHVGRjA5IiBhdXRvY29tcGxldGU9Im5ldy1wYXNzd29yZCIgLz48L2Rpdj48ZGl2IGNsYXNzPSJmaWVsZCI+PGxhYmVsIGNsYXNzPSJmaWVsZC1sYWJlbCIgZm9yPSJjb25maXJtLXBhc3N3b3JkIj5cdTc4NkVcdThCQTRcdTVCQzZcdTc4MDE8L2xhYmVsPjxpbnB1dCBpZD0iY29uZmlybS1wYXNzd29yZCIgdHlwZT0icGFzc3dvcmQiIGNsYXNzPSJmaWVsZC1pbnB1dCIgcGxhY2Vob2xkZXI9Ilx1NTE4RFx1NkIyMVx1OEY5M1x1NTE2NVx1NjVCMFx1NUJDNlx1NzgwMSIgYXV0b2NvbXBsZXRlPSJuZXctcGFzc3dvcmQiIC8+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtY2FyZC1hY3Rpb25zIj48YnV0dG9uIGlkPSJzYXZlLXBhc3N3b3JkLWJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tcHJpbWFyeSIgdHlwZT0ic3VibWl0Ij5cdTRGRERcdTVCNThcdTVCQzZcdTc4MDE8L2J1dHRvbj48L2Rpdj48cCBpZD0ic2V0dGluZ3MtZXJyb3IiIGNsYXNzPSJlcnJvci1tZXNzYWdlIGhpZGRlbiI+PC9wPjxwIGlkPSJzZXR0aW5ncy1zdWNjZXNzIiBjbGFzcz0iaGludCBzZXR0aW5ncy1zdWNjZXNzLW1lc3NhZ2UgaGlkZGVuIj48L3A+PC9mb3JtPjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLWNhcmQiPjxkaXYgY2xhc3M9InNldHRpbmdzLWNhcmQtaGVhZCI+PHNwYW4gY2xhc3M9InNldHRpbmdzLWNhcmQtaWNvbiI+XHV7MUY1MTB9PC9zcGFuPjxkaXYgY2xhc3M9InNldHRpbmdzLWNhcmQtaGVhZC10ZXh0Ij48aDMgY2xhc3M9InNldHRpbmdzLWNhcmQtdGl0bGUiPlNTTCBcdThCQzFcdTRFNjY8L2gzPjxwIGNsYXNzPSJzZXR0aW5ncy1jYXJkLWRlc2MiIGlkPSJjZXJ0LXN0YXR1cyI+XHU1MkEwXHU4RjdEXHU0RTJELi4uPC9wPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImZpZWxkIj48bGFiZWwgY2xhc3M9ImZpZWxkLWxhYmVsIiBmb3I9ImNlcnQta2V5LWZpbGUiPlx1NzlDMVx1OTRBNVx1NjU4N1x1NEVGNiAoLmtleSk8L2xhYmVsPjxkaXYgY2xhc3M9ImZpbGUtcGlja2VyIj48aW5wdXQgaWQ9ImNlcnQta2V5LWZpbGUiIHR5cGU9ImZpbGUiIGNsYXNzPSJmaWxlLXBpY2tlci1pbnB1dCIgYWNjZXB0PSIua2V5LC5wZW0iIC8+PGxhYmVsIGZvcj0iY2VydC1rZXktZmlsZSIgY2xhc3M9ImZpbGUtcGlja2VyLXRyaWdnZXIiPjxzdmcgY2xhc3M9ImZpbGUtcGlja2VyLWljb24iIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHBhdGggZD0iTTIxLjQ0IDExLjA1bC05LjE5IDkuMTlhNiA2IDAgMCAxLTguNDktOC40OWw5LjE5LTkuMTlhNCA0IDAgMCAxIDUuNjYgNS42NmwtOS4yIDkuMTlhMiAyIDAgMCAxLTIuODMtMi44M2w4LjQ5LTguNDgiPjwvcGF0aD48L3N2Zz48c3BhbiBjbGFzcz0iZmlsZS1waWNrZXItbGFiZWwiPlx1OTAwOVx1NjJFOVx1NzlDMVx1OTRBNTwvc3Bhbj48L2xhYmVsPjxzcGFuIGNsYXNzPSJmaWxlLXBpY2tlci1uYW1lIiBkYXRhLWRlZmF1bHQ9Ilx1NjcyQVx1OTAwOVx1NjJFOVx1NjU4N1x1NEVGNiI+XHU2NzJBXHU5MDA5XHU2MkU5XHU2NTg3XHU0RUY2PC9zcGFuPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImZpZWxkIj48bGFiZWwgY2xhc3M9ImZpZWxkLWxhYmVsIiBmb3I9ImNlcnQtY2VydC1maWxlIj5cdThCQzFcdTRFNjZcdTY1ODdcdTRFRjYgKC5jcnQvLnBlbSk8L2xhYmVsPjxkaXYgY2xhc3M9ImZpbGUtcGlja2VyIj48aW5wdXQgaWQ9ImNlcnQtY2VydC1maWxlIiB0eXBlPSJmaWxlIiBjbGFzcz0iZmlsZS1waWNrZXItaW5wdXQiIGFjY2VwdD0iLmNydCwucGVtLC5jZXJ0IiAvPjxsYWJlbCBmb3I9ImNlcnQtY2VydC1maWxlIiBjbGFzcz0iZmlsZS1waWNrZXItdHJpZ2dlciI+PHN2ZyBjbGFzcz0iZmlsZS1waWNrZXItaWNvbiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48cGF0aCBkPSJNMTQgMkg2YTIgMiAwIDAgMC0yIDJ2MTZhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjh6Ij48L3BhdGg+PHBvbHlsaW5lIHBvaW50cz0iMTQgMiAxNCA4IDIwIDgiPjwvcG9seWxpbmU+PC9zdmc+PHNwYW4gY2xhc3M9ImZpbGUtcGlja2VyLWxhYmVsIj5cdTkwMDlcdTYyRTlcdThCQzFcdTRFNjY8L3NwYW4+PC9sYWJlbD48c3BhbiBjbGFzcz0iZmlsZS1waWNrZXItbmFtZSIgZGF0YS1kZWZhdWx0PSJcdTY3MkFcdTkwMDlcdTYyRTlcdTY1ODdcdTRFRjYiPlx1NjcyQVx1OTAwOVx1NjJFOVx1NjU4N1x1NEVGNjwvc3Bhbj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1jYXJkLWFjdGlvbnMiPjxidXR0b24gaWQ9InVwbG9hZC1jZXJ0LWJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tcHJpbWFyeSI+XHU0RTBBXHU0RjIwXHU4QkMxXHU0RTY2PC9idXR0b24+PC9kaXY+PHAgaWQ9ImNlcnQtbWVzc2FnZSIgY2xhc3M9ImhpbnQgaGlkZGVuIj48L3A+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtcGFuZWwiIGlkPSJzZXR0aW5ncy10YWItcHJlc2V0cyIgcm9sZT0idGFicGFuZWwiPjxkaXYgY2xhc3M9InNldHRpbmdzLXBhbmVsLWhlYWRlciI+PGgzIGNsYXNzPSJzZXR0aW5ncy1wYW5lbC10aXRsZSI+XHU1NDdEXHU0RUU0XHU5ODg0XHU4QkJFPC9oMz48cCBjbGFzcz0ic2V0dGluZ3MtcGFuZWwtZGVzYyI+XHU1RjUzXHU1MjREXHU1NDdEXHU0RUU0XHU5ODg0XHU4QkJFXHU0RUNFIGNvbmZpZy5qc29uIFx1OEJGQlx1NTNENlx1RkYwQ1x1NTNFRlx1NTcyOFx1OEZEOVx1OTFDQ1x1NUZFQlx1OTAxRlx1NjdFNVx1NzcwQlx1NURGMlx1NjcwOVx1OTE0RFx1N0Y2RVx1MzAwMjwvcD48L2Rpdj48ZGl2IGlkPSJwcmVzZXRzLWxpc3QiIGNsYXNzPSJwcmVzZXRzLWxpc3QiPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLXBhbmVsIiBpZD0ic2V0dGluZ3MtdGFiLWRpc3BsYXkiIHJvbGU9InRhYnBhbmVsIj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1wYW5lbC1oZWFkZXIiPjxoMyBjbGFzcz0ic2V0dGluZ3MtcGFuZWwtdGl0bGUiPlx1NjYzRVx1NzkzQTwvaDM+PHAgY2xhc3M9InNldHRpbmdzLXBhbmVsLWRlc2MiPlx1NjNBN1x1NTIzNlx1ODA0QVx1NTkyOVx1ODlDNlx1NTZGRVx1OTFDQ1x1NEUwRFx1NTQwQ1x1NTM2MVx1NzI0N1x1N0M3Qlx1NTc4Qlx1NzY4NFx1OUVEOFx1OEJBNFx1NUM1NVx1NUYwMFx1NzJCNlx1NjAwMVx1MzAwMjwvcD48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLXRpdGxlIj5cdTUzNjFcdTcyNDdcdTlFRDhcdThCQTRcdTVDNTVcdTVGMDBcdTcyQjZcdTYwMDE8L2Rpdj48cCBjbGFzcz0iaGludCBzZXR0aW5ncy1pbmxpbmUtaGludCI+XHU4QkJFXHU3RjZFXHU3RUQzXHU2Nzg0XHU1MzE2XHU4MDRBXHU1OTI5XHU4OUM2XHU1NkZFXHU0RTJEXHU1NDA0XHU3QzdCXHU1MzYxXHU3MjQ3XHU3Njg0XHU5RUQ4XHU4QkE0XHU1QzU1XHU1RjAwL1x1NjI5OFx1NTNFMFx1NzJCNlx1NjAwMVx1MzAwMlx1NjI0Qlx1NTJBOFx1NjRDRFx1NEY1Q1x1NzY4NFx1NUM1NVx1NUYwMFx1NzJCNlx1NjAwMVx1NEYxOFx1NTE0OFx1NEU4RVx1NkI2NFx1OUVEOFx1OEJBNFx1OEJCRVx1N0Y2RVx1MzAwMjwvcD48ZGl2IGNsYXNzPSJzd2l0Y2gtY2FyZC1saXN0Ij48bGFiZWwgY2xhc3M9InN3aXRjaC1jYXJkIiBmb3I9ImNmZy1jYXJkLWVkaXQiPjxkaXYgY2xhc3M9InN3aXRjaC1jYXJkLWhlYWRlciI+PHNwYW4gY2xhc3M9InN3aXRjaC1jYXJkLXRpdGxlIj5cdTdGMTZcdThGOTFcdTUzNjFcdTcyNDcgKEVkaXQvV3JpdGUpPC9zcGFuPjxpbnB1dCBpZD0iY2ZnLWNhcmQtZWRpdCIgdHlwZT0iY2hlY2tib3giIGNsYXNzPSJzd2l0Y2gtdG9nZ2xlIiAvPjxzcGFuIGNsYXNzPSJzd2l0Y2gtc2xpZGVyIj48L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0ic3dpdGNoLWNhcmQtZGVzYyI+XHU2NTg3XHU0RUY2XHU3RjE2XHU4RjkxXHU1NDhDXHU1MTk5XHU1MTY1XHU2NENEXHU0RjVDXHU3Njg0IGRpZmYgXHU4OUM2XHU1NkZFPC9kaXY+PC9sYWJlbD48bGFiZWwgY2xhc3M9InN3aXRjaC1jYXJkIiBmb3I9ImNmZy1jYXJkLWlubGluZSI+PGRpdiBjbGFzcz0ic3dpdGNoLWNhcmQtaGVhZGVyIj48c3BhbiBjbGFzcz0ic3dpdGNoLWNhcmQtdGl0bGUiPlx1NTE4NVx1ODA1NFx1NURFNVx1NTE3NyAoUmVhZC9HbG9iL0dyZXApPC9zcGFuPjxpbnB1dCBpZD0iY2ZnLWNhcmQtaW5saW5lIiB0eXBlPSJjaGVja2JveCIgY2xhc3M9InN3aXRjaC10b2dnbGUiIC8+PHNwYW4gY2xhc3M9InN3aXRjaC1zbGlkZXIiPjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJzd2l0Y2gtY2FyZC1kZXNjIj5cdTY1ODdcdTRFRjZcdThCRkJcdTUzRDZcdTMwMDFcdTY0MUNcdTdEMjJcdTdCNDlcdTVERTVcdTUxNzdcdTc2ODRcdTdFRDNcdTY3OUM8L2Rpdj48L2xhYmVsPjxsYWJlbCBjbGFzcz0ic3dpdGNoLWNhcmQiIGZvcj0iY2ZnLWNhcmQtdGVybWluYWwiPjxkaXYgY2xhc3M9InN3aXRjaC1jYXJkLWhlYWRlciI+PHNwYW4gY2xhc3M9InN3aXRjaC1jYXJkLXRpdGxlIj5cdTdFQzhcdTdBRUZcdThGOTNcdTUxRkEgKEJhc2gpPC9zcGFuPjxpbnB1dCBpZD0iY2ZnLWNhcmQtdGVybWluYWwiIHR5cGU9ImNoZWNrYm94IiBjbGFzcz0ic3dpdGNoLXRvZ2dsZSIgLz48c3BhbiBjbGFzcz0ic3dpdGNoLXNsaWRlciI+PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InN3aXRjaC1jYXJkLWRlc2MiPlx1NTQ3RFx1NEVFNFx1ODg0Q1x1NjI2N1x1ODg0Q1x1N0VEM1x1Njc5QzwvZGl2PjwvbGFiZWw+PGxhYmVsIGNsYXNzPSJzd2l0Y2gtY2FyZCIgZm9yPSJjZmctY2FyZC10aGlua2luZyI+PGRpdiBjbGFzcz0ic3dpdGNoLWNhcmQtaGVhZGVyIj48c3BhbiBjbGFzcz0ic3dpdGNoLWNhcmQtdGl0bGUiPlx1NjAxRFx1ODAwM1x1OEZDN1x1N0EwQiAoVGhpbmtpbmcpPC9zcGFuPjxpbnB1dCBpZD0iY2ZnLWNhcmQtdGhpbmtpbmciIHR5cGU9ImNoZWNrYm94IiBjbGFzcz0ic3dpdGNoLXRvZ2dsZSIgLz48c3BhbiBjbGFzcz0ic3dpdGNoLXNsaWRlciI+PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InN3aXRjaC1jYXJkLWRlc2MiPkNsYXVkZSBcdTc2ODRcdTYwMURcdTgwMDNcdThGQzdcdTdBMEJcdTU3NTc8L2Rpdj48L2xhYmVsPjxsYWJlbCBjbGFzcz0ic3dpdGNoLWNhcmQiIGZvcj0iY2ZnLWNhcmQtdG9vbGdyb3VwIj48ZGl2IGNsYXNzPSJzd2l0Y2gtY2FyZC1oZWFkZXIiPjxzcGFuIGNsYXNzPSJzd2l0Y2gtY2FyZC10aXRsZSI+XHU1REU1XHU1MTc3XHU3RUM0PC9zcGFuPjxpbnB1dCBpZD0iY2ZnLWNhcmQtdG9vbGdyb3VwIiB0eXBlPSJjaGVja2JveCIgY2xhc3M9InN3aXRjaC10b2dnbGUiIC8+PHNwYW4gY2xhc3M9InN3aXRjaC1zbGlkZXIiPjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJzd2l0Y2gtY2FyZC1kZXNjIj5cdThGREVcdTdFRURcdTU0MENcdTdDN0JcdTVERTVcdTUxNzdcdThDMDNcdTc1MjhcdTc2ODRcdTYyOThcdTUzRTBcdTdFQzQ8L2Rpdj48L2xhYmVsPjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLWFjdGlvbnMgc2V0dGluZ3MtYWN0aW9ucy1zdGlja3kiPjxidXR0b24gaWQ9InNhdmUtZGlzcGxheS1idXR0b24iIGNsYXNzPSJidG4gYnRuLXByaW1hcnkgYnRuLWJsb2NrIj5cdTRGRERcdTVCNThcdTY2M0VcdTc5M0FcdThCQkVcdTdGNkU8L2J1dHRvbj48L2Rpdj48cCBpZD0iZGlzcGxheS1tZXNzYWdlIiBjbGFzcz0iaGludCBoaWRkZW4gc2V0dGluZ3Mtc3RhdHVzLW1lc3NhZ2UiPjwvcD48L2Rpdj48L2Rpdj48L2Rpdj48L3NlY3Rpb24+J31mdW5jdGlvbiBCZyhlKXt2YXIgdD1ldCgpO3JldHVybiBlLnNlbGVjdGVkSWQ/IiI6JzxkaXYgY2xhc3M9ImZvbGRlci1waWNrZXItY29tcGFjdCIgaWQ9ImZvbGRlci1waWNrZXItY29udGFpbmVyIj48ZGl2IGNsYXNzPSJmb2xkZXItcGlja2VyLWNvbXBhY3Qtcm93Ij48c3BhbiBjbGFzcz0iZm9sZGVyLXBpY2tlci1jb21wYWN0LWljb24iPicreigiZm9sZGVyIix7c2l6ZToxMyxzdHJva2VXaWR0aDoxLjd9KSsnPC9zcGFuPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iZm9sZGVyLXBpY2tlci1pbnB1dCIgY2xhc3M9ImZvbGRlci1waWNrZXItY29tcGFjdC1pbnB1dCIgdmFsdWU9IicrcCh0KSsnIiBwbGFjZWhvbGRlcj0iXHU1REU1XHU0RjVDXHU3NkVFXHU1RjU1IiBhdXRvY29tcGxldGU9Im9mZiIgLz48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgaWQ9ImZvbGRlci1waWNrZXItdG9nZ2xlIiBjbGFzcz0iZm9sZGVyLXBpY2tlci10b2dnbGUiIHRpdGxlPSJcdTkwMDlcdTYyRTlcdTc2RUVcdTVGNTUiIGFyaWEtbGFiZWw9Ilx1OTAwOVx1NjJFOVx1NzZFRVx1NUY1NSI+Jyt6KCJjaGV2cm9uRG93biIse3NpemU6MTEsc3Ryb2tlV2lkdGg6Mn0pKyc8L2J1dHRvbj48L2Rpdj48ZGl2IGlkPSJmb2xkZXItcGlja2VyLWRyb3Bkb3duIiBjbGFzcz0iZm9sZGVyLXBpY2tlci1kcm9wZG93biBoaWRkZW4iPjxkaXYgY2xhc3M9ImZvbGRlci1waWNrZXItcXVpY2stcm93Ij48YnV0dG9uIGNsYXNzPSJmb2xkZXItcGlja2VyLXF1aWNrLWJ0biIgZGF0YS1wYXRoPSIvdG1wIj5cdTRFMzRcdTY1RjY8L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJmb2xkZXItcGlja2VyLXF1aWNrLWJ0biIgZGF0YS1wYXRoPSIvIj5cdTY4MzlcdTc2RUVcdTVGNTU8L2J1dHRvbj48L2Rpdj48L2Rpdj48ZGl2IGlkPSJmb2xkZXItcGlja2VyLXZhbGlkYXRpb24iIGNsYXNzPSJmb2xkZXItcGlja2VyLXZhbGlkYXRpb24iPjwvZGl2PjwvZGl2Pid9ZnVuY3Rpb24gRGcoZSl7dmFyIHQ9ZXQoKSxuPXQ7aWYoZS5zZWxlY3RlZElkKXt2YXIgaT1lLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oYSl7cmV0dXJuIGEuaWQ9PT1lLnNlbGVjdGVkSWR9KTtuPWkmJmkuY3dkP2kuY3dkOnR9cmV0dXJuJzxkaXYgY2xhc3M9IndvcmtpbmctZGlyLWluZGljYXRvciIgaWQ9IndvcmtpbmctZGlyLWluZGljYXRvciIgdGl0bGU9IicrcChuKSsnIiBkYXRhLXBhdGg9IicrcChuKSsnIj48c3BhbiBjbGFzcz0id29ya2luZy1kaXItaW5kaWNhdG9yLWljb24iPicreigiZm9sZGVyIix7c2l6ZToxMixzdHJva2VXaWR0aDoxLjd9KSsiPC9zcGFuPiIrbHQobiwid29ya2luZy1kaXItaW5kaWNhdG9yLXBhdGgiLCcgaWQ9IndvcmtpbmctZGlyLWluZGljYXRvci1wYXRoIicpKyI8L2Rpdj4ifWZ1bmN0aW9uIGlzKGUpe2lmKCFlKXJldHVybiIiO3ZhciB0PURhdGUubm93KCksbj1uZXcgRGF0ZShlKS5nZXRUaW1lKCksaT1NYXRoLm1heCgwLHQtbiksYT1NYXRoLmZsb29yKGkvMWUzKTtpZihhPDYwKXJldHVybiJcdTUyMUFcdTUyMUEiO3ZhciB1PU1hdGguZmxvb3IoYS82MCk7aWYodTw2MClyZXR1cm4gdSsiXHU1MjA2XHU5NDlGXHU1MjREIjt2YXIgcz1NYXRoLmZsb29yKHUvNjApO2lmKHM8MjQpcmV0dXJuIHMrIlx1NUMwRlx1NjVGNlx1NTI0RCI7dmFyIG89TWF0aC5mbG9vcihzLzI0KTtyZXR1cm4gbzwzMD9vKyJcdTU5MjlcdTUyNEQiOk1hdGguZmxvb3Ioby8zMCkrIlx1NEUyQVx1NjcwOFx1NTI0RCJ9ZnVuY3Rpb24gYXMoZSl7aWYoIWUpcmV0dXJuIiI7dmFyIHQ9RGF0ZS5ub3coKSxuPW5ldyBEYXRlKGUpLmdldFRpbWUoKSxpPU1hdGgubWF4KDAsdC1uKSxhPU1hdGguZmxvb3IoaS8xZTMpLHU9TWF0aC5mbG9vcihhLzYwKSxzPU1hdGguZmxvb3IodS82MCk7cmV0dXJuIHM+MD9zKyJoIisodSU2MD4wP3UlNjArIm0iOiIiKTp1PjA/dSsibSI6YSsicyJ9ZnVuY3Rpb24gcHIoZSl7aWYoIWUpcmV0dXJuIiI7aWYoZS5hcmNoaXZlZClyZXR1cm4iXHU1REYyXHU1RjUyXHU2ODYzIjtpZihlLnBlcm1pc3Npb25CbG9ja2VkKXJldHVybiJcdTdCNDlcdTVGODVcdTYzODhcdTY3NDMiO2lmKHVlKGUpJiZlLnN0cnVjdHVyZWRTdGF0ZSYmZS5zdHJ1Y3R1cmVkU3RhdGUuaW5GbGlnaHQpcmV0dXJuIlx1NjAxRFx1ODAwM1x1NEUyRCI7dmFyIHQ9e2lkbGU6Ilx1N0E3QVx1OTVGMiIsc3RvcHBlZDoiXHU1REYyXHU1MDVDXHU2QjYyIixydW5uaW5nOiJcdThGRDBcdTg4NENcdTRFMkQiLGV4aXRlZDoiXHU1REYyXHU5MDAwXHU1MUZBIixmYWlsZWQ6Ilx1NURGMlx1NTkzMVx1OEQyNSJ9O3JldHVybiB0W2Uuc3RhdHVzXXx8ZS5zdGF0dXN9ZnVuY3Rpb24gdXMoZSl7cmV0dXJuIGU/ZS5hcmNoaXZlZD8iYXJjaGl2ZWQiOmUucGVybWlzc2lvbkJsb2NrZWQ/InBlcm1pc3Npb24tYmxvY2tlZCI6dWUoZSkmJmUuc3RydWN0dXJlZFN0YXRlJiZlLnN0cnVjdHVyZWRTdGF0ZS5pbkZsaWdodD8icnVubmluZyI6ZS5zdGF0dXN8fCIiOiIifWZ1bmN0aW9uIGpjKGUpe3JldHVybiBlP2UucGVybWlzc2lvbkJsb2NrZWQ/Ilx1N0I0OVx1NUY4NVx1NEY2MFx1NzY4NFx1NjM4OFx1Njc0MyI6ZS5zdGF0dXMhPT0icnVubmluZyI/IiI6ZS5pZD09PXIuc2VsZWN0ZWRJZCYmci5jdXJyZW50VGFzayYmci5jdXJyZW50VGFzay50aXRsZT9yLmN1cnJlbnRUYXNrLnRpdGxlOmUuY3VycmVudFRhc2tUaXRsZT9lLmN1cnJlbnRUYXNrVGl0bGU6IiI6IiJ9ZnVuY3Rpb24gUmMoZSl7dmFyIHQ9ZSYmZS5tZXNzYWdlcztpZighdHx8dC5sZW5ndGg9PT0wKXJldHVybiIiO2Zvcih2YXIgbj10Lmxlbmd0aC0xO24+PTA7bi0tKXt2YXIgaT10W25dO2lmKCEoIWl8fGkucm9sZSE9PSJ1c2VyIikpe3ZhciBhPWkuY29udGVudDtpZih0eXBlb2YgYT09InN0cmluZyIpe3ZhciB1PWEudHJpbSgpO2lmKHUpcmV0dXJuIHU7Y29udGludWV9aWYoQXJyYXkuaXNBcnJheShhKSlmb3IodmFyIHM9MDtzPGEubGVuZ3RoO3MrKyl7dmFyIG89YVtzXTtpZighKCFvfHxvLnR5cGUhPT0idGV4dCJ8fCFvLnRleHQpJiYhby5fX3F1ZXVlZCl7dmFyIGw9U3RyaW5nKG8udGV4dCkudHJpbSgpO2lmKGwpcmV0dXJuIGx9fX19cmV0dXJuIiJ9ZnVuY3Rpb24gV2MoZSl7dmFyIHQ9ZSYmZS5tZXNzYWdlcztpZighdHx8dC5sZW5ndGg9PT0wKXJldHVybiIiO2Zvcih2YXIgbj10Lmxlbmd0aC0xO24+PTA7bi0tKXt2YXIgaT10W25dO2lmKGkucm9sZT09PSJhc3Npc3RhbnQiKXtmb3IodmFyIGE9aS5jb250ZW50fHxbXSx1PTA7dTxhLmxlbmd0aDt1KyspaWYoYVt1XS50eXBlPT09InRleHQiJiZhW3VdLnRleHQmJmFbdV0udGV4dC50cmltKCkpe3ZhciBzPWFbdV0udGV4dC50cmltKCk7cz1zLnJlcGxhY2UoL14jK1xzKy9nbSwiIikucmVwbGFjZSgvXCpcKi9nLCIiKS5yZXBsYWNlKC9gL2csIiIpO3ZhciBvPXMuc3BsaXQoYApgKVswXS50cmltKCk7cmV0dXJuIG8uc2xpY2UoMCwxMDApfX19cmV0dXJuIiJ9ZnVuY3Rpb24gbmEoZSx0KXt2YXIgbj1lLmlkPT09ci5zZWxlY3RlZElkPyIgYWN0aXZlIjoiIixpPXIuc2Vzc2lvbnNNYW5hZ2VNb2RlJiZyLnNlbGVjdGVkU2Vzc2lvbklkc1tlLmlkXT8iIHNlbGVjdGVkIjoiIixhPXByKGUpLHU9dXMoZSkscz0iIixvPW1zKCJzZXNzaW9ucyIsZS5pZCwiXHU5MDA5XHU2MkU5XHU0RjFBXHU4QkREICIrZS5jb21tYW5kKTtpZigoZS5wcm92aWRlcj09PSJjbGF1ZGUifHxlLnByb3ZpZGVyPT09ImNvZGV4IikmJmUuY2xhdWRlU2Vzc2lvbklkJiZlLnN0YXR1cyE9PSJydW5uaW5nIiYmIXIuc2Vzc2lvbnNNYW5hZ2VNb2RlJiYhdWUoZSkpe3ZhciBsPWUucHJvdmlkZXI9PT0iY29kZXgiPyJcdTYwNjJcdTU5MEQgQ29kZXggXHU0RjFBXHU4QkREIjoiXHU2MDYyXHU1OTBEIENsYXVkZSBcdTRGMUFcdThCREQiO3M9JzxidXR0b24gY2xhc3M9InNlc3Npb24tYWN0aW9uLWJ0biIgZGF0YS1hY3Rpb249InJlc3VtZSIgZGF0YS1zZXNzaW9uLWlkPSInK2UuaWQrJyIgdHlwZT0iYnV0dG9uIiBhcmlhLWxhYmVsPSInK2wrJyIgdGl0bGU9IicrbCsnIj48c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0xIDR2Nmg2Ii8+PHBhdGggZD0iTTMuNTEgMTVhOSA5IDAgMTA1LjY0LTExLjM2TDMgMTAiLz48L3N2Zz48L2J1dHRvbj4nfXZhciBjPSFyLnNlc3Npb25zTWFuYWdlTW9kZSYmZS53b3JrdHJlZUVuYWJsZWQmJmUud29ya3RyZWUmJmUud29ya3RyZWUuYnJhbmNoJiZlLndvcmt0cmVlLnBhdGgsZj1lLndvcmt0cmVlTWVyZ2VTdGF0dXM9PT0ibWVyZ2VkIiYmZS53b3JrdHJlZU1lcmdlSW5mbyYmZS53b3JrdHJlZU1lcmdlSW5mby5jbGVhbnVwRG9uZT09PSExLGQ9ZS5zdGF0dXM9PT0icnVubmluZyJ8fGUud29ya3RyZWVNZXJnZVN0YXR1cz09PSJtZXJnaW5nIix2PWY/Ilx1OTFDRFx1OEJENVx1NkUwNVx1NzQwNiB3b3JrdHJlZSI6Ilx1NTQwOFx1NUU3Nlx1NTIzMFx1NEUzQlx1NTIwNlx1NjUyRiIsaD1jJiZlLndvcmt0cmVlTWVyZ2VTdGF0dXMhPT0ibWVyZ2VkIj8nPGJ1dHRvbiBjbGFzcz0ic2Vzc2lvbi1hY3Rpb24tYnRuIG1lcmdlLWJ0biIgZGF0YS1hY3Rpb249Indvcmt0cmVlLW1lcmdlIiBkYXRhLXNlc3Npb24taWQ9IicrZS5pZCsnIiB0eXBlPSJidXR0b24iIGFyaWEtbGFiZWw9IicrcCh2KSsnIiB0aXRsZT0iJytwKHYpKyciJysoZD8iIGRpc2FibGVkIjoiIikrJz48c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik03IDdoMTAiLz48cGF0aCBkPSJNNyAxMmgxMCIvPjxwYXRoIGQ9Ik03IDE3aDEwIi8+PHBhdGggZD0iTTUgN2wtMiAyIDIgMiIvPjxwYXRoIGQ9Ik0xOSAxNWwyIDItMiAyIi8+PC9zdmc+PC9idXR0b24+JzpmPyc8YnV0dG9uIGNsYXNzPSJzZXNzaW9uLWFjdGlvbi1idG4gbWVyZ2UtYnRuIiBkYXRhLWFjdGlvbj0id29ya3RyZWUtY2xlYW51cCIgZGF0YS1zZXNzaW9uLWlkPSInK2UuaWQrJyIgdHlwZT0iYnV0dG9uIiBhcmlhLWxhYmVsPSJcdTkxQ0RcdThCRDVcdTZFMDVcdTc0MDYgd29ya3RyZWUiIHRpdGxlPSJcdTkxQ0RcdThCRDVcdTZFMDVcdTc0MDYgd29ya3RyZWUiPjxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTMgNmgxOCIvPjxwYXRoIGQ9Ik04IDZWNGEyIDIgMCAwMTItMmg0YTIgMiAwIDAxMiAydjIiLz48cGF0aCBkPSJNMTkgNmwtMSAxNGEyIDIgMCAwMS0yIDJIOGEyIDIgMCAwMS0yLTJMNSA2Ii8+PC9zdmc+PC9idXR0b24+JzoiIixnPXIuc2Vzc2lvbnNNYW5hZ2VNb2RlPyIiOic8YnV0dG9uIGNsYXNzPSJzZXNzaW9uLWFjdGlvbi1idG4gZGVsZXRlLWJ0biIgZGF0YS1hY3Rpb249ImRlbGV0ZS1zZXNzaW9uIiBkYXRhLXNlc3Npb24taWQ9IicrZS5pZCsnIiB0eXBlPSJidXR0b24iIGFyaWEtbGFiZWw9Ilx1NTIyMFx1OTY2NFx1NEYxQVx1OEJERCIgdGl0bGU9Ilx1NTIyMFx1OTY2NFx1NkI2NFx1NEYxQVx1OEJERCI+PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNMyA2aDE4Ii8+PHBhdGggZD0iTTggNlY0YTIgMiAwIDAxMi0yaDRhMiAyIDAgMDEyIDJ2MiIvPjxwYXRoIGQ9Ik0xOSA2bC0xIDE0YTIgMiAwIDAxLTIgMkg4YTIgMiAwIDAxLTItMkw1IDYiLz48L3N2Zz48L2J1dHRvbj4nLG09JzxzcGFuIGNsYXNzPSJzZXNzaW9uLWFjdGlvbnMiPicrcytoK2crIjwvc3Bhbj4iLHk9ZS50aXRsZXx8ZS5zdW1tYXJ5Pyc8ZGl2IGNsYXNzPSJzZXNzaW9uLXRpdGxlIj4nK3AoZS50aXRsZXx8ZS5zdW1tYXJ5KSsiPC9kaXY+IjonPGRpdiBjbGFzcz0ic2Vzc2lvbi1jb21tYW5kIj4nK3AoZS5yZXN1bWVkRnJvbVNlc3Npb25JZD9lLmNvbW1hbmQucmVwbGFjZSgvXHMrLS1yZXN1bWVccytcUysvLCIiKS5yZXBsYWNlKC9ccytyZXN1bWVccytbMC05YS1mLV0rLywiIik6ZS5jb21tYW5kKSsiPC9kaXY+Iix3PWpjKGUpLEU9IiI7ZS5zdGF0dXM9PT0icnVubmluZyImJncmJihFPSc8ZGl2IGNsYXNzPSJzZXNzaW9uLWFjdGl2aXR5Ij4nK3AodykrIjwvZGl2PiIpO3ZhciBCPWUuZGVzY3JpcHRpb24/JzxkaXYgY2xhc3M9InNlc3Npb24tZGVzY3JpcHRpb24iPicrcChlLmRlc2NyaXB0aW9uKSsiPC9kaXY+IjoiIixGPSIiO2Uuc3RhdHVzPT09InJ1bm5pbmciP0Y9JzxzcGFuIGNsYXNzPSJzZXNzaW9uLXRpbWUiIHRpdGxlPSJcdTVERjJcdThGRDBcdTg4NEMgJytwKGFzKGUuc3RhcnRlZEF0KSkrJyI+JytwKGFzKGUuc3RhcnRlZEF0KSkrIjwvc3Bhbj4iOmUuZW5kZWRBdD9GPSc8c3BhbiBjbGFzcz0ic2Vzc2lvbi10aW1lIiB0aXRsZT0iJytwKG5ldyBEYXRlKGUuZW5kZWRBdCkudG9Mb2NhbGVTdHJpbmcoKSkrJyI+JytwKGlzKGUuZW5kZWRBdCkpKyI8L3NwYW4+IjplLnN0YXJ0ZWRBdCYmKEY9JzxzcGFuIGNsYXNzPSJzZXNzaW9uLXRpbWUiIHRpdGxlPSInK3AobmV3IERhdGUoZS5zdGFydGVkQXQpLnRvTG9jYWxlU3RyaW5nKCkpKyciPicrcChpcyhlLnN0YXJ0ZWRBdCkpKyI8L3NwYW4+Iik7dmFyIHg9c3MoZSksUz1lLmF1dG9SZWNvdmVyZWQ/JzxzcGFuIGNsYXNzPSJzZXNzaW9uLXJlY292ZXJ5LWhpbnQiPlx1ODFFQVx1NTJBOFx1NjA2Mlx1NTkwRDwvc3Bhbj4nOiIiLF89ci5zZXNzaW9uc01hbmFnZU1vZGU/IiI6JzxkaXYgY2xhc3M9InNlc3Npb24tc3dpcGUtYmciIGFyaWEtaGlkZGVuPSJ0cnVlIj48YnV0dG9uIGNsYXNzPSJzZXNzaW9uLXN3aXBlLWRlbGV0ZSIgZGF0YS1hY3Rpb249InN3aXBlLWRlbGV0ZS1zZXNzaW9uIiBkYXRhLXNlc3Npb24taWQ9IicrZS5pZCsnIiB0eXBlPSJidXR0b24iIHRhYmluZGV4PSItMSIgYXJpYS1sYWJlbD0iXHU1MjIwXHU5NjY0XHU0RjFBXHU4QkREIj48c3ZnIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0zIDZoMTgiLz48cGF0aCBkPSJNOCA2VjRhMiAyIDAgMDEyLTJoNGEyIDIgMCAwMTIgMnYyIi8+PHBhdGggZD0iTTE5IDZsLTEgMTRhMiAyIDAgMDEtMiAySDhhMiAyIDAgMDEtMi0yTDUgNiIvPjwvc3ZnPjxzcGFuPlx1NTIyMFx1OTY2NDwvc3Bhbj48L2J1dHRvbj48L2Rpdj4nO3JldHVybic8ZGl2IGNsYXNzPSJzZXNzaW9uLWl0ZW0nK24raSsnIiBkYXRhLXNlc3Npb24taWQ9IicrZS5pZCsnIiByb2xlPSJidXR0b24iIHRhYmluZGV4PSIwIj4nK18rJzxkaXYgY2xhc3M9InNlc3Npb24taXRlbS1jb250ZW50Ij48ZGl2IGNsYXNzPSJzZXNzaW9uLWl0ZW0tcm93Ij4nK28rJzxkaXYgY2xhc3M9InNlc3Npb24tbWFpbiI+PGRpdiBjbGFzcz0ic2Vzc2lvbi10aXRsZS1yb3ciPicreStGKyI8L2Rpdj4iK0IrRSsnPGRpdiBjbGFzcz0ic2Vzc2lvbi1tZXRhIj48c3BhbiBjbGFzcz0ic2Vzc2lvbi1zdGF0dXMgJyt1KyciPicrcChhKSsiPC9zcGFuPiIreCtTKyI8L2Rpdj48L2Rpdj4iK20rIjwvZGl2PjwvZGl2PjwvZGl2PiJ9ZnVuY3Rpb24gemMoZSl7aWYoIWV8fCFlLndvcmt0cmVlTWVyZ2VTdGF0dXMpcmV0dXJuIiI7dmFyIHQ9e3JlYWR5OiJcdTUzRUZcdTU0MDhcdTVFNzYiLGNoZWNraW5nOiJcdTY4QzBcdTY3RTVcdTRFMkQiLG1lcmdpbmc6Ilx1NTQwOFx1NUU3Nlx1NEUyRCIsbWVyZ2VkOmUud29ya3RyZWVNZXJnZUluZm8mJmUud29ya3RyZWVNZXJnZUluZm8uY2xlYW51cERvbmU9PT0hMT8iXHU1REYyXHU1NDA4XHU1RTc2XHU1Rjg1XHU2RTA1XHU3NDA2IjoiXHU1REYyXHU1NDA4XHU1RTc2IixmYWlsZWQ6Ilx1NTQwOFx1NUU3Nlx1NTkzMVx1OEQyNSJ9O3JldHVybiB0W2Uud29ya3RyZWVNZXJnZVN0YXR1c118fCIifWZ1bmN0aW9uIFVjKGUpe3ZhciB0PXpjKGUpO3JldHVybiB0Pyc8c3BhbiBjbGFzcz0ic2Vzc2lvbi1raW5kLWJhZGdlIHdvcmt0cmVlLW1lcmdlICcrcChlLndvcmt0cmVlTWVyZ2VTdGF0dXN8fCIiKSsnIj4nK3AodCkrIjwvc3Bhbj4iOiIifWZ1bmN0aW9uIHNzKGUpe2lmKCFlfHwhZS53b3JrdHJlZUVuYWJsZWQpcmV0dXJuIiI7dmFyIHQ9W107ZS53b3JrdHJlZSYmZS53b3JrdHJlZS5icmFuY2gmJnQucHVzaCgiV29ya3RyZWU6ICIrZS53b3JrdHJlZS5icmFuY2gpLGUud29ya3RyZWUmJmUud29ya3RyZWUucGF0aCYmdC5wdXNoKCJQYXRoOiAiK2Uud29ya3RyZWUucGF0aCk7dmFyIG49dC5sZW5ndGg+MD8nIHRpdGxlPSInK3AodC5qb2luKGAKYCkpKyciJzoiIjtyZXR1cm4nPHNwYW4gY2xhc3M9InNlc3Npb24ta2luZC1iYWRnZSB3b3JrdHJlZSInK24rIj5Xb3JrdHJlZTwvc3Bhbj4iK1VjKGUpfWZ1bmN0aW9uIGtnKGUpe2lmKCFlKXJldHVybiIiO3ZhciB0PXVlKGUpPyc8c3BhbiBjbGFzcz0ic2Vzc2lvbi1raW5kLWJhZGdlIHN0cnVjdHVyZWQiPlN0cnVjdHVyZWQ8L3NwYW4+JzonPHNwYW4gY2xhc3M9InNlc3Npb24ta2luZC1iYWRnZSBwdHkiPlBUWTwvc3Bhbj4nO3JldHVybiB0K3NzKGUpfWZ1bmN0aW9uIFZjKGUpe3ZhciB0PVt7aWQ6Im1hbmFnZWQiLGxhYmVsOiJcdTYyNThcdTdCQTEiLGRlc2M6Ilx1NTE2OFx1ODFFQVx1NTJBOFx1NUI4Q1x1NjIxMFx1NEVGQlx1NTJBMSJ9LHtpZDoiZnVsbC1hY2Nlc3MiLGxhYmVsOiJcdTUxNjhcdTY3NDNcdTk2NTAiLGRlc2M6Ilx1ODFFQVx1NTJBOFx1Nzg2RVx1OEJBNFx1Njc0M1x1OTY1MCJ9LHtpZDoiYXV0by1lZGl0IixsYWJlbDoiXHU4MUVBXHU1MkE4XHU3RjE2XHU4RjkxIixkZXNjOiJcdTgxRUFcdTUyQThcdTc4NkVcdThCQTRcdTRGRUVcdTY1MzkifSx7aWQ6ImRlZmF1bHQiLGxhYmVsOiJcdTY4MDdcdTUxQzYiLGRlc2M6Ilx1OTAxMFx1NkI2NVx1Nzg2RVx1OEJBNFx1NjRDRFx1NEY1QyJ9LHtpZDoibmF0aXZlIixsYWJlbDoiXHU1MzlGXHU3NTFGIixkZXNjOiJcdTUzOUZcdTc1MUZcdTdFRDNcdTY3ODRcdTUzMTZcdThGOTNcdTUxRkEifV07cmV0dXJuIHQubWFwKGZ1bmN0aW9uKG4pe3ZhciBpPW4uaWQ9PT1lPyIgYWN0aXZlIjoiIjtyZXR1cm4nPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJtb2RlLWNhcmQnK2krJyIgZGF0YS1tb2RlPSInK24uaWQrJyI+PHNwYW4gY2xhc3M9Im1vZGUtY2FyZC1sYWJlbCI+JytuLmxhYmVsKyc8L3NwYW4+PHNwYW4gY2xhc3M9Im1vZGUtY2FyZC1kZXNjIj4nK24uZGVzYysiPC9zcGFuPjwvYnV0dG9uPiJ9KS5qb2luKCIiKX1mdW5jdGlvbiBLYyhlKXt2YXIgdD1be2lkOiJjbGF1ZGUiLGxhYmVsOiJDbGF1ZGUiLGRlc2M6Ilx1NUI4Q1x1NjU3NCBDbGF1ZGUgXHU0RjFBXHU4QkREXHU4MEZEXHU1MjlCIn0se2lkOiJjb2RleCIsbGFiZWw6IkNvZGV4IixkZXNjOiJcdTdFRDNcdTY3ODRcdTUzMTYgSlNPTkwgXHU2MjE2IFBUWSBcdTRGMUFcdThCREQifV07cmV0dXJuIHQubWFwKGZ1bmN0aW9uKG4pe3ZhciBpPW4uaWQ9PT1lPyIgYWN0aXZlIjoiIjtyZXR1cm4nPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJtb2RlLWNhcmQgcHJvdmlkZXItY2FyZCcraSsnIiBkYXRhLXByb3ZpZGVyPSInK24uaWQrJyI+PHNwYW4gY2xhc3M9Im1vZGUtY2FyZC1sYWJlbCI+JytuLmxhYmVsKyc8L3NwYW4+PHNwYW4gY2xhc3M9Im1vZGUtY2FyZC1kZXNjIj4nK24uZGVzYysiPC9zcGFuPjwvYnV0dG9uPiJ9KS5qb2luKCIiKX1mdW5jdGlvbiBKYyhlKXt2YXIgdD1be2lkOiJzdHJ1Y3R1cmVkIixsYWJlbDoiXHU3RUQzXHU2Nzg0XHU1MzE2IixkZXNjOiJcdTY2N0FcdTgwRkRcdTVCRjlcdThCRERcdTZBMjFcdTVGMEYifSx7aWQ6InB0eSIsbGFiZWw6IlBUWSIsZGVzYzoiXHU0RUE0XHU0RTkyXHU1RjBGXHU3RUM4XHU3QUVGXHU0RjFBXHU4QkREIn1dO3JldHVybiB0Lm1hcChmdW5jdGlvbihuKXt2YXIgaT1uLmlkPT09ZT8iIGFjdGl2ZSI6IiIsYT0iIjtyZXR1cm4nPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJtb2RlLWNhcmQgc2Vzc2lvbi1raW5kLWNhcmQnK2krYSsnIiBkYXRhLXNlc3Npb24ta2luZD0iJytuLmlkKyciPjxzcGFuIGNsYXNzPSJtb2RlLWNhcmQtbGFiZWwiPicrbi5sYWJlbCsnPC9zcGFuPjxzcGFuIGNsYXNzPSJtb2RlLWNhcmQtZGVzYyI+JytuLmRlc2MrIjwvc3Bhbj48L2J1dHRvbj4ifSkuam9pbigiIil9ZnVuY3Rpb24gQWcoZSl7cmV0dXJuJzxsYWJlbCBjbGFzcz0ic2Vzc2lvbi1pbmxpbmUtdG9nZ2xlIiBmb3I9InNlc3Npb24td29ya3RyZWUtdG9nZ2xlIiB0aXRsZT0iXHU0RTNBXHU4QkU1XHU0RjFBXHU4QkREXHU1MjFCXHU1RUZBXHU3MkVDXHU3QUNCXHU3Njg0IGdpdCB3b3JrdHJlZSBcdTUyMDZcdTY1MkYiPjxzdmcgY2xhc3M9InNlc3Npb24taW5saW5lLXRvZ2dsZS1pY29uIiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxMyIgaGVpZ2h0PSIxMyIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PGNpcmNsZSBjeD0iNiIgY3k9IjYiIHI9IjIuMiIvPjxjaXJjbGUgY3g9IjE4IiBjeT0iNiIgcj0iMi4yIi8+PGNpcmNsZSBjeD0iMTIiIGN5PSIxOCIgcj0iMi4yIi8+PHBhdGggZD0iTTYgOC4ydjMuNGEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlY4LjIiLz48cGF0aCBkPSJNMTIgMTMuNnYyLjIiLz48L3N2Zz48c3BhbiBjbGFzcz0ic2Vzc2lvbi1pbmxpbmUtdG9nZ2xlLWxhYmVsIj5Xb3JrdHJlZSBcdTZBMjFcdTVGMEY8L3NwYW4+PGlucHV0IGlkPSJzZXNzaW9uLXdvcmt0cmVlLXRvZ2dsZSIgdHlwZT0iY2hlY2tib3giIGNsYXNzPSJzd2l0Y2gtdG9nZ2xlIicrKGU/IiBjaGVja2VkIjoiIikrJyAvPjxzcGFuIGNsYXNzPSJzd2l0Y2gtc2xpZGVyIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9zcGFuPjwvbGFiZWw+J31mdW5jdGlvbiBvcyhlKXt2YXIgdD1yLnNlc3Npb25Ub29sfHwiY2xhdWRlIjtyZXR1cm4gZT09PSJzdHJ1Y3R1cmVkIj90PT09ImNvZGV4Ij8iQ29kZXggSlNPTkwgXHU3RUQzXHU2Nzg0XHU1MzE2XHU4MDRBXHU1OTI5XHU3NTRDXHU5NzYyXHVGRjBDXHU2NTJGXHU2MzAxXHU1OTFBXHU4RjZFXHU1QkY5XHU4QkREXHU1NDhDXHU1REU1XHU1MTc3XHU4QzAzXHU3NTI4XHU1QzU1XHU3OTNBXHUzMDAyIjoiXHU3RUQzXHU2Nzg0XHU1MzE2XHU4MDRBXHU1OTI5XHU3NTRDXHU5NzYyXHVGRjBDXHU2NTJGXHU2MzAxXHU1OTFBXHU4RjZFXHU1QkY5XHU4QkREXHUzMDAxXHU2RDQxXHU1RjBGXHU4RjkzXHU1MUZBXHU1NDhDXHU1REU1XHU1MTc3XHU4QzAzXHU3NTI4XHU1QzU1XHU3OTNBXHUzMDAyIjp0PT09ImNvZGV4Ij8iQ29kZXggUFRZIFx1N0VDOFx1N0FFRlx1NEYxQVx1OEJERFx1RkYxQnRlcm1pbmFsIFx1NjYyRlx1NTM5Rlx1NTlDQlx1OEY5M1x1NTFGQVx1RkYwQ2NoYXQgXHU2NjJGXHU4OUUzXHU2NzkwXHU1NDBFXHU3Njg0XHU5NjA1XHU4QkZCXHU4OUM2XHU1NkZFXHUzMDAyIjoiXHU1MzlGXHU1OUNCIFBUWSBcdTdFQzhcdTdBRUZcdTRGMUFcdThCRERcdUZGMENcdTY1MkZcdTYzMDFcdTYzMDFcdTdFRURcdTRFQTRcdTRFOTJcdTMwMDFcdTdFQzhcdTdBRUZcdTg5QzZcdTU2RkVcdTU0OENcdTY3NDNcdTk2NTBcdTZENDFcdTMwMDIifWZ1bmN0aW9uIEdjKCl7dmFyIGU9dHQoKSx0PVN0KGUsci5tb2RlVmFsdWV8fHIuY2hhdE1vZGV8fCJkZWZhdWx0Iiksbj1yLnNlc3Npb25DcmVhdGVLaW5kfHwic3RydWN0dXJlZCIsaT1yLnNlc3Npb25DcmVhdGVXb3JrdHJlZT09PSEwO3JldHVybic8c2VjdGlvbiBpZD0ic2Vzc2lvbi1tb2RhbCIgY2xhc3M9Im1vZGFsLWJhY2tkcm9wIGhpZGRlbiI+PGRpdiBjbGFzcz0ibW9kYWwgc2Vzc2lvbi1tb2RhbCI+PGRpdiBjbGFzcz0ibW9kYWwtaGVhZGVyIj48ZGl2PjxoMiBjbGFzcz0ibW9kYWwtdGl0bGUiPlx1NjVCMFx1NUJGOVx1OEJERDwvaDI+PHAgY2xhc3M9Im1vZGFsLXN1YnRpdGxlIj5cdTU0MkZcdTUyQTggQ2xhdWRlIFx1NjIxNiBDb2RleCBcdTRGMUFcdThCRERcdUZGMENcdTkwMDlcdTYyRTkgcHJvdmlkZXJcdTMwMDFcdTRGMUFcdThCRERcdTdDN0JcdTU3OEJcdTMwMDFcdTZBMjFcdTVGMEZcdTU0OENcdTVERTVcdTRGNUNcdTc2RUVcdTVGNTVcdTMwMDI8L3A+PC9kaXY+PGJ1dHRvbiBpZD0iY2xvc2UtbW9kYWwtYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1naG9zdCBidG4taWNvbiBtb2RhbC1jbG9zZS1idG4iIHR5cGU9ImJ1dHRvbiIgYXJpYS1sYWJlbD0iXHU1MTczXHU5NUVEIj48c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyLjQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxsaW5lIHgxPSI2IiB5MT0iNiIgeDI9IjE4IiB5Mj0iMTgiLz48bGluZSB4MT0iMTgiIHkxPSI2IiB4Mj0iNiIgeTI9IjE4Ii8+PC9zdmc+PC9idXR0b24+PC9kaXY+PGRpdiBjbGFzcz0ibW9kYWwtYm9keSI+PGRpdiBjbGFzcz0iZmllbGQiPjxsYWJlbCBjbGFzcz0iZmllbGQtbGFiZWwiPlByb3ZpZGVyPC9sYWJlbD48ZGl2IGlkPSJwcm92aWRlci1jYXJkcyIgY2xhc3M9Im1vZGUtY2FyZHMiPicrS2MoZSkrJzwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImZpZWxkIj48bGFiZWwgY2xhc3M9ImZpZWxkLWxhYmVsIj5cdTRGMUFcdThCRERcdTdDN0JcdTU3OEI8L2xhYmVsPjxkaXYgaWQ9InNlc3Npb24ta2luZC1jYXJkcyIgY2xhc3M9Im1vZGUtY2FyZHMiPicrSmMobikrJzwvZGl2PjxkaXYgY2xhc3M9ImZpZWxkLWhpbnQgc2Vzc2lvbi1raW5kLWhpbnQtcm93Ij48c3BhbiBpZD0ic2Vzc2lvbi1raW5kLWRlc2NyaXB0aW9uIj4nK3Aob3MobikpKyc8L3NwYW4+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iZmllbGQiPjxsYWJlbCBjbGFzcz0iZmllbGQtbGFiZWwiIGZvcj0iY3dkIj5cdTVERTVcdTRGNUNcdTc2RUVcdTVGNTU8L2xhYmVsPjxkaXYgY2xhc3M9InN1Z2dlc3Rpb25zLXdyYXAiPjxpbnB1dCBpZD0iY3dkIiB0eXBlPSJ0ZXh0IiBjbGFzcz0iZmllbGQtaW5wdXQiIGF1dG9jb21wbGV0ZT0ib2ZmIiBwbGFjZWhvbGRlcj0iJytwKGV0KCkpKyciIC8+PGRpdiBpZD0iY3dkLXN1Z2dlc3Rpb25zIiBjbGFzcz0ic3VnZ2VzdGlvbnMgaGlkZGVuIj48L2Rpdj48L2Rpdj48cCBjbGFzcz0iZmllbGQtaGludCI+XHU1MjFCXHU1RUZBXHU1MjREXHU1MTQ4XHU3ODZFXHU4QkE0XHU3NkVFXHU1RjU1XHVGRjFCXHU3NTU5XHU3QTdBXHU1MjE5XHU0RjdGXHU3NTI4XHU0RTBBXHU2NUI5XHU3NkVFXHU1RjU1XHVGRjBDXHU2NTJGXHU2MzAxXHU4REVGXHU1Rjg0XHU4MUVBXHU1MkE4XHU4ODY1XHU1MTY4XHUzMDAyPC9wPjxkaXYgaWQ9InJlY2VudC1wYXRocy1idWJibGVzIiBjbGFzcz0icmVjZW50LXBhdGhzLWJ1YmJsZXMiPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImZpZWxkIj48bGFiZWwgY2xhc3M9ImZpZWxkLWxhYmVsIj5cdTZBMjFcdTVGMEY8L2xhYmVsPjxkaXYgaWQ9Im1vZGUtY2FyZHMiIGNsYXNzPSJtb2RlLWNhcmRzIj4nK1ZjKHQpKyc8L2Rpdj48cCBpZD0ibW9kZS1kZXNjcmlwdGlvbiIgY2xhc3M9ImZpZWxkLWhpbnQiPicrcCh0bChlLHQpKSsnPC9wPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9Im1vZGFsLWZvb3RlciI+PGJ1dHRvbiBpZD0icnVuLWJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tcHJpbWFyeSBidG4tYmxvY2siPlx1NTQyRlx1NTJBOFx1NEYxQVx1OEJERDwvYnV0dG9uPjxwIGlkPSJtb2RhbC1lcnJvciIgY2xhc3M9ImVycm9yLW1lc3NhZ2UgaGlkZGVuIj48L3A+PC9kaXY+PC9kaXY+PC9zZWN0aW9uPid9ZnVuY3Rpb24gbHMoKXt2YXIgZT1EYXRlLm5vdygpLTg2NGU1LHQ9W107cmV0dXJuIHIuc2Vzc2lvbnMuZm9yRWFjaChmdW5jdGlvbihuKXtpZighbi5hcmNoaXZlZCl7dmFyIGk9bi5zdGFydGVkQXQ/bmV3IERhdGUobi5zdGFydGVkQXQpLmdldFRpbWUoKTowO3QucHVzaCh7a2luZDoic2Vzc2lvbiIscmVmOm4sdDppc0Zpbml0ZShpKT9pOjB9KX19KSxyLmNsYXVkZUhpc3RvcnlMb2FkZWQmJlJuKCkuZm9yRWFjaChmdW5jdGlvbihuKXtpZihuLnRpbWVzdGFtcCl7dmFyIGk9bmV3IERhdGUobi50aW1lc3RhbXApLmdldFRpbWUoKTshaXNGaW5pdGUoaSl8fGk8PWV8fHQucHVzaCh7a2luZDoiaGlzdG9yeSIscmVmOm4sdDppfSl9fSksdC5zb3J0KGZ1bmN0aW9uKG4saSl7cmV0dXJuIGkudC1uLnR9KSx0fWZ1bmN0aW9uIFljKCl7dmFyIGU9ci5zZXNzaW9ucy5maWx0ZXIoZnVuY3Rpb24oYSl7cmV0dXJuIGEuYXJjaGl2ZWR9KSx0PVtdO3QucHVzaChjcygpKTt2YXIgbj1scygpLGk9dGQoKTtyZXR1cm4gbi5sZW5ndGg+MCYmdC5wdXNoKFpjKG4pKSxlLmxlbmd0aD4wJiZ0LnB1c2goWGMoZSkpLG4ubGVuZ3RoPT09MCYmZS5sZW5ndGg9PT0wJiYhaT9jcygpKyc8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZSI+PHN0cm9uZz5cdThGRDhcdTZDQTFcdTY3MDlcdTRGMUFcdThCRERcdThCQjBcdTVGNTU8L3N0cm9uZz48YnI+XHU3MEI5XHU1MUZCXHU0RTBBXHU2NUI5XHUzMDBDXHU2NUIwXHU1QkY5XHU4QkREXHUzMDBEXHU1RjAwXHU1OUNCXHU0RjYwXHU3Njg0XHU3QjJDXHU0RTAwXHU2QjIxXHU1QkY5XHU4QkREXHUzMDAyPC9kaXY+JzooaSYmdC5wdXNoKGkpLHQuam9pbigiIikpfWZ1bmN0aW9uIFFjKCl7cmV0dXJuISFyLnNpZGViYXJQaW5uZWQmJiEhci5zaWRlYmFyQ29sbGFwc2VkfWZ1bmN0aW9uICRjKCl7dmFyIGU9bHMoKSx0PWUubWFwKGZ1bmN0aW9uKGksYSl7dmFyIHU9YSsxO2lmKGkua2luZD09PSJzZXNzaW9uIil7dmFyIHM9aS5yZWYsbz1zLmlkPT09ci5zZWxlY3RlZElkPyIgYWN0aXZlIjoiIixsPXMudGl0bGV8fHMuZGVzY3JpcHRpb258fHMuc3VtbWFyeXx8cy5jb21tYW5kfHwiXHU0RjFBXHU4QkREICIrdTtyZXR1cm4nPGJ1dHRvbiBjbGFzcz0ic2lkZWJhci1jb2xsYXBzZWQtdGlsZScrbysnIiB0eXBlPSJidXR0b24iIGRhdGEtY29sbGFwc2VkLXNlc3Npb24taWQ9IicrcChzLmlkKSsnIiB0aXRsZT0iJytwKGwpKyciPicrdSsiPC9idXR0b24+In12YXIgYz1pLnJlZixmPWMuZmlyc3RVc2VyTWVzc2FnZXx8IihcdTdBN0FcdTRGMUFcdThCREQpIixkPWYrIiBceEI3ICIrZ3MoYy50aW1lc3RhbXApO3JldHVybic8YnV0dG9uIGNsYXNzPSJzaWRlYmFyLWNvbGxhcHNlZC10aWxlIGhpc3RvcnkiIHR5cGU9ImJ1dHRvbiIgZGF0YS1jb2xsYXBzZWQtaGlzdG9yeS1pZD0iJytwKGMuY2xhdWRlU2Vzc2lvbklkKSsnIiBkYXRhLWN3ZD0iJytwKGMuY3dkfHwiIikrJyIgdGl0bGU9IicrcChkKSsnIj4nK3UrIjwvYnV0dG9uPiJ9KS5qb2luKCIiKSxuPSc8YnV0dG9uIGNsYXNzPSJzaWRlYmFyLWNvbGxhcHNlZC10aWxlIGFkZCIgdHlwZT0iYnV0dG9uIiBkYXRhLWNvbGxhcHNlZC1uZXctc2Vzc2lvbj0iMSIgdGl0bGU9Ilx1NjVCMFx1NUVGQVx1NEYxQVx1OEJERCIgYXJpYS1sYWJlbD0iXHU2NUIwXHU1RUZBXHU0RjFBXHU4QkREIj48c3ZnIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyLjYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxsaW5lIHgxPSIxMiIgeTE9IjUiIHgyPSIxMiIgeTI9IjE5Ii8+PGxpbmUgeDE9IjUiIHkxPSIxMiIgeDI9IjE5IiB5Mj0iMTIiLz48L3N2Zz48L2J1dHRvbj4nO3JldHVybic8ZGl2IGNsYXNzPSJzaWRlYmFyLWNvbGxhcHNlZC10aWxlcyI+Jyt0K24rIjwvZGl2PiJ9ZnVuY3Rpb24gcmEoKXtyZXR1cm4gUWMoKT8kYygpOlljKCl9ZnVuY3Rpb24gY3MoKXtpZighci5zZXNzaW9uc01hbmFnZU1vZGUpcmV0dXJuJzxkaXYgY2xhc3M9InNlc3Npb24tbWFuYWdlLWJhciI+PHNwYW4gY2xhc3M9InNpZGViYXItaW50cm8iPlx1NjcwMFx1OEZEMVx1NzY4NFx1NEYxQVx1OEJERFx1OEJCMFx1NUY1NTwvc3Bhbj48YnV0dG9uIGNsYXNzPSJidG4gYnRuLWdob3N0IGJ0bi14cyBzZXNzaW9uLW1hbmFnZS10b2dnbGUiIGRhdGEtYWN0aW9uPSJ0b2dnbGUtbWFuYWdlLW1vZGUiIHR5cGU9ImJ1dHRvbiI+PHN2ZyB3aWR0aD0iMTEiIGhlaWdodD0iMTEiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi40IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48cGF0aCBkPSJNOSAxMWwzIDNMMjIgNCIvPjxwYXRoIGQ9Ik0yMSAxMnY3YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgxMSIvPjwvc3ZnPjxzcGFuPlx1N0JBMVx1NzQwNjwvc3Bhbj48L2J1dHRvbj48L2Rpdj4nO3ZhciBlPWRzKCkubGVuZ3RoLHQ9ZnMoKS5sZW5ndGgsbj1lK3QsaT1uPjAsYT1pZCgpLHU9YT4wJiZuPj1hLHM9dT8iXHU1M0Q2XHU2RDg4XHU1MTY4XHU5MDA5IjoiXHU1MTY4XHU5MDA5IixvPXU/ImNsZWFyLXNlbGVjdGlvbiI6InNlbGVjdC1hbGwtdmlzaWJsZSIsbD1hPT09MD8iIGRpc2FibGVkIjoiIixjPSc8YnV0dG9uIGNsYXNzPSJzZXNzaW9uLW1hbmFnZS1leGl0IiBkYXRhLWFjdGlvbj0idG9nZ2xlLW1hbmFnZS1tb2RlIiB0eXBlPSJidXR0b24iIGFyaWEtbGFiZWw9Ilx1OTAwMFx1NTFGQVx1N0JBMVx1NzQwNlx1NkEyMVx1NUYwRiIgdGl0bGU9Ilx1OTAwMFx1NTFGQVx1N0JBMVx1NzQwNlx1NkEyMVx1NUYwRiI+PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi40IiBzdHJva2UtbGluZWNhcD0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48bGluZSB4MT0iNiIgeTE9IjYiIHgyPSIxOCIgeTI9IjE4Ii8+PGxpbmUgeDE9IjE4IiB5MT0iNiIgeDI9IjYiIHkyPSIxOCIvPjwvc3ZnPjwvYnV0dG9uPicsZj1pPyc8c3BhbiBjbGFzcz0ic2Vzc2lvbi1tYW5hZ2UtY291bnQiPicrbisnPC9zcGFuPjxzcGFuIGNsYXNzPSJzZXNzaW9uLW1hbmFnZS1zdW1tYXJ5LWxhYmVsIj5cdTVERjJcdTkwMDlcdTYyRTk8L3NwYW4+JzonPHNwYW4gY2xhc3M9InNlc3Npb24tbWFuYWdlLXN1bW1hcnktbGFiZWwgbXV0ZWQiPlx1OTAwOVx1NjJFOVx1ODk4MVx1N0JBMVx1NzQwNlx1NzY4NFx1OTg3OVx1NzZFRTwvc3Bhbj4nO3JldHVybic8ZGl2IGNsYXNzPSJzZXNzaW9uLW1hbmFnZS1iYXIgYWN0aXZlIj4nK2MrJzxkaXYgY2xhc3M9InNlc3Npb24tbWFuYWdlLXN1bW1hcnkiPicrZisnPC9kaXY+PGRpdiBjbGFzcz0ic2Vzc2lvbi1tYW5hZ2UtYWN0aW9ucyI+PGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1naG9zdCBidG4teHMiIGRhdGEtYWN0aW9uPSInK28rJyIgdHlwZT0iYnV0dG9uIicrbCsiPiIrcysnPC9idXR0b24+PGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1kYW5nZXIgYnRuLXhzIiBkYXRhLWFjdGlvbj0iZGVsZXRlLXNlbGVjdGVkIiB0eXBlPSJidXR0b24iJysoaT8iIjoiIGRpc2FibGVkIikrIj5cdTUyMjBcdTk2NjQiKyhpPyIgIituOiIiKSsiPC9idXR0b24+PC9kaXY+PC9kaXY+In1mdW5jdGlvbiB4ZyhlLHQsbil7cmV0dXJuJzxzZWN0aW9uIGNsYXNzPSJzZXNzaW9uLWdyb3VwIj48ZGl2IGNsYXNzPSJzZXNzaW9uLWdyb3VwLXRpdGxlIj4nK3AoZSkrIjwvZGl2PiIrdC5tYXAoZnVuY3Rpb24oaSl7cmV0dXJuIG5hKGksbil9KS5qb2luKCIiKSsiPC9zZWN0aW9uPiJ9ZnVuY3Rpb24gWGMoZSl7dmFyIHQ9ISFyLmFyY2hpdmVkRXhwYW5kZWQsbj10PyImIzk2NjI7IjoiJiM5NjU2OyIsaT0nPGRpdiBjbGFzcz0ic2Vzc2lvbi1ncm91cC10aXRsZSBjbGF1ZGUtaGlzdG9yeS10b2dnbGUiIGRhdGEtYWN0aW9uPSJ0b2dnbGUtYXJjaGl2ZWQtZ3JvdXAiPjxzcGFuIGNsYXNzPSJjaGV2cm9uIj4nK24rJzwvc3Bhbj4gXHU1REYyXHU1RjUyXHU2ODYzIDxzcGFuIGNsYXNzPSJoaXN0b3J5LWNvdW50Ij4nK2UubGVuZ3RoKyI8L3NwYW4+PC9kaXY+IjtpZighdClyZXR1cm4nPHNlY3Rpb24gY2xhc3M9InNlc3Npb24tZ3JvdXAiPicraSsiPC9zZWN0aW9uPiI7dmFyIGE9ZS5tYXAoZnVuY3Rpb24odSl7cmV0dXJuIG5hKHUsInNlc3Npb25zIil9KS5qb2luKCIiKTtyZXR1cm4nPHNlY3Rpb24gY2xhc3M9InNlc3Npb24tZ3JvdXAiPicraSthKyI8L3NlY3Rpb24+In1mdW5jdGlvbiBaYyhlKXt2YXIgdD0nPHNlY3Rpb24gY2xhc3M9InNlc3Npb24tZ3JvdXAgc2Vzc2lvbi1ncm91cC0tcmVjZW50Ij4nO3JldHVybiB0Kz1lLm1hcChmdW5jdGlvbihuKXtyZXR1cm4gbi5raW5kPT09InNlc3Npb24iP25hKG4ucmVmLCJzZXNzaW9ucyIpOmlhKG4ucmVmLCJoaXN0b3J5Iil9KS5qb2luKCIiKSx0Kz0iPC9zZWN0aW9uPiIsdH1mdW5jdGlvbiBlZCgpe3ZhciBlPURhdGUubm93KCktODY0ZTU7cmV0dXJuIFJuKCkuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiF0LnRpbWVzdGFtcHx8bmV3IERhdGUodC50aW1lc3RhbXApLmdldFRpbWUoKTw9ZX0pfWZ1bmN0aW9uIHRkKCl7dmFyIGU9ZWQoKSx0PSEhci5jbGF1ZGVIaXN0b3J5TG9hZGVkLG49cGQoKSxpPSEhci5jb2RleEhpc3RvcnlMb2FkZWQsYT10JiZpLHU9KHQ/ZS5sZW5ndGg6MCkrKGk/bi5sZW5ndGg6MCk7aWYoYSYmdT09PTApcmV0dXJuIiI7dmFyIHM9ISFyLmNsYXVkZUhpc3RvcnlFeHBhbmRlZCxvPXM/IiYjOTY2MjsiOiImIzk2NTY7IixsPWE/dT45OTk/Ijk5OSsiOlN0cmluZyh1KToiXHhCN1x4QjdceEI3IixjPSc8ZGl2IGNsYXNzPSJzZXNzaW9uLWdyb3VwLXRpdGxlIGNsYXVkZS1oaXN0b3J5LXRvZ2dsZSBzZXNzaW9uLWhpc3RvcnktdG9nZ2xlIiBpZD0iY2xhdWRlLWhpc3RvcnktdG9nZ2xlIiByb2xlPSJidXR0b24iIHRhYmluZGV4PSIwIiBhcmlhLWV4cGFuZGVkPSInK3MrJyIgdGl0bGU9IicrKHM/Ilx1NjUzNlx1OEQ3N1x1NTM4Nlx1NTNGMlx1NEYxQVx1OEJERCI6Ilx1NUM1NVx1NUYwMFx1NTM4Nlx1NTNGMlx1NEYxQVx1OEJERCIpKyciPjxzcGFuIGNsYXNzPSJjaGV2cm9uIj4nK28rJzwvc3Bhbj4gXHU1Mzg2XHU1M0YyXHU0RjFBXHU4QkREIDxzcGFuIGNsYXNzPSJoaXN0b3J5LWNvdW50JysoYT8iIjoiIGxvYWRpbmciKSsnIj4nK2wrIjwvc3Bhbj48L2Rpdj4iLGY9cz8nPGRpdiBjbGFzcz0ic2Vzc2lvbi1oaXN0b3J5LWJvZHkiPicrbmQoZSkrbGQobikrIjwvZGl2PiI6IiI7cmV0dXJuJzxzZWN0aW9uIGNsYXNzPSJzZXNzaW9uLWdyb3VwIHNlc3Npb24tZ3JvdXAtLWhpc3RvcnkiPicrYytmKyI8L3NlY3Rpb24+In1mdW5jdGlvbiBuZChlKXtpZighci5jbGF1ZGVIaXN0b3J5TG9hZGVkKXJldHVybic8ZGl2IGNsYXNzPSJjbGF1ZGUtaGlzdG9yeS1sb2FkaW5nIj5cdTYyNkJcdTYzQ0ZcdTUzODZcdTUzRjJcdTRGMUFcdThCRERcdTRFMkRcdTIwMjY8L2Rpdj4nO2lmKGUubGVuZ3RoPT09MClyZXR1cm4iIjt2YXIgdD17fSxuPVtdO2UuZm9yRWFjaChmdW5jdGlvbih1KXt0W3UuY3dkXXx8KHRbdS5jd2RdPVtdLG4ucHVzaCh1LmN3ZCkpLHRbdS5jd2RdLnB1c2godSl9KTt2YXIgaT0nPGRpdiBjbGFzcz0ic2lkZWJhci1oaXN0b3J5LXRvb2xiYXIiPjxidXR0b24gY2xhc3M9ImJ0biBidG4tZ2hvc3QgYnRuLXhzIHNpZGViYXItaGlzdG9yeS1jbGVhciIgZGF0YS1hY3Rpb249ImNsZWFyLWFsbC1oaXN0b3J5IiB0eXBlPSJidXR0b24iPlx1NkUwNVx1N0E3QVx1NTE2OFx1OTBFODwvYnV0dG9uPjwvZGl2PicsYT0iIjtyZXR1cm4gbi5mb3JFYWNoKGZ1bmN0aW9uKHUpe3ZhciBzPXUuc3BsaXQoIi8iKS5maWx0ZXIoQm9vbGVhbikuc2xpY2UoLTMpLmpvaW4oIi8iKSxvPSEhci5jbGF1ZGVIaXN0b3J5RXhwYW5kZWREaXJzW3VdO2ErPWNkKHUscyx0W3VdLmxlbmd0aCxvKSxvJiYoYSs9dFt1XS5tYXAoZnVuY3Rpb24obCl7cmV0dXJuIGlhKGwsImhpc3RvcnkiKX0pLmpvaW4oIiIpKX0pLGkrJzxkaXYgY2xhc3M9InNpZGViYXItaGlzdG9yeS1zY3JvbGwiPicrYSsiPC9kaXY+In1mdW5jdGlvbiBSbigpe3ZhciBlPW5ldyBTZXQ7cmV0dXJuIHIuc2Vzc2lvbnMuZm9yRWFjaChmdW5jdGlvbih0KXt0LmNsYXVkZVNlc3Npb25JZCYmZS5hZGQodC5jbGF1ZGVTZXNzaW9uSWQpfSksci5jbGF1ZGVIaXN0b3J5LmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gdC5oYXNDb252ZXJzYXRpb24mJiF0Lm1hbmFnZWRCeVdhbmQmJiFlLmhhcyh0LmNsYXVkZVNlc3Npb25JZCl9KX1mdW5jdGlvbiBkcygpe3JldHVybiBPYmplY3Qua2V5cyhyLnNlbGVjdGVkU2Vzc2lvbklkcykuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiEhci5zZWxlY3RlZFNlc3Npb25JZHNbZV19KX1mdW5jdGlvbiBmcygpe3JldHVybiBPYmplY3Qua2V5cyhyLnNlbGVjdGVkQ2xhdWRlSGlzdG9yeUlkcykuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiEhci5zZWxlY3RlZENsYXVkZUhpc3RvcnlJZHNbZV19KX1mdW5jdGlvbiBlaSgpe3Iuc2VsZWN0ZWRTZXNzaW9uSWRzPXt9LHIuc2VsZWN0ZWRDbGF1ZGVIaXN0b3J5SWRzPXt9fWZ1bmN0aW9uIHJkKGUpe3Iuc2Vzc2lvbnNNYW5hZ2VNb2RlPXR5cGVvZiBlPT0iYm9vbGVhbiI/ZTohci5zZXNzaW9uc01hbmFnZU1vZGUsci5zZXNzaW9uc01hbmFnZU1vZGUmJiFyLmNsYXVkZUhpc3RvcnlMb2FkZWQmJnRpKCkudGhlbihtZSksci5zZXNzaW9uc01hbmFnZU1vZGV8fChlaSgpLElyKCkpLG1lKCl9ZnVuY3Rpb24gcHMoKXtyZXR1cm4gci5zZXNzaW9ucy5zbGljZSgpfWZ1bmN0aW9uIGlkKCl7cmV0dXJuIHBzKCkubGVuZ3RoK1JuKCkubGVuZ3RofWZ1bmN0aW9uIHZzKCl7aWYoIXIuY2xhdWRlSGlzdG9yeUxvYWRlZCl7dGkoKS50aGVuKHZzKTtyZXR1cm59ci5jbGF1ZGVIaXN0b3J5RXhwYW5kZWQ9ITA7dmFyIGU9e307cHMoKS5mb3JFYWNoKGZ1bmN0aW9uKG4pe2Vbbi5pZF09ITB9KTt2YXIgdD17fTtSbigpLmZvckVhY2goZnVuY3Rpb24obil7dFtuLmNsYXVkZVNlc3Npb25JZF09ITB9KSxyLnNlbGVjdGVkU2Vzc2lvbklkcz1lLHIuc2VsZWN0ZWRDbGF1ZGVIaXN0b3J5SWRzPXQsbWUoKX1mdW5jdGlvbiBhZCgpe2VpKCksbWUoKX1mdW5jdGlvbiB2cihlLHQpe2lmKCEoIXIuc2Vzc2lvbnNNYW5hZ2VNb2RlfHwhdCkpe3ZhciBuPWU9PT0iaGlzdG9yeSI/ci5zZWxlY3RlZENsYXVkZUhpc3RvcnlJZHM6ci5zZWxlY3RlZFNlc3Npb25JZHM7blt0XT9kZWxldGUgblt0XTpuW3RdPSEwLG1lKCl9fWZ1bmN0aW9uIG1zKGUsdCxuKXtpZighci5zZXNzaW9uc01hbmFnZU1vZGUpcmV0dXJuIiI7dmFyIGk9ZT09PSJoaXN0b3J5Ij8hIXIuc2VsZWN0ZWRDbGF1ZGVIaXN0b3J5SWRzW3RdOiEhci5zZWxlY3RlZFNlc3Npb25JZHNbdF07cmV0dXJuJzxsYWJlbCBjbGFzcz0ic2Vzc2lvbi1tYW5hZ2UtY2hlY2siPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgZGF0YS1hY3Rpb249InRvZ2dsZS1zZWxlY3Rpb24iIGRhdGEta2luZD0iJytwKGUpKyciIGRhdGEtaWQ9IicrcCh0KSsnIicrKGk/IiBjaGVja2VkIjoiIikrJyBhcmlhLWxhYmVsPSInK3AobikrJyI+PHNwYW4+PC9zcGFuPjwvbGFiZWw+J31mdW5jdGlvbiB4bihlLHQpe3JldHVybiB0eXBlb2Ygd2luZG93LndhbmRDb25maXJtPT0iZnVuY3Rpb24iP3dpbmRvdy53YW5kQ29uZmlybShlLE9iamVjdC5hc3NpZ24oe3R5cGU6ImRhbmdlciIsZGFuZ2VyOiEwLG9rTGFiZWw6Ilx1NTIyMFx1OTY2NCJ9LHR8fHt9KSk6UHJvbWlzZS5yZXNvbHZlKHdpbmRvdy5jb25maXJtKGUpKX1mdW5jdGlvbiB1ZCgpe3ZhciBlPWRzKCksdD1mcygpLG49ZS5sZW5ndGgrdC5sZW5ndGg7biYmeG4oIlx1Nzg2RVx1OEJBNFx1NTIyMFx1OTY2NFx1NjI0MFx1OTAwOSAiK24rIiBcdTk4NzlcdTU0MTdcdUZGMUZcdTZCNjRcdTY0Q0RcdTRGNUNcdTY1RTBcdTZDRDVcdTY0QTRcdTk1MDBcdTMwMDIiLHt0aXRsZToiXHU1MjIwXHU5NjY0XHU2MjQwXHU5MDA5ICIrbisiIFx1OTg3OSJ9KS50aGVuKGZ1bmN0aW9uKGkpe2lmKGkpe3ZhciBhPVtdO2UubGVuZ3RoPjAmJmEucHVzaChmZXRjaCgiL2FwaS9zZXNzaW9ucy9iYXRjaC1kZWxldGUiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KHtzZXNzaW9uSWRzOmV9KX0pLnRoZW4oZnVuY3Rpb24odSl7cmV0dXJuIHUuanNvbigpfSkpLHQubGVuZ3RoPjAmJmEucHVzaChmZXRjaCgiL2FwaS9jbGF1ZGUtaGlzdG9yeS9iYXRjaC1kZWxldGUiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KHtjbGF1ZGVTZXNzaW9uSWRzOnR9KX0pLnRoZW4oZnVuY3Rpb24odSl7cmV0dXJuIHUuanNvbigpfSkpLFByb21pc2UuYWxsKGEpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gZS5pbmRleE9mKHIuc2VsZWN0ZWRJZCkhPT0tMSYmKHIuc2VsZWN0ZWRJZD1udWxsLHdlKCkpLHIuY2xhdWRlSGlzdG9yeT1yLmNsYXVkZUhpc3RvcnkuZmlsdGVyKGZ1bmN0aW9uKHUpe3JldHVybiB0LmluZGV4T2YodS5jbGF1ZGVTZXNzaW9uSWQpPT09LTF9KSxlaSgpLFJ0KCl9KS5jYXRjaChmdW5jdGlvbigpe3ZhciB1PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhY3Rpb24tZXJyb3IiKTtQZSh1LCJcdTY1RTBcdTZDRDVcdTYyNzlcdTkxQ0ZcdTUyMjBcdTk2NjRcdTYyNDBcdTkwMDlcdTk4NzlcdTc2RUVcdTMwMDIiKX0pfX0pfWZ1bmN0aW9uIHNkKCl7dmFyIGU9RGF0ZS5ub3coKS04NjRlNSx0PVJuKCkuZmlsdGVyKGZ1bmN0aW9uKG4pe3JldHVybiFuLnRpbWVzdGFtcHx8bmV3IERhdGUobi50aW1lc3RhbXApLmdldFRpbWUoKTw9ZX0pO2lmKHQubGVuZ3RoKXJldHVybiB4bigiXHU3ODZFXHU4QkE0XHU2RTA1XHU3QTdBXHU1RjUzXHU1MjREXHU2NjNFXHU3OTNBXHU3Njg0ICIrdC5sZW5ndGgrIiBcdTY3NjEgQ2xhdWRlIFx1NTM4Nlx1NTNGMlx1NTQxN1x1RkYxRiIse3RpdGxlOiJcdTZFMDVcdTdBN0EgQ2xhdWRlIFx1NTM4Nlx1NTNGMiIsb2tMYWJlbDoiXHU2RTA1XHU3QTdBIn0pLnRoZW4oZnVuY3Rpb24obil7aWYobil7dmFyIGk9dC5tYXAoZnVuY3Rpb24oYSl7cmV0dXJuIGEuY2xhdWRlU2Vzc2lvbklkfSk7cmV0dXJuIGZldGNoKCIvYXBpL2NsYXVkZS1oaXN0b3J5L2JhdGNoLWRlbGV0ZSIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkoe2NsYXVkZVNlc3Npb25JZHM6aX0pfSkudGhlbihmdW5jdGlvbihhKXtyZXR1cm4gYS5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKGEpe2lmKGEmJmEuZXJyb3IpdGhyb3cgbmV3IEVycm9yKGEuZXJyb3IpO3IuY2xhdWRlSGlzdG9yeT1yLmNsYXVkZUhpc3RvcnkuZmlsdGVyKGZ1bmN0aW9uKHUpe3JldHVybiBpLmluZGV4T2YodS5jbGF1ZGVTZXNzaW9uSWQpPT09LTF9KSxlaSgpLG1lKCl9KS5jYXRjaChmdW5jdGlvbigpe3ZhciBhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhY3Rpb24tZXJyb3IiKTtQZShhLCJcdTY1RTBcdTZDRDVcdTZFMDVcdTdBN0FcdTUzODZcdTUzRjJcdTRGMUFcdThCRERcdTMwMDIiKX0pfX0pfWZ1bmN0aW9uIG9kKGUsdCxuLGkpe3ZhciBhPWk/Ilx1MjVCRSI6Ilx1MjVCOCI7cmV0dXJuJzxkaXYgY2xhc3M9ImNsYXVkZS1oaXN0b3J5LWRpcmVjdG9yeS1oZWFkZXIgY29kZXgtaGlzdG9yeS1kaXJlY3RvcnktaGVhZGVyIiBkYXRhLWFjdGlvbj0idG9nZ2xlLWNvZGV4LWhpc3RvcnktZGlyZWN0b3J5IiBkYXRhLWN3ZD0iJytwKGUpKyciIHJvbGU9ImJ1dHRvbiIgdGFiaW5kZXg9IjAiPjxkaXYgY2xhc3M9InNlc3Npb24tZ3JvdXAtdGl0bGUgY2xhdWRlLWhpc3RvcnktZGlyZWN0b3J5LXRpdGxlIj48c3BhbiBjbGFzcz0iY2hldnJvbiI+JythKyc8L3NwYW4+PHNwYW4gY2xhc3M9ImNsYXVkZS1oaXN0b3J5LWRpcmVjdG9yeS1sYWJlbCI+JytsdChlLCJjbGF1ZGUtaGlzdG9yeS1kaXJlY3RvcnktbGFiZWwtcGF0aCIpKyc8c3BhbiBjbGFzcz0iY2xhdWRlLWhpc3RvcnktZGlyZWN0b3J5LWNvdW50Ij4oJytuKyIpPC9zcGFuPjwvc3Bhbj48L2Rpdj48L2Rpdj4ifWZ1bmN0aW9uIGxkKGUpe2lmKCFyLmNvZGV4SGlzdG9yeUxvYWRlZClyZXR1cm4nPGRpdiBjbGFzcz0iY2xhdWRlLWhpc3RvcnktbG9hZGluZyI+XHU2MjZCXHU2M0NGIENvZGV4IFx1NTM4Nlx1NTNGMlx1NEYxQVx1OEJERFx1NEUyRFx1MjAyNjwvZGl2Pic7aWYoZS5sZW5ndGg9PT0wKXJldHVybiIiO3ZhciB0PXt9LG49W107ZS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3RbYS5jd2RdfHwodFthLmN3ZF09W10sbi5wdXNoKGEuY3dkKSksdFthLmN3ZF0ucHVzaChhKX0pO3ZhciBpPSc8ZGl2IGNsYXNzPSJzaWRlYmFyLWhpc3Rvcnktc2VjdGlvbi1sYWJlbCI+Q29kZXg8L2Rpdj4nO3JldHVybiBuLmZvckVhY2goZnVuY3Rpb24oYSl7dmFyIHU9YS5zcGxpdCgiLyIpLmZpbHRlcihCb29sZWFuKS5zbGljZSgtMykuam9pbigiLyIpLHM9ISFyLmNvZGV4SGlzdG9yeUV4cGFuZGVkRGlyc1thXTtpKz1vZChhLHUsdFthXS5sZW5ndGgscykscyYmKGkrPXRbYV0ubWFwKGZ1bmN0aW9uKG8pe3JldHVybiBpYShvLCJjb2RleCIpfSkuam9pbigiIikpfSksJzxkaXYgY2xhc3M9InNpZGViYXItaGlzdG9yeS1zY3JvbGwgY29kZXgtaGlzdG9yeS1zY3JvbGwiPicraSsiPC9kaXY+In1mdW5jdGlvbiBjZChlLHQsbixpKXt2YXIgYT1pPyImIzk2NjI7IjoiJiM5NjU2OyI7cmV0dXJuJzxkaXYgY2xhc3M9ImNsYXVkZS1oaXN0b3J5LWRpcmVjdG9yeS1oZWFkZXIiIGRhdGEtYWN0aW9uPSJ0b2dnbGUtaGlzdG9yeS1kaXJlY3RvcnkiIGRhdGEtY3dkPSInK3AoZSkrJyIgcm9sZT0iYnV0dG9uIiB0YWJpbmRleD0iMCI+PGRpdiBjbGFzcz0ic2Vzc2lvbi1ncm91cC10aXRsZSBjbGF1ZGUtaGlzdG9yeS1kaXJlY3RvcnktdGl0bGUiPjxzcGFuIGNsYXNzPSJjaGV2cm9uIj4nK2ErJzwvc3Bhbj48c3BhbiBjbGFzcz0iY2xhdWRlLWhpc3RvcnktZGlyZWN0b3J5LWxhYmVsIj4nK2x0KGUsImNsYXVkZS1oaXN0b3J5LWRpcmVjdG9yeS1sYWJlbC1wYXRoIikrJzxzcGFuIGNsYXNzPSJjbGF1ZGUtaGlzdG9yeS1kaXJlY3RvcnktY291bnQiPignK24rJyk8L3NwYW4+PC9zcGFuPjxidXR0b24gY2xhc3M9ImJ0biBidG4tZGFuZ2VyIGJ0bi14cyBjbGF1ZGUtaGlzdG9yeS1kaXJlY3RvcnktY2xlYXItYnRuIiBkYXRhLWFjdGlvbj0iZGVsZXRlLWhpc3RvcnktZGlyZWN0b3J5IiBkYXRhLWN3ZD0iJytwKGUpKyciIHR5cGU9ImJ1dHRvbiIgYXJpYS1sYWJlbD0iXHU2RTA1XHU3QTdBXHU2QjY0XHU3NkVFXHU1RjU1XHU3Njg0XHU1Mzg2XHU1M0YyXHU0RjFBXHU4QkREIiB0aXRsZT0iXHU2RTA1XHU3QTdBXHU2QjY0XHU3NkVFXHU1RjU1XHU3Njg0XHU1Mzg2XHU1M0YyXHU0RjFBXHU4QkREIj5cdTZFMDVcdTdBN0FcdTZCNjRcdTc2RUVcdTVGNTU8L2J1dHRvbj48L2Rpdj48L2Rpdj4nfWZ1bmN0aW9uIGlhKGUsdCl7dmFyIG49dD09PSJjb2RleCIsaT1uPyJyZXN1bWUtY29kZXgtaGlzdG9yeSI6InJlc3VtZS1oaXN0b3J5IixhPW4/ImRlbGV0ZS1jb2RleC1oaXN0b3J5IjoiZGVsZXRlLWhpc3RvcnkiLHU9bj9yLnNlbGVjdGVkQ29kZXhIaXN0b3J5SWRzOnIuc2VsZWN0ZWRDbGF1ZGVIaXN0b3J5SWRzLHM9ZS5jbGF1ZGVTZXNzaW9uSWQuc2xpY2UoMCw4KSxvPWUuZmlyc3RVc2VyTWVzc2FnZXx8IihcdTdBN0FcdTRGMUFcdThCREQpIixsPWdzKGUudGltZXN0YW1wKSxjPW1zKHQsZS5jbGF1ZGVTZXNzaW9uSWQsIlx1OTAwOVx1NjJFOVx1NTM4Nlx1NTNGMlx1NEYxQVx1OEJERCAiK28pLGY9ci5zZXNzaW9uc01hbmFnZU1vZGU/IiI6JzxidXR0b24gY2xhc3M9InNlc3Npb24tYWN0aW9uLWJ0biBkZWxldGUtYnRuIiBkYXRhLWFjdGlvbj0iJythKyciIGRhdGEtY2xhdWRlLXNlc3Npb24taWQ9IicrZS5jbGF1ZGVTZXNzaW9uSWQrJyIgdHlwZT0iYnV0dG9uIiBhcmlhLWxhYmVsPSJcdTUyMjBcdTk2NjRcdTRGMUFcdThCREQiIHRpdGxlPSJcdTk2OTBcdTg1Q0ZcdTZCNjRcdTUzODZcdTUzRjJcdTRGMUFcdThCREQiPjxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTMgNmgxOCIvPjxwYXRoIGQ9Ik04IDZWNGEyIDIgMCAwMTItMmg0YTIgMiAwIDAxMiAydjIiLz48cGF0aCBkPSJNMTkgNmwtMSAxNGEyIDIgMCAwMS0yIDJIOGEyIDIgMCAwMS0yLTJMNSA2Ii8+PC9zdmc+PC9idXR0b24+JyxkPXIuc2Vzc2lvbnNNYW5hZ2VNb2RlPyIiOic8YnV0dG9uIGNsYXNzPSJzZXNzaW9uLWFjdGlvbi1idG4iIGRhdGEtYWN0aW9uPSInK2krJyIgZGF0YS1jbGF1ZGUtc2Vzc2lvbi1pZD0iJytlLmNsYXVkZVNlc3Npb25JZCsnIiBkYXRhLWN3ZD0iJytwKGUuY3dkKSsnIiB0eXBlPSJidXR0b24iIGFyaWEtbGFiZWw9Ilx1NjA2Mlx1NTkwRFx1NEYxQVx1OEJERCIgdGl0bGU9IicrKG4/Ilx1NjA2Mlx1NTkwRFx1NkI2NCBDb2RleCBcdTUzODZcdTUzRjJcdTRGMUFcdThCREQiOiJcdTYwNjJcdTU5MERcdTZCNjQgQ2xhdWRlIFx1NTM4Nlx1NTNGMlx1NEYxQVx1OEJERCIpKyciPjxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTEgNHY2aDYiLz48cGF0aCBkPSJNMy41MSAxNWE5IDkgMCAxMDUuNjQtMTEuMzZMMyAxMCIvPjwvc3ZnPjwvYnV0dG9uPic7cmV0dXJuJzxkaXYgY2xhc3M9InNlc3Npb24taXRlbSBjbGF1ZGUtaGlzdG9yeS1pdGVtJysoci5zZXNzaW9uc01hbmFnZU1vZGUmJnVbZS5jbGF1ZGVTZXNzaW9uSWRdPyIgc2VsZWN0ZWQiOiIiKSsnIiBkYXRhLWNsYXVkZS1oaXN0b3J5LWlkPSInK2UuY2xhdWRlU2Vzc2lvbklkKyciIGRhdGEtY3dkPSInK3AoZS5jd2QpKyciIHJvbGU9ImJ1dHRvbiIgdGFiaW5kZXg9IjAiPjxkaXYgY2xhc3M9InNlc3Npb24taXRlbS1jb250ZW50Ij48ZGl2IGNsYXNzPSJzZXNzaW9uLWl0ZW0tcm93Ij4nK2MrJzxkaXYgY2xhc3M9InNlc3Npb24tbWFpbiI+PGRpdiBjbGFzcz0ic2Vzc2lvbi1jb21tYW5kIGNsYXVkZS1oaXN0b3J5LXByZXZpZXciPicrcChvKSsnPC9kaXY+PGRpdiBjbGFzcz0ic2Vzc2lvbi1tZXRhIj48c3BhbiBjbGFzcz0ic2Vzc2lvbi1pZCIgdGl0bGU9IicrcChlLmNsYXVkZVNlc3Npb25JZCkrJyI+JytwKHMpKyI8L3NwYW4+PHNwYW4+IitwKGwpKyc8L3NwYW4+PC9kaXY+PC9kaXY+PHNwYW4gY2xhc3M9InNlc3Npb24tYWN0aW9ucyI+JytkK2YrIjwvc3Bhbj48L2Rpdj48L2Rpdj48L2Rpdj4ifWZ1bmN0aW9uIGdzKGUpe2lmKCFlKXJldHVybiIiO3RyeXt2YXIgdD1uZXcgRGF0ZShlKSxuPW5ldyBEYXRlLGk9bi10LGE9TWF0aC5mbG9vcihpLzZlNCk7aWYoYTwxKXJldHVybiJcdTUyMUFcdTUyMUEiO2lmKGE8NjApcmV0dXJuIGErIiBcdTUyMDZcdTk0OUZcdTUyNEQiO3ZhciB1PU1hdGguZmxvb3IoYS82MCk7aWYodTwyNClyZXR1cm4gdSsiIFx1NUMwRlx1NjVGNlx1NTI0RCI7dmFyIHM9TWF0aC5mbG9vcih1LzI0KTtyZXR1cm4gczwzMD9zKyIgXHU1OTI5XHU1MjREIjp0LnRvTG9jYWxlRGF0ZVN0cmluZygpfWNhdGNoe3JldHVybiIifX1mdW5jdGlvbiBocygpe3JldHVybiBmZXRjaCgiL2FwaS9jbGF1ZGUtaGlzdG9yeSIse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBlLm9rP2UuanNvbigpOltdfSkudGhlbihmdW5jdGlvbihlKXtyLmNsYXVkZUhpc3Rvcnk9ZXx8W10sci5jbGF1ZGVIaXN0b3J5TG9hZGVkPSEwLG1lKCl9KS5jYXRjaChmdW5jdGlvbigpe3IuY2xhdWRlSGlzdG9yeUxvYWRlZD0hMCxyLmNsYXVkZUhpc3Rvcnk9W10sbWUoKX0pfXZhciBXbj1udWxsO2Z1bmN0aW9uIHRpKCl7cmV0dXJuIGZkKCksci5jbGF1ZGVIaXN0b3J5TG9hZGVkP1Byb21pc2UucmVzb2x2ZSgpOldufHwoV249aHMoKS50aGVuKGZ1bmN0aW9uKCl7V249bnVsbH0sZnVuY3Rpb24oKXtXbj1udWxsfSksV24pfWZ1bmN0aW9uIGRkKCl7cmV0dXJuIGZldGNoKCIvYXBpL2NvZGV4LWhpc3RvcnkiLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gZS5vaz9lLmpzb24oKTpbXX0pLnRoZW4oZnVuY3Rpb24oZSl7ci5jb2RleEhpc3Rvcnk9ZXx8W10sci5jb2RleEhpc3RvcnlMb2FkZWQ9ITAsbWUoKX0pLmNhdGNoKGZ1bmN0aW9uKCl7ci5jb2RleEhpc3RvcnlMb2FkZWQ9ITAsci5jb2RleEhpc3Rvcnk9W10sbWUoKX0pfXZhciB6bj1udWxsO2Z1bmN0aW9uIGZkKCl7cmV0dXJuIHIuY29kZXhIaXN0b3J5TG9hZGVkP1Byb21pc2UucmVzb2x2ZSgpOnpufHwoem49ZGQoKS50aGVuKGZ1bmN0aW9uKCl7em49bnVsbH0sZnVuY3Rpb24oKXt6bj1udWxsfSksem4pfWZ1bmN0aW9uIHBkKCl7dmFyIGU9bmV3IFNldDtyZXR1cm4gci5zZXNzaW9ucy5mb3JFYWNoKGZ1bmN0aW9uKHQpe3QuY2xhdWRlU2Vzc2lvbklkJiZlLmFkZCh0LmNsYXVkZVNlc3Npb25JZCl9KSxyLmNvZGV4SGlzdG9yeS5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIHQuaGFzQ29udmVyc2F0aW9uJiYhdC5tYW5hZ2VkQnlXYW5kJiYhZS5oYXModC5jbGF1ZGVTZXNzaW9uSWQpfSl9ZnVuY3Rpb24geXMoKXtCcygpLCFuaSgpJiYoci5wb2xsVGltZXI9c2V0SW50ZXJ2YWwoUnQsMTYwMCkpfXNldEludGVydmFsKGZ1bmN0aW9uKCl7dmFyIGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnNlc3Npb24tdGltZSIpO2UubGVuZ3RoPjAmJnV1KCl9LDNlNCk7ZnVuY3Rpb24gYWEoKXtyLndzUmVjb25uZWN0VGltZXImJihjbGVhclRpbWVvdXQoci53c1JlY29ubmVjdFRpbWVyKSxyLndzUmVjb25uZWN0VGltZXI9bnVsbCl9dmFyIHZkPTFlNCxtZD00ZTQ7ZnVuY3Rpb24gZ2QoKXticygpLHIud3NIZWFydGJlYXRDaGVja1RpbWVyPXNldEludGVydmFsKEVzLHZkKX1mdW5jdGlvbiBicygpe3Iud3NIZWFydGJlYXRDaGVja1RpbWVyJiYoY2xlYXJJbnRlcnZhbChyLndzSGVhcnRiZWF0Q2hlY2tUaW1lciksci53c0hlYXJ0YmVhdENoZWNrVGltZXI9bnVsbCl9ZnVuY3Rpb24gRXMoKXtpZighKCFyLndzfHxyLndzLnJlYWR5U3RhdGUhPT1XZWJTb2NrZXQuT1BFTikmJnIubGFzdFdzTWVzc2FnZUF0KXt2YXIgZT1EYXRlLm5vdygpLXIubGFzdFdzTWVzc2FnZUF0O2U+bWQmJnVhKCJoZWFydGJlYXQtc3RhbGUtIitNYXRoLnJvdW5kKGUvMWUzKSsicyIpfX1mdW5jdGlvbiB1YShlKXtpZihhYSgpLHIud3Mpe3ZhciB0PXIud3M7dHJ5e3Qub25jbG9zZT1udWxsfWNhdGNoe310cnl7dC5vbmVycm9yPW51bGx9Y2F0Y2h7fXRyeXt0Lm9ubWVzc2FnZT1udWxsfWNhdGNoe310cnl7dC5jbG9zZSgpfWNhdGNoe31yLndzPW51bGx9ci53c0Nvbm5lY3RlZD0hMSxyLndzUmVjb25uZWN0QXR0ZW1wdHM9MCxuaShlKX1mdW5jdGlvbiBGcygpe2lmKCFyLndzUmVjb25uZWN0VGltZXImJiFkb2N1bWVudC5oaWRkZW4pe3ZhciBlPXIud3NSZWNvbm5lY3RBdHRlbXB0c3x8MCx0PVs1MDAsMWUzLDJlMyw0ZTMsOGUzXSxuPXRbZTx0Lmxlbmd0aD9lOnQubGVuZ3RoLTFdO3Iud3NSZWNvbm5lY3RBdHRlbXB0cz1lKzEsci53c1JlY29ubmVjdFRpbWVyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtyLndzUmVjb25uZWN0VGltZXI9bnVsbCxyLmNvbmZpZyYmIXIud3MmJiFkb2N1bWVudC5oaWRkZW4mJm5pKCJiYWNrb2ZmIil9LG4pfX1mdW5jdGlvbiBuaShlKXtpZighd2luZG93LldlYlNvY2tldClyZXR1cm4hMTtpZihyLndzKXt0cnl7ci53cy5jbG9zZSgpfWNhdGNoe31yLndzPW51bGx9dmFyIHQ9d2luZG93LmxvY2F0aW9uLnByb3RvY29sPT09Imh0dHBzOiI/IndzczoiOiJ3czoiLG49dCsiLy8iK3dpbmRvdy5sb2NhdGlvbi5ob3N0KyIvd3MiO3RyeXt2YXIgaT1uZXcgV2ViU29ja2V0KG4pO3JldHVybiBpLm9ub3Blbj1mdW5jdGlvbigpe3Iud3M9aSxyLndzQ29ubmVjdGVkPSEwLHIubGFzdFdzTWVzc2FnZUF0PURhdGUubm93KCksci53c1JlY29ubmVjdEF0dGVtcHRzPTAsYWEoKSxyLmxhc3RTZXFCeVNlc3Npb249e30sZ2QoKSxxbihyLnNlbGVjdGVkSWQpLFJwKCksRXIoIndzLXJlY29ubmVjdCIpfSxpLm9ubWVzc2FnZT1mdW5jdGlvbihhKXtyLmxhc3RXc01lc3NhZ2VBdD1EYXRlLm5vdygpO3RyeXt2YXIgdT1KU09OLnBhcnNlKGEuZGF0YSk7aWYodSYmdS50eXBlPT09InBpbmciKXtpZihyLndzJiZyLndzLnJlYWR5U3RhdGU9PT1XZWJTb2NrZXQuT1BFTil0cnl7ci53cy5zZW5kKEpTT04uc3RyaW5naWZ5KHt0eXBlOiJwb25nIix0OnUudH0pKX1jYXRjaHt9cmV0dXJufWlmKHUmJnUudHlwZT09PSJyZXN5bmNfcmVxdWlyZWQiJiZ1LnNlc3Npb25JZCl7aWYoci53cyYmci53cy5yZWFkeVN0YXRlPT09V2ViU29ja2V0Lk9QRU4pdHJ5e3Iud3Muc2VuZChKU09OLnN0cmluZ2lmeSh7dHlwZToicmVzeW5jIixzZXNzaW9uSWQ6dS5zZXNzaW9uSWR9KSl9Y2F0Y2h7fXIubGFzdFNlcUJ5U2Vzc2lvbnx8KHIubGFzdFNlcUJ5U2Vzc2lvbj17fSksci5sYXN0U2VxQnlTZXNzaW9uW3Uuc2Vzc2lvbklkXT0wO3JldHVybn1pZih1JiYodS50eXBlPT09ImluaXQifHx1LnR5cGU9PT0ib3V0cHV0IikmJnUuc2Vzc2lvbklkJiZ0eXBlb2YgdS5zZXE9PSJudW1iZXIiKXtyLmxhc3RTZXFCeVNlc3Npb258fChyLmxhc3RTZXFCeVNlc3Npb249e30pO3ZhciBzPXIubGFzdFNlcUJ5U2Vzc2lvblt1LnNlc3Npb25JZF18fDA7aWYodS50eXBlPT09ImluaXQiKXIubGFzdFNlcUJ5U2Vzc2lvblt1LnNlc3Npb25JZF09dS5zZXE7ZWxzZSBpZih1LnNlcT09PXMrMSlyLmxhc3RTZXFCeVNlc3Npb25bdS5zZXNzaW9uSWRdPXUuc2VxO2Vsc2UgaWYodS5zZXE+cysxJiZzPjApe2lmKHIud3MmJnIud3MucmVhZHlTdGF0ZT09PVdlYlNvY2tldC5PUEVOKXRyeXtyLndzLnNlbmQoSlNPTi5zdHJpbmdpZnkoe3R5cGU6InJlc3luYyIsc2Vzc2lvbklkOnUuc2Vzc2lvbklkfSkpfWNhdGNoe31yLmxhc3RTZXFCeVNlc3Npb25bdS5zZXNzaW9uSWRdPTA7cmV0dXJufWVsc2V7aWYodS5zZXE8cylyZXR1cm47ci5sYXN0U2VxQnlTZXNzaW9uW3Uuc2Vzc2lvbklkXT11LnNlcX19aGQodSl9Y2F0Y2h7fX0saS5vbmNsb3NlPWZ1bmN0aW9uKCl7ci53cz1udWxsLHIud3NDb25uZWN0ZWQ9ITEsYnMoKSxGcygpfSxpLm9uZXJyb3I9ZnVuY3Rpb24oKXtpLmNsb3NlKCl9LCEwfWNhdGNoe3JldHVybiBGcygpLCExfX1mdW5jdGlvbiBoZChlKXtzd2l0Y2goZS50eXBlKXtjYXNlIm91dHB1dCI6aWYoZS5kYXRhJiZlLnNlc3Npb25JZCYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUuZGF0YSwiaXNSZXNwb25kaW5nIikmJihyLl9sYXN0SXNSZXNwb25kaW5nfHwoci5fbGFzdElzUmVzcG9uZGluZz17fSksci5fbGFzdElzUmVzcG9uZGluZ1tlLnNlc3Npb25JZF09ISFlLmRhdGEuaXNSZXNwb25kaW5nKSxlLmRhdGEmJmUuc2Vzc2lvbklkKXt2YXIgdD0hIWUuZGF0YS5pbmNyZW1lbnRhbCxuPXtpZDplLnNlc3Npb25JZH0saT0hMTtpZighdCYmZS5kYXRhLm91dHB1dCE9PXZvaWQgMCYmKG4ub3V0cHV0PWUuZGF0YS5vdXRwdXQpLE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLmRhdGEsInBlcm1pc3Npb25CbG9ja2VkIikmJihuLnBlcm1pc3Npb25CbG9ja2VkPSEhZS5kYXRhLnBlcm1pc3Npb25CbG9ja2VkKSxPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZS5kYXRhLCJxdWV1ZWRNZXNzYWdlcyIpJiYobi5xdWV1ZWRNZXNzYWdlcz1lLmRhdGEucXVldWVkTWVzc2FnZXN8fFtdLHIucXVldWVFcG9jaCsrKSxlLmRhdGEuc3RydWN0dXJlZFN0YXRlJiYobi5zdHJ1Y3R1cmVkU3RhdGU9ZS5kYXRhLnN0cnVjdHVyZWRTdGF0ZSksZS5kYXRhLnNlc3Npb25LaW5kJiYobi5zZXNzaW9uS2luZD1lLmRhdGEuc2Vzc2lvbktpbmQpLE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLmRhdGEsInRpdGxlIikmJihuLnRpdGxlPWUuZGF0YS50aXRsZSxpPSEwKSxPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZS5kYXRhLCJkZXNjcmlwdGlvbiIpJiYobi5kZXNjcmlwdGlvbj1lLmRhdGEuZGVzY3JpcHRpb24saT0hMCksT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUuZGF0YSwic3VtbWFyeSIpJiYobi5zdW1tYXJ5PWUuZGF0YS5zdW1tYXJ5KSxlLmRhdGEubWVzc2FnZXMpbi5tZXNzYWdlcz1lLmRhdGEubWVzc2FnZXMsdHlwZW9mIGUuZGF0YS5tZXNzYWdlT2Zmc2V0PT0ibnVtYmVyIiYmKG4ubWVzc2FnZU9mZnNldD1lLmRhdGEubWVzc2FnZU9mZnNldCksdHlwZW9mIGUuZGF0YS5tZXNzYWdlVG90YWw9PSJudW1iZXIiJiYobi5tZXNzYWdlVG90YWw9ZS5kYXRhLm1lc3NhZ2VUb3RhbCk7ZWxzZSBpZih0JiZlLmRhdGEubGFzdE1lc3NhZ2Upe3ZhciBhPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihxKXtyZXR1cm4gcS5pZD09PWUuc2Vzc2lvbklkfSk7aWYoYSl7dmFyIHU9QXJyYXkuaXNBcnJheShhLm1lc3NhZ2VzKT9hLm1lc3NhZ2VzLnNsaWNlKCk6W10scz1lLmRhdGEubWVzc2FnZUNvdW50fHwwLG89dHlwZW9mIGEubWVzc2FnZU9mZnNldD09Im51bWJlciI/YS5tZXNzYWdlT2Zmc2V0OjAsbD11Lmxlbmd0aD4wP3VbdS5sZW5ndGgtMV06bnVsbCxjPWUuZGF0YS5sYXN0TWVzc2FnZTtsJiZjLnJvbGUmJmwucm9sZT09PWMucm9sZT91W3UubGVuZ3RoLTFdPWRwKGwsYyk6byt1Lmxlbmd0aDxzJiZ1LnB1c2goYyksbi5tZXNzYWdlcz11LHM+MCYmKG4ubWVzc2FnZVRvdGFsPXMpfX12YXIgZj10JiZlLmRhdGEuY2h1bmsmJiFlLmRhdGEubGFzdE1lc3NhZ2UmJiFuLm1lc3NhZ2VzJiZuLm91dHB1dD09PXZvaWQgMCYmIWUuZGF0YS5zdHJ1Y3R1cmVkU3RhdGUmJiFlLmRhdGEuc2Vzc2lvbktpbmQ7aWYoZil7aWYoZS5kYXRhLnBlcm1pc3Npb25CbG9ja2VkIT09dm9pZCAwKXt2YXIgZD1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24ocSl7cmV0dXJuIHEuaWQ9PT1lLnNlc3Npb25JZH0pO2QmJiEhZC5wZXJtaXNzaW9uQmxvY2tlZCE9ISFlLmRhdGEucGVybWlzc2lvbkJsb2NrZWQmJigkKG4pLGUuc2Vzc2lvbklkPT09ci5zZWxlY3RlZElkJiZadCgpKX19ZWxzZSBpZigobi5vdXRwdXQhPT12b2lkIDB8fG4ubWVzc2FnZXN8fHR8fGUuZGF0YS5wZXJtaXNzaW9uQmxvY2tlZCE9PXZvaWQgMHx8bi50aXRsZXx8bi5kZXNjcmlwdGlvbikmJigkKG4pLGkmJnV1KCksZS5zZXNzaW9uSWQ9PT1yLnNlbGVjdGVkSWQpKXt2YXIgdj1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24ocSl7cmV0dXJuIHEuaWQ9PT1lLnNlc3Npb25JZH0pfHxuO3IuY3VycmVudE1lc3NhZ2VzPVJlKHYsbnQodix2Lm91dHB1dCwhMSkpLFp0KCksdi5zZXNzaW9uS2luZD09PSJzdHJ1Y3R1cmVkInx8ZS5kYXRhLnNlc3Npb25LaW5kPT09InN0cnVjdHVyZWQiP21yKCk6c2EoKX19ZS5zZXNzaW9uSWQ9PT1yLnNlbGVjdGVkSWQmJnIudGVybWluYWwmJmUuZGF0YSYmKGUuZGF0YS5jaHVuayYmRnAoZS5zZXNzaW9uSWQpPyhyLmxhc3RDaHVua0F0PURhdGUubm93KCksci50ZXJtaW5hbExpdmVTdHJlYW1TZXNzaW9uc1tlLnNlc3Npb25JZF09ITAsS24oci50ZXJtaW5hbCxlLmRhdGEuY2h1bmspLHIudGVybWluYWxTZXNzaW9uSWQ9ZS5zZXNzaW9uSWQsZS5kYXRhLm91dHB1dD8oci50ZXJtaW5hbE91dHB1dD1ScyhRYShlLmRhdGEub3V0cHV0KSksci50ZXJtaW5hbE91dHB1dE1hcmtlcj0wKTpyLnRlcm1pbmFsT3V0cHV0PVJzKChyLnRlcm1pbmFsT3V0cHV0fHwiIikrUWEoZS5kYXRhLmNodW5rKSksRnQoIm91dHB1dCIpLG10KCkpOiFlLmRhdGEuaW5jcmVtZW50YWwmJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLmRhdGEsIm91dHB1dCIpJiZvaShlLnNlc3Npb25JZCxlLmRhdGEub3V0cHV0fHwiIix7bW9kZToiYXBwZW5kIn0pKTticmVhaztjYXNlInN0YXJ0ZWQiOmduKCk7YnJlYWs7Y2FzZSJlbmRlZCI6e3ZhciBoPWUuZGF0YSYmZS5kYXRhLnN0YXR1cz9lLmRhdGEuc3RhdHVzOiJleGl0ZWQiLGc9ZS5kYXRhJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZS5kYXRhLCJwZXJtaXNzaW9uQmxvY2tlZCIpPyEhZS5kYXRhLnBlcm1pc3Npb25CbG9ja2VkOiExLG09e2lkOmUuc2Vzc2lvbklkLHN0YXR1czpoLHBlcm1pc3Npb25CbG9ja2VkOmd9O2UuZGF0YSYmZS5kYXRhLm1lc3NhZ2VzJiYobS5tZXNzYWdlcz1lLmRhdGEubWVzc2FnZXMsdHlwZW9mIGUuZGF0YS5tZXNzYWdlT2Zmc2V0PT0ibnVtYmVyIiYmKG0ubWVzc2FnZU9mZnNldD1lLmRhdGEubWVzc2FnZU9mZnNldCksdHlwZW9mIGUuZGF0YS5tZXNzYWdlVG90YWw9PSJudW1iZXIiJiYobS5tZXNzYWdlVG90YWw9ZS5kYXRhLm1lc3NhZ2VUb3RhbCkpLGUuZGF0YSYmZS5kYXRhLnN0cnVjdHVyZWRTdGF0ZSYmKG0uc3RydWN0dXJlZFN0YXRlPWUuZGF0YS5zdHJ1Y3R1cmVkU3RhdGUpLGUuZGF0YSYmZS5kYXRhLnF1ZXVlZE1lc3NhZ2VzJiYobS5xdWV1ZWRNZXNzYWdlcz1lLmRhdGEucXVldWVkTWVzc2FnZXMpLCQobSksZS5zZXNzaW9uSWQ9PT1yLnNlbGVjdGVkSWQmJihZbigiRW50ZXIgXHU1M0QxXHU5MDAxIFx4QjcgU2hpZnQrRW50ZXIgXHU2MzYyXHU4ODRDIiksc2EoITApKTt2YXIgeT1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24ocSl7cmV0dXJuIHEuaWQ9PT1lLnNlc3Npb25JZH0pLHc9ZS5kYXRhJiZlLmRhdGEuZXhpdENvZGUsRT13IT1udWxsJiZ3IT09MCxCPXkmJnkuc3VtbWFyeXx8IiIsRj15P1djKHkpOiIiLHg9RT8iXHU0RUZCXHU1MkExXHU1RjAyXHU1RTM4XHU3RUQzXHU2NzVGIjoiXHU0RUZCXHU1MkExXHU1REYyXHU1QjhDXHU2MjEwIixTPSIiO0I/KFM9QixGJiYhRSYmKFMrPWAKYCtGKSk6Uz15JiZ5LmNvbW1hbmR8fGUuc2Vzc2lvbklkLEduKEU/ImVycm9yIjoic3VjY2VzcyIpLExmKGUuc2Vzc2lvbklkLHgsUyksR3MoZS5zZXNzaW9uSWQpLEZhKCksKGUuc2Vzc2lvbklkIT09ci5zZWxlY3RlZElkfHxkb2N1bWVudC5oaWRkZW4pJiZiYSh7dGl0bGU6eCxib2R5OlMsdHlwZTpFPyJ3YXJuaW5nIjoic3VjY2VzcyIsaWNvbjpFPyIhIjoiXHUyNzEzIixkdXJhdGlvbjo2ZTMsYWN0aW9uTGFiZWw6Ilx1NjdFNVx1NzcwQiIsYWN0aW9uOmZ1bmN0aW9uKCl7enQoZS5zZXNzaW9uSWQpfX0pLHIubWVzc2FnZVF1ZXVlPVtdLHIucGVuZGluZ01lc3NhZ2VzPVtdO3ZhciBfPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihxKXtyZXR1cm4gcS5pZD09PWUuc2Vzc2lvbklkfSksVj1lLnNlc3Npb25JZD09PXIuc2VsZWN0ZWRJZD9yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24ocSl7cmV0dXJuIHEuaWQ9PT1yLnNlbGVjdGVkSWR9KTpudWxsLFU9ISEoXyYmXy5zZXNzaW9uS2luZD09PSJzdHJ1Y3R1cmVkInx8ViYmVi5zZXNzaW9uS2luZD09PSJzdHJ1Y3R1cmVkIik7VSYmZS5zZXNzaW9uSWQ9PT1yLnNlbGVjdGVkSWQ/KG9vKCksSXUoZS5zZXNzaW9uSWQpKTpVfHwoci5zdHJ1Y3R1cmVkSW5wdXRRdWV1ZT1bXSxJdShyLnNlbGVjdGVkSWQpLGZuKCkpLGUuc2Vzc2lvbklkPT09ci5zZWxlY3RlZElkJiYoVXx8TW4oITEpLHIuY3VycmVudFRhc2s9bnVsbCxadCgpKSxlLnNlc3Npb25JZD09PXIuc2VsZWN0ZWRJZCYmTXIoKSxnbigpLnRoZW4oZnVuY3Rpb24oKXt2aSgpfSksZS5zZXNzaW9uSWQ9PT1yLnNlbGVjdGVkSWQmJihVfHxobihlLnNlc3Npb25JZCkpO2JyZWFrfWNhc2UiaW5pdCI6aWYoZS5zZXNzaW9uSWQ9PT1yLnNlbGVjdGVkSWQmJmUuZGF0YSl7ci5jaGF0UmVuZGVyVGltZXImJihjbGVhclRpbWVvdXQoci5jaGF0UmVuZGVyVGltZXIpLHIuY2hhdFJlbmRlclRpbWVyPW51bGwpLCQoZS5kYXRhKTt2YXIgST1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24ocSl7cmV0dXJuIHEuaWQ9PT1lLnNlc3Npb25JZH0pO3IuY3VycmVudE1lc3NhZ2VzPVJlKEl8fGUuZGF0YSxudChJfHxlLmRhdGEsZS5kYXRhLm91dHB1dCwhMSkpLG1yKCEwKSxadCgpLHdzKCk7dmFyIEQ9ZS5kYXRhLm91dHB1dHx8IiIsTT1yLnRlcm1pbmFsU2Vzc2lvbklkPT09ZS5zZXNzaW9uSWQsTD1yLnRlcm1pbmFsT3V0cHV0fHwiIixXPU0mJkwubGVuZ3RoPjAmJkQubGVuZ3RoPj1MLmxlbmd0aCYmRC5zdGFydHNXaXRoKEwpO0ZkKEQsZS5zZXNzaW9uSWQsVz8iYXBwZW5kIjoicmVwbGFjZSIpLEVyKCJpbml0Iil9YnJlYWs7Y2FzZSJ1c2FnZSI6YnJlYWs7Y2FzZSJ0YXNrIjplLnNlc3Npb25JZD09PXIuc2VsZWN0ZWRJZCYmKHIuY3VycmVudFRhc2s9ZS5kYXRhfHxudWxsLFp0KCkpLElmKGUuc2Vzc2lvbklkLGUuZGF0YXx8bnVsbCksd2EoZS5zZXNzaW9uSWQpLHV1KCk7YnJlYWs7Y2FzZSJzdGF0dXMiOmlmKGUuc2Vzc2lvbklkJiZlLmRhdGEpe3ZhciBLPXtpZDplLnNlc3Npb25JZH07aWYoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUuZGF0YSwic3RhdHVzIikmJihLLnN0YXR1cz1lLmRhdGEuc3RhdHVzKSxPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZS5kYXRhLCJleGl0Q29kZSIpJiYoSy5leGl0Q29kZT1lLmRhdGEuZXhpdENvZGUpLGUuZGF0YS5zdHJ1Y3R1cmVkU3RhdGUpSy5zdHJ1Y3R1cmVkU3RhdGU9ZS5kYXRhLnN0cnVjdHVyZWRTdGF0ZTtlbHNlIGlmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLmRhdGEsInN0YXR1cyIpKXt2YXIgYT1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oTil7cmV0dXJuIE4uaWQ9PT1lLnNlc3Npb25JZH0pO2EmJmEuc2Vzc2lvbktpbmQ9PT0ic3RydWN0dXJlZCImJihLLnN0cnVjdHVyZWRTdGF0ZT1PYmplY3QuYXNzaWduKHt9LGEuc3RydWN0dXJlZFN0YXRlfHx7fSx7aW5GbGlnaHQ6ZS5kYXRhLnN0YXR1cz09PSJydW5uaW5nIn0pKX1pZihPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZS5kYXRhLCJxdWV1ZWRNZXNzYWdlcyIpJiYoSy5xdWV1ZWRNZXNzYWdlcz1lLmRhdGEucXVldWVkTWVzc2FnZXN8fFtdLHIucXVldWVFcG9jaCsrKSxPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZS5kYXRhLCJwZXJtaXNzaW9uQmxvY2tlZCIpJiYoSy5wZXJtaXNzaW9uQmxvY2tlZD0hIWUuZGF0YS5wZXJtaXNzaW9uQmxvY2tlZCksZS5kYXRhLnBlcm1pc3Npb25SZXF1ZXN0KXtLLnBlbmRpbmdFc2NhbGF0aW9uPXtzY29wZTplLmRhdGEucGVybWlzc2lvblJlcXVlc3Quc2NvcGUsdGFyZ2V0OmUuZGF0YS5wZXJtaXNzaW9uUmVxdWVzdC50YXJnZXQscmVhc29uOmUuZGF0YS5wZXJtaXNzaW9uUmVxdWVzdC5wcm9tcHR9O3ZhciBYPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihxKXtyZXR1cm4gcS5pZD09PWUuc2Vzc2lvbklkfSksbmU9WCYmKFguc3VtbWFyeXx8WC5jb21tYW5kKXx8ZS5zZXNzaW9uSWQsc2U9ZS5kYXRhLnBlcm1pc3Npb25SZXF1ZXN0LnByb21wdHx8Ilx1OTcwMFx1ODk4MVx1Njc0M1x1OTY1MFx1NUJBMVx1NjI3OSIscmU9ZS5kYXRhLnBlcm1pc3Npb25SZXF1ZXN0LnRhcmdldCxUPW5lO3JlP1QrPWAKYCtzZSsiIFx4QjcgIityZTpUKz1gCmArc2UsR24oIm1lZGl1bSIpLFRmKGUuc2Vzc2lvbklkLFQpLGUuc2Vzc2lvbklkIT09ci5zZWxlY3RlZElkJiZiYSh7dGl0bGU6Ilx1OTcwMFx1ODk4MVx1NEY2MFx1NzY4NFx1NjM4OFx1Njc0MyIsYm9keTpULHR5cGU6Indhcm5pbmciLGljb246IiEiLGR1cmF0aW9uOjAsYWN0aW9uTGFiZWw6Ilx1NTNCQlx1NTkwNFx1NzQwNiIsYWN0aW9uOmZ1bmN0aW9uKCl7enQoZS5zZXNzaW9uSWQpfX0pfWUuZGF0YS5wZXJtaXNzaW9uQmxvY2tlZD09PSExJiYoSy5wZW5kaW5nRXNjYWxhdGlvbj1udWxsKSxlLmRhdGEuYXBwcm92YWxTdGF0cyYmKEsuYXBwcm92YWxTdGF0cz1lLmRhdGEuYXBwcm92YWxTdGF0cyksJChLKSx3YShlLnNlc3Npb25JZCksRmEoKSxlLnNlc3Npb25JZD09PXIuc2VsZWN0ZWRJZCYmKFp0KCksZS5kYXRhLmFwcHJvdmFsU3RhdHMmJndzKCksSy5zdHJ1Y3R1cmVkU3RhdGUmJihLLnN0cnVjdHVyZWRTdGF0ZS5pbkZsaWdodHx8KFluKCJFbnRlciBcdTUzRDFcdTkwMDEgXHhCNyBTaGlmdCtFbnRlciBcdTYzNjJcdTg4NEMiKSxvbygpKSxzYSgpKSl9YnJlYWs7Y2FzZSJub3RpZmljYXRpb24iOmUuZGF0YSYmKGUuZGF0YS5raW5kPT09InVwZGF0ZSI/S3MoZS5kYXRhLmN1cnJlbnR8fCItIixlLmRhdGEubGF0ZXN0fHwiLSIpOmUuZGF0YS5raW5kPT09ImF1dG8tdXBkYXRlLXN0YXJ0Ij9fZihlLmRhdGEuY3VycmVudHx8Ii0iLGUuZGF0YS5sYXRlc3R8fCItIik6KGUuZGF0YS5raW5kPT09ImF1dG8tdXBkYXRlLXJlc3RhcnQifHxlLmRhdGEua2luZD09PSJyZXN0YXJ0IikmJmRuKCkpO2JyZWFrfX1mdW5jdGlvbiBadCgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjdXJyZW50LXRhc2siKSx0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwZXJtaXNzaW9uLWFjdGlvbnMiKSxuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwZXJtaXNzaW9uLWFjdGlvbnMtbGFiZWwiKTtpZihlKXt2YXIgaT1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24odil7cmV0dXJuIHYuaWQ9PT1yLnNlbGVjdGVkSWR9KTtpJiZpLnByb3ZpZGVyPT09ImNvZGV4IiYmKHQmJnQuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksZS5jbGFzc0xpc3QucmVtb3ZlKCJwZXJtaXNzaW9uLWJsb2NrZWQiKSk7dmFyIGE9aSYmaS5wZW5kaW5nRXNjYWxhdGlvbj9pLnBlbmRpbmdFc2NhbGF0aW9uOm51bGwsdT1pJiZpLnByb3ZpZGVyIT09ImNvZGV4Ij9hfHxpLnBlcm1pc3Npb25CbG9ja2VkOiExO2lmKHUpe3ZhciBzPWkmJmkuYXV0b0FwcHJvdmVQZXJtaXNzaW9ucztpZihuKWlmKHMpbi50ZXh0Q29udGVudD0iXHU4MUVBXHU1MkE4XHU2Mjc5XHU1MUM2XHU0RTJELi4uIjtlbHNlIGlmKGEpe3ZhciBvPWEucmVhc29ufHwiXHU3QjQ5XHU1Rjg1XHU2Mzg4XHU2NzQzIixsPWEudGFyZ2V0PyIgXHhCNyAiK2EudGFyZ2V0OiIiO24udGV4dENvbnRlbnQ9bytsfWVsc2Ugbi50ZXh0Q29udGVudD0iXHU3QjQ5XHU1Rjg1XHU2Mzg4XHU2NzQzIjtpZih0KXt0LmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpO3ZhciBjPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcHByb3ZlLXBlcm1pc3Npb24tYnRuIiksZj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVueS1wZXJtaXNzaW9uLWJ0biIpO2MmJmMuY2xhc3NMaXN0LnRvZ2dsZSgiaGlkZGVuIiwhIXMpLGYmJmYuY2xhc3NMaXN0LnRvZ2dsZSgiaGlkZGVuIiwhIXMpfWUudGV4dENvbnRlbnQ9IiIsZS5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSxlLmNsYXNzTGlzdC5yZW1vdmUoInBlcm1pc3Npb24tYmxvY2tlZCIpO3JldHVybn1lLmNsYXNzTGlzdC5yZW1vdmUoInBlcm1pc3Npb24tYmxvY2tlZCIpLHQmJnQuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIik7dmFyIGQ9ci5jdXJyZW50VGFzaztkJiZkLnRpdGxlPyhlLnRleHRDb250ZW50PWQudGl0bGUsZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSk6KGUudGV4dENvbnRlbnQ9IiIsZS5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSl9fWZ1bmN0aW9uIHdzKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFwcHJvdmFsLXN0YXRzIik7aWYoZSl7dmFyIHQ9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGEpe3JldHVybiBhLmlkPT09ci5zZWxlY3RlZElkfSksbj10JiZ0LmFwcHJvdmFsU3RhdHM7aWYoIW58fG4udG90YWw9PT0wKXtlLmNsYXNzTmFtZT0iYXBwcm92YWwtc3RhdHMgaGlkZGVuIixlLmlubmVySFRNTD0iIjtyZXR1cm59ZS5jbGFzc05hbWU9ImFwcHJvdmFsLXN0YXRzIixlLmlubmVySFRNTD0nPHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLWRpdmlkZXIiPjwvc3Bhbj48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtYmFkZ2UiIGlkPSJhcHByb3ZhbC1zdGF0cy1iYWRnZSIgdGl0bGU9Ilx1NjcyQ1x1NkIyMVx1NEYxQVx1OEJERFx1ODFFQVx1NTJBOFx1NjI3OVx1NTFDNlx1N0VERlx1OEJBMSI+PHN2ZyBjbGFzcz0iYXBwcm92YWwtc3RhdHMtaWNvbiIgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTEyIDIyczgtNCA4LTEwVjVsLTgtMy04IDN2N2MwIDYgOCAxMCA4IDEweiIvPjwvc3ZnPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy10b3RhbCI+JytuLnRvdGFsKyc8L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1wb3B1cCIgaWQ9ImFwcHJvdmFsLXN0YXRzLXBvcHVwIj48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcG9wdXAtdGl0bGUiPlx1ODFFQVx1NTJBOFx1NjI3OVx1NTFDNlx1N0VERlx1OEJBMTwvc3Bhbj4nKyhuLmNvbW1hbmQ+MD8nPHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXJvdyI+PHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXJvdy1pY29uIj4nK3ooInRlcm1pbmFsIix7c2l6ZToxMixzdHJva2VXaWR0aDoxLjh9KSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ctbGFiZWwiPlx1NTQ3RFx1NEVFNFx1NjI2N1x1ODg0Qzwvc3Bhbj48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93LWNvdW50Ij4nK24uY29tbWFuZCsiPC9zcGFuPjwvc3Bhbj4iOiIiKSsobi5maWxlPjA/JzxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ciPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ctaWNvbiI+Jyt6KCJlZGl0Iix7c2l6ZToxMixzdHJva2VXaWR0aDoxLjh9KSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ctbGFiZWwiPlx1NjU4N1x1NEVGNlx1NTE5OVx1NTE2NTwvc3Bhbj48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93LWNvdW50Ij4nK24uZmlsZSsiPC9zcGFuPjwvc3Bhbj4iOiIiKSsobi50b29sPjA/JzxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ciPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ctaWNvbiI+Jyt6KCJ3cmVuY2giLHtzaXplOjEyLHN0cm9rZVdpZHRoOjEuOH0pKyc8L3NwYW4+PHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXJvdy1sYWJlbCI+XHU1MTc2XHU0RUQ2XHU1REU1XHU1MTc3PC9zcGFuPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ctY291bnQiPicrbi50b29sKyI8L3NwYW4+PC9zcGFuPiI6IiIpKyc8c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93IGFwcHJvdmFsLXN0YXRzLXJvdy10b3RhbCI+PHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXJvdy1pY29uIj4nK3ooInNpZ21hIix7c2l6ZToxMixzdHJva2VXaWR0aDoxLjh9KSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ctbGFiZWwiPlx1NTQwOFx1OEJBMTwvc3Bhbj48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93LWNvdW50Ij4nK24udG90YWwrIjwvc3Bhbj48L3NwYW4+PC9zcGFuPiI7dmFyIGk9ZS5xdWVyeVNlbGVjdG9yKCIuYXBwcm92YWwtc3RhdHMtYmFkZ2UiKTtpJiYoaS5jbGFzc0xpc3QucmVtb3ZlKCJhcHByb3ZhbC1zdGF0cy1wdWxzZSIpLGkub2Zmc2V0V2lkdGgsaS5jbGFzc0xpc3QuYWRkKCJhcHByb3ZhbC1zdGF0cy1wdWxzZSIpKX19ZnVuY3Rpb24geWQoKXtpZihHbigibGlnaHQiKSwhIXIuc2VsZWN0ZWRJZCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFwcHJvdmUtcGVybWlzc2lvbi1idG4iKSx0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZW55LXBlcm1pc3Npb24tYnRuIik7ZSYmKGUuZGlzYWJsZWQ9ITApLHQmJih0LmRpc2FibGVkPSEwKSxmZXRjaCgiL2FwaS9zZXNzaW9ucy8iK2VuY29kZVVSSUNvbXBvbmVudChyLnNlbGVjdGVkSWQpKyIvYXBwcm92ZS1wZXJtaXNzaW9uIix7bWV0aG9kOiJQT1NUIixjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gbi5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKG4pe2lmKG4mJm4uZXJyb3Ipe2sobi5lcnJvciwiZXJyb3IiKTtyZXR1cm59JChuKSxadCgpfSkuY2F0Y2goZnVuY3Rpb24obil7ayhuJiZuLm1lc3NhZ2V8fCJcdTY1RTBcdTZDRDVcdTYyNzlcdTUxQzZcdTYzODhcdTY3NDNcdTMwMDIiLCJlcnJvciIpfSkuZmluYWxseShmdW5jdGlvbigpe2UmJihlLmRpc2FibGVkPSExKSx0JiYodC5kaXNhYmxlZD0hMSl9KX19ZnVuY3Rpb24gYmQoKXtpZihHbigibGlnaHQiKSwhIXIuc2VsZWN0ZWRJZCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFwcHJvdmUtcGVybWlzc2lvbi1idG4iKSx0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZW55LXBlcm1pc3Npb24tYnRuIik7ZSYmKGUuZGlzYWJsZWQ9ITApLHQmJih0LmRpc2FibGVkPSEwKSxmZXRjaCgiL2FwaS9zZXNzaW9ucy8iK2VuY29kZVVSSUNvbXBvbmVudChyLnNlbGVjdGVkSWQpKyIvZGVueS1wZXJtaXNzaW9uIix7bWV0aG9kOiJQT1NUIixjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gbi5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKG4pe2lmKG4mJm4uZXJyb3Ipe2sobi5lcnJvciwiZXJyb3IiKTtyZXR1cm59JChuKSxadCgpfSkuY2F0Y2goZnVuY3Rpb24obil7ayhuJiZuLm1lc3NhZ2V8fCJcdTY1RTBcdTZDRDVcdTYyRDJcdTdFRERcdTYzODhcdTY3NDNcdTMwMDIiLCJlcnJvciIpfSkuZmluYWxseShmdW5jdGlvbigpe2UmJihlLmRpc2FibGVkPSExKSx0JiYodC5kaXNhYmxlZD0hMSl9KX19ZnVuY3Rpb24gRWQoKXtpZihyLnNlbGVjdGVkSWQpe3ZhciBlPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihuKXtyZXR1cm4gbi5pZD09PXIuc2VsZWN0ZWRJZH0pO2lmKGUmJmUucHJvdmlkZXI9PT0iY29kZXgiKXtrKCJDb2RleCBcdTRGMUFcdThCRERcdTU2RkFcdTVCOUFcdTRFRTUgZnVsbC1hY2Nlc3MgUFRZIFx1NTQyRlx1NTJBOFx1RkYwQ1x1NEUwRFx1NjUyRlx1NjMwMVx1NTIwN1x1NjM2Mlx1ODFFQVx1NTJBOFx1NjI3OVx1NTFDNlx1MzAwMiIsImluZm8iKTtyZXR1cm59dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF1dG8tYXBwcm92ZS10b2dnbGUiKTt0JiYodC5zdHlsZS5vcGFjaXR5PSIwLjUiKSxmZXRjaCgiL2FwaS9zZXNzaW9ucy8iK2VuY29kZVVSSUNvbXBvbmVudChyLnNlbGVjdGVkSWQpKyIvdG9nZ2xlLWF1dG8tYXBwcm92ZSIse21ldGhvZDoiUE9TVCIsY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIG4uanNvbigpfSkudGhlbihmdW5jdGlvbihuKXtpZihuJiZuLmVycm9yKXtrKG4uZXJyb3IsImVycm9yIik7cmV0dXJufSQobiksQ3MoKTt2YXIgaT1uLmF1dG9BcHByb3ZlUGVybWlzc2lvbnM7ayhpPyJcdTgxRUFcdTUyQThcdTYyNzlcdTUxQzZcdTVERjJcdTVGMDBcdTU0MkYiOiJcdTgxRUFcdTUyQThcdTYyNzlcdTUxQzZcdTVERjJcdTUxNzNcdTk1RUQiLCJpbmZvIil9KS5jYXRjaChmdW5jdGlvbihuKXtrKG4mJm4ubWVzc2FnZXx8Ilx1NjVFMFx1NkNENVx1NTIwN1x1NjM2Mlx1ODFFQVx1NTJBOFx1NjI3OVx1NTFDNlx1MzAwMiIsImVycm9yIil9KS5maW5hbGx5KGZ1bmN0aW9uKCl7dCYmKHQuc3R5bGUub3BhY2l0eT0iIil9KX19ZnVuY3Rpb24gQ3MoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXV0by1hcHByb3ZlLXRvZ2dsZSIpLHQ9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGEpe3JldHVybiBhLmlkPT09ci5zZWxlY3RlZElkfSk7aWYoY2wodCkpe2UmJmUucGFyZW50Tm9kZSYmZS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGUpO3JldHVybn1pZihlKXt2YXIgbj0iY29tcG9zZXItcGlsbCBjb21wb3Nlci1waWxsLWNoaXAgYXV0by1hcHByb3ZlLWluZGljYXRvciIsaT10JiZ0LmF1dG9BcHByb3ZlUGVybWlzc2lvbnM7aT8oZS5jbGFzc05hbWU9bisiIGFjdGl2ZSIsZS50aXRsZT0iXHU4MUVBXHU1MkE4XHU2Mjc5XHU1MUM2XHU1REYyXHU1NDJGXHU3NTI4IFx1MjAxNCBcdTcwQjlcdTUxRkJcdTUxNzNcdTk1RUQiLGUuc2V0QXR0cmlidXRlKCJhcmlhLXByZXNzZWQiLCJ0cnVlIiksZS5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLCJcdTgxRUFcdTUyQThcdTYyNzlcdTUxQzZcdTVERjJcdTU0MkZcdTc1MjhcdUZGMENcdTcwQjlcdTUxRkJcdTUxNzNcdTk1RUQiKSxlLmlubmVySFRNTD16KCJzaGllbGRDaGVjayIse3NpemU6MTIsc3Ryb2tlV2lkdGg6MS43LGNsczoiY29tcG9zZXItcGlsbC1pY29uIn0pKyc8c3BhbiBjbGFzcz0iY29tcG9zZXItcGlsbC1sYWJlbCI+XHU4MUVBXHU1MkE4PC9zcGFuPicpOihlLmNsYXNzTmFtZT1uLGUudGl0bGU9Ilx1ODFFQVx1NTJBOFx1NjI3OVx1NTFDNlx1NURGMlx1NTE3M1x1OTVFRCBcdTIwMTQgXHU3MEI5XHU1MUZCXHU1RjAwXHU1NDJGIixlLnNldEF0dHJpYnV0ZSgiYXJpYS1wcmVzc2VkIiwiZmFsc2UiKSxlLnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsIlx1ODFFQVx1NTJBOFx1NjI3OVx1NTFDNlx1NURGMlx1NTE3M1x1OTVFRFx1RkYwQ1x1NzBCOVx1NTFGQlx1NUYwMFx1NTQyRiIpLGUuaW5uZXJIVE1MPXooInNoaWVsZCIse3NpemU6MTIsc3Ryb2tlV2lkdGg6MS43LGNsczoiY29tcG9zZXItcGlsbC1pY29uIn0pKyc8c3BhbiBjbGFzcz0iY29tcG9zZXItcGlsbC1sYWJlbCI+XHU2MjRCXHU1MkE4PC9zcGFuPicpfX1mdW5jdGlvbiBGZChlLHQsbil7cmV0dXJuIHIudGVybWluYWw/b2kodHx8ci5zZWxlY3RlZElkLGUse21vZGU6bnx8ImFwcGVuZCJ9KTohMX1mdW5jdGlvbiBCcygpe3IucG9sbFRpbWVyJiYoY2xlYXJJbnRlcnZhbChyLnBvbGxUaW1lciksci5wb2xsVGltZXI9bnVsbCl9ZnVuY3Rpb24gU2coZSl7ci5jdXJyZW50Vmlldz1lfHwidGVybWluYWwiLHIuY3VycmVudFZpZXchPT0idGVybWluYWwiJiYoTW4oITEpLGhvKCkpLHFpKCksTGEoKTt2YXIgdD1OdCgpO3QmJihyLmN1cnJlbnRNZXNzYWdlcz1SZSh0LG50KHQsdC5vdXRwdXQsITApKSksbXQoKSxyLmN1cnJlbnRWaWV3PT09InRlcm1pbmFsIiYmKEh0KCEwKSxyLnRlcm1pbmFsJiZyLnRlcm1pbmFsLnJlbWVhc3VyZSYmcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7ci50ZXJtaW5hbCYmci50ZXJtaW5hbC5yZW1lYXN1cmUoKX0pKX1mdW5jdGlvbiBtcihlKXtyLnJlbmRlclBlbmRpbmcmJiFlfHwoci5yZW5kZXJQZW5kaW5nPSEwLGU/KHdpKCEwKSxyLnJlbmRlclBlbmRpbmc9ITEpOnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe3dpKCExKSxyLnJlbmRlclBlbmRpbmc9ITF9KSl9ci5jaGF0UmVuZGVyVGltZXI9bnVsbDtmdW5jdGlvbiBzYShlKXtpZighKHIuY2hhdFJlbmRlclRpbWVyJiYhZSkpe2lmKHIuY2hhdFJlbmRlclRpbWVyJiZjbGVhclRpbWVvdXQoci5jaGF0UmVuZGVyVGltZXIpLGUpe3IuY2hhdFJlbmRlclRpbWVyPW51bGwsbXIoKTtyZXR1cm59dmFyIHQ9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGEpe3JldHVybiBhLmlkPT09ci5zZWxlY3RlZElkfSksbj10JiZ0LnN0YXR1cz09PSJydW5uaW5nIiYmdC5zZXNzaW9uS2luZCE9PSJzdHJ1Y3R1cmVkIixpPW4/TnM6anM7ci5jaGF0UmVuZGVyVGltZXI9c2V0VGltZW91dChmdW5jdGlvbigpe3IuY2hhdFJlbmRlclRpbWVyPW51bGw7dmFyIGE9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKHUpe3JldHVybiB1LmlkPT09ci5zZWxlY3RlZElkfSk7YSYmKHIuY3VycmVudE1lc3NhZ2VzPVJlKGEsbnQoYSxhLm91dHB1dCwhMCkpKSxtcigpfSxpKX19dmFyIG9hPTAscmk9MCxEcz0wLGdyPTA7ZnVuY3Rpb24gbGEoKXtyZXR1cm4gd2luZG93Ll9fd2FuZElvc05hdGl2ZT09PSEwfWZ1bmN0aW9uIGtzKGUpe0RzPU1hdGgubWF4KERzLERhdGUubm93KCkrKGV8fDE4MDApKX1mdW5jdGlvbiBBcyhlLHQpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgbj1kb2N1bWVudC5hY3RpdmVFbGVtZW50O2lpKG4pJiZuIT09dHx8a3MoZSl9LDMwKX1mdW5jdGlvbiB3ZChlKXtyZXR1cm4gTWF0aC5tYXgod2luZG93LmlubmVySGVpZ2h0fHwwLGUmJmUuaGVpZ2h0fHwwLGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCYmZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodHx8MCxkb2N1bWVudC5ib2R5JiZkb2N1bWVudC5ib2R5LmNsaWVudEhlaWdodHx8MCl9ZnVuY3Rpb24gQ2QoZSl7dmFyIHQ9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LG49TWF0aC5tYXgod2luZG93LmlubmVyV2lkdGh8fDAsZSYmZS53aWR0aHx8MCx0JiZ0LmNsaWVudFdpZHRofHwwKSxpPXdkKGUpO3JldHVybiFvYXx8TWF0aC5hYnMobi1vYSk+OD8ob2E9bixyaT1pKTppPnJpJiYocmk9aSksTWF0aC5tYXgoMSxNYXRoLnJvdW5kKHJpfHxpfHwxKSl9ZnVuY3Rpb24gQmQoZSx0LG4saSl7cmV0dXJuIGV8fCFsYSgpPyExOnQ+MHx8aT5uKzF9ZnVuY3Rpb24gVW4oZSl7dmFyIHQ9d2luZG93LnZpc3VhbFZpZXdwb3J0O2lmKHQpe3ZhciBuPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtpZihuLmNsYXNzTGlzdC50b2dnbGUoImlzLWtleWJvYXJkLW9wZW4iLCEhZSksd2luZG93Ll9fd2FuZEltZU5hdGl2ZSl7bi5zdHlsZS5zZXRQcm9wZXJ0eSgiLS1hcHAtdmlld3BvcnQtdG9wIiwiMHB4Iiksbi5zdHlsZS5zZXRQcm9wZXJ0eSgiLS1hcHAtdmlld3BvcnQtaGVpZ2h0IixNYXRoLnJvdW5kKHQuaGVpZ2h0KSsicHgiKTtyZXR1cm59dmFyIGk9Q2QodCksYT1NYXRoLm1heCgwLE1hdGgucm91bmQodC5vZmZzZXRUb3B8fDApKSx1PU1hdGgubWF4KDEsTWF0aC5yb3VuZCh0LmhlaWdodCkpOyghZSYmbGEoKXx8QmQoZSxhLHUsaSkpJiYoYT0wLHU9TWF0aC5tYXgodSxpKSksbi5zdHlsZS5zZXRQcm9wZXJ0eSgiLS1hcHAtdmlld3BvcnQtdG9wIixhKyJweCIpLG4uc3R5bGUuc2V0UHJvcGVydHkoIi0tYXBwLXZpZXdwb3J0LWhlaWdodCIsdSsicHgiKSwoZXx8KHdpbmRvdy5zY3JvbGxZfHwwKT4wKSYmSGEoKX19ZnVuY3Rpb24gaWkoZSl7aWYoIWUpcmV0dXJuITE7dmFyIHQ9ZS50YWdOYW1lO2lmKHQ9PT0iVEVYVEFSRUEifHx0PT09IlNFTEVDVCIpcmV0dXJuITA7aWYodD09PSJJTlBVVCIpe3ZhciBuPShlLmdldEF0dHJpYnV0ZSgidHlwZSIpfHwidGV4dCIpLnRvTG93ZXJDYXNlKCk7cmV0dXJuIS9eKGJ1dHRvbnxjaGVja2JveHxjb2xvcnxmaWxlfGhpZGRlbnxpbWFnZXxyYWRpb3xyYW5nZXxyZXNldHxzdWJtaXQpJC9pLnRlc3Qobil9cmV0dXJuISFlLmlzQ29udGVudEVkaXRhYmxlfWZ1bmN0aW9uIERkKCl7aWYoISgidmlzdWFsVmlld3BvcnQiaW4gd2luZG93KXx8d2luZG93Ll9fd2FuZFZpZXdwb3J0SGFuZGxlcnNCb3VuZClyZXR1cm47d2luZG93Ll9fd2FuZFZpZXdwb3J0SGFuZGxlcnNCb3VuZD0hMDt2YXIgZT13aW5kb3cudmlzdWFsVmlld3BvcnQsdD1lLmhlaWdodCxuPSExLGk9TWF0aC5tYXgod2luZG93LmlubmVyV2lkdGh8fDAsZS53aWR0aHx8MCksYT1NYXRoLm1heCh3aW5kb3cuaW5uZXJIZWlnaHR8fDAsZS5oZWlnaHR8fDApLHU9W107ZnVuY3Rpb24gcygpe3JldHVybiBNYXRoLm1heCh3aW5kb3cuaW5uZXJIZWlnaHR8fDAsZS5oZWlnaHR8fDApfWZ1bmN0aW9uIG8oKXt2YXIgZz1NYXRoLm1heCh3aW5kb3cuaW5uZXJXaWR0aHx8MCxlLndpZHRofHwwKSxtPXMoKTtpZihNYXRoLmFicyhnLWkpPjgpe2k9ZyxhPW07cmV0dXJufW0+YSYmKGE9bSl9ZnVuY3Rpb24gbChnLG0pe3ZhciB5PWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQsdz15PT09Z3x8aWkoeSksRT1hLWUuaGVpZ2h0LEI9YS0od2luZG93LmlubmVySGVpZ2h0fHxlLmhlaWdodHx8MCksRj1EYXRlLm5vdygpPGdyO3JldHVybiBGPyEhKHcmJihFPjEyMHx8Qj4xMjApKTohIShtPjgwfHx3JiYoRT4xMjB8fEI+MTIwKXx8biYmKEU+ODB8fG0+MzIpKX1mdW5jdGlvbiBjKCl7dS5mb3JFYWNoKGZ1bmN0aW9uKGcpe2NsZWFyVGltZW91dChnKX0pLHU9WzYwLDE4MCwzNjAsNjIwLDkwMF0ubWFwKGZ1bmN0aW9uKGcpe3JldHVybiBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7VW4obil9LGcpfSl9ZnVuY3Rpb24gZigpe1swLDUwLDEyMCwyMjAsMzYwLDU2MF0uZm9yRWFjaChmdW5jdGlvbihnKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZCgpO3ZhciBtPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dC1ib3giKTttJiZkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09bSYmRmkobSl9LGcpfSl9ZnVuY3Rpb24gZCgpe2lmKGUpe3ZhciBnPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dC1ib3giKSxtPXdpbmRvdy5pbm5lckhlaWdodC1lLmhlaWdodC1lLm9mZnNldFRvcDtvKCk7dmFyIHk9bChnLG0pLHc9TWF0aC5hYnMoZS5oZWlnaHQtdCk+ODtpZihVbih5KSx5JiYoIW58fHcpJiZ1dihlLGcpJiZGaShnKSwhbiYmeSl7dmFyIEU9ci50ZXJtaW5hbEF1dG9Gb2xsb3d8fHZhKCk7WmUoImtleWJvYXJkLW9wZW4iLHtmb3JjZVJlcGxheTohMH0pLHdpbmRvdy5fX3dhbmRJbWVOYXRpdmV8fHNldFRpbWVvdXQoZnVuY3Rpb24oKXtVbighMCl9LDIyMCksYygpLEUmJnNldFRpbWVvdXQoZnVuY3Rpb24oKXtyLnRlcm1pbmFsJiZGdCgiZm9yY2UiKX0sMjIwKX1pZihuJiYheSl7dmFyIEI9ISF3aW5kb3cuX193YW5kSW1lTmF0aXZlO0J8fChrcygyMjAwKSxncj1EYXRlLm5vdygpKzEyMDAsVW4oITEpLEhhKCkpLGMoKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Qnx8KFVuKCExKSxIYSgpKSxaZSgia2V5Ym9hcmQtY2xvc2UiLHtmb3JjZVJlcGxheTohMH0pLEZ0KCJrZXlib2FyZCIpfSwyMDApfXcmJm49PT15JiZaZSgidmlld3BvcnQiKSxuPXksdD1lLmhlaWdodH19dmFyIHY9bnVsbDtmdW5jdGlvbiBoKCl7diE9PW51bGwmJmNhbmNlbEFuaW1hdGlvbkZyYW1lKHYpLHY9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7dj1udWxsLGQoKX0pfWUuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIixoKSxlLmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsaCksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidmlzaWJpbGl0eWNoYW5nZSIsZnVuY3Rpb24oKXtkb2N1bWVudC52aXNpYmlsaXR5U3RhdGU9PT0idmlzaWJsZSImJihoKCksc2V0VGltZW91dChoLDI0MCksc2V0VGltZW91dChoLDcyMCkpfSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInBhZ2VzaG93IixmdW5jdGlvbihnKXtnJiZnLnBlcnNpc3RlZCYmKGgoKSxzZXRUaW1lb3V0KGgsMjQwKSl9KSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJmb2N1c291dCIsZnVuY3Rpb24oZyl7IWd8fCFnLnRhcmdldHx8aWkoZy50YXJnZXQpJiYoQXMoMTYwMCxnLnRhcmdldCksbGEoKSYmKGdyPU1hdGgubWF4KGdyLERhdGUubm93KCkrMTIwMCkpLHNldFRpbWVvdXQoaCw4MCksc2V0VGltZW91dChoLDQyMCkpfSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXNpbiIsZnVuY3Rpb24oZyl7IWd8fCFnLnRhcmdldHx8IWlpKGcudGFyZ2V0KXx8ZigpfSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIndhbmQtaW9zLWltZS1zdGF0ZSIsZnVuY3Rpb24oZyl7dmFyIG09ZyYmZy5kZXRhaWwmJmcuZGV0YWlsLnN0YXRlO209PT0iaGlkZGVuIiYmKGdyPURhdGUubm93KCkrOTAwKSxmKCksYygpfSksZCgpfWZ1bmN0aW9uIGtkKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpO2lmKGUpe3ZhciB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3QuY2xhc3NOYW1lPSJ0ZXJtaW5hbC1yZXNpemUtaGFuZGxlIix0LmlubmVySFRNTD0iJiM4OTQyOyIsZS5hcHBlbmRDaGlsZCh0KTt2YXIgbj0hMSxpPTAsYT0wO3QuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIixmdW5jdGlvbih1KXtuPSEwLGk9dS5jbGllbnRZLGE9ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQsZG9jdW1lbnQuYm9keS5zdHlsZS5jdXJzb3I9Im5zLXJlc2l6ZSIsZG9jdW1lbnQuYm9keS5zdHlsZS51c2VyU2VsZWN0PSJub25lIix1LnByZXZlbnREZWZhdWx0KCl9KSxyLnJlc2l6ZU1vdXNlTW92ZT1mdW5jdGlvbih1KXtpZihuKXt2YXIgcz11LmNsaWVudFktaSxvPU1hdGgubWF4KDIwMCxNYXRoLm1pbihhK3Msd2luZG93LmlubmVySGVpZ2h0LTIwMCkpO2Uuc3R5bGUuaGVpZ2h0PW8rInB4IixlLnN0eWxlLmZsZXg9Im5vbmUiLEh0KCl9fSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHIucmVzaXplTW91c2VNb3ZlKSxyLnJlc2l6ZU1vdXNlVXA9ZnVuY3Rpb24oKXtuJiYobj0hMSxkb2N1bWVudC5ib2R5LnN0eWxlLmN1cnNvcj0iIixkb2N1bWVudC5ib2R5LnN0eWxlLnVzZXJTZWxlY3Q9IiIsSHQoKSl9LGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHIucmVzaXplTW91c2VVcCksdC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IixmdW5jdGlvbih1KXtuPSEwLGk9dS50b3VjaGVzWzBdLmNsaWVudFksYT1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodCx1LnByZXZlbnREZWZhdWx0KCl9LHtwYXNzaXZlOiExfSksci5yZXNpemVUb3VjaE1vdmU9ZnVuY3Rpb24odSl7aWYobil7dmFyIHM9dS50b3VjaGVzWzBdLmNsaWVudFktaSxvPU1hdGgubWF4KDIwMCxNYXRoLm1pbihhK3Msd2luZG93LmlubmVySGVpZ2h0LTIwMCkpO2Uuc3R5bGUuaGVpZ2h0PW8rInB4IixlLnN0eWxlLmZsZXg9Im5vbmUiLEh0KCksdS5wcmV2ZW50RGVmYXVsdCgpfX0sZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIixyLnJlc2l6ZVRvdWNoTW92ZSx7cGFzc2l2ZTohMX0pLHIucmVzaXplVG91Y2hFbmQ9ZnVuY3Rpb24oKXtuJiYobj0hMSxIdCgpKX0sZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLHIucmVzaXplVG91Y2hFbmQpfX1mdW5jdGlvbiB4cygpe3JldHVybiEhTnQoKX1mdW5jdGlvbiBjYShlKXt2YXIgdD1NYXRoLm1heChwbix3aW5kb3cuaW5uZXJXaWR0aC1naS1wbiksbj1NYXRoLm1heChwbix3aW5kb3cuaW5uZXJIZWlnaHQtZ2ktcG4pO3JldHVybntyaWdodDpNYXRoLm1pbihNYXRoLm1heChwbixlLnJpZ2h0KSx0KSxib3R0b206TWF0aC5taW4oTWF0aC5tYXgocG4sZS5ib3R0b20pLG4pfX1mdW5jdGlvbiBTcygpe2lmKHIuam95c3RpY2tCYWxsRWwpe3ZhciBlPWNhKHIuam95c3RpY2tQb3N8fHtyaWdodDoxOCxib3R0b206OTZ9KTtyLmpveXN0aWNrQmFsbEVsLnN0eWxlLnJpZ2h0PWUucmlnaHQrInB4IixyLmpveXN0aWNrQmFsbEVsLnN0eWxlLmJvdHRvbT1lLmJvdHRvbSsicHgifX1mdW5jdGlvbiBBZChlLHQpe3ZhciBuPWNhKHtyaWdodDplLGJvdHRvbTp0fSk7ci5qb3lzdGlja1Bvcz1uO3RyeXtsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgid2FuZC1iYWxsLXBvcyIsSlNPTi5zdHJpbmdpZnkobikpfWNhdGNoe319ZnVuY3Rpb24geGQoKXtmdW5jdGlvbiBlKHUscyxvKXtyZXR1cm4nPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJ3anAta2V5Jysobz8iICIrbzoiIikrJyIgZGF0YS1rZXk9IicrdSsnIj4nK3MrIjwvYnV0dG9uPiJ9dmFyIHQ9JzxkaXYgY2xhc3M9IndqcC1kcGFkIj48ZGl2IGNsYXNzPSJ3anAtZHBhZC1yb3ciPicrZSgidXAiLCJcdTIxOTEiLCJ3anAtZGlyIikrJzwvZGl2PjxkaXYgY2xhc3M9IndqcC1kcGFkLXJvdyI+JytlKCJsZWZ0IiwiXHUyMTkwIiwid2pwLWRpciIpK2UoImRvd24iLCJcdTIxOTMiLCJ3anAtZGlyIikrZSgicmlnaHQiLCJcdTIxOTIiLCJ3anAtZGlyIikrIjwvZGl2PjwvZGl2PiIsbj0iIixpO2ZvcihpPTA7aTxJYS5sZW5ndGg7aSsrKW4rPWUoSWFbaV0ua2V5LElhW2ldLmxhYmVsLCIiKTt2YXIgYT0nPGRpdiBjbGFzcz0id2pwLWhlYWRlciI+PHNwYW4gY2xhc3M9IndqcC10aXRsZSI+Jyt6KCJwYXciLHtzaXplOjEzLHN0cm9rZVdpZHRoOjEuNixjbHM6IndqcC10aXRsZS1pY29uIn0pKyc8c3Bhbj5cdTkwNjVcdTYzQTdcdTk3NjJcdTY3N0Y8L3NwYW4+PC9zcGFuPjxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0id2pwLWNsb3NlIiBhcmlhLWxhYmVsPSJcdTUxNzNcdTk1RURcdTkwNjVcdTYzQTdcdTk3NjJcdTY3N0YiPicreigieCIse3NpemU6MTMsc3Ryb2tlV2lkdGg6Mn0pKyI8L2J1dHRvbj48L2Rpdj4iK3QrJzxkaXYgY2xhc3M9IndqcC1ncmlkIHdqcC1mbmtleXMiPicrbisiPC9kaXY+IjtyZXR1cm4gYX1mdW5jdGlvbiBTZCgpe2lmKCFyLmpveXN0aWNrUm9vdEVsKXt2YXIgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtlLmNsYXNzTmFtZT0id2FuZC1qb3lzdGljay1yb290IixbInBvaW50ZXJkb3duIiwicG9pbnRlcnVwIiwidG91Y2hzdGFydCIsInRvdWNoZW5kIiwiY2xpY2siXS5mb3JFYWNoKGZ1bmN0aW9uKGEpe2UuYWRkRXZlbnRMaXN0ZW5lcihhLElzLCEwKX0pO3ZhciB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3QuY2xhc3NOYW1lPSJ3YW5kLWpveXN0aWNrLWJhY2tkcm9wIixlLmFwcGVuZENoaWxkKHQpO3ZhciBuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO24uY2xhc3NOYW1lPSJ3YW5kLWpveXN0aWNrLXBhbmVsIixuLmlubmVySFRNTD14ZCgpLG4uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLEhkKSxlLmFwcGVuZENoaWxkKG4pO3ZhciBpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2kuY2xhc3NOYW1lPSJ3YW5kLWpveXN0aWNrLWJhbGwiLGkuc2V0QXR0cmlidXRlKCJyb2xlIiwiYnV0dG9uIiksaS5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLCJXYW5kIFx1OTA2NVx1NjNBN1x1OTc2Mlx1Njc3RiIpLGkuc2V0QXR0cmlidXRlKCJ0aXRsZSIsIlx1NzBCOVx1NTFGQlx1NjI1M1x1NUYwMFx1OTA2NVx1NjNBN1x1OTc2Mlx1Njc3Rlx1RkYwQ1x1NjJENlx1NTJBOFx1NTNFRlx1NzlGQlx1NTJBOFx1NEY0RFx1N0Y2RSIpLGkuaW5uZXJIVE1MPXooInBhdyIse3NpemU6MjUsc3Ryb2tlV2lkdGg6MS42LGNsczoid2FuZC1qb3lzdGljay1sb2dvIn0pLGUuYXBwZW5kQ2hpbGQoaSksZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlKSxyLmpveXN0aWNrUm9vdEVsPWUsci5qb3lzdGlja0JhY2tkcm9wRWw9dCxyLmpveXN0aWNrUGFuZWxFbD1uLHIuam95c3RpY2tCYWxsRWw9aSxTcygpLGkuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcmRvd24iLElkKSxpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihhKXthLnByZXZlbnREZWZhdWx0KCksYS5zdG9wUHJvcGFnYXRpb24oKX0pLHQuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcmRvd24iLGZ1bmN0aW9uKGEpe3Iuam95c3RpY2tQaW5uZWRPcGVuJiZyLmpveXN0aWNrR2VzdHVyZT09bnVsbCYmKGEucHJldmVudERlZmF1bHQoKSxocigpKX0pLHQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKGEpe2EucHJldmVudERlZmF1bHQoKSxhLnN0b3BQcm9wYWdhdGlvbigpfSksci5qb3lzdGlja1Jlc2l6ZUhhbmRsZXI9ZnVuY3Rpb24oKXtTcygpfSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIixyLmpveXN0aWNrUmVzaXplSGFuZGxlciksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm9yaWVudGF0aW9uY2hhbmdlIixyLmpveXN0aWNrUmVzaXplSGFuZGxlcikscXMoKX19ZnVuY3Rpb24gSXMoKXtpZihkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCJpcy13YW5kLW5hdGl2ZS1pbnB1dCIpKXt2YXIgZT1kb2N1bWVudC5hY3RpdmVFbGVtZW50O2lmKGUmJnR5cGVvZiBlLmJsdXI9PSJmdW5jdGlvbiIpdHJ5e2UuYmx1cigpfWNhdGNoe31zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIHQ9ZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtpZih0JiZ0eXBlb2YgdC5ibHVyPT0iZnVuY3Rpb24iKXRyeXt0LmJsdXIoKX1jYXRjaHt9fSwwKX19ZnVuY3Rpb24gSWQoZSl7aWYoeHMoKSYmISgoZS5wb2ludGVyVHlwZT09PSJtb3VzZSJ8fGUucG9pbnRlclR5cGU9PT0icGVuIikmJmUuYnV0dG9uIT09MCkmJnIuam95c3RpY2tQb2ludGVySWQ9PT1udWxsKXtJcygpLGUucHJldmVudERlZmF1bHQoKSxlLnN0b3BQcm9wYWdhdGlvbigpO3ZhciB0PWUucG9pbnRlclR5cGU9PT0ibW91c2UifHxlLnBvaW50ZXJUeXBlPT09InBlbiI7ci5qb3lzdGlja1BvaW50ZXJJZD1lLnBvaW50ZXJJZCxyLmpveXN0aWNrUHJlc3NTdGFydD17eDplLmNsaWVudFgseTplLmNsaWVudFksdDpEYXRlLm5vdygpfSxyLmpveXN0aWNrR2VzdHVyZT0icGVuZGluZyI7dHJ5e3Iuam95c3RpY2tCYWxsRWwuc2V0UG9pbnRlckNhcHR1cmUoZS5wb2ludGVySWQpfWNhdGNoe310fHwoci5qb3lzdGlja0xvbmdQcmVzc1RpbWVyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtyLmpveXN0aWNrR2VzdHVyZT09PSJwZW5kaW5nIiYmVHMoKX0sQnApKSxyLmpveXN0aWNrTW92ZUhhbmRsZXI9VGQsci5qb3lzdGlja1VwSGFuZGxlcj1MZCxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVybW92ZSIsci5qb3lzdGlja01vdmVIYW5kbGVyKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVydXAiLHIuam95c3RpY2tVcEhhbmRsZXIpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJjYW5jZWwiLHIuam95c3RpY2tVcEhhbmRsZXIpfX1mdW5jdGlvbiBUcygpe3Iuam95c3RpY2tHZXN0dXJlPSJtb3ZlIixyLmpveXN0aWNrUGlubmVkT3BlbiYmaHIoKSxyLmpveXN0aWNrQmFsbEVsJiZyLmpveXN0aWNrQmFsbEVsLmNsYXNzTGlzdC5hZGQoImRyYWdnaW5nIiksci5qb3lzdGlja0JhY2tkcm9wRWwmJnIuam95c3RpY2tCYWNrZHJvcEVsLmNsYXNzTGlzdC5hZGQoImFjdGl2ZSIpfWZ1bmN0aW9uIExzKGUsdCl7aWYoci5qb3lzdGlja0JhbGxFbCl7dmFyIG49Y2Eoe3JpZ2h0OndpbmRvdy5pbm5lcldpZHRoLWUtZ2kvMixib3R0b206d2luZG93LmlubmVySGVpZ2h0LXQtZ2kvMn0pO3Iuam95c3RpY2tCYWxsRWwuc3R5bGUucmlnaHQ9bi5yaWdodCsicHgiLHIuam95c3RpY2tCYWxsRWwuc3R5bGUuYm90dG9tPW4uYm90dG9tKyJweCJ9fWZ1bmN0aW9uIFRkKGUpe2lmKCEoZS5wb2ludGVySWQhPT1yLmpveXN0aWNrUG9pbnRlcklkfHwhci5qb3lzdGlja0JhbGxFbCkpe2lmKGUucHJldmVudERlZmF1bHQoKSxyLmpveXN0aWNrR2VzdHVyZT09PSJtb3ZlIil7THMoZS5jbGllbnRYLGUuY2xpZW50WSk7cmV0dXJufWlmKHIuam95c3RpY2tHZXN0dXJlPT09InBlbmRpbmciKXt2YXIgdD1lLmNsaWVudFgtci5qb3lzdGlja1ByZXNzU3RhcnQueCxuPWUuY2xpZW50WS1yLmpveXN0aWNrUHJlc3NTdGFydC55O01hdGguc3FydCh0KnQrbipuKTw9RHB8fChlLnBvaW50ZXJUeXBlPT09Im1vdXNlInx8ZS5wb2ludGVyVHlwZT09PSJwZW4iPyhUcygpLExzKGUuY2xpZW50WCxlLmNsaWVudFkpKTooci5qb3lzdGlja0xvbmdQcmVzc1RpbWVyJiYoY2xlYXJUaW1lb3V0KHIuam95c3RpY2tMb25nUHJlc3NUaW1lciksci5qb3lzdGlja0xvbmdQcmVzc1RpbWVyPW51bGwpLHIuam95c3RpY2tHZXN0dXJlPSJjYW5jZWxsZWQiKSl9fX1mdW5jdGlvbiBMZChlKXtpZihlLnBvaW50ZXJJZD09PXIuam95c3RpY2tQb2ludGVySWQpe3Iuam95c3RpY2tMb25nUHJlc3NUaW1lciYmKGNsZWFyVGltZW91dChyLmpveXN0aWNrTG9uZ1ByZXNzVGltZXIpLHIuam95c3RpY2tMb25nUHJlc3NUaW1lcj1udWxsKTt2YXIgdD1yLmpveXN0aWNrR2VzdHVyZTtpZih0PT09InBlbmRpbmciKXt2YXIgbj1lLmNsaWVudFgtci5qb3lzdGlja1ByZXNzU3RhcnQueCxpPWUuY2xpZW50WS1yLmpveXN0aWNrUHJlc3NTdGFydC55O01hdGguc3FydChuKm4raSppKTw9a3AmJk9kKCl9ZWxzZSBpZih0PT09Im1vdmUiKXt2YXIgYT1yLmpveXN0aWNrQmFsbEVsP3Iuam95c3RpY2tCYWxsRWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk6bnVsbDthJiZBZCh3aW5kb3cuaW5uZXJXaWR0aC1hLnJpZ2h0LHdpbmRvdy5pbm5lckhlaWdodC1hLmJvdHRvbSl9TXMoKX19ZnVuY3Rpb24gTXMoKXtpZihyLmpveXN0aWNrTG9uZ1ByZXNzVGltZXImJihjbGVhclRpbWVvdXQoci5qb3lzdGlja0xvbmdQcmVzc1RpbWVyKSxyLmpveXN0aWNrTG9uZ1ByZXNzVGltZXI9bnVsbCksci5qb3lzdGlja0JhbGxFbCYmci5qb3lzdGlja1BvaW50ZXJJZCE9PW51bGwpdHJ5e3Iuam95c3RpY2tCYWxsRWwucmVsZWFzZVBvaW50ZXJDYXB0dXJlKHIuam95c3RpY2tQb2ludGVySWQpfWNhdGNoe31yLmpveXN0aWNrTW92ZUhhbmRsZXImJihkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVybW92ZSIsci5qb3lzdGlja01vdmVIYW5kbGVyKSxyLmpveXN0aWNrTW92ZUhhbmRsZXI9bnVsbCksci5qb3lzdGlja1VwSGFuZGxlciYmKGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJ1cCIsci5qb3lzdGlja1VwSGFuZGxlciksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcmNhbmNlbCIsci5qb3lzdGlja1VwSGFuZGxlciksci5qb3lzdGlja1VwSGFuZGxlcj1udWxsKSxyLmpveXN0aWNrQmFsbEVsJiZyLmpveXN0aWNrQmFsbEVsLmNsYXNzTGlzdC5yZW1vdmUoImRyYWdnaW5nIiksci5qb3lzdGlja0JhY2tkcm9wRWwmJiFyLmpveXN0aWNrUGlubmVkT3BlbiYmci5qb3lzdGlja0JhY2tkcm9wRWwuY2xhc3NMaXN0LnJlbW92ZSgiYWN0aXZlIiksci5qb3lzdGlja1BvaW50ZXJJZD1udWxsLHIuam95c3RpY2tHZXN0dXJlPW51bGwsci5qb3lzdGlja1ByZXNzU3RhcnQ9bnVsbH1mdW5jdGlvbiBNZChlKXtpZihlPT09ImN0cmwifHxlPT09ImFsdCJ8fGU9PT0ic2hpZnQiKXtyLm1vZGlmaWVyc1tlXT0hci5tb2RpZmllcnNbZV0seXIoKTtyZXR1cm59dmFyIHQ9TnQoKTtpZih0JiZ1ZSh0KSl7KGU9PT0iY3RybF9jInx8ZT09PSJlc2NhcGUiKSYmcWQodCxlKSx5aSgpLHlyKCk7cmV0dXJufXZhciBuPXlvKGUse2N0cmw6ci5tb2RpZmllcnMuY3RybCxhbHQ6ci5tb2RpZmllcnMuYWx0LHNoaWZ0OnIubW9kaWZpZXJzLnNoaWZ0fSk7biYmZ28obixlKSx5aSgpLHlyKCksUHAoKX1mdW5jdGlvbiBxZChlLHQpeyFlfHwhZS5pZHx8ZmV0Y2goIi9hcGkvc3RydWN0dXJlZC1zZXNzaW9ucy8iK2UuaWQrIi9tZXNzYWdlcyIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkoe2lucHV0OiIiLGludGVycnVwdDohMCxwcmVzZXJ2ZVF1ZXVlOiEwfSl9KS50aGVuKGZ1bmN0aW9uKG4pe3JldHVybiBuLm9rP24uanNvbigpOm4uanNvbigpLmNhdGNoKGZ1bmN0aW9uKCl7cmV0dXJue319KS50aGVuKGZ1bmN0aW9uKGkpe3Rocm93IG5ldyBFcnJvcihpJiZpLmVycm9yfHwiXHU0RTJEXHU2NUFEXHU1OTMxXHU4RDI1IChrZXk9Iit0KyIpIil9KX0pLnRoZW4oZnVuY3Rpb24obil7aWYobiYmbi5pZCYmKCQobiksbi5pZD09PXIuc2VsZWN0ZWRJZCkpe3ZhciBpPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihhKXtyZXR1cm4gYS5pZD09PW4uaWR9KXx8bjtyLmN1cnJlbnRNZXNzYWdlcz1SZShpLG50KGksbi5vdXRwdXQsITEpKSxtcighMCksdHlwZW9mIHN0PT0iZnVuY3Rpb24iJiZzdCgpfX0pLmNhdGNoKGZ1bmN0aW9uKG4pe24mJm4ubWVzc2FnZSYmY29uc29sZS5kZWJ1ZygiW3dhbmRdIGpveXN0aWNrIGludGVycnVwdCBuby1vcDoiLG4ubWVzc2FnZSl9KX1mdW5jdGlvbiBPZCgpe3Iuam95c3RpY2tQaW5uZWRPcGVuP2hyKCk6UGQoKX1mdW5jdGlvbiBQZCgpe2lmKCEoIXIuam95c3RpY2tQYW5lbEVsfHwhci5qb3lzdGlja0JhbGxFbCkpe3Iuam95c3RpY2tQaW5uZWRPcGVuPSEwO3ZhciBlPXIuam95c3RpY2tCYWxsRWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7ci5qb3lzdGlja1BhbmVsRWwuc3R5bGUucmlnaHQ9TWF0aC5tYXgocG4sd2luZG93LmlubmVyV2lkdGgtZS5yaWdodCkrInB4IixyLmpveXN0aWNrUGFuZWxFbC5zdHlsZS5ib3R0b209TWF0aC5tYXgocG4sd2luZG93LmlubmVySGVpZ2h0LWUudG9wKzEwKSsicHgiLHIuam95c3RpY2tQYW5lbEVsLmNsYXNzTGlzdC5hZGQoImFjdGl2ZSIpLHIuam95c3RpY2tCYWxsRWwuY2xhc3NMaXN0LmFkZCgicGFuZWwtb3BlbiIpLHIuam95c3RpY2tCYWNrZHJvcEVsJiZyLmpveXN0aWNrQmFja2Ryb3BFbC5jbGFzc0xpc3QuYWRkKCJhY3RpdmUiKSx5cigpfX1mdW5jdGlvbiBocigpe3Iuam95c3RpY2tQaW5uZWRPcGVuPSExLHIuam95c3RpY2tQYW5lbEVsJiZyLmpveXN0aWNrUGFuZWxFbC5jbGFzc0xpc3QucmVtb3ZlKCJhY3RpdmUiKSxyLmpveXN0aWNrQmFsbEVsJiZyLmpveXN0aWNrQmFsbEVsLmNsYXNzTGlzdC5yZW1vdmUoInBhbmVsLW9wZW4iKSxyLmpveXN0aWNrQmFja2Ryb3BFbCYmci5qb3lzdGlja0dlc3R1cmU9PW51bGwmJnIuam95c3RpY2tCYWNrZHJvcEVsLmNsYXNzTGlzdC5yZW1vdmUoImFjdGl2ZSIpfWZ1bmN0aW9uIHlyKCl7ci5qb3lzdGlja1BhbmVsRWwmJlsiY3RybCIsImFsdCJdLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIHQ9ci5qb3lzdGlja1BhbmVsRWwucXVlcnlTZWxlY3RvcignLndqcC1tb2RbZGF0YS1rZXk9IicrZSsnIl0nKTt0JiZ0LmNsYXNzTGlzdC50b2dnbGUoImFjdGl2ZSIsISFyLm1vZGlmaWVyc1tlXSl9KX1mdW5jdGlvbiBIZChlKXt2YXIgdD1lLnRhcmdldCYmZS50YXJnZXQuY2xvc2VzdD9lLnRhcmdldC5jbG9zZXN0KCIud2pwLWNsb3NlIik6bnVsbDtpZih0KXtlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKSxocigpO3JldHVybn12YXIgbj1lLnRhcmdldCYmZS50YXJnZXQuY2xvc2VzdD9lLnRhcmdldC5jbG9zZXN0KCIud2pwLWtleSIpOm51bGw7aWYobil7ZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcFByb3BhZ2F0aW9uKCk7dmFyIGk9bi5nZXRBdHRyaWJ1dGUoImRhdGEta2V5Iik7aSYmTWQoaSl9fWZ1bmN0aW9uIHFzKCl7dmFyIGU9ci5qb3lzdGlja1Jvb3RFbDtpZihlKXt2YXIgdD14cygpO2UuY2xhc3NMaXN0LnRvZ2dsZSgidmlzaWJsZSIsdCksdHx8KChyLmpveXN0aWNrUG9pbnRlcklkIT09bnVsbHx8ci5qb3lzdGlja0dlc3R1cmUpJiZNcygpLHIuam95c3RpY2tQaW5uZWRPcGVuJiZocigpLHIuam95c3RpY2tCYWNrZHJvcEVsJiZyLmpveXN0aWNrQmFja2Ryb3BFbC5jbGFzc0xpc3QucmVtb3ZlKCJhY3RpdmUiKSl9fWZ1bmN0aW9uIF9kKCl7ci5qb3lzdGlja0xvbmdQcmVzc1RpbWVyJiYoY2xlYXJUaW1lb3V0KHIuam95c3RpY2tMb25nUHJlc3NUaW1lciksci5qb3lzdGlja0xvbmdQcmVzc1RpbWVyPW51bGwpLHIuam95c3RpY2tNb3ZlSGFuZGxlciYmKGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJtb3ZlIixyLmpveXN0aWNrTW92ZUhhbmRsZXIpLHIuam95c3RpY2tNb3ZlSGFuZGxlcj1udWxsKSxyLmpveXN0aWNrVXBIYW5kbGVyJiYoZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcnVwIixyLmpveXN0aWNrVXBIYW5kbGVyKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVyY2FuY2VsIixyLmpveXN0aWNrVXBIYW5kbGVyKSxyLmpveXN0aWNrVXBIYW5kbGVyPW51bGwpLHIuam95c3RpY2tSZXNpemVIYW5kbGVyJiYod2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsci5qb3lzdGlja1Jlc2l6ZUhhbmRsZXIpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJvcmllbnRhdGlvbmNoYW5nZSIsci5qb3lzdGlja1Jlc2l6ZUhhbmRsZXIpLHIuam95c3RpY2tSZXNpemVIYW5kbGVyPW51bGwpLHIuam95c3RpY2tSb290RWwmJnIuam95c3RpY2tSb290RWwucGFyZW50Tm9kZSYmci5qb3lzdGlja1Jvb3RFbC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHIuam95c3RpY2tSb290RWwpLHIuam95c3RpY2tSb290RWw9bnVsbCxyLmpveXN0aWNrUGFuZWxFbD1udWxsLHIuam95c3RpY2tCYWNrZHJvcEVsPW51bGwsci5qb3lzdGlja0JhbGxFbD1udWxsLHIuam95c3RpY2tQb2ludGVySWQ9bnVsbCxyLmpveXN0aWNrR2VzdHVyZT1udWxsLHIuam95c3RpY2tQcmVzc1N0YXJ0PW51bGwsci5qb3lzdGlja1Bpbm5lZE9wZW49ITF9ZnVuY3Rpb24gTmQoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0Iik7aWYoZSl7dmFyIHQ9IU5lKCk7ci5yZXNpemVIYW5kbGVyPWZ1bmN0aW9uKCl7SHQoITApO3ZhciBuPSFOZSgpO3QhPT1uJiYodD1uLCFuJiZyLnNpZGViYXJQaW5uZWQmJnIuc2Vzc2lvbnNEcmF3ZXJPcGVuPyhyLnNlc3Npb25zRHJhd2VyT3Blbj0hMSx4ZSgid2FuZC1zaWRlYmFyLW9wZW4iLCExKSxxcigpKTpuJiZyLnNpZGViYXJQaW5uZWQmJiFyLnNlc3Npb25zRHJhd2VyT3BlbiYmKHIuc2Vzc2lvbnNEcmF3ZXJPcGVuPSEwLHhlKCJ3YW5kLXNpZGViYXItb3BlbiIsITApLHFyKCkpKX0sd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsci5yZXNpemVIYW5kbGVyKSx3aW5kb3cudmlzdWFsVmlld3BvcnQmJihyLnZpc3VhbFZpZXdwb3J0SGFuZGxlcj1mdW5jdGlvbigpe0h0KCEwKX0sd2luZG93LnZpc3VhbFZpZXdwb3J0LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsci52aXN1YWxWaWV3cG9ydEhhbmRsZXIpKSxyLnZpc2liaWxpdHlIYW5kbGVyPWZ1bmN0aW9uKCl7ZG9jdW1lbnQuaGlkZGVufHxaZSgidmlzaWJpbGl0eSIse2ZvcmNlUmVwbGF5OiEwfSl9LGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInZpc2liaWxpdHljaGFuZ2UiLHIudmlzaWJpbGl0eUhhbmRsZXIpLHIub3JpZW50YXRpb25IYW5kbGVyPWZ1bmN0aW9uKCl7WmUoIm9yaWVudGF0aW9uIix7Zm9yY2VSZXBsYXk6ITB9KX0sd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm9yaWVudGF0aW9uY2hhbmdlIixyLm9yaWVudGF0aW9uSGFuZGxlcikscmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7SHQoITApfSl9fWZ1bmN0aW9uIGpkKCl7ci50ZXJtaW5hbEhlYWx0aFRpbWVyfHwoci50ZXJtaW5hbEhlYWx0aFRpbWVyPXNldEludGVydmFsKGZ1bmN0aW9uKCl7aWYoISghci50ZXJtaW5hbHx8ci5jdXJyZW50VmlldyE9PSJ0ZXJtaW5hbCJ8fGRvY3VtZW50LmhpZGRlbikpe3ZhciBlPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbih1KXtyZXR1cm4gdS5pZD09PXIuc2VsZWN0ZWRJZH0pO2lmKCEoIWV8fGUuc2Vzc2lvbktpbmQ9PT0ic3RydWN0dXJlZCIpKXtaZSgiaGVhbHRoIik7dmFyIHQ9RGF0ZS5ub3coKSxuPXIubGFzdENodW5rQXQ+MCYmdC1yLmxhc3RDaHVua0F0PjMwMCxpPXQtci5sYXN0VGVybWluYWxSZXN5bmNBdD4zZTQsYT1yLmxhc3RDaHVua0F0PnIubGFzdFRlcm1pbmFsUmVzeW5jQXQ7aSYmYSYmKG58fGUuc3RhdHVzIT09InJ1bm5pbmciKSYmci50ZXJtaW5hbE91dHB1dCYmU24oKX19fSw1ZTMpKX1mdW5jdGlvbiBSZCgpe3IudGVybWluYWxIZWFsdGhUaW1lciYmKGNsZWFySW50ZXJ2YWwoci50ZXJtaW5hbEhlYWx0aFRpbWVyKSxyLnRlcm1pbmFsSGVhbHRoVGltZXI9bnVsbCl9ZnVuY3Rpb24gYnIoKXtSZCgpLHIucmVzaXplVGltZXImJihjbGVhclRpbWVvdXQoci5yZXNpemVUaW1lciksci5yZXNpemVUaW1lcj1udWxsKSxyLnJlc2l6ZU9ic2VydmVyJiYoci5yZXNpemVPYnNlcnZlci5kaXNjb25uZWN0KCksci5yZXNpemVPYnNlcnZlcj1udWxsKSxyLnJlc2l6ZUhhbmRsZXImJih3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVzaXplIixyLnJlc2l6ZUhhbmRsZXIpLHIucmVzaXplSGFuZGxlcj1udWxsKSxyLnZpc3VhbFZpZXdwb3J0SGFuZGxlciYmd2luZG93LnZpc3VhbFZpZXdwb3J0JiYod2luZG93LnZpc3VhbFZpZXdwb3J0LnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsci52aXN1YWxWaWV3cG9ydEhhbmRsZXIpLHIudmlzdWFsVmlld3BvcnRIYW5kbGVyPW51bGwpLHIudmlzaWJpbGl0eUhhbmRsZXImJihkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIixyLnZpc2liaWxpdHlIYW5kbGVyKSxyLnZpc2liaWxpdHlIYW5kbGVyPW51bGwpLHIub3JpZW50YXRpb25IYW5kbGVyJiYod2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm9yaWVudGF0aW9uY2hhbmdlIixyLm9yaWVudGF0aW9uSGFuZGxlciksci5vcmllbnRhdGlvbkhhbmRsZXI9bnVsbCksW1sibW91c2Vtb3ZlIiwicmVzaXplTW91c2VNb3ZlIl0sWyJtb3VzZXVwIiwicmVzaXplTW91c2VVcCJdLFsidG91Y2htb3ZlIiwicmVzaXplVG91Y2hNb3ZlIl0sWyJ0b3VjaGVuZCIsInJlc2l6ZVRvdWNoRW5kIl1dLmZvckVhY2goZnVuY3Rpb24oYSl7clthWzFdXSYmKGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoYVswXSxyW2FbMV1dKSxyW2FbMV1dPW51bGwpfSksVm4oKTt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0Iik7aWYoci50ZXJtaW5hbFZpZXdwb3J0RWwmJihyLnRlcm1pbmFsVmlld3BvcnRTY3JvbGxIYW5kbGVyJiZyLnRlcm1pbmFsVmlld3BvcnRFbC5yZW1vdmVFdmVudExpc3RlbmVyKCJzY3JvbGwiLHIudGVybWluYWxWaWV3cG9ydFNjcm9sbEhhbmRsZXIpLHIudGVybWluYWxWaWV3cG9ydFRvdWNoSGFuZGxlciYmci50ZXJtaW5hbFZpZXdwb3J0RWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIixyLnRlcm1pbmFsVmlld3BvcnRUb3VjaEhhbmRsZXIpLHIudGVybWluYWxWaWV3cG9ydFRvdWNoU3RhcnRIYW5kbGVyJiZyLnRlcm1pbmFsVmlld3BvcnRFbC5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IixyLnRlcm1pbmFsVmlld3BvcnRUb3VjaFN0YXJ0SGFuZGxlcikpLGUmJihyLnRlcm1pbmFsV2hlZWxIYW5kbGVyJiZlLnJlbW92ZUV2ZW50TGlzdGVuZXIoIndoZWVsIixyLnRlcm1pbmFsV2hlZWxIYW5kbGVyKSxyLnRlcm1pbmFsQ2xpY2tIYW5kbGVyJiZlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIixyLnRlcm1pbmFsQ2xpY2tIYW5kbGVyKSksci50ZXJtaW5hbFZpZXdwb3J0RWw9bnVsbCxyLnRlcm1pbmFsVmlld3BvcnRTY3JvbGxIYW5kbGVyPW51bGwsci50ZXJtaW5hbFZpZXdwb3J0VG91Y2hIYW5kbGVyPW51bGwsci50ZXJtaW5hbFZpZXdwb3J0VG91Y2hTdGFydEhhbmRsZXI9bnVsbCxyLnRlcm1pbmFsV2hlZWxIYW5kbGVyPW51bGwsci50ZXJtaW5hbENsaWNrSGFuZGxlcj1udWxsLHIudGVybWluYWxTY3JvbGxiYXJIaWRlVGltZXImJihjbGVhclRpbWVvdXQoci50ZXJtaW5hbFNjcm9sbGJhckhpZGVUaW1lciksci50ZXJtaW5hbFNjcm9sbGJhckhpZGVUaW1lcj1udWxsKSxyLnRlcm1pbmFsU2Nyb2xsYmFyRWwmJnIudGVybWluYWxTY3JvbGxiYXJFbC5wYXJlbnROb2RlJiZyLnRlcm1pbmFsU2Nyb2xsYmFyRWwucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChyLnRlcm1pbmFsU2Nyb2xsYmFyRWwpLHIudGVybWluYWxTY3JvbGxiYXJFbD1udWxsLHIudGVybWluYWxTY3JvbGxiYXJUaHVtYkVsPW51bGwsci50ZXJtaW5hbFNjcm9sbGJhckRyYWdnaW5nPSExLHIudGVybWluYWxTY3JvbGxiYXJSYWZQZW5kaW5nPSExLHIudGVybWluYWwmJihyLnRlcm1pbmFsLmRlc3Ryb3koKSxyLnRlcm1pbmFsPW51bGwpLGUpZm9yKHZhciB0PWUucXVlcnlTZWxlY3RvckFsbCgiLnRlcm1pbmFsLXNjcm9sbC13cmFwIiksbj0wO248dC5sZW5ndGg7bisrKXt2YXIgaT10W25dO2kucGFyZW50Tm9kZT09PWUmJmUucmVtb3ZlQ2hpbGQoaSl9aGEoKSxyLnN5bmNPdXRwdXRCdWZmZXI9bnVsbCxyLnN5bmNPdXRwdXREZWFkbGluZT0wLHIuc3luY0ZyYW1pbmdSZXNpZHVlPSExLHIudGVybWluYWxTZXNzaW9uSWQ9bnVsbCxyLnRlcm1pbmFsT3V0cHV0PSIiLHIudGVybWluYWxPdXRwdXRNYXJrZXI9MCxyLnRlcm1pbmFsQXV0b0ZvbGxvdz0hMCxyLnNob3dUZXJtaW5hbEp1bXBUb0JvdHRvbT0hMSxtdCgpLHIuc29mdFJlc3luY1RpbWVyJiYoY2xlYXJUaW1lb3V0KHIuc29mdFJlc3luY1RpbWVyKSxyLnNvZnRSZXN5bmNUaW1lcj1udWxsKSxyLl9yZXN5bmNDaHVua1RhaWxUaW1lciYmKGNsZWFyVGltZW91dChyLl9yZXN5bmNDaHVua1RhaWxUaW1lciksci5fcmVzeW5jQ2h1bmtUYWlsVGltZXI9bnVsbCksci5fcmVzeW5jQ2h1bmtMYXN0QXQ9MCxyLl9yZXN5bmNTdGF0c1dpbmRvd1N0YXJ0PTAsci5fcmVzeW5jU3RhdHNDb3VudD0wLHIuX3Jlc3luY0xhc3RXYXJuQXQ9MCxyLl9yZXN5bmNJblByb2dyZXNzPSExLHIubGFzdFJlc2l6ZT17Y29sczowLHJvd3M6MH0sX2QoKX1mdW5jdGlvbiBhaShlLHQpe2lmKHIuc2VsZWN0ZWRJZCl7dmFyIG49ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGEpe3JldHVybiBhLmlkPT09ci5zZWxlY3RlZElkfSk7aWYoISghbnx8bi5zdGF0dXMhPT0icnVubmluZyIpJiYhdWUobikpe2U+MjU2JiYoZT0yNTYpLHQ+MTYwJiYodD0xNjApO3ZhciBpPXtjb2xzOmUscm93czp0fTsoci5sYXN0UmVzaXplLmNvbHMhPT1pLmNvbHN8fHIubGFzdFJlc2l6ZS5yb3dzIT09aS5yb3dzKSYmKHIubGFzdFJlc2l6ZT1pLGZldGNoKCIvYXBpL3Nlc3Npb25zLyIrci5zZWxlY3RlZElkKyIvcmVzaXplIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeShpKX0pLmNhdGNoKGZ1bmN0aW9uKCl7fSkpfX19ZnVuY3Rpb24gWmUoZSx0KXtpZighci50ZXJtaW5hbClyZXR1cm4hMTt2YXIgbj10fHx7fSxpPW4uZm9yY2VSZXBsYXk9PT0hMCxhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKTtpZighYXx8YS5vZmZzZXRXaWR0aD09PTB8fGEub2Zmc2V0SGVpZ2h0PT09MClyZXR1cm4gRXIoZXx8ImZpdC1yZXRyeSIse2ZvcmNlUmVwbGF5Oml9KSwhMTt2YXIgdT1yLnRlcm1pbmFsQXV0b0ZvbGxvd3x8dmEoKSxzPXIudGVybWluYWwuY29scyxvPXIudGVybWluYWwucm93cztyZXR1cm4gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7cmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7aWYoci50ZXJtaW5hbCl7dHlwZW9mIHIudGVybWluYWwucmVtZWFzdXJlPT0iZnVuY3Rpb24iJiZyLnRlcm1pbmFsLnJlbWVhc3VyZSgpLGFpKHIudGVybWluYWwuY29scyxyLnRlcm1pbmFsLnJvd3MpO3ZhciBsPXIudGVybWluYWwuY29scyE9PXN8fHIudGVybWluYWwucm93cyE9PW87IWwmJmkmJnIudGVybWluYWxPdXRwdXQmJlNuKHtza2lwRml0OiEwfSksdSYmRnQoImZvcmNlIil9fSl9KSwhMH1mdW5jdGlvbiBFcihlLHQpe2lmKCFyLnRlcm1pbmFsKXJldHVybjt2YXIgbj10fHx7fSxpPW4uZm9yY2VSZXBsYXkhPT0hMSxhPTAsdT04O2Z1bmN0aW9uIHMoKXtpZihyLnRlcm1pbmFsKXt2YXIgbz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0Iik7aWYobyYmby5vZmZzZXRIZWlnaHQsbyYmby5vZmZzZXRXaWR0aD4wJiZvLm9mZnNldEhlaWdodD4wKXtaZShlLHtmb3JjZVJlcGxheTppfSk7cmV0dXJufSsrYT49dXx8KGE8PTQ/cmVxdWVzdEFuaW1hdGlvbkZyYW1lKHMpOnNldFRpbWVvdXQocywzMikpfX1zKCl9ZnVuY3Rpb24gSHQoZSl7ci5yZXNpemVUaW1lciYmKGNsZWFyVGltZW91dChyLnJlc2l6ZVRpbWVyKSxyLnJlc2l6ZVRpbWVyPW51bGwpO3ZhciB0PWU/MDoxMDA7ci5yZXNpemVUaW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ci5yZXNpemVUaW1lcj1udWxsLHJlcXVlc3RBbmltYXRpb25GcmFtZShXZCl9LHQpfWZ1bmN0aW9uIFdkKCl7aWYoci50ZXJtaW5hbCl7dmFyIGU9ci50ZXJtaW5hbEF1dG9Gb2xsb3d8fHZhKCk7ZSYmRnQoImZvcmNlIiksYWkoci50ZXJtaW5hbC5jb2xzLHIudGVybWluYWwucm93cyl9fWZ1bmN0aW9uIGVuKGUpe3Iud29ya2luZ0Rpcj1lO3RyeXtsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgid2FuZC13b3JraW5nLWRpciIsZSl9Y2F0Y2h7fXpkKGUpfWZ1bmN0aW9uIGRhKGUpe2ZldGNoKCIvYXBpL3JlY2VudC1wYXRocyIse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiB0Lmpzb24oKX0pLnRoZW4oZnVuY3Rpb24odCl7ZSh0fHxbXSl9KS5jYXRjaChmdW5jdGlvbigpe2UoW10pfSl9ZnVuY3Rpb24gemQoZSl7cmV0dXJuIGZldGNoKCIvYXBpL3JlY2VudC1wYXRocyIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkoe3BhdGg6ZX0pfSkuY2F0Y2goZnVuY3Rpb24oKXt9KX1mdW5jdGlvbiBmYShlKXt2YXIgdD1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24obil7cmV0dXJuIG4uaWQ9PT1lfSk7dCYmdC5zdGF0dXMhPT0icnVubmluZyImJiF1ZSh0KT9CbyhlKTp6dChlKSxVdCgpfWZ1bmN0aW9uIFVkKGUpe3ZhciB0PWUudGFyZ2V0O2lmKCEoIXR8fCEodCBpbnN0YW5jZW9mIEVsZW1lbnQpKSl7dmFyIG49dC5jbG9zZXN0KCIuc2lkZWJhci1jb2xsYXBzZWQtdGlsZSIpO2lmKG4mJm4gaW5zdGFuY2VvZiBIVE1MRWxlbWVudCl7aWYobi5kYXRhc2V0LmNvbGxhcHNlZE5ld1Nlc3Npb24pe2UucHJldmVudERlZmF1bHQoKSxlLnN0b3BQcm9wYWdhdGlvbigpLG91KCk7cmV0dXJufWlmKG4uZGF0YXNldC5jb2xsYXBzZWRTZXNzaW9uSWQpe2UucHJldmVudERlZmF1bHQoKSxlLnN0b3BQcm9wYWdhdGlvbigpLGZhKG4uZGF0YXNldC5jb2xsYXBzZWRTZXNzaW9uSWQpO3JldHVybn1pZihuLmRhdGFzZXQuY29sbGFwc2VkSGlzdG9yeUlkKXtlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKTt2YXIgaT1uLmRhdGFzZXQuY29sbGFwc2VkSGlzdG9yeUlkLGE9bi5kYXRhc2V0LmN3ZHx8IiI7YmkoaSxhKS50aGVuKGZ1bmN0aW9uKHYpe3YmJnYuaWQmJihyLnNlbGVjdGVkSWQ9di5pZCx3ZSgpLHIuZHJhZnRzW3YuaWRdPSIiLGduKCkudGhlbihmdW5jdGlvbigpe3p0KHYuaWQpfSkpfSk7cmV0dXJufX12YXIgdT10LmNsb3Nlc3QoIiNjbGF1ZGUtaGlzdG9yeS10b2dnbGUiKTtpZih1KXtlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKSxyLmNsYXVkZUhpc3RvcnlFeHBhbmRlZD0hci5jbGF1ZGVIaXN0b3J5RXhwYW5kZWQsci5jbGF1ZGVIaXN0b3J5RXhwYW5kZWQmJiFyLmNsYXVkZUhpc3RvcnlMb2FkZWQmJnRpKCksbWUoKTtyZXR1cm59dmFyIHM9dC5jbG9zZXN0KCJbZGF0YS1hY3Rpb25dIik7aWYocyYmcyBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KXtpZihlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKSxzLmRhdGFzZXQuYWN0aW9uPT09InRvZ2dsZS1tYW5hZ2UtbW9kZSIpcmQoKTtlbHNlIGlmKHMuZGF0YXNldC5hY3Rpb249PT0ic2VsZWN0LWFsbC12aXNpYmxlIil2cygpO2Vsc2UgaWYocy5kYXRhc2V0LmFjdGlvbj09PSJjbGVhci1zZWxlY3Rpb24iKWFkKCk7ZWxzZSBpZihzLmRhdGFzZXQuYWN0aW9uPT09ImRlbGV0ZS1zZWxlY3RlZCIpdWQoKTtlbHNlIGlmKHMuZGF0YXNldC5hY3Rpb249PT0idG9nZ2xlLXNlbGVjdGlvbiIpdnIocy5kYXRhc2V0LmtpbmQscy5kYXRhc2V0LmlkKTtlbHNlIGlmKHMuZGF0YXNldC5hY3Rpb249PT0iZGVsZXRlLXNlc3Npb24iJiZzLmRhdGFzZXQuc2Vzc2lvbklkKShmdW5jdGlvbih2KXt4bigiXHU3ODZFXHU4QkE0XHU1MjIwXHU5NjY0XHU4RkQ5XHU0RTJBXHU0RjFBXHU4QkREXHU1NDE3XHVGRjFGXHU2QjY0XHU2NENEXHU0RjVDXHU2NUUwXHU2Q0Q1XHU2NEE0XHU5NTAwXHUzMDAyIix7dGl0bGU6Ilx1NTIyMFx1OTY2NFx1NEYxQVx1OEJERCJ9KS50aGVuKGZ1bmN0aW9uKGgpe2gmJmJvKHYpfSl9KShzLmRhdGFzZXQuc2Vzc2lvbklkKTtlbHNlIGlmKHMuZGF0YXNldC5hY3Rpb249PT0iZGVsZXRlLWhpc3RvcnkiJiZzLmRhdGFzZXQuY2xhdWRlU2Vzc2lvbklkKShmdW5jdGlvbih2LGgpe3huKCJcdTc4NkVcdThCQTRcdTk2OTBcdTg1Q0ZcdThGRDlcdTY3NjEgQ2xhdWRlIFx1NTM4Nlx1NTNGMlx1NTQxN1x1RkYxRiIse3RpdGxlOiJcdTk2OTBcdTg1Q0ZcdTUzODZcdTUzRjJcdTRGMUFcdThCREQiLG9rTGFiZWw6Ilx1OTY5MFx1ODVDRiJ9KS50aGVuKGZ1bmN0aW9uKGcpe2cmJkVvKHYsaCl9KX0pKHMuZGF0YXNldC5jbGF1ZGVTZXNzaW9uSWQscy5jbG9zZXN0KCIuc2Vzc2lvbi1pdGVtIikpO2Vsc2UgaWYocy5kYXRhc2V0LmFjdGlvbj09PSJ0b2dnbGUtaGlzdG9yeS1kaXJlY3RvcnkiJiZzLmRhdGFzZXQuY3dkKXt2YXIgbz1zLmRhdGFzZXQuY3dkO3IuY2xhdWRlSGlzdG9yeUV4cGFuZGVkRGlyc1tvXT0hci5jbGF1ZGVIaXN0b3J5RXhwYW5kZWREaXJzW29dLG1lKCl9ZWxzZSBpZihzLmRhdGFzZXQuYWN0aW9uPT09ImRlbGV0ZS1oaXN0b3J5LWRpcmVjdG9yeSImJnMuZGF0YXNldC5jd2QpKGZ1bmN0aW9uKHYsaCl7dmFyIGc9VXAodiksbT1SbigpLmZpbHRlcihmdW5jdGlvbih5KXtyZXR1cm4geS5jd2Q9PT12fSkubGVuZ3RoO3huKCJcdTc4NkVcdThCQTRcdTZFMDVcdTdBN0FcdTZCNjRcdTc2RUVcdTVGNTVcdTRFMEJcdTc2ODQgIittKyIgXHU2NzYxIENsYXVkZSBcdTUzODZcdTUzRjJcdTU0MTdcdUZGMUYiLHt0aXRsZToiXHU2RTA1XHU3QTdBXHU3NkVFXHU1RjU1XHU1Mzg2XHU1M0YyIixva0xhYmVsOiJcdTZFMDVcdTdBN0EifSkudGhlbihmdW5jdGlvbih5KXt5JiYoRm8oZywhMCksenAodixoLGcpKX0pfSkocy5kYXRhc2V0LmN3ZCxzKTtlbHNlIGlmKHMuZGF0YXNldC5hY3Rpb249PT0iY2xlYXItYWxsLWhpc3RvcnkiKXNkKCk7ZWxzZSBpZihzLmRhdGFzZXQuYWN0aW9uPT09InRvZ2dsZS1hcmNoaXZlZC1ncm91cCIpci5hcmNoaXZlZEV4cGFuZGVkPSFyLmFyY2hpdmVkRXhwYW5kZWQsbWUoKTtlbHNlIGlmKHMuZGF0YXNldC5hY3Rpb249PT0icmVzdW1lIiYmcy5kYXRhc2V0LnNlc3Npb25JZClKcChzKTtlbHNlIGlmKHMuZGF0YXNldC5hY3Rpb249PT0icmVzdW1lLWhpc3RvcnkiJiZzLmRhdGFzZXQuY2xhdWRlU2Vzc2lvbklkKSRwKHMpO2Vsc2UgaWYocy5kYXRhc2V0LmFjdGlvbj09PSJyZXN1bWUtY29kZXgtaGlzdG9yeSImJnMuZGF0YXNldC5jbGF1ZGVTZXNzaW9uSWQpR3Aocyk7ZWxzZSBpZihzLmRhdGFzZXQuYWN0aW9uPT09ImRlbGV0ZS1jb2RleC1oaXN0b3J5IiYmcy5kYXRhc2V0LmNsYXVkZVNlc3Npb25JZClRcChzKTtlbHNlIGlmKHMuZGF0YXNldC5hY3Rpb249PT0idG9nZ2xlLWNvZGV4LWhpc3RvcnktZGlyZWN0b3J5IiYmcy5kYXRhc2V0LmN3ZCl7dmFyIGw9cy5kYXRhc2V0LmN3ZDtyLmNvZGV4SGlzdG9yeUV4cGFuZGVkRGlyc1tsXT0hci5jb2RleEhpc3RvcnlFeHBhbmRlZERpcnNbbF0sbWUoKX1lbHNlIHMuZGF0YXNldC5hY3Rpb249PT0id29ya3RyZWUtbWVyZ2UiJiZzLmRhdGFzZXQuc2Vzc2lvbklkP2dsKHMuZGF0YXNldC5zZXNzaW9uSWQpOnMuZGF0YXNldC5hY3Rpb249PT0id29ya3RyZWUtY2xlYW51cCImJnMuZGF0YXNldC5zZXNzaW9uSWQmJmhsKHMuZGF0YXNldC5zZXNzaW9uSWQpO3JldHVybn12YXIgYz10LmNsb3Nlc3QoIi5zZXNzaW9uLWl0ZW0iKTtpZihjKXtpZihyLnNlc3Npb25zTWFuYWdlTW9kZSl7Yy5kYXRhc2V0LnNlc3Npb25JZD92cigic2Vzc2lvbnMiLGMuZGF0YXNldC5zZXNzaW9uSWQpOmMuZGF0YXNldC5jbGF1ZGVIaXN0b3J5SWQmJnZyKCJoaXN0b3J5IixjLmRhdGFzZXQuY2xhdWRlSGlzdG9yeUlkKTtyZXR1cm59aWYoYy5jbGFzc0xpc3QuY29udGFpbnMoInN3aXBlZCIpKXtJcigpO3JldHVybn1pZih3bylyZXR1cm47aWYoYy5kYXRhc2V0LnNlc3Npb25JZClmYShjLmRhdGFzZXQuc2Vzc2lvbklkKTtlbHNlIGlmKGMuZGF0YXNldC5jbGF1ZGVIaXN0b3J5SWQpe3ZhciBmPWMuZGF0YXNldC5jbGF1ZGVIaXN0b3J5SWQsZD1jLmRhdGFzZXQuY3dkO2JpKGYsZCkudGhlbihmdW5jdGlvbih2KXt2JiZ2LmlkJiYoci5zZWxlY3RlZElkPXYuaWQsd2UoKSxyLmRyYWZ0c1t2LmlkXT0iIixnbigpLnRoZW4oZnVuY3Rpb24oKXt6dCh2LmlkKSxVdCgpfSkpfSl9fX19ZnVuY3Rpb24gVmQoZSl7aWYoIShlLmtleSE9PSJFbnRlciImJmUua2V5IT09IiAiKSl7dmFyIHQ9ZS50YXJnZXQuY2xvc2VzdCgiLnNlc3Npb24taXRlbSIpO2lmKHQpe2lmKGUucHJldmVudERlZmF1bHQoKSxyLnNlc3Npb25zTWFuYWdlTW9kZSl7dC5kYXRhc2V0LnNlc3Npb25JZD92cigic2Vzc2lvbnMiLHQuZGF0YXNldC5zZXNzaW9uSWQpOnQuZGF0YXNldC5jbGF1ZGVIaXN0b3J5SWQmJnZyKCJoaXN0b3J5Iix0LmRhdGFzZXQuY2xhdWRlSGlzdG9yeUlkKTtyZXR1cm59aWYodC5kYXRhc2V0LnNlc3Npb25JZClmYSh0LmRhdGFzZXQuc2Vzc2lvbklkKTtlbHNlIGlmKHQuZGF0YXNldC5jbGF1ZGVIaXN0b3J5SWQpe3ZhciBuPXQuZGF0YXNldC5jbGF1ZGVIaXN0b3J5SWQsaT10LmRhdGFzZXQuY3dkO2JpKG4saSkudGhlbihmdW5jdGlvbihhKXthJiZhLmlkJiYoci5zZWxlY3RlZElkPWEuaWQsd2UoKSxyLmRyYWZ0c1thLmlkXT0iIixnbigpLnRoZW4oZnVuY3Rpb24oKXt6dChhLmlkKSxVdCgpfSkpfSl9fX19ZnVuY3Rpb24gcGEoZSx0KXt2YXIgbj1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oYSl7cmV0dXJuIGEuaWQ9PT1yLnNlbGVjdGVkSWR9KTtpZihuKXt2YXIgaT1uW2VdO2lmKCFpKXtrKCJcdTVGNTNcdTUyNERcdTRGMUFcdThCRERcdTZDQTFcdTY3MDlcdTUzRUZcdTU5MERcdTUyMzZcdTc2ODRcdTUxODVcdTVCQjlcdTMwMDIiLCJlcnJvciIpO3JldHVybn1fcihTdHJpbmcoaSksbnVsbCxmdW5jdGlvbigpe2sodHx8Ilx1NURGMlx1NTkwRFx1NTIzNiIsImluZm8iKX0pfX1mdW5jdGlvbiBrdCgpe3JldHVybiFyLnRlcm1pbmFsfHwhci50ZXJtaW5hbC5lbGVtZW50P251bGw6KHIudGVybWluYWxWaWV3cG9ydEVsPXIudGVybWluYWwuZWxlbWVudCxyLnRlcm1pbmFsVmlld3BvcnRFbCl9ZnVuY3Rpb24gVm4oKXtyLnRlcm1pbmFsU2Nyb2xsSWRsZVRpbWVyJiYoY2xlYXJUaW1lb3V0KHIudGVybWluYWxTY3JvbGxJZGxlVGltZXIpLHIudGVybWluYWxTY3JvbGxJZGxlVGltZXI9bnVsbCl9ZnVuY3Rpb24gbXQoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVybWluYWwtanVtcC1ib3R0b20iKSx0PSEhci5zZWxlY3RlZElkJiZyLmN1cnJlbnRWaWV3PT09InRlcm1pbmFsIiYmIXIudGVybWluYWxBdXRvRm9sbG93JiYhT3MoKTtyLnNob3dUZXJtaW5hbEp1bXBUb0JvdHRvbT10LGUmJmUuY2xhc3NMaXN0LnRvZ2dsZSgidmlzaWJsZSIsdCk7dmFyIG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpO24mJm4uY2xhc3NMaXN0LnRvZ2dsZSgiaGFzLWp1bXAtYnRuIix0KX1mdW5jdGlvbiB2YSgpe3ZhciBlPWt0KCk7aWYoIWUpcmV0dXJuITA7dmFyIHQ9ZS5zY3JvbGxIZWlnaHQtZS5jbGllbnRIZWlnaHQtZS5zY3JvbGxUb3A7cmV0dXJuIHQ8PXIudGVybWluYWxTY3JvbGxUaHJlc2hvbGR9ZnVuY3Rpb24gT3MoKXt2YXIgZT1rdCgpO2lmKCFlKXJldHVybiEwO3ZhciB0PWUuc2Nyb2xsSGVpZ2h0LWUuY2xpZW50SGVpZ2h0LWUuc2Nyb2xsVG9wO3JldHVybiB0PD0yfWZ1bmN0aW9uIFBzKGUpe2lmKHIudGVybWluYWwpe3ZhciB0PWt0KCk7aWYodCl7dmFyIG49ZT81MDA6MTIwO3IudGVybWluYWxQcm9ncmFtbWF0aWNTY3JvbGxVbnRpbD1NYXRoLm1heChyLnRlcm1pbmFsUHJvZ3JhbW1hdGljU2Nyb2xsVW50aWwsRGF0ZS5ub3coKStuKSxlP3Quc2Nyb2xsVG8oe3RvcDp0LnNjcm9sbEhlaWdodCxiZWhhdmlvcjoic21vb3RoIn0pOnQuc2Nyb2xsVG9wPXQuc2Nyb2xsSGVpZ2h0fX19ZnVuY3Rpb24gbWEoKXtyLnRlcm1pbmFsQXV0b0ZvbGxvdz0hMSxWbigpLHIudGVybWluYWxQcm9ncmFtbWF0aWNTY3JvbGxVbnRpbD0wLHIudGVybWluYWwmJiJfc2hvdWxkU2Nyb2xsVG9Cb3R0b20iaW4gci50ZXJtaW5hbCYmKHIudGVybWluYWwuX3Nob3VsZFNjcm9sbFRvQm90dG9tPSExKSxtdCgpfWZ1bmN0aW9uIEZ0KGUpe2lmKHIudGVybWluYWwpe3ZhciB0PWU9PT0iZm9yY2UiO2lmKHQpe3IudGVybWluYWxBdXRvRm9sbG93PSEwLFZuKCksUHMoITEpLG10KCk7cmV0dXJufWlmKCFyLnRlcm1pbmFsQXV0b0ZvbGxvdyl7bXQoKTtyZXR1cm59UHMoITEpLG10KCl9fWZ1bmN0aW9uIEtkKGUpe3ZhciB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3QuY2xhc3NOYW1lPSJ0ZXJtaW5hbC1zY3JvbGxiYXIiO3ZhciBuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO24uY2xhc3NOYW1lPSJ0ZXJtaW5hbC1zY3JvbGxiYXItdHJhY2siO3ZhciBpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2kuY2xhc3NOYW1lPSJ0ZXJtaW5hbC1zY3JvbGxiYXItdGh1bWIiLG4uYXBwZW5kQ2hpbGQoaSksdC5hcHBlbmRDaGlsZChuKSxlLmFwcGVuZENoaWxkKHQpLHIudGVybWluYWxTY3JvbGxiYXJFbD10LHIudGVybWluYWxTY3JvbGxiYXJUaHVtYkVsPWksci50ZXJtaW5hbFNjcm9sbGJhckhpZGVUaW1lcj1udWxsLHIudGVybWluYWxTY3JvbGxiYXJEcmFnZ2luZz0hMSxyLnRlcm1pbmFsU2Nyb2xsYmFyUmFmUGVuZGluZz0hMTtmdW5jdGlvbiBhKCl7ci50ZXJtaW5hbFNjcm9sbGJhckhpZGVUaW1lciYmKGNsZWFyVGltZW91dChyLnRlcm1pbmFsU2Nyb2xsYmFySGlkZVRpbWVyKSxyLnRlcm1pbmFsU2Nyb2xsYmFySGlkZVRpbWVyPW51bGwpLHQuY2xhc3NMaXN0LmFkZCgidmlzaWJsZSIpfWZ1bmN0aW9uIHUoKXtyLnRlcm1pbmFsU2Nyb2xsYmFyRHJhZ2dpbmd8fChyLnRlcm1pbmFsU2Nyb2xsYmFySGlkZVRpbWVyJiZjbGVhclRpbWVvdXQoci50ZXJtaW5hbFNjcm9sbGJhckhpZGVUaW1lciksci50ZXJtaW5hbFNjcm9sbGJhckhpZGVUaW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ci50ZXJtaW5hbFNjcm9sbGJhckhpZGVUaW1lcj1udWxsLHIudGVybWluYWxTY3JvbGxiYXJEcmFnZ2luZ3x8dC5jbGFzc0xpc3QucmVtb3ZlKCJ2aXNpYmxlIil9LDE1MDApKX1mdW5jdGlvbiBzKCl7ci50ZXJtaW5hbFNjcm9sbGJhclJhZlBlbmRpbmc9ITE7dmFyIG09a3QoKTtpZihtKXt2YXIgeT1tLnNjcm9sbEhlaWdodCx3PW0uY2xpZW50SGVpZ2h0O2lmKHk8PXcpe3QuY2xhc3NMaXN0LnJlbW92ZSgidmlzaWJsZSIpO3JldHVybn12YXIgRT1uLmNsaWVudEhlaWdodCxCPU1hdGgubWF4KDI4LHcveSpFKSxGPXktdyx4PW0uc2Nyb2xsVG9wL0YsUz14KihFLUIpO2kuc3R5bGUuaGVpZ2h0PUIrInB4IixpLnN0eWxlLnRvcD1TKyJweCJ9fWZ1bmN0aW9uIG8oKXtyLnRlcm1pbmFsU2Nyb2xsYmFyUmFmUGVuZGluZ3x8KHIudGVybWluYWxTY3JvbGxiYXJSYWZQZW5kaW5nPSEwLHJlcXVlc3RBbmltYXRpb25GcmFtZShzKSl9dmFyIGw9a3QoKTtsJiZsLmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsZnVuY3Rpb24oKXthKCksbygpLHUoKX0se3Bhc3NpdmU6ITB9KSxuLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsZnVuY3Rpb24obSl7aWYobS50YXJnZXQhPT1pKXttLnByZXZlbnREZWZhdWx0KCk7dmFyIHk9a3QoKTtpZih5KXt2YXIgdz1uLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLEU9KG0uY2xpZW50WS13LnRvcCkvdy5oZWlnaHQsQj15LnNjcm9sbEhlaWdodC15LmNsaWVudEhlaWdodDt5LnNjcm9sbFRvcD1FKkJ9fX0pO3ZhciBjPTAsZj0wO2kuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIixmdW5jdGlvbihtKXttLnByZXZlbnREZWZhdWx0KCksbS5zdG9wUHJvcGFnYXRpb24oKSxyLnRlcm1pbmFsU2Nyb2xsYmFyRHJhZ2dpbmc9ITAsaS5jbGFzc0xpc3QuYWRkKCJkcmFnZ2luZyIpLGM9bS5jbGllbnRZO3ZhciB5PWt0KCk7Zj15P3kuc2Nyb2xsVG9wOjAsZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIixkKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIix2KX0pO2Z1bmN0aW9uIGQobSl7bS5wcmV2ZW50RGVmYXVsdCgpO3ZhciB5PWt0KCk7aWYoeSl7dmFyIHc9bi5jbGllbnRIZWlnaHQsRT15LnNjcm9sbEhlaWdodCxCPXkuY2xpZW50SGVpZ2h0LEY9RS1CO2lmKCEoRjw9MCkpe3ZhciB4PU1hdGgubWF4KDI4LEIvRSp3KSxTPXcteDtpZighKFM8PTApKXt2YXIgXz1tLmNsaWVudFktYyxWPV8vUypGO3kuc2Nyb2xsVG9wPWYrVn19fX1mdW5jdGlvbiB2KCl7ci50ZXJtaW5hbFNjcm9sbGJhckRyYWdnaW5nPSExLGkuY2xhc3NMaXN0LnJlbW92ZSgiZHJhZ2dpbmciKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLGQpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHYpLHUoKX1pLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLGZ1bmN0aW9uKG0pe2lmKG0udG91Y2hlcy5sZW5ndGg9PT0xKXttLnN0b3BQcm9wYWdhdGlvbigpLHIudGVybWluYWxTY3JvbGxiYXJEcmFnZ2luZz0hMCxpLmNsYXNzTGlzdC5hZGQoImRyYWdnaW5nIiksYz1tLnRvdWNoZXNbMF0uY2xpZW50WTt2YXIgeT1rdCgpO2Y9eT95LnNjcm9sbFRvcDowLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsaCx7cGFzc2l2ZTohMX0pLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIixnKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaGNhbmNlbCIsZyl9fSx7cGFzc2l2ZTohMX0pO2Z1bmN0aW9uIGgobSl7aWYobS50b3VjaGVzLmxlbmd0aD09PTEpe20ucHJldmVudERlZmF1bHQoKTt2YXIgeT1rdCgpO2lmKHkpe3ZhciB3PW4uY2xpZW50SGVpZ2h0LEU9eS5zY3JvbGxIZWlnaHQsQj15LmNsaWVudEhlaWdodCxGPUUtQjtpZighKEY8PTApKXt2YXIgeD1NYXRoLm1heCgyOCxCL0UqdyksUz13LXg7aWYoIShTPD0wKSl7dmFyIF89bS50b3VjaGVzWzBdLmNsaWVudFktYyxWPV8vUypGO3kuc2Nyb2xsVG9wPWYrVn19fX19ZnVuY3Rpb24gZygpe3IudGVybWluYWxTY3JvbGxiYXJEcmFnZ2luZz0hMSxpLmNsYXNzTGlzdC5yZW1vdmUoImRyYWdnaW5nIiksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIixoKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsZyksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hjYW5jZWwiLGcpLHUoKX10LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZW50ZXIiLGZ1bmN0aW9uKCl7YSgpfSksdC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWxlYXZlIixmdW5jdGlvbigpe3IudGVybWluYWxTY3JvbGxiYXJEcmFnZ2luZ3x8dSgpfSksbygpfWZ1bmN0aW9uIEpkKGUpe3JldHVybiBlPDQzNTI/ITE6ZT49NDM1MiYmZTw9NDQ0N3x8ZT49OTAwMSYmZTw9OTAwMnx8ZT49MTE5MDQmJmU8PTEyMzUwfHxlPj0xMjM1MyYmZTw9MTMzMTF8fGU+PTEzMzEyJiZlPD0xOTkwM3x8ZT49MTk5NjgmJmU8PTQwOTU5fHxlPj00MDk2MCYmZTw9NDIxOTF8fGU+PTQ0MDMyJiZlPD01NTIwM3x8ZT49NjM3NDQmJmU8PTY0MjU1fHxlPj02NTA3MiYmZTw9NjUxMDN8fGU+PTY1MjgwJiZlPD02NTM3Nnx8ZT49NjU1MDQmJmU8PTY1NTEwfHxlPj0xMjY5NzYmJmU8PTEyOTUzNXx8ZT49MTMxMDcyJiZlPD0xOTY2MDV8fGU+PTE5NjYwOCYmZTw9MjYyMTQxfXZhciBIcz0iXHUyMDYwIjtmdW5jdGlvbiBfcygpe3JldHVybnttb2RlOiJub3JtYWwifX1mdW5jdGlvbiBHZChlKXtyZXR1cm4hL1teXHgwMC1ceDdmXS8udGVzdChlKSYmZS5pbmRleE9mKCJceDFCIik9PT0tMX1mdW5jdGlvbiBZZChlLHQpe2lmKCFlKXJldHVybiIiO3ZhciBuPVN0cmluZyhlKTtpZih0Lm1vZGU9PT0ibm9ybWFsIiYmR2QobikpcmV0dXJuIG47Zm9yKHZhciBpPSIiLGE9MDthPG4ubGVuZ3RoO2ErKyl7dmFyIHU9bi5jaGFyQ29kZUF0KGEpLHM9dSxvPTE7aWYodT49NTUyOTYmJnU8PTU2MzE5JiZhKzE8bi5sZW5ndGgpe3ZhciBsPW4uY2hhckNvZGVBdChhKzEpO2w+PTU2MzIwJiZsPD01NzM0MyYmKHM9KHUtNTUyOTYpKjEwMjQrKGwtNTYzMjApKzY1NTM2LG89Mil9dmFyIGM9bz09PTI/bi5zdWJzdHIoYSwyKTpuLmNoYXJBdChhKTtzd2l0Y2godC5tb2RlKXtjYXNlIm5vcm1hbCI6cz09PTI3Pyh0Lm1vZGU9ImVzYyIsaSs9Yyk6cz09PTE1NT8odC5tb2RlPSJjc2kiLGkrPWMpOnM9PT0xNTd8fHM9PT0xNDR8fHM9PT0xNTh8fHM9PT0xNTk/KHQubW9kZT0ic3RyaW5nIixpKz1jKTooaSs9YyxKZChzKSYmKGkrPUhzKSk7YnJlYWs7Y2FzZSJlc2MiOmkrPWMscz09PTkxP3QubW9kZT0iY3NpIjpzPT09OTN8fHM9PT04MHx8cz09PTg4fHxzPT09OTR8fHM9PT05NT90Lm1vZGU9InN0cmluZyI6dC5tb2RlPSJub3JtYWwiO2JyZWFrO2Nhc2UiY3NpIjppKz1jLHM+PTY0JiZzPD0xMjYmJih0Lm1vZGU9Im5vcm1hbCIpO2JyZWFrO2Nhc2Uic3RyaW5nIjppKz1jLHM9PT03fHxzPT09MTU2P3QubW9kZT0ibm9ybWFsIjpzPT09MjcmJih0Lm1vZGU9InN0cmluZy1lc2MiKTticmVhaztjYXNlInN0cmluZy1lc2MiOmkrPWMscz09PTkyP3QubW9kZT0ibm9ybWFsIjp0Lm1vZGU9InN0cmluZyI7YnJlYWt9YSs9by0xfXJldHVybiBpfXZhciB1aT0iXHgxQls/MjAyNmgiLGdhPSJceDFCWz8yMDI2bCIsUWQ9MjAwLCRkPTI1NioxMDI0O2Z1bmN0aW9uIFhkKGUpe2lmKCFlfHxyLnN5bmNPdXRwdXRCdWZmZXI9PT1udWxsJiZlLmluZGV4T2YodWkpPT09LTEpcmV0dXJuIGU7Zm9yKHZhciB0PSIiLG49MDtuPGUubGVuZ3RoOylpZihyLnN5bmNPdXRwdXRCdWZmZXIhPT1udWxsKXt2YXIgaT1lLmluZGV4T2YoZ2Esbik7aWYoaT09PS0xKXJldHVybiByLnN5bmNPdXRwdXRCdWZmZXIrPWUuc2xpY2UobiksKHIuc3luY091dHB1dEJ1ZmZlci5sZW5ndGg+JGR8fERhdGUubm93KCk+ci5zeW5jT3V0cHV0RGVhZGxpbmUpJiYodCs9ci5zeW5jT3V0cHV0QnVmZmVyLHIuc3luY091dHB1dEJ1ZmZlcj1udWxsLHIuc3luY0ZyYW1pbmdSZXNpZHVlPSEwKSx0O3Iuc3luY091dHB1dEJ1ZmZlcis9ZS5zbGljZShuLGkrZ2EubGVuZ3RoKSx0Kz1yLnN5bmNPdXRwdXRCdWZmZXIsci5zeW5jT3V0cHV0QnVmZmVyPW51bGwsbj1pK2dhLmxlbmd0aH1lbHNle3ZhciBhPWUuaW5kZXhPZih1aSxuKTtpZihhPT09LTEpcmV0dXJuIHQrPWUuc2xpY2UobiksdDt0Kz1lLnNsaWNlKG4sYSksci5zeW5jT3V0cHV0QnVmZmVyPXVpLHIuc3luY091dHB1dERlYWRsaW5lPURhdGUubm93KCkrUWQsbj1hK3VpLmxlbmd0aH1yZXR1cm4gdH1mdW5jdGlvbiBJZygpe2lmKHIuc3luY091dHB1dEJ1ZmZlciE9PW51bGwpe3ZhciBlPXIuc3luY091dHB1dEJ1ZmZlcjtyZXR1cm4gci5zeW5jT3V0cHV0QnVmZmVyPW51bGwsZX1yZXR1cm4iIn1mdW5jdGlvbiBLbihlLHQpe2lmKCEoIWV8fHQ9PW51bGwpKXtyLndpZGVQYXJzZXJTdGF0ZXx8KHIud2lkZVBhcnNlclN0YXRlPV9zKCkpO3ZhciBuPVlkKHQsci53aWRlUGFyc2VyU3RhdGUpLGk9WGQobiksYT1yLnRlcm1pbmFsQXV0b0ZvbGxvdyE9PSExOyJfc2hvdWxkU2Nyb2xsVG9Cb3R0b20iaW4gZSYmKGUuX3Nob3VsZFNjcm9sbFRvQm90dG9tPWEpLGkmJmUud3JpdGUoaSksIl9zaG91bGRTY3JvbGxUb0JvdHRvbSJpbiBlJiYoZS5fc2hvdWxkU2Nyb2xsVG9Cb3R0b209YSksYSYmKHIudGVybWluYWxQcm9ncmFtbWF0aWNTY3JvbGxVbnRpbD1NYXRoLm1heChyLnRlcm1pbmFsUHJvZ3JhbW1hdGljU2Nyb2xsVW50aWwsRGF0ZS5ub3coKSsxMjApKSxsZih0KX19ZnVuY3Rpb24gaGEoKXtyLndpZGVQYXJzZXJTdGF0ZT1fcygpfWZ1bmN0aW9uIFpkKCl7dHlwZW9mIGRvY3VtZW50PiJ1Inx8ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY29weSIsZnVuY3Rpb24oZSl7dmFyIHQ9d2luZG93LmdldFNlbGVjdGlvbiYmd2luZG93LmdldFNlbGVjdGlvbigpO2lmKCEoIXR8fHQuaXNDb2xsYXBzZWQpKXt2YXIgbj10LmFuY2hvck5vZGUsaT1uJiZuLm5vZGVUeXBlPT09Mz9uLnBhcmVudE5vZGU6bixhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKTtpZighKCFhfHwhaXx8IWEuY29udGFpbnMoaSkpKXt2YXIgdT10LnRvU3RyaW5nKCkscz11LnNwbGl0KGAKYCkubWFwKGZ1bmN0aW9uKG8pe3JldHVybiBvLnNwbGl0KEhzKS5qb2luKCIiKS5yZXBsYWNlKC9bIFx0XSskLywiIil9KS5qb2luKGAKYCk7cyE9PXUmJmUuY2xpcGJvYXJkRGF0YSYmKGUuY2xpcGJvYXJkRGF0YS5zZXREYXRhKCJ0ZXh0L3BsYWluIixzKSxlLnByZXZlbnREZWZhdWx0KCkpfX19KX1aZCgpO3ZhciBOcz0xNTAsanM9MzAsZWY9MTYwKjEwMjQsdGY9MTkyKjEwMjQ7ZnVuY3Rpb24gUnMoZSl7aWYoIWV8fGUubGVuZ3RoPD10ZilyZXR1cm4gZTt2YXIgdD1lLmxlbmd0aCxuPWZ1bmN0aW9uKHgpe2lmKCEodHlwZW9mIHI+InUifHwhcikpe3ZhciBTPXIudGVybWluYWxPdXRwdXRNYXJrZXJ8MDtpZighKFM8PTApKXt2YXIgXz10LXg7ci50ZXJtaW5hbE91dHB1dE1hcmtlcj1TPl8/Uy1fOjB9fX0saT1lLmxlbmd0aC1lZjtpZihpPjAmJmk8ZS5sZW5ndGgpe3ZhciBhPWUuY2hhckNvZGVBdChpKTthPj01NjMyMCYmYTw9NTczNDMmJmkrK31mb3IodmFyIHU9NDA5NixzPU1hdGgubWluKGkrdSxlLmxlbmd0aCksbz1pO288cztvKyspaWYoZS5jaGFyQ29kZUF0KG8pPT09MTApe3ZhciBsPWUuc2xpY2UobysxKTtyZXR1cm4gbihsLmxlbmd0aCksbH1mb3IodmFyIGM9TWF0aC5tYXgoMCxpLTI1NiksZj0tMSxkPWktMTtkPj1jO2QtLSl7dmFyIHY9ZS5jaGFyQ29kZUF0KGQpO2lmKHY9PT0yNyl7Zj1kO2JyZWFrfWlmKHY9PT03fHx2Pj02NCYmdjw9MTI2KWJyZWFrfWlmKGYhPT0tMSl7Zm9yKHZhciBoPSExLGc9ZisxO2c8aTtnKyspe3ZhciBtPWUuY2hhckNvZGVBdChnKTtpZihtPT09Nyl7aD0hMDticmVha31pZihtPj02NCYmbTw9MTI2KXtoPSEwO2JyZWFrfX1pZighaClmb3IodmFyIHk9TWF0aC5taW4oaSsyNTYsZS5sZW5ndGgpLHc9aTt3PHk7dysrKXt2YXIgRT1lLmNoYXJDb2RlQXQodyk7aWYoRT09PTd8fEU+PTY0JiZFPD0xMjYpe3ZhciBCPWUuc2xpY2UodysxKTtyZXR1cm4gbihCLmxlbmd0aCksQn19fXZhciBGPWUuc2xpY2UoaSk7cmV0dXJuIG4oRi5sZW5ndGgpLEZ9ZnVuY3Rpb24gc2koKXtpZihyLnRlcm1pbmFsKXtpZih0eXBlb2Ygci50ZXJtaW5hbC5yZXNldD09ImZ1bmN0aW9uIil7ci50ZXJtaW5hbC5yZXNldCgpLGhhKCksci5zeW5jT3V0cHV0QnVmZmVyPW51bGwsci5zeW5jT3V0cHV0RGVhZGxpbmU9MDtyZXR1cm59dHlwZW9mIHIudGVybWluYWwud3JpdGU9PSJmdW5jdGlvbiImJnIudGVybWluYWwud3JpdGUoIlx4MUJjIiksaGEoKSxyLnN5bmNPdXRwdXRCdWZmZXI9bnVsbCxyLnN5bmNPdXRwdXREZWFkbGluZT0wfX1yLl9yZXN5bmNTdGF0c1dpbmRvd1N0YXJ0PTAsci5fcmVzeW5jU3RhdHNDb3VudD0wLHIuX3Jlc3luY0xhc3RXYXJuQXQ9MDt2YXIgbmY9NWUzLHJmPTEyLGFmPTNlNDtyLl9yZXN5bmNJblByb2dyZXNzPSExO2Z1bmN0aW9uIFNuKGUpe2lmKCFyLnRlcm1pbmFsfHwhci50ZXJtaW5hbE91dHB1dClyZXR1cm4hMTt2YXIgdD1lfHx7fSxuPXIudGVybWluYWxPdXRwdXRNYXJrZXJ8MDtuPDAmJihuPTApLG4+ci50ZXJtaW5hbE91dHB1dC5sZW5ndGgmJihuPXIudGVybWluYWxPdXRwdXQubGVuZ3RoKTt2YXIgaT1uPjA/ci50ZXJtaW5hbE91dHB1dC5zbGljZShuKTpyLnRlcm1pbmFsT3V0cHV0LGE9aS5sZW5ndGgsdT10eXBlb2YgcGVyZm9ybWFuY2U8InUiJiZwZXJmb3JtYW5jZS5ub3c/cGVyZm9ybWFuY2Uubm93KCk6RGF0ZS5ub3coKTtyLl9yZXN5bmNJblByb2dyZXNzPSEwO3RyeXtzaSgpLEtuKHIudGVybWluYWwsaSl9ZmluYWxseXtyLl9yZXN5bmNJblByb2dyZXNzPSExfXIubGFzdFRlcm1pbmFsUmVzeW5jQXQ9RGF0ZS5ub3coKSxGdCgib3V0cHV0IiksdC5za2lwRml0fHxaZSgicmVmcmVzaCIpO3ZhciBzPURhdGUubm93KCk7aWYocy1yLl9yZXN5bmNTdGF0c1dpbmRvd1N0YXJ0Pm5mKXIuX3Jlc3luY1N0YXRzV2luZG93U3RhcnQ9cyxyLl9yZXN5bmNTdGF0c0NvdW50PTE7ZWxzZSBpZihyLl9yZXN5bmNTdGF0c0NvdW50Kyssci5fcmVzeW5jU3RhdHNDb3VudD5yZiYmcy1yLl9yZXN5bmNMYXN0V2FybkF0PmFmKXtyLl9yZXN5bmNMYXN0V2FybkF0PXM7dmFyIG89dHlwZW9mIHBlcmZvcm1hbmNlPCJ1IiYmcGVyZm9ybWFuY2Uubm93P3BlcmZvcm1hbmNlLm5vdygpOkRhdGUubm93KCk7Y29uc29sZS53YXJuKCJbd2FuZF0gc29mdFJlc3luY1Rlcm1pbmFsIGhpZ2ggZnJlcXVlbmN5IiwiY291bnQ9IityLl9yZXN5bmNTdGF0c0NvdW50KyIvIitNYXRoLnJvdW5kKChzLXIuX3Jlc3luY1N0YXRzV2luZG93U3RhcnQpLzEwMCkvMTArInMiLCJidWZMZW49IithLCJsYXN0UmVwbGF5TXM9IitNYXRoLnJvdW5kKG8tdSkpfXJldHVybiEwfWZ1bmN0aW9uIHVmKGUpe3Iuc29mdFJlc3luY1RpbWVyJiZjbGVhclRpbWVvdXQoci5zb2Z0UmVzeW5jVGltZXIpLHIuc29mdFJlc3luY1RpbWVyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtyLnNvZnRSZXN5bmNUaW1lcj1udWxsLFNuKCl9LHR5cGVvZiBlPT0ibnVtYmVyIj9lOjE1MCl9dmFyIHNmPS9ceDFiXFtcZCooPzo7XGQqKT9bQUJDRGZISktdLyxXcz0xNTAwLG9mPTgwMDtyLl9yZXN5bmNDaHVua0xhc3RBdD0wLHIuX3Jlc3luY0NodW5rVGFpbFRpbWVyPW51bGw7ZnVuY3Rpb24gbGYoZSl7aWYoIXIuX3Jlc3luY0luUHJvZ3Jlc3MmJnIuc3luY0ZyYW1pbmdSZXNpZHVlJiYoci5zeW5jRnJhbWluZ1Jlc2lkdWU9ITEsISghZXx8dHlwZW9mIGUhPSJzdHJpbmciKSYmZS5pbmRleE9mKCJceDFCWyIpIT09LTEmJnNmLnRlc3QoZSkpKXt2YXIgdD1EYXRlLm5vdygpLG49dC1yLl9yZXN5bmNDaHVua0xhc3RBdDtpZihuPj1Xcyl7ci5fcmVzeW5jQ2h1bmtUYWlsVGltZXImJihjbGVhclRpbWVvdXQoci5fcmVzeW5jQ2h1bmtUYWlsVGltZXIpLHIuX3Jlc3luY0NodW5rVGFpbFRpbWVyPW51bGwpLHIuX3Jlc3luY0NodW5rTGFzdEF0PXQsU24oKTtyZXR1cm59aWYoIXIuX3Jlc3luY0NodW5rVGFpbFRpbWVyKXt2YXIgaT1NYXRoLm1heChvZixXcy1uKTtyLl9yZXN5bmNDaHVua1RhaWxUaW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ci5fcmVzeW5jQ2h1bmtUYWlsVGltZXI9bnVsbCxyLl9yZXN5bmNDaHVua0xhc3RBdD1EYXRlLm5vdygpLFNuKCl9LGkpfX19ZnVuY3Rpb24gb2koZSx0LG4pe2lmKCFyLnRlcm1pbmFsKXJldHVybiExO3ZhciBpPVFhKHR8fCIiKSxhPWV8fG51bGwsdT1ufHx7fSxzPXUubW9kZXx8ImFwcGVuZCIsbz11LnNjcm9sbCE9PSExLGw9ci50ZXJtaW5hbFNlc3Npb25JZCE9PWEsYz1yLnRlcm1pbmFsT3V0cHV0fHwiIixmPSEhKGEmJnIudGVybWluYWxMaXZlU3RyZWFtU2Vzc2lvbnNbYV0pLGQ9ITE7aWYoaT09PWMmJiFsKXJldHVybiBvJiZGdCgib3V0cHV0IiksbXQoKSwhMTtpZihsJiYoc2koKSxjPSIiLHIudGVybWluYWxPdXRwdXQ9IiIsci50ZXJtaW5hbE91dHB1dE1hcmtlcj0wLHIudGVybWluYWxBdXRvRm9sbG93PSEwLFZuKCksbXQoKSkscz09PSJyZXBsYWNlIilpIT09YyYmKHNpKCksaSYmS24oci50ZXJtaW5hbCxpKSxkPSEwKTtlbHNle2lmKGkubGVuZ3RoPGMubGVuZ3RoJiYhbClyZXR1cm4hMTtpZihmJiYhbCYmcyE9PSJyZXBsYWNlIiYmYyYmIWkuc3RhcnRzV2l0aChjKSlyZXR1cm4hMTtpZihpLnN0YXJ0c1dpdGgoYykpe3ZhciB2PWkuc2xpY2UoYy5sZW5ndGgpO3YmJihLbihyLnRlcm1pbmFsLHYpLGQ9ITApfWVsc2V7aWYoYyYmYy5zdGFydHNXaXRoKGkpKXJldHVybiExO3NpKCksaSYmS24oci50ZXJtaW5hbCxpKSxkPSEwfX1yZXR1cm4gci50ZXJtaW5hbFNlc3Npb25JZD1hLHIudGVybWluYWxPdXRwdXQ9aSxyLnRlcm1pbmFsT3V0cHV0TWFya2VyPTAsbyYmKGR8fGx8fHM9PT0icmVwbGFjZSIpP0Z0KGx8fHM9PT0icmVwbGFjZSI/ImZvcmNlIjoib3V0cHV0Iik6bXQoKSxsJiZhaShyLnRlcm1pbmFsLmNvbHMsci50ZXJtaW5hbC5yb3dzKSxkfHxsfWZ1bmN0aW9uIEpuKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpO2lmKCEoIWV8fHIudGVybWluYWx8fHIudGVybWluYWxJbml0aWFsaXppbmcpKXtpZih0eXBlb2YgV1Rlcm1MaWI+InUifHwhV1Rlcm1MaWIuV1Rlcm0pe3IudGVybWluYWxJbml0UmV0cmllc3x8KHIudGVybWluYWxJbml0UmV0cmllcz0wKSxyLnRlcm1pbmFsSW5pdFJldHJpZXM8MTAmJihyLnRlcm1pbmFsSW5pdFJldHJpZXMrKyxzZXRUaW1lb3V0KEpuLDIwMCkpO3JldHVybn1yLnRlcm1pbmFsSW5pdFJldHJpZXM9MCxyLnRlcm1pbmFsSW5pdGlhbGl6aW5nPSEwLHIuc2VsZWN0ZWRJZCYmKGUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksZS5jbGFzc0xpc3QuYWRkKCJhY3RpdmUiKSk7Zm9yKHZhciB0PWUucXVlcnlTZWxlY3RvckFsbCgiLnRlcm1pbmFsLXNjcm9sbC13cmFwIiksbj0wO248dC5sZW5ndGg7bisrKXt2YXIgaT10W25dO2kucGFyZW50Tm9kZT09PWUmJmUucmVtb3ZlQ2hpbGQoaSl9dmFyIGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7YS5jbGFzc05hbWU9InRlcm1pbmFsLXNjcm9sbC13cmFwIixlLmFwcGVuZENoaWxkKGEpO3ZhciB1PW5ldyBXVGVybUxpYi5XVGVybShhLHtjb2xzOjEyMCxyb3dzOjM2LGF1dG9SZXNpemU6ITAsY3Vyc29yQmxpbms6ITEsb25EYXRhOmZ1bmN0aW9uKCl7fSxvblJlc2l6ZTpmdW5jdGlvbihvLGwpe2FpKG8sbCksci50ZXJtaW5hbCYmci50ZXJtaW5hbE91dHB1dCYmU24oe3NraXBGaXQ6ITB9KX19KSxzPWRvY3VtZW50LmZvbnRzJiZ0eXBlb2YgZG9jdW1lbnQuZm9udHMucmVhZHk9PSJvYmplY3QiP1Byb21pc2UucmFjZShbZG9jdW1lbnQuZm9udHMucmVhZHksbmV3IFByb21pc2UoZnVuY3Rpb24obyl7c2V0VGltZW91dChvLDgwMCl9KV0pOlByb21pc2UucmVzb2x2ZSgpO3MudGhlbihmdW5jdGlvbigpe3JldHVybiB1LmluaXQoKX0pLnRoZW4oZnVuY3Rpb24oKXtpZihyLnRlcm1pbmFsPXUsci50ZXJtaW5hbEluaXRpYWxpemluZz0hMSxfdSgpLGEuaXNDb25uZWN0ZWQmJihhLm9mZnNldEhlaWdodCx0eXBlb2YgdS5yZW1lYXN1cmU9PSJmdW5jdGlvbiIpKXRyeXt1LnJlbWVhc3VyZSgpfWNhdGNoe31yLnRlcm1pbmFsQXV0b0ZvbGxvdz0hMCxWbigpO3ZhciBvPWt0KCk7aWYobyYmKHIudGVybWluYWxWaWV3cG9ydFNjcm9sbEhhbmRsZXI9ZnVuY3Rpb24oKXtpZihEYXRlLm5vdygpPHIudGVybWluYWxQcm9ncmFtbWF0aWNTY3JvbGxVbnRpbCl7bXQoKTtyZXR1cm59aWYoT3MoKSl7ci50ZXJtaW5hbEF1dG9Gb2xsb3c9ITAsVm4oKSxtdCgpO3JldHVybn1tYSgpfSxyLnRlcm1pbmFsVmlld3BvcnRUb3VjaFN0YXJ0SGFuZGxlcj1mdW5jdGlvbihjKXtjLnRvdWNoZXMmJmMudG91Y2hlcy5sZW5ndGg9PT0xJiYoci50ZXJtaW5hbFRvdWNoU3RhcnRZPWMudG91Y2hlc1swXS5jbGllbnRZKX0sci50ZXJtaW5hbFZpZXdwb3J0VG91Y2hIYW5kbGVyPWZ1bmN0aW9uKGMpeyFjLnRvdWNoZXN8fGMudG91Y2hlcy5sZW5ndGghPT0xfHx0eXBlb2Ygci50ZXJtaW5hbFRvdWNoU3RhcnRZPT0ibnVtYmVyIiYmYy50b3VjaGVzWzBdLmNsaWVudFktci50ZXJtaW5hbFRvdWNoU3RhcnRZPjQmJm1hKCl9LG8uYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIixyLnRlcm1pbmFsVmlld3BvcnRTY3JvbGxIYW5kbGVyLHtwYXNzaXZlOiEwfSksby5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IixyLnRlcm1pbmFsVmlld3BvcnRUb3VjaFN0YXJ0SGFuZGxlcix7cGFzc2l2ZTohMH0pLG8uYWRkRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIixyLnRlcm1pbmFsVmlld3BvcnRUb3VjaEhhbmRsZXIse3Bhc3NpdmU6ITB9KSksci50ZXJtaW5hbFdoZWVsSGFuZGxlcj1mdW5jdGlvbihjKXtjLmRlbHRhWTwwJiZtYSgpLGMuc3RvcFByb3BhZ2F0aW9uKCl9LGUuYWRkRXZlbnRMaXN0ZW5lcigid2hlZWwiLHIudGVybWluYWxXaGVlbEhhbmRsZXIse3Bhc3NpdmU6ITB9KSxLZChlKSxyLnNlbGVjdGVkSWQpe3ZhciBsPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihjKXtyZXR1cm4gYy5pZD09PXIuc2VsZWN0ZWRJZH0pO2wmJm9pKGwuaWQsbC5vdXRwdXR8fCIiLHttb2RlOiJhcHBlbmQiLHNjcm9sbDohMX0pfWVsc2UgS24odSxgXHU3MEI5XHU1MUZCXHU0RTBBXHU2NUI5XHUzMDBDXHU2NUIwXHU1QkY5XHU4QkREXHUzMDBEXHU1RjAwXHU1OUNCXHU0RjYwXHU3Njg0XHU3QjJDXHU0RTAwXHU2QjIxXHU1QkY5XHU4QkREXHUzMDAyXHIKYCk7ci50ZXJtaW5hbENsaWNrSGFuZGxlcj1mdW5jdGlvbihjKXtoaSgpfHxqdChjKX0sZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsci50ZXJtaW5hbENsaWNrSGFuZGxlciksbXQoKSxrZCgpLFNkKCksTmQoKSxqZCgpLFplKCJtb3VudCIse2ZvcmNlUmVwbGF5OiEwfSksZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygiaXMtd2FuZC1lbWJlZC10ZXJtaW5hbCIpJiZbMTIwLDM1MCw3MDBdLmZvckVhY2goZnVuY3Rpb24oYyl7c2V0VGltZW91dChmdW5jdGlvbigpe3IudGVybWluYWwmJlplKCJlbWJlZC1zZXR0bGUiKX0sYyl9KX0pLmNhdGNoKGZ1bmN0aW9uKG8pe3IudGVybWluYWxJbml0aWFsaXppbmc9ITEsY29uc29sZS5lcnJvcigiW3dhbmRdIHd0ZXJtIGluaXQgZmFpbGVkOiIsbyl9KX19ZnVuY3Rpb24gY2YoZSx0KXtpZighKCFyLnNlbGVjdGVkSWR8fCFlKSl7dmFyIG49ci5zZWxlY3RlZElkKyI6IitlO2lmKHIudG9vbENvbnRlbnRDYWNoZVtuXSl7dChudWxsLHIudG9vbENvbnRlbnRDYWNoZVtuXSk7cmV0dXJufWZldGNoKCIvYXBpL3Nlc3Npb25zLyIrZW5jb2RlVVJJQ29tcG9uZW50KHIuc2VsZWN0ZWRJZCkrIi90b29sLWNvbnRlbnQvIitlbmNvZGVVUklDb21wb25lbnQoZSkse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKGkpe3JldHVybiBpLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24oaSl7aS5lcnJvcj90KGkuZXJyb3IsbnVsbCk6KHIudG9vbENvbnRlbnRDYWNoZVtuXT1pLHQobnVsbCxpKSl9KS5jYXRjaChmdW5jdGlvbigpe3QoIlx1NTJBMFx1OEY3RFx1NTkzMVx1OEQyNSIsbnVsbCl9KX19ZnVuY3Rpb24gSW4oZSl7cmV0dXJuISEoci5jb25maWcmJnIuY29uZmlnLmNhcmREZWZhdWx0cyYmci5jb25maWcuY2FyZERlZmF1bHRzW2VdKX1mdW5jdGlvbiB5YShlLHQsbixpKXtpZighKCFlfHxlLmRhdGFzZXQudHJ1bmNhdGVkIT09InRydWUifHxlLmRhdGFzZXQubG9hZGVkPT09InRydWUiKSl7dmFyIGE9ZS5kYXRhc2V0LnRvb2xVc2VJZDthJiYodCYmKHQuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJ0b29sLWNvbnRlbnQtbG9hZGluZyI+XHU1MkEwXHU4RjdEXHU0RTJEXHUyMDI2PC9kaXY+JyksZS5kYXRhc2V0LmxvYWRlZD0ibG9hZGluZyIsY2YoYSxmdW5jdGlvbih1LHMpe2lmKHUpe3QmJih0LmlubmVySFRNTD1pfHwnPGRpdiBjbGFzcz0idG9vbC1jb250ZW50LWVycm9yIj5cdTUyQTBcdThGN0RcdTU5MzFcdThEMjVcdUZGMENcdTcwQjlcdTUxRkJcdTkxQ0RcdThCRDU8L2Rpdj4nKSxlLmRhdGFzZXQubG9hZGVkPSIiO3JldHVybn1lLmRhdGFzZXQudHJ1bmNhdGVkPSJmYWxzZSIsZS5kYXRhc2V0LmxvYWRlZD0idHJ1ZSI7dmFyIG89dHlwZW9mIHMuY29udGVudD09InN0cmluZyI/cy5jb250ZW50OkpTT04uc3RyaW5naWZ5KHMuY29udGVudCk7bihvLHMpfSkpfX13aW5kb3cuX190Y1RvZ2dsZT1mdW5jdGlvbihlLHQpe3ZhciBuPXQuY2xvc2VzdCgiLnRvb2wtdXNlLWNhcmQiKXx8dC5jbG9zZXN0KCIuaW5saW5lLWRpZmYiKTtpZihuKXt2YXIgaT1uLmNsYXNzTGlzdC5jb250YWlucygiY29sbGFwc2VkIik7bi5jbGFzc0xpc3QudG9nZ2xlKCJjb2xsYXBzZWQiKTt2YXIgYT1uLmRhdGFzZXQuZXhwYW5kS2luZHx8InRvb2wtY2FyZCI7aWYoQm4obixhKSxpKXt2YXIgdT1uLnF1ZXJ5U2VsZWN0b3IoIi50b29sLXVzZS1yZXN1bHQiKTt5YShuLHUsZnVuY3Rpb24ocyl7dSYmKHUuaW5uZXJIVE1MPSc8cHJlIGNsYXNzPSJ0b29sLXVzZS1yZXN1bHQtY29udGVudCI+JytwKHMpKyI8L3ByZT4iKX0sYDxkaXYgY2xhc3M9InRvb2wtY29udGVudC1lcnJvciIgb25jbGljaz0iX190Y1RvZ2dsZShudWxsLCB0aGlzLmNsb3Nlc3QoJy50b29sLXVzZS1jYXJkLC5pbmxpbmUtZGlmZicpLnF1ZXJ5U2VsZWN0b3IoJy50b29sLXVzZS1oZWFkZXIsLmRpZmYtaGVhZGVyJykpIj5cdTUyQTBcdThGN0RcdTU5MzFcdThEMjVcdUZGMENcdTcwQjlcdTUxRkJcdTkxQ0RcdThCRDU8L2Rpdj5gKX19ZSYmKGUucHJldmVudERlZmF1bHQoKSxlLnN0b3BQcm9wYWdhdGlvbigpKX0sd2luZG93Ll9fdGhpbmtpbmdUb2dnbGU9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5jbGFzc0xpc3QuY29udGFpbnMoImNvbGxhcHNlZCIpO2lmKHQpe2UuY2xhc3NMaXN0LnJlbW92ZSgiY29sbGFwc2VkIiksZS5jbGFzc0xpc3QuYWRkKCJleHBhbmRlZCIpLGUucXVlcnlTZWxlY3RvcigiLnRoaW5raW5nLWlubGluZS1wcmV2aWV3IikudGV4dENvbnRlbnQ9ZS5kYXRhc2V0LnRoaW5raW5nfHwiIjt2YXIgbj1lLnF1ZXJ5U2VsZWN0b3IoIi50aGlua2luZy1pbmxpbmUtYWN0aW9uIik7biYmKG4udGV4dENvbnRlbnQ9Ilx1NjUzNlx1OEQ3NyIpfWVsc2V7ZS5jbGFzc0xpc3QucmVtb3ZlKCJleHBhbmRlZCIpLGUuY2xhc3NMaXN0LmFkZCgiY29sbGFwc2VkIik7dmFyIGk9KGUuZGF0YXNldC50aGlua2luZ3x8IiIpLnNsaWNlKDAsNTcpKygoZS5kYXRhc2V0LnRoaW5raW5nfHwiIikubGVuZ3RoPjYwPyJcdTIwMjYiOiIiKTtlLnF1ZXJ5U2VsZWN0b3IoIi50aGlua2luZy1pbmxpbmUtcHJldmlldyIpLnRleHRDb250ZW50PWk7dmFyIG49ZS5xdWVyeVNlbGVjdG9yKCIudGhpbmtpbmctaW5saW5lLWFjdGlvbiIpO24mJihuLnRleHRDb250ZW50PSJcdTVDNTVcdTVGMDAiKX1CbihlLCJ0aGlua2luZyIpfSx3aW5kb3cuX19zdWJhZ2VudFJlcGx5VG9nZ2xlPWZ1bmN0aW9uKGUsdCl7ZSYmKGUucHJldmVudERlZmF1bHQoKSxlLnN0b3BQcm9wYWdhdGlvbigpKTt2YXIgbj10JiZ0LmNsb3Nlc3Q/dC5jbG9zZXN0KCIuc3ViYWdlbnQtcmVwbHkiKTpudWxsO2lmKG4pe3ZhciBpPW4uZ2V0QXR0cmlidXRlKCJkYXRhLWV4cGFuZGVkIik9PT0idHJ1ZSI7UWkobiwic3ViYWdlbnQtcmVwbHkiLCFpKSxCbihuLCJzdWJhZ2VudC1yZXBseSIpfX0sd2luZG93Ll9fc3ViYWdlbnRQYW5lbFRvZ2dsZT1mdW5jdGlvbihlLHQpe2UmJihlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKSk7dmFyIG49dCYmdC5jbG9zZXN0P3QuY2xvc2VzdCgiLnN1YmFnZW50LXBhbmVsIik6bnVsbDtpZihuKXt2YXIgaT1uLmdldEF0dHJpYnV0ZSgiZGF0YS1leHBhbmRlZCIpPT09InRydWUiO1FpKG4sInN1YmFnZW50LXBhbmVsIiwhaSksQm4obiwic3ViYWdlbnQtcGFuZWwiKX19O2Z1bmN0aW9uIGRmKGUpe2lmKGUpZm9yKHZhciB0PWUucXVlcnlTZWxlY3RvckFsbCgnLnN1YmFnZW50LXBhbmVsW2RhdGEtZXhwYW5kZWQ9ImZhbHNlIl0nKSxuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciBpPXRbbl0ucXVlcnlTZWxlY3RvcigiLnN1YmFnZW50LXBhbmVsLWJvZHkiKTtpJiYoaS5zY3JvbGxUb3A9aS5zY3JvbGxIZWlnaHQpfX13aW5kb3cuX19vcGVuRmlsZVByZXZpZXc9ZnVuY3Rpb24oZSl7ZSYmUXIoZSl9LHdpbmRvdy5fX2lubGluZVRvb2xUb2dnbGU9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5jbGFzc0xpc3QudG9nZ2xlKCJpbmxpbmUtdG9vbC1vcGVuIiksbj1lLnF1ZXJ5U2VsZWN0b3IoIi5pbmxpbmUtdG9vbC1leHBhbmRlZCIpO24mJihuLnN0eWxlLmRpc3BsYXk9dD8iYmxvY2siOiJub25lIik7dmFyIGk9ZS5xdWVyeVNlbGVjdG9yKCIuaW5saW5lLXRvb2wtc3RhdHVzIik7aSYmKGUuZGF0YXNldC5zdGF0dXM9PT0iZXJyb3IiP2kudGV4dENvbnRlbnQ9Ilx1MjcxNyI6ZS5kYXRhc2V0LnN0YXR1cz09PSJkb25lIiYmKGkudGV4dENvbnRlbnQ9Ilx1MjcxMyIpKSx0JiZ5YShlLG4sZnVuY3Rpb24oYSl7ZS5kYXRhc2V0LnJlc3VsdD1hLG4mJihuLmlubmVySFRNTD0nPGRpdiBjbGFzcz0iaW5saW5lLXRvb2wtcmVzdWx0Ij4nK1lvKGEsIiIpKyI8L2Rpdj4iKX0pLEJuKGUsImlubGluZS10b29sIil9LHdpbmRvdy5fX3Rlcm1pbmFsRXhwYW5kPWZ1bmN0aW9uKGUpe3ZhciB0PWUuY2xvc2VzdCgiLmlubGluZS10ZXJtaW5hbCIpO2lmKHQpe3ZhciBuPXQucXVlcnlTZWxlY3RvcigiLnRlcm0tYm9keSIpO2lmKG4pe3ZhciBpPW4uc3R5bGUuZGlzcGxheT09PSJub25lIjtuLnN0eWxlLmRpc3BsYXk9aT8iYmxvY2siOiJub25lIix0LmRhdGFzZXQuZXhwYW5kZWQ9aT8idHJ1ZSI6ImZhbHNlIjt2YXIgYT1lLnF1ZXJ5U2VsZWN0b3IoIi50ZXJtLXRvZ2dsZS1pY29uIik7aWYoYSYmKGEudGV4dENvbnRlbnQ9aT8iXHUyNUJDIjoiXHUyNUI2IiksQm4odCwidGVybWluYWwiKSxpKXt2YXIgdT1uLnF1ZXJ5U2VsZWN0b3IoIi50ZXJtLW91dHB1dCIpO3lhKHQsdSxmdW5jdGlvbihzKXtpZih1KXtmb3IodmFyIG89cy5zcGxpdChgCmApLGw9IiIsYz0wO2M8by5sZW5ndGg7YysrKSFvW2NdJiZjPT09by5sZW5ndGgtMXx8KGwrPSc8ZGl2IGNsYXNzPSJ0ZXJtLWxpbmUiPicrcChvW2NdKSsiPC9kaXY+Iik7dS5pbm5lckhUTUw9bH19KX19fX07ZnVuY3Rpb24gVGcoZSl7dmFyIHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnRoaW5raW5nLXN0cmVhbWluZyIpO2lmKHQpe3ZhciBuPXQucXVlcnlTZWxlY3RvcigiLnRoaW5raW5nLXN0cmVhbWluZy10ZXh0Iik7aWYobil7dmFyIGk9ZS5zcGxpdChgCmApLGE9aS5zbGljZSgtMyk7bi50ZXh0Q29udGVudD1hLmpvaW4oYApgKSxuLnNjcm9sbFRvcD1uLnNjcm9sbEhlaWdodH19fXdpbmRvdy5fX2Fza1NlbGVjdD1mdW5jdGlvbihlLHQsbixpKXt2YXIgYT1yLmFza1VzZXJTZWxlY3Rpb25zW2VdO2lmKGF8fChhPXtzdWJtaXR0ZWQ6ITF9LHIuYXNrVXNlclNlbGVjdGlvbnNbZV09YSksIWEuc3VibWl0dGVkKXt2YXIgdT1hW3RdfHxbXTtpZihpKXt2YXIgcz11LmluZGV4T2Yobik7cz09PS0xP3UucHVzaChuKTp1LnNwbGljZShzLDEpfWVsc2UgdT11WzBdPT09bj9bXTpbbl07YVt0XT11LHdpbmRvdy5fX2Fza1JlbmRlcihlKX19LHdpbmRvdy5fX2Fza1JlbmRlcj1mdW5jdGlvbihlKXt2YXIgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdbZGF0YS10b29sLXVzZS1pZD0iJytlKyciXScpO2lmKHQpe3ZhciBuPXIuYXNrVXNlclNlbGVjdGlvbnNbZV18fHt9O3QucXVlcnlTZWxlY3RvckFsbCgiLmFzay11c2VyLW9wdGlvbiIpLmZvckVhY2goZnVuY3Rpb24ocyl7dmFyIG89cGFyc2VJbnQocy5kYXRhc2V0LnF1ZXN0aW9uSW5kZXgsMTApLGw9cGFyc2VJbnQocy5kYXRhc2V0Lm9wdGlvbkluZGV4LDEwKSxjPShuW29dfHxbXSkuaW5kZXhPZihsKSE9PS0xO3MuY2xhc3NMaXN0LnRvZ2dsZSgic2VsZWN0ZWQiLGMpfSk7dmFyIGk9dC5xdWVyeVNlbGVjdG9yKCIuYXNrLXVzZXItc3VibWl0Iik7aWYoaSl7dmFyIGE9dC5xdWVyeVNlbGVjdG9yQWxsKCIuYXNrLXVzZXItcXVlc3Rpb24tZ3JvdXAiKSx1PSEwO2EuZm9yRWFjaChmdW5jdGlvbihzLG8peyghbltvXXx8bltvXS5sZW5ndGg9PT0wKSYmKHU9ITEpfSksaS5kaXNhYmxlZD0hdXx8ISFuLnN1Ym1pdHRlZCxuLnN1Ym1pdHRlZCYmKGkudGV4dENvbnRlbnQ9Ilx1NURGMlx1NjNEMFx1NEVBNC4uLiIsaS5jbGFzc0xpc3QuYWRkKCJhc2stdXNlci1zdWJtaXR0ZWQiKSl9fX0sd2luZG93Ll9fYXNrU3VibWl0PWZ1bmN0aW9uKGUpe3ZhciB0PXIuYXNrVXNlclNlbGVjdGlvbnNbZV07aWYoISghdHx8dC5zdWJtaXR0ZWR8fCFyLnNlbGVjdGVkSWQpKXt2YXIgbj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdbZGF0YS10b29sLXVzZS1pZD0iJytlKyciXScpO2lmKG4pe3ZhciBpPW4ucXVlcnlTZWxlY3RvckFsbCgiLmFzay11c2VyLXF1ZXN0aW9uLWdyb3VwIiksYT1bXSx1PSEwO2lmKGkuZm9yRWFjaChmdW5jdGlvbihvLGwpe3ZhciBjPXRbbF18fFtdO2lmKGMubGVuZ3RoPT09MCl7dT0hMTtyZXR1cm59dmFyIGY9W107Yy5mb3JFYWNoKGZ1bmN0aW9uKGQpe3ZhciB2PW8ucXVlcnlTZWxlY3RvcignW2RhdGEtb3B0aW9uLWluZGV4PSInK2QrJyJdJyk7diYmZi5wdXNoKHYuZGF0YXNldC5vcHRpb25MYWJlbCl9KSxhLnB1c2goZi5qb2luKCIsICIpKX0pLCEhdSl7dC5zdWJtaXR0ZWQ9ITAsd2luZG93Ll9fYXNrUmVuZGVyKGUpO3ZhciBzPWEuam9pbihgCmApO2ZldGNoKCIvYXBpL3Nlc3Npb25zLyIrci5zZWxlY3RlZElkKyIvaW5wdXQiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KHtpbnB1dDpzK2AKYCx2aWV3OnIuY3VycmVudFZpZXd9KX0pLmNhdGNoKGZ1bmN0aW9uKG8pe2NvbnNvbGUuZXJyb3IoIlt3YW5kXSBFcnJvciBzZW5kaW5nIGFuc3dlcjoiLG8pLHQuc3VibWl0dGVkPSExLHdpbmRvdy5fX2Fza1JlbmRlcihlKX0pfX19fTtmdW5jdGlvbiBmZigpe2lmKCFyLl9fZ2xvYmFsTGlzdGVuZXJzQm91bmQpe3IuX19nbG9iYWxMaXN0ZW5lcnNCb3VuZD0hMCxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2lkZWJhci1vdmVyZmxvdy1tZW51Iik7dCYmdC5jbGFzc0xpc3QucmVtb3ZlKCJvcGVuIil9KSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIixmdW5jdGlvbigpe3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzaWRlYmFyLW92ZXJmbG93LW1lbnUiKTt0JiZ0LmNsYXNzTGlzdC5yZW1vdmUoIm9wZW4iKX0pO3ZhciBlPWZ1bmN0aW9uKCl7ci50b3BiYXJNb3JlT3Blbj0hMTt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9wYmFyLW1vcmUtbWVudSIpLG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvcGJhci1tb3JlLWJ1dHRvbiIpO3QmJnQuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksbiYmKG4uY2xhc3NMaXN0LnJlbW92ZSgiYWN0aXZlIiksbi5zZXRBdHRyaWJ1dGUoImFyaWEtZXhwYW5kZWQiLCJmYWxzZSIpKX07ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKHQpe2lmKHIudG9wYmFyTW9yZU9wZW4pe3ZhciBuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b3BiYXItbW9yZS1tZW51IiksaT1uJiZuLnBhcmVudEVsZW1lbnQ7aSYmIWkuY29udGFpbnModC50YXJnZXQpJiZlKCl9fSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsZnVuY3Rpb24odCl7dC5rZXk9PT0iRXNjYXBlIiYmci50b3BiYXJNb3JlT3BlbiYmZSgpfSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKHQpe2lmKHIucGx1c1BvcG92ZXJPcGVuKXt2YXIgbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29tcG9zZXItcGx1cy1wb3BvdmVyIiksaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXR0YWNoLWJ0biIpO24mJm4uY29udGFpbnModC50YXJnZXQpfHxpJiZpLmNvbnRhaW5zKHQudGFyZ2V0KXx8T2koKX19KSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixmdW5jdGlvbih0KXt0LmtleT09PSJFc2NhcGUiJiZyLnBsdXNQb3BvdmVyT3BlbiYmT2koKX0pLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbih0KXt2YXIgbj10LnRhcmdldDtpZighKCFufHx0eXBlb2Ygbi5jbG9zZXN0IT0iZnVuY3Rpb24iKSl7dmFyIGk9bi5jbG9zZXN0KCIjYXV0by1hcHByb3ZlLXRvZ2dsZSIpO2kmJih0LnByZXZlbnREZWZhdWx0KCksRWQoKSl9fSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKHQpe2lmKCF0LnRhcmdldC5jbG9zZXN0KCIuZm9sZGVyLXBpY2tlci1jb250YWluZXIiKSl7dmFyIG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZvbGRlci1waWNrZXItZHJvcGRvd24iKTtuJiZuLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpfX0pLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsZnVuY3Rpb24odCl7dmFyIG49dC50YXJnZXQ7aWYoISghbnx8bi5ub2RlVHlwZSE9PTEpJiYhKHR5cGVvZiBuLm1hdGNoZXMhPSJmdW5jdGlvbiJ8fCFuLm1hdGNoZXMoIltkYXRhLW1vZGUtY29udHJvbF0iKSkpe3ZhciBpPW4uZ2V0QXR0cmlidXRlKCJkYXRhLW1vZGUtY29udHJvbCIpLGE9bi52YWx1ZTtpPT09Im1vZGUiP2RtKGEpOmk9PT0ibW9kZWwiP2NtKGEpOmk9PT0idGhpbmtpbmciJiZ1bShhKSxuLmNsb3Nlc3QmJm4uY2xvc2VzdCgiI2NvbXBvc2VyLXBsdXMtcG9wb3ZlciIpJiZPaSgpfX0pfX1mdW5jdGlvbiBwZigpe2ZmKCk7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxvZ2luLWJ1dHRvbiIpO2lmKGUpe2UuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCRhKTt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9naW4tZm9ybSIpO3QmJnQuYWRkRXZlbnRMaXN0ZW5lcigic3VibWl0IixmdW5jdGlvbihiKXtiLnByZXZlbnREZWZhdWx0KCksJGEoKX0pO3ZhciBuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dpbi1zd2l0Y2gtc2VydmVyLWJ1dHRvbiIpO24mJm4uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLFhvKTt2YXIgaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGFzc3dvcmQiKSxhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b2dnbGUtcGFzc3dvcmQtYnV0dG9uIik7YSYmaSYmYS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXt2YXIgYj1pLnR5cGU9PT0idGV4dCI7aS50eXBlPWI/InBhc3N3b3JkIjoidGV4dCIsYS50ZXh0Q29udGVudD1iPyJcdTY2M0VcdTc5M0EiOiJcdTk2OTBcdTg1Q0YiLGEuc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIixiPyJcdTY2M0VcdTc5M0FcdTVCQzZcdTc4MDEiOiJcdTk2OTBcdTg1Q0ZcdTVCQzZcdTc4MDEiKSxhLnNldEF0dHJpYnV0ZSgiYXJpYS1wcmVzc2VkIixiPyJmYWxzZSI6InRydWUiKSxpLmZvY3VzKCl9KSxpJiYoaS5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixmdW5jdGlvbihiKXtiLmtleT09PSJFbnRlciImJiRhKCl9KSxpLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IixmdW5jdGlvbigpe2kuZGF0YXNldC5lcnJvcj0iZmFsc2UiLGkuc2V0QXR0cmlidXRlKCJhcmlhLWludmFsaWQiLCJmYWxzZSIpO3ZhciBiPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dpbi1lcnJvciIpO2ImJmNpKGIpfSksaS5mb2N1cygpKTtyZXR1cm59dmFyIHU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndlbGNvbWUtaW5wdXQiKTt1JiYodS5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixmdW5jdGlvbihiKXtiLmtleT09PSJFbnRlciImJiFiLnNoaWZ0S2V5JiYoYi5wcmV2ZW50RGVmYXVsdCgpLG5vKCkpfSksdS5mb2N1cygpKTt2YXIgcz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid2VsY29tZS1zZW5kLWJ0biIpO3MmJnMuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7bm8oKX0pO3ZhciBvPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3ZWxjb21lLXRvb2wtY2xhdWRlIik7byYmby5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXtEbCgpfSk7dmFyIGw9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndlbGNvbWUtdG9vbC1jb2RleCIpO2wmJmwuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7ci5zZXNzaW9uVG9vbD0iY29kZXgiLHIucHJlZmVycmVkQ29tbWFuZD0iY29kZXgiLHIubW9kZVZhbHVlPSJmdWxsLWFjY2VzcyIsRGwoKX0pO3ZhciBjPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3ZWxjb21lLXRvb2wtc3RydWN0dXJlZCIpO2MmJmMuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7dmwoKS50aGVuKGZ1bmN0aW9uKCl7anQoITApfSkuY2F0Y2goZnVuY3Rpb24oYil7ayhiJiZiLm1lc3NhZ2V8fCJcdTY1RTBcdTZDRDVcdTU0MkZcdTUyQThcdTdFRDNcdTY3ODRcdTUzMTZcdTRGMUFcdThCRERcdTMwMDIiLCJlcnJvciIpfSl9KSwkbSgpO3ZhciBmPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXNzaW9ucy1saXN0Iik7ZiYmKGYuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLFVkKSxmLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLFZkKSxmLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlb3ZlciIsQ20pLGYuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VvdXQiLEJtKSxWcChmKSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIscm4sITApLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLHJuKTt2YXIgZD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicHJvdmlkZXItY2FyZHMiKTtkJiZkLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihiKXt2YXIgQT1iLnRhcmdldC5jbG9zZXN0KCIucHJvdmlkZXItY2FyZCIpO2lmKCEoIUF8fEEuY2xhc3NMaXN0LmNvbnRhaW5zKCJkaXNhYmxlZCIpKSl7dmFyIFI9QS5nZXRBdHRyaWJ1dGUoImRhdGEtcHJvdmlkZXIiKTtSJiYoci5zZXNzaW9uVG9vbD1SLHIucHJlZmVycmVkQ29tbWFuZD1SLExyKCkpfX0pO3ZhciB2PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXNzaW9uLWtpbmQtY2FyZHMiKTt2JiZ2LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihiKXt2YXIgQT1iLnRhcmdldC5jbG9zZXN0KCIuc2Vzc2lvbi1raW5kLWNhcmQiKTtpZighKCFBfHxBLmNsYXNzTGlzdC5jb250YWlucygiZGlzYWJsZWQiKSkpe3ZhciBSPUEuZ2V0QXR0cmlidXRlKCJkYXRhLXNlc3Npb24ta2luZCIpO1ImJihyLnNlc3Npb25DcmVhdGVLaW5kPVIsTHIoKSl9fSk7dmFyIGg9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1vZGUtY2FyZHMiKTtoJiZoLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihiKXt2YXIgQT1iLnRhcmdldC5jbG9zZXN0KCIubW9kZS1jYXJkIik7aWYoQSl7dmFyIFI9QS5nZXRBdHRyaWJ1dGUoImRhdGEtbW9kZSIpO1ImJihyLm1vZGVWYWx1ZT1SLExyKCkpfX0pO3ZhciBnPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXNzaW9uLXdvcmt0cmVlLXRvZ2dsZSIpO2cmJmcuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixmdW5jdGlvbigpe3Iuc2Vzc2lvbkNyZWF0ZVdvcmt0cmVlPWcuY2hlY2tlZH0pO3ZhciBtPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjd2QiKTttJiYobS5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsZnVuY3Rpb24oKXtyLmN3ZFZhbHVlPW0udmFsdWV9KSxtLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsZnVuY3Rpb24oKXtyLmN3ZFZhbHVlPW0udmFsdWV9KSxtLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IixBbCksbS5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsQWwpLG0uYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsZnVuY3Rpb24oKXtzZXRUaW1lb3V0KHJyLDEyMCl9KSk7dmFyIHk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlc3Npb25zLXRvZ2dsZS1idXR0b24iKTt5JiZ5LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixobSk7dmFyIHc9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlc3Npb25zLWRyYXdlci1iYWNrZHJvcCIpO3cmJncuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLE9yKTt2YXIgRT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2xvc2UtZHJhd2VyLWJ1dHRvbiIpO0UmJkUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLE9yKTt2YXIgQj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2lkZWJhci1jb2xsYXBzZS1idG4iKTtCJiZCLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixEbSk7dmFyIEY9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNpZGViYXItcGluLWJ0biIpO0YmJkYuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGttKTt2YXIgeD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2lkZWJhci1tb3JlLWJ0biIpLFM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNpZGViYXItb3ZlcmZsb3ctbWVudSIpO3gmJlMmJnguYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKGIpe2Iuc3RvcFByb3BhZ2F0aW9uKCk7dmFyIEE9IVMuY2xhc3NMaXN0LmNvbnRhaW5zKCJvcGVuIik7Uy5jbGFzc0xpc3QudG9nZ2xlKCJvcGVuIixBKSxBJiZ4bShTKX0pO3ZhciBfPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzaWRlYmFyLWhvbWUtYnRuIik7XyYmXy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXtyLnNlbGVjdGVkSWQ9bnVsbCx3ZSgpLEF0KCksVXQoKSx0bigpfSk7dmFyIFY9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNpZGViYXItcmVmcmVzaC1idG4iKTtWJiZWLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe3dpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKX0pO3ZhciBVPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dvdXQtYnV0dG9uIik7VSYmVS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsWm8pO3ZhciBJPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzd2l0Y2gtc2VydmVyLWJ1dHRvbiIpO0kmJkkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLFhvKTt2YXIgRD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYmFjay10by1uYXRpdmUtYnV0dG9uIik7RCYmRC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsWHYpO3ZhciBNPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncy1idXR0b24iKTtNJiZNLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixUbSk7dmFyIEw9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNsb3NlLXNldHRpbmdzLWJ1dHRvbiIpO0wmJkwuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRyKTt2YXIgVz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MtbW9kYWwiKTtXJiZXLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihiKXtiLnRhcmdldC5pZD09PSJzZXR0aW5ncy1tb2RhbCImJnRyKCl9KTt2YXIgSz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2F2ZS1wYXNzd29yZC1idXR0b24iKTtLJiZLLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixMbSk7Zm9yKHZhciBYPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5zZXR0aW5ncy10YWIiKSxuZT0wO25lPFgubGVuZ3RoO25lKyspWFtuZV0uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKGIpe3ZhciBBPWIuY3VycmVudFRhcmdldHx8dGhpcyxSPUEmJkEuZ2V0QXR0cmlidXRlP0EuZ2V0QXR0cmlidXRlKCJkYXRhLXRhYiIpOm51bGw7UiYmY3UoUil9KTt2YXIgc2U9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNhdmUtY29uZmlnLWJ1dHRvbiIpO3NlJiZzZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsX20pO3ZhciByZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWRlZmF1bHQtbW9kZWwtcmVmcmVzaCIpO3JlJiZyZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsb20pO3ZhciBUPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctdmlldy1lbnYtYnRuIik7VCYmVC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsbG0pO3ZhciBxPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzYXZlLWRpc3BsYXktYnV0dG9uIik7cSYmcS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsTm0pO3ZhciBOPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcHAtaWNvbi1waWNrZXIiKTtpZihOKWZvcih2YXIgWT1OLnF1ZXJ5U2VsZWN0b3JBbGwoIi5zZXR0aW5ncy1hcHAtaWNvbi1vcHRpb24iKSxKPTA7SjxZLmxlbmd0aDtKKyspWVtKXS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXt2YXIgYj10aGlzLmdldEF0dHJpYnV0ZSgiZGF0YS1pY29uIik7aWYoISghYnx8dHlwZW9mIFdhbmROYXRpdmU+InUifHx0eXBlb2YgV2FuZE5hdGl2ZS5zZXRBcHBJY29uIT0iZnVuY3Rpb24iKSl0cnl7V2FuZE5hdGl2ZS5zZXRBcHBJY29uKGIpLEZsKGIpO3ZhciBBPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcHAtaWNvbi1tZXNzYWdlIik7QSYmKEEudGV4dENvbnRlbnQ9Ilx1NTZGRVx1NjgwN1x1NURGMlx1NTIwN1x1NjM2Mlx1RkYwQ1x1OEZENFx1NTZERVx1Njg0Q1x1OTc2Mlx1NTQwRVx1NzUxRlx1NjU0OCIsQS5zdHlsZS5jb2xvcj0idmFyKC0tc3VjY2VzcykiLEEuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksc2V0VGltZW91dChmdW5jdGlvbigpe0EuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIil9LDNlMykpfWNhdGNoe319KTt2YXIgaWU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwbG9hZC1jZXJ0LWJ1dHRvbiIpO2llJiZpZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsam0pO2Zvcih2YXIgZGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmZpbGUtcGlja2VyLWlucHV0IiksdGU9MDt0ZTxkZS5sZW5ndGg7dGUrKykoZnVuY3Rpb24oYil7Yi5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7dmFyIEE9Yi5jbG9zZXN0KCIuZmlsZS1waWNrZXIiKTtpZihBKXt2YXIgUj1BLnF1ZXJ5U2VsZWN0b3IoIi5maWxlLXBpY2tlci1uYW1lIik7UiYmKGIuZmlsZXMmJmIuZmlsZXNbMF0/KFIudGV4dENvbnRlbnQ9Yi5maWxlc1swXS5uYW1lLEEuY2xhc3NMaXN0LmFkZCgiZmlsZS1waWNrZXItaGFzLWZpbGUiKSk6KFIudGV4dENvbnRlbnQ9Ui5nZXRBdHRyaWJ1dGUoImRhdGEtZGVmYXVsdCIpfHwiXHU2NzJBXHU5MDA5XHU2MkU5XHU2NTg3XHU0RUY2IixBLmNsYXNzTGlzdC5yZW1vdmUoImZpbGUtcGlja2VyLWhhcy1maWxlIikpKX19KX0pKGRlW3RlXSk7dmFyIGFlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGVjay11cGRhdGUtYnV0dG9uIik7YWUmJmFlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixFbCk7dmFyIEhlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkby11cGRhdGUtYnV0dG9uIik7SGUmJkhlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixSbSk7dmFyIERlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkby1yZXN0YXJ0LWJ1dHRvbiIpO0RlJiZEZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsV20pO3ZhciBwZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXV0by11cGRhdGUtd2ViLXRvZ2dsZSIpO3BlJiZwZS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7ZHUoIndlYiIscGUuY2hlY2tlZCl9KTt2YXIgUD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXV0by11cGRhdGUtYXBrLXRvZ2dsZSIpO1AmJlAuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixmdW5jdGlvbigpe2R1KCJhcGsiLFAuY2hlY2tlZCl9KTt2YXIgSmU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF1dG8tdXBkYXRlLWRtZy10b2dnbGUiKTtKZSYmSmUuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixmdW5jdGlvbigpe2R1KCJkbWciLEplLmNoZWNrZWQpfSk7dmFyIGN0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJiZXRhLWNoYW5uZWwtdG9nZ2xlIik7Y3QmJmN0LmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsZnVuY3Rpb24oKXtWbShjdC5jaGVja2VkPyJiZXRhIjoic3RhYmxlIil9KTt2YXIgRz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29weS1jb25uZWN0LWNvZGUtYnV0dG9uIik7RyYmRy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXt2YXIgYj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYW5kcm9pZC1jb25uZWN0LWNvZGUiKTtiJiZfcihiLnRleHRDb250ZW50LEcpfSk7dmFyIGVlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctbm90aWYtc291bmQiKTtlZSYmKGVlLmNoZWNrZWQ9ci5ub3RpZlNvdW5kLGVlLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsZnVuY3Rpb24oKXtyLm5vdGlmU291bmQ9ZWUuY2hlY2tlZDt0cnl7bG9jYWxTdG9yYWdlLnNldEl0ZW0oIndhbmQtbm90aWYtc291bmQiLFN0cmluZyhyLm5vdGlmU291bmQpKX1jYXRjaHt9ci5ub3RpZlNvdW5kJiZwaSgpO3ZhciBiPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJub3RpZi12b2x1bWUtZmllbGQiKTtiJiYoYi5zdHlsZS5kaXNwbGF5PXIubm90aWZTb3VuZD8iIjoibm9uZSIpfSkpO3ZhciBvZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLW5vdGlmLXZvbHVtZSIpLGxlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctbm90aWYtdm9sdW1lLXZhbCIpLEJlPWZ1bmN0aW9uKGIpe2lmKGIpe3ZhciBBPU51bWJlcihiLm1pbnx8MCksUj1OdW1iZXIoYi5tYXh8fDEwMCksQ2U9TnVtYmVyKGIudmFsdWV8fDApLEJ0PVI+QT9NYXRoLm1heCgwLE1hdGgubWluKDEwMCwoQ2UtQSkvKFItQSkqMTAwKSk6MDtiLnN0eWxlLnNldFByb3BlcnR5KCItLXJhbmdlLWZpbGwiLEJ0KyIlIil9fTtpZihvZSl7b2UudmFsdWU9U3RyaW5nKHIubm90aWZWb2x1bWUpLGxlJiYobGUudGV4dENvbnRlbnQ9ci5ub3RpZlZvbHVtZSsiJSIpLEJlKG9lKTt2YXIgV2U9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5vdGlmLXZvbHVtZS1maWVsZCIpO1dlJiYoV2Uuc3R5bGUuZGlzcGxheT1yLm5vdGlmU291bmQ/IiI6Im5vbmUiKTt2YXIgSnQ9bnVsbDtvZS5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsZnVuY3Rpb24oKXtyLm5vdGlmVm9sdW1lPXBhcnNlSW50KG9lLnZhbHVlLDEwKSxsZSYmKGxlLnRleHRDb250ZW50PXIubm90aWZWb2x1bWUrIiUiKSxCZShvZSk7dHJ5e2xvY2FsU3RvcmFnZS5zZXRJdGVtKCJ3YW5kLW5vdGlmLXZvbHVtZSIsU3RyaW5nKHIubm90aWZWb2x1bWUpKX1jYXRjaHt9aWYoamUmJnR5cGVvZiBXYW5kTmF0aXZlLnNldE5vdGlmaWNhdGlvblZvbHVtZT09ImZ1bmN0aW9uIil0cnl7V2FuZE5hdGl2ZS5zZXROb3RpZmljYXRpb25Wb2x1bWUoci5ub3RpZlZvbHVtZSl9Y2F0Y2h7fX0pLG9lLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsZnVuY3Rpb24oKXtwaSgpfSl9dmFyIGR0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctbm90aWYtYnViYmxlIik7ZHQmJihkdC5jaGVja2VkPXIubm90aWZCdWJibGUsZHQuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixmdW5jdGlvbigpe3Iubm90aWZCdWJibGU9ZHQuY2hlY2tlZDt0cnl7bG9jYWxTdG9yYWdlLnNldEl0ZW0oIndhbmQtbm90aWYtYnViYmxlIixTdHJpbmcoci5ub3RpZkJ1YmJsZSkpfWNhdGNoe319KSk7dmFyIGZ0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJub3RpZmljYXRpb24tcmVxdWVzdC1idG4iKTtmdCYmZnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7aWYoamUpe3dpbmRvdy5fb25OYXRpdmVQZXJtaXNzaW9uUmVzdWx0PWZ1bmN0aW9uKCl7RW4oKSxkZWxldGUgd2luZG93Ll9vbk5hdGl2ZVBlcm1pc3Npb25SZXN1bHR9O3RyeXtXYW5kTmF0aXZlLnJlcXVlc3RQZXJtaXNzaW9uKCl9Y2F0Y2h7fX1lbHNlIHR5cGVvZiBOb3RpZmljYXRpb248InUiJiZOb3RpZmljYXRpb24ucmVxdWVzdFBlcm1pc3Npb24oKS50aGVuKGZ1bmN0aW9uKCl7RW4oKX0pfSk7dmFyIF9lPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJub3RpZmljYXRpb24tcmVzZXQtYnRuIik7X2UmJl9lLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixLbSk7dmFyIEd0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJub3RpZmljYXRpb24tdGVzdC1idG4iKTtHdCYmR3QuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLENsKTt2YXIgR2U9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5vdGlmaWNhdGlvbi10ZXN0LWRlbGF5LWJ0biIpO2lmKEdlJiZHZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsSm0pLEVuKCksamUmJnR5cGVvZiBXYW5kTmF0aXZlLmdldEF2YWlsYWJsZVNvdW5kcz09ImZ1bmN0aW9uIil7dmFyIHJ0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJuYXRpdmUtc291bmQtc2VjdGlvbiIpLGtlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJuYXRpdmUtc291bmQtc2VsZWN0IiksZ2U9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5hdGl2ZS1zb3VuZC1wcmV2aWV3Iik7aWYocnQmJmtlKXtydC5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKTt0cnl7dmFyIGJlPUpTT04ucGFyc2UoV2FuZE5hdGl2ZS5nZXRBdmFpbGFibGVTb3VuZHMoKSksQz1XYW5kTmF0aXZlLmdldE5vdGlmaWNhdGlvblNvdW5kKCk7a2UuaW5uZXJIVE1MPSIiO2Zvcih2YXIgaXQ9MDtpdDxiZS5sZW5ndGg7aXQrKyl7dmFyIHl0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm9wdGlvbiIpO3l0LnZhbHVlPWJlW2l0XS5pZCx5dC50ZXh0Q29udGVudD1iZVtpdF0ubmFtZSxiZVtpdF0uaWQ9PT1DJiYoeXQuc2VsZWN0ZWQ9ITApLGtlLmFwcGVuZENoaWxkKHl0KX1rZS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7dHJ5e1dhbmROYXRpdmUuc2V0Tm90aWZpY2F0aW9uU291bmQoa2UudmFsdWUpfWNhdGNoe319KSxnZSYmZ2UuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7dHJ5e1dhbmROYXRpdmUucHJldmlld1NvdW5kKGtlLnZhbHVlKX1jYXRjaHt9fSl9Y2F0Y2h7fX19aWYoamUmJnR5cGVvZiBXYW5kTmF0aXZlLmlzSGFwdGljRW5hYmxlZD09ImZ1bmN0aW9uIil7dmFyIEl0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJuYXRpdmUtaGFwdGljLXNlY3Rpb24iKSxDdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWhhcHRpYy1lbmFibGVkIik7aWYoSXQmJkN0KXtJdC5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKTt0cnl7Q3QuY2hlY2tlZD1XYW5kTmF0aXZlLmlzSGFwdGljRW5hYmxlZCgpfWNhdGNoe31DdC5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7dHJ5e1dhbmROYXRpdmUuc2V0SGFwdGljRW5hYmxlZChDdC5jaGVja2VkKX1jYXRjaHt9Q3QuY2hlY2tlZCYmR24oIm1lZGl1bSIpfSl9fXZhciBUdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9wYmFyLW5ldy1zZXNzaW9uLWJ1dHRvbiIpO1R0JiZUdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsb3UpO3ZhciBZdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZHJhd2VyLW5ldy1zZXNzaW9uLWJ1dHRvbiIpO1l0JiZZdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsb3UpO3ZhciBhdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2xvc2UtbW9kYWwtYnV0dG9uIik7YXQmJmF0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix5bik7dmFyIHFlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjbG9zZS13b3JrdHJlZS1tZXJnZS1idXR0b24iKTtxZSYmcWUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGVyKTt2YXIgemU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndvcmt0cmVlLW1lcmdlLWNhbmNlbC1idXR0b24iKTt6ZSYmemUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGVyKTt2YXIgaGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndvcmt0cmVlLW1lcmdlLWNvbmZpcm0tYnV0dG9uIik7aGUmJmhlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixJbSk7dmFyIGJ0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJydW4tYnV0dG9uIik7YnQmJmJ0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixHbSk7dmFyIHB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcHByb3ZlLXBlcm1pc3Npb24tYnRuIik7cHQmJnB0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix5ZCk7dmFyIHV0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZW55LXBlcm1pc3Npb24tYnRuIik7dXQmJnV0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixiZCk7dmFyIEV0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZW5kLWlucHV0LWJ1dHRvbiIpO0V0JiZFdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXtVdCgpLFFmKCl9KTt2YXIgTHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0b3AtYnV0dG9uIik7THQmJkx0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixxYSk7dmFyIE9uPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXNzaW9uLW1vZGFsIik7T24mJk9uLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihiKXtiLnRhcmdldC5pZD09PSJzZXNzaW9uLW1vZGFsIiYmeW4oKSxiLnRhcmdldC5pZD09PSJ3b3JrdHJlZS1tZXJnZS1tb2RhbCImJmVyKCl9KTt2YXIgZmU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0LWJveCIpO2ZlJiYoQW8oZmUpLGZlLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLG5nKSxmZS5hZGRFdmVudExpc3RlbmVyKCJwYXN0ZSIsY2cpLGZlLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IixmdW5jdGlvbigpe3IudGVybWluYWxDb21wb3Npbmd8fHhsKGZlKXx8KGF2KGZlKSxvdChmZS52YWx1ZSwhMCksSGkoZmUpKX0pLGZlLmFkZEV2ZW50TGlzdGVuZXIoImNvbXBvc2l0aW9uc3RhcnQiLGZ1bmN0aW9uKCl7ci50ZXJtaW5hbEludGVyYWN0aXZlJiYoci50ZXJtaW5hbENvbXBvc2luZz0hMCl9KSxmZS5hZGRFdmVudExpc3RlbmVyKCJjb21wb3NpdGlvbmVuZCIsZnVuY3Rpb24oKXtyLnRlcm1pbmFsQ29tcG9zaW5nJiYoci50ZXJtaW5hbENvbXBvc2luZz0hMSxyLnRlcm1pbmFsSW50ZXJhY3RpdmUmJnhsKGZlKSl9KSxmZS5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsZnVuY3Rpb24oKXtVdCgpLFhwKHt0YXJnZXQ6ZmV9KX0pLGZlLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLFpwKSk7dmFyIHZ0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhdHRhY2gtYnRuIiksWj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS11cGxvYWQtaW5wdXQiKSxJZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29tcG9zZXItcGx1cy1wb3BvdmVyIiksVGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBsdXMtYXR0YWNoLWl0ZW0iKTt2dCYmSWUmJnZ0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihiKXtiLnN0b3BQcm9wYWdhdGlvbigpLGJtKCl9KSxUZSYmWiYmVGUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7T2koKSxaLmNsaWNrKCl9KSxaJiZaLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsZnVuY3Rpb24oKXt2YXIgYj1aLmZpbGVzO2lmKGIpZm9yKHZhciBBPTA7QTxiLmxlbmd0aDtBKyspZnUoYltBXSk7Wi52YWx1ZT0iIn0pO3ZhciBZZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidm9pY2UtYnRuIik7WWUmJlllLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe0RhKCl9KTt2YXIgUWU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInZvaWNlLWNhbmNlbC1idG4iKTtRZSYmUWUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7RGEoITEpfSk7dmFyIEZlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ2b2ljZS1yZWNvcmQtYnRuIik7RmUmJihGZS5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVyZG93biIsUmYpLEZlLmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJtb3ZlIixXZiksRmUuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcnVwIixYcyksRmUuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcmNhbmNlbCIsWHMpKTt2YXIgTGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInByb21wdC1vcHRpbWl6ZS1idG4iKTtMZSYmTGUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7ZmcoKX0pO3ZhciAkZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuaW5wdXQtY29tcG9zZXIiKTskZSYmKCRlLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdvdmVyIixmdW5jdGlvbihiKXtiLnByZXZlbnREZWZhdWx0KCksYi5zdG9wUHJvcGFnYXRpb24oKSwkZS5jbGFzc0xpc3QuYWRkKCJkcmFnLW92ZXIiKX0pLCRlLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdsZWF2ZSIsZnVuY3Rpb24oYil7Yi5wcmV2ZW50RGVmYXVsdCgpLGIuc3RvcFByb3BhZ2F0aW9uKCksJGUuY2xhc3NMaXN0LnJlbW92ZSgiZHJhZy1vdmVyIil9KSwkZS5hZGRFdmVudExpc3RlbmVyKCJkcm9wIixmdW5jdGlvbihiKXtiLnByZXZlbnREZWZhdWx0KCksYi5zdG9wUHJvcGFnYXRpb24oKSwkZS5jbGFzc0xpc3QucmVtb3ZlKCJkcmFnLW92ZXIiKTt2YXIgQT1iLmRhdGFUcmFuc2ZlciYmYi5kYXRhVHJhbnNmZXIuZmlsZXM7aWYoQSlmb3IodmFyIFI9MDtSPEEubGVuZ3RoO1IrKylmdShBW1JdKX0pKTt2YXIgUXQ9WyJ0ZXJtaW5hbC1pbnRlcmFjdGl2ZS10b2dnbGUtdG9wIl07UXQuZm9yRWFjaChmdW5jdGlvbihiKXt2YXIgQT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChiKTtBJiZBLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixPcCl9KTt2YXIgSD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS1wYW5lbC10b2dnbGUtYnRuIik7SCYmSC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsR3IpO3ZhciBqPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLXNpZGUtcGFuZWwtY2xvc2UiKTtqJiZqLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixQdSk7dmFyIFE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtcGFuZWwtYmFja2Ryb3AiKTtRJiZRLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixQdSk7dmFyIHZlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b3BiYXItZmlsZS1idXR0b24iKTt2ZSYmdmUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLEdyKTt2YXIgeWU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvcGJhci1jd2QiKTt5ZSYmKHllLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe3IuZmlsZVBhbmVsT3Blbnx8R3IoKX0pLHllLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGZ1bmN0aW9uKGIpeyhiLmtleT09PSJFbnRlciJ8fGIua2V5PT09IiAiKSYmKGIucHJldmVudERlZmF1bHQoKSxyLmZpbGVQYW5lbE9wZW58fEdyKCkpfSkpO3ZhciBPZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9wYmFyLW1vcmUtYnV0dG9uIiksYXI9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvcGJhci1tb3JlLW1lbnUiKTtPZSYmYXImJihPZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oYil7Yi5zdG9wUHJvcGFnYXRpb24oKSxyLnRvcGJhck1vcmVPcGVuPSFyLnRvcGJhck1vcmVPcGVuLGFyLmNsYXNzTGlzdC50b2dnbGUoImhpZGRlbiIsIXIudG9wYmFyTW9yZU9wZW4pLE9lLmNsYXNzTGlzdC50b2dnbGUoImFjdGl2ZSIsci50b3BiYXJNb3JlT3BlbiksT2Uuc2V0QXR0cmlidXRlKCJhcmlhLWV4cGFuZGVkIixyLnRvcGJhck1vcmVPcGVuPyJ0cnVlIjoiZmFsc2UiKX0pLGFyLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihiKXt2YXIgQT1iLnRhcmdldCYmYi50YXJnZXQuY2xvc2VzdD9iLnRhcmdldC5jbG9zZXN0KCIudG9wYmFyLW1vcmUtaXRlbSIpOm51bGw7aWYoQSl7dmFyIFI9QS5nZXRBdHRyaWJ1dGUoImRhdGEtYWN0aW9uIik7c3dpdGNoKHIudG9wYmFyTW9yZU9wZW49ITEsYXIuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksT2UuY2xhc3NMaXN0LnJlbW92ZSgiYWN0aXZlIiksT2Uuc2V0QXR0cmlidXRlKCJhcmlhLWV4cGFuZGVkIiwiZmFsc2UiKSxSKXtjYXNlImNvcHktY2xhdWRlLXNlc3Npb24taWQiOnBhKCJjbGF1ZGVTZXNzaW9uSWQiLE50KCkmJk50KCkucHJvdmlkZXI9PT0iY29kZXgiPyJDb2RleCB0aHJlYWQgSUQgXHU1REYyXHU1OTBEXHU1MjM2IjoiQ2xhdWRlIFx1NEYxQVx1OEJERCBJRCBcdTVERjJcdTU5MERcdTUyMzYiKTticmVhaztjYXNlImNvcHktY3dkIjpwYSgiY3dkIiwiXHU1REU1XHU0RjVDXHU3NkVFXHU1RjU1XHU1REYyXHU1OTBEXHU1MjM2Iik7YnJlYWs7Y2FzZSJjb3B5LXNlc3Npb24taWQiOnBhKCJpZCIsIlx1NEYxQVx1OEJERCBJRCBcdTVERjJcdTU5MERcdTUyMzYiKTticmVhaztjYXNlIndvcmt0cmVlLW1lcmdlIjpyLnNlbGVjdGVkSWQmJmdsKHIuc2VsZWN0ZWRJZCk7YnJlYWs7Y2FzZSJ3b3JrdHJlZS1jbGVhbnVwIjpyLnNlbGVjdGVkSWQmJmhsKHIuc2VsZWN0ZWRJZCk7YnJlYWs7Y2FzZSJkZWxldGUtc2Vzc2lvbiI6ci5zZWxlY3RlZElkJiYoZnVuY3Rpb24oQ2Upe3huKCJcdTc4NkVcdTVCOUFcdTg5ODFcdTUyMjBcdTk2NjRcdTVGNTNcdTUyNERcdTRGMUFcdThCRERcdTU0MTdcdUZGMUZcdTZCNjRcdTY0Q0RcdTRGNUNcdTY1RTBcdTZDRDVcdTY0QTRcdTk1MDBcdTMwMDIiLHt0aXRsZToiXHU1MjIwXHU5NjY0XHU1RjUzXHU1MjREXHU0RjFBXHU4QkREIn0pLnRoZW4oZnVuY3Rpb24oQnQpe0J0JiZibyhDZSl9KX0pKHIuc2VsZWN0ZWRJZCk7YnJlYWt9fX0pKTt2YXIgUnI9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlcm1pbmFsLXNjYWxlLWRvd24tdG9wIiksTmk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlcm1pbmFsLXNjYWxlLXVwLXRvcCIpO1JyJiZSci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXtIdSgtLjI1KX0pLE5pJiZOaS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXtIdSguMjUpfSk7dmFyIFNsPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwYWdlLXJlZnJlc2gtYnRuIik7U2wmJlNsLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihiKXtpZihiJiZiLnNoaWZ0S2V5KXtsb2NhdGlvbi5yZWxvYWQoKTtyZXR1cm59U24oKSxBdCh7cHJlc2VydmVTdGlja1N0YXRlOiEwfSksX2EoITApfSk7dmFyIElsPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXJtaW5hbC1qdW1wLWJvdHRvbSIpO0lsJiZJbC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXtGdCgiZm9yY2UiKX0pO3ZhciBUbD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2hhdC11bnJlYWQtYnViYmxlIik7VGwmJlRsLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe0R1KCEwKX0pO3ZhciBMbD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS1leHBsb3Jlci1yZWZyZXNoIik7TGwmJkxsLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe090KCl9KTt2YXIgTWw9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtZXhwbG9yZXItdXAiKTtNbCYmTWwuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLG1jKTt2YXIgVWU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtZXhwbG9yZXItY3dkIik7aWYoVWUmJlVlLnRhZ05hbWU9PT0iSU5QVVQiKXt2YXIgdXI9VWUudmFsdWUscWw9ZnVuY3Rpb24oYil7dmFyIEE9KGJ8fCIiKS50cmltKCk7cmV0dXJuIEE/KEE9QS5yZXBsYWNlKC9cL3syLH0vZywiLyIpLEEubGVuZ3RoPjEmJihBPUEucmVwbGFjZSgvXC8rJC8sIiIpKSxBKToiIn07VWUuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLGZ1bmN0aW9uKCl7dXI9VWUudmFsdWUsc2V0VGltZW91dChmdW5jdGlvbigpe3RyeXtVZS5zZWxlY3QoKX1jYXRjaHt9fSwwKX0pLFVlLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGZ1bmN0aW9uKGIpe2lmKGIua2V5PT09IkVudGVyIil7Yi5wcmV2ZW50RGVmYXVsdCgpO3ZhciBBPXFsKFVlLnZhbHVlKTtpZighQSlyZXR1cm47dXI9QSxVZS52YWx1ZT1BLE90KHtjd2Q6QX0pLFVlLmJsdXIoKX1lbHNlIGIua2V5PT09IkVzY2FwZSImJihiLnByZXZlbnREZWZhdWx0KCksVWUudmFsdWU9dXIsVWUuYmx1cigpKX0pLFVlLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLGZ1bmN0aW9uKCl7dmFyIGI9cWwoVWUudmFsdWUpO2lmKCFiKXtVZS52YWx1ZT11cjtyZXR1cm59aWYoYj09PXVyKXtVZS52YWx1ZT1iO3JldHVybn11cj1iLFVlLnZhbHVlPWIsT3Qoe2N3ZDpifSl9KX12YXIgamk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtc2VhcmNoLWlucHV0IiksV3I9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtc2VhcmNoLWNsZWFyIik7amkmJmppLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IixmdW5jdGlvbihiKXtyLmZpbGVTZWFyY2hRdWVyeT1iLnRhcmdldC52YWx1ZS50cmltKCksV3ImJldyLmNsYXNzTGlzdC50b2dnbGUoInZpc2libGUiLHIuZmlsZVNlYXJjaFF1ZXJ5Lmxlbmd0aD4wKSxSdSgpfSksV3ImJldyLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe3IuZmlsZVNlYXJjaFF1ZXJ5PSIiLGppJiYoamkudmFsdWU9IiIpLFdyLmNsYXNzTGlzdC5yZW1vdmUoInZpc2libGUiKX0pO3ZhciBFZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZm9sZGVyLXBpY2tlci1pbnB1dCIpLEFlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmb2xkZXItcGlja2VyLWRyb3Bkb3duIiksRXU9bnVsbCwkdD0tMSxGbj1bXTtmdW5jdGlvbiBPbChiKXtFZSYmRWUuY2xhc3NMaXN0LmFkZCgiaW52YWxpZCIpO3ZhciBBPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmb2xkZXItcGlja2VyLXZhbGlkYXRpb24iKTtBJiYoQS50ZXh0Q29udGVudD1iLEEuY2xhc3NMaXN0LmFkZCgidmlzaWJsZSIpKX1mdW5jdGlvbiBQbCgpe0VlJiZFZS5jbGFzc0xpc3QucmVtb3ZlKCJpbnZhbGlkIik7dmFyIGI9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZvbGRlci1waWNrZXItdmFsaWRhdGlvbiIpO2ImJihiLnRleHRDb250ZW50PSIiLGIuY2xhc3NMaXN0LnJlbW92ZSgidmlzaWJsZSIpKX1mdW5jdGlvbiBoZyhiKXtpZighYi5sZW5ndGgpcmV0dXJuIiI7dmFyIEE9JzxkaXYgY2xhc3M9ImZvbGRlci1yZWNlbnQtc2VjdGlvbiI+PGRpdiBjbGFzcz0iZm9sZGVyLXJlY2VudC10aXRsZSI+XHU2NzAwXHU4RkQxXHU0RjdGXHU3NTI4PC9kaXY+JztyZXR1cm4gYi5mb3JFYWNoKGZ1bmN0aW9uKFIpe3ZhciBDZT1SLnBhdGh8fFI7QSs9JzxkaXYgY2xhc3M9ImZvbGRlci1yZWNlbnQtaXRlbSIgZGF0YS1wYXRoPSInK3AoQ2UpKyciPicrbHQoQ2UsImZvbGRlci1yZWNlbnQtaXRlbS1wYXRoIikrIjwvZGl2PiJ9KSxBKz0iPC9kaXY+IixBfWZ1bmN0aW9uIHlnKCl7QWUmJmRhKGZ1bmN0aW9uKGIpe3ZhciBBPWhnKGIpO0E/KEFlLmlubmVySFRNTD1BLEFlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLEt0KEFlKSxBZS5xdWVyeVNlbGVjdG9yQWxsKCIuZm9sZGVyLXJlY2VudC1pdGVtIikuZm9yRWFjaChmdW5jdGlvbihSKXtSLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe3ZhciBDZT10aGlzLmRhdGFzZXQucGF0aDtFZSYmKEVlLnZhbHVlPUNlLGVuKENlKSxhbihDZSkpfSl9KSk6enIoKX0pfXZhciBIbD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid29ya2luZy1kaXItaW5kaWNhdG9yIik7SGwmJkhsLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe3Iuc2VsZWN0ZWRJZD1udWxsLHdlKCksci5kcmFmdHM9e30sdG4oKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIGI9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZvbGRlci1waWNrZXItaW5wdXQiKTtiJiZiLmZvY3VzKCl9LDUwKX0pO3ZhciBGdT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZm9sZGVyLXBpY2tlci10b2dnbGUiKSxBZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZm9sZGVyLXBpY2tlci1kcm9wZG93biIpO0Z1JiZBZSYmRnUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7QWUuY2xhc3NMaXN0LnRvZ2dsZSgiaGlkZGVuIiksRnUuY2xhc3NMaXN0LnRvZ2dsZSgib3BlbiIpfSk7dmFyIFJpPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5mb2xkZXItcGlja2VyLWNvbXBhY3QiKTtpZihSaSYmKFJpLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdvdmVyIixmdW5jdGlvbihiKXtiLnByZXZlbnREZWZhdWx0KCksYi5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLmNsYXNzTGlzdC5hZGQoImRyYWctb3ZlciIpfSksUmkuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ2xlYXZlIixmdW5jdGlvbihiKXtiLnByZXZlbnREZWZhdWx0KCksYi5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLmNsYXNzTGlzdC5yZW1vdmUoImRyYWctb3ZlciIpfSksUmkuYWRkRXZlbnRMaXN0ZW5lcigiZHJvcCIsZnVuY3Rpb24oYil7Yi5wcmV2ZW50RGVmYXVsdCgpLGIuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5jbGFzc0xpc3QucmVtb3ZlKCJkcmFnLW92ZXIiKTt2YXIgQT1iLmRhdGFUcmFuc2ZlciYmYi5kYXRhVHJhbnNmZXIuaXRlbXM7aWYoQSlmb3IodmFyIFI9MDtSPEEubGVuZ3RoO1IrKyl7dmFyIENlPUFbUl07aWYoQ2Uua2luZD09PSJmaWxlIiYmQ2Uud2Via2l0R2V0QXNFbnRyeSl7dmFyIEJ0PUNlLndlYmtpdEdldEFzRW50cnkoKTtpZihCdCYmQnQuaXNEaXJlY3RvcnkmJkVlKXt2YXIgTXQ9QnQuZnVsbFBhdGg7RWUudmFsdWU9TXQsZW4oTXQpLGFuKE10KTticmVha319fX0pKSxBZSYmQWUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKGIpe3ZhciBBPWIudGFyZ2V0LmNsb3Nlc3QoIi5mb2xkZXItcGlja2VyLXF1aWNrLWJ0biIpO2lmKEEmJkVlKXt2YXIgUj1BLmRhdGFzZXQucGF0aDtFZS52YWx1ZT1SLGVuKFIpLGFuKFIpLEFlLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpO3ZhciBDZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZm9sZGVyLXBpY2tlci10b2dnbGUiKTtDZSYmQ2UuY2xhc3NMaXN0LnJlbW92ZSgib3BlbiIpfX0pLEVlKXt2YXIgYmc9ZXQoKTthbihiZyksRWUuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLGZ1bmN0aW9uKCl7dmFyIGI9dGhpcy52YWx1ZS50cmltKCk7Yj9hbihiKTp5ZygpfSksRWUuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLGZ1bmN0aW9uKGIpe3ZhciBBPWIudGFyZ2V0LnZhbHVlLnRyaW0oKTskdD0tMSxFdSYmY2xlYXJUaW1lb3V0KEV1KSxFdT1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7QT9hbihBKTp6cigpfSwxNTApfSksRWUuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsZnVuY3Rpb24oYil7aWYoYi5rZXk9PT0iRXNjYXBlIil6cigpLHRoaXMuYmx1cigpO2Vsc2UgaWYoYi5rZXk9PT0iQXJyb3dEb3duIiliLnByZXZlbnREZWZhdWx0KCksRm4ubGVuZ3RoPjAmJigkdD1NYXRoLm1pbigkdCsxLEZuLmxlbmd0aC0xKSxfbCgpKTtlbHNlIGlmKGIua2V5PT09IkFycm93VXAiKWIucHJldmVudERlZmF1bHQoKSwkdD4wJiYoJHQtLSxfbCgpKTtlbHNlIGlmKGIua2V5PT09IkVudGVyIiYmJHQ+PTApe2IucHJldmVudERlZmF1bHQoKTt2YXIgQT1GblskdF07aWYoQSl7dmFyIFI9QS5kYXRhc2V0LnBhdGg7aWYoUj09PSIuLiIpe3ZhciBDZT1FZS52YWx1ZS50cmltKCksQnQ9Q2Uuc3Vic3RyaW5nKDAsQ2UubGFzdEluZGV4T2YoIi8iKSk7QnQmJihFZS52YWx1ZT1CdHx8Ii8iLGVuKEVlLnZhbHVlKSxhbihCdHx8Ii8iKSl9ZWxzZSBFZS52YWx1ZT1SLGVuKFIpLHpyKCl9fX0pfWZ1bmN0aW9uIF9sKCl7Rm4uZm9yRWFjaChmdW5jdGlvbihiLEEpe2IuY2xhc3NMaXN0LnRvZ2dsZSgiYWN0aXZlIixBPT09JHQpfSl9ZnVuY3Rpb24gcmgoYil7fWZ1bmN0aW9uIGFuKGIpe0FlJiYoQWUuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJmb2xkZXItcGlja2VyLWxvYWRpbmciPlx1NTJBMFx1OEY3RFx1NEUyRC4uLjwvZGl2PicsQWUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksJHQ9LTEsRm49W10sZmV0Y2goIi9hcGkvZm9sZGVycz9xPSIrZW5jb2RlVVJJQ29tcG9uZW50KGIpLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihBKXtyZXR1cm4gQS5qc29uKCkudGhlbihmdW5jdGlvbihSKXtyZXR1cm57b2s6QS5vayxzdGF0dXM6QS5zdGF0dXMsZGF0YTpSfX0pfSkudGhlbihmdW5jdGlvbihBKXt2YXIgUj1BLmRhdGE7aWYoIUEub2t8fFIuZXJyb3Ipe09sKFIuZXJyb3J8fCJcdThERUZcdTVGODRcdTY1RTBcdTY1NDgiKSxBZS5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImZvbGRlci1waWNrZXItZXJyb3IiPicrcChSLmVycm9yfHwiXHU4REVGXHU1Rjg0XHU2NUUwXHU2NTQ4IikrIjwvZGl2PiI7cmV0dXJufVBsKCksUi5jdXJyZW50UGF0aDt2YXIgQ2U9Ui5pdGVtc3x8W10sQnQ9Ui5jdXJyZW50UGF0aHx8YjtpZihDZS5sZW5ndGg9PT0wKXtBZS5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImZvbGRlci1waWNrZXItbG9hZGluZyI+XHU3QTdBXHU3NkVFXHU1RjU1PC9kaXY+JztyZXR1cm59QWUuaW5uZXJIVE1MPUNlLm1hcChmdW5jdGlvbihNdCl7dmFyIFdpPU10LnR5cGU9PT0icGFyZW50Ij8iXHUyMUE5XHVGRTBGIjoiXHV7MUY0QzF9Iix3dT1NdC50eXBlPT09InBhcmVudCI/Ii4uIChcdThGRDRcdTU2REVcdTRFMEFcdTdFQTcpIjpNdC5uYW1lO3JldHVybic8ZGl2IGNsYXNzPSJmb2xkZXItcGlja2VyLWl0ZW0iIGRhdGEtcGF0aD0iJytwKE10LnBhdGgpKyciIGRhdGEtdHlwZT0iJytNdC50eXBlKyciPjxzcGFuIGNsYXNzPSJmb2xkZXItcGlja2VyLWl0ZW0taWNvbiI+JytXaSsiPC9zcGFuPjxzcGFuPiIrcCh3dSkrIjwvc3Bhbj48L2Rpdj4ifSkuam9pbigiIiksRm49QXJyYXkuZnJvbShBZS5xdWVyeVNlbGVjdG9yQWxsKCIuZm9sZGVyLXBpY2tlci1pdGVtIikpLEZuLmZvckVhY2goZnVuY3Rpb24oTXQpe010LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe3ZhciBXaT10aGlzLmRhdGFzZXQucGF0aCx3dT10aGlzLmRhdGFzZXQudHlwZTtpZihFZSlpZih3dT09PSJwYXJlbnQiKXt2YXIgV2w9RWUudmFsdWUudHJpbSgpLHpsPVdsLnN1YnN0cmluZygwLFdsLmxhc3RJbmRleE9mKCIvIikpO0VlLnZhbHVlPXpsfHwiLyIsZW4oRWUudmFsdWUpLGFuKHpsfHwiLyIpfWVsc2UgRWUudmFsdWU9V2ksZW4oV2kpLFBsKCksenIoKX0pfSl9KS5jYXRjaChmdW5jdGlvbihBKXtPbCgiXHU1MkEwXHU4RjdEXHU1OTMxXHU4RDI1IiksQWUuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJmb2xkZXItcGlja2VyLWVycm9yIj5cdTUyQTBcdThGN0RcdTU5MzFcdThEMjU8L2Rpdj4nfSkpfWZ1bmN0aW9uIHpyKCl7QWUmJkFlLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLCR0PS0xLEZuPVtdfXZhciB3bj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZm9sZGVyLXBpY2tlci1tb2RhbCIpLE5sPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjbG9zZS1mb2xkZXItcGlja2VyIik7ZnVuY3Rpb24gaWgoKXtpZih3bil7d24uY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksRWUmJihFZS52YWx1ZT1ldCgpKTt2YXIgYj1ldCgpO2FuKGIpfX1ObCYmd24mJk5sLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe3duLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpfSksd24mJnduLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihiKXtiLnRhcmdldD09PXduJiZ3bi5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKX0pO3ZhciBqbD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9wYmFyLWdpdC1iYWRnZSIpO2psJiZqbC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oYil7Yi5wcmV2ZW50RGVmYXVsdCgpLGVzKCl9KTt2YXIgUmw9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInF1aWNrLWNvbW1pdC1tb2RhbCIpO1JsJiZSbC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oYil7Yi50YXJnZXQuaWQ9PT0icXVpY2stY29tbWl0LW1vZGFsIiYmIXIucXVpY2tDb21taXRTdWJtaXR0aW5nJiZObigpfSksdHMoKSxKbigpLHN2KCksRGQoKSxjcCgpLHN0KCl9ZnVuY3Rpb24gQXQoZSl7dmFyIHQ9ZXx8e307ci5sYXN0UmVuZGVyZWRIYXNoPTAsci5sYXN0UmVuZGVyZWRNc2dDb3VudD0wLHIubGFzdFJlbmRlcmVkRW1wdHk9bnVsbCxyLnJlbmRlclBlbmRpbmc9ITEsci5jaGF0UmVuZGVyZWRDb3VudD1yLmNoYXRQYWdlU2l6ZSxyLmFza1VzZXJTZWxlY3Rpb25zPXt9LHIuY2hhdFNjcm9sbEVsZW1lbnQmJihyLmNoYXRTY3JvbGxIYW5kbGVyJiZyLmNoYXRTY3JvbGxFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNjcm9sbCIsci5jaGF0U2Nyb2xsSGFuZGxlciksci5jaGF0U2Nyb2xsV2hlZWxIYW5kbGVyJiZyLmNoYXRTY3JvbGxFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIndoZWVsIixyLmNoYXRTY3JvbGxXaGVlbEhhbmRsZXIpLHIuY2hhdFNjcm9sbFRvdWNoU3RhcnRIYW5kbGVyJiZyLmNoYXRTY3JvbGxFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLHIuY2hhdFNjcm9sbFRvdWNoU3RhcnRIYW5kbGVyKSxyLmNoYXRTY3JvbGxUb3VjaE1vdmVIYW5kbGVyJiZyLmNoYXRTY3JvbGxFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsci5jaGF0U2Nyb2xsVG91Y2hNb3ZlSGFuZGxlcikpLHIuY2hhdFNjcm9sbEVsZW1lbnQ9bnVsbCxyLmNoYXRTY3JvbGxIYW5kbGVyPW51bGwsci5jaGF0U2Nyb2xsV2hlZWxIYW5kbGVyPW51bGwsci5jaGF0U2Nyb2xsVG91Y2hTdGFydEhhbmRsZXI9bnVsbCxyLmNoYXRTY3JvbGxUb3VjaE1vdmVIYW5kbGVyPW51bGwsci5jaGF0SXNQcm9ncmFtbWF0aWNTY3JvbGw9ITEsdC5wcmVzZXJ2ZVN0aWNrU3RhdGV8fChyLmNoYXRTdGlja1RvQm90dG9tPSEwLHIuY2hhdFVucmVhZENvdW50PTAsci5jaGF0VW5yZWFkU3RhcnRJbmRleD0tMSxyLmNoYXRJbml0aWFsUmVuZGVyRG9uZT0hMSl9ZnVuY3Rpb24gZXQoKXtyZXR1cm4gci53b3JraW5nRGlyfHxzbigpfXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJvbmxpbmUiLGZ1bmN0aW9uKCl7ci5pc09ubGluZT0hMCxsaSgpfSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm9mZmxpbmUiLGZ1bmN0aW9uKCl7ci5pc09ubGluZT0hMSxsaSgpfSk7ZnVuY3Rpb24gbGkoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib2ZmbGluZS1iYW5uZXIiKTtpZighci5pc09ubGluZSYmIWUpe3ZhciB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3QuaWQ9Im9mZmxpbmUtYmFubmVyIix0LmNsYXNzTmFtZT0ib2ZmbGluZS1iYW5uZXIiLHQudGV4dENvbnRlbnQ9IllvdSBhcmUgb2ZmbGluZSAtIHNvbWUgZmVhdHVyZXMgbWF5IGJlIGxpbWl0ZWQiLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodCl9ZWxzZSByLmlzT25saW5lJiZlJiZlLnJlbW92ZSgpfWZ1bmN0aW9uIHZmKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFwcCIpO2UmJihlLmlubmVySFRNTD0nPGRpdiBjbGFzcz0iYm9vdC1sb2FkaW5nIj48ZGl2IGNsYXNzPSJib290LWxvYWRpbmctY2FyZCI+PGRpdiBjbGFzcz0iYm9vdC1sb2FkaW5nLXNwaW5uZXIiPjwvZGl2PjxkaXYgY2xhc3M9ImJvb3QtbG9hZGluZy10ZXh0Ij5cdTZCNjNcdTU3MjhcdThGREVcdTYzQTUgV2FuZFx1MjAyNjwvZGl2PjwvZGl2PjwvZGl2PicpfWZ1bmN0aW9uIEZyKGUsdCl7aWYoci5jb25maWcmJiFkb2N1bWVudC5oaWRkZW4pe3ZhciBuPXQmJnQuaW1tZWRpYXRlPT09ITAsaT1EYXRlLm5vdygpOyFuJiZpLXIubGFzdEZvcmVncm91bmRTeW5jQXQ8MTUwMHx8KHIubGFzdEZvcmVncm91bmRTeW5jQXQ9aSxyLmZvcmVncm91bmRTeW5jVGltZXImJihjbGVhclRpbWVvdXQoci5mb3JlZ3JvdW5kU3luY1RpbWVyKSxyLmZvcmVncm91bmRTeW5jVGltZXI9bnVsbCksbWYoZSxuKSl9fWZ1bmN0aW9uIG1mKGUsdCl7cmV0dXJuIXIuY29uZmlnfHxkb2N1bWVudC5oaWRkZW4/UHJvbWlzZS5yZXNvbHZlKCk6KEVzKCksdD91YSgicmVzdW1lLWZvcmNlIik6KCFyLndzfHxyLndzLnJlYWR5U3RhdGUhPT1XZWJTb2NrZXQuT1BFTiYmci53cy5yZWFkeVN0YXRlIT09V2ViU29ja2V0LkNPTk5FQ1RJTkcpJiZuaSgpLHIuY2xhdWRlSGlzdG9yeUxvYWRlZCYmaHMoKSxnbih7c2tpcFNlbGVjdGVkT3V0cHV0UmVsb2FkOiEwfSkuY2F0Y2goZnVuY3Rpb24obil7Y29uc29sZS5lcnJvcigiW3dhbmRdIGZvcmVncm91bmQgc3luYyBmYWlsZWQ6IixlLG4pfSkpfWZ1bmN0aW9uIGdmKCl7d2luZG93Ll9fd2FuZEZvcmVncm91bmRTeW5jQm91bmR8fCh3aW5kb3cuX193YW5kRm9yZWdyb3VuZFN5bmNCb3VuZD0hMCxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIixmdW5jdGlvbigpe2RvY3VtZW50LmhpZGRlbj9hYSgpOihGcigidmlzaWJpbGl0eSIpLEVyKCJ2aXNpYmlsaXR5IikpfSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIixmdW5jdGlvbigpe0ZyKCJmb2N1cyIpfSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInBhZ2VzaG93IixmdW5jdGlvbigpe0ZyKCJwYWdlc2hvdyIpfSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc3VtZSIsZnVuY3Rpb24oKXtGcigicmVzdW1lIil9KSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigid2FuZC1hbmRyb2lkLXJlc3VtZSIsZnVuY3Rpb24oKXtGcigiYW5kcm9pZC1yZXN1bWUiLHtpbW1lZGlhdGU6ITB9KSxFcigiYW5kcm9pZC1yZXN1bWUiKX0pLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJ3YW5kLWltZS1zdGF0ZSIsZnVuY3Rpb24oZSl7dmFyIHQ9ZSYmZS5kZXRhaWwmJmUuZGV0YWlsLnN0YXRlO2lmKHQ9PT0ic2hvd24ifHx0PT09ImhpZGRlbiIpdHJ5e1plKCJuYXRpdmUtaW1lLSIrdCx7Zm9yY2VSZXBsYXk6ITB9KSxGdCgibmF0aXZlLWltZSIpfWNhdGNoe319KSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigid2FuZC1hbmRyb2lkLW5ldHdvcmsiLGZ1bmN0aW9uKGUpe3ZhciB0PWUmJmUuZGV0YWlsJiZlLmRldGFpbC5zdGF0ZTtpZih0PT09Imxvc3QiKXtyLmlzT25saW5lPSExO3RyeXtsaSgpfWNhdGNoe31yZXR1cm59aWYodD09PSJhdmFpbGFibGUifHx0PT09ImNoYW5nZWQifHx0PT09InZhbGlkYXRlZCIpe3IuaXNPbmxpbmU9ITA7dHJ5e2xpKCl9Y2F0Y2h7fXVhKCJhbmRyb2lkLW5ldHdvcmstIit0KX19KSl9ZnVuY3Rpb24gaGYoKXtmZXRjaCgiL2FwaS9zZXNzaW9uLWNoZWNrIix7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIGUub2s/ZS5qc29uKCk6e2F1dGhlZDohMX19KS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiFlfHwhZS5hdXRoZWQ/KHIubG9naW5DaGVja2VkPSEwLHRuKCksbnVsbCk6ZmV0Y2goIi9hcGkvY29uZmlnIix7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIHQub2s/dC5qc29uKCk6KHIubG9naW5DaGVja2VkPSEwLHRuKCksbnVsbCl9KX0pLnRoZW4oZnVuY3Rpb24oZSl7ZSYmKHIuY29uZmlnPWUsci5sb2dpbkNoZWNrZWQ9ITAscmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7dHJ5e3RuKHtza2lwU2hlbGxDaHJvbWU6ITB9KX1jYXRjaHt9Z2YoKSx5cygpLFJ0KCksZGwoKSxBZigpLGUudXBkYXRlQXZhaWxhYmxlJiZlLmxhdGVzdFZlcnNpb24mJktzKGUuY3VycmVudFZlcnNpb258fCItIixlLmxhdGVzdFZlcnNpb24pLFRuJiZ6bSgpLGNuJiZVbSgpLHIuY2xhdWRlSGlzdG9yeUxvYWRlZHx8c2V0VGltZW91dChmdW5jdGlvbigpe3IuY2xhdWRlSGlzdG9yeUxvYWRlZHx8dGkoKX0sNjAwKX0pKX0pLmNhdGNoKGZ1bmN0aW9uKCl7aWYoci5sb2dpbkNoZWNrZWQ9ITAsIW5hdmlnYXRvci5vbkxpbmUpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcHAiKTtlJiYoZS5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImJvb3QtbG9hZGluZyI+PGRpdiBjbGFzcz0iYm9vdC1sb2FkaW5nLWNhcmQiPjxkaXYgY2xhc3M9ImJvb3QtbG9hZGluZy10ZXh0IiBzdHlsZT0iZm9udC1zaXplOjEuM2VtO21hcmdpbi1ib3R0b206MTJweDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Z2FwOjhweCI+Jyt6KCJzaWduYWwiLHtzaXplOjIwLHN0cm9rZVdpZHRoOjEuOH0pKyc8c3Bhbj5cdTY1RTBcdTZDRDVcdThGREVcdTYzQTVcdTUyMzBcdTY3MERcdTUyQTFcdTU2Njg8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0iYm9vdC1sb2FkaW5nLXRleHQiIHN0eWxlPSJvcGFjaXR5OjAuNztmb250LXNpemU6MC45NWVtIj5cdThCRjdcdTY4QzBcdTY3RTVcdTdGNTFcdTdFRENcdThGREVcdTYzQTVcdTYyMTZcdTc4NkVcdThCQTQgV2FuZCBcdTY3MERcdTUyQTFcdTZCNjNcdTU3MjhcdThGRDBcdTg4NENcdTMwMDI8L2Rpdj48YnV0dG9uIG9uY2xpY2s9ImxvY2F0aW9uLnJlbG9hZCgpIiBzdHlsZT0ibWFyZ2luLXRvcDoxOHB4O3BhZGRpbmc6OHB4IDI0cHg7Ym9yZGVyLXJhZGl1czo4cHg7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDE1MCwxMTgsODUsMC4zKTtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsMC44KTtjdXJzb3I6cG9pbnRlcjtmb250LXNpemU6MC45NWVtIj5cdTkxQ0RcdThCRDU8L2J1dHRvbj48L2Rpdj48L2Rpdj4nKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigib25saW5lIixmdW5jdGlvbigpe2xvY2F0aW9uLnJlbG9hZCgpfSx7b25jZTohMH0pO3JldHVybn10bigpfSl9ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKGUpe2lmKCFOZSgpJiYhci5zaWRlYmFyUGlubmVkJiYhci5zaWRlYmFyQ29sbGFwc2VkJiZyLnNlc3Npb25zRHJhd2VyT3Blbil7dmFyIHQ9ZS50YXJnZXQ7IXR8fCEodCBpbnN0YW5jZW9mIEVsZW1lbnQpfHx0LmNsb3Nlc3QoIiNzZXNzaW9ucy1kcmF3ZXIiKXx8dC5jbG9zZXN0KCIjc2Vzc2lvbnMtdG9nZ2xlLWJ1dHRvbiIpfHx0LmNsb3Nlc3QoIi5mbG9hdGluZy1zaWRlYmFyLXRvZ2dsZSIpfHx0LmNsb3Nlc3QoIi5zaWRlYmFyLXRpbGUtYnViYmxlIil8fHQuY2xvc2VzdCgiLm1vZGFsLWJhY2tkcm9wLCAubW9kYWwtb3ZlcmxheSwgLm1vZGFsLWNvbnRhaW5lciwgW3JvbGU9J2RpYWxvZyddLCBbcm9sZT0nbWVudSddLCAudG9wYmFyLW1vcmUtbWVudSwgLnNpZGViYXItaGVhZGVyLW92ZXJmbG93LCAuZm9sZGVyLXBpY2tlci1kcm9wZG93biwgLnBhdGgtc3VnZ2VzdGlvbnMsIC5wZXJtaXNzaW9uLXByb21wdC1vdmVybGF5LCAucmVzdGFydC1vdmVybGF5Iil8fHltKCl9fSwhMCksdmYoKSxoZigpO2Z1bmN0aW9uIHRuKGUpe3ZhciB0PWUmJmUuc2tpcFNoZWxsQ2hyb21lLG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFwcCIpLGk9ci5jb25maWchPT1udWxsLGE9ci5tb2RhbE9wZW4sdT0haXx8ISFkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0Iik7aWYodSYmYnIoKSxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0LmFkZCgibm8tdHJhbnNpdGlvbiIpLHIuc2lkZWJhclBpbm5lZCYmIXIuc2lkZWJhckNvbGxhcHNlZCYmIU5lKCkmJihyLnNlc3Npb25zRHJhd2VyT3Blbj0hMCx4ZSgid2FuZC1zaWRlYmFyLW9wZW4iLCEwKSksbi5pbm5lckhUTUw9aT9FZigpOmJmKCksQXQoKSxwZigpLHFyKCkseGkoKSxabihOdCgpKSxxaSgpLHR8fE1yKCksaSYmci5maWxlUGFuZWxPcGVuJiZPdCgpLGRvY3VtZW50LmJvZHkub2Zmc2V0SGVpZ2h0LHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCJuby10cmFuc2l0aW9uIil9KSxhJiZyLm1vZGFsT3Blbil7dmFyIHM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlc3Npb24tbW9kYWwiKTtpZihzKXtzLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpO3ZhciBvPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjd2QiKTtvJiYoby52YWx1ZT1yLmN3ZFZhbHVlKSxMcigpfX1pZihpJiZyLnNlbGVjdGVkSWQmJnIuZ2l0U3RhdHVzU2Vzc2lvbklkIT09ci5zZWxlY3RlZElkJiZEbihyLnNlbGVjdGVkSWQpLGkpe3ZhciBsPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihjKXtyZXR1cm4gYy5pZD09PXIuc2VsZWN0ZWRJZH0pO2d1KGwpfWlyKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b3BiYXItY3dkIikpLGlyKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJibGFuay1jaGF0LWN3ZC1wYXRoIikpLGlyKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3b3JraW5nLWRpci1pbmRpY2F0b3ItcGF0aCIpKSxLdCgpfWZ1bmN0aW9uIHlmKCl7dmFyIGU9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKG4pe3JldHVybiBuLmlkPT09ci5zZWxlY3RlZElkfSksdD1lJiZlLmFwcHJvdmFsU3RhdHM7cmV0dXJuIXR8fHQudG90YWw9PT0wPyc8c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMgaGlkZGVuIiBpZD0iYXBwcm92YWwtc3RhdHMiPjwvc3Bhbj4nOic8c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMiIGlkPSJhcHByb3ZhbC1zdGF0cyI+PHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLWRpdmlkZXIiPjwvc3Bhbj48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtYmFkZ2UiIGlkPSJhcHByb3ZhbC1zdGF0cy1iYWRnZSIgdGl0bGU9Ilx1NjcyQ1x1NkIyMVx1NEYxQVx1OEJERFx1ODFFQVx1NTJBOFx1NjI3OVx1NTFDNlx1N0VERlx1OEJBMSI+PHN2ZyBjbGFzcz0iYXBwcm92YWwtc3RhdHMtaWNvbiIgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTEyIDIyczgtNCA4LTEwVjVsLTgtMy04IDN2N2MwIDYgOCAxMCA4IDEweiIvPjwvc3ZnPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy10b3RhbCI+Jyt0LnRvdGFsKyc8L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1wb3B1cCIgaWQ9ImFwcHJvdmFsLXN0YXRzLXBvcHVwIj48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcG9wdXAtdGl0bGUiPlx1ODFFQVx1NTJBOFx1NjI3OVx1NTFDNlx1N0VERlx1OEJBMTwvc3Bhbj4nKyh0LmNvbW1hbmQ+MD8nPHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXJvdyI+PHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXJvdy1pY29uIj4nK3ooInRlcm1pbmFsIix7c2l6ZToxMixzdHJva2VXaWR0aDoxLjh9KSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ctbGFiZWwiPlx1NTQ3RFx1NEVFNFx1NjI2N1x1ODg0Qzwvc3Bhbj48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93LWNvdW50Ij4nK3QuY29tbWFuZCsiPC9zcGFuPjwvc3Bhbj4iOiIiKSsodC5maWxlPjA/JzxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ciPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ctaWNvbiI+Jyt6KCJlZGl0Iix7c2l6ZToxMixzdHJva2VXaWR0aDoxLjh9KSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ctbGFiZWwiPlx1NjU4N1x1NEVGNlx1NTE5OVx1NTE2NTwvc3Bhbj48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93LWNvdW50Ij4nK3QuZmlsZSsiPC9zcGFuPjwvc3Bhbj4iOiIiKSsodC50b29sPjA/JzxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ciPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ctaWNvbiI+Jyt6KCJ3cmVuY2giLHtzaXplOjEyLHN0cm9rZVdpZHRoOjEuOH0pKyc8L3NwYW4+PHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXJvdy1sYWJlbCI+XHU1MTc2XHU0RUQ2XHU1REU1XHU1MTc3PC9zcGFuPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ctY291bnQiPicrdC50b29sKyI8L3NwYW4+PC9zcGFuPiI6IiIpKyc8c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93IGFwcHJvdmFsLXN0YXRzLXJvdy10b3RhbCI+PHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXJvdy1pY29uIj4nK3ooInNpZ21hIix7c2l6ZToxMixzdHJva2VXaWR0aDoxLjh9KSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ctbGFiZWwiPlx1NTQwOFx1OEJBMTwvc3Bhbj48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93LWNvdW50Ij4nK3QudG90YWwrIjwvc3Bhbj48L3NwYW4+PC9zcGFuPjwvc3Bhbj4ifWZ1bmN0aW9uIGJmKCl7cmV0dXJuIHIubG9naW5DaGVja2VkPyc8ZGl2IGNsYXNzPSJsb2dpbi1jb250YWluZXIiPjxkaXYgY2xhc3M9ImxvZ2luLWNhcmQiPjxkaXYgY2xhc3M9ImxvZ2luLWhlYWRlciI+PGRpdiBjbGFzcz0ibG9naW4tbG9nbyI+PGRpdiBjbGFzcz0ibG9naW4tbG9nby1pY29uIj5XPC9kaXY+PHNwYW4gY2xhc3M9ImxvZ2luLWxvZ28tdGV4dCI+V2FuZDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJsb2dpbi1zdWJ0aXRsZSI+XHU1NzI4XHU2RDRGXHU4OUM4XHU1NjY4XHU0RTJEXHU4RkQwXHU4ODRDXHU2NzJDXHU2NzNBXHU3RUM4XHU3QUVGPC9kaXY+PC9kaXY+PGZvcm0gaWQ9ImxvZ2luLWZvcm0iIGNsYXNzPSJsb2dpbi1ib2R5IiBhdXRvY29tcGxldGU9Im9uIj48aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0idXNlcm5hbWUiIGF1dG9jb21wbGV0ZT0idXNlcm5hbWUiIHZhbHVlPSJ3YW5kIiB0YWJpbmRleD0iLTEiIGFyaWEtaGlkZGVuPSJ0cnVlIiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7bGVmdDotOTk5OXB4O3dpZHRoOjFweDtoZWlnaHQ6MXB4O29wYWNpdHk6MDtwb2ludGVyLWV2ZW50czpub25lIiByZWFkb25seSAvPjxwIGNsYXNzPSJsb2dpbi1oaW50Ij5cdThGOTNcdTUxNjUgV2FuZCBcdThCQkZcdTk1RUVcdTVCQzZcdTc4MDFcdTRFRTVcdThGREJcdTUxNjVcdTYzQTdcdTUyMzZcdTUzRjBcdTMwMDI8L3A+PGRpdiBjbGFzcz0iZmllbGQiPjxsYWJlbCBjbGFzcz0iZmllbGQtbGFiZWwiIGZvcj0icGFzc3dvcmQiPlx1NUJDNlx1NzgwMTwvbGFiZWw+PGRpdiBjbGFzcz0icGFzc3dvcmQtZmllbGQiPjxpbnB1dCBpZD0icGFzc3dvcmQiIHR5cGU9InBhc3N3b3JkIiBjbGFzcz0iZmllbGQtaW5wdXQgcGFzc3dvcmQtaW5wdXQiIHBsYWNlaG9sZGVyPSJcdThGOTNcdTUxNjVcdThCQkZcdTk1RUVcdTVCQzZcdTc4MDEiIGF1dG9jb21wbGV0ZT0iY3VycmVudC1wYXNzd29yZCIgZGF0YS1lcnJvcj0iZmFsc2UiIGFyaWEtZGVzY3JpYmVkYnk9InBhc3N3b3JkLWhpbnQgbG9naW4tZXJyb3IiIGFyaWEtaW52YWxpZD0iZmFsc2UiIC8+PGJ1dHRvbiBpZD0idG9nZ2xlLXBhc3N3b3JkLWJ1dHRvbiIgdHlwZT0iYnV0dG9uIiBjbGFzcz0icGFzc3dvcmQtdG9nZ2xlIiBhcmlhLWxhYmVsPSJcdTY2M0VcdTc5M0FcdTVCQzZcdTc4MDEiIGFyaWEtcHJlc3NlZD0iZmFsc2UiPlx1NjYzRVx1NzkzQTwvYnV0dG9uPjwvZGl2PjxwIGlkPSJwYXNzd29yZC1oaW50IiBjbGFzcz0iaGludCI+XHU0RjdGXHU3NTI4XHU0RjYwXHU1NzI4IFdhbmQgXHU0RTJEXHU4QkJFXHU3RjZFXHU3Njg0XHU4QkJGXHU5NUVFXHU1QkM2XHU3ODAxXHUzMDAyPC9wPjxwIGlkPSJsb2dpbi1lcnJvciIgY2xhc3M9ImVycm9yLW1lc3NhZ2UgaGlkZGVuIiByb2xlPSJhbGVydCI+PC9wPjwvZGl2PjxkaXYgaWQ9ImxvZ2luLWNlcnQtaGludCIgY2xhc3M9ImxvZ2luLWNlcnQtaGludCBoaWRkZW4iIHJvbGU9ImFsZXJ0Ij48ZGl2IGNsYXNzPSJsb2dpbi1jZXJ0LWhpbnQtdGl0bGUiPlx1OEJDMVx1NEU2Nlx1NEUwRFx1NTNEN1x1NEZFMVx1NEVGQlx1RkYwQ1x1NzY3Qlx1NUY1NVx1NjAwMVx1NjVFMFx1NkNENVx1NEZERFx1NUI1ODwvZGl2PjxwIGNsYXNzPSJsb2dpbi1jZXJ0LWhpbnQtYm9keSI+XHU1QkM2XHU3ODAxXHU2NjJGXHU1QkY5XHU3Njg0XHVGRjBDXHU0RjQ2XHU1RjUzXHU1MjREIEhUVFBTIFx1OEJDMVx1NEU2Nlx1NEUwRFx1NTNEN1x1NkQ0Rlx1ODlDOFx1NTY2OFx1NEZFMVx1NEVGQlx1RkYwQ1x1NkQ0Rlx1ODlDOFx1NTY2OFx1NTZFMFx1NkI2NFx1NjJEMlx1N0VERFx1NEZERFx1NUI1OFx1NzY3Qlx1NUY1NSBDb29raWVcdUZGMENcdTYyNDBcdTRFRTVcdThGREJcdTRFMERcdTRFODZcdTYzQTdcdTUyMzZcdTUzRjBcdTMwMDI8YnIvPlx1ODlFM1x1NTFCM1x1NTI5RVx1NkNENVx1RkYwOFx1NEVGQlx1OTAwOVx1NTE3Nlx1NEUwMFx1RkYwOVx1RkYxQVx1NjUzOVx1NzUyOCBIVFRQIFx1OEJCRlx1OTVFRVx1NjcyQ1x1NjcwRFx1NTJBMVx1RkYxQlx1NjIxNlx1NjI4QVx1NjcyQ1x1NjcwRFx1NTJBMVx1OEJDMVx1NEU2Nlx1OEJCRVx1NEUzQVx1MzAwQ1x1NTNEN1x1NEZFMVx1NEVGQlx1MzAwRFx1RkYwOFx1NjNBOFx1ODM1MCBta2NlcnRcdUZGMDlcdUZGMUJcdTYyMTZcdTU3MjhcdTY3MkNcdTY3M0FcdTVDMDZcdThCRTVcdTgxRUFcdTdCN0VcdThCQzFcdTRFNjZcdThCQkVcdTRFM0FcdTVCOENcdTUxNjhcdTRGRTFcdTRFRkJcdTU0MEVcdTkxQ0RcdThCRDVcdTMwMDI8L3A+PGEgaWQ9ImxvZ2luLWNlcnQtaHR0cC1saW5rIiBjbGFzcz0iYnRuIGJ0bi1naG9zdCBidG4tYmxvY2siIGhyZWY9IiMiIHJlbD0ibm9vcGVuZXIiPlx1NjUzOVx1NzUyOCBIVFRQIFx1OEJCRlx1OTVFRTwvYT48L2Rpdj48YnV0dG9uIGlkPSJsb2dpbi1idXR0b24iIHR5cGU9InN1Ym1pdCIgY2xhc3M9ImJ0biBidG4tcHJpbWFyeSBidG4tYmxvY2siPlx1OEZEQlx1NTE2NVx1NjNBN1x1NTIzNlx1NTNGMDwvYnV0dG9uPicrKFhhKCk/JzxidXR0b24gaWQ9ImxvZ2luLXN3aXRjaC1zZXJ2ZXItYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1naG9zdCBidG4tYmxvY2sgbG9naW4tc3dpdGNoLXNlcnZlciIgdHlwZT0iYnV0dG9uIj48c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxyZWN0IHg9IjIiIHk9IjMiIHdpZHRoPSIyMCIgaGVpZ2h0PSI4IiByeD0iMiIvPjxyZWN0IHg9IjIiIHk9IjEzIiB3aWR0aD0iMjAiIGhlaWdodD0iOCIgcng9IjIiLz48bGluZSB4MT0iNiIgeTE9IjciIHgyPSI2LjAxIiB5Mj0iNyIvPjxsaW5lIHgxPSI2IiB5MT0iMTciIHgyPSI2LjAxIiB5Mj0iMTciLz48L3N2Zz48c3Bhbj5cdTUyMDdcdTYzNjJcdTY3MERcdTUyQTFcdTU2Njg8L3NwYW4+PC9idXR0b24+JzoiIikrIjwvZm9ybT48L2Rpdj48L2Rpdj4iOic8ZGl2IGNsYXNzPSJsb2dpbi1jb250YWluZXIiPjxkaXYgY2xhc3M9ImxvZ2luLWNhcmQgbG9naW4tY2FyZC1sb2FkaW5nIj48ZGl2IGNsYXNzPSJsb2dpbi1oZWFkZXIiPjxkaXYgY2xhc3M9ImxvZ2luLWxvZ28iPjxkaXYgY2xhc3M9ImxvZ2luLWxvZ28taWNvbiI+VzwvZGl2PjxzcGFuIGNsYXNzPSJsb2dpbi1sb2dvLXRleHQiPldhbmQ8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0ibG9naW4tc3VidGl0bGUiPlx1NkI2M1x1NTcyOFx1NjA2Mlx1NTkwRFx1NzY3Qlx1NUY1NVx1NzJCNlx1NjAwMTwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImxvZ2luLWJvZHkiPjxkaXYgY2xhc3M9ImxvZ2luLXN0YXR1cyI+PHNwYW4gY2xhc3M9ImxvZ2luLXNwaW5uZXIiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L3NwYW4+PGRpdj48cCBjbGFzcz0ibG9naW4taGludCI+XHU2QjYzXHU1NzI4XHU2OEMwXHU2N0U1XHU2NzJDXHU1NzMwXHU3NjdCXHU1RjU1XHU0RjFBXHU4QkREXHVGRjBDXHU4QkY3XHU3QTBEXHU1MDE5XHUzMDAyPC9wPjxwIGNsYXNzPSJsb2dpbi1tdXRlZCI+XHU1OTgyXHU2NzlDXHU0RjYwXHU1MjFBXHU1MjM3XHU2NUIwXHU5ODc1XHU5NzYyXHVGRjBDXHU4RkQ5XHU2NjJGXHU2QjYzXHU1RTM4XHU3M0IwXHU4QzYxXHUzMDAyPC9wPjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2Pid9ZnVuY3Rpb24gRWYoKXt2YXIgZT0iPFwvc2NyaXB0PiIsdD1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oZyl7cmV0dXJuIGcuaWQ9PT1yLnNlbGVjdGVkSWR9KSxuPXQ/JG4odC5jb21tYW5kKToiXHU2NzJBXHU5MDA5XHU2MkU5XHU0RjFBXHU4QkREIixpPXQ/dC5tb2RlKyIgfCAiK3Quc3RhdHVzOiJcdTcwQjlcdTUxRkJcdTRFMEFcdTY1QjlcdTMwMENcdTY1QjBcdTVCRjlcdThCRERcdTMwMERcdTVGMDBcdTU5Q0IiLGE9ci5zZWxlY3RlZElkJiZyLmRyYWZ0c1tyLnNlbGVjdGVkSWRdfHwiIix1PXIuc2Vzc2lvbnNEcmF3ZXJPcGVuPyIgb3BlbiI6IiIscz1PdSgpPyIgb3BlbiI6IiIsbz1adigpLGw9U3QobyxyLmNoYXRNb2RlKSxjPU5lKCksZj0hIXIuc2lkZWJhclBpbm5lZCYmISFyLnNpZGViYXJDb2xsYXBzZWQsZD1mfHwhYyYmKCEhci5zaWRlYmFyUGlubmVkfHwhIXIuc2Vzc2lvbnNEcmF3ZXJPcGVuKSx2PWY/IiBzaWRlYmFyLWNvbGxhcHNlZCI6IiIsaD1mPyIgY29sbGFwc2VkIjoiIjtyZXR1cm4nPGRpdiBjbGFzcz0iYXBwLWNvbnRhaW5lciI+PGRpdiBpZD0ic2Vzc2lvbnMtZHJhd2VyLWJhY2tkcm9wIiBjbGFzcz0iZHJhd2VyLWJhY2tkcm9wJytzKyciPjwvZGl2PjxkaXYgY2xhc3M9Im1haW4tbGF5b3V0Jysoci5zZXNzaW9uc0RyYXdlck9wZW4/IiBzaWRlYmFyLW9wZW4iOiIiKSsoZD8iIHNpZGViYXItcGlubmVkIjoiIikrdisnIj48YXNpZGUgaWQ9InNlc3Npb25zLWRyYXdlciIgY2xhc3M9InNpZGViYXInK3UrKGQ/IiBwaW5uZWQiOiIiKStoKyciPjxkaXYgY2xhc3M9InNpZGViYXItaGVhZGVyIj48ZGl2IGNsYXNzPSJzaWRlYmFyLWhlYWRlci1tYWluIj48ZGl2IGNsYXNzPSJ0b3BiYXItbG9nby1pY29uIj5XPC9kaXY+PHNwYW4gY2xhc3M9InNpZGViYXItdGl0bGUiPlx1NEYxQVx1OEJERDwvc3Bhbj48c3BhbiBjbGFzcz0ic2Vzc2lvbi1jb3VudCIgaWQ9InNlc3Npb24tY291bnQiPicrU3RyaW5nKHIuc2Vzc2lvbnMubGVuZ3RoKSsnPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InNpZGViYXItaGVhZGVyLWFjdGlvbnMiPjxkaXYgY2xhc3M9InNpZGViYXItaGVhZGVyLW1vcmUiPjxidXR0b24gaWQ9InNpZGViYXItbW9yZS1idG4iIGNsYXNzPSJidG4gYnRuLWdob3N0IGJ0bi1zbSIgdHlwZT0iYnV0dG9uIiB0aXRsZT0iXHU2NkY0XHU1OTFBXHU2NENEXHU0RjVDIj48c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxjaXJjbGUgY3g9IjEyIiBjeT0iNSIgcj0iMS41Ii8+PGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMS41Ii8+PGNpcmNsZSBjeD0iMTIiIGN5PSIxOSIgcj0iMS41Ii8+PC9zdmc+PC9idXR0b24+PGRpdiBjbGFzcz0ic2lkZWJhci1oZWFkZXItb3ZlcmZsb3ciIGlkPSJzaWRlYmFyLW92ZXJmbG93LW1lbnUiPjxidXR0b24gY2xhc3M9Im92ZXJmbG93LWl0ZW0iIGlkPSJzaWRlYmFyLWhvbWUtYnRuIiB0eXBlPSJidXR0b24iPjxzdmcgd2lkdGg9IjE1IiBoZWlnaHQ9IjE1IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTMgOWw5LTcgOSA3djExYTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yeiIvPjxwb2x5bGluZSBwb2ludHM9IjkgMjIgOSAxMiAxNSAxMiAxNSAyMiIvPjwvc3ZnPjxzcGFuPlx1NTZERVx1NTIzMFx1OTk5Nlx1OTg3NTwvc3Bhbj48L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJvdmVyZmxvdy1pdGVtIiBpZD0ic2lkZWJhci1yZWZyZXNoLWJ0biIgdHlwZT0iYnV0dG9uIj48c3ZnIHdpZHRoPSIxNSIgaGVpZ2h0PSIxNSIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwb2x5bGluZSBwb2ludHM9IjIzIDQgMjMgMTAgMTcgMTAiLz48cGF0aCBkPSJNMjAuNDkgMTVhOSA5IDAgMSAxLTIuMTItOS4zNkwyMyAxMCIvPjwvc3ZnPjxzcGFuPlx1NTIzN1x1NjVCMFx1OTg3NVx1OTc2Mjwvc3Bhbj48L2J1dHRvbj48L2Rpdj48L2Rpdj48YnV0dG9uIGlkPSJzaWRlYmFyLXBpbi1idG4iIGNsYXNzPSJidG4gYnRuLWdob3N0IGJ0bi1zbSBzaWRlYmFyLXBpbi10b2dnbGUnKyhyLnNpZGViYXJQaW5uZWQ/IiBwaW5uZWQiOiIiKSsnIiB0eXBlPSJidXR0b24iIHRpdGxlPSInKyhyLnNpZGViYXJQaW5uZWQ/Ilx1NURGMlx1NTZGQVx1NUI5QVx1NUUzOFx1OUE3Qlx1RkYwOFx1NzBCOVx1NTFGQlx1ODlFM1x1OTY2NFx1OTUwMVx1NUI5QVx1RkYwOSI6Ilx1NTZGQVx1NUI5QVx1NEZBN1x1NjgwRlx1NUUzOFx1OUE3QiIpKyciIGFyaWEtbGFiZWw9IicrKHIuc2lkZWJhclBpbm5lZD8iXHU4OUUzXHU5NjY0XHU1NkZBXHU1QjlBXHU1RTM4XHU5QTdCIjoiXHU1NkZBXHU1QjlBXHU0RkE3XHU2ODBGXHU1RTM4XHU5QTdCIikrJyIgYXJpYS1wcmVzc2VkPSInKyhyLnNpZGViYXJQaW5uZWQ/InRydWUiOiJmYWxzZSIpKyciPjxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxsaW5lIHgxPSIxMiIgeTE9IjE3IiB4Mj0iMTIiIHkyPSIyMiIvPjxwYXRoIGQ9Ik01IDE3aDE0di0xLjc2YTIgMiAwIDAgMC0xLjExLTEuNzlsLTEuNzgtLjlBMiAyIDAgMCAxIDE1IDEwLjc2VjZoMWEyIDIgMCAwIDAgMC00SDhhMiAyIDAgMCAwIDAgNGgxdjQuNzZhMiAyIDAgMCAxLTEuMTEgMS43OWwtMS43OC45QTIgMiAwIDAgMCA1IDE1LjI0eiIvPjwvc3ZnPjwvYnV0dG9uPjxidXR0b24gaWQ9InNpZGViYXItY29sbGFwc2UtYnRuIiBjbGFzcz0iYnRuIGJ0bi1naG9zdCBidG4tc20gc2lkZWJhci1jb2xsYXBzZS10b2dnbGUnKyhmPyIgY29sbGFwc2VkIjoiIikrJyIgdHlwZT0iYnV0dG9uIiB0aXRsZT0iJysoZj8iXHU1QzU1XHU1RjAwXHU0RTNBXHU1MTY4XHU1QzNBXHU1QkY4IjoiXHU2NTM2XHU4RDc3XHU0RTNBXHU3QTg0XHU2NzYxIikrJyIgYXJpYS1sYWJlbD0iJysoZj8iXHU1QzU1XHU1RjAwXHU0RTNBXHU1MTY4XHU1QzNBXHU1QkY4IjoiXHU2NTM2XHU4RDc3XHU0RTNBXHU3QTg0XHU2NzYxIikrJyI+JysoZj8nPHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi40IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48cG9seWxpbmUgcG9pbnRzPSIxMCA2IDE2IDEyIDEwIDE4Ii8+PGxpbmUgeDE9IjIwIiB5MT0iNSIgeDI9IjIwIiB5Mj0iMTkiLz48L3N2Zz4nOic8c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyLjQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxwb2x5bGluZSBwb2ludHM9IjE0IDYgOCAxMiAxNCAxOCIvPjxsaW5lIHgxPSI0IiB5MT0iNSIgeDI9IjQiIHkyPSIxOSIvPjwvc3ZnPicpKyc8L2J1dHRvbj48YnV0dG9uIGlkPSJjbG9zZS1kcmF3ZXItYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1naG9zdCBidG4taWNvbiBzaWRlYmFyLWNsb3NlIGRyYXdlci1jbG9zZS1idG4iIHR5cGU9ImJ1dHRvbiIgYXJpYS1sYWJlbD0iXHU1MTczXHU5NUVEXHU4M0RDXHU1MzU1Ij48c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyLjQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxsaW5lIHgxPSI2IiB5MT0iNiIgeDI9IjE4IiB5Mj0iMTgiLz48bGluZSB4MT0iMTgiIHkxPSI2IiB4Mj0iNiIgeTI9IjE4Ii8+PC9zdmc+PC9idXR0b24+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ic2lkZWJhci1ib2R5Ij48ZGl2IGlkPSJzZXNzaW9ucy1wYW5lbCI+PGRpdiBjbGFzcz0ic2Vzc2lvbnMtbGlzdCIgaWQ9InNlc3Npb25zLWxpc3QiPicrcmEoKSsnPC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ic2lkZWJhci1mb290ZXIiPjxidXR0b24gaWQ9ImRyYXdlci1uZXctc2Vzc2lvbi1idXR0b24iIGNsYXNzPSJidG4gYnRuLXByaW1hcnkgYnRuLWJsb2NrIj48c3Bhbj4rPC9zcGFuPiBcdTY1QjBcdTRGMUFcdThCREQ8L2J1dHRvbj48ZGl2IGNsYXNzPSJzaWRlYmFyLWZvb3Rlci1hY3Rpb25zIj48YnV0dG9uIGlkPSJmaWxlLXBhbmVsLXRvZ2dsZS1idG4iIGNsYXNzPSJidG4gYnRuLWdob3N0IGJ0bi1zbScrKHIuZmlsZVBhbmVsT3Blbj8iIGFjdGl2ZSI6IiIpKyciIHR5cGU9ImJ1dHRvbiIgdGl0bGU9Ilx1NjdFNVx1NzcwQlx1NjU4N1x1NEVGNiI+PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNMjIgMTlhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDVsMiAzaDlhMiAyIDAgMCAxIDIgMnoiLz48L3N2Zz48c3Bhbj5cdTY1ODdcdTRFRjY8L3NwYW4+PC9idXR0b24+PGJ1dHRvbiBpZD0ic2V0dGluZ3MtYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1naG9zdCBidG4tc20iIHR5cGU9ImJ1dHRvbiIgdGl0bGU9Ilx1OEJCRVx1N0Y2RSI+PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIzIi8+PHBhdGggZD0iTTE5LjQgMTVhMS42NSAxLjY1IDAgMCAwIC4zMyAxLjgybC4wNi4wNmEyIDIgMCAwIDEtMi44MyAyLjgzbC0uMDYtLjA2YTEuNjUgMS42NSAwIDAgMC0xLjgyLS4zMyAxLjY1IDEuNjUgMCAwIDAtMSAxLjUxVjIxYTIgMiAwIDAgMS00IDB2LS4wOUExLjY1IDEuNjUgMCAwIDAgOSAxOS40YTEuNjUgMS42NSAwIDAgMC0xLjgyLjMzbC0uMDYuMDZhMiAyIDAgMCAxLTIuODMtMi44M2wuMDYtLjA2QTEuNjUgMS42NSAwIDAgMCA0LjY4IDE1YTEuNjUgMS42NSAwIDAgMC0xLjUxLTFIM2EyIDIgMCAwIDEgMC00aC4wOUExLjY1IDEuNjUgMCAwIDAgNC42IDlhMS42NSAxLjY1IDAgMCAwLS4zMy0xLjgybC0uMDYtLjA2YTIgMiAwIDAgMSAyLjgzLTIuODNsLjA2LjA2QTEuNjUgMS42NSAwIDAgMCA5IDQuNjhhMS42NSAxLjY1IDAgMCAwIDEtMS41MVYzYTIgMiAwIDAgMSA0IDB2LjA5YTEuNjUgMS42NSAwIDAgMCAxIDEuNTEgMS42NSAxLjY1IDAgMCAwIDEuODItLjMzbC4wNi0uMDZhMiAyIDAgMCAxIDIuODMgMi44M2wtLjA2LjA2QTEuNjUgMS42NSAwIDAgMCAxOS40IDlhMS42NSAxLjY1IDAgMCAwIDEuNTEgMUgyMWEyIDIgMCAwIDEgMCA0aC0uMDlhMS42NSAxLjY1IDAgMCAwLTEuNTEgMXoiLz48L3N2Zz48c3Bhbj5cdThCQkVcdTdGNkU8L3NwYW4+PC9idXR0b24+JysoJHYoKT8nPGJ1dHRvbiBpZD0iYmFjay10by1uYXRpdmUtYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1naG9zdCBidG4tc20gc2lkZWJhci1iYWNrLXRvLW5hdGl2ZSIgdHlwZT0iYnV0dG9uIiB0aXRsZT0iXHU4RkQ0XHU1NkRFIEFwcCBcdTUzOUZcdTc1MUZcdTc1NENcdTk3NjIiPjxzdmcgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHJlY3QgeD0iMTAiIHk9IjMiIHdpZHRoPSIxMSIgaGVpZ2h0PSIxOCIgcng9IjIiLz48bGluZSB4MT0iMTQiIHkxPSIxNyIgeDI9IjE3IiB5Mj0iMTciLz48cG9seWxpbmUgcG9pbnRzPSI3IDggMyAxMiA3IDE2Ii8+PC9zdmc+PHNwYW4+XHU4RkQ0XHU1NkRFQXBwPC9zcGFuPjwvYnV0dG9uPic6IiIpKyhYYSgpPyc8YnV0dG9uIGlkPSJzd2l0Y2gtc2VydmVyLWJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tZ2hvc3QgYnRuLXNtIHNpZGViYXItc3dpdGNoLXNlcnZlciIgdHlwZT0iYnV0dG9uIiB0aXRsZT0iXHU1MjA3XHU2MzYyXHU2NzBEXHU1MkExXHU1NjY4Ij48c3ZnIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxyZWN0IHg9IjIiIHk9IjMiIHdpZHRoPSIyMCIgaGVpZ2h0PSI4IiByeD0iMiIvPjxyZWN0IHg9IjIiIHk9IjEzIiB3aWR0aD0iMjAiIGhlaWdodD0iOCIgcng9IjIiLz48bGluZSB4MT0iNiIgeTE9IjciIHgyPSI2LjAxIiB5Mj0iNyIvPjxsaW5lIHgxPSI2IiB5MT0iMTciIHgyPSI2LjAxIiB5Mj0iMTciLz48L3N2Zz48c3Bhbj5cdTUyMDdcdTYzNjI8L3NwYW4+PC9idXR0b24+JzoiIikrJzxidXR0b24gaWQ9ImxvZ291dC1idXR0b24iIGNsYXNzPSJidG4gYnRuLWdob3N0IGJ0bi1zbSBzaWRlYmFyLWxvZ291dCIgdHlwZT0iYnV0dG9uIiB0aXRsZT0iXHU5MDAwXHU1MUZBXHU3NjdCXHU1RjU1Ij48c3ZnIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik05IDIxSDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoNCIvPjxwb2x5bGluZSBwb2ludHM9IjE2IDE3IDIxIDEyIDE2IDciLz48bGluZSB4MT0iMjEiIHkxPSIxMiIgeDI9IjkiIHkyPSIxMiIvPjwvc3ZnPjxzcGFuPlx1OTAwMFx1NTFGQTwvc3Bhbj48L2J1dHRvbj48L2Rpdj48L2Rpdj48L2FzaWRlPjxtYWluIGNsYXNzPSJtYWluLWNvbnRlbnQiPjxkaXYgY2xhc3M9Im1haW4taGVhZGVyLXJvdyI+PGRpdiBjbGFzcz0idG9wYmFyLWxlZnQiPjxidXR0b24gaWQ9InNlc3Npb25zLXRvZ2dsZS1idXR0b24iIGNsYXNzPSJmbG9hdGluZy1zaWRlYmFyLXRvZ2dsZScrKHIuc2Vzc2lvbnNEcmF3ZXJPcGVuPyIgYWN0aXZlIjoiIikrJyIgYXJpYS1sYWJlbD0iXHU1MjA3XHU2MzYyXHU0RjFBXHU4QkREXHU0RkE3XHU2ODBGIiB0eXBlPSJidXR0b24iPjxzcGFuIGNsYXNzPSJoYW1idXJnZXItaWNvbiI+PHNwYW4+PC9zcGFuPjxzcGFuPjwvc3Bhbj48c3Bhbj48L3NwYW4+PC9zcGFuPjwvYnV0dG9uPjxzcGFuIGNsYXNzPSJ0b3BiYXItYnJhbmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj5XPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InRvcGJhci1jZW50ZXIiPicrKHQ/JzxzcGFuIGNsYXNzPSJ0b3BiYXItc2Vzc2lvbi10aXRsZSIgdGl0bGU9IicrcCh0LmRlc2NyaXB0aW9ufHx0LmNvbW1hbmR8fCIiKSsnIj4nK3AodC50aXRsZXx8JG4odC5jb21tYW5kKSkrJzwvc3Bhbj48c3BhbiBjbGFzcz0ic2Vzc2lvbi1zdGF0dXMtcGlsbCAnK3VzKHQpKyciIHRpdGxlPSInK3AocHIodCkpKyciPjxzcGFuIGNsYXNzPSJzZXNzaW9uLXN0YXR1cy1kb3QiPjwvc3Bhbj48c3BhbiBjbGFzcz0ic2Vzc2lvbi1zdGF0dXMtdGV4dCI+JytwKHByKHQpKSsnPC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0iY3VycmVudC10YXNrIGhpZGRlbiIgaWQ9ImN1cnJlbnQtdGFzayI+PC9zcGFuPicrKHQuY3dkP2x0KHQuY3dkLCJ0b3BiYXItY3dkIiwnIGlkPSJ0b3BiYXItY3dkIiByb2xlPSJidXR0b24iIHRhYmluZGV4PSIwIicpOiIiKTonPHNwYW4gY2xhc3M9InRvcGJhci10YWdsaW5lIj5XYW5kIFx1NjNBN1x1NTIzNlx1NTNGMDwvc3Bhbj48c3BhbiBjbGFzcz0iY3VycmVudC10YXNrIGhpZGRlbiIgaWQ9ImN1cnJlbnQtdGFzayI+PC9zcGFuPicpKyc8L2Rpdj48ZGl2IGNsYXNzPSJ0b3BiYXItcmlnaHQiPjxidXR0b24gaWQ9InRvcGJhci1maWxlLWJ1dHRvbiIgY2xhc3M9InRvcGJhci1idG4gc3F1YXJlJysoci5maWxlUGFuZWxPcGVuPyIgYWN0aXZlIjoiIikrJyIgdHlwZT0iYnV0dG9uIiBhcmlhLWxhYmVsPSJcdTY1ODdcdTRFRjYiIHRpdGxlPSJcdTY3RTVcdTc3MEJcdTY1ODdcdTRFRjZcdUZGMDhcdTUzRUZcdTRGRUVcdTY1MzlcdThERUZcdTVGODRcdUZGMDkiPjxzdmcgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTIyIDE5YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmg1bDIgM2g5YTIgMiAwIDAgMSAyIDJ6Ii8+PC9zdmc+PC9idXR0b24+PHNwYW4gaWQ9InRvcGJhci1naXQtc2xvdCIgY2xhc3M9InRvcGJhci1naXQtc2xvdCI+JytadSgpKyI8L3NwYW4+IisodD9rYyh0KToiIikrJzwvZGl2PjwvZGl2PjxkaXYgaWQ9ImZpbGUtcGFuZWwtYmFja2Ryb3AiIGNsYXNzPSJmaWxlLXBhbmVsLWJhY2tkcm9wJysoci5maWxlUGFuZWxPcGVuPyIgb3BlbiI6IiIpKyciPjwvZGl2PjxkaXYgaWQ9ImZpbGUtc2lkZS1wYW5lbCIgY2xhc3M9ImZpbGUtc2lkZS1wYW5lbCcrKHIuZmlsZVBhbmVsT3Blbj8iIG9wZW4iOiIiKSsnIj48ZGl2IGNsYXNzPSJmaWxlLXNpZGUtcGFuZWwtaGVhZGVyIj48ZGl2IGNsYXNzPSJmaWxlLXNpZGUtcGFuZWwtdGl0bGUtZ3JvdXAiPjxzcGFuIGNsYXNzPSJmaWxlLXNpZGUtcGFuZWwtaWNvbiI+JytNZSgiZm9sZGVyLW9wZW4iLHtzaXplOjE2fSkrJzwvc3Bhbj48c3BhbiBjbGFzcz0iZmlsZS1zaWRlLXBhbmVsLXRpdGxlIj5cdTY1ODdcdTRFRjY8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0iZmlsZS1zaWRlLXBhbmVsLWhlYWRlci1hY3Rpb25zIj48YnV0dG9uIGNsYXNzPSJmaWxlLXNpZGUtcGFuZWwtaWNvbmJ0biIgaWQ9ImZpbGUtZXhwbG9yZXItcmVmcmVzaCIgdHlwZT0iYnV0dG9uIiB0aXRsZT0iXHU1MjM3XHU2NUIwIiBhcmlhLWxhYmVsPSJcdTUyMzdcdTY1QjBcdTY1ODdcdTRFRjZcdTUyMTdcdTg4NjgiPicrTWUoInJlZnJlc2giLHtzaXplOjE1fSkrJzwvYnV0dG9uPjxidXR0b24gaWQ9ImZpbGUtc2lkZS1wYW5lbC1jbG9zZSIgY2xhc3M9ImZpbGUtc2lkZS1wYW5lbC1pY29uYnRuIGNsb3NlIiB0eXBlPSJidXR0b24iIGFyaWEtbGFiZWw9Ilx1NTE3M1x1OTVFRFx1NjU4N1x1NEVGNlx1OTc2Mlx1Njc3RiIgdGl0bGU9Ilx1NTE3M1x1OTVFRCI+JytNZSgieCIse3NpemU6MTZ9KSsnPC9idXR0b24+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iZmlsZS1zaWRlLXBhbmVsLWJvZHkiPjxkaXYgY2xhc3M9ImZpbGUtZXhwbG9yZXItaGVhZGVyIj48YnV0dG9uIGNsYXNzPSJmaWxlLWV4cGxvcmVyLXVwIiBpZD0iZmlsZS1leHBsb3Jlci11cCIgdHlwZT0iYnV0dG9uIiB0aXRsZT0iXHU4RkQ0XHU1NkRFXHU0RTBBXHU3RUE3XHU3NkVFXHU1RjU1IiBhcmlhLWxhYmVsPSJcdThGRDRcdTU2REVcdTRFMEFcdTdFQTdcdTc2RUVcdTVGNTUiPicrTWUoImFycm93LXVwIix7c2l6ZToxNX0pKyc8L2J1dHRvbj48aW5wdXQgdHlwZT0idGV4dCIgY2xhc3M9ImZpbGUtZXhwbG9yZXItcGF0aCIgaWQ9ImZpbGUtZXhwbG9yZXItY3dkIiB2YWx1ZT0iJytwKHQmJnQuY3dkP3QuY3dkOnNuKCkpKyciIHRpdGxlPSInK3AodCYmdC5jd2Q/dC5jd2Q6c24oKSkrJyIgcGxhY2Vob2xkZXI9Ilx1OEY5M1x1NTE2NVx1OERFRlx1NUY4NFx1NUU3Nlx1NTZERVx1OEY2Ni4uLiIgc3BlbGxjaGVjaz0iZmFsc2UiIGF1dG9jb21wbGV0ZT0ib2ZmIiBhdXRvY2FwaXRhbGl6ZT0ib2ZmIiBhdXRvY29ycmVjdD0ib2ZmIiBhcmlhLWxhYmVsPSJcdTVGNTNcdTUyNERcdThERUZcdTVGODRcdUZGMENcdTUzRUZcdTc2RjRcdTYzQTVcdTRGRUVcdTY1MzlcdTU0MEVcdTU2REVcdThGNjYiIC8+PC9kaXY+PGRpdiBjbGFzcz0iZmlsZS1zZWFyY2gtYm94Ij48c3BhbiBjbGFzcz0iZmlsZS1zZWFyY2gtaWNvbiI+JytNZSgic2VhcmNoIix7c2l6ZToxNH0pKyc8L3NwYW4+PGlucHV0IHR5cGU9InRleHQiIGlkPSJmaWxlLXNlYXJjaC1pbnB1dCIgY2xhc3M9ImZpbGUtc2VhcmNoLWlucHV0IiBwbGFjZWhvbGRlcj0iXHU2NDFDXHU3RDIyXHU1RjUzXHU1MjREXHU3NkVFXHU1RjU1XHUyMDI2IiBhdXRvY29tcGxldGU9Im9mZiIgYXV0b2NvcnJlY3Q9Im9mZiIgYXV0b2NhcGl0YWxpemU9Im9mZiIgc3BlbGxjaGVjaz0iZmFsc2UiIC8+PGJ1dHRvbiBjbGFzcz0iZmlsZS1zZWFyY2gtY2xlYXIiIGlkPSJmaWxlLXNlYXJjaC1jbGVhciIgdHlwZT0iYnV0dG9uIiBhcmlhLWxhYmVsPSJcdTZFMDVcdTk2NjRcdTY0MUNcdTdEMjIiIHRpdGxlPSJcdTZFMDVcdTk2NjQiPicrTWUoIngiLHtzaXplOjEzfSkrJzwvYnV0dG9uPjwvZGl2PjxkaXYgY2xhc3M9ImZpbGUtZXhwbG9yZXIiIGlkPSJmaWxlLWV4cGxvcmVyIj4nK2NjKHQmJnQuY3dkP3QuY3dkOnNuKCkpKyc8L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGlkPSJvdXRwdXQiIGNsYXNzPSJ0ZXJtaW5hbC1jb250YWluZXInKyhyLnNlbGVjdGVkSWQ/IiI6IiBoaWRkZW4iKSsnIGFjdGl2ZSI+PGRpdiBjbGFzcz0idGVybWluYWwtc2NhbGUtb3ZlcmxheSIgYXJpYS1sYWJlbD0iXHU3RUM4XHU3QUVGXHU3RjI5XHU2NTNFXHU2M0E3XHU0RUY2Ij48YnV0dG9uIGlkPSJ0ZXJtaW5hbC1zY2FsZS1kb3duLXRvcCIgY2xhc3M9InRlcm1pbmFsLXNjYWxlLW92ZXJsYXktYnRuIHRlcm1pbmFsLXNjYWxlLWJ0biIgdHlwZT0iYnV0dG9uIiB0aXRsZT0iXHU3RjI5XHU1QzBGIj5cdTIyMTI8L2J1dHRvbj48c3BhbiBjbGFzcz0idGVybWluYWwtc2NhbGUtb3ZlcmxheS1sYWJlbCB0ZXJtaW5hbC1zY2FsZS1sYWJlbCIgaWQ9InRlcm1pbmFsLXNjYWxlLWxhYmVsLXRvcCI+JytNYXRoLnJvdW5kKHIudGVybWluYWxTY2FsZSoxMDApKyclPC9zcGFuPjxidXR0b24gaWQ9InRlcm1pbmFsLXNjYWxlLXVwLXRvcCIgY2xhc3M9InRlcm1pbmFsLXNjYWxlLW92ZXJsYXktYnRuIHRlcm1pbmFsLXNjYWxlLWJ0biIgdHlwZT0iYnV0dG9uIiB0aXRsZT0iXHU2NTNFXHU1OTI3Ij4rPC9idXR0b24+PHNwYW4gY2xhc3M9InRlcm1pbmFsLXNjYWxlLW92ZXJsYXktZGl2aWRlciI+PC9zcGFuPjxidXR0b24gaWQ9InBhZ2UtcmVmcmVzaC1idG4iIGNsYXNzPSJ0ZXJtaW5hbC1zY2FsZS1vdmVybGF5LWJ0biIgdHlwZT0iYnV0dG9uIiB0aXRsZT0iXHU1MjM3XHU2NUIwXHU5ODc1XHU5NzYyIj5cdTIxQkI8L2J1dHRvbj48L2Rpdj48YnV0dG9uIGlkPSJ0ZXJtaW5hbC1qdW1wLWJvdHRvbSIgY2xhc3M9InRlcm1pbmFsLWp1bXAtYm90dG9tJysoci5zaG93VGVybWluYWxKdW1wVG9Cb3R0b20/IiB2aXNpYmxlIjoiIikrJyIgdHlwZT0iYnV0dG9uIiB0aXRsZT0iXHU1NkRFXHU1MjMwXHU1RTk1XHU5MEU4IiBhcmlhLWxhYmVsPSJcdTU2REVcdTUyMzBcdTVFOTVcdTkwRTgiPjxzdmcgdmlld0JveD0iMCAwIDE2IDE2IiB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxwYXRoIGQ9Ik04IDMuNXY5TTMuNSA4bDQuNSA0LjVMMTIuNSA4Ii8+PC9zdmc+PC9idXR0b24+PC9kaXY+PGRpdiBpZD0iY2hhdC1vdXRwdXQiIGNsYXNzPSJjaGF0LWNvbnRhaW5lciBoaWRkZW4iPjxkaXYgaWQ9ImNoYXQtZm9sZC1iYXIiIGNsYXNzPSJjaGF0LWZvbGQtYmFyIGhpZGRlbiIgYXJpYS1saXZlPSJwb2xpdGUiPjwvZGl2PjxidXR0b24gaWQ9ImNoYXQtdW5yZWFkLWJ1YmJsZSIgY2xhc3M9ImNoYXQtdW5yZWFkLWJ1YmJsZSIgdHlwZT0iYnV0dG9uIiB0aXRsZT0iXHU1NkRFXHU1MjMwXHU2NzAwXHU2NUIwXHU2RDg4XHU2MDZGIiBhcmlhLWxhYmVsPSJcdTU2REVcdTUyMzBcdTY3MDBcdTY1QjBcdTZEODhcdTYwNkYiPjxzcGFuIGNsYXNzPSJjaGF0LXVucmVhZC1idWJibGUtaWNvbiI+PHN2ZyB2aWV3Qm94PSIwIDAgMTYgMTYiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHBhdGggZD0iTTggMy41djlNMy41IDhsNC41IDQuNUwxMi41IDgiLz48L3N2Zz48L3NwYW4+PHNwYW4gY2xhc3M9ImNoYXQtdW5yZWFkLWJ1YmJsZS1jb3VudCIgYXJpYS1oaWRkZW49InRydWUiPjwvc3Bhbj48L2J1dHRvbj48L2Rpdj48ZGl2IGlkPSJibGFuay1jaGF0IiBjbGFzcz0iYmxhbmstY2hhdCcrKHIuc2VsZWN0ZWRJZD8iIGhpZGRlbiI6IiIpKyciPjxkaXYgY2xhc3M9ImJsYW5rLWNoYXQtaW5uZXIiPjxkaXYgY2xhc3M9ImJsYW5rLWNoYXQtbG9nbyI+VzwvZGl2PjxoMiBjbGFzcz0iYmxhbmstY2hhdC10aXRsZSI+V2FuZDwvaDI+PHAgY2xhc3M9ImJsYW5rLWNoYXQtc3VidGl0bGUiPlx1NjUyRlx1NjMwMVx1N0VDOFx1N0FFRiBQVFkgXHU0RjFBXHU4QkREXHU0RTBFXHU3RUQzXHU2Nzg0XHU1MzE2IGNoYXQgXHU0RjFBXHU4QkREXHVGRjBDXHU0RTI0XHU3OUNEXHU2QTIxXHU1RjBGXHU1M0VGXHU1RTc2XHU1QjU4XHUzMDAyPC9wPjxkaXYgY2xhc3M9ImJsYW5rLWNoYXQtdG9vbHMiPjxidXR0b24gY2xhc3M9ImJsYW5rLWNoYXQtdG9vbC1idG4iIGlkPSJ3ZWxjb21lLXRvb2wtY2xhdWRlIiB0eXBlPSJidXR0b24iPjxzcGFuIGNsYXNzPSJ0b29sLWljb24iPicreigidGVybWluYWwiLHtzaXplOjE2LHN0cm9rZVdpZHRoOjEuOH0pKyc8L3NwYW4+XHU2NUIwXHU1RUZBXHU3RUM4XHU3QUVGXHU0RjFBXHU4QkREPC9idXR0b24+PGJ1dHRvbiBjbGFzcz0iYmxhbmstY2hhdC10b29sLWJ0biIgaWQ9IndlbGNvbWUtdG9vbC1jb2RleCIgdHlwZT0iYnV0dG9uIj48c3BhbiBjbGFzcz0idG9vbC1pY29uIHRvb2wtaWNvbi10ZXh0Ij5cdTIzMTg8L3NwYW4+XHU2NUIwXHU1RUZBIENvZGV4IFx1NEYxQVx1OEJERDwvYnV0dG9uPjxidXR0b24gY2xhc3M9ImJsYW5rLWNoYXQtdG9vbC1idG4iIGlkPSJ3ZWxjb21lLXRvb2wtc3RydWN0dXJlZCIgdHlwZT0iYnV0dG9uIj48c3BhbiBjbGFzcz0idG9vbC1pY29uIj4nK3ooImNoYXQiLHtzaXplOjE2LHN0cm9rZVdpZHRoOjEuOH0pKyc8L3NwYW4+XHU2NUIwXHU1RUZBXHU3RUQzXHU2Nzg0XHU1MzE2XHU0RjFBXHU4QkREPC9idXR0b24+PC9kaXY+PGRpdiBjbGFzcz0iYmxhbmstY2hhdC1jd2Qtd3JhcCI+PGRpdiBjbGFzcz0iYmxhbmstY2hhdC1jd2QiIGlkPSJibGFuay1jaGF0LWN3ZCIgcm9sZT0iYnV0dG9uIiB0YWJpbmRleD0iMCIgdGl0bGU9Ilx1NzBCOVx1NTFGQlx1NTIwN1x1NjM2Mlx1NURFNVx1NEY1Q1x1NzZFRVx1NUY1NSI+PHNwYW4gY2xhc3M9ImJsYW5rLWNoYXQtY3dkLWljb24iPicreigiZm9sZGVyIix7c2l6ZToxMyxzdHJva2VXaWR0aDoxLjh9KSsiPC9zcGFuPiIrbHQoZXQoKSwiYmxhbmstY2hhdC1jd2QtcGF0aCIsJyBpZD0iYmxhbmstY2hhdC1jd2QtcGF0aCInKSsnPHNwYW4gY2xhc3M9ImJsYW5rLWNoYXQtY3dkLWFycm93IiBpZD0iYmxhbmstY2hhdC1jd2QtYXJyb3ciPicreigiY2hldnJvbkRvd24iLHtzaXplOjExLHN0cm9rZVdpZHRoOjJ9KSsnPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9ImJsYW5rLWNoYXQtY3dkLWRyb3Bkb3duIGhpZGRlbiIgaWQ9ImJsYW5rLWNoYXQtY3dkLWRyb3Bkb3duIj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJpbnB1dC1wYW5lbCcrKHIuc2VsZWN0ZWRJZD8iIjoiIGhpZGRlbiIpKyciPjxkaXYgY2xhc3M9ImNvbXBvc2VyLXRvcC1yb3ciPjxkaXYgaWQ9InRvZG8tcHJvZ3Jlc3MiIGNsYXNzPSJ0b2RvLXByb2dyZXNzIGhpZGRlbiI+PGRpdiBjbGFzcz0idG9kby1wcm9ncmVzcy1oZWFkZXIiIGlkPSJ0b2RvLXByb2dyZXNzLXRvZ2dsZSI+PGRpdiBjbGFzcz0idG9kby1wcm9ncmVzcy1maWxsIiBpZD0idG9kby1wcm9ncmVzcy1maWxsIiBhcmlhLWhpZGRlbj0idHJ1ZSIgc3R5bGU9Ii0tcHJvZ3Jlc3M6MCI+PC9kaXY+PGRpdiBjbGFzcz0idG9kby1wcm9ncmVzcy1sZWZ0Ij48c3BhbiBjbGFzcz0idG9kby1wcm9ncmVzcy1yaW5nIiBpZD0idG9kby1wcm9ncmVzcy1yaW5nIiBhcmlhLWhpZGRlbj0idHJ1ZSIgc3R5bGU9Ii0tcHJvZ3Jlc3M6MCI+PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAzNiAzNiI+PGNpcmNsZSBjbGFzcz0idG9kby1yaW5nLXRyYWNrIiBjeD0iMTgiIGN5PSIxOCIgcj0iMTUuNSIgZmlsbD0ibm9uZSIgc3Ryb2tlLXdpZHRoPSI0Ii8+PGNpcmNsZSBjbGFzcz0idG9kby1yaW5nLWZpbGwiIGN4PSIxOCIgY3k9IjE4IiByPSIxNS41IiBmaWxsPSJub25lIiBzdHJva2Utd2lkdGg9IjQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPjwvc3ZnPjwvc3Bhbj48c3BhbiBjbGFzcz0idG9kby1wcm9ncmVzcy1jb3VudGVyIiBpZD0idG9kby1wcm9ncmVzcy1jb3VudGVyIj48L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0idG9kby1wcm9ncmVzcy10YXNrLXdyYXAiPjxzcGFuIGNsYXNzPSJ0b2RvLXByb2dyZXNzLXRhc2siIGlkPSJ0b2RvLXByb2dyZXNzLXRhc2siPjwvc3Bhbj48L2Rpdj48c3ZnIGNsYXNzPSJ0b2RvLXByb2dyZXNzLWNoZXZyb24iIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyLjQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxwb2x5bGluZSBwb2ludHM9IjYgMTUgMTIgOSAxOCAxNSIvPjwvc3ZnPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InRvZG8tcHJvZ3Jlc3MtYm9keSBoaWRkZW4iIGlkPSJ0b2RvLXByb2dyZXNzLWJvZHkiPjx1bCBjbGFzcz0idG9kby1wcm9ncmVzcy1saXN0IiBpZD0idG9kby1wcm9ncmVzcy1saXN0Ij48L3VsPjwvZGl2PjwvZGl2PjxkaXYgaWQ9InF1ZXVlLWJhci1ob3N0IiBjbGFzcz0icXVldWUtYmFyLWhvc3QiIGhpZGRlbj48L2Rpdj48ZGl2IGNsYXNzPSJpbnB1dC1jb21wb3NlcicrKGE/IiBoYXMtdGV4dCI6IiIpKyciPjxkaXYgY2xhc3M9ImNvbXBvc2VyLXN0YXR1cy1yb3ciIGlkPSJjb21wb3Nlci1zdGF0dXMtcm93Ij4nK3NtKHQpKyc8c3BhbiBjbGFzcz0icGVybWlzc2lvbi1hY3Rpb25zIGhpZGRlbiIgaWQ9InBlcm1pc3Npb24tYWN0aW9ucyI+PHNwYW4gY2xhc3M9InBlcm1pc3Npb24tYWN0aW9ucy1sYWJlbCIgaWQ9InBlcm1pc3Npb24tYWN0aW9ucy1sYWJlbCI+XHU3QjQ5XHU1Rjg1XHU2Mzg4XHU2NzQzPC9zcGFuPjxidXR0b24gaWQ9ImFwcHJvdmUtcGVybWlzc2lvbi1idG4iIGNsYXNzPSJidG4gYnRuLXBlcm1pc3Npb24gYnRuLXBlcm1pc3Npb24tYXBwcm92ZSIgdHlwZT0iYnV0dG9uIj5cdTYyNzlcdTUxQzY8L2J1dHRvbj48YnV0dG9uIGlkPSJkZW55LXBlcm1pc3Npb24tYnRuIiBjbGFzcz0iYnRuIGJ0bi1wZXJtaXNzaW9uIGJ0bi1wZXJtaXNzaW9uLWRlbnkiIHR5cGU9ImJ1dHRvbiI+XHU2MkQyXHU3RUREPC9idXR0b24+PC9zcGFuPicreWYoKSsnPC9kaXY+PGRpdiBjbGFzcz0iY29tcG9zZXItbWFpbi1yb3ciPjxkaXYgY2xhc3M9ImNvbXBvc2VyLWFjdGlvbnMtbGVmdCI+PGJ1dHRvbiBpZD0iYXR0YWNoLWJ0biIgY2xhc3M9ImJ0bi1jaXJjbGUgYnRuLWNpcmNsZS1hY3Rpb24iIHR5cGU9ImJ1dHRvbiIgdGl0bGU9Ilx1NjZGNFx1NTkxQSIgYXJpYS1sYWJlbD0iXHU2NkY0XHU1OTFBIiBhcmlhLWhhc3BvcHVwPSJtZW51IiBhcmlhLWV4cGFuZGVkPSJmYWxzZSI+Jyt6KCJwbHVzIix7c2l6ZToxOCxzdHJva2VXaWR0aDoyLjJ9KSsnPC9idXR0b24+PGlucHV0IHR5cGU9ImZpbGUiIGlkPSJmaWxlLXVwbG9hZC1pbnB1dCIgbXVsdGlwbGUgdGFiaW5kZXg9Ii0xIiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4O2hlaWdodDoxcHg7b3BhY2l0eTowO292ZXJmbG93OmhpZGRlbjtjbGlwOnJlY3QoMCwwLDAsMCk7cG9pbnRlci1ldmVudHM6bm9uZSI+PC9kaXY+PGRpdiBjbGFzcz0iY29tcG9zZXItaW5saW5lLWNvbmZpZyI+JytzbCh0KSsnPC9kaXY+PGRpdiBjbGFzcz0iY29tcG9zZXItaW5wdXQtd3JhcCI+PHRleHRhcmVhIGlkPSJpbnB1dC1ib3giIGNsYXNzPSJpbnB1dC10ZXh0YXJlYSIgcGxhY2Vob2xkZXI9IicrZWwodCxyLnRlcm1pbmFsSW50ZXJhY3RpdmUpKyciIHJvd3M9IjEiIGF1dG9jb21wbGV0ZT0ib2ZmIiBhdXRvY29ycmVjdD0ib2ZmIiBhdXRvY2FwaXRhbGl6ZT0ib2ZmIiBzcGVsbGNoZWNrPSJmYWxzZSIgZW50ZXJrZXloaW50PSJzZW5kIj4nK3AoYSkrJzwvdGV4dGFyZWE+PGJ1dHRvbiBpZD0icHJvbXB0LW9wdGltaXplLWJ0biIgY2xhc3M9InByb21wdC1vcHRpbWl6ZS1idG4iIHR5cGU9ImJ1dHRvbiIgdGl0bGU9Ilx1NjNEMFx1NzkzQVx1OEJDRFx1NEYxOFx1NTMxNlx1RkYwOEFJXHVGRjA5IiBhcmlhLWxhYmVsPSJcdTYzRDBcdTc5M0FcdThCQ0RcdTRGMThcdTUzMTYiPjxzdmcgY2xhc3M9InByb21wdC1vcHRpbWl6ZS1pY29uIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHBhdGggZD0iTTEyIDNsMS42IDQuNEwxOCA5bC00LjQgMS42TDEyIDE1bC0xLjYtNC40TDYgOWw0LjQtMS42eiIgZmlsbD0iY3VycmVudENvbG9yIiBvcGFjaXR5PSIwLjI1Ii8+PHBhdGggZD0iTTEyIDNsMS42IDQuNEwxOCA5bC00LjQgMS42TDEyIDE1bC0xLjYtNC40TDYgOWw0LjQtMS42eiIvPjxwYXRoIGQ9Ik0xOSAxNGwuNyAxLjlMMjEuNiAxN2wtMS45LjdMMTkgMTkuNmwtLjctMS45TDE2LjQgMTdsMS45LS43eiIgZmlsbD0iY3VycmVudENvbG9yIiBvcGFjaXR5PSIwLjM1Ii8+PHBhdGggZD0iTTUgNGwuNSAxLjRMNyA2bC0xLjUuNkw1IDhsLS41LTEuNEwzIDZsMS41LS42eiIgZmlsbD0iY3VycmVudENvbG9yIiBvcGFjaXR5PSIwLjM1Ii8+PC9zdmc+PHNwYW4gY2xhc3M9InByb21wdC1vcHRpbWl6ZS1zcGlubmVyIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9zcGFuPjwvYnV0dG9uPjxkaXYgY2xhc3M9InZvaWNlLWlucHV0LW1vZGUgaGlkZGVuIiBpZD0idm9pY2UtaW5wdXQtbW9kZSI+PGJ1dHRvbiBpZD0idm9pY2UtcmVjb3JkLWJ0biIgY2xhc3M9InZvaWNlLXJlY29yZC1idG4iIHR5cGU9ImJ1dHRvbiI+PHNwYW4gY2xhc3M9InZvaWNlLXJlY29yZC1wdWxzZSIgYXJpYS1oaWRkZW49InRydWUiPjwvc3Bhbj48c3BhbiBjbGFzcz0idm9pY2UtcmVjb3JkLWxhYmVsIj5cdTYzMDlcdTRGNEYgXHU4QkY0XHU4QkREPC9zcGFuPjwvYnV0dG9uPjxidXR0b24gaWQ9InZvaWNlLWNhbmNlbC1idG4iIGNsYXNzPSJ2b2ljZS1jYW5jZWwtYnRuIiB0eXBlPSJidXR0b24iIHRpdGxlPSJcdTkwMDBcdTUxRkFcdThCRURcdTk3RjNcdTZBMjFcdTVGMEYiIGFyaWEtbGFiZWw9Ilx1OTAwMFx1NTFGQVx1OEJFRFx1OTdGM1x1NkEyMVx1NUYwRiI+Jyt6KCJ4Iix7c2l6ZToxNCxzdHJva2VXaWR0aDoyfSkrJzwvYnV0dG9uPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImNvbXBvc2VyLWFjdGlvbnMtcmlnaHQiPjxidXR0b24gaWQ9InN0b3AtYnV0dG9uIiBjbGFzcz0iYnRuLWNpcmNsZSBidG4tY2lyY2xlLXN0b3AgaGlkZGVuIiB0aXRsZT0iXHU1MDVDXHU2QjYyIj48c3ZnIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgdmlld0JveD0iMCAwIDE2IDE2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxyZWN0IHg9IjMiIHk9IjMiIHdpZHRoPSIxMCIgaGVpZ2h0PSIxMCIgcng9IjIiLz48L3N2Zz48L2J1dHRvbj48YnV0dG9uIGlkPSJzZW5kLWlucHV0LWJ1dHRvbiIgY2xhc3M9ImJ0bi1jaXJjbGUgYnRuLWNpcmNsZS1zZW5kIiB0aXRsZT0iXHU1M0QxXHU5MDAxIj48c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PGxpbmUgeDE9IjIyIiB5MT0iMiIgeDI9IjExIiB5Mj0iMTMiLz48cG9seWdvbiBwb2ludHM9IjIyIDIgMTUgMjIgMTEgMTMgMiA5IDIyIDIiLz48L3N2Zz48L2J1dHRvbj48L2Rpdj48L2Rpdj48ZGl2IGlkPSJhdHRhY2htZW50LXByZXZpZXciIGNsYXNzPSJhdHRhY2htZW50LXByZXZpZXcgaGlkZGVuIj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJjb21wb3Nlci1wbHVzLXBvcG92ZXIgaGlkZGVuIiBpZD0iY29tcG9zZXItcGx1cy1wb3BvdmVyIiByb2xlPSJtZW51IiBhcmlhLWxhYmVsPSJcdTY2RjRcdTU5MUFcdTY0Q0RcdTRGNUMiPjxidXR0b24gY2xhc3M9InBsdXMtcG9wb3Zlci1pdGVtIiBpZD0icGx1cy1hdHRhY2gtaXRlbSIgdHlwZT0iYnV0dG9uIiByb2xlPSJtZW51aXRlbSI+Jyt6KCJwYXBlcmNsaXAiLHtzaXplOjE0LHN0cm9rZVdpZHRoOjEuOCxjbHM6InBsdXMtcG9wb3Zlci1pY29uIn0pKyc8c3BhbiBjbGFzcz0icGx1cy1wb3BvdmVyLWxhYmVsIj5cdTRFMEFcdTRGMjBcdTk2NDRcdTRFRjY8L3NwYW4+PC9idXR0b24+PGJ1dHRvbiBjbGFzcz0icGx1cy1wb3BvdmVyLWl0ZW0nKyhyLnRlcm1pbmFsSW50ZXJhY3RpdmU/IiBpcy1vbiI6IiIpKyciIGlkPSJ0ZXJtaW5hbC1pbnRlcmFjdGl2ZS10b2dnbGUtdG9wIiB0eXBlPSJidXR0b24iIHJvbGU9Im1lbnVpdGVtY2hlY2tib3giIGFyaWEtY2hlY2tlZD0iJysoci50ZXJtaW5hbEludGVyYWN0aXZlPyJ0cnVlIjoiZmFsc2UiKSsnIj4nK3ooImtleWJvYXJkIix7c2l6ZToxNCxzdHJva2VXaWR0aDoxLjgsY2xzOiJwbHVzLXBvcG92ZXItaWNvbiJ9KSsnPHNwYW4gY2xhc3M9InBsdXMtcG9wb3Zlci1sYWJlbCI+XHU3RUM4XHU3QUVGXHU0RUE0XHU0RTkyPC9zcGFuPjxzcGFuIGNsYXNzPSJwbHVzLXBvcG92ZXItdG9nZ2xlLXN0YXRlIj4nKyhyLnRlcm1pbmFsSW50ZXJhY3RpdmU/Ilx1NUYwMCI6Ilx1NTE3MyIpKyc8L3NwYW4+PC9idXR0b24+PGRpdiBjbGFzcz0icGx1cy1wb3BvdmVyLXNlcCIgYXJpYS1oaWRkZW49InRydWUiPjwvZGl2PjxkaXYgY2xhc3M9InBsdXMtcG9wb3Zlci10cmlvLXdyYXAiPicrc2wodCkrJzwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InZvaWNlLXRyYW5zY3JpcHQtYnViYmxlIGhpZGRlbiIgaWQ9InZvaWNlLXRyYW5zY3JpcHQtYnViYmxlIiBhcmlhLWxpdmU9InBvbGl0ZSI+PGRpdiBjbGFzcz0idm9pY2UtdHJhbnNjcmlwdC10ZXh0IiBpZD0idm9pY2UtdHJhbnNjcmlwdC10ZXh0Ij48L2Rpdj48ZGl2IGNsYXNzPSJ2b2ljZS10cmFuc2NyaXB0LWhpbnQiIGlkPSJ2b2ljZS10cmFuc2NyaXB0LWhpbnQiPjxzcGFuIGNsYXNzPSJ2b2ljZS13YXZlIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PGk+PC9pPjxpPjwvaT48aT48L2k+PGk+PC9pPjwvc3Bhbj48c3BhbiBjbGFzcz0idm9pY2UtdHJhbnNjcmlwdC1zdGF0dXMiIGlkPSJ2b2ljZS10cmFuc2NyaXB0LXN0YXR1cyI+XHU2QjYzXHU1NzI4XHU4MDQ2XHU1NDJDXHUyMDI2XHU0RTBBXHU2RUQxXHU1M0Q2XHU2RDg4PC9zcGFuPjwvZGl2PjxzcGFuIGNsYXNzPSJ2b2ljZS1idWJibGUtYXJyb3ciIGFyaWEtaGlkZGVuPSJ0cnVlIj48L3NwYW4+PC9kaXY+PHAgaWQ9ImFjdGlvbi1lcnJvciIgY2xhc3M9ImVycm9yLW1lc3NhZ2UgaGlkZGVuIj48L3A+PC9kaXY+PHNlY3Rpb24gaWQ9ImZvbGRlci1waWNrZXItbW9kYWwiIGNsYXNzPSJtb2RhbC1iYWNrZHJvcCBoaWRkZW4iPjxkaXYgY2xhc3M9Im1vZGFsIGZvbGRlci1waWNrZXItbW9kYWwiPjxkaXYgY2xhc3M9Im1vZGFsLWhlYWRlciI+PGgyIGNsYXNzPSJtb2RhbC10aXRsZSI+XHU5MDA5XHU2MkU5XHU1REU1XHU0RjVDXHU3NkVFXHU1RjU1PC9oMj48YnV0dG9uIGlkPSJjbG9zZS1mb2xkZXItcGlja2VyIiBjbGFzcz0iYnRuIGJ0bi1naG9zdCBidG4taWNvbiBtb2RhbC1jbG9zZS1idG4iIHR5cGU9ImJ1dHRvbiIgYXJpYS1sYWJlbD0iXHU1MTczXHU5NUVEIj48c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyLjQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxsaW5lIHgxPSI2IiB5MT0iNiIgeDI9IjE4IiB5Mj0iMTgiLz48bGluZSB4MT0iMTgiIHkxPSI2IiB4Mj0iNiIgeTI9IjE4Ii8+PC9zdmc+PC9idXR0b24+PC9kaXY+PGRpdiBjbGFzcz0ibW9kYWwtYm9keSI+PGRpdiBjbGFzcz0iZm9sZGVyLXBpY2tlci1xdWljay1yb3ciPjxidXR0b24gY2xhc3M9ImZvbGRlci1waWNrZXItcXVpY2stYnRuIGJ0bi13aXRoLWljb24iIGRhdGEtcGF0aD0iL3RtcCI+Jyt6KCJ0cmFzaCIse3NpemU6MTMsc3Ryb2tlV2lkdGg6MS43fSkrJzxzcGFuPlx1NEUzNFx1NjVGNlx1NzZFRVx1NUY1NTwvc3Bhbj48L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJmb2xkZXItcGlja2VyLXF1aWNrLWJ0biBidG4td2l0aC1pY29uIiBkYXRhLXBhdGg9Ii8iPicreigiZm9sZGVyIix7c2l6ZToxMyxzdHJva2VXaWR0aDoxLjd9KSsnPHNwYW4+XHU2ODM5XHU3NkVFXHU1RjU1PC9zcGFuPjwvYnV0dG9uPjwvZGl2PjxkaXYgaWQ9ImZvbGRlci1icmVhZGNydW1iIiBjbGFzcz0iZm9sZGVyLWJyZWFkY3J1bWIiPjwvZGl2PjxkaXYgY2xhc3M9ImZvbGRlci1waWNrZXIiPjxzcGFuIGNsYXNzPSJmb2xkZXItcGlja2VyLWljb24iPicreigiZm9sZGVyIix7c2l6ZToxNSxzdHJva2VXaWR0aDoxLjd9KSsnPC9zcGFuPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iZm9sZGVyLXBpY2tlci1pbnB1dCIgY2xhc3M9ImZvbGRlci1waWNrZXItaW5wdXQiIHZhbHVlPSIiIHBsYWNlaG9sZGVyPSJcdThGOTNcdTUxNjVcdTYyMTZcdTkwMDlcdTYyRTlcdTVERTVcdTRGNUNcdTc2RUVcdTVGNTUuLi4iIGF1dG9jb21wbGV0ZT0ib2ZmIiBhdXRvY29ycmVjdD0ib2ZmIiBhdXRvY2FwaXRhbGl6ZT0ib2ZmIiBzcGVsbGNoZWNrPSJmYWxzZSIgLz48L2Rpdj48ZGl2IGlkPSJmb2xkZXItcGlja2VyLWRyb3Bkb3duIiBjbGFzcz0iZm9sZGVyLXBpY2tlci1kcm9wZG93biBoaWRkZW4iPjwvZGl2PjxkaXYgaWQ9ImZvbGRlci1waWNrZXItdmFsaWRhdGlvbiIgY2xhc3M9ImZvbGRlci1waWNrZXItdmFsaWRhdGlvbiI+PC9kaXY+PC9kaXY+PC9kaXY+PC9zZWN0aW9uPjwvbWFpbj48L2Rpdj48L2Rpdj4nK0djKCkrX2MoKStOYygpK3JzKCl9ZnVuY3Rpb24gUGUoZSx0KXtpZihlKXtlLnRleHRDb250ZW50PXQsZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKTtmb3IodmFyIG49ZS5wcmV2aW91c0VsZW1lbnRTaWJsaW5nO247KXtpZihuLnRhZ05hbWU9PT0iSU5QVVQiKXtuLnNldEF0dHJpYnV0ZSgiZGF0YS1lcnJvciIsInRydWUiKTticmVha31uPW4ucHJldmlvdXNFbGVtZW50U2libGluZ319fWZ1bmN0aW9uIGNpKGUpe2lmKGUpe2UudGV4dENvbnRlbnQ9IiIsZS5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKTtmb3IodmFyIHQ9ZS5wcmV2aW91c0VsZW1lbnRTaWJsaW5nO3Q7KXtpZih0LnRhZ05hbWU9PT0iSU5QVVQiKXt0LnNldEF0dHJpYnV0ZSgiZGF0YS1lcnJvciIsImZhbHNlIik7YnJlYWt9dD10LnByZXZpb3VzRWxlbWVudFNpYmxpbmd9fX1mdW5jdGlvbiBrKGUsdCl7dmFyIG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7bi5jbGFzc05hbWU9InRvYXN0LW1lc3NhZ2UiKyh0PT09ImVycm9yIj8iIHRvYXN0LWVycm9yIjoiIiksdCE9PSJlcnJvciImJihuLnN0eWxlLmJhY2tncm91bmQ9InZhcigtLWFjY2VudCkiLG4uc3R5bGUuY29sb3I9IndoaXRlIiksbi50ZXh0Q29udGVudD1lLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobiksc2V0VGltZW91dChmdW5jdGlvbigpe24ucmVtb3ZlKCl9LHQ9PT0iZXJyb3IiPzRlMzoyMjAwKX12YXIgd3I9W107ZnVuY3Rpb24gRmYoZSl7c3dpdGNoKGUpe2Nhc2Uid2FybmluZyI6cmV0dXJuIiEiO2Nhc2UiZGFuZ2VyIjpyZXR1cm4iXHUyNkEwXHVGRTBFIjtjYXNlInN1Y2Nlc3MiOnJldHVybiJcdTI3MTMiO2Nhc2UicXVlc3Rpb24iOnJldHVybiI/IjtkZWZhdWx0OnJldHVybiJpIn19ZnVuY3Rpb24gbG4oZSl7ZT1lfHx7fTt2YXIgdD1lLmRpc21pc3NhYmxlIT09ITEsbj1lLnR5cGV8fCJpbmZvIixpPWUuaWNvbnx8RmYobiksYT0hIWUuaW5wdXQ7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHUpe3ZhciBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3MuY2xhc3NOYW1lPSJ3YW5kLWRpYWxvZy1iYWNrZHJvcCIscy5zZXRBdHRyaWJ1dGUoInJvbGUiLCJwcmVzZW50YXRpb24iKTt2YXIgbz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtvLmNsYXNzTmFtZT0id2FuZC1kaWFsb2ciLG8uc2V0QXR0cmlidXRlKCJyb2xlIixhPyJkaWFsb2ciOiJhbGVydGRpYWxvZyIpLG8uc2V0QXR0cmlidXRlKCJhcmlhLW1vZGFsIiwidHJ1ZSIpLGUudGl0bGUmJm8uc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIixlLnRpdGxlKTt2YXIgbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtsLmNsYXNzTmFtZT0id2FuZC1kaWFsb2ctaGVhZGVyIjt2YXIgYz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtjLmNsYXNzTmFtZT0id2FuZC1kaWFsb2ctaWNvbiAiK24sYy50ZXh0Q29udGVudD1pLGwuYXBwZW5kQ2hpbGQoYyk7dmFyIGY9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7aWYoZi5jbGFzc05hbWU9IndhbmQtZGlhbG9nLXRleHR3cmFwIixlLnRpdGxlKXt2YXIgZD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtkLmNsYXNzTmFtZT0id2FuZC1kaWFsb2ctdGl0bGUiLGQudGV4dENvbnRlbnQ9ZS50aXRsZSxmLmFwcGVuZENoaWxkKGQpfWlmKGUubWVzc2FnZSl7dmFyIHY9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7di5jbGFzc05hbWU9IndhbmQtZGlhbG9nLW1lc3NhZ2UiLHYudGV4dENvbnRlbnQ9ZS5tZXNzYWdlLGYuYXBwZW5kQ2hpbGQodil9bC5hcHBlbmRDaGlsZChmKSxvLmFwcGVuZENoaWxkKGwpO3ZhciBoPW51bGw7aWYoYSl7dmFyIGc9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Zy5jbGFzc05hbWU9IndhbmQtZGlhbG9nLWJvZHkiLGg9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSxoLnR5cGU9InRleHQiLGguY2xhc3NOYW1lPSJ3YW5kLWRpYWxvZy1pbnB1dCIsZS5pbnB1dFBsYWNlaG9sZGVyJiYoaC5wbGFjZWhvbGRlcj1lLmlucHV0UGxhY2Vob2xkZXIpLGUuaW5wdXRWYWx1ZSE9bnVsbCYmKGgudmFsdWU9U3RyaW5nKGUuaW5wdXRWYWx1ZSkpLGcuYXBwZW5kQ2hpbGQoaCksby5hcHBlbmRDaGlsZChnKX12YXIgbT1lLmJ1dHRvbnMmJmUuYnV0dG9ucy5sZW5ndGg/ZS5idXR0b25zOlt7bGFiZWw6Ilx1NTk3RCIsdmFsdWU6ITAsa2luZDoicHJpbWFyeSIsYXV0b2ZvY3VzOiEwfV0seT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt5LmNsYXNzTmFtZT0id2FuZC1kaWFsb2ctZm9vdGVyIjt2YXIgdz1udWxsLEU9bnVsbDtmdW5jdGlvbiBCKHgpe2lmKCFzLmNsYXNzTGlzdC5jb250YWlucygiY2xvc2luZyIpKXtzLmNsYXNzTGlzdC5hZGQoImNsb3NpbmciKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIixGLCEwKTt2YXIgUz13ci5pbmRleE9mKEIpO1M+PTAmJndyLnNwbGljZShTLDEpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtzLnBhcmVudE5vZGUmJnMucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChzKSx1KHgpfSwxNjApfX1tLmZvckVhY2goZnVuY3Rpb24oeCl7dmFyIFM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYnV0dG9uIiksXz14LmtpbmR8fCJzZWNvbmRhcnkiO1MuY2xhc3NOYW1lPSJidG4gYnRuLSIrXyxTLnR5cGU9ImJ1dHRvbiIsUy50ZXh0Q29udGVudD14LmxhYmVsLFMuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7YSYmeC5raW5kPT09InByaW1hcnkiP0IoaD9oLnZhbHVlOiIiKTpCKHgudmFsdWUpfSksd3x8KHc9UykseC5hdXRvZm9jdXMmJihFPVMpLHkuYXBwZW5kQ2hpbGQoUyl9KSxvLmFwcGVuZENoaWxkKHkpLHMuYXBwZW5kQ2hpbGQobykscy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oeCl7eC50YXJnZXQ9PT1zJiZ0JiZCKGUuY2FuY2VsVmFsdWUhPT12b2lkIDA/ZS5jYW5jZWxWYWx1ZTphP251bGw6ITEpfSk7ZnVuY3Rpb24gRih4KXtpZih3clt3ci5sZW5ndGgtMV09PT1CKXtpZih4LmtleT09PSJFc2NhcGUiJiZ0KXt4LnByZXZlbnREZWZhdWx0KCkseC5zdG9wUHJvcGFnYXRpb24oKSxCKGUuY2FuY2VsVmFsdWUhPT12b2lkIDA/ZS5jYW5jZWxWYWx1ZTphP251bGw6ITEpO3JldHVybn1pZih4LmtleT09PSJFbnRlciIpe2Zvcih2YXIgUz1udWxsLF89MDtfPG0ubGVuZ3RoO18rKylpZihtW19dLmtpbmQ9PT0icHJpbWFyeSIpe1M9bVtfXTticmVha31TfHwoUz1tW20ubGVuZ3RoLTFdKSxTJiYoeC5wcmV2ZW50RGVmYXVsdCgpLHguc3RvcFByb3BhZ2F0aW9uKCksYSYmUy5raW5kPT09InByaW1hcnkiP0IoaD9oLnZhbHVlOiIiKTpCKFMudmFsdWUpKX19fWRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLEYsITApLHdyLnB1c2goQiksZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzKSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXtpZihhJiZoKXtoLmZvY3VzKCk7dHJ5e2guc2VsZWN0KCl9Y2F0Y2h7fX1lbHNlIEU/RS5mb2N1cygpOncmJncuZm9jdXMoKX0pfSl9ZnVuY3Rpb24gd2YoZSx0KXtyZXR1cm4gdD10fHx7fSxsbih7dGl0bGU6dC50aXRsZXx8Ilx1NjNEMFx1NzkzQSIsbWVzc2FnZTp0eXBlb2YgZT09InN0cmluZyI/ZTpTdHJpbmcoZT8/IiIpLHR5cGU6dC50eXBlfHwiaW5mbyIsYnV0dG9uczpbe2xhYmVsOnQub2tMYWJlbHx8Ilx1NTk3RCIsdmFsdWU6dm9pZCAwLGtpbmQ6InByaW1hcnkiLGF1dG9mb2N1czohMH1dfSl9ZnVuY3Rpb24genMoZSx0KXt0PXR8fHt9O3ZhciBuPSEhdC5kYW5nZXJ8fHQudHlwZT09PSJkYW5nZXIiO3JldHVybiBsbih7dGl0bGU6dC50aXRsZXx8KG4/Ilx1Nzg2RVx1OEJBNFx1NjRDRFx1NEY1QyI6Ilx1OEJGN1x1Nzg2RVx1OEJBNCIpLG1lc3NhZ2U6dHlwZW9mIGU9PSJzdHJpbmciP2U6U3RyaW5nKGU/PyIiKSx0eXBlOnQudHlwZXx8KG4/ImRhbmdlciI6InF1ZXN0aW9uIiksY2FuY2VsVmFsdWU6ITEsYnV0dG9uczpbe2xhYmVsOnQuY2FuY2VsTGFiZWx8fCJcdTUzRDZcdTZEODgiLHZhbHVlOiExLGtpbmQ6InNlY29uZGFyeSJ9LHtsYWJlbDp0Lm9rTGFiZWx8fChuPyJcdTUyMjBcdTk2NjQiOiJcdTc4NkVcdTVCOUEiKSx2YWx1ZTohMCxraW5kOm4/ImRhbmdlciI6InByaW1hcnkiLGF1dG9mb2N1czohbn1dfSkudGhlbihmdW5jdGlvbihpKXtyZXR1cm4gaT09PSEwfSl9ZnVuY3Rpb24gQ2YoZSx0LG4pe3JldHVybiBuPW58fHt9LGxuKHt0aXRsZTpuLnRpdGxlfHwiXHU4QkY3XHU4RjkzXHU1MTY1IixtZXNzYWdlOnR5cGVvZiBlPT0ic3RyaW5nIj9lOlN0cmluZyhlPz8iIiksdHlwZTpuLnR5cGV8fCJxdWVzdGlvbiIsaW5wdXQ6ITAsaW5wdXRWYWx1ZTp0PT1udWxsPyIiOlN0cmluZyh0KSxpbnB1dFBsYWNlaG9sZGVyOm4ucGxhY2Vob2xkZXJ8fCIiLGNhbmNlbFZhbHVlOm51bGwsYnV0dG9uczpbe2xhYmVsOm4uY2FuY2VsTGFiZWx8fCJcdTUzRDZcdTZEODgiLHZhbHVlOm51bGwsa2luZDoic2Vjb25kYXJ5In0se2xhYmVsOm4ub2tMYWJlbHx8Ilx1Nzg2RVx1NUI5QSIsdmFsdWU6dm9pZCAwLGtpbmQ6InByaW1hcnkifV19KX13aW5kb3cud2FuZEFsZXJ0PXdmLHdpbmRvdy53YW5kQ29uZmlybT16cyx3aW5kb3cud2FuZFByb21wdD1DZix3aW5kb3cub3BlbldhbmREaWFsb2c9bG47dmFyIG5uPVtdLFVzPTAsQmY9NixEZj0xNjtmdW5jdGlvbiBiYShlKXtpZigoZS5hY3Rpb25MYWJlbHx8ZS5wbGF5U291bmQpJiZZcygpLCFyLm5vdGlmQnViYmxlKXJldHVybntkaXNtaXNzOmZ1bmN0aW9uKCl7fX07dmFyIHQ9KytVcyxuPWUudHlwZXx8ImluZm8iLGk9ZS5pY29ufHwobj09PSJ3YXJuaW5nIj8iISI6bj09PSJzdWNjZXNzIj8iXHUyNzEzIjoiaSIpLGE9ZS5kdXJhdGlvbiE9PXZvaWQgMD9lLmR1cmF0aW9uOjhlMyx1PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3UuY2xhc3NOYW1lPSJub3RpZmljYXRpb24tYnViYmxlIix1LnNldEF0dHJpYnV0ZSgiZGF0YS1uaWQiLFN0cmluZyh0KSk7dmFyIHM9JzxkaXYgY2xhc3M9Im5vdGlmaWNhdGlvbi1idWJibGUtaGVhZGVyIj48c3BhbiBjbGFzcz0ibm90aWZpY2F0aW9uLWJ1YmJsZS1pY29uICcrbisnIj4nK2krJzwvc3Bhbj48c3BhbiBjbGFzcz0ibm90aWZpY2F0aW9uLWJ1YmJsZS10aXRsZSI+JytwKGUudGl0bGUpKyc8L3NwYW4+PGJ1dHRvbiBjbGFzcz0ibm90aWZpY2F0aW9uLWJ1YmJsZS1jbG9zZSIgdGl0bGU9Ilx1NTE3M1x1OTVFRCI+XHhENzwvYnV0dG9uPjwvZGl2Picsbz1lLmJvZHk/JzxkaXYgY2xhc3M9Im5vdGlmaWNhdGlvbi1idWJibGUtYm9keSI+JytwKGUuYm9keSkucmVwbGFjZSgvXG4vZywiPGJyPiIpKyI8L2Rpdj4iOiIiLGw9ZS5hY3Rpb25MYWJlbD8nPGRpdiBjbGFzcz0ibm90aWZpY2F0aW9uLWJ1YmJsZS1hY3Rpb25zIj48YnV0dG9uIGNsYXNzPSJwcmltYXJ5Ij4nK3AoZS5hY3Rpb25MYWJlbCkrIjwvYnV0dG9uPjwvZGl2PiI6IiI7dS5pbm5lckhUTUw9cytvK2wsZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh1KTt2YXIgYz17aWQ6dCxlbDp1fTtubi5wdXNoKGMpLEVhKCk7dmFyIGY9dS5xdWVyeVNlbGVjdG9yKCIubm90aWZpY2F0aW9uLWJ1YmJsZS1jbG9zZSIpO2lmKGYmJihmLm9uY2xpY2s9ZnVuY3Rpb24oKXtDcih0KX0pLGUuYWN0aW9uTGFiZWwmJmUuYWN0aW9uKXt2YXIgZD11LnF1ZXJ5U2VsZWN0b3IoIi5ub3RpZmljYXRpb24tYnViYmxlLWFjdGlvbnMgYnV0dG9uIik7ZCYmKGQub25jbGljaz1mdW5jdGlvbigpe2UuYWN0aW9uKCksQ3IodCl9KX12YXIgdj1udWxsO3JldHVybiBhPjAmJih2PXNldFRpbWVvdXQoZnVuY3Rpb24oKXtDcih0KX0sYSkpLHtkaXNtaXNzOmZ1bmN0aW9uKCl7Q3IodCl9fX1mdW5jdGlvbiBDcihlKXtmb3IodmFyIHQ9LTEsbj0wO248bm4ubGVuZ3RoO24rKylpZihubltuXS5pZD09PWUpe3Q9bjticmVha31pZih0IT09LTEpe3ZhciBpPW5uW3RdO2kuZWwuY2xhc3NMaXN0LmFkZCgic2xpZGUtb3V0Iiksbm4uc3BsaWNlKHQsMSksRWEoKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aS5lbC5wYXJlbnROb2RlJiZpLmVsLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoaS5lbCl9LDMwMCl9fWZ1bmN0aW9uIEVhKCl7Zm9yKHZhciBlPURmLHQ9MDt0PG5uLmxlbmd0aDt0Kyspbm5bdF0uZWwuc3R5bGUudG9wPWUrInB4IixlKz1ublt0XS5lbC5vZmZzZXRIZWlnaHQrQmZ9dHJ5eyRzPW5hdmlnYXRvci51c2VyQWdlbnQubWF0Y2goL1dhbmRQbGF0Zm9ybVwvbWFjT1MvKSxDYT13aW5kb3cud2Via2l0JiZ3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycyYmd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMud2FuZE5hdGl2ZXx8bnVsbCwkcyYmQ2EmJnR5cGVvZiB3aW5kb3cuV2FuZE5hdGl2ZT4idSImJih3aW5kb3cuV2FuZE5hdGl2ZT17ZG93bmxvYWRVcGRhdGU6ZnVuY3Rpb24oZSx0LG4pe3RyeXtDYS5wb3N0TWVzc2FnZSh7dHlwZToiZG93bmxvYWRVcGRhdGUiLHVybDpTdHJpbmcoZXx8IiIpLGZpbGVOYW1lOlN0cmluZyh0fHwid2FuZC11cGRhdGUuZG1nIiksc291cmNlOlN0cmluZyhufHwibG9jYWwiKX0pfWNhdGNoe319fSl9Y2F0Y2h7fXZhciBqZT10eXBlb2YgV2FuZE5hdGl2ZTwidSImJnR5cGVvZiBXYW5kTmF0aXZlLnNlbmROb3RpZmljYXRpb249PSJmdW5jdGlvbiIsQnI9bmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgvV2FuZEFwcFwvKFteXHNdKykvKSxWcz0vV2FuZFBsYXRmb3JtXC9tYWNPUy8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSxrZj0hIUJyJiYhVnMsVG49QnImJmtmP0JyWzFdOm51bGwsY249QnImJlZzP0JyWzFdOm51bGw7ZnVuY3Rpb24gR24oZSl7aWYoISghamV8fHR5cGVvZiBXYW5kTmF0aXZlLnZpYnJhdGUhPSJmdW5jdGlvbiIpKXRyeXtXYW5kTmF0aXZlLnZpYnJhdGUoZXx8ImxpZ2h0Iil9Y2F0Y2h7fX1mdW5jdGlvbiBGYSgpe2lmKGplKXt2YXIgZT1yLnNlc3Npb25zLnNvbWUoZnVuY3Rpb24odCl7cmV0dXJuIXQuYXJjaGl2ZWQmJih0LnN0YXR1cz09PSJydW5uaW5nInx8dC5zdGF0dXM9PT0idGhpbmtpbmcifHx0LnN0YXR1cz09PSJpbml0aWFsaXppbmciKX0pO2lmKHR5cGVvZiBXYW5kTmF0aXZlLnNldEtlZXBTY3JlZW5Pbj09ImZ1bmN0aW9uIil0cnl7V2FuZE5hdGl2ZS5zZXRLZWVwU2NyZWVuT24oZSl9Y2F0Y2h7fWlmKGUpe2lmKHR5cGVvZiBXYW5kTmF0aXZlLnN0YXJ0S2VlcEFsaXZlPT0iZnVuY3Rpb24iKXRyeXtXYW5kTmF0aXZlLnN0YXJ0S2VlcEFsaXZlKCl9Y2F0Y2h7fX1lbHNlIGlmKHR5cGVvZiBXYW5kTmF0aXZlLnN0b3BLZWVwQWxpdmU9PSJmdW5jdGlvbiIpdHJ5e1dhbmROYXRpdmUuc3RvcEtlZXBBbGl2ZSgpfWNhdGNoe319fWZ1bmN0aW9uIGRpKCl7aWYoamUmJnR5cGVvZiBXYW5kTmF0aXZlLmdldFBlcm1pc3Npb249PSJmdW5jdGlvbiIpdHJ5e3JldHVybiBXYW5kTmF0aXZlLmdldFBlcm1pc3Npb24oKX1jYXRjaHt9cmV0dXJuIG51bGx9ZnVuY3Rpb24gQWYoKXtpZihqZSl7dmFyIGU9ZGkoKTtpZihlPT09ImRlZmF1bHQifHxlPT09ImRlbmllZCIpdHJ5e1dhbmROYXRpdmUucmVxdWVzdFBlcm1pc3Npb24oKX1jYXRjaHt9cmV0dXJufXR5cGVvZiBOb3RpZmljYXRpb248InUiJiZOb3RpZmljYXRpb24ucGVybWlzc2lvbj09PSJkZWZhdWx0IiYmTm90aWZpY2F0aW9uLnJlcXVlc3RQZXJtaXNzaW9uKCl9ZnVuY3Rpb24geGYoZSl7dmFyIHQ9ZXx8e307cmV0dXJuISh0Lm9ubHlXaGVuSGlkZGVuJiYhZG9jdW1lbnQuaGlkZGVufHx0LnNraXBXaGVuU2VsZWN0ZWRTZXNzaW9uSWQmJnQuc2tpcFdoZW5TZWxlY3RlZFNlc3Npb25JZD09PXIuc2VsZWN0ZWRJZCYmIWRvY3VtZW50LmhpZGRlbil9ZnVuY3Rpb24gU2YoZSx0KXtpZighZXx8IXR8fHQ8PTApcmV0dXJuITE7dmFyIG49ci5ub3RpZmljYXRpb25IaXN0b3J5W2VdfHwwLGk9RGF0ZS5ub3coKTtyZXR1cm4gaS1uPHQ/ITA6KHIubm90aWZpY2F0aW9uSGlzdG9yeVtlXT1pLCExKX1mdW5jdGlvbiBmaShlLHQsbil7dmFyIGk9bnx8e30sYT1pLnRhZ3x8IiI7aWYoeGYoaSkmJiFTZihhLGkubWluSW50ZXJ2YWxNc3x8MCkpe2lmKGplKXt2YXIgdT1kaSgpO2lmKHUhPT0iZ3JhbnRlZCIpcmV0dXJuO3RyeXt2YXIgcz1hO2kua2luZCYmKHM9aS5raW5kKyhhPyI6IithOiIiKSksV2FuZE5hdGl2ZS5zZW5kTm90aWZpY2F0aW9uKGV8fCJXYW5kIix0fHwiIixzfHwiIil9Y2F0Y2h7fXJldHVybn1pZighKHR5cGVvZiBOb3RpZmljYXRpb24+InUifHxOb3RpZmljYXRpb24ucGVybWlzc2lvbiE9PSJncmFudGVkIikmJmRvY3VtZW50LmhpZGRlbil0cnl7dmFyIG89bmV3IE5vdGlmaWNhdGlvbihlLHtib2R5OnR8fCIiLGljb246aS5pY29ufHwiL2Zhdmljb24uaWNvIix0YWc6YXx8dm9pZCAwfSk7by5vbmNsaWNrPWZ1bmN0aW9uKCl7d2luZG93LmZvY3VzKCksby5jbG9zZSgpLGkub25DbGljayYmaS5vbkNsaWNrKCl9LHNldFRpbWVvdXQoZnVuY3Rpb24oKXtvLmNsb3NlKCl9LDFlNCl9Y2F0Y2h7fX19ZnVuY3Rpb24gSWYoZSx0KXtpZighKCF0fHwhdC50aXRsZSkpe3ZhciBuPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihhKXtyZXR1cm4gYS5pZD09PWV9KTtpZihuKXt2YXIgaT1uLnN1bW1hcnl8fG4uY29tbWFuZHx8ZTtmaSgiXHU0RUZCXHU1MkExXHU4RkRCXHU4ODRDXHU0RTJEIixpK2AKYCt0LnRpdGxlLHtraW5kOiJ0YXNrIix0YWc6IndhbmQtdGFzay0iK2UrIi0iK3QudGl0bGUsbWluSW50ZXJ2YWxNczo5ZTQsb25seVdoZW5IaWRkZW46ITAsc2tpcFdoZW5TZWxlY3RlZFNlc3Npb25JZDplLG9uQ2xpY2s6ZnVuY3Rpb24oKXtlIT09ci5zZWxlY3RlZElkJiZ6dChlKX19KX19fWZ1bmN0aW9uIEtzKGUsdCl7UGYoZXx8Ii0iLHR8fCItIiksZmkoIldhbmQgXHU1M0QxXHU3M0IwXHU2NUIwXHU3MjQ4XHU2NzJDIiwiXHU1RjUzXHU1MjREICIrKGV8fCItIikrIiBcdTIxOTIgXHU2NzAwXHU2NUIwICIrKHR8fCItIikse2tpbmQ6InVwZGF0ZSIsdGFnOiJ3YW5kLXVwZGF0ZSIsbWluSW50ZXJ2YWxNczozZTV9KX1mdW5jdGlvbiBUZihlLHQpe2ZpKCJcdTk3MDBcdTg5ODFcdTRGNjBcdTc2ODRcdTYzODhcdTY3NDMiLHQse2tpbmQ6InBlcm1pc3Npb24iLHRhZzoid2FuZC1wZXJtLSIrZSxtaW5JbnRlcnZhbE1zOjZlNCxvbmx5V2hlbkhpZGRlbjohMCxza2lwV2hlblNlbGVjdGVkU2Vzc2lvbklkOmUsb25DbGljazpmdW5jdGlvbigpe2UhPT1yLnNlbGVjdGVkSWQmJnp0KGUpfX0pfWZ1bmN0aW9uIExmKGUsdCxuKXtmaSh0LG4se2tpbmQ6InRhc2stZW5kZWQiLHRhZzoid2FuZC1lbmRlZC0iK2UsbWluSW50ZXJ2YWxNczoxZTQsb25DbGljazpmdW5jdGlvbigpe2UhPT1yLnNlbGVjdGVkSWQmJnp0KGUpfX0pfXZhciBMbj17fSxNZj0zMDtmdW5jdGlvbiBKcyhlKXtpZighZSlyZXR1cm4iIjt2YXIgdD1TdHJpbmcoZSkucmVwbGFjZSgvXiMrXHMrL2dtLCIiKS5yZXBsYWNlKC9cKlwqL2csIiIpLnJlcGxhY2UoL2AvZywiIikudHJpbSgpLG49dC5zcGxpdChgCmApWzBdLnRyaW0oKTtyZXR1cm4gbi5sZW5ndGg+MTAwJiYobj1uLnNsaWNlKDAsMTAwKSsiXHUyMDI2Iiksbn1mdW5jdGlvbiB3YShlKXshamV8fHR5cGVvZiBXYW5kTmF0aXZlLnVwZGF0ZVNlc3Npb25Qcm9ncmVzcyE9ImZ1bmN0aW9uInx8ZSYmKExuW2VdJiZjbGVhclRpbWVvdXQoTG5bZV0pLExuW2VdPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtkZWxldGUgTG5bZV0scWYoZSl9LE1mKSl9ZnVuY3Rpb24gcWYoZSl7dmFyIHQ9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKHgpe3JldHVybiB4LmlkPT09ZX0pO2lmKHQpe3ZhciBuPXQuc3VtbWFyeXx8dC5jb21tYW5kfHxlLGk9dC5zdGF0dXN8fCJydW5uaW5nIjtpZihpPT09ImlkbGUifHxpPT09ImFyY2hpdmVkInx8aT09PSJleGl0ZWQiKXtHcyhlKTtyZXR1cm59Zm9yKHZhciBhPW51bGwsdT0iIixzPSIiLG89W10sbD10Lm1lc3NhZ2VzfHxbXSxjPWwubGVuZ3RoLTE7Yz49MDtjLS0pe3ZhciBmPWxbY107aWYoISghZi5jb250ZW50fHwhQXJyYXkuaXNBcnJheShmLmNvbnRlbnQpKSl7aWYoIXMmJmYucm9sZT09PSJhc3Npc3RhbnQiKWZvcih2YXIgZD1mLmNvbnRlbnQubGVuZ3RoLTE7ZD49MDtkLS0pe3ZhciB2PWYuY29udGVudFtkXTtpZih2JiZ2LnR5cGU9PT0idGV4dCImJnYudGV4dCYmdi50ZXh0LnRyaW0oKSl7cz1Kcyh2LnRleHQpO2JyZWFrfX1pZihmLnJvbGU9PT0idXNlciIpe3ZhciBoPWYuY29udGVudC5zb21lKGZ1bmN0aW9uKHgpe3JldHVybiB4JiZ4Ll9fcXVldWVkfSk7aWYoIWgpZm9yKHZhciBnPTA7ZzxmLmNvbnRlbnQubGVuZ3RoO2crKyl7dmFyIG09Zi5jb250ZW50W2ddO2lmKG0mJm0udHlwZT09PSJ0ZXh0IiYmbS50ZXh0JiZtLnRleHQudHJpbSgpKXt2YXIgeT1KcyhtLnRleHQpO3V8fCh1PXkpLG8ubGVuZ3RoPDQmJm8ucHVzaCh5KTticmVha319fWlmKCFhKWZvcih2YXIgdz1mLmNvbnRlbnQubGVuZ3RoLTE7dz49MDt3LS0pe3ZhciBFPWYuY29udGVudFt3XTtpZihFJiZFLnR5cGU9PT0idG9vbF91c2UiJiZFLm5hbWU9PT0iVG9kb1dyaXRlIiYmRS5pbnB1dCYmRS5pbnB1dC50b2Rvcyl7YT1FLmlucHV0LnRvZG9zO2JyZWFrfX1pZihhJiZvLmxlbmd0aD49NCYmcylicmVha319by5yZXZlcnNlKCk7dmFyIEI9IiI7ZT09PXIuc2VsZWN0ZWRJZCYmci5jdXJyZW50VGFzayYmci5jdXJyZW50VGFzay50aXRsZSYmKEI9ci5jdXJyZW50VGFzay50aXRsZSk7dmFyIEY9e3Nlc3Npb25MYWJlbDpuLHN0YXR1czppLGN1cnJlbnRUYXNrOkIsbGF0ZXN0VXNlclRleHQ6dSxsYXRlc3RBc3Npc3RhbnRUZXh0OnMsdG9kb3M6YXx8W10scmVjZW50VXNlclRleHRzOm99O3RyeXtXYW5kTmF0aXZlLnVwZGF0ZVNlc3Npb25Qcm9ncmVzcyhlLEpTT04uc3RyaW5naWZ5KEYpKX1jYXRjaHt9fX1mdW5jdGlvbiBHcyhlKXtpZighKCFqZXx8dHlwZW9mIFdhbmROYXRpdmUuY2xlYXJTZXNzaW9uUHJvZ3Jlc3MhPSJmdW5jdGlvbiIpKXtMbltlXSYmKGNsZWFyVGltZW91dChMbltlXSksZGVsZXRlIExuW2VdKTt0cnl7V2FuZE5hdGl2ZS5jbGVhclNlc3Npb25Qcm9ncmVzcyhlKX1jYXRjaHt9fX13aW5kb3cuaGFuZGxlTmF0aXZlQmFjaz1mdW5jdGlvbigpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncy1tb2RhbCIpO2lmKGUmJiFlLmNsYXNzTGlzdC5jb250YWlucygiaGlkZGVuIikpcmV0dXJuIHRyKCksITA7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlc3Npb24tbW9kYWwiKTtpZih0JiYhdC5jbGFzc0xpc3QuY29udGFpbnMoImhpZGRlbiIpKXJldHVybiB5bigpLCEwO3ZhciBuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3b3JrdHJlZS1tZXJnZS1tb2RhbCIpO3JldHVybiBuJiYhbi5jbGFzc0xpc3QuY29udGFpbnMoImhpZGRlbiIpPyhlcigpLCEwKTpyLmZpbGVQYW5lbE9wZW4mJk5lKCk/KFhpKCExKSwhMCk6ci5zZXNzaW9uc0RyYXdlck9wZW4mJk5lKCk/KE9yKCksITApOk5lKCkmJnIuc2VsZWN0ZWRJZD8oci5zZWxlY3RlZElkPW51bGwsd2UoKSxyLnNlc3Npb25zRHJhd2VyT3Blbj0hMCx4ZSgid2FuZC1zaWRlYmFyLW9wZW4iLCEwKSx0bigpLCEwKTohMX07ZnVuY3Rpb24gWXMoKXtyLm5vdGlmU291bmQmJnBpKCl9ZnVuY3Rpb24gT2YoKXtyZXR1cm4gcGkoKX1mdW5jdGlvbiBwaSgpe3RyeXtsZXQgYT1mdW5jdGlvbih1LHMsbyl7dmFyIGw9bi5jcmVhdGVPc2NpbGxhdG9yKCksYz1uLmNyZWF0ZUdhaW4oKTtsLnR5cGU9InNpbmUiLGwuZnJlcXVlbmN5LnZhbHVlPXUsYy5nYWluLnNldFZhbHVlQXRUaW1lKDAsbi5jdXJyZW50VGltZStzKSxjLmdhaW4ubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUoLjUqaSxuLmN1cnJlbnRUaW1lK3MrLjA0KSxjLmdhaW4uZXhwb25lbnRpYWxSYW1wVG9WYWx1ZUF0VGltZSguMDAxLG4uY3VycmVudFRpbWUrcytvKSxsLmNvbm5lY3QoYyksYy5jb25uZWN0KG4uZGVzdGluYXRpb24pLGwuc3RhcnQobi5jdXJyZW50VGltZStzKSxsLnN0b3Aobi5jdXJyZW50VGltZStzK28pfTt2YXIgZT1hLHQ9d2luZG93LkF1ZGlvQ29udGV4dHx8d2luZG93LndlYmtpdEF1ZGlvQ29udGV4dDtpZighdClyZXR1cm4hMTt2YXIgbj1uZXcgdDtuLnN0YXRlPT09InN1c3BlbmRlZCImJm4ucmVzdW1lKCk7dmFyIGk9KHIubm90aWZWb2x1bWV8fDApLzEwMDtyZXR1cm4gYSg1MjMsMCwuMjUpLGEoNjU5LC4xMiwuMyksc2V0VGltZW91dChmdW5jdGlvbigpe24uY2xvc2UoKX0sNjAwKSwhMH1jYXRjaHtyZXR1cm4hMX19ZnVuY3Rpb24gUGYoZSx0KXtpZihyLl91cGRhdGVCdWJibGVTaG93bilyZXR1cm47ci5fdXBkYXRlQnViYmxlU2hvd249ITAsWXMoKTt2YXIgbj0rK1VzLGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7aS5jbGFzc05hbWU9Im5vdGlmaWNhdGlvbi1idWJibGUgdXBkYXRlLWNhcmQiLGkuc2V0QXR0cmlidXRlKCJkYXRhLW5pZCIsU3RyaW5nKG4pKSxpLmlubmVySFRNTD0nPGRpdiBjbGFzcz0idXBkYXRlLWNhcmQtc2hpbmUiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L2Rpdj48ZGl2IGNsYXNzPSJ1cGRhdGUtY2FyZC1oZWFkZXIiPjxkaXYgY2xhc3M9InVwZGF0ZS1jYXJkLWljb24iIGFyaWEtaGlkZGVuPSJ0cnVlIj48c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyLjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTEyIDE5VjUiLz48cGF0aCBkPSJNNSAxMmw3LTcgNyA3Ii8+PC9zdmc+PC9kaXY+PGRpdiBjbGFzcz0idXBkYXRlLWNhcmQtaGVhZGluZyI+PGRpdiBjbGFzcz0idXBkYXRlLWNhcmQtdGl0bGUiPlx1NTNEMVx1NzNCMFx1NjVCMFx1NzI0OFx1NjcyQzwvZGl2PjxkaXYgY2xhc3M9InVwZGF0ZS1jYXJkLXN1YnRpdGxlIiBpZD0idXBkYXRlLWNhcmQtc3VidGl0bGUiPlx1NzBCOVx1NTFGQlx1NEUwQlx1NjVCOVx1NjMwOVx1OTRBRVx1NEUwMFx1OTUyRVx1NjZGNFx1NjVCMDwvZGl2PjwvZGl2PjxidXR0b24gY2xhc3M9InVwZGF0ZS1jYXJkLWNsb3NlIiB0aXRsZT0iXHU3QTBEXHU1NDBFXHU2M0QwXHU5MTkyIiBhcmlhLWxhYmVsPSJcdTUxNzNcdTk1RUQiPjxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIuMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNMTggNkw2IDE4Ii8+PHBhdGggZD0iTTYgNmwxMiAxMiIvPjwvc3ZnPjwvYnV0dG9uPjwvZGl2PjxkaXYgY2xhc3M9InVwZGF0ZS1jYXJkLXZlcnNpb24iPjxzcGFuIGNsYXNzPSJ1cGRhdGUtY2FyZC12ZXJzaW9uLWNoaXAgdXBkYXRlLWNhcmQtdmVyc2lvbi1jdXJyZW50Ij52JytwKFN0cmluZyhlKS5yZXBsYWNlKC9edi8sIiIpKSsnPC9zcGFuPjxzdmcgY2xhc3M9InVwZGF0ZS1jYXJkLXZlcnNpb24tYXJyb3ciIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyLjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxwYXRoIGQ9Ik01IDEyaDE0Ii8+PHBhdGggZD0iTTEzIDVsNyA3LTcgNyIvPjwvc3ZnPjxzcGFuIGNsYXNzPSJ1cGRhdGUtY2FyZC12ZXJzaW9uLWNoaXAgdXBkYXRlLWNhcmQtdmVyc2lvbi1sYXRlc3QiPnYnK3AoU3RyaW5nKHQpLnJlcGxhY2UoL152LywiIikpKyc8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0idXBkYXRlLWNhcmQtcHJvZ3Jlc3MiIGlkPSJ1cGRhdGUtY2FyZC1wcm9ncmVzcyIgYXJpYS1oaWRkZW49InRydWUiPjxkaXYgY2xhc3M9InVwZGF0ZS1jYXJkLXByb2dyZXNzLXRyYWNrIj48ZGl2IGNsYXNzPSJ1cGRhdGUtY2FyZC1wcm9ncmVzcy1maWxsIj48L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJ1cGRhdGUtY2FyZC1zdGF0dXMgaGlkZGVuIiBpZD0idXBkYXRlLWNhcmQtc3RhdHVzIj48L2Rpdj48ZGl2IGNsYXNzPSJ1cGRhdGUtY2FyZC1hY3Rpb25zIj48YnV0dG9uIGNsYXNzPSJ1cGRhdGUtY2FyZC1hY3Rpb24gdXBkYXRlLWNhcmQtYWN0aW9uLXByaW1hcnkiIGlkPSJ1cGRhdGUtYnViYmxlLWFjdGlvbiIgdHlwZT0iYnV0dG9uIj48c3BhbiBjbGFzcz0idXBkYXRlLWNhcmQtYWN0aW9uLWxhYmVsIj5cdTdBQ0JcdTUzNzNcdTY2RjRcdTY1QjA8L3NwYW4+PC9idXR0b24+PC9kaXY+Jyxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGkpO3ZhciBhPXtpZDpuLGVsOml9O25uLnB1c2goYSksRWEoKTt2YXIgdT1pLnF1ZXJ5U2VsZWN0b3IoIi51cGRhdGUtY2FyZC1jbG9zZSIpO3UmJih1Lm9uY2xpY2s9ZnVuY3Rpb24oKXtDcihuKSxyLl91cGRhdGVCdWJibGVTaG93bj0hMX0pO3ZhciBzPWkucXVlcnlTZWxlY3RvcigiI3VwZGF0ZS1idWJibGUtYWN0aW9uIiksbz1pLnF1ZXJ5U2VsZWN0b3IoIi51cGRhdGUtY2FyZC1hY3Rpb24tbGFiZWwiKSxsPWkucXVlcnlTZWxlY3RvcigiI3VwZGF0ZS1jYXJkLXN1YnRpdGxlIiksYz1pLnF1ZXJ5U2VsZWN0b3IoIiN1cGRhdGUtY2FyZC1zdGF0dXMiKSxmPWkucXVlcnlTZWxlY3RvcigiI3VwZGF0ZS1jYXJkLXByb2dyZXNzIik7ZnVuY3Rpb24gZChnLG0pe2lmKGMpe2lmKGMudGV4dENvbnRlbnQ9Z3x8IiIsYy5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iLCJlcnJvciIsInN1Y2Nlc3MiKSwhZyl7Yy5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKTtyZXR1cm59bSYmYy5jbGFzc0xpc3QuYWRkKG0pfX1mdW5jdGlvbiB2KGcpe2wmJihsLnRleHRDb250ZW50PWd8fCIiKX1mdW5jdGlvbiBoKGcpe2YmJmYuY2xhc3NMaXN0LnRvZ2dsZSgiYWN0aXZlIiwhIWcpfXMmJihzLm9uY2xpY2s9ZnVuY3Rpb24oKXtzLmRpc2FibGVkPSEwLGkuY2xhc3NMaXN0LmFkZCgiaXMtYnVzeSIpLG8mJihvLnRleHRDb250ZW50PSJcdTY2RjRcdTY1QjBcdTRFMkRcdTIwMjYiKSx2KCJcdTZCNjNcdTU3MjhcdTRFMEJcdThGN0RcdTVFNzZcdTVCODlcdTg4QzVcdTY1QjBcdTcyNDhcdTY3MkNcdTIwMjYiKSxoKCEwKSxkKCIiKSxmZXRjaCgiL2FwaS91cGRhdGUiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24oZyl7cmV0dXJuIGcuanNvbigpfSkudGhlbihmdW5jdGlvbihnKXtpZihnLmVycm9yKXtoKCExKSxpLmNsYXNzTGlzdC5yZW1vdmUoImlzLWJ1c3kiKSx2KCJcdTY2RjRcdTY1QjBcdTY3MkFcdTVCOENcdTYyMTAiKSxkKGcuZXJyb3IsImVycm9yIikscy5kaXNhYmxlZD0hMSxvJiYoby50ZXh0Q29udGVudD0iXHU5MUNEXHU4QkQ1Iik7cmV0dXJufWlmKGkuY2xhc3NMaXN0LmFkZCgiaXMtc3VjY2VzcyIpLHYoKGcubWVzc2FnZXx8Ilx1NjZGNFx1NjVCMFx1NUI4Q1x1NjIxMCIpKyJcdUZGMENcdTZCNjNcdTU3MjhcdTkxQ0RcdTU0MkZcdTY3MERcdTUyQTFcdTIwMjYiKSxkKCIiKSxvJiYoby50ZXh0Q29udGVudD0iXHU2QjYzXHU1NzI4XHU5MUNEXHU1NDJGXHUyMDI2IiksZy5kZXRhY2hlZFVwZGF0ZSl7ZG4oKTtyZXR1cm59aWYoZy5yZXN0YXJ0UmVxdWlyZWQ9PT0hMSl7aCghMSksaS5jbGFzc0xpc3QucmVtb3ZlKCJpcy1idXN5Iikscy5kaXNhYmxlZD0hMSxvJiYoby50ZXh0Q29udGVudD0iXHU1REYyXHU1QjhDXHU2MjEwIik7cmV0dXJufUhmKHMsbyxsLGMsZil9KS5jYXRjaChmdW5jdGlvbigpe2goITEpLGkuY2xhc3NMaXN0LnJlbW92ZSgiaXMtYnVzeSIpLHYoIlx1NjZGNFx1NjVCMFx1NjcyQVx1NUI4Q1x1NjIxMCIpLGQoIlx1OEJGN1x1NjhDMFx1NjdFNVx1N0Y1MVx1N0VEQ1x1OEZERVx1NjNBNVx1NTQwRVx1OTFDRFx1OEJENSIsImVycm9yIikscy5kaXNhYmxlZD0hMSxvJiYoby50ZXh0Q29udGVudD0iXHU5MUNEXHU4QkQ1Iil9KX0pfWZ1bmN0aW9uIEhmKGUsdCxuLGksYSl7ZmV0Y2goIi9hcGkvcmVzdGFydCIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbih1KXtyZXR1cm4gdS5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKCl7ZG4oKX0pLmNhdGNoKGZ1bmN0aW9uKCl7ZG4oKX0pfWZ1bmN0aW9uIFFzKGUsdCl7ZSYmKGUuZGlzYWJsZWQ9ITAsZS50ZXh0Q29udGVudD0iXHU2QjYzXHU1NzI4XHU5MUNEXHU1NDJGXHUyMDI2IiksdCYmKHQudGV4dENvbnRlbnQ9Ilx1NjcwRFx1NTJBMVx1NkI2M1x1NTcyOFx1OTFDRFx1NTQyRlx1MjAyNiIsdC5zdHlsZS5jb2xvcj0idmFyKC0tdGV4dC1zZWNvbmRhcnkpIiksZmV0Y2goIi9hcGkvcmVzdGFydCIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gbi5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKCl7ZG4oKX0pLmNhdGNoKGZ1bmN0aW9uKCl7ZG4oKX0pfWZ1bmN0aW9uIGRuKCl7aWYoIWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN0YXJ0LW92ZXJsYXkiKSl7dmFyIGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7ZS5pZD0icmVzdGFydC1vdmVybGF5IixlLmNsYXNzTmFtZT0icmVzdGFydC1vdmVybGF5IixlLmlubmVySFRNTD0nPGRpdiBjbGFzcz0icmVzdGFydC1vdmVybGF5LWNvbnRlbnQiPjxkaXYgY2xhc3M9InJlc3RhcnQtc3Bpbm5lciI+PC9kaXY+PGRpdiBjbGFzcz0icmVzdGFydC10aXRsZSI+XHU2NzBEXHU1MkExXHU2QjYzXHU1NzI4XHU5MUNEXHU1NDJGPC9kaXY+PGRpdiBjbGFzcz0icmVzdGFydC1zdWJ0aXRsZSI+XHU3QTBEXHU1NDBFXHU1QzA2XHU4MUVBXHU1MkE4XHU1MjM3XHU2NUIwXHU5ODc1XHU5NzYyXHUyMDI2PC9kaXY+PC9kaXY+Jyxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGUpO3ZhciB0PTAsbj0xODAsaT1zZXRJbnRlcnZhbChmdW5jdGlvbigpe2lmKHQrKyxmZXRjaCgiL2FwaS9jb25maWciLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbih1KXt1Lm9rJiYoY2xlYXJJbnRlcnZhbChpKSxsb2NhdGlvbi5yZWxvYWQoKSl9KS5jYXRjaChmdW5jdGlvbigpe30pLHQ+PW4pe2NsZWFySW50ZXJ2YWwoaSk7dmFyIGE9ZS5xdWVyeVNlbGVjdG9yKCIucmVzdGFydC1zdWJ0aXRsZSIpO2EmJihhLmlubmVySFRNTD0nXHU5MUNEXHU1NDJGXHU4RDg1XHU2NUY2XHVGRjBDXHU4QkY3IDxhIGhyZWY9ImphdmFzY3JpcHQ6bG9jYXRpb24ucmVsb2FkKCkiIHN0eWxlPSJjb2xvcjp2YXIoLS1hY2NlbnQpO3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmUiPlx1NjI0Qlx1NTJBOFx1NTIzN1x1NjVCMDwvYT4gXHU5ODc1XHU5NzYyXHUzMDAyJyl9fSwyZTMpfX1mdW5jdGlvbiBfZihlLHQpe2lmKCFkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdGFydC1vdmVybGF5Iikpe3ZhciBuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO24uaWQ9InJlc3RhcnQtb3ZlcmxheSIsbi5jbGFzc05hbWU9InJlc3RhcnQtb3ZlcmxheSIsbi5pbm5lckhUTUw9JzxkaXYgY2xhc3M9InJlc3RhcnQtb3ZlcmxheS1jb250ZW50Ij48ZGl2IGNsYXNzPSJyZXN0YXJ0LXNwaW5uZXIiPjwvZGl2PjxkaXYgY2xhc3M9InJlc3RhcnQtdGl0bGUiPlx1ODFFQVx1NTJBOFx1NjZGNFx1NjVCMFx1NEUyRDwvZGl2PjxkaXYgY2xhc3M9InJlc3RhcnQtc3VidGl0bGUiPicrcChlKSsiIFx1MjE5MiAiK3AodCkrIjxicj5cdTZCNjNcdTU3MjhcdTRFMEJcdThGN0RcdTVFNzZcdTVCODlcdTg4QzVcdTY1QjBcdTcyNDhcdTY3MkNcdUZGMENcdTdBMERcdTU0MEVcdTVDMDZcdTgxRUFcdTUyQThcdTkxQ0RcdTU0MkZcdTIwMjY8L2Rpdj48L2Rpdj4iLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobil9fXZhciAkcyxDYSxTZT17cmVjb3JkaW5nOiExLGNhbmNlbGluZzohMSx0cmFuc2NyaXB0OiIiLHN0YXJ0WTowfSxOZj02MDtmdW5jdGlvbiBqZihlKXtTZS50cmFuc2NyaXB0PWV8fCIiO3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ2b2ljZS10cmFuc2NyaXB0LXRleHQiKTt0JiYodC50ZXh0Q29udGVudD1TZS50cmFuc2NyaXB0KTt2YXIgbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidm9pY2UtdHJhbnNjcmlwdC1idWJibGUiKTtuJiZuLmNsYXNzTGlzdC50b2dnbGUoImhhcy10ZXh0IiwhIVNlLnRyYW5zY3JpcHQpfWZ1bmN0aW9uIFJmKGUpe2lmKGUpe2UucHJldmVudERlZmF1bHQoKSxTZS5zdGFydFk9dHlwZW9mIGUuY2xpZW50WT09Im51bWJlciI/ZS5jbGllbnRZOjA7dHJ5e2UucG9pbnRlcklkIT09dm9pZCAwJiZlLnRhcmdldCYmZS50YXJnZXQuc2V0UG9pbnRlckNhcHR1cmUmJmUudGFyZ2V0LnNldFBvaW50ZXJDYXB0dXJlKGUucG9pbnRlcklkKX1jYXRjaHt9fVNlLnJlY29yZGluZz0hMCxTZS5jYW5jZWxpbmc9ITEsU2UudHJhbnNjcmlwdD0iIjt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidm9pY2UtcmVjb3JkLWJ0biIpO2lmKHQpe3QuY2xhc3NMaXN0LmFkZCgiaXMtcmVjb3JkaW5nIik7dmFyIG49dC5xdWVyeVNlbGVjdG9yKCIudm9pY2UtcmVjb3JkLWxhYmVsIik7biYmKG4udGV4dENvbnRlbnQ9Ilx1Njc3RVx1NUYwMCBcdTUzRDFcdTkwMDEiKX12YXIgaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidm9pY2UtdHJhbnNjcmlwdC1idWJibGUiKTtpJiZpLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIsImlzLWNhbmNlbGluZyIsImhhcy10ZXh0IiksamYoIiIpO3ZhciBhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ2b2ljZS10cmFuc2NyaXB0LXN0YXR1cyIpO2EmJihhLnRleHRDb250ZW50PSJcdTdGNTFcdTk4NzVcdTdBRUZcdTY2ODJcdTRFMERcdTY1MkZcdTYzMDFcdThCRURcdTk3RjNcdThGOTNcdTUxNjVcdUZGMENcdThCRjdcdTRGN0ZcdTc1MjggQXBwIil9ZnVuY3Rpb24gV2YoZSl7aWYoISghU2UucmVjb3JkaW5nfHwhZSkpe3ZhciB0PVNlLnN0YXJ0WS0odHlwZW9mIGUuY2xpZW50WT09Im51bWJlciI/ZS5jbGllbnRZOlNlLnN0YXJ0WSksbj10Pk5mO2lmKG4hPT1TZS5jYW5jZWxpbmcpe1NlLmNhbmNlbGluZz1uO3ZhciBpPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ2b2ljZS10cmFuc2NyaXB0LWJ1YmJsZSIpO2kmJmkuY2xhc3NMaXN0LnRvZ2dsZSgiaXMtY2FuY2VsaW5nIixuKTt2YXIgYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidm9pY2UtcmVjb3JkLWJ0biIpLHU9YSYmYS5xdWVyeVNlbGVjdG9yKCIudm9pY2UtcmVjb3JkLWxhYmVsIik7dSYmKHUudGV4dENvbnRlbnQ9bj8iXHU2NzdFXHU1RjAwIFx1NTNENlx1NkQ4OCI6Ilx1Njc3RVx1NUYwMCBcdTUzRDFcdTkwMDEiKTt2YXIgcz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidm9pY2UtdHJhbnNjcmlwdC1zdGF0dXMiKTtzJiYocy50ZXh0Q29udGVudD1uPyJcdTY3N0VcdTVGMDBcdTYyNEJcdTYzMDcgXHU1M0Q2XHU2RDg4IjoiXHU2QjYzXHU1NzI4XHU4MDQ2XHU1NDJDXHUyMDI2XHU0RTBBXHU2RUQxXHU1M0Q2XHU2RDg4Iil9fX1mdW5jdGlvbiBYcyhlKXtpZihTZS5yZWNvcmRpbmcpe2UmJmUucHJldmVudERlZmF1bHQoKSxTZS5yZWNvcmRpbmc9ITE7dmFyIHQ9IVNlLmNhbmNlbGluZyYmISFTZS50cmFuc2NyaXB0LnRyaW0oKSxuPVNlLnRyYW5zY3JpcHQ7QmEoKSx0JiYoemYobiksRGEoITEpKX19ZnVuY3Rpb24gQmEoKXtTZS5jYW5jZWxpbmc9ITE7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInZvaWNlLXJlY29yZC1idG4iKTtpZihlKXtlLmNsYXNzTGlzdC5yZW1vdmUoImlzLXJlY29yZGluZyIpO3ZhciB0PWUucXVlcnlTZWxlY3RvcigiLnZvaWNlLXJlY29yZC1sYWJlbCIpO3QmJih0LnRleHRDb250ZW50PSJcdTYzMDlcdTRGNEYgXHU4QkY0XHU4QkREIil9dmFyIG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInZvaWNlLXRyYW5zY3JpcHQtYnViYmxlIik7biYmbi5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKX1mdW5jdGlvbiB6ZihlKXt2YXIgdD0oZXx8IiIpLnRyaW0oKTtpZih0KXt2YXIgbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wdXQtYm94Iik7aWYobil7dmFyIGk9bi52YWx1ZXx8IiIsYT1pP2kucmVwbGFjZSgvXHMrJC8sIiIpKyIgIit0OnQ7bi52YWx1ZT1hLG90KGEsITApLF90KG4pO3RyeXtuLnNldFNlbGVjdGlvblJhbmdlKGEubGVuZ3RoLGEubGVuZ3RoKX1jYXRjaHt9fX19ZnVuY3Rpb24gRGEoZSl7dmFyIHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLmlucHV0LWNvbXBvc2VyIik7aWYodCl7dmFyIG49dHlwZW9mIGU9PSJib29sZWFuIj9lOiF0LmNsYXNzTGlzdC5jb250YWlucygidm9pY2UtbW9kZSIpO2lmKHQuY2xhc3NMaXN0LnRvZ2dsZSgidm9pY2UtbW9kZSIsbiksIW4pe1NlLnJlY29yZGluZz0hMSxCYSgpO3ZhciBpPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dC1ib3giKTtpZihpJiYhci50ZXJtaW5hbEludGVyYWN0aXZlKXRyeXtpLmZvY3VzKHtwcmV2ZW50U2Nyb2xsOiEwfSl9Y2F0Y2h7fX19fWZ1bmN0aW9uIF90KGUpe2lmKGUpe3ZhciB0PTM2LG49MTIwLGk9VHIoKTtpZighZS52YWx1ZXx8ZS52YWx1ZS50cmltKCk9PT0iIil7ZS5zdHlsZS5oZWlnaHQ9dCsicHgiLGUuc3R5bGUubWluSGVpZ2h0PXQrInB4IixlLnN0eWxlLm92ZXJmbG93WT1pPyJhdXRvIjoiaGlkZGVuIixlLnNjcm9sbFRvcD0wLEhpKGUpO3JldHVybn12YXIgYT1lLnN0eWxlLm92ZXJmbG93WTtlLnN0eWxlLm92ZXJmbG93WT0iaGlkZGVuIixlLnN0eWxlLmhlaWdodD10KyJweCI7dmFyIHU9ZS5zY3JvbGxIZWlnaHQscz1NYXRoLm1heCh0LE1hdGgubWluKHUsbikpLG89dT5uO2Uuc3R5bGUuaGVpZ2h0PXMrInB4IixlLnN0eWxlLm1pbkhlaWdodD10KyJweCIsZS5zdHlsZS5vdmVyZmxvd1k9b3x8aT8iYXV0byI6ImhpZGRlbiIsbz9GaShlKTplLnNjcm9sbFRvcD0wLEhpKGUpfX1mdW5jdGlvbiBVZigpe2lmKCFyLnNlbGVjdGVkSWQpcmV0dXJuITE7dmFyIGU9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKHQpe3JldHVybiB0LmlkPT09ci5zZWxlY3RlZElkfSk7cmV0dXJuIHVlKGUpPyEhKGUuc3RydWN0dXJlZFN0YXRlJiZlLnN0cnVjdHVyZWRTdGF0ZS5pbkZsaWdodCk6ISFlJiZlLnN0YXR1cz09PSJydW5uaW5nIn12YXIgRHI9ITE7ZnVuY3Rpb24gWnMoZSl7cmV0dXJuIWV8fGUuYXJjaGl2ZWQ/ITE6dWUoZSk/ISEoZS5zdHJ1Y3R1cmVkU3RhdGUmJmUuc3RydWN0dXJlZFN0YXRlLmluRmxpZ2h0KTplLnN0YXR1cz09PSJydW5uaW5nIn1mdW5jdGlvbiBrYSgpe3JldHVybiByLnNlc3Npb25zLnNvbWUoWnMpfWZ1bmN0aW9uIFZmKCl7dmFyIGU9ci5zZXNzaW9ucy5maWx0ZXIoWnMpO2lmKGUubGVuZ3RoPT09MClyZXR1cm4gbnVsbDtpZihyLnNlbGVjdGVkSWQpe3ZhciB0PWUuZmluZChmdW5jdGlvbihuKXtyZXR1cm4gbi5pZD09PXIuc2VsZWN0ZWRJZH0pO2lmKHQpcmV0dXJuIHR9cmV0dXJuIGUuc29ydChmdW5jdGlvbihuLGkpe3JldHVybihEYXRlLnBhcnNlKGkuc3RhcnRlZEF0KXx8MCktKERhdGUucGFyc2Uobi5zdGFydGVkQXQpfHwwKX0pLGVbMF19ZnVuY3Rpb24gS2YoZSx0KXt2YXIgbj10eXBlb2YgY3J5cHRvPCJ1IiYmY3J5cHRvLnJhbmRvbVVVSUQ/Y3J5cHRvLnJhbmRvbVVVSUQoKTpEYXRlLm5vdygpLnRvU3RyaW5nKDM2KSsiLSIrTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc2xpY2UoMiwxMCksaT1BcnJheS5pc0FycmF5KGUucXVldWVkTWVzc2FnZXMpP2UucXVldWVkTWVzc2FnZXMuc2xpY2UoKTpbXSxhPWkuc2xpY2UoKTthLnB1c2godCksJCh7aWQ6ZS5pZCxxdWV1ZWRNZXNzYWdlczphfSksZS5pZD09PXIuc2VsZWN0ZWRJZCYmc3QoKTt2YXIgdT1lLnRpdGxlfHwkbihlLmNvbW1hbmQpfHwiXHU1RjUzXHU1MjREXHU0RjFBXHU4QkREIjtyZXR1cm4gaygiXHU1REYyXHU1MkEwXHU1MTY1XHUzMDBDIit1KyJcdTMwMERcdTc2ODRcdTYzOTJcdTk2MUZcdUZGMENcdTU2REVcdTU5MERcdTdFRDNcdTY3NUZcdTU0MEVcdTgxRUFcdTUyQThcdTUzRDFcdTkwMDFcdUZGMDhcdTU0MkJcdTRFMEFcdTRFMEJcdTY1ODdcdUZGMDlcdTMwMDIiLCJpbmZvIiksZmV0Y2goIi9hcGkvc3RydWN0dXJlZC1zZXNzaW9ucy8iK2UuaWQrIi9tZXNzYWdlcyIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkoe2lucHV0OnQsaWRlbXBvdGVuY3lLZXk6bn0pfSkudGhlbihmdW5jdGlvbihzKXtyZXR1cm4gcy5vaz9zLmpzb24oKTpzLmpzb24oKS5jYXRjaChmdW5jdGlvbigpe3JldHVybntlcnJvcjoiXHU4QkY3XHU2QzQyXHU1OTMxXHU4RDI1In19KS50aGVuKGZ1bmN0aW9uKG8pe3Rocm93IG5ldyBFcnJvcihvJiZvLmVycm9yfHwiXHU2NUUwXHU2Q0Q1XHU2MzkyXHU5NjFGXHU2RDg4XHU2MDZGXHUzMDAyIil9KX0pLnRoZW4oZnVuY3Rpb24ocyl7cyYmcy5pZCYmKCQocykscy5pZD09PXIuc2VsZWN0ZWRJZCYmc3QoKSl9KS5jYXRjaChmdW5jdGlvbihzKXskKHtpZDplLmlkLHF1ZXVlZE1lc3NhZ2VzOml9KSxlLmlkPT09ci5zZWxlY3RlZElkJiZzdCgpLGsocyYmcy5tZXNzYWdlfHwiXHU2MzkyXHU5NjFGXHU1OTMxXHU4RDI1XHVGRjBDXHU4QkY3XHU5MUNEXHU4QkQ1XHUzMDAyIiwiZXJyb3IiKX0pfWZ1bmN0aW9uIGVvKGUpe3ZhciB0PVZmKCk7aWYodCYmdWUodCkpe0tmKHQsZSk7cmV0dXJufWlmKHIuY3Jvc3NTZXNzaW9uUXVldWUubGVuZ3RoPj0xMCl7aygiXHU2MzkyXHU5NjFGXHU2RDg4XHU2MDZGXHU1REYyXHU2RUUxXHVGRjA4XHU2NzAwXHU1OTFBIDEwIFx1Njc2MVx1RkYwOVx1RkYwQ1x1OEJGN1x1N0I0OVx1NUY4NVx1NUY1M1x1NTI0RFx1NEYxQVx1OEJERFx1NUI4Q1x1NjIxMFx1MzAwMiIsIndhcm5pbmciKTtyZXR1cm59dmFyIG49ImNzcS0iK0RhdGUubm93KCkrIi0iK01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnNsaWNlKDIsOCk7ci5jcm9zc1Nlc3Npb25RdWV1ZS5wdXNoKHtpZDpuLHRleHQ6ZSxjd2Q6ZXQoKSxtb2RlOnIuY2hhdE1vZGV8fCJtYW5hZ2VkIix0b29sOnR0KCkscXVldWVkQXQ6RGF0ZS5ub3coKX0pLFh0KCkseHQoKSxrKCJcdTVERjJcdTYzOTJcdTk2MUZcdUZGMENcdTVDMDZcdTU3MjhcdTdBN0FcdTk1RjJcdTU0MEVcdTgxRUFcdTUyQThcdTVGMDBcdTU5Q0JcdTY1QjBcdTRGMUFcdThCRERcdTMwMDIiLCJpbmZvIil9ZnVuY3Rpb24gSmYoZSl7RHJ8fChEcj0hMCxmZXRjaCgiL2FwaS9jb21tYW5kcyIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkoaHQoe2NvbW1hbmQ6ZS50b29sLGN3ZDplLmN3ZCxtb2RlOmUubW9kZSxpbml0aWFsSW5wdXQ6ZS50ZXh0fSkpfSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gdC5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiBEcj0hMSx0LmVycm9yPyhrKHQuZXJyb3IsImVycm9yIiksci5jcm9zc1Nlc3Npb25RdWV1ZS51bnNoaWZ0KGUpLFh0KCkseHQoKSxudWxsKTp2bih0KX0pLmNhdGNoKGZ1bmN0aW9uKHQpe0RyPSExLGsodCYmdC5tZXNzYWdlfHwiXHU2NUUwXHU2Q0Q1XHU1NDJGXHU1MkE4XHU2MzkyXHU5NjFGXHU0RjFBXHU4QkREXHUzMDAyIiwiZXJyb3IiKSxyLmNyb3NzU2Vzc2lvblF1ZXVlLnVuc2hpZnQoZSksWHQoKSx4dCgpfSkpfWZ1bmN0aW9uIEdmKGUpe3ZhciB0PXIuY3Jvc3NTZXNzaW9uUXVldWUuZmluZEluZGV4KGZ1bmN0aW9uKGkpe3JldHVybiBpLmlkPT09ZX0pO2lmKCEodDwwKSl7dmFyIG49ci5jcm9zc1Nlc3Npb25RdWV1ZS5zcGxpY2UodCwxKVswXTtYdCgpLHh0KCksZmV0Y2goIi9hcGkvY29tbWFuZHMiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KGh0KHtjb21tYW5kOm4udG9vbCxjd2Q6bi5jd2QsbW9kZTpuLm1vZGUsaW5pdGlhbElucHV0Om4udGV4dH0pKX0pLnRoZW4oZnVuY3Rpb24oaSl7cmV0dXJuIGkuanNvbigpfSkudGhlbihmdW5jdGlvbihpKXtyZXR1cm4gaS5lcnJvcj8oayhpLmVycm9yLCJlcnJvciIpLHIuY3Jvc3NTZXNzaW9uUXVldWUuc3BsaWNlKHQsMCxuKSxYdCgpLHh0KCksbnVsbCk6dm4oaSl9KS5jYXRjaChmdW5jdGlvbihpKXtrKGkmJmkubWVzc2FnZXx8Ilx1NjVFMFx1NkNENVx1NTQyRlx1NTJBOFx1NjM5Mlx1OTYxRlx1NEYxQVx1OEJERFx1MzAwMiIsImVycm9yIiksci5jcm9zc1Nlc3Npb25RdWV1ZS5zcGxpY2UodCwwLG4pLFh0KCkseHQoKX0pfX1mdW5jdGlvbiBZZihlKXt2YXIgdD1yLmNyb3NzU2Vzc2lvblF1ZXVlLmZpbmRJbmRleChmdW5jdGlvbihuKXtyZXR1cm4gbi5pZD09PWV9KTt0PDB8fChyLmNyb3NzU2Vzc2lvblF1ZXVlLnNwbGljZSh0LDEpLFh0KCkseHQoKSxyLmNyb3NzU2Vzc2lvblF1ZXVlLmxlbmd0aD09PTAmJmsoIlx1NjM5Mlx1OTYxRlx1NURGMlx1NkUwNVx1N0E3QVx1MzAwMiIsImluZm8iKSl9ZnVuY3Rpb24gdmkoKXtpZihyLmNyb3NzU2Vzc2lvblF1ZXVlLmxlbmd0aCE9PTAmJiFrYSgpJiYhRHIpe3ZhciBlPXIuY3Jvc3NTZXNzaW9uUXVldWUuc2hpZnQoKTt4dCgpLEpmKGUpfX1mdW5jdGlvbiB0byhlKXt2YXIgdD1NYXRoLmZsb29yKChEYXRlLm5vdygpLWUpLzFlMyk7aWYodDw2MClyZXR1cm4gdCsicyI7dmFyIG49TWF0aC5mbG9vcih0LzYwKTtyZXR1cm4gbjw2MD9uKyJtIjpNYXRoLmZsb29yKG4vNjApKyJoIn1mdW5jdGlvbiB4dCgpe3ZhciBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5jcm9zcy1zZXNzaW9uLXF1ZXVlIiksdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuaW5wdXQtcGFuZWwiKSxuPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5zdHJ1Y3R1cmVkLXN0YXR1cy1iYXIiKSxpPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5pbnB1dC1jb21wb3NlciIpLGE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJsYW5rLWNoYXQiKTtpZihyLmNyb3NzU2Vzc2lvblF1ZXVlLmxlbmd0aD09PTApe2UmJmUucmVtb3ZlKCksWHQoKTtyZXR1cm59dmFyIHU9dCYmIXQuY2xhc3NMaXN0LmNvbnRhaW5zKCJoaWRkZW4iKSxzPXU/dDphLG89dT9ufHxpOm51bGw7aWYocyl7ZSYmZS5wYXJlbnROb2RlIT09cyYmKGUucmVtb3ZlKCksZT1udWxsKSxlP3UmJm8mJmUubmV4dFNpYmxpbmchPT1vJiZzLmluc2VydEJlZm9yZShlLG8pOihlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLGUuY2xhc3NOYW1lPSJjcm9zcy1zZXNzaW9uLXF1ZXVlIixvP3MuaW5zZXJ0QmVmb3JlKGUsbyk6cy5hcHBlbmRDaGlsZChlKSk7dmFyIGw9ci5jcm9zc1Nlc3Npb25RdWV1ZS5sZW5ndGgsYz1yLmNyb3NzU2Vzc2lvblF1ZXVlLm1hcChmdW5jdGlvbihkLHYpe3ZhciBoPWQudGV4dC5sZW5ndGg+NjA/ZC50ZXh0LnNsaWNlKDAsNjApKyJcdTIwMjYiOmQudGV4dCxnPXRvKGQucXVldWVkQXQpO3JldHVybic8ZGl2IGNsYXNzPSJxdWV1ZS1pdGVtIiBkYXRhLXF1ZXVlLWlkPSInK3AoZC5pZCkrJyI+PHNwYW4gY2xhc3M9InF1ZXVlLWl0ZW0tZG90Ij48L3NwYW4+PHNwYW4gY2xhc3M9InF1ZXVlLWl0ZW0tdGV4dCIgdGl0bGU9IicrcChkLnRleHQpKyciPicrcChoKSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJxdWV1ZS1pdGVtLWFnZSI+JytnKyc8L3NwYW4+PGJ1dHRvbiBjbGFzcz0icXVldWUtaXRlbS1zZW5kLW5vdyIgZGF0YS1xdWV1ZS1pZD0iJytwKGQuaWQpKyciIHRpdGxlPSJcdTdBQ0JcdTUzNzNcdTUzRDFcdTkwMDEiIHR5cGU9ImJ1dHRvbiI+XHU1M0QxXHU5MDAxPC9idXR0b24+PGJ1dHRvbiBjbGFzcz0icXVldWUtaXRlbS1jYW5jZWwiIGRhdGEtcXVldWUtaWQ9IicrcChkLmlkKSsnIiB0aXRsZT0iXHU1M0Q2XHU2RDg4IiB0eXBlPSJidXR0b24iPlx4RDc8L2J1dHRvbj48L2Rpdj4nfSkuam9pbigiIiksZj1sPjE/JzxkaXYgY2xhc3M9InF1ZXVlLWhlYWRlciI+PHNwYW4gY2xhc3M9InF1ZXVlLWhlYWRlci1sYWJlbCI+XHU2MzkyXHU5NjFGICcrbCsnIFx1Njc2MTwvc3Bhbj48YnV0dG9uIGNsYXNzPSJxdWV1ZS1oZWFkZXItY2xlYXIiIGlkPSJxdWV1ZS1jbGVhci1hbGwiIHR5cGU9ImJ1dHRvbiIgdGl0bGU9Ilx1NkUwNVx1N0E3QVx1NjM5Mlx1OTYxRiI+XHU2RTA1XHU3QTdBPC9idXR0b24+PC9kaXY+JzoiIjtlLmlubmVySFRNTD1mK2N9fXNldEludGVydmFsKGZ1bmN0aW9uKCl7aWYoci5jcm9zc1Nlc3Npb25RdWV1ZS5sZW5ndGg+MCl7dmFyIGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnF1ZXVlLWl0ZW0tYWdlIik7ci5jcm9zc1Nlc3Npb25RdWV1ZS5mb3JFYWNoKGZ1bmN0aW9uKHQsbil7ZVtuXSYmKGVbbl0udGV4dENvbnRlbnQ9dG8odC5xdWV1ZWRBdCkpfSksdmkoKX19LDVlMyksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKGUpe3ZhciB0PWUudGFyZ2V0O2lmKHQuY2xvc2VzdCgiI3F1ZXVlLWNsZWFyLWFsbCIpKXtlLnByZXZlbnREZWZhdWx0KCksci5jcm9zc1Nlc3Npb25RdWV1ZT1bXSxYdCgpLHh0KCksaygiXHU2MzkyXHU5NjFGXHU1REYyXHU2RTA1XHU3QTdBXHUzMDAyIiwiaW5mbyIpO3JldHVybn12YXIgbj10LmNsb3Nlc3QoIi5xdWV1ZS1pdGVtLXNlbmQtbm93Iik7aWYobil7ZS5wcmV2ZW50RGVmYXVsdCgpLEdmKG4uZGF0YXNldC5xdWV1ZUlkKTtyZXR1cm59dmFyIGk9dC5jbG9zZXN0KCIucXVldWUtaXRlbS1jYW5jZWwiKTtpZihpKXtlLnByZXZlbnREZWZhdWx0KCksWWYoaS5kYXRhc2V0LnF1ZXVlSWQpO3JldHVybn19KTtmdW5jdGlvbiBubygpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3ZWxjb21lLWlucHV0IiksdD1lP2UudmFsdWUudHJpbSgpOiIiO2lmKHQpe2lmKGthKCkpe2UudmFsdWU9IiIsZW8odCk7cmV0dXJufXZhciBuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b2RvLXByb2dyZXNzIik7biYmbi5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSxlLnZhbHVlPSIiLGUucGxhY2Vob2xkZXI9Ilx1NkI2M1x1NTcyOFx1NTQyRlx1NTJBOFx1MjAyNiIsZS5kaXNhYmxlZD0hMDt2YXIgaT1yLmNoYXRNb2RlfHwibWFuYWdlZCIsYT1ldCgpLHU9dHQoKTtmZXRjaCgiL2FwaS9jb21tYW5kcyIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkoaHQoe2NvbW1hbmQ6dSxwcm92aWRlcjp1LGN3ZDphLG1vZGU6aSxpbml0aWFsSW5wdXQ6dH0pKX0pLnRoZW4oZnVuY3Rpb24ocyl7cmV0dXJuIHMuanNvbigpfSkudGhlbihmdW5jdGlvbihzKXtpZihzLmVycm9yKXtrKHMuZXJyb3IsImVycm9yIiksZS5wbGFjZWhvbGRlcj0iXHU4RjkzXHU1MTY1XHU2RDg4XHU2MDZGIixlLmRpc2FibGVkPSExO3JldHVybn1yLnNlbGVjdGVkSWQ9cy5pZCx3ZSgpLHIuZHJhZnRzW3MuaWRdPSIiLEF0KCksJChzKSxtZSgpLGtyKHMuaWQpLHFuKHMuaWQpLGhuKHMuaWQpLnRoZW4oZnVuY3Rpb24oKXtlLnBsYWNlaG9sZGVyPSJcdThGOTNcdTUxNjVcdTZEODhcdTYwNkYiLGUuZGlzYWJsZWQ9ITEsanQoITApfSl9KS5jYXRjaChmdW5jdGlvbihzKXtrKHMmJnMubWVzc2FnZXx8KHU9PT0iY29kZXgiPyJcdTY1RTBcdTZDRDVcdTU0MkZcdTUyQTggQ29kZXggXHU0RjFBXHU4QkREXHUzMDAyIjoiXHU2NUUwXHU2Q0Q1XHU1NDJGXHU1MkE4IENsYXVkZSBcdTRGMUFcdThCRERcdTMwMDIiKSwiZXJyb3IiKSxlLnBsYWNlaG9sZGVyPSJcdThGOTNcdTUxNjVcdTZEODhcdTYwNkYiLGUuZGlzYWJsZWQ9ITF9KX19ZnVuY3Rpb24gUWYoZSl7ZT1lfHx7fTt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid2VsY29tZS1pbnB1dCIpLG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0LWJveCIpLGk9dCYmdC52YWx1ZS50cmltKCk/dC52YWx1ZS50cmltKCk6bj9uLnZhbHVlLnRyaW0oKToiIjtpZihyLnNlbGVjdGVkSWQpe2kmJnJvKGUpO3JldHVybn1pZihpJiZrYSgpKXtuJiYobi52YWx1ZT0iIiksdCYmKHQudmFsdWU9IiIpLEhpKG4pLGVvKGkpO3JldHVybn12YXIgYT1yLmNoYXRNb2RlfHwibWFuYWdlZCIsdT1ldCgpLHM9dHQoKTtmZXRjaCgiL2FwaS9jb21tYW5kcyIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkoaHQoe2NvbW1hbmQ6cyxwcm92aWRlcjpzLGN3ZDp1LG1vZGU6YSxpbml0aWFsSW5wdXQ6aXx8dm9pZCAwfSkpfSkudGhlbihmdW5jdGlvbihvKXtyZXR1cm4gby5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKG8pe3JldHVybiBvLmVycm9yPyhrKG8uZXJyb3IsImVycm9yIiksbnVsbCk6KHIuc2VsZWN0ZWRJZD1vLmlkLHdlKCksci5kcmFmdHNbby5pZF09IiIsQXQoKSxuJiYobi52YWx1ZT0iIiksdCYmKHQudmFsdWU9IiIpLCQobyksbWUoKSxrcihvLmlkKSxxbihvLmlkKSxobihvLmlkKSl9KS5jYXRjaChmdW5jdGlvbihvKXtrKG8mJm8ubWVzc2FnZXx8KHM9PT0iY29kZXgiPyJcdTY1RTBcdTZDRDVcdTU0MkZcdTUyQTggQ29kZXggXHU0RjFBXHU4QkREXHUzMDAyIjoiXHU2NUUwXHU2Q0Q1XHU1NDJGXHU1MkE4IENsYXVkZSBcdTRGMUFcdThCRERcdTMwMDIiKSwiZXJyb3IiKX0pfWZ1bmN0aW9uIGtyKGUpe3ZhciB0PXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbih2KXtyZXR1cm4gdi5pZD09PWV9KSxuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJibGFuay1jaGF0IiksaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IiksYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2hhdC1vdXRwdXQiKSx1PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdG9wLWJ1dHRvbiIpLHM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlcm1pbmFsLXRpdGxlIiksbz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVybWluYWwtaW5mbyIpLGw9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnNlc3Npb24tc3VtbWFyeS12YWx1ZSIpLGM9dWUodCk7biYmbi5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSxpJiZpLmNsYXNzTGlzdC50b2dnbGUoImhpZGRlbiIsYyksYSYmYS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSxjP3IuY3VycmVudFZpZXc9ImNoYXQiOnIuY3VycmVudFZpZXc9InRlcm1pbmFsIjt2YXIgZj10PyRuKHQuY29tbWFuZCk6IldhbmQiLGQ9dD9wcih0KToiXHU1RjAwXHU1OUNCXHU1QkY5XHU4QkREIjtzJiYocy50ZXh0Q29udGVudD1mKSxvJiYoby50ZXh0Q29udGVudD1kKSxsJiYobC50ZXh0Q29udGVudD1mKSxjfHxyLnRlcm1pbmFsfHxKbigpLHFpKCksanQoITApLGN8fFplKCJ2aWV3LXN3aXRjaCIse2ZvcmNlUmVwbGF5OiEwfSl9ZnVuY3Rpb24gcm8oZSl7ZT1lfHx7fTt2YXIgdD0hIWUuaW50ZXJydXB0LG49ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygiaXMtd2FuZC1lbWJlZC10ZXJtaW5hbCIpO2lmKHIudGVybWluYWxJbnRlcmFjdGl2ZSYmIW4pcmV0dXJuIGsoIlx1N0VDOFx1N0FFRlx1NEVBNFx1NEU5Mlx1NkEyMVx1NUYwRlx1NUYwMFx1NTQyRlx1NjVGNlx1RkYwQ1x1OEJGN1x1NzZGNFx1NjNBNVx1NTcyOFx1N0VDOFx1N0FFRlx1NEUyRFx1OEY5M1x1NTE2NVx1MzAwMiIsImluZm8iKSxQcm9taXNlLnJlc29sdmUoKTt2YXIgaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wdXQtYm94IiksYT1pP2kudmFsdWU6IiIsdT1OdCgpLHM9ci5wZW5kaW5nQXR0YWNobWVudHMubGVuZ3RoPjA7aWYoYXx8cyl7dmFyIG89cyYmci5zZWxlY3RlZElkP29nKHIuc2VsZWN0ZWRJZCkuY2F0Y2goZnVuY3Rpb24obCl7aygiXHU5NjQ0XHU0RUY2XHU0RTBBXHU0RjIwXHU1OTMxXHU4RDI1OiAiKyhsJiZsLm1lc3NhZ2V8fGwpLCJlcnJvciIpO3ZhciBjPWwgaW5zdGFuY2VvZiBFcnJvcj9sOm5ldyBFcnJvcihTdHJpbmcobCkpO3Rocm93IGMuX193YW5kVG9hc3RlZD0hMCxjfSk6UHJvbWlzZS5yZXNvbHZlKFtdKTtyZXR1cm4gby50aGVuKGZ1bmN0aW9uKGwpe3ZhciBjPWxnKGwpLGY9YysoYXx8KGwubGVuZ3RoPyJcdThCRjdcdTY3RTVcdTc3MEJcdTk2NDRcdTRFRjZcdTMwMDIiOiIiKSk7bC5sZW5ndGgmJnNnKCk7dmFyIGQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvZG8tcHJvZ3Jlc3MiKTtpZihkJiZkLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLHVlKHUpKXJldHVybiAkZihmLGksdSx7aW50ZXJydXB0OnR9KTt2YXIgdj12cCh1LGYpLGg9IXIud3NDb25uZWN0ZWQ7cmV0dXJuIGg/KHlwKHYpLGkmJihpLnZhbHVlPSIiLF90KGkpKSxvdCgiIiksUHJvbWlzZS5yZXNvbHZlKCkpOnBwKHUpLnRoZW4oZnVuY3Rpb24oZyl7aWYoIWcpcmV0dXJuIG51bGw7dmFyIG09ci5jdXJyZW50VmlldztpZihnJiZnLnByb3ZpZGVyPT09ImNvZGV4IiYmci5zZWxlY3RlZElkIT09Zy5pZCl0aHJvdyBuZXcgRXJyb3IoIkNvZGV4IHNlc3Npb24gY2hhbmdlZCBiZWZvcmUgaW5wdXQgc2VuZC4iKTtyZXR1cm4ga3UoKSxtcCh2LCJlbnRlcl90ZXh0IiwzMCxtKS50aGVuKGZ1bmN0aW9uKCl7aSYmaS52YWx1ZT09PWEmJihpLnZhbHVlPSIiLF90KGkpKSxvdCgiIil9KX0pLmNhdGNoKGZ1bmN0aW9uKGcpe3Rocm93IGsobG8oZyksImVycm9yIiksZyYmKGcuX193YW5kVG9hc3RlZD0hMCksZ30pfSkuY2F0Y2goZnVuY3Rpb24obCl7dGhyb3cgbCYmbC5fX3dhbmRUb2FzdGVkfHxrKGxvKGwpLCJlcnJvciIpLGx9KX1yZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCl9dmFyIGlvPXt9LGFvPTM1MDtmdW5jdGlvbiAkZihlLHQsbixpKXtpPWl8fHt9O3ZhciBhPSEhaS5pbnRlcnJ1cHQ7aWYoIXIuc2VsZWN0ZWRJZHx8IWUpcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO2lmKCFuKXJldHVybiBrKCJcdTRGMUFcdThCRERcdTRFMERcdTVCNThcdTU3MjhcdUZGMENcdThCRjdcdTkxQ0RcdTY1QjBcdTkwMDlcdTYyRTlcdTYyMTZcdTY1QjBcdTVFRkFcdTRGMUFcdThCRERcdTMwMDIiLCJlcnJvciIpLFByb21pc2UucmVzb2x2ZSgpO3ZhciB1PURhdGUubm93KCkscz1pb1tuLmlkXXx8MDtpZih1LXM8YW8pcmV0dXJuIGNvbnNvbGUubG9nKCJbd2FuZF0gcG9zdFN0cnVjdHVyZWRJbnB1dDogZHVwbGljYXRlIHN1Ym1pdCAod2l0aGluICIrYW8rIm1zKSBpZ25vcmVkIGZvciBzZXNzaW9uIixuLmlkKSxQcm9taXNlLnJlc29sdmUoKTtpb1tuLmlkXT11O3ZhciBvPSEhKG4uc3RydWN0dXJlZFN0YXRlJiZuLnN0cnVjdHVyZWRTdGF0ZS5pbkZsaWdodCYmbi5zdGF0dXM9PT0icnVubmluZyIpLGw9byYmYSxjPW8mJiFhLGY9Y3IoQXJyYXkuaXNBcnJheShuLm1lc3NhZ2VzKT9uLm1lc3NhZ2VzLnNsaWNlKCk6W10pLGQ7aWYoYyl7dmFyIHY9QXJyYXkuaXNBcnJheShuLnF1ZXVlZE1lc3NhZ2VzKT9uLnF1ZXVlZE1lc3NhZ2VzLnNsaWNlKCk6W107di5wdXNoKGUpLGQ9e2lkOm4uaWQscXVldWVkTWVzc2FnZXM6dn0sJChkKTt2YXIgaD1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oRSl7cmV0dXJuIEUuaWQ9PT1uLmlkfSl8fG47ci5jdXJyZW50TWVzc2FnZXM9UmUoaCxudChoLGgub3V0cHV0LCExKSksWW4oIlx1NURGMlx1NTJBMFx1NTE2NVx1NjM5Mlx1OTYxRlx1MjAyNiIpLEtlKCEwKSxmbigpLGsodi5sZW5ndGg+MT8iXHU1REYyXHU1MkEwXHU1MTY1XHU2MzkyXHU5NjFGXHVGRjA4XHU1MTcxICIrdi5sZW5ndGgrIiBcdTY3NjFcdTdCNDlcdTVGODVcdUZGMDkiOiJcdTVERjJcdTUyQTBcdTUxNjVcdTYzOTJcdTk2MUZcdUZGMENcdTdCNDlcdTVGNTNcdTUyNERcdTU2REVcdTU5MERcdTVCOENcdTYyMTBcdTRGMUFcdTgxRUFcdTUyQThcdTUzRDFcdTkwMDFcdTMwMDIiLCJpbmZvIil9ZWxzZXt2YXIgZz17cm9sZToidXNlciIsY29udGVudDpbe3R5cGU6InRleHQiLHRleHQ6ZX1dfTtmLnB1c2goZyk7dmFyIG09T2JqZWN0LmFzc2lnbih7fSxuLnN0cnVjdHVyZWRTdGF0ZXx8e30se2luRmxpZ2h0OiEwfSk7JCh7aWQ6bi5pZCxzdGF0dXM6InJ1bm5pbmciLG1lc3NhZ2VzOmYsc3RydWN0dXJlZFN0YXRlOm19KSxyLmN1cnJlbnRNZXNzYWdlcz1SZShPYmplY3QuYXNzaWduKHt9LG4se3N0YXR1czoicnVubmluZyIsbWVzc2FnZXM6ZixzdHJ1Y3R1cmVkU3RhdGU6bX0pLGYpLFluKGw/Ilx1NURGMlx1NEUyRFx1NjVBRFx1RkYwQ1x1NkI2M1x1NTcyOFx1NTkwNFx1NzQwNlx1NjVCMFx1NkQ4OFx1NjA2Rlx1MjAyNiI6Ilx1NjAxRFx1ODAwM1x1NEUyRFx1MjAyNiIpLGt1KCksS2UoITApLGwmJmsoIlx1NURGMlx1NEUyRFx1NjVBRFx1NEUwQVx1NEUwMFx1Njc2MVx1NTZERVx1NTkwRFx1RkYwQ1x1NkI2M1x1NTcyOFx1NTkwNFx1NzQwNlx1NjVCMFx1NkQ4OFx1NjA2Rlx1MjAyNiIsImluZm8iKX10JiYodC52YWx1ZT0iIixfdCh0KSksb3QoIiIpO3ZhciB5PXIucXVldWVFcG9jaCx3PXR5cGVvZiBjcnlwdG88InUiJiZjcnlwdG8ucmFuZG9tVVVJRD9jcnlwdG8ucmFuZG9tVVVJRCgpOkRhdGUubm93KCkudG9TdHJpbmcoMzYpKyItIitNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zbGljZSgyLDEwKTtyZXR1cm4gZmV0Y2goIi9hcGkvc3RydWN0dXJlZC1zZXNzaW9ucy8iK24uaWQrIi9tZXNzYWdlcyIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkoe2lucHV0OmUsaW50ZXJydXB0Omx8fHZvaWQgMCxpZGVtcG90ZW5jeUtleTp3fSl9KS50aGVuKGZ1bmN0aW9uKEUpe3JldHVybiBFLm9rP0UuanNvbigpOkUuanNvbigpLmNhdGNoKGZ1bmN0aW9uKCl7cmV0dXJue2Vycm9yOiJcdThCRjdcdTZDNDJcdTU5MzFcdThEMjUifX0pLnRoZW4oZnVuY3Rpb24oQil7dmFyIEY9bmV3IEVycm9yKEImJkIuZXJyb3J8fCJcdTY1RTBcdTZDRDVcdTUzRDFcdTkwMDFcdTdFRDNcdTY3ODRcdTUzMTZcdTZEODhcdTYwNkZcdTMwMDIiKTt0aHJvdyBGLmVycm9yQ29kZT1CJiZCLmVycm9yQ29kZSxGLmh0dHBTdGF0dXM9RS5zdGF0dXMsRn0pfSkudGhlbihmdW5jdGlvbihFKXtpZihFJiZFLmVycm9yKXRocm93IG5ldyBFcnJvcihFLmVycm9yKTtpZihFJiZFLmlkJiYoci5xdWV1ZUVwb2NoPnkmJkUucXVldWVkTWVzc2FnZXMmJmRlbGV0ZSBFLnF1ZXVlZE1lc3NhZ2VzLCQoRSksRS5pZD09PXIuc2VsZWN0ZWRJZCkpe3ZhciBCPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihGKXtyZXR1cm4gRi5pZD09PUUuaWR9KXx8RTtyLmN1cnJlbnRNZXNzYWdlcz1SZShCLG50KEIsRS5vdXRwdXQsITEpKSxLZSghMCksZm4oKX19KS5jYXRjaChmdW5jdGlvbihFKXtpZihFJiZFLmVycm9yQ29kZT09PSJkdXBsaWNhdGVfaWRlbXBvdGVuY3lfa2V5Iil7ayhFLm1lc3NhZ2V8fCJcdTY4QzBcdTZENEJcdTUyMzBcdTkxQ0RcdTU5MERcdTUzRDFcdTkwMDFcdUZGMENcdTVERjJcdTYyRTZcdTYyMkFcdTMwMDIiLCJ3YXJuaW5nIiksWW4oIkVudGVyIFx1NTNEMVx1OTAwMSBceEI3IFNoaWZ0K0VudGVyIFx1NjM2Mlx1ODg0QyIpO3JldHVybn1pZihjKXt2YXIgQj1BcnJheS5pc0FycmF5KG4ucXVldWVkTWVzc2FnZXMpP24ucXVldWVkTWVzc2FnZXMuc2xpY2UoKTpbXTtpZigkKHtpZDpuLmlkLHF1ZXVlZE1lc3NhZ2VzOkJ9KSxuLmlkPT09ci5zZWxlY3RlZElkKXt2YXIgRj1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oVil7cmV0dXJuIFYuaWQ9PT1uLmlkfSl8fG47ci5jdXJyZW50TWVzc2FnZXM9UmUoRixudChGLEYub3V0cHV0LCExKSksS2UoITApLGZuKCl9fWVsc2V7dmFyIHg9Zi5zbGljZSgwLC0xKTskKHtpZDpuLmlkLHN0YXR1czpuLnN0YXR1cyxtZXNzYWdlczp4LHN0cnVjdHVyZWRTdGF0ZTpPYmplY3QuYXNzaWduKHt9LG4uc3RydWN0dXJlZFN0YXRlfHx7fSx7aW5GbGlnaHQ6ITF9KX0pLG4uaWQ9PT1yLnNlbGVjdGVkSWQmJihyLmN1cnJlbnRNZXNzYWdlcz1SZShPYmplY3QuYXNzaWduKHt9LG4se21lc3NhZ2VzOngsc3RydWN0dXJlZFN0YXRlOk9iamVjdC5hc3NpZ24oe30sbi5zdHJ1Y3R1cmVkU3RhdGV8fHt9LHtpbkZsaWdodDohMX0pfSkseCksS2UoITApKX12YXIgUz1FJiZFLm1lc3NhZ2V8fCIiLF89Uz09PSJGYWlsZWQgdG8gZmV0Y2gifHxTPT09Ik5ldHdvcmtFcnJvciB3aGVuIGF0dGVtcHRpbmcgdG8gZmV0Y2ggcmVzb3VyY2UuInx8Uz09PSJMb2FkIGZhaWxlZCJ8fC9hYm9ydGVkfGFib3J0ZXJyb3J8bmV0d29ya2Vycm9yfGZhaWxlZCB0byBmZXRjaC9pLnRlc3QoUyk7X3x8ayhFJiZFLm1lc3NhZ2V8fCJcdTY1RTBcdTZDRDVcdTUzRDFcdTkwMDFcdTdFRDNcdTY3ODRcdTUzMTZcdTZEODhcdTYwNkZcdTMwMDIiLCJlcnJvciIpLFluKCJFbnRlciBcdTUzRDFcdTkwMDEgXHhCNyBTaGlmdCtFbnRlciBcdTYzNjJcdTg4NEMiKX0pfWZ1bmN0aW9uIFluKGUpe3ZhciB0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5pbnB1dC1oaW50Iik7dCYmKHQudGV4dENvbnRlbnQ9ZSl9ZnVuY3Rpb24gZm4oKXtzdCgpfXZhciBYZj0xMCx1bz0yNjtmdW5jdGlvbiBaZihlKXtpZih0eXBlb2YgZSE9InN0cmluZyIpcmV0dXJuIiI7dmFyIHQ9ZS5yZXBsYWNlKC9ccysvZywiICIpLnRyaW0oKTtyZXR1cm4gdC5sZW5ndGg8PXVvP3Q6dC5zbGljZSgwLHVvKSsiXHUyMDI2In1mdW5jdGlvbiBlcCgpe3JldHVybiEhci5xdWV1ZUJhckV4cGFuZGVkfWZ1bmN0aW9uIHRwKGUpe2lmKCEhci5xdWV1ZUJhckV4cGFuZGVkIT0hIWUpe3IucXVldWVCYXJFeHBhbmRlZD0hIWU7dmFyIHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnF1ZXVlLWJhciIpO3QmJnQuY2xhc3NMaXN0LnRvZ2dsZSgiZXhwYW5kZWQiLCEhZSl9fWZ1bmN0aW9uIG5wKGUsdCxuKXt2YXIgaT1lLmxlbmd0aCxhPSJxdWV1ZS1iYXIiO24mJihhKz0iIHF1ZXVlLWJhci1jYXBhY2l0eSIpLHQmJihhKz0iIHF1ZXVlLWJhci1pbmZsaWdodCIpO2Zvcih2YXIgdT10PyJcdTRFMkRcdTY1QURcdTVGNTNcdTUyNERcdTU2REVcdTU5MERcdUZGMENcdTdBQ0JcdTUzNzNcdTUzRDFcdTkwMDFcdThGRDlcdTY3NjEiOiJcdTdBQ0JcdTUzNzNcdTUzRDFcdTkwMDFcdThGRDlcdTY3NjEiLHM9IiIsbz0wO288aTtvKyspe3ZhciBsPWVbb109PW51bGw/IiI6U3RyaW5nKGVbb10pLGM9WmYobCksZj1sKyJcdUZGMDhcdTYzMDlcdTRGNEZcdTUzRUZcdTYyRDZcdTUyQThcdThDMDNcdTVFOEZcdUZGMDkiO3MrPSc8bGkgY2xhc3M9InF1ZXVlLWJhci1pdGVtIiBkYXRhLWluZGV4PSInK28rJyIgZGF0YS1hY3Rpb249ImRyYWciIHRpdGxlPSInK3AoZikrJyI+PHNwYW4gY2xhc3M9InF1ZXVlLWJhci1pdGVtLWluZGV4IiBhcmlhLWhpZGRlbj0idHJ1ZSI+JysobysxKSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJxdWV1ZS1iYXItaXRlbS10ZXh0Ij4nK3AoYykrJzwvc3Bhbj48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InF1ZXVlLWJhci1pdGVtLXByb21vdGUiIGRhdGEtYWN0aW9uPSJwcm9tb3RlLWl0ZW0iIHRpdGxlPSInK3AodSkrJyIgYXJpYS1sYWJlbD0iXHU3QUNCXHU1MzczXHU1M0QxXHU5MDAxXHU3QjJDICcrKG8rMSkrJyBcdTY3NjEiPjxzdmcgd2lkdGg9IjExIiBoZWlnaHQ9IjExIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9ImN1cnJlbnRDb2xvciIgYXJpYS1oaWRkZW49InRydWUiPjxwYXRoIGQ9Ik0xMyAyIEw0IDE0IEwxMSAxNCBMMTAgMjIgTDIwIDkgTDEzIDkgWiIvPjwvc3ZnPjwvYnV0dG9uPjxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0icXVldWUtYmFyLWl0ZW0tZGVsZXRlIiBkYXRhLWFjdGlvbj0iZGVsZXRlIiBhcmlhLWxhYmVsPSJcdTUyMjBcdTk2NjRcdTdCMkMgJysobysxKSsnIFx1Njc2MVx1NjM5Mlx1OTYxRlx1NkQ4OFx1NjA2RiIgdGl0bGU9Ilx1NTIyMFx1OTY2NCI+PHN2ZyB3aWR0aD0iMTEiIGhlaWdodD0iMTEiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi42IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48bGluZSB4MT0iNiIgeTE9IjYiIHgyPSIxOCIgeTI9IjE4Ii8+PGxpbmUgeDE9IjYiIHkxPSIxOCIgeDI9IjE4IiB5Mj0iNiIvPjwvc3ZnPjwvYnV0dG9uPjwvbGk+J312YXIgZD0iIjtyZXR1cm4gaT49MiYmKGQ9JzxkaXYgY2xhc3M9InF1ZXVlLWJhci1oZWFkIj48c3BhbiBjbGFzcz0icXVldWUtYmFyLWhlYWQtY291bnQiPicraSsnIFx1Njc2MVx1NjM5Mlx1OTYxRjwvc3Bhbj48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InF1ZXVlLWJhci1jbGVhci1hbGwiIGRhdGEtYWN0aW9uPSJjbGVhci1hbGwiIHRpdGxlPSJcdTZFMDVcdTdBN0FcdTUxNjhcdTkwRThcdTYzOTJcdTk2MUYiIGFyaWEtbGFiZWw9Ilx1NkUwNVx1N0E3QVx1NTE2OFx1OTBFOCAnK2krJyBcdTY3NjFcdTYzOTJcdTk2MUZcdTZEODhcdTYwNkYiPlx1NkUwNVx1N0E3QTwvYnV0dG9uPjwvZGl2PicpLCc8ZGl2IGNsYXNzPSInK2ErJyIgZGF0YS1xdWV1ZS1iYXI9IjEiIHRpdGxlPSJcdTYzOTJcdTk2MUYgJytpKycgXHU2NzYxXHVGRjA4XHU2MzA5XHU0RjRGXHU2QzE0XHU2Q0UxXHU1M0VGXHU4QzAzXHU1RThGXHVGRjA5Ij4nK2QrJzxvbCBjbGFzcz0icXVldWUtYmFyLWxpc3QiIGRhdGEtcXVldWUtbGlzdD0iMSI+JytzKyI8L29sPjwvZGl2PiJ9ZnVuY3Rpb24gc3QoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicXVldWUtYmFyLWhvc3QiKTtpZihlKXt2YXIgdD1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24ocyl7cmV0dXJuIHMuaWQ9PT1yLnNlbGVjdGVkSWR9KSxuPXQmJnQuc2Vzc2lvbktpbmQ9PT0ic3RydWN0dXJlZCIsaT1uP1lpKHQpOltdO2lmKGk9QXJyYXkuaXNBcnJheShpKT9pOltdLCFufHxpLmxlbmd0aD09PTApe2UuaGlkZGVuPSEwLGUuaW5uZXJIVE1MPSIiLHIucXVldWVCYXJFeHBhbmRlZD0hMTtyZXR1cm59aWYoIXIucXVldWVCYXJEcmFnKXtlLmhpZGRlbj0hMTt2YXIgYT0hISh0LnN0cnVjdHVyZWRTdGF0ZSYmdC5zdHJ1Y3R1cmVkU3RhdGUuaW5GbGlnaHQmJnQuc3RhdHVzPT09InJ1bm5pbmciKSx1PWkubGVuZ3RoPj1YZjtlLmlubmVySFRNTD1ucChpLGEsdSl9fX1mdW5jdGlvbiBtaShlLHQpeyQoe2lkOmUuaWQscXVldWVkTWVzc2FnZXM6dH0pO3ZhciBuPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihpKXtyZXR1cm4gaS5pZD09PWUuaWR9KXx8ZTtyLmN1cnJlbnRNZXNzYWdlcz1SZShuLG50KG4sbi5vdXRwdXQsITEpKSxLZSghMCksc3QoKX1mdW5jdGlvbiBycChlKXt2YXIgdD1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24ocyl7cmV0dXJuIHMuaWQ9PT1yLnNlbGVjdGVkSWR9KTtpZih0KXt2YXIgbj1BcnJheS5pc0FycmF5KHQucXVldWVkTWVzc2FnZXMpP3QucXVldWVkTWVzc2FnZXMuc2xpY2UoKTpbXTtpZighKGU8MHx8ZT49bi5sZW5ndGgpKXt2YXIgaT1uLnNsaWNlKCksYT1uLnNsaWNlKDAsZSkuY29uY2F0KG4uc2xpY2UoZSsxKSk7JCh7aWQ6dC5pZCxxdWV1ZWRNZXNzYWdlczphfSk7dmFyIHU9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKHMpe3JldHVybiBzLmlkPT09dC5pZH0pfHx0O3IuY3VycmVudE1lc3NhZ2VzPVJlKHUsbnQodSx1Lm91dHB1dCwhMSkpLEtlKCEwKSxzdCgpLGZldGNoKCIvYXBpL3N0cnVjdHVyZWQtc2Vzc2lvbnMvIit0LmlkKyIvcXVldWVkLyIrZSx7bWV0aG9kOiJERUxFVEUiLGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKHMpe2lmKCFzLm9rKXJldHVybiBzLmpzb24oKS5jYXRjaChmdW5jdGlvbigpe3JldHVybnt9fSkudGhlbihmdW5jdGlvbihvKXt0aHJvdyBuZXcgRXJyb3IobyYmby5lcnJvcnx8Ilx1NTIyMFx1OTY2NFx1NTkzMVx1OEQyNSIpfSl9KS5jYXRjaChmdW5jdGlvbihzKXttaSh0LGkpLGsocyYmcy5tZXNzYWdlfHwiXHU1MjIwXHU5NjY0XHU2MzkyXHU5NjFGXHU2RDg4XHU2MDZGXHU1OTMxXHU4RDI1XHUzMDAyIiwiZXJyb3IiKX0pfX19ZnVuY3Rpb24gaXAoKXt2YXIgZT1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oaSl7cmV0dXJuIGkuaWQ9PT1yLnNlbGVjdGVkSWR9KTtpZihlKXt2YXIgdD1BcnJheS5pc0FycmF5KGUucXVldWVkTWVzc2FnZXMpP2UucXVldWVkTWVzc2FnZXMuc2xpY2UoKTpbXTtpZih0Lmxlbmd0aCE9PTApe3IucXVldWVCYXJFeHBhbmRlZD0hMSwkKHtpZDplLmlkLHF1ZXVlZE1lc3NhZ2VzOltdfSk7dmFyIG49ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGkpe3JldHVybiBpLmlkPT09ZS5pZH0pfHxlO3IuY3VycmVudE1lc3NhZ2VzPVJlKG4sbnQobixuLm91dHB1dCwhMSkpLEtlKCEwKSxzdCgpLGZldGNoKCIvYXBpL3N0cnVjdHVyZWQtc2Vzc2lvbnMvIitlLmlkKyIvcXVldWVkIix7bWV0aG9kOiJERUxFVEUiLGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKGkpe2lmKCFpLm9rKXJldHVybiBpLmpzb24oKS5jYXRjaChmdW5jdGlvbigpe3JldHVybnt9fSkudGhlbihmdW5jdGlvbihhKXt0aHJvdyBuZXcgRXJyb3IoYSYmYS5lcnJvcnx8Ilx1NkUwNVx1N0E3QVx1NTkzMVx1OEQyNSIpfSk7aygiXHU1REYyXHU2RTA1XHU3QTdBICIrdC5sZW5ndGgrIiBcdTY3NjFcdTYzOTJcdTk2MUZcdTZEODhcdTYwNkZcdTMwMDIiLCJpbmZvIil9KS5jYXRjaChmdW5jdGlvbihpKXttaShlLHQpLGsoaSYmaS5tZXNzYWdlfHwiXHU2RTA1XHU3QTdBXHU2MzkyXHU5NjFGXHU2RDg4XHU2MDZGXHU1OTMxXHU4RDI1XHUzMDAyIiwiZXJyb3IiKX0pfX19ZnVuY3Rpb24gYXAoZSl7aWYoIXIucXVldWVCYXJQcm9tb3Rpbmcpe3ZhciB0PXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihsKXtyZXR1cm4gbC5pZD09PXIuc2VsZWN0ZWRJZH0pO2lmKHQpe3ZhciBuPUFycmF5LmlzQXJyYXkodC5xdWV1ZWRNZXNzYWdlcyk/dC5xdWV1ZWRNZXNzYWdlcy5zbGljZSgpOltdO2lmKCEoZTwwfHxlPj1uLmxlbmd0aCkpe3ZhciBpPW5bZV0sYT1uLnNsaWNlKDAsZSkuY29uY2F0KG4uc2xpY2UoZSsxKSksdT1uLnNsaWNlKCkscz0hISh0LnN0cnVjdHVyZWRTdGF0ZSYmdC5zdHJ1Y3R1cmVkU3RhdGUuaW5GbGlnaHQmJnQuc3RhdHVzPT09InJ1bm5pbmciKTtyLnF1ZXVlQmFyUHJvbW90aW5nPSEwLGEubGVuZ3RoPT09MCYmKHIucXVldWVCYXJFeHBhbmRlZD0hMSksJCh7aWQ6dC5pZCxxdWV1ZWRNZXNzYWdlczphfSk7dmFyIG89dHlwZW9mIGNyeXB0bzwidSImJmNyeXB0by5yYW5kb21VVUlEP2NyeXB0by5yYW5kb21VVUlEKCk6RGF0ZS5ub3coKS50b1N0cmluZygzNikrIi0iK01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnNsaWNlKDIsMTApO2socz8iXHU1REYyXHU4QkY3XHU2QzQyXHU0RTJEXHU2NUFEXHU1RjUzXHU1MjREXHU1NkRFXHU1OTBEXHVGRjBDXHU3QUNCXHU1MzczXHU1M0QxXHU5MDAxXHU4RkQ5XHU2NzYxXHUzMDAyIjoiXHU1REYyXHU3QUNCXHU1MzczXHU1M0QxXHU5MDAxXHU4RkQ5XHU2NzYxXHU2RDg4XHU2MDZGXHUzMDAyIiwiaW5mbyIpLGZldGNoKCIvYXBpL3N0cnVjdHVyZWQtc2Vzc2lvbnMvIit0LmlkKyIvcXVldWVkLyIrZSsiL3Byb21vdGUiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KHtleHBlY3RlZFRleHQ6aSxpZGVtcG90ZW5jeUtleTpvfSl9KS50aGVuKGZ1bmN0aW9uKGwpe3JldHVybiBsLm9rP2wuanNvbigpOmwuanNvbigpLmNhdGNoKGZ1bmN0aW9uKCl7cmV0dXJue319KS50aGVuKGZ1bmN0aW9uKGMpe3Rocm93IG5ldyBFcnJvcihjJiZjLmVycm9yfHwiXHU3QUNCXHU1MzczXHU1M0QxXHU5MDAxXHU1OTMxXHU4RDI1Iil9KX0pLnRoZW4oZnVuY3Rpb24obCl7aWYobCYmbC5pZCYmKCQobCksbC5pZD09PXIuc2VsZWN0ZWRJZCkpe3ZhciBjPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihmKXtyZXR1cm4gZi5pZD09PWwuaWR9KXx8bDtyLmN1cnJlbnRNZXNzYWdlcz1SZShjLG50KGMsbC5vdXRwdXQsITEpKSxLZSghMCksc3QoKX1yLnF1ZXVlQmFyUHJvbW90aW5nPSExfSkuY2F0Y2goZnVuY3Rpb24obCl7ci5xdWV1ZUJhclByb21vdGluZz0hMSxtaSh0LHUpLGsobCYmbC5tZXNzYWdlfHwiXHU3QUNCXHU1MzczXHU1M0QxXHU5MDAxXHU1OTMxXHU4RDI1XHUzMDAyIiwiZXJyb3IiKX0pfX19fWZ1bmN0aW9uIHVwKGUsdCl7dmFyIG49ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGQpe3JldHVybiBkLmlkPT09ci5zZWxlY3RlZElkfSk7aWYobil7dmFyIGk9QXJyYXkuaXNBcnJheShuLnF1ZXVlZE1lc3NhZ2VzKT9uLnF1ZXVlZE1lc3NhZ2VzLnNsaWNlKCk6W107aWYoIShpLmxlbmd0aDw9MSkmJnQpe3ZhciBhPXQucGFyZW50RWxlbWVudDtpZihhKXt2YXIgdT1OdW1iZXIodC5nZXRBdHRyaWJ1dGUoImRhdGEtaW5kZXgiKSkscz1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhLmNoaWxkcmVuKSxvPXMubWFwKGZ1bmN0aW9uKGQpe3JldHVybiBkLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpfSksbD0zO28ubGVuZ3RoPj0yJiYobD1NYXRoLm1heCgwLG9bMV0udG9wLW9bMF0udG9wLW9bMF0uaGVpZ2h0KSksZS5wcmV2ZW50RGVmYXVsdCgpO3RyeXt0LnNldFBvaW50ZXJDYXB0dXJlKGUucG9pbnRlcklkKX1jYXRjaHt9aWYobmF2aWdhdG9yJiZuYXZpZ2F0b3IudmlicmF0ZSl0cnl7bmF2aWdhdG9yLnZpYnJhdGUoOCl9Y2F0Y2h7fXIucXVldWVCYXJEcmFnPXtwb2ludGVySWQ6ZS5wb2ludGVySWQsaGFuZGxlRWw6dCxpdGVtRWw6dCxsaXN0RWw6YSxzaWJsaW5nczpzLHJlY3RzOm8sb3JpZ0luZGV4OnUsdGFyZ2V0SW5kZXg6dSxzdGFydFk6ZS5jbGllbnRZLGdhcDpsLHF1ZXVlU25hcHNob3Q6aX0sdC5jbGFzc0xpc3QuYWRkKCJkcmFnZ2luZyIpLHMuZm9yRWFjaChmdW5jdGlvbihkKXtkIT09dCYmZC5jbGFzc0xpc3QuYWRkKCJxdWV1ZS1iYXItaXRlbS1zbGlkaW5nIil9KTt2YXIgYz1mdW5jdGlvbihkKXtvcChkKX0sZj1mdW5jdGlvbihkKXtscChkKX07ci5xdWV1ZUJhckRyYWcubW92ZUhhbmRsZXI9YyxyLnF1ZXVlQmFyRHJhZy51cEhhbmRsZXI9Zix0LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJtb3ZlIixjKSx0LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJ1cCIsZiksdC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVyY2FuY2VsIixmKX19fX1mdW5jdGlvbiBzcChlLHQsbixpKXtmb3IodmFyIGE9bi5sZW5ndGgsdT1bXSxzPTA7czxhO3MrKyl1LnB1c2gocyk7dS5zcGxpY2UoZSwxKSx1LnNwbGljZSh0LDAsZSk7Zm9yKHZhciBvPW5bMF0udG9wLGw9blswXS50b3AsYz0xO2M8YTtjKyspbltjXS50b3A8bCYmKGw9bltjXS50b3ApO2Zvcih2YXIgZj17fSxkPWwsdj0wO3Y8YTt2Kyspe3ZhciBoPXVbdl07ZltoXT1kLGQrPW5baF0uaGVpZ2h0K2l9cmV0dXJuIGZ9ZnVuY3Rpb24gb3AoZSl7dmFyIHQ9ci5xdWV1ZUJhckRyYWc7aWYoISghdHx8ZS5wb2ludGVySWQhPT10LnBvaW50ZXJJZCkpe2UucHJldmVudERlZmF1bHQoKTt2YXIgbj1lLmNsaWVudFktdC5zdGFydFk7dC5pdGVtRWwuc3R5bGUudHJhbnNmb3JtPSJ0cmFuc2xhdGVZKCIrbisicHgpIjtmb3IodmFyIGk9dC5yZWN0c1t0Lm9yaWdJbmRleF0udG9wK3QucmVjdHNbdC5vcmlnSW5kZXhdLmhlaWdodC8yK24sYT10Lm9yaWdJbmRleCx1PTA7dTx0LnJlY3RzLmxlbmd0aDt1KyspaWYodSE9PXQub3JpZ0luZGV4KXt2YXIgcz10LnJlY3RzW3VdLnRvcCt0LnJlY3RzW3VdLmhlaWdodC8yO3U8dC5vcmlnSW5kZXgmJmk8cz9hPU1hdGgubWluKGEsdSk6dT50Lm9yaWdJbmRleCYmaT5zJiYoYT1NYXRoLm1heChhLHUpKX1pZihhIT09dC50YXJnZXRJbmRleCl7dC50YXJnZXRJbmRleD1hO3ZhciBvPXNwKHQub3JpZ0luZGV4LGEsdC5yZWN0cyx0LmdhcCk7dC5zaWJsaW5ncy5mb3JFYWNoKGZ1bmN0aW9uKGwsYyl7aWYoYyE9PXQub3JpZ0luZGV4KXt2YXIgZj1vW2NdLXQucmVjdHNbY10udG9wO2wuc3R5bGUudHJhbnNmb3JtPWY/InRyYW5zbGF0ZVkoIitmKyJweCkiOiIifX0pfX19ZnVuY3Rpb24gbHAoZSl7dmFyIHQ9ci5xdWV1ZUJhckRyYWc7aWYoISghdHx8ZSYmZS5wb2ludGVySWQhPT10LnBvaW50ZXJJZCkpe3RyeXt0LmhhbmRsZUVsLnJlbGVhc2VQb2ludGVyQ2FwdHVyZSh0LnBvaW50ZXJJZCl9Y2F0Y2h7fXQuaGFuZGxlRWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcm1vdmUiLHQubW92ZUhhbmRsZXIpLHQuaGFuZGxlRWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcnVwIix0LnVwSGFuZGxlciksdC5oYW5kbGVFbC5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVyY2FuY2VsIix0LnVwSGFuZGxlcik7dmFyIG49dC5vcmlnSW5kZXgsaT10LnRhcmdldEluZGV4LGE9dC5xdWV1ZVNuYXBzaG90O2lmKHQuc2libGluZ3MuZm9yRWFjaChmdW5jdGlvbihjKXtjLnN0eWxlLnRyYW5zZm9ybT0iIixjLmNsYXNzTGlzdC5yZW1vdmUoInF1ZXVlLWJhci1pdGVtLXNsaWRpbmciKX0pLHQuaXRlbUVsLmNsYXNzTGlzdC5yZW1vdmUoImRyYWdnaW5nIiksci5xdWV1ZUJhckRyYWc9bnVsbCxuPT09aSl7c3QoKTtyZXR1cm59Zm9yKHZhciB1PVtdLHM9MDtzPGEubGVuZ3RoO3MrKyl1LnB1c2gocyk7dS5zcGxpY2UobiwxKSx1LnNwbGljZShpLDAsbik7dmFyIG89dS5tYXAoZnVuY3Rpb24oYyl7cmV0dXJuIGFbY119KSxsPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihjKXtyZXR1cm4gYy5pZD09PXIuc2VsZWN0ZWRJZH0pO2lmKCFsKXtzdCgpO3JldHVybn0kKHtpZDpsLmlkLHF1ZXVlZE1lc3NhZ2VzOm99KSxzdCgpLGZldGNoKCIvYXBpL3N0cnVjdHVyZWQtc2Vzc2lvbnMvIitsLmlkKyIvcXVldWVkIix7bWV0aG9kOiJQQVRDSCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkoe29yZGVyOnV9KX0pLnRoZW4oZnVuY3Rpb24oYyl7aWYoIWMub2spcmV0dXJuIGMuanNvbigpLmNhdGNoKGZ1bmN0aW9uKCl7cmV0dXJue319KS50aGVuKGZ1bmN0aW9uKGYpe3Rocm93IG5ldyBFcnJvcihmJiZmLmVycm9yfHwiXHU2MzkyXHU1RThGXHU1OTMxXHU4RDI1Iil9KX0pLmNhdGNoKGZ1bmN0aW9uKGMpe21pKGwsYSksayhjJiZjLm1lc3NhZ2V8fCJcdThDMDNcdTY1NzRcdTYzOTJcdTk2MUZcdTk4N0FcdTVFOEZcdTU5MzFcdThEMjVcdTMwMDIiLCJlcnJvciIpfSl9fWZ1bmN0aW9uIGNwKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInF1ZXVlLWJhci1ob3N0Iik7IWV8fGUuX19xdWV1ZURlbGVnYXRlZHx8KGUuX19xdWV1ZURlbGVnYXRlZD0hMCxlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbih0KXt2YXIgbj10LnRhcmdldCxpPW4mJm4uY2xvc2VzdD9uLmNsb3Nlc3QoIltkYXRhLWFjdGlvbl0iKTpudWxsO2lmKGkmJmUuY29udGFpbnMoaSkpe3ZhciBhPWkuZ2V0QXR0cmlidXRlKCJkYXRhLWFjdGlvbiIpO2lmKGE9PT0iZHJhZyIpcmV0dXJuO2lmKHQucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpLGE9PT0icHJvbW90ZS1pdGVtIil7dmFyIHU9aS5jbG9zZXN0KCIucXVldWUtYmFyLWl0ZW0iKTt1JiZhcChOdW1iZXIodS5nZXRBdHRyaWJ1dGUoImRhdGEtaW5kZXgiKSkpfWVsc2UgaWYoYT09PSJkZWxldGUiKXt2YXIgcz1pLmNsb3Nlc3QoIi5xdWV1ZS1iYXItaXRlbSIpO3MmJnJwKE51bWJlcihzLmdldEF0dHJpYnV0ZSgiZGF0YS1pbmRleCIpKSl9ZWxzZSBhPT09ImNsZWFyLWFsbCImJmlwKCk7cmV0dXJufX0pLGUuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcmRvd24iLGZ1bmN0aW9uKHQpe2lmKCEodC5idXR0b24hPT12b2lkIDAmJnQuYnV0dG9uIT09MCkpe3ZhciBuPXQudGFyZ2V0O2lmKCEobiYmbi5jbG9zZXN0JiZuLmNsb3Nlc3QoJ1tkYXRhLWFjdGlvbj0iZGVsZXRlIl0sIFtkYXRhLWFjdGlvbj0icHJvbW90ZS1pdGVtIl0sIFtkYXRhLWFjdGlvbj0iY2xlYXItYWxsIl0sIFtkYXRhLWFjdGlvbj0iZXhwYW5kIl0nKSkpe3ZhciBpPW4mJm4uY2xvc2VzdD9uLmNsb3Nlc3QoIi5xdWV1ZS1iYXItaXRlbSIpOm51bGw7aSYmdXAodCxpKX19fSksZS5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixmdW5jdGlvbih0KXt0LmtleT09PSJFc2NhcGUiJiZlcCgpJiYodC5zdG9wUHJvcGFnYXRpb24oKSx0cCghMSkpfSkpfWZ1bmN0aW9uIHNvKGUpe2lmKCFlfHwhQXJyYXkuaXNBcnJheShlLmNvbnRlbnQpKXJldHVybiAwO2Zvcih2YXIgdD0wLG49MDtuPGUuY29udGVudC5sZW5ndGg7bisrKXt2YXIgaT1lLmNvbnRlbnRbbl07aWYoaSl7aWYodHlwZW9mIGkudGV4dD09InN0cmluZyImJih0Kz1pLnRleHQubGVuZ3RoKSx0eXBlb2YgaS50aGlua2luZz09InN0cmluZyImJih0Kz1pLnRoaW5raW5nLmxlbmd0aCksdHlwZW9mIGkuY29udGVudD09InN0cmluZyIpdCs9aS5jb250ZW50Lmxlbmd0aDtlbHNlIGlmKEFycmF5LmlzQXJyYXkoaS5jb250ZW50KSlmb3IodmFyIGE9MDthPGkuY29udGVudC5sZW5ndGg7YSsrKXt2YXIgdT1pLmNvbnRlbnRbYV07dSYmdHlwZW9mIHUudGV4dD09InN0cmluZyImJih0Kz11LnRleHQubGVuZ3RoKX1pZihpLmlucHV0KXRyeXt0Kz1KU09OLnN0cmluZ2lmeShpLmlucHV0KS5sZW5ndGh9Y2F0Y2h7fX19cmV0dXJuIHR9ZnVuY3Rpb24gZHAoZSx0KXtpZighZSlyZXR1cm4gdDtpZighdClyZXR1cm4gZTt2YXIgbj1zbyhlKSxpPXNvKHQpO3JldHVybiBpPj1uP3Q6T2JqZWN0LmFzc2lnbih7fSxlLHt1c2FnZTp0LnVzYWdlfHxlLnVzYWdlfSl9ZnVuY3Rpb24gUmUoZSx0KXt2YXIgbj1BcnJheS5pc0FycmF5KHQpP2NyKHQpOltdLGk9QXJyYXkuaXNBcnJheShuKT9uLnNsaWNlKCk6W107aWYoIWV8fGUuc2Vzc2lvbktpbmQhPT0ic3RydWN0dXJlZCIpcmV0dXJuIGk7aWYoZS5zdHJ1Y3R1cmVkU3RhdGUmJmUuc3RydWN0dXJlZFN0YXRlLmluRmxpZ2h0KXt2YXIgYT1pW2kubGVuZ3RoLTFdOyghYXx8YS5yb2xlIT09ImFzc2lzdGFudCIpJiZpLnB1c2goe3JvbGU6ImFzc2lzdGFudCIsY29udGVudDpbe3R5cGU6InRleHQiLHRleHQ6IiIsX19wcm9jZXNzaW5nOiEwfV19KX1yZXR1cm4gaX1mdW5jdGlvbiBvbygpe3ZhciBlPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbih0KXtyZXR1cm4gdC5pZD09PXIuc2VsZWN0ZWRJZH0pO0pyKGUpLGZuKCl9ZnVuY3Rpb24gbG8oZSl7dmFyIHQ9TnQoKSxuPXQmJnQucHJvdmlkZXI9PT0iY29kZXgiO3JldHVybiBlJiYoZS5lcnJvckNvZGU9PT0iU0VTU0lPTl9OT1RfUlVOTklORyJ8fGUuZXJyb3JDb2RlPT09IlNFU1NJT05fTk9fUFRZIik/bj8iQ29kZXggXHU0RjFBXHU4QkREXHU1REYyXHU3RUQzXHU2NzVGXHVGRjFCXHU4MkU1XHU1QjU4XHU1NzI4IENvZGV4IFx1NTM4Nlx1NTNGMlx1NEYxQVx1OEJERFx1RkYwQ1x1NUMwNlx1NTcyOFx1NEY2MFx1NEUwQlx1NkIyMVx1NTNEMVx1OTAwMVx1NkQ4OFx1NjA2Rlx1NjVGNlx1ODFFQVx1NTJBOFx1NjA2Mlx1NTkwRFx1MzAwMiI6Ilx1NEYxQVx1OEJERFx1NURGMlx1N0VEM1x1Njc1Rlx1RkYxQlx1ODJFNVx1NUI1OFx1NTcyOCBDbGF1ZGUgXHU1Mzg2XHU1M0YyXHU0RjFBXHU4QkREXHVGRjBDXHU1QzA2XHU1NzI4XHU0RjYwXHU0RTBCXHU2QjIxXHU1M0QxXHU5MDAxXHU2RDg4XHU2MDZGXHU2NUY2XHU4MUVBXHU1MkE4XHU2MDYyXHU1OTBEXHUzMDAyIjplJiZlLmVycm9yQ29kZT09PSJTRVNTSU9OX05PVF9GT1VORCI/Ilx1NEYxQVx1OEJERFx1NEUwRFx1NUI1OFx1NTcyOFx1RkYwQ1x1OEJGN1x1OTFDRFx1NjVCMFx1OTAwOVx1NjJFOVx1NjIxNlx1NjVCMFx1NUVGQVx1NEYxQVx1OEJERFx1MzAwMiI6ZSYmZS5tZXNzYWdlfHwobj8iQ29kZXggXHU0RjFBXHU4QkREXHU2NjgyXHU0RTBEXHU1M0VGXHU3NTI4XHVGRjFCXHU4MkU1XHU1QjU4XHU1NzI4IENvZGV4IFx1NTM4Nlx1NTNGMlx1NEYxQVx1OEJERFx1RkYwQ1x1NUMwNlx1ODFFQVx1NTJBOFx1NUMxRFx1OEJENVx1NjA2Mlx1NTkwRFx1MzAwMiI6Ilx1NEYxQVx1OEJERFx1NjY4Mlx1NEUwRFx1NTNFRlx1NzUyOFx1RkYxQlx1ODJFNVx1NUI1OFx1NTcyOCBDbGF1ZGUgXHU1Mzg2XHU1M0YyXHU0RjFBXHU4QkREXHVGRjBDXHU1QzA2XHU4MUVBXHU1MkE4XHU1QzFEXHU4QkQ1XHU2MDYyXHU1OTBEXHUzMDAyIil9ZnVuY3Rpb24gY28oZSl7dmFyIHQ9bmV3IEVycm9yKGUmJmUuZXJyb3J8fCJcdTRGMUFcdThCRERcdTVERjJcdTdFRDNcdTY3NUZcdTMwMDIiKTtyZXR1cm4gZSYmdHlwZW9mIGU9PSJvYmplY3QiJiYodC5lcnJvckNvZGU9ZS5lcnJvckNvZGV8fG51bGwsdC5zZXNzaW9uSWQ9ZS5zZXNzaW9uSWR8fHIuc2VsZWN0ZWRJZHx8bnVsbCx0LnNlc3Npb25TdGF0dXM9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsInNlc3Npb25TdGF0dXMiKT9lLnNlc3Npb25TdGF0dXM6bnVsbCksdH1mdW5jdGlvbiBmbyhlKXtyZXR1cm4gZSYmKGUuZXJyb3JDb2RlPT09IlNFU1NJT05fTk9UX1JVTk5JTkcifHxlLmVycm9yQ29kZT09PSJTRVNTSU9OX05PX1BUWSJ8fGUuZXJyb3JDb2RlPT09IlNFU1NJT05fTk9UX0ZPVU5EIil9ZnVuY3Rpb24gZnAoZSx0KXtlJiYkKHtpZDplLHN0YXR1czp0fHwiZXhpdGVkIn0pfWZ1bmN0aW9uIExnKGUpe2lmKCFlfHwhQXJyYXkuaXNBcnJheShlLm1lc3NhZ2VzKXx8ZS5tZXNzYWdlcy5sZW5ndGg8MilyZXR1cm4hMTt2YXIgdD1lLm1lc3NhZ2VzLnNvbWUoZnVuY3Rpb24oaSl7cmV0dXJuIGkmJmkucm9sZT09PSJ1c2VyIiYmQXJyYXkuaXNBcnJheShpLmNvbnRlbnQpJiZpLmNvbnRlbnQuc29tZShmdW5jdGlvbihhKXtyZXR1cm4gYSYmYS50eXBlPT09InRleHQiJiZ0eXBlb2YgYS50ZXh0PT0ic3RyaW5nIiYmYS50ZXh0LnRyaW0oKS5sZW5ndGg+MH0pfSksbj1lLm1lc3NhZ2VzLnNvbWUoZnVuY3Rpb24oaSl7cmV0dXJuIGkmJmkucm9sZT09PSJhc3Npc3RhbnQiJiZBcnJheS5pc0FycmF5KGkuY29udGVudCkmJmkuY29udGVudC5zb21lKGZ1bmN0aW9uKGEpe3JldHVybiBhJiZhLnR5cGU9PT0idGV4dCImJnR5cGVvZiBhLnRleHQ9PSJzdHJpbmciJiZhLnRleHQudHJpbSgpLmxlbmd0aD4wfSl9KTtyZXR1cm4gdCYmbn1mdW5jdGlvbiBBYShlKXtyZXR1cm4hIShlJiYhdWUoZSkmJihlLnByb3ZpZGVyPT09ImNsYXVkZSJ8fGUucHJvdmlkZXI9PT0iY29kZXgiKSYmZS5zdGF0dXMhPT0icnVubmluZyImJmUuY2xhdWRlU2Vzc2lvbklkKX1mdW5jdGlvbiBwcChlLHQpe2lmKCFlKXJldHVybiBrKCJcdTRGMUFcdThCRERcdTRFMERcdTVCNThcdTU3MjhcdUZGMENcdThCRjdcdTkxQ0RcdTY1QjBcdTkwMDlcdTYyRTlcdTYyMTZcdTY1QjBcdTVFRkFcdTRGMUFcdThCRERcdTMwMDIiLCJlcnJvciIpLFByb21pc2UucmVzb2x2ZShudWxsKTtpZihlLnN0YXR1cz09PSJydW5uaW5nIilyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGUpO2lmKCFBYShlKSl7dmFyIG49ZSYmZS5wcm92aWRlcj09PSJjb2RleCI/IkNvZGV4IjoiQ2xhdWRlIjtyZXR1cm4gaygiXHU4QkU1XHU0RjFBXHU4QkREXHU2Q0ExXHU2NzA5XHU1M0VGXHU2MDYyXHU1OTBEXHU3Njg0ICIrbisiIFx1NTM4Nlx1NTNGMlx1NEUwQVx1NEUwQlx1NjU4N1x1RkYwQ1x1OEJGN1x1NjVCMFx1NUVGQVx1NEYxQVx1OEJERFx1MzAwMiIsImVycm9yIiksUHJvbWlzZS5yZXNvbHZlKG51bGwpfXJldHVybiBDbyhlLmlkLHQpLnRoZW4oZnVuY3Rpb24oaSl7cmV0dXJuIGk/KCQoaSksbWUoKSxxbihpLmlkKSxobihpLmlkKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGp0KCEwKSxpfSkpOm51bGx9KX1mdW5jdGlvbiB2cChlLHQpe3JldHVyblt0LCJcciJdfWZ1bmN0aW9uIG1wKGUsdCxuLGkpe3ZhciBhPUFycmF5LmlzQXJyYXkoZSk/ZS5maWx0ZXIoZnVuY3Rpb24ocyl7cmV0dXJuISFzfSk6W107aWYoYS5sZW5ndGg9PT0wKXJldHVybiBQcm9taXNlLnJlc29sdmUoKTt2YXIgdT10eXBlb2Ygbj09Im51bWJlciI/bjowO3JldHVybiBhLnJlZHVjZShmdW5jdGlvbihzLG8sbCl7cmV0dXJuIHMudGhlbihmdW5jdGlvbigpe3JldHVybiBsPjAmJnU+MD9uZXcgUHJvbWlzZShmdW5jdGlvbihjKXtzZXRUaW1lb3V0KGMsdSl9KS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHd0KG8sbD09PWEubGVuZ3RoLTE/dDp2b2lkIDAsaSl9KTp3dChvLGw9PT1hLmxlbmd0aC0xP3Q6dm9pZCAwLGkpfSl9LFByb21pc2UucmVzb2x2ZSgpKX12YXIgZ3A9NWUzLGhwPTEwMDtmdW5jdGlvbiB4YShlKXtlJiYoci5wZW5kaW5nTWVzc2FnZXMubGVuZ3RoPj1ocCYmci5wZW5kaW5nTWVzc2FnZXMuc2hpZnQoKSxyLnBlbmRpbmdNZXNzYWdlcy5wdXNoKHtpbnB1dDplLGF0OkRhdGUubm93KCl9KSl9ZnVuY3Rpb24geXAoZSl7dmFyIHQ9QXJyYXkuaXNBcnJheShlKT9lLmZpbHRlcihmdW5jdGlvbihuKXtyZXR1cm4hIW59KTpbXTt0LmZvckVhY2goZnVuY3Rpb24obil7eGEobil9KX1mdW5jdGlvbiBicChlKXtpZighKHR5cGVvZiBlIT0ic3RyaW5nInx8IWUpKXt2YXIgdD1lLnJlcGxhY2UoL1x4MWJcWzIwMH4vZywiIikucmVwbGFjZSgvXHgxYlxbMjAxfi9nLCIiKTsvKD86XnxcbilccypcL2NsZWFyXHMqKD86XHJ8XG58JCkvLnRlc3QodCkmJnR5cGVvZiByPCJ1IiYmciYmKHIudGVybWluYWxPdXRwdXRNYXJrZXI9KHIudGVybWluYWxPdXRwdXQmJnIudGVybWluYWxPdXRwdXQubGVuZ3RoKXwwKX19ZnVuY3Rpb24gd3QoZSx0LG4pe3JldHVybiFlfHwhci5zZWxlY3RlZElkP1Byb21pc2UucmVzb2x2ZSgpOihicChlKSxyLm1lc3NhZ2VRdWV1ZS5wdXNoKGUpLHIuaW5wdXRRdWV1ZT1yLmlucHV0UXVldWUudGhlbihmdW5jdGlvbigpe3JldHVybiBFcChlLHQsbikuZmluYWxseShmdW5jdGlvbigpe3ZhciBpPXIubWVzc2FnZVF1ZXVlLmluZGV4T2YoZSk7aT4tMSYmci5tZXNzYWdlUXVldWUuc3BsaWNlKGksMSl9KX0pLHIuaW5wdXRRdWV1ZSl9ZnVuY3Rpb24gRXAoZSx0LG4pe2lmKCFyLnNlbGVjdGVkSWQpcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO3ZhciBpPXIuc2VsZWN0ZWRJZCxhPW58fHIuY3VycmVudFZpZXc7cmV0dXJuIFVmKCk/ci53c0Nvbm5lY3RlZD9mZXRjaCgiL2FwaS9zZXNzaW9ucy8iK2krIi9pbnB1dCIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkoe2lucHV0OmUsdmlldzphLHNob3J0Y3V0S2V5OnR8fHZvaWQgMH0pfSkudGhlbihmdW5jdGlvbih1KXtyZXR1cm4gdS5vaz91Lmpzb24oKTp1Lmpzb24oKS5jYXRjaChmdW5jdGlvbigpe3JldHVybntlcnJvcjoiXHU4QkY3XHU2QzQyXHU1OTMxXHU4RDI1In19KS50aGVuKGZ1bmN0aW9uKHMpe3ZhciBvPWNvKHMpO3Rocm93IG8uaHR0cFN0YXR1cz11LnN0YXR1cyxjb25zb2xlLmVycm9yKCJbd2FuZF0gcG9zdElucHV0OiByZXF1ZXN0IGZhaWxlZCIse3N0YXR1czp1LnN0YXR1cyxlcnJvckNvZGU6by5lcnJvckNvZGUsbWVzc2FnZTpvLm1lc3NhZ2Usc2Vzc2lvbklkOml9KSxmbyhvKSYmZnAoaSxvLnNlc3Npb25TdGF0dXN8fCJleGl0ZWQiKSxvfSl9KS50aGVuKGZ1bmN0aW9uKHUpe3JldHVybiB1JiZ1LmlkJiYoJCh1KSx1LmlkPT09ci5zZWxlY3RlZElkJiYodS5tZXNzYWdlcyYmdS5tZXNzYWdlcy5sZW5ndGg+MCYmKHIuY3VycmVudE1lc3NhZ2VzPXUubWVzc2FnZXMpLEtlKCEwKSkpLHV9KTooeGEoZSksY29uc29sZS5sb2coIlt3YW5kXSBwb3N0SW5wdXQ6IFdlYlNvY2tldCBkaXNjb25uZWN0ZWQsIHF1ZXVlZCBtZXNzYWdlIix7c2Vzc2lvbklkOnIuc2VsZWN0ZWRJZCxpbnB1dExlbmd0aDplLmxlbmd0aH0pLFByb21pc2UucmVzb2x2ZSgpKTpyLndzQ29ubmVjdGVkPyhjb25zb2xlLndhcm4oIlt3YW5kXSBwb3N0SW5wdXQ6IHNlc3Npb24gbm90IHJ1bm5pbmcsIHNraXBwaW5nIHNlbmQiLHtzZXNzaW9uSWQ6ci5zZWxlY3RlZElkfSksaygiXHU0RjFBXHU4QkREXHU2NzJBXHU4RkQwXHU4ODRDXHVGRjBDXHU2QjYzXHU1NzI4XHU3QjQ5XHU1Rjg1XHU4MUVBXHU1MkE4XHU2MDYyXHU1OTBEXHU1NDBFXHU5MUNEXHU4QkQ1XHUzMDAyIiwiaW5mbyIpLFByb21pc2UucmVzb2x2ZSgpKTooeGEoZSksY29uc29sZS5sb2coIlt3YW5kXSBwb3N0SW5wdXQ6IHNlc3Npb24gbm90IHJ1bm5pbmcsIHF1ZXVlZCBmb3IgcmVjb25uZWN0Iix7c2Vzc2lvbklkOnIuc2VsZWN0ZWRJZCxpbnB1dExlbmd0aDplLmxlbmd0aH0pLFByb21pc2UucmVzb2x2ZSgpKX1mdW5jdGlvbiBNZyhlKXtyZXR1cm4gd3QoZSl9ZnVuY3Rpb24gTnQoKXtyZXR1cm4gci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGUpe3JldHVybiBlLmlkPT09ci5zZWxlY3RlZElkfSl8fG51bGx9ZnVuY3Rpb24gcWcoZSl7cmV0dXJuIGUmJmUucHJvdmlkZXI9PT0iY29kZXgiP2AKYDoiXHIifWZ1bmN0aW9uIFNhKCl7cmV0dXJuISFyLnNlbGVjdGVkSWQmJnIuY3VycmVudFZpZXc9PT0idGVybWluYWwifWZ1bmN0aW9uIEZwKGUpe3JldHVybiEoIXIudGVybWluYWx8fCFlfHxlIT09ci5zZWxlY3RlZElkfHxyLnRlcm1pbmFsU2Vzc2lvbklkJiZyLnRlcm1pbmFsU2Vzc2lvbklkIT09ZSl9ZnVuY3Rpb24gcG8oZSl7aWYoIXIudGVybWluYWxJbnRlcmFjdGl2ZXx8IVNhKCl8fGUuZGVmYXVsdFByZXZlbnRlZHx8ZS5pc0NvbXBvc2luZylyZXR1cm4hMTt2YXIgdD1lLnRhcmdldDtyZXR1cm4gdD8hKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoImlzLXdhbmQtZW1iZWQtdGVybWluYWwiKSYmdC5jbG9zZXN0JiZ0LmNsb3Nlc3QoIiNpbnB1dC1ib3giKXx8dC5jbG9zZXN0JiZ0LmNsb3Nlc3QoIiNtaW5pLWtleWJvYXJkIil8fHhwKHQpKTohMH12YXIgd3A9e0VzYzoiZXNjYXBlIixBcnJvd1VwOiJ1cCIsQXJyb3dEb3duOiJkb3duIixBcnJvd0xlZnQ6ImxlZnQiLEFycm93UmlnaHQ6InJpZ2h0IixFbnRlcjoiZW50ZXIiLFRhYjoidGFiIixCYWNrc3BhY2U6ImJhY2tzcGFjZSIsSG9tZToiaG9tZSIsRW5kOiJlbmQiLFBhZ2VVcDoicGFnZXVwIixQYWdlRG93bjoicGFnZWRvd24iLERlbGV0ZToiZGVsZXRlIixJbnNlcnQ6Imluc2VydCIsIiAiOiJzcGFjZSJ9LENwPXtzcGFjZToiICIsdGFiOiIJIixzaGlmdF90YWI6Ilx4MUJbWiIsYmFja3NwYWNlOiJceDdGIixob21lOiJceDFCW0giLGVuZDoiXHgxQltGIixwYWdldXA6Ilx4MUJbNX4iLHBhZ2Vkb3duOiJceDFCWzZ+IixkZWxldGU6Ilx4MUJbM34iLGluc2VydDoiXHgxQlsyfiJ9LHZvPXsiICI6MCwiWyI6MjcsIlxcIjoyOCwiXSI6MjksIl4iOjMwLF86MzF9LEJwPTQwMCxEcD0xMCxrcD04LGdpPTU0LHBuPTgsSWE9W3trZXk6ImVudGVyIixsYWJlbDoiRW50ZXIifSx7a2V5OiJjdHJsX2MiLGxhYmVsOiJDdHJsK0MifSx7a2V5OiJlc2NhcGUiLGxhYmVsOiJFc2MifSx7a2V5OiJzaGlmdF90YWIiLGxhYmVsOiJTaGlmdCtUYWIifV0sQXA9bmV3IFNldChbIm1pbmkta2V5Ym9hcmQtZmFiIiwibWluaS1rZXlib2FyZC10b2dnbGUiLCJ0ZXJtaW5hbC1pbnRlcmFjdGl2ZS10b2dnbGUiXSk7ZnVuY3Rpb24geHAoZSl7cmV0dXJuISEoZSYmQXAuaGFzKGUuaWQpKX12YXIgU3A9bmV3IFNldChbImN0cmwiLCJhbHQiLCJzaGlmdCJdKTtmdW5jdGlvbiBtbyhlKXtyZXR1cm4gU3AuaGFzKGUpfWZ1bmN0aW9uIElwKGUpe3JldHVybiBDcFtlXXx8IiJ9ZnVuY3Rpb24gVHAoZSl7dmFyIHQ9ZS50b0xvd2VyQ2FzZSgpO3JldHVybiB0Pj0iYSImJnQ8PSJ6Ij9TdHJpbmcuZnJvbUNoYXJDb2RlKHQuY2hhckNvZGVBdCgwKS05Nik6T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHZvLHQpP1N0cmluZy5mcm9tQ2hhckNvZGUodm9bdF0pOiIifWZ1bmN0aW9uIExwKGUpe3JldHVybiB3cFtlLmtleV18fGUua2V5fWZ1bmN0aW9uIE1wKGUsdCl7cmV0dXJue2N0cmw6ZS5jdHJsS2V5LGFsdDplLmFsdEtleSxzaGlmdDplLnNoaWZ0S2V5JiYodC5sZW5ndGg9PT0xfHx0PT09InRhYiIpLG1ldGE6ZS5tZXRhS2V5fX1mdW5jdGlvbiBnbyhlLHQpe2UmJnd0KGUsdCkuY2F0Y2goZnVuY3Rpb24oKXt9KX1mdW5jdGlvbiBxcCgpe0lvKCl9ZnVuY3Rpb24gVGEoZSl7ci5rZXlib2FyZFBvcHVwT3Blbj0hMSxlIT09ITEmJnlpKCksSHAoKX1mdW5jdGlvbiBPcCgpe1NhKCkmJk1uKCFyLnRlcm1pbmFsSW50ZXJhY3RpdmUpfWZ1bmN0aW9uIE1uKGUpe3ZhciB0PSEhZSYmU2EoKTtyLnRlcm1pbmFsSW50ZXJhY3RpdmUhPT10JiYoci50ZXJtaW5hbEludGVyYWN0aXZlPXQsdD8oX3AoKSxUYSghMSkscXAoKSxrKCJcdTdFQzhcdTdBRUZcdTRFQTRcdTRFOTJcdTZBMjFcdTVGMEZcdTVERjJcdTVGMDBcdTU0MkYiLCJpbmZvIikpOihOcCgpLHlpKCkpLEFyKCkpfWZ1bmN0aW9uIExhKCl7dmFyIGU9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKG4pe3JldHVybiBuLmlkPT09ci5zZWxlY3RlZElkfSksdD0hZXx8ZS5zdGF0dXMhPT0icnVubmluZyJ8fHIuY3VycmVudFZpZXchPT0idGVybWluYWwiO2lmKHQmJnIudGVybWluYWxJbnRlcmFjdGl2ZSl7TW4oITEpO3JldHVybn0oIWV8fHIuY3VycmVudFZpZXchPT0idGVybWluYWwiKSYmci5rZXlib2FyZFBvcHVwT3BlbiYmKHIua2V5Ym9hcmRQb3B1cE9wZW49ITEpLEFyKCl9ZnVuY3Rpb24gQXIoKXt2YXIgZT1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oeSl7cmV0dXJuIHkuaWQ9PT1yLnNlbGVjdGVkSWR9KSx0PXVlKGUpLG49ZSYmZS5wcm92aWRlcj09PSJjb2RleCIsaT10PyEhKGUmJmUuc3RydWN0dXJlZFN0YXRlJiZlLnN0cnVjdHVyZWRTdGF0ZS5pbkZsaWdodCk6ISFlJiZlLnN0YXR1cz09PSJydW5uaW5nIixhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dC1ib3giKSx1PVsidGVybWluYWwtaW50ZXJhY3RpdmUtdG9nZ2xlLXRvcCJdO3UuZm9yRWFjaChmdW5jdGlvbih5KXt2YXIgdz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCh5KTtpZih3KXt3LmNsYXNzTGlzdC50b2dnbGUoImFjdGl2ZSIsci50ZXJtaW5hbEludGVyYWN0aXZlKSx3LmNsYXNzTGlzdC50b2dnbGUoImlzLW9uIixyLnRlcm1pbmFsSW50ZXJhY3RpdmUpLHcuY2xhc3NMaXN0LnRvZ2dsZSgiaGlkZGVuIix0fHxyLmN1cnJlbnRWaWV3IT09InRlcm1pbmFsInx8IWUpLHcuc2V0QXR0cmlidXRlKCJhcmlhLWNoZWNrZWQiLHIudGVybWluYWxJbnRlcmFjdGl2ZT8idHJ1ZSI6ImZhbHNlIik7dmFyIEU9dy5xdWVyeVNlbGVjdG9yKCIucGx1cy1wb3BvdmVyLXRvZ2dsZS1zdGF0ZSIpO0UmJihFLnRleHRDb250ZW50PXIudGVybWluYWxJbnRlcmFjdGl2ZT8iXHU1RjAwIjoiXHU1MTczIil9fSk7dmFyIHM9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLmlucHV0LWhpbnQiKTtzJiYocy5jbGFzc0xpc3QudG9nZ2xlKCJoaWRkZW4iLHQ/ITA6ci5jdXJyZW50Vmlldz09PSJ0ZXJtaW5hbCIpLCF0JiZlJiYocy50ZXh0Q29udGVudD1uPyJFbnRlciBcdTUzRDFcdTkwMDEgXHhCNyBjaGF0IFx1NEUzQVx1ODlFM1x1Njc5MFx1ODlDNlx1NTZGRVx1RkYwQ3Rlcm1pbmFsIFx1NEUzQVx1NTM5Rlx1NTlDQlx1OEY5M1x1NTFGQSI6IkVudGVyIFx1NTNEMVx1OTAwMSBceEI3IFNoaWZ0K0VudGVyIFx1NjM2Mlx1ODg0QyIpKTt2YXIgbz0hdCYmIWkmJkFhKGUpO2EmJihhLnBsYWNlaG9sZGVyPWVsKGUsci50ZXJtaW5hbEludGVyYWN0aXZlKSxhLmRpc2FibGVkPSF0JiYhIWUmJiFpJiYhbyxhLnNldEF0dHJpYnV0ZSgiYXJpYS1kaXNhYmxlZCIsYS5kaXNhYmxlZD8idHJ1ZSI6ImZhbHNlIiksYS5yZWFkT25seT0hMSxhLmNsYXNzTGlzdC50b2dnbGUoImlzLXRlcm1pbmFsLXBhc3N0aHJvdWdoIiwhIXIudGVybWluYWxJbnRlcmFjdGl2ZSYmIWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoImlzLXdhbmQtZW1iZWQtdGVybWluYWwiKSkpO3ZhciBsPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5pbnB1dC1jb21wb3NlciIpO2wmJnIudGVybWluYWxJbnRlcmFjdGl2ZSYmbC5jbGFzc0xpc3QuY29udGFpbnMoInZvaWNlLW1vZGUiKSYmKGwuY2xhc3NMaXN0LnJlbW92ZSgidm9pY2UtbW9kZSIpLFNlLnJlY29yZGluZz0hMSxCYSgpKTt2YXIgYz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2VuZC1pbnB1dC1idXR0b24iKSxmPXQmJmk7YyYmKGMuZGlzYWJsZWQ9IXQmJiEhZSYmIWkmJiFvLGMuc2V0QXR0cmlidXRlKCJ0aXRsZSIsdD9mPyJcdTYzOTJcdTk2MUZcdTUzRDFcdTkwMDFcdUZGMDhcdTVGNTNcdTUyNERcdTU2REVcdTU5MERcdTdFRDNcdTY3NUZcdTU0MEVcdTU5MDRcdTc0MDZcdUZGMDkiOiJcdTUzRDFcdTkwMDEiOm4/aT8iXHU1M0QxXHU5MDAxXHU3RUQ5IENvZGV4IjoiQ29kZXggXHU0RjFBXHU4QkREXHU1REYyXHU3RUQzXHU2NzVGIjohZXx8aXx8bz8iXHU1M0QxXHU5MDAxIjoiXHU0RjFBXHU4QkREXHU1REYyXHU3RUQzXHU2NzVGIiksYy5jbGFzc0xpc3QudG9nZ2xlKCJxdWV1ZS1tb2RlIixmKSk7dmFyIGQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0b3AtYnV0dG9uIik7aWYoZCl7dmFyIHY9bXUoZSk7ZC5jbGFzc0xpc3QudG9nZ2xlKCJoaWRkZW4iLCF2LmFjdGl2ZSl9dmFyIGg9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0b3AtYnV0dG9uIik7aWYoaCl7dmFyIGc9bXUoZSk7aC5jbGFzc0xpc3QudG9nZ2xlKCJoaWRkZW4iLCFnLmFjdGl2ZSl9dmFyIG09ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpO20mJm0uY2xhc3NMaXN0LnRvZ2dsZSgiaW50ZXJhY3RpdmUiLCF0JiZyLnRlcm1pbmFsSW50ZXJhY3RpdmUpLHFzKCl9ZnVuY3Rpb24gaGkoKXt2YXIgZT13aW5kb3cuZ2V0U2VsZWN0aW9uJiZ3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYoIWV8fGUuaXNDb2xsYXBzZWQpcmV0dXJuITE7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpO2lmKCF0KXJldHVybiExO3ZhciBuPWUuYW5jaG9yTm9kZTtyZXR1cm4gbiYmbi5ub2RlVHlwZT09PTMmJihuPW4ucGFyZW50Tm9kZSksISEobiYmdC5jb250YWlucyhuKSl9ZnVuY3Rpb24gTWEoZSl7aWYocG8oZSkmJiFlLm1ldGFLZXkpe3ZhciB0PUxwKGUpO2lmKHQpe3ZhciBuPU1wKGUsdCk7aWYoIW1vKHQpJiYhKG4uY3RybCYmdC5sZW5ndGg9PT0xJiZ0LnRvTG93ZXJDYXNlKCk9PT0iYyImJmhpKCkpKXt2YXIgaT15byh0LG4pO2kmJihlLnByZXZlbnREZWZhdWx0KCksZ28oaSx0KSl9fX19ZnVuY3Rpb24gUHAoKXtyLnRlcm1pbmFsJiZ1Zig1MDApfWZ1bmN0aW9uIEhwKCl7eXIoKX1mdW5jdGlvbiBPZyhlKXtlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKSwhKHIuY3VycmVudFZpZXchPT0idGVybWluYWwifHwhci5zZWxlY3RlZElkKSYmKHIua2V5Ym9hcmRQb3B1cE9wZW49IXIua2V5Ym9hcmRQb3B1cE9wZW4sQXIoKSl9ZnVuY3Rpb24gaG8oKXtyLmtleWJvYXJkUG9wdXBPcGVuPSExLEFyKCl9ZnVuY3Rpb24gX3AoKXtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixNYSwhMCl9ZnVuY3Rpb24gTnAoKXtkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIixNYSwhMCl9ZnVuY3Rpb24geW8oZSx0KXt2YXIgbj10fHx7Y3RybDohMSxhbHQ6ITEsc2hpZnQ6ITF9O2lmKG1vKGUpKXJldHVybiIiO2lmKGU9PT0idGFiIiYmbi5zaGlmdClyZXR1cm4iXHgxQltaIjt2YXIgaT1JcChlKTtpZihpKXJldHVybiBpO2lmKGUuaW5kZXhPZigiY3RybF8iKT09PTApcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUoZS5jaGFyQ29kZUF0KGUubGVuZ3RoLTEpLTk2KTt2YXIgYT14cihlKTtpZihhKXJldHVybiBhO2lmKCFlKXJldHVybiIiO3ZhciB1PWUubGVuZ3RoPT09MT9lOiIiO3JldHVybiB1PyhuLnNoaWZ0JiYodT11LnRvVXBwZXJDYXNlKCkpLG4uY3RybD9UcCh1KTpuLmFsdD8iXHgxQiIrdTp1KToiIn1mdW5jdGlvbiB5aSgpe3IubW9kaWZpZXJzLmN0cmw9ITEsci5tb2RpZmllcnMuYWx0PSExLHIubW9kaWZpZXJzLnNoaWZ0PSExLGpwKCl9ZnVuY3Rpb24ganAoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWluaS1rZXlib2FyZCIpO2UmJlsiY3RybCIsImFsdCIsInNoaWZ0Il0uZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgbj1lLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLWtleT0iJyt0KyciXScpO24mJm4uY2xhc3NMaXN0LnRvZ2dsZSgiYWN0aXZlIiwhIXIubW9kaWZpZXJzW3RdKX0pfWZ1bmN0aW9uIHhyKGUpe3N3aXRjaChlKXtjYXNlInllcyI6cmV0dXJuInlcciI7Y2FzZSJubyI6cmV0dXJuIm5cciI7Y2FzZSJ1cCI6cmV0dXJuIlx4MUJbQSI7Y2FzZSJkb3duIjpyZXR1cm4iXHgxQltCIjtjYXNlImxlZnQiOnJldHVybiJceDFCW0QiO2Nhc2UicmlnaHQiOnJldHVybiJceDFCW0MiO2Nhc2UiZW50ZXIiOnJldHVybiJcciI7Y2FzZSJjdHJsX2MiOnJldHVybiIDIjtjYXNlImN0cmxfZCI6cmV0dXJuIgQiO2Nhc2UiY3RybF9sIjpyZXR1cm4iXGYiO2Nhc2UiY3RybF91IjpyZXR1cm4iFSI7Y2FzZSJjdHJsX2siOnJldHVybiJcdiI7Y2FzZSJjdHJsX3ciOnJldHVybiIXIjtjYXNlImN0cmxfeiI6cmV0dXJuIhoiO2Nhc2UiZXNjYXBlIjpyZXR1cm4iXHgxQiI7ZGVmYXVsdDpyZXR1cm4iIn19ZnVuY3Rpb24gUnAoKXtpZihyLnBlbmRpbmdNZXNzYWdlcy5sZW5ndGghPT0wKXt2YXIgZT1OdCgpO2lmKHVlKGUpKXtyLnBlbmRpbmdNZXNzYWdlcz1bXTtyZXR1cm59dmFyIHQ9RGF0ZS5ub3coKSxuPVtdLGk9MDtyLnBlbmRpbmdNZXNzYWdlcy5mb3JFYWNoKGZ1bmN0aW9uKHUpe2lmKHR5cGVvZiB1PT0ic3RyaW5nIil7bi5wdXNoKHUpO3JldHVybn1pZighKCF1fHx0eXBlb2YgdS5pbnB1dCE9InN0cmluZyIpKXtpZih0LSh1LmF0fHwwKT5ncCl7aSsrO3JldHVybn1uLnB1c2godS5pbnB1dCl9fSksci5wZW5kaW5nTWVzc2FnZXM9W10saT4wJiZjb25zb2xlLmxvZygiW3dhbmRdIGZsdXNoUGVuZGluZ01lc3NhZ2VzOiBkcm9wcGVkICIraSsiIHN0YWxlIGlucHV0KHMpIik7dmFyIGE9UHJvbWlzZS5yZXNvbHZlKCk7bi5mb3JFYWNoKGZ1bmN0aW9uKHUpe2E9YS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIFdwKHUpLmNhdGNoKGZ1bmN0aW9uKCl7fSl9KX0pfX1mdW5jdGlvbiBXcChlKXtpZighZXx8IXIuc2VsZWN0ZWRJZClyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7dmFyIHQ9ci5zZWxlY3RlZElkO3JldHVybiBmZXRjaCgiL2FwaS9zZXNzaW9ucy8iK3QrIi9pbnB1dCIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkoe2lucHV0OmUsdmlldzpyLmN1cnJlbnRWaWV3fSl9KS50aGVuKGZ1bmN0aW9uKG4pe3JldHVybiBuLm9rP24uanNvbigpOm4uanNvbigpLmNhdGNoKGZ1bmN0aW9uKCl7cmV0dXJue2Vycm9yOiJcdThCRjdcdTZDNDJcdTU5MzFcdThEMjUifX0pLnRoZW4oZnVuY3Rpb24oaSl7dmFyIGE9Y28oaSk7aWYoYS5odHRwU3RhdHVzPW4uc3RhdHVzLGZvKGEpKXJldHVybiBjb25zb2xlLmxvZygiW3dhbmRdIHNlbmRJbnB1dERpcmVjdDogc2Vzc2lvbiB1bmF2YWlsYWJsZSwgZHJvcHBpbmciLHtzZXNzaW9uSWQ6dCxlcnJvckNvZGU6YS5lcnJvckNvZGV9KSxudWxsO3Rocm93IGF9KX0pLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIG4mJm4uaWQmJigkKG4pLG4uaWQ9PT1yLnNlbGVjdGVkSWQmJihuLm1lc3NhZ2VzJiZuLm1lc3NhZ2VzLmxlbmd0aD4wJiYoci5jdXJyZW50TWVzc2FnZXM9bi5tZXNzYWdlcyksS2UoITApKSksbn0pfWZ1bmN0aW9uIHFhKCl7aWYoci5zZWxlY3RlZElkKXt2YXIgZT1yLnNlbGVjdGVkSWQ7enMoY2UoInN0b3AuY29uZmlybS5tZXNzYWdlIikse3RpdGxlOmNlKCJzdG9wLmNvbmZpcm0udGl0bGUiKSxkYW5nZXI6ITAsb2tMYWJlbDpjZSgic3RvcC5jb25maXJtLm9rIiksY2FuY2VsTGFiZWw6Y2UoInN0b3AuY29uZmlybS5jYW5jZWwiKX0pLnRoZW4oZnVuY3Rpb24odCl7dCYmci5zZWxlY3RlZElkPT09ZSYmZmV0Y2goIi9hcGkvc2Vzc2lvbnMvIitlKyIvc3RvcCIse21ldGhvZDoiUE9TVCIsY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oUnQpfSl9fWZ1bmN0aW9uIGJvKGUpe3ZhciB0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5zZXNzaW9uLWl0ZW1bZGF0YS1zZXNzaW9uLWlkPSInK2UrJyJdJyk7dCYmdC5jbGFzc0xpc3QuYWRkKCJkZWxldGluZyIpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtmZXRjaCgiL2FwaS9zZXNzaW9ucy8iK2Use21ldGhvZDoiREVMRVRFIixjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gbi5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKG4pe2lmKG4mJm4uZXJyb3IpdGhyb3cgbmV3IEVycm9yKG4uZXJyb3IpO3JldHVybiByLnNlbGVjdGVkSWQ9PT1lJiYoci5zZWxlY3RlZElkPW51bGwsd2UoKSksUnQoKX0pLmNhdGNoKGZ1bmN0aW9uKCl7dCYmdC5jbGFzc0xpc3QucmVtb3ZlKCJkZWxldGluZyIpO3ZhciBuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhY3Rpb24tZXJyb3IiKTtQZShuLCJcdTY1RTBcdTZDRDVcdTUyMjBcdTk2NjRcdTRGMUFcdThCRERcdTMwMDIiKX0pfSwyNTApfWZ1bmN0aW9uIEVvKGUsdCl7dCYmdC5jbGFzc0xpc3QuYWRkKCJkZWxldGluZyIpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtmZXRjaCgiL2FwaS9jbGF1ZGUtaGlzdG9yeS8iK2VuY29kZVVSSUNvbXBvbmVudChlKSx7bWV0aG9kOiJERUxFVEUiLGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKG4pe3JldHVybiBuLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24obil7aWYobiYmbi5lcnJvcil0aHJvdyBuZXcgRXJyb3Iobi5lcnJvcik7ci5jbGF1ZGVIaXN0b3J5PXIuY2xhdWRlSGlzdG9yeS5maWx0ZXIoZnVuY3Rpb24oaSl7cmV0dXJuIGkuY2xhdWRlU2Vzc2lvbklkIT09ZX0pLGRlbGV0ZSByLnNlbGVjdGVkQ2xhdWRlSGlzdG9yeUlkc1tlXSxtZSgpfSkuY2F0Y2goZnVuY3Rpb24oKXt0JiZ0LmNsYXNzTGlzdC5yZW1vdmUoImRlbGV0aW5nIik7dmFyIG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFjdGlvbi1lcnJvciIpO1BlKG4sIlx1NjVFMFx1NkNENVx1NTIyMFx1OTY2NFx1NTM4Nlx1NTNGMlx1NEYxQVx1OEJERFx1MzAwMiIpfSl9LDI1MCl9ZnVuY3Rpb24gUGcoZSx0KXtFbyhlLHQpfWZ1bmN0aW9uIHpwKGUsdCxuKXtlJiZmZXRjaCgiL2FwaS9jbGF1ZGUtaGlzdG9yeT9jd2Q9IitlbmNvZGVVUklDb21wb25lbnQoZSkse21ldGhvZDoiREVMRVRFIixjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihpKXtyZXR1cm4gaS5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKGkpe2lmKGkmJmkuZXJyb3IpdGhyb3cgbmV3IEVycm9yKGkuZXJyb3IpO3IuY2xhdWRlSGlzdG9yeT1yLmNsYXVkZUhpc3RvcnkuZmlsdGVyKGZ1bmN0aW9uKGEpe3JldHVybiBhLmN3ZCE9PWV9KSxtZSgpfSkuY2F0Y2goZnVuY3Rpb24oKXtGbyhuLCExKTt2YXIgaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWN0aW9uLWVycm9yIik7UGUoaSwiXHU2NUUwXHU2Q0Q1XHU2RTA1XHU3NDA2XHU4QkU1XHU3NkVFXHU1RjU1XHU3Njg0XHU1Mzg2XHU1M0YyXHU0RjFBXHU4QkREXHUzMDAyIil9KX1mdW5jdGlvbiBGbyhlLHQpe2UuZm9yRWFjaChmdW5jdGlvbihuKXtuLmNsYXNzTGlzdC50b2dnbGUoImRlbGV0aW5nIix0KX0pfWZ1bmN0aW9uIFVwKGUpe3JldHVybiBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuY2xhdWRlLWhpc3RvcnktaXRlbVtkYXRhLWN3ZD0iJyt3aW5kb3cuQ1NTLmVzY2FwZShTdHJpbmcoZSkpKyciXScpKX12YXIgd289bnVsbCxTcj1udWxsO2Z1bmN0aW9uIElyKCl7aWYoU3Ipe1NyLmNsYXNzTGlzdC5yZW1vdmUoInN3aXBlZCIpO3ZhciBlPVNyLnF1ZXJ5U2VsZWN0b3IoIi5zZXNzaW9uLWl0ZW0tY29udGVudCIpO2UmJihlLnN0eWxlLnRyYW5zZm9ybT0iIiksU3I9bnVsbH19ZnVuY3Rpb24gVnAoZSl7d289bnVsbCxTcj1udWxsfWZ1bmN0aW9uIEtwKGUsdCxuKXtlPT09ImNsYXVkZSImJihyLnByZWZlcnJlZENvbW1hbmQ9ZSxyLmNoYXRNb2RlPVN0KGUsci5jaGF0TW9kZSkpO3ZhciBpPXIuY2hhdE1vZGVsfHxyLmNvbmZpZyYmci5jb25maWcuZGVmYXVsdE1vZGVsfHwiIjtyZXR1cm4gZmV0Y2goIi9hcGkvY29tbWFuZHMiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KGh0KHtjb21tYW5kOmUsY3dkOnR8fCIiLG1vZGU6ci5jaGF0TW9kZXx8ci5jb25maWcuZGVmYXVsdE1vZGV8fCJkZWZhdWx0Iixtb2RlbDppfHx2b2lkIDAsdGhpbmtpbmdFZmZvcnQ6ci5jaGF0VGhpbmtpbmd8fHZvaWQgMH0pKX0pLnRoZW4oZnVuY3Rpb24oYSl7cmV0dXJuIGEuanNvbigpfSkudGhlbihmdW5jdGlvbihhKXtyZXR1cm4gYS5lcnJvcj8obiYmUGUobixhLmVycm9yKSxudWxsKTooci5zZWxlY3RlZElkPWEuaWQsd2UoKSxyLmRyYWZ0c1thLmlkXT0iIixhKX0pfXZhciBPYT0hMTtmdW5jdGlvbiBDbyhlLHQpe3JldHVybiFlfHxPYT9Qcm9taXNlLnJlc29sdmUobnVsbCk6KE9hPSEwLGZldGNoKCIvYXBpL3Nlc3Npb25zLyIrZW5jb2RlVVJJQ29tcG9uZW50KGUpKyIvcmVzdW1lIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeShodCh7bW9kZTpyLmNoYXRNb2RlfHxyLmNvbmZpZy5kZWZhdWx0TW9kZXx8ImRlZmF1bHQifSkpfSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gbi5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKG4pe3JldHVybiBuLmVycm9yPyh0P1BlKHQsbi5lcnJvcik6ayhuLmVycm9yLCJlcnJvciIpLG51bGwpOihyLnNlbGVjdGVkSWQ9bi5pZCx3ZSgpLHIuZHJhZnRzW24uaWRdPSIiLG4pfSkuY2F0Y2goZnVuY3Rpb24obil7dmFyIGk9biYmbi5tZXNzYWdlfHwiXHU2NUUwXHU2Q0Q1XHU2MDYyXHU1OTBEXHU0RjFBXHU4QkREXHUzMDAyIjtyZXR1cm4gdD9QZSh0LGkpOmsoaSwiZXJyb3IiKSxudWxsfSkuZmluYWxseShmdW5jdGlvbigpe09hPSExfSkpfWZ1bmN0aW9uIEhnKGUsdCl7cmV0dXJuIGU/ZmV0Y2goIi9hcGkvY2xhdWRlLXNlc3Npb25zLyIrZW5jb2RlVVJJQ29tcG9uZW50KGUpKyIvcmVzdW1lIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeShodCh7bW9kZTpyLmNoYXRNb2RlfHxyLmNvbmZpZy5kZWZhdWx0TW9kZXx8ImRlZmF1bHQifSkpfSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gbi5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKG4pe3JldHVybiBuLmVycm9yPyh0P1BlKHQsbi5lcnJvcik6ayhuLmVycm9yLCJlcnJvciIpLG51bGwpOihyLmNsYXVkZUhpc3Rvcnk9ci5jbGF1ZGVIaXN0b3J5LmZpbHRlcihmdW5jdGlvbihpKXtyZXR1cm4gaS5jbGF1ZGVTZXNzaW9uSWQhPT1lfSksci5zZWxlY3RlZElkPW4uaWQsd2UoKSxyLmRyYWZ0c1tuLmlkXT0iIixuKX0pLmNhdGNoKGZ1bmN0aW9uKG4pe3ZhciBpPW4mJm4ubWVzc2FnZXx8Ilx1NjVFMFx1NkNENVx1NjMwOSBDbGF1ZGUgXHU0RjFBXHU4QkREIElEIFx1NjA2Mlx1NTkwRFx1NEYxQVx1OEJERFx1MzAwMiI7cmV0dXJuIHQ/UGUodCxpKTprKGksImVycm9yIiksbnVsbH0pOlByb21pc2UucmVzb2x2ZShudWxsKX1mdW5jdGlvbiB2bihlKXtyZXR1cm4hZXx8IWUuaWQ/UHJvbWlzZS5yZXNvbHZlKCk6KHIuc2VsZWN0ZWRJZD1lLmlkLHdlKCksci5jdXJyZW50TWVzc2FnZXM9W10sYnIoKSxBdCgpLGtyKGUuaWQpLCQoZSksbWUoKSxxbihlLmlkKSxobihlLmlkKS50aGVuKGZ1bmN0aW9uKCl7anQoITApfSkpfWZ1bmN0aW9uIEJvKGUpe3JldHVybiBDbyhlKS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiB0Pyh0LmNsYXVkZVNlc3Npb25JZCYmKHQucHJvdmlkZXI9PT0iY29kZXgiP3IuY29kZXhIaXN0b3J5PXIuY29kZXhIaXN0b3J5LmZpbHRlcihmdW5jdGlvbihuKXtyZXR1cm4gbi5jbGF1ZGVTZXNzaW9uSWQhPT10LmNsYXVkZVNlc3Npb25JZH0pOnIuY2xhdWRlSGlzdG9yeT1yLmNsYXVkZUhpc3RvcnkuZmlsdGVyKGZ1bmN0aW9uKG4pe3JldHVybiBuLmNsYXVkZVNlc3Npb25JZCE9PXQuY2xhdWRlU2Vzc2lvbklkfSkpLHZuKHQpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gdH0pKTpudWxsfSl9ZnVuY3Rpb24gX2coZSx0LG4pe3JldHVybiBLcChlLHQsbikudGhlbihmdW5jdGlvbihpKXtyZXR1cm4gaT92bihpKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGl9KTpudWxsfSl9ZnVuY3Rpb24gTmcoZSl7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndlbGNvbWUtaW5wdXQiKTtpZih0KXt0LnBsYWNlaG9sZGVyPSJcdTZCNjNcdTU3MjhcdTYwMURcdTgwMDNcdTIwMjYiLHQuZGlzYWJsZWQ9ITA7dmFyIG49ci5jaGF0TW9kZXx8Im1hbmFnZWQiLGk9ZXQoKSxhPXR0KCksdT1yLmNoYXRNb2RlbHx8ci5jb25maWcmJnIuY29uZmlnLmRlZmF1bHRNb2RlbHx8IiI7ZmV0Y2goIi9hcGkvY29tbWFuZHMiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KGh0KHtjb21tYW5kOmEsY3dkOmksbW9kZTpuLGluaXRpYWxJbnB1dDplLG1vZGVsOnV8fHZvaWQgMCx0aGlua2luZ0VmZm9ydDpyLmNoYXRUaGlua2luZ3x8dm9pZCAwfSkpfSkudGhlbihmdW5jdGlvbihzKXtyZXR1cm4gcy5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKHMpe3JldHVybiBzLmVycm9yPyhrKHMuZXJyb3IsImVycm9yIiksdC5wbGFjZWhvbGRlcj0iXHU4RjkzXHU1MTY1XHU2RDg4XHU2MDZGIix0LmRpc2FibGVkPSExLG51bGwpOnZuKHMpfSkuY2F0Y2goZnVuY3Rpb24ocyl7ayhzJiZzLm1lc3NhZ2V8fCJcdTY1RTBcdTZDRDVcdTU0MkZcdTUyQThcdTRGMUFcdThCRERcdTMwMDIiLCJlcnJvciIpLHQucGxhY2Vob2xkZXI9Ilx1OEY5M1x1NTE2NVx1NkQ4OFx1NjA2RiIsdC5kaXNhYmxlZD0hMX0pLmZpbmFsbHkoZnVuY3Rpb24oKXt0LnBsYWNlaG9sZGVyPSJcdThGOTNcdTUxNjVcdTZEODhcdTYwNkYiLHQuZGlzYWJsZWQ9ITF9KX19ZnVuY3Rpb24gamcoZSx0LG4pe3ZhciBpPXIuY2hhdE1vZGV8fCJtYW5hZ2VkIixhPWV0KCksdT10dCgpLHM9ci5jaGF0TW9kZWx8fHIuY29uZmlnJiZyLmNvbmZpZy5kZWZhdWx0TW9kZWx8fCIiO2ZldGNoKCIvYXBpL2NvbW1hbmRzIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeShodCh7Y29tbWFuZDp1LGN3ZDphLG1vZGU6aSxpbml0aWFsSW5wdXQ6ZXx8dm9pZCAwLG1vZGVsOnN8fHZvaWQgMCx0aGlua2luZ0VmZm9ydDpyLmNoYXRUaGlua2luZ3x8dm9pZCAwfSkpfSkudGhlbihmdW5jdGlvbihvKXtyZXR1cm4gby5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKG8pe3JldHVybiBvLmVycm9yPyhrKG8uZXJyb3IsImVycm9yIiksbnVsbCk6KHQmJih0LnZhbHVlPSIiKSxuJiYobi52YWx1ZT0iIiksdm4obykpfSkuY2F0Y2goZnVuY3Rpb24obyl7ayhvJiZvLm1lc3NhZ2V8fCJcdTY1RTBcdTZDRDVcdTU0MkZcdTUyQThcdTRGMUFcdThCRERcdTMwMDIiLCJlcnJvciIpfSl9ZnVuY3Rpb24gSnAoZSl7ZS5kaXNhYmxlZD0hMCxCbyhlLmRhdGFzZXQuc2Vzc2lvbklkKS5maW5hbGx5KGZ1bmN0aW9uKCl7ZS5kaXNhYmxlZD0hMX0pfWZ1bmN0aW9uIEdwKGUpe3ZhciB0PWUuZGF0YXNldC5jbGF1ZGVTZXNzaW9uSWQsbj1lLmRhdGFzZXQuY3dkO3QmJihlLmRpc2FibGVkPSEwLFlwKHQsbikudGhlbihmdW5jdGlvbihpKXtpJiZpLmlkJiYoci5jb2RleEhpc3Rvcnk9ci5jb2RleEhpc3RvcnkuZmlsdGVyKGZ1bmN0aW9uKGEpe3JldHVybiBhLmNsYXVkZVNlc3Npb25JZCE9PXR9KSxyLnNlbGVjdGVkSWQ9aS5pZCx3ZSgpLHIuZHJhZnRzW2kuaWRdPSIiLHZuKGkpLnRoZW4oZnVuY3Rpb24oKXtVdCgpfSkpfSkuZmluYWxseShmdW5jdGlvbigpe2UuZGlzYWJsZWQ9ITF9KSl9ZnVuY3Rpb24gWXAoZSx0KXtyZXR1cm4gZmV0Y2goIi9hcGkvY29kZXgtc2Vzc2lvbnMvIitlbmNvZGVVUklDb21wb25lbnQoZSkrIi9yZXN1bWUiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KGh0KHttb2RlOnIuY2hhdE1vZGV8fHIuY29uZmlnJiZyLmNvbmZpZy5kZWZhdWx0TW9kZXx8ImRlZmF1bHQiLGN3ZDp0fSkpfSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gbi5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKG4pe3JldHVybiBuLmVycm9yPyhrKG4uZXJyb3IsImVycm9yIiksbnVsbCk6bn0pLmNhdGNoKGZ1bmN0aW9uKG4pe3JldHVybiBrKG4mJm4ubWVzc2FnZXx8Ilx1NjVFMFx1NkNENVx1NjA2Mlx1NTkwRFx1NTM4Nlx1NTNGMlx1NEYxQVx1OEJERFx1MzAwMiIsImVycm9yIiksbnVsbH0pfWZ1bmN0aW9uIFFwKGUpe3ZhciB0PWUuZGF0YXNldC5jbGF1ZGVTZXNzaW9uSWQ7dCYmeG4oIlx1Nzg2RVx1OEJBNFx1OTY5MFx1ODVDRlx1OEZEOVx1Njc2MSBDb2RleCBcdTUzODZcdTUzRjJcdTRGMUFcdThCRERcdTU0MTdcdUZGMUYiLHt0aXRsZToiXHU5NjkwXHU4NUNGIENvZGV4IFx1NTM4Nlx1NTNGMiIsb2tMYWJlbDoiXHU5NjkwXHU4NUNGIn0pLnRoZW4oZnVuY3Rpb24obil7aWYobil7dmFyIGk9ZS5jbG9zZXN0KCIuY2xhdWRlLWhpc3RvcnktaXRlbSIpO2kmJihpLnN0eWxlLm9wYWNpdHk9IjAuNSIpLGZldGNoKCIvYXBpL2NvZGV4LWhpc3RvcnkvIitlbmNvZGVVUklDb21wb25lbnQodCkse21ldGhvZDoiREVMRVRFIixjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihhKXtyZXR1cm4gYS5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKGEpe2EmJmEub2s/KHIuY29kZXhIaXN0b3J5PXIuY29kZXhIaXN0b3J5LmZpbHRlcihmdW5jdGlvbih1KXtyZXR1cm4gdS5jbGF1ZGVTZXNzaW9uSWQhPT10fSksbWUoKSk6aSYmKGkuc3R5bGUub3BhY2l0eT0iMSIpfSkuY2F0Y2goZnVuY3Rpb24oKXtpJiYoaS5zdHlsZS5vcGFjaXR5PSIxIil9KX19KX1mdW5jdGlvbiAkcChlKXt2YXIgdD1lLmRhdGFzZXQuY2xhdWRlU2Vzc2lvbklkLG49ZS5kYXRhc2V0LmN3ZDt0JiYoZS5kaXNhYmxlZD0hMCxiaSh0LG4pLnRoZW4oZnVuY3Rpb24oaSl7aSYmaS5pZCYmKHIuY2xhdWRlSGlzdG9yeT1yLmNsYXVkZUhpc3RvcnkuZmlsdGVyKGZ1bmN0aW9uKGEpe3JldHVybiBhLmNsYXVkZVNlc3Npb25JZCE9PXR9KSxyLnNlbGVjdGVkSWQ9aS5pZCx3ZSgpLHIuZHJhZnRzW2kuaWRdPSIiLHZuKGkpLnRoZW4oZnVuY3Rpb24oKXtVdCgpfSkpfSkuZmluYWxseShmdW5jdGlvbigpe2UuZGlzYWJsZWQ9ITF9KSl9ZnVuY3Rpb24gYmkoZSx0KXtyZXR1cm4gZmV0Y2goIi9hcGkvY2xhdWRlLXNlc3Npb25zLyIrZW5jb2RlVVJJQ29tcG9uZW50KGUpKyIvcmVzdW1lIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeShodCh7bW9kZTpyLmNoYXRNb2RlfHxyLmNvbmZpZyYmci5jb25maWcuZGVmYXVsdE1vZGV8fCJkZWZhdWx0Iixjd2Q6dH0pKX0pLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIG4uanNvbigpfSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gbi5lcnJvcj8oayhuLmVycm9yLCJlcnJvciIpLG51bGwpOm59KS5jYXRjaChmdW5jdGlvbihuKXtyZXR1cm4gayhuJiZuLm1lc3NhZ2V8fCJcdTY1RTBcdTZDRDVcdTYwNjJcdTU5MERcdTUzODZcdTUzRjJcdTRGMUFcdThCRERcdTMwMDIiLCJlcnJvciIpLG51bGx9KX1mdW5jdGlvbiBUcigpe3JldHVybiJvbnRvdWNoc3RhcnQiaW4gd2luZG93fHxuYXZpZ2F0b3IubWF4VG91Y2hQb2ludHM+MH1mdW5jdGlvbiBqdChlKXtpZighci50ZXJtaW5hbEludGVyYWN0aXZlKXt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wdXQtYm94Iik7IXR8fCFyLnNlbGVjdGVkSWR8fGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQhPT10JiYoZSYmVHIoKXx8UGEodCkpfX1mdW5jdGlvbiBSZygpe3ZhciBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5jaGF0LW1lc3NhZ2VzIik7ZSYmKGUuc2Nyb2xsVG9wPTApfWZ1bmN0aW9uIERvKCl7dmFyIGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLmlucHV0LXBhbmVsIik7ZSYmZS5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgiLS1rZXlib2FyZC1vZmZzZXQiKX1mdW5jdGlvbiBrbygpe3ZhciBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5pbnB1dC1wYW5lbCIpO2UmJmUuc3R5bGUucmVtb3ZlUHJvcGVydHkoIi0ta2V5Ym9hcmQtb2Zmc2V0Iil9ZnVuY3Rpb24gRWkoZSl7aWYoZSl7dmFyIHQ9ZS5zZWxlY3Rpb25TdGFydCxuPWUuc2VsZWN0aW9uRW5kO0ZpKGUpLHR5cGVvZiB0PT0ibnVtYmVyIiYmdHlwZW9mIG49PSJudW1iZXIiJiZlLnNldFNlbGVjdGlvblJhbmdlKHQsbil9fWZ1bmN0aW9uIEFvKGUpeyFlfHxlLmRhdGFzZXQudG91Y2hTY3JvbGxCb3VuZD09PSJ0cnVlInx8KGUuZGF0YXNldC50b3VjaFNjcm9sbEJvdW5kPSJ0cnVlIixlLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLGZ1bmN0aW9uKCl7ZS5zY3JvbGxIZWlnaHQ8PWUuY2xpZW50SGVpZ2h0KzF8fChlLnNjcm9sbFRvcDw9MD9lLnNjcm9sbFRvcD0xOmUuc2Nyb2xsVG9wK2UuY2xpZW50SGVpZ2h0Pj1lLnNjcm9sbEhlaWdodCYmKGUuc2Nyb2xsVG9wPU1hdGgubWF4KDEsZS5zY3JvbGxIZWlnaHQtZS5jbGllbnRIZWlnaHQtMSkpKX0se3Bhc3NpdmU6ITB9KSl9ZnVuY3Rpb24geG8oZSl7ZSYmKF90KGUpLEVpKGUpKX1mdW5jdGlvbiBYcChlKXt2YXIgdD1lJiZlLnRhcmdldD9lLnRhcmdldDpkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wdXQtYm94Iik7dCYmKERvKCkseG8odCkpfWZ1bmN0aW9uIFpwKGUpe3ZhciB0PWUmJmUudGFyZ2V0P2UudGFyZ2V0OmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dC1ib3giKTtrbygpLEFzKDIyMDAsdCk7dmFyIG49WzgwLDIwMCwzODAsNjIwLDkwMF07bi5mb3JFYWNoKGZ1bmN0aW9uKGksYSl7c2V0VGltZW91dChmdW5jdGlvbigpe1VuKCExKSxhPT09MSYmVHIoKSYmKFplKCJrZXlib2FyZC1ibHVyIix7Zm9yY2VSZXBsYXk6ITB9KSxGdCgia2V5Ym9hcmQiKSl9LGkpfSl9ZnVuY3Rpb24gZXYoZSl7ZSYmKGUuc2V0U2VsZWN0aW9uUmFuZ2UoZS52YWx1ZS5sZW5ndGgsZS52YWx1ZS5sZW5ndGgpLEVpKGUpKX1mdW5jdGlvbiBQYShlKXtlJiYoZS5mb2N1cyh7cHJldmVudFNjcm9sbDohMH0pLGV2KGUpKX1mdW5jdGlvbiB0dihlKXtBbyhlKSx4byhlKX1mdW5jdGlvbiBudihlKXtQYShlKX1mdW5jdGlvbiBXZyhlKXtEbygpLEVpKGUpfWZ1bmN0aW9uIHJ2KCl7a28oKX1mdW5jdGlvbiBpdihlKXtFaShlKX1mdW5jdGlvbiB6ZyhlKXtudihlKX1mdW5jdGlvbiBhdihlKXt0dihlKX1mdW5jdGlvbiBVZygpe3J2KCl9ZnVuY3Rpb24gVmcoZSl7aXYoZSl9ZnVuY3Rpb24gdXYoZSx0KXtpZighZXx8IXR8fGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQhPT10KXJldHVybiExO3ZhciBuPXdpbmRvdy5pbm5lckhlaWdodC1lLmhlaWdodC1lLm9mZnNldFRvcDtpZihuPD01MClyZXR1cm4hMTt2YXIgaT10LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JldHVybiBpLmJvdHRvbT5lLmhlaWdodC0xMn1mdW5jdGlvbiBGaShlKXtpZihlKXt2YXIgdD1lLnNjcm9sbEhlaWdodD5lLmNsaWVudEhlaWdodCsxO2lmKCF0KXtlLnNjcm9sbFRvcD0wO3JldHVybn1lLnNjcm9sbFRvcD1lLnNjcm9sbEhlaWdodH19ZnVuY3Rpb24gU28oKXtpZihyLnRlcm1pbmFsSW50ZXJhY3RpdmUpe0lvKCk7cmV0dXJufWlmKCFUcigpKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wdXQtYm94Iik7IWV8fCFyLnNlbGVjdGVkSWR8fGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1lfHxQYShlKX19ZnVuY3Rpb24gSW8oKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0Iik7ZSYmKGUuc2V0QXR0cmlidXRlKCJ0YWJpbmRleCIsIjAiKSxlLmZvY3VzKCksci50ZXJtaW5hbCYmci50ZXJtaW5hbC5mb2N1cyYmci50ZXJtaW5hbC5mb2N1cygpKX1mdW5jdGlvbiBzdigpe3ZhciBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5pbnB1dC1wYW5lbCIpLHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLmNoYXQtbWVzc2FnZXMiKTtpZigidmlydHVhbEtleWJvYXJkImluIG5hdmlnYXRvcil7dmFyIG49bmF2aWdhdG9yLnZpcnR1YWxLZXlib2FyZDtuLmFkZEV2ZW50TGlzdGVuZXIoImdlb21ldHJ5Y2hhbmdlIixmdW5jdGlvbigpe2UmJmUuc3R5bGUucmVtb3ZlUHJvcGVydHkoInBhZGRpbmctYm90dG9tIil9KX12YXIgaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0Iik7aSYmaS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXtTbygpfSksdCYmdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oYSl7dmFyIHU9YS50YXJnZXQ7dS50YWdOYW1lIT09IkEiJiZ1LnRhZ05hbWUhPT0iQlVUVE9OIiYmIXUuY2xvc2VzdCgiYnV0dG9uIikmJiF1LmNsb3Nlc3QoIltkYXRhLXRvb2wtdG9nZ2xlXSIpJiZTbygpfSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKGEpe2lmKFRyKCkpe3ZhciB1PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dC1ib3giKTtpZighKCF1fHxkb2N1bWVudC5hY3RpdmVFbGVtZW50IT09dSkpe3ZhciBzPWEudGFyZ2V0OyFzfHx0eXBlb2Ygcy5jbG9zZXN0IT0iZnVuY3Rpb24ifHxzLmNsb3Nlc3QoIi5pbnB1dC1wYW5lbCIpfHxzLmNsb3Nlc3QoIiNtaW5pLWtleWJvYXJkIil8fHMuY2xvc2VzdCgiI21pbmkta2V5Ym9hcmQtZmFiIil8fHMuY2xvc2VzdCgiI21pbmkta2V5Ym9hcmQtdG9nZ2xlIil8fHMuY2xvc2VzdCgiI3Rlcm1pbmFsLWludGVyYWN0aXZlLXRvZ2dsZSIpfHxzLmNsb3Nlc3QoIi53YW5kLWpveXN0aWNrLXJvb3QiKXx8dS5ibHVyKCl9fX0sITApfWZ1bmN0aW9uIEhhKCl7dHJ5e3dpbmRvdy5zY3JvbGxUbygwLDApfWNhdGNoe31kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50JiYoZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3A9MCksZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50JiYoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcD0wKSxkb2N1bWVudC5ib2R5JiYoZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A9MCl9ZnVuY3Rpb24gS2UoZSl7ci5yZW5kZXJQZW5kaW5nJiYhZXx8KHIucmVuZGVyUGVuZGluZz0hMCxlPyh3aSghMCksci5yZW5kZXJQZW5kaW5nPSExKTpyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXt3aSghMSksci5yZW5kZXJQZW5kaW5nPSExfSkpfXIuY2hhdFJlbmRlclRpbWVyPW51bGw7ZnVuY3Rpb24gX2EoZSl7aWYoIShyLmNoYXRSZW5kZXJUaW1lciYmIWUpKXtpZihyLmNoYXRSZW5kZXJUaW1lciYmY2xlYXJUaW1lb3V0KHIuY2hhdFJlbmRlclRpbWVyKSxlKXtyLmNoYXRSZW5kZXJUaW1lcj1udWxsLEtlKCk7cmV0dXJufXRyeXt3aW5kb3cuX19zY2hlZHVsZUNoYXRSZW5kZXI9ZnVuY3Rpb24oKXtfYSghMCl9fWNhdGNoe312YXIgdD1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oYSl7cmV0dXJuIGEuaWQ9PT1yLnNlbGVjdGVkSWR9KSxuPXQmJnQuc3RhdHVzPT09InJ1bm5pbmciJiZ0LnNlc3Npb25LaW5kIT09InN0cnVjdHVyZWQiLGk9bj9OczpqcztyLmNoYXRSZW5kZXJUaW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ci5jaGF0UmVuZGVyVGltZXI9bnVsbDt2YXIgYT1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24odSl7cmV0dXJuIHUuaWQ9PT1yLnNlbGVjdGVkSWR9KTthJiYoci5jdXJyZW50TWVzc2FnZXM9UmUoYSxudChhLGEub3V0cHV0LCEwKSkpLEtlKCl9LGkpfX1mdW5jdGlvbiBvdihlLHQpe2lmKCFlfHwhdHx8dC5sZW5ndGg9PT0wKXJldHVybltdO2Z1bmN0aW9uIG4odyl7cmV0dXJuIHcucmVwbGFjZSgvXHgxQig/OltALVpcXC1fXXxcW1swLT9dKlsgLS9dKltALX5dKS9nLCIiKX1mb3IodmFyIGk9bihlKSxhPVtdLHU9W10scz0wO3M8dC5sZW5ndGg7cysrKWlmKHRbc10ucm9sZT09PSJ1c2VyIil7dmFyIG89IiIsbD10W3NdLmNvbnRlbnQ7aWYodHlwZW9mIGw9PSJzdHJpbmciKW89bDtlbHNlIGlmKEFycmF5LmlzQXJyYXkobCkpe2Zvcih2YXIgYz0wO2M8bC5sZW5ndGg7YysrKWlmKGxbY10udHlwZT09PSJ0ZXh0Iil7bz1sW2NdLnRleHQ7YnJlYWt9fW8mJnUucHVzaCh7dGV4dDpvLGluZGV4OnN9KX1mb3IodmFyIGY9MCxzPTA7czx1Lmxlbmd0aDtzKyspe3ZhciBkPXVbc10sdj1pLmluZGV4T2YoIlx1Mjc2RiAiK2QudGV4dCxmKTtpZih2PT09LTEmJih2PWkuaW5kZXhPZihgClx1Mjc2RiBgK2QudGV4dCxmKSx2IT09LTEmJih2Kz0xKSksdj5mKXtmb3IodmFyIGg9aS5zdWJzdHJpbmcoZix2KSxnPWguc3BsaXQoYApgKSxtPVtdLGM9MDtjPGcubGVuZ3RoO2MrKyl7dmFyIHk9Z1tjXS50cmltKCk7IXl8fHkuc3RhcnRzV2l0aCgiXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwIil8fHk9PT0iXHUyNzZGInx8eT09PSI/Inx8eT09PSIifHx5LmluY2x1ZGVzKCJDbGF1ZGUgQ29kZSB2Iil8fHkuaW5jbHVkZXMoIk9wdXMiKSYmeS5pbmNsdWRlcygid2l0aCIpfHx5LmluY2x1ZGVzKCJTb25uZXQiKSYmeS5pbmNsdWRlcygid2l0aCIpfHx5LmluY2x1ZGVzKCJBUEkgVXNhZ2UiKXx8eS5pbmNsdWRlcygiQmlsbGluZyIpfHx5LmluY2x1ZGVzKCJmb3Igc2hvcnRjdXRzIil8fHkuaW5jbHVkZXMoIi9lZmZvcnQiKXx8eS5tYXRjaCgvXlvilrjilpDilp3ilpjilpfilpbilojilozilo3ilo7ilo/ilpTiloHiloLiloPiloTiloXilobilofilojilohdLyl8fHkubWF0Y2goL15b4pa44paQ4pad4paY4paX4paW4paI4paM4paN4paO4paP4paU4paB4paC4paD4paE4paF4paG4paH4paI4paIXXszLH0vKXx8eS5sZW5ndGg+MyYmbS5wdXNoKHkpfW0ubGVuZ3RoPjAmJmEucHVzaCh7YmVmb3JlTWVzc2FnZTpkLmluZGV4LGNvbnRlbnQ6bS5qb2luKGAKYCl9KX1mPXYrZC50ZXh0Lmxlbmd0aCsyfXJldHVybiBhfWZ1bmN0aW9uIE5hKGUpe2lmKCFlKXJldHVybiBudWxsO3ZhciB0PWUucXVlcnlTZWxlY3RvcigiLmNoYXQtbWVzc2FnZXMiKTtyZXR1cm4gdHx8KHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdC5jbGFzc05hbWU9ImNoYXQtbWVzc2FnZXMiLGUuYXBwZW5kQ2hpbGQodCksdCl9ZnVuY3Rpb24gVG8oZSx0KXt2YXIgbj1OYShlKTtyZXR1cm4gbj8obi5pbm5lckhUTUw9dCxLdChuKSxvcigpLFZlKCksbik6bnVsbH1mdW5jdGlvbiB3aShlKXt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2hhdC1vdXRwdXQiKTtpZighdClyZXR1cm47dmFyIG49ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKEcpe3JldHVybiBHLmlkPT09ci5zZWxlY3RlZElkfSk7aWYoIW4pe3IubGFzdFJlbmRlcmVkRW1wdHkhPT0ibm9uZSImJihUbyh0LCc8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZSI+PHN0cm9uZz5cdTY3MkFcdTkwMDlcdTYyRTlcdTRGMUFcdThCREQ8L3N0cm9uZz48YnI+XHU3MEI5XHU1MUZCXHU0RTBBXHU2NUI5XHUzMDBDXHU2NUIwXHU1QkY5XHU4QkREXHUzMDBEXHU1RjAwXHU1OUNCXHU0RjYwXHU3Njg0XHU3QjJDXHU0RTAwXHU2QjIxXHU1QkY5XHU4QkREXHUzMDAyPC9kaXY+Jyksci5sYXN0UmVuZGVyZWRFbXB0eT0ibm9uZSIsci5sYXN0UmVuZGVyZWRNc2dDb3VudD0wKTtyZXR1cm59dmFyIGk9ci5jdXJyZW50TWVzc2FnZXMsYT1PdihpKTtpZihXYT1QdihpKSxpLmxlbmd0aD09PTApe2lmKHIubGFzdFJlbmRlcmVkRW1wdHkhPT0iZW1wdHkiKXt2YXIgdT0iIjt1ZShuKSYmKHU9JzxkaXYgY2xhc3M9ImVtcHR5LXN0YXRlLXRyaW8td3JhcCI+PGRpdiBjbGFzcz0iZW1wdHktc3RhdGUtdHJpby1oaW50Ij5cdTlFRDhcdThCQTRcdTRGMUFcdTYzMDlcdTRFRTVcdTRFMEJcdThCQkVcdTdGNkVcdTUzRDFcdTkwMDFcdUZGMENcdTUzRUZcdTcwQjlcdTUxRkJcdThDMDNcdTY1NzRcdUZGMUE8L2Rpdj4nK2lsKG4se2tpbmQ6ImRyb3Bkb3duIn0pKyI8L2Rpdj4iKSxUbyh0LCc8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZSI+PHN0cm9uZz5cdTVCRjlcdThCRERcdTVERjJcdTVGMDBcdTU5Q0I8L3N0cm9uZz48YnI+XHU1NzI4XHU0RTBCXHU2NUI5XHU4RjkzXHU1MTY1XHU2ODQ2XHU1M0QxXHU5MDAxXHU2RDg4XHU2MDZGXHVGRjBDQ2xhdWRlIFx1NEYxQVx1ODFFQVx1NTJBOFx1NTZERVx1NTkwRFx1MzAwMjwvZGl2PicrdSksci5sYXN0UmVuZGVyZWRFbXB0eT0iZW1wdHkiLHIubGFzdFJlbmRlcmVkTXNnQ291bnQ9MH1odShudWxsLG4pLFJhKFtdKTtyZXR1cm59dmFyIHM9aS5sZW5ndGg7cz5yLmNoYXRSZW5kZXJlZENvdW50JiYoci5jaGF0UmVuZGVyZWRDb3VudD1zKTt2YXIgbz1NYXRoLm1heCgwLHMtci5jaGF0UmVuZGVyZWRDb3VudCksbD1vPjA/aS5zbGljZShvKTppLGM9dHlwZW9mIG4ubWVzc2FnZU9mZnNldD09Im51bWJlciImJm4ubWVzc2FnZU9mZnNldD4wLGY9bz4wfHxjLGQ9bC5sZW5ndGgsdj1uLm91dHB1dD9uLm91dHB1dC5sZW5ndGg6MDtpZihuLm1lc3NhZ2VzJiZuLm1lc3NhZ2VzLmxlbmd0aD4wKXtmb3IodmFyIGg9MCxnPTAsbT0wO208bi5tZXNzYWdlcy5sZW5ndGg7bSsrKXt2YXIgeT1uLm1lc3NhZ2VzW21dLmNvbnRlbnQ7aWYoeSlpZihBcnJheS5pc0FycmF5KHkpKXtoKz15Lmxlbmd0aDtmb3IodmFyIHc9MDt3PHkubGVuZ3RoO3crKyl7dmFyIEU9eVt3XTtFLnRleHQmJihnKz1FLnRleHQubGVuZ3RoKSxFLnRoaW5raW5nJiYoZys9RS50aGlua2luZy5sZW5ndGgpLEUuY29udGVudCYmKGcrPUUuY29udGVudC5sZW5ndGgpLEUuaWQmJihnKz1FLmlkLmxlbmd0aCksRS50b29sX3VzZV9pZCYmKGcrPUUudG9vbF91c2VfaWQubGVuZ3RoKSxFLmRlc2NyaXB0aW9uJiYoZys9RS5kZXNjcmlwdGlvbi5sZW5ndGgpLEUuaW5wdXQmJihnKz1KU09OLnN0cmluZ2lmeShFLmlucHV0KS5sZW5ndGgpfX1lbHNlIGgrPTEsZz1TdHJpbmcoeSkubGVuZ3RofXY9ZCoxZTUraCoxZTMrZ312YXIgQj1lfHxkIT09ci5sYXN0UmVuZGVyZWRNc2dDb3VudDtpZighQiYmZD09PXIubGFzdFJlbmRlcmVkTXNnQ291bnQmJnY9PT1yLmxhc3RSZW5kZXJlZEhhc2gpe3ZhciBGPXQucXVlcnlTZWxlY3RvcigiLmNoYXQtbWVzc2FnZXMiKTtGJiZodShGLG4pLFJhKGkpO3JldHVybn12YXIgeD1yLmxhc3RSZW5kZXJlZEhhc2gsUz1yLmxhc3RSZW5kZXJlZE1zZ0NvdW50O2lmKHIubGFzdFJlbmRlcmVkTXNnQ291bnQ9ZCxyLmxhc3RSZW5kZXJlZEhhc2g9dixGPU5hKHQpLCFGKXJldHVybjt2YXIgXz1LaShGKSxWPSFyLmNoYXRJbml0aWFsUmVuZGVyRG9uZSxVPUYucXVlcnlTZWxlY3RvckFsbCgiLmNoYXQtbWVzc2FnZTpub3QoLnN5c3RlbS1pbmZvKSIpLmxlbmd0aCxJPUJ8fFU9PT0wfHxkIT09VTtmdW5jdGlvbiBEKCl7Zm9yKHZhciBHPW92KG4ub3V0cHV0LGwpLGVlPSIiLG9lPWwuc2xpY2UoKS5yZXZlcnNlKCksbGU9bC5sZW5ndGgsQmU9MDtCZTxvZS5sZW5ndGg7QmUrKyl7Zm9yKHZhciBXZT1vZVtCZV0sSnQ9bGUtMS1CZSxkdD1KdCtvLGZ0PW51bGwsX2U9MDtfZTxHLmxlbmd0aDtfZSsrKWlmKEdbX2VdLmJlZm9yZU1lc3NhZ2U9PT1KdCl7ZnQ9R1tfZV07YnJlYWt9ZnQmJihlZSs9JzxkaXYgY2xhc3M9ImNoYXQtbWVzc2FnZSBzeXN0ZW0taW5mbyI+PGRpdiBjbGFzcz0ic3lzdGVtLWluZm8tY2FyZCI+PGRpdiBjbGFzcz0ic3lzdGVtLWluZm8taGVhZGVyIj5cdTIxMzlcdUZFMEYgXHU3Q0ZCXHU3RURGXHU0RkUxXHU2MDZGPC9kaXY+PGRpdiBjbGFzcz0ic3lzdGVtLWluZm8tY29udGVudCI+JytwKGZ0LmNvbnRlbnQpKyI8L2Rpdj48L2Rpdj48L2Rpdj4iKSxlZSs9VWEoV2UsTFtkdF18fG51bGwsZHQsYSl9aWYoZil7dmFyIEd0PW8+MD8iXHU1MkEwXHU4RjdEXHU2NkY0XHU2NUU5XHU3Njg0ICIrTWF0aC5taW4oci5jaGF0UGFnZVNpemUsbykrIiBcdTY3NjFcdTZEODhcdTYwNkYiOiJcdTUyQTBcdThGN0RcdTY2RjRcdTY1RTlcdTc2ODRcdTZEODhcdTYwNkYiO2VlKz0nPGRpdiBjbGFzcz0iY2hhdC1sb2FkLW1vcmUiIGlkPSJjaGF0LWxvYWQtbW9yZS1zZW50aW5lbCI+PGJ1dHRvbiBjbGFzcz0iY2hhdC1sb2FkLW1vcmUtYnRuIiB0eXBlPSJidXR0b24iPicrR3QrIjwvYnV0dG9uPjwvZGl2PiJ9dmFyIEdlPS0xLHJ0PTA7aWYoVT4wJiYhXylmb3IodmFyIGtlPUYuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wLGdlPUYucXVlcnlTZWxlY3RvckFsbCgiLmNoYXQtbWVzc2FnZTpub3QoLnN5c3RlbS1pbmZvKSIpLGJlPTA7YmU8Z2UubGVuZ3RoO2JlKyspe3ZhciBDPWdlW2JlXS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtpZihDLmJvdHRvbT49a2Upe3ZhciBpdD1nZVtiZV0uZ2V0QXR0cmlidXRlKCJkYXRhLW1zZy1pbmRleCIpO2l0IT1udWxsJiYoR2U9cGFyc2VJbnQoaXQsMTApLHJ0PUMudG9wLWtlKTticmVha319aWYoRi5pbm5lckhUTUw9ZWUsKGZ1bmN0aW9uKCl7Zm9yKHZhciBwdD1GLnF1ZXJ5U2VsZWN0b3JBbGwoIi5jaGF0LW1lc3NhZ2U6bm90KC5zeXN0ZW0taW5mbykiKSx1dD1wdC5sZW5ndGgsRXQ9MDtFdDx1dDtFdCsrKXB0W0V0XS5zZXRBdHRyaWJ1dGUoImRhdGEtbXNnLWluZGV4IixTdHJpbmcobyt1dC0xLUV0KSl9KSgpLEt0KEYpLFM9PT0wJiYhci5jaGF0SW5pdGlhbFJlbmRlckRvbmUpRi5zY3JvbGxUb3A9MCxyLmNoYXRTdGlja1RvQm90dG9tPSEwLENuKHtyZW1vdmVEaXZpZGVyOiEwfSksci5jaGF0SW5pdGlhbFJlbmRlckRvbmU9ITA7ZWxzZSBpZihTPT09MCYmci5jaGF0U3RpY2tUb0JvdHRvbSlGLnNjcm9sbFRvcD0wO2Vsc2UgaWYoXylGLnNjcm9sbFRvcD0wO2Vsc2UgaWYoR2U+PTApe3ZhciB5dD1GLnF1ZXJ5U2VsZWN0b3IoJy5jaGF0LW1lc3NhZ2VbZGF0YS1tc2ctaW5kZXg9IicrR2UrJyJdJyk7aWYoeXQpe3ZhciBJdD1GLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCxDdD15dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxUdD1DdC50b3AtSXQtcnQ7TWF0aC5hYnMoVHQpPi41JiYoci5jaGF0SXNQcm9ncmFtbWF0aWNTY3JvbGw9ITAsRi5zY3JvbGxUb3ArPVR0LHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe3IuY2hhdElzUHJvZ3JhbW1hdGljU2Nyb2xsPSExfSkpfX1MbyhGKSxvcigpLCRpKEYpO3ZhciBZdD1GLnF1ZXJ5U2VsZWN0b3IoIi5jaGF0LW1lc3NhZ2U6bm90KC5zeXN0ZW0taW5mbykiKTtpZihZdCl7dmFyIGF0PVl0LnF1ZXJ5U2VsZWN0b3JBbGwoIi50b29sLXVzZS1jYXJkLCAuaW5saW5lLWRpZmZbZGF0YS1leHBhbmQta2V5XSIpO2lmKGF0Lmxlbmd0aD4wKXt2YXIgcWU9YXRbMF0semU9UG4ocWUpO1hlKHplKT09PW51bGwmJnFlLmNsYXNzTGlzdC5yZW1vdmUoImNvbGxhcHNlZCIpO2Zvcih2YXIgaGU9MTtoZTxhdC5sZW5ndGg7aGUrKyl7dmFyIGJ0PVBuKGF0W2hlXSk7aWYoWGUoYnQpPT09bnVsbCl7aWYoYXRbaGVdLmNsYXNzTGlzdC5jb250YWlucygiYXNrLXVzZXIiKSYmIWF0W2hlXS5jbGFzc0xpc3QuY29udGFpbnMoImFzay11c2VyLWFuc3dlcmVkIikpY29udGludWU7YXRbaGVdLmNsYXNzTGlzdC5hZGQoImNvbGxhcHNlZCIpfX19fXJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe0ppKEYpLFZlKCksWGwoKX0pfWZ1bmN0aW9uIE0oRyxlZSl7dmFyIG9lPUcucXVlcnlTZWxlY3RvckFsbCgiLnRvb2wtdXNlLWNhcmQsIC5pbmxpbmUtZGlmZltkYXRhLWV4cGFuZC1rZXldIik7b2UuZm9yRWFjaChmdW5jdGlvbihsZSl7dmFyIEJlPVBuKGxlKTtpZihYZShCZSk9PT1udWxsJiYhKGxlLmNsYXNzTGlzdC5jb250YWlucygiYXNrLXVzZXIiKSYmIWxlLmNsYXNzTGlzdC5jb250YWlucygiYXNrLXVzZXItYW5zd2VyZWQiKSkpe2lmKGVlKXtmb3IodmFyIFdlPTA7V2U8ZWUubGVuZ3RoO1dlKyspaWYoZWVbV2VdLmNvbnRhaW5zKGxlKSlyZXR1cm59bGUuY2xhc3NMaXN0LmFkZCgiY29sbGFwc2VkIil9fSl9dmFyIEw9e307aWYoKGZ1bmN0aW9uKCl7Zm9yKHZhciBHPXtpbnB1dFRva2VuczowLG91dHB1dFRva2VuczowLGNhY2hlUmVhZElucHV0VG9rZW5zOjAsdG90YWxDb3N0VXNkOjB9LGVlPS0xLG9lPTA7b2U8aS5sZW5ndGg7b2UrKyl7dmFyIGxlPWlbb2VdO2lmKGxlLnJvbGU9PT0idXNlciIpZWU+PTAmJihHLmlucHV0VG9rZW5zPjB8fEcub3V0cHV0VG9rZW5zPjB8fEcudG90YWxDb3N0VXNkPjApJiYoTFtlZV09e2lucHV0VG9rZW5zOkcuaW5wdXRUb2tlbnMsb3V0cHV0VG9rZW5zOkcub3V0cHV0VG9rZW5zLGNhY2hlUmVhZElucHV0VG9rZW5zOkcuY2FjaGVSZWFkSW5wdXRUb2tlbnMsdG90YWxDb3N0VXNkOkcudG90YWxDb3N0VXNkfSksRz17aW5wdXRUb2tlbnM6MCxvdXRwdXRUb2tlbnM6MCxjYWNoZVJlYWRJbnB1dFRva2VuczowLHRvdGFsQ29zdFVzZDowfSxlZT0tMTtlbHNlIGlmKGxlLnJvbGU9PT0iYXNzaXN0YW50IiYmbGUudXNhZ2Upe3ZhciBCZT1sZS51c2FnZTtHLmlucHV0VG9rZW5zKz1CZS5pbnB1dFRva2Vuc3x8MCxHLm91dHB1dFRva2Vucys9QmUub3V0cHV0VG9rZW5zfHwwLEcuY2FjaGVSZWFkSW5wdXRUb2tlbnMrPUJlLmNhY2hlUmVhZElucHV0VG9rZW5zfHwwLEcudG90YWxDb3N0VXNkKz1CZS50b3RhbENvc3RVc2R8fDAsZWU9b2V9ZWxzZSBsZS5yb2xlPT09ImFzc2lzdGFudCImJihlZT1vZSl9ZWU+PTAmJihHLmlucHV0VG9rZW5zPjB8fEcub3V0cHV0VG9rZW5zPjB8fEcudG90YWxDb3N0VXNkPjApJiYoTFtlZV09e2lucHV0VG9rZW5zOkcuaW5wdXRUb2tlbnMsb3V0cHV0VG9rZW5zOkcub3V0cHV0VG9rZW5zLGNhY2hlUmVhZElucHV0VG9rZW5zOkcuY2FjaGVSZWFkSW5wdXRUb2tlbnMsdG90YWxDb3N0VXNkOkcudG90YWxDb3N0VXNkfSl9KSgpLEkpRCgpO2Vsc2UgaWYoZD5VKXt2YXIgVz1sLnNsaWNlKFUpO1cucmV2ZXJzZSgpO2Zvcih2YXIgSz1kb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCksWD1bXSxuZT1bXSxzZT1vK1UscmU9MDtyZTxXLmxlbmd0aDtyZSsrKXt2YXIgVD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxxPW8rVSsoVy5sZW5ndGgtMS1yZSk7VC5pbm5lckhUTUw9VWEoV1tyZV0sTFtxXXx8bnVsbCxxLGEpO3ZhciBOPVQuZmlyc3RFbGVtZW50Q2hpbGQ7TiYmKE4uY2xhc3NMaXN0LmFkZCgiYW5pbWF0ZS1pbiIpLE4uc2V0QXR0cmlidXRlKCJkYXRhLW1zZy1pbmRleCIsU3RyaW5nKHEpKSxYLnB1c2goTiksbmUucHVzaChxKSxLLmFwcGVuZENoaWxkKE4pKX1GLmluc2VydEJlZm9yZShLLEYuZmlyc3RDaGlsZCksb3IoKSxMbyhGKSwkaShGKSxNKEYsWCksXz9yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXtGLmlzQ29ubmVjdGVkJiZNYXRoLmFicyhGLnNjcm9sbFRvcCk+MSYmKHIuY2hhdElzUHJvZ3JhbW1hdGljU2Nyb2xsPSEwLEYuc2Nyb2xsVG9wPTAscmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7ci5jaGF0SXNQcm9ncmFtbWF0aWNTY3JvbGw9ITF9KSksQ24oe3JlbW92ZURpdmlkZXI6ITB9KSxWZSgpfSk6KHIuY2hhdFVucmVhZFN0YXJ0SW5kZXg8MCYmKHIuY2hhdFVucmVhZFN0YXJ0SW5kZXg9c2UpLHIuY2hhdFVucmVhZENvdW50Kz1YLmxlbmd0aCxKaShGKSxWZSgpKX1lbHNlIGlmKGQ9PT1VJiZ2IT09eCl7Zm9yKHZhciBZPUFycmF5LmZyb20oRi5xdWVyeVNlbGVjdG9yQWxsKCIuY2hhdC1tZXNzYWdlOm5vdCguc3lzdGVtLWluZm8pIikpLEo9bC5zbGljZSgpLnJldmVyc2UoKSxpZT0hMSxkZT1NYXRoLm1pbig0LEoubGVuZ3RoLFkubGVuZ3RoKSx0ZT0wO3RlPGRlO3RlKyspe3ZhciBhZT1ZW3RlXSxIZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxEZT1vK0oubGVuZ3RoLTEtdGU7SGUuaW5uZXJIVE1MPVVhKEpbdGVdLExbRGVdfHxudWxsLERlLGEpO3ZhciBwZT1IZS5maXJzdEVsZW1lbnRDaGlsZDtpZihwZSl7aWYoYWUuaW5uZXJIVE1MIT09cGUuaW5uZXJIVE1MfHxhZS5jbGFzc05hbWUhPT1wZS5jbGFzc05hbWUpRi5yZXBsYWNlQ2hpbGQocGUsYWUpLGR2KHBlKSxpZT0hMDtlbHNlIGlmKHRlPjApYnJlYWt9fWlmKCFpZSYmSi5sZW5ndGg+ZGUmJkQoKSxpZSl7b3IoKSwkaShGKSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXtfJiZGLmlzQ29ubmVjdGVkJiZNYXRoLmFicyhGLnNjcm9sbFRvcCk+MSYmKHIuY2hhdElzUHJvZ3JhbW1hdGljU2Nyb2xsPSEwLEYuc2Nyb2xsVG9wPTAscmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7ci5jaGF0SXNQcm9ncmFtbWF0aWNTY3JvbGw9ITF9KSksSmkoRiksVmUoKX0pO3ZhciBQPUYucXVlcnlTZWxlY3RvcigiLmNoYXQtbWVzc2FnZSIpLEplPUYucXVlcnlTZWxlY3RvckFsbCgiLnRvb2wtdXNlLWNhcmQsIC5pbmxpbmUtZGlmZltkYXRhLWV4cGFuZC1rZXldIiksY3Q9bnVsbDtKZS5mb3JFYWNoKGZ1bmN0aW9uKEcpe3ZhciBlZT1QbihHKTtYZShlZSk9PT1udWxsJiYoRy5jbGFzc0xpc3QuY29udGFpbnMoImFzay11c2VyIikmJiFHLmNsYXNzTGlzdC5jb250YWlucygiYXNrLXVzZXItYW5zd2VyZWQiKXx8KFAmJlAuY29udGFpbnMoRyk/Y3Q/Ry5jbGFzc0xpc3QuYWRkKCJjb2xsYXBzZWQiKTpjdD1HOkcuY2xhc3NMaXN0LmFkZCgiY29sbGFwc2VkIikpKX0pfX1lbHNlIGQ8VSYmRCgpO2RmKEYpLHF2KEYpLFN2KHQsRixpLFYpLGh1KEYsbiksUmEoaSl9dmFyIGphPSExO2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihlKXt2YXIgdD1lLnRhcmdldDtpZighKCF0fHwhKHQgaW5zdGFuY2VvZiBFbGVtZW50KSkpe3ZhciBuPXQuY2xvc2VzdCgiI3RvZG8tcHJvZ3Jlc3MtdG9nZ2xlIik7aWYobil7ZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcFByb3BhZ2F0aW9uKCksamE9IWphO3ZhciBpPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b2RvLXByb2dyZXNzIiksYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9kby1wcm9ncmVzcy1ib2R5Iik7aSYmYSYmKGphPyhpLmNsYXNzTGlzdC5hZGQoImV4cGFuZGVkIiksYS5jbGFzc0xpc3QuYWRkKCJleHBhbmRlZCIpKTooaS5jbGFzc0xpc3QucmVtb3ZlKCJleHBhbmRlZCIpLGEuY2xhc3NMaXN0LnJlbW92ZSgiZXhwYW5kZWQiKSkpLENpKCl9fX0pO2Z1bmN0aW9uIENpKCl7dmFyIGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2NoYXQtb3V0cHV0IC5jaGF0LW1lc3NhZ2VzIiksdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9kby1wcm9ncmVzcy1ib2R5Iik7aWYoISghZXx8IXQpKXt2YXIgbj1lLGk9IXQuY2xhc3NMaXN0LmNvbnRhaW5zKCJoaWRkZW4iKSxhPXQuY2xhc3NMaXN0LmNvbnRhaW5zKCJleHBhbmRlZCIpLHU9dC5vZmZzZXRIZWlnaHQ7aSYmYSYmdT4wP24uc3R5bGUucGFkZGluZ0JvdHRvbT11KzgrInB4IjpuLnN0eWxlLnBhZGRpbmdCb3R0b209IiJ9fWZ1bmN0aW9uIGx2KGUpe2lmKHR5cGVvZiBlPT0ic3RyaW5nIilyZXR1cm4gZTtpZihBcnJheS5pc0FycmF5KGUpKXtmb3IodmFyIHQ9W10sbj0wO248ZS5sZW5ndGg7bisrKXt2YXIgaT1lW25dO3R5cGVvZiBpPT0ic3RyaW5nIj90LnB1c2goaSk6aSYmdHlwZW9mIGkudGV4dD09InN0cmluZyImJnQucHVzaChpLnRleHQpfXJldHVybiB0LmpvaW4oIiIpfXJldHVybiIifWZ1bmN0aW9uIGN2KGUsdCl7Zm9yKHZhciBuPXt9LGk9dDtpPGUubGVuZ3RoO2krKyl7dmFyIGE9ZVtpXTtpZighKCFhfHwhQXJyYXkuaXNBcnJheShhLmNvbnRlbnQpKSlmb3IodmFyIHU9MDt1PGEuY29udGVudC5sZW5ndGg7dSsrKXt2YXIgcz1hLmNvbnRlbnRbdV07cyYmcy50eXBlPT09InRvb2xfcmVzdWx0IiYmcy50b29sX3VzZV9pZCYmKG5bcy50b29sX3VzZV9pZF09bHYocy5jb250ZW50KSl9fWZvcih2YXIgbz17fSxsPTAsYz0wLGY9ITEsZD10O2Q8ZS5sZW5ndGg7ZCsrKXt2YXIgdj1lW2RdO2lmKCEoIXZ8fCFBcnJheS5pc0FycmF5KHYuY29udGVudCkpKWZvcih2YXIgaD0wO2g8di5jb250ZW50Lmxlbmd0aDtoKyspe3ZhciBnPXYuY29udGVudFtoXTtpZighKCFnfHxnLnR5cGUhPT0idG9vbF91c2UiKSl7dmFyIG09Zy5pbnB1dHx8e307aWYoZy5uYW1lPT09IlRhc2tDcmVhdGUiKXtmPSEwLGMrKzt2YXIgeT1uW2cuaWRdfHwiIix3PXkubWF0Y2goLyMoXGQrKS8pLEU9dz93WzFdOlN0cmluZyhjKTtvW0VdPXtpZDpFLGNvbnRlbnQ6bS5zdWJqZWN0fHwiIixhY3RpdmVGb3JtOm0uYWN0aXZlRm9ybXx8IiIsc3RhdHVzOiJwZW5kaW5nIixvcmRlcjpsKyt9fWVsc2UgaWYoZy5uYW1lPT09IlRhc2tVcGRhdGUiKXtmPSEwO3ZhciBCPVN0cmluZyhtLnRhc2tJZCksRj1vW0JdO0Z8fChGPXtpZDpCLGNvbnRlbnQ6IiIsYWN0aXZlRm9ybToiIixzdGF0dXM6InBlbmRpbmciLG9yZGVyOmwrK30sb1tCXT1GKSxtLnN0YXR1cyYmKEYuc3RhdHVzPW0uc3RhdHVzKSxtLnN1YmplY3QmJihGLmNvbnRlbnQ9bS5zdWJqZWN0KSxtLmFjdGl2ZUZvcm0mJihGLmFjdGl2ZUZvcm09bS5hY3RpdmVGb3JtKX19fX1pZighZilyZXR1cm4gbnVsbDt2YXIgeD1bXTtmb3IodmFyIFMgaW4gbylPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobyxTKSYmb1tTXS5zdGF0dXMhPT0iZGVsZXRlZCImJngucHVzaChvW1NdKTtyZXR1cm4geC5zb3J0KGZ1bmN0aW9uKF8sVil7cmV0dXJuIF8ub3JkZXItVi5vcmRlcn0pLHgubGVuZ3RoP3g6bnVsbH1mdW5jdGlvbiBSYShlKXtmb3IodmFyIHQ9MCxuPWUubGVuZ3RoLTE7bj49MDtuLS0paWYoZVtuXSYmZVtuXS5yb2xlPT09InVzZXIiKXt0PW4rMTticmVha31mb3IodmFyIGk9bnVsbCxhPWUubGVuZ3RoLTE7YT49dDthLS0pe3ZhciB1PWVbYV07aWYoISghdS5jb250ZW50fHwhQXJyYXkuaXNBcnJheSh1LmNvbnRlbnQpKSl7Zm9yKHZhciBzPXUuY29udGVudC5sZW5ndGgtMTtzPj0wO3MtLSl7dmFyIG89dS5jb250ZW50W3NdO2lmKG8udHlwZT09PSJ0b29sX3VzZSImJm8ubmFtZT09PSJUb2RvV3JpdGUiJiZvLmlucHV0JiZvLmlucHV0LnRvZG9zKXtpPW8uaW5wdXQudG9kb3M7YnJlYWt9fWlmKGkpYnJlYWt9fWl8fChpPWN2KGUsdCkpO3ZhciBsPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b2RvLXByb2dyZXNzIiksYz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9kby1wcm9ncmVzcy1ib2R5Iik7aWYobCl7aWYoIWl8fGkubGVuZ3RoPT09MCl7bC5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSxjJiZjLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLENpKCk7cmV0dXJufWZvcih2YXIgZj0wLGQ9MCx2PSIiLGg9MDtoPGkubGVuZ3RoO2grKylpW2hdLnN0YXR1cz09PSJjb21wbGV0ZWQiJiZmKyssaVtoXS5zdGF0dXM9PT0iaW5fcHJvZ3Jlc3MiJiYoZCsrLHZ8fCh2PWlbaF0uYWN0aXZlRm9ybXx8aVtoXS5jb250ZW50fHwiIikpO3ZhciBnPWY9PT1pLmxlbmd0aCxtPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihLKXtyZXR1cm4gSy5pZD09PXIuc2VsZWN0ZWRJZH0pLHk9ISFtJiZtLnN0YXR1cz09PSJydW5uaW5nIjtpZigheXx8Zyl7bC5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSxjJiZjLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLENpKCk7cmV0dXJufWwuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksbC5jbGFzc0xpc3QucmVtb3ZlKCJhbGwtZG9uZSIpLGMmJmMuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIik7dmFyIHc9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvZG8tcHJvZ3Jlc3MtY291bnRlciIpO3cmJih3LnRleHRDb250ZW50PWYrIi8iK2kubGVuZ3RoKTt2YXIgRT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9kby1wcm9ncmVzcy10YXNrIik7aWYoRSl7aWYoIXYpe2Zvcih2YXIgQj0wO0I8aS5sZW5ndGg7QisrKWlmKGlbQl0uc3RhdHVzPT09InBlbmRpbmciJiYoaVtCXS5hY3RpdmVGb3JtfHxpW0JdLmNvbnRlbnQpKXt2PWlbQl0uYWN0aXZlRm9ybXx8aVtCXS5jb250ZW50O2JyZWFrfX1FLnRleHRDb250ZW50PXZ8fCJcdTUxQzZcdTU5MDdcdTRFMkRcdTIwMjYifXZhciBGPWkubGVuZ3RoPjA/Zi9pLmxlbmd0aDowLHg9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvZG8tcHJvZ3Jlc3MtcmluZyIpO3gmJnguc3R5bGUuc2V0UHJvcGVydHkoIi0tcHJvZ3Jlc3MiLEYudG9GaXhlZCgzKSk7dmFyIFM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvZG8tcHJvZ3Jlc3MtZmlsbCIpO1MmJlMuc3R5bGUuc2V0UHJvcGVydHkoIi0tcHJvZ3Jlc3MiLEYudG9GaXhlZCgzKSk7dmFyIF89ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvZG8tcHJvZ3Jlc3MtbGlzdCIpO2lmKF8pe2Zvcih2YXIgVj0iIixVPTA7VTxpLmxlbmd0aDtVKyspe3ZhciBJPWlbVV0sRD1JLnN0YXR1c3x8InBlbmRpbmciLE09RD09PSJpbl9wcm9ncmVzcyI/ImFjdGl2ZSI6RD09PSJjb21wbGV0ZWQiPyJkb25lIjoiIixMPUQ9PT0iaW5fcHJvZ3Jlc3MiPyJhY3RpdmUiOkQ9PT0iY29tcGxldGVkIj8iZG9uZSI6InBlbmRpbmciLFc9RD09PSJjb21wbGV0ZWQiPyJcdTI3MTMiOkQ9PT0iaW5fcHJvZ3Jlc3MiPyJcdTIwM0EiOiJcdTI1Q0IiO1YrPSc8bGkgY2xhc3M9InRvZG8tcHJvZ3Jlc3MtaXRlbSAnK00rJyI+PHNwYW4gY2xhc3M9InRvZG8taXRlbS1pY29uICcrTCsnIj4nK1crIjwvc3Bhbj48c3Bhbj4iK3AoSS5jb250ZW50fHwiIikrIjwvc3Bhbj48L2xpPiJ9Xy5pbm5lckhUTUw9Vn1yLnNlbGVjdGVkSWQmJndhKHIuc2VsZWN0ZWRJZCksQ2koKX19ZnVuY3Rpb24gZHYoZSl7ZS5xdWVyeVNlbGVjdG9yQWxsKCIuY29kZS1jb3B5IikuZm9yRWFjaChmdW5jdGlvbih0KXt0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe3ZhciBuPXQuY2xvc2VzdCgiLmNvZGUtYmxvY2siKSxpPW4/bi5xdWVyeVNlbGVjdG9yKCJjb2RlIik6bnVsbDtpJiZfcihpLnRleHRDb250ZW50fHwiIixudWxsLGZ1bmN0aW9uKCl7dC50ZXh0Q29udGVudD0iQ29waWVkISIsdC5jbGFzc0xpc3QuYWRkKCJjb3BpZWQiKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dC50ZXh0Q29udGVudD0iQ29weSIsdC5jbGFzc0xpc3QucmVtb3ZlKCJjb3BpZWQiKX0sMmUzKX0pfSl9KX1mdW5jdGlvbiBMbyhlKXtlLnF1ZXJ5U2VsZWN0b3JBbGwoIi5jb2RlLWNvcHkiKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciBuPXQuY2xvbmVOb2RlKCEwKTt0LnBhcmVudE5vZGUucmVwbGFjZUNoaWxkKG4sdCksbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXt2YXIgaT1uLmNsb3Nlc3QoIi5jb2RlLWJsb2NrIiksYT1pP2kucXVlcnlTZWxlY3RvcigiY29kZSIpOm51bGw7YSYmX3IoYS50ZXh0Q29udGVudHx8IiIsbnVsbCxmdW5jdGlvbigpe24udGV4dENvbnRlbnQ9IkNvcGllZCEiLG4uY2xhc3NMaXN0LmFkZCgiY29waWVkIiksc2V0VGltZW91dChmdW5jdGlvbigpe24udGV4dENvbnRlbnQ9IkNvcHkiLG4uY2xhc3NMaXN0LnJlbW92ZSgiY29waWVkIil9LDJlMyl9KX0pfSksZnYoZSl9dmFyIEtnPXt0aW1lcjpudWxsLGFjdGl2ZUJ0bjpudWxsfTtmdW5jdGlvbiBmdihlKXt2YXIgdD13aW5kb3cubWF0Y2hNZWRpYSgiKHBvaW50ZXI6IGNvYXJzZSkiKS5tYXRjaGVzO3QmJmUucXVlcnlTZWxlY3RvckFsbCgiLmNoYXQtbWVzc2FnZSIpLmZvckVhY2goZnVuY3Rpb24obil7aWYoIW4ucXVlcnlTZWxlY3RvcigiLm1zZy1jb3B5LWJ0biIpKXt2YXIgaT1uLnF1ZXJ5U2VsZWN0b3IoIi5jaGF0LW1lc3NhZ2UtYnViYmxlIik7aWYoaSl7dmFyIGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYnV0dG9uIik7YS5jbGFzc05hbWU9Im1zZy1jb3B5LWJ0biIsYS50ZXh0Q29udGVudD0iXHU1OTBEXHU1MjM2IixhLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbih1KXt1LnN0b3BQcm9wYWdhdGlvbigpO3ZhciBzPWkuaW5uZXJUZXh0fHxpLnRleHRDb250ZW50fHwiIjtfcihzLnRyaW0oKSxudWxsLGZ1bmN0aW9uKCl7YS50ZXh0Q29udGVudD0iXHU1REYyXHU1OTBEXHU1MjM2IixhLmNsYXNzTGlzdC5hZGQoImNvcGllZCIpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXthLnRleHRDb250ZW50PSJcdTU5MERcdTUyMzYiLGEuY2xhc3NMaXN0LnJlbW92ZSgiY29waWVkIiksYS5jbGFzc0xpc3QucmVtb3ZlKCJ2aXNpYmxlIil9LDE1MDApfSl9KSxuLmFwcGVuZENoaWxkKGEpfX19KX0oZnVuY3Rpb24oKXt2YXIgdD13aW5kb3cubWF0Y2hNZWRpYSgiKHBvaW50ZXI6IGNvYXJzZSkiKS5tYXRjaGVzO2lmKHQpe3ZhciBuPW51bGwsaT0wO2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLGZ1bmN0aW9uKGEpe3ZhciB1PWEudGFyZ2V0LmNsb3Nlc3QoIi5jaGF0LW1lc3NhZ2UiKTtpZih1KXt2YXIgcz11LnF1ZXJ5U2VsZWN0b3IoIi5jaGF0LW1lc3NhZ2UtYnViYmxlIik7cyYmKGk9YS50b3VjaGVzWzBdLmNsaWVudFksbj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIG89dS5xdWVyeVNlbGVjdG9yKCIubXNnLWNvcHktYnRuIik7byYmKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5tc2ctY29weS1idG4udmlzaWJsZSIpLmZvckVhY2goZnVuY3Rpb24obCl7bC5jbGFzc0xpc3QucmVtb3ZlKCJ2aXNpYmxlIil9KSxvLmNsYXNzTGlzdC5hZGQoInZpc2libGUiKSl9LDUwMCkpfX0se3Bhc3NpdmU6ITB9KSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLGZ1bmN0aW9uKGEpe24mJk1hdGguYWJzKGEudG91Y2hlc1swXS5jbGllbnRZLWkpPjEwJiYoY2xlYXJUaW1lb3V0KG4pLG49bnVsbCl9LHtwYXNzaXZlOiEwfSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLGZ1bmN0aW9uKCl7biYmKGNsZWFyVGltZW91dChuKSxuPW51bGwpfSx7cGFzc2l2ZTohMH0pLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihhKXthLnRhcmdldC5jbG9zZXN0KCIubXNnLWNvcHktYnRuIil8fGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5tc2ctY29weS1idG4udmlzaWJsZSIpLmZvckVhY2goZnVuY3Rpb24odSl7dS5jbGFzc0xpc3QucmVtb3ZlKCJ2aXNpYmxlIil9KX0pfX0pKCk7ZnVuY3Rpb24gcHYoZSl7aWYoIWUpcmV0dXJuITE7dmFyIHQ9U3RyaW5nKGUpLnRyaW0oKTtyZXR1cm4gdD8hISh0LmluZGV4T2YoIlx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMCIpPT09MHx8dD09PSJcdTI3NkYifHx0PT09Ilx1MjAzQSJ8fC9eW+KVreKVsOKUguKUjOKUlOKUkOKUmOKUnOKUpOKUrOKUtOKUvOKUgOKVkF17Mix9JC8udGVzdCh0KXx8L15b4paB4paC4paD4paE4paF4paG4paH4paI4paU4paV4paP4paQXSskLy50ZXN0KHQpfHx0LmluZGV4T2YoImVzYyB0byBpbnRlcnJ1cHQiKSE9PS0xfHx0LmluZGV4T2YoIkNsYXVkZSBDb2RlIHYiKSE9PS0xfHwvXlNvbm5ldFxiLy50ZXN0KHQpfHx0LmluZGV4T2YoIkZhaWxlZCB0byBpbnN0YWxsIEFudGhyb3BpYyIpIT09LTF8fHQuaW5kZXhPZigiQ2xhdWRlIENvZGUgaGFzIHN3aXRjaGVkIikhPT0tMXx8dC5pbmRleE9mKCI/IGZvciBzaG9ydGN1dHMiKSE9PS0xfHx0LmluZGV4T2YoIkNsYXVkZSBpcyB3YWl0aW5nIikhPT0tMXx8dC5pbmRleE9mKCJbd2FuZF0iKSE9PS0xfHx0LmluZGV4T2YoIjA7Iik9PT0wfHx0LmluZGV4T2YoIjk7Iik9PT0wfHx0LmluZGV4T2YoImN0cmwrZyIpIT09LTF8fHQuaW5kZXhPZigiL2VmZm9ydCIpIT09LTF8fC9eVXNpbmcgLiogZm9yIC4qIHNlc3Npb24vLnRlc3QodCl8fHQuaW5kZXhPZigiUHJlc3MgIik9PT0wJiZ0LmluZGV4T2YoIiBmb3IiKSE9PS0xfHx0LmluZGV4T2YoInR5cGUgIik9PT0wJiZ0LmluZGV4T2YoIiB0byAiKSE9PS0xfHx0LmluZGV4T2YoImF1dG8gbW9kZSBpcyB1bmF2YWlsYWJsZSIpIT09LTF8fC9NQ1Agc2VydmVyLipmYWlsZWQvaS50ZXN0KHQpfHx0LmluZGV4T2YoIkdlcm1pbmF0aW5nIikhPT0tMXx8dC5pbmRleE9mKCJEb29kbGluZyIpIT09LTF8fHQuaW5kZXhPZigiQnJld2luZyIpIT09LTF8fHQuaW5kZXhPZigiUGVybWlzc2lvbnMiKSE9PS0xJiZ0LmluZGV4T2YoIm1vZGUiKSE9PS0xfHx0LmluZGV4T2YoIlx1MjVDRiIpPT09MCYmdC5pbmRleE9mKCJceEI3IikhPT0tMXx8dC5pbmRleE9mKCJbPiIpPT09MHx8dC5pbmRleE9mKCJbPCIpPT09MHx8dC5pbmRleE9mKCJDYXB0dXJlZCBDbGF1ZGUgc2Vzc2lvbiBJRCIpIT09LTF8fC9ePl9ccypPcGVuQUkgQ29kZXhcYi8udGVzdCh0KXx8L15PcGVuQUkgQ29kZXhcYi9pLnRlc3QodCl8fC9eKG1vZGVsfGRpcmVjdG9yeSk6XHMrL2kudGVzdCh0KXx8L14odGlwfGNvbnRleHQpOlxzKy9pLnRlc3QodCl8fC9ed29yayh0cmVlfHNwYWNlKTpccysvaS50ZXN0KHQpfHwvXihhcHByb3ZhbHM/fHNhbmRib3h8cHJvdmlkZXJ8c2Vzc2lvbiBpZCk6XHMrL2kudGVzdCh0KXx8L14odGhpbmtpbmd8d29ya2luZykoXC5cLlwufOKApik/JC9pLnRlc3QodCl8fC9eW+KAouKXpsK3XVxzK1dvcmtpbmdcYi9pLnRlc3QodCl8fC9eW+KAouKXpsK3XVxzKyhSdW5uaW5nfFBsYW5uaW5nfEFwcGx5aW5nfFJlYWRpbmd8U2VhcmNoaW5nKVxiL2kudGVzdCh0KXx8L15b4oCi4pemwrddXHMrKEluc3BlY3Rpbmd8UmV2aWV3aW5nfFN1bW1hcml6aW5nfEVkaXRpbmd8VXBkYXRpbmd8V3JpdGluZylcYi9pLnRlc3QodCl8fC9eW+KAouKXpsK3XVxzK0NvbXBsZXRlZFxiL2kudGVzdCh0KXx8L14oY3RybHxlbnRlcnx0YWJ8c2hpZnR8ZXNjfGFsdClcKy9pLnRlc3QodCl8fC9cYihvcGVufGNsb3NlfHRvZ2dsZSkgKGNoYXR8dGVybWluYWwpXGIvaS50ZXN0KHQpfHwvXGIoYXBwcm92ZXxkZW55KVxiLipcYihwZXJtaXNzaW9ufGFwcHJvdmFsKVxiL2kudGVzdCh0KXx8L14odXNlfHByZXNzKSAuKiAodG98Zm9yKSAuKi9pLnRlc3QodCl8fC9eKD86dG9rZW58Y29udGV4dCB3aW5kb3d8cmVtYWluaW5nIGNvbnRleHR8Y29udmVyc2F0aW9uKTpccysvaS50ZXN0KHQpfHwvXig/OmN3ZHxwYXRoKTpccytcLy9pLnRlc3QodCl8fC9eWzw+4pSC4pSG4pWOXS4qWzw+4pSC4pSG4pWOXSQvLnRlc3QodCkmJnQubGVuZ3RoPDgpOiExfWZ1bmN0aW9uIHZ2KGUpe3JldHVybiBTdHJpbmcoZXx8IiIpLnJlcGxhY2UoL1x4MWJcXVteXHgwN10qKFx4MDd8XHgxYlxcKS9nLCIiKS5yZXBsYWNlKC9ceDFiXFsoXGQrKUMvZyxmdW5jdGlvbih0LG4pe3JldHVybiIgIi5yZXBlYXQoTnVtYmVyKG4pfHwxKX0pLnJlcGxhY2UoL1x4MWJcW1swLTk7P10qW0FCXS9nLGAKYCkucmVwbGFjZSgvXHgxYlxbWzAtOTs/XSpbc3VdL2csIiIpLnJlcGxhY2UoL1x4MWJcW1swLTk7P10qW0hmSktyXS9nLGAKYCkucmVwbGFjZSgvXHgxYk0vZyxgCmApLnJlcGxhY2UoL1x4MWJcW1swLTk7P10qW1NUXS9nLGAKYCkucmVwbGFjZSgvXHgxYlxbWzAtOTs/XSpbYS16QS1aXS9nLCIiKS5yZXBsYWNlKC9ceDFiWz48PWVQWF5fXS9nLCIiKS5yZXBsYWNlKC9bXHUwMGEwXHUyMDBiLVx1MjAwZFx1ZmVmZl0vZywiICIpLnJlcGxhY2UoL1tceDAwLVx4MDhceDBiXHgwY1x4MGUtXHgxZl0vZywiIikucmVwbGFjZSgvXHJcbj8vZyxgCmApLnJlcGxhY2UoL1sgXHRdK1xuL2csYApgKS5yZXBsYWNlKC9cbnszLH0vZyxgCgpgKX1mdW5jdGlvbiBtdihlLHQpe3ZhciBuPVtdO2lmKCFlKXJldHVybiBuO3ZhciBpPVN0cmluZyhlfHwiIiksYT1gCmAsdT0iXHIiLHM9Ilx4MUIiO2lmKC9eY29kZXhcYi8udGVzdChTdHJpbmcodHx8IiIpLnRyaW0oKSkpe2xldCBmZT1mdW5jdGlvbihIKXtyZXR1cm4gU3RyaW5nKEh8fCIiKS5yZXBsYWNlKC9ceDFiXF1bXlx4MDddKihceDA3fFx4MWJcXCkvZywiIikucmVwbGFjZSgvXHgxYlxbKFxkKylDL2csZnVuY3Rpb24oaixRKXtyZXR1cm4iICIucmVwZWF0KE51bWJlcihRKXx8MSl9KS5yZXBsYWNlKC9ceDFiXFtbMC05Oz9dKltBQl0vZyxhKS5yZXBsYWNlKC9ceDFiXFtbMC05Oz9dKltzdV0vZywiIikucmVwbGFjZSgvXHgxYlxbWzAtOTs/XSpbSGZKS3JdL2csYSkucmVwbGFjZSgvXHgxYk0vZyxhKS5yZXBsYWNlKC9ceDFiXFtbMC05Oz9dKltTVF0vZyxhKS5yZXBsYWNlKC9ceDFiXFtbMC05Oz9dKlthLXpBLVpdL2csIiIpLnJlcGxhY2UoL1x4MWJbPjw9ZVBYXl9dL2csIiIpLnJlcGxhY2UoL1tcdTAwYTBcdTIwMGItXHUyMDBkXHVmZWZmXS9nLCIgIikucmVwbGFjZSgvW1x4MDAtXHgwOFx4MGJceDBjXHgwZS1ceDFmXS9nLCIiKS5yZXBsYWNlKC9bIFx0XStcbi9nLGEpfSx2dD1mdW5jdGlvbihIKXtyZXR1cm4gU3RyaW5nKEh8fCIiKS5yZXBsYWNlKC9ccysvZywiICIpLnJlcGxhY2UoL1tNXSskL2csIiIpLnRyaW0oKX0sWj1mdW5jdGlvbihIKXtyZXR1cm4gU3RyaW5nKEh8fCIiKS5yZXBsYWNlKC9e4oC6XHMqLywiIikucmVwbGFjZSgvXj5ccyovLCIiKS50cmltKCl9LEllPWZ1bmN0aW9uKEgpe3ZhciBqPVN0cmluZyhIfHwiIikudHJpbSgpO3JldHVybiEhKCFqfHxwdihqKXx8RS50ZXN0KGopfHwvXlvila3ilbDilILilIzilJTilJDilJjilJzilKTilKzilLTilLzilIDilZBdLy50ZXN0KGopfHwvXlxbPlswLTk7P10qdSQvaS50ZXN0KGopfHwvXk0rJC9pLnRlc3Qoail8fC9eKD86T3BlbkFJIENvZGV4fENvZGV4KVxiL2kudGVzdChqKXx8L14oPzp0b2tlbnM/fGNvbnRleHQgd2luZG93fHJlbWFpbmluZyBjb250ZXh0fGFwcHJvdmFscz98c2FuZGJveHxwcm92aWRlcnxzZXNzaW9uIGlkKTpccyovaS50ZXN0KGopfHwvXig/OnRoaW5raW5nfHdvcmtpbmcpXHMqKD86XC5cLlwufOKApik/JC9pLnRlc3Qoail8fC9eW+KAouKXpsK3XVxzKyg/OnRoaW5raW5nfHdvcmtpbmd8cnVubmluZ3xwbGFubmluZ3xhcHBseWluZ3xyZWFkaW5nfHNlYXJjaGluZ3xpbnNwZWN0aW5nfHJldmlld2luZ3xzdW1tYXJpemluZ3xlZGl0aW5nfHVwZGF0aW5nfHdyaXRpbmd8Y29tcGxldGVkKVxiL2kudGVzdChqKXx8L14oPzptb2RlbHxkaXJlY3Rvcnl8dGlwfGNvbnRleHR8Y3dkfHBhdGgpOlxzKy9pLnRlc3QoaikpfSxUZT1mdW5jdGlvbihIKXt2YXIgaj1TdHJpbmcoSHx8IiIpLnRyaW0oKTtpZighL17igLooPzpcc3wkKS8udGVzdChqKXx8RS50ZXN0KGopKXJldHVybiBudWxsO3ZhciBRPXZ0KFooaikpO3JldHVybiFRfHxJZShRKT9udWxsOlF9LFllPWZ1bmN0aW9uKEgpe3ZhciBqPVN0cmluZyhIfHwiIikudHJpbSgpO2lmKCEvXlvigKLil6bCt+KPul0vLnRlc3QoaikpcmV0dXJuIG51bGw7dmFyIFE9ai5yZXBsYWNlKC9eW+KAouKXpsK3XVxzKi8sIiIpLnJlcGxhY2UoL17ij7pccysvLCIiKS5yZXBsYWNlKC9e4pSCXHMqLywiIikudHJpbSgpO3JldHVybiFRfHwvXlvigKLil6bCt+KPul0kLy50ZXN0KFEpfHwoUT1RLnJlcGxhY2UoL1xzKlwoXGQrW3NtaF0/XHMq4oCiXHMqZXNjIHRvIGludGVycnVwdFwpW1xzXFNdKiQvaSwiIikucmVwbGFjZSgvKD86W2Etel17MSw2fSk/4oC6W1xzXFNdKiQvLCIiKS5yZXBsYWNlKC9cc3syLH1ncHQtXGRbXHNcU10qJC9pLCIiKS5yZXBsYWNlKC9cYig/Ok9wZW5BSSBDb2RleHxtb2RlbDp8ZGlyZWN0b3J5OnxUaXA6KVxiW1xzXFNdKiQvaSwiIiksUT12dChRKSwhUXx8US5sZW5ndGg8Mnx8Qi50ZXN0KFEpfHxJZShRKSk/bnVsbDpRfSxRZT1mdW5jdGlvbihIKXt2YXIgaj12dChIKTtyZXR1cm4hanx8SWUoail8fC9eW+KAouKXpsK34o+64oC6XS8udGVzdChqKXx8L15bXFtcXTw+MC05Oz9dK3U/JC9pLnRlc3Qoail8fC9eW+KVreKVsOKUguKUjOKUlOKUkOKUmOKUnOKUpOKUrOKUtOKUvOKUgOKVkF0vLnRlc3Qoail8fGoubGVuZ3RoPjUwMD9udWxsOmp9LEZlPWZ1bmN0aW9uKEgsail7aWYoSC5pbmRleE9mKGopIT09MClyZXR1cm4hMTt2YXIgUT1ILnNsaWNlKGoubGVuZ3RoKTtyZXR1cm4vXlthLXpdezEsNH0kL2kudGVzdChRKX0sTGU9ZnVuY3Rpb24oSCl7Zm9yKHZhciBqPVtdLFE9MDtRPEgubGVuZ3RoO1ErKyl7dmFyIHZlPXZ0KEhbUV0pO2lmKCEoIXZlfHx2ZS5sZW5ndGg8Mnx8SWUodmUpKSl7dmFyIHllPWpbai5sZW5ndGgtMV07aWYoIXllKXtqLnB1c2godmUpO2NvbnRpbnVlfWlmKHZlIT09eWUpe2lmKHZlLmluZGV4T2YoeWUpPT09MCl7altqLmxlbmd0aC0xXT12ZTtjb250aW51ZX1pZih5ZS5pbmRleE9mKHZlKT09PTApe0ZlKHllLHZlKSYmKGpbai5sZW5ndGgtMV09dmUpO2NvbnRpbnVlfWoucHVzaCh2ZSl9fX1yZXR1cm4gai5qb2luKGEpLnRyaW0oKX0sJGU9ZnVuY3Rpb24oSCl7Zm9yKHZhciBqPTA7ajxILmxlbmd0aDtqKyspe3ZhciBRPVN0cmluZyhIW2pdfHwiIikudHJpbSgpO2lmKFEpe3ZhciB2ZT1UZShRKTtpZih2ZSlyZXR1cm4gdmU7aWYoUT09PSJcdTIwM0EiKWZvcih2YXIgeWU9aisxO3llPEgubGVuZ3RoO3llKyspe3ZhciBPZT12dChIW3llXSk7aWYoISghT2V8fEUudGVzdChPZSl8fEllKE9lKSkpcmV0dXJuIE9lfX19cmV0dXJuIG51bGx9LFF0PWZ1bmN0aW9uKEgpe2Zvcih2YXIgaj1bXSxRPSExLHZlPTA7dmU8SC5sZW5ndGg7dmUrKyl7dmFyIHllPVN0cmluZyhIW3ZlXXx8IiIpLnRyaW0oKTtpZigheWUpe2lmKFEpYnJlYWs7Y29udGludWV9dmFyIE9lPVllKHllKTtpZihPZSl7ai5wdXNoKE9lKSxRPSEwO2NvbnRpbnVlfWlmKFEpe2lmKHllPT09Ilx1MjAzQSJ8fC9e4oC6KD86XHN8JCkvLnRlc3QoeWUpfHxFLnRlc3QoeWUpfHxJZSh5ZSkpYnJlYWs7ai5wdXNoKHZ0KHllKSl9fXJldHVybiBqfTtmb3IodmFyIG89ZmUsbD12dCxjPVosZj1JZSxkPVRlLHY9WWUsaD1RZSxnPUZlLG09TGUseT0kZSx3PVF0LEU9L1xiZ3B0LVxkKyg/OlwuXGQrKT8oPzpccytbYS16MC05Li1dKyk/XHMrwrdccytcZCslXHMrbGVmdFxzK8K3XHMrKD86XC98flwvKS4rL2ksQj0vXig/OnRoaW5raW5nfHdvcmtpbmd8cnVubmluZ3xwbGFubmluZ3xhcHBseWluZ3xyZWFkaW5nfHNlYXJjaGluZ3xpbnNwZWN0aW5nfHJldmlld2luZ3xzdW1tYXJpemluZ3xlZGl0aW5nfHVwZGF0aW5nfHdyaXRpbmd8Y29tcGxldGVkKVxiL2ksRj1bXSx4PTAsUz1pLnJlcGxhY2UoL1xyXG4/L2csYSkuc3BsaXQoYSksXz0wO188Uy5sZW5ndGg7XysrKWZvcih2YXIgVj1mZShTW19dKSxVPVYuc3BsaXQoYSksST0wO0k8VS5sZW5ndGg7SSsrKXt2YXIgRD1TdHJpbmcoVVtJXXx8IiIpLnRyaW0oKTtpZihEKXt2YXIgTT1UZShEKTtpZihNKXtGLnB1c2goe2tpbmQ6InVzZXIiLG9yZGVyOngrKyx0ZXh0Ok19KTtjb250aW51ZX12YXIgTD1ZZShEKTtpZihMKXtGLnB1c2goe2tpbmQ6ImFzc2lzdGFudCIsb3JkZXI6eCsrLHRleHQ6TH0pO2NvbnRpbnVlfXZhciBXPVFlKEQpO1cmJkYucHVzaCh7a2luZDoiZWNobyIsb3JkZXI6eCsrLHRleHQ6V30pfX1mb3IodmFyIEs9Ri5maWx0ZXIoZnVuY3Rpb24oSCxqLFEpe3ZhciB2ZT1RW2otMV07cmV0dXJuIXZlfHx2ZS5raW5kIT09SC5raW5kfHx2ZS50ZXh0IT09SC50ZXh0fSksWD1LLmZpbHRlcihmdW5jdGlvbihIKXtyZXR1cm4gSC5raW5kPT09InVzZXIifSksbmU9Sy5maWx0ZXIoZnVuY3Rpb24oSCl7cmV0dXJuIEgua2luZD09PSJhc3Npc3RhbnQifSksc2U9Sy5maWx0ZXIoZnVuY3Rpb24oSCl7cmV0dXJuIEgua2luZD09PSJlY2hvIn0pLHJlPXZ2KGkpLFQ9cmUuc3BsaXQoYSkubWFwKGZ1bmN0aW9uKEgpe3JldHVybiBTdHJpbmcoSHx8IiIpLnRyaW1FbmQoKX0pLHE9JGUoVCksTj1YLmxlbmd0aD9YW1gubGVuZ3RoLTFdOm51bGwsWT1zZS5tYXAoZnVuY3Rpb24oSCl7cmV0dXJuIEgudGV4dH0pLmZpbHRlcihmdW5jdGlvbihIKXtyZXR1cm4gSC5sZW5ndGg+PTN9KSxKPW51bGwsaWU9WS5sZW5ndGgtMTtpZT49MDtpZS0tKWlmKFlbaWVdIT09cSl7Sj1ZW2llXTticmVha30hSiYmWS5sZW5ndGgmJihKPVlbWS5sZW5ndGgtMV0pO2Zvcih2YXIgZGU9Tj9OLnRleHQ6Six0ZT1uZS5maWx0ZXIoZnVuY3Rpb24oSCl7cmV0dXJuIU58fEgub3JkZXI+Ti5vcmRlcn0pLm1hcChmdW5jdGlvbihIKXtyZXR1cm4gSC50ZXh0fSksYWU9W10sSGU9cmUubWF0Y2goL15bIFx0XSpb4oCi4pemwrfij7pdWyBcdF0qKC4rKSQvZ20pfHxbXSxEZT0wO0RlPEhlLmxlbmd0aDtEZSsrKXt2YXIgcGU9dnQoSGVbRGVdLnJlcGxhY2UoL15bIFx0XSpb4oCi4pemwrfij7pdWyBcdF0qLywiIikpO3BlJiYoQi50ZXN0KHBlKXx8RS50ZXN0KHBlKXx8L1xiKD86T3BlbkFJIENvZGV4fG1vZGVsOnxkaXJlY3Rvcnk6fFRpcDp8ZXNjIHRvIGludGVycnVwdClcYi9pLnRlc3QocGUpfHxhZS5wdXNoKHBlKSl9dmFyIFA9TGUodGUpfHxMZShRdChUKSl8fChhZS5sZW5ndGg/YWVbYWUubGVuZ3RoLTFdOm51bGwpO3JldHVybiBkZSYmbi5wdXNoKHtyb2xlOiJ1c2VyIixjb250ZW50OmRlfSksUCYmbi5wdXNoKHtyb2xlOiJhc3Npc3RhbnQiLGNvbnRlbnQ6UH0pLCFuLmxlbmd0aCYmTj9uLnB1c2goe3JvbGU6InVzZXIiLGNvbnRlbnQ6Ti50ZXh0fSk6IW4ubGVuZ3RoJiZKJiZuLnB1c2goe3JvbGU6InVzZXIiLGNvbnRlbnQ6Sn0pLG59Zm9yKHZhciBKZT0iXDAiLGN0PSJcYiIsRz0iXHYiLGVlPSJcZiIsb2U9Ig4iLGxlPSIfIixCZT0iXHhBMCIsV2U9Ilx4MDciLEp0PW5ldyBSZWdFeHAocysiXFxbWzAtOTs/XSpbYS16QS1aXXwiK3MrIlxcXVteIitXZSsiXSooIitXZSsifCIrcysiXFxcXFxcXFwpfCIrcysiWz48PWVQX1heXXxbIitKZSsiLSIrY3QrRytlZStvZSsiLSIrbGUrIl18IitCZSsifCIrdSwiZyIpLGR0PWkucmVwbGFjZShKdCxmdW5jdGlvbihmZSl7cmV0dXJuIGZlPT09QmU/IiAiOmZlPT09dT9hOiIifSkuc3BsaXQodSkuam9pbihhKSxmdD1kdC5zcGxpdChhKS5tYXAoZnVuY3Rpb24oZmUpe3JldHVybiBmZS50cmltKCl9KS5maWx0ZXIoQm9vbGVhbiksX2U9Wy90aGlua2luZyB3aXRoIGhpZ2ggZWZmb3J0L2ksL3RoaW5raW5nIHdpdGggbWVkaXVtIGVmZm9ydC9pLC90aGlua2luZyB3aXRoIGxvdyBlZmZvcnQvaSxuZXcgUmVnRXhwKCJ0aG91Z2h0IGZvciBbMC05XStzIiwiaSIpLG5ldyBSZWdFeHAoIlNhdXRlZWQgZm9yIFswLTldK20iLCJpIiksL0dlcm1pbmF0aW5nL2ksL0Rvb2RsaW5nL2ksL0JyZXdpbmcvaV0sR3Q9bnVsbCxHZT0tMSxydD1bXSxrZT1bXSxnZT1bXSxiZT0wO2JlPGZ0Lmxlbmd0aDtiZSsrKXt2YXIgQz1mdFtiZV0saXQ9Qy5yZXBsYWNlKC9e4p2vXHMqLywiIik7aWYoaXQuaW5kZXhPZignVHJ5IicpPT09MHx8aXQuaW5kZXhPZignVHJ5ICInKT09PTApe3J0LnB1c2goaXQpO2NvbnRpbnVlfWZvcih2YXIgeXQ9ITEsSXQ9MDtJdDxfZS5sZW5ndGg7SXQrKylpZihfZVtJdF0udGVzdChDKSl7eXQ9ITAsZ2UucHVzaChDKTticmVha31pZigheXQmJkMmJkMuaW5kZXhPZigiXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwIikhPT0wJiZDIT09Ilx1Mjc2RiImJkMuaW5kZXhPZigiZXNjIHRvIGludGVycnVwdCIpPT09LTEmJkMuaW5kZXhPZigiQ2xhdWRlIENvZGUgdiIpPT09LTEmJkMuaW5kZXhPZigiU29ubmV0Iik9PT0tMSYmQy5pbmRleE9mKCJ+LyIpIT09MCYmQy5pbmRleE9mKCJcdTI1Q0YgaGlnaCIpPT09LTEmJkMuaW5kZXhPZigiRmFpbGVkIHRvIGluc3RhbGwgQW50aHJvcGljIG1hcmtldHBsYWNlIik9PT0tMSYmQy5pbmRleE9mKCJDbGF1ZGUgQ29kZSBoYXMgc3dpdGNoZWQgZnJvbSBucG0gdG8gbmF0aXZlIGluc3RhbGxlciIpPT09LTEmJkMuaW5kZXhPZigiRmx1dHRlcmluZyIpPT09LTEmJkMuaW5kZXhPZigiPyBmb3Igc2hvcnRjdXRzIik9PT0tMSYmQy5pbmRleE9mKCIwOyIpIT09MCYmQy5pbmRleE9mKCI5OyIpIT09MCYmQy5pbmRleE9mKCJDbGF1ZGUgaXMgd2FpdGluZyIpPT09LTEmJiEoQy5pbmRleE9mKCJcdTI3MjIiKSE9PS0xfHxDLmluZGV4T2YoIlx1MjczMyIpIT09LTF8fEMuaW5kZXhPZigiXHUyNzM2IikhPT0tMXx8Qy5pbmRleE9mKCJcdTI3M0IiKSE9PS0xfHxDLmluZGV4T2YoIlx1MjczRCIpIT09LTEpJiYhKEMuaW5kZXhPZigiXHUyNTkwIik9PT0wfHxDLmluZGV4T2YoIlx1MjU5RCIpPT09MHx8Qy5pbmRleE9mKCJcdTI1OTgiKT09PTApJiYhKChDPT09Imx1Inx8Qz09PSJ1ZSJ8fEM9PT0idHIifHxDPT09InRpInx8Qz09PSJnInx8Qz09PSJuInx8Qz09PSJpXHUyMDI2Inx8Qz09PSJcdTIwMjYifHxDPT09InV0cyJ8fEM9PT0ibHQifHxDPT09InJnInx8Qz09PSJceEI3IikmJkMubGVuZ3RoPDQpJiYhKEMuaW5kZXhPZigiXHUyNzNERiIpPT09MHx8Qy5pbmRleE9mKCJcdTI3M0JGIik9PT0wKSYmQy5pbmRleE9mKCJucG0gV0FSTiIpPT09LTEmJkMuaW5kZXhPZigibnBtIG5vdGljZSIpPT09LTEmJiEoQy5pbmRleE9mKCJhZGRlZCAiKSE9PS0xJiZDLmluZGV4T2YoIiBwYWNrYWdlcyIpIT09LTEpJiZDLmluZGV4T2YoImF1ZGl0ZWQgIik9PT0tMSYmIShDLmluZGV4T2YoImZvdW5kICIpIT09LTEmJkMuaW5kZXhPZigiIHZ1bG5lcmFiaWxpdGllcyIpIT09LTEpJiYhKEMuaW5kZXhPZigiVXNpbmcgIikhPT0tMSYmQy5pbmRleE9mKCIgZm9yICIpIT09LTEmJkMuaW5kZXhPZigic2Vzc2lvbiIpIT09LTEpJiZDLmluZGV4T2YoIllvdSBjYW4gdXNlIik9PT0tMSYmIShDLmluZGV4T2YoIlByZXNzICIpIT09LTEmJkMuaW5kZXhPZigiIGZvciIpIT09LTEpJiYhKEMuaW5kZXhPZigidHlwZSAiKT09PTAmJkMuaW5kZXhPZigiIHRvICIpIT09LTEpJiZDLmluZGV4T2YoIlt3YW5kXSIpIT09MCYmQy5pbmRleE9mKCJDYXB0dXJlZCBDbGF1ZGUgc2Vzc2lvbiBJRCIpPT09LTEmJkMuaW5kZXhPZigiXHUyM0Y1Iik9PT0tMSYmQy5pbmRleE9mKCJhY2NlcHRlZGl0Iik9PT0tMSYmQy5pbmRleE9mKCJzaGlmdCt0YWIiKT09PS0xJiZDLmluZGV4T2YoInRhYnRvY3ljbGUiKT09PS0xJiZDLmluZGV4T2YoImN0cmwrZyIpPT09LTEmJkMuaW5kZXhPZigiL2VmZm9ydCIpPT09LTEmJiEoQy5pbmRleE9mKCJPcHVzIikhPT0tMSYmQy5pbmRleE9mKCJtb2RlbCIpIT09LTEpJiZDLmluZGV4T2YoIkhhaWt1Iik9PT0tMSYmQy5pbmRleE9mKCJ0byBjeWNsZSIpPT09LTEmJiEoQy5pbmRleE9mKCJoaWdoIFx4QjciKSE9PS0xfHxDLmluZGV4T2YoImhpZ2hceEI3IikhPT0tMSkmJiEoQy5pbmRleE9mKCJtZWRpdW0gXHhCNyIpIT09LTF8fEMuaW5kZXhPZigibWVkaXVtXHhCNyIpIT09LTEpJiYhKEMuaW5kZXhPZigibG93IFx4QjciKSE9PS0xfHxDLmluZGV4T2YoImxvd1x4QjciKSE9PS0xKSl7aWYoQy5pbmRleE9mKCJcdTI1Q0YiKT09PTApe2lmKEM9Qy5zbGljZSgxKS50cmltKCksIUMpY29udGludWU7a2UucHVzaChDKTtjb250aW51ZX1DLmxlbmd0aDwzJiYhL15bYS16QS1aXXszfSQvLnRlc3QoQyl8fGtlLnB1c2goQyl9fWlmKGdlLmxlbmd0aD4wKXt2YXIgQ3Q9Z2VbZ2UubGVuZ3RoLTFdLFR0PUN0Lm1hdGNoKG5ldyBSZWdFeHAoImZvciAoWzAtOV0rW21zXSt8IFswLTldK20gWzAtOV0rcykiLCJpIikpLFl0PVR0PyJcdTZERjFcdTVFQTZcdTYwMURcdTgwMDMgIitUdFswXS5yZXBsYWNlKC9mb3IgL2ksIiIpOiJcdTZERjFcdTVFQTZcdTYwMURcdTgwMDNcdTRFMkQuLi4iO24ucHVzaCh7cm9sZToidGhpbmtpbmciLGNvbnRlbnQ6WXQsdHlwZToiZGVlcC10aG91Z2h0In0pfWlmKHJ0Lmxlbmd0aD4wKXt2YXIgYXQ9cnRbcnQubGVuZ3RoLTFdLnJlcGxhY2UoL15UcnlccyovLCIiKS50cmltKCk7bi5wdXNoKHtyb2xlOiJwcm9tcHQiLGNvbnRlbnQ6YXQsdHlwZToic3VnZ2VzdGlvbiJ9KX1pZigha2UubGVuZ3RoKXJldHVybiBuO2Zvcih2YXIgcWU9W10semU9bnVsbCxoZT1bXSxiZT0wO2JlPGtlLmxlbmd0aDtiZSsrKWlmKEM9a2VbYmVdLEMuaW5kZXhPZigiXHUyNzZGIik9PT0wKXt2YXIgYnQ9Qy5yZXBsYWNlKC9e4p2vXHMqLywiIikudHJpbSgpO2lmKGJ0LmluZGV4T2YoJ1RyeSInKT09PTB8fGJ0LmluZGV4T2YoJ1RyeSAiJyk9PT0wKWNvbnRpbnVlO3plIT09bnVsbCYmaGUubGVuZ3RoPjAmJihxZS5wdXNoKHt1c2VyOnplLGFzc2lzdGFudExpbmVzOmhlfSksaGU9W10pLGJ0P3plPWJ0Oih6ZSE9PW51bGwmJmhlLmxlbmd0aD4wJiYocWUucHVzaCh7dXNlcjp6ZSxhc3Npc3RhbnRMaW5lczpoZX0pLGhlPVtdKSx6ZT1udWxsKX1lbHNlIHplIT09bnVsbCYmKEMuaW5kZXhPZigiXHUyM0ZBIikhPT0tMSYmKEMuaW5kZXhPZigiSGkhIikhPT0tMXx8Qy5pbmRleE9mKCJIZWxsbyIpIT09LTF8fEMuaW5kZXhPZigiV2hhdCIpIT09LTF8fEMuaW5kZXhPZigid29ya2luZyIpIT09LTEpP2hlLnB1c2goQyk6Qy5pbmRleE9mKCJcdTIzRkEiKT09PTA/aGUucHVzaChDLnNsaWNlKDEpLnRyaW0oKXx8Qyk6Qy5sZW5ndGg+PTgmJkMuaW5kZXhPZigiXHUyNzIyIik9PT0tMSYmQy5pbmRleE9mKCJcdTI3MzMiKT09PS0xJiZDLmluZGV4T2YoIlx1MjczNiIpPT09LTEmJkMuaW5kZXhPZigiXHUyNzNCIik9PT0tMSYmQy5pbmRleE9mKCJcdTI3M0QiKT09PS0xJiZDLmluZGV4T2YoIlx1MjU5MCIpIT09MCYmQy5pbmRleE9mKCJcdTI1OUQiKSE9PTAmJkMuaW5kZXhPZigiXHUyNTk4IikhPT0wJiZDLmluZGV4T2YoImVzY3RvaW50ZXJydXB0Iik9PT0tMSYmQy5pbmRleE9mKCI/Zm9yIikhPT0wJiZDLmluZGV4T2YoIj8gZm9yIikhPT0wJiZoZS5wdXNoKEMpKTtpZih6ZSE9PW51bGwmJmhlLmxlbmd0aD4wJiZxZS5wdXNoKHt1c2VyOnplLGFzc2lzdGFudExpbmVzOmhlfSkscWUubGVuZ3RoPT09MCl7Zm9yKHZhciBwdD0iIix1dD0tMSxiZT0wO2JlPGtlLmxlbmd0aDtiZSsrKWlmKEM9a2VbYmVdLCEoQy5pbmRleE9mKCdUcnkiJyk9PT0wfHxDLmluZGV4T2YoJ1RyeSAiJyk9PT0wKSYmQy5pbmRleE9mKCJGYWlsZWQgdG8gaW5zdGFsbCIpPT09LTEmJkMuaW5kZXhPZigiY3RybCtnIik9PT0tMSYmQy5pbmRleE9mKCJcdTI1Q0YgIikhPT0wJiYhKEMubGVuZ3RoPDJ8fEMubGVuZ3RoPjEwMCkmJi9eW2EtekEtWl0vLnRlc3QoQykpe3B0PUMudHJpbSgpLHV0PWJlO2JyZWFrfWlmKHB0JiZ1dD49MCl7dmFyIEV0PWtlLnNsaWNlKHV0KzEpLmZpbHRlcihmdW5jdGlvbihmZSl7cmV0dXJuIGZlLmxlbmd0aD49OH0pO0V0Lmxlbmd0aD4wJiZxZS5wdXNoKHt1c2VyOnB0LGFzc2lzdGFudExpbmVzOkV0fSl9fWZvcih2YXIgTHQ9MDtMdDxxZS5sZW5ndGg7THQrKylpZihuLnB1c2goe3JvbGU6InVzZXIiLGNvbnRlbnQ6cWVbTHRdLnVzZXJ9KSxxZVtMdF0uYXNzaXN0YW50TGluZXMubGVuZ3RoPjApe3ZhciBPbj1KdihxZVtMdF0uYXNzaXN0YW50TGluZXMuam9pbihhKSk7bi5wdXNoKHtyb2xlOiJhc3Npc3RhbnQiLGNvbnRlbnQ6T259KX1yZXR1cm4gbn12YXIgTW89InRyYW5zcGFyZW50IjtmdW5jdGlvbiBCaShlLHQpe2Zvcih2YXIgbj10fHwzLGk9ZVswXS5sZW5ndGgqbixhPWUubGVuZ3RoKm4sdT0iIixzPTA7czxlLmxlbmd0aDtzKyspZm9yKHZhciBvPTA7bzxlW3NdLmxlbmd0aDtvKyspZVtzXVtvXSE9PU1vJiYodSs9JzxyZWN0IHg9IicrbypuKyciIHk9IicrcypuKyciIHdpZHRoPSInK24rJyIgaGVpZ2h0PSInK24rJyIgZmlsbD0iJytlW3NdW29dKyciLz4nKTtyZXR1cm4nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAnK2krIiAiK2ErJyIgY2xhc3M9InBpeGVsLWF2YXRhci1zdmciPicrdSsiPC9zdmc+In1mdW5jdGlvbiBEaShlKXt2YXIgdD1NbyxuPWUuYmFzZSxpPWUuZGFyayxhPWUubGlnaHR8fGUuYmFzZSx1PWUuYWNjZW50fHwiI0ZGRkZGRiIscz1lLmV5ZXx8IiMyRDJEMkQiLG89ZS5tb3V0aHx8IiNGMjhCOUEiLGw9ZS5ub3NlfHxlLmRhcms7cmV0dXJuW1t0LGksdCx0LHQsdCx0LHQsaSx0XSxbaSxuLGksdCx0LHQsdCxpLG4saV0sW2ksbixuLG4sbixuLG4sbixuLGldLFtuLG4sdSxzLG4sbix1LHMsbixuXSxbbixuLHUsdSxuLG4sdSx1LG4sbl0sW24sbixuLG4sbyxvLG4sbixuLG5dLFtuLGwsbixhLG4sbixhLG4sbCxuXSxbdCxuLG4sbixuLG4sbixuLG4sdF0sW3QsdCxuLGksbixuLGksbix0LHRdLFt0LHQsdCxuLHQsdCxuLHQsdCx0XV19dmFyIGd2PXtiYXNlOiIjRjA5MjNBIixkYXJrOiIjQzQ2QTFBIixsaWdodDoiI0YwOTIzQSIsYWNjZW50OiIjRkZGRkZGIixleWU6IiMyRDJEMkQiLG1vdXRoOiIjRjI4QjlBIixub3NlOiIjRTg3RDVBIn0saHY9e2Jhc2U6IiM5RUFBQjgiLGRhcms6IiM2QjdCOEQiLGxpZ2h0OiIjQzVDRUQ4IixhY2NlbnQ6IiNGRkZGRkYiLGV5ZToiIzdFQzg4QiIsbW91dGg6IiNGMjhCOUEifSxxbz1be2Jhc2U6IiM1QThGRTAiLGRhcms6IiMyRTVCQjMiLGxpZ2h0OiIjOUNDMEYyIixhY2NlbnQ6IiNGRkZGRkYiLGV5ZToiI0ZGRDY2RSIsbW91dGg6IiNGMjhCOUEiLHByaW1hcnk6IiM1QThGRTAifSx7YmFzZToiI0EwNkZFMCIsZGFyazoiIzZCNDVBOCIsbGlnaHQ6IiNDOEE0RjIiLGFjY2VudDoiI0ZGRkZGRiIsZXllOiIjRkZFMzZFIixtb3V0aDoiI0YyOEI5QSIscHJpbWFyeToiI0EwNkZFMCJ9LHtiYXNlOiIjN0JCNzZCIixkYXJrOiIjNEY4QTQwIixsaWdodDoiI0E5RDQ5QyIsYWNjZW50OiIjRkZGRkZGIixleWU6IiMyRDJEMkQiLG1vdXRoOiIjRjI4QjlBIixwcmltYXJ5OiIjN0JCNzZCIn0se2Jhc2U6IiNEODZBODgiLGRhcms6IiM5QzNBNTciLGxpZ2h0OiIjRThBNEI1IixhY2NlbnQ6IiNGRkZGRkYiLGV5ZToiIzJEMkQyRCIsbW91dGg6IiNGRkZGRkYiLHByaW1hcnk6IiNEODZBODgifSx7YmFzZToiIzVCQjdCMCIsZGFyazoiIzJFNzg3MyIsbGlnaHQ6IiM5Q0Q2RDIiLGFjY2VudDoiI0ZGRkZGRiIsZXllOiIjRkZENjZFIixtb3V0aDoiI0YyOEI5QSIscHJpbWFyeToiIzVCQjdCMCJ9LHtiYXNlOiIjNEE0QTYwIixkYXJrOiIjMUYxRjJFIixsaWdodDoiIzZFNkU4NCIsYWNjZW50OiIjRjVGNUY1IixleWU6IiNGRkQ2NkUiLG1vdXRoOiIjRjI4QjlBIixwcmltYXJ5OiIjNEE0QTYwIn0se2Jhc2U6IiNEOEE4NUEiLGRhcms6IiM5QzcwMjgiLGxpZ2h0OiIjRUJDNzhBIixhY2NlbnQ6IiNGRkZGRkYiLGV5ZToiIzJEMkQyRCIsbW91dGg6IiNGMjhCOUEiLHByaW1hcnk6IiNEOEE4NUEifV07ZnVuY3Rpb24geXYoZSx0KXtmb3IodmFyIG49U3RyaW5nKGV8fCIiKSxpPTAsYT0wO2E8bi5sZW5ndGg7YSsrKWk9KGk8PDUpLWkrbi5jaGFyQ29kZUF0KGEpfDA7cmV0dXJuIE1hdGguYWJzKGkpJXR9dmFyIE9vPXsiZ2VuZXJhbC1wdXJwb3NlIjoiXHU0RTA3XHU4MEZEXHU3MzJCIixFeHBsb3JlOiJcdTRGQTZcdTYzQTJcdTczMkIiLCJjb2RlLWV4cGxvcmVyIjoiXHU0RkE2XHU2M0EyXHU3MzJCIiwiY29kZS1yZXZpZXdlciI6Ilx1NUJBMVx1NjdFNVx1NzMyQiIsImNvZGUtYXJjaGl0ZWN0IjoiXHU2N0I2XHU2Nzg0XHU3MzJCIiwiY29kZS1zaW1wbGlmaWVyIjoiXHU3QjgwXHU1MzE2XHU3MzJCIiwiY29kZS1ndWlkZSI6Ilx1NTQxMVx1NUJGQ1x1NzMyQiIsUGxhbjoiXHU3QjU2XHU1MjEyXHU3MzJCIiwiZmVhdHVyZS1kZXYiOiJcdTVGMDBcdTUzRDFcdTczMkIiLCJwci10ZXN0LWFuYWx5emVyIjoiXHU2RDRCXHU4QkQ1XHU3MzJCIiwic2lsZW50LWZhaWx1cmUtaHVudGVyIjoiXHU2MkE0XHU1MzZCXHU3MzJCIiwidHlwZS1kZXNpZ24tYW5hbHl6ZXIiOiJcdTdDN0JcdTU3OEJcdTczMkIiLCJjb21tZW50LWFuYWx5emVyIjoiXHU2Q0U4XHU5MUNBXHU3MzJCIn0sV2E9bnVsbDtmdW5jdGlvbiBQbyhlKXtpZighZSlyZXR1cm4iIjt2YXIgdD1lLmFnZW50VHlwZXx8IiI7aWYodCYmT29bdF0pcmV0dXJuIE9vW3RdO2lmKHQpcmV0dXJuIHQ7dmFyIG49KGUudGFza0lkfHwiIikuc2xpY2UoLTQpfHwoQnUoKT09PSJFbmdsaXNoIj8iPyI6Ilx1NjcyQVx1NzdFNSIpO3JldHVybiBjZSgic3ViYWdlbnQuaGVscGVyX2ZhbGxiYWNrX3ByZWZpeCIpK259ZnVuY3Rpb24gSG8oZSl7dmFyIHQ9UG8oZSk7aWYoIXQpcmV0dXJuIHQ7dmFyIG49V2EmJmUmJmUudGFza0lkP1dhLmdldChlLnRhc2tJZCk6bnVsbDtyZXR1cm4gbj90K246dH1mdW5jdGlvbiBfbyhlKXt2YXIgdD1lJiYoZS5hZ2VudFR5cGV8fGUudGFza0lkKXx8InN1YmFnZW50IjtyZXR1cm4gcW9beXYodCxxby5sZW5ndGgpXX1mdW5jdGlvbiBKZyhlKXt2YXIgdD1fbyhlKSxuPUhvKGUpLGk9QmkoRGkodCkpO3JldHVybic8ZGl2IGNsYXNzPSJjaGF0LW1lc3NhZ2UtYXZhdGFyIGFzc2lzdGFudCBzdWJhZ2VudCIgc3R5bGU9Ii0tYWdlbnQtY29sb3I6Jyt0LnByaW1hcnkrJyI+PGRpdiBjbGFzcz0icGl4ZWwtYXZhdGFyIj4nK2krJzwvZGl2PjxzcGFuIGNsYXNzPSJhdmF0YXItbmFtZSI+JytwKG4pKyI8L3NwYW4+PC9kaXY+In1mdW5jdGlvbiBidihlLHQpe2lmKCFlfHxlLnR5cGUhPT0idG9vbF9yZXN1bHQiKXJldHVybiIiO3ZhciBuPW1uKGUuY29udGVudCksaT1lLmlzX2Vycm9yPT09ITAsYT10eXBlb2Ygbj09InN0cmluZyI/bjpuPT1udWxsPyIiOlN0cmluZyhuKTtpZighaSYmIWEudHJpbSgpKXJldHVybic8ZGl2IGNsYXNzPSJzdWJhZ2VudC1yZXBseSBwZW5kaW5nIj48c3BhbiBjbGFzcz0ic3ViYWdlbnQtcmVwbHktbWFya2VyIHBlbmRpbmciPicrcChjZSgic3ViYWdlbnQucnVubmluZyIpKSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBpbmctaW5kaWNhdG9yIj48c3Bhbj48L3NwYW4+PHNwYW4+PC9zcGFuPjxzcGFuPjwvc3Bhbj48L3NwYW4+PC9kaXY+Jzt2YXIgdT1hLnRyaW0oKT9hOmNlKCJzdWJhZ2VudC5ub19vdXRwdXQiKSxzPWEudHJpbSgpP1lhKHUpOnAodSksbz1jZShpPyJzdWJhZ2VudC50YXNrLmZhaWxlZCI6InN1YmFnZW50LnRhc2suZG9uZSIpLGw9aT8iXHUyNzE3IjoiXHUyNzEzIjtyZXR1cm4nPGRpdiBjbGFzcz0ic3ViYWdlbnQtcmVwbHkgZmluYWwnKyhpPyIgZXJyb3IiOiIiKSsnIj48ZGl2IGNsYXNzPSJzdWJhZ2VudC1yZXBseS1tYXJrZXIgJysoaT8iZXJyb3IiOiJkb25lIikrJyI+PHNwYW4gY2xhc3M9InN1YmFnZW50LXJlcGx5LW1hcmtlci1pY29uIiBhcmlhLWhpZGRlbj0idHJ1ZSI+JytsKyc8L3NwYW4+PHNwYW4gY2xhc3M9InN1YmFnZW50LXJlcGx5LW1hcmtlci1sYWJlbCI+JytwKG8pKyc8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0ic3ViYWdlbnQtcmVwbHktY29udGVudCI+JytzKyI8L2Rpdj48L2Rpdj4ifXZhciBraT17YXNzaXN0YW50OkJpKERpKGd2KSksdXNlcjpCaShEaShodikpfSxObz17dXNlcjp7bmFtZToiXHU4RDVCXHU1MzVBXHU4NjRFXHU1OTlFIixhdmF0YXJTdmc6a2kudXNlcn0sYXNzaXN0YW50OntuYW1lOiJcdTUyRTRcdTUyQjNcdTUyMURcdTRFOEMiLGF2YXRhclN2ZzpraS5hc3Npc3RhbnR9fTtmdW5jdGlvbiB6YShlKXt2YXIgdD1yLmNvbmZpZyYmci5jb25maWcuc3RydWN0dXJlZENoYXRQZXJzb25hLG49dCYmdFtlXT90W2VdOm51bGwsaT1Ob1tlXXx8Tm8uYXNzaXN0YW50O3JldHVybntuYW1lOm4mJnR5cGVvZiBuLm5hbWU9PSJzdHJpbmciJiZuLm5hbWUudHJpbSgpP24ubmFtZS50cmltKCk6aS5uYW1lLGF2YXRhcjpuJiZ0eXBlb2Ygbi5hdmF0YXI9PSJzdHJpbmciJiZuLmF2YXRhci50cmltKCk/bi5hdmF0YXIudHJpbSgpOm51bGwsYXZhdGFyU3ZnOmkuYXZhdGFyU3ZnfX1mdW5jdGlvbiBqbyhlKXtyZXR1cm4nPGRpdiBjbGFzcz0icGl4ZWwtYXZhdGFyIj4nK2UrIjwvZGl2PiJ9ZnVuY3Rpb24gR2coZSx0KXtpZighKCFlfHwhZS5wYXJlbnROb2RlKSl7dmFyIG49emEodD09PSJ1c2VyIj8idXNlciI6ImFzc2lzdGFudCIpO2Uub3V0ZXJIVE1MPWpvKG4uYXZhdGFyU3ZnKX19ZnVuY3Rpb24gUW4oZSx0KXt0PXR8fHt9O3ZhciBuPWU9PT0idXNlciI/InVzZXIiOiJhc3Npc3RhbnQiLGk9emEobiksYT1pLmF2YXRhcj8nPGltZyBjbGFzcz0icGl4ZWwtYXZhdGFyLWltYWdlIiBzcmM9IicrcChpLmF2YXRhcikrJyIgYWx0PSInK3AoaS5uYW1lKSsnIiBvbmVycm9yPSJoYW5kbGVDaGF0QXZhdGFySW1hZ2VFcnJvcih0aGlzLCAnK0pTT04uc3RyaW5naWZ5KG4pKycpIiAvPic6am8oaS5hdmF0YXJTdmcpLHU9dC5sZWZ0U2xvdD90LmxlZnRTbG90OiIiO3JldHVybic8ZGl2IGNsYXNzPSJjaGF0LW1lc3NhZ2UtYXZhdGFyICcrZSsnIj4nK2ErJzxzcGFuIGNsYXNzPSJhdmF0YXItbmFtZSI+JytwKGkubmFtZSkrIjwvc3Bhbj4iK3UrIjwvZGl2PiJ9ZnVuY3Rpb24gRXYoKXt2YXIgZT1OdCgpO3JldHVybiFlfHwhdWUoZSk/IiI6aWwoZSx7a2luZDoiY29tcGFjdCJ9KX1mdW5jdGlvbiBVYShlLHQsbixpKXtpZihlLnJvbGU9PT0idGhpbmtpbmciKXt2YXIgYT10eXBlb2YgZS5jb250ZW50PT0ic3RyaW5nIj9lLmNvbnRlbnQ6IiI7aWYoIWEudHJpbSgpKXJldHVybiIiO3ZhciB1PXF0KCJ0aGlua2luZyIsW3F1KGUsbiksInB0eSJdKSxzPVhlKHUpLG89cz09PW51bGw/SW4oInRoaW5raW5nIik6cztyZXR1cm4nPGRpdiBjbGFzcz0iY2hhdC1tZXNzYWdlIHRoaW5raW5nIj48ZGl2IGNsYXNzPSJ0aGlua2luZy1pbmxpbmUgdGhpbmtpbmctcHR5ICcrKG8/ImV4cGFuZGVkIjoiY29sbGFwc2VkIikrJyIgZGF0YS1leHBhbmQta2luZD0idGhpbmtpbmciIGRhdGEtZXhwYW5kLWtleT0iJytwKHUpKyciIGRhdGEtdGhpbmtpbmc9IicrcChhKSsnIiBvbmNsaWNrPSJfX3RoaW5raW5nVG9nZ2xlKHRoaXMpIj48c3BhbiBjbGFzcz0idGhpbmtpbmctaW5saW5lLWljb24iPlx1MjlCRjwvc3Bhbj48c3BhbiBjbGFzcz0idGhpbmtpbmctaW5saW5lLXByZXZpZXciPicrcChhKSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJ0aGlua2luZy1pbmxpbmUtYWN0aW9uIj4nKyhvPyJcdTY1MzZcdThENzciOiJcdTVDNTVcdTVGMDAiKSsiPC9zcGFuPjwvZGl2PjwvZGl2PiJ9aWYoZS5yb2xlPT09InByb21wdCIpcmV0dXJuJzxkaXYgY2xhc3M9ImNoYXQtbWVzc2FnZSBwcm9tcHQiPjxkaXYgY2xhc3M9InByb21wdC1jYXJkIj48ZGl2IGNsYXNzPSJwcm9tcHQtaWNvbiI+XHUyMTkyPC9kaXY+PGRpdiBjbGFzcz0icHJvbXB0LWNvbnRlbnQiPlx1OEJENVx1OEJENVx1RkYxQTxzcGFuIGNsYXNzPSJwcm9tcHQtdGV4dCI+JytwKGUuY29udGVudCkrIjwvc3Bhbj48L2Rpdj48L2Rpdj48L2Rpdj4iO2lmKEFycmF5LmlzQXJyYXkoZS5jb250ZW50KSlyZXR1cm4gX3YoZSx0LG4saSk7dmFyIGw9UW4oZS5yb2xlKSxjPWUucm9sZT09PSJhc3Npc3RhbnQiP1lhKGUuY29udGVudCk6ZS5yb2xlPT09InVzZXIiP0pvKGUuY29udGVudCk6cChlLmNvbnRlbnQpO3JldHVybic8ZGl2IGNsYXNzPSJjaGF0LW1lc3NhZ2UgJytlLnJvbGUrJyI+JytsKyc8ZGl2IGNsYXNzPSJjaGF0LW1lc3NhZ2UtYnViYmxlIj4nK2MrIjwvZGl2PjwvZGl2PiJ9ZnVuY3Rpb24gRnYoZSl7dmFyIHQ9e307aWYoIUFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIHQ7Zm9yKHZhciBuPTA7bjxlLmxlbmd0aDtuKyspe3ZhciBpPWVbbl07aWYoaSYmaS50eXBlPT09InRvb2xfcmVzdWx0Iil7dmFyIGE9aS50b29sX3VzZV9pZDtpZighYSljb250aW51ZTt0W2FdfHwodFthXT1bXSksdFthXS5wdXNoKGkpfX1yZXR1cm4gdH1mdW5jdGlvbiBSbyhlLHQpe3ZhciBuPWUmJnQ/ZVt0XTpudWxsO2lmKCFufHwhbi5sZW5ndGgpcmV0dXJuIG51bGw7Zm9yKHZhciBpPTA7aTxuLmxlbmd0aC0xO2krKylpZihybChuW2ldLG5baSsxXSkpcmV0dXJuIG5baSsxXTtyZXR1cm4gbltuLmxlbmd0aC0xXX1mdW5jdGlvbiB3dihlLHQpe3ZhciBuPWUmJnQ/ZVt0XTpudWxsO2lmKCFufHxuLmxlbmd0aDwyKXJldHVybiExO2Zvcih2YXIgaT0wO2k8bi5sZW5ndGgtMTtpKyspaWYocmwobltpXSxuW2krMV0pKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIEN2KGUpe3JldHVybic8ZGl2IGNsYXNzPSJzdHJ1Y3R1cmVkLXRvb2wtaGludCI+XHU1REYyXHU4MUVBXHU1MkE4XHU2MDYyXHU1OTBEXHU0RTAwXHU2QjIxICcrcChHYShlKSkrIiBcdTUzQzJcdTY1NzBcdTk1RUVcdTk4OTg8L2Rpdj4ifXZhciBCdj17UmVhZDoxLEdsb2I6MSxHcmVwOjEsV2ViRmV0Y2g6MSxXZWJTZWFyY2g6MSxUb2RvUmVhZDoxfTtmdW5jdGlvbiBXbyhlKXtpZighZXx8ZS50eXBlIT09InRvb2xfdXNlInx8IUJ2W2UubmFtZV0pcmV0dXJuITE7aWYoZS5uYW1lPT09IlJlYWQiKXt2YXIgdD1lLmlucHV0fHx7fTtpZih5dSh0LmZpbGVfcGF0aHx8dC5wYXRofHwiIikpcmV0dXJuITF9cmV0dXJuITB9ZnVuY3Rpb24gRHYoZSl7Zm9yKHZhciB0PVtdLG49MDtuPGUubGVuZ3RoOyl7dmFyIGk9ZVtuXTtpZihpLnR5cGU9PT0idG9vbF9yZXN1bHQiKXtuKys7Y29udGludWV9aWYoV28oaSkpe2Zvcih2YXIgYT1be2Jsb2NrOmksaW5kZXg6bn1dLHU9bisxO3U8ZS5sZW5ndGg7KXtpZihlW3VdLnR5cGU9PT0idG9vbF9yZXN1bHQiKXt1Kys7Y29udGludWV9aWYoV28oZVt1XSkpYS5wdXNoKHtibG9jazplW3VdLGluZGV4OnV9KSx1Kys7ZWxzZSBicmVha31hLmxlbmd0aD49Mj90LnB1c2goe3R5cGU6Imdyb3VwIixpdGVtczphLGVuZEluZGV4OnV9KTp0LnB1c2goe3R5cGU6InNpbmdsZSIsYmxvY2s6aSxpbmRleDpufSksbj11fWVsc2UgdC5wdXNoKHt0eXBlOiJzaW5nbGUiLGJsb2NrOmksaW5kZXg6bn0pLG4rK31yZXR1cm4gdH12YXIga3Y9e1JlYWQ6Ilx1OEJGQlx1NTNENiIsR2xvYjoiXHU2NDFDXHU3RDIyIixHcmVwOiJcdTY0MUNcdTdEMjIiLFdlYkZldGNoOiJcdTYyOTNcdTUzRDYiLFdlYlNlYXJjaDoiXHU2NDFDXHU3RDIyIixUb2RvUmVhZDoiXHU1Rjg1XHU1MjlFIn07ZnVuY3Rpb24gQXYoZSx0LG4saSl7Zm9yKHZhciBhPXt9LHU9MDt1PGUubGVuZ3RoO3UrKyl7dmFyIHM9ZVt1XS5ibG9jay5uYW1lO2Fbc109KGFbc118fDApKzF9Zm9yKHZhciBvPSEwLGw9ITEsdT0wO3U8ZS5sZW5ndGg7dSsrKXt2YXIgYz1lW3VdLmJsb2NrLGY9Um8obixjLmlkKTtmP2YuaXNfZXJyb3ImJihsPSEwKTpvPSExfXZhciBkPW8/bD8iXHUyNzE3IjoiXHUyNzEzIjoiXHUyMDI2Iix2PW8/bD8iZXJyb3IiOiJkb25lIjoicGVuZGluZyIsaD1bXTtmb3IodmFyIGcgaW4gYSloLnB1c2goYVtnXSsiICIrKGt2W2ddfHxnKSk7Zm9yKHZhciBtPWguam9pbigiIFx4QjcgIikseT1xdCgidG9vbC1ncm91cCIsW2ksZVswXSYmZVswXS5pbmRleCxlLmxlbmd0aF0pLHc9WGUoeSksRT13PT09bnVsbD9JbigidG9vbEdyb3VwIik6dyxCPSIiLHU9MDt1PGUubGVuZ3RoO3UrKyl0cnl7Qis9R28oZVt1XS5ibG9jayx0LG4sZVt1XS5pbmRleCxpKX1jYXRjaHtCKz0nPGRpdiBjbGFzcz0icmVuZGVyLWVycm9yIj5cdTVERTVcdTUxNzdcdTZFMzJcdTY3RDNcdTU5MzFcdThEMjU8L2Rpdj4nfXJldHVybic8ZGl2IGNsYXNzPSJ0b29sLWdyb3VwIiBkYXRhLWV4cGFuZC1raW5kPSJ0b29sLWdyb3VwIiBkYXRhLWV4cGFuZC1rZXk9IicrcCh5KSsnIiBkYXRhLWV4cGFuZGVkPSInKyhFPyJ0cnVlIjoiZmFsc2UiKSsnIiBkYXRhLXN0YXR1cz0iJyt2KyciPjxkaXYgY2xhc3M9InRvb2wtZ3JvdXAtc3VtbWFyeSIgb25jbGljaz0iX190b29sR3JvdXBUb2dnbGUodGhpcy5wYXJlbnROb2RlKSI+PHNwYW4gY2xhc3M9InRvb2wtZ3JvdXAtc3RhdHVzIj4nK2QrJzwvc3Bhbj48c3BhbiBjbGFzcz0idG9vbC1ncm91cC10ZXh0Ij4nK3AobSkrJzwvc3Bhbj48c3BhbiBjbGFzcz0idG9vbC1ncm91cC1jb3VudCI+JytlLmxlbmd0aCsnIFx1NEUyQVx1OEMwM1x1NzUyODwvc3Bhbj48c3ZnIGNsYXNzPSJ0b29sLWdyb3VwLWNoZXZyb24iIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0eWxlPSJ0cmFuc2Zvcm06JysoRT8icm90YXRlKDE4MGRlZykiOiIiKSsnIj48cG9seWxpbmUgcG9pbnRzPSI2IDkgMTIgMTUgMTggOSIvPjwvc3ZnPjwvZGl2PjxkaXYgY2xhc3M9InRvb2wtZ3JvdXAtYm9keSIgc3R5bGU9ImRpc3BsYXk6JysoRT8iYmxvY2siOiJub25lIikrJzsiPicrQisiPC9kaXY+PC9kaXY+In13aW5kb3cuX190b29sR3JvdXBUb2dnbGU9ZnVuY3Rpb24oZSl7aWYoZSl7dmFyIHQ9ZS5nZXRBdHRyaWJ1dGUoImRhdGEtZXhwYW5kZWQiKT09PSJ0cnVlIjtlLnNldEF0dHJpYnV0ZSgiZGF0YS1leHBhbmRlZCIsdD8iZmFsc2UiOiJ0cnVlIik7dmFyIG49ZS5xdWVyeVNlbGVjdG9yKCIudG9vbC1ncm91cC1ib2R5Iik7biYmKG4uc3R5bGUuZGlzcGxheT10PyJub25lIjoiYmxvY2siKTt2YXIgaT1lLnF1ZXJ5U2VsZWN0b3IoIi50b29sLWdyb3VwLWNoZXZyb24iKTtpJiYoaS5zdHlsZS50cmFuc2Zvcm09dD8iIjoicm90YXRlKDE4MGRlZykiKSxCbihlLCJ0b29sLWdyb3VwIil9fTtmdW5jdGlvbiB4dihlLHQpe2Zvcih2YXIgbj0wLGk9MCxhPTAsdT17fSxzPTA7czx0Lmxlbmd0aDtzKyspe3ZhciBvPWVbdFtzXV07aWYobyl7by5yb2xlPT09InVzZXIiJiZuKys7dmFyIGw9by5jb250ZW50O2lmKEFycmF5LmlzQXJyYXkobCkpZm9yKHZhciBjPTA7YzxsLmxlbmd0aDtjKyspe3ZhciBmPWxbY107aWYoZilpZihmLl9fc3ViYWdlbnQmJmYuX19zdWJhZ2VudC50YXNrSWQmJih1W2YuX19zdWJhZ2VudC50YXNrSWRdPTEpLGYudHlwZT09PSJ0b29sX3VzZSIpe2krKzt2YXIgZD1BaShmKTtkJiZkLnRhc2tJZCYmKHVbZC50YXNrSWRdPTEpfWVsc2UgZi50eXBlPT09InRvb2xfcmVzdWx0IiYmZi5pc19lcnJvciYmYSsrfX19dmFyIHY9MDtmb3IodmFyIGggaW4gdSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodSxoKSYmdisrO3JldHVybntyb3VuZHM6bix0b29sczppLGFnZW50czp2LGVycm9yczphfX1mdW5jdGlvbiB6byhlKXt2YXIgdD1bXTtyZXR1cm4gdC5wdXNoKGNlKCJoaXN0b3J5LnJvdW5kcyIse246U3RyaW5nKGUucm91bmRzKX0pKSxlLnRvb2xzPjAmJnQucHVzaChjZSgiaGlzdG9yeS50b29scyIse246U3RyaW5nKGUudG9vbHMpfSkpLGUuYWdlbnRzPjAmJnQucHVzaChjZSgiaGlzdG9yeS5hZ2VudHMiLHtuOlN0cmluZyhlLmFnZW50cyl9KSksZS5lcnJvcnM+MCYmdC5wdXNoKGNlKCJoaXN0b3J5LmVycm9ycyIse246U3RyaW5nKGUuZXJyb3JzKX0pKSx0LmpvaW4oIiBceEI3ICIpfWZ1bmN0aW9uIFZhKGUsdCl7Zm9yKHZhciBuPWUubmV4dEVsZW1lbnRTaWJsaW5nO247KW4uY2xhc3NMaXN0LmNvbnRhaW5zKCJjaGF0LWxvYWQtbW9yZSIpfHwodD9uLmNsYXNzTGlzdC5yZW1vdmUoImNoYXQtaGlzdG9yeS1oaWRkZW4iKTpuLmNsYXNzTGlzdC5hZGQoImNoYXQtaGlzdG9yeS1oaWRkZW4iKSksbj1uLm5leHRFbGVtZW50U2libGluZ31mdW5jdGlvbiBTdihlLHQsbixpKXshZXx8IXR8fChJdihlLHQsITEpLEthKHQpLE12KGUpKX1mdW5jdGlvbiBZZyhlKXt2YXIgdD1lLnF1ZXJ5U2VsZWN0b3IoIiNjaGF0LWZvbGQtYmFyIik7cmV0dXJuIHR8fCh0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHQuaWQ9ImNoYXQtZm9sZC1iYXIiLHQuY2xhc3NOYW1lPSJjaGF0LWZvbGQtYmFyIGhpZGRlbiIsZS5pbnNlcnRCZWZvcmUodCxlLmZpcnN0Q2hpbGQpLHQpfWZ1bmN0aW9uIEl2KGUsdCxuKXtlJiZlLmNsYXNzTGlzdC50b2dnbGUoImF1dG8tZm9sZCIsISFuKX1mdW5jdGlvbiBRZyhlLHQpe2Zvcih2YXIgbj1bXSxpPTA7aTx0O2krKyllW2ldJiZuLnB1c2goaSk7cmV0dXJuIG59ZnVuY3Rpb24gS2EoZSl7aWYoZSlmb3IodmFyIHQ9ZS5xdWVyeVNlbGVjdG9yQWxsKCIuY2hhdC1hdXRvLWZvbGQtaGlkZGVuIiksbj0wO248dC5sZW5ndGg7bisrKXRbbl0uY2xhc3NMaXN0LnJlbW92ZSgiY2hhdC1hdXRvLWZvbGQtaGlkZGVuIil9ZnVuY3Rpb24gJGcoZSx0LG4pe2lmKEthKGUpLCEoIW58fHQ8MSkpe2Zvcih2YXIgaT1lLnF1ZXJ5U2VsZWN0b3JBbGwoIi5jaGF0LW1lc3NhZ2U6bm90KC5zeXN0ZW0taW5mbykiKSxhPTA7YTxpLmxlbmd0aDthKyspe3ZhciB1PWlbYV0uZ2V0QXR0cmlidXRlKCJkYXRhLW1zZy1pbmRleCIpO2lmKHUhPW51bGwpe3ZhciBzPXBhcnNlSW50KHUsMTApOyFpc05hTihzKSYmczx0JiZpW2FdLmNsYXNzTGlzdC5hZGQoImNoYXQtYXV0by1mb2xkLWhpZGRlbiIpfX1UdihlKX19ZnVuY3Rpb24gVHYoZSl7dmFyIHQ9ZT9lLnF1ZXJ5U2VsZWN0b3IoIi5jaGF0LWhpc3Rvcnktc3VtbWFyeSIpOm51bGw7aWYodCl7dC5zZXRBdHRyaWJ1dGUoImRhdGEtZXhwYW5kZWQiLCJmYWxzZSIpO3ZhciBuPXQucXVlcnlTZWxlY3RvcigiLmNoYXQtaGlzdG9yeS1zdW1tYXJ5LWJ0biIpO24mJm4uc2V0QXR0cmlidXRlKCJhcmlhLWV4cGFuZGVkIiwiZmFsc2UiKTt2YXIgaT10LnF1ZXJ5U2VsZWN0b3IoIi5jaGF0LWhpc3Rvcnktc3VtbWFyeS10aXRsZSIpO2kmJihpLnRleHRDb250ZW50PWNlKCJoaXN0b3J5LmV4cGFuZCIpKSxWYSh0LCExKSx0LmNsYXNzTGlzdC5hZGQoImNoYXQtYXV0by1mb2xkLWhpZGRlbiIpO3ZhciBhPWUuZ2V0QXR0cmlidXRlKCJkYXRhLWhpc3Rvcnktc2lnIik7aWYoYSl7dmFyIHU9YS5zcGxpdCgiOiIpO3UubGVuZ3RoPj0zJiYodVsyXT0iMCIsZS5zZXRBdHRyaWJ1dGUoImRhdGEtaGlzdG9yeS1zaWciLHUuam9pbigiOiIpKSl9fX1mdW5jdGlvbiBMdihlKXshZXx8IWUuaXNDb25uZWN0ZWR8fChDbih7cmVtb3ZlRGl2aWRlcjohMH0pLER1KCEwKSl9ZnVuY3Rpb24gTXYoZSl7aWYoZSl7dmFyIHQ9ZS5xdWVyeVNlbGVjdG9yKCIjY2hhdC1mb2xkLWJhciIpO3QmJih0LmlubmVySFRNTD0iIix0LmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLHIuY2hhdEF1dG9Gb2xkU25hcHNob3Q9bnVsbCl9fWZ1bmN0aW9uIFhnKGUsdCxuKXt2YXIgaT1VbyhlKXx8Ilx1NjVCMFx1NkQ4OFx1NjA2RiIsYT10P1VvKHQpOiJcdTdCNDlcdTVGODVcdTU2REVcdTU5MEQuLi4iLHU9IiI7cmV0dXJuIG4mJih1PSc8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImNoYXQtZm9sZC1yb3cgaGlzdG9yeSIgb25jbGljaz0id2luZG93Ll9fY2hhdEZvbGRUb2dnbGVIaXN0b3J5ICYmIHdpbmRvdy5fX2NoYXRGb2xkVG9nZ2xlSGlzdG9yeSgpIiB0aXRsZT0iXHU1QzU1XHU1RjAwXHU2MjE2XHU2NTM2XHU4RDc3XHU2NkY0XHU2NUU5XHU1QkY5XHU4QkREIj48c3BhbiBjbGFzcz0iY2hhdC1mb2xkLXJvbGUiPlx1NTM4Nlx1NTNGMjwvc3Bhbj48c3BhbiBjbGFzcz0iY2hhdC1mb2xkLXRleHQiPlx1NURGMlx1NjUzNlx1OEQ3NyAnK3Aoem8obikpKyI8L3NwYW4+PC9idXR0b24+IiksdSsnPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJjaGF0LWZvbGQtcm93IHVzZXIiIG9uY2xpY2s9IndpbmRvdy5fX2NoYXRGb2xkSnVtcFRvTGF0ZXN0ICYmIHdpbmRvdy5fX2NoYXRGb2xkSnVtcFRvTGF0ZXN0KCkiIHRpdGxlPSJcdTVCOUFcdTRGNERcdTUyMzBcdTY3MDBcdTY1QjBcdTZEODhcdTYwNkYiPjxzcGFuIGNsYXNzPSJjaGF0LWZvbGQtcm9sZSI+XHU2MjExPC9zcGFuPjxzcGFuIGNsYXNzPSJjaGF0LWZvbGQtdGV4dCI+JytwKGkpKyc8L3NwYW4+PC9idXR0b24+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJjaGF0LWZvbGQtcm93IGFzc2lzdGFudCIgb25jbGljaz0id2luZG93Ll9fY2hhdEZvbGRKdW1wVG9MYXRlc3QgJiYgd2luZG93Ll9fY2hhdEZvbGRKdW1wVG9MYXRlc3QoKSIgdGl0bGU9Ilx1NUI5QVx1NEY0RFx1NTIzMFx1NjcwMFx1NjVCMFx1NTZERVx1NTkwRCI+PHNwYW4gY2xhc3M9ImNoYXQtZm9sZC1yb2xlIj5DbGF1ZGU8L3NwYW4+PHNwYW4gY2xhc3M9ImNoYXQtZm9sZC10ZXh0Ij4nK3AoYSkrIjwvc3Bhbj48L2J1dHRvbj4ifWZ1bmN0aW9uIFVvKGUpe2lmKCFlKXJldHVybiIiO3ZhciB0PVtdO2Z1bmN0aW9uIG4ocyl7aWYodHlwZW9mIHM9PSJzdHJpbmciKXt2YXIgbz1zLnJlcGxhY2UoL1xzKy9nLCIgIikudHJpbSgpO28mJnQucHVzaChvKX19aWYodHlwZW9mIGUuY29udGVudD09InN0cmluZyIpbihlLmNvbnRlbnQpO2Vsc2UgaWYoQXJyYXkuaXNBcnJheShlLmNvbnRlbnQpKWZvcih2YXIgaT0wO2k8ZS5jb250ZW50Lmxlbmd0aCYmdC5qb2luKCIgIikubGVuZ3RoPDE4MDtpKyspe3ZhciBhPWUuY29udGVudFtpXTthJiYoYS50eXBlPT09InRleHQiP24oYS50ZXh0KTphLnR5cGU9PT0idGhpbmtpbmciP24oYS50aGlua2luZyk6YS50eXBlPT09InRvb2xfdXNlIj9uKGEubmFtZT8iXHU4QzAzXHU3NTI4ICIrYS5uYW1lOiJcdTVERTVcdTUxNzdcdThDMDNcdTc1MjgiKTphLnR5cGU9PT0idG9vbF9yZXN1bHQiP24oYS5pc19lcnJvcj8iXHU1REU1XHU1MTc3XHU4RkQ0XHU1NkRFXHU5NTE5XHU4QkVGIjoiXHU1REU1XHU1MTc3XHU4RkQ0XHU1NkRFXHU3RUQzXHU2NzlDIik6YS50ZXh0JiZuKGEudGV4dCkpfXZhciB1PXQuam9pbigiIFx4QjcgIik7cmV0dXJuIHUubGVuZ3RoPjE4MD91LnNsaWNlKDAsMTc3KSsiLi4uIjp1fXdpbmRvdy5fX2NoYXRGb2xkSnVtcFRvTGF0ZXN0PWZ1bmN0aW9uKCl7dmFyIGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2NoYXQtb3V0cHV0IC5jaGF0LW1lc3NhZ2VzIik7ZSYmTHYoZSl9LHdpbmRvdy5fX2NoYXRGb2xkVG9nZ2xlSGlzdG9yeT1mdW5jdGlvbigpe3ZhciBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNjaGF0LW91dHB1dCAuY2hhdC1oaXN0b3J5LXN1bW1hcnkiKSx0PWU/ZS5xdWVyeVNlbGVjdG9yKCIuY2hhdC1oaXN0b3J5LXN1bW1hcnktYnRuIik6bnVsbDtlJiZlLmNsYXNzTGlzdC5yZW1vdmUoImNoYXQtYXV0by1mb2xkLWhpZGRlbiIpLHQmJndpbmRvdy5fX2hpc3RvcnlTdW1tYXJ5VG9nZ2xlJiZ3aW5kb3cuX19oaXN0b3J5U3VtbWFyeVRvZ2dsZSh0KX07ZnVuY3Rpb24gcXYoZSl7aWYoIWUpcmV0dXJuO2Zvcih2YXIgdD1yLmN1cnJlbnRNZXNzYWdlc3x8W10sbj0tMSxpPXQubGVuZ3RoLTE7aT49MDtpLS0paWYodFtpXSYmdFtpXS5yb2xlPT09InVzZXIiKXtuPWk7YnJlYWt9ZnVuY3Rpb24gYSgpe3ZhciB4PWUucXVlcnlTZWxlY3RvcigiLmNoYXQtaGlzdG9yeS1zdW1tYXJ5Iik7eCYmeC5yZW1vdmUoKTtmb3IodmFyIFM9ZS5xdWVyeVNlbGVjdG9yQWxsKCIuY2hhdC1oaXN0b3J5LWhpZGRlbiIpLF89MDtfPFMubGVuZ3RoO18rKylTW19dLmNsYXNzTGlzdC5yZW1vdmUoImNoYXQtaGlzdG9yeS1oaWRkZW4iKTtlLnJlbW92ZUF0dHJpYnV0ZSgiZGF0YS1oaXN0b3J5LXNpZyIpfWlmKG48MSl7YSgpO3JldHVybn1mb3IodmFyIHU9ZS5xdWVyeVNlbGVjdG9yQWxsKCIuY2hhdC1tZXNzYWdlOm5vdCguc3lzdGVtLWluZm8pIikscz1bXSxvPW51bGwsbD0wO2w8dS5sZW5ndGg7bCsrKXt2YXIgYz11W2xdLmdldEF0dHJpYnV0ZSgiZGF0YS1tc2ctaW5kZXgiKTtpZihjIT1udWxsKXt2YXIgZj1wYXJzZUludChjLDEwKTtpc05hTihmKXx8ZjxuJiYocy5wdXNoKGYpLG98fChvPXVbbF0pKX19aWYocy5sZW5ndGg8Mnx8IW8pe2EoKTtyZXR1cm59dmFyIGQ9eHYodCxzKSx2PXF0KCJoaXN0b3J5LXN1bW1hcnkiLFtuXSksaD1YZSh2KT09PSEwLGc9bisiOiIrcy5sZW5ndGgrIjoiKyhoPzE6MCkrIjoiK2Qucm91bmRzKyI6IitkLnRvb2xzKyI6IitkLmFnZW50cysiOiIrZC5lcnJvcnM7aWYoIShlLmdldEF0dHJpYnV0ZSgiZGF0YS1oaXN0b3J5LXNpZyIpPT09ZyYmZS5xdWVyeVNlbGVjdG9yKCIuY2hhdC1oaXN0b3J5LXN1bW1hcnkiKSkpe3ZhciBtPWUucXVlcnlTZWxlY3RvcigiLmNoYXQtaGlzdG9yeS1zdW1tYXJ5Iik7bSYmbS5yZW1vdmUoKTtmb3IodmFyIHk9ZS5xdWVyeVNlbGVjdG9yQWxsKCIuY2hhdC1oaXN0b3J5LWhpZGRlbiIpLHc9MDt3PHkubGVuZ3RoO3crKyl5W3ddLmNsYXNzTGlzdC5yZW1vdmUoImNoYXQtaGlzdG9yeS1oaWRkZW4iKTt2YXIgRT16byhkKSxCPWNlKGg/Imhpc3RvcnkuY29sbGFwc2UiOiJoaXN0b3J5LmV4cGFuZCIpLEY9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Ri5jbGFzc05hbWU9ImNoYXQtaGlzdG9yeS1zdW1tYXJ5IixGLnNldEF0dHJpYnV0ZSgiZGF0YS1leHBhbmQta2V5Iix2KSxGLnNldEF0dHJpYnV0ZSgiZGF0YS1leHBhbmRlZCIsaD8idHJ1ZSI6ImZhbHNlIiksRi5pbm5lckhUTUw9JzxidXR0b24gY2xhc3M9ImNoYXQtaGlzdG9yeS1zdW1tYXJ5LWJ0biIgdHlwZT0iYnV0dG9uIiBvbmNsaWNrPSJ3aW5kb3cuX19oaXN0b3J5U3VtbWFyeVRvZ2dsZSh0aGlzKSIgYXJpYS1leHBhbmRlZD0iJysoaD8idHJ1ZSI6ImZhbHNlIikrJyI+PHNwYW4gY2xhc3M9ImNoYXQtaGlzdG9yeS1zdW1tYXJ5LWljb24iPicreigiZm9sZGVyIix7c2l6ZToxNX0pKyc8L3NwYW4+PHNwYW4gY2xhc3M9ImNoYXQtaGlzdG9yeS1zdW1tYXJ5LWJvZHkiPjxzcGFuIGNsYXNzPSJjaGF0LWhpc3Rvcnktc3VtbWFyeS10aXRsZSI+JytwKEIpKyc8L3NwYW4+PHNwYW4gY2xhc3M9ImNoYXQtaGlzdG9yeS1zdW1tYXJ5LW1ldGEiPicrcChFKSsnPC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0iY2hhdC1oaXN0b3J5LXN1bW1hcnktY2hldnJvbiI+Jyt6KCJjaGV2cm9uRG93biIse3NpemU6MTZ9KSsiPC9zcGFuPjwvYnV0dG9uPiIsZS5pbnNlcnRCZWZvcmUoRixvKSxWYShGLGgpLGUuc2V0QXR0cmlidXRlKCJkYXRhLWhpc3Rvcnktc2lnIixnKX19d2luZG93Ll9faGlzdG9yeVN1bW1hcnlUb2dnbGU9ZnVuY3Rpb24oZSl7dmFyIHQ9ZSYmZS5jbG9zZXN0P2UuY2xvc2VzdCgiLmNoYXQtaGlzdG9yeS1zdW1tYXJ5Iik6bnVsbDtpZih0KXt2YXIgbj10LmdldEF0dHJpYnV0ZSgiZGF0YS1leHBhbmQta2V5IiksaT10LmdldEF0dHJpYnV0ZSgiZGF0YS1leHBhbmRlZCIpIT09InRydWUiO3Quc2V0QXR0cmlidXRlKCJkYXRhLWV4cGFuZGVkIixpPyJ0cnVlIjoiZmFsc2UiKSxlLnNldEF0dHJpYnV0ZSgiYXJpYS1leHBhbmRlZCIsaT8idHJ1ZSI6ImZhbHNlIik7dmFyIGE9dC5xdWVyeVNlbGVjdG9yKCIuY2hhdC1oaXN0b3J5LXN1bW1hcnktdGl0bGUiKTthJiYoYS50ZXh0Q29udGVudD1jZShpPyJoaXN0b3J5LmNvbGxhcHNlIjoiaGlzdG9yeS5leHBhbmQiKSksbiYmTXUobixpKSxWYSh0LGkpO3ZhciB1PXQucGFyZW50RWxlbWVudDtpZihpJiZLYSh1KSx1KXt2YXIgcz11LmdldEF0dHJpYnV0ZSgiZGF0YS1oaXN0b3J5LXNpZyIpO2lmKHMpe3ZhciBvPXMuc3BsaXQoIjoiKTtvLmxlbmd0aD49MyYmKG9bMl09aT8iMSI6IjAiLHUuc2V0QXR0cmlidXRlKCJkYXRhLWhpc3Rvcnktc2lnIixvLmpvaW4oIjoiKSkpfX19fTtmdW5jdGlvbiBBaShlKXtpZighZXx8ZS50eXBlIT09InRvb2xfdXNlIilyZXR1cm4gbnVsbDt2YXIgdD1lLmlucHV0fHx7fSxuPXR5cGVvZiB0LnN1YmFnZW50X3R5cGU9PSJzdHJpbmciP3Quc3ViYWdlbnRfdHlwZTpudWxsO3JldHVybiFuJiZlLm5hbWUhPT0iVGFzayImJmUubmFtZSE9PSJBZ2VudCI/bnVsbDp7dGFza0lkOmUuaWQsYWdlbnRUeXBlOm58fHZvaWQgMCx0YXNrRGVzY3JpcHRpb246dHlwZW9mIHQuZGVzY3JpcHRpb249PSJzdHJpbmciP3QuZGVzY3JpcHRpb246dm9pZCAwfX1mdW5jdGlvbiBPdihlKXt2YXIgdD1uZXcgTWFwO2lmKCFBcnJheS5pc0FycmF5KGUpKXJldHVybiB0O2Zvcih2YXIgbj0wO248ZS5sZW5ndGg7bisrKXt2YXIgaT1lW25dO2lmKCEoIWl8fGkucm9sZSE9PSJhc3Npc3RhbnQifHwhQXJyYXkuaXNBcnJheShpLmNvbnRlbnQpKSlmb3IodmFyIGE9MDthPGkuY29udGVudC5sZW5ndGg7YSsrKXt2YXIgdT1pLmNvbnRlbnRbYV07aWYoISghdXx8dS50eXBlIT09InRvb2xfdXNlIikpe3ZhciBzPXUuX19zdWJhZ2VudHx8QWkodSk7cyYmdC5zZXQodS5pZCxzKX19fXJldHVybiB0fWZ1bmN0aW9uIFB2KGUpe3ZhciB0PW5ldyBNYXA7aWYoIUFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIHQ7dmFyIG49bmV3IE1hcCxpPW5ldyBTZXQ7ZnVuY3Rpb24gYShmKXtpZighKCFmfHwhZi50YXNrSWQpJiYhaS5oYXMoZi50YXNrSWQpKXtpLmFkZChmLnRhc2tJZCk7dmFyIGQ9UG8oZik7ZCYmKG4uaGFzKGQpfHxuLnNldChkLFtdKSxuLmdldChkKS5wdXNoKGYudGFza0lkKSl9fWZvcih2YXIgdT0wO3U8ZS5sZW5ndGg7dSsrKXt2YXIgcz1lW3VdO2lmKCEoIXN8fCFBcnJheS5pc0FycmF5KHMuY29udGVudCkpKWZvcih2YXIgbz0wO288cy5jb250ZW50Lmxlbmd0aDtvKyspe3ZhciBsPXMuY29udGVudFtvXTtpZihsKXt2YXIgYz1sLl9fc3ViYWdlbnR8fChsLnR5cGU9PT0idG9vbF91c2UiP0FpKGwpOm51bGwpO2MmJmEoYyl9fX1yZXR1cm4gbi5mb3JFYWNoKGZ1bmN0aW9uKGYpe2lmKCEoZi5sZW5ndGg8MikpZm9yKHZhciBkPTA7ZDxmLmxlbmd0aDtkKyspdC5zZXQoZltkXSwiICMiKyhkKzEpKX0pLHR9ZnVuY3Rpb24gVm8oZSx0KXt2YXIgbj1bXTtpZighQXJyYXkuaXNBcnJheShlKXx8IWUubGVuZ3RoKXJldHVybiBuO2Zvcih2YXIgaT1udWxsLGE9MDthPGUubGVuZ3RoO2ErKyl7dmFyIHU9ZVthXSxzPXUmJnUudHlwZT09PSJ0ZXh0IiYmdS5fX3Byb2Nlc3Npbmc9PT0hMDtpZihzJiZpKXtpLmJsb2Nrcy5wdXNoKHUpO2NvbnRpbnVlfXZhciBvPXUmJnUuX19zdWJhZ2VudD91Ll9fc3ViYWdlbnQ6bnVsbDtvfHwobz1BaSh1KSksIW8mJnUmJnUudHlwZT09PSJ0b29sX3Jlc3VsdCImJnQmJnQuaGFzKHUudG9vbF91c2VfaWQpJiYobz10LmdldCh1LnRvb2xfdXNlX2lkKSk7dmFyIGw9bz9vLnRhc2tJZDpudWxsOyghaXx8aS5rZXkhPT1sKSYmKGk9e2tleTpsLHN1YmFnZW50Om8sYmxvY2tzOltdLGZpcnN0SW5kZXg6YX0sbi5wdXNoKGkpKSxpLmJsb2Nrcy5wdXNoKHUpfXJldHVybiBufWZ1bmN0aW9uIEphKGUsdCxuLGksYSl7dmFyIHU9IiI7dHJ5e2Zvcih2YXIgcz1EdihlKSxvPTA7bzxzLmxlbmd0aDtvKyspe3ZhciBsPXNbb107dHJ5e2lmKGwudHlwZT09PSJncm91cCIpe2Zvcih2YXIgYz1bXSxmPTA7ZjxsLml0ZW1zLmxlbmd0aDtmKyspYy5wdXNoKHtibG9jazpsLml0ZW1zW2ZdLmJsb2NrLGluZGV4OmwuaXRlbXNbZl0uaW5kZXgrdH0pO3UrPUF2KGMsbixpLGEpfWVsc2UgdSs9R28obC5ibG9jayxuLGksbC5pbmRleCt0LGEpfWNhdGNoe3UrPSc8ZGl2IGNsYXNzPSJyZW5kZXItZXJyb3IiPlx1NkQ4OFx1NjA2Rlx1NTc1N1x1NkUzMlx1NjdEM1x1NTkzMVx1OEQyNTwvZGl2Pid9fX1jYXRjaHt1Kz0nPGRpdiBjbGFzcz0icmVuZGVyLWVycm9yIj5cdTZEODhcdTYwNkZcdTZFMzJcdTY3RDNcdTU5MzFcdThEMjU8L2Rpdj4nfXJldHVybiB1fWZ1bmN0aW9uIEtvKGUsdCxuLGksYSx1KXtmb3IodmFyIHM9dXx8e30sbz1zLnNob3dIYW5kb2ZmIT09ITEsbD0iIixjPW51bGwsZj0wO2Y8ZS5sZW5ndGg7ZisrKXt2YXIgZD1lW2ZdLHY9SmEoZC5ibG9ja3MsZC5maXJzdEluZGV4LHQsaSxhKTtpZighKCF2fHwhdi50cmltKCkpKWlmKGQuc3ViYWdlbnQpe3ZhciBoPW8mJmMhPT1kLnN1YmFnZW50LnRhc2tJZDtsKz1IdihkLG4sdixhLGgpLGM9ZC5zdWJhZ2VudC50YXNrSWR9ZWxzZSBsKz0nPGRpdiBjbGFzcz0iY2hhdC1tZXNzYWdlLXNlZ21lbnQgcGFyZW50Ij4nK1FuKHQpKyc8ZGl2IGNsYXNzPSJjaGF0LW1lc3NhZ2UtY29udGVudCI+Jyt2KyI8L2Rpdj48L2Rpdj4iLGM9bnVsbH1yZXR1cm4gbH1mdW5jdGlvbiBIdihlLHQsbixpLGEpe3ZhciB1PWUuc3ViYWdlbnQscz1fbyh1KSxvPUhvKHUpLGw9dS50YXNrSWR8fCIiLGM9QmkoRGkocykpLGY7aWYoYSl7dmFyIGQ9JzxzdHJvbmcgY2xhc3M9InN1YmFnZW50LXBhbmVsLW5hbWUiPicrcChvKSsnPC9zdHJvbmc+PHNwYW4gY2xhc3M9InN1YmFnZW50LXBhbmVsLXRhZyIgdGl0bGU9IicrcChjZSgic3ViYWdlbnQudGFnX3RpdGxlIikpKyciPicrcChjZSgic3ViYWdlbnQudGFnIikpKyI8L3NwYW4+Iix2PSEhKHUudGFza0Rlc2NyaXB0aW9uJiZTdHJpbmcodS50YXNrRGVzY3JpcHRpb24pLnRyaW0oKSksaD12P2NlKCJzdWJhZ2VudC5oYW5kb2ZmLndpdGhfZGVzYyIse3BhcmVudDpwKHQpLHN1YjpkfSk6Y2UoInN1YmFnZW50LmhhbmRvZmYiLHtwYXJlbnQ6cCh0KSxzdWI6ZH0pLGc9dj8nPHNwYW4gY2xhc3M9InN1YmFnZW50LXBhbmVsLXRhc2stZGVzYyI+JytwKHUudGFza0Rlc2NyaXB0aW9uKSsiPC9zcGFuPiI6IiI7Zj0nPHNwYW4gY2xhc3M9InN1YmFnZW50LXBhbmVsLWFycm93IiBhcmlhLWhpZGRlbj0idHJ1ZSI+XHUyMUIzPC9zcGFuPjxzcGFuIGNsYXNzPSJzdWJhZ2VudC1wYW5lbC1hdHRyaWJ1dGlvbiI+JytoK2crIjwvc3Bhbj4ifWVsc2UgZj0nPHNwYW4gY2xhc3M9InN1YmFnZW50LXBhbmVsLWF0dHJpYnV0aW9uIj48c3Ryb25nIGNsYXNzPSJzdWJhZ2VudC1wYW5lbC1uYW1lIj4nK3AobykrJzwvc3Ryb25nPjxzcGFuIGNsYXNzPSJzdWJhZ2VudC1wYW5lbC10YXNrLWRlc2MiPiAnK3AoY2UoInN1YmFnZW50LmNvbnRpbnVlZCIpKSsiPC9zcGFuPjwvc3Bhbj4iO3ZhciBtPXF0KCJzdWJhZ2VudC1wYW5lbCIsW2ksbF0pLHk9WGUobSksdz15PT09bnVsbD8hMTohIXk7ZnVuY3Rpb24gRShCKXtyZXR1cm4nPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJzdWJhZ2VudC1wYW5lbC10b2dnbGUiIGRhdGEtcG9zaXRpb249IicrQisnIiBvbmNsaWNrPSJfX3N1YmFnZW50UGFuZWxUb2dnbGUoZXZlbnQsIHRoaXMpIiBhcmlhLWV4cGFuZGVkPSInKyh3PyJ0cnVlIjoiZmFsc2UiKSsnIiBhcmlhLWxhYmVsPSInK3AoY2Uodz8idWkuY29sbGFwc2VfcGFuZWxfYXJpYSI6InVpLmV4cGFuZF9wYW5lbF9hcmlhIikpKyciPjxzcGFuIGNsYXNzPSJzdWJhZ2VudC1wYW5lbC10b2dnbGUtbGFiZWwiPicrcChjZSh3PyJ1aS5jb2xsYXBzZSI6InVpLmV4cGFuZCIpKSsnPC9zcGFuPjxzdmcgY2xhc3M9InN1YmFnZW50LXBhbmVsLXRvZ2dsZS1pY29uIiB3aWR0aD0iMTAiIGhlaWdodD0iMTAiIHZpZXdCb3g9IjAgMCAxMCAxMCIgZmlsbD0ibm9uZSIgYXJpYS1oaWRkZW49InRydWUiPjxwYXRoIGQ9Ik0yLjUgMy43NUw1IDYuMjVMNy41IDMuNzUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEuNCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+PC9zdmc+PC9idXR0b24+J31yZXR1cm4nPGRpdiBjbGFzcz0ic3ViYWdlbnQtcGFuZWwiIGRhdGEtZXhwYW5kLWtpbmQ9InN1YmFnZW50LXBhbmVsIiBkYXRhLWV4cGFuZC1rZXk9IicrcChtKSsnIiBkYXRhLWFnZW50LWlkPSInK3AobCkrJyIgZGF0YS1leHBhbmRlZD0iJysodz8idHJ1ZSI6ImZhbHNlIikrJyIgc3R5bGU9Ii0tYWdlbnQtY29sb3I6JytzLnByaW1hcnkrJyI+PGRpdiBjbGFzcz0ic3ViYWdlbnQtcGFuZWwtaGVhZGVyIiBvbmNsaWNrPSJfX3N1YmFnZW50UGFuZWxUb2dnbGUoZXZlbnQsIHRoaXMpIiByb2xlPSJidXR0b24iIHRhYmluZGV4PSIwIiBhcmlhLWxhYmVsPSInK3AoY2UoInN1YmFnZW50LnRpdGxlX2FyaWEiKSkrJyI+PHNwYW4gY2xhc3M9InN1YmFnZW50LXBhbmVsLWF2YXRhciIgYXJpYS1oaWRkZW49InRydWUiPicrYysiPC9zcGFuPiIrZitFKCJ0b3AiKSsnPC9kaXY+PGRpdiBjbGFzcz0ic3ViYWdlbnQtcGFuZWwtYm9keSI+JytuKyc8L2Rpdj48ZGl2IGNsYXNzPSJzdWJhZ2VudC1wYW5lbC1mb290ZXIiPjxzcGFuIGNsYXNzPSJzdWJhZ2VudC1wYW5lbC1mb290ZXItaGludCIgYXJpYS1oaWRkZW49InRydWUiPlx1MjAxNCAnK3AobykrIiBcdTIwMTQ8L3NwYW4+IitFKCJib3R0b20iKSsiPC9kaXY+PC9kaXY+In1mdW5jdGlvbiBfdihlLHQsbixpKXt2YXIgYT1lLnJvbGUsdT1xdShlLG4pLHM9YT09PSJ1c2VyIiYmZS5jb250ZW50JiZlLmNvbnRlbnQuc29tZShmdW5jdGlvbihGKXtyZXR1cm4gRi5fX3F1ZXVlZH0pO2lmKCFlLmNvbnRlbnR8fGUuY29udGVudC5sZW5ndGg9PT0wKXJldHVybiBhPT09ImFzc2lzdGFudCI/JzxkaXYgY2xhc3M9ImNoYXQtbWVzc2FnZSAnK2ErJyI+JytRbihhKSsnPGRpdiBjbGFzcz0iY2hhdC1tZXNzYWdlLWJ1YmJsZSI+PGRpdiBjbGFzcz0idHlwaW5nLWluZGljYXRvciI+PHNwYW4+PC9zcGFuPjxzcGFuPjwvc3Bhbj48c3Bhbj48L3NwYW4+PC9kaXY+PC9kaXY+PC9kaXY+JzonPGRpdiBjbGFzcz0iY2hhdC1tZXNzYWdlICcrYSsnIGVtcHR5LW1lc3NhZ2UiIGRhdGEtbWVzc2FnZS1rZXk9IicrcCh1KSsnIj4nK1FuKGEpKyc8ZGl2IGNsYXNzPSJjaGF0LW1lc3NhZ2UtY29udGVudCI+PHNwYW4gY2xhc3M9ImVtcHR5LW1lc3NhZ2UtaGludCI+XHVGRjA4XHU3QTdBXHU2RDg4XHU2MDZGXHVGRjA5PC9zcGFuPjwvZGl2PjwvZGl2Pic7dmFyIG89RnYoZS5jb250ZW50KSxsPXphKCJhc3Npc3RhbnQiKTtpZihhIT09ImFzc2lzdGFudCIpe3ZhciBjPVZvKGUuY29udGVudCxpKSxmPWMuc29tZShmdW5jdGlvbihGKXtyZXR1cm4gRi5zdWJhZ2VudH0pLGQ9cz8iIHF1ZXVlZCI6IiIsdj1zPyc8c3BhbiBjbGFzcz0icXVldWVkLWJhZGdlIj5cdTYzOTJcdTk2MUZcdTRFMkQ8L3NwYW4+JzoiIixoPUV2KCk7aWYoZil7dmFyIGc9S28oYyxhLGwubmFtZSxvLHUse3Nob3dIYW5kb2ZmOiExfSk7cmV0dXJuJzxkaXYgY2xhc3M9ImNoYXQtbWVzc2FnZSAnK2ErZCsnIG11bHRpLWFnZW50IiBkYXRhLW1lc3NhZ2Uta2V5PSInK3AodSkrJyI+JytnK3YrIjwvZGl2PiJ9dmFyIG09SmEoZS5jb250ZW50LDAsYSxvLHUpO3JldHVybic8ZGl2IGNsYXNzPSJjaGF0LW1lc3NhZ2UgJythK2QrJyIgZGF0YS1tZXNzYWdlLWtleT0iJytwKHUpKyciPicrUW4oYSx7bGVmdFNsb3Q6aH0pKyc8ZGl2IGNsYXNzPSJjaGF0LW1lc3NhZ2UtY29udGVudCI+JyttK3YrIjwvZGl2PjwvZGl2PiJ9dmFyIHk9Vm8oZS5jb250ZW50LGkpLHc9eS5zb21lKGZ1bmN0aW9uKEYpe3JldHVybiBGLnN1YmFnZW50fSk7aWYoIXcpe3ZhciBFPUphKGUuY29udGVudCwwLGEsbyx1KTtyZXR1cm4nPGRpdiBjbGFzcz0iY2hhdC1tZXNzYWdlICcrYSsnIiBkYXRhLW1lc3NhZ2Uta2V5PSInK3AodSkrJyI+JytRbihhKSsnPGRpdiBjbGFzcz0iY2hhdC1tZXNzYWdlLWNvbnRlbnQiPicrRSsiPC9kaXY+PC9kaXY+In12YXIgQj0nPGRpdiBjbGFzcz0iY2hhdC1tZXNzYWdlICcrYSsnIG11bHRpLWFnZW50IiBkYXRhLW1lc3NhZ2Uta2V5PSInK3AodSkrJyI+JztyZXR1cm4gQis9S28oeSxhLGwubmFtZSxvLHUse3Nob3dIYW5kb2ZmOiEwfSksQis9IjwvZGl2PiIsQn12YXIgTnY9L15ccypcW+mZhOS7tuW3suS4iuS8oO+8jOivt+afpeeci+S7peS4i+aWh+S7tjpcbihbXHNcU10qPylcXVxuKy87ZnVuY3Rpb24ganYoZSl7dmFyIHQ9KGV8fCIiKS50cmltKCk7aWYoIXQpcmV0dXJuIiI7dmFyIG49dC5zcGxpdCgiLyIpLnBvcCgpfHx0O2lmKHl1KHQpKXt2YXIgaT0iL2FwaS9maWxlLXJhdz9wYXRoPSIrZW5jb2RlVVJJQ29tcG9uZW50KHQpO3JldHVybic8ZGl2IGNsYXNzPSJ1c2VyLWF0dGFjaG1lbnQtaW1hZ2UiPjxpbWcgY2xhc3M9InVzZXItYXR0YWNobWVudC10aHVtYiIgbG9hZGluZz0ibGF6eSIgc3JjPSInK2krJyIgYWx0PSInK3AobikrJyIgZGF0YS1wYXRoPSInK3AodCkrYCIgb25jbGljaz0iZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7IGlmKHdpbmRvdy5fX29wZW5GaWxlUHJldmlldyl3aW5kb3cuX19vcGVuRmlsZVByZXZpZXcodGhpcy5nZXRBdHRyaWJ1dGUoJ2RhdGEtcGF0aCcpKTsiIG9uZXJyb3I9InZhciB3PXRoaXMuY2xvc2VzdCgnLnVzZXItYXR0YWNobWVudC1pbWFnZScpOyBpZih3KXcuc3R5bGUuZGlzcGxheT0nbm9uZSc7IiAvPjwvZGl2PmB9cmV0dXJuJzxkaXYgY2xhc3M9InVzZXItYXR0YWNobWVudC1maWxlIiBkYXRhLXBhdGg9IicrcCh0KStgIiBvbmNsaWNrPSJldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgaWYod2luZG93Ll9fb3BlbkZpbGVQcmV2aWV3KXdpbmRvdy5fX29wZW5GaWxlUHJldmlldyh0aGlzLmdldEF0dHJpYnV0ZSgnZGF0YS1wYXRoJykpOyI+PHNwYW4gY2xhc3M9InVzZXItYXR0YWNobWVudC1maWxlLWljb24iPjxzdmcgdmlld0JveD0iMCAwIDE2IDE2IiB3aWR0aD0iMTMiIGhlaWdodD0iMTMiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEuNSI+PHBhdGggZD0iTTkgMS41SDRhMSAxIDAgMCAwLTEgMXYxMWExIDEgMCAwIDAgMSAxaDhhMSAxIDAgMCAwIDEtMVY1LjVMOSAxLjV6Ii8+PHBhdGggZD0iTTkgMS41VjUuNWg0Ii8+PC9zdmc+PC9zcGFuPjxzcGFuIGNsYXNzPSJ1c2VyLWF0dGFjaG1lbnQtZmlsZS1uYW1lIj5gK3AobikrIjwvc3Bhbj48L2Rpdj4ifWZ1bmN0aW9uIEpvKGUpe3ZhciB0PWV8fCIiLG49dC5tYXRjaChOdik7aWYoIW4pcmV0dXJuIHAodCk7Zm9yKHZhciBpPSIiLGE9blsxXS5zcGxpdChgCmApLHU9MDt1PGEubGVuZ3RoO3UrKylpKz1qdihhW3VdKTt2YXIgcz10LnNsaWNlKG5bMF0ubGVuZ3RoKSxvPWk/JzxkaXYgY2xhc3M9InVzZXItYXR0YWNobWVudHMiPicraSsiPC9kaXY+IjoiIixsPXMudHJpbSgpPyc8ZGl2IGNsYXNzPSJ1c2VyLWF0dGFjaG1lbnQtdGV4dCI+JytwKHMpKyI8L2Rpdj4iOiIiO3JldHVybiBvK2x9ZnVuY3Rpb24gR28oZSx0LG4saSxhKXtpZighZXx8IWUudHlwZXx8ZS50eXBlPT09InRvb2xfdXNlIiYmZS5fX3N1YmFnZW50JiZlLl9fc3ViYWdlbnQudGFza0lkPT09ZS5pZClyZXR1cm4iIjtpZihlLnR5cGU9PT0idG9vbF9yZXN1bHQiJiZlLl9fc3ViYWdlbnQmJmUuX19zdWJhZ2VudC50YXNrSWQ9PT1lLnRvb2xfdXNlX2lkKXJldHVybiBidihlLHQpO3N3aXRjaChlLnR5cGUpe2Nhc2UidGV4dCI6cmV0dXJuIHQ9PT0iYXNzaXN0YW50IiYmZS5fX3Byb2Nlc3Npbmc/JzxkaXYgY2xhc3M9InR5cGluZy1pbmRpY2F0b3IiPjxzcGFuPjwvc3Bhbj48c3Bhbj48L3NwYW4+PHNwYW4+PC9zcGFuPjwvZGl2Pic6dD09PSJhc3Npc3RhbnQiP1lhKGUudGV4dHx8IiIpOkpvKGUudGV4dHx8IiIpO2Nhc2UidGhpbmtpbmciOnZhciB1PWUudGhpbmtpbmd8fCIiLHM9ZS50aGlua2luZz09PXZvaWQgMCYmZS50eXBlPT09InRoaW5raW5nIjtpZihzKXJldHVybic8ZGl2IGNsYXNzPSJ0aGlua2luZy1pbmxpbmUgdGhpbmtpbmctc3RyZWFtaW5nIiBkYXRhLXRoaW5raW5nPSIiPjxkaXYgY2xhc3M9InRoaW5raW5nLXN0cmVhbWluZy1pbm5lciI+PHNwYW4gY2xhc3M9InRoaW5raW5nLXN0cmVhbWluZy1pY29uIHNwaW5uaW5nIj5cdTI5QkY8L3NwYW4+PGRpdiBjbGFzcz0idGhpbmtpbmctc3RyZWFtaW5nLXRleHQiPjwvZGl2PjwvZGl2PjwvZGl2Pic7aWYoIXUudHJpbSgpKXJldHVybiIiO3ZhciBvPXUubGVuZ3RoPjYwP3Uuc2xpY2UoMCw1NykrIlx1MjAyNiI6dSxsPXF0KCJ0aGlua2luZyIsW2EsaV0pLGM9WGUobCksZj1jPT09bnVsbD9JbigidGhpbmtpbmciKTpjO3JldHVybic8ZGl2IGNsYXNzPSJ0aGlua2luZy1pbmxpbmUgJysoZj8iZXhwYW5kZWQiOiJjb2xsYXBzZWQiKSsnIiBkYXRhLWV4cGFuZC1raW5kPSJ0aGlua2luZyIgZGF0YS1leHBhbmQta2V5PSInK3AobCkrJyIgZGF0YS10aGlua2luZz0iJytwKHUpKyciIG9uY2xpY2s9Il9fdGhpbmtpbmdUb2dnbGUodGhpcykiPjxzcGFuIGNsYXNzPSJ0aGlua2luZy1pbmxpbmUtaWNvbiI+XHUyOUJGPC9zcGFuPjxzcGFuIGNsYXNzPSJ0aGlua2luZy1pbmxpbmUtcHJldmlldyI+JytwKGY/dTpvKSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJ0aGlua2luZy1pbmxpbmUtYWN0aW9uIj4nKyhmPyJcdTY1MzZcdThENzciOiJcdTVDNTVcdTVGMDAiKSsiPC9zcGFuPjwvZGl2PiI7Y2FzZSJ0b29sX3VzZSI6dmFyIGQ9Um8obixlLmlkKSx2PVV2KGUsZCxpLGEpO3JldHVybiB3dihuLGUuaWQpJiYodj1DdihlLm5hbWV8fCJcdTVERTVcdTUxNzciKSt2KSx2O2Nhc2UidG9vbF9yZXN1bHQiOnJldHVybiIiO2RlZmF1bHQ6dmFyIGg9ZSYmZS50eXBlP1N0cmluZyhlLnR5cGUpOiJcdTY3MkFcdTc3RTUiLGc9IiI7dHJ5e2c9SlNPTi5zdHJpbmdpZnkoZSxudWxsLDIpfWNhdGNoe2c9Int9In1yZXR1cm5gPGRpdiBjbGFzcz0idW5rbm93bi1ibG9jayBjb2xsYXBzZWQiIG9uY2xpY2s9InRoaXMuY2xhc3NMaXN0LnRvZ2dsZSgnY29sbGFwc2VkJykiPjxkaXYgY2xhc3M9InVua25vd24tYmxvY2staGVhZGVyIj48c3BhbiBjbGFzcz0idW5rbm93bi1ibG9jay1pY29uIj4/PC9zcGFuPjxzcGFuIGNsYXNzPSJ1bmtub3duLWJsb2NrLWxhYmVsIj5cdTY3MkFcdThCQzZcdTUyMkJcdTc2ODRcdTUxODVcdTVCQjlcdTU3NTdcdUZGMUFgK3AoaCkrJzwvc3Bhbj48c3BhbiBjbGFzcz0idW5rbm93bi1ibG9jay10b2dnbGUiPlx1MjVCQzwvc3Bhbj48L2Rpdj48cHJlIGNsYXNzPSJ1bmtub3duLWJsb2NrLWJvZHkiPicrcChnKSsiPC9wcmU+PC9kaXY+In19ZnVuY3Rpb24gUnYoZSx0LG4saSxhLHUscyl7dmFyIG89ZS5pZHx8InRvb2wtIituLGw9cXQoImlubGluZS10b29sIixbdSxvfHxzLHNdKSxjPVhlKGwpLGY9ZS5pbnB1dHx8e30sZD1tbih0JiZ0LmNvbnRlbnQpLHY9dCYmdC5pc19lcnJvcixoPWQubGVuZ3RoPjAsZz12PyJcdTI3MTciOmg/Ilx1MjcxMyI6Ilx1MjAyNiIsbT0iIix5PSIiLHc9IiIsRT0iIjtpZihuPT09IlJlYWQiKXttPSc8c3ZnIGNsYXNzPSJpbmxpbmUtdG9vbC1pY29uIiB2aWV3Qm94PSIwIDAgMTYgMTYiIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMS41Ij48cGF0aCBkPSJNMSAzLjVBMS41IDEuNSAwIDAgMSAyLjUgMmgyLjc2NGMuOTU4IDAgMS43Ni41NiAyLjMxMSAxLjE4NEM4LjQwNSAzLjc3IDkuMTQ2IDQgMTAgNGgzLjVBMS41IDEuNSAwIDAgMSAxNSA1LjV2N2ExLjUgMS41IDAgMCAxLTEuNSAxLjVoLTExQTEuNSAxLjUgMCAwIDEgMSAxMi41di05eiIvPjxwYXRoIGQ9Ik0yIDUuNWgxMk0yIDhoOE0yIDEwLjVoNSIvPjwvc3ZnPic7dmFyIEI9Zi5maWxlX3BhdGh8fGYucGF0aHx8aXx8IiIsRj0iIjtmLmxpbWl0JiYoRj0iICIrZi5vZmZzZXQrIi0iKyhmLm9mZnNldCtmLmxpbWl0KSkseT1CLHc9Rn1lbHNlIGlmKG49PT0iR2xvYiIpe209JzxzdmcgY2xhc3M9ImlubGluZS10b29sLWljb24iIHZpZXdCb3g9IjAgMCAxNiAxNiIgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxLjUiPjxjaXJjbGUgY3g9IjciIGN5PSI3IiByPSI1Ii8+PHBhdGggZD0iTTEwLjUgMTAuNUwxNCAxNCIvPjwvc3ZnPic7dmFyIHg9Zi5wYXR0ZXJufHwiIixTPWYucGF0aHx8aXx8IiI7eT14LHc9U31lbHNlIGlmKG49PT0iR3JlcCIpe209JzxzdmcgY2xhc3M9ImlubGluZS10b29sLWljb24iIHZpZXdCb3g9IjAgMCAxNiAxNiIgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxLjUiPjxjaXJjbGUgY3g9IjYuNSIgY3k9IjYuNSIgcj0iNC41Ii8+PHBhdGggZD0iTTExLjUgMTEuNUwxNSAxNSIvPjwvc3ZnPic7dmFyIHg9Zi5wYXR0ZXJufHwiIixTPWYucGF0aHx8aXx8IiI7eT14LHc9UyxmLmNvbnRleHQmJih3Kz0iIC1DIitmLmNvbnRleHQpfWVsc2UgaWYobj09PSJXZWJGZXRjaCIpe209JzxzdmcgY2xhc3M9ImlubGluZS10b29sLWljb24iIHZpZXdCb3g9IjAgMCAxNiAxNiIgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxLjUiPjxjaXJjbGUgY3g9IjgiIGN5PSI4IiByPSI2LjUiLz48cGF0aCBkPSJNOCAxLjV2MTNNMS41IDhoMTMiLz48L3N2Zz4nO3ZhciBfPWYudXJsfHwiIjt5PV8sdz1hfHwiIn1lbHNlIGlmKG49PT0iV2ViU2VhcmNoIil7bT0nPHN2ZyBjbGFzcz0iaW5saW5lLXRvb2wtaWNvbiIgdmlld0JveD0iMCAwIDE2IDE2IiB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEuNSI+PGNpcmNsZSBjeD0iNyIgY3k9IjciIHI9IjUiLz48cGF0aCBkPSJNMTAuNSAxMC41TDE0IDE0Ii8+PHBhdGggZD0iTTUgN2g0TTcgNXY0Ii8+PC9zdmc+Jzt2YXIgVj1mLnF1ZXJ5fHwiIjt5PVYsdz1hfHwiIn1lbHNlIG49PT0iVG9kb1JlYWQiPyhtPSc8c3ZnIGNsYXNzPSJpbmxpbmUtdG9vbC1pY29uIiB2aWV3Qm94PSIwIDAgMTYgMTYiIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMS41Ij48cmVjdCB4PSIyIiB5PSIyIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHJ4PSIyIi8+PHBhdGggZD0iTTUgOGwyIDIgNC00Ii8+PC9zdmc+Jyx5PSJcdThCRkJcdTUzRDZcdTVGODVcdTUyOUVcdTUyMTdcdTg4NjgiLHc9YXx8IiIpOihtPSc8c3ZnIGNsYXNzPSJpbmxpbmUtdG9vbC1pY29uIiB2aWV3Qm94PSIwIDAgMTYgMTYiIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMS41Ij48Y2lyY2xlIGN4PSI4IiBjeT0iOCIgcj0iNi41Ii8+PHBhdGggZD0iTTggNXYzLjVNOCAxMWguMDEiLz48L3N2Zz4nLHk9R2Eobiksdz1hfHwiIik7aWYoaCl7dmFyIFU9ZC5zcGxpdChgCmApO1UubGVuZ3RoPjEwP0U9VS5zbGljZSgwLDEwKS5qb2luKGAKYCkrYApcdTIwMjZgOkU9ZH12YXIgST1wKGQpLEQ9cChFKSxNPWQsTD0iIixXPWM9PT1udWxsP0luKCJpbmxpbmVUb29scyIpOmM7aD9MPSc8ZGl2IGNsYXNzPSJpbmxpbmUtdG9vbC1leHBhbmRlZCIgc3R5bGU9ImRpc3BsYXk6ICcrKFc/ImJsb2NrIjoibm9uZSIpKyc7Ij48ZGl2IGNsYXNzPSJpbmxpbmUtdG9vbC1yZXN1bHQiPicrWW8oZCxuKSsiPC9kaXY+PC9kaXY+Ijp2P0w9JzxkaXYgY2xhc3M9ImlubGluZS10b29sLWV4cGFuZGVkIiBzdHlsZT0iZGlzcGxheTogJysoVz8iYmxvY2siOiJub25lIikrJzsiPjxkaXYgY2xhc3M9ImlubGluZS10b29sLXJlc3VsdCBpbmxpbmUtdG9vbC1lcnJvciI+JytwKGR8fCJcdTY0Q0RcdTRGNUNcdTU5MzFcdThEMjUiKSsiPC9kaXY+PC9kaXY+Ijp0fHwoTD0nPGRpdiBjbGFzcz0iaW5saW5lLXRvb2wtZXhwYW5kZWQiIHN0eWxlPSJkaXNwbGF5OiAnKyhXPyJibG9jayI6Im5vbmUiKSsnOyI+PGRpdiBjbGFzcz0iaW5saW5lLXRvb2wtbG9hZGluZyI+XHU3QjQ5XHU1Rjg1XHU1NENEXHU1RTk0XHUyMDI2PC9kaXY+PC9kaXY+Jyk7dmFyIEs9dCYmdC5fdHJ1bmNhdGVkPT09ITAsWD0iIjtpZihuPT09IlJlYWQiKXt2YXIgbmU9Zi5maWxlX3BhdGh8fGYucGF0aHx8aXx8IiI7aWYobmUmJnl1KG5lKSl7dmFyIHNlPSIvYXBpL2ZpbGUtcmF3P3BhdGg9IitlbmNvZGVVUklDb21wb25lbnQobmUpO1g9JzxkaXYgY2xhc3M9ImlubGluZS10b29sLWltYWdlIiBvbmNsaWNrPSJldmVudC5zdG9wUHJvcGFnYXRpb24oKTsiPjxpbWcgY2xhc3M9ImlubGluZS10b29sLWltYWdlLXRodW1iIiBsb2FkaW5nPSJsYXp5IiBzcmM9Iicrc2UrJyIgYWx0PSInK3AoQikrJyIgZGF0YS1wYXRoPSInK3AobmUpK2AiIG9uY2xpY2s9ImV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyBpZih3aW5kb3cuX19vcGVuRmlsZVByZXZpZXcpd2luZG93Ll9fb3BlbkZpbGVQcmV2aWV3KHRoaXMuZ2V0QXR0cmlidXRlKCdkYXRhLXBhdGgnKSk7IiBvbmVycm9yPSJ2YXIgdz10aGlzLmNsb3Nlc3QoJy5pbmxpbmUtdG9vbC1pbWFnZScpOyBpZih3KXcuc3R5bGUuZGlzcGxheT0nbm9uZSc7IiAvPjwvZGl2PmB9fXZhciByZT13Pyc8c3BhbiBjbGFzcz0iaW5saW5lLXRvb2wtbWV0YSI+JytwKHcpKyI8L3NwYW4+IjoiIixUPXY/ImlubGluZS10b29sLWVycm9yLWlubGluZSI6IiI7VyYmKFQrPSIgaW5saW5lLXRvb2wtb3BlbiIpO3ZhciBxPUs/J2RhdGEtdHJ1bmNhdGVkPSJ0cnVlIiBkYXRhLXRvb2wtdXNlLWlkPSInK3AoZS5pZHx8IiIpKyciICc6IiI7cmV0dXJuJzxkaXYgY2xhc3M9ImlubGluZS10b29sICcrVCsnIiBkYXRhLWV4cGFuZC1raW5kPSJpbmxpbmUtdG9vbCIgZGF0YS1leHBhbmQta2V5PSInK3AobCkrJyIgZGF0YS1yZXN1bHQ9IicrcChNKSsnIiBkYXRhLXByZXZpZXc9IicrRCsnIiBkYXRhLXN0YXR1cz0iJysodj8iZXJyb3IiOmg/ImRvbmUiOiJwZW5kaW5nIikrJyIgJytxKydvbmNsaWNrPSJfX2lubGluZVRvb2xUb2dnbGUodGhpcykiPjxkaXYgY2xhc3M9ImlubGluZS10b29sLXJvdyI+PHNwYW4gY2xhc3M9ImlubGluZS10b29sLXN0YXR1cyI+JytnKyI8L3NwYW4+IittKyc8c3BhbiBjbGFzcz0iaW5saW5lLXRvb2wtdGl0bGUiPicrcCh5KSsiPC9zcGFuPiIrcmUrIjwvZGl2PiIrWCtMKyI8L2Rpdj4ifWZ1bmN0aW9uIFd2KGUsdCxuLGksYSl7dmFyIHU9ZS5pbnB1dHx8e30scz11LmNvbW1hbmR8fHUuY21kfHwiIixvPW1uKHQmJnQuY29udGVudCksbD1lLmlkfHwidG9vbC0iK24sYz1xdCgidGVybWluYWwiLFtpLGx8fGEsYV0pLGY9WGUoYyksZD10JiZ0LmlzX2Vycm9yLHY9dS5leGl0Q29kZSxoPW8ubGVuZ3RoPjAsZz0iIjt0P2Q/Zz0nPHNwYW4gY2xhc3M9InRlcm0tc3RhdHVzLWRvdCB0ZXJtLWVycm9yIj48L3NwYW4+Jzp2PT09MHx8dj09PXZvaWQgMD9nPSc8c3BhbiBjbGFzcz0idGVybS1zdGF0dXMtZG90IHRlcm0tc3VjY2VzcyI+PC9zcGFuPic6Zz0nPHNwYW4gY2xhc3M9InRlcm0tc3RhdHVzLWRvdCB0ZXJtLXdhcm4iPjwvc3Bhbj4nOmc9JzxzcGFuIGNsYXNzPSJ0ZXJtLXN0YXR1cy1kb3QgdGVybS1ydW5uaW5nIj48L3NwYW4+Jztmb3IodmFyIG09JzxzcGFuIGNsYXNzPSJ0ZXJtLXByb21wdCI+JDwvc3Bhbj4nLHk9cChzKSx3PW8uc3BsaXQoYApgKSxFPSIiLEI9MDtCPHcubGVuZ3RoO0IrKyl7dmFyIEY9d1tCXTshRiYmQj09PXcubGVuZ3RoLTF8fChFKz0nPGRpdiBjbGFzcz0idGVybS1saW5lIj4nK3AoRikrIjwvZGl2PiIpfXZhciB4PSIiO2lmKHQmJnYhPT12b2lkIDApe3ZhciBTPXY9PT0wPyJ0ZXJtLWV4aXQtc3VjY2VzcyI6InRlcm0tZXhpdC1lcnJvciI7eD0nPGRpdiBjbGFzcz0idGVybS1leGl0ICcrUysnIj5leGl0ICcrdisiPC9kaXY+In12YXIgXz1zLmxlbmd0aD44MD9zLnNsaWNlKDAsNzcpKyJcdTIwMjYiOnMsVj1mPT09bnVsbD9JbigidGVybWluYWwiKTpmLFU9dCYmdC5fdHJ1bmNhdGVkPT09ITAsST1VPycgZGF0YS10cnVuY2F0ZWQ9InRydWUiIGRhdGEtdG9vbC11c2UtaWQ9IicrcChlLmlkfHwiIikrJyInOiIiO3JldHVybic8ZGl2IGNsYXNzPSJpbmxpbmUtdGVybWluYWwiIGRhdGEtZXhwYW5kLWtpbmQ9InRlcm1pbmFsIiBkYXRhLWV4cGFuZC1rZXk9IicrcChjKSsnIiBkYXRhLWV4cGFuZGVkPSInKyhWPyJ0cnVlIjoiZmFsc2UiKSsnIicrSSsnPjxkaXYgY2xhc3M9InRlcm0taGVhZGVyIiBvbmNsaWNrPSJfX3Rlcm1pbmFsRXhwYW5kKHRoaXMpIj4nK2crJzxzcGFuIGNsYXNzPSJ0ZXJtLWNtZC1wcmV2aWV3Ij48c3BhbiBjbGFzcz0idGVybS1wcm9tcHQiPiQ8L3NwYW4+ICcrcChfKSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJ0ZXJtLXRvZ2dsZS1pY29uIj4nKyhWPyJcdTI1QkMiOiJcdTI1QjYiKSsnPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InRlcm0tYm9keSIgc3R5bGU9ImRpc3BsYXk6JysoVj8iYmxvY2siOiJub25lIikrJzsiPjxkaXYgY2xhc3M9InRlcm0tY29tbWFuZCI+PHNwYW4gY2xhc3M9InRlcm0tcHJvbXB0Ij4kPC9zcGFuPiAnK3krIjwvZGl2PiIrKEU/JzxkaXYgY2xhc3M9InRlcm0tb3V0cHV0Ij4nK0UrIjwvZGl2PiI6IiIpK3grIjwvZGl2PjwvZGl2PiJ9ZnVuY3Rpb24gbW4oZSl7cmV0dXJuIGU/dHlwZW9mIGU9PSJzdHJpbmciP2U6QXJyYXkuaXNBcnJheShlKT9lLm1hcChmdW5jdGlvbih0KXtpZighdHx8dHlwZW9mIHQhPSJvYmplY3QiKXJldHVybiIiO2lmKHQudHlwZT09PSJ0ZXh0IiYmdHlwZW9mIHQudGV4dD09InN0cmluZyIpcmV0dXJuIHQudGV4dDt0cnl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KHQpfWNhdGNoe3JldHVybiIifX0pLmZpbHRlcihCb29sZWFuKS5qb2luKGAKYCk6IiI6IiJ9ZnVuY3Rpb24genYoZSx0LG4saSxhKXt2YXIgdT1lLmlucHV0fHx7fSxzPXUuZmlsZV9wYXRofHx1LnBhdGh8fCIiLG89cy5zcGxpdCgiLyIpLnBvcCgpfHxzLGw9ZS5pZHx8InRvb2wtIituKyItIisodHlwZW9mIGE9PSJudW1iZXIiP2E6MCksYz11Lm9sZF9zdHJpbmd8fCIiLGY9dS5uZXdfc3RyaW5nfHx1LmNvbnRlbnR8fCIiLGQ9dS5vbGRfY29udGVudHx8IiIsdj11Lm5ld19jb250ZW50fHwiIixoPW49PT0iV3JpdGUifHxuPT09Ik11bHRpRWRpdCIsZz10JiZ0LmlzX2Vycm9yLG09bW4odCYmdC5jb250ZW50KSx5PSEhKG0mJm0udHJpbSgpLmxlbmd0aD4wKSx3PSIiLEU9IiI7aD9FPSc8ZGl2IGNsYXNzPSJkaWZmLWxpbmUgZGlmZi1hZGQiPisgJytwKHYpKyI8L2Rpdj4iOihjJiYodz0nPGRpdiBjbGFzcz0iZGlmZi1saW5lIGRpZmYtcmVtb3ZlIj4tICcrcChjKSsiPC9kaXY+IiksZiYmKEU9JzxkaXYgY2xhc3M9ImRpZmYtbGluZSBkaWZmLWFkZCI+KyAnK3AoZikrIjwvZGl2PiIpKTt2YXIgQj0iIixGPSIiO3Q/Zz8oQj0iZGlmZi1lcnJvciIsRj1tLmluZGV4T2YoImhhdmVuJ3QgZ3JhbnRlZCIpIT09LTF8fG0uaW5kZXhPZigicGVybWlzc2lvbiIpIT09LTE/Ilx1N0I0OVx1NUY4NVx1NjM4OFx1Njc0MyI6Ilx1NTkzMVx1OEQyNSIpOihCPSJkaWZmLXN1Y2Nlc3MiLEY9Ilx1NURGMlx1NEZFRVx1NjUzOSIpOihCPSJkaWZmLXBlbmRpbmciLEY9Ilx1NjI2N1x1ODg0Q1x1NEUyRCIpO3ZhciB4PXF0KCJkaWZmIixbaSxsfHxhLGFdKSxTPVhlKHgpLF89SW4oImVkaXRDYXJkcyIpLFY9Uz09PW51bGw/Qj09PSJkaWZmLXBlbmRpbmcifHxfOlMsVT1WPyIiOiIgY29sbGFwc2VkIixJPXcmJkUsRD1JPyJkaWZmLWNvbC1oYWxmIjoiZGlmZi1jb2wtZnVsbCI7cmV0dXJuJzxkaXYgY2xhc3M9ImlubGluZS1kaWZmJytVKyciIGRhdGEtdG9vbC1uYW1lPSInK3AobikrJyIgZGF0YS1leHBhbmQta2luZD0iZGlmZiIgZGF0YS1leHBhbmQta2V5PSInK3AoeCkrJyIgZGF0YS10b29sLXVzZS1pZD0iJytwKGwpKyciPjxkaXYgY2xhc3M9ImRpZmYtaGVhZGVyIiBvbmNsaWNrPSJfX3RjVG9nZ2xlKGV2ZW50LHRoaXMpIj48c3BhbiBjbGFzcz0iZGlmZi1maWxlLWljb24iPjwvc3Bhbj48c3BhbiBjbGFzcz0iZGlmZi1maWxlLW5hbWUiPicrcChvKSsiPC9zcGFuPiIrbHQocywiZGlmZi1wYXRoIikrJzxzcGFuIGNsYXNzPSJkaWZmLXN0YXR1cyAnK0IrJyI+JytGKyc8L3NwYW4+PHNwYW4gY2xhc3M9ImRpZmYtdG9nZ2xlIj5cdTI1QkM8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0iZGlmZi1ib2R5Ij48ZGl2IGNsYXNzPSJkaWZmLWNvbHVtbnMiPicrKEk/JzxkaXYgY2xhc3M9ImRpZmYtY29sICcrRCsnIj48ZGl2IGNsYXNzPSJkaWZmLWNvbC1sYWJlbCI+XHU2NUU3PC9kaXY+Jyt3KyI8L2Rpdj4iOiIiKSsnPGRpdiBjbGFzcz0iZGlmZi1jb2wgJytEKyciPjxkaXYgY2xhc3M9ImRpZmYtY29sLWxhYmVsIj4nKyhJPyJcdTY1QjAiOiIiKSsiPC9kaXY+IisoRXx8dykrIjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PiJ9ZnVuY3Rpb24gWW8oZSx0KXtyZXR1cm4gZT8nPHByZSBjbGFzcz0iaW5saW5lLXRvb2wtcmVzdWx0LXRleHQiIHN0eWxlPSJtYXgtaGVpZ2h0OiAzMDBweDsgb3ZlcmZsb3cteTogYXV0bzsiPicrcChlKSsiPC9wcmU+IjonPHNwYW4gY2xhc3M9ImlubGluZS10b29sLWVtcHR5Ij5cdTY1RTBcdThGOTNcdTUxRkE8L3NwYW4+J31mdW5jdGlvbiBVdihlLHQsbixpKXt2YXIgYT1lLm5hbWV8fCJ1bmtub3duIix1PWUuaWR8fCJ0b29sLSIrYSsiLSIrKHR5cGVvZiBuPT0ibnVtYmVyIj9uOjApLHM9S3YoYSxlLmlucHV0KTtpZihhPT09IlJlYWQifHxhPT09Ikdsb2IifHxhPT09IkdyZXAifHxhPT09IldlYkZldGNoInx8YT09PSJXZWJTZWFyY2gifHxhPT09IlRvZG9SZWFkIilyZXR1cm4gUnYoZSx0LGEscywiIixpLG4pO2lmKGE9PT0iQmFzaCIpcmV0dXJuIFd2KGUsdCxhLGksbik7aWYoYT09PSJFZGl0Inx8YT09PSJXcml0ZSJ8fGE9PT0iTXVsdGlFZGl0IilyZXR1cm4genYoZSx0LGEsaSxuKTtpZihhPT09IkFza1VzZXJRdWVzdGlvbiImJmUuaW5wdXQmJmUuaW5wdXQucXVlc3Rpb25zKXt2YXIgbz1lLmlucHV0LnF1ZXN0aW9ucztpZihvJiZvLmxlbmd0aD4wKXtmb3IodmFyIGw9ISF0LGM9ci5hc2tVc2VyU2VsZWN0aW9uc1t1XXx8e30sZj0hIWMuc3VibWl0dGVkLGQ9bD9tbih0LmNvbnRlbnQpOiIiLHY9ZD9kLnRyaW0oKS5zcGxpdChgCmApOltdLGg9IiIsZz0wO2c8by5sZW5ndGg7ZysrKWlmKG9bZ10uaGVhZGVyKXtoPW9bZ10uaGVhZGVyO2JyZWFrfXZhciBtPWg/JzxzcGFuIGNsYXNzPSJ0b29sLXVzZS1zdW1tYXJ5Ij4nK3AoaCkrIjwvc3Bhbj4iOiIiLHk9IiI7by5mb3JFYWNoKGZ1bmN0aW9uKFAsSmUpe3ZhciBjdD0hIVAubXVsdGlTZWxlY3QsRz1QLnF1ZXN0aW9uPyc8ZGl2IGNsYXNzPSJhc2stdXNlci10aXRsZSI+JytwKFAucXVlc3Rpb24pKyI8L2Rpdj4iOiIiLGVlPSIiO1Aub3B0aW9ucyYmUC5vcHRpb25zLmxlbmd0aD4wJiYoZWU9JzxkaXYgY2xhc3M9ImFzay11c2VyLW9wdGlvbnMiIGRhdGEtbXVsdGktc2VsZWN0PSInK2N0KyciPicsUC5vcHRpb25zLmZvckVhY2goZnVuY3Rpb24ob2UsbGUpe3ZhciBCZT1vZS5sYWJlbD9wKG9lLmxhYmVsKToiXHU5MDA5XHU5ODc5ICIrKGxlKzEpLFdlPW9lLmRlc2NyaXB0aW9uPyc8ZGl2IGNsYXNzPSJhc2stdXNlci1vcHRpb24tZGVzYyI+JytwKG9lLmRlc2NyaXB0aW9uKSsiPC9kaXY+IjoiIjtpZihsKXt2YXIgSnQ9dltKZV18fHZbMF18fCIiLGR0PUp0LnNwbGl0KCIsIikubWFwKGZ1bmN0aW9uKEdlKXtyZXR1cm4gR2UudHJpbSgpfSksZnQ9ZHQuaW5kZXhPZihvZS5sYWJlbHx8IiIpIT09LTE7ZWUrPSc8ZGl2IGNsYXNzPSJhc2stdXNlci1vcHRpb24gYXNrLXVzZXItb3B0aW9uLXJlYWRvbmx5JysoZnQ/IiBhc2stdXNlci1vcHRpb24tY2hvc2VuIjoiIikrJyI+PHNwYW4gY2xhc3M9ImFzay11c2VyLWluZGljYXRvciI+PC9zcGFuPjxkaXYgY2xhc3M9ImFzay11c2VyLW9wdGlvbi1jb250ZW50Ij48ZGl2IGNsYXNzPSJhc2stdXNlci1vcHRpb24tbGFiZWwiPicrQmUrIjwvZGl2PiIrV2UrIjwvZGl2PjwvZGl2PiJ9ZWxzZXt2YXIgX2U9KGNbSmVdfHxbXSkuaW5kZXhPZihsZSkhPT0tMSxHdD1mPyIgZGlzYWJsZWQiOiIiO2VlKz0nPGJ1dHRvbiBjbGFzcz0iYXNrLXVzZXItb3B0aW9uJysoX2U/IiBzZWxlY3RlZCI6IiIpKyciIGRhdGEtb3B0aW9uLWluZGV4PSInK2xlKyciIGRhdGEtcXVlc3Rpb24taW5kZXg9IicrSmUrJyIgZGF0YS1vcHRpb24tbGFiZWw9IicrcChvZS5sYWJlbHx8Ilx1OTAwOVx1OTg3OSAiKyhsZSsxKSkrYCIgb25jbGljaz0iX19hc2tTZWxlY3QoJ2ArcCh1KSsiJywiK0plKyIsIitsZSsiLCIrY3QrJykiJytHdCsnPjxzcGFuIGNsYXNzPSJhc2stdXNlci1pbmRpY2F0b3IiPjwvc3Bhbj48ZGl2IGNsYXNzPSJhc2stdXNlci1vcHRpb24tY29udGVudCI+PGRpdiBjbGFzcz0iYXNrLXVzZXItb3B0aW9uLWxhYmVsIj4nK0JlKyI8L2Rpdj4iK1dlKyI8L2Rpdj48L2J1dHRvbj4ifX0pLGVlKz0iPC9kaXY+IikseSs9JzxkaXYgY2xhc3M9ImFzay11c2VyLXF1ZXN0aW9uLWdyb3VwIiBkYXRhLXF1ZXN0aW9uLWluZGV4PSInK0plKyciPicrRytlZSsiPC9kaXY+In0pO3ZhciB3PSIiO2lmKCFsKXtmb3IodmFyIEU9ITAsQj0wO0I8by5sZW5ndGg7QisrKWlmKCFjW0JdfHxjW0JdLmxlbmd0aD09PTApe0U9ITE7YnJlYWt9dmFyIEY9IUV8fGY/IiBkaXNhYmxlZCI6IiIseD1mPyIgYXNrLXVzZXItc3VibWl0dGVkIjoiIixTPWY/Ilx1NURGMlx1NjNEMFx1NEVBNC4uLiI6Ilx1Nzg2RVx1OEJBNFx1NjNEMFx1NEVBNCI7dz0nPGRpdiBjbGFzcz0iYXNrLXVzZXItYWN0aW9ucyI+PGJ1dHRvbiBjbGFzcz0iYXNrLXVzZXItc3VibWl0Jyt4KyciIGRhdGEtdG9vbC11c2UtaWQ9IicrcCh1KStgIiBvbmNsaWNrPSJfX2Fza1N1Ym1pdCgnYCtwKHUpK2AnKSJgK0YrIj4iK1MrIjwvYnV0dG9uPjwvZGl2PiJ9dmFyIF89IiI7aWYobCYmZCl7dmFyIFY9ZC50cmltKCkucmVwbGFjZSgvXG4vZywiLCAiKTtWLmxlbmd0aD40MCYmKFY9Vi5zbGljZSgwLDM3KSsiLi4uIiksXz0nPHNwYW4gY2xhc3M9InRvb2wtdXNlLWZpbGUiPicrcChWKSsiPC9zcGFuPiJ9dmFyIFU9cXQoInRvb2wtY2FyZCIsW2ksdV0pLEk9WGUoVSksRD1JPT09bnVsbD8hbDpJLE09RD8iIjoiIGNvbGxhcHNlZCIsTD1sPyIgYXNrLXVzZXItYW5zd2VyZWQiOiIiO3JldHVybic8ZGl2IGNsYXNzPSJ0b29sLXVzZS1jYXJkIGFzay11c2VyJytMK00rJyIgZGF0YS10b29sLXVzZS1pZD0iJytwKHUpKyciIGRhdGEtZXhwYW5kLWtpbmQ9InRvb2wtY2FyZCIgZGF0YS1leHBhbmQta2V5PSInK3AoVSkrJyI+PGRpdiBjbGFzcz0idG9vbC11c2UtaGVhZGVyIiBkYXRhLXRvb2wtdG9nZ2xlIG9uY2xpY2s9Il9fdGNUb2dnbGUoZXZlbnQsdGhpcykiPjxzcGFuIGNsYXNzPSJ0b29sLXVzZS1pY29uIj4nKyhsPyJcdTI3MTMiOiI/IikrJzwvc3Bhbj48c3BhbiBjbGFzcz0idG9vbC11c2UtbmFtZSI+XHU2M0QwXHU5NUVFPC9zcGFuPicrbStfKyc8c3BhbiBjbGFzcz0idG9vbC11c2UtdG9nZ2xlIj5cdTI1QkM8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0idG9vbC11c2UtYm9keSBhc2stdXNlci1ib2R5Ij4nK3krdysiPC9kaXY+PC9kaXY+In19dmFyIFc9ZS5kZXNjcmlwdGlvbnx8ZS5pbnB1dCYmZS5pbnB1dC5kZXNjcmlwdGlvbnx8IiIsSz1WdihlLm5hbWUsZS5pbnB1dCksWD0iIixuZT0iIjtXPyhYPVcubGVuZ3RoPjgwP1cuc2xpY2UoMCw3NykrIi4uLiI6VyxzJiYobmU9JzxzcGFuIGNsYXNzPSJ0b29sLXVzZS1maWxlIj4nK3AocykrIjwvc3Bhbj4iKSk6KFg9R2EoYSkscyYmKG5lPSc8c3BhbiBjbGFzcz0idG9vbC11c2UtZmlsZSI+JytwKHMpKyI8L3NwYW4+IiksSyYmKG5lKz0nPHNwYW4gY2xhc3M9InRvb2wtdXNlLXN1bW1hcnkiPicrcChLKSsiPC9zcGFuPiIpKTt2YXIgc2U9ZS5pbnB1dD9KU09OLnN0cmluZ2lmeShlLmlucHV0LG51bGwsMik6Int9IixyZT0ibG9hZGluZyIsVD0nPHNwYW4gY2xhc3M9InRvb2wtdXNlLXNwaW5uZXIiPjwvc3Bhbj4nLHE9IiI7aWYodCl7dmFyIE49dC5pc19lcnJvcixZPW1uKHQuY29udGVudCk7cmU9Tj8iZXJyb3IiOiJzdWNjZXNzIixUPVFvKGEpO3ZhciBKPVkmJlkudHJpbSgpLmxlbmd0aD4wO0o/cT0nPHByZSBjbGFzcz0idG9vbC11c2UtcmVzdWx0LWNvbnRlbnQiPicrcChZKSsiPC9wcmU+IjpxPSc8c3BhbiBjbGFzcz0idG9vbC11c2UtcmVzdWx0LWVtcHR5Ij5cdTY1RTBcdThGOTNcdTUxRkE8L3NwYW4+J31lbHNlIFQ9UW8oYSk7dmFyIGllPXF0KCJ0b29sLWNhcmQiLFtpLHVdKSxkZT1YZShpZSksdGU9SW4oImVkaXRDYXJkcyIpLGFlPWRlPT09bnVsbD9yZT09PSJsb2FkaW5nInx8dGU6ZGUsSGU9dCYmdC5fdHJ1bmNhdGVkPT09ITAsRGU9YWU/IiI6IiBjb2xsYXBzZWQiLHBlPSc8c3BhbiBjbGFzcz0idG9vbC11c2UtdG9nZ2xlIj5cdTI1QkM8L3NwYW4+JztyZXR1cm4nPGRpdiBjbGFzcz0idG9vbC11c2UtY2FyZCAnK3JlK0RlKyciIGRhdGEtZXhwYW5kLWtpbmQ9InRvb2wtY2FyZCIgZGF0YS1leHBhbmQta2V5PSInK3AoaWUpKyciIGRhdGEtdG9vbC11c2UtaWQ9IicrcCh1KSsnIicrKEhlPycgZGF0YS10cnVuY2F0ZWQ9InRydWUiJzoiIikrJz48ZGl2IGNsYXNzPSJ0b29sLXVzZS1oZWFkZXIiIGRhdGEtdG9vbC10b2dnbGUgb25jbGljaz0iX190Y1RvZ2dsZShldmVudCx0aGlzKSI+PHNwYW4gY2xhc3M9InRvb2wtdXNlLWljb24iPicrVCsnPC9zcGFuPjxzcGFuIGNsYXNzPSJ0b29sLXVzZS1uYW1lIj4nK3AoWCkrIjwvc3Bhbj4iK25lK3BlKyc8L2Rpdj48ZGl2IGNsYXNzPSJ0b29sLXVzZS1ib2R5Ij4nKyhXPyc8ZGl2IGNsYXNzPSJ0b29sLXVzZS1tZXRhIj48c3BhbiBjbGFzcz0idG9vbC11c2UtbWV0YS1sYWJlbCI+XHU1REU1XHU1MTc3XHVGRjFBPC9zcGFuPicrcChhKSsiPC9kaXY+IjoiIikrJzxwcmUgY2xhc3M9InRvb2wtdXNlLWNvbnRlbnQiPicrcChzZSkrIjwvcHJlPiIrKHE/JzxkaXYgY2xhc3M9InRvb2wtdXNlLXJlc3VsdCI+JytxKyI8L2Rpdj4iOiIiKSsiPC9kaXY+PC9kaXY+In1mdW5jdGlvbiBHYShlKXt2YXIgdD17UmVhZDoiXHU4QkZCXHU1M0Q2XHU2NTg3XHU0RUY2IixXcml0ZToiXHU1MTk5XHU1MTY1XHU2NTg3XHU0RUY2IixFZGl0OiJcdTdGMTZcdThGOTFcdTY1ODdcdTRFRjYiLE11bHRpRWRpdDoiXHU1OTFBXHU1OTA0XHU3RjE2XHU4RjkxIixCYXNoOiJcdTYyNjdcdTg4NENcdTU0N0RcdTRFRTQiLEdyZXA6Ilx1NjQxQ1x1N0QyMlx1NTE4NVx1NUJCOSIsR2xvYjoiXHU2N0U1XHU2MjdFXHU2NTg3XHU0RUY2IixXZWJGZXRjaDoiXHU4M0I3XHU1M0Q2XHU3RjUxXHU5ODc1IixXZWJTZWFyY2g6Ilx1NjQxQ1x1N0QyMlx1N0Y1MVx1OTg3NSIsVGFzazoiXHU0RUZCXHU1MkExIixUb2RvV3JpdGU6Ilx1NjZGNFx1NjVCMFx1NUY4NVx1NTI5RSIsVG9kb1JlYWQ6Ilx1OEJGQlx1NTNENlx1NUY4NVx1NTI5RSIsTm90ZWJvb2tFZGl0OiJcdTdGMTZcdThGOTFcdTdCMTRcdThCQjBcdTY3MkMiLEFnZW50OiJcdTVCNTBcdTRFRTNcdTc0MDYiLEFza1VzZXJRdWVzdGlvbjoiXHU2M0QwXHU5NUVFIixFeGl0OiJcdTkwMDBcdTUxRkEifTtyZXR1cm4gdFtlXXx8ZX1mdW5jdGlvbiBRbyhlKXt2YXIgdD17UmVhZDoiUiIsV3JpdGU6IlciLEVkaXQ6IkUiLE11bHRpRWRpdDoiRSIsQmFzaDoiJCIsR3JlcDoiRyIsR2xvYjoiRiIsV2ViRmV0Y2g6Ilx1MjFFMyIsV2ViU2VhcmNoOiJcdTIxRTIiLFRhc2s6IlQiLFRvZG9Xcml0ZToiXHUyNjEwIixUb2RvUmVhZDoiXHUyNjExIixOb3RlYm9va0VkaXQ6Ik4iLEFnZW50OiJBIixFeGl0OiJceEQ3In07cmV0dXJuIHRbZV18fCJceEI3In1mdW5jdGlvbiBWdihlLHQpe2lmKCF0fHx0eXBlb2YgdCE9Im9iamVjdCIpcmV0dXJuIiI7dmFyIG49T2JqZWN0LmtleXModCk7aWYobi5sZW5ndGg9PT0wKXJldHVybiJ7fSI7aWYoZT09PSJSZWFkIilyZXR1cm4iXHU4QkZCXHU1M0Q2XHU2NTg3XHU0RUY2IjtpZihlPT09IldyaXRlIilyZXR1cm4iXHU1MTk5XHU1MTY1XHU2NTg3XHU0RUY2IjtpZihlPT09IkVkaXQiKXt2YXIgaT10LmVkaXRzP3QuZWRpdHMubGVuZ3RoOjA7cmV0dXJuIlx1N0YxNlx1OEY5MSAoIitpKyIgXHU1OTA0XHU0RkVFXHU2NTM5KSJ9aWYoZT09PSJCYXNoIil7dmFyIGE9dC5jb21tYW5kfHwiIjtpZihhKXt2YXIgdT1hLmxlbmd0aD42MD9hLnNsaWNlKDAsNjApKyIuLi4iOmE7cmV0dXJuIlx1NTQ3RFx1NEVFNFx1RkYxQSIrdX19aWYoZT09PSJHcmVwIil7dmFyIHM9dC5wYXR0ZXJufHwiIixvPXQucGF0aHx8IiI7aWYocylyZXR1cm4iXHU2NDFDXHU3RDIyXHVGRjFBIitzKyhvPyIgKFx1NTcyOCAiK28rIikiOiIiKX1pZihlPT09Ikdsb2IiKXt2YXIgcz10LnBhdHRlcm58fCIiO2lmKHMpcmV0dXJuIlx1NjdFNVx1NjI3RVx1RkYxQSIrc31pZihlPT09IkFnZW50Iil7dmFyIGw9dC5wcm9tcHR8fHQudGFza3x8IiI7aWYobCl7dmFyIGM9bC5sZW5ndGg+NDA/bC5zbGljZSgwLDQwKSsiLi4uIjpsO3JldHVybiJcdTRFRkJcdTUyQTFcdUZGMUEiK2N9fWlmKGU9PT0iVGFzayIpe3ZhciBsPXQudGFza3x8dC5kZXNjcmlwdGlvbnx8IiI7aWYobCl7dmFyIGM9bC5sZW5ndGg+NDA/bC5zbGljZSgwLDQwKSsiLi4uIjpsO3JldHVybiJcdTRFRkJcdTUyQTFcdUZGMUEiK2N9fWlmKGU9PT0iVG9kb1dyaXRlIil7dmFyIGY9dC50b2Rvc3x8W107cmV0dXJuIlx1NjZGNFx1NjVCMFx1NUY4NVx1NTI5RSAoIitmLmxlbmd0aCsiIFx1OTg3OSkifWlmKGU9PT0iV2ViU2VhcmNoIil7dmFyIGQ9dC5xdWVyeXx8IiI7aWYoZClyZXR1cm4iXHU2NDFDXHU3RDIyXHVGRjFBIitkfXZhciB2PW5bMF0saD10W3ZdO2lmKHR5cGVvZiBoPT0ic3RyaW5nIil7dmFyIGc9aC5sZW5ndGg+NTA/aC5zbGljZSgwLDUwKSsiLi4uIjpoO3JldHVybiB2KyI6ICIrZ31yZXR1cm4gbi5sZW5ndGgrIiBcdTRFMkFcdTUzQzJcdTY1NzAifWZ1bmN0aW9uIEt2KGUsdCl7aWYoIXQpcmV0dXJuIG51bGw7dmFyIG49dC5maWxlX3BhdGh8fHQucGF0aHx8dC5jd2Q7cmV0dXJuIG4/bi5sZW5ndGg+NTA/Ii4uLiIrbi5zbGljZSgtNDcpOm46bnVsbH1mdW5jdGlvbiBKdihlKXtpZighZSlyZXR1cm4iIjtmb3IodmFyIHQ9YApgLG49ZS5zcGxpdCh0KSxpPVtdLGE9ITEsdT0wO3U8bi5sZW5ndGg7dSsrKXt2YXIgcz1uW3VdLG89cy50cmltKCk7aWYoISghYSYmIW8pKXtpZihhPSEwLG8uaW5kZXhPZigiXHUyM0ZBIik9PT0wJiZvLmxlbmd0aD4yKXtpLnB1c2goby5zbGljZSgxKS50cmltKCkpO2NvbnRpbnVlfWlmKG8uaW5kZXhPZigiXHUyNUNGIik9PT0wKXtpZihvPW8uc2xpY2UoMSkudHJpbSgpLCFvKWNvbnRpbnVlO3M9b31pLnB1c2gocyl9fWZvcig7aS5sZW5ndGg+MCYmIWlbaS5sZW5ndGgtMV0udHJpbSgpOylpLnBvcCgpO2Zvcih2YXIgbD1bXSxjPXt9LGY9MDtmPGkubGVuZ3RoO2YrKyl7dmFyIGQ9aVtmXS5yZXBsYWNlKC9ccysvZywiIik7ZC5sZW5ndGg+NSYmY1tkXXx8KGQubGVuZ3RoPjUmJihjW2RdPSEwKSxsLnB1c2goaVtmXSkpfXJldHVybiBsLmpvaW4odCl9ZnVuY3Rpb24gJG8oZSl7dmFyIHQ9YApgLG49ZS5zcGxpdCh0KSxpPVtdLGE9MDtmdW5jdGlvbiB1KG0pe3ZhciB5PW0udHJpbSgpO3JldHVybiB5LmNoYXJBdCgwKT09PSJ8IiYmKHk9eS5zbGljZSgxKSkseS5jaGFyQXQoeS5sZW5ndGgtMSk9PT0ifCImJih5PXkuc2xpY2UoMCwtMSkpLHkuc3BsaXQoInwiKX1mdW5jdGlvbiBzKG0pe3JldHVybiBtPycgc3R5bGU9InRleHQtYWxpZ246JyttKyciJzoiIn1mdW5jdGlvbiBvKG0seSx3KXt2YXIgRT0iPHRoZWFkPjx0cj4iK20ubWFwKGZ1bmN0aW9uKEYseCl7cmV0dXJuIjx0aCIrcyh5W3hdKSsiPiIrRi50cmltKCkrIjwvdGg+In0pLmpvaW4oIiIpKyI8L3RyPjwvdGhlYWQ+IixCPXcubGVuZ3RoPyI8dGJvZHk+Iit3Lm1hcChmdW5jdGlvbihGKXtyZXR1cm4iPHRyPiIrRi5tYXAoZnVuY3Rpb24oeCxTKXtyZXR1cm4iPHRkIitzKHlbU10pKyI+Iit4LnRyaW0oKSsiPC90ZD4ifSkuam9pbigiIikrIjwvdHI+In0pLmpvaW4oIiIpKyI8L3Rib2R5PiI6IiI7cmV0dXJuJzxkaXYgY2xhc3M9Im1kLXRhYmxlLXdyYXAiPjx0YWJsZSBjbGFzcz0ibWQtdGFibGUiPicrRStCKyI8L3RhYmxlPjwvZGl2PiJ9Zm9yKDthPG4ubGVuZ3RoOyl7dmFyIGw9blthXTtpZihsLmluZGV4T2YoInwiKSE9PS0xJiZhKzE8bi5sZW5ndGgpe3ZhciBjPW5bYSsxXS50cmltKCk7aWYoL15cfD9ccyo6Py0rOj8oXHMqXHxccyo6Py0rOj8pK1xzKlx8PyQvLnRlc3QoYykpe2Zvcih2YXIgZj11KGwpLGQ9dShjKS5tYXAoZnVuY3Rpb24obSl7dmFyIHk9bS50cmltKCksdz15LmNoYXJBdCgwKT09PSI6IixFPXkuY2hhckF0KHkubGVuZ3RoLTEpPT09IjoiO3JldHVybiB3JiZFPyJjZW50ZXIiOkU/InJpZ2h0Ijp3PyJsZWZ0IjoiIn0pLHY9W10saD1hKzI7aDxuLmxlbmd0aDspe3ZhciBnPW5baF0udHJpbSgpO2lmKCFnfHxnLmluZGV4T2YoInwiKT09PS0xKWJyZWFrO3YucHVzaCh1KG5baF0pKSxoKz0xfWkucHVzaCgiIixvKGYsZCx2KSwiIiksYT1oO2NvbnRpbnVlfX1pLnB1c2gobCksYSs9MX1yZXR1cm4gaS5qb2luKHQpfWZ1bmN0aW9uIFlhKGUpe2lmKCFlKXJldHVybiIiO3ZhciB0PXAoZSksbj0iYCIsaT1gCmA7ZnVuY3Rpb24gYShULHEsTixZKXtmb3IodmFyIEo9MDs7KXt2YXIgaWU9VC5pbmRleE9mKHEsSik7aWYoaWU9PT0tMSlicmVhazt2YXIgZGU9VC5pbmRleE9mKHEsaWUrcS5sZW5ndGgpO2lmKGRlPT09LTEpYnJlYWs7dmFyIHRlPVQuc2xpY2UoaWUrcS5sZW5ndGgsZGUpO2lmKCF0ZSl7Sj1kZStxLmxlbmd0aDtjb250aW51ZX12YXIgYWU9Tit0ZStZO1Q9VC5zbGljZSgwLGllKSthZStULnNsaWNlKGRlK3EubGVuZ3RoKSxKPWllK2FlLmxlbmd0aH1yZXR1cm4gVH1mdW5jdGlvbiB1KFQpe3JldHVybiBUPj00OCYmVDw9NTd8fFQ+PTY1JiZUPD05MHx8VD49OTcmJlQ8PTEyMnx8VD09PTk1fWZ1bmN0aW9uIHMoVCxxLE4pe2Zvcih2YXIgWT0wO1k8VC5sZW5ndGg7KXt2YXIgSj1ULmluZGV4T2YoIl8iLFkpO2lmKEo9PT0tMSlicmVhazt2YXIgaWU9Sj4wP1QuY2hhckNvZGVBdChKLTEpOjA7aWYodShpZSkpe1k9SisxO2NvbnRpbnVlfWZvcih2YXIgZGU9SisxLHRlPS0xO2RlPFQubGVuZ3RoOyl7dmFyIGFlPVQuaW5kZXhPZigiXyIsZGUpO2lmKGFlPT09LTEpYnJlYWs7dmFyIEhlPWFlKzEsRGU9SGU8VC5sZW5ndGg/VC5jaGFyQ29kZUF0KEhlKTowO2lmKCF1KERlKSl7dGU9YWU7YnJlYWt9ZGU9YWUrMX1pZih0ZT09PS0xKWJyZWFrO3ZhciBwZT1ULnNsaWNlKEorMSx0ZSk7aWYoIXBlKXtZPXRlKzE7Y29udGludWV9dmFyIFA9cStwZStOO1Q9VC5zbGljZSgwLEopK1ArVC5zbGljZSh0ZSsxKSxZPUorUC5sZW5ndGh9cmV0dXJuIFR9ZnVuY3Rpb24gbyhULHEsTixZKXtyZXR1cm4gVC5zcGxpdChpKS5tYXAoZnVuY3Rpb24oSil7cmV0dXJuIEouaW5kZXhPZihxKSE9PTA/SjpOK0ouc2xpY2UocS5sZW5ndGgpK1l9KS5qb2luKGkpfWZ1bmN0aW9uIGwoVCl7cmV0dXJuIFQuc3BsaXQoaSkubWFwKGZ1bmN0aW9uKHEpe3ZhciBOPXEuaW5kZXhPZigiLiAiKTtpZihOPD0wKXJldHVybiBxO2Zvcih2YXIgWT0wO1k8TjtZKz0xKXt2YXIgSj1xLmNoYXJDb2RlQXQoWSk7aWYoSjw0OHx8Sj41NylyZXR1cm4gcX1yZXR1cm4iPGxpPiIrcS5zbGljZShOKzIpKyI8L2xpPiJ9KS5qb2luKGkpfWZ1bmN0aW9uIGMoVCl7cmV0dXJuIFQuc3BsaXQoaStpKS5tYXAoZnVuY3Rpb24ocSl7dmFyIE49cS50cmltKCk7cmV0dXJuIE4/Ti5pbmRleE9mKCI8ZGl2Iik9PT0wfHxOLmluZGV4T2YoIjxoMSIpPT09MHx8Ti5pbmRleE9mKCI8aDIiKT09PTB8fE4uaW5kZXhPZigiPGgzIik9PT0wfHxOLmluZGV4T2YoIjxoNCIpPT09MHx8Ti5pbmRleE9mKCI8aDUiKT09PTB8fE4uaW5kZXhPZigiPGg2Iik9PT0wfHxOLmluZGV4T2YoIjx1bCIpPT09MHx8Ti5pbmRleE9mKCI8b2wiKT09PTB8fE4uaW5kZXhPZigiPGxpIik9PT0wfHxOLmluZGV4T2YoIjxibG9ja3F1b3RlIik9PT0wfHxOLmluZGV4T2YoIjxwcmUiKT09PTA/TjoiPHA+IitOLnNwbGl0KGkpLmpvaW4oIjxicj4iKSsiPC9wPiI6IiJ9KS5qb2luKCIiKX1mb3IodmFyIGY9MDs7KXt2YXIgZD10LmluZGV4T2YobituK24sZik7aWYoZD09PS0xKWJyZWFrO3ZhciB2PXQuaW5kZXhPZihuK24rbixkKzMpO2lmKHY9PT0tMSlicmVhazt2YXIgaD10LnNsaWNlKGQrMyx2KSxnPWguaW5kZXhPZihpKSxtPSIiLHk9aDtpZihnIT09LTEmJmc8MzApe2Zvcih2YXIgdz1oLnNsaWNlKDAsZykudHJpbSgpLEU9dy5sZW5ndGg+MCxCPTA7Qjx3Lmxlbmd0aDtCKz0xKXt2YXIgRj13LmNoYXJDb2RlQXQoQikseD1GPj00OCYmRjw9NTcsUz1GPj02NSYmRjw9OTAsXz1GPj05NyYmRjw9MTIyO2lmKCF4JiYhUyYmIV8pe0U9ITE7YnJlYWt9fUUmJihtPXcseT1oLnNsaWNlKGcrMSkpfXZhciBWPUd2KHkudHJpbSgpLG0pLFU9Vi5yZXBsYWNlKC9fL2csIiYjOTU7IikucmVwbGFjZSgvXCovZywiJiM0MjsiKSxJPSc8ZGl2IGNsYXNzPSJjb2RlLWJsb2NrIj48ZGl2IGNsYXNzPSJjb2RlLWJsb2NrLWhlYWRlciI+PHNwYW4gY2xhc3M9ImNvZGUtbGFuZyI+JysobXx8ImNvZGUiKSsnPC9zcGFuPjxidXR0b24gY2xhc3M9ImNvZGUtY29weSI+Q29weTwvYnV0dG9uPjwvZGl2PjxwcmU+PGNvZGU+JytVKyI8L2NvZGU+PC9wcmU+PC9kaXY+Ijt0PXQuc2xpY2UoMCxkKStJK3Quc2xpY2UodiszKSxmPWQrSS5sZW5ndGh9Zm9yKGY9MDs7KXt2YXIgRD10LmluZGV4T2YobixmKTtpZihEPT09LTEpYnJlYWs7dmFyIE09dC5pbmRleE9mKG4sRCsxKTtpZihNPT09LTEpYnJlYWs7aWYoTT09PUQrMSl7Zj1NKzE7Y29udGludWV9dmFyIEw9dC5zbGljZShEKzEsTSksVz1MLnJlcGxhY2UoL18vZywiJiM5NTsiKS5yZXBsYWNlKC9cKi9nLCImIzQyOyIpLEs9Jzxjb2RlIGNsYXNzPSJjb2RlLWlubGluZSI+JytXKyI8L2NvZGU+Ijt0PXQuc2xpY2UoMCxEKStLK3Quc2xpY2UoTSsxKSxmPUQrSy5sZW5ndGh9dD1hKHQsIioqIiwiPHN0cm9uZz4iLCI8L3N0cm9uZz4iKSx0PWEodCwiKiIsIjxlbT4iLCI8L2VtPiIpLHQ9cyh0LCI8ZW0+IiwiPC9lbT4iKSx0PW8odCwiIyMjICIsIjxoMz4iLCI8L2gzPiIpLHQ9byh0LCIjIyAiLCI8aDI+IiwiPC9oMj4iKSx0PW8odCwiIyAiLCI8aDE+IiwiPC9oMT4iKSx0PW8odCwiJmd0OyAiLCI8YmxvY2txdW90ZT4iLCI8L2Jsb2NrcXVvdGU+IiksdD1vKHQsIi0gIiwiPGxpPiIsIjwvbGk+IiksdD1vKHQsIiogIiwiPGxpPiIsIjwvbGk+IiksdD1sKHQpLHQ9JG8odCk7dmFyIFg9dC5zcGxpdChpKSxuZT1bXSxzZT1bXTtmdW5jdGlvbiByZSgpe3NlLmxlbmd0aCYmKG5lLnB1c2goIjx1bD4iK3NlLmpvaW4oIiIpKyI8L3VsPiIpLHNlPVtdKX1yZXR1cm4gWC5mb3JFYWNoKGZ1bmN0aW9uKFQpe2lmKFQuaW5kZXhPZigiPGxpPiIpPT09MCYmVC5sYXN0SW5kZXhPZigiPC9saT4iKT09PVQubGVuZ3RoLTUpe3NlLnB1c2goVCk7cmV0dXJufXJlKCksbmUucHVzaChUKX0pLHJlKCksdD1jKG5lLmpvaW4oaSkpLCc8ZGl2IGNsYXNzPSJtYXJrZG93bi1jb250ZW50Ij4nK3QrIjwvZGl2PiJ9ZnVuY3Rpb24gR3YoZSx0KXtyZXR1cm4gZT1lLnJlcGxhY2UoLyYvZywiJmFtcDsiKS5yZXBsYWNlKC88L2csIiZsdDsiKS5yZXBsYWNlKC8+L2csIiZndDsiKSxlfWZ1bmN0aW9uICRuKGUpe3ZhciB0PVN0cmluZyhlfHwiIikudHJpbSgpO3JldHVybiB0Lmxlbmd0aDw9MjQ/dHx8Ilx1NjcyQVx1OTAwOVx1NjJFOVx1NEYxQVx1OEJERCI6dC5zbGljZSgwLDIxKSsiLi4uIn1mdW5jdGlvbiBRYShlKXtyZXR1cm4gU3RyaW5nKGV8fCIiKS5yZXBsYWNlKC9cclxyXG4vZyxgXHIKYCkucmVwbGFjZSgvXHUwMDAwL2csIiIpfWZ1bmN0aW9uIFl2KCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxvZ2luLWNlcnQtaGludCIpO2UmJmUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIik7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxvZ2luLWNlcnQtaHR0cC1saW5rIik7dCYmKHQuaHJlZj0iaHR0cDovLyIrbG9jYXRpb24uaG9zdCtsb2NhdGlvbi5wYXRobmFtZSx0LnN0eWxlLmRpc3BsYXk9bG9jYXRpb24ucHJvdG9jb2w9PT0iaHR0cHM6Ij8iIjoibm9uZSIpfWZ1bmN0aW9uIFF2KCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxvZ2luLWNlcnQtaGludCIpO2UmJmUuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIil9ZnVuY3Rpb24gJGEoKXtpZighci5sb2dpblBlbmRpbmcpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwYXNzd29yZCIpLHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxvZ2luLWJ1dHRvbiIpLG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxvZ2luLWVycm9yIik7IWV8fCF0fHwhbnx8KGNpKG4pLFF2KCksZS5kYXRhc2V0LmVycm9yPSJmYWxzZSIsZS5zZXRBdHRyaWJ1dGUoImFyaWEtaW52YWxpZCIsImZhbHNlIiksci5sb2dpblBlbmRpbmc9ITAsdC5kaXNhYmxlZD0hMCx0LnRleHRDb250ZW50PSJcdTc2N0JcdTVGNTVcdTRFMkQuLi4iLGZldGNoKCIvYXBpL2xvZ2luIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGJvZHk6SlNPTi5zdHJpbmdpZnkoe3Bhc3N3b3JkOmUudmFsdWV9KSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihpKXtyZXR1cm4gaS5zdGF0dXM9PT00Mjk/KFBlKG4sIlx1NzY3Qlx1NUY1NVx1NUMxRFx1OEJENVx1NkIyMVx1NjU3MFx1OEZDN1x1NTkxQVx1RkYwQ1x1OEJGN1x1N0EwRFx1NTQwRVx1NTE4RFx1OEJENVx1MzAwMiIpLFByb21pc2UucmVqZWN0KCJoYW5kbGVkIikpOmkub2s/ZmV0Y2goIi9hcGkvY29uZmlnIix7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pOihlLmRhdGFzZXQuZXJyb3I9InRydWUiLGUuc2V0QXR0cmlidXRlKCJhcmlhLWludmFsaWQiLCJ0cnVlIiksUGUobiwiXHU1QkM2XHU3ODAxXHU5NTE5XHU4QkVGXHVGRjBDXHU4QkY3XHU5MUNEXHU4QkQ1XHUzMDAyIiksUHJvbWlzZS5yZWplY3QoImhhbmRsZWQiKSl9KS50aGVuKGZ1bmN0aW9uKGkpe3JldHVybiBpLm9rP2kuanNvbigpOihsb2NhdGlvbi5wcm90b2NvbD09PSJodHRwczoiP1l2KCk6UGUobiwiXHU3NjdCXHU1RjU1XHU1OTMxXHU4RDI1XHVGRjBDXHU4QkY3XHU5MUNEXHU4QkQ1XHUzMDAyIiksUHJvbWlzZS5yZWplY3QoImhhbmRsZWQiKSl9KS50aGVuKGZ1bmN0aW9uKGkpe3IuY29uZmlnPWk7dmFyIGE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0YXR1cy1kb3QiKSx1PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdGF0dXMtdGV4dCIpO3JldHVybiBhJiZhLmNsYXNzTGlzdC5hZGQoImFjdGl2ZSIpLHUmJih1LnRleHRDb250ZW50PSJcdTVERjJcdTc2N0JcdTVGNTUiKSxSdCgpfSkudGhlbihmdW5jdGlvbigpe3lzKCksdG4oKX0pLmNhdGNoKGZ1bmN0aW9uKGkpe2khPT0iaGFuZGxlZCImJihjb25zb2xlLmVycm9yKCJbd2FuZF0gTG9naW4gZXJyb3I6IixpKSxQZShuLCJcdTc2N0JcdTVGNTVcdTU5MzFcdThEMjVcdUZGMENcdThCRjdcdTkxQ0RcdThCRDVcdTMwMDIiKSl9KS5maW5hbGx5KGZ1bmN0aW9uKCl7ci5sb2dpblBlbmRpbmc9ITEsdC5kaXNhYmxlZD0hMSx0LnRleHRDb250ZW50PSJcdThGREJcdTUxNjVcdTYzQTdcdTUyMzZcdTUzRjAifSkpfX1mdW5jdGlvbiBYYSgpe3JldHVybiB0eXBlb2YgV2FuZE5hdGl2ZTwidSImJnR5cGVvZiBXYW5kTmF0aXZlLnN3aXRjaFNlcnZlcj09ImZ1bmN0aW9uIn1mdW5jdGlvbiBYbygpe2lmKFhhKCkpdHJ5e1dhbmROYXRpdmUuc3dpdGNoU2VydmVyKCl9Y2F0Y2h7fX1mdW5jdGlvbiAkdigpe3JldHVybiB0eXBlb2YgV2FuZE5hdGl2ZTwidSImJnR5cGVvZiBXYW5kTmF0aXZlLmJhY2tUb05hdGl2ZT09ImZ1bmN0aW9uIj8hMDp0eXBlb2Ygd2luZG93Ll9fd2FuZEJhY2tUb05hdGl2ZT09ImZ1bmN0aW9uIn1mdW5jdGlvbiBYdigpe3RyeXtpZih0eXBlb2YgV2FuZE5hdGl2ZTwidSImJnR5cGVvZiBXYW5kTmF0aXZlLmJhY2tUb05hdGl2ZT09ImZ1bmN0aW9uIil7V2FuZE5hdGl2ZS5iYWNrVG9OYXRpdmUoKTtyZXR1cm59dHlwZW9mIHdpbmRvdy5fX3dhbmRCYWNrVG9OYXRpdmU9PSJmdW5jdGlvbiImJndpbmRvdy5fX3dhbmRCYWNrVG9OYXRpdmUoKX1jYXRjaHt9fWZ1bmN0aW9uIFpvKCl7ZmV0Y2goIi9hcGkvbG9nb3V0Iix7bWV0aG9kOiJQT1NUIixjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkuY2F0Y2goZnVuY3Rpb24oKXt9KSxCcygpLE1uKCExKSxUYSgpLGJyKCksci5jb25maWc9bnVsbCxyLnNlbGVjdGVkSWQ9bnVsbCx3ZSgpLHIuc2Vzc2lvbnM9W10sci5jbGF1ZGVIaXN0b3J5PVtdLHIuY2xhdWRlSGlzdG9yeUxvYWRlZD0hMSxyLmNsYXVkZUhpc3RvcnlFeHBhbmRlZD0hMSxyLmNsYXVkZUhpc3RvcnlFeHBhbmRlZERpcnM9e30sci5zZXNzaW9uc0RyYXdlck9wZW49ITEseGUoIndhbmQtc2lkZWJhci1vcGVuIiwhMSksdG4oKX1mdW5jdGlvbiBSdCgpe3JldHVybiBnbigpfWZ1bmN0aW9uIFphKGUpe3JldHVybiBlPT09ImZ1bGwtYWNjZXNzIj8iXHU1MTY4XHU2NzQzXHU5NjUwIjplPT09ImRlZmF1bHQiPyJcdTlFRDhcdThCQTQiOmU9PT0ibmF0aXZlIj8iXHU1MzlGXHU3NTFGIjplPT09ImF1dG8tZWRpdCI/Ilx1ODFFQVx1NTJBOFx1N0YxNlx1OEY5MSI6ZT09PSJtYW5hZ2VkIj8iXHU2MjU4XHU3QkExIjplfWZ1bmN0aW9uIHR0KCl7cmV0dXJuIHIuc2Vzc2lvblRvb2x8fHIucHJlZmVycmVkQ29tbWFuZHx8ImNsYXVkZSJ9ZnVuY3Rpb24gWnYoKXt2YXIgZT1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24odCl7cmV0dXJuIHQuaWQ9PT1yLnNlbGVjdGVkSWR9KTtyZXR1cm4gZSYmZS5wcm92aWRlcnx8ci5wcmVmZXJyZWRDb21tYW5kfHwiY2xhdWRlIn1mdW5jdGlvbiBlbChlLHQpe3JldHVybiB0PyJcdTk1MkVcdTc2RDhcdThGOTNcdTUxNjVcdTVDMDZcdTUzRDFcdTkwMDFcdTUyMzBcdTdFQzhcdTdBRUYiOmUmJihlLnN0YXR1cz09PSJleGl0ZWQifHxlLnN0YXR1cz09PSJmYWlsZWQifHxlLnN0YXR1cz09PSJzdG9wcGVkIik/QWEoZSk/Ilx1OEY5M1x1NTE2NVx1NkQ4OFx1NjA2Rlx1NEVFNVx1N0VFN1x1N0VFRFx1NEYxQVx1OEJERCI6Ilx1NEYxQVx1OEJERFx1NURGMlx1N0VEM1x1Njc1RiI6dWUoZSkmJmUuc3RydWN0dXJlZFN0YXRlJiZlLnN0cnVjdHVyZWRTdGF0ZS5pbkZsaWdodD8iXHU1NkRFXHU1OTBEXHU0RTJEXHVGRjBDXHU1M0VGXHU3RUU3XHU3RUVEXHU4RjkzXHU1MTY1IjoiXHU4RjkzXHU1MTY1XHU2RDg4XHU2MDZGIn1mdW5jdGlvbiB0bChlLHQpe3JldHVybiBlPT09ImNvZGV4Ij8iQ29kZXggXHU2NTJGXHU2MzAxIFBUWSBcdTdFQzhcdTdBRUZcdTRFMEVcdTdFRDNcdTY3ODRcdTUzMTZcdUZGMDhKU09OTFx1RkYwOVx1NEUyNFx1NzlDRFx1NEYxQVx1OEJERFx1RkYwQ1x1N0VEM1x1Njc4NFx1NTMxNlx1NkEyMVx1NUYwRlx1NjMwOSBmdWxsLWFjY2VzcyBcdTU0MkZcdTUyQThcdTMwMDIiOnQ9PT0iZnVsbC1hY2Nlc3MiPyJcdTgxRUFcdTUyQThcdTc4NkVcdThCQTRcdTY3NDNcdTk2NTBcdThCRjdcdTZDNDJcdTRFMEVcdTlBRDhcdTY3NDNcdTk2NTBcdTY0Q0RcdTRGNUNcdUZGMENcdTkwMDJcdTU0MDhcdTRGNjBcdTc4NkVcdThCQTRcdTczQUZcdTU4ODNcdTVCODlcdTUxNjhcdTU0MEVcdTc2ODRcdThGREVcdTdFRURcdTRGRUVcdTY1MzlcdTMwMDIiOnQ9PT0iYXV0by1lZGl0Ij8iXHU0RkREXHU3NTU5XHU0RUE0XHU0RTkyXHU1RjBGXHU0RjFBXHU4QkREXHVGRjBDXHU1NDBDXHU2NUY2XHU2NkY0XHU1MDRGXHU1NDExXHU3NkY0XHU2M0E1XHU3RjE2XHU4RjkxXHU0RUUzXHU3ODAxXHUzMDAyIjp0PT09Im5hdGl2ZSI/Ilx1OEMwM1x1NzUyOCBDbGF1ZGUgXHU1MzlGXHU3NTFGIEFQSSBcdThGOTNcdTUxRkFcdUZGMENcdTkwMDJcdTU0MDhcdTVGRUJcdTkwMUZcdTk1RUVcdTdCNTRcdTYyMTZcdTRFMDBcdTZCMjFcdTYwMjdcdTc1MUZcdTYyMTBcdTMwMDIiOnQ9PT0ibWFuYWdlZCI/IkFJIFx1ODFFQVx1NTJBOFx1NUI4Q1x1NjIxMFx1NjI0MFx1NjcwOVx1NURFNVx1NEY1Q1x1RkYwQ1x1NjVFMFx1OTcwMFx1NEUyRFx1OTAxNFx1Nzg2RVx1OEJBNFx1RkYwQ1x1OTAwMlx1NTQwOFx1NjcwOVx1NjYwRVx1Nzg2RVx1NzZFRVx1NjgwN1x1NzY4NFx1NEVGQlx1NTJBMVx1MzAwMiI6Ilx1NEZERFx1NzU1OVx1NjgwN1x1NTFDNlx1NEVBNFx1NEU5Mlx1NkQ0MVx1N0EwQlx1RkYwQ1x1OTAwMlx1NTQwOFx1NjI0Qlx1NTJBOFx1Nzg2RVx1OEJBNFx1NkJDRlx1NEUwMFx1NkI2NVx1MzAwMiJ9ZnVuY3Rpb24gZXUoZSl7cmV0dXJuIGU9PT0iY29kZXgiP1siZnVsbC1hY2Nlc3MiXTpbImRlZmF1bHQiLCJmdWxsLWFjY2VzcyIsImF1dG8tZWRpdCIsIm5hdGl2ZSIsIm1hbmFnZWQiXX1mdW5jdGlvbiBTdChlLHQpe3ZhciBuPWV1KGUpO2lmKG4uaW5kZXhPZih0KSE9PS0xKXJldHVybiB0O3ZhciBpPXIuY29uZmlnJiZyLmNvbmZpZy5kZWZhdWx0TW9kZT9yLmNvbmZpZy5kZWZhdWx0TW9kZToiZGVmYXVsdCI7cmV0dXJuIG4uaW5kZXhPZihpKSE9PS0xP2k6blswXX1mdW5jdGlvbiBaZyhlLHQpe3JldHVybiBldShlKS5tYXAoZnVuY3Rpb24obil7dmFyIGk9bmwobik7cmV0dXJuJzxvcHRpb24gdmFsdWU9IicrcChuKSsnIicrKG49PT10PyIgc2VsZWN0ZWQiOiIiKSsnIHRpdGxlPSInK2krJyI+JytwKFphKG4pKSsiPC9vcHRpb24+In0pLmpvaW4oIiIpfWZ1bmN0aW9uIG5sKGUpe3ZhciB0PXtkZWZhdWx0OiJcdTY4MDdcdTUxQzZcdTZBMjFcdTVGMEYgLSBcdTk3MDBcdTg5ODFcdTc4NkVcdThCQTRcdTY1ODdcdTRFRjZcdTRGRUVcdTY1MzkiLCJmdWxsLWFjY2VzcyI6Ilx1NUI4Q1x1NTE2OFx1OEJCRlx1OTVFRSAtIFx1ODFFQVx1NTJBOFx1Nzg2RVx1OEJBNFx1Njc0M1x1OTY1MFx1NEUwRVx1NjRDRFx1NEY1QyIsImF1dG8tZWRpdCI6Ilx1ODFFQVx1NTJBOFx1N0YxNlx1OEY5MSAtIFx1ODFFQVx1NTJBOFx1Nzg2RVx1OEJBNFx1NjU4N1x1NEVGNlx1NEZFRVx1NjUzOSIsbmF0aXZlOiJcdTUzOUZcdTc1MUZcdTZBMjFcdTVGMEYgLSBcdThGRDRcdTU2REVcdTdFRDNcdTY3ODRcdTUzMTZcdThGOTNcdTUxRkEiLG1hbmFnZWQ6Ilx1NjI1OFx1N0JBMVx1NkEyMVx1NUYwRiAtIEFJIFx1ODFFQVx1NTJBOFx1NUI4Q1x1NjIxMFx1NjI0MFx1NjcwOVx1NURFNVx1NEY1QyJ9O3JldHVybiB0W2VdfHwiIn1mdW5jdGlvbiBlbShlKXt2YXIgdD1lJiZlLnByb3ZpZGVyP2UucHJvdmlkZXI6ImNsYXVkZSI7cmV0dXJuKHVlKGUpPyJcdTdFRDNcdTY3ODRcdTUzMTYiOiJcdTdFQzhcdTdBRUYiKSsiIFx4QjcgIit0fWZ1bmN0aW9uIHRtKGUpe3JldHVybiB1ZShlKT8iXHU3RUQzXHU2Nzg0XHU1MzE2IFx4QjcgXHU1NzU3XHU3RUE3XHU4QkIwXHU1RjU1IjplJiZlLnByb3ZpZGVyPT09ImNvZGV4Ij8iXHU3RUM4XHU3QUVGIFx4QjcgQ29kZXggUFRZXHVGRjA4Y2hhdCBcdTRFM0FcdTg5RTNcdTY3OTBcdTg5QzZcdTU2RkVcdUZGMDkiOiJcdTdFQzhcdTdBRUYgXHhCNyBQVFkgXHU0RjFBXHU4QkREIn1mdW5jdGlvbiBubShlKXtyZXR1cm4gZT91ZShlKXx8ZS5wcm92aWRlcj09PSJjb2RleCI6ITF9ZnVuY3Rpb24gcmwoZSx0KXtpZighZXx8IWUuaXNfZXJyb3J8fCF0fHx0LmlzX2Vycm9yKXJldHVybiExO3ZhciBuPW1uKGUuY29udGVudCkudG9Mb3dlckNhc2UoKSxpPW1uKHQuY29udGVudCkudG9Mb3dlckNhc2UoKTtyZXR1cm4gbj9uLmluZGV4T2YoImludmFsaWQgcGFnZXMgcGFyYW1ldGVyIikhPT0tMSYmaS5sZW5ndGg+MDohMX1mdW5jdGlvbiB1ZShlKXtyZXR1cm4hIWUmJihlLnNlc3Npb25LaW5kPT09InN0cnVjdHVyZWQifHxlLnJ1bm5lcj09PSJjbGF1ZGUtY2xpLXByaW50Iil9ZnVuY3Rpb24geGkoKXtyLmNoYXRNb2RlPVN0KCJjbGF1ZGUiLHIuY2hhdE1vZGUpO3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtb2RlLWhpbnQiKTtlJiYoZS50ZXh0Q29udGVudD1ubChyLmNoYXRNb2RlKSksWG4oKX1mdW5jdGlvbiBpbChlLHQpe3Q9dHx8e307dmFyIG49dC5raW5kPT09ImNvbXBhY3QifHx0LmtpbmQ9PT0icG9wb3ZlciI/dC5raW5kOiJkcm9wZG93biIsaT10dCgpLGE9ci5jaGF0TW9kZXx8ImRlZmF1bHQiLHU9TGkoZSl8fCIiLHM9SWkodSxlKSxvPXJ1KGUpO2Z1bmN0aW9uIGwoYyxmLGQsdil7dmFyIGg9bj09PSJjb21wYWN0Ij8iIjonPHNwYW4gY2xhc3M9ImNoYXQtbW9kZS10cmlvLXRhZyI+JytwKGYpKyI8L3NwYW4+IjtyZXR1cm4nPHNwYW4gY2xhc3M9ImNvbXBvc2VyLXRleHQtcGlsbCBjaGF0LW1vZGUtdHJpby1waWxsIiBkYXRhLW1vZGUtY29udHJvbC1waWxsPSInK2MrJyIgdGl0bGU9IicrcChmKSsnIj4nK2grJzxzcGFuIGNsYXNzPSJjb21wb3Nlci10ZXh0LWxhYmVsIj4nK3AoZCkrJzwvc3Bhbj48c2VsZWN0IGNsYXNzPSJjb21wb3Nlci10ZXh0LWhpZGRlbi1zZWxlY3QiIGRhdGEtbW9kZS1jb250cm9sPSInK2MrJyIgdGFiaW5kZXg9Ii0xIiBhcmlhLWxhYmVsPSInK3AoZikrJyI+Jyt2KyI8L3NlbGVjdD48L3NwYW4+In1yZXR1cm4nPGRpdiBjbGFzcz0iY2hhdC1tb2RlLXRyaW8gY2hhdC1tb2RlLXRyaW8tJytuKyciIHJvbGU9Imdyb3VwIiBhcmlhLWxhYmVsPSJcdTRGMUFcdThCRERcdThCQkVcdTdGNkUiPicrbCgibW9kZSIsIlx1NkEyMVx1NUYwRiIsYSxUaShpLGEpKSsnPHNwYW4gY2xhc3M9ImNvbXBvc2VyLXRleHQtc2VwIiBhcmlhLWhpZGRlbj0idHJ1ZSI+XHhCNzwvc3Bhbj4nK2woIm1vZGVsIiwiXHU2QTIxXHU1NzhCIixzLG9sKHUsZSkpKyc8c3BhbiBjbGFzcz0iY29tcG9zZXItdGV4dC1zZXAiIGFyaWEtaGlkZGVuPSJ0cnVlIj5ceEI3PC9zcGFuPicrbCgidGhpbmtpbmciLCJcdTYwMURcdTgwMDMiLG8sbGwobykpKyI8L2Rpdj4ifWZ1bmN0aW9uIGFsKGUpe3JldHVybiBlPT09InN0YW5kYXJkIj8iXHU0RjRFIjplPT09ImRlZXAiPyJcdTRFMkQiOmU9PT0ibWF4Ij8iXHU5QUQ4IjoiXHU1MTczIn1mdW5jdGlvbiBybShlKXtyZXR1cm4gZT09PSJzdGFuZGFyZCI/Ilx1NEY0RSI6ZT09PSJkZWVwIj8iXHU0RTJEIjplPT09Im1heCI/Ilx1OUFEOCI6Ilx1NTE3M1x1OTVFRCJ9ZnVuY3Rpb24gU2koZSx0KXt2YXIgbj1lfHwiIixpPXR1KHQpO2lmKCFufHxuPT09ImRlZmF1bHQiKXtmb3IodmFyIGE9MDthPGkubGVuZ3RoO2ErKylpZihpW2FdLmlkPT09ImRlZmF1bHQiKXJldHVybiBpW2FdLmxhYmVsfHxpW2FdLmlkO3JldHVybiJcdTlFRDhcdThCQTQifWZvcih2YXIgdT0wO3U8aS5sZW5ndGg7dSsrKWlmKGlbdV0uaWQ9PT1uKXJldHVybiBpW3VdLmxhYmVsfHxpW3VdLmlkO3JldHVybiBufWZ1bmN0aW9uIElpKGUsdCl7dmFyIG49U2koZSx0KTtpZighbnx8bj09PSJcdThEREZcdTk2OEZcdTY3MERcdTUyQTFcdTdBRUZcdTlFRDhcdThCQTQiKXJldHVybiJcdTlFRDhcdThCQTQiO3ZhciBpPW4uc2VhcmNoKC9b77yIKF0vKTtpPjAmJihuPW4uc2xpY2UoMCxpKS50cmltKCkpO3ZhciBhPW4ubGFzdEluZGV4T2YoIi8iKTthPj0wJiZhPG4ubGVuZ3RoLTEmJihuPW4uc2xpY2UoYSsxKS50cmltKCkpO3ZhciB1PW4udG9Mb3dlckNhc2UoKTtyZXR1cm4gdS5pbmRleE9mKCJvcHVzIikhPT0tMT8iT3B1cyI6dS5pbmRleE9mKCJzb25uZXQiKSE9PS0xPyJTb25uZXQiOnUuaW5kZXhPZigiaGFpa3UiKSE9PS0xPyJIYWlrdSI6dS5pbmRleE9mKCJncHQtNS41IikhPT0tMT8iR1BULTUuNSI6dS5pbmRleE9mKCJncHQtNSIpIT09LTE/IkdQVC01Ijp1LmluZGV4T2YoImdwdC00IikhPT0tMT8iR1BULTQiOm4ubGVuZ3RoPjEyP24uc2xpY2UoMCwxMCkrIlx1MjAyNiI6bn1mdW5jdGlvbiB1bChlKXtmb3IodmFyIHQ9ZXx8Im9mZiIsbj0iIixpPTA7aTxXdC5sZW5ndGg7aSsrKXt2YXIgYT1XdFtpXTtuKz0nPG9wdGlvbiB2YWx1ZT0iJytwKGEuaWQpKyciJysoYS5pZD09PXQ/IiBzZWxlY3RlZCI6IiIpKycgdGl0bGU9IicrcChhLmhpbnQpKyciPicrcChybShhLmlkKSkrIjwvb3B0aW9uPiJ9cmV0dXJuIG59ZnVuY3Rpb24gc2woZSl7dmFyIHQ9dHQoKSxuPXIuY2hhdE1vZGV8fCJkZWZhdWx0IixpPUxpKGUpfHwiIixhPXJ1KGUpLHU9WmEobikscz1JaShpLGUpLG89YWwoYSksbD0iXHU2QTIxXHU1RjBGICIrdSsiIFx4QjcgXHU2QTIxXHU1NzhCICIrcysiIFx4QjcgXHU2MDFEXHU4MDAzICIrbztyZXR1cm4nPGRpdiBjbGFzcz0iY29tcG9zZXItY29uZmlnLWNvbnRyb2xzIiByb2xlPSJncm91cCIgYXJpYS1sYWJlbD0iXHU0RjFBXHU4QkREXHU4QkJFXHU3RjZFIiB0aXRsZT0iJytwKGwpKyciPjxzcGFuIGNsYXNzPSJjb21wb3Nlci1jb25maWctY2hpcCBjb21wb3Nlci1jb25maWctY2hpcC1tb2RlIiBkYXRhLW1vZGUtY29udHJvbC1waWxsPSJtb2RlIiB0aXRsZT0iXHU2QTIxXHU1RjBGXHVGRjFBJytwKHUpKyciPicreigic2hpZWxkIix7c2l6ZToxMyxzdHJva2VXaWR0aDoxLjgsY2xzOiJjb21wb3Nlci1jb25maWctaWNvbiJ9KSsnPHNwYW4gY2xhc3M9ImNvbXBvc2VyLWNvbmZpZy1sYWJlbCI+JytwKHUpKyc8L3NwYW4+PHNlbGVjdCBjbGFzcz0iY29tcG9zZXItdGV4dC1oaWRkZW4tc2VsZWN0IiBkYXRhLW1vZGUtY29udHJvbD0ibW9kZSIgdGFiaW5kZXg9Ii0xIiBhcmlhLWxhYmVsPSJcdTZBMjFcdTVGMEYiPicrVGkodCxuKSsnPC9zZWxlY3Q+PC9zcGFuPjxzcGFuIGNsYXNzPSJjb21wb3Nlci1jb25maWctbW9kZWwtdGhpbmtpbmciIGRhdGEtdGhpbmtpbmc9IicrcChhKSsnIiB0aXRsZT0iXHU2QTIxXHU1NzhCXHU0RTBFXHU2MDFEXHU4MDAzXHU2REYxXHU1RUE2Ij48c3BhbiBjbGFzcz0iY29tcG9zZXItY29uZmlnLXBhcnQgY29tcG9zZXItY29uZmlnLW1vZGVsIiBkYXRhLW1vZGUtY29udHJvbC1waWxsPSJtb2RlbCI+Jyt6KCJjcHUiLHtzaXplOjEzLHN0cm9rZVdpZHRoOjEuOCxjbHM6ImNvbXBvc2VyLWNvbmZpZy1pY29uIn0pKyc8c3BhbiBjbGFzcz0iY29tcG9zZXItY29uZmlnLWxhYmVsIj4nK3AocykrJzwvc3Bhbj48c2VsZWN0IGNsYXNzPSJjb21wb3Nlci10ZXh0LWhpZGRlbi1zZWxlY3QiIGRhdGEtbW9kZS1jb250cm9sPSJtb2RlbCIgdGFiaW5kZXg9Ii0xIiBhcmlhLWxhYmVsPSJcdTZBMjFcdTU3OEIiPicrbnUoaSxlKSsnPC9zZWxlY3Q+PC9zcGFuPjxzcGFuIGNsYXNzPSJjb21wb3Nlci1jb25maWctcGFydCBjb21wb3Nlci1jb25maWctdGhpbmtpbmciIGRhdGEtbW9kZS1jb250cm9sLXBpbGw9InRoaW5raW5nIiBkYXRhLXRoaW5raW5nPSInK3AoYSkrJyI+Jyt6KCJicmFpbiIse3NpemU6MTMsc3Ryb2tlV2lkdGg6MS44LGNsczoiY29tcG9zZXItY29uZmlnLWljb24ifSkrJzxzcGFuIGNsYXNzPSJjb21wb3Nlci1jb25maWctbGFiZWwiPicrcChvKSsnPC9zcGFuPjxzZWxlY3QgY2xhc3M9ImNvbXBvc2VyLXRleHQtaGlkZGVuLXNlbGVjdCIgZGF0YS1tb2RlLWNvbnRyb2w9InRoaW5raW5nIiB0YWJpbmRleD0iLTEiIGFyaWEtbGFiZWw9Ilx1NjAxRFx1ODAwM1x1NkRGMVx1NUVBNiI+Jyt1bChhKSsiPC9zZWxlY3Q+PC9zcGFuPjwvc3Bhbj48L2Rpdj4ifWZ1bmN0aW9uIFhuKCl7dmFyIGU9Z3QoKSx0PXR0KCksbj1yLmNoYXRNb2RlfHwiZGVmYXVsdCIsaT1MaShlKXx8IiIsYT1JaShpLGUpLHU9cnUoZSkscz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuY2hhdC1tb2RlLXRyaW8iKTtzLmZvckVhY2goZnVuY3Rpb24obyl7ZnVuY3Rpb24gbChjLGYsZCx2KXt2YXIgaD1vLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLW1vZGUtY29udHJvbC1waWxsPSInK2MrJyJdJyk7aWYoaCl7dmFyIGc9aC5xdWVyeVNlbGVjdG9yKCIuY29tcG9zZXItdGV4dC1sYWJlbCIpO2cmJihnLnRleHRDb250ZW50PXZ8fGYpO3ZhciBtPWgucXVlcnlTZWxlY3RvcignW2RhdGEtbW9kZS1jb250cm9sPSInK2MrJyJdJyk7bSYmKGQmJihtLmlubmVySFRNTD1kKSxtLnZhbHVlIT09ZiYmKG0udmFsdWU9ZikpfX1sKCJtb2RlIixuLFRpKHQsbikpLGwoIm1vZGVsIixpLG9sKGksZSksYSksbCgidGhpbmtpbmciLHUsbGwodSkpfSksaW0oZSxuLExpKGUpfHwiIix1KX1mdW5jdGlvbiBpbShlLHQsbixpKXt2YXIgYT10dCgpLHU9WmEodCkscz1JaShuLGUpLG89YWwoaSksbD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuY29tcG9zZXItY29uZmlnLWNvbnRyb2xzIik7bC5mb3JFYWNoKGZ1bmN0aW9uKGMpe3ZhciBmPSJcdTZBMjFcdTVGMEYgIit1KyIgXHhCNyBcdTZBMjFcdTU3OEIgIitzKyIgXHhCNyBcdTYwMURcdTgwMDMgIitvO2Muc2V0QXR0cmlidXRlKCJ0aXRsZSIsZik7ZnVuY3Rpb24gZChCLEYseCl7dmFyIFM9Qi5xdWVyeVNlbGVjdG9yKCJbZGF0YS1tb2RlLWNvbnRyb2xdIik7UyYmKFMuaW5uZXJIVE1MPXgsUy52YWx1ZT1GKX12YXIgdj1jLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLW1vZGUtY29udHJvbC1waWxsPSJtb2RlIl0nKTtpZih2KXt2YXIgaD12LnF1ZXJ5U2VsZWN0b3IoIi5jb21wb3Nlci1jb25maWctbGFiZWwiKTtoJiYoaC50ZXh0Q29udGVudD11KSx2LnNldEF0dHJpYnV0ZSgidGl0bGUiLCJcdTZBMjFcdTVGMEZcdUZGMUEiK3UpLGQodix0LFRpKGEsdCkpfXZhciBnPWMucXVlcnlTZWxlY3RvcignW2RhdGEtbW9kZS1jb250cm9sLXBpbGw9Im1vZGVsIl0nKTtpZihnKXt2YXIgbT1nLnF1ZXJ5U2VsZWN0b3IoIi5jb21wb3Nlci1jb25maWctbGFiZWwiKTttJiYobS50ZXh0Q29udGVudD1zKSxkKGcsbixudShuLGUpKX12YXIgeT1jLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLW1vZGUtY29udHJvbC1waWxsPSJ0aGlua2luZyJdJyk7aWYoeSl7dmFyIHc9eS5xdWVyeVNlbGVjdG9yKCIuY29tcG9zZXItY29uZmlnLWxhYmVsIik7dyYmKHcudGV4dENvbnRlbnQ9bykseS5zZXRBdHRyaWJ1dGUoImRhdGEtdGhpbmtpbmciLGkpLGQoeSxpLHVsKGkpKX12YXIgRT1jLnF1ZXJ5U2VsZWN0b3IoIi5jb21wb3Nlci1jb25maWctbW9kZWwtdGhpbmtpbmciKTtFJiZFLnNldEF0dHJpYnV0ZSgiZGF0YS10aGlua2luZyIsaSl9KX1mdW5jdGlvbiBUaShlLHQpe3JldHVybiBldShlKS5tYXAoZnVuY3Rpb24obil7cmV0dXJuJzxvcHRpb24gdmFsdWU9IicrcChuKSsnIicrKG49PT10PyIgc2VsZWN0ZWQiOiIiKSsiPiIrcChuKSsiPC9vcHRpb24+In0pLmpvaW4oIiIpfWZ1bmN0aW9uIExpKGUpe3JldHVybiBlJiZlLnNlbGVjdGVkTW9kZWw/ZS5zZWxlY3RlZE1vZGVsOnIuY2hhdE1vZGVsP3IuY2hhdE1vZGVsOnIuY29uZmlnJiZyLmNvbmZpZy5kZWZhdWx0TW9kZWw/ci5jb25maWcuZGVmYXVsdE1vZGVsOiIifWZ1bmN0aW9uIHR1KGUpe3ZhciB0PWUmJmUucHJvdmlkZXJ8fHIuc2Vzc2lvblRvb2x8fCJjbGF1ZGUiO3JldHVybiB0PT09ImNvZGV4Ij9yLmF2YWlsYWJsZUNvZGV4TW9kZWxzfHxbXTpyLmF2YWlsYWJsZU1vZGVsc3x8W119ZnVuY3Rpb24gbnUoZSx0KXtmb3IodmFyIG49dHUodCksaT1lPT09ImRlZmF1bHQiPyIiOmV8fCIiLGE9JzxvcHRpb24gdmFsdWU9IiInKyhpPyIiOiIgc2VsZWN0ZWQiKSsiPlx1OUVEOFx1OEJBNCBceEI3ICIrcChTaSgiIix0KSkrIjwvb3B0aW9uPiIsdT0wO3U8bi5sZW5ndGg7dSsrKXt2YXIgcz1uW3VdO2lmKHMuaWQhPT0iZGVmYXVsdCIpe3ZhciBvPXMubGFiZWx8fHMuaWQ7YSs9JzxvcHRpb24gdmFsdWU9IicrcChzLmlkKSsnIicrKHMuaWQ9PT1pPyIgc2VsZWN0ZWQiOiIiKSsiPiIrcChvKSsiPC9vcHRpb24+In19cmV0dXJuIGkmJiFuLnNvbWUoZnVuY3Rpb24obCl7cmV0dXJuIGwuaWQ9PT1pfSkmJihhKz0nPG9wdGlvbiB2YWx1ZT0iJytwKGkpKyciIHNlbGVjdGVkPicrcChpKSsiXHVGRjA4XHU4MUVBXHU1QjlBXHU0RTQ5XHVGRjA5PC9vcHRpb24+IiksYX1mdW5jdGlvbiBvbChlLHQpe2Zvcih2YXIgbj10dSh0KSxpPWU9PT0iZGVmYXVsdCI/IiI6ZXx8IiIsYT0nPG9wdGlvbiB2YWx1ZT0iIicrKGk/IiI6IiBzZWxlY3RlZCIpKyI+IitwKFNpKCIiLHQpKSsiPC9vcHRpb24+Iix1PTA7dTxuLmxlbmd0aDt1Kyspe3ZhciBzPW5bdV07cy5pZCE9PSJkZWZhdWx0IiYmKGErPSc8b3B0aW9uIHZhbHVlPSInK3Aocy5pZCkrJyInKyhzLmlkPT09aT8iIHNlbGVjdGVkIjoiIikrIj4iK3Aocy5pZCkrIjwvb3B0aW9uPiIpfXJldHVybiBpJiYhbi5zb21lKGZ1bmN0aW9uKG8pe3JldHVybiBvLmlkPT09aX0pJiYoYSs9JzxvcHRpb24gdmFsdWU9IicrcChpKSsnIiBzZWxlY3RlZD4nK3AoaSkrIjwvb3B0aW9uPiIpLGF9ZnVuY3Rpb24gWm4oZSl7WG4oKX12YXIgV3Q9W3tpZDoib2ZmIixsYWJlbDoiYXV0byIsaGludDoiQ2xhdWRlIENMSTogYXV0by9kZWZhdWx0IFx4QjcgU0RLIFx1NTE3M1x1OTVFRCB0aGlua2luZyBceEI3IENvZGV4IG1pbmltYWwifSx7aWQ6InN0YW5kYXJkIixsYWJlbDoibG93IixoaW50OiJDbGF1ZGUgQ0xJOiBsb3cgXHhCNyBTREsgYnVkZ2V0IDQwOTYgXHhCNyBDb2RleCBsb3cifSx7aWQ6ImRlZXAiLGxhYmVsOiJtZWRpdW0iLGhpbnQ6IkNsYXVkZSBDTEk6IG1lZGl1bSBceEI3IFNESyBidWRnZXQgMTYwMDAgXHhCNyBDb2RleCBtZWRpdW0ifSx7aWQ6Im1heCIsbGFiZWw6Im1heCIsaGludDoiQ2xhdWRlIENMSTogbWF4IFx4QjcgU0RLIGJ1ZGdldCAzMTk5OSBceEI3IENvZGV4IGhpZ2gifV07ZnVuY3Rpb24gYW0oZSl7Zm9yKHZhciB0PTA7dDxXdC5sZW5ndGg7dCsrKWlmKFd0W3RdLmlkPT09ZSlyZXR1cm4gV3RbdF0ubGFiZWw7cmV0dXJuIFd0WzBdLmxhYmVsfWZ1bmN0aW9uIHJ1KGUpe3JldHVybiBlJiZlLnRoaW5raW5nRWZmb3J0P2UudGhpbmtpbmdFZmZvcnQ6ci5jaGF0VGhpbmtpbmc/ci5jaGF0VGhpbmtpbmc6Im9mZiJ9ZnVuY3Rpb24gZWgoZSl7Zm9yKHZhciB0PWV8fCJvZmYiLG49IiIsaT0wO2k8V3QubGVuZ3RoO2krKyl7dmFyIGE9V3RbaV07bis9JzxvcHRpb24gdmFsdWU9IicrcChhLmlkKSsnIicrKGEuaWQ9PT10PyIgc2VsZWN0ZWQiOiIiKSsnIHRpdGxlPSInK3AoYS5oaW50KSsnIj4nK3AoYS5sYWJlbCkrIjwvb3B0aW9uPiJ9cmV0dXJuIG59ZnVuY3Rpb24gbGwoZSl7Zm9yKHZhciB0PWV8fCJvZmYiLG49IiIsaT0wO2k8V3QubGVuZ3RoO2krKyl7dmFyIGE9V3RbaV07bis9JzxvcHRpb24gdmFsdWU9IicrcChhLmlkKSsnIicrKGEuaWQ9PT10PyIgc2VsZWN0ZWQiOiIiKSsiPiIrcChhLmlkKSsiPC9vcHRpb24+In1yZXR1cm4gbn1mdW5jdGlvbiB0aChlKXtYbigpfWZ1bmN0aW9uIHVtKGUpe3ZhciB0PShlfHwib2ZmIikudHJpbSgpO3QhPT0ib2ZmIiYmdCE9PSJzdGFuZGFyZCImJnQhPT0iZGVlcCImJnQhPT0ibWF4IiYmKHQ9Im9mZiIpLHIuY2hhdFRoaW5raW5nPXQ7dHJ5e2xvY2FsU3RvcmFnZS5zZXRJdGVtKCJ3YW5kLXRoaW5raW5nLWVmZm9ydCIsdCl9Y2F0Y2h7fVhuKCk7dmFyIG49Z3QoKTtuJiZmZXRjaCgiL2FwaS9zZXNzaW9ucy8iK2VuY29kZVVSSUNvbXBvbmVudChuLmlkKSsiL3RoaW5raW5nLWVmZm9ydCIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkoe3RoaW5raW5nRWZmb3J0OnR9KX0pLnRoZW4oZnVuY3Rpb24oaSl7cmV0dXJuIGkuanNvbigpfSkudGhlbihmdW5jdGlvbihpKXtpZihpJiZpLmVycm9yKXtrKGkuZXJyb3IsImVycm9yIik7cmV0dXJufWkmJmkuaWQmJigkKGkpLHR5cGVvZiBrPT0iZnVuY3Rpb24iJiZrKCJcdTVERjJcdTUyMDdcdTYzNjJcdTYwMURcdTgwMDNcdTZERjFcdTVFQTYgXHUyMTkyICIrYW0odCksInN1Y2Nlc3MiKSl9KS5jYXRjaChmdW5jdGlvbigpe2soIlx1NTIwN1x1NjM2Mlx1NjAxRFx1ODAwM1x1NkRGMVx1NUVBNlx1NTkzMVx1OEQyNSIsImVycm9yIil9KX1mdW5jdGlvbiBjbChlKXtpZighZSlyZXR1cm4hMTt2YXIgdD1lLm1vZGU7cmV0dXJuIHQ9PT0ibWFuYWdlZCJ8fHQ9PT0iZnVsbC1hY2Nlc3MifWZ1bmN0aW9uIHNtKGUpe2lmKCFlfHxjbChlKSlyZXR1cm4iIjt2YXIgdD0hIWUuYXV0b0FwcHJvdmVQZXJtaXNzaW9ucztyZXR1cm4gdD8nPGJ1dHRvbiBpZD0iYXV0by1hcHByb3ZlLXRvZ2dsZSIgY2xhc3M9ImNvbXBvc2VyLXBpbGwgY29tcG9zZXItcGlsbC1jaGlwIGF1dG8tYXBwcm92ZS1pbmRpY2F0b3IgYWN0aXZlIiB0eXBlPSJidXR0b24iIGFyaWEtcHJlc3NlZD0idHJ1ZSIgYXJpYS1sYWJlbD0iXHU4MUVBXHU1MkE4XHU2Mjc5XHU1MUM2XHU1REYyXHU1NDJGXHU3NTI4XHVGRjBDXHU3MEI5XHU1MUZCXHU1MTczXHU5NUVEIiB0aXRsZT0iXHU4MUVBXHU1MkE4XHU2Mjc5XHU1MUM2XHU1REYyXHU1NDJGXHU3NTI4IFx1MjAxNCBcdTcwQjlcdTUxRkJcdTUxNzNcdTk1RUQiPicreigic2hpZWxkQ2hlY2siLHtzaXplOjEyLHN0cm9rZVdpZHRoOjEuNyxjbHM6ImNvbXBvc2VyLXBpbGwtaWNvbiJ9KSsnPHNwYW4gY2xhc3M9ImNvbXBvc2VyLXBpbGwtbGFiZWwiPlx1ODFFQVx1NTJBODwvc3Bhbj48L2J1dHRvbj4nOic8YnV0dG9uIGlkPSJhdXRvLWFwcHJvdmUtdG9nZ2xlIiBjbGFzcz0iY29tcG9zZXItcGlsbCBjb21wb3Nlci1waWxsLWNoaXAgYXV0by1hcHByb3ZlLWluZGljYXRvciIgdHlwZT0iYnV0dG9uIiBhcmlhLXByZXNzZWQ9ImZhbHNlIiBhcmlhLWxhYmVsPSJcdTgxRUFcdTUyQThcdTYyNzlcdTUxQzZcdTVERjJcdTUxNzNcdTk1RURcdUZGMENcdTcwQjlcdTUxRkJcdTVGMDBcdTU0MkYiIHRpdGxlPSJcdTgxRUFcdTUyQThcdTYyNzlcdTUxQzZcdTVERjJcdTUxNzNcdTk1RUQgXHUyMDE0IFx1NzBCOVx1NTFGQlx1NUYwMFx1NTQyRiI+Jyt6KCJzaGllbGQiLHtzaXplOjEyLHN0cm9rZVdpZHRoOjEuNyxjbHM6ImNvbXBvc2VyLXBpbGwtaWNvbiJ9KSsnPHNwYW4gY2xhc3M9ImNvbXBvc2VyLXBpbGwtbGFiZWwiPlx1NjI0Qlx1NTJBODwvc3Bhbj48L2J1dHRvbj4nfWZ1bmN0aW9uIGRsKCl7cmV0dXJuIGZldGNoKCIvYXBpL21vZGVscyIse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBlLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIGUmJkFycmF5LmlzQXJyYXkoZS5tb2RlbHMpJiYoci5hdmFpbGFibGVNb2RlbHM9ZS5tb2RlbHMsci5hdmFpbGFibGVDb2RleE1vZGVscz1BcnJheS5pc0FycmF5KGUuY29kZXhNb2RlbHMpP2UuY29kZXhNb2RlbHM6W10sWm4oZ3QoKSksTWkoZSkpLGV9KS5jYXRjaChmdW5jdGlvbigpe3JldHVybiBudWxsfSl9ZnVuY3Rpb24gb20oKXtpZihyLm1vZGVsc1JlZnJlc2hpbmcpcmV0dXJuIFByb21pc2UucmVzb2x2ZShudWxsKTtyLm1vZGVsc1JlZnJlc2hpbmc9ITA7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1kZWZhdWx0LW1vZGVsLXJlZnJlc2giKTtyZXR1cm4gZSYmKGUuZGlzYWJsZWQ9ITAsZS50ZXh0Q29udGVudD0iXHU1MjM3XHU2NUIwXHU0RTJELi4uIiksZmV0Y2goIi9hcGkvbW9kZWxzL3JlZnJlc2giLHttZXRob2Q6IlBPU1QiLGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiB0Lmpzb24oKX0pLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIHQmJkFycmF5LmlzQXJyYXkodC5tb2RlbHMpJiYoci5hdmFpbGFibGVNb2RlbHM9dC5tb2RlbHMsci5hdmFpbGFibGVDb2RleE1vZGVscz1BcnJheS5pc0FycmF5KHQuY29kZXhNb2RlbHMpP3QuY29kZXhNb2RlbHM6W10sWm4oZ3QoKSksTWkodCksdHlwZW9mIGs9PSJmdW5jdGlvbiImJmsoIlx1NkEyMVx1NTc4Qlx1NTIxN1x1ODg2OFx1NURGMlx1NTIzN1x1NjVCMCIrKHQuY2xhdWRlVmVyc2lvbj8iXHVGRjA4Y2xhdWRlICIrdC5jbGF1ZGVWZXJzaW9uKyJcdUZGMDkiOiIiKSwic3VjY2VzcyIpKSx0fSkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm4gdHlwZW9mIGs9PSJmdW5jdGlvbiImJmsoIlx1NTIzN1x1NjVCMFx1NkEyMVx1NTc4Qlx1NTIxN1x1ODg2OFx1NTkzMVx1OEQyNSIsImVycm9yIiksbnVsbH0pLmZpbmFsbHkoZnVuY3Rpb24oKXtyLm1vZGVsc1JlZnJlc2hpbmc9ITEsZSYmKGUuZGlzYWJsZWQ9ITEsZS50ZXh0Q29udGVudD0iXHU1MjM3XHU2NUIwIil9KX1mdW5jdGlvbiBsbSgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlbnYtcHJldmlldy1tb2RhbCIpO2lmKCFlKXtlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNlY3Rpb24iKSxlLmlkPSJlbnYtcHJldmlldy1tb2RhbCIsZS5jbGFzc05hbWU9Im1vZGFsLWJhY2tkcm9wIGhpZGRlbiIsZS5pbm5lckhUTUw9JzxkaXYgY2xhc3M9Im1vZGFsIGVudi1wcmV2aWV3LW1vZGFsIiByb2xlPSJkaWFsb2ciIGFyaWEtbGFiZWxsZWRieT0iZW52LXByZXZpZXctdGl0bGUiIGFyaWEtbW9kYWw9InRydWUiPjxkaXYgY2xhc3M9Im1vZGFsLWhlYWRlciI+PGRpdj48aDIgY2xhc3M9Im1vZGFsLXRpdGxlIiBpZD0iZW52LXByZXZpZXctdGl0bGUiPlx1NUMwNlx1NkNFOFx1NTE2NVx1NUI1MFx1OEZEQlx1N0EwQlx1NzY4NFx1NzNBRlx1NTg4M1x1NTNEOFx1OTFDRjwvaDI+PHAgY2xhc3M9Im1vZGFsLXN1YnRpdGxlIiBpZD0iZW52LXByZXZpZXctc3VidGl0bGUiPlx1OEZEOVx1NEU5Qlx1NTNEOFx1OTFDRlx1NEYxQVx1ODhBQlx1NEYyMFx1N0VEOSBjbGF1ZGUgLyBjb2RleFx1RkYwOFBUWSBcdTRFMEVcdTdFRDNcdTY3ODRcdTUzMTZcdThGRDBcdTg4NENcdTU2NjhcdTRFMDBcdTgxRjRcdUZGMDlcdTMwMDI8L3A+PC9kaXY+PGJ1dHRvbiBpZD0iZW52LXByZXZpZXctY2xvc2UiIGNsYXNzPSJidG4gYnRuLWdob3N0IGJ0bi1pY29uIG1vZGFsLWNsb3NlLWJ0biIgdHlwZT0iYnV0dG9uIiBhcmlhLWxhYmVsPSJcdTUxNzNcdTk1RUQiPjxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIuNCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PGxpbmUgeDE9IjYiIHkxPSI2IiB4Mj0iMTgiIHkyPSIxOCIvPjxsaW5lIHgxPSIxOCIgeTE9IjYiIHgyPSI2IiB5Mj0iMTgiLz48L3N2Zz48L2J1dHRvbj48L2Rpdj48ZGl2IGNsYXNzPSJtb2RhbC1ib2R5IGVudi1wcmV2aWV3LWJvZHkiPjxkaXYgY2xhc3M9ImVudi1wcmV2aWV3LXRvb2xiYXIiPjxkaXYgY2xhc3M9ImVudi1wcmV2aWV3LW1ldGEiIGlkPSJlbnYtcHJldmlldy1tZXRhIj5cdTUyQTBcdThGN0RcdTRFMkRcdTIwMjY8L2Rpdj48ZGl2IGNsYXNzPSJlbnYtcHJldmlldy1jb250cm9scyI+PGlucHV0IGlkPSJlbnYtcHJldmlldy1zZWFyY2giIGNsYXNzPSJlbnYtcHJldmlldy1zZWFyY2giIHR5cGU9InNlYXJjaCIgcGxhY2Vob2xkZXI9Ilx1NjQxQ1x1N0QyMlx1NTNEOFx1OTFDRlx1NTQwRFx1MjAyNiIgLz48bGFiZWwgY2xhc3M9ImVudi1wcmV2aWV3LXJldmVhbCI+PGlucHV0IGlkPSJlbnYtcHJldmlldy1yZXZlYWwtdG9nZ2xlIiB0eXBlPSJjaGVja2JveCIgLz48c3Bhbj5cdTY2M0VcdTc5M0FcdTY1NEZcdTYxMUZcdTUwM0M8L3NwYW4+PC9sYWJlbD48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJlbnYtcHJldmlldy1saXN0IiBpZD0iZW52LXByZXZpZXctbGlzdCIgdGFiaW5kZXg9IjAiPjxkaXYgY2xhc3M9ImVudi1wcmV2aWV3LWxvYWRpbmciPlx1NTJBMFx1OEY3RFx1NEUyRFx1MjAyNjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9Im1vZGFsLWZvb3RlciBlbnYtcHJldmlldy1mb290ZXIiPjxzcGFuIGNsYXNzPSJlbnYtcHJldmlldy1oaW50Ij5cdTY1NEZcdTYxMUZcdTVCNTdcdTZCQjVcdUZGMDhcdTU0MkIgS0VZL1RPS0VOL1NFQ1JFVCBcdTdCNDlcdUZGMDlcdTlFRDhcdThCQTRcdTYzQTlcdTc4MDFcdUZGMENcdTUzRUZcdTUyRkVcdTkwMDlcdTMwMENcdTY2M0VcdTc5M0FcdTY1NEZcdTYxMUZcdTUwM0NcdTMwMERcdTRFMzRcdTY1RjZcdThGRDhcdTUzOUZcdTMwMDI8L3NwYW4+PGJ1dHRvbiBpZD0iZW52LXByZXZpZXctY2xvc2UtMiIgY2xhc3M9ImJ0biBidG4tc2Vjb25kYXJ5IGJ0bi1zbSIgdHlwZT0iYnV0dG9uIj5cdTUxNzNcdTk1RUQ8L2J1dHRvbj48L2Rpdj48L2Rpdj4nLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZSksZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24obyl7by50YXJnZXQ9PT1lJiZpdSgpfSk7dmFyIHQ9ZS5xdWVyeVNlbGVjdG9yKCIjZW52LXByZXZpZXctY2xvc2UiKTt0JiZ0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixpdSk7dmFyIG49ZS5xdWVyeVNlbGVjdG9yKCIjZW52LXByZXZpZXctY2xvc2UtMiIpO24mJm4uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGl1KTt2YXIgYT1lLnF1ZXJ5U2VsZWN0b3IoIiNlbnYtcHJldmlldy1zZWFyY2giKTthJiZhLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IixmdW5jdGlvbigpe3BsKCl9KTt2YXIgaT1lLnF1ZXJ5U2VsZWN0b3IoIiNlbnYtcHJldmlldy1yZXZlYWwtdG9nZ2xlIik7aSYmaS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7ZmwoaS5jaGVja2VkKX0pfWUuY2xhc3NMaXN0LnJlbW92ZSgiY2xvc2luZyIpLGUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIik7dmFyIGk9ZS5xdWVyeVNlbGVjdG9yKCIjZW52LXByZXZpZXctcmV2ZWFsLXRvZ2dsZSIpO2kmJihpLmNoZWNrZWQ9ITEpO3ZhciBhPWUucXVlcnlTZWxlY3RvcigiI2Vudi1wcmV2aWV3LXNlYXJjaCIpO2EmJihhLnZhbHVlPSIiKSxmbCghMSl9ZnVuY3Rpb24gaXUoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZW52LXByZXZpZXctbW9kYWwiKTtlJiZsdShlKX1mdW5jdGlvbiBmbChlKXt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZW52LXByZXZpZXctbGlzdCIpLG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVudi1wcmV2aWV3LW1ldGEiKTt0JiYodC5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImVudi1wcmV2aWV3LWxvYWRpbmciPlx1NTJBMFx1OEY3RFx1NEUyRFx1MjAyNjwvZGl2PicpLG4mJihuLnRleHRDb250ZW50PSJcdTUyQTBcdThGN0RcdTRFMkRcdTIwMjYiKTt2YXIgaT0iL2FwaS9zZXR0aW5ncy9lbnYtcHJldmlldyIrKGU/Ij9yZXZlYWw9MSI6IiIpO2ZldGNoKGkse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKGEpe3JldHVybiBhLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24oYSl7aWYoIWF8fCFBcnJheS5pc0FycmF5KGEuZW50cmllcykpe3QmJih0LmlubmVySFRNTD0nPGRpdiBjbGFzcz0iZW52LXByZXZpZXctZW1wdHkiPlx1OEJGQlx1NTNENlx1NTkzMVx1OEQyNVx1MzAwMjwvZGl2PicpLG4mJihuLnRleHRDb250ZW50PSJcdThCRkJcdTUzRDZcdTU5MzFcdThEMjUiKTtyZXR1cm59aWYoci5fZW52UHJldmlldz1hLG4pe3ZhciB1PWEuaW5oZXJpdEVudj8iXHU3RUU3XHU2MjdGXHU3MjM2XHU4RkRCXHU3QTBCIjoiXHU2NzAwXHU1QzBGXHU3NjdEXHU1NDBEXHU1MzU1IjtuLmlubmVySFRNTD0nPHNwYW4gY2xhc3M9ImVudi1wcmV2aWV3LXBpbGwgJysoYS5pbmhlcml0RW52PyJpcy1pbmhlcml0IjoiaXMtbWluaW1hbCIpKyciPicrdSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJlbnYtcHJldmlldy1jb3VudCI+XHU1MTcxICcrYS50b3RhbCsiIFx1OTg3OTwvc3Bhbj4ifXBsKCl9KS5jYXRjaChmdW5jdGlvbigpe3QmJih0LmlubmVySFRNTD0nPGRpdiBjbGFzcz0iZW52LXByZXZpZXctZW1wdHkiPlx1OEJGQlx1NTNENlx1NTkzMVx1OEQyNVx1RkYwQ1x1OEJGN1x1N0EwRFx1NTQwRVx1OTFDRFx1OEJENVx1MzAwMjwvZGl2PicpLG4mJihuLnRleHRDb250ZW50PSJcdThCRkJcdTUzRDZcdTU5MzFcdThEMjUiKX0pfWZ1bmN0aW9uIHBsKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVudi1wcmV2aWV3LWxpc3QiKTtpZihlKXt2YXIgdD1yLl9lbnZQcmV2aWV3O2lmKCF0fHwhQXJyYXkuaXNBcnJheSh0LmVudHJpZXMpKXtlLmlubmVySFRNTD0nPGRpdiBjbGFzcz0iZW52LXByZXZpZXctZW1wdHkiPlx1NUMxQVx1NjcyQVx1NTJBMFx1OEY3RFx1MzAwMjwvZGl2Pic7cmV0dXJufWZvcih2YXIgbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZW52LXByZXZpZXctc2VhcmNoIiksaT0obiYmbi52YWx1ZXx8IiIpLnRyaW0oKS50b0xvd2VyQ2FzZSgpLGE9IiIsdT0wLHM9MDtzPHQuZW50cmllcy5sZW5ndGg7cysrKXt2YXIgbz10LmVudHJpZXNbc107aWYoIShpJiZvLm5hbWUudG9Mb3dlckNhc2UoKS5pbmRleE9mKGkpPT09LTEpKXt1Kys7dmFyIGw9dHlwZW9mIG8udmFsdWU9PSJzdHJpbmciJiZvLnZhbHVlLmNoYXJBdCgwKT09PSI8IiYmby52YWx1ZS5jaGFyQXQoby52YWx1ZS5sZW5ndGgtMSk9PT0iPiI7YSs9JzxkaXYgY2xhc3M9ImVudi1wcmV2aWV3LXJvdycrKG8uc2Vuc2l0aXZlPyIgaXMtc2Vuc2l0aXZlIjoiIikrJyI+PGRpdiBjbGFzcz0iZW52LXByZXZpZXctbmFtZSI+JytwKG8ubmFtZSkrKG8uc2Vuc2l0aXZlPyc8c3BhbiBjbGFzcz0iZW52LXByZXZpZXctYmFkZ2UiIHRpdGxlPSJcdTg4QUJcdThCQzZcdTUyMkJcdTRFM0FcdTY1NEZcdTYxMUZcdTVCNTdcdTZCQjUiPlx1NjU0Rlx1NjExRjwvc3Bhbj4nOiIiKSsobD8nPHNwYW4gY2xhc3M9ImVudi1wcmV2aWV3LWJhZGdlIGVudi1wcmV2aWV3LWJhZGdlLXJ1bnRpbWUiIHRpdGxlPSJcdTYzMDlcdTRGMUFcdThCRERcdTUyQThcdTYwMDFcdTZDRThcdTUxNjUiPlx1OEZEMFx1ODg0Q1x1NjVGNjwvc3Bhbj4nOiIiKSsnPC9kaXY+PGRpdiBjbGFzcz0iZW52LXByZXZpZXctdmFsdWUnKyhsPyIgaXMtcnVudGltZSI6IiIpKyciIHRpdGxlPSInK3AoU3RyaW5nKG8udmFsdWUpKSsnIj4nK3AoU3RyaW5nKG8udmFsdWUpKSsnPC9kaXY+PGRpdiBjbGFzcz0iZW52LXByZXZpZXctbGVuIj4nK28ubGVuZ3RoKyIgXHU1QjU3XHU3QjI2PC9kaXY+PC9kaXY+In19dT09PTAmJihhPSc8ZGl2IGNsYXNzPSJlbnYtcHJldmlldy1lbXB0eSI+XHU2Q0ExXHU2NzA5XHU1MzM5XHU5MTREXHU3Njg0XHU1M0Q4XHU5MUNGXHUzMDAyPC9kaXY+JyksZS5pbm5lckhUTUw9YX19ZnVuY3Rpb24gTWkoZSl7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1kZWZhdWx0LW1vZGVsIik7aWYodCl7dmFyIG49dC52YWx1ZSxpPW58fHIuY29uZmlnRGVmYXVsdE1vZGVsfHxyLmNvbmZpZyYmci5jb25maWcuZGVmYXVsdE1vZGVsfHwiIjt0LmlubmVySFRNTD1udShpLHtwcm92aWRlcjoiY2xhdWRlIn0pLHQudmFsdWU9aTt2YXIgYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWRlZmF1bHQtbW9kZWwtdmVyc2lvbiIpO2EmJmUmJihhLnRleHRDb250ZW50PWUuY2xhdWRlVmVyc2lvbj8iXHU1REYyXHU2OEMwXHU2RDRCXHU1MjMwIGNsYXVkZSAiK2UuY2xhdWRlVmVyc2lvbjoiXHU2NUIwXHU1RUZBXHU0RjFBXHU4QkREXHU2NUY2XHU5RUQ4XHU4QkE0XHU0RjdGXHU3NTI4XHU4QkU1XHU2QTIxXHU1NzhCXHUzMDAyIil9fWZ1bmN0aW9uIGd0KCl7aWYoIXIuc2VsZWN0ZWRJZClyZXR1cm4gbnVsbDtmb3IodmFyIGU9MDtlPHIuc2Vzc2lvbnMubGVuZ3RoO2UrKylpZihyLnNlc3Npb25zW2VdLmlkPT09ci5zZWxlY3RlZElkKXJldHVybiByLnNlc3Npb25zW2VdO3JldHVybiBudWxsfWZ1bmN0aW9uIGNtKGUpe3ZhciB0PShlfHwiIikudHJpbSgpO3IuY2hhdE1vZGVsPXQ7dHJ5e2xvY2FsU3RvcmFnZS5zZXRJdGVtKCJ3YW5kLWNoYXQtbW9kZWwiLHQpfWNhdGNoe31YbigpO3ZhciBuPWd0KCk7biYmZmV0Y2goIi9hcGkvc2Vzc2lvbnMvIitlbmNvZGVVUklDb21wb25lbnQobi5pZCkrIi9tb2RlbCIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkoe21vZGVsOnR8fG51bGx9KX0pLnRoZW4oZnVuY3Rpb24oaSl7cmV0dXJuIGkuanNvbigpfSkudGhlbihmdW5jdGlvbihpKXtpZihpJiZpLmVycm9yKXtrKGkuZXJyb3IsImVycm9yIik7cmV0dXJufWlmKGkmJmkuaWQmJigkKGkpLHR5cGVvZiBrPT0iZnVuY3Rpb24iKSl7dmFyIGE9U2kodCxuKSx1PW4ucHJvdmlkZXI9PT0iY29kZXgiPyJcdUZGMDhcdTRFMEJcdTZCMjFcdTVCRjlcdThCRERcdTc1MUZcdTY1NDhcdUZGMDkiOiIiO2soIlx1NURGMlx1NTIwN1x1NjM2Mlx1NkEyMVx1NTc4QiBcdTIxOTIgIithK3UsInN1Y2Nlc3MiKX19KS5jYXRjaChmdW5jdGlvbigpe2soIlx1NTIwN1x1NjM2Mlx1NkEyMVx1NTc4Qlx1NTkzMVx1OEQyNSIsImVycm9yIil9KX1mdW5jdGlvbiBkbShlKXt2YXIgdD1TdCh0dCgpLChlfHwiZGVmYXVsdCIpLnRyaW0oKSk7ci5jaGF0TW9kZT10LFhuKCk7dmFyIG49Z3QoKTtpZighbnx8IW4uaWR8fG4uc2Vzc2lvbktpbmQhPT0ic3RydWN0dXJlZCIpe2smJmsoIlx1NjVCMFx1NEYxQVx1OEJERFx1NkEyMVx1NUYwRlx1RkYxQSIrdCwiaW5mbyIpO3JldHVybn1mZXRjaCgiL2FwaS9zZXNzaW9ucy8iK2VuY29kZVVSSUNvbXBvbmVudChuLmlkKSsiL21vZGUiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KHttb2RlOnR9KX0pLnRoZW4oZnVuY3Rpb24oaSl7cmV0dXJuIGkuanNvbigpfSkudGhlbihmdW5jdGlvbihpKXtpZihpJiZpLmVycm9yKXtrKGkuZXJyb3IsImVycm9yIik7cmV0dXJufWlmKGkmJmkuaWQmJigkKGkpLHR5cGVvZiBrPT0iZnVuY3Rpb24iKSl7dmFyIGE9bi5wcm92aWRlcj09PSJjb2RleCI/Ilx1RkYwOENvZGV4IFx1NTZGQVx1NUI5QVx1NTE2OFx1Njc0M1x1OTY1MFx1RkYwOSI6IiI7aygiXHU1REYyXHU1MjA3XHU2MzYyXHU2QTIxXHU1RjBGIFx1MjE5MiAiK3QrYSwic3VjY2VzcyIpfX0pLmNhdGNoKGZ1bmN0aW9uKCl7aygiXHU1MjA3XHU2MzYyXHU2QTIxXHU1RjBGXHU1OTMxXHU4RDI1IiwiZXJyb3IiKX0pfWZ1bmN0aW9uIHZsKGUsdCxuLGkpe3ZhciBhPXIuc2Vzc2lvblRvb2w9PT0iY29kZXgiPyJjb2RleCI6ImNsYXVkZSIsdT1yLmNoYXRNb2RlbHx8ci5jb25maWcmJnIuY29uZmlnLmRlZmF1bHRNb2RlbHx8IiIscz1yLmNoYXRUaGlua2luZ3x8Im9mZiIsbz17Y3dkOnR8fGV0KCksbW9kZTpufHxyLmNoYXRNb2RlfHxyLmNvbmZpZyYmci5jb25maWcuZGVmYXVsdE1vZGV8fCJkZWZhdWx0Iixwcm92aWRlcjphLHJ1bm5lcjphPT09ImNvZGV4Ij8iY29kZXgtY2xpLWV4ZWMiOnIuY29uZmlnJiZyLmNvbmZpZy5zdHJ1Y3R1cmVkUnVubmVyPT09InNkayI/ImNsYXVkZS1zZGsiOnIuc3RydWN0dXJlZFJ1bm5lcnx8ImNsYXVkZS1jbGktcHJpbnQiLHByb21wdDplfHx2b2lkIDAsd29ya3RyZWVFbmFibGVkOmk9PT0hMCxtb2RlbDp1fHx2b2lkIDAsdGhpbmtpbmdFZmZvcnQ6c307cmV0dXJuIGZldGNoKCIvYXBpL3N0cnVjdHVyZWQtc2Vzc2lvbnMiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KG8pfSkudGhlbihmdW5jdGlvbihsKXtyZXR1cm4gbC5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKGwpe2lmKGwuZXJyb3IpdGhyb3cgbmV3IEVycm9yKGwuZXJyb3IpO3JldHVybiByLnNlbGVjdGVkSWQ9bC5pZCx3ZSgpLHIuZHJhZnRzW2wuaWRdPSIiLEF0KCksJChsKSxtZSgpLGtyKGwuaWQpLHFuKGwuaWQpLGhuKGwuaWQpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gbH0pfSl9ZnVuY3Rpb24gcWkoKXt2YXIgZT0hIXIuc2VsZWN0ZWRJZCx0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKSxuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGF0LW91dHB1dCIpLGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJsYW5rLWNoYXQiKSxhPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihsKXtyZXR1cm4gbC5pZD09PXIuc2VsZWN0ZWRJZH0pLHU9dWUoYSkscz1lJiYhdSYmci5jdXJyZW50Vmlldz09PSJ0ZXJtaW5hbCIsbz1lJiYodXx8ci5jdXJyZW50VmlldyE9PSJ0ZXJtaW5hbCIpO3U/ci5jdXJyZW50Vmlldz0iY2hhdCI6ZXx8KHIuY3VycmVudFZpZXc9InRlcm1pbmFsIiksdCYmKHQuY2xhc3NMaXN0LnRvZ2dsZSgiYWN0aXZlIixzKSx0LmNsYXNzTGlzdC50b2dnbGUoImhpZGRlbiIsIXMpKSxuJiYobi5jbGFzc0xpc3QudG9nZ2xlKCJhY3RpdmUiLG8pLG4uY2xhc3NMaXN0LnRvZ2dsZSgiaGlkZGVuIiwhbykpLGkmJmkuY2xhc3NMaXN0LnRvZ2dsZSgiaGlkZGVuIixlKSxuJiZvJiZOYShuKSxvcigpLFZlKCksQXIoKX1mdW5jdGlvbiBMcigpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtb2RlLWRlc2NyaXB0aW9uIiksdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2Vzc2lvbi1raW5kLWRlc2NyaXB0aW9uIiksbj1yLnNlc3Npb25Ub29sfHwiY2xhdWRlIixpPXIuc2Vzc2lvbkNyZWF0ZUtpbmR8fCJzdHJ1Y3R1cmVkIjtyLnNlc3Npb25Ub29sPW4sci5tb2RlVmFsdWU9U3QobixyLm1vZGVWYWx1ZXx8ci5jaGF0TW9kZXx8ImRlZmF1bHQiKTt2YXIgYT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjcHJvdmlkZXItY2FyZHMgLnByb3ZpZGVyLWNhcmQiKTthLmxlbmd0aCYmYS5mb3JFYWNoKGZ1bmN0aW9uKG8pe3ZhciBsPW8uZ2V0QXR0cmlidXRlKCJkYXRhLXByb3ZpZGVyIik7by5jbGFzc0xpc3QudG9nZ2xlKCJhY3RpdmUiLGw9PT1uKSxvLmNsYXNzTGlzdC5yZW1vdmUoImRpc2FibGVkIil9KTt2YXIgdT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjc2Vzc2lvbi1raW5kLWNhcmRzIC5zZXNzaW9uLWtpbmQtY2FyZCIpO3UubGVuZ3RoJiZ1LmZvckVhY2goZnVuY3Rpb24obyl7dmFyIGw9by5nZXRBdHRyaWJ1dGUoImRhdGEtc2Vzc2lvbi1raW5kIiksYz0hMTtvLmNsYXNzTGlzdC50b2dnbGUoImFjdGl2ZSIsbD09PWkpLG8uY2xhc3NMaXN0LnRvZ2dsZSgiZGlzYWJsZWQiLGMpfSk7dmFyIHM9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI21vZGUtY2FyZHMgLm1vZGUtY2FyZCIpO3MubGVuZ3RoJiZzLmZvckVhY2goZnVuY3Rpb24obyl7by5jbGFzc0xpc3QudG9nZ2xlKCJhY3RpdmUiLG8uZ2V0QXR0cmlidXRlKCJkYXRhLW1vZGUiKT09PXIubW9kZVZhbHVlKX0pLHQmJih0LnRleHRDb250ZW50PW9zKGkpKSxlJiYoZS50ZXh0Q29udGVudD10bChuLHIubW9kZVZhbHVlKSl9ZnVuY3Rpb24gZm0oZSx0LG4saSl7dmFyIGE9bnx8MCx1PXR5cGVvZiBpPT0ibnVtYmVyIj9pOk1hdGgubWF4KGErdC5sZW5ndGgsdC5sZW5ndGgpLHM9ZSYmQXJyYXkuaXNBcnJheShlLm1lc3NhZ2VzKT9lLm1lc3NhZ2VzOltdLG89ZSYmdHlwZW9mIGUubWVzc2FnZU9mZnNldD09Im51bWJlciI/ZS5tZXNzYWdlT2Zmc2V0OjA7aWYodC5sZW5ndGg9PT0wJiZzLmxlbmd0aD4wJiZ1PT09MClyZXR1cm57bWVzc2FnZXM6cyxtZXNzYWdlT2Zmc2V0Om8sbWVzc2FnZVRvdGFsOmUmJmUubWVzc2FnZVRvdGFsfHxzLmxlbmd0aH07aWYocy5sZW5ndGg9PT0wKXJldHVybnttZXNzYWdlczp0LG1lc3NhZ2VPZmZzZXQ6YSxtZXNzYWdlVG90YWw6dX07aWYobzw9YSl7dmFyIGw9TWF0aC5taW4oTWF0aC5tYXgoYS1vLDApLHMubGVuZ3RoKSxjPXMuc2xpY2UoMCxsKS5jb25jYXQodCk7cmV0dXJue21lc3NhZ2VzOmMsbWVzc2FnZU9mZnNldDpvLG1lc3NhZ2VUb3RhbDpNYXRoLm1heCh1LG8rYy5sZW5ndGgpfX1yZXR1cm57bWVzc2FnZXM6dCxtZXNzYWdlT2Zmc2V0OmEsbWVzc2FnZVRvdGFsOnV9fWZ1bmN0aW9uICQoZSl7aWYoISghZXx8IWUuaWQpKXt2YXIgdD1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24obyl7cmV0dXJuIG8uaWQ9PT1lLmlkfSl8fG51bGwsbj1uYyhlLHQpO2lmKEFycmF5LmlzQXJyYXkobi5tZXNzYWdlcykmJnR5cGVvZiBuLm1lc3NhZ2VPZmZzZXQ9PSJudW1iZXIiKXt2YXIgaT1mbSh0LG4ubWVzc2FnZXMsbi5tZXNzYWdlT2Zmc2V0LG4ubWVzc2FnZVRvdGFsKTtuLm1lc3NhZ2VzPWkubWVzc2FnZXMsbi5tZXNzYWdlT2Zmc2V0PWkubWVzc2FnZU9mZnNldCxuLm1lc3NhZ2VUb3RhbD1pLm1lc3NhZ2VUb3RhbH12YXIgYT0hMSx1PW51bGw7ci5zZXNzaW9ucz1yLnNlc3Npb25zLm1hcChmdW5jdGlvbihvKXtyZXR1cm4gby5pZCE9PW4uaWQ/bzoodT1vLGE9ITAsT2JqZWN0LmFzc2lnbih7fSxvLG4pKX0pLGF8fHIuc2Vzc2lvbnMudW5zaGlmdChuKTt2YXIgcz1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24obyl7cmV0dXJuIG8uaWQ9PT1uLmlkfSl8fG47cyYmQXJyYXkuaXNBcnJheShzLnF1ZXVlZE1lc3NhZ2VzKSYmbi5pZD09PXIuc2VsZWN0ZWRJZCYmKEpyKHMpLFN1KCksZm4oKSksbi5pZD09PXIuc2VsZWN0ZWRJZCYmKExhKCksWnQoKSksbi5zdGF0dXMmJm4uc3RhdHVzIT09InJ1bm5pbmciJiZyLmNyb3NzU2Vzc2lvblF1ZXVlLmxlbmd0aD4wJiZzZXRUaW1lb3V0KHZpLDApfX1mdW5jdGlvbiBxbihlKXshZXx8IXIud3N8fHIud3MucmVhZHlTdGF0ZSE9PVdlYlNvY2tldC5PUEVOfHxyLndzLnNlbmQoSlNPTi5zdHJpbmdpZnkoe3R5cGU6InN1YnNjcmliZSIsc2Vzc2lvbklkOmV9KSl9ZnVuY3Rpb24gcG0oZSx0KXtpZighZSlyZXR1cm4gdDt2YXIgbj1PYmplY3QuYXNzaWduKHt9LGUsdCksaT1lLm91dHB1dHx8IiIsYT10Lm91dHB1dHx8IiIsdT1pLmxlbmd0aD5hLmxlbmd0aCxzPWUuc3RydWN0dXJlZFN0YXRlfHxudWxsLG89dC5zdHJ1Y3R1cmVkU3RhdGV8fG51bGwsbD1lLnNlc3Npb25LaW5kPT09InN0cnVjdHVyZWQifHx0LnNlc3Npb25LaW5kPT09InN0cnVjdHVyZWQiLGM9ISEoZS5tZXNzYWdlcyYmZS5tZXNzYWdlcy5sZW5ndGgmJihmdW5jdGlvbigpe3ZhciBtPWUubWVzc2FnZXNbZS5tZXNzYWdlcy5sZW5ndGgtMV07cmV0dXJuIG0mJm0ucm9sZT09PSJhc3Npc3RhbnQiJiZBcnJheS5pc0FycmF5KG0uY29udGVudCkmJm0uY29udGVudC5zb21lKGZ1bmN0aW9uKHkpe3JldHVybiB5JiZ5Ll9fcHJvY2Vzc2luZ30pfSkoKSksZj1BcnJheS5pc0FycmF5KGUubWVzc2FnZXMpP2w/Y3IoZS5tZXNzYWdlcyk6ZS5tZXNzYWdlczpbXSxkPUFycmF5LmlzQXJyYXkodC5tZXNzYWdlcyk/bD9jcih0Lm1lc3NhZ2VzKTp0Lm1lc3NhZ2VzOltdLHY9ZC5sZW5ndGg+MCYmKGZ1bmN0aW9uKCl7dmFyIG09ZFtkLmxlbmd0aC0xXTtyZXR1cm4gbSYmbS5yb2xlPT09ImFzc2lzdGFudCImJkFycmF5LmlzQXJyYXkobS5jb250ZW50KSYmIW0uY29udGVudC5zb21lKGZ1bmN0aW9uKHkpe3JldHVybiB5JiZ5Ll9fcHJvY2Vzc2luZ30pfSkoKSxoPWUuc2Vzc2lvbktpbmQ9PT0ic3RydWN0dXJlZCImJiEhcyYmcy5pbkZsaWdodD09PSEwJiYoIW98fG8uaW5GbGlnaHQhPT0hMCkmJmMmJiEhcy5hY3RpdmVSZXF1ZXN0SWQmJiEhbyYmISFvLmFjdGl2ZVJlcXVlc3RJZCYmby5hY3RpdmVSZXF1ZXN0SWQ9PT1zLmFjdGl2ZVJlcXVlc3RJZCYmIXYsZz1mLmxlbmd0aD5kLmxlbmd0aHx8Zi5sZW5ndGg+MCYmZC5sZW5ndGg+MCYmSlNPTi5zdHJpbmdpZnkoZltmLmxlbmd0aC0xXSkhPT1KU09OLnN0cmluZ2lmeShkW2QubGVuZ3RoLTFdKSYmSlNPTi5zdHJpbmdpZnkoZikubGVuZ3RoPkpTT04uc3RyaW5naWZ5KGQpLmxlbmd0aDtyZXR1cm4gdSYmKG4ub3V0cHV0PWkpLGgmJihuLnN0YXR1cz1lLnN0YXR1c3x8bi5zdGF0dXMsbi5zdHJ1Y3R1cmVkU3RhdGU9T2JqZWN0LmFzc2lnbih7fSxvfHx7fSxzLHtpbkZsaWdodDohMH0pLG4ubWVzc2FnZXM9ZS5tZXNzYWdlcyksZyYmKG4ubWVzc2FnZXM9ZiksZS5pZD09PXIuc2VsZWN0ZWRJZCYmKGUucGVybWlzc2lvbkJsb2NrZWQmJnQucGVybWlzc2lvbkJsb2NrZWQ9PT0hMXx8ZS5wZXJtaXNzaW9uQmxvY2tlZCYmIXQucGVybWlzc2lvbkJsb2NrZWQmJihuLnBlcm1pc3Npb25CbG9ja2VkPSEwKSxlLnBlbmRpbmdFc2NhbGF0aW9uJiYhdC5wZW5kaW5nRXNjYWxhdGlvbiYmdC5wZXJtaXNzaW9uQmxvY2tlZCE9PSExJiYobi5wZW5kaW5nRXNjYWxhdGlvbj1lLnBlbmRpbmdFc2NhbGF0aW9uKSxlLm1lc3NhZ2VzJiZlLm1lc3NhZ2VzLmxlbmd0aD4wJiYoIXQubWVzc2FnZXN8fHQubWVzc2FnZXMubGVuZ3RoPT09MCkmJihuLm1lc3NhZ2VzPWUubWVzc2FnZXMpKSxufWZ1bmN0aW9uIG50KGUsdCxuKXtpZihlJiZlLm1lc3NhZ2VzJiZlLm1lc3NhZ2VzLmxlbmd0aD4wKXJldHVybiBlLm1lc3NhZ2VzO2lmKGUmJmUuc2Vzc2lvbktpbmQ9PT0ic3RydWN0dXJlZCIpcmV0dXJuW107aWYoIW4pcmV0dXJuW107dmFyIGk9dHlwZW9mIHQ9PSJzdHJpbmciP3Q6ZSYmZS5vdXRwdXR8fCIiO3JldHVybiBpP212KGksZSYmZS5jb21tYW5kKTpbXX1mdW5jdGlvbiB2bShlKXtpZighZXx8IWUubGVuZ3RoKXJldHVybiBudWxsO2lmKHIuc2VsZWN0ZWRJZCl7dmFyIHQ9ZS5maW5kKGZ1bmN0aW9uKGEpe3JldHVybiBhLmlkPT09ci5zZWxlY3RlZElkfSk7cmV0dXJuIHQ/dC5pZDpudWxsfXZhciBuPWUuZmluZChmdW5jdGlvbihhKXtyZXR1cm4gYS5zdGF0dXM9PT0icnVubmluZyJ9KTtpZihuKXJldHVybiBuLmlkO3ZhciBpPWUuZmluZChmdW5jdGlvbihhKXtyZXR1cm4hYS5hcmNoaXZlZH0pO3JldHVybiBpP2kuaWQ6ZVswXS5pZH1mdW5jdGlvbiBnbihlKXt2YXIgdD1lfHx7fTtyZXR1cm4gZmV0Y2goIi9hcGkvc2Vzc2lvbnMiLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihuKXtpZihuLnN0YXR1cz09PTQwMSl7Wm8oKTtyZXR1cm59cmV0dXJuIG4uanNvbigpfSkudGhlbihmdW5jdGlvbihuKXt2YXIgaT1ufHxbXSxhPW5ldyBTZXQoaS5tYXAoZnVuY3Rpb24oZCl7cmV0dXJuIGQuaWR9KSk7T2JqZWN0LmtleXMoci5kcmFmdHMpLmZvckVhY2goZnVuY3Rpb24oZCl7YS5oYXMoZCl8fGRlbGV0ZSByLmRyYWZ0c1tkXX0pLHIuc2Vzc2lvbnM9aS5tYXAoZnVuY3Rpb24oZCl7dmFyIHY9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGgpe3JldHVybiBoLmlkPT09ZC5pZH0pO3JldHVybiBwbSh2LGQpfSk7dmFyIHU9dm0oci5zZXNzaW9ucyk7aWYodSE9PXZvaWQgMCYmKHIuc2VsZWN0ZWRJZD11KSxUdSgpLGZuKCksci5ib290c3RyYXBwaW5nPSExLHdlKCksci5tb2RhbE9wZW4pbWUoKTtlbHNle3ZhciBzPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXNzaW9ucy1saXN0Iiksbz1yYSgpO2lmKHMmJnMuaW5uZXJIVE1MPT09byl7dmFyIGw9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlc3Npb24tY291bnQiKTtsJiYobC50ZXh0Q29udGVudD1TdHJpbmcoci5zZXNzaW9ucy5sZW5ndGgpKX1lbHNle3MmJihzLmlubmVySFRNTD1vLEt0KHMpKTt2YXIgbD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2Vzc2lvbi1jb3VudCIpO2wmJihsLnRleHRDb250ZW50PVN0cmluZyhyLnNlc3Npb25zLmxlbmd0aCkpfX1NcigpLHIuc2VsZWN0ZWRJZCYmci5naXRTdGF0dXNTZXNzaW9uSWQhPT1yLnNlbGVjdGVkSWQmJkRuKHIuc2VsZWN0ZWRJZCk7dmFyIGM9UHJvbWlzZS5yZXNvbHZlKCk7aWYoIXQuc2tpcFNlbGVjdGVkT3V0cHV0UmVsb2FkJiZyLnNlbGVjdGVkSWQpYz1obihyLnNlbGVjdGVkSWQpO2Vsc2UgaWYoci5zZWxlY3RlZElkKXt2YXIgZj1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oZCl7cmV0dXJuIGQuaWQ9PT1yLnNlbGVjdGVkSWR9KTt1ZShmKSYmKEF0KHtwcmVzZXJ2ZVN0aWNrU3RhdGU6ITB9KSxfYSghMCkpfXJldHVybiBjLnRoZW4oZnVuY3Rpb24oKXtyLmNyb3NzU2Vzc2lvblF1ZXVlLmxlbmd0aD4wJiZ2aSgpLHh0KCksRmEoKX0pfSkuY2F0Y2goZnVuY3Rpb24obil7dmFyIGk9biYmbi5tZXNzYWdlfHwiIixhPWk9PT0iRmFpbGVkIHRvIGZldGNoInx8aT09PSJOZXR3b3JrRXJyb3Igd2hlbiBhdHRlbXB0aW5nIHRvIGZldGNoIHJlc291cmNlLiJ8fGk9PT0iTG9hZCBmYWlsZWQifHwvYWJvcnRlZHxhYm9ydGVycm9yfG5ldHdvcmtlcnJvcnxmYWlsZWQgdG8gZmV0Y2gvaS50ZXN0KGkpO2F8fGNvbnNvbGUuZXJyb3IoIlt3YW5kXSBsb2FkU2Vzc2lvbnMgZmFpbGVkOiIsbil9KX12YXIgYXU9bnVsbDtmdW5jdGlvbiB1dSgpe2F1fHwoYXU9c2V0VGltZW91dChmdW5jdGlvbigpe2F1PW51bGwsbWUoKX0sMjAwKSl9ZnVuY3Rpb24gbWUoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2Vzc2lvbnMtbGlzdCIpLHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlc3Npb24tY291bnQiKTtlJiYoZS5pbm5lckhUTUw9cmEoKSxLdChlKSksdCYmKHQudGV4dENvbnRlbnQ9U3RyaW5nKHIuc2Vzc2lvbnMubGVuZ3RoKSksdHlwZW9mIHJuPT0iZnVuY3Rpb24iJiZybigpLE1yKCksci5jcm9zc1Nlc3Npb25RdWV1ZS5sZW5ndGg+MCYmeHQoKX1mdW5jdGlvbiBNcigpe3ZhciBlPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihnKXtyZXR1cm4gZy5pZD09PXIuc2VsZWN0ZWRJZH0pO2V8fChNbighMSksVGEoKSxobygpKTt2YXIgdD1lPyRuKGUuY29tbWFuZCk6IldhbmQiLG49ZT9wcihlKToiXHU1RjAwXHU1OUNCXHU1QkY5XHU4QkREIixpPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5zZXNzaW9uLXN1bW1hcnktdmFsdWUiKSxhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXJtaW5hbC10aXRsZSIpLHU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlcm1pbmFsLWluZm8iKSxzPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi50b3BiYXItc2Vzc2lvbi10aXRsZSwgLnRvcGJhci10YWdsaW5lIik7cyYmZSYmKHMuY2xhc3NMaXN0LnJlbW92ZSgidG9wYmFyLXRhZ2xpbmUiKSxzLmNsYXNzTGlzdC5hZGQoInRvcGJhci1zZXNzaW9uLXRpdGxlIikscy50ZXh0Q29udGVudD1lLnRpdGxlfHwkbihlLmNvbW1hbmQpLHMuc2V0QXR0cmlidXRlKCJ0aXRsZSIsZS5kZXNjcmlwdGlvbnx8ZS5jb21tYW5kfHwiIikpO3ZhciBvPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJibGFuay1jaGF0IiksbD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IiksYz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2hhdC1vdXRwdXQiKSxmPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdG9wLWJ1dHRvbiIpO2kmJmkudGV4dENvbnRlbnQhPT10JiYoaS50ZXh0Q29udGVudD10KSxhJiZhLnRleHRDb250ZW50IT09dCYmKGEudGV4dENvbnRlbnQ9dCksdSYmKHUudGV4dENvbnRlbnQ9ZT9uKyIgXHhCNyAiK3RtKGUpOm4pO3ZhciBkPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXNzaW9uLWtpbmQtZGlzcGxheSIpLHY9ZT9lbShlKToiXHU3RUM4XHU3QUVGIjtkJiZkLnRleHRDb250ZW50IT09diYmKGQudGV4dENvbnRlbnQ9diksQ3MoKSwhci50ZXJtaW5hbCYmbCYmZSYmSm4oKSxyLnRlcm1pbmFsJiZsJiYhbC5jb250YWlucyhyLnRlcm1pbmFsLmVsZW1lbnQpJiYoYnIoKSxKbigpKSxlfHwoci50ZXJtaW5hbFNlc3Npb25JZD1udWxsLHIudGVybWluYWxPdXRwdXQ9IiIsci50ZXJtaW5hbE91dHB1dE1hcmtlcj0wKSxyLnRlcm1pbmFsJiZlJiZyLmN1cnJlbnRWaWV3PT09InRlcm1pbmFsIiYmRnQoInZpZXciKTt2YXIgaD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuaW5wdXQtcGFuZWwiKTtlPyhvJiZvLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLGwmJmwuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksYyYmYy5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSxoJiZoLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpKToobyYmby5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSxsJiZsLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLGMmJmMuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksZiYmZi5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSxoJiZoLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpKSx4aSgpLFpuKGd0KCkpLHFpKCksTGEoKX1mdW5jdGlvbiBobihlKXtyLmNoYXRSZW5kZXJUaW1lciYmKGNsZWFyVGltZW91dChyLmNoYXRSZW5kZXJUaW1lciksci5jaGF0UmVuZGVyVGltZXI9bnVsbCk7dmFyIHQ9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGkpe3JldHVybiBpLmlkPT09ZX0pLG49Ii9hcGkvc2Vzc2lvbnMvIitlO3JldHVybiBubSh0KSYmKG4rPSI/Zm9ybWF0PWNoYXQiKSxmZXRjaChuLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihpKXtyZXR1cm4gaS5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKGkpe2lmKGkuZXJyb3Ipe3Iuc2VsZWN0ZWRJZD09PWUmJihyLnNlbGVjdGVkSWQ9bnVsbCx3ZSgpKSxnbigpO3JldHVybn1pZigkKGkpLE1yKCksci50ZXJtaW5hbCYmZT09PXIuc2VsZWN0ZWRJZCYmaS5vdXRwdXQhPT12b2lkIDApe3ZhciBhPSEhci53cyYmKHIud3MucmVhZHlTdGF0ZT09PVdlYlNvY2tldC5PUEVOfHxyLndzLnJlYWR5U3RhdGU9PT1XZWJTb2NrZXQuQ09OTkVDVElORyk7YT9aZSgic2Vzc2lvbi1zd2l0Y2giKToob2koZSxpLm91dHB1dCx7bW9kZToiYXBwZW5kIn0pLFplKCJzZXNzaW9uLXN3aXRjaCIse2ZvcmNlUmVwbGF5OiEwfSkpfXZhciB1PXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihzKXtyZXR1cm4gcy5pZD09PWV9KTtyLmN1cnJlbnRNZXNzYWdlcz1SZSh1LG50KHUsaS5vdXRwdXQsITEpKSxLZSghMSl9KX12YXIgc3U9ITE7ZnVuY3Rpb24gbW0oKXtpZihzdSlyZXR1cm4hMTt2YXIgZT1yLnNlbGVjdGVkSWQ7aWYoIWUpcmV0dXJuITE7dmFyIHQ9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKHMpe3JldHVybiBzLmlkPT09ZX0pO2lmKCF0KXJldHVybiExO3ZhciBuPXR5cGVvZiB0Lm1lc3NhZ2VPZmZzZXQ9PSJudW1iZXIiP3QubWVzc2FnZU9mZnNldDowO2lmKG48PTApcmV0dXJuITE7dmFyIGk9NDAsYT1NYXRoLm1heCgwLG4taSksdT1uLWE7cmV0dXJuIHN1PSEwLGZldGNoKCIvYXBpL3Nlc3Npb25zLyIrZW5jb2RlVVJJQ29tcG9uZW50KGUpKyIvbWVzc2FnZXM/b2Zmc2V0PSIrYSsiJmxpbWl0PSIrdSx7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24ocyl7cmV0dXJuIHMuanNvbigpfSkudGhlbihmdW5jdGlvbihzKXtpZihzJiZBcnJheS5pc0FycmF5KHMubWVzc2FnZXMpJiZ0Lm1lc3NhZ2VPZmZzZXQ9PT1uKXt2YXIgbz1BcnJheS5pc0FycmF5KHQubWVzc2FnZXMpP3QubWVzc2FnZXM6W107dC5tZXNzYWdlcz1zLm1lc3NhZ2VzLmNvbmNhdChvKSx0Lm1lc3NhZ2VPZmZzZXQ9YSx0eXBlb2Ygcy50b3RhbD09Im51bWJlciImJih0Lm1lc3NhZ2VUb3RhbD1zLnRvdGFsKSxlPT09ci5zZWxlY3RlZElkJiYoci5jdXJyZW50TWVzc2FnZXM9UmUodCxudCh0LHQub3V0cHV0LCExKSksci5jaGF0UmVuZGVyZWRDb3VudD1yLmN1cnJlbnRNZXNzYWdlcy5sZW5ndGgsS2UoITApKX19KS5jYXRjaChmdW5jdGlvbigpe30pLmZpbmFsbHkoZnVuY3Rpb24oKXtzdT0hMX0pLCEwfWZ1bmN0aW9uIHp0KGUpe3ZhciB0PXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihzKXtyZXR1cm4gcy5pZD09PWV9KTtpZih0KXtyLnNlbGVjdGVkSWQhPT1lJiZicigpLHIuc2VsZWN0ZWRJZD1lLHdlKCksci50b29sQ29udGVudENhY2hlPXt9LHIubWVzc2FnZVF1ZXVlPVtdLHIucGVuZGluZ01lc3NhZ2VzPVtdLEpyKHQpLFR1KCksZm4oKSxBdCgpLHIuY3VycmVudE1lc3NhZ2VzPVtdLHIuY2hhdFJlbmRlclRpbWVyJiYoY2xlYXJUaW1lb3V0KHIuY2hhdFJlbmRlclRpbWVyKSxyLmNoYXRSZW5kZXJUaW1lcj1udWxsKTt2YXIgbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9kby1wcm9ncmVzcyIpO24mJm4uY2xhc3NMaXN0LmFkZCgiaGlkZGVuIik7dmFyIGk9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnN0cnVjdHVyZWQtc3RhdHVzLWJhciIpO2kmJmkucmVtb3ZlKCksci5fc3RhdHVzQmFyVGltZXJJZCYmKGNsZWFySW50ZXJ2YWwoci5fc3RhdHVzQmFyVGltZXJJZCksci5fc3RhdHVzQmFyVGltZXJJZD1udWxsKSxyLl9zdGF0dXNCYXJTdGFydFRpbWU9MDt2YXIgYT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuaW5wdXQtY29tcG9zZXIiKTthJiZhLmNsYXNzTGlzdC5yZW1vdmUoImluLWZsaWdodCIpO3ZhciB1PXQ7ci5wcmVmZXJyZWRDb21tYW5kPXR0KCksci5jaGF0TW9kZT1TdCgiY2xhdWRlIix1JiZ1Lm1vZGU/dS5tb2RlOnIuY2hhdE1vZGUpLHIudGVybWluYWxJbnRlcmFjdGl2ZSYmdSYmdS5zdGF0dXMhPT0icnVubmluZyImJk1uKCExKSxtZSgpLGtyKGUpLHIuZmlsZVBhbmVsT3BlbiYmKHNjKHUpLE90KCkpLGhuKGUpLnRoZW4oZnVuY3Rpb24oKXtqdCghMCl9KSxxbihlKSxyLmdpdFN0YXR1cz1udWxsLHIuZ2l0U3RhdHVzU2Vzc2lvbklkPW51bGwsdGEoKSxEbihlLHtmb3JjZTohMH0pfX1mdW5jdGlvbiBnbSgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXNzaW9ucy1kcmF3ZXIiKSx0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5tYWluLWxheW91dCIpLG49TmUoKSxpPSEhci5zaWRlYmFyUGlubmVkJiYhIXIuc2lkZWJhckNvbGxhcHNlZCxhPWl8fCFuJiYoISFyLnNpZGViYXJQaW5uZWR8fCEhci5zZXNzaW9uc0RyYXdlck9wZW4pO2UmJihlLmNsYXNzTGlzdC50b2dnbGUoInBpbm5lZCIsYSksZS5jbGFzc0xpc3QudG9nZ2xlKCJjb2xsYXBzZWQiLGkpKSx0JiYodC5jbGFzc0xpc3QudG9nZ2xlKCJzaWRlYmFyLXBpbm5lZCIsYSksdC5jbGFzc0xpc3QudG9nZ2xlKCJzaWRlYmFyLWNvbGxhcHNlZCIsaSkpO3ZhciB1PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzaWRlYmFyLXBpbi1idG4iKTt1JiYodS5jbGFzc0xpc3QudG9nZ2xlKCJwaW5uZWQiLCEhci5zaWRlYmFyUGlubmVkKSx1LnRpdGxlPXIuc2lkZWJhclBpbm5lZD8iXHU1REYyXHU1NkZBXHU1QjlBXHU1RTM4XHU5QTdCXHVGRjA4XHU3MEI5XHU1MUZCXHU4OUUzXHU5NjY0XHU5NTAxXHU1QjlBXHVGRjA5IjoiXHU1NkZBXHU1QjlBXHU0RkE3XHU2ODBGXHU1RTM4XHU5QTdCIix1LnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsci5zaWRlYmFyUGlubmVkPyJcdTg5RTNcdTk2NjRcdTU2RkFcdTVCOUFcdTVFMzhcdTlBN0IiOiJcdTU2RkFcdTVCOUFcdTRGQTdcdTY4MEZcdTVFMzhcdTlBN0IiKSx1LnNldEF0dHJpYnV0ZSgiYXJpYS1wcmVzc2VkIixyLnNpZGViYXJQaW5uZWQ/InRydWUiOiJmYWxzZSIpKX1mdW5jdGlvbiBxcigpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXNzaW9ucy1kcmF3ZXIiKSx0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXNzaW9ucy1kcmF3ZXItYmFja2Ryb3AiKSxuPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5tYWluLWxheW91dCIpO2UmJmUuY2xhc3NMaXN0LnRvZ2dsZSgib3BlbiIsci5zZXNzaW9uc0RyYXdlck9wZW4pLHQmJnQuY2xhc3NMaXN0LnRvZ2dsZSgib3BlbiIsT3UoKSksbiYmbi5jbGFzc0xpc3QudG9nZ2xlKCJzaWRlYmFyLW9wZW4iLHIuc2Vzc2lvbnNEcmF3ZXJPcGVuKTt2YXIgaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2Vzc2lvbnMtdG9nZ2xlLWJ1dHRvbiIpO2kmJmkuY2xhc3NMaXN0LnRvZ2dsZSgiYWN0aXZlIixyLnNlc3Npb25zRHJhd2VyT3BlbiksZ20oKX1mdW5jdGlvbiBobSgpe3ZhciBlPU5lKCk7aWYoIWUpe3ZhciB0PXIuc2lkZWJhclBpbm5lZD8hMTohci5zZXNzaW9uc0RyYXdlck9wZW47ci5zZXNzaW9uc0RyYXdlck9wZW49dCx0JiYoci5zaWRlYmFyQ29sbGFwc2VkPSExLHhlKCJ3YW5kLXNpZGViYXItY29sbGFwc2VkIiwhMSkpLHhlKCJ3YW5kLXNpZGViYXItb3BlbiIsci5zZXNzaW9uc0RyYXdlck9wZW4pLG9uKCksUHIoKTtyZXR1cm59aWYoci5zZXNzaW9uc0RyYXdlck9wZW49IXIuc2Vzc2lvbnNEcmF3ZXJPcGVuLHhlKCJ3YW5kLXNpZGViYXItb3BlbiIsci5zZXNzaW9uc0RyYXdlck9wZW4pLHIuc2Vzc2lvbnNEcmF3ZXJPcGVuKXtyLmZpbGVQYW5lbE9wZW49ITE7dHJ5e2xvY2FsU3RvcmFnZS5zZXRJdGVtKCJ3YW5kLWZpbGUtcGFuZWwtb3BlbiIsImZhbHNlIil9Y2F0Y2h7fX1vbigpfWZ1bmN0aW9uIE9yKCl7dmFyIGU9TmUoKTtpZighZSl7aWYoIXIuc2lkZWJhclBpbm5lZCYmIXIuc2Vzc2lvbnNEcmF3ZXJPcGVuKXJldHVybjtJcigpLHIuc2lkZWJhclBpbm5lZD0hMSxyLnNlc3Npb25zRHJhd2VyT3Blbj0hMSx4ZSgid2FuZC1zaWRlYmFyLXBpbm5lZCIsITEpLHhlKCJ3YW5kLXNpZGViYXItb3BlbiIsITEpLG9uKCksUHIoKTtyZXR1cm59ci5zZXNzaW9uc0RyYXdlck9wZW4mJihJcigpLHIuc2Vzc2lvbnNEcmF3ZXJPcGVuPSExLHhlKCJ3YW5kLXNpZGViYXItb3BlbiIsITEpLG9uKCkpfWZ1bmN0aW9uIHltKCl7aWYoTmUoKSl7T3IoKTtyZXR1cm59ci5zaWRlYmFyUGlubmVkfHxyLnNpZGViYXJDb2xsYXBzZWR8fCFyLnNlc3Npb25zRHJhd2VyT3Blbnx8KElyKCksci5zZXNzaW9uc0RyYXdlck9wZW49ITEseGUoIndhbmQtc2lkZWJhci1vcGVuIiwhMSksb24oKSxQcigpKX1mdW5jdGlvbiBtbChlKXt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29tcG9zZXItcGx1cy1wb3BvdmVyIiksbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXR0YWNoLWJ0biIpO3IucGx1c1BvcG92ZXJPcGVuPSEhZSx0JiZ0LmNsYXNzTGlzdC50b2dnbGUoImhpZGRlbiIsIWUpLG4mJihuLmNsYXNzTGlzdC50b2dnbGUoImFjdGl2ZSIsISFlKSxuLnNldEF0dHJpYnV0ZSgiYXJpYS1leHBhbmRlZCIsZT8idHJ1ZSI6ImZhbHNlIikpfWZ1bmN0aW9uIGJtKCl7bWwoIXIucGx1c1BvcG92ZXJPcGVuKX1mdW5jdGlvbiBPaSgpe3IucGx1c1BvcG92ZXJPcGVuJiZtbCghMSl9ZnVuY3Rpb24gVXQoKXtOZSgpJiZyLnNlc3Npb25zRHJhd2VyT3BlbiYmT3IoKX1mdW5jdGlvbiBQcigpe3ZhciBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5tYWluLWxheW91dCIpO2lmKGUpe3ZhciB0PWZ1bmN0aW9uKG4pe24ucHJvcGVydHlOYW1lPT09InBhZGRpbmctbGVmdCImJihlLnJlbW92ZUV2ZW50TGlzdGVuZXIoInRyYW5zaXRpb25lbmQiLHQpLEh0KCEwKSl9O2UuYWRkRXZlbnRMaXN0ZW5lcigidHJhbnNpdGlvbmVuZCIsdCl9c2V0VGltZW91dChmdW5jdGlvbigpe0h0KCEwKX0sMzUwKX12YXIgVnQ9bnVsbDtmdW5jdGlvbiBFbSgpe3JldHVybiBWdCYmZG9jdW1lbnQuYm9keS5jb250YWlucyhWdCl8fChWdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxWdC5jbGFzc05hbWU9InNpZGViYXItdGlsZS1idWJibGUiLFZ0LnNldEF0dHJpYnV0ZSgicm9sZSIsInRvb2x0aXAiKSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKFZ0KSksVnR9ZnVuY3Rpb24gcm4oKXtWdCYmVnQuY2xhc3NMaXN0LnJlbW92ZSgidmlzaWJsZSIpfWZ1bmN0aW9uIEZtKGUsdCl7aWYoIXQpe3JuKCk7cmV0dXJufXZhciBuPUVtKCk7bi50ZXh0Q29udGVudD10Lmxlbmd0aD40MDA/dC5zbGljZSgwLDQwMCkrIlx1MjAyNiI6dDt2YXIgaT1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO24uY2xhc3NMaXN0LmFkZCgidmlzaWJsZSIpO3ZhciBhPW4uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksdT1pLnRvcCtpLmhlaWdodC8yLHM9dS1hLmhlaWdodC8yLG89OCxsPXdpbmRvdy5pbm5lckhlaWdodC1hLmhlaWdodC04O3M8byYmKHM9bykscz5sJiYocz1NYXRoLm1heChvLGwpKSxuLnN0eWxlLmxlZnQ9aS5yaWdodCsxMisicHgiLG4uc3R5bGUudG9wPXMrInB4IixuLnN0eWxlLnNldFByb3BlcnR5KCItLWJ1YmJsZS10YWlsLXkiLHUtcysicHgiKX1mdW5jdGlvbiB3bShlKXtpZihlLmRhdGFzZXQuY29sbGFwc2VkU2Vzc2lvbklkKXt2YXIgdD1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oYSl7cmV0dXJuIGEuaWQ9PT1lLmRhdGFzZXQuY29sbGFwc2VkU2Vzc2lvbklkfSk7aWYoIXQpcmV0dXJuIiI7dmFyIG49UmModCk7cmV0dXJuIG58fHQuc3VtbWFyeXx8dC5jb21tYW5kfHwiIn1pZihlLmRhdGFzZXQuY29sbGFwc2VkSGlzdG9yeUlkKXt2YXIgaT1yLmNsYXVkZUhpc3RvcnkuZmluZChmdW5jdGlvbihhKXtyZXR1cm4gYS5jbGF1ZGVTZXNzaW9uSWQ9PT1lLmRhdGFzZXQuY29sbGFwc2VkSGlzdG9yeUlkfSk7aWYoaSYmaS5maXJzdFVzZXJNZXNzYWdlKXJldHVybiBpLmZpcnN0VXNlck1lc3NhZ2V9cmV0dXJuIiJ9ZnVuY3Rpb24gQ20oZSl7dmFyIHQ9ZS50YXJnZXQ7aWYoISghdHx8ISh0IGluc3RhbmNlb2YgRWxlbWVudCkpKXt2YXIgbj10LmNsb3Nlc3QoIi5zaWRlYmFyLWNvbGxhcHNlZC10aWxlIik7aWYoIW4pe3JuKCk7cmV0dXJufXZhciBpPXdtKG4pO2lmKCFpKXtybigpO3JldHVybn1GbShuLGkpfX1mdW5jdGlvbiBCbShlKXt2YXIgdD1lLnJlbGF0ZWRUYXJnZXQ7dCYmdCBpbnN0YW5jZW9mIEVsZW1lbnQmJnQuY2xvc2VzdCgiLnNpZGViYXItY29sbGFwc2VkLXRpbGUiKXx8cm4oKX1mdW5jdGlvbiBEbSgpe3ZhciBlPU5lKCk7ci5zaWRlYmFyUGlubmVkfHwoci5zaWRlYmFyUGlubmVkPSEwLHhlKCJ3YW5kLXNpZGViYXItcGlubmVkIiwhMCkpLHIuc2lkZWJhckNvbGxhcHNlZD0hci5zaWRlYmFyQ29sbGFwc2VkLHhlKCJ3YW5kLXNpZGViYXItY29sbGFwc2VkIixyLnNpZGViYXJDb2xsYXBzZWQpLHIuc2lkZWJhckNvbGxhcHNlZD9yLnNlc3Npb25zRHJhd2VyT3Blbj0hMTplPyhyLnNpZGViYXJQaW5uZWQ9ITEsci5zZXNzaW9uc0RyYXdlck9wZW49ITAseGUoIndhbmQtc2lkZWJhci1waW5uZWQiLCExKSk6ci5zZXNzaW9uc0RyYXdlck9wZW49ITAseGUoIndhbmQtc2lkZWJhci1vcGVuIixyLnNlc3Npb25zRHJhd2VyT3Blbiksb24oKSxtZSgpLEFtKCkscm4oKSxQcigpfWZ1bmN0aW9uIGttKCl7TmUoKXx8KHIuc2lkZWJhclBpbm5lZD0hci5zaWRlYmFyUGlubmVkLHIuc2Vzc2lvbnNEcmF3ZXJPcGVuPSEwLHhlKCJ3YW5kLXNpZGViYXItcGlubmVkIixyLnNpZGViYXJQaW5uZWQpLHhlKCJ3YW5kLXNpZGViYXItb3BlbiIsITApLG9uKCksUHIoKSl9ZnVuY3Rpb24gQW0oKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2lkZWJhci1jb2xsYXBzZS1idG4iKTtpZihlKXt2YXIgdD0hIXIuc2lkZWJhclBpbm5lZCYmISFyLnNpZGViYXJDb2xsYXBzZWQ7ZS5jbGFzc0xpc3QudG9nZ2xlKCJjb2xsYXBzZWQiLHQpLGUudGl0bGU9dD8iXHU1QzU1XHU1RjAwXHU0RkE3XHU2ODBGIjoiXHU2NTM2XHU4RDc3XHU0RTNBXHU3QTg0XHU2NzYxIixlLnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsdD8iXHU1QzU1XHU1RjAwXHU0RkE3XHU2ODBGIjoiXHU2NTM2XHU4RDc3XHU0RTNBXHU3QTg0XHU2NzYxIiksZS5pbm5lckhUTUw9dD8nPHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi40IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48cG9seWxpbmUgcG9pbnRzPSIxMCA2IDE2IDEyIDEwIDE4Ii8+PGxpbmUgeDE9IjIwIiB5MT0iNSIgeDI9IjIwIiB5Mj0iMTkiLz48L3N2Zz4nOic8c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyLjQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxwb2x5bGluZSBwb2ludHM9IjE0IDYgOCAxMiAxNCAxOCIvPjxsaW5lIHgxPSI0IiB5MT0iNSIgeDI9IjQiIHkyPSIxOSIvPjwvc3ZnPid9fWZ1bmN0aW9uIHhtKGUpe2lmKGUpe2Uuc3R5bGUubGVmdD0iIixlLnN0eWxlLnJpZ2h0PSIiO3ZhciB0PWUub2Zmc2V0UGFyZW50fHxlLnBhcmVudEVsZW1lbnQ7aWYodCl7dmFyIG49OCxpPXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksYT1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHU9d2luZG93LmlubmVyV2lkdGg7YS5sZWZ0PG4/KGUuc3R5bGUucmlnaHQ9ImF1dG8iLGUuc3R5bGUubGVmdD1uLWkubGVmdCsicHgiKTphLnJpZ2h0PnUtbiYmKGUuc3R5bGUubGVmdD0iYXV0byIsZS5zdHlsZS5yaWdodD1pLnJpZ2h0LSh1LW4pKyJweCIpfX19ZnVuY3Rpb24gb3UoKXt0cigpLHIubW9kYWxPcGVuPSEwLHIuc2Vzc2lvbnNEcmF3ZXJPcGVuPSExLHhlKCJ3YW5kLXNpZGViYXItb3BlbiIsITEpLHFyKCk7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlc3Npb24tbW9kYWwiKTtlJiYoZS5fd2FuZENsb3NlVGltZXImJihjbGVhclRpbWVvdXQoZS5fd2FuZENsb3NlVGltZXIpLGUuX3dhbmRDbG9zZVRpbWVyPW51bGwpLGUuY2xhc3NMaXN0LnJlbW92ZSgiY2xvc2luZyIpLGUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksci5sYXN0Rm9jdXNlZEVsZW1lbnQ9ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCxyLnNlc3Npb25Ub29sPXR0KCksci5wcmVmZXJyZWRDb21tYW5kPXIuc2Vzc2lvblRvb2wsci5zZXNzaW9uQ3JlYXRlS2luZD0ic3RydWN0dXJlZCIsci5zZXNzaW9uQ3JlYXRlV29ya3RyZWU9ITEsci5tb2RlVmFsdWU9U3Qoci5zZXNzaW9uVG9vbCxyLm1vZGVWYWx1ZXx8ci5jaGF0TW9kZSksTHIoKSxabSgpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibW9kZS1jYXJkcyIpO3QmJnQuZm9jdXMoKX0sMjApLFBpKGUpKX1mdW5jdGlvbiB5bigpe3IubW9kYWxPcGVuPSExO3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXNzaW9uLW1vZGFsIik7ZSYmKHIuZm9jdXNUcmFwSGFuZGxlciYmKGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLHIuZm9jdXNUcmFwSGFuZGxlciksci5mb2N1c1RyYXBIYW5kbGVyPW51bGwpLHIubGFzdEZvY3VzZWRFbGVtZW50JiZ0eXBlb2Ygci5sYXN0Rm9jdXNlZEVsZW1lbnQuZm9jdXM9PSJmdW5jdGlvbiImJnIubGFzdEZvY3VzZWRFbGVtZW50LmZvY3VzKCksbHUoZSkpLHJyKCl9ZnVuY3Rpb24gbHUoZSl7aWYoZSYmIWUuY2xhc3NMaXN0LmNvbnRhaW5zKCJoaWRkZW4iKSl7dmFyIHQ9ITE7dHJ5e3Q9d2luZG93Lm1hdGNoTWVkaWEmJndpbmRvdy5tYXRjaE1lZGlhKCIocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSIpLm1hdGNoZXN9Y2F0Y2h7fWlmKHR8fGRvY3VtZW50LmhpZGRlbil7ZS5jbGFzc0xpc3QucmVtb3ZlKCJjbG9zaW5nIiksZS5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKTtyZXR1cm59ZS5fd2FuZENsb3NlVGltZXImJihjbGVhclRpbWVvdXQoZS5fd2FuZENsb3NlVGltZXIpLGUuX3dhbmRDbG9zZVRpbWVyPW51bGwpLGUuY2xhc3NMaXN0LmFkZCgiY2xvc2luZyIpLGUuX3dhbmRDbG9zZVRpbWVyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtlLmNsYXNzTGlzdC5yZW1vdmUoImNsb3NpbmciKSxlLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLGUuX3dhbmRDbG9zZVRpbWVyPW51bGx9LDE3MCl9fWZ1bmN0aW9uIFBpKGUpe3IuZm9jdXNUcmFwSGFuZGxlciYmZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsci5mb2N1c1RyYXBIYW5kbGVyKTt2YXIgdD0nYnV0dG9uOm5vdChbZGlzYWJsZWRdKSwgaW5wdXQ6bm90KFtkaXNhYmxlZF0pLCBzZWxlY3Q6bm90KFtkaXNhYmxlZF0pLCB0ZXh0YXJlYTpub3QoW2Rpc2FibGVkXSksIGFbaHJlZl0sIFt0YWJpbmRleF06bm90KFt0YWJpbmRleD0iLTEiXSknO3IuZm9jdXNUcmFwSGFuZGxlcj1mdW5jdGlvbihuKXtpZihuLmtleT09PSJUYWIiKXt2YXIgaT1lLnF1ZXJ5U2VsZWN0b3JBbGwodCksYT1pWzBdLHU9aVtpLmxlbmd0aC0xXTshYXx8IXV8fChuLnNoaWZ0S2V5P2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1hJiYobi5wcmV2ZW50RGVmYXVsdCgpLHUuZm9jdXMoKSk6ZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PXUmJihuLnByZXZlbnREZWZhdWx0KCksYS5mb2N1cygpKSl9fSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixyLmZvY3VzVHJhcEhhbmRsZXIpfWZ1bmN0aW9uIFNtKCl7cmV0dXJuIHIuYWN0aXZlV29ya3RyZWVNZXJnZVNlc3Npb25JZCYmci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGUpe3JldHVybiBlLmlkPT09ci5hY3RpdmVXb3JrdHJlZU1lcmdlU2Vzc2lvbklkfSl8fG51bGx9ZnVuY3Rpb24gSHIoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid29ya3RyZWUtbWVyZ2UtY29udGVudCIpLHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndvcmt0cmVlLW1lcmdlLWNvbmZpcm0tYnV0dG9uIiksbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid29ya3RyZWUtbWVyZ2UtZXJyb3IiKSxpPVNtKCksYT1yLndvcmt0cmVlTWVyZ2VDaGVja1Jlc3VsdDtpZighKCFlfHwhdCkpe2lmKCFpfHwhaS53b3JrdHJlZSl7ZS5pbm5lckhUTUw9JzxwIGNsYXNzPSJmaWVsZC1oaW50Ij5cdTY3MkFcdTYyN0VcdTUyMzBcdTUzRUZcdTU0MDhcdTVFNzZcdTc2ODQgd29ya3RyZWUgXHU0RjFBXHU4QkREXHUzMDAyPC9wPicsdC5kaXNhYmxlZD0hMDtyZXR1cm59biYmKHIud29ya3RyZWVNZXJnZUVycm9yP1BlKG4sci53b3JrdHJlZU1lcmdlRXJyb3IpOmNpKG4pKTt2YXIgdT1bJzxkaXYgY2xhc3M9Indvcmt0cmVlLW1lcmdlLXJvdyI+PHNwYW4+XHU2NzY1XHU2RTkwXHU1MjA2XHU2NTJGPC9zcGFuPjxzdHJvbmc+JytwKGkud29ya3RyZWUuYnJhbmNofHwiLSIpKyI8L3N0cm9uZz48L2Rpdj4iLCc8ZGl2IGNsYXNzPSJ3b3JrdHJlZS1tZXJnZS1yb3ciPjxzcGFuPlx1NURFNVx1NEY1Q1x1NzZFRVx1NUY1NTwvc3Bhbj48c3Ryb25nPicrcChpLndvcmt0cmVlLnBhdGh8fCItIikrIjwvc3Ryb25nPjwvZGl2PiJdO2E/KHUucHVzaCgnPGRpdiBjbGFzcz0id29ya3RyZWUtbWVyZ2Utcm93Ij48c3Bhbj5cdTc2RUVcdTY4MDdcdTUyMDZcdTY1MkY8L3NwYW4+PHN0cm9uZz4nK3AoYS50YXJnZXRCcmFuY2h8fCItIikrIjwvc3Ryb25nPjwvZGl2PiIpLHUucHVzaCgnPGRpdiBjbGFzcz0id29ya3RyZWUtbWVyZ2Utcm93Ij48c3Bhbj5cdTVGODVcdTU0MDhcdTVFNzZcdTYzRDBcdTRFQTQ8L3NwYW4+PHN0cm9uZz4nK3AoU3RyaW5nKGEuYWhlYWRDb3VudHx8MCkpKyI8L3N0cm9uZz48L2Rpdj4iKSx1LnB1c2goJzxkaXYgY2xhc3M9Indvcmt0cmVlLW1lcmdlLXJvdyI+PHNwYW4+XHU2NzJBXHU2M0QwXHU0RUE0XHU2NTM5XHU1MkE4PC9zcGFuPjxzdHJvbmc+JytwKGEuaGFzVW5jb21taXR0ZWRDaGFuZ2VzPyJcdTY3MDkiOiJcdTY1RTAiKSsiPC9zdHJvbmc+PC9kaXY+IiksdS5wdXNoKCc8ZGl2IGNsYXNzPSJ3b3JrdHJlZS1tZXJnZS1yb3ciPjxzcGFuPlx1NTFCMlx1N0E4MVx1OThDRVx1OTY2OTwvc3Bhbj48c3Ryb25nPicrcChhLmhhc0NvbmZsaWN0cz8iXHU2NzA5IjoiXHU2NUUwIikrIjwvc3Ryb25nPjwvZGl2PiIpLGEucmVhc29uJiZ1LnB1c2goJzxwIGNsYXNzPSJmaWVsZC1oaW50Ij4nK3AoYS5yZWFzb24pKyI8L3A+IikpOnIud29ya3RyZWVNZXJnZUxvYWRpbmcmJnUucHVzaCgnPHAgY2xhc3M9ImZpZWxkLWhpbnQiPlx1NkI2M1x1NTcyOFx1NjhDMFx1NjdFNSB3b3JrdHJlZSBcdTU0MDhcdTVFNzZcdTcyQjZcdTYwMDFcdTIwMjY8L3A+JyksZS5pbm5lckhUTUw9dS5qb2luKCIiKSx0LmRpc2FibGVkPXIud29ya3RyZWVNZXJnZUxvYWRpbmd8fHIud29ya3RyZWVNZXJnZVN1Ym1pdHRpbmd8fCFhfHxhLm9rIT09ITAsdC50ZXh0Q29udGVudD1yLndvcmt0cmVlTWVyZ2VTdWJtaXR0aW5nPyJcdTU0MDhcdTVFNzZcdTRFMkQuLi4iOiJcdTc4NkVcdThCQTRcdTU0MDhcdTVFNzZcdTVFNzZcdTZFMDVcdTc0MDYifX1mdW5jdGlvbiBnbChlKXtyLmFjdGl2ZVdvcmt0cmVlTWVyZ2VTZXNzaW9uSWQ9ZSxyLndvcmt0cmVlTWVyZ2VDaGVja1Jlc3VsdD1udWxsLHIud29ya3RyZWVNZXJnZUxvYWRpbmc9ITAsci53b3JrdHJlZU1lcmdlU3VibWl0dGluZz0hMSxyLndvcmt0cmVlTWVyZ2VFcnJvcj0iIix5bigpLHRyKCk7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndvcmt0cmVlLW1lcmdlLW1vZGFsIik7dCYmKHQuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksci5sYXN0Rm9jdXNlZEVsZW1lbnQ9ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCxQaSh0KSksSHIoKSxmZXRjaCgiL2FwaS9zZXNzaW9ucy8iK2VuY29kZVVSSUNvbXBvbmVudChlKSsiL3dvcmt0cmVlL21lcmdlL2NoZWNrIix7bWV0aG9kOiJQT1NUIixjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gbi5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKG4pe2lmKG4mJm4uZXJyb3IpdGhyb3cgbmV3IEVycm9yKG4uZXJyb3IpO24mJm4uc2Vzc2lvbiYmJChuLnNlc3Npb24pLHIud29ya3RyZWVNZXJnZUNoZWNrUmVzdWx0PW4ucmVzdWx0fHxudWxsLHIud29ya3RyZWVNZXJnZUVycm9yPSIifSkuY2F0Y2goZnVuY3Rpb24obil7ci53b3JrdHJlZU1lcmdlRXJyb3I9biYmbi5tZXNzYWdlfHwiXHU2NUUwXHU2Q0Q1XHU2OEMwXHU2N0U1IHdvcmt0cmVlIFx1NTQwOFx1NUU3Nlx1NzJCNlx1NjAwMVx1MzAwMiJ9KS5maW5hbGx5KGZ1bmN0aW9uKCl7ci53b3JrdHJlZU1lcmdlTG9hZGluZz0hMSxIcigpfSl9ZnVuY3Rpb24gZXIoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid29ya3RyZWUtbWVyZ2UtbW9kYWwiKTtyLmFjdGl2ZVdvcmt0cmVlTWVyZ2VTZXNzaW9uSWQ9bnVsbCxyLndvcmt0cmVlTWVyZ2VDaGVja1Jlc3VsdD1udWxsLHIud29ya3RyZWVNZXJnZUxvYWRpbmc9ITEsci53b3JrdHJlZU1lcmdlU3VibWl0dGluZz0hMSxyLndvcmt0cmVlTWVyZ2VFcnJvcj0iIixlJiZlLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLHIuZm9jdXNUcmFwSGFuZGxlciYmKGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLHIuZm9jdXNUcmFwSGFuZGxlciksci5mb2N1c1RyYXBIYW5kbGVyPW51bGwpLHIubGFzdEZvY3VzZWRFbGVtZW50JiZ0eXBlb2Ygci5sYXN0Rm9jdXNlZEVsZW1lbnQuZm9jdXM9PSJmdW5jdGlvbiImJnIubGFzdEZvY3VzZWRFbGVtZW50LmZvY3VzKCl9ZnVuY3Rpb24gSW0oKXshci5hY3RpdmVXb3JrdHJlZU1lcmdlU2Vzc2lvbklkfHxyLndvcmt0cmVlTWVyZ2VTdWJtaXR0aW5nfHwoci53b3JrdHJlZU1lcmdlU3VibWl0dGluZz0hMCxyLndvcmt0cmVlTWVyZ2VFcnJvcj0iIixIcigpLGZldGNoKCIvYXBpL3Nlc3Npb25zLyIrZW5jb2RlVVJJQ29tcG9uZW50KHIuYWN0aXZlV29ya3RyZWVNZXJnZVNlc3Npb25JZCkrIi93b3JrdHJlZS9tZXJnZSIse21ldGhvZDoiUE9TVCIsY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGJvZHk6SlNPTi5zdHJpbmdpZnkoe30pfSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gZS5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKGUpe2lmKGUmJmUuZXJyb3IpdGhyb3cgbmV3IEVycm9yKGUuZXJyb3IpO3JldHVybiBlJiZlLnNlc3Npb24mJiQoZS5zZXNzaW9uKSxrKCJcdTVERjJcdTU0MDhcdTVFNzZcdTUyMzAgIitwKGUucmVzdWx0JiZlLnJlc3VsdC50YXJnZXRCcmFuY2h8fCJcdTRFM0JcdTUyMDZcdTY1MkYiKSsoZS5yZXN1bHQmJmUucmVzdWx0LmNsZWFudXBEb25lPT09ITE/Ilx1RkYwQ1x1NEY0Nlx1NURFNVx1NEY1Q1x1NjgxMVx1NUY4NVx1NkUwNVx1NzQwNlx1MzAwMiI6Ilx1MzAwMiIpLCJpbmZvIiksZXIoKSxSdCgpfSkuY2F0Y2goZnVuY3Rpb24oZSl7ci53b3JrdHJlZU1lcmdlRXJyb3I9ZSYmZS5tZXNzYWdlfHwiXHU2NUUwXHU2Q0Q1XHU1NDA4XHU1RTc2IHdvcmt0cmVlXHUzMDAyIixIcigpfSkuZmluYWxseShmdW5jdGlvbigpe3Iud29ya3RyZWVNZXJnZVN1Ym1pdHRpbmc9ITEsSHIoKX0pKX1mdW5jdGlvbiBobChlKXtmZXRjaCgiL2FwaS9zZXNzaW9ucy8iK2VuY29kZVVSSUNvbXBvbmVudChlKSsiL3dvcmt0cmVlL2NsZWFudXAiLHttZXRob2Q6IlBPU1QiLGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiB0Lmpzb24oKX0pLnRoZW4oZnVuY3Rpb24odCl7aWYodCYmdC5lcnJvcil0aHJvdyBuZXcgRXJyb3IodC5lcnJvcik7cmV0dXJuIHQmJnQuc2Vzc2lvbiYmJCh0LnNlc3Npb24pLGsoIlx1NURGMlx1NUI4Q1x1NjIxMCB3b3JrdHJlZSBcdTZFMDVcdTc0MDZcdTMwMDIiLCJpbmZvIiksUnQoKX0pLmNhdGNoKGZ1bmN0aW9uKHQpe2sodCYmdC5tZXNzYWdlfHwiXHU2NUUwXHU2Q0Q1XHU2RTA1XHU3NDA2IHdvcmt0cmVlXHUzMDAyIiwiZXJyb3IiKX0pfWZ1bmN0aW9uIFRtKCl7eW4oKTt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MtbW9kYWwiKTtpZihlKXtlLl93YW5kQ2xvc2VUaW1lciYmKGNsZWFyVGltZW91dChlLl93YW5kQ2xvc2VUaW1lciksZS5fd2FuZENsb3NlVGltZXI9bnVsbCksZS5jbGFzc0xpc3QucmVtb3ZlKCJjbG9zaW5nIiksZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSxyLmxhc3RGb2N1c2VkRWxlbWVudD1kb2N1bWVudC5hY3RpdmVFbGVtZW50O3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJuZXctcGFzc3dvcmQiKSxuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25maXJtLXBhc3N3b3JkIik7dCYmKHQudmFsdWU9IiIpLG4mJihuLnZhbHVlPSIiKSx5bCgpLFBpKGUpLE1tKCksY3UoImFib3V0IiksSG0oKTt2YXIgaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLW5vdGlmLXNvdW5kIiksYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLW5vdGlmLWJ1YmJsZSIpO2kmJihpLmNoZWNrZWQ9ci5ub3RpZlNvdW5kKSxhJiYoYS5jaGVja2VkPXIubm90aWZCdWJibGUpO3ZhciB1PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctbm90aWYtdm9sdW1lIikscz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLW5vdGlmLXZvbHVtZS12YWwiKTtpZih1KXt1LnZhbHVlPXIubm90aWZWb2x1bWUscyYmKHMudGV4dENvbnRlbnQ9ci5ub3RpZlZvbHVtZSsiJSIpO3RyeXt1LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCJpbnB1dCIse2J1YmJsZXM6ITB9KSl9Y2F0Y2h7fX12YXIgbz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm90aWYtdm9sdW1lLWZpZWxkIik7aWYobyYmKG8uc3R5bGUuZGlzcGxheT1yLm5vdGlmU291bmQ/IiI6Im5vbmUiKSxFbigpLHR5cGVvZiBXYW5kTmF0aXZlPCJ1IiYmdHlwZW9mIFdhbmROYXRpdmUuZ2V0QXBwSWNvbj09ImZ1bmN0aW9uIil0cnl7RmwoV2FuZE5hdGl2ZS5nZXRBcHBJY29uKCl8fCJzaG9ydGhhaXIiKX1jYXRjaHt9aWYoamUmJnR5cGVvZiBXYW5kTmF0aXZlLmdldE5vdGlmaWNhdGlvblNvdW5kPT0iZnVuY3Rpb24iKXRyeXt2YXIgbD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibmF0aXZlLXNvdW5kLXNlbGVjdCIpO2wmJihsLnZhbHVlPVdhbmROYXRpdmUuZ2V0Tm90aWZpY2F0aW9uU291bmQoKSl9Y2F0Y2h7fWlmKGplJiZ0eXBlb2YgV2FuZE5hdGl2ZS5nZXROb3RpZmljYXRpb25Wb2x1bWU9PSJmdW5jdGlvbiIpdHJ5e3ZhciBjPVdhbmROYXRpdmUuZ2V0Tm90aWZpY2F0aW9uVm9sdW1lKCk7aWYoci5ub3RpZlZvbHVtZT1jLHUmJih1LnZhbHVlPVN0cmluZyhjKSkscyYmKHMudGV4dENvbnRlbnQ9YysiJSIpLHUpdHJ5e3UuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoImlucHV0Iix7YnViYmxlczohMH0pKX1jYXRjaHt9dHJ5e2xvY2FsU3RvcmFnZS5zZXRJdGVtKCJ3YW5kLW5vdGlmLXZvbHVtZSIsU3RyaW5nKGMpKX1jYXRjaHt9fWNhdGNoe31pZihqZSYmdHlwZW9mIFdhbmROYXRpdmUuaXNIYXB0aWNFbmFibGVkPT0iZnVuY3Rpb24iKXRyeXt2YXIgZj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWhhcHRpYy1lbmFibGVkIik7ZiYmKGYuY2hlY2tlZD1XYW5kTmF0aXZlLmlzSGFwdGljRW5hYmxlZCgpKX1jYXRjaHt9fX1mdW5jdGlvbiB0cigpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncy1tb2RhbCIpO2UmJihyLmZvY3VzVHJhcEhhbmRsZXImJihkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIixyLmZvY3VzVHJhcEhhbmRsZXIpLHIuZm9jdXNUcmFwSGFuZGxlcj1udWxsKSxyLmxhc3RGb2N1c2VkRWxlbWVudCYmdHlwZW9mIHIubGFzdEZvY3VzZWRFbGVtZW50LmZvY3VzPT0iZnVuY3Rpb24iJiZyLmxhc3RGb2N1c2VkRWxlbWVudC5mb2N1cygpLGx1KGUpKX1mdW5jdGlvbiB5bCgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncy1lcnJvciIpLHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzLXN1Y2Nlc3MiKTtlJiZlLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLHQmJnQuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIil9ZnVuY3Rpb24gTG0oKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibmV3LXBhc3N3b3JkIikudmFsdWUsdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uZmlybS1wYXNzd29yZCIpLnZhbHVlLG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzLWVycm9yIiksaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3Mtc3VjY2VzcyIpO2lmKHlsKCksIWV8fGUubGVuZ3RoPDYpe24udGV4dENvbnRlbnQ9Ilx1NUJDNlx1NzgwMVx1OTU3Rlx1NUVBNlx1ODFGM1x1NUMxMVx1NEUzQSA2IFx1NEUyQVx1NUI1N1x1N0IyNlx1MzAwMiIsbi5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKTtyZXR1cm59aWYoZSE9PXQpe24udGV4dENvbnRlbnQ9Ilx1NEUyNFx1NkIyMVx1OEY5M1x1NTE2NVx1NzY4NFx1NUJDNlx1NzgwMVx1NEUwRFx1NEUwMFx1ODFGNFx1MzAwMiIsbi5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKTtyZXR1cm59ZmV0Y2goIi9hcGkvc2V0LXBhc3N3b3JkIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGJvZHk6SlNPTi5zdHJpbmdpZnkoe3Bhc3N3b3JkOmV9KSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihhKXtyZXR1cm4gYS5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKGEpe2lmKGEuZXJyb3Ipe24udGV4dENvbnRlbnQ9YS5lcnJvcixuLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpO3JldHVybn1pLnRleHRDb250ZW50PSJcdTVCQzZcdTc4MDFcdTRGRUVcdTY1MzlcdTYyMTBcdTUyOUZcdUZGMDEiLGkuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5ldy1wYXNzd29yZCIpLnZhbHVlPSIiLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25maXJtLXBhc3N3b3JkIikudmFsdWU9IiJ9KS5jYXRjaChmdW5jdGlvbigpe24udGV4dENvbnRlbnQ9IkZhaWxlZCB0byBzYXZlIHBhc3N3b3JkLiIsbi5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKX0pfWZ1bmN0aW9uIGN1KGUpe2Zvcih2YXIgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuc2V0dGluZ3MtdGFiIiksbj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuc2V0dGluZ3MtcGFuZWwiKSxpPTA7aTx0Lmxlbmd0aDtpKyspe3ZhciBhPXRbaV0uZ2V0QXR0cmlidXRlKCJkYXRhLXRhYiIpPT09ZTthP3RbaV0uY2xhc3NMaXN0LmFkZCgiYWN0aXZlIik6dFtpXS5jbGFzc0xpc3QucmVtb3ZlKCJhY3RpdmUiKSx0W2ldLnNldEF0dHJpYnV0ZSgiYXJpYS1zZWxlY3RlZCIsYT8idHJ1ZSI6ImZhbHNlIiksdFtpXS5zZXRBdHRyaWJ1dGUoInRhYmluZGV4IixhPyIwIjoiLTEiKX1mb3IodmFyIHU9MDt1PG4ubGVuZ3RoO3UrKyl7dmFyIHM9blt1XS5pZD09PSJzZXR0aW5ncy10YWItIitlO3M/KG5bdV0uY2xhc3NMaXN0LmFkZCgiYWN0aXZlIiksblt1XS5yZW1vdmVBdHRyaWJ1dGUoImhpZGRlbiIpKTooblt1XS5jbGFzc0xpc3QucmVtb3ZlKCJhY3RpdmUiKSxuW3VdLnNldEF0dHJpYnV0ZSgiaGlkZGVuIiwiaGlkZGVuIikpfX1mdW5jdGlvbiBibChlKXtpZihlJiYhKGUua2V5IT09IkFycm93VXAiJiZlLmtleSE9PSJBcnJvd0Rvd24iJiZlLmtleSE9PSJIb21lIiYmZS5rZXkhPT0iRW5kIikpe3ZhciB0PUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5zZXR0aW5ncy10YWIiKSk7aWYodC5sZW5ndGgpe3ZhciBuPXQuaW5kZXhPZihlLmN1cnJlbnRUYXJnZXQpO2lmKG4hPT0tMSl7ZS5wcmV2ZW50RGVmYXVsdCgpO3ZhciBpPW47ZS5rZXk9PT0iQXJyb3dVcCImJihpPW4+MD9uLTE6dC5sZW5ndGgtMSksZS5rZXk9PT0iQXJyb3dEb3duIiYmKGk9bjx0Lmxlbmd0aC0xP24rMTowKSxlLmtleT09PSJIb21lIiYmKGk9MCksZS5rZXk9PT0iRW5kIiYmKGk9dC5sZW5ndGgtMSk7dmFyIGE9dFtpXTtpZihhKXt2YXIgdT1hLmdldEF0dHJpYnV0ZSgiZGF0YS10YWIiKTt1JiZjdSh1KSx0eXBlb2YgYS5mb2N1cz09ImZ1bmN0aW9uIiYmYS5mb2N1cygpfX19fX1mdW5jdGlvbiBNbSgpe2Zvcih2YXIgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuc2V0dGluZ3MtdGFiIiksdD0wO3Q8ZS5sZW5ndGg7dCsrKWVbdF0ucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsYmwpLGVbdF0uYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsYmwpfWZ1bmN0aW9uIHFtKGUpe2lmKGUpe3ZhciB0PWUuY29uZmlnfHx7fSxuPXthYm91dDplLnZlcnNpb24/Ilx1NUY1M1x1NTI0RCB2IitlLnZlcnNpb246Ilx1NzI0OFx1NjcyQ1x1NEUwRVx1NjZGNFx1NjVCMFx1NEZFMVx1NjA2RiIsZ2VuZXJhbDpbdC5kZWZhdWx0TW9kZXx8ImRlZmF1bHQiLHQubGFuZ3VhZ2V8fCJcdTgxRUFcdTUyQThcdThCRURcdThBMDAiXS5maWx0ZXIoQm9vbGVhbikuam9pbigiIFx4QjcgIiksbm90aWZpY2F0aW9uczpyLm5vdGlmU291bmQ/Ilx1NjNEMFx1NzkzQVx1OTdGMyAiK3Iubm90aWZWb2x1bWUrIiUiOiJcdTYzRDBcdTc5M0FcdTk3RjNcdTVERjJcdTUxNzNcdTk1RUQiLHNlY3VyaXR5OmUuaGFzQ2VydD8iXHU1REYyXHU1Qjg5XHU4OEM1IFNTTCBcdThCQzFcdTRFNjYiOiJcdTVCQzZcdTc4MDFcdTRFMEVcdThCQzFcdTRFNjZcdTdCQTFcdTc0MDYiLHByZXNldHM6dC5jb21tYW5kUHJlc2V0cyYmdC5jb21tYW5kUHJlc2V0cy5sZW5ndGg/dC5jb21tYW5kUHJlc2V0cy5sZW5ndGgrIiBcdTY3NjFcdTk4ODRcdThCQkUiOiJcdTY2ODJcdTY1RTBcdTk4ODRcdThCQkUiLGRpc3BsYXk6Ilx1NjNBN1x1NTIzNlx1NTM2MVx1NzI0N1x1OUVEOFx1OEJBNFx1NUM1NVx1NUYwMCJ9O2Zvcih2YXIgaSBpbiBuKWlmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLGkpKXt2YXIgYT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuc2V0dGluZ3MtdGFiW2RhdGEtdGFiPSInK2krJyJdIC5zZXR0aW5ncy10YWItbWV0YScpO2EmJihhLnRleHRDb250ZW50PW5baV18fCIiKX19fWZ1bmN0aW9uIE9tKGUpe3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhbmRyb2lkLWNvbm5lY3QtcXIiKSxuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhbmRyb2lkLWNvbm5lY3QtcXItZW1wdHkiKSxpPXdpbmRvdy5RUkNvZGVMaWI7aWYodCl7aWYoIWl8fHR5cGVvZiBpLnRvQ2FudmFzIT0iZnVuY3Rpb24iKXtuJiYobi50ZXh0Q29udGVudD0iXHU0RThDXHU3RUY0XHU3ODAxXHU1RTkzXHU2NzJBXHU1MkEwXHU4RjdEIik7cmV0dXJufXRyeXtpLnRvQ2FudmFzKHQsZSx7d2lkdGg6MjIwLG1hcmdpbjoxLGVycm9yQ29ycmVjdGlvbkxldmVsOiJNIixjb2xvcjp7ZGFyazoiIzFmMWIxNyIsbGlnaHQ6IiNmZmZmZmYwMCJ9fSxmdW5jdGlvbihhKXtpZihhKXtuJiYobi50ZXh0Q29udGVudD0iXHU0RThDXHU3RUY0XHU3ODAxXHU3NTFGXHU2MjEwXHU1OTMxXHU4RDI1IixuLnN0eWxlLmRpc3BsYXk9IiIpLHQuc3R5bGUudmlzaWJpbGl0eT0iaGlkZGVuIjtyZXR1cm59biYmKG4uc3R5bGUuZGlzcGxheT0ibm9uZSIpLHQuc3R5bGUudmlzaWJpbGl0eT0idmlzaWJsZSJ9KX1jYXRjaHtuJiYobi50ZXh0Q29udGVudD0iXHU0RThDXHU3RUY0XHU3ODAxXHU3NTFGXHU2MjEwXHU1OTMxXHU4RDI1IixuLnN0eWxlLmRpc3BsYXk9IiIpLHQuc3R5bGUudmlzaWJpbGl0eT0iaGlkZGVuIn19fWZ1bmN0aW9uIFBtKGUpe3ZhciB0PXdpbmRvdy5RUkNvZGVMaWI7aWYoIXR8fHR5cGVvZiB0LnRvQ2FudmFzIT0iZnVuY3Rpb24iKXJldHVybjt2YXIgbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29ubmVjdC1xci1tb2RhbCIpO24mJm4ucmVtb3ZlKCk7dmFyIGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7aS5pZD0iY29ubmVjdC1xci1tb2RhbCIsaS5jbGFzc05hbWU9ImNvbm5lY3QtcXItbW9kYWwtb3ZlcmxheSIsaS5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImNvbm5lY3QtcXItbW9kYWwtY2FyZCI+PGNhbnZhcyBpZD0iY29ubmVjdC1xci1tb2RhbC1jYW52YXMiPjwvY2FudmFzPjxwIGNsYXNzPSJjb25uZWN0LXFyLW1vZGFsLWhpbnQiPlx1NzUyOCBXYW5kIEFwcCBcdTYyNkJcdTRFMDBcdTYyNkJcdUZGMENcdThGREVcdTYzQTVcdTVGNTNcdTUyNERcdTY3MERcdTUyQTFcdTU2Njg8L3A+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4gYnRuLXNlY29uZGFyeSBidG4tc20gY29ubmVjdC1xci1tb2RhbC1jbG9zZSI+XHU1MTczXHU5NUVEPC9idXR0b24+PC9kaXY+Jyxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGkpO3ZhciBhPWkucXVlcnlTZWxlY3RvcigiI2Nvbm5lY3QtcXItbW9kYWwtY2FudmFzIiksdT1NYXRoLm1pbih3aW5kb3cuaW5uZXJXaWR0aCx3aW5kb3cuaW5uZXJIZWlnaHQpKi43O3U8MjQwJiYodT0yNDApLHU+NDgwJiYodT00ODApO3RyeXt0LnRvQ2FudmFzKGEsZSx7d2lkdGg6dSxtYXJnaW46MixlcnJvckNvcnJlY3Rpb25MZXZlbDoiTSIsY29sb3I6e2Rhcms6IiMxZjFiMTciLGxpZ2h0OiIjZmZmZmZmIn19KX1jYXRjaHt9ZnVuY3Rpb24gcygpe2kucmVtb3ZlKCl9aS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24obCl7bC50YXJnZXQ9PT1pJiZzKCl9KTt2YXIgbz1pLnF1ZXJ5U2VsZWN0b3IoIi5jb25uZWN0LXFyLW1vZGFsLWNsb3NlIik7byYmby5hZGRFdmVudExpc3RlbmVyKCJjbGljayIscyl9ZnVuY3Rpb24gX3IoZSx0LG4pe2lmKCFlKXJldHVybjtmdW5jdGlvbiBpKCl7aWYoR24oImxpZ2h0Iiksbil7bigpO3JldHVybn1pZih0KXt2YXIgYT10LnRleHRDb250ZW50O3QudGV4dENvbnRlbnQ9Ilx1NURGMlx1NTkwRFx1NTIzNiIsc2V0VGltZW91dChmdW5jdGlvbigpe3QudGV4dENvbnRlbnQ9YX0sMTUwMCl9fWlmKGplJiZ0eXBlb2YgV2FuZE5hdGl2ZS5jb3B5VG9DbGlwYm9hcmQ9PSJmdW5jdGlvbiIpdHJ5e2lmKFdhbmROYXRpdmUuY29weVRvQ2xpcGJvYXJkKGUpPT09Im9rIil7aSgpO3JldHVybn19Y2F0Y2h7fW5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KGUpLnRoZW4oaSkuY2F0Y2goZnVuY3Rpb24oKXt2YXIgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZXh0YXJlYSIpO2EudmFsdWU9ZSxhLnN0eWxlLnBvc2l0aW9uPSJmaXhlZCIsYS5zdHlsZS5vcGFjaXR5PSIwIixkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGEpLGEuc2VsZWN0KCksZG9jdW1lbnQuZXhlY0NvbW1hbmQoImNvcHkiKSxkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGEpLGkoKX0pfWZ1bmN0aW9uIGJuKGUpe2lmKHR5cGVvZiBlIT0ibnVtYmVyInx8IWlzRmluaXRlKGUpfHxlPDApcmV0dXJuIi0iO2lmKGU8MTAyNClyZXR1cm4gZSsiIEIiO2Zvcih2YXIgdD1bIktCIiwiTUIiLCJHQiIsIlRCIl0sbj1lLzEwMjQsaT0wO24+PTEwMjQmJmk8dC5sZW5ndGgtMTspbj1uLzEwMjQsaSs9MTt2YXIgYT1uPj0xMD9uLnRvRml4ZWQoMCk6bi50b0ZpeGVkKDEpO3JldHVybiBhKyIgIit0W2ldfWZ1bmN0aW9uIEhtKCl7ZmV0Y2goIi9hcGkvc2V0dGluZ3MiLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gZS5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKGUpe3FtKGUpO3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncy1wa2ctbmFtZSIpLG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzLXZlcnNpb24iKSxpPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncy1ub2RlLXJlcSIpLGE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzLXJlcG8tdXJsIik7dCYmKHQudGV4dENvbnRlbnQ9ZS5wYWNrYWdlTmFtZXx8Ii0iKSxuJiYobi50ZXh0Q29udGVudD1lLnZlcnNpb258fCItIiksaSYmKGkudGV4dENvbnRlbnQ9ZS5ub2RlVmVyc2lvbnx8Ii0iKSxhJiZlLnJlcG9VcmwmJihhLmlubmVySFRNTD0nPGEgaHJlZj0iJytwKGUucmVwb1VybCkrJyIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIiPicrcChlLnJlcG9VcmwpKyI8L2E+Iik7dmFyIHU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzLWxhdGVzdC12ZXJzaW9uIikscz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZG8tdXBkYXRlLWJ1dHRvbiIpO2UubGF0ZXN0VmVyc2lvbiYmdSYmKHUudGV4dENvbnRlbnQ9ZS5sYXRlc3RWZXJzaW9uLGUudXBkYXRlQXZhaWxhYmxlJiZzJiZzLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpKTt2YXIgbz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYmV0YS1jaGFubmVsLXRvZ2dsZSIpO28mJihvLmNoZWNrZWQ9ZS51cGRhdGVDaGFubmVsPT09ImJldGEiKTt2YXIgbD1lLmF1dG9VcGRhdGV8fHt9LGM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF1dG8tdXBkYXRlLXdlYi10b2dnbGUiKTtjJiYoYy5jaGVja2VkPSEhbC53ZWIpO3ZhciBmPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhdXRvLXVwZGF0ZS1hcGstdG9nZ2xlIik7ZiYmKGYuY2hlY2tlZD0hIVRuJiYhIWwuYXBrKTt2YXIgZD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXV0by11cGRhdGUtZG1nLXRvZ2dsZSIpO2QmJihkLmNoZWNrZWQ9ISFjbiYmISFsLmRtZyk7ZnVuY3Rpb24gdihaLEllKXt0eXBlb2Ygd2luZG93LndhbmRBbGVydD09ImZ1bmN0aW9uIj93aW5kb3cud2FuZEFsZXJ0KFose3R5cGU6SWU9PT0iZXJyb3IiPyJkYW5nZXIiOiJpbmZvIn0pOnR5cGVvZiBrPT0iZnVuY3Rpb24iP2soWixJZT09PSJlcnJvciI/ImVycm9yIjoiaW5mbyIpOkllPT09ImVycm9yIiYmYWxlcnQoWil9ZnVuY3Rpb24gaChaLEllLFRlKXt2YXIgWWU9VGU/VGUudGV4dENvbnRlbnQ6IiI7VGUmJihUZS5kaXNhYmxlZD0hMCxUZS50ZXh0Q29udGVudD0iXHU0RTBCXHU4RjdEXHU0RTJEXHUyMDI2Iik7ZnVuY3Rpb24gUWUoKXtUZSYmKFRlLmRpc2FibGVkPSExLFRlLnRleHRDb250ZW50PVllKX1mZXRjaChaLHttZXRob2Q6IkhFQUQiLGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKEZlKXtpZighRmUub2spe3YoRmUuc3RhdHVzPT09NDA0PyJcdTRFMEJcdThGN0RcdTY3MkFcdTU0MkZcdTc1MjhcdTYyMTZcdTY1ODdcdTRFRjZcdTVERjJcdTc5RkJcdTk2NjQiOiJcdTRFMEJcdThGN0RcdTU5MzFcdThEMjUgKEhUVFAgIitGZS5zdGF0dXMrIikiLCJlcnJvciIpLFFlKCk7cmV0dXJufXZhciBMZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7TGUuaHJlZj1aLExlLmRvd25sb2FkPUllfHwiIixkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKExlKSxMZS5jbGljaygpLGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoTGUpLHYoIlx1NURGMlx1NUYwMFx1NTlDQlx1NEUwQlx1OEY3RFx1RkYwQ1x1OEJGN1x1NTcyOFx1OTAxQVx1NzdFNVx1NjgwRi9cdTRFMEJcdThGN0RcdTdCQTFcdTc0MDZcdTRFMkRcdTY3RTVcdTc3MEIiLCJpbmZvIiksUWUoKX0pLmNhdGNoKGZ1bmN0aW9uKEZlKXt2KCJcdTRFMEJcdThGN0RcdTU5MzFcdThEMjU6ICIrKEZlJiZGZS5tZXNzYWdlP0ZlLm1lc3NhZ2U6RmUpLCJlcnJvciIpLFFlKCl9KX1mdW5jdGlvbiBnKFosSWUpe2Z1bmN0aW9uIFRlKHZlKXt2YXIgeWU9U3RyaW5nKHZlfHwiIikucmVwbGFjZSgvXnYvLCIiKSxPZT15ZS5pbmRleE9mKCItIiksYXI9T2U+PTA/eWUuc2xpY2UoMCxPZSk6eWUsUnI9T2U+PTA/eWUuc2xpY2UoT2UrMSk6IiI7cmV0dXJue3BhcnRzOmFyLnNwbGl0KCIuIikubWFwKGZ1bmN0aW9uKE5pKXtyZXR1cm4gcGFyc2VJbnQoTmksMTApfHwwfSkscHJlOlJyLGlzRGVidWc6UnIuaW5kZXhPZigiZGVidWciKT09PTB9fWZvcih2YXIgWWU9VGUoWiksUWU9VGUoSWUpLEZlPTA7RmU8MztGZSsrKXt2YXIgTGU9KFllLnBhcnRzW0ZlXXx8MCktKFFlLnBhcnRzW0ZlXXx8MCk7aWYoTGUhPT0wKXJldHVybiBMZT4wPzE6LTF9aWYoWWUuaXNEZWJ1ZyE9PVFlLmlzRGVidWcpcmV0dXJuIFllLmlzRGVidWc/MTotMTtpZihZZS5pc0RlYnVnJiZRZS5pc0RlYnVnKWZvcih2YXIgJGU9WWUucHJlLnNwbGl0KCIuIiksUXQ9UWUucHJlLnNwbGl0KCIuIiksSD0wO0g8TWF0aC5tYXgoJGUubGVuZ3RoLFF0Lmxlbmd0aCk7SCsrKXtpZigkZVtIXT09PXZvaWQgMClyZXR1cm4tMTtpZihRdFtIXT09PXZvaWQgMClyZXR1cm4gMTt2YXIgaj1wYXJzZUludCgkZVtIXSwxMCksUT1wYXJzZUludChRdFtIXSwxMCk7aWYoIWlzTmFOKGopJiYhaXNOYU4oUSkpe2lmKGohPT1RKXJldHVybiBqPlE/MTotMX1lbHNlIGlmKCRlW0hdIT09UXRbSF0pcmV0dXJuICRlW0hdPlF0W0hdPzE6LTF9cmV0dXJuIDB9ZnVuY3Rpb24gbShaLEllLFRlLFllLFFlLEZlKXtaLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLFouZGlzYWJsZWQ9ITEsSWU+MD9aLnRleHRDb250ZW50PSJcdTUzNDdcdTdFQTciOkllPT09MD8oWi50ZXh0Q29udGVudD0iXHU1REYyXHU2NjJGXHU2NzAwXHU2NUIwIixaLmRpc2FibGVkPSEwKTpGZT9aLnRleHRDb250ZW50PSJcdTkxQ0RcdTY1QjBcdTVCODlcdTg4QzUiOihaLnRleHRDb250ZW50PSJcdTcyNDhcdTY3MkNcdThGODNcdTY1RTciLFouZGlzYWJsZWQ9ITApLFoub25jbGljaz1aLmRpc2FibGVkP251bGw6ZnVuY3Rpb24oKXt0cnl7V2FuZE5hdGl2ZS5kb3dubG9hZFVwZGF0ZShUZSxZZSxRZSl9Y2F0Y2goTGUpe3YoIlx1OEMwM1x1NzUyOFx1NEUwQlx1OEY3RFx1NTkzMVx1OEQyNTogIisoTGUmJkxlLm1lc3NhZ2U/TGUubWVzc2FnZTpMZSksImVycm9yIil9fX12YXIgeT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYW5kcm9pZC1hcGstc2VjdGlvbiIpLHc9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFuZHJvaWQtYXBrLWN1cnJlbnQtcm93IiksRT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MtYW5kcm9pZC1hcGstY3VycmVudCIpLEI9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFuZHJvaWQtYXBrLWdpdGh1Yi1yb3ciKSxGPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncy1hbmRyb2lkLWFway1naXRodWIiKSx4PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkb3dubG9hZC1naXRodWItYXBrLWJ0biIpLFM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFuZHJvaWQtYXBrLWxvY2FsLXJvdyIpLF89ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzLWFuZHJvaWQtYXBrLWxvY2FsIiksVj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZG93bmxvYWQtbG9jYWwtYXBrLWJ0biIpLFU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFuZHJvaWQtYXBrLW1lc3NhZ2UiKSxJPWUuYW5kcm9pZEFwa3x8e30sRD0hIVRuLE09SS5lbmFibGVkIT09ITEsTD1EfHxNJiYoISFJLmdpdGh1Ynx8ISFJLmxvY2FsKTtpZih5JiYoTD95LmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpOnkuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIikpLEQpe2lmKHcmJkUmJihFLnRleHRDb250ZW50PSJ2IitUbix3LmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpKSxJLmdpdGh1YiYmQiYmRil7dmFyIFc9SS5naXRodWIudmVyc2lvbj8idiIrSS5naXRodWIudmVyc2lvbjpJLmdpdGh1Yi5maWxlTmFtZTtpZih0eXBlb2YgSS5naXRodWIuc2l6ZT09Im51bWJlciImJihXKz0iIFx4QjcgIitibihJLmdpdGh1Yi5zaXplKSksRi50ZXh0Q29udGVudD1XLEIuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikseCl7dmFyIEs9SS5naXRodWIudmVyc2lvbj9nKEkuZ2l0aHViLnZlcnNpb24sVG4pOjE7bSh4LEssSS5naXRodWIuZG93bmxvYWRVcmwsSS5naXRodWIuZmlsZU5hbWV8fCJ3YW5kLXVwZGF0ZS5hcGsiLCJnaXRodWIiLCExKX19aWYoSS5sb2NhbCYmUyYmXyl7dmFyIFg9SS5sb2NhbC52ZXJzaW9uPyJ2IitJLmxvY2FsLnZlcnNpb246SS5sb2NhbC5maWxlTmFtZTtpZih0eXBlb2YgSS5sb2NhbC5zaXplPT0ibnVtYmVyIiYmKFgrPSIgXHhCNyAiK2JuKEkubG9jYWwuc2l6ZSkpLF8udGV4dENvbnRlbnQ9WCxTLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLFYpe3ZhciBuZT1JLmxvY2FsLnZlcnNpb24/ZyhJLmxvY2FsLnZlcnNpb24sVG4pOjE7bShWLG5lLEkubG9jYWwuZG93bmxvYWRVcmwsSS5sb2NhbC5maWxlTmFtZXx8IndhbmQtdXBkYXRlLmFwayIsImxvY2FsIiwhMSl9fSFJLmdpdGh1YiYmIUkubG9jYWwmJlUmJihVLnRleHRDb250ZW50PSJcdTY2ODJcdTY1RTBcdTUzRUZcdTc1MjhcdTY2RjRcdTY1QjAiLFUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikpO3ZhciBzZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYW5kcm9pZC1hdXRvLXVwZGF0ZS1yb3ciKSxyZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYW5kcm9pZC1hdXRvLXVwZGF0ZS1oaW50Iik7c2UmJnNlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLHJlJiZyZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKX1lbHNle2lmKEkuZ2l0aHViJiZCJiZGKXt2YXIgVD1JLmdpdGh1Yi52ZXJzaW9uPyJ2IitJLmdpdGh1Yi52ZXJzaW9uOkkuZ2l0aHViLmZpbGVOYW1lO3R5cGVvZiBJLmdpdGh1Yi5zaXplPT0ibnVtYmVyIiYmKFQrPSIgXHhCNyAiK2JuKEkuZ2l0aHViLnNpemUpKSxGLnRleHRDb250ZW50PVQsQi5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSx4JiYoeC50ZXh0Q29udGVudD0iXHU0RTBCXHU4RjdEIix4LmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLHgub25jbGljaz1mdW5jdGlvbigpe3dpbmRvdy5vcGVuKEkuZ2l0aHViLmRvd25sb2FkVXJsLCJfYmxhbmsiKSx2KCJcdTZCNjNcdTU3MjhcdTYyNTNcdTVGMDBcdTRFMEJcdThGN0RcdTk4NzVcdTIwMjYiLCJpbmZvIil9KX1pZihJLmxvY2FsJiZTJiZfKXt2YXIgcT1JLmxvY2FsLnZlcnNpb24/InYiK0kubG9jYWwudmVyc2lvbjpJLmxvY2FsLmZpbGVOYW1lO3R5cGVvZiBJLmxvY2FsLnNpemU9PSJudW1iZXIiJiYocSs9IiBceEI3ICIrYm4oSS5sb2NhbC5zaXplKSksXy50ZXh0Q29udGVudD1xLFMuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksViYmKFYudGV4dENvbnRlbnQ9Ilx1NEUwQlx1OEY3RCIsVi5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSxWLm9uY2xpY2s9ZnVuY3Rpb24oKXtoKEkubG9jYWwuZG93bmxvYWRVcmwsSS5sb2NhbC5maWxlTmFtZXx8IndhbmQtdXBkYXRlLmFwayIsVil9KX0hSS5naXRodWImJiFJLmxvY2FsJiZVJiYoVS50ZXh0Q29udGVudD1NPyJcdTU3MjhcdTdFQkZcdTcyNDhcdTY3MkNcdTY2ODJcdTY1RjZcdTgzQjdcdTUzRDZcdTU5MzFcdThEMjVcdUZGMENcdTUzRUZcdTdBMERcdTU0MEVcdTkxQ0RcdThCRDUiOiJBbmRyb2lkIFx1NEUwQlx1OEY3RFx1NjcyQVx1NTcyOFx1NjcwRFx1NTJBMVx1N0FFRlx1NTQyRlx1NzUyOCIsVS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSl9dmFyIE49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1hY29zLWRtZy1zZWN0aW9uIiksWT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWFjb3MtZG1nLWN1cnJlbnQtcm93IiksSj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MtbWFjb3MtZG1nLWN1cnJlbnQiKSxpZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWFjb3MtZG1nLWdpdGh1Yi1yb3ciKSxkZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MtbWFjb3MtZG1nLWdpdGh1YiIpLHRlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkb3dubG9hZC1naXRodWItZG1nLWJ0biIpLGFlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWNvcy1kbWctbG9jYWwtcm93IiksSGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzLW1hY29zLWRtZy1sb2NhbCIpLERlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkb3dubG9hZC1sb2NhbC1kbWctYnRuIikscGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1hY29zLWRtZy1tZXNzYWdlIiksUD1lLm1hY29zRG1nfHx7fSxKZT0hIWNuLGN0PVAuZW5hYmxlZCE9PSExLEc9SmV8fGN0JiYoISFQLmdpdGh1Ynx8ISFQLmxvY2FsKTtpZihOJiYoRz9OLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpOk4uY2xhc3NMaXN0LmFkZCgiaGlkZGVuIikpLEplKXtpZihZJiZKJiYoSi50ZXh0Q29udGVudD0idiIrY24sWS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSksUC5naXRodWImJmllJiZkZSl7dmFyIGVlPVAuZ2l0aHViLnZlcnNpb24/InYiK1AuZ2l0aHViLnZlcnNpb246UC5naXRodWIuZmlsZU5hbWU7aWYodHlwZW9mIFAuZ2l0aHViLnNpemU9PSJudW1iZXIiJiYoZWUrPSIgXHhCNyAiK2JuKFAuZ2l0aHViLnNpemUpKSxkZS50ZXh0Q29udGVudD1lZSxpZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSx0ZSl7dmFyIG9lPVAuZ2l0aHViLnZlcnNpb24/ZyhQLmdpdGh1Yi52ZXJzaW9uLGNuKToxO20odGUsb2UsUC5naXRodWIuZG93bmxvYWRVcmwsUC5naXRodWIuZmlsZU5hbWV8fCJ3YW5kLXVwZGF0ZS5kbWciLCJnaXRodWIiLCEwKX19aWYoUC5sb2NhbCYmYWUmJkhlKXt2YXIgbGU9UC5sb2NhbC52ZXJzaW9uPyJ2IitQLmxvY2FsLnZlcnNpb246UC5sb2NhbC5maWxlTmFtZTtpZih0eXBlb2YgUC5sb2NhbC5zaXplPT0ibnVtYmVyIiYmKGxlKz0iIFx4QjcgIitibihQLmxvY2FsLnNpemUpKSxIZS50ZXh0Q29udGVudD1sZSxhZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSxEZSl7dmFyIEJlPVAubG9jYWwudmVyc2lvbj9nKFAubG9jYWwudmVyc2lvbixjbik6MTttKERlLEJlLFAubG9jYWwuZG93bmxvYWRVcmwsUC5sb2NhbC5maWxlTmFtZXx8IndhbmQtdXBkYXRlLmRtZyIsImxvY2FsIiwhMCl9fSFQLmdpdGh1YiYmIVAubG9jYWwmJnBlJiYocGUudGV4dENvbnRlbnQ9Ilx1NjY4Mlx1NjVFMFx1NTNFRlx1NzUyOFx1NjZGNFx1NjVCMCIscGUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikpO3ZhciBXZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWFjb3MtYXV0by11cGRhdGUtcm93IiksSnQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1hY29zLWF1dG8tdXBkYXRlLWhpbnQiKTtXZSYmV2UuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksSnQmJkp0LmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpfWVsc2V7aWYoUC5naXRodWImJmllJiZkZSl7dmFyIGR0PVAuZ2l0aHViLnZlcnNpb24/InYiK1AuZ2l0aHViLnZlcnNpb246UC5naXRodWIuZmlsZU5hbWU7dHlwZW9mIFAuZ2l0aHViLnNpemU9PSJudW1iZXIiJiYoZHQrPSIgXHhCNyAiK2JuKFAuZ2l0aHViLnNpemUpKSxkZS50ZXh0Q29udGVudD1kdCxpZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSx0ZSYmKHRlLnRleHRDb250ZW50PSJcdTRFMEJcdThGN0QiLHRlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLHRlLm9uY2xpY2s9ZnVuY3Rpb24oKXt3aW5kb3cub3BlbihQLmdpdGh1Yi5kb3dubG9hZFVybCwiX2JsYW5rIiksdigiXHU2QjYzXHU1NzI4XHU2MjUzXHU1RjAwXHU0RTBCXHU4RjdEXHU5ODc1XHUyMDI2IiwiaW5mbyIpfSl9aWYoUC5sb2NhbCYmYWUmJkhlKXt2YXIgZnQ9UC5sb2NhbC52ZXJzaW9uPyJ2IitQLmxvY2FsLnZlcnNpb246UC5sb2NhbC5maWxlTmFtZTt0eXBlb2YgUC5sb2NhbC5zaXplPT0ibnVtYmVyIiYmKGZ0Kz0iIFx4QjcgIitibihQLmxvY2FsLnNpemUpKSxIZS50ZXh0Q29udGVudD1mdCxhZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSxEZSYmKERlLnRleHRDb250ZW50PSJcdTRFMEJcdThGN0QiLERlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLERlLm9uY2xpY2s9ZnVuY3Rpb24oKXtoKFAubG9jYWwuZG93bmxvYWRVcmwsUC5sb2NhbC5maWxlTmFtZXx8IndhbmQtdXBkYXRlLmRtZyIsRGUpfSl9IVAuZ2l0aHViJiYhUC5sb2NhbCYmcGUmJihwZS50ZXh0Q29udGVudD1jdD8iXHU1NzI4XHU3RUJGXHU3MjQ4XHU2NzJDXHU2NjgyXHU2NUY2XHU4M0I3XHU1M0Q2XHU1OTMxXHU4RDI1XHVGRjBDXHU1M0VGXHU3QTBEXHU1NDBFXHU5MUNEXHU4QkQ1IjoibWFjT1MgXHU0RTBCXHU4RjdEXHU2NzJBXHU1NzI4XHU2NzBEXHU1MkExXHU3QUVGXHU1NDJGXHU3NTI4IixwZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSl9dmFyIF9lPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhbmRyb2lkLWNvbm5lY3QtY29kZSIpLEd0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhbmRyb2lkLWNvbm5lY3QtcXIiKSxHZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYW5kcm9pZC1jb25uZWN0LXFyLWVtcHR5IikscnQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFuZHJvaWQtY29ubmVjdC1xci13cmFwIik7aWYoX2Upe19lLnRleHRDb250ZW50PSJcdTUyQTBcdThGN0RcdTRFMkQuLi4iLEdlJiYoR2UudGV4dENvbnRlbnQ9Ilx1NzUxRlx1NjIxMFx1NEUyRFx1MjAyNiIpLEd0JiYoR3Quc3R5bGUudmlzaWJpbGl0eT0iaGlkZGVuIik7dmFyIGtlPSIvYXBpL2FwcC1jb25uZWN0LWNvZGUiO3dpbmRvdy5sb2NhdGlvbiYmd2luZG93LmxvY2F0aW9uLm9yaWdpbiYmKGtlKz0iP29yaWdpbj0iK2VuY29kZVVSSUNvbXBvbmVudCh3aW5kb3cubG9jYXRpb24ub3JpZ2luKSksZmV0Y2goa2Use2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKFope3JldHVybiBaLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24oWil7Wi5jb2RlPyhfZS50ZXh0Q29udGVudD1aLmNvZGUsci5hbmRyb2lkQ29ubmVjdENvZGU9Wi5jb2RlLE9tKFouY29kZSkpOihfZS50ZXh0Q29udGVudD0iXHU3NTFGXHU2MjEwXHU1OTMxXHU4RDI1IixHZSYmKEdlLnRleHRDb250ZW50PSJcdTc1MUZcdTYyMTBcdTU5MzFcdThEMjUiKSl9KS5jYXRjaChmdW5jdGlvbigpe19lLnRleHRDb250ZW50PSJcdTgzQjdcdTUzRDZcdTU5MzFcdThEMjUiLEdlJiYoR2UudGV4dENvbnRlbnQ9Ilx1ODNCN1x1NTNENlx1NTkzMVx1OEQyNSIpfSl9cnQmJiFydC5kYXRhc2V0LmJvdW5kJiYocnQuZGF0YXNldC5ib3VuZD0iMSIscnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7ci5hbmRyb2lkQ29ubmVjdENvZGUmJlBtKHIuYW5kcm9pZENvbm5lY3RDb2RlKX0pKTt2YXIgZ2U9ZS5jb25maWd8fHt9LGJlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctaG9zdCIpLEM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1wb3J0IiksaXQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1odHRwcyIpLHl0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctbW9kZSIpLEl0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctY3dkIiksQ3Q9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1zaGVsbCIpO2JlJiYoYmUudmFsdWU9Z2UuaG9zdHx8IiIpLEMmJihDLnZhbHVlPWdlLnBvcnR8fCIiKSxpdCYmKGl0LmNoZWNrZWQ9Z2UuaHR0cHM9PT0hMCkseXQmJih5dC52YWx1ZT1nZS5kZWZhdWx0TW9kZXx8ImRlZmF1bHQiKSxJdCYmKEl0LnZhbHVlPWdlLmRlZmF1bHRDd2R8fCIiKSxDdCYmKEN0LnZhbHVlPWdlLnNoZWxsfHwiIik7dmFyIFR0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctbGFuZ3VhZ2UiKTtUdCYmKFR0LnZhbHVlPWdlLmxhbmd1YWdlfHwiIik7dmFyIFl0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctc3RydWN0dXJlZC1ydW5uZXIiKTtZdCYmKFl0LnZhbHVlPWdlLnN0cnVjdHVyZWRSdW5uZXJ8fCJjbGkiKTt2YXIgYXQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1pbmhlcml0LWVudiIpO2F0JiYoYXQuY2hlY2tlZD1nZS5pbmhlcml0RW52IT09ITEpLHIuY29uZmlnRGVmYXVsdE1vZGVsPWdlLmRlZmF1bHRNb2RlbHx8IiIsTWkoKSxkbCgpLnRoZW4oZnVuY3Rpb24oKXtNaSgpfSkuY2F0Y2goZnVuY3Rpb24oKXt9KTt2YXIgcWU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNlcnQtc3RhdHVzIik7cWUmJihxZS50ZXh0Q29udGVudD1lLmhhc0NlcnQ/Ilx1NURGMlx1NUI4OVx1ODhDNSBTU0wgXHU4QkMxXHU0RTY2IjoiXHU2NzJBXHU1Qjg5XHU4OEM1XHU4QkMxXHU0RTY2XHVGRjA4XHU0RjdGXHU3NTI4XHU4MUVBXHU3QjdFXHU1NDBEXHU2MjE2IEhUVFBcdUZGMDkiLHFlLnN0eWxlLmNvbG9yPWUuaGFzQ2VydD8idmFyKC0tc3VjY2VzcykiOiJ2YXIoLS10ZXh0LXNlY29uZGFyeSkiKTt2YXIgemU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInByZXNldHMtbGlzdCIpO2lmKHplJiZnZS5jb21tYW5kUHJlc2V0cyl7Zm9yKHZhciBoZT0iIixidD0wO2J0PGdlLmNvbW1hbmRQcmVzZXRzLmxlbmd0aDtidCsrKXt2YXIgcHQ9Z2UuY29tbWFuZFByZXNldHNbYnRdO2hlKz0nPGRpdiBjbGFzcz0icHJlc2V0LWl0ZW0iPjxzcGFuIGNsYXNzPSJwcmVzZXQtbGFiZWwiPicrcChwdC5sYWJlbCkrJzwvc3Bhbj48c3BhbiBjbGFzcz0icHJlc2V0LWRldGFpbCI+JytwKHB0LmNvbW1hbmQpKyhwdC5tb2RlPyIgKCIrcChwdC5tb2RlKSsiKSI6IiIpKyI8L3NwYW4+PC9kaXY+In1oZXx8KGhlPSc8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZS1jb21wYWN0Ij48c3BhbiBjbGFzcz0iZW1wdHktaWNvbiI+XHUyNjk5PC9zcGFuPjxzcGFuPlx1NkNBMVx1NjcwOVx1NTQ3RFx1NEVFNFx1OTg4NFx1OEJCRTwvc3Bhbj48c3BhbiBjbGFzcz0iaGludCI+XHU1NzI4IGNvbmZpZy5qc29uIFx1NzY4NCBjb21tYW5kUHJlc2V0cyBcdTRFMkRcdTkxNERcdTdGNkU8L3NwYW4+PC9kaXY+JyksemUuaW5uZXJIVE1MPWhlfXZhciB1dD1nZS5jYXJkRGVmYXVsdHN8fHt9LEV0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctY2FyZC1lZGl0IiksTHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1jYXJkLWlubGluZSIpLE9uPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctY2FyZC10ZXJtaW5hbCIpLGZlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctY2FyZC10aGlua2luZyIpLHZ0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctY2FyZC10b29sZ3JvdXAiKTtFdCYmKEV0LmNoZWNrZWQ9dXQuZWRpdENhcmRzPT09ITApLEx0JiYoTHQuY2hlY2tlZD11dC5pbmxpbmVUb29scz09PSEwKSxPbiYmKE9uLmNoZWNrZWQ9dXQudGVybWluYWw9PT0hMCksZmUmJihmZS5jaGVja2VkPXV0LnRoaW5raW5nPT09ITApLHZ0JiYodnQuY2hlY2tlZD11dC50b29sR3JvdXA9PT0hMCl9KS5jYXRjaChmdW5jdGlvbigpe30pfWZ1bmN0aW9uIF9tKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbmZpZy1tZXNzYWdlIik7ZSYmKGUuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksZS50ZXh0Q29udGVudD0iIik7dmFyIHQ9e2hvc3Q6KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctaG9zdCIpfHx7fSkudmFsdWUscG9ydDpOdW1iZXIoKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctcG9ydCIpfHx7fSkudmFsdWUpLGh0dHBzOihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWh0dHBzIil8fHt9KS5jaGVja2VkLGRlZmF1bHRNb2RlOihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLW1vZGUiKXx8e30pLnZhbHVlLGRlZmF1bHRDd2Q6KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctY3dkIil8fHt9KS52YWx1ZSxzaGVsbDooZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1zaGVsbCIpfHx7fSkudmFsdWUsbGFuZ3VhZ2U6KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctbGFuZ3VhZ2UiKXx8e30pLnZhbHVlfHwiIixkZWZhdWx0TW9kZWw6KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctZGVmYXVsdC1tb2RlbCIpfHx7fSkudmFsdWV8fCIiLHN0cnVjdHVyZWRSdW5uZXI6KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctc3RydWN0dXJlZC1ydW5uZXIiKXx8e30pLnZhbHVlfHwiY2xpIixpbmhlcml0RW52Oihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWluaGVyaXQtZW52Iil8fHt9KS5jaGVja2VkIT09ITF9LG49ci5jb25maWcmJnIuY29uZmlnLmRlZmF1bHRNb2RlbHx8IiIsaT10LmRlZmF1bHRNb2RlbHx8IiI7ZmV0Y2goIi9hcGkvc2V0dGluZ3MvY29uZmlnIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeSh0KX0pLnRoZW4oZnVuY3Rpb24oYSl7cmV0dXJuIGEuanNvbigpfSkudGhlbihmdW5jdGlvbihhKXtpZihlJiYoYS5lcnJvcj8oZS50ZXh0Q29udGVudD1hLmVycm9yLGUuc3R5bGUuY29sb3I9InZhcigtLWVycm9yKSIpOihlLnRleHRDb250ZW50PWEucmVzdGFydFJlcXVpcmVkPyJcdTkxNERcdTdGNkVcdTVERjJcdTRGRERcdTVCNThcdUZGMENcdTkwRThcdTUyMDZcdTkwRThcdTdGNzJcdTVCNTdcdTZCQjVcdUZGMDhob3N0L3BvcnQvaHR0cHMvc2hlbGxcdUZGMDlcdTk3MDBcdTg5ODFcdTkxQ0RcdTU0MkZcdTY3MERcdTUyQTFcdTYyNERcdTc1MUZcdTY1NDhcdTMwMDIiOiJcdTkxNERcdTdGNkVcdTVERjJcdTRGRERcdTVCNThcdTMwMDIiLGUuc3R5bGUuY29sb3I9InZhcigtLXN1Y2Nlc3MpIiksZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSksKCFhfHwhYS5lcnJvcikmJihyLmNvbmZpZyYmKHIuY29uZmlnLmRlZmF1bHRNb2RlbD1pKSxyLmNvbmZpZ0RlZmF1bHRNb2RlbD1pLGkhPT1uKSl7ci5jaGF0TW9kZWw9IiI7dHJ5e2xvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCJ3YW5kLWNoYXQtbW9kZWwiKX1jYXRjaHt9Wm4oZ3QoKSl9fSkuY2F0Y2goZnVuY3Rpb24oKXtlJiYoZS50ZXh0Q29udGVudD0iXHU0RkREXHU1QjU4XHU1OTMxXHU4RDI1XHUzMDAyIixlLnN0eWxlLmNvbG9yPSJ2YXIoLS1lcnJvcikiLGUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikpfSl9ZnVuY3Rpb24gTm0oKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGlzcGxheS1tZXNzYWdlIik7ZSYmKGUuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksZS50ZXh0Q29udGVudD0iIik7dmFyIHQ9e2NhcmREZWZhdWx0czp7ZWRpdENhcmRzOiEhKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctY2FyZC1lZGl0Iil8fHt9KS5jaGVja2VkLGlubGluZVRvb2xzOiEhKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctY2FyZC1pbmxpbmUiKXx8e30pLmNoZWNrZWQsdGVybWluYWw6ISEoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1jYXJkLXRlcm1pbmFsIil8fHt9KS5jaGVja2VkLHRoaW5raW5nOiEhKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctY2FyZC10aGlua2luZyIpfHx7fSkuY2hlY2tlZCx0b29sR3JvdXA6ISEoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1jYXJkLXRvb2xncm91cCIpfHx7fSkuY2hlY2tlZH19O2ZldGNoKCIvYXBpL3NldHRpbmdzL2NvbmZpZyIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkodCl9KS50aGVuKGZ1bmN0aW9uKG4pe3JldHVybiBuLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24obil7ZSYmKG4uZXJyb3I/KGUudGV4dENvbnRlbnQ9bi5lcnJvcixlLnN0eWxlLmNvbG9yPSJ2YXIoLS1lcnJvcikiKTooZS50ZXh0Q29udGVudD0iXHU2NjNFXHU3OTNBXHU4QkJFXHU3RjZFXHU1REYyXHU0RkREXHU1QjU4IixlLnN0eWxlLmNvbG9yPSJ2YXIoLS1zdWNjZXNzKSIpLGUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikpLCFuLmVycm9yJiZyLmNvbmZpZyYmKHIuY29uZmlnLmNhcmREZWZhdWx0cz10LmNhcmREZWZhdWx0cyl9KS5jYXRjaChmdW5jdGlvbigpe2UmJihlLnRleHRDb250ZW50PSJcdTRGRERcdTVCNThcdTU5MzFcdThEMjVcdTMwMDIiLGUuc3R5bGUuY29sb3I9InZhcigtLWVycm9yKSIsZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSl9KX1mdW5jdGlvbiBqbSgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZXJ0LWtleS1maWxlIiksdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2VydC1jZXJ0LWZpbGUiKSxuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZXJ0LW1lc3NhZ2UiKTtpZihuJiYobi5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSxuLnRleHRDb250ZW50PSIiKSwhZXx8IWUuZmlsZXN8fCFlLmZpbGVzWzBdfHwhdHx8IXQuZmlsZXN8fCF0LmZpbGVzWzBdKXtuJiYobi50ZXh0Q29udGVudD0iXHU4QkY3XHU5MDA5XHU2MkU5XHU3OUMxXHU5NEE1XHU1NDhDXHU4QkMxXHU0RTY2XHU2NTg3XHU0RUY2XHUzMDAyIixuLnN0eWxlLmNvbG9yPSJ2YXIoLS1lcnJvcikiLG4uY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikpO3JldHVybn12YXIgaT1uZXcgRmlsZVJlYWRlcjtpLm9ubG9hZD1mdW5jdGlvbigpe3ZhciBhPWkucmVzdWx0LHU9bmV3IEZpbGVSZWFkZXI7dS5vbmxvYWQ9ZnVuY3Rpb24oKXt2YXIgcz11LnJlc3VsdDtmZXRjaCgiL2FwaS9zZXR0aW5ncy91cGxvYWQtY2VydCIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkoe2tleTphLGNlcnQ6c30pfSkudGhlbihmdW5jdGlvbihvKXtyZXR1cm4gby5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKG8pe2lmKG4pe2lmKG8uZXJyb3Ipbi50ZXh0Q29udGVudD1vLmVycm9yLG4uc3R5bGUuY29sb3I9InZhcigtLWVycm9yKSI7ZWxzZXtuLnRleHRDb250ZW50PSJcdThCQzFcdTRFNjZcdTVERjJcdTRFMEFcdTRGMjBcdUZGMENcdTkxQ0RcdTU0MkZcdTU0MEVcdTc1MUZcdTY1NDhcdTMwMDIiLG4uc3R5bGUuY29sb3I9InZhcigtLXN1Y2Nlc3MpIjt2YXIgbD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2VydC1zdGF0dXMiKTtsJiYobC50ZXh0Q29udGVudD0iXHU1REYyXHU1Qjg5XHU4OEM1IFNTTCBcdThCQzFcdTRFNjYiLGwuc3R5bGUuY29sb3I9InZhcigtLXN1Y2Nlc3MpIil9bi5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKX19KS5jYXRjaChmdW5jdGlvbigpe24mJihuLnRleHRDb250ZW50PSJcdTRFMEFcdTRGMjBcdTU5MzFcdThEMjVcdTMwMDIiLG4uc3R5bGUuY29sb3I9InZhcigtLWVycm9yKSIsbi5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSl9KX0sdS5yZWFkQXNUZXh0KHQuZmlsZXNbMF0pfSxpLnJlYWRBc1RleHQoZS5maWxlc1swXSl9ZnVuY3Rpb24gRWwoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MtbGF0ZXN0LXZlcnNpb24iKSx0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkby11cGRhdGUtYnV0dG9uIiksbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidXBkYXRlLW1lc3NhZ2UiKTtlJiYoZS50ZXh0Q29udGVudD0iXHU2OEMwXHU2N0U1XHU0RTJELi4uIiksbiYmbi5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSx0JiZ0LmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLGZldGNoKCIvYXBpL2NoZWNrLXVwZGF0ZSIse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKGkpe3JldHVybiBpLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24oaSl7aWYoaS5lcnJvcil7ZSYmKGUudGV4dENvbnRlbnQ9Ilx1NjhDMFx1NjdFNVx1NTkzMVx1OEQyNSIpO3JldHVybn12YXIgYT1pLmNoYW5uZWw9PT0iYmV0YSI7aWYoZSYmKGUudGV4dENvbnRlbnQ9aS5sYXRlc3R8fChhPyJiZXRhIFx1NjcyQVx1NTNEMVx1NUUwMyI6Ii0iKSksIWkubGF0ZXN0KXtuJiYobi50ZXh0Q29udGVudD1hPyJcdTY1RTBcdTZDRDVcdThCRkJcdTUzRDYgbnBtIGJldGEgXHU3MjQ4XHU2NzJDXHUzMDAyIjoiXHU2NUUwXHU2Q0Q1XHU4RkRFXHU2M0E1XHU1MjMwIG5wbSByZWdpc3RyeVx1MzAwMiIsbi5zdHlsZS5jb2xvcj0idmFyKC0tZXJyb3IpIixuLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpKTtyZXR1cm59aS51cGRhdGVBdmFpbGFibGUmJnQmJih0LnRleHRDb250ZW50PWE/Ilx1NjZGNFx1NjVCMFx1NTIzMCBCZXRhIjoiXHU2NkY0XHU2NUIwXHU1MjMwXHU2NzAwXHU2NUIwXHU3MjQ4Iix0LmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpKSwhaS51cGRhdGVBdmFpbGFibGUmJm4mJihuLnRleHRDb250ZW50PWE/Ilx1NURGMlx1NjYyRlx1NjcwMFx1NjVCMCBCZXRhIFx1NzI0OFx1NjcyQ1x1MzAwMiI6Ilx1NURGMlx1NjYyRlx1NjcwMFx1NjVCMFx1NzI0OFx1NjcyQ1x1MzAwMiIsbi5zdHlsZS5jb2xvcj0idmFyKC0tc3VjY2VzcykiLG4uY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikpfSkuY2F0Y2goZnVuY3Rpb24oKXtlJiYoZS50ZXh0Q29udGVudD0iXHU2OEMwXHU2N0U1XHU1OTMxXHU4RDI1Iil9KX1mdW5jdGlvbiBSbSgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1cGRhdGUtbWVzc2FnZSIpLHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRvLXVwZGF0ZS1idXR0b24iKTt0JiYodC5kaXNhYmxlZD0hMCxlJiYoZS50ZXh0Q29udGVudD0iXHU2QjYzXHU1NzI4XHU2NkY0XHU2NUIwXHVGRjBDXHU4QkY3XHU3QTBEXHU1MDE5Li4uIixlLnN0eWxlLmNvbG9yPSJ2YXIoLS10ZXh0LXNlY29uZGFyeSkiLGUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikpLGZldGNoKCIvYXBpL3VwZGF0ZSIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gbi5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKG4pe2lmKG4uZXJyb3Ipe2UmJihlLnRleHRDb250ZW50PW4uZXJyb3IsZS5zdHlsZS5jb2xvcj0idmFyKC0tZXJyb3IpIixlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpKSx0LmRpc2FibGVkPSExO3JldHVybn1pZihlJiYoZS50ZXh0Q29udGVudD0obi5tZXNzYWdlfHwiXHU2NkY0XHU2NUIwXHU1QjhDXHU2MjEwIikrIlx1RkYwQ1x1NkI2M1x1NTcyOFx1OTFDRFx1NTQyRlx1NjcwRFx1NTJBMVx1MjAyNiIsZS5zdHlsZS5jb2xvcj0idmFyKC0tc3VjY2VzcykiLGUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikpLHQuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksbi5kZXRhY2hlZFVwZGF0ZSlkbigpO2Vsc2UgaWYobi5yZXN0YXJ0UmVxdWlyZWQhPT0hMSlRcyhudWxsLGUpO2Vsc2V7dmFyIGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRvLXJlc3RhcnQtYnV0dG9uIik7aSYmaS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKX19KS5jYXRjaChmdW5jdGlvbigpe2UmJihlLnRleHRDb250ZW50PSJcdTY2RjRcdTY1QjBcdTU5MzFcdThEMjVcdTMwMDIiLGUuc3R5bGUuY29sb3I9InZhcigtLWVycm9yKSIsZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSksdC5kaXNhYmxlZD0hMX0pKX1mdW5jdGlvbiBXbSgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkby1yZXN0YXJ0LWJ1dHRvbiIpLHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1tZXNzYWdlIik7UXMoZSx0KX1mdW5jdGlvbiB6bSgpe2ZldGNoKCIvYXBpL2F1dG8tdXBkYXRlIix7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIGUuanNvbigpfSkudGhlbihmdW5jdGlvbihlKXtpZihlLmFwaylyZXR1cm4gZmV0Y2goIi9hcGkvYW5kcm9pZC1hcGstdXBkYXRlP2N1cnJlbnRWZXJzaW9uPSIrZW5jb2RlVVJJQ29tcG9uZW50KFRuKSx7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIHQuanNvbigpfSkudGhlbihmdW5jdGlvbih0KXtpZighKCF0LnVwZGF0ZUF2YWlsYWJsZXx8IXQuZG93bmxvYWRVcmwpKXRyeXtXYW5kTmF0aXZlLmRvd25sb2FkVXBkYXRlKHQuZG93bmxvYWRVcmwsdC5maWxlTmFtZXx8IndhbmQtdXBkYXRlLmFwayIsdC5zb3VyY2V8fCJsb2NhbCIpfWNhdGNoe319KX0pLmNhdGNoKGZ1bmN0aW9uKCl7fSl9ZnVuY3Rpb24gVW0oKXtjbiYmZmV0Y2goIi9hcGkvYXV0by11cGRhdGUiLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gZS5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKGUpe2lmKGUuZG1nKXJldHVybiBmZXRjaCgiL2FwaS9tYWNvcy1kbWctdXBkYXRlP2N1cnJlbnRWZXJzaW9uPSIrZW5jb2RlVVJJQ29tcG9uZW50KGNuKSx7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIHQuanNvbigpfSkudGhlbihmdW5jdGlvbih0KXtpZighKCF0LnVwZGF0ZUF2YWlsYWJsZXx8IXQuZG93bmxvYWRVcmwpKXRyeXtXYW5kTmF0aXZlLmRvd25sb2FkVXBkYXRlKHQuZG93bmxvYWRVcmwsdC5maWxlTmFtZXx8IndhbmQtdXBkYXRlLmRtZyIsdC5zb3VyY2V8fCJsb2NhbCIpfWNhdGNoe319KX0pLmNhdGNoKGZ1bmN0aW9uKCl7fSl9ZnVuY3Rpb24gZHUoZSx0KXt2YXIgbj17fTtuW2VdPXQsZmV0Y2goIi9hcGkvYXV0by11cGRhdGUiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KG4pfSkudGhlbihmdW5jdGlvbihpKXtyZXR1cm4gaS5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKGkpe3ZhciBhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhdXRvLXVwZGF0ZS13ZWItdG9nZ2xlIiksdT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXV0by11cGRhdGUtYXBrLXRvZ2dsZSIpLHM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF1dG8tdXBkYXRlLWRtZy10b2dnbGUiKTthJiYoYS5jaGVja2VkPSEhaS53ZWIpLHUmJih1LmNoZWNrZWQ9ISFpLmFwaykscyYmKHMuY2hlY2tlZD0hIWkuZG1nKX0pLmNhdGNoKGZ1bmN0aW9uKCl7dmFyIGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF1dG8tdXBkYXRlLSIrZSsiLXRvZ2dsZSIpO2kmJihpLmNoZWNrZWQ9IXQpfSl9ZnVuY3Rpb24gVm0oZSl7ZmV0Y2goIi9hcGkvdXBkYXRlLWNoYW5uZWwiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KHtjaGFubmVsOmV9KX0pLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIHQuanNvbigpfSkudGhlbihmdW5jdGlvbih0KXt2YXIgbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYmV0YS1jaGFubmVsLXRvZ2dsZSIpO24mJihuLmNoZWNrZWQ9dC5jaGFubmVsPT09ImJldGEiKSxFbCgpfSkuY2F0Y2goZnVuY3Rpb24oKXt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYmV0YS1jaGFubmVsLXRvZ2dsZSIpO3QmJih0LmNoZWNrZWQ9ZSE9PSJiZXRhIil9KX1mdW5jdGlvbiBGbChlKXtmb3IodmFyIHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnNldHRpbmdzLWFwcC1pY29uLW9wdGlvbiIpLG49MDtuPHQubGVuZ3RoO24rKyl7dmFyIGk9dFtuXS5nZXRBdHRyaWJ1dGUoImRhdGEtaWNvbiIpPT09ZTt0W25dLmNsYXNzTGlzdC50b2dnbGUoInNlbGVjdGVkIixpKSx0W25dLnNldEF0dHJpYnV0ZSgiYXJpYS1wcmVzc2VkIixpPyJ0cnVlIjoiZmFsc2UiKX19ZnVuY3Rpb24gRW4oKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm90aWZpY2F0aW9uLXBlcm1pc3Npb24tc3RhdHVzIiksdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm90aWZpY2F0aW9uLXJlcXVlc3QtYnRuIiksbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm90aWZpY2F0aW9uLXJlc2V0LWJ0biIpLGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5vdGlmaWNhdGlvbi10ZXN0LW1lc3NhZ2UiKTtpZihlKXt2YXIgYT1kaSgpO2lmKGE9PT1udWxsKXtpZih0eXBlb2YgTm90aWZpY2F0aW9uPiJ1Iil7ZS50ZXh0Q29udGVudD0iXHU0RTBEXHU2NTJGXHU2MzAxIixlLnN0eWxlLmNvbG9yPSJ2YXIoLS1mZy1tdXRlZCkiLHQmJnQuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksbiYmbi5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKTtyZXR1cm59YT1Ob3RpZmljYXRpb24ucGVybWlzc2lvbn1hPT09ImdyYW50ZWQiPyhlLnRleHRDb250ZW50PSJcdTVERjJcdTYzODhcdTY3NDMgXHUyNzEzIixlLnN0eWxlLmNvbG9yPSJ2YXIoLS1zdWNjZXNzKSIsdCYmdC5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSxuJiZuLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpKTphPT09ImRlbmllZCI/KGUudGV4dENvbnRlbnQ9Ilx1NURGMlx1NjJEMlx1N0VERCIsZS5zdHlsZS5jb2xvcj0idmFyKC0tZGFuZ2VyKSIsdCYmdC5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSxuJiZuLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpKTooZS50ZXh0Q29udGVudD0iXHU2NzJBXHU2Mzg4XHU2NzQzIixlLnN0eWxlLmNvbG9yPSJ2YXIoLS13YXJuaW5nKSIsdCYmdC5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSxuJiZuLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpKX19ZnVuY3Rpb24gS20oKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm90aWZpY2F0aW9uLXRlc3QtbWVzc2FnZSIpO2lmKGplKXt3aW5kb3cuX29uTmF0aXZlUGVybWlzc2lvblJlc3VsdD1mdW5jdGlvbih0KXtFbigpLGUmJih0PT09ImdyYW50ZWQiPyhlLnRleHRDb250ZW50PSJcdTI3MTMgXHU1REYyXHU2Mzg4XHU2NzQzIixlLnN0eWxlLmNvbG9yPSJ2YXIoLS1zdWNjZXNzKSIpOihlLnRleHRDb250ZW50PSJcdTI3MTcgXHU2NzJBXHU2Mzg4XHU2NzQzXHVGRjBDXHU4QkY3XHU1NzI4XHU3Q0ZCXHU3RURGXHU4QkJFXHU3RjZFXHU0RTJEXHU1RjAwXHU1NDJGIFdhbmQgXHU3Njg0XHU5MDFBXHU3N0U1XHU2NzQzXHU5NjUwIixlLnN0eWxlLmNvbG9yPSJ2YXIoLS1kYW5nZXIpIiksZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSksZGVsZXRlIHdpbmRvdy5fb25OYXRpdmVQZXJtaXNzaW9uUmVzdWx0fTt0cnl7V2FuZE5hdGl2ZS5yZXF1ZXN0UGVybWlzc2lvbigpfWNhdGNoe31yZXR1cm59dHlwZW9mIE5vdGlmaWNhdGlvbj4idSJ8fE5vdGlmaWNhdGlvbi5yZXF1ZXN0UGVybWlzc2lvbigpLnRoZW4oZnVuY3Rpb24odCl7aWYoRW4oKSx0PT09ImdyYW50ZWQiKWUmJihlLnRleHRDb250ZW50PSJcdTI3MTMgXHU1REYyXHU2Mzg4XHU2NzQzIixlLnN0eWxlLmNvbG9yPSJ2YXIoLS1zdWNjZXNzKSIsZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSk7ZWxzZSBpZih0PT09ImRlbmllZCImJmUpe3ZhciBuPWxvY2F0aW9uLm9yaWdpbjtlLmlubmVySFRNTD0nXHU2RDRGXHU4OUM4XHU1NjY4XHU1REYyXHU2MkU2XHU2MjJBXHU2Mzg4XHU2NzQzXHU1RjM5XHU3QTk3XHVGRjBDXHU4QkY3XHU2MjRCXHU1MkE4XHU5MUNEXHU3RjZFXHVGRjFBPGJyPjxzcGFuIHN0eWxlPSJkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NHB4O21hcmdpbjo0cHggMCI+XHUyNDYwIFx1NzBCOVx1NTFGQlx1NTczMFx1NTc0MFx1NjgwRlx1NURFNlx1NEZBN1x1NzY4NCA8c3BhbiBzdHlsZT0iZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt3aWR0aDoxNnB4O2hlaWdodDoxNnB4O2JvcmRlci1yYWRpdXM6NTAlO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyKTtmb250LXNpemU6MTFweDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGUiPmk8L3NwYW4+IFx1NjIxNlx1OTUwMVx1NTZGRVx1NjgwNzwvc3Bhbj48YnI+XHUyNDYxIFx1NjI3RVx1NTIzMFx1MzAwQ1x1OTAxQVx1NzdFNVx1MzAwRFx1MjE5MiBcdTY1MzlcdTRFM0FcdTMwMENcdTUxNDFcdThCQjhcdTMwMEQ8YnI+XHUyNDYyIFx1NTIzN1x1NjVCMFx1OTg3NVx1OTc2Mlx1NTM3M1x1NTNFRicsZS5zdHlsZS5jb2xvcj0idmFyKC0tZmctbXV0ZWQpIixlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpfX0pfWZ1bmN0aW9uIHdsKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5vdGlmaWNhdGlvbi10ZXN0LWRlbGF5LWJ0biIpO2UmJihlLmRpc2FibGVkPSExLGUudGV4dENvbnRlbnQ9IjEwIFx1NzlEMlx1NTQwRVx1NTNEMVx1OTAwMSIpfWZ1bmN0aW9uIEptKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5vdGlmaWNhdGlvbi10ZXN0LW1lc3NhZ2UiKTtyLmRlbGF5ZWROb3RpZmljYXRpb25UaW1lciYmKGNsZWFyVGltZW91dChyLmRlbGF5ZWROb3RpZmljYXRpb25UaW1lciksci5kZWxheWVkTm90aWZpY2F0aW9uVGltZXI9bnVsbCk7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5vdGlmaWNhdGlvbi10ZXN0LWRlbGF5LWJ0biIpO3QmJih0LmRpc2FibGVkPSEwLHQudGV4dENvbnRlbnQ9Ilx1NURGMlx1NUI4OVx1NjM5Mlx1RkYwODEwc1x1RkYwOSIpLGUmJihlLmlubmVySFRNTD0iXHU1REYyXHU1Qjg5XHU2MzkyIDEwIFx1NzlEMlx1NTQwRVx1NTNEMVx1OTAwMVx1NkQ0Qlx1OEJENVx1OTAxQVx1NzdFNVx1RkYwQ1x1OEJGN1x1NTIwN1x1NTIzMFx1NTQwRVx1NTNGMFx1N0I0OVx1NUY4NVx1MzAwMiIsZS5zdHlsZS5jb2xvcj0idmFyKC0tdGV4dC1zZWNvbmRhcnkpIixlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpKSxyLmRlbGF5ZWROb3RpZmljYXRpb25UaW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ci5kZWxheWVkTm90aWZpY2F0aW9uVGltZXI9bnVsbCx3bCgpLENsKCl9LDFlNCl9ZnVuY3Rpb24gQ2woKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm90aWZpY2F0aW9uLXRlc3QtbWVzc2FnZSIpLHQ9W107ci5kZWxheWVkTm90aWZpY2F0aW9uVGltZXImJihjbGVhclRpbWVvdXQoci5kZWxheWVkTm90aWZpY2F0aW9uVGltZXIpLHIuZGVsYXllZE5vdGlmaWNhdGlvblRpbWVyPW51bGwsd2woKSk7dmFyIG49T2YoKTt0LnB1c2gobj8iXHUyNzEzIFx1NjNEMFx1NzkzQVx1OTdGMyI6Ilx1MjcxNyBcdTYzRDBcdTc5M0FcdTk3RjNcdUZGMDhcdTY1RTBcdTZDRDVcdTY0QURcdTY1M0VcdUZGMDkiKTt2YXIgaT1yLm5vdGlmQnViYmxlO2lmKGJhKHt0aXRsZToiXHU2RDRCXHU4QkQ1XHU5MDFBXHU3N0U1Iixib2R5OiJcdThGRDlcdTY2MkZcdTRFMDBcdTY3NjFcdTZENEJcdThCRDVcdTkwMUFcdTc3RTVcdTMwMDIiLHR5cGU6ImluZm8iLGljb246Ilx1MjY2QSIsZHVyYXRpb246NWUzLHBsYXlTb3VuZDohMX0pLHQucHVzaChpPyJcdTI3MTMgXHU1RTk0XHU3NTI4XHU1MTg1XHU2QzE0XHU2Q0UxIjoiXHUyMDEzIFx1NUU5NFx1NzUyOFx1NTE4NVx1NkMxNFx1NkNFMVx1RkYwOFx1NURGMlx1NTE3M1x1OTVFRFx1RkYwOSIpLGplKXt2YXIgYT1kaSgpO2lmKGE9PT0iZ3JhbnRlZCIpdHJ5e1dhbmROYXRpdmUuc2VuZE5vdGlmaWNhdGlvbigiV2FuZCBcdTZENEJcdThCRDVcdTkwMUFcdTc3RTUiLCJcdTdDRkJcdTdFREZcdTkwMUFcdTc3RTVcdTVERjJcdTZCNjNcdTVFMzhcdTVERTVcdTRGNUNcdTMwMDIiLCJ3YW5kLXRlc3QiKSx0LnB1c2goIlx1MjcxMyBcdTdDRkJcdTdFREZcdTkwMUFcdTc3RTUiKX1jYXRjaHt0LnB1c2goIlx1MjcxNyBcdTdDRkJcdTdFREZcdTkwMUFcdTc3RTVcdUZGMDhcdTUzRDFcdTkwMDFcdTU5MzFcdThEMjVcdUZGMDkiKX1lbHNlIGlmKGE9PT0iZGVuaWVkIil0LnB1c2goIlx1MjcxNyBcdTdDRkJcdTdFREZcdTkwMUFcdTc3RTVcdUZGMDhcdTVERjJcdTYyRDJcdTdFRERcdUZGMENcdThCRjdcdTU3MjhcdTdDRkJcdTdFREZcdThCQkVcdTdGNkVcdTRFMkRcdTVGMDBcdTU0MkZcdUZGMDkiKTtlbHNle3dpbmRvdy5fb25OYXRpdmVQZXJtaXNzaW9uUmVzdWx0PWZ1bmN0aW9uKG8pe2lmKEVuKCksbz09PSJncmFudGVkIil0cnl7V2FuZE5hdGl2ZS5zZW5kTm90aWZpY2F0aW9uKCJXYW5kIFx1NkQ0Qlx1OEJENVx1OTAxQVx1NzdFNSIsIlx1N0NGQlx1N0VERlx1OTAxQVx1NzdFNVx1NURGMlx1NkI2M1x1NUUzOFx1NURFNVx1NEY1Q1x1MzAwMiIsIndhbmQtdGVzdCIpLHQucHVzaCgiXHUyNzEzIFx1N0NGQlx1N0VERlx1OTAxQVx1NzdFNVx1RkYwOFx1NURGMlx1NjM4OFx1Njc0M1x1RkYwOSIpfWNhdGNoe3QucHVzaCgiXHUyNzE3IFx1N0NGQlx1N0VERlx1OTAxQVx1NzdFNVx1RkYwOFx1NTNEMVx1OTAwMVx1NTkzMVx1OEQyNVx1RkYwOSIpfWVsc2UgdC5wdXNoKCJcdTI3MTcgXHU3Q0ZCXHU3RURGXHU5MDFBXHU3N0U1XHVGRjA4XHU2NzJBXHU2Mzg4XHU2NzQzXHVGRjA5Iik7bnIoZSx0KSxkZWxldGUgd2luZG93Ll9vbk5hdGl2ZVBlcm1pc3Npb25SZXN1bHR9O3RyeXtXYW5kTmF0aXZlLnJlcXVlc3RQZXJtaXNzaW9uKCl9Y2F0Y2h7fXJldHVybn1ucihlLHQpO3JldHVybn1pZih0eXBlb2YgTm90aWZpY2F0aW9uPiJ1Iil7dC5wdXNoKCJcdTIwMTMgXHU3Q0ZCXHU3RURGXHU5MDFBXHU3N0U1XHVGRjA4XHU0RTBEXHU2NTJGXHU2MzAxXHVGRjA5IiksbnIoZSx0KTtyZXR1cm59dmFyIHU9Tm90aWZpY2F0aW9uLnBlcm1pc3Npb247aWYodT09PSJncmFudGVkIil7dHJ5e3ZhciBzPW5ldyBOb3RpZmljYXRpb24oIldhbmQgXHU2RDRCXHU4QkQ1XHU5MDFBXHU3N0U1Iix7Ym9keToiXHU3Q0ZCXHU3RURGXHU5MDFBXHU3N0U1XHU1REYyXHU2QjYzXHU1RTM4XHU1REU1XHU0RjVDXHUzMDAyIixpY29uOiIvZmF2aWNvbi5pY28iLHRhZzoid2FuZC10ZXN0In0pO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtzLmNsb3NlKCl9LDVlMyksdC5wdXNoKCJcdTI3MTMgXHU3Q0ZCXHU3RURGXHU5MDFBXHU3N0U1Iil9Y2F0Y2h7dC5wdXNoKCJcdTI3MTcgXHU3Q0ZCXHU3RURGXHU5MDFBXHU3N0U1XHVGRjA4XHU1M0QxXHU5MDAxXHU1OTMxXHU4RDI1XHVGRjBDXHU1M0VGXHU4MEZEXHU5NzAwXHU4OTgxIEhUVFBTXHVGRjA5Iil9bnIoZSx0KX1lbHNlIHU9PT0iZGVuaWVkIj8odC5wdXNoKCJcdTI3MTcgXHU3Q0ZCXHU3RURGXHU5MDFBXHU3N0U1XHVGRjA4XHU1REYyXHU2MkQyXHU3RUREXHVGRjA5IiksbnIoZSx0KSk6Tm90aWZpY2F0aW9uLnJlcXVlc3RQZXJtaXNzaW9uKCkudGhlbihmdW5jdGlvbihvKXtFbigpLG89PT0iZ3JhbnRlZCI/dC5wdXNoKCJcdTI3MTMgXHU3Q0ZCXHU3RURGXHU5MDFBXHU3N0U1XHVGRjA4XHU1REYyXHU2Mzg4XHU2NzQzXHVGRjA5Iik6dC5wdXNoKCJcdTI3MTcgXHU3Q0ZCXHU3RURGXHU5MDFBXHU3N0U1XHVGRjA4XHU2NzJBXHU2Mzg4XHU2NzQzXHVGRjA5IiksbnIoZSx0KX0pfWZ1bmN0aW9uIG5yKGUsdCl7aWYoZSl7ZS5pbm5lckhUTUw9dC5tYXAoZnVuY3Rpb24oaSl7cmV0dXJuIHAoaSl9KS5qb2luKCI8YnI+Iik7dmFyIG49dC5ldmVyeShmdW5jdGlvbihpKXtyZXR1cm4gaS5pbmRleE9mKCJcdTI3MTMiKT09PTB8fGkuaW5kZXhPZigiXHUyMDEzIik9PT0wfSk7ZS5zdHlsZS5jb2xvcj1uPyJ2YXIoLS1zdWNjZXNzKSI6InZhcigtLXdhcm5pbmcpIixlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpfX1mdW5jdGlvbiBodChlKXtpZighZXx8dHlwZW9mIGUhPSJvYmplY3QifHwhci50ZXJtaW5hbClyZXR1cm4gZTt0cnl7dHlwZW9mIHIudGVybWluYWwucmVtZWFzdXJlPT0iZnVuY3Rpb24iJiZyLnRlcm1pbmFsLnJlbWVhc3VyZSgpfWNhdGNoe312YXIgdD1yLnRlcm1pbmFsLmNvbHMsbj1yLnRlcm1pbmFsLnJvd3M7cmV0dXJuIHR5cGVvZiB0PT0ibnVtYmVyIiYmdHlwZW9mIG49PSJudW1iZXIiJiZOdW1iZXIuaXNGaW5pdGUodCkmJk51bWJlci5pc0Zpbml0ZShuKSYmdD4wJiZuPjAmJihlLmNvbHM9dCxlLnJvd3M9biksZX1mdW5jdGlvbiBCbCgpe3JldHVybiByLnRlcm1pbmFsJiZyLnRlcm1pbmFsLmNvbHM/UHJvbWlzZS5yZXNvbHZlKCk6bmV3IFByb21pc2UoZnVuY3Rpb24oZSl7dmFyIHQ9ITEsbj1mdW5jdGlvbigpe3R8fCh0PSEwLGUoKSl9LGk9c2V0VGltZW91dChuLDJlMyk7dHJ5e0puKCl9Y2F0Y2h7fXJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe3JlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe3IudGVybWluYWwmJnIudGVybWluYWwuY29scyYmKGNsZWFyVGltZW91dChpKSxuKCkpfSl9KX0pfWZ1bmN0aW9uIERsKCl7dmFyIGU9dHQoKSx0PWV0KCksbj1TdChlLHIuY29uZmlnJiZyLmNvbmZpZy5kZWZhdWx0TW9kZT9yLmNvbmZpZy5kZWZhdWx0TW9kZToiZGVmYXVsdCIpO3IucHJlZmVycmVkQ29tbWFuZD1lLHIuY2hhdE1vZGU9U3QoZSxyLmNoYXRNb2RlKSxCbCgpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gZmV0Y2goIi9hcGkvY29tbWFuZHMiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KGh0KHtjb21tYW5kOmUscHJvdmlkZXI6ZSxjd2Q6dCxtb2RlOm59KSl9KX0pLnRoZW4oZnVuY3Rpb24oaSl7cmV0dXJuIGkuanNvbigpfSkudGhlbihmdW5jdGlvbihpKXtpZihpLmVycm9yKXtrKGkuZXJyb3IsImVycm9yIik7cmV0dXJufXJldHVybiByLnNlbGVjdGVkSWQ9aS5pZCx3ZSgpLHIuZHJhZnRzW2kuaWRdPSIiLEF0KCksUnQoKX0pLnRoZW4oZnVuY3Rpb24oKXtqdCghMCl9KS5jYXRjaChmdW5jdGlvbigpe2soIlx1NjVFMFx1NkNENVx1NTQyRlx1NTJBOFx1NEYxQVx1OEJERFx1MzAwMiIsImVycm9yIil9KX12YXIgTnI9ITE7ZnVuY3Rpb24gR20oKXtpZighTnIpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjd2QiKSx0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtb2RhbC1lcnJvciIpLG49dHQoKSxpPXIuc2Vzc2lvbkNyZWF0ZUtpbmR8fCJzdHJ1Y3R1cmVkIixhPXIuc2Vzc2lvbkNyZWF0ZVdvcmt0cmVlPT09ITA7Y2kodCk7dmFyIHU9ZXQoKSxzPShlP2UudmFsdWUudHJpbSgpOiIiKXx8dSxvPVN0KG4sci5tb2RlVmFsdWUpO2lmKGk9PT0ic3RydWN0dXJlZCIpe1ltKHMsbyxhLHQpO3JldHVybn1RbShuLHMsbyxhLHQpfX1mdW5jdGlvbiBZbShlLHQsbixpKXt2YXIgYT1yLnNlc3Npb25Ub29sPT09ImNvZGV4Ij8iY29kZXgiOiJjbGF1ZGUiO3JldHVybiBOcj0hMCxyLm1vZGVWYWx1ZT10LHIuY2hhdE1vZGU9dCxyLnNlc3Npb25Ub29sPWEsci5wcmVmZXJyZWRDb21tYW5kPWEseGkoKSxabihndCgpKSx2bCh2b2lkIDAsZSx0LG4pLnRoZW4oZnVuY3Rpb24odSl7cmV0dXJuIGVuKGUpLHluKCksVXQoKSx1fSkudGhlbihmdW5jdGlvbigpe2p0KCEwKX0pLmNhdGNoKGZ1bmN0aW9uKHUpe1BlKGksdSYmdS5tZXNzYWdlfHwiXHU2NUUwXHU2Q0Q1XHU1NDJGXHU1MkE4XHU3RUQzXHU2Nzg0XHU1MzE2XHU0RjFBXHU4QkREXHVGRjBDXHU4QkY3XHU3ODZFXHU4QkE0IENsYXVkZSBcdTVERjJcdTZCNjNcdTc4NkVcdTVCODlcdTg4QzVcdTMwMDIiKX0pLmZpbmFsbHkoZnVuY3Rpb24oKXtOcj0hMX0pfWZ1bmN0aW9uIFFtKGUsdCxuLGksYSl7TnI9ITAsci5tb2RlVmFsdWU9bixyLmNoYXRNb2RlPW4sci5zZXNzaW9uVG9vbD1lLHIucHJlZmVycmVkQ29tbWFuZD1lLHhpKCksQmwoKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGZldGNoKCIvYXBpL2NvbW1hbmRzIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeShodCh7Y29tbWFuZDplLHByb3ZpZGVyOmUsY3dkOnQsbW9kZTpuLHdvcmt0cmVlRW5hYmxlZDppfSkpfSl9KS50aGVuKGZ1bmN0aW9uKHUpe3JldHVybiB1Lmpzb24oKX0pLnRoZW4oZnVuY3Rpb24odSl7aWYodS5lcnJvcil7UGUoYSx1LmVycm9yKTtyZXR1cm59cmV0dXJuIHIuc2VsZWN0ZWRJZD11LmlkLHdlKCksZW4odCksci5kcmFmdHNbdS5pZF09IiIsQXQoKSx5bigpLFV0KCksUnQoKX0pLnRoZW4oZnVuY3Rpb24oKXtyLnNlbGVjdGVkSWQ/enQoci5zZWxlY3RlZElkKTpqdCghMCl9KS5jYXRjaChmdW5jdGlvbigpe1BlKGEsZT09PSJjb2RleCI/Ilx1NjVFMFx1NkNENVx1NTQyRlx1NTJBOCBDb2RleCBcdTRGMUFcdThCRERcdUZGMENcdThCRjdcdTc4NkVcdThCQTQgY29kZXggXHU1REYyXHU2QjYzXHU3ODZFXHU1Qjg5XHU4OEM1XHU1RTc2XHU1M0VGXHU1NzI4XHU3RUM4XHU3QUVGXHU0RTJEXHU2MjY3XHU4ODRDXHUzMDAyIjoiXHU2NUUwXHU2Q0Q1XHU1NDJGXHU1MkE4IENsYXVkZSBcdTRGMUFcdThCRERcdUZGMENcdThCRjdcdTc4NkVcdThCQTQgQ2xhdWRlIFx1NURGMlx1NkI2M1x1Nzg2RVx1NUI4OVx1ODhDNVx1MzAwMiIpfSkuZmluYWxseShmdW5jdGlvbigpe05yPSExfSl9ZnVuY3Rpb24gJG0oKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYmxhbmstY2hhdC1jd2QiKTtlJiYoZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsa2wpLGUuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsZnVuY3Rpb24odCl7KHQua2V5PT09IkVudGVyInx8dC5rZXk9PT0iICIpJiYodC5wcmV2ZW50RGVmYXVsdCgpLGtsKCkpfSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKHQpe3ZhciBuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJibGFuay1jaGF0LWN3ZC1kcm9wZG93biIpO2lmKCEoIW58fG4uY2xhc3NMaXN0LmNvbnRhaW5zKCJoaWRkZW4iKSkmJiF0LnRhcmdldC5jbG9zZXN0KCIuYmxhbmstY2hhdC1jd2Qtd3JhcCIpKXtuLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpO3ZhciBpPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJibGFuay1jaGF0LWN3ZC1hcnJvdyIpO2kmJihpLnRleHRDb250ZW50PSJcdTI1QkMiKX19KSl9ZnVuY3Rpb24ga2woKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYmxhbmstY2hhdC1jd2QtZHJvcGRvd24iKSx0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJibGFuay1jaGF0LWN3ZC1hcnJvdyIpO2lmKGUpe3ZhciBuPWUuY2xhc3NMaXN0LmNvbnRhaW5zKCJoaWRkZW4iKTtuPyhYbShlKSxlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLHQmJih0LnRleHRDb250ZW50PSJcdTI1QjIiKSk6KGUuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksdCYmKHQudGV4dENvbnRlbnQ9Ilx1MjVCQyIpKX19ZnVuY3Rpb24gWG0oZSl7dmFyIHQ9c24oKTtlLmlubmVySFRNTD0nPGRpdiBjbGFzcz0iYmxhbmstY2hhdC1jd2QtbG9hZGluZyI+XHU1MkEwXHU4RjdEXHU0RTJELi4uPC9kaXY+JyxkYShmdW5jdGlvbihuKXt2YXIgaT0iIixhPXIud29ya2luZ0Rpcnx8dDtpZihpKz0nPGRpdiBjbGFzcz0iYmxhbmstY2hhdC1jd2QtaXRlbScrKGE9PT10PyIgYWN0aXZlIjoiIikrJyIgZGF0YS1wYXRoPSInK3AodCkrJyI+PHNwYW4gY2xhc3M9ImJsYW5rLWNoYXQtY3dkLWl0ZW0tbGFiZWwiPlx1OUVEOFx1OEJBNDwvc3Bhbj4nK2x0KHQsImJsYW5rLWNoYXQtY3dkLWl0ZW0tcGF0aCIpKyI8L2Rpdj4iLG4ubGVuZ3RoKXt2YXIgdT17fTt1W3RdPSEwLG4uZm9yRWFjaChmdW5jdGlvbihzKXt1W3MucGF0aF18fCh1W3MucGF0aF09ITAsaSs9JzxkaXYgY2xhc3M9ImJsYW5rLWNoYXQtY3dkLWl0ZW0nKyhhPT09cy5wYXRoPyIgYWN0aXZlIjoiIikrJyIgZGF0YS1wYXRoPSInK3Aocy5wYXRoKSsnIj4nK2x0KHMucGF0aCwiYmxhbmstY2hhdC1jd2QtaXRlbS1wYXRoIikrIjwvZGl2PiIpfSl9ZS5pbm5lckhUTUw9aSxLdChlKSxlLnF1ZXJ5U2VsZWN0b3JBbGwoIi5ibGFuay1jaGF0LWN3ZC1pdGVtIikuZm9yRWFjaChmdW5jdGlvbihzKXtzLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihvKXtvLnN0b3BQcm9wYWdhdGlvbigpO3ZhciBsPXMuZGF0YXNldC5wYXRoO3Iud29ya2luZ0Rpcj1sO3RyeXtsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgid2FuZC13b3JraW5nLWRpciIsbCl9Y2F0Y2h7fXZhciBjPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJibGFuay1jaGF0LWN3ZC1wYXRoIik7YnUoYyxsKSxlLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpO3ZhciBmPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJibGFuay1jaGF0LWN3ZC1hcnJvdyIpO2YmJihmLnRleHRDb250ZW50PSJcdTI1QkMiKTt2YXIgZD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZm9sZGVyLXBpY2tlci1pbnB1dCIpO2QmJihkLnZhbHVlPWwpfSl9KX0pfWZ1bmN0aW9uIFptKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlY2VudC1wYXRocy1idWJibGVzIik7ZSYmZGEoZnVuY3Rpb24odCl7aWYoIXQubGVuZ3RoKXtlLmlubmVySFRNTD0iIjtyZXR1cm59ZS5pbm5lckhUTUw9dC5tYXAoZnVuY3Rpb24obil7cmV0dXJuJzxidXR0b24gY2xhc3M9InJlY2VudC1wYXRoLWJ1YmJsZSIgZGF0YS1wYXRoPSInK3Aobi5wYXRoKSsnIiB0aXRsZT0iJytwKG4ucGF0aCkrJyI+JytsdChuLnBhdGgsInJlY2VudC1wYXRoLWJ1YmJsZS1wYXRoIikrIjwvYnV0dG9uPiJ9KS5qb2luKCIiKSxLdChlKSxlLnF1ZXJ5U2VsZWN0b3JBbGwoIi5yZWNlbnQtcGF0aC1idWJibGUiKS5mb3JFYWNoKGZ1bmN0aW9uKG4pe24uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7dmFyIGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImN3ZCIpO2kmJihpLnZhbHVlPW4uZGF0YXNldC5wYXRofHwiIixyLmN3ZFZhbHVlPW4uZGF0YXNldC5wYXRofHwiIil9KX0pfSl9ZnVuY3Rpb24gQWwoKXtyLnN1Z2dlc3Rpb25UaW1lciYmY2xlYXJUaW1lb3V0KHIuc3VnZ2VzdGlvblRpbWVyKSxyLnN1Z2dlc3Rpb25UaW1lcj1zZXRUaW1lb3V0KGVnLDEyMCl9ZnVuY3Rpb24gZWcoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2Vzc2lvbi1tb2RhbCIpO2lmKGUmJmUuY2xhc3NMaXN0LmNvbnRhaW5zKCJoaWRkZW4iKSl7cnIoKTtyZXR1cm59dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImN3ZCIpO3QmJmZldGNoKCIvYXBpL3BhdGgtc3VnZ2VzdGlvbnM/cT0iK2VuY29kZVVSSUNvbXBvbmVudCh0LnZhbHVlLnRyaW0oKSkse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKG4pe3JldHVybiBuLmpzb24oKX0pLnRoZW4odGcpLmNhdGNoKHJyKX1mdW5jdGlvbiB0ZyhlKXt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY3dkLXN1Z2dlc3Rpb25zIik7aWYoIXR8fCFlLmxlbmd0aCl7cnIoKTtyZXR1cm59dC5pbm5lckhUTUw9ZS5tYXAoZnVuY3Rpb24obil7cmV0dXJuJzxidXR0b24gY2xhc3M9InN1Z2dlc3Rpb24taXRlbSIgZGF0YS1wYXRoPSInK3Aobi5wYXRoKSsnIj48c3Ryb25nPicrcChuLm5hbWUpKyI8L3N0cm9uZz48c21hbGw+IitsdChuLnBhdGgsInN1Z2dlc3Rpb24taXRlbS1wYXRoIikrIjwvc21hbGw+PC9idXR0b24+In0pLmpvaW4oIiIpLEt0KHQpLHQucXVlcnlTZWxlY3RvckFsbCgiLnN1Z2dlc3Rpb24taXRlbSIpLmZvckVhY2goZnVuY3Rpb24obil7bi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXtkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY3dkIikudmFsdWU9bi5kYXRhc2V0LnBhdGh8fCIiLHIuY3dkVmFsdWU9bi5kYXRhc2V0LnBhdGh8fCIiLHJyKCl9KX0pLHQuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIil9ZnVuY3Rpb24gcnIoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY3dkLXN1Z2dlc3Rpb25zIik7ZSYmKGUuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksZS5pbm5lckhUTUw9IiIpfWZ1bmN0aW9uIG5nKGUpe2lmKCFlLmlzQ29tcG9zaW5nKXtpZihwbyhlKSl7TWEoZSk7cmV0dXJufWlmKGUua2V5PT09IkVudGVyIil7aWYoZS5zaGlmdEtleSl7ZS5wcmV2ZW50RGVmYXVsdCgpO3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dC1ib3giKTtpZih0KXt2YXIgbj10LnNlbGVjdGlvblN0YXJ0fHwwLGk9dC52YWx1ZSxhPWkuc2xpY2UoMCxuKStgCmAraS5zbGljZShuKTt0LnZhbHVlPWEsdC5zZWxlY3Rpb25TdGFydD1uKzEsdC5zZWxlY3Rpb25FbmQ9bisxLG90KGEsITApLF90KHQpfXJldHVybn1lLnByZXZlbnREZWZhdWx0KCk7dmFyIHU9ISEoZS5tZXRhS2V5fHxlLmN0cmxLZXkpO3JvKHU/e2ludGVycnVwdDohMH06dm9pZCAwKTtyZXR1cm59aWYoZS5rZXk9PT0iQmFja3NwYWNlIil7c2V0VGltZW91dChmdW5jdGlvbigpe3ZhciBtPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dC1ib3giKTttJiZvdChtLnZhbHVlLCEwKX0sMCk7cmV0dXJufWlmKGUua2V5PT09IlRhYiIpe2UucHJldmVudERlZmF1bHQoKTt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wdXQtYm94Iik7aWYodCl7dmFyIG49dC5zZWxlY3Rpb25TdGFydHx8MCxpPXQudmFsdWUsYT1pLnNsaWNlKDAsbikrIgkiK2kuc2xpY2Uobik7dC52YWx1ZT1hLG90KGEsITApfXJldHVybn1pZihlLmtleT09PSJFc2NhcGUiKXtlLnByZXZlbnREZWZhdWx0KCk7dmFyIHM9Z3QoKTt1ZShzKT9zJiZzLnN0cnVjdHVyZWRTdGF0ZSYmcy5zdHJ1Y3R1cmVkU3RhdGUuaW5GbGlnaHQmJnFhKCk6d3QoeHIoImVzY2FwZSIpLCJlc2NhcGUiKTtyZXR1cm59aWYoKGUubWV0YUtleXx8ZS5jdHJsS2V5KSYmZS5rZXkudG9Mb3dlckNhc2UoKT09PSJjIil7dmFyIG89ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0LWJveCIpLGw9byYmby5zZWxlY3Rpb25TdGFydCE9PW8uc2VsZWN0aW9uRW5kfHxoaSgpO2lmKGwpcmV0dXJuO3ZhciBjPWd0KCk7aWYodWUoYykpe2UucHJldmVudERlZmF1bHQoKSxjJiZjLnN0cnVjdHVyZWRTdGF0ZSYmYy5zdHJ1Y3R1cmVkU3RhdGUuaW5GbGlnaHQmJnFhKCk7cmV0dXJufWUucHJldmVudERlZmF1bHQoKSx3dCh4cigiY3RybF9jIiksImN0cmxfYyIpO3JldHVybn1pZigoZS5tZXRhS2V5fHxlLmN0cmxLZXkpJiZlLmtleS50b0xvd2VyQ2FzZSgpPT09ImQiKXt2YXIgZj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wdXQtYm94IiksZD1mJiZmLnNlbGVjdGlvblN0YXJ0IT09Zi5zZWxlY3Rpb25FbmR8fGhpKCk7aWYoZClyZXR1cm47dmFyIHY9Z3QoKTtpZih1ZSh2KSl7ZS5wcmV2ZW50RGVmYXVsdCgpO3JldHVybn1lLnByZXZlbnREZWZhdWx0KCksd3QoeHIoImN0cmxfZCIpLCJjdHJsX2QiKTtyZXR1cm59aWYoKGUubWV0YUtleXx8ZS5jdHJsS2V5KSYmZS5rZXkudG9Mb3dlckNhc2UoKT09PSJsIil7ZS5wcmV2ZW50RGVmYXVsdCgpO3ZhciBoPWd0KCk7aWYodWUoaCkpcmV0dXJuO3d0KHhyKCJjdHJsX2wiKSwiY3RybF9sIik7cmV0dXJufWlmKCEoKGUubWV0YUtleXx8ZS5jdHJsS2V5KSYmZS5rZXkudG9Mb3dlckNhc2UoKT09PSJhIikmJiEoKGUubWV0YUtleXx8ZS5jdHJsS2V5KSYmZS5rZXkudG9Mb3dlckNhc2UoKT09PSJ2Iikpe2lmKChlLm1ldGFLZXl8fGUuY3RybEtleSkmJmUua2V5LnRvTG93ZXJDYXNlKCk9PT0ieCIpe3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dC1ib3giKSxnPXQmJnQuc2VsZWN0aW9uU3RhcnQhPT10LnNlbGVjdGlvbkVuZDtpZihnKXJldHVybjtlLnByZXZlbnREZWZhdWx0KCksd3QoIhgiLCJjdHJsX3giKTtyZXR1cm59ZS5rZXkubGVuZ3RoPT09MSYmIWUuY3RybEtleSYmIWUubWV0YUtleSYmIWUuYWx0S2V5JiZzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIG09ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0LWJveCIpO20mJm90KG0udmFsdWUpfSwwKX19fXZhciByZz0xMCoxMDI0KjEwMjQ7ZnVuY3Rpb24gaWcoZSl7cmV0dXJuIGU8MTAyND9lKyIgQiI6ZTwxMDI0KjEwMjQ/KGUvMTAyNCkudG9GaXhlZCgxKSsiIEtCIjooZS8oMTAyNCoxMDI0KSkudG9GaXhlZCgxKSsiIE1CIn1mdW5jdGlvbiBhZyhlKXtyZXR1cm4vXmltYWdlXC8ocG5nfGpwZT9nfGdpZnx3ZWJwfGJtcHxzdmdcK3htbCkvLnRlc3QoZSl9ZnVuY3Rpb24gZnUoZSl7aWYoZSl7aWYoZS5zaXplPnJnKXtrKCJcdTY1ODdcdTRFRjZcdThGQzdcdTU5MjdcdUZGMDhcdTRFMEFcdTk2NTAgMTAgTUJcdUZGMDk6ICIrZS5uYW1lLCJlcnJvciIpO3JldHVybn12YXIgdD17ZmlsZTplLG5hbWU6ZS5uYW1lLHNpemU6ZS5zaXplLHByZXZpZXdVcmw6bnVsbH07YWcoZS50eXBlKSYmKHQucHJldmlld1VybD1VUkwuY3JlYXRlT2JqZWN0VVJMKGUpKSxyLnBlbmRpbmdBdHRhY2htZW50cy5wdXNoKHQpLHB1KCl9fWZ1bmN0aW9uIHVnKGUpe3ZhciB0PXIucGVuZGluZ0F0dGFjaG1lbnRzLnNwbGljZShlLDEpO3QubGVuZ3RoJiZ0WzBdLnByZXZpZXdVcmwmJlVSTC5yZXZva2VPYmplY3RVUkwodFswXS5wcmV2aWV3VXJsKSxwdSgpfWZ1bmN0aW9uIHNnKCl7ci5wZW5kaW5nQXR0YWNobWVudHMuZm9yRWFjaChmdW5jdGlvbihlKXtlLnByZXZpZXdVcmwmJlVSTC5yZXZva2VPYmplY3RVUkwoZS5wcmV2aWV3VXJsKX0pLHIucGVuZGluZ0F0dGFjaG1lbnRzPVtdLHB1KCl9ZnVuY3Rpb24gcHUoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXR0YWNobWVudC1wcmV2aWV3Iik7aWYoZSl7dmFyIHQ9ci5wZW5kaW5nQXR0YWNobWVudHM7aWYodC5sZW5ndGg9PT0wKXtlLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLGUuaW5uZXJIVE1MPSIiO3JldHVybn1lLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpO2Zvcih2YXIgbj0iIixpPTA7aTx0Lmxlbmd0aDtpKyspe3ZhciBhPXRbaV0sdT1hLnByZXZpZXdVcmw/JzxpbWcgc3JjPSInK3AoYS5wcmV2aWV3VXJsKSsnIiBhbHQ9IiI+JzonPHNwYW4gY2xhc3M9ImF0dC1pY29uIj4nK3ooImZpbGUiLHtzaXplOjEzLHN0cm9rZVdpZHRoOjEuN30pKyI8L3NwYW4+IjtuKz0nPHNwYW4gY2xhc3M9ImF0dGFjaG1lbnQtcGlsbCIgZGF0YS1pbmRleD0iJytpKyciPicrdSsnPHNwYW4gY2xhc3M9ImF0dC1uYW1lIiB0aXRsZT0iJytwKGEubmFtZSkrJyI+JytwKGEubmFtZSkrJzwvc3Bhbj48c3BhbiBjbGFzcz0iYXR0LXNpemUiPicraWcoYS5zaXplKSsnPC9zcGFuPjxidXR0b24gY2xhc3M9ImF0dC1yZW1vdmUiIGRhdGEtaW5kZXg9IicraSsnIiB0aXRsZT0iXHU3OUZCXHU5NjY0Ij5ceEQ3PC9idXR0b24+PC9zcGFuPid9ZS5pbm5lckhUTUw9bixlLnF1ZXJ5U2VsZWN0b3JBbGwoIi5hdHQtcmVtb3ZlIikuZm9yRWFjaChmdW5jdGlvbihzKXtzLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihvKXtvLnByZXZlbnREZWZhdWx0KCksby5zdG9wUHJvcGFnYXRpb24oKSx1ZyhwYXJzZUludChzLmdldEF0dHJpYnV0ZSgiZGF0YS1pbmRleCIpLDEwKSl9KX0pfX1mdW5jdGlvbiBvZyhlKXtpZighci5wZW5kaW5nQXR0YWNobWVudHMubGVuZ3RoKXJldHVybiBQcm9taXNlLnJlc29sdmUoW10pO3ZhciB0PW5ldyBGb3JtRGF0YTtyZXR1cm4gci5wZW5kaW5nQXR0YWNobWVudHMuZm9yRWFjaChmdW5jdGlvbihuKXt0LmFwcGVuZCgiZmlsZXMiLG4uZmlsZSxuLm5hbWUpfSksZmV0Y2goIi9hcGkvc2Vzc2lvbnMvIitlbmNvZGVVUklDb21wb25lbnQoZSkrIi91cGxvYWQiLHttZXRob2Q6IlBPU1QiLGJvZHk6dCxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gbi5vaz9uLmpzb24oKTpuLmpzb24oKS50aGVuKGZ1bmN0aW9uKGkpe3Rocm93IG5ldyBFcnJvcihpLmVycm9yfHwiXHU0RTBBXHU0RjIwXHU1OTMxXHU4RDI1Iil9KX0pLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIG4uZmlsZXN8fFtdfSl9ZnVuY3Rpb24gbGcoZSl7aWYoIWV8fCFlLmxlbmd0aClyZXR1cm4iIjt2YXIgdD1lLm1hcChmdW5jdGlvbihuKXtyZXR1cm4gbi5zYXZlZFBhdGh9KTtyZXR1cm5gW1x1OTY0NFx1NEVGNlx1NURGMlx1NEUwQVx1NEYyMFx1RkYwQ1x1OEJGN1x1NjdFNVx1NzcwQlx1NEVFNVx1NEUwQlx1NjU4N1x1NEVGNjoKYCt0LmpvaW4oYApgKStgXQoKYH1mdW5jdGlvbiB4bChlKXtpZighci50ZXJtaW5hbEludGVyYWN0aXZlfHwhZXx8ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygiaXMtd2FuZC1lbWJlZC10ZXJtaW5hbCIpKXJldHVybiExO3ZhciB0PWUudmFsdWV8fCIiO3JldHVybiB0Pyh3dCh0LCJpbnRlcmFjdGl2ZV90ZXh0IikuY2F0Y2goZnVuY3Rpb24oKXt9KSxlLnZhbHVlPSIiLF90KGUpLG90KCIiLCEwKSwhMCk6ITF9ZnVuY3Rpb24gY2coZSl7dmFyIHQ9ZS5jbGlwYm9hcmREYXRhJiZlLmNsaXBib2FyZERhdGEuaXRlbXM7aWYodCYmIXIudGVybWluYWxJbnRlcmFjdGl2ZSl7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspaWYodFtuXS50eXBlLmluZGV4T2YoImltYWdlLyIpPT09MCl7ZS5wcmV2ZW50RGVmYXVsdCgpO3ZhciBpPXRbbl0uZ2V0QXNGaWxlKCk7aSYmZnUoaSk7cmV0dXJufX12YXIgYT1lLmNsaXBib2FyZERhdGEmJmUuY2xpcGJvYXJkRGF0YS5nZXREYXRhKCJ0ZXh0Iik7aWYoYSl7aWYoZS5wcmV2ZW50RGVmYXVsdCgpLHIudGVybWluYWxJbnRlcmFjdGl2ZSl7d3QoYSwicGFzdGUiKS5jYXRjaChmdW5jdGlvbigpe30pO3JldHVybn12YXIgdT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wdXQtYm94Iik7aWYodSl7dmFyIHM9dS5zZWxlY3Rpb25TdGFydHx8MCxvPXUuc2VsZWN0aW9uRW5kfHwwLGw9dS52YWx1ZSxjPWwuc2xpY2UoMCxzKSthK2wuc2xpY2Uobyk7dS52YWx1ZT1jLG90KGMpfX19ZnVuY3Rpb24gbmgoZSl7d3QoZSksb3QoZGcoKStlKX1mdW5jdGlvbiBkZygpe2lmKHIuc2VsZWN0ZWRJZCl7aWYoci5kcmFmdHNbci5zZWxlY3RlZElkXSE9PXZvaWQgMClyZXR1cm4gci5kcmFmdHNbci5zZWxlY3RlZElkXTt0cnl7dmFyIGU9bG9jYWxTdG9yYWdlLmdldEl0ZW0oIndhbmQtZHJhZnQtIityLnNlbGVjdGVkSWQpO2lmKGUpcmV0dXJuIGV9Y2F0Y2h7fX1yZXR1cm4iIn1mdW5jdGlvbiBvdChlLHQpe2lmKHIuc2VsZWN0ZWRJZCl7ci5kcmFmdHNbci5zZWxlY3RlZElkXT1lO3RyeXtsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgid2FuZC1kcmFmdC0iK3Iuc2VsZWN0ZWRJZCxlKX1jYXRjaHt9aWYoIXQpe3ZhciBuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dC1ib3giKTtuJiYobi52YWx1ZT1lKX19fXZhciB2dT0hMTtmdW5jdGlvbiBmZygpe2lmKCF2dSl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0LWJveCIpLHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInByb21wdC1vcHRpbWl6ZS1idG4iKSxuPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5pbnB1dC1jb21wb3NlciIpO2lmKGUpe3ZhciBpPShlLnZhbHVlfHwiIikudHJpbSgpO2lmKCFpKXt0eXBlb2Ygaz09ImZ1bmN0aW9uIiYmaygiXHU4QkY3XHU1MTQ4XHU4RjkzXHU1MTY1XHU4OTgxXHU0RjE4XHU1MzE2XHU3Njg0XHU1MTg1XHU1QkI5XHUzMDAyIiwiaW5mbyIpLGUuZm9jdXMoKTtyZXR1cm59dnU9ITAsdCYmKHQuY2xhc3NMaXN0LmFkZCgiaXMtbG9hZGluZyIpLHQuZGlzYWJsZWQ9ITAsdC5zZXRBdHRyaWJ1dGUoInRpdGxlIiwiXHU2QjYzXHU1NzI4XHU0RjE4XHU1MzE2XHUyMDI2IikpLG4mJm4uY2xhc3NMaXN0LmFkZCgiaXMtb3B0aW1pemluZyIpLGUuc2V0QXR0cmlidXRlKCJhcmlhLWJ1c3kiLCJ0cnVlIik7dmFyIGE9ZS5yZWFkT25seTtlLnJlYWRPbmx5PSEwO3ZhciB1PXt0ZXh0Oml9O3ImJnIuc2VsZWN0ZWRJZCYmKHUuc2Vzc2lvbklkPXIuc2VsZWN0ZWRJZCksZmV0Y2goIi9hcGkvb3B0aW1pemUtcHJvbXB0Iix7bWV0aG9kOiJQT1NUIixjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sYm9keTpKU09OLnN0cmluZ2lmeSh1KX0pLnRoZW4oZnVuY3Rpb24ocyl7cmV0dXJuIHMuanNvbigpLnRoZW4oZnVuY3Rpb24obyl7cmV0dXJue29rOnMub2ssZGF0YTpvfX0pfSkudGhlbihmdW5jdGlvbihzKXtpZighcy5vayl0aHJvdyBuZXcgRXJyb3Iocy5kYXRhJiZzLmRhdGEuZXJyb3J8fCJcdTYzRDBcdTc5M0FcdThCQ0RcdTRGMThcdTUzMTZcdTU5MzFcdThEMjVcdTMwMDIiKTt2YXIgbz1zLmRhdGEmJnMuZGF0YS5vcHRpbWl6ZWR8fCIiO2lmKCFvKXRocm93IG5ldyBFcnJvcigiQ2xhdWRlIFx1OEZENFx1NTZERVx1NEUzQVx1N0E3QVx1MzAwMiIpO3BnKGUsbyl9KS5jYXRjaChmdW5jdGlvbihzKXt0eXBlb2Ygaz09ImZ1bmN0aW9uIiYmayhzJiZzLm1lc3NhZ2V8fCJcdTYzRDBcdTc5M0FcdThCQ0RcdTRGMThcdTUzMTZcdTU5MzFcdThEMjVcdTMwMDIiLCJlcnJvciIpLHQmJih0LmNsYXNzTGlzdC5yZW1vdmUoImlzLWxvYWRpbmciKSx0LmNsYXNzTGlzdC5hZGQoImlzLXNoYWtlIiksc2V0VGltZW91dChmdW5jdGlvbigpe3QmJnQuY2xhc3NMaXN0LnJlbW92ZSgiaXMtc2hha2UiKX0sNDAwKSl9KS5maW5hbGx5KGZ1bmN0aW9uKCl7dnU9ITEsdCYmKHQuY2xhc3NMaXN0LnJlbW92ZSgiaXMtbG9hZGluZyIpLHQuZGlzYWJsZWQ9ITEsdC5zZXRBdHRyaWJ1dGUoInRpdGxlIiwiXHU2M0QwXHU3OTNBXHU4QkNEXHU0RjE4XHU1MzE2XHVGRjA4QUlcdUZGMDkiKSksbiYmbi5jbGFzc0xpc3QucmVtb3ZlKCJpcy1vcHRpbWl6aW5nIiksZS5yZW1vdmVBdHRyaWJ1dGUoImFyaWEtYnVzeSIpLGUucmVhZE9ubHk9YX0pfX19ZnVuY3Rpb24gcGcoZSx0KXtpZighZSlyZXR1cm47dmFyIG49QXJyYXkuZnJvbSh0KSxpPW4ubGVuZ3RoO2lmKGk9PT0wKXtlLnZhbHVlPSIiLG90KCIiLCEwKSxfdChlKTtyZXR1cm59dmFyIGE9TWF0aC5taW4oNzAwLE1hdGgubWF4KDIyMCxpKjgpKSx1PU1hdGgubWluKGksNjApLHM9TWF0aC5jZWlsKGkvdSksbz1hL3UsbD0wO2UudmFsdWU9IiIsX3QoZSk7ZnVuY3Rpb24gYygpe2lmKGw9TWF0aC5taW4oaSxsK3MpLGUudmFsdWU9bi5zbGljZSgwLGwpLmpvaW4oIiIpLF90KGUpLGw8aSlzZXRUaW1lb3V0KGMsbyk7ZWxzZXtvdCh0LCEwKTt0cnl7ZS5zZXRTZWxlY3Rpb25SYW5nZSh0Lmxlbmd0aCx0Lmxlbmd0aCl9Y2F0Y2h7fX19YygpfWZ1bmN0aW9uIEhpKGUpe3ZhciB0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5pbnB1dC1jb21wb3NlciIpO2lmKHQpe3ZhciBuPWV8fGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dC1ib3giKSxpPSEhKG4mJm4udmFsdWUmJm4udmFsdWUubGVuZ3RoPjApO3QuY2xhc3NMaXN0LnRvZ2dsZSgiaGFzLXRleHQiLGkpfX1yLl9zdGF0dXNCYXJUaW1lcklkPW51bGwsci5fc3RhdHVzQmFyU3RhcnRUaW1lPTA7dmFyIGpyPW51bGwsX2k9MDtmdW5jdGlvbiBtdShlKXtpZighZSlyZXR1cm57YWN0aXZlOiExfTtpZihlLmFyY2hpdmVkKXJldHVybnthY3RpdmU6ITF9O3ZhciB0PSEhZS5wZXJtaXNzaW9uQmxvY2tlZCxuPSEhKHVlKGUpJiZlLnN0cnVjdHVyZWRTdGF0ZSYmZS5zdHJ1Y3R1cmVkU3RhdGUuaW5GbGlnaHQpLGk9IXVlKGUpJiZlLnN0YXR1cz09PSJydW5uaW5nIjtyZXR1cm57YWN0aXZlOm58fGl8fHQsaW5GbGlnaHQ6bixwdHlSdW5uaW5nOmkscGVybWlzc2lvbkJsb2NrZWQ6dH19ZnVuY3Rpb24gdmcoZSl7dmFyIHQ9TWF0aC5tYXgoMCxNYXRoLmZsb29yKGUvMWUzKSk7aWYodDw2MClyZXR1cm4gdCsicyI7dmFyIG49TWF0aC5mbG9vcih0LzYwKSxpPXQlNjA7aWYobjw2MClyZXR1cm4gbisibSIrKGk/IiAiK2krInMiOiIiKTt2YXIgYT1NYXRoLmZsb29yKG4vNjApLHU9biU2MDtyZXR1cm4gYSsiaCIrKHU/IiAiK3UrIm0iOiIiKX1mdW5jdGlvbiBndShlKXt2YXIgdD1tdShlKSxuPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5tYWluLWhlYWRlci1yb3ciKSxpPW4/bi5xdWVyeVNlbGVjdG9yKCIuc2Vzc2lvbi1zdGF0dXMtcGlsbCIpOm51bGwsYT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuY2hhdC1tZXNzYWdlcyIpO2lmKG4mJihuLmNsYXNzTGlzdC50b2dnbGUoImlzLXJ1bm5pbmciLHQuYWN0aXZlKSxuLmNsYXNzTGlzdC50b2dnbGUoImlzLXBlcm1pc3Npb24tYmxvY2tlZCIsdC5wZXJtaXNzaW9uQmxvY2tlZCkpLGkpe3ZhciB1PWkucXVlcnlTZWxlY3RvcigiLnNlc3Npb24tc3RhdHVzLWVsYXBzZWQiKTtpZih0LmluRmxpZ2h0KXtfaXx8KF9pPXIuX3N0YXR1c0JhclN0YXJ0VGltZT4wP3IuX3N0YXR1c0JhclN0YXJ0VGltZTpEYXRlLm5vdygpKTt2YXIgcz12ZyhEYXRlLm5vdygpLV9pKTt1fHwodT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIiksdS5jbGFzc05hbWU9InNlc3Npb24tc3RhdHVzLWVsYXBzZWQiLGkuYXBwZW5kQ2hpbGQodSkpLHUudGV4dENvbnRlbnQ9c31lbHNlIF9pPTAsdSYmdS5yZW1vdmUoKX10LmFjdGl2ZT9qcnx8KGpyPXNldEludGVydmFsKGZ1bmN0aW9uKCl7dmFyIG89ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGwpe3JldHVybiBsLmlkPT09ci5zZWxlY3RlZElkfSk7Z3Uobyl9LDFlMykpOmpyJiYoY2xlYXJJbnRlcnZhbChqciksanI9bnVsbCl9ZnVuY3Rpb24gaHUoZSx0KXtndSh0KTt2YXIgbj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuY29tcG9zZXItdG9wLXJvdyIpLGk9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnN0cnVjdHVyZWQtc3RhdHVzLWJhciIpLGE9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLmlucHV0LWNvbXBvc2VyIik7aWYoIXR8fCF1ZSh0KSl7aSYmaS5yZW1vdmUoKSxhJiZhLmNsYXNzTGlzdC5yZW1vdmUoImluLWZsaWdodCIpLGNsZWFySW50ZXJ2YWwoci5fc3RhdHVzQmFyVGltZXJJZCksci5fc3RhdHVzQmFyVGltZXJJZD1udWxsO3JldHVybn12YXIgdT10LnN0cnVjdHVyZWRTdGF0ZSYmdC5zdHJ1Y3R1cmVkU3RhdGUuaW5GbGlnaHQ7aWYodSl7aWYoci5fc3RhdHVzQmFyVGltZXJJZHx8KHIuX3N0YXR1c0JhclN0YXJ0VGltZT1EYXRlLm5vdygpKSxhJiZhLmNsYXNzTGlzdC5hZGQoImluLWZsaWdodCIpLCFpJiZuKXt2YXIgcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtzLmNsYXNzTmFtZT0ic3RydWN0dXJlZC1zdGF0dXMtYmFyIixzLmlubmVySFRNTD0nPHNwYW4gY2xhc3M9InN0YXR1cy1iYXItZG90Ij48L3NwYW4+PHNwYW4gY2xhc3M9InN0YXR1cy1iYXItbGFiZWwiPlx1NTZERVx1NTkwRFx1NEUyRDwvc3Bhbj48c3BhbiBjbGFzcz0ic3RhdHVzLWJhci10aW1lciI+MC4wczwvc3Bhbj4nLG4uYXBwZW5kQ2hpbGQocyksaT1zfWVsc2UgaWYoaSYmaS5jbGFzc0xpc3QuY29udGFpbnMoImNvbXBsZXRlZCIpKXtpLmNsYXNzTGlzdC5yZW1vdmUoImNvbXBsZXRlZCIpLGkuc3R5bGUuYW5pbWF0aW9uPSJub25lIixpLnF1ZXJ5U2VsZWN0b3IoIi5zdGF0dXMtYmFyLWxhYmVsIikudGV4dENvbnRlbnQ9Ilx1NTZERVx1NTkwRFx1NEUyRCI7dmFyIG89aS5xdWVyeVNlbGVjdG9yKCIuc3RhdHVzLWJhci1kb3QiKTtvJiYoby5zdHlsZS5kaXNwbGF5PSIiKSxyLl9zdGF0dXNCYXJTdGFydFRpbWU9RGF0ZS5ub3coKX1yLl9zdGF0dXNCYXJUaW1lcklkfHwoci5fc3RhdHVzQmFyVGltZXJJZD1zZXRJbnRlcnZhbChmdW5jdGlvbigpe3ZhciBjPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5zdHJ1Y3R1cmVkLXN0YXR1cy1iYXI6bm90KC5jb21wbGV0ZWQpIik7aWYoIWMpe2NsZWFySW50ZXJ2YWwoci5fc3RhdHVzQmFyVGltZXJJZCksci5fc3RhdHVzQmFyVGltZXJJZD1udWxsO3JldHVybn12YXIgZj0oKERhdGUubm93KCktci5fc3RhdHVzQmFyU3RhcnRUaW1lKS8xZTMpLnRvRml4ZWQoMSksZD1jLnF1ZXJ5U2VsZWN0b3IoIi5zdGF0dXMtYmFyLXRpbWVyIik7ZCYmKGQudGV4dENvbnRlbnQ9ZisicyIpfSwxMDApKX1lbHNlIGlmKGNsZWFySW50ZXJ2YWwoci5fc3RhdHVzQmFyVGltZXJJZCksci5fc3RhdHVzQmFyVGltZXJJZD1udWxsLGEmJmEuY2xhc3NMaXN0LnJlbW92ZSgiaW4tZmxpZ2h0IiksaSYmIWkuY2xhc3NMaXN0LmNvbnRhaW5zKCJjb21wbGV0ZWQiKSl7dmFyIGw9ci5fc3RhdHVzQmFyU3RhcnRUaW1lPygoRGF0ZS5ub3coKS1yLl9zdGF0dXNCYXJTdGFydFRpbWUpLzFlMykudG9GaXhlZCgxKToiMC4wIjtpLmNsYXNzTGlzdC5hZGQoImNvbXBsZXRlZCIpLGkucXVlcnlTZWxlY3RvcigiLnN0YXR1cy1iYXItbGFiZWwiKS50ZXh0Q29udGVudD0iXHU1QjhDXHU2MjEwIixpLnF1ZXJ5U2VsZWN0b3IoIi5zdGF0dXMtYmFyLXRpbWVyIikudGV4dENvbnRlbnQ9bCsicyI7dmFyIG89aS5xdWVyeVNlbGVjdG9yKCIuc3RhdHVzLWJhci1kb3QiKTtvJiYoby5zdHlsZS5kaXNwbGF5PSJub25lIiksci5fc3RhdHVzQmFyU3RhcnRUaW1lPTAsc2V0VGltZW91dChmdW5jdGlvbigpe2kucGFyZW50Tm9kZSYmaS5yZW1vdmUoKX0sM2UzKX19ZnVuY3Rpb24gcChlKXtyZXR1cm4gU3RyaW5nKGUpLnJlcGxhY2UoLyYvZywiJmFtcDsiKS5yZXBsYWNlKC88L2csIiZsdDsiKS5yZXBsYWNlKC8+L2csIiZndDsiKS5yZXBsYWNlKC8iL2csIiZxdW90OyIpLnJlcGxhY2UoLycvZywiJiMzOTsiKX1mdW5jdGlvbiBsdChlLHQsbil7dmFyIGk9U3RyaW5nKGV8fCIiKTtyZXR1cm4nPHNwYW4gY2xhc3M9IicrdCsnIHRhaWwtbWFycXVlZS1wYXRoIiB0aXRsZT0iJytwKGkpKyciJysobnx8IiIpKyc+PHNwYW4gY2xhc3M9InRhaWwtbWFycXVlZS1wYXRoLWlubmVyIj4nK3AoaSkrIjwvc3Bhbj48L3NwYW4+In12YXIgbWc9L1wuKHBuZ3xqcGU/Z3xnaWZ8d2VicHxzdmd8YXZpZnxibXB8aWNvfGhlaWN8aGVpZikkL2k7ZnVuY3Rpb24geXUoZSl7aWYodHlwZW9mIGUhPSJzdHJpbmciKXJldHVybiExO3ZhciB0PWUudHJpbSgpLnNwbGl0KC9bPyNdLylbMF07cmV0dXJuIG1nLnRlc3QodCl9ZnVuY3Rpb24gaXIoZSl7aWYoZSl7dmFyIHQ9ZnVuY3Rpb24oKXt0cnl7dmFyIG49ZS5maXJzdEVsZW1lbnRDaGlsZCYmZS5maXJzdEVsZW1lbnRDaGlsZC5jbGFzc0xpc3QmJmUuZmlyc3RFbGVtZW50Q2hpbGQuY2xhc3NMaXN0LmNvbnRhaW5zKCJ0YWlsLW1hcnF1ZWUtcGF0aC1pbm5lciIpP2UuZmlyc3RFbGVtZW50Q2hpbGQ6bnVsbDtpZihuKXt2YXIgaT1NYXRoLm1heCgwLG4uc2Nyb2xsV2lkdGgtZS5jbGllbnRXaWR0aCk7ZS5jbGFzc0xpc3QudG9nZ2xlKCJpcy1vdmVyZmxvd2luZyIsaT4xKSxlLnN0eWxlLnNldFByb3BlcnR5KCItLXRhaWwtbWFycXVlZS1zaGlmdCIsaSsicHgiKTt2YXIgYT1NYXRoLm1heCg0LjgsaS8xOCk7ZS5zdHlsZS5zZXRQcm9wZXJ0eSgiLS10YWlsLW1hcnF1ZWUtZHVyYXRpb24iLE1hdGgubWF4KDYuOCxhLy42OCkrInMiKTtyZXR1cm59ZS5zY3JvbGxXaWR0aD5lLmNsaWVudFdpZHRoJiYoZS5zY3JvbGxMZWZ0PWUuc2Nyb2xsV2lkdGgpfWNhdGNoe319O3QoKSx0eXBlb2YgcmVxdWVzdEFuaW1hdGlvbkZyYW1lPT0iZnVuY3Rpb24iJiZyZXF1ZXN0QW5pbWF0aW9uRnJhbWUodCl9fWZ1bmN0aW9uIEt0KGUpe3ZhciB0PWV8fGRvY3VtZW50OyF0fHx0eXBlb2YgdC5xdWVyeVNlbGVjdG9yQWxsIT0iZnVuY3Rpb24ifHx0LnF1ZXJ5U2VsZWN0b3JBbGwoIi50YWlsLW1hcnF1ZWUtcGF0aCIpLmZvckVhY2goZnVuY3Rpb24obil7aXIobil9KX1mdW5jdGlvbiBidShlLHQpe2lmKGUpe3ZhciBuPVN0cmluZyh0fHwiIiksaT1lLnF1ZXJ5U2VsZWN0b3ImJmUucXVlcnlTZWxlY3RvcigiLnRhaWwtbWFycXVlZS1wYXRoLWlubmVyIik7aT9pLnRleHRDb250ZW50PW46ZS50ZXh0Q29udGVudD1uLGUuc2V0QXR0cmlidXRlJiZlLnNldEF0dHJpYnV0ZSgidGl0bGUiLG4pLGlyKGUpfX1mdW5jdGlvbiBnZyhlKXtpZihlKXt2YXIgdD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2YgZS5zZXRTZWxlY3Rpb25SYW5nZT09ImZ1bmN0aW9uIiYmZS52YWx1ZSE9bnVsbCl7dmFyIG49ZS52YWx1ZS5sZW5ndGg7dHJ5e2Uuc2V0U2VsZWN0aW9uUmFuZ2UobixuKX1jYXRjaHt9fWUuc2Nyb2xsV2lkdGg+ZS5jbGllbnRXaWR0aCYmKGUuc2Nyb2xsTGVmdD1lLnNjcm9sbFdpZHRoKX1jYXRjaHt9fTt0KCksdHlwZW9mIHJlcXVlc3RBbmltYXRpb25GcmFtZT09ImZ1bmN0aW9uIiYmcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHQpfX0oZnVuY3Rpb24oKXt0cnl7dmFyIGU9bmF2aWdhdG9yJiZuYXZpZ2F0b3IudXNlckFnZW50fHwiIjsvV2FuZEFwcFwvLy50ZXN0KGUpJiZkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0LmFkZCgiaXMtd2FuZC1hcHAiKSwvV2FuZFBsYXRmb3JtXC9pT1MvLnRlc3QoZSkmJmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QuYWRkKCJpcy13YW5kLWlvcyIpfWNhdGNoe310cnl7Y29uc3QgdD1uZXcgVVJMKHdpbmRvdy5sb2NhdGlvbi5ocmVmKS5zZWFyY2hQYXJhbXM7dC5nZXQoImVtYmVkIik9PT0idGVybWluYWwiJiYoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdC5hZGQoImlzLXdhbmQtZW1iZWQtdGVybWluYWwiKSx0LmdldCgibmF0aXZlSW5wdXQiKT09PSIxIiYmZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdC5hZGQoImlzLXdhbmQtbmF0aXZlLWlucHV0IikpfWNhdGNoe310cnl7d2luZG93Ll9fd2FuZE5hdGl2ZUJhY2tIb29rZWQ9ITB9Y2F0Y2h7fX0pKCl9KSgpOwo="),
8
+ scriptsJs: decode("InVzZSBzdHJpY3QiOygoKT0+e3ZhciBCdT0id2FuZC1sZWdhY3ktcHdhLWNsZWFudXAtdjEiLFZsPVsid2FuZC1zdGF0aWMtIiwid2FuZC1ydW50aW1lLSJdO2Z1bmN0aW9uIHpyKGUpe2lmKCFlKXJldHVybiExO3RyeXtjb25zdCB0PW5ldyBVUkwoZS5zY3JpcHRVUkwsbG9jYXRpb24uaHJlZik7cmV0dXJuIHQub3JpZ2luPT09bG9jYXRpb24ub3JpZ2luJiZ0LnBhdGhuYW1lPT09Ii9zdy5qcyJ9Y2F0Y2h7cmV0dXJuITF9fWZ1bmN0aW9uIEtsKGUpe3JldHVybiB6cihlLmluc3RhbGxpbmcpfHx6cihlLndhaXRpbmcpfHx6cihlLmFjdGl2ZSl9ZnVuY3Rpb24gSmwoKXt0cnl7cmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKEJ1KT09PSJkb25lIn1jYXRjaHtyZXR1cm4hMX19ZnVuY3Rpb24gR2woKXt0cnl7bG9jYWxTdG9yYWdlLnNldEl0ZW0oQnUsImRvbmUiKX1jYXRjaHt9fWFzeW5jIGZ1bmN0aW9uIFlsKCl7aWYoISgic2VydmljZVdvcmtlciJpbiBuYXZpZ2F0b3IpKXJldHVybiEwO3RyeXtjb25zdCB0PShhd2FpdCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5nZXRSZWdpc3RyYXRpb25zKCkpLmZpbHRlcihLbCk7cmV0dXJuIGF3YWl0IFByb21pc2UuYWxsKHQubWFwKG49Pm4udW5yZWdpc3RlcigpKSksITB9Y2F0Y2h7cmV0dXJuITF9fWFzeW5jIGZ1bmN0aW9uIFFsKCl7aWYoISgiY2FjaGVzImluIHdpbmRvdykpcmV0dXJuITA7dHJ5e2NvbnN0IHQ9KGF3YWl0IGNhY2hlcy5rZXlzKCkpLmZpbHRlcihuPT5WbC5zb21lKGk9Pm4uc3RhcnRzV2l0aChpKSkpO3JldHVybiBhd2FpdCBQcm9taXNlLmFsbCh0Lm1hcChuPT5jYWNoZXMuZGVsZXRlKG4pKSksITB9Y2F0Y2h7cmV0dXJuITF9fWFzeW5jIGZ1bmN0aW9uICRsKCl7aWYoSmwoKSlyZXR1cm47Y29uc3QgZT0ic2VydmljZVdvcmtlciJpbiBuYXZpZ2F0b3ImJnpyKG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmNvbnRyb2xsZXIpLFt0LG5dPWF3YWl0IFByb21pc2UuYWxsKFtZbCgpLFFsKCldKTshdHx8IW58fChHbCgpLGUmJmxvY2F0aW9uLnJlbG9hZCgpKX0kbCgpO3ZhciBGZz0iJHtlc2NhcGVIdG1sKGNvbmZpZ1BhdGgpfSIsemk9IndhbmQtY2hhdC1leHBhbmQtc3RhdGUtdjEiLFVyPVtmdW5jdGlvbigpe31dOyhmdW5jdGlvbigpe3RyeXt2YXIgdD1sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgid2FuZC1scy1zY2hlbWEiKSxuPXQ9PW51bGw/MDpwYXJzZUludCh0LDEwKTtuPj0wfHwobj0wKTtmb3IodmFyIGk9bjtpPFVyLmxlbmd0aDtpKyspdHJ5e1VyW2ldKCl9Y2F0Y2h7fW48VXIubGVuZ3RoJiZsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgid2FuZC1scy1zY2hlbWEiLFN0cmluZyhVci5sZW5ndGgpKX1jYXRjaHt9fSkoKTtmdW5jdGlvbiBVaShlLHQpe3RyeXt2YXIgbj1sb2NhbFN0b3JhZ2UuZ2V0SXRlbShlKTtyZXR1cm4gbj09PSJ0cnVlIj8hMDpuPT09ImZhbHNlIj8hMTp0fWNhdGNoe3JldHVybiB0fX1mdW5jdGlvbiB4ZShlLHQpe3RyeXtsb2NhbFN0b3JhZ2Uuc2V0SXRlbShlLFN0cmluZyghIXQpKX1jYXRjaHt9fXZhciByPXtzZWxlY3RlZElkOihmdW5jdGlvbigpe3RyeXt2YXIgZT1uZXcgVVJMKHdpbmRvdy5sb2NhdGlvbi5ocmVmKSx0PWUuc2VhcmNoUGFyYW1zLmdldCgic2Vzc2lvbiIpO2lmKHQpcmV0dXJuIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCJ3YW5kLXNlbGVjdGVkLXNlc3Npb24iLHQpLGUuc2VhcmNoUGFyYW1zLmRlbGV0ZSgic2Vzc2lvbiIpLGhpc3RvcnkucmVwbGFjZVN0YXRlKGhpc3Rvcnkuc3RhdGUsIiIsZS50b1N0cmluZygpKSx0fWNhdGNoe310cnl7cmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKCJ3YW5kLXNlbGVjdGVkLXNlc3Npb24iKXx8bnVsbH1jYXRjaHtyZXR1cm4gbnVsbH19KSgpLHBvbGxUaW1lcjpudWxsLGNvbmZpZzpudWxsLHNlc3Npb25zOltdLHN1Z2dlc3Rpb25UaW1lcjpudWxsLHRlcm1pbmFsOm51bGwsdGVybWluYWxGaXRJblByb2dyZXNzOiExLHRlcm1pbmFsU2Vzc2lvbklkOm51bGwsdGVybWluYWxPdXRwdXQ6IiIsdGVybWluYWxPdXRwdXRNYXJrZXI6MCx0ZXJtaW5hbExpdmVTdHJlYW1TZXNzaW9uczp7fSxzeW5jT3V0cHV0QnVmZmVyOm51bGwsc3luY091dHB1dERlYWRsaW5lOjAsc3luY0ZyYW1pbmdSZXNpZHVlOiExLGxhc3RDaHVua0F0OjAsdGVybWluYWxIZWFsdGhUaW1lcjpudWxsLGxhc3RUZXJtaW5hbFJlc3luY0F0OjAsdGVybWluYWxBdXRvRm9sbG93OiEwLHRlcm1pbmFsUHJvZ3JhbW1hdGljU2Nyb2xsVW50aWw6MCx0ZXJtaW5hbFNjcm9sbElkbGVUaW1lcjpudWxsLHRlcm1pbmFsU2Nyb2xsVGhyZXNob2xkOjEyLHNob3dUZXJtaW5hbEp1bXBUb0JvdHRvbTohMSx0ZXJtaW5hbFZpZXdwb3J0RWw6bnVsbCx0ZXJtaW5hbFZpZXdwb3J0U2Nyb2xsSGFuZGxlcjpudWxsLHRlcm1pbmFsVmlld3BvcnRUb3VjaEhhbmRsZXI6bnVsbCx0ZXJtaW5hbFZpZXdwb3J0VG91Y2hTdGFydEhhbmRsZXI6bnVsbCx0ZXJtaW5hbFRvdWNoU3RhcnRZOjAsdGVybWluYWxDb21wb3Npbmc6ITEscmVzaXplT2JzZXJ2ZXI6bnVsbCxyZXNpemVIYW5kbGVyOm51bGwscmVzaXplVGltZXI6bnVsbCxpbnB1dFF1ZXVlOlByb21pc2UucmVzb2x2ZSgpLHBlbmRpbmdNZXNzYWdlczpbXSxtZXNzYWdlUXVldWU6W10sY3Jvc3NTZXNzaW9uUXVldWU6KGZ1bmN0aW9uKCl7dHJ5e3ZhciBlPWxvY2FsU3RvcmFnZS5nZXRJdGVtKCJ3YW5kLWNyb3NzLXNlc3Npb24tcXVldWUiKSx0PWU/SlNPTi5wYXJzZShlKTpbXTtyZXR1cm4gQXJyYXkuaXNBcnJheSh0KT90OltdfWNhdGNoe3JldHVybltdfX0pKCksc3RydWN0dXJlZElucHV0UXVldWU6W10scXVldWVCYXJFeHBhbmRlZDohMSxxdWV1ZUJhckhvdmVySW5kZXg6bnVsbCxxdWV1ZUJhckRyYWc6bnVsbCxxdWV1ZUJhclByb21vdGluZzohMSxkcmFmdHM6e30saXNTeW5jaW5nSW5wdXRCb3g6ITEsbG9naW5QZW5kaW5nOiExLGxvZ2luQ2hlY2tlZDohMSxib290c3RyYXBwaW5nOiEwLHNlc3Npb25zRHJhd2VyT3BlbjpVaSgid2FuZC1zaWRlYmFyLW9wZW4iLCExKSxzaWRlYmFyUGlubmVkOlVpKCJ3YW5kLXNpZGViYXItcGlubmVkIiwhMCksc2lkZWJhckNvbGxhcHNlZDpVaSgid2FuZC1zaWRlYmFyLWNvbGxhcHNlZCIsITEpLG1vZGFsT3BlbjohMSxwcmVzZXRWYWx1ZToiIixjd2RWYWx1ZToiIixtb2RlVmFsdWU6Im1hbmFnZWQiLGNoYXRNb2RlOiJtYW5hZ2VkIixjaGF0TW9kZWw6KGZ1bmN0aW9uKCl7dHJ5e3JldHVybiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgid2FuZC1jaGF0LW1vZGVsIil8fCIifWNhdGNoe3JldHVybiIifX0pKCksY2hhdFRoaW5raW5nOihmdW5jdGlvbigpe3RyeXt2YXIgZT1sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgid2FuZC10aGlua2luZy1lZmZvcnQiKXx8Im9mZiI7cmV0dXJuIGU9PT0ib2ZmInx8ZT09PSJzdGFuZGFyZCJ8fGU9PT0iZGVlcCJ8fGU9PT0ibWF4Ij9lOiJvZmYifWNhdGNoe3JldHVybiJvZmYifX0pKCksYXZhaWxhYmxlTW9kZWxzOltdLGF2YWlsYWJsZUNvZGV4TW9kZWxzOltdLG1vZGVsc1JlZnJlc2hpbmc6ITEsc2Vzc2lvbkNyZWF0ZUtpbmQ6InN0cnVjdHVyZWQiLHNlc3Npb25DcmVhdGVXb3JrdHJlZTohMSxzZXNzaW9uVG9vbDoiY2xhdWRlIixhY3RpdmVXb3JrdHJlZU1lcmdlU2Vzc2lvbklkOm51bGwsd29ya3RyZWVNZXJnZUNoZWNrUmVzdWx0Om51bGwsd29ya3RyZWVNZXJnZUxvYWRpbmc6ITEsd29ya3RyZWVNZXJnZVN1Ym1pdHRpbmc6ITEsd29ya3RyZWVNZXJnZUVycm9yOiIiLHByZWZlcnJlZENvbW1hbmQ6ImNsYXVkZSIsc3RydWN0dXJlZFJ1bm5lcjoiY2xhdWRlLWNsaS1wcmludCIsbGFzdFJlc2l6ZTp7Y29sczowLHJvd3M6MH0saXNPbmxpbmU6bmF2aWdhdG9yLm9uTGluZSx3czpudWxsLHdzQ29ubmVjdGVkOiExLGxhc3RXc01lc3NhZ2VBdDowLHdzSGVhcnRiZWF0Q2hlY2tUaW1lcjpudWxsLF91cGRhdGVCdWJibGVTaG93bjohMSxub3RpZmljYXRpb25IaXN0b3J5Ont9LGRlbGF5ZWROb3RpZmljYXRpb25UaW1lcjpudWxsLG5vdGlmU291bmQ6KGZ1bmN0aW9uKCl7dHJ5e3ZhciBlPWxvY2FsU3RvcmFnZS5nZXRJdGVtKCJ3YW5kLW5vdGlmLXNvdW5kIik7cmV0dXJuIGU9PT1udWxsPyEwOmU9PT0idHJ1ZSJ9Y2F0Y2h7cmV0dXJuITB9fSkoKSxub3RpZlZvbHVtZTooZnVuY3Rpb24oKXt0cnl7dmFyIGU9bG9jYWxTdG9yYWdlLmdldEl0ZW0oIndhbmQtbm90aWYtdm9sdW1lIik7cmV0dXJuIGU9PT1udWxsPzgwOk1hdGgubWF4KDAsTWF0aC5taW4oMTAwLHBhcnNlSW50KGUsMTApfHw4MCkpfWNhdGNoe3JldHVybiA4MH19KSgpLG5vdGlmQnViYmxlOihmdW5jdGlvbigpe3RyeXt2YXIgZT1sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgid2FuZC1ub3RpZi1idWJibGUiKTtyZXR1cm4gZT09PW51bGw/ITA6ZT09PSJ0cnVlIn1jYXRjaHtyZXR1cm4hMH19KSgpLHRvb2xDb250ZW50Q2FjaGU6e30sbGFzdFNlcUJ5U2Vzc2lvbjp7fSxjdXJyZW50VmlldzoidGVybWluYWwiLHRlcm1pbmFsU2NhbGU6KGZ1bmN0aW9uKCl7dHJ5e3ZhciBlPWxvY2FsU3RvcmFnZS5nZXRJdGVtKCJ3YW5kLXRlcm1pbmFsLXNjYWxlIik7cmV0dXJuIGU/cGFyc2VGbG9hdChlKToxfWNhdGNoe3JldHVybiAxfX0pKCksdGVybWluYWxCYXNlRm9udFNpemU6MTMsa2V5Ym9hcmRQb3B1cE9wZW46ITEsZmlsZVBhbmVsT3BlbjooZnVuY3Rpb24oKXt0cnl7cmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKCJ3YW5kLWZpbGUtcGFuZWwtb3BlbiIpPT09InRydWUifWNhdGNoe3JldHVybiExfX0pKCksdG9wYmFyTW9yZU9wZW46ITEsZ2l0U3RhdHVzOm51bGwsZ2l0U3RhdHVzU2Vzc2lvbklkOm51bGwsZ2l0U3RhdHVzTG9hZGluZzohMSxnaXRTdGF0dXNJbmZsaWdodDpudWxsLGdpdFN0YXR1c0xhc3RGZXRjaEF0OjAscXVpY2tDb21taXRPcGVuOiExLHF1aWNrQ29tbWl0U3VibWl0dGluZzohMSxxdWlja0NvbW1pdEdlbmVyYXRpbmc6ITEscXVpY2tDb21taXRFcnJvcjoiIixxdWlja0NvbW1pdEZvcm06e2N1c3RvbU1lc3NhZ2U6IiIsdGFnOiIiLHRhZ0VkaXRlZDohMX0scXVpY2tDb21taXRQdXNoaW5nOiExLHF1aWNrQ29tbWl0UHVzaEVycm9yOiIiLHF1aWNrQ29tbWl0UmVzdWx0Om51bGwscXVpY2tDb21taXREcmFnQWN0aW9uOiJjb21taXQiLHF1aWNrQ29tbWl0U3VibW9kdWxlSW50ZW50OiExLGNoYXRTdGlja1RvQm90dG9tOiEwLGNoYXRBdXRvRm9sZEVuYWJsZWQ6ITEsY2hhdEF1dG9Gb2xkU25hcHNob3Q6bnVsbCxjaGF0VW5yZWFkQ291bnQ6MCxjaGF0VW5yZWFkU3RhcnRJbmRleDotMSxjaGF0U2Nyb2xsVGhyZXNob2xkOjE2MCxjaGF0SXNQcm9ncmFtbWF0aWNTY3JvbGw6ITEsY2hhdFByb2dyYW1tYXRpY1Njcm9sbFVudGlsOjAsY2hhdFNjcm9sbEVsZW1lbnQ6bnVsbCxjaGF0U2Nyb2xsSGFuZGxlcjpudWxsLGNoYXRTY3JvbGxXaGVlbEhhbmRsZXI6bnVsbCxjaGF0U2Nyb2xsVG91Y2hTdGFydEhhbmRsZXI6bnVsbCxjaGF0U2Nyb2xsVG91Y2hNb3ZlSGFuZGxlcjpudWxsLGNoYXRUb3VjaFN0YXJ0WTowLGNoYXRJbml0aWFsUmVuZGVyRG9uZTohMSxsYXN0Rm9yZWdyb3VuZFN5bmNBdDowLGZvcmVncm91bmRTeW5jVGltZXI6bnVsbCx3c1JlY29ubmVjdEF0dGVtcHRzOjAsd3NSZWNvbm5lY3RUaW1lcjpudWxsLGN1cnJlbnRNZXNzYWdlczpbXSxsYXN0UmVuZGVyZWRIYXNoOjAsbGFzdFJlbmRlcmVkTXNnQ291bnQ6MCxsYXN0UmVuZGVyZWRFbXB0eTpudWxsLHJlbmRlclBlbmRpbmc6ITEsY2hhdFBhZ2VTaXplOjIwLGNoYXRSZW5kZXJlZENvdW50OjIwLGN1cnJlbnRUYXNrOm51bGwsdGVybWluYWxJbnRlcmFjdGl2ZTohMSxtaW5pS2V5Ym9hcmRWaXNpYmxlOiExLG1vZGlmaWVyczp7Y3RybDohMSxhbHQ6ITEsc2hpZnQ6ITF9LGpveXN0aWNrUG9zOihmdW5jdGlvbigpe3RyeXt2YXIgZT1sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgid2FuZC1iYWxsLXBvcyIpO2lmKCFlKXJldHVybiBudWxsO3ZhciB0PUpTT04ucGFyc2UoZSk7cmV0dXJuIHQmJnR5cGVvZiB0PT0ib2JqZWN0Ij90Om51bGx9Y2F0Y2h7cmV0dXJuIG51bGx9fSkoKSxqb3lzdGlja1Bpbm5lZE9wZW46ITEsam95c3RpY2tSb290RWw6bnVsbCxqb3lzdGlja1BhbmVsRWw6bnVsbCxqb3lzdGlja0JhY2tkcm9wRWw6bnVsbCxqb3lzdGlja0JhbGxFbDpudWxsLGpveXN0aWNrUG9pbnRlcklkOm51bGwsam95c3RpY2tHZXN0dXJlOm51bGwsam95c3RpY2tQcmVzc1N0YXJ0Om51bGwsam95c3RpY2tMb25nUHJlc3NUaW1lcjpudWxsLGpveXN0aWNrTW92ZUhhbmRsZXI6bnVsbCxqb3lzdGlja1VwSGFuZGxlcjpudWxsLGpveXN0aWNrUmVzaXplSGFuZGxlcjpudWxsLGZpbGVTZWFyY2hRdWVyeToiIixmaWxlRXhwbG9yZXJMb2FkaW5nOiExLGFsbEZpbGVzOltdLGZpbGVFeHBsb3JlckN3ZDoiIixmaWxlRXhwbG9yZXJUcnVuY2F0ZWQ6ITEsZmlsZUV4cGxvcmVyVG90YWw6MCxjbGF1ZGVIaXN0b3J5OltdLGNsYXVkZUhpc3RvcnlMb2FkZWQ6ITEsY2xhdWRlSGlzdG9yeUV4cGFuZGVkOiExLGNsYXVkZUhpc3RvcnlFeHBhbmRlZERpcnM6e30sYXJjaGl2ZWRFeHBhbmRlZDohMSxzZXNzaW9uc01hbmFnZU1vZGU6ITEsc2VsZWN0ZWRTZXNzaW9uSWRzOnt9LHNlbGVjdGVkQ2xhdWRlSGlzdG9yeUlkczp7fSxjb2RleEhpc3Rvcnk6W10sY29kZXhIaXN0b3J5TG9hZGVkOiExLGNvZGV4SGlzdG9yeUV4cGFuZGVkRGlyczp7fSxzZWxlY3RlZENvZGV4SGlzdG9yeUlkczp7fSxhc2tVc2VyU2VsZWN0aW9uczp7fSxxdWV1ZUVwb2NoOjAscGVuZGluZ0F0dGFjaG1lbnRzOltdLHdvcmtpbmdEaXI6KGZ1bmN0aW9uKCl7dHJ5e3ZhciBlPWxvY2FsU3RvcmFnZS5nZXRJdGVtKCJ3YW5kLXdvcmtpbmctZGlyIik7cmV0dXJuIGV8fCIifWNhdGNoe3JldHVybiIifX0pKCl9LFZpPSJcdTRFMkRcdTY1ODciLFZyPXtcdTRFMkRcdTY1ODc6eyJzdWJhZ2VudC50YWciOiJcdTVCNTBcdTRFRTNcdTc0MDYiLCJzdWJhZ2VudC5oYW5kb2ZmIjoie3BhcmVudH0gXHU4QkE5IHtzdWJ9IFx1NUUyRVx1NUZEOSIsInN1YmFnZW50LmhhbmRvZmYud2l0aF9kZXNjIjoie3BhcmVudH0gXHU4QkE5IHtzdWJ9IFx1NUUyRVx1NUZEOVx1RkYxQSIsInN1YmFnZW50LmNvbnRpbnVlZCI6Ilx1N0VFN1x1N0VFRFx1OEY5M1x1NTFGQSIsInN1YmFnZW50LnRhc2suZG9uZSI6Ilx1NEVGQlx1NTJBMVx1NUI4Q1x1NjIxMCIsInN1YmFnZW50LnRhc2suZmFpbGVkIjoiXHU0RUZCXHU1MkExXHU1OTMxXHU4RDI1Iiwic3ViYWdlbnQucnVubmluZyI6Ilx1OEZEMFx1ODg0Q1x1NEUyRCIsInN1YmFnZW50Lm5vX291dHB1dCI6Ilx1RkYwOFx1NjVFMFx1OEY5M1x1NTFGQVx1RkYwOSIsInN1YmFnZW50LmhlbHBlcl9mYWxsYmFja19wcmVmaXgiOiJcdTUzNEZcdTRGNUNcdTczMkJceEI3Iiwic3ViYWdlbnQudGl0bGVfYXJpYSI6Ilx1NzBCOVx1NTFGQlx1NUM1NVx1NUYwMCAvIFx1NjUzNlx1OEQ3N1x1NUI1MFx1NEVFM1x1NzQwNlx1OEY5M1x1NTFGQSIsInN1YmFnZW50LnRhZ190aXRsZSI6Ilx1NUI1MFx1NEVFM1x1NzQwNiAvIHN1YmFnZW50IiwidWkuZXhwYW5kIjoiXHU1QzU1XHU1RjAwIiwidWkuY29sbGFwc2UiOiJcdTY1MzZcdThENzciLCJ1aS5leHBhbmRfcGFuZWxfYXJpYSI6Ilx1NUM1NVx1NUYwMFx1NUI1MFx1NEVFM1x1NzQwNlx1OEY5M1x1NTFGQSIsInVpLmNvbGxhcHNlX3BhbmVsX2FyaWEiOiJcdTY1MzZcdThENzdcdTVCNTBcdTRFRTNcdTc0MDZcdThGOTNcdTUxRkEiLCJoaXN0b3J5LmV4cGFuZCI6Ilx1NUM1NVx1NUYwMFx1NTM4Nlx1NTNGMlx1NUJGOVx1OEJERCIsImhpc3RvcnkuY29sbGFwc2UiOiJcdTY1MzZcdThENzdcdTUzODZcdTUzRjJcdTVCRjlcdThCREQiLCJoaXN0b3J5LnJvdW5kcyI6IntufSBcdThGNkVcdTVCRjlcdThCREQiLCJoaXN0b3J5LnRvb2xzIjoie259IFx1NkIyMVx1NURFNVx1NTE3N1x1OEMwM1x1NzUyOCIsImhpc3RvcnkuYWdlbnRzIjoie259IFx1NEUyQVx1NUI1MFx1NEVFM1x1NzQwNiIsImhpc3RvcnkuZXJyb3JzIjoie259IFx1NEUyQVx1NTkzMVx1OEQyNSIsInN0b3AuY29uZmlybS50aXRsZSI6Ilx1NTA1Q1x1NkI2Mlx1NEVGQlx1NTJBMSIsInN0b3AuY29uZmlybS5tZXNzYWdlIjoiXHU3ODZFXHU1QjlBXHU4OTgxXHU1MDVDXHU2QjYyXHU1RjUzXHU1MjREXHU2QjYzXHU1NzI4XHU4RkQwXHU4ODRDXHU3Njg0XHU0RUZCXHU1MkExXHU1NDE3XHVGRjFGIiwic3RvcC5jb25maXJtLm9rIjoiXHU1MDVDXHU2QjYyIiwic3RvcC5jb25maXJtLmNhbmNlbCI6Ilx1NTNENlx1NkQ4OCJ9LEVuZ2xpc2g6eyJzdWJhZ2VudC50YWciOiJTdWJhZ2VudCIsInN1YmFnZW50LmhhbmRvZmYiOiJ7cGFyZW50fSBhc2tlZCB7c3VifSBmb3IgaGVscCIsInN1YmFnZW50LmhhbmRvZmYud2l0aF9kZXNjIjoie3BhcmVudH0gYXNrZWQge3N1Yn0gZm9yIGhlbHAgd2l0aDogIiwic3ViYWdlbnQuY29udGludWVkIjoiY29udGludWVkIiwic3ViYWdlbnQudGFzay5kb25lIjoiVGFzayBjb21wbGV0ZSIsInN1YmFnZW50LnRhc2suZmFpbGVkIjoiVGFzayBmYWlsZWQiLCJzdWJhZ2VudC5ydW5uaW5nIjoiUnVubmluZyIsInN1YmFnZW50Lm5vX291dHB1dCI6IihubyBvdXRwdXQpIiwic3ViYWdlbnQuaGVscGVyX2ZhbGxiYWNrX3ByZWZpeCI6IkhlbHBlclx4QjciLCJzdWJhZ2VudC50aXRsZV9hcmlhIjoiQ2xpY2sgdG8gZXhwYW5kIC8gY29sbGFwc2Ugc3ViYWdlbnQgb3V0cHV0Iiwic3ViYWdlbnQudGFnX3RpdGxlIjoiU3ViYWdlbnQiLCJ1aS5leHBhbmQiOiJFeHBhbmQiLCJ1aS5jb2xsYXBzZSI6IkNvbGxhcHNlIiwidWkuZXhwYW5kX3BhbmVsX2FyaWEiOiJFeHBhbmQgc3ViYWdlbnQgb3V0cHV0IiwidWkuY29sbGFwc2VfcGFuZWxfYXJpYSI6IkNvbGxhcHNlIHN1YmFnZW50IG91dHB1dCIsImhpc3RvcnkuZXhwYW5kIjoiU2hvdyBlYXJsaWVyIGNvbnZlcnNhdGlvbiIsImhpc3RvcnkuY29sbGFwc2UiOiJIaWRlIGVhcmxpZXIgY29udmVyc2F0aW9uIiwiaGlzdG9yeS5yb3VuZHMiOiJ7bn0gcm91bmRzIiwiaGlzdG9yeS50b29scyI6IntufSB0b29sIGNhbGxzIiwiaGlzdG9yeS5hZ2VudHMiOiJ7bn0gc3ViYWdlbnRzIiwiaGlzdG9yeS5lcnJvcnMiOiJ7bn0gZmFpbGVkIiwic3RvcC5jb25maXJtLnRpdGxlIjoiU3RvcCB0YXNrIiwic3RvcC5jb25maXJtLm1lc3NhZ2UiOiJTdG9wIHRoZSB0YXNrIHRoYXQncyBjdXJyZW50bHkgcnVubmluZz8iLCJzdG9wLmNvbmZpcm0ub2siOiJTdG9wIiwic3RvcC5jb25maXJtLmNhbmNlbCI6IkNhbmNlbCJ9fTtmdW5jdGlvbiBEdSgpe3ZhciBlPXIuY29uZmlnJiZ0eXBlb2Ygci5jb25maWcubGFuZ3VhZ2U9PSJzdHJpbmciP3IuY29uZmlnLmxhbmd1YWdlLnRyaW0oKToiIjtpZighZSlyZXR1cm4gVmk7aWYoVnJbZV0pcmV0dXJuIGU7dmFyIHQ9ZS50b0xvd2VyQ2FzZSgpO3JldHVybiB0PT09ImVuZ2xpc2gifHx0PT09ImVuInx8dC5pbmRleE9mKCJlbmdsaXNoIik9PT0wfHx0LmluZGV4T2YoIlx1ODJGMSIpPT09MD8iRW5nbGlzaCI6dD09PSJcdTRFMkRcdTY1ODcifHx0PT09InpoInx8dC5pbmRleE9mKCJ6aCIpPT09MHx8dC5pbmRleE9mKCJcdTRFMkQiKT09PTB8fHQuaW5kZXhPZigiY2hpbmVzZSIpPT09MD8iXHU0RTJEXHU2NTg3IjoiRW5nbGlzaCJ9ZnVuY3Rpb24gY2UoZSx0KXt2YXIgbj1EdSgpLGk9VnJbbl18fFZyW1ZpXSxhPWkmJmUgaW4gaT9pW2VdOm51bGw7aWYoYT09bnVsbCl7dmFyIHU9VnJbVmldO2E9dSYmZSBpbiB1P3VbZV06ZX1pZih0JiZ0eXBlb2YgYT09InN0cmluZyIpZm9yKHZhciBzIGluIHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQscykmJihhPWEuc3BsaXQoInsiK3MrIn0iKS5qb2luKHRbc10pKTtyZXR1cm4gYX12YXIgWGw9e3NoaWVsZDonPHBhdGggZD0iTTEyIDIyczgtNCA4LTEwVjVsLTgtMy04IDN2N2MwIDYgOCAxMCA4IDEweiIvPicsc2hpZWxkQ2hlY2s6JzxwYXRoIGQ9Ik0xMiAyMnM4LTQgOC0xMFY1bC04LTMtOCAzdjdjMCA2IDggMTAgOCAxMHoiLz48cG9seWxpbmUgcG9pbnRzPSI5IDEyIDExIDE0IDE1IDEwIi8+JyxjcHU6JzxyZWN0IHg9IjciIHk9IjciIHdpZHRoPSIxMCIgaGVpZ2h0PSIxMCIgcng9IjIiLz48cGF0aCBkPSJNOSAxdjMiLz48cGF0aCBkPSJNMTUgMXYzIi8+PHBhdGggZD0iTTkgMjB2MyIvPjxwYXRoIGQ9Ik0xNSAyMHYzIi8+PHBhdGggZD0iTTIwIDloMyIvPjxwYXRoIGQ9Ik0yMCAxNWgzIi8+PHBhdGggZD0iTTEgOWgzIi8+PHBhdGggZD0iTTEgMTVoMyIvPjxyZWN0IHg9IjEwIiB5PSIxMCIgd2lkdGg9IjQiIGhlaWdodD0iNCIgcng9IjEiLz4nLGJyYWluOic8cGF0aCBkPSJNOS41IDQuNWEzIDMgMCAwIDAtNC43IDMuMSAzLjMgMy4zIDAgMCAwIC4zIDYuMUEzIDMgMCAwIDAgOCAxOWgxLjVWNC41eiIvPjxwYXRoIGQ9Ik0xNC41IDQuNWEzIDMgMCAwIDEgNC43IDMuMSAzLjMgMy4zIDAgMCAxLS4zIDYuMUEzIDMgMCAwIDEgMTYgMTloLTEuNVY0LjV6Ii8+PHBhdGggZD0iTTkuNSA4SDcuOCIvPjxwYXRoIGQ9Ik0xNC41IDhoMS43Ii8+PHBhdGggZD0iTTkuNSAxM0g3LjYiLz48cGF0aCBkPSJNMTQuNSAxM2gxLjkiLz4nLGtleWJvYXJkOic8cmVjdCB4PSIyIiB5PSI2IiB3aWR0aD0iMjAiIGhlaWdodD0iMTIiIHJ4PSIyIi8+PGxpbmUgeDE9IjYiIHkxPSIxMCIgeDI9IjYiIHkyPSIxMCIvPjxsaW5lIHgxPSIxMCIgeTE9IjEwIiB4Mj0iMTAiIHkyPSIxMCIvPjxsaW5lIHgxPSIxNCIgeTE9IjEwIiB4Mj0iMTQiIHkyPSIxMCIvPjxsaW5lIHgxPSIxOCIgeTE9IjEwIiB4Mj0iMTgiIHkyPSIxMCIvPjxsaW5lIHgxPSI2IiB5MT0iMTQiIHgyPSI2IiB5Mj0iMTQiLz48bGluZSB4MT0iMTgiIHkxPSIxNCIgeDI9IjE4IiB5Mj0iMTQiLz48bGluZSB4MT0iOSIgeTE9IjE0IiB4Mj0iMTUiIHkyPSIxNCIvPicsdGVybWluYWw6Jzxwb2x5bGluZSBwb2ludHM9IjQgNyA5IDEyIDQgMTciLz48bGluZSB4MT0iMTIiIHkxPSIxNyIgeDI9IjIwIiB5Mj0iMTciLz4nLGNoYXQ6JzxwYXRoIGQ9Ik0yMSAxMmE4IDggMCAwIDEtMTIuOSA2LjNMMyAyMGwxLjctNS4xQTggOCAwIDEgMSAyMSAxMnoiLz4nLGZvbGRlcjonPHBhdGggZD0iTTMgN2EyIDIgMCAwIDEgMi0yaDRsMiAyaDhhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yeiIvPicsdHJhc2g6Jzxwb2x5bGluZSBwb2ludHM9IjMgNiA1IDYgMjEgNiIvPjxwYXRoIGQ9Ik0xOSA2bC0xIDEzYTIgMiAwIDAgMS0yIDJIOGEyIDIgMCAwIDEtMi0yTDUgNiIvPjxwYXRoIGQ9Ik0xMCAxMXY2Ii8+PHBhdGggZD0iTTE0IDExdjYiLz48cGF0aCBkPSJNOSA2VjRhMSAxIDAgMCAxIDEtMWg0YTEgMSAwIDAgMSAxIDF2MiIvPicsY2hldnJvbkRvd246Jzxwb2x5bGluZSBwb2ludHM9IjYgOSAxMiAxNSAxOCA5Ii8+JyxiZWxsOic8cGF0aCBkPSJNMTggMTZ2LTVhNiA2IDAgMSAwLTEyIDB2NWwtMiAyaDE2eiIvPjxwYXRoIGQ9Ik0xMCAyMWEyIDIgMCAwIDAgNCAwIi8+JyxtdXNpYzonPHBhdGggZD0iTTkgMThWNWwxMi0ydjEzIi8+PGNpcmNsZSBjeD0iNiIgY3k9IjE4IiByPSIzIi8+PGNpcmNsZSBjeD0iMTgiIGN5PSIxNiIgcj0iMyIvPicsdmlicmF0ZTonPHJlY3QgeD0iOSIgeT0iNCIgd2lkdGg9IjYiIGhlaWdodD0iMTYiIHJ4PSIxIi8+PHBhdGggZD0iTTUgOHY4Ii8+PHBhdGggZD0iTTMgMTB2NCIvPjxwYXRoIGQ9Ik0xOSA4djgiLz48cGF0aCBkPSJNMjEgMTB2NCIvPicsZ2xvYmU6JzxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjkiLz48bGluZSB4MT0iMyIgeTE9IjEyIiB4Mj0iMjEiIHkyPSIxMiIvPjxwYXRoIGQ9Ik0xMiAzYTE0IDE0IDAgMCAxIDAgMTgiLz48cGF0aCBkPSJNMTIgM2ExNCAxNCAwIDAgMCAwIDE4Ii8+JyxzbWFydHBob25lOic8cmVjdCB4PSI2IiB5PSIyIiB3aWR0aD0iMTIiIGhlaWdodD0iMjAiIHJ4PSIyLjUiLz48bGluZSB4MT0iMTEiIHkxPSIxOCIgeDI9IjEzIiB5Mj0iMTgiLz4nLGRlc2t0b3A6JzxyZWN0IHg9IjMiIHk9IjQiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxMiIgcng9IjIiLz48bGluZSB4MT0iOCIgeTE9IjIwIiB4Mj0iMTYiIHkyPSIyMCIvPjxsaW5lIHgxPSIxMiIgeTE9IjE2IiB4Mj0iMTIiIHkyPSIyMCIvPicsbGluazonPHBhdGggZD0iTTEwIDE0YTQuNSA0LjUgMCAwIDAgNi4zNiAwbDMtM2E0LjUgNC41IDAgMSAwLTYuMzYtNi4zNmwtMS40MiAxLjQxIi8+PHBhdGggZD0iTTE0IDEwYTQuNSA0LjUgMCAwIDAtNi4zNiAwbC0zIDNhNC41IDQuNSAwIDEgMCA2LjM2IDYuMzZsMS40Mi0xLjQxIi8+JyxwYWxldHRlOic8Y2lyY2xlIGN4PSIxMy41IiBjeT0iNi41IiByPSIxIi8+PGNpcmNsZSBjeD0iMTcuNSIgY3k9IjEwLjUiIHI9IjEiLz48Y2lyY2xlIGN4PSI4LjUiIGN5PSI3LjUiIHI9IjEiLz48Y2lyY2xlIGN4PSI2LjUiIGN5PSIxMi41IiByPSIxIi8+PHBhdGggZD0iTTEyIDNhOSA5IDAgMSAwIDAgMTggMS41IDEuNSAwIDAgMCAxLjEtMi41IDEuNSAxLjUgMCAwIDEgMS4xLTIuNWgyLjNBNC41IDQuNSAwIDAgMCAyMSAxMS41QzIxIDYuOCAxNi45NyAzIDEyIDN6Ii8+JyxwbGF5Oic8cG9seWdvbiBwb2ludHM9IjYgNCAyMCAxMiA2IDIwIDYgNCIvPicsd3JlbmNoOic8cGF0aCBkPSJNMTQuNyA2LjNhNCA0IDAgMSAxIDQgNGwtOSA5LTMuNSAxIDEtMy41IDcuNS03LjV6Ii8+JyxwYXc6JzxjaXJjbGUgY3g9IjcuNSIgY3k9IjkiIHI9IjIiIGZpbGw9ImN1cnJlbnRDb2xvciIgc3Ryb2tlPSJub25lIi8+PGNpcmNsZSBjeD0iMTIiIGN5PSI2LjgiIHI9IjIiIGZpbGw9ImN1cnJlbnRDb2xvciIgc3Ryb2tlPSJub25lIi8+PGNpcmNsZSBjeD0iMTYuNSIgY3k9IjkiIHI9IjIiIGZpbGw9ImN1cnJlbnRDb2xvciIgc3Ryb2tlPSJub25lIi8+PGNpcmNsZSBjeD0iMTgiIGN5PSIxMy4zIiByPSIxLjgiIGZpbGw9ImN1cnJlbnRDb2xvciIgc3Ryb2tlPSJub25lIi8+PHBhdGggZD0iTTcuMiAxNi4zYy41LTIuOSAyLjMtNC44IDQuOC00LjhzNC4zIDEuOSA0LjggNC44Yy4zIDEuOC0uOSAzLjItMi42IDIuNi0uOC0uMy0xLjQtLjYtMi4yLS42cy0xLjQuMy0yLjIuNmMtMS43LjYtMi45LS44LTIuNi0yLjZ6IiBmaWxsPSJjdXJyZW50Q29sb3IiIHN0cm9rZT0ibm9uZSIvPicsZWRpdDonPHBhdGggZD0iTTEyIDIwaDkiLz48cGF0aCBkPSJNMTYuNSAzLjVhMi4xMiAyLjEyIDAgMCAxIDMgM0w3IDE5bC00IDEgMS00eiIvPicsc2lnbmFsOic8cGF0aCBkPSJNMiAxMmExNSAxNSAwIDAgMSAyMCAwIi8+PHBhdGggZD0iTTUgMTZhMTAgMTAgMCAwIDEgMTQgMCIvPjxwYXRoIGQ9Ik05IDIwYTQgNCAwIDAgMSA2IDAiLz48Y2lyY2xlIGN4PSIxMiIgY3k9IjIwIiByPSIwLjUiIGZpbGw9ImN1cnJlbnRDb2xvciIvPicsZmlsZTonPHBhdGggZD0iTTE0IDNINmEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlY5eiIvPjxwb2x5bGluZSBwb2ludHM9IjE0IDMgMTQgOSAyMCA5Ii8+JyxzaWdtYTonPHBvbHlsaW5lIHBvaW50cz0iMTggNCA2IDQgMTMgMTIgNiAyMCAxOCAyMCIvPicseDonPHBhdGggZD0iTTE4IDYgNiAxOCIvPjxwYXRoIGQ9Ik02IDZsMTIgMTIiLz4nLHBsdXM6JzxsaW5lIHgxPSIxMiIgeTE9IjUiIHgyPSIxMiIgeTI9IjE5Ii8+PGxpbmUgeDE9IjUiIHkxPSIxMiIgeDI9IjE5IiB5Mj0iMTIiLz4nLG1pYzonPHJlY3QgeD0iOSIgeT0iMyIgd2lkdGg9IjYiIGhlaWdodD0iMTEiIHJ4PSIzIi8+PHBhdGggZD0iTTUgMTFhNyA3IDAgMCAwIDE0IDAiLz48bGluZSB4MT0iMTIiIHkxPSIxOCIgeDI9IjEyIiB5Mj0iMjEiLz48bGluZSB4MT0iOSIgeTE9IjIxIiB4Mj0iMTUiIHkyPSIyMSIvPicscGFwZXJjbGlwOic8cGF0aCBkPSJNMjEuNDQgMTEuMDUgMTIuMjUgMjAuMjRhNiA2IDAgMCAxLTguNDktOC40OWw4Ljg0LTguODRhNCA0IDAgMSAxIDUuNjYgNS42Nkw5LjQxIDE3LjQxYTIgMiAwIDEgMS0yLjgzLTIuODNsOC44NC04LjgzIi8+J307ZnVuY3Rpb24geihlLHQpe3ZhciBuPVhsW2VdO2lmKCFuKXJldHVybiIiO3Q9dHx8e307dmFyIGk9dC5zaXplfHwxNCxhPXQuc3Ryb2tlV2lkdGh8fDEuOCx1PXQuY2xzPycgY2xhc3M9IicrdC5jbHMrJyInOiIiLHM9dC5maWxsfHwibm9uZSI7cmV0dXJuIjxzdmciK3UrJyB3aWR0aD0iJytpKyciIGhlaWdodD0iJytpKyciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iJytzKyciIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IicrYSsnIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj4nK24rIjwvc3ZnPiJ9ZnVuY3Rpb24gdW4oKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2hhdC1vdXRwdXQiKTtpZighZSlyZXR1cm4gci5jaGF0U2Nyb2xsRWxlbWVudD1udWxsLG51bGw7dmFyIHQ9ZS5xdWVyeVNlbGVjdG9yKCIuY2hhdC1tZXNzYWdlcyIpO3JldHVybiB0PyhyLmNoYXRTY3JvbGxFbGVtZW50PXQsdCk6KHIuY2hhdFNjcm9sbEVsZW1lbnQ9bnVsbCxudWxsKX1mdW5jdGlvbiBLaShlKXt2YXIgdD1lfHx1bigpO3JldHVybiB0P01hdGguYWJzKHQuc2Nyb2xsVG9wKTxyLmNoYXRTY3JvbGxUaHJlc2hvbGQ6ITB9ZnVuY3Rpb24gd2coZSl7ci5jaGF0U3RpY2tUb0JvdHRvbT0hIWUsci5jaGF0U3RpY2tUb0JvdHRvbSYmQ24oe3JlbW92ZURpdmlkZXI6ITB9KSwkZSgpfWZ1bmN0aW9uIENuKGUpe2U9ZXx8e307dmFyIHQ9ci5jaGF0VW5yZWFkQ291bnQ+MHx8ci5jaGF0VW5yZWFkU3RhcnRJbmRleD49MDtpZihyLmNoYXRVbnJlYWRDb3VudD0wLHIuY2hhdFVucmVhZFN0YXJ0SW5kZXg9LTEsZS5yZW1vdmVEaXZpZGVyIT09ITEpe3ZhciBuPXVuKCk7aWYobil7dmFyIGk9bi5xdWVyeVNlbGVjdG9yKCIuY2hhdC11bnJlYWQtZGl2aWRlciIpO2kmJmkucGFyZW50Tm9kZSYmaS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGkpfX10JiYkZSgpfWZ1bmN0aW9uIEppKGUpe2lmKGV8fChlPXVuKCkpLCEhZSl7dmFyIHQ9ZS5xdWVyeVNlbGVjdG9yKCIuY2hhdC11bnJlYWQtZGl2aWRlciIpO2lmKHIuY2hhdFVucmVhZFN0YXJ0SW5kZXg8MHx8ci5jaGF0VW5yZWFkQ291bnQ8PTApe3QmJnQucGFyZW50Tm9kZSYmdC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHQpO3JldHVybn1mb3IodmFyIG49ci5jaGF0VW5yZWFkU3RhcnRJbmRleCxpPWUucXVlcnlTZWxlY3RvckFsbCgiLmNoYXQtbWVzc2FnZSIpLGE9bnVsbCx1PTA7dTxpLmxlbmd0aDt1Kyspe3ZhciBzPWlbdV0uZ2V0QXR0cmlidXRlKCJkYXRhLW1zZy1pbmRleCIpO2lmKHMhPT1udWxsKXt2YXIgbz1wYXJzZUludChzLDEwKTtpZighaXNOYU4obykmJm88bil7YT1pW3VdO2JyZWFrfX19dmFyIGw9ci5jaGF0VW5yZWFkQ291bnQrIiBcdTY3NjFcdTY1QjBcdTZEODhcdTYwNkYiO3R8fCh0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHQuY2xhc3NOYW1lPSJjaGF0LXVucmVhZC1kaXZpZGVyIix0LnNldEF0dHJpYnV0ZSgicm9sZSIsInNlcGFyYXRvciIpLHQuaW5uZXJIVE1MPSc8c3BhbiBjbGFzcz0iY2hhdC11bnJlYWQtZGl2aWRlci1saW5lIj48L3NwYW4+PHNwYW4gY2xhc3M9ImNoYXQtdW5yZWFkLWRpdmlkZXItbGFiZWwiPjwvc3Bhbj48c3BhbiBjbGFzcz0iY2hhdC11bnJlYWQtZGl2aWRlci1saW5lIj48L3NwYW4+JyksdC5xdWVyeVNlbGVjdG9yKCIuY2hhdC11bnJlYWQtZGl2aWRlci1sYWJlbCIpLnRleHRDb250ZW50PWwsYT8odC5uZXh0U2libGluZyE9PWF8fHQucGFyZW50Tm9kZSE9PWUpJiZlLmluc2VydEJlZm9yZSh0LGEpOih0LnBhcmVudE5vZGUhPT1lfHx0Lm5leHRTaWJsaW5nIT09bnVsbCkmJmUuYXBwZW5kQ2hpbGQodCl9fWZ1bmN0aW9uICRlKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoYXQtdW5yZWFkLWJ1YmJsZSIpO2lmKGUpe3ZhciB0PXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihvKXtyZXR1cm4gby5pZD09PXIuc2VsZWN0ZWRJZH0pLG49IUtpKCksaT0hIXQmJnIuY3VycmVudFZpZXc9PT0iY2hhdCImJm47ZS5jbGFzc0xpc3QudG9nZ2xlKCJ2aXNpYmxlIixpKSxlLmNsYXNzTGlzdC50b2dnbGUoImhhcy11bnJlYWQiLHIuY2hhdFVucmVhZENvdW50PjApO3ZhciBhPWUucXVlcnlTZWxlY3RvcigiLmNoYXQtdW5yZWFkLWJ1YmJsZS1jb3VudCIpO2EmJihyLmNoYXRVbnJlYWRDb3VudD4wPyhhLnRleHRDb250ZW50PXIuY2hhdFVucmVhZENvdW50Pjk5PyI5OSsiOlN0cmluZyhyLmNoYXRVbnJlYWRDb3VudCksYS5jbGFzc0xpc3QuYWRkKCJ2aXNpYmxlIikpOihhLnRleHRDb250ZW50PSIiLGEuY2xhc3NMaXN0LnJlbW92ZSgidmlzaWJsZSIpKSk7dmFyIHU9ci5jaGF0VW5yZWFkQ291bnQ+MD9yLmNoYXRVbnJlYWRDb3VudCsiIFx1Njc2MVx1NjVCMFx1NkQ4OFx1NjA2Rlx1RkYwQ1x1NzBCOVx1NTFGQlx1NjdFNVx1NzcwQiI6Ilx1NTZERVx1NTIzMFx1NjcwMFx1NjVCMFx1NkQ4OFx1NjA2RiI7ZS5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLHUpLGUuc2V0QXR0cmlidXRlKCJ0aXRsZSIsdSk7dmFyIHM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoYXQtb3V0cHV0Iik7cyYmcy5jbGFzc0xpc3QudG9nZ2xlKCJoYXMtanVtcC1idG4iLGkpfX1mdW5jdGlvbiBLcigpe0dpKCl9ZnVuY3Rpb24gR2koZSl7dmFyIHQ9ZXx8dW4oKTtpZih0KXt2YXIgbj10LnF1ZXJ5U2VsZWN0b3IoIi5jaGF0LXBpbi1zcGFjZXIiKTtuJiZuLnBhcmVudE5vZGUmJm4ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChuKX19ZnVuY3Rpb24ga3UoZSl7dmFyIHQ9dW4oKTtpZighKCF0fHwhdC5pc0Nvbm5lY3RlZCkpe0tyKCksR2kodCksci5jaGF0SXNQcm9ncmFtbWF0aWNTY3JvbGw9ITA7dmFyIG49ZnVuY3Rpb24oKXtyLmNoYXRJc1Byb2dyYW1tYXRpY1Njcm9sbD0hMSxyLmNoYXRTdGlja1RvQm90dG9tPSEwLENuKHtyZW1vdmVEaXZpZGVyOiEwfSksJGUoKX07aWYoZSYmdHlwZW9mIHQuc2Nyb2xsVG89PSJmdW5jdGlvbiIpe3Quc2Nyb2xsVG8oe3RvcDowLGJlaGF2aW9yOiJzbW9vdGgifSksc2V0VGltZW91dChuLDI2MCk7cmV0dXJufXQuc2Nyb2xsVG9wPTAscmVxdWVzdEFuaW1hdGlvbkZyYW1lKG4pfX1mdW5jdGlvbiBBdSgpe3ZhciBlPXVuKCk7S3IoKSxlJiZHaShlKSxyLmNoYXRTdGlja1RvQm90dG9tPSEwLENuKHtyZW1vdmVEaXZpZGVyOiEwfSksZSYmZS5pc0Nvbm5lY3RlZCYmKHIuY2hhdElzUHJvZ3JhbW1hdGljU2Nyb2xsPSEwLHIuY2hhdFByb2dyYW1tYXRpY1Njcm9sbFVudGlsPURhdGUubm93KCkrMTgwLGUuc2Nyb2xsVG9wPTAscmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7ci5jaGF0SXNQcm9ncmFtbWF0aWNTY3JvbGw9ITF9KSksJGUoKX1mdW5jdGlvbiBzcigpe3ZhciBlPXVuKCk7aWYoIWV8fCFlLmlzQ29ubmVjdGVkKXJldHVybjtpZihyLmNoYXRTY3JvbGxFbGVtZW50PT09ZSYmci5jaGF0U2Nyb2xsSGFuZGxlcil7JGUoKTtyZXR1cm59ci5jaGF0U2Nyb2xsRWxlbWVudCYmKHIuY2hhdFNjcm9sbEhhbmRsZXImJnIuY2hhdFNjcm9sbEVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIixyLmNoYXRTY3JvbGxIYW5kbGVyKSxyLmNoYXRTY3JvbGxXaGVlbEhhbmRsZXImJnIuY2hhdFNjcm9sbEVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigid2hlZWwiLHIuY2hhdFNjcm9sbFdoZWVsSGFuZGxlciksci5jaGF0U2Nyb2xsVG91Y2hTdGFydEhhbmRsZXImJnIuY2hhdFNjcm9sbEVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsci5jaGF0U2Nyb2xsVG91Y2hTdGFydEhhbmRsZXIpLHIuY2hhdFNjcm9sbFRvdWNoTW92ZUhhbmRsZXImJnIuY2hhdFNjcm9sbEVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIixyLmNoYXRTY3JvbGxUb3VjaE1vdmVIYW5kbGVyKSksci5jaGF0U2Nyb2xsRWxlbWVudD1lO2Z1bmN0aW9uIHQoKXtLcigpLHIuY2hhdFN0aWNrVG9Cb3R0b209ITEsZS5xdWVyeVNlbGVjdG9yKCIuY2hhdC1oaXN0b3J5LXN1bW1hcnkiKSYmV2UoITApLCRlKCl9ci5jaGF0U2Nyb2xsSGFuZGxlcj1mdW5jdGlvbigpe2lmKGUuaXNDb25uZWN0ZWQpe2lmKHIuY2hhdElzUHJvZ3JhbW1hdGljU2Nyb2xsfHxEYXRlLm5vdygpPHIuY2hhdFByb2dyYW1tYXRpY1Njcm9sbFVudGlsKXskZSgpO3JldHVybn12YXIgbj1LaShlKTtpZihuKUtyKCksci5jaGF0U3RpY2tUb0JvdHRvbT0hMCxDbih7cmVtb3ZlRGl2aWRlcjohMH0pO2Vsc2V7dCgpO3JldHVybn0kZSgpfX0sci5jaGF0U2Nyb2xsV2hlZWxIYW5kbGVyPWZ1bmN0aW9uKG4pe3IuY2hhdElzUHJvZ3JhbW1hdGljU2Nyb2xsfHxuLmRlbHRhWTwwJiZ0KCl9LHIuY2hhdFNjcm9sbFRvdWNoU3RhcnRIYW5kbGVyPWZ1bmN0aW9uKG4peyFuLnRvdWNoZXN8fG4udG91Y2hlcy5sZW5ndGg9PT0wfHwoci5jaGF0VG91Y2hTdGFydFk9bi50b3VjaGVzWzBdLmNsaWVudFkpfSxyLmNoYXRTY3JvbGxUb3VjaE1vdmVIYW5kbGVyPWZ1bmN0aW9uKG4pe2lmKCFyLmNoYXRJc1Byb2dyYW1tYXRpY1Njcm9sbCYmISghbi50b3VjaGVzfHxuLnRvdWNoZXMubGVuZ3RoPT09MCkpe3ZhciBpPW4udG91Y2hlc1swXS5jbGllbnRZLXIuY2hhdFRvdWNoU3RhcnRZO2k+NCYmdCgpfX0sZS5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLHIuY2hhdFNjcm9sbEhhbmRsZXIse3Bhc3NpdmU6ITB9KSxlLmFkZEV2ZW50TGlzdGVuZXIoIndoZWVsIixyLmNoYXRTY3JvbGxXaGVlbEhhbmRsZXIse3Bhc3NpdmU6ITB9KSxlLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLHIuY2hhdFNjcm9sbFRvdWNoU3RhcnRIYW5kbGVyLHtwYXNzaXZlOiEwfSksZS5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLHIuY2hhdFNjcm9sbFRvdWNoTW92ZUhhbmRsZXIse3Bhc3NpdmU6ITB9KSwkZSgpfWZ1bmN0aW9uIHh1KCl7aWYoci5jaGF0UmVuZGVyZWRDb3VudDxyLmN1cnJlbnRNZXNzYWdlcy5sZW5ndGgpe3IuY2hhdFJlbmRlcmVkQ291bnQrPXIuY2hhdFBhZ2VTaXplLFdlKCEwKTtyZXR1cm59dmFyIGU9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKHQpe3JldHVybiB0LmlkPT09ci5zZWxlY3RlZElkfSk7ZSYmdHlwZW9mIGUubWVzc2FnZU9mZnNldD09Im51bWJlciImJmUubWVzc2FnZU9mZnNldD4wJiZnbSgpfXZhciBvcj1udWxsO2Z1bmN0aW9uIFpsKCl7b3ImJihvci5kaXNjb25uZWN0KCksb3I9bnVsbCk7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoYXQtbG9hZC1tb3JlLXNlbnRpbmVsIik7aWYoZSl7dmFyIHQ9ZS5xdWVyeVNlbGVjdG9yKCIuY2hhdC1sb2FkLW1vcmUtYnRuIik7dCYmKHQub25jbGljaz1mdW5jdGlvbigpe3h1KCl9KTt2YXIgbj0hISh3aW5kb3cubWF0Y2hNZWRpYSYmd2luZG93Lm1hdGNoTWVkaWEoIihwb2ludGVyOiBjb2Fyc2UpIikubWF0Y2hlcyksaT13aW5kb3cuaW5uZXJXaWR0aDw9NzY4O258fGl8fHdpbmRvdy5fX3dhbmRJbWVOYXRpdmV8fHdpbmRvdy5fX3dhbmRJb3NOYXRpdmV8fHR5cGVvZiBJbnRlcnNlY3Rpb25PYnNlcnZlcj4idSJ8fChvcj1uZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24oYSl7Zm9yKHZhciB1PTA7dTxhLmxlbmd0aDt1KyspaWYoYVt1XS5pc0ludGVyc2VjdGluZyl7eHUoKTticmVha319LHtyb290OnVuKCkscm9vdE1hcmdpbjoiMjAwcHgifSksb3Iub2JzZXJ2ZShlKSl9fWZ1bmN0aW9uIHdlKCl7dHJ5e3Iuc2VsZWN0ZWRJZD9sb2NhbFN0b3JhZ2Uuc2V0SXRlbSgid2FuZC1zZWxlY3RlZC1zZXNzaW9uIixyLnNlbGVjdGVkSWQpOmxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCJ3YW5kLXNlbGVjdGVkLXNlc3Npb24iKX1jYXRjaHt9fWZ1bmN0aW9uIFlpKGUpe3JldHVybiBlJiZBcnJheS5pc0FycmF5KGUucXVldWVkTWVzc2FnZXMpP2UucXVldWVkTWVzc2FnZXM6ci5zdHJ1Y3R1cmVkSW5wdXRRdWV1ZX1mdW5jdGlvbiBlYygpe3ZhciBlPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbih0KXtyZXR1cm4gdC5pZD09PXIuc2VsZWN0ZWRJZH0pO3JldHVybiBZaShlKX1mdW5jdGlvbiBKcihlKXt2YXIgdD1ZaShlKTtyLnN0cnVjdHVyZWRJbnB1dFF1ZXVlPUFycmF5LmlzQXJyYXkodCk/dC5zbGljZSgpOltdfWZ1bmN0aW9uIFN1KGUsdCl7cmV0dXJuISEoZSYmQXJyYXkuaXNBcnJheShlLmNvbnRlbnQpJiZlLmNvbnRlbnQuc29tZShmdW5jdGlvbihuKXtyZXR1cm4gbiYmdHlwZW9mIG49PSJvYmplY3QiJiZuW3RdfSkpfWZ1bmN0aW9uIHRjKGUpe3JldHVybiEhKGUmJmUucm9sZT09PSJ1c2VyIiYmU3UoZSwiX19xdWV1ZWQiKSl9ZnVuY3Rpb24gbmMoZSl7cmV0dXJuISEoZSYmZS5yb2xlPT09ImFzc2lzdGFudCImJlN1KGUsIl9fcHJvY2Vzc2luZyIpKX1mdW5jdGlvbiBscihlKXtpZighQXJyYXkuaXNBcnJheShlKSlyZXR1cm5bXTtmb3IodmFyIHQ9ITEsbj1bXSxpPTA7aTxlLmxlbmd0aDtpKyspe3ZhciBhPWVbaV07aWYodGMoYSl8fG5jKGEpKXt0PSEwO2NvbnRpbnVlfW4ucHVzaChhKX1yZXR1cm4gdD9uOmV9ZnVuY3Rpb24gcmMoZSx0KXtpZighZXx8IUFycmF5LmlzQXJyYXkoZS5tZXNzYWdlcykpcmV0dXJuIGU7dmFyIG49ZS5zZXNzaW9uS2luZHx8dCYmdC5zZXNzaW9uS2luZDtpZihuIT09InN0cnVjdHVyZWQiKXJldHVybiBlO3ZhciBpPWxyKGUubWVzc2FnZXMpO3JldHVybiBpPT09ZS5tZXNzYWdlcz9lOk9iamVjdC5hc3NpZ24oe30sZSx7bWVzc2FnZXM6aX0pfWZ1bmN0aW9uIEl1KCl7dHJ5e3ZhciBlPWVjKCk7aWYoIXIuc2VsZWN0ZWRJZHx8ZS5sZW5ndGg9PT0wKXJldHVybjtsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgid2FuZC1zdHJ1Y3R1cmVkLXF1ZXVlIixKU09OLnN0cmluZ2lmeSh7c2Vzc2lvbklkOnIuc2VsZWN0ZWRJZCxpdGVtczplfSkpfWNhdGNoe319ZnVuY3Rpb24gVHUoZSl7dHJ5e3ZhciB0PWxvY2FsU3RvcmFnZS5nZXRJdGVtKCJ3YW5kLXN0cnVjdHVyZWQtcXVldWUiKTtpZighdClyZXR1cm47dmFyIG49SlNPTi5wYXJzZSh0KTsoIWV8fCFufHxuLnNlc3Npb25JZD09PWUpJiZsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgid2FuZC1zdHJ1Y3R1cmVkLXF1ZXVlIil9Y2F0Y2h7bG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oIndhbmQtc3RydWN0dXJlZC1xdWV1ZSIpfX1mdW5jdGlvbiBMdSgpe3ZhciBlPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihpKXtyZXR1cm4gaS5pZD09PXIuc2VsZWN0ZWRJZH0pO2lmKGUmJkFycmF5LmlzQXJyYXkoZS5xdWV1ZWRNZXNzYWdlcykpe0pyKGUpLEl1KCk7cmV0dXJufXRyeXt2YXIgdD1sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgid2FuZC1zdHJ1Y3R1cmVkLXF1ZXVlIik7aWYoIXQpcmV0dXJuO3ZhciBuPUpTT04ucGFyc2UodCk7aWYoIW58fG4uc2Vzc2lvbklkIT09ci5zZWxlY3RlZElkfHwhQXJyYXkuaXNBcnJheShuLml0ZW1zKSlyZXR1cm47ci5zdHJ1Y3R1cmVkSW5wdXRRdWV1ZT1uLml0ZW1zLnNsaWNlKDAsMTApfWNhdGNoe3Iuc3RydWN0dXJlZElucHV0UXVldWU9W119fWZ1bmN0aW9uIFh0KCl7dHJ5e2lmKHIuY3Jvc3NTZXNzaW9uUXVldWUubGVuZ3RoPT09MCl7bG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oIndhbmQtY3Jvc3Mtc2Vzc2lvbi1xdWV1ZSIpO3JldHVybn1sb2NhbFN0b3JhZ2Uuc2V0SXRlbSgid2FuZC1jcm9zcy1zZXNzaW9uLXF1ZXVlIixKU09OLnN0cmluZ2lmeShyLmNyb3NzU2Vzc2lvblF1ZXVlKSl9Y2F0Y2h7fX1mdW5jdGlvbiBzbigpe3JldHVybiByLmNvbmZpZyYmci5jb25maWcuZGVmYXVsdEN3ZHx8Ii90bXAifWZ1bmN0aW9uIE11KCl7dHJ5e3ZhciBlPWxvY2FsU3RvcmFnZS5nZXRJdGVtKHppKTtpZighZSlyZXR1cm57fTt2YXIgdD1KU09OLnBhcnNlKGUpO3JldHVybiB0JiZ0eXBlb2YgdD09Im9iamVjdCI/dDp7fX1jYXRjaHtyZXR1cm57fX19ZnVuY3Rpb24gaWMoZSl7dHJ5e2lmKCFlfHxPYmplY3Qua2V5cyhlKS5sZW5ndGg9PT0wKXtsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSh6aSk7cmV0dXJufWxvY2FsU3RvcmFnZS5zZXRJdGVtKHppLEpTT04uc3RyaW5naWZ5KGUpKX1jYXRjaHt9fWZ1bmN0aW9uIGFjKCl7dmFyIGU9ci5zZWxlY3RlZElkO2lmKCFlKXJldHVybnt9O3ZhciB0PU11KCksbj10W2VdO3JldHVybiBuJiZ0eXBlb2Ygbj09Im9iamVjdCI/bjp7fX1mdW5jdGlvbiBYZShlKXtpZighZXx8IXIuc2VsZWN0ZWRJZClyZXR1cm4gbnVsbDt2YXIgdD1hYygpO3JldHVybiB0eXBlb2YgdFtlXT09ImJvb2xlYW4iP3RbZV06bnVsbH1mdW5jdGlvbiBxdShlLHQpe2lmKCEoIWV8fCFyLnNlbGVjdGVkSWQpKXt2YXIgbj1NdSgpLGk9ci5zZWxlY3RlZElkLGE9bltpXTsoIWF8fHR5cGVvZiBhIT0ib2JqZWN0IikmJihhPXt9KSxhW2VdPSEhdCxuW2ldPWEsaWMobil9fWZ1bmN0aW9uIE91KGUsdCl7cmV0dXJuIGU/ZS51dWlkPyJtc2c6IitlLnV1aWQ6ZS5pZD8ibXNnOiIrZS5pZDplLm1lc3NhZ2VJZD8ibXNnOiIrZS5tZXNzYWdlSWQ6ZS50dXJuSWQ/Im1zZzoiK2UudHVybklkOiJtc2c6IisodHlwZW9mIHQ9PSJudW1iZXIiP3Q6MCk6Im1zZzp1bmtub3duLSIrKHR5cGVvZiB0PT0ibnVtYmVyIj90OjApfWZ1bmN0aW9uIE90KGUsdCl7Zm9yKHZhciBuPVtdLGk9MDtpPHQubGVuZ3RoO2krKyl7dmFyIGE9dFtpXTthPT1udWxsfHxhPT09IiJ8fG4ucHVzaChTdHJpbmcoYSkpfXJldHVybiBlKyI6IituLmpvaW4oIjoiKX1mdW5jdGlvbiBQbihlKXtyZXR1cm4hZXx8IWUuZGF0YXNldD8iIjplLmRhdGFzZXQuZXhwYW5kS2V5fHwiIn1mdW5jdGlvbiB1YyhlLHQpe2lmKCFlKXJldHVybiExO3N3aXRjaCh0KXtjYXNlInRvb2wtY2FyZCI6Y2FzZSJkaWZmIjpyZXR1cm4hZS5jbGFzc0xpc3QuY29udGFpbnMoImNvbGxhcHNlZCIpO2Nhc2UidGhpbmtpbmciOnJldHVybiBlLmNsYXNzTGlzdC5jb250YWlucygiZXhwYW5kZWQiKSYmIWUuY2xhc3NMaXN0LmNvbnRhaW5zKCJjb2xsYXBzZWQiKTtjYXNlImlubGluZS10b29sIjpyZXR1cm4gZS5jbGFzc0xpc3QuY29udGFpbnMoImlubGluZS10b29sLW9wZW4iKTtjYXNlInRlcm1pbmFsIjp7dmFyIG49ZS5xdWVyeVNlbGVjdG9yKCIudGVybS1ib2R5Iik7cmV0dXJuIG4/bi5zdHlsZS5kaXNwbGF5IT09Im5vbmUiOmUuZGF0YXNldC5leHBhbmRlZD09PSJ0cnVlIn1jYXNlInRvb2wtZ3JvdXAiOnJldHVybiBlLmdldEF0dHJpYnV0ZSgiZGF0YS1leHBhbmRlZCIpPT09InRydWUiO2Nhc2Uic3ViYWdlbnQtcmVwbHkiOnJldHVybiBlLmdldEF0dHJpYnV0ZSgiZGF0YS1leHBhbmRlZCIpPT09InRydWUiO2Nhc2Uic3ViYWdlbnQtcGFuZWwiOnJldHVybiBlLmdldEF0dHJpYnV0ZSgiZGF0YS1leHBhbmRlZCIpPT09InRydWUiO2RlZmF1bHQ6cmV0dXJuITF9fWZ1bmN0aW9uIFFpKGUsdCxuKXtpZihlKXN3aXRjaCh0KXtjYXNlInRvb2wtY2FyZCI6Y2FzZSJkaWZmIjp7ZS5jbGFzc0xpc3QudG9nZ2xlKCJjb2xsYXBzZWQiLCFuKTticmVha31jYXNlInRoaW5raW5nIjp7ZS5jbGFzc0xpc3QudG9nZ2xlKCJjb2xsYXBzZWQiLCFuKSxlLmNsYXNzTGlzdC50b2dnbGUoImV4cGFuZGVkIiwhIW4pO3ZhciBpPWUucXVlcnlTZWxlY3RvcigiLnRoaW5raW5nLWlubGluZS1wcmV2aWV3Iik7aWYoaSl7dmFyIGE9ZS5kYXRhc2V0LnRoaW5raW5nfHwiIix1PWEuc2xpY2UoMCw1NykrKGEubGVuZ3RoPjYwPyJcdTIwMjYiOiIiKTtpLnRleHRDb250ZW50PW4/YTp1fXZhciBzPWUucXVlcnlTZWxlY3RvcigiLnRoaW5raW5nLWlubGluZS1hY3Rpb24iKTtzJiYocy50ZXh0Q29udGVudD1uPyJcdTY1MzZcdThENzciOiJcdTVDNTVcdTVGMDAiKTticmVha31jYXNlImlubGluZS10b29sIjp7ZS5jbGFzc0xpc3QudG9nZ2xlKCJpbmxpbmUtdG9vbC1vcGVuIiwhIW4pO3ZhciBvPWUucXVlcnlTZWxlY3RvcigiLmlubGluZS10b29sLWV4cGFuZGVkIik7byYmKG8uc3R5bGUuZGlzcGxheT1uPyJibG9jayI6Im5vbmUiKTticmVha31jYXNlInRlcm1pbmFsIjp7dmFyIGw9ZS5xdWVyeVNlbGVjdG9yKCIudGVybS1ib2R5Iik7bCYmKGwuc3R5bGUuZGlzcGxheT1uPyJibG9jayI6Im5vbmUiKSxlLmRhdGFzZXQuZXhwYW5kZWQ9bj8idHJ1ZSI6ImZhbHNlIjt2YXIgYz1lLnF1ZXJ5U2VsZWN0b3IoIi50ZXJtLXRvZ2dsZS1pY29uIik7YyYmKGMudGV4dENvbnRlbnQ9bj8iXHUyNUJDIjoiXHUyNUI2Iik7YnJlYWt9Y2FzZSJ0b29sLWdyb3VwIjp7ZS5zZXRBdHRyaWJ1dGUoImRhdGEtZXhwYW5kZWQiLG4/InRydWUiOiJmYWxzZSIpO3ZhciBmPWUucXVlcnlTZWxlY3RvcigiLnRvb2wtZ3JvdXAtYm9keSIpO2YmJihmLnN0eWxlLmRpc3BsYXk9bj8iYmxvY2siOiJub25lIik7dmFyIGQ9ZS5xdWVyeVNlbGVjdG9yKCIudG9vbC1ncm91cC1jaGV2cm9uIik7ZCYmKGQuc3R5bGUudHJhbnNmb3JtPW4/InJvdGF0ZSgxODBkZWcpIjoiIik7YnJlYWt9Y2FzZSJzdWJhZ2VudC1yZXBseSI6e2Uuc2V0QXR0cmlidXRlKCJkYXRhLWV4cGFuZGVkIixuPyJ0cnVlIjoiZmFsc2UiKTt2YXIgdj1lLnF1ZXJ5U2VsZWN0b3IoIi5zdWJhZ2VudC1yZXBseS10b2dnbGUtbGFiZWwiKTt2JiYodi50ZXh0Q29udGVudD1uPyJcdTY1MzZcdThENzciOiJcdTVDNTVcdTVGMDAiKTt2YXIgaD1lLnF1ZXJ5U2VsZWN0b3IoIi5zdWJhZ2VudC1yZXBseS10b2dnbGUiKTtoJiYoaC5zZXRBdHRyaWJ1dGUoImFyaWEtZXhwYW5kZWQiLG4/InRydWUiOiJmYWxzZSIpLGguc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIixuPyJcdTY1MzZcdThENzdcdTVCNTBcdTRFRTNcdTc0MDZcdTU2REVcdTU5MEQiOiJcdTVDNTVcdTVGMDBcdTVCNTBcdTRFRTNcdTc0MDZcdTU2REVcdTU5MERcdTUxNjhcdTY1ODciKSk7YnJlYWt9Y2FzZSJzdWJhZ2VudC1wYW5lbCI6e2Uuc2V0QXR0cmlidXRlKCJkYXRhLWV4cGFuZGVkIixuPyJ0cnVlIjoiZmFsc2UiKTtmb3IodmFyIGc9ZS5xdWVyeVNlbGVjdG9yQWxsKCIuc3ViYWdlbnQtcGFuZWwtdG9nZ2xlIiksbT0wO208Zy5sZW5ndGg7bSsrKXt2YXIgeT1nW21dO3kuc2V0QXR0cmlidXRlKCJhcmlhLWV4cGFuZGVkIixuPyJ0cnVlIjoiZmFsc2UiKSx5LnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsbj8iXHU2NTM2XHU4RDc3XHU1QjUwXHU0RUUzXHU3NDA2XHU4RjkzXHU1MUZBIjoiXHU1QzU1XHU1RjAwXHU1QjUwXHU0RUUzXHU3NDA2XHU4RjkzXHU1MUZBIik7dmFyIHc9eS5xdWVyeVNlbGVjdG9yKCIuc3ViYWdlbnQtcGFuZWwtdG9nZ2xlLWxhYmVsIik7dyYmKHcudGV4dENvbnRlbnQ9bj8iXHU2NTM2XHU4RDc3IjoiXHU1QzU1XHU1RjAwIil9dmFyIEU9ZS5xdWVyeVNlbGVjdG9yKCIuc3ViYWdlbnQtcGFuZWwtYm9keSIpO0UmJihuP0Uuc2Nyb2xsVG9wPTA6RS5zY3JvbGxUb3A9RS5zY3JvbGxIZWlnaHQpO2JyZWFrfX19ZnVuY3Rpb24gQm4oZSx0KXt2YXIgbj1QbihlKTtuJiZxdShuLHVjKGUsdCkpfWZ1bmN0aW9uICRpKGUpeyFlfHwhci5zZWxlY3RlZElkfHxlLnF1ZXJ5U2VsZWN0b3JBbGwoIltkYXRhLWV4cGFuZC1rZXldIikuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgbj1Qbih0KSxpPXQuZGF0YXNldC5leHBhbmRLaW5kfHwiIixhPVhlKG4pO2E9PT1udWxsfHwhaXx8UWkodCxpLGEpfSl9ZnVuY3Rpb24gTmUoKXtyZXR1cm4gd2luZG93LmlubmVyV2lkdGg8PTc2OH1mdW5jdGlvbiBQdSgpe3JldHVybiEhci5zZXNzaW9uc0RyYXdlck9wZW4mJihOZSgpfHwhci5zaWRlYmFyUGlubmVkKX1mdW5jdGlvbiBYaShlKXtyLmZpbGVQYW5lbE9wZW49ZTt0cnl7bG9jYWxTdG9yYWdlLnNldEl0ZW0oIndhbmQtZmlsZS1wYW5lbC1vcGVuIixTdHJpbmcoci5maWxlUGFuZWxPcGVuKSl9Y2F0Y2h7fXIuZmlsZVBhbmVsT3BlbiYmTmUoKSYmKHIuc2Vzc2lvbnNEcmF3ZXJPcGVuPSExLHhlKCJ3YW5kLXNpZGViYXItb3BlbiIsITEpKSxvbigpLHIuZmlsZVBhbmVsT3BlbiYmUHQoKX1mdW5jdGlvbiBHcigpe1hpKCFyLmZpbGVQYW5lbE9wZW4pfWZ1bmN0aW9uIHNjKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtc2lkZS1wYW5lbCIpLHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLm1haW4tY29udGVudCIpLG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtcGFuZWwtdG9nZ2xlLWJ0biIpLGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtcGFuZWwtYmFja2Ryb3AiKTtlJiZlLmNsYXNzTGlzdC50b2dnbGUoIm9wZW4iLHIuZmlsZVBhbmVsT3BlbiksdCYmdC5jbGFzc0xpc3QudG9nZ2xlKCJmaWxlLXBhbmVsLW9wZW4iLHIuZmlsZVBhbmVsT3BlbiksaSYmaS5jbGFzc0xpc3QudG9nZ2xlKCJvcGVuIixyLmZpbGVQYW5lbE9wZW4pLG4mJm4uY2xhc3NMaXN0LnRvZ2dsZSgiYWN0aXZlIixyLmZpbGVQYW5lbE9wZW4pfWZ1bmN0aW9uIG9uKCl7TXIoKSxzYygpfWZ1bmN0aW9uIG9jKGUpe3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLWV4cGxvcmVyLWN3ZCIpO2lmKHQpe3ZhciBuPWUmJmUuY3dkP2UuY3dkOnNuKCk7dC50YWdOYW1lPT09IklOUFVUIj9kb2N1bWVudC5hY3RpdmVFbGVtZW50IT09dCYmKHQudmFsdWU9bixoZyh0KSk6dC50ZXh0Q29udGVudD1uLHQudGl0bGU9bjt2YXIgaT10LmNsb3Nlc3QoIi5maWxlLWV4cGxvcmVyLWhlYWRlciIpO2kmJmlyKGkpfX1mdW5jdGlvbiBIdSgpe3IuZmlsZVBhbmVsT3BlbiYmWGkoITEpfWZ1bmN0aW9uIF91KGUpe3ZhciB0PXIudGVybWluYWxTY2FsZStlO2lmKHQ9TWF0aC5tYXgoLjUsTWF0aC5taW4oMix0KSksdD1NYXRoLnJvdW5kKHQqNCkvNCx0IT09ci50ZXJtaW5hbFNjYWxlKXtyLnRlcm1pbmFsU2NhbGU9dDt0cnl7bG9jYWxTdG9yYWdlLnNldEl0ZW0oIndhbmQtdGVybWluYWwtc2NhbGUiLFN0cmluZyh0KSl9Y2F0Y2h7fU51KCksbGMoKX19ZnVuY3Rpb24gTnUoKXtpZighKCFyLnRlcm1pbmFsfHwhci50ZXJtaW5hbC5lbGVtZW50KSl7dmFyIGU9ci50ZXJtaW5hbEJhc2VGb250U2l6ZSpyLnRlcm1pbmFsU2NhbGUsdD1NYXRoLm1heCgxLE1hdGgucm91bmQoZSkpLG49TWF0aC5tYXgoMSxNYXRoLnJvdW5kKGUqMS41KSk7ci50ZXJtaW5hbC5lbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCItLXRlcm0tZm9udC1zaXplIix0KyJweCIpLHIudGVybWluYWwuZWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgiLS10ZXJtLXJvdy1oZWlnaHQiLG4rInB4IiksdHlwZW9mIHIudGVybWluYWwucmVtZWFzdXJlPT0iZnVuY3Rpb24iJiZyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXtyLnRlcm1pbmFsJiZyLnRlcm1pbmFsLnJlbWVhc3VyZSgpfSl9fWZ1bmN0aW9uIGxjKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlcm1pbmFsLXNjYWxlLWxhYmVsLXRvcCIpO2UmJihlLnRleHRDb250ZW50PU1hdGgucm91bmQoci50ZXJtaW5hbFNjYWxlKjEwMCkrIiUiKX12YXIgY2M9eyJjaGV2cm9uLWxlZnQiOic8cGF0aCBkPSJNMTUgMThsLTYtNiA2LTYiLz4nLCJhcnJvdy11cCI6JzxwYXRoIGQ9Ik0xMiAxOVY1Ii8+PHBhdGggZD0iTTUgMTJsNy03IDcgNyIvPicscmVmcmVzaDonPHBhdGggZD0iTTIxIDEyYTkgOSAwIDEgMS0zLTYuNyIvPjxwYXRoIGQ9Ik0yMSA0djVoLTUiLz4nLGV5ZTonPHBhdGggZD0iTTEgMTJzNC03IDExLTcgMTEgNyAxMSA3LTQgNy0xMSA3UzEgMTIgMSAxMnoiLz48Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIzIi8+JywiZXllLW9mZiI6JzxwYXRoIGQ9Ik0xNy45NCAxNy45NEExMC45NCAxMC45NCAwIDAgMSAxMiAxOWMtNyAwLTExLTctMTEtN2ExOS44NiAxOS44NiAwIDAgMSA0LjIyLTUuMTgiLz48cGF0aCBkPSJNMSAxbDIyIDIyIi8+PHBhdGggZD0iTTkuOSA0LjI0QTEwLjk0IDEwLjk0IDAgMCAxIDEyIDRjNyAwIDExIDcgMTEgN2ExOS44MyAxOS44MyAwIDAgMS0zLjM2IDQuMjciLz48cGF0aCBkPSJNMTQuMTIgMTQuMTJhMyAzIDAgMSAxLTQuMjQtNC4yNCIvPicseDonPHBhdGggZD0iTTE4IDZMNiAxOCIvPjxwYXRoIGQ9Ik02IDZsMTIgMTIiLz4nLHNlYXJjaDonPGNpcmNsZSBjeD0iMTEiIGN5PSIxMSIgcj0iNyIvPjxwYXRoIGQ9Ik0yMSAyMWwtNC4zLTQuMyIvPicsY29weTonPHJlY3QgeD0iOSIgeT0iOSIgd2lkdGg9IjExIiBoZWlnaHQ9IjExIiByeD0iMiIvPjxwYXRoIGQ9Ik01IDE1VjVhMiAyIDAgMCAxIDItMmgxMCIvPicsY2xpcGJvYXJkOic8cmVjdCB4PSI4IiB5PSIzIiB3aWR0aD0iOCIgaGVpZ2h0PSI0IiByeD0iMSIvPjxwYXRoIGQ9Ik0xNiA1aDJhMiAyIDAgMCAxIDIgMnYxMmEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY3YTIgMiAwIDAgMSAyLTJoMiIvPicsZG93bmxvYWQ6JzxwYXRoIGQ9Ik0yMSAxNXY0YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0ydi00Ii8+PHBhdGggZD0iTTcgMTBsNSA1IDUtNSIvPjxwYXRoIGQ9Ik0xMiAxNVYzIi8+JyxlZGl0Oic8cGF0aCBkPSJNMTIgMjBoOSIvPjxwYXRoIGQ9Ik0xNi41IDMuNWEyLjEyMSAyLjEyMSAwIDAgMSAzIDNMNyAxOWwtNCAxIDEtNHoiLz4nLHNhdmU6JzxwYXRoIGQ9Ik0xOSAyMUg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDExbDUgNXYxMWEyIDIgMCAwIDEtMiAyeiIvPjxwYXRoIGQ9Ik0xNyAyMXYtOEg3djgiLz48cGF0aCBkPSJNNyAzdjVoOCIvPicsInJvdGF0ZS1jY3ciOic8cGF0aCBkPSJNMyAxMmE5IDkgMCAxIDAgMy02LjciLz48cGF0aCBkPSJNMyA0djVoNSIvPicsIndyYXAtdGV4dCI6JzxwYXRoIGQ9Ik0zIDZoMTgiLz48cGF0aCBkPSJNMyAxMmgxNWEzIDMgMCAxIDEgMCA2aC00Ii8+PHBhdGggZD0iTTE2IDE2bC0yIDIgMiAyIi8+PHBhdGggZD0iTTMgMThoNiIvPicsdHlwZTonPHBhdGggZD0iTTQgN1Y0aDE2djMiLz48cGF0aCBkPSJNOSAyMGg2Ii8+PHBhdGggZD0iTTEyIDR2MTYiLz4nLG1pbnVzOic8cGF0aCBkPSJNNSAxMmgxNCIvPicscGx1czonPHBhdGggZD0iTTEyIDV2MTQiLz48cGF0aCBkPSJNNSAxMmgxNCIvPicsInNlbmQtdG8taW5wdXQiOic8cGF0aCBkPSJNMjIgMkwxMSAxMyIvPjxwYXRoIGQ9Ik0yMiAybC03IDIwLTQtOS05LTR6Ii8+Jyx0ZXJtaW5hbDonPHBvbHlsaW5lIHBvaW50cz0iNCAxNyAxMCAxMSA0IDUiLz48bGluZSB4MT0iMTIiIHkxPSIxOSIgeDI9IjIwIiB5Mj0iMTkiLz4nLCJmb2xkZXItb3BlbiI6JzxwYXRoIGQ9Ik02IDE0bDEuNDUtMi45QTIgMiAwIDAgMSA5LjI0IDEwSDIwYTIgMiAwIDAgMSAxLjk0IDIuNWwtMS41NSA2YTIgMiAwIDAgMS0xLjk0IDEuNUg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDMuOTNhMiAyIDAgMCAxIDEuNjYuOWwuODIgMS4yYTIgMiAwIDAgMCAxLjY2LjlIMThhMiAyIDAgMCAxIDIgMnYyIi8+JyxpbmZvOic8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIvPjxsaW5lIHgxPSIxMiIgeTE9IjE2IiB4Mj0iMTIiIHkyPSIxMiIvPjxsaW5lIHgxPSIxMiIgeTE9IjgiIHgyPSIxMi4wMSIgeTI9IjgiLz4nfTtmdW5jdGlvbiBNZShlLHQpe3Q9dHx8e307dmFyIG49Y2NbZV18fCIiLGk9dC5zaXplfHwxNixhPXQuY2xhc3NOYW1lPyIgIit0LmNsYXNzTmFtZToiIjtyZXR1cm4nPHN2ZyBjbGFzcz0id2FuZC1pY29uIHdhbmQtaWNvbi0nK2UrYSsnIiB3aWR0aD0iJytpKyciIGhlaWdodD0iJytpKyciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+JytuKyI8L3N2Zz4ifWZ1bmN0aW9uIGRjKGUpe3ZhciB0PWV8fHNuKCk7cmV0dXJuIHQ/JzxkaXYgY2xhc3M9ImZpbGUtdHJlZSIgaWQ9ImZpbGUtdHJlZSIgZGF0YS1jd2Q9IicrcCh0KSsnIj48ZGl2IGNsYXNzPSJ0cmVlLWxvYWRpbmciPlx1NTJBMFx1OEY3RFx1NEUyRFx1MjAyNjwvZGl2PjwvZGl2Pic6JzxkaXYgY2xhc3M9ImZpbGUtZXhwbG9yZXIgZW1wdHkiPlx1NjcyQVx1OTE0RFx1N0Y2RVx1NURFNVx1NEY1Q1x1NzZFRVx1NUY1NVx1MzAwMjwvZGl2Pid9dmFyIGZjPXtwbmc6Ilx1ezFGNUJDfVx1RkUwRiIsanBnOiJcdXsxRjVCQ31cdUZFMEYiLGpwZWc6Ilx1ezFGNUJDfVx1RkUwRiIsZ2lmOiJcdXsxRjVCQ31cdUZFMEYiLHdlYnA6Ilx1ezFGNUJDfVx1RkUwRiIsc3ZnOiJcdXsxRjVCQ31cdUZFMEYiLGF2aWY6Ilx1ezFGNUJDfVx1RkUwRiIsYm1wOiJcdXsxRjVCQ31cdUZFMEYiLGljbzoiXHV7MUY1QkN9XHVGRTBGIixoZWljOiJcdXsxRjVCQ31cdUZFMEYiLGhlaWY6Ilx1ezFGNUJDfVx1RkUwRiIscGRmOiJcdXsxRjRENX0iLGRvYzoiXHV7MUY0RDh9Iixkb2N4OiJcdXsxRjREOH0iLG9kdDoiXHV7MUY0RDh9Iix4bHM6Ilx1ezFGNENBfSIseGxzeDoiXHV7MUY0Q0F9Iixjc3Y6Ilx1ezFGNENBfSIsdHN2OiJcdXsxRjRDQX0iLHBwdDoiXHV7MUY0RDl9IixwcHR4OiJcdXsxRjREOX0iLG1wNDoiXHV7MUYzQUN9Iix3ZWJtOiJcdXsxRjNBQ30iLG1vdjoiXHV7MUYzQUN9Iixta3Y6Ilx1ezFGM0FDfSIsbTR2OiJcdXsxRjNBQ30iLG9ndjoiXHV7MUYzQUN9IixtcDM6Ilx1ezFGM0I1fSIsd2F2OiJcdXsxRjNCNX0iLG9nZzoiXHV7MUYzQjV9IixtNGE6Ilx1ezFGM0I1fSIsZmxhYzoiXHV7MUYzQjV9IixhYWM6Ilx1ezFGM0I1fSIsb3B1czoiXHV7MUYzQjV9Iix6aXA6Ilx1ezFGNEU2fSIsdGFyOiJcdXsxRjRFNn0iLGd6OiJcdXsxRjRFNn0iLHRnejoiXHV7MUY0RTZ9IixiejI6Ilx1ezFGNEU2fSIsIjd6IjoiXHV7MUY0RTZ9IixyYXI6Ilx1ezFGNEU2fSIseHo6Ilx1ezFGNEU2fSIsbWQ6Ilx1ezFGNEREfSIsbWFya2Rvd246Ilx1ezFGNEREfSIsbWR4OiJcdXsxRjRERH0iLHJzdDoiXHV7MUY0RER9Iix0eHQ6Ilx1ezFGNEREfSIsbG9nOiJcdXsxRjRERH0iLGh0bWw6Ilx1ezFGMzEwfSIsaHRtOiJcdXsxRjMxMH0iLHhtbDoiXHV7MUYzMTB9Iixjc3M6Ilx1ezFGM0E4fSIsc2NzczoiXHV7MUYzQTh9IixsZXNzOiJcdXsxRjNBOH0iLGpzb246Ilx1MjY5OVx1RkUwRiIsanNvbmM6Ilx1MjY5OVx1RkUwRiIseWFtbDoiXHUyNjk5XHVGRTBGIix5bWw6Ilx1MjY5OVx1RkUwRiIsdG9tbDoiXHUyNjk5XHVGRTBGIixpbmk6Ilx1MjY5OVx1RkUwRiIsY2ZnOiJcdTI2OTlcdUZFMEYiLGNvbmY6Ilx1MjY5OVx1RkUwRiIsZW52OiJcdTI2OTlcdUZFMEYiLGVkaXRvcmNvbmZpZzoiXHUyNjk5XHVGRTBGIix0czoiXHV7MUY0REN9Iix0c3g6Ilx1ezFGNERDfSIsanM6Ilx1ezFGNERDfSIsanN4OiJcdXsxRjREQ30iLG1qczoiXHV7MUY0REN9IixjanM6Ilx1ezFGNERDfSIscHk6Ilx1ezFGNERDfSIscmI6Ilx1ezFGNERDfSIsZ286Ilx1ezFGNERDfSIscnM6Ilx1ezFGNERDfSIsamF2YToiXHV7MUY0REN9IixjOiJcdXsxRjREQ30iLGNwcDoiXHV7MUY0REN9IixoOiJcdXsxRjREQ30iLGhwcDoiXHV7MUY0REN9IixjczoiXHV7MUY0REN9Iixzd2lmdDoiXHV7MUY0REN9IixrdDoiXHV7MUY0REN9IixzY2FsYToiXHV7MUY0REN9IixwaHA6Ilx1ezFGNERDfSIsc2g6Ilx1ezFGNERDfSIsYmFzaDoiXHV7MUY0REN9Iix6c2g6Ilx1ezFGNERDfSIsZmlzaDoiXHV7MUY0REN9IixsdWE6Ilx1ezFGNERDfSIsc3FsOiJcdXsxRjREQ30iLGdyYXBocWw6Ilx1ezFGNERDfSIscHJvdG86Ilx1ezFGNERDfSIsdnVlOiJcdXsxRjREQ30iLHN2ZWx0ZToiXHV7MUY0REN9IixkaWZmOiJcdXsxRjREQ30iLHBhdGNoOiJcdXsxRjREQ30iLHR0ZjoiXHV7MUY1MjR9IixvdGY6Ilx1ezFGNTI0fSIsd29mZjoiXHV7MUY1MjR9Iix3b2ZmMjoiXHV7MUY1MjR9Iixlb3Q6Ilx1ezFGNTI0fSJ9O2Z1bmN0aW9uIGp1KGUpe2lmKCFlKXJldHVybiJcdXsxRjRDNH0iO2lmKGUudHlwZT09PSJkaXIiKXJldHVybiJcdXsxRjRDMX0iO3ZhciB0PShlLm5hbWV8fCIiKS50b0xvd2VyQ2FzZSgpO2lmKHQ9PT0iZG9ja2VyZmlsZSIpcmV0dXJuIlx1ezFGNDMzfSI7aWYodD09PSJtYWtlZmlsZSIpcmV0dXJuIlx1ezFGNkUwfVx1RkUwRiI7aWYodD09PSJsaWNlbnNlIilyZXR1cm4iXHV7MUY0REN9IjtpZih0PT09InJlYWRtZSIpcmV0dXJuIlx1ezFGNEREfSI7dmFyIG49dC5sYXN0SW5kZXhPZigiLiIpO2lmKG48MHx8bj09PXQubGVuZ3RoLTEpcmV0dXJuIlx1ezFGNEM0fSI7dmFyIGk9dC5zbGljZShuKzEpO3JldHVybiBmY1tpXXx8Ilx1ezFGNEM0fSJ9ZnVuY3Rpb24gSG4oZSl7aWYodHlwZW9mIGUhPSJudW1iZXIifHwhaXNGaW5pdGUoZSl8fGU8MClyZXR1cm4iIjtpZihlPDEwMjQpcmV0dXJuIGUrIiBCIjt2YXIgdD1lLzEwMjQ7aWYodDwxMDI0KXJldHVybih0Pj0xMD9NYXRoLnJvdW5kKHQpOnQudG9GaXhlZCgxKSkrIiBLQiI7dmFyIG49dC8xMDI0O2lmKG48MTAyNClyZXR1cm4obj49MTA/TWF0aC5yb3VuZChuKTpuLnRvRml4ZWQoMSkpKyIgTUIiO3ZhciBpPW4vMTAyNDtyZXR1cm4oaT49MTA/TWF0aC5yb3VuZChpKTppLnRvRml4ZWQoMSkpKyIgR0IifWZ1bmN0aW9uIHBjKGUpe2lmKCFlKXJldHVybiIiO3ZhciB0PURhdGUucGFyc2UoZSk7cmV0dXJuIGlzTmFOKHQpPyIiOm5ldyBEYXRlKHQpLnRvTG9jYWxlU3RyaW5nKCl9ZnVuY3Rpb24gUnUoKXtpZihyLmZpbGVFeHBsb3JlckN3ZClyZXR1cm4gci5maWxlRXhwbG9yZXJDd2Q7aWYoci5zZWxlY3RlZElkKXt2YXIgZT1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24odCl7cmV0dXJuIHQuaWQ9PT1yLnNlbGVjdGVkSWR9KTtpZihlJiZlLmN3ZClyZXR1cm4gZS5jd2R9cmV0dXJuIHNuKCl9ZnVuY3Rpb24gUHQoZSl7ZT1lfHx7fTt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS1leHBsb3JlciIpLG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtZXhwbG9yZXItY3dkIik7aWYodCl7dmFyIGk9ZS5jd2R8fFJ1KCk7aWYoIWkpe3QuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJmaWxlLWV4cGxvcmVyIGVtcHR5Ij5cdTZDQTFcdTY3MDlcdTUzRUZcdTY2M0VcdTc5M0FcdTc2ODRcdTVERTVcdTRGNUNcdTc2RUVcdTVGNTVcdTMwMDI8L2Rpdj4nO3JldHVybn1yLmZpbGVFeHBsb3JlckN3ZD1pLHIuZmlsZUV4cGxvcmVyTG9hZGluZz0hMCxyLmFsbEZpbGVzPVtdLHIuZmlsZUV4cGxvcmVyVHJ1bmNhdGVkPSExLHIuZmlsZUV4cGxvcmVyVG90YWw9MCx0LmlubmVySFRNTD0nPGRpdiBjbGFzcz0iZmlsZS1leHBsb3JlciI+PGRpdiBjbGFzcz0idHJlZS1sb2FkaW5nIiBzdHlsZT0icGFkZGluZzoxMnB4O2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2ZvbnQtc2l6ZTowLjgxMjVyZW07Ij5cdTUyQTBcdThGN0RcdTRFMkRcdTIwMjY8L2Rpdj48L2Rpdj4nLG4mJihuLnRhZ05hbWU9PT0iSU5QVVQiP2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQhPT1uJiYobi52YWx1ZT1pKTpuLnRleHRDb250ZW50PWksbi50aXRsZT1pKTt2YXIgYT0iL2FwaS9kaXJlY3Rvcnk/cT0iK2VuY29kZVVSSUNvbXBvbmVudChpKSsiJmdpdFN0YXR1cz10cnVlIjtmZXRjaChhLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbih1KXtpZighdS5vayl0aHJvdyBuZXcgRXJyb3IoIkZhaWxlZCB0byBsb2FkIGRpcmVjdG9yeS4iKTtyZXR1cm4gdS5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKHUpe3IuZmlsZUV4cGxvcmVyTG9hZGluZz0hMTt2YXIgcyxvLGw7aWYoQXJyYXkuaXNBcnJheSh1KT8ocz11LG89ITEsbD11Lmxlbmd0aCk6KHM9dSYmdS5pdGVtc3x8W10sbz0hISh1JiZ1LnRydW5jYXRlZCksbD11JiZ1LnRvdGFsfHxzLmxlbmd0aCksIXN8fHMubGVuZ3RoPT09MCl7dC5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImZpbGUtZXhwbG9yZXIgZW1wdHkiPlx1N0E3QVx1NzZFRVx1NUY1NVx1NjIxNlx1NjVFMFx1NkNENVx1OEJCRlx1OTVFRVx1MzAwMjwvZGl2Pic7cmV0dXJufXIuYWxsRmlsZXM9cyxyLmZpbGVFeHBsb3JlclRydW5jYXRlZD1vLHIuZmlsZUV4cGxvcmVyVG90YWw9bCxXdSgpfSkuY2F0Y2goZnVuY3Rpb24oKXtyLmZpbGVFeHBsb3JlckxvYWRpbmc9ITEsdC5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImZpbGUtZXhwbG9yZXIgZW1wdHkiPlx1NTJBMFx1OEY3RFx1NTkzMVx1OEQyNVx1RkYwQ1x1OEJGN1x1NjhDMFx1NjdFNVx1OERFRlx1NUY4NFx1NjIxNlx1Njc0M1x1OTY1MFx1MzAwMjwvZGl2Pid9KX19ZnVuY3Rpb24gV3UoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS1leHBsb3JlciIpO2lmKGUpe3ZhciB0PXIuZmlsZUV4cGxvcmVyQ3dkfHwiIjtpZih0KXt2YXIgbj1yLmZpbGVTZWFyY2hRdWVyeSxpPXIuYWxsRmlsZXN8fFtdLGE9aTtpZihuKXt2YXIgdT1uLnRvTG93ZXJDYXNlKCk7YT1pLmZpbHRlcihmdW5jdGlvbihsKXtyZXR1cm4gbC5uYW1lLnRvTG93ZXJDYXNlKCkuaW5kZXhPZih1KSE9PS0xfSl9aWYoYS5sZW5ndGg9PT0wKXtlLmlubmVySFRNTD0nPGRpdiBjbGFzcz0iZmlsZS1leHBsb3JlciBlbXB0eSI+Jysobj8iXHU2Q0ExXHU2NzA5XHU2MjdFXHU1MjMwXHU1MzM5XHU5MTREXHU3Njg0XHU2NTg3XHU0RUY2IjoiXHU3QTdBXHU3NkVFXHU1RjU1IikrIjwvZGl2PiI7cmV0dXJufXZhciBzPSIiO2lmKCFuJiZyLmZpbGVFeHBsb3JlclRydW5jYXRlZCl7dmFyIG89aS5sZW5ndGg7cz0nPGRpdiBjbGFzcz0idHJlZS10cnVuY2F0ZWQiIHRpdGxlPSJcdTU0MEVcdTdBRUZcdTYzMDlcdTVCNTdcdTZCQ0RcdTVFOEZcdTY3MDBcdTU5MUFcdThGRDRcdTU2REUgJytvKycgXHU5ODc5Ij5cdTY2M0VcdTc5M0FcdTUyNEQgJytvKyIgXHU5ODc5IC8gXHU1MTcxICIrci5maWxlRXhwbG9yZXJUb3RhbCsiIFx1OTg3OTwvZGl2PiJ9ZS5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImZpbGUtdHJlZSIgaWQ9ImZpbGUtdHJlZSIgZGF0YS1jd2Q9IicrcCh0KSsnIj4nK2EubWFwKGZ1bmN0aW9uKGwpe3JldHVybiB6dShsKX0pLmpvaW4oIiIpKyI8L2Rpdj4iK3MsVXUoKX19fWZ1bmN0aW9uIHp1KGUsdCl7dD10fHwwO3ZhciBuPXAoZS5uYW1lKSxpPWUudHlwZT09PSJkaXIiLGE9anUoZSksdT1pPyJcdTI1QjgiOiIiLHM9aT8iIjoiIGVtcHR5IixvPWUuZ2l0U3RhdHVzLGw9dmMobyksYz0iIjtyZXR1cm4haSYmdHlwZW9mIGUuc2l6ZT09Im51bWJlciImJihjPSc8c3BhbiBjbGFzcz0idHJlZS1tZXRhIiB0aXRsZT0iXHU1OTI3XHU1QzBGXHVGRjFBJytwKEhuKGUuc2l6ZSkpKyhlLm10aW1lP2AKXHU0RkVFXHU2NTM5XHU2NUY2XHU5NUY0XHVGRjFBYCtwKHBjKGUubXRpbWUpKToiIikrJyI+JytwKEhuKGUuc2l6ZSkpKyI8L3NwYW4+IiksJzxkaXYgY2xhc3M9InRyZWUtaXRlbSIgZGF0YS1wYXRoPSInK3AoZS5wYXRoKSsnIiBkYXRhLXR5cGU9IicrcChlLnR5cGUpKyciIGRhdGEtbmFtZT0iJytwKGUubmFtZSkrJyIgdGFiaW5kZXg9IjAiPjxzcGFuIGNsYXNzPSJ0cmVlLXRvZ2dsZScrcysnIj4nK3UrJzwvc3Bhbj48c3BhbiBjbGFzcz0idHJlZS1pY29uIj4nK2ErJzwvc3Bhbj48c3BhbiBjbGFzcz0idHJlZS1uYW1lIj4nK24rIjwvc3Bhbj4iK2MrKGw/JzxzcGFuIGNsYXNzPSJnaXQtc3RhdHVzLWJhZGdlICcrbC5jbGFzcysnIiB0aXRsZT0iJytsLnRpdGxlKyciPicrbC50ZXh0KyI8L3NwYW4+IjoiIikrIjwvZGl2PiJ9ZnVuY3Rpb24gdmMoZSl7cmV0dXJuIGU/ZS5zdGFnZWQ9PT0iYWRkZWQiP3t0ZXh0OiJBIixjbGFzczoiZ2l0LWFkZGVkIix0aXRsZToiXHU1REYyXHU2NjgyXHU1QjU4XHVGRjA4XHU2NUIwXHU1ODlFXHVGRjA5In06ZS5zdGFnZWQ9PT0ibW9kaWZpZWQiP3t0ZXh0OiJNIixjbGFzczoiZ2l0LW1vZGlmaWVkIix0aXRsZToiXHU1REYyXHU2NjgyXHU1QjU4XHVGRjA4XHU0RkVFXHU2NTM5XHVGRjA5In06ZS5zdGFnZWQ9PT0iZGVsZXRlZCI/e3RleHQ6IkQiLGNsYXNzOiJnaXQtZGVsZXRlZCIsdGl0bGU6Ilx1NURGMlx1NjY4Mlx1NUI1OFx1RkYwOFx1NTIyMFx1OTY2NFx1RkYwOSJ9OmUuc3RhZ2VkPT09InJlbmFtZWQiP3t0ZXh0OiJSIixjbGFzczoiZ2l0LXJlbmFtZWQiLHRpdGxlOiJcdTVERjJcdTY2ODJcdTVCNThcdUZGMDhcdTkxQ0RcdTU0N0RcdTU0MERcdUZGMDkifTplLnVuc3RhZ2VkPT09Im1vZGlmaWVkIj97dGV4dDoiTSIsY2xhc3M6ImdpdC11bnN0YWdlZCIsdGl0bGU6Ilx1NjcyQVx1NjY4Mlx1NUI1OFx1RkYwOFx1NEZFRVx1NjUzOVx1RkYwOSJ9OmUudW5zdGFnZWQ9PT0iZGVsZXRlZCI/e3RleHQ6IkQiLGNsYXNzOiJnaXQtdW5zdGFnZWQtZGVsZXRlZCIsdGl0bGU6Ilx1NjcyQVx1NjY4Mlx1NUI1OFx1RkYwOFx1NTIyMFx1OTY2NFx1RkYwOSJ9OmUudW50cmFja2VkP3t0ZXh0OiI/IixjbGFzczoiZ2l0LXVudHJhY2tlZCIsdGl0bGU6Ilx1NjcyQVx1OERERlx1OEUyQSJ9Om51bGw6bnVsbH1mdW5jdGlvbiBVdSgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLXRyZWUiKTtpZihlKXtlLnF1ZXJ5U2VsZWN0b3JBbGwoIi50cmVlLWl0ZW1bZGF0YS10eXBlPSdkaXInXSIpLmZvckVhY2goZnVuY3Rpb24oaSl7aS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oYSl7bWMoaSl9KX0pLGUucXVlcnlTZWxlY3RvckFsbCgiLnRyZWUtaXRlbVtkYXRhLXR5cGU9J2ZpbGUnXSIpLmZvckVhY2goZnVuY3Rpb24oaSl7dmFyIGE9ZnVuY3Rpb24oKXtRcihpLmRhdGFzZXQucGF0aCl9O2kuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGEpLGkuYWRkRXZlbnRMaXN0ZW5lcigiZGJsY2xpY2siLGEpfSk7dmFyIHQ9bnVsbCxuPSExO2UucXVlcnlTZWxlY3RvckFsbCgiLnRyZWUtaXRlbSIpLmZvckVhY2goZnVuY3Rpb24oaSl7aS5hZGRFdmVudExpc3RlbmVyKCJjb250ZXh0bWVudSIsZnVuY3Rpb24oYSl7YS5wcmV2ZW50RGVmYXVsdCgpLFZ1KGEuY2xpZW50WCxhLmNsaWVudFksaSl9KSxpLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLGZ1bmN0aW9uKGEpe249ITEsdD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7bj0hMDt2YXIgdT1hLnRvdWNoZXMmJmEudG91Y2hlc1swXTtWdSh1P3UuY2xpZW50WDowLHU/dS5jbGllbnRZOjAsaSl9LDUwMCl9LHtwYXNzaXZlOiEwfSksaS5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsZnVuY3Rpb24oKXt0JiYoY2xlYXJUaW1lb3V0KHQpLHQ9bnVsbCl9KSxpLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsZnVuY3Rpb24oKXt0JiYoY2xlYXJUaW1lb3V0KHQpLHQ9bnVsbCl9KX0pfX1mdW5jdGlvbiBtYyhlKXt2YXIgdD1lLmRhdGFzZXQucGF0aCxuPWUucXVlcnlTZWxlY3RvcigiLnRyZWUtdG9nZ2xlIiksaT1lLm5leHRFbGVtZW50U2libGluZztpZihpJiZpLmNsYXNzTGlzdC5jb250YWlucygidHJlZS1jaGlsZHJlbiIpKXt2YXIgYT1pLmNsYXNzTGlzdC5jb250YWlucygib3BlbiIpO2kuY2xhc3NMaXN0LnRvZ2dsZSgib3BlbiIpLG4mJm4uY2xhc3NMaXN0LnRvZ2dsZSgib3BlbiIsIWEpO3ZhciB1PWUucXVlcnlTZWxlY3RvcigiLnRyZWUtaWNvbiIpO3UmJih1LnRleHRDb250ZW50PWE/Ilx1ezFGNEMxfSI6Ilx1ezFGNEMyfSIpO3JldHVybn1uJiZuLmNsYXNzTGlzdC5hZGQoIm9wZW4iKTt2YXIgcz1lLnF1ZXJ5U2VsZWN0b3IoIi50cmVlLWljb24iKTtzJiYocy50ZXh0Q29udGVudD0iXHV7MUY0QzJ9Iik7dmFyIG89Ii9hcGkvZGlyZWN0b3J5P3E9IitlbmNvZGVVUklDb21wb25lbnQodCkrIiZnaXRTdGF0dXM9dHJ1ZSI7ZmV0Y2gobyx7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24obCl7cmV0dXJuIGwuanNvbigpfSkudGhlbihmdW5jdGlvbihsKXt2YXIgYztBcnJheS5pc0FycmF5KGwpP2M9bDpjPWwmJmwuaXRlbXN8fFtdO3ZhciBmPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2YuY2xhc3NOYW1lPSJ0cmVlLWNoaWxkcmVuIG9wZW4iLCFjfHxjLmxlbmd0aD09PTA/Zi5pbm5lckhUTUw9JzxkaXYgY2xhc3M9InRyZWUtaXRlbSIgc3R5bGU9ImNvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2N1cnNvcjpkZWZhdWx0OyI+PHNwYW4gY2xhc3M9InRyZWUtdG9nZ2xlIGVtcHR5Ij5cdTI1Qjg8L3NwYW4+PHNwYW4gY2xhc3M9InRyZWUtbmFtZSI+XHVGRjA4XHU3QTdBXHU3NkVFXHU1RjU1XHVGRjA5PC9zcGFuPjwvZGl2Pic6Zi5pbm5lckhUTUw9Yy5tYXAoZnVuY3Rpb24oZCl7cmV0dXJuIHp1KGQpfSkuam9pbigiIiksZS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShmLGUubmV4dFNpYmxpbmcpLFV1KCl9KS5jYXRjaChmdW5jdGlvbigpe30pfWZ1bmN0aW9uIGdjKCl7dmFyIGU9UnUoKTtpZihlKXt2YXIgdD1lLnJlcGxhY2UoL1wvKyQvLCIiKS5yZXBsYWNlKC9cL1teXC9dKyQvLCIiKTt0fHwodD0iLyIpLHQhPT1lJiZQdCh7Y3dkOnR9KX19ZnVuY3Rpb24gWmkoZSl7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0LWJveCIpO2lmKCF0KXJldHVybiExO3ZhciBuPXQudmFsdWV8fCIiLGk9biYmIW4uZW5kc1dpdGgoIiAiKSYmIW4uZW5kc1dpdGgoYApgKT8iICI6IiI7dC52YWx1ZT1uK2krZSx0LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCJpbnB1dCIse2J1YmJsZXM6ITB9KSk7dHJ5e3QuZm9jdXMoKSx0LnNldFNlbGVjdGlvblJhbmdlKHQudmFsdWUubGVuZ3RoLHQudmFsdWUubGVuZ3RoKX1jYXRjaHt9cmV0dXJuITB9ZnVuY3Rpb24gWXIoZSl7aWYobmF2aWdhdG9yLmNsaXBib2FyZCYmbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQpcmV0dXJuIG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KGUpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4hMH0pLmNhdGNoKGZ1bmN0aW9uKCl7cmV0dXJuIHQoKX0pO3JldHVybiBQcm9taXNlLnJlc29sdmUodCgpKTtmdW5jdGlvbiB0KCl7dHJ5e3ZhciBuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRleHRhcmVhIik7bi52YWx1ZT1lLG4uc3R5bGUucG9zaXRpb249ImZpeGVkIixuLnN0eWxlLmxlZnQ9Ii05OTk5cHgiLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobiksbi5zZWxlY3QoKTt2YXIgaT1kb2N1bWVudC5leGVjQ29tbWFuZCgiY29weSIpO3JldHVybiBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKG4pLGl9Y2F0Y2h7cmV0dXJuITF9fX1mdW5jdGlvbiBEdChlKXtpZih0eXBlb2Ygd2luZG93LnNob3dUb2FzdD09ImZ1bmN0aW9uIil7d2luZG93LnNob3dUb2FzdChlKTtyZXR1cm59dmFyIHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7dC5jbGFzc05hbWU9IndhbmQtbWluaS10b2FzdCIsdC50ZXh0Q29udGVudD1lLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodCksc2V0VGltZW91dChmdW5jdGlvbigpe3QuY2xhc3NMaXN0LmFkZCgic2hvdyIpfSwxMCksc2V0VGltZW91dChmdW5jdGlvbigpe3QuY2xhc3NMaXN0LnJlbW92ZSgic2hvdyIpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXt0LnJlbW92ZSgpfSwyMjApfSwxNjAwKX1mdW5jdGlvbiBfbigpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLWNvbnRleHQtbWVudSIpO2UmJmUucmVtb3ZlKCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLF9uLCEwKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJzY3JvbGwiLF9uLCEwKX1mdW5jdGlvbiBWdShlLHQsbil7X24oKTt2YXIgaT1uLmRhdGFzZXQucGF0aHx8IiIsYT1uLmRhdGFzZXQudHlwZXx8ImZpbGUiLHU9ci5maWxlRXhwbG9yZXJDd2R8fCIiLHM9aTt1JiZpLmluZGV4T2YodSk9PT0wJiYocz1pLnNsaWNlKHUubGVuZ3RoKS5yZXBsYWNlKC9eXC8rLywiIil8fCIuIik7dmFyIG89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7by5pZD0iZmlsZS1jb250ZXh0LW1lbnUiLG8uY2xhc3NOYW1lPSJmaWxlLWNvbnRleHQtbWVudSI7dmFyIGw9W107YT09PSJmaWxlIj9sLnB1c2goe2xhYmVsOiJcdTYyNTNcdTVGMDBcdTk4ODRcdTg5QzgiLGljb246Ilx1ezFGNDQxfSIscnVuOmZ1bmN0aW9uKCl7UXIoaSl9fSk6bC5wdXNoKHtsYWJlbDoiXHU4RkRCXHU1MTY1XHU2QjY0XHU3NkVFXHU1RjU1IixpY29uOiJcdXsxRjRDMn0iLHJ1bjpmdW5jdGlvbigpe1B0KHtjd2Q6aX0pfX0pLGwucHVzaCh7bGFiZWw6Ilx1NTkwRFx1NTIzNlx1NUI4Q1x1NjU3NFx1OERFRlx1NUY4NCIsaWNvbjoiXHV7MUY0Q0J9IixydW46ZnVuY3Rpb24oKXtZcihpKS50aGVuKGZ1bmN0aW9uKCl7RHQoIlx1NURGMlx1NTkwRFx1NTIzNlx1OERFRlx1NUY4NCIpfSl9fSkscyYmcyE9PWkmJmwucHVzaCh7bGFiZWw6Ilx1NTkwRFx1NTIzNlx1NzZGOFx1NUJGOVx1OERFRlx1NUY4NCIsaWNvbjoiXHV7MUY0Q0J9IixydW46ZnVuY3Rpb24oKXtZcihzKS50aGVuKGZ1bmN0aW9uKCl7RHQoIlx1NURGMlx1NTkwRFx1NTIzNlx1NzZGOFx1NUJGOVx1OERFRlx1NUY4NCIpfSl9fSksbC5wdXNoKHtsYWJlbDoiXHU3Qzk4XHU4RDM0XHU4REVGXHU1Rjg0XHU1MjMwXHU4RjkzXHU1MTY1XHU2ODQ2IixpY29uOiJcdTI3MEZcdUZFMEYiLHJ1bjpmdW5jdGlvbigpe1ppKGkpJiZEdCgiXHU1REYyXHU3Qzk4XHU4RDM0XHU1MjMwXHU4RjkzXHU1MTY1XHU2ODQ2Iil9fSksYT09PSJmaWxlIiYmbC5wdXNoKHtsYWJlbDoiXHU0RTBCXHU4RjdEXHU2NTg3XHU0RUY2IixpY29uOiJcdTJCMDciLHJ1bjpmdW5jdGlvbigpe3ZhciBnPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTtnLmhyZWY9Ii9hcGkvZmlsZS1yYXc/ZG93bmxvYWQ9MSZwYXRoPSIrZW5jb2RlVVJJQ29tcG9uZW50KGkpLGcucmVsPSJub29wZW5lciIsZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChnKSxnLmNsaWNrKCksZy5yZW1vdmUoKX19KSxvLmlubmVySFRNTD1sLm1hcChmdW5jdGlvbihnLG0pe3JldHVybic8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImZpbGUtY29udGV4dC1tZW51LWl0ZW0iIGRhdGEtaWR4PSInK20rJyI+PHNwYW4gY2xhc3M9ImN0eC1pY29uIj4nK2cuaWNvbisnPC9zcGFuPjxzcGFuIGNsYXNzPSJjdHgtbGFiZWwiPicrcChnLmxhYmVsKSsiPC9zcGFuPjwvYnV0dG9uPiJ9KS5qb2luKCIiKSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKG8pO3ZhciBjPXdpbmRvdy5pbm5lcldpZHRoLGY9d2luZG93LmlubmVySGVpZ2h0LGQ9by5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx2PU1hdGgubWluKGUsYy1kLndpZHRoLTgpLGg9TWF0aC5taW4odCxmLWQuaGVpZ2h0LTgpO28uc3R5bGUubGVmdD1NYXRoLm1heCg4LHYpKyJweCIsby5zdHlsZS50b3A9TWF0aC5tYXgoOCxoKSsicHgiLG8ucXVlcnlTZWxlY3RvckFsbCgiLmZpbGUtY29udGV4dC1tZW51LWl0ZW0iKS5mb3JFYWNoKGZ1bmN0aW9uKGcpe2cuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKG0pe20uc3RvcFByb3BhZ2F0aW9uKCk7dmFyIHk9cGFyc2VJbnQoZy5kYXRhc2V0LmlkeCwxMCk7X24oKSxsW3ldJiZsW3ldLnJ1bigpfSl9KSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLF9uLCEwKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLF9uLCEwKX0sMCl9dmFyIE89bnVsbDtmdW5jdGlvbiBRcihlKXt2YXIgdD1PJiZPLm92ZXJsYXk7aWYodCl7Ty5wYXRoPWUsTy5lZGl0aW5nPSExLE8uZGlydHk9ITE7dmFyIHM9dC5xdWVyeVNlbGVjdG9yKCIuZmlsZS1wcmV2aWV3LXRpdGxlIik7cyYmKHMuaW5uZXJIVE1MPSc8c3BhbiBjbGFzcz0iZmlsZS1wcmV2aWV3LWljb24iPlx1ezFGNEM0fTwvc3Bhbj48ZGl2IGNsYXNzPSJmaWxlLXByZXZpZXctbmFtZS1ibG9jayI+PGRpdiBjbGFzcz0iZmlsZS1wcmV2aWV3LW5hbWUtcm93Ij48c3BhbiBjbGFzcz0iZmlsZS1wcmV2aWV3LWZpbGVuYW1lIj5cdTUyQTBcdThGN0RcdTRFMkRcdTIwMjY8L3NwYW4+PC9kaXY+JytsdCgiIiwiZmlsZS1wcmV2aWV3LXBhdGgiKSsiPC9kaXY+Iik7dmFyIG89dC5xdWVyeVNlbGVjdG9yKCIuZmlsZS1wcmV2aWV3LXRvb2xiYXIiKTtvJiYoby5pbm5lckhUTUw9IiIpO3ZhciBsPXQucXVlcnlTZWxlY3RvcigiLmZpbGUtcHJldmlldy1wYXRoIik7RXUobCwiIik7dmFyIGM9dC5xdWVyeVNlbGVjdG9yKCIuZmlsZS1wcmV2aWV3LWJvZHkiKTtjJiYoYy5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImZpbGUtcHJldmlldy1sb2FkaW5nIj5cdTUyQTBcdThGN0RcdTk4ODRcdTg5QzhcdTIwMjY8L2Rpdj4nKX1lbHNle3Q9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdC5jbGFzc05hbWU9ImZpbGUtcHJldmlldy1vdmVybGF5Iix0LmlubmVySFRNTD0nPGRpdiBjbGFzcz0iZmlsZS1wcmV2aWV3LW1vZGFsIiB0YWJpbmRleD0iLTEiPjxkaXYgY2xhc3M9ImZpbGUtcHJldmlldy1oZWFkZXIiPjxkaXYgY2xhc3M9ImZpbGUtcHJldmlldy10aXRsZSI+PHNwYW4gY2xhc3M9ImZpbGUtcHJldmlldy1pY29uIj5cdXsxRjRDNH08L3NwYW4+PGRpdiBjbGFzcz0iZmlsZS1wcmV2aWV3LW5hbWUtYmxvY2siPjxkaXYgY2xhc3M9ImZpbGUtcHJldmlldy1uYW1lLXJvdyI+PHNwYW4gY2xhc3M9ImZpbGUtcHJldmlldy1maWxlbmFtZSI+XHU1MkEwXHU4RjdEXHU0RTJEXHUyMDI2PC9zcGFuPjwvZGl2PicrbHQoIiIsImZpbGUtcHJldmlldy1wYXRoIikrJzwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImZpbGUtcHJldmlldy10b29sYmFyIj48L2Rpdj48YnV0dG9uIGNsYXNzPSJmaWxlLXByZXZpZXctY2xvc2UiIHRpdGxlPSJcdTUxNzNcdTk1RUQgKEVzYykiIGFyaWEtbGFiZWw9Ilx1NTE3M1x1OTVFRCI+JytNZSgieCIse3NpemU6MTh9KSsnPC9idXR0b24+PC9kaXY+PGRpdiBjbGFzcz0iZmlsZS1wcmV2aWV3LWJvZHkiPjxkaXYgY2xhc3M9ImZpbGUtcHJldmlldy1sb2FkaW5nIj5cdTUyQTBcdThGN0RcdTk4ODRcdTg5QzhcdTIwMjY8L2Rpdj48L2Rpdj48L2Rpdj4nLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodCk7dmFyIG49dC5xdWVyeVNlbGVjdG9yKCIuZmlsZS1wcmV2aWV3LWNsb3NlIiksaT1mdW5jdGlvbigpe2lmKE8mJk8uZGlydHkmJnR5cGVvZiBsbj09ImZ1bmN0aW9uIil7bG4oe3R5cGU6Indhcm5pbmciLHRpdGxlOiJcdTY1M0VcdTVGMDNcdTY3MkFcdTRGRERcdTVCNThcdTc2ODRcdTRGRUVcdTY1MzlcdUZGMUYiLG1lc3NhZ2U6Ilx1NUY1M1x1NTI0RFx1NjU4N1x1NEVGNlx1NjcwOVx1NjcyQVx1NEZERFx1NUI1OFx1NzY4NFx1NjUzOVx1NTJBOFx1RkYwQ1x1NTE3M1x1OTVFRFx1NTQwRVx1NEYxQVx1NEUyMlx1NTkzMVx1MzAwMiIsYnV0dG9uczpbe2xhYmVsOiJcdTdFRTdcdTdFRURcdTdGMTZcdThGOTEiLHZhbHVlOiExLGtpbmQ6Imdob3N0In0se2xhYmVsOiJcdTY1M0VcdTVGMDNcdTRGRUVcdTY1MzkiLHZhbHVlOiEwLGtpbmQ6ImRhbmdlciIsYXV0b2ZvY3VzOiEwfV0sY2FuY2VsVmFsdWU6ITF9KS50aGVuKGZ1bmN0aW9uKGQpe2QmJmEoKX0pO3JldHVybn1hKCl9LGE9ZnVuY3Rpb24oKXt0LnJlbW92ZSgpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLHUpLE89bnVsbH07bi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsaSksdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oZCl7ZC50YXJnZXQ9PT10JiZpKCl9KTt2YXIgdT1mdW5jdGlvbihkKXtpZigoZC5rZXk9PT0icyJ8fGQua2V5PT09IlMiKSYmKGQuY3RybEtleXx8ZC5tZXRhS2V5KSYmTyYmTy5lZGl0aW5nKXtkLnByZXZlbnREZWZhdWx0KCksJHUoKTtyZXR1cm59aWYoZC5rZXk9PT0iRXNjYXBlIil7aWYoTyYmTy5lZGl0aW5nKXtkLnByZXZlbnREZWZhdWx0KCksUXUoKTtyZXR1cm59aSgpO3JldHVybn1PJiYoZC50YXJnZXQmJihkLnRhcmdldC50YWdOYW1lPT09IklOUFVUInx8ZC50YXJnZXQudGFnTmFtZT09PSJURVhUQVJFQSIpfHxPLmVkaXRpbmd8fChkLmtleT09PSJBcnJvd0xlZnQiPyhkLnByZXZlbnREZWZhdWx0KCksS3UoLTEpKTpkLmtleT09PSJBcnJvd1JpZ2h0IiYmKGQucHJldmVudERlZmF1bHQoKSxLdSgxKSkpKX07ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdSksTz17b3ZlcmxheTp0LGNsb3NlOmkscGF0aDplLGRhdGE6bnVsbCxlZGl0aW5nOiExLGRpcnR5OiExfX12YXIgZj10LnF1ZXJ5U2VsZWN0b3IoIi5maWxlLXByZXZpZXctcGF0aCIpO0V1KGYsZSksZmV0Y2goIi9hcGkvZmlsZS1wcmV2aWV3P3BhdGg9IitlbmNvZGVVUklDb21wb25lbnQoZSkse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKGQpe3JldHVybiBkLmpzb24oKS50aGVuKGZ1bmN0aW9uKHYpe3JldHVybntvazpkLm9rLHN0YXR1czpkLnN0YXR1cyxkYXRhOnZ9fSl9KS50aGVuKGZ1bmN0aW9uKGQpe3ZhciB2PXQucXVlcnlTZWxlY3RvcigiLmZpbGUtcHJldmlldy1ib2R5Iik7aWYoIWQub2t8fGQuZGF0YSYmZC5kYXRhLmVycm9yKXt2YXIgaD1kLmRhdGEmJmQuZGF0YS5lcnJvcnx8Ilx1NTJBMFx1OEY3RFx1NTkzMVx1OEQyNSI7ZC5zdGF0dXM9PT00MTMmJmQuZGF0YSYmZC5kYXRhLnNpemUmJihoKz0iXHVGRjA4XHU2NTg3XHU0RUY2XHU1OTI3XHU1QzBGXHVGRjFBIitIbihkLmRhdGEuc2l6ZSkrIlx1RkYwOSIpLHYuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJmaWxlLXByZXZpZXctZXJyb3IiPjxzcGFuIGNsYXNzPSJwcmV2aWV3LWVycm9yLWljb24iPlx1MjZBMDwvc3Bhbj48c3Bhbj4nK3AoaCkrIjwvc3Bhbj48L2Rpdj4iLGQuc3RhdHVzPT09NDEzJiZlYSh0LHtraW5kOiJiaW5hcnkiLHBhdGg6ZSxuYW1lOmUuc3BsaXQoIi8iKS5wb3AoKXx8ZSxleHQ6IiIsc2l6ZTpkLmRhdGEmJmQuZGF0YS5zaXplfHwwfSk7cmV0dXJufU8uZGF0YT1kLmRhdGEsSnUodCxkLmRhdGEpfSkuY2F0Y2goZnVuY3Rpb24oKXt2YXIgZD10LnF1ZXJ5U2VsZWN0b3IoIi5maWxlLXByZXZpZXctYm9keSIpO2QuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJmaWxlLXByZXZpZXctZXJyb3IiPjxzcGFuIGNsYXNzPSJwcmV2aWV3LWVycm9yLWljb24iPlx1MjZBMDwvc3Bhbj48c3Bhbj5cdTUyQTBcdThGN0RcdTk4ODRcdTg5QzhcdTU5MzFcdThEMjU8L3NwYW4+PC9kaXY+J30pfWZ1bmN0aW9uIEt1KGUpe2lmKE8pe3ZhciB0PShyLmFsbEZpbGVzfHxbXSkuZmlsdGVyKGZ1bmN0aW9uKG8pe3JldHVybiBvLnR5cGU9PT0iZmlsZSJ9KTtpZih0Lmxlbmd0aCl7Zm9yKHZhciBuPU8ucGF0aCxpPS0xLGE9MDthPHQubGVuZ3RoO2ErKylpZih0W2FdLnBhdGg9PT1uKXtpPWE7YnJlYWt9aWYoIShpPDApKXt2YXIgdT0oaStlK3QubGVuZ3RoKSV0Lmxlbmd0aCxzPXRbdV0ucGF0aDtzJiZzIT09biYmUXIocyl9fX19ZnVuY3Rpb24gSnUoZSx0KXt2YXIgbj1lLnF1ZXJ5U2VsZWN0b3IoIi5maWxlLXByZXZpZXctZmlsZW5hbWUiKTtuJiYobi50ZXh0Q29udGVudD10Lm5hbWUpO3ZhciBpPWUucXVlcnlTZWxlY3RvcigiLmZpbGUtcHJldmlldy1pY29uIik7aSYmKGkudGV4dENvbnRlbnQ9anUoe25hbWU6dC5uYW1lLHR5cGU6ImZpbGUifSkpO3ZhciBhPWUucXVlcnlTZWxlY3RvcigiLmZpbGUtcHJldmlldy10aXRsZSIpLHU9ZS5xdWVyeVNlbGVjdG9yKCIuZmlsZS1wcmV2aWV3LWxhbmciKTt1JiZ1LnJlbW92ZSgpO3ZhciBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTtzLmNsYXNzTmFtZT0iZmlsZS1wcmV2aWV3LWxhbmciO3ZhciBvPXtpbWFnZToiXHU1NkZFXHU3MjQ3IixwZGY6IlBERiIsdmlkZW86Ilx1ODlDNlx1OTg5MSIsYXVkaW86Ilx1OTdGM1x1OTg5MSIsYmluYXJ5OiJcdTRFOENcdThGREJcdTUyMzYifTt0LmtpbmQ9PT0idGV4dCI/cy50ZXh0Q29udGVudD10Lmxhbmd8fCh0LmV4dHx8IiIpLnJlcGxhY2UoIi4iLCIiKXx8InRleHQiOnMudGV4dENvbnRlbnQ9b1t0LmtpbmRdfHwodC5leHR8fCIiKS5yZXBsYWNlKCIuIiwiIil8fHQua2luZCxhJiZhLmFwcGVuZENoaWxkKHMpLGVhKGUsdCk7dmFyIGw9ZS5xdWVyeVNlbGVjdG9yKCIuZmlsZS1wcmV2aWV3LWJvZHkiKTtsLmlubmVySFRNTD0iIixsLmNsYXNzTGlzdC5yZW1vdmUoImtpbmQtdGV4dCIsImtpbmQtaW1hZ2UiLCJraW5kLXBkZiIsImtpbmQtdmlkZW8iLCJraW5kLWF1ZGlvIiwia2luZC1iaW5hcnkiKSxsLmNsYXNzTGlzdC5hZGQoImtpbmQtIisodC5raW5kfHwidGV4dCIpKSx0LmtpbmQ9PT0iaW1hZ2UiP3ljKGwsdCk6dC5raW5kPT09InBkZiI/YmMobCx0KTp0LmtpbmQ9PT0idmlkZW8iP0VjKGwsdCk6dC5raW5kPT09ImF1ZGlvIj9GYyhsLHQpOnQua2luZD09PSJiaW5hcnkiP3djKGwsdCk6dC5sYW5nPT09Im1hcmtkb3duInx8L1wuKG1kfG1hcmtkb3dufG1keCkkL2kudGVzdCh0Lm5hbWV8fCIiKT9sLmlubmVySFRNTD0nPGRpdiBjbGFzcz0ibWFya2Rvd24tcHJldmlldyI+JytrYyh0LmNvbnRlbnR8fCIiKSsiPC9kaXY+IjpoYyhsLHQpfWZ1bmN0aW9uIGhjKGUsdCl7dmFyIG49WnUodC5jb250ZW50fHwiIix0LmxhbmcpLGk9bi5zcGxpdChgCmApLGE9aS5tYXAoZnVuY3Rpb24odSxzKXtyZXR1cm4gcysxfSk7ZS5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImNvZGUtcHJldmlldy13cmFwcGVyIj48ZGl2IGNsYXNzPSJjb2RlLXByZXZpZXctbGluZXMiPicrYS5qb2luKGAKYCkrJzwvZGl2PjxkaXYgY2xhc3M9ImNvZGUtcHJldmlldy1jb250ZW50Ij48cHJlPicraS5qb2luKGAKYCkrIjwvcHJlPjwvZGl2PjwvZGl2PiJ9ZnVuY3Rpb24geWMoZSx0KXt2YXIgbj0iL2FwaS9maWxlLXJhdz9wYXRoPSIrZW5jb2RlVVJJQ29tcG9uZW50KHQucGF0aCk7ZS5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImltYWdlLXByZXZpZXctd3JhcHBlciI+PGltZyBjbGFzcz0iaW1hZ2UtcHJldmlldy1pbWciIHNyYz0iJytuKyciIGFsdD0iJytwKHQubmFtZSkrJyIgLz48L2Rpdj4nO3ZhciBpPWUucXVlcnlTZWxlY3RvcigiLmltYWdlLXByZXZpZXctaW1nIik7aWYoaSl7dmFyIGE9ITE7aS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXthPSFhLGkuY2xhc3NMaXN0LnRvZ2dsZSgiem9vbWVkIixhKX0pfX1mdW5jdGlvbiBiYyhlLHQpe3ZhciBuPSIvYXBpL2ZpbGUtcmF3P3BhdGg9IitlbmNvZGVVUklDb21wb25lbnQodC5wYXRoKTtlLmlubmVySFRNTD0nPGlmcmFtZSBjbGFzcz0icGRmLXByZXZpZXctZnJhbWUiIHNyYz0iJytuKyciIHRpdGxlPSInK3AodC5uYW1lKSsnIj48L2lmcmFtZT4nfWZ1bmN0aW9uIEVjKGUsdCl7dmFyIG49Ii9hcGkvZmlsZS1yYXc/cGF0aD0iK2VuY29kZVVSSUNvbXBvbmVudCh0LnBhdGgpO2UuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJtZWRpYS1wcmV2aWV3LXdyYXBwZXIiPjx2aWRlbyBjbGFzcz0ibWVkaWEtcHJldmlldy12aWRlbyIgY29udHJvbHMgcHJlbG9hZD0ibWV0YWRhdGEiIHNyYz0iJytuKyciPlx1NjBBOFx1NzY4NFx1NkQ0Rlx1ODlDOFx1NTY2OFx1NEUwRFx1NjUyRlx1NjMwMSB2aWRlbyBcdTY4MDdcdTdCN0VcdTMwMDI8L3ZpZGVvPjxkaXYgY2xhc3M9Im1lZGlhLXByZXZpZXctbWV0YSI+JytwKEhuKHQuc2l6ZSkpKyI8L2Rpdj48L2Rpdj4ifWZ1bmN0aW9uIEZjKGUsdCl7dmFyIG49Ii9hcGkvZmlsZS1yYXc/cGF0aD0iK2VuY29kZVVSSUNvbXBvbmVudCh0LnBhdGgpO2UuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJtZWRpYS1wcmV2aWV3LXdyYXBwZXIgYXVkaW8iPjxkaXYgY2xhc3M9Im1lZGlhLXByZXZpZXctaWNvbiI+XHV7MUYzQjV9PC9kaXY+PGRpdiBjbGFzcz0ibWVkaWEtcHJldmlldy1uYW1lIj4nK3AodC5uYW1lKSsnPC9kaXY+PGF1ZGlvIGNsYXNzPSJtZWRpYS1wcmV2aWV3LWF1ZGlvIiBjb250cm9scyBwcmVsb2FkPSJtZXRhZGF0YSIgc3JjPSInK24rJyI+XHU2MEE4XHU3Njg0XHU2RDRGXHU4OUM4XHU1NjY4XHU0RTBEXHU2NTJGXHU2MzAxIGF1ZGlvIFx1NjgwN1x1N0I3RVx1MzAwMjwvYXVkaW8+PGRpdiBjbGFzcz0ibWVkaWEtcHJldmlldy1tZXRhIj4nK3AoSG4odC5zaXplKSkrIjwvZGl2PjwvZGl2PiJ9ZnVuY3Rpb24gd2MoZSx0KXt2YXIgbj0iL2FwaS9maWxlLXJhdz9kb3dubG9hZD0xJnBhdGg9IitlbmNvZGVVUklDb21wb25lbnQodC5wYXRoKTtlLmlubmVySFRNTD0nPGRpdiBjbGFzcz0iYmluYXJ5LXByZXZpZXctY2FyZCI+PGRpdiBjbGFzcz0iYmluYXJ5LXByZXZpZXctaWNvbiI+XHV7MUY0RTZ9PC9kaXY+PGRpdiBjbGFzcz0iYmluYXJ5LXByZXZpZXctbmFtZSI+JytwKHQubmFtZSkrJzwvZGl2PjxkaXYgY2xhc3M9ImJpbmFyeS1wcmV2aWV3LW1ldGEiPjxzcGFuPicrcCgodC5leHR8fCIiKS5yZXBsYWNlKC9eXC4vLCIiKXx8Ilx1NjcyQVx1NzdFNVx1NjgzQ1x1NUYwRiIpKyI8L3NwYW4+PHNwYW4+XHhCNzwvc3Bhbj48c3Bhbj4iK3AoSG4odC5zaXplKSkrIjwvc3Bhbj48L2Rpdj4iK2x0KHQucGF0aCwiYmluYXJ5LXByZXZpZXctcGF0aCIpKyc8ZGl2IGNsYXNzPSJiaW5hcnktcHJldmlldy1hY3Rpb25zIj48YSBjbGFzcz0iYmluYXJ5LXByZXZpZXctYnRuIiBocmVmPSInK24rJyIgZG93bmxvYWQ9IicrcCh0Lm5hbWUpKyciPlx1NEUwQlx1OEY3RFx1NjU4N1x1NEVGNjwvYT48YnV0dG9uIGNsYXNzPSJiaW5hcnktcHJldmlldy1idG4iIHR5cGU9ImJ1dHRvbiIgZGF0YS1hY3Rpb249InZpZXctY2F0Ij5cdTU3MjhcdTdFQzhcdTdBRUZcdTRFMkRcdTY3RTVcdTc3MEI8L2J1dHRvbj48L2Rpdj48L2Rpdj4nLEt0KGUpO3ZhciBpPWUucXVlcnlTZWxlY3RvcignW2RhdGEtYWN0aW9uPSJ2aWV3LWNhdCJdJyk7aSYmaS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXtaaSgnY2F0IC0tICInK3QucGF0aCsnIicpJiZEdCgiXHU1NDdEXHU0RUU0XHU1REYyXHU3Qzk4XHU4RDM0XHU1MjMwXHU4RjkzXHU1MTY1XHU2ODQ2Iil9KX1mdW5jdGlvbiBlYShlLHQpe3ZhciBuPWUucXVlcnlTZWxlY3RvcigiLmZpbGUtcHJldmlldy10b29sYmFyIik7aWYobil7aWYobi5pbm5lckhUTUw9IiIsbi5jbGFzc0xpc3QucmVtb3ZlKCJlZGl0aW5nIiksTyYmTy5lZGl0aW5nKXtuLmNsYXNzTGlzdC5hZGQoImVkaXRpbmciKSxjcihlLHQpO3JldHVybn12YXIgaT1bXTt0LmtpbmQ9PT0idGV4dCImJmkucHVzaCh7bGFiZWw6Ilx1N0YxNlx1OEY5MVx1NjU4N1x1NEVGNiAoRSkiLGljb246TWUoImVkaXQiKSxwcmltYXJ5OiEwLGFjdGlvbjpmdW5jdGlvbigpe0NjKCl9fSksaS5wdXNoKHtsYWJlbDoiXHU1OTBEXHU1MjM2XHU4REVGXHU1Rjg0IixpY29uOk1lKCJjbGlwYm9hcmQiKSxhY3Rpb246ZnVuY3Rpb24oKXtZcih0LnBhdGgpLnRoZW4oZnVuY3Rpb24oKXtEdCgiXHU1REYyXHU1OTBEXHU1MjM2XHU4REVGXHU1Rjg0Iil9KX19KSxpLnB1c2goe2xhYmVsOiJcdTdDOThcdThEMzRcdTUyMzBcdThGOTNcdTUxNjVcdTY4NDYiLGljb246TWUoInNlbmQtdG8taW5wdXQiKSxhY3Rpb246ZnVuY3Rpb24oKXtaaSh0LnBhdGgpJiZEdCgiXHU1REYyXHU3Qzk4XHU4RDM0XHU1MjMwXHU4RjkzXHU1MTY1XHU2ODQ2Iil9fSksaS5wdXNoKHtsYWJlbDoiXHU0RTBCXHU4RjdEIixpY29uOk1lKCJkb3dubG9hZCIpLGFjdGlvbjpmdW5jdGlvbigpe3ZhciBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTthLmhyZWY9Ii9hcGkvZmlsZS1yYXc/ZG93bmxvYWQ9MSZwYXRoPSIrZW5jb2RlVVJJQ29tcG9uZW50KHQucGF0aCksYS5kb3dubG9hZD10Lm5hbWV8fCIiLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYSksYS5jbGljaygpLGEucmVtb3ZlKCl9fSksdC5raW5kPT09InRleHQiJiYoaS5wdXNoKHtsYWJlbDoiXHU1OTBEXHU1MjM2XHU1MTY4XHU5MEU4XHU1MTg1XHU1QkI5IixpY29uOk1lKCJjb3B5IiksYWN0aW9uOmZ1bmN0aW9uKCl7WXIodC5jb250ZW50fHwiIikudGhlbihmdW5jdGlvbigpe0R0KCJcdTVERjJcdTU5MERcdTUyMzZcdTUxODVcdTVCQjkiKX0pfX0pLGkucHVzaCh7bGFiZWw6Ilx1NTIwN1x1NjM2Mlx1ODFFQVx1NTJBOFx1NjM2Mlx1ODg0QyIsaWNvbjpNZSgid3JhcC10ZXh0IiksdG9nZ2xlQ2xhc3M6InRvb2xiYXItYWN0aXZlIixnZXRJbml0aWFsOmZ1bmN0aW9uKCl7dmFyIGE9ZS5xdWVyeVNlbGVjdG9yKCIuY29kZS1wcmV2aWV3LWNvbnRlbnQgcHJlIik7cmV0dXJuIGEmJmEuY2xhc3NMaXN0LmNvbnRhaW5zKCJ3cmFwIil9LGFjdGlvbjpmdW5jdGlvbihhKXt2YXIgdT1lLnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLXByZXZpZXctY29udGVudCBwcmUiKTt1JiYodS5jbGFzc0xpc3QudG9nZ2xlKCJ3cmFwIiksYS5jbGFzc0xpc3QudG9nZ2xlKCJ0b29sYmFyLWFjdGl2ZSIsdS5jbGFzc0xpc3QuY29udGFpbnMoIndyYXAiKSkpfX0pLGkucHVzaCh7a2luZDoiZ3JvdXAiLGNsYXNzTmFtZToidG9vbGJhci1ncm91cC1mb250c2l6ZSIsY2hpbGRyZW46W3tsYWJlbDoiXHU3RjI5XHU1QzBGXHU1QjU3XHU1M0Y3IixpY29uOk1lKCJtaW51cyIpLGFjdGlvbjpmdW5jdGlvbigpe1h1KGUsLTEpfX0se2tpbmQ6ImxhYmVsIixpY29uOk1lKCJ0eXBlIiksbGFiZWw6Ilx1NUI1N1x1NTNGNyJ9LHtsYWJlbDoiXHU2NTNFXHU1OTI3XHU1QjU3XHU1M0Y3IixpY29uOk1lKCJwbHVzIiksYWN0aW9uOmZ1bmN0aW9uKCl7WHUoZSwxKX19XX0pKSxHdShuLGksZSl9fWZ1bmN0aW9uIEd1KGUsdCxuKXt0LmZvckVhY2goZnVuY3Rpb24oaSl7aWYoaS5raW5kPT09Imdyb3VwIil7dmFyIGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7YS5jbGFzc05hbWU9ImZpbGUtcHJldmlldy10b29sYmFyLWdyb3VwIisoaS5jbGFzc05hbWU/IiAiK2kuY2xhc3NOYW1lOiIiKSxpLmNoaWxkcmVuLmZvckVhY2goZnVuY3Rpb24odSl7aWYodS5raW5kPT09ImxhYmVsIil7dmFyIHM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpO3MuY2xhc3NOYW1lPSJmaWxlLXByZXZpZXctdG9vbGJhci1ncm91cGxhYmVsIixzLnRpdGxlPXUubGFiZWx8fCIiLHMuaW5uZXJIVE1MPXUuaWNvbnx8IiIsYS5hcHBlbmRDaGlsZChzKTtyZXR1cm59YS5hcHBlbmRDaGlsZChZdSh1KSl9KSxlLmFwcGVuZENoaWxkKGEpO3JldHVybn1lLmFwcGVuZENoaWxkKFl1KGkpKX0pfWZ1bmN0aW9uIFl1KGUpe3ZhciB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIpO3JldHVybiB0LnR5cGU9ImJ1dHRvbiIsdC5jbGFzc05hbWU9ImZpbGUtcHJldmlldy10b29sYmFyLWJ0biIsZS5wcmltYXJ5JiZ0LmNsYXNzTGlzdC5hZGQoInByaW1hcnkiKSxlLmRhbmdlciYmdC5jbGFzc0xpc3QuYWRkKCJkYW5nZXIiKSx0LnRpdGxlPWUubGFiZWwsdC5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLGUubGFiZWwpLHQuaW5uZXJIVE1MPSc8c3BhbiBjbGFzcz0idG9vbGJhci1pY29uIj4nKyhlLmljb258fCIiKSsiPC9zcGFuPiIrKGUudGV4dD8nPHNwYW4gY2xhc3M9InRvb2xiYXItdGV4dCI+JytwKGUudGV4dCkrIjwvc3Bhbj4iOiIiKSxlLmdldEluaXRpYWwmJmUuZ2V0SW5pdGlhbCgpJiZ0LmNsYXNzTGlzdC5hZGQoInRvb2xiYXItYWN0aXZlIiksdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24obil7bi5zdG9wUHJvcGFnYXRpb24oKSx0eXBlb2YgZS5hY3Rpb249PSJmdW5jdGlvbiImJmUuYWN0aW9uKHQpfSksdH1mdW5jdGlvbiBjcihlLHQpe3ZhciBuPWUucXVlcnlTZWxlY3RvcigiLmZpbGUtcHJldmlldy10b29sYmFyIik7aWYobil7bi5pbm5lckhUTUw9IiI7dmFyIGk9TyYmTy5zYXZpbmcsYT1be2xhYmVsOiJcdTRGRERcdTVCNTggKEN0cmwrUykiLGljb246TWUoInNhdmUiKSx0ZXh0OiJcdTRGRERcdTVCNTgiLHByaW1hcnk6ITAsYWN0aW9uOmZ1bmN0aW9uKCl7JHUoKX19LHtsYWJlbDoiXHU2NEE0XHU5NTAwXHU2NTM5XHU1MkE4IixpY29uOk1lKCJyb3RhdGUtY2N3IiksYWN0aW9uOmZ1bmN0aW9uKCl7QmMoKX19LHtsYWJlbDoiXHU5MDAwXHU1MUZBXHU3RjE2XHU4RjkxIChFc2MpIixpY29uOk1lKCJ4IiksYWN0aW9uOmZ1bmN0aW9uKCl7UXUoKX19XTtHdShuLGEsZSksaSYmbi5xdWVyeVNlbGVjdG9yQWxsKCIuZmlsZS1wcmV2aWV3LXRvb2xiYXItYnRuIikuZm9yRWFjaChmdW5jdGlvbih1KXt1LmRpc2FibGVkPSEwfSl9fWZ1bmN0aW9uIENjKCl7aWYoISghT3x8IU8uZGF0YSkpe3ZhciBlPU8uZGF0YTtpZihlLmtpbmQ9PT0idGV4dCIpe08uZWRpdGluZz0hMCxPLmRpcnR5PSExLE8ub3JpZ2luYWxDb250ZW50PWUuY29udGVudHx8IiI7dmFyIHQ9Ty5vdmVybGF5LG49dC5xdWVyeVNlbGVjdG9yKCIuZmlsZS1wcmV2aWV3LWJvZHkiKTtpZihuKXtuLmNsYXNzTGlzdC5hZGQoImVkaXRpbmciKSxuLmlubmVySFRNTD0nPGRpdiBjbGFzcz0iY29kZS1lZGl0b3Itd3JhcHBlciI+PHRleHRhcmVhIGNsYXNzPSJjb2RlLWVkaXRvci10ZXh0YXJlYSIgc3BlbGxjaGVjaz0iZmFsc2UiIGF1dG9jb21wbGV0ZT0ib2ZmIiBhdXRvY29ycmVjdD0ib2ZmIiBhdXRvY2FwaXRhbGl6ZT0ib2ZmIiB3cmFwPSJvZmYiPjwvdGV4dGFyZWE+PC9kaXY+Jzt2YXIgaT1uLnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWVkaXRvci10ZXh0YXJlYSIpO2kmJihpLnZhbHVlPWUuY29udGVudHx8IiIsaS5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsZnVuY3Rpb24oKXt2YXIgYT1pLnZhbHVlIT09KE8ub3JpZ2luYWxDb250ZW50fHwiIik7YSE9PU8uZGlydHkmJihPLmRpcnR5PWEsZHIoKSl9KSxpLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGZ1bmN0aW9uKGEpe2lmKGEua2V5PT09IlRhYiIpe2EucHJldmVudERlZmF1bHQoKTt2YXIgdT1pLnNlbGVjdGlvblN0YXJ0LHM9aS5zZWxlY3Rpb25FbmQsbz0iICAiO2kudmFsdWU9aS52YWx1ZS5zbGljZSgwLHUpK28raS52YWx1ZS5zbGljZShzKSxpLnNlbGVjdGlvblN0YXJ0PWkuc2VsZWN0aW9uRW5kPXUrby5sZW5ndGgsaS5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgiaW5wdXQiKSl9fSksc2V0VGltZW91dChmdW5jdGlvbigpe2kuZm9jdXMoKSxpLnNldFNlbGVjdGlvblJhbmdlKDAsMCksaS5zY3JvbGxUb3A9MH0sMzApKSxlYSh0LGUpLGRyKCl9fX19ZnVuY3Rpb24gUXUoKXtpZighKCFPfHwhTy5lZGl0aW5nKSl7dmFyIGU9ZnVuY3Rpb24oKXtPLmVkaXRpbmc9ITEsTy5kaXJ0eT0hMTt2YXIgdD1PLm92ZXJsYXksbj10LnF1ZXJ5U2VsZWN0b3IoIi5maWxlLXByZXZpZXctYm9keSIpO24mJm4uY2xhc3NMaXN0LnJlbW92ZSgiZWRpdGluZyIpLEp1KHQsTy5kYXRhKSxkcigpfTtpZihPLmRpcnR5JiZ0eXBlb2YgbG49PSJmdW5jdGlvbiIpe2xuKHt0eXBlOiJ3YXJuaW5nIix0aXRsZToiXHU2NTNFXHU1RjAzXHU2NzJBXHU0RkREXHU1QjU4XHU3Njg0XHU0RkVFXHU2NTM5XHVGRjFGIixtZXNzYWdlOiJcdTVGNTNcdTUyNERcdTY1ODdcdTRFRjZcdTY3MDlcdTY3MkFcdTRGRERcdTVCNThcdTc2ODRcdTY1MzlcdTUyQThcdUZGMENcdTkwMDBcdTUxRkFcdTdGMTZcdThGOTFcdTU0MEVcdTRGMUFcdTRFMjJcdTU5MzFcdTMwMDIiLGJ1dHRvbnM6W3tsYWJlbDoiXHU3RUU3XHU3RUVEXHU3RjE2XHU4RjkxIix2YWx1ZTohMSxraW5kOiJnaG9zdCJ9LHtsYWJlbDoiXHU2NTNFXHU1RjAzXHU0RkVFXHU2NTM5Iix2YWx1ZTohMCxraW5kOiJkYW5nZXIiLGF1dG9mb2N1czohMH1dLGNhbmNlbFZhbHVlOiExfSkudGhlbihmdW5jdGlvbih0KXt0JiZlKCl9KTtyZXR1cm59ZSgpfX1mdW5jdGlvbiBCYygpe2lmKCEoIU98fCFPLmVkaXRpbmcpKXt2YXIgZT1PLm92ZXJsYXksdD1lLnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWVkaXRvci10ZXh0YXJlYSIpO3QmJih0LnZhbHVlPU8ub3JpZ2luYWxDb250ZW50fHwiIixPLmRpcnR5PSExLGRyKCksdC5mb2N1cygpKX19ZnVuY3Rpb24gJHUoKXtpZighKCFPfHwhTy5lZGl0aW5nKSYmIU8uc2F2aW5nKXt2YXIgZT1PLm92ZXJsYXksdD1lLnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWVkaXRvci10ZXh0YXJlYSIpO2lmKHQpe3ZhciBuPXQudmFsdWU7aWYobj09PShPLm9yaWdpbmFsQ29udGVudHx8IiIpKXtEdCgiXHU2Q0ExXHU2NzA5XHU2NTM5XHU1MkE4Iik7cmV0dXJufU8uc2F2aW5nPSEwLGNyKGUsTy5kYXRhKSxmZXRjaCgiL2FwaS9maWxlLXdyaXRlIix7bWV0aG9kOiJQT1NUIixjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sYm9keTpKU09OLnN0cmluZ2lmeSh7cGF0aDpPLnBhdGgsY29udGVudDpufSl9KS50aGVuKGZ1bmN0aW9uKGkpe3JldHVybiBpLmpzb24oKS50aGVuKGZ1bmN0aW9uKGEpe3JldHVybntvazppLm9rLHN0YXR1czppLnN0YXR1cyxkYXRhOmF9fSl9KS50aGVuKGZ1bmN0aW9uKGkpe2lmKE8uc2F2aW5nPSExLCFpLm9rfHxpLmRhdGEmJmkuZGF0YS5lcnJvcil7dmFyIGE9aS5kYXRhJiZpLmRhdGEuZXJyb3J8fCJcdTRGRERcdTVCNThcdTU5MzFcdThEMjUgKCIraS5zdGF0dXMrIikiO0R0KGEpLGNyKGUsTy5kYXRhKTtyZXR1cm59aWYoTy5kYXRhLmNvbnRlbnQ9bixPLmRhdGEuc2l6ZT1pLmRhdGEmJmkuZGF0YS5zaXplfHxuLmxlbmd0aCxPLm9yaWdpbmFsQ29udGVudD1uLE8uZGlydHk9ITEsRHQoIlx1NURGMlx1NEZERFx1NUI1OCIpLGRyKCksY3IoZSxPLmRhdGEpLHR5cGVvZiBQdD09ImZ1bmN0aW9uIil0cnl7UHQoKX1jYXRjaHt9fSkuY2F0Y2goZnVuY3Rpb24oaSl7Ty5zYXZpbmc9ITEsRHQoIlx1NEZERFx1NUI1OFx1NTkzMVx1OEQyNVx1RkYxQSIrKGkmJmkubWVzc2FnZT9pLm1lc3NhZ2U6Ilx1N0Y1MVx1N0VEQ1x1OTUxOVx1OEJFRiIpKSxjcihlLE8uZGF0YSl9KX19fWZ1bmN0aW9uIGRyKCl7aWYoTyl7dmFyIGU9Ty5vdmVybGF5O2lmKGUpe3ZhciB0PWUucXVlcnlTZWxlY3RvcigiLmZpbGUtcHJldmlldy1uYW1lLXJvdyIpO2lmKHQpe3ZhciBuPXQucXVlcnlTZWxlY3RvcigiLmZpbGUtcHJldmlldy1kaXJ0eSIpO2lmKE8uZGlydHkpe2lmKCFuKXt2YXIgaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7aS5jbGFzc05hbWU9ImZpbGUtcHJldmlldy1kaXJ0eSIsaS50aXRsZT0iXHU2NzA5XHU2NzJBXHU0RkREXHU1QjU4XHU3Njg0XHU0RkVFXHU2NTM5IixpLnRleHRDb250ZW50PSJcdTI1Q0YgXHU2NzJBXHU0RkREXHU1QjU4Iix0LmFwcGVuZENoaWxkKGkpfX1lbHNlIG4mJm4ucmVtb3ZlKCl9fX19ZnVuY3Rpb24gWHUoZSx0KXt2YXIgbj1lLnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLXByZXZpZXctY29udGVudCBwcmUiKSxpPWUucXVlcnlTZWxlY3RvcigiLmNvZGUtcHJldmlldy1saW5lcyIpO2lmKG4pe3ZhciBhPXBhcnNlRmxvYXQoZ2V0Q29tcHV0ZWRTdHlsZShuKS5mb250U2l6ZSl8fDEzLHU9TWF0aC5tYXgoMTAsTWF0aC5taW4oMjIsYSt0KSk7bi5zdHlsZS5mb250U2l6ZT11KyJweCIsaSYmKGkuc3R5bGUuZm9udFNpemU9dSsicHgiKX19ZnVuY3Rpb24gWnUoZSx0KXt2YXIgbj1lLnJlcGxhY2UoLyYvZywiJmFtcDsiKS5yZXBsYWNlKC88L2csIiZsdDsiKS5yZXBsYWNlKC8+L2csIiZndDsiKSxpPURjKCk7aWYoIWkpcmV0dXJuIG47dmFyIGE9W107Zm9yKHZhciB1IGluIGkpe3ZhciBzPWlbdV07cyYmcy5wYXR0ZXJuJiZhLnB1c2goe3BhdHRlcm46cy5wYXR0ZXJuLGNsczpzLmNscyxwcmlvcml0eTpzLnByaW9yaXR5fHw1fSl9YS5zb3J0KGZ1bmN0aW9uKGMsZil7cmV0dXJuIGYucHJpb3JpdHktYy5wcmlvcml0eX0pO3ZhciBvPWEubWFwKGZ1bmN0aW9uKGMpe3JldHVybiIoIitjLnBhdHRlcm4uc291cmNlKyIpIn0pLGw9bmV3IFJlZ0V4cChvLmpvaW4oInwiKSwiZ20iKTtyZXR1cm4gbi5yZXBsYWNlKGwsZnVuY3Rpb24oYyl7Zm9yKHZhciBmPTA7ZjxhLmxlbmd0aDtmKyspe3ZhciBkPWFbZl0sdj1uZXcgUmVnRXhwKCJeIitkLnBhdHRlcm4uc291cmNlKyIkIiwiZ20iKTtpZih2LnRlc3QoYykpcmV0dXJuJzxzcGFuIGNsYXNzPSInK2QuY2xzKyciPicrYysiPC9zcGFuPiJ9cmV0dXJuIGN9KX1mdW5jdGlvbiBEYygpe3JldHVybntjb21tZW50OntwYXR0ZXJuOi9cL1wvLip8I1teXG5dKi95LGNsczoic3ludGF4LWNvbW1lbnQiLHByaW9yaXR5OjF9LHN0cmluZzp7cGF0dGVybjovIig/OlteIlxcXXxcXC4pKiJ8Jyg/OlteJ1xcXXxcXC4pKid8YCg/OlteYFxcXXxcXC4pKmAveSxjbHM6InN5bnRheC1zdHJpbmciLHByaW9yaXR5OjJ9LGtleXdvcmQ6e3BhdHRlcm46L1xiKD86YXN5bmN8YXdhaXR8YnJlYWt8Y2FzZXxjYXRjaHxjbGFzc3xjb25zdHxjb250aW51ZXxkZWJ1Z2dlcnxkZWNsYXJlfGRlZmF1bHR8ZGVsZXRlfGRvfGVsc2V8ZW51bXxleHBvcnR8ZXh0ZW5kc3xmaW5hbGx5fGZvcnxmcm9tfGZ1bmN0aW9ufGdldHxpZnxpbXBsZW1lbnRzfGltcG9ydHxpbnxpbnN0YW5jZW9mfGludGVyZmFjZXxsZXR8bW9kdWxlfG5hbWVzcGFjZXxuZXd8bnVsbHxvZnxvdmVycmlkZXxwcml2YXRlfHByb3RlY3RlZHxwdWJsaWN8cmVhZG9ubHl8cmV0dXJufHNldHxzdGF0aWN8c3VwZXJ8c3dpdGNofHRoaXN8dGhyb3d8dHJ5fHR5cGV8dHlwZW9mfHVuZGVmaW5lZHx2YXJ8dm9pZHx3aGlsZXx5aWVsZHxhYnN0cmFjdHxhc3xiYXNlfGJvb2x8Ynl0ZXxjaGFyfGRlY2ltYWx8ZG91YmxlfGV2ZW50fGV4cGxpY2l0fGV4dGVybnxmYWxzZXxmaXhlZHxmbG9hdHxmb3JlYWNofGdvdG98aW1wbGljaXR8aW58aW50fGludGVybmFsfGlzfGxvY2t8bG9uZ3xvYmplY3R8b3BlcmF0b3J8b3V0fHBhcmFtc3xwYXJ0aWFsfHJlYWRvbmx5fHJlZnxzYnl0ZXxzZWFsZWR8c2hvcnR8c2l6ZW9mfHN0YWNrYWxsb2N8c3RyaW5nfHN0cnVjdHxzd2l0Y2h8dGhyb3d8dHJ1ZXx0cnl8dWludHx1bG9uZ3x1bmNoZWNrZWR8dW5zYWZlfHVzaG9ydHx1c2luZ3x2aXJ0dWFsfHZvbGF0aWxlfHdoZXJlfHdoaWxlfHdpdGh8eWllbGR8ZGVmfGVsaWZ8ZWxzZXxleGNlcHR8ZXhlY3xmaW5hbGx5fGZvcnxmcm9tfGdsb2JhbHxpZnxpbXBvcnR8bGFtYmRhfG5vbmxvY2FsfG5vdHxvcnxwYXNzfHByaW50fHJhaXNlfHJldHVybnx0cnl8d2hpbGV8d2l0aHx5aWVsZHxUcnVlfEZhbHNlfE5vbmV8YW5kfGlufGlzfGxhbWJkYXxub3R8b3J8Zm58cHVifHVzZXxtb2R8aW1wbHx0cmFpdHxzdHJ1Y3R8ZW51bXxtYXRjaHxsb29wfHdoaWxlfGZvcnxpZnxlbHNlfHJldHVybnxzZWxmfHN1cGVyfGNyYXRlfHdoZXJlfGFzeW5jfGF3YWl0fG1vdmV8cmVmfG11dHxzdGF0aWN8Y29uc3R8dW5zYWZlfGV4dGVybnx1c2V8YXN8aW1wbHxzdHJ1Y3R8ZW51bXx0eXBlfGZufGxldHxsb29wfGlmfGVsc2V8bWF0Y2h8cmV0dXJufHNlbGZ8U2VsZnxtb2R8cHVifGNyYXRlfG1hY3JvfGRlcml2ZXx3aGVyZXxhc3luY3xhd2FpdHxkeW58c2VsZnxwYWNrYWdlfGZ1bmN8Z298cmV0dXJufGRlZmVyfGdvfGlmfGVsc2V8c3dpdGNofGNhc2V8ZGVmYXVsdHxmb3J8cmFuZ2V8c2VsZWN0fGJyZWFrfGNvbnRpbnVlfGZhbGx0aHJvdWdofGNvbnN0fHN0cnVjdHxlbnVtfHR5cGV8aW50ZXJmYWNlfG1hcHxjaGFufHZhcnxuaWx8dHJ1ZXxmYWxzZXxpb3RhfGxlbnxjYXB8YXBwZW5kfG1ha2V8bmV3fHBhbmljfHJlY292ZXJ8c2VsZWN0fGVsc2V8aWZ8ZWxpZnxlbmR8Zm9yfGZ1bmN0aW9ufGlmfGlufGxvY2FsfG5pbHxub3R8b3J8cmVwZWF0fHJldHVybnx0aGVufHRydWV8dW50aWx8d2hpbGV8ZW5kfGFuZHxiZWdpbnxkb3xlbmR8ZmFsc2V8Zm9yfGZ1bmN0aW9ufGlmfGlufGxvY2FsfG5pbHxub3R8b3J8cmVwZWF0fHJldHVybnx0aGVufHRydWV8dW50aWx8d2hpbGUpXGIveSxjbHM6InN5bnRheC1rZXl3b3JkIixwcmlvcml0eTozfSxudW1iZXI6e3BhdHRlcm46L1xiKD86MHhbXGRhLWZBLUZdK3wwYlswMV0rfDBvWzAtN10rfFxkK1wuP1xkKig/OmVbKy1dP1xkKyk/KVxiL3ksY2xzOiJzeW50YXgtbnVtYmVyIixwcmlvcml0eToyfSxmdW5jdGlvbjp7cGF0dGVybjovXGJbQS1aXVthLXpBLVowLTldKlthLXpdXHcqKD89XHMqXCgpL3ksY2xzOiJzeW50YXgtZnVuY3Rpb24iLHByaW9yaXR5OjR9LHR5cGU6e3BhdHRlcm46L1xiKD86c3RyaW5nfG51bWJlcnxib29sZWFufHZvaWR8YW55fHVua25vd258bmV2ZXJ8b2JqZWN0fHN5bWJvbHxiaWdpbnR8QXJyYXl8T2JqZWN0fFN0cmluZ3xOdW1iZXJ8Qm9vbGVhbnxNYXB8U2V0fFdlYWtNYXB8V2Vha1NldHxQcm9taXNlfEVycm9yfFR5cGV8SW50ZXJmYWNlfEVudW18Q2xhc3N8U3RydWN0fEltcGx8VHJhaXR8Zm58Zm5jfGZ1bmN8ZnVuY3Rpb258ZGVmfHByb2N8ZnVufHB1YnxzdGF0aWN8Y29uc3R8bGV0fHZhcnxpbnR8ZmxvYXR8ZG91YmxlfGJvb2x8Y2hhcnxieXRlfHN0cmluZ3x1OHx1MTZ8dTMyfHU2NHxpOHxpMTZ8aTMyfGk2NHxmMzJ8ZjY0fHVzaXplfGlzaXplfHN0cnxWZWN8SGFzaE1hcHxPcHRpb258UmVzdWx0fEJveHxSY3xBcmN8Q2VsbHxSZWZDZWxsKVxiL3ksY2xzOiJzeW50YXgtdHlwZSIscHJpb3JpdHk6NH0sb3BlcmF0b3I6e3BhdHRlcm46L1srXC0qLyU9PD4hJnxefj86XSt8XC5cLlwuPy95LGNsczoic3ludGF4LW9wZXJhdG9yIixwcmlvcml0eTo1fSxwdW5jdHVhdGlvbjp7cGF0dGVybjovW3t9W1xdKCk7LFwuXS95LGNsczoic3ludGF4LXB1bmN0dWF0aW9uIixwcmlvcml0eTo2fX19ZnVuY3Rpb24ga2MoZSl7aWYoIWUpcmV0dXJuIiI7dmFyIHQ9cChlKTt0PXQucmVwbGFjZSgvYGBgKFx3KilcbihbXHNcU10qPylgYGAvZyxmdW5jdGlvbihpLGEsdSl7dmFyIHM9WnUodS50cmltKCksYSksbz1zLnJlcGxhY2UoL18vZywiJiM5NTsiKS5yZXBsYWNlKC9cKi9nLCImIzQyOyIpO3JldHVybic8cHJlPjxjb2RlIGNsYXNzPSJsYW5ndWFnZS0nK2ErJyI+JytvKyI8L2NvZGU+PC9wcmU+In0pLHQ9dC5yZXBsYWNlKC9gKFteYF0rKWAvZyxmdW5jdGlvbihpLGEpe3JldHVybiI8Y29kZT4iK2EucmVwbGFjZSgvXy9nLCImIzk1OyIpLnJlcGxhY2UoL1wqL2csIiYjNDI7IikrIjwvY29kZT4ifSksdD10LnJlcGxhY2UoL14jIyMjIyNccysoLiopJC9nbSwiPGg2PiQxPC9oNj4iKSx0PXQucmVwbGFjZSgvXiMjIyMjXHMrKC4qKSQvZ20sIjxoNT4kMTwvaDU+IiksdD10LnJlcGxhY2UoL14jIyMjXHMrKC4qKSQvZ20sIjxoND4kMTwvaDQ+IiksdD10LnJlcGxhY2UoL14jIyNccysoLiopJC9nbSwiPGgzPiQxPC9oMz4iKSx0PXQucmVwbGFjZSgvXiMjXHMrKC4qKSQvZ20sIjxoMj4kMTwvaDI+IiksdD10LnJlcGxhY2UoL14jXHMrKC4qKSQvZ20sIjxoMT4kMTwvaDE+IiksdD10LnJlcGxhY2UoL1wqXCpcKiguKz8pXCpcKlwqL2csIjxzdHJvbmc+PGVtPiQxPC9lbT48L3N0cm9uZz4iKSx0PXQucmVwbGFjZSgvXCpcKiguKz8pXCpcKi9nLCI8c3Ryb25nPiQxPC9zdHJvbmc+IiksdD10LnJlcGxhY2UoL1wqKC4rPylcKi9nLCI8ZW0+JDE8L2VtPiIpLHQ9dC5yZXBsYWNlKC8oXnxbXlx3XSlfX18oXFMoPzpbXlxuXSo/XFMpPylfX18oPyFcdykvZywiJDE8c3Ryb25nPjxlbT4kMjwvZW0+PC9zdHJvbmc+IiksdD10LnJlcGxhY2UoLyhefFteXHddKV9fKFxTKD86W15cbl0qP1xTKT8pX18oPyFcdykvZywiJDE8c3Ryb25nPiQyPC9zdHJvbmc+IiksdD10LnJlcGxhY2UoLyhefFteXHddKV8oXFMoPzpbXlxuX10qP1xTKT8pXyg/IVx3KS9nLCIkMTxlbT4kMjwvZW0+IiksdD10LnJlcGxhY2UoL35+KC4rPyl+fi9nLCI8ZGVsPiQxPC9kZWw+IiksdD10LnJlcGxhY2UoL1xbKFteXF1dKylcXVwoKFteKV0rKVwpL2csJzxhIGhyZWY9IiQyIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub29wZW5lciI+JDE8L2E+JyksdD10LnJlcGxhY2UoLyFcWyhbXlxdXSopXF1cKChbXildKylcKS9nLCc8aW1nIHNyYz0iJDIiIGFsdD0iJDEiPicpLHQ9dC5yZXBsYWNlKC9eJmd0O1xzKyguKikkL2dtLCI8YmxvY2txdW90ZT4kMTwvYmxvY2txdW90ZT4iKSx0PXQucmVwbGFjZSgvXi0tLSskL2dtLCI8aHI+IiksdD10LnJlcGxhY2UoL15cKlwqXCorJC9nbSwiPGhyPiIpLHQ9dC5yZXBsYWNlKC9eW1wtXCpdXHMrKC4qKSQvZ20sIjxsaT4kMTwvbGk+IiksdD10LnJlcGxhY2UoLyg8bGk+Lio8XC9saT5cbj8pKy9nLCI8dWw+JCY8L3VsPiIpLHQ9dC5yZXBsYWNlKC9eXGQrXC5ccysoLiopJC9nbSwiPGxpPiQxPC9saT4iKSx0PSRvKHQpO3ZhciBuPXQuc3BsaXQoL1xuezIsfS8pO3JldHVybiB0PW4ubWFwKGZ1bmN0aW9uKGkpe3JldHVybiBpPWkudHJpbSgpLGk/L148KGhbMS02XXx1bHxvbHxsaXxibG9ja3F1b3RlfHByZXx0YWJsZXxocnxkaXYpLy50ZXN0KGkpP2k6IjxwPiIraS5yZXBsYWNlKC9cbi9nLCI8YnI+IikrIjwvcD4iOiIifSkuam9pbihgCmApLHR9ZnVuY3Rpb24gZXMoKXtpZighci5zZWxlY3RlZElkfHwhci5naXRTdGF0dXN8fCFyLmdpdFN0YXR1cy5pc0dpdHx8ci5naXRTdGF0dXNTZXNzaW9uSWQhPT1yLnNlbGVjdGVkSWQpcmV0dXJuIiI7dmFyIGU9ci5naXRTdGF0dXMuYnJhbmNofHwiPyIsdD1yLmdpdFN0YXR1cy5tb2RpZmllZENvdW50fHwwLG49ZSsodD8iICBceEI3ICAiK3QrIiBcdTRFMkFcdTY1ODdcdTRFRjZcdTVGODVcdTYzRDBcdTRFQTQiOiIgIFx4QjcgIFx1NURFNVx1NEY1Q1x1NTMzQVx1NUU3Mlx1NTFDMCIpO3JldHVybic8YnV0dG9uIGlkPSJ0b3BiYXItZ2l0LWJhZGdlIiBjbGFzcz0idG9wYmFyLWdpdC1iYWRnZSIgdHlwZT0iYnV0dG9uIiB0aXRsZT0iJytwKG4pKyciIGFyaWEtbGFiZWw9Ilx1NUZFQlx1NjM3N1x1NjNEMFx1NEVBNCI+PHN2ZyBjbGFzcz0idG9wYmFyLWdpdC1pY29uIiB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PGNpcmNsZSBjeD0iNiIgY3k9IjYiIHI9IjIiLz48Y2lyY2xlIGN4PSI2IiBjeT0iMTgiIHI9IjIiLz48Y2lyY2xlIGN4PSIxOCIgY3k9IjkiIHI9IjIiLz48cGF0aCBkPSJNNiA4djgiLz48cGF0aCBkPSJNMTggMTF2MWEzIDMgMCAwIDEtMyAzSDkiLz48L3N2Zz48c3BhbiBjbGFzcz0idG9wYmFyLWdpdC1icmFuY2giPicrcChlKSsiPC9zcGFuPiIrKHQ+MD8nPHNwYW4gY2xhc3M9InRvcGJhci1naXQtY291bnQiPlx4QjcnK3QrIjwvc3Bhbj4iOic8c3BhbiBjbGFzcz0idG9wYmFyLWdpdC1jbGVhbiIgYXJpYS1oaWRkZW49InRydWUiPlx1MjcxMzwvc3Bhbj4nKSsiPC9idXR0b24+In1mdW5jdGlvbiB0YSgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b3BiYXItZ2l0LXNsb3QiKTtpZihlKXtlLmlubmVySFRNTD1lcygpO3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b3BiYXItZ2l0LWJhZGdlIik7dCYmdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24obil7bi5wcmV2ZW50RGVmYXVsdCgpLHRzKCl9KX19ZnVuY3Rpb24gQWMoZSl7aWYoIWUpcmV0dXJuIiI7dmFyIHQ9ci50b3BiYXJNb3JlT3BlbixuPSEhZS5jbGF1ZGVTZXNzaW9uSWQsaT0hIWUuY3dkLGE9ZS53b3JrdHJlZUVuYWJsZWQmJmUud29ya3RyZWUmJmUud29ya3RyZWUuYnJhbmNoJiZlLndvcmt0cmVlLnBhdGgsdT1lLndvcmt0cmVlTWVyZ2VTdGF0dXM9PT0ibWVyZ2VkIiYmZS53b3JrdHJlZU1lcmdlSW5mbyYmZS53b3JrdHJlZU1lcmdlSW5mby5jbGVhbnVwRG9uZT09PSExLHM9ZS5zdGF0dXM9PT0icnVubmluZyJ8fGUud29ya3RyZWVNZXJnZVN0YXR1cz09PSJtZXJnaW5nIixvPWEmJmUud29ya3RyZWVNZXJnZVN0YXR1cyE9PSJtZXJnZWQiLGw9dSxjPW58fGl8fCEwLGY9b3x8bHx8ITAsZD0nPHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cmVjdCB4PSI5IiB5PSI5IiB3aWR0aD0iMTMiIGhlaWdodD0iMTMiIHJ4PSIyIiByeT0iMiIvPjxwYXRoIGQ9Ik01IDE1SDRhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOWEyIDIgMCAwIDEgMiAydjEiLz48L3N2Zz4nLHY9Jzxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTE3LjUgMTlhNC41IDQuNSAwIDEgMC0xLjUtOC43NEE2IDYgMCAxIDAgNiAxNGgxMS41eiIvPjwvc3ZnPicsaD0nPHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNMjIgMTlhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDVsMiAzaDlhMiAyIDAgMCAxIDIgMnoiLz48L3N2Zz4nLGc9Jzxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PGxpbmUgeDE9IjQiIHkxPSI5IiB4Mj0iMjAiIHkyPSI5Ii8+PGxpbmUgeDE9IjQiIHkxPSIxNSIgeDI9IjIwIiB5Mj0iMTUiLz48bGluZSB4MT0iMTAiIHkxPSIzIiB4Mj0iOCIgeTI9IjIxIi8+PGxpbmUgeDE9IjE2IiB5MT0iMyIgeDI9IjE0IiB5Mj0iMjEiLz48L3N2Zz4nLG09Jzxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTcgN2gxMCIvPjxwYXRoIGQ9Ik03IDEyaDEwIi8+PHBhdGggZD0iTTcgMTdoMTAiLz48cGF0aCBkPSJNNSA3bC0yIDIgMiAyIi8+PHBhdGggZD0iTTE5IDE1bDIgMi0yIDIiLz48L3N2Zz4nLHk9Jzxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTMgNmgxOCIvPjxwYXRoIGQ9Ik04IDZWNGEyIDIgMCAwMTItMmg0YTIgMiAwIDAxMiAydjIiLz48cGF0aCBkPSJNMTkgNmwtMSAxNGEyIDIgMCAwMS0yIDJIOGEyIDIgMCAwMS0yLTJMNSA2Ii8+PC9zdmc+Jyx3PSIiO2lmKG4pe3ZhciBFPWUucHJvdmlkZXI9PT0iY29kZXgiPyJcdTU5MERcdTUyMzYgQ29kZXggdGhyZWFkIElEIjoiXHU1OTBEXHU1MjM2IENsYXVkZSBcdTRGMUFcdThCREQgSUQiO3crPSc8YnV0dG9uIGNsYXNzPSJ0b3BiYXItbW9yZS1pdGVtIiBkYXRhLWFjdGlvbj0iY29weS1jbGF1ZGUtc2Vzc2lvbi1pZCIgdHlwZT0iYnV0dG9uIiByb2xlPSJtZW51aXRlbSI+Jyt2KyI8c3Bhbj4iK0UrIjwvc3Bhbj48L2J1dHRvbj4ifWkmJih3Kz0nPGJ1dHRvbiBjbGFzcz0idG9wYmFyLW1vcmUtaXRlbSIgZGF0YS1hY3Rpb249ImNvcHktY3dkIiB0eXBlPSJidXR0b24iIHJvbGU9Im1lbnVpdGVtIj4nK2grIjxzcGFuPlx1NTkwRFx1NTIzNlx1NURFNVx1NEY1Q1x1NzZFRVx1NUY1NTwvc3Bhbj48L2J1dHRvbj4iKSx3Kz0nPGJ1dHRvbiBjbGFzcz0idG9wYmFyLW1vcmUtaXRlbSIgZGF0YS1hY3Rpb249ImNvcHktc2Vzc2lvbi1pZCIgdHlwZT0iYnV0dG9uIiByb2xlPSJtZW51aXRlbSI+JytnKyI8c3Bhbj5cdTU5MERcdTUyMzZcdTRGMUFcdThCREQgSUQ8L3NwYW4+PC9idXR0b24+Ijt2YXIgQj0iIjtvP0IrPSc8YnV0dG9uIGNsYXNzPSJ0b3BiYXItbW9yZS1pdGVtIiBkYXRhLWFjdGlvbj0id29ya3RyZWUtbWVyZ2UiIHR5cGU9ImJ1dHRvbiIgcm9sZT0ibWVudWl0ZW0iJysocz8iIGRpc2FibGVkIjoiIikrIj4iK20rIjxzcGFuPlx1NTQwOFx1NUU3Nlx1NTIzMFx1NEUzQlx1NTIwNlx1NjUyRlx1MjAyNjwvc3Bhbj48L2J1dHRvbj4iOmwmJihCKz0nPGJ1dHRvbiBjbGFzcz0idG9wYmFyLW1vcmUtaXRlbSIgZGF0YS1hY3Rpb249Indvcmt0cmVlLWNsZWFudXAiIHR5cGU9ImJ1dHRvbiIgcm9sZT0ibWVudWl0ZW0iPicrbSsiPHNwYW4+XHU5MUNEXHU4QkQ1IHdvcmt0cmVlIFx1NkUwNVx1NzQwNjwvc3Bhbj48L2J1dHRvbj4iKSxCKz0nPGJ1dHRvbiBjbGFzcz0idG9wYmFyLW1vcmUtaXRlbSB0b3BiYXItbW9yZS1pdGVtLWRhbmdlciIgZGF0YS1hY3Rpb249ImRlbGV0ZS1zZXNzaW9uIiB0eXBlPSJidXR0b24iIHJvbGU9Im1lbnVpdGVtIj4nK3krIjxzcGFuPlx1NTIyMFx1OTY2NFx1NUY1M1x1NTI0RFx1NEYxQVx1OEJERDwvc3Bhbj48L2J1dHRvbj4iO3ZhciBGPWMmJmY/JzxkaXYgY2xhc3M9InRvcGJhci1tb3JlLWRpdmlkZXIiIHJvbGU9InNlcGFyYXRvciI+PC9kaXY+JzoiIjtyZXR1cm4nPGRpdiBjbGFzcz0idG9wYmFyLW1vcmUtd3JhcCI+PGJ1dHRvbiBpZD0idG9wYmFyLW1vcmUtYnV0dG9uIiBjbGFzcz0idG9wYmFyLWJ0biBzcXVhcmUnKyh0PyIgYWN0aXZlIjoiIikrJyIgdHlwZT0iYnV0dG9uIiBhcmlhLWxhYmVsPSJcdTVGNTNcdTUyNERcdTRGMUFcdThCRERcdTY0Q0RcdTRGNUMiIGFyaWEtaGFzcG9wdXA9Im1lbnUiIGFyaWEtZXhwYW5kZWQ9IicrKHQ/InRydWUiOiJmYWxzZSIpKyciIHRpdGxlPSJcdTVGNTNcdTUyNERcdTRGMUFcdThCRERcdTY0Q0RcdTRGNUMiPjxzdmcgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMSIvPjxjaXJjbGUgY3g9IjEyIiBjeT0iNSIgcj0iMSIvPjxjaXJjbGUgY3g9IjEyIiBjeT0iMTkiIHI9IjEiLz48L3N2Zz48L2J1dHRvbj48ZGl2IGlkPSJ0b3BiYXItbW9yZS1tZW51IiBjbGFzcz0idG9wYmFyLW1vcmUtbWVudScrKHQ/IiI6IiBoaWRkZW4iKSsnIiByb2xlPSJtZW51IiBhcmlhLWxhYmVsPSJcdTVGNTNcdTUyNERcdTRGMUFcdThCREQiPicrdytGK0IrIjwvZGl2PjwvZGl2PiJ9ZnVuY3Rpb24gRG4oZSx0KXtpZighZSlyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG51bGwpO3ZhciBuPXQmJnQuZm9yY2UsaT1EYXRlLm5vdygpO2lmKCFuJiZyLmdpdFN0YXR1c1Nlc3Npb25JZD09PWUmJnIuZ2l0U3RhdHVzJiZpLXIuZ2l0U3RhdHVzTGFzdEZldGNoQXQ8MWUzKXJldHVybiBQcm9taXNlLnJlc29sdmUoci5naXRTdGF0dXMpO2lmKHIuZ2l0U3RhdHVzSW5mbGlnaHQmJnIuZ2l0U3RhdHVzSW5mbGlnaHQuc2Vzc2lvbklkPT09ZSlyZXR1cm4gci5naXRTdGF0dXNJbmZsaWdodC5wcm9taXNlO3IuZ2l0U3RhdHVzTG9hZGluZz0hMDt2YXIgYT1mZXRjaCgiL2FwaS9zZXNzaW9ucy8iK2VuY29kZVVSSUNvbXBvbmVudChlKSsiL2dpdC1zdGF0dXMiLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbih1KXtyZXR1cm4gdS5vaz91Lmpzb24oKTp7aXNHaXQ6ITF9fSkudGhlbihmdW5jdGlvbih1KXtyZXR1cm4gci5naXRTdGF0dXM9dXx8e2lzR2l0OiExfSxyLmdpdFN0YXR1c1Nlc3Npb25JZD1lLHIuZ2l0U3RhdHVzTGFzdEZldGNoQXQ9RGF0ZS5ub3coKSx0YSgpLHV9KS5jYXRjaChmdW5jdGlvbigpe3JldHVybiByLmdpdFN0YXR1cz17aXNHaXQ6ITF9LHIuZ2l0U3RhdHVzU2Vzc2lvbklkPWUsci5naXRTdGF0dXNMYXN0RmV0Y2hBdD1EYXRlLm5vdygpLHRhKCksbnVsbH0pLmZpbmFsbHkoZnVuY3Rpb24oKXtyLmdpdFN0YXR1c0xvYWRpbmc9ITEsci5naXRTdGF0dXNJbmZsaWdodCYmci5naXRTdGF0dXNJbmZsaWdodC5zZXNzaW9uSWQ9PT1lJiYoci5naXRTdGF0dXNJbmZsaWdodD1udWxsKX0pO3JldHVybiByLmdpdFN0YXR1c0luZmxpZ2h0PXtzZXNzaW9uSWQ6ZSxwcm9taXNlOmF9LGF9dmFyIGtuPW51bGwsQW49bnVsbCxDZz1udWxsO2Z1bmN0aW9uIHhjKGUpe3JldHVybiBlPT09ImNvbW1pdC10YWcifHxlPT09ImNvbW1pdC10YWctcHVzaCJ8fGU9PT0iY29tbWl0LXB1c2giP2U6ImNvbW1pdCJ9ZnVuY3Rpb24gU2MoZSl7cmV0dXJuIGU9eGMoZSksZT09PSJjb21taXQtdGFnLXB1c2giP3thY3Rpb246ZSxsYWJlbDoiQ29tbWl0ICsgVGFnICsgUHVzaCIsdmVyYjoiXHU2M0QwXHU0RUE0XHUzMDAxXHU2MjUzIFRhZyBcdTVFNzZcdTYzQThcdTkwMDEiLHdpdGhUYWc6ITAscHVzaDohMCx0b25lOiJhbGwifTplPT09ImNvbW1pdC10YWciP3thY3Rpb246ZSxsYWJlbDoiQ29tbWl0ICsgVGFnIix2ZXJiOiJcdTYzRDBcdTRFQTRcdTVFNzZcdTYyNTMgVGFnIix3aXRoVGFnOiEwLHB1c2g6ITEsdG9uZToidGFnIn06ZT09PSJjb21taXQtcHVzaCI/e2FjdGlvbjplLGxhYmVsOiJDb21taXQgKyBQdXNoIix2ZXJiOiJcdTYzRDBcdTRFQTRcdTVFNzZcdTYzQThcdTkwMDEiLHdpdGhUYWc6ITEscHVzaDohMCx0b25lOiJwdXNoIn06e2FjdGlvbjoiY29tbWl0IixsYWJlbDoiQ29tbWl0Iix2ZXJiOiJcdTRFQzVcdTYzRDBcdTRFQTQiLHdpdGhUYWc6ITEscHVzaDohMSx0b25lOiJjb21taXQifX1mdW5jdGlvbiB0cygpe2lmKHIuc2VsZWN0ZWRJZCl7ci5xdWlja0NvbW1pdE9wZW49ITAsci5xdWlja0NvbW1pdFN1Ym1pdHRpbmc9ITEsci5xdWlja0NvbW1pdEF1dG9HZW5lcmF0aW5nPSExLHIucXVpY2tDb21taXRFcnJvcj0iIixyLnF1aWNrQ29tbWl0Rm9ybT17Y3VzdG9tTWVzc2FnZToiIix0YWc6IiIsdGFnRWRpdGVkOiExfSxyLnF1aWNrQ29tbWl0UHVzaGluZz0hMSxyLnF1aWNrQ29tbWl0UHVzaEVycm9yPSIiLHIucXVpY2tDb21taXRSZXN1bHQ9bnVsbCxyLnF1aWNrQ29tbWl0RHJhZ0FjdGlvbj0iY29tbWl0IixlcigpLHluKCksdHIoKSxIdCgpO3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJxdWljay1jb21taXQtbW9kYWwiKTtlJiYoZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSxyLmxhc3RGb2N1c2VkRWxlbWVudD1kb2N1bWVudC5hY3RpdmVFbGVtZW50LFBpKGUpKSxrbiYmZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsa24pLGtuPWZ1bmN0aW9uKHQpe3Qua2V5PT09IkVzY2FwZSImJnIucXVpY2tDb21taXRPcGVuJiYhci5xdWlja0NvbW1pdFN1Ym1pdHRpbmcmJiFyLnF1aWNrQ29tbWl0UHVzaGluZyYmTm4oKX0sZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsa24pLERuKHIuc2VsZWN0ZWRJZCx7Zm9yY2U6ITB9KS50aGVuKGZ1bmN0aW9uKCl7ci5xdWlja0NvbW1pdE9wZW4mJkh0KCl9KX19ZnVuY3Rpb24gTm4oKXtyLnF1aWNrQ29tbWl0T3Blbj0hMSxyLnF1aWNrQ29tbWl0U3VibWl0dGluZz0hMSxyLnF1aWNrQ29tbWl0RXJyb3I9IiIsci5xdWlja0NvbW1pdFJlc3VsdD1udWxsLHIucXVpY2tDb21taXREcmFnQWN0aW9uPSJjb21taXQiO3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJxdWljay1jb21taXQtbW9kYWwiKTtlJiZlLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLHIuZm9jdXNUcmFwSGFuZGxlciYmKGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLHIuZm9jdXNUcmFwSGFuZGxlciksci5mb2N1c1RyYXBIYW5kbGVyPW51bGwpLGtuJiYoZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsa24pLGtuPW51bGwpLEFuJiYoQW4oKSxBbj1udWxsKSxyLmxhc3RGb2N1c2VkRWxlbWVudCYmdHlwZW9mIHIubGFzdEZvY3VzZWRFbGVtZW50LmZvY3VzPT0iZnVuY3Rpb24iJiZyLmxhc3RGb2N1c2VkRWxlbWVudC5mb2N1cygpfWZ1bmN0aW9uIEh0KCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInF1aWNrLWNvbW1pdC1tb2RhbCIpO2lmKGUpe0FuJiYoQW4oKSxBbj1udWxsKTt2YXIgdD1pcygpLG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7bi5pbm5lckhUTUw9dDt2YXIgaT1uLnF1ZXJ5U2VsZWN0b3IoIiNxdWljay1jb21taXQtbW9kYWwiKTtpJiYoZS5pbm5lckhUTUw9aS5pbm5lckhUTUwsbnMoKSl9fWZ1bmN0aW9uIG5zKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInF1aWNrLWNvbW1pdC1jbG9zZS1idG4iKTtlJiZlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixObik7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInF1aWNrLWNvbW1pdC1jYW5jZWwtYnRuIik7dCYmdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsTm4pO3ZhciBuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJxdWljay1jb21taXQtYWktYnRuIik7biYmbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsTWMpO3ZhciBpPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJxdWljay1jb21taXQtbWVzc2FnZSIpO2kmJihpLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IixmdW5jdGlvbigpe3IucXVpY2tDb21taXRGb3JtLmN1c3RvbU1lc3NhZ2U9aS52YWx1ZX0pLGkuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsZnVuY3Rpb24ocyl7KHMubWV0YUtleXx8cy5jdHJsS2V5KSYmcy5rZXk9PT0iRW50ZXIiJiYocy5wcmV2ZW50RGVmYXVsdCgpLGpuKCJjb21taXQiKSl9KSk7dmFyIGE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInF1aWNrLWNvbW1pdC10YWciKTthJiYoYS5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsZnVuY3Rpb24oKXtyLnF1aWNrQ29tbWl0Rm9ybS50YWc9YS52YWx1ZSxyLnF1aWNrQ29tbWl0Rm9ybS50YWdFZGl0ZWQ9ITB9KSxhLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGZ1bmN0aW9uKHMpe3Mua2V5PT09IkVudGVyIiYmKHMucHJldmVudERlZmF1bHQoKSxqbigiY29tbWl0LXRhZyIpKX0pKTt2YXIgdT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicXVpY2stY29tbWl0LXB1c2gtYWZ0ZXItYnRuIik7dSYmdS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXt2YXIgcz1yLnF1aWNrQ29tbWl0UmVzdWx0fHx7fTtxYyh7cHVzaENvbW1pdHM6ITAscHVzaFRhZ3M6ISFzLnRhZ05hbWUsY2xvc2VPblN1Y2Nlc3M6ITB9KX0pLExjKCl9ZnVuY3Rpb24gSWMoZSl7dmFyIHQ9ISEoZSYmZS50YWcpLG49ISEoZSYmZS5wdXNoKTtyZXR1cm4gdCYmbj8iY29tbWl0LXRhZy1wdXNoIjp0PyJjb21taXQtdGFnIjpuPyJjb21taXQtcHVzaCI6ImNvbW1pdCJ9dmFyIFRjPTU4LCRyPTEwO2Z1bmN0aW9uIHJzKGUpe3JldHVybiBlPT09InRhZyI/e2FjdGlvbjoiY29tbWl0LXRhZyIsc3ViOiExfTplPT09InB1c2giP3thY3Rpb246ImNvbW1pdC1wdXNoIixzdWI6ITF9OmU9PT0ic3ViIj97YWN0aW9uOiJjb21taXQiLHN1YjohMH06e2FjdGlvbjoiY29tbWl0IixzdWI6ITF9fWZ1bmN0aW9uIExjKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInFjLWRvY2stZmllbGQiKSx0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJxYy1kb2NrLXN0YWdlIiksbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicWMtZG9jay1sYXVuY2giKSxpPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJxYy1kb2NrLWNsdXN0ZXIiKTtpZighZXx8IXR8fCFufHwhaSlyZXR1cm47dmFyIGE9WyJjb21taXQiLCJ0YWciLCJwdXNoIl0sdT17fTtpZihhLmZvckVhY2goZnVuY3Rpb24oRCl7dVtEXT1lLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLWNoaXA9IicrRCsnIl0nKX0pLCF1LmNvbW1pdHx8IXUudGFnfHwhdS5wdXNoKXJldHVybjt1LnN1Yj1lLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLWNoaXA9InN1YiJdJyk7dmFyIHM9ISF1LnN1YixvPXM/YS5jb25jYXQoWyJzdWIiXSk6YTtmdW5jdGlvbiBsKEQpe3JldHVybiB1W0RdP3VbRF0ub2Zmc2V0V2lkdGg6OTB9ZnVuY3Rpb24gYygpe3JldHVybiB1LmNvbW1pdD91LmNvbW1pdC5vZmZzZXRIZWlnaHQ6Mzh9ZnVuY3Rpb24gZigpe3JldHVybiB3aW5kb3cubWF0Y2hNZWRpYSYmd2luZG93Lm1hdGNoTWVkaWEoIihtYXgtd2lkdGg6IDcyMHB4KSIpLm1hdGNoZXN9ZnVuY3Rpb24gZCgpe3ZhciBEPWUuY2xpZW50V2lkdGgsTT1lLmNsaWVudEhlaWdodCxMPWMoKSxXPWwoImNvbW1pdCIpLEs9bCgidGFnIiksWD1sKCJwdXNoIik7aWYoZigpJiZzKXt2YXIgbmU9TWF0aC5tYXgoOCxNKi4yLUwvMiksc2U9TWF0aC5taW4oTS1MLTgsTSouNy1MLzIpLHJlPWZ1bmN0aW9uKGFlKXtyZXR1cm4gTWF0aC5tYXgoOCxEKi4yNy1hZS8yKX0sVD1mdW5jdGlvbihhZSl7cmV0dXJuIE1hdGgubWluKEQtYWUtOCxEKi43My1hZS8yKX07cmV0dXJue2NvbW1pdDp7eDpyZShXKSx5Om5lfSx0YWc6e3g6VChLKSx5Om5lfSxwdXNoOnt4OnJlKFgpLHk6c2V9LHN1Yjp7eDpUKGwoInN1YiIpKSx5OnNlfX19dmFyIHE9ZigpLE49cT9NYXRoLm1heCg4LE0qLjE4LUwvMik6TWF0aC5tYXgoOCxNKi4xMiksWT1xP01hdGgubWluKE0tTC04LE0qLjcyLUwvMik6TWF0aC5taW4oTS1MLTgsTSouODgtTCksSj1xPy4yNDouMjgsaWU9cT8uNzY6LjcyLGRlPXtjb21taXQ6e3g6TWF0aC5tYXgoOCwoRC1XKS8yKSx5Ok59LHRhZzp7eDpNYXRoLm1heCg4LEQqSi1LLzIpLHk6WX0scHVzaDp7eDpNYXRoLm1pbihELVgtOCxEKmllLVgvMikseTpZfX07aWYocyl7dmFyIHRlPWwoInN1YiIpO2RlLnN1Yj17eDpNYXRoLm1pbihELXRlLTgsRCouOTQtdGUvMikseTpNYXRoLm1heCg4LE1hdGgubWluKE0tTC04LChNLUwpLzIpKX19cmV0dXJuIGRlfXZhciB2PXt9O2Z1bmN0aW9uIGgoRCxNLEwpe3VbRF0mJih1W0RdLnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlKCIrTS50b0ZpeGVkKDEpKyJweCwiK0wudG9GaXhlZCgxKSsicHgpIil9ZnVuY3Rpb24gZyhEKXt2PWQoKSxvLmZvckVhY2goZnVuY3Rpb24oTSl7dVtNXS5jbGFzc0xpc3QudG9nZ2xlKCJxYy1jaGlwLS1hbmltIiwhIUQpLGgoTSx2W01dLngsdltNXS55KX0pfWcoITEpO3ZhciBtPW51bGw7ZnVuY3Rpb24geShELE0sTCl7dmFyIFc9YygpLEs9MjQsWD1vLmZpbHRlcihmdW5jdGlvbihOKXtyZXR1cm4gRC5pbmRleE9mKE4pPj0wfSksbmU9WC5yZWR1Y2UoZnVuY3Rpb24oTixZKXtyZXR1cm4gTWF0aC5tYXgoTixsKFkpKX0sMCksc2U9bmUrTWF0aC5tYXgoMCxYLmxlbmd0aC0xKSpLLHJlPWUuY2xpZW50SGVpZ2h0LFQ9TS1zZS8yLHE9TWF0aC5tYXgoMixNYXRoLm1pbihyZS1XLTIsTC1XLzIpKTtyZXR1cm4gWC5mb3JFYWNoKGZ1bmN0aW9uKE4pe2goTixULHEpLFQrPUt9KSx7eDpNLXNlLzItNyx5OnEtNyx3OnNlKzE0LGg6VysxNH19ZnVuY3Rpb24gdyhEKXtpLmNsYXNzTGlzdC5hZGQoImlzLWFjdGl2ZSIpLGkuc3R5bGUudHJhbnNmb3JtPSJ0cmFuc2xhdGUoIitELngudG9GaXhlZCgxKSsicHgsIitELnkudG9GaXhlZCgxKSsicHgpIixpLnN0eWxlLndpZHRoPUQudy50b0ZpeGVkKDEpKyJweCIsaS5zdHlsZS5oZWlnaHQ9RC5oLnRvRml4ZWQoMSkrInB4In1mdW5jdGlvbiBFKCl7aS5jbGFzc0xpc3QucmVtb3ZlKCJpcy1hY3RpdmUiKX1mdW5jdGlvbiBCKEQpe3JldHVybiBJYyh7Y29tbWl0OiEwLHRhZzpELmluZGV4T2YoInRhZyIpPj0wLHB1c2g6RC5pbmRleE9mKCJwdXNoIik+PTB9KX1mdW5jdGlvbiBGKEQpe3JldHVybiBELmluZGV4T2YoInN1YiIpPj0wfWZ1bmN0aW9uIHgoRCl7dmFyIE09ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInFjLWRvY2stbGF1bmNoLWxhYmVsIik7TSYmKE0udGV4dENvbnRlbnQ9RCl9ZnVuY3Rpb24gUyhELE0pe3ZhciBMPW4uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cmV0dXJuIEQ+PUwubGVmdCYmRDw9TC5yaWdodCYmTT49TC50b3AmJk08PUwuYm90dG9tfWZ1bmN0aW9uIF8oRCl7cmV0dXJuIGZ1bmN0aW9uKE0pe2lmKCEodVtEXS5kaXNhYmxlZHx8WHIoKSkpe209e2FuY2hvcjpELHBvaW50ZXJJZDpNLnBvaW50ZXJJZCxzdGFydFg6TS5jbGllbnRYLHN0YXJ0WTpNLmNsaWVudFksbW92ZWQ6ITEsbWVtYmVyczpbRF19LG8uZm9yRWFjaChmdW5jdGlvbihMKXt1W0xdLmNsYXNzTGlzdC5yZW1vdmUoInFjLWNoaXAtLWFuaW0iKX0pLHVbRF0uY2xhc3NMaXN0LmFkZCgiaXMtZ3JhYmJpbmciKTt0cnl7dVtEXS5zZXRQb2ludGVyQ2FwdHVyZShNLnBvaW50ZXJJZCl9Y2F0Y2h7fXQuY2xhc3NMaXN0LmFkZCgiaXMtZHJhZ2dpbmciKSxNLnByZXZlbnREZWZhdWx0KCl9fX1mdW5jdGlvbiBWKEQpe2lmKCEoIW18fG0ucG9pbnRlcklkIT09RC5wb2ludGVySWQpKXsoTWF0aC5hYnMoRC5jbGllbnRYLW0uc3RhcnRYKT4zfHxNYXRoLmFicyhELmNsaWVudFktbS5zdGFydFkpPjMpJiYobS5tb3ZlZD0hMCk7dmFyIE09ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxMPUQuY2xpZW50WC1NLmxlZnQsVz1ELmNsaWVudFktTS50b3A7aWYoYS5mb3JFYWNoKGZ1bmN0aW9uKHEpe2lmKCEobS5tZW1iZXJzLmluZGV4T2YocSk+PTApKXt2YXIgTj12W3FdLngrbChxKS8yLFk9dltxXS55K2MoKS8yLEo9TC1OLGllPVctWTtNYXRoLnNxcnQoSipKK2llKmllKTxUYyYmKG0ubWVtYmVycy5wdXNoKHEpLHVbcV0uY2xhc3NMaXN0LnJlbW92ZSgicWMtY2hpcC0tYW5pbSIpLHVbcV0uY2xhc3NMaXN0LmFkZCgiaXMtYXR0YWNoZWQiKSl9fSkscyYmbS5tZW1iZXJzLmluZGV4T2YoInN1YiIpPDApe3ZhciBLPXYuc3ViLngtJHIsWD12LnN1Yi55LSRyLG5lPXYuc3ViLngrbCgic3ViIikrJHIsc2U9di5zdWIueStjKCkrJHI7TD49SyYmTDw9bmUmJlc+PVgmJlc8PXNlJiYobS5tZW1iZXJzLnB1c2goInN1YiIpLHUuc3ViLmNsYXNzTGlzdC5yZW1vdmUoInFjLWNoaXAtLWFuaW0iKSx1LnN1Yi5jbGFzc0xpc3QuYWRkKCJpcy1hdHRhY2hlZCIpKX12YXIgcmU9eShtLm1lbWJlcnMsTCxXKSxUPVMoRC5jbGllbnRYLEQuY2xpZW50WSk7dC5zZXRBdHRyaWJ1dGUoImRhdGEtaG90IixUPyIxIjoiMCIpLHQuc2V0QXR0cmlidXRlKCJkYXRhLWFjdGlvbiIsQihtLm1lbWJlcnMpKSxtLm1lbWJlcnMubGVuZ3RoPjE/dyhyZSk6RSgpLHgoVD8iXHU2NzdFXHU2MjRCXHU2MjY3XHU4ODRDIjoiXHU2M0QwXHU0RUE0Iil9fWZ1bmN0aW9uIFUoRCxNKXtpZighKCFtfHxtLnBvaW50ZXJJZCE9PUQucG9pbnRlcklkKSl7dmFyIEw9bTttPW51bGwsdC5jbGFzc0xpc3QucmVtb3ZlKCJpcy1kcmFnZ2luZyIpLHQuc2V0QXR0cmlidXRlKCJkYXRhLWhvdCIsIjAiKSx4KCJcdTYzRDBcdTRFQTQiKSxFKCksby5mb3JFYWNoKGZ1bmN0aW9uKEspe3VbS10uY2xhc3NMaXN0LnJlbW92ZSgiaXMtZ3JhYmJpbmciLCJpcy1hdHRhY2hlZCIpfSk7dHJ5e3VbTC5hbmNob3JdLnJlbGVhc2VQb2ludGVyQ2FwdHVyZShMLnBvaW50ZXJJZCl9Y2F0Y2h7fWlmKCFNJiYhTC5tb3ZlZCl7dmFyIFc9cnMoTC5hbmNob3IpO2puKFcuYWN0aW9uLFcuc3ViKTtyZXR1cm59aWYoIU0mJlMoRC5jbGllbnRYLEQuY2xpZW50WSkpe2puKEIoTC5tZW1iZXJzKSxGKEwubWVtYmVycykpO3JldHVybn10LnNldEF0dHJpYnV0ZSgiZGF0YS1hY3Rpb24iLCJjb21taXQiKSxnKCEwKX19dmFyIEk9ZnVuY3Rpb24oKXtyLnF1aWNrQ29tbWl0T3BlbiYmIW0mJmcoITEpfTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIixJKSxvLmZvckVhY2goZnVuY3Rpb24oRCl7dmFyIE09dVtEXTtNLmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJkb3duIixfKEQpKSxNLmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJtb3ZlIixWKSxNLmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJ1cCIsZnVuY3Rpb24oTCl7VShMLCExKX0pLE0uYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcmNhbmNlbCIsZnVuY3Rpb24oTCl7VShMLCEwKX0pLE0uYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsZnVuY3Rpb24oTCl7aWYoIShNLmRpc2FibGVkfHxYcigpKSYmKEwua2V5PT09IkVudGVyInx8TC5rZXk9PT0iICJ8fEwua2V5PT09IlNwYWNlYmFyIikpe0wucHJldmVudERlZmF1bHQoKTt2YXIgVz1ycyhEKTtqbihXLmFjdGlvbixXLnN1Yil9fSl9KSxuLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe24uZGlzYWJsZWR8fFhyKCl8fG18fGpuKCJjb21taXQiKX0pLEFuPWZ1bmN0aW9uKCl7d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsSSksbT1udWxsfX1mdW5jdGlvbiBNYygpe2lmKCEoIXIuc2VsZWN0ZWRJZHx8ci5xdWlja0NvbW1pdEdlbmVyYXRpbmcpKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicXVpY2stY29tbWl0LW1lc3NhZ2UiKTtlJiYoci5xdWlja0NvbW1pdEZvcm0uY3VzdG9tTWVzc2FnZT1lLnZhbHVlKTt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicXVpY2stY29tbWl0LXRhZyIpO3QmJihyLnF1aWNrQ29tbWl0Rm9ybS50YWc9dC52YWx1ZSksci5xdWlja0NvbW1pdEdlbmVyYXRpbmc9ITAsci5xdWlja0NvbW1pdEVycm9yPSIiLEh0KCksZmV0Y2goIi9hcGkvc2Vzc2lvbnMvIitlbmNvZGVVUklDb21wb25lbnQoci5zZWxlY3RlZElkKSsiL2dlbmVyYXRlLWNvbW1pdC1tZXNzYWdlIix7bWV0aG9kOiJQT1NUIixjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sYm9keTpKU09OLnN0cmluZ2lmeSh7fSl9KS50aGVuKGZ1bmN0aW9uKG4pe3JldHVybiBuLmpzb24oKS50aGVuKGZ1bmN0aW9uKGkpe3JldHVybntvazpuLm9rLGRhdGE6aX19KX0pLnRoZW4oZnVuY3Rpb24obil7aWYoIW4ub2spdGhyb3cgbmV3IEVycm9yKG4uZGF0YSYmbi5kYXRhLmVycm9yfHwiQUkgXHU3NTFGXHU2MjEwXHU1OTMxXHU4RDI1XHUzMDAyIik7dmFyIGk9bi5kYXRhfHx7fSxhPXR5cGVvZiBpLm1lc3NhZ2U9PSJzdHJpbmciP2kubWVzc2FnZToiIix1PXR5cGVvZiBpLnN1Z2dlc3RlZFRhZz09InN0cmluZyI/aS5zdWdnZXN0ZWRUYWcudHJpbSgpOiIiLHM9KHIucXVpY2tDb21taXRGb3JtLmN1c3RvbU1lc3NhZ2V8fCIiKS50cmltKCk7IXMmJmEmJihyLnF1aWNrQ29tbWl0Rm9ybS5jdXN0b21NZXNzYWdlPWEpLHUmJihyLnF1aWNrQ29tbWl0Rm9ybS50YWdFZGl0ZWR8fChyLnF1aWNrQ29tbWl0Rm9ybS50YWc9dSksci5xdWlja0NvbW1pdERyYWdBY3Rpb249ImNvbW1pdC10YWciKX0pLmNhdGNoKGZ1bmN0aW9uKG4pe3IucXVpY2tDb21taXRFcnJvcj1uJiZuLm1lc3NhZ2V8fCJBSSBcdTc1MUZcdTYyMTBcdTU5MzFcdThEMjVcdTMwMDIifSkuZmluYWxseShmdW5jdGlvbigpe3IucXVpY2tDb21taXRHZW5lcmF0aW5nPSExLHIucXVpY2tDb21taXRPcGVuJiZIdCgpfSl9fWZ1bmN0aW9uIGpuKGUsdCl7aWYoISghci5zZWxlY3RlZElkfHxyLnF1aWNrQ29tbWl0U3VibWl0dGluZykpe3ZhciBuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJxdWljay1jb21taXQtbWVzc2FnZSIpO24mJihyLnF1aWNrQ29tbWl0Rm9ybS5jdXN0b21NZXNzYWdlPW4udmFsdWUpO3ZhciBpPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJxdWljay1jb21taXQtdGFnIik7aSYmKHIucXVpY2tDb21taXRGb3JtLnRhZz1pLnZhbHVlKTt2YXIgYT1yLnF1aWNrQ29tbWl0Rm9ybXx8e30sdT1TYyhlfHxyLnF1aWNrQ29tbWl0RHJhZ0FjdGlvbnx8ImNvbW1pdCIpLHM9dS53aXRoVGFnLG89cz8oYS50YWd8fCIiKS50cmltKCk6IiIsbD0oYS5jdXN0b21NZXNzYWdlfHwiIikudHJpbSgpLGM9IWwsZj17YnJhbmNoOihyLmdpdFN0YXR1c3x8e30pLmJyYW5jaHx8IiIsY29tbWl0SGFzaDooci5naXRTdGF0dXN8fHt9KS5sYXN0Q29tbWl0JiYoci5naXRTdGF0dXN8fHt9KS5sYXN0Q29tbWl0LnNob3J0SGFzaD8oci5naXRTdGF0dXN8fHt9KS5sYXN0Q29tbWl0LnNob3J0SGFzaDooci5naXRTdGF0dXN8fHt9KS5oZWFkPyhyLmdpdFN0YXR1c3x8e30pLmhlYWQuc3Vic3RyaW5nKDAsNyk6IiIsY29tbWl0U3ViamVjdDooci5naXRTdGF0dXN8fHt9KS5sYXN0Q29tbWl0JiYoci5naXRTdGF0dXN8fHt9KS5sYXN0Q29tbWl0LnN1YmplY3Q/KHIuZ2l0U3RhdHVzfHx7fSkubGFzdENvbW1pdC5zdWJqZWN0OiIiLHRhZzooci5naXRTdGF0dXN8fHt9KS5sYXRlc3RUYWd8fCIifSxkPXthdXRvTWVzc2FnZTpjLGN1c3RvbU1lc3NhZ2U6Yz8iIjpsLHRhZzpvLGF1dG9UYWc6ISEocyYmIW8pLHB1c2g6ISF1LnB1c2gsc3VibW9kdWxlOiEhdH07ci5xdWlja0NvbW1pdFN1Ym1pdHRpbmc9ITAsci5xdWlja0NvbW1pdFN1Ym1vZHVsZUludGVudD0hIXQsci5xdWlja0NvbW1pdEF1dG9HZW5lcmF0aW5nPWN8fGQuYXV0b1RhZyxyLnF1aWNrQ29tbWl0RXJyb3I9IiIsci5xdWlja0NvbW1pdFB1c2hFcnJvcj0iIixyLnF1aWNrQ29tbWl0UmVzdWx0PW51bGwsci5xdWlja0NvbW1pdERyYWdBY3Rpb249dS5hY3Rpb24sSHQoKSxmZXRjaCgiL2FwaS9zZXNzaW9ucy8iK2VuY29kZVVSSUNvbXBvbmVudChyLnNlbGVjdGVkSWQpKyIvcXVpY2stY29tbWl0Iix7bWV0aG9kOiJQT1NUIixjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sYm9keTpKU09OLnN0cmluZ2lmeShkKX0pLnRoZW4oZnVuY3Rpb24odil7cmV0dXJuIHYuanNvbigpLnRoZW4oZnVuY3Rpb24oaCl7cmV0dXJue29rOnYub2ssZGF0YTpofX0pfSkudGhlbihmdW5jdGlvbih2KXtpZighdi5vayl0aHJvdyBuZXcgRXJyb3Iodi5kYXRhJiZ2LmRhdGEuZXJyb3J8fCJcdTVGRUJcdTYzNzdcdTYzRDBcdTRFQTRcdTU5MzFcdThEMjVcdTMwMDIiKTt2YXIgaD12LmRhdGF8fHt9LGc9aC5jb21taXQmJmguY29tbWl0Lmhhc2g/aC5jb21taXQuaGFzaC5zdWJzdHJpbmcoMCw3KToiIixtPWgudGFnJiZoLnRhZy5uYW1lP2gudGFnLm5hbWU6IiIseT1BcnJheS5pc0FycmF5KGguc3VibW9kdWxlQ29tbWl0cyk/aC5zdWJtb2R1bGVDb21taXRzOltdLHc9eS5sZW5ndGg+MD8iXHU1REYyXHU1MTQ4XHU2M0QwXHU0RUE0ICIreS5sZW5ndGgrIiBcdTRFMkEgc3VibW9kdWxlXHVGRjA4Iit5Lm1hcChmdW5jdGlvbihCKXtyZXR1cm4gQi5wYXRofSkuam9pbigiXHUzMDAxIikrIlx1RkYwOVx1RkYwQyI6IiIsRT13KyJcdTVERjJcdTYzRDBcdTRFQTQiKyhnPyIgIitnOiIiKSsobT8iXHVGRjBDXHU1REYyXHU2MjUzIFRhZyAiK206IiIpO3IucXVpY2tDb21taXRSZXN1bHQ9e2FjdGlvbjp1LmFjdGlvbixpbmNsdWRlU3VibW9kdWxlOiEhdCxwdXNoZWQ6ISFoLnB1c2hlZCxwdXNoRXJyb3I6aC5wdXNoRXJyb3J8fCIiLGNvbW1pdEhhc2g6Zyxjb21taXRNZXNzYWdlOmguY29tbWl0JiZoLmNvbW1pdC5tZXNzYWdlP2guY29tbWl0Lm1lc3NhZ2U6bCx0YWdOYW1lOm0sb2xkVGFnOmYudGFnLG9sZENvbW1pdEhhc2g6Zi5jb21taXRIYXNoLG9sZENvbW1pdFN1YmplY3Q6Zi5jb21taXRTdWJqZWN0LHN1Ym1vZHVsZUNvdW50OnkubGVuZ3RofSx1LnB1c2gmJiFoLnB1c2hFcnJvcj8odHlwZW9mIGs9PSJmdW5jdGlvbiImJmsoRSsiXHVGRjBDXHU1REYyXHU2M0E4XHU5MDAxXHUzMDAyIiwic3VjY2VzcyIpLE5uKCkpOih0eXBlb2Ygaz09ImZ1bmN0aW9uIiYmayhFKyhoLnB1c2hFcnJvcj8iXHVGRjFCcHVzaCBcdTU5MzFcdThEMjVcdUZGMUEiK2gucHVzaEVycm9yOiJcdTMwMDIiKSxoLnB1c2hFcnJvcj8iZXJyb3IiOiJzdWNjZXNzIiksci5zZWxlY3RlZElkJiZEbihyLnNlbGVjdGVkSWQse2ZvcmNlOiEwfSkudGhlbihmdW5jdGlvbigpe3IucXVpY2tDb21taXRPcGVuJiZIdCgpfSkpfSkuY2F0Y2goZnVuY3Rpb24odil7ci5xdWlja0NvbW1pdEVycm9yPXYmJnYubWVzc2FnZXx8Ilx1NUZFQlx1NjM3N1x1NjNEMFx1NEVBNFx1NTkzMVx1OEQyNVx1MzAwMiJ9KS5maW5hbGx5KGZ1bmN0aW9uKCl7ci5xdWlja0NvbW1pdFN1Ym1pdHRpbmc9ITEsci5xdWlja0NvbW1pdEF1dG9HZW5lcmF0aW5nPSExLHIucXVpY2tDb21taXRPcGVuJiZIdCgpfSl9fWZ1bmN0aW9uIHFjKGUpe2lmKCEoIXIuc2VsZWN0ZWRJZHx8ci5xdWlja0NvbW1pdFB1c2hpbmcpKXt2YXIgdD0hIShlJiZlLnB1c2hDb21taXRzKSxuPSEhKGUmJmUucHVzaFRhZ3MpLGk9ISEoZSYmZS5jbG9zZU9uU3VjY2Vzcyk7aWYoISghdCYmIW4pKXt2YXIgYT1yLnF1aWNrQ29tbWl0UmVzdWx0fHx7fSx1PSEhYS5pbmNsdWRlU3VibW9kdWxlO3IucXVpY2tDb21taXRQdXNoaW5nPSEwLHIucXVpY2tDb21taXRQdXNoRXJyb3I9IiIsSHQoKSxmZXRjaCgiL2FwaS9zZXNzaW9ucy8iK2VuY29kZVVSSUNvbXBvbmVudChyLnNlbGVjdGVkSWQpKyIvZ2l0L3B1c2giLHttZXRob2Q6IlBPU1QiLGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxib2R5OkpTT04uc3RyaW5naWZ5KHtwdXNoQ29tbWl0czp0LHB1c2hUYWdzOm4sc3VibW9kdWxlOnUsdGFnOmEudGFnTmFtZXx8IiJ9KX0pLnRoZW4oZnVuY3Rpb24ocyl7cmV0dXJuIHMuanNvbigpLnRoZW4oZnVuY3Rpb24obyl7cmV0dXJue29rOnMub2ssZGF0YTpvfX0pfSkudGhlbihmdW5jdGlvbihzKXt2YXIgbz1zLmRhdGF8fHt9O2lmKCFzLm9rKXRocm93IG5ldyBFcnJvcihvJiZvLmVycm9yfHwiXHU2M0E4XHU5MDAxXHU1OTMxXHU4RDI1XHUzMDAyIik7aWYoby5lcnJvcil7ci5xdWlja0NvbW1pdFB1c2hFcnJvcj1vLmVycm9yLHR5cGVvZiBrPT0iZnVuY3Rpb24iJiZrKCJcdTYzQThcdTkwMDFcdTU5MzFcdThEMjVcdUZGMUEiK28uZXJyb3IsImVycm9yIik7cmV0dXJufXZhciBsPVtdO28ucHVzaGVkQ29tbWl0cyYmbC5wdXNoKCJjb21taXRzIiksby5wdXNoZWRUYWdzJiZsLnB1c2goInRhZ3MiKTt2YXIgYz1sLmxlbmd0aD9sLmpvaW4oIiBcdTU0OEMgIik6Ilx1RkYwOFx1NjVFMFx1NTE4NVx1NUJCOVx1RkYwOSI7dHlwZW9mIGs9PSJmdW5jdGlvbiImJmsoIlx1NURGMlx1NjNBOFx1OTAwMSAiK2MsInN1Y2Nlc3MiKSxyLnF1aWNrQ29tbWl0UmVzdWx0JiYoci5xdWlja0NvbW1pdFJlc3VsdC5wdXNoZWQ9ITApLGk/KE5uKCksci5zZWxlY3RlZElkJiZEbihyLnNlbGVjdGVkSWQse2ZvcmNlOiEwfSkpOnIuc2VsZWN0ZWRJZCYmRG4oci5zZWxlY3RlZElkLHtmb3JjZTohMH0pLnRoZW4oZnVuY3Rpb24oKXtyLnF1aWNrQ29tbWl0T3BlbiYmSHQoKX0pfSkuY2F0Y2goZnVuY3Rpb24ocyl7ci5xdWlja0NvbW1pdFB1c2hFcnJvcj1zJiZzLm1lc3NhZ2V8fCJcdTYzQThcdTkwMDFcdTU5MzFcdThEMjVcdTMwMDIiLHR5cGVvZiBrPT0iZnVuY3Rpb24iJiZrKHIucXVpY2tDb21taXRQdXNoRXJyb3IsImVycm9yIil9KS5maW5hbGx5KGZ1bmN0aW9uKCl7ci5xdWlja0NvbW1pdFB1c2hpbmc9ITEsci5xdWlja0NvbW1pdE9wZW4mJkh0KCl9KX19fWZ1bmN0aW9uIE9jKGUpe3ZhciB0PShlfHwiIikudHJpbSgpO2lmKHQ9PT0iPz8iKXJldHVybntsZXR0ZXI6IlUiLGNsczoidW50cmFja2VkIix0aXRsZToiXHU2NzJBXHU4RERGXHU4RTJBIn07aWYodD09PSIhISIpcmV0dXJue2xldHRlcjoiSSIsY2xzOiJpZ25vcmVkIix0aXRsZToiXHU1REYyXHU1RkZEXHU3NTY1In07Zm9yKHZhciBuPSIiLGk9MDtpPGUubGVuZ3RoO2krKylpZihlW2ldJiZlW2ldIT09Ii4iJiZlW2ldIT09IiAiKXtuPWVbaV07YnJlYWt9bj0obnx8dFswXXx8Ij8iKS50b1VwcGVyQ2FzZSgpO3ZhciBhPXtBOntjbHM6ImFkZCIsdGl0bGU6Ilx1NjVCMFx1NTg5RSJ9LE06e2NsczoibW9kIix0aXRsZToiXHU0RkVFXHU2NTM5In0sRDp7Y2xzOiJkZWwiLHRpdGxlOiJcdTUyMjBcdTk2NjQifSxSOntjbHM6InJlbiIsdGl0bGU6Ilx1OTFDRFx1NTQ3RFx1NTQwRCJ9LEM6e2NsczoicmVuIix0aXRsZToiXHU1OTBEXHU1MjM2In0sVDp7Y2xzOiJtb2QiLHRpdGxlOiJcdTdDN0JcdTU3OEJcdTUzRDhcdTY2RjQifSxVOntjbHM6ImRlbCIsdGl0bGU6Ilx1NTFCMlx1N0E4MSJ9fSx1PWFbbl18fHtjbHM6Im90aGVyIix0aXRsZToiXHU1REYyXHU2NkY0XHU2NTM5In07cmV0dXJue2xldHRlcjpuLGNsczp1LmNscyx0aXRsZTp1LnRpdGxlfX1mdW5jdGlvbiBCZyhlKXt2YXIgdD1lLm1hcChmdW5jdGlvbihuKXt2YXIgaT1PYyhuLnN0YXR1c3x8IiIpLGE9bi5wYXRofHwiIix1PWEubGFzdEluZGV4T2YoIi8iKSxzPXU+PTA/YS5zbGljZSgwLHUrMSk6IiIsbz11Pj0wP2Euc2xpY2UodSsxKTphLGw9IiI7aWYobi5pc1N1Ym1vZHVsZSl7dmFyIGM9bi5zdWJtb2R1bGVTdGF0ZXx8e30sZj1bXTtjLmNvbW1pdENoYW5nZWQmJmYucHVzaCgiXHU2NUIwXHU2MzA3XHU5NDg4IiksYy5oYXNUcmFja2VkQ2hhbmdlcyYmZi5wdXNoKCJkaXJ0eSIpLGMuaGFzVW50cmFja2VkJiZmLnB1c2goIlx1NjcyQVx1OERERlx1OEUyQSIpO3ZhciBkPWYubGVuZ3RoPyJzdWJtb2R1bGUgXHhCNyAiK2Yuam9pbigiIC8gIik6InN1Ym1vZHVsZSI7bD0nPHNwYW4gY2xhc3M9InFjLXN1Ym1vZHVsZS1iYWRnZSI+JytwKGQpKyI8L3NwYW4+In1yZXR1cm4nPGRpdiBjbGFzcz0icWMtZmlsZS1yb3ciIHRpdGxlPSInK3AoYSkrJyI+PHNwYW4gY2xhc3M9InFjLWZpbGUtYmFkZ2UgcWMtYmFkZ2UtJytpLmNscysnIiB0aXRsZT0iJytwKGkudGl0bGUpKyciPicrcChpLmxldHRlcikrJzwvc3Bhbj48c3BhbiBjbGFzcz0icWMtZmlsZS1wYXRoIj4nKyhzPyc8c3BhbiBjbGFzcz0icWMtZmlsZS1kaXIiPicrcChzKSsiPC9zcGFuPiI6IiIpKyc8c3BhbiBjbGFzcz0icWMtZmlsZS1uYW1lIj4nK3AobykrIjwvc3Bhbj48L3NwYW4+IitsKyI8L2Rpdj4ifSkuam9pbigiIik7cmV0dXJuIHR8fCc8ZGl2IGNsYXNzPSJxYy1lbXB0eSI+XHU2Q0ExXHU2NzA5XHU1M0VGXHU2M0QwXHU0RUE0XHU3Njg0XHU2NTM5XHU1MkE4XHUzMDAyPC9kaXY+J31mdW5jdGlvbiBYcigpe3JldHVybiByLnF1aWNrQ29tbWl0U3VibWl0dGluZ3x8ci5xdWlja0NvbW1pdFB1c2hpbmd9ZnVuY3Rpb24gWnIoZSx0LG4saSl7cmV0dXJuJzxkaXYgY2xhc3M9InFjLXBhaXInKyhpPyIgIitpOiIiKSsnIj48ZGl2IGNsYXNzPSJxYy1wYWlyLWxhYmVsIj4nK3AoZSkrJzwvZGl2PjxkaXYgY2xhc3M9InFjLXBhaXItZmxvdyI+PGRpdiBjbGFzcz0icWMtcGFpci12YWx1ZSBxYy1wYWlyLXZhbHVlLS1mcm9tIj4nK3QrJzwvZGl2PjxkaXYgY2xhc3M9InFjLXBhaXItYXJyb3ciIGFyaWEtaGlkZGVuPSJ0cnVlIj5cdTIxOTI8L2Rpdj48ZGl2IGNsYXNzPSJxYy1wYWlyLXZhbHVlIHFjLXBhaXItdmFsdWUtLXRvIj4nK24rIjwvZGl2PjwvZGl2PjwvZGl2PiJ9ZnVuY3Rpb24gUGMoKXt2YXIgZT1yLmdpdFN0YXR1c3x8e307aWYoZS5oYXNTdWJtb2R1bGU9PT0hMClyZXR1cm4hMDtmb3IodmFyIHQ9ZS5maWxlc3x8W10sbj0wO248dC5sZW5ndGg7bisrKWlmKHRbbl0mJnRbbl0uaXNTdWJtb2R1bGU9PT0hMClyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiBIYyhlKXt2YXIgdD0hZXx8WHIoKSxuPVBjKCk7aWYoci5xdWlja0NvbW1pdFN1Ym1pdHRpbmcpe3ZhciBpPXIucXVpY2tDb21taXRTdWJtb2R1bGVJbnRlbnQ/Ilx1RkYwOFx1NTQyQiBzdWJtb2R1bGVcdUZGMDkiOiIiLGE9KHIucXVpY2tDb21taXRBdXRvR2VuZXJhdGluZz8iQUkgXHU3NTFGXHU2MjEwICsgXHU2M0QwXHU0RUE0XHU0RTJEXHUyMDI2IjoiXHU2MjY3XHU4ODRDXHU0RTJEXHUyMDI2IikraTtyZXR1cm4nPGRpdiBjbGFzcz0icWMtZG9jay13cmFwIj48ZGl2IGNsYXNzPSJxYy1kb2NrLWJ1c3kiIHJvbGU9InN0YXR1cyI+PHNwYW4gY2xhc3M9InFjLWRvY2stYnVzeS1kb3QiPjwvc3Bhbj4nK3AoYSkrIjwvZGl2PjwvZGl2PiJ9ZnVuY3Rpb24gdShvLGwsYyl7cmV0dXJuJzxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0icWMtY2hpcCBxYy1jaGlwLS0nK28rJyIgZGF0YS1jaGlwPSInK28rJyInKyhjPycgdGl0bGU9IicrcChjKSsnIic6IiIpKyh0PyIgZGlzYWJsZWQiOiIiKSsnPjxzcGFuIGNsYXNzPSJxYy1jaGlwLWRvdCIgYXJpYS1oaWRkZW49InRydWUiPjwvc3Bhbj48c3BhbiBjbGFzcz0icWMtY2hpcC1sYWJlbCI+JytsKyI8L3NwYW4+PC9idXR0b24+In12YXIgcz10P2U/IiI6Ilx1NURFNVx1NEY1Q1x1NTMzQVx1NUU3Mlx1NTFDMFx1RkYwQ1x1NjVFMFx1NTNFRlx1NjNEMFx1NEVBNCI6Ilx1NjJENlx1NTJBOFx1NzhDMVx1NTQzOFx1N0VDNFx1NTQwOCBceEI3IFx1NEUyMlx1OEZEQlx1NjNEMFx1NEVBNFx1NTMzQVx1NjI2N1x1ODg0QyBceEI3IFx1NTM1NVx1NTFGQlx1NzZGNFx1NjNBNVx1NjI2N1x1ODg0Q1x1OEJFNVx1OTg3OSIrKG4/IiBceEI3IFN1YiBcdTc0MDNcdTUzRUZcdTkwMDlcdUZGMENcdTdFQjNcdTUxNjVcdTU0MEVcdTkwMTJcdTVGNTJcdTU5MDRcdTc0MDYgc3VibW9kdWxlIjoiIik7cmV0dXJuJzxkaXYgY2xhc3M9InFjLWRvY2std3JhcCBxYy1kb2NrLXdyYXAtLW1hZ25ldGljIicrKHQ/JyBkYXRhLWRpc2FibGVkPSIxIic6IiIpKyc+PGRpdiBpZD0icWMtZG9jay1zdGFnZSIgY2xhc3M9InFjLWRvY2stc3RhZ2UiIGRhdGEtYWN0aW9uPSJjb21taXQiIGRhdGEtaG90PSIwIj48ZGl2IGlkPSJxYy1kb2NrLWZpZWxkIiBjbGFzcz0icWMtZG9jay1maWVsZCI+PGRpdiBpZD0icWMtZG9jay1jbHVzdGVyIiBjbGFzcz0icWMtZG9jay1jbHVzdGVyIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9kaXY+Jyt1KCJjb21taXQiLCJDb21taXQiKSt1KCJ0YWciLCJUYWciKSt1KCJwdXNoIiwiUHVzaCIpKyhuP3UoInN1YiIsIlN1YiIsIlx1NjNEMFx1NEVBNFx1NzIzNlx1NEVEM1x1NUU5M1x1NUU3Nlx1OTAxMlx1NUY1Mlx1OEZEQlx1NTE2NSBzdWJtb2R1bGVcdUZGMDhjb21taXQgLyB0YWcgLyBcdTUyMDZcdTUyMkJcdTYzQThcdTkwMDFcdUZGMDkiKToiIikrJzwvZGl2PjxidXR0b24gdHlwZT0iYnV0dG9uIiBpZD0icWMtZG9jay1sYXVuY2giIGNsYXNzPSJxYy1kb2NrLWxhdW5jaCInKyh0PyIgZGlzYWJsZWQiOiIiKSsnIGFyaWEtbGFiZWw9Ilx1NjI2N1x1ODg0Q1x1NjNEMFx1NEVBNCI+PHNwYW4gY2xhc3M9InFjLWRvY2stbGF1bmNoLWFycm93IiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyMiIgaGVpZ2h0PSIyMiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi4zIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik01IDEyaDEyTTEzIDZsNiA2LTYgNiIvPjwvc3ZnPjwvc3Bhbj48c3BhbiBpZD0icWMtZG9jay1sYXVuY2gtbGFiZWwiIGNsYXNzPSJxYy1kb2NrLWxhdW5jaC1sYWJlbCI+XHU2M0QwXHU0RUE0PC9zcGFuPjwvYnV0dG9uPjwvZGl2PjxkaXYgY2xhc3M9InFjLWRvY2staGludCI+JytwKHMpKyI8L2Rpdj48L2Rpdj4ifWZ1bmN0aW9uIF9jKCl7dmFyIGU9ci5xdWlja0NvbW1pdFJlc3VsdDtpZighZSlyZXR1cm4iIjt2YXIgdD1lLm9sZENvbW1pdEhhc2g/Ijxjb2RlPiIrcChlLm9sZENvbW1pdEhhc2gpKyI8L2NvZGU+IisoZS5vbGRDb21taXRTdWJqZWN0PyI8c3Bhbj4iK3AoZS5vbGRDb21taXRTdWJqZWN0KSsiPC9zcGFuPiI6IiIpOic8c3BhbiBjbGFzcz0icWMtbXV0ZWQiPlx1NjVFMDwvc3Bhbj4nLG49ZS5jb21taXRIYXNoPyI8Y29kZT4iK3AoZS5jb21taXRIYXNoKSsiPC9jb2RlPjxzcGFuPiIrcChlLmNvbW1pdE1lc3NhZ2V8fCIiKSsiPC9zcGFuPiI6JzxzcGFuIGNsYXNzPSJxYy1tdXRlZCI+XHU2NUUwPC9zcGFuPicsaT1lLm9sZFRhZz8iPGNvZGU+IitwKGUub2xkVGFnKSsiPC9jb2RlPiI6JzxzcGFuIGNsYXNzPSJxYy1tdXRlZCI+XHU2NUUwIHRhZzwvc3Bhbj4nLGE9ZS50YWdOYW1lPyI8Y29kZT4iK3AoZS50YWdOYW1lKSsiPC9jb2RlPiI6JzxzcGFuIGNsYXNzPSJxYy1tdXRlZCI+XHU2NzJBXHU2MjUzIHRhZzwvc3Bhbj4nLHU9ZS5wdXNoZWQ/JzxzcGFuIGNsYXNzPSJxYy1yZXN1bHQtcHVzaGVkIj5cdTVERjJcdTYzQThcdTkwMDE8L3NwYW4+JzonPGJ1dHRvbiBpZD0icXVpY2stY29tbWl0LXB1c2gtYWZ0ZXItYnRuIiBjbGFzcz0iYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zbSIgdHlwZT0iYnV0dG9uIicrKHIucXVpY2tDb21taXRQdXNoaW5nPyIgZGlzYWJsZWQiOiIiKSsiPiIrKHIucXVpY2tDb21taXRQdXNoaW5nPyJcdTYzQThcdTkwMDFcdTRFMkQuLi4iOiJQdXNoICYgQ2xvc2UiKSsiPC9idXR0b24+IjtyZXR1cm4nPHNlY3Rpb24gY2xhc3M9InFjLXJlc3VsdC1wYW5lbCI+JytacigiQ29tbWl0Iix0LG4sIiIpK1pyKCJUYWciLGksYSwicWMtcGFpci0tdGFnIikrKGUucHVzaEVycm9yfHxyLnF1aWNrQ29tbWl0UHVzaEVycm9yPyc8cCBjbGFzcz0iZXJyb3ItbWVzc2FnZSI+JytwKGUucHVzaEVycm9yfHxyLnF1aWNrQ29tbWl0UHVzaEVycm9yKSsiPC9wPiI6IiIpKyc8ZGl2IGNsYXNzPSJxYy1yZXN1bHQtYWN0aW9ucyI+PGJ1dHRvbiBpZD0icXVpY2stY29tbWl0LWNhbmNlbC1idG4iIGNsYXNzPSJidG4gYnRuLWdob3N0IGJ0bi1zbSIgdHlwZT0iYnV0dG9uIj5cdTUxNzNcdTk1RUQ8L2J1dHRvbj4nK3UrIjwvZGl2Pjwvc2VjdGlvbj4ifWZ1bmN0aW9uIGlzKCl7dmFyIGU9ci5naXRTdGF0dXN8fHt9LHQ9ci5xdWlja0NvbW1pdEZvcm18fHtjdXN0b21NZXNzYWdlOiIiLHRhZzoiIix0YWdFZGl0ZWQ6ITF9LG49KGUubW9kaWZpZWRDb3VudHx8MCk+MCxpPXIucXVpY2tDb21taXRHZW5lcmF0aW5nLGE9ZS5sYXN0Q29tbWl0fHx7fSx1PWEuc2hvcnRIYXNoPyI8Y29kZT4iK3AoYS5zaG9ydEhhc2gpKyI8L2NvZGU+PHNwYW4+IitwKGEuc3ViamVjdHx8IiIpKyI8L3NwYW4+IjplLmhlYWQ/Ijxjb2RlPiIrcChlLmhlYWQuc3Vic3RyaW5nKDAsNykpKyI8L2NvZGU+IjonPHNwYW4gY2xhc3M9InFjLW11dGVkIj5cdTY1RTAgY29tbWl0PC9zcGFuPicscz1lLmxhdGVzdFRhZz8iPGNvZGU+IitwKGUubGF0ZXN0VGFnKSsiPC9jb2RlPiI6JzxzcGFuIGNsYXNzPSJxYy1tdXRlZCI+XHU2NUUwIHRhZzwvc3Bhbj4nLG89JzxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0icXVpY2stY29tbWl0LXRhZyIgY2xhc3M9ImZpZWxkLWlucHV0IHFjLXRhZy1maWVsZC1pbnB1dCIgcGxhY2Vob2xkZXI9Ilx1NzU1OVx1N0E3QVx1NTIxOSBBSSBcdTc1MUZcdTYyMTAiIHZhbHVlPSInK3AodC50YWd8fCIiKSsnIicrKHIucXVpY2tDb21taXRTdWJtaXR0aW5nPyIgZGlzYWJsZWQiOiIiKSsiPiIsbD0nPHRleHRhcmVhIGlkPSJxdWljay1jb21taXQtbWVzc2FnZSIgY2xhc3M9ImZpZWxkLWlucHV0IHFjLW1lc3NhZ2UtaW5wdXQiIHJvd3M9IjMiIHBsYWNlaG9sZGVyPSJOZXcgY29tbWl0IG1lc3NhZ2UiICcrKHIucXVpY2tDb21taXRTdWJtaXR0aW5nPyJkaXNhYmxlZCI6IiIpKyI+IitwKHQuY3VzdG9tTWVzc2FnZXx8IiIpKyI8L3RleHRhcmVhPiIsYz1bXTtjLnB1c2goZS5icmFuY2h8fCIobm8gYnJhbmNoKSIpLGMucHVzaChuPyhlLm1vZGlmaWVkQ291bnR8fDApKyIgXHU0RTJBXHU2NTM5XHU1MkE4IjoiXHU1REU1XHU0RjVDXHU1MzNBXHU1RTcyXHU1MUMwIiksdHlwZW9mIGUuYWhlYWQ9PSJudW1iZXIiJiZlLmFoZWFkPjAmJmMucHVzaCgiXHUyMTkxIitlLmFoZWFkKSx0eXBlb2YgZS5iZWhpbmQ9PSJudW1iZXIiJiZlLmJlaGluZD4wJiZjLnB1c2goIlx1MjE5MyIrZS5iZWhpbmQpO3ZhciBmPXIucXVpY2tDb21taXRSZXN1bHQ/IiI6JzxzZWN0aW9uIGNsYXNzPSJxYy1yZWxlYXNlLXBhbmVsIj48ZGl2IGNsYXNzPSJxYy1tZXNzYWdlLWhlYWRlciI+PHNwYW4gY2xhc3M9InFjLXNlY3Rpb24tdGl0bGUiPk5ldzwvc3Bhbj48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgaWQ9InF1aWNrLWNvbW1pdC1haS1idG4iIGNsYXNzPSJidG4gYnRuLWdob3N0IGJ0bi1zbSBxYy1haS1idG4iJysoaT8iIGRpc2FibGVkIjoiIikrJyB0aXRsZT0iQUkgXHU3NTFGXHU2MjEwIGNvbW1pdCBtZXNzYWdlIFx1NEUwRSB0YWciPjxzdmcgdmlld0JveD0iMCAwIDE2IDE2IiB3aWR0aD0iMTMiIGhlaWdodD0iMTMiIGFyaWEtaGlkZGVuPSJ0cnVlIj48cGF0aCBkPSJNOCAxLjVsMS40IDMuNkwxMyA2LjUgOS40IDcuOSA4IDExLjUgNi42IDcuOSAzIDYuNWwzLjYtMS40TDggMS41ek0xMi41IDEwLjVsLjcgMS44IDEuOC43LTEuOC43LS43IDEuOC0uNy0xLjgtMS44LS43IDEuOC0uNy43LTEuOHoiIGZpbGw9ImN1cnJlbnRDb2xvciIvPjwvc3ZnPjxzcGFuPicrKGk/Ilx1NzUxRlx1NjIxMFx1NEUyRC4uLiI6IkFJIikrIjwvc3Bhbj48L2J1dHRvbj48L2Rpdj4iK1pyKCJDb21taXQiLHUsbCwicWMtcGFpci0tY29tbWl0IikrWnIoIlRhZyIscyxvLCJxYy1wYWlyLS10YWciKSsoci5xdWlja0NvbW1pdEVycm9yPyc8cCBjbGFzcz0iZXJyb3ItbWVzc2FnZSI+JytwKHIucXVpY2tDb21taXRFcnJvcikrIjwvcD4iOiIiKStIYyhuKSsnPGRpdiBjbGFzcz0icWMtbW9kYWwtYWN0aW9ucyI+PGJ1dHRvbiBpZD0icXVpY2stY29tbWl0LWNhbmNlbC1idG4iIGNsYXNzPSJidG4gYnRuLWdob3N0IGJ0bi1zbSIgdHlwZT0iYnV0dG9uIj5cdTUzRDZcdTZEODg8L2J1dHRvbj48L2Rpdj48L3NlY3Rpb24+JyxkPV9jKCk7cmV0dXJuJzxzZWN0aW9uIGlkPSJxdWljay1jb21taXQtbW9kYWwiIGNsYXNzPSJtb2RhbC1iYWNrZHJvcCcrKHIucXVpY2tDb21taXRPcGVuPyIiOiIgaGlkZGVuIikrJyI+PGRpdiBjbGFzcz0ibW9kYWwgcXVpY2stY29tbWl0LW1vZGFsIiByb2xlPSJkaWFsb2ciIGFyaWEtbGFiZWxsZWRieT0icXVpY2stY29tbWl0LXRpdGxlIj48ZGl2IGNsYXNzPSJtb2RhbC1oZWFkZXIiPjxkaXY+PGgyIGlkPSJxdWljay1jb21taXQtdGl0bGUiIGNsYXNzPSJtb2RhbC10aXRsZSI+XHU1RkVCXHU2Mzc3XHU2M0QwXHU0RUE0PC9oMj48cCBjbGFzcz0ibW9kYWwtc3VidGl0bGUiPicrcChjLmpvaW4oIiBceEI3ICIpKSsnPC9wPjwvZGl2PjxidXR0b24gaWQ9InF1aWNrLWNvbW1pdC1jbG9zZS1idG4iIGNsYXNzPSJidG4gYnRuLWdob3N0IGJ0bi1pY29uIG1vZGFsLWNsb3NlLWJ0biIgdHlwZT0iYnV0dG9uIiBhcmlhLWxhYmVsPSJcdTUxNzNcdTk1RUQiPjxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIuNCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PGxpbmUgeDE9IjYiIHkxPSI2IiB4Mj0iMTgiIHkyPSIxOCIvPjxsaW5lIHgxPSIxOCIgeTE9IjYiIHgyPSI2IiB5Mj0iMTgiLz48L3N2Zz48L2J1dHRvbj48L2Rpdj48ZGl2IGNsYXNzPSJtb2RhbC1ib2R5Ij4nK2YrZCsiPC9kaXY+PC9kaXY+PC9zZWN0aW9uPiJ9ZnVuY3Rpb24gTmMoKXtyZXR1cm4nPHNlY3Rpb24gaWQ9Indvcmt0cmVlLW1lcmdlLW1vZGFsIiBjbGFzcz0ibW9kYWwtYmFja2Ryb3AgaGlkZGVuIj48ZGl2IGNsYXNzPSJtb2RhbCB3b3JrdHJlZS1tZXJnZS1tb2RhbCI+PGRpdiBjbGFzcz0ibW9kYWwtaGVhZGVyIj48ZGl2PjxoMiBjbGFzcz0ibW9kYWwtdGl0bGUiPlx1NTQwOFx1NUU3NiBXb3JrdHJlZTwvaDI+PHAgY2xhc3M9Im1vZGFsLXN1YnRpdGxlIj5cdTY4QzBcdTY3RTVcdTVGNTNcdTUyNERcdTRFRkJcdTUyQTFcdTUyMDZcdTY1MkZcdTVFNzZcdTVGRUJcdTYzNzdcdTU0MDhcdTVFNzZcdTUyMzBcdTRFM0JcdTUyMDZcdTY1MkZcdTMwMDI8L3A+PC9kaXY+PGJ1dHRvbiBpZD0iY2xvc2Utd29ya3RyZWUtbWVyZ2UtYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1naG9zdCBidG4taWNvbiBtb2RhbC1jbG9zZS1idG4iIHR5cGU9ImJ1dHRvbiIgYXJpYS1sYWJlbD0iXHU1MTczXHU5NUVEIj48c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyLjQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxsaW5lIHgxPSI2IiB5MT0iNiIgeDI9IjE4IiB5Mj0iMTgiLz48bGluZSB4MT0iMTgiIHkxPSI2IiB4Mj0iNiIgeTI9IjE4Ii8+PC9zdmc+PC9idXR0b24+PC9kaXY+PGRpdiBjbGFzcz0ibW9kYWwtYm9keSI+PGRpdiBpZD0id29ya3RyZWUtbWVyZ2UtY29udGVudCIgY2xhc3M9Indvcmt0cmVlLW1lcmdlLWNvbnRlbnQiPjwvZGl2PjxwIGlkPSJ3b3JrdHJlZS1tZXJnZS1lcnJvciIgY2xhc3M9ImVycm9yLW1lc3NhZ2UgaGlkZGVuIj48L3A+PGRpdiBjbGFzcz0id29ya3RyZWUtbWVyZ2UtYWN0aW9ucyI+PGJ1dHRvbiBpZD0id29ya3RyZWUtbWVyZ2UtY2FuY2VsLWJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tc2Vjb25kYXJ5Ij5cdTUzRDZcdTZEODg8L2J1dHRvbj48YnV0dG9uIGlkPSJ3b3JrdHJlZS1tZXJnZS1jb25maXJtLWJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tcHJpbWFyeSI+XHU3ODZFXHU4QkE0XHU1NDA4XHU1RTc2XHU1RTc2XHU2RTA1XHU3NDA2PC9idXR0b24+PC9kaXY+PC9kaXY+PC9kaXY+PC9zZWN0aW9uPid9ZnVuY3Rpb24gamMoKXtyZXR1cm4nPHNlY3Rpb24gaWQ9InNldHRpbmdzLW1vZGFsIiBjbGFzcz0ibW9kYWwtYmFja2Ryb3AgaGlkZGVuIj48ZGl2IGNsYXNzPSJtb2RhbCBzZXR0aW5ncy1tb2RhbCI+PGRpdiBjbGFzcz0ibW9kYWwtaGVhZGVyIHNldHRpbmdzLW1vZGFsLWhlYWRlciI+PGRpdiBjbGFzcz0ic2V0dGluZ3MtbW9kYWwtdGl0bGUtZ3JvdXAiPjxoMiBjbGFzcz0ibW9kYWwtdGl0bGUiPlx1OEJCRVx1N0Y2RTwvaDI+PHAgY2xhc3M9InNldHRpbmdzLW1vZGFsLXN1YnRpdGxlIj5cdThDMDNcdTY1NzRcdTVFOTRcdTc1MjhcdTkxNERcdTdGNkVcdTMwMDFcdTkwMUFcdTc3RTVcdTMwMDFcdTVCODlcdTUxNjhcdTU0OENcdTY2M0VcdTc5M0FcdTUwNEZcdTU5N0Q8L3A+PC9kaXY+PGJ1dHRvbiBpZD0iY2xvc2Utc2V0dGluZ3MtYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1naG9zdCBidG4taWNvbiBtb2RhbC1jbG9zZS1idG4iIHR5cGU9ImJ1dHRvbiIgYXJpYS1sYWJlbD0iXHU1MTczXHU5NUVEIj48c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyLjQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxsaW5lIHgxPSI2IiB5MT0iNiIgeDI9IjE4IiB5Mj0iMTgiLz48bGluZSB4MT0iMTgiIHkxPSI2IiB4Mj0iNiIgeTI9IjE4Ii8+PC9zdmc+PC9idXR0b24+PC9kaXY+PGRpdiBjbGFzcz0ibW9kYWwtYm9keSBzZXR0aW5ncy1tb2RhbC1ib2R5Ij48ZGl2IGNsYXNzPSJzZXR0aW5ncy1sYXlvdXQiPjxhc2lkZSBjbGFzcz0ic2V0dGluZ3Mtc2lkZWJhciI+PGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2lkZWJhci1oZWFkZXIiPjxkaXYgY2xhc3M9InNldHRpbmdzLXNpZGViYXItdGl0bGUiPlx1NTA0Rlx1NTk3RFx1OEJCRVx1N0Y2RTwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLXNpZGViYXItaGludCI+XHU1REU2XHU0RkE3XHU1MjA3XHU2MzYyXHU1MjA2XHU1MzNBXHVGRjBDXHU1M0YzXHU0RkE3XHU2N0U1XHU3NzBCXHU4QkU2XHU3RUM2XHU4QkY0XHU2NjBFXHU0RTBFXHU5MDA5XHU5ODc5XHUzMDAyPC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtdGFicyIgcm9sZT0idGFibGlzdCIgYXJpYS1sYWJlbD0iXHU4QkJFXHU3RjZFXHU1MjA2XHU3RUM0IiBhcmlhLW9yaWVudGF0aW9uPSJ2ZXJ0aWNhbCI+PGJ1dHRvbiBjbGFzcz0ic2V0dGluZ3MtdGFiIGFjdGl2ZSIgZGF0YS10YWI9ImFib3V0IiByb2xlPSJ0YWIiIGFyaWEtc2VsZWN0ZWQ9InRydWUiIGFyaWEtY29udHJvbHM9InNldHRpbmdzLXRhYi1hYm91dCI+PHNwYW4gY2xhc3M9InNldHRpbmdzLXRhYi1tYWluIj5cdTUxNzNcdTRFOEU8L3NwYW4+PHNwYW4gY2xhc3M9InNldHRpbmdzLXRhYi1tZXRhIj5cdTcyNDhcdTY3MkNcdTMwMDFcdTY2RjRcdTY1QjBcdTRFMEVcdThGREVcdTYzQTVcdTY1QjlcdTVGMEY8L3NwYW4+PC9idXR0b24+PGJ1dHRvbiBjbGFzcz0ic2V0dGluZ3MtdGFiIiBkYXRhLXRhYj0iZ2VuZXJhbCIgcm9sZT0idGFiIiBhcmlhLXNlbGVjdGVkPSJmYWxzZSIgYXJpYS1jb250cm9scz0ic2V0dGluZ3MtdGFiLWdlbmVyYWwiPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy10YWItbWFpbiI+XHU1N0ZBXHU2NzJDXHU5MTREXHU3RjZFPC9zcGFuPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy10YWItbWV0YSI+XHU0RTNCXHU2NzNBXHUzMDAxXHU2QTIxXHU1RjBGXHUzMDAxXHU4QkVEXHU4QTAwXHUzMDAxXHU3NkVFXHU1RjU1PC9zcGFuPjwvYnV0dG9uPjxidXR0b24gY2xhc3M9InNldHRpbmdzLXRhYiIgZGF0YS10YWI9Im5vdGlmaWNhdGlvbnMiIHJvbGU9InRhYiIgYXJpYS1zZWxlY3RlZD0iZmFsc2UiIGFyaWEtY29udHJvbHM9InNldHRpbmdzLXRhYi1ub3RpZmljYXRpb25zIj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdGFiLW1haW4iPlx1OTAxQVx1NzdFNTwvc3Bhbj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdGFiLW1ldGEiPlx1NjNEMFx1NzkzQVx1OTdGM1x1NEUwRVx1NkQ0Rlx1ODlDOFx1NTY2OFx1OTAxQVx1NzdFNTwvc3Bhbj48L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJzZXR0aW5ncy10YWIiIGRhdGEtdGFiPSJzZWN1cml0eSIgcm9sZT0idGFiIiBhcmlhLXNlbGVjdGVkPSJmYWxzZSIgYXJpYS1jb250cm9scz0ic2V0dGluZ3MtdGFiLXNlY3VyaXR5Ij48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdGFiLW1haW4iPlx1NUI4OVx1NTE2ODwvc3Bhbj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdGFiLW1ldGEiPlx1NUJDNlx1NzgwMVx1NEUwRVx1OEJDMVx1NEU2Njwvc3Bhbj48L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJzZXR0aW5ncy10YWIiIGRhdGEtdGFiPSJwcmVzZXRzIiByb2xlPSJ0YWIiIGFyaWEtc2VsZWN0ZWQ9ImZhbHNlIiBhcmlhLWNvbnRyb2xzPSJzZXR0aW5ncy10YWItcHJlc2V0cyI+PHNwYW4gY2xhc3M9InNldHRpbmdzLXRhYi1tYWluIj5cdTU0N0RcdTRFRTRcdTk4ODRcdThCQkU8L3NwYW4+PHNwYW4gY2xhc3M9InNldHRpbmdzLXRhYi1tZXRhIj5cdTY3RTVcdTc3MEJcdTVERjJcdTY3MDlcdTk4ODRcdThCQkU8L3NwYW4+PC9idXR0b24+PGJ1dHRvbiBjbGFzcz0ic2V0dGluZ3MtdGFiIiBkYXRhLXRhYj0iZGlzcGxheSIgcm9sZT0idGFiIiBhcmlhLXNlbGVjdGVkPSJmYWxzZSIgYXJpYS1jb250cm9scz0ic2V0dGluZ3MtdGFiLWRpc3BsYXkiPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy10YWItbWFpbiI+XHU2NjNFXHU3OTNBPC9zcGFuPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy10YWItbWV0YSI+XHU1MzYxXHU3MjQ3XHU5RUQ4XHU4QkE0XHU1QzU1XHU1RjAwXHU4ODRDXHU0RTNBPC9zcGFuPjwvYnV0dG9uPjwvZGl2PjwvYXNpZGU+PGRpdiBjbGFzcz0ic2V0dGluZ3MtY29udGVudCI+PGRpdiBjbGFzcz0ic2V0dGluZ3MtcGFuZWwgYWN0aXZlIiBpZD0ic2V0dGluZ3MtdGFiLWFib3V0IiByb2xlPSJ0YWJwYW5lbCI+PGRpdiBjbGFzcz0ic2V0dGluZ3MtcGFuZWwtaGVhZGVyIj48aDMgY2xhc3M9InNldHRpbmdzLXBhbmVsLXRpdGxlIj5cdTUxNzNcdTRFOEUgV2FuZDwvaDM+PHAgY2xhc3M9InNldHRpbmdzLXBhbmVsLWRlc2MiPlx1NjdFNVx1NzcwQlx1NzI0OFx1NjcyQ1x1NEZFMVx1NjA2Rlx1MzAwMVx1NjZGNFx1NjVCMFx1NzJCNlx1NjAwMVx1NTQ4QyBBbmRyb2lkIEFwcCBcdThGREVcdTYzQTVcdTY1QjlcdTVGMEZcdTMwMDI8L3A+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtYWJvdXQtaW5mbyI+PGRpdiBjbGFzcz0ic2V0dGluZ3MtYWJvdXQtcm93Ij48c3BhbiBjbGFzcz0ic2V0dGluZ3MtbGFiZWwiPlx1NTMwNVx1NTQwRDwvc3Bhbj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdmFsdWUiIGlkPSJzZXR0aW5ncy1wa2ctbmFtZSI+LTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1hYm91dC1yb3ciPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1sYWJlbCI+XHU1RjUzXHU1MjREXHU3MjQ4XHU2NzJDPC9zcGFuPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy12YWx1ZSIgaWQ9InNldHRpbmdzLXZlcnNpb24iPi08L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtYWJvdXQtcm93Ij48c3BhbiBjbGFzcz0ic2V0dGluZ3MtbGFiZWwiPk5vZGUuanMgXHU4OTgxXHU2QzQyPC9zcGFuPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy12YWx1ZSIgaWQ9InNldHRpbmdzLW5vZGUtcmVxIj4tPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLWFib3V0LXJvdyI+PHNwYW4gY2xhc3M9InNldHRpbmdzLWxhYmVsIj5cdTRFRDNcdTVFOTNcdTU3MzBcdTU3NDA8L3NwYW4+PHNwYW4gY2xhc3M9InNldHRpbmdzLXZhbHVlIiBpZD0ic2V0dGluZ3MtcmVwby11cmwiPjxhIGhyZWY9IiMiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIj4tPC9hPjwvc3Bhbj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy11cGRhdGUtc2VjdGlvbiIgaWQ9IndlYi11cGRhdGUtc2VjdGlvbiI+PGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkIj48c3BhbiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1pY29uIj4nK3ooImdsb2JlIix7c2l6ZToxOCxzdHJva2VXaWR0aDoxLjd9KSsnPC9zcGFuPjxkaXYgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taGVhZC10ZXh0Ij48aDQgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taGVhZGluZyI+V2ViIFx1N0FFRjwvaDQ+PHAgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24tc3ViIj5cdTZENEZcdTg5QzhcdTU2NjhcdThCQkZcdTk1RUVcdTc2ODRcdTY3MERcdTUyQTFcdTcyNDhcdTY3MkM8L3A+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtYWJvdXQtcm93Ij48c3BhbiBjbGFzcz0ic2V0dGluZ3MtbGFiZWwiPlx1NjcwMFx1NjVCMFx1NzI0OFx1NjcyQzwvc3Bhbj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdmFsdWUiIGlkPSJzZXR0aW5ncy1sYXRlc3QtdmVyc2lvbiI+LTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy11cGRhdGUtYWN0aW9ucyI+PGJ1dHRvbiBpZD0iY2hlY2stdXBkYXRlLWJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tc2Vjb25kYXJ5IGJ0bi1zbSI+XHU2OEMwXHU2N0U1XHU2NkY0XHU2NUIwPC9idXR0b24+PGJ1dHRvbiBpZD0iZG8tdXBkYXRlLWJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tcHJpbWFyeSBidG4tc20gaGlkZGVuIj5cdTY2RjRcdTY1QjBcdTUyMzBcdTY3MDBcdTY1QjBcdTcyNDg8L2J1dHRvbj48YnV0dG9uIGlkPSJkby1yZXN0YXJ0LWJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tc3VjY2VzcyBidG4tc20gaGlkZGVuIj5cdTkxQ0RcdTU0MkZcdTc1MUZcdTY1NDg8L2J1dHRvbj48L2Rpdj48cCBpZD0idXBkYXRlLW1lc3NhZ2UiIGNsYXNzPSJoaW50IGhpZGRlbiI+PC9wPjxkaXYgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS1yb3ciPjxkaXYgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS10ZXh0Ij48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLXRpdGxlIj5CZXRhIFx1OTAxQVx1OTA1Mzwvc3Bhbj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLWRlc2MiPlx1NjZGNFx1NjVCMFx1NTIzMCBucG0gYmV0YSBcdTcyNDhcdTY3MkNcdUZGMDh0YWcgKyBjb21taXQgXHU1QzNFXHU2ODA3XHVGRjA5XHVGRjBDXHU1QzFEXHU5QzlDXHU2NUIwXHU1MjlGXHU4MEZEXHVGRjBDXHU1M0VGXHU4MEZEXHU0RTBEXHU3QTMzXHU1QjlBXHUzMDAyPC9zcGFuPjwvZGl2PjxsYWJlbCBjbGFzcz0ic2V0dGluZ3Mtc3dpdGNoIj48aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJiZXRhLWNoYW5uZWwtdG9nZ2xlIiBjbGFzcz0ic3dpdGNoLXRvZ2dsZSI+PHNwYW4gY2xhc3M9InN3aXRjaC1zbGlkZXIiPjwvc3Bhbj48L2xhYmVsPjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS1yb3ciPjxkaXYgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS10ZXh0Ij48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLXRpdGxlIj5cdTgxRUFcdTUyQThcdTY2RjRcdTY1QjA8L3NwYW4+PHNwYW4gY2xhc3M9InNldHRpbmdzLXRvZ2dsZS1kZXNjIj5cdTY4QzBcdTZENEJcdTUyMzBcdTY1QjBcdTcyNDhcdTY3MkNcdTVDMDZcdTgxRUFcdTUyQThcdTRFMEJcdThGN0RcdTVCODlcdTg4QzVcdTVFNzZcdTkxQ0RcdTU0MkZcdTY3MERcdTUyQTFcdTMwMDI8L3NwYW4+PC9kaXY+PGxhYmVsIGNsYXNzPSJzZXR0aW5ncy1zd2l0Y2giPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9ImF1dG8tdXBkYXRlLXdlYi10b2dnbGUiIGNsYXNzPSJzd2l0Y2gtdG9nZ2xlIj48c3BhbiBjbGFzcz0ic3dpdGNoLXNsaWRlciI+PC9zcGFuPjwvbGFiZWw+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtdXBkYXRlLXNlY3Rpb24gaGlkZGVuIiBpZD0iYW5kcm9pZC1hcGstc2VjdGlvbiI+PGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkIj48c3BhbiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1pY29uIj4nK3ooInNtYXJ0cGhvbmUiLHtzaXplOjE4LHN0cm9rZVdpZHRoOjEuN30pKyc8L3NwYW4+PGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkLXRleHQiPjxoNCBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkaW5nIj5BbmRyb2lkIEFwcDwvaDQ+PHAgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24tc3ViIj5cdTUzOUZcdTc1MUZcdTVCQTJcdTYyMzdcdTdBRUZcdTcyNDhcdTY3MkNcdTRFMEUgQVBLIFx1NEUwQlx1OEY3RDwvcD48L2Rpdj48L2Rpdj48ZGl2IGlkPSJhbmRyb2lkLWFway1jdXJyZW50LXJvdyIgY2xhc3M9InNldHRpbmdzLWFib3V0LXJvdyBoaWRkZW4iPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1sYWJlbCI+XHU1RjUzXHU1MjREXHU3MjQ4XHU2NzJDPC9zcGFuPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy12YWx1ZSIgaWQ9InNldHRpbmdzLWFuZHJvaWQtYXBrLWN1cnJlbnQiPi08L3NwYW4+PC9kaXY+PGRpdiBpZD0iYW5kcm9pZC1hcGstZ2l0aHViLXJvdyIgY2xhc3M9InNldHRpbmdzLWFib3V0LXJvdyBzZXR0aW5ncy1hYm91dC1yb3ctYWN0aW9uIGhpZGRlbiI+PHNwYW4gY2xhc3M9InNldHRpbmdzLWxhYmVsIj5cdTdFQkZcdTRFMEFcdTcyNDhcdTY3MkM8L3NwYW4+PHNwYW4gY2xhc3M9InNldHRpbmdzLXZhbHVlIHNldHRpbmdzLXZhbHVlLWZsZXgiIGlkPSJzZXR0aW5ncy1hbmRyb2lkLWFway1naXRodWIiPi08L3NwYW4+PGJ1dHRvbiBpZD0iZG93bmxvYWQtZ2l0aHViLWFway1idG4iIGNsYXNzPSJidG4gYnRuLXNlY29uZGFyeSBidG4tc20gaGlkZGVuIiB0eXBlPSJidXR0b24iPlx1NEUwQlx1OEY3RDwvYnV0dG9uPjwvZGl2PjxkaXYgaWQ9ImFuZHJvaWQtYXBrLWxvY2FsLXJvdyIgY2xhc3M9InNldHRpbmdzLWFib3V0LXJvdyBzZXR0aW5ncy1hYm91dC1yb3ctYWN0aW9uIGhpZGRlbiI+PHNwYW4gY2xhc3M9InNldHRpbmdzLWxhYmVsIj5cdTY3MkNcdTU3MzBcdTcyNDhcdTY3MkM8L3NwYW4+PHNwYW4gY2xhc3M9InNldHRpbmdzLXZhbHVlIHNldHRpbmdzLXZhbHVlLWZsZXgiIGlkPSJzZXR0aW5ncy1hbmRyb2lkLWFway1sb2NhbCI+LTwvc3Bhbj48YnV0dG9uIGlkPSJkb3dubG9hZC1sb2NhbC1hcGstYnRuIiBjbGFzcz0iYnRuIGJ0bi1zZWNvbmRhcnkgYnRuLXNtIGhpZGRlbiIgdHlwZT0iYnV0dG9uIj5cdTRFMEJcdThGN0Q8L2J1dHRvbj48L2Rpdj48ZGl2IGlkPSJhbmRyb2lkLWF1dG8tdXBkYXRlLXJvdyIgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS1yb3cgaGlkZGVuIj48ZGl2IGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtdGV4dCI+PHNwYW4gY2xhc3M9InNldHRpbmdzLXRvZ2dsZS10aXRsZSI+XHU4MUVBXHU1MkE4XHU2NkY0XHU2NUIwPC9zcGFuPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtZGVzYyIgaWQ9ImFuZHJvaWQtYXV0by11cGRhdGUtaGludCI+XHU2OEMwXHU2RDRCXHU1MjMwXHU2NUIwXHU3MjQ4IEFQSyBcdTY1RjZcdTgxRUFcdTUyQThcdTYyQzlcdThENzdcdTRFMEJcdThGN0RcdUZGMENcdTVCODlcdTg4QzVcdTRFQ0RcdTk3MDBcdTU3MjhcdTdDRkJcdTdFREZcdTRFMkRcdTc4NkVcdThCQTRcdTMwMDI8L3NwYW4+PC9kaXY+PGxhYmVsIGNsYXNzPSJzZXR0aW5ncy1zd2l0Y2giPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9ImF1dG8tdXBkYXRlLWFway10b2dnbGUiIGNsYXNzPSJzd2l0Y2gtdG9nZ2xlIj48c3BhbiBjbGFzcz0ic3dpdGNoLXNsaWRlciI+PC9zcGFuPjwvbGFiZWw+PC9kaXY+PHAgaWQ9ImFuZHJvaWQtYXBrLW1lc3NhZ2UiIGNsYXNzPSJoaW50IGhpZGRlbiI+PC9wPjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLXVwZGF0ZS1zZWN0aW9uIGhpZGRlbiIgaWQ9Im1hY29zLWRtZy1zZWN0aW9uIj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWQiPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWljb24iPicreigiZGVza3RvcCIse3NpemU6MTgsc3Ryb2tlV2lkdGg6MS43fSkrJzwvc3Bhbj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWQtdGV4dCI+PGg0IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWRpbmciPm1hY09TIEFwcDwvaDQ+PHAgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24tc3ViIj5cdTUzOUZcdTc1MUZcdTVCQTJcdTYyMzdcdTdBRUZcdTcyNDhcdTY3MkNcdTRFMEUgRE1HIFx1NEUwQlx1OEY3RDwvcD48L2Rpdj48L2Rpdj48ZGl2IGlkPSJtYWNvcy1kbWctY3VycmVudC1yb3ciIGNsYXNzPSJzZXR0aW5ncy1hYm91dC1yb3cgaGlkZGVuIj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtbGFiZWwiPlx1NUY1M1x1NTI0RFx1NzI0OFx1NjcyQzwvc3Bhbj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdmFsdWUiIGlkPSJzZXR0aW5ncy1tYWNvcy1kbWctY3VycmVudCI+LTwvc3Bhbj48L2Rpdj48ZGl2IGlkPSJtYWNvcy1kbWctZ2l0aHViLXJvdyIgY2xhc3M9InNldHRpbmdzLWFib3V0LXJvdyBzZXR0aW5ncy1hYm91dC1yb3ctYWN0aW9uIGhpZGRlbiI+PHNwYW4gY2xhc3M9InNldHRpbmdzLWxhYmVsIj5cdTdFQkZcdTRFMEFcdTcyNDhcdTY3MkM8L3NwYW4+PHNwYW4gY2xhc3M9InNldHRpbmdzLXZhbHVlIHNldHRpbmdzLXZhbHVlLWZsZXgiIGlkPSJzZXR0aW5ncy1tYWNvcy1kbWctZ2l0aHViIj4tPC9zcGFuPjxidXR0b24gaWQ9ImRvd25sb2FkLWdpdGh1Yi1kbWctYnRuIiBjbGFzcz0iYnRuIGJ0bi1zZWNvbmRhcnkgYnRuLXNtIGhpZGRlbiIgdHlwZT0iYnV0dG9uIj5cdTRFMEJcdThGN0Q8L2J1dHRvbj48L2Rpdj48ZGl2IGlkPSJtYWNvcy1kbWctbG9jYWwtcm93IiBjbGFzcz0ic2V0dGluZ3MtYWJvdXQtcm93IHNldHRpbmdzLWFib3V0LXJvdy1hY3Rpb24gaGlkZGVuIj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtbGFiZWwiPlx1NjcyQ1x1NTczMFx1NzI0OFx1NjcyQzwvc3Bhbj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdmFsdWUgc2V0dGluZ3MtdmFsdWUtZmxleCIgaWQ9InNldHRpbmdzLW1hY29zLWRtZy1sb2NhbCI+LTwvc3Bhbj48YnV0dG9uIGlkPSJkb3dubG9hZC1sb2NhbC1kbWctYnRuIiBjbGFzcz0iYnRuIGJ0bi1zZWNvbmRhcnkgYnRuLXNtIGhpZGRlbiIgdHlwZT0iYnV0dG9uIj5cdTRFMEJcdThGN0Q8L2J1dHRvbj48L2Rpdj48ZGl2IGlkPSJtYWNvcy1hdXRvLXVwZGF0ZS1yb3ciIGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtcm93IGhpZGRlbiI+PGRpdiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLXRleHQiPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtdGl0bGUiPlx1ODFFQVx1NTJBOFx1NjZGNFx1NjVCMDwvc3Bhbj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLWRlc2MiIGlkPSJtYWNvcy1hdXRvLXVwZGF0ZS1oaW50Ij5cdTY4QzBcdTZENEJcdTUyMzBcdTY1QjBcdTcyNDggRE1HIFx1NUMwNlx1ODFFQVx1NTJBOFx1NEUwQlx1OEY3RFx1NUU3Nlx1NjMwMlx1OEY3RFx1MzAwMjwvc3Bhbj48L2Rpdj48bGFiZWwgY2xhc3M9InNldHRpbmdzLXN3aXRjaCI+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iYXV0by11cGRhdGUtZG1nLXRvZ2dsZSIgY2xhc3M9InN3aXRjaC10b2dnbGUiPjxzcGFuIGNsYXNzPSJzd2l0Y2gtc2xpZGVyIj48L3NwYW4+PC9sYWJlbD48L2Rpdj48cCBpZD0ibWFjb3MtZG1nLW1lc3NhZ2UiIGNsYXNzPSJoaW50IGhpZGRlbiI+PC9wPjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLXVwZGF0ZS1zZWN0aW9uIiBpZD0iYW5kcm9pZC1jb25uZWN0LXNlY3Rpb24iPjxkaXYgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taGVhZCI+PHNwYW4gY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taWNvbiI+Jyt6KCJsaW5rIix7c2l6ZToxOCxzdHJva2VXaWR0aDoxLjd9KSsnPC9zcGFuPjxkaXYgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taGVhZC10ZXh0Ij48aDQgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taGVhZGluZyI+QXBwIFx1OEZERVx1NjNBNVx1NzgwMTwvaDQ+PHAgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24tc3ViIj5cdTdDOThcdThEMzRcdTUyMzAgQW5kcm9pZCBBcHAgXHU1MzczXHU1M0VGXHU4MUVBXHU1MkE4XHU4RkRFXHU2M0E1XHVGRjBDXHU2NUUwXHU5NzAwXHU1QkM2XHU3ODAxXHVGRjFCXHU2NTM5XHU1QkM2XHU3ODAxXHU1NDBFXHU1OTMxXHU2NTQ4XHUzMDAyPC9wPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLWNvbm5lY3QtdXJsLWJveCI+PGNvZGUgaWQ9ImFuZHJvaWQtY29ubmVjdC1jb2RlIiBjbGFzcz0ic2V0dGluZ3MtY29ubmVjdC11cmwtdGV4dCI+LTwvY29kZT48YnV0dG9uIGlkPSJjb3B5LWNvbm5lY3QtY29kZS1idXR0b24iIGNsYXNzPSJidG4gYnRuLXNlY29uZGFyeSBidG4tc20iIHR5cGU9ImJ1dHRvbiIgdGl0bGU9Ilx1NTkwRFx1NTIzNlx1OEZERVx1NjNBNVx1NzgwMSI+XHU1OTBEXHU1MjM2PC9idXR0b24+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtY29ubmVjdC1xci1ib3giPjxkaXYgY2xhc3M9InNldHRpbmdzLWNvbm5lY3QtcXItd3JhcCIgaWQ9ImFuZHJvaWQtY29ubmVjdC1xci13cmFwIiB0aXRsZT0iXHU3MEI5XHU1MUZCXHU2NTNFXHU1OTI3Ij48Y2FudmFzIGlkPSJhbmRyb2lkLWNvbm5lY3QtcXIiIHdpZHRoPSIxODAiIGhlaWdodD0iMTgwIj48L2NhbnZhcz48ZGl2IGNsYXNzPSJzZXR0aW5ncy1jb25uZWN0LXFyLWVtcHR5IiBpZD0iYW5kcm9pZC1jb25uZWN0LXFyLWVtcHR5Ij5cdTc1MUZcdTYyMTBcdTRFMkRcdTIwMjY8L2Rpdj48L2Rpdj48cCBjbGFzcz0ic2V0dGluZ3MtY29ubmVjdC1xci1oaW50Ij5cdTc1MjggV2FuZCBBcHAgXHU2MjZCXHU0RTAwXHU2MjZCXHVGRjBDXHU1MzczXHU1M0VGXHU0RTAwXHU5NTJFXHU1ODZCXHU1MTY1XHU2NzBEXHU1MkExXHU1NjY4XHU1NzMwXHU1NzQwXHU0RTBFXHU4RkRFXHU2M0E1XHU3ODAxXHUzMDAyPC9wPjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLXBhbmVsIiBpZD0ic2V0dGluZ3MtdGFiLW5vdGlmaWNhdGlvbnMiIHJvbGU9InRhYnBhbmVsIj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1wYW5lbC1oZWFkZXIiPjxoMyBjbGFzcz0ic2V0dGluZ3MtcGFuZWwtdGl0bGUiPlx1OTAxQVx1NzdFNTwvaDM+PHAgY2xhc3M9InNldHRpbmdzLXBhbmVsLWRlc2MiPlx1OEJCRVx1N0Y2RVx1NjNEMFx1NzkzQVx1OTdGM1x1MzAwMVx1N0NGQlx1N0VERlx1OTAxQVx1NzdFNVx1NTQ4Q1x1NkQ0Rlx1ODlDOFx1NTY2OFx1OTAxQVx1NzdFNVx1NzY4NFx1ODg0Q1x1NEUzQVx1MzAwMjwvcD48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1ub3RpZmljYXRpb24tc2VjdGlvbiI+PGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkIj48c3BhbiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1pY29uIj4nK3ooImJlbGwiLHtzaXplOjE4LHN0cm9rZVdpZHRoOjEuN30pKyc8L3NwYW4+PGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkLXRleHQiPjxoNCBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkaW5nIj5cdTkwMUFcdTc3RTVcdTUwNEZcdTU5N0Q8L2g0PjxwIGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLXN1YiI+XHU2M0QwXHU3OTNBXHU5N0YzXHU0RTBFXHU1RTk0XHU3NTI4XHU1MTg1XHU5MDFBXHU3N0U1XHU2QzE0XHU2Q0UxPC9wPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS1yb3ciPjxkaXYgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS10ZXh0Ij48bGFiZWwgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS10aXRsZSIgZm9yPSJjZmctbm90aWYtc291bmQiPlx1NjRBRFx1NjUzRVx1NjNEMFx1NzkzQVx1OTdGMzwvbGFiZWw+PHNwYW4gY2xhc3M9InNldHRpbmdzLXRvZ2dsZS1kZXNjIj5cdTkxQ0RcdTg5ODFcdTkwMUFcdTc3RTVcdUZGMDhcdTcyNDhcdTY3MkNcdTY2RjRcdTY1QjBcdTMwMDFcdTY3NDNcdTk2NTBcdTdCNDlcdTVGODVcdTdCNDlcdUZGMDlcdTY1RjZcdTY0QURcdTY1M0VcdTY3RDRcdTU0OENcdTYzRDBcdTc5M0FcdTk3RjNcdTMwMDI8L3NwYW4+PC9kaXY+PGxhYmVsIGNsYXNzPSJzZXR0aW5ncy1zd2l0Y2giPjxpbnB1dCBpZD0iY2ZnLW5vdGlmLXNvdW5kIiB0eXBlPSJjaGVja2JveCIgY2xhc3M9InN3aXRjaC10b2dnbGUiIC8+PHNwYW4gY2xhc3M9InN3aXRjaC1zbGlkZXIiPjwvc3Bhbj48L2xhYmVsPjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLXJhbmdlLXJvdyIgaWQ9Im5vdGlmLXZvbHVtZS1maWVsZCI+PGxhYmVsIGNsYXNzPSJzZXR0aW5ncy1yYW5nZS1sYWJlbCIgZm9yPSJjZmctbm90aWYtdm9sdW1lIj5cdTk3RjNcdTkxQ0Y8L2xhYmVsPjxpbnB1dCBpZD0iY2ZnLW5vdGlmLXZvbHVtZSIgdHlwZT0icmFuZ2UiIG1pbj0iMCIgbWF4PSIxMDAiIHN0ZXA9IjUiIGNsYXNzPSJzZXR0aW5ncy1yYW5nZSIgLz48c3BhbiBpZD0iY2ZnLW5vdGlmLXZvbHVtZS12YWwiIGNsYXNzPSJzZXR0aW5ncy1yYW5nZS12YWx1ZSI+ODAlPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS1yb3ciPjxkaXYgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS10ZXh0Ij48bGFiZWwgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS10aXRsZSIgZm9yPSJjZmctbm90aWYtYnViYmxlIj5cdTVFOTRcdTc1MjhcdTUxODVcdTkwMUFcdTc3RTVcdTZDMTRcdTZDRTE8L2xhYmVsPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtZGVzYyI+XHU1NzI4XHU5ODc1XHU5NzYyXHU5ODc2XHU5MEU4XHU1RjM5XHU1MUZBXHU2RDZFXHU1MkE4XHU5MDFBXHU3N0U1XHU2QzE0XHU2Q0UxXHUzMDAyPC9zcGFuPjwvZGl2PjxsYWJlbCBjbGFzcz0ic2V0dGluZ3Mtc3dpdGNoIj48aW5wdXQgaWQ9ImNmZy1ub3RpZi1idWJibGUiIHR5cGU9ImNoZWNrYm94IiBjbGFzcz0ic3dpdGNoLXRvZ2dsZSIgLz48c3BhbiBjbGFzcz0ic3dpdGNoLXNsaWRlciI+PC9zcGFuPjwvbGFiZWw+PC9kaXY+PC9kaXY+PGRpdiBpZD0ibmF0aXZlLXNvdW5kLXNlY3Rpb24iIGNsYXNzPSJzZXR0aW5ncy1ub3RpZmljYXRpb24tc2VjdGlvbiBoaWRkZW4iPjxkaXYgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taGVhZCI+PHNwYW4gY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taWNvbiI+Jyt6KCJtdXNpYyIse3NpemU6MTgsc3Ryb2tlV2lkdGg6MS43fSkrJzwvc3Bhbj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWQtdGV4dCI+PGg0IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWRpbmciPlx1N0NGQlx1N0VERlx1OTAxQVx1NzdFNVx1OTRDM1x1NThGMDwvaDQ+PHAgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24tc3ViIj5cdTkwMDlcdTYyRTkgQW5kcm9pZCBcdTdDRkJcdTdFREZcdTkwMUFcdTc3RTVcdTRGN0ZcdTc1MjhcdTc2ODRcdTk0QzNcdTU4RjA8L3A+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3Mtcm93LXdpdGgtYWN0aW9uIj48c2VsZWN0IGlkPSJuYXRpdmUtc291bmQtc2VsZWN0IiBjbGFzcz0iZmllbGQtaW5wdXQgZmllbGQtc2VsZWN0Ij48L3NlbGVjdD48YnV0dG9uIGlkPSJuYXRpdmUtc291bmQtcHJldmlldyIgY2xhc3M9ImJ0biBidG4tc2Vjb25kYXJ5IGJ0bi1zbSBidG4td2l0aC1pY29uIiB0eXBlPSJidXR0b24iPicreigicGxheSIse3NpemU6MTEsc3Ryb2tlV2lkdGg6MS44LGZpbGw6ImN1cnJlbnRDb2xvciJ9KSsnPHNwYW4+XHU4QkQ1XHU1NDJDPC9zcGFuPjwvYnV0dG9uPjwvZGl2PjwvZGl2PjxkaXYgaWQ9Im5hdGl2ZS1oYXB0aWMtc2VjdGlvbiIgY2xhc3M9InNldHRpbmdzLW5vdGlmaWNhdGlvbi1zZWN0aW9uIGhpZGRlbiI+PGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkIj48c3BhbiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1pY29uIj4nK3ooInZpYnJhdGUiLHtzaXplOjE4LHN0cm9rZVdpZHRoOjEuN30pKyc8L3NwYW4+PGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkLXRleHQiPjxoNCBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkaW5nIj5cdTg5RTZcdTYxMUZcdTUzQ0RcdTk5ODg8L2g0PjxwIGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLXN1YiI+XHU2MzA5XHU5NEFFXHU2NENEXHU0RjVDXHU1NDhDXHU0RUZCXHU1MkExXHU1QjhDXHU2MjEwXHU2NUY2XHU2M0QwXHU0RjlCXHU2MzJGXHU1MkE4XHU1M0NEXHU5OTg4PC9wPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS1yb3ciPjxkaXYgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS10ZXh0Ij48bGFiZWwgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS10aXRsZSIgZm9yPSJjZmctaGFwdGljLWVuYWJsZWQiPlx1NTQyRlx1NzUyOFx1ODlFNlx1NjExRlx1NTNDRFx1OTk4ODwvbGFiZWw+PC9kaXY+PGxhYmVsIGNsYXNzPSJzZXR0aW5ncy1zd2l0Y2giPjxpbnB1dCBpZD0iY2ZnLWhhcHRpYy1lbmFibGVkIiB0eXBlPSJjaGVja2JveCIgY2xhc3M9InN3aXRjaC10b2dnbGUiIC8+PHNwYW4gY2xhc3M9InN3aXRjaC1zbGlkZXIiPjwvc3Bhbj48L2xhYmVsPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLW5vdGlmaWNhdGlvbi1zZWN0aW9uIj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWQiPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWljb24iPicreigiZ2xvYmUiLHtzaXplOjE4LHN0cm9rZVdpZHRoOjEuN30pKyc8L3NwYW4+PGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkLXRleHQiPjxoNCBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkaW5nIj5cdTZENEZcdTg5QzhcdTU2NjhcdTkwMUFcdTc3RTU8L2g0PjxwIGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLXN1YiI+XHU2NzY1XHU4MUVBXHU3Q0ZCXHU3RURGXHU5MDFBXHU3N0U1XHU0RTJEXHU1RkMzXHU3Njg0XHU1RjM5XHU3QTk3PC9wPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLWFib3V0LXJvdyI+PHNwYW4gY2xhc3M9InNldHRpbmdzLWxhYmVsIj5cdTYzODhcdTY3NDNcdTcyQjZcdTYwMDE8L3NwYW4+PHNwYW4gY2xhc3M9InNldHRpbmdzLXZhbHVlIiBpZD0ibm90aWZpY2F0aW9uLXBlcm1pc3Npb24tc3RhdHVzIj4tPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLXVwZGF0ZS1hY3Rpb25zIj48YnV0dG9uIGlkPSJub3RpZmljYXRpb24tcmVxdWVzdC1idG4iIGNsYXNzPSJidG4gYnRuLXByaW1hcnkgYnRuLXNtIGhpZGRlbiIgdHlwZT0iYnV0dG9uIj5cdTYzODhcdTY3NDNcdTkwMUFcdTc3RTU8L2J1dHRvbj48YnV0dG9uIGlkPSJub3RpZmljYXRpb24tcmVzZXQtYnRuIiBjbGFzcz0iYnRuIGJ0bi1naG9zdCBidG4tc20gaGlkZGVuIiB0eXBlPSJidXR0b24iPlx1OTFDRFx1NjVCMFx1NjM4OFx1Njc0MzwvYnV0dG9uPjxidXR0b24gaWQ9Im5vdGlmaWNhdGlvbi10ZXN0LWJ0biIgY2xhc3M9ImJ0biBidG4tc2Vjb25kYXJ5IGJ0bi1zbSIgdHlwZT0iYnV0dG9uIj5cdTUzRDFcdTkwMDFcdTZENEJcdThCRDVcdTkwMUFcdTc3RTU8L2J1dHRvbj48YnV0dG9uIGlkPSJub3RpZmljYXRpb24tdGVzdC1kZWxheS1idG4iIGNsYXNzPSJidG4gYnRuLWdob3N0IGJ0bi1zbSIgdHlwZT0iYnV0dG9uIj4xMCBcdTc5RDJcdTU0MEVcdTUzRDFcdTkwMDE8L2J1dHRvbj48L2Rpdj48cCBpZD0ibm90aWZpY2F0aW9uLXRlc3QtbWVzc2FnZSIgY2xhc3M9ImhpbnQgaGlkZGVuIj48L3A+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtcGFuZWwiIGlkPSJzZXR0aW5ncy10YWItZ2VuZXJhbCIgcm9sZT0idGFicGFuZWwiPjxkaXYgY2xhc3M9InNldHRpbmdzLXBhbmVsLWhlYWRlciI+PGgzIGNsYXNzPSJzZXR0aW5ncy1wYW5lbC10aXRsZSI+XHU1N0ZBXHU2NzJDXHU5MTREXHU3RjZFPC9oMz48cCBjbGFzcz0ic2V0dGluZ3MtcGFuZWwtZGVzYyI+XHU5MTREXHU3RjZFXHU2NzBEXHU1MkExXHU3NkQxXHU1NDJDXHU1NzMwXHU1NzQwXHUzMDAxXHU5RUQ4XHU4QkE0XHU2QTIxXHU1RjBGXHUzMDAxXHU4QkVEXHU4QTAwXHU1NDhDXHU1REU1XHU0RjVDXHU3NkVFXHU1RjU1XHUzMDAyPC9wPjwvZGl2PjxkaXYgY2xhc3M9ImZpZWxkLXJvdyI+PGRpdiBjbGFzcz0iZmllbGQiPjxsYWJlbCBjbGFzcz0iZmllbGQtbGFiZWwiIGZvcj0iY2ZnLWhvc3QiPlx1NzZEMVx1NTQyQ1x1NTczMFx1NTc0MCAoaG9zdCk8L2xhYmVsPjxpbnB1dCBpZD0iY2ZnLWhvc3QiIHR5cGU9InRleHQiIGNsYXNzPSJmaWVsZC1pbnB1dCIgcGxhY2Vob2xkZXI9IjEyNy4wLjAuMSIgLz48L2Rpdj48ZGl2IGNsYXNzPSJmaWVsZCI+PGxhYmVsIGNsYXNzPSJmaWVsZC1sYWJlbCIgZm9yPSJjZmctcG9ydCI+XHU3QUVGXHU1M0UzIChwb3J0KTwvbGFiZWw+PGlucHV0IGlkPSJjZmctcG9ydCIgdHlwZT0ibnVtYmVyIiBjbGFzcz0iZmllbGQtaW5wdXQiIHBsYWNlaG9sZGVyPSI4NDQzIiBtaW49IjEiIG1heD0iNjU1MzUiIC8+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLXJvdyI+PGRpdiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLXRleHQiPjxsYWJlbCBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLXRpdGxlIiBmb3I9ImNmZy1odHRwcyI+XHU1NDJGXHU3NTI4IEhUVFBTPC9sYWJlbD48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLWRlc2MiPlx1NEY3Rlx1NzUyOFx1ODFFQVx1N0I3RVx1NTQwRFx1OEJDMVx1NEU2Nlx1NTJBMFx1NUJDNlx1NkQ0Rlx1ODlDOFx1NTY2OFx1NTIzMFx1NjcwRFx1NTJBMVx1NzY4NFx1OEZERVx1NjNBNVx1RkYwQ2hvc3QgXHU0RTNBXHU5NzVFIDEyNy4wLjAuMSBcdTY1RjZcdTVFRkFcdThCQUVcdTVGMDBcdTU0MkZcdTMwMDI8L3NwYW4+PC9kaXY+PGxhYmVsIGNsYXNzPSJzZXR0aW5ncy1zd2l0Y2giPjxpbnB1dCBpZD0iY2ZnLWh0dHBzIiB0eXBlPSJjaGVja2JveCIgY2xhc3M9InN3aXRjaC10b2dnbGUiIC8+PHNwYW4gY2xhc3M9InN3aXRjaC1zbGlkZXIiPjwvc3Bhbj48L2xhYmVsPjwvZGl2PjxkaXYgY2xhc3M9ImZpZWxkLXJvdyI+PGRpdiBjbGFzcz0iZmllbGQiPjxsYWJlbCBjbGFzcz0iZmllbGQtbGFiZWwiIGZvcj0iY2ZnLW1vZGUiPlx1OUVEOFx1OEJBNFx1NjI2N1x1ODg0Q1x1NkEyMVx1NUYwRjwvbGFiZWw+PHNlbGVjdCBpZD0iY2ZnLW1vZGUiIGNsYXNzPSJmaWVsZC1pbnB1dCI+PG9wdGlvbiB2YWx1ZT0iZGVmYXVsdCI+ZGVmYXVsdDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImFzc2lzdCI+YXNzaXN0PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iYWdlbnQiPmFnZW50PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iYWdlbnQtbWF4Ij5hZ2VudC1tYXg8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJhdXRvLWVkaXQiPmF1dG8tZWRpdDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImZ1bGwtYWNjZXNzIj5mdWxsLWFjY2Vzczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Im5hdGl2ZSI+bmF0aXZlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0ibWFuYWdlZCI+bWFuYWdlZDwvb3B0aW9uPjwvc2VsZWN0PjwvZGl2PjxkaXYgY2xhc3M9ImZpZWxkIj48bGFiZWwgY2xhc3M9ImZpZWxkLWxhYmVsIiBmb3I9ImNmZy1sYW5ndWFnZSI+XHU1NkRFXHU1OTBEXHU4QkVEXHU4QTAwPC9sYWJlbD48c2VsZWN0IGlkPSJjZmctbGFuZ3VhZ2UiIGNsYXNzPSJmaWVsZC1pbnB1dCI+PG9wdGlvbiB2YWx1ZT0iIj5cdTgxRUFcdTUyQThcdUZGMDhcdTRFMERcdTYzMDdcdTVCOUFcdUZGMDk8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJcdTRFMkRcdTY1ODciPlx1NEUyRFx1NjU4Nzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkVuZ2xpc2giPkVuZ2xpc2g8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJcdTY1RTVcdTY3MkNcdThBOUUiPlx1NjVFNVx1NjcyQ1x1OEE5RTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Ilx1RDU1Q1x1QUQ2RFx1QzVCNCI+XHVENTVDXHVBRDZEXHVDNUI0PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iRXNwYVx4RjFvbCI+RXNwYVx4RjFvbDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkZyYW5ceEU3YWlzIj5GcmFuXHhFN2Fpczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkRldXRzY2giPkRldXRzY2g8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJcdTA0MjBcdTA0NDNcdTA0NDFcdTA0NDFcdTA0M0FcdTA0MzhcdTA0MzkiPlx1MDQyMFx1MDQ0M1x1MDQ0MVx1MDQ0MVx1MDQzQVx1MDQzOFx1MDQzOTwvb3B0aW9uPjwvc2VsZWN0PjwvZGl2PjwvZGl2PjxwIGNsYXNzPSJmaWVsZC1oaW50IiBzdHlsZT0ibWFyZ2luLXRvcDotNHB4OyI+XHU4QkJFXHU3RjZFXHU1NkRFXHU1OTBEXHU4QkVEXHU4QTAwXHU1NDBFXHVGRjBDQ2xhdWRlIFx1NUMwNlx1NUMzRFx1OTFDRlx1NEY3Rlx1NzUyOFx1NjMwN1x1NUI5QVx1OEJFRFx1OEEwMFx1NTZERVx1NTkwRFx1MzAwMjwvcD48ZGl2IGNsYXNzPSJmaWVsZCI+PGxhYmVsIGNsYXNzPSJmaWVsZC1sYWJlbCIgZm9yPSJjZmctc3RydWN0dXJlZC1ydW5uZXIiPlx1N0VEM1x1Njc4NFx1NTMxNlx1NEYxQVx1OEJERCBSdW5uZXI8L2xhYmVsPjxzZWxlY3QgaWQ9ImNmZy1zdHJ1Y3R1cmVkLXJ1bm5lciIgY2xhc3M9ImZpZWxkLWlucHV0Ij48b3B0aW9uIHZhbHVlPSJzZGsiPlNES1x1RkYwOEBhbnRocm9waWMtYWkvY2xhdWRlLWFnZW50LXNka1x1RkYwQ1x1OUVEOFx1OEJBNFx1RkYwOTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImNsaSI+Q0xJXHVGRjA4c3Bhd24gY2xhdWRlIC1wXHVGRjA5PC9vcHRpb24+PC9zZWxlY3Q+PHAgY2xhc3M9ImZpZWxkLWhpbnQiIHN0eWxlPSJtYXJnaW4tdG9wOjRweDsiPlNESyBcdTZBMjFcdTVGMEZcdTRGN0ZcdTc1MjhcdTVCOThcdTY1QjkgQWdlbnQgU0RLIFx1NjZGRlx1NEVFMyBDTEkgc3VicHJvY2Vzc1x1RkYwQ1x1NjNBNVx1NTNFM1x1NjZGNFx1NjU3NFx1NkQwMVx1RkYwQ1x1NTI5Rlx1ODBGRFx1N0I0OVx1NEVGN1x1MzAwMlx1NEZERFx1NUI1OFx1NTQwRVx1NUJGOVx1NjVCMFx1NUVGQVx1NEYxQVx1OEJERFx1N0FDQlx1NTM3M1x1NzUxRlx1NjU0OFx1MzAwMjwvcD48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtcm93Ij48ZGl2IGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtdGV4dCI+PGxhYmVsIGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtdGl0bGUiIGZvcj0iY2ZnLWluaGVyaXQtZW52Ij5cdTdFRTdcdTYyN0ZcdTczQUZcdTU4ODNcdTUzRDhcdTkxQ0Y8L2xhYmVsPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtZGVzYyI+XHU1NDJGXHU1MkE4IFBUWSAvIFx1N0VEM1x1Njc4NFx1NTMxNlx1NUI1MFx1OEZEQlx1N0EwQlx1NjVGNlx1RkYwQ1x1NjI4QVx1NUY1M1x1NTI0RFx1NjcwRFx1NTJBMVx1OEZEQlx1N0EwQlx1NzY4NFx1NzNBRlx1NTg4M1x1NTNEOFx1OTFDRlx1NEYyMFx1N0VEOSBjbGF1ZGUgLyBjb2RleFx1MzAwMlx1NTE3M1x1OTVFRFx1NTQwRVx1NUI1MFx1OEZEQlx1N0EwQlx1NEVDNVx1ODNCN1x1NUY5N1x1NjcwMFx1NUMwRlx1NTNFRlx1NzUyOFx1NzNBRlx1NTg4M1x1RkYwOFBBVEgvSE9NRS9TSEVMTC9MQU5HL1RFUk0gXHU3QjQ5XHVGRjA5XHVGRjBDXHU1M0VGXHU3NTI4XHU0RThFXHU5Njk0XHU3OUJCIEFQSSBrZXkgXHU3QjQ5XHU2NTRGXHU2MTFGXHU1MUVEXHU2MzZFXHUzMDAyPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS1hc2lkZSI+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGlkPSJjZmctdmlldy1lbnYtYnRuIiBjbGFzcz0iYnRuIGJ0bi1zZWNvbmRhcnkgYnRuLXNtIiB0aXRsZT0iXHU2N0U1XHU3NzBCXHU1QjlFXHU5NjQ1XHU0RjFBXHU2Q0U4XHU1MTY1XHU1MjMwXHU1QjUwXHU4RkRCXHU3QTBCXHU3Njg0XHU3M0FGXHU1ODgzXHU1M0Q4XHU5MUNGIj5cdTY3RTVcdTc3MEI8L2J1dHRvbj48bGFiZWwgY2xhc3M9InNldHRpbmdzLXN3aXRjaCI+PGlucHV0IGlkPSJjZmctaW5oZXJpdC1lbnYiIHR5cGU9ImNoZWNrYm94IiBjbGFzcz0ic3dpdGNoLXRvZ2dsZSIgLz48c3BhbiBjbGFzcz0ic3dpdGNoLXNsaWRlciI+PC9zcGFuPjwvbGFiZWw+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iZmllbGQiPjxsYWJlbCBjbGFzcz0iZmllbGQtbGFiZWwiIGZvcj0iY2ZnLWRlZmF1bHQtbW9kZWwiPlx1OUVEOFx1OEJBNFx1NkEyMVx1NTc4QjwvbGFiZWw+PGRpdiBjbGFzcz0ic2V0dGluZ3Mtcm93LXdpdGgtYWN0aW9uIj48c2VsZWN0IGlkPSJjZmctZGVmYXVsdC1tb2RlbCIgY2xhc3M9ImZpZWxkLWlucHV0IGZpZWxkLXNlbGVjdCI+PG9wdGlvbiB2YWx1ZT0iIj5cdThEREZcdTk2OEYgQ2xhdWRlIENvZGUgXHU5RUQ4XHU4QkE0PC9vcHRpb24+PC9zZWxlY3Q+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGlkPSJjZmctZGVmYXVsdC1tb2RlbC1yZWZyZXNoIiBjbGFzcz0iYnRuIGJ0bi1zZWNvbmRhcnkgYnRuLXNtIiB0aXRsZT0iXHU1MjM3XHU2NUIwXHU2QTIxXHU1NzhCXHU1MjE3XHU4ODY4Ij5cdTUyMzdcdTY1QjA8L2J1dHRvbj48L2Rpdj48cCBjbGFzcz0iZmllbGQtaGludCIgaWQ9ImNmZy1kZWZhdWx0LW1vZGVsLXZlcnNpb24iPlx1NjVCMFx1NUVGQVx1NEYxQVx1OEJERFx1NjVGNlx1OUVEOFx1OEJBNFx1NEY3Rlx1NzUyOFx1OEJFNVx1NkEyMVx1NTc4Qlx1RkYxQlx1OEZEMFx1ODg0Q1x1NEUyRFx1NzY4NFx1NEYxQVx1OEJERFx1NTNFRlx1NTcyOFx1OEY5M1x1NTE2NVx1Njg0Nlx1NTIwN1x1NjM2Mlx1MzAwMjwvcD48L2Rpdj48ZGl2IGNsYXNzPSJmaWVsZCI+PGxhYmVsIGNsYXNzPSJmaWVsZC1sYWJlbCIgZm9yPSJjZmctY3dkIj5cdTlFRDhcdThCQTRcdTVERTVcdTRGNUNcdTc2RUVcdTVGNTU8L2xhYmVsPjxpbnB1dCBpZD0iY2ZnLWN3ZCIgdHlwZT0idGV4dCIgY2xhc3M9ImZpZWxkLWlucHV0IiBwbGFjZWhvbGRlcj0iL2hvbWUvdXNlciIgLz48L2Rpdj48ZGl2IGNsYXNzPSJmaWVsZCI+PGxhYmVsIGNsYXNzPSJmaWVsZC1sYWJlbCIgZm9yPSJjZmctc2hlbGwiPlNoZWxsPC9sYWJlbD48aW5wdXQgaWQ9ImNmZy1zaGVsbCIgdHlwZT0idGV4dCIgY2xhc3M9ImZpZWxkLWlucHV0IiBwbGFjZWhvbGRlcj0iL2Jpbi9iYXNoIiAvPjwvZGl2PicrKHR5cGVvZiBXYW5kTmF0aXZlPCJ1IiYmdHlwZW9mIFdhbmROYXRpdmUuZ2V0QXBwSWNvbj09ImZ1bmN0aW9uIj8nPGRpdiBjbGFzcz0ic2V0dGluZ3MtYXBwLWljb24tYmxvY2siPjxkaXYgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taGVhZCI+PHNwYW4gY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taWNvbiI+Jyt6KCJwYWxldHRlIix7c2l6ZToxOCxzdHJva2VXaWR0aDoxLjd9KSsnPC9zcGFuPjxkaXYgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taGVhZC10ZXh0Ij48aDQgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taGVhZGluZyI+XHU1RTk0XHU3NTI4XHU1NkZFXHU2ODA3PC9oND48cCBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1zdWIiPlx1OTAwOVx1NjJFOSBBcHAgXHU1NDJGXHU1MkE4XHU1NjY4XHU1NkZFXHU2ODA3XHVGRjBDXHU4RkQ0XHU1NkRFXHU2ODRDXHU5NzYyXHU1NDBFXHU3NTFGXHU2NTQ4PC9wPjwvZGl2PjwvZGl2PjxkaXYgaWQ9ImFwcC1pY29uLXBpY2tlciIgY2xhc3M9InNldHRpbmdzLWFwcC1pY29uLXBpY2tlciI+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJzZXR0aW5ncy1hcHAtaWNvbi1vcHRpb24iIGRhdGEtaWNvbj0ic2hvcnRoYWlyIj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtYXBwLWljb24tcHJldmlldyI+JytraS51c2VyKyc8L3NwYW4+PHNwYW4gY2xhc3M9InNldHRpbmdzLWFwcC1pY29uLWxhYmVsIj5cdThENUJcdTUzNUFcdTg2NEVcdTU5OUU8L3NwYW4+PC9idXR0b24+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJzZXR0aW5ncy1hcHAtaWNvbi1vcHRpb24iIGRhdGEtaWNvbj0iZ2FyZmllbGQiPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1hcHAtaWNvbi1wcmV2aWV3Ij4nK2tpLmFzc2lzdGFudCsnPC9zcGFuPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1hcHAtaWNvbi1sYWJlbCI+XHU1MkU0XHU1MkIzXHU1MjFEXHU0RThDPC9zcGFuPjwvYnV0dG9uPjwvZGl2PjxwIGlkPSJhcHAtaWNvbi1tZXNzYWdlIiBjbGFzcz0iaGludCBoaWRkZW4iPjwvcD48L2Rpdj4nOiIiKSsnPGRpdiBjbGFzcz0ic2V0dGluZ3MtYWN0aW9ucyBzZXR0aW5ncy1hY3Rpb25zLXN0aWNreSI+PGJ1dHRvbiBpZD0ic2F2ZS1jb25maWctYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1wcmltYXJ5IGJ0bi1ibG9jayI+XHU0RkREXHU1QjU4XHU5MTREXHU3RjZFPC9idXR0b24+PC9kaXY+PHAgaWQ9ImNvbmZpZy1tZXNzYWdlIiBjbGFzcz0iaGludCBoaWRkZW4gc2V0dGluZ3Mtc3RhdHVzLW1lc3NhZ2UiPjwvcD48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1wYW5lbCIgaWQ9InNldHRpbmdzLXRhYi1zZWN1cml0eSIgcm9sZT0idGFicGFuZWwiPjxkaXYgY2xhc3M9InNldHRpbmdzLXBhbmVsLWhlYWRlciI+PGgzIGNsYXNzPSJzZXR0aW5ncy1wYW5lbC10aXRsZSI+XHU1Qjg5XHU1MTY4PC9oMz48cCBjbGFzcz0ic2V0dGluZ3MtcGFuZWwtZGVzYyI+XHU3QkExXHU3NDA2XHU3NjdCXHU1RjU1XHU1QkM2XHU3ODAxXHU0RTBFIFNTTCBcdThCQzFcdTRFNjZcdUZGMENcdTY1NEZcdTYxMUZcdTUzRDhcdTY2RjRcdThCRjdcdTc4NkVcdThCQTRcdTU0MEVcdTUxOERcdTRGRERcdTVCNThcdTMwMDI8L3A+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtY2FyZCI+PGRpdiBjbGFzcz0ic2V0dGluZ3MtY2FyZC1oZWFkIj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtY2FyZC1pY29uIj5cdXsxRjUxMn08L3NwYW4+PGRpdiBjbGFzcz0ic2V0dGluZ3MtY2FyZC1oZWFkLXRleHQiPjxoMyBjbGFzcz0ic2V0dGluZ3MtY2FyZC10aXRsZSI+XHU0RkVFXHU2NTM5XHU1QkM2XHU3ODAxPC9oMz48cCBjbGFzcz0ic2V0dGluZ3MtY2FyZC1kZXNjIj5cdTgxRjNcdTVDMTEgNiBcdTRFMkFcdTVCNTdcdTdCMjZcdUZGMUJcdTRGRERcdTVCNThcdTU0MEVcdTRFMEJcdTZCMjFcdTc2N0JcdTVGNTVcdTc1MUZcdTY1NDhcdTMwMDI8L3A+PC9kaXY+PC9kaXY+PGZvcm0gaWQ9ImNoYW5nZS1wYXNzd29yZC1mb3JtIiBhdXRvY29tcGxldGU9Im9uIiBvbnN1Ym1pdD0icmV0dXJuIGZhbHNlOyI+PGlucHV0IHR5cGU9InRleHQiIG5hbWU9InVzZXJuYW1lIiBhdXRvY29tcGxldGU9InVzZXJuYW1lIiB2YWx1ZT0id2FuZCIgdGFiaW5kZXg9Ii0xIiBhcmlhLWhpZGRlbj0idHJ1ZSIgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlO2xlZnQ6LTk5OTlweDt3aWR0aDoxcHg7aGVpZ2h0OjFweDtvcGFjaXR5OjA7cG9pbnRlci1ldmVudHM6bm9uZSIgcmVhZG9ubHkgLz48ZGl2IGNsYXNzPSJmaWVsZCI+PGxhYmVsIGNsYXNzPSJmaWVsZC1sYWJlbCIgZm9yPSJuZXctcGFzc3dvcmQiPlx1NjVCMFx1NUJDNlx1NzgwMTwvbGFiZWw+PGlucHV0IGlkPSJuZXctcGFzc3dvcmQiIHR5cGU9InBhc3N3b3JkIiBjbGFzcz0iZmllbGQtaW5wdXQiIHBsYWNlaG9sZGVyPSJcdThGOTNcdTUxNjVcdTY1QjBcdTVCQzZcdTc4MDFcdUZGMDhcdTgxRjNcdTVDMTEgNiBcdTRFMkFcdTVCNTdcdTdCMjZcdUZGMDkiIGF1dG9jb21wbGV0ZT0ibmV3LXBhc3N3b3JkIiAvPjwvZGl2PjxkaXYgY2xhc3M9ImZpZWxkIj48bGFiZWwgY2xhc3M9ImZpZWxkLWxhYmVsIiBmb3I9ImNvbmZpcm0tcGFzc3dvcmQiPlx1Nzg2RVx1OEJBNFx1NUJDNlx1NzgwMTwvbGFiZWw+PGlucHV0IGlkPSJjb25maXJtLXBhc3N3b3JkIiB0eXBlPSJwYXNzd29yZCIgY2xhc3M9ImZpZWxkLWlucHV0IiBwbGFjZWhvbGRlcj0iXHU1MThEXHU2QjIxXHU4RjkzXHU1MTY1XHU2NUIwXHU1QkM2XHU3ODAxIiBhdXRvY29tcGxldGU9Im5ldy1wYXNzd29yZCIgLz48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1jYXJkLWFjdGlvbnMiPjxidXR0b24gaWQ9InNhdmUtcGFzc3dvcmQtYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1wcmltYXJ5IiB0eXBlPSJzdWJtaXQiPlx1NEZERFx1NUI1OFx1NUJDNlx1NzgwMTwvYnV0dG9uPjwvZGl2PjxwIGlkPSJzZXR0aW5ncy1lcnJvciIgY2xhc3M9ImVycm9yLW1lc3NhZ2UgaGlkZGVuIj48L3A+PHAgaWQ9InNldHRpbmdzLXN1Y2Nlc3MiIGNsYXNzPSJoaW50IHNldHRpbmdzLXN1Y2Nlc3MtbWVzc2FnZSBoaWRkZW4iPjwvcD48L2Zvcm0+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtY2FyZCI+PGRpdiBjbGFzcz0ic2V0dGluZ3MtY2FyZC1oZWFkIj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtY2FyZC1pY29uIj5cdXsxRjUxMH08L3NwYW4+PGRpdiBjbGFzcz0ic2V0dGluZ3MtY2FyZC1oZWFkLXRleHQiPjxoMyBjbGFzcz0ic2V0dGluZ3MtY2FyZC10aXRsZSI+U1NMIFx1OEJDMVx1NEU2NjwvaDM+PHAgY2xhc3M9InNldHRpbmdzLWNhcmQtZGVzYyIgaWQ9ImNlcnQtc3RhdHVzIj5cdTUyQTBcdThGN0RcdTRFMkQuLi48L3A+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iZmllbGQiPjxsYWJlbCBjbGFzcz0iZmllbGQtbGFiZWwiIGZvcj0iY2VydC1rZXktZmlsZSI+XHU3OUMxXHU5NEE1XHU2NTg3XHU0RUY2ICgua2V5KTwvbGFiZWw+PGRpdiBjbGFzcz0iZmlsZS1waWNrZXIiPjxpbnB1dCBpZD0iY2VydC1rZXktZmlsZSIgdHlwZT0iZmlsZSIgY2xhc3M9ImZpbGUtcGlja2VyLWlucHV0IiBhY2NlcHQ9Ii5rZXksLnBlbSIgLz48bGFiZWwgZm9yPSJjZXJ0LWtleS1maWxlIiBjbGFzcz0iZmlsZS1waWNrZXItdHJpZ2dlciI+PHN2ZyBjbGFzcz0iZmlsZS1waWNrZXItaWNvbiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48cGF0aCBkPSJNMjEuNDQgMTEuMDVsLTkuMTkgOS4xOWE2IDYgMCAwIDEtOC40OS04LjQ5bDkuMTktOS4xOWE0IDQgMCAwIDEgNS42NiA1LjY2bC05LjIgOS4xOWEyIDIgMCAwIDEtMi44My0yLjgzbDguNDktOC40OCI+PC9wYXRoPjwvc3ZnPjxzcGFuIGNsYXNzPSJmaWxlLXBpY2tlci1sYWJlbCI+XHU5MDA5XHU2MkU5XHU3OUMxXHU5NEE1PC9zcGFuPjwvbGFiZWw+PHNwYW4gY2xhc3M9ImZpbGUtcGlja2VyLW5hbWUiIGRhdGEtZGVmYXVsdD0iXHU2NzJBXHU5MDA5XHU2MkU5XHU2NTg3XHU0RUY2Ij5cdTY3MkFcdTkwMDlcdTYyRTlcdTY1ODdcdTRFRjY8L3NwYW4+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iZmllbGQiPjxsYWJlbCBjbGFzcz0iZmllbGQtbGFiZWwiIGZvcj0iY2VydC1jZXJ0LWZpbGUiPlx1OEJDMVx1NEU2Nlx1NjU4N1x1NEVGNiAoLmNydC8ucGVtKTwvbGFiZWw+PGRpdiBjbGFzcz0iZmlsZS1waWNrZXIiPjxpbnB1dCBpZD0iY2VydC1jZXJ0LWZpbGUiIHR5cGU9ImZpbGUiIGNsYXNzPSJmaWxlLXBpY2tlci1pbnB1dCIgYWNjZXB0PSIuY3J0LC5wZW0sLmNlcnQiIC8+PGxhYmVsIGZvcj0iY2VydC1jZXJ0LWZpbGUiIGNsYXNzPSJmaWxlLXBpY2tlci10cmlnZ2VyIj48c3ZnIGNsYXNzPSJmaWxlLXBpY2tlci1pY29uIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxwYXRoIGQ9Ik0xNCAySDZhMiAyIDAgMCAwLTIgMnYxNmEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWOHoiPjwvcGF0aD48cG9seWxpbmUgcG9pbnRzPSIxNCAyIDE0IDggMjAgOCI+PC9wb2x5bGluZT48L3N2Zz48c3BhbiBjbGFzcz0iZmlsZS1waWNrZXItbGFiZWwiPlx1OTAwOVx1NjJFOVx1OEJDMVx1NEU2Njwvc3Bhbj48L2xhYmVsPjxzcGFuIGNsYXNzPSJmaWxlLXBpY2tlci1uYW1lIiBkYXRhLWRlZmF1bHQ9Ilx1NjcyQVx1OTAwOVx1NjJFOVx1NjU4N1x1NEVGNiI+XHU2NzJBXHU5MDA5XHU2MkU5XHU2NTg3XHU0RUY2PC9zcGFuPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLWNhcmQtYWN0aW9ucyI+PGJ1dHRvbiBpZD0idXBsb2FkLWNlcnQtYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1wcmltYXJ5Ij5cdTRFMEFcdTRGMjBcdThCQzFcdTRFNjY8L2J1dHRvbj48L2Rpdj48cCBpZD0iY2VydC1tZXNzYWdlIiBjbGFzcz0iaGludCBoaWRkZW4iPjwvcD48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1wYW5lbCIgaWQ9InNldHRpbmdzLXRhYi1wcmVzZXRzIiByb2xlPSJ0YWJwYW5lbCI+PGRpdiBjbGFzcz0ic2V0dGluZ3MtcGFuZWwtaGVhZGVyIj48aDMgY2xhc3M9InNldHRpbmdzLXBhbmVsLXRpdGxlIj5cdTU0N0RcdTRFRTRcdTk4ODRcdThCQkU8L2gzPjxwIGNsYXNzPSJzZXR0aW5ncy1wYW5lbC1kZXNjIj5cdTVGNTNcdTUyNERcdTU0N0RcdTRFRTRcdTk4ODRcdThCQkVcdTRFQ0UgY29uZmlnLmpzb24gXHU4QkZCXHU1M0Q2XHVGRjBDXHU1M0VGXHU1NzI4XHU4RkQ5XHU5MUNDXHU1RkVCXHU5MDFGXHU2N0U1XHU3NzBCXHU1REYyXHU2NzA5XHU5MTREXHU3RjZFXHUzMDAyPC9wPjwvZGl2PjxkaXYgaWQ9InByZXNldHMtbGlzdCIgY2xhc3M9InByZXNldHMtbGlzdCI+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtcGFuZWwiIGlkPSJzZXR0aW5ncy10YWItZGlzcGxheSIgcm9sZT0idGFicGFuZWwiPjxkaXYgY2xhc3M9InNldHRpbmdzLXBhbmVsLWhlYWRlciI+PGgzIGNsYXNzPSJzZXR0aW5ncy1wYW5lbC10aXRsZSI+XHU2NjNFXHU3OTNBPC9oMz48cCBjbGFzcz0ic2V0dGluZ3MtcGFuZWwtZGVzYyI+XHU2M0E3XHU1MjM2XHU4MDRBXHU1OTI5XHU4OUM2XHU1NkZFXHU5MUNDXHU0RTBEXHU1NDBDXHU1MzYxXHU3MjQ3XHU3QzdCXHU1NzhCXHU3Njg0XHU5RUQ4XHU4QkE0XHU1QzU1XHU1RjAwXHU3MkI2XHU2MDAxXHUzMDAyPC9wPjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24tdGl0bGUiPlx1NTM2MVx1NzI0N1x1OUVEOFx1OEJBNFx1NUM1NVx1NUYwMFx1NzJCNlx1NjAwMTwvZGl2PjxwIGNsYXNzPSJoaW50IHNldHRpbmdzLWlubGluZS1oaW50Ij5cdThCQkVcdTdGNkVcdTdFRDNcdTY3ODRcdTUzMTZcdTgwNEFcdTU5MjlcdTg5QzZcdTU2RkVcdTRFMkRcdTU0MDRcdTdDN0JcdTUzNjFcdTcyNDdcdTc2ODRcdTlFRDhcdThCQTRcdTVDNTVcdTVGMDAvXHU2Mjk4XHU1M0UwXHU3MkI2XHU2MDAxXHUzMDAyXHU2MjRCXHU1MkE4XHU2NENEXHU0RjVDXHU3Njg0XHU1QzU1XHU1RjAwXHU3MkI2XHU2MDAxXHU0RjE4XHU1MTQ4XHU0RThFXHU2QjY0XHU5RUQ4XHU4QkE0XHU4QkJFXHU3RjZFXHUzMDAyPC9wPjxkaXYgY2xhc3M9InN3aXRjaC1jYXJkLWxpc3QiPjxsYWJlbCBjbGFzcz0ic3dpdGNoLWNhcmQiIGZvcj0iY2ZnLWNhcmQtZWRpdCI+PGRpdiBjbGFzcz0ic3dpdGNoLWNhcmQtaGVhZGVyIj48c3BhbiBjbGFzcz0ic3dpdGNoLWNhcmQtdGl0bGUiPlx1N0YxNlx1OEY5MVx1NTM2MVx1NzI0NyAoRWRpdC9Xcml0ZSk8L3NwYW4+PGlucHV0IGlkPSJjZmctY2FyZC1lZGl0IiB0eXBlPSJjaGVja2JveCIgY2xhc3M9InN3aXRjaC10b2dnbGUiIC8+PHNwYW4gY2xhc3M9InN3aXRjaC1zbGlkZXIiPjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJzd2l0Y2gtY2FyZC1kZXNjIj5cdTY1ODdcdTRFRjZcdTdGMTZcdThGOTFcdTU0OENcdTUxOTlcdTUxNjVcdTY0Q0RcdTRGNUNcdTc2ODQgZGlmZiBcdTg5QzZcdTU2RkU8L2Rpdj48L2xhYmVsPjxsYWJlbCBjbGFzcz0ic3dpdGNoLWNhcmQiIGZvcj0iY2ZnLWNhcmQtaW5saW5lIj48ZGl2IGNsYXNzPSJzd2l0Y2gtY2FyZC1oZWFkZXIiPjxzcGFuIGNsYXNzPSJzd2l0Y2gtY2FyZC10aXRsZSI+XHU1MTg1XHU4MDU0XHU1REU1XHU1MTc3IChSZWFkL0dsb2IvR3JlcCk8L3NwYW4+PGlucHV0IGlkPSJjZmctY2FyZC1pbmxpbmUiIHR5cGU9ImNoZWNrYm94IiBjbGFzcz0ic3dpdGNoLXRvZ2dsZSIgLz48c3BhbiBjbGFzcz0ic3dpdGNoLXNsaWRlciI+PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InN3aXRjaC1jYXJkLWRlc2MiPlx1NjU4N1x1NEVGNlx1OEJGQlx1NTNENlx1MzAwMVx1NjQxQ1x1N0QyMlx1N0I0OVx1NURFNVx1NTE3N1x1NzY4NFx1N0VEM1x1Njc5QzwvZGl2PjwvbGFiZWw+PGxhYmVsIGNsYXNzPSJzd2l0Y2gtY2FyZCIgZm9yPSJjZmctY2FyZC10ZXJtaW5hbCI+PGRpdiBjbGFzcz0ic3dpdGNoLWNhcmQtaGVhZGVyIj48c3BhbiBjbGFzcz0ic3dpdGNoLWNhcmQtdGl0bGUiPlx1N0VDOFx1N0FFRlx1OEY5M1x1NTFGQSAoQmFzaCk8L3NwYW4+PGlucHV0IGlkPSJjZmctY2FyZC10ZXJtaW5hbCIgdHlwZT0iY2hlY2tib3giIGNsYXNzPSJzd2l0Y2gtdG9nZ2xlIiAvPjxzcGFuIGNsYXNzPSJzd2l0Y2gtc2xpZGVyIj48L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0ic3dpdGNoLWNhcmQtZGVzYyI+XHU1NDdEXHU0RUU0XHU4ODRDXHU2MjY3XHU4ODRDXHU3RUQzXHU2NzlDPC9kaXY+PC9sYWJlbD48bGFiZWwgY2xhc3M9InN3aXRjaC1jYXJkIiBmb3I9ImNmZy1jYXJkLXRoaW5raW5nIj48ZGl2IGNsYXNzPSJzd2l0Y2gtY2FyZC1oZWFkZXIiPjxzcGFuIGNsYXNzPSJzd2l0Y2gtY2FyZC10aXRsZSI+XHU2MDFEXHU4MDAzXHU4RkM3XHU3QTBCIChUaGlua2luZyk8L3NwYW4+PGlucHV0IGlkPSJjZmctY2FyZC10aGlua2luZyIgdHlwZT0iY2hlY2tib3giIGNsYXNzPSJzd2l0Y2gtdG9nZ2xlIiAvPjxzcGFuIGNsYXNzPSJzd2l0Y2gtc2xpZGVyIj48L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0ic3dpdGNoLWNhcmQtZGVzYyI+Q2xhdWRlIFx1NzY4NFx1NjAxRFx1ODAwM1x1OEZDN1x1N0EwQlx1NTc1NzwvZGl2PjwvbGFiZWw+PGxhYmVsIGNsYXNzPSJzd2l0Y2gtY2FyZCIgZm9yPSJjZmctY2FyZC10b29sZ3JvdXAiPjxkaXYgY2xhc3M9InN3aXRjaC1jYXJkLWhlYWRlciI+PHNwYW4gY2xhc3M9InN3aXRjaC1jYXJkLXRpdGxlIj5cdTVERTVcdTUxNzdcdTdFQzQ8L3NwYW4+PGlucHV0IGlkPSJjZmctY2FyZC10b29sZ3JvdXAiIHR5cGU9ImNoZWNrYm94IiBjbGFzcz0ic3dpdGNoLXRvZ2dsZSIgLz48c3BhbiBjbGFzcz0ic3dpdGNoLXNsaWRlciI+PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InN3aXRjaC1jYXJkLWRlc2MiPlx1OEZERVx1N0VFRFx1NTQwQ1x1N0M3Qlx1NURFNVx1NTE3N1x1OEMwM1x1NzUyOFx1NzY4NFx1NjI5OFx1NTNFMFx1N0VDNDwvZGl2PjwvbGFiZWw+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtYWN0aW9ucyBzZXR0aW5ncy1hY3Rpb25zLXN0aWNreSI+PGJ1dHRvbiBpZD0ic2F2ZS1kaXNwbGF5LWJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tcHJpbWFyeSBidG4tYmxvY2siPlx1NEZERFx1NUI1OFx1NjYzRVx1NzkzQVx1OEJCRVx1N0Y2RTwvYnV0dG9uPjwvZGl2PjxwIGlkPSJkaXNwbGF5LW1lc3NhZ2UiIGNsYXNzPSJoaW50IGhpZGRlbiBzZXR0aW5ncy1zdGF0dXMtbWVzc2FnZSI+PC9wPjwvZGl2PjwvZGl2PjwvZGl2Pjwvc2VjdGlvbj4nfWZ1bmN0aW9uIERnKGUpe3ZhciB0PWV0KCk7cmV0dXJuIGUuc2VsZWN0ZWRJZD8iIjonPGRpdiBjbGFzcz0iZm9sZGVyLXBpY2tlci1jb21wYWN0IiBpZD0iZm9sZGVyLXBpY2tlci1jb250YWluZXIiPjxkaXYgY2xhc3M9ImZvbGRlci1waWNrZXItY29tcGFjdC1yb3ciPjxzcGFuIGNsYXNzPSJmb2xkZXItcGlja2VyLWNvbXBhY3QtaWNvbiI+Jyt6KCJmb2xkZXIiLHtzaXplOjEzLHN0cm9rZVdpZHRoOjEuN30pKyc8L3NwYW4+PGlucHV0IHR5cGU9InRleHQiIGlkPSJmb2xkZXItcGlja2VyLWlucHV0IiBjbGFzcz0iZm9sZGVyLXBpY2tlci1jb21wYWN0LWlucHV0IiB2YWx1ZT0iJytwKHQpKyciIHBsYWNlaG9sZGVyPSJcdTVERTVcdTRGNUNcdTc2RUVcdTVGNTUiIGF1dG9jb21wbGV0ZT0ib2ZmIiAvPjxidXR0b24gdHlwZT0iYnV0dG9uIiBpZD0iZm9sZGVyLXBpY2tlci10b2dnbGUiIGNsYXNzPSJmb2xkZXItcGlja2VyLXRvZ2dsZSIgdGl0bGU9Ilx1OTAwOVx1NjJFOVx1NzZFRVx1NUY1NSIgYXJpYS1sYWJlbD0iXHU5MDA5XHU2MkU5XHU3NkVFXHU1RjU1Ij4nK3ooImNoZXZyb25Eb3duIix7c2l6ZToxMSxzdHJva2VXaWR0aDoyfSkrJzwvYnV0dG9uPjwvZGl2PjxkaXYgaWQ9ImZvbGRlci1waWNrZXItZHJvcGRvd24iIGNsYXNzPSJmb2xkZXItcGlja2VyLWRyb3Bkb3duIGhpZGRlbiI+PGRpdiBjbGFzcz0iZm9sZGVyLXBpY2tlci1xdWljay1yb3ciPjxidXR0b24gY2xhc3M9ImZvbGRlci1waWNrZXItcXVpY2stYnRuIiBkYXRhLXBhdGg9Ii90bXAiPlx1NEUzNFx1NjVGNjwvYnV0dG9uPjxidXR0b24gY2xhc3M9ImZvbGRlci1waWNrZXItcXVpY2stYnRuIiBkYXRhLXBhdGg9Ii8iPlx1NjgzOVx1NzZFRVx1NUY1NTwvYnV0dG9uPjwvZGl2PjwvZGl2PjxkaXYgaWQ9ImZvbGRlci1waWNrZXItdmFsaWRhdGlvbiIgY2xhc3M9ImZvbGRlci1waWNrZXItdmFsaWRhdGlvbiI+PC9kaXY+PC9kaXY+J31mdW5jdGlvbiBrZyhlKXt2YXIgdD1ldCgpLG49dDtpZihlLnNlbGVjdGVkSWQpe3ZhciBpPWUuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihhKXtyZXR1cm4gYS5pZD09PWUuc2VsZWN0ZWRJZH0pO249aSYmaS5jd2Q/aS5jd2Q6dH1yZXR1cm4nPGRpdiBjbGFzcz0id29ya2luZy1kaXItaW5kaWNhdG9yIiBpZD0id29ya2luZy1kaXItaW5kaWNhdG9yIiB0aXRsZT0iJytwKG4pKyciIGRhdGEtcGF0aD0iJytwKG4pKyciPjxzcGFuIGNsYXNzPSJ3b3JraW5nLWRpci1pbmRpY2F0b3ItaWNvbiI+Jyt6KCJmb2xkZXIiLHtzaXplOjEyLHN0cm9rZVdpZHRoOjEuN30pKyI8L3NwYW4+IitsdChuLCJ3b3JraW5nLWRpci1pbmRpY2F0b3ItcGF0aCIsJyBpZD0id29ya2luZy1kaXItaW5kaWNhdG9yLXBhdGgiJykrIjwvZGl2PiJ9ZnVuY3Rpb24gYXMoZSl7aWYoIWUpcmV0dXJuIiI7dmFyIHQ9RGF0ZS5ub3coKSxuPW5ldyBEYXRlKGUpLmdldFRpbWUoKSxpPU1hdGgubWF4KDAsdC1uKSxhPU1hdGguZmxvb3IoaS8xZTMpO2lmKGE8NjApcmV0dXJuIlx1NTIxQVx1NTIxQSI7dmFyIHU9TWF0aC5mbG9vcihhLzYwKTtpZih1PDYwKXJldHVybiB1KyJcdTUyMDZcdTk0OUZcdTUyNEQiO3ZhciBzPU1hdGguZmxvb3IodS82MCk7aWYoczwyNClyZXR1cm4gcysiXHU1QzBGXHU2NUY2XHU1MjREIjt2YXIgbz1NYXRoLmZsb29yKHMvMjQpO3JldHVybiBvPDMwP28rIlx1NTkyOVx1NTI0RCI6TWF0aC5mbG9vcihvLzMwKSsiXHU0RTJBXHU2NzA4XHU1MjREIn1mdW5jdGlvbiB1cyhlKXtpZighZSlyZXR1cm4iIjt2YXIgdD1EYXRlLm5vdygpLG49bmV3IERhdGUoZSkuZ2V0VGltZSgpLGk9TWF0aC5tYXgoMCx0LW4pLGE9TWF0aC5mbG9vcihpLzFlMyksdT1NYXRoLmZsb29yKGEvNjApLHM9TWF0aC5mbG9vcih1LzYwKTtyZXR1cm4gcz4wP3MrImgiKyh1JTYwPjA/dSU2MCsibSI6IiIpOnU+MD91KyJtIjphKyJzIn1mdW5jdGlvbiBmcihlKXtpZighZSlyZXR1cm4iIjtpZihlLmFyY2hpdmVkKXJldHVybiJcdTVERjJcdTVGNTJcdTY4NjMiO2lmKGUucGVybWlzc2lvbkJsb2NrZWQpcmV0dXJuIlx1N0I0OVx1NUY4NVx1NjM4OFx1Njc0MyI7aWYodWUoZSkmJmUuc3RydWN0dXJlZFN0YXRlJiZlLnN0cnVjdHVyZWRTdGF0ZS5pbkZsaWdodClyZXR1cm4iXHU2MDFEXHU4MDAzXHU0RTJEIjt2YXIgdD17aWRsZToiXHU3QTdBXHU5NUYyIixzdG9wcGVkOiJcdTVERjJcdTUwNUNcdTZCNjIiLHJ1bm5pbmc6Ilx1OEZEMFx1ODg0Q1x1NEUyRCIsZXhpdGVkOiJcdTVERjJcdTkwMDBcdTUxRkEiLGZhaWxlZDoiXHU1REYyXHU1OTMxXHU4RDI1In07cmV0dXJuIHRbZS5zdGF0dXNdfHxlLnN0YXR1c31mdW5jdGlvbiBzcyhlKXtyZXR1cm4gZT9lLmFyY2hpdmVkPyJhcmNoaXZlZCI6ZS5wZXJtaXNzaW9uQmxvY2tlZD8icGVybWlzc2lvbi1ibG9ja2VkIjp1ZShlKSYmZS5zdHJ1Y3R1cmVkU3RhdGUmJmUuc3RydWN0dXJlZFN0YXRlLmluRmxpZ2h0PyJydW5uaW5nIjplLnN0YXR1c3x8IiI6IiJ9ZnVuY3Rpb24gUmMoZSl7cmV0dXJuIGU/ZS5wZXJtaXNzaW9uQmxvY2tlZD8iXHU3QjQ5XHU1Rjg1XHU0RjYwXHU3Njg0XHU2Mzg4XHU2NzQzIjplLnN0YXR1cyE9PSJydW5uaW5nIj8iIjplLmlkPT09ci5zZWxlY3RlZElkJiZyLmN1cnJlbnRUYXNrJiZyLmN1cnJlbnRUYXNrLnRpdGxlP3IuY3VycmVudFRhc2sudGl0bGU6ZS5jdXJyZW50VGFza1RpdGxlP2UuY3VycmVudFRhc2tUaXRsZToiIjoiIn1mdW5jdGlvbiBXYyhlKXt2YXIgdD1lJiZlLm1lc3NhZ2VzO2lmKCF0fHx0Lmxlbmd0aD09PTApcmV0dXJuIiI7Zm9yKHZhciBuPXQubGVuZ3RoLTE7bj49MDtuLS0pe3ZhciBpPXRbbl07aWYoISghaXx8aS5yb2xlIT09InVzZXIiKSl7dmFyIGE9aS5jb250ZW50O2lmKHR5cGVvZiBhPT0ic3RyaW5nIil7dmFyIHU9YS50cmltKCk7aWYodSlyZXR1cm4gdTtjb250aW51ZX1pZihBcnJheS5pc0FycmF5KGEpKWZvcih2YXIgcz0wO3M8YS5sZW5ndGg7cysrKXt2YXIgbz1hW3NdO2lmKCEoIW98fG8udHlwZSE9PSJ0ZXh0Inx8IW8udGV4dCkmJiFvLl9fcXVldWVkKXt2YXIgbD1TdHJpbmcoby50ZXh0KS50cmltKCk7aWYobClyZXR1cm4gbH19fX1yZXR1cm4iIn1mdW5jdGlvbiB6YyhlKXt2YXIgdD1lJiZlLm1lc3NhZ2VzO2lmKCF0fHx0Lmxlbmd0aD09PTApcmV0dXJuIiI7Zm9yKHZhciBuPXQubGVuZ3RoLTE7bj49MDtuLS0pe3ZhciBpPXRbbl07aWYoaS5yb2xlPT09ImFzc2lzdGFudCIpe2Zvcih2YXIgYT1pLmNvbnRlbnR8fFtdLHU9MDt1PGEubGVuZ3RoO3UrKylpZihhW3VdLnR5cGU9PT0idGV4dCImJmFbdV0udGV4dCYmYVt1XS50ZXh0LnRyaW0oKSl7dmFyIHM9YVt1XS50ZXh0LnRyaW0oKTtzPXMucmVwbGFjZSgvXiMrXHMrL2dtLCIiKS5yZXBsYWNlKC9cKlwqL2csIiIpLnJlcGxhY2UoL2AvZywiIik7dmFyIG89cy5zcGxpdChgCmApWzBdLnRyaW0oKTtyZXR1cm4gby5zbGljZSgwLDEwMCl9fX1yZXR1cm4iIn1mdW5jdGlvbiBuYShlLHQpe3ZhciBuPWUuaWQ9PT1yLnNlbGVjdGVkSWQ/IiBhY3RpdmUiOiIiLGk9ci5zZXNzaW9uc01hbmFnZU1vZGUmJnIuc2VsZWN0ZWRTZXNzaW9uSWRzW2UuaWRdPyIgc2VsZWN0ZWQiOiIiLGE9ZnIoZSksdT1zcyhlKSxzPSIiLG89Z3MoInNlc3Npb25zIixlLmlkLCJcdTkwMDlcdTYyRTlcdTRGMUFcdThCREQgIitlLmNvbW1hbmQpO2lmKChlLnByb3ZpZGVyPT09ImNsYXVkZSJ8fGUucHJvdmlkZXI9PT0iY29kZXgiKSYmZS5jbGF1ZGVTZXNzaW9uSWQmJmUuc3RhdHVzIT09InJ1bm5pbmciJiYhci5zZXNzaW9uc01hbmFnZU1vZGUmJiF1ZShlKSl7dmFyIGw9ZS5wcm92aWRlcj09PSJjb2RleCI/Ilx1NjA2Mlx1NTkwRCBDb2RleCBcdTRGMUFcdThCREQiOiJcdTYwNjJcdTU5MEQgQ2xhdWRlIFx1NEYxQVx1OEJERCI7cz0nPGJ1dHRvbiBjbGFzcz0ic2Vzc2lvbi1hY3Rpb24tYnRuIiBkYXRhLWFjdGlvbj0icmVzdW1lIiBkYXRhLXNlc3Npb24taWQ9IicrZS5pZCsnIiB0eXBlPSJidXR0b24iIGFyaWEtbGFiZWw9IicrbCsnIiB0aXRsZT0iJytsKyciPjxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTEgNHY2aDYiLz48cGF0aCBkPSJNMy41MSAxNWE5IDkgMCAxMDUuNjQtMTEuMzZMMyAxMCIvPjwvc3ZnPjwvYnV0dG9uPid9dmFyIGM9IXIuc2Vzc2lvbnNNYW5hZ2VNb2RlJiZlLndvcmt0cmVlRW5hYmxlZCYmZS53b3JrdHJlZSYmZS53b3JrdHJlZS5icmFuY2gmJmUud29ya3RyZWUucGF0aCxmPWUud29ya3RyZWVNZXJnZVN0YXR1cz09PSJtZXJnZWQiJiZlLndvcmt0cmVlTWVyZ2VJbmZvJiZlLndvcmt0cmVlTWVyZ2VJbmZvLmNsZWFudXBEb25lPT09ITEsZD1lLnN0YXR1cz09PSJydW5uaW5nInx8ZS53b3JrdHJlZU1lcmdlU3RhdHVzPT09Im1lcmdpbmciLHY9Zj8iXHU5MUNEXHU4QkQ1XHU2RTA1XHU3NDA2IHdvcmt0cmVlIjoiXHU1NDA4XHU1RTc2XHU1MjMwXHU0RTNCXHU1MjA2XHU2NTJGIixoPWMmJmUud29ya3RyZWVNZXJnZVN0YXR1cyE9PSJtZXJnZWQiPyc8YnV0dG9uIGNsYXNzPSJzZXNzaW9uLWFjdGlvbi1idG4gbWVyZ2UtYnRuIiBkYXRhLWFjdGlvbj0id29ya3RyZWUtbWVyZ2UiIGRhdGEtc2Vzc2lvbi1pZD0iJytlLmlkKyciIHR5cGU9ImJ1dHRvbiIgYXJpYS1sYWJlbD0iJytwKHYpKyciIHRpdGxlPSInK3AodikrJyInKyhkPyIgZGlzYWJsZWQiOiIiKSsnPjxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTcgN2gxMCIvPjxwYXRoIGQ9Ik03IDEyaDEwIi8+PHBhdGggZD0iTTcgMTdoMTAiLz48cGF0aCBkPSJNNSA3bC0yIDIgMiAyIi8+PHBhdGggZD0iTTE5IDE1bDIgMi0yIDIiLz48L3N2Zz48L2J1dHRvbj4nOmY/JzxidXR0b24gY2xhc3M9InNlc3Npb24tYWN0aW9uLWJ0biBtZXJnZS1idG4iIGRhdGEtYWN0aW9uPSJ3b3JrdHJlZS1jbGVhbnVwIiBkYXRhLXNlc3Npb24taWQ9IicrZS5pZCsnIiB0eXBlPSJidXR0b24iIGFyaWEtbGFiZWw9Ilx1OTFDRFx1OEJENVx1NkUwNVx1NzQwNiB3b3JrdHJlZSIgdGl0bGU9Ilx1OTFDRFx1OEJENVx1NkUwNVx1NzQwNiB3b3JrdHJlZSI+PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNMyA2aDE4Ii8+PHBhdGggZD0iTTggNlY0YTIgMiAwIDAxMi0yaDRhMiAyIDAgMDEyIDJ2MiIvPjxwYXRoIGQ9Ik0xOSA2bC0xIDE0YTIgMiAwIDAxLTIgMkg4YTIgMiAwIDAxLTItMkw1IDYiLz48L3N2Zz48L2J1dHRvbj4nOiIiLGc9ci5zZXNzaW9uc01hbmFnZU1vZGU/IiI6JzxidXR0b24gY2xhc3M9InNlc3Npb24tYWN0aW9uLWJ0biBkZWxldGUtYnRuIiBkYXRhLWFjdGlvbj0iZGVsZXRlLXNlc3Npb24iIGRhdGEtc2Vzc2lvbi1pZD0iJytlLmlkKyciIHR5cGU9ImJ1dHRvbiIgYXJpYS1sYWJlbD0iXHU1MjIwXHU5NjY0XHU0RjFBXHU4QkREIiB0aXRsZT0iXHU1MjIwXHU5NjY0XHU2QjY0XHU0RjFBXHU4QkREIj48c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0zIDZoMTgiLz48cGF0aCBkPSJNOCA2VjRhMiAyIDAgMDEyLTJoNGEyIDIgMCAwMTIgMnYyIi8+PHBhdGggZD0iTTE5IDZsLTEgMTRhMiAyIDAgMDEtMiAySDhhMiAyIDAgMDEtMi0yTDUgNiIvPjwvc3ZnPjwvYnV0dG9uPicsbT0nPHNwYW4gY2xhc3M9InNlc3Npb24tYWN0aW9ucyI+JytzK2grZysiPC9zcGFuPiIseT1lLnRpdGxlfHxlLnN1bW1hcnk/JzxkaXYgY2xhc3M9InNlc3Npb24tdGl0bGUiPicrcChlLnRpdGxlfHxlLnN1bW1hcnkpKyI8L2Rpdj4iOic8ZGl2IGNsYXNzPSJzZXNzaW9uLWNvbW1hbmQiPicrcChlLnJlc3VtZWRGcm9tU2Vzc2lvbklkP2UuY29tbWFuZC5yZXBsYWNlKC9ccystLXJlc3VtZVxzK1xTKy8sIiIpLnJlcGxhY2UoL1xzK3Jlc3VtZVxzK1swLTlhLWYtXSsvLCIiKTplLmNvbW1hbmQpKyI8L2Rpdj4iLHc9UmMoZSksRT0iIjtlLnN0YXR1cz09PSJydW5uaW5nIiYmdyYmKEU9JzxkaXYgY2xhc3M9InNlc3Npb24tYWN0aXZpdHkiPicrcCh3KSsiPC9kaXY+Iik7dmFyIEI9ZS5kZXNjcmlwdGlvbj8nPGRpdiBjbGFzcz0ic2Vzc2lvbi1kZXNjcmlwdGlvbiI+JytwKGUuZGVzY3JpcHRpb24pKyI8L2Rpdj4iOiIiLEY9IiI7ZS5zdGF0dXM9PT0icnVubmluZyI/Rj0nPHNwYW4gY2xhc3M9InNlc3Npb24tdGltZSIgdGl0bGU9Ilx1NURGMlx1OEZEMFx1ODg0QyAnK3AodXMoZS5zdGFydGVkQXQpKSsnIj4nK3AodXMoZS5zdGFydGVkQXQpKSsiPC9zcGFuPiI6ZS5lbmRlZEF0P0Y9JzxzcGFuIGNsYXNzPSJzZXNzaW9uLXRpbWUiIHRpdGxlPSInK3AobmV3IERhdGUoZS5lbmRlZEF0KS50b0xvY2FsZVN0cmluZygpKSsnIj4nK3AoYXMoZS5lbmRlZEF0KSkrIjwvc3Bhbj4iOmUuc3RhcnRlZEF0JiYoRj0nPHNwYW4gY2xhc3M9InNlc3Npb24tdGltZSIgdGl0bGU9IicrcChuZXcgRGF0ZShlLnN0YXJ0ZWRBdCkudG9Mb2NhbGVTdHJpbmcoKSkrJyI+JytwKGFzKGUuc3RhcnRlZEF0KSkrIjwvc3Bhbj4iKTt2YXIgeD1vcyhlKSxTPWUuYXV0b1JlY292ZXJlZD8nPHNwYW4gY2xhc3M9InNlc3Npb24tcmVjb3ZlcnktaGludCI+XHU4MUVBXHU1MkE4XHU2MDYyXHU1OTBEPC9zcGFuPic6IiIsXz1yLnNlc3Npb25zTWFuYWdlTW9kZT8iIjonPGRpdiBjbGFzcz0ic2Vzc2lvbi1zd2lwZS1iZyIgYXJpYS1oaWRkZW49InRydWUiPjxidXR0b24gY2xhc3M9InNlc3Npb24tc3dpcGUtZGVsZXRlIiBkYXRhLWFjdGlvbj0ic3dpcGUtZGVsZXRlLXNlc3Npb24iIGRhdGEtc2Vzc2lvbi1pZD0iJytlLmlkKyciIHR5cGU9ImJ1dHRvbiIgdGFiaW5kZXg9Ii0xIiBhcmlhLWxhYmVsPSJcdTUyMjBcdTk2NjRcdTRGMUFcdThCREQiPjxzdmcgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTMgNmgxOCIvPjxwYXRoIGQ9Ik04IDZWNGEyIDIgMCAwMTItMmg0YTIgMiAwIDAxMiAydjIiLz48cGF0aCBkPSJNMTkgNmwtMSAxNGEyIDIgMCAwMS0yIDJIOGEyIDIgMCAwMS0yLTJMNSA2Ii8+PC9zdmc+PHNwYW4+XHU1MjIwXHU5NjY0PC9zcGFuPjwvYnV0dG9uPjwvZGl2Pic7cmV0dXJuJzxkaXYgY2xhc3M9InNlc3Npb24taXRlbScrbitpKyciIGRhdGEtc2Vzc2lvbi1pZD0iJytlLmlkKyciIHJvbGU9ImJ1dHRvbiIgdGFiaW5kZXg9IjAiPicrXysnPGRpdiBjbGFzcz0ic2Vzc2lvbi1pdGVtLWNvbnRlbnQiPjxkaXYgY2xhc3M9InNlc3Npb24taXRlbS1yb3ciPicrbysnPGRpdiBjbGFzcz0ic2Vzc2lvbi1tYWluIj48ZGl2IGNsYXNzPSJzZXNzaW9uLXRpdGxlLXJvdyI+Jyt5K0YrIjwvZGl2PiIrQitFKyc8ZGl2IGNsYXNzPSJzZXNzaW9uLW1ldGEiPjxzcGFuIGNsYXNzPSJzZXNzaW9uLXN0YXR1cyAnK3UrJyI+JytwKGEpKyI8L3NwYW4+Iit4K1MrIjwvZGl2PjwvZGl2PiIrbSsiPC9kaXY+PC9kaXY+PC9kaXY+In1mdW5jdGlvbiBVYyhlKXtpZighZXx8IWUud29ya3RyZWVNZXJnZVN0YXR1cylyZXR1cm4iIjt2YXIgdD17cmVhZHk6Ilx1NTNFRlx1NTQwOFx1NUU3NiIsY2hlY2tpbmc6Ilx1NjhDMFx1NjdFNVx1NEUyRCIsbWVyZ2luZzoiXHU1NDA4XHU1RTc2XHU0RTJEIixtZXJnZWQ6ZS53b3JrdHJlZU1lcmdlSW5mbyYmZS53b3JrdHJlZU1lcmdlSW5mby5jbGVhbnVwRG9uZT09PSExPyJcdTVERjJcdTU0MDhcdTVFNzZcdTVGODVcdTZFMDVcdTc0MDYiOiJcdTVERjJcdTU0MDhcdTVFNzYiLGZhaWxlZDoiXHU1NDA4XHU1RTc2XHU1OTMxXHU4RDI1In07cmV0dXJuIHRbZS53b3JrdHJlZU1lcmdlU3RhdHVzXXx8IiJ9ZnVuY3Rpb24gVmMoZSl7dmFyIHQ9VWMoZSk7cmV0dXJuIHQ/JzxzcGFuIGNsYXNzPSJzZXNzaW9uLWtpbmQtYmFkZ2Ugd29ya3RyZWUtbWVyZ2UgJytwKGUud29ya3RyZWVNZXJnZVN0YXR1c3x8IiIpKyciPicrcCh0KSsiPC9zcGFuPiI6IiJ9ZnVuY3Rpb24gb3MoZSl7aWYoIWV8fCFlLndvcmt0cmVlRW5hYmxlZClyZXR1cm4iIjt2YXIgdD1bXTtlLndvcmt0cmVlJiZlLndvcmt0cmVlLmJyYW5jaCYmdC5wdXNoKCJXb3JrdHJlZTogIitlLndvcmt0cmVlLmJyYW5jaCksZS53b3JrdHJlZSYmZS53b3JrdHJlZS5wYXRoJiZ0LnB1c2goIlBhdGg6ICIrZS53b3JrdHJlZS5wYXRoKTt2YXIgbj10Lmxlbmd0aD4wPycgdGl0bGU9IicrcCh0LmpvaW4oYApgKSkrJyInOiIiO3JldHVybic8c3BhbiBjbGFzcz0ic2Vzc2lvbi1raW5kLWJhZGdlIHdvcmt0cmVlIicrbisiPldvcmt0cmVlPC9zcGFuPiIrVmMoZSl9ZnVuY3Rpb24gQWcoZSl7aWYoIWUpcmV0dXJuIiI7dmFyIHQ9dWUoZSk/JzxzcGFuIGNsYXNzPSJzZXNzaW9uLWtpbmQtYmFkZ2Ugc3RydWN0dXJlZCI+U3RydWN0dXJlZDwvc3Bhbj4nOic8c3BhbiBjbGFzcz0ic2Vzc2lvbi1raW5kLWJhZGdlIHB0eSI+UFRZPC9zcGFuPic7cmV0dXJuIHQrb3MoZSl9ZnVuY3Rpb24gS2MoZSl7dmFyIHQ9W3tpZDoibWFuYWdlZCIsbGFiZWw6Ilx1NjI1OFx1N0JBMSIsZGVzYzoiXHU1MTY4XHU4MUVBXHU1MkE4XHU1QjhDXHU2MjEwXHU0RUZCXHU1MkExIn0se2lkOiJmdWxsLWFjY2VzcyIsbGFiZWw6Ilx1NTE2OFx1Njc0M1x1OTY1MCIsZGVzYzoiXHU4MUVBXHU1MkE4XHU3ODZFXHU4QkE0XHU2NzQzXHU5NjUwIn0se2lkOiJhdXRvLWVkaXQiLGxhYmVsOiJcdTgxRUFcdTUyQThcdTdGMTZcdThGOTEiLGRlc2M6Ilx1ODFFQVx1NTJBOFx1Nzg2RVx1OEJBNFx1NEZFRVx1NjUzOSJ9LHtpZDoiZGVmYXVsdCIsbGFiZWw6Ilx1NjgwN1x1NTFDNiIsZGVzYzoiXHU5MDEwXHU2QjY1XHU3ODZFXHU4QkE0XHU2NENEXHU0RjVDIn0se2lkOiJuYXRpdmUiLGxhYmVsOiJcdTUzOUZcdTc1MUYiLGRlc2M6Ilx1NTM5Rlx1NzUxRlx1N0VEM1x1Njc4NFx1NTMxNlx1OEY5M1x1NTFGQSJ9XTtyZXR1cm4gdC5tYXAoZnVuY3Rpb24obil7dmFyIGk9bi5pZD09PWU/IiBhY3RpdmUiOiIiO3JldHVybic8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9Im1vZGUtY2FyZCcraSsnIiBkYXRhLW1vZGU9Iicrbi5pZCsnIj48c3BhbiBjbGFzcz0ibW9kZS1jYXJkLWxhYmVsIj4nK24ubGFiZWwrJzwvc3Bhbj48c3BhbiBjbGFzcz0ibW9kZS1jYXJkLWRlc2MiPicrbi5kZXNjKyI8L3NwYW4+PC9idXR0b24+In0pLmpvaW4oIiIpfWZ1bmN0aW9uIEpjKGUpe3ZhciB0PVt7aWQ6ImNsYXVkZSIsbGFiZWw6IkNsYXVkZSIsZGVzYzoiXHU1QjhDXHU2NTc0IENsYXVkZSBcdTRGMUFcdThCRERcdTgwRkRcdTUyOUIifSx7aWQ6ImNvZGV4IixsYWJlbDoiQ29kZXgiLGRlc2M6Ilx1N0VEM1x1Njc4NFx1NTMxNiBKU09OTCBcdTYyMTYgUFRZIFx1NEYxQVx1OEJERCJ9XTtyZXR1cm4gdC5tYXAoZnVuY3Rpb24obil7dmFyIGk9bi5pZD09PWU/IiBhY3RpdmUiOiIiO3JldHVybic8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9Im1vZGUtY2FyZCBwcm92aWRlci1jYXJkJytpKyciIGRhdGEtcHJvdmlkZXI9Iicrbi5pZCsnIj48c3BhbiBjbGFzcz0ibW9kZS1jYXJkLWxhYmVsIj4nK24ubGFiZWwrJzwvc3Bhbj48c3BhbiBjbGFzcz0ibW9kZS1jYXJkLWRlc2MiPicrbi5kZXNjKyI8L3NwYW4+PC9idXR0b24+In0pLmpvaW4oIiIpfWZ1bmN0aW9uIEdjKGUpe3ZhciB0PVt7aWQ6InN0cnVjdHVyZWQiLGxhYmVsOiJcdTdFRDNcdTY3ODRcdTUzMTYiLGRlc2M6Ilx1NjY3QVx1ODBGRFx1NUJGOVx1OEJERFx1NkEyMVx1NUYwRiJ9LHtpZDoicHR5IixsYWJlbDoiUFRZIixkZXNjOiJcdTRFQTRcdTRFOTJcdTVGMEZcdTdFQzhcdTdBRUZcdTRGMUFcdThCREQifV07cmV0dXJuIHQubWFwKGZ1bmN0aW9uKG4pe3ZhciBpPW4uaWQ9PT1lPyIgYWN0aXZlIjoiIixhPSIiO3JldHVybic8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9Im1vZGUtY2FyZCBzZXNzaW9uLWtpbmQtY2FyZCcraSthKyciIGRhdGEtc2Vzc2lvbi1raW5kPSInK24uaWQrJyI+PHNwYW4gY2xhc3M9Im1vZGUtY2FyZC1sYWJlbCI+JytuLmxhYmVsKyc8L3NwYW4+PHNwYW4gY2xhc3M9Im1vZGUtY2FyZC1kZXNjIj4nK24uZGVzYysiPC9zcGFuPjwvYnV0dG9uPiJ9KS5qb2luKCIiKX1mdW5jdGlvbiB4ZyhlKXtyZXR1cm4nPGxhYmVsIGNsYXNzPSJzZXNzaW9uLWlubGluZS10b2dnbGUiIGZvcj0ic2Vzc2lvbi13b3JrdHJlZS10b2dnbGUiIHRpdGxlPSJcdTRFM0FcdThCRTVcdTRGMUFcdThCRERcdTUyMUJcdTVFRkFcdTcyRUNcdTdBQ0JcdTc2ODQgZ2l0IHdvcmt0cmVlIFx1NTIwNlx1NjUyRiI+PHN2ZyBjbGFzcz0ic2Vzc2lvbi1pbmxpbmUtdG9nZ2xlLWljb24iIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjEzIiBoZWlnaHQ9IjEzIiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48Y2lyY2xlIGN4PSI2IiBjeT0iNiIgcj0iMi4yIi8+PGNpcmNsZSBjeD0iMTgiIGN5PSI2IiByPSIyLjIiLz48Y2lyY2xlIGN4PSIxMiIgY3k9IjE4IiByPSIyLjIiLz48cGF0aCBkPSJNNiA4LjJ2My40YTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yVjguMiIvPjxwYXRoIGQ9Ik0xMiAxMy42djIuMiIvPjwvc3ZnPjxzcGFuIGNsYXNzPSJzZXNzaW9uLWlubGluZS10b2dnbGUtbGFiZWwiPldvcmt0cmVlIFx1NkEyMVx1NUYwRjwvc3Bhbj48aW5wdXQgaWQ9InNlc3Npb24td29ya3RyZWUtdG9nZ2xlIiB0eXBlPSJjaGVja2JveCIgY2xhc3M9InN3aXRjaC10b2dnbGUiJysoZT8iIGNoZWNrZWQiOiIiKSsnIC8+PHNwYW4gY2xhc3M9InN3aXRjaC1zbGlkZXIiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L3NwYW4+PC9sYWJlbD4nfWZ1bmN0aW9uIGxzKGUpe3ZhciB0PXIuc2Vzc2lvblRvb2x8fCJjbGF1ZGUiO3JldHVybiBlPT09InN0cnVjdHVyZWQiP3Q9PT0iY29kZXgiPyJDb2RleCBKU09OTCBcdTdFRDNcdTY3ODRcdTUzMTZcdTgwNEFcdTU5MjlcdTc1NENcdTk3NjJcdUZGMENcdTY1MkZcdTYzMDFcdTU5MUFcdThGNkVcdTVCRjlcdThCRERcdTU0OENcdTVERTVcdTUxNzdcdThDMDNcdTc1MjhcdTVDNTVcdTc5M0FcdTMwMDIiOiJcdTdFRDNcdTY3ODRcdTUzMTZcdTgwNEFcdTU5MjlcdTc1NENcdTk3NjJcdUZGMENcdTY1MkZcdTYzMDFcdTU5MUFcdThGNkVcdTVCRjlcdThCRERcdTMwMDFcdTZENDFcdTVGMEZcdThGOTNcdTUxRkFcdTU0OENcdTVERTVcdTUxNzdcdThDMDNcdTc1MjhcdTVDNTVcdTc5M0FcdTMwMDIiOnQ9PT0iY29kZXgiPyJDb2RleCBQVFkgXHU3RUM4XHU3QUVGXHU0RjFBXHU4QkREXHVGRjFCdGVybWluYWwgXHU2NjJGXHU1MzlGXHU1OUNCXHU4RjkzXHU1MUZBXHVGRjBDY2hhdCBcdTY2MkZcdTg5RTNcdTY3OTBcdTU0MEVcdTc2ODRcdTk2MDVcdThCRkJcdTg5QzZcdTU2RkVcdTMwMDIiOiJcdTUzOUZcdTU5Q0IgUFRZIFx1N0VDOFx1N0FFRlx1NEYxQVx1OEJERFx1RkYwQ1x1NjUyRlx1NjMwMVx1NjMwMVx1N0VFRFx1NEVBNFx1NEU5Mlx1MzAwMVx1N0VDOFx1N0FFRlx1ODlDNlx1NTZGRVx1NTQ4Q1x1Njc0M1x1OTY1MFx1NkQ0MVx1MzAwMiJ9ZnVuY3Rpb24gWWMoKXt2YXIgZT10dCgpLHQ9SXQoZSxyLm1vZGVWYWx1ZXx8ci5jaGF0TW9kZXx8ImRlZmF1bHQiKSxuPXIuc2Vzc2lvbkNyZWF0ZUtpbmR8fCJzdHJ1Y3R1cmVkIixpPXIuc2Vzc2lvbkNyZWF0ZVdvcmt0cmVlPT09ITA7cmV0dXJuJzxzZWN0aW9uIGlkPSJzZXNzaW9uLW1vZGFsIiBjbGFzcz0ibW9kYWwtYmFja2Ryb3AgaGlkZGVuIj48ZGl2IGNsYXNzPSJtb2RhbCBzZXNzaW9uLW1vZGFsIj48ZGl2IGNsYXNzPSJtb2RhbC1oZWFkZXIiPjxkaXY+PGgyIGNsYXNzPSJtb2RhbC10aXRsZSI+XHU2NUIwXHU1QkY5XHU4QkREPC9oMj48cCBjbGFzcz0ibW9kYWwtc3VidGl0bGUiPlx1NTQyRlx1NTJBOCBDbGF1ZGUgXHU2MjE2IENvZGV4IFx1NEYxQVx1OEJERFx1RkYwQ1x1OTAwOVx1NjJFOSBwcm92aWRlclx1MzAwMVx1NEYxQVx1OEJERFx1N0M3Qlx1NTc4Qlx1MzAwMVx1NkEyMVx1NUYwRlx1NTQ4Q1x1NURFNVx1NEY1Q1x1NzZFRVx1NUY1NVx1MzAwMjwvcD48L2Rpdj48YnV0dG9uIGlkPSJjbG9zZS1tb2RhbC1idXR0b24iIGNsYXNzPSJidG4gYnRuLWdob3N0IGJ0bi1pY29uIG1vZGFsLWNsb3NlLWJ0biIgdHlwZT0iYnV0dG9uIiBhcmlhLWxhYmVsPSJcdTUxNzNcdTk1RUQiPjxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIuNCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PGxpbmUgeDE9IjYiIHkxPSI2IiB4Mj0iMTgiIHkyPSIxOCIvPjxsaW5lIHgxPSIxOCIgeTE9IjYiIHgyPSI2IiB5Mj0iMTgiLz48L3N2Zz48L2J1dHRvbj48L2Rpdj48ZGl2IGNsYXNzPSJtb2RhbC1ib2R5Ij48ZGl2IGNsYXNzPSJmaWVsZCI+PGxhYmVsIGNsYXNzPSJmaWVsZC1sYWJlbCI+UHJvdmlkZXI8L2xhYmVsPjxkaXYgaWQ9InByb3ZpZGVyLWNhcmRzIiBjbGFzcz0ibW9kZS1jYXJkcyI+JytKYyhlKSsnPC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iZmllbGQiPjxsYWJlbCBjbGFzcz0iZmllbGQtbGFiZWwiPlx1NEYxQVx1OEJERFx1N0M3Qlx1NTc4QjwvbGFiZWw+PGRpdiBpZD0ic2Vzc2lvbi1raW5kLWNhcmRzIiBjbGFzcz0ibW9kZS1jYXJkcyI+JytHYyhuKSsnPC9kaXY+PGRpdiBjbGFzcz0iZmllbGQtaGludCBzZXNzaW9uLWtpbmQtaGludC1yb3ciPjxzcGFuIGlkPSJzZXNzaW9uLWtpbmQtZGVzY3JpcHRpb24iPicrcChscyhuKSkrJzwvc3Bhbj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJmaWVsZCI+PGxhYmVsIGNsYXNzPSJmaWVsZC1sYWJlbCIgZm9yPSJjd2QiPlx1NURFNVx1NEY1Q1x1NzZFRVx1NUY1NTwvbGFiZWw+PGRpdiBjbGFzcz0ic3VnZ2VzdGlvbnMtd3JhcCI+PGlucHV0IGlkPSJjd2QiIHR5cGU9InRleHQiIGNsYXNzPSJmaWVsZC1pbnB1dCIgYXV0b2NvbXBsZXRlPSJvZmYiIHBsYWNlaG9sZGVyPSInK3AoZXQoKSkrJyIgLz48ZGl2IGlkPSJjd2Qtc3VnZ2VzdGlvbnMiIGNsYXNzPSJzdWdnZXN0aW9ucyBoaWRkZW4iPjwvZGl2PjwvZGl2PjxwIGNsYXNzPSJmaWVsZC1oaW50Ij5cdTUyMUJcdTVFRkFcdTUyNERcdTUxNDhcdTc4NkVcdThCQTRcdTc2RUVcdTVGNTVcdUZGMUJcdTc1NTlcdTdBN0FcdTUyMTlcdTRGN0ZcdTc1MjhcdTRFMEFcdTY1QjlcdTc2RUVcdTVGNTVcdUZGMENcdTY1MkZcdTYzMDFcdThERUZcdTVGODRcdTgxRUFcdTUyQThcdTg4NjVcdTUxNjhcdTMwMDI8L3A+PGRpdiBpZD0icmVjZW50LXBhdGhzLWJ1YmJsZXMiIGNsYXNzPSJyZWNlbnQtcGF0aHMtYnViYmxlcyI+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iZmllbGQiPjxsYWJlbCBjbGFzcz0iZmllbGQtbGFiZWwiPlx1NkEyMVx1NUYwRjwvbGFiZWw+PGRpdiBpZD0ibW9kZS1jYXJkcyIgY2xhc3M9Im1vZGUtY2FyZHMiPicrS2ModCkrJzwvZGl2PjxwIGlkPSJtb2RlLWRlc2NyaXB0aW9uIiBjbGFzcz0iZmllbGQtaGludCI+JytwKHRsKGUsdCkpKyc8L3A+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ibW9kYWwtZm9vdGVyIj48YnV0dG9uIGlkPSJydW4tYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1wcmltYXJ5IGJ0bi1ibG9jayI+XHU1NDJGXHU1MkE4XHU0RjFBXHU4QkREPC9idXR0b24+PHAgaWQ9Im1vZGFsLWVycm9yIiBjbGFzcz0iZXJyb3ItbWVzc2FnZSBoaWRkZW4iPjwvcD48L2Rpdj48L2Rpdj48L3NlY3Rpb24+J31mdW5jdGlvbiBjcygpe3ZhciBlPURhdGUubm93KCktODY0ZTUsdD1bXTtyZXR1cm4gci5zZXNzaW9ucy5mb3JFYWNoKGZ1bmN0aW9uKG4pe2lmKCFuLmFyY2hpdmVkKXt2YXIgaT1uLnN0YXJ0ZWRBdD9uZXcgRGF0ZShuLnN0YXJ0ZWRBdCkuZ2V0VGltZSgpOjA7dC5wdXNoKHtraW5kOiJzZXNzaW9uIixyZWY6bix0OmlzRmluaXRlKGkpP2k6MH0pfX0pLHIuY2xhdWRlSGlzdG9yeUxvYWRlZCYmUm4oKS5mb3JFYWNoKGZ1bmN0aW9uKG4pe2lmKG4udGltZXN0YW1wKXt2YXIgaT1uZXcgRGF0ZShuLnRpbWVzdGFtcCkuZ2V0VGltZSgpOyFpc0Zpbml0ZShpKXx8aTw9ZXx8dC5wdXNoKHtraW5kOiJoaXN0b3J5IixyZWY6bix0Oml9KX19KSx0LnNvcnQoZnVuY3Rpb24obixpKXtyZXR1cm4gaS50LW4udH0pLHR9ZnVuY3Rpb24gUWMoKXt2YXIgZT1yLnNlc3Npb25zLmZpbHRlcihmdW5jdGlvbihhKXtyZXR1cm4gYS5hcmNoaXZlZH0pLHQ9W107dC5wdXNoKGRzKCkpO3ZhciBuPWNzKCksaT1uZCgpO3JldHVybiBuLmxlbmd0aD4wJiZ0LnB1c2goZWQobikpLGUubGVuZ3RoPjAmJnQucHVzaChaYyhlKSksbi5sZW5ndGg9PT0wJiZlLmxlbmd0aD09PTAmJiFpP2RzKCkrJzxkaXYgY2xhc3M9ImVtcHR5LXN0YXRlIj48c3Ryb25nPlx1OEZEOFx1NkNBMVx1NjcwOVx1NEYxQVx1OEJERFx1OEJCMFx1NUY1NTwvc3Ryb25nPjxicj5cdTcwQjlcdTUxRkJcdTRFMEFcdTY1QjlcdTMwMENcdTY1QjBcdTVCRjlcdThCRERcdTMwMERcdTVGMDBcdTU5Q0JcdTRGNjBcdTc2ODRcdTdCMkNcdTRFMDBcdTZCMjFcdTVCRjlcdThCRERcdTMwMDI8L2Rpdj4nOihpJiZ0LnB1c2goaSksdC5qb2luKCIiKSl9ZnVuY3Rpb24gJGMoKXtyZXR1cm4hIXIuc2lkZWJhclBpbm5lZCYmISFyLnNpZGViYXJDb2xsYXBzZWR9ZnVuY3Rpb24gWGMoKXt2YXIgZT1jcygpLHQ9ZS5tYXAoZnVuY3Rpb24oaSxhKXt2YXIgdT1hKzE7aWYoaS5raW5kPT09InNlc3Npb24iKXt2YXIgcz1pLnJlZixvPXMuaWQ9PT1yLnNlbGVjdGVkSWQ/IiBhY3RpdmUiOiIiLGw9cy50aXRsZXx8cy5kZXNjcmlwdGlvbnx8cy5zdW1tYXJ5fHxzLmNvbW1hbmR8fCJcdTRGMUFcdThCREQgIit1O3JldHVybic8YnV0dG9uIGNsYXNzPSJzaWRlYmFyLWNvbGxhcHNlZC10aWxlJytvKyciIHR5cGU9ImJ1dHRvbiIgZGF0YS1jb2xsYXBzZWQtc2Vzc2lvbi1pZD0iJytwKHMuaWQpKyciIHRpdGxlPSInK3AobCkrJyI+Jyt1KyI8L2J1dHRvbj4ifXZhciBjPWkucmVmLGY9Yy5maXJzdFVzZXJNZXNzYWdlfHwiKFx1N0E3QVx1NEYxQVx1OEJERCkiLGQ9ZisiIFx4QjcgIitocyhjLnRpbWVzdGFtcCk7cmV0dXJuJzxidXR0b24gY2xhc3M9InNpZGViYXItY29sbGFwc2VkLXRpbGUgaGlzdG9yeSIgdHlwZT0iYnV0dG9uIiBkYXRhLWNvbGxhcHNlZC1oaXN0b3J5LWlkPSInK3AoYy5jbGF1ZGVTZXNzaW9uSWQpKyciIGRhdGEtY3dkPSInK3AoYy5jd2R8fCIiKSsnIiB0aXRsZT0iJytwKGQpKyciPicrdSsiPC9idXR0b24+In0pLmpvaW4oIiIpLG49JzxidXR0b24gY2xhc3M9InNpZGViYXItY29sbGFwc2VkLXRpbGUgYWRkIiB0eXBlPSJidXR0b24iIGRhdGEtY29sbGFwc2VkLW5ldy1zZXNzaW9uPSIxIiB0aXRsZT0iXHU2NUIwXHU1RUZBXHU0RjFBXHU4QkREIiBhcmlhLWxhYmVsPSJcdTY1QjBcdTVFRkFcdTRGMUFcdThCREQiPjxzdmcgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIuNiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PGxpbmUgeDE9IjEyIiB5MT0iNSIgeDI9IjEyIiB5Mj0iMTkiLz48bGluZSB4MT0iNSIgeTE9IjEyIiB4Mj0iMTkiIHkyPSIxMiIvPjwvc3ZnPjwvYnV0dG9uPic7cmV0dXJuJzxkaXYgY2xhc3M9InNpZGViYXItY29sbGFwc2VkLXRpbGVzIj4nK3QrbisiPC9kaXY+In1mdW5jdGlvbiByYSgpe3JldHVybiAkYygpP1hjKCk6UWMoKX1mdW5jdGlvbiBkcygpe2lmKCFyLnNlc3Npb25zTWFuYWdlTW9kZSlyZXR1cm4nPGRpdiBjbGFzcz0ic2Vzc2lvbi1tYW5hZ2UtYmFyIj48c3BhbiBjbGFzcz0ic2lkZWJhci1pbnRybyI+XHU2NzAwXHU4RkQxXHU3Njg0XHU0RjFBXHU4QkREXHU4QkIwXHU1RjU1PC9zcGFuPjxidXR0b24gY2xhc3M9ImJ0biBidG4tZ2hvc3QgYnRuLXhzIHNlc3Npb24tbWFuYWdlLXRvZ2dsZSIgZGF0YS1hY3Rpb249InRvZ2dsZS1tYW5hZ2UtbW9kZSIgdHlwZT0iYnV0dG9uIj48c3ZnIHdpZHRoPSIxMSIgaGVpZ2h0PSIxMSIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyLjQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxwYXRoIGQ9Ik05IDExbDMgM0wyMiA0Ii8+PHBhdGggZD0iTTIxIDEydjdhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDExIi8+PC9zdmc+PHNwYW4+XHU3QkExXHU3NDA2PC9zcGFuPjwvYnV0dG9uPjwvZGl2Pic7dmFyIGU9ZnMoKS5sZW5ndGgsdD1wcygpLmxlbmd0aCxuPWUrdCxpPW4+MCxhPWFkKCksdT1hPjAmJm4+PWEscz11PyJcdTUzRDZcdTZEODhcdTUxNjhcdTkwMDkiOiJcdTUxNjhcdTkwMDkiLG89dT8iY2xlYXItc2VsZWN0aW9uIjoic2VsZWN0LWFsbC12aXNpYmxlIixsPWE9PT0wPyIgZGlzYWJsZWQiOiIiLGM9JzxidXR0b24gY2xhc3M9InNlc3Npb24tbWFuYWdlLWV4aXQiIGRhdGEtYWN0aW9uPSJ0b2dnbGUtbWFuYWdlLW1vZGUiIHR5cGU9ImJ1dHRvbiIgYXJpYS1sYWJlbD0iXHU5MDAwXHU1MUZBXHU3QkExXHU3NDA2XHU2QTIxXHU1RjBGIiB0aXRsZT0iXHU5MDAwXHU1MUZBXHU3QkExXHU3NDA2XHU2QTIxXHU1RjBGIj48c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyLjQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxsaW5lIHgxPSI2IiB5MT0iNiIgeDI9IjE4IiB5Mj0iMTgiLz48bGluZSB4MT0iMTgiIHkxPSI2IiB4Mj0iNiIgeTI9IjE4Ii8+PC9zdmc+PC9idXR0b24+JyxmPWk/JzxzcGFuIGNsYXNzPSJzZXNzaW9uLW1hbmFnZS1jb3VudCI+JytuKyc8L3NwYW4+PHNwYW4gY2xhc3M9InNlc3Npb24tbWFuYWdlLXN1bW1hcnktbGFiZWwiPlx1NURGMlx1OTAwOVx1NjJFOTwvc3Bhbj4nOic8c3BhbiBjbGFzcz0ic2Vzc2lvbi1tYW5hZ2Utc3VtbWFyeS1sYWJlbCBtdXRlZCI+XHU5MDA5XHU2MkU5XHU4OTgxXHU3QkExXHU3NDA2XHU3Njg0XHU5ODc5XHU3NkVFPC9zcGFuPic7cmV0dXJuJzxkaXYgY2xhc3M9InNlc3Npb24tbWFuYWdlLWJhciBhY3RpdmUiPicrYysnPGRpdiBjbGFzcz0ic2Vzc2lvbi1tYW5hZ2Utc3VtbWFyeSI+JytmKyc8L2Rpdj48ZGl2IGNsYXNzPSJzZXNzaW9uLW1hbmFnZS1hY3Rpb25zIj48YnV0dG9uIGNsYXNzPSJidG4gYnRuLWdob3N0IGJ0bi14cyIgZGF0YS1hY3Rpb249IicrbysnIiB0eXBlPSJidXR0b24iJytsKyI+IitzKyc8L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJidG4gYnRuLWRhbmdlciBidG4teHMiIGRhdGEtYWN0aW9uPSJkZWxldGUtc2VsZWN0ZWQiIHR5cGU9ImJ1dHRvbiInKyhpPyIiOiIgZGlzYWJsZWQiKSsiPlx1NTIyMFx1OTY2NCIrKGk/IiAiK246IiIpKyI8L2J1dHRvbj48L2Rpdj48L2Rpdj4ifWZ1bmN0aW9uIFNnKGUsdCxuKXtyZXR1cm4nPHNlY3Rpb24gY2xhc3M9InNlc3Npb24tZ3JvdXAiPjxkaXYgY2xhc3M9InNlc3Npb24tZ3JvdXAtdGl0bGUiPicrcChlKSsiPC9kaXY+Iit0Lm1hcChmdW5jdGlvbihpKXtyZXR1cm4gbmEoaSxuKX0pLmpvaW4oIiIpKyI8L3NlY3Rpb24+In1mdW5jdGlvbiBaYyhlKXt2YXIgdD0hIXIuYXJjaGl2ZWRFeHBhbmRlZCxuPXQ/IiYjOTY2MjsiOiImIzk2NTY7IixpPSc8ZGl2IGNsYXNzPSJzZXNzaW9uLWdyb3VwLXRpdGxlIGNsYXVkZS1oaXN0b3J5LXRvZ2dsZSIgZGF0YS1hY3Rpb249InRvZ2dsZS1hcmNoaXZlZC1ncm91cCI+PHNwYW4gY2xhc3M9ImNoZXZyb24iPicrbisnPC9zcGFuPiBcdTVERjJcdTVGNTJcdTY4NjMgPHNwYW4gY2xhc3M9Imhpc3RvcnktY291bnQiPicrZS5sZW5ndGgrIjwvc3Bhbj48L2Rpdj4iO2lmKCF0KXJldHVybic8c2VjdGlvbiBjbGFzcz0ic2Vzc2lvbi1ncm91cCI+JytpKyI8L3NlY3Rpb24+Ijt2YXIgYT1lLm1hcChmdW5jdGlvbih1KXtyZXR1cm4gbmEodSwic2Vzc2lvbnMiKX0pLmpvaW4oIiIpO3JldHVybic8c2VjdGlvbiBjbGFzcz0ic2Vzc2lvbi1ncm91cCI+JytpK2ErIjwvc2VjdGlvbj4ifWZ1bmN0aW9uIGVkKGUpe3ZhciB0PSc8c2VjdGlvbiBjbGFzcz0ic2Vzc2lvbi1ncm91cCBzZXNzaW9uLWdyb3VwLS1yZWNlbnQiPic7cmV0dXJuIHQrPWUubWFwKGZ1bmN0aW9uKG4pe3JldHVybiBuLmtpbmQ9PT0ic2Vzc2lvbiI/bmEobi5yZWYsInNlc3Npb25zIik6aWEobi5yZWYsImhpc3RvcnkiKX0pLmpvaW4oIiIpLHQrPSI8L3NlY3Rpb24+Iix0fWZ1bmN0aW9uIHRkKCl7dmFyIGU9RGF0ZS5ub3coKS04NjRlNTtyZXR1cm4gUm4oKS5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIXQudGltZXN0YW1wfHxuZXcgRGF0ZSh0LnRpbWVzdGFtcCkuZ2V0VGltZSgpPD1lfSl9ZnVuY3Rpb24gbmQoKXt2YXIgZT10ZCgpLHQ9ISFyLmNsYXVkZUhpc3RvcnlMb2FkZWQsbj12ZCgpLGk9ISFyLmNvZGV4SGlzdG9yeUxvYWRlZCxhPXQmJmksdT0odD9lLmxlbmd0aDowKSsoaT9uLmxlbmd0aDowKTtpZihhJiZ1PT09MClyZXR1cm4iIjt2YXIgcz0hIXIuY2xhdWRlSGlzdG9yeUV4cGFuZGVkLG89cz8iJiM5NjYyOyI6IiYjOTY1NjsiLGw9YT91Pjk5OT8iOTk5KyI6U3RyaW5nKHUpOiJceEI3XHhCN1x4QjciLGM9JzxkaXYgY2xhc3M9InNlc3Npb24tZ3JvdXAtdGl0bGUgY2xhdWRlLWhpc3RvcnktdG9nZ2xlIHNlc3Npb24taGlzdG9yeS10b2dnbGUiIGlkPSJjbGF1ZGUtaGlzdG9yeS10b2dnbGUiIHJvbGU9ImJ1dHRvbiIgdGFiaW5kZXg9IjAiIGFyaWEtZXhwYW5kZWQ9IicrcysnIiB0aXRsZT0iJysocz8iXHU2NTM2XHU4RDc3XHU1Mzg2XHU1M0YyXHU0RjFBXHU4QkREIjoiXHU1QzU1XHU1RjAwXHU1Mzg2XHU1M0YyXHU0RjFBXHU4QkREIikrJyI+PHNwYW4gY2xhc3M9ImNoZXZyb24iPicrbysnPC9zcGFuPiBcdTUzODZcdTUzRjJcdTRGMUFcdThCREQgPHNwYW4gY2xhc3M9Imhpc3RvcnktY291bnQnKyhhPyIiOiIgbG9hZGluZyIpKyciPicrbCsiPC9zcGFuPjwvZGl2PiIsZj1zPyc8ZGl2IGNsYXNzPSJzZXNzaW9uLWhpc3RvcnktYm9keSI+JytyZChlKStjZChuKSsiPC9kaXY+IjoiIjtyZXR1cm4nPHNlY3Rpb24gY2xhc3M9InNlc3Npb24tZ3JvdXAgc2Vzc2lvbi1ncm91cC0taGlzdG9yeSI+JytjK2YrIjwvc2VjdGlvbj4ifWZ1bmN0aW9uIHJkKGUpe2lmKCFyLmNsYXVkZUhpc3RvcnlMb2FkZWQpcmV0dXJuJzxkaXYgY2xhc3M9ImNsYXVkZS1oaXN0b3J5LWxvYWRpbmciPlx1NjI2Qlx1NjNDRlx1NTM4Nlx1NTNGMlx1NEYxQVx1OEJERFx1NEUyRFx1MjAyNjwvZGl2Pic7aWYoZS5sZW5ndGg9PT0wKXJldHVybiIiO3ZhciB0PXt9LG49W107ZS5mb3JFYWNoKGZ1bmN0aW9uKHUpe3RbdS5jd2RdfHwodFt1LmN3ZF09W10sbi5wdXNoKHUuY3dkKSksdFt1LmN3ZF0ucHVzaCh1KX0pO3ZhciBpPSc8ZGl2IGNsYXNzPSJzaWRlYmFyLWhpc3RvcnktdG9vbGJhciI+PGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1naG9zdCBidG4teHMgc2lkZWJhci1oaXN0b3J5LWNsZWFyIiBkYXRhLWFjdGlvbj0iY2xlYXItYWxsLWhpc3RvcnkiIHR5cGU9ImJ1dHRvbiI+XHU2RTA1XHU3QTdBXHU1MTY4XHU5MEU4PC9idXR0b24+PC9kaXY+JyxhPSIiO3JldHVybiBuLmZvckVhY2goZnVuY3Rpb24odSl7dmFyIHM9dS5zcGxpdCgiLyIpLmZpbHRlcihCb29sZWFuKS5zbGljZSgtMykuam9pbigiLyIpLG89ISFyLmNsYXVkZUhpc3RvcnlFeHBhbmRlZERpcnNbdV07YSs9ZGQodSxzLHRbdV0ubGVuZ3RoLG8pLG8mJihhKz10W3VdLm1hcChmdW5jdGlvbihsKXtyZXR1cm4gaWEobCwiaGlzdG9yeSIpfSkuam9pbigiIikpfSksaSsnPGRpdiBjbGFzcz0ic2lkZWJhci1oaXN0b3J5LXNjcm9sbCI+JythKyI8L2Rpdj4ifWZ1bmN0aW9uIFJuKCl7dmFyIGU9bmV3IFNldDtyZXR1cm4gci5zZXNzaW9ucy5mb3JFYWNoKGZ1bmN0aW9uKHQpe3QuY2xhdWRlU2Vzc2lvbklkJiZlLmFkZCh0LmNsYXVkZVNlc3Npb25JZCl9KSxyLmNsYXVkZUhpc3RvcnkuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiB0Lmhhc0NvbnZlcnNhdGlvbiYmIXQubWFuYWdlZEJ5V2FuZCYmIWUuaGFzKHQuY2xhdWRlU2Vzc2lvbklkKX0pfWZ1bmN0aW9uIGZzKCl7cmV0dXJuIE9iamVjdC5rZXlzKHIuc2VsZWN0ZWRTZXNzaW9uSWRzKS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuISFyLnNlbGVjdGVkU2Vzc2lvbklkc1tlXX0pfWZ1bmN0aW9uIHBzKCl7cmV0dXJuIE9iamVjdC5rZXlzKHIuc2VsZWN0ZWRDbGF1ZGVIaXN0b3J5SWRzKS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuISFyLnNlbGVjdGVkQ2xhdWRlSGlzdG9yeUlkc1tlXX0pfWZ1bmN0aW9uIGVpKCl7ci5zZWxlY3RlZFNlc3Npb25JZHM9e30sci5zZWxlY3RlZENsYXVkZUhpc3RvcnlJZHM9e319ZnVuY3Rpb24gaWQoZSl7ci5zZXNzaW9uc01hbmFnZU1vZGU9dHlwZW9mIGU9PSJib29sZWFuIj9lOiFyLnNlc3Npb25zTWFuYWdlTW9kZSxyLnNlc3Npb25zTWFuYWdlTW9kZSYmIXIuY2xhdWRlSGlzdG9yeUxvYWRlZCYmdGkoKS50aGVuKG1lKSxyLnNlc3Npb25zTWFuYWdlTW9kZXx8KGVpKCksU3IoKSksbWUoKX1mdW5jdGlvbiB2cygpe3JldHVybiByLnNlc3Npb25zLnNsaWNlKCl9ZnVuY3Rpb24gYWQoKXtyZXR1cm4gdnMoKS5sZW5ndGgrUm4oKS5sZW5ndGh9ZnVuY3Rpb24gbXMoKXtpZighci5jbGF1ZGVIaXN0b3J5TG9hZGVkKXt0aSgpLnRoZW4obXMpO3JldHVybn1yLmNsYXVkZUhpc3RvcnlFeHBhbmRlZD0hMDt2YXIgZT17fTt2cygpLmZvckVhY2goZnVuY3Rpb24obil7ZVtuLmlkXT0hMH0pO3ZhciB0PXt9O1JuKCkuZm9yRWFjaChmdW5jdGlvbihuKXt0W24uY2xhdWRlU2Vzc2lvbklkXT0hMH0pLHIuc2VsZWN0ZWRTZXNzaW9uSWRzPWUsci5zZWxlY3RlZENsYXVkZUhpc3RvcnlJZHM9dCxtZSgpfWZ1bmN0aW9uIHVkKCl7ZWkoKSxtZSgpfWZ1bmN0aW9uIHByKGUsdCl7aWYoISghci5zZXNzaW9uc01hbmFnZU1vZGV8fCF0KSl7dmFyIG49ZT09PSJoaXN0b3J5Ij9yLnNlbGVjdGVkQ2xhdWRlSGlzdG9yeUlkczpyLnNlbGVjdGVkU2Vzc2lvbklkcztuW3RdP2RlbGV0ZSBuW3RdOm5bdF09ITAsbWUoKX19ZnVuY3Rpb24gZ3MoZSx0LG4pe2lmKCFyLnNlc3Npb25zTWFuYWdlTW9kZSlyZXR1cm4iIjt2YXIgaT1lPT09Imhpc3RvcnkiPyEhci5zZWxlY3RlZENsYXVkZUhpc3RvcnlJZHNbdF06ISFyLnNlbGVjdGVkU2Vzc2lvbklkc1t0XTtyZXR1cm4nPGxhYmVsIGNsYXNzPSJzZXNzaW9uLW1hbmFnZS1jaGVjayI+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBkYXRhLWFjdGlvbj0idG9nZ2xlLXNlbGVjdGlvbiIgZGF0YS1raW5kPSInK3AoZSkrJyIgZGF0YS1pZD0iJytwKHQpKyciJysoaT8iIGNoZWNrZWQiOiIiKSsnIGFyaWEtbGFiZWw9IicrcChuKSsnIj48c3Bhbj48L3NwYW4+PC9sYWJlbD4nfWZ1bmN0aW9uIHhuKGUsdCl7cmV0dXJuIHR5cGVvZiB3aW5kb3cud2FuZENvbmZpcm09PSJmdW5jdGlvbiI/d2luZG93LndhbmRDb25maXJtKGUsT2JqZWN0LmFzc2lnbih7dHlwZToiZGFuZ2VyIixkYW5nZXI6ITAsb2tMYWJlbDoiXHU1MjIwXHU5NjY0In0sdHx8e30pKTpQcm9taXNlLnJlc29sdmUod2luZG93LmNvbmZpcm0oZSkpfWZ1bmN0aW9uIHNkKCl7dmFyIGU9ZnMoKSx0PXBzKCksbj1lLmxlbmd0aCt0Lmxlbmd0aDtuJiZ4bigiXHU3ODZFXHU4QkE0XHU1MjIwXHU5NjY0XHU2MjQwXHU5MDA5ICIrbisiIFx1OTg3OVx1NTQxN1x1RkYxRlx1NkI2NFx1NjRDRFx1NEY1Q1x1NjVFMFx1NkNENVx1NjRBNFx1OTUwMFx1MzAwMiIse3RpdGxlOiJcdTUyMjBcdTk2NjRcdTYyNDBcdTkwMDkgIituKyIgXHU5ODc5In0pLnRoZW4oZnVuY3Rpb24oaSl7aWYoaSl7dmFyIGE9W107ZS5sZW5ndGg+MCYmYS5wdXNoKGZldGNoKCIvYXBpL3Nlc3Npb25zL2JhdGNoLWRlbGV0ZSIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkoe3Nlc3Npb25JZHM6ZX0pfSkudGhlbihmdW5jdGlvbih1KXtyZXR1cm4gdS5qc29uKCl9KSksdC5sZW5ndGg+MCYmYS5wdXNoKGZldGNoKCIvYXBpL2NsYXVkZS1oaXN0b3J5L2JhdGNoLWRlbGV0ZSIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkoe2NsYXVkZVNlc3Npb25JZHM6dH0pfSkudGhlbihmdW5jdGlvbih1KXtyZXR1cm4gdS5qc29uKCl9KSksUHJvbWlzZS5hbGwoYSkudGhlbihmdW5jdGlvbigpe3JldHVybiBlLmluZGV4T2Yoci5zZWxlY3RlZElkKSE9PS0xJiYoci5zZWxlY3RlZElkPW51bGwsd2UoKSksci5jbGF1ZGVIaXN0b3J5PXIuY2xhdWRlSGlzdG9yeS5maWx0ZXIoZnVuY3Rpb24odSl7cmV0dXJuIHQuaW5kZXhPZih1LmNsYXVkZVNlc3Npb25JZCk9PT0tMX0pLGVpKCksUnQoKX0pLmNhdGNoKGZ1bmN0aW9uKCl7dmFyIHU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFjdGlvbi1lcnJvciIpO1BlKHUsIlx1NjVFMFx1NkNENVx1NjI3OVx1OTFDRlx1NTIyMFx1OTY2NFx1NjI0MFx1OTAwOVx1OTg3OVx1NzZFRVx1MzAwMiIpfSl9fSl9ZnVuY3Rpb24gb2QoKXt2YXIgZT1EYXRlLm5vdygpLTg2NGU1LHQ9Um4oKS5maWx0ZXIoZnVuY3Rpb24obil7cmV0dXJuIW4udGltZXN0YW1wfHxuZXcgRGF0ZShuLnRpbWVzdGFtcCkuZ2V0VGltZSgpPD1lfSk7aWYodC5sZW5ndGgpcmV0dXJuIHhuKCJcdTc4NkVcdThCQTRcdTZFMDVcdTdBN0FcdTVGNTNcdTUyNERcdTY2M0VcdTc5M0FcdTc2ODQgIit0Lmxlbmd0aCsiIFx1Njc2MSBDbGF1ZGUgXHU1Mzg2XHU1M0YyXHU1NDE3XHVGRjFGIix7dGl0bGU6Ilx1NkUwNVx1N0E3QSBDbGF1ZGUgXHU1Mzg2XHU1M0YyIixva0xhYmVsOiJcdTZFMDVcdTdBN0EifSkudGhlbihmdW5jdGlvbihuKXtpZihuKXt2YXIgaT10Lm1hcChmdW5jdGlvbihhKXtyZXR1cm4gYS5jbGF1ZGVTZXNzaW9uSWR9KTtyZXR1cm4gZmV0Y2goIi9hcGkvY2xhdWRlLWhpc3RvcnkvYmF0Y2gtZGVsZXRlIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeSh7Y2xhdWRlU2Vzc2lvbklkczppfSl9KS50aGVuKGZ1bmN0aW9uKGEpe3JldHVybiBhLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24oYSl7aWYoYSYmYS5lcnJvcil0aHJvdyBuZXcgRXJyb3IoYS5lcnJvcik7ci5jbGF1ZGVIaXN0b3J5PXIuY2xhdWRlSGlzdG9yeS5maWx0ZXIoZnVuY3Rpb24odSl7cmV0dXJuIGkuaW5kZXhPZih1LmNsYXVkZVNlc3Npb25JZCk9PT0tMX0pLGVpKCksbWUoKX0pLmNhdGNoKGZ1bmN0aW9uKCl7dmFyIGE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFjdGlvbi1lcnJvciIpO1BlKGEsIlx1NjVFMFx1NkNENVx1NkUwNVx1N0E3QVx1NTM4Nlx1NTNGMlx1NEYxQVx1OEJERFx1MzAwMiIpfSl9fSl9ZnVuY3Rpb24gbGQoZSx0LG4saSl7dmFyIGE9aT8iXHUyNUJFIjoiXHUyNUI4IjtyZXR1cm4nPGRpdiBjbGFzcz0iY2xhdWRlLWhpc3RvcnktZGlyZWN0b3J5LWhlYWRlciBjb2RleC1oaXN0b3J5LWRpcmVjdG9yeS1oZWFkZXIiIGRhdGEtYWN0aW9uPSJ0b2dnbGUtY29kZXgtaGlzdG9yeS1kaXJlY3RvcnkiIGRhdGEtY3dkPSInK3AoZSkrJyIgcm9sZT0iYnV0dG9uIiB0YWJpbmRleD0iMCI+PGRpdiBjbGFzcz0ic2Vzc2lvbi1ncm91cC10aXRsZSBjbGF1ZGUtaGlzdG9yeS1kaXJlY3RvcnktdGl0bGUiPjxzcGFuIGNsYXNzPSJjaGV2cm9uIj4nK2ErJzwvc3Bhbj48c3BhbiBjbGFzcz0iY2xhdWRlLWhpc3RvcnktZGlyZWN0b3J5LWxhYmVsIj4nK2x0KGUsImNsYXVkZS1oaXN0b3J5LWRpcmVjdG9yeS1sYWJlbC1wYXRoIikrJzxzcGFuIGNsYXNzPSJjbGF1ZGUtaGlzdG9yeS1kaXJlY3RvcnktY291bnQiPignK24rIik8L3NwYW4+PC9zcGFuPjwvZGl2PjwvZGl2PiJ9ZnVuY3Rpb24gY2QoZSl7aWYoIXIuY29kZXhIaXN0b3J5TG9hZGVkKXJldHVybic8ZGl2IGNsYXNzPSJjbGF1ZGUtaGlzdG9yeS1sb2FkaW5nIj5cdTYyNkJcdTYzQ0YgQ29kZXggXHU1Mzg2XHU1M0YyXHU0RjFBXHU4QkREXHU0RTJEXHUyMDI2PC9kaXY+JztpZihlLmxlbmd0aD09PTApcmV0dXJuIiI7dmFyIHQ9e30sbj1bXTtlLmZvckVhY2goZnVuY3Rpb24oYSl7dFthLmN3ZF18fCh0W2EuY3dkXT1bXSxuLnB1c2goYS5jd2QpKSx0W2EuY3dkXS5wdXNoKGEpfSk7dmFyIGk9JzxkaXYgY2xhc3M9InNpZGViYXItaGlzdG9yeS1zZWN0aW9uLWxhYmVsIj5Db2RleDwvZGl2Pic7cmV0dXJuIG4uZm9yRWFjaChmdW5jdGlvbihhKXt2YXIgdT1hLnNwbGl0KCIvIikuZmlsdGVyKEJvb2xlYW4pLnNsaWNlKC0zKS5qb2luKCIvIikscz0hIXIuY29kZXhIaXN0b3J5RXhwYW5kZWREaXJzW2FdO2krPWxkKGEsdSx0W2FdLmxlbmd0aCxzKSxzJiYoaSs9dFthXS5tYXAoZnVuY3Rpb24obyl7cmV0dXJuIGlhKG8sImNvZGV4Iil9KS5qb2luKCIiKSl9KSwnPGRpdiBjbGFzcz0ic2lkZWJhci1oaXN0b3J5LXNjcm9sbCBjb2RleC1oaXN0b3J5LXNjcm9sbCI+JytpKyI8L2Rpdj4ifWZ1bmN0aW9uIGRkKGUsdCxuLGkpe3ZhciBhPWk/IiYjOTY2MjsiOiImIzk2NTY7IjtyZXR1cm4nPGRpdiBjbGFzcz0iY2xhdWRlLWhpc3RvcnktZGlyZWN0b3J5LWhlYWRlciIgZGF0YS1hY3Rpb249InRvZ2dsZS1oaXN0b3J5LWRpcmVjdG9yeSIgZGF0YS1jd2Q9IicrcChlKSsnIiByb2xlPSJidXR0b24iIHRhYmluZGV4PSIwIj48ZGl2IGNsYXNzPSJzZXNzaW9uLWdyb3VwLXRpdGxlIGNsYXVkZS1oaXN0b3J5LWRpcmVjdG9yeS10aXRsZSI+PHNwYW4gY2xhc3M9ImNoZXZyb24iPicrYSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJjbGF1ZGUtaGlzdG9yeS1kaXJlY3RvcnktbGFiZWwiPicrbHQoZSwiY2xhdWRlLWhpc3RvcnktZGlyZWN0b3J5LWxhYmVsLXBhdGgiKSsnPHNwYW4gY2xhc3M9ImNsYXVkZS1oaXN0b3J5LWRpcmVjdG9yeS1jb3VudCI+KCcrbisnKTwvc3Bhbj48L3NwYW4+PGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1kYW5nZXIgYnRuLXhzIGNsYXVkZS1oaXN0b3J5LWRpcmVjdG9yeS1jbGVhci1idG4iIGRhdGEtYWN0aW9uPSJkZWxldGUtaGlzdG9yeS1kaXJlY3RvcnkiIGRhdGEtY3dkPSInK3AoZSkrJyIgdHlwZT0iYnV0dG9uIiBhcmlhLWxhYmVsPSJcdTZFMDVcdTdBN0FcdTZCNjRcdTc2RUVcdTVGNTVcdTc2ODRcdTUzODZcdTUzRjJcdTRGMUFcdThCREQiIHRpdGxlPSJcdTZFMDVcdTdBN0FcdTZCNjRcdTc2RUVcdTVGNTVcdTc2ODRcdTUzODZcdTUzRjJcdTRGMUFcdThCREQiPlx1NkUwNVx1N0E3QVx1NkI2NFx1NzZFRVx1NUY1NTwvYnV0dG9uPjwvZGl2PjwvZGl2Pid9ZnVuY3Rpb24gaWEoZSx0KXt2YXIgbj10PT09ImNvZGV4IixpPW4/InJlc3VtZS1jb2RleC1oaXN0b3J5IjoicmVzdW1lLWhpc3RvcnkiLGE9bj8iZGVsZXRlLWNvZGV4LWhpc3RvcnkiOiJkZWxldGUtaGlzdG9yeSIsdT1uP3Iuc2VsZWN0ZWRDb2RleEhpc3RvcnlJZHM6ci5zZWxlY3RlZENsYXVkZUhpc3RvcnlJZHMscz1lLmNsYXVkZVNlc3Npb25JZC5zbGljZSgwLDgpLG89ZS5maXJzdFVzZXJNZXNzYWdlfHwiKFx1N0E3QVx1NEYxQVx1OEJERCkiLGw9aHMoZS50aW1lc3RhbXApLGM9Z3ModCxlLmNsYXVkZVNlc3Npb25JZCwiXHU5MDA5XHU2MkU5XHU1Mzg2XHU1M0YyXHU0RjFBXHU4QkREICIrbyksZj1yLnNlc3Npb25zTWFuYWdlTW9kZT8iIjonPGJ1dHRvbiBjbGFzcz0ic2Vzc2lvbi1hY3Rpb24tYnRuIGRlbGV0ZS1idG4iIGRhdGEtYWN0aW9uPSInK2ErJyIgZGF0YS1jbGF1ZGUtc2Vzc2lvbi1pZD0iJytlLmNsYXVkZVNlc3Npb25JZCsnIiB0eXBlPSJidXR0b24iIGFyaWEtbGFiZWw9Ilx1NTIyMFx1OTY2NFx1NEYxQVx1OEJERCIgdGl0bGU9Ilx1OTY5MFx1ODVDRlx1NkI2NFx1NTM4Nlx1NTNGMlx1NEYxQVx1OEJERCI+PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNMyA2aDE4Ii8+PHBhdGggZD0iTTggNlY0YTIgMiAwIDAxMi0yaDRhMiAyIDAgMDEyIDJ2MiIvPjxwYXRoIGQ9Ik0xOSA2bC0xIDE0YTIgMiAwIDAxLTIgMkg4YTIgMiAwIDAxLTItMkw1IDYiLz48L3N2Zz48L2J1dHRvbj4nLGQ9ci5zZXNzaW9uc01hbmFnZU1vZGU/IiI6JzxidXR0b24gY2xhc3M9InNlc3Npb24tYWN0aW9uLWJ0biIgZGF0YS1hY3Rpb249IicraSsnIiBkYXRhLWNsYXVkZS1zZXNzaW9uLWlkPSInK2UuY2xhdWRlU2Vzc2lvbklkKyciIGRhdGEtY3dkPSInK3AoZS5jd2QpKyciIHR5cGU9ImJ1dHRvbiIgYXJpYS1sYWJlbD0iXHU2MDYyXHU1OTBEXHU0RjFBXHU4QkREIiB0aXRsZT0iJysobj8iXHU2MDYyXHU1OTBEXHU2QjY0IENvZGV4IFx1NTM4Nlx1NTNGMlx1NEYxQVx1OEJERCI6Ilx1NjA2Mlx1NTkwRFx1NkI2NCBDbGF1ZGUgXHU1Mzg2XHU1M0YyXHU0RjFBXHU4QkREIikrJyI+PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNMSA0djZoNiIvPjxwYXRoIGQ9Ik0zLjUxIDE1YTkgOSAwIDEwNS42NC0xMS4zNkwzIDEwIi8+PC9zdmc+PC9idXR0b24+JztyZXR1cm4nPGRpdiBjbGFzcz0ic2Vzc2lvbi1pdGVtIGNsYXVkZS1oaXN0b3J5LWl0ZW0nKyhyLnNlc3Npb25zTWFuYWdlTW9kZSYmdVtlLmNsYXVkZVNlc3Npb25JZF0/IiBzZWxlY3RlZCI6IiIpKyciIGRhdGEtY2xhdWRlLWhpc3RvcnktaWQ9IicrZS5jbGF1ZGVTZXNzaW9uSWQrJyIgZGF0YS1jd2Q9IicrcChlLmN3ZCkrJyIgcm9sZT0iYnV0dG9uIiB0YWJpbmRleD0iMCI+PGRpdiBjbGFzcz0ic2Vzc2lvbi1pdGVtLWNvbnRlbnQiPjxkaXYgY2xhc3M9InNlc3Npb24taXRlbS1yb3ciPicrYysnPGRpdiBjbGFzcz0ic2Vzc2lvbi1tYWluIj48ZGl2IGNsYXNzPSJzZXNzaW9uLWNvbW1hbmQgY2xhdWRlLWhpc3RvcnktcHJldmlldyI+JytwKG8pKyc8L2Rpdj48ZGl2IGNsYXNzPSJzZXNzaW9uLW1ldGEiPjxzcGFuIGNsYXNzPSJzZXNzaW9uLWlkIiB0aXRsZT0iJytwKGUuY2xhdWRlU2Vzc2lvbklkKSsnIj4nK3AocykrIjwvc3Bhbj48c3Bhbj4iK3AobCkrJzwvc3Bhbj48L2Rpdj48L2Rpdj48c3BhbiBjbGFzcz0ic2Vzc2lvbi1hY3Rpb25zIj4nK2QrZisiPC9zcGFuPjwvZGl2PjwvZGl2PjwvZGl2PiJ9ZnVuY3Rpb24gaHMoZSl7aWYoIWUpcmV0dXJuIiI7dHJ5e3ZhciB0PW5ldyBEYXRlKGUpLG49bmV3IERhdGUsaT1uLXQsYT1NYXRoLmZsb29yKGkvNmU0KTtpZihhPDEpcmV0dXJuIlx1NTIxQVx1NTIxQSI7aWYoYTw2MClyZXR1cm4gYSsiIFx1NTIwNlx1OTQ5Rlx1NTI0RCI7dmFyIHU9TWF0aC5mbG9vcihhLzYwKTtpZih1PDI0KXJldHVybiB1KyIgXHU1QzBGXHU2NUY2XHU1MjREIjt2YXIgcz1NYXRoLmZsb29yKHUvMjQpO3JldHVybiBzPDMwP3MrIiBcdTU5MjlcdTUyNEQiOnQudG9Mb2NhbGVEYXRlU3RyaW5nKCl9Y2F0Y2h7cmV0dXJuIiJ9fWZ1bmN0aW9uIHlzKCl7cmV0dXJuIGZldGNoKCIvYXBpL2NsYXVkZS1oaXN0b3J5Iix7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIGUub2s/ZS5qc29uKCk6W119KS50aGVuKGZ1bmN0aW9uKGUpe3IuY2xhdWRlSGlzdG9yeT1lfHxbXSxyLmNsYXVkZUhpc3RvcnlMb2FkZWQ9ITAsbWUoKX0pLmNhdGNoKGZ1bmN0aW9uKCl7ci5jbGF1ZGVIaXN0b3J5TG9hZGVkPSEwLHIuY2xhdWRlSGlzdG9yeT1bXSxtZSgpfSl9dmFyIFduPW51bGw7ZnVuY3Rpb24gdGkoKXtyZXR1cm4gcGQoKSxyLmNsYXVkZUhpc3RvcnlMb2FkZWQ/UHJvbWlzZS5yZXNvbHZlKCk6V258fChXbj15cygpLnRoZW4oZnVuY3Rpb24oKXtXbj1udWxsfSxmdW5jdGlvbigpe1duPW51bGx9KSxXbil9ZnVuY3Rpb24gZmQoKXtyZXR1cm4gZmV0Y2goIi9hcGkvY29kZXgtaGlzdG9yeSIse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBlLm9rP2UuanNvbigpOltdfSkudGhlbihmdW5jdGlvbihlKXtyLmNvZGV4SGlzdG9yeT1lfHxbXSxyLmNvZGV4SGlzdG9yeUxvYWRlZD0hMCxtZSgpfSkuY2F0Y2goZnVuY3Rpb24oKXtyLmNvZGV4SGlzdG9yeUxvYWRlZD0hMCxyLmNvZGV4SGlzdG9yeT1bXSxtZSgpfSl9dmFyIHpuPW51bGw7ZnVuY3Rpb24gcGQoKXtyZXR1cm4gci5jb2RleEhpc3RvcnlMb2FkZWQ/UHJvbWlzZS5yZXNvbHZlKCk6em58fCh6bj1mZCgpLnRoZW4oZnVuY3Rpb24oKXt6bj1udWxsfSxmdW5jdGlvbigpe3puPW51bGx9KSx6bil9ZnVuY3Rpb24gdmQoKXt2YXIgZT1uZXcgU2V0O3JldHVybiByLnNlc3Npb25zLmZvckVhY2goZnVuY3Rpb24odCl7dC5jbGF1ZGVTZXNzaW9uSWQmJmUuYWRkKHQuY2xhdWRlU2Vzc2lvbklkKX0pLHIuY29kZXhIaXN0b3J5LmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gdC5oYXNDb252ZXJzYXRpb24mJiF0Lm1hbmFnZWRCeVdhbmQmJiFlLmhhcyh0LmNsYXVkZVNlc3Npb25JZCl9KX1mdW5jdGlvbiBicygpe0RzKCksIW5pKCkmJihyLnBvbGxUaW1lcj1zZXRJbnRlcnZhbChSdCwxNjAwKSl9c2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXt2YXIgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuc2Vzc2lvbi10aW1lIik7ZS5sZW5ndGg+MCYmc3UoKX0sM2U0KTtmdW5jdGlvbiBhYSgpe3Iud3NSZWNvbm5lY3RUaW1lciYmKGNsZWFyVGltZW91dChyLndzUmVjb25uZWN0VGltZXIpLHIud3NSZWNvbm5lY3RUaW1lcj1udWxsKX12YXIgbWQ9MWU0LGdkPTRlNDtmdW5jdGlvbiBoZCgpe0VzKCksci53c0hlYXJ0YmVhdENoZWNrVGltZXI9c2V0SW50ZXJ2YWwoRnMsbWQpfWZ1bmN0aW9uIEVzKCl7ci53c0hlYXJ0YmVhdENoZWNrVGltZXImJihjbGVhckludGVydmFsKHIud3NIZWFydGJlYXRDaGVja1RpbWVyKSxyLndzSGVhcnRiZWF0Q2hlY2tUaW1lcj1udWxsKX1mdW5jdGlvbiBGcygpe2lmKCEoIXIud3N8fHIud3MucmVhZHlTdGF0ZSE9PVdlYlNvY2tldC5PUEVOKSYmci5sYXN0V3NNZXNzYWdlQXQpe3ZhciBlPURhdGUubm93KCktci5sYXN0V3NNZXNzYWdlQXQ7ZT5nZCYmdWEoImhlYXJ0YmVhdC1zdGFsZS0iK01hdGgucm91bmQoZS8xZTMpKyJzIil9fWZ1bmN0aW9uIHVhKGUpe2lmKGFhKCksci53cyl7dmFyIHQ9ci53czt0cnl7dC5vbmNsb3NlPW51bGx9Y2F0Y2h7fXRyeXt0Lm9uZXJyb3I9bnVsbH1jYXRjaHt9dHJ5e3Qub25tZXNzYWdlPW51bGx9Y2F0Y2h7fXRyeXt0LmNsb3NlKCl9Y2F0Y2h7fXIud3M9bnVsbH1yLndzQ29ubmVjdGVkPSExLHIud3NSZWNvbm5lY3RBdHRlbXB0cz0wLG5pKGUpfWZ1bmN0aW9uIHdzKCl7aWYoIXIud3NSZWNvbm5lY3RUaW1lciYmIWRvY3VtZW50LmhpZGRlbil7dmFyIGU9ci53c1JlY29ubmVjdEF0dGVtcHRzfHwwLHQ9WzUwMCwxZTMsMmUzLDRlMyw4ZTNdLG49dFtlPHQubGVuZ3RoP2U6dC5sZW5ndGgtMV07ci53c1JlY29ubmVjdEF0dGVtcHRzPWUrMSxyLndzUmVjb25uZWN0VGltZXI9c2V0VGltZW91dChmdW5jdGlvbigpe3Iud3NSZWNvbm5lY3RUaW1lcj1udWxsLHIuY29uZmlnJiYhci53cyYmIWRvY3VtZW50LmhpZGRlbiYmbmkoImJhY2tvZmYiKX0sbil9fWZ1bmN0aW9uIG5pKGUpe2lmKCF3aW5kb3cuV2ViU29ja2V0KXJldHVybiExO2lmKHIud3Mpe3RyeXtyLndzLmNsb3NlKCl9Y2F0Y2h7fXIud3M9bnVsbH12YXIgdD13aW5kb3cubG9jYXRpb24ucHJvdG9jb2w9PT0iaHR0cHM6Ij8id3NzOiI6IndzOiIsbj10KyIvLyIrd2luZG93LmxvY2F0aW9uLmhvc3QrIi93cyI7dHJ5e3ZhciBpPW5ldyBXZWJTb2NrZXQobik7cmV0dXJuIGkub25vcGVuPWZ1bmN0aW9uKCl7ci53cz1pLHIud3NDb25uZWN0ZWQ9ITAsci5sYXN0V3NNZXNzYWdlQXQ9RGF0ZS5ub3coKSxyLndzUmVjb25uZWN0QXR0ZW1wdHM9MCxhYSgpLHIubGFzdFNlcUJ5U2Vzc2lvbj17fSxoZCgpLHFuKHIuc2VsZWN0ZWRJZCksV3AoKSxicigid3MtcmVjb25uZWN0Iil9LGkub25tZXNzYWdlPWZ1bmN0aW9uKGEpe3IubGFzdFdzTWVzc2FnZUF0PURhdGUubm93KCk7dHJ5e3ZhciB1PUpTT04ucGFyc2UoYS5kYXRhKTtpZih1JiZ1LnR5cGU9PT0icGluZyIpe2lmKHIud3MmJnIud3MucmVhZHlTdGF0ZT09PVdlYlNvY2tldC5PUEVOKXRyeXtyLndzLnNlbmQoSlNPTi5zdHJpbmdpZnkoe3R5cGU6InBvbmciLHQ6dS50fSkpfWNhdGNoe31yZXR1cm59aWYodSYmdS50eXBlPT09InJlc3luY19yZXF1aXJlZCImJnUuc2Vzc2lvbklkKXtpZihyLndzJiZyLndzLnJlYWR5U3RhdGU9PT1XZWJTb2NrZXQuT1BFTil0cnl7ci53cy5zZW5kKEpTT04uc3RyaW5naWZ5KHt0eXBlOiJyZXN5bmMiLHNlc3Npb25JZDp1LnNlc3Npb25JZH0pKX1jYXRjaHt9ci5sYXN0U2VxQnlTZXNzaW9ufHwoci5sYXN0U2VxQnlTZXNzaW9uPXt9KSxyLmxhc3RTZXFCeVNlc3Npb25bdS5zZXNzaW9uSWRdPTA7cmV0dXJufWlmKHUmJih1LnR5cGU9PT0iaW5pdCJ8fHUudHlwZT09PSJvdXRwdXQiKSYmdS5zZXNzaW9uSWQmJnR5cGVvZiB1LnNlcT09Im51bWJlciIpe3IubGFzdFNlcUJ5U2Vzc2lvbnx8KHIubGFzdFNlcUJ5U2Vzc2lvbj17fSk7dmFyIHM9ci5sYXN0U2VxQnlTZXNzaW9uW3Uuc2Vzc2lvbklkXXx8MDtpZih1LnR5cGU9PT0iaW5pdCIpci5sYXN0U2VxQnlTZXNzaW9uW3Uuc2Vzc2lvbklkXT11LnNlcTtlbHNlIGlmKHUuc2VxPT09cysxKXIubGFzdFNlcUJ5U2Vzc2lvblt1LnNlc3Npb25JZF09dS5zZXE7ZWxzZSBpZih1LnNlcT5zKzEmJnM+MCl7aWYoci53cyYmci53cy5yZWFkeVN0YXRlPT09V2ViU29ja2V0Lk9QRU4pdHJ5e3Iud3Muc2VuZChKU09OLnN0cmluZ2lmeSh7dHlwZToicmVzeW5jIixzZXNzaW9uSWQ6dS5zZXNzaW9uSWR9KSl9Y2F0Y2h7fXIubGFzdFNlcUJ5U2Vzc2lvblt1LnNlc3Npb25JZF09MDtyZXR1cm59ZWxzZXtpZih1LnNlcTxzKXJldHVybjtyLmxhc3RTZXFCeVNlc3Npb25bdS5zZXNzaW9uSWRdPXUuc2VxfX15ZCh1KX1jYXRjaHt9fSxpLm9uY2xvc2U9ZnVuY3Rpb24oKXtyLndzPW51bGwsci53c0Nvbm5lY3RlZD0hMSxFcygpLHdzKCl9LGkub25lcnJvcj1mdW5jdGlvbigpe2kuY2xvc2UoKX0sITB9Y2F0Y2h7cmV0dXJuIHdzKCksITF9fWZ1bmN0aW9uIHlkKGUpe3N3aXRjaChlLnR5cGUpe2Nhc2Uib3V0cHV0IjppZihlLmRhdGEmJmUuc2Vzc2lvbklkJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZS5kYXRhLCJpc1Jlc3BvbmRpbmciKSYmKHIuX2xhc3RJc1Jlc3BvbmRpbmd8fChyLl9sYXN0SXNSZXNwb25kaW5nPXt9KSxyLl9sYXN0SXNSZXNwb25kaW5nW2Uuc2Vzc2lvbklkXT0hIWUuZGF0YS5pc1Jlc3BvbmRpbmcpLGUuZGF0YSYmZS5zZXNzaW9uSWQpe3ZhciB0PSEhZS5kYXRhLmluY3JlbWVudGFsLG49e2lkOmUuc2Vzc2lvbklkfSxpPSExO2lmKCF0JiZlLmRhdGEub3V0cHV0IT09dm9pZCAwJiYobi5vdXRwdXQ9ZS5kYXRhLm91dHB1dCksT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUuZGF0YSwicGVybWlzc2lvbkJsb2NrZWQiKSYmKG4ucGVybWlzc2lvbkJsb2NrZWQ9ISFlLmRhdGEucGVybWlzc2lvbkJsb2NrZWQpLE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLmRhdGEsInF1ZXVlZE1lc3NhZ2VzIikmJihuLnF1ZXVlZE1lc3NhZ2VzPWUuZGF0YS5xdWV1ZWRNZXNzYWdlc3x8W10sci5xdWV1ZUVwb2NoKyspLGUuZGF0YS5zdHJ1Y3R1cmVkU3RhdGUmJihuLnN0cnVjdHVyZWRTdGF0ZT1lLmRhdGEuc3RydWN0dXJlZFN0YXRlKSxlLmRhdGEuc2Vzc2lvbktpbmQmJihuLnNlc3Npb25LaW5kPWUuZGF0YS5zZXNzaW9uS2luZCksT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUuZGF0YSwidGl0bGUiKSYmKG4udGl0bGU9ZS5kYXRhLnRpdGxlLGk9ITApLE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLmRhdGEsImRlc2NyaXB0aW9uIikmJihuLmRlc2NyaXB0aW9uPWUuZGF0YS5kZXNjcmlwdGlvbixpPSEwKSxPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZS5kYXRhLCJzdW1tYXJ5IikmJihuLnN1bW1hcnk9ZS5kYXRhLnN1bW1hcnkpLGUuZGF0YS5tZXNzYWdlcyluLm1lc3NhZ2VzPWUuZGF0YS5tZXNzYWdlcyx0eXBlb2YgZS5kYXRhLm1lc3NhZ2VPZmZzZXQ9PSJudW1iZXIiJiYobi5tZXNzYWdlT2Zmc2V0PWUuZGF0YS5tZXNzYWdlT2Zmc2V0KSx0eXBlb2YgZS5kYXRhLm1lc3NhZ2VUb3RhbD09Im51bWJlciImJihuLm1lc3NhZ2VUb3RhbD1lLmRhdGEubWVzc2FnZVRvdGFsKTtlbHNlIGlmKHQmJmUuZGF0YS5sYXN0TWVzc2FnZSl7dmFyIGE9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKHEpe3JldHVybiBxLmlkPT09ZS5zZXNzaW9uSWR9KTtpZihhKXt2YXIgdT1BcnJheS5pc0FycmF5KGEubWVzc2FnZXMpP2EubWVzc2FnZXMuc2xpY2UoKTpbXSxzPWUuZGF0YS5tZXNzYWdlQ291bnR8fDAsbz10eXBlb2YgYS5tZXNzYWdlT2Zmc2V0PT0ibnVtYmVyIj9hLm1lc3NhZ2VPZmZzZXQ6MCxsPXUubGVuZ3RoPjA/dVt1Lmxlbmd0aC0xXTpudWxsLGM9ZS5kYXRhLmxhc3RNZXNzYWdlO2wmJmMucm9sZSYmbC5yb2xlPT09Yy5yb2xlP3VbdS5sZW5ndGgtMV09ZnAobCxjKTpvK3UubGVuZ3RoPHMmJnUucHVzaChjKSxuLm1lc3NhZ2VzPXUscz4wJiYobi5tZXNzYWdlVG90YWw9cyl9fXZhciBmPXQmJmUuZGF0YS5jaHVuayYmIWUuZGF0YS5sYXN0TWVzc2FnZSYmIW4ubWVzc2FnZXMmJm4ub3V0cHV0PT09dm9pZCAwJiYhZS5kYXRhLnN0cnVjdHVyZWRTdGF0ZSYmIWUuZGF0YS5zZXNzaW9uS2luZDtpZihmKXtpZihlLmRhdGEucGVybWlzc2lvbkJsb2NrZWQhPT12b2lkIDApe3ZhciBkPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihxKXtyZXR1cm4gcS5pZD09PWUuc2Vzc2lvbklkfSk7ZCYmISFkLnBlcm1pc3Npb25CbG9ja2VkIT0hIWUuZGF0YS5wZXJtaXNzaW9uQmxvY2tlZCYmKCQobiksZS5zZXNzaW9uSWQ9PT1yLnNlbGVjdGVkSWQmJlp0KCkpfX1lbHNlIGlmKChuLm91dHB1dCE9PXZvaWQgMHx8bi5tZXNzYWdlc3x8dHx8ZS5kYXRhLnBlcm1pc3Npb25CbG9ja2VkIT09dm9pZCAwfHxuLnRpdGxlfHxuLmRlc2NyaXB0aW9uKSYmKCQobiksaSYmc3UoKSxlLnNlc3Npb25JZD09PXIuc2VsZWN0ZWRJZCkpe3ZhciB2PXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihxKXtyZXR1cm4gcS5pZD09PWUuc2Vzc2lvbklkfSl8fG47ci5jdXJyZW50TWVzc2FnZXM9UmUodixudCh2LHYub3V0cHV0LCExKSksWnQoKSx2LnNlc3Npb25LaW5kPT09InN0cnVjdHVyZWQifHxlLmRhdGEuc2Vzc2lvbktpbmQ9PT0ic3RydWN0dXJlZCI/dnIoKTpzYSgpfX1lLnNlc3Npb25JZD09PXIuc2VsZWN0ZWRJZCYmci50ZXJtaW5hbCYmZS5kYXRhJiYoZS5kYXRhLmNodW5rJiZ3cChlLnNlc3Npb25JZCk/KHIubGFzdENodW5rQXQ9RGF0ZS5ub3coKSxyLnRlcm1pbmFsTGl2ZVN0cmVhbVNlc3Npb25zW2Uuc2Vzc2lvbklkXT0hMCxLbihyLnRlcm1pbmFsLGUuZGF0YS5jaHVuayksci50ZXJtaW5hbFNlc3Npb25JZD1lLnNlc3Npb25JZCxlLmRhdGEub3V0cHV0PyhyLnRlcm1pbmFsT3V0cHV0PVdzKCRhKGUuZGF0YS5vdXRwdXQpKSxyLnRlcm1pbmFsT3V0cHV0TWFya2VyPTApOnIudGVybWluYWxPdXRwdXQ9V3MoKHIudGVybWluYWxPdXRwdXR8fCIiKSskYShlLmRhdGEuY2h1bmspKSxGdCgib3V0cHV0IiksbXQoKSk6IWUuZGF0YS5pbmNyZW1lbnRhbCYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUuZGF0YSwib3V0cHV0IikmJm9pKGUuc2Vzc2lvbklkLGUuZGF0YS5vdXRwdXR8fCIiLHttb2RlOiJhcHBlbmQifSkpO2JyZWFrO2Nhc2Uic3RhcnRlZCI6Z24oKTticmVhaztjYXNlImVuZGVkIjp7dmFyIGg9ZS5kYXRhJiZlLmRhdGEuc3RhdHVzP2UuZGF0YS5zdGF0dXM6ImV4aXRlZCIsZz1lLmRhdGEmJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLmRhdGEsInBlcm1pc3Npb25CbG9ja2VkIik/ISFlLmRhdGEucGVybWlzc2lvbkJsb2NrZWQ6ITEsbT17aWQ6ZS5zZXNzaW9uSWQsc3RhdHVzOmgscGVybWlzc2lvbkJsb2NrZWQ6Z307ZS5kYXRhJiZlLmRhdGEubWVzc2FnZXMmJihtLm1lc3NhZ2VzPWUuZGF0YS5tZXNzYWdlcyx0eXBlb2YgZS5kYXRhLm1lc3NhZ2VPZmZzZXQ9PSJudW1iZXIiJiYobS5tZXNzYWdlT2Zmc2V0PWUuZGF0YS5tZXNzYWdlT2Zmc2V0KSx0eXBlb2YgZS5kYXRhLm1lc3NhZ2VUb3RhbD09Im51bWJlciImJihtLm1lc3NhZ2VUb3RhbD1lLmRhdGEubWVzc2FnZVRvdGFsKSksZS5kYXRhJiZlLmRhdGEuc3RydWN0dXJlZFN0YXRlJiYobS5zdHJ1Y3R1cmVkU3RhdGU9ZS5kYXRhLnN0cnVjdHVyZWRTdGF0ZSksZS5kYXRhJiZlLmRhdGEucXVldWVkTWVzc2FnZXMmJihtLnF1ZXVlZE1lc3NhZ2VzPWUuZGF0YS5xdWV1ZWRNZXNzYWdlcyksJChtKSxlLnNlc3Npb25JZD09PXIuc2VsZWN0ZWRJZCYmKFluKCJFbnRlciBcdTUzRDFcdTkwMDEgXHhCNyBTaGlmdCtFbnRlciBcdTYzNjJcdTg4NEMiKSxzYSghMCkpO3ZhciB5PXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihxKXtyZXR1cm4gcS5pZD09PWUuc2Vzc2lvbklkfSksdz1lLmRhdGEmJmUuZGF0YS5leGl0Q29kZSxFPXchPW51bGwmJnchPT0wLEI9eSYmeS5zdW1tYXJ5fHwiIixGPXk/emMoeSk6IiIseD1FPyJcdTRFRkJcdTUyQTFcdTVGMDJcdTVFMzhcdTdFRDNcdTY3NUYiOiJcdTRFRkJcdTUyQTFcdTVERjJcdTVCOENcdTYyMTAiLFM9IiI7Qj8oUz1CLEYmJiFFJiYoUys9YApgK0YpKTpTPXkmJnkuY29tbWFuZHx8ZS5zZXNzaW9uSWQsR24oRT8iZXJyb3IiOiJzdWNjZXNzIiksTWYoZS5zZXNzaW9uSWQseCxTKSxZcyhlLnNlc3Npb25JZCksRmEoKSwoZS5zZXNzaW9uSWQhPT1yLnNlbGVjdGVkSWR8fGRvY3VtZW50LmhpZGRlbikmJmJhKHt0aXRsZTp4LGJvZHk6Uyx0eXBlOkU/Indhcm5pbmciOiJzdWNjZXNzIixpY29uOkU/IiEiOiJcdTI3MTMiLGR1cmF0aW9uOjZlMyxhY3Rpb25MYWJlbDoiXHU2N0U1XHU3NzBCIixhY3Rpb246ZnVuY3Rpb24oKXt6dChlLnNlc3Npb25JZCl9fSksci5tZXNzYWdlUXVldWU9W10sci5wZW5kaW5nTWVzc2FnZXM9W107dmFyIF89ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKHEpe3JldHVybiBxLmlkPT09ZS5zZXNzaW9uSWR9KSxWPWUuc2Vzc2lvbklkPT09ci5zZWxlY3RlZElkP3Iuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihxKXtyZXR1cm4gcS5pZD09PXIuc2VsZWN0ZWRJZH0pOm51bGwsVT0hIShfJiZfLnNlc3Npb25LaW5kPT09InN0cnVjdHVyZWQifHxWJiZWLnNlc3Npb25LaW5kPT09InN0cnVjdHVyZWQiKTtVJiZlLnNlc3Npb25JZD09PXIuc2VsZWN0ZWRJZD8obG8oKSxUdShlLnNlc3Npb25JZCkpOlV8fChyLnN0cnVjdHVyZWRJbnB1dFF1ZXVlPVtdLFR1KHIuc2VsZWN0ZWRJZCksZm4oKSksZS5zZXNzaW9uSWQ9PT1yLnNlbGVjdGVkSWQmJihVfHxNbighMSksci5jdXJyZW50VGFzaz1udWxsLFp0KCkpLGUuc2Vzc2lvbklkPT09ci5zZWxlY3RlZElkJiZMcigpLGduKCkudGhlbihmdW5jdGlvbigpe3ZpKCl9KSxlLnNlc3Npb25JZD09PXIuc2VsZWN0ZWRJZCYmKFV8fGhuKGUuc2Vzc2lvbklkKSk7YnJlYWt9Y2FzZSJpbml0IjppZihlLnNlc3Npb25JZD09PXIuc2VsZWN0ZWRJZCYmZS5kYXRhKXtyLmNoYXRSZW5kZXJUaW1lciYmKGNsZWFyVGltZW91dChyLmNoYXRSZW5kZXJUaW1lciksci5jaGF0UmVuZGVyVGltZXI9bnVsbCksJChlLmRhdGEpO3ZhciBJPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihxKXtyZXR1cm4gcS5pZD09PWUuc2Vzc2lvbklkfSk7ci5jdXJyZW50TWVzc2FnZXM9UmUoSXx8ZS5kYXRhLG50KEl8fGUuZGF0YSxlLmRhdGEub3V0cHV0LCExKSksdnIoITApLFp0KCksQ3MoKTt2YXIgRD1lLmRhdGEub3V0cHV0fHwiIixNPXIudGVybWluYWxTZXNzaW9uSWQ9PT1lLnNlc3Npb25JZCxMPXIudGVybWluYWxPdXRwdXR8fCIiLFc9TSYmTC5sZW5ndGg+MCYmRC5sZW5ndGg+PUwubGVuZ3RoJiZELnN0YXJ0c1dpdGgoTCk7d2QoRCxlLnNlc3Npb25JZCxXPyJhcHBlbmQiOiJyZXBsYWNlIiksYnIoImluaXQiKX1icmVhaztjYXNlInVzYWdlIjpicmVhaztjYXNlInRhc2siOmUuc2Vzc2lvbklkPT09ci5zZWxlY3RlZElkJiYoci5jdXJyZW50VGFzaz1lLmRhdGF8fG51bGwsWnQoKSksVGYoZS5zZXNzaW9uSWQsZS5kYXRhfHxudWxsKSx3YShlLnNlc3Npb25JZCksc3UoKTticmVhaztjYXNlInN0YXR1cyI6aWYoZS5zZXNzaW9uSWQmJmUuZGF0YSl7dmFyIEs9e2lkOmUuc2Vzc2lvbklkfTtpZihPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZS5kYXRhLCJzdGF0dXMiKSYmKEsuc3RhdHVzPWUuZGF0YS5zdGF0dXMpLE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLmRhdGEsImV4aXRDb2RlIikmJihLLmV4aXRDb2RlPWUuZGF0YS5leGl0Q29kZSksZS5kYXRhLnN0cnVjdHVyZWRTdGF0ZSlLLnN0cnVjdHVyZWRTdGF0ZT1lLmRhdGEuc3RydWN0dXJlZFN0YXRlO2Vsc2UgaWYoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUuZGF0YSwic3RhdHVzIikpe3ZhciBhPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihOKXtyZXR1cm4gTi5pZD09PWUuc2Vzc2lvbklkfSk7YSYmYS5zZXNzaW9uS2luZD09PSJzdHJ1Y3R1cmVkIiYmKEsuc3RydWN0dXJlZFN0YXRlPU9iamVjdC5hc3NpZ24oe30sYS5zdHJ1Y3R1cmVkU3RhdGV8fHt9LHtpbkZsaWdodDplLmRhdGEuc3RhdHVzPT09InJ1bm5pbmcifSkpfWlmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLmRhdGEsInF1ZXVlZE1lc3NhZ2VzIikmJihLLnF1ZXVlZE1lc3NhZ2VzPWUuZGF0YS5xdWV1ZWRNZXNzYWdlc3x8W10sci5xdWV1ZUVwb2NoKyspLE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLmRhdGEsInBlcm1pc3Npb25CbG9ja2VkIikmJihLLnBlcm1pc3Npb25CbG9ja2VkPSEhZS5kYXRhLnBlcm1pc3Npb25CbG9ja2VkKSxlLmRhdGEucGVybWlzc2lvblJlcXVlc3Qpe0sucGVuZGluZ0VzY2FsYXRpb249e3Njb3BlOmUuZGF0YS5wZXJtaXNzaW9uUmVxdWVzdC5zY29wZSx0YXJnZXQ6ZS5kYXRhLnBlcm1pc3Npb25SZXF1ZXN0LnRhcmdldCxyZWFzb246ZS5kYXRhLnBlcm1pc3Npb25SZXF1ZXN0LnByb21wdH07dmFyIFg9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKHEpe3JldHVybiBxLmlkPT09ZS5zZXNzaW9uSWR9KSxuZT1YJiYoWC5zdW1tYXJ5fHxYLmNvbW1hbmQpfHxlLnNlc3Npb25JZCxzZT1lLmRhdGEucGVybWlzc2lvblJlcXVlc3QucHJvbXB0fHwiXHU5NzAwXHU4OTgxXHU2NzQzXHU5NjUwXHU1QkExXHU2Mjc5IixyZT1lLmRhdGEucGVybWlzc2lvblJlcXVlc3QudGFyZ2V0LFQ9bmU7cmU/VCs9YApgK3NlKyIgXHhCNyAiK3JlOlQrPWAKYCtzZSxHbigibWVkaXVtIiksTGYoZS5zZXNzaW9uSWQsVCksZS5zZXNzaW9uSWQhPT1yLnNlbGVjdGVkSWQmJmJhKHt0aXRsZToiXHU5NzAwXHU4OTgxXHU0RjYwXHU3Njg0XHU2Mzg4XHU2NzQzIixib2R5OlQsdHlwZToid2FybmluZyIsaWNvbjoiISIsZHVyYXRpb246MCxhY3Rpb25MYWJlbDoiXHU1M0JCXHU1OTA0XHU3NDA2IixhY3Rpb246ZnVuY3Rpb24oKXt6dChlLnNlc3Npb25JZCl9fSl9ZS5kYXRhLnBlcm1pc3Npb25CbG9ja2VkPT09ITEmJihLLnBlbmRpbmdFc2NhbGF0aW9uPW51bGwpLGUuZGF0YS5hcHByb3ZhbFN0YXRzJiYoSy5hcHByb3ZhbFN0YXRzPWUuZGF0YS5hcHByb3ZhbFN0YXRzKSwkKEspLHdhKGUuc2Vzc2lvbklkKSxGYSgpLGUuc2Vzc2lvbklkPT09ci5zZWxlY3RlZElkJiYoWnQoKSxlLmRhdGEuYXBwcm92YWxTdGF0cyYmQ3MoKSxLLnN0cnVjdHVyZWRTdGF0ZSYmKEsuc3RydWN0dXJlZFN0YXRlLmluRmxpZ2h0fHwoWW4oIkVudGVyIFx1NTNEMVx1OTAwMSBceEI3IFNoaWZ0K0VudGVyIFx1NjM2Mlx1ODg0QyIpLGxvKCkpLHNhKCkpKX1icmVhaztjYXNlIm5vdGlmaWNhdGlvbiI6ZS5kYXRhJiYoZS5kYXRhLmtpbmQ9PT0idXBkYXRlIj9KcyhlLmRhdGEuY3VycmVudHx8Ii0iLGUuZGF0YS5sYXRlc3R8fCItIik6ZS5kYXRhLmtpbmQ9PT0iYXV0by11cGRhdGUtc3RhcnQiP05mKGUuZGF0YS5jdXJyZW50fHwiLSIsZS5kYXRhLmxhdGVzdHx8Ii0iKTooZS5kYXRhLmtpbmQ9PT0iYXV0by11cGRhdGUtcmVzdGFydCJ8fGUuZGF0YS5raW5kPT09InJlc3RhcnQiKSYmZG4oKSk7YnJlYWt9fWZ1bmN0aW9uIFp0KCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImN1cnJlbnQtdGFzayIpLHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBlcm1pc3Npb24tYWN0aW9ucyIpLG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBlcm1pc3Npb24tYWN0aW9ucy1sYWJlbCIpO2lmKGUpe3ZhciBpPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbih2KXtyZXR1cm4gdi5pZD09PXIuc2VsZWN0ZWRJZH0pO2kmJmkucHJvdmlkZXI9PT0iY29kZXgiJiYodCYmdC5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSxlLmNsYXNzTGlzdC5yZW1vdmUoInBlcm1pc3Npb24tYmxvY2tlZCIpKTt2YXIgYT1pJiZpLnBlbmRpbmdFc2NhbGF0aW9uP2kucGVuZGluZ0VzY2FsYXRpb246bnVsbCx1PWkmJmkucHJvdmlkZXIhPT0iY29kZXgiP2F8fGkucGVybWlzc2lvbkJsb2NrZWQ6ITE7aWYodSl7dmFyIHM9aSYmaS5hdXRvQXBwcm92ZVBlcm1pc3Npb25zO2lmKG4paWYocyluLnRleHRDb250ZW50PSJcdTgxRUFcdTUyQThcdTYyNzlcdTUxQzZcdTRFMkQuLi4iO2Vsc2UgaWYoYSl7dmFyIG89YS5yZWFzb258fCJcdTdCNDlcdTVGODVcdTYzODhcdTY3NDMiLGw9YS50YXJnZXQ/IiBceEI3ICIrYS50YXJnZXQ6IiI7bi50ZXh0Q29udGVudD1vK2x9ZWxzZSBuLnRleHRDb250ZW50PSJcdTdCNDlcdTVGODVcdTYzODhcdTY3NDMiO2lmKHQpe3QuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIik7dmFyIGM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFwcHJvdmUtcGVybWlzc2lvbi1idG4iKSxmPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZW55LXBlcm1pc3Npb24tYnRuIik7YyYmYy5jbGFzc0xpc3QudG9nZ2xlKCJoaWRkZW4iLCEhcyksZiYmZi5jbGFzc0xpc3QudG9nZ2xlKCJoaWRkZW4iLCEhcyl9ZS50ZXh0Q29udGVudD0iIixlLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLGUuY2xhc3NMaXN0LnJlbW92ZSgicGVybWlzc2lvbi1ibG9ja2VkIik7cmV0dXJufWUuY2xhc3NMaXN0LnJlbW92ZSgicGVybWlzc2lvbi1ibG9ja2VkIiksdCYmdC5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKTt2YXIgZD1yLmN1cnJlbnRUYXNrO2QmJmQudGl0bGU/KGUudGV4dENvbnRlbnQ9ZC50aXRsZSxlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpKTooZS50ZXh0Q29udGVudD0iIixlLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpKX19ZnVuY3Rpb24gQ3MoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXBwcm92YWwtc3RhdHMiKTtpZihlKXt2YXIgdD1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oYSl7cmV0dXJuIGEuaWQ9PT1yLnNlbGVjdGVkSWR9KSxuPXQmJnQuYXBwcm92YWxTdGF0cztpZighbnx8bi50b3RhbD09PTApe2UuY2xhc3NOYW1lPSJhcHByb3ZhbC1zdGF0cyBoaWRkZW4iLGUuaW5uZXJIVE1MPSIiO3JldHVybn1lLmNsYXNzTmFtZT0iYXBwcm92YWwtc3RhdHMiLGUuaW5uZXJIVE1MPSc8c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtZGl2aWRlciI+PC9zcGFuPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1iYWRnZSIgaWQ9ImFwcHJvdmFsLXN0YXRzLWJhZGdlIiB0aXRsZT0iXHU2NzJDXHU2QjIxXHU0RjFBXHU4QkREXHU4MUVBXHU1MkE4XHU2Mjc5XHU1MUM2XHU3RURGXHU4QkExIj48c3ZnIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1pY29uIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNMTIgMjJzOC00IDgtMTBWNWwtOC0zLTggM3Y3YzAgNiA4IDEwIDggMTB6Ii8+PC9zdmc+PHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXRvdGFsIj4nK24udG90YWwrJzwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXBvcHVwIiBpZD0iYXBwcm92YWwtc3RhdHMtcG9wdXAiPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1wb3B1cC10aXRsZSI+XHU4MUVBXHU1MkE4XHU2Mjc5XHU1MUM2XHU3RURGXHU4QkExPC9zcGFuPicrKG4uY29tbWFuZD4wPyc8c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93Ij48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93LWljb24iPicreigidGVybWluYWwiLHtzaXplOjEyLHN0cm9rZVdpZHRoOjEuOH0pKyc8L3NwYW4+PHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXJvdy1sYWJlbCI+XHU1NDdEXHU0RUU0XHU2MjY3XHU4ODRDPC9zcGFuPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ctY291bnQiPicrbi5jb21tYW5kKyI8L3NwYW4+PC9zcGFuPiI6IiIpKyhuLmZpbGU+MD8nPHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXJvdyI+PHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXJvdy1pY29uIj4nK3ooImVkaXQiLHtzaXplOjEyLHN0cm9rZVdpZHRoOjEuOH0pKyc8L3NwYW4+PHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXJvdy1sYWJlbCI+XHU2NTg3XHU0RUY2XHU1MTk5XHU1MTY1PC9zcGFuPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ctY291bnQiPicrbi5maWxlKyI8L3NwYW4+PC9zcGFuPiI6IiIpKyhuLnRvb2w+MD8nPHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXJvdyI+PHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXJvdy1pY29uIj4nK3ooIndyZW5jaCIse3NpemU6MTIsc3Ryb2tlV2lkdGg6MS44fSkrJzwvc3Bhbj48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93LWxhYmVsIj5cdTUxNzZcdTRFRDZcdTVERTVcdTUxNzc8L3NwYW4+PHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXJvdy1jb3VudCI+JytuLnRvb2wrIjwvc3Bhbj48L3NwYW4+IjoiIikrJzxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3cgYXBwcm92YWwtc3RhdHMtcm93LXRvdGFsIj48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93LWljb24iPicreigic2lnbWEiLHtzaXplOjEyLHN0cm9rZVdpZHRoOjEuOH0pKyc8L3NwYW4+PHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXJvdy1sYWJlbCI+XHU1NDA4XHU4QkExPC9zcGFuPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ctY291bnQiPicrbi50b3RhbCsiPC9zcGFuPjwvc3Bhbj48L3NwYW4+Ijt2YXIgaT1lLnF1ZXJ5U2VsZWN0b3IoIi5hcHByb3ZhbC1zdGF0cy1iYWRnZSIpO2kmJihpLmNsYXNzTGlzdC5yZW1vdmUoImFwcHJvdmFsLXN0YXRzLXB1bHNlIiksaS5vZmZzZXRXaWR0aCxpLmNsYXNzTGlzdC5hZGQoImFwcHJvdmFsLXN0YXRzLXB1bHNlIikpfX1mdW5jdGlvbiBiZCgpe2lmKEduKCJsaWdodCIpLCEhci5zZWxlY3RlZElkKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXBwcm92ZS1wZXJtaXNzaW9uLWJ0biIpLHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRlbnktcGVybWlzc2lvbi1idG4iKTtlJiYoZS5kaXNhYmxlZD0hMCksdCYmKHQuZGlzYWJsZWQ9ITApLGZldGNoKCIvYXBpL3Nlc3Npb25zLyIrZW5jb2RlVVJJQ29tcG9uZW50KHIuc2VsZWN0ZWRJZCkrIi9hcHByb3ZlLXBlcm1pc3Npb24iLHttZXRob2Q6IlBPU1QiLGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKG4pe3JldHVybiBuLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24obil7aWYobiYmbi5lcnJvcil7ayhuLmVycm9yLCJlcnJvciIpO3JldHVybn0kKG4pLFp0KCl9KS5jYXRjaChmdW5jdGlvbihuKXtrKG4mJm4ubWVzc2FnZXx8Ilx1NjVFMFx1NkNENVx1NjI3OVx1NTFDNlx1NjM4OFx1Njc0M1x1MzAwMiIsImVycm9yIil9KS5maW5hbGx5KGZ1bmN0aW9uKCl7ZSYmKGUuZGlzYWJsZWQ9ITEpLHQmJih0LmRpc2FibGVkPSExKX0pfX1mdW5jdGlvbiBFZCgpe2lmKEduKCJsaWdodCIpLCEhci5zZWxlY3RlZElkKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXBwcm92ZS1wZXJtaXNzaW9uLWJ0biIpLHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRlbnktcGVybWlzc2lvbi1idG4iKTtlJiYoZS5kaXNhYmxlZD0hMCksdCYmKHQuZGlzYWJsZWQ9ITApLGZldGNoKCIvYXBpL3Nlc3Npb25zLyIrZW5jb2RlVVJJQ29tcG9uZW50KHIuc2VsZWN0ZWRJZCkrIi9kZW55LXBlcm1pc3Npb24iLHttZXRob2Q6IlBPU1QiLGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKG4pe3JldHVybiBuLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24obil7aWYobiYmbi5lcnJvcil7ayhuLmVycm9yLCJlcnJvciIpO3JldHVybn0kKG4pLFp0KCl9KS5jYXRjaChmdW5jdGlvbihuKXtrKG4mJm4ubWVzc2FnZXx8Ilx1NjVFMFx1NkNENVx1NjJEMlx1N0VERFx1NjM4OFx1Njc0M1x1MzAwMiIsImVycm9yIil9KS5maW5hbGx5KGZ1bmN0aW9uKCl7ZSYmKGUuZGlzYWJsZWQ9ITEpLHQmJih0LmRpc2FibGVkPSExKX0pfX1mdW5jdGlvbiBGZCgpe2lmKHIuc2VsZWN0ZWRJZCl7dmFyIGU9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKG4pe3JldHVybiBuLmlkPT09ci5zZWxlY3RlZElkfSk7aWYoZSYmZS5wcm92aWRlcj09PSJjb2RleCIpe2soIkNvZGV4IFx1NEYxQVx1OEJERFx1NTZGQVx1NUI5QVx1NEVFNSBmdWxsLWFjY2VzcyBQVFkgXHU1NDJGXHU1MkE4XHVGRjBDXHU0RTBEXHU2NTJGXHU2MzAxXHU1MjA3XHU2MzYyXHU4MUVBXHU1MkE4XHU2Mjc5XHU1MUM2XHUzMDAyIiwiaW5mbyIpO3JldHVybn12YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXV0by1hcHByb3ZlLXRvZ2dsZSIpO3QmJih0LnN0eWxlLm9wYWNpdHk9IjAuNSIpLGZldGNoKCIvYXBpL3Nlc3Npb25zLyIrZW5jb2RlVVJJQ29tcG9uZW50KHIuc2VsZWN0ZWRJZCkrIi90b2dnbGUtYXV0by1hcHByb3ZlIix7bWV0aG9kOiJQT1NUIixjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gbi5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKG4pe2lmKG4mJm4uZXJyb3Ipe2sobi5lcnJvciwiZXJyb3IiKTtyZXR1cm59JChuKSxCcygpO3ZhciBpPW4uYXV0b0FwcHJvdmVQZXJtaXNzaW9ucztrKGk/Ilx1ODFFQVx1NTJBOFx1NjI3OVx1NTFDNlx1NURGMlx1NUYwMFx1NTQyRiI6Ilx1ODFFQVx1NTJBOFx1NjI3OVx1NTFDNlx1NURGMlx1NTE3M1x1OTVFRCIsImluZm8iKX0pLmNhdGNoKGZ1bmN0aW9uKG4pe2sobiYmbi5tZXNzYWdlfHwiXHU2NUUwXHU2Q0Q1XHU1MjA3XHU2MzYyXHU4MUVBXHU1MkE4XHU2Mjc5XHU1MUM2XHUzMDAyIiwiZXJyb3IiKX0pLmZpbmFsbHkoZnVuY3Rpb24oKXt0JiYodC5zdHlsZS5vcGFjaXR5PSIiKX0pfX1mdW5jdGlvbiBCcygpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhdXRvLWFwcHJvdmUtdG9nZ2xlIiksdD1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oYSl7cmV0dXJuIGEuaWQ9PT1yLnNlbGVjdGVkSWR9KTtpZihkbCh0KSl7ZSYmZS5wYXJlbnROb2RlJiZlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZSk7cmV0dXJufWlmKGUpe3ZhciBuPSJjb21wb3Nlci1waWxsIGNvbXBvc2VyLXBpbGwtY2hpcCBhdXRvLWFwcHJvdmUtaW5kaWNhdG9yIixpPXQmJnQuYXV0b0FwcHJvdmVQZXJtaXNzaW9ucztpPyhlLmNsYXNzTmFtZT1uKyIgYWN0aXZlIixlLnRpdGxlPSJcdTgxRUFcdTUyQThcdTYyNzlcdTUxQzZcdTVERjJcdTU0MkZcdTc1MjggXHUyMDE0IFx1NzBCOVx1NTFGQlx1NTE3M1x1OTVFRCIsZS5zZXRBdHRyaWJ1dGUoImFyaWEtcHJlc3NlZCIsInRydWUiKSxlLnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsIlx1ODFFQVx1NTJBOFx1NjI3OVx1NTFDNlx1NURGMlx1NTQyRlx1NzUyOFx1RkYwQ1x1NzBCOVx1NTFGQlx1NTE3M1x1OTVFRCIpLGUuaW5uZXJIVE1MPXooInNoaWVsZENoZWNrIix7c2l6ZToxMixzdHJva2VXaWR0aDoxLjcsY2xzOiJjb21wb3Nlci1waWxsLWljb24ifSkrJzxzcGFuIGNsYXNzPSJjb21wb3Nlci1waWxsLWxhYmVsIj5cdTgxRUFcdTUyQTg8L3NwYW4+Jyk6KGUuY2xhc3NOYW1lPW4sZS50aXRsZT0iXHU4MUVBXHU1MkE4XHU2Mjc5XHU1MUM2XHU1REYyXHU1MTczXHU5NUVEIFx1MjAxNCBcdTcwQjlcdTUxRkJcdTVGMDBcdTU0MkYiLGUuc2V0QXR0cmlidXRlKCJhcmlhLXByZXNzZWQiLCJmYWxzZSIpLGUuc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIiwiXHU4MUVBXHU1MkE4XHU2Mjc5XHU1MUM2XHU1REYyXHU1MTczXHU5NUVEXHVGRjBDXHU3MEI5XHU1MUZCXHU1RjAwXHU1NDJGIiksZS5pbm5lckhUTUw9eigic2hpZWxkIix7c2l6ZToxMixzdHJva2VXaWR0aDoxLjcsY2xzOiJjb21wb3Nlci1waWxsLWljb24ifSkrJzxzcGFuIGNsYXNzPSJjb21wb3Nlci1waWxsLWxhYmVsIj5cdTYyNEJcdTUyQTg8L3NwYW4+Jyl9fWZ1bmN0aW9uIHdkKGUsdCxuKXtyZXR1cm4gci50ZXJtaW5hbD9vaSh0fHxyLnNlbGVjdGVkSWQsZSx7bW9kZTpufHwiYXBwZW5kIn0pOiExfWZ1bmN0aW9uIERzKCl7ci5wb2xsVGltZXImJihjbGVhckludGVydmFsKHIucG9sbFRpbWVyKSxyLnBvbGxUaW1lcj1udWxsKX1mdW5jdGlvbiBJZyhlKXtyLmN1cnJlbnRWaWV3PWV8fCJ0ZXJtaW5hbCIsci5jdXJyZW50VmlldyE9PSJ0ZXJtaW5hbCImJihNbighMSkseW8oKSkscWkoKSxMYSgpO3ZhciB0PVN0KCk7dCYmKHIuY3VycmVudE1lc3NhZ2VzPVJlKHQsbnQodCx0Lm91dHB1dCwhMCkpKSxtdCgpLHIuY3VycmVudFZpZXc9PT0idGVybWluYWwiJiYoX3QoITApLHIudGVybWluYWwmJnIudGVybWluYWwucmVtZWFzdXJlJiZyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXtyLnRlcm1pbmFsJiZyLnRlcm1pbmFsLnJlbWVhc3VyZSgpfSkpfWZ1bmN0aW9uIHZyKGUpe3IucmVuZGVyUGVuZGluZyYmIWV8fChyLnJlbmRlclBlbmRpbmc9ITAsZT8od2koITApLHIucmVuZGVyUGVuZGluZz0hMSk6cmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7d2koITEpLHIucmVuZGVyUGVuZGluZz0hMX0pKX1yLmNoYXRSZW5kZXJUaW1lcj1udWxsO2Z1bmN0aW9uIHNhKGUpe2lmKCEoci5jaGF0UmVuZGVyVGltZXImJiFlKSl7aWYoci5jaGF0UmVuZGVyVGltZXImJmNsZWFyVGltZW91dChyLmNoYXRSZW5kZXJUaW1lciksZSl7ci5jaGF0UmVuZGVyVGltZXI9bnVsbCx2cigpO3JldHVybn12YXIgdD1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oYSl7cmV0dXJuIGEuaWQ9PT1yLnNlbGVjdGVkSWR9KSxuPXQmJnQuc3RhdHVzPT09InJ1bm5pbmciJiZ0LnNlc3Npb25LaW5kIT09InN0cnVjdHVyZWQiLGk9bj9qczpScztyLmNoYXRSZW5kZXJUaW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ci5jaGF0UmVuZGVyVGltZXI9bnVsbDt2YXIgYT1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24odSl7cmV0dXJuIHUuaWQ9PT1yLnNlbGVjdGVkSWR9KTthJiYoci5jdXJyZW50TWVzc2FnZXM9UmUoYSxudChhLGEub3V0cHV0LCEwKSkpLHZyKCl9LGkpfX12YXIgb2E9MCxyaT0wLGtzPTAsbXI9MDtmdW5jdGlvbiBsYSgpe3JldHVybiB3aW5kb3cuX193YW5kSW9zTmF0aXZlPT09ITB9ZnVuY3Rpb24gQXMoZSl7a3M9TWF0aC5tYXgoa3MsRGF0ZS5ub3coKSsoZXx8MTgwMCkpfWZ1bmN0aW9uIHhzKGUsdCl7c2V0VGltZW91dChmdW5jdGlvbigpe3ZhciBuPWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7aWkobikmJm4hPT10fHxBcyhlKX0sMzApfWZ1bmN0aW9uIENkKGUpe3JldHVybiBNYXRoLm1heCh3aW5kb3cuaW5uZXJIZWlnaHR8fDAsZSYmZS5oZWlnaHR8fDAsZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50JiZkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0fHwwLGRvY3VtZW50LmJvZHkmJmRvY3VtZW50LmJvZHkuY2xpZW50SGVpZ2h0fHwwKX1mdW5jdGlvbiBCZChlKXt2YXIgdD1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsbj1NYXRoLm1heCh3aW5kb3cuaW5uZXJXaWR0aHx8MCxlJiZlLndpZHRofHwwLHQmJnQuY2xpZW50V2lkdGh8fDApLGk9Q2QoZSk7cmV0dXJuIW9hfHxNYXRoLmFicyhuLW9hKT44PyhvYT1uLHJpPWkpOmk+cmkmJihyaT1pKSxNYXRoLm1heCgxLE1hdGgucm91bmQocml8fGl8fDEpKX1mdW5jdGlvbiBEZChlLHQsbixpKXtyZXR1cm4gZXx8IWxhKCk/ITE6dD4wfHxpPm4rMX1mdW5jdGlvbiBVbihlKXt2YXIgdD13aW5kb3cudmlzdWFsVmlld3BvcnQ7aWYodCl7dmFyIG49ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O2lmKG4uY2xhc3NMaXN0LnRvZ2dsZSgiaXMta2V5Ym9hcmQtb3BlbiIsISFlKSx3aW5kb3cuX193YW5kSW1lTmF0aXZlKXtuLnN0eWxlLnNldFByb3BlcnR5KCItLWFwcC12aWV3cG9ydC10b3AiLCIwcHgiKSxuLnN0eWxlLnNldFByb3BlcnR5KCItLWFwcC12aWV3cG9ydC1oZWlnaHQiLE1hdGgucm91bmQodC5oZWlnaHQpKyJweCIpO3JldHVybn12YXIgaT1CZCh0KSxhPU1hdGgubWF4KDAsTWF0aC5yb3VuZCh0Lm9mZnNldFRvcHx8MCkpLHU9TWF0aC5tYXgoMSxNYXRoLnJvdW5kKHQuaGVpZ2h0KSk7KCFlJiZsYSgpfHxEZChlLGEsdSxpKSkmJihhPTAsdT1NYXRoLm1heCh1LGkpKSxuLnN0eWxlLnNldFByb3BlcnR5KCItLWFwcC12aWV3cG9ydC10b3AiLGErInB4Iiksbi5zdHlsZS5zZXRQcm9wZXJ0eSgiLS1hcHAtdmlld3BvcnQtaGVpZ2h0Iix1KyJweCIpLChlfHwod2luZG93LnNjcm9sbFl8fDApPjApJiZfYSgpfX1mdW5jdGlvbiBpaShlKXtpZighZSlyZXR1cm4hMTt2YXIgdD1lLnRhZ05hbWU7aWYodD09PSJURVhUQVJFQSJ8fHQ9PT0iU0VMRUNUIilyZXR1cm4hMDtpZih0PT09IklOUFVUIil7dmFyIG49KGUuZ2V0QXR0cmlidXRlKCJ0eXBlIil8fCJ0ZXh0IikudG9Mb3dlckNhc2UoKTtyZXR1cm4hL14oYnV0dG9ufGNoZWNrYm94fGNvbG9yfGZpbGV8aGlkZGVufGltYWdlfHJhZGlvfHJhbmdlfHJlc2V0fHN1Ym1pdCkkL2kudGVzdChuKX1yZXR1cm4hIWUuaXNDb250ZW50RWRpdGFibGV9ZnVuY3Rpb24ga2QoKXtpZighKCJ2aXN1YWxWaWV3cG9ydCJpbiB3aW5kb3cpfHx3aW5kb3cuX193YW5kVmlld3BvcnRIYW5kbGVyc0JvdW5kKXJldHVybjt3aW5kb3cuX193YW5kVmlld3BvcnRIYW5kbGVyc0JvdW5kPSEwO3ZhciBlPXdpbmRvdy52aXN1YWxWaWV3cG9ydCx0PWUuaGVpZ2h0LG49ITEsaT1NYXRoLm1heCh3aW5kb3cuaW5uZXJXaWR0aHx8MCxlLndpZHRofHwwKSxhPU1hdGgubWF4KHdpbmRvdy5pbm5lckhlaWdodHx8MCxlLmhlaWdodHx8MCksdT1bXTtmdW5jdGlvbiBzKCl7cmV0dXJuIE1hdGgubWF4KHdpbmRvdy5pbm5lckhlaWdodHx8MCxlLmhlaWdodHx8MCl9ZnVuY3Rpb24gbygpe3ZhciBnPU1hdGgubWF4KHdpbmRvdy5pbm5lcldpZHRofHwwLGUud2lkdGh8fDApLG09cygpO2lmKE1hdGguYWJzKGctaSk+OCl7aT1nLGE9bTtyZXR1cm59bT5hJiYoYT1tKX1mdW5jdGlvbiBsKGcsbSl7dmFyIHk9ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCx3PXk9PT1nfHxpaSh5KSxFPWEtZS5oZWlnaHQsQj1hLSh3aW5kb3cuaW5uZXJIZWlnaHR8fGUuaGVpZ2h0fHwwKSxGPURhdGUubm93KCk8bXI7cmV0dXJuIEY/ISEodyYmKEU+MTIwfHxCPjEyMCkpOiEhKG0+ODB8fHcmJihFPjEyMHx8Qj4xMjApfHxuJiYoRT44MHx8bT4zMikpfWZ1bmN0aW9uIGMoKXt1LmZvckVhY2goZnVuY3Rpb24oZyl7Y2xlYXJUaW1lb3V0KGcpfSksdT1bNjAsMTgwLDM2MCw2MjAsOTAwXS5tYXAoZnVuY3Rpb24oZyl7cmV0dXJuIHNldFRpbWVvdXQoZnVuY3Rpb24oKXtVbihuKX0sZyl9KX1mdW5jdGlvbiBmKCl7WzAsNTAsMTIwLDIyMCwzNjAsNTYwXS5mb3JFYWNoKGZ1bmN0aW9uKGcpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXtkKCk7dmFyIG09ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0LWJveCIpO20mJmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1tJiZGaShtKX0sZyl9KX1mdW5jdGlvbiBkKCl7aWYoZSl7dmFyIGc9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0LWJveCIpLG09d2luZG93LmlubmVySGVpZ2h0LWUuaGVpZ2h0LWUub2Zmc2V0VG9wO28oKTt2YXIgeT1sKGcsbSksdz1NYXRoLmFicyhlLmhlaWdodC10KT44O2lmKFVuKHkpLHkmJighbnx8dykmJnN2KGUsZykmJkZpKGcpLCFuJiZ5KXt2YXIgRT1yLnRlcm1pbmFsQXV0b0ZvbGxvd3x8dmEoKTtaZSgia2V5Ym9hcmQtb3BlbiIse2ZvcmNlUmVwbGF5OiEwfSksd2luZG93Ll9fd2FuZEltZU5hdGl2ZXx8c2V0VGltZW91dChmdW5jdGlvbigpe1VuKCEwKX0sMjIwKSxjKCksRSYmc2V0VGltZW91dChmdW5jdGlvbigpe3IudGVybWluYWwmJkZ0KCJmb3JjZSIpfSwyMjApfWlmKG4mJiF5KXt2YXIgQj0hIXdpbmRvdy5fX3dhbmRJbWVOYXRpdmU7Qnx8KEFzKDIyMDApLG1yPURhdGUubm93KCkrMTIwMCxVbighMSksX2EoKSksYygpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtCfHwoVW4oITEpLF9hKCkpLFplKCJrZXlib2FyZC1jbG9zZSIse2ZvcmNlUmVwbGF5OiEwfSksRnQoImtleWJvYXJkIil9LDIwMCl9dyYmbj09PXkmJlplKCJ2aWV3cG9ydCIpLG49eSx0PWUuaGVpZ2h0fX12YXIgdj1udWxsO2Z1bmN0aW9uIGgoKXt2IT09bnVsbCYmY2FuY2VsQW5pbWF0aW9uRnJhbWUodiksdj1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXt2PW51bGwsZCgpfSl9ZS5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLGgpLGUuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIixoKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIixmdW5jdGlvbigpe2RvY3VtZW50LnZpc2liaWxpdHlTdGF0ZT09PSJ2aXNpYmxlIiYmKGgoKSxzZXRUaW1lb3V0KGgsMjQwKSxzZXRUaW1lb3V0KGgsNzIwKSl9KSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicGFnZXNob3ciLGZ1bmN0aW9uKGcpe2cmJmcucGVyc2lzdGVkJiYoaCgpLHNldFRpbWVvdXQoaCwyNDApKX0pLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImZvY3Vzb3V0IixmdW5jdGlvbihnKXshZ3x8IWcudGFyZ2V0fHxpaShnLnRhcmdldCkmJih4cygxNjAwLGcudGFyZ2V0KSxsYSgpJiYobXI9TWF0aC5tYXgobXIsRGF0ZS5ub3coKSsxMjAwKSksc2V0VGltZW91dChoLDgwKSxzZXRUaW1lb3V0KGgsNDIwKSl9KSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJmb2N1c2luIixmdW5jdGlvbihnKXshZ3x8IWcudGFyZ2V0fHwhaWkoZy50YXJnZXQpfHxmKCl9KSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigid2FuZC1pb3MtaW1lLXN0YXRlIixmdW5jdGlvbihnKXt2YXIgbT1nJiZnLmRldGFpbCYmZy5kZXRhaWwuc3RhdGU7bT09PSJoaWRkZW4iJiYobXI9RGF0ZS5ub3coKSs5MDApLGYoKSxjKCl9KSxkKCl9ZnVuY3Rpb24gQWQoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0Iik7aWYoZSl7dmFyIHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7dC5jbGFzc05hbWU9InRlcm1pbmFsLXJlc2l6ZS1oYW5kbGUiLHQuaW5uZXJIVE1MPSImIzg5NDI7IixlLmFwcGVuZENoaWxkKHQpO3ZhciBuPSExLGk9MCxhPTA7dC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLGZ1bmN0aW9uKHUpe249ITAsaT11LmNsaWVudFksYT1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodCxkb2N1bWVudC5ib2R5LnN0eWxlLmN1cnNvcj0ibnMtcmVzaXplIixkb2N1bWVudC5ib2R5LnN0eWxlLnVzZXJTZWxlY3Q9Im5vbmUiLHUucHJldmVudERlZmF1bHQoKX0pLHIucmVzaXplTW91c2VNb3ZlPWZ1bmN0aW9uKHUpe2lmKG4pe3ZhciBzPXUuY2xpZW50WS1pLG89TWF0aC5tYXgoMjAwLE1hdGgubWluKGErcyx3aW5kb3cuaW5uZXJIZWlnaHQtMjAwKSk7ZS5zdHlsZS5oZWlnaHQ9bysicHgiLGUuc3R5bGUuZmxleD0ibm9uZSIsX3QoKX19LGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsci5yZXNpemVNb3VzZU1vdmUpLHIucmVzaXplTW91c2VVcD1mdW5jdGlvbigpe24mJihuPSExLGRvY3VtZW50LmJvZHkuc3R5bGUuY3Vyc29yPSIiLGRvY3VtZW50LmJvZHkuc3R5bGUudXNlclNlbGVjdD0iIixfdCgpKX0sZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsci5yZXNpemVNb3VzZVVwKSx0LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLGZ1bmN0aW9uKHUpe249ITAsaT11LnRvdWNoZXNbMF0uY2xpZW50WSxhPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0LHUucHJldmVudERlZmF1bHQoKX0se3Bhc3NpdmU6ITF9KSxyLnJlc2l6ZVRvdWNoTW92ZT1mdW5jdGlvbih1KXtpZihuKXt2YXIgcz11LnRvdWNoZXNbMF0uY2xpZW50WS1pLG89TWF0aC5tYXgoMjAwLE1hdGgubWluKGErcyx3aW5kb3cuaW5uZXJIZWlnaHQtMjAwKSk7ZS5zdHlsZS5oZWlnaHQ9bysicHgiLGUuc3R5bGUuZmxleD0ibm9uZSIsX3QoKSx1LnByZXZlbnREZWZhdWx0KCl9fSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLHIucmVzaXplVG91Y2hNb3ZlLHtwYXNzaXZlOiExfSksci5yZXNpemVUb3VjaEVuZD1mdW5jdGlvbigpe24mJihuPSExLF90KCkpfSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsci5yZXNpemVUb3VjaEVuZCl9fWZ1bmN0aW9uIFNzKCl7cmV0dXJuISFTdCgpfWZ1bmN0aW9uIGNhKGUpe3ZhciB0PU1hdGgubWF4KHBuLHdpbmRvdy5pbm5lcldpZHRoLWdpLXBuKSxuPU1hdGgubWF4KHBuLHdpbmRvdy5pbm5lckhlaWdodC1naS1wbik7cmV0dXJue3JpZ2h0Ok1hdGgubWluKE1hdGgubWF4KHBuLGUucmlnaHQpLHQpLGJvdHRvbTpNYXRoLm1pbihNYXRoLm1heChwbixlLmJvdHRvbSksbil9fWZ1bmN0aW9uIElzKCl7aWYoci5qb3lzdGlja0JhbGxFbCl7dmFyIGU9Y2Eoci5qb3lzdGlja1Bvc3x8e3JpZ2h0OjE4LGJvdHRvbTo5Nn0pO3Iuam95c3RpY2tCYWxsRWwuc3R5bGUucmlnaHQ9ZS5yaWdodCsicHgiLHIuam95c3RpY2tCYWxsRWwuc3R5bGUuYm90dG9tPWUuYm90dG9tKyJweCJ9fWZ1bmN0aW9uIHhkKGUsdCl7dmFyIG49Y2Eoe3JpZ2h0OmUsYm90dG9tOnR9KTtyLmpveXN0aWNrUG9zPW47dHJ5e2xvY2FsU3RvcmFnZS5zZXRJdGVtKCJ3YW5kLWJhbGwtcG9zIixKU09OLnN0cmluZ2lmeShuKSl9Y2F0Y2h7fX1mdW5jdGlvbiBTZCgpe2Z1bmN0aW9uIGUodSxzLG8pe3JldHVybic8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9IndqcC1rZXknKyhvPyIgIitvOiIiKSsnIiBkYXRhLWtleT0iJyt1KyciPicrcysiPC9idXR0b24+In12YXIgdD0nPGRpdiBjbGFzcz0id2pwLWRwYWQiPjxkaXYgY2xhc3M9IndqcC1kcGFkLXJvdyI+JytlKCJ1cCIsIlx1MjE5MSIsIndqcC1kaXIiKSsnPC9kaXY+PGRpdiBjbGFzcz0id2pwLWRwYWQtcm93Ij4nK2UoImxlZnQiLCJcdTIxOTAiLCJ3anAtZGlyIikrZSgiZG93biIsIlx1MjE5MyIsIndqcC1kaXIiKStlKCJyaWdodCIsIlx1MjE5MiIsIndqcC1kaXIiKSsiPC9kaXY+PC9kaXY+IixuPSIiLGk7Zm9yKGk9MDtpPElhLmxlbmd0aDtpKyspbis9ZShJYVtpXS5rZXksSWFbaV0ubGFiZWwsIiIpO3ZhciBhPSc8ZGl2IGNsYXNzPSJ3anAtaGVhZGVyIj48c3BhbiBjbGFzcz0id2pwLXRpdGxlIj4nK3ooInBhdyIse3NpemU6MTMsc3Ryb2tlV2lkdGg6MS42LGNsczoid2pwLXRpdGxlLWljb24ifSkrJzxzcGFuPlx1OTA2NVx1NjNBN1x1OTc2Mlx1Njc3Rjwvc3Bhbj48L3NwYW4+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJ3anAtY2xvc2UiIGFyaWEtbGFiZWw9Ilx1NTE3M1x1OTVFRFx1OTA2NVx1NjNBN1x1OTc2Mlx1Njc3RiI+Jyt6KCJ4Iix7c2l6ZToxMyxzdHJva2VXaWR0aDoyfSkrIjwvYnV0dG9uPjwvZGl2PiIrdCsnPGRpdiBjbGFzcz0id2pwLWdyaWQgd2pwLWZua2V5cyI+JytuKyI8L2Rpdj4iO3JldHVybiBhfWZ1bmN0aW9uIElkKCl7aWYoIXIuam95c3RpY2tSb290RWwpe3ZhciBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2UuY2xhc3NOYW1lPSJ3YW5kLWpveXN0aWNrLXJvb3QiLFsicG9pbnRlcmRvd24iLCJwb2ludGVydXAiLCJ0b3VjaHN0YXJ0IiwidG91Y2hlbmQiLCJjbGljayJdLmZvckVhY2goZnVuY3Rpb24oYSl7ZS5hZGRFdmVudExpc3RlbmVyKGEsVHMsITApfSk7dmFyIHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7dC5jbGFzc05hbWU9IndhbmQtam95c3RpY2stYmFja2Ryb3AiLGUuYXBwZW5kQ2hpbGQodCk7dmFyIG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7bi5jbGFzc05hbWU9IndhbmQtam95c3RpY2stcGFuZWwiLG4uaW5uZXJIVE1MPVNkKCksbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsX2QpLGUuYXBwZW5kQ2hpbGQobik7dmFyIGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7aS5jbGFzc05hbWU9IndhbmQtam95c3RpY2stYmFsbCIsaS5zZXRBdHRyaWJ1dGUoInJvbGUiLCJidXR0b24iKSxpLnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsIldhbmQgXHU5MDY1XHU2M0E3XHU5NzYyXHU2NzdGIiksaS5zZXRBdHRyaWJ1dGUoInRpdGxlIiwiXHU3MEI5XHU1MUZCXHU2MjUzXHU1RjAwXHU5MDY1XHU2M0E3XHU5NzYyXHU2NzdGXHVGRjBDXHU2MkQ2XHU1MkE4XHU1M0VGXHU3OUZCXHU1MkE4XHU0RjREXHU3RjZFIiksaS5pbm5lckhUTUw9eigicGF3Iix7c2l6ZToyNSxzdHJva2VXaWR0aDoxLjYsY2xzOiJ3YW5kLWpveXN0aWNrLWxvZ28ifSksZS5hcHBlbmRDaGlsZChpKSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGUpLHIuam95c3RpY2tSb290RWw9ZSxyLmpveXN0aWNrQmFja2Ryb3BFbD10LHIuam95c3RpY2tQYW5lbEVsPW4sci5qb3lzdGlja0JhbGxFbD1pLElzKCksaS5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVyZG93biIsVGQpLGkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKGEpe2EucHJldmVudERlZmF1bHQoKSxhLnN0b3BQcm9wYWdhdGlvbigpfSksdC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVyZG93biIsZnVuY3Rpb24oYSl7ci5qb3lzdGlja1Bpbm5lZE9wZW4mJnIuam95c3RpY2tHZXN0dXJlPT1udWxsJiYoYS5wcmV2ZW50RGVmYXVsdCgpLGdyKCkpfSksdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oYSl7YS5wcmV2ZW50RGVmYXVsdCgpLGEuc3RvcFByb3BhZ2F0aW9uKCl9KSxyLmpveXN0aWNrUmVzaXplSGFuZGxlcj1mdW5jdGlvbigpe0lzKCl9LHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLHIuam95c3RpY2tSZXNpemVIYW5kbGVyKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigib3JpZW50YXRpb25jaGFuZ2UiLHIuam95c3RpY2tSZXNpemVIYW5kbGVyKSxPcygpfX1mdW5jdGlvbiBUcygpe2lmKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoImlzLXdhbmQtbmF0aXZlLWlucHV0Iikpe3ZhciBlPWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7aWYoZSYmdHlwZW9mIGUuYmx1cj09ImZ1bmN0aW9uIil0cnl7ZS5ibHVyKCl9Y2F0Y2h7fXNldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgdD1kb2N1bWVudC5hY3RpdmVFbGVtZW50O2lmKHQmJnR5cGVvZiB0LmJsdXI9PSJmdW5jdGlvbiIpdHJ5e3QuYmx1cigpfWNhdGNoe319LDApfX1mdW5jdGlvbiBUZChlKXtpZihTcygpJiYhKChlLnBvaW50ZXJUeXBlPT09Im1vdXNlInx8ZS5wb2ludGVyVHlwZT09PSJwZW4iKSYmZS5idXR0b24hPT0wKSYmci5qb3lzdGlja1BvaW50ZXJJZD09PW51bGwpe1RzKCksZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcFByb3BhZ2F0aW9uKCk7dmFyIHQ9ZS5wb2ludGVyVHlwZT09PSJtb3VzZSJ8fGUucG9pbnRlclR5cGU9PT0icGVuIjtyLmpveXN0aWNrUG9pbnRlcklkPWUucG9pbnRlcklkLHIuam95c3RpY2tQcmVzc1N0YXJ0PXt4OmUuY2xpZW50WCx5OmUuY2xpZW50WSx0OkRhdGUubm93KCl9LHIuam95c3RpY2tHZXN0dXJlPSJwZW5kaW5nIjt0cnl7ci5qb3lzdGlja0JhbGxFbC5zZXRQb2ludGVyQ2FwdHVyZShlLnBvaW50ZXJJZCl9Y2F0Y2h7fXR8fChyLmpveXN0aWNrTG9uZ1ByZXNzVGltZXI9c2V0VGltZW91dChmdW5jdGlvbigpe3Iuam95c3RpY2tHZXN0dXJlPT09InBlbmRpbmciJiZMcygpfSxEcCkpLHIuam95c3RpY2tNb3ZlSGFuZGxlcj1MZCxyLmpveXN0aWNrVXBIYW5kbGVyPU1kLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJtb3ZlIixyLmpveXN0aWNrTW92ZUhhbmRsZXIpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJ1cCIsci5qb3lzdGlja1VwSGFuZGxlciksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcmNhbmNlbCIsci5qb3lzdGlja1VwSGFuZGxlcil9fWZ1bmN0aW9uIExzKCl7ci5qb3lzdGlja0dlc3R1cmU9Im1vdmUiLHIuam95c3RpY2tQaW5uZWRPcGVuJiZncigpLHIuam95c3RpY2tCYWxsRWwmJnIuam95c3RpY2tCYWxsRWwuY2xhc3NMaXN0LmFkZCgiZHJhZ2dpbmciKSxyLmpveXN0aWNrQmFja2Ryb3BFbCYmci5qb3lzdGlja0JhY2tkcm9wRWwuY2xhc3NMaXN0LmFkZCgiYWN0aXZlIil9ZnVuY3Rpb24gTXMoZSx0KXtpZihyLmpveXN0aWNrQmFsbEVsKXt2YXIgbj1jYSh7cmlnaHQ6d2luZG93LmlubmVyV2lkdGgtZS1naS8yLGJvdHRvbTp3aW5kb3cuaW5uZXJIZWlnaHQtdC1naS8yfSk7ci5qb3lzdGlja0JhbGxFbC5zdHlsZS5yaWdodD1uLnJpZ2h0KyJweCIsci5qb3lzdGlja0JhbGxFbC5zdHlsZS5ib3R0b209bi5ib3R0b20rInB4In19ZnVuY3Rpb24gTGQoZSl7aWYoIShlLnBvaW50ZXJJZCE9PXIuam95c3RpY2tQb2ludGVySWR8fCFyLmpveXN0aWNrQmFsbEVsKSl7aWYoZS5wcmV2ZW50RGVmYXVsdCgpLHIuam95c3RpY2tHZXN0dXJlPT09Im1vdmUiKXtNcyhlLmNsaWVudFgsZS5jbGllbnRZKTtyZXR1cm59aWYoci5qb3lzdGlja0dlc3R1cmU9PT0icGVuZGluZyIpe3ZhciB0PWUuY2xpZW50WC1yLmpveXN0aWNrUHJlc3NTdGFydC54LG49ZS5jbGllbnRZLXIuam95c3RpY2tQcmVzc1N0YXJ0Lnk7TWF0aC5zcXJ0KHQqdCtuKm4pPD1rcHx8KGUucG9pbnRlclR5cGU9PT0ibW91c2UifHxlLnBvaW50ZXJUeXBlPT09InBlbiI/KExzKCksTXMoZS5jbGllbnRYLGUuY2xpZW50WSkpOihyLmpveXN0aWNrTG9uZ1ByZXNzVGltZXImJihjbGVhclRpbWVvdXQoci5qb3lzdGlja0xvbmdQcmVzc1RpbWVyKSxyLmpveXN0aWNrTG9uZ1ByZXNzVGltZXI9bnVsbCksci5qb3lzdGlja0dlc3R1cmU9ImNhbmNlbGxlZCIpKX19fWZ1bmN0aW9uIE1kKGUpe2lmKGUucG9pbnRlcklkPT09ci5qb3lzdGlja1BvaW50ZXJJZCl7ci5qb3lzdGlja0xvbmdQcmVzc1RpbWVyJiYoY2xlYXJUaW1lb3V0KHIuam95c3RpY2tMb25nUHJlc3NUaW1lciksci5qb3lzdGlja0xvbmdQcmVzc1RpbWVyPW51bGwpO3ZhciB0PXIuam95c3RpY2tHZXN0dXJlO2lmKHQ9PT0icGVuZGluZyIpe3ZhciBuPWUuY2xpZW50WC1yLmpveXN0aWNrUHJlc3NTdGFydC54LGk9ZS5jbGllbnRZLXIuam95c3RpY2tQcmVzc1N0YXJ0Lnk7TWF0aC5zcXJ0KG4qbitpKmkpPD1BcCYmUGQoKX1lbHNlIGlmKHQ9PT0ibW92ZSIpe3ZhciBhPXIuam95c3RpY2tCYWxsRWw/ci5qb3lzdGlja0JhbGxFbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTpudWxsO2EmJnhkKHdpbmRvdy5pbm5lcldpZHRoLWEucmlnaHQsd2luZG93LmlubmVySGVpZ2h0LWEuYm90dG9tKX1xcygpfX1mdW5jdGlvbiBxcygpe2lmKHIuam95c3RpY2tMb25nUHJlc3NUaW1lciYmKGNsZWFyVGltZW91dChyLmpveXN0aWNrTG9uZ1ByZXNzVGltZXIpLHIuam95c3RpY2tMb25nUHJlc3NUaW1lcj1udWxsKSxyLmpveXN0aWNrQmFsbEVsJiZyLmpveXN0aWNrUG9pbnRlcklkIT09bnVsbCl0cnl7ci5qb3lzdGlja0JhbGxFbC5yZWxlYXNlUG9pbnRlckNhcHR1cmUoci5qb3lzdGlja1BvaW50ZXJJZCl9Y2F0Y2h7fXIuam95c3RpY2tNb3ZlSGFuZGxlciYmKGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJtb3ZlIixyLmpveXN0aWNrTW92ZUhhbmRsZXIpLHIuam95c3RpY2tNb3ZlSGFuZGxlcj1udWxsKSxyLmpveXN0aWNrVXBIYW5kbGVyJiYoZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcnVwIixyLmpveXN0aWNrVXBIYW5kbGVyKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVyY2FuY2VsIixyLmpveXN0aWNrVXBIYW5kbGVyKSxyLmpveXN0aWNrVXBIYW5kbGVyPW51bGwpLHIuam95c3RpY2tCYWxsRWwmJnIuam95c3RpY2tCYWxsRWwuY2xhc3NMaXN0LnJlbW92ZSgiZHJhZ2dpbmciKSxyLmpveXN0aWNrQmFja2Ryb3BFbCYmIXIuam95c3RpY2tQaW5uZWRPcGVuJiZyLmpveXN0aWNrQmFja2Ryb3BFbC5jbGFzc0xpc3QucmVtb3ZlKCJhY3RpdmUiKSxyLmpveXN0aWNrUG9pbnRlcklkPW51bGwsci5qb3lzdGlja0dlc3R1cmU9bnVsbCxyLmpveXN0aWNrUHJlc3NTdGFydD1udWxsfWZ1bmN0aW9uIHFkKGUpe2lmKGU9PT0iY3RybCJ8fGU9PT0iYWx0Inx8ZT09PSJzaGlmdCIpe3IubW9kaWZpZXJzW2VdPSFyLm1vZGlmaWVyc1tlXSxocigpO3JldHVybn12YXIgdD1TdCgpO2lmKHQmJnVlKHQpKXsoZT09PSJjdHJsX2MifHxlPT09ImVzY2FwZSIpJiZPZCh0LGUpLHlpKCksaHIoKTtyZXR1cm59dmFyIG49Ym8oZSx7Y3RybDpyLm1vZGlmaWVycy5jdHJsLGFsdDpyLm1vZGlmaWVycy5hbHQsc2hpZnQ6ci5tb2RpZmllcnMuc2hpZnR9KTtuJiZobyhuLGUpLHlpKCksaHIoKSxIcCgpfWZ1bmN0aW9uIE9kKGUsdCl7IWV8fCFlLmlkfHxmZXRjaCgiL2FwaS9zdHJ1Y3R1cmVkLXNlc3Npb25zLyIrZS5pZCsiL21lc3NhZ2VzIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeSh7aW5wdXQ6IiIsaW50ZXJydXB0OiEwLHByZXNlcnZlUXVldWU6ITB9KX0pLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIG4ub2s/bi5qc29uKCk6bi5qc29uKCkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm57fX0pLnRoZW4oZnVuY3Rpb24oaSl7dGhyb3cgbmV3IEVycm9yKGkmJmkuZXJyb3J8fCJcdTRFMkRcdTY1QURcdTU5MzFcdThEMjUgKGtleT0iK3QrIikiKX0pfSkudGhlbihmdW5jdGlvbihuKXtpZihuJiZuLmlkJiYoJChuKSxuLmlkPT09ci5zZWxlY3RlZElkKSl7dmFyIGk9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGEpe3JldHVybiBhLmlkPT09bi5pZH0pfHxuO3IuY3VycmVudE1lc3NhZ2VzPVJlKGksbnQoaSxuLm91dHB1dCwhMSkpLHZyKCEwKSx0eXBlb2Ygc3Q9PSJmdW5jdGlvbiImJnN0KCl9fSkuY2F0Y2goZnVuY3Rpb24obil7biYmbi5tZXNzYWdlJiZjb25zb2xlLmRlYnVnKCJbd2FuZF0gam95c3RpY2sgaW50ZXJydXB0IG5vLW9wOiIsbi5tZXNzYWdlKX0pfWZ1bmN0aW9uIFBkKCl7ci5qb3lzdGlja1Bpbm5lZE9wZW4/Z3IoKTpIZCgpfWZ1bmN0aW9uIEhkKCl7aWYoISghci5qb3lzdGlja1BhbmVsRWx8fCFyLmpveXN0aWNrQmFsbEVsKSl7ci5qb3lzdGlja1Bpbm5lZE9wZW49ITA7dmFyIGU9ci5qb3lzdGlja0JhbGxFbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtyLmpveXN0aWNrUGFuZWxFbC5zdHlsZS5yaWdodD1NYXRoLm1heChwbix3aW5kb3cuaW5uZXJXaWR0aC1lLnJpZ2h0KSsicHgiLHIuam95c3RpY2tQYW5lbEVsLnN0eWxlLmJvdHRvbT1NYXRoLm1heChwbix3aW5kb3cuaW5uZXJIZWlnaHQtZS50b3ArMTApKyJweCIsci5qb3lzdGlja1BhbmVsRWwuY2xhc3NMaXN0LmFkZCgiYWN0aXZlIiksci5qb3lzdGlja0JhbGxFbC5jbGFzc0xpc3QuYWRkKCJwYW5lbC1vcGVuIiksci5qb3lzdGlja0JhY2tkcm9wRWwmJnIuam95c3RpY2tCYWNrZHJvcEVsLmNsYXNzTGlzdC5hZGQoImFjdGl2ZSIpLGhyKCl9fWZ1bmN0aW9uIGdyKCl7ci5qb3lzdGlja1Bpbm5lZE9wZW49ITEsci5qb3lzdGlja1BhbmVsRWwmJnIuam95c3RpY2tQYW5lbEVsLmNsYXNzTGlzdC5yZW1vdmUoImFjdGl2ZSIpLHIuam95c3RpY2tCYWxsRWwmJnIuam95c3RpY2tCYWxsRWwuY2xhc3NMaXN0LnJlbW92ZSgicGFuZWwtb3BlbiIpLHIuam95c3RpY2tCYWNrZHJvcEVsJiZyLmpveXN0aWNrR2VzdHVyZT09bnVsbCYmci5qb3lzdGlja0JhY2tkcm9wRWwuY2xhc3NMaXN0LnJlbW92ZSgiYWN0aXZlIil9ZnVuY3Rpb24gaHIoKXtyLmpveXN0aWNrUGFuZWxFbCYmWyJjdHJsIiwiYWx0Il0uZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdD1yLmpveXN0aWNrUGFuZWxFbC5xdWVyeVNlbGVjdG9yKCcud2pwLW1vZFtkYXRhLWtleT0iJytlKyciXScpO3QmJnQuY2xhc3NMaXN0LnRvZ2dsZSgiYWN0aXZlIiwhIXIubW9kaWZpZXJzW2VdKX0pfWZ1bmN0aW9uIF9kKGUpe3ZhciB0PWUudGFyZ2V0JiZlLnRhcmdldC5jbG9zZXN0P2UudGFyZ2V0LmNsb3Nlc3QoIi53anAtY2xvc2UiKTpudWxsO2lmKHQpe2UucHJldmVudERlZmF1bHQoKSxlLnN0b3BQcm9wYWdhdGlvbigpLGdyKCk7cmV0dXJufXZhciBuPWUudGFyZ2V0JiZlLnRhcmdldC5jbG9zZXN0P2UudGFyZ2V0LmNsb3Nlc3QoIi53anAta2V5Iik6bnVsbDtpZihuKXtlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKTt2YXIgaT1uLmdldEF0dHJpYnV0ZSgiZGF0YS1rZXkiKTtpJiZxZChpKX19ZnVuY3Rpb24gT3MoKXt2YXIgZT1yLmpveXN0aWNrUm9vdEVsO2lmKGUpe3ZhciB0PVNzKCk7ZS5jbGFzc0xpc3QudG9nZ2xlKCJ2aXNpYmxlIix0KSx0fHwoKHIuam95c3RpY2tQb2ludGVySWQhPT1udWxsfHxyLmpveXN0aWNrR2VzdHVyZSkmJnFzKCksci5qb3lzdGlja1Bpbm5lZE9wZW4mJmdyKCksci5qb3lzdGlja0JhY2tkcm9wRWwmJnIuam95c3RpY2tCYWNrZHJvcEVsLmNsYXNzTGlzdC5yZW1vdmUoImFjdGl2ZSIpKX19ZnVuY3Rpb24gTmQoKXtyLmpveXN0aWNrTG9uZ1ByZXNzVGltZXImJihjbGVhclRpbWVvdXQoci5qb3lzdGlja0xvbmdQcmVzc1RpbWVyKSxyLmpveXN0aWNrTG9uZ1ByZXNzVGltZXI9bnVsbCksci5qb3lzdGlja01vdmVIYW5kbGVyJiYoZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcm1vdmUiLHIuam95c3RpY2tNb3ZlSGFuZGxlciksci5qb3lzdGlja01vdmVIYW5kbGVyPW51bGwpLHIuam95c3RpY2tVcEhhbmRsZXImJihkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVydXAiLHIuam95c3RpY2tVcEhhbmRsZXIpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJjYW5jZWwiLHIuam95c3RpY2tVcEhhbmRsZXIpLHIuam95c3RpY2tVcEhhbmRsZXI9bnVsbCksci5qb3lzdGlja1Jlc2l6ZUhhbmRsZXImJih3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVzaXplIixyLmpveXN0aWNrUmVzaXplSGFuZGxlciksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm9yaWVudGF0aW9uY2hhbmdlIixyLmpveXN0aWNrUmVzaXplSGFuZGxlciksci5qb3lzdGlja1Jlc2l6ZUhhbmRsZXI9bnVsbCksci5qb3lzdGlja1Jvb3RFbCYmci5qb3lzdGlja1Jvb3RFbC5wYXJlbnROb2RlJiZyLmpveXN0aWNrUm9vdEVsLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoci5qb3lzdGlja1Jvb3RFbCksci5qb3lzdGlja1Jvb3RFbD1udWxsLHIuam95c3RpY2tQYW5lbEVsPW51bGwsci5qb3lzdGlja0JhY2tkcm9wRWw9bnVsbCxyLmpveXN0aWNrQmFsbEVsPW51bGwsci5qb3lzdGlja1BvaW50ZXJJZD1udWxsLHIuam95c3RpY2tHZXN0dXJlPW51bGwsci5qb3lzdGlja1ByZXNzU3RhcnQ9bnVsbCxyLmpveXN0aWNrUGlubmVkT3Blbj0hMX1mdW5jdGlvbiBqZCgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKTtpZihlKXt2YXIgdD0hTmUoKTtyLnJlc2l6ZUhhbmRsZXI9ZnVuY3Rpb24oKXtfdCghMCk7dmFyIG49IU5lKCk7dCE9PW4mJih0PW4sIW4mJnIuc2lkZWJhclBpbm5lZCYmci5zZXNzaW9uc0RyYXdlck9wZW4/KHIuc2Vzc2lvbnNEcmF3ZXJPcGVuPSExLHhlKCJ3YW5kLXNpZGViYXItb3BlbiIsITEpLE1yKCkpOm4mJnIuc2lkZWJhclBpbm5lZCYmIXIuc2Vzc2lvbnNEcmF3ZXJPcGVuJiYoci5zZXNzaW9uc0RyYXdlck9wZW49ITAseGUoIndhbmQtc2lkZWJhci1vcGVuIiwhMCksTXIoKSkpfSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIixyLnJlc2l6ZUhhbmRsZXIpLHdpbmRvdy52aXN1YWxWaWV3cG9ydCYmKHIudmlzdWFsVmlld3BvcnRIYW5kbGVyPWZ1bmN0aW9uKCl7X3QoITApfSx3aW5kb3cudmlzdWFsVmlld3BvcnQuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIixyLnZpc3VhbFZpZXdwb3J0SGFuZGxlcikpLHIudmlzaWJpbGl0eUhhbmRsZXI9ZnVuY3Rpb24oKXtkb2N1bWVudC5oaWRkZW58fFplKCJ2aXNpYmlsaXR5Iix7Zm9yY2VSZXBsYXk6ITB9KX0sZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidmlzaWJpbGl0eWNoYW5nZSIsci52aXNpYmlsaXR5SGFuZGxlciksci5vcmllbnRhdGlvbkhhbmRsZXI9ZnVuY3Rpb24oKXtaZSgib3JpZW50YXRpb24iLHtmb3JjZVJlcGxheTohMH0pfSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigib3JpZW50YXRpb25jaGFuZ2UiLHIub3JpZW50YXRpb25IYW5kbGVyKSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXtfdCghMCl9KX19ZnVuY3Rpb24gUmQoKXtyLnRlcm1pbmFsSGVhbHRoVGltZXJ8fChyLnRlcm1pbmFsSGVhbHRoVGltZXI9c2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXtpZighKCFyLnRlcm1pbmFsfHxyLmN1cnJlbnRWaWV3IT09InRlcm1pbmFsInx8ZG9jdW1lbnQuaGlkZGVuKSl7dmFyIGU9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKHUpe3JldHVybiB1LmlkPT09ci5zZWxlY3RlZElkfSk7aWYoISghZXx8ZS5zZXNzaW9uS2luZD09PSJzdHJ1Y3R1cmVkIikpe1plKCJoZWFsdGgiKTt2YXIgdD1EYXRlLm5vdygpLG49ci5sYXN0Q2h1bmtBdD4wJiZ0LXIubGFzdENodW5rQXQ+MzAwLGk9dC1yLmxhc3RUZXJtaW5hbFJlc3luY0F0PjNlNCxhPXIubGFzdENodW5rQXQ+ci5sYXN0VGVybWluYWxSZXN5bmNBdDtpJiZhJiYobnx8ZS5zdGF0dXMhPT0icnVubmluZyIpJiZyLnRlcm1pbmFsT3V0cHV0JiZTbigpfX19LDVlMykpfWZ1bmN0aW9uIFdkKCl7ci50ZXJtaW5hbEhlYWx0aFRpbWVyJiYoY2xlYXJJbnRlcnZhbChyLnRlcm1pbmFsSGVhbHRoVGltZXIpLHIudGVybWluYWxIZWFsdGhUaW1lcj1udWxsKX1mdW5jdGlvbiB5cigpe1dkKCksci5yZXNpemVUaW1lciYmKGNsZWFyVGltZW91dChyLnJlc2l6ZVRpbWVyKSxyLnJlc2l6ZVRpbWVyPW51bGwpLHIucmVzaXplT2JzZXJ2ZXImJihyLnJlc2l6ZU9ic2VydmVyLmRpc2Nvbm5lY3QoKSxyLnJlc2l6ZU9ic2VydmVyPW51bGwpLHIucmVzaXplSGFuZGxlciYmKHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJyZXNpemUiLHIucmVzaXplSGFuZGxlciksci5yZXNpemVIYW5kbGVyPW51bGwpLHIudmlzdWFsVmlld3BvcnRIYW5kbGVyJiZ3aW5kb3cudmlzdWFsVmlld3BvcnQmJih3aW5kb3cudmlzdWFsVmlld3BvcnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVzaXplIixyLnZpc3VhbFZpZXdwb3J0SGFuZGxlciksci52aXN1YWxWaWV3cG9ydEhhbmRsZXI9bnVsbCksci52aXNpYmlsaXR5SGFuZGxlciYmKGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInZpc2liaWxpdHljaGFuZ2UiLHIudmlzaWJpbGl0eUhhbmRsZXIpLHIudmlzaWJpbGl0eUhhbmRsZXI9bnVsbCksci5vcmllbnRhdGlvbkhhbmRsZXImJih3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigib3JpZW50YXRpb25jaGFuZ2UiLHIub3JpZW50YXRpb25IYW5kbGVyKSxyLm9yaWVudGF0aW9uSGFuZGxlcj1udWxsKSxbWyJtb3VzZW1vdmUiLCJyZXNpemVNb3VzZU1vdmUiXSxbIm1vdXNldXAiLCJyZXNpemVNb3VzZVVwIl0sWyJ0b3VjaG1vdmUiLCJyZXNpemVUb3VjaE1vdmUiXSxbInRvdWNoZW5kIiwicmVzaXplVG91Y2hFbmQiXV0uZm9yRWFjaChmdW5jdGlvbihhKXtyW2FbMV1dJiYoZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihhWzBdLHJbYVsxXV0pLHJbYVsxXV09bnVsbCl9KSxWbigpO3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKTtpZihyLnRlcm1pbmFsVmlld3BvcnRFbCYmKHIudGVybWluYWxWaWV3cG9ydFNjcm9sbEhhbmRsZXImJnIudGVybWluYWxWaWV3cG9ydEVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoInNjcm9sbCIsci50ZXJtaW5hbFZpZXdwb3J0U2Nyb2xsSGFuZGxlciksci50ZXJtaW5hbFZpZXdwb3J0VG91Y2hIYW5kbGVyJiZyLnRlcm1pbmFsVmlld3BvcnRFbC5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLHIudGVybWluYWxWaWV3cG9ydFRvdWNoSGFuZGxlciksci50ZXJtaW5hbFZpZXdwb3J0VG91Y2hTdGFydEhhbmRsZXImJnIudGVybWluYWxWaWV3cG9ydEVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLHIudGVybWluYWxWaWV3cG9ydFRvdWNoU3RhcnRIYW5kbGVyKSksZSYmKHIudGVybWluYWxXaGVlbEhhbmRsZXImJmUucmVtb3ZlRXZlbnRMaXN0ZW5lcigid2hlZWwiLHIudGVybWluYWxXaGVlbEhhbmRsZXIpLHIudGVybWluYWxDbGlja0hhbmRsZXImJmUucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLHIudGVybWluYWxDbGlja0hhbmRsZXIpKSxyLnRlcm1pbmFsVmlld3BvcnRFbD1udWxsLHIudGVybWluYWxWaWV3cG9ydFNjcm9sbEhhbmRsZXI9bnVsbCxyLnRlcm1pbmFsVmlld3BvcnRUb3VjaEhhbmRsZXI9bnVsbCxyLnRlcm1pbmFsVmlld3BvcnRUb3VjaFN0YXJ0SGFuZGxlcj1udWxsLHIudGVybWluYWxXaGVlbEhhbmRsZXI9bnVsbCxyLnRlcm1pbmFsQ2xpY2tIYW5kbGVyPW51bGwsci50ZXJtaW5hbFNjcm9sbGJhckhpZGVUaW1lciYmKGNsZWFyVGltZW91dChyLnRlcm1pbmFsU2Nyb2xsYmFySGlkZVRpbWVyKSxyLnRlcm1pbmFsU2Nyb2xsYmFySGlkZVRpbWVyPW51bGwpLHIudGVybWluYWxTY3JvbGxiYXJFbCYmci50ZXJtaW5hbFNjcm9sbGJhckVsLnBhcmVudE5vZGUmJnIudGVybWluYWxTY3JvbGxiYXJFbC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHIudGVybWluYWxTY3JvbGxiYXJFbCksci50ZXJtaW5hbFNjcm9sbGJhckVsPW51bGwsci50ZXJtaW5hbFNjcm9sbGJhclRodW1iRWw9bnVsbCxyLnRlcm1pbmFsU2Nyb2xsYmFyRHJhZ2dpbmc9ITEsci50ZXJtaW5hbFNjcm9sbGJhclJhZlBlbmRpbmc9ITEsci50ZXJtaW5hbCYmKHIudGVybWluYWwuZGVzdHJveSgpLHIudGVybWluYWw9bnVsbCksZSlmb3IodmFyIHQ9ZS5xdWVyeVNlbGVjdG9yQWxsKCIudGVybWluYWwtc2Nyb2xsLXdyYXAiKSxuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciBpPXRbbl07aS5wYXJlbnROb2RlPT09ZSYmZS5yZW1vdmVDaGlsZChpKX1oYSgpLHIuc3luY091dHB1dEJ1ZmZlcj1udWxsLHIuc3luY091dHB1dERlYWRsaW5lPTAsci5zeW5jRnJhbWluZ1Jlc2lkdWU9ITEsci50ZXJtaW5hbFNlc3Npb25JZD1udWxsLHIudGVybWluYWxPdXRwdXQ9IiIsci50ZXJtaW5hbE91dHB1dE1hcmtlcj0wLHIudGVybWluYWxBdXRvRm9sbG93PSEwLHIuc2hvd1Rlcm1pbmFsSnVtcFRvQm90dG9tPSExLG10KCksci5zb2Z0UmVzeW5jVGltZXImJihjbGVhclRpbWVvdXQoci5zb2Z0UmVzeW5jVGltZXIpLHIuc29mdFJlc3luY1RpbWVyPW51bGwpLHIuX3Jlc3luY0NodW5rVGFpbFRpbWVyJiYoY2xlYXJUaW1lb3V0KHIuX3Jlc3luY0NodW5rVGFpbFRpbWVyKSxyLl9yZXN5bmNDaHVua1RhaWxUaW1lcj1udWxsKSxyLl9yZXN5bmNDaHVua0xhc3RBdD0wLHIuX3Jlc3luY1N0YXRzV2luZG93U3RhcnQ9MCxyLl9yZXN5bmNTdGF0c0NvdW50PTAsci5fcmVzeW5jTGFzdFdhcm5BdD0wLHIuX3Jlc3luY0luUHJvZ3Jlc3M9ITEsci5sYXN0UmVzaXplPXtjb2xzOjAscm93czowfSxOZCgpfWZ1bmN0aW9uIGFpKGUsdCl7aWYoci5zZWxlY3RlZElkKXt2YXIgbj1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oYSl7cmV0dXJuIGEuaWQ9PT1yLnNlbGVjdGVkSWR9KTtpZighKCFufHxuLnN0YXR1cyE9PSJydW5uaW5nIikmJiF1ZShuKSl7ZT4yNTYmJihlPTI1NiksdD4xNjAmJih0PTE2MCk7dmFyIGk9e2NvbHM6ZSxyb3dzOnR9OyhyLmxhc3RSZXNpemUuY29scyE9PWkuY29sc3x8ci5sYXN0UmVzaXplLnJvd3MhPT1pLnJvd3MpJiYoci5sYXN0UmVzaXplPWksZmV0Y2goIi9hcGkvc2Vzc2lvbnMvIityLnNlbGVjdGVkSWQrIi9yZXNpemUiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KGkpfSkuY2F0Y2goZnVuY3Rpb24oKXt9KSl9fX1mdW5jdGlvbiBaZShlLHQpe2lmKCFyLnRlcm1pbmFsKXJldHVybiExO3ZhciBuPXR8fHt9LGk9bi5mb3JjZVJlcGxheT09PSEwLGE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpO2lmKCFhfHxhLm9mZnNldFdpZHRoPT09MHx8YS5vZmZzZXRIZWlnaHQ9PT0wKXJldHVybiBicihlfHwiZml0LXJldHJ5Iix7Zm9yY2VSZXBsYXk6aX0pLCExO3ZhciB1PXIudGVybWluYWxBdXRvRm9sbG93fHx2YSgpLHM9ci50ZXJtaW5hbC5jb2xzLG89ci50ZXJtaW5hbC5yb3dzO3JldHVybiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXtyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXtpZihyLnRlcm1pbmFsKXt0eXBlb2Ygci50ZXJtaW5hbC5yZW1lYXN1cmU9PSJmdW5jdGlvbiImJnIudGVybWluYWwucmVtZWFzdXJlKCksYWkoci50ZXJtaW5hbC5jb2xzLHIudGVybWluYWwucm93cyk7dmFyIGw9ci50ZXJtaW5hbC5jb2xzIT09c3x8ci50ZXJtaW5hbC5yb3dzIT09bzshbCYmaSYmci50ZXJtaW5hbE91dHB1dCYmU24oe3NraXBGaXQ6ITB9KSx1JiZGdCgiZm9yY2UiKX19KX0pLCEwfWZ1bmN0aW9uIGJyKGUsdCl7aWYoIXIudGVybWluYWwpcmV0dXJuO3ZhciBuPXR8fHt9LGk9bi5mb3JjZVJlcGxheSE9PSExLGE9MCx1PTg7ZnVuY3Rpb24gcygpe2lmKHIudGVybWluYWwpe3ZhciBvPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKTtpZihvJiZvLm9mZnNldEhlaWdodCxvJiZvLm9mZnNldFdpZHRoPjAmJm8ub2Zmc2V0SGVpZ2h0PjApe1plKGUse2ZvcmNlUmVwbGF5Oml9KTtyZXR1cm59KythPj11fHwoYTw9ND9yZXF1ZXN0QW5pbWF0aW9uRnJhbWUocyk6c2V0VGltZW91dChzLDMyKSl9fXMoKX1mdW5jdGlvbiBfdChlKXtyLnJlc2l6ZVRpbWVyJiYoY2xlYXJUaW1lb3V0KHIucmVzaXplVGltZXIpLHIucmVzaXplVGltZXI9bnVsbCk7dmFyIHQ9ZT8wOjEwMDtyLnJlc2l6ZVRpbWVyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtyLnJlc2l6ZVRpbWVyPW51bGwscmVxdWVzdEFuaW1hdGlvbkZyYW1lKHpkKX0sdCl9ZnVuY3Rpb24gemQoKXtpZihyLnRlcm1pbmFsKXt2YXIgZT1yLnRlcm1pbmFsQXV0b0ZvbGxvd3x8dmEoKTtlJiZGdCgiZm9yY2UiKSxhaShyLnRlcm1pbmFsLmNvbHMsci50ZXJtaW5hbC5yb3dzKX19ZnVuY3Rpb24gZW4oZSl7ci53b3JraW5nRGlyPWU7dHJ5e2xvY2FsU3RvcmFnZS5zZXRJdGVtKCJ3YW5kLXdvcmtpbmctZGlyIixlKX1jYXRjaHt9VWQoZSl9ZnVuY3Rpb24gZGEoZSl7ZmV0Y2goIi9hcGkvcmVjZW50LXBhdGhzIix7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIHQuanNvbigpfSkudGhlbihmdW5jdGlvbih0KXtlKHR8fFtdKX0pLmNhdGNoKGZ1bmN0aW9uKCl7ZShbXSl9KX1mdW5jdGlvbiBVZChlKXtyZXR1cm4gZmV0Y2goIi9hcGkvcmVjZW50LXBhdGhzIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeSh7cGF0aDplfSl9KS5jYXRjaChmdW5jdGlvbigpe30pfWZ1bmN0aW9uIGZhKGUpe3ZhciB0PXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihuKXtyZXR1cm4gbi5pZD09PWV9KTt0JiZ0LnN0YXR1cyE9PSJydW5uaW5nIiYmIXVlKHQpP0JvKGUpOnp0KGUpLFV0KCl9ZnVuY3Rpb24gVmQoZSl7dmFyIHQ9ZS50YXJnZXQ7aWYoISghdHx8ISh0IGluc3RhbmNlb2YgRWxlbWVudCkpKXt2YXIgbj10LmNsb3Nlc3QoIi5zaWRlYmFyLWNvbGxhcHNlZC10aWxlIik7aWYobiYmbiBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KXtpZihuLmRhdGFzZXQuY29sbGFwc2VkTmV3U2Vzc2lvbil7ZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcFByb3BhZ2F0aW9uKCksbHUoKTtyZXR1cm59aWYobi5kYXRhc2V0LmNvbGxhcHNlZFNlc3Npb25JZCl7ZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcFByb3BhZ2F0aW9uKCksZmEobi5kYXRhc2V0LmNvbGxhcHNlZFNlc3Npb25JZCk7cmV0dXJufWlmKG4uZGF0YXNldC5jb2xsYXBzZWRIaXN0b3J5SWQpe2UucHJldmVudERlZmF1bHQoKSxlLnN0b3BQcm9wYWdhdGlvbigpO3ZhciBpPW4uZGF0YXNldC5jb2xsYXBzZWRIaXN0b3J5SWQsYT1uLmRhdGFzZXQuY3dkfHwiIjtiaShpLGEpLnRoZW4oZnVuY3Rpb24odil7diYmdi5pZCYmKHIuc2VsZWN0ZWRJZD12LmlkLHdlKCksci5kcmFmdHNbdi5pZF09IiIsZ24oKS50aGVuKGZ1bmN0aW9uKCl7enQodi5pZCl9KSl9KTtyZXR1cm59fXZhciB1PXQuY2xvc2VzdCgiI2NsYXVkZS1oaXN0b3J5LXRvZ2dsZSIpO2lmKHUpe2UucHJldmVudERlZmF1bHQoKSxlLnN0b3BQcm9wYWdhdGlvbigpLHIuY2xhdWRlSGlzdG9yeUV4cGFuZGVkPSFyLmNsYXVkZUhpc3RvcnlFeHBhbmRlZCxyLmNsYXVkZUhpc3RvcnlFeHBhbmRlZCYmIXIuY2xhdWRlSGlzdG9yeUxvYWRlZCYmdGkoKSxtZSgpO3JldHVybn12YXIgcz10LmNsb3Nlc3QoIltkYXRhLWFjdGlvbl0iKTtpZihzJiZzIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpe2lmKGUucHJldmVudERlZmF1bHQoKSxlLnN0b3BQcm9wYWdhdGlvbigpLHMuZGF0YXNldC5hY3Rpb249PT0idG9nZ2xlLW1hbmFnZS1tb2RlIilpZCgpO2Vsc2UgaWYocy5kYXRhc2V0LmFjdGlvbj09PSJzZWxlY3QtYWxsLXZpc2libGUiKW1zKCk7ZWxzZSBpZihzLmRhdGFzZXQuYWN0aW9uPT09ImNsZWFyLXNlbGVjdGlvbiIpdWQoKTtlbHNlIGlmKHMuZGF0YXNldC5hY3Rpb249PT0iZGVsZXRlLXNlbGVjdGVkIilzZCgpO2Vsc2UgaWYocy5kYXRhc2V0LmFjdGlvbj09PSJ0b2dnbGUtc2VsZWN0aW9uIilwcihzLmRhdGFzZXQua2luZCxzLmRhdGFzZXQuaWQpO2Vsc2UgaWYocy5kYXRhc2V0LmFjdGlvbj09PSJzd2lwZS1kZWxldGUtc2Vzc2lvbiImJnMuZGF0YXNldC5zZXNzaW9uSWQpT2Eocy5kYXRhc2V0LnNlc3Npb25JZCk7ZWxzZSBpZihzLmRhdGFzZXQuYWN0aW9uPT09ImRlbGV0ZS1zZXNzaW9uIiYmcy5kYXRhc2V0LnNlc3Npb25JZCkoZnVuY3Rpb24odil7eG4oIlx1Nzg2RVx1OEJBNFx1NTIyMFx1OTY2NFx1OEZEOVx1NEUyQVx1NEYxQVx1OEJERFx1NTQxN1x1RkYxRlx1NkI2NFx1NjRDRFx1NEY1Q1x1NjVFMFx1NkNENVx1NjRBNFx1OTUwMFx1MzAwMiIse3RpdGxlOiJcdTUyMjBcdTk2NjRcdTRGMUFcdThCREQifSkudGhlbihmdW5jdGlvbihoKXtoJiZPYSh2KX0pfSkocy5kYXRhc2V0LnNlc3Npb25JZCk7ZWxzZSBpZihzLmRhdGFzZXQuYWN0aW9uPT09ImRlbGV0ZS1oaXN0b3J5IiYmcy5kYXRhc2V0LmNsYXVkZVNlc3Npb25JZCkoZnVuY3Rpb24odixoKXt4bigiXHU3ODZFXHU4QkE0XHU5NjkwXHU4NUNGXHU4RkQ5XHU2NzYxIENsYXVkZSBcdTUzODZcdTUzRjJcdTU0MTdcdUZGMUYiLHt0aXRsZToiXHU5NjkwXHU4NUNGXHU1Mzg2XHU1M0YyXHU0RjFBXHU4QkREIixva0xhYmVsOiJcdTk2OTBcdTg1Q0YifSkudGhlbihmdW5jdGlvbihnKXtnJiZFbyh2LGgpfSl9KShzLmRhdGFzZXQuY2xhdWRlU2Vzc2lvbklkLHMuY2xvc2VzdCgiLnNlc3Npb24taXRlbSIpKTtlbHNlIGlmKHMuZGF0YXNldC5hY3Rpb249PT0idG9nZ2xlLWhpc3RvcnktZGlyZWN0b3J5IiYmcy5kYXRhc2V0LmN3ZCl7dmFyIG89cy5kYXRhc2V0LmN3ZDtyLmNsYXVkZUhpc3RvcnlFeHBhbmRlZERpcnNbb109IXIuY2xhdWRlSGlzdG9yeUV4cGFuZGVkRGlyc1tvXSxtZSgpfWVsc2UgaWYocy5kYXRhc2V0LmFjdGlvbj09PSJkZWxldGUtaGlzdG9yeS1kaXJlY3RvcnkiJiZzLmRhdGFzZXQuY3dkKShmdW5jdGlvbih2LGgpe3ZhciBnPVZwKHYpLG09Um4oKS5maWx0ZXIoZnVuY3Rpb24oeSl7cmV0dXJuIHkuY3dkPT09dn0pLmxlbmd0aDt4bigiXHU3ODZFXHU4QkE0XHU2RTA1XHU3QTdBXHU2QjY0XHU3NkVFXHU1RjU1XHU0RTBCXHU3Njg0ICIrbSsiIFx1Njc2MSBDbGF1ZGUgXHU1Mzg2XHU1M0YyXHU1NDE3XHVGRjFGIix7dGl0bGU6Ilx1NkUwNVx1N0E3QVx1NzZFRVx1NUY1NVx1NTM4Nlx1NTNGMiIsb2tMYWJlbDoiXHU2RTA1XHU3QTdBIn0pLnRoZW4oZnVuY3Rpb24oeSl7eSYmKEZvKGcsITApLFVwKHYsaCxnKSl9KX0pKHMuZGF0YXNldC5jd2Qscyk7ZWxzZSBpZihzLmRhdGFzZXQuYWN0aW9uPT09ImNsZWFyLWFsbC1oaXN0b3J5IilvZCgpO2Vsc2UgaWYocy5kYXRhc2V0LmFjdGlvbj09PSJ0b2dnbGUtYXJjaGl2ZWQtZ3JvdXAiKXIuYXJjaGl2ZWRFeHBhbmRlZD0hci5hcmNoaXZlZEV4cGFuZGVkLG1lKCk7ZWxzZSBpZihzLmRhdGFzZXQuYWN0aW9uPT09InJlc3VtZSImJnMuZGF0YXNldC5zZXNzaW9uSWQpR3Aocyk7ZWxzZSBpZihzLmRhdGFzZXQuYWN0aW9uPT09InJlc3VtZS1oaXN0b3J5IiYmcy5kYXRhc2V0LmNsYXVkZVNlc3Npb25JZClYcChzKTtlbHNlIGlmKHMuZGF0YXNldC5hY3Rpb249PT0icmVzdW1lLWNvZGV4LWhpc3RvcnkiJiZzLmRhdGFzZXQuY2xhdWRlU2Vzc2lvbklkKVlwKHMpO2Vsc2UgaWYocy5kYXRhc2V0LmFjdGlvbj09PSJkZWxldGUtY29kZXgtaGlzdG9yeSImJnMuZGF0YXNldC5jbGF1ZGVTZXNzaW9uSWQpJHAocyk7ZWxzZSBpZihzLmRhdGFzZXQuYWN0aW9uPT09InRvZ2dsZS1jb2RleC1oaXN0b3J5LWRpcmVjdG9yeSImJnMuZGF0YXNldC5jd2Qpe3ZhciBsPXMuZGF0YXNldC5jd2Q7ci5jb2RleEhpc3RvcnlFeHBhbmRlZERpcnNbbF09IXIuY29kZXhIaXN0b3J5RXhwYW5kZWREaXJzW2xdLG1lKCl9ZWxzZSBzLmRhdGFzZXQuYWN0aW9uPT09Indvcmt0cmVlLW1lcmdlIiYmcy5kYXRhc2V0LnNlc3Npb25JZD9obChzLmRhdGFzZXQuc2Vzc2lvbklkKTpzLmRhdGFzZXQuYWN0aW9uPT09Indvcmt0cmVlLWNsZWFudXAiJiZzLmRhdGFzZXQuc2Vzc2lvbklkJiZ5bChzLmRhdGFzZXQuc2Vzc2lvbklkKTtyZXR1cm59dmFyIGM9dC5jbG9zZXN0KCIuc2Vzc2lvbi1pdGVtIik7aWYoYyl7aWYoci5zZXNzaW9uc01hbmFnZU1vZGUpe2MuZGF0YXNldC5zZXNzaW9uSWQ/cHIoInNlc3Npb25zIixjLmRhdGFzZXQuc2Vzc2lvbklkKTpjLmRhdGFzZXQuY2xhdWRlSGlzdG9yeUlkJiZwcigiaGlzdG9yeSIsYy5kYXRhc2V0LmNsYXVkZUhpc3RvcnlJZCk7cmV0dXJufWlmKGMuY2xhc3NMaXN0LmNvbnRhaW5zKCJzd2lwZWQiKSl7U3IoKTtyZXR1cm59aWYod28pcmV0dXJuO2lmKGMuZGF0YXNldC5zZXNzaW9uSWQpZmEoYy5kYXRhc2V0LnNlc3Npb25JZCk7ZWxzZSBpZihjLmRhdGFzZXQuY2xhdWRlSGlzdG9yeUlkKXt2YXIgZj1jLmRhdGFzZXQuY2xhdWRlSGlzdG9yeUlkLGQ9Yy5kYXRhc2V0LmN3ZDtiaShmLGQpLnRoZW4oZnVuY3Rpb24odil7diYmdi5pZCYmKHIuc2VsZWN0ZWRJZD12LmlkLHdlKCksci5kcmFmdHNbdi5pZF09IiIsZ24oKS50aGVuKGZ1bmN0aW9uKCl7enQodi5pZCksVXQoKX0pKX0pfX19fWZ1bmN0aW9uIEtkKGUpe2lmKCEoZS5rZXkhPT0iRW50ZXIiJiZlLmtleSE9PSIgIikpe3ZhciB0PWUudGFyZ2V0LmNsb3Nlc3QoIi5zZXNzaW9uLWl0ZW0iKTtpZih0KXtpZihlLnByZXZlbnREZWZhdWx0KCksci5zZXNzaW9uc01hbmFnZU1vZGUpe3QuZGF0YXNldC5zZXNzaW9uSWQ/cHIoInNlc3Npb25zIix0LmRhdGFzZXQuc2Vzc2lvbklkKTp0LmRhdGFzZXQuY2xhdWRlSGlzdG9yeUlkJiZwcigiaGlzdG9yeSIsdC5kYXRhc2V0LmNsYXVkZUhpc3RvcnlJZCk7cmV0dXJufWlmKHQuZGF0YXNldC5zZXNzaW9uSWQpZmEodC5kYXRhc2V0LnNlc3Npb25JZCk7ZWxzZSBpZih0LmRhdGFzZXQuY2xhdWRlSGlzdG9yeUlkKXt2YXIgbj10LmRhdGFzZXQuY2xhdWRlSGlzdG9yeUlkLGk9dC5kYXRhc2V0LmN3ZDtiaShuLGkpLnRoZW4oZnVuY3Rpb24oYSl7YSYmYS5pZCYmKHIuc2VsZWN0ZWRJZD1hLmlkLHdlKCksci5kcmFmdHNbYS5pZF09IiIsZ24oKS50aGVuKGZ1bmN0aW9uKCl7enQoYS5pZCksVXQoKX0pKX0pfX19fWZ1bmN0aW9uIHBhKGUsdCl7dmFyIG49ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGEpe3JldHVybiBhLmlkPT09ci5zZWxlY3RlZElkfSk7aWYobil7dmFyIGk9bltlXTtpZighaSl7aygiXHU1RjUzXHU1MjREXHU0RjFBXHU4QkREXHU2Q0ExXHU2NzA5XHU1M0VGXHU1OTBEXHU1MjM2XHU3Njg0XHU1MTg1XHU1QkI5XHUzMDAyIiwiZXJyb3IiKTtyZXR1cm59SHIoU3RyaW5nKGkpLG51bGwsZnVuY3Rpb24oKXtrKHR8fCJcdTVERjJcdTU5MERcdTUyMzYiLCJpbmZvIil9KX19ZnVuY3Rpb24ga3QoKXtyZXR1cm4hci50ZXJtaW5hbHx8IXIudGVybWluYWwuZWxlbWVudD9udWxsOihyLnRlcm1pbmFsVmlld3BvcnRFbD1yLnRlcm1pbmFsLmVsZW1lbnQsci50ZXJtaW5hbFZpZXdwb3J0RWwpfWZ1bmN0aW9uIFZuKCl7ci50ZXJtaW5hbFNjcm9sbElkbGVUaW1lciYmKGNsZWFyVGltZW91dChyLnRlcm1pbmFsU2Nyb2xsSWRsZVRpbWVyKSxyLnRlcm1pbmFsU2Nyb2xsSWRsZVRpbWVyPW51bGwpfWZ1bmN0aW9uIG10KCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlcm1pbmFsLWp1bXAtYm90dG9tIiksdD0hIXIuc2VsZWN0ZWRJZCYmci5jdXJyZW50Vmlldz09PSJ0ZXJtaW5hbCImJiFyLnRlcm1pbmFsQXV0b0ZvbGxvdyYmIVBzKCk7ci5zaG93VGVybWluYWxKdW1wVG9Cb3R0b209dCxlJiZlLmNsYXNzTGlzdC50b2dnbGUoInZpc2libGUiLHQpO3ZhciBuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKTtuJiZuLmNsYXNzTGlzdC50b2dnbGUoImhhcy1qdW1wLWJ0biIsdCl9ZnVuY3Rpb24gdmEoKXt2YXIgZT1rdCgpO2lmKCFlKXJldHVybiEwO3ZhciB0PWUuc2Nyb2xsSGVpZ2h0LWUuY2xpZW50SGVpZ2h0LWUuc2Nyb2xsVG9wO3JldHVybiB0PD1yLnRlcm1pbmFsU2Nyb2xsVGhyZXNob2xkfWZ1bmN0aW9uIFBzKCl7dmFyIGU9a3QoKTtpZighZSlyZXR1cm4hMDt2YXIgdD1lLnNjcm9sbEhlaWdodC1lLmNsaWVudEhlaWdodC1lLnNjcm9sbFRvcDtyZXR1cm4gdDw9Mn1mdW5jdGlvbiBIcyhlKXtpZihyLnRlcm1pbmFsKXt2YXIgdD1rdCgpO2lmKHQpe3ZhciBuPWU/NTAwOjEyMDtyLnRlcm1pbmFsUHJvZ3JhbW1hdGljU2Nyb2xsVW50aWw9TWF0aC5tYXgoci50ZXJtaW5hbFByb2dyYW1tYXRpY1Njcm9sbFVudGlsLERhdGUubm93KCkrbiksZT90LnNjcm9sbFRvKHt0b3A6dC5zY3JvbGxIZWlnaHQsYmVoYXZpb3I6InNtb290aCJ9KTp0LnNjcm9sbFRvcD10LnNjcm9sbEhlaWdodH19fWZ1bmN0aW9uIG1hKCl7ci50ZXJtaW5hbEF1dG9Gb2xsb3c9ITEsVm4oKSxyLnRlcm1pbmFsUHJvZ3JhbW1hdGljU2Nyb2xsVW50aWw9MCxyLnRlcm1pbmFsJiYiX3Nob3VsZFNjcm9sbFRvQm90dG9tImluIHIudGVybWluYWwmJihyLnRlcm1pbmFsLl9zaG91bGRTY3JvbGxUb0JvdHRvbT0hMSksbXQoKX1mdW5jdGlvbiBGdChlKXtpZihyLnRlcm1pbmFsKXt2YXIgdD1lPT09ImZvcmNlIjtpZih0KXtyLnRlcm1pbmFsQXV0b0ZvbGxvdz0hMCxWbigpLEhzKCExKSxtdCgpO3JldHVybn1pZighci50ZXJtaW5hbEF1dG9Gb2xsb3cpe210KCk7cmV0dXJufUhzKCExKSxtdCgpfX1mdW5jdGlvbiBKZChlKXt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt0LmNsYXNzTmFtZT0idGVybWluYWwtc2Nyb2xsYmFyIjt2YXIgbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtuLmNsYXNzTmFtZT0idGVybWluYWwtc2Nyb2xsYmFyLXRyYWNrIjt2YXIgaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtpLmNsYXNzTmFtZT0idGVybWluYWwtc2Nyb2xsYmFyLXRodW1iIixuLmFwcGVuZENoaWxkKGkpLHQuYXBwZW5kQ2hpbGQobiksZS5hcHBlbmRDaGlsZCh0KSxyLnRlcm1pbmFsU2Nyb2xsYmFyRWw9dCxyLnRlcm1pbmFsU2Nyb2xsYmFyVGh1bWJFbD1pLHIudGVybWluYWxTY3JvbGxiYXJIaWRlVGltZXI9bnVsbCxyLnRlcm1pbmFsU2Nyb2xsYmFyRHJhZ2dpbmc9ITEsci50ZXJtaW5hbFNjcm9sbGJhclJhZlBlbmRpbmc9ITE7ZnVuY3Rpb24gYSgpe3IudGVybWluYWxTY3JvbGxiYXJIaWRlVGltZXImJihjbGVhclRpbWVvdXQoci50ZXJtaW5hbFNjcm9sbGJhckhpZGVUaW1lciksci50ZXJtaW5hbFNjcm9sbGJhckhpZGVUaW1lcj1udWxsKSx0LmNsYXNzTGlzdC5hZGQoInZpc2libGUiKX1mdW5jdGlvbiB1KCl7ci50ZXJtaW5hbFNjcm9sbGJhckRyYWdnaW5nfHwoci50ZXJtaW5hbFNjcm9sbGJhckhpZGVUaW1lciYmY2xlYXJUaW1lb3V0KHIudGVybWluYWxTY3JvbGxiYXJIaWRlVGltZXIpLHIudGVybWluYWxTY3JvbGxiYXJIaWRlVGltZXI9c2V0VGltZW91dChmdW5jdGlvbigpe3IudGVybWluYWxTY3JvbGxiYXJIaWRlVGltZXI9bnVsbCxyLnRlcm1pbmFsU2Nyb2xsYmFyRHJhZ2dpbmd8fHQuY2xhc3NMaXN0LnJlbW92ZSgidmlzaWJsZSIpfSwxNTAwKSl9ZnVuY3Rpb24gcygpe3IudGVybWluYWxTY3JvbGxiYXJSYWZQZW5kaW5nPSExO3ZhciBtPWt0KCk7aWYobSl7dmFyIHk9bS5zY3JvbGxIZWlnaHQsdz1tLmNsaWVudEhlaWdodDtpZih5PD13KXt0LmNsYXNzTGlzdC5yZW1vdmUoInZpc2libGUiKTtyZXR1cm59dmFyIEU9bi5jbGllbnRIZWlnaHQsQj1NYXRoLm1heCgyOCx3L3kqRSksRj15LXcseD1tLnNjcm9sbFRvcC9GLFM9eCooRS1CKTtpLnN0eWxlLmhlaWdodD1CKyJweCIsaS5zdHlsZS50b3A9UysicHgifX1mdW5jdGlvbiBvKCl7ci50ZXJtaW5hbFNjcm9sbGJhclJhZlBlbmRpbmd8fChyLnRlcm1pbmFsU2Nyb2xsYmFyUmFmUGVuZGluZz0hMCxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUocykpfXZhciBsPWt0KCk7bCYmbC5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLGZ1bmN0aW9uKCl7YSgpLG8oKSx1KCl9LHtwYXNzaXZlOiEwfSksbi5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLGZ1bmN0aW9uKG0pe2lmKG0udGFyZ2V0IT09aSl7bS5wcmV2ZW50RGVmYXVsdCgpO3ZhciB5PWt0KCk7aWYoeSl7dmFyIHc9bi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxFPShtLmNsaWVudFktdy50b3ApL3cuaGVpZ2h0LEI9eS5zY3JvbGxIZWlnaHQteS5jbGllbnRIZWlnaHQ7eS5zY3JvbGxUb3A9RSpCfX19KTt2YXIgYz0wLGY9MDtpLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsZnVuY3Rpb24obSl7bS5wcmV2ZW50RGVmYXVsdCgpLG0uc3RvcFByb3BhZ2F0aW9uKCksci50ZXJtaW5hbFNjcm9sbGJhckRyYWdnaW5nPSEwLGkuY2xhc3NMaXN0LmFkZCgiZHJhZ2dpbmciKSxjPW0uY2xpZW50WTt2YXIgeT1rdCgpO2Y9eT95LnNjcm9sbFRvcDowLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsZCksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdil9KTtmdW5jdGlvbiBkKG0pe20ucHJldmVudERlZmF1bHQoKTt2YXIgeT1rdCgpO2lmKHkpe3ZhciB3PW4uY2xpZW50SGVpZ2h0LEU9eS5zY3JvbGxIZWlnaHQsQj15LmNsaWVudEhlaWdodCxGPUUtQjtpZighKEY8PTApKXt2YXIgeD1NYXRoLm1heCgyOCxCL0UqdyksUz13LXg7aWYoIShTPD0wKSl7dmFyIF89bS5jbGllbnRZLWMsVj1fL1MqRjt5LnNjcm9sbFRvcD1mK1Z9fX19ZnVuY3Rpb24gdigpe3IudGVybWluYWxTY3JvbGxiYXJEcmFnZ2luZz0hMSxpLmNsYXNzTGlzdC5yZW1vdmUoImRyYWdnaW5nIiksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIixkKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIix2KSx1KCl9aS5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IixmdW5jdGlvbihtKXtpZihtLnRvdWNoZXMubGVuZ3RoPT09MSl7bS5zdG9wUHJvcGFnYXRpb24oKSxyLnRlcm1pbmFsU2Nyb2xsYmFyRHJhZ2dpbmc9ITAsaS5jbGFzc0xpc3QuYWRkKCJkcmFnZ2luZyIpLGM9bS50b3VjaGVzWzBdLmNsaWVudFk7dmFyIHk9a3QoKTtmPXk/eS5zY3JvbGxUb3A6MCxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLGgse3Bhc3NpdmU6ITF9KSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsZyksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hjYW5jZWwiLGcpfX0se3Bhc3NpdmU6ITF9KTtmdW5jdGlvbiBoKG0pe2lmKG0udG91Y2hlcy5sZW5ndGg9PT0xKXttLnByZXZlbnREZWZhdWx0KCk7dmFyIHk9a3QoKTtpZih5KXt2YXIgdz1uLmNsaWVudEhlaWdodCxFPXkuc2Nyb2xsSGVpZ2h0LEI9eS5jbGllbnRIZWlnaHQsRj1FLUI7aWYoIShGPD0wKSl7dmFyIHg9TWF0aC5tYXgoMjgsQi9FKncpLFM9dy14O2lmKCEoUzw9MCkpe3ZhciBfPW0udG91Y2hlc1swXS5jbGllbnRZLWMsVj1fL1MqRjt5LnNjcm9sbFRvcD1mK1Z9fX19fWZ1bmN0aW9uIGcoKXtyLnRlcm1pbmFsU2Nyb2xsYmFyRHJhZ2dpbmc9ITEsaS5jbGFzc0xpc3QucmVtb3ZlKCJkcmFnZ2luZyIpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsaCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLGcpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNoY2FuY2VsIixnKSx1KCl9dC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWVudGVyIixmdW5jdGlvbigpe2EoKX0pLHQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VsZWF2ZSIsZnVuY3Rpb24oKXtyLnRlcm1pbmFsU2Nyb2xsYmFyRHJhZ2dpbmd8fHUoKX0pLG8oKX1mdW5jdGlvbiBHZChlKXtyZXR1cm4gZTw0MzUyPyExOmU+PTQzNTImJmU8PTQ0NDd8fGU+PTkwMDEmJmU8PTkwMDJ8fGU+PTExOTA0JiZlPD0xMjM1MHx8ZT49MTIzNTMmJmU8PTEzMzExfHxlPj0xMzMxMiYmZTw9MTk5MDN8fGU+PTE5OTY4JiZlPD00MDk1OXx8ZT49NDA5NjAmJmU8PTQyMTkxfHxlPj00NDAzMiYmZTw9NTUyMDN8fGU+PTYzNzQ0JiZlPD02NDI1NXx8ZT49NjUwNzImJmU8PTY1MTAzfHxlPj02NTI4MCYmZTw9NjUzNzZ8fGU+PTY1NTA0JiZlPD02NTUxMHx8ZT49MTI2OTc2JiZlPD0xMjk1MzV8fGU+PTEzMTA3MiYmZTw9MTk2NjA1fHxlPj0xOTY2MDgmJmU8PTI2MjE0MX12YXIgX3M9Ilx1MjA2MCI7ZnVuY3Rpb24gTnMoKXtyZXR1cm57bW9kZToibm9ybWFsIn19ZnVuY3Rpb24gWWQoZSl7cmV0dXJuIS9bXlx4MDAtXHg3Zl0vLnRlc3QoZSkmJmUuaW5kZXhPZigiXHgxQiIpPT09LTF9ZnVuY3Rpb24gUWQoZSx0KXtpZighZSlyZXR1cm4iIjt2YXIgbj1TdHJpbmcoZSk7aWYodC5tb2RlPT09Im5vcm1hbCImJllkKG4pKXJldHVybiBuO2Zvcih2YXIgaT0iIixhPTA7YTxuLmxlbmd0aDthKyspe3ZhciB1PW4uY2hhckNvZGVBdChhKSxzPXUsbz0xO2lmKHU+PTU1Mjk2JiZ1PD01NjMxOSYmYSsxPG4ubGVuZ3RoKXt2YXIgbD1uLmNoYXJDb2RlQXQoYSsxKTtsPj01NjMyMCYmbDw9NTczNDMmJihzPSh1LTU1Mjk2KSoxMDI0KyhsLTU2MzIwKSs2NTUzNixvPTIpfXZhciBjPW89PT0yP24uc3Vic3RyKGEsMik6bi5jaGFyQXQoYSk7c3dpdGNoKHQubW9kZSl7Y2FzZSJub3JtYWwiOnM9PT0yNz8odC5tb2RlPSJlc2MiLGkrPWMpOnM9PT0xNTU/KHQubW9kZT0iY3NpIixpKz1jKTpzPT09MTU3fHxzPT09MTQ0fHxzPT09MTU4fHxzPT09MTU5Pyh0Lm1vZGU9InN0cmluZyIsaSs9Yyk6KGkrPWMsR2QocykmJihpKz1fcykpO2JyZWFrO2Nhc2UiZXNjIjppKz1jLHM9PT05MT90Lm1vZGU9ImNzaSI6cz09PTkzfHxzPT09ODB8fHM9PT04OHx8cz09PTk0fHxzPT09OTU/dC5tb2RlPSJzdHJpbmciOnQubW9kZT0ibm9ybWFsIjticmVhaztjYXNlImNzaSI6aSs9YyxzPj02NCYmczw9MTI2JiYodC5tb2RlPSJub3JtYWwiKTticmVhaztjYXNlInN0cmluZyI6aSs9YyxzPT09N3x8cz09PTE1Nj90Lm1vZGU9Im5vcm1hbCI6cz09PTI3JiYodC5tb2RlPSJzdHJpbmctZXNjIik7YnJlYWs7Y2FzZSJzdHJpbmctZXNjIjppKz1jLHM9PT05Mj90Lm1vZGU9Im5vcm1hbCI6dC5tb2RlPSJzdHJpbmciO2JyZWFrfWErPW8tMX1yZXR1cm4gaX12YXIgdWk9Ilx4MUJbPzIwMjZoIixnYT0iXHgxQls/MjAyNmwiLCRkPTIwMCxYZD0yNTYqMTAyNDtmdW5jdGlvbiBaZChlKXtpZighZXx8ci5zeW5jT3V0cHV0QnVmZmVyPT09bnVsbCYmZS5pbmRleE9mKHVpKT09PS0xKXJldHVybiBlO2Zvcih2YXIgdD0iIixuPTA7bjxlLmxlbmd0aDspaWYoci5zeW5jT3V0cHV0QnVmZmVyIT09bnVsbCl7dmFyIGk9ZS5pbmRleE9mKGdhLG4pO2lmKGk9PT0tMSlyZXR1cm4gci5zeW5jT3V0cHV0QnVmZmVyKz1lLnNsaWNlKG4pLChyLnN5bmNPdXRwdXRCdWZmZXIubGVuZ3RoPlhkfHxEYXRlLm5vdygpPnIuc3luY091dHB1dERlYWRsaW5lKSYmKHQrPXIuc3luY091dHB1dEJ1ZmZlcixyLnN5bmNPdXRwdXRCdWZmZXI9bnVsbCxyLnN5bmNGcmFtaW5nUmVzaWR1ZT0hMCksdDtyLnN5bmNPdXRwdXRCdWZmZXIrPWUuc2xpY2UobixpK2dhLmxlbmd0aCksdCs9ci5zeW5jT3V0cHV0QnVmZmVyLHIuc3luY091dHB1dEJ1ZmZlcj1udWxsLG49aStnYS5sZW5ndGh9ZWxzZXt2YXIgYT1lLmluZGV4T2YodWksbik7aWYoYT09PS0xKXJldHVybiB0Kz1lLnNsaWNlKG4pLHQ7dCs9ZS5zbGljZShuLGEpLHIuc3luY091dHB1dEJ1ZmZlcj11aSxyLnN5bmNPdXRwdXREZWFkbGluZT1EYXRlLm5vdygpKyRkLG49YSt1aS5sZW5ndGh9cmV0dXJuIHR9ZnVuY3Rpb24gVGcoKXtpZihyLnN5bmNPdXRwdXRCdWZmZXIhPT1udWxsKXt2YXIgZT1yLnN5bmNPdXRwdXRCdWZmZXI7cmV0dXJuIHIuc3luY091dHB1dEJ1ZmZlcj1udWxsLGV9cmV0dXJuIiJ9ZnVuY3Rpb24gS24oZSx0KXtpZighKCFlfHx0PT1udWxsKSl7ci53aWRlUGFyc2VyU3RhdGV8fChyLndpZGVQYXJzZXJTdGF0ZT1OcygpKTt2YXIgbj1RZCh0LHIud2lkZVBhcnNlclN0YXRlKSxpPVpkKG4pLGE9ci50ZXJtaW5hbEF1dG9Gb2xsb3chPT0hMTsiX3Nob3VsZFNjcm9sbFRvQm90dG9tImluIGUmJihlLl9zaG91bGRTY3JvbGxUb0JvdHRvbT1hKSxpJiZlLndyaXRlKGkpLCJfc2hvdWxkU2Nyb2xsVG9Cb3R0b20iaW4gZSYmKGUuX3Nob3VsZFNjcm9sbFRvQm90dG9tPWEpLGEmJihyLnRlcm1pbmFsUHJvZ3JhbW1hdGljU2Nyb2xsVW50aWw9TWF0aC5tYXgoci50ZXJtaW5hbFByb2dyYW1tYXRpY1Njcm9sbFVudGlsLERhdGUubm93KCkrMTIwKSksY2YodCl9fWZ1bmN0aW9uIGhhKCl7ci53aWRlUGFyc2VyU3RhdGU9TnMoKX1mdW5jdGlvbiBlZigpe3R5cGVvZiBkb2N1bWVudD4idSJ8fGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNvcHkiLGZ1bmN0aW9uKGUpe3ZhciB0PXdpbmRvdy5nZXRTZWxlY3Rpb24mJndpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZighKCF0fHx0LmlzQ29sbGFwc2VkKSl7dmFyIG49dC5hbmNob3JOb2RlLGk9biYmbi5ub2RlVHlwZT09PTM/bi5wYXJlbnROb2RlOm4sYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0Iik7aWYoISghYXx8IWl8fCFhLmNvbnRhaW5zKGkpKSl7dmFyIHU9dC50b1N0cmluZygpLHM9dS5zcGxpdChgCmApLm1hcChmdW5jdGlvbihvKXtyZXR1cm4gby5zcGxpdChfcykuam9pbigiIikucmVwbGFjZSgvWyBcdF0rJC8sIiIpfSkuam9pbihgCmApO3MhPT11JiZlLmNsaXBib2FyZERhdGEmJihlLmNsaXBib2FyZERhdGEuc2V0RGF0YSgidGV4dC9wbGFpbiIscyksZS5wcmV2ZW50RGVmYXVsdCgpKX19fSl9ZWYoKTt2YXIganM9MTUwLFJzPTMwLHRmPTE2MCoxMDI0LG5mPTE5MioxMDI0O2Z1bmN0aW9uIFdzKGUpe2lmKCFlfHxlLmxlbmd0aDw9bmYpcmV0dXJuIGU7dmFyIHQ9ZS5sZW5ndGgsbj1mdW5jdGlvbih4KXtpZighKHR5cGVvZiByPiJ1Inx8IXIpKXt2YXIgUz1yLnRlcm1pbmFsT3V0cHV0TWFya2VyfDA7aWYoIShTPD0wKSl7dmFyIF89dC14O3IudGVybWluYWxPdXRwdXRNYXJrZXI9Uz5fP1MtXzowfX19LGk9ZS5sZW5ndGgtdGY7aWYoaT4wJiZpPGUubGVuZ3RoKXt2YXIgYT1lLmNoYXJDb2RlQXQoaSk7YT49NTYzMjAmJmE8PTU3MzQzJiZpKyt9Zm9yKHZhciB1PTQwOTYscz1NYXRoLm1pbihpK3UsZS5sZW5ndGgpLG89aTtvPHM7bysrKWlmKGUuY2hhckNvZGVBdChvKT09PTEwKXt2YXIgbD1lLnNsaWNlKG8rMSk7cmV0dXJuIG4obC5sZW5ndGgpLGx9Zm9yKHZhciBjPU1hdGgubWF4KDAsaS0yNTYpLGY9LTEsZD1pLTE7ZD49YztkLS0pe3ZhciB2PWUuY2hhckNvZGVBdChkKTtpZih2PT09Mjcpe2Y9ZDticmVha31pZih2PT09N3x8dj49NjQmJnY8PTEyNilicmVha31pZihmIT09LTEpe2Zvcih2YXIgaD0hMSxnPWYrMTtnPGk7ZysrKXt2YXIgbT1lLmNoYXJDb2RlQXQoZyk7aWYobT09PTcpe2g9ITA7YnJlYWt9aWYobT49NjQmJm08PTEyNil7aD0hMDticmVha319aWYoIWgpZm9yKHZhciB5PU1hdGgubWluKGkrMjU2LGUubGVuZ3RoKSx3PWk7dzx5O3crKyl7dmFyIEU9ZS5jaGFyQ29kZUF0KHcpO2lmKEU9PT03fHxFPj02NCYmRTw9MTI2KXt2YXIgQj1lLnNsaWNlKHcrMSk7cmV0dXJuIG4oQi5sZW5ndGgpLEJ9fX12YXIgRj1lLnNsaWNlKGkpO3JldHVybiBuKEYubGVuZ3RoKSxGfWZ1bmN0aW9uIHNpKCl7aWYoci50ZXJtaW5hbCl7aWYodHlwZW9mIHIudGVybWluYWwucmVzZXQ9PSJmdW5jdGlvbiIpe3IudGVybWluYWwucmVzZXQoKSxoYSgpLHIuc3luY091dHB1dEJ1ZmZlcj1udWxsLHIuc3luY091dHB1dERlYWRsaW5lPTA7cmV0dXJufXR5cGVvZiByLnRlcm1pbmFsLndyaXRlPT0iZnVuY3Rpb24iJiZyLnRlcm1pbmFsLndyaXRlKCJceDFCYyIpLGhhKCksci5zeW5jT3V0cHV0QnVmZmVyPW51bGwsci5zeW5jT3V0cHV0RGVhZGxpbmU9MH19ci5fcmVzeW5jU3RhdHNXaW5kb3dTdGFydD0wLHIuX3Jlc3luY1N0YXRzQ291bnQ9MCxyLl9yZXN5bmNMYXN0V2FybkF0PTA7dmFyIHJmPTVlMyxhZj0xMix1Zj0zZTQ7ci5fcmVzeW5jSW5Qcm9ncmVzcz0hMTtmdW5jdGlvbiBTbihlKXtpZighci50ZXJtaW5hbHx8IXIudGVybWluYWxPdXRwdXQpcmV0dXJuITE7dmFyIHQ9ZXx8e30sbj1yLnRlcm1pbmFsT3V0cHV0TWFya2VyfDA7bjwwJiYobj0wKSxuPnIudGVybWluYWxPdXRwdXQubGVuZ3RoJiYobj1yLnRlcm1pbmFsT3V0cHV0Lmxlbmd0aCk7dmFyIGk9bj4wP3IudGVybWluYWxPdXRwdXQuc2xpY2Uobik6ci50ZXJtaW5hbE91dHB1dCxhPWkubGVuZ3RoLHU9dHlwZW9mIHBlcmZvcm1hbmNlPCJ1IiYmcGVyZm9ybWFuY2Uubm93P3BlcmZvcm1hbmNlLm5vdygpOkRhdGUubm93KCk7ci5fcmVzeW5jSW5Qcm9ncmVzcz0hMDt0cnl7c2koKSxLbihyLnRlcm1pbmFsLGkpfWZpbmFsbHl7ci5fcmVzeW5jSW5Qcm9ncmVzcz0hMX1yLmxhc3RUZXJtaW5hbFJlc3luY0F0PURhdGUubm93KCksRnQoIm91dHB1dCIpLHQuc2tpcEZpdHx8WmUoInJlZnJlc2giKTt2YXIgcz1EYXRlLm5vdygpO2lmKHMtci5fcmVzeW5jU3RhdHNXaW5kb3dTdGFydD5yZilyLl9yZXN5bmNTdGF0c1dpbmRvd1N0YXJ0PXMsci5fcmVzeW5jU3RhdHNDb3VudD0xO2Vsc2UgaWYoci5fcmVzeW5jU3RhdHNDb3VudCsrLHIuX3Jlc3luY1N0YXRzQ291bnQ+YWYmJnMtci5fcmVzeW5jTGFzdFdhcm5BdD51Zil7ci5fcmVzeW5jTGFzdFdhcm5BdD1zO3ZhciBvPXR5cGVvZiBwZXJmb3JtYW5jZTwidSImJnBlcmZvcm1hbmNlLm5vdz9wZXJmb3JtYW5jZS5ub3coKTpEYXRlLm5vdygpO2NvbnNvbGUud2FybigiW3dhbmRdIHNvZnRSZXN5bmNUZXJtaW5hbCBoaWdoIGZyZXF1ZW5jeSIsImNvdW50PSIrci5fcmVzeW5jU3RhdHNDb3VudCsiLyIrTWF0aC5yb3VuZCgocy1yLl9yZXN5bmNTdGF0c1dpbmRvd1N0YXJ0KS8xMDApLzEwKyJzIiwiYnVmTGVuPSIrYSwibGFzdFJlcGxheU1zPSIrTWF0aC5yb3VuZChvLXUpKX1yZXR1cm4hMH1mdW5jdGlvbiBzZihlKXtyLnNvZnRSZXN5bmNUaW1lciYmY2xlYXJUaW1lb3V0KHIuc29mdFJlc3luY1RpbWVyKSxyLnNvZnRSZXN5bmNUaW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ci5zb2Z0UmVzeW5jVGltZXI9bnVsbCxTbigpfSx0eXBlb2YgZT09Im51bWJlciI/ZToxNTApfXZhciBvZj0vXHgxYlxbXGQqKD86O1xkKik/W0FCQ0RmSEpLXS8senM9MTUwMCxsZj04MDA7ci5fcmVzeW5jQ2h1bmtMYXN0QXQ9MCxyLl9yZXN5bmNDaHVua1RhaWxUaW1lcj1udWxsO2Z1bmN0aW9uIGNmKGUpe2lmKCFyLl9yZXN5bmNJblByb2dyZXNzJiZyLnN5bmNGcmFtaW5nUmVzaWR1ZSYmKHIuc3luY0ZyYW1pbmdSZXNpZHVlPSExLCEoIWV8fHR5cGVvZiBlIT0ic3RyaW5nIikmJmUuaW5kZXhPZigiXHgxQlsiKSE9PS0xJiZvZi50ZXN0KGUpKSl7dmFyIHQ9RGF0ZS5ub3coKSxuPXQtci5fcmVzeW5jQ2h1bmtMYXN0QXQ7aWYobj49enMpe3IuX3Jlc3luY0NodW5rVGFpbFRpbWVyJiYoY2xlYXJUaW1lb3V0KHIuX3Jlc3luY0NodW5rVGFpbFRpbWVyKSxyLl9yZXN5bmNDaHVua1RhaWxUaW1lcj1udWxsKSxyLl9yZXN5bmNDaHVua0xhc3RBdD10LFNuKCk7cmV0dXJufWlmKCFyLl9yZXN5bmNDaHVua1RhaWxUaW1lcil7dmFyIGk9TWF0aC5tYXgobGYsenMtbik7ci5fcmVzeW5jQ2h1bmtUYWlsVGltZXI9c2V0VGltZW91dChmdW5jdGlvbigpe3IuX3Jlc3luY0NodW5rVGFpbFRpbWVyPW51bGwsci5fcmVzeW5jQ2h1bmtMYXN0QXQ9RGF0ZS5ub3coKSxTbigpfSxpKX19fWZ1bmN0aW9uIG9pKGUsdCxuKXtpZighci50ZXJtaW5hbClyZXR1cm4hMTt2YXIgaT0kYSh0fHwiIiksYT1lfHxudWxsLHU9bnx8e30scz11Lm1vZGV8fCJhcHBlbmQiLG89dS5zY3JvbGwhPT0hMSxsPXIudGVybWluYWxTZXNzaW9uSWQhPT1hLGM9ci50ZXJtaW5hbE91dHB1dHx8IiIsZj0hIShhJiZyLnRlcm1pbmFsTGl2ZVN0cmVhbVNlc3Npb25zW2FdKSxkPSExO2lmKGk9PT1jJiYhbClyZXR1cm4gbyYmRnQoIm91dHB1dCIpLG10KCksITE7aWYobCYmKHNpKCksYz0iIixyLnRlcm1pbmFsT3V0cHV0PSIiLHIudGVybWluYWxPdXRwdXRNYXJrZXI9MCxyLnRlcm1pbmFsQXV0b0ZvbGxvdz0hMCxWbigpLG10KCkpLHM9PT0icmVwbGFjZSIpaSE9PWMmJihzaSgpLGkmJktuKHIudGVybWluYWwsaSksZD0hMCk7ZWxzZXtpZihpLmxlbmd0aDxjLmxlbmd0aCYmIWwpcmV0dXJuITE7aWYoZiYmIWwmJnMhPT0icmVwbGFjZSImJmMmJiFpLnN0YXJ0c1dpdGgoYykpcmV0dXJuITE7aWYoaS5zdGFydHNXaXRoKGMpKXt2YXIgdj1pLnNsaWNlKGMubGVuZ3RoKTt2JiYoS24oci50ZXJtaW5hbCx2KSxkPSEwKX1lbHNle2lmKGMmJmMuc3RhcnRzV2l0aChpKSlyZXR1cm4hMTtzaSgpLGkmJktuKHIudGVybWluYWwsaSksZD0hMH19cmV0dXJuIHIudGVybWluYWxTZXNzaW9uSWQ9YSxyLnRlcm1pbmFsT3V0cHV0PWksci50ZXJtaW5hbE91dHB1dE1hcmtlcj0wLG8mJihkfHxsfHxzPT09InJlcGxhY2UiKT9GdChsfHxzPT09InJlcGxhY2UiPyJmb3JjZSI6Im91dHB1dCIpOm10KCksbCYmYWkoci50ZXJtaW5hbC5jb2xzLHIudGVybWluYWwucm93cyksZHx8bH1mdW5jdGlvbiBKbigpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKTtpZighKCFlfHxyLnRlcm1pbmFsfHxyLnRlcm1pbmFsSW5pdGlhbGl6aW5nKSl7aWYodHlwZW9mIFdUZXJtTGliPiJ1Inx8IVdUZXJtTGliLldUZXJtKXtyLnRlcm1pbmFsSW5pdFJldHJpZXN8fChyLnRlcm1pbmFsSW5pdFJldHJpZXM9MCksci50ZXJtaW5hbEluaXRSZXRyaWVzPDEwJiYoci50ZXJtaW5hbEluaXRSZXRyaWVzKyssc2V0VGltZW91dChKbiwyMDApKTtyZXR1cm59ci50ZXJtaW5hbEluaXRSZXRyaWVzPTAsci50ZXJtaW5hbEluaXRpYWxpemluZz0hMCxyLnNlbGVjdGVkSWQmJihlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLGUuY2xhc3NMaXN0LmFkZCgiYWN0aXZlIikpO2Zvcih2YXIgdD1lLnF1ZXJ5U2VsZWN0b3JBbGwoIi50ZXJtaW5hbC1zY3JvbGwtd3JhcCIpLG49MDtuPHQubGVuZ3RoO24rKyl7dmFyIGk9dFtuXTtpLnBhcmVudE5vZGU9PT1lJiZlLnJlbW92ZUNoaWxkKGkpfXZhciBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2EuY2xhc3NOYW1lPSJ0ZXJtaW5hbC1zY3JvbGwtd3JhcCIsZS5hcHBlbmRDaGlsZChhKTt2YXIgdT1uZXcgV1Rlcm1MaWIuV1Rlcm0oYSx7Y29sczoxMjAscm93czozNixhdXRvUmVzaXplOiEwLGN1cnNvckJsaW5rOiExLG9uRGF0YTpmdW5jdGlvbigpe30sb25SZXNpemU6ZnVuY3Rpb24obyxsKXthaShvLGwpLHIudGVybWluYWwmJnIudGVybWluYWxPdXRwdXQmJlNuKHtza2lwRml0OiEwfSl9fSkscz1kb2N1bWVudC5mb250cyYmdHlwZW9mIGRvY3VtZW50LmZvbnRzLnJlYWR5PT0ib2JqZWN0Ij9Qcm9taXNlLnJhY2UoW2RvY3VtZW50LmZvbnRzLnJlYWR5LG5ldyBQcm9taXNlKGZ1bmN0aW9uKG8pe3NldFRpbWVvdXQobyw4MDApfSldKTpQcm9taXNlLnJlc29sdmUoKTtzLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gdS5pbml0KCl9KS50aGVuKGZ1bmN0aW9uKCl7aWYoci50ZXJtaW5hbD11LHIudGVybWluYWxJbml0aWFsaXppbmc9ITEsTnUoKSxhLmlzQ29ubmVjdGVkJiYoYS5vZmZzZXRIZWlnaHQsdHlwZW9mIHUucmVtZWFzdXJlPT0iZnVuY3Rpb24iKSl0cnl7dS5yZW1lYXN1cmUoKX1jYXRjaHt9ci50ZXJtaW5hbEF1dG9Gb2xsb3c9ITAsVm4oKTt2YXIgbz1rdCgpO2lmKG8mJihyLnRlcm1pbmFsVmlld3BvcnRTY3JvbGxIYW5kbGVyPWZ1bmN0aW9uKCl7aWYoRGF0ZS5ub3coKTxyLnRlcm1pbmFsUHJvZ3JhbW1hdGljU2Nyb2xsVW50aWwpe210KCk7cmV0dXJufWlmKFBzKCkpe3IudGVybWluYWxBdXRvRm9sbG93PSEwLFZuKCksbXQoKTtyZXR1cm59bWEoKX0sci50ZXJtaW5hbFZpZXdwb3J0VG91Y2hTdGFydEhhbmRsZXI9ZnVuY3Rpb24oYyl7Yy50b3VjaGVzJiZjLnRvdWNoZXMubGVuZ3RoPT09MSYmKHIudGVybWluYWxUb3VjaFN0YXJ0WT1jLnRvdWNoZXNbMF0uY2xpZW50WSl9LHIudGVybWluYWxWaWV3cG9ydFRvdWNoSGFuZGxlcj1mdW5jdGlvbihjKXshYy50b3VjaGVzfHxjLnRvdWNoZXMubGVuZ3RoIT09MXx8dHlwZW9mIHIudGVybWluYWxUb3VjaFN0YXJ0WT09Im51bWJlciImJmMudG91Y2hlc1swXS5jbGllbnRZLXIudGVybWluYWxUb3VjaFN0YXJ0WT40JiZtYSgpfSxvLmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsci50ZXJtaW5hbFZpZXdwb3J0U2Nyb2xsSGFuZGxlcix7cGFzc2l2ZTohMH0pLG8uYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsci50ZXJtaW5hbFZpZXdwb3J0VG91Y2hTdGFydEhhbmRsZXIse3Bhc3NpdmU6ITB9KSxvLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsci50ZXJtaW5hbFZpZXdwb3J0VG91Y2hIYW5kbGVyLHtwYXNzaXZlOiEwfSkpLHIudGVybWluYWxXaGVlbEhhbmRsZXI9ZnVuY3Rpb24oYyl7Yy5kZWx0YVk8MCYmbWEoKSxjLnN0b3BQcm9wYWdhdGlvbigpfSxlLmFkZEV2ZW50TGlzdGVuZXIoIndoZWVsIixyLnRlcm1pbmFsV2hlZWxIYW5kbGVyLHtwYXNzaXZlOiEwfSksSmQoZSksci5zZWxlY3RlZElkKXt2YXIgbD1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oYyl7cmV0dXJuIGMuaWQ9PT1yLnNlbGVjdGVkSWR9KTtsJiZvaShsLmlkLGwub3V0cHV0fHwiIix7bW9kZToiYXBwZW5kIixzY3JvbGw6ITF9KX1lbHNlIEtuKHUsYFx1NzBCOVx1NTFGQlx1NEUwQVx1NjVCOVx1MzAwQ1x1NjVCMFx1NUJGOVx1OEJERFx1MzAwRFx1NUYwMFx1NTlDQlx1NEY2MFx1NzY4NFx1N0IyQ1x1NEUwMFx1NkIyMVx1NUJGOVx1OEJERFx1MzAwMlxyCmApO3IudGVybWluYWxDbGlja0hhbmRsZXI9ZnVuY3Rpb24oYyl7aGkoKXx8anQoYyl9LGUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHIudGVybWluYWxDbGlja0hhbmRsZXIpLG10KCksQWQoKSxJZCgpLGpkKCksUmQoKSxaZSgibW91bnQiLHtmb3JjZVJlcGxheTohMH0pLGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoImlzLXdhbmQtZW1iZWQtdGVybWluYWwiKSYmWzEyMCwzNTAsNzAwXS5mb3JFYWNoKGZ1bmN0aW9uKGMpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXtyLnRlcm1pbmFsJiZaZSgiZW1iZWQtc2V0dGxlIil9LGMpfSl9KS5jYXRjaChmdW5jdGlvbihvKXtyLnRlcm1pbmFsSW5pdGlhbGl6aW5nPSExLGNvbnNvbGUuZXJyb3IoIlt3YW5kXSB3dGVybSBpbml0IGZhaWxlZDoiLG8pfSl9fWZ1bmN0aW9uIGRmKGUsdCl7aWYoISghci5zZWxlY3RlZElkfHwhZSkpe3ZhciBuPXIuc2VsZWN0ZWRJZCsiOiIrZTtpZihyLnRvb2xDb250ZW50Q2FjaGVbbl0pe3QobnVsbCxyLnRvb2xDb250ZW50Q2FjaGVbbl0pO3JldHVybn1mZXRjaCgiL2FwaS9zZXNzaW9ucy8iK2VuY29kZVVSSUNvbXBvbmVudChyLnNlbGVjdGVkSWQpKyIvdG9vbC1jb250ZW50LyIrZW5jb2RlVVJJQ29tcG9uZW50KGUpLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihpKXtyZXR1cm4gaS5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKGkpe2kuZXJyb3I/dChpLmVycm9yLG51bGwpOihyLnRvb2xDb250ZW50Q2FjaGVbbl09aSx0KG51bGwsaSkpfSkuY2F0Y2goZnVuY3Rpb24oKXt0KCJcdTUyQTBcdThGN0RcdTU5MzFcdThEMjUiLG51bGwpfSl9fWZ1bmN0aW9uIEluKGUpe3JldHVybiEhKHIuY29uZmlnJiZyLmNvbmZpZy5jYXJkRGVmYXVsdHMmJnIuY29uZmlnLmNhcmREZWZhdWx0c1tlXSl9ZnVuY3Rpb24geWEoZSx0LG4saSl7aWYoISghZXx8ZS5kYXRhc2V0LnRydW5jYXRlZCE9PSJ0cnVlInx8ZS5kYXRhc2V0LmxvYWRlZD09PSJ0cnVlIikpe3ZhciBhPWUuZGF0YXNldC50b29sVXNlSWQ7YSYmKHQmJih0LmlubmVySFRNTD0nPGRpdiBjbGFzcz0idG9vbC1jb250ZW50LWxvYWRpbmciPlx1NTJBMFx1OEY3RFx1NEUyRFx1MjAyNjwvZGl2PicpLGUuZGF0YXNldC5sb2FkZWQ9ImxvYWRpbmciLGRmKGEsZnVuY3Rpb24odSxzKXtpZih1KXt0JiYodC5pbm5lckhUTUw9aXx8JzxkaXYgY2xhc3M9InRvb2wtY29udGVudC1lcnJvciI+XHU1MkEwXHU4RjdEXHU1OTMxXHU4RDI1XHVGRjBDXHU3MEI5XHU1MUZCXHU5MUNEXHU4QkQ1PC9kaXY+JyksZS5kYXRhc2V0LmxvYWRlZD0iIjtyZXR1cm59ZS5kYXRhc2V0LnRydW5jYXRlZD0iZmFsc2UiLGUuZGF0YXNldC5sb2FkZWQ9InRydWUiO3ZhciBvPXR5cGVvZiBzLmNvbnRlbnQ9PSJzdHJpbmciP3MuY29udGVudDpKU09OLnN0cmluZ2lmeShzLmNvbnRlbnQpO24obyxzKX0pKX19d2luZG93Ll9fdGNUb2dnbGU9ZnVuY3Rpb24oZSx0KXt2YXIgbj10LmNsb3Nlc3QoIi50b29sLXVzZS1jYXJkIil8fHQuY2xvc2VzdCgiLmlubGluZS1kaWZmIik7aWYobil7dmFyIGk9bi5jbGFzc0xpc3QuY29udGFpbnMoImNvbGxhcHNlZCIpO24uY2xhc3NMaXN0LnRvZ2dsZSgiY29sbGFwc2VkIik7dmFyIGE9bi5kYXRhc2V0LmV4cGFuZEtpbmR8fCJ0b29sLWNhcmQiO2lmKEJuKG4sYSksaSl7dmFyIHU9bi5xdWVyeVNlbGVjdG9yKCIudG9vbC11c2UtcmVzdWx0Iik7eWEobix1LGZ1bmN0aW9uKHMpe3UmJih1LmlubmVySFRNTD0nPHByZSBjbGFzcz0idG9vbC11c2UtcmVzdWx0LWNvbnRlbnQiPicrcChzKSsiPC9wcmU+Iil9LGA8ZGl2IGNsYXNzPSJ0b29sLWNvbnRlbnQtZXJyb3IiIG9uY2xpY2s9Il9fdGNUb2dnbGUobnVsbCwgdGhpcy5jbG9zZXN0KCcudG9vbC11c2UtY2FyZCwuaW5saW5lLWRpZmYnKS5xdWVyeVNlbGVjdG9yKCcudG9vbC11c2UtaGVhZGVyLC5kaWZmLWhlYWRlcicpKSI+XHU1MkEwXHU4RjdEXHU1OTMxXHU4RDI1XHVGRjBDXHU3MEI5XHU1MUZCXHU5MUNEXHU4QkQ1PC9kaXY+YCl9fWUmJihlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKSl9LHdpbmRvdy5fX3RoaW5raW5nVG9nZ2xlPWZ1bmN0aW9uKGUpe3ZhciB0PWUuY2xhc3NMaXN0LmNvbnRhaW5zKCJjb2xsYXBzZWQiKTtpZih0KXtlLmNsYXNzTGlzdC5yZW1vdmUoImNvbGxhcHNlZCIpLGUuY2xhc3NMaXN0LmFkZCgiZXhwYW5kZWQiKSxlLnF1ZXJ5U2VsZWN0b3IoIi50aGlua2luZy1pbmxpbmUtcHJldmlldyIpLnRleHRDb250ZW50PWUuZGF0YXNldC50aGlua2luZ3x8IiI7dmFyIG49ZS5xdWVyeVNlbGVjdG9yKCIudGhpbmtpbmctaW5saW5lLWFjdGlvbiIpO24mJihuLnRleHRDb250ZW50PSJcdTY1MzZcdThENzciKX1lbHNle2UuY2xhc3NMaXN0LnJlbW92ZSgiZXhwYW5kZWQiKSxlLmNsYXNzTGlzdC5hZGQoImNvbGxhcHNlZCIpO3ZhciBpPShlLmRhdGFzZXQudGhpbmtpbmd8fCIiKS5zbGljZSgwLDU3KSsoKGUuZGF0YXNldC50aGlua2luZ3x8IiIpLmxlbmd0aD42MD8iXHUyMDI2IjoiIik7ZS5xdWVyeVNlbGVjdG9yKCIudGhpbmtpbmctaW5saW5lLXByZXZpZXciKS50ZXh0Q29udGVudD1pO3ZhciBuPWUucXVlcnlTZWxlY3RvcigiLnRoaW5raW5nLWlubGluZS1hY3Rpb24iKTtuJiYobi50ZXh0Q29udGVudD0iXHU1QzU1XHU1RjAwIil9Qm4oZSwidGhpbmtpbmciKX0sd2luZG93Ll9fc3ViYWdlbnRSZXBseVRvZ2dsZT1mdW5jdGlvbihlLHQpe2UmJihlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKSk7dmFyIG49dCYmdC5jbG9zZXN0P3QuY2xvc2VzdCgiLnN1YmFnZW50LXJlcGx5Iik6bnVsbDtpZihuKXt2YXIgaT1uLmdldEF0dHJpYnV0ZSgiZGF0YS1leHBhbmRlZCIpPT09InRydWUiO1FpKG4sInN1YmFnZW50LXJlcGx5IiwhaSksQm4obiwic3ViYWdlbnQtcmVwbHkiKX19LHdpbmRvdy5fX3N1YmFnZW50UGFuZWxUb2dnbGU9ZnVuY3Rpb24oZSx0KXtlJiYoZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcFByb3BhZ2F0aW9uKCkpO3ZhciBuPXQmJnQuY2xvc2VzdD90LmNsb3Nlc3QoIi5zdWJhZ2VudC1wYW5lbCIpOm51bGw7aWYobil7dmFyIGk9bi5nZXRBdHRyaWJ1dGUoImRhdGEtZXhwYW5kZWQiKT09PSJ0cnVlIjtRaShuLCJzdWJhZ2VudC1wYW5lbCIsIWkpLEJuKG4sInN1YmFnZW50LXBhbmVsIil9fTtmdW5jdGlvbiBmZihlKXtpZihlKWZvcih2YXIgdD1lLnF1ZXJ5U2VsZWN0b3JBbGwoJy5zdWJhZ2VudC1wYW5lbFtkYXRhLWV4cGFuZGVkPSJmYWxzZSJdJyksbj0wO248dC5sZW5ndGg7bisrKXt2YXIgaT10W25dLnF1ZXJ5U2VsZWN0b3IoIi5zdWJhZ2VudC1wYW5lbC1ib2R5Iik7aSYmKGkuc2Nyb2xsVG9wPWkuc2Nyb2xsSGVpZ2h0KX19d2luZG93Ll9fb3BlbkZpbGVQcmV2aWV3PWZ1bmN0aW9uKGUpe2UmJlFyKGUpfSx3aW5kb3cuX19pbmxpbmVUb29sVG9nZ2xlPWZ1bmN0aW9uKGUpe3ZhciB0PWUuY2xhc3NMaXN0LnRvZ2dsZSgiaW5saW5lLXRvb2wtb3BlbiIpLG49ZS5xdWVyeVNlbGVjdG9yKCIuaW5saW5lLXRvb2wtZXhwYW5kZWQiKTtuJiYobi5zdHlsZS5kaXNwbGF5PXQ/ImJsb2NrIjoibm9uZSIpO3ZhciBpPWUucXVlcnlTZWxlY3RvcigiLmlubGluZS10b29sLXN0YXR1cyIpO2kmJihlLmRhdGFzZXQuc3RhdHVzPT09ImVycm9yIj9pLnRleHRDb250ZW50PSJcdTI3MTciOmUuZGF0YXNldC5zdGF0dXM9PT0iZG9uZSImJihpLnRleHRDb250ZW50PSJcdTI3MTMiKSksdCYmeWEoZSxuLGZ1bmN0aW9uKGEpe2UuZGF0YXNldC5yZXN1bHQ9YSxuJiYobi5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImlubGluZS10b29sLXJlc3VsdCI+JytZbyhhLCIiKSsiPC9kaXY+Iil9KSxCbihlLCJpbmxpbmUtdG9vbCIpfSx3aW5kb3cuX190ZXJtaW5hbEV4cGFuZD1mdW5jdGlvbihlKXt2YXIgdD1lLmNsb3Nlc3QoIi5pbmxpbmUtdGVybWluYWwiKTtpZih0KXt2YXIgbj10LnF1ZXJ5U2VsZWN0b3IoIi50ZXJtLWJvZHkiKTtpZihuKXt2YXIgaT1uLnN0eWxlLmRpc3BsYXk9PT0ibm9uZSI7bi5zdHlsZS5kaXNwbGF5PWk/ImJsb2NrIjoibm9uZSIsdC5kYXRhc2V0LmV4cGFuZGVkPWk/InRydWUiOiJmYWxzZSI7dmFyIGE9ZS5xdWVyeVNlbGVjdG9yKCIudGVybS10b2dnbGUtaWNvbiIpO2lmKGEmJihhLnRleHRDb250ZW50PWk/Ilx1MjVCQyI6Ilx1MjVCNiIpLEJuKHQsInRlcm1pbmFsIiksaSl7dmFyIHU9bi5xdWVyeVNlbGVjdG9yKCIudGVybS1vdXRwdXQiKTt5YSh0LHUsZnVuY3Rpb24ocyl7aWYodSl7Zm9yKHZhciBvPXMuc3BsaXQoYApgKSxsPSIiLGM9MDtjPG8ubGVuZ3RoO2MrKykhb1tjXSYmYz09PW8ubGVuZ3RoLTF8fChsKz0nPGRpdiBjbGFzcz0idGVybS1saW5lIj4nK3Aob1tjXSkrIjwvZGl2PiIpO3UuaW5uZXJIVE1MPWx9fSl9fX19O2Z1bmN0aW9uIExnKGUpe3ZhciB0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi50aGlua2luZy1zdHJlYW1pbmciKTtpZih0KXt2YXIgbj10LnF1ZXJ5U2VsZWN0b3IoIi50aGlua2luZy1zdHJlYW1pbmctdGV4dCIpO2lmKG4pe3ZhciBpPWUuc3BsaXQoYApgKSxhPWkuc2xpY2UoLTMpO24udGV4dENvbnRlbnQ9YS5qb2luKGAKYCksbi5zY3JvbGxUb3A9bi5zY3JvbGxIZWlnaHR9fX13aW5kb3cuX19hc2tTZWxlY3Q9ZnVuY3Rpb24oZSx0LG4saSl7dmFyIGE9ci5hc2tVc2VyU2VsZWN0aW9uc1tlXTtpZihhfHwoYT17c3VibWl0dGVkOiExfSxyLmFza1VzZXJTZWxlY3Rpb25zW2VdPWEpLCFhLnN1Ym1pdHRlZCl7dmFyIHU9YVt0XXx8W107aWYoaSl7dmFyIHM9dS5pbmRleE9mKG4pO3M9PT0tMT91LnB1c2gobik6dS5zcGxpY2UocywxKX1lbHNlIHU9dVswXT09PW4/W106W25dO2FbdF09dSx3aW5kb3cuX19hc2tSZW5kZXIoZSl9fSx3aW5kb3cuX19hc2tSZW5kZXI9ZnVuY3Rpb24oZSl7dmFyIHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignW2RhdGEtdG9vbC11c2UtaWQ9IicrZSsnIl0nKTtpZih0KXt2YXIgbj1yLmFza1VzZXJTZWxlY3Rpb25zW2VdfHx7fTt0LnF1ZXJ5U2VsZWN0b3JBbGwoIi5hc2stdXNlci1vcHRpb24iKS5mb3JFYWNoKGZ1bmN0aW9uKHMpe3ZhciBvPXBhcnNlSW50KHMuZGF0YXNldC5xdWVzdGlvbkluZGV4LDEwKSxsPXBhcnNlSW50KHMuZGF0YXNldC5vcHRpb25JbmRleCwxMCksYz0obltvXXx8W10pLmluZGV4T2YobCkhPT0tMTtzLmNsYXNzTGlzdC50b2dnbGUoInNlbGVjdGVkIixjKX0pO3ZhciBpPXQucXVlcnlTZWxlY3RvcigiLmFzay11c2VyLXN1Ym1pdCIpO2lmKGkpe3ZhciBhPXQucXVlcnlTZWxlY3RvckFsbCgiLmFzay11c2VyLXF1ZXN0aW9uLWdyb3VwIiksdT0hMDthLmZvckVhY2goZnVuY3Rpb24ocyxvKXsoIW5bb118fG5bb10ubGVuZ3RoPT09MCkmJih1PSExKX0pLGkuZGlzYWJsZWQ9IXV8fCEhbi5zdWJtaXR0ZWQsbi5zdWJtaXR0ZWQmJihpLnRleHRDb250ZW50PSJcdTVERjJcdTYzRDBcdTRFQTQuLi4iLGkuY2xhc3NMaXN0LmFkZCgiYXNrLXVzZXItc3VibWl0dGVkIikpfX19LHdpbmRvdy5fX2Fza1N1Ym1pdD1mdW5jdGlvbihlKXt2YXIgdD1yLmFza1VzZXJTZWxlY3Rpb25zW2VdO2lmKCEoIXR8fHQuc3VibWl0dGVkfHwhci5zZWxlY3RlZElkKSl7dmFyIG49ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignW2RhdGEtdG9vbC11c2UtaWQ9IicrZSsnIl0nKTtpZihuKXt2YXIgaT1uLnF1ZXJ5U2VsZWN0b3JBbGwoIi5hc2stdXNlci1xdWVzdGlvbi1ncm91cCIpLGE9W10sdT0hMDtpZihpLmZvckVhY2goZnVuY3Rpb24obyxsKXt2YXIgYz10W2xdfHxbXTtpZihjLmxlbmd0aD09PTApe3U9ITE7cmV0dXJufXZhciBmPVtdO2MuZm9yRWFjaChmdW5jdGlvbihkKXt2YXIgdj1vLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLW9wdGlvbi1pbmRleD0iJytkKyciXScpO3YmJmYucHVzaCh2LmRhdGFzZXQub3B0aW9uTGFiZWwpfSksYS5wdXNoKGYuam9pbigiLCAiKSl9KSwhIXUpe3Quc3VibWl0dGVkPSEwLHdpbmRvdy5fX2Fza1JlbmRlcihlKTt2YXIgcz1hLmpvaW4oYApgKTtmZXRjaCgiL2FwaS9zZXNzaW9ucy8iK3Iuc2VsZWN0ZWRJZCsiL2lucHV0Iix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeSh7aW5wdXQ6cytgCmAsdmlldzpyLmN1cnJlbnRWaWV3fSl9KS5jYXRjaChmdW5jdGlvbihvKXtjb25zb2xlLmVycm9yKCJbd2FuZF0gRXJyb3Igc2VuZGluZyBhbnN3ZXI6IixvKSx0LnN1Ym1pdHRlZD0hMSx3aW5kb3cuX19hc2tSZW5kZXIoZSl9KX19fX07ZnVuY3Rpb24gcGYoKXtpZighci5fX2dsb2JhbExpc3RlbmVyc0JvdW5kKXtyLl9fZ2xvYmFsTGlzdGVuZXJzQm91bmQ9ITAsZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNpZGViYXItb3ZlcmZsb3ctbWVudSIpO3QmJnQuY2xhc3NMaXN0LnJlbW92ZSgib3BlbiIpfSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsZnVuY3Rpb24oKXt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2lkZWJhci1vdmVyZmxvdy1tZW51Iik7dCYmdC5jbGFzc0xpc3QucmVtb3ZlKCJvcGVuIil9KTt2YXIgZT1mdW5jdGlvbigpe3IudG9wYmFyTW9yZU9wZW49ITE7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvcGJhci1tb3JlLW1lbnUiKSxuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b3BiYXItbW9yZS1idXR0b24iKTt0JiZ0LmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLG4mJihuLmNsYXNzTGlzdC5yZW1vdmUoImFjdGl2ZSIpLG4uc2V0QXR0cmlidXRlKCJhcmlhLWV4cGFuZGVkIiwiZmFsc2UiKSl9O2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbih0KXtpZihyLnRvcGJhck1vcmVPcGVuKXt2YXIgbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9wYmFyLW1vcmUtbWVudSIpLGk9biYmbi5wYXJlbnRFbGVtZW50O2kmJiFpLmNvbnRhaW5zKHQudGFyZ2V0KSYmZSgpfX0pLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGZ1bmN0aW9uKHQpe3Qua2V5PT09IkVzY2FwZSImJnIudG9wYmFyTW9yZU9wZW4mJmUoKX0pLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbih0KXtpZihyLnBsdXNQb3BvdmVyT3Blbil7dmFyIG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbXBvc2VyLXBsdXMtcG9wb3ZlciIpLGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF0dGFjaC1idG4iKTtuJiZuLmNvbnRhaW5zKHQudGFyZ2V0KXx8aSYmaS5jb250YWlucyh0LnRhcmdldCl8fE9pKCl9fSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsZnVuY3Rpb24odCl7dC5rZXk9PT0iRXNjYXBlIiYmci5wbHVzUG9wb3Zlck9wZW4mJk9pKCl9KSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24odCl7dmFyIG49dC50YXJnZXQ7aWYoISghbnx8dHlwZW9mIG4uY2xvc2VzdCE9ImZ1bmN0aW9uIikpe3ZhciBpPW4uY2xvc2VzdCgiI2F1dG8tYXBwcm92ZS10b2dnbGUiKTtpJiYodC5wcmV2ZW50RGVmYXVsdCgpLEZkKCkpfX0pLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbih0KXtpZighdC50YXJnZXQuY2xvc2VzdCgiLmZvbGRlci1waWNrZXItY29udGFpbmVyIikpe3ZhciBuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmb2xkZXItcGlja2VyLWRyb3Bkb3duIik7biYmbi5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKX19KSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGZ1bmN0aW9uKHQpe3ZhciBuPXQudGFyZ2V0O2lmKCEoIW58fG4ubm9kZVR5cGUhPT0xKSYmISh0eXBlb2Ygbi5tYXRjaGVzIT0iZnVuY3Rpb24ifHwhbi5tYXRjaGVzKCJbZGF0YS1tb2RlLWNvbnRyb2xdIikpKXt2YXIgaT1uLmdldEF0dHJpYnV0ZSgiZGF0YS1tb2RlLWNvbnRyb2wiKSxhPW4udmFsdWU7aT09PSJtb2RlIj9mbShhKTppPT09Im1vZGVsIj9kbShhKTppPT09InRoaW5raW5nIiYmc20oYSksbi5jbG9zZXN0JiZuLmNsb3Nlc3QoIiNjb21wb3Nlci1wbHVzLXBvcG92ZXIiKSYmT2koKX19KX19ZnVuY3Rpb24gdmYoKXtwZigpO3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dpbi1idXR0b24iKTtpZihlKXtlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixYYSk7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxvZ2luLWZvcm0iKTt0JiZ0LmFkZEV2ZW50TGlzdGVuZXIoInN1Ym1pdCIsZnVuY3Rpb24oYil7Yi5wcmV2ZW50RGVmYXVsdCgpLFhhKCl9KTt2YXIgbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9naW4tc3dpdGNoLXNlcnZlci1idXR0b24iKTtuJiZuLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixYbyk7dmFyIGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBhc3N3b3JkIiksYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9nZ2xlLXBhc3N3b3JkLWJ1dHRvbiIpO2EmJmkmJmEuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7dmFyIGI9aS50eXBlPT09InRleHQiO2kudHlwZT1iPyJwYXNzd29yZCI6InRleHQiLGEudGV4dENvbnRlbnQ9Yj8iXHU2NjNFXHU3OTNBIjoiXHU5NjkwXHU4NUNGIixhLnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsYj8iXHU2NjNFXHU3OTNBXHU1QkM2XHU3ODAxIjoiXHU5NjkwXHU4NUNGXHU1QkM2XHU3ODAxIiksYS5zZXRBdHRyaWJ1dGUoImFyaWEtcHJlc3NlZCIsYj8iZmFsc2UiOiJ0cnVlIiksaS5mb2N1cygpfSksaSYmKGkuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsZnVuY3Rpb24oYil7Yi5rZXk9PT0iRW50ZXIiJiZYYSgpfSksaS5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsZnVuY3Rpb24oKXtpLmRhdGFzZXQuZXJyb3I9ImZhbHNlIixpLnNldEF0dHJpYnV0ZSgiYXJpYS1pbnZhbGlkIiwiZmFsc2UiKTt2YXIgYj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9naW4tZXJyb3IiKTtiJiZjaShiKX0pLGkuZm9jdXMoKSk7cmV0dXJufXZhciB1PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3ZWxjb21lLWlucHV0Iik7dSYmKHUuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsZnVuY3Rpb24oYil7Yi5rZXk9PT0iRW50ZXIiJiYhYi5zaGlmdEtleSYmKGIucHJldmVudERlZmF1bHQoKSxybygpKX0pLHUuZm9jdXMoKSk7dmFyIHM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndlbGNvbWUtc2VuZC1idG4iKTtzJiZzLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe3JvKCl9KTt2YXIgbz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid2VsY29tZS10b29sLWNsYXVkZSIpO28mJm8uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7a2woKX0pO3ZhciBsPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3ZWxjb21lLXRvb2wtY29kZXgiKTtsJiZsLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe3Iuc2Vzc2lvblRvb2w9ImNvZGV4IixyLnByZWZlcnJlZENvbW1hbmQ9ImNvZGV4IixyLm1vZGVWYWx1ZT0iZnVsbC1hY2Nlc3MiLGtsKCl9KTt2YXIgYz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid2VsY29tZS10b29sLXN0cnVjdHVyZWQiKTtjJiZjLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe21sKCkudGhlbihmdW5jdGlvbigpe2p0KCEwKX0pLmNhdGNoKGZ1bmN0aW9uKGIpe2soYiYmYi5tZXNzYWdlfHwiXHU2NUUwXHU2Q0Q1XHU1NDJGXHU1MkE4XHU3RUQzXHU2Nzg0XHU1MzE2XHU0RjFBXHU4QkREXHUzMDAyIiwiZXJyb3IiKX0pfSksWG0oKTt2YXIgZj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2Vzc2lvbnMtbGlzdCIpO2YmJihmLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixWZCksZi5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixLZCksZi5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW92ZXIiLEJtKSxmLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlb3V0IixEbSksS3AoZikpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLHJuLCEwKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIixybik7dmFyIGQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInByb3ZpZGVyLWNhcmRzIik7ZCYmZC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oYil7dmFyIEE9Yi50YXJnZXQuY2xvc2VzdCgiLnByb3ZpZGVyLWNhcmQiKTtpZighKCFBfHxBLmNsYXNzTGlzdC5jb250YWlucygiZGlzYWJsZWQiKSkpe3ZhciBSPUEuZ2V0QXR0cmlidXRlKCJkYXRhLXByb3ZpZGVyIik7UiYmKHIuc2Vzc2lvblRvb2w9UixyLnByZWZlcnJlZENvbW1hbmQ9UixUcigpKX19KTt2YXIgdj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2Vzc2lvbi1raW5kLWNhcmRzIik7diYmdi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oYil7dmFyIEE9Yi50YXJnZXQuY2xvc2VzdCgiLnNlc3Npb24ta2luZC1jYXJkIik7aWYoISghQXx8QS5jbGFzc0xpc3QuY29udGFpbnMoImRpc2FibGVkIikpKXt2YXIgUj1BLmdldEF0dHJpYnV0ZSgiZGF0YS1zZXNzaW9uLWtpbmQiKTtSJiYoci5zZXNzaW9uQ3JlYXRlS2luZD1SLFRyKCkpfX0pO3ZhciBoPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtb2RlLWNhcmRzIik7aCYmaC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oYil7dmFyIEE9Yi50YXJnZXQuY2xvc2VzdCgiLm1vZGUtY2FyZCIpO2lmKEEpe3ZhciBSPUEuZ2V0QXR0cmlidXRlKCJkYXRhLW1vZGUiKTtSJiYoci5tb2RlVmFsdWU9UixUcigpKX19KTt2YXIgZz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2Vzc2lvbi13b3JrdHJlZS10b2dnbGUiKTtnJiZnLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsZnVuY3Rpb24oKXtyLnNlc3Npb25DcmVhdGVXb3JrdHJlZT1nLmNoZWNrZWR9KTt2YXIgbT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY3dkIik7bSYmKG0uYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLGZ1bmN0aW9uKCl7ci5jd2RWYWx1ZT1tLnZhbHVlfSksbS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7ci5jd2RWYWx1ZT1tLnZhbHVlfSksbS5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIseGwpLG0uYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLHhsKSxtLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLGZ1bmN0aW9uKCl7c2V0VGltZW91dChyciwxMjApfSkpO3ZhciB5PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXNzaW9ucy10b2dnbGUtYnV0dG9uIik7eSYmeS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIseW0pO3ZhciB3PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXNzaW9ucy1kcmF3ZXItYmFja2Ryb3AiKTt3JiZ3LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixxcik7dmFyIEU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNsb3NlLWRyYXdlci1idXR0b24iKTtFJiZFLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixxcik7dmFyIEI9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNpZGViYXItY29sbGFwc2UtYnRuIik7QiYmQi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsa20pO3ZhciBGPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzaWRlYmFyLXBpbi1idG4iKTtGJiZGLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixBbSk7dmFyIHg9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNpZGViYXItbW9yZS1idG4iKSxTPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzaWRlYmFyLW92ZXJmbG93LW1lbnUiKTt4JiZTJiZ4LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihiKXtiLnN0b3BQcm9wYWdhdGlvbigpO3ZhciBBPSFTLmNsYXNzTGlzdC5jb250YWlucygib3BlbiIpO1MuY2xhc3NMaXN0LnRvZ2dsZSgib3BlbiIsQSksQSYmU20oUyl9KTt2YXIgXz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2lkZWJhci1ob21lLWJ0biIpO18mJl8uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7ci5zZWxlY3RlZElkPW51bGwsd2UoKSxBdCgpLFV0KCksdG4oKX0pO3ZhciBWPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzaWRlYmFyLXJlZnJlc2gtYnRuIik7ViYmVi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXt3aW5kb3cubG9jYXRpb24ucmVsb2FkKCl9KTt2YXIgVT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9nb3V0LWJ1dHRvbiIpO1UmJlUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLFpvKTt2YXIgST1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3dpdGNoLXNlcnZlci1idXR0b24iKTtJJiZJLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixYbyk7dmFyIEQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJhY2stdG8tbmF0aXZlLWJ1dHRvbiIpO0QmJkQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGVtKTt2YXIgTT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MtYnV0dG9uIik7TSYmTS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsTG0pO3ZhciBMPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjbG9zZS1zZXR0aW5ncy1idXR0b24iKTtMJiZMLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0cik7dmFyIFc9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzLW1vZGFsIik7VyYmVy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oYil7Yi50YXJnZXQuaWQ9PT0ic2V0dGluZ3MtbW9kYWwiJiZ0cigpfSk7dmFyIEs9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNhdmUtcGFzc3dvcmQtYnV0dG9uIik7SyYmSy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsTW0pO2Zvcih2YXIgWD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuc2V0dGluZ3MtdGFiIiksbmU9MDtuZTxYLmxlbmd0aDtuZSsrKVhbbmVdLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihiKXt2YXIgQT1iLmN1cnJlbnRUYXJnZXR8fHRoaXMsUj1BJiZBLmdldEF0dHJpYnV0ZT9BLmdldEF0dHJpYnV0ZSgiZGF0YS10YWIiKTpudWxsO1ImJmR1KFIpfSk7dmFyIHNlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzYXZlLWNvbmZpZy1idXR0b24iKTtzZSYmc2UuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLE5tKTt2YXIgcmU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1kZWZhdWx0LW1vZGVsLXJlZnJlc2giKTtyZSYmcmUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGxtKTt2YXIgVD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLXZpZXctZW52LWJ0biIpO1QmJlQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGNtKTt2YXIgcT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2F2ZS1kaXNwbGF5LWJ1dHRvbiIpO3EmJnEuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGptKTt2YXIgTj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXBwLWljb24tcGlja2VyIik7aWYoTilmb3IodmFyIFk9Ti5xdWVyeVNlbGVjdG9yQWxsKCIuc2V0dGluZ3MtYXBwLWljb24tb3B0aW9uIiksSj0wO0o8WS5sZW5ndGg7SisrKVlbSl0uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7dmFyIGI9dGhpcy5nZXRBdHRyaWJ1dGUoImRhdGEtaWNvbiIpO2lmKCEoIWJ8fHR5cGVvZiBXYW5kTmF0aXZlPiJ1Inx8dHlwZW9mIFdhbmROYXRpdmUuc2V0QXBwSWNvbiE9ImZ1bmN0aW9uIikpdHJ5e1dhbmROYXRpdmUuc2V0QXBwSWNvbihiKSx3bChiKTt2YXIgQT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXBwLWljb24tbWVzc2FnZSIpO0EmJihBLnRleHRDb250ZW50PSJcdTU2RkVcdTY4MDdcdTVERjJcdTUyMDdcdTYzNjJcdUZGMENcdThGRDRcdTU2REVcdTY4NENcdTk3NjJcdTU0MEVcdTc1MUZcdTY1NDgiLEEuc3R5bGUuY29sb3I9InZhcigtLXN1Y2Nlc3MpIixBLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtBLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpfSwzZTMpKX1jYXRjaHt9fSk7dmFyIGllPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1cGxvYWQtY2VydC1idXR0b24iKTtpZSYmaWUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLFJtKTtmb3IodmFyIGRlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5maWxlLXBpY2tlci1pbnB1dCIpLHRlPTA7dGU8ZGUubGVuZ3RoO3RlKyspKGZ1bmN0aW9uKGIpe2IuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixmdW5jdGlvbigpe3ZhciBBPWIuY2xvc2VzdCgiLmZpbGUtcGlja2VyIik7aWYoQSl7dmFyIFI9QS5xdWVyeVNlbGVjdG9yKCIuZmlsZS1waWNrZXItbmFtZSIpO1ImJihiLmZpbGVzJiZiLmZpbGVzWzBdPyhSLnRleHRDb250ZW50PWIuZmlsZXNbMF0ubmFtZSxBLmNsYXNzTGlzdC5hZGQoImZpbGUtcGlja2VyLWhhcy1maWxlIikpOihSLnRleHRDb250ZW50PVIuZ2V0QXR0cmlidXRlKCJkYXRhLWRlZmF1bHQiKXx8Ilx1NjcyQVx1OTAwOVx1NjJFOVx1NjU4N1x1NEVGNiIsQS5jbGFzc0xpc3QucmVtb3ZlKCJmaWxlLXBpY2tlci1oYXMtZmlsZSIpKSl9fSl9KShkZVt0ZV0pO3ZhciBhZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2hlY2stdXBkYXRlLWJ1dHRvbiIpO2FlJiZhZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsRmwpO3ZhciBIZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZG8tdXBkYXRlLWJ1dHRvbiIpO0hlJiZIZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsV20pO3ZhciBEZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZG8tcmVzdGFydC1idXR0b24iKTtEZSYmRGUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHptKTt2YXIgcGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF1dG8tdXBkYXRlLXdlYi10b2dnbGUiKTtwZSYmcGUuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixmdW5jdGlvbigpe2Z1KCJ3ZWIiLHBlLmNoZWNrZWQpfSk7dmFyIFA9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF1dG8tdXBkYXRlLWFway10b2dnbGUiKTtQJiZQLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsZnVuY3Rpb24oKXtmdSgiYXBrIixQLmNoZWNrZWQpfSk7dmFyIEtlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhdXRvLXVwZGF0ZS1kbWctdG9nZ2xlIik7S2UmJktlLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsZnVuY3Rpb24oKXtmdSgiZG1nIixLZS5jaGVja2VkKX0pO3ZhciBjdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYmV0YS1jaGFubmVsLXRvZ2dsZSIpO2N0JiZjdC5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7S20oY3QuY2hlY2tlZD8iYmV0YSI6InN0YWJsZSIpfSk7dmFyIEc9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvcHktY29ubmVjdC1jb2RlLWJ1dHRvbiIpO0cmJkcuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7dmFyIGI9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFuZHJvaWQtY29ubmVjdC1jb2RlIik7YiYmSHIoYi50ZXh0Q29udGVudCxHKX0pO3ZhciBlZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLW5vdGlmLXNvdW5kIik7ZWUmJihlZS5jaGVja2VkPXIubm90aWZTb3VuZCxlZS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7ci5ub3RpZlNvdW5kPWVlLmNoZWNrZWQ7dHJ5e2xvY2FsU3RvcmFnZS5zZXRJdGVtKCJ3YW5kLW5vdGlmLXNvdW5kIixTdHJpbmcoci5ub3RpZlNvdW5kKSl9Y2F0Y2h7fXIubm90aWZTb3VuZCYmcGkoKTt2YXIgYj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm90aWYtdm9sdW1lLWZpZWxkIik7YiYmKGIuc3R5bGUuZGlzcGxheT1yLm5vdGlmU291bmQ/IiI6Im5vbmUiKX0pKTt2YXIgb2U9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1ub3RpZi12b2x1bWUiKSxsZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLW5vdGlmLXZvbHVtZS12YWwiKSxCZT1mdW5jdGlvbihiKXtpZihiKXt2YXIgQT1OdW1iZXIoYi5taW58fDApLFI9TnVtYmVyKGIubWF4fHwxMDApLENlPU51bWJlcihiLnZhbHVlfHwwKSxCdD1SPkE/TWF0aC5tYXgoMCxNYXRoLm1pbigxMDAsKENlLUEpLyhSLUEpKjEwMCkpOjA7Yi5zdHlsZS5zZXRQcm9wZXJ0eSgiLS1yYW5nZS1maWxsIixCdCsiJSIpfX07aWYob2Upe29lLnZhbHVlPVN0cmluZyhyLm5vdGlmVm9sdW1lKSxsZSYmKGxlLnRleHRDb250ZW50PXIubm90aWZWb2x1bWUrIiUiKSxCZShvZSk7dmFyIHplPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJub3RpZi12b2x1bWUtZmllbGQiKTt6ZSYmKHplLnN0eWxlLmRpc3BsYXk9ci5ub3RpZlNvdW5kPyIiOiJub25lIik7dmFyIEp0PW51bGw7b2UuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLGZ1bmN0aW9uKCl7ci5ub3RpZlZvbHVtZT1wYXJzZUludChvZS52YWx1ZSwxMCksbGUmJihsZS50ZXh0Q29udGVudD1yLm5vdGlmVm9sdW1lKyIlIiksQmUob2UpO3RyeXtsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgid2FuZC1ub3RpZi12b2x1bWUiLFN0cmluZyhyLm5vdGlmVm9sdW1lKSl9Y2F0Y2h7fWlmKGplJiZ0eXBlb2YgV2FuZE5hdGl2ZS5zZXROb3RpZmljYXRpb25Wb2x1bWU9PSJmdW5jdGlvbiIpdHJ5e1dhbmROYXRpdmUuc2V0Tm90aWZpY2F0aW9uVm9sdW1lKHIubm90aWZWb2x1bWUpfWNhdGNoe319KSxvZS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7cGkoKX0pfXZhciBkdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLW5vdGlmLWJ1YmJsZSIpO2R0JiYoZHQuY2hlY2tlZD1yLm5vdGlmQnViYmxlLGR0LmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsZnVuY3Rpb24oKXtyLm5vdGlmQnViYmxlPWR0LmNoZWNrZWQ7dHJ5e2xvY2FsU3RvcmFnZS5zZXRJdGVtKCJ3YW5kLW5vdGlmLWJ1YmJsZSIsU3RyaW5nKHIubm90aWZCdWJibGUpKX1jYXRjaHt9fSkpO3ZhciBmdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm90aWZpY2F0aW9uLXJlcXVlc3QtYnRuIik7ZnQmJmZ0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe2lmKGplKXt3aW5kb3cuX29uTmF0aXZlUGVybWlzc2lvblJlc3VsdD1mdW5jdGlvbigpe0VuKCksZGVsZXRlIHdpbmRvdy5fb25OYXRpdmVQZXJtaXNzaW9uUmVzdWx0fTt0cnl7V2FuZE5hdGl2ZS5yZXF1ZXN0UGVybWlzc2lvbigpfWNhdGNoe319ZWxzZSB0eXBlb2YgTm90aWZpY2F0aW9uPCJ1IiYmTm90aWZpY2F0aW9uLnJlcXVlc3RQZXJtaXNzaW9uKCkudGhlbihmdW5jdGlvbigpe0VuKCl9KX0pO3ZhciBfZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm90aWZpY2F0aW9uLXJlc2V0LWJ0biIpO19lJiZfZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsSm0pO3ZhciBHdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm90aWZpY2F0aW9uLXRlc3QtYnRuIik7R3QmJkd0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixCbCk7dmFyIEplPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJub3RpZmljYXRpb24tdGVzdC1kZWxheS1idG4iKTtpZihKZSYmSmUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLEdtKSxFbigpLGplJiZ0eXBlb2YgV2FuZE5hdGl2ZS5nZXRBdmFpbGFibGVTb3VuZHM9PSJmdW5jdGlvbiIpe3ZhciBydD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibmF0aXZlLXNvdW5kLXNlY3Rpb24iKSxrZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibmF0aXZlLXNvdW5kLXNlbGVjdCIpLGdlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJuYXRpdmUtc291bmQtcHJldmlldyIpO2lmKHJ0JiZrZSl7cnQuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIik7dHJ5e3ZhciBiZT1KU09OLnBhcnNlKFdhbmROYXRpdmUuZ2V0QXZhaWxhYmxlU291bmRzKCkpLEM9V2FuZE5hdGl2ZS5nZXROb3RpZmljYXRpb25Tb3VuZCgpO2tlLmlubmVySFRNTD0iIjtmb3IodmFyIGl0PTA7aXQ8YmUubGVuZ3RoO2l0Kyspe3ZhciB5dD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJvcHRpb24iKTt5dC52YWx1ZT1iZVtpdF0uaWQseXQudGV4dENvbnRlbnQ9YmVbaXRdLm5hbWUsYmVbaXRdLmlkPT09QyYmKHl0LnNlbGVjdGVkPSEwKSxrZS5hcHBlbmRDaGlsZCh5dCl9a2UuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixmdW5jdGlvbigpe3RyeXtXYW5kTmF0aXZlLnNldE5vdGlmaWNhdGlvblNvdW5kKGtlLnZhbHVlKX1jYXRjaHt9fSksZ2UmJmdlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe3RyeXtXYW5kTmF0aXZlLnByZXZpZXdTb3VuZChrZS52YWx1ZSl9Y2F0Y2h7fX0pfWNhdGNoe319fWlmKGplJiZ0eXBlb2YgV2FuZE5hdGl2ZS5pc0hhcHRpY0VuYWJsZWQ9PSJmdW5jdGlvbiIpe3ZhciBUdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibmF0aXZlLWhhcHRpYy1zZWN0aW9uIiksQ3Q9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1oYXB0aWMtZW5hYmxlZCIpO2lmKFR0JiZDdCl7VHQuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIik7dHJ5e0N0LmNoZWNrZWQ9V2FuZE5hdGl2ZS5pc0hhcHRpY0VuYWJsZWQoKX1jYXRjaHt9Q3QuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixmdW5jdGlvbigpe3RyeXtXYW5kTmF0aXZlLnNldEhhcHRpY0VuYWJsZWQoQ3QuY2hlY2tlZCl9Y2F0Y2h7fUN0LmNoZWNrZWQmJkduKCJtZWRpdW0iKX0pfX12YXIgTHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvcGJhci1uZXctc2Vzc2lvbi1idXR0b24iKTtMdCYmTHQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGx1KTt2YXIgWXQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRyYXdlci1uZXctc2Vzc2lvbi1idXR0b24iKTtZdCYmWXQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGx1KTt2YXIgYXQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNsb3NlLW1vZGFsLWJ1dHRvbiIpO2F0JiZhdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIseW4pO3ZhciBxZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2xvc2Utd29ya3RyZWUtbWVyZ2UtYnV0dG9uIik7cWUmJnFlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixlcik7dmFyIFVlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3b3JrdHJlZS1tZXJnZS1jYW5jZWwtYnV0dG9uIik7VWUmJlVlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixlcik7dmFyIGhlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3b3JrdHJlZS1tZXJnZS1jb25maXJtLWJ1dHRvbiIpO2hlJiZoZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsVG0pO3ZhciBidD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicnVuLWJ1dHRvbiIpO2J0JiZidC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsWW0pO3ZhciBwdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXBwcm92ZS1wZXJtaXNzaW9uLWJ0biIpO3B0JiZwdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsYmQpO3ZhciB1dD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVueS1wZXJtaXNzaW9uLWJ0biIpO3V0JiZ1dC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsRWQpO3ZhciBFdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2VuZC1pbnB1dC1idXR0b24iKTtFdCYmRXQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7VXQoKSwkZigpfSk7dmFyIE10PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdG9wLWJ1dHRvbiIpO010JiZNdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIscWEpO3ZhciBPbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2Vzc2lvbi1tb2RhbCIpO09uJiZPbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oYil7Yi50YXJnZXQuaWQ9PT0ic2Vzc2lvbi1tb2RhbCImJnluKCksYi50YXJnZXQuaWQ9PT0id29ya3RyZWUtbWVyZ2UtbW9kYWwiJiZlcigpfSk7dmFyIGZlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dC1ib3giKTtmZSYmKEFvKGZlKSxmZS5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixyZyksZmUuYWRkRXZlbnRMaXN0ZW5lcigicGFzdGUiLGRnKSxmZS5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsZnVuY3Rpb24oKXtyLnRlcm1pbmFsQ29tcG9zaW5nfHxTbChmZSl8fCh1dihmZSksb3QoZmUudmFsdWUsITApLEhpKGZlKSl9KSxmZS5hZGRFdmVudExpc3RlbmVyKCJjb21wb3NpdGlvbnN0YXJ0IixmdW5jdGlvbigpe3IudGVybWluYWxJbnRlcmFjdGl2ZSYmKHIudGVybWluYWxDb21wb3Npbmc9ITApfSksZmUuYWRkRXZlbnRMaXN0ZW5lcigiY29tcG9zaXRpb25lbmQiLGZ1bmN0aW9uKCl7ci50ZXJtaW5hbENvbXBvc2luZyYmKHIudGVybWluYWxDb21wb3Npbmc9ITEsci50ZXJtaW5hbEludGVyYWN0aXZlJiZTbChmZSkpfSksZmUuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLGZ1bmN0aW9uKCl7VXQoKSxacCh7dGFyZ2V0OmZlfSl9KSxmZS5hZGRFdmVudExpc3RlbmVyKCJibHVyIixldikpO3ZhciB2dD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXR0YWNoLWJ0biIpLFo9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtdXBsb2FkLWlucHV0IiksSWU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbXBvc2VyLXBsdXMtcG9wb3ZlciIpLFRlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwbHVzLWF0dGFjaC1pdGVtIik7dnQmJkllJiZ2dC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oYil7Yi5zdG9wUHJvcGFnYXRpb24oKSxFbSgpfSksVGUmJlomJlRlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe09pKCksWi5jbGljaygpfSksWiYmWi5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7dmFyIGI9Wi5maWxlcztpZihiKWZvcih2YXIgQT0wO0E8Yi5sZW5ndGg7QSsrKXB1KGJbQV0pO1oudmFsdWU9IiJ9KTt2YXIgR2U9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInZvaWNlLWJ0biIpO0dlJiZHZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXtEYSgpfSk7dmFyIFllPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ2b2ljZS1jYW5jZWwtYnRuIik7WWUmJlllLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe0RhKCExKX0pO3ZhciBGZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidm9pY2UtcmVjb3JkLWJ0biIpO0ZlJiYoRmUuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcmRvd24iLFdmKSxGZS5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVybW92ZSIsemYpLEZlLmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJ1cCIsWnMpLEZlLmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJjYW5jZWwiLFpzKSk7dmFyIExlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwcm9tcHQtb3B0aW1pemUtYnRuIik7TGUmJkxlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe3BnKCl9KTt2YXIgUWU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLmlucHV0LWNvbXBvc2VyIik7UWUmJihRZS5hZGRFdmVudExpc3RlbmVyKCJkcmFnb3ZlciIsZnVuY3Rpb24oYil7Yi5wcmV2ZW50RGVmYXVsdCgpLGIuc3RvcFByb3BhZ2F0aW9uKCksUWUuY2xhc3NMaXN0LmFkZCgiZHJhZy1vdmVyIil9KSxRZS5hZGRFdmVudExpc3RlbmVyKCJkcmFnbGVhdmUiLGZ1bmN0aW9uKGIpe2IucHJldmVudERlZmF1bHQoKSxiLnN0b3BQcm9wYWdhdGlvbigpLFFlLmNsYXNzTGlzdC5yZW1vdmUoImRyYWctb3ZlciIpfSksUWUuYWRkRXZlbnRMaXN0ZW5lcigiZHJvcCIsZnVuY3Rpb24oYil7Yi5wcmV2ZW50RGVmYXVsdCgpLGIuc3RvcFByb3BhZ2F0aW9uKCksUWUuY2xhc3NMaXN0LnJlbW92ZSgiZHJhZy1vdmVyIik7dmFyIEE9Yi5kYXRhVHJhbnNmZXImJmIuZGF0YVRyYW5zZmVyLmZpbGVzO2lmKEEpZm9yKHZhciBSPTA7UjxBLmxlbmd0aDtSKyspcHUoQVtSXSl9KSk7dmFyIFF0PVsidGVybWluYWwtaW50ZXJhY3RpdmUtdG9nZ2xlLXRvcCJdO1F0LmZvckVhY2goZnVuY3Rpb24oYil7dmFyIEE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYik7QSYmQS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsUHApfSk7dmFyIEg9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtcGFuZWwtdG9nZ2xlLWJ0biIpO0gmJkguYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLEdyKTt2YXIgaj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS1zaWRlLXBhbmVsLWNsb3NlIik7aiYmai5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsSHUpO3ZhciBRPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLXBhbmVsLWJhY2tkcm9wIik7USYmUS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsSHUpO3ZhciB2ZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9wYmFyLWZpbGUtYnV0dG9uIik7dmUmJnZlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixHcik7dmFyIHllPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b3BiYXItY3dkIik7eWUmJih5ZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXtyLmZpbGVQYW5lbE9wZW58fEdyKCl9KSx5ZS5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixmdW5jdGlvbihiKXsoYi5rZXk9PT0iRW50ZXIifHxiLmtleT09PSIgIikmJihiLnByZXZlbnREZWZhdWx0KCksci5maWxlUGFuZWxPcGVufHxHcigpKX0pKTt2YXIgT2U9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvcGJhci1tb3JlLWJ1dHRvbiIpLGFyPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b3BiYXItbW9yZS1tZW51Iik7T2UmJmFyJiYoT2UuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKGIpe2Iuc3RvcFByb3BhZ2F0aW9uKCksci50b3BiYXJNb3JlT3Blbj0hci50b3BiYXJNb3JlT3Blbixhci5jbGFzc0xpc3QudG9nZ2xlKCJoaWRkZW4iLCFyLnRvcGJhck1vcmVPcGVuKSxPZS5jbGFzc0xpc3QudG9nZ2xlKCJhY3RpdmUiLHIudG9wYmFyTW9yZU9wZW4pLE9lLnNldEF0dHJpYnV0ZSgiYXJpYS1leHBhbmRlZCIsci50b3BiYXJNb3JlT3Blbj8idHJ1ZSI6ImZhbHNlIil9KSxhci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oYil7dmFyIEE9Yi50YXJnZXQmJmIudGFyZ2V0LmNsb3Nlc3Q/Yi50YXJnZXQuY2xvc2VzdCgiLnRvcGJhci1tb3JlLWl0ZW0iKTpudWxsO2lmKEEpe3ZhciBSPUEuZ2V0QXR0cmlidXRlKCJkYXRhLWFjdGlvbiIpO3N3aXRjaChyLnRvcGJhck1vcmVPcGVuPSExLGFyLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLE9lLmNsYXNzTGlzdC5yZW1vdmUoImFjdGl2ZSIpLE9lLnNldEF0dHJpYnV0ZSgiYXJpYS1leHBhbmRlZCIsImZhbHNlIiksUil7Y2FzZSJjb3B5LWNsYXVkZS1zZXNzaW9uLWlkIjpwYSgiY2xhdWRlU2Vzc2lvbklkIixTdCgpJiZTdCgpLnByb3ZpZGVyPT09ImNvZGV4Ij8iQ29kZXggdGhyZWFkIElEIFx1NURGMlx1NTkwRFx1NTIzNiI6IkNsYXVkZSBcdTRGMUFcdThCREQgSUQgXHU1REYyXHU1OTBEXHU1MjM2Iik7YnJlYWs7Y2FzZSJjb3B5LWN3ZCI6cGEoImN3ZCIsIlx1NURFNVx1NEY1Q1x1NzZFRVx1NUY1NVx1NURGMlx1NTkwRFx1NTIzNiIpO2JyZWFrO2Nhc2UiY29weS1zZXNzaW9uLWlkIjpwYSgiaWQiLCJcdTRGMUFcdThCREQgSUQgXHU1REYyXHU1OTBEXHU1MjM2Iik7YnJlYWs7Y2FzZSJ3b3JrdHJlZS1tZXJnZSI6ci5zZWxlY3RlZElkJiZobChyLnNlbGVjdGVkSWQpO2JyZWFrO2Nhc2Uid29ya3RyZWUtY2xlYW51cCI6ci5zZWxlY3RlZElkJiZ5bChyLnNlbGVjdGVkSWQpO2JyZWFrO2Nhc2UiZGVsZXRlLXNlc3Npb24iOnIuc2VsZWN0ZWRJZCYmKGZ1bmN0aW9uKENlKXt4bigiXHU3ODZFXHU1QjlBXHU4OTgxXHU1MjIwXHU5NjY0XHU1RjUzXHU1MjREXHU0RjFBXHU4QkREXHU1NDE3XHVGRjFGXHU2QjY0XHU2NENEXHU0RjVDXHU2NUUwXHU2Q0Q1XHU2NEE0XHU5NTAwXHUzMDAyIix7dGl0bGU6Ilx1NTIyMFx1OTY2NFx1NUY1M1x1NTI0RFx1NEYxQVx1OEJERCJ9KS50aGVuKGZ1bmN0aW9uKEJ0KXtCdCYmT2EoQ2UpfSl9KShyLnNlbGVjdGVkSWQpO2JyZWFrfX19KSk7dmFyIGpyPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXJtaW5hbC1zY2FsZS1kb3duLXRvcCIpLE5pPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXJtaW5hbC1zY2FsZS11cC10b3AiKTtqciYmanIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7X3UoLS4yNSl9KSxOaSYmTmkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7X3UoLjI1KX0pO3ZhciBJbD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGFnZS1yZWZyZXNoLWJ0biIpO0lsJiZJbC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oYil7aWYoYiYmYi5zaGlmdEtleSl7bG9jYXRpb24ucmVsb2FkKCk7cmV0dXJufVNuKCksQXQoe3ByZXNlcnZlU3RpY2tTdGF0ZTohMH0pLE5hKCEwKX0pO3ZhciBUbD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVybWluYWwtanVtcC1ib3R0b20iKTtUbCYmVGwuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7RnQoImZvcmNlIil9KTt2YXIgTGw9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoYXQtdW5yZWFkLWJ1YmJsZSIpO0xsJiZMbC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXtrdSghMCl9KTt2YXIgTWw9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtZXhwbG9yZXItcmVmcmVzaCIpO01sJiZNbC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXtQdCgpfSk7dmFyIHFsPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLWV4cGxvcmVyLXVwIik7cWwmJnFsLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixnYyk7dmFyIFZlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLWV4cGxvcmVyLWN3ZCIpO2lmKFZlJiZWZS50YWdOYW1lPT09IklOUFVUIil7dmFyIHVyPVZlLnZhbHVlLE9sPWZ1bmN0aW9uKGIpe3ZhciBBPShifHwiIikudHJpbSgpO3JldHVybiBBPyhBPUEucmVwbGFjZSgvXC97Mix9L2csIi8iKSxBLmxlbmd0aD4xJiYoQT1BLnJlcGxhY2UoL1wvKyQvLCIiKSksQSk6IiJ9O1ZlLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIixmdW5jdGlvbigpe3VyPVZlLnZhbHVlLHNldFRpbWVvdXQoZnVuY3Rpb24oKXt0cnl7VmUuc2VsZWN0KCl9Y2F0Y2h7fX0sMCl9KSxWZS5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixmdW5jdGlvbihiKXtpZihiLmtleT09PSJFbnRlciIpe2IucHJldmVudERlZmF1bHQoKTt2YXIgQT1PbChWZS52YWx1ZSk7aWYoIUEpcmV0dXJuO3VyPUEsVmUudmFsdWU9QSxQdCh7Y3dkOkF9KSxWZS5ibHVyKCl9ZWxzZSBiLmtleT09PSJFc2NhcGUiJiYoYi5wcmV2ZW50RGVmYXVsdCgpLFZlLnZhbHVlPXVyLFZlLmJsdXIoKSl9KSxWZS5hZGRFdmVudExpc3RlbmVyKCJibHVyIixmdW5jdGlvbigpe3ZhciBiPU9sKFZlLnZhbHVlKTtpZighYil7VmUudmFsdWU9dXI7cmV0dXJufWlmKGI9PT11cil7VmUudmFsdWU9YjtyZXR1cm59dXI9YixWZS52YWx1ZT1iLFB0KHtjd2Q6Yn0pfSl9dmFyIGppPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLXNlYXJjaC1pbnB1dCIpLFJyPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLXNlYXJjaC1jbGVhciIpO2ppJiZqaS5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsZnVuY3Rpb24oYil7ci5maWxlU2VhcmNoUXVlcnk9Yi50YXJnZXQudmFsdWUudHJpbSgpLFJyJiZSci5jbGFzc0xpc3QudG9nZ2xlKCJ2aXNpYmxlIixyLmZpbGVTZWFyY2hRdWVyeS5sZW5ndGg+MCksV3UoKX0pLFJyJiZSci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXtyLmZpbGVTZWFyY2hRdWVyeT0iIixqaSYmKGppLnZhbHVlPSIiKSxSci5jbGFzc0xpc3QucmVtb3ZlKCJ2aXNpYmxlIil9KTt2YXIgRWU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZvbGRlci1waWNrZXItaW5wdXQiKSxBZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZm9sZGVyLXBpY2tlci1kcm9wZG93biIpLEZ1PW51bGwsJHQ9LTEsRm49W107ZnVuY3Rpb24gUGwoYil7RWUmJkVlLmNsYXNzTGlzdC5hZGQoImludmFsaWQiKTt2YXIgQT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZm9sZGVyLXBpY2tlci12YWxpZGF0aW9uIik7QSYmKEEudGV4dENvbnRlbnQ9YixBLmNsYXNzTGlzdC5hZGQoInZpc2libGUiKSl9ZnVuY3Rpb24gSGwoKXtFZSYmRWUuY2xhc3NMaXN0LnJlbW92ZSgiaW52YWxpZCIpO3ZhciBiPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmb2xkZXItcGlja2VyLXZhbGlkYXRpb24iKTtiJiYoYi50ZXh0Q29udGVudD0iIixiLmNsYXNzTGlzdC5yZW1vdmUoInZpc2libGUiKSl9ZnVuY3Rpb24geWcoYil7aWYoIWIubGVuZ3RoKXJldHVybiIiO3ZhciBBPSc8ZGl2IGNsYXNzPSJmb2xkZXItcmVjZW50LXNlY3Rpb24iPjxkaXYgY2xhc3M9ImZvbGRlci1yZWNlbnQtdGl0bGUiPlx1NjcwMFx1OEZEMVx1NEY3Rlx1NzUyODwvZGl2Pic7cmV0dXJuIGIuZm9yRWFjaChmdW5jdGlvbihSKXt2YXIgQ2U9Ui5wYXRofHxSO0ErPSc8ZGl2IGNsYXNzPSJmb2xkZXItcmVjZW50LWl0ZW0iIGRhdGEtcGF0aD0iJytwKENlKSsnIj4nK2x0KENlLCJmb2xkZXItcmVjZW50LWl0ZW0tcGF0aCIpKyI8L2Rpdj4ifSksQSs9IjwvZGl2PiIsQX1mdW5jdGlvbiBiZygpe0FlJiZkYShmdW5jdGlvbihiKXt2YXIgQT15ZyhiKTtBPyhBZS5pbm5lckhUTUw9QSxBZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSxLdChBZSksQWUucXVlcnlTZWxlY3RvckFsbCgiLmZvbGRlci1yZWNlbnQtaXRlbSIpLmZvckVhY2goZnVuY3Rpb24oUil7Ui5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXt2YXIgQ2U9dGhpcy5kYXRhc2V0LnBhdGg7RWUmJihFZS52YWx1ZT1DZSxlbihDZSksYW4oQ2UpKX0pfSkpOldyKCl9KX12YXIgX2w9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndvcmtpbmctZGlyLWluZGljYXRvciIpO19sJiZfbC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXtyLnNlbGVjdGVkSWQ9bnVsbCx3ZSgpLHIuZHJhZnRzPXt9LHRuKCksc2V0VGltZW91dChmdW5jdGlvbigpe3ZhciBiPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmb2xkZXItcGlja2VyLWlucHV0Iik7YiYmYi5mb2N1cygpfSw1MCl9KTt2YXIgd3U9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZvbGRlci1waWNrZXItdG9nZ2xlIiksQWU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZvbGRlci1waWNrZXItZHJvcGRvd24iKTt3dSYmQWUmJnd1LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe0FlLmNsYXNzTGlzdC50b2dnbGUoImhpZGRlbiIpLHd1LmNsYXNzTGlzdC50b2dnbGUoIm9wZW4iKX0pO3ZhciBSaT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuZm9sZGVyLXBpY2tlci1jb21wYWN0Iik7aWYoUmkmJihSaS5hZGRFdmVudExpc3RlbmVyKCJkcmFnb3ZlciIsZnVuY3Rpb24oYil7Yi5wcmV2ZW50RGVmYXVsdCgpLGIuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5jbGFzc0xpc3QuYWRkKCJkcmFnLW92ZXIiKX0pLFJpLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdsZWF2ZSIsZnVuY3Rpb24oYil7Yi5wcmV2ZW50RGVmYXVsdCgpLGIuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5jbGFzc0xpc3QucmVtb3ZlKCJkcmFnLW92ZXIiKX0pLFJpLmFkZEV2ZW50TGlzdGVuZXIoImRyb3AiLGZ1bmN0aW9uKGIpe2IucHJldmVudERlZmF1bHQoKSxiLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuY2xhc3NMaXN0LnJlbW92ZSgiZHJhZy1vdmVyIik7dmFyIEE9Yi5kYXRhVHJhbnNmZXImJmIuZGF0YVRyYW5zZmVyLml0ZW1zO2lmKEEpZm9yKHZhciBSPTA7UjxBLmxlbmd0aDtSKyspe3ZhciBDZT1BW1JdO2lmKENlLmtpbmQ9PT0iZmlsZSImJkNlLndlYmtpdEdldEFzRW50cnkpe3ZhciBCdD1DZS53ZWJraXRHZXRBc0VudHJ5KCk7aWYoQnQmJkJ0LmlzRGlyZWN0b3J5JiZFZSl7dmFyIHF0PUJ0LmZ1bGxQYXRoO0VlLnZhbHVlPXF0LGVuKHF0KSxhbihxdCk7YnJlYWt9fX19KSksQWUmJkFlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihiKXt2YXIgQT1iLnRhcmdldC5jbG9zZXN0KCIuZm9sZGVyLXBpY2tlci1xdWljay1idG4iKTtpZihBJiZFZSl7dmFyIFI9QS5kYXRhc2V0LnBhdGg7RWUudmFsdWU9UixlbihSKSxhbihSKSxBZS5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKTt2YXIgQ2U9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZvbGRlci1waWNrZXItdG9nZ2xlIik7Q2UmJkNlLmNsYXNzTGlzdC5yZW1vdmUoIm9wZW4iKX19KSxFZSl7dmFyIEVnPWV0KCk7YW4oRWcpLEVlLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIixmdW5jdGlvbigpe3ZhciBiPXRoaXMudmFsdWUudHJpbSgpO2I/YW4oYik6YmcoKX0pLEVlLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IixmdW5jdGlvbihiKXt2YXIgQT1iLnRhcmdldC52YWx1ZS50cmltKCk7JHQ9LTEsRnUmJmNsZWFyVGltZW91dChGdSksRnU9c2V0VGltZW91dChmdW5jdGlvbigpe0E/YW4oQSk6V3IoKX0sMTUwKX0pLEVlLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGZ1bmN0aW9uKGIpe2lmKGIua2V5PT09IkVzY2FwZSIpV3IoKSx0aGlzLmJsdXIoKTtlbHNlIGlmKGIua2V5PT09IkFycm93RG93biIpYi5wcmV2ZW50RGVmYXVsdCgpLEZuLmxlbmd0aD4wJiYoJHQ9TWF0aC5taW4oJHQrMSxGbi5sZW5ndGgtMSksTmwoKSk7ZWxzZSBpZihiLmtleT09PSJBcnJvd1VwIiliLnByZXZlbnREZWZhdWx0KCksJHQ+MCYmKCR0LS0sTmwoKSk7ZWxzZSBpZihiLmtleT09PSJFbnRlciImJiR0Pj0wKXtiLnByZXZlbnREZWZhdWx0KCk7dmFyIEE9Rm5bJHRdO2lmKEEpe3ZhciBSPUEuZGF0YXNldC5wYXRoO2lmKFI9PT0iLi4iKXt2YXIgQ2U9RWUudmFsdWUudHJpbSgpLEJ0PUNlLnN1YnN0cmluZygwLENlLmxhc3RJbmRleE9mKCIvIikpO0J0JiYoRWUudmFsdWU9QnR8fCIvIixlbihFZS52YWx1ZSksYW4oQnR8fCIvIikpfWVsc2UgRWUudmFsdWU9UixlbihSKSxXcigpfX19KX1mdW5jdGlvbiBObCgpe0ZuLmZvckVhY2goZnVuY3Rpb24oYixBKXtiLmNsYXNzTGlzdC50b2dnbGUoImFjdGl2ZSIsQT09PSR0KX0pfWZ1bmN0aW9uIGloKGIpe31mdW5jdGlvbiBhbihiKXtBZSYmKEFlLmlubmVySFRNTD0nPGRpdiBjbGFzcz0iZm9sZGVyLXBpY2tlci1sb2FkaW5nIj5cdTUyQTBcdThGN0RcdTRFMkQuLi48L2Rpdj4nLEFlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLCR0PS0xLEZuPVtdLGZldGNoKCIvYXBpL2ZvbGRlcnM/cT0iK2VuY29kZVVSSUNvbXBvbmVudChiKSx7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24oQSl7cmV0dXJuIEEuanNvbigpLnRoZW4oZnVuY3Rpb24oUil7cmV0dXJue29rOkEub2ssc3RhdHVzOkEuc3RhdHVzLGRhdGE6Un19KX0pLnRoZW4oZnVuY3Rpb24oQSl7dmFyIFI9QS5kYXRhO2lmKCFBLm9rfHxSLmVycm9yKXtQbChSLmVycm9yfHwiXHU4REVGXHU1Rjg0XHU2NUUwXHU2NTQ4IiksQWUuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJmb2xkZXItcGlja2VyLWVycm9yIj4nK3AoUi5lcnJvcnx8Ilx1OERFRlx1NUY4NFx1NjVFMFx1NjU0OCIpKyI8L2Rpdj4iO3JldHVybn1IbCgpLFIuY3VycmVudFBhdGg7dmFyIENlPVIuaXRlbXN8fFtdLEJ0PVIuY3VycmVudFBhdGh8fGI7aWYoQ2UubGVuZ3RoPT09MCl7QWUuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJmb2xkZXItcGlja2VyLWxvYWRpbmciPlx1N0E3QVx1NzZFRVx1NUY1NTwvZGl2Pic7cmV0dXJufUFlLmlubmVySFRNTD1DZS5tYXAoZnVuY3Rpb24ocXQpe3ZhciBXaT1xdC50eXBlPT09InBhcmVudCI/Ilx1MjFBOVx1RkUwRiI6Ilx1ezFGNEMxfSIsQ3U9cXQudHlwZT09PSJwYXJlbnQiPyIuLiAoXHU4RkQ0XHU1NkRFXHU0RTBBXHU3RUE3KSI6cXQubmFtZTtyZXR1cm4nPGRpdiBjbGFzcz0iZm9sZGVyLXBpY2tlci1pdGVtIiBkYXRhLXBhdGg9IicrcChxdC5wYXRoKSsnIiBkYXRhLXR5cGU9IicrcXQudHlwZSsnIj48c3BhbiBjbGFzcz0iZm9sZGVyLXBpY2tlci1pdGVtLWljb24iPicrV2krIjwvc3Bhbj48c3Bhbj4iK3AoQ3UpKyI8L3NwYW4+PC9kaXY+In0pLmpvaW4oIiIpLEZuPUFycmF5LmZyb20oQWUucXVlcnlTZWxlY3RvckFsbCgiLmZvbGRlci1waWNrZXItaXRlbSIpKSxGbi5mb3JFYWNoKGZ1bmN0aW9uKHF0KXtxdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXt2YXIgV2k9dGhpcy5kYXRhc2V0LnBhdGgsQ3U9dGhpcy5kYXRhc2V0LnR5cGU7aWYoRWUpaWYoQ3U9PT0icGFyZW50Iil7dmFyIHpsPUVlLnZhbHVlLnRyaW0oKSxVbD16bC5zdWJzdHJpbmcoMCx6bC5sYXN0SW5kZXhPZigiLyIpKTtFZS52YWx1ZT1VbHx8Ii8iLGVuKEVlLnZhbHVlKSxhbihVbHx8Ii8iKX1lbHNlIEVlLnZhbHVlPVdpLGVuKFdpKSxIbCgpLFdyKCl9KX0pfSkuY2F0Y2goZnVuY3Rpb24oQSl7UGwoIlx1NTJBMFx1OEY3RFx1NTkzMVx1OEQyNSIpLEFlLmlubmVySFRNTD0nPGRpdiBjbGFzcz0iZm9sZGVyLXBpY2tlci1lcnJvciI+XHU1MkEwXHU4RjdEXHU1OTMxXHU4RDI1PC9kaXY+J30pKX1mdW5jdGlvbiBXcigpe0FlJiZBZS5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSwkdD0tMSxGbj1bXX12YXIgd249ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZvbGRlci1waWNrZXItbW9kYWwiKSxqbD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2xvc2UtZm9sZGVyLXBpY2tlciIpO2Z1bmN0aW9uIGFoKCl7aWYod24pe3duLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLEVlJiYoRWUudmFsdWU9ZXQoKSk7dmFyIGI9ZXQoKTthbihiKX19amwmJnduJiZqbC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXt3bi5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKX0pLHduJiZ3bi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oYil7Yi50YXJnZXQ9PT13biYmd24uY2xhc3NMaXN0LmFkZCgiaGlkZGVuIil9KTt2YXIgUmw9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvcGJhci1naXQtYmFkZ2UiKTtSbCYmUmwuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKGIpe2IucHJldmVudERlZmF1bHQoKSx0cygpfSk7dmFyIFdsPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJxdWljay1jb21taXQtbW9kYWwiKTtXbCYmV2wuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKGIpe2IudGFyZ2V0LmlkPT09InF1aWNrLWNvbW1pdC1tb2RhbCImJiFyLnF1aWNrQ29tbWl0U3VibWl0dGluZyYmTm4oKX0pLG5zKCksSm4oKSxvdigpLGtkKCksZHAoKSxzdCgpfWZ1bmN0aW9uIEF0KGUpe3ZhciB0PWV8fHt9O3IubGFzdFJlbmRlcmVkSGFzaD0wLHIubGFzdFJlbmRlcmVkTXNnQ291bnQ9MCxyLmxhc3RSZW5kZXJlZEVtcHR5PW51bGwsci5yZW5kZXJQZW5kaW5nPSExLHIuY2hhdFJlbmRlcmVkQ291bnQ9ci5jaGF0UGFnZVNpemUsci5hc2tVc2VyU2VsZWN0aW9ucz17fSxyLmNoYXRTY3JvbGxFbGVtZW50JiYoci5jaGF0U2Nyb2xsSGFuZGxlciYmci5jaGF0U2Nyb2xsRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJzY3JvbGwiLHIuY2hhdFNjcm9sbEhhbmRsZXIpLHIuY2hhdFNjcm9sbFdoZWVsSGFuZGxlciYmci5jaGF0U2Nyb2xsRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJ3aGVlbCIsci5jaGF0U2Nyb2xsV2hlZWxIYW5kbGVyKSxyLmNoYXRTY3JvbGxUb3VjaFN0YXJ0SGFuZGxlciYmci5jaGF0U2Nyb2xsRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IixyLmNoYXRTY3JvbGxUb3VjaFN0YXJ0SGFuZGxlciksci5jaGF0U2Nyb2xsVG91Y2hNb3ZlSGFuZGxlciYmci5jaGF0U2Nyb2xsRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLHIuY2hhdFNjcm9sbFRvdWNoTW92ZUhhbmRsZXIpKSxyLmNoYXRTY3JvbGxFbGVtZW50PW51bGwsci5jaGF0U2Nyb2xsSGFuZGxlcj1udWxsLHIuY2hhdFNjcm9sbFdoZWVsSGFuZGxlcj1udWxsLHIuY2hhdFNjcm9sbFRvdWNoU3RhcnRIYW5kbGVyPW51bGwsci5jaGF0U2Nyb2xsVG91Y2hNb3ZlSGFuZGxlcj1udWxsLHIuY2hhdElzUHJvZ3JhbW1hdGljU2Nyb2xsPSExLHQucHJlc2VydmVTdGlja1N0YXRlfHwoci5jaGF0U3RpY2tUb0JvdHRvbT0hMCxyLmNoYXRVbnJlYWRDb3VudD0wLHIuY2hhdFVucmVhZFN0YXJ0SW5kZXg9LTEsci5jaGF0SW5pdGlhbFJlbmRlckRvbmU9ITEpfWZ1bmN0aW9uIGV0KCl7cmV0dXJuIHIud29ya2luZ0Rpcnx8c24oKX13aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigib25saW5lIixmdW5jdGlvbigpe3IuaXNPbmxpbmU9ITAsbGkoKX0pLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJvZmZsaW5lIixmdW5jdGlvbigpe3IuaXNPbmxpbmU9ITEsbGkoKX0pO2Z1bmN0aW9uIGxpKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm9mZmxpbmUtYmFubmVyIik7aWYoIXIuaXNPbmxpbmUmJiFlKXt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt0LmlkPSJvZmZsaW5lLWJhbm5lciIsdC5jbGFzc05hbWU9Im9mZmxpbmUtYmFubmVyIix0LnRleHRDb250ZW50PSJZb3UgYXJlIG9mZmxpbmUgLSBzb21lIGZlYXR1cmVzIG1heSBiZSBsaW1pdGVkIixkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHQpfWVsc2Ugci5pc09ubGluZSYmZSYmZS5yZW1vdmUoKX1mdW5jdGlvbiBtZigpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcHAiKTtlJiYoZS5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImJvb3QtbG9hZGluZyI+PGRpdiBjbGFzcz0iYm9vdC1sb2FkaW5nLWNhcmQiPjxkaXYgY2xhc3M9ImJvb3QtbG9hZGluZy1zcGlubmVyIj48L2Rpdj48ZGl2IGNsYXNzPSJib290LWxvYWRpbmctdGV4dCI+XHU2QjYzXHU1NzI4XHU4RkRFXHU2M0E1IFdhbmRcdTIwMjY8L2Rpdj48L2Rpdj48L2Rpdj4nKX1mdW5jdGlvbiBFcihlLHQpe2lmKHIuY29uZmlnJiYhZG9jdW1lbnQuaGlkZGVuKXt2YXIgbj10JiZ0LmltbWVkaWF0ZT09PSEwLGk9RGF0ZS5ub3coKTshbiYmaS1yLmxhc3RGb3JlZ3JvdW5kU3luY0F0PDE1MDB8fChyLmxhc3RGb3JlZ3JvdW5kU3luY0F0PWksci5mb3JlZ3JvdW5kU3luY1RpbWVyJiYoY2xlYXJUaW1lb3V0KHIuZm9yZWdyb3VuZFN5bmNUaW1lciksci5mb3JlZ3JvdW5kU3luY1RpbWVyPW51bGwpLGdmKGUsbikpfX1mdW5jdGlvbiBnZihlLHQpe3JldHVybiFyLmNvbmZpZ3x8ZG9jdW1lbnQuaGlkZGVuP1Byb21pc2UucmVzb2x2ZSgpOihGcygpLHQ/dWEoInJlc3VtZS1mb3JjZSIpOighci53c3x8ci53cy5yZWFkeVN0YXRlIT09V2ViU29ja2V0Lk9QRU4mJnIud3MucmVhZHlTdGF0ZSE9PVdlYlNvY2tldC5DT05ORUNUSU5HKSYmbmkoKSxyLmNsYXVkZUhpc3RvcnlMb2FkZWQmJnlzKCksZ24oe3NraXBTZWxlY3RlZE91dHB1dFJlbG9hZDohMH0pLmNhdGNoKGZ1bmN0aW9uKG4pe2NvbnNvbGUuZXJyb3IoIlt3YW5kXSBmb3JlZ3JvdW5kIHN5bmMgZmFpbGVkOiIsZSxuKX0pKX1mdW5jdGlvbiBoZigpe3dpbmRvdy5fX3dhbmRGb3JlZ3JvdW5kU3luY0JvdW5kfHwod2luZG93Ll9fd2FuZEZvcmVncm91bmRTeW5jQm91bmQ9ITAsZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidmlzaWJpbGl0eWNoYW5nZSIsZnVuY3Rpb24oKXtkb2N1bWVudC5oaWRkZW4/YWEoKTooRXIoInZpc2liaWxpdHkiKSxicigidmlzaWJpbGl0eSIpKX0pLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsZnVuY3Rpb24oKXtFcigiZm9jdXMiKX0pLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJwYWdlc2hvdyIsZnVuY3Rpb24oKXtFcigicGFnZXNob3ciKX0pLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXN1bWUiLGZ1bmN0aW9uKCl7RXIoInJlc3VtZSIpfSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIndhbmQtYW5kcm9pZC1yZXN1bWUiLGZ1bmN0aW9uKCl7RXIoImFuZHJvaWQtcmVzdW1lIix7aW1tZWRpYXRlOiEwfSksYnIoImFuZHJvaWQtcmVzdW1lIil9KSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigid2FuZC1pbWUtc3RhdGUiLGZ1bmN0aW9uKGUpe3ZhciB0PWUmJmUuZGV0YWlsJiZlLmRldGFpbC5zdGF0ZTtpZih0PT09InNob3duInx8dD09PSJoaWRkZW4iKXRyeXtaZSgibmF0aXZlLWltZS0iK3Qse2ZvcmNlUmVwbGF5OiEwfSksRnQoIm5hdGl2ZS1pbWUiKX1jYXRjaHt9fSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIndhbmQtYW5kcm9pZC1uZXR3b3JrIixmdW5jdGlvbihlKXt2YXIgdD1lJiZlLmRldGFpbCYmZS5kZXRhaWwuc3RhdGU7aWYodD09PSJsb3N0Iil7ci5pc09ubGluZT0hMTt0cnl7bGkoKX1jYXRjaHt9cmV0dXJufWlmKHQ9PT0iYXZhaWxhYmxlInx8dD09PSJjaGFuZ2VkInx8dD09PSJ2YWxpZGF0ZWQiKXtyLmlzT25saW5lPSEwO3RyeXtsaSgpfWNhdGNoe311YSgiYW5kcm9pZC1uZXR3b3JrLSIrdCl9fSkpfWZ1bmN0aW9uIHlmKCl7ZmV0Y2goIi9hcGkvc2Vzc2lvbi1jaGVjayIse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBlLm9rP2UuanNvbigpOnthdXRoZWQ6ITF9fSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4hZXx8IWUuYXV0aGVkPyhyLmxvZ2luQ2hlY2tlZD0hMCx0bigpLG51bGwpOmZldGNoKCIvYXBpL2NvbmZpZyIse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiB0Lm9rP3QuanNvbigpOihyLmxvZ2luQ2hlY2tlZD0hMCx0bigpLG51bGwpfSl9KS50aGVuKGZ1bmN0aW9uKGUpe2UmJihyLmNvbmZpZz1lLHIubG9naW5DaGVja2VkPSEwLHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe3RyeXt0bih7c2tpcFNoZWxsQ2hyb21lOiEwfSl9Y2F0Y2h7fWhmKCksYnMoKSxSdCgpLGZsKCkseGYoKSxlLnVwZGF0ZUF2YWlsYWJsZSYmZS5sYXRlc3RWZXJzaW9uJiZKcyhlLmN1cnJlbnRWZXJzaW9ufHwiLSIsZS5sYXRlc3RWZXJzaW9uKSxUbiYmVW0oKSxjbiYmVm0oKSxyLmNsYXVkZUhpc3RvcnlMb2FkZWR8fHNldFRpbWVvdXQoZnVuY3Rpb24oKXtyLmNsYXVkZUhpc3RvcnlMb2FkZWR8fHRpKCl9LDYwMCl9KSl9KS5jYXRjaChmdW5jdGlvbigpe2lmKHIubG9naW5DaGVja2VkPSEwLCFuYXZpZ2F0b3Iub25MaW5lKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXBwIik7ZSYmKGUuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJib290LWxvYWRpbmciPjxkaXYgY2xhc3M9ImJvb3QtbG9hZGluZy1jYXJkIj48ZGl2IGNsYXNzPSJib290LWxvYWRpbmctdGV4dCIgc3R5bGU9ImZvbnQtc2l6ZToxLjNlbTttYXJnaW4tYm90dG9tOjEycHg7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2dhcDo4cHgiPicreigic2lnbmFsIix7c2l6ZToyMCxzdHJva2VXaWR0aDoxLjh9KSsnPHNwYW4+XHU2NUUwXHU2Q0Q1XHU4RkRFXHU2M0E1XHU1MjMwXHU2NzBEXHU1MkExXHU1NjY4PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9ImJvb3QtbG9hZGluZy10ZXh0IiBzdHlsZT0ib3BhY2l0eTowLjc7Zm9udC1zaXplOjAuOTVlbSI+XHU4QkY3XHU2OEMwXHU2N0U1XHU3RjUxXHU3RURDXHU4RkRFXHU2M0E1XHU2MjE2XHU3ODZFXHU4QkE0IFdhbmQgXHU2NzBEXHU1MkExXHU2QjYzXHU1NzI4XHU4RkQwXHU4ODRDXHUzMDAyPC9kaXY+PGJ1dHRvbiBvbmNsaWNrPSJsb2NhdGlvbi5yZWxvYWQoKSIgc3R5bGU9Im1hcmdpbi10b3A6MThweDtwYWRkaW5nOjhweCAyNHB4O2JvcmRlci1yYWRpdXM6OHB4O2JvcmRlcjoxcHggc29saWQgcmdiYSgxNTAsMTE4LDg1LDAuMyk7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LDAuOCk7Y3Vyc29yOnBvaW50ZXI7Zm9udC1zaXplOjAuOTVlbSI+XHU5MUNEXHU4QkQ1PC9idXR0b24+PC9kaXY+PC9kaXY+Jyksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm9ubGluZSIsZnVuY3Rpb24oKXtsb2NhdGlvbi5yZWxvYWQoKX0se29uY2U6ITB9KTtyZXR1cm59dG4oKX0pfWRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihlKXtpZighTmUoKSYmIXIuc2lkZWJhclBpbm5lZCYmIXIuc2lkZWJhckNvbGxhcHNlZCYmci5zZXNzaW9uc0RyYXdlck9wZW4pe3ZhciB0PWUudGFyZ2V0OyF0fHwhKHQgaW5zdGFuY2VvZiBFbGVtZW50KXx8dC5jbG9zZXN0KCIjc2Vzc2lvbnMtZHJhd2VyIil8fHQuY2xvc2VzdCgiI3Nlc3Npb25zLXRvZ2dsZS1idXR0b24iKXx8dC5jbG9zZXN0KCIuZmxvYXRpbmctc2lkZWJhci10b2dnbGUiKXx8dC5jbG9zZXN0KCIuc2lkZWJhci10aWxlLWJ1YmJsZSIpfHx0LmNsb3Nlc3QoIi5tb2RhbC1iYWNrZHJvcCwgLm1vZGFsLW92ZXJsYXksIC5tb2RhbC1jb250YWluZXIsIFtyb2xlPSdkaWFsb2cnXSwgW3JvbGU9J21lbnUnXSwgLnRvcGJhci1tb3JlLW1lbnUsIC5zaWRlYmFyLWhlYWRlci1vdmVyZmxvdywgLmZvbGRlci1waWNrZXItZHJvcGRvd24sIC5wYXRoLXN1Z2dlc3Rpb25zLCAucGVybWlzc2lvbi1wcm9tcHQtb3ZlcmxheSwgLnJlc3RhcnQtb3ZlcmxheSIpfHxibSgpfX0sITApLG1mKCkseWYoKTtmdW5jdGlvbiB0bihlKXt2YXIgdD1lJiZlLnNraXBTaGVsbENocm9tZSxuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcHAiKSxpPXIuY29uZmlnIT09bnVsbCxhPXIubW9kYWxPcGVuLHU9IWl8fCEhZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpO2lmKHUmJnlyKCksZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdC5hZGQoIm5vLXRyYW5zaXRpb24iKSxyLnNpZGViYXJQaW5uZWQmJiFyLnNpZGViYXJDb2xsYXBzZWQmJiFOZSgpJiYoci5zZXNzaW9uc0RyYXdlck9wZW49ITAseGUoIndhbmQtc2lkZWJhci1vcGVuIiwhMCkpLG4uaW5uZXJIVE1MPWk/RmYoKTpFZigpLEF0KCksdmYoKSxNcigpLHhpKCksWm4oU3QoKSkscWkoKSx0fHxMcigpLGkmJnIuZmlsZVBhbmVsT3BlbiYmUHQoKSxkb2N1bWVudC5ib2R5Lm9mZnNldEhlaWdodCxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXtkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgibm8tdHJhbnNpdGlvbiIpfSksYSYmci5tb2RhbE9wZW4pe3ZhciBzPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXNzaW9uLW1vZGFsIik7aWYocyl7cy5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKTt2YXIgbz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY3dkIik7byYmKG8udmFsdWU9ci5jd2RWYWx1ZSksVHIoKX19aWYoaSYmci5zZWxlY3RlZElkJiZyLmdpdFN0YXR1c1Nlc3Npb25JZCE9PXIuc2VsZWN0ZWRJZCYmRG4oci5zZWxlY3RlZElkKSxpKXt2YXIgbD1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oYyl7cmV0dXJuIGMuaWQ9PT1yLnNlbGVjdGVkSWR9KTtodShsKX1pcihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9wYmFyLWN3ZCIpKSxpcihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYmxhbmstY2hhdC1jd2QtcGF0aCIpKSxpcihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid29ya2luZy1kaXItaW5kaWNhdG9yLXBhdGgiKSksS3QoKX1mdW5jdGlvbiBiZigpe3ZhciBlPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihuKXtyZXR1cm4gbi5pZD09PXIuc2VsZWN0ZWRJZH0pLHQ9ZSYmZS5hcHByb3ZhbFN0YXRzO3JldHVybiF0fHx0LnRvdGFsPT09MD8nPHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzIGhpZGRlbiIgaWQ9ImFwcHJvdmFsLXN0YXRzIj48L3NwYW4+JzonPHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzIiBpZD0iYXBwcm92YWwtc3RhdHMiPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1kaXZpZGVyIj48L3NwYW4+PHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLWJhZGdlIiBpZD0iYXBwcm92YWwtc3RhdHMtYmFkZ2UiIHRpdGxlPSJcdTY3MkNcdTZCMjFcdTRGMUFcdThCRERcdTgxRUFcdTUyQThcdTYyNzlcdTUxQzZcdTdFREZcdThCQTEiPjxzdmcgY2xhc3M9ImFwcHJvdmFsLXN0YXRzLWljb24iIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0xMiAyMnM4LTQgOC0xMFY1bC04LTMtOCAzdjdjMCA2IDggMTAgOCAxMHoiLz48L3N2Zz48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtdG90YWwiPicrdC50b3RhbCsnPC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcG9wdXAiIGlkPSJhcHByb3ZhbC1zdGF0cy1wb3B1cCI+PHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXBvcHVwLXRpdGxlIj5cdTgxRUFcdTUyQThcdTYyNzlcdTUxQzZcdTdFREZcdThCQTE8L3NwYW4+JysodC5jb21tYW5kPjA/JzxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ciPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ctaWNvbiI+Jyt6KCJ0ZXJtaW5hbCIse3NpemU6MTIsc3Ryb2tlV2lkdGg6MS44fSkrJzwvc3Bhbj48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93LWxhYmVsIj5cdTU0N0RcdTRFRTRcdTYyNjdcdTg4NEM8L3NwYW4+PHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXJvdy1jb3VudCI+Jyt0LmNvbW1hbmQrIjwvc3Bhbj48L3NwYW4+IjoiIikrKHQuZmlsZT4wPyc8c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93Ij48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93LWljb24iPicreigiZWRpdCIse3NpemU6MTIsc3Ryb2tlV2lkdGg6MS44fSkrJzwvc3Bhbj48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93LWxhYmVsIj5cdTY1ODdcdTRFRjZcdTUxOTlcdTUxNjU8L3NwYW4+PHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXJvdy1jb3VudCI+Jyt0LmZpbGUrIjwvc3Bhbj48L3NwYW4+IjoiIikrKHQudG9vbD4wPyc8c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93Ij48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93LWljb24iPicreigid3JlbmNoIix7c2l6ZToxMixzdHJva2VXaWR0aDoxLjh9KSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ctbGFiZWwiPlx1NTE3Nlx1NEVENlx1NURFNVx1NTE3Nzwvc3Bhbj48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93LWNvdW50Ij4nK3QudG9vbCsiPC9zcGFuPjwvc3Bhbj4iOiIiKSsnPHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXJvdyBhcHByb3ZhbC1zdGF0cy1yb3ctdG90YWwiPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ctaWNvbiI+Jyt6KCJzaWdtYSIse3NpemU6MTIsc3Ryb2tlV2lkdGg6MS44fSkrJzwvc3Bhbj48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93LWxhYmVsIj5cdTU0MDhcdThCQTE8L3NwYW4+PHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXJvdy1jb3VudCI+Jyt0LnRvdGFsKyI8L3NwYW4+PC9zcGFuPjwvc3Bhbj48L3NwYW4+In1mdW5jdGlvbiBFZigpe3JldHVybiByLmxvZ2luQ2hlY2tlZD8nPGRpdiBjbGFzcz0ibG9naW4tY29udGFpbmVyIj48ZGl2IGNsYXNzPSJsb2dpbi1jYXJkIj48ZGl2IGNsYXNzPSJsb2dpbi1oZWFkZXIiPjxkaXYgY2xhc3M9ImxvZ2luLWxvZ28iPjxkaXYgY2xhc3M9ImxvZ2luLWxvZ28taWNvbiI+VzwvZGl2PjxzcGFuIGNsYXNzPSJsb2dpbi1sb2dvLXRleHQiPldhbmQ8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0ibG9naW4tc3VidGl0bGUiPlx1NTcyOFx1NkQ0Rlx1ODlDOFx1NTY2OFx1NEUyRFx1OEZEMFx1ODg0Q1x1NjcyQ1x1NjczQVx1N0VDOFx1N0FFRjwvZGl2PjwvZGl2Pjxmb3JtIGlkPSJsb2dpbi1mb3JtIiBjbGFzcz0ibG9naW4tYm9keSIgYXV0b2NvbXBsZXRlPSJvbiI+PGlucHV0IHR5cGU9InRleHQiIG5hbWU9InVzZXJuYW1lIiBhdXRvY29tcGxldGU9InVzZXJuYW1lIiB2YWx1ZT0id2FuZCIgdGFiaW5kZXg9Ii0xIiBhcmlhLWhpZGRlbj0idHJ1ZSIgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlO2xlZnQ6LTk5OTlweDt3aWR0aDoxcHg7aGVpZ2h0OjFweDtvcGFjaXR5OjA7cG9pbnRlci1ldmVudHM6bm9uZSIgcmVhZG9ubHkgLz48cCBjbGFzcz0ibG9naW4taGludCI+XHU4RjkzXHU1MTY1IFdhbmQgXHU4QkJGXHU5NUVFXHU1QkM2XHU3ODAxXHU0RUU1XHU4RkRCXHU1MTY1XHU2M0E3XHU1MjM2XHU1M0YwXHUzMDAyPC9wPjxkaXYgY2xhc3M9ImZpZWxkIj48bGFiZWwgY2xhc3M9ImZpZWxkLWxhYmVsIiBmb3I9InBhc3N3b3JkIj5cdTVCQzZcdTc4MDE8L2xhYmVsPjxkaXYgY2xhc3M9InBhc3N3b3JkLWZpZWxkIj48aW5wdXQgaWQ9InBhc3N3b3JkIiB0eXBlPSJwYXNzd29yZCIgY2xhc3M9ImZpZWxkLWlucHV0IHBhc3N3b3JkLWlucHV0IiBwbGFjZWhvbGRlcj0iXHU4RjkzXHU1MTY1XHU4QkJGXHU5NUVFXHU1QkM2XHU3ODAxIiBhdXRvY29tcGxldGU9ImN1cnJlbnQtcGFzc3dvcmQiIGRhdGEtZXJyb3I9ImZhbHNlIiBhcmlhLWRlc2NyaWJlZGJ5PSJwYXNzd29yZC1oaW50IGxvZ2luLWVycm9yIiBhcmlhLWludmFsaWQ9ImZhbHNlIiAvPjxidXR0b24gaWQ9InRvZ2dsZS1wYXNzd29yZC1idXR0b24iIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InBhc3N3b3JkLXRvZ2dsZSIgYXJpYS1sYWJlbD0iXHU2NjNFXHU3OTNBXHU1QkM2XHU3ODAxIiBhcmlhLXByZXNzZWQ9ImZhbHNlIj5cdTY2M0VcdTc5M0E8L2J1dHRvbj48L2Rpdj48cCBpZD0icGFzc3dvcmQtaGludCIgY2xhc3M9ImhpbnQiPlx1NEY3Rlx1NzUyOFx1NEY2MFx1NTcyOCBXYW5kIFx1NEUyRFx1OEJCRVx1N0Y2RVx1NzY4NFx1OEJCRlx1OTVFRVx1NUJDNlx1NzgwMVx1MzAwMjwvcD48cCBpZD0ibG9naW4tZXJyb3IiIGNsYXNzPSJlcnJvci1tZXNzYWdlIGhpZGRlbiIgcm9sZT0iYWxlcnQiPjwvcD48L2Rpdj48ZGl2IGlkPSJsb2dpbi1jZXJ0LWhpbnQiIGNsYXNzPSJsb2dpbi1jZXJ0LWhpbnQgaGlkZGVuIiByb2xlPSJhbGVydCI+PGRpdiBjbGFzcz0ibG9naW4tY2VydC1oaW50LXRpdGxlIj5cdThCQzFcdTRFNjZcdTRFMERcdTUzRDdcdTRGRTFcdTRFRkJcdUZGMENcdTc2N0JcdTVGNTVcdTYwMDFcdTY1RTBcdTZDRDVcdTRGRERcdTVCNTg8L2Rpdj48cCBjbGFzcz0ibG9naW4tY2VydC1oaW50LWJvZHkiPlx1NUJDNlx1NzgwMVx1NjYyRlx1NUJGOVx1NzY4NFx1RkYwQ1x1NEY0Nlx1NUY1M1x1NTI0RCBIVFRQUyBcdThCQzFcdTRFNjZcdTRFMERcdTUzRDdcdTZENEZcdTg5QzhcdTU2NjhcdTRGRTFcdTRFRkJcdUZGMENcdTZENEZcdTg5QzhcdTU2NjhcdTU2RTBcdTZCNjRcdTYyRDJcdTdFRERcdTRGRERcdTVCNThcdTc2N0JcdTVGNTUgQ29va2llXHVGRjBDXHU2MjQwXHU0RUU1XHU4RkRCXHU0RTBEXHU0RTg2XHU2M0E3XHU1MjM2XHU1M0YwXHUzMDAyPGJyLz5cdTg5RTNcdTUxQjNcdTUyOUVcdTZDRDVcdUZGMDhcdTRFRkJcdTkwMDlcdTUxNzZcdTRFMDBcdUZGMDlcdUZGMUFcdTY1MzlcdTc1MjggSFRUUCBcdThCQkZcdTk1RUVcdTY3MkNcdTY3MERcdTUyQTFcdUZGMUJcdTYyMTZcdTYyOEFcdTY3MkNcdTY3MERcdTUyQTFcdThCQzFcdTRFNjZcdThCQkVcdTRFM0FcdTMwMENcdTUzRDdcdTRGRTFcdTRFRkJcdTMwMERcdUZGMDhcdTYzQThcdTgzNTAgbWtjZXJ0XHVGRjA5XHVGRjFCXHU2MjE2XHU1NzI4XHU2NzJDXHU2NzNBXHU1QzA2XHU4QkU1XHU4MUVBXHU3QjdFXHU4QkMxXHU0RTY2XHU4QkJFXHU0RTNBXHU1QjhDXHU1MTY4XHU0RkUxXHU0RUZCXHU1NDBFXHU5MUNEXHU4QkQ1XHUzMDAyPC9wPjxhIGlkPSJsb2dpbi1jZXJ0LWh0dHAtbGluayIgY2xhc3M9ImJ0biBidG4tZ2hvc3QgYnRuLWJsb2NrIiBocmVmPSIjIiByZWw9Im5vb3BlbmVyIj5cdTY1MzlcdTc1MjggSFRUUCBcdThCQkZcdTk1RUU8L2E+PC9kaXY+PGJ1dHRvbiBpZD0ibG9naW4tYnV0dG9uIiB0eXBlPSJzdWJtaXQiIGNsYXNzPSJidG4gYnRuLXByaW1hcnkgYnRuLWJsb2NrIj5cdThGREJcdTUxNjVcdTYzQTdcdTUyMzZcdTUzRjA8L2J1dHRvbj4nKyhaYSgpPyc8YnV0dG9uIGlkPSJsb2dpbi1zd2l0Y2gtc2VydmVyLWJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tZ2hvc3QgYnRuLWJsb2NrIGxvZ2luLXN3aXRjaC1zZXJ2ZXIiIHR5cGU9ImJ1dHRvbiI+PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cmVjdCB4PSIyIiB5PSIzIiB3aWR0aD0iMjAiIGhlaWdodD0iOCIgcng9IjIiLz48cmVjdCB4PSIyIiB5PSIxMyIgd2lkdGg9IjIwIiBoZWlnaHQ9IjgiIHJ4PSIyIi8+PGxpbmUgeDE9IjYiIHkxPSI3IiB4Mj0iNi4wMSIgeTI9IjciLz48bGluZSB4MT0iNiIgeTE9IjE3IiB4Mj0iNi4wMSIgeTI9IjE3Ii8+PC9zdmc+PHNwYW4+XHU1MjA3XHU2MzYyXHU2NzBEXHU1MkExXHU1NjY4PC9zcGFuPjwvYnV0dG9uPic6IiIpKyI8L2Zvcm0+PC9kaXY+PC9kaXY+IjonPGRpdiBjbGFzcz0ibG9naW4tY29udGFpbmVyIj48ZGl2IGNsYXNzPSJsb2dpbi1jYXJkIGxvZ2luLWNhcmQtbG9hZGluZyI+PGRpdiBjbGFzcz0ibG9naW4taGVhZGVyIj48ZGl2IGNsYXNzPSJsb2dpbi1sb2dvIj48ZGl2IGNsYXNzPSJsb2dpbi1sb2dvLWljb24iPlc8L2Rpdj48c3BhbiBjbGFzcz0ibG9naW4tbG9nby10ZXh0Ij5XYW5kPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9ImxvZ2luLXN1YnRpdGxlIj5cdTZCNjNcdTU3MjhcdTYwNjJcdTU5MERcdTc2N0JcdTVGNTVcdTcyQjZcdTYwMDE8L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJsb2dpbi1ib2R5Ij48ZGl2IGNsYXNzPSJsb2dpbi1zdGF0dXMiPjxzcGFuIGNsYXNzPSJsb2dpbi1zcGlubmVyIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9zcGFuPjxkaXY+PHAgY2xhc3M9ImxvZ2luLWhpbnQiPlx1NkI2M1x1NTcyOFx1NjhDMFx1NjdFNVx1NjcyQ1x1NTczMFx1NzY3Qlx1NUY1NVx1NEYxQVx1OEJERFx1RkYwQ1x1OEJGN1x1N0EwRFx1NTAxOVx1MzAwMjwvcD48cCBjbGFzcz0ibG9naW4tbXV0ZWQiPlx1NTk4Mlx1Njc5Q1x1NEY2MFx1NTIxQVx1NTIzN1x1NjVCMFx1OTg3NVx1OTc2Mlx1RkYwQ1x1OEZEOVx1NjYyRlx1NkI2M1x1NUUzOFx1NzNCMFx1OEM2MVx1MzAwMjwvcD48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj4nfWZ1bmN0aW9uIEZmKCl7dmFyIGU9IjxcL3NjcmlwdD4iLHQ9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGcpe3JldHVybiBnLmlkPT09ci5zZWxlY3RlZElkfSksbj10PyRuKHQuY29tbWFuZCk6Ilx1NjcyQVx1OTAwOVx1NjJFOVx1NEYxQVx1OEJERCIsaT10P3QubW9kZSsiIHwgIit0LnN0YXR1czoiXHU3MEI5XHU1MUZCXHU0RTBBXHU2NUI5XHUzMDBDXHU2NUIwXHU1QkY5XHU4QkREXHUzMDBEXHU1RjAwXHU1OUNCIixhPXIuc2VsZWN0ZWRJZCYmci5kcmFmdHNbci5zZWxlY3RlZElkXXx8IiIsdT1yLnNlc3Npb25zRHJhd2VyT3Blbj8iIG9wZW4iOiIiLHM9UHUoKT8iIG9wZW4iOiIiLG89dG0oKSxsPUl0KG8sci5jaGF0TW9kZSksYz1OZSgpLGY9ISFyLnNpZGViYXJQaW5uZWQmJiEhci5zaWRlYmFyQ29sbGFwc2VkLGQ9Znx8IWMmJighIXIuc2lkZWJhclBpbm5lZHx8ISFyLnNlc3Npb25zRHJhd2VyT3Blbiksdj1mPyIgc2lkZWJhci1jb2xsYXBzZWQiOiIiLGg9Zj8iIGNvbGxhcHNlZCI6IiI7cmV0dXJuJzxkaXYgY2xhc3M9ImFwcC1jb250YWluZXIiPjxkaXYgaWQ9InNlc3Npb25zLWRyYXdlci1iYWNrZHJvcCIgY2xhc3M9ImRyYXdlci1iYWNrZHJvcCcrcysnIj48L2Rpdj48ZGl2IGNsYXNzPSJtYWluLWxheW91dCcrKHIuc2Vzc2lvbnNEcmF3ZXJPcGVuPyIgc2lkZWJhci1vcGVuIjoiIikrKGQ/IiBzaWRlYmFyLXBpbm5lZCI6IiIpK3YrJyI+PGFzaWRlIGlkPSJzZXNzaW9ucy1kcmF3ZXIiIGNsYXNzPSJzaWRlYmFyJyt1KyhkPyIgcGlubmVkIjoiIikraCsnIj48ZGl2IGNsYXNzPSJzaWRlYmFyLWhlYWRlciI+PGRpdiBjbGFzcz0ic2lkZWJhci1oZWFkZXItbWFpbiI+PGRpdiBjbGFzcz0idG9wYmFyLWxvZ28taWNvbiI+VzwvZGl2PjxzcGFuIGNsYXNzPSJzaWRlYmFyLXRpdGxlIj5cdTRGMUFcdThCREQ8L3NwYW4+PHNwYW4gY2xhc3M9InNlc3Npb24tY291bnQiIGlkPSJzZXNzaW9uLWNvdW50Ij4nK1N0cmluZyhyLnNlc3Npb25zLmxlbmd0aCkrJzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJzaWRlYmFyLWhlYWRlci1hY3Rpb25zIj48ZGl2IGNsYXNzPSJzaWRlYmFyLWhlYWRlci1tb3JlIj48YnV0dG9uIGlkPSJzaWRlYmFyLW1vcmUtYnRuIiBjbGFzcz0iYnRuIGJ0bi1naG9zdCBidG4tc20iIHR5cGU9ImJ1dHRvbiIgdGl0bGU9Ilx1NjZGNFx1NTkxQVx1NjRDRFx1NEY1QyI+PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48Y2lyY2xlIGN4PSIxMiIgY3k9IjUiIHI9IjEuNSIvPjxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjEuNSIvPjxjaXJjbGUgY3g9IjEyIiBjeT0iMTkiIHI9IjEuNSIvPjwvc3ZnPjwvYnV0dG9uPjxkaXYgY2xhc3M9InNpZGViYXItaGVhZGVyLW92ZXJmbG93IiBpZD0ic2lkZWJhci1vdmVyZmxvdy1tZW51Ij48YnV0dG9uIGNsYXNzPSJvdmVyZmxvdy1pdGVtIiBpZD0ic2lkZWJhci1ob21lLWJ0biIgdHlwZT0iYnV0dG9uIj48c3ZnIHdpZHRoPSIxNSIgaGVpZ2h0PSIxNSIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0zIDlsOS03IDkgN3YxMWEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnoiLz48cG9seWxpbmUgcG9pbnRzPSI5IDIyIDkgMTIgMTUgMTIgMTUgMjIiLz48L3N2Zz48c3Bhbj5cdTU2REVcdTUyMzBcdTk5OTZcdTk4NzU8L3NwYW4+PC9idXR0b24+PGJ1dHRvbiBjbGFzcz0ib3ZlcmZsb3ctaXRlbSIgaWQ9InNpZGViYXItcmVmcmVzaC1idG4iIHR5cGU9ImJ1dHRvbiI+PHN2ZyB3aWR0aD0iMTUiIGhlaWdodD0iMTUiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cG9seWxpbmUgcG9pbnRzPSIyMyA0IDIzIDEwIDE3IDEwIi8+PHBhdGggZD0iTTIwLjQ5IDE1YTkgOSAwIDEgMS0yLjEyLTkuMzZMMjMgMTAiLz48L3N2Zz48c3Bhbj5cdTUyMzdcdTY1QjBcdTk4NzVcdTk3NjI8L3NwYW4+PC9idXR0b24+PC9kaXY+PC9kaXY+PGJ1dHRvbiBpZD0ic2lkZWJhci1waW4tYnRuIiBjbGFzcz0iYnRuIGJ0bi1naG9zdCBidG4tc20gc2lkZWJhci1waW4tdG9nZ2xlJysoci5zaWRlYmFyUGlubmVkPyIgcGlubmVkIjoiIikrJyIgdHlwZT0iYnV0dG9uIiB0aXRsZT0iJysoci5zaWRlYmFyUGlubmVkPyJcdTVERjJcdTU2RkFcdTVCOUFcdTVFMzhcdTlBN0JcdUZGMDhcdTcwQjlcdTUxRkJcdTg5RTNcdTk2NjRcdTk1MDFcdTVCOUFcdUZGMDkiOiJcdTU2RkFcdTVCOUFcdTRGQTdcdTY4MEZcdTVFMzhcdTlBN0IiKSsnIiBhcmlhLWxhYmVsPSInKyhyLnNpZGViYXJQaW5uZWQ/Ilx1ODlFM1x1OTY2NFx1NTZGQVx1NUI5QVx1NUUzOFx1OUE3QiI6Ilx1NTZGQVx1NUI5QVx1NEZBN1x1NjgwRlx1NUUzOFx1OUE3QiIpKyciIGFyaWEtcHJlc3NlZD0iJysoci5zaWRlYmFyUGlubmVkPyJ0cnVlIjoiZmFsc2UiKSsnIj48c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48bGluZSB4MT0iMTIiIHkxPSIxNyIgeDI9IjEyIiB5Mj0iMjIiLz48cGF0aCBkPSJNNSAxN2gxNHYtMS43NmEyIDIgMCAwIDAtMS4xMS0xLjc5bC0xLjc4LS45QTIgMiAwIDAgMSAxNSAxMC43NlY2aDFhMiAyIDAgMCAwIDAtNEg4YTIgMiAwIDAgMCAwIDRoMXY0Ljc2YTIgMiAwIDAgMS0xLjExIDEuNzlsLTEuNzguOUEyIDIgMCAwIDAgNSAxNS4yNHoiLz48L3N2Zz48L2J1dHRvbj48YnV0dG9uIGlkPSJzaWRlYmFyLWNvbGxhcHNlLWJ0biIgY2xhc3M9ImJ0biBidG4tZ2hvc3QgYnRuLXNtIHNpZGViYXItY29sbGFwc2UtdG9nZ2xlJysoZj8iIGNvbGxhcHNlZCI6IiIpKyciIHR5cGU9ImJ1dHRvbiIgdGl0bGU9IicrKGY/Ilx1NUM1NVx1NUYwMFx1NEUzQVx1NTE2OFx1NUMzQVx1NUJGOCI6Ilx1NjUzNlx1OEQ3N1x1NEUzQVx1N0E4NFx1Njc2MSIpKyciIGFyaWEtbGFiZWw9IicrKGY/Ilx1NUM1NVx1NUYwMFx1NEUzQVx1NTE2OFx1NUMzQVx1NUJGOCI6Ilx1NjUzNlx1OEQ3N1x1NEUzQVx1N0E4NFx1Njc2MSIpKyciPicrKGY/Jzxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIuNCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHBvbHlsaW5lIHBvaW50cz0iMTAgNiAxNiAxMiAxMCAxOCIvPjxsaW5lIHgxPSIyMCIgeTE9IjUiIHgyPSIyMCIgeTI9IjE5Ii8+PC9zdmc+JzonPHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi40IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48cG9seWxpbmUgcG9pbnRzPSIxNCA2IDggMTIgMTQgMTgiLz48bGluZSB4MT0iNCIgeTE9IjUiIHgyPSI0IiB5Mj0iMTkiLz48L3N2Zz4nKSsnPC9idXR0b24+PGJ1dHRvbiBpZD0iY2xvc2UtZHJhd2VyLWJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tZ2hvc3QgYnRuLWljb24gc2lkZWJhci1jbG9zZSBkcmF3ZXItY2xvc2UtYnRuIiB0eXBlPSJidXR0b24iIGFyaWEtbGFiZWw9Ilx1NTE3M1x1OTVFRFx1ODNEQ1x1NTM1NSI+PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi40IiBzdHJva2UtbGluZWNhcD0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48bGluZSB4MT0iNiIgeTE9IjYiIHgyPSIxOCIgeTI9IjE4Ii8+PGxpbmUgeDE9IjE4IiB5MT0iNiIgeDI9IjYiIHkyPSIxOCIvPjwvc3ZnPjwvYnV0dG9uPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InNpZGViYXItYm9keSI+PGRpdiBpZD0ic2Vzc2lvbnMtcGFuZWwiPjxkaXYgY2xhc3M9InNlc3Npb25zLWxpc3QiIGlkPSJzZXNzaW9ucy1saXN0Ij4nK3JhKCkrJzwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InNpZGViYXItZm9vdGVyIj48YnV0dG9uIGlkPSJkcmF3ZXItbmV3LXNlc3Npb24tYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1wcmltYXJ5IGJ0bi1ibG9jayI+PHNwYW4+Kzwvc3Bhbj4gXHU2NUIwXHU0RjFBXHU4QkREPC9idXR0b24+PGRpdiBjbGFzcz0ic2lkZWJhci1mb290ZXItYWN0aW9ucyI+PGJ1dHRvbiBpZD0iZmlsZS1wYW5lbC10b2dnbGUtYnRuIiBjbGFzcz0iYnRuIGJ0bi1naG9zdCBidG4tc20nKyhyLmZpbGVQYW5lbE9wZW4/IiBhY3RpdmUiOiIiKSsnIiB0eXBlPSJidXR0b24iIHRpdGxlPSJcdTY3RTVcdTc3MEJcdTY1ODdcdTRFRjYiPjxzdmcgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTIyIDE5YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmg1bDIgM2g5YTIgMiAwIDAgMSAyIDJ6Ii8+PC9zdmc+PHNwYW4+XHU2NTg3XHU0RUY2PC9zcGFuPjwvYnV0dG9uPjxidXR0b24gaWQ9InNldHRpbmdzLWJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tZ2hvc3QgYnRuLXNtIiB0eXBlPSJidXR0b24iIHRpdGxlPSJcdThCQkVcdTdGNkUiPjxzdmcgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMyIvPjxwYXRoIGQ9Ik0xOS40IDE1YTEuNjUgMS42NSAwIDAgMCAuMzMgMS44MmwuMDYuMDZhMiAyIDAgMCAxLTIuODMgMi44M2wtLjA2LS4wNmExLjY1IDEuNjUgMCAwIDAtMS44Mi0uMzMgMS42NSAxLjY1IDAgMCAwLTEgMS41MVYyMWEyIDIgMCAwIDEtNCAwdi0uMDlBMS42NSAxLjY1IDAgMCAwIDkgMTkuNGExLjY1IDEuNjUgMCAwIDAtMS44Mi4zM2wtLjA2LjA2YTIgMiAwIDAgMS0yLjgzLTIuODNsLjA2LS4wNkExLjY1IDEuNjUgMCAwIDAgNC42OCAxNWExLjY1IDEuNjUgMCAwIDAtMS41MS0xSDNhMiAyIDAgMCAxIDAtNGguMDlBMS42NSAxLjY1IDAgMCAwIDQuNiA5YTEuNjUgMS42NSAwIDAgMC0uMzMtMS44MmwtLjA2LS4wNmEyIDIgMCAwIDEgMi44My0yLjgzbC4wNi4wNkExLjY1IDEuNjUgMCAwIDAgOSA0LjY4YTEuNjUgMS42NSAwIDAgMCAxLTEuNTFWM2EyIDIgMCAwIDEgNCAwdi4wOWExLjY1IDEuNjUgMCAwIDAgMSAxLjUxIDEuNjUgMS42NSAwIDAgMCAxLjgyLS4zM2wuMDYtLjA2YTIgMiAwIDAgMSAyLjgzIDIuODNsLS4wNi4wNkExLjY1IDEuNjUgMCAwIDAgMTkuNCA5YTEuNjUgMS42NSAwIDAgMCAxLjUxIDFIMjFhMiAyIDAgMCAxIDAgNGgtLjA5YTEuNjUgMS42NSAwIDAgMC0xLjUxIDF6Ii8+PC9zdmc+PHNwYW4+XHU4QkJFXHU3RjZFPC9zcGFuPjwvYnV0dG9uPicrKFp2KCk/JzxidXR0b24gaWQ9ImJhY2stdG8tbmF0aXZlLWJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tZ2hvc3QgYnRuLXNtIHNpZGViYXItYmFjay10by1uYXRpdmUiIHR5cGU9ImJ1dHRvbiIgdGl0bGU9Ilx1OEZENFx1NTZERSBBcHAgXHU1MzlGXHU3NTFGXHU3NTRDXHU5NzYyIj48c3ZnIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxyZWN0IHg9IjEwIiB5PSIzIiB3aWR0aD0iMTEiIGhlaWdodD0iMTgiIHJ4PSIyIi8+PGxpbmUgeDE9IjE0IiB5MT0iMTciIHgyPSIxNyIgeTI9IjE3Ii8+PHBvbHlsaW5lIHBvaW50cz0iNyA4IDMgMTIgNyAxNiIvPjwvc3ZnPjxzcGFuPlx1OEZENFx1NTZERUFwcDwvc3Bhbj48L2J1dHRvbj4nOiIiKSsoWmEoKT8nPGJ1dHRvbiBpZD0ic3dpdGNoLXNlcnZlci1idXR0b24iIGNsYXNzPSJidG4gYnRuLWdob3N0IGJ0bi1zbSBzaWRlYmFyLXN3aXRjaC1zZXJ2ZXIiIHR5cGU9ImJ1dHRvbiIgdGl0bGU9Ilx1NTIwN1x1NjM2Mlx1NjcwRFx1NTJBMVx1NTY2OCI+PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cmVjdCB4PSIyIiB5PSIzIiB3aWR0aD0iMjAiIGhlaWdodD0iOCIgcng9IjIiLz48cmVjdCB4PSIyIiB5PSIxMyIgd2lkdGg9IjIwIiBoZWlnaHQ9IjgiIHJ4PSIyIi8+PGxpbmUgeDE9IjYiIHkxPSI3IiB4Mj0iNi4wMSIgeTI9IjciLz48bGluZSB4MT0iNiIgeTE9IjE3IiB4Mj0iNi4wMSIgeTI9IjE3Ii8+PC9zdmc+PHNwYW4+XHU1MjA3XHU2MzYyPC9zcGFuPjwvYnV0dG9uPic6IiIpKyc8YnV0dG9uIGlkPSJsb2dvdXQtYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1naG9zdCBidG4tc20gc2lkZWJhci1sb2dvdXQiIHR5cGU9ImJ1dHRvbiIgdGl0bGU9Ilx1OTAwMFx1NTFGQVx1NzY3Qlx1NUY1NSI+PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNOSAyMUg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDQiLz48cG9seWxpbmUgcG9pbnRzPSIxNiAxNyAyMSAxMiAxNiA3Ii8+PGxpbmUgeDE9IjIxIiB5MT0iMTIiIHgyPSI5IiB5Mj0iMTIiLz48L3N2Zz48c3Bhbj5cdTkwMDBcdTUxRkE8L3NwYW4+PC9idXR0b24+PC9kaXY+PC9kaXY+PC9hc2lkZT48bWFpbiBjbGFzcz0ibWFpbi1jb250ZW50Ij48ZGl2IGNsYXNzPSJtYWluLWhlYWRlci1yb3ciPjxkaXYgY2xhc3M9InRvcGJhci1sZWZ0Ij48YnV0dG9uIGlkPSJzZXNzaW9ucy10b2dnbGUtYnV0dG9uIiBjbGFzcz0iZmxvYXRpbmctc2lkZWJhci10b2dnbGUnKyhyLnNlc3Npb25zRHJhd2VyT3Blbj8iIGFjdGl2ZSI6IiIpKyciIGFyaWEtbGFiZWw9Ilx1NTIwN1x1NjM2Mlx1NEYxQVx1OEJERFx1NEZBN1x1NjgwRiIgdHlwZT0iYnV0dG9uIj48c3BhbiBjbGFzcz0iaGFtYnVyZ2VyLWljb24iPjxzcGFuPjwvc3Bhbj48c3Bhbj48L3NwYW4+PHNwYW4+PC9zcGFuPjwvc3Bhbj48L2J1dHRvbj48c3BhbiBjbGFzcz0idG9wYmFyLWJyYW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+Vzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJ0b3BiYXItY2VudGVyIj4nKyh0Pyc8c3BhbiBjbGFzcz0idG9wYmFyLXNlc3Npb24tdGl0bGUiIHRpdGxlPSInK3AodC5kZXNjcmlwdGlvbnx8dC5jb21tYW5kfHwiIikrJyI+JytwKHQudGl0bGV8fCRuKHQuY29tbWFuZCkpKyc8L3NwYW4+PHNwYW4gY2xhc3M9InNlc3Npb24tc3RhdHVzLXBpbGwgJytzcyh0KSsnIiB0aXRsZT0iJytwKGZyKHQpKSsnIj48c3BhbiBjbGFzcz0ic2Vzc2lvbi1zdGF0dXMtZG90Ij48L3NwYW4+PHNwYW4gY2xhc3M9InNlc3Npb24tc3RhdHVzLXRleHQiPicrcChmcih0KSkrJzwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9ImN1cnJlbnQtdGFzayBoaWRkZW4iIGlkPSJjdXJyZW50LXRhc2siPjwvc3Bhbj4nKyh0LmN3ZD9sdCh0LmN3ZCwidG9wYmFyLWN3ZCIsJyBpZD0idG9wYmFyLWN3ZCIgcm9sZT0iYnV0dG9uIiB0YWJpbmRleD0iMCInKToiIik6JzxzcGFuIGNsYXNzPSJ0b3BiYXItdGFnbGluZSI+V2FuZCBcdTYzQTdcdTUyMzZcdTUzRjA8L3NwYW4+PHNwYW4gY2xhc3M9ImN1cnJlbnQtdGFzayBoaWRkZW4iIGlkPSJjdXJyZW50LXRhc2siPjwvc3Bhbj4nKSsnPC9kaXY+PGRpdiBjbGFzcz0idG9wYmFyLXJpZ2h0Ij48YnV0dG9uIGlkPSJ0b3BiYXItZmlsZS1idXR0b24iIGNsYXNzPSJ0b3BiYXItYnRuIHNxdWFyZScrKHIuZmlsZVBhbmVsT3Blbj8iIGFjdGl2ZSI6IiIpKyciIHR5cGU9ImJ1dHRvbiIgYXJpYS1sYWJlbD0iXHU2NTg3XHU0RUY2IiB0aXRsZT0iXHU2N0U1XHU3NzBCXHU2NTg3XHU0RUY2XHVGRjA4XHU1M0VGXHU0RkVFXHU2NTM5XHU4REVGXHU1Rjg0XHVGRjA5Ij48c3ZnIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0yMiAxOWEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoNWwyIDNoOWEyIDIgMCAwIDEgMiAyeiIvPjwvc3ZnPjwvYnV0dG9uPjxzcGFuIGlkPSJ0b3BiYXItZ2l0LXNsb3QiIGNsYXNzPSJ0b3BiYXItZ2l0LXNsb3QiPicrZXMoKSsiPC9zcGFuPiIrKHQ/QWModCk6IiIpKyc8L2Rpdj48L2Rpdj48ZGl2IGlkPSJmaWxlLXBhbmVsLWJhY2tkcm9wIiBjbGFzcz0iZmlsZS1wYW5lbC1iYWNrZHJvcCcrKHIuZmlsZVBhbmVsT3Blbj8iIG9wZW4iOiIiKSsnIj48L2Rpdj48ZGl2IGlkPSJmaWxlLXNpZGUtcGFuZWwiIGNsYXNzPSJmaWxlLXNpZGUtcGFuZWwnKyhyLmZpbGVQYW5lbE9wZW4/IiBvcGVuIjoiIikrJyI+PGRpdiBjbGFzcz0iZmlsZS1zaWRlLXBhbmVsLWhlYWRlciI+PGRpdiBjbGFzcz0iZmlsZS1zaWRlLXBhbmVsLXRpdGxlLWdyb3VwIj48c3BhbiBjbGFzcz0iZmlsZS1zaWRlLXBhbmVsLWljb24iPicrTWUoImZvbGRlci1vcGVuIix7c2l6ZToxNn0pKyc8L3NwYW4+PHNwYW4gY2xhc3M9ImZpbGUtc2lkZS1wYW5lbC10aXRsZSI+XHU2NTg3XHU0RUY2PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9ImZpbGUtc2lkZS1wYW5lbC1oZWFkZXItYWN0aW9ucyI+PGJ1dHRvbiBjbGFzcz0iZmlsZS1zaWRlLXBhbmVsLWljb25idG4iIGlkPSJmaWxlLWV4cGxvcmVyLXJlZnJlc2giIHR5cGU9ImJ1dHRvbiIgdGl0bGU9Ilx1NTIzN1x1NjVCMCIgYXJpYS1sYWJlbD0iXHU1MjM3XHU2NUIwXHU2NTg3XHU0RUY2XHU1MjE3XHU4ODY4Ij4nK01lKCJyZWZyZXNoIix7c2l6ZToxNX0pKyc8L2J1dHRvbj48YnV0dG9uIGlkPSJmaWxlLXNpZGUtcGFuZWwtY2xvc2UiIGNsYXNzPSJmaWxlLXNpZGUtcGFuZWwtaWNvbmJ0biBjbG9zZSIgdHlwZT0iYnV0dG9uIiBhcmlhLWxhYmVsPSJcdTUxNzNcdTk1RURcdTY1ODdcdTRFRjZcdTk3NjJcdTY3N0YiIHRpdGxlPSJcdTUxNzNcdTk1RUQiPicrTWUoIngiLHtzaXplOjE2fSkrJzwvYnV0dG9uPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImZpbGUtc2lkZS1wYW5lbC1ib2R5Ij48ZGl2IGNsYXNzPSJmaWxlLWV4cGxvcmVyLWhlYWRlciI+PGJ1dHRvbiBjbGFzcz0iZmlsZS1leHBsb3Jlci11cCIgaWQ9ImZpbGUtZXhwbG9yZXItdXAiIHR5cGU9ImJ1dHRvbiIgdGl0bGU9Ilx1OEZENFx1NTZERVx1NEUwQVx1N0VBN1x1NzZFRVx1NUY1NSIgYXJpYS1sYWJlbD0iXHU4RkQ0XHU1NkRFXHU0RTBBXHU3RUE3XHU3NkVFXHU1RjU1Ij4nK01lKCJhcnJvdy11cCIse3NpemU6MTV9KSsnPC9idXR0b24+PGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJmaWxlLWV4cGxvcmVyLXBhdGgiIGlkPSJmaWxlLWV4cGxvcmVyLWN3ZCIgdmFsdWU9IicrcCh0JiZ0LmN3ZD90LmN3ZDpzbigpKSsnIiB0aXRsZT0iJytwKHQmJnQuY3dkP3QuY3dkOnNuKCkpKyciIHBsYWNlaG9sZGVyPSJcdThGOTNcdTUxNjVcdThERUZcdTVGODRcdTVFNzZcdTU2REVcdThGNjYuLi4iIHNwZWxsY2hlY2s9ImZhbHNlIiBhdXRvY29tcGxldGU9Im9mZiIgYXV0b2NhcGl0YWxpemU9Im9mZiIgYXV0b2NvcnJlY3Q9Im9mZiIgYXJpYS1sYWJlbD0iXHU1RjUzXHU1MjREXHU4REVGXHU1Rjg0XHVGRjBDXHU1M0VGXHU3NkY0XHU2M0E1XHU0RkVFXHU2NTM5XHU1NDBFXHU1NkRFXHU4RjY2IiAvPjwvZGl2PjxkaXYgY2xhc3M9ImZpbGUtc2VhcmNoLWJveCI+PHNwYW4gY2xhc3M9ImZpbGUtc2VhcmNoLWljb24iPicrTWUoInNlYXJjaCIse3NpemU6MTR9KSsnPC9zcGFuPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iZmlsZS1zZWFyY2gtaW5wdXQiIGNsYXNzPSJmaWxlLXNlYXJjaC1pbnB1dCIgcGxhY2Vob2xkZXI9Ilx1NjQxQ1x1N0QyMlx1NUY1M1x1NTI0RFx1NzZFRVx1NUY1NVx1MjAyNiIgYXV0b2NvbXBsZXRlPSJvZmYiIGF1dG9jb3JyZWN0PSJvZmYiIGF1dG9jYXBpdGFsaXplPSJvZmYiIHNwZWxsY2hlY2s9ImZhbHNlIiAvPjxidXR0b24gY2xhc3M9ImZpbGUtc2VhcmNoLWNsZWFyIiBpZD0iZmlsZS1zZWFyY2gtY2xlYXIiIHR5cGU9ImJ1dHRvbiIgYXJpYS1sYWJlbD0iXHU2RTA1XHU5NjY0XHU2NDFDXHU3RDIyIiB0aXRsZT0iXHU2RTA1XHU5NjY0Ij4nK01lKCJ4Iix7c2l6ZToxM30pKyc8L2J1dHRvbj48L2Rpdj48ZGl2IGNsYXNzPSJmaWxlLWV4cGxvcmVyIiBpZD0iZmlsZS1leHBsb3JlciI+JytkYyh0JiZ0LmN3ZD90LmN3ZDpzbigpKSsnPC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBpZD0ib3V0cHV0IiBjbGFzcz0idGVybWluYWwtY29udGFpbmVyJysoci5zZWxlY3RlZElkPyIiOiIgaGlkZGVuIikrJyBhY3RpdmUiPjxkaXYgY2xhc3M9InRlcm1pbmFsLXNjYWxlLW92ZXJsYXkiIGFyaWEtbGFiZWw9Ilx1N0VDOFx1N0FFRlx1N0YyOVx1NjUzRVx1NjNBN1x1NEVGNiI+PGJ1dHRvbiBpZD0idGVybWluYWwtc2NhbGUtZG93bi10b3AiIGNsYXNzPSJ0ZXJtaW5hbC1zY2FsZS1vdmVybGF5LWJ0biB0ZXJtaW5hbC1zY2FsZS1idG4iIHR5cGU9ImJ1dHRvbiIgdGl0bGU9Ilx1N0YyOVx1NUMwRiI+XHUyMjEyPC9idXR0b24+PHNwYW4gY2xhc3M9InRlcm1pbmFsLXNjYWxlLW92ZXJsYXktbGFiZWwgdGVybWluYWwtc2NhbGUtbGFiZWwiIGlkPSJ0ZXJtaW5hbC1zY2FsZS1sYWJlbC10b3AiPicrTWF0aC5yb3VuZChyLnRlcm1pbmFsU2NhbGUqMTAwKSsnJTwvc3Bhbj48YnV0dG9uIGlkPSJ0ZXJtaW5hbC1zY2FsZS11cC10b3AiIGNsYXNzPSJ0ZXJtaW5hbC1zY2FsZS1vdmVybGF5LWJ0biB0ZXJtaW5hbC1zY2FsZS1idG4iIHR5cGU9ImJ1dHRvbiIgdGl0bGU9Ilx1NjUzRVx1NTkyNyI+KzwvYnV0dG9uPjxzcGFuIGNsYXNzPSJ0ZXJtaW5hbC1zY2FsZS1vdmVybGF5LWRpdmlkZXIiPjwvc3Bhbj48YnV0dG9uIGlkPSJwYWdlLXJlZnJlc2gtYnRuIiBjbGFzcz0idGVybWluYWwtc2NhbGUtb3ZlcmxheS1idG4iIHR5cGU9ImJ1dHRvbiIgdGl0bGU9Ilx1NTIzN1x1NjVCMFx1OTg3NVx1OTc2MiI+XHUyMUJCPC9idXR0b24+PC9kaXY+PGJ1dHRvbiBpZD0idGVybWluYWwtanVtcC1ib3R0b20iIGNsYXNzPSJ0ZXJtaW5hbC1qdW1wLWJvdHRvbScrKHIuc2hvd1Rlcm1pbmFsSnVtcFRvQm90dG9tPyIgdmlzaWJsZSI6IiIpKyciIHR5cGU9ImJ1dHRvbiIgdGl0bGU9Ilx1NTZERVx1NTIzMFx1NUU5NVx1OTBFOCIgYXJpYS1sYWJlbD0iXHU1NkRFXHU1MjMwXHU1RTk1XHU5MEU4Ij48c3ZnIHZpZXdCb3g9IjAgMCAxNiAxNiIgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48cGF0aCBkPSJNOCAzLjV2OU0zLjUgOGw0LjUgNC41TDEyLjUgOCIvPjwvc3ZnPjwvYnV0dG9uPjwvZGl2PjxkaXYgaWQ9ImNoYXQtb3V0cHV0IiBjbGFzcz0iY2hhdC1jb250YWluZXIgaGlkZGVuIj48ZGl2IGlkPSJjaGF0LWZvbGQtYmFyIiBjbGFzcz0iY2hhdC1mb2xkLWJhciBoaWRkZW4iIGFyaWEtbGl2ZT0icG9saXRlIj48L2Rpdj48YnV0dG9uIGlkPSJjaGF0LXVucmVhZC1idWJibGUiIGNsYXNzPSJjaGF0LXVucmVhZC1idWJibGUiIHR5cGU9ImJ1dHRvbiIgdGl0bGU9Ilx1NTZERVx1NTIzMFx1NjcwMFx1NjVCMFx1NkQ4OFx1NjA2RiIgYXJpYS1sYWJlbD0iXHU1NkRFXHU1MjMwXHU2NzAwXHU2NUIwXHU2RDg4XHU2MDZGIj48c3BhbiBjbGFzcz0iY2hhdC11bnJlYWQtYnViYmxlLWljb24iPjxzdmcgdmlld0JveD0iMCAwIDE2IDE2IiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxwYXRoIGQ9Ik04IDMuNXY5TTMuNSA4bDQuNSA0LjVMMTIuNSA4Ii8+PC9zdmc+PC9zcGFuPjxzcGFuIGNsYXNzPSJjaGF0LXVucmVhZC1idWJibGUtY291bnQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L3NwYW4+PC9idXR0b24+PC9kaXY+PGRpdiBpZD0iYmxhbmstY2hhdCIgY2xhc3M9ImJsYW5rLWNoYXQnKyhyLnNlbGVjdGVkSWQ/IiBoaWRkZW4iOiIiKSsnIj48ZGl2IGNsYXNzPSJibGFuay1jaGF0LWlubmVyIj48ZGl2IGNsYXNzPSJibGFuay1jaGF0LWxvZ28iPlc8L2Rpdj48aDIgY2xhc3M9ImJsYW5rLWNoYXQtdGl0bGUiPldhbmQ8L2gyPjxwIGNsYXNzPSJibGFuay1jaGF0LXN1YnRpdGxlIj5cdTY1MkZcdTYzMDFcdTdFQzhcdTdBRUYgUFRZIFx1NEYxQVx1OEJERFx1NEUwRVx1N0VEM1x1Njc4NFx1NTMxNiBjaGF0IFx1NEYxQVx1OEJERFx1RkYwQ1x1NEUyNFx1NzlDRFx1NkEyMVx1NUYwRlx1NTNFRlx1NUU3Nlx1NUI1OFx1MzAwMjwvcD48ZGl2IGNsYXNzPSJibGFuay1jaGF0LXRvb2xzIj48YnV0dG9uIGNsYXNzPSJibGFuay1jaGF0LXRvb2wtYnRuIiBpZD0id2VsY29tZS10b29sLWNsYXVkZSIgdHlwZT0iYnV0dG9uIj48c3BhbiBjbGFzcz0idG9vbC1pY29uIj4nK3ooInRlcm1pbmFsIix7c2l6ZToxNixzdHJva2VXaWR0aDoxLjh9KSsnPC9zcGFuPlx1NjVCMFx1NUVGQVx1N0VDOFx1N0FFRlx1NEYxQVx1OEJERDwvYnV0dG9uPjxidXR0b24gY2xhc3M9ImJsYW5rLWNoYXQtdG9vbC1idG4iIGlkPSJ3ZWxjb21lLXRvb2wtY29kZXgiIHR5cGU9ImJ1dHRvbiI+PHNwYW4gY2xhc3M9InRvb2wtaWNvbiB0b29sLWljb24tdGV4dCI+XHUyMzE4PC9zcGFuPlx1NjVCMFx1NUVGQSBDb2RleCBcdTRGMUFcdThCREQ8L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJibGFuay1jaGF0LXRvb2wtYnRuIiBpZD0id2VsY29tZS10b29sLXN0cnVjdHVyZWQiIHR5cGU9ImJ1dHRvbiI+PHNwYW4gY2xhc3M9InRvb2wtaWNvbiI+Jyt6KCJjaGF0Iix7c2l6ZToxNixzdHJva2VXaWR0aDoxLjh9KSsnPC9zcGFuPlx1NjVCMFx1NUVGQVx1N0VEM1x1Njc4NFx1NTMxNlx1NEYxQVx1OEJERDwvYnV0dG9uPjwvZGl2PjxkaXYgY2xhc3M9ImJsYW5rLWNoYXQtY3dkLXdyYXAiPjxkaXYgY2xhc3M9ImJsYW5rLWNoYXQtY3dkIiBpZD0iYmxhbmstY2hhdC1jd2QiIHJvbGU9ImJ1dHRvbiIgdGFiaW5kZXg9IjAiIHRpdGxlPSJcdTcwQjlcdTUxRkJcdTUyMDdcdTYzNjJcdTVERTVcdTRGNUNcdTc2RUVcdTVGNTUiPjxzcGFuIGNsYXNzPSJibGFuay1jaGF0LWN3ZC1pY29uIj4nK3ooImZvbGRlciIse3NpemU6MTMsc3Ryb2tlV2lkdGg6MS44fSkrIjwvc3Bhbj4iK2x0KGV0KCksImJsYW5rLWNoYXQtY3dkLXBhdGgiLCcgaWQ9ImJsYW5rLWNoYXQtY3dkLXBhdGgiJykrJzxzcGFuIGNsYXNzPSJibGFuay1jaGF0LWN3ZC1hcnJvdyIgaWQ9ImJsYW5rLWNoYXQtY3dkLWFycm93Ij4nK3ooImNoZXZyb25Eb3duIix7c2l6ZToxMSxzdHJva2VXaWR0aDoyfSkrJzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJibGFuay1jaGF0LWN3ZC1kcm9wZG93biBoaWRkZW4iIGlkPSJibGFuay1jaGF0LWN3ZC1kcm9wZG93biI+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iaW5wdXQtcGFuZWwnKyhyLnNlbGVjdGVkSWQ/IiI6IiBoaWRkZW4iKSsnIj48ZGl2IGNsYXNzPSJjb21wb3Nlci10b3Atcm93Ij48ZGl2IGlkPSJ0b2RvLXByb2dyZXNzIiBjbGFzcz0idG9kby1wcm9ncmVzcyBoaWRkZW4iPjxkaXYgY2xhc3M9InRvZG8tcHJvZ3Jlc3MtaGVhZGVyIiBpZD0idG9kby1wcm9ncmVzcy10b2dnbGUiPjxkaXYgY2xhc3M9InRvZG8tcHJvZ3Jlc3MtZmlsbCIgaWQ9InRvZG8tcHJvZ3Jlc3MtZmlsbCIgYXJpYS1oaWRkZW49InRydWUiIHN0eWxlPSItLXByb2dyZXNzOjAiPjwvZGl2PjxkaXYgY2xhc3M9InRvZG8tcHJvZ3Jlc3MtbGVmdCI+PHNwYW4gY2xhc3M9InRvZG8tcHJvZ3Jlc3MtcmluZyIgaWQ9InRvZG8tcHJvZ3Jlc3MtcmluZyIgYXJpYS1oaWRkZW49InRydWUiIHN0eWxlPSItLXByb2dyZXNzOjAiPjxzdmcgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMzYgMzYiPjxjaXJjbGUgY2xhc3M9InRvZG8tcmluZy10cmFjayIgY3g9IjE4IiBjeT0iMTgiIHI9IjE1LjUiIGZpbGw9Im5vbmUiIHN0cm9rZS13aWR0aD0iNCIvPjxjaXJjbGUgY2xhc3M9InRvZG8tcmluZy1maWxsIiBjeD0iMTgiIGN5PSIxOCIgcj0iMTUuNSIgZmlsbD0ibm9uZSIgc3Ryb2tlLXdpZHRoPSI0IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz48L3N2Zz48L3NwYW4+PHNwYW4gY2xhc3M9InRvZG8tcHJvZ3Jlc3MtY291bnRlciIgaWQ9InRvZG8tcHJvZ3Jlc3MtY291bnRlciI+PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InRvZG8tcHJvZ3Jlc3MtdGFzay13cmFwIj48c3BhbiBjbGFzcz0idG9kby1wcm9ncmVzcy10YXNrIiBpZD0idG9kby1wcm9ncmVzcy10YXNrIj48L3NwYW4+PC9kaXY+PHN2ZyBjbGFzcz0idG9kby1wcm9ncmVzcy1jaGV2cm9uIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi40IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48cG9seWxpbmUgcG9pbnRzPSI2IDE1IDEyIDkgMTggMTUiLz48L3N2Zz48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJ0b2RvLXByb2dyZXNzLWJvZHkgaGlkZGVuIiBpZD0idG9kby1wcm9ncmVzcy1ib2R5Ij48dWwgY2xhc3M9InRvZG8tcHJvZ3Jlc3MtbGlzdCIgaWQ9InRvZG8tcHJvZ3Jlc3MtbGlzdCI+PC91bD48L2Rpdj48L2Rpdj48ZGl2IGlkPSJxdWV1ZS1iYXItaG9zdCIgY2xhc3M9InF1ZXVlLWJhci1ob3N0IiBoaWRkZW4+PC9kaXY+PGRpdiBjbGFzcz0iaW5wdXQtY29tcG9zZXInKyhhPyIgaGFzLXRleHQiOiIiKSsnIj48ZGl2IGNsYXNzPSJjb21wb3Nlci1zdGF0dXMtcm93IiBpZD0iY29tcG9zZXItc3RhdHVzLXJvdyI+JytvbSh0KSsnPHNwYW4gY2xhc3M9InBlcm1pc3Npb24tYWN0aW9ucyBoaWRkZW4iIGlkPSJwZXJtaXNzaW9uLWFjdGlvbnMiPjxzcGFuIGNsYXNzPSJwZXJtaXNzaW9uLWFjdGlvbnMtbGFiZWwiIGlkPSJwZXJtaXNzaW9uLWFjdGlvbnMtbGFiZWwiPlx1N0I0OVx1NUY4NVx1NjM4OFx1Njc0Mzwvc3Bhbj48YnV0dG9uIGlkPSJhcHByb3ZlLXBlcm1pc3Npb24tYnRuIiBjbGFzcz0iYnRuIGJ0bi1wZXJtaXNzaW9uIGJ0bi1wZXJtaXNzaW9uLWFwcHJvdmUiIHR5cGU9ImJ1dHRvbiI+XHU2Mjc5XHU1MUM2PC9idXR0b24+PGJ1dHRvbiBpZD0iZGVueS1wZXJtaXNzaW9uLWJ0biIgY2xhc3M9ImJ0biBidG4tcGVybWlzc2lvbiBidG4tcGVybWlzc2lvbi1kZW55IiB0eXBlPSJidXR0b24iPlx1NjJEMlx1N0VERDwvYnV0dG9uPjwvc3Bhbj4nK2JmKCkrJzwvZGl2PjxkaXYgY2xhc3M9ImNvbXBvc2VyLW1haW4tcm93Ij48ZGl2IGNsYXNzPSJjb21wb3Nlci1hY3Rpb25zLWxlZnQiPjxidXR0b24gaWQ9ImF0dGFjaC1idG4iIGNsYXNzPSJidG4tY2lyY2xlIGJ0bi1jaXJjbGUtYWN0aW9uIiB0eXBlPSJidXR0b24iIHRpdGxlPSJcdTY2RjRcdTU5MUEiIGFyaWEtbGFiZWw9Ilx1NjZGNFx1NTkxQSIgYXJpYS1oYXNwb3B1cD0ibWVudSIgYXJpYS1leHBhbmRlZD0iZmFsc2UiPicreigicGx1cyIse3NpemU6MTgsc3Ryb2tlV2lkdGg6Mi4yfSkrJzwvYnV0dG9uPjxpbnB1dCB0eXBlPSJmaWxlIiBpZD0iZmlsZS11cGxvYWQtaW5wdXQiIG11bHRpcGxlIHRhYmluZGV4PSItMSIgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweDtoZWlnaHQ6MXB4O29wYWNpdHk6MDtvdmVyZmxvdzpoaWRkZW47Y2xpcDpyZWN0KDAsMCwwLDApO3BvaW50ZXItZXZlbnRzOm5vbmUiPjwvZGl2PjxkaXYgY2xhc3M9ImNvbXBvc2VyLWlubGluZS1jb25maWciPicrb2wodCkrJzwvZGl2PjxkaXYgY2xhc3M9ImNvbXBvc2VyLWlucHV0LXdyYXAiPjx0ZXh0YXJlYSBpZD0iaW5wdXQtYm94IiBjbGFzcz0iaW5wdXQtdGV4dGFyZWEiIHBsYWNlaG9sZGVyPSInK2VsKHQsci50ZXJtaW5hbEludGVyYWN0aXZlKSsnIiByb3dzPSIxIiBhdXRvY29tcGxldGU9Im9mZiIgYXV0b2NvcnJlY3Q9Im9mZiIgYXV0b2NhcGl0YWxpemU9Im9mZiIgc3BlbGxjaGVjaz0iZmFsc2UiIGVudGVya2V5aGludD0ic2VuZCI+JytwKGEpKyc8L3RleHRhcmVhPjxidXR0b24gaWQ9InByb21wdC1vcHRpbWl6ZS1idG4iIGNsYXNzPSJwcm9tcHQtb3B0aW1pemUtYnRuIiB0eXBlPSJidXR0b24iIHRpdGxlPSJcdTYzRDBcdTc5M0FcdThCQ0RcdTRGMThcdTUzMTZcdUZGMDhBSVx1RkYwOSIgYXJpYS1sYWJlbD0iXHU2M0QwXHU3OTNBXHU4QkNEXHU0RjE4XHU1MzE2Ij48c3ZnIGNsYXNzPSJwcm9tcHQtb3B0aW1pemUtaWNvbiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxwYXRoIGQ9Ik0xMiAzbDEuNiA0LjRMMTggOWwtNC40IDEuNkwxMiAxNWwtMS42LTQuNEw2IDlsNC40LTEuNnoiIGZpbGw9ImN1cnJlbnRDb2xvciIgb3BhY2l0eT0iMC4yNSIvPjxwYXRoIGQ9Ik0xMiAzbDEuNiA0LjRMMTggOWwtNC40IDEuNkwxMiAxNWwtMS42LTQuNEw2IDlsNC40LTEuNnoiLz48cGF0aCBkPSJNMTkgMTRsLjcgMS45TDIxLjYgMTdsLTEuOS43TDE5IDE5LjZsLS43LTEuOUwxNi40IDE3bDEuOS0uN3oiIGZpbGw9ImN1cnJlbnRDb2xvciIgb3BhY2l0eT0iMC4zNSIvPjxwYXRoIGQ9Ik01IDRsLjUgMS40TDcgNmwtMS41LjZMNSA4bC0uNS0xLjRMMyA2bDEuNS0uNnoiIGZpbGw9ImN1cnJlbnRDb2xvciIgb3BhY2l0eT0iMC4zNSIvPjwvc3ZnPjxzcGFuIGNsYXNzPSJwcm9tcHQtb3B0aW1pemUtc3Bpbm5lciIgYXJpYS1oaWRkZW49InRydWUiPjwvc3Bhbj48L2J1dHRvbj48ZGl2IGNsYXNzPSJ2b2ljZS1pbnB1dC1tb2RlIGhpZGRlbiIgaWQ9InZvaWNlLWlucHV0LW1vZGUiPjxidXR0b24gaWQ9InZvaWNlLXJlY29yZC1idG4iIGNsYXNzPSJ2b2ljZS1yZWNvcmQtYnRuIiB0eXBlPSJidXR0b24iPjxzcGFuIGNsYXNzPSJ2b2ljZS1yZWNvcmQtcHVsc2UiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L3NwYW4+PHNwYW4gY2xhc3M9InZvaWNlLXJlY29yZC1sYWJlbCI+XHU2MzA5XHU0RjRGIFx1OEJGNFx1OEJERDwvc3Bhbj48L2J1dHRvbj48YnV0dG9uIGlkPSJ2b2ljZS1jYW5jZWwtYnRuIiBjbGFzcz0idm9pY2UtY2FuY2VsLWJ0biIgdHlwZT0iYnV0dG9uIiB0aXRsZT0iXHU5MDAwXHU1MUZBXHU4QkVEXHU5N0YzXHU2QTIxXHU1RjBGIiBhcmlhLWxhYmVsPSJcdTkwMDBcdTUxRkFcdThCRURcdTk3RjNcdTZBMjFcdTVGMEYiPicreigieCIse3NpemU6MTQsc3Ryb2tlV2lkdGg6Mn0pKyc8L2J1dHRvbj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJjb21wb3Nlci1hY3Rpb25zLXJpZ2h0Ij48YnV0dG9uIGlkPSJzdG9wLWJ1dHRvbiIgY2xhc3M9ImJ0bi1jaXJjbGUgYnRuLWNpcmNsZS1zdG9wIGhpZGRlbiIgdGl0bGU9Ilx1NTA1Q1x1NkI2MiI+PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0iY3VycmVudENvbG9yIj48cmVjdCB4PSIzIiB5PSIzIiB3aWR0aD0iMTAiIGhlaWdodD0iMTAiIHJ4PSIyIi8+PC9zdmc+PC9idXR0b24+PGJ1dHRvbiBpZD0ic2VuZC1pbnB1dC1idXR0b24iIGNsYXNzPSJidG4tY2lyY2xlIGJ0bi1jaXJjbGUtc2VuZCIgdGl0bGU9Ilx1NTNEMVx1OTAwMSI+PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxsaW5lIHgxPSIyMiIgeTE9IjIiIHgyPSIxMSIgeTI9IjEzIi8+PHBvbHlnb24gcG9pbnRzPSIyMiAyIDE1IDIyIDExIDEzIDIgOSAyMiAyIi8+PC9zdmc+PC9idXR0b24+PC9kaXY+PC9kaXY+PGRpdiBpZD0iYXR0YWNobWVudC1wcmV2aWV3IiBjbGFzcz0iYXR0YWNobWVudC1wcmV2aWV3IGhpZGRlbiI+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iY29tcG9zZXItcGx1cy1wb3BvdmVyIGhpZGRlbiIgaWQ9ImNvbXBvc2VyLXBsdXMtcG9wb3ZlciIgcm9sZT0ibWVudSIgYXJpYS1sYWJlbD0iXHU2NkY0XHU1OTFBXHU2NENEXHU0RjVDIj48YnV0dG9uIGNsYXNzPSJwbHVzLXBvcG92ZXItaXRlbSIgaWQ9InBsdXMtYXR0YWNoLWl0ZW0iIHR5cGU9ImJ1dHRvbiIgcm9sZT0ibWVudWl0ZW0iPicreigicGFwZXJjbGlwIix7c2l6ZToxNCxzdHJva2VXaWR0aDoxLjgsY2xzOiJwbHVzLXBvcG92ZXItaWNvbiJ9KSsnPHNwYW4gY2xhc3M9InBsdXMtcG9wb3Zlci1sYWJlbCI+XHU0RTBBXHU0RjIwXHU5NjQ0XHU0RUY2PC9zcGFuPjwvYnV0dG9uPjxidXR0b24gY2xhc3M9InBsdXMtcG9wb3Zlci1pdGVtJysoci50ZXJtaW5hbEludGVyYWN0aXZlPyIgaXMtb24iOiIiKSsnIiBpZD0idGVybWluYWwtaW50ZXJhY3RpdmUtdG9nZ2xlLXRvcCIgdHlwZT0iYnV0dG9uIiByb2xlPSJtZW51aXRlbWNoZWNrYm94IiBhcmlhLWNoZWNrZWQ9IicrKHIudGVybWluYWxJbnRlcmFjdGl2ZT8idHJ1ZSI6ImZhbHNlIikrJyI+Jyt6KCJrZXlib2FyZCIse3NpemU6MTQsc3Ryb2tlV2lkdGg6MS44LGNsczoicGx1cy1wb3BvdmVyLWljb24ifSkrJzxzcGFuIGNsYXNzPSJwbHVzLXBvcG92ZXItbGFiZWwiPlx1N0VDOFx1N0FFRlx1NEVBNFx1NEU5Mjwvc3Bhbj48c3BhbiBjbGFzcz0icGx1cy1wb3BvdmVyLXRvZ2dsZS1zdGF0ZSI+Jysoci50ZXJtaW5hbEludGVyYWN0aXZlPyJcdTVGMDAiOiJcdTUxNzMiKSsnPC9zcGFuPjwvYnV0dG9uPjxkaXYgY2xhc3M9InBsdXMtcG9wb3Zlci1zZXAiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L2Rpdj48ZGl2IGNsYXNzPSJwbHVzLXBvcG92ZXItdHJpby13cmFwIj4nK29sKHQpKyc8L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJ2b2ljZS10cmFuc2NyaXB0LWJ1YmJsZSBoaWRkZW4iIGlkPSJ2b2ljZS10cmFuc2NyaXB0LWJ1YmJsZSIgYXJpYS1saXZlPSJwb2xpdGUiPjxkaXYgY2xhc3M9InZvaWNlLXRyYW5zY3JpcHQtdGV4dCIgaWQ9InZvaWNlLXRyYW5zY3JpcHQtdGV4dCI+PC9kaXY+PGRpdiBjbGFzcz0idm9pY2UtdHJhbnNjcmlwdC1oaW50IiBpZD0idm9pY2UtdHJhbnNjcmlwdC1oaW50Ij48c3BhbiBjbGFzcz0idm9pY2Utd2F2ZSIgYXJpYS1oaWRkZW49InRydWUiPjxpPjwvaT48aT48L2k+PGk+PC9pPjxpPjwvaT48L3NwYW4+PHNwYW4gY2xhc3M9InZvaWNlLXRyYW5zY3JpcHQtc3RhdHVzIiBpZD0idm9pY2UtdHJhbnNjcmlwdC1zdGF0dXMiPlx1NkI2M1x1NTcyOFx1ODA0Nlx1NTQyQ1x1MjAyNlx1NEUwQVx1NkVEMVx1NTNENlx1NkQ4ODwvc3Bhbj48L2Rpdj48c3BhbiBjbGFzcz0idm9pY2UtYnViYmxlLWFycm93IiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9zcGFuPjwvZGl2PjxwIGlkPSJhY3Rpb24tZXJyb3IiIGNsYXNzPSJlcnJvci1tZXNzYWdlIGhpZGRlbiI+PC9wPjwvZGl2PjxzZWN0aW9uIGlkPSJmb2xkZXItcGlja2VyLW1vZGFsIiBjbGFzcz0ibW9kYWwtYmFja2Ryb3AgaGlkZGVuIj48ZGl2IGNsYXNzPSJtb2RhbCBmb2xkZXItcGlja2VyLW1vZGFsIj48ZGl2IGNsYXNzPSJtb2RhbC1oZWFkZXIiPjxoMiBjbGFzcz0ibW9kYWwtdGl0bGUiPlx1OTAwOVx1NjJFOVx1NURFNVx1NEY1Q1x1NzZFRVx1NUY1NTwvaDI+PGJ1dHRvbiBpZD0iY2xvc2UtZm9sZGVyLXBpY2tlciIgY2xhc3M9ImJ0biBidG4tZ2hvc3QgYnRuLWljb24gbW9kYWwtY2xvc2UtYnRuIiB0eXBlPSJidXR0b24iIGFyaWEtbGFiZWw9Ilx1NTE3M1x1OTVFRCI+PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi40IiBzdHJva2UtbGluZWNhcD0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48bGluZSB4MT0iNiIgeTE9IjYiIHgyPSIxOCIgeTI9IjE4Ii8+PGxpbmUgeDE9IjE4IiB5MT0iNiIgeDI9IjYiIHkyPSIxOCIvPjwvc3ZnPjwvYnV0dG9uPjwvZGl2PjxkaXYgY2xhc3M9Im1vZGFsLWJvZHkiPjxkaXYgY2xhc3M9ImZvbGRlci1waWNrZXItcXVpY2stcm93Ij48YnV0dG9uIGNsYXNzPSJmb2xkZXItcGlja2VyLXF1aWNrLWJ0biBidG4td2l0aC1pY29uIiBkYXRhLXBhdGg9Ii90bXAiPicreigidHJhc2giLHtzaXplOjEzLHN0cm9rZVdpZHRoOjEuN30pKyc8c3Bhbj5cdTRFMzRcdTY1RjZcdTc2RUVcdTVGNTU8L3NwYW4+PC9idXR0b24+PGJ1dHRvbiBjbGFzcz0iZm9sZGVyLXBpY2tlci1xdWljay1idG4gYnRuLXdpdGgtaWNvbiIgZGF0YS1wYXRoPSIvIj4nK3ooImZvbGRlciIse3NpemU6MTMsc3Ryb2tlV2lkdGg6MS43fSkrJzxzcGFuPlx1NjgzOVx1NzZFRVx1NUY1NTwvc3Bhbj48L2J1dHRvbj48L2Rpdj48ZGl2IGlkPSJmb2xkZXItYnJlYWRjcnVtYiIgY2xhc3M9ImZvbGRlci1icmVhZGNydW1iIj48L2Rpdj48ZGl2IGNsYXNzPSJmb2xkZXItcGlja2VyIj48c3BhbiBjbGFzcz0iZm9sZGVyLXBpY2tlci1pY29uIj4nK3ooImZvbGRlciIse3NpemU6MTUsc3Ryb2tlV2lkdGg6MS43fSkrJzwvc3Bhbj48aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImZvbGRlci1waWNrZXItaW5wdXQiIGNsYXNzPSJmb2xkZXItcGlja2VyLWlucHV0IiB2YWx1ZT0iIiBwbGFjZWhvbGRlcj0iXHU4RjkzXHU1MTY1XHU2MjE2XHU5MDA5XHU2MkU5XHU1REU1XHU0RjVDXHU3NkVFXHU1RjU1Li4uIiBhdXRvY29tcGxldGU9Im9mZiIgYXV0b2NvcnJlY3Q9Im9mZiIgYXV0b2NhcGl0YWxpemU9Im9mZiIgc3BlbGxjaGVjaz0iZmFsc2UiIC8+PC9kaXY+PGRpdiBpZD0iZm9sZGVyLXBpY2tlci1kcm9wZG93biIgY2xhc3M9ImZvbGRlci1waWNrZXItZHJvcGRvd24gaGlkZGVuIj48L2Rpdj48ZGl2IGlkPSJmb2xkZXItcGlja2VyLXZhbGlkYXRpb24iIGNsYXNzPSJmb2xkZXItcGlja2VyLXZhbGlkYXRpb24iPjwvZGl2PjwvZGl2PjwvZGl2Pjwvc2VjdGlvbj48L21haW4+PC9kaXY+PC9kaXY+JytZYygpK05jKCkramMoKStpcygpfWZ1bmN0aW9uIFBlKGUsdCl7aWYoZSl7ZS50ZXh0Q29udGVudD10LGUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIik7Zm9yKHZhciBuPWUucHJldmlvdXNFbGVtZW50U2libGluZztuOyl7aWYobi50YWdOYW1lPT09IklOUFVUIil7bi5zZXRBdHRyaWJ1dGUoImRhdGEtZXJyb3IiLCJ0cnVlIik7YnJlYWt9bj1uLnByZXZpb3VzRWxlbWVudFNpYmxpbmd9fX1mdW5jdGlvbiBjaShlKXtpZihlKXtlLnRleHRDb250ZW50PSIiLGUuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIik7Zm9yKHZhciB0PWUucHJldmlvdXNFbGVtZW50U2libGluZzt0Oyl7aWYodC50YWdOYW1lPT09IklOUFVUIil7dC5zZXRBdHRyaWJ1dGUoImRhdGEtZXJyb3IiLCJmYWxzZSIpO2JyZWFrfXQ9dC5wcmV2aW91c0VsZW1lbnRTaWJsaW5nfX19ZnVuY3Rpb24gayhlLHQpe3ZhciBuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO24uY2xhc3NOYW1lPSJ0b2FzdC1tZXNzYWdlIisodD09PSJlcnJvciI/IiB0b2FzdC1lcnJvciI6IiIpLHQhPT0iZXJyb3IiJiYobi5zdHlsZS5iYWNrZ3JvdW5kPSJ2YXIoLS1hY2NlbnQpIixuLnN0eWxlLmNvbG9yPSJ3aGl0ZSIpLG4udGV4dENvbnRlbnQ9ZSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKG4pLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtuLnJlbW92ZSgpfSx0PT09ImVycm9yIj80ZTM6MjIwMCl9dmFyIEZyPVtdO2Z1bmN0aW9uIHdmKGUpe3N3aXRjaChlKXtjYXNlIndhcm5pbmciOnJldHVybiIhIjtjYXNlImRhbmdlciI6cmV0dXJuIlx1MjZBMFx1RkUwRSI7Y2FzZSJzdWNjZXNzIjpyZXR1cm4iXHUyNzEzIjtjYXNlInF1ZXN0aW9uIjpyZXR1cm4iPyI7ZGVmYXVsdDpyZXR1cm4iaSJ9fWZ1bmN0aW9uIGxuKGUpe2U9ZXx8e307dmFyIHQ9ZS5kaXNtaXNzYWJsZSE9PSExLG49ZS50eXBlfHwiaW5mbyIsaT1lLmljb258fHdmKG4pLGE9ISFlLmlucHV0O3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbih1KXt2YXIgcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtzLmNsYXNzTmFtZT0id2FuZC1kaWFsb2ctYmFja2Ryb3AiLHMuc2V0QXR0cmlidXRlKCJyb2xlIiwicHJlc2VudGF0aW9uIik7dmFyIG89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7by5jbGFzc05hbWU9IndhbmQtZGlhbG9nIixvLnNldEF0dHJpYnV0ZSgicm9sZSIsYT8iZGlhbG9nIjoiYWxlcnRkaWFsb2ciKSxvLnNldEF0dHJpYnV0ZSgiYXJpYS1tb2RhbCIsInRydWUiKSxlLnRpdGxlJiZvLnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsZS50aXRsZSk7dmFyIGw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7bC5jbGFzc05hbWU9IndhbmQtZGlhbG9nLWhlYWRlciI7dmFyIGM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Yy5jbGFzc05hbWU9IndhbmQtZGlhbG9nLWljb24gIituLGMudGV4dENvbnRlbnQ9aSxsLmFwcGVuZENoaWxkKGMpO3ZhciBmPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2lmKGYuY2xhc3NOYW1lPSJ3YW5kLWRpYWxvZy10ZXh0d3JhcCIsZS50aXRsZSl7dmFyIGQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7ZC5jbGFzc05hbWU9IndhbmQtZGlhbG9nLXRpdGxlIixkLnRleHRDb250ZW50PWUudGl0bGUsZi5hcHBlbmRDaGlsZChkKX1pZihlLm1lc3NhZ2Upe3ZhciB2PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3YuY2xhc3NOYW1lPSJ3YW5kLWRpYWxvZy1tZXNzYWdlIix2LnRleHRDb250ZW50PWUubWVzc2FnZSxmLmFwcGVuZENoaWxkKHYpfWwuYXBwZW5kQ2hpbGQoZiksby5hcHBlbmRDaGlsZChsKTt2YXIgaD1udWxsO2lmKGEpe3ZhciBnPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2cuY2xhc3NOYW1lPSJ3YW5kLWRpYWxvZy1ib2R5IixoPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0IiksaC50eXBlPSJ0ZXh0IixoLmNsYXNzTmFtZT0id2FuZC1kaWFsb2ctaW5wdXQiLGUuaW5wdXRQbGFjZWhvbGRlciYmKGgucGxhY2Vob2xkZXI9ZS5pbnB1dFBsYWNlaG9sZGVyKSxlLmlucHV0VmFsdWUhPW51bGwmJihoLnZhbHVlPVN0cmluZyhlLmlucHV0VmFsdWUpKSxnLmFwcGVuZENoaWxkKGgpLG8uYXBwZW5kQ2hpbGQoZyl9dmFyIG09ZS5idXR0b25zJiZlLmJ1dHRvbnMubGVuZ3RoP2UuYnV0dG9uczpbe2xhYmVsOiJcdTU5N0QiLHZhbHVlOiEwLGtpbmQ6InByaW1hcnkiLGF1dG9mb2N1czohMH1dLHk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7eS5jbGFzc05hbWU9IndhbmQtZGlhbG9nLWZvb3RlciI7dmFyIHc9bnVsbCxFPW51bGw7ZnVuY3Rpb24gQih4KXtpZighcy5jbGFzc0xpc3QuY29udGFpbnMoImNsb3NpbmciKSl7cy5jbGFzc0xpc3QuYWRkKCJjbG9zaW5nIiksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsRiwhMCk7dmFyIFM9RnIuaW5kZXhPZihCKTtTPj0wJiZGci5zcGxpY2UoUywxKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cy5wYXJlbnROb2RlJiZzLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQocyksdSh4KX0sMTYwKX19bS5mb3JFYWNoKGZ1bmN0aW9uKHgpe3ZhciBTPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIpLF89eC5raW5kfHwic2Vjb25kYXJ5IjtTLmNsYXNzTmFtZT0iYnRuIGJ0bi0iK18sUy50eXBlPSJidXR0b24iLFMudGV4dENvbnRlbnQ9eC5sYWJlbCxTLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe2EmJngua2luZD09PSJwcmltYXJ5Ij9CKGg/aC52YWx1ZToiIik6Qih4LnZhbHVlKX0pLHd8fCh3PVMpLHguYXV0b2ZvY3VzJiYoRT1TKSx5LmFwcGVuZENoaWxkKFMpfSksby5hcHBlbmRDaGlsZCh5KSxzLmFwcGVuZENoaWxkKG8pLHMuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKHgpe3gudGFyZ2V0PT09cyYmdCYmQihlLmNhbmNlbFZhbHVlIT09dm9pZCAwP2UuY2FuY2VsVmFsdWU6YT9udWxsOiExKX0pO2Z1bmN0aW9uIEYoeCl7aWYoRnJbRnIubGVuZ3RoLTFdPT09Qil7aWYoeC5rZXk9PT0iRXNjYXBlIiYmdCl7eC5wcmV2ZW50RGVmYXVsdCgpLHguc3RvcFByb3BhZ2F0aW9uKCksQihlLmNhbmNlbFZhbHVlIT09dm9pZCAwP2UuY2FuY2VsVmFsdWU6YT9udWxsOiExKTtyZXR1cm59aWYoeC5rZXk9PT0iRW50ZXIiKXtmb3IodmFyIFM9bnVsbCxfPTA7XzxtLmxlbmd0aDtfKyspaWYobVtfXS5raW5kPT09InByaW1hcnkiKXtTPW1bX107YnJlYWt9U3x8KFM9bVttLmxlbmd0aC0xXSksUyYmKHgucHJldmVudERlZmF1bHQoKSx4LnN0b3BQcm9wYWdhdGlvbigpLGEmJlMua2luZD09PSJwcmltYXJ5Ij9CKGg/aC52YWx1ZToiIik6QihTLnZhbHVlKSl9fX1kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixGLCEwKSxGci5wdXNoKEIpLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocykscmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7aWYoYSYmaCl7aC5mb2N1cygpO3RyeXtoLnNlbGVjdCgpfWNhdGNoe319ZWxzZSBFP0UuZm9jdXMoKTp3JiZ3LmZvY3VzKCl9KX0pfWZ1bmN0aW9uIENmKGUsdCl7cmV0dXJuIHQ9dHx8e30sbG4oe3RpdGxlOnQudGl0bGV8fCJcdTYzRDBcdTc5M0EiLG1lc3NhZ2U6dHlwZW9mIGU9PSJzdHJpbmciP2U6U3RyaW5nKGU/PyIiKSx0eXBlOnQudHlwZXx8ImluZm8iLGJ1dHRvbnM6W3tsYWJlbDp0Lm9rTGFiZWx8fCJcdTU5N0QiLHZhbHVlOnZvaWQgMCxraW5kOiJwcmltYXJ5IixhdXRvZm9jdXM6ITB9XX0pfWZ1bmN0aW9uIFVzKGUsdCl7dD10fHx7fTt2YXIgbj0hIXQuZGFuZ2VyfHx0LnR5cGU9PT0iZGFuZ2VyIjtyZXR1cm4gbG4oe3RpdGxlOnQudGl0bGV8fChuPyJcdTc4NkVcdThCQTRcdTY0Q0RcdTRGNUMiOiJcdThCRjdcdTc4NkVcdThCQTQiKSxtZXNzYWdlOnR5cGVvZiBlPT0ic3RyaW5nIj9lOlN0cmluZyhlPz8iIiksdHlwZTp0LnR5cGV8fChuPyJkYW5nZXIiOiJxdWVzdGlvbiIpLGNhbmNlbFZhbHVlOiExLGJ1dHRvbnM6W3tsYWJlbDp0LmNhbmNlbExhYmVsfHwiXHU1M0Q2XHU2RDg4Iix2YWx1ZTohMSxraW5kOiJzZWNvbmRhcnkifSx7bGFiZWw6dC5va0xhYmVsfHwobj8iXHU1MjIwXHU5NjY0IjoiXHU3ODZFXHU1QjlBIiksdmFsdWU6ITAsa2luZDpuPyJkYW5nZXIiOiJwcmltYXJ5IixhdXRvZm9jdXM6IW59XX0pLnRoZW4oZnVuY3Rpb24oaSl7cmV0dXJuIGk9PT0hMH0pfWZ1bmN0aW9uIEJmKGUsdCxuKXtyZXR1cm4gbj1ufHx7fSxsbih7dGl0bGU6bi50aXRsZXx8Ilx1OEJGN1x1OEY5M1x1NTE2NSIsbWVzc2FnZTp0eXBlb2YgZT09InN0cmluZyI/ZTpTdHJpbmcoZT8/IiIpLHR5cGU6bi50eXBlfHwicXVlc3Rpb24iLGlucHV0OiEwLGlucHV0VmFsdWU6dD09bnVsbD8iIjpTdHJpbmcodCksaW5wdXRQbGFjZWhvbGRlcjpuLnBsYWNlaG9sZGVyfHwiIixjYW5jZWxWYWx1ZTpudWxsLGJ1dHRvbnM6W3tsYWJlbDpuLmNhbmNlbExhYmVsfHwiXHU1M0Q2XHU2RDg4Iix2YWx1ZTpudWxsLGtpbmQ6InNlY29uZGFyeSJ9LHtsYWJlbDpuLm9rTGFiZWx8fCJcdTc4NkVcdTVCOUEiLHZhbHVlOnZvaWQgMCxraW5kOiJwcmltYXJ5In1dfSl9d2luZG93LndhbmRBbGVydD1DZix3aW5kb3cud2FuZENvbmZpcm09VXMsd2luZG93LndhbmRQcm9tcHQ9QmYsd2luZG93Lm9wZW5XYW5kRGlhbG9nPWxuO3ZhciBubj1bXSxWcz0wLERmPTYsa2Y9MTY7ZnVuY3Rpb24gYmEoZSl7aWYoKGUuYWN0aW9uTGFiZWx8fGUucGxheVNvdW5kKSYmUXMoKSwhci5ub3RpZkJ1YmJsZSlyZXR1cm57ZGlzbWlzczpmdW5jdGlvbigpe319O3ZhciB0PSsrVnMsbj1lLnR5cGV8fCJpbmZvIixpPWUuaWNvbnx8KG49PT0id2FybmluZyI/IiEiOm49PT0ic3VjY2VzcyI/Ilx1MjcxMyI6ImkiKSxhPWUuZHVyYXRpb24hPT12b2lkIDA/ZS5kdXJhdGlvbjo4ZTMsdT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt1LmNsYXNzTmFtZT0ibm90aWZpY2F0aW9uLWJ1YmJsZSIsdS5zZXRBdHRyaWJ1dGUoImRhdGEtbmlkIixTdHJpbmcodCkpO3ZhciBzPSc8ZGl2IGNsYXNzPSJub3RpZmljYXRpb24tYnViYmxlLWhlYWRlciI+PHNwYW4gY2xhc3M9Im5vdGlmaWNhdGlvbi1idWJibGUtaWNvbiAnK24rJyI+JytpKyc8L3NwYW4+PHNwYW4gY2xhc3M9Im5vdGlmaWNhdGlvbi1idWJibGUtdGl0bGUiPicrcChlLnRpdGxlKSsnPC9zcGFuPjxidXR0b24gY2xhc3M9Im5vdGlmaWNhdGlvbi1idWJibGUtY2xvc2UiIHRpdGxlPSJcdTUxNzNcdTk1RUQiPlx4RDc8L2J1dHRvbj48L2Rpdj4nLG89ZS5ib2R5Pyc8ZGl2IGNsYXNzPSJub3RpZmljYXRpb24tYnViYmxlLWJvZHkiPicrcChlLmJvZHkpLnJlcGxhY2UoL1xuL2csIjxicj4iKSsiPC9kaXY+IjoiIixsPWUuYWN0aW9uTGFiZWw/JzxkaXYgY2xhc3M9Im5vdGlmaWNhdGlvbi1idWJibGUtYWN0aW9ucyI+PGJ1dHRvbiBjbGFzcz0icHJpbWFyeSI+JytwKGUuYWN0aW9uTGFiZWwpKyI8L2J1dHRvbj48L2Rpdj4iOiIiO3UuaW5uZXJIVE1MPXMrbytsLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodSk7dmFyIGM9e2lkOnQsZWw6dX07bm4ucHVzaChjKSxFYSgpO3ZhciBmPXUucXVlcnlTZWxlY3RvcigiLm5vdGlmaWNhdGlvbi1idWJibGUtY2xvc2UiKTtpZihmJiYoZi5vbmNsaWNrPWZ1bmN0aW9uKCl7d3IodCl9KSxlLmFjdGlvbkxhYmVsJiZlLmFjdGlvbil7dmFyIGQ9dS5xdWVyeVNlbGVjdG9yKCIubm90aWZpY2F0aW9uLWJ1YmJsZS1hY3Rpb25zIGJ1dHRvbiIpO2QmJihkLm9uY2xpY2s9ZnVuY3Rpb24oKXtlLmFjdGlvbigpLHdyKHQpfSl9dmFyIHY9bnVsbDtyZXR1cm4gYT4wJiYodj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7d3IodCl9LGEpKSx7ZGlzbWlzczpmdW5jdGlvbigpe3dyKHQpfX19ZnVuY3Rpb24gd3IoZSl7Zm9yKHZhciB0PS0xLG49MDtuPG5uLmxlbmd0aDtuKyspaWYobm5bbl0uaWQ9PT1lKXt0PW47YnJlYWt9aWYodCE9PS0xKXt2YXIgaT1ublt0XTtpLmVsLmNsYXNzTGlzdC5hZGQoInNsaWRlLW91dCIpLG5uLnNwbGljZSh0LDEpLEVhKCksc2V0VGltZW91dChmdW5jdGlvbigpe2kuZWwucGFyZW50Tm9kZSYmaS5lbC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGkuZWwpfSwzMDApfX1mdW5jdGlvbiBFYSgpe2Zvcih2YXIgZT1rZix0PTA7dDxubi5sZW5ndGg7dCsrKW5uW3RdLmVsLnN0eWxlLnRvcD1lKyJweCIsZSs9bm5bdF0uZWwub2Zmc2V0SGVpZ2h0K0RmfXRyeXtYcz1uYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKC9XYW5kUGxhdGZvcm1cL21hY09TLyksQ2E9d2luZG93LndlYmtpdCYmd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMmJndpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLndhbmROYXRpdmV8fG51bGwsWHMmJkNhJiZ0eXBlb2Ygd2luZG93LldhbmROYXRpdmU+InUiJiYod2luZG93LldhbmROYXRpdmU9e2Rvd25sb2FkVXBkYXRlOmZ1bmN0aW9uKGUsdCxuKXt0cnl7Q2EucG9zdE1lc3NhZ2Uoe3R5cGU6ImRvd25sb2FkVXBkYXRlIix1cmw6U3RyaW5nKGV8fCIiKSxmaWxlTmFtZTpTdHJpbmcodHx8IndhbmQtdXBkYXRlLmRtZyIpLHNvdXJjZTpTdHJpbmcobnx8ImxvY2FsIil9KX1jYXRjaHt9fX0pfWNhdGNoe312YXIgamU9dHlwZW9mIFdhbmROYXRpdmU8InUiJiZ0eXBlb2YgV2FuZE5hdGl2ZS5zZW5kTm90aWZpY2F0aW9uPT0iZnVuY3Rpb24iLENyPW5hdmlnYXRvci51c2VyQWdlbnQubWF0Y2goL1dhbmRBcHBcLyhbXlxzXSspLyksS3M9L1dhbmRQbGF0Zm9ybVwvbWFjT1MvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCksQWY9ISFDciYmIUtzLFRuPUNyJiZBZj9DclsxXTpudWxsLGNuPUNyJiZLcz9DclsxXTpudWxsO2Z1bmN0aW9uIEduKGUpe2lmKCEoIWplfHx0eXBlb2YgV2FuZE5hdGl2ZS52aWJyYXRlIT0iZnVuY3Rpb24iKSl0cnl7V2FuZE5hdGl2ZS52aWJyYXRlKGV8fCJsaWdodCIpfWNhdGNoe319ZnVuY3Rpb24gRmEoKXtpZihqZSl7dmFyIGU9ci5zZXNzaW9ucy5zb21lKGZ1bmN0aW9uKHQpe3JldHVybiF0LmFyY2hpdmVkJiYodC5zdGF0dXM9PT0icnVubmluZyJ8fHQuc3RhdHVzPT09InRoaW5raW5nInx8dC5zdGF0dXM9PT0iaW5pdGlhbGl6aW5nIil9KTtpZih0eXBlb2YgV2FuZE5hdGl2ZS5zZXRLZWVwU2NyZWVuT249PSJmdW5jdGlvbiIpdHJ5e1dhbmROYXRpdmUuc2V0S2VlcFNjcmVlbk9uKGUpfWNhdGNoe31pZihlKXtpZih0eXBlb2YgV2FuZE5hdGl2ZS5zdGFydEtlZXBBbGl2ZT09ImZ1bmN0aW9uIil0cnl7V2FuZE5hdGl2ZS5zdGFydEtlZXBBbGl2ZSgpfWNhdGNoe319ZWxzZSBpZih0eXBlb2YgV2FuZE5hdGl2ZS5zdG9wS2VlcEFsaXZlPT0iZnVuY3Rpb24iKXRyeXtXYW5kTmF0aXZlLnN0b3BLZWVwQWxpdmUoKX1jYXRjaHt9fX1mdW5jdGlvbiBkaSgpe2lmKGplJiZ0eXBlb2YgV2FuZE5hdGl2ZS5nZXRQZXJtaXNzaW9uPT0iZnVuY3Rpb24iKXRyeXtyZXR1cm4gV2FuZE5hdGl2ZS5nZXRQZXJtaXNzaW9uKCl9Y2F0Y2h7fXJldHVybiBudWxsfWZ1bmN0aW9uIHhmKCl7aWYoamUpe3ZhciBlPWRpKCk7aWYoZT09PSJkZWZhdWx0Inx8ZT09PSJkZW5pZWQiKXRyeXtXYW5kTmF0aXZlLnJlcXVlc3RQZXJtaXNzaW9uKCl9Y2F0Y2h7fXJldHVybn10eXBlb2YgTm90aWZpY2F0aW9uPCJ1IiYmTm90aWZpY2F0aW9uLnBlcm1pc3Npb249PT0iZGVmYXVsdCImJk5vdGlmaWNhdGlvbi5yZXF1ZXN0UGVybWlzc2lvbigpfWZ1bmN0aW9uIFNmKGUpe3ZhciB0PWV8fHt9O3JldHVybiEodC5vbmx5V2hlbkhpZGRlbiYmIWRvY3VtZW50LmhpZGRlbnx8dC5za2lwV2hlblNlbGVjdGVkU2Vzc2lvbklkJiZ0LnNraXBXaGVuU2VsZWN0ZWRTZXNzaW9uSWQ9PT1yLnNlbGVjdGVkSWQmJiFkb2N1bWVudC5oaWRkZW4pfWZ1bmN0aW9uIElmKGUsdCl7aWYoIWV8fCF0fHx0PD0wKXJldHVybiExO3ZhciBuPXIubm90aWZpY2F0aW9uSGlzdG9yeVtlXXx8MCxpPURhdGUubm93KCk7cmV0dXJuIGktbjx0PyEwOihyLm5vdGlmaWNhdGlvbkhpc3RvcnlbZV09aSwhMSl9ZnVuY3Rpb24gZmkoZSx0LG4pe3ZhciBpPW58fHt9LGE9aS50YWd8fCIiO2lmKFNmKGkpJiYhSWYoYSxpLm1pbkludGVydmFsTXN8fDApKXtpZihqZSl7dmFyIHU9ZGkoKTtpZih1IT09ImdyYW50ZWQiKXJldHVybjt0cnl7dmFyIHM9YTtpLmtpbmQmJihzPWkua2luZCsoYT8iOiIrYToiIikpLFdhbmROYXRpdmUuc2VuZE5vdGlmaWNhdGlvbihlfHwiV2FuZCIsdHx8IiIsc3x8IiIpfWNhdGNoe31yZXR1cm59aWYoISh0eXBlb2YgTm90aWZpY2F0aW9uPiJ1Inx8Tm90aWZpY2F0aW9uLnBlcm1pc3Npb24hPT0iZ3JhbnRlZCIpJiZkb2N1bWVudC5oaWRkZW4pdHJ5e3ZhciBvPW5ldyBOb3RpZmljYXRpb24oZSx7Ym9keTp0fHwiIixpY29uOmkuaWNvbnx8Ii9mYXZpY29uLmljbyIsdGFnOmF8fHZvaWQgMH0pO28ub25jbGljaz1mdW5jdGlvbigpe3dpbmRvdy5mb2N1cygpLG8uY2xvc2UoKSxpLm9uQ2xpY2smJmkub25DbGljaygpfSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7by5jbG9zZSgpfSwxZTQpfWNhdGNoe319fWZ1bmN0aW9uIFRmKGUsdCl7aWYoISghdHx8IXQudGl0bGUpKXt2YXIgbj1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oYSl7cmV0dXJuIGEuaWQ9PT1lfSk7aWYobil7dmFyIGk9bi5zdW1tYXJ5fHxuLmNvbW1hbmR8fGU7ZmkoIlx1NEVGQlx1NTJBMVx1OEZEQlx1ODg0Q1x1NEUyRCIsaStgCmArdC50aXRsZSx7a2luZDoidGFzayIsdGFnOiJ3YW5kLXRhc2stIitlKyItIit0LnRpdGxlLG1pbkludGVydmFsTXM6OWU0LG9ubHlXaGVuSGlkZGVuOiEwLHNraXBXaGVuU2VsZWN0ZWRTZXNzaW9uSWQ6ZSxvbkNsaWNrOmZ1bmN0aW9uKCl7ZSE9PXIuc2VsZWN0ZWRJZCYmenQoZSl9fSl9fX1mdW5jdGlvbiBKcyhlLHQpe0hmKGV8fCItIix0fHwiLSIpLGZpKCJXYW5kIFx1NTNEMVx1NzNCMFx1NjVCMFx1NzI0OFx1NjcyQyIsIlx1NUY1M1x1NTI0RCAiKyhlfHwiLSIpKyIgXHUyMTkyIFx1NjcwMFx1NjVCMCAiKyh0fHwiLSIpLHtraW5kOiJ1cGRhdGUiLHRhZzoid2FuZC11cGRhdGUiLG1pbkludGVydmFsTXM6M2U1fSl9ZnVuY3Rpb24gTGYoZSx0KXtmaSgiXHU5NzAwXHU4OTgxXHU0RjYwXHU3Njg0XHU2Mzg4XHU2NzQzIix0LHtraW5kOiJwZXJtaXNzaW9uIix0YWc6IndhbmQtcGVybS0iK2UsbWluSW50ZXJ2YWxNczo2ZTQsb25seVdoZW5IaWRkZW46ITAsc2tpcFdoZW5TZWxlY3RlZFNlc3Npb25JZDplLG9uQ2xpY2s6ZnVuY3Rpb24oKXtlIT09ci5zZWxlY3RlZElkJiZ6dChlKX19KX1mdW5jdGlvbiBNZihlLHQsbil7ZmkodCxuLHtraW5kOiJ0YXNrLWVuZGVkIix0YWc6IndhbmQtZW5kZWQtIitlLG1pbkludGVydmFsTXM6MWU0LG9uQ2xpY2s6ZnVuY3Rpb24oKXtlIT09ci5zZWxlY3RlZElkJiZ6dChlKX19KX12YXIgTG49e30scWY9MzA7ZnVuY3Rpb24gR3MoZSl7aWYoIWUpcmV0dXJuIiI7dmFyIHQ9U3RyaW5nKGUpLnJlcGxhY2UoL14jK1xzKy9nbSwiIikucmVwbGFjZSgvXCpcKi9nLCIiKS5yZXBsYWNlKC9gL2csIiIpLnRyaW0oKSxuPXQuc3BsaXQoYApgKVswXS50cmltKCk7cmV0dXJuIG4ubGVuZ3RoPjEwMCYmKG49bi5zbGljZSgwLDEwMCkrIlx1MjAyNiIpLG59ZnVuY3Rpb24gd2EoZSl7IWplfHx0eXBlb2YgV2FuZE5hdGl2ZS51cGRhdGVTZXNzaW9uUHJvZ3Jlc3MhPSJmdW5jdGlvbiJ8fGUmJihMbltlXSYmY2xlYXJUaW1lb3V0KExuW2VdKSxMbltlXT1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZGVsZXRlIExuW2VdLE9mKGUpfSxxZikpfWZ1bmN0aW9uIE9mKGUpe3ZhciB0PXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbih4KXtyZXR1cm4geC5pZD09PWV9KTtpZih0KXt2YXIgbj10LnN1bW1hcnl8fHQuY29tbWFuZHx8ZSxpPXQuc3RhdHVzfHwicnVubmluZyI7aWYoaT09PSJpZGxlInx8aT09PSJhcmNoaXZlZCJ8fGk9PT0iZXhpdGVkIil7WXMoZSk7cmV0dXJufWZvcih2YXIgYT1udWxsLHU9IiIscz0iIixvPVtdLGw9dC5tZXNzYWdlc3x8W10sYz1sLmxlbmd0aC0xO2M+PTA7Yy0tKXt2YXIgZj1sW2NdO2lmKCEoIWYuY29udGVudHx8IUFycmF5LmlzQXJyYXkoZi5jb250ZW50KSkpe2lmKCFzJiZmLnJvbGU9PT0iYXNzaXN0YW50Iilmb3IodmFyIGQ9Zi5jb250ZW50Lmxlbmd0aC0xO2Q+PTA7ZC0tKXt2YXIgdj1mLmNvbnRlbnRbZF07aWYodiYmdi50eXBlPT09InRleHQiJiZ2LnRleHQmJnYudGV4dC50cmltKCkpe3M9R3Modi50ZXh0KTticmVha319aWYoZi5yb2xlPT09InVzZXIiKXt2YXIgaD1mLmNvbnRlbnQuc29tZShmdW5jdGlvbih4KXtyZXR1cm4geCYmeC5fX3F1ZXVlZH0pO2lmKCFoKWZvcih2YXIgZz0wO2c8Zi5jb250ZW50Lmxlbmd0aDtnKyspe3ZhciBtPWYuY29udGVudFtnXTtpZihtJiZtLnR5cGU9PT0idGV4dCImJm0udGV4dCYmbS50ZXh0LnRyaW0oKSl7dmFyIHk9R3MobS50ZXh0KTt1fHwodT15KSxvLmxlbmd0aDw0JiZvLnB1c2goeSk7YnJlYWt9fX1pZighYSlmb3IodmFyIHc9Zi5jb250ZW50Lmxlbmd0aC0xO3c+PTA7dy0tKXt2YXIgRT1mLmNvbnRlbnRbd107aWYoRSYmRS50eXBlPT09InRvb2xfdXNlIiYmRS5uYW1lPT09IlRvZG9Xcml0ZSImJkUuaW5wdXQmJkUuaW5wdXQudG9kb3Mpe2E9RS5pbnB1dC50b2RvczticmVha319aWYoYSYmby5sZW5ndGg+PTQmJnMpYnJlYWt9fW8ucmV2ZXJzZSgpO3ZhciBCPSIiO2U9PT1yLnNlbGVjdGVkSWQmJnIuY3VycmVudFRhc2smJnIuY3VycmVudFRhc2sudGl0bGUmJihCPXIuY3VycmVudFRhc2sudGl0bGUpO3ZhciBGPXtzZXNzaW9uTGFiZWw6bixzdGF0dXM6aSxjdXJyZW50VGFzazpCLGxhdGVzdFVzZXJUZXh0OnUsbGF0ZXN0QXNzaXN0YW50VGV4dDpzLHRvZG9zOmF8fFtdLHJlY2VudFVzZXJUZXh0czpvfTt0cnl7V2FuZE5hdGl2ZS51cGRhdGVTZXNzaW9uUHJvZ3Jlc3MoZSxKU09OLnN0cmluZ2lmeShGKSl9Y2F0Y2h7fX19ZnVuY3Rpb24gWXMoZSl7aWYoISghamV8fHR5cGVvZiBXYW5kTmF0aXZlLmNsZWFyU2Vzc2lvblByb2dyZXNzIT0iZnVuY3Rpb24iKSl7TG5bZV0mJihjbGVhclRpbWVvdXQoTG5bZV0pLGRlbGV0ZSBMbltlXSk7dHJ5e1dhbmROYXRpdmUuY2xlYXJTZXNzaW9uUHJvZ3Jlc3MoZSl9Y2F0Y2h7fX19d2luZG93LmhhbmRsZU5hdGl2ZUJhY2s9ZnVuY3Rpb24oKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MtbW9kYWwiKTtpZihlJiYhZS5jbGFzc0xpc3QuY29udGFpbnMoImhpZGRlbiIpKXJldHVybiB0cigpLCEwO3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXNzaW9uLW1vZGFsIik7aWYodCYmIXQuY2xhc3NMaXN0LmNvbnRhaW5zKCJoaWRkZW4iKSlyZXR1cm4geW4oKSwhMDt2YXIgbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid29ya3RyZWUtbWVyZ2UtbW9kYWwiKTtyZXR1cm4gbiYmIW4uY2xhc3NMaXN0LmNvbnRhaW5zKCJoaWRkZW4iKT8oZXIoKSwhMCk6ci5maWxlUGFuZWxPcGVuJiZOZSgpPyhYaSghMSksITApOnIuc2Vzc2lvbnNEcmF3ZXJPcGVuJiZOZSgpPyhxcigpLCEwKTpOZSgpJiZyLnNlbGVjdGVkSWQ/KHIuc2VsZWN0ZWRJZD1udWxsLHdlKCksci5zZXNzaW9uc0RyYXdlck9wZW49ITAseGUoIndhbmQtc2lkZWJhci1vcGVuIiwhMCksdG4oKSwhMCk6ITF9O2Z1bmN0aW9uIFFzKCl7ci5ub3RpZlNvdW5kJiZwaSgpfWZ1bmN0aW9uIFBmKCl7cmV0dXJuIHBpKCl9ZnVuY3Rpb24gcGkoKXt0cnl7bGV0IGE9ZnVuY3Rpb24odSxzLG8pe3ZhciBsPW4uY3JlYXRlT3NjaWxsYXRvcigpLGM9bi5jcmVhdGVHYWluKCk7bC50eXBlPSJzaW5lIixsLmZyZXF1ZW5jeS52YWx1ZT11LGMuZ2Fpbi5zZXRWYWx1ZUF0VGltZSgwLG4uY3VycmVudFRpbWUrcyksYy5nYWluLmxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lKC41Kmksbi5jdXJyZW50VGltZStzKy4wNCksYy5nYWluLmV4cG9uZW50aWFsUmFtcFRvVmFsdWVBdFRpbWUoLjAwMSxuLmN1cnJlbnRUaW1lK3MrbyksbC5jb25uZWN0KGMpLGMuY29ubmVjdChuLmRlc3RpbmF0aW9uKSxsLnN0YXJ0KG4uY3VycmVudFRpbWUrcyksbC5zdG9wKG4uY3VycmVudFRpbWUrcytvKX07dmFyIGU9YSx0PXdpbmRvdy5BdWRpb0NvbnRleHR8fHdpbmRvdy53ZWJraXRBdWRpb0NvbnRleHQ7aWYoIXQpcmV0dXJuITE7dmFyIG49bmV3IHQ7bi5zdGF0ZT09PSJzdXNwZW5kZWQiJiZuLnJlc3VtZSgpO3ZhciBpPShyLm5vdGlmVm9sdW1lfHwwKS8xMDA7cmV0dXJuIGEoNTIzLDAsLjI1KSxhKDY1OSwuMTIsLjMpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtuLmNsb3NlKCl9LDYwMCksITB9Y2F0Y2h7cmV0dXJuITF9fWZ1bmN0aW9uIEhmKGUsdCl7aWYoci5fdXBkYXRlQnViYmxlU2hvd24pcmV0dXJuO3IuX3VwZGF0ZUJ1YmJsZVNob3duPSEwLFFzKCk7dmFyIG49KytWcyxpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2kuY2xhc3NOYW1lPSJub3RpZmljYXRpb24tYnViYmxlIHVwZGF0ZS1jYXJkIixpLnNldEF0dHJpYnV0ZSgiZGF0YS1uaWQiLFN0cmluZyhuKSksaS5pbm5lckhUTUw9JzxkaXYgY2xhc3M9InVwZGF0ZS1jYXJkLXNoaW5lIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9kaXY+PGRpdiBjbGFzcz0idXBkYXRlLWNhcmQtaGVhZGVyIj48ZGl2IGNsYXNzPSJ1cGRhdGUtY2FyZC1pY29uIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi4yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0xMiAxOVY1Ii8+PHBhdGggZD0iTTUgMTJsNy03IDcgNyIvPjwvc3ZnPjwvZGl2PjxkaXYgY2xhc3M9InVwZGF0ZS1jYXJkLWhlYWRpbmciPjxkaXYgY2xhc3M9InVwZGF0ZS1jYXJkLXRpdGxlIj5cdTUzRDFcdTczQjBcdTY1QjBcdTcyNDhcdTY3MkM8L2Rpdj48ZGl2IGNsYXNzPSJ1cGRhdGUtY2FyZC1zdWJ0aXRsZSIgaWQ9InVwZGF0ZS1jYXJkLXN1YnRpdGxlIj5cdTcwQjlcdTUxRkJcdTRFMEJcdTY1QjlcdTYzMDlcdTk0QUVcdTRFMDBcdTk1MkVcdTY2RjRcdTY1QjA8L2Rpdj48L2Rpdj48YnV0dG9uIGNsYXNzPSJ1cGRhdGUtY2FyZC1jbG9zZSIgdGl0bGU9Ilx1N0EwRFx1NTQwRVx1NjNEMFx1OTE5MiIgYXJpYS1sYWJlbD0iXHU1MTczXHU5NUVEIj48c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyLjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTE4IDZMNiAxOCIvPjxwYXRoIGQ9Ik02IDZsMTIgMTIiLz48L3N2Zz48L2J1dHRvbj48L2Rpdj48ZGl2IGNsYXNzPSJ1cGRhdGUtY2FyZC12ZXJzaW9uIj48c3BhbiBjbGFzcz0idXBkYXRlLWNhcmQtdmVyc2lvbi1jaGlwIHVwZGF0ZS1jYXJkLXZlcnNpb24tY3VycmVudCI+dicrcChTdHJpbmcoZSkucmVwbGFjZSgvXnYvLCIiKSkrJzwvc3Bhbj48c3ZnIGNsYXNzPSJ1cGRhdGUtY2FyZC12ZXJzaW9uLWFycm93IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi4yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48cGF0aCBkPSJNNSAxMmgxNCIvPjxwYXRoIGQ9Ik0xMyA1bDcgNy03IDciLz48L3N2Zz48c3BhbiBjbGFzcz0idXBkYXRlLWNhcmQtdmVyc2lvbi1jaGlwIHVwZGF0ZS1jYXJkLXZlcnNpb24tbGF0ZXN0Ij52JytwKFN0cmluZyh0KS5yZXBsYWNlKC9edi8sIiIpKSsnPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InVwZGF0ZS1jYXJkLXByb2dyZXNzIiBpZD0idXBkYXRlLWNhcmQtcHJvZ3Jlc3MiIGFyaWEtaGlkZGVuPSJ0cnVlIj48ZGl2IGNsYXNzPSJ1cGRhdGUtY2FyZC1wcm9ncmVzcy10cmFjayI+PGRpdiBjbGFzcz0idXBkYXRlLWNhcmQtcHJvZ3Jlc3MtZmlsbCI+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0idXBkYXRlLWNhcmQtc3RhdHVzIGhpZGRlbiIgaWQ9InVwZGF0ZS1jYXJkLXN0YXR1cyI+PC9kaXY+PGRpdiBjbGFzcz0idXBkYXRlLWNhcmQtYWN0aW9ucyI+PGJ1dHRvbiBjbGFzcz0idXBkYXRlLWNhcmQtYWN0aW9uIHVwZGF0ZS1jYXJkLWFjdGlvbi1wcmltYXJ5IiBpZD0idXBkYXRlLWJ1YmJsZS1hY3Rpb24iIHR5cGU9ImJ1dHRvbiI+PHNwYW4gY2xhc3M9InVwZGF0ZS1jYXJkLWFjdGlvbi1sYWJlbCI+XHU3QUNCXHU1MzczXHU2NkY0XHU2NUIwPC9zcGFuPjwvYnV0dG9uPjwvZGl2PicsZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpKTt2YXIgYT17aWQ6bixlbDppfTtubi5wdXNoKGEpLEVhKCk7dmFyIHU9aS5xdWVyeVNlbGVjdG9yKCIudXBkYXRlLWNhcmQtY2xvc2UiKTt1JiYodS5vbmNsaWNrPWZ1bmN0aW9uKCl7d3Iobiksci5fdXBkYXRlQnViYmxlU2hvd249ITF9KTt2YXIgcz1pLnF1ZXJ5U2VsZWN0b3IoIiN1cGRhdGUtYnViYmxlLWFjdGlvbiIpLG89aS5xdWVyeVNlbGVjdG9yKCIudXBkYXRlLWNhcmQtYWN0aW9uLWxhYmVsIiksbD1pLnF1ZXJ5U2VsZWN0b3IoIiN1cGRhdGUtY2FyZC1zdWJ0aXRsZSIpLGM9aS5xdWVyeVNlbGVjdG9yKCIjdXBkYXRlLWNhcmQtc3RhdHVzIiksZj1pLnF1ZXJ5U2VsZWN0b3IoIiN1cGRhdGUtY2FyZC1wcm9ncmVzcyIpO2Z1bmN0aW9uIGQoZyxtKXtpZihjKXtpZihjLnRleHRDb250ZW50PWd8fCIiLGMuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiwiZXJyb3IiLCJzdWNjZXNzIiksIWcpe2MuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIik7cmV0dXJufW0mJmMuY2xhc3NMaXN0LmFkZChtKX19ZnVuY3Rpb24gdihnKXtsJiYobC50ZXh0Q29udGVudD1nfHwiIil9ZnVuY3Rpb24gaChnKXtmJiZmLmNsYXNzTGlzdC50b2dnbGUoImFjdGl2ZSIsISFnKX1zJiYocy5vbmNsaWNrPWZ1bmN0aW9uKCl7cy5kaXNhYmxlZD0hMCxpLmNsYXNzTGlzdC5hZGQoImlzLWJ1c3kiKSxvJiYoby50ZXh0Q29udGVudD0iXHU2NkY0XHU2NUIwXHU0RTJEXHUyMDI2IiksdigiXHU2QjYzXHU1NzI4XHU0RTBCXHU4RjdEXHU1RTc2XHU1Qjg5XHU4OEM1XHU2NUIwXHU3MjQ4XHU2NzJDXHUyMDI2IiksaCghMCksZCgiIiksZmV0Y2goIi9hcGkvdXBkYXRlIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKGcpe3JldHVybiBnLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24oZyl7aWYoZy5lcnJvcil7aCghMSksaS5jbGFzc0xpc3QucmVtb3ZlKCJpcy1idXN5IiksdigiXHU2NkY0XHU2NUIwXHU2NzJBXHU1QjhDXHU2MjEwIiksZChnLmVycm9yLCJlcnJvciIpLHMuZGlzYWJsZWQ9ITEsbyYmKG8udGV4dENvbnRlbnQ9Ilx1OTFDRFx1OEJENSIpO3JldHVybn1pZihpLmNsYXNzTGlzdC5hZGQoImlzLXN1Y2Nlc3MiKSx2KChnLm1lc3NhZ2V8fCJcdTY2RjRcdTY1QjBcdTVCOENcdTYyMTAiKSsiXHVGRjBDXHU2QjYzXHU1NzI4XHU5MUNEXHU1NDJGXHU2NzBEXHU1MkExXHUyMDI2IiksZCgiIiksbyYmKG8udGV4dENvbnRlbnQ9Ilx1NkI2M1x1NTcyOFx1OTFDRFx1NTQyRlx1MjAyNiIpLGcuZGV0YWNoZWRVcGRhdGUpe2RuKCk7cmV0dXJufWlmKGcucmVzdGFydFJlcXVpcmVkPT09ITEpe2goITEpLGkuY2xhc3NMaXN0LnJlbW92ZSgiaXMtYnVzeSIpLHMuZGlzYWJsZWQ9ITEsbyYmKG8udGV4dENvbnRlbnQ9Ilx1NURGMlx1NUI4Q1x1NjIxMCIpO3JldHVybn1fZihzLG8sbCxjLGYpfSkuY2F0Y2goZnVuY3Rpb24oKXtoKCExKSxpLmNsYXNzTGlzdC5yZW1vdmUoImlzLWJ1c3kiKSx2KCJcdTY2RjRcdTY1QjBcdTY3MkFcdTVCOENcdTYyMTAiKSxkKCJcdThCRjdcdTY4QzBcdTY3RTVcdTdGNTFcdTdFRENcdThGREVcdTYzQTVcdTU0MEVcdTkxQ0RcdThCRDUiLCJlcnJvciIpLHMuZGlzYWJsZWQ9ITEsbyYmKG8udGV4dENvbnRlbnQ9Ilx1OTFDRFx1OEJENSIpfSl9KX1mdW5jdGlvbiBfZihlLHQsbixpLGEpe2ZldGNoKCIvYXBpL3Jlc3RhcnQiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24odSl7cmV0dXJuIHUuanNvbigpfSkudGhlbihmdW5jdGlvbigpe2RuKCl9KS5jYXRjaChmdW5jdGlvbigpe2RuKCl9KX1mdW5jdGlvbiAkcyhlLHQpe2UmJihlLmRpc2FibGVkPSEwLGUudGV4dENvbnRlbnQ9Ilx1NkI2M1x1NTcyOFx1OTFDRFx1NTQyRlx1MjAyNiIpLHQmJih0LnRleHRDb250ZW50PSJcdTY3MERcdTUyQTFcdTZCNjNcdTU3MjhcdTkxQ0RcdTU0MkZcdTIwMjYiLHQuc3R5bGUuY29sb3I9InZhcigtLXRleHQtc2Vjb25kYXJ5KSIpLGZldGNoKCIvYXBpL3Jlc3RhcnQiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIG4uanNvbigpfSkudGhlbihmdW5jdGlvbigpe2RuKCl9KS5jYXRjaChmdW5jdGlvbigpe2RuKCl9KX1mdW5jdGlvbiBkbigpe2lmKCFkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdGFydC1vdmVybGF5Iikpe3ZhciBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2UuaWQ9InJlc3RhcnQtb3ZlcmxheSIsZS5jbGFzc05hbWU9InJlc3RhcnQtb3ZlcmxheSIsZS5pbm5lckhUTUw9JzxkaXYgY2xhc3M9InJlc3RhcnQtb3ZlcmxheS1jb250ZW50Ij48ZGl2IGNsYXNzPSJyZXN0YXJ0LXNwaW5uZXIiPjwvZGl2PjxkaXYgY2xhc3M9InJlc3RhcnQtdGl0bGUiPlx1NjcwRFx1NTJBMVx1NkI2M1x1NTcyOFx1OTFDRFx1NTQyRjwvZGl2PjxkaXYgY2xhc3M9InJlc3RhcnQtc3VidGl0bGUiPlx1N0EwRFx1NTQwRVx1NUMwNlx1ODFFQVx1NTJBOFx1NTIzN1x1NjVCMFx1OTg3NVx1OTc2Mlx1MjAyNjwvZGl2PjwvZGl2PicsZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlKTt2YXIgdD0wLG49MTgwLGk9c2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXtpZih0KyssZmV0Y2goIi9hcGkvY29uZmlnIix7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24odSl7dS5vayYmKGNsZWFySW50ZXJ2YWwoaSksbG9jYXRpb24ucmVsb2FkKCkpfSkuY2F0Y2goZnVuY3Rpb24oKXt9KSx0Pj1uKXtjbGVhckludGVydmFsKGkpO3ZhciBhPWUucXVlcnlTZWxlY3RvcigiLnJlc3RhcnQtc3VidGl0bGUiKTthJiYoYS5pbm5lckhUTUw9J1x1OTFDRFx1NTQyRlx1OEQ4NVx1NjVGNlx1RkYwQ1x1OEJGNyA8YSBocmVmPSJqYXZhc2NyaXB0OmxvY2F0aW9uLnJlbG9hZCgpIiBzdHlsZT0iY29sb3I6dmFyKC0tYWNjZW50KTt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lIj5cdTYyNEJcdTUyQThcdTUyMzdcdTY1QjA8L2E+IFx1OTg3NVx1OTc2Mlx1MzAwMicpfX0sMmUzKX19ZnVuY3Rpb24gTmYoZSx0KXtpZighZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3RhcnQtb3ZlcmxheSIpKXt2YXIgbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtuLmlkPSJyZXN0YXJ0LW92ZXJsYXkiLG4uY2xhc3NOYW1lPSJyZXN0YXJ0LW92ZXJsYXkiLG4uaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJyZXN0YXJ0LW92ZXJsYXktY29udGVudCI+PGRpdiBjbGFzcz0icmVzdGFydC1zcGlubmVyIj48L2Rpdj48ZGl2IGNsYXNzPSJyZXN0YXJ0LXRpdGxlIj5cdTgxRUFcdTUyQThcdTY2RjRcdTY1QjBcdTRFMkQ8L2Rpdj48ZGl2IGNsYXNzPSJyZXN0YXJ0LXN1YnRpdGxlIj4nK3AoZSkrIiBcdTIxOTIgIitwKHQpKyI8YnI+XHU2QjYzXHU1NzI4XHU0RTBCXHU4RjdEXHU1RTc2XHU1Qjg5XHU4OEM1XHU2NUIwXHU3MjQ4XHU2NzJDXHVGRjBDXHU3QTBEXHU1NDBFXHU1QzA2XHU4MUVBXHU1MkE4XHU5MUNEXHU1NDJGXHUyMDI2PC9kaXY+PC9kaXY+Iixkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKG4pfX12YXIgWHMsQ2EsU2U9e3JlY29yZGluZzohMSxjYW5jZWxpbmc6ITEsdHJhbnNjcmlwdDoiIixzdGFydFk6MH0samY9NjA7ZnVuY3Rpb24gUmYoZSl7U2UudHJhbnNjcmlwdD1lfHwiIjt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidm9pY2UtdHJhbnNjcmlwdC10ZXh0Iik7dCYmKHQudGV4dENvbnRlbnQ9U2UudHJhbnNjcmlwdCk7dmFyIG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInZvaWNlLXRyYW5zY3JpcHQtYnViYmxlIik7biYmbi5jbGFzc0xpc3QudG9nZ2xlKCJoYXMtdGV4dCIsISFTZS50cmFuc2NyaXB0KX1mdW5jdGlvbiBXZihlKXtpZihlKXtlLnByZXZlbnREZWZhdWx0KCksU2Uuc3RhcnRZPXR5cGVvZiBlLmNsaWVudFk9PSJudW1iZXIiP2UuY2xpZW50WTowO3RyeXtlLnBvaW50ZXJJZCE9PXZvaWQgMCYmZS50YXJnZXQmJmUudGFyZ2V0LnNldFBvaW50ZXJDYXB0dXJlJiZlLnRhcmdldC5zZXRQb2ludGVyQ2FwdHVyZShlLnBvaW50ZXJJZCl9Y2F0Y2h7fX1TZS5yZWNvcmRpbmc9ITAsU2UuY2FuY2VsaW5nPSExLFNlLnRyYW5zY3JpcHQ9IiI7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInZvaWNlLXJlY29yZC1idG4iKTtpZih0KXt0LmNsYXNzTGlzdC5hZGQoImlzLXJlY29yZGluZyIpO3ZhciBuPXQucXVlcnlTZWxlY3RvcigiLnZvaWNlLXJlY29yZC1sYWJlbCIpO24mJihuLnRleHRDb250ZW50PSJcdTY3N0VcdTVGMDAgXHU1M0QxXHU5MDAxIil9dmFyIGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInZvaWNlLXRyYW5zY3JpcHQtYnViYmxlIik7aSYmaS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iLCJpcy1jYW5jZWxpbmciLCJoYXMtdGV4dCIpLFJmKCIiKTt2YXIgYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidm9pY2UtdHJhbnNjcmlwdC1zdGF0dXMiKTthJiYoYS50ZXh0Q29udGVudD0iXHU3RjUxXHU5ODc1XHU3QUVGXHU2NjgyXHU0RTBEXHU2NTJGXHU2MzAxXHU4QkVEXHU5N0YzXHU4RjkzXHU1MTY1XHVGRjBDXHU4QkY3XHU0RjdGXHU3NTI4IEFwcCIpfWZ1bmN0aW9uIHpmKGUpe2lmKCEoIVNlLnJlY29yZGluZ3x8IWUpKXt2YXIgdD1TZS5zdGFydFktKHR5cGVvZiBlLmNsaWVudFk9PSJudW1iZXIiP2UuY2xpZW50WTpTZS5zdGFydFkpLG49dD5qZjtpZihuIT09U2UuY2FuY2VsaW5nKXtTZS5jYW5jZWxpbmc9bjt2YXIgaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidm9pY2UtdHJhbnNjcmlwdC1idWJibGUiKTtpJiZpLmNsYXNzTGlzdC50b2dnbGUoImlzLWNhbmNlbGluZyIsbik7dmFyIGE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInZvaWNlLXJlY29yZC1idG4iKSx1PWEmJmEucXVlcnlTZWxlY3RvcigiLnZvaWNlLXJlY29yZC1sYWJlbCIpO3UmJih1LnRleHRDb250ZW50PW4/Ilx1Njc3RVx1NUYwMCBcdTUzRDZcdTZEODgiOiJcdTY3N0VcdTVGMDAgXHU1M0QxXHU5MDAxIik7dmFyIHM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInZvaWNlLXRyYW5zY3JpcHQtc3RhdHVzIik7cyYmKHMudGV4dENvbnRlbnQ9bj8iXHU2NzdFXHU1RjAwXHU2MjRCXHU2MzA3IFx1NTNENlx1NkQ4OCI6Ilx1NkI2M1x1NTcyOFx1ODA0Nlx1NTQyQ1x1MjAyNlx1NEUwQVx1NkVEMVx1NTNENlx1NkQ4OCIpfX19ZnVuY3Rpb24gWnMoZSl7aWYoU2UucmVjb3JkaW5nKXtlJiZlLnByZXZlbnREZWZhdWx0KCksU2UucmVjb3JkaW5nPSExO3ZhciB0PSFTZS5jYW5jZWxpbmcmJiEhU2UudHJhbnNjcmlwdC50cmltKCksbj1TZS50cmFuc2NyaXB0O0JhKCksdCYmKFVmKG4pLERhKCExKSl9fWZ1bmN0aW9uIEJhKCl7U2UuY2FuY2VsaW5nPSExO3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ2b2ljZS1yZWNvcmQtYnRuIik7aWYoZSl7ZS5jbGFzc0xpc3QucmVtb3ZlKCJpcy1yZWNvcmRpbmciKTt2YXIgdD1lLnF1ZXJ5U2VsZWN0b3IoIi52b2ljZS1yZWNvcmQtbGFiZWwiKTt0JiYodC50ZXh0Q29udGVudD0iXHU2MzA5XHU0RjRGIFx1OEJGNFx1OEJERCIpfXZhciBuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ2b2ljZS10cmFuc2NyaXB0LWJ1YmJsZSIpO24mJm4uY2xhc3NMaXN0LmFkZCgiaGlkZGVuIil9ZnVuY3Rpb24gVWYoZSl7dmFyIHQ9KGV8fCIiKS50cmltKCk7aWYodCl7dmFyIG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0LWJveCIpO2lmKG4pe3ZhciBpPW4udmFsdWV8fCIiLGE9aT9pLnJlcGxhY2UoL1xzKyQvLCIiKSsiICIrdDp0O24udmFsdWU9YSxvdChhLCEwKSxOdChuKTt0cnl7bi5zZXRTZWxlY3Rpb25SYW5nZShhLmxlbmd0aCxhLmxlbmd0aCl9Y2F0Y2h7fX19fWZ1bmN0aW9uIERhKGUpe3ZhciB0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5pbnB1dC1jb21wb3NlciIpO2lmKHQpe3ZhciBuPXR5cGVvZiBlPT0iYm9vbGVhbiI/ZTohdC5jbGFzc0xpc3QuY29udGFpbnMoInZvaWNlLW1vZGUiKTtpZih0LmNsYXNzTGlzdC50b2dnbGUoInZvaWNlLW1vZGUiLG4pLCFuKXtTZS5yZWNvcmRpbmc9ITEsQmEoKTt2YXIgaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wdXQtYm94Iik7aWYoaSYmIXIudGVybWluYWxJbnRlcmFjdGl2ZSl0cnl7aS5mb2N1cyh7cHJldmVudFNjcm9sbDohMH0pfWNhdGNoe319fX1mdW5jdGlvbiBOdChlKXtpZihlKXt2YXIgdD0zNixuPTEyMCxpPUlyKCk7aWYoIWUudmFsdWV8fGUudmFsdWUudHJpbSgpPT09IiIpe2Uuc3R5bGUuaGVpZ2h0PXQrInB4IixlLnN0eWxlLm1pbkhlaWdodD10KyJweCIsZS5zdHlsZS5vdmVyZmxvd1k9aT8iYXV0byI6ImhpZGRlbiIsZS5zY3JvbGxUb3A9MCxIaShlKTtyZXR1cm59dmFyIGE9ZS5zdHlsZS5vdmVyZmxvd1k7ZS5zdHlsZS5vdmVyZmxvd1k9ImhpZGRlbiIsZS5zdHlsZS5oZWlnaHQ9dCsicHgiO3ZhciB1PWUuc2Nyb2xsSGVpZ2h0LHM9TWF0aC5tYXgodCxNYXRoLm1pbih1LG4pKSxvPXU+bjtlLnN0eWxlLmhlaWdodD1zKyJweCIsZS5zdHlsZS5taW5IZWlnaHQ9dCsicHgiLGUuc3R5bGUub3ZlcmZsb3dZPW98fGk/ImF1dG8iOiJoaWRkZW4iLG8/RmkoZSk6ZS5zY3JvbGxUb3A9MCxIaShlKX19ZnVuY3Rpb24gVmYoKXtpZighci5zZWxlY3RlZElkKXJldHVybiExO3ZhciBlPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbih0KXtyZXR1cm4gdC5pZD09PXIuc2VsZWN0ZWRJZH0pO3JldHVybiB1ZShlKT8hIShlLnN0cnVjdHVyZWRTdGF0ZSYmZS5zdHJ1Y3R1cmVkU3RhdGUuaW5GbGlnaHQpOiEhZSYmZS5zdGF0dXM9PT0icnVubmluZyJ9dmFyIEJyPSExO2Z1bmN0aW9uIGVvKGUpe3JldHVybiFlfHxlLmFyY2hpdmVkPyExOnVlKGUpPyEhKGUuc3RydWN0dXJlZFN0YXRlJiZlLnN0cnVjdHVyZWRTdGF0ZS5pbkZsaWdodCk6ZS5zdGF0dXM9PT0icnVubmluZyJ9ZnVuY3Rpb24ga2EoKXtyZXR1cm4gci5zZXNzaW9ucy5zb21lKGVvKX1mdW5jdGlvbiBLZigpe3ZhciBlPXIuc2Vzc2lvbnMuZmlsdGVyKGVvKTtpZihlLmxlbmd0aD09PTApcmV0dXJuIG51bGw7aWYoci5zZWxlY3RlZElkKXt2YXIgdD1lLmZpbmQoZnVuY3Rpb24obil7cmV0dXJuIG4uaWQ9PT1yLnNlbGVjdGVkSWR9KTtpZih0KXJldHVybiB0fXJldHVybiBlLnNvcnQoZnVuY3Rpb24obixpKXtyZXR1cm4oRGF0ZS5wYXJzZShpLnN0YXJ0ZWRBdCl8fDApLShEYXRlLnBhcnNlKG4uc3RhcnRlZEF0KXx8MCl9KSxlWzBdfWZ1bmN0aW9uIEpmKGUsdCl7dmFyIG49dHlwZW9mIGNyeXB0bzwidSImJmNyeXB0by5yYW5kb21VVUlEP2NyeXB0by5yYW5kb21VVUlEKCk6RGF0ZS5ub3coKS50b1N0cmluZygzNikrIi0iK01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnNsaWNlKDIsMTApLGk9QXJyYXkuaXNBcnJheShlLnF1ZXVlZE1lc3NhZ2VzKT9lLnF1ZXVlZE1lc3NhZ2VzLnNsaWNlKCk6W10sYT1pLnNsaWNlKCk7YS5wdXNoKHQpLCQoe2lkOmUuaWQscXVldWVkTWVzc2FnZXM6YX0pLGUuaWQ9PT1yLnNlbGVjdGVkSWQmJnN0KCk7dmFyIHU9ZS50aXRsZXx8JG4oZS5jb21tYW5kKXx8Ilx1NUY1M1x1NTI0RFx1NEYxQVx1OEJERCI7cmV0dXJuIGsoIlx1NURGMlx1NTJBMFx1NTE2NVx1MzAwQyIrdSsiXHUzMDBEXHU3Njg0XHU2MzkyXHU5NjFGXHVGRjBDXHU1NkRFXHU1OTBEXHU3RUQzXHU2NzVGXHU1NDBFXHU4MUVBXHU1MkE4XHU1M0QxXHU5MDAxXHVGRjA4XHU1NDJCXHU0RTBBXHU0RTBCXHU2NTg3XHVGRjA5XHUzMDAyIiwiaW5mbyIpLGZldGNoKCIvYXBpL3N0cnVjdHVyZWQtc2Vzc2lvbnMvIitlLmlkKyIvbWVzc2FnZXMiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KHtpbnB1dDp0LGlkZW1wb3RlbmN5S2V5Om59KX0pLnRoZW4oZnVuY3Rpb24ocyl7cmV0dXJuIHMub2s/cy5qc29uKCk6cy5qc29uKCkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm57ZXJyb3I6Ilx1OEJGN1x1NkM0Mlx1NTkzMVx1OEQyNSJ9fSkudGhlbihmdW5jdGlvbihvKXt0aHJvdyBuZXcgRXJyb3IobyYmby5lcnJvcnx8Ilx1NjVFMFx1NkNENVx1NjM5Mlx1OTYxRlx1NkQ4OFx1NjA2Rlx1MzAwMiIpfSl9KS50aGVuKGZ1bmN0aW9uKHMpe3MmJnMuaWQmJigkKHMpLHMuaWQ9PT1yLnNlbGVjdGVkSWQmJnN0KCkpfSkuY2F0Y2goZnVuY3Rpb24ocyl7JCh7aWQ6ZS5pZCxxdWV1ZWRNZXNzYWdlczppfSksZS5pZD09PXIuc2VsZWN0ZWRJZCYmc3QoKSxrKHMmJnMubWVzc2FnZXx8Ilx1NjM5Mlx1OTYxRlx1NTkzMVx1OEQyNVx1RkYwQ1x1OEJGN1x1OTFDRFx1OEJENVx1MzAwMiIsImVycm9yIil9KX1mdW5jdGlvbiB0byhlKXt2YXIgdD1LZigpO2lmKHQmJnVlKHQpKXtKZih0LGUpO3JldHVybn1pZihyLmNyb3NzU2Vzc2lvblF1ZXVlLmxlbmd0aD49MTApe2soIlx1NjM5Mlx1OTYxRlx1NkQ4OFx1NjA2Rlx1NURGMlx1NkVFMVx1RkYwOFx1NjcwMFx1NTkxQSAxMCBcdTY3NjFcdUZGMDlcdUZGMENcdThCRjdcdTdCNDlcdTVGODVcdTVGNTNcdTUyNERcdTRGMUFcdThCRERcdTVCOENcdTYyMTBcdTMwMDIiLCJ3YXJuaW5nIik7cmV0dXJufXZhciBuPSJjc3EtIitEYXRlLm5vdygpKyItIitNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zbGljZSgyLDgpO3IuY3Jvc3NTZXNzaW9uUXVldWUucHVzaCh7aWQ6bix0ZXh0OmUsY3dkOmV0KCksbW9kZTpyLmNoYXRNb2RlfHwibWFuYWdlZCIsdG9vbDp0dCgpLHF1ZXVlZEF0OkRhdGUubm93KCl9KSxYdCgpLHh0KCksaygiXHU1REYyXHU2MzkyXHU5NjFGXHVGRjBDXHU1QzA2XHU1NzI4XHU3QTdBXHU5NUYyXHU1NDBFXHU4MUVBXHU1MkE4XHU1RjAwXHU1OUNCXHU2NUIwXHU0RjFBXHU4QkREXHUzMDAyIiwiaW5mbyIpfWZ1bmN0aW9uIEdmKGUpe0JyfHwoQnI9ITAsZmV0Y2goIi9hcGkvY29tbWFuZHMiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KGh0KHtjb21tYW5kOmUudG9vbCxjd2Q6ZS5jd2QsbW9kZTplLm1vZGUsaW5pdGlhbElucHV0OmUudGV4dH0pKX0pLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIHQuanNvbigpfSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gQnI9ITEsdC5lcnJvcj8oayh0LmVycm9yLCJlcnJvciIpLHIuY3Jvc3NTZXNzaW9uUXVldWUudW5zaGlmdChlKSxYdCgpLHh0KCksbnVsbCk6dm4odCl9KS5jYXRjaChmdW5jdGlvbih0KXtCcj0hMSxrKHQmJnQubWVzc2FnZXx8Ilx1NjVFMFx1NkNENVx1NTQyRlx1NTJBOFx1NjM5Mlx1OTYxRlx1NEYxQVx1OEJERFx1MzAwMiIsImVycm9yIiksci5jcm9zc1Nlc3Npb25RdWV1ZS51bnNoaWZ0KGUpLFh0KCkseHQoKX0pKX1mdW5jdGlvbiBZZihlKXt2YXIgdD1yLmNyb3NzU2Vzc2lvblF1ZXVlLmZpbmRJbmRleChmdW5jdGlvbihpKXtyZXR1cm4gaS5pZD09PWV9KTtpZighKHQ8MCkpe3ZhciBuPXIuY3Jvc3NTZXNzaW9uUXVldWUuc3BsaWNlKHQsMSlbMF07WHQoKSx4dCgpLGZldGNoKCIvYXBpL2NvbW1hbmRzIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeShodCh7Y29tbWFuZDpuLnRvb2wsY3dkOm4uY3dkLG1vZGU6bi5tb2RlLGluaXRpYWxJbnB1dDpuLnRleHR9KSl9KS50aGVuKGZ1bmN0aW9uKGkpe3JldHVybiBpLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24oaSl7cmV0dXJuIGkuZXJyb3I/KGsoaS5lcnJvciwiZXJyb3IiKSxyLmNyb3NzU2Vzc2lvblF1ZXVlLnNwbGljZSh0LDAsbiksWHQoKSx4dCgpLG51bGwpOnZuKGkpfSkuY2F0Y2goZnVuY3Rpb24oaSl7ayhpJiZpLm1lc3NhZ2V8fCJcdTY1RTBcdTZDRDVcdTU0MkZcdTUyQThcdTYzOTJcdTk2MUZcdTRGMUFcdThCRERcdTMwMDIiLCJlcnJvciIpLHIuY3Jvc3NTZXNzaW9uUXVldWUuc3BsaWNlKHQsMCxuKSxYdCgpLHh0KCl9KX19ZnVuY3Rpb24gUWYoZSl7dmFyIHQ9ci5jcm9zc1Nlc3Npb25RdWV1ZS5maW5kSW5kZXgoZnVuY3Rpb24obil7cmV0dXJuIG4uaWQ9PT1lfSk7dDwwfHwoci5jcm9zc1Nlc3Npb25RdWV1ZS5zcGxpY2UodCwxKSxYdCgpLHh0KCksci5jcm9zc1Nlc3Npb25RdWV1ZS5sZW5ndGg9PT0wJiZrKCJcdTYzOTJcdTk2MUZcdTVERjJcdTZFMDVcdTdBN0FcdTMwMDIiLCJpbmZvIikpfWZ1bmN0aW9uIHZpKCl7aWYoci5jcm9zc1Nlc3Npb25RdWV1ZS5sZW5ndGghPT0wJiYha2EoKSYmIUJyKXt2YXIgZT1yLmNyb3NzU2Vzc2lvblF1ZXVlLnNoaWZ0KCk7eHQoKSxHZihlKX19ZnVuY3Rpb24gbm8oZSl7dmFyIHQ9TWF0aC5mbG9vcigoRGF0ZS5ub3coKS1lKS8xZTMpO2lmKHQ8NjApcmV0dXJuIHQrInMiO3ZhciBuPU1hdGguZmxvb3IodC82MCk7cmV0dXJuIG48NjA/bisibSI6TWF0aC5mbG9vcihuLzYwKSsiaCJ9ZnVuY3Rpb24geHQoKXt2YXIgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuY3Jvc3Mtc2Vzc2lvbi1xdWV1ZSIpLHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLmlucHV0LXBhbmVsIiksbj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuc3RydWN0dXJlZC1zdGF0dXMtYmFyIiksaT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuaW5wdXQtY29tcG9zZXIiKSxhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJibGFuay1jaGF0Iik7aWYoci5jcm9zc1Nlc3Npb25RdWV1ZS5sZW5ndGg9PT0wKXtlJiZlLnJlbW92ZSgpLFh0KCk7cmV0dXJufXZhciB1PXQmJiF0LmNsYXNzTGlzdC5jb250YWlucygiaGlkZGVuIikscz11P3Q6YSxvPXU/bnx8aTpudWxsO2lmKHMpe2UmJmUucGFyZW50Tm9kZSE9PXMmJihlLnJlbW92ZSgpLGU9bnVsbCksZT91JiZvJiZlLm5leHRTaWJsaW5nIT09byYmcy5pbnNlcnRCZWZvcmUoZSxvKTooZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxlLmNsYXNzTmFtZT0iY3Jvc3Mtc2Vzc2lvbi1xdWV1ZSIsbz9zLmluc2VydEJlZm9yZShlLG8pOnMuYXBwZW5kQ2hpbGQoZSkpO3ZhciBsPXIuY3Jvc3NTZXNzaW9uUXVldWUubGVuZ3RoLGM9ci5jcm9zc1Nlc3Npb25RdWV1ZS5tYXAoZnVuY3Rpb24oZCx2KXt2YXIgaD1kLnRleHQubGVuZ3RoPjYwP2QudGV4dC5zbGljZSgwLDYwKSsiXHUyMDI2IjpkLnRleHQsZz1ubyhkLnF1ZXVlZEF0KTtyZXR1cm4nPGRpdiBjbGFzcz0icXVldWUtaXRlbSIgZGF0YS1xdWV1ZS1pZD0iJytwKGQuaWQpKyciPjxzcGFuIGNsYXNzPSJxdWV1ZS1pdGVtLWRvdCI+PC9zcGFuPjxzcGFuIGNsYXNzPSJxdWV1ZS1pdGVtLXRleHQiIHRpdGxlPSInK3AoZC50ZXh0KSsnIj4nK3AoaCkrJzwvc3Bhbj48c3BhbiBjbGFzcz0icXVldWUtaXRlbS1hZ2UiPicrZysnPC9zcGFuPjxidXR0b24gY2xhc3M9InF1ZXVlLWl0ZW0tc2VuZC1ub3ciIGRhdGEtcXVldWUtaWQ9IicrcChkLmlkKSsnIiB0aXRsZT0iXHU3QUNCXHU1MzczXHU1M0QxXHU5MDAxIiB0eXBlPSJidXR0b24iPlx1NTNEMVx1OTAwMTwvYnV0dG9uPjxidXR0b24gY2xhc3M9InF1ZXVlLWl0ZW0tY2FuY2VsIiBkYXRhLXF1ZXVlLWlkPSInK3AoZC5pZCkrJyIgdGl0bGU9Ilx1NTNENlx1NkQ4OCIgdHlwZT0iYnV0dG9uIj5ceEQ3PC9idXR0b24+PC9kaXY+J30pLmpvaW4oIiIpLGY9bD4xPyc8ZGl2IGNsYXNzPSJxdWV1ZS1oZWFkZXIiPjxzcGFuIGNsYXNzPSJxdWV1ZS1oZWFkZXItbGFiZWwiPlx1NjM5Mlx1OTYxRiAnK2wrJyBcdTY3NjE8L3NwYW4+PGJ1dHRvbiBjbGFzcz0icXVldWUtaGVhZGVyLWNsZWFyIiBpZD0icXVldWUtY2xlYXItYWxsIiB0eXBlPSJidXR0b24iIHRpdGxlPSJcdTZFMDVcdTdBN0FcdTYzOTJcdTk2MUYiPlx1NkUwNVx1N0E3QTwvYnV0dG9uPjwvZGl2Pic6IiI7ZS5pbm5lckhUTUw9ZitjfX1zZXRJbnRlcnZhbChmdW5jdGlvbigpe2lmKHIuY3Jvc3NTZXNzaW9uUXVldWUubGVuZ3RoPjApe3ZhciBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5xdWV1ZS1pdGVtLWFnZSIpO3IuY3Jvc3NTZXNzaW9uUXVldWUuZm9yRWFjaChmdW5jdGlvbih0LG4pe2Vbbl0mJihlW25dLnRleHRDb250ZW50PW5vKHQucXVldWVkQXQpKX0pLHZpKCl9fSw1ZTMpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihlKXt2YXIgdD1lLnRhcmdldDtpZih0LmNsb3Nlc3QoIiNxdWV1ZS1jbGVhci1hbGwiKSl7ZS5wcmV2ZW50RGVmYXVsdCgpLHIuY3Jvc3NTZXNzaW9uUXVldWU9W10sWHQoKSx4dCgpLGsoIlx1NjM5Mlx1OTYxRlx1NURGMlx1NkUwNVx1N0E3QVx1MzAwMiIsImluZm8iKTtyZXR1cm59dmFyIG49dC5jbG9zZXN0KCIucXVldWUtaXRlbS1zZW5kLW5vdyIpO2lmKG4pe2UucHJldmVudERlZmF1bHQoKSxZZihuLmRhdGFzZXQucXVldWVJZCk7cmV0dXJufXZhciBpPXQuY2xvc2VzdCgiLnF1ZXVlLWl0ZW0tY2FuY2VsIik7aWYoaSl7ZS5wcmV2ZW50RGVmYXVsdCgpLFFmKGkuZGF0YXNldC5xdWV1ZUlkKTtyZXR1cm59fSk7ZnVuY3Rpb24gcm8oKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid2VsY29tZS1pbnB1dCIpLHQ9ZT9lLnZhbHVlLnRyaW0oKToiIjtpZih0KXtpZihrYSgpKXtlLnZhbHVlPSIiLHRvKHQpO3JldHVybn12YXIgbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9kby1wcm9ncmVzcyIpO24mJm4uY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksZS52YWx1ZT0iIixlLnBsYWNlaG9sZGVyPSJcdTZCNjNcdTU3MjhcdTU0MkZcdTUyQThcdTIwMjYiLGUuZGlzYWJsZWQ9ITA7dmFyIGk9ci5jaGF0TW9kZXx8Im1hbmFnZWQiLGE9ZXQoKSx1PXR0KCk7ZmV0Y2goIi9hcGkvY29tbWFuZHMiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KGh0KHtjb21tYW5kOnUscHJvdmlkZXI6dSxjd2Q6YSxtb2RlOmksaW5pdGlhbElucHV0OnR9KSl9KS50aGVuKGZ1bmN0aW9uKHMpe3JldHVybiBzLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24ocyl7aWYocy5lcnJvcil7ayhzLmVycm9yLCJlcnJvciIpLGUucGxhY2Vob2xkZXI9Ilx1OEY5M1x1NTE2NVx1NkQ4OFx1NjA2RiIsZS5kaXNhYmxlZD0hMTtyZXR1cm59ci5zZWxlY3RlZElkPXMuaWQsd2UoKSxyLmRyYWZ0c1tzLmlkXT0iIixBdCgpLCQocyksbWUoKSxEcihzLmlkKSxxbihzLmlkKSxobihzLmlkKS50aGVuKGZ1bmN0aW9uKCl7ZS5wbGFjZWhvbGRlcj0iXHU4RjkzXHU1MTY1XHU2RDg4XHU2MDZGIixlLmRpc2FibGVkPSExLGp0KCEwKX0pfSkuY2F0Y2goZnVuY3Rpb24ocyl7ayhzJiZzLm1lc3NhZ2V8fCh1PT09ImNvZGV4Ij8iXHU2NUUwXHU2Q0Q1XHU1NDJGXHU1MkE4IENvZGV4IFx1NEYxQVx1OEJERFx1MzAwMiI6Ilx1NjVFMFx1NkNENVx1NTQyRlx1NTJBOCBDbGF1ZGUgXHU0RjFBXHU4QkREXHUzMDAyIiksImVycm9yIiksZS5wbGFjZWhvbGRlcj0iXHU4RjkzXHU1MTY1XHU2RDg4XHU2MDZGIixlLmRpc2FibGVkPSExfSl9fWZ1bmN0aW9uICRmKGUpe2U9ZXx8e307dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndlbGNvbWUtaW5wdXQiKSxuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dC1ib3giKSxpPXQmJnQudmFsdWUudHJpbSgpP3QudmFsdWUudHJpbSgpOm4/bi52YWx1ZS50cmltKCk6IiI7aWYoci5zZWxlY3RlZElkKXtpJiZpbyhlKTtyZXR1cm59aWYoaSYma2EoKSl7biYmKG4udmFsdWU9IiIpLHQmJih0LnZhbHVlPSIiKSxIaShuKSx0byhpKTtyZXR1cm59dmFyIGE9ci5jaGF0TW9kZXx8Im1hbmFnZWQiLHU9ZXQoKSxzPXR0KCk7ZmV0Y2goIi9hcGkvY29tbWFuZHMiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KGh0KHtjb21tYW5kOnMscHJvdmlkZXI6cyxjd2Q6dSxtb2RlOmEsaW5pdGlhbElucHV0Oml8fHZvaWQgMH0pKX0pLnRoZW4oZnVuY3Rpb24obyl7cmV0dXJuIG8uanNvbigpfSkudGhlbihmdW5jdGlvbihvKXtyZXR1cm4gby5lcnJvcj8oayhvLmVycm9yLCJlcnJvciIpLG51bGwpOihyLnNlbGVjdGVkSWQ9by5pZCx3ZSgpLHIuZHJhZnRzW28uaWRdPSIiLEF0KCksbiYmKG4udmFsdWU9IiIpLHQmJih0LnZhbHVlPSIiKSwkKG8pLG1lKCksRHIoby5pZCkscW4oby5pZCksaG4oby5pZCkpfSkuY2F0Y2goZnVuY3Rpb24obyl7ayhvJiZvLm1lc3NhZ2V8fChzPT09ImNvZGV4Ij8iXHU2NUUwXHU2Q0Q1XHU1NDJGXHU1MkE4IENvZGV4IFx1NEYxQVx1OEJERFx1MzAwMiI6Ilx1NjVFMFx1NkNENVx1NTQyRlx1NTJBOCBDbGF1ZGUgXHU0RjFBXHU4QkREXHUzMDAyIiksImVycm9yIil9KX1mdW5jdGlvbiBEcihlKXt2YXIgdD1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24odil7cmV0dXJuIHYuaWQ9PT1lfSksbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYmxhbmstY2hhdCIpLGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLGE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoYXQtb3V0cHV0IiksdT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3RvcC1idXR0b24iKSxzPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXJtaW5hbC10aXRsZSIpLG89ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlcm1pbmFsLWluZm8iKSxsPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5zZXNzaW9uLXN1bW1hcnktdmFsdWUiKSxjPXVlKHQpO24mJm4uY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksaSYmaS5jbGFzc0xpc3QudG9nZ2xlKCJoaWRkZW4iLGMpLGEmJmEuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksYz9yLmN1cnJlbnRWaWV3PSJjaGF0IjpyLmN1cnJlbnRWaWV3PSJ0ZXJtaW5hbCI7dmFyIGY9dD8kbih0LmNvbW1hbmQpOiJXYW5kIixkPXQ/ZnIodCk6Ilx1NUYwMFx1NTlDQlx1NUJGOVx1OEJERCI7cyYmKHMudGV4dENvbnRlbnQ9ZiksbyYmKG8udGV4dENvbnRlbnQ9ZCksbCYmKGwudGV4dENvbnRlbnQ9ZiksY3x8ci50ZXJtaW5hbHx8Sm4oKSxxaSgpLGp0KCEwKSxjfHxaZSgidmlldy1zd2l0Y2giLHtmb3JjZVJlcGxheTohMH0pfWZ1bmN0aW9uIGlvKGUpe2U9ZXx8e307dmFyIHQ9ISFlLmludGVycnVwdCxuPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoImlzLXdhbmQtZW1iZWQtdGVybWluYWwiKTtpZihyLnRlcm1pbmFsSW50ZXJhY3RpdmUmJiFuKXJldHVybiBrKCJcdTdFQzhcdTdBRUZcdTRFQTRcdTRFOTJcdTZBMjFcdTVGMEZcdTVGMDBcdTU0MkZcdTY1RjZcdUZGMENcdThCRjdcdTc2RjRcdTYzQTVcdTU3MjhcdTdFQzhcdTdBRUZcdTRFMkRcdThGOTNcdTUxNjVcdTMwMDIiLCJpbmZvIiksUHJvbWlzZS5yZXNvbHZlKCk7dmFyIGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0LWJveCIpLGE9aT9pLnZhbHVlOiIiLHU9U3QoKSxzPXIucGVuZGluZ0F0dGFjaG1lbnRzLmxlbmd0aD4wO2lmKGF8fHMpe3ZhciBvPXMmJnIuc2VsZWN0ZWRJZD9sZyhyLnNlbGVjdGVkSWQpLmNhdGNoKGZ1bmN0aW9uKGwpe2soIlx1OTY0NFx1NEVGNlx1NEUwQVx1NEYyMFx1NTkzMVx1OEQyNTogIisobCYmbC5tZXNzYWdlfHxsKSwiZXJyb3IiKTt2YXIgYz1sIGluc3RhbmNlb2YgRXJyb3I/bDpuZXcgRXJyb3IoU3RyaW5nKGwpKTt0aHJvdyBjLl9fd2FuZFRvYXN0ZWQ9ITAsY30pOlByb21pc2UucmVzb2x2ZShbXSk7cmV0dXJuIG8udGhlbihmdW5jdGlvbihsKXt2YXIgYz1jZyhsKSxmPWMrKGF8fChsLmxlbmd0aD8iXHU4QkY3XHU2N0U1XHU3NzBCXHU5NjQ0XHU0RUY2XHUzMDAyIjoiIikpO2wubGVuZ3RoJiZvZygpO3ZhciBkPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b2RvLXByb2dyZXNzIik7aWYoZCYmZC5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSx1ZSh1KSlyZXR1cm4gWGYoZixpLHUse2ludGVycnVwdDp0fSk7dmFyIHY9bXAodSxmKSxoPSFyLndzQ29ubmVjdGVkO3JldHVybiBoPyhicCh2KSxpJiYoaS52YWx1ZT0iIixOdChpKSksb3QoIiIpLFByb21pc2UucmVzb2x2ZSgpKTp2cCh1KS50aGVuKGZ1bmN0aW9uKGcpe2lmKCFnKXJldHVybiBudWxsO3ZhciBtPXIuY3VycmVudFZpZXc7aWYoZyYmZy5wcm92aWRlcj09PSJjb2RleCImJnIuc2VsZWN0ZWRJZCE9PWcuaWQpdGhyb3cgbmV3IEVycm9yKCJDb2RleCBzZXNzaW9uIGNoYW5nZWQgYmVmb3JlIGlucHV0IHNlbmQuIik7cmV0dXJuIEF1KCksZ3AodiwiZW50ZXJfdGV4dCIsMzAsbSkudGhlbihmdW5jdGlvbigpe2kmJmkudmFsdWU9PT1hJiYoaS52YWx1ZT0iIixOdChpKSksb3QoIiIpfSl9KS5jYXRjaChmdW5jdGlvbihnKXt0aHJvdyBrKGNvKGcpLCJlcnJvciIpLGcmJihnLl9fd2FuZFRvYXN0ZWQ9ITApLGd9KX0pLmNhdGNoKGZ1bmN0aW9uKGwpe3Rocm93IGwmJmwuX193YW5kVG9hc3RlZHx8ayhjbyhsKSwiZXJyb3IiKSxsfSl9cmV0dXJuIFByb21pc2UucmVzb2x2ZSgpfXZhciBhbz17fSx1bz0zNTA7ZnVuY3Rpb24gWGYoZSx0LG4saSl7aT1pfHx7fTt2YXIgYT0hIWkuaW50ZXJydXB0O2lmKCFyLnNlbGVjdGVkSWR8fCFlKXJldHVybiBQcm9taXNlLnJlc29sdmUoKTtpZighbilyZXR1cm4gaygiXHU0RjFBXHU4QkREXHU0RTBEXHU1QjU4XHU1NzI4XHVGRjBDXHU4QkY3XHU5MUNEXHU2NUIwXHU5MDA5XHU2MkU5XHU2MjE2XHU2NUIwXHU1RUZBXHU0RjFBXHU4QkREXHUzMDAyIiwiZXJyb3IiKSxQcm9taXNlLnJlc29sdmUoKTt2YXIgdT1EYXRlLm5vdygpLHM9YW9bbi5pZF18fDA7aWYodS1zPHVvKXJldHVybiBjb25zb2xlLmxvZygiW3dhbmRdIHBvc3RTdHJ1Y3R1cmVkSW5wdXQ6IGR1cGxpY2F0ZSBzdWJtaXQgKHdpdGhpbiAiK3VvKyJtcykgaWdub3JlZCBmb3Igc2Vzc2lvbiIsbi5pZCksUHJvbWlzZS5yZXNvbHZlKCk7YW9bbi5pZF09dTt2YXIgbz0hIShuLnN0cnVjdHVyZWRTdGF0ZSYmbi5zdHJ1Y3R1cmVkU3RhdGUuaW5GbGlnaHQmJm4uc3RhdHVzPT09InJ1bm5pbmciKSxsPW8mJmEsYz1vJiYhYSxmPWxyKEFycmF5LmlzQXJyYXkobi5tZXNzYWdlcyk/bi5tZXNzYWdlcy5zbGljZSgpOltdKSxkO2lmKGMpe3ZhciB2PUFycmF5LmlzQXJyYXkobi5xdWV1ZWRNZXNzYWdlcyk/bi5xdWV1ZWRNZXNzYWdlcy5zbGljZSgpOltdO3YucHVzaChlKSxkPXtpZDpuLmlkLHF1ZXVlZE1lc3NhZ2VzOnZ9LCQoZCk7dmFyIGg9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKEUpe3JldHVybiBFLmlkPT09bi5pZH0pfHxuO3IuY3VycmVudE1lc3NhZ2VzPVJlKGgsbnQoaCxoLm91dHB1dCwhMSkpLFluKCJcdTVERjJcdTUyQTBcdTUxNjVcdTYzOTJcdTk2MUZcdTIwMjYiKSxXZSghMCksZm4oKSxrKHYubGVuZ3RoPjE/Ilx1NURGMlx1NTJBMFx1NTE2NVx1NjM5Mlx1OTYxRlx1RkYwOFx1NTE3MSAiK3YubGVuZ3RoKyIgXHU2NzYxXHU3QjQ5XHU1Rjg1XHVGRjA5IjoiXHU1REYyXHU1MkEwXHU1MTY1XHU2MzkyXHU5NjFGXHVGRjBDXHU3QjQ5XHU1RjUzXHU1MjREXHU1NkRFXHU1OTBEXHU1QjhDXHU2MjEwXHU0RjFBXHU4MUVBXHU1MkE4XHU1M0QxXHU5MDAxXHUzMDAyIiwiaW5mbyIpfWVsc2V7dmFyIGc9e3JvbGU6InVzZXIiLGNvbnRlbnQ6W3t0eXBlOiJ0ZXh0Iix0ZXh0OmV9XX07Zi5wdXNoKGcpO3ZhciBtPU9iamVjdC5hc3NpZ24oe30sbi5zdHJ1Y3R1cmVkU3RhdGV8fHt9LHtpbkZsaWdodDohMH0pOyQoe2lkOm4uaWQsc3RhdHVzOiJydW5uaW5nIixtZXNzYWdlczpmLHN0cnVjdHVyZWRTdGF0ZTptfSksci5jdXJyZW50TWVzc2FnZXM9UmUoT2JqZWN0LmFzc2lnbih7fSxuLHtzdGF0dXM6InJ1bm5pbmciLG1lc3NhZ2VzOmYsc3RydWN0dXJlZFN0YXRlOm19KSxmKSxZbihsPyJcdTVERjJcdTRFMkRcdTY1QURcdUZGMENcdTZCNjNcdTU3MjhcdTU5MDRcdTc0MDZcdTY1QjBcdTZEODhcdTYwNkZcdTIwMjYiOiJcdTYwMURcdTgwMDNcdTRFMkRcdTIwMjYiKSxBdSgpLFdlKCEwKSxsJiZrKCJcdTVERjJcdTRFMkRcdTY1QURcdTRFMEFcdTRFMDBcdTY3NjFcdTU2REVcdTU5MERcdUZGMENcdTZCNjNcdTU3MjhcdTU5MDRcdTc0MDZcdTY1QjBcdTZEODhcdTYwNkZcdTIwMjYiLCJpbmZvIil9dCYmKHQudmFsdWU9IiIsTnQodCkpLG90KCIiKTt2YXIgeT1yLnF1ZXVlRXBvY2gsdz10eXBlb2YgY3J5cHRvPCJ1IiYmY3J5cHRvLnJhbmRvbVVVSUQ/Y3J5cHRvLnJhbmRvbVVVSUQoKTpEYXRlLm5vdygpLnRvU3RyaW5nKDM2KSsiLSIrTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc2xpY2UoMiwxMCk7cmV0dXJuIGZldGNoKCIvYXBpL3N0cnVjdHVyZWQtc2Vzc2lvbnMvIituLmlkKyIvbWVzc2FnZXMiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KHtpbnB1dDplLGludGVycnVwdDpsfHx2b2lkIDAsaWRlbXBvdGVuY3lLZXk6d30pfSkudGhlbihmdW5jdGlvbihFKXtyZXR1cm4gRS5vaz9FLmpzb24oKTpFLmpzb24oKS5jYXRjaChmdW5jdGlvbigpe3JldHVybntlcnJvcjoiXHU4QkY3XHU2QzQyXHU1OTMxXHU4RDI1In19KS50aGVuKGZ1bmN0aW9uKEIpe3ZhciBGPW5ldyBFcnJvcihCJiZCLmVycm9yfHwiXHU2NUUwXHU2Q0Q1XHU1M0QxXHU5MDAxXHU3RUQzXHU2Nzg0XHU1MzE2XHU2RDg4XHU2MDZGXHUzMDAyIik7dGhyb3cgRi5lcnJvckNvZGU9QiYmQi5lcnJvckNvZGUsRi5odHRwU3RhdHVzPUUuc3RhdHVzLEZ9KX0pLnRoZW4oZnVuY3Rpb24oRSl7aWYoRSYmRS5lcnJvcil0aHJvdyBuZXcgRXJyb3IoRS5lcnJvcik7aWYoRSYmRS5pZCYmKHIucXVldWVFcG9jaD55JiZFLnF1ZXVlZE1lc3NhZ2VzJiZkZWxldGUgRS5xdWV1ZWRNZXNzYWdlcywkKEUpLEUuaWQ9PT1yLnNlbGVjdGVkSWQpKXt2YXIgQj1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oRil7cmV0dXJuIEYuaWQ9PT1FLmlkfSl8fEU7ci5jdXJyZW50TWVzc2FnZXM9UmUoQixudChCLEUub3V0cHV0LCExKSksV2UoITApLGZuKCl9fSkuY2F0Y2goZnVuY3Rpb24oRSl7aWYoRSYmRS5lcnJvckNvZGU9PT0iZHVwbGljYXRlX2lkZW1wb3RlbmN5X2tleSIpe2soRS5tZXNzYWdlfHwiXHU2OEMwXHU2RDRCXHU1MjMwXHU5MUNEXHU1OTBEXHU1M0QxXHU5MDAxXHVGRjBDXHU1REYyXHU2MkU2XHU2MjJBXHUzMDAyIiwid2FybmluZyIpLFluKCJFbnRlciBcdTUzRDFcdTkwMDEgXHhCNyBTaGlmdCtFbnRlciBcdTYzNjJcdTg4NEMiKTtyZXR1cm59aWYoYyl7dmFyIEI9QXJyYXkuaXNBcnJheShuLnF1ZXVlZE1lc3NhZ2VzKT9uLnF1ZXVlZE1lc3NhZ2VzLnNsaWNlKCk6W107aWYoJCh7aWQ6bi5pZCxxdWV1ZWRNZXNzYWdlczpCfSksbi5pZD09PXIuc2VsZWN0ZWRJZCl7dmFyIEY9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKFYpe3JldHVybiBWLmlkPT09bi5pZH0pfHxuO3IuY3VycmVudE1lc3NhZ2VzPVJlKEYsbnQoRixGLm91dHB1dCwhMSkpLFdlKCEwKSxmbigpfX1lbHNle3ZhciB4PWYuc2xpY2UoMCwtMSk7JCh7aWQ6bi5pZCxzdGF0dXM6bi5zdGF0dXMsbWVzc2FnZXM6eCxzdHJ1Y3R1cmVkU3RhdGU6T2JqZWN0LmFzc2lnbih7fSxuLnN0cnVjdHVyZWRTdGF0ZXx8e30se2luRmxpZ2h0OiExfSl9KSxuLmlkPT09ci5zZWxlY3RlZElkJiYoci5jdXJyZW50TWVzc2FnZXM9UmUoT2JqZWN0LmFzc2lnbih7fSxuLHttZXNzYWdlczp4LHN0cnVjdHVyZWRTdGF0ZTpPYmplY3QuYXNzaWduKHt9LG4uc3RydWN0dXJlZFN0YXRlfHx7fSx7aW5GbGlnaHQ6ITF9KX0pLHgpLFdlKCEwKSl9dmFyIFM9RSYmRS5tZXNzYWdlfHwiIixfPVM9PT0iRmFpbGVkIHRvIGZldGNoInx8Uz09PSJOZXR3b3JrRXJyb3Igd2hlbiBhdHRlbXB0aW5nIHRvIGZldGNoIHJlc291cmNlLiJ8fFM9PT0iTG9hZCBmYWlsZWQifHwvYWJvcnRlZHxhYm9ydGVycm9yfG5ldHdvcmtlcnJvcnxmYWlsZWQgdG8gZmV0Y2gvaS50ZXN0KFMpO198fGsoRSYmRS5tZXNzYWdlfHwiXHU2NUUwXHU2Q0Q1XHU1M0QxXHU5MDAxXHU3RUQzXHU2Nzg0XHU1MzE2XHU2RDg4XHU2MDZGXHUzMDAyIiwiZXJyb3IiKSxZbigiRW50ZXIgXHU1M0QxXHU5MDAxIFx4QjcgU2hpZnQrRW50ZXIgXHU2MzYyXHU4ODRDIil9KX1mdW5jdGlvbiBZbihlKXt2YXIgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuaW5wdXQtaGludCIpO3QmJih0LnRleHRDb250ZW50PWUpfWZ1bmN0aW9uIGZuKCl7c3QoKX12YXIgWmY9MTAsc289MjY7ZnVuY3Rpb24gZXAoZSl7aWYodHlwZW9mIGUhPSJzdHJpbmciKXJldHVybiIiO3ZhciB0PWUucmVwbGFjZSgvXHMrL2csIiAiKS50cmltKCk7cmV0dXJuIHQubGVuZ3RoPD1zbz90OnQuc2xpY2UoMCxzbykrIlx1MjAyNiJ9ZnVuY3Rpb24gdHAoKXtyZXR1cm4hIXIucXVldWVCYXJFeHBhbmRlZH1mdW5jdGlvbiBucChlKXtpZighIXIucXVldWVCYXJFeHBhbmRlZCE9ISFlKXtyLnF1ZXVlQmFyRXhwYW5kZWQ9ISFlO3ZhciB0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5xdWV1ZS1iYXIiKTt0JiZ0LmNsYXNzTGlzdC50b2dnbGUoImV4cGFuZGVkIiwhIWUpfX1mdW5jdGlvbiBycChlLHQsbil7dmFyIGk9ZS5sZW5ndGgsYT0icXVldWUtYmFyIjtuJiYoYSs9IiBxdWV1ZS1iYXItY2FwYWNpdHkiKSx0JiYoYSs9IiBxdWV1ZS1iYXItaW5mbGlnaHQiKTtmb3IodmFyIHU9dD8iXHU0RTJEXHU2NUFEXHU1RjUzXHU1MjREXHU1NkRFXHU1OTBEXHVGRjBDXHU3QUNCXHU1MzczXHU1M0QxXHU5MDAxXHU4RkQ5XHU2NzYxIjoiXHU3QUNCXHU1MzczXHU1M0QxXHU5MDAxXHU4RkQ5XHU2NzYxIixzPSIiLG89MDtvPGk7bysrKXt2YXIgbD1lW29dPT1udWxsPyIiOlN0cmluZyhlW29dKSxjPWVwKGwpLGY9bCsiXHVGRjA4XHU2MzA5XHU0RjRGXHU1M0VGXHU2MkQ2XHU1MkE4XHU4QzAzXHU1RThGXHVGRjA5IjtzKz0nPGxpIGNsYXNzPSJxdWV1ZS1iYXItaXRlbSIgZGF0YS1pbmRleD0iJytvKyciIGRhdGEtYWN0aW9uPSJkcmFnIiB0aXRsZT0iJytwKGYpKyciPjxzcGFuIGNsYXNzPSJxdWV1ZS1iYXItaXRlbS1pbmRleCIgYXJpYS1oaWRkZW49InRydWUiPicrKG8rMSkrJzwvc3Bhbj48c3BhbiBjbGFzcz0icXVldWUtYmFyLWl0ZW0tdGV4dCI+JytwKGMpKyc8L3NwYW4+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJxdWV1ZS1iYXItaXRlbS1wcm9tb3RlIiBkYXRhLWFjdGlvbj0icHJvbW90ZS1pdGVtIiB0aXRsZT0iJytwKHUpKyciIGFyaWEtbGFiZWw9Ilx1N0FDQlx1NTM3M1x1NTNEMVx1OTAwMVx1N0IyQyAnKyhvKzEpKycgXHU2NzYxIj48c3ZnIHdpZHRoPSIxMSIgaGVpZ2h0PSIxMSIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJjdXJyZW50Q29sb3IiIGFyaWEtaGlkZGVuPSJ0cnVlIj48cGF0aCBkPSJNMTMgMiBMNCAxNCBMMTEgMTQgTDEwIDIyIEwyMCA5IEwxMyA5IFoiLz48L3N2Zz48L2J1dHRvbj48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InF1ZXVlLWJhci1pdGVtLWRlbGV0ZSIgZGF0YS1hY3Rpb249ImRlbGV0ZSIgYXJpYS1sYWJlbD0iXHU1MjIwXHU5NjY0XHU3QjJDICcrKG8rMSkrJyBcdTY3NjFcdTYzOTJcdTk2MUZcdTZEODhcdTYwNkYiIHRpdGxlPSJcdTUyMjBcdTk2NjQiPjxzdmcgd2lkdGg9IjExIiBoZWlnaHQ9IjExIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIuNiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PGxpbmUgeDE9IjYiIHkxPSI2IiB4Mj0iMTgiIHkyPSIxOCIvPjxsaW5lIHgxPSI2IiB5MT0iMTgiIHgyPSIxOCIgeTI9IjYiLz48L3N2Zz48L2J1dHRvbj48L2xpPid9dmFyIGQ9IiI7cmV0dXJuIGk+PTImJihkPSc8ZGl2IGNsYXNzPSJxdWV1ZS1iYXItaGVhZCI+PHNwYW4gY2xhc3M9InF1ZXVlLWJhci1oZWFkLWNvdW50Ij4nK2krJyBcdTY3NjFcdTYzOTJcdTk2MUY8L3NwYW4+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJxdWV1ZS1iYXItY2xlYXItYWxsIiBkYXRhLWFjdGlvbj0iY2xlYXItYWxsIiB0aXRsZT0iXHU2RTA1XHU3QTdBXHU1MTY4XHU5MEU4XHU2MzkyXHU5NjFGIiBhcmlhLWxhYmVsPSJcdTZFMDVcdTdBN0FcdTUxNjhcdTkwRTggJytpKycgXHU2NzYxXHU2MzkyXHU5NjFGXHU2RDg4XHU2MDZGIj5cdTZFMDVcdTdBN0E8L2J1dHRvbj48L2Rpdj4nKSwnPGRpdiBjbGFzcz0iJythKyciIGRhdGEtcXVldWUtYmFyPSIxIiB0aXRsZT0iXHU2MzkyXHU5NjFGICcraSsnIFx1Njc2MVx1RkYwOFx1NjMwOVx1NEY0Rlx1NkMxNFx1NkNFMVx1NTNFRlx1OEMwM1x1NUU4Rlx1RkYwOSI+JytkKyc8b2wgY2xhc3M9InF1ZXVlLWJhci1saXN0IiBkYXRhLXF1ZXVlLWxpc3Q9IjEiPicrcysiPC9vbD48L2Rpdj4ifWZ1bmN0aW9uIHN0KCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInF1ZXVlLWJhci1ob3N0Iik7aWYoZSl7dmFyIHQ9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKHMpe3JldHVybiBzLmlkPT09ci5zZWxlY3RlZElkfSksbj10JiZ0LnNlc3Npb25LaW5kPT09InN0cnVjdHVyZWQiLGk9bj9ZaSh0KTpbXTtpZihpPUFycmF5LmlzQXJyYXkoaSk/aTpbXSwhbnx8aS5sZW5ndGg9PT0wKXtlLmhpZGRlbj0hMCxlLmlubmVySFRNTD0iIixyLnF1ZXVlQmFyRXhwYW5kZWQ9ITE7cmV0dXJufWlmKCFyLnF1ZXVlQmFyRHJhZyl7ZS5oaWRkZW49ITE7dmFyIGE9ISEodC5zdHJ1Y3R1cmVkU3RhdGUmJnQuc3RydWN0dXJlZFN0YXRlLmluRmxpZ2h0JiZ0LnN0YXR1cz09PSJydW5uaW5nIiksdT1pLmxlbmd0aD49WmY7ZS5pbm5lckhUTUw9cnAoaSxhLHUpfX19ZnVuY3Rpb24gbWkoZSx0KXskKHtpZDplLmlkLHF1ZXVlZE1lc3NhZ2VzOnR9KTt2YXIgbj1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oaSl7cmV0dXJuIGkuaWQ9PT1lLmlkfSl8fGU7ci5jdXJyZW50TWVzc2FnZXM9UmUobixudChuLG4ub3V0cHV0LCExKSksV2UoITApLHN0KCl9ZnVuY3Rpb24gaXAoZSl7dmFyIHQ9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKHMpe3JldHVybiBzLmlkPT09ci5zZWxlY3RlZElkfSk7aWYodCl7dmFyIG49QXJyYXkuaXNBcnJheSh0LnF1ZXVlZE1lc3NhZ2VzKT90LnF1ZXVlZE1lc3NhZ2VzLnNsaWNlKCk6W107aWYoIShlPDB8fGU+PW4ubGVuZ3RoKSl7dmFyIGk9bi5zbGljZSgpLGE9bi5zbGljZSgwLGUpLmNvbmNhdChuLnNsaWNlKGUrMSkpOyQoe2lkOnQuaWQscXVldWVkTWVzc2FnZXM6YX0pO3ZhciB1PXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihzKXtyZXR1cm4gcy5pZD09PXQuaWR9KXx8dDtyLmN1cnJlbnRNZXNzYWdlcz1SZSh1LG50KHUsdS5vdXRwdXQsITEpKSxXZSghMCksc3QoKSxmZXRjaCgiL2FwaS9zdHJ1Y3R1cmVkLXNlc3Npb25zLyIrdC5pZCsiL3F1ZXVlZC8iK2Use21ldGhvZDoiREVMRVRFIixjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihzKXtpZighcy5vaylyZXR1cm4gcy5qc29uKCkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm57fX0pLnRoZW4oZnVuY3Rpb24obyl7dGhyb3cgbmV3IEVycm9yKG8mJm8uZXJyb3J8fCJcdTUyMjBcdTk2NjRcdTU5MzFcdThEMjUiKX0pfSkuY2F0Y2goZnVuY3Rpb24ocyl7bWkodCxpKSxrKHMmJnMubWVzc2FnZXx8Ilx1NTIyMFx1OTY2NFx1NjM5Mlx1OTYxRlx1NkQ4OFx1NjA2Rlx1NTkzMVx1OEQyNVx1MzAwMiIsImVycm9yIil9KX19fWZ1bmN0aW9uIGFwKCl7dmFyIGU9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGkpe3JldHVybiBpLmlkPT09ci5zZWxlY3RlZElkfSk7aWYoZSl7dmFyIHQ9QXJyYXkuaXNBcnJheShlLnF1ZXVlZE1lc3NhZ2VzKT9lLnF1ZXVlZE1lc3NhZ2VzLnNsaWNlKCk6W107aWYodC5sZW5ndGghPT0wKXtyLnF1ZXVlQmFyRXhwYW5kZWQ9ITEsJCh7aWQ6ZS5pZCxxdWV1ZWRNZXNzYWdlczpbXX0pO3ZhciBuPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihpKXtyZXR1cm4gaS5pZD09PWUuaWR9KXx8ZTtyLmN1cnJlbnRNZXNzYWdlcz1SZShuLG50KG4sbi5vdXRwdXQsITEpKSxXZSghMCksc3QoKSxmZXRjaCgiL2FwaS9zdHJ1Y3R1cmVkLXNlc3Npb25zLyIrZS5pZCsiL3F1ZXVlZCIse21ldGhvZDoiREVMRVRFIixjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihpKXtpZighaS5vaylyZXR1cm4gaS5qc29uKCkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm57fX0pLnRoZW4oZnVuY3Rpb24oYSl7dGhyb3cgbmV3IEVycm9yKGEmJmEuZXJyb3J8fCJcdTZFMDVcdTdBN0FcdTU5MzFcdThEMjUiKX0pO2soIlx1NURGMlx1NkUwNVx1N0E3QSAiK3QubGVuZ3RoKyIgXHU2NzYxXHU2MzkyXHU5NjFGXHU2RDg4XHU2MDZGXHUzMDAyIiwiaW5mbyIpfSkuY2F0Y2goZnVuY3Rpb24oaSl7bWkoZSx0KSxrKGkmJmkubWVzc2FnZXx8Ilx1NkUwNVx1N0E3QVx1NjM5Mlx1OTYxRlx1NkQ4OFx1NjA2Rlx1NTkzMVx1OEQyNVx1MzAwMiIsImVycm9yIil9KX19fWZ1bmN0aW9uIHVwKGUpe2lmKCFyLnF1ZXVlQmFyUHJvbW90aW5nKXt2YXIgdD1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24obCl7cmV0dXJuIGwuaWQ9PT1yLnNlbGVjdGVkSWR9KTtpZih0KXt2YXIgbj1BcnJheS5pc0FycmF5KHQucXVldWVkTWVzc2FnZXMpP3QucXVldWVkTWVzc2FnZXMuc2xpY2UoKTpbXTtpZighKGU8MHx8ZT49bi5sZW5ndGgpKXt2YXIgaT1uW2VdLGE9bi5zbGljZSgwLGUpLmNvbmNhdChuLnNsaWNlKGUrMSkpLHU9bi5zbGljZSgpLHM9ISEodC5zdHJ1Y3R1cmVkU3RhdGUmJnQuc3RydWN0dXJlZFN0YXRlLmluRmxpZ2h0JiZ0LnN0YXR1cz09PSJydW5uaW5nIik7ci5xdWV1ZUJhclByb21vdGluZz0hMCxhLmxlbmd0aD09PTAmJihyLnF1ZXVlQmFyRXhwYW5kZWQ9ITEpLCQoe2lkOnQuaWQscXVldWVkTWVzc2FnZXM6YX0pO3ZhciBvPXR5cGVvZiBjcnlwdG88InUiJiZjcnlwdG8ucmFuZG9tVVVJRD9jcnlwdG8ucmFuZG9tVVVJRCgpOkRhdGUubm93KCkudG9TdHJpbmcoMzYpKyItIitNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zbGljZSgyLDEwKTtrKHM/Ilx1NURGMlx1OEJGN1x1NkM0Mlx1NEUyRFx1NjVBRFx1NUY1M1x1NTI0RFx1NTZERVx1NTkwRFx1RkYwQ1x1N0FDQlx1NTM3M1x1NTNEMVx1OTAwMVx1OEZEOVx1Njc2MVx1MzAwMiI6Ilx1NURGMlx1N0FDQlx1NTM3M1x1NTNEMVx1OTAwMVx1OEZEOVx1Njc2MVx1NkQ4OFx1NjA2Rlx1MzAwMiIsImluZm8iKSxmZXRjaCgiL2FwaS9zdHJ1Y3R1cmVkLXNlc3Npb25zLyIrdC5pZCsiL3F1ZXVlZC8iK2UrIi9wcm9tb3RlIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeSh7ZXhwZWN0ZWRUZXh0OmksaWRlbXBvdGVuY3lLZXk6b30pfSkudGhlbihmdW5jdGlvbihsKXtyZXR1cm4gbC5vaz9sLmpzb24oKTpsLmpzb24oKS5jYXRjaChmdW5jdGlvbigpe3JldHVybnt9fSkudGhlbihmdW5jdGlvbihjKXt0aHJvdyBuZXcgRXJyb3IoYyYmYy5lcnJvcnx8Ilx1N0FDQlx1NTM3M1x1NTNEMVx1OTAwMVx1NTkzMVx1OEQyNSIpfSl9KS50aGVuKGZ1bmN0aW9uKGwpe2lmKGwmJmwuaWQmJigkKGwpLGwuaWQ9PT1yLnNlbGVjdGVkSWQpKXt2YXIgYz1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oZil7cmV0dXJuIGYuaWQ9PT1sLmlkfSl8fGw7ci5jdXJyZW50TWVzc2FnZXM9UmUoYyxudChjLGwub3V0cHV0LCExKSksV2UoITApLHN0KCl9ci5xdWV1ZUJhclByb21vdGluZz0hMX0pLmNhdGNoKGZ1bmN0aW9uKGwpe3IucXVldWVCYXJQcm9tb3Rpbmc9ITEsbWkodCx1KSxrKGwmJmwubWVzc2FnZXx8Ilx1N0FDQlx1NTM3M1x1NTNEMVx1OTAwMVx1NTkzMVx1OEQyNVx1MzAwMiIsImVycm9yIil9KX19fX1mdW5jdGlvbiBzcChlLHQpe3ZhciBuPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihkKXtyZXR1cm4gZC5pZD09PXIuc2VsZWN0ZWRJZH0pO2lmKG4pe3ZhciBpPUFycmF5LmlzQXJyYXkobi5xdWV1ZWRNZXNzYWdlcyk/bi5xdWV1ZWRNZXNzYWdlcy5zbGljZSgpOltdO2lmKCEoaS5sZW5ndGg8PTEpJiZ0KXt2YXIgYT10LnBhcmVudEVsZW1lbnQ7aWYoYSl7dmFyIHU9TnVtYmVyKHQuZ2V0QXR0cmlidXRlKCJkYXRhLWluZGV4IikpLHM9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYS5jaGlsZHJlbiksbz1zLm1hcChmdW5jdGlvbihkKXtyZXR1cm4gZC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKX0pLGw9MztvLmxlbmd0aD49MiYmKGw9TWF0aC5tYXgoMCxvWzFdLnRvcC1vWzBdLnRvcC1vWzBdLmhlaWdodCkpLGUucHJldmVudERlZmF1bHQoKTt0cnl7dC5zZXRQb2ludGVyQ2FwdHVyZShlLnBvaW50ZXJJZCl9Y2F0Y2h7fWlmKG5hdmlnYXRvciYmbmF2aWdhdG9yLnZpYnJhdGUpdHJ5e25hdmlnYXRvci52aWJyYXRlKDgpfWNhdGNoe31yLnF1ZXVlQmFyRHJhZz17cG9pbnRlcklkOmUucG9pbnRlcklkLGhhbmRsZUVsOnQsaXRlbUVsOnQsbGlzdEVsOmEsc2libGluZ3M6cyxyZWN0czpvLG9yaWdJbmRleDp1LHRhcmdldEluZGV4OnUsc3RhcnRZOmUuY2xpZW50WSxnYXA6bCxxdWV1ZVNuYXBzaG90Oml9LHQuY2xhc3NMaXN0LmFkZCgiZHJhZ2dpbmciKSxzLmZvckVhY2goZnVuY3Rpb24oZCl7ZCE9PXQmJmQuY2xhc3NMaXN0LmFkZCgicXVldWUtYmFyLWl0ZW0tc2xpZGluZyIpfSk7dmFyIGM9ZnVuY3Rpb24oZCl7bHAoZCl9LGY9ZnVuY3Rpb24oZCl7Y3AoZCl9O3IucXVldWVCYXJEcmFnLm1vdmVIYW5kbGVyPWMsci5xdWV1ZUJhckRyYWcudXBIYW5kbGVyPWYsdC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVybW92ZSIsYyksdC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVydXAiLGYpLHQuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcmNhbmNlbCIsZil9fX19ZnVuY3Rpb24gb3AoZSx0LG4saSl7Zm9yKHZhciBhPW4ubGVuZ3RoLHU9W10scz0wO3M8YTtzKyspdS5wdXNoKHMpO3Uuc3BsaWNlKGUsMSksdS5zcGxpY2UodCwwLGUpO2Zvcih2YXIgbz1uWzBdLnRvcCxsPW5bMF0udG9wLGM9MTtjPGE7YysrKW5bY10udG9wPGwmJihsPW5bY10udG9wKTtmb3IodmFyIGY9e30sZD1sLHY9MDt2PGE7disrKXt2YXIgaD11W3ZdO2ZbaF09ZCxkKz1uW2hdLmhlaWdodCtpfXJldHVybiBmfWZ1bmN0aW9uIGxwKGUpe3ZhciB0PXIucXVldWVCYXJEcmFnO2lmKCEoIXR8fGUucG9pbnRlcklkIT09dC5wb2ludGVySWQpKXtlLnByZXZlbnREZWZhdWx0KCk7dmFyIG49ZS5jbGllbnRZLXQuc3RhcnRZO3QuaXRlbUVsLnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlWSgiK24rInB4KSI7Zm9yKHZhciBpPXQucmVjdHNbdC5vcmlnSW5kZXhdLnRvcCt0LnJlY3RzW3Qub3JpZ0luZGV4XS5oZWlnaHQvMituLGE9dC5vcmlnSW5kZXgsdT0wO3U8dC5yZWN0cy5sZW5ndGg7dSsrKWlmKHUhPT10Lm9yaWdJbmRleCl7dmFyIHM9dC5yZWN0c1t1XS50b3ArdC5yZWN0c1t1XS5oZWlnaHQvMjt1PHQub3JpZ0luZGV4JiZpPHM/YT1NYXRoLm1pbihhLHUpOnU+dC5vcmlnSW5kZXgmJmk+cyYmKGE9TWF0aC5tYXgoYSx1KSl9aWYoYSE9PXQudGFyZ2V0SW5kZXgpe3QudGFyZ2V0SW5kZXg9YTt2YXIgbz1vcCh0Lm9yaWdJbmRleCxhLHQucmVjdHMsdC5nYXApO3Quc2libGluZ3MuZm9yRWFjaChmdW5jdGlvbihsLGMpe2lmKGMhPT10Lm9yaWdJbmRleCl7dmFyIGY9b1tjXS10LnJlY3RzW2NdLnRvcDtsLnN0eWxlLnRyYW5zZm9ybT1mPyJ0cmFuc2xhdGVZKCIrZisicHgpIjoiIn19KX19fWZ1bmN0aW9uIGNwKGUpe3ZhciB0PXIucXVldWVCYXJEcmFnO2lmKCEoIXR8fGUmJmUucG9pbnRlcklkIT09dC5wb2ludGVySWQpKXt0cnl7dC5oYW5kbGVFbC5yZWxlYXNlUG9pbnRlckNhcHR1cmUodC5wb2ludGVySWQpfWNhdGNoe310LmhhbmRsZUVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJtb3ZlIix0Lm1vdmVIYW5kbGVyKSx0LmhhbmRsZUVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJ1cCIsdC51cEhhbmRsZXIpLHQuaGFuZGxlRWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcmNhbmNlbCIsdC51cEhhbmRsZXIpO3ZhciBuPXQub3JpZ0luZGV4LGk9dC50YXJnZXRJbmRleCxhPXQucXVldWVTbmFwc2hvdDtpZih0LnNpYmxpbmdzLmZvckVhY2goZnVuY3Rpb24oYyl7Yy5zdHlsZS50cmFuc2Zvcm09IiIsYy5jbGFzc0xpc3QucmVtb3ZlKCJxdWV1ZS1iYXItaXRlbS1zbGlkaW5nIil9KSx0Lml0ZW1FbC5jbGFzc0xpc3QucmVtb3ZlKCJkcmFnZ2luZyIpLHIucXVldWVCYXJEcmFnPW51bGwsbj09PWkpe3N0KCk7cmV0dXJufWZvcih2YXIgdT1bXSxzPTA7czxhLmxlbmd0aDtzKyspdS5wdXNoKHMpO3Uuc3BsaWNlKG4sMSksdS5zcGxpY2UoaSwwLG4pO3ZhciBvPXUubWFwKGZ1bmN0aW9uKGMpe3JldHVybiBhW2NdfSksbD1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oYyl7cmV0dXJuIGMuaWQ9PT1yLnNlbGVjdGVkSWR9KTtpZighbCl7c3QoKTtyZXR1cm59JCh7aWQ6bC5pZCxxdWV1ZWRNZXNzYWdlczpvfSksc3QoKSxmZXRjaCgiL2FwaS9zdHJ1Y3R1cmVkLXNlc3Npb25zLyIrbC5pZCsiL3F1ZXVlZCIse21ldGhvZDoiUEFUQ0giLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KHtvcmRlcjp1fSl9KS50aGVuKGZ1bmN0aW9uKGMpe2lmKCFjLm9rKXJldHVybiBjLmpzb24oKS5jYXRjaChmdW5jdGlvbigpe3JldHVybnt9fSkudGhlbihmdW5jdGlvbihmKXt0aHJvdyBuZXcgRXJyb3IoZiYmZi5lcnJvcnx8Ilx1NjM5Mlx1NUU4Rlx1NTkzMVx1OEQyNSIpfSl9KS5jYXRjaChmdW5jdGlvbihjKXttaShsLGEpLGsoYyYmYy5tZXNzYWdlfHwiXHU4QzAzXHU2NTc0XHU2MzkyXHU5NjFGXHU5ODdBXHU1RThGXHU1OTMxXHU4RDI1XHUzMDAyIiwiZXJyb3IiKX0pfX1mdW5jdGlvbiBkcCgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJxdWV1ZS1iYXItaG9zdCIpOyFlfHxlLl9fcXVldWVEZWxlZ2F0ZWR8fChlLl9fcXVldWVEZWxlZ2F0ZWQ9ITAsZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24odCl7dmFyIG49dC50YXJnZXQsaT1uJiZuLmNsb3Nlc3Q/bi5jbG9zZXN0KCJbZGF0YS1hY3Rpb25dIik6bnVsbDtpZihpJiZlLmNvbnRhaW5zKGkpKXt2YXIgYT1pLmdldEF0dHJpYnV0ZSgiZGF0YS1hY3Rpb24iKTtpZihhPT09ImRyYWciKXJldHVybjtpZih0LnByZXZlbnREZWZhdWx0KCksdC5zdG9wUHJvcGFnYXRpb24oKSxhPT09InByb21vdGUtaXRlbSIpe3ZhciB1PWkuY2xvc2VzdCgiLnF1ZXVlLWJhci1pdGVtIik7dSYmdXAoTnVtYmVyKHUuZ2V0QXR0cmlidXRlKCJkYXRhLWluZGV4IikpKX1lbHNlIGlmKGE9PT0iZGVsZXRlIil7dmFyIHM9aS5jbG9zZXN0KCIucXVldWUtYmFyLWl0ZW0iKTtzJiZpcChOdW1iZXIocy5nZXRBdHRyaWJ1dGUoImRhdGEtaW5kZXgiKSkpfWVsc2UgYT09PSJjbGVhci1hbGwiJiZhcCgpO3JldHVybn19KSxlLmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJkb3duIixmdW5jdGlvbih0KXtpZighKHQuYnV0dG9uIT09dm9pZCAwJiZ0LmJ1dHRvbiE9PTApKXt2YXIgbj10LnRhcmdldDtpZighKG4mJm4uY2xvc2VzdCYmbi5jbG9zZXN0KCdbZGF0YS1hY3Rpb249ImRlbGV0ZSJdLCBbZGF0YS1hY3Rpb249InByb21vdGUtaXRlbSJdLCBbZGF0YS1hY3Rpb249ImNsZWFyLWFsbCJdLCBbZGF0YS1hY3Rpb249ImV4cGFuZCJdJykpKXt2YXIgaT1uJiZuLmNsb3Nlc3Q/bi5jbG9zZXN0KCIucXVldWUtYmFyLWl0ZW0iKTpudWxsO2kmJnNwKHQsaSl9fX0pLGUuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsZnVuY3Rpb24odCl7dC5rZXk9PT0iRXNjYXBlIiYmdHAoKSYmKHQuc3RvcFByb3BhZ2F0aW9uKCksbnAoITEpKX0pKX1mdW5jdGlvbiBvbyhlKXtpZighZXx8IUFycmF5LmlzQXJyYXkoZS5jb250ZW50KSlyZXR1cm4gMDtmb3IodmFyIHQ9MCxuPTA7bjxlLmNvbnRlbnQubGVuZ3RoO24rKyl7dmFyIGk9ZS5jb250ZW50W25dO2lmKGkpe2lmKHR5cGVvZiBpLnRleHQ9PSJzdHJpbmciJiYodCs9aS50ZXh0Lmxlbmd0aCksdHlwZW9mIGkudGhpbmtpbmc9PSJzdHJpbmciJiYodCs9aS50aGlua2luZy5sZW5ndGgpLHR5cGVvZiBpLmNvbnRlbnQ9PSJzdHJpbmciKXQrPWkuY29udGVudC5sZW5ndGg7ZWxzZSBpZihBcnJheS5pc0FycmF5KGkuY29udGVudCkpZm9yKHZhciBhPTA7YTxpLmNvbnRlbnQubGVuZ3RoO2ErKyl7dmFyIHU9aS5jb250ZW50W2FdO3UmJnR5cGVvZiB1LnRleHQ9PSJzdHJpbmciJiYodCs9dS50ZXh0Lmxlbmd0aCl9aWYoaS5pbnB1dCl0cnl7dCs9SlNPTi5zdHJpbmdpZnkoaS5pbnB1dCkubGVuZ3RofWNhdGNoe319fXJldHVybiB0fWZ1bmN0aW9uIGZwKGUsdCl7aWYoIWUpcmV0dXJuIHQ7aWYoIXQpcmV0dXJuIGU7dmFyIG49b28oZSksaT1vbyh0KTtyZXR1cm4gaT49bj90Ok9iamVjdC5hc3NpZ24oe30sZSx7dXNhZ2U6dC51c2FnZXx8ZS51c2FnZX0pfWZ1bmN0aW9uIFJlKGUsdCl7dmFyIG49QXJyYXkuaXNBcnJheSh0KT9scih0KTpbXSxpPUFycmF5LmlzQXJyYXkobik/bi5zbGljZSgpOltdO2lmKCFlfHxlLnNlc3Npb25LaW5kIT09InN0cnVjdHVyZWQiKXJldHVybiBpO2lmKGUuc3RydWN0dXJlZFN0YXRlJiZlLnN0cnVjdHVyZWRTdGF0ZS5pbkZsaWdodCl7dmFyIGE9aVtpLmxlbmd0aC0xXTsoIWF8fGEucm9sZSE9PSJhc3Npc3RhbnQiKSYmaS5wdXNoKHtyb2xlOiJhc3Npc3RhbnQiLGNvbnRlbnQ6W3t0eXBlOiJ0ZXh0Iix0ZXh0OiIiLF9fcHJvY2Vzc2luZzohMH1dfSl9cmV0dXJuIGl9ZnVuY3Rpb24gbG8oKXt2YXIgZT1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24odCl7cmV0dXJuIHQuaWQ9PT1yLnNlbGVjdGVkSWR9KTtKcihlKSxmbigpfWZ1bmN0aW9uIGNvKGUpe3ZhciB0PVN0KCksbj10JiZ0LnByb3ZpZGVyPT09ImNvZGV4IjtyZXR1cm4gZSYmKGUuZXJyb3JDb2RlPT09IlNFU1NJT05fTk9UX1JVTk5JTkcifHxlLmVycm9yQ29kZT09PSJTRVNTSU9OX05PX1BUWSIpP24/IkNvZGV4IFx1NEYxQVx1OEJERFx1NURGMlx1N0VEM1x1Njc1Rlx1RkYxQlx1ODJFNVx1NUI1OFx1NTcyOCBDb2RleCBcdTUzODZcdTUzRjJcdTRGMUFcdThCRERcdUZGMENcdTVDMDZcdTU3MjhcdTRGNjBcdTRFMEJcdTZCMjFcdTUzRDFcdTkwMDFcdTZEODhcdTYwNkZcdTY1RjZcdTgxRUFcdTUyQThcdTYwNjJcdTU5MERcdTMwMDIiOiJcdTRGMUFcdThCRERcdTVERjJcdTdFRDNcdTY3NUZcdUZGMUJcdTgyRTVcdTVCNThcdTU3MjggQ2xhdWRlIFx1NTM4Nlx1NTNGMlx1NEYxQVx1OEJERFx1RkYwQ1x1NUMwNlx1NTcyOFx1NEY2MFx1NEUwQlx1NkIyMVx1NTNEMVx1OTAwMVx1NkQ4OFx1NjA2Rlx1NjVGNlx1ODFFQVx1NTJBOFx1NjA2Mlx1NTkwRFx1MzAwMiI6ZSYmZS5lcnJvckNvZGU9PT0iU0VTU0lPTl9OT1RfRk9VTkQiPyJcdTRGMUFcdThCRERcdTRFMERcdTVCNThcdTU3MjhcdUZGMENcdThCRjdcdTkxQ0RcdTY1QjBcdTkwMDlcdTYyRTlcdTYyMTZcdTY1QjBcdTVFRkFcdTRGMUFcdThCRERcdTMwMDIiOmUmJmUubWVzc2FnZXx8KG4/IkNvZGV4IFx1NEYxQVx1OEJERFx1NjY4Mlx1NEUwRFx1NTNFRlx1NzUyOFx1RkYxQlx1ODJFNVx1NUI1OFx1NTcyOCBDb2RleCBcdTUzODZcdTUzRjJcdTRGMUFcdThCRERcdUZGMENcdTVDMDZcdTgxRUFcdTUyQThcdTVDMURcdThCRDVcdTYwNjJcdTU5MERcdTMwMDIiOiJcdTRGMUFcdThCRERcdTY2ODJcdTRFMERcdTUzRUZcdTc1MjhcdUZGMUJcdTgyRTVcdTVCNThcdTU3MjggQ2xhdWRlIFx1NTM4Nlx1NTNGMlx1NEYxQVx1OEJERFx1RkYwQ1x1NUMwNlx1ODFFQVx1NTJBOFx1NUMxRFx1OEJENVx1NjA2Mlx1NTkwRFx1MzAwMiIpfWZ1bmN0aW9uIGZvKGUpe3ZhciB0PW5ldyBFcnJvcihlJiZlLmVycm9yfHwiXHU0RjFBXHU4QkREXHU1REYyXHU3RUQzXHU2NzVGXHUzMDAyIik7cmV0dXJuIGUmJnR5cGVvZiBlPT0ib2JqZWN0IiYmKHQuZXJyb3JDb2RlPWUuZXJyb3JDb2RlfHxudWxsLHQuc2Vzc2lvbklkPWUuc2Vzc2lvbklkfHxyLnNlbGVjdGVkSWR8fG51bGwsdC5zZXNzaW9uU3RhdHVzPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLCJzZXNzaW9uU3RhdHVzIik/ZS5zZXNzaW9uU3RhdHVzOm51bGwpLHR9ZnVuY3Rpb24gcG8oZSl7cmV0dXJuIGUmJihlLmVycm9yQ29kZT09PSJTRVNTSU9OX05PVF9SVU5OSU5HInx8ZS5lcnJvckNvZGU9PT0iU0VTU0lPTl9OT19QVFkifHxlLmVycm9yQ29kZT09PSJTRVNTSU9OX05PVF9GT1VORCIpfWZ1bmN0aW9uIHBwKGUsdCl7ZSYmJCh7aWQ6ZSxzdGF0dXM6dHx8ImV4aXRlZCJ9KX1mdW5jdGlvbiBNZyhlKXtpZighZXx8IUFycmF5LmlzQXJyYXkoZS5tZXNzYWdlcyl8fGUubWVzc2FnZXMubGVuZ3RoPDIpcmV0dXJuITE7dmFyIHQ9ZS5tZXNzYWdlcy5zb21lKGZ1bmN0aW9uKGkpe3JldHVybiBpJiZpLnJvbGU9PT0idXNlciImJkFycmF5LmlzQXJyYXkoaS5jb250ZW50KSYmaS5jb250ZW50LnNvbWUoZnVuY3Rpb24oYSl7cmV0dXJuIGEmJmEudHlwZT09PSJ0ZXh0IiYmdHlwZW9mIGEudGV4dD09InN0cmluZyImJmEudGV4dC50cmltKCkubGVuZ3RoPjB9KX0pLG49ZS5tZXNzYWdlcy5zb21lKGZ1bmN0aW9uKGkpe3JldHVybiBpJiZpLnJvbGU9PT0iYXNzaXN0YW50IiYmQXJyYXkuaXNBcnJheShpLmNvbnRlbnQpJiZpLmNvbnRlbnQuc29tZShmdW5jdGlvbihhKXtyZXR1cm4gYSYmYS50eXBlPT09InRleHQiJiZ0eXBlb2YgYS50ZXh0PT0ic3RyaW5nIiYmYS50ZXh0LnRyaW0oKS5sZW5ndGg+MH0pfSk7cmV0dXJuIHQmJm59ZnVuY3Rpb24gQWEoZSl7cmV0dXJuISEoZSYmIXVlKGUpJiYoZS5wcm92aWRlcj09PSJjbGF1ZGUifHxlLnByb3ZpZGVyPT09ImNvZGV4IikmJmUuc3RhdHVzIT09InJ1bm5pbmciJiZlLmNsYXVkZVNlc3Npb25JZCl9ZnVuY3Rpb24gdnAoZSx0KXtpZighZSlyZXR1cm4gaygiXHU0RjFBXHU4QkREXHU0RTBEXHU1QjU4XHU1NzI4XHVGRjBDXHU4QkY3XHU5MUNEXHU2NUIwXHU5MDA5XHU2MkU5XHU2MjE2XHU2NUIwXHU1RUZBXHU0RjFBXHU4QkREXHUzMDAyIiwiZXJyb3IiKSxQcm9taXNlLnJlc29sdmUobnVsbCk7aWYoZS5zdGF0dXM9PT0icnVubmluZyIpcmV0dXJuIFByb21pc2UucmVzb2x2ZShlKTtpZighQWEoZSkpe3ZhciBuPWUmJmUucHJvdmlkZXI9PT0iY29kZXgiPyJDb2RleCI6IkNsYXVkZSI7cmV0dXJuIGsoIlx1OEJFNVx1NEYxQVx1OEJERFx1NkNBMVx1NjcwOVx1NTNFRlx1NjA2Mlx1NTkwRFx1NzY4NCAiK24rIiBcdTUzODZcdTUzRjJcdTRFMEFcdTRFMEJcdTY1ODdcdUZGMENcdThCRjdcdTY1QjBcdTVFRkFcdTRGMUFcdThCRERcdTMwMDIiLCJlcnJvciIpLFByb21pc2UucmVzb2x2ZShudWxsKX1yZXR1cm4gQ28oZS5pZCx0KS50aGVuKGZ1bmN0aW9uKGkpe3JldHVybiBpPygkKGkpLG1lKCkscW4oaS5pZCksaG4oaS5pZCkudGhlbihmdW5jdGlvbigpe3JldHVybiBqdCghMCksaX0pKTpudWxsfSl9ZnVuY3Rpb24gbXAoZSx0KXtyZXR1cm5bdCwiXHIiXX1mdW5jdGlvbiBncChlLHQsbixpKXt2YXIgYT1BcnJheS5pc0FycmF5KGUpP2UuZmlsdGVyKGZ1bmN0aW9uKHMpe3JldHVybiEhc30pOltdO2lmKGEubGVuZ3RoPT09MClyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7dmFyIHU9dHlwZW9mIG49PSJudW1iZXIiP246MDtyZXR1cm4gYS5yZWR1Y2UoZnVuY3Rpb24ocyxvLGwpe3JldHVybiBzLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gbD4wJiZ1PjA/bmV3IFByb21pc2UoZnVuY3Rpb24oYyl7c2V0VGltZW91dChjLHUpfSkudGhlbihmdW5jdGlvbigpe3JldHVybiB3dChvLGw9PT1hLmxlbmd0aC0xP3Q6dm9pZCAwLGkpfSk6d3QobyxsPT09YS5sZW5ndGgtMT90OnZvaWQgMCxpKX0pfSxQcm9taXNlLnJlc29sdmUoKSl9dmFyIGhwPTVlMyx5cD0xMDA7ZnVuY3Rpb24geGEoZSl7ZSYmKHIucGVuZGluZ01lc3NhZ2VzLmxlbmd0aD49eXAmJnIucGVuZGluZ01lc3NhZ2VzLnNoaWZ0KCksci5wZW5kaW5nTWVzc2FnZXMucHVzaCh7aW5wdXQ6ZSxhdDpEYXRlLm5vdygpfSkpfWZ1bmN0aW9uIGJwKGUpe3ZhciB0PUFycmF5LmlzQXJyYXkoZSk/ZS5maWx0ZXIoZnVuY3Rpb24obil7cmV0dXJuISFufSk6W107dC5mb3JFYWNoKGZ1bmN0aW9uKG4pe3hhKG4pfSl9ZnVuY3Rpb24gRXAoZSl7aWYoISh0eXBlb2YgZSE9InN0cmluZyJ8fCFlKSl7dmFyIHQ9ZS5yZXBsYWNlKC9ceDFiXFsyMDB+L2csIiIpLnJlcGxhY2UoL1x4MWJcWzIwMX4vZywiIik7Lyg/Ol58XG4pXHMqXC9jbGVhclxzKig/OlxyfFxufCQpLy50ZXN0KHQpJiZ0eXBlb2YgcjwidSImJnImJihyLnRlcm1pbmFsT3V0cHV0TWFya2VyPShyLnRlcm1pbmFsT3V0cHV0JiZyLnRlcm1pbmFsT3V0cHV0Lmxlbmd0aCl8MCl9fWZ1bmN0aW9uIHd0KGUsdCxuKXtyZXR1cm4hZXx8IXIuc2VsZWN0ZWRJZD9Qcm9taXNlLnJlc29sdmUoKTooRXAoZSksci5tZXNzYWdlUXVldWUucHVzaChlKSxyLmlucHV0UXVldWU9ci5pbnB1dFF1ZXVlLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gRnAoZSx0LG4pLmZpbmFsbHkoZnVuY3Rpb24oKXt2YXIgaT1yLm1lc3NhZ2VRdWV1ZS5pbmRleE9mKGUpO2k+LTEmJnIubWVzc2FnZVF1ZXVlLnNwbGljZShpLDEpfSl9KSxyLmlucHV0UXVldWUpfWZ1bmN0aW9uIEZwKGUsdCxuKXtpZighci5zZWxlY3RlZElkKXJldHVybiBQcm9taXNlLnJlc29sdmUoKTt2YXIgaT1yLnNlbGVjdGVkSWQsYT1ufHxyLmN1cnJlbnRWaWV3O3JldHVybiBWZigpP3Iud3NDb25uZWN0ZWQ/ZmV0Y2goIi9hcGkvc2Vzc2lvbnMvIitpKyIvaW5wdXQiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KHtpbnB1dDplLHZpZXc6YSxzaG9ydGN1dEtleTp0fHx2b2lkIDB9KX0pLnRoZW4oZnVuY3Rpb24odSl7cmV0dXJuIHUub2s/dS5qc29uKCk6dS5qc29uKCkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm57ZXJyb3I6Ilx1OEJGN1x1NkM0Mlx1NTkzMVx1OEQyNSJ9fSkudGhlbihmdW5jdGlvbihzKXt2YXIgbz1mbyhzKTt0aHJvdyBvLmh0dHBTdGF0dXM9dS5zdGF0dXMsY29uc29sZS5lcnJvcigiW3dhbmRdIHBvc3RJbnB1dDogcmVxdWVzdCBmYWlsZWQiLHtzdGF0dXM6dS5zdGF0dXMsZXJyb3JDb2RlOm8uZXJyb3JDb2RlLG1lc3NhZ2U6by5tZXNzYWdlLHNlc3Npb25JZDppfSkscG8obykmJnBwKGksby5zZXNzaW9uU3RhdHVzfHwiZXhpdGVkIiksb30pfSkudGhlbihmdW5jdGlvbih1KXtyZXR1cm4gdSYmdS5pZCYmKCQodSksdS5pZD09PXIuc2VsZWN0ZWRJZCYmKHUubWVzc2FnZXMmJnUubWVzc2FnZXMubGVuZ3RoPjAmJihyLmN1cnJlbnRNZXNzYWdlcz11Lm1lc3NhZ2VzKSxXZSghMCkpKSx1fSk6KHhhKGUpLGNvbnNvbGUubG9nKCJbd2FuZF0gcG9zdElucHV0OiBXZWJTb2NrZXQgZGlzY29ubmVjdGVkLCBxdWV1ZWQgbWVzc2FnZSIse3Nlc3Npb25JZDpyLnNlbGVjdGVkSWQsaW5wdXRMZW5ndGg6ZS5sZW5ndGh9KSxQcm9taXNlLnJlc29sdmUoKSk6ci53c0Nvbm5lY3RlZD8oY29uc29sZS53YXJuKCJbd2FuZF0gcG9zdElucHV0OiBzZXNzaW9uIG5vdCBydW5uaW5nLCBza2lwcGluZyBzZW5kIix7c2Vzc2lvbklkOnIuc2VsZWN0ZWRJZH0pLGsoIlx1NEYxQVx1OEJERFx1NjcyQVx1OEZEMFx1ODg0Q1x1RkYwQ1x1NkI2M1x1NTcyOFx1N0I0OVx1NUY4NVx1ODFFQVx1NTJBOFx1NjA2Mlx1NTkwRFx1NTQwRVx1OTFDRFx1OEJENVx1MzAwMiIsImluZm8iKSxQcm9taXNlLnJlc29sdmUoKSk6KHhhKGUpLGNvbnNvbGUubG9nKCJbd2FuZF0gcG9zdElucHV0OiBzZXNzaW9uIG5vdCBydW5uaW5nLCBxdWV1ZWQgZm9yIHJlY29ubmVjdCIse3Nlc3Npb25JZDpyLnNlbGVjdGVkSWQsaW5wdXRMZW5ndGg6ZS5sZW5ndGh9KSxQcm9taXNlLnJlc29sdmUoKSl9ZnVuY3Rpb24gcWcoZSl7cmV0dXJuIHd0KGUpfWZ1bmN0aW9uIFN0KCl7cmV0dXJuIHIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihlKXtyZXR1cm4gZS5pZD09PXIuc2VsZWN0ZWRJZH0pfHxudWxsfWZ1bmN0aW9uIE9nKGUpe3JldHVybiBlJiZlLnByb3ZpZGVyPT09ImNvZGV4Ij9gCmA6IlxyIn1mdW5jdGlvbiBTYSgpe3JldHVybiEhci5zZWxlY3RlZElkJiZyLmN1cnJlbnRWaWV3PT09InRlcm1pbmFsIn1mdW5jdGlvbiB3cChlKXtyZXR1cm4hKCFyLnRlcm1pbmFsfHwhZXx8ZSE9PXIuc2VsZWN0ZWRJZHx8ci50ZXJtaW5hbFNlc3Npb25JZCYmci50ZXJtaW5hbFNlc3Npb25JZCE9PWUpfWZ1bmN0aW9uIHZvKGUpe2lmKCFyLnRlcm1pbmFsSW50ZXJhY3RpdmV8fCFTYSgpfHxlLmRlZmF1bHRQcmV2ZW50ZWR8fGUuaXNDb21wb3NpbmcpcmV0dXJuITE7dmFyIHQ9ZS50YXJnZXQ7cmV0dXJuIHQ/IShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCJpcy13YW5kLWVtYmVkLXRlcm1pbmFsIikmJnQuY2xvc2VzdCYmdC5jbG9zZXN0KCIjaW5wdXQtYm94Iil8fHQuY2xvc2VzdCYmdC5jbG9zZXN0KCIjbWluaS1rZXlib2FyZCIpfHxTcCh0KSk6ITB9dmFyIENwPXtFc2M6ImVzY2FwZSIsQXJyb3dVcDoidXAiLEFycm93RG93bjoiZG93biIsQXJyb3dMZWZ0OiJsZWZ0IixBcnJvd1JpZ2h0OiJyaWdodCIsRW50ZXI6ImVudGVyIixUYWI6InRhYiIsQmFja3NwYWNlOiJiYWNrc3BhY2UiLEhvbWU6ImhvbWUiLEVuZDoiZW5kIixQYWdlVXA6InBhZ2V1cCIsUGFnZURvd246InBhZ2Vkb3duIixEZWxldGU6ImRlbGV0ZSIsSW5zZXJ0OiJpbnNlcnQiLCIgIjoic3BhY2UifSxCcD17c3BhY2U6IiAiLHRhYjoiCSIsc2hpZnRfdGFiOiJceDFCW1oiLGJhY2tzcGFjZToiXHg3RiIsaG9tZToiXHgxQltIIixlbmQ6Ilx4MUJbRiIscGFnZXVwOiJceDFCWzV+IixwYWdlZG93bjoiXHgxQls2fiIsZGVsZXRlOiJceDFCWzN+IixpbnNlcnQ6Ilx4MUJbMn4ifSxtbz17IiAiOjAsIlsiOjI3LCJcXCI6MjgsIl0iOjI5LCJeIjozMCxfOjMxfSxEcD00MDAsa3A9MTAsQXA9OCxnaT01NCxwbj04LElhPVt7a2V5OiJlbnRlciIsbGFiZWw6IkVudGVyIn0se2tleToiY3RybF9jIixsYWJlbDoiQ3RybCtDIn0se2tleToiZXNjYXBlIixsYWJlbDoiRXNjIn0se2tleToic2hpZnRfdGFiIixsYWJlbDoiU2hpZnQrVGFiIn1dLHhwPW5ldyBTZXQoWyJtaW5pLWtleWJvYXJkLWZhYiIsIm1pbmkta2V5Ym9hcmQtdG9nZ2xlIiwidGVybWluYWwtaW50ZXJhY3RpdmUtdG9nZ2xlIl0pO2Z1bmN0aW9uIFNwKGUpe3JldHVybiEhKGUmJnhwLmhhcyhlLmlkKSl9dmFyIElwPW5ldyBTZXQoWyJjdHJsIiwiYWx0Iiwic2hpZnQiXSk7ZnVuY3Rpb24gZ28oZSl7cmV0dXJuIElwLmhhcyhlKX1mdW5jdGlvbiBUcChlKXtyZXR1cm4gQnBbZV18fCIifWZ1bmN0aW9uIExwKGUpe3ZhciB0PWUudG9Mb3dlckNhc2UoKTtyZXR1cm4gdD49ImEiJiZ0PD0ieiI/U3RyaW5nLmZyb21DaGFyQ29kZSh0LmNoYXJDb2RlQXQoMCktOTYpOk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChtbyx0KT9TdHJpbmcuZnJvbUNoYXJDb2RlKG1vW3RdKToiIn1mdW5jdGlvbiBNcChlKXtyZXR1cm4gQ3BbZS5rZXldfHxlLmtleX1mdW5jdGlvbiBxcChlLHQpe3JldHVybntjdHJsOmUuY3RybEtleSxhbHQ6ZS5hbHRLZXksc2hpZnQ6ZS5zaGlmdEtleSYmKHQubGVuZ3RoPT09MXx8dD09PSJ0YWIiKSxtZXRhOmUubWV0YUtleX19ZnVuY3Rpb24gaG8oZSx0KXtlJiZ3dChlLHQpLmNhdGNoKGZ1bmN0aW9uKCl7fSl9ZnVuY3Rpb24gT3AoKXtJbygpfWZ1bmN0aW9uIFRhKGUpe3Iua2V5Ym9hcmRQb3B1cE9wZW49ITEsZSE9PSExJiZ5aSgpLF9wKCl9ZnVuY3Rpb24gUHAoKXtTYSgpJiZNbighci50ZXJtaW5hbEludGVyYWN0aXZlKX1mdW5jdGlvbiBNbihlKXt2YXIgdD0hIWUmJlNhKCk7ci50ZXJtaW5hbEludGVyYWN0aXZlIT09dCYmKHIudGVybWluYWxJbnRlcmFjdGl2ZT10LHQ/KE5wKCksVGEoITEpLE9wKCksaygiXHU3RUM4XHU3QUVGXHU0RUE0XHU0RTkyXHU2QTIxXHU1RjBGXHU1REYyXHU1RjAwXHU1NDJGIiwiaW5mbyIpKTooanAoKSx5aSgpKSxrcigpKX1mdW5jdGlvbiBMYSgpe3ZhciBlPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihuKXtyZXR1cm4gbi5pZD09PXIuc2VsZWN0ZWRJZH0pLHQ9IWV8fGUuc3RhdHVzIT09InJ1bm5pbmcifHxyLmN1cnJlbnRWaWV3IT09InRlcm1pbmFsIjtpZih0JiZyLnRlcm1pbmFsSW50ZXJhY3RpdmUpe01uKCExKTtyZXR1cm59KCFlfHxyLmN1cnJlbnRWaWV3IT09InRlcm1pbmFsIikmJnIua2V5Ym9hcmRQb3B1cE9wZW4mJihyLmtleWJvYXJkUG9wdXBPcGVuPSExKSxrcigpfWZ1bmN0aW9uIGtyKCl7dmFyIGU9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKHkpe3JldHVybiB5LmlkPT09ci5zZWxlY3RlZElkfSksdD11ZShlKSxuPWUmJmUucHJvdmlkZXI9PT0iY29kZXgiLGk9dD8hIShlJiZlLnN0cnVjdHVyZWRTdGF0ZSYmZS5zdHJ1Y3R1cmVkU3RhdGUuaW5GbGlnaHQpOiEhZSYmZS5zdGF0dXM9PT0icnVubmluZyIsYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wdXQtYm94IiksdT1bInRlcm1pbmFsLWludGVyYWN0aXZlLXRvZ2dsZS10b3AiXTt1LmZvckVhY2goZnVuY3Rpb24oeSl7dmFyIHc9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoeSk7aWYodyl7dy5jbGFzc0xpc3QudG9nZ2xlKCJhY3RpdmUiLHIudGVybWluYWxJbnRlcmFjdGl2ZSksdy5jbGFzc0xpc3QudG9nZ2xlKCJpcy1vbiIsci50ZXJtaW5hbEludGVyYWN0aXZlKSx3LmNsYXNzTGlzdC50b2dnbGUoImhpZGRlbiIsdHx8ci5jdXJyZW50VmlldyE9PSJ0ZXJtaW5hbCJ8fCFlKSx3LnNldEF0dHJpYnV0ZSgiYXJpYS1jaGVja2VkIixyLnRlcm1pbmFsSW50ZXJhY3RpdmU/InRydWUiOiJmYWxzZSIpO3ZhciBFPXcucXVlcnlTZWxlY3RvcigiLnBsdXMtcG9wb3Zlci10b2dnbGUtc3RhdGUiKTtFJiYoRS50ZXh0Q29udGVudD1yLnRlcm1pbmFsSW50ZXJhY3RpdmU/Ilx1NUYwMCI6Ilx1NTE3MyIpfX0pO3ZhciBzPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5pbnB1dC1oaW50Iik7cyYmKHMuY2xhc3NMaXN0LnRvZ2dsZSgiaGlkZGVuIix0PyEwOnIuY3VycmVudFZpZXc9PT0idGVybWluYWwiKSwhdCYmZSYmKHMudGV4dENvbnRlbnQ9bj8iRW50ZXIgXHU1M0QxXHU5MDAxIFx4QjcgY2hhdCBcdTRFM0FcdTg5RTNcdTY3OTBcdTg5QzZcdTU2RkVcdUZGMEN0ZXJtaW5hbCBcdTRFM0FcdTUzOUZcdTU5Q0JcdThGOTNcdTUxRkEiOiJFbnRlciBcdTUzRDFcdTkwMDEgXHhCNyBTaGlmdCtFbnRlciBcdTYzNjJcdTg4NEMiKSk7dmFyIG89IXQmJiFpJiZBYShlKTthJiYoYS5wbGFjZWhvbGRlcj1lbChlLHIudGVybWluYWxJbnRlcmFjdGl2ZSksYS5kaXNhYmxlZD0hdCYmISFlJiYhaSYmIW8sYS5zZXRBdHRyaWJ1dGUoImFyaWEtZGlzYWJsZWQiLGEuZGlzYWJsZWQ/InRydWUiOiJmYWxzZSIpLGEucmVhZE9ubHk9ITEsYS5jbGFzc0xpc3QudG9nZ2xlKCJpcy10ZXJtaW5hbC1wYXNzdGhyb3VnaCIsISFyLnRlcm1pbmFsSW50ZXJhY3RpdmUmJiFkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCJpcy13YW5kLWVtYmVkLXRlcm1pbmFsIikpKTt2YXIgbD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuaW5wdXQtY29tcG9zZXIiKTtsJiZyLnRlcm1pbmFsSW50ZXJhY3RpdmUmJmwuY2xhc3NMaXN0LmNvbnRhaW5zKCJ2b2ljZS1tb2RlIikmJihsLmNsYXNzTGlzdC5yZW1vdmUoInZvaWNlLW1vZGUiKSxTZS5yZWNvcmRpbmc9ITEsQmEoKSk7dmFyIGM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlbmQtaW5wdXQtYnV0dG9uIiksZj10JiZpO2MmJihjLmRpc2FibGVkPSF0JiYhIWUmJiFpJiYhbyxjLnNldEF0dHJpYnV0ZSgidGl0bGUiLHQ/Zj8iXHU2MzkyXHU5NjFGXHU1M0QxXHU5MDAxXHVGRjA4XHU1RjUzXHU1MjREXHU1NkRFXHU1OTBEXHU3RUQzXHU2NzVGXHU1NDBFXHU1OTA0XHU3NDA2XHVGRjA5IjoiXHU1M0QxXHU5MDAxIjpuP2k/Ilx1NTNEMVx1OTAwMVx1N0VEOSBDb2RleCI6IkNvZGV4IFx1NEYxQVx1OEJERFx1NURGMlx1N0VEM1x1Njc1RiI6IWV8fGl8fG8/Ilx1NTNEMVx1OTAwMSI6Ilx1NEYxQVx1OEJERFx1NURGMlx1N0VEM1x1Njc1RiIpLGMuY2xhc3NMaXN0LnRvZ2dsZSgicXVldWUtbW9kZSIsZikpO3ZhciBkPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdG9wLWJ1dHRvbiIpO2lmKGQpe3ZhciB2PWd1KGUpO2QuY2xhc3NMaXN0LnRvZ2dsZSgiaGlkZGVuIiwhdi5hY3RpdmUpfXZhciBoPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdG9wLWJ1dHRvbiIpO2lmKGgpe3ZhciBnPWd1KGUpO2guY2xhc3NMaXN0LnRvZ2dsZSgiaGlkZGVuIiwhZy5hY3RpdmUpfXZhciBtPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKTttJiZtLmNsYXNzTGlzdC50b2dnbGUoImludGVyYWN0aXZlIiwhdCYmci50ZXJtaW5hbEludGVyYWN0aXZlKSxPcygpfWZ1bmN0aW9uIGhpKCl7dmFyIGU9d2luZG93LmdldFNlbGVjdGlvbiYmd2luZG93LmdldFNlbGVjdGlvbigpO2lmKCFlfHxlLmlzQ29sbGFwc2VkKXJldHVybiExO3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKTtpZighdClyZXR1cm4hMTt2YXIgbj1lLmFuY2hvck5vZGU7cmV0dXJuIG4mJm4ubm9kZVR5cGU9PT0zJiYobj1uLnBhcmVudE5vZGUpLCEhKG4mJnQuY29udGFpbnMobikpfWZ1bmN0aW9uIE1hKGUpe2lmKHZvKGUpJiYhZS5tZXRhS2V5KXt2YXIgdD1NcChlKTtpZih0KXt2YXIgbj1xcChlLHQpO2lmKCFnbyh0KSYmIShuLmN0cmwmJnQubGVuZ3RoPT09MSYmdC50b0xvd2VyQ2FzZSgpPT09ImMiJiZoaSgpKSl7dmFyIGk9Ym8odCxuKTtpJiYoZS5wcmV2ZW50RGVmYXVsdCgpLGhvKGksdCkpfX19fWZ1bmN0aW9uIEhwKCl7ci50ZXJtaW5hbCYmc2YoNTAwKX1mdW5jdGlvbiBfcCgpe2hyKCl9ZnVuY3Rpb24gUGcoZSl7ZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcFByb3BhZ2F0aW9uKCksIShyLmN1cnJlbnRWaWV3IT09InRlcm1pbmFsInx8IXIuc2VsZWN0ZWRJZCkmJihyLmtleWJvYXJkUG9wdXBPcGVuPSFyLmtleWJvYXJkUG9wdXBPcGVuLGtyKCkpfWZ1bmN0aW9uIHlvKCl7ci5rZXlib2FyZFBvcHVwT3Blbj0hMSxrcigpfWZ1bmN0aW9uIE5wKCl7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsTWEsITApfWZ1bmN0aW9uIGpwKCl7ZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsTWEsITApfWZ1bmN0aW9uIGJvKGUsdCl7dmFyIG49dHx8e2N0cmw6ITEsYWx0OiExLHNoaWZ0OiExfTtpZihnbyhlKSlyZXR1cm4iIjtpZihlPT09InRhYiImJm4uc2hpZnQpcmV0dXJuIlx4MUJbWiI7dmFyIGk9VHAoZSk7aWYoaSlyZXR1cm4gaTtpZihlLmluZGV4T2YoImN0cmxfIik9PT0wKXJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKGUuY2hhckNvZGVBdChlLmxlbmd0aC0xKS05Nik7dmFyIGE9QXIoZSk7aWYoYSlyZXR1cm4gYTtpZighZSlyZXR1cm4iIjt2YXIgdT1lLmxlbmd0aD09PTE/ZToiIjtyZXR1cm4gdT8obi5zaGlmdCYmKHU9dS50b1VwcGVyQ2FzZSgpKSxuLmN0cmw/THAodSk6bi5hbHQ/Ilx4MUIiK3U6dSk6IiJ9ZnVuY3Rpb24geWkoKXtyLm1vZGlmaWVycy5jdHJsPSExLHIubW9kaWZpZXJzLmFsdD0hMSxyLm1vZGlmaWVycy5zaGlmdD0hMSxScCgpfWZ1bmN0aW9uIFJwKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1pbmkta2V5Ym9hcmQiKTtlJiZbImN0cmwiLCJhbHQiLCJzaGlmdCJdLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIG49ZS5xdWVyeVNlbGVjdG9yKCdbZGF0YS1rZXk9IicrdCsnIl0nKTtuJiZuLmNsYXNzTGlzdC50b2dnbGUoImFjdGl2ZSIsISFyLm1vZGlmaWVyc1t0XSl9KX1mdW5jdGlvbiBBcihlKXtzd2l0Y2goZSl7Y2FzZSJ5ZXMiOnJldHVybiJ5XHIiO2Nhc2Uibm8iOnJldHVybiJuXHIiO2Nhc2UidXAiOnJldHVybiJceDFCW0EiO2Nhc2UiZG93biI6cmV0dXJuIlx4MUJbQiI7Y2FzZSJsZWZ0IjpyZXR1cm4iXHgxQltEIjtjYXNlInJpZ2h0IjpyZXR1cm4iXHgxQltDIjtjYXNlImVudGVyIjpyZXR1cm4iXHIiO2Nhc2UiY3RybF9jIjpyZXR1cm4iAyI7Y2FzZSJjdHJsX2QiOnJldHVybiIEIjtjYXNlImN0cmxfbCI6cmV0dXJuIlxmIjtjYXNlImN0cmxfdSI6cmV0dXJuIhUiO2Nhc2UiY3RybF9rIjpyZXR1cm4iXHYiO2Nhc2UiY3RybF93IjpyZXR1cm4iFyI7Y2FzZSJjdHJsX3oiOnJldHVybiIaIjtjYXNlImVzY2FwZSI6cmV0dXJuIlx4MUIiO2RlZmF1bHQ6cmV0dXJuIiJ9fWZ1bmN0aW9uIFdwKCl7aWYoci5wZW5kaW5nTWVzc2FnZXMubGVuZ3RoIT09MCl7dmFyIGU9U3QoKTtpZih1ZShlKSl7ci5wZW5kaW5nTWVzc2FnZXM9W107cmV0dXJufXZhciB0PURhdGUubm93KCksbj1bXSxpPTA7ci5wZW5kaW5nTWVzc2FnZXMuZm9yRWFjaChmdW5jdGlvbih1KXtpZih0eXBlb2YgdT09InN0cmluZyIpe24ucHVzaCh1KTtyZXR1cm59aWYoISghdXx8dHlwZW9mIHUuaW5wdXQhPSJzdHJpbmciKSl7aWYodC0odS5hdHx8MCk+aHApe2krKztyZXR1cm59bi5wdXNoKHUuaW5wdXQpfX0pLHIucGVuZGluZ01lc3NhZ2VzPVtdLGk+MCYmY29uc29sZS5sb2coIlt3YW5kXSBmbHVzaFBlbmRpbmdNZXNzYWdlczogZHJvcHBlZCAiK2krIiBzdGFsZSBpbnB1dChzKSIpO3ZhciBhPVByb21pc2UucmVzb2x2ZSgpO24uZm9yRWFjaChmdW5jdGlvbih1KXthPWEudGhlbihmdW5jdGlvbigpe3JldHVybiB6cCh1KS5jYXRjaChmdW5jdGlvbigpe30pfSl9KX19ZnVuY3Rpb24genAoZSl7aWYoIWV8fCFyLnNlbGVjdGVkSWQpcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO3ZhciB0PXIuc2VsZWN0ZWRJZDtyZXR1cm4gZmV0Y2goIi9hcGkvc2Vzc2lvbnMvIit0KyIvaW5wdXQiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KHtpbnB1dDplLHZpZXc6ci5jdXJyZW50Vmlld30pfSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gbi5vaz9uLmpzb24oKTpuLmpzb24oKS5jYXRjaChmdW5jdGlvbigpe3JldHVybntlcnJvcjoiXHU4QkY3XHU2QzQyXHU1OTMxXHU4RDI1In19KS50aGVuKGZ1bmN0aW9uKGkpe3ZhciBhPWZvKGkpO2lmKGEuaHR0cFN0YXR1cz1uLnN0YXR1cyxwbyhhKSlyZXR1cm4gY29uc29sZS5sb2coIlt3YW5kXSBzZW5kSW5wdXREaXJlY3Q6IHNlc3Npb24gdW5hdmFpbGFibGUsIGRyb3BwaW5nIix7c2Vzc2lvbklkOnQsZXJyb3JDb2RlOmEuZXJyb3JDb2RlfSksbnVsbDt0aHJvdyBhfSl9KS50aGVuKGZ1bmN0aW9uKG4pe3JldHVybiBuJiZuLmlkJiYoJChuKSxuLmlkPT09ci5zZWxlY3RlZElkJiYobi5tZXNzYWdlcyYmbi5tZXNzYWdlcy5sZW5ndGg+MCYmKHIuY3VycmVudE1lc3NhZ2VzPW4ubWVzc2FnZXMpLFdlKCEwKSkpLG59KX1mdW5jdGlvbiBxYSgpe2lmKHIuc2VsZWN0ZWRJZCl7dmFyIGU9ci5zZWxlY3RlZElkO1VzKGNlKCJzdG9wLmNvbmZpcm0ubWVzc2FnZSIpLHt0aXRsZTpjZSgic3RvcC5jb25maXJtLnRpdGxlIiksZGFuZ2VyOiEwLG9rTGFiZWw6Y2UoInN0b3AuY29uZmlybS5vayIpLGNhbmNlbExhYmVsOmNlKCJzdG9wLmNvbmZpcm0uY2FuY2VsIil9KS50aGVuKGZ1bmN0aW9uKHQpe3QmJnIuc2VsZWN0ZWRJZD09PWUmJmZldGNoKCIvYXBpL3Nlc3Npb25zLyIrZSsiL3N0b3AiLHttZXRob2Q6IlBPU1QiLGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKFJ0KX0pfX1mdW5jdGlvbiBPYShlKXt2YXIgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuc2Vzc2lvbi1pdGVtW2RhdGEtc2Vzc2lvbi1pZD0iJytlKyciXScpO3QmJnQuY2xhc3NMaXN0LmFkZCgiZGVsZXRpbmciKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZmV0Y2goIi9hcGkvc2Vzc2lvbnMvIitlLHttZXRob2Q6IkRFTEVURSIsY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIG4uanNvbigpfSkudGhlbihmdW5jdGlvbihuKXtpZihuJiZuLmVycm9yKXRocm93IG5ldyBFcnJvcihuLmVycm9yKTtyZXR1cm4gci5zZWxlY3RlZElkPT09ZSYmKHIuc2VsZWN0ZWRJZD1udWxsLHdlKCkpLFJ0KCl9KS5jYXRjaChmdW5jdGlvbigpe3QmJnQuY2xhc3NMaXN0LnJlbW92ZSgiZGVsZXRpbmciKTt2YXIgbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWN0aW9uLWVycm9yIik7UGUobiwiXHU2NUUwXHU2Q0Q1XHU1MjIwXHU5NjY0XHU0RjFBXHU4QkREXHUzMDAyIil9KX0sMjUwKX1mdW5jdGlvbiBFbyhlLHQpe3QmJnQuY2xhc3NMaXN0LmFkZCgiZGVsZXRpbmciKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZmV0Y2goIi9hcGkvY2xhdWRlLWhpc3RvcnkvIitlbmNvZGVVUklDb21wb25lbnQoZSkse21ldGhvZDoiREVMRVRFIixjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gbi5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKG4pe2lmKG4mJm4uZXJyb3IpdGhyb3cgbmV3IEVycm9yKG4uZXJyb3IpO3IuY2xhdWRlSGlzdG9yeT1yLmNsYXVkZUhpc3RvcnkuZmlsdGVyKGZ1bmN0aW9uKGkpe3JldHVybiBpLmNsYXVkZVNlc3Npb25JZCE9PWV9KSxkZWxldGUgci5zZWxlY3RlZENsYXVkZUhpc3RvcnlJZHNbZV0sbWUoKX0pLmNhdGNoKGZ1bmN0aW9uKCl7dCYmdC5jbGFzc0xpc3QucmVtb3ZlKCJkZWxldGluZyIpO3ZhciBuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhY3Rpb24tZXJyb3IiKTtQZShuLCJcdTY1RTBcdTZDRDVcdTUyMjBcdTk2NjRcdTUzODZcdTUzRjJcdTRGMUFcdThCRERcdTMwMDIiKX0pfSwyNTApfWZ1bmN0aW9uIEhnKGUsdCl7RW8oZSx0KX1mdW5jdGlvbiBVcChlLHQsbil7ZSYmZmV0Y2goIi9hcGkvY2xhdWRlLWhpc3Rvcnk/Y3dkPSIrZW5jb2RlVVJJQ29tcG9uZW50KGUpLHttZXRob2Q6IkRFTEVURSIsY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24oaSl7cmV0dXJuIGkuanNvbigpfSkudGhlbihmdW5jdGlvbihpKXtpZihpJiZpLmVycm9yKXRocm93IG5ldyBFcnJvcihpLmVycm9yKTtyLmNsYXVkZUhpc3Rvcnk9ci5jbGF1ZGVIaXN0b3J5LmZpbHRlcihmdW5jdGlvbihhKXtyZXR1cm4gYS5jd2QhPT1lfSksbWUoKX0pLmNhdGNoKGZ1bmN0aW9uKCl7Rm8obiwhMSk7dmFyIGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFjdGlvbi1lcnJvciIpO1BlKGksIlx1NjVFMFx1NkNENVx1NkUwNVx1NzQwNlx1OEJFNVx1NzZFRVx1NUY1NVx1NzY4NFx1NTM4Nlx1NTNGMlx1NEYxQVx1OEJERFx1MzAwMiIpfSl9ZnVuY3Rpb24gRm8oZSx0KXtlLmZvckVhY2goZnVuY3Rpb24obil7bi5jbGFzc0xpc3QudG9nZ2xlKCJkZWxldGluZyIsdCl9KX1mdW5jdGlvbiBWcChlKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmNsYXVkZS1oaXN0b3J5LWl0ZW1bZGF0YS1jd2Q9Iicrd2luZG93LkNTUy5lc2NhcGUoU3RyaW5nKGUpKSsnIl0nKSl9dmFyIHdvPW51bGwseHI9bnVsbDtmdW5jdGlvbiBTcigpe2lmKHhyKXt4ci5jbGFzc0xpc3QucmVtb3ZlKCJzd2lwZWQiKTt2YXIgZT14ci5xdWVyeVNlbGVjdG9yKCIuc2Vzc2lvbi1pdGVtLWNvbnRlbnQiKTtlJiYoZS5zdHlsZS50cmFuc2Zvcm09IiIpLHhyPW51bGx9fWZ1bmN0aW9uIEtwKGUpe3dvPW51bGwseHI9bnVsbH1mdW5jdGlvbiBKcChlLHQsbil7ZT09PSJjbGF1ZGUiJiYoci5wcmVmZXJyZWRDb21tYW5kPWUsci5jaGF0TW9kZT1JdChlLHIuY2hhdE1vZGUpKTt2YXIgaT1yLmNoYXRNb2RlbHx8ci5jb25maWcmJnIuY29uZmlnLmRlZmF1bHRNb2RlbHx8IiI7cmV0dXJuIGZldGNoKCIvYXBpL2NvbW1hbmRzIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeShodCh7Y29tbWFuZDplLGN3ZDp0fHwiIixtb2RlOnIuY2hhdE1vZGV8fHIuY29uZmlnLmRlZmF1bHRNb2RlfHwiZGVmYXVsdCIsbW9kZWw6aXx8dm9pZCAwLHRoaW5raW5nRWZmb3J0OnIuY2hhdFRoaW5raW5nfHx2b2lkIDB9KSl9KS50aGVuKGZ1bmN0aW9uKGEpe3JldHVybiBhLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24oYSl7cmV0dXJuIGEuZXJyb3I/KG4mJlBlKG4sYS5lcnJvciksbnVsbCk6KHIuc2VsZWN0ZWRJZD1hLmlkLHdlKCksci5kcmFmdHNbYS5pZF09IiIsYSl9KX12YXIgUGE9ITE7ZnVuY3Rpb24gQ28oZSx0KXtyZXR1cm4hZXx8UGE/UHJvbWlzZS5yZXNvbHZlKG51bGwpOihQYT0hMCxmZXRjaCgiL2FwaS9zZXNzaW9ucy8iK2VuY29kZVVSSUNvbXBvbmVudChlKSsiL3Jlc3VtZSIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkoaHQoe21vZGU6ci5jaGF0TW9kZXx8ci5jb25maWcuZGVmYXVsdE1vZGV8fCJkZWZhdWx0In0pKX0pLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIG4uanNvbigpfSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gbi5lcnJvcj8odD9QZSh0LG4uZXJyb3IpOmsobi5lcnJvciwiZXJyb3IiKSxudWxsKTooci5zZWxlY3RlZElkPW4uaWQsd2UoKSxyLmRyYWZ0c1tuLmlkXT0iIixuKX0pLmNhdGNoKGZ1bmN0aW9uKG4pe3ZhciBpPW4mJm4ubWVzc2FnZXx8Ilx1NjVFMFx1NkNENVx1NjA2Mlx1NTkwRFx1NEYxQVx1OEJERFx1MzAwMiI7cmV0dXJuIHQ/UGUodCxpKTprKGksImVycm9yIiksbnVsbH0pLmZpbmFsbHkoZnVuY3Rpb24oKXtQYT0hMX0pKX1mdW5jdGlvbiBfZyhlLHQpe3JldHVybiBlP2ZldGNoKCIvYXBpL2NsYXVkZS1zZXNzaW9ucy8iK2VuY29kZVVSSUNvbXBvbmVudChlKSsiL3Jlc3VtZSIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkoaHQoe21vZGU6ci5jaGF0TW9kZXx8ci5jb25maWcuZGVmYXVsdE1vZGV8fCJkZWZhdWx0In0pKX0pLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIG4uanNvbigpfSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gbi5lcnJvcj8odD9QZSh0LG4uZXJyb3IpOmsobi5lcnJvciwiZXJyb3IiKSxudWxsKTooci5jbGF1ZGVIaXN0b3J5PXIuY2xhdWRlSGlzdG9yeS5maWx0ZXIoZnVuY3Rpb24oaSl7cmV0dXJuIGkuY2xhdWRlU2Vzc2lvbklkIT09ZX0pLHIuc2VsZWN0ZWRJZD1uLmlkLHdlKCksci5kcmFmdHNbbi5pZF09IiIsbil9KS5jYXRjaChmdW5jdGlvbihuKXt2YXIgaT1uJiZuLm1lc3NhZ2V8fCJcdTY1RTBcdTZDRDVcdTYzMDkgQ2xhdWRlIFx1NEYxQVx1OEJERCBJRCBcdTYwNjJcdTU5MERcdTRGMUFcdThCRERcdTMwMDIiO3JldHVybiB0P1BlKHQsaSk6ayhpLCJlcnJvciIpLG51bGx9KTpQcm9taXNlLnJlc29sdmUobnVsbCl9ZnVuY3Rpb24gdm4oZSl7cmV0dXJuIWV8fCFlLmlkP1Byb21pc2UucmVzb2x2ZSgpOihyLnNlbGVjdGVkSWQ9ZS5pZCx3ZSgpLHIuY3VycmVudE1lc3NhZ2VzPVtdLHlyKCksQXQoKSxEcihlLmlkKSwkKGUpLG1lKCkscW4oZS5pZCksaG4oZS5pZCkudGhlbihmdW5jdGlvbigpe2p0KCEwKX0pKX1mdW5jdGlvbiBCbyhlKXtyZXR1cm4gQ28oZSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gdD8odC5jbGF1ZGVTZXNzaW9uSWQmJih0LnByb3ZpZGVyPT09ImNvZGV4Ij9yLmNvZGV4SGlzdG9yeT1yLmNvZGV4SGlzdG9yeS5maWx0ZXIoZnVuY3Rpb24obil7cmV0dXJuIG4uY2xhdWRlU2Vzc2lvbklkIT09dC5jbGF1ZGVTZXNzaW9uSWR9KTpyLmNsYXVkZUhpc3Rvcnk9ci5jbGF1ZGVIaXN0b3J5LmZpbHRlcihmdW5jdGlvbihuKXtyZXR1cm4gbi5jbGF1ZGVTZXNzaW9uSWQhPT10LmNsYXVkZVNlc3Npb25JZH0pKSx2bih0KS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHR9KSk6bnVsbH0pfWZ1bmN0aW9uIE5nKGUsdCxuKXtyZXR1cm4gSnAoZSx0LG4pLnRoZW4oZnVuY3Rpb24oaSl7cmV0dXJuIGk/dm4oaSkudGhlbihmdW5jdGlvbigpe3JldHVybiBpfSk6bnVsbH0pfWZ1bmN0aW9uIGpnKGUpe3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3ZWxjb21lLWlucHV0Iik7aWYodCl7dC5wbGFjZWhvbGRlcj0iXHU2QjYzXHU1NzI4XHU2MDFEXHU4MDAzXHUyMDI2Iix0LmRpc2FibGVkPSEwO3ZhciBuPXIuY2hhdE1vZGV8fCJtYW5hZ2VkIixpPWV0KCksYT10dCgpLHU9ci5jaGF0TW9kZWx8fHIuY29uZmlnJiZyLmNvbmZpZy5kZWZhdWx0TW9kZWx8fCIiO2ZldGNoKCIvYXBpL2NvbW1hbmRzIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeShodCh7Y29tbWFuZDphLGN3ZDppLG1vZGU6bixpbml0aWFsSW5wdXQ6ZSxtb2RlbDp1fHx2b2lkIDAsdGhpbmtpbmdFZmZvcnQ6ci5jaGF0VGhpbmtpbmd8fHZvaWQgMH0pKX0pLnRoZW4oZnVuY3Rpb24ocyl7cmV0dXJuIHMuanNvbigpfSkudGhlbihmdW5jdGlvbihzKXtyZXR1cm4gcy5lcnJvcj8oayhzLmVycm9yLCJlcnJvciIpLHQucGxhY2Vob2xkZXI9Ilx1OEY5M1x1NTE2NVx1NkQ4OFx1NjA2RiIsdC5kaXNhYmxlZD0hMSxudWxsKTp2bihzKX0pLmNhdGNoKGZ1bmN0aW9uKHMpe2socyYmcy5tZXNzYWdlfHwiXHU2NUUwXHU2Q0Q1XHU1NDJGXHU1MkE4XHU0RjFBXHU4QkREXHUzMDAyIiwiZXJyb3IiKSx0LnBsYWNlaG9sZGVyPSJcdThGOTNcdTUxNjVcdTZEODhcdTYwNkYiLHQuZGlzYWJsZWQ9ITF9KS5maW5hbGx5KGZ1bmN0aW9uKCl7dC5wbGFjZWhvbGRlcj0iXHU4RjkzXHU1MTY1XHU2RDg4XHU2MDZGIix0LmRpc2FibGVkPSExfSl9fWZ1bmN0aW9uIFJnKGUsdCxuKXt2YXIgaT1yLmNoYXRNb2RlfHwibWFuYWdlZCIsYT1ldCgpLHU9dHQoKSxzPXIuY2hhdE1vZGVsfHxyLmNvbmZpZyYmci5jb25maWcuZGVmYXVsdE1vZGVsfHwiIjtmZXRjaCgiL2FwaS9jb21tYW5kcyIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkoaHQoe2NvbW1hbmQ6dSxjd2Q6YSxtb2RlOmksaW5pdGlhbElucHV0OmV8fHZvaWQgMCxtb2RlbDpzfHx2b2lkIDAsdGhpbmtpbmdFZmZvcnQ6ci5jaGF0VGhpbmtpbmd8fHZvaWQgMH0pKX0pLnRoZW4oZnVuY3Rpb24obyl7cmV0dXJuIG8uanNvbigpfSkudGhlbihmdW5jdGlvbihvKXtyZXR1cm4gby5lcnJvcj8oayhvLmVycm9yLCJlcnJvciIpLG51bGwpOih0JiYodC52YWx1ZT0iIiksbiYmKG4udmFsdWU9IiIpLHZuKG8pKX0pLmNhdGNoKGZ1bmN0aW9uKG8pe2sobyYmby5tZXNzYWdlfHwiXHU2NUUwXHU2Q0Q1XHU1NDJGXHU1MkE4XHU0RjFBXHU4QkREXHUzMDAyIiwiZXJyb3IiKX0pfWZ1bmN0aW9uIEdwKGUpe2UuZGlzYWJsZWQ9ITAsQm8oZS5kYXRhc2V0LnNlc3Npb25JZCkuZmluYWxseShmdW5jdGlvbigpe2UuZGlzYWJsZWQ9ITF9KX1mdW5jdGlvbiBZcChlKXt2YXIgdD1lLmRhdGFzZXQuY2xhdWRlU2Vzc2lvbklkLG49ZS5kYXRhc2V0LmN3ZDt0JiYoZS5kaXNhYmxlZD0hMCxRcCh0LG4pLnRoZW4oZnVuY3Rpb24oaSl7aSYmaS5pZCYmKHIuY29kZXhIaXN0b3J5PXIuY29kZXhIaXN0b3J5LmZpbHRlcihmdW5jdGlvbihhKXtyZXR1cm4gYS5jbGF1ZGVTZXNzaW9uSWQhPT10fSksci5zZWxlY3RlZElkPWkuaWQsd2UoKSxyLmRyYWZ0c1tpLmlkXT0iIix2bihpKS50aGVuKGZ1bmN0aW9uKCl7VXQoKX0pKX0pLmZpbmFsbHkoZnVuY3Rpb24oKXtlLmRpc2FibGVkPSExfSkpfWZ1bmN0aW9uIFFwKGUsdCl7cmV0dXJuIGZldGNoKCIvYXBpL2NvZGV4LXNlc3Npb25zLyIrZW5jb2RlVVJJQ29tcG9uZW50KGUpKyIvcmVzdW1lIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeShodCh7bW9kZTpyLmNoYXRNb2RlfHxyLmNvbmZpZyYmci5jb25maWcuZGVmYXVsdE1vZGV8fCJkZWZhdWx0Iixjd2Q6dH0pKX0pLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIG4uanNvbigpfSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gbi5lcnJvcj8oayhuLmVycm9yLCJlcnJvciIpLG51bGwpOm59KS5jYXRjaChmdW5jdGlvbihuKXtyZXR1cm4gayhuJiZuLm1lc3NhZ2V8fCJcdTY1RTBcdTZDRDVcdTYwNjJcdTU5MERcdTUzODZcdTUzRjJcdTRGMUFcdThCRERcdTMwMDIiLCJlcnJvciIpLG51bGx9KX1mdW5jdGlvbiAkcChlKXt2YXIgdD1lLmRhdGFzZXQuY2xhdWRlU2Vzc2lvbklkO3QmJnhuKCJcdTc4NkVcdThCQTRcdTk2OTBcdTg1Q0ZcdThGRDlcdTY3NjEgQ29kZXggXHU1Mzg2XHU1M0YyXHU0RjFBXHU4QkREXHU1NDE3XHVGRjFGIix7dGl0bGU6Ilx1OTY5MFx1ODVDRiBDb2RleCBcdTUzODZcdTUzRjIiLG9rTGFiZWw6Ilx1OTY5MFx1ODVDRiJ9KS50aGVuKGZ1bmN0aW9uKG4pe2lmKG4pe3ZhciBpPWUuY2xvc2VzdCgiLmNsYXVkZS1oaXN0b3J5LWl0ZW0iKTtpJiYoaS5zdHlsZS5vcGFjaXR5PSIwLjUiKSxmZXRjaCgiL2FwaS9jb2RleC1oaXN0b3J5LyIrZW5jb2RlVVJJQ29tcG9uZW50KHQpLHttZXRob2Q6IkRFTEVURSIsY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24oYSl7cmV0dXJuIGEuanNvbigpfSkudGhlbihmdW5jdGlvbihhKXthJiZhLm9rPyhyLmNvZGV4SGlzdG9yeT1yLmNvZGV4SGlzdG9yeS5maWx0ZXIoZnVuY3Rpb24odSl7cmV0dXJuIHUuY2xhdWRlU2Vzc2lvbklkIT09dH0pLG1lKCkpOmkmJihpLnN0eWxlLm9wYWNpdHk9IjEiKX0pLmNhdGNoKGZ1bmN0aW9uKCl7aSYmKGkuc3R5bGUub3BhY2l0eT0iMSIpfSl9fSl9ZnVuY3Rpb24gWHAoZSl7dmFyIHQ9ZS5kYXRhc2V0LmNsYXVkZVNlc3Npb25JZCxuPWUuZGF0YXNldC5jd2Q7dCYmKGUuZGlzYWJsZWQ9ITAsYmkodCxuKS50aGVuKGZ1bmN0aW9uKGkpe2kmJmkuaWQmJihyLmNsYXVkZUhpc3Rvcnk9ci5jbGF1ZGVIaXN0b3J5LmZpbHRlcihmdW5jdGlvbihhKXtyZXR1cm4gYS5jbGF1ZGVTZXNzaW9uSWQhPT10fSksci5zZWxlY3RlZElkPWkuaWQsd2UoKSxyLmRyYWZ0c1tpLmlkXT0iIix2bihpKS50aGVuKGZ1bmN0aW9uKCl7VXQoKX0pKX0pLmZpbmFsbHkoZnVuY3Rpb24oKXtlLmRpc2FibGVkPSExfSkpfWZ1bmN0aW9uIGJpKGUsdCl7cmV0dXJuIGZldGNoKCIvYXBpL2NsYXVkZS1zZXNzaW9ucy8iK2VuY29kZVVSSUNvbXBvbmVudChlKSsiL3Jlc3VtZSIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkoaHQoe21vZGU6ci5jaGF0TW9kZXx8ci5jb25maWcmJnIuY29uZmlnLmRlZmF1bHRNb2RlfHwiZGVmYXVsdCIsY3dkOnR9KSl9KS50aGVuKGZ1bmN0aW9uKG4pe3JldHVybiBuLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIG4uZXJyb3I/KGsobi5lcnJvciwiZXJyb3IiKSxudWxsKTpufSkuY2F0Y2goZnVuY3Rpb24obil7cmV0dXJuIGsobiYmbi5tZXNzYWdlfHwiXHU2NUUwXHU2Q0Q1XHU2MDYyXHU1OTBEXHU1Mzg2XHU1M0YyXHU0RjFBXHU4QkREXHUzMDAyIiwiZXJyb3IiKSxudWxsfSl9ZnVuY3Rpb24gSXIoKXtyZXR1cm4ib250b3VjaHN0YXJ0ImluIHdpbmRvd3x8bmF2aWdhdG9yLm1heFRvdWNoUG9pbnRzPjB9ZnVuY3Rpb24ganQoZSl7aWYoIXIudGVybWluYWxJbnRlcmFjdGl2ZSl7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0LWJveCIpOyF0fHwhci5zZWxlY3RlZElkfHxkb2N1bWVudC5hY3RpdmVFbGVtZW50IT09dCYmKGUmJklyKCl8fEhhKHQpKX19ZnVuY3Rpb24gV2coKXt2YXIgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuY2hhdC1tZXNzYWdlcyIpO2UmJihlLnNjcm9sbFRvcD0wKX1mdW5jdGlvbiBEbygpe3ZhciBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5pbnB1dC1wYW5lbCIpO2UmJmUuc3R5bGUucmVtb3ZlUHJvcGVydHkoIi0ta2V5Ym9hcmQtb2Zmc2V0Iil9ZnVuY3Rpb24ga28oKXt2YXIgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuaW5wdXQtcGFuZWwiKTtlJiZlLnN0eWxlLnJlbW92ZVByb3BlcnR5KCItLWtleWJvYXJkLW9mZnNldCIpfWZ1bmN0aW9uIEVpKGUpe2lmKGUpe3ZhciB0PWUuc2VsZWN0aW9uU3RhcnQsbj1lLnNlbGVjdGlvbkVuZDtGaShlKSx0eXBlb2YgdD09Im51bWJlciImJnR5cGVvZiBuPT0ibnVtYmVyIiYmZS5zZXRTZWxlY3Rpb25SYW5nZSh0LG4pfX1mdW5jdGlvbiBBbyhlKXshZXx8ZS5kYXRhc2V0LnRvdWNoU2Nyb2xsQm91bmQ9PT0idHJ1ZSJ8fChlLmRhdGFzZXQudG91Y2hTY3JvbGxCb3VuZD0idHJ1ZSIsZS5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IixmdW5jdGlvbigpe2Uuc2Nyb2xsSGVpZ2h0PD1lLmNsaWVudEhlaWdodCsxfHwoZS5zY3JvbGxUb3A8PTA/ZS5zY3JvbGxUb3A9MTplLnNjcm9sbFRvcCtlLmNsaWVudEhlaWdodD49ZS5zY3JvbGxIZWlnaHQmJihlLnNjcm9sbFRvcD1NYXRoLm1heCgxLGUuc2Nyb2xsSGVpZ2h0LWUuY2xpZW50SGVpZ2h0LTEpKSl9LHtwYXNzaXZlOiEwfSkpfWZ1bmN0aW9uIHhvKGUpe2UmJihOdChlKSxFaShlKSl9ZnVuY3Rpb24gWnAoZSl7dmFyIHQ9ZSYmZS50YXJnZXQ/ZS50YXJnZXQ6ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0LWJveCIpO3QmJihEbygpLHhvKHQpKX1mdW5jdGlvbiBldihlKXt2YXIgdD1lJiZlLnRhcmdldD9lLnRhcmdldDpkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wdXQtYm94Iik7a28oKSx4cygyMjAwLHQpO3ZhciBuPVs4MCwyMDAsMzgwLDYyMCw5MDBdO24uZm9yRWFjaChmdW5jdGlvbihpLGEpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXtVbighMSksYT09PTEmJklyKCkmJihaZSgia2V5Ym9hcmQtYmx1ciIse2ZvcmNlUmVwbGF5OiEwfSksRnQoImtleWJvYXJkIikpfSxpKX0pfWZ1bmN0aW9uIHR2KGUpe2UmJihlLnNldFNlbGVjdGlvblJhbmdlKGUudmFsdWUubGVuZ3RoLGUudmFsdWUubGVuZ3RoKSxFaShlKSl9ZnVuY3Rpb24gSGEoZSl7ZSYmKGUuZm9jdXMoe3ByZXZlbnRTY3JvbGw6ITB9KSx0dihlKSl9ZnVuY3Rpb24gbnYoZSl7QW8oZSkseG8oZSl9ZnVuY3Rpb24gcnYoZSl7SGEoZSl9ZnVuY3Rpb24gemcoZSl7RG8oKSxFaShlKX1mdW5jdGlvbiBpdigpe2tvKCl9ZnVuY3Rpb24gYXYoZSl7RWkoZSl9ZnVuY3Rpb24gVWcoZSl7cnYoZSl9ZnVuY3Rpb24gdXYoZSl7bnYoZSl9ZnVuY3Rpb24gVmcoKXtpdigpfWZ1bmN0aW9uIEtnKGUpe2F2KGUpfWZ1bmN0aW9uIHN2KGUsdCl7aWYoIWV8fCF0fHxkb2N1bWVudC5hY3RpdmVFbGVtZW50IT09dClyZXR1cm4hMTt2YXIgbj13aW5kb3cuaW5uZXJIZWlnaHQtZS5oZWlnaHQtZS5vZmZzZXRUb3A7aWYobjw9NTApcmV0dXJuITE7dmFyIGk9dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtyZXR1cm4gaS5ib3R0b20+ZS5oZWlnaHQtMTJ9ZnVuY3Rpb24gRmkoZSl7aWYoZSl7dmFyIHQ9ZS5zY3JvbGxIZWlnaHQ+ZS5jbGllbnRIZWlnaHQrMTtpZighdCl7ZS5zY3JvbGxUb3A9MDtyZXR1cm59ZS5zY3JvbGxUb3A9ZS5zY3JvbGxIZWlnaHR9fWZ1bmN0aW9uIFNvKCl7aWYoci50ZXJtaW5hbEludGVyYWN0aXZlKXtJbygpO3JldHVybn1pZighSXIoKSl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0LWJveCIpOyFlfHwhci5zZWxlY3RlZElkfHxkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09ZXx8SGEoZSl9fWZ1bmN0aW9uIElvKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpO2UmJihlLnNldEF0dHJpYnV0ZSgidGFiaW5kZXgiLCIwIiksZS5mb2N1cygpLHIudGVybWluYWwmJnIudGVybWluYWwuZm9jdXMmJnIudGVybWluYWwuZm9jdXMoKSl9ZnVuY3Rpb24gb3YoKXt2YXIgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuaW5wdXQtcGFuZWwiKSx0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5jaGF0LW1lc3NhZ2VzIik7aWYoInZpcnR1YWxLZXlib2FyZCJpbiBuYXZpZ2F0b3Ipe3ZhciBuPW5hdmlnYXRvci52aXJ0dWFsS2V5Ym9hcmQ7bi5hZGRFdmVudExpc3RlbmVyKCJnZW9tZXRyeWNoYW5nZSIsZnVuY3Rpb24oKXtlJiZlLnN0eWxlLnJlbW92ZVByb3BlcnR5KCJwYWRkaW5nLWJvdHRvbSIpfSl9dmFyIGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpO2kmJmkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7U28oKX0pLHQmJnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKGEpe3ZhciB1PWEudGFyZ2V0O3UudGFnTmFtZSE9PSJBIiYmdS50YWdOYW1lIT09IkJVVFRPTiImJiF1LmNsb3Nlc3QoImJ1dHRvbiIpJiYhdS5jbG9zZXN0KCJbZGF0YS10b29sLXRvZ2dsZV0iKSYmU28oKX0pLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihhKXtpZihJcigpKXt2YXIgdT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wdXQtYm94Iik7aWYoISghdXx8ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCE9PXUpKXt2YXIgcz1hLnRhcmdldDshc3x8dHlwZW9mIHMuY2xvc2VzdCE9ImZ1bmN0aW9uInx8cy5jbG9zZXN0KCIuaW5wdXQtcGFuZWwiKXx8cy5jbG9zZXN0KCIjbWluaS1rZXlib2FyZCIpfHxzLmNsb3Nlc3QoIiNtaW5pLWtleWJvYXJkLWZhYiIpfHxzLmNsb3Nlc3QoIiNtaW5pLWtleWJvYXJkLXRvZ2dsZSIpfHxzLmNsb3Nlc3QoIiN0ZXJtaW5hbC1pbnRlcmFjdGl2ZS10b2dnbGUiKXx8cy5jbG9zZXN0KCIud2FuZC1qb3lzdGljay1yb290Iil8fHUuYmx1cigpfX19LCEwKX1mdW5jdGlvbiBfYSgpe3RyeXt3aW5kb3cuc2Nyb2xsVG8oMCwwKX1jYXRjaHt9ZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudCYmKGRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wPTApLGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCYmKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3A9MCksZG9jdW1lbnQuYm9keSYmKGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wPTApfWZ1bmN0aW9uIFdlKGUpe3IucmVuZGVyUGVuZGluZyYmIWV8fChyLnJlbmRlclBlbmRpbmc9ITAsZT8od2koITApLHIucmVuZGVyUGVuZGluZz0hMSk6cmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7d2koITEpLHIucmVuZGVyUGVuZGluZz0hMX0pKX1yLmNoYXRSZW5kZXJUaW1lcj1udWxsO2Z1bmN0aW9uIE5hKGUpe2lmKCEoci5jaGF0UmVuZGVyVGltZXImJiFlKSl7aWYoci5jaGF0UmVuZGVyVGltZXImJmNsZWFyVGltZW91dChyLmNoYXRSZW5kZXJUaW1lciksZSl7ci5jaGF0UmVuZGVyVGltZXI9bnVsbCxXZSgpO3JldHVybn10cnl7d2luZG93Ll9fc2NoZWR1bGVDaGF0UmVuZGVyPWZ1bmN0aW9uKCl7TmEoITApfX1jYXRjaHt9dmFyIHQ9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGEpe3JldHVybiBhLmlkPT09ci5zZWxlY3RlZElkfSksbj10JiZ0LnN0YXR1cz09PSJydW5uaW5nIiYmdC5zZXNzaW9uS2luZCE9PSJzdHJ1Y3R1cmVkIixpPW4/anM6UnM7ci5jaGF0UmVuZGVyVGltZXI9c2V0VGltZW91dChmdW5jdGlvbigpe3IuY2hhdFJlbmRlclRpbWVyPW51bGw7dmFyIGE9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKHUpe3JldHVybiB1LmlkPT09ci5zZWxlY3RlZElkfSk7YSYmKHIuY3VycmVudE1lc3NhZ2VzPVJlKGEsbnQoYSxhLm91dHB1dCwhMCkpKSxXZSgpfSxpKX19ZnVuY3Rpb24gbHYoZSx0KXtpZighZXx8IXR8fHQubGVuZ3RoPT09MClyZXR1cm5bXTtmdW5jdGlvbiBuKHcpe3JldHVybiB3LnJlcGxhY2UoL1x4MUIoPzpbQC1aXFwtX118XFtbMC0/XSpbIC0vXSpbQC1+XSkvZywiIil9Zm9yKHZhciBpPW4oZSksYT1bXSx1PVtdLHM9MDtzPHQubGVuZ3RoO3MrKylpZih0W3NdLnJvbGU9PT0idXNlciIpe3ZhciBvPSIiLGw9dFtzXS5jb250ZW50O2lmKHR5cGVvZiBsPT0ic3RyaW5nIilvPWw7ZWxzZSBpZihBcnJheS5pc0FycmF5KGwpKXtmb3IodmFyIGM9MDtjPGwubGVuZ3RoO2MrKylpZihsW2NdLnR5cGU9PT0idGV4dCIpe289bFtjXS50ZXh0O2JyZWFrfX1vJiZ1LnB1c2goe3RleHQ6byxpbmRleDpzfSl9Zm9yKHZhciBmPTAscz0wO3M8dS5sZW5ndGg7cysrKXt2YXIgZD11W3NdLHY9aS5pbmRleE9mKCJcdTI3NkYgIitkLnRleHQsZik7aWYodj09PS0xJiYodj1pLmluZGV4T2YoYApcdTI3NkYgYCtkLnRleHQsZiksdiE9PS0xJiYodis9MSkpLHY+Zil7Zm9yKHZhciBoPWkuc3Vic3RyaW5nKGYsdiksZz1oLnNwbGl0KGAKYCksbT1bXSxjPTA7YzxnLmxlbmd0aDtjKyspe3ZhciB5PWdbY10udHJpbSgpOyF5fHx5LnN0YXJ0c1dpdGgoIlx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMCIpfHx5PT09Ilx1Mjc2RiJ8fHk9PT0iPyJ8fHk9PT0iInx8eS5pbmNsdWRlcygiQ2xhdWRlIENvZGUgdiIpfHx5LmluY2x1ZGVzKCJPcHVzIikmJnkuaW5jbHVkZXMoIndpdGgiKXx8eS5pbmNsdWRlcygiU29ubmV0IikmJnkuaW5jbHVkZXMoIndpdGgiKXx8eS5pbmNsdWRlcygiQVBJIFVzYWdlIil8fHkuaW5jbHVkZXMoIkJpbGxpbmciKXx8eS5pbmNsdWRlcygiZm9yIHNob3J0Y3V0cyIpfHx5LmluY2x1ZGVzKCIvZWZmb3J0Iil8fHkubWF0Y2goL15b4pa44paQ4pad4paY4paX4paW4paI4paM4paN4paO4paP4paU4paB4paC4paD4paE4paF4paG4paH4paI4paIXS8pfHx5Lm1hdGNoKC9eW+KWuOKWkOKWneKWmOKWl+KWluKWiOKWjOKWjeKWjuKWj+KWlOKWgeKWguKWg+KWhOKWheKWhuKWh+KWiOKWiF17Myx9Lyl8fHkubGVuZ3RoPjMmJm0ucHVzaCh5KX1tLmxlbmd0aD4wJiZhLnB1c2goe2JlZm9yZU1lc3NhZ2U6ZC5pbmRleCxjb250ZW50Om0uam9pbihgCmApfSl9Zj12K2QudGV4dC5sZW5ndGgrMn1yZXR1cm4gYX1mdW5jdGlvbiBqYShlKXtpZighZSlyZXR1cm4gbnVsbDt2YXIgdD1lLnF1ZXJ5U2VsZWN0b3IoIi5jaGF0LW1lc3NhZ2VzIik7cmV0dXJuIHR8fCh0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHQuY2xhc3NOYW1lPSJjaGF0LW1lc3NhZ2VzIixlLmFwcGVuZENoaWxkKHQpLHQpfWZ1bmN0aW9uIFRvKGUsdCl7dmFyIG49amEoZSk7cmV0dXJuIG4/KG4uaW5uZXJIVE1MPXQsS3Qobiksc3IoKSwkZSgpLG4pOm51bGx9ZnVuY3Rpb24gd2koZSl7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoYXQtb3V0cHV0Iik7aWYoIXQpcmV0dXJuO3ZhciBuPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihHKXtyZXR1cm4gRy5pZD09PXIuc2VsZWN0ZWRJZH0pO2lmKCFuKXtyLmxhc3RSZW5kZXJlZEVtcHR5IT09Im5vbmUiJiYoVG8odCwnPGRpdiBjbGFzcz0iZW1wdHktc3RhdGUiPjxzdHJvbmc+XHU2NzJBXHU5MDA5XHU2MkU5XHU0RjFBXHU4QkREPC9zdHJvbmc+PGJyPlx1NzBCOVx1NTFGQlx1NEUwQVx1NjVCOVx1MzAwQ1x1NjVCMFx1NUJGOVx1OEJERFx1MzAwRFx1NUYwMFx1NTlDQlx1NEY2MFx1NzY4NFx1N0IyQ1x1NEUwMFx1NkIyMVx1NUJGOVx1OEJERFx1MzAwMjwvZGl2PicpLHIubGFzdFJlbmRlcmVkRW1wdHk9Im5vbmUiLHIubGFzdFJlbmRlcmVkTXNnQ291bnQ9MCk7cmV0dXJufXZhciBpPXIuY3VycmVudE1lc3NhZ2VzLGE9SHYoaSk7aWYoemE9X3YoaSksaS5sZW5ndGg9PT0wKXtpZihyLmxhc3RSZW5kZXJlZEVtcHR5IT09ImVtcHR5Iil7dmFyIHU9IiI7dWUobikmJih1PSc8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZS10cmlvLXdyYXAiPjxkaXYgY2xhc3M9ImVtcHR5LXN0YXRlLXRyaW8taGludCI+XHU5RUQ4XHU4QkE0XHU0RjFBXHU2MzA5XHU0RUU1XHU0RTBCXHU4QkJFXHU3RjZFXHU1M0QxXHU5MDAxXHVGRjBDXHU1M0VGXHU3MEI5XHU1MUZCXHU4QzAzXHU2NTc0XHVGRjFBPC9kaXY+JythbChuLHtraW5kOiJkcm9wZG93biJ9KSsiPC9kaXY+IiksVG8odCwnPGRpdiBjbGFzcz0iZW1wdHktc3RhdGUiPjxzdHJvbmc+XHU1QkY5XHU4QkREXHU1REYyXHU1RjAwXHU1OUNCPC9zdHJvbmc+PGJyPlx1NTcyOFx1NEUwQlx1NjVCOVx1OEY5M1x1NTE2NVx1Njg0Nlx1NTNEMVx1OTAwMVx1NkQ4OFx1NjA2Rlx1RkYwQ0NsYXVkZSBcdTRGMUFcdTgxRUFcdTUyQThcdTU2REVcdTU5MERcdTMwMDI8L2Rpdj4nK3UpLHIubGFzdFJlbmRlcmVkRW1wdHk9ImVtcHR5IixyLmxhc3RSZW5kZXJlZE1zZ0NvdW50PTB9eXUobnVsbCxuKSxXYShbXSk7cmV0dXJufXZhciBzPWkubGVuZ3RoO3M+ci5jaGF0UmVuZGVyZWRDb3VudCYmKHIuY2hhdFJlbmRlcmVkQ291bnQ9cyk7dmFyIG89TWF0aC5tYXgoMCxzLXIuY2hhdFJlbmRlcmVkQ291bnQpLGw9bz4wP2kuc2xpY2Uobyk6aSxjPXR5cGVvZiBuLm1lc3NhZ2VPZmZzZXQ9PSJudW1iZXIiJiZuLm1lc3NhZ2VPZmZzZXQ+MCxmPW8+MHx8YyxkPWwubGVuZ3RoLHY9bi5vdXRwdXQ/bi5vdXRwdXQubGVuZ3RoOjA7aWYobi5tZXNzYWdlcyYmbi5tZXNzYWdlcy5sZW5ndGg+MCl7Zm9yKHZhciBoPTAsZz0wLG09MDttPG4ubWVzc2FnZXMubGVuZ3RoO20rKyl7dmFyIHk9bi5tZXNzYWdlc1ttXS5jb250ZW50O2lmKHkpaWYoQXJyYXkuaXNBcnJheSh5KSl7aCs9eS5sZW5ndGg7Zm9yKHZhciB3PTA7dzx5Lmxlbmd0aDt3Kyspe3ZhciBFPXlbd107RS50ZXh0JiYoZys9RS50ZXh0Lmxlbmd0aCksRS50aGlua2luZyYmKGcrPUUudGhpbmtpbmcubGVuZ3RoKSxFLmNvbnRlbnQmJihnKz1FLmNvbnRlbnQubGVuZ3RoKSxFLmlkJiYoZys9RS5pZC5sZW5ndGgpLEUudG9vbF91c2VfaWQmJihnKz1FLnRvb2xfdXNlX2lkLmxlbmd0aCksRS5kZXNjcmlwdGlvbiYmKGcrPUUuZGVzY3JpcHRpb24ubGVuZ3RoKSxFLmlucHV0JiYoZys9SlNPTi5zdHJpbmdpZnkoRS5pbnB1dCkubGVuZ3RoKX19ZWxzZSBoKz0xLGc9U3RyaW5nKHkpLmxlbmd0aH12PWQqMWU1K2gqMWUzK2d9dmFyIEI9ZXx8ZCE9PXIubGFzdFJlbmRlcmVkTXNnQ291bnQ7aWYoIUImJmQ9PT1yLmxhc3RSZW5kZXJlZE1zZ0NvdW50JiZ2PT09ci5sYXN0UmVuZGVyZWRIYXNoKXt2YXIgRj10LnF1ZXJ5U2VsZWN0b3IoIi5jaGF0LW1lc3NhZ2VzIik7RiYmeXUoRixuKSxXYShpKTtyZXR1cm59dmFyIHg9ci5sYXN0UmVuZGVyZWRIYXNoLFM9ci5sYXN0UmVuZGVyZWRNc2dDb3VudDtpZihyLmxhc3RSZW5kZXJlZE1zZ0NvdW50PWQsci5sYXN0UmVuZGVyZWRIYXNoPXYsRj1qYSh0KSwhRilyZXR1cm47dmFyIF89S2koRiksVj0hci5jaGF0SW5pdGlhbFJlbmRlckRvbmUsVT1GLnF1ZXJ5U2VsZWN0b3JBbGwoIi5jaGF0LW1lc3NhZ2U6bm90KC5zeXN0ZW0taW5mbykiKS5sZW5ndGgsST1CfHxVPT09MHx8ZCE9PVU7ZnVuY3Rpb24gRCgpe2Zvcih2YXIgRz1sdihuLm91dHB1dCxsKSxlZT0iIixvZT1sLnNsaWNlKCkucmV2ZXJzZSgpLGxlPWwubGVuZ3RoLEJlPTA7QmU8b2UubGVuZ3RoO0JlKyspe2Zvcih2YXIgemU9b2VbQmVdLEp0PWxlLTEtQmUsZHQ9SnQrbyxmdD1udWxsLF9lPTA7X2U8Ry5sZW5ndGg7X2UrKylpZihHW19lXS5iZWZvcmVNZXNzYWdlPT09SnQpe2Z0PUdbX2VdO2JyZWFrfWZ0JiYoZWUrPSc8ZGl2IGNsYXNzPSJjaGF0LW1lc3NhZ2Ugc3lzdGVtLWluZm8iPjxkaXYgY2xhc3M9InN5c3RlbS1pbmZvLWNhcmQiPjxkaXYgY2xhc3M9InN5c3RlbS1pbmZvLWhlYWRlciI+XHUyMTM5XHVGRTBGIFx1N0NGQlx1N0VERlx1NEZFMVx1NjA2RjwvZGl2PjxkaXYgY2xhc3M9InN5c3RlbS1pbmZvLWNvbnRlbnQiPicrcChmdC5jb250ZW50KSsiPC9kaXY+PC9kaXY+PC9kaXY+IiksZWUrPVZhKHplLExbZHRdfHxudWxsLGR0LGEpfWlmKGYpe3ZhciBHdD1vPjA/Ilx1NTJBMFx1OEY3RFx1NjZGNFx1NjVFOVx1NzY4NCAiK01hdGgubWluKHIuY2hhdFBhZ2VTaXplLG8pKyIgXHU2NzYxXHU2RDg4XHU2MDZGIjoiXHU1MkEwXHU4RjdEXHU2NkY0XHU2NUU5XHU3Njg0XHU2RDg4XHU2MDZGIjtlZSs9JzxkaXYgY2xhc3M9ImNoYXQtbG9hZC1tb3JlIiBpZD0iY2hhdC1sb2FkLW1vcmUtc2VudGluZWwiPjxidXR0b24gY2xhc3M9ImNoYXQtbG9hZC1tb3JlLWJ0biIgdHlwZT0iYnV0dG9uIj4nK0d0KyI8L2J1dHRvbj48L2Rpdj4ifXZhciBKZT0tMSxydD0wO2lmKFU+MCYmIV8pZm9yKHZhciBrZT1GLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCxnZT1GLnF1ZXJ5U2VsZWN0b3JBbGwoIi5jaGF0LW1lc3NhZ2U6bm90KC5zeXN0ZW0taW5mbykiKSxiZT0wO2JlPGdlLmxlbmd0aDtiZSsrKXt2YXIgQz1nZVtiZV0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7aWYoQy5ib3R0b20+PWtlKXt2YXIgaXQ9Z2VbYmVdLmdldEF0dHJpYnV0ZSgiZGF0YS1tc2ctaW5kZXgiKTtpdCE9bnVsbCYmKEplPXBhcnNlSW50KGl0LDEwKSxydD1DLnRvcC1rZSk7YnJlYWt9fWlmKEYuaW5uZXJIVE1MPWVlLChmdW5jdGlvbigpe2Zvcih2YXIgcHQ9Ri5xdWVyeVNlbGVjdG9yQWxsKCIuY2hhdC1tZXNzYWdlOm5vdCguc3lzdGVtLWluZm8pIiksdXQ9cHQubGVuZ3RoLEV0PTA7RXQ8dXQ7RXQrKylwdFtFdF0uc2V0QXR0cmlidXRlKCJkYXRhLW1zZy1pbmRleCIsU3RyaW5nKG8rdXQtMS1FdCkpfSkoKSxLdChGKSxTPT09MCYmIXIuY2hhdEluaXRpYWxSZW5kZXJEb25lKUYuc2Nyb2xsVG9wPTAsci5jaGF0U3RpY2tUb0JvdHRvbT0hMCxDbih7cmVtb3ZlRGl2aWRlcjohMH0pLHIuY2hhdEluaXRpYWxSZW5kZXJEb25lPSEwO2Vsc2UgaWYoUz09PTAmJnIuY2hhdFN0aWNrVG9Cb3R0b20pRi5zY3JvbGxUb3A9MDtlbHNlIGlmKF8pRi5zY3JvbGxUb3A9MDtlbHNlIGlmKEplPj0wKXt2YXIgeXQ9Ri5xdWVyeVNlbGVjdG9yKCcuY2hhdC1tZXNzYWdlW2RhdGEtbXNnLWluZGV4PSInK0plKyciXScpO2lmKHl0KXt2YXIgVHQ9Ri5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AsQ3Q9eXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksTHQ9Q3QudG9wLVR0LXJ0O01hdGguYWJzKEx0KT4uNSYmKHIuY2hhdElzUHJvZ3JhbW1hdGljU2Nyb2xsPSEwLEYuc2Nyb2xsVG9wKz1MdCxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXtyLmNoYXRJc1Byb2dyYW1tYXRpY1Njcm9sbD0hMX0pKX19TG8oRiksc3IoKSwkaShGKTt2YXIgWXQ9Ri5xdWVyeVNlbGVjdG9yKCIuY2hhdC1tZXNzYWdlOm5vdCguc3lzdGVtLWluZm8pIik7aWYoWXQpe3ZhciBhdD1ZdC5xdWVyeVNlbGVjdG9yQWxsKCIudG9vbC11c2UtY2FyZCwgLmlubGluZS1kaWZmW2RhdGEtZXhwYW5kLWtleV0iKTtpZihhdC5sZW5ndGg+MCl7dmFyIHFlPWF0WzBdLFVlPVBuKHFlKTtYZShVZSk9PT1udWxsJiZxZS5jbGFzc0xpc3QucmVtb3ZlKCJjb2xsYXBzZWQiKTtmb3IodmFyIGhlPTE7aGU8YXQubGVuZ3RoO2hlKyspe3ZhciBidD1QbihhdFtoZV0pO2lmKFhlKGJ0KT09PW51bGwpe2lmKGF0W2hlXS5jbGFzc0xpc3QuY29udGFpbnMoImFzay11c2VyIikmJiFhdFtoZV0uY2xhc3NMaXN0LmNvbnRhaW5zKCJhc2stdXNlci1hbnN3ZXJlZCIpKWNvbnRpbnVlO2F0W2hlXS5jbGFzc0xpc3QuYWRkKCJjb2xsYXBzZWQiKX19fX1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXtKaShGKSwkZSgpLFpsKCl9KX1mdW5jdGlvbiBNKEcsZWUpe3ZhciBvZT1HLnF1ZXJ5U2VsZWN0b3JBbGwoIi50b29sLXVzZS1jYXJkLCAuaW5saW5lLWRpZmZbZGF0YS1leHBhbmQta2V5XSIpO29lLmZvckVhY2goZnVuY3Rpb24obGUpe3ZhciBCZT1QbihsZSk7aWYoWGUoQmUpPT09bnVsbCYmIShsZS5jbGFzc0xpc3QuY29udGFpbnMoImFzay11c2VyIikmJiFsZS5jbGFzc0xpc3QuY29udGFpbnMoImFzay11c2VyLWFuc3dlcmVkIikpKXtpZihlZSl7Zm9yKHZhciB6ZT0wO3plPGVlLmxlbmd0aDt6ZSsrKWlmKGVlW3plXS5jb250YWlucyhsZSkpcmV0dXJufWxlLmNsYXNzTGlzdC5hZGQoImNvbGxhcHNlZCIpfX0pfXZhciBMPXt9O2lmKChmdW5jdGlvbigpe2Zvcih2YXIgRz17aW5wdXRUb2tlbnM6MCxvdXRwdXRUb2tlbnM6MCxjYWNoZVJlYWRJbnB1dFRva2VuczowLHRvdGFsQ29zdFVzZDowfSxlZT0tMSxvZT0wO29lPGkubGVuZ3RoO29lKyspe3ZhciBsZT1pW29lXTtpZihsZS5yb2xlPT09InVzZXIiKWVlPj0wJiYoRy5pbnB1dFRva2Vucz4wfHxHLm91dHB1dFRva2Vucz4wfHxHLnRvdGFsQ29zdFVzZD4wKSYmKExbZWVdPXtpbnB1dFRva2VuczpHLmlucHV0VG9rZW5zLG91dHB1dFRva2VuczpHLm91dHB1dFRva2VucyxjYWNoZVJlYWRJbnB1dFRva2VuczpHLmNhY2hlUmVhZElucHV0VG9rZW5zLHRvdGFsQ29zdFVzZDpHLnRvdGFsQ29zdFVzZH0pLEc9e2lucHV0VG9rZW5zOjAsb3V0cHV0VG9rZW5zOjAsY2FjaGVSZWFkSW5wdXRUb2tlbnM6MCx0b3RhbENvc3RVc2Q6MH0sZWU9LTE7ZWxzZSBpZihsZS5yb2xlPT09ImFzc2lzdGFudCImJmxlLnVzYWdlKXt2YXIgQmU9bGUudXNhZ2U7Ry5pbnB1dFRva2Vucys9QmUuaW5wdXRUb2tlbnN8fDAsRy5vdXRwdXRUb2tlbnMrPUJlLm91dHB1dFRva2Vuc3x8MCxHLmNhY2hlUmVhZElucHV0VG9rZW5zKz1CZS5jYWNoZVJlYWRJbnB1dFRva2Vuc3x8MCxHLnRvdGFsQ29zdFVzZCs9QmUudG90YWxDb3N0VXNkfHwwLGVlPW9lfWVsc2UgbGUucm9sZT09PSJhc3Npc3RhbnQiJiYoZWU9b2UpfWVlPj0wJiYoRy5pbnB1dFRva2Vucz4wfHxHLm91dHB1dFRva2Vucz4wfHxHLnRvdGFsQ29zdFVzZD4wKSYmKExbZWVdPXtpbnB1dFRva2VuczpHLmlucHV0VG9rZW5zLG91dHB1dFRva2VuczpHLm91dHB1dFRva2VucyxjYWNoZVJlYWRJbnB1dFRva2VuczpHLmNhY2hlUmVhZElucHV0VG9rZW5zLHRvdGFsQ29zdFVzZDpHLnRvdGFsQ29zdFVzZH0pfSkoKSxJKUQoKTtlbHNlIGlmKGQ+VSl7dmFyIFc9bC5zbGljZShVKTtXLnJldmVyc2UoKTtmb3IodmFyIEs9ZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpLFg9W10sbmU9W10sc2U9bytVLHJlPTA7cmU8Vy5sZW5ndGg7cmUrKyl7dmFyIFQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikscT1vK1UrKFcubGVuZ3RoLTEtcmUpO1QuaW5uZXJIVE1MPVZhKFdbcmVdLExbcV18fG51bGwscSxhKTt2YXIgTj1ULmZpcnN0RWxlbWVudENoaWxkO04mJihOLmNsYXNzTGlzdC5hZGQoImFuaW1hdGUtaW4iKSxOLnNldEF0dHJpYnV0ZSgiZGF0YS1tc2ctaW5kZXgiLFN0cmluZyhxKSksWC5wdXNoKE4pLG5lLnB1c2gocSksSy5hcHBlbmRDaGlsZChOKSl9Ri5pbnNlcnRCZWZvcmUoSyxGLmZpcnN0Q2hpbGQpLHNyKCksTG8oRiksJGkoRiksTShGLFgpLF8/cmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7Ri5pc0Nvbm5lY3RlZCYmTWF0aC5hYnMoRi5zY3JvbGxUb3ApPjEmJihyLmNoYXRJc1Byb2dyYW1tYXRpY1Njcm9sbD0hMCxGLnNjcm9sbFRvcD0wLHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe3IuY2hhdElzUHJvZ3JhbW1hdGljU2Nyb2xsPSExfSkpLENuKHtyZW1vdmVEaXZpZGVyOiEwfSksJGUoKX0pOihyLmNoYXRVbnJlYWRTdGFydEluZGV4PDAmJihyLmNoYXRVbnJlYWRTdGFydEluZGV4PXNlKSxyLmNoYXRVbnJlYWRDb3VudCs9WC5sZW5ndGgsSmkoRiksJGUoKSl9ZWxzZSBpZihkPT09VSYmdiE9PXgpe2Zvcih2YXIgWT1BcnJheS5mcm9tKEYucXVlcnlTZWxlY3RvckFsbCgiLmNoYXQtbWVzc2FnZTpub3QoLnN5c3RlbS1pbmZvKSIpKSxKPWwuc2xpY2UoKS5yZXZlcnNlKCksaWU9ITEsZGU9TWF0aC5taW4oNCxKLmxlbmd0aCxZLmxlbmd0aCksdGU9MDt0ZTxkZTt0ZSsrKXt2YXIgYWU9WVt0ZV0sSGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksRGU9bytKLmxlbmd0aC0xLXRlO0hlLmlubmVySFRNTD1WYShKW3RlXSxMW0RlXXx8bnVsbCxEZSxhKTt2YXIgcGU9SGUuZmlyc3RFbGVtZW50Q2hpbGQ7aWYocGUpe2lmKGFlLmlubmVySFRNTCE9PXBlLmlubmVySFRNTHx8YWUuY2xhc3NOYW1lIT09cGUuY2xhc3NOYW1lKUYucmVwbGFjZUNoaWxkKHBlLGFlKSxmdihwZSksaWU9ITA7ZWxzZSBpZih0ZT4wKWJyZWFrfX1pZighaWUmJkoubGVuZ3RoPmRlJiZEKCksaWUpe3NyKCksJGkoRikscmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7XyYmRi5pc0Nvbm5lY3RlZCYmTWF0aC5hYnMoRi5zY3JvbGxUb3ApPjEmJihyLmNoYXRJc1Byb2dyYW1tYXRpY1Njcm9sbD0hMCxGLnNjcm9sbFRvcD0wLHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe3IuY2hhdElzUHJvZ3JhbW1hdGljU2Nyb2xsPSExfSkpLEppKEYpLCRlKCl9KTt2YXIgUD1GLnF1ZXJ5U2VsZWN0b3IoIi5jaGF0LW1lc3NhZ2UiKSxLZT1GLnF1ZXJ5U2VsZWN0b3JBbGwoIi50b29sLXVzZS1jYXJkLCAuaW5saW5lLWRpZmZbZGF0YS1leHBhbmQta2V5XSIpLGN0PW51bGw7S2UuZm9yRWFjaChmdW5jdGlvbihHKXt2YXIgZWU9UG4oRyk7WGUoZWUpPT09bnVsbCYmKEcuY2xhc3NMaXN0LmNvbnRhaW5zKCJhc2stdXNlciIpJiYhRy5jbGFzc0xpc3QuY29udGFpbnMoImFzay11c2VyLWFuc3dlcmVkIil8fChQJiZQLmNvbnRhaW5zKEcpP2N0P0cuY2xhc3NMaXN0LmFkZCgiY29sbGFwc2VkIik6Y3Q9RzpHLmNsYXNzTGlzdC5hZGQoImNvbGxhcHNlZCIpKSl9KX19ZWxzZSBkPFUmJkQoKTtmZihGKSxQdihGLG4pLEl2KHQsRixpLFYpLHl1KEYsbiksV2EoaSl9dmFyIFJhPSExO2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihlKXt2YXIgdD1lLnRhcmdldDtpZighKCF0fHwhKHQgaW5zdGFuY2VvZiBFbGVtZW50KSkpe3ZhciBuPXQuY2xvc2VzdCgiI3RvZG8tcHJvZ3Jlc3MtdG9nZ2xlIik7aWYobil7ZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcFByb3BhZ2F0aW9uKCksUmE9IVJhO3ZhciBpPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b2RvLXByb2dyZXNzIiksYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9kby1wcm9ncmVzcy1ib2R5Iik7aSYmYSYmKFJhPyhpLmNsYXNzTGlzdC5hZGQoImV4cGFuZGVkIiksYS5jbGFzc0xpc3QuYWRkKCJleHBhbmRlZCIpKTooaS5jbGFzc0xpc3QucmVtb3ZlKCJleHBhbmRlZCIpLGEuY2xhc3NMaXN0LnJlbW92ZSgiZXhwYW5kZWQiKSkpLENpKCl9fX0pO2Z1bmN0aW9uIENpKCl7dmFyIGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2NoYXQtb3V0cHV0IC5jaGF0LW1lc3NhZ2VzIiksdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9kby1wcm9ncmVzcy1ib2R5Iik7aWYoISghZXx8IXQpKXt2YXIgbj1lLGk9IXQuY2xhc3NMaXN0LmNvbnRhaW5zKCJoaWRkZW4iKSxhPXQuY2xhc3NMaXN0LmNvbnRhaW5zKCJleHBhbmRlZCIpLHU9dC5vZmZzZXRIZWlnaHQ7aSYmYSYmdT4wP24uc3R5bGUucGFkZGluZ0JvdHRvbT11KzgrInB4IjpuLnN0eWxlLnBhZGRpbmdCb3R0b209IiJ9fWZ1bmN0aW9uIGN2KGUpe2lmKHR5cGVvZiBlPT0ic3RyaW5nIilyZXR1cm4gZTtpZihBcnJheS5pc0FycmF5KGUpKXtmb3IodmFyIHQ9W10sbj0wO248ZS5sZW5ndGg7bisrKXt2YXIgaT1lW25dO3R5cGVvZiBpPT0ic3RyaW5nIj90LnB1c2goaSk6aSYmdHlwZW9mIGkudGV4dD09InN0cmluZyImJnQucHVzaChpLnRleHQpfXJldHVybiB0LmpvaW4oIiIpfXJldHVybiIifWZ1bmN0aW9uIGR2KGUsdCl7Zm9yKHZhciBuPXt9LGk9dDtpPGUubGVuZ3RoO2krKyl7dmFyIGE9ZVtpXTtpZighKCFhfHwhQXJyYXkuaXNBcnJheShhLmNvbnRlbnQpKSlmb3IodmFyIHU9MDt1PGEuY29udGVudC5sZW5ndGg7dSsrKXt2YXIgcz1hLmNvbnRlbnRbdV07cyYmcy50eXBlPT09InRvb2xfcmVzdWx0IiYmcy50b29sX3VzZV9pZCYmKG5bcy50b29sX3VzZV9pZF09Y3Yocy5jb250ZW50KSl9fWZvcih2YXIgbz17fSxsPTAsYz0wLGY9ITEsZD10O2Q8ZS5sZW5ndGg7ZCsrKXt2YXIgdj1lW2RdO2lmKCEoIXZ8fCFBcnJheS5pc0FycmF5KHYuY29udGVudCkpKWZvcih2YXIgaD0wO2g8di5jb250ZW50Lmxlbmd0aDtoKyspe3ZhciBnPXYuY29udGVudFtoXTtpZighKCFnfHxnLnR5cGUhPT0idG9vbF91c2UiKSl7dmFyIG09Zy5pbnB1dHx8e307aWYoZy5uYW1lPT09IlRhc2tDcmVhdGUiKXtmPSEwLGMrKzt2YXIgeT1uW2cuaWRdfHwiIix3PXkubWF0Y2goLyMoXGQrKS8pLEU9dz93WzFdOlN0cmluZyhjKTtvW0VdPXtpZDpFLGNvbnRlbnQ6bS5zdWJqZWN0fHwiIixhY3RpdmVGb3JtOm0uYWN0aXZlRm9ybXx8IiIsc3RhdHVzOiJwZW5kaW5nIixvcmRlcjpsKyt9fWVsc2UgaWYoZy5uYW1lPT09IlRhc2tVcGRhdGUiKXtmPSEwO3ZhciBCPVN0cmluZyhtLnRhc2tJZCksRj1vW0JdO0Z8fChGPXtpZDpCLGNvbnRlbnQ6IiIsYWN0aXZlRm9ybToiIixzdGF0dXM6InBlbmRpbmciLG9yZGVyOmwrK30sb1tCXT1GKSxtLnN0YXR1cyYmKEYuc3RhdHVzPW0uc3RhdHVzKSxtLnN1YmplY3QmJihGLmNvbnRlbnQ9bS5zdWJqZWN0KSxtLmFjdGl2ZUZvcm0mJihGLmFjdGl2ZUZvcm09bS5hY3RpdmVGb3JtKX19fX1pZighZilyZXR1cm4gbnVsbDt2YXIgeD1bXTtmb3IodmFyIFMgaW4gbylPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobyxTKSYmb1tTXS5zdGF0dXMhPT0iZGVsZXRlZCImJngucHVzaChvW1NdKTtyZXR1cm4geC5zb3J0KGZ1bmN0aW9uKF8sVil7cmV0dXJuIF8ub3JkZXItVi5vcmRlcn0pLHgubGVuZ3RoP3g6bnVsbH1mdW5jdGlvbiBXYShlKXtmb3IodmFyIHQ9MCxuPWUubGVuZ3RoLTE7bj49MDtuLS0paWYoZVtuXSYmZVtuXS5yb2xlPT09InVzZXIiKXt0PW4rMTticmVha31mb3IodmFyIGk9bnVsbCxhPWUubGVuZ3RoLTE7YT49dDthLS0pe3ZhciB1PWVbYV07aWYoISghdS5jb250ZW50fHwhQXJyYXkuaXNBcnJheSh1LmNvbnRlbnQpKSl7Zm9yKHZhciBzPXUuY29udGVudC5sZW5ndGgtMTtzPj0wO3MtLSl7dmFyIG89dS5jb250ZW50W3NdO2lmKG8udHlwZT09PSJ0b29sX3VzZSImJm8ubmFtZT09PSJUb2RvV3JpdGUiJiZvLmlucHV0JiZvLmlucHV0LnRvZG9zKXtpPW8uaW5wdXQudG9kb3M7YnJlYWt9fWlmKGkpYnJlYWt9fWl8fChpPWR2KGUsdCkpO3ZhciBsPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b2RvLXByb2dyZXNzIiksYz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9kby1wcm9ncmVzcy1ib2R5Iik7aWYobCl7aWYoIWl8fGkubGVuZ3RoPT09MCl7bC5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSxjJiZjLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLENpKCk7cmV0dXJufWZvcih2YXIgZj0wLGQ9MCx2PSIiLGg9MDtoPGkubGVuZ3RoO2grKylpW2hdLnN0YXR1cz09PSJjb21wbGV0ZWQiJiZmKyssaVtoXS5zdGF0dXM9PT0iaW5fcHJvZ3Jlc3MiJiYoZCsrLHZ8fCh2PWlbaF0uYWN0aXZlRm9ybXx8aVtoXS5jb250ZW50fHwiIikpO3ZhciBnPWY9PT1pLmxlbmd0aCxtPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihLKXtyZXR1cm4gSy5pZD09PXIuc2VsZWN0ZWRJZH0pLHk9ISFtJiZtLnN0YXR1cz09PSJydW5uaW5nIjtpZigheXx8Zyl7bC5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSxjJiZjLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLENpKCk7cmV0dXJufWwuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksbC5jbGFzc0xpc3QucmVtb3ZlKCJhbGwtZG9uZSIpLGMmJmMuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIik7dmFyIHc9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvZG8tcHJvZ3Jlc3MtY291bnRlciIpO3cmJih3LnRleHRDb250ZW50PWYrIi8iK2kubGVuZ3RoKTt2YXIgRT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9kby1wcm9ncmVzcy10YXNrIik7aWYoRSl7aWYoIXYpe2Zvcih2YXIgQj0wO0I8aS5sZW5ndGg7QisrKWlmKGlbQl0uc3RhdHVzPT09InBlbmRpbmciJiYoaVtCXS5hY3RpdmVGb3JtfHxpW0JdLmNvbnRlbnQpKXt2PWlbQl0uYWN0aXZlRm9ybXx8aVtCXS5jb250ZW50O2JyZWFrfX1FLnRleHRDb250ZW50PXZ8fCJcdTUxQzZcdTU5MDdcdTRFMkRcdTIwMjYifXZhciBGPWkubGVuZ3RoPjA/Zi9pLmxlbmd0aDowLHg9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvZG8tcHJvZ3Jlc3MtcmluZyIpO3gmJnguc3R5bGUuc2V0UHJvcGVydHkoIi0tcHJvZ3Jlc3MiLEYudG9GaXhlZCgzKSk7dmFyIFM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvZG8tcHJvZ3Jlc3MtZmlsbCIpO1MmJlMuc3R5bGUuc2V0UHJvcGVydHkoIi0tcHJvZ3Jlc3MiLEYudG9GaXhlZCgzKSk7dmFyIF89ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvZG8tcHJvZ3Jlc3MtbGlzdCIpO2lmKF8pe2Zvcih2YXIgVj0iIixVPTA7VTxpLmxlbmd0aDtVKyspe3ZhciBJPWlbVV0sRD1JLnN0YXR1c3x8InBlbmRpbmciLE09RD09PSJpbl9wcm9ncmVzcyI/ImFjdGl2ZSI6RD09PSJjb21wbGV0ZWQiPyJkb25lIjoiIixMPUQ9PT0iaW5fcHJvZ3Jlc3MiPyJhY3RpdmUiOkQ9PT0iY29tcGxldGVkIj8iZG9uZSI6InBlbmRpbmciLFc9RD09PSJjb21wbGV0ZWQiPyJcdTI3MTMiOkQ9PT0iaW5fcHJvZ3Jlc3MiPyJcdTIwM0EiOiJcdTI1Q0IiO1YrPSc8bGkgY2xhc3M9InRvZG8tcHJvZ3Jlc3MtaXRlbSAnK00rJyI+PHNwYW4gY2xhc3M9InRvZG8taXRlbS1pY29uICcrTCsnIj4nK1crIjwvc3Bhbj48c3Bhbj4iK3AoSS5jb250ZW50fHwiIikrIjwvc3Bhbj48L2xpPiJ9Xy5pbm5lckhUTUw9Vn1yLnNlbGVjdGVkSWQmJndhKHIuc2VsZWN0ZWRJZCksQ2koKX19ZnVuY3Rpb24gZnYoZSl7ZS5xdWVyeVNlbGVjdG9yQWxsKCIuY29kZS1jb3B5IikuZm9yRWFjaChmdW5jdGlvbih0KXt0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe3ZhciBuPXQuY2xvc2VzdCgiLmNvZGUtYmxvY2siKSxpPW4/bi5xdWVyeVNlbGVjdG9yKCJjb2RlIik6bnVsbDtpJiZIcihpLnRleHRDb250ZW50fHwiIixudWxsLGZ1bmN0aW9uKCl7dC50ZXh0Q29udGVudD0iQ29waWVkISIsdC5jbGFzc0xpc3QuYWRkKCJjb3BpZWQiKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dC50ZXh0Q29udGVudD0iQ29weSIsdC5jbGFzc0xpc3QucmVtb3ZlKCJjb3BpZWQiKX0sMmUzKX0pfSl9KX1mdW5jdGlvbiBMbyhlKXtlLnF1ZXJ5U2VsZWN0b3JBbGwoIi5jb2RlLWNvcHkiKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciBuPXQuY2xvbmVOb2RlKCEwKTt0LnBhcmVudE5vZGUucmVwbGFjZUNoaWxkKG4sdCksbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXt2YXIgaT1uLmNsb3Nlc3QoIi5jb2RlLWJsb2NrIiksYT1pP2kucXVlcnlTZWxlY3RvcigiY29kZSIpOm51bGw7YSYmSHIoYS50ZXh0Q29udGVudHx8IiIsbnVsbCxmdW5jdGlvbigpe24udGV4dENvbnRlbnQ9IkNvcGllZCEiLG4uY2xhc3NMaXN0LmFkZCgiY29waWVkIiksc2V0VGltZW91dChmdW5jdGlvbigpe24udGV4dENvbnRlbnQ9IkNvcHkiLG4uY2xhc3NMaXN0LnJlbW92ZSgiY29waWVkIil9LDJlMyl9KX0pfSkscHYoZSl9dmFyIEpnPXt0aW1lcjpudWxsLGFjdGl2ZUJ0bjpudWxsfTtmdW5jdGlvbiBwdihlKXt2YXIgdD13aW5kb3cubWF0Y2hNZWRpYSgiKHBvaW50ZXI6IGNvYXJzZSkiKS5tYXRjaGVzO3QmJmUucXVlcnlTZWxlY3RvckFsbCgiLmNoYXQtbWVzc2FnZSIpLmZvckVhY2goZnVuY3Rpb24obil7aWYoIW4ucXVlcnlTZWxlY3RvcigiLm1zZy1jb3B5LWJ0biIpKXt2YXIgaT1uLnF1ZXJ5U2VsZWN0b3IoIi5jaGF0LW1lc3NhZ2UtYnViYmxlIik7aWYoaSl7dmFyIGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYnV0dG9uIik7YS5jbGFzc05hbWU9Im1zZy1jb3B5LWJ0biIsYS50ZXh0Q29udGVudD0iXHU1OTBEXHU1MjM2IixhLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbih1KXt1LnN0b3BQcm9wYWdhdGlvbigpO3ZhciBzPWkuaW5uZXJUZXh0fHxpLnRleHRDb250ZW50fHwiIjtIcihzLnRyaW0oKSxudWxsLGZ1bmN0aW9uKCl7YS50ZXh0Q29udGVudD0iXHU1REYyXHU1OTBEXHU1MjM2IixhLmNsYXNzTGlzdC5hZGQoImNvcGllZCIpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXthLnRleHRDb250ZW50PSJcdTU5MERcdTUyMzYiLGEuY2xhc3NMaXN0LnJlbW92ZSgiY29waWVkIiksYS5jbGFzc0xpc3QucmVtb3ZlKCJ2aXNpYmxlIil9LDE1MDApfSl9KSxuLmFwcGVuZENoaWxkKGEpfX19KX0oZnVuY3Rpb24oKXt2YXIgdD13aW5kb3cubWF0Y2hNZWRpYSgiKHBvaW50ZXI6IGNvYXJzZSkiKS5tYXRjaGVzO2lmKHQpe3ZhciBuPW51bGwsaT0wO2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLGZ1bmN0aW9uKGEpe3ZhciB1PWEudGFyZ2V0LmNsb3Nlc3QoIi5jaGF0LW1lc3NhZ2UiKTtpZih1KXt2YXIgcz11LnF1ZXJ5U2VsZWN0b3IoIi5jaGF0LW1lc3NhZ2UtYnViYmxlIik7cyYmKGk9YS50b3VjaGVzWzBdLmNsaWVudFksbj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIG89dS5xdWVyeVNlbGVjdG9yKCIubXNnLWNvcHktYnRuIik7byYmKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5tc2ctY29weS1idG4udmlzaWJsZSIpLmZvckVhY2goZnVuY3Rpb24obCl7bC5jbGFzc0xpc3QucmVtb3ZlKCJ2aXNpYmxlIil9KSxvLmNsYXNzTGlzdC5hZGQoInZpc2libGUiKSl9LDUwMCkpfX0se3Bhc3NpdmU6ITB9KSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLGZ1bmN0aW9uKGEpe24mJk1hdGguYWJzKGEudG91Y2hlc1swXS5jbGllbnRZLWkpPjEwJiYoY2xlYXJUaW1lb3V0KG4pLG49bnVsbCl9LHtwYXNzaXZlOiEwfSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLGZ1bmN0aW9uKCl7biYmKGNsZWFyVGltZW91dChuKSxuPW51bGwpfSx7cGFzc2l2ZTohMH0pLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihhKXthLnRhcmdldC5jbG9zZXN0KCIubXNnLWNvcHktYnRuIil8fGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5tc2ctY29weS1idG4udmlzaWJsZSIpLmZvckVhY2goZnVuY3Rpb24odSl7dS5jbGFzc0xpc3QucmVtb3ZlKCJ2aXNpYmxlIil9KX0pfX0pKCk7ZnVuY3Rpb24gdnYoZSl7aWYoIWUpcmV0dXJuITE7dmFyIHQ9U3RyaW5nKGUpLnRyaW0oKTtyZXR1cm4gdD8hISh0LmluZGV4T2YoIlx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMCIpPT09MHx8dD09PSJcdTI3NkYifHx0PT09Ilx1MjAzQSJ8fC9eW+KVreKVsOKUguKUjOKUlOKUkOKUmOKUnOKUpOKUrOKUtOKUvOKUgOKVkF17Mix9JC8udGVzdCh0KXx8L15b4paB4paC4paD4paE4paF4paG4paH4paI4paU4paV4paP4paQXSskLy50ZXN0KHQpfHx0LmluZGV4T2YoImVzYyB0byBpbnRlcnJ1cHQiKSE9PS0xfHx0LmluZGV4T2YoIkNsYXVkZSBDb2RlIHYiKSE9PS0xfHwvXlNvbm5ldFxiLy50ZXN0KHQpfHx0LmluZGV4T2YoIkZhaWxlZCB0byBpbnN0YWxsIEFudGhyb3BpYyIpIT09LTF8fHQuaW5kZXhPZigiQ2xhdWRlIENvZGUgaGFzIHN3aXRjaGVkIikhPT0tMXx8dC5pbmRleE9mKCI/IGZvciBzaG9ydGN1dHMiKSE9PS0xfHx0LmluZGV4T2YoIkNsYXVkZSBpcyB3YWl0aW5nIikhPT0tMXx8dC5pbmRleE9mKCJbd2FuZF0iKSE9PS0xfHx0LmluZGV4T2YoIjA7Iik9PT0wfHx0LmluZGV4T2YoIjk7Iik9PT0wfHx0LmluZGV4T2YoImN0cmwrZyIpIT09LTF8fHQuaW5kZXhPZigiL2VmZm9ydCIpIT09LTF8fC9eVXNpbmcgLiogZm9yIC4qIHNlc3Npb24vLnRlc3QodCl8fHQuaW5kZXhPZigiUHJlc3MgIik9PT0wJiZ0LmluZGV4T2YoIiBmb3IiKSE9PS0xfHx0LmluZGV4T2YoInR5cGUgIik9PT0wJiZ0LmluZGV4T2YoIiB0byAiKSE9PS0xfHx0LmluZGV4T2YoImF1dG8gbW9kZSBpcyB1bmF2YWlsYWJsZSIpIT09LTF8fC9NQ1Agc2VydmVyLipmYWlsZWQvaS50ZXN0KHQpfHx0LmluZGV4T2YoIkdlcm1pbmF0aW5nIikhPT0tMXx8dC5pbmRleE9mKCJEb29kbGluZyIpIT09LTF8fHQuaW5kZXhPZigiQnJld2luZyIpIT09LTF8fHQuaW5kZXhPZigiUGVybWlzc2lvbnMiKSE9PS0xJiZ0LmluZGV4T2YoIm1vZGUiKSE9PS0xfHx0LmluZGV4T2YoIlx1MjVDRiIpPT09MCYmdC5pbmRleE9mKCJceEI3IikhPT0tMXx8dC5pbmRleE9mKCJbPiIpPT09MHx8dC5pbmRleE9mKCJbPCIpPT09MHx8dC5pbmRleE9mKCJDYXB0dXJlZCBDbGF1ZGUgc2Vzc2lvbiBJRCIpIT09LTF8fC9ePl9ccypPcGVuQUkgQ29kZXhcYi8udGVzdCh0KXx8L15PcGVuQUkgQ29kZXhcYi9pLnRlc3QodCl8fC9eKG1vZGVsfGRpcmVjdG9yeSk6XHMrL2kudGVzdCh0KXx8L14odGlwfGNvbnRleHQpOlxzKy9pLnRlc3QodCl8fC9ed29yayh0cmVlfHNwYWNlKTpccysvaS50ZXN0KHQpfHwvXihhcHByb3ZhbHM/fHNhbmRib3h8cHJvdmlkZXJ8c2Vzc2lvbiBpZCk6XHMrL2kudGVzdCh0KXx8L14odGhpbmtpbmd8d29ya2luZykoXC5cLlwufOKApik/JC9pLnRlc3QodCl8fC9eW+KAouKXpsK3XVxzK1dvcmtpbmdcYi9pLnRlc3QodCl8fC9eW+KAouKXpsK3XVxzKyhSdW5uaW5nfFBsYW5uaW5nfEFwcGx5aW5nfFJlYWRpbmd8U2VhcmNoaW5nKVxiL2kudGVzdCh0KXx8L15b4oCi4pemwrddXHMrKEluc3BlY3Rpbmd8UmV2aWV3aW5nfFN1bW1hcml6aW5nfEVkaXRpbmd8VXBkYXRpbmd8V3JpdGluZylcYi9pLnRlc3QodCl8fC9eW+KAouKXpsK3XVxzK0NvbXBsZXRlZFxiL2kudGVzdCh0KXx8L14oY3RybHxlbnRlcnx0YWJ8c2hpZnR8ZXNjfGFsdClcKy9pLnRlc3QodCl8fC9cYihvcGVufGNsb3NlfHRvZ2dsZSkgKGNoYXR8dGVybWluYWwpXGIvaS50ZXN0KHQpfHwvXGIoYXBwcm92ZXxkZW55KVxiLipcYihwZXJtaXNzaW9ufGFwcHJvdmFsKVxiL2kudGVzdCh0KXx8L14odXNlfHByZXNzKSAuKiAodG98Zm9yKSAuKi9pLnRlc3QodCl8fC9eKD86dG9rZW58Y29udGV4dCB3aW5kb3d8cmVtYWluaW5nIGNvbnRleHR8Y29udmVyc2F0aW9uKTpccysvaS50ZXN0KHQpfHwvXig/OmN3ZHxwYXRoKTpccytcLy9pLnRlc3QodCl8fC9eWzw+4pSC4pSG4pWOXS4qWzw+4pSC4pSG4pWOXSQvLnRlc3QodCkmJnQubGVuZ3RoPDgpOiExfWZ1bmN0aW9uIG12KGUpe3JldHVybiBTdHJpbmcoZXx8IiIpLnJlcGxhY2UoL1x4MWJcXVteXHgwN10qKFx4MDd8XHgxYlxcKS9nLCIiKS5yZXBsYWNlKC9ceDFiXFsoXGQrKUMvZyxmdW5jdGlvbih0LG4pe3JldHVybiIgIi5yZXBlYXQoTnVtYmVyKG4pfHwxKX0pLnJlcGxhY2UoL1x4MWJcW1swLTk7P10qW0FCXS9nLGAKYCkucmVwbGFjZSgvXHgxYlxbWzAtOTs/XSpbc3VdL2csIiIpLnJlcGxhY2UoL1x4MWJcW1swLTk7P10qW0hmSktyXS9nLGAKYCkucmVwbGFjZSgvXHgxYk0vZyxgCmApLnJlcGxhY2UoL1x4MWJcW1swLTk7P10qW1NUXS9nLGAKYCkucmVwbGFjZSgvXHgxYlxbWzAtOTs/XSpbYS16QS1aXS9nLCIiKS5yZXBsYWNlKC9ceDFiWz48PWVQWF5fXS9nLCIiKS5yZXBsYWNlKC9bXHUwMGEwXHUyMDBiLVx1MjAwZFx1ZmVmZl0vZywiICIpLnJlcGxhY2UoL1tceDAwLVx4MDhceDBiXHgwY1x4MGUtXHgxZl0vZywiIikucmVwbGFjZSgvXHJcbj8vZyxgCmApLnJlcGxhY2UoL1sgXHRdK1xuL2csYApgKS5yZXBsYWNlKC9cbnszLH0vZyxgCgpgKX1mdW5jdGlvbiBndihlLHQpe3ZhciBuPVtdO2lmKCFlKXJldHVybiBuO3ZhciBpPVN0cmluZyhlfHwiIiksYT1gCmAsdT0iXHIiLHM9Ilx4MUIiO2lmKC9eY29kZXhcYi8udGVzdChTdHJpbmcodHx8IiIpLnRyaW0oKSkpe2xldCBmZT1mdW5jdGlvbihIKXtyZXR1cm4gU3RyaW5nKEh8fCIiKS5yZXBsYWNlKC9ceDFiXF1bXlx4MDddKihceDA3fFx4MWJcXCkvZywiIikucmVwbGFjZSgvXHgxYlxbKFxkKylDL2csZnVuY3Rpb24oaixRKXtyZXR1cm4iICIucmVwZWF0KE51bWJlcihRKXx8MSl9KS5yZXBsYWNlKC9ceDFiXFtbMC05Oz9dKltBQl0vZyxhKS5yZXBsYWNlKC9ceDFiXFtbMC05Oz9dKltzdV0vZywiIikucmVwbGFjZSgvXHgxYlxbWzAtOTs/XSpbSGZKS3JdL2csYSkucmVwbGFjZSgvXHgxYk0vZyxhKS5yZXBsYWNlKC9ceDFiXFtbMC05Oz9dKltTVF0vZyxhKS5yZXBsYWNlKC9ceDFiXFtbMC05Oz9dKlthLXpBLVpdL2csIiIpLnJlcGxhY2UoL1x4MWJbPjw9ZVBYXl9dL2csIiIpLnJlcGxhY2UoL1tcdTAwYTBcdTIwMGItXHUyMDBkXHVmZWZmXS9nLCIgIikucmVwbGFjZSgvW1x4MDAtXHgwOFx4MGJceDBjXHgwZS1ceDFmXS9nLCIiKS5yZXBsYWNlKC9bIFx0XStcbi9nLGEpfSx2dD1mdW5jdGlvbihIKXtyZXR1cm4gU3RyaW5nKEh8fCIiKS5yZXBsYWNlKC9ccysvZywiICIpLnJlcGxhY2UoL1tNXSskL2csIiIpLnRyaW0oKX0sWj1mdW5jdGlvbihIKXtyZXR1cm4gU3RyaW5nKEh8fCIiKS5yZXBsYWNlKC9e4oC6XHMqLywiIikucmVwbGFjZSgvXj5ccyovLCIiKS50cmltKCl9LEllPWZ1bmN0aW9uKEgpe3ZhciBqPVN0cmluZyhIfHwiIikudHJpbSgpO3JldHVybiEhKCFqfHx2dihqKXx8RS50ZXN0KGopfHwvXlvila3ilbDilILilIzilJTilJDilJjilJzilKTilKzilLTilLzilIDilZBdLy50ZXN0KGopfHwvXlxbPlswLTk7P10qdSQvaS50ZXN0KGopfHwvXk0rJC9pLnRlc3Qoail8fC9eKD86T3BlbkFJIENvZGV4fENvZGV4KVxiL2kudGVzdChqKXx8L14oPzp0b2tlbnM/fGNvbnRleHQgd2luZG93fHJlbWFpbmluZyBjb250ZXh0fGFwcHJvdmFscz98c2FuZGJveHxwcm92aWRlcnxzZXNzaW9uIGlkKTpccyovaS50ZXN0KGopfHwvXig/OnRoaW5raW5nfHdvcmtpbmcpXHMqKD86XC5cLlwufOKApik/JC9pLnRlc3Qoail8fC9eW+KAouKXpsK3XVxzKyg/OnRoaW5raW5nfHdvcmtpbmd8cnVubmluZ3xwbGFubmluZ3xhcHBseWluZ3xyZWFkaW5nfHNlYXJjaGluZ3xpbnNwZWN0aW5nfHJldmlld2luZ3xzdW1tYXJpemluZ3xlZGl0aW5nfHVwZGF0aW5nfHdyaXRpbmd8Y29tcGxldGVkKVxiL2kudGVzdChqKXx8L14oPzptb2RlbHxkaXJlY3Rvcnl8dGlwfGNvbnRleHR8Y3dkfHBhdGgpOlxzKy9pLnRlc3QoaikpfSxUZT1mdW5jdGlvbihIKXt2YXIgaj1TdHJpbmcoSHx8IiIpLnRyaW0oKTtpZighL17igLooPzpcc3wkKS8udGVzdChqKXx8RS50ZXN0KGopKXJldHVybiBudWxsO3ZhciBRPXZ0KFooaikpO3JldHVybiFRfHxJZShRKT9udWxsOlF9LEdlPWZ1bmN0aW9uKEgpe3ZhciBqPVN0cmluZyhIfHwiIikudHJpbSgpO2lmKCEvXlvigKLil6bCt+KPul0vLnRlc3QoaikpcmV0dXJuIG51bGw7dmFyIFE9ai5yZXBsYWNlKC9eW+KAouKXpsK3XVxzKi8sIiIpLnJlcGxhY2UoL17ij7pccysvLCIiKS5yZXBsYWNlKC9e4pSCXHMqLywiIikudHJpbSgpO3JldHVybiFRfHwvXlvigKLil6bCt+KPul0kLy50ZXN0KFEpfHwoUT1RLnJlcGxhY2UoL1xzKlwoXGQrW3NtaF0/XHMq4oCiXHMqZXNjIHRvIGludGVycnVwdFwpW1xzXFNdKiQvaSwiIikucmVwbGFjZSgvKD86W2Etel17MSw2fSk/4oC6W1xzXFNdKiQvLCIiKS5yZXBsYWNlKC9cc3syLH1ncHQtXGRbXHNcU10qJC9pLCIiKS5yZXBsYWNlKC9cYig/Ok9wZW5BSSBDb2RleHxtb2RlbDp8ZGlyZWN0b3J5OnxUaXA6KVxiW1xzXFNdKiQvaSwiIiksUT12dChRKSwhUXx8US5sZW5ndGg8Mnx8Qi50ZXN0KFEpfHxJZShRKSk/bnVsbDpRfSxZZT1mdW5jdGlvbihIKXt2YXIgaj12dChIKTtyZXR1cm4hanx8SWUoail8fC9eW+KAouKXpsK34o+64oC6XS8udGVzdChqKXx8L15bXFtcXTw+MC05Oz9dK3U/JC9pLnRlc3Qoail8fC9eW+KVreKVsOKUguKUjOKUlOKUkOKUmOKUnOKUpOKUrOKUtOKUvOKUgOKVkF0vLnRlc3Qoail8fGoubGVuZ3RoPjUwMD9udWxsOmp9LEZlPWZ1bmN0aW9uKEgsail7aWYoSC5pbmRleE9mKGopIT09MClyZXR1cm4hMTt2YXIgUT1ILnNsaWNlKGoubGVuZ3RoKTtyZXR1cm4vXlthLXpdezEsNH0kL2kudGVzdChRKX0sTGU9ZnVuY3Rpb24oSCl7Zm9yKHZhciBqPVtdLFE9MDtRPEgubGVuZ3RoO1ErKyl7dmFyIHZlPXZ0KEhbUV0pO2lmKCEoIXZlfHx2ZS5sZW5ndGg8Mnx8SWUodmUpKSl7dmFyIHllPWpbai5sZW5ndGgtMV07aWYoIXllKXtqLnB1c2godmUpO2NvbnRpbnVlfWlmKHZlIT09eWUpe2lmKHZlLmluZGV4T2YoeWUpPT09MCl7altqLmxlbmd0aC0xXT12ZTtjb250aW51ZX1pZih5ZS5pbmRleE9mKHZlKT09PTApe0ZlKHllLHZlKSYmKGpbai5sZW5ndGgtMV09dmUpO2NvbnRpbnVlfWoucHVzaCh2ZSl9fX1yZXR1cm4gai5qb2luKGEpLnRyaW0oKX0sUWU9ZnVuY3Rpb24oSCl7Zm9yKHZhciBqPTA7ajxILmxlbmd0aDtqKyspe3ZhciBRPVN0cmluZyhIW2pdfHwiIikudHJpbSgpO2lmKFEpe3ZhciB2ZT1UZShRKTtpZih2ZSlyZXR1cm4gdmU7aWYoUT09PSJcdTIwM0EiKWZvcih2YXIgeWU9aisxO3llPEgubGVuZ3RoO3llKyspe3ZhciBPZT12dChIW3llXSk7aWYoISghT2V8fEUudGVzdChPZSl8fEllKE9lKSkpcmV0dXJuIE9lfX19cmV0dXJuIG51bGx9LFF0PWZ1bmN0aW9uKEgpe2Zvcih2YXIgaj1bXSxRPSExLHZlPTA7dmU8SC5sZW5ndGg7dmUrKyl7dmFyIHllPVN0cmluZyhIW3ZlXXx8IiIpLnRyaW0oKTtpZigheWUpe2lmKFEpYnJlYWs7Y29udGludWV9dmFyIE9lPUdlKHllKTtpZihPZSl7ai5wdXNoKE9lKSxRPSEwO2NvbnRpbnVlfWlmKFEpe2lmKHllPT09Ilx1MjAzQSJ8fC9e4oC6KD86XHN8JCkvLnRlc3QoeWUpfHxFLnRlc3QoeWUpfHxJZSh5ZSkpYnJlYWs7ai5wdXNoKHZ0KHllKSl9fXJldHVybiBqfTtmb3IodmFyIG89ZmUsbD12dCxjPVosZj1JZSxkPVRlLHY9R2UsaD1ZZSxnPUZlLG09TGUseT1RZSx3PVF0LEU9L1xiZ3B0LVxkKyg/OlwuXGQrKT8oPzpccytbYS16MC05Li1dKyk/XHMrwrdccytcZCslXHMrbGVmdFxzK8K3XHMrKD86XC98flwvKS4rL2ksQj0vXig/OnRoaW5raW5nfHdvcmtpbmd8cnVubmluZ3xwbGFubmluZ3xhcHBseWluZ3xyZWFkaW5nfHNlYXJjaGluZ3xpbnNwZWN0aW5nfHJldmlld2luZ3xzdW1tYXJpemluZ3xlZGl0aW5nfHVwZGF0aW5nfHdyaXRpbmd8Y29tcGxldGVkKVxiL2ksRj1bXSx4PTAsUz1pLnJlcGxhY2UoL1xyXG4/L2csYSkuc3BsaXQoYSksXz0wO188Uy5sZW5ndGg7XysrKWZvcih2YXIgVj1mZShTW19dKSxVPVYuc3BsaXQoYSksST0wO0k8VS5sZW5ndGg7SSsrKXt2YXIgRD1TdHJpbmcoVVtJXXx8IiIpLnRyaW0oKTtpZihEKXt2YXIgTT1UZShEKTtpZihNKXtGLnB1c2goe2tpbmQ6InVzZXIiLG9yZGVyOngrKyx0ZXh0Ok19KTtjb250aW51ZX12YXIgTD1HZShEKTtpZihMKXtGLnB1c2goe2tpbmQ6ImFzc2lzdGFudCIsb3JkZXI6eCsrLHRleHQ6TH0pO2NvbnRpbnVlfXZhciBXPVllKEQpO1cmJkYucHVzaCh7a2luZDoiZWNobyIsb3JkZXI6eCsrLHRleHQ6V30pfX1mb3IodmFyIEs9Ri5maWx0ZXIoZnVuY3Rpb24oSCxqLFEpe3ZhciB2ZT1RW2otMV07cmV0dXJuIXZlfHx2ZS5raW5kIT09SC5raW5kfHx2ZS50ZXh0IT09SC50ZXh0fSksWD1LLmZpbHRlcihmdW5jdGlvbihIKXtyZXR1cm4gSC5raW5kPT09InVzZXIifSksbmU9Sy5maWx0ZXIoZnVuY3Rpb24oSCl7cmV0dXJuIEgua2luZD09PSJhc3Npc3RhbnQifSksc2U9Sy5maWx0ZXIoZnVuY3Rpb24oSCl7cmV0dXJuIEgua2luZD09PSJlY2hvIn0pLHJlPW12KGkpLFQ9cmUuc3BsaXQoYSkubWFwKGZ1bmN0aW9uKEgpe3JldHVybiBTdHJpbmcoSHx8IiIpLnRyaW1FbmQoKX0pLHE9UWUoVCksTj1YLmxlbmd0aD9YW1gubGVuZ3RoLTFdOm51bGwsWT1zZS5tYXAoZnVuY3Rpb24oSCl7cmV0dXJuIEgudGV4dH0pLmZpbHRlcihmdW5jdGlvbihIKXtyZXR1cm4gSC5sZW5ndGg+PTN9KSxKPW51bGwsaWU9WS5sZW5ndGgtMTtpZT49MDtpZS0tKWlmKFlbaWVdIT09cSl7Sj1ZW2llXTticmVha30hSiYmWS5sZW5ndGgmJihKPVlbWS5sZW5ndGgtMV0pO2Zvcih2YXIgZGU9Tj9OLnRleHQ6Six0ZT1uZS5maWx0ZXIoZnVuY3Rpb24oSCl7cmV0dXJuIU58fEgub3JkZXI+Ti5vcmRlcn0pLm1hcChmdW5jdGlvbihIKXtyZXR1cm4gSC50ZXh0fSksYWU9W10sSGU9cmUubWF0Y2goL15bIFx0XSpb4oCi4pemwrfij7pdWyBcdF0qKC4rKSQvZ20pfHxbXSxEZT0wO0RlPEhlLmxlbmd0aDtEZSsrKXt2YXIgcGU9dnQoSGVbRGVdLnJlcGxhY2UoL15bIFx0XSpb4oCi4pemwrfij7pdWyBcdF0qLywiIikpO3BlJiYoQi50ZXN0KHBlKXx8RS50ZXN0KHBlKXx8L1xiKD86T3BlbkFJIENvZGV4fG1vZGVsOnxkaXJlY3Rvcnk6fFRpcDp8ZXNjIHRvIGludGVycnVwdClcYi9pLnRlc3QocGUpfHxhZS5wdXNoKHBlKSl9dmFyIFA9TGUodGUpfHxMZShRdChUKSl8fChhZS5sZW5ndGg/YWVbYWUubGVuZ3RoLTFdOm51bGwpO3JldHVybiBkZSYmbi5wdXNoKHtyb2xlOiJ1c2VyIixjb250ZW50OmRlfSksUCYmbi5wdXNoKHtyb2xlOiJhc3Npc3RhbnQiLGNvbnRlbnQ6UH0pLCFuLmxlbmd0aCYmTj9uLnB1c2goe3JvbGU6InVzZXIiLGNvbnRlbnQ6Ti50ZXh0fSk6IW4ubGVuZ3RoJiZKJiZuLnB1c2goe3JvbGU6InVzZXIiLGNvbnRlbnQ6Sn0pLG59Zm9yKHZhciBLZT0iXDAiLGN0PSJcYiIsRz0iXHYiLGVlPSJcZiIsb2U9Ig4iLGxlPSIfIixCZT0iXHhBMCIsemU9Ilx4MDciLEp0PW5ldyBSZWdFeHAocysiXFxbWzAtOTs/XSpbYS16QS1aXXwiK3MrIlxcXVteIit6ZSsiXSooIit6ZSsifCIrcysiXFxcXFxcXFwpfCIrcysiWz48PWVQX1heXXxbIitLZSsiLSIrY3QrRytlZStvZSsiLSIrbGUrIl18IitCZSsifCIrdSwiZyIpLGR0PWkucmVwbGFjZShKdCxmdW5jdGlvbihmZSl7cmV0dXJuIGZlPT09QmU/IiAiOmZlPT09dT9hOiIifSkuc3BsaXQodSkuam9pbihhKSxmdD1kdC5zcGxpdChhKS5tYXAoZnVuY3Rpb24oZmUpe3JldHVybiBmZS50cmltKCl9KS5maWx0ZXIoQm9vbGVhbiksX2U9Wy90aGlua2luZyB3aXRoIGhpZ2ggZWZmb3J0L2ksL3RoaW5raW5nIHdpdGggbWVkaXVtIGVmZm9ydC9pLC90aGlua2luZyB3aXRoIGxvdyBlZmZvcnQvaSxuZXcgUmVnRXhwKCJ0aG91Z2h0IGZvciBbMC05XStzIiwiaSIpLG5ldyBSZWdFeHAoIlNhdXRlZWQgZm9yIFswLTldK20iLCJpIiksL0dlcm1pbmF0aW5nL2ksL0Rvb2RsaW5nL2ksL0JyZXdpbmcvaV0sR3Q9bnVsbCxKZT0tMSxydD1bXSxrZT1bXSxnZT1bXSxiZT0wO2JlPGZ0Lmxlbmd0aDtiZSsrKXt2YXIgQz1mdFtiZV0saXQ9Qy5yZXBsYWNlKC9e4p2vXHMqLywiIik7aWYoaXQuaW5kZXhPZignVHJ5IicpPT09MHx8aXQuaW5kZXhPZignVHJ5ICInKT09PTApe3J0LnB1c2goaXQpO2NvbnRpbnVlfWZvcih2YXIgeXQ9ITEsVHQ9MDtUdDxfZS5sZW5ndGg7VHQrKylpZihfZVtUdF0udGVzdChDKSl7eXQ9ITAsZ2UucHVzaChDKTticmVha31pZigheXQmJkMmJkMuaW5kZXhPZigiXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwIikhPT0wJiZDIT09Ilx1Mjc2RiImJkMuaW5kZXhPZigiZXNjIHRvIGludGVycnVwdCIpPT09LTEmJkMuaW5kZXhPZigiQ2xhdWRlIENvZGUgdiIpPT09LTEmJkMuaW5kZXhPZigiU29ubmV0Iik9PT0tMSYmQy5pbmRleE9mKCJ+LyIpIT09MCYmQy5pbmRleE9mKCJcdTI1Q0YgaGlnaCIpPT09LTEmJkMuaW5kZXhPZigiRmFpbGVkIHRvIGluc3RhbGwgQW50aHJvcGljIG1hcmtldHBsYWNlIik9PT0tMSYmQy5pbmRleE9mKCJDbGF1ZGUgQ29kZSBoYXMgc3dpdGNoZWQgZnJvbSBucG0gdG8gbmF0aXZlIGluc3RhbGxlciIpPT09LTEmJkMuaW5kZXhPZigiRmx1dHRlcmluZyIpPT09LTEmJkMuaW5kZXhPZigiPyBmb3Igc2hvcnRjdXRzIik9PT0tMSYmQy5pbmRleE9mKCIwOyIpIT09MCYmQy5pbmRleE9mKCI5OyIpIT09MCYmQy5pbmRleE9mKCJDbGF1ZGUgaXMgd2FpdGluZyIpPT09LTEmJiEoQy5pbmRleE9mKCJcdTI3MjIiKSE9PS0xfHxDLmluZGV4T2YoIlx1MjczMyIpIT09LTF8fEMuaW5kZXhPZigiXHUyNzM2IikhPT0tMXx8Qy5pbmRleE9mKCJcdTI3M0IiKSE9PS0xfHxDLmluZGV4T2YoIlx1MjczRCIpIT09LTEpJiYhKEMuaW5kZXhPZigiXHUyNTkwIik9PT0wfHxDLmluZGV4T2YoIlx1MjU5RCIpPT09MHx8Qy5pbmRleE9mKCJcdTI1OTgiKT09PTApJiYhKChDPT09Imx1Inx8Qz09PSJ1ZSJ8fEM9PT0idHIifHxDPT09InRpInx8Qz09PSJnInx8Qz09PSJuInx8Qz09PSJpXHUyMDI2Inx8Qz09PSJcdTIwMjYifHxDPT09InV0cyJ8fEM9PT0ibHQifHxDPT09InJnInx8Qz09PSJceEI3IikmJkMubGVuZ3RoPDQpJiYhKEMuaW5kZXhPZigiXHUyNzNERiIpPT09MHx8Qy5pbmRleE9mKCJcdTI3M0JGIik9PT0wKSYmQy5pbmRleE9mKCJucG0gV0FSTiIpPT09LTEmJkMuaW5kZXhPZigibnBtIG5vdGljZSIpPT09LTEmJiEoQy5pbmRleE9mKCJhZGRlZCAiKSE9PS0xJiZDLmluZGV4T2YoIiBwYWNrYWdlcyIpIT09LTEpJiZDLmluZGV4T2YoImF1ZGl0ZWQgIik9PT0tMSYmIShDLmluZGV4T2YoImZvdW5kICIpIT09LTEmJkMuaW5kZXhPZigiIHZ1bG5lcmFiaWxpdGllcyIpIT09LTEpJiYhKEMuaW5kZXhPZigiVXNpbmcgIikhPT0tMSYmQy5pbmRleE9mKCIgZm9yICIpIT09LTEmJkMuaW5kZXhPZigic2Vzc2lvbiIpIT09LTEpJiZDLmluZGV4T2YoIllvdSBjYW4gdXNlIik9PT0tMSYmIShDLmluZGV4T2YoIlByZXNzICIpIT09LTEmJkMuaW5kZXhPZigiIGZvciIpIT09LTEpJiYhKEMuaW5kZXhPZigidHlwZSAiKT09PTAmJkMuaW5kZXhPZigiIHRvICIpIT09LTEpJiZDLmluZGV4T2YoIlt3YW5kXSIpIT09MCYmQy5pbmRleE9mKCJDYXB0dXJlZCBDbGF1ZGUgc2Vzc2lvbiBJRCIpPT09LTEmJkMuaW5kZXhPZigiXHUyM0Y1Iik9PT0tMSYmQy5pbmRleE9mKCJhY2NlcHRlZGl0Iik9PT0tMSYmQy5pbmRleE9mKCJzaGlmdCt0YWIiKT09PS0xJiZDLmluZGV4T2YoInRhYnRvY3ljbGUiKT09PS0xJiZDLmluZGV4T2YoImN0cmwrZyIpPT09LTEmJkMuaW5kZXhPZigiL2VmZm9ydCIpPT09LTEmJiEoQy5pbmRleE9mKCJPcHVzIikhPT0tMSYmQy5pbmRleE9mKCJtb2RlbCIpIT09LTEpJiZDLmluZGV4T2YoIkhhaWt1Iik9PT0tMSYmQy5pbmRleE9mKCJ0byBjeWNsZSIpPT09LTEmJiEoQy5pbmRleE9mKCJoaWdoIFx4QjciKSE9PS0xfHxDLmluZGV4T2YoImhpZ2hceEI3IikhPT0tMSkmJiEoQy5pbmRleE9mKCJtZWRpdW0gXHhCNyIpIT09LTF8fEMuaW5kZXhPZigibWVkaXVtXHhCNyIpIT09LTEpJiYhKEMuaW5kZXhPZigibG93IFx4QjciKSE9PS0xfHxDLmluZGV4T2YoImxvd1x4QjciKSE9PS0xKSl7aWYoQy5pbmRleE9mKCJcdTI1Q0YiKT09PTApe2lmKEM9Qy5zbGljZSgxKS50cmltKCksIUMpY29udGludWU7a2UucHVzaChDKTtjb250aW51ZX1DLmxlbmd0aDwzJiYhL15bYS16QS1aXXszfSQvLnRlc3QoQyl8fGtlLnB1c2goQyl9fWlmKGdlLmxlbmd0aD4wKXt2YXIgQ3Q9Z2VbZ2UubGVuZ3RoLTFdLEx0PUN0Lm1hdGNoKG5ldyBSZWdFeHAoImZvciAoWzAtOV0rW21zXSt8IFswLTldK20gWzAtOV0rcykiLCJpIikpLFl0PUx0PyJcdTZERjFcdTVFQTZcdTYwMURcdTgwMDMgIitMdFswXS5yZXBsYWNlKC9mb3IgL2ksIiIpOiJcdTZERjFcdTVFQTZcdTYwMURcdTgwMDNcdTRFMkQuLi4iO24ucHVzaCh7cm9sZToidGhpbmtpbmciLGNvbnRlbnQ6WXQsdHlwZToiZGVlcC10aG91Z2h0In0pfWlmKHJ0Lmxlbmd0aD4wKXt2YXIgYXQ9cnRbcnQubGVuZ3RoLTFdLnJlcGxhY2UoL15UcnlccyovLCIiKS50cmltKCk7bi5wdXNoKHtyb2xlOiJwcm9tcHQiLGNvbnRlbnQ6YXQsdHlwZToic3VnZ2VzdGlvbiJ9KX1pZigha2UubGVuZ3RoKXJldHVybiBuO2Zvcih2YXIgcWU9W10sVWU9bnVsbCxoZT1bXSxiZT0wO2JlPGtlLmxlbmd0aDtiZSsrKWlmKEM9a2VbYmVdLEMuaW5kZXhPZigiXHUyNzZGIik9PT0wKXt2YXIgYnQ9Qy5yZXBsYWNlKC9e4p2vXHMqLywiIikudHJpbSgpO2lmKGJ0LmluZGV4T2YoJ1RyeSInKT09PTB8fGJ0LmluZGV4T2YoJ1RyeSAiJyk9PT0wKWNvbnRpbnVlO1VlIT09bnVsbCYmaGUubGVuZ3RoPjAmJihxZS5wdXNoKHt1c2VyOlVlLGFzc2lzdGFudExpbmVzOmhlfSksaGU9W10pLGJ0P1VlPWJ0OihVZSE9PW51bGwmJmhlLmxlbmd0aD4wJiYocWUucHVzaCh7dXNlcjpVZSxhc3Npc3RhbnRMaW5lczpoZX0pLGhlPVtdKSxVZT1udWxsKX1lbHNlIFVlIT09bnVsbCYmKEMuaW5kZXhPZigiXHUyM0ZBIikhPT0tMSYmKEMuaW5kZXhPZigiSGkhIikhPT0tMXx8Qy5pbmRleE9mKCJIZWxsbyIpIT09LTF8fEMuaW5kZXhPZigiV2hhdCIpIT09LTF8fEMuaW5kZXhPZigid29ya2luZyIpIT09LTEpP2hlLnB1c2goQyk6Qy5pbmRleE9mKCJcdTIzRkEiKT09PTA/aGUucHVzaChDLnNsaWNlKDEpLnRyaW0oKXx8Qyk6Qy5sZW5ndGg+PTgmJkMuaW5kZXhPZigiXHUyNzIyIik9PT0tMSYmQy5pbmRleE9mKCJcdTI3MzMiKT09PS0xJiZDLmluZGV4T2YoIlx1MjczNiIpPT09LTEmJkMuaW5kZXhPZigiXHUyNzNCIik9PT0tMSYmQy5pbmRleE9mKCJcdTI3M0QiKT09PS0xJiZDLmluZGV4T2YoIlx1MjU5MCIpIT09MCYmQy5pbmRleE9mKCJcdTI1OUQiKSE9PTAmJkMuaW5kZXhPZigiXHUyNTk4IikhPT0wJiZDLmluZGV4T2YoImVzY3RvaW50ZXJydXB0Iik9PT0tMSYmQy5pbmRleE9mKCI/Zm9yIikhPT0wJiZDLmluZGV4T2YoIj8gZm9yIikhPT0wJiZoZS5wdXNoKEMpKTtpZihVZSE9PW51bGwmJmhlLmxlbmd0aD4wJiZxZS5wdXNoKHt1c2VyOlVlLGFzc2lzdGFudExpbmVzOmhlfSkscWUubGVuZ3RoPT09MCl7Zm9yKHZhciBwdD0iIix1dD0tMSxiZT0wO2JlPGtlLmxlbmd0aDtiZSsrKWlmKEM9a2VbYmVdLCEoQy5pbmRleE9mKCdUcnkiJyk9PT0wfHxDLmluZGV4T2YoJ1RyeSAiJyk9PT0wKSYmQy5pbmRleE9mKCJGYWlsZWQgdG8gaW5zdGFsbCIpPT09LTEmJkMuaW5kZXhPZigiY3RybCtnIik9PT0tMSYmQy5pbmRleE9mKCJcdTI1Q0YgIikhPT0wJiYhKEMubGVuZ3RoPDJ8fEMubGVuZ3RoPjEwMCkmJi9eW2EtekEtWl0vLnRlc3QoQykpe3B0PUMudHJpbSgpLHV0PWJlO2JyZWFrfWlmKHB0JiZ1dD49MCl7dmFyIEV0PWtlLnNsaWNlKHV0KzEpLmZpbHRlcihmdW5jdGlvbihmZSl7cmV0dXJuIGZlLmxlbmd0aD49OH0pO0V0Lmxlbmd0aD4wJiZxZS5wdXNoKHt1c2VyOnB0LGFzc2lzdGFudExpbmVzOkV0fSl9fWZvcih2YXIgTXQ9MDtNdDxxZS5sZW5ndGg7TXQrKylpZihuLnB1c2goe3JvbGU6InVzZXIiLGNvbnRlbnQ6cWVbTXRdLnVzZXJ9KSxxZVtNdF0uYXNzaXN0YW50TGluZXMubGVuZ3RoPjApe3ZhciBPbj1ZdihxZVtNdF0uYXNzaXN0YW50TGluZXMuam9pbihhKSk7bi5wdXNoKHtyb2xlOiJhc3Npc3RhbnQiLGNvbnRlbnQ6T259KX1yZXR1cm4gbn12YXIgTW89InRyYW5zcGFyZW50IjtmdW5jdGlvbiBCaShlLHQpe2Zvcih2YXIgbj10fHwzLGk9ZVswXS5sZW5ndGgqbixhPWUubGVuZ3RoKm4sdT0iIixzPTA7czxlLmxlbmd0aDtzKyspZm9yKHZhciBvPTA7bzxlW3NdLmxlbmd0aDtvKyspZVtzXVtvXSE9PU1vJiYodSs9JzxyZWN0IHg9IicrbypuKyciIHk9IicrcypuKyciIHdpZHRoPSInK24rJyIgaGVpZ2h0PSInK24rJyIgZmlsbD0iJytlW3NdW29dKyciLz4nKTtyZXR1cm4nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAnK2krIiAiK2ErJyIgY2xhc3M9InBpeGVsLWF2YXRhci1zdmciPicrdSsiPC9zdmc+In1mdW5jdGlvbiBEaShlKXt2YXIgdD1NbyxuPWUuYmFzZSxpPWUuZGFyayxhPWUubGlnaHR8fGUuYmFzZSx1PWUuYWNjZW50fHwiI0ZGRkZGRiIscz1lLmV5ZXx8IiMyRDJEMkQiLG89ZS5tb3V0aHx8IiNGMjhCOUEiLGw9ZS5ub3NlfHxlLmRhcms7cmV0dXJuW1t0LGksdCx0LHQsdCx0LHQsaSx0XSxbaSxuLGksdCx0LHQsdCxpLG4saV0sW2ksbixuLG4sbixuLG4sbixuLGldLFtuLG4sdSxzLG4sbix1LHMsbixuXSxbbixuLHUsdSxuLG4sdSx1LG4sbl0sW24sbixuLG4sbyxvLG4sbixuLG5dLFtuLGwsbixhLG4sbixhLG4sbCxuXSxbdCxuLG4sbixuLG4sbixuLG4sdF0sW3QsdCxuLGksbixuLGksbix0LHRdLFt0LHQsdCxuLHQsdCxuLHQsdCx0XV19dmFyIGh2PXtiYXNlOiIjRjA5MjNBIixkYXJrOiIjQzQ2QTFBIixsaWdodDoiI0YwOTIzQSIsYWNjZW50OiIjRkZGRkZGIixleWU6IiMyRDJEMkQiLG1vdXRoOiIjRjI4QjlBIixub3NlOiIjRTg3RDVBIn0seXY9e2Jhc2U6IiM5RUFBQjgiLGRhcms6IiM2QjdCOEQiLGxpZ2h0OiIjQzVDRUQ4IixhY2NlbnQ6IiNGRkZGRkYiLGV5ZToiIzdFQzg4QiIsbW91dGg6IiNGMjhCOUEifSxxbz1be2Jhc2U6IiM1QThGRTAiLGRhcms6IiMyRTVCQjMiLGxpZ2h0OiIjOUNDMEYyIixhY2NlbnQ6IiNGRkZGRkYiLGV5ZToiI0ZGRDY2RSIsbW91dGg6IiNGMjhCOUEiLHByaW1hcnk6IiM1QThGRTAifSx7YmFzZToiI0EwNkZFMCIsZGFyazoiIzZCNDVBOCIsbGlnaHQ6IiNDOEE0RjIiLGFjY2VudDoiI0ZGRkZGRiIsZXllOiIjRkZFMzZFIixtb3V0aDoiI0YyOEI5QSIscHJpbWFyeToiI0EwNkZFMCJ9LHtiYXNlOiIjN0JCNzZCIixkYXJrOiIjNEY4QTQwIixsaWdodDoiI0E5RDQ5QyIsYWNjZW50OiIjRkZGRkZGIixleWU6IiMyRDJEMkQiLG1vdXRoOiIjRjI4QjlBIixwcmltYXJ5OiIjN0JCNzZCIn0se2Jhc2U6IiNEODZBODgiLGRhcms6IiM5QzNBNTciLGxpZ2h0OiIjRThBNEI1IixhY2NlbnQ6IiNGRkZGRkYiLGV5ZToiIzJEMkQyRCIsbW91dGg6IiNGRkZGRkYiLHByaW1hcnk6IiNEODZBODgifSx7YmFzZToiIzVCQjdCMCIsZGFyazoiIzJFNzg3MyIsbGlnaHQ6IiM5Q0Q2RDIiLGFjY2VudDoiI0ZGRkZGRiIsZXllOiIjRkZENjZFIixtb3V0aDoiI0YyOEI5QSIscHJpbWFyeToiIzVCQjdCMCJ9LHtiYXNlOiIjNEE0QTYwIixkYXJrOiIjMUYxRjJFIixsaWdodDoiIzZFNkU4NCIsYWNjZW50OiIjRjVGNUY1IixleWU6IiNGRkQ2NkUiLG1vdXRoOiIjRjI4QjlBIixwcmltYXJ5OiIjNEE0QTYwIn0se2Jhc2U6IiNEOEE4NUEiLGRhcms6IiM5QzcwMjgiLGxpZ2h0OiIjRUJDNzhBIixhY2NlbnQ6IiNGRkZGRkYiLGV5ZToiIzJEMkQyRCIsbW91dGg6IiNGMjhCOUEiLHByaW1hcnk6IiNEOEE4NUEifV07ZnVuY3Rpb24gYnYoZSx0KXtmb3IodmFyIG49U3RyaW5nKGV8fCIiKSxpPTAsYT0wO2E8bi5sZW5ndGg7YSsrKWk9KGk8PDUpLWkrbi5jaGFyQ29kZUF0KGEpfDA7cmV0dXJuIE1hdGguYWJzKGkpJXR9dmFyIE9vPXsiZ2VuZXJhbC1wdXJwb3NlIjoiXHU0RTA3XHU4MEZEXHU3MzJCIixFeHBsb3JlOiJcdTRGQTZcdTYzQTJcdTczMkIiLCJjb2RlLWV4cGxvcmVyIjoiXHU0RkE2XHU2M0EyXHU3MzJCIiwiY29kZS1yZXZpZXdlciI6Ilx1NUJBMVx1NjdFNVx1NzMyQiIsImNvZGUtYXJjaGl0ZWN0IjoiXHU2N0I2XHU2Nzg0XHU3MzJCIiwiY29kZS1zaW1wbGlmaWVyIjoiXHU3QjgwXHU1MzE2XHU3MzJCIiwiY29kZS1ndWlkZSI6Ilx1NTQxMVx1NUJGQ1x1NzMyQiIsUGxhbjoiXHU3QjU2XHU1MjEyXHU3MzJCIiwiZmVhdHVyZS1kZXYiOiJcdTVGMDBcdTUzRDFcdTczMkIiLCJwci10ZXN0LWFuYWx5emVyIjoiXHU2RDRCXHU4QkQ1XHU3MzJCIiwic2lsZW50LWZhaWx1cmUtaHVudGVyIjoiXHU2MkE0XHU1MzZCXHU3MzJCIiwidHlwZS1kZXNpZ24tYW5hbHl6ZXIiOiJcdTdDN0JcdTU3OEJcdTczMkIiLCJjb21tZW50LWFuYWx5emVyIjoiXHU2Q0U4XHU5MUNBXHU3MzJCIn0semE9bnVsbDtmdW5jdGlvbiBQbyhlKXtpZighZSlyZXR1cm4iIjt2YXIgdD1lLmFnZW50VHlwZXx8IiI7aWYodCYmT29bdF0pcmV0dXJuIE9vW3RdO2lmKHQpcmV0dXJuIHQ7dmFyIG49KGUudGFza0lkfHwiIikuc2xpY2UoLTQpfHwoRHUoKT09PSJFbmdsaXNoIj8iPyI6Ilx1NjcyQVx1NzdFNSIpO3JldHVybiBjZSgic3ViYWdlbnQuaGVscGVyX2ZhbGxiYWNrX3ByZWZpeCIpK259ZnVuY3Rpb24gSG8oZSl7dmFyIHQ9UG8oZSk7aWYoIXQpcmV0dXJuIHQ7dmFyIG49emEmJmUmJmUudGFza0lkP3phLmdldChlLnRhc2tJZCk6bnVsbDtyZXR1cm4gbj90K246dH1mdW5jdGlvbiBfbyhlKXt2YXIgdD1lJiYoZS5hZ2VudFR5cGV8fGUudGFza0lkKXx8InN1YmFnZW50IjtyZXR1cm4gcW9bYnYodCxxby5sZW5ndGgpXX1mdW5jdGlvbiBHZyhlKXt2YXIgdD1fbyhlKSxuPUhvKGUpLGk9QmkoRGkodCkpO3JldHVybic8ZGl2IGNsYXNzPSJjaGF0LW1lc3NhZ2UtYXZhdGFyIGFzc2lzdGFudCBzdWJhZ2VudCIgc3R5bGU9Ii0tYWdlbnQtY29sb3I6Jyt0LnByaW1hcnkrJyI+PGRpdiBjbGFzcz0icGl4ZWwtYXZhdGFyIj4nK2krJzwvZGl2PjxzcGFuIGNsYXNzPSJhdmF0YXItbmFtZSI+JytwKG4pKyI8L3NwYW4+PC9kaXY+In1mdW5jdGlvbiBFdihlLHQpe2lmKCFlfHxlLnR5cGUhPT0idG9vbF9yZXN1bHQiKXJldHVybiIiO3ZhciBuPW1uKGUuY29udGVudCksaT1lLmlzX2Vycm9yPT09ITAsYT10eXBlb2Ygbj09InN0cmluZyI/bjpuPT1udWxsPyIiOlN0cmluZyhuKTtpZighaSYmIWEudHJpbSgpKXJldHVybic8ZGl2IGNsYXNzPSJzdWJhZ2VudC1yZXBseSBwZW5kaW5nIj48c3BhbiBjbGFzcz0ic3ViYWdlbnQtcmVwbHktbWFya2VyIHBlbmRpbmciPicrcChjZSgic3ViYWdlbnQucnVubmluZyIpKSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBpbmctaW5kaWNhdG9yIj48c3Bhbj48L3NwYW4+PHNwYW4+PC9zcGFuPjxzcGFuPjwvc3Bhbj48L3NwYW4+PC9kaXY+Jzt2YXIgdT1hLnRyaW0oKT9hOmNlKCJzdWJhZ2VudC5ub19vdXRwdXQiKSxzPWEudHJpbSgpP1FhKHUpOnAodSksbz1jZShpPyJzdWJhZ2VudC50YXNrLmZhaWxlZCI6InN1YmFnZW50LnRhc2suZG9uZSIpLGw9aT8iXHUyNzE3IjoiXHUyNzEzIjtyZXR1cm4nPGRpdiBjbGFzcz0ic3ViYWdlbnQtcmVwbHkgZmluYWwnKyhpPyIgZXJyb3IiOiIiKSsnIj48ZGl2IGNsYXNzPSJzdWJhZ2VudC1yZXBseS1tYXJrZXIgJysoaT8iZXJyb3IiOiJkb25lIikrJyI+PHNwYW4gY2xhc3M9InN1YmFnZW50LXJlcGx5LW1hcmtlci1pY29uIiBhcmlhLWhpZGRlbj0idHJ1ZSI+JytsKyc8L3NwYW4+PHNwYW4gY2xhc3M9InN1YmFnZW50LXJlcGx5LW1hcmtlci1sYWJlbCI+JytwKG8pKyc8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0ic3ViYWdlbnQtcmVwbHktY29udGVudCI+JytzKyI8L2Rpdj48L2Rpdj4ifXZhciBraT17YXNzaXN0YW50OkJpKERpKGh2KSksdXNlcjpCaShEaSh5dikpfSxObz17dXNlcjp7bmFtZToiXHU4RDVCXHU1MzVBXHU4NjRFXHU1OTlFIixhdmF0YXJTdmc6a2kudXNlcn0sYXNzaXN0YW50OntuYW1lOiJcdTUyRTRcdTUyQjNcdTUyMURcdTRFOEMiLGF2YXRhclN2ZzpraS5hc3Npc3RhbnR9fTtmdW5jdGlvbiBVYShlKXt2YXIgdD1yLmNvbmZpZyYmci5jb25maWcuc3RydWN0dXJlZENoYXRQZXJzb25hLG49dCYmdFtlXT90W2VdOm51bGwsaT1Ob1tlXXx8Tm8uYXNzaXN0YW50O3JldHVybntuYW1lOm4mJnR5cGVvZiBuLm5hbWU9PSJzdHJpbmciJiZuLm5hbWUudHJpbSgpP24ubmFtZS50cmltKCk6aS5uYW1lLGF2YXRhcjpuJiZ0eXBlb2Ygbi5hdmF0YXI9PSJzdHJpbmciJiZuLmF2YXRhci50cmltKCk/bi5hdmF0YXIudHJpbSgpOm51bGwsYXZhdGFyU3ZnOmkuYXZhdGFyU3ZnfX1mdW5jdGlvbiBqbyhlKXtyZXR1cm4nPGRpdiBjbGFzcz0icGl4ZWwtYXZhdGFyIj4nK2UrIjwvZGl2PiJ9ZnVuY3Rpb24gWWcoZSx0KXtpZighKCFlfHwhZS5wYXJlbnROb2RlKSl7dmFyIG49VWEodD09PSJ1c2VyIj8idXNlciI6ImFzc2lzdGFudCIpO2Uub3V0ZXJIVE1MPWpvKG4uYXZhdGFyU3ZnKX19ZnVuY3Rpb24gUW4oZSx0KXt0PXR8fHt9O3ZhciBuPWU9PT0idXNlciI/InVzZXIiOiJhc3Npc3RhbnQiLGk9VWEobiksYT1pLmF2YXRhcj8nPGltZyBjbGFzcz0icGl4ZWwtYXZhdGFyLWltYWdlIiBzcmM9IicrcChpLmF2YXRhcikrJyIgYWx0PSInK3AoaS5uYW1lKSsnIiBvbmVycm9yPSJoYW5kbGVDaGF0QXZhdGFySW1hZ2VFcnJvcih0aGlzLCAnK0pTT04uc3RyaW5naWZ5KG4pKycpIiAvPic6am8oaS5hdmF0YXJTdmcpLHU9dC5sZWZ0U2xvdD90LmxlZnRTbG90OiIiO3JldHVybic8ZGl2IGNsYXNzPSJjaGF0LW1lc3NhZ2UtYXZhdGFyICcrZSsnIj4nK2ErJzxzcGFuIGNsYXNzPSJhdmF0YXItbmFtZSI+JytwKGkubmFtZSkrIjwvc3Bhbj4iK3UrIjwvZGl2PiJ9ZnVuY3Rpb24gRnYoKXt2YXIgZT1TdCgpO3JldHVybiFlfHwhdWUoZSk/IiI6YWwoZSx7a2luZDoiY29tcGFjdCJ9KX1mdW5jdGlvbiBWYShlLHQsbixpKXtpZihlLnJvbGU9PT0idGhpbmtpbmciKXt2YXIgYT10eXBlb2YgZS5jb250ZW50PT0ic3RyaW5nIj9lLmNvbnRlbnQ6IiI7aWYoIWEudHJpbSgpKXJldHVybiIiO3ZhciB1PU90KCJ0aGlua2luZyIsW091KGUsbiksInB0eSJdKSxzPVhlKHUpLG89cz09PW51bGw/SW4oInRoaW5raW5nIik6cztyZXR1cm4nPGRpdiBjbGFzcz0iY2hhdC1tZXNzYWdlIHRoaW5raW5nIj48ZGl2IGNsYXNzPSJ0aGlua2luZy1pbmxpbmUgdGhpbmtpbmctcHR5ICcrKG8/ImV4cGFuZGVkIjoiY29sbGFwc2VkIikrJyIgZGF0YS1leHBhbmQta2luZD0idGhpbmtpbmciIGRhdGEtZXhwYW5kLWtleT0iJytwKHUpKyciIGRhdGEtdGhpbmtpbmc9IicrcChhKSsnIiBvbmNsaWNrPSJfX3RoaW5raW5nVG9nZ2xlKHRoaXMpIj48c3BhbiBjbGFzcz0idGhpbmtpbmctaW5saW5lLWljb24iPlx1MjlCRjwvc3Bhbj48c3BhbiBjbGFzcz0idGhpbmtpbmctaW5saW5lLXByZXZpZXciPicrcChhKSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJ0aGlua2luZy1pbmxpbmUtYWN0aW9uIj4nKyhvPyJcdTY1MzZcdThENzciOiJcdTVDNTVcdTVGMDAiKSsiPC9zcGFuPjwvZGl2PjwvZGl2PiJ9aWYoZS5yb2xlPT09InByb21wdCIpcmV0dXJuJzxkaXYgY2xhc3M9ImNoYXQtbWVzc2FnZSBwcm9tcHQiPjxkaXYgY2xhc3M9InByb21wdC1jYXJkIj48ZGl2IGNsYXNzPSJwcm9tcHQtaWNvbiI+XHUyMTkyPC9kaXY+PGRpdiBjbGFzcz0icHJvbXB0LWNvbnRlbnQiPlx1OEJENVx1OEJENVx1RkYxQTxzcGFuIGNsYXNzPSJwcm9tcHQtdGV4dCI+JytwKGUuY29udGVudCkrIjwvc3Bhbj48L2Rpdj48L2Rpdj48L2Rpdj4iO2lmKEFycmF5LmlzQXJyYXkoZS5jb250ZW50KSlyZXR1cm4ganYoZSx0LG4saSk7dmFyIGw9UW4oZS5yb2xlKSxjPWUucm9sZT09PSJhc3Npc3RhbnQiP1FhKGUuY29udGVudCk6ZS5yb2xlPT09InVzZXIiP0pvKGUuY29udGVudCk6cChlLmNvbnRlbnQpO3JldHVybic8ZGl2IGNsYXNzPSJjaGF0LW1lc3NhZ2UgJytlLnJvbGUrJyI+JytsKyc8ZGl2IGNsYXNzPSJjaGF0LW1lc3NhZ2UtYnViYmxlIj4nK2MrIjwvZGl2PjwvZGl2PiJ9ZnVuY3Rpb24gd3YoZSl7dmFyIHQ9e307aWYoIUFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIHQ7Zm9yKHZhciBuPTA7bjxlLmxlbmd0aDtuKyspe3ZhciBpPWVbbl07aWYoaSYmaS50eXBlPT09InRvb2xfcmVzdWx0Iil7dmFyIGE9aS50b29sX3VzZV9pZDtpZighYSljb250aW51ZTt0W2FdfHwodFthXT1bXSksdFthXS5wdXNoKGkpfX1yZXR1cm4gdH1mdW5jdGlvbiBSbyhlLHQpe3ZhciBuPWUmJnQ/ZVt0XTpudWxsO2lmKCFufHwhbi5sZW5ndGgpcmV0dXJuIG51bGw7Zm9yKHZhciBpPTA7aTxuLmxlbmd0aC0xO2krKylpZihpbChuW2ldLG5baSsxXSkpcmV0dXJuIG5baSsxXTtyZXR1cm4gbltuLmxlbmd0aC0xXX1mdW5jdGlvbiBDdihlLHQpe3ZhciBuPWUmJnQ/ZVt0XTpudWxsO2lmKCFufHxuLmxlbmd0aDwyKXJldHVybiExO2Zvcih2YXIgaT0wO2k8bi5sZW5ndGgtMTtpKyspaWYoaWwobltpXSxuW2krMV0pKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIEJ2KGUpe3JldHVybic8ZGl2IGNsYXNzPSJzdHJ1Y3R1cmVkLXRvb2wtaGludCI+XHU1REYyXHU4MUVBXHU1MkE4XHU2MDYyXHU1OTBEXHU0RTAwXHU2QjIxICcrcChZYShlKSkrIiBcdTUzQzJcdTY1NzBcdTk1RUVcdTk4OTg8L2Rpdj4ifXZhciBEdj17UmVhZDoxLEdsb2I6MSxHcmVwOjEsV2ViRmV0Y2g6MSxXZWJTZWFyY2g6MSxUb2RvUmVhZDoxfTtmdW5jdGlvbiBXbyhlKXtpZighZXx8ZS50eXBlIT09InRvb2xfdXNlInx8IUR2W2UubmFtZV0pcmV0dXJuITE7aWYoZS5uYW1lPT09IlJlYWQiKXt2YXIgdD1lLmlucHV0fHx7fTtpZihidSh0LmZpbGVfcGF0aHx8dC5wYXRofHwiIikpcmV0dXJuITF9cmV0dXJuITB9ZnVuY3Rpb24ga3YoZSl7Zm9yKHZhciB0PVtdLG49MDtuPGUubGVuZ3RoOyl7dmFyIGk9ZVtuXTtpZihpLnR5cGU9PT0idG9vbF9yZXN1bHQiKXtuKys7Y29udGludWV9aWYoV28oaSkpe2Zvcih2YXIgYT1be2Jsb2NrOmksaW5kZXg6bn1dLHU9bisxO3U8ZS5sZW5ndGg7KXtpZihlW3VdLnR5cGU9PT0idG9vbF9yZXN1bHQiKXt1Kys7Y29udGludWV9aWYoV28oZVt1XSkpYS5wdXNoKHtibG9jazplW3VdLGluZGV4OnV9KSx1Kys7ZWxzZSBicmVha31hLmxlbmd0aD49Mj90LnB1c2goe3R5cGU6Imdyb3VwIixpdGVtczphLGVuZEluZGV4OnV9KTp0LnB1c2goe3R5cGU6InNpbmdsZSIsYmxvY2s6aSxpbmRleDpufSksbj11fWVsc2UgdC5wdXNoKHt0eXBlOiJzaW5nbGUiLGJsb2NrOmksaW5kZXg6bn0pLG4rK31yZXR1cm4gdH12YXIgQXY9e1JlYWQ6Ilx1OEJGQlx1NTNENiIsR2xvYjoiXHU2NDFDXHU3RDIyIixHcmVwOiJcdTY0MUNcdTdEMjIiLFdlYkZldGNoOiJcdTYyOTNcdTUzRDYiLFdlYlNlYXJjaDoiXHU2NDFDXHU3RDIyIixUb2RvUmVhZDoiXHU1Rjg1XHU1MjlFIn07ZnVuY3Rpb24geHYoZSx0LG4saSl7Zm9yKHZhciBhPXt9LHU9MDt1PGUubGVuZ3RoO3UrKyl7dmFyIHM9ZVt1XS5ibG9jay5uYW1lO2Fbc109KGFbc118fDApKzF9Zm9yKHZhciBvPSEwLGw9ITEsdT0wO3U8ZS5sZW5ndGg7dSsrKXt2YXIgYz1lW3VdLmJsb2NrLGY9Um8obixjLmlkKTtmP2YuaXNfZXJyb3ImJihsPSEwKTpvPSExfXZhciBkPW8/bD8iXHUyNzE3IjoiXHUyNzEzIjoiXHUyMDI2Iix2PW8/bD8iZXJyb3IiOiJkb25lIjoicGVuZGluZyIsaD1bXTtmb3IodmFyIGcgaW4gYSloLnB1c2goYVtnXSsiICIrKEF2W2ddfHxnKSk7Zm9yKHZhciBtPWguam9pbigiIFx4QjcgIikseT1PdCgidG9vbC1ncm91cCIsW2ksZVswXSYmZVswXS5pbmRleCxlLmxlbmd0aF0pLHc9WGUoeSksRT13PT09bnVsbD9JbigidG9vbEdyb3VwIik6dyxCPSIiLHU9MDt1PGUubGVuZ3RoO3UrKyl0cnl7Qis9R28oZVt1XS5ibG9jayx0LG4sZVt1XS5pbmRleCxpKX1jYXRjaHtCKz0nPGRpdiBjbGFzcz0icmVuZGVyLWVycm9yIj5cdTVERTVcdTUxNzdcdTZFMzJcdTY3RDNcdTU5MzFcdThEMjU8L2Rpdj4nfXJldHVybic8ZGl2IGNsYXNzPSJ0b29sLWdyb3VwIiBkYXRhLWV4cGFuZC1raW5kPSJ0b29sLWdyb3VwIiBkYXRhLWV4cGFuZC1rZXk9IicrcCh5KSsnIiBkYXRhLWV4cGFuZGVkPSInKyhFPyJ0cnVlIjoiZmFsc2UiKSsnIiBkYXRhLXN0YXR1cz0iJyt2KyciPjxkaXYgY2xhc3M9InRvb2wtZ3JvdXAtc3VtbWFyeSIgb25jbGljaz0iX190b29sR3JvdXBUb2dnbGUodGhpcy5wYXJlbnROb2RlKSI+PHNwYW4gY2xhc3M9InRvb2wtZ3JvdXAtc3RhdHVzIj4nK2QrJzwvc3Bhbj48c3BhbiBjbGFzcz0idG9vbC1ncm91cC10ZXh0Ij4nK3AobSkrJzwvc3Bhbj48c3BhbiBjbGFzcz0idG9vbC1ncm91cC1jb3VudCI+JytlLmxlbmd0aCsnIFx1NEUyQVx1OEMwM1x1NzUyODwvc3Bhbj48c3ZnIGNsYXNzPSJ0b29sLWdyb3VwLWNoZXZyb24iIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0eWxlPSJ0cmFuc2Zvcm06JysoRT8icm90YXRlKDE4MGRlZykiOiIiKSsnIj48cG9seWxpbmUgcG9pbnRzPSI2IDkgMTIgMTUgMTggOSIvPjwvc3ZnPjwvZGl2PjxkaXYgY2xhc3M9InRvb2wtZ3JvdXAtYm9keSIgc3R5bGU9ImRpc3BsYXk6JysoRT8iYmxvY2siOiJub25lIikrJzsiPicrQisiPC9kaXY+PC9kaXY+In13aW5kb3cuX190b29sR3JvdXBUb2dnbGU9ZnVuY3Rpb24oZSl7aWYoZSl7dmFyIHQ9ZS5nZXRBdHRyaWJ1dGUoImRhdGEtZXhwYW5kZWQiKT09PSJ0cnVlIjtlLnNldEF0dHJpYnV0ZSgiZGF0YS1leHBhbmRlZCIsdD8iZmFsc2UiOiJ0cnVlIik7dmFyIG49ZS5xdWVyeVNlbGVjdG9yKCIudG9vbC1ncm91cC1ib2R5Iik7biYmKG4uc3R5bGUuZGlzcGxheT10PyJub25lIjoiYmxvY2siKTt2YXIgaT1lLnF1ZXJ5U2VsZWN0b3IoIi50b29sLWdyb3VwLWNoZXZyb24iKTtpJiYoaS5zdHlsZS50cmFuc2Zvcm09dD8iIjoicm90YXRlKDE4MGRlZykiKSxCbihlLCJ0b29sLWdyb3VwIil9fTtmdW5jdGlvbiBTdihlLHQpe2Zvcih2YXIgbj0wLGk9MCxhPTAsdT17fSxzPTA7czx0Lmxlbmd0aDtzKyspe3ZhciBvPWVbdFtzXV07aWYobyl7by5yb2xlPT09InVzZXIiJiZuKys7dmFyIGw9by5jb250ZW50O2lmKEFycmF5LmlzQXJyYXkobCkpZm9yKHZhciBjPTA7YzxsLmxlbmd0aDtjKyspe3ZhciBmPWxbY107aWYoZilpZihmLl9fc3ViYWdlbnQmJmYuX19zdWJhZ2VudC50YXNrSWQmJih1W2YuX19zdWJhZ2VudC50YXNrSWRdPTEpLGYudHlwZT09PSJ0b29sX3VzZSIpe2krKzt2YXIgZD1BaShmKTtkJiZkLnRhc2tJZCYmKHVbZC50YXNrSWRdPTEpfWVsc2UgZi50eXBlPT09InRvb2xfcmVzdWx0IiYmZi5pc19lcnJvciYmYSsrfX19dmFyIHY9MDtmb3IodmFyIGggaW4gdSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodSxoKSYmdisrO3JldHVybntyb3VuZHM6bix0b29sczppLGFnZW50czp2LGVycm9yczphfX1mdW5jdGlvbiB6byhlKXt2YXIgdD1bXTtyZXR1cm4gdC5wdXNoKGNlKCJoaXN0b3J5LnJvdW5kcyIse246U3RyaW5nKGUucm91bmRzKX0pKSxlLnRvb2xzPjAmJnQucHVzaChjZSgiaGlzdG9yeS50b29scyIse246U3RyaW5nKGUudG9vbHMpfSkpLGUuYWdlbnRzPjAmJnQucHVzaChjZSgiaGlzdG9yeS5hZ2VudHMiLHtuOlN0cmluZyhlLmFnZW50cyl9KSksZS5lcnJvcnM+MCYmdC5wdXNoKGNlKCJoaXN0b3J5LmVycm9ycyIse246U3RyaW5nKGUuZXJyb3JzKX0pKSx0LmpvaW4oIiBceEI3ICIpfWZ1bmN0aW9uIEthKGUsdCl7Zm9yKHZhciBuPWUubmV4dEVsZW1lbnRTaWJsaW5nO247KW4uY2xhc3NMaXN0LmNvbnRhaW5zKCJjaGF0LWxvYWQtbW9yZSIpfHwodD9uLmNsYXNzTGlzdC5yZW1vdmUoImNoYXQtaGlzdG9yeS1oaWRkZW4iKTpuLmNsYXNzTGlzdC5hZGQoImNoYXQtaGlzdG9yeS1oaWRkZW4iKSksbj1uLm5leHRFbGVtZW50U2libGluZ31mdW5jdGlvbiBJdihlLHQsbixpKXshZXx8IXR8fChUdihlLHQsITEpLEphKHQpLHF2KGUpKX1mdW5jdGlvbiBRZyhlKXt2YXIgdD1lLnF1ZXJ5U2VsZWN0b3IoIiNjaGF0LWZvbGQtYmFyIik7cmV0dXJuIHR8fCh0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHQuaWQ9ImNoYXQtZm9sZC1iYXIiLHQuY2xhc3NOYW1lPSJjaGF0LWZvbGQtYmFyIGhpZGRlbiIsZS5pbnNlcnRCZWZvcmUodCxlLmZpcnN0Q2hpbGQpLHQpfWZ1bmN0aW9uIFR2KGUsdCxuKXtlJiZlLmNsYXNzTGlzdC50b2dnbGUoImF1dG8tZm9sZCIsISFuKX1mdW5jdGlvbiAkZyhlLHQpe2Zvcih2YXIgbj1bXSxpPTA7aTx0O2krKyllW2ldJiZuLnB1c2goaSk7cmV0dXJuIG59ZnVuY3Rpb24gSmEoZSl7aWYoZSlmb3IodmFyIHQ9ZS5xdWVyeVNlbGVjdG9yQWxsKCIuY2hhdC1hdXRvLWZvbGQtaGlkZGVuIiksbj0wO248dC5sZW5ndGg7bisrKXRbbl0uY2xhc3NMaXN0LnJlbW92ZSgiY2hhdC1hdXRvLWZvbGQtaGlkZGVuIil9ZnVuY3Rpb24gWGcoZSx0LG4pe2lmKEphKGUpLCEoIW58fHQ8MSkpe2Zvcih2YXIgaT1lLnF1ZXJ5U2VsZWN0b3JBbGwoIi5jaGF0LW1lc3NhZ2U6bm90KC5zeXN0ZW0taW5mbykiKSxhPTA7YTxpLmxlbmd0aDthKyspe3ZhciB1PWlbYV0uZ2V0QXR0cmlidXRlKCJkYXRhLW1zZy1pbmRleCIpO2lmKHUhPW51bGwpe3ZhciBzPXBhcnNlSW50KHUsMTApOyFpc05hTihzKSYmczx0JiZpW2FdLmNsYXNzTGlzdC5hZGQoImNoYXQtYXV0by1mb2xkLWhpZGRlbiIpfX1MdihlKX19ZnVuY3Rpb24gTHYoZSl7dmFyIHQ9ZT9lLnF1ZXJ5U2VsZWN0b3IoIi5jaGF0LWhpc3Rvcnktc3VtbWFyeSIpOm51bGw7aWYodCl7dC5zZXRBdHRyaWJ1dGUoImRhdGEtZXhwYW5kZWQiLCJmYWxzZSIpO3ZhciBuPXQucXVlcnlTZWxlY3RvcigiLmNoYXQtaGlzdG9yeS1zdW1tYXJ5LWJ0biIpO24mJm4uc2V0QXR0cmlidXRlKCJhcmlhLWV4cGFuZGVkIiwiZmFsc2UiKTt2YXIgaT10LnF1ZXJ5U2VsZWN0b3IoIi5jaGF0LWhpc3Rvcnktc3VtbWFyeS10aXRsZSIpO2kmJihpLnRleHRDb250ZW50PWNlKCJoaXN0b3J5LmV4cGFuZCIpKSxLYSh0LCExKSx0LmNsYXNzTGlzdC5hZGQoImNoYXQtYXV0by1mb2xkLWhpZGRlbiIpO3ZhciBhPWUuZ2V0QXR0cmlidXRlKCJkYXRhLWhpc3Rvcnktc2lnIik7aWYoYSl7dmFyIHU9YS5zcGxpdCgiOiIpO3UubGVuZ3RoPj0zJiYodVsyXT0iMCIsZS5zZXRBdHRyaWJ1dGUoImRhdGEtaGlzdG9yeS1zaWciLHUuam9pbigiOiIpKSl9fX1mdW5jdGlvbiBNdihlKXshZXx8IWUuaXNDb25uZWN0ZWR8fChDbih7cmVtb3ZlRGl2aWRlcjohMH0pLGt1KCEwKSl9ZnVuY3Rpb24gcXYoZSl7aWYoZSl7dmFyIHQ9ZS5xdWVyeVNlbGVjdG9yKCIjY2hhdC1mb2xkLWJhciIpO3QmJih0LmlubmVySFRNTD0iIix0LmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLHIuY2hhdEF1dG9Gb2xkU25hcHNob3Q9bnVsbCl9fWZ1bmN0aW9uIFpnKGUsdCxuKXt2YXIgaT1VbyhlKXx8Ilx1NjVCMFx1NkQ4OFx1NjA2RiIsYT10P1VvKHQpOiJcdTdCNDlcdTVGODVcdTU2REVcdTU5MEQuLi4iLHU9IiI7cmV0dXJuIG4mJih1PSc8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImNoYXQtZm9sZC1yb3cgaGlzdG9yeSIgb25jbGljaz0id2luZG93Ll9fY2hhdEZvbGRUb2dnbGVIaXN0b3J5ICYmIHdpbmRvdy5fX2NoYXRGb2xkVG9nZ2xlSGlzdG9yeSgpIiB0aXRsZT0iXHU1QzU1XHU1RjAwXHU2MjE2XHU2NTM2XHU4RDc3XHU2NkY0XHU2NUU5XHU1QkY5XHU4QkREIj48c3BhbiBjbGFzcz0iY2hhdC1mb2xkLXJvbGUiPlx1NTM4Nlx1NTNGMjwvc3Bhbj48c3BhbiBjbGFzcz0iY2hhdC1mb2xkLXRleHQiPlx1NURGMlx1NjUzNlx1OEQ3NyAnK3Aoem8obikpKyI8L3NwYW4+PC9idXR0b24+IiksdSsnPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJjaGF0LWZvbGQtcm93IHVzZXIiIG9uY2xpY2s9IndpbmRvdy5fX2NoYXRGb2xkSnVtcFRvTGF0ZXN0ICYmIHdpbmRvdy5fX2NoYXRGb2xkSnVtcFRvTGF0ZXN0KCkiIHRpdGxlPSJcdTVCOUFcdTRGNERcdTUyMzBcdTY3MDBcdTY1QjBcdTZEODhcdTYwNkYiPjxzcGFuIGNsYXNzPSJjaGF0LWZvbGQtcm9sZSI+XHU2MjExPC9zcGFuPjxzcGFuIGNsYXNzPSJjaGF0LWZvbGQtdGV4dCI+JytwKGkpKyc8L3NwYW4+PC9idXR0b24+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJjaGF0LWZvbGQtcm93IGFzc2lzdGFudCIgb25jbGljaz0id2luZG93Ll9fY2hhdEZvbGRKdW1wVG9MYXRlc3QgJiYgd2luZG93Ll9fY2hhdEZvbGRKdW1wVG9MYXRlc3QoKSIgdGl0bGU9Ilx1NUI5QVx1NEY0RFx1NTIzMFx1NjcwMFx1NjVCMFx1NTZERVx1NTkwRCI+PHNwYW4gY2xhc3M9ImNoYXQtZm9sZC1yb2xlIj5DbGF1ZGU8L3NwYW4+PHNwYW4gY2xhc3M9ImNoYXQtZm9sZC10ZXh0Ij4nK3AoYSkrIjwvc3Bhbj48L2J1dHRvbj4ifWZ1bmN0aW9uIFVvKGUpe2lmKCFlKXJldHVybiIiO3ZhciB0PVtdO2Z1bmN0aW9uIG4ocyl7aWYodHlwZW9mIHM9PSJzdHJpbmciKXt2YXIgbz1zLnJlcGxhY2UoL1xzKy9nLCIgIikudHJpbSgpO28mJnQucHVzaChvKX19aWYodHlwZW9mIGUuY29udGVudD09InN0cmluZyIpbihlLmNvbnRlbnQpO2Vsc2UgaWYoQXJyYXkuaXNBcnJheShlLmNvbnRlbnQpKWZvcih2YXIgaT0wO2k8ZS5jb250ZW50Lmxlbmd0aCYmdC5qb2luKCIgIikubGVuZ3RoPDE4MDtpKyspe3ZhciBhPWUuY29udGVudFtpXTthJiYoYS50eXBlPT09InRleHQiP24oYS50ZXh0KTphLnR5cGU9PT0idGhpbmtpbmciP24oYS50aGlua2luZyk6YS50eXBlPT09InRvb2xfdXNlIj9uKGEubmFtZT8iXHU4QzAzXHU3NTI4ICIrYS5uYW1lOiJcdTVERTVcdTUxNzdcdThDMDNcdTc1MjgiKTphLnR5cGU9PT0idG9vbF9yZXN1bHQiP24oYS5pc19lcnJvcj8iXHU1REU1XHU1MTc3XHU4RkQ0XHU1NkRFXHU5NTE5XHU4QkVGIjoiXHU1REU1XHU1MTc3XHU4RkQ0XHU1NkRFXHU3RUQzXHU2NzlDIik6YS50ZXh0JiZuKGEudGV4dCkpfXZhciB1PXQuam9pbigiIFx4QjcgIik7cmV0dXJuIHUubGVuZ3RoPjE4MD91LnNsaWNlKDAsMTc3KSsiLi4uIjp1fXdpbmRvdy5fX2NoYXRGb2xkSnVtcFRvTGF0ZXN0PWZ1bmN0aW9uKCl7dmFyIGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2NoYXQtb3V0cHV0IC5jaGF0LW1lc3NhZ2VzIik7ZSYmTXYoZSl9LHdpbmRvdy5fX2NoYXRGb2xkVG9nZ2xlSGlzdG9yeT1mdW5jdGlvbigpe3ZhciBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNjaGF0LW91dHB1dCAuY2hhdC1oaXN0b3J5LXN1bW1hcnkiKSx0PWU/ZS5xdWVyeVNlbGVjdG9yKCIuY2hhdC1oaXN0b3J5LXN1bW1hcnktYnRuIik6bnVsbDtlJiZlLmNsYXNzTGlzdC5yZW1vdmUoImNoYXQtYXV0by1mb2xkLWhpZGRlbiIpLHQmJndpbmRvdy5fX2hpc3RvcnlTdW1tYXJ5VG9nZ2xlJiZ3aW5kb3cuX19oaXN0b3J5U3VtbWFyeVRvZ2dsZSh0KX07ZnVuY3Rpb24gT3YoZSx0LG4saSl7dmFyIGE9e3Nob3VsZENvbGxhcHNlRm9yVmlld3BvcnQ6ITEsaGlzdG9yeUluZGljZXM6W10sZmlyc3RIaXN0b3J5RWw6bnVsbH07aWYoIWV8fG48MClyZXR1cm4gYTtmb3IodmFyIHU9aSYmKGUuY2xpZW50SGVpZ2h0fHxlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodCl8fDAscz1udWxsLG89bnVsbCxsPTA7bDx0Lmxlbmd0aDtsKyspe3ZhciBjPXRbbF0uZ2V0QXR0cmlidXRlKCJkYXRhLW1zZy1pbmRleCIpO2lmKGMhPW51bGwpe3ZhciBmPXBhcnNlSW50KGMsMTApO2lzTmFOKGYpfHwoZjxuPyhhLmhpc3RvcnlJbmRpY2VzLnB1c2goZiksYS5maXJzdEhpc3RvcnlFbHx8KGEuZmlyc3RIaXN0b3J5RWw9dFtsXSkpOmkmJihzfHwocz10W2xdKSxvPXRbbF0pKX19aWYoaSYmdT4wJiZzJiZvKXt2YXIgZD1zLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHY9by5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxoPU1hdGgubWF4KGQuYm90dG9tLHYuYm90dG9tKS1NYXRoLm1pbihkLnRvcCx2LnRvcCksZz1NYXRoLm1heCgyMjAsdS0yNCk7YS5zaG91bGRDb2xsYXBzZUZvclZpZXdwb3J0PWg+PWd9cmV0dXJuIGF9ZnVuY3Rpb24gUHYoZSx0KXtpZighZSlyZXR1cm47dmFyIG49ci5jdXJyZW50TWVzc2FnZXN8fFtdO3R8fCh0PVN0KCkpO2Zvcih2YXIgaT0tMSxhPW4ubGVuZ3RoLTE7YT49MDthLS0paWYoblthXSYmblthXS5yb2xlPT09InVzZXIiKXtpPWE7YnJlYWt9ZnVuY3Rpb24gdSgpe3ZhciB4PWUucXVlcnlTZWxlY3RvcigiLmNoYXQtaGlzdG9yeS1zdW1tYXJ5Iik7eCYmeC5yZW1vdmUoKTtmb3IodmFyIFM9ZS5xdWVyeVNlbGVjdG9yQWxsKCIuY2hhdC1oaXN0b3J5LWhpZGRlbiIpLF89MDtfPFMubGVuZ3RoO18rKylTW19dLmNsYXNzTGlzdC5yZW1vdmUoImNoYXQtaGlzdG9yeS1oaWRkZW4iKTtlLnJlbW92ZUF0dHJpYnV0ZSgiZGF0YS1oaXN0b3J5LXNpZyIpfWlmKGk8MSl7dSgpO3JldHVybn12YXIgcz1lLnF1ZXJ5U2VsZWN0b3JBbGwoIi5jaGF0LW1lc3NhZ2U6bm90KC5zeXN0ZW0taW5mbykiKSxvPXJsKHQpLGw9T3YoZSxzLGksbyYmci5jaGF0U3RpY2tUb0JvdHRvbSk7aWYobyYmKCFyLmNoYXRTdGlja1RvQm90dG9tfHwhbC5zaG91bGRDb2xsYXBzZUZvclZpZXdwb3J0KSl7dSgpO3JldHVybn12YXIgYz1sLmhpc3RvcnlJbmRpY2VzLGY9bC5maXJzdEhpc3RvcnlFbDtpZihjLmxlbmd0aDwyfHwhZil7dSgpO3JldHVybn12YXIgZD1TdihuLGMpLHY9T3QoImhpc3Rvcnktc3VtbWFyeSIsW2ldKSxoPVhlKHYpPT09ITAsZz1pKyI6IitjLmxlbmd0aCsiOiIrKGg/MTowKSsiOiIrZC5yb3VuZHMrIjoiK2QudG9vbHMrIjoiK2QuYWdlbnRzKyI6IitkLmVycm9ycztpZighKGUuZ2V0QXR0cmlidXRlKCJkYXRhLWhpc3Rvcnktc2lnIik9PT1nJiZlLnF1ZXJ5U2VsZWN0b3IoIi5jaGF0LWhpc3Rvcnktc3VtbWFyeSIpKSl7dmFyIG09ZS5xdWVyeVNlbGVjdG9yKCIuY2hhdC1oaXN0b3J5LXN1bW1hcnkiKTttJiZtLnJlbW92ZSgpO2Zvcih2YXIgeT1lLnF1ZXJ5U2VsZWN0b3JBbGwoIi5jaGF0LWhpc3RvcnktaGlkZGVuIiksdz0wO3c8eS5sZW5ndGg7dysrKXlbd10uY2xhc3NMaXN0LnJlbW92ZSgiY2hhdC1oaXN0b3J5LWhpZGRlbiIpO3ZhciBFPXpvKGQpLEI9Y2UoaD8iaGlzdG9yeS5jb2xsYXBzZSI6Imhpc3RvcnkuZXhwYW5kIiksRj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtGLmNsYXNzTmFtZT0iY2hhdC1oaXN0b3J5LXN1bW1hcnkiLEYuc2V0QXR0cmlidXRlKCJkYXRhLWV4cGFuZC1rZXkiLHYpLEYuc2V0QXR0cmlidXRlKCJkYXRhLWV4cGFuZGVkIixoPyJ0cnVlIjoiZmFsc2UiKSxGLmlubmVySFRNTD0nPGJ1dHRvbiBjbGFzcz0iY2hhdC1oaXN0b3J5LXN1bW1hcnktYnRuIiB0eXBlPSJidXR0b24iIG9uY2xpY2s9IndpbmRvdy5fX2hpc3RvcnlTdW1tYXJ5VG9nZ2xlKHRoaXMpIiBhcmlhLWV4cGFuZGVkPSInKyhoPyJ0cnVlIjoiZmFsc2UiKSsnIj48c3BhbiBjbGFzcz0iY2hhdC1oaXN0b3J5LXN1bW1hcnktaWNvbiI+Jyt6KCJmb2xkZXIiLHtzaXplOjE1fSkrJzwvc3Bhbj48c3BhbiBjbGFzcz0iY2hhdC1oaXN0b3J5LXN1bW1hcnktYm9keSI+PHNwYW4gY2xhc3M9ImNoYXQtaGlzdG9yeS1zdW1tYXJ5LXRpdGxlIj4nK3AoQikrJzwvc3Bhbj48c3BhbiBjbGFzcz0iY2hhdC1oaXN0b3J5LXN1bW1hcnktbWV0YSI+JytwKEUpKyc8L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJjaGF0LWhpc3Rvcnktc3VtbWFyeS1jaGV2cm9uIj4nK3ooImNoZXZyb25Eb3duIix7c2l6ZToxNn0pKyI8L3NwYW4+PC9idXR0b24+IixlLmluc2VydEJlZm9yZShGLGYpLEthKEYsaCksZS5zZXRBdHRyaWJ1dGUoImRhdGEtaGlzdG9yeS1zaWciLGcpfX13aW5kb3cuX19oaXN0b3J5U3VtbWFyeVRvZ2dsZT1mdW5jdGlvbihlKXt2YXIgdD1lJiZlLmNsb3Nlc3Q/ZS5jbG9zZXN0KCIuY2hhdC1oaXN0b3J5LXN1bW1hcnkiKTpudWxsO2lmKHQpe3ZhciBuPXQuZ2V0QXR0cmlidXRlKCJkYXRhLWV4cGFuZC1rZXkiKSxpPXQuZ2V0QXR0cmlidXRlKCJkYXRhLWV4cGFuZGVkIikhPT0idHJ1ZSI7dC5zZXRBdHRyaWJ1dGUoImRhdGEtZXhwYW5kZWQiLGk/InRydWUiOiJmYWxzZSIpLGUuc2V0QXR0cmlidXRlKCJhcmlhLWV4cGFuZGVkIixpPyJ0cnVlIjoiZmFsc2UiKTt2YXIgYT10LnF1ZXJ5U2VsZWN0b3IoIi5jaGF0LWhpc3Rvcnktc3VtbWFyeS10aXRsZSIpO2EmJihhLnRleHRDb250ZW50PWNlKGk/Imhpc3RvcnkuY29sbGFwc2UiOiJoaXN0b3J5LmV4cGFuZCIpKSxuJiZxdShuLGkpLEthKHQsaSk7dmFyIHU9dC5wYXJlbnRFbGVtZW50O2lmKGkmJkphKHUpLHUpe3ZhciBzPXUuZ2V0QXR0cmlidXRlKCJkYXRhLWhpc3Rvcnktc2lnIik7aWYocyl7dmFyIG89cy5zcGxpdCgiOiIpO28ubGVuZ3RoPj0zJiYob1syXT1pPyIxIjoiMCIsdS5zZXRBdHRyaWJ1dGUoImRhdGEtaGlzdG9yeS1zaWciLG8uam9pbigiOiIpKSl9fX19O2Z1bmN0aW9uIEFpKGUpe2lmKCFlfHxlLnR5cGUhPT0idG9vbF91c2UiKXJldHVybiBudWxsO3ZhciB0PWUuaW5wdXR8fHt9LG49dHlwZW9mIHQuc3ViYWdlbnRfdHlwZT09InN0cmluZyI/dC5zdWJhZ2VudF90eXBlOm51bGw7cmV0dXJuIW4mJmUubmFtZSE9PSJUYXNrIiYmZS5uYW1lIT09IkFnZW50Ij9udWxsOnt0YXNrSWQ6ZS5pZCxhZ2VudFR5cGU6bnx8dm9pZCAwLHRhc2tEZXNjcmlwdGlvbjp0eXBlb2YgdC5kZXNjcmlwdGlvbj09InN0cmluZyI/dC5kZXNjcmlwdGlvbjp2b2lkIDB9fWZ1bmN0aW9uIEh2KGUpe3ZhciB0PW5ldyBNYXA7aWYoIUFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIHQ7Zm9yKHZhciBuPTA7bjxlLmxlbmd0aDtuKyspe3ZhciBpPWVbbl07aWYoISghaXx8aS5yb2xlIT09ImFzc2lzdGFudCJ8fCFBcnJheS5pc0FycmF5KGkuY29udGVudCkpKWZvcih2YXIgYT0wO2E8aS5jb250ZW50Lmxlbmd0aDthKyspe3ZhciB1PWkuY29udGVudFthXTtpZighKCF1fHx1LnR5cGUhPT0idG9vbF91c2UiKSl7dmFyIHM9dS5fX3N1YmFnZW50fHxBaSh1KTtzJiZ0LnNldCh1LmlkLHMpfX19cmV0dXJuIHR9ZnVuY3Rpb24gX3YoZSl7dmFyIHQ9bmV3IE1hcDtpZighQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gdDt2YXIgbj1uZXcgTWFwLGk9bmV3IFNldDtmdW5jdGlvbiBhKGYpe2lmKCEoIWZ8fCFmLnRhc2tJZCkmJiFpLmhhcyhmLnRhc2tJZCkpe2kuYWRkKGYudGFza0lkKTt2YXIgZD1QbyhmKTtkJiYobi5oYXMoZCl8fG4uc2V0KGQsW10pLG4uZ2V0KGQpLnB1c2goZi50YXNrSWQpKX19Zm9yKHZhciB1PTA7dTxlLmxlbmd0aDt1Kyspe3ZhciBzPWVbdV07aWYoISghc3x8IUFycmF5LmlzQXJyYXkocy5jb250ZW50KSkpZm9yKHZhciBvPTA7bzxzLmNvbnRlbnQubGVuZ3RoO28rKyl7dmFyIGw9cy5jb250ZW50W29dO2lmKGwpe3ZhciBjPWwuX19zdWJhZ2VudHx8KGwudHlwZT09PSJ0b29sX3VzZSI/QWkobCk6bnVsbCk7YyYmYShjKX19fXJldHVybiBuLmZvckVhY2goZnVuY3Rpb24oZil7aWYoIShmLmxlbmd0aDwyKSlmb3IodmFyIGQ9MDtkPGYubGVuZ3RoO2QrKyl0LnNldChmW2RdLCIgIyIrKGQrMSkpfSksdH1mdW5jdGlvbiBWbyhlLHQpe3ZhciBuPVtdO2lmKCFBcnJheS5pc0FycmF5KGUpfHwhZS5sZW5ndGgpcmV0dXJuIG47Zm9yKHZhciBpPW51bGwsYT0wO2E8ZS5sZW5ndGg7YSsrKXt2YXIgdT1lW2FdLHM9dSYmdS50eXBlPT09InRleHQiJiZ1Ll9fcHJvY2Vzc2luZz09PSEwO2lmKHMmJmkpe2kuYmxvY2tzLnB1c2godSk7Y29udGludWV9dmFyIG89dSYmdS5fX3N1YmFnZW50P3UuX19zdWJhZ2VudDpudWxsO298fChvPUFpKHUpKSwhbyYmdSYmdS50eXBlPT09InRvb2xfcmVzdWx0IiYmdCYmdC5oYXModS50b29sX3VzZV9pZCkmJihvPXQuZ2V0KHUudG9vbF91c2VfaWQpKTt2YXIgbD1vP28udGFza0lkOm51bGw7KCFpfHxpLmtleSE9PWwpJiYoaT17a2V5Omwsc3ViYWdlbnQ6byxibG9ja3M6W10sZmlyc3RJbmRleDphfSxuLnB1c2goaSkpLGkuYmxvY2tzLnB1c2godSl9cmV0dXJuIG59ZnVuY3Rpb24gR2EoZSx0LG4saSxhKXt2YXIgdT0iIjt0cnl7Zm9yKHZhciBzPWt2KGUpLG89MDtvPHMubGVuZ3RoO28rKyl7dmFyIGw9c1tvXTt0cnl7aWYobC50eXBlPT09Imdyb3VwIil7Zm9yKHZhciBjPVtdLGY9MDtmPGwuaXRlbXMubGVuZ3RoO2YrKyljLnB1c2goe2Jsb2NrOmwuaXRlbXNbZl0uYmxvY2ssaW5kZXg6bC5pdGVtc1tmXS5pbmRleCt0fSk7dSs9eHYoYyxuLGksYSl9ZWxzZSB1Kz1HbyhsLmJsb2NrLG4saSxsLmluZGV4K3QsYSl9Y2F0Y2h7dSs9JzxkaXYgY2xhc3M9InJlbmRlci1lcnJvciI+XHU2RDg4XHU2MDZGXHU1NzU3XHU2RTMyXHU2N0QzXHU1OTMxXHU4RDI1PC9kaXY+J319fWNhdGNoe3UrPSc8ZGl2IGNsYXNzPSJyZW5kZXItZXJyb3IiPlx1NkQ4OFx1NjA2Rlx1NkUzMlx1NjdEM1x1NTkzMVx1OEQyNTwvZGl2Pid9cmV0dXJuIHV9ZnVuY3Rpb24gS28oZSx0LG4saSxhLHUpe2Zvcih2YXIgcz11fHx7fSxvPXMuc2hvd0hhbmRvZmYhPT0hMSxsPSIiLGM9bnVsbCxmPTA7ZjxlLmxlbmd0aDtmKyspe3ZhciBkPWVbZl0sdj1HYShkLmJsb2NrcyxkLmZpcnN0SW5kZXgsdCxpLGEpO2lmKCEoIXZ8fCF2LnRyaW0oKSkpaWYoZC5zdWJhZ2VudCl7dmFyIGg9byYmYyE9PWQuc3ViYWdlbnQudGFza0lkO2wrPU52KGQsbix2LGEsaCksYz1kLnN1YmFnZW50LnRhc2tJZH1lbHNlIGwrPSc8ZGl2IGNsYXNzPSJjaGF0LW1lc3NhZ2Utc2VnbWVudCBwYXJlbnQiPicrUW4odCkrJzxkaXYgY2xhc3M9ImNoYXQtbWVzc2FnZS1jb250ZW50Ij4nK3YrIjwvZGl2PjwvZGl2PiIsYz1udWxsfXJldHVybiBsfWZ1bmN0aW9uIE52KGUsdCxuLGksYSl7dmFyIHU9ZS5zdWJhZ2VudCxzPV9vKHUpLG89SG8odSksbD11LnRhc2tJZHx8IiIsYz1CaShEaShzKSksZjtpZihhKXt2YXIgZD0nPHN0cm9uZyBjbGFzcz0ic3ViYWdlbnQtcGFuZWwtbmFtZSI+JytwKG8pKyc8L3N0cm9uZz48c3BhbiBjbGFzcz0ic3ViYWdlbnQtcGFuZWwtdGFnIiB0aXRsZT0iJytwKGNlKCJzdWJhZ2VudC50YWdfdGl0bGUiKSkrJyI+JytwKGNlKCJzdWJhZ2VudC50YWciKSkrIjwvc3Bhbj4iLHY9ISEodS50YXNrRGVzY3JpcHRpb24mJlN0cmluZyh1LnRhc2tEZXNjcmlwdGlvbikudHJpbSgpKSxoPXY/Y2UoInN1YmFnZW50LmhhbmRvZmYud2l0aF9kZXNjIix7cGFyZW50OnAodCksc3ViOmR9KTpjZSgic3ViYWdlbnQuaGFuZG9mZiIse3BhcmVudDpwKHQpLHN1YjpkfSksZz12Pyc8c3BhbiBjbGFzcz0ic3ViYWdlbnQtcGFuZWwtdGFzay1kZXNjIj4nK3AodS50YXNrRGVzY3JpcHRpb24pKyI8L3NwYW4+IjoiIjtmPSc8c3BhbiBjbGFzcz0ic3ViYWdlbnQtcGFuZWwtYXJyb3ciIGFyaWEtaGlkZGVuPSJ0cnVlIj5cdTIxQjM8L3NwYW4+PHNwYW4gY2xhc3M9InN1YmFnZW50LXBhbmVsLWF0dHJpYnV0aW9uIj4nK2grZysiPC9zcGFuPiJ9ZWxzZSBmPSc8c3BhbiBjbGFzcz0ic3ViYWdlbnQtcGFuZWwtYXR0cmlidXRpb24iPjxzdHJvbmcgY2xhc3M9InN1YmFnZW50LXBhbmVsLW5hbWUiPicrcChvKSsnPC9zdHJvbmc+PHNwYW4gY2xhc3M9InN1YmFnZW50LXBhbmVsLXRhc2stZGVzYyI+ICcrcChjZSgic3ViYWdlbnQuY29udGludWVkIikpKyI8L3NwYW4+PC9zcGFuPiI7dmFyIG09T3QoInN1YmFnZW50LXBhbmVsIixbaSxsXSkseT1YZShtKSx3PXk9PT1udWxsPyExOiEheTtmdW5jdGlvbiBFKEIpe3JldHVybic8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InN1YmFnZW50LXBhbmVsLXRvZ2dsZSIgZGF0YS1wb3NpdGlvbj0iJytCKyciIG9uY2xpY2s9Il9fc3ViYWdlbnRQYW5lbFRvZ2dsZShldmVudCwgdGhpcykiIGFyaWEtZXhwYW5kZWQ9IicrKHc/InRydWUiOiJmYWxzZSIpKyciIGFyaWEtbGFiZWw9IicrcChjZSh3PyJ1aS5jb2xsYXBzZV9wYW5lbF9hcmlhIjoidWkuZXhwYW5kX3BhbmVsX2FyaWEiKSkrJyI+PHNwYW4gY2xhc3M9InN1YmFnZW50LXBhbmVsLXRvZ2dsZS1sYWJlbCI+JytwKGNlKHc/InVpLmNvbGxhcHNlIjoidWkuZXhwYW5kIikpKyc8L3NwYW4+PHN2ZyBjbGFzcz0ic3ViYWdlbnQtcGFuZWwtdG9nZ2xlLWljb24iIHdpZHRoPSIxMCIgaGVpZ2h0PSIxMCIgdmlld0JveD0iMCAwIDEwIDEwIiBmaWxsPSJub25lIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHBhdGggZD0iTTIuNSAzLjc1TDUgNi4yNUw3LjUgMy43NSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMS40IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz48L3N2Zz48L2J1dHRvbj4nfXJldHVybic8ZGl2IGNsYXNzPSJzdWJhZ2VudC1wYW5lbCIgZGF0YS1leHBhbmQta2luZD0ic3ViYWdlbnQtcGFuZWwiIGRhdGEtZXhwYW5kLWtleT0iJytwKG0pKyciIGRhdGEtYWdlbnQtaWQ9IicrcChsKSsnIiBkYXRhLWV4cGFuZGVkPSInKyh3PyJ0cnVlIjoiZmFsc2UiKSsnIiBzdHlsZT0iLS1hZ2VudC1jb2xvcjonK3MucHJpbWFyeSsnIj48ZGl2IGNsYXNzPSJzdWJhZ2VudC1wYW5lbC1oZWFkZXIiIG9uY2xpY2s9Il9fc3ViYWdlbnRQYW5lbFRvZ2dsZShldmVudCwgdGhpcykiIHJvbGU9ImJ1dHRvbiIgdGFiaW5kZXg9IjAiIGFyaWEtbGFiZWw9IicrcChjZSgic3ViYWdlbnQudGl0bGVfYXJpYSIpKSsnIj48c3BhbiBjbGFzcz0ic3ViYWdlbnQtcGFuZWwtYXZhdGFyIiBhcmlhLWhpZGRlbj0idHJ1ZSI+JytjKyI8L3NwYW4+IitmK0UoInRvcCIpKyc8L2Rpdj48ZGl2IGNsYXNzPSJzdWJhZ2VudC1wYW5lbC1ib2R5Ij4nK24rJzwvZGl2PjxkaXYgY2xhc3M9InN1YmFnZW50LXBhbmVsLWZvb3RlciI+PHNwYW4gY2xhc3M9InN1YmFnZW50LXBhbmVsLWZvb3Rlci1oaW50IiBhcmlhLWhpZGRlbj0idHJ1ZSI+XHUyMDE0ICcrcChvKSsiIFx1MjAxNDwvc3Bhbj4iK0UoImJvdHRvbSIpKyI8L2Rpdj48L2Rpdj4ifWZ1bmN0aW9uIGp2KGUsdCxuLGkpe3ZhciBhPWUucm9sZSx1PU91KGUsbikscz1hPT09InVzZXIiJiZlLmNvbnRlbnQmJmUuY29udGVudC5zb21lKGZ1bmN0aW9uKEYpe3JldHVybiBGLl9fcXVldWVkfSk7aWYoIWUuY29udGVudHx8ZS5jb250ZW50Lmxlbmd0aD09PTApcmV0dXJuIGE9PT0iYXNzaXN0YW50Ij8nPGRpdiBjbGFzcz0iY2hhdC1tZXNzYWdlICcrYSsnIj4nK1FuKGEpKyc8ZGl2IGNsYXNzPSJjaGF0LW1lc3NhZ2UtYnViYmxlIj48ZGl2IGNsYXNzPSJ0eXBpbmctaW5kaWNhdG9yIj48c3Bhbj48L3NwYW4+PHNwYW4+PC9zcGFuPjxzcGFuPjwvc3Bhbj48L2Rpdj48L2Rpdj48L2Rpdj4nOic8ZGl2IGNsYXNzPSJjaGF0LW1lc3NhZ2UgJythKycgZW1wdHktbWVzc2FnZSIgZGF0YS1tZXNzYWdlLWtleT0iJytwKHUpKyciPicrUW4oYSkrJzxkaXYgY2xhc3M9ImNoYXQtbWVzc2FnZS1jb250ZW50Ij48c3BhbiBjbGFzcz0iZW1wdHktbWVzc2FnZS1oaW50Ij5cdUZGMDhcdTdBN0FcdTZEODhcdTYwNkZcdUZGMDk8L3NwYW4+PC9kaXY+PC9kaXY+Jzt2YXIgbz13dihlLmNvbnRlbnQpLGw9VWEoImFzc2lzdGFudCIpO2lmKGEhPT0iYXNzaXN0YW50Iil7dmFyIGM9Vm8oZS5jb250ZW50LGkpLGY9Yy5zb21lKGZ1bmN0aW9uKEYpe3JldHVybiBGLnN1YmFnZW50fSksZD1zPyIgcXVldWVkIjoiIix2PXM/JzxzcGFuIGNsYXNzPSJxdWV1ZWQtYmFkZ2UiPlx1NjM5Mlx1OTYxRlx1NEUyRDwvc3Bhbj4nOiIiLGg9RnYoKTtpZihmKXt2YXIgZz1LbyhjLGEsbC5uYW1lLG8sdSx7c2hvd0hhbmRvZmY6ITF9KTtyZXR1cm4nPGRpdiBjbGFzcz0iY2hhdC1tZXNzYWdlICcrYStkKycgbXVsdGktYWdlbnQiIGRhdGEtbWVzc2FnZS1rZXk9IicrcCh1KSsnIj4nK2crdisiPC9kaXY+In12YXIgbT1HYShlLmNvbnRlbnQsMCxhLG8sdSk7cmV0dXJuJzxkaXYgY2xhc3M9ImNoYXQtbWVzc2FnZSAnK2ErZCsnIiBkYXRhLW1lc3NhZ2Uta2V5PSInK3AodSkrJyI+JytRbihhLHtsZWZ0U2xvdDpofSkrJzxkaXYgY2xhc3M9ImNoYXQtbWVzc2FnZS1jb250ZW50Ij4nK20rdisiPC9kaXY+PC9kaXY+In12YXIgeT1WbyhlLmNvbnRlbnQsaSksdz15LnNvbWUoZnVuY3Rpb24oRil7cmV0dXJuIEYuc3ViYWdlbnR9KTtpZighdyl7dmFyIEU9R2EoZS5jb250ZW50LDAsYSxvLHUpO3JldHVybic8ZGl2IGNsYXNzPSJjaGF0LW1lc3NhZ2UgJythKyciIGRhdGEtbWVzc2FnZS1rZXk9IicrcCh1KSsnIj4nK1FuKGEpKyc8ZGl2IGNsYXNzPSJjaGF0LW1lc3NhZ2UtY29udGVudCI+JytFKyI8L2Rpdj48L2Rpdj4ifXZhciBCPSc8ZGl2IGNsYXNzPSJjaGF0LW1lc3NhZ2UgJythKycgbXVsdGktYWdlbnQiIGRhdGEtbWVzc2FnZS1rZXk9IicrcCh1KSsnIj4nO3JldHVybiBCKz1Lbyh5LGEsbC5uYW1lLG8sdSx7c2hvd0hhbmRvZmY6ITB9KSxCKz0iPC9kaXY+IixCfXZhciBSdj0vXlxzKlxb6ZmE5Lu25bey5LiK5Lyg77yM6K+35p+l55yL5Lul5LiL5paH5Lu2OlxuKFtcc1xTXSo/KVxdXG4rLztmdW5jdGlvbiBXdihlKXt2YXIgdD0oZXx8IiIpLnRyaW0oKTtpZighdClyZXR1cm4iIjt2YXIgbj10LnNwbGl0KCIvIikucG9wKCl8fHQ7aWYoYnUodCkpe3ZhciBpPSIvYXBpL2ZpbGUtcmF3P3BhdGg9IitlbmNvZGVVUklDb21wb25lbnQodCk7cmV0dXJuJzxkaXYgY2xhc3M9InVzZXItYXR0YWNobWVudC1pbWFnZSI+PGltZyBjbGFzcz0idXNlci1hdHRhY2htZW50LXRodW1iIiBsb2FkaW5nPSJsYXp5IiBzcmM9IicraSsnIiBhbHQ9IicrcChuKSsnIiBkYXRhLXBhdGg9IicrcCh0KStgIiBvbmNsaWNrPSJldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgaWYod2luZG93Ll9fb3BlbkZpbGVQcmV2aWV3KXdpbmRvdy5fX29wZW5GaWxlUHJldmlldyh0aGlzLmdldEF0dHJpYnV0ZSgnZGF0YS1wYXRoJykpOyIgb25lcnJvcj0idmFyIHc9dGhpcy5jbG9zZXN0KCcudXNlci1hdHRhY2htZW50LWltYWdlJyk7IGlmKHcpdy5zdHlsZS5kaXNwbGF5PSdub25lJzsiIC8+PC9kaXY+YH1yZXR1cm4nPGRpdiBjbGFzcz0idXNlci1hdHRhY2htZW50LWZpbGUiIGRhdGEtcGF0aD0iJytwKHQpK2AiIG9uY2xpY2s9ImV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyBpZih3aW5kb3cuX19vcGVuRmlsZVByZXZpZXcpd2luZG93Ll9fb3BlbkZpbGVQcmV2aWV3KHRoaXMuZ2V0QXR0cmlidXRlKCdkYXRhLXBhdGgnKSk7Ij48c3BhbiBjbGFzcz0idXNlci1hdHRhY2htZW50LWZpbGUtaWNvbiI+PHN2ZyB2aWV3Qm94PSIwIDAgMTYgMTYiIHdpZHRoPSIxMyIgaGVpZ2h0PSIxMyIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMS41Ij48cGF0aCBkPSJNOSAxLjVINGExIDEgMCAwIDAtMSAxdjExYTEgMSAwIDAgMCAxIDFoOGExIDEgMCAwIDAgMS0xVjUuNUw5IDEuNXoiLz48cGF0aCBkPSJNOSAxLjVWNS41aDQiLz48L3N2Zz48L3NwYW4+PHNwYW4gY2xhc3M9InVzZXItYXR0YWNobWVudC1maWxlLW5hbWUiPmArcChuKSsiPC9zcGFuPjwvZGl2PiJ9ZnVuY3Rpb24gSm8oZSl7dmFyIHQ9ZXx8IiIsbj10Lm1hdGNoKFJ2KTtpZighbilyZXR1cm4gcCh0KTtmb3IodmFyIGk9IiIsYT1uWzFdLnNwbGl0KGAKYCksdT0wO3U8YS5sZW5ndGg7dSsrKWkrPVd2KGFbdV0pO3ZhciBzPXQuc2xpY2UoblswXS5sZW5ndGgpLG89aT8nPGRpdiBjbGFzcz0idXNlci1hdHRhY2htZW50cyI+JytpKyI8L2Rpdj4iOiIiLGw9cy50cmltKCk/JzxkaXYgY2xhc3M9InVzZXItYXR0YWNobWVudC10ZXh0Ij4nK3AocykrIjwvZGl2PiI6IiI7cmV0dXJuIG8rbH1mdW5jdGlvbiBHbyhlLHQsbixpLGEpe2lmKCFlfHwhZS50eXBlfHxlLnR5cGU9PT0idG9vbF91c2UiJiZlLl9fc3ViYWdlbnQmJmUuX19zdWJhZ2VudC50YXNrSWQ9PT1lLmlkKXJldHVybiIiO2lmKGUudHlwZT09PSJ0b29sX3Jlc3VsdCImJmUuX19zdWJhZ2VudCYmZS5fX3N1YmFnZW50LnRhc2tJZD09PWUudG9vbF91c2VfaWQpcmV0dXJuIEV2KGUsdCk7c3dpdGNoKGUudHlwZSl7Y2FzZSJ0ZXh0IjpyZXR1cm4gdD09PSJhc3Npc3RhbnQiJiZlLl9fcHJvY2Vzc2luZz8nPGRpdiBjbGFzcz0idHlwaW5nLWluZGljYXRvciI+PHNwYW4+PC9zcGFuPjxzcGFuPjwvc3Bhbj48c3Bhbj48L3NwYW4+PC9kaXY+Jzp0PT09ImFzc2lzdGFudCI/UWEoZS50ZXh0fHwiIik6Sm8oZS50ZXh0fHwiIik7Y2FzZSJ0aGlua2luZyI6dmFyIHU9ZS50aGlua2luZ3x8IiIscz1lLnRoaW5raW5nPT09dm9pZCAwJiZlLnR5cGU9PT0idGhpbmtpbmciO2lmKHMpcmV0dXJuJzxkaXYgY2xhc3M9InRoaW5raW5nLWlubGluZSB0aGlua2luZy1zdHJlYW1pbmciIGRhdGEtdGhpbmtpbmc9IiI+PGRpdiBjbGFzcz0idGhpbmtpbmctc3RyZWFtaW5nLWlubmVyIj48c3BhbiBjbGFzcz0idGhpbmtpbmctc3RyZWFtaW5nLWljb24gc3Bpbm5pbmciPlx1MjlCRjwvc3Bhbj48ZGl2IGNsYXNzPSJ0aGlua2luZy1zdHJlYW1pbmctdGV4dCI+PC9kaXY+PC9kaXY+PC9kaXY+JztpZighdS50cmltKCkpcmV0dXJuIiI7dmFyIG89dS5sZW5ndGg+NjA/dS5zbGljZSgwLDU3KSsiXHUyMDI2Ijp1LGw9T3QoInRoaW5raW5nIixbYSxpXSksYz1YZShsKSxmPWM9PT1udWxsP0luKCJ0aGlua2luZyIpOmM7cmV0dXJuJzxkaXYgY2xhc3M9InRoaW5raW5nLWlubGluZSAnKyhmPyJleHBhbmRlZCI6ImNvbGxhcHNlZCIpKyciIGRhdGEtZXhwYW5kLWtpbmQ9InRoaW5raW5nIiBkYXRhLWV4cGFuZC1rZXk9IicrcChsKSsnIiBkYXRhLXRoaW5raW5nPSInK3AodSkrJyIgb25jbGljaz0iX190aGlua2luZ1RvZ2dsZSh0aGlzKSI+PHNwYW4gY2xhc3M9InRoaW5raW5nLWlubGluZS1pY29uIj5cdTI5QkY8L3NwYW4+PHNwYW4gY2xhc3M9InRoaW5raW5nLWlubGluZS1wcmV2aWV3Ij4nK3AoZj91Om8pKyc8L3NwYW4+PHNwYW4gY2xhc3M9InRoaW5raW5nLWlubGluZS1hY3Rpb24iPicrKGY/Ilx1NjUzNlx1OEQ3NyI6Ilx1NUM1NVx1NUYwMCIpKyI8L3NwYW4+PC9kaXY+IjtjYXNlInRvb2xfdXNlIjp2YXIgZD1SbyhuLGUuaWQpLHY9S3YoZSxkLGksYSk7cmV0dXJuIEN2KG4sZS5pZCkmJih2PUJ2KGUubmFtZXx8Ilx1NURFNVx1NTE3NyIpK3YpLHY7Y2FzZSJ0b29sX3Jlc3VsdCI6cmV0dXJuIiI7ZGVmYXVsdDp2YXIgaD1lJiZlLnR5cGU/U3RyaW5nKGUudHlwZSk6Ilx1NjcyQVx1NzdFNSIsZz0iIjt0cnl7Zz1KU09OLnN0cmluZ2lmeShlLG51bGwsMil9Y2F0Y2h7Zz0ie30ifXJldHVybmA8ZGl2IGNsYXNzPSJ1bmtub3duLWJsb2NrIGNvbGxhcHNlZCIgb25jbGljaz0idGhpcy5jbGFzc0xpc3QudG9nZ2xlKCdjb2xsYXBzZWQnKSI+PGRpdiBjbGFzcz0idW5rbm93bi1ibG9jay1oZWFkZXIiPjxzcGFuIGNsYXNzPSJ1bmtub3duLWJsb2NrLWljb24iPj88L3NwYW4+PHNwYW4gY2xhc3M9InVua25vd24tYmxvY2stbGFiZWwiPlx1NjcyQVx1OEJDNlx1NTIyQlx1NzY4NFx1NTE4NVx1NUJCOVx1NTc1N1x1RkYxQWArcChoKSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJ1bmtub3duLWJsb2NrLXRvZ2dsZSI+XHUyNUJDPC9zcGFuPjwvZGl2PjxwcmUgY2xhc3M9InVua25vd24tYmxvY2stYm9keSI+JytwKGcpKyI8L3ByZT48L2Rpdj4ifX1mdW5jdGlvbiB6dihlLHQsbixpLGEsdSxzKXt2YXIgbz1lLmlkfHwidG9vbC0iK24sbD1PdCgiaW5saW5lLXRvb2wiLFt1LG98fHMsc10pLGM9WGUobCksZj1lLmlucHV0fHx7fSxkPW1uKHQmJnQuY29udGVudCksdj10JiZ0LmlzX2Vycm9yLGg9ZC5sZW5ndGg+MCxnPXY/Ilx1MjcxNyI6aD8iXHUyNzEzIjoiXHUyMDI2IixtPSIiLHk9IiIsdz0iIixFPSIiO2lmKG49PT0iUmVhZCIpe209JzxzdmcgY2xhc3M9ImlubGluZS10b29sLWljb24iIHZpZXdCb3g9IjAgMCAxNiAxNiIgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxLjUiPjxwYXRoIGQ9Ik0xIDMuNUExLjUgMS41IDAgMCAxIDIuNSAyaDIuNzY0Yy45NTggMCAxLjc2LjU2IDIuMzExIDEuMTg0QzguNDA1IDMuNzcgOS4xNDYgNCAxMCA0aDMuNUExLjUgMS41IDAgMCAxIDE1IDUuNXY3YTEuNSAxLjUgMCAwIDEtMS41IDEuNWgtMTFBMS41IDEuNSAwIDAgMSAxIDEyLjV2LTl6Ii8+PHBhdGggZD0iTTIgNS41aDEyTTIgOGg4TTIgMTAuNWg1Ii8+PC9zdmc+Jzt2YXIgQj1mLmZpbGVfcGF0aHx8Zi5wYXRofHxpfHwiIixGPSIiO2YubGltaXQmJihGPSIgIitmLm9mZnNldCsiLSIrKGYub2Zmc2V0K2YubGltaXQpKSx5PUIsdz1GfWVsc2UgaWYobj09PSJHbG9iIil7bT0nPHN2ZyBjbGFzcz0iaW5saW5lLXRvb2wtaWNvbiIgdmlld0JveD0iMCAwIDE2IDE2IiB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEuNSI+PGNpcmNsZSBjeD0iNyIgY3k9IjciIHI9IjUiLz48cGF0aCBkPSJNMTAuNSAxMC41TDE0IDE0Ii8+PC9zdmc+Jzt2YXIgeD1mLnBhdHRlcm58fCIiLFM9Zi5wYXRofHxpfHwiIjt5PXgsdz1TfWVsc2UgaWYobj09PSJHcmVwIil7bT0nPHN2ZyBjbGFzcz0iaW5saW5lLXRvb2wtaWNvbiIgdmlld0JveD0iMCAwIDE2IDE2IiB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEuNSI+PGNpcmNsZSBjeD0iNi41IiBjeT0iNi41IiByPSI0LjUiLz48cGF0aCBkPSJNMTEuNSAxMS41TDE1IDE1Ii8+PC9zdmc+Jzt2YXIgeD1mLnBhdHRlcm58fCIiLFM9Zi5wYXRofHxpfHwiIjt5PXgsdz1TLGYuY29udGV4dCYmKHcrPSIgLUMiK2YuY29udGV4dCl9ZWxzZSBpZihuPT09IldlYkZldGNoIil7bT0nPHN2ZyBjbGFzcz0iaW5saW5lLXRvb2wtaWNvbiIgdmlld0JveD0iMCAwIDE2IDE2IiB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEuNSI+PGNpcmNsZSBjeD0iOCIgY3k9IjgiIHI9IjYuNSIvPjxwYXRoIGQ9Ik04IDEuNXYxM00xLjUgOGgxMyIvPjwvc3ZnPic7dmFyIF89Zi51cmx8fCIiO3k9Xyx3PWF8fCIifWVsc2UgaWYobj09PSJXZWJTZWFyY2giKXttPSc8c3ZnIGNsYXNzPSJpbmxpbmUtdG9vbC1pY29uIiB2aWV3Qm94PSIwIDAgMTYgMTYiIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMS41Ij48Y2lyY2xlIGN4PSI3IiBjeT0iNyIgcj0iNSIvPjxwYXRoIGQ9Ik0xMC41IDEwLjVMMTQgMTQiLz48cGF0aCBkPSJNNSA3aDRNNyA1djQiLz48L3N2Zz4nO3ZhciBWPWYucXVlcnl8fCIiO3k9Vix3PWF8fCIifWVsc2Ugbj09PSJUb2RvUmVhZCI/KG09JzxzdmcgY2xhc3M9ImlubGluZS10b29sLWljb24iIHZpZXdCb3g9IjAgMCAxNiAxNiIgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxLjUiPjxyZWN0IHg9IjIiIHk9IjIiIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgcng9IjIiLz48cGF0aCBkPSJNNSA4bDIgMiA0LTQiLz48L3N2Zz4nLHk9Ilx1OEJGQlx1NTNENlx1NUY4NVx1NTI5RVx1NTIxN1x1ODg2OCIsdz1hfHwiIik6KG09JzxzdmcgY2xhc3M9ImlubGluZS10b29sLWljb24iIHZpZXdCb3g9IjAgMCAxNiAxNiIgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxLjUiPjxjaXJjbGUgY3g9IjgiIGN5PSI4IiByPSI2LjUiLz48cGF0aCBkPSJNOCA1djMuNU04IDExaC4wMSIvPjwvc3ZnPicseT1ZYShuKSx3PWF8fCIiKTtpZihoKXt2YXIgVT1kLnNwbGl0KGAKYCk7VS5sZW5ndGg+MTA/RT1VLnNsaWNlKDAsMTApLmpvaW4oYApgKStgClx1MjAyNmA6RT1kfXZhciBJPXAoZCksRD1wKEUpLE09ZCxMPSIiLFc9Yz09PW51bGw/SW4oImlubGluZVRvb2xzIik6YztoP0w9JzxkaXYgY2xhc3M9ImlubGluZS10b29sLWV4cGFuZGVkIiBzdHlsZT0iZGlzcGxheTogJysoVz8iYmxvY2siOiJub25lIikrJzsiPjxkaXYgY2xhc3M9ImlubGluZS10b29sLXJlc3VsdCI+JytZbyhkLG4pKyI8L2Rpdj48L2Rpdj4iOnY/TD0nPGRpdiBjbGFzcz0iaW5saW5lLXRvb2wtZXhwYW5kZWQiIHN0eWxlPSJkaXNwbGF5OiAnKyhXPyJibG9jayI6Im5vbmUiKSsnOyI+PGRpdiBjbGFzcz0iaW5saW5lLXRvb2wtcmVzdWx0IGlubGluZS10b29sLWVycm9yIj4nK3AoZHx8Ilx1NjRDRFx1NEY1Q1x1NTkzMVx1OEQyNSIpKyI8L2Rpdj48L2Rpdj4iOnR8fChMPSc8ZGl2IGNsYXNzPSJpbmxpbmUtdG9vbC1leHBhbmRlZCIgc3R5bGU9ImRpc3BsYXk6ICcrKFc/ImJsb2NrIjoibm9uZSIpKyc7Ij48ZGl2IGNsYXNzPSJpbmxpbmUtdG9vbC1sb2FkaW5nIj5cdTdCNDlcdTVGODVcdTU0Q0RcdTVFOTRcdTIwMjY8L2Rpdj48L2Rpdj4nKTt2YXIgSz10JiZ0Ll90cnVuY2F0ZWQ9PT0hMCxYPSIiO2lmKG49PT0iUmVhZCIpe3ZhciBuZT1mLmZpbGVfcGF0aHx8Zi5wYXRofHxpfHwiIjtpZihuZSYmYnUobmUpKXt2YXIgc2U9Ii9hcGkvZmlsZS1yYXc/cGF0aD0iK2VuY29kZVVSSUNvbXBvbmVudChuZSk7WD0nPGRpdiBjbGFzcz0iaW5saW5lLXRvb2wtaW1hZ2UiIG9uY2xpY2s9ImV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyI+PGltZyBjbGFzcz0iaW5saW5lLXRvb2wtaW1hZ2UtdGh1bWIiIGxvYWRpbmc9ImxhenkiIHNyYz0iJytzZSsnIiBhbHQ9IicrcChCKSsnIiBkYXRhLXBhdGg9IicrcChuZSkrYCIgb25jbGljaz0iZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7IGlmKHdpbmRvdy5fX29wZW5GaWxlUHJldmlldyl3aW5kb3cuX19vcGVuRmlsZVByZXZpZXcodGhpcy5nZXRBdHRyaWJ1dGUoJ2RhdGEtcGF0aCcpKTsiIG9uZXJyb3I9InZhciB3PXRoaXMuY2xvc2VzdCgnLmlubGluZS10b29sLWltYWdlJyk7IGlmKHcpdy5zdHlsZS5kaXNwbGF5PSdub25lJzsiIC8+PC9kaXY+YH19dmFyIHJlPXc/JzxzcGFuIGNsYXNzPSJpbmxpbmUtdG9vbC1tZXRhIj4nK3AodykrIjwvc3Bhbj4iOiIiLFQ9dj8iaW5saW5lLXRvb2wtZXJyb3ItaW5saW5lIjoiIjtXJiYoVCs9IiBpbmxpbmUtdG9vbC1vcGVuIik7dmFyIHE9Sz8nZGF0YS10cnVuY2F0ZWQ9InRydWUiIGRhdGEtdG9vbC11c2UtaWQ9IicrcChlLmlkfHwiIikrJyIgJzoiIjtyZXR1cm4nPGRpdiBjbGFzcz0iaW5saW5lLXRvb2wgJytUKyciIGRhdGEtZXhwYW5kLWtpbmQ9ImlubGluZS10b29sIiBkYXRhLWV4cGFuZC1rZXk9IicrcChsKSsnIiBkYXRhLXJlc3VsdD0iJytwKE0pKyciIGRhdGEtcHJldmlldz0iJytEKyciIGRhdGEtc3RhdHVzPSInKyh2PyJlcnJvciI6aD8iZG9uZSI6InBlbmRpbmciKSsnIiAnK3ErJ29uY2xpY2s9Il9faW5saW5lVG9vbFRvZ2dsZSh0aGlzKSI+PGRpdiBjbGFzcz0iaW5saW5lLXRvb2wtcm93Ij48c3BhbiBjbGFzcz0iaW5saW5lLXRvb2wtc3RhdHVzIj4nK2crIjwvc3Bhbj4iK20rJzxzcGFuIGNsYXNzPSJpbmxpbmUtdG9vbC10aXRsZSI+JytwKHkpKyI8L3NwYW4+IityZSsiPC9kaXY+IitYK0wrIjwvZGl2PiJ9ZnVuY3Rpb24gVXYoZSx0LG4saSxhKXt2YXIgdT1lLmlucHV0fHx7fSxzPXUuY29tbWFuZHx8dS5jbWR8fCIiLG89bW4odCYmdC5jb250ZW50KSxsPWUuaWR8fCJ0b29sLSIrbixjPU90KCJ0ZXJtaW5hbCIsW2ksbHx8YSxhXSksZj1YZShjKSxkPXQmJnQuaXNfZXJyb3Isdj11LmV4aXRDb2RlLGg9by5sZW5ndGg+MCxnPSIiO3Q/ZD9nPSc8c3BhbiBjbGFzcz0idGVybS1zdGF0dXMtZG90IHRlcm0tZXJyb3IiPjwvc3Bhbj4nOnY9PT0wfHx2PT09dm9pZCAwP2c9JzxzcGFuIGNsYXNzPSJ0ZXJtLXN0YXR1cy1kb3QgdGVybS1zdWNjZXNzIj48L3NwYW4+JzpnPSc8c3BhbiBjbGFzcz0idGVybS1zdGF0dXMtZG90IHRlcm0td2FybiI+PC9zcGFuPic6Zz0nPHNwYW4gY2xhc3M9InRlcm0tc3RhdHVzLWRvdCB0ZXJtLXJ1bm5pbmciPjwvc3Bhbj4nO2Zvcih2YXIgbT0nPHNwYW4gY2xhc3M9InRlcm0tcHJvbXB0Ij4kPC9zcGFuPicseT1wKHMpLHc9by5zcGxpdChgCmApLEU9IiIsQj0wO0I8dy5sZW5ndGg7QisrKXt2YXIgRj13W0JdOyFGJiZCPT09dy5sZW5ndGgtMXx8KEUrPSc8ZGl2IGNsYXNzPSJ0ZXJtLWxpbmUiPicrcChGKSsiPC9kaXY+Iil9dmFyIHg9IiI7aWYodCYmdiE9PXZvaWQgMCl7dmFyIFM9dj09PTA/InRlcm0tZXhpdC1zdWNjZXNzIjoidGVybS1leGl0LWVycm9yIjt4PSc8ZGl2IGNsYXNzPSJ0ZXJtLWV4aXQgJytTKyciPmV4aXQgJyt2KyI8L2Rpdj4ifXZhciBfPXMubGVuZ3RoPjgwP3Muc2xpY2UoMCw3NykrIlx1MjAyNiI6cyxWPWY9PT1udWxsP0luKCJ0ZXJtaW5hbCIpOmYsVT10JiZ0Ll90cnVuY2F0ZWQ9PT0hMCxJPVU/JyBkYXRhLXRydW5jYXRlZD0idHJ1ZSIgZGF0YS10b29sLXVzZS1pZD0iJytwKGUuaWR8fCIiKSsnIic6IiI7cmV0dXJuJzxkaXYgY2xhc3M9ImlubGluZS10ZXJtaW5hbCIgZGF0YS1leHBhbmQta2luZD0idGVybWluYWwiIGRhdGEtZXhwYW5kLWtleT0iJytwKGMpKyciIGRhdGEtZXhwYW5kZWQ9IicrKFY/InRydWUiOiJmYWxzZSIpKyciJytJKyc+PGRpdiBjbGFzcz0idGVybS1oZWFkZXIiIG9uY2xpY2s9Il9fdGVybWluYWxFeHBhbmQodGhpcykiPicrZysnPHNwYW4gY2xhc3M9InRlcm0tY21kLXByZXZpZXciPjxzcGFuIGNsYXNzPSJ0ZXJtLXByb21wdCI+JDwvc3Bhbj4gJytwKF8pKyc8L3NwYW4+PHNwYW4gY2xhc3M9InRlcm0tdG9nZ2xlLWljb24iPicrKFY/Ilx1MjVCQyI6Ilx1MjVCNiIpKyc8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0idGVybS1ib2R5IiBzdHlsZT0iZGlzcGxheTonKyhWPyJibG9jayI6Im5vbmUiKSsnOyI+PGRpdiBjbGFzcz0idGVybS1jb21tYW5kIj48c3BhbiBjbGFzcz0idGVybS1wcm9tcHQiPiQ8L3NwYW4+ICcreSsiPC9kaXY+IisoRT8nPGRpdiBjbGFzcz0idGVybS1vdXRwdXQiPicrRSsiPC9kaXY+IjoiIikreCsiPC9kaXY+PC9kaXY+In1mdW5jdGlvbiBtbihlKXtyZXR1cm4gZT90eXBlb2YgZT09InN0cmluZyI/ZTpBcnJheS5pc0FycmF5KGUpP2UubWFwKGZ1bmN0aW9uKHQpe2lmKCF0fHx0eXBlb2YgdCE9Im9iamVjdCIpcmV0dXJuIiI7aWYodC50eXBlPT09InRleHQiJiZ0eXBlb2YgdC50ZXh0PT0ic3RyaW5nIilyZXR1cm4gdC50ZXh0O3RyeXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkodCl9Y2F0Y2h7cmV0dXJuIiJ9fSkuZmlsdGVyKEJvb2xlYW4pLmpvaW4oYApgKToiIjoiIn1mdW5jdGlvbiBWdihlLHQsbixpLGEpe3ZhciB1PWUuaW5wdXR8fHt9LHM9dS5maWxlX3BhdGh8fHUucGF0aHx8IiIsbz1zLnNwbGl0KCIvIikucG9wKCl8fHMsbD1lLmlkfHwidG9vbC0iK24rIi0iKyh0eXBlb2YgYT09Im51bWJlciI/YTowKSxjPXUub2xkX3N0cmluZ3x8IiIsZj11Lm5ld19zdHJpbmd8fHUuY29udGVudHx8IiIsZD11Lm9sZF9jb250ZW50fHwiIix2PXUubmV3X2NvbnRlbnR8fCIiLGg9bj09PSJXcml0ZSJ8fG49PT0iTXVsdGlFZGl0IixnPXQmJnQuaXNfZXJyb3IsbT1tbih0JiZ0LmNvbnRlbnQpLHk9ISEobSYmbS50cmltKCkubGVuZ3RoPjApLHc9IiIsRT0iIjtoP0U9JzxkaXYgY2xhc3M9ImRpZmYtbGluZSBkaWZmLWFkZCI+KyAnK3AodikrIjwvZGl2PiI6KGMmJih3PSc8ZGl2IGNsYXNzPSJkaWZmLWxpbmUgZGlmZi1yZW1vdmUiPi0gJytwKGMpKyI8L2Rpdj4iKSxmJiYoRT0nPGRpdiBjbGFzcz0iZGlmZi1saW5lIGRpZmYtYWRkIj4rICcrcChmKSsiPC9kaXY+IikpO3ZhciBCPSIiLEY9IiI7dD9nPyhCPSJkaWZmLWVycm9yIixGPW0uaW5kZXhPZigiaGF2ZW4ndCBncmFudGVkIikhPT0tMXx8bS5pbmRleE9mKCJwZXJtaXNzaW9uIikhPT0tMT8iXHU3QjQ5XHU1Rjg1XHU2Mzg4XHU2NzQzIjoiXHU1OTMxXHU4RDI1Iik6KEI9ImRpZmYtc3VjY2VzcyIsRj0iXHU1REYyXHU0RkVFXHU2NTM5Iik6KEI9ImRpZmYtcGVuZGluZyIsRj0iXHU2MjY3XHU4ODRDXHU0RTJEIik7dmFyIHg9T3QoImRpZmYiLFtpLGx8fGEsYV0pLFM9WGUoeCksXz1JbigiZWRpdENhcmRzIiksVj1TPT09bnVsbD9CPT09ImRpZmYtcGVuZGluZyJ8fF86UyxVPVY/IiI6IiBjb2xsYXBzZWQiLEk9dyYmRSxEPUk/ImRpZmYtY29sLWhhbGYiOiJkaWZmLWNvbC1mdWxsIjtyZXR1cm4nPGRpdiBjbGFzcz0iaW5saW5lLWRpZmYnK1UrJyIgZGF0YS10b29sLW5hbWU9IicrcChuKSsnIiBkYXRhLWV4cGFuZC1raW5kPSJkaWZmIiBkYXRhLWV4cGFuZC1rZXk9IicrcCh4KSsnIiBkYXRhLXRvb2wtdXNlLWlkPSInK3AobCkrJyI+PGRpdiBjbGFzcz0iZGlmZi1oZWFkZXIiIG9uY2xpY2s9Il9fdGNUb2dnbGUoZXZlbnQsdGhpcykiPjxzcGFuIGNsYXNzPSJkaWZmLWZpbGUtaWNvbiI+PC9zcGFuPjxzcGFuIGNsYXNzPSJkaWZmLWZpbGUtbmFtZSI+JytwKG8pKyI8L3NwYW4+IitsdChzLCJkaWZmLXBhdGgiKSsnPHNwYW4gY2xhc3M9ImRpZmYtc3RhdHVzICcrQisnIj4nK0YrJzwvc3Bhbj48c3BhbiBjbGFzcz0iZGlmZi10b2dnbGUiPlx1MjVCQzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJkaWZmLWJvZHkiPjxkaXYgY2xhc3M9ImRpZmYtY29sdW1ucyI+JysoST8nPGRpdiBjbGFzcz0iZGlmZi1jb2wgJytEKyciPjxkaXYgY2xhc3M9ImRpZmYtY29sLWxhYmVsIj5cdTY1RTc8L2Rpdj4nK3crIjwvZGl2PiI6IiIpKyc8ZGl2IGNsYXNzPSJkaWZmLWNvbCAnK0QrJyI+PGRpdiBjbGFzcz0iZGlmZi1jb2wtbGFiZWwiPicrKEk/Ilx1NjVCMCI6IiIpKyI8L2Rpdj4iKyhFfHx3KSsiPC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+In1mdW5jdGlvbiBZbyhlLHQpe3JldHVybiBlPyc8cHJlIGNsYXNzPSJpbmxpbmUtdG9vbC1yZXN1bHQtdGV4dCIgc3R5bGU9Im1heC1oZWlnaHQ6IDMwMHB4OyBvdmVyZmxvdy15OiBhdXRvOyI+JytwKGUpKyI8L3ByZT4iOic8c3BhbiBjbGFzcz0iaW5saW5lLXRvb2wtZW1wdHkiPlx1NjVFMFx1OEY5M1x1NTFGQTwvc3Bhbj4nfWZ1bmN0aW9uIEt2KGUsdCxuLGkpe3ZhciBhPWUubmFtZXx8InVua25vd24iLHU9ZS5pZHx8InRvb2wtIithKyItIisodHlwZW9mIG49PSJudW1iZXIiP246MCkscz1HdihhLGUuaW5wdXQpO2lmKGE9PT0iUmVhZCJ8fGE9PT0iR2xvYiJ8fGE9PT0iR3JlcCJ8fGE9PT0iV2ViRmV0Y2gifHxhPT09IldlYlNlYXJjaCJ8fGE9PT0iVG9kb1JlYWQiKXJldHVybiB6dihlLHQsYSxzLCIiLGksbik7aWYoYT09PSJCYXNoIilyZXR1cm4gVXYoZSx0LGEsaSxuKTtpZihhPT09IkVkaXQifHxhPT09IldyaXRlInx8YT09PSJNdWx0aUVkaXQiKXJldHVybiBWdihlLHQsYSxpLG4pO2lmKGE9PT0iQXNrVXNlclF1ZXN0aW9uIiYmZS5pbnB1dCYmZS5pbnB1dC5xdWVzdGlvbnMpe3ZhciBvPWUuaW5wdXQucXVlc3Rpb25zO2lmKG8mJm8ubGVuZ3RoPjApe2Zvcih2YXIgbD0hIXQsYz1yLmFza1VzZXJTZWxlY3Rpb25zW3VdfHx7fSxmPSEhYy5zdWJtaXR0ZWQsZD1sP21uKHQuY29udGVudCk6IiIsdj1kP2QudHJpbSgpLnNwbGl0KGAKYCk6W10saD0iIixnPTA7ZzxvLmxlbmd0aDtnKyspaWYob1tnXS5oZWFkZXIpe2g9b1tnXS5oZWFkZXI7YnJlYWt9dmFyIG09aD8nPHNwYW4gY2xhc3M9InRvb2wtdXNlLXN1bW1hcnkiPicrcChoKSsiPC9zcGFuPiI6IiIseT0iIjtvLmZvckVhY2goZnVuY3Rpb24oUCxLZSl7dmFyIGN0PSEhUC5tdWx0aVNlbGVjdCxHPVAucXVlc3Rpb24/JzxkaXYgY2xhc3M9ImFzay11c2VyLXRpdGxlIj4nK3AoUC5xdWVzdGlvbikrIjwvZGl2PiI6IiIsZWU9IiI7UC5vcHRpb25zJiZQLm9wdGlvbnMubGVuZ3RoPjAmJihlZT0nPGRpdiBjbGFzcz0iYXNrLXVzZXItb3B0aW9ucyIgZGF0YS1tdWx0aS1zZWxlY3Q9IicrY3QrJyI+JyxQLm9wdGlvbnMuZm9yRWFjaChmdW5jdGlvbihvZSxsZSl7dmFyIEJlPW9lLmxhYmVsP3Aob2UubGFiZWwpOiJcdTkwMDlcdTk4NzkgIisobGUrMSksemU9b2UuZGVzY3JpcHRpb24/JzxkaXYgY2xhc3M9ImFzay11c2VyLW9wdGlvbi1kZXNjIj4nK3Aob2UuZGVzY3JpcHRpb24pKyI8L2Rpdj4iOiIiO2lmKGwpe3ZhciBKdD12W0tlXXx8dlswXXx8IiIsZHQ9SnQuc3BsaXQoIiwiKS5tYXAoZnVuY3Rpb24oSmUpe3JldHVybiBKZS50cmltKCl9KSxmdD1kdC5pbmRleE9mKG9lLmxhYmVsfHwiIikhPT0tMTtlZSs9JzxkaXYgY2xhc3M9ImFzay11c2VyLW9wdGlvbiBhc2stdXNlci1vcHRpb24tcmVhZG9ubHknKyhmdD8iIGFzay11c2VyLW9wdGlvbi1jaG9zZW4iOiIiKSsnIj48c3BhbiBjbGFzcz0iYXNrLXVzZXItaW5kaWNhdG9yIj48L3NwYW4+PGRpdiBjbGFzcz0iYXNrLXVzZXItb3B0aW9uLWNvbnRlbnQiPjxkaXYgY2xhc3M9ImFzay11c2VyLW9wdGlvbi1sYWJlbCI+JytCZSsiPC9kaXY+Iit6ZSsiPC9kaXY+PC9kaXY+In1lbHNle3ZhciBfZT0oY1tLZV18fFtdKS5pbmRleE9mKGxlKSE9PS0xLEd0PWY/IiBkaXNhYmxlZCI6IiI7ZWUrPSc8YnV0dG9uIGNsYXNzPSJhc2stdXNlci1vcHRpb24nKyhfZT8iIHNlbGVjdGVkIjoiIikrJyIgZGF0YS1vcHRpb24taW5kZXg9IicrbGUrJyIgZGF0YS1xdWVzdGlvbi1pbmRleD0iJytLZSsnIiBkYXRhLW9wdGlvbi1sYWJlbD0iJytwKG9lLmxhYmVsfHwiXHU5MDA5XHU5ODc5ICIrKGxlKzEpKStgIiBvbmNsaWNrPSJfX2Fza1NlbGVjdCgnYCtwKHUpKyInLCIrS2UrIiwiK2xlKyIsIitjdCsnKSInK0d0Kyc+PHNwYW4gY2xhc3M9ImFzay11c2VyLWluZGljYXRvciI+PC9zcGFuPjxkaXYgY2xhc3M9ImFzay11c2VyLW9wdGlvbi1jb250ZW50Ij48ZGl2IGNsYXNzPSJhc2stdXNlci1vcHRpb24tbGFiZWwiPicrQmUrIjwvZGl2PiIremUrIjwvZGl2PjwvYnV0dG9uPiJ9fSksZWUrPSI8L2Rpdj4iKSx5Kz0nPGRpdiBjbGFzcz0iYXNrLXVzZXItcXVlc3Rpb24tZ3JvdXAiIGRhdGEtcXVlc3Rpb24taW5kZXg9IicrS2UrJyI+JytHK2VlKyI8L2Rpdj4ifSk7dmFyIHc9IiI7aWYoIWwpe2Zvcih2YXIgRT0hMCxCPTA7QjxvLmxlbmd0aDtCKyspaWYoIWNbQl18fGNbQl0ubGVuZ3RoPT09MCl7RT0hMTticmVha312YXIgRj0hRXx8Zj8iIGRpc2FibGVkIjoiIix4PWY/IiBhc2stdXNlci1zdWJtaXR0ZWQiOiIiLFM9Zj8iXHU1REYyXHU2M0QwXHU0RUE0Li4uIjoiXHU3ODZFXHU4QkE0XHU2M0QwXHU0RUE0Ijt3PSc8ZGl2IGNsYXNzPSJhc2stdXNlci1hY3Rpb25zIj48YnV0dG9uIGNsYXNzPSJhc2stdXNlci1zdWJtaXQnK3grJyIgZGF0YS10b29sLXVzZS1pZD0iJytwKHUpK2AiIG9uY2xpY2s9Il9fYXNrU3VibWl0KCdgK3AodSkrYCcpImArRisiPiIrUysiPC9idXR0b24+PC9kaXY+In12YXIgXz0iIjtpZihsJiZkKXt2YXIgVj1kLnRyaW0oKS5yZXBsYWNlKC9cbi9nLCIsICIpO1YubGVuZ3RoPjQwJiYoVj1WLnNsaWNlKDAsMzcpKyIuLi4iKSxfPSc8c3BhbiBjbGFzcz0idG9vbC11c2UtZmlsZSI+JytwKFYpKyI8L3NwYW4+In12YXIgVT1PdCgidG9vbC1jYXJkIixbaSx1XSksST1YZShVKSxEPUk9PT1udWxsPyFsOkksTT1EPyIiOiIgY29sbGFwc2VkIixMPWw/IiBhc2stdXNlci1hbnN3ZXJlZCI6IiI7cmV0dXJuJzxkaXYgY2xhc3M9InRvb2wtdXNlLWNhcmQgYXNrLXVzZXInK0wrTSsnIiBkYXRhLXRvb2wtdXNlLWlkPSInK3AodSkrJyIgZGF0YS1leHBhbmQta2luZD0idG9vbC1jYXJkIiBkYXRhLWV4cGFuZC1rZXk9IicrcChVKSsnIj48ZGl2IGNsYXNzPSJ0b29sLXVzZS1oZWFkZXIiIGRhdGEtdG9vbC10b2dnbGUgb25jbGljaz0iX190Y1RvZ2dsZShldmVudCx0aGlzKSI+PHNwYW4gY2xhc3M9InRvb2wtdXNlLWljb24iPicrKGw/Ilx1MjcxMyI6Ij8iKSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJ0b29sLXVzZS1uYW1lIj5cdTYzRDBcdTk1RUU8L3NwYW4+JyttK18rJzxzcGFuIGNsYXNzPSJ0b29sLXVzZS10b2dnbGUiPlx1MjVCQzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJ0b29sLXVzZS1ib2R5IGFzay11c2VyLWJvZHkiPicreSt3KyI8L2Rpdj48L2Rpdj4ifX12YXIgVz1lLmRlc2NyaXB0aW9ufHxlLmlucHV0JiZlLmlucHV0LmRlc2NyaXB0aW9ufHwiIixLPUp2KGUubmFtZSxlLmlucHV0KSxYPSIiLG5lPSIiO1c/KFg9Vy5sZW5ndGg+ODA/Vy5zbGljZSgwLDc3KSsiLi4uIjpXLHMmJihuZT0nPHNwYW4gY2xhc3M9InRvb2wtdXNlLWZpbGUiPicrcChzKSsiPC9zcGFuPiIpKTooWD1ZYShhKSxzJiYobmU9JzxzcGFuIGNsYXNzPSJ0b29sLXVzZS1maWxlIj4nK3AocykrIjwvc3Bhbj4iKSxLJiYobmUrPSc8c3BhbiBjbGFzcz0idG9vbC11c2Utc3VtbWFyeSI+JytwKEspKyI8L3NwYW4+IikpO3ZhciBzZT1lLmlucHV0P0pTT04uc3RyaW5naWZ5KGUuaW5wdXQsbnVsbCwyKToie30iLHJlPSJsb2FkaW5nIixUPSc8c3BhbiBjbGFzcz0idG9vbC11c2Utc3Bpbm5lciI+PC9zcGFuPicscT0iIjtpZih0KXt2YXIgTj10LmlzX2Vycm9yLFk9bW4odC5jb250ZW50KTtyZT1OPyJlcnJvciI6InN1Y2Nlc3MiLFQ9UW8oYSk7dmFyIEo9WSYmWS50cmltKCkubGVuZ3RoPjA7Sj9xPSc8cHJlIGNsYXNzPSJ0b29sLXVzZS1yZXN1bHQtY29udGVudCI+JytwKFkpKyI8L3ByZT4iOnE9JzxzcGFuIGNsYXNzPSJ0b29sLXVzZS1yZXN1bHQtZW1wdHkiPlx1NjVFMFx1OEY5M1x1NTFGQTwvc3Bhbj4nfWVsc2UgVD1RbyhhKTt2YXIgaWU9T3QoInRvb2wtY2FyZCIsW2ksdV0pLGRlPVhlKGllKSx0ZT1JbigiZWRpdENhcmRzIiksYWU9ZGU9PT1udWxsP3JlPT09ImxvYWRpbmcifHx0ZTpkZSxIZT10JiZ0Ll90cnVuY2F0ZWQ9PT0hMCxEZT1hZT8iIjoiIGNvbGxhcHNlZCIscGU9JzxzcGFuIGNsYXNzPSJ0b29sLXVzZS10b2dnbGUiPlx1MjVCQzwvc3Bhbj4nO3JldHVybic8ZGl2IGNsYXNzPSJ0b29sLXVzZS1jYXJkICcrcmUrRGUrJyIgZGF0YS1leHBhbmQta2luZD0idG9vbC1jYXJkIiBkYXRhLWV4cGFuZC1rZXk9IicrcChpZSkrJyIgZGF0YS10b29sLXVzZS1pZD0iJytwKHUpKyciJysoSGU/JyBkYXRhLXRydW5jYXRlZD0idHJ1ZSInOiIiKSsnPjxkaXYgY2xhc3M9InRvb2wtdXNlLWhlYWRlciIgZGF0YS10b29sLXRvZ2dsZSBvbmNsaWNrPSJfX3RjVG9nZ2xlKGV2ZW50LHRoaXMpIj48c3BhbiBjbGFzcz0idG9vbC11c2UtaWNvbiI+JytUKyc8L3NwYW4+PHNwYW4gY2xhc3M9InRvb2wtdXNlLW5hbWUiPicrcChYKSsiPC9zcGFuPiIrbmUrcGUrJzwvZGl2PjxkaXYgY2xhc3M9InRvb2wtdXNlLWJvZHkiPicrKFc/JzxkaXYgY2xhc3M9InRvb2wtdXNlLW1ldGEiPjxzcGFuIGNsYXNzPSJ0b29sLXVzZS1tZXRhLWxhYmVsIj5cdTVERTVcdTUxNzdcdUZGMUE8L3NwYW4+JytwKGEpKyI8L2Rpdj4iOiIiKSsnPHByZSBjbGFzcz0idG9vbC11c2UtY29udGVudCI+JytwKHNlKSsiPC9wcmU+IisocT8nPGRpdiBjbGFzcz0idG9vbC11c2UtcmVzdWx0Ij4nK3ErIjwvZGl2PiI6IiIpKyI8L2Rpdj48L2Rpdj4ifWZ1bmN0aW9uIFlhKGUpe3ZhciB0PXtSZWFkOiJcdThCRkJcdTUzRDZcdTY1ODdcdTRFRjYiLFdyaXRlOiJcdTUxOTlcdTUxNjVcdTY1ODdcdTRFRjYiLEVkaXQ6Ilx1N0YxNlx1OEY5MVx1NjU4N1x1NEVGNiIsTXVsdGlFZGl0OiJcdTU5MUFcdTU5MDRcdTdGMTZcdThGOTEiLEJhc2g6Ilx1NjI2N1x1ODg0Q1x1NTQ3RFx1NEVFNCIsR3JlcDoiXHU2NDFDXHU3RDIyXHU1MTg1XHU1QkI5IixHbG9iOiJcdTY3RTVcdTYyN0VcdTY1ODdcdTRFRjYiLFdlYkZldGNoOiJcdTgzQjdcdTUzRDZcdTdGNTFcdTk4NzUiLFdlYlNlYXJjaDoiXHU2NDFDXHU3RDIyXHU3RjUxXHU5ODc1IixUYXNrOiJcdTRFRkJcdTUyQTEiLFRvZG9Xcml0ZToiXHU2NkY0XHU2NUIwXHU1Rjg1XHU1MjlFIixUb2RvUmVhZDoiXHU4QkZCXHU1M0Q2XHU1Rjg1XHU1MjlFIixOb3RlYm9va0VkaXQ6Ilx1N0YxNlx1OEY5MVx1N0IxNFx1OEJCMFx1NjcyQyIsQWdlbnQ6Ilx1NUI1MFx1NEVFM1x1NzQwNiIsQXNrVXNlclF1ZXN0aW9uOiJcdTYzRDBcdTk1RUUiLEV4aXQ6Ilx1OTAwMFx1NTFGQSJ9O3JldHVybiB0W2VdfHxlfWZ1bmN0aW9uIFFvKGUpe3ZhciB0PXtSZWFkOiJSIixXcml0ZToiVyIsRWRpdDoiRSIsTXVsdGlFZGl0OiJFIixCYXNoOiIkIixHcmVwOiJHIixHbG9iOiJGIixXZWJGZXRjaDoiXHUyMUUzIixXZWJTZWFyY2g6Ilx1MjFFMiIsVGFzazoiVCIsVG9kb1dyaXRlOiJcdTI2MTAiLFRvZG9SZWFkOiJcdTI2MTEiLE5vdGVib29rRWRpdDoiTiIsQWdlbnQ6IkEiLEV4aXQ6Ilx4RDcifTtyZXR1cm4gdFtlXXx8Ilx4QjcifWZ1bmN0aW9uIEp2KGUsdCl7aWYoIXR8fHR5cGVvZiB0IT0ib2JqZWN0IilyZXR1cm4iIjt2YXIgbj1PYmplY3Qua2V5cyh0KTtpZihuLmxlbmd0aD09PTApcmV0dXJuInt9IjtpZihlPT09IlJlYWQiKXJldHVybiJcdThCRkJcdTUzRDZcdTY1ODdcdTRFRjYiO2lmKGU9PT0iV3JpdGUiKXJldHVybiJcdTUxOTlcdTUxNjVcdTY1ODdcdTRFRjYiO2lmKGU9PT0iRWRpdCIpe3ZhciBpPXQuZWRpdHM/dC5lZGl0cy5sZW5ndGg6MDtyZXR1cm4iXHU3RjE2XHU4RjkxICgiK2krIiBcdTU5MDRcdTRGRUVcdTY1MzkpIn1pZihlPT09IkJhc2giKXt2YXIgYT10LmNvbW1hbmR8fCIiO2lmKGEpe3ZhciB1PWEubGVuZ3RoPjYwP2Euc2xpY2UoMCw2MCkrIi4uLiI6YTtyZXR1cm4iXHU1NDdEXHU0RUU0XHVGRjFBIit1fX1pZihlPT09IkdyZXAiKXt2YXIgcz10LnBhdHRlcm58fCIiLG89dC5wYXRofHwiIjtpZihzKXJldHVybiJcdTY0MUNcdTdEMjJcdUZGMUEiK3MrKG8/IiAoXHU1NzI4ICIrbysiKSI6IiIpfWlmKGU9PT0iR2xvYiIpe3ZhciBzPXQucGF0dGVybnx8IiI7aWYocylyZXR1cm4iXHU2N0U1XHU2MjdFXHVGRjFBIitzfWlmKGU9PT0iQWdlbnQiKXt2YXIgbD10LnByb21wdHx8dC50YXNrfHwiIjtpZihsKXt2YXIgYz1sLmxlbmd0aD40MD9sLnNsaWNlKDAsNDApKyIuLi4iOmw7cmV0dXJuIlx1NEVGQlx1NTJBMVx1RkYxQSIrY319aWYoZT09PSJUYXNrIil7dmFyIGw9dC50YXNrfHx0LmRlc2NyaXB0aW9ufHwiIjtpZihsKXt2YXIgYz1sLmxlbmd0aD40MD9sLnNsaWNlKDAsNDApKyIuLi4iOmw7cmV0dXJuIlx1NEVGQlx1NTJBMVx1RkYxQSIrY319aWYoZT09PSJUb2RvV3JpdGUiKXt2YXIgZj10LnRvZG9zfHxbXTtyZXR1cm4iXHU2NkY0XHU2NUIwXHU1Rjg1XHU1MjlFICgiK2YubGVuZ3RoKyIgXHU5ODc5KSJ9aWYoZT09PSJXZWJTZWFyY2giKXt2YXIgZD10LnF1ZXJ5fHwiIjtpZihkKXJldHVybiJcdTY0MUNcdTdEMjJcdUZGMUEiK2R9dmFyIHY9blswXSxoPXRbdl07aWYodHlwZW9mIGg9PSJzdHJpbmciKXt2YXIgZz1oLmxlbmd0aD41MD9oLnNsaWNlKDAsNTApKyIuLi4iOmg7cmV0dXJuIHYrIjogIitnfXJldHVybiBuLmxlbmd0aCsiIFx1NEUyQVx1NTNDMlx1NjU3MCJ9ZnVuY3Rpb24gR3YoZSx0KXtpZighdClyZXR1cm4gbnVsbDt2YXIgbj10LmZpbGVfcGF0aHx8dC5wYXRofHx0LmN3ZDtyZXR1cm4gbj9uLmxlbmd0aD41MD8iLi4uIituLnNsaWNlKC00Nyk6bjpudWxsfWZ1bmN0aW9uIFl2KGUpe2lmKCFlKXJldHVybiIiO2Zvcih2YXIgdD1gCmAsbj1lLnNwbGl0KHQpLGk9W10sYT0hMSx1PTA7dTxuLmxlbmd0aDt1Kyspe3ZhciBzPW5bdV0sbz1zLnRyaW0oKTtpZighKCFhJiYhbykpe2lmKGE9ITAsby5pbmRleE9mKCJcdTIzRkEiKT09PTAmJm8ubGVuZ3RoPjIpe2kucHVzaChvLnNsaWNlKDEpLnRyaW0oKSk7Y29udGludWV9aWYoby5pbmRleE9mKCJcdTI1Q0YiKT09PTApe2lmKG89by5zbGljZSgxKS50cmltKCksIW8pY29udGludWU7cz1vfWkucHVzaChzKX19Zm9yKDtpLmxlbmd0aD4wJiYhaVtpLmxlbmd0aC0xXS50cmltKCk7KWkucG9wKCk7Zm9yKHZhciBsPVtdLGM9e30sZj0wO2Y8aS5sZW5ndGg7ZisrKXt2YXIgZD1pW2ZdLnJlcGxhY2UoL1xzKy9nLCIiKTtkLmxlbmd0aD41JiZjW2RdfHwoZC5sZW5ndGg+NSYmKGNbZF09ITApLGwucHVzaChpW2ZdKSl9cmV0dXJuIGwuam9pbih0KX1mdW5jdGlvbiAkbyhlKXt2YXIgdD1gCmAsbj1lLnNwbGl0KHQpLGk9W10sYT0wO2Z1bmN0aW9uIHUobSl7dmFyIHk9bS50cmltKCk7cmV0dXJuIHkuY2hhckF0KDApPT09InwiJiYoeT15LnNsaWNlKDEpKSx5LmNoYXJBdCh5Lmxlbmd0aC0xKT09PSJ8IiYmKHk9eS5zbGljZSgwLC0xKSkseS5zcGxpdCgifCIpfWZ1bmN0aW9uIHMobSl7cmV0dXJuIG0/JyBzdHlsZT0idGV4dC1hbGlnbjonK20rJyInOiIifWZ1bmN0aW9uIG8obSx5LHcpe3ZhciBFPSI8dGhlYWQ+PHRyPiIrbS5tYXAoZnVuY3Rpb24oRix4KXtyZXR1cm4iPHRoIitzKHlbeF0pKyI+IitGLnRyaW0oKSsiPC90aD4ifSkuam9pbigiIikrIjwvdHI+PC90aGVhZD4iLEI9dy5sZW5ndGg/Ijx0Ym9keT4iK3cubWFwKGZ1bmN0aW9uKEYpe3JldHVybiI8dHI+IitGLm1hcChmdW5jdGlvbih4LFMpe3JldHVybiI8dGQiK3MoeVtTXSkrIj4iK3gudHJpbSgpKyI8L3RkPiJ9KS5qb2luKCIiKSsiPC90cj4ifSkuam9pbigiIikrIjwvdGJvZHk+IjoiIjtyZXR1cm4nPGRpdiBjbGFzcz0ibWQtdGFibGUtd3JhcCI+PHRhYmxlIGNsYXNzPSJtZC10YWJsZSI+JytFK0IrIjwvdGFibGU+PC9kaXY+In1mb3IoO2E8bi5sZW5ndGg7KXt2YXIgbD1uW2FdO2lmKGwuaW5kZXhPZigifCIpIT09LTEmJmErMTxuLmxlbmd0aCl7dmFyIGM9blthKzFdLnRyaW0oKTtpZigvXlx8P1xzKjo/LSs6PyhccypcfFxzKjo/LSs6PykrXHMqXHw/JC8udGVzdChjKSl7Zm9yKHZhciBmPXUobCksZD11KGMpLm1hcChmdW5jdGlvbihtKXt2YXIgeT1tLnRyaW0oKSx3PXkuY2hhckF0KDApPT09IjoiLEU9eS5jaGFyQXQoeS5sZW5ndGgtMSk9PT0iOiI7cmV0dXJuIHcmJkU/ImNlbnRlciI6RT8icmlnaHQiOnc/ImxlZnQiOiIifSksdj1bXSxoPWErMjtoPG4ubGVuZ3RoOyl7dmFyIGc9bltoXS50cmltKCk7aWYoIWd8fGcuaW5kZXhPZigifCIpPT09LTEpYnJlYWs7di5wdXNoKHUobltoXSkpLGgrPTF9aS5wdXNoKCIiLG8oZixkLHYpLCIiKSxhPWg7Y29udGludWV9fWkucHVzaChsKSxhKz0xfXJldHVybiBpLmpvaW4odCl9ZnVuY3Rpb24gUWEoZSl7aWYoIWUpcmV0dXJuIiI7dmFyIHQ9cChlKSxuPSJgIixpPWAKYDtmdW5jdGlvbiBhKFQscSxOLFkpe2Zvcih2YXIgSj0wOzspe3ZhciBpZT1ULmluZGV4T2YocSxKKTtpZihpZT09PS0xKWJyZWFrO3ZhciBkZT1ULmluZGV4T2YocSxpZStxLmxlbmd0aCk7aWYoZGU9PT0tMSlicmVhazt2YXIgdGU9VC5zbGljZShpZStxLmxlbmd0aCxkZSk7aWYoIXRlKXtKPWRlK3EubGVuZ3RoO2NvbnRpbnVlfXZhciBhZT1OK3RlK1k7VD1ULnNsaWNlKDAsaWUpK2FlK1Quc2xpY2UoZGUrcS5sZW5ndGgpLEo9aWUrYWUubGVuZ3RofXJldHVybiBUfWZ1bmN0aW9uIHUoVCl7cmV0dXJuIFQ+PTQ4JiZUPD01N3x8VD49NjUmJlQ8PTkwfHxUPj05NyYmVDw9MTIyfHxUPT09OTV9ZnVuY3Rpb24gcyhULHEsTil7Zm9yKHZhciBZPTA7WTxULmxlbmd0aDspe3ZhciBKPVQuaW5kZXhPZigiXyIsWSk7aWYoSj09PS0xKWJyZWFrO3ZhciBpZT1KPjA/VC5jaGFyQ29kZUF0KEotMSk6MDtpZih1KGllKSl7WT1KKzE7Y29udGludWV9Zm9yKHZhciBkZT1KKzEsdGU9LTE7ZGU8VC5sZW5ndGg7KXt2YXIgYWU9VC5pbmRleE9mKCJfIixkZSk7aWYoYWU9PT0tMSlicmVhazt2YXIgSGU9YWUrMSxEZT1IZTxULmxlbmd0aD9ULmNoYXJDb2RlQXQoSGUpOjA7aWYoIXUoRGUpKXt0ZT1hZTticmVha31kZT1hZSsxfWlmKHRlPT09LTEpYnJlYWs7dmFyIHBlPVQuc2xpY2UoSisxLHRlKTtpZighcGUpe1k9dGUrMTtjb250aW51ZX12YXIgUD1xK3BlK047VD1ULnNsaWNlKDAsSikrUCtULnNsaWNlKHRlKzEpLFk9SitQLmxlbmd0aH1yZXR1cm4gVH1mdW5jdGlvbiBvKFQscSxOLFkpe3JldHVybiBULnNwbGl0KGkpLm1hcChmdW5jdGlvbihKKXtyZXR1cm4gSi5pbmRleE9mKHEpIT09MD9KOk4rSi5zbGljZShxLmxlbmd0aCkrWX0pLmpvaW4oaSl9ZnVuY3Rpb24gbChUKXtyZXR1cm4gVC5zcGxpdChpKS5tYXAoZnVuY3Rpb24ocSl7dmFyIE49cS5pbmRleE9mKCIuICIpO2lmKE48PTApcmV0dXJuIHE7Zm9yKHZhciBZPTA7WTxOO1krPTEpe3ZhciBKPXEuY2hhckNvZGVBdChZKTtpZihKPDQ4fHxKPjU3KXJldHVybiBxfXJldHVybiI8bGk+IitxLnNsaWNlKE4rMikrIjwvbGk+In0pLmpvaW4oaSl9ZnVuY3Rpb24gYyhUKXtyZXR1cm4gVC5zcGxpdChpK2kpLm1hcChmdW5jdGlvbihxKXt2YXIgTj1xLnRyaW0oKTtyZXR1cm4gTj9OLmluZGV4T2YoIjxkaXYiKT09PTB8fE4uaW5kZXhPZigiPGgxIik9PT0wfHxOLmluZGV4T2YoIjxoMiIpPT09MHx8Ti5pbmRleE9mKCI8aDMiKT09PTB8fE4uaW5kZXhPZigiPGg0Iik9PT0wfHxOLmluZGV4T2YoIjxoNSIpPT09MHx8Ti5pbmRleE9mKCI8aDYiKT09PTB8fE4uaW5kZXhPZigiPHVsIik9PT0wfHxOLmluZGV4T2YoIjxvbCIpPT09MHx8Ti5pbmRleE9mKCI8bGkiKT09PTB8fE4uaW5kZXhPZigiPGJsb2NrcXVvdGUiKT09PTB8fE4uaW5kZXhPZigiPHByZSIpPT09MD9OOiI8cD4iK04uc3BsaXQoaSkuam9pbigiPGJyPiIpKyI8L3A+IjoiIn0pLmpvaW4oIiIpfWZvcih2YXIgZj0wOzspe3ZhciBkPXQuaW5kZXhPZihuK24rbixmKTtpZihkPT09LTEpYnJlYWs7dmFyIHY9dC5pbmRleE9mKG4rbituLGQrMyk7aWYodj09PS0xKWJyZWFrO3ZhciBoPXQuc2xpY2UoZCszLHYpLGc9aC5pbmRleE9mKGkpLG09IiIseT1oO2lmKGchPT0tMSYmZzwzMCl7Zm9yKHZhciB3PWguc2xpY2UoMCxnKS50cmltKCksRT13Lmxlbmd0aD4wLEI9MDtCPHcubGVuZ3RoO0IrPTEpe3ZhciBGPXcuY2hhckNvZGVBdChCKSx4PUY+PTQ4JiZGPD01NyxTPUY+PTY1JiZGPD05MCxfPUY+PTk3JiZGPD0xMjI7aWYoIXgmJiFTJiYhXyl7RT0hMTticmVha319RSYmKG09dyx5PWguc2xpY2UoZysxKSl9dmFyIFY9UXYoeS50cmltKCksbSksVT1WLnJlcGxhY2UoL18vZywiJiM5NTsiKS5yZXBsYWNlKC9cKi9nLCImIzQyOyIpLEk9JzxkaXYgY2xhc3M9ImNvZGUtYmxvY2siPjxkaXYgY2xhc3M9ImNvZGUtYmxvY2staGVhZGVyIj48c3BhbiBjbGFzcz0iY29kZS1sYW5nIj4nKyhtfHwiY29kZSIpKyc8L3NwYW4+PGJ1dHRvbiBjbGFzcz0iY29kZS1jb3B5Ij5Db3B5PC9idXR0b24+PC9kaXY+PHByZT48Y29kZT4nK1UrIjwvY29kZT48L3ByZT48L2Rpdj4iO3Q9dC5zbGljZSgwLGQpK0krdC5zbGljZSh2KzMpLGY9ZCtJLmxlbmd0aH1mb3IoZj0wOzspe3ZhciBEPXQuaW5kZXhPZihuLGYpO2lmKEQ9PT0tMSlicmVhazt2YXIgTT10LmluZGV4T2YobixEKzEpO2lmKE09PT0tMSlicmVhaztpZihNPT09RCsxKXtmPU0rMTtjb250aW51ZX12YXIgTD10LnNsaWNlKEQrMSxNKSxXPUwucmVwbGFjZSgvXy9nLCImIzk1OyIpLnJlcGxhY2UoL1wqL2csIiYjNDI7IiksSz0nPGNvZGUgY2xhc3M9ImNvZGUtaW5saW5lIj4nK1crIjwvY29kZT4iO3Q9dC5zbGljZSgwLEQpK0srdC5zbGljZShNKzEpLGY9RCtLLmxlbmd0aH10PWEodCwiKioiLCI8c3Ryb25nPiIsIjwvc3Ryb25nPiIpLHQ9YSh0LCIqIiwiPGVtPiIsIjwvZW0+IiksdD1zKHQsIjxlbT4iLCI8L2VtPiIpLHQ9byh0LCIjIyMgIiwiPGgzPiIsIjwvaDM+IiksdD1vKHQsIiMjICIsIjxoMj4iLCI8L2gyPiIpLHQ9byh0LCIjICIsIjxoMT4iLCI8L2gxPiIpLHQ9byh0LCImZ3Q7ICIsIjxibG9ja3F1b3RlPiIsIjwvYmxvY2txdW90ZT4iKSx0PW8odCwiLSAiLCI8bGk+IiwiPC9saT4iKSx0PW8odCwiKiAiLCI8bGk+IiwiPC9saT4iKSx0PWwodCksdD0kbyh0KTt2YXIgWD10LnNwbGl0KGkpLG5lPVtdLHNlPVtdO2Z1bmN0aW9uIHJlKCl7c2UubGVuZ3RoJiYobmUucHVzaCgiPHVsPiIrc2Uuam9pbigiIikrIjwvdWw+Iiksc2U9W10pfXJldHVybiBYLmZvckVhY2goZnVuY3Rpb24oVCl7aWYoVC5pbmRleE9mKCI8bGk+Iik9PT0wJiZULmxhc3RJbmRleE9mKCI8L2xpPiIpPT09VC5sZW5ndGgtNSl7c2UucHVzaChUKTtyZXR1cm59cmUoKSxuZS5wdXNoKFQpfSkscmUoKSx0PWMobmUuam9pbihpKSksJzxkaXYgY2xhc3M9Im1hcmtkb3duLWNvbnRlbnQiPicrdCsiPC9kaXY+In1mdW5jdGlvbiBRdihlLHQpe3JldHVybiBlPWUucmVwbGFjZSgvJi9nLCImYW1wOyIpLnJlcGxhY2UoLzwvZywiJmx0OyIpLnJlcGxhY2UoLz4vZywiJmd0OyIpLGV9ZnVuY3Rpb24gJG4oZSl7dmFyIHQ9U3RyaW5nKGV8fCIiKS50cmltKCk7cmV0dXJuIHQubGVuZ3RoPD0yND90fHwiXHU2NzJBXHU5MDA5XHU2MkU5XHU0RjFBXHU4QkREIjp0LnNsaWNlKDAsMjEpKyIuLi4ifWZ1bmN0aW9uICRhKGUpe3JldHVybiBTdHJpbmcoZXx8IiIpLnJlcGxhY2UoL1xyXHJcbi9nLGBccgpgKS5yZXBsYWNlKC9cdTAwMDAvZywiIil9ZnVuY3Rpb24gJHYoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9naW4tY2VydC1oaW50Iik7ZSYmZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKTt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9naW4tY2VydC1odHRwLWxpbmsiKTt0JiYodC5ocmVmPSJodHRwOi8vIitsb2NhdGlvbi5ob3N0K2xvY2F0aW9uLnBhdGhuYW1lLHQuc3R5bGUuZGlzcGxheT1sb2NhdGlvbi5wcm90b2NvbD09PSJodHRwczoiPyIiOiJub25lIil9ZnVuY3Rpb24gWHYoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9naW4tY2VydC1oaW50Iik7ZSYmZS5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKX1mdW5jdGlvbiBYYSgpe2lmKCFyLmxvZ2luUGVuZGluZyl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBhc3N3b3JkIiksdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9naW4tYnV0dG9uIiksbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9naW4tZXJyb3IiKTshZXx8IXR8fCFufHwoY2kobiksWHYoKSxlLmRhdGFzZXQuZXJyb3I9ImZhbHNlIixlLnNldEF0dHJpYnV0ZSgiYXJpYS1pbnZhbGlkIiwiZmFsc2UiKSxyLmxvZ2luUGVuZGluZz0hMCx0LmRpc2FibGVkPSEwLHQudGV4dENvbnRlbnQ9Ilx1NzY3Qlx1NUY1NVx1NEUyRC4uLiIsZmV0Y2goIi9hcGkvbG9naW4iLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sYm9keTpKU09OLnN0cmluZ2lmeSh7cGFzc3dvcmQ6ZS52YWx1ZX0pLGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKGkpe3JldHVybiBpLnN0YXR1cz09PTQyOT8oUGUobiwiXHU3NjdCXHU1RjU1XHU1QzFEXHU4QkQ1XHU2QjIxXHU2NTcwXHU4RkM3XHU1OTFBXHVGRjBDXHU4QkY3XHU3QTBEXHU1NDBFXHU1MThEXHU4QkQ1XHUzMDAyIiksUHJvbWlzZS5yZWplY3QoImhhbmRsZWQiKSk6aS5vaz9mZXRjaCgiL2FwaS9jb25maWciLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSk6KGUuZGF0YXNldC5lcnJvcj0idHJ1ZSIsZS5zZXRBdHRyaWJ1dGUoImFyaWEtaW52YWxpZCIsInRydWUiKSxQZShuLCJcdTVCQzZcdTc4MDFcdTk1MTlcdThCRUZcdUZGMENcdThCRjdcdTkxQ0RcdThCRDVcdTMwMDIiKSxQcm9taXNlLnJlamVjdCgiaGFuZGxlZCIpKX0pLnRoZW4oZnVuY3Rpb24oaSl7cmV0dXJuIGkub2s/aS5qc29uKCk6KGxvY2F0aW9uLnByb3RvY29sPT09Imh0dHBzOiI/JHYoKTpQZShuLCJcdTc2N0JcdTVGNTVcdTU5MzFcdThEMjVcdUZGMENcdThCRjdcdTkxQ0RcdThCRDVcdTMwMDIiKSxQcm9taXNlLnJlamVjdCgiaGFuZGxlZCIpKX0pLnRoZW4oZnVuY3Rpb24oaSl7ci5jb25maWc9aTt2YXIgYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3RhdHVzLWRvdCIpLHU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0YXR1cy10ZXh0Iik7cmV0dXJuIGEmJmEuY2xhc3NMaXN0LmFkZCgiYWN0aXZlIiksdSYmKHUudGV4dENvbnRlbnQ9Ilx1NURGMlx1NzY3Qlx1NUY1NSIpLFJ0KCl9KS50aGVuKGZ1bmN0aW9uKCl7YnMoKSx0bigpfSkuY2F0Y2goZnVuY3Rpb24oaSl7aSE9PSJoYW5kbGVkIiYmKGNvbnNvbGUuZXJyb3IoIlt3YW5kXSBMb2dpbiBlcnJvcjoiLGkpLFBlKG4sIlx1NzY3Qlx1NUY1NVx1NTkzMVx1OEQyNVx1RkYwQ1x1OEJGN1x1OTFDRFx1OEJENVx1MzAwMiIpKX0pLmZpbmFsbHkoZnVuY3Rpb24oKXtyLmxvZ2luUGVuZGluZz0hMSx0LmRpc2FibGVkPSExLHQudGV4dENvbnRlbnQ9Ilx1OEZEQlx1NTE2NVx1NjNBN1x1NTIzNlx1NTNGMCJ9KSl9fWZ1bmN0aW9uIFphKCl7cmV0dXJuIHR5cGVvZiBXYW5kTmF0aXZlPCJ1IiYmdHlwZW9mIFdhbmROYXRpdmUuc3dpdGNoU2VydmVyPT0iZnVuY3Rpb24ifWZ1bmN0aW9uIFhvKCl7aWYoWmEoKSl0cnl7V2FuZE5hdGl2ZS5zd2l0Y2hTZXJ2ZXIoKX1jYXRjaHt9fWZ1bmN0aW9uIFp2KCl7cmV0dXJuIHR5cGVvZiBXYW5kTmF0aXZlPCJ1IiYmdHlwZW9mIFdhbmROYXRpdmUuYmFja1RvTmF0aXZlPT0iZnVuY3Rpb24iPyEwOnR5cGVvZiB3aW5kb3cuX193YW5kQmFja1RvTmF0aXZlPT0iZnVuY3Rpb24ifWZ1bmN0aW9uIGVtKCl7dHJ5e2lmKHR5cGVvZiBXYW5kTmF0aXZlPCJ1IiYmdHlwZW9mIFdhbmROYXRpdmUuYmFja1RvTmF0aXZlPT0iZnVuY3Rpb24iKXtXYW5kTmF0aXZlLmJhY2tUb05hdGl2ZSgpO3JldHVybn10eXBlb2Ygd2luZG93Ll9fd2FuZEJhY2tUb05hdGl2ZT09ImZ1bmN0aW9uIiYmd2luZG93Ll9fd2FuZEJhY2tUb05hdGl2ZSgpfWNhdGNoe319ZnVuY3Rpb24gWm8oKXtmZXRjaCgiL2FwaS9sb2dvdXQiLHttZXRob2Q6IlBPU1QiLGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS5jYXRjaChmdW5jdGlvbigpe30pLERzKCksTW4oITEpLFRhKCkseXIoKSxyLmNvbmZpZz1udWxsLHIuc2VsZWN0ZWRJZD1udWxsLHdlKCksci5zZXNzaW9ucz1bXSxyLmNsYXVkZUhpc3Rvcnk9W10sci5jbGF1ZGVIaXN0b3J5TG9hZGVkPSExLHIuY2xhdWRlSGlzdG9yeUV4cGFuZGVkPSExLHIuY2xhdWRlSGlzdG9yeUV4cGFuZGVkRGlycz17fSxyLnNlc3Npb25zRHJhd2VyT3Blbj0hMSx4ZSgid2FuZC1zaWRlYmFyLW9wZW4iLCExKSx0bigpfWZ1bmN0aW9uIFJ0KCl7cmV0dXJuIGduKCl9ZnVuY3Rpb24gZXUoZSl7cmV0dXJuIGU9PT0iZnVsbC1hY2Nlc3MiPyJcdTUxNjhcdTY3NDNcdTk2NTAiOmU9PT0iZGVmYXVsdCI/Ilx1OUVEOFx1OEJBNCI6ZT09PSJuYXRpdmUiPyJcdTUzOUZcdTc1MUYiOmU9PT0iYXV0by1lZGl0Ij8iXHU4MUVBXHU1MkE4XHU3RjE2XHU4RjkxIjplPT09Im1hbmFnZWQiPyJcdTYyNThcdTdCQTEiOmV9ZnVuY3Rpb24gdHQoKXtyZXR1cm4gci5zZXNzaW9uVG9vbHx8ci5wcmVmZXJyZWRDb21tYW5kfHwiY2xhdWRlIn1mdW5jdGlvbiB0bSgpe3ZhciBlPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbih0KXtyZXR1cm4gdC5pZD09PXIuc2VsZWN0ZWRJZH0pO3JldHVybiBlJiZlLnByb3ZpZGVyfHxyLnByZWZlcnJlZENvbW1hbmR8fCJjbGF1ZGUifWZ1bmN0aW9uIGVsKGUsdCl7cmV0dXJuIHQ/Ilx1OTUyRVx1NzZEOFx1OEY5M1x1NTE2NVx1NUMwNlx1NTNEMVx1OTAwMVx1NTIzMFx1N0VDOFx1N0FFRiI6ZSYmKGUuc3RhdHVzPT09ImV4aXRlZCJ8fGUuc3RhdHVzPT09ImZhaWxlZCJ8fGUuc3RhdHVzPT09InN0b3BwZWQiKT9BYShlKT8iXHU4RjkzXHU1MTY1XHU2RDg4XHU2MDZGXHU0RUU1XHU3RUU3XHU3RUVEXHU0RjFBXHU4QkREIjoiXHU0RjFBXHU4QkREXHU1REYyXHU3RUQzXHU2NzVGIjp1ZShlKSYmZS5zdHJ1Y3R1cmVkU3RhdGUmJmUuc3RydWN0dXJlZFN0YXRlLmluRmxpZ2h0PyJcdTU2REVcdTU5MERcdTRFMkRcdUZGMENcdTUzRUZcdTdFRTdcdTdFRURcdThGOTNcdTUxNjUiOiJcdThGOTNcdTUxNjVcdTZEODhcdTYwNkYifWZ1bmN0aW9uIHRsKGUsdCl7cmV0dXJuIGU9PT0iY29kZXgiPyJDb2RleCBcdTY1MkZcdTYzMDEgUFRZIFx1N0VDOFx1N0FFRlx1NEUwRVx1N0VEM1x1Njc4NFx1NTMxNlx1RkYwOEpTT05MXHVGRjA5XHU0RTI0XHU3OUNEXHU0RjFBXHU4QkREXHVGRjBDXHU3RUQzXHU2Nzg0XHU1MzE2XHU2QTIxXHU1RjBGXHU2MzA5IGZ1bGwtYWNjZXNzIFx1NTQyRlx1NTJBOFx1MzAwMiI6dD09PSJmdWxsLWFjY2VzcyI/Ilx1ODFFQVx1NTJBOFx1Nzg2RVx1OEJBNFx1Njc0M1x1OTY1MFx1OEJGN1x1NkM0Mlx1NEUwRVx1OUFEOFx1Njc0M1x1OTY1MFx1NjRDRFx1NEY1Q1x1RkYwQ1x1OTAwMlx1NTQwOFx1NEY2MFx1Nzg2RVx1OEJBNFx1NzNBRlx1NTg4M1x1NUI4OVx1NTE2OFx1NTQwRVx1NzY4NFx1OEZERVx1N0VFRFx1NEZFRVx1NjUzOVx1MzAwMiI6dD09PSJhdXRvLWVkaXQiPyJcdTRGRERcdTc1NTlcdTRFQTRcdTRFOTJcdTVGMEZcdTRGMUFcdThCRERcdUZGMENcdTU0MENcdTY1RjZcdTY2RjRcdTUwNEZcdTU0MTFcdTc2RjRcdTYzQTVcdTdGMTZcdThGOTFcdTRFRTNcdTc4MDFcdTMwMDIiOnQ9PT0ibmF0aXZlIj8iXHU4QzAzXHU3NTI4IENsYXVkZSBcdTUzOUZcdTc1MUYgQVBJIFx1OEY5M1x1NTFGQVx1RkYwQ1x1OTAwMlx1NTQwOFx1NUZFQlx1OTAxRlx1OTVFRVx1N0I1NFx1NjIxNlx1NEUwMFx1NkIyMVx1NjAyN1x1NzUxRlx1NjIxMFx1MzAwMiI6dD09PSJtYW5hZ2VkIj8iQUkgXHU4MUVBXHU1MkE4XHU1QjhDXHU2MjEwXHU2MjQwXHU2NzA5XHU1REU1XHU0RjVDXHVGRjBDXHU2NUUwXHU5NzAwXHU0RTJEXHU5MDE0XHU3ODZFXHU4QkE0XHVGRjBDXHU5MDAyXHU1NDA4XHU2NzA5XHU2NjBFXHU3ODZFXHU3NkVFXHU2ODA3XHU3Njg0XHU0RUZCXHU1MkExXHUzMDAyIjoiXHU0RkREXHU3NTU5XHU2ODA3XHU1MUM2XHU0RUE0XHU0RTkyXHU2RDQxXHU3QTBCXHVGRjBDXHU5MDAyXHU1NDA4XHU2MjRCXHU1MkE4XHU3ODZFXHU4QkE0XHU2QkNGXHU0RTAwXHU2QjY1XHUzMDAyIn1mdW5jdGlvbiB0dShlKXtyZXR1cm4gZT09PSJjb2RleCI/WyJmdWxsLWFjY2VzcyJdOlsiZGVmYXVsdCIsImZ1bGwtYWNjZXNzIiwiYXV0by1lZGl0IiwibmF0aXZlIiwibWFuYWdlZCJdfWZ1bmN0aW9uIEl0KGUsdCl7dmFyIG49dHUoZSk7aWYobi5pbmRleE9mKHQpIT09LTEpcmV0dXJuIHQ7dmFyIGk9ci5jb25maWcmJnIuY29uZmlnLmRlZmF1bHRNb2RlP3IuY29uZmlnLmRlZmF1bHRNb2RlOiJkZWZhdWx0IjtyZXR1cm4gbi5pbmRleE9mKGkpIT09LTE/aTpuWzBdfWZ1bmN0aW9uIGVoKGUsdCl7cmV0dXJuIHR1KGUpLm1hcChmdW5jdGlvbihuKXt2YXIgaT1ubChuKTtyZXR1cm4nPG9wdGlvbiB2YWx1ZT0iJytwKG4pKyciJysobj09PXQ/IiBzZWxlY3RlZCI6IiIpKycgdGl0bGU9IicraSsnIj4nK3AoZXUobikpKyI8L29wdGlvbj4ifSkuam9pbigiIil9ZnVuY3Rpb24gbmwoZSl7dmFyIHQ9e2RlZmF1bHQ6Ilx1NjgwN1x1NTFDNlx1NkEyMVx1NUYwRiAtIFx1OTcwMFx1ODk4MVx1Nzg2RVx1OEJBNFx1NjU4N1x1NEVGNlx1NEZFRVx1NjUzOSIsImZ1bGwtYWNjZXNzIjoiXHU1QjhDXHU1MTY4XHU4QkJGXHU5NUVFIC0gXHU4MUVBXHU1MkE4XHU3ODZFXHU4QkE0XHU2NzQzXHU5NjUwXHU0RTBFXHU2NENEXHU0RjVDIiwiYXV0by1lZGl0IjoiXHU4MUVBXHU1MkE4XHU3RjE2XHU4RjkxIC0gXHU4MUVBXHU1MkE4XHU3ODZFXHU4QkE0XHU2NTg3XHU0RUY2XHU0RkVFXHU2NTM5IixuYXRpdmU6Ilx1NTM5Rlx1NzUxRlx1NkEyMVx1NUYwRiAtIFx1OEZENFx1NTZERVx1N0VEM1x1Njc4NFx1NTMxNlx1OEY5M1x1NTFGQSIsbWFuYWdlZDoiXHU2MjU4XHU3QkExXHU2QTIxXHU1RjBGIC0gQUkgXHU4MUVBXHU1MkE4XHU1QjhDXHU2MjEwXHU2MjQwXHU2NzA5XHU1REU1XHU0RjVDIn07cmV0dXJuIHRbZV18fCIifWZ1bmN0aW9uIG5tKGUpe3ZhciB0PWUmJmUucHJvdmlkZXI/ZS5wcm92aWRlcjoiY2xhdWRlIjtyZXR1cm4odWUoZSk/Ilx1N0VEM1x1Njc4NFx1NTMxNiI6Ilx1N0VDOFx1N0FFRiIpKyIgXHhCNyAiK3R9ZnVuY3Rpb24gcm0oZSl7cmV0dXJuIHVlKGUpPyJcdTdFRDNcdTY3ODRcdTUzMTYgXHhCNyBcdTU3NTdcdTdFQTdcdThCQjBcdTVGNTUiOmUmJmUucHJvdmlkZXI9PT0iY29kZXgiPyJcdTdFQzhcdTdBRUYgXHhCNyBDb2RleCBQVFlcdUZGMDhjaGF0IFx1NEUzQVx1ODlFM1x1Njc5MFx1ODlDNlx1NTZGRVx1RkYwOSI6Ilx1N0VDOFx1N0FFRiBceEI3IFBUWSBcdTRGMUFcdThCREQifWZ1bmN0aW9uIHJsKGUpe3JldHVybiBlP3VlKGUpfHxlLnByb3ZpZGVyPT09ImNvZGV4IjohMX1mdW5jdGlvbiBpbChlLHQpe2lmKCFlfHwhZS5pc19lcnJvcnx8IXR8fHQuaXNfZXJyb3IpcmV0dXJuITE7dmFyIG49bW4oZS5jb250ZW50KS50b0xvd2VyQ2FzZSgpLGk9bW4odC5jb250ZW50KS50b0xvd2VyQ2FzZSgpO3JldHVybiBuP24uaW5kZXhPZigiaW52YWxpZCBwYWdlcyBwYXJhbWV0ZXIiKSE9PS0xJiZpLmxlbmd0aD4wOiExfWZ1bmN0aW9uIHVlKGUpe3JldHVybiEhZSYmKGUuc2Vzc2lvbktpbmQ9PT0ic3RydWN0dXJlZCJ8fGUucnVubmVyPT09ImNsYXVkZS1jbGktcHJpbnQiKX1mdW5jdGlvbiB4aSgpe3IuY2hhdE1vZGU9SXQoImNsYXVkZSIsci5jaGF0TW9kZSk7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1vZGUtaGludCIpO2UmJihlLnRleHRDb250ZW50PW5sKHIuY2hhdE1vZGUpKSxYbigpfWZ1bmN0aW9uIGFsKGUsdCl7dD10fHx7fTt2YXIgbj10LmtpbmQ9PT0iY29tcGFjdCJ8fHQua2luZD09PSJwb3BvdmVyIj90LmtpbmQ6ImRyb3Bkb3duIixpPXR0KCksYT1yLmNoYXRNb2RlfHwiZGVmYXVsdCIsdT1MaShlKXx8IiIscz1JaSh1LGUpLG89aXUoZSk7ZnVuY3Rpb24gbChjLGYsZCx2KXt2YXIgaD1uPT09ImNvbXBhY3QiPyIiOic8c3BhbiBjbGFzcz0iY2hhdC1tb2RlLXRyaW8tdGFnIj4nK3AoZikrIjwvc3Bhbj4iO3JldHVybic8c3BhbiBjbGFzcz0iY29tcG9zZXItdGV4dC1waWxsIGNoYXQtbW9kZS10cmlvLXBpbGwiIGRhdGEtbW9kZS1jb250cm9sLXBpbGw9IicrYysnIiB0aXRsZT0iJytwKGYpKyciPicraCsnPHNwYW4gY2xhc3M9ImNvbXBvc2VyLXRleHQtbGFiZWwiPicrcChkKSsnPC9zcGFuPjxzZWxlY3QgY2xhc3M9ImNvbXBvc2VyLXRleHQtaGlkZGVuLXNlbGVjdCIgZGF0YS1tb2RlLWNvbnRyb2w9IicrYysnIiB0YWJpbmRleD0iLTEiIGFyaWEtbGFiZWw9IicrcChmKSsnIj4nK3YrIjwvc2VsZWN0Pjwvc3Bhbj4ifXJldHVybic8ZGl2IGNsYXNzPSJjaGF0LW1vZGUtdHJpbyBjaGF0LW1vZGUtdHJpby0nK24rJyIgcm9sZT0iZ3JvdXAiIGFyaWEtbGFiZWw9Ilx1NEYxQVx1OEJERFx1OEJCRVx1N0Y2RSI+JytsKCJtb2RlIiwiXHU2QTIxXHU1RjBGIixhLFRpKGksYSkpKyc8c3BhbiBjbGFzcz0iY29tcG9zZXItdGV4dC1zZXAiIGFyaWEtaGlkZGVuPSJ0cnVlIj5ceEI3PC9zcGFuPicrbCgibW9kZWwiLCJcdTZBMjFcdTU3OEIiLHMsbGwodSxlKSkrJzxzcGFuIGNsYXNzPSJjb21wb3Nlci10ZXh0LXNlcCIgYXJpYS1oaWRkZW49InRydWUiPlx4Qjc8L3NwYW4+JytsKCJ0aGlua2luZyIsIlx1NjAxRFx1ODAwMyIsbyxjbChvKSkrIjwvZGl2PiJ9ZnVuY3Rpb24gdWwoZSl7cmV0dXJuIGU9PT0ic3RhbmRhcmQiPyJcdTRGNEUiOmU9PT0iZGVlcCI/Ilx1NEUyRCI6ZT09PSJtYXgiPyJcdTlBRDgiOiJcdTUxNzMifWZ1bmN0aW9uIGltKGUpe3JldHVybiBlPT09InN0YW5kYXJkIj8iXHU0RjRFIjplPT09ImRlZXAiPyJcdTRFMkQiOmU9PT0ibWF4Ij8iXHU5QUQ4IjoiXHU1MTczXHU5NUVEIn1mdW5jdGlvbiBTaShlLHQpe3ZhciBuPWV8fCIiLGk9bnUodCk7aWYoIW58fG49PT0iZGVmYXVsdCIpe2Zvcih2YXIgYT0wO2E8aS5sZW5ndGg7YSsrKWlmKGlbYV0uaWQ9PT0iZGVmYXVsdCIpcmV0dXJuIGlbYV0ubGFiZWx8fGlbYV0uaWQ7cmV0dXJuIlx1OUVEOFx1OEJBNCJ9Zm9yKHZhciB1PTA7dTxpLmxlbmd0aDt1KyspaWYoaVt1XS5pZD09PW4pcmV0dXJuIGlbdV0ubGFiZWx8fGlbdV0uaWQ7cmV0dXJuIG59ZnVuY3Rpb24gSWkoZSx0KXt2YXIgbj1TaShlLHQpO2lmKCFufHxuPT09Ilx1OERERlx1OTY4Rlx1NjcwRFx1NTJBMVx1N0FFRlx1OUVEOFx1OEJBNCIpcmV0dXJuIlx1OUVEOFx1OEJBNCI7dmFyIGk9bi5zZWFyY2goL1vvvIgoXS8pO2k+MCYmKG49bi5zbGljZSgwLGkpLnRyaW0oKSk7dmFyIGE9bi5sYXN0SW5kZXhPZigiLyIpO2E+PTAmJmE8bi5sZW5ndGgtMSYmKG49bi5zbGljZShhKzEpLnRyaW0oKSk7dmFyIHU9bi50b0xvd2VyQ2FzZSgpO3JldHVybiB1LmluZGV4T2YoIm9wdXMiKSE9PS0xPyJPcHVzIjp1LmluZGV4T2YoInNvbm5ldCIpIT09LTE/IlNvbm5ldCI6dS5pbmRleE9mKCJoYWlrdSIpIT09LTE/IkhhaWt1Ijp1LmluZGV4T2YoImdwdC01LjUiKSE9PS0xPyJHUFQtNS41Ijp1LmluZGV4T2YoImdwdC01IikhPT0tMT8iR1BULTUiOnUuaW5kZXhPZigiZ3B0LTQiKSE9PS0xPyJHUFQtNCI6bi5sZW5ndGg+MTI/bi5zbGljZSgwLDEwKSsiXHUyMDI2IjpufWZ1bmN0aW9uIHNsKGUpe2Zvcih2YXIgdD1lfHwib2ZmIixuPSIiLGk9MDtpPFd0Lmxlbmd0aDtpKyspe3ZhciBhPVd0W2ldO24rPSc8b3B0aW9uIHZhbHVlPSInK3AoYS5pZCkrJyInKyhhLmlkPT09dD8iIHNlbGVjdGVkIjoiIikrJyB0aXRsZT0iJytwKGEuaGludCkrJyI+JytwKGltKGEuaWQpKSsiPC9vcHRpb24+In1yZXR1cm4gbn1mdW5jdGlvbiBvbChlKXt2YXIgdD10dCgpLG49ci5jaGF0TW9kZXx8ImRlZmF1bHQiLGk9TGkoZSl8fCIiLGE9aXUoZSksdT1ldShuKSxzPUlpKGksZSksbz11bChhKSxsPSJcdTZBMjFcdTVGMEYgIit1KyIgXHhCNyBcdTZBMjFcdTU3OEIgIitzKyIgXHhCNyBcdTYwMURcdTgwMDMgIitvO3JldHVybic8ZGl2IGNsYXNzPSJjb21wb3Nlci1jb25maWctY29udHJvbHMiIHJvbGU9Imdyb3VwIiBhcmlhLWxhYmVsPSJcdTRGMUFcdThCRERcdThCQkVcdTdGNkUiIHRpdGxlPSInK3AobCkrJyI+PHNwYW4gY2xhc3M9ImNvbXBvc2VyLWNvbmZpZy1jaGlwIGNvbXBvc2VyLWNvbmZpZy1jaGlwLW1vZGUiIGRhdGEtbW9kZS1jb250cm9sLXBpbGw9Im1vZGUiIHRpdGxlPSJcdTZBMjFcdTVGMEZcdUZGMUEnK3AodSkrJyI+Jyt6KCJzaGllbGQiLHtzaXplOjEzLHN0cm9rZVdpZHRoOjEuOCxjbHM6ImNvbXBvc2VyLWNvbmZpZy1pY29uIn0pKyc8c3BhbiBjbGFzcz0iY29tcG9zZXItY29uZmlnLWxhYmVsIj4nK3AodSkrJzwvc3Bhbj48c2VsZWN0IGNsYXNzPSJjb21wb3Nlci10ZXh0LWhpZGRlbi1zZWxlY3QiIGRhdGEtbW9kZS1jb250cm9sPSJtb2RlIiB0YWJpbmRleD0iLTEiIGFyaWEtbGFiZWw9Ilx1NkEyMVx1NUYwRiI+JytUaSh0LG4pKyc8L3NlbGVjdD48L3NwYW4+PHNwYW4gY2xhc3M9ImNvbXBvc2VyLWNvbmZpZy1tb2RlbC10aGlua2luZyIgZGF0YS10aGlua2luZz0iJytwKGEpKyciIHRpdGxlPSJcdTZBMjFcdTU3OEJcdTRFMEVcdTYwMURcdTgwMDNcdTZERjFcdTVFQTYiPjxzcGFuIGNsYXNzPSJjb21wb3Nlci1jb25maWctcGFydCBjb21wb3Nlci1jb25maWctbW9kZWwiIGRhdGEtbW9kZS1jb250cm9sLXBpbGw9Im1vZGVsIj4nK3ooImNwdSIse3NpemU6MTMsc3Ryb2tlV2lkdGg6MS44LGNsczoiY29tcG9zZXItY29uZmlnLWljb24ifSkrJzxzcGFuIGNsYXNzPSJjb21wb3Nlci1jb25maWctbGFiZWwiPicrcChzKSsnPC9zcGFuPjxzZWxlY3QgY2xhc3M9ImNvbXBvc2VyLXRleHQtaGlkZGVuLXNlbGVjdCIgZGF0YS1tb2RlLWNvbnRyb2w9Im1vZGVsIiB0YWJpbmRleD0iLTEiIGFyaWEtbGFiZWw9Ilx1NkEyMVx1NTc4QiI+JytydShpLGUpKyc8L3NlbGVjdD48L3NwYW4+PHNwYW4gY2xhc3M9ImNvbXBvc2VyLWNvbmZpZy1wYXJ0IGNvbXBvc2VyLWNvbmZpZy10aGlua2luZyIgZGF0YS1tb2RlLWNvbnRyb2wtcGlsbD0idGhpbmtpbmciIGRhdGEtdGhpbmtpbmc9IicrcChhKSsnIj4nK3ooImJyYWluIix7c2l6ZToxMyxzdHJva2VXaWR0aDoxLjgsY2xzOiJjb21wb3Nlci1jb25maWctaWNvbiJ9KSsnPHNwYW4gY2xhc3M9ImNvbXBvc2VyLWNvbmZpZy1sYWJlbCI+JytwKG8pKyc8L3NwYW4+PHNlbGVjdCBjbGFzcz0iY29tcG9zZXItdGV4dC1oaWRkZW4tc2VsZWN0IiBkYXRhLW1vZGUtY29udHJvbD0idGhpbmtpbmciIHRhYmluZGV4PSItMSIgYXJpYS1sYWJlbD0iXHU2MDFEXHU4MDAzXHU2REYxXHU1RUE2Ij4nK3NsKGEpKyI8L3NlbGVjdD48L3NwYW4+PC9zcGFuPjwvZGl2PiJ9ZnVuY3Rpb24gWG4oKXt2YXIgZT1ndCgpLHQ9dHQoKSxuPXIuY2hhdE1vZGV8fCJkZWZhdWx0IixpPUxpKGUpfHwiIixhPUlpKGksZSksdT1pdShlKSxzPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5jaGF0LW1vZGUtdHJpbyIpO3MuZm9yRWFjaChmdW5jdGlvbihvKXtmdW5jdGlvbiBsKGMsZixkLHYpe3ZhciBoPW8ucXVlcnlTZWxlY3RvcignW2RhdGEtbW9kZS1jb250cm9sLXBpbGw9IicrYysnIl0nKTtpZihoKXt2YXIgZz1oLnF1ZXJ5U2VsZWN0b3IoIi5jb21wb3Nlci10ZXh0LWxhYmVsIik7ZyYmKGcudGV4dENvbnRlbnQ9dnx8Zik7dmFyIG09aC5xdWVyeVNlbGVjdG9yKCdbZGF0YS1tb2RlLWNvbnRyb2w9IicrYysnIl0nKTttJiYoZCYmKG0uaW5uZXJIVE1MPWQpLG0udmFsdWUhPT1mJiYobS52YWx1ZT1mKSl9fWwoIm1vZGUiLG4sVGkodCxuKSksbCgibW9kZWwiLGksbGwoaSxlKSxhKSxsKCJ0aGlua2luZyIsdSxjbCh1KSl9KSxhbShlLG4sTGkoZSl8fCIiLHUpfWZ1bmN0aW9uIGFtKGUsdCxuLGkpe3ZhciBhPXR0KCksdT1ldSh0KSxzPUlpKG4sZSksbz11bChpKSxsPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5jb21wb3Nlci1jb25maWctY29udHJvbHMiKTtsLmZvckVhY2goZnVuY3Rpb24oYyl7dmFyIGY9Ilx1NkEyMVx1NUYwRiAiK3UrIiBceEI3IFx1NkEyMVx1NTc4QiAiK3MrIiBceEI3IFx1NjAxRFx1ODAwMyAiK287Yy5zZXRBdHRyaWJ1dGUoInRpdGxlIixmKTtmdW5jdGlvbiBkKEIsRix4KXt2YXIgUz1CLnF1ZXJ5U2VsZWN0b3IoIltkYXRhLW1vZGUtY29udHJvbF0iKTtTJiYoUy5pbm5lckhUTUw9eCxTLnZhbHVlPUYpfXZhciB2PWMucXVlcnlTZWxlY3RvcignW2RhdGEtbW9kZS1jb250cm9sLXBpbGw9Im1vZGUiXScpO2lmKHYpe3ZhciBoPXYucXVlcnlTZWxlY3RvcigiLmNvbXBvc2VyLWNvbmZpZy1sYWJlbCIpO2gmJihoLnRleHRDb250ZW50PXUpLHYuc2V0QXR0cmlidXRlKCJ0aXRsZSIsIlx1NkEyMVx1NUYwRlx1RkYxQSIrdSksZCh2LHQsVGkoYSx0KSl9dmFyIGc9Yy5xdWVyeVNlbGVjdG9yKCdbZGF0YS1tb2RlLWNvbnRyb2wtcGlsbD0ibW9kZWwiXScpO2lmKGcpe3ZhciBtPWcucXVlcnlTZWxlY3RvcigiLmNvbXBvc2VyLWNvbmZpZy1sYWJlbCIpO20mJihtLnRleHRDb250ZW50PXMpLGQoZyxuLHJ1KG4sZSkpfXZhciB5PWMucXVlcnlTZWxlY3RvcignW2RhdGEtbW9kZS1jb250cm9sLXBpbGw9InRoaW5raW5nIl0nKTtpZih5KXt2YXIgdz15LnF1ZXJ5U2VsZWN0b3IoIi5jb21wb3Nlci1jb25maWctbGFiZWwiKTt3JiYody50ZXh0Q29udGVudD1vKSx5LnNldEF0dHJpYnV0ZSgiZGF0YS10aGlua2luZyIsaSksZCh5LGksc2woaSkpfXZhciBFPWMucXVlcnlTZWxlY3RvcigiLmNvbXBvc2VyLWNvbmZpZy1tb2RlbC10aGlua2luZyIpO0UmJkUuc2V0QXR0cmlidXRlKCJkYXRhLXRoaW5raW5nIixpKX0pfWZ1bmN0aW9uIFRpKGUsdCl7cmV0dXJuIHR1KGUpLm1hcChmdW5jdGlvbihuKXtyZXR1cm4nPG9wdGlvbiB2YWx1ZT0iJytwKG4pKyciJysobj09PXQ/IiBzZWxlY3RlZCI6IiIpKyI+IitwKG4pKyI8L29wdGlvbj4ifSkuam9pbigiIil9ZnVuY3Rpb24gTGkoZSl7cmV0dXJuIGUmJmUuc2VsZWN0ZWRNb2RlbD9lLnNlbGVjdGVkTW9kZWw6ci5jaGF0TW9kZWw/ci5jaGF0TW9kZWw6ci5jb25maWcmJnIuY29uZmlnLmRlZmF1bHRNb2RlbD9yLmNvbmZpZy5kZWZhdWx0TW9kZWw6IiJ9ZnVuY3Rpb24gbnUoZSl7dmFyIHQ9ZSYmZS5wcm92aWRlcnx8ci5zZXNzaW9uVG9vbHx8ImNsYXVkZSI7cmV0dXJuIHQ9PT0iY29kZXgiP3IuYXZhaWxhYmxlQ29kZXhNb2RlbHN8fFtdOnIuYXZhaWxhYmxlTW9kZWxzfHxbXX1mdW5jdGlvbiBydShlLHQpe2Zvcih2YXIgbj1udSh0KSxpPWU9PT0iZGVmYXVsdCI/IiI6ZXx8IiIsYT0nPG9wdGlvbiB2YWx1ZT0iIicrKGk/IiI6IiBzZWxlY3RlZCIpKyI+XHU5RUQ4XHU4QkE0IFx4QjcgIitwKFNpKCIiLHQpKSsiPC9vcHRpb24+Iix1PTA7dTxuLmxlbmd0aDt1Kyspe3ZhciBzPW5bdV07aWYocy5pZCE9PSJkZWZhdWx0Iil7dmFyIG89cy5sYWJlbHx8cy5pZDthKz0nPG9wdGlvbiB2YWx1ZT0iJytwKHMuaWQpKyciJysocy5pZD09PWk/IiBzZWxlY3RlZCI6IiIpKyI+IitwKG8pKyI8L29wdGlvbj4ifX1yZXR1cm4gaSYmIW4uc29tZShmdW5jdGlvbihsKXtyZXR1cm4gbC5pZD09PWl9KSYmKGErPSc8b3B0aW9uIHZhbHVlPSInK3AoaSkrJyIgc2VsZWN0ZWQ+JytwKGkpKyJcdUZGMDhcdTgxRUFcdTVCOUFcdTRFNDlcdUZGMDk8L29wdGlvbj4iKSxhfWZ1bmN0aW9uIGxsKGUsdCl7Zm9yKHZhciBuPW51KHQpLGk9ZT09PSJkZWZhdWx0Ij8iIjplfHwiIixhPSc8b3B0aW9uIHZhbHVlPSIiJysoaT8iIjoiIHNlbGVjdGVkIikrIj4iK3AoU2koIiIsdCkpKyI8L29wdGlvbj4iLHU9MDt1PG4ubGVuZ3RoO3UrKyl7dmFyIHM9blt1XTtzLmlkIT09ImRlZmF1bHQiJiYoYSs9JzxvcHRpb24gdmFsdWU9IicrcChzLmlkKSsnIicrKHMuaWQ9PT1pPyIgc2VsZWN0ZWQiOiIiKSsiPiIrcChzLmlkKSsiPC9vcHRpb24+Iil9cmV0dXJuIGkmJiFuLnNvbWUoZnVuY3Rpb24obyl7cmV0dXJuIG8uaWQ9PT1pfSkmJihhKz0nPG9wdGlvbiB2YWx1ZT0iJytwKGkpKyciIHNlbGVjdGVkPicrcChpKSsiPC9vcHRpb24+IiksYX1mdW5jdGlvbiBabihlKXtYbigpfXZhciBXdD1be2lkOiJvZmYiLGxhYmVsOiJhdXRvIixoaW50OiJDbGF1ZGUgQ0xJOiBhdXRvL2RlZmF1bHQgXHhCNyBTREsgXHU1MTczXHU5NUVEIHRoaW5raW5nIFx4QjcgQ29kZXggbWluaW1hbCJ9LHtpZDoic3RhbmRhcmQiLGxhYmVsOiJsb3ciLGhpbnQ6IkNsYXVkZSBDTEk6IGxvdyBceEI3IFNESyBidWRnZXQgNDA5NiBceEI3IENvZGV4IGxvdyJ9LHtpZDoiZGVlcCIsbGFiZWw6Im1lZGl1bSIsaGludDoiQ2xhdWRlIENMSTogbWVkaXVtIFx4QjcgU0RLIGJ1ZGdldCAxNjAwMCBceEI3IENvZGV4IG1lZGl1bSJ9LHtpZDoibWF4IixsYWJlbDoibWF4IixoaW50OiJDbGF1ZGUgQ0xJOiBtYXggXHhCNyBTREsgYnVkZ2V0IDMxOTk5IFx4QjcgQ29kZXggeGhpZ2gifV07ZnVuY3Rpb24gdW0oZSl7Zm9yKHZhciB0PTA7dDxXdC5sZW5ndGg7dCsrKWlmKFd0W3RdLmlkPT09ZSlyZXR1cm4gV3RbdF0ubGFiZWw7cmV0dXJuIFd0WzBdLmxhYmVsfWZ1bmN0aW9uIGl1KGUpe3JldHVybiBlJiZlLnRoaW5raW5nRWZmb3J0P2UudGhpbmtpbmdFZmZvcnQ6ci5jaGF0VGhpbmtpbmc/ci5jaGF0VGhpbmtpbmc6Im9mZiJ9ZnVuY3Rpb24gdGgoZSl7Zm9yKHZhciB0PWV8fCJvZmYiLG49IiIsaT0wO2k8V3QubGVuZ3RoO2krKyl7dmFyIGE9V3RbaV07bis9JzxvcHRpb24gdmFsdWU9IicrcChhLmlkKSsnIicrKGEuaWQ9PT10PyIgc2VsZWN0ZWQiOiIiKSsnIHRpdGxlPSInK3AoYS5oaW50KSsnIj4nK3AoYS5sYWJlbCkrIjwvb3B0aW9uPiJ9cmV0dXJuIG59ZnVuY3Rpb24gY2woZSl7Zm9yKHZhciB0PWV8fCJvZmYiLG49IiIsaT0wO2k8V3QubGVuZ3RoO2krKyl7dmFyIGE9V3RbaV07bis9JzxvcHRpb24gdmFsdWU9IicrcChhLmlkKSsnIicrKGEuaWQ9PT10PyIgc2VsZWN0ZWQiOiIiKSsiPiIrcChhLmlkKSsiPC9vcHRpb24+In1yZXR1cm4gbn1mdW5jdGlvbiBuaChlKXtYbigpfWZ1bmN0aW9uIHNtKGUpe3ZhciB0PShlfHwib2ZmIikudHJpbSgpO3QhPT0ib2ZmIiYmdCE9PSJzdGFuZGFyZCImJnQhPT0iZGVlcCImJnQhPT0ibWF4IiYmKHQ9Im9mZiIpLHIuY2hhdFRoaW5raW5nPXQ7dHJ5e2xvY2FsU3RvcmFnZS5zZXRJdGVtKCJ3YW5kLXRoaW5raW5nLWVmZm9ydCIsdCl9Y2F0Y2h7fVhuKCk7dmFyIG49Z3QoKTtuJiZmZXRjaCgiL2FwaS9zZXNzaW9ucy8iK2VuY29kZVVSSUNvbXBvbmVudChuLmlkKSsiL3RoaW5raW5nLWVmZm9ydCIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkoe3RoaW5raW5nRWZmb3J0OnR9KX0pLnRoZW4oZnVuY3Rpb24oaSl7cmV0dXJuIGkuanNvbigpfSkudGhlbihmdW5jdGlvbihpKXtpZihpJiZpLmVycm9yKXtrKGkuZXJyb3IsImVycm9yIik7cmV0dXJufWkmJmkuaWQmJigkKGkpLHR5cGVvZiBrPT0iZnVuY3Rpb24iJiZrKCJcdTVERjJcdTUyMDdcdTYzNjJcdTYwMURcdTgwMDNcdTZERjFcdTVFQTYgXHUyMTkyICIrdW0odCksInN1Y2Nlc3MiKSl9KS5jYXRjaChmdW5jdGlvbigpe2soIlx1NTIwN1x1NjM2Mlx1NjAxRFx1ODAwM1x1NkRGMVx1NUVBNlx1NTkzMVx1OEQyNSIsImVycm9yIil9KX1mdW5jdGlvbiBkbChlKXtpZighZSlyZXR1cm4hMTt2YXIgdD1lLm1vZGU7cmV0dXJuIHQ9PT0ibWFuYWdlZCJ8fHQ9PT0iZnVsbC1hY2Nlc3MifWZ1bmN0aW9uIG9tKGUpe2lmKCFlfHxkbChlKSlyZXR1cm4iIjt2YXIgdD0hIWUuYXV0b0FwcHJvdmVQZXJtaXNzaW9ucztyZXR1cm4gdD8nPGJ1dHRvbiBpZD0iYXV0by1hcHByb3ZlLXRvZ2dsZSIgY2xhc3M9ImNvbXBvc2VyLXBpbGwgY29tcG9zZXItcGlsbC1jaGlwIGF1dG8tYXBwcm92ZS1pbmRpY2F0b3IgYWN0aXZlIiB0eXBlPSJidXR0b24iIGFyaWEtcHJlc3NlZD0idHJ1ZSIgYXJpYS1sYWJlbD0iXHU4MUVBXHU1MkE4XHU2Mjc5XHU1MUM2XHU1REYyXHU1NDJGXHU3NTI4XHVGRjBDXHU3MEI5XHU1MUZCXHU1MTczXHU5NUVEIiB0aXRsZT0iXHU4MUVBXHU1MkE4XHU2Mjc5XHU1MUM2XHU1REYyXHU1NDJGXHU3NTI4IFx1MjAxNCBcdTcwQjlcdTUxRkJcdTUxNzNcdTk1RUQiPicreigic2hpZWxkQ2hlY2siLHtzaXplOjEyLHN0cm9rZVdpZHRoOjEuNyxjbHM6ImNvbXBvc2VyLXBpbGwtaWNvbiJ9KSsnPHNwYW4gY2xhc3M9ImNvbXBvc2VyLXBpbGwtbGFiZWwiPlx1ODFFQVx1NTJBODwvc3Bhbj48L2J1dHRvbj4nOic8YnV0dG9uIGlkPSJhdXRvLWFwcHJvdmUtdG9nZ2xlIiBjbGFzcz0iY29tcG9zZXItcGlsbCBjb21wb3Nlci1waWxsLWNoaXAgYXV0by1hcHByb3ZlLWluZGljYXRvciIgdHlwZT0iYnV0dG9uIiBhcmlhLXByZXNzZWQ9ImZhbHNlIiBhcmlhLWxhYmVsPSJcdTgxRUFcdTUyQThcdTYyNzlcdTUxQzZcdTVERjJcdTUxNzNcdTk1RURcdUZGMENcdTcwQjlcdTUxRkJcdTVGMDBcdTU0MkYiIHRpdGxlPSJcdTgxRUFcdTUyQThcdTYyNzlcdTUxQzZcdTVERjJcdTUxNzNcdTk1RUQgXHUyMDE0IFx1NzBCOVx1NTFGQlx1NUYwMFx1NTQyRiI+Jyt6KCJzaGllbGQiLHtzaXplOjEyLHN0cm9rZVdpZHRoOjEuNyxjbHM6ImNvbXBvc2VyLXBpbGwtaWNvbiJ9KSsnPHNwYW4gY2xhc3M9ImNvbXBvc2VyLXBpbGwtbGFiZWwiPlx1NjI0Qlx1NTJBODwvc3Bhbj48L2J1dHRvbj4nfWZ1bmN0aW9uIGZsKCl7cmV0dXJuIGZldGNoKCIvYXBpL21vZGVscyIse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBlLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIGUmJkFycmF5LmlzQXJyYXkoZS5tb2RlbHMpJiYoci5hdmFpbGFibGVNb2RlbHM9ZS5tb2RlbHMsci5hdmFpbGFibGVDb2RleE1vZGVscz1BcnJheS5pc0FycmF5KGUuY29kZXhNb2RlbHMpP2UuY29kZXhNb2RlbHM6W10sWm4oZ3QoKSksTWkoZSkpLGV9KS5jYXRjaChmdW5jdGlvbigpe3JldHVybiBudWxsfSl9ZnVuY3Rpb24gbG0oKXtpZihyLm1vZGVsc1JlZnJlc2hpbmcpcmV0dXJuIFByb21pc2UucmVzb2x2ZShudWxsKTtyLm1vZGVsc1JlZnJlc2hpbmc9ITA7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1kZWZhdWx0LW1vZGVsLXJlZnJlc2giKTtyZXR1cm4gZSYmKGUuZGlzYWJsZWQ9ITAsZS50ZXh0Q29udGVudD0iXHU1MjM3XHU2NUIwXHU0RTJELi4uIiksZmV0Y2goIi9hcGkvbW9kZWxzL3JlZnJlc2giLHttZXRob2Q6IlBPU1QiLGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiB0Lmpzb24oKX0pLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIHQmJkFycmF5LmlzQXJyYXkodC5tb2RlbHMpJiYoci5hdmFpbGFibGVNb2RlbHM9dC5tb2RlbHMsci5hdmFpbGFibGVDb2RleE1vZGVscz1BcnJheS5pc0FycmF5KHQuY29kZXhNb2RlbHMpP3QuY29kZXhNb2RlbHM6W10sWm4oZ3QoKSksTWkodCksdHlwZW9mIGs9PSJmdW5jdGlvbiImJmsoIlx1NkEyMVx1NTc4Qlx1NTIxN1x1ODg2OFx1NURGMlx1NTIzN1x1NjVCMCIrKHQuY2xhdWRlVmVyc2lvbj8iXHVGRjA4Y2xhdWRlICIrdC5jbGF1ZGVWZXJzaW9uKyJcdUZGMDkiOiIiKSwic3VjY2VzcyIpKSx0fSkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm4gdHlwZW9mIGs9PSJmdW5jdGlvbiImJmsoIlx1NTIzN1x1NjVCMFx1NkEyMVx1NTc4Qlx1NTIxN1x1ODg2OFx1NTkzMVx1OEQyNSIsImVycm9yIiksbnVsbH0pLmZpbmFsbHkoZnVuY3Rpb24oKXtyLm1vZGVsc1JlZnJlc2hpbmc9ITEsZSYmKGUuZGlzYWJsZWQ9ITEsZS50ZXh0Q29udGVudD0iXHU1MjM3XHU2NUIwIil9KX1mdW5jdGlvbiBjbSgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlbnYtcHJldmlldy1tb2RhbCIpO2lmKCFlKXtlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNlY3Rpb24iKSxlLmlkPSJlbnYtcHJldmlldy1tb2RhbCIsZS5jbGFzc05hbWU9Im1vZGFsLWJhY2tkcm9wIGhpZGRlbiIsZS5pbm5lckhUTUw9JzxkaXYgY2xhc3M9Im1vZGFsIGVudi1wcmV2aWV3LW1vZGFsIiByb2xlPSJkaWFsb2ciIGFyaWEtbGFiZWxsZWRieT0iZW52LXByZXZpZXctdGl0bGUiIGFyaWEtbW9kYWw9InRydWUiPjxkaXYgY2xhc3M9Im1vZGFsLWhlYWRlciI+PGRpdj48aDIgY2xhc3M9Im1vZGFsLXRpdGxlIiBpZD0iZW52LXByZXZpZXctdGl0bGUiPlx1NUMwNlx1NkNFOFx1NTE2NVx1NUI1MFx1OEZEQlx1N0EwQlx1NzY4NFx1NzNBRlx1NTg4M1x1NTNEOFx1OTFDRjwvaDI+PHAgY2xhc3M9Im1vZGFsLXN1YnRpdGxlIiBpZD0iZW52LXByZXZpZXctc3VidGl0bGUiPlx1OEZEOVx1NEU5Qlx1NTNEOFx1OTFDRlx1NEYxQVx1ODhBQlx1NEYyMFx1N0VEOSBjbGF1ZGUgLyBjb2RleFx1RkYwOFBUWSBcdTRFMEVcdTdFRDNcdTY3ODRcdTUzMTZcdThGRDBcdTg4NENcdTU2NjhcdTRFMDBcdTgxRjRcdUZGMDlcdTMwMDI8L3A+PC9kaXY+PGJ1dHRvbiBpZD0iZW52LXByZXZpZXctY2xvc2UiIGNsYXNzPSJidG4gYnRuLWdob3N0IGJ0bi1pY29uIG1vZGFsLWNsb3NlLWJ0biIgdHlwZT0iYnV0dG9uIiBhcmlhLWxhYmVsPSJcdTUxNzNcdTk1RUQiPjxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIuNCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PGxpbmUgeDE9IjYiIHkxPSI2IiB4Mj0iMTgiIHkyPSIxOCIvPjxsaW5lIHgxPSIxOCIgeTE9IjYiIHgyPSI2IiB5Mj0iMTgiLz48L3N2Zz48L2J1dHRvbj48L2Rpdj48ZGl2IGNsYXNzPSJtb2RhbC1ib2R5IGVudi1wcmV2aWV3LWJvZHkiPjxkaXYgY2xhc3M9ImVudi1wcmV2aWV3LXRvb2xiYXIiPjxkaXYgY2xhc3M9ImVudi1wcmV2aWV3LW1ldGEiIGlkPSJlbnYtcHJldmlldy1tZXRhIj5cdTUyQTBcdThGN0RcdTRFMkRcdTIwMjY8L2Rpdj48ZGl2IGNsYXNzPSJlbnYtcHJldmlldy1jb250cm9scyI+PGlucHV0IGlkPSJlbnYtcHJldmlldy1zZWFyY2giIGNsYXNzPSJlbnYtcHJldmlldy1zZWFyY2giIHR5cGU9InNlYXJjaCIgcGxhY2Vob2xkZXI9Ilx1NjQxQ1x1N0QyMlx1NTNEOFx1OTFDRlx1NTQwRFx1MjAyNiIgLz48bGFiZWwgY2xhc3M9ImVudi1wcmV2aWV3LXJldmVhbCI+PGlucHV0IGlkPSJlbnYtcHJldmlldy1yZXZlYWwtdG9nZ2xlIiB0eXBlPSJjaGVja2JveCIgLz48c3Bhbj5cdTY2M0VcdTc5M0FcdTY1NEZcdTYxMUZcdTUwM0M8L3NwYW4+PC9sYWJlbD48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJlbnYtcHJldmlldy1saXN0IiBpZD0iZW52LXByZXZpZXctbGlzdCIgdGFiaW5kZXg9IjAiPjxkaXYgY2xhc3M9ImVudi1wcmV2aWV3LWxvYWRpbmciPlx1NTJBMFx1OEY3RFx1NEUyRFx1MjAyNjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9Im1vZGFsLWZvb3RlciBlbnYtcHJldmlldy1mb290ZXIiPjxzcGFuIGNsYXNzPSJlbnYtcHJldmlldy1oaW50Ij5cdTY1NEZcdTYxMUZcdTVCNTdcdTZCQjVcdUZGMDhcdTU0MkIgS0VZL1RPS0VOL1NFQ1JFVCBcdTdCNDlcdUZGMDlcdTlFRDhcdThCQTRcdTYzQTlcdTc4MDFcdUZGMENcdTUzRUZcdTUyRkVcdTkwMDlcdTMwMENcdTY2M0VcdTc5M0FcdTY1NEZcdTYxMUZcdTUwM0NcdTMwMERcdTRFMzRcdTY1RjZcdThGRDhcdTUzOUZcdTMwMDI8L3NwYW4+PGJ1dHRvbiBpZD0iZW52LXByZXZpZXctY2xvc2UtMiIgY2xhc3M9ImJ0biBidG4tc2Vjb25kYXJ5IGJ0bi1zbSIgdHlwZT0iYnV0dG9uIj5cdTUxNzNcdTk1RUQ8L2J1dHRvbj48L2Rpdj48L2Rpdj4nLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZSksZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24obyl7by50YXJnZXQ9PT1lJiZhdSgpfSk7dmFyIHQ9ZS5xdWVyeVNlbGVjdG9yKCIjZW52LXByZXZpZXctY2xvc2UiKTt0JiZ0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixhdSk7dmFyIG49ZS5xdWVyeVNlbGVjdG9yKCIjZW52LXByZXZpZXctY2xvc2UtMiIpO24mJm4uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGF1KTt2YXIgYT1lLnF1ZXJ5U2VsZWN0b3IoIiNlbnYtcHJldmlldy1zZWFyY2giKTthJiZhLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IixmdW5jdGlvbigpe3ZsKCl9KTt2YXIgaT1lLnF1ZXJ5U2VsZWN0b3IoIiNlbnYtcHJldmlldy1yZXZlYWwtdG9nZ2xlIik7aSYmaS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7cGwoaS5jaGVja2VkKX0pfWUuY2xhc3NMaXN0LnJlbW92ZSgiY2xvc2luZyIpLGUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIik7dmFyIGk9ZS5xdWVyeVNlbGVjdG9yKCIjZW52LXByZXZpZXctcmV2ZWFsLXRvZ2dsZSIpO2kmJihpLmNoZWNrZWQ9ITEpO3ZhciBhPWUucXVlcnlTZWxlY3RvcigiI2Vudi1wcmV2aWV3LXNlYXJjaCIpO2EmJihhLnZhbHVlPSIiKSxwbCghMSl9ZnVuY3Rpb24gYXUoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZW52LXByZXZpZXctbW9kYWwiKTtlJiZjdShlKX1mdW5jdGlvbiBwbChlKXt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZW52LXByZXZpZXctbGlzdCIpLG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVudi1wcmV2aWV3LW1ldGEiKTt0JiYodC5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImVudi1wcmV2aWV3LWxvYWRpbmciPlx1NTJBMFx1OEY3RFx1NEUyRFx1MjAyNjwvZGl2PicpLG4mJihuLnRleHRDb250ZW50PSJcdTUyQTBcdThGN0RcdTRFMkRcdTIwMjYiKTt2YXIgaT0iL2FwaS9zZXR0aW5ncy9lbnYtcHJldmlldyIrKGU/Ij9yZXZlYWw9MSI6IiIpO2ZldGNoKGkse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKGEpe3JldHVybiBhLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24oYSl7aWYoIWF8fCFBcnJheS5pc0FycmF5KGEuZW50cmllcykpe3QmJih0LmlubmVySFRNTD0nPGRpdiBjbGFzcz0iZW52LXByZXZpZXctZW1wdHkiPlx1OEJGQlx1NTNENlx1NTkzMVx1OEQyNVx1MzAwMjwvZGl2PicpLG4mJihuLnRleHRDb250ZW50PSJcdThCRkJcdTUzRDZcdTU5MzFcdThEMjUiKTtyZXR1cm59aWYoci5fZW52UHJldmlldz1hLG4pe3ZhciB1PWEuaW5oZXJpdEVudj8iXHU3RUU3XHU2MjdGXHU3MjM2XHU4RkRCXHU3QTBCIjoiXHU2NzAwXHU1QzBGXHU3NjdEXHU1NDBEXHU1MzU1IjtuLmlubmVySFRNTD0nPHNwYW4gY2xhc3M9ImVudi1wcmV2aWV3LXBpbGwgJysoYS5pbmhlcml0RW52PyJpcy1pbmhlcml0IjoiaXMtbWluaW1hbCIpKyciPicrdSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJlbnYtcHJldmlldy1jb3VudCI+XHU1MTcxICcrYS50b3RhbCsiIFx1OTg3OTwvc3Bhbj4ifXZsKCl9KS5jYXRjaChmdW5jdGlvbigpe3QmJih0LmlubmVySFRNTD0nPGRpdiBjbGFzcz0iZW52LXByZXZpZXctZW1wdHkiPlx1OEJGQlx1NTNENlx1NTkzMVx1OEQyNVx1RkYwQ1x1OEJGN1x1N0EwRFx1NTQwRVx1OTFDRFx1OEJENVx1MzAwMjwvZGl2PicpLG4mJihuLnRleHRDb250ZW50PSJcdThCRkJcdTUzRDZcdTU5MzFcdThEMjUiKX0pfWZ1bmN0aW9uIHZsKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVudi1wcmV2aWV3LWxpc3QiKTtpZihlKXt2YXIgdD1yLl9lbnZQcmV2aWV3O2lmKCF0fHwhQXJyYXkuaXNBcnJheSh0LmVudHJpZXMpKXtlLmlubmVySFRNTD0nPGRpdiBjbGFzcz0iZW52LXByZXZpZXctZW1wdHkiPlx1NUMxQVx1NjcyQVx1NTJBMFx1OEY3RFx1MzAwMjwvZGl2Pic7cmV0dXJufWZvcih2YXIgbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZW52LXByZXZpZXctc2VhcmNoIiksaT0obiYmbi52YWx1ZXx8IiIpLnRyaW0oKS50b0xvd2VyQ2FzZSgpLGE9IiIsdT0wLHM9MDtzPHQuZW50cmllcy5sZW5ndGg7cysrKXt2YXIgbz10LmVudHJpZXNbc107aWYoIShpJiZvLm5hbWUudG9Mb3dlckNhc2UoKS5pbmRleE9mKGkpPT09LTEpKXt1Kys7dmFyIGw9dHlwZW9mIG8udmFsdWU9PSJzdHJpbmciJiZvLnZhbHVlLmNoYXJBdCgwKT09PSI8IiYmby52YWx1ZS5jaGFyQXQoby52YWx1ZS5sZW5ndGgtMSk9PT0iPiI7YSs9JzxkaXYgY2xhc3M9ImVudi1wcmV2aWV3LXJvdycrKG8uc2Vuc2l0aXZlPyIgaXMtc2Vuc2l0aXZlIjoiIikrJyI+PGRpdiBjbGFzcz0iZW52LXByZXZpZXctbmFtZSI+JytwKG8ubmFtZSkrKG8uc2Vuc2l0aXZlPyc8c3BhbiBjbGFzcz0iZW52LXByZXZpZXctYmFkZ2UiIHRpdGxlPSJcdTg4QUJcdThCQzZcdTUyMkJcdTRFM0FcdTY1NEZcdTYxMUZcdTVCNTdcdTZCQjUiPlx1NjU0Rlx1NjExRjwvc3Bhbj4nOiIiKSsobD8nPHNwYW4gY2xhc3M9ImVudi1wcmV2aWV3LWJhZGdlIGVudi1wcmV2aWV3LWJhZGdlLXJ1bnRpbWUiIHRpdGxlPSJcdTYzMDlcdTRGMUFcdThCRERcdTUyQThcdTYwMDFcdTZDRThcdTUxNjUiPlx1OEZEMFx1ODg0Q1x1NjVGNjwvc3Bhbj4nOiIiKSsnPC9kaXY+PGRpdiBjbGFzcz0iZW52LXByZXZpZXctdmFsdWUnKyhsPyIgaXMtcnVudGltZSI6IiIpKyciIHRpdGxlPSInK3AoU3RyaW5nKG8udmFsdWUpKSsnIj4nK3AoU3RyaW5nKG8udmFsdWUpKSsnPC9kaXY+PGRpdiBjbGFzcz0iZW52LXByZXZpZXctbGVuIj4nK28ubGVuZ3RoKyIgXHU1QjU3XHU3QjI2PC9kaXY+PC9kaXY+In19dT09PTAmJihhPSc8ZGl2IGNsYXNzPSJlbnYtcHJldmlldy1lbXB0eSI+XHU2Q0ExXHU2NzA5XHU1MzM5XHU5MTREXHU3Njg0XHU1M0Q4XHU5MUNGXHUzMDAyPC9kaXY+JyksZS5pbm5lckhUTUw9YX19ZnVuY3Rpb24gTWkoZSl7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1kZWZhdWx0LW1vZGVsIik7aWYodCl7dmFyIG49dC52YWx1ZSxpPW58fHIuY29uZmlnRGVmYXVsdE1vZGVsfHxyLmNvbmZpZyYmci5jb25maWcuZGVmYXVsdE1vZGVsfHwiIjt0LmlubmVySFRNTD1ydShpLHtwcm92aWRlcjoiY2xhdWRlIn0pLHQudmFsdWU9aTt2YXIgYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWRlZmF1bHQtbW9kZWwtdmVyc2lvbiIpO2EmJmUmJihhLnRleHRDb250ZW50PWUuY2xhdWRlVmVyc2lvbj8iXHU1REYyXHU2OEMwXHU2RDRCXHU1MjMwIGNsYXVkZSAiK2UuY2xhdWRlVmVyc2lvbjoiXHU2NUIwXHU1RUZBXHU0RjFBXHU4QkREXHU2NUY2XHU5RUQ4XHU4QkE0XHU0RjdGXHU3NTI4XHU4QkU1XHU2QTIxXHU1NzhCXHUzMDAyIil9fWZ1bmN0aW9uIGd0KCl7aWYoIXIuc2VsZWN0ZWRJZClyZXR1cm4gbnVsbDtmb3IodmFyIGU9MDtlPHIuc2Vzc2lvbnMubGVuZ3RoO2UrKylpZihyLnNlc3Npb25zW2VdLmlkPT09ci5zZWxlY3RlZElkKXJldHVybiByLnNlc3Npb25zW2VdO3JldHVybiBudWxsfWZ1bmN0aW9uIGRtKGUpe3ZhciB0PShlfHwiIikudHJpbSgpO3IuY2hhdE1vZGVsPXQ7dHJ5e2xvY2FsU3RvcmFnZS5zZXRJdGVtKCJ3YW5kLWNoYXQtbW9kZWwiLHQpfWNhdGNoe31YbigpO3ZhciBuPWd0KCk7biYmZmV0Y2goIi9hcGkvc2Vzc2lvbnMvIitlbmNvZGVVUklDb21wb25lbnQobi5pZCkrIi9tb2RlbCIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkoe21vZGVsOnR8fG51bGx9KX0pLnRoZW4oZnVuY3Rpb24oaSl7cmV0dXJuIGkuanNvbigpfSkudGhlbihmdW5jdGlvbihpKXtpZihpJiZpLmVycm9yKXtrKGkuZXJyb3IsImVycm9yIik7cmV0dXJufWlmKGkmJmkuaWQmJigkKGkpLHR5cGVvZiBrPT0iZnVuY3Rpb24iKSl7dmFyIGE9U2kodCxuKSx1PW4ucHJvdmlkZXI9PT0iY29kZXgiPyJcdUZGMDhcdTRFMEJcdTZCMjFcdTVCRjlcdThCRERcdTc1MUZcdTY1NDhcdUZGMDkiOiIiO2soIlx1NURGMlx1NTIwN1x1NjM2Mlx1NkEyMVx1NTc4QiBcdTIxOTIgIithK3UsInN1Y2Nlc3MiKX19KS5jYXRjaChmdW5jdGlvbigpe2soIlx1NTIwN1x1NjM2Mlx1NkEyMVx1NTc4Qlx1NTkzMVx1OEQyNSIsImVycm9yIil9KX1mdW5jdGlvbiBmbShlKXt2YXIgdD1JdCh0dCgpLChlfHwiZGVmYXVsdCIpLnRyaW0oKSk7ci5jaGF0TW9kZT10LFhuKCk7dmFyIG49Z3QoKTtpZighbnx8IW4uaWR8fG4uc2Vzc2lvbktpbmQhPT0ic3RydWN0dXJlZCIpe2smJmsoIlx1NjVCMFx1NEYxQVx1OEJERFx1NkEyMVx1NUYwRlx1RkYxQSIrdCwiaW5mbyIpO3JldHVybn1mZXRjaCgiL2FwaS9zZXNzaW9ucy8iK2VuY29kZVVSSUNvbXBvbmVudChuLmlkKSsiL21vZGUiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KHttb2RlOnR9KX0pLnRoZW4oZnVuY3Rpb24oaSl7cmV0dXJuIGkuanNvbigpfSkudGhlbihmdW5jdGlvbihpKXtpZihpJiZpLmVycm9yKXtrKGkuZXJyb3IsImVycm9yIik7cmV0dXJufWlmKGkmJmkuaWQmJigkKGkpLHR5cGVvZiBrPT0iZnVuY3Rpb24iKSl7dmFyIGE9bi5wcm92aWRlcj09PSJjb2RleCI/Ilx1RkYwOENvZGV4IFx1NTZGQVx1NUI5QVx1NTE2OFx1Njc0M1x1OTY1MFx1RkYwOSI6IiI7aygiXHU1REYyXHU1MjA3XHU2MzYyXHU2QTIxXHU1RjBGIFx1MjE5MiAiK3QrYSwic3VjY2VzcyIpfX0pLmNhdGNoKGZ1bmN0aW9uKCl7aygiXHU1MjA3XHU2MzYyXHU2QTIxXHU1RjBGXHU1OTMxXHU4RDI1IiwiZXJyb3IiKX0pfWZ1bmN0aW9uIG1sKGUsdCxuLGkpe3ZhciBhPXIuc2Vzc2lvblRvb2w9PT0iY29kZXgiPyJjb2RleCI6ImNsYXVkZSIsdT1yLmNoYXRNb2RlbHx8ci5jb25maWcmJnIuY29uZmlnLmRlZmF1bHRNb2RlbHx8IiIscz1yLmNoYXRUaGlua2luZ3x8Im9mZiIsbz17Y3dkOnR8fGV0KCksbW9kZTpufHxyLmNoYXRNb2RlfHxyLmNvbmZpZyYmci5jb25maWcuZGVmYXVsdE1vZGV8fCJkZWZhdWx0Iixwcm92aWRlcjphLHJ1bm5lcjphPT09ImNvZGV4Ij8iY29kZXgtY2xpLWV4ZWMiOnIuY29uZmlnJiZyLmNvbmZpZy5zdHJ1Y3R1cmVkUnVubmVyPT09InNkayI/ImNsYXVkZS1zZGsiOnIuc3RydWN0dXJlZFJ1bm5lcnx8ImNsYXVkZS1jbGktcHJpbnQiLHByb21wdDplfHx2b2lkIDAsd29ya3RyZWVFbmFibGVkOmk9PT0hMCxtb2RlbDp1fHx2b2lkIDAsdGhpbmtpbmdFZmZvcnQ6c307cmV0dXJuIGZldGNoKCIvYXBpL3N0cnVjdHVyZWQtc2Vzc2lvbnMiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KG8pfSkudGhlbihmdW5jdGlvbihsKXtyZXR1cm4gbC5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKGwpe2lmKGwuZXJyb3IpdGhyb3cgbmV3IEVycm9yKGwuZXJyb3IpO3JldHVybiByLnNlbGVjdGVkSWQ9bC5pZCx3ZSgpLHIuZHJhZnRzW2wuaWRdPSIiLEF0KCksJChsKSxtZSgpLERyKGwuaWQpLHFuKGwuaWQpLGhuKGwuaWQpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gbH0pfSl9ZnVuY3Rpb24gcWkoKXt2YXIgZT0hIXIuc2VsZWN0ZWRJZCx0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKSxuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGF0LW91dHB1dCIpLGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJsYW5rLWNoYXQiKSxhPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihsKXtyZXR1cm4gbC5pZD09PXIuc2VsZWN0ZWRJZH0pLHU9dWUoYSkscz1lJiYhdSYmci5jdXJyZW50Vmlldz09PSJ0ZXJtaW5hbCIsbz1lJiYodXx8ci5jdXJyZW50VmlldyE9PSJ0ZXJtaW5hbCIpO3U/ci5jdXJyZW50Vmlldz0iY2hhdCI6ZXx8KHIuY3VycmVudFZpZXc9InRlcm1pbmFsIiksdCYmKHQuY2xhc3NMaXN0LnRvZ2dsZSgiYWN0aXZlIixzKSx0LmNsYXNzTGlzdC50b2dnbGUoImhpZGRlbiIsIXMpKSxuJiYobi5jbGFzc0xpc3QudG9nZ2xlKCJhY3RpdmUiLG8pLG4uY2xhc3NMaXN0LnRvZ2dsZSgiaGlkZGVuIiwhbykpLGkmJmkuY2xhc3NMaXN0LnRvZ2dsZSgiaGlkZGVuIixlKSxuJiZvJiZqYShuKSxzcigpLCRlKCksa3IoKX1mdW5jdGlvbiBUcigpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtb2RlLWRlc2NyaXB0aW9uIiksdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2Vzc2lvbi1raW5kLWRlc2NyaXB0aW9uIiksbj1yLnNlc3Npb25Ub29sfHwiY2xhdWRlIixpPXIuc2Vzc2lvbkNyZWF0ZUtpbmR8fCJzdHJ1Y3R1cmVkIjtyLnNlc3Npb25Ub29sPW4sci5tb2RlVmFsdWU9SXQobixyLm1vZGVWYWx1ZXx8ci5jaGF0TW9kZXx8ImRlZmF1bHQiKTt2YXIgYT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjcHJvdmlkZXItY2FyZHMgLnByb3ZpZGVyLWNhcmQiKTthLmxlbmd0aCYmYS5mb3JFYWNoKGZ1bmN0aW9uKG8pe3ZhciBsPW8uZ2V0QXR0cmlidXRlKCJkYXRhLXByb3ZpZGVyIik7by5jbGFzc0xpc3QudG9nZ2xlKCJhY3RpdmUiLGw9PT1uKSxvLmNsYXNzTGlzdC5yZW1vdmUoImRpc2FibGVkIil9KTt2YXIgdT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjc2Vzc2lvbi1raW5kLWNhcmRzIC5zZXNzaW9uLWtpbmQtY2FyZCIpO3UubGVuZ3RoJiZ1LmZvckVhY2goZnVuY3Rpb24obyl7dmFyIGw9by5nZXRBdHRyaWJ1dGUoImRhdGEtc2Vzc2lvbi1raW5kIiksYz0hMTtvLmNsYXNzTGlzdC50b2dnbGUoImFjdGl2ZSIsbD09PWkpLG8uY2xhc3NMaXN0LnRvZ2dsZSgiZGlzYWJsZWQiLGMpfSk7dmFyIHM9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI21vZGUtY2FyZHMgLm1vZGUtY2FyZCIpO3MubGVuZ3RoJiZzLmZvckVhY2goZnVuY3Rpb24obyl7by5jbGFzc0xpc3QudG9nZ2xlKCJhY3RpdmUiLG8uZ2V0QXR0cmlidXRlKCJkYXRhLW1vZGUiKT09PXIubW9kZVZhbHVlKX0pLHQmJih0LnRleHRDb250ZW50PWxzKGkpKSxlJiYoZS50ZXh0Q29udGVudD10bChuLHIubW9kZVZhbHVlKSl9ZnVuY3Rpb24gcG0oZSx0LG4saSl7dmFyIGE9bnx8MCx1PXR5cGVvZiBpPT0ibnVtYmVyIj9pOk1hdGgubWF4KGErdC5sZW5ndGgsdC5sZW5ndGgpLHM9ZSYmQXJyYXkuaXNBcnJheShlLm1lc3NhZ2VzKT9lLm1lc3NhZ2VzOltdLG89ZSYmdHlwZW9mIGUubWVzc2FnZU9mZnNldD09Im51bWJlciI/ZS5tZXNzYWdlT2Zmc2V0OjA7aWYodC5sZW5ndGg9PT0wJiZzLmxlbmd0aD4wJiZ1PT09MClyZXR1cm57bWVzc2FnZXM6cyxtZXNzYWdlT2Zmc2V0Om8sbWVzc2FnZVRvdGFsOmUmJmUubWVzc2FnZVRvdGFsfHxzLmxlbmd0aH07aWYocy5sZW5ndGg9PT0wKXJldHVybnttZXNzYWdlczp0LG1lc3NhZ2VPZmZzZXQ6YSxtZXNzYWdlVG90YWw6dX07aWYobzw9YSl7dmFyIGw9TWF0aC5taW4oTWF0aC5tYXgoYS1vLDApLHMubGVuZ3RoKSxjPXMuc2xpY2UoMCxsKS5jb25jYXQodCk7cmV0dXJue21lc3NhZ2VzOmMsbWVzc2FnZU9mZnNldDpvLG1lc3NhZ2VUb3RhbDpNYXRoLm1heCh1LG8rYy5sZW5ndGgpfX1yZXR1cm57bWVzc2FnZXM6dCxtZXNzYWdlT2Zmc2V0OmEsbWVzc2FnZVRvdGFsOnV9fWZ1bmN0aW9uICQoZSl7aWYoISghZXx8IWUuaWQpKXt2YXIgdD1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24obyl7cmV0dXJuIG8uaWQ9PT1lLmlkfSl8fG51bGwsbj1yYyhlLHQpO2lmKEFycmF5LmlzQXJyYXkobi5tZXNzYWdlcykmJnR5cGVvZiBuLm1lc3NhZ2VPZmZzZXQ9PSJudW1iZXIiKXt2YXIgaT1wbSh0LG4ubWVzc2FnZXMsbi5tZXNzYWdlT2Zmc2V0LG4ubWVzc2FnZVRvdGFsKTtuLm1lc3NhZ2VzPWkubWVzc2FnZXMsbi5tZXNzYWdlT2Zmc2V0PWkubWVzc2FnZU9mZnNldCxuLm1lc3NhZ2VUb3RhbD1pLm1lc3NhZ2VUb3RhbH12YXIgYT0hMSx1PW51bGw7ci5zZXNzaW9ucz1yLnNlc3Npb25zLm1hcChmdW5jdGlvbihvKXtyZXR1cm4gby5pZCE9PW4uaWQ/bzoodT1vLGE9ITAsT2JqZWN0LmFzc2lnbih7fSxvLG4pKX0pLGF8fHIuc2Vzc2lvbnMudW5zaGlmdChuKTt2YXIgcz1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24obyl7cmV0dXJuIG8uaWQ9PT1uLmlkfSl8fG47cyYmQXJyYXkuaXNBcnJheShzLnF1ZXVlZE1lc3NhZ2VzKSYmbi5pZD09PXIuc2VsZWN0ZWRJZCYmKEpyKHMpLEl1KCksZm4oKSksbi5pZD09PXIuc2VsZWN0ZWRJZCYmKExhKCksWnQoKSksbi5zdGF0dXMmJm4uc3RhdHVzIT09InJ1bm5pbmciJiZyLmNyb3NzU2Vzc2lvblF1ZXVlLmxlbmd0aD4wJiZzZXRUaW1lb3V0KHZpLDApfX1mdW5jdGlvbiBxbihlKXshZXx8IXIud3N8fHIud3MucmVhZHlTdGF0ZSE9PVdlYlNvY2tldC5PUEVOfHxyLndzLnNlbmQoSlNPTi5zdHJpbmdpZnkoe3R5cGU6InN1YnNjcmliZSIsc2Vzc2lvbklkOmV9KSl9ZnVuY3Rpb24gdm0oZSx0KXtpZighZSlyZXR1cm4gdDt2YXIgbj1PYmplY3QuYXNzaWduKHt9LGUsdCksaT1lLm91dHB1dHx8IiIsYT10Lm91dHB1dHx8IiIsdT1pLmxlbmd0aD5hLmxlbmd0aCxzPWUuc3RydWN0dXJlZFN0YXRlfHxudWxsLG89dC5zdHJ1Y3R1cmVkU3RhdGV8fG51bGwsbD1lLnNlc3Npb25LaW5kPT09InN0cnVjdHVyZWQifHx0LnNlc3Npb25LaW5kPT09InN0cnVjdHVyZWQiLGM9ISEoZS5tZXNzYWdlcyYmZS5tZXNzYWdlcy5sZW5ndGgmJihmdW5jdGlvbigpe3ZhciBtPWUubWVzc2FnZXNbZS5tZXNzYWdlcy5sZW5ndGgtMV07cmV0dXJuIG0mJm0ucm9sZT09PSJhc3Npc3RhbnQiJiZBcnJheS5pc0FycmF5KG0uY29udGVudCkmJm0uY29udGVudC5zb21lKGZ1bmN0aW9uKHkpe3JldHVybiB5JiZ5Ll9fcHJvY2Vzc2luZ30pfSkoKSksZj1BcnJheS5pc0FycmF5KGUubWVzc2FnZXMpP2w/bHIoZS5tZXNzYWdlcyk6ZS5tZXNzYWdlczpbXSxkPUFycmF5LmlzQXJyYXkodC5tZXNzYWdlcyk/bD9scih0Lm1lc3NhZ2VzKTp0Lm1lc3NhZ2VzOltdLHY9ZC5sZW5ndGg+MCYmKGZ1bmN0aW9uKCl7dmFyIG09ZFtkLmxlbmd0aC0xXTtyZXR1cm4gbSYmbS5yb2xlPT09ImFzc2lzdGFudCImJkFycmF5LmlzQXJyYXkobS5jb250ZW50KSYmIW0uY29udGVudC5zb21lKGZ1bmN0aW9uKHkpe3JldHVybiB5JiZ5Ll9fcHJvY2Vzc2luZ30pfSkoKSxoPWUuc2Vzc2lvbktpbmQ9PT0ic3RydWN0dXJlZCImJiEhcyYmcy5pbkZsaWdodD09PSEwJiYoIW98fG8uaW5GbGlnaHQhPT0hMCkmJmMmJiEhcy5hY3RpdmVSZXF1ZXN0SWQmJiEhbyYmISFvLmFjdGl2ZVJlcXVlc3RJZCYmby5hY3RpdmVSZXF1ZXN0SWQ9PT1zLmFjdGl2ZVJlcXVlc3RJZCYmIXYsZz1mLmxlbmd0aD5kLmxlbmd0aHx8Zi5sZW5ndGg+MCYmZC5sZW5ndGg+MCYmSlNPTi5zdHJpbmdpZnkoZltmLmxlbmd0aC0xXSkhPT1KU09OLnN0cmluZ2lmeShkW2QubGVuZ3RoLTFdKSYmSlNPTi5zdHJpbmdpZnkoZikubGVuZ3RoPkpTT04uc3RyaW5naWZ5KGQpLmxlbmd0aDtyZXR1cm4gdSYmKG4ub3V0cHV0PWkpLGgmJihuLnN0YXR1cz1lLnN0YXR1c3x8bi5zdGF0dXMsbi5zdHJ1Y3R1cmVkU3RhdGU9T2JqZWN0LmFzc2lnbih7fSxvfHx7fSxzLHtpbkZsaWdodDohMH0pLG4ubWVzc2FnZXM9ZS5tZXNzYWdlcyksZyYmKG4ubWVzc2FnZXM9ZiksZS5pZD09PXIuc2VsZWN0ZWRJZCYmKGUucGVybWlzc2lvbkJsb2NrZWQmJnQucGVybWlzc2lvbkJsb2NrZWQ9PT0hMXx8ZS5wZXJtaXNzaW9uQmxvY2tlZCYmIXQucGVybWlzc2lvbkJsb2NrZWQmJihuLnBlcm1pc3Npb25CbG9ja2VkPSEwKSxlLnBlbmRpbmdFc2NhbGF0aW9uJiYhdC5wZW5kaW5nRXNjYWxhdGlvbiYmdC5wZXJtaXNzaW9uQmxvY2tlZCE9PSExJiYobi5wZW5kaW5nRXNjYWxhdGlvbj1lLnBlbmRpbmdFc2NhbGF0aW9uKSxlLm1lc3NhZ2VzJiZlLm1lc3NhZ2VzLmxlbmd0aD4wJiYoIXQubWVzc2FnZXN8fHQubWVzc2FnZXMubGVuZ3RoPT09MCkmJihuLm1lc3NhZ2VzPWUubWVzc2FnZXMpKSxufWZ1bmN0aW9uIG50KGUsdCxuKXtpZihlJiZlLm1lc3NhZ2VzJiZlLm1lc3NhZ2VzLmxlbmd0aD4wKXJldHVybiBlLm1lc3NhZ2VzO2lmKGUmJmUuc2Vzc2lvbktpbmQ9PT0ic3RydWN0dXJlZCIpcmV0dXJuW107aWYoIW4pcmV0dXJuW107dmFyIGk9dHlwZW9mIHQ9PSJzdHJpbmciP3Q6ZSYmZS5vdXRwdXR8fCIiO3JldHVybiBpP2d2KGksZSYmZS5jb21tYW5kKTpbXX1mdW5jdGlvbiBtbShlKXtpZighZXx8IWUubGVuZ3RoKXJldHVybiBudWxsO2lmKHIuc2VsZWN0ZWRJZCl7dmFyIHQ9ZS5maW5kKGZ1bmN0aW9uKGEpe3JldHVybiBhLmlkPT09ci5zZWxlY3RlZElkfSk7cmV0dXJuIHQ/dC5pZDpudWxsfXZhciBuPWUuZmluZChmdW5jdGlvbihhKXtyZXR1cm4gYS5zdGF0dXM9PT0icnVubmluZyJ9KTtpZihuKXJldHVybiBuLmlkO3ZhciBpPWUuZmluZChmdW5jdGlvbihhKXtyZXR1cm4hYS5hcmNoaXZlZH0pO3JldHVybiBpP2kuaWQ6ZVswXS5pZH1mdW5jdGlvbiBnbihlKXt2YXIgdD1lfHx7fTtyZXR1cm4gZmV0Y2goIi9hcGkvc2Vzc2lvbnMiLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihuKXtpZihuLnN0YXR1cz09PTQwMSl7Wm8oKTtyZXR1cm59cmV0dXJuIG4uanNvbigpfSkudGhlbihmdW5jdGlvbihuKXt2YXIgaT1ufHxbXSxhPW5ldyBTZXQoaS5tYXAoZnVuY3Rpb24oZCl7cmV0dXJuIGQuaWR9KSk7T2JqZWN0LmtleXMoci5kcmFmdHMpLmZvckVhY2goZnVuY3Rpb24oZCl7YS5oYXMoZCl8fGRlbGV0ZSByLmRyYWZ0c1tkXX0pLHIuc2Vzc2lvbnM9aS5tYXAoZnVuY3Rpb24oZCl7dmFyIHY9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGgpe3JldHVybiBoLmlkPT09ZC5pZH0pO3JldHVybiB2bSh2LGQpfSk7dmFyIHU9bW0oci5zZXNzaW9ucyk7aWYodSE9PXZvaWQgMCYmKHIuc2VsZWN0ZWRJZD11KSxMdSgpLGZuKCksci5ib290c3RyYXBwaW5nPSExLHdlKCksci5tb2RhbE9wZW4pbWUoKTtlbHNle3ZhciBzPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXNzaW9ucy1saXN0Iiksbz1yYSgpO2lmKHMmJnMuaW5uZXJIVE1MPT09byl7dmFyIGw9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlc3Npb24tY291bnQiKTtsJiYobC50ZXh0Q29udGVudD1TdHJpbmcoci5zZXNzaW9ucy5sZW5ndGgpKX1lbHNle3MmJihzLmlubmVySFRNTD1vLEt0KHMpKTt2YXIgbD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2Vzc2lvbi1jb3VudCIpO2wmJihsLnRleHRDb250ZW50PVN0cmluZyhyLnNlc3Npb25zLmxlbmd0aCkpfX1McigpLHIuc2VsZWN0ZWRJZCYmci5naXRTdGF0dXNTZXNzaW9uSWQhPT1yLnNlbGVjdGVkSWQmJkRuKHIuc2VsZWN0ZWRJZCk7dmFyIGM9UHJvbWlzZS5yZXNvbHZlKCk7aWYoIXQuc2tpcFNlbGVjdGVkT3V0cHV0UmVsb2FkJiZyLnNlbGVjdGVkSWQpYz1obihyLnNlbGVjdGVkSWQpO2Vsc2UgaWYoci5zZWxlY3RlZElkKXt2YXIgZj1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oZCl7cmV0dXJuIGQuaWQ9PT1yLnNlbGVjdGVkSWR9KTt1ZShmKSYmKEF0KHtwcmVzZXJ2ZVN0aWNrU3RhdGU6ITB9KSxOYSghMCkpfXJldHVybiBjLnRoZW4oZnVuY3Rpb24oKXtyLmNyb3NzU2Vzc2lvblF1ZXVlLmxlbmd0aD4wJiZ2aSgpLHh0KCksRmEoKX0pfSkuY2F0Y2goZnVuY3Rpb24obil7dmFyIGk9biYmbi5tZXNzYWdlfHwiIixhPWk9PT0iRmFpbGVkIHRvIGZldGNoInx8aT09PSJOZXR3b3JrRXJyb3Igd2hlbiBhdHRlbXB0aW5nIHRvIGZldGNoIHJlc291cmNlLiJ8fGk9PT0iTG9hZCBmYWlsZWQifHwvYWJvcnRlZHxhYm9ydGVycm9yfG5ldHdvcmtlcnJvcnxmYWlsZWQgdG8gZmV0Y2gvaS50ZXN0KGkpO2F8fGNvbnNvbGUuZXJyb3IoIlt3YW5kXSBsb2FkU2Vzc2lvbnMgZmFpbGVkOiIsbil9KX12YXIgdXU9bnVsbDtmdW5jdGlvbiBzdSgpe3V1fHwodXU9c2V0VGltZW91dChmdW5jdGlvbigpe3V1PW51bGwsbWUoKX0sMjAwKSl9ZnVuY3Rpb24gbWUoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2Vzc2lvbnMtbGlzdCIpLHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlc3Npb24tY291bnQiKTtlJiYoZS5pbm5lckhUTUw9cmEoKSxLdChlKSksdCYmKHQudGV4dENvbnRlbnQ9U3RyaW5nKHIuc2Vzc2lvbnMubGVuZ3RoKSksdHlwZW9mIHJuPT0iZnVuY3Rpb24iJiZybigpLExyKCksci5jcm9zc1Nlc3Npb25RdWV1ZS5sZW5ndGg+MCYmeHQoKX1mdW5jdGlvbiBMcigpe3ZhciBlPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihnKXtyZXR1cm4gZy5pZD09PXIuc2VsZWN0ZWRJZH0pO2V8fChNbighMSksVGEoKSx5bygpKTt2YXIgdD1lPyRuKGUuY29tbWFuZCk6IldhbmQiLG49ZT9mcihlKToiXHU1RjAwXHU1OUNCXHU1QkY5XHU4QkREIixpPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5zZXNzaW9uLXN1bW1hcnktdmFsdWUiKSxhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXJtaW5hbC10aXRsZSIpLHU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlcm1pbmFsLWluZm8iKSxzPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi50b3BiYXItc2Vzc2lvbi10aXRsZSwgLnRvcGJhci10YWdsaW5lIik7cyYmZSYmKHMuY2xhc3NMaXN0LnJlbW92ZSgidG9wYmFyLXRhZ2xpbmUiKSxzLmNsYXNzTGlzdC5hZGQoInRvcGJhci1zZXNzaW9uLXRpdGxlIikscy50ZXh0Q29udGVudD1lLnRpdGxlfHwkbihlLmNvbW1hbmQpLHMuc2V0QXR0cmlidXRlKCJ0aXRsZSIsZS5kZXNjcmlwdGlvbnx8ZS5jb21tYW5kfHwiIikpO3ZhciBvPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJibGFuay1jaGF0IiksbD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IiksYz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2hhdC1vdXRwdXQiKSxmPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdG9wLWJ1dHRvbiIpO2kmJmkudGV4dENvbnRlbnQhPT10JiYoaS50ZXh0Q29udGVudD10KSxhJiZhLnRleHRDb250ZW50IT09dCYmKGEudGV4dENvbnRlbnQ9dCksdSYmKHUudGV4dENvbnRlbnQ9ZT9uKyIgXHhCNyAiK3JtKGUpOm4pO3ZhciBkPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXNzaW9uLWtpbmQtZGlzcGxheSIpLHY9ZT9ubShlKToiXHU3RUM4XHU3QUVGIjtkJiZkLnRleHRDb250ZW50IT09diYmKGQudGV4dENvbnRlbnQ9diksQnMoKSwhci50ZXJtaW5hbCYmbCYmZSYmSm4oKSxyLnRlcm1pbmFsJiZsJiYhbC5jb250YWlucyhyLnRlcm1pbmFsLmVsZW1lbnQpJiYoeXIoKSxKbigpKSxlfHwoci50ZXJtaW5hbFNlc3Npb25JZD1udWxsLHIudGVybWluYWxPdXRwdXQ9IiIsci50ZXJtaW5hbE91dHB1dE1hcmtlcj0wKSxyLnRlcm1pbmFsJiZlJiZyLmN1cnJlbnRWaWV3PT09InRlcm1pbmFsIiYmRnQoInZpZXciKTt2YXIgaD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuaW5wdXQtcGFuZWwiKTtlPyhvJiZvLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLGwmJmwuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksYyYmYy5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSxoJiZoLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpKToobyYmby5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSxsJiZsLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLGMmJmMuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksZiYmZi5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSxoJiZoLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpKSx4aSgpLFpuKGd0KCkpLHFpKCksTGEoKX1mdW5jdGlvbiBobihlKXtyLmNoYXRSZW5kZXJUaW1lciYmKGNsZWFyVGltZW91dChyLmNoYXRSZW5kZXJUaW1lciksci5jaGF0UmVuZGVyVGltZXI9bnVsbCk7dmFyIHQ9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGkpe3JldHVybiBpLmlkPT09ZX0pLG49Ii9hcGkvc2Vzc2lvbnMvIitlO3JldHVybiBybCh0KSYmKG4rPSI/Zm9ybWF0PWNoYXQiKSxmZXRjaChuLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihpKXtyZXR1cm4gaS5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKGkpe2lmKGkuZXJyb3Ipe3Iuc2VsZWN0ZWRJZD09PWUmJihyLnNlbGVjdGVkSWQ9bnVsbCx3ZSgpKSxnbigpO3JldHVybn1pZigkKGkpLExyKCksci50ZXJtaW5hbCYmZT09PXIuc2VsZWN0ZWRJZCYmaS5vdXRwdXQhPT12b2lkIDApe3ZhciBhPSEhci53cyYmKHIud3MucmVhZHlTdGF0ZT09PVdlYlNvY2tldC5PUEVOfHxyLndzLnJlYWR5U3RhdGU9PT1XZWJTb2NrZXQuQ09OTkVDVElORyk7YT9aZSgic2Vzc2lvbi1zd2l0Y2giKToob2koZSxpLm91dHB1dCx7bW9kZToiYXBwZW5kIn0pLFplKCJzZXNzaW9uLXN3aXRjaCIse2ZvcmNlUmVwbGF5OiEwfSkpfXZhciB1PXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihzKXtyZXR1cm4gcy5pZD09PWV9KTtyLmN1cnJlbnRNZXNzYWdlcz1SZSh1LG50KHUsaS5vdXRwdXQsITEpKSxXZSghMSl9KX12YXIgb3U9ITE7ZnVuY3Rpb24gZ20oKXtpZihvdSlyZXR1cm4hMTt2YXIgZT1yLnNlbGVjdGVkSWQ7aWYoIWUpcmV0dXJuITE7dmFyIHQ9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKHMpe3JldHVybiBzLmlkPT09ZX0pO2lmKCF0KXJldHVybiExO3ZhciBuPXR5cGVvZiB0Lm1lc3NhZ2VPZmZzZXQ9PSJudW1iZXIiP3QubWVzc2FnZU9mZnNldDowO2lmKG48PTApcmV0dXJuITE7dmFyIGk9NDAsYT1NYXRoLm1heCgwLG4taSksdT1uLWE7cmV0dXJuIG91PSEwLGZldGNoKCIvYXBpL3Nlc3Npb25zLyIrZW5jb2RlVVJJQ29tcG9uZW50KGUpKyIvbWVzc2FnZXM/b2Zmc2V0PSIrYSsiJmxpbWl0PSIrdSx7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24ocyl7cmV0dXJuIHMuanNvbigpfSkudGhlbihmdW5jdGlvbihzKXtpZihzJiZBcnJheS5pc0FycmF5KHMubWVzc2FnZXMpJiZ0Lm1lc3NhZ2VPZmZzZXQ9PT1uKXt2YXIgbz1BcnJheS5pc0FycmF5KHQubWVzc2FnZXMpP3QubWVzc2FnZXM6W107dC5tZXNzYWdlcz1zLm1lc3NhZ2VzLmNvbmNhdChvKSx0Lm1lc3NhZ2VPZmZzZXQ9YSx0eXBlb2Ygcy50b3RhbD09Im51bWJlciImJih0Lm1lc3NhZ2VUb3RhbD1zLnRvdGFsKSxlPT09ci5zZWxlY3RlZElkJiYoci5jdXJyZW50TWVzc2FnZXM9UmUodCxudCh0LHQub3V0cHV0LCExKSksci5jaGF0UmVuZGVyZWRDb3VudD1yLmN1cnJlbnRNZXNzYWdlcy5sZW5ndGgsV2UoITApKX19KS5jYXRjaChmdW5jdGlvbigpe30pLmZpbmFsbHkoZnVuY3Rpb24oKXtvdT0hMX0pLCEwfWZ1bmN0aW9uIHp0KGUpe3ZhciB0PXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihzKXtyZXR1cm4gcy5pZD09PWV9KTtpZih0KXtyLnNlbGVjdGVkSWQhPT1lJiZ5cigpLHIuc2VsZWN0ZWRJZD1lLHdlKCksci50b29sQ29udGVudENhY2hlPXt9LHIubWVzc2FnZVF1ZXVlPVtdLHIucGVuZGluZ01lc3NhZ2VzPVtdLEpyKHQpLEx1KCksZm4oKSxBdCgpLHIuY3VycmVudE1lc3NhZ2VzPVtdLHIuY2hhdFJlbmRlclRpbWVyJiYoY2xlYXJUaW1lb3V0KHIuY2hhdFJlbmRlclRpbWVyKSxyLmNoYXRSZW5kZXJUaW1lcj1udWxsKTt2YXIgbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9kby1wcm9ncmVzcyIpO24mJm4uY2xhc3NMaXN0LmFkZCgiaGlkZGVuIik7dmFyIGk9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnN0cnVjdHVyZWQtc3RhdHVzLWJhciIpO2kmJmkucmVtb3ZlKCksci5fc3RhdHVzQmFyVGltZXJJZCYmKGNsZWFySW50ZXJ2YWwoci5fc3RhdHVzQmFyVGltZXJJZCksci5fc3RhdHVzQmFyVGltZXJJZD1udWxsKSxyLl9zdGF0dXNCYXJTdGFydFRpbWU9MDt2YXIgYT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuaW5wdXQtY29tcG9zZXIiKTthJiZhLmNsYXNzTGlzdC5yZW1vdmUoImluLWZsaWdodCIpO3ZhciB1PXQ7ci5wcmVmZXJyZWRDb21tYW5kPXR0KCksci5jaGF0TW9kZT1JdCgiY2xhdWRlIix1JiZ1Lm1vZGU/dS5tb2RlOnIuY2hhdE1vZGUpLHIudGVybWluYWxJbnRlcmFjdGl2ZSYmdSYmdS5zdGF0dXMhPT0icnVubmluZyImJk1uKCExKSxtZSgpLERyKGUpLHIuZmlsZVBhbmVsT3BlbiYmKG9jKHUpLFB0KCkpLGhuKGUpLnRoZW4oZnVuY3Rpb24oKXtqdCghMCl9KSxxbihlKSxyLmdpdFN0YXR1cz1udWxsLHIuZ2l0U3RhdHVzU2Vzc2lvbklkPW51bGwsdGEoKSxEbihlLHtmb3JjZTohMH0pfX1mdW5jdGlvbiBobSgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXNzaW9ucy1kcmF3ZXIiKSx0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5tYWluLWxheW91dCIpLG49TmUoKSxpPSEhci5zaWRlYmFyUGlubmVkJiYhIXIuc2lkZWJhckNvbGxhcHNlZCxhPWl8fCFuJiYoISFyLnNpZGViYXJQaW5uZWR8fCEhci5zZXNzaW9uc0RyYXdlck9wZW4pO2UmJihlLmNsYXNzTGlzdC50b2dnbGUoInBpbm5lZCIsYSksZS5jbGFzc0xpc3QudG9nZ2xlKCJjb2xsYXBzZWQiLGkpKSx0JiYodC5jbGFzc0xpc3QudG9nZ2xlKCJzaWRlYmFyLXBpbm5lZCIsYSksdC5jbGFzc0xpc3QudG9nZ2xlKCJzaWRlYmFyLWNvbGxhcHNlZCIsaSkpO3ZhciB1PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzaWRlYmFyLXBpbi1idG4iKTt1JiYodS5jbGFzc0xpc3QudG9nZ2xlKCJwaW5uZWQiLCEhci5zaWRlYmFyUGlubmVkKSx1LnRpdGxlPXIuc2lkZWJhclBpbm5lZD8iXHU1REYyXHU1NkZBXHU1QjlBXHU1RTM4XHU5QTdCXHVGRjA4XHU3MEI5XHU1MUZCXHU4OUUzXHU5NjY0XHU5NTAxXHU1QjlBXHVGRjA5IjoiXHU1NkZBXHU1QjlBXHU0RkE3XHU2ODBGXHU1RTM4XHU5QTdCIix1LnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsci5zaWRlYmFyUGlubmVkPyJcdTg5RTNcdTk2NjRcdTU2RkFcdTVCOUFcdTVFMzhcdTlBN0IiOiJcdTU2RkFcdTVCOUFcdTRGQTdcdTY4MEZcdTVFMzhcdTlBN0IiKSx1LnNldEF0dHJpYnV0ZSgiYXJpYS1wcmVzc2VkIixyLnNpZGViYXJQaW5uZWQ/InRydWUiOiJmYWxzZSIpKX1mdW5jdGlvbiBNcigpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXNzaW9ucy1kcmF3ZXIiKSx0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXNzaW9ucy1kcmF3ZXItYmFja2Ryb3AiKSxuPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5tYWluLWxheW91dCIpO2UmJmUuY2xhc3NMaXN0LnRvZ2dsZSgib3BlbiIsci5zZXNzaW9uc0RyYXdlck9wZW4pLHQmJnQuY2xhc3NMaXN0LnRvZ2dsZSgib3BlbiIsUHUoKSksbiYmbi5jbGFzc0xpc3QudG9nZ2xlKCJzaWRlYmFyLW9wZW4iLHIuc2Vzc2lvbnNEcmF3ZXJPcGVuKTt2YXIgaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2Vzc2lvbnMtdG9nZ2xlLWJ1dHRvbiIpO2kmJmkuY2xhc3NMaXN0LnRvZ2dsZSgiYWN0aXZlIixyLnNlc3Npb25zRHJhd2VyT3BlbiksaG0oKX1mdW5jdGlvbiB5bSgpe3ZhciBlPU5lKCk7aWYoIWUpe3ZhciB0PXIuc2lkZWJhclBpbm5lZD8hMTohci5zZXNzaW9uc0RyYXdlck9wZW47ci5zZXNzaW9uc0RyYXdlck9wZW49dCx0JiYoci5zaWRlYmFyQ29sbGFwc2VkPSExLHhlKCJ3YW5kLXNpZGViYXItY29sbGFwc2VkIiwhMSkpLHhlKCJ3YW5kLXNpZGViYXItb3BlbiIsci5zZXNzaW9uc0RyYXdlck9wZW4pLG9uKCksT3IoKTtyZXR1cm59aWYoci5zZXNzaW9uc0RyYXdlck9wZW49IXIuc2Vzc2lvbnNEcmF3ZXJPcGVuLHhlKCJ3YW5kLXNpZGViYXItb3BlbiIsci5zZXNzaW9uc0RyYXdlck9wZW4pLHIuc2Vzc2lvbnNEcmF3ZXJPcGVuKXtyLmZpbGVQYW5lbE9wZW49ITE7dHJ5e2xvY2FsU3RvcmFnZS5zZXRJdGVtKCJ3YW5kLWZpbGUtcGFuZWwtb3BlbiIsImZhbHNlIil9Y2F0Y2h7fX1vbigpfWZ1bmN0aW9uIHFyKCl7dmFyIGU9TmUoKTtpZighZSl7aWYoIXIuc2lkZWJhclBpbm5lZCYmIXIuc2Vzc2lvbnNEcmF3ZXJPcGVuKXJldHVybjtTcigpLHIuc2lkZWJhclBpbm5lZD0hMSxyLnNlc3Npb25zRHJhd2VyT3Blbj0hMSx4ZSgid2FuZC1zaWRlYmFyLXBpbm5lZCIsITEpLHhlKCJ3YW5kLXNpZGViYXItb3BlbiIsITEpLG9uKCksT3IoKTtyZXR1cm59ci5zZXNzaW9uc0RyYXdlck9wZW4mJihTcigpLHIuc2Vzc2lvbnNEcmF3ZXJPcGVuPSExLHhlKCJ3YW5kLXNpZGViYXItb3BlbiIsITEpLG9uKCkpfWZ1bmN0aW9uIGJtKCl7aWYoTmUoKSl7cXIoKTtyZXR1cm59ci5zaWRlYmFyUGlubmVkfHxyLnNpZGViYXJDb2xsYXBzZWR8fCFyLnNlc3Npb25zRHJhd2VyT3Blbnx8KFNyKCksci5zZXNzaW9uc0RyYXdlck9wZW49ITEseGUoIndhbmQtc2lkZWJhci1vcGVuIiwhMSksb24oKSxPcigpKX1mdW5jdGlvbiBnbChlKXt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29tcG9zZXItcGx1cy1wb3BvdmVyIiksbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXR0YWNoLWJ0biIpO3IucGx1c1BvcG92ZXJPcGVuPSEhZSx0JiZ0LmNsYXNzTGlzdC50b2dnbGUoImhpZGRlbiIsIWUpLG4mJihuLmNsYXNzTGlzdC50b2dnbGUoImFjdGl2ZSIsISFlKSxuLnNldEF0dHJpYnV0ZSgiYXJpYS1leHBhbmRlZCIsZT8idHJ1ZSI6ImZhbHNlIikpfWZ1bmN0aW9uIEVtKCl7Z2woIXIucGx1c1BvcG92ZXJPcGVuKX1mdW5jdGlvbiBPaSgpe3IucGx1c1BvcG92ZXJPcGVuJiZnbCghMSl9ZnVuY3Rpb24gVXQoKXtOZSgpJiZyLnNlc3Npb25zRHJhd2VyT3BlbiYmcXIoKX1mdW5jdGlvbiBPcigpe3ZhciBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5tYWluLWxheW91dCIpO2lmKGUpe3ZhciB0PWZ1bmN0aW9uKG4pe24ucHJvcGVydHlOYW1lPT09InBhZGRpbmctbGVmdCImJihlLnJlbW92ZUV2ZW50TGlzdGVuZXIoInRyYW5zaXRpb25lbmQiLHQpLF90KCEwKSl9O2UuYWRkRXZlbnRMaXN0ZW5lcigidHJhbnNpdGlvbmVuZCIsdCl9c2V0VGltZW91dChmdW5jdGlvbigpe190KCEwKX0sMzUwKX12YXIgVnQ9bnVsbDtmdW5jdGlvbiBGbSgpe3JldHVybiBWdCYmZG9jdW1lbnQuYm9keS5jb250YWlucyhWdCl8fChWdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxWdC5jbGFzc05hbWU9InNpZGViYXItdGlsZS1idWJibGUiLFZ0LnNldEF0dHJpYnV0ZSgicm9sZSIsInRvb2x0aXAiKSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKFZ0KSksVnR9ZnVuY3Rpb24gcm4oKXtWdCYmVnQuY2xhc3NMaXN0LnJlbW92ZSgidmlzaWJsZSIpfWZ1bmN0aW9uIHdtKGUsdCl7aWYoIXQpe3JuKCk7cmV0dXJufXZhciBuPUZtKCk7bi50ZXh0Q29udGVudD10Lmxlbmd0aD40MDA/dC5zbGljZSgwLDQwMCkrIlx1MjAyNiI6dDt2YXIgaT1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO24uY2xhc3NMaXN0LmFkZCgidmlzaWJsZSIpO3ZhciBhPW4uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksdT1pLnRvcCtpLmhlaWdodC8yLHM9dS1hLmhlaWdodC8yLG89OCxsPXdpbmRvdy5pbm5lckhlaWdodC1hLmhlaWdodC04O3M8byYmKHM9bykscz5sJiYocz1NYXRoLm1heChvLGwpKSxuLnN0eWxlLmxlZnQ9aS5yaWdodCsxMisicHgiLG4uc3R5bGUudG9wPXMrInB4IixuLnN0eWxlLnNldFByb3BlcnR5KCItLWJ1YmJsZS10YWlsLXkiLHUtcysicHgiKX1mdW5jdGlvbiBDbShlKXtpZihlLmRhdGFzZXQuY29sbGFwc2VkU2Vzc2lvbklkKXt2YXIgdD1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oYSl7cmV0dXJuIGEuaWQ9PT1lLmRhdGFzZXQuY29sbGFwc2VkU2Vzc2lvbklkfSk7aWYoIXQpcmV0dXJuIiI7dmFyIG49V2ModCk7cmV0dXJuIG58fHQuc3VtbWFyeXx8dC5jb21tYW5kfHwiIn1pZihlLmRhdGFzZXQuY29sbGFwc2VkSGlzdG9yeUlkKXt2YXIgaT1yLmNsYXVkZUhpc3RvcnkuZmluZChmdW5jdGlvbihhKXtyZXR1cm4gYS5jbGF1ZGVTZXNzaW9uSWQ9PT1lLmRhdGFzZXQuY29sbGFwc2VkSGlzdG9yeUlkfSk7aWYoaSYmaS5maXJzdFVzZXJNZXNzYWdlKXJldHVybiBpLmZpcnN0VXNlck1lc3NhZ2V9cmV0dXJuIiJ9ZnVuY3Rpb24gQm0oZSl7dmFyIHQ9ZS50YXJnZXQ7aWYoISghdHx8ISh0IGluc3RhbmNlb2YgRWxlbWVudCkpKXt2YXIgbj10LmNsb3Nlc3QoIi5zaWRlYmFyLWNvbGxhcHNlZC10aWxlIik7aWYoIW4pe3JuKCk7cmV0dXJufXZhciBpPUNtKG4pO2lmKCFpKXtybigpO3JldHVybn13bShuLGkpfX1mdW5jdGlvbiBEbShlKXt2YXIgdD1lLnJlbGF0ZWRUYXJnZXQ7dCYmdCBpbnN0YW5jZW9mIEVsZW1lbnQmJnQuY2xvc2VzdCgiLnNpZGViYXItY29sbGFwc2VkLXRpbGUiKXx8cm4oKX1mdW5jdGlvbiBrbSgpe3ZhciBlPU5lKCk7ci5zaWRlYmFyUGlubmVkfHwoci5zaWRlYmFyUGlubmVkPSEwLHhlKCJ3YW5kLXNpZGViYXItcGlubmVkIiwhMCkpLHIuc2lkZWJhckNvbGxhcHNlZD0hci5zaWRlYmFyQ29sbGFwc2VkLHhlKCJ3YW5kLXNpZGViYXItY29sbGFwc2VkIixyLnNpZGViYXJDb2xsYXBzZWQpLHIuc2lkZWJhckNvbGxhcHNlZD9yLnNlc3Npb25zRHJhd2VyT3Blbj0hMTplPyhyLnNpZGViYXJQaW5uZWQ9ITEsci5zZXNzaW9uc0RyYXdlck9wZW49ITAseGUoIndhbmQtc2lkZWJhci1waW5uZWQiLCExKSk6ci5zZXNzaW9uc0RyYXdlck9wZW49ITAseGUoIndhbmQtc2lkZWJhci1vcGVuIixyLnNlc3Npb25zRHJhd2VyT3Blbiksb24oKSxtZSgpLHhtKCkscm4oKSxPcigpfWZ1bmN0aW9uIEFtKCl7TmUoKXx8KHIuc2lkZWJhclBpbm5lZD0hci5zaWRlYmFyUGlubmVkLHIuc2Vzc2lvbnNEcmF3ZXJPcGVuPSEwLHhlKCJ3YW5kLXNpZGViYXItcGlubmVkIixyLnNpZGViYXJQaW5uZWQpLHhlKCJ3YW5kLXNpZGViYXItb3BlbiIsITApLG9uKCksT3IoKSl9ZnVuY3Rpb24geG0oKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2lkZWJhci1jb2xsYXBzZS1idG4iKTtpZihlKXt2YXIgdD0hIXIuc2lkZWJhclBpbm5lZCYmISFyLnNpZGViYXJDb2xsYXBzZWQ7ZS5jbGFzc0xpc3QudG9nZ2xlKCJjb2xsYXBzZWQiLHQpLGUudGl0bGU9dD8iXHU1QzU1XHU1RjAwXHU0RkE3XHU2ODBGIjoiXHU2NTM2XHU4RDc3XHU0RTNBXHU3QTg0XHU2NzYxIixlLnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsdD8iXHU1QzU1XHU1RjAwXHU0RkE3XHU2ODBGIjoiXHU2NTM2XHU4RDc3XHU0RTNBXHU3QTg0XHU2NzYxIiksZS5pbm5lckhUTUw9dD8nPHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi40IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48cG9seWxpbmUgcG9pbnRzPSIxMCA2IDE2IDEyIDEwIDE4Ii8+PGxpbmUgeDE9IjIwIiB5MT0iNSIgeDI9IjIwIiB5Mj0iMTkiLz48L3N2Zz4nOic8c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyLjQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxwb2x5bGluZSBwb2ludHM9IjE0IDYgOCAxMiAxNCAxOCIvPjxsaW5lIHgxPSI0IiB5MT0iNSIgeDI9IjQiIHkyPSIxOSIvPjwvc3ZnPid9fWZ1bmN0aW9uIFNtKGUpe2lmKGUpe2Uuc3R5bGUubGVmdD0iIixlLnN0eWxlLnJpZ2h0PSIiO3ZhciB0PWUub2Zmc2V0UGFyZW50fHxlLnBhcmVudEVsZW1lbnQ7aWYodCl7dmFyIG49OCxpPXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksYT1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHU9d2luZG93LmlubmVyV2lkdGg7YS5sZWZ0PG4/KGUuc3R5bGUucmlnaHQ9ImF1dG8iLGUuc3R5bGUubGVmdD1uLWkubGVmdCsicHgiKTphLnJpZ2h0PnUtbiYmKGUuc3R5bGUubGVmdD0iYXV0byIsZS5zdHlsZS5yaWdodD1pLnJpZ2h0LSh1LW4pKyJweCIpfX19ZnVuY3Rpb24gbHUoKXt0cigpLHIubW9kYWxPcGVuPSEwLHIuc2Vzc2lvbnNEcmF3ZXJPcGVuPSExLHhlKCJ3YW5kLXNpZGViYXItb3BlbiIsITEpLE1yKCk7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlc3Npb24tbW9kYWwiKTtlJiYoZS5fd2FuZENsb3NlVGltZXImJihjbGVhclRpbWVvdXQoZS5fd2FuZENsb3NlVGltZXIpLGUuX3dhbmRDbG9zZVRpbWVyPW51bGwpLGUuY2xhc3NMaXN0LnJlbW92ZSgiY2xvc2luZyIpLGUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksci5sYXN0Rm9jdXNlZEVsZW1lbnQ9ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCxyLnNlc3Npb25Ub29sPXR0KCksci5wcmVmZXJyZWRDb21tYW5kPXIuc2Vzc2lvblRvb2wsci5zZXNzaW9uQ3JlYXRlS2luZD0ic3RydWN0dXJlZCIsci5zZXNzaW9uQ3JlYXRlV29ya3RyZWU9ITEsci5tb2RlVmFsdWU9SXQoci5zZXNzaW9uVG9vbCxyLm1vZGVWYWx1ZXx8ci5jaGF0TW9kZSksVHIoKSxlZygpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibW9kZS1jYXJkcyIpO3QmJnQuZm9jdXMoKX0sMjApLFBpKGUpKX1mdW5jdGlvbiB5bigpe3IubW9kYWxPcGVuPSExO3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXNzaW9uLW1vZGFsIik7ZSYmKHIuZm9jdXNUcmFwSGFuZGxlciYmKGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLHIuZm9jdXNUcmFwSGFuZGxlciksci5mb2N1c1RyYXBIYW5kbGVyPW51bGwpLHIubGFzdEZvY3VzZWRFbGVtZW50JiZ0eXBlb2Ygci5sYXN0Rm9jdXNlZEVsZW1lbnQuZm9jdXM9PSJmdW5jdGlvbiImJnIubGFzdEZvY3VzZWRFbGVtZW50LmZvY3VzKCksY3UoZSkpLHJyKCl9ZnVuY3Rpb24gY3UoZSl7aWYoZSYmIWUuY2xhc3NMaXN0LmNvbnRhaW5zKCJoaWRkZW4iKSl7dmFyIHQ9ITE7dHJ5e3Q9d2luZG93Lm1hdGNoTWVkaWEmJndpbmRvdy5tYXRjaE1lZGlhKCIocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSIpLm1hdGNoZXN9Y2F0Y2h7fWlmKHR8fGRvY3VtZW50LmhpZGRlbil7ZS5jbGFzc0xpc3QucmVtb3ZlKCJjbG9zaW5nIiksZS5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKTtyZXR1cm59ZS5fd2FuZENsb3NlVGltZXImJihjbGVhclRpbWVvdXQoZS5fd2FuZENsb3NlVGltZXIpLGUuX3dhbmRDbG9zZVRpbWVyPW51bGwpLGUuY2xhc3NMaXN0LmFkZCgiY2xvc2luZyIpLGUuX3dhbmRDbG9zZVRpbWVyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtlLmNsYXNzTGlzdC5yZW1vdmUoImNsb3NpbmciKSxlLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLGUuX3dhbmRDbG9zZVRpbWVyPW51bGx9LDE3MCl9fWZ1bmN0aW9uIFBpKGUpe3IuZm9jdXNUcmFwSGFuZGxlciYmZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsci5mb2N1c1RyYXBIYW5kbGVyKTt2YXIgdD0nYnV0dG9uOm5vdChbZGlzYWJsZWRdKSwgaW5wdXQ6bm90KFtkaXNhYmxlZF0pLCBzZWxlY3Q6bm90KFtkaXNhYmxlZF0pLCB0ZXh0YXJlYTpub3QoW2Rpc2FibGVkXSksIGFbaHJlZl0sIFt0YWJpbmRleF06bm90KFt0YWJpbmRleD0iLTEiXSknO3IuZm9jdXNUcmFwSGFuZGxlcj1mdW5jdGlvbihuKXtpZihuLmtleT09PSJUYWIiKXt2YXIgaT1lLnF1ZXJ5U2VsZWN0b3JBbGwodCksYT1pWzBdLHU9aVtpLmxlbmd0aC0xXTshYXx8IXV8fChuLnNoaWZ0S2V5P2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1hJiYobi5wcmV2ZW50RGVmYXVsdCgpLHUuZm9jdXMoKSk6ZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PXUmJihuLnByZXZlbnREZWZhdWx0KCksYS5mb2N1cygpKSl9fSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixyLmZvY3VzVHJhcEhhbmRsZXIpfWZ1bmN0aW9uIEltKCl7cmV0dXJuIHIuYWN0aXZlV29ya3RyZWVNZXJnZVNlc3Npb25JZCYmci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGUpe3JldHVybiBlLmlkPT09ci5hY3RpdmVXb3JrdHJlZU1lcmdlU2Vzc2lvbklkfSl8fG51bGx9ZnVuY3Rpb24gUHIoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid29ya3RyZWUtbWVyZ2UtY29udGVudCIpLHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndvcmt0cmVlLW1lcmdlLWNvbmZpcm0tYnV0dG9uIiksbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid29ya3RyZWUtbWVyZ2UtZXJyb3IiKSxpPUltKCksYT1yLndvcmt0cmVlTWVyZ2VDaGVja1Jlc3VsdDtpZighKCFlfHwhdCkpe2lmKCFpfHwhaS53b3JrdHJlZSl7ZS5pbm5lckhUTUw9JzxwIGNsYXNzPSJmaWVsZC1oaW50Ij5cdTY3MkFcdTYyN0VcdTUyMzBcdTUzRUZcdTU0MDhcdTVFNzZcdTc2ODQgd29ya3RyZWUgXHU0RjFBXHU4QkREXHUzMDAyPC9wPicsdC5kaXNhYmxlZD0hMDtyZXR1cm59biYmKHIud29ya3RyZWVNZXJnZUVycm9yP1BlKG4sci53b3JrdHJlZU1lcmdlRXJyb3IpOmNpKG4pKTt2YXIgdT1bJzxkaXYgY2xhc3M9Indvcmt0cmVlLW1lcmdlLXJvdyI+PHNwYW4+XHU2NzY1XHU2RTkwXHU1MjA2XHU2NTJGPC9zcGFuPjxzdHJvbmc+JytwKGkud29ya3RyZWUuYnJhbmNofHwiLSIpKyI8L3N0cm9uZz48L2Rpdj4iLCc8ZGl2IGNsYXNzPSJ3b3JrdHJlZS1tZXJnZS1yb3ciPjxzcGFuPlx1NURFNVx1NEY1Q1x1NzZFRVx1NUY1NTwvc3Bhbj48c3Ryb25nPicrcChpLndvcmt0cmVlLnBhdGh8fCItIikrIjwvc3Ryb25nPjwvZGl2PiJdO2E/KHUucHVzaCgnPGRpdiBjbGFzcz0id29ya3RyZWUtbWVyZ2Utcm93Ij48c3Bhbj5cdTc2RUVcdTY4MDdcdTUyMDZcdTY1MkY8L3NwYW4+PHN0cm9uZz4nK3AoYS50YXJnZXRCcmFuY2h8fCItIikrIjwvc3Ryb25nPjwvZGl2PiIpLHUucHVzaCgnPGRpdiBjbGFzcz0id29ya3RyZWUtbWVyZ2Utcm93Ij48c3Bhbj5cdTVGODVcdTU0MDhcdTVFNzZcdTYzRDBcdTRFQTQ8L3NwYW4+PHN0cm9uZz4nK3AoU3RyaW5nKGEuYWhlYWRDb3VudHx8MCkpKyI8L3N0cm9uZz48L2Rpdj4iKSx1LnB1c2goJzxkaXYgY2xhc3M9Indvcmt0cmVlLW1lcmdlLXJvdyI+PHNwYW4+XHU2NzJBXHU2M0QwXHU0RUE0XHU2NTM5XHU1MkE4PC9zcGFuPjxzdHJvbmc+JytwKGEuaGFzVW5jb21taXR0ZWRDaGFuZ2VzPyJcdTY3MDkiOiJcdTY1RTAiKSsiPC9zdHJvbmc+PC9kaXY+IiksdS5wdXNoKCc8ZGl2IGNsYXNzPSJ3b3JrdHJlZS1tZXJnZS1yb3ciPjxzcGFuPlx1NTFCMlx1N0E4MVx1OThDRVx1OTY2OTwvc3Bhbj48c3Ryb25nPicrcChhLmhhc0NvbmZsaWN0cz8iXHU2NzA5IjoiXHU2NUUwIikrIjwvc3Ryb25nPjwvZGl2PiIpLGEucmVhc29uJiZ1LnB1c2goJzxwIGNsYXNzPSJmaWVsZC1oaW50Ij4nK3AoYS5yZWFzb24pKyI8L3A+IikpOnIud29ya3RyZWVNZXJnZUxvYWRpbmcmJnUucHVzaCgnPHAgY2xhc3M9ImZpZWxkLWhpbnQiPlx1NkI2M1x1NTcyOFx1NjhDMFx1NjdFNSB3b3JrdHJlZSBcdTU0MDhcdTVFNzZcdTcyQjZcdTYwMDFcdTIwMjY8L3A+JyksZS5pbm5lckhUTUw9dS5qb2luKCIiKSx0LmRpc2FibGVkPXIud29ya3RyZWVNZXJnZUxvYWRpbmd8fHIud29ya3RyZWVNZXJnZVN1Ym1pdHRpbmd8fCFhfHxhLm9rIT09ITAsdC50ZXh0Q29udGVudD1yLndvcmt0cmVlTWVyZ2VTdWJtaXR0aW5nPyJcdTU0MDhcdTVFNzZcdTRFMkQuLi4iOiJcdTc4NkVcdThCQTRcdTU0MDhcdTVFNzZcdTVFNzZcdTZFMDVcdTc0MDYifX1mdW5jdGlvbiBobChlKXtyLmFjdGl2ZVdvcmt0cmVlTWVyZ2VTZXNzaW9uSWQ9ZSxyLndvcmt0cmVlTWVyZ2VDaGVja1Jlc3VsdD1udWxsLHIud29ya3RyZWVNZXJnZUxvYWRpbmc9ITAsci53b3JrdHJlZU1lcmdlU3VibWl0dGluZz0hMSxyLndvcmt0cmVlTWVyZ2VFcnJvcj0iIix5bigpLHRyKCk7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndvcmt0cmVlLW1lcmdlLW1vZGFsIik7dCYmKHQuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksci5sYXN0Rm9jdXNlZEVsZW1lbnQ9ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCxQaSh0KSksUHIoKSxmZXRjaCgiL2FwaS9zZXNzaW9ucy8iK2VuY29kZVVSSUNvbXBvbmVudChlKSsiL3dvcmt0cmVlL21lcmdlL2NoZWNrIix7bWV0aG9kOiJQT1NUIixjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gbi5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKG4pe2lmKG4mJm4uZXJyb3IpdGhyb3cgbmV3IEVycm9yKG4uZXJyb3IpO24mJm4uc2Vzc2lvbiYmJChuLnNlc3Npb24pLHIud29ya3RyZWVNZXJnZUNoZWNrUmVzdWx0PW4ucmVzdWx0fHxudWxsLHIud29ya3RyZWVNZXJnZUVycm9yPSIifSkuY2F0Y2goZnVuY3Rpb24obil7ci53b3JrdHJlZU1lcmdlRXJyb3I9biYmbi5tZXNzYWdlfHwiXHU2NUUwXHU2Q0Q1XHU2OEMwXHU2N0U1IHdvcmt0cmVlIFx1NTQwOFx1NUU3Nlx1NzJCNlx1NjAwMVx1MzAwMiJ9KS5maW5hbGx5KGZ1bmN0aW9uKCl7ci53b3JrdHJlZU1lcmdlTG9hZGluZz0hMSxQcigpfSl9ZnVuY3Rpb24gZXIoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid29ya3RyZWUtbWVyZ2UtbW9kYWwiKTtyLmFjdGl2ZVdvcmt0cmVlTWVyZ2VTZXNzaW9uSWQ9bnVsbCxyLndvcmt0cmVlTWVyZ2VDaGVja1Jlc3VsdD1udWxsLHIud29ya3RyZWVNZXJnZUxvYWRpbmc9ITEsci53b3JrdHJlZU1lcmdlU3VibWl0dGluZz0hMSxyLndvcmt0cmVlTWVyZ2VFcnJvcj0iIixlJiZlLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLHIuZm9jdXNUcmFwSGFuZGxlciYmKGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLHIuZm9jdXNUcmFwSGFuZGxlciksci5mb2N1c1RyYXBIYW5kbGVyPW51bGwpLHIubGFzdEZvY3VzZWRFbGVtZW50JiZ0eXBlb2Ygci5sYXN0Rm9jdXNlZEVsZW1lbnQuZm9jdXM9PSJmdW5jdGlvbiImJnIubGFzdEZvY3VzZWRFbGVtZW50LmZvY3VzKCl9ZnVuY3Rpb24gVG0oKXshci5hY3RpdmVXb3JrdHJlZU1lcmdlU2Vzc2lvbklkfHxyLndvcmt0cmVlTWVyZ2VTdWJtaXR0aW5nfHwoci53b3JrdHJlZU1lcmdlU3VibWl0dGluZz0hMCxyLndvcmt0cmVlTWVyZ2VFcnJvcj0iIixQcigpLGZldGNoKCIvYXBpL3Nlc3Npb25zLyIrZW5jb2RlVVJJQ29tcG9uZW50KHIuYWN0aXZlV29ya3RyZWVNZXJnZVNlc3Npb25JZCkrIi93b3JrdHJlZS9tZXJnZSIse21ldGhvZDoiUE9TVCIsY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGJvZHk6SlNPTi5zdHJpbmdpZnkoe30pfSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gZS5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKGUpe2lmKGUmJmUuZXJyb3IpdGhyb3cgbmV3IEVycm9yKGUuZXJyb3IpO3JldHVybiBlJiZlLnNlc3Npb24mJiQoZS5zZXNzaW9uKSxrKCJcdTVERjJcdTU0MDhcdTVFNzZcdTUyMzAgIitwKGUucmVzdWx0JiZlLnJlc3VsdC50YXJnZXRCcmFuY2h8fCJcdTRFM0JcdTUyMDZcdTY1MkYiKSsoZS5yZXN1bHQmJmUucmVzdWx0LmNsZWFudXBEb25lPT09ITE/Ilx1RkYwQ1x1NEY0Nlx1NURFNVx1NEY1Q1x1NjgxMVx1NUY4NVx1NkUwNVx1NzQwNlx1MzAwMiI6Ilx1MzAwMiIpLCJpbmZvIiksZXIoKSxSdCgpfSkuY2F0Y2goZnVuY3Rpb24oZSl7ci53b3JrdHJlZU1lcmdlRXJyb3I9ZSYmZS5tZXNzYWdlfHwiXHU2NUUwXHU2Q0Q1XHU1NDA4XHU1RTc2IHdvcmt0cmVlXHUzMDAyIixQcigpfSkuZmluYWxseShmdW5jdGlvbigpe3Iud29ya3RyZWVNZXJnZVN1Ym1pdHRpbmc9ITEsUHIoKX0pKX1mdW5jdGlvbiB5bChlKXtmZXRjaCgiL2FwaS9zZXNzaW9ucy8iK2VuY29kZVVSSUNvbXBvbmVudChlKSsiL3dvcmt0cmVlL2NsZWFudXAiLHttZXRob2Q6IlBPU1QiLGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiB0Lmpzb24oKX0pLnRoZW4oZnVuY3Rpb24odCl7aWYodCYmdC5lcnJvcil0aHJvdyBuZXcgRXJyb3IodC5lcnJvcik7cmV0dXJuIHQmJnQuc2Vzc2lvbiYmJCh0LnNlc3Npb24pLGsoIlx1NURGMlx1NUI4Q1x1NjIxMCB3b3JrdHJlZSBcdTZFMDVcdTc0MDZcdTMwMDIiLCJpbmZvIiksUnQoKX0pLmNhdGNoKGZ1bmN0aW9uKHQpe2sodCYmdC5tZXNzYWdlfHwiXHU2NUUwXHU2Q0Q1XHU2RTA1XHU3NDA2IHdvcmt0cmVlXHUzMDAyIiwiZXJyb3IiKX0pfWZ1bmN0aW9uIExtKCl7eW4oKTt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MtbW9kYWwiKTtpZihlKXtlLl93YW5kQ2xvc2VUaW1lciYmKGNsZWFyVGltZW91dChlLl93YW5kQ2xvc2VUaW1lciksZS5fd2FuZENsb3NlVGltZXI9bnVsbCksZS5jbGFzc0xpc3QucmVtb3ZlKCJjbG9zaW5nIiksZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSxyLmxhc3RGb2N1c2VkRWxlbWVudD1kb2N1bWVudC5hY3RpdmVFbGVtZW50O3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJuZXctcGFzc3dvcmQiKSxuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25maXJtLXBhc3N3b3JkIik7dCYmKHQudmFsdWU9IiIpLG4mJihuLnZhbHVlPSIiKSxibCgpLFBpKGUpLHFtKCksZHUoImFib3V0IiksX20oKTt2YXIgaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLW5vdGlmLXNvdW5kIiksYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLW5vdGlmLWJ1YmJsZSIpO2kmJihpLmNoZWNrZWQ9ci5ub3RpZlNvdW5kKSxhJiYoYS5jaGVja2VkPXIubm90aWZCdWJibGUpO3ZhciB1PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctbm90aWYtdm9sdW1lIikscz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLW5vdGlmLXZvbHVtZS12YWwiKTtpZih1KXt1LnZhbHVlPXIubm90aWZWb2x1bWUscyYmKHMudGV4dENvbnRlbnQ9ci5ub3RpZlZvbHVtZSsiJSIpO3RyeXt1LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCJpbnB1dCIse2J1YmJsZXM6ITB9KSl9Y2F0Y2h7fX12YXIgbz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm90aWYtdm9sdW1lLWZpZWxkIik7aWYobyYmKG8uc3R5bGUuZGlzcGxheT1yLm5vdGlmU291bmQ/IiI6Im5vbmUiKSxFbigpLHR5cGVvZiBXYW5kTmF0aXZlPCJ1IiYmdHlwZW9mIFdhbmROYXRpdmUuZ2V0QXBwSWNvbj09ImZ1bmN0aW9uIil0cnl7d2woV2FuZE5hdGl2ZS5nZXRBcHBJY29uKCl8fCJzaG9ydGhhaXIiKX1jYXRjaHt9aWYoamUmJnR5cGVvZiBXYW5kTmF0aXZlLmdldE5vdGlmaWNhdGlvblNvdW5kPT0iZnVuY3Rpb24iKXRyeXt2YXIgbD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibmF0aXZlLXNvdW5kLXNlbGVjdCIpO2wmJihsLnZhbHVlPVdhbmROYXRpdmUuZ2V0Tm90aWZpY2F0aW9uU291bmQoKSl9Y2F0Y2h7fWlmKGplJiZ0eXBlb2YgV2FuZE5hdGl2ZS5nZXROb3RpZmljYXRpb25Wb2x1bWU9PSJmdW5jdGlvbiIpdHJ5e3ZhciBjPVdhbmROYXRpdmUuZ2V0Tm90aWZpY2F0aW9uVm9sdW1lKCk7aWYoci5ub3RpZlZvbHVtZT1jLHUmJih1LnZhbHVlPVN0cmluZyhjKSkscyYmKHMudGV4dENvbnRlbnQ9YysiJSIpLHUpdHJ5e3UuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoImlucHV0Iix7YnViYmxlczohMH0pKX1jYXRjaHt9dHJ5e2xvY2FsU3RvcmFnZS5zZXRJdGVtKCJ3YW5kLW5vdGlmLXZvbHVtZSIsU3RyaW5nKGMpKX1jYXRjaHt9fWNhdGNoe31pZihqZSYmdHlwZW9mIFdhbmROYXRpdmUuaXNIYXB0aWNFbmFibGVkPT0iZnVuY3Rpb24iKXRyeXt2YXIgZj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWhhcHRpYy1lbmFibGVkIik7ZiYmKGYuY2hlY2tlZD1XYW5kTmF0aXZlLmlzSGFwdGljRW5hYmxlZCgpKX1jYXRjaHt9fX1mdW5jdGlvbiB0cigpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncy1tb2RhbCIpO2UmJihyLmZvY3VzVHJhcEhhbmRsZXImJihkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIixyLmZvY3VzVHJhcEhhbmRsZXIpLHIuZm9jdXNUcmFwSGFuZGxlcj1udWxsKSxyLmxhc3RGb2N1c2VkRWxlbWVudCYmdHlwZW9mIHIubGFzdEZvY3VzZWRFbGVtZW50LmZvY3VzPT0iZnVuY3Rpb24iJiZyLmxhc3RGb2N1c2VkRWxlbWVudC5mb2N1cygpLGN1KGUpKX1mdW5jdGlvbiBibCgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncy1lcnJvciIpLHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzLXN1Y2Nlc3MiKTtlJiZlLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLHQmJnQuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIil9ZnVuY3Rpb24gTW0oKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibmV3LXBhc3N3b3JkIikudmFsdWUsdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uZmlybS1wYXNzd29yZCIpLnZhbHVlLG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzLWVycm9yIiksaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3Mtc3VjY2VzcyIpO2lmKGJsKCksIWV8fGUubGVuZ3RoPDYpe24udGV4dENvbnRlbnQ9Ilx1NUJDNlx1NzgwMVx1OTU3Rlx1NUVBNlx1ODFGM1x1NUMxMVx1NEUzQSA2IFx1NEUyQVx1NUI1N1x1N0IyNlx1MzAwMiIsbi5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKTtyZXR1cm59aWYoZSE9PXQpe24udGV4dENvbnRlbnQ9Ilx1NEUyNFx1NkIyMVx1OEY5M1x1NTE2NVx1NzY4NFx1NUJDNlx1NzgwMVx1NEUwRFx1NEUwMFx1ODFGNFx1MzAwMiIsbi5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKTtyZXR1cm59ZmV0Y2goIi9hcGkvc2V0LXBhc3N3b3JkIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGJvZHk6SlNPTi5zdHJpbmdpZnkoe3Bhc3N3b3JkOmV9KSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihhKXtyZXR1cm4gYS5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKGEpe2lmKGEuZXJyb3Ipe24udGV4dENvbnRlbnQ9YS5lcnJvcixuLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpO3JldHVybn1pLnRleHRDb250ZW50PSJcdTVCQzZcdTc4MDFcdTRGRUVcdTY1MzlcdTYyMTBcdTUyOUZcdUZGMDEiLGkuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5ldy1wYXNzd29yZCIpLnZhbHVlPSIiLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25maXJtLXBhc3N3b3JkIikudmFsdWU9IiJ9KS5jYXRjaChmdW5jdGlvbigpe24udGV4dENvbnRlbnQ9IkZhaWxlZCB0byBzYXZlIHBhc3N3b3JkLiIsbi5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKX0pfWZ1bmN0aW9uIGR1KGUpe2Zvcih2YXIgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuc2V0dGluZ3MtdGFiIiksbj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuc2V0dGluZ3MtcGFuZWwiKSxpPTA7aTx0Lmxlbmd0aDtpKyspe3ZhciBhPXRbaV0uZ2V0QXR0cmlidXRlKCJkYXRhLXRhYiIpPT09ZTthP3RbaV0uY2xhc3NMaXN0LmFkZCgiYWN0aXZlIik6dFtpXS5jbGFzc0xpc3QucmVtb3ZlKCJhY3RpdmUiKSx0W2ldLnNldEF0dHJpYnV0ZSgiYXJpYS1zZWxlY3RlZCIsYT8idHJ1ZSI6ImZhbHNlIiksdFtpXS5zZXRBdHRyaWJ1dGUoInRhYmluZGV4IixhPyIwIjoiLTEiKX1mb3IodmFyIHU9MDt1PG4ubGVuZ3RoO3UrKyl7dmFyIHM9blt1XS5pZD09PSJzZXR0aW5ncy10YWItIitlO3M/KG5bdV0uY2xhc3NMaXN0LmFkZCgiYWN0aXZlIiksblt1XS5yZW1vdmVBdHRyaWJ1dGUoImhpZGRlbiIpKTooblt1XS5jbGFzc0xpc3QucmVtb3ZlKCJhY3RpdmUiKSxuW3VdLnNldEF0dHJpYnV0ZSgiaGlkZGVuIiwiaGlkZGVuIikpfX1mdW5jdGlvbiBFbChlKXtpZihlJiYhKGUua2V5IT09IkFycm93VXAiJiZlLmtleSE9PSJBcnJvd0Rvd24iJiZlLmtleSE9PSJIb21lIiYmZS5rZXkhPT0iRW5kIikpe3ZhciB0PUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5zZXR0aW5ncy10YWIiKSk7aWYodC5sZW5ndGgpe3ZhciBuPXQuaW5kZXhPZihlLmN1cnJlbnRUYXJnZXQpO2lmKG4hPT0tMSl7ZS5wcmV2ZW50RGVmYXVsdCgpO3ZhciBpPW47ZS5rZXk9PT0iQXJyb3dVcCImJihpPW4+MD9uLTE6dC5sZW5ndGgtMSksZS5rZXk9PT0iQXJyb3dEb3duIiYmKGk9bjx0Lmxlbmd0aC0xP24rMTowKSxlLmtleT09PSJIb21lIiYmKGk9MCksZS5rZXk9PT0iRW5kIiYmKGk9dC5sZW5ndGgtMSk7dmFyIGE9dFtpXTtpZihhKXt2YXIgdT1hLmdldEF0dHJpYnV0ZSgiZGF0YS10YWIiKTt1JiZkdSh1KSx0eXBlb2YgYS5mb2N1cz09ImZ1bmN0aW9uIiYmYS5mb2N1cygpfX19fX1mdW5jdGlvbiBxbSgpe2Zvcih2YXIgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuc2V0dGluZ3MtdGFiIiksdD0wO3Q8ZS5sZW5ndGg7dCsrKWVbdF0ucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsRWwpLGVbdF0uYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsRWwpfWZ1bmN0aW9uIE9tKGUpe2lmKGUpe3ZhciB0PWUuY29uZmlnfHx7fSxuPXthYm91dDplLnZlcnNpb24/Ilx1NUY1M1x1NTI0RCB2IitlLnZlcnNpb246Ilx1NzI0OFx1NjcyQ1x1NEUwRVx1NjZGNFx1NjVCMFx1NEZFMVx1NjA2RiIsZ2VuZXJhbDpbdC5kZWZhdWx0TW9kZXx8ImRlZmF1bHQiLHQubGFuZ3VhZ2V8fCJcdTgxRUFcdTUyQThcdThCRURcdThBMDAiXS5maWx0ZXIoQm9vbGVhbikuam9pbigiIFx4QjcgIiksbm90aWZpY2F0aW9uczpyLm5vdGlmU291bmQ/Ilx1NjNEMFx1NzkzQVx1OTdGMyAiK3Iubm90aWZWb2x1bWUrIiUiOiJcdTYzRDBcdTc5M0FcdTk3RjNcdTVERjJcdTUxNzNcdTk1RUQiLHNlY3VyaXR5OmUuaGFzQ2VydD8iXHU1REYyXHU1Qjg5XHU4OEM1IFNTTCBcdThCQzFcdTRFNjYiOiJcdTVCQzZcdTc4MDFcdTRFMEVcdThCQzFcdTRFNjZcdTdCQTFcdTc0MDYiLHByZXNldHM6dC5jb21tYW5kUHJlc2V0cyYmdC5jb21tYW5kUHJlc2V0cy5sZW5ndGg/dC5jb21tYW5kUHJlc2V0cy5sZW5ndGgrIiBcdTY3NjFcdTk4ODRcdThCQkUiOiJcdTY2ODJcdTY1RTBcdTk4ODRcdThCQkUiLGRpc3BsYXk6Ilx1NjNBN1x1NTIzNlx1NTM2MVx1NzI0N1x1OUVEOFx1OEJBNFx1NUM1NVx1NUYwMCJ9O2Zvcih2YXIgaSBpbiBuKWlmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLGkpKXt2YXIgYT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuc2V0dGluZ3MtdGFiW2RhdGEtdGFiPSInK2krJyJdIC5zZXR0aW5ncy10YWItbWV0YScpO2EmJihhLnRleHRDb250ZW50PW5baV18fCIiKX19fWZ1bmN0aW9uIFBtKGUpe3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhbmRyb2lkLWNvbm5lY3QtcXIiKSxuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhbmRyb2lkLWNvbm5lY3QtcXItZW1wdHkiKSxpPXdpbmRvdy5RUkNvZGVMaWI7aWYodCl7aWYoIWl8fHR5cGVvZiBpLnRvQ2FudmFzIT0iZnVuY3Rpb24iKXtuJiYobi50ZXh0Q29udGVudD0iXHU0RThDXHU3RUY0XHU3ODAxXHU1RTkzXHU2NzJBXHU1MkEwXHU4RjdEIik7cmV0dXJufXRyeXtpLnRvQ2FudmFzKHQsZSx7d2lkdGg6MjIwLG1hcmdpbjoxLGVycm9yQ29ycmVjdGlvbkxldmVsOiJNIixjb2xvcjp7ZGFyazoiIzFmMWIxNyIsbGlnaHQ6IiNmZmZmZmYwMCJ9fSxmdW5jdGlvbihhKXtpZihhKXtuJiYobi50ZXh0Q29udGVudD0iXHU0RThDXHU3RUY0XHU3ODAxXHU3NTFGXHU2MjEwXHU1OTMxXHU4RDI1IixuLnN0eWxlLmRpc3BsYXk9IiIpLHQuc3R5bGUudmlzaWJpbGl0eT0iaGlkZGVuIjtyZXR1cm59biYmKG4uc3R5bGUuZGlzcGxheT0ibm9uZSIpLHQuc3R5bGUudmlzaWJpbGl0eT0idmlzaWJsZSJ9KX1jYXRjaHtuJiYobi50ZXh0Q29udGVudD0iXHU0RThDXHU3RUY0XHU3ODAxXHU3NTFGXHU2MjEwXHU1OTMxXHU4RDI1IixuLnN0eWxlLmRpc3BsYXk9IiIpLHQuc3R5bGUudmlzaWJpbGl0eT0iaGlkZGVuIn19fWZ1bmN0aW9uIEhtKGUpe3ZhciB0PXdpbmRvdy5RUkNvZGVMaWI7aWYoIXR8fHR5cGVvZiB0LnRvQ2FudmFzIT0iZnVuY3Rpb24iKXJldHVybjt2YXIgbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29ubmVjdC1xci1tb2RhbCIpO24mJm4ucmVtb3ZlKCk7dmFyIGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7aS5pZD0iY29ubmVjdC1xci1tb2RhbCIsaS5jbGFzc05hbWU9ImNvbm5lY3QtcXItbW9kYWwtb3ZlcmxheSIsaS5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImNvbm5lY3QtcXItbW9kYWwtY2FyZCI+PGNhbnZhcyBpZD0iY29ubmVjdC1xci1tb2RhbC1jYW52YXMiPjwvY2FudmFzPjxwIGNsYXNzPSJjb25uZWN0LXFyLW1vZGFsLWhpbnQiPlx1NzUyOCBXYW5kIEFwcCBcdTYyNkJcdTRFMDBcdTYyNkJcdUZGMENcdThGREVcdTYzQTVcdTVGNTNcdTUyNERcdTY3MERcdTUyQTFcdTU2Njg8L3A+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4gYnRuLXNlY29uZGFyeSBidG4tc20gY29ubmVjdC1xci1tb2RhbC1jbG9zZSI+XHU1MTczXHU5NUVEPC9idXR0b24+PC9kaXY+Jyxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGkpO3ZhciBhPWkucXVlcnlTZWxlY3RvcigiI2Nvbm5lY3QtcXItbW9kYWwtY2FudmFzIiksdT1NYXRoLm1pbih3aW5kb3cuaW5uZXJXaWR0aCx3aW5kb3cuaW5uZXJIZWlnaHQpKi43O3U8MjQwJiYodT0yNDApLHU+NDgwJiYodT00ODApO3RyeXt0LnRvQ2FudmFzKGEsZSx7d2lkdGg6dSxtYXJnaW46MixlcnJvckNvcnJlY3Rpb25MZXZlbDoiTSIsY29sb3I6e2Rhcms6IiMxZjFiMTciLGxpZ2h0OiIjZmZmZmZmIn19KX1jYXRjaHt9ZnVuY3Rpb24gcygpe2kucmVtb3ZlKCl9aS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24obCl7bC50YXJnZXQ9PT1pJiZzKCl9KTt2YXIgbz1pLnF1ZXJ5U2VsZWN0b3IoIi5jb25uZWN0LXFyLW1vZGFsLWNsb3NlIik7byYmby5hZGRFdmVudExpc3RlbmVyKCJjbGljayIscyl9ZnVuY3Rpb24gSHIoZSx0LG4pe2lmKCFlKXJldHVybjtmdW5jdGlvbiBpKCl7aWYoR24oImxpZ2h0Iiksbil7bigpO3JldHVybn1pZih0KXt2YXIgYT10LnRleHRDb250ZW50O3QudGV4dENvbnRlbnQ9Ilx1NURGMlx1NTkwRFx1NTIzNiIsc2V0VGltZW91dChmdW5jdGlvbigpe3QudGV4dENvbnRlbnQ9YX0sMTUwMCl9fWlmKGplJiZ0eXBlb2YgV2FuZE5hdGl2ZS5jb3B5VG9DbGlwYm9hcmQ9PSJmdW5jdGlvbiIpdHJ5e2lmKFdhbmROYXRpdmUuY29weVRvQ2xpcGJvYXJkKGUpPT09Im9rIil7aSgpO3JldHVybn19Y2F0Y2h7fW5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KGUpLnRoZW4oaSkuY2F0Y2goZnVuY3Rpb24oKXt2YXIgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZXh0YXJlYSIpO2EudmFsdWU9ZSxhLnN0eWxlLnBvc2l0aW9uPSJmaXhlZCIsYS5zdHlsZS5vcGFjaXR5PSIwIixkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGEpLGEuc2VsZWN0KCksZG9jdW1lbnQuZXhlY0NvbW1hbmQoImNvcHkiKSxkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGEpLGkoKX0pfWZ1bmN0aW9uIGJuKGUpe2lmKHR5cGVvZiBlIT0ibnVtYmVyInx8IWlzRmluaXRlKGUpfHxlPDApcmV0dXJuIi0iO2lmKGU8MTAyNClyZXR1cm4gZSsiIEIiO2Zvcih2YXIgdD1bIktCIiwiTUIiLCJHQiIsIlRCIl0sbj1lLzEwMjQsaT0wO24+PTEwMjQmJmk8dC5sZW5ndGgtMTspbj1uLzEwMjQsaSs9MTt2YXIgYT1uPj0xMD9uLnRvRml4ZWQoMCk6bi50b0ZpeGVkKDEpO3JldHVybiBhKyIgIit0W2ldfWZ1bmN0aW9uIF9tKCl7ZmV0Y2goIi9hcGkvc2V0dGluZ3MiLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gZS5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKGUpe09tKGUpO3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncy1wa2ctbmFtZSIpLG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzLXZlcnNpb24iKSxpPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncy1ub2RlLXJlcSIpLGE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzLXJlcG8tdXJsIik7dCYmKHQudGV4dENvbnRlbnQ9ZS5wYWNrYWdlTmFtZXx8Ii0iKSxuJiYobi50ZXh0Q29udGVudD1lLnZlcnNpb258fCItIiksaSYmKGkudGV4dENvbnRlbnQ9ZS5ub2RlVmVyc2lvbnx8Ii0iKSxhJiZlLnJlcG9VcmwmJihhLmlubmVySFRNTD0nPGEgaHJlZj0iJytwKGUucmVwb1VybCkrJyIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIiPicrcChlLnJlcG9VcmwpKyI8L2E+Iik7dmFyIHU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzLWxhdGVzdC12ZXJzaW9uIikscz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZG8tdXBkYXRlLWJ1dHRvbiIpO2UubGF0ZXN0VmVyc2lvbiYmdSYmKHUudGV4dENvbnRlbnQ9ZS5sYXRlc3RWZXJzaW9uLGUudXBkYXRlQXZhaWxhYmxlJiZzJiZzLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpKTt2YXIgbz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYmV0YS1jaGFubmVsLXRvZ2dsZSIpO28mJihvLmNoZWNrZWQ9ZS51cGRhdGVDaGFubmVsPT09ImJldGEiKTt2YXIgbD1lLmF1dG9VcGRhdGV8fHt9LGM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF1dG8tdXBkYXRlLXdlYi10b2dnbGUiKTtjJiYoYy5jaGVja2VkPSEhbC53ZWIpO3ZhciBmPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhdXRvLXVwZGF0ZS1hcGstdG9nZ2xlIik7ZiYmKGYuY2hlY2tlZD0hIVRuJiYhIWwuYXBrKTt2YXIgZD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXV0by11cGRhdGUtZG1nLXRvZ2dsZSIpO2QmJihkLmNoZWNrZWQ9ISFjbiYmISFsLmRtZyk7ZnVuY3Rpb24gdihaLEllKXt0eXBlb2Ygd2luZG93LndhbmRBbGVydD09ImZ1bmN0aW9uIj93aW5kb3cud2FuZEFsZXJ0KFose3R5cGU6SWU9PT0iZXJyb3IiPyJkYW5nZXIiOiJpbmZvIn0pOnR5cGVvZiBrPT0iZnVuY3Rpb24iP2soWixJZT09PSJlcnJvciI/ImVycm9yIjoiaW5mbyIpOkllPT09ImVycm9yIiYmYWxlcnQoWil9ZnVuY3Rpb24gaChaLEllLFRlKXt2YXIgR2U9VGU/VGUudGV4dENvbnRlbnQ6IiI7VGUmJihUZS5kaXNhYmxlZD0hMCxUZS50ZXh0Q29udGVudD0iXHU0RTBCXHU4RjdEXHU0RTJEXHUyMDI2Iik7ZnVuY3Rpb24gWWUoKXtUZSYmKFRlLmRpc2FibGVkPSExLFRlLnRleHRDb250ZW50PUdlKX1mZXRjaChaLHttZXRob2Q6IkhFQUQiLGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKEZlKXtpZighRmUub2spe3YoRmUuc3RhdHVzPT09NDA0PyJcdTRFMEJcdThGN0RcdTY3MkFcdTU0MkZcdTc1MjhcdTYyMTZcdTY1ODdcdTRFRjZcdTVERjJcdTc5RkJcdTk2NjQiOiJcdTRFMEJcdThGN0RcdTU5MzFcdThEMjUgKEhUVFAgIitGZS5zdGF0dXMrIikiLCJlcnJvciIpLFllKCk7cmV0dXJufXZhciBMZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7TGUuaHJlZj1aLExlLmRvd25sb2FkPUllfHwiIixkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKExlKSxMZS5jbGljaygpLGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoTGUpLHYoIlx1NURGMlx1NUYwMFx1NTlDQlx1NEUwQlx1OEY3RFx1RkYwQ1x1OEJGN1x1NTcyOFx1OTAxQVx1NzdFNVx1NjgwRi9cdTRFMEJcdThGN0RcdTdCQTFcdTc0MDZcdTRFMkRcdTY3RTVcdTc3MEIiLCJpbmZvIiksWWUoKX0pLmNhdGNoKGZ1bmN0aW9uKEZlKXt2KCJcdTRFMEJcdThGN0RcdTU5MzFcdThEMjU6ICIrKEZlJiZGZS5tZXNzYWdlP0ZlLm1lc3NhZ2U6RmUpLCJlcnJvciIpLFllKCl9KX1mdW5jdGlvbiBnKFosSWUpe2Z1bmN0aW9uIFRlKHZlKXt2YXIgeWU9U3RyaW5nKHZlfHwiIikucmVwbGFjZSgvXnYvLCIiKSxPZT15ZS5pbmRleE9mKCItIiksYXI9T2U+PTA/eWUuc2xpY2UoMCxPZSk6eWUsanI9T2U+PTA/eWUuc2xpY2UoT2UrMSk6IiI7cmV0dXJue3BhcnRzOmFyLnNwbGl0KCIuIikubWFwKGZ1bmN0aW9uKE5pKXtyZXR1cm4gcGFyc2VJbnQoTmksMTApfHwwfSkscHJlOmpyLGlzRGVidWc6anIuaW5kZXhPZigiZGVidWciKT09PTB9fWZvcih2YXIgR2U9VGUoWiksWWU9VGUoSWUpLEZlPTA7RmU8MztGZSsrKXt2YXIgTGU9KEdlLnBhcnRzW0ZlXXx8MCktKFllLnBhcnRzW0ZlXXx8MCk7aWYoTGUhPT0wKXJldHVybiBMZT4wPzE6LTF9aWYoR2UuaXNEZWJ1ZyE9PVllLmlzRGVidWcpcmV0dXJuIEdlLmlzRGVidWc/MTotMTtpZihHZS5pc0RlYnVnJiZZZS5pc0RlYnVnKWZvcih2YXIgUWU9R2UucHJlLnNwbGl0KCIuIiksUXQ9WWUucHJlLnNwbGl0KCIuIiksSD0wO0g8TWF0aC5tYXgoUWUubGVuZ3RoLFF0Lmxlbmd0aCk7SCsrKXtpZihRZVtIXT09PXZvaWQgMClyZXR1cm4tMTtpZihRdFtIXT09PXZvaWQgMClyZXR1cm4gMTt2YXIgaj1wYXJzZUludChRZVtIXSwxMCksUT1wYXJzZUludChRdFtIXSwxMCk7aWYoIWlzTmFOKGopJiYhaXNOYU4oUSkpe2lmKGohPT1RKXJldHVybiBqPlE/MTotMX1lbHNlIGlmKFFlW0hdIT09UXRbSF0pcmV0dXJuIFFlW0hdPlF0W0hdPzE6LTF9cmV0dXJuIDB9ZnVuY3Rpb24gbShaLEllLFRlLEdlLFllLEZlKXtaLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLFouZGlzYWJsZWQ9ITEsSWU+MD9aLnRleHRDb250ZW50PSJcdTUzNDdcdTdFQTciOkllPT09MD8oWi50ZXh0Q29udGVudD0iXHU1REYyXHU2NjJGXHU2NzAwXHU2NUIwIixaLmRpc2FibGVkPSEwKTpGZT9aLnRleHRDb250ZW50PSJcdTkxQ0RcdTY1QjBcdTVCODlcdTg4QzUiOihaLnRleHRDb250ZW50PSJcdTcyNDhcdTY3MkNcdThGODNcdTY1RTciLFouZGlzYWJsZWQ9ITApLFoub25jbGljaz1aLmRpc2FibGVkP251bGw6ZnVuY3Rpb24oKXt0cnl7V2FuZE5hdGl2ZS5kb3dubG9hZFVwZGF0ZShUZSxHZSxZZSl9Y2F0Y2goTGUpe3YoIlx1OEMwM1x1NzUyOFx1NEUwQlx1OEY3RFx1NTkzMVx1OEQyNTogIisoTGUmJkxlLm1lc3NhZ2U/TGUubWVzc2FnZTpMZSksImVycm9yIil9fX12YXIgeT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYW5kcm9pZC1hcGstc2VjdGlvbiIpLHc9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFuZHJvaWQtYXBrLWN1cnJlbnQtcm93IiksRT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MtYW5kcm9pZC1hcGstY3VycmVudCIpLEI9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFuZHJvaWQtYXBrLWdpdGh1Yi1yb3ciKSxGPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncy1hbmRyb2lkLWFway1naXRodWIiKSx4PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkb3dubG9hZC1naXRodWItYXBrLWJ0biIpLFM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFuZHJvaWQtYXBrLWxvY2FsLXJvdyIpLF89ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzLWFuZHJvaWQtYXBrLWxvY2FsIiksVj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZG93bmxvYWQtbG9jYWwtYXBrLWJ0biIpLFU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFuZHJvaWQtYXBrLW1lc3NhZ2UiKSxJPWUuYW5kcm9pZEFwa3x8e30sRD0hIVRuLE09SS5lbmFibGVkIT09ITEsTD1EfHxNJiYoISFJLmdpdGh1Ynx8ISFJLmxvY2FsKTtpZih5JiYoTD95LmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpOnkuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIikpLEQpe2lmKHcmJkUmJihFLnRleHRDb250ZW50PSJ2IitUbix3LmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpKSxJLmdpdGh1YiYmQiYmRil7dmFyIFc9SS5naXRodWIudmVyc2lvbj8idiIrSS5naXRodWIudmVyc2lvbjpJLmdpdGh1Yi5maWxlTmFtZTtpZih0eXBlb2YgSS5naXRodWIuc2l6ZT09Im51bWJlciImJihXKz0iIFx4QjcgIitibihJLmdpdGh1Yi5zaXplKSksRi50ZXh0Q29udGVudD1XLEIuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikseCl7dmFyIEs9SS5naXRodWIudmVyc2lvbj9nKEkuZ2l0aHViLnZlcnNpb24sVG4pOjE7bSh4LEssSS5naXRodWIuZG93bmxvYWRVcmwsSS5naXRodWIuZmlsZU5hbWV8fCJ3YW5kLXVwZGF0ZS5hcGsiLCJnaXRodWIiLCExKX19aWYoSS5sb2NhbCYmUyYmXyl7dmFyIFg9SS5sb2NhbC52ZXJzaW9uPyJ2IitJLmxvY2FsLnZlcnNpb246SS5sb2NhbC5maWxlTmFtZTtpZih0eXBlb2YgSS5sb2NhbC5zaXplPT0ibnVtYmVyIiYmKFgrPSIgXHhCNyAiK2JuKEkubG9jYWwuc2l6ZSkpLF8udGV4dENvbnRlbnQ9WCxTLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLFYpe3ZhciBuZT1JLmxvY2FsLnZlcnNpb24/ZyhJLmxvY2FsLnZlcnNpb24sVG4pOjE7bShWLG5lLEkubG9jYWwuZG93bmxvYWRVcmwsSS5sb2NhbC5maWxlTmFtZXx8IndhbmQtdXBkYXRlLmFwayIsImxvY2FsIiwhMSl9fSFJLmdpdGh1YiYmIUkubG9jYWwmJlUmJihVLnRleHRDb250ZW50PSJcdTY2ODJcdTY1RTBcdTUzRUZcdTc1MjhcdTY2RjRcdTY1QjAiLFUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikpO3ZhciBzZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYW5kcm9pZC1hdXRvLXVwZGF0ZS1yb3ciKSxyZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYW5kcm9pZC1hdXRvLXVwZGF0ZS1oaW50Iik7c2UmJnNlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLHJlJiZyZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKX1lbHNle2lmKEkuZ2l0aHViJiZCJiZGKXt2YXIgVD1JLmdpdGh1Yi52ZXJzaW9uPyJ2IitJLmdpdGh1Yi52ZXJzaW9uOkkuZ2l0aHViLmZpbGVOYW1lO3R5cGVvZiBJLmdpdGh1Yi5zaXplPT0ibnVtYmVyIiYmKFQrPSIgXHhCNyAiK2JuKEkuZ2l0aHViLnNpemUpKSxGLnRleHRDb250ZW50PVQsQi5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSx4JiYoeC50ZXh0Q29udGVudD0iXHU0RTBCXHU4RjdEIix4LmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLHgub25jbGljaz1mdW5jdGlvbigpe3dpbmRvdy5vcGVuKEkuZ2l0aHViLmRvd25sb2FkVXJsLCJfYmxhbmsiKSx2KCJcdTZCNjNcdTU3MjhcdTYyNTNcdTVGMDBcdTRFMEJcdThGN0RcdTk4NzVcdTIwMjYiLCJpbmZvIil9KX1pZihJLmxvY2FsJiZTJiZfKXt2YXIgcT1JLmxvY2FsLnZlcnNpb24/InYiK0kubG9jYWwudmVyc2lvbjpJLmxvY2FsLmZpbGVOYW1lO3R5cGVvZiBJLmxvY2FsLnNpemU9PSJudW1iZXIiJiYocSs9IiBceEI3ICIrYm4oSS5sb2NhbC5zaXplKSksXy50ZXh0Q29udGVudD1xLFMuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksViYmKFYudGV4dENvbnRlbnQ9Ilx1NEUwQlx1OEY3RCIsVi5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSxWLm9uY2xpY2s9ZnVuY3Rpb24oKXtoKEkubG9jYWwuZG93bmxvYWRVcmwsSS5sb2NhbC5maWxlTmFtZXx8IndhbmQtdXBkYXRlLmFwayIsVil9KX0hSS5naXRodWImJiFJLmxvY2FsJiZVJiYoVS50ZXh0Q29udGVudD1NPyJcdTU3MjhcdTdFQkZcdTcyNDhcdTY3MkNcdTY2ODJcdTY1RjZcdTgzQjdcdTUzRDZcdTU5MzFcdThEMjVcdUZGMENcdTUzRUZcdTdBMERcdTU0MEVcdTkxQ0RcdThCRDUiOiJBbmRyb2lkIFx1NEUwQlx1OEY3RFx1NjcyQVx1NTcyOFx1NjcwRFx1NTJBMVx1N0FFRlx1NTQyRlx1NzUyOCIsVS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSl9dmFyIE49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1hY29zLWRtZy1zZWN0aW9uIiksWT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWFjb3MtZG1nLWN1cnJlbnQtcm93IiksSj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MtbWFjb3MtZG1nLWN1cnJlbnQiKSxpZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWFjb3MtZG1nLWdpdGh1Yi1yb3ciKSxkZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MtbWFjb3MtZG1nLWdpdGh1YiIpLHRlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkb3dubG9hZC1naXRodWItZG1nLWJ0biIpLGFlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWNvcy1kbWctbG9jYWwtcm93IiksSGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzLW1hY29zLWRtZy1sb2NhbCIpLERlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkb3dubG9hZC1sb2NhbC1kbWctYnRuIikscGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1hY29zLWRtZy1tZXNzYWdlIiksUD1lLm1hY29zRG1nfHx7fSxLZT0hIWNuLGN0PVAuZW5hYmxlZCE9PSExLEc9S2V8fGN0JiYoISFQLmdpdGh1Ynx8ISFQLmxvY2FsKTtpZihOJiYoRz9OLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpOk4uY2xhc3NMaXN0LmFkZCgiaGlkZGVuIikpLEtlKXtpZihZJiZKJiYoSi50ZXh0Q29udGVudD0idiIrY24sWS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSksUC5naXRodWImJmllJiZkZSl7dmFyIGVlPVAuZ2l0aHViLnZlcnNpb24/InYiK1AuZ2l0aHViLnZlcnNpb246UC5naXRodWIuZmlsZU5hbWU7aWYodHlwZW9mIFAuZ2l0aHViLnNpemU9PSJudW1iZXIiJiYoZWUrPSIgXHhCNyAiK2JuKFAuZ2l0aHViLnNpemUpKSxkZS50ZXh0Q29udGVudD1lZSxpZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSx0ZSl7dmFyIG9lPVAuZ2l0aHViLnZlcnNpb24/ZyhQLmdpdGh1Yi52ZXJzaW9uLGNuKToxO20odGUsb2UsUC5naXRodWIuZG93bmxvYWRVcmwsUC5naXRodWIuZmlsZU5hbWV8fCJ3YW5kLXVwZGF0ZS5kbWciLCJnaXRodWIiLCEwKX19aWYoUC5sb2NhbCYmYWUmJkhlKXt2YXIgbGU9UC5sb2NhbC52ZXJzaW9uPyJ2IitQLmxvY2FsLnZlcnNpb246UC5sb2NhbC5maWxlTmFtZTtpZih0eXBlb2YgUC5sb2NhbC5zaXplPT0ibnVtYmVyIiYmKGxlKz0iIFx4QjcgIitibihQLmxvY2FsLnNpemUpKSxIZS50ZXh0Q29udGVudD1sZSxhZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSxEZSl7dmFyIEJlPVAubG9jYWwudmVyc2lvbj9nKFAubG9jYWwudmVyc2lvbixjbik6MTttKERlLEJlLFAubG9jYWwuZG93bmxvYWRVcmwsUC5sb2NhbC5maWxlTmFtZXx8IndhbmQtdXBkYXRlLmRtZyIsImxvY2FsIiwhMCl9fSFQLmdpdGh1YiYmIVAubG9jYWwmJnBlJiYocGUudGV4dENvbnRlbnQ9Ilx1NjY4Mlx1NjVFMFx1NTNFRlx1NzUyOFx1NjZGNFx1NjVCMCIscGUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikpO3ZhciB6ZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWFjb3MtYXV0by11cGRhdGUtcm93IiksSnQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1hY29zLWF1dG8tdXBkYXRlLWhpbnQiKTt6ZSYmemUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksSnQmJkp0LmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpfWVsc2V7aWYoUC5naXRodWImJmllJiZkZSl7dmFyIGR0PVAuZ2l0aHViLnZlcnNpb24/InYiK1AuZ2l0aHViLnZlcnNpb246UC5naXRodWIuZmlsZU5hbWU7dHlwZW9mIFAuZ2l0aHViLnNpemU9PSJudW1iZXIiJiYoZHQrPSIgXHhCNyAiK2JuKFAuZ2l0aHViLnNpemUpKSxkZS50ZXh0Q29udGVudD1kdCxpZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSx0ZSYmKHRlLnRleHRDb250ZW50PSJcdTRFMEJcdThGN0QiLHRlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLHRlLm9uY2xpY2s9ZnVuY3Rpb24oKXt3aW5kb3cub3BlbihQLmdpdGh1Yi5kb3dubG9hZFVybCwiX2JsYW5rIiksdigiXHU2QjYzXHU1NzI4XHU2MjUzXHU1RjAwXHU0RTBCXHU4RjdEXHU5ODc1XHUyMDI2IiwiaW5mbyIpfSl9aWYoUC5sb2NhbCYmYWUmJkhlKXt2YXIgZnQ9UC5sb2NhbC52ZXJzaW9uPyJ2IitQLmxvY2FsLnZlcnNpb246UC5sb2NhbC5maWxlTmFtZTt0eXBlb2YgUC5sb2NhbC5zaXplPT0ibnVtYmVyIiYmKGZ0Kz0iIFx4QjcgIitibihQLmxvY2FsLnNpemUpKSxIZS50ZXh0Q29udGVudD1mdCxhZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSxEZSYmKERlLnRleHRDb250ZW50PSJcdTRFMEJcdThGN0QiLERlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLERlLm9uY2xpY2s9ZnVuY3Rpb24oKXtoKFAubG9jYWwuZG93bmxvYWRVcmwsUC5sb2NhbC5maWxlTmFtZXx8IndhbmQtdXBkYXRlLmRtZyIsRGUpfSl9IVAuZ2l0aHViJiYhUC5sb2NhbCYmcGUmJihwZS50ZXh0Q29udGVudD1jdD8iXHU1NzI4XHU3RUJGXHU3MjQ4XHU2NzJDXHU2NjgyXHU2NUY2XHU4M0I3XHU1M0Q2XHU1OTMxXHU4RDI1XHVGRjBDXHU1M0VGXHU3QTBEXHU1NDBFXHU5MUNEXHU4QkQ1IjoibWFjT1MgXHU0RTBCXHU4RjdEXHU2NzJBXHU1NzI4XHU2NzBEXHU1MkExXHU3QUVGXHU1NDJGXHU3NTI4IixwZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSl9dmFyIF9lPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhbmRyb2lkLWNvbm5lY3QtY29kZSIpLEd0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhbmRyb2lkLWNvbm5lY3QtcXIiKSxKZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYW5kcm9pZC1jb25uZWN0LXFyLWVtcHR5IikscnQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFuZHJvaWQtY29ubmVjdC1xci13cmFwIik7aWYoX2Upe19lLnRleHRDb250ZW50PSJcdTUyQTBcdThGN0RcdTRFMkQuLi4iLEplJiYoSmUudGV4dENvbnRlbnQ9Ilx1NzUxRlx1NjIxMFx1NEUyRFx1MjAyNiIpLEd0JiYoR3Quc3R5bGUudmlzaWJpbGl0eT0iaGlkZGVuIik7dmFyIGtlPSIvYXBpL2FwcC1jb25uZWN0LWNvZGUiO3dpbmRvdy5sb2NhdGlvbiYmd2luZG93LmxvY2F0aW9uLm9yaWdpbiYmKGtlKz0iP29yaWdpbj0iK2VuY29kZVVSSUNvbXBvbmVudCh3aW5kb3cubG9jYXRpb24ub3JpZ2luKSksZmV0Y2goa2Use2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKFope3JldHVybiBaLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24oWil7Wi5jb2RlPyhfZS50ZXh0Q29udGVudD1aLmNvZGUsci5hbmRyb2lkQ29ubmVjdENvZGU9Wi5jb2RlLFBtKFouY29kZSkpOihfZS50ZXh0Q29udGVudD0iXHU3NTFGXHU2MjEwXHU1OTMxXHU4RDI1IixKZSYmKEplLnRleHRDb250ZW50PSJcdTc1MUZcdTYyMTBcdTU5MzFcdThEMjUiKSl9KS5jYXRjaChmdW5jdGlvbigpe19lLnRleHRDb250ZW50PSJcdTgzQjdcdTUzRDZcdTU5MzFcdThEMjUiLEplJiYoSmUudGV4dENvbnRlbnQ9Ilx1ODNCN1x1NTNENlx1NTkzMVx1OEQyNSIpfSl9cnQmJiFydC5kYXRhc2V0LmJvdW5kJiYocnQuZGF0YXNldC5ib3VuZD0iMSIscnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7ci5hbmRyb2lkQ29ubmVjdENvZGUmJkhtKHIuYW5kcm9pZENvbm5lY3RDb2RlKX0pKTt2YXIgZ2U9ZS5jb25maWd8fHt9LGJlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctaG9zdCIpLEM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1wb3J0IiksaXQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1odHRwcyIpLHl0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctbW9kZSIpLFR0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctY3dkIiksQ3Q9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1zaGVsbCIpO2JlJiYoYmUudmFsdWU9Z2UuaG9zdHx8IiIpLEMmJihDLnZhbHVlPWdlLnBvcnR8fCIiKSxpdCYmKGl0LmNoZWNrZWQ9Z2UuaHR0cHM9PT0hMCkseXQmJih5dC52YWx1ZT1nZS5kZWZhdWx0TW9kZXx8ImRlZmF1bHQiKSxUdCYmKFR0LnZhbHVlPWdlLmRlZmF1bHRDd2R8fCIiKSxDdCYmKEN0LnZhbHVlPWdlLnNoZWxsfHwiIik7dmFyIEx0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctbGFuZ3VhZ2UiKTtMdCYmKEx0LnZhbHVlPWdlLmxhbmd1YWdlfHwiIik7dmFyIFl0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctc3RydWN0dXJlZC1ydW5uZXIiKTtZdCYmKFl0LnZhbHVlPWdlLnN0cnVjdHVyZWRSdW5uZXJ8fCJjbGkiKTt2YXIgYXQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1pbmhlcml0LWVudiIpO2F0JiYoYXQuY2hlY2tlZD1nZS5pbmhlcml0RW52IT09ITEpLHIuY29uZmlnRGVmYXVsdE1vZGVsPWdlLmRlZmF1bHRNb2RlbHx8IiIsTWkoKSxmbCgpLnRoZW4oZnVuY3Rpb24oKXtNaSgpfSkuY2F0Y2goZnVuY3Rpb24oKXt9KTt2YXIgcWU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNlcnQtc3RhdHVzIik7cWUmJihxZS50ZXh0Q29udGVudD1lLmhhc0NlcnQ/Ilx1NURGMlx1NUI4OVx1ODhDNSBTU0wgXHU4QkMxXHU0RTY2IjoiXHU2NzJBXHU1Qjg5XHU4OEM1XHU4QkMxXHU0RTY2XHVGRjA4XHU0RjdGXHU3NTI4XHU4MUVBXHU3QjdFXHU1NDBEXHU2MjE2IEhUVFBcdUZGMDkiLHFlLnN0eWxlLmNvbG9yPWUuaGFzQ2VydD8idmFyKC0tc3VjY2VzcykiOiJ2YXIoLS10ZXh0LXNlY29uZGFyeSkiKTt2YXIgVWU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInByZXNldHMtbGlzdCIpO2lmKFVlJiZnZS5jb21tYW5kUHJlc2V0cyl7Zm9yKHZhciBoZT0iIixidD0wO2J0PGdlLmNvbW1hbmRQcmVzZXRzLmxlbmd0aDtidCsrKXt2YXIgcHQ9Z2UuY29tbWFuZFByZXNldHNbYnRdO2hlKz0nPGRpdiBjbGFzcz0icHJlc2V0LWl0ZW0iPjxzcGFuIGNsYXNzPSJwcmVzZXQtbGFiZWwiPicrcChwdC5sYWJlbCkrJzwvc3Bhbj48c3BhbiBjbGFzcz0icHJlc2V0LWRldGFpbCI+JytwKHB0LmNvbW1hbmQpKyhwdC5tb2RlPyIgKCIrcChwdC5tb2RlKSsiKSI6IiIpKyI8L3NwYW4+PC9kaXY+In1oZXx8KGhlPSc8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZS1jb21wYWN0Ij48c3BhbiBjbGFzcz0iZW1wdHktaWNvbiI+XHUyNjk5PC9zcGFuPjxzcGFuPlx1NkNBMVx1NjcwOVx1NTQ3RFx1NEVFNFx1OTg4NFx1OEJCRTwvc3Bhbj48c3BhbiBjbGFzcz0iaGludCI+XHU1NzI4IGNvbmZpZy5qc29uIFx1NzY4NCBjb21tYW5kUHJlc2V0cyBcdTRFMkRcdTkxNERcdTdGNkU8L3NwYW4+PC9kaXY+JyksVWUuaW5uZXJIVE1MPWhlfXZhciB1dD1nZS5jYXJkRGVmYXVsdHN8fHt9LEV0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctY2FyZC1lZGl0IiksTXQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1jYXJkLWlubGluZSIpLE9uPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctY2FyZC10ZXJtaW5hbCIpLGZlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctY2FyZC10aGlua2luZyIpLHZ0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctY2FyZC10b29sZ3JvdXAiKTtFdCYmKEV0LmNoZWNrZWQ9dXQuZWRpdENhcmRzPT09ITApLE10JiYoTXQuY2hlY2tlZD11dC5pbmxpbmVUb29scz09PSEwKSxPbiYmKE9uLmNoZWNrZWQ9dXQudGVybWluYWw9PT0hMCksZmUmJihmZS5jaGVja2VkPXV0LnRoaW5raW5nPT09ITApLHZ0JiYodnQuY2hlY2tlZD11dC50b29sR3JvdXA9PT0hMCl9KS5jYXRjaChmdW5jdGlvbigpe30pfWZ1bmN0aW9uIE5tKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbmZpZy1tZXNzYWdlIik7ZSYmKGUuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksZS50ZXh0Q29udGVudD0iIik7dmFyIHQ9e2hvc3Q6KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctaG9zdCIpfHx7fSkudmFsdWUscG9ydDpOdW1iZXIoKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctcG9ydCIpfHx7fSkudmFsdWUpLGh0dHBzOihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWh0dHBzIil8fHt9KS5jaGVja2VkLGRlZmF1bHRNb2RlOihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLW1vZGUiKXx8e30pLnZhbHVlLGRlZmF1bHRDd2Q6KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctY3dkIil8fHt9KS52YWx1ZSxzaGVsbDooZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1zaGVsbCIpfHx7fSkudmFsdWUsbGFuZ3VhZ2U6KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctbGFuZ3VhZ2UiKXx8e30pLnZhbHVlfHwiIixkZWZhdWx0TW9kZWw6KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctZGVmYXVsdC1tb2RlbCIpfHx7fSkudmFsdWV8fCIiLHN0cnVjdHVyZWRSdW5uZXI6KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctc3RydWN0dXJlZC1ydW5uZXIiKXx8e30pLnZhbHVlfHwiY2xpIixpbmhlcml0RW52Oihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWluaGVyaXQtZW52Iil8fHt9KS5jaGVja2VkIT09ITF9LG49ci5jb25maWcmJnIuY29uZmlnLmRlZmF1bHRNb2RlbHx8IiIsaT10LmRlZmF1bHRNb2RlbHx8IiI7ZmV0Y2goIi9hcGkvc2V0dGluZ3MvY29uZmlnIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeSh0KX0pLnRoZW4oZnVuY3Rpb24oYSl7cmV0dXJuIGEuanNvbigpfSkudGhlbihmdW5jdGlvbihhKXtpZihlJiYoYS5lcnJvcj8oZS50ZXh0Q29udGVudD1hLmVycm9yLGUuc3R5bGUuY29sb3I9InZhcigtLWVycm9yKSIpOihlLnRleHRDb250ZW50PWEucmVzdGFydFJlcXVpcmVkPyJcdTkxNERcdTdGNkVcdTVERjJcdTRGRERcdTVCNThcdUZGMENcdTkwRThcdTUyMDZcdTkwRThcdTdGNzJcdTVCNTdcdTZCQjVcdUZGMDhob3N0L3BvcnQvaHR0cHMvc2hlbGxcdUZGMDlcdTk3MDBcdTg5ODFcdTkxQ0RcdTU0MkZcdTY3MERcdTUyQTFcdTYyNERcdTc1MUZcdTY1NDhcdTMwMDIiOiJcdTkxNERcdTdGNkVcdTVERjJcdTRGRERcdTVCNThcdTMwMDIiLGUuc3R5bGUuY29sb3I9InZhcigtLXN1Y2Nlc3MpIiksZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSksKCFhfHwhYS5lcnJvcikmJihyLmNvbmZpZyYmKHIuY29uZmlnLmRlZmF1bHRNb2RlbD1pKSxyLmNvbmZpZ0RlZmF1bHRNb2RlbD1pLGkhPT1uKSl7ci5jaGF0TW9kZWw9IiI7dHJ5e2xvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCJ3YW5kLWNoYXQtbW9kZWwiKX1jYXRjaHt9Wm4oZ3QoKSl9fSkuY2F0Y2goZnVuY3Rpb24oKXtlJiYoZS50ZXh0Q29udGVudD0iXHU0RkREXHU1QjU4XHU1OTMxXHU4RDI1XHUzMDAyIixlLnN0eWxlLmNvbG9yPSJ2YXIoLS1lcnJvcikiLGUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikpfSl9ZnVuY3Rpb24gam0oKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGlzcGxheS1tZXNzYWdlIik7ZSYmKGUuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksZS50ZXh0Q29udGVudD0iIik7dmFyIHQ9e2NhcmREZWZhdWx0czp7ZWRpdENhcmRzOiEhKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctY2FyZC1lZGl0Iil8fHt9KS5jaGVja2VkLGlubGluZVRvb2xzOiEhKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctY2FyZC1pbmxpbmUiKXx8e30pLmNoZWNrZWQsdGVybWluYWw6ISEoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1jYXJkLXRlcm1pbmFsIil8fHt9KS5jaGVja2VkLHRoaW5raW5nOiEhKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctY2FyZC10aGlua2luZyIpfHx7fSkuY2hlY2tlZCx0b29sR3JvdXA6ISEoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1jYXJkLXRvb2xncm91cCIpfHx7fSkuY2hlY2tlZH19O2ZldGNoKCIvYXBpL3NldHRpbmdzL2NvbmZpZyIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkodCl9KS50aGVuKGZ1bmN0aW9uKG4pe3JldHVybiBuLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24obil7ZSYmKG4uZXJyb3I/KGUudGV4dENvbnRlbnQ9bi5lcnJvcixlLnN0eWxlLmNvbG9yPSJ2YXIoLS1lcnJvcikiKTooZS50ZXh0Q29udGVudD0iXHU2NjNFXHU3OTNBXHU4QkJFXHU3RjZFXHU1REYyXHU0RkREXHU1QjU4IixlLnN0eWxlLmNvbG9yPSJ2YXIoLS1zdWNjZXNzKSIpLGUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikpLCFuLmVycm9yJiZyLmNvbmZpZyYmKHIuY29uZmlnLmNhcmREZWZhdWx0cz10LmNhcmREZWZhdWx0cyl9KS5jYXRjaChmdW5jdGlvbigpe2UmJihlLnRleHRDb250ZW50PSJcdTRGRERcdTVCNThcdTU5MzFcdThEMjVcdTMwMDIiLGUuc3R5bGUuY29sb3I9InZhcigtLWVycm9yKSIsZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSl9KX1mdW5jdGlvbiBSbSgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZXJ0LWtleS1maWxlIiksdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2VydC1jZXJ0LWZpbGUiKSxuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZXJ0LW1lc3NhZ2UiKTtpZihuJiYobi5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSxuLnRleHRDb250ZW50PSIiKSwhZXx8IWUuZmlsZXN8fCFlLmZpbGVzWzBdfHwhdHx8IXQuZmlsZXN8fCF0LmZpbGVzWzBdKXtuJiYobi50ZXh0Q29udGVudD0iXHU4QkY3XHU5MDA5XHU2MkU5XHU3OUMxXHU5NEE1XHU1NDhDXHU4QkMxXHU0RTY2XHU2NTg3XHU0RUY2XHUzMDAyIixuLnN0eWxlLmNvbG9yPSJ2YXIoLS1lcnJvcikiLG4uY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikpO3JldHVybn12YXIgaT1uZXcgRmlsZVJlYWRlcjtpLm9ubG9hZD1mdW5jdGlvbigpe3ZhciBhPWkucmVzdWx0LHU9bmV3IEZpbGVSZWFkZXI7dS5vbmxvYWQ9ZnVuY3Rpb24oKXt2YXIgcz11LnJlc3VsdDtmZXRjaCgiL2FwaS9zZXR0aW5ncy91cGxvYWQtY2VydCIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkoe2tleTphLGNlcnQ6c30pfSkudGhlbihmdW5jdGlvbihvKXtyZXR1cm4gby5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKG8pe2lmKG4pe2lmKG8uZXJyb3Ipbi50ZXh0Q29udGVudD1vLmVycm9yLG4uc3R5bGUuY29sb3I9InZhcigtLWVycm9yKSI7ZWxzZXtuLnRleHRDb250ZW50PSJcdThCQzFcdTRFNjZcdTVERjJcdTRFMEFcdTRGMjBcdUZGMENcdTkxQ0RcdTU0MkZcdTU0MEVcdTc1MUZcdTY1NDhcdTMwMDIiLG4uc3R5bGUuY29sb3I9InZhcigtLXN1Y2Nlc3MpIjt2YXIgbD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2VydC1zdGF0dXMiKTtsJiYobC50ZXh0Q29udGVudD0iXHU1REYyXHU1Qjg5XHU4OEM1IFNTTCBcdThCQzFcdTRFNjYiLGwuc3R5bGUuY29sb3I9InZhcigtLXN1Y2Nlc3MpIil9bi5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKX19KS5jYXRjaChmdW5jdGlvbigpe24mJihuLnRleHRDb250ZW50PSJcdTRFMEFcdTRGMjBcdTU5MzFcdThEMjVcdTMwMDIiLG4uc3R5bGUuY29sb3I9InZhcigtLWVycm9yKSIsbi5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSl9KX0sdS5yZWFkQXNUZXh0KHQuZmlsZXNbMF0pfSxpLnJlYWRBc1RleHQoZS5maWxlc1swXSl9ZnVuY3Rpb24gRmwoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MtbGF0ZXN0LXZlcnNpb24iKSx0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkby11cGRhdGUtYnV0dG9uIiksbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidXBkYXRlLW1lc3NhZ2UiKTtlJiYoZS50ZXh0Q29udGVudD0iXHU2OEMwXHU2N0U1XHU0RTJELi4uIiksbiYmbi5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSx0JiZ0LmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLGZldGNoKCIvYXBpL2NoZWNrLXVwZGF0ZSIse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKGkpe3JldHVybiBpLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24oaSl7aWYoaS5lcnJvcil7ZSYmKGUudGV4dENvbnRlbnQ9Ilx1NjhDMFx1NjdFNVx1NTkzMVx1OEQyNSIpO3JldHVybn12YXIgYT1pLmNoYW5uZWw9PT0iYmV0YSI7aWYoZSYmKGUudGV4dENvbnRlbnQ9aS5sYXRlc3R8fChhPyJiZXRhIFx1NjcyQVx1NTNEMVx1NUUwMyI6Ii0iKSksIWkubGF0ZXN0KXtuJiYobi50ZXh0Q29udGVudD1hPyJcdTY1RTBcdTZDRDVcdThCRkJcdTUzRDYgbnBtIGJldGEgXHU3MjQ4XHU2NzJDXHUzMDAyIjoiXHU2NUUwXHU2Q0Q1XHU4RkRFXHU2M0E1XHU1MjMwIG5wbSByZWdpc3RyeVx1MzAwMiIsbi5zdHlsZS5jb2xvcj0idmFyKC0tZXJyb3IpIixuLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpKTtyZXR1cm59aS51cGRhdGVBdmFpbGFibGUmJnQmJih0LnRleHRDb250ZW50PWE/Ilx1NjZGNFx1NjVCMFx1NTIzMCBCZXRhIjoiXHU2NkY0XHU2NUIwXHU1MjMwXHU2NzAwXHU2NUIwXHU3MjQ4Iix0LmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpKSwhaS51cGRhdGVBdmFpbGFibGUmJm4mJihuLnRleHRDb250ZW50PWE/Ilx1NURGMlx1NjYyRlx1NjcwMFx1NjVCMCBCZXRhIFx1NzI0OFx1NjcyQ1x1MzAwMiI6Ilx1NURGMlx1NjYyRlx1NjcwMFx1NjVCMFx1NzI0OFx1NjcyQ1x1MzAwMiIsbi5zdHlsZS5jb2xvcj0idmFyKC0tc3VjY2VzcykiLG4uY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikpfSkuY2F0Y2goZnVuY3Rpb24oKXtlJiYoZS50ZXh0Q29udGVudD0iXHU2OEMwXHU2N0U1XHU1OTMxXHU4RDI1Iil9KX1mdW5jdGlvbiBXbSgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1cGRhdGUtbWVzc2FnZSIpLHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRvLXVwZGF0ZS1idXR0b24iKTt0JiYodC5kaXNhYmxlZD0hMCxlJiYoZS50ZXh0Q29udGVudD0iXHU2QjYzXHU1NzI4XHU2NkY0XHU2NUIwXHVGRjBDXHU4QkY3XHU3QTBEXHU1MDE5Li4uIixlLnN0eWxlLmNvbG9yPSJ2YXIoLS10ZXh0LXNlY29uZGFyeSkiLGUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikpLGZldGNoKCIvYXBpL3VwZGF0ZSIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gbi5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKG4pe2lmKG4uZXJyb3Ipe2UmJihlLnRleHRDb250ZW50PW4uZXJyb3IsZS5zdHlsZS5jb2xvcj0idmFyKC0tZXJyb3IpIixlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpKSx0LmRpc2FibGVkPSExO3JldHVybn1pZihlJiYoZS50ZXh0Q29udGVudD0obi5tZXNzYWdlfHwiXHU2NkY0XHU2NUIwXHU1QjhDXHU2MjEwIikrIlx1RkYwQ1x1NkI2M1x1NTcyOFx1OTFDRFx1NTQyRlx1NjcwRFx1NTJBMVx1MjAyNiIsZS5zdHlsZS5jb2xvcj0idmFyKC0tc3VjY2VzcykiLGUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikpLHQuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksbi5kZXRhY2hlZFVwZGF0ZSlkbigpO2Vsc2UgaWYobi5yZXN0YXJ0UmVxdWlyZWQhPT0hMSkkcyhudWxsLGUpO2Vsc2V7dmFyIGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRvLXJlc3RhcnQtYnV0dG9uIik7aSYmaS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKX19KS5jYXRjaChmdW5jdGlvbigpe2UmJihlLnRleHRDb250ZW50PSJcdTY2RjRcdTY1QjBcdTU5MzFcdThEMjVcdTMwMDIiLGUuc3R5bGUuY29sb3I9InZhcigtLWVycm9yKSIsZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSksdC5kaXNhYmxlZD0hMX0pKX1mdW5jdGlvbiB6bSgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkby1yZXN0YXJ0LWJ1dHRvbiIpLHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1tZXNzYWdlIik7JHMoZSx0KX1mdW5jdGlvbiBVbSgpe2ZldGNoKCIvYXBpL2F1dG8tdXBkYXRlIix7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIGUuanNvbigpfSkudGhlbihmdW5jdGlvbihlKXtpZihlLmFwaylyZXR1cm4gZmV0Y2goIi9hcGkvYW5kcm9pZC1hcGstdXBkYXRlP2N1cnJlbnRWZXJzaW9uPSIrZW5jb2RlVVJJQ29tcG9uZW50KFRuKSx7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIHQuanNvbigpfSkudGhlbihmdW5jdGlvbih0KXtpZighKCF0LnVwZGF0ZUF2YWlsYWJsZXx8IXQuZG93bmxvYWRVcmwpKXRyeXtXYW5kTmF0aXZlLmRvd25sb2FkVXBkYXRlKHQuZG93bmxvYWRVcmwsdC5maWxlTmFtZXx8IndhbmQtdXBkYXRlLmFwayIsdC5zb3VyY2V8fCJsb2NhbCIpfWNhdGNoe319KX0pLmNhdGNoKGZ1bmN0aW9uKCl7fSl9ZnVuY3Rpb24gVm0oKXtjbiYmZmV0Y2goIi9hcGkvYXV0by11cGRhdGUiLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gZS5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKGUpe2lmKGUuZG1nKXJldHVybiBmZXRjaCgiL2FwaS9tYWNvcy1kbWctdXBkYXRlP2N1cnJlbnRWZXJzaW9uPSIrZW5jb2RlVVJJQ29tcG9uZW50KGNuKSx7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIHQuanNvbigpfSkudGhlbihmdW5jdGlvbih0KXtpZighKCF0LnVwZGF0ZUF2YWlsYWJsZXx8IXQuZG93bmxvYWRVcmwpKXRyeXtXYW5kTmF0aXZlLmRvd25sb2FkVXBkYXRlKHQuZG93bmxvYWRVcmwsdC5maWxlTmFtZXx8IndhbmQtdXBkYXRlLmRtZyIsdC5zb3VyY2V8fCJsb2NhbCIpfWNhdGNoe319KX0pLmNhdGNoKGZ1bmN0aW9uKCl7fSl9ZnVuY3Rpb24gZnUoZSx0KXt2YXIgbj17fTtuW2VdPXQsZmV0Y2goIi9hcGkvYXV0by11cGRhdGUiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KG4pfSkudGhlbihmdW5jdGlvbihpKXtyZXR1cm4gaS5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKGkpe3ZhciBhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhdXRvLXVwZGF0ZS13ZWItdG9nZ2xlIiksdT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXV0by11cGRhdGUtYXBrLXRvZ2dsZSIpLHM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF1dG8tdXBkYXRlLWRtZy10b2dnbGUiKTthJiYoYS5jaGVja2VkPSEhaS53ZWIpLHUmJih1LmNoZWNrZWQ9ISFpLmFwaykscyYmKHMuY2hlY2tlZD0hIWkuZG1nKX0pLmNhdGNoKGZ1bmN0aW9uKCl7dmFyIGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF1dG8tdXBkYXRlLSIrZSsiLXRvZ2dsZSIpO2kmJihpLmNoZWNrZWQ9IXQpfSl9ZnVuY3Rpb24gS20oZSl7ZmV0Y2goIi9hcGkvdXBkYXRlLWNoYW5uZWwiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KHtjaGFubmVsOmV9KX0pLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIHQuanNvbigpfSkudGhlbihmdW5jdGlvbih0KXt2YXIgbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYmV0YS1jaGFubmVsLXRvZ2dsZSIpO24mJihuLmNoZWNrZWQ9dC5jaGFubmVsPT09ImJldGEiKSxGbCgpfSkuY2F0Y2goZnVuY3Rpb24oKXt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYmV0YS1jaGFubmVsLXRvZ2dsZSIpO3QmJih0LmNoZWNrZWQ9ZSE9PSJiZXRhIil9KX1mdW5jdGlvbiB3bChlKXtmb3IodmFyIHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnNldHRpbmdzLWFwcC1pY29uLW9wdGlvbiIpLG49MDtuPHQubGVuZ3RoO24rKyl7dmFyIGk9dFtuXS5nZXRBdHRyaWJ1dGUoImRhdGEtaWNvbiIpPT09ZTt0W25dLmNsYXNzTGlzdC50b2dnbGUoInNlbGVjdGVkIixpKSx0W25dLnNldEF0dHJpYnV0ZSgiYXJpYS1wcmVzc2VkIixpPyJ0cnVlIjoiZmFsc2UiKX19ZnVuY3Rpb24gRW4oKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm90aWZpY2F0aW9uLXBlcm1pc3Npb24tc3RhdHVzIiksdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm90aWZpY2F0aW9uLXJlcXVlc3QtYnRuIiksbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm90aWZpY2F0aW9uLXJlc2V0LWJ0biIpLGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5vdGlmaWNhdGlvbi10ZXN0LW1lc3NhZ2UiKTtpZihlKXt2YXIgYT1kaSgpO2lmKGE9PT1udWxsKXtpZih0eXBlb2YgTm90aWZpY2F0aW9uPiJ1Iil7ZS50ZXh0Q29udGVudD0iXHU0RTBEXHU2NTJGXHU2MzAxIixlLnN0eWxlLmNvbG9yPSJ2YXIoLS1mZy1tdXRlZCkiLHQmJnQuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksbiYmbi5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKTtyZXR1cm59YT1Ob3RpZmljYXRpb24ucGVybWlzc2lvbn1hPT09ImdyYW50ZWQiPyhlLnRleHRDb250ZW50PSJcdTVERjJcdTYzODhcdTY3NDMgXHUyNzEzIixlLnN0eWxlLmNvbG9yPSJ2YXIoLS1zdWNjZXNzKSIsdCYmdC5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSxuJiZuLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpKTphPT09ImRlbmllZCI/KGUudGV4dENvbnRlbnQ9Ilx1NURGMlx1NjJEMlx1N0VERCIsZS5zdHlsZS5jb2xvcj0idmFyKC0tZGFuZ2VyKSIsdCYmdC5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSxuJiZuLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpKTooZS50ZXh0Q29udGVudD0iXHU2NzJBXHU2Mzg4XHU2NzQzIixlLnN0eWxlLmNvbG9yPSJ2YXIoLS13YXJuaW5nKSIsdCYmdC5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSxuJiZuLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpKX19ZnVuY3Rpb24gSm0oKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm90aWZpY2F0aW9uLXRlc3QtbWVzc2FnZSIpO2lmKGplKXt3aW5kb3cuX29uTmF0aXZlUGVybWlzc2lvblJlc3VsdD1mdW5jdGlvbih0KXtFbigpLGUmJih0PT09ImdyYW50ZWQiPyhlLnRleHRDb250ZW50PSJcdTI3MTMgXHU1REYyXHU2Mzg4XHU2NzQzIixlLnN0eWxlLmNvbG9yPSJ2YXIoLS1zdWNjZXNzKSIpOihlLnRleHRDb250ZW50PSJcdTI3MTcgXHU2NzJBXHU2Mzg4XHU2NzQzXHVGRjBDXHU4QkY3XHU1NzI4XHU3Q0ZCXHU3RURGXHU4QkJFXHU3RjZFXHU0RTJEXHU1RjAwXHU1NDJGIFdhbmQgXHU3Njg0XHU5MDFBXHU3N0U1XHU2NzQzXHU5NjUwIixlLnN0eWxlLmNvbG9yPSJ2YXIoLS1kYW5nZXIpIiksZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSksZGVsZXRlIHdpbmRvdy5fb25OYXRpdmVQZXJtaXNzaW9uUmVzdWx0fTt0cnl7V2FuZE5hdGl2ZS5yZXF1ZXN0UGVybWlzc2lvbigpfWNhdGNoe31yZXR1cm59dHlwZW9mIE5vdGlmaWNhdGlvbj4idSJ8fE5vdGlmaWNhdGlvbi5yZXF1ZXN0UGVybWlzc2lvbigpLnRoZW4oZnVuY3Rpb24odCl7aWYoRW4oKSx0PT09ImdyYW50ZWQiKWUmJihlLnRleHRDb250ZW50PSJcdTI3MTMgXHU1REYyXHU2Mzg4XHU2NzQzIixlLnN0eWxlLmNvbG9yPSJ2YXIoLS1zdWNjZXNzKSIsZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSk7ZWxzZSBpZih0PT09ImRlbmllZCImJmUpe3ZhciBuPWxvY2F0aW9uLm9yaWdpbjtlLmlubmVySFRNTD0nXHU2RDRGXHU4OUM4XHU1NjY4XHU1REYyXHU2MkU2XHU2MjJBXHU2Mzg4XHU2NzQzXHU1RjM5XHU3QTk3XHVGRjBDXHU4QkY3XHU2MjRCXHU1MkE4XHU5MUNEXHU3RjZFXHVGRjFBPGJyPjxzcGFuIHN0eWxlPSJkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NHB4O21hcmdpbjo0cHggMCI+XHUyNDYwIFx1NzBCOVx1NTFGQlx1NTczMFx1NTc0MFx1NjgwRlx1NURFNlx1NEZBN1x1NzY4NCA8c3BhbiBzdHlsZT0iZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt3aWR0aDoxNnB4O2hlaWdodDoxNnB4O2JvcmRlci1yYWRpdXM6NTAlO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyKTtmb250LXNpemU6MTFweDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGUiPmk8L3NwYW4+IFx1NjIxNlx1OTUwMVx1NTZGRVx1NjgwNzwvc3Bhbj48YnI+XHUyNDYxIFx1NjI3RVx1NTIzMFx1MzAwQ1x1OTAxQVx1NzdFNVx1MzAwRFx1MjE5MiBcdTY1MzlcdTRFM0FcdTMwMENcdTUxNDFcdThCQjhcdTMwMEQ8YnI+XHUyNDYyIFx1NTIzN1x1NjVCMFx1OTg3NVx1OTc2Mlx1NTM3M1x1NTNFRicsZS5zdHlsZS5jb2xvcj0idmFyKC0tZmctbXV0ZWQpIixlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpfX0pfWZ1bmN0aW9uIENsKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5vdGlmaWNhdGlvbi10ZXN0LWRlbGF5LWJ0biIpO2UmJihlLmRpc2FibGVkPSExLGUudGV4dENvbnRlbnQ9IjEwIFx1NzlEMlx1NTQwRVx1NTNEMVx1OTAwMSIpfWZ1bmN0aW9uIEdtKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5vdGlmaWNhdGlvbi10ZXN0LW1lc3NhZ2UiKTtyLmRlbGF5ZWROb3RpZmljYXRpb25UaW1lciYmKGNsZWFyVGltZW91dChyLmRlbGF5ZWROb3RpZmljYXRpb25UaW1lciksci5kZWxheWVkTm90aWZpY2F0aW9uVGltZXI9bnVsbCk7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5vdGlmaWNhdGlvbi10ZXN0LWRlbGF5LWJ0biIpO3QmJih0LmRpc2FibGVkPSEwLHQudGV4dENvbnRlbnQ9Ilx1NURGMlx1NUI4OVx1NjM5Mlx1RkYwODEwc1x1RkYwOSIpLGUmJihlLmlubmVySFRNTD0iXHU1REYyXHU1Qjg5XHU2MzkyIDEwIFx1NzlEMlx1NTQwRVx1NTNEMVx1OTAwMVx1NkQ0Qlx1OEJENVx1OTAxQVx1NzdFNVx1RkYwQ1x1OEJGN1x1NTIwN1x1NTIzMFx1NTQwRVx1NTNGMFx1N0I0OVx1NUY4NVx1MzAwMiIsZS5zdHlsZS5jb2xvcj0idmFyKC0tdGV4dC1zZWNvbmRhcnkpIixlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpKSxyLmRlbGF5ZWROb3RpZmljYXRpb25UaW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ci5kZWxheWVkTm90aWZpY2F0aW9uVGltZXI9bnVsbCxDbCgpLEJsKCl9LDFlNCl9ZnVuY3Rpb24gQmwoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm90aWZpY2F0aW9uLXRlc3QtbWVzc2FnZSIpLHQ9W107ci5kZWxheWVkTm90aWZpY2F0aW9uVGltZXImJihjbGVhclRpbWVvdXQoci5kZWxheWVkTm90aWZpY2F0aW9uVGltZXIpLHIuZGVsYXllZE5vdGlmaWNhdGlvblRpbWVyPW51bGwsQ2woKSk7dmFyIG49UGYoKTt0LnB1c2gobj8iXHUyNzEzIFx1NjNEMFx1NzkzQVx1OTdGMyI6Ilx1MjcxNyBcdTYzRDBcdTc5M0FcdTk3RjNcdUZGMDhcdTY1RTBcdTZDRDVcdTY0QURcdTY1M0VcdUZGMDkiKTt2YXIgaT1yLm5vdGlmQnViYmxlO2lmKGJhKHt0aXRsZToiXHU2RDRCXHU4QkQ1XHU5MDFBXHU3N0U1Iixib2R5OiJcdThGRDlcdTY2MkZcdTRFMDBcdTY3NjFcdTZENEJcdThCRDVcdTkwMUFcdTc3RTVcdTMwMDIiLHR5cGU6ImluZm8iLGljb246Ilx1MjY2QSIsZHVyYXRpb246NWUzLHBsYXlTb3VuZDohMX0pLHQucHVzaChpPyJcdTI3MTMgXHU1RTk0XHU3NTI4XHU1MTg1XHU2QzE0XHU2Q0UxIjoiXHUyMDEzIFx1NUU5NFx1NzUyOFx1NTE4NVx1NkMxNFx1NkNFMVx1RkYwOFx1NURGMlx1NTE3M1x1OTVFRFx1RkYwOSIpLGplKXt2YXIgYT1kaSgpO2lmKGE9PT0iZ3JhbnRlZCIpdHJ5e1dhbmROYXRpdmUuc2VuZE5vdGlmaWNhdGlvbigiV2FuZCBcdTZENEJcdThCRDVcdTkwMUFcdTc3RTUiLCJcdTdDRkJcdTdFREZcdTkwMUFcdTc3RTVcdTVERjJcdTZCNjNcdTVFMzhcdTVERTVcdTRGNUNcdTMwMDIiLCJ3YW5kLXRlc3QiKSx0LnB1c2goIlx1MjcxMyBcdTdDRkJcdTdFREZcdTkwMUFcdTc3RTUiKX1jYXRjaHt0LnB1c2goIlx1MjcxNyBcdTdDRkJcdTdFREZcdTkwMUFcdTc3RTVcdUZGMDhcdTUzRDFcdTkwMDFcdTU5MzFcdThEMjVcdUZGMDkiKX1lbHNlIGlmKGE9PT0iZGVuaWVkIil0LnB1c2goIlx1MjcxNyBcdTdDRkJcdTdFREZcdTkwMUFcdTc3RTVcdUZGMDhcdTVERjJcdTYyRDJcdTdFRERcdUZGMENcdThCRjdcdTU3MjhcdTdDRkJcdTdFREZcdThCQkVcdTdGNkVcdTRFMkRcdTVGMDBcdTU0MkZcdUZGMDkiKTtlbHNle3dpbmRvdy5fb25OYXRpdmVQZXJtaXNzaW9uUmVzdWx0PWZ1bmN0aW9uKG8pe2lmKEVuKCksbz09PSJncmFudGVkIil0cnl7V2FuZE5hdGl2ZS5zZW5kTm90aWZpY2F0aW9uKCJXYW5kIFx1NkQ0Qlx1OEJENVx1OTAxQVx1NzdFNSIsIlx1N0NGQlx1N0VERlx1OTAxQVx1NzdFNVx1NURGMlx1NkI2M1x1NUUzOFx1NURFNVx1NEY1Q1x1MzAwMiIsIndhbmQtdGVzdCIpLHQucHVzaCgiXHUyNzEzIFx1N0NGQlx1N0VERlx1OTAxQVx1NzdFNVx1RkYwOFx1NURGMlx1NjM4OFx1Njc0M1x1RkYwOSIpfWNhdGNoe3QucHVzaCgiXHUyNzE3IFx1N0NGQlx1N0VERlx1OTAxQVx1NzdFNVx1RkYwOFx1NTNEMVx1OTAwMVx1NTkzMVx1OEQyNVx1RkYwOSIpfWVsc2UgdC5wdXNoKCJcdTI3MTcgXHU3Q0ZCXHU3RURGXHU5MDFBXHU3N0U1XHVGRjA4XHU2NzJBXHU2Mzg4XHU2NzQzXHVGRjA5Iik7bnIoZSx0KSxkZWxldGUgd2luZG93Ll9vbk5hdGl2ZVBlcm1pc3Npb25SZXN1bHR9O3RyeXtXYW5kTmF0aXZlLnJlcXVlc3RQZXJtaXNzaW9uKCl9Y2F0Y2h7fXJldHVybn1ucihlLHQpO3JldHVybn1pZih0eXBlb2YgTm90aWZpY2F0aW9uPiJ1Iil7dC5wdXNoKCJcdTIwMTMgXHU3Q0ZCXHU3RURGXHU5MDFBXHU3N0U1XHVGRjA4XHU0RTBEXHU2NTJGXHU2MzAxXHVGRjA5IiksbnIoZSx0KTtyZXR1cm59dmFyIHU9Tm90aWZpY2F0aW9uLnBlcm1pc3Npb247aWYodT09PSJncmFudGVkIil7dHJ5e3ZhciBzPW5ldyBOb3RpZmljYXRpb24oIldhbmQgXHU2RDRCXHU4QkQ1XHU5MDFBXHU3N0U1Iix7Ym9keToiXHU3Q0ZCXHU3RURGXHU5MDFBXHU3N0U1XHU1REYyXHU2QjYzXHU1RTM4XHU1REU1XHU0RjVDXHUzMDAyIixpY29uOiIvZmF2aWNvbi5pY28iLHRhZzoid2FuZC10ZXN0In0pO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtzLmNsb3NlKCl9LDVlMyksdC5wdXNoKCJcdTI3MTMgXHU3Q0ZCXHU3RURGXHU5MDFBXHU3N0U1Iil9Y2F0Y2h7dC5wdXNoKCJcdTI3MTcgXHU3Q0ZCXHU3RURGXHU5MDFBXHU3N0U1XHVGRjA4XHU1M0QxXHU5MDAxXHU1OTMxXHU4RDI1XHVGRjBDXHU1M0VGXHU4MEZEXHU5NzAwXHU4OTgxIEhUVFBTXHVGRjA5Iil9bnIoZSx0KX1lbHNlIHU9PT0iZGVuaWVkIj8odC5wdXNoKCJcdTI3MTcgXHU3Q0ZCXHU3RURGXHU5MDFBXHU3N0U1XHVGRjA4XHU1REYyXHU2MkQyXHU3RUREXHVGRjA5IiksbnIoZSx0KSk6Tm90aWZpY2F0aW9uLnJlcXVlc3RQZXJtaXNzaW9uKCkudGhlbihmdW5jdGlvbihvKXtFbigpLG89PT0iZ3JhbnRlZCI/dC5wdXNoKCJcdTI3MTMgXHU3Q0ZCXHU3RURGXHU5MDFBXHU3N0U1XHVGRjA4XHU1REYyXHU2Mzg4XHU2NzQzXHVGRjA5Iik6dC5wdXNoKCJcdTI3MTcgXHU3Q0ZCXHU3RURGXHU5MDFBXHU3N0U1XHVGRjA4XHU2NzJBXHU2Mzg4XHU2NzQzXHVGRjA5IiksbnIoZSx0KX0pfWZ1bmN0aW9uIG5yKGUsdCl7aWYoZSl7ZS5pbm5lckhUTUw9dC5tYXAoZnVuY3Rpb24oaSl7cmV0dXJuIHAoaSl9KS5qb2luKCI8YnI+Iik7dmFyIG49dC5ldmVyeShmdW5jdGlvbihpKXtyZXR1cm4gaS5pbmRleE9mKCJcdTI3MTMiKT09PTB8fGkuaW5kZXhPZigiXHUyMDEzIik9PT0wfSk7ZS5zdHlsZS5jb2xvcj1uPyJ2YXIoLS1zdWNjZXNzKSI6InZhcigtLXdhcm5pbmcpIixlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpfX1mdW5jdGlvbiBodChlKXtpZighZXx8dHlwZW9mIGUhPSJvYmplY3QifHwhci50ZXJtaW5hbClyZXR1cm4gZTt0cnl7dHlwZW9mIHIudGVybWluYWwucmVtZWFzdXJlPT0iZnVuY3Rpb24iJiZyLnRlcm1pbmFsLnJlbWVhc3VyZSgpfWNhdGNoe312YXIgdD1yLnRlcm1pbmFsLmNvbHMsbj1yLnRlcm1pbmFsLnJvd3M7cmV0dXJuIHR5cGVvZiB0PT0ibnVtYmVyIiYmdHlwZW9mIG49PSJudW1iZXIiJiZOdW1iZXIuaXNGaW5pdGUodCkmJk51bWJlci5pc0Zpbml0ZShuKSYmdD4wJiZuPjAmJihlLmNvbHM9dCxlLnJvd3M9biksZX1mdW5jdGlvbiBEbCgpe3JldHVybiByLnRlcm1pbmFsJiZyLnRlcm1pbmFsLmNvbHM/UHJvbWlzZS5yZXNvbHZlKCk6bmV3IFByb21pc2UoZnVuY3Rpb24oZSl7dmFyIHQ9ITEsbj1mdW5jdGlvbigpe3R8fCh0PSEwLGUoKSl9LGk9c2V0VGltZW91dChuLDJlMyk7dHJ5e0puKCl9Y2F0Y2h7fXJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe3JlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe3IudGVybWluYWwmJnIudGVybWluYWwuY29scyYmKGNsZWFyVGltZW91dChpKSxuKCkpfSl9KX0pfWZ1bmN0aW9uIGtsKCl7dmFyIGU9dHQoKSx0PWV0KCksbj1JdChlLHIuY29uZmlnJiZyLmNvbmZpZy5kZWZhdWx0TW9kZT9yLmNvbmZpZy5kZWZhdWx0TW9kZToiZGVmYXVsdCIpO3IucHJlZmVycmVkQ29tbWFuZD1lLHIuY2hhdE1vZGU9SXQoZSxyLmNoYXRNb2RlKSxEbCgpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gZmV0Y2goIi9hcGkvY29tbWFuZHMiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KGh0KHtjb21tYW5kOmUscHJvdmlkZXI6ZSxjd2Q6dCxtb2RlOm59KSl9KX0pLnRoZW4oZnVuY3Rpb24oaSl7cmV0dXJuIGkuanNvbigpfSkudGhlbihmdW5jdGlvbihpKXtpZihpLmVycm9yKXtrKGkuZXJyb3IsImVycm9yIik7cmV0dXJufXJldHVybiByLnNlbGVjdGVkSWQ9aS5pZCx3ZSgpLHIuZHJhZnRzW2kuaWRdPSIiLEF0KCksUnQoKX0pLnRoZW4oZnVuY3Rpb24oKXtqdCghMCl9KS5jYXRjaChmdW5jdGlvbigpe2soIlx1NjVFMFx1NkNENVx1NTQyRlx1NTJBOFx1NEYxQVx1OEJERFx1MzAwMiIsImVycm9yIil9KX12YXIgX3I9ITE7ZnVuY3Rpb24gWW0oKXtpZighX3Ipe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjd2QiKSx0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtb2RhbC1lcnJvciIpLG49dHQoKSxpPXIuc2Vzc2lvbkNyZWF0ZUtpbmR8fCJzdHJ1Y3R1cmVkIixhPXIuc2Vzc2lvbkNyZWF0ZVdvcmt0cmVlPT09ITA7Y2kodCk7dmFyIHU9ZXQoKSxzPShlP2UudmFsdWUudHJpbSgpOiIiKXx8dSxvPUl0KG4sci5tb2RlVmFsdWUpO2lmKGk9PT0ic3RydWN0dXJlZCIpe1FtKHMsbyxhLHQpO3JldHVybn0kbShuLHMsbyxhLHQpfX1mdW5jdGlvbiBRbShlLHQsbixpKXt2YXIgYT1yLnNlc3Npb25Ub29sPT09ImNvZGV4Ij8iY29kZXgiOiJjbGF1ZGUiO3JldHVybiBfcj0hMCxyLm1vZGVWYWx1ZT10LHIuY2hhdE1vZGU9dCxyLnNlc3Npb25Ub29sPWEsci5wcmVmZXJyZWRDb21tYW5kPWEseGkoKSxabihndCgpKSxtbCh2b2lkIDAsZSx0LG4pLnRoZW4oZnVuY3Rpb24odSl7cmV0dXJuIGVuKGUpLHluKCksVXQoKSx1fSkudGhlbihmdW5jdGlvbigpe2p0KCEwKX0pLmNhdGNoKGZ1bmN0aW9uKHUpe1BlKGksdSYmdS5tZXNzYWdlfHwiXHU2NUUwXHU2Q0Q1XHU1NDJGXHU1MkE4XHU3RUQzXHU2Nzg0XHU1MzE2XHU0RjFBXHU4QkREXHVGRjBDXHU4QkY3XHU3ODZFXHU4QkE0IENsYXVkZSBcdTVERjJcdTZCNjNcdTc4NkVcdTVCODlcdTg4QzVcdTMwMDIiKX0pLmZpbmFsbHkoZnVuY3Rpb24oKXtfcj0hMX0pfWZ1bmN0aW9uICRtKGUsdCxuLGksYSl7X3I9ITAsci5tb2RlVmFsdWU9bixyLmNoYXRNb2RlPW4sci5zZXNzaW9uVG9vbD1lLHIucHJlZmVycmVkQ29tbWFuZD1lLHhpKCksRGwoKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGZldGNoKCIvYXBpL2NvbW1hbmRzIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeShodCh7Y29tbWFuZDplLHByb3ZpZGVyOmUsY3dkOnQsbW9kZTpuLHdvcmt0cmVlRW5hYmxlZDppfSkpfSl9KS50aGVuKGZ1bmN0aW9uKHUpe3JldHVybiB1Lmpzb24oKX0pLnRoZW4oZnVuY3Rpb24odSl7aWYodS5lcnJvcil7UGUoYSx1LmVycm9yKTtyZXR1cm59cmV0dXJuIHIuc2VsZWN0ZWRJZD11LmlkLHdlKCksZW4odCksci5kcmFmdHNbdS5pZF09IiIsQXQoKSx5bigpLFV0KCksUnQoKX0pLnRoZW4oZnVuY3Rpb24oKXtyLnNlbGVjdGVkSWQ/enQoci5zZWxlY3RlZElkKTpqdCghMCl9KS5jYXRjaChmdW5jdGlvbigpe1BlKGEsZT09PSJjb2RleCI/Ilx1NjVFMFx1NkNENVx1NTQyRlx1NTJBOCBDb2RleCBcdTRGMUFcdThCRERcdUZGMENcdThCRjdcdTc4NkVcdThCQTQgY29kZXggXHU1REYyXHU2QjYzXHU3ODZFXHU1Qjg5XHU4OEM1XHU1RTc2XHU1M0VGXHU1NzI4XHU3RUM4XHU3QUVGXHU0RTJEXHU2MjY3XHU4ODRDXHUzMDAyIjoiXHU2NUUwXHU2Q0Q1XHU1NDJGXHU1MkE4IENsYXVkZSBcdTRGMUFcdThCRERcdUZGMENcdThCRjdcdTc4NkVcdThCQTQgQ2xhdWRlIFx1NURGMlx1NkI2M1x1Nzg2RVx1NUI4OVx1ODhDNVx1MzAwMiIpfSkuZmluYWxseShmdW5jdGlvbigpe19yPSExfSl9ZnVuY3Rpb24gWG0oKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYmxhbmstY2hhdC1jd2QiKTtlJiYoZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsQWwpLGUuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsZnVuY3Rpb24odCl7KHQua2V5PT09IkVudGVyInx8dC5rZXk9PT0iICIpJiYodC5wcmV2ZW50RGVmYXVsdCgpLEFsKCkpfSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKHQpe3ZhciBuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJibGFuay1jaGF0LWN3ZC1kcm9wZG93biIpO2lmKCEoIW58fG4uY2xhc3NMaXN0LmNvbnRhaW5zKCJoaWRkZW4iKSkmJiF0LnRhcmdldC5jbG9zZXN0KCIuYmxhbmstY2hhdC1jd2Qtd3JhcCIpKXtuLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpO3ZhciBpPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJibGFuay1jaGF0LWN3ZC1hcnJvdyIpO2kmJihpLnRleHRDb250ZW50PSJcdTI1QkMiKX19KSl9ZnVuY3Rpb24gQWwoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYmxhbmstY2hhdC1jd2QtZHJvcGRvd24iKSx0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJibGFuay1jaGF0LWN3ZC1hcnJvdyIpO2lmKGUpe3ZhciBuPWUuY2xhc3NMaXN0LmNvbnRhaW5zKCJoaWRkZW4iKTtuPyhabShlKSxlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLHQmJih0LnRleHRDb250ZW50PSJcdTI1QjIiKSk6KGUuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksdCYmKHQudGV4dENvbnRlbnQ9Ilx1MjVCQyIpKX19ZnVuY3Rpb24gWm0oZSl7dmFyIHQ9c24oKTtlLmlubmVySFRNTD0nPGRpdiBjbGFzcz0iYmxhbmstY2hhdC1jd2QtbG9hZGluZyI+XHU1MkEwXHU4RjdEXHU0RTJELi4uPC9kaXY+JyxkYShmdW5jdGlvbihuKXt2YXIgaT0iIixhPXIud29ya2luZ0Rpcnx8dDtpZihpKz0nPGRpdiBjbGFzcz0iYmxhbmstY2hhdC1jd2QtaXRlbScrKGE9PT10PyIgYWN0aXZlIjoiIikrJyIgZGF0YS1wYXRoPSInK3AodCkrJyI+PHNwYW4gY2xhc3M9ImJsYW5rLWNoYXQtY3dkLWl0ZW0tbGFiZWwiPlx1OUVEOFx1OEJBNDwvc3Bhbj4nK2x0KHQsImJsYW5rLWNoYXQtY3dkLWl0ZW0tcGF0aCIpKyI8L2Rpdj4iLG4ubGVuZ3RoKXt2YXIgdT17fTt1W3RdPSEwLG4uZm9yRWFjaChmdW5jdGlvbihzKXt1W3MucGF0aF18fCh1W3MucGF0aF09ITAsaSs9JzxkaXYgY2xhc3M9ImJsYW5rLWNoYXQtY3dkLWl0ZW0nKyhhPT09cy5wYXRoPyIgYWN0aXZlIjoiIikrJyIgZGF0YS1wYXRoPSInK3Aocy5wYXRoKSsnIj4nK2x0KHMucGF0aCwiYmxhbmstY2hhdC1jd2QtaXRlbS1wYXRoIikrIjwvZGl2PiIpfSl9ZS5pbm5lckhUTUw9aSxLdChlKSxlLnF1ZXJ5U2VsZWN0b3JBbGwoIi5ibGFuay1jaGF0LWN3ZC1pdGVtIikuZm9yRWFjaChmdW5jdGlvbihzKXtzLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihvKXtvLnN0b3BQcm9wYWdhdGlvbigpO3ZhciBsPXMuZGF0YXNldC5wYXRoO3Iud29ya2luZ0Rpcj1sO3RyeXtsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgid2FuZC13b3JraW5nLWRpciIsbCl9Y2F0Y2h7fXZhciBjPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJibGFuay1jaGF0LWN3ZC1wYXRoIik7RXUoYyxsKSxlLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpO3ZhciBmPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJibGFuay1jaGF0LWN3ZC1hcnJvdyIpO2YmJihmLnRleHRDb250ZW50PSJcdTI1QkMiKTt2YXIgZD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZm9sZGVyLXBpY2tlci1pbnB1dCIpO2QmJihkLnZhbHVlPWwpfSl9KX0pfWZ1bmN0aW9uIGVnKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlY2VudC1wYXRocy1idWJibGVzIik7ZSYmZGEoZnVuY3Rpb24odCl7aWYoIXQubGVuZ3RoKXtlLmlubmVySFRNTD0iIjtyZXR1cm59ZS5pbm5lckhUTUw9dC5tYXAoZnVuY3Rpb24obil7cmV0dXJuJzxidXR0b24gY2xhc3M9InJlY2VudC1wYXRoLWJ1YmJsZSIgZGF0YS1wYXRoPSInK3Aobi5wYXRoKSsnIiB0aXRsZT0iJytwKG4ucGF0aCkrJyI+JytsdChuLnBhdGgsInJlY2VudC1wYXRoLWJ1YmJsZS1wYXRoIikrIjwvYnV0dG9uPiJ9KS5qb2luKCIiKSxLdChlKSxlLnF1ZXJ5U2VsZWN0b3JBbGwoIi5yZWNlbnQtcGF0aC1idWJibGUiKS5mb3JFYWNoKGZ1bmN0aW9uKG4pe24uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7dmFyIGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImN3ZCIpO2kmJihpLnZhbHVlPW4uZGF0YXNldC5wYXRofHwiIixyLmN3ZFZhbHVlPW4uZGF0YXNldC5wYXRofHwiIil9KX0pfSl9ZnVuY3Rpb24geGwoKXtyLnN1Z2dlc3Rpb25UaW1lciYmY2xlYXJUaW1lb3V0KHIuc3VnZ2VzdGlvblRpbWVyKSxyLnN1Z2dlc3Rpb25UaW1lcj1zZXRUaW1lb3V0KHRnLDEyMCl9ZnVuY3Rpb24gdGcoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2Vzc2lvbi1tb2RhbCIpO2lmKGUmJmUuY2xhc3NMaXN0LmNvbnRhaW5zKCJoaWRkZW4iKSl7cnIoKTtyZXR1cm59dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImN3ZCIpO3QmJmZldGNoKCIvYXBpL3BhdGgtc3VnZ2VzdGlvbnM/cT0iK2VuY29kZVVSSUNvbXBvbmVudCh0LnZhbHVlLnRyaW0oKSkse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKG4pe3JldHVybiBuLmpzb24oKX0pLnRoZW4obmcpLmNhdGNoKHJyKX1mdW5jdGlvbiBuZyhlKXt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY3dkLXN1Z2dlc3Rpb25zIik7aWYoIXR8fCFlLmxlbmd0aCl7cnIoKTtyZXR1cm59dC5pbm5lckhUTUw9ZS5tYXAoZnVuY3Rpb24obil7cmV0dXJuJzxidXR0b24gY2xhc3M9InN1Z2dlc3Rpb24taXRlbSIgZGF0YS1wYXRoPSInK3Aobi5wYXRoKSsnIj48c3Ryb25nPicrcChuLm5hbWUpKyI8L3N0cm9uZz48c21hbGw+IitsdChuLnBhdGgsInN1Z2dlc3Rpb24taXRlbS1wYXRoIikrIjwvc21hbGw+PC9idXR0b24+In0pLmpvaW4oIiIpLEt0KHQpLHQucXVlcnlTZWxlY3RvckFsbCgiLnN1Z2dlc3Rpb24taXRlbSIpLmZvckVhY2goZnVuY3Rpb24obil7bi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXtkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY3dkIikudmFsdWU9bi5kYXRhc2V0LnBhdGh8fCIiLHIuY3dkVmFsdWU9bi5kYXRhc2V0LnBhdGh8fCIiLHJyKCl9KX0pLHQuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIil9ZnVuY3Rpb24gcnIoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY3dkLXN1Z2dlc3Rpb25zIik7ZSYmKGUuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksZS5pbm5lckhUTUw9IiIpfWZ1bmN0aW9uIHJnKGUpe2lmKCFlLmlzQ29tcG9zaW5nKXtpZih2byhlKSl7TWEoZSk7cmV0dXJufWlmKGUua2V5PT09IkVudGVyIil7aWYoZS5zaGlmdEtleSl7ZS5wcmV2ZW50RGVmYXVsdCgpO3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dC1ib3giKTtpZih0KXt2YXIgbj10LnNlbGVjdGlvblN0YXJ0fHwwLGk9dC52YWx1ZSxhPWkuc2xpY2UoMCxuKStgCmAraS5zbGljZShuKTt0LnZhbHVlPWEsdC5zZWxlY3Rpb25TdGFydD1uKzEsdC5zZWxlY3Rpb25FbmQ9bisxLG90KGEsITApLE50KHQpfXJldHVybn1lLnByZXZlbnREZWZhdWx0KCk7dmFyIHU9ISEoZS5tZXRhS2V5fHxlLmN0cmxLZXkpO2lvKHU/e2ludGVycnVwdDohMH06dm9pZCAwKTtyZXR1cm59aWYoZS5rZXk9PT0iQmFja3NwYWNlIil7c2V0VGltZW91dChmdW5jdGlvbigpe3ZhciBtPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dC1ib3giKTttJiZvdChtLnZhbHVlLCEwKX0sMCk7cmV0dXJufWlmKGUua2V5PT09IlRhYiIpe2UucHJldmVudERlZmF1bHQoKTt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wdXQtYm94Iik7aWYodCl7dmFyIG49dC5zZWxlY3Rpb25TdGFydHx8MCxpPXQudmFsdWUsYT1pLnNsaWNlKDAsbikrIgkiK2kuc2xpY2Uobik7dC52YWx1ZT1hLG90KGEsITApfXJldHVybn1pZihlLmtleT09PSJFc2NhcGUiKXtlLnByZXZlbnREZWZhdWx0KCk7dmFyIHM9Z3QoKTt1ZShzKT9zJiZzLnN0cnVjdHVyZWRTdGF0ZSYmcy5zdHJ1Y3R1cmVkU3RhdGUuaW5GbGlnaHQmJnFhKCk6d3QoQXIoImVzY2FwZSIpLCJlc2NhcGUiKTtyZXR1cm59aWYoKGUubWV0YUtleXx8ZS5jdHJsS2V5KSYmZS5rZXkudG9Mb3dlckNhc2UoKT09PSJjIil7dmFyIG89ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0LWJveCIpLGw9byYmby5zZWxlY3Rpb25TdGFydCE9PW8uc2VsZWN0aW9uRW5kfHxoaSgpO2lmKGwpcmV0dXJuO3ZhciBjPWd0KCk7aWYodWUoYykpe2UucHJldmVudERlZmF1bHQoKSxjJiZjLnN0cnVjdHVyZWRTdGF0ZSYmYy5zdHJ1Y3R1cmVkU3RhdGUuaW5GbGlnaHQmJnFhKCk7cmV0dXJufWUucHJldmVudERlZmF1bHQoKSx3dChBcigiY3RybF9jIiksImN0cmxfYyIpO3JldHVybn1pZigoZS5tZXRhS2V5fHxlLmN0cmxLZXkpJiZlLmtleS50b0xvd2VyQ2FzZSgpPT09ImQiKXt2YXIgZj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wdXQtYm94IiksZD1mJiZmLnNlbGVjdGlvblN0YXJ0IT09Zi5zZWxlY3Rpb25FbmR8fGhpKCk7aWYoZClyZXR1cm47dmFyIHY9Z3QoKTtpZih1ZSh2KSl7ZS5wcmV2ZW50RGVmYXVsdCgpO3JldHVybn1lLnByZXZlbnREZWZhdWx0KCksd3QoQXIoImN0cmxfZCIpLCJjdHJsX2QiKTtyZXR1cm59aWYoKGUubWV0YUtleXx8ZS5jdHJsS2V5KSYmZS5rZXkudG9Mb3dlckNhc2UoKT09PSJsIil7ZS5wcmV2ZW50RGVmYXVsdCgpO3ZhciBoPWd0KCk7aWYodWUoaCkpcmV0dXJuO3d0KEFyKCJjdHJsX2wiKSwiY3RybF9sIik7cmV0dXJufWlmKCEoKGUubWV0YUtleXx8ZS5jdHJsS2V5KSYmZS5rZXkudG9Mb3dlckNhc2UoKT09PSJhIikmJiEoKGUubWV0YUtleXx8ZS5jdHJsS2V5KSYmZS5rZXkudG9Mb3dlckNhc2UoKT09PSJ2Iikpe2lmKChlLm1ldGFLZXl8fGUuY3RybEtleSkmJmUua2V5LnRvTG93ZXJDYXNlKCk9PT0ieCIpe3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dC1ib3giKSxnPXQmJnQuc2VsZWN0aW9uU3RhcnQhPT10LnNlbGVjdGlvbkVuZDtpZihnKXJldHVybjtlLnByZXZlbnREZWZhdWx0KCksd3QoIhgiLCJjdHJsX3giKTtyZXR1cm59ZS5rZXkubGVuZ3RoPT09MSYmIWUuY3RybEtleSYmIWUubWV0YUtleSYmIWUuYWx0S2V5JiZzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIG09ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0LWJveCIpO20mJm90KG0udmFsdWUpfSwwKX19fXZhciBpZz0xMCoxMDI0KjEwMjQ7ZnVuY3Rpb24gYWcoZSl7cmV0dXJuIGU8MTAyND9lKyIgQiI6ZTwxMDI0KjEwMjQ/KGUvMTAyNCkudG9GaXhlZCgxKSsiIEtCIjooZS8oMTAyNCoxMDI0KSkudG9GaXhlZCgxKSsiIE1CIn1mdW5jdGlvbiB1ZyhlKXtyZXR1cm4vXmltYWdlXC8ocG5nfGpwZT9nfGdpZnx3ZWJwfGJtcHxzdmdcK3htbCkvLnRlc3QoZSl9ZnVuY3Rpb24gcHUoZSl7aWYoZSl7aWYoZS5zaXplPmlnKXtrKCJcdTY1ODdcdTRFRjZcdThGQzdcdTU5MjdcdUZGMDhcdTRFMEFcdTk2NTAgMTAgTUJcdUZGMDk6ICIrZS5uYW1lLCJlcnJvciIpO3JldHVybn12YXIgdD17ZmlsZTplLG5hbWU6ZS5uYW1lLHNpemU6ZS5zaXplLHByZXZpZXdVcmw6bnVsbH07dWcoZS50eXBlKSYmKHQucHJldmlld1VybD1VUkwuY3JlYXRlT2JqZWN0VVJMKGUpKSxyLnBlbmRpbmdBdHRhY2htZW50cy5wdXNoKHQpLHZ1KCl9fWZ1bmN0aW9uIHNnKGUpe3ZhciB0PXIucGVuZGluZ0F0dGFjaG1lbnRzLnNwbGljZShlLDEpO3QubGVuZ3RoJiZ0WzBdLnByZXZpZXdVcmwmJlVSTC5yZXZva2VPYmplY3RVUkwodFswXS5wcmV2aWV3VXJsKSx2dSgpfWZ1bmN0aW9uIG9nKCl7ci5wZW5kaW5nQXR0YWNobWVudHMuZm9yRWFjaChmdW5jdGlvbihlKXtlLnByZXZpZXdVcmwmJlVSTC5yZXZva2VPYmplY3RVUkwoZS5wcmV2aWV3VXJsKX0pLHIucGVuZGluZ0F0dGFjaG1lbnRzPVtdLHZ1KCl9ZnVuY3Rpb24gdnUoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXR0YWNobWVudC1wcmV2aWV3Iik7aWYoZSl7dmFyIHQ9ci5wZW5kaW5nQXR0YWNobWVudHM7aWYodC5sZW5ndGg9PT0wKXtlLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLGUuaW5uZXJIVE1MPSIiO3JldHVybn1lLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpO2Zvcih2YXIgbj0iIixpPTA7aTx0Lmxlbmd0aDtpKyspe3ZhciBhPXRbaV0sdT1hLnByZXZpZXdVcmw/JzxpbWcgc3JjPSInK3AoYS5wcmV2aWV3VXJsKSsnIiBhbHQ9IiI+JzonPHNwYW4gY2xhc3M9ImF0dC1pY29uIj4nK3ooImZpbGUiLHtzaXplOjEzLHN0cm9rZVdpZHRoOjEuN30pKyI8L3NwYW4+IjtuKz0nPHNwYW4gY2xhc3M9ImF0dGFjaG1lbnQtcGlsbCIgZGF0YS1pbmRleD0iJytpKyciPicrdSsnPHNwYW4gY2xhc3M9ImF0dC1uYW1lIiB0aXRsZT0iJytwKGEubmFtZSkrJyI+JytwKGEubmFtZSkrJzwvc3Bhbj48c3BhbiBjbGFzcz0iYXR0LXNpemUiPicrYWcoYS5zaXplKSsnPC9zcGFuPjxidXR0b24gY2xhc3M9ImF0dC1yZW1vdmUiIGRhdGEtaW5kZXg9IicraSsnIiB0aXRsZT0iXHU3OUZCXHU5NjY0Ij5ceEQ3PC9idXR0b24+PC9zcGFuPid9ZS5pbm5lckhUTUw9bixlLnF1ZXJ5U2VsZWN0b3JBbGwoIi5hdHQtcmVtb3ZlIikuZm9yRWFjaChmdW5jdGlvbihzKXtzLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihvKXtvLnByZXZlbnREZWZhdWx0KCksby5zdG9wUHJvcGFnYXRpb24oKSxzZyhwYXJzZUludChzLmdldEF0dHJpYnV0ZSgiZGF0YS1pbmRleCIpLDEwKSl9KX0pfX1mdW5jdGlvbiBsZyhlKXtpZighci5wZW5kaW5nQXR0YWNobWVudHMubGVuZ3RoKXJldHVybiBQcm9taXNlLnJlc29sdmUoW10pO3ZhciB0PW5ldyBGb3JtRGF0YTtyZXR1cm4gci5wZW5kaW5nQXR0YWNobWVudHMuZm9yRWFjaChmdW5jdGlvbihuKXt0LmFwcGVuZCgiZmlsZXMiLG4uZmlsZSxuLm5hbWUpfSksZmV0Y2goIi9hcGkvc2Vzc2lvbnMvIitlbmNvZGVVUklDb21wb25lbnQoZSkrIi91cGxvYWQiLHttZXRob2Q6IlBPU1QiLGJvZHk6dCxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gbi5vaz9uLmpzb24oKTpuLmpzb24oKS50aGVuKGZ1bmN0aW9uKGkpe3Rocm93IG5ldyBFcnJvcihpLmVycm9yfHwiXHU0RTBBXHU0RjIwXHU1OTMxXHU4RDI1Iil9KX0pLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIG4uZmlsZXN8fFtdfSl9ZnVuY3Rpb24gY2coZSl7aWYoIWV8fCFlLmxlbmd0aClyZXR1cm4iIjt2YXIgdD1lLm1hcChmdW5jdGlvbihuKXtyZXR1cm4gbi5zYXZlZFBhdGh9KTtyZXR1cm5gW1x1OTY0NFx1NEVGNlx1NURGMlx1NEUwQVx1NEYyMFx1RkYwQ1x1OEJGN1x1NjdFNVx1NzcwQlx1NEVFNVx1NEUwQlx1NjU4N1x1NEVGNjoKYCt0LmpvaW4oYApgKStgXQoKYH1mdW5jdGlvbiBTbChlKXtpZighci50ZXJtaW5hbEludGVyYWN0aXZlfHwhZXx8ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygiaXMtd2FuZC1lbWJlZC10ZXJtaW5hbCIpKXJldHVybiExO3ZhciB0PWUudmFsdWV8fCIiO3JldHVybiB0Pyh3dCh0LCJpbnRlcmFjdGl2ZV90ZXh0IikuY2F0Y2goZnVuY3Rpb24oKXt9KSxlLnZhbHVlPSIiLE50KGUpLG90KCIiLCEwKSwhMCk6ITF9ZnVuY3Rpb24gZGcoZSl7dmFyIHQ9ZS5jbGlwYm9hcmREYXRhJiZlLmNsaXBib2FyZERhdGEuaXRlbXM7aWYodCYmIXIudGVybWluYWxJbnRlcmFjdGl2ZSl7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspaWYodFtuXS50eXBlLmluZGV4T2YoImltYWdlLyIpPT09MCl7ZS5wcmV2ZW50RGVmYXVsdCgpO3ZhciBpPXRbbl0uZ2V0QXNGaWxlKCk7aSYmcHUoaSk7cmV0dXJufX12YXIgYT1lLmNsaXBib2FyZERhdGEmJmUuY2xpcGJvYXJkRGF0YS5nZXREYXRhKCJ0ZXh0Iik7aWYoYSl7aWYoZS5wcmV2ZW50RGVmYXVsdCgpLHIudGVybWluYWxJbnRlcmFjdGl2ZSl7d3QoYSwicGFzdGUiKS5jYXRjaChmdW5jdGlvbigpe30pO3JldHVybn12YXIgdT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wdXQtYm94Iik7aWYodSl7dmFyIHM9dS5zZWxlY3Rpb25TdGFydHx8MCxvPXUuc2VsZWN0aW9uRW5kfHwwLGw9dS52YWx1ZSxjPWwuc2xpY2UoMCxzKSthK2wuc2xpY2Uobyk7dS52YWx1ZT1jLG90KGMpfX19ZnVuY3Rpb24gcmgoZSl7d3QoZSksb3QoZmcoKStlKX1mdW5jdGlvbiBmZygpe2lmKHIuc2VsZWN0ZWRJZCl7aWYoci5kcmFmdHNbci5zZWxlY3RlZElkXSE9PXZvaWQgMClyZXR1cm4gci5kcmFmdHNbci5zZWxlY3RlZElkXTt0cnl7dmFyIGU9bG9jYWxTdG9yYWdlLmdldEl0ZW0oIndhbmQtZHJhZnQtIityLnNlbGVjdGVkSWQpO2lmKGUpcmV0dXJuIGV9Y2F0Y2h7fX1yZXR1cm4iIn1mdW5jdGlvbiBvdChlLHQpe2lmKHIuc2VsZWN0ZWRJZCl7ci5kcmFmdHNbci5zZWxlY3RlZElkXT1lO3RyeXtsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgid2FuZC1kcmFmdC0iK3Iuc2VsZWN0ZWRJZCxlKX1jYXRjaHt9aWYoIXQpe3ZhciBuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dC1ib3giKTtuJiYobi52YWx1ZT1lKX19fXZhciBtdT0hMTtmdW5jdGlvbiBwZygpe2lmKCFtdSl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0LWJveCIpLHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInByb21wdC1vcHRpbWl6ZS1idG4iKSxuPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5pbnB1dC1jb21wb3NlciIpO2lmKGUpe3ZhciBpPShlLnZhbHVlfHwiIikudHJpbSgpO2lmKCFpKXt0eXBlb2Ygaz09ImZ1bmN0aW9uIiYmaygiXHU4QkY3XHU1MTQ4XHU4RjkzXHU1MTY1XHU4OTgxXHU0RjE4XHU1MzE2XHU3Njg0XHU1MTg1XHU1QkI5XHUzMDAyIiwiaW5mbyIpLGUuZm9jdXMoKTtyZXR1cm59bXU9ITAsdCYmKHQuY2xhc3NMaXN0LmFkZCgiaXMtbG9hZGluZyIpLHQuZGlzYWJsZWQ9ITAsdC5zZXRBdHRyaWJ1dGUoInRpdGxlIiwiXHU2QjYzXHU1NzI4XHU0RjE4XHU1MzE2XHUyMDI2IikpLG4mJm4uY2xhc3NMaXN0LmFkZCgiaXMtb3B0aW1pemluZyIpLGUuc2V0QXR0cmlidXRlKCJhcmlhLWJ1c3kiLCJ0cnVlIik7dmFyIGE9ZS5yZWFkT25seTtlLnJlYWRPbmx5PSEwO3ZhciB1PXt0ZXh0Oml9O3ImJnIuc2VsZWN0ZWRJZCYmKHUuc2Vzc2lvbklkPXIuc2VsZWN0ZWRJZCksZmV0Y2goIi9hcGkvb3B0aW1pemUtcHJvbXB0Iix7bWV0aG9kOiJQT1NUIixjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sYm9keTpKU09OLnN0cmluZ2lmeSh1KX0pLnRoZW4oZnVuY3Rpb24ocyl7cmV0dXJuIHMuanNvbigpLnRoZW4oZnVuY3Rpb24obyl7cmV0dXJue29rOnMub2ssZGF0YTpvfX0pfSkudGhlbihmdW5jdGlvbihzKXtpZighcy5vayl0aHJvdyBuZXcgRXJyb3Iocy5kYXRhJiZzLmRhdGEuZXJyb3J8fCJcdTYzRDBcdTc5M0FcdThCQ0RcdTRGMThcdTUzMTZcdTU5MzFcdThEMjVcdTMwMDIiKTt2YXIgbz1zLmRhdGEmJnMuZGF0YS5vcHRpbWl6ZWR8fCIiO2lmKCFvKXRocm93IG5ldyBFcnJvcigiQ2xhdWRlIFx1OEZENFx1NTZERVx1NEUzQVx1N0E3QVx1MzAwMiIpO3ZnKGUsbyl9KS5jYXRjaChmdW5jdGlvbihzKXt0eXBlb2Ygaz09ImZ1bmN0aW9uIiYmayhzJiZzLm1lc3NhZ2V8fCJcdTYzRDBcdTc5M0FcdThCQ0RcdTRGMThcdTUzMTZcdTU5MzFcdThEMjVcdTMwMDIiLCJlcnJvciIpLHQmJih0LmNsYXNzTGlzdC5yZW1vdmUoImlzLWxvYWRpbmciKSx0LmNsYXNzTGlzdC5hZGQoImlzLXNoYWtlIiksc2V0VGltZW91dChmdW5jdGlvbigpe3QmJnQuY2xhc3NMaXN0LnJlbW92ZSgiaXMtc2hha2UiKX0sNDAwKSl9KS5maW5hbGx5KGZ1bmN0aW9uKCl7bXU9ITEsdCYmKHQuY2xhc3NMaXN0LnJlbW92ZSgiaXMtbG9hZGluZyIpLHQuZGlzYWJsZWQ9ITEsdC5zZXRBdHRyaWJ1dGUoInRpdGxlIiwiXHU2M0QwXHU3OTNBXHU4QkNEXHU0RjE4XHU1MzE2XHVGRjA4QUlcdUZGMDkiKSksbiYmbi5jbGFzc0xpc3QucmVtb3ZlKCJpcy1vcHRpbWl6aW5nIiksZS5yZW1vdmVBdHRyaWJ1dGUoImFyaWEtYnVzeSIpLGUucmVhZE9ubHk9YX0pfX19ZnVuY3Rpb24gdmcoZSx0KXtpZighZSlyZXR1cm47dmFyIG49QXJyYXkuZnJvbSh0KSxpPW4ubGVuZ3RoO2lmKGk9PT0wKXtlLnZhbHVlPSIiLG90KCIiLCEwKSxOdChlKTtyZXR1cm59dmFyIGE9TWF0aC5taW4oNzAwLE1hdGgubWF4KDIyMCxpKjgpKSx1PU1hdGgubWluKGksNjApLHM9TWF0aC5jZWlsKGkvdSksbz1hL3UsbD0wO2UudmFsdWU9IiIsTnQoZSk7ZnVuY3Rpb24gYygpe2lmKGw9TWF0aC5taW4oaSxsK3MpLGUudmFsdWU9bi5zbGljZSgwLGwpLmpvaW4oIiIpLE50KGUpLGw8aSlzZXRUaW1lb3V0KGMsbyk7ZWxzZXtvdCh0LCEwKTt0cnl7ZS5zZXRTZWxlY3Rpb25SYW5nZSh0Lmxlbmd0aCx0Lmxlbmd0aCl9Y2F0Y2h7fX19YygpfWZ1bmN0aW9uIEhpKGUpe3ZhciB0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5pbnB1dC1jb21wb3NlciIpO2lmKHQpe3ZhciBuPWV8fGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dC1ib3giKSxpPSEhKG4mJm4udmFsdWUmJm4udmFsdWUubGVuZ3RoPjApO3QuY2xhc3NMaXN0LnRvZ2dsZSgiaGFzLXRleHQiLGkpfX1yLl9zdGF0dXNCYXJUaW1lcklkPW51bGwsci5fc3RhdHVzQmFyU3RhcnRUaW1lPTA7dmFyIE5yPW51bGwsX2k9MDtmdW5jdGlvbiBndShlKXtpZighZSlyZXR1cm57YWN0aXZlOiExfTtpZihlLmFyY2hpdmVkKXJldHVybnthY3RpdmU6ITF9O3ZhciB0PSEhZS5wZXJtaXNzaW9uQmxvY2tlZCxuPSEhKHVlKGUpJiZlLnN0cnVjdHVyZWRTdGF0ZSYmZS5zdHJ1Y3R1cmVkU3RhdGUuaW5GbGlnaHQpLGk9IXVlKGUpJiZlLnN0YXR1cz09PSJydW5uaW5nIjtyZXR1cm57YWN0aXZlOm58fGl8fHQsaW5GbGlnaHQ6bixwdHlSdW5uaW5nOmkscGVybWlzc2lvbkJsb2NrZWQ6dH19ZnVuY3Rpb24gbWcoZSl7dmFyIHQ9TWF0aC5tYXgoMCxNYXRoLmZsb29yKGUvMWUzKSk7aWYodDw2MClyZXR1cm4gdCsicyI7dmFyIG49TWF0aC5mbG9vcih0LzYwKSxpPXQlNjA7aWYobjw2MClyZXR1cm4gbisibSIrKGk/IiAiK2krInMiOiIiKTt2YXIgYT1NYXRoLmZsb29yKG4vNjApLHU9biU2MDtyZXR1cm4gYSsiaCIrKHU/IiAiK3UrIm0iOiIiKX1mdW5jdGlvbiBodShlKXt2YXIgdD1ndShlKSxuPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5tYWluLWhlYWRlci1yb3ciKSxpPW4/bi5xdWVyeVNlbGVjdG9yKCIuc2Vzc2lvbi1zdGF0dXMtcGlsbCIpOm51bGwsYT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuY2hhdC1tZXNzYWdlcyIpO2lmKG4mJihuLmNsYXNzTGlzdC50b2dnbGUoImlzLXJ1bm5pbmciLHQuYWN0aXZlKSxuLmNsYXNzTGlzdC50b2dnbGUoImlzLXBlcm1pc3Npb24tYmxvY2tlZCIsdC5wZXJtaXNzaW9uQmxvY2tlZCkpLGkpe3ZhciB1PWkucXVlcnlTZWxlY3RvcigiLnNlc3Npb24tc3RhdHVzLWVsYXBzZWQiKTtpZih0LmluRmxpZ2h0KXtfaXx8KF9pPXIuX3N0YXR1c0JhclN0YXJ0VGltZT4wP3IuX3N0YXR1c0JhclN0YXJ0VGltZTpEYXRlLm5vdygpKTt2YXIgcz1tZyhEYXRlLm5vdygpLV9pKTt1fHwodT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIiksdS5jbGFzc05hbWU9InNlc3Npb24tc3RhdHVzLWVsYXBzZWQiLGkuYXBwZW5kQ2hpbGQodSkpLHUudGV4dENvbnRlbnQ9c31lbHNlIF9pPTAsdSYmdS5yZW1vdmUoKX10LmFjdGl2ZT9Ocnx8KE5yPXNldEludGVydmFsKGZ1bmN0aW9uKCl7dmFyIG89ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGwpe3JldHVybiBsLmlkPT09ci5zZWxlY3RlZElkfSk7aHUobyl9LDFlMykpOk5yJiYoY2xlYXJJbnRlcnZhbChOciksTnI9bnVsbCl9ZnVuY3Rpb24geXUoZSx0KXtodSh0KTt2YXIgbj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuY29tcG9zZXItdG9wLXJvdyIpLGk9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnN0cnVjdHVyZWQtc3RhdHVzLWJhciIpLGE9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLmlucHV0LWNvbXBvc2VyIik7aWYoIXR8fCF1ZSh0KSl7aSYmaS5yZW1vdmUoKSxhJiZhLmNsYXNzTGlzdC5yZW1vdmUoImluLWZsaWdodCIpLGNsZWFySW50ZXJ2YWwoci5fc3RhdHVzQmFyVGltZXJJZCksci5fc3RhdHVzQmFyVGltZXJJZD1udWxsO3JldHVybn12YXIgdT10LnN0cnVjdHVyZWRTdGF0ZSYmdC5zdHJ1Y3R1cmVkU3RhdGUuaW5GbGlnaHQ7aWYodSl7aWYoci5fc3RhdHVzQmFyVGltZXJJZHx8KHIuX3N0YXR1c0JhclN0YXJ0VGltZT1EYXRlLm5vdygpKSxhJiZhLmNsYXNzTGlzdC5hZGQoImluLWZsaWdodCIpLCFpJiZuKXt2YXIgcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtzLmNsYXNzTmFtZT0ic3RydWN0dXJlZC1zdGF0dXMtYmFyIixzLmlubmVySFRNTD0nPHNwYW4gY2xhc3M9InN0YXR1cy1iYXItZG90Ij48L3NwYW4+PHNwYW4gY2xhc3M9InN0YXR1cy1iYXItbGFiZWwiPlx1NTZERVx1NTkwRFx1NEUyRDwvc3Bhbj48c3BhbiBjbGFzcz0ic3RhdHVzLWJhci10aW1lciI+MC4wczwvc3Bhbj4nLG4uYXBwZW5kQ2hpbGQocyksaT1zfWVsc2UgaWYoaSYmaS5jbGFzc0xpc3QuY29udGFpbnMoImNvbXBsZXRlZCIpKXtpLmNsYXNzTGlzdC5yZW1vdmUoImNvbXBsZXRlZCIpLGkuc3R5bGUuYW5pbWF0aW9uPSJub25lIixpLnF1ZXJ5U2VsZWN0b3IoIi5zdGF0dXMtYmFyLWxhYmVsIikudGV4dENvbnRlbnQ9Ilx1NTZERVx1NTkwRFx1NEUyRCI7dmFyIG89aS5xdWVyeVNlbGVjdG9yKCIuc3RhdHVzLWJhci1kb3QiKTtvJiYoby5zdHlsZS5kaXNwbGF5PSIiKSxyLl9zdGF0dXNCYXJTdGFydFRpbWU9RGF0ZS5ub3coKX1yLl9zdGF0dXNCYXJUaW1lcklkfHwoci5fc3RhdHVzQmFyVGltZXJJZD1zZXRJbnRlcnZhbChmdW5jdGlvbigpe3ZhciBjPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5zdHJ1Y3R1cmVkLXN0YXR1cy1iYXI6bm90KC5jb21wbGV0ZWQpIik7aWYoIWMpe2NsZWFySW50ZXJ2YWwoci5fc3RhdHVzQmFyVGltZXJJZCksci5fc3RhdHVzQmFyVGltZXJJZD1udWxsO3JldHVybn12YXIgZj0oKERhdGUubm93KCktci5fc3RhdHVzQmFyU3RhcnRUaW1lKS8xZTMpLnRvRml4ZWQoMSksZD1jLnF1ZXJ5U2VsZWN0b3IoIi5zdGF0dXMtYmFyLXRpbWVyIik7ZCYmKGQudGV4dENvbnRlbnQ9ZisicyIpfSwxMDApKX1lbHNlIGlmKGNsZWFySW50ZXJ2YWwoci5fc3RhdHVzQmFyVGltZXJJZCksci5fc3RhdHVzQmFyVGltZXJJZD1udWxsLGEmJmEuY2xhc3NMaXN0LnJlbW92ZSgiaW4tZmxpZ2h0IiksaSYmIWkuY2xhc3NMaXN0LmNvbnRhaW5zKCJjb21wbGV0ZWQiKSl7dmFyIGw9ci5fc3RhdHVzQmFyU3RhcnRUaW1lPygoRGF0ZS5ub3coKS1yLl9zdGF0dXNCYXJTdGFydFRpbWUpLzFlMykudG9GaXhlZCgxKToiMC4wIjtpLmNsYXNzTGlzdC5hZGQoImNvbXBsZXRlZCIpLGkucXVlcnlTZWxlY3RvcigiLnN0YXR1cy1iYXItbGFiZWwiKS50ZXh0Q29udGVudD0iXHU1QjhDXHU2MjEwIixpLnF1ZXJ5U2VsZWN0b3IoIi5zdGF0dXMtYmFyLXRpbWVyIikudGV4dENvbnRlbnQ9bCsicyI7dmFyIG89aS5xdWVyeVNlbGVjdG9yKCIuc3RhdHVzLWJhci1kb3QiKTtvJiYoby5zdHlsZS5kaXNwbGF5PSJub25lIiksci5fc3RhdHVzQmFyU3RhcnRUaW1lPTAsc2V0VGltZW91dChmdW5jdGlvbigpe2kucGFyZW50Tm9kZSYmaS5yZW1vdmUoKX0sM2UzKX19ZnVuY3Rpb24gcChlKXtyZXR1cm4gU3RyaW5nKGUpLnJlcGxhY2UoLyYvZywiJmFtcDsiKS5yZXBsYWNlKC88L2csIiZsdDsiKS5yZXBsYWNlKC8+L2csIiZndDsiKS5yZXBsYWNlKC8iL2csIiZxdW90OyIpLnJlcGxhY2UoLycvZywiJiMzOTsiKX1mdW5jdGlvbiBsdChlLHQsbil7dmFyIGk9U3RyaW5nKGV8fCIiKTtyZXR1cm4nPHNwYW4gY2xhc3M9IicrdCsnIHRhaWwtbWFycXVlZS1wYXRoIiB0aXRsZT0iJytwKGkpKyciJysobnx8IiIpKyc+PHNwYW4gY2xhc3M9InRhaWwtbWFycXVlZS1wYXRoLWlubmVyIj4nK3AoaSkrIjwvc3Bhbj48L3NwYW4+In12YXIgZ2c9L1wuKHBuZ3xqcGU/Z3xnaWZ8d2VicHxzdmd8YXZpZnxibXB8aWNvfGhlaWN8aGVpZikkL2k7ZnVuY3Rpb24gYnUoZSl7aWYodHlwZW9mIGUhPSJzdHJpbmciKXJldHVybiExO3ZhciB0PWUudHJpbSgpLnNwbGl0KC9bPyNdLylbMF07cmV0dXJuIGdnLnRlc3QodCl9ZnVuY3Rpb24gaXIoZSl7aWYoZSl7dmFyIHQ9ZnVuY3Rpb24oKXt0cnl7dmFyIG49ZS5maXJzdEVsZW1lbnRDaGlsZCYmZS5maXJzdEVsZW1lbnRDaGlsZC5jbGFzc0xpc3QmJmUuZmlyc3RFbGVtZW50Q2hpbGQuY2xhc3NMaXN0LmNvbnRhaW5zKCJ0YWlsLW1hcnF1ZWUtcGF0aC1pbm5lciIpP2UuZmlyc3RFbGVtZW50Q2hpbGQ6bnVsbDtpZihuKXt2YXIgaT1NYXRoLm1heCgwLG4uc2Nyb2xsV2lkdGgtZS5jbGllbnRXaWR0aCk7ZS5jbGFzc0xpc3QudG9nZ2xlKCJpcy1vdmVyZmxvd2luZyIsaT4xKSxlLnN0eWxlLnNldFByb3BlcnR5KCItLXRhaWwtbWFycXVlZS1zaGlmdCIsaSsicHgiKTt2YXIgYT1NYXRoLm1heCg0LjgsaS8xOCk7ZS5zdHlsZS5zZXRQcm9wZXJ0eSgiLS10YWlsLW1hcnF1ZWUtZHVyYXRpb24iLE1hdGgubWF4KDYuOCxhLy42OCkrInMiKTtyZXR1cm59ZS5zY3JvbGxXaWR0aD5lLmNsaWVudFdpZHRoJiYoZS5zY3JvbGxMZWZ0PWUuc2Nyb2xsV2lkdGgpfWNhdGNoe319O3QoKSx0eXBlb2YgcmVxdWVzdEFuaW1hdGlvbkZyYW1lPT0iZnVuY3Rpb24iJiZyZXF1ZXN0QW5pbWF0aW9uRnJhbWUodCl9fWZ1bmN0aW9uIEt0KGUpe3ZhciB0PWV8fGRvY3VtZW50OyF0fHx0eXBlb2YgdC5xdWVyeVNlbGVjdG9yQWxsIT0iZnVuY3Rpb24ifHx0LnF1ZXJ5U2VsZWN0b3JBbGwoIi50YWlsLW1hcnF1ZWUtcGF0aCIpLmZvckVhY2goZnVuY3Rpb24obil7aXIobil9KX1mdW5jdGlvbiBFdShlLHQpe2lmKGUpe3ZhciBuPVN0cmluZyh0fHwiIiksaT1lLnF1ZXJ5U2VsZWN0b3ImJmUucXVlcnlTZWxlY3RvcigiLnRhaWwtbWFycXVlZS1wYXRoLWlubmVyIik7aT9pLnRleHRDb250ZW50PW46ZS50ZXh0Q29udGVudD1uLGUuc2V0QXR0cmlidXRlJiZlLnNldEF0dHJpYnV0ZSgidGl0bGUiLG4pLGlyKGUpfX1mdW5jdGlvbiBoZyhlKXtpZihlKXt2YXIgdD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2YgZS5zZXRTZWxlY3Rpb25SYW5nZT09ImZ1bmN0aW9uIiYmZS52YWx1ZSE9bnVsbCl7dmFyIG49ZS52YWx1ZS5sZW5ndGg7dHJ5e2Uuc2V0U2VsZWN0aW9uUmFuZ2UobixuKX1jYXRjaHt9fWUuc2Nyb2xsV2lkdGg+ZS5jbGllbnRXaWR0aCYmKGUuc2Nyb2xsTGVmdD1lLnNjcm9sbFdpZHRoKX1jYXRjaHt9fTt0KCksdHlwZW9mIHJlcXVlc3RBbmltYXRpb25GcmFtZT09ImZ1bmN0aW9uIiYmcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHQpfX0oZnVuY3Rpb24oKXt0cnl7dmFyIGU9bmF2aWdhdG9yJiZuYXZpZ2F0b3IudXNlckFnZW50fHwiIjsvV2FuZEFwcFwvLy50ZXN0KGUpJiZkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0LmFkZCgiaXMtd2FuZC1hcHAiKSwvV2FuZFBsYXRmb3JtXC9pT1MvLnRlc3QoZSkmJmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QuYWRkKCJpcy13YW5kLWlvcyIpfWNhdGNoe310cnl7Y29uc3QgdD1uZXcgVVJMKHdpbmRvdy5sb2NhdGlvbi5ocmVmKS5zZWFyY2hQYXJhbXM7dC5nZXQoImVtYmVkIik9PT0idGVybWluYWwiJiYoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdC5hZGQoImlzLXdhbmQtZW1iZWQtdGVybWluYWwiKSx0LmdldCgibmF0aXZlSW5wdXQiKT09PSIxIiYmZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdC5hZGQoImlzLXdhbmQtbmF0aXZlLWlucHV0IikpfWNhdGNoe310cnl7d2luZG93Ll9fd2FuZE5hdGl2ZUJhY2tIb29rZWQ9ITB9Y2F0Y2h7fX0pKCl9KSgpOwo="),
9
9
  stylesCss: decode("OnJvb3R7LS1iZy1wcmltYXJ5OiAjZjZmMWU4Oy0tYmctc2Vjb25kYXJ5OiByZ2JhKDI1NSwgMjUxLCAyNDUsIC45Mik7LS1iZy10ZXJ0aWFyeTogI2YwZTVkNzstLWJnLWVsZXZhdGVkOiAjZmZmYWYyOy0tYmctc3VyZmFjZTogcmdiYSgyNTUsIDI1NSwgMjU1LCAuNik7LS1iZy10ZXJtaW5hbDogIzFmMWIxNzstLWJnLW92ZXJsYXk6IHJnYmEoNDIsIDI4LCAxOCwgLjQpOy0tYm9yZGVyLXN1YnRsZTogcmdiYSgxNTAsIDExOCwgODUsIC4xMik7LS1ib3JkZXItZGVmYXVsdDogcmdiYSgxMjUsIDkxLCA1NywgLjI1KTstLWJvcmRlci1zdHJvbmc6IHJnYmEoMTI1LCA5MSwgNTcsIC40KTstLWJvcmRlcjogdmFyKC0tYm9yZGVyLWRlZmF1bHQpOy0tYm9yZGVyLWZvY3VzOiByZ2JhKDE5NywgMTAxLCA2MSwgLjUpOy0tdGV4dC1wcmltYXJ5OiAjMmExZjE2Oy0tdGV4dC1zZWNvbmRhcnk6ICM1YTQ1MzU7LS10ZXh0LXRlcnRpYXJ5OiAjN2E2MzUwOy0tdGV4dC1tdXRlZDogIzhjNzM1ZjstLXRleHQtaW52ZXJzZTogI2ZmZmZmZjstLXRleHQtbGluazogI2M1NjUzZDstLWFjY2VudDogI2M1NjUzZDstLWFjY2VudC1ob3ZlcjogI2Q0NzU1MDstLWFjY2VudC1hY3RpdmU6ICNhZjUzMzA7LS1hY2NlbnQtc29mdDogI2U4YzVhZTstLWFjY2VudC1tdXRlZDogcmdiYSgxOTcsIDEwMSwgNjEsIC4xMik7LS1hY2NlbnQtZ2xvdzogcmdiYSgxOTcsIDEwMSwgNjEsIC4yNSk7LS1zdWNjZXNzOiAjNGY3YTU4Oy0tc3VjY2Vzcy1ob3ZlcjogIzVhOGY2NjstLXN1Y2Nlc3MtbXV0ZWQ6IHJnYmEoNzksIDEyMiwgODgsIC4xNCk7LS1zdWNjZXNzLWdsb3c6IHJnYmEoNzksIDEyMiwgODgsIC4zKTstLXdhcm5pbmc6ICNhOTZhMmY7LS13YXJuaW5nLWhvdmVyOiAjYzA3YTM1Oy0td2FybmluZy1tdXRlZDogcmdiYSgxNjksIDEwNiwgNDcsIC4xNCk7LS13YXJuaW5nLWdsb3c6IHJnYmEoMTY5LCAxMDYsIDQ3LCAuMjUpOy0tZGFuZ2VyOiAjYjI0ZjQ1Oy0tZGFuZ2VyLWhvdmVyOiAjYzk2MDU1Oy0tZGFuZ2VyLW11dGVkOiByZ2JhKDE3OCwgNzksIDY5LCAuMTQpOy0tZGFuZ2VyLWdsb3c6IHJnYmEoMTc4LCA3OSwgNjksIC4yNSk7LS1pbmZvOiAjNGE2ZmE1Oy0taW5mby1tdXRlZDogcmdiYSg3NCwgMTExLCAxNjUsIC4xNCk7LS1zaGFkb3cteHM6IDAgMXB4IDNweCByZ2JhKDg5LCA1OCwgMzIsIC4wNCk7LS1zaGFkb3ctc206IDAgMnB4IDhweCByZ2JhKDg5LCA1OCwgMzIsIC4wNik7LS1zaGFkb3ctbWQ6IDAgNHB4IDE2cHggcmdiYSg4OSwgNTgsIDMyLCAuMDgpOy0tc2hhZG93LWxnOiAwIDhweCAzMnB4IHJnYmEoODksIDU4LCAzMiwgLjEyKTstLXNoYWRvdy14bDogMCAxMnB4IDQ4cHggcmdiYSg4OSwgNTgsIDMyLCAuMTYpOy0tc2hhZG93LXNvZnQ6IDAgMjBweCA1MHB4IHJnYmEoODksIDU4LCAzMiwgLjEyKTstLXNoYWRvdy1lbGV2YXRlZDogMCA4cHggMjRweCByZ2JhKDg5LCA1OCwgMzIsIC4wOCk7LS1zaGFkb3ctZ2xvdzogMCAwIDI0cHggdmFyKC0tYWNjZW50LWdsb3cpOy0tc2hhZG93LWdsb3ctc3VjY2VzczogMCAwIDIwcHggdmFyKC0tc3VjY2Vzcy1nbG93KTstLXJhZGl1cy14czogNnB4Oy0tcmFkaXVzLXNtOiAxMHB4Oy0tcmFkaXVzLW1kOiAxNHB4Oy0tcmFkaXVzLWxnOiAyMHB4Oy0tcmFkaXVzLXhsOiAyOHB4Oy0tcmFkaXVzLWZ1bGw6IDk5OTlweDstLWZvbnQtc2FuczogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAiU2Vnb2UgVUkiLCAiSGVsdmV0aWNhIE5ldWUiLCAiUGluZ0ZhbmcgU0MiLCAiTm90byBTYW5zIFNDIiwgIk1pY3Jvc29mdCBZYUhlaSIsIHNhbnMtc2VyaWY7LS1mb250LW1vbm86ICJTRiBNb25vIiwgIkZpcmEgQ29kZSIsICJDYXNjYWRpYSBDb2RlIiwgIkpldEJyYWlucyBNb25vIiwgTWVubG8sIE1vbmFjbywgIkNvbnNvbGFzIiwgbW9ub3NwYWNlOy0tZm9udC1zaXplLXhzOiAuNjg3NXJlbTstLWZvbnQtc2l6ZS1zbTogLjgxMjVyZW07LS1mb250LXNpemUtYmFzZTogLjkzNzVyZW07LS1mb250LXNpemUtbGc6IDEuMDYyNXJlbTstLWZvbnQtc2l6ZS14bDogMS4yNXJlbTstLWZvbnQtd2VpZ2h0LW5vcm1hbDogNDAwOy0tZm9udC13ZWlnaHQtbWVkaXVtOiA1MDA7LS1mb250LXdlaWdodC1zZW1pYm9sZDogNjAwOy0tZm9udC13ZWlnaHQtYm9sZDogNzAwOy0tbGluZS1oZWlnaHQtdGlnaHQ6IDEuMzstLWxpbmUtaGVpZ2h0LWJhc2U6IDEuNjstLWxpbmUtaGVpZ2h0LXJlbGF4ZWQ6IDEuNzU7LS10cmFuc2l0aW9uLWZhc3Q6IC4xNXMgZWFzZTstLXRyYW5zaXRpb24tbm9ybWFsOiAuMjVzIGVhc2U7LS10cmFuc2l0aW9uLXNsb3c6IC40cyBlYXNlOy0tdHJhbnNpdGlvbi1zcHJpbmc6IC41cyBjdWJpYy1iZXppZXIoLjM0LCAxLjU2LCAuNjQsIDEpOy0tc2lkZWJhci13aWR0aDogMzAwcHg7LS1zaWRlYmFyLWNvbGxhcHNlZC13aWR0aDogNTZweDstLWZpbGUtcGFuZWwtd2lkdGg6IDMyMHB4Oy0tc2FmZS1ib3R0b206IDBweDstLWVhc2Utb3V0LWV4cG86IGN1YmljLWJlemllciguMTYsIDEsIC4zLCAxKTstLWVhc2Utb3V0LWJhY2s6IGN1YmljLWJlemllciguMzQsIDEuNTYsIC42NCwgMSk7LS1lYXNlLWluLW91dC1zbW9vdGg6IGN1YmljLWJlemllciguNCwgMCwgLjIsIDEpOy0tZWFzZS1zcHJpbmc6IGN1YmljLWJlemllciguMTc1LCAuODg1LCAuMzIsIDEuMjc1KTstLWVhc2Utc3ByaW5nLWJvdW5jeTogY3ViaWMtYmV6aWVyKC4xNzUsIC44ODUsIC4zMiwgMS40KTstLWVhc2UtYm91bmNlOiBjdWJpYy1iZXppZXIoLjY4LCAtLjU1LCAuMjY1LCAxLjU1KX1AbWVkaWEocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjpyZWR1Y2Upe2h0bWw6bm90KC5pcy13YW5kLWFwcCkgKixodG1sOm5vdCguaXMtd2FuZC1hcHApICo6YmVmb3JlLGh0bWw6bm90KC5pcy13YW5kLWFwcCkgKjphZnRlcnthbmltYXRpb24tZHVyYXRpb246LjAxbXMhaW1wb3J0YW50O2FuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6MSFpbXBvcnRhbnQ7dHJhbnNpdGlvbi1kdXJhdGlvbjouMDFtcyFpbXBvcnRhbnQ7c2Nyb2xsLWJlaGF2aW9yOmF1dG8haW1wb3J0YW50fX06cm9vdHstLWFwcC1pbnNldC10b3A6IDBweDstLWFwcC1pbnNldC1ib3R0b206IDBweDstLWFwcC1pbnNldC1sZWZ0OiAwcHg7LS1hcHAtaW5zZXQtcmlnaHQ6IDBweDstLXdhbmQtc2FmZS10b3A6IG1heCh2YXIoLS1hcHAtaW5zZXQtdG9wKSwgZW52KHNhZmUtYXJlYS1pbnNldC10b3AsIDBweCkpOy0td2FuZC1zYWZlLWJvdHRvbTogbWF4KHZhcigtLWFwcC1pbnNldC1ib3R0b20pLCBlbnYoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSwgMHB4KSk7LS13YW5kLXNhZmUtbGVmdDogbWF4KHZhcigtLWFwcC1pbnNldC1sZWZ0KSwgZW52KHNhZmUtYXJlYS1pbnNldC1sZWZ0LCAwcHgpKTstLXdhbmQtc2FmZS1yaWdodDogbWF4KHZhcigtLWFwcC1pbnNldC1yaWdodCksIGVudihzYWZlLWFyZWEtaW5zZXQtcmlnaHQsIDBweCkpOy0tc2FmZS1ib3R0b206IHZhcigtLXdhbmQtc2FmZS1ib3R0b20pOy0taW5wdXQtc2FmZS1ib3R0b206IHZhcigtLXNhZmUtYm90dG9tKX0uaXMtd2FuZC1hcHB7LS13YW5kLXNhZmUtdG9wOiBtYXgodmFyKC0tYXBwLWluc2V0LXRvcCksIGVudihzYWZlLWFyZWEtaW5zZXQtdG9wLCAwcHgpLCAzMnB4KTstLXdhbmQtc2FmZS1ib3R0b206IG1heCh2YXIoLS1hcHAtaW5zZXQtYm90dG9tKSwgZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20sIDBweCksIDBweCl9LmlzLXdhbmQtYXBwLW5hdGl2ZS1pbnNldHN7LS13YW5kLXNhZmUtdG9wOiAwcHg7LS13YW5kLXNhZmUtYm90dG9tOiAwcHg7LS13YW5kLXNhZmUtbGVmdDogMHB4Oy0td2FuZC1zYWZlLXJpZ2h0OiAwcHh9LmlzLXdhbmQtaW9zLmlzLWtleWJvYXJkLW9wZW57LS1pbnB1dC1zYWZlLWJvdHRvbTogMHB4fS5pcy13YW5kLWFwcCAuc2lkZWJhci1oZWFkZXIsaHRtbC5pcy13YW5kLWFwcCAuc2lkZWJhci5waW5uZWQuY29sbGFwc2VkIC5zaWRlYmFyLWhlYWRlcntwYWRkaW5nLXRvcDpjYWxjKDE0cHggKyB2YXIoLS13YW5kLXNhZmUtdG9wKSl9LmFwcC1jb250YWluZXJ7cGFkZGluZy10b3A6dmFyKC0td2FuZC1zYWZlLXRvcCl9LmlzLXdhbmQtZW1iZWQtdGVybWluYWwgLnNpZGViYXIsLmlzLXdhbmQtZW1iZWQtdGVybWluYWwgLm1haW4taGVhZGVyLXJvdywuaXMtd2FuZC1lbWJlZC10ZXJtaW5hbCAuYmxhbmstY2hhdCwuaXMtd2FuZC1lbWJlZC10ZXJtaW5hbCAuZHJhd2VyLWJhY2tkcm9wLC5pcy13YW5kLWVtYmVkLXRlcm1pbmFsIC5maWxlLXBhbmVsLWJhY2tkcm9we2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9LmlzLXdhbmQtZW1iZWQtdGVybWluYWwgLmFwcC1jb250YWluZXJ7cGFkZGluZy10b3A6MH1odG1sLmlzLXdhbmQtZW1iZWQtdGVybWluYWx7Y29sb3Itc2NoZW1lOmxpZ2h0IGRhcms7LS1lbWJlZC1wdHktYmc6ICMxNzEyMGZ9aHRtbC5pcy13YW5kLWVtYmVkLXRlcm1pbmFsLGh0bWwuaXMtd2FuZC1lbWJlZC10ZXJtaW5hbCBib2R5e2JhY2tncm91bmQ6dmFyKC0tZW1iZWQtcHR5LWJnKX0uaXMtd2FuZC1lbWJlZC10ZXJtaW5hbCAubWFpbi1sYXlvdXQsLmlzLXdhbmQtZW1iZWQtdGVybWluYWwgLm1haW4tbGF5b3V0LnNpZGViYXItcGlubmVkLC5pcy13YW5kLWVtYmVkLXRlcm1pbmFsIC5tYWluLWxheW91dC5zaWRlYmFyLXBpbm5lZC5zaWRlYmFyLWNvbGxhcHNlZHtwYWRkaW5nLWxlZnQ6MH0uaXMtd2FuZC1lbWJlZC10ZXJtaW5hbCAubWFpbi1jb250ZW50e2JhY2tncm91bmQ6dmFyKC0tZW1iZWQtcHR5LWJnKX0uaXMtd2FuZC1lbWJlZC10ZXJtaW5hbCAudGVybWluYWwtY29udGFpbmVye21hcmdpbjowO2JvcmRlci1yYWRpdXM6MDtib3JkZXI6MDtib3JkZXItbGVmdDowO2JvcmRlci1yaWdodDowO2JhY2tncm91bmQ6dmFyKC0tZW1iZWQtcHR5LWJnKTtib3gtc2hhZG93Om5vbmV9LmlzLXdhbmQtZW1iZWQtdGVybWluYWwgLnRlcm1pbmFsLWNvbnRhaW5lcjpmb2N1cy13aXRoaW4sLmlzLXdhbmQtZW1iZWQtdGVybWluYWwgLnRlcm1pbmFsLWNvbnRhaW5lci5pbnRlcmFjdGl2ZXtib3JkZXItY29sb3I6dHJhbnNwYXJlbnQ7Ym94LXNoYWRvdzpub25lfS5pcy13YW5kLWVtYmVkLXRlcm1pbmFsIC50ZXJtaW5hbC1jb250YWluZXI6YWZ0ZXIsLmlzLXdhbmQtZW1iZWQtdGVybWluYWwgLnRlcm1pbmFsLXNjYWxlLW92ZXJsYXksLmlzLXdhbmQtZW1iZWQtdGVybWluYWwgLnRlcm1pbmFsLXJlc2l6ZS1oYW5kbGV7ZGlzcGxheTpub25lIWltcG9ydGFudH0uaXMtd2FuZC1lbWJlZC10ZXJtaW5hbCAudGVybWluYWwtc2Nyb2xsLXdyYXB7cGFkZGluZzo4cHggNHB4IDZweDstLXRlcm0tZm9udC1mYW1pbHk6ICJSb2JvdG8gTW9ubyIsICJEcm9pZCBTYW5zIE1vbm8iLCAiTm90byBTYW5zIE1vbm8iLCAiTm90byBTYW5zIFN5bWJvbHMgMiIsICJOb3RvIFNhbnMgU3ltYm9scyIsIG1vbm9zcGFjZTstLXRlcm0tZm9udC1zaXplOiAxMHB4ICFpbXBvcnRhbnQ7LS10ZXJtLXJvdy1oZWlnaHQ6IDE1cHggIWltcG9ydGFudDstLXRlcm0tZmc6ICNmNWVhZGM7LS10ZXJtLWJnOiB0cmFuc3BhcmVudDstLXRlcm0tY3Vyc29yOiAjZDY3YjUyOy0tdGVybS1jb2xvci0wOiAjMWYxYjE3Oy0tdGVybS1jb2xvci0xOiAjZDI3NzY2Oy0tdGVybS1jb2xvci0yOiAjN2ZhMzZmOy0tdGVybS1jb2xvci0zOiAjZDVhMzViOy0tdGVybS1jb2xvci00OiAjODdhOWQ5Oy0tdGVybS1jb2xvci01OiAjYzU5NWM3Oy0tdGVybS1jb2xvci02OiAjN2ZiM2IxOy0tdGVybS1jb2xvci03OiAjZjVlYWRjOy0tdGVybS1jb2xvci04OiAjNjI1MzQ3Oy0tdGVybS1jb2xvci05OiAjZTM5YTg5Oy0tdGVybS1jb2xvci0xMDogIzljYzA4YTstLXRlcm0tY29sb3ItMTE6ICNlYmJiNmU7LS10ZXJtLWNvbG9yLTEyOiAjYThjMWVhOy0tdGVybS1jb2xvci0xMzogI2RiYjFkYzstLXRlcm0tY29sb3ItMTQ6ICM5YWNiY2E7LS10ZXJtLWNvbG9yLTE1OiAjZmZmN2VmfS5pcy13YW5kLWVtYmVkLXRlcm1pbmFsIC50ZXJtaW5hbC1zY3JvbGwtd3JhcCA6OnNlbGVjdGlvbntiYWNrZ3JvdW5kOiNkNjdiNTI0N30uaXMtd2FuZC1lbWJlZC10ZXJtaW5hbC5pcy13YW5kLW5hdGl2ZS1pbnB1dCAuaW5wdXQtcGFuZWx7ZGlzcGxheTpub25lIWltcG9ydGFudH0uaXMtd2FuZC1lbWJlZC10ZXJtaW5hbCAud2FuZC1qb3lzdGljay1yb290e3otaW5kZXg6MTIwfS5pcy13YW5kLWVtYmVkLXRlcm1pbmFsIC53YW5kLWpveXN0aWNrLXJvb3QudmlzaWJsZXtvcGFjaXR5OjE7dmlzaWJpbGl0eTp2aXNpYmxlfS5pcy13YW5kLWVtYmVkLXRlcm1pbmFsIC53YW5kLWpveXN0aWNrLWJhY2tkcm9we3otaW5kZXg6MTIwfS5pcy13YW5kLWVtYmVkLXRlcm1pbmFsIC53YW5kLWpveXN0aWNrLWJhbGx7d2lkdGg6NTBweDtoZWlnaHQ6NTBweDtjb2xvcjojZmZmN2VmZjU7YmFja2dyb3VuZDojMjMxYzE4ZWI7Ym9yZGVyLWNvbG9yOiNmZmY3ZWYzZDtib3gtc2hhZG93OjAgMTBweCAyNnB4ICMwMDAwMDA2MSxpbnNldCAwIDFweCAjZmZmZmZmMWE7ei1pbmRleDoxMjN9LmlzLXdhbmQtZW1iZWQtdGVybWluYWwgLndhbmQtam95c3RpY2stYmFsbC5wYW5lbC1vcGVuLC5pcy13YW5kLWVtYmVkLXRlcm1pbmFsIC53YW5kLWpveXN0aWNrLWJhbGw6YWN0aXZle3RyYW5zZm9ybTpzY2FsZSgxLjA0KTtiYWNrZ3JvdW5kOiMxZDE3MTRmYTtib3JkZXItY29sb3I6I2ZmZjdlZjU3fS5pcy13YW5kLWVtYmVkLXRlcm1pbmFsIC53YW5kLWpveXN0aWNrLXBhbmVse3otaW5kZXg6MTI0O2JhY2tncm91bmQ6IzFkMTcxNGZhO2JvcmRlci1jb2xvcjojZmZmN2VmMmU7Ym94LXNoYWRvdzowIDE4cHggNDBweCAjMDAwMDAwNmIsaW5zZXQgMCAxcHggI2ZmZmZmZjE0fWh0bWwubm8tdHJhbnNpdGlvbixodG1sLm5vLXRyYW5zaXRpb24gKixodG1sLm5vLXRyYW5zaXRpb24gKjpiZWZvcmUsaHRtbC5uby10cmFuc2l0aW9uICo6YWZ0ZXJ7dHJhbnNpdGlvbjpub25lIWltcG9ydGFudDthbmltYXRpb246bm9uZSFpbXBvcnRhbnR9Kntib3gtc2l6aW5nOmJvcmRlci1ib3g7bWFyZ2luOjA7cGFkZGluZzowfWh0bWx7Zm9udC1zaXplOjE0cHg7LXdlYmtpdC1mb250LXNtb290aGluZzphbnRpYWxpYXNlZDstbW96LW9zeC1mb250LXNtb290aGluZzpncmF5c2NhbGU7dGV4dC1yZW5kZXJpbmc6b3B0aW1pemVMZWdpYmlsaXR5O21pbi1oZWlnaHQ6MTAwJTtoZWlnaHQ6MTAwJTtiYWNrZ3JvdW5kLWNvbG9yOiNmNmYxZTh9Ym9keXtmb250LWZhbWlseTp2YXIoLS1mb250LXNhbnMpO2JhY2tncm91bmQ6cmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCB0b3AgbGVmdCxyZ2JhKDIwOCwxMzgsOTIsLjE4KSx0cmFuc3BhcmVudCAzNSUpLHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgYm90dG9tIHJpZ2h0LHJnYmEoMTQ4LDEwNyw3NCwuMSksdHJhbnNwYXJlbnQgNDAlKSxsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCNmYmY3ZjEsI2Y2ZjFlOCk7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTttaW4taGVpZ2h0OjEwMHZoO21pbi1oZWlnaHQ6MTAwZHZoO2hlaWdodDoxMDB2aDtoZWlnaHQ6MTAwZHZoO2xpbmUtaGVpZ2h0OnZhcigtLWxpbmUtaGVpZ2h0LWJhc2UpO292ZXJmbG93OmhpZGRlbn06Oi13ZWJraXQtc2Nyb2xsYmFye3dpZHRoOjhweDtoZWlnaHQ6OHB4fTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7YmFja2dyb3VuZDojOTY3NjU1NDA7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtZnVsbCk7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIHZhcigtLXRyYW5zaXRpb24tZmFzdCl9Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlcntiYWNrZ3JvdW5kOiM5Njc2NTU2Nn06Oi13ZWJraXQtc2Nyb2xsYmFyLWNvcm5lcntiYWNrZ3JvdW5kOnRyYW5zcGFyZW50fTo6c2VsZWN0aW9ue2JhY2tncm91bmQ6dmFyKC0tYWNjZW50LXNvZnQpO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSl9OjotbW96LXNlbGVjdGlvbntiYWNrZ3JvdW5kOnZhcigtLWFjY2VudC1zb2Z0KTtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpfS5pbnB1dC10ZXh0YXJlYTo6c2VsZWN0aW9ue2JhY2tncm91bmQ6IzRmN2E1ODQ3O2NvbG9yOiMyNDE2MGZ9LmlucHV0LXRleHRhcmVhOjotbW96LXNlbGVjdGlvbntiYWNrZ3JvdW5kOiM0ZjdhNTg0Nztjb2xvcjojMjQxNjBmfS5jaGF0LW1lc3NhZ2UudXNlciAuY2hhdC1tZXNzYWdlLWJ1YmJsZTo6c2VsZWN0aW9ue2JhY2tncm91bmQ6I2ZmZmZmZjUyO2NvbG9yOiNmZmZ9LmFwcC1jb250YWluZXJ7LS1sYXlvdXQtbWFpbi1maWxlLXBhbmVsLXdpZHRoOiB2YXIoLS1maWxlLXBhbmVsLXdpZHRoKTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO3Bvc2l0aW9uOmZpeGVkO3RvcDp2YXIoLS1hcHAtdmlld3BvcnQtdG9wLCAwcHgpO2xlZnQ6MDtyaWdodDowO2hlaWdodDp2YXIoLS1hcHAtdmlld3BvcnQtaGVpZ2h0LCAxMDBkdmgpO292ZXJmbG93OmhpZGRlbn0uZmxvYXRpbmctc2lkZWJhci10b2dnbGV7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoxO3dpZHRoOjM0cHg7aGVpZ2h0OjM0cHg7cGFkZGluZzowO2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7ZmxleC1zaHJpbms6MDtiYWNrZ3JvdW5kOiNmZmZiZjVkOTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLXNtKTtjdXJzb3I6cG9pbnRlcjtiYWNrZHJvcC1maWx0ZXI6Ymx1cigxNnB4KSBzYXR1cmF0ZSgxODAlKTtib3gtc2hhZG93OjAgMnB4IDhweCAjMDAwMDAwMGY7dHJhbnNpdGlvbjphbGwgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KX0ubWFpbi1oZWFkZXItcm93IC5mbG9hdGluZy1zaWRlYmFyLXRvZ2dsZXttYXJnaW4tcmlnaHQ6MnB4fS5tYWluLWhlYWRlci1yb3cgLmZsb2F0aW5nLXNpZGViYXItdG9nZ2xlLmFjdGl2ZXtvcGFjaXR5OjE7cG9pbnRlci1ldmVudHM6YXV0b30ubWFpbi1oZWFkZXItcm93IC5mbG9hdGluZy1zaWRlYmFyLXRvZ2dsZS5hY3RpdmUgLmhhbWJ1cmdlci1pY29uIHNwYW46bnRoLWNoaWxkKDEpe3RyYW5zZm9ybTp0cmFuc2xhdGVZKDVweCkgcm90YXRlKDQ1ZGVnKX0ubWFpbi1oZWFkZXItcm93IC5mbG9hdGluZy1zaWRlYmFyLXRvZ2dsZS5hY3RpdmUgLmhhbWJ1cmdlci1pY29uIHNwYW46bnRoLWNoaWxkKDIpe29wYWNpdHk6MDt0cmFuc2Zvcm06c2NhbGVYKDApfS5tYWluLWhlYWRlci1yb3cgLmZsb2F0aW5nLXNpZGViYXItdG9nZ2xlLmFjdGl2ZSAuaGFtYnVyZ2VyLWljb24gc3BhbjpudGgtY2hpbGQoMyl7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTVweCkgcm90YXRlKC00NWRlZyl9Lm1haW4taGVhZGVyLXJvdyAuZmxvYXRpbmctc2lkZWJhci10b2dnbGU6aG92ZXJ7YmFja2dyb3VuZDojZmZmYmY1ZjI7Ym94LXNoYWRvdzowIDNweCAxMnB4ICMwMDAwMDAxYX0ubWFpbi1oZWFkZXItcm93IC5mbG9hdGluZy1zaWRlYmFyLXRvZ2dsZTphY3RpdmV7dHJhbnNmb3JtOnNjYWxlKC45Mil9Lm1haW4taGVhZGVyLXJvdyAuZmxvYXRpbmctc2lkZWJhci10b2dnbGUuYWN0aXZlOmhvdmVyIC5oYW1idXJnZXItaWNvbiBzcGFuLC5tYWluLWhlYWRlci1yb3cgLmZsb2F0aW5nLXNpZGViYXItdG9nZ2xlOmhvdmVyIC5oYW1idXJnZXItaWNvbiBzcGFue2JhY2tncm91bmQ6dmFyKC0tdGV4dC1wcmltYXJ5KX0uZmxvYXRpbmctc2lkZWJhci10b2dnbGU6aG92ZXJ7YmFja2dyb3VuZDojZmZmYmY1ZjI7Ym94LXNoYWRvdzowIDNweCAxMnB4ICMwMDAwMDAxYX0uZmxvYXRpbmctc2lkZWJhci10b2dnbGUuYWN0aXZle29wYWNpdHk6MDtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zaXRpb246b3BhY2l0eSAuMTVzIGVhc2V9LmZsb2F0aW5nLXNpZGViYXItdG9nZ2xlOmFjdGl2ZXt0cmFuc2Zvcm06c2NhbGUoLjkyKX0uaGFtYnVyZ2VyLWljb257d2lkdGg6MTZweDtoZWlnaHQ6MTJweDtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVufS5oYW1idXJnZXItaWNvbiBzcGFue2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJTtoZWlnaHQ6MnB4O2JhY2tncm91bmQ6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLWZ1bGwpO3RyYW5zaXRpb246dHJhbnNmb3JtIC4zcyB2YXIoLS1lYXNlLW91dC1leHBvKSxvcGFjaXR5IC4ycyBlYXNlLGJhY2tncm91bmQgLjE1cyBlYXNlO3RyYW5zZm9ybS1vcmlnaW46Y2VudGVyfS5mbG9hdGluZy1zaWRlYmFyLXRvZ2dsZTpob3ZlciAuaGFtYnVyZ2VyLWljb24gc3BhbntiYWNrZ3JvdW5kOnZhcigtLXRleHQtcHJpbWFyeSl9LmZsb2F0aW5nLXNpZGViYXItdG9nZ2xlLmFjdGl2ZSAuaGFtYnVyZ2VyLWljb24gc3BhbjpudGgtY2hpbGQoMSl7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoNXB4KSByb3RhdGUoNDVkZWcpfS5mbG9hdGluZy1zaWRlYmFyLXRvZ2dsZS5hY3RpdmUgLmhhbWJ1cmdlci1pY29uIHNwYW46bnRoLWNoaWxkKDIpe29wYWNpdHk6MDt0cmFuc2Zvcm06c2NhbGVYKDApfS5mbG9hdGluZy1zaWRlYmFyLXRvZ2dsZS5hY3RpdmUgLmhhbWJ1cmdlci1pY29uIHNwYW46bnRoLWNoaWxkKDMpe3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01cHgpIHJvdGF0ZSgtNDVkZWcpfS50b3BiYXItbG9nby1pY29ue3dpZHRoOjIycHg7aGVpZ2h0OjIycHg7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTQ1ZGVnLCNkNDc4NWEsI2I4NTczYSwjYTA0YTJlKTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy14cyk7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2ZvbnQtc2l6ZToxMHB4O2NvbG9yOiNmZmY7Zm9udC13ZWlnaHQ6ODAwO2JveC1zaGFkb3c6MCAxcHggNHB4ICNiODVjMzc0MCxpbnNldCAwIDFweCAjZmZmMztsZXR0ZXItc3BhY2luZzotLjAyZW07ZmxleC1zaHJpbms6MH0uc3RhdHVzLWRvdHt3aWR0aDo2cHg7aGVpZ2h0OjZweDtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOnZhcigtLXRleHQtbXV0ZWQpfS5zdGF0dXMtZG90LmFjdGl2ZXtiYWNrZ3JvdW5kOnZhcigtLXN1Y2Nlc3MpO2JveC1zaGFkb3c6MCAwIDhweCB2YXIoLS1zdWNjZXNzKX0ubWFpbi1sYXlvdXR7ZGlzcGxheTpmbGV4O2ZsZXg6MTttaW4taGVpZ2h0OjA7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmctbGVmdDowO3RyYW5zaXRpb246cGFkZGluZy1sZWZ0IHZhcigtLXRyYW5zaXRpb24tbm9ybWFsKX0uc2lkZWJhci1vcGVuOm5vdCguc2lkZWJhci1waW5uZWQpIC5pbnB1dC1wYW5lbHtvcGFjaXR5OjA7dmlzaWJpbGl0eTpoaWRkZW47cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGVhc2UsdmlzaWJpbGl0eSAwcyBsaW5lYXIgLjJzfS5tYWluLWxheW91dC5zaWRlYmFyLXBpbm5lZHtwYWRkaW5nLWxlZnQ6dmFyKC0tc2lkZWJhci13aWR0aCk7dHJhbnNpdGlvbjpwYWRkaW5nLWxlZnQgLjNzIHZhcigtLWVhc2Utb3V0LWV4cG8pfS5tYWluLWxheW91dC5zaWRlYmFyLXBpbm5lZCAuZmxvYXRpbmctc2lkZWJhci10b2dnbGV7ZGlzcGxheTpub25lfS5tYWluLWxheW91dC5zaWRlYmFyLXBpbm5lZC5zaWRlYmFyLWNvbGxhcHNlZHtwYWRkaW5nLWxlZnQ6dmFyKC0tc2lkZWJhci1jb2xsYXBzZWQtd2lkdGgpfS5kcmF3ZXItYmFja2Ryb3B7cG9zaXRpb246Zml4ZWQ7aW5zZXQ6MDt6LWluZGV4OjQ0O2JhY2tncm91bmQ6dmFyKC0tYmctb3ZlcmxheSk7b3BhY2l0eTowO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbjpvcGFjaXR5IC4zNXMgdmFyKC0tZWFzZS1pbi1vdXQtc21vb3RoKTtiYWNrZHJvcC1maWx0ZXI6Ymx1cig0cHgpfS5kcmF3ZXItYmFja2Ryb3Aub3BlbntvcGFjaXR5OjE7cG9pbnRlci1ldmVudHM6YXV0bztiYWNrZHJvcC1maWx0ZXI6Ymx1cig4cHgpfS5zaWRlYmFye3Bvc2l0aW9uOmZpeGVkO3RvcDowO2xlZnQ6MDtib3R0b206MDt6LWluZGV4OjQ1O3dpZHRoOm1pbih2YXIoLS1zaWRlYmFyLXdpZHRoKSxjYWxjKDEwMHZ3IC0gMjBweCkpO21heC13aWR0aDo5MHZ3O2JhY2tncm91bmQ6I2ZmZmJmNWY1O2JvcmRlci1yaWdodDoxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSk7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4taGVpZ2h0OjA7YmFja2Ryb3AtZmlsdGVyOmJsdXIoMjBweCkgc2F0dXJhdGUoMTgwJSk7Ym94LXNoYWRvdzo0cHggMCAzMnB4ICM1OTNhMjAxNDt0cmFuc2Zvcm06dHJhbnNsYXRlKC0xMDAlKTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMzVzIHZhcigtLWVhc2Utb3V0LWV4cG8pLGJveC1zaGFkb3cgLjM1cyBlYXNlLG9wYWNpdHkgLjI1cyBlYXNlO3BvaW50ZXItZXZlbnRzOm5vbmU7b3BhY2l0eTowfS5zaWRlYmFyLm9wZW57dHJhbnNmb3JtOnRyYW5zbGF0ZSgwKTtib3gtc2hhZG93OjhweCAwIDQwcHggIzU5M2EyMDI2O3BvaW50ZXItZXZlbnRzOmF1dG87b3BhY2l0eToxfS5zaWRlYmFyLnBpbm5lZHt0cmFuc2Zvcm06dHJhbnNsYXRlKDApO3BvaW50ZXItZXZlbnRzOmF1dG87b3BhY2l0eToxO2JveC1zaGFkb3c6bm9uZTt0cmFuc2l0aW9uOndpZHRoIC4zcyB2YXIoLS1lYXNlLW91dC1leHBvKSx0cmFuc2Zvcm0gLjM1cyB2YXIoLS1lYXNlLW91dC1leHBvKSxib3gtc2hhZG93IC4zNXMgZWFzZSxvcGFjaXR5IC4yNXMgZWFzZX0uc2lkZWJhci5jb2xsYXBzZWQgLnNpZGViYXItaGVhZGVyLWFjdGlvbnMgLnNpZGViYXItY2xvc2V7ZGlzcGxheTpub25lfS5zaWRlYmFyLnBpbm5lZC5jb2xsYXBzZWR7d2lkdGg6dmFyKC0tc2lkZWJhci1jb2xsYXBzZWQtd2lkdGgpfS5zaWRlYmFyLnBpbm5lZC5jb2xsYXBzZWQgLnNpZGViYXItaGVhZGVye3BhZGRpbmc6MTRweCA4cHg7anVzdGlmeS1jb250ZW50OmNlbnRlcjtnYXA6MH0uc2lkZWJhci5waW5uZWQuY29sbGFwc2VkIC5zaWRlYmFyLWhlYWRlci1tYWluLC5zaWRlYmFyLnBpbm5lZC5jb2xsYXBzZWQgLnNpZGViYXItaGVhZGVyLW1vcmUsLnNpZGViYXIucGlubmVkLmNvbGxhcHNlZCAuc2lkZWJhci1waW4tdG9nZ2xlLC5zaWRlYmFyLnBpbm5lZC5jb2xsYXBzZWQgLnNpZGViYXItZm9vdGVye2Rpc3BsYXk6bm9uZX0uc2lkZWJhci5waW5uZWQuY29sbGFwc2VkIC5zaWRlYmFyLWhlYWRlci1hY3Rpb25ze2dhcDowO3dpZHRoOjEwMCU7anVzdGlmeS1jb250ZW50OmNlbnRlcn0uc2lkZWJhci5waW5uZWQuY29sbGFwc2VkIC5zaWRlYmFyLWJvZHl7cGFkZGluZzo4cHggNHB4O292ZXJmbG93LXk6YXV0bztvdmVyZmxvdy14OmhpZGRlbn0uc2lkZWJhci5waW5uZWQuY29sbGFwc2VkIC5zaWRlYmFyLWJvZHk6Oi13ZWJraXQtc2Nyb2xsYmFye3dpZHRoOjB9LnNpZGViYXItY29sbGFwc2VkLXRpbGVze2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjhweDthbGlnbi1pdGVtczpjZW50ZXJ9LnNpZGViYXItY29sbGFwc2VkLXRpbGV7d2lkdGg6MzZweDtoZWlnaHQ6MzZweDtib3JkZXItcmFkaXVzOjExcHg7Ym9yZGVyOi41cHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuMzIpO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE0NWRlZywjZDQ3ODVhLCNiODU3M2EsI2EwNGEyZSk7Y29sb3I6I2ZmZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo3MDA7Zm9udC12YXJpYW50LW51bWVyaWM6dGFidWxhci1udW1zO2xldHRlci1zcGFjaW5nOi0uMDFlbTtjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3BhZGRpbmc6MDtib3gtc2hhZG93OjAgMXB4IDJweCAjYjg1YzM3MzgsaW5zZXQgMCAxcHggI2ZmZmZmZjQ3O3RyYW5zaXRpb246ZmlsdGVyIHZhcigtLXRyYW5zaXRpb24tZmFzdCksYm94LXNoYWRvdyAuMjJzIGVhc2UsdHJhbnNmb3JtIC4yMnMgdmFyKC0tZWFzZS1vdXQtZXhwbyl9LnNpZGViYXItY29sbGFwc2VkLXRpbGU6aG92ZXJ7ZmlsdGVyOmJyaWdodG5lc3MoMS4wNik7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTFweCk7Ym94LXNoYWRvdzowIDRweCAxMHB4IC0zcHggI2I4NWMzNzVjLGluc2V0IDAgMXB4ICNmZmZmZmY1Mn0uc2lkZWJhci1jb2xsYXBzZWQtdGlsZS5oaXN0b3J5e2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE0NWRlZywjZThkM2MwLCNkM2I2OWQsI2I4OTQ3OCk7Y29sb3I6IzU5M2EyMGUwO2JveC1zaGFkb3c6MCAxcHggMnB4ICM3ODU4MzgyZSxpbnNldCAwIDFweCAjZmZmZmZmNmJ9LnNpZGViYXItY29sbGFwc2VkLXRpbGUuaGlzdG9yeTpob3Zlcntib3gtc2hhZG93OjAgNHB4IDEwcHggLTNweCAjNzg1ODM4NGQsaW5zZXQgMCAxcHggI2ZmZmZmZjdhfS5zaWRlYmFyLWNvbGxhcHNlZC10aWxlLmFkZHtiYWNrZ3JvdW5kOiNiODVjMzcwZjtib3JkZXI6MS41cHggZGFzaGVkIHJnYmEoMTg0LDkyLDU1LC41KTtjb2xvcjojYTA0YTJlO2JveC1zaGFkb3c6bm9uZTttYXJnaW4tdG9wOjJweH0uc2lkZWJhci1jb2xsYXBzZWQtdGlsZS5hZGQ6aG92ZXJ7ZmlsdGVyOm5vbmU7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTFweCk7YmFja2dyb3VuZDojYjg1YzM3MWY7Ym9yZGVyLWNvbG9yOiNiODVjMzdiODtib3gtc2hhZG93OjAgM3B4IDhweCAtM3B4ICNiODVjMzc1Mn0uc2lkZWJhci1jb2xsYXBzZWQtdGlsZS5hZGQ6YWN0aXZle3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApIHNjYWxlKC45NCl9LnNpZGViYXItY29sbGFwc2VkLXRpbGUuYWN0aXZle2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE0NWRlZywjZDI3MzU4LCNiMzU0MzQsIzkzNDEyOCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTFweCk7Ym94LXNoYWRvdzowIDAgMCAycHggI2M1NjUzZDRkLDAgNXB4IDE0cHggLTRweCAjYTA0YTJlNzMsaW5zZXQgMCAxcHggI2ZmZjZ9LnNpZGViYXItY29sbGFwc2VkLXRpbGU6YWN0aXZle3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApIHNjYWxlKC45NCk7dHJhbnNpdGlvbi1kdXJhdGlvbjouMDhzfS5zaWRlYmFyLXRpbGUtYnViYmxle3Bvc2l0aW9uOmZpeGVkO21heC13aWR0aDozMjBweDttaW4td2lkdGg6ODBweDtwYWRkaW5nOjlweCAxM3B4O2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE0NWRlZywjZmZmYmY1ZmMsI2ZjZjRlOWZjKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUsIHJnYmEoMTIwLCA4OCwgNTYsIC4xOCkpO2JvcmRlci1yYWRpdXM6MTRweDtib3gtc2hhZG93OjAgNnB4IDI0cHggLTRweCAjNTkzYTIwMzgsMCAycHggNnB4ICM1OTNhMjAxNCxpbnNldCAwIDFweCAjZmZmZmZmYTY7Zm9udC1zaXplOjEzcHg7bGluZS1oZWlnaHQ6MS40Njtjb2xvcjojMzgyNDEyZWI7ei1pbmRleDoyMDA7cG9pbnRlci1ldmVudHM6bm9uZTtvcGFjaXR5OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNHB4KTt0cmFuc2l0aW9uOm9wYWNpdHkgLjE2cyBlYXNlLHRyYW5zZm9ybSAuMThzIHZhcigtLWVhc2Utb3V0LWV4cG8sIGVhc2UpO3doaXRlLXNwYWNlOnByZS13cmFwO3dvcmQtYnJlYWs6YnJlYWstd29yZDtiYWNrZHJvcC1maWx0ZXI6Ymx1cigxMnB4KSBzYXR1cmF0ZSgxNjAlKX0uc2lkZWJhci10aWxlLWJ1YmJsZS52aXNpYmxle29wYWNpdHk6MTt0cmFuc2Zvcm06dHJhbnNsYXRlKDApfS5zaWRlYmFyLXRpbGUtYnViYmxlOmJlZm9yZXtjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6LTZweDt0b3A6dmFyKC0tYnViYmxlLXRhaWwteSwgNTAlKTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO3dpZHRoOjExcHg7aGVpZ2h0OjExcHg7YmFja2dyb3VuZDppbmhlcml0O2JvcmRlci1sZWZ0OjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlLCByZ2JhKDEyMCwgODgsIDU2LCAuMTgpKTtib3JkZXItYm90dG9tOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlLCByZ2JhKDEyMCwgODgsIDU2LCAuMTgpKTtib3gtc2hhZG93Oi0ycHggMnB4IDVweCAtMnB4ICM1OTNhMjAxNH0uc2lkZWJhci1jb2xsYXBzZS10b2dnbGV7ZmxleC1zaHJpbms6MDt0cmFuc2l0aW9uOmNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCl9LnNpZGViYXItY29sbGFwc2UtdG9nZ2xlLmNvbGxhcHNlZHtjb2xvcjp2YXIoLS1wcmltYXJ5KX0uc2lkZWJhci1waW4tdG9nZ2xle2ZsZXgtc2hyaW5rOjA7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4xNnMgZWFzZSxjb2xvciB2YXIoLS10cmFuc2l0aW9uLWZhc3QpLHRyYW5zZm9ybSAuM3MgdmFyKC0tZWFzZS1vdXQtZXhwbyl9LnNpZGViYXItcGluLXRvZ2dsZS5waW5uZWR7YmFja2dyb3VuZDojYzU2NTNkMWY7Y29sb3I6dmFyKC0tYWNjZW50KTt0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKX0uc2lkZWJhci1oZWFkZXJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtwYWRkaW5nOjEycHggMTRweDtib3JkZXItYm90dG9tOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlKTtiYWNrZ3JvdW5kOiNmZmZiZjVjYztmbGV4LXNocmluazowO21pbi1oZWlnaHQ6NTJweDtnYXA6MTBweH0uc2lkZWJhci1oZWFkZXItbWFpbntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo5cHg7bWluLXdpZHRoOjA7ZmxleDoxfS5zaWRlYmFyLWhlYWRlci1hY3Rpb25ze2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjRweDtmbGV4LXNocmluazowfS5zaWRlYmFyLWhlYWRlci1tb3Jle3Bvc2l0aW9uOnJlbGF0aXZlfS5zaWRlYmFyLWhlYWRlci1vdmVyZmxvd3tkaXNwbGF5Om5vbmU7cG9zaXRpb246YWJzb2x1dGU7dG9wOmNhbGMoMTAwJSArIDZweCk7cmlnaHQ6MDttaW4td2lkdGg6MTUwcHg7YmFja2dyb3VuZDojZmZmYmY1ZmE7YmFja2Ryb3AtZmlsdGVyOmJsdXIoMTZweCkgc2F0dXJhdGUoMTgwJSk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlKTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1zbSk7Ym94LXNoYWRvdzowIDRweCAyMHB4ICM1OTNhMjAxZjtwYWRkaW5nOjRweDt6LWluZGV4OjYwfS5zaWRlYmFyLWhlYWRlci1vdmVyZmxvdy5vcGVue2Rpc3BsYXk6YmxvY2s7YW5pbWF0aW9uOmZhZGVTbGlkZURvd24gLjE1cyB2YXIoLS1lYXNlLW91dC1leHBvKX0uc2lkZWJhci1oZWFkZXItb3ZlcmZsb3cgLm92ZXJmbG93LWl0ZW17ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6OHB4O3dpZHRoOjEwMCU7cGFkZGluZzo5cHggMTJweDtib3JkZXI6bm9uZTtiYWNrZ3JvdW5kOm5vbmU7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1zYW5zKTtmb250LXNpemU6LjgxMjVyZW07Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2N1cnNvcjpwb2ludGVyO2JvcmRlci1yYWRpdXM6NnB4O3RyYW5zaXRpb246YmFja2dyb3VuZCB2YXIoLS10cmFuc2l0aW9uLWZhc3QpLGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCl9LnNpZGViYXItaGVhZGVyLW92ZXJmbG93IC5vdmVyZmxvdy1pdGVtOmhvdmVye2JhY2tncm91bmQ6dmFyKC0tYmctdGVydGlhcnkpO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSl9LnNpZGViYXItaGVhZGVyLW92ZXJmbG93IC5vdmVyZmxvdy1pdGVtOmFjdGl2ZXt0cmFuc2Zvcm06c2NhbGUoLjk3KX1Aa2V5ZnJhbWVzIGZhZGVTbGlkZURvd257MCV7b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC00cHgpfXRve29wYWNpdHk6MTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKX19LnNpZGViYXItbG9nb3V0e2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO29wYWNpdHk6Ljc7dHJhbnNpdGlvbjpvcGFjaXR5IHZhcigtLXRyYW5zaXRpb24tZmFzdCksY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KX0uc2lkZWJhci1sb2dvdXQ6aG92ZXJ7b3BhY2l0eToxO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KX0uc2lkZWJhci1zd2l0Y2gtc2VydmVye2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO29wYWNpdHk6Ljc7dHJhbnNpdGlvbjpvcGFjaXR5IHZhcigtLXRyYW5zaXRpb24tZmFzdCksY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KX0uc2lkZWJhci1zd2l0Y2gtc2VydmVyOmhvdmVye29wYWNpdHk6MTtjb2xvcjp2YXIoLS1wcmltYXJ5LCB2YXIoLS10ZXh0LXNlY29uZGFyeSkpfS5sb2dpbi1zd2l0Y2gtc2VydmVye21hcmdpbi10b3A6MTBweDtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2dhcDo2cHg7Zm9udC1zaXplOjEzcHg7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpfS5sb2dpbi1zd2l0Y2gtc2VydmVyIHN2Z3tvcGFjaXR5Oi43NX0ubG9naW4tc3dpdGNoLXNlcnZlcjpob3Zlcntjb2xvcjp2YXIoLS1wcmltYXJ5LCB2YXIoLS10ZXh0LXByaW1hcnkpKX0uc2lkZWJhci10aXRsZXtmb250LXNpemU6Ljg3NXJlbTtmb250LXdlaWdodDo2MDA7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtsZXR0ZXItc3BhY2luZzotLjAxZW07d2hpdGUtc3BhY2U6bm93cmFwO2ZsZXgtc2hyaW5rOjB9LnNlc3Npb24tY291bnR7Zm9udC1zaXplOi43NXJlbTtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7YmFja2dyb3VuZDp2YXIoLS1iZy10ZXJ0aWFyeSk7cGFkZGluZzozcHggOHB4O2JvcmRlci1yYWRpdXM6MTBweDtmb250LXdlaWdodDo2MDB9LnNpZGViYXItY2xvc2V7ZmxleC1zaHJpbms6MH0uZmlsZS1leHBsb3JlcntmbGV4OjE7b3ZlcmZsb3cteTphdXRvO3BhZGRpbmc6OHB4IDA7bWluLWhlaWdodDowfS5maWxlLWV4cGxvcmVyLmVtcHR5e2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtwYWRkaW5nOjI0cHg7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7Zm9udC1zaXplOi44MTI1cmVtO3RleHQtYWxpZ246Y2VudGVyfS5maWxlLXRyZWV7Zm9udC1zaXplOi44MTI1cmVtfS50cmVlLWl0ZW17ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NHB4O3BhZGRpbmc6NHB4IDEycHg7Y3Vyc29yOnBvaW50ZXI7Ym9yZGVyLXJhZGl1czo2cHg7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIHZhcigtLXRyYW5zaXRpb24tZmFzdCk7dXNlci1zZWxlY3Q6bm9uZTt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXN9LnRyZWUtaXRlbTpob3ZlcntiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcsI2ZmZmZmZmIzLCNmZmZjZjc2Nik7Ym94LXNoYWRvdzppbnNldCAwIDFweCAjZmZmZmZmYjN9LnRyZWUtaXRlbS5hY3RpdmV7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCNmZmZjZjdlYiwjZmZmNGU4YmYpO2NvbG9yOnZhcigtLWFjY2VudCk7Ym94LXNoYWRvdzowIDAgMCAxcHggI2M1NjUzZDM4LDAgM3B4IDEwcHggLTNweCAjYzU2NTNkNDAsaW5zZXQgMCAxcHggI2ZmZmZmZmQ5fS50cmVlLXRvZ2dsZXtmbGV4LXNocmluazowO3dpZHRoOjE2cHg7aGVpZ2h0OjE2cHg7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2ZvbnQtc2l6ZTouNjI1cmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO3RyYW5zaXRpb246dHJhbnNmb3JtIHZhcigtLXRyYW5zaXRpb24tZmFzdCl9LnRyZWUtdG9nZ2xlLm9wZW57dHJhbnNmb3JtOnJvdGF0ZSg5MGRlZyl9LnRyZWUtdG9nZ2xlLmVtcHR5e3Zpc2liaWxpdHk6aGlkZGVufS50cmVlLWljb257ZmxleC1zaHJpbms6MDtmb250LXNpemU6MXJlbTttYXJnaW4tcmlnaHQ6NnB4O2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXJ9LnRyZWUtbmFtZXtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztmbGV4OjE7bWluLXdpZHRoOjB9LnRyZWUtY2hpbGRyZW57ZGlzcGxheTpub25lfS50cmVlLWNoaWxkcmVuLm9wZW57ZGlzcGxheTpibG9ja30uZmlsZS1leHBsb3Jlci1oZWFkZXJ7cGFkZGluZzoxMHB4IDE0cHggNnB4O2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjZweDtmbGV4LXNocmluazowO292ZXJmbG93LXg6YXV0bztvdmVyZmxvdy15OmhpZGRlbjtzY3JvbGxiYXItd2lkdGg6dGhpbn0uZmlsZS1leHBsb3Jlci1wYXRoe2ZvbnQtc2l6ZTouNzVyZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKTtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXA7ZmxleDoxO21pbi13aWR0aDowO2ZvbnQtd2VpZ2h0OjUwMH1pbnB1dC5maWxlLWV4cGxvcmVyLXBhdGh7YmFja2dyb3VuZDp2YXIoLS1iZy1zZWNvbmRhcnkpO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSk7Ym9yZGVyLXJhZGl1czo4cHg7cGFkZGluZzo2cHggMTBweDtoZWlnaHQ6MzBweDtsaW5lLWhlaWdodDoxLjI7Y3Vyc29yOnRleHQ7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCksYm9yZGVyLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCksY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KTtvdXRsaW5lOm5vbmU7dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aWR0aDptYXgtY29udGVudDttaW4td2lkdGg6MTAwJTtib3gtc2l6aW5nOmJvcmRlci1ib3h9aW5wdXQuZmlsZS1leHBsb3Jlci1wYXRoOjpwbGFjZWhvbGRlcntjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtvcGFjaXR5Oi42fWlucHV0LmZpbGUtZXhwbG9yZXItcGF0aDpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLWJnLXByaW1hcnkpO2JvcmRlci1jb2xvcjp2YXIoLS1ib3JkZXIpO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KX1pbnB1dC5maWxlLWV4cGxvcmVyLXBhdGg6Zm9jdXN7YmFja2dyb3VuZDp2YXIoLS1iZy1wcmltYXJ5KTtib3JkZXItY29sb3I6dmFyKC0tYWNjZW50KTtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO3RleHQtb3ZlcmZsb3c6Y2xpcDtib3gtc2hhZG93OjAgMCAwIDNweCAjZDQ5ODYzMWZ9LmZpbGUtZXhwbG9yZXItcmVmcmVzaHtiYWNrZ3JvdW5kOm5vbmU7Ym9yZGVyOm5vbmU7Y3Vyc29yOnBvaW50ZXI7Zm9udC1zaXplOjFyZW07cGFkZGluZzo0cHg7Ym9yZGVyLXJhZGl1czo0cHg7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3RyYW5zaXRpb246YWxsIHZhcigtLXRyYW5zaXRpb24tZmFzdCl9LmZpbGUtZXhwbG9yZXItcmVmcmVzaDpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLWJnLXRlcnRpYXJ5KTtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7dHJhbnNmb3JtOnJvdGF0ZSg5MGRlZyl9LmZpbGUtc2lkZS1wYW5lbHtwb3NpdGlvbjpmaXhlZDtyaWdodDpjYWxjKC0xICogdmFyKC0tZmlsZS1wYW5lbC13aWR0aCkpO3RvcDowO2JvdHRvbTowO3dpZHRoOnZhcigtLWZpbGUtcGFuZWwtd2lkdGgpO2JhY2tncm91bmQ6dmFyKC0tYmctcHJpbWFyeSk7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkIHZhcigtLWJvcmRlcik7ei1pbmRleDo1NTt0cmFuc2l0aW9uOnJpZ2h0IC4zcyB2YXIoLS1lYXNlLW91dC1leHBvKSxib3gtc2hhZG93IC4zcyBlYXNlO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Ym94LXNoYWRvdzotNHB4IDAgMjRweCAjMDAwMDAwMWE7cGFkZGluZy10b3A6dmFyKC0td2FuZC1zYWZlLXRvcCk7cGFkZGluZy1ib3R0b206dmFyKC0td2FuZC1zYWZlLWJvdHRvbSl9LmZpbGUtc2lkZS1wYW5lbC5vcGVue3JpZ2h0OjA7Ym94LXNoYWRvdzotOHB4IDAgMzJweCAjNTkzYTIwMjZ9LmZpbGUtcGFuZWwtYmFja2Ryb3B7ZGlzcGxheTpub25lfUBtZWRpYShtYXgtd2lkdGg6NzY4cHgpey5maWxlLXBhbmVsLWJhY2tkcm9we2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246Zml4ZWQ7aW5zZXQ6MDtiYWNrZ3JvdW5kOiMyYTFjMTI0ZDt6LWluZGV4OjU0O29wYWNpdHk6MDtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zaXRpb246b3BhY2l0eSAuM3MgZWFzZTtiYWNrZHJvcC1maWx0ZXI6Ymx1cigycHgpfS5maWxlLXBhbmVsLWJhY2tkcm9wLm9wZW57b3BhY2l0eToxO3BvaW50ZXItZXZlbnRzOmF1dG99LnNpZGViYXItcGluLXRvZ2dsZXtkaXNwbGF5Om5vbmV9fS5maWxlLXNpZGUtcGFuZWwtaGVhZGVye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47cGFkZGluZzoxMnB4IDE0cHggMTBweDtib3JkZXItYm90dG9tOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlKTtmbGV4LXNocmluazowO2dhcDo4cHg7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCNmZmY2LCNmZmYwKX0uZmlsZS1zaWRlLXBhbmVsLXRpdGxlLWdyb3Vwe2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjhweDttaW4td2lkdGg6MDtmbGV4OjF9LmZpbGUtc2lkZS1wYW5lbC1pY29ue2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Y29sb3I6dmFyKC0tYWNjZW50KTtvcGFjaXR5Oi44NX0uZmlsZS1zaWRlLXBhbmVsLXRpdGxle2ZvbnQtc2l6ZTouODc1cmVtO2ZvbnQtd2VpZ2h0OjYwMDtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO2xldHRlci1zcGFjaW5nOi4wMWVtfS5maWxlLXNpZGUtcGFuZWwtaGVhZGVyLWFjdGlvbnN7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MnB4O2ZsZXgtc2hyaW5rOjB9LmZpbGUtc2lkZS1wYW5lbC1pY29uYnRue3dpZHRoOjMwcHg7aGVpZ2h0OjMwcHg7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtwYWRkaW5nOjA7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXI6MXB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1yYWRpdXM6OHB4O2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246YmFja2dyb3VuZCB2YXIoLS10cmFuc2l0aW9uLWZhc3QpLGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCksYm9yZGVyLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCksdHJhbnNmb3JtIHZhcigtLXRyYW5zaXRpb24tZmFzdCl9LmZpbGUtc2lkZS1wYW5lbC1pY29uYnRuOmhvdmVye2JhY2tncm91bmQ6dmFyKC0tYmctdGVydGlhcnkpO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7Ym9yZGVyLWNvbG9yOnZhcigtLWJvcmRlci1zdWJ0bGUpfS5maWxlLXNpZGUtcGFuZWwtaWNvbmJ0bjphY3RpdmV7dHJhbnNmb3JtOnNjYWxlKC45NCl9LmZpbGUtc2lkZS1wYW5lbC1pY29uYnRuLmFjdGl2ZXtjb2xvcjp2YXIoLS1hY2NlbnQpO2JhY2tncm91bmQ6dmFyKC0tYWNjZW50LW11dGVkKTtib3JkZXItY29sb3I6I2Q0OTg2MzU5fS5maWxlLXNpZGUtcGFuZWwtaWNvbmJ0bi5jbG9zZTpob3Zlcntjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO2JhY2tncm91bmQ6I2RjNDY0NjE0O2JvcmRlci1jb2xvcjojZGM0NjQ2NDB9LmZpbGUtc2lkZS1wYW5lbC1pY29uYnRuIC53YW5kLWljb257ZGlzcGxheTpibG9ja30uZmlsZS1zaWRlLXBhbmVsLWljb25idG46aG92ZXIgLndhbmQtaWNvbi1yZWZyZXNoe3RyYW5zZm9ybTpyb3RhdGUoNjBkZWcpO3RyYW5zaXRpb246dHJhbnNmb3JtIC4yNXMgdmFyKC0tZWFzZS1vdXQtZXhwbyl9LmZpbGUtc2lkZS1wYW5lbC1ib2R5e2ZsZXg6MTttaW4taGVpZ2h0OjA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtvdmVyZmxvdzpoaWRkZW59LmdpdC1zdGF0dXMtYmFkZ2V7ZmxleC1zaHJpbms6MDtmb250LXNpemU6LjY4NzVyZW07Zm9udC13ZWlnaHQ6NjAwO3BhZGRpbmc6MXB4IDVweDtib3JkZXItcmFkaXVzOjNweDttaW4td2lkdGg6MThweDt0ZXh0LWFsaWduOmNlbnRlcjtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pfS5naXQtYWRkZWR7YmFja2dyb3VuZDojMjI4YjIyMjY7Y29sb3I6IzIyOGIyMn0uZ2l0LW1vZGlmaWVke2JhY2tncm91bmQ6I2ZmYTUwMDI2O2NvbG9yOm9yYW5nZX0uZ2l0LWRlbGV0ZWR7YmFja2dyb3VuZDojZGMxNDNjMjY7Y29sb3I6I2RjMTQzY30uZ2l0LXJlbmFtZWR7YmFja2dyb3VuZDojNDY4MmI0MjY7Y29sb3I6IzQ2ODJiNH0uZ2l0LXVuc3RhZ2Vke2JhY2tncm91bmQ6I2ZmOGMwMDI2O2NvbG9yOiNmZjhjMDB9LmdpdC11bnN0YWdlZC1kZWxldGVke2JhY2tncm91bmQ6I2RjMTQzYzI2O2NvbG9yOiNkYzE0M2N9LmdpdC11bnRyYWNrZWR7YmFja2dyb3VuZDojODA4MDgwMjY7Y29sb3I6Z3JheX0uZmlsZS1zZWFyY2gtYm94e3BhZGRpbmc6OHB4IDEycHggMTBweDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDowO2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpO2ZsZXgtc2hyaW5rOjA7cG9zaXRpb246cmVsYXRpdmV9LmZpbGUtc2VhcmNoLWljb257cG9zaXRpb246YWJzb2x1dGU7bGVmdDoyMnB4O3RvcDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7cG9pbnRlci1ldmVudHM6bm9uZTtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtvcGFjaXR5Oi43fS5maWxlLXNlYXJjaC1pbnB1dHtmbGV4OjE7cGFkZGluZzo3cHggMzJweCA3cHggMzBweDtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlcik7Ym9yZGVyLXJhZGl1czo4cHg7Zm9udC1zaXplOi44MTI1cmVtO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtc2Fucyk7YmFja2dyb3VuZDp2YXIoLS1iZy1zZWNvbmRhcnkpO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7b3V0bGluZTpub25lO3RyYW5zaXRpb246Ym9yZGVyLWNvbG9yIC4xNXMgZWFzZSxiYWNrZ3JvdW5kLWNvbG9yIC4xNXMgZWFzZSxib3gtc2hhZG93IC4xNXMgZWFzZX0uZmlsZS1zZWFyY2gtaW5wdXQ6Zm9jdXN7Ym9yZGVyLWNvbG9yOnZhcigtLWFjY2VudCk7YmFja2dyb3VuZDp2YXIoLS1iZy1wcmltYXJ5KTtib3gtc2hhZG93OjAgMCAwIDNweCAjZDQ5ODYzMWZ9LmZpbGUtc2VhcmNoLWlucHV0OjpwbGFjZWhvbGRlcntjb2xvcjp2YXIoLS10ZXh0LW11dGVkKX0uZmlsZS1zZWFyY2gtY2xlYXJ7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MThweDt0b3A6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpO2JhY2tncm91bmQ6bm9uZTtib3JkZXI6bm9uZTtjdXJzb3I6cG9pbnRlcjtwYWRkaW5nOjRweDt3aWR0aDoyMnB4O2hlaWdodDoyMnB4O2JvcmRlci1yYWRpdXM6NTAlO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2Rpc3BsYXk6bm9uZTthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjE1cyBlYXNlLGNvbG9yIC4xNXMgZWFzZX0uZmlsZS1zZWFyY2gtY2xlYXI6aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS1iZy10ZXJ0aWFyeSk7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KX0uZmlsZS1zZWFyY2gtY2xlYXIudmlzaWJsZXtkaXNwbGF5OmlubGluZS1mbGV4fS5maWxlLXNlYXJjaC1jbGVhcjpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLWJnLXRlcnRpYXJ5KTtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSl9LnNpZGViYXItYm9keXtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZsZXg6MTttaW4taGVpZ2h0OjA7b3ZlcmZsb3cteTphdXRvOy13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOnRvdWNoO3Bvc2l0aW9uOnJlbGF0aXZlfS5zaWRlYmFyLWludHJve2ZvbnQtc2l6ZTouNzVyZW07Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2ZsZXgtc2hyaW5rOjB9LnNlc3Npb25zLWxpc3R7ZmxleDoxIDAgYXV0bzttaW4taGVpZ2h0OjA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtvdmVyZmxvdzp2aXNpYmxlO3BhZGRpbmc6MTBweCAxMHB4IDEycHh9I3Nlc3Npb25zLXBhbmVse2Rpc3BsYXk6Y29udGVudHN9LnNlc3Npb25zLWxpc3Q6ZW1wdHk6YmVmb3Jle2NvbnRlbnQ6Ilw2NjgyXDY1ZTBcNGYxYVw4YmRkIjtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7bWluLWhlaWdodDoyMDBweDtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtmb250LXNpemU6Ljg3NXJlbX0uc2Vzc2lvbi1ncm91cHttYXJnaW4tYm90dG9tOjE0cHh9LnNlc3Npb24tZ3JvdXA6bGFzdC1jaGlsZHttYXJnaW4tYm90dG9tOjB9LnNlc3Npb24tZ3JvdXAtdGl0bGV7cGFkZGluZzo0cHggNnB4IDEwcHg7Zm9udC1zaXplOi42ODc1cmVtO2ZvbnQtd2VpZ2h0OjcwMDtsZXR0ZXItc3BhY2luZzouMDhlbTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjhweH0uc2Vzc2lvbi1ncm91cC10aXRsZTpiZWZvcmV7Y29udGVudDoiIjt3aWR0aDozcHg7aGVpZ2h0OjEycHg7YmFja2dyb3VuZDp2YXIoLS1hY2NlbnQpO29wYWNpdHk6LjY1O2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLWZ1bGwpfS5jbGF1ZGUtaGlzdG9yeS10b2dnbGV7Y3Vyc29yOnBvaW50ZXI7dXNlci1zZWxlY3Q6bm9uZTt0cmFuc2l0aW9uOmNvbG9yIC4xNXMgZWFzZX0uY2xhdWRlLWhpc3RvcnktdG9nZ2xlOmhvdmVye2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSl9LmNsYXVkZS1oaXN0b3J5LXRvZ2dsZSAuY2hldnJvbntkaXNwbGF5OmlubGluZS1ibG9jazt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMjVzIHZhcigtLWVhc2Utb3V0LWV4cG8pO2ZvbnQtc2l6ZTouNjg3NXJlbTttYXJnaW4tcmlnaHQ6NHB4fS5jbGF1ZGUtaGlzdG9yeS10b2dnbGUgLmhpc3RvcnktY291bnR7Zm9udC1zaXplOi42ODc1cmVtO2ZvbnQtd2VpZ2h0OjYwMDtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7YmFja2dyb3VuZDp2YXIoLS1iZy10ZXJ0aWFyeSk7cGFkZGluZzoycHggN3B4O2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLWZ1bGwpO21hcmdpbi1sZWZ0OjZweH0uY2xhdWRlLWhpc3RvcnktbG9hZGluZ3twYWRkaW5nOjE2cHggOHB4O2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2ZvbnQtc2l6ZTouODEyNXJlbTt0ZXh0LWFsaWduOmNlbnRlcjtmb250LXN0eWxlOml0YWxpY30uc2lkZWJhci1oaXN0b3J5LXNlY3Rpb24tbGFiZWx7cGFkZGluZzo4cHggMTBweCA0cHg7Zm9udC1zaXplOi42ODc1cmVtO2ZvbnQtd2VpZ2h0OjYwMDtsZXR0ZXItc3BhY2luZzouMDRlbTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7b3BhY2l0eTouNX0uY2xhdWRlLWhpc3RvcnktZGlyZWN0b3J5LWhlYWRlcnttYXJnaW4tdG9wOjZweDtjdXJzb3I6cG9pbnRlcjt1c2VyLXNlbGVjdDpub25lfS5jbGF1ZGUtaGlzdG9yeS1kaXJlY3RvcnktaGVhZGVyIC5jaGV2cm9ue2ZvbnQtc2l6ZTouNjg3NXJlbTttYXJnaW4tcmlnaHQ6NHB4fS5jbGF1ZGUtaGlzdG9yeS1kaXJlY3RvcnktdGl0bGV7Zm9udC1zaXplOi42ODc1cmVtO3BhZGRpbmc6NnB4IDhweCA2cHggMTJweDtvcGFjaXR5Oi44O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVufS5jbGF1ZGUtaGlzdG9yeS1kaXJlY3RvcnktaGVhZGVyIC5jbGF1ZGUtaGlzdG9yeS1kaXJlY3RvcnktdGl0bGU6YmVmb3Jle2Rpc3BsYXk6bm9uZX0uY2xhdWRlLWhpc3RvcnktZGlyZWN0b3J5LWxhYmVse2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo0cHg7bWluLXdpZHRoOjA7ZmxleDoxIDEgYXV0bztvdmVyZmxvdzpoaWRkZW47d2hpdGUtc3BhY2U6bm93cmFwfS5jbGF1ZGUtaGlzdG9yeS1kaXJlY3RvcnktbGFiZWwtcGF0aHtmbGV4OjEgMSBhdXRvO21pbi13aWR0aDowO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7Zm9udC13ZWlnaHQ6NjAwfS5jbGF1ZGUtaGlzdG9yeS1kaXJlY3RvcnktY291bnR7ZmxleDowIDAgYXV0bztjb2xvcjp2YXIoLS10ZXh0LXRlcnRpYXJ5KX0uY2xhdWRlLWhpc3RvcnktZGlyZWN0b3J5LWNsZWFyLWJ0bntvcGFjaXR5Oi45O2ZsZXgtc2hyaW5rOjB9LmNsYXVkZS1oaXN0b3J5LXByZXZpZXd7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwfS5jbGF1ZGUtaGlzdG9yeS1pdGVte29wYWNpdHk6Ljg1O3RyYW5zaXRpb246b3BhY2l0eSAuMTVzIGVhc2UsYmFja2dyb3VuZCAuMTVzIGVhc2V9LmNsYXVkZS1oaXN0b3J5LWl0ZW06aG92ZXJ7b3BhY2l0eToxO2JhY2tncm91bmQ6I2ZmZmRmYWY1fS5zZXNzaW9uLWl0ZW17d2lkdGg6MTAwJTt0ZXh0LWFsaWduOmxlZnQ7YmFja2dyb3VuZDojZmZmY2Y3ZWI7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlKTtib3JkZXItcmFkaXVzOjEwcHg7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtwYWRkaW5nOjEwcHggMTJweDtjdXJzb3I6cG9pbnRlcjt0cmFuc2l0aW9uOmFsbCAuMnMgZWFzZSx0cmFuc2Zvcm0gLjFzIGVhc2U7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1zYW5zKTttYXJnaW4tYm90dG9tOjZweDtwb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdzpoaWRkZW59LnNlc3Npb24taXRlbTpiZWZvcmV7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7dG9wOjZweDtib3R0b206NnB4O3dpZHRoOjNweDtiYWNrZ3JvdW5kOnZhcigtLWFjY2VudCk7b3BhY2l0eTowO3RyYW5zZm9ybTpzY2FsZVkoMCk7dHJhbnNpdGlvbjphbGwgLjJzIGVhc2U7Ym9yZGVyLXJhZGl1czoycHh9LnNlc3Npb24taXRlbS1yb3d7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoxfS5zZXNzaW9uLWl0ZW0tY29udGVudHtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjI7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXItcmFkaXVzOmluaGVyaXQ7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjNzIHZhcigtLWVhc2Utb3V0LWV4cG8pLGJhY2tncm91bmQgLjE4cyBlYXNlO3dpbGwtY2hhbmdlOnRyYW5zZm9ybX0uc2Vzc2lvbi1pdGVtLnN3aXBlZCAuc2Vzc2lvbi1pdGVtLWNvbnRlbnR7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNzJweCk7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCNmZmZjZjdmNSwjZmNmNmVkZjApfS5zZXNzaW9uLXN3aXBlLWJne3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7ei1pbmRleDoxO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpzdHJldGNoO2p1c3RpZnktY29udGVudDpmbGV4LWVuZDtwb2ludGVyLWV2ZW50czpub25lO29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgLjE4cyBlYXNlfS5zZXNzaW9uLWl0ZW0uc3dpcGVkIC5zZXNzaW9uLXN3aXBlLWJne29wYWNpdHk6MTtwb2ludGVyLWV2ZW50czphdXRvfS5zZXNzaW9uLXN3aXBlLWRlbGV0ZXt3aWR0aDo3MnB4O2JvcmRlcjowO2JvcmRlci1yYWRpdXM6MDtiYWNrZ3JvdW5kOnZhcigtLWRhbmdlcik7Y29sb3I6dmFyKC0tdGV4dC1pbnZlcnNlKTtkaXNwbGF5OmlubGluZS1mbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtnYXA6M3B4O2ZvbnQ6aW5oZXJpdDtmb250LXNpemU6LjY4NzVyZW07Zm9udC13ZWlnaHQ6NzAwO2N1cnNvcjpwb2ludGVyfS5zZXNzaW9uLXN3aXBlLWRlbGV0ZSBzdmd7ZmxleC1zaHJpbms6MH0uc2Vzc2lvbi1tYW5hZ2UtY2hlY2t7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtmbGV4LXNocmluazowO3dpZHRoOjIycHg7aGVpZ2h0OjIycHg7bWFyZ2luLXJpZ2h0OjhweDtwb3NpdGlvbjpyZWxhdGl2ZX0uc2Vzc2lvbi1tYW5hZ2UtY2hlY2sgaW5wdXR7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtvcGFjaXR5OjA7Y3Vyc29yOnBvaW50ZXJ9LnNlc3Npb24tbWFuYWdlLWNoZWNrIHNwYW57d2lkdGg6MThweDtoZWlnaHQ6MThweDtib3JkZXItcmFkaXVzOjZweDtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMTI1LDkxLDU3LC4yMik7YmFja2dyb3VuZDojZmZmYmY1OGM7Ym94LXNoYWRvdzppbnNldCAwIDFweCAjZmZmNjtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMTVzIGVhc2UsYm9yZGVyLWNvbG9yIC4xNXMgZWFzZX0uc2Vzc2lvbi1tYW5hZ2UtY2hlY2s6aG92ZXIgc3BhbntiYWNrZ3JvdW5kOiNmZmZiZjVjYztib3JkZXItY29sb3I6IzdkNWIzOTU5fS5zZXNzaW9uLW1hbmFnZS1jaGVjayBpbnB1dDpjaGVja2VkK3NwYW57YmFja2dyb3VuZDp2YXIoLS1hY2NlbnQpO2JvcmRlci1jb2xvcjp2YXIoLS1hY2NlbnQpfS5zZXNzaW9uLW1hbmFnZS1jaGVjayBpbnB1dDpjaGVja2VkK3NwYW46YWZ0ZXJ7Y29udGVudDoiXDI3MTMiO2NvbG9yOiNmZmY7Zm9udC1zaXplOi43NXJlbTtmb250LXdlaWdodDo3MDB9LnNlc3Npb24taXRlbS5zZWxlY3RlZHtib3JkZXItY29sb3I6I2M1NjUzZDU5O2JhY2tncm91bmQ6I2ZmZjVlZWY1fS5zZXNzaW9uLWl0ZW0tcm93e2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0fUBrZXlmcmFtZXMgc2Vzc2lvbi1kZWxldGUtY29sbGFwc2V7dG97bWF4LWhlaWdodDowO29wYWNpdHk6MDttYXJnaW4tYm90dG9tOjA7cGFkZGluZy10b3A6MDtwYWRkaW5nLWJvdHRvbTowO2JvcmRlci13aWR0aDowfX0uc2Vzc2lvbi1pdGVtLmRlbGV0aW5ne2FuaW1hdGlvbjpzZXNzaW9uLWRlbGV0ZS1jb2xsYXBzZSAuM3MgZWFzZS1vdXQgZm9yd2FyZHM7b3ZlcmZsb3c6aGlkZGVuO21heC1oZWlnaHQ6MTIwcHg7cG9pbnRlci1ldmVudHM6bm9uZX0uc2Vzc2lvbi1tYWlue2ZsZXg6MTttaW4td2lkdGg6MDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDozcHg7cGFkZGluZy1yaWdodDo2MHB4fS5zZXNzaW9uLXRpdGxlLXJvd3tkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6ZmxleC1zdGFydDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtnYXA6OHB4fS5zZXNzaW9uLXRpdGxlLXJvdyAuc2Vzc2lvbi10aXRsZSwuc2Vzc2lvbi10aXRsZS1yb3cgLnNlc3Npb24tY29tbWFuZHtmbGV4OjE7bWluLXdpZHRoOjB9LnNlc3Npb24tdGltZXtmbGV4LXNocmluazowO2ZvbnQtc2l6ZTouNjg3NXJlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTt3aGl0ZS1zcGFjZTpub3dyYXA7bGluZS1oZWlnaHQ6MS40O3BhZGRpbmctdG9wOjFweH0uc2Vzc2lvbi1hY3Rpdml0eXtmb250LXNpemU6LjY4NzVyZW07Y29sb3I6dmFyKC0tYWNjZW50KTt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7bGluZS1oZWlnaHQ6MS4zO29wYWNpdHk6Ljg1fS5zZXNzaW9uLWRlc2NyaXB0aW9ue2ZvbnQtc2l6ZTouNjg3NXJlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7bGluZS1oZWlnaHQ6MS4zNX0uc2Vzc2lvbi1yZWNvdmVyeS1oaW50e2ZvbnQtc2l6ZTouNjI1cmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2JhY2tncm91bmQ6Izk2NzY1NTE0O3BhZGRpbmc6MXB4IDVweDtib3JkZXItcmFkaXVzOjNweH0uc2Vzc2lvbi1hY3Rpb25ze3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjRweDt0b3A6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpO2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoycHg7ZmxleC1zaHJpbms6MH0uc2Vzc2lvbi1hY3Rpb24tYnRue3dpZHRoOjI4cHg7aGVpZ2h0OjI4cHg7bWluLWhlaWdodDoyOHB4O21pbi13aWR0aDoyOHB4O3BhZGRpbmc6MDtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1mdWxsKTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Zm9udC1zaXplOi44MTI1cmVtO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym9yZGVyOm5vbmU7dHJhbnNpdGlvbjphbGwgLjJzIGVhc2U7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7Y3Vyc29yOnBvaW50ZXJ9LnNlc3Npb24tYWN0aW9uLWJ0bjpob3ZlcntiYWNrZ3JvdW5kOiM5Njc2NTUxYTtjb2xvcjp2YXIoLS1hY2NlbnQpfS5zZXNzaW9uLWFjdGlvbi1idG46YWN0aXZle3RyYW5zZm9ybTpzY2FsZSguOSk7dHJhbnNpdGlvbi1kdXJhdGlvbjouMXN9LnNlc3Npb24tYWN0aW9uLWJ0biBzdmd7ZmxleC1zaHJpbms6MH0uc2Vzc2lvbi1hY3Rpb24tYnRuLmRlbGV0ZS1idG46aG92ZXJ7YmFja2dyb3VuZDojZTc0YzNjMTQ7Y29sb3I6I2QzNTI0NH0uc2Vzc2lvbi1hY3Rpb24tYnRuLm1lcmdlLWJ0bjpob3ZlcntiYWNrZ3JvdW5kOiMyZjgwZWQxYTtjb2xvcjojMmY4MGVkfS5zZXNzaW9uLWtpbmQtYmFkZ2Uud29ya3RyZWUtbWVyZ2V7YmFja2dyb3VuZDojMmY4MGVkMWY7Y29sb3I6IzJmODBlZH0uc2Vzc2lvbi1raW5kLWJhZGdlLndvcmt0cmVlLW1lcmdlLmZhaWxlZHtiYWNrZ3JvdW5kOiNlNzRjM2MxZjtjb2xvcjojZDM1MjQ0fS5zZXNzaW9uLWtpbmQtYmFkZ2Uud29ya3RyZWUtbWVyZ2UubWVyZ2Vke2JhY2tncm91bmQ6IzI3YWU2MDFmO2NvbG9yOiMyMTk2NTN9LnNlc3Npb24ta2luZC1iYWRnZS53b3JrdHJlZS1tZXJnZS5tZXJnaW5nLC5zZXNzaW9uLWtpbmQtYmFkZ2Uud29ya3RyZWUtbWVyZ2UuY2hlY2tpbmd7YmFja2dyb3VuZDojZjI5OTRhMWY7Y29sb3I6I2MxN2MyYn0ud29ya3RyZWUtbWVyZ2UtY29udGVudHtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoxMHB4fS53b3JrdHJlZS1tZXJnZS1yb3d7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2dhcDoxNnB4O3BhZGRpbmc6MTBweCAxMnB4O2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSk7Ym9yZGVyLXJhZGl1czoxMnB4O2JhY2tncm91bmQ6I2ZmZmZmZjgwO2ZvbnQtc2l6ZTouODc1cmVtfS53b3JrdHJlZS1tZXJnZS1yb3cgc3Bhbntjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSl9Lndvcmt0cmVlLW1lcmdlLXJvdyBzdHJvbmd7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTt3b3JkLWJyZWFrOmJyZWFrLWFsbDt0ZXh0LWFsaWduOnJpZ2h0fS53b3JrdHJlZS1tZXJnZS1hY3Rpb25ze2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7Z2FwOjEwcHg7bWFyZ2luLXRvcDoxNnB4fS53b3JrdHJlZS1tZXJnZS1tb2RhbHttYXgtd2lkdGg6NjIwcHh9Lm1vZGFsLXN1YnRpdGxle21hcmdpbi10b3A6NHB4O2ZvbnQtc2l6ZTouODEyNXJlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKX0uc2Vzc2lvbi1hY3Rpb24tYnRuW2Rpc2FibGVkXXtvcGFjaXR5Oi40NTtjdXJzb3I6bm90LWFsbG93ZWR9LnNlc3Npb24tYWN0aW9uLWJ0bltkaXNhYmxlZF06aG92ZXJ7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKX0ud29ya3RyZWUtbWVyZ2UtYWN0aW9ucyAuYnRuW2Rpc2FibGVkXXtvcGFjaXR5Oi41O2N1cnNvcjpub3QtYWxsb3dlZH0ud29ya3RyZWUtbWVyZ2UtYWN0aW9ucyAuYnRuW2Rpc2FibGVkXTpob3Zlciwud29ya3RyZWUtbWVyZ2UtYWN0aW9ucyAuYnRuW2Rpc2FibGVkXTphY3RpdmV7dHJhbnNmb3JtOm5vbmV9Lndvcmt0cmVlLW1lcmdlLWFjdGlvbnMgLmJ0bnttaW4td2lkdGg6MTIwcHh9Lndvcmt0cmVlLW1lcmdlLW1vZGFsIC5tb2RhbC1ib2R5e21pbi1oZWlnaHQ6MjYwcHh9Lndvcmt0cmVlLW1lcmdlLW1vZGFsIC5lcnJvci1tZXNzYWdle21hcmdpbi10b3A6MTJweH0ud29ya3RyZWUtbWVyZ2UtY29udGVudCAuZmllbGQtaGludHttYXJnaW4tdG9wOjB9Lndvcmt0cmVlLW1lcmdlLXJvdysuZmllbGQtaGludHttYXJnaW4tdG9wOjJweH0ud29ya3RyZWUtbWVyZ2UtY29udGVudCAuZmllbGQtaGludCsuZmllbGQtaGludHttYXJnaW4tdG9wOjRweH0ud29ya3RyZWUtbWVyZ2UtbW9kYWwgLm1vZGFsLXN1YnRpdGxle21heC13aWR0aDo0MjBweH0ud29ya3RyZWUtbWVyZ2UtbW9kYWwgc3Ryb25ne2ZvbnQtd2VpZ2h0OjYwMH0ud29ya3RyZWUtbWVyZ2UtbW9kYWwgLm1vZGFsLWhlYWRlcnthbGlnbi1pdGVtczpmbGV4LXN0YXJ0fS53b3JrdHJlZS1tZXJnZS1jb250ZW50IHB7bWFyZ2luOjB9Lndvcmt0cmVlLW1lcmdlLWNvbnRlbnQgLmZpZWxkLWhpbnQgc3Ryb25ne2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSl9Lndvcmt0cmVlLW1lcmdlLXJvdyBzdHJvbmc6ZW1wdHk6YWZ0ZXJ7Y29udGVudDoiLSI7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCl9Lndvcmt0cmVlLW1lcmdlLWNvbnRlbnQgLmZpZWxkLWhpbnQgY29kZXtmb250LWZhbWlseTppbmhlcml0fS53b3JrdHJlZS1tZXJnZS1jb250ZW50IC5maWVsZC1oaW50Omxhc3QtY2hpbGR7bWFyZ2luLWJvdHRvbTowfS53b3JrdHJlZS1tZXJnZS1yb3c6Zmlyc3QtY2hpbGR7bWFyZ2luLXRvcDoycHh9Lndvcmt0cmVlLW1lcmdlLXJvdzpsYXN0LWNoaWxke21hcmdpbi1ib3R0b206MH0ud29ya3RyZWUtbWVyZ2UtY29udGVudCAuZmllbGQtaGludC5tdXRlZHtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKX0ud29ya3RyZWUtbWVyZ2UtY29udGVudCAuZmllbGQtaGludC5lcnJvcntjb2xvcjojZDM1MjQ0fS53b3JrdHJlZS1tZXJnZS1jb250ZW50IC5maWVsZC1oaW50LnN1Y2Nlc3N7Y29sb3I6IzIxOTY1M30ud29ya3RyZWUtbWVyZ2UtY29udGVudCAuZmllbGQtaGludC53YXJuaW5ne2NvbG9yOiNjMTdjMmJ9Lndvcmt0cmVlLW1lcmdlLWNvbnRlbnQgLmZpZWxkLWhpbnQuaW5mb3tjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSl9Lndvcmt0cmVlLW1lcmdlLWNvbnRlbnQgLmZpZWxkLWhpbnQrLndvcmt0cmVlLW1lcmdlLXJvd3ttYXJnaW4tdG9wOjJweH0ud29ya3RyZWUtbWVyZ2UtY29udGVudCAud29ya3RyZWUtbWVyZ2Utcm93Ky53b3JrdHJlZS1tZXJnZS1yb3d7bWFyZ2luLXRvcDowfS53b3JrdHJlZS1tZXJnZS1jb250ZW50IC53b3JrdHJlZS1tZXJnZS1yb3cgc3Ryb25nIHNtYWxse2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpfS53b3JrdHJlZS1tZXJnZS1jb250ZW50IC53b3JrdHJlZS1tZXJnZS1yb3cgc3Ryb25nIGNvZGUsLndvcmt0cmVlLW1lcmdlLWNvbnRlbnQgLndvcmt0cmVlLW1lcmdlLXJvdyBzcGFuIGNvZGV7Zm9udC1mYW1pbHk6aW5oZXJpdH0ud29ya3RyZWUtbWVyZ2UtY29udGVudCAud29ya3RyZWUtbWVyZ2Utcm93IGNvZGV7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtwYWRkaW5nOjB9Lndvcmt0cmVlLW1lcmdlLWNvbnRlbnQgLndvcmt0cmVlLW1lcmdlLXJvdyBlbXtmb250LXN0eWxlOm5vcm1hbDtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKX0ud29ya3RyZWUtbWVyZ2UtY29udGVudCAud29ya3RyZWUtbWVyZ2Utcm93IHNtYWxsLC53b3JrdHJlZS1tZXJnZS1jb250ZW50IC53b3JrdHJlZS1tZXJnZS1yb3cgLm11dGVke2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpfS53b3JrdHJlZS1tZXJnZS1jb250ZW50IC53b3JrdHJlZS1tZXJnZS1yb3cgLndhcm5pbmd7Y29sb3I6I2MxN2MyYn0ud29ya3RyZWUtbWVyZ2UtY29udGVudCAud29ya3RyZWUtbWVyZ2Utcm93IC5zdWNjZXNze2NvbG9yOiMyMTk2NTN9Lndvcmt0cmVlLW1lcmdlLWNvbnRlbnQgLndvcmt0cmVlLW1lcmdlLXJvdyAuZXJyb3J7Y29sb3I6I2QzNTI0NH0ud29ya3RyZWUtbWVyZ2UtY29udGVudCAud29ya3RyZWUtbWVyZ2Utcm93IC5pbmZve2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KX0ud29ya3RyZWUtbWVyZ2UtY29udGVudCAud29ya3RyZWUtbWVyZ2Utcm93IC50cnVuY2F0ZXtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpc30ud29ya3RyZWUtbWVyZ2UtY29udGVudCAud29ya3RyZWUtbWVyZ2Utcm93IC5tb25vc3BhY2V7Zm9udC1mYW1pbHk6dWktbW9ub3NwYWNlLFNGTW9uby1SZWd1bGFyLE1lbmxvLE1vbmFjbyxDb25zb2xhcyxtb25vc3BhY2V9Lndvcmt0cmVlLW1lcmdlLWNvbnRlbnQgLndvcmt0cmVlLW1lcmdlLXJvdyAuc21hbGx7Zm9udC1zaXplOi44MTI1cmVtfS53b3JrdHJlZS1tZXJnZS1jb250ZW50IC53b3JrdHJlZS1tZXJnZS1yb3cgLm5vcm1hbHtmb250LXNpemU6Ljg3NXJlbX0ud29ya3RyZWUtbWVyZ2UtY29udGVudCAud29ya3RyZWUtbWVyZ2Utcm93IC5ibG9ja3tkaXNwbGF5OmJsb2NrfS53b3JrdHJlZS1tZXJnZS1jb250ZW50IC53b3JrdHJlZS1tZXJnZS1yb3cgLmlubGluZXtkaXNwbGF5OmlubGluZX0ud29ya3RyZWUtbWVyZ2UtY29udGVudCAud29ya3RyZWUtbWVyZ2Utcm93IC5mbGV4e2Rpc3BsYXk6ZmxleH0ud29ya3RyZWUtbWVyZ2UtY29udGVudCAud29ya3RyZWUtbWVyZ2Utcm93IC5ncmlke2Rpc3BsYXk6Z3JpZH0ud29ya3RyZWUtbWVyZ2UtY29udGVudCAud29ya3RyZWUtbWVyZ2Utcm93IC5yb3VuZGVke2JvcmRlci1yYWRpdXM6OHB4fUBtZWRpYShob3Zlcjpob3Zlcil7LnNlc3Npb24taXRlbSAuc2Vzc2lvbi1hY3Rpb25ze29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGVhc2V9LnNlc3Npb24taXRlbTpob3ZlciAuc2Vzc2lvbi1hY3Rpb25zLC5zZXNzaW9uLWl0ZW0uYWN0aXZlIC5zZXNzaW9uLWFjdGlvbnMsLnNlc3Npb24taXRlbS5zd2lwZWQgLnNlc3Npb24tYWN0aW9uc3tvcGFjaXR5OjF9LnNlc3Npb24taXRlbSAuc2Vzc2lvbi1hY3Rpb25zOmhhcyguc2Vzc2lvbi1hY3Rpb24tYnRuW2RhdGEtYWN0aW9uPXJlc3VtZV0pe29wYWNpdHk6MX19QG1lZGlhKGhvdmVyOm5vbmUpey5zZXNzaW9uLWl0ZW0gLnNlc3Npb24tYWN0aW9uc3tvcGFjaXR5OjF9fS5zZXNzaW9uLWl0ZW06aG92ZXJ7YmFja2dyb3VuZDojZmZmZGZhZjU7Ym9yZGVyLWNvbG9yOnZhcigtLWJvcmRlci1kZWZhdWx0KTtib3gtc2hhZG93OjAgMnB4IDhweCAjNTkzYTIwMTJ9LnNlc3Npb24taXRlbTpob3ZlcjpiZWZvcmV7b3BhY2l0eTouNTt0cmFuc2Zvcm06c2NhbGVZKDEpfS5zZXNzaW9uLWl0ZW0uYWN0aXZle2JhY2tncm91bmQ6I2ZmZjdmMGY1O2JvcmRlci1jb2xvcjojYzU2NTNkNGQ7Ym94LXNoYWRvdzowIDJweCA4cHggI2M1NjUzZDFhfS5zZXNzaW9uLWl0ZW06YWN0aXZle3RyYW5zZm9ybTpzY2FsZSguOTkpO3RyYW5zaXRpb24tZHVyYXRpb246LjFzfS5zZXNzaW9uLWNvbW1hbmR7Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZTouODEyNXJlbTt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKTtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO2xldHRlci1zcGFjaW5nOi0uMDFlbX0uc2Vzc2lvbi10aXRsZXtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOi44MTI1cmVtO3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO2xldHRlci1zcGFjaW5nOi0uMDFlbTtsaW5lLWhlaWdodDoxLjN9LnNlc3Npb24tbWV0YXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo4cHg7Zm9udC1zaXplOi42ODc1cmVtO2NvbG9yOnZhcigtLXRleHQtdGVydGlhcnkpO2ZsZXgtd3JhcDp3cmFwfS5zZXNzaW9uLXN0YXR1c3tkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NHB4O3BhZGRpbmc6M3B4IDhweDtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1mdWxsKTtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOi42ODc1cmVtO3RyYW5zaXRpb246YWxsIHZhcigtLXRyYW5zaXRpb24tZmFzdCl9LnNlc3Npb24tc3RhdHVzLWRvdHt3aWR0aDo2cHg7aGVpZ2h0OjZweDtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOmN1cnJlbnRDb2xvcjtmbGV4LXNocmluazowfS5zZXNzaW9uLXN0YXR1cy5ydW5uaW5nIC5zZXNzaW9uLXN0YXR1cy1kb3R7YmFja2dyb3VuZDp2YXIoLS1zdWNjZXNzKTtib3gtc2hhZG93OjAgMCA1cHggdmFyKC0tc3VjY2Vzcy1nbG93KTthbmltYXRpb246c3RhdHVzLXB1bHNlIDJzIGVhc2UtaW4tb3V0IGluZmluaXRlfS5zZXNzaW9uLXN0YXR1cy5leGl0ZWQgLnNlc3Npb24tc3RhdHVzLWRvdHtiYWNrZ3JvdW5kOnZhcigtLXRleHQtbXV0ZWQpfS5zZXNzaW9uLXN0YXR1cy5mYWlsZWQgLnNlc3Npb24tc3RhdHVzLWRvdHtiYWNrZ3JvdW5kOnZhcigtLWRhbmdlcil9LnNlc3Npb24tc3RhdHVzLnN0b3BwZWQgLnNlc3Npb24tc3RhdHVzLWRvdHtiYWNrZ3JvdW5kOnZhcigtLXdhcm5pbmcpfS5zZXNzaW9uLXN0YXR1cy5ydW5uaW5ne2JhY2tncm91bmQ6dmFyKC0tc3VjY2Vzcy1tdXRlZCk7Y29sb3I6dmFyKC0tc3VjY2Vzcyl9LnNlc3Npb24tc3RhdHVzLmZhaWxlZHtiYWNrZ3JvdW5kOnZhcigtLWRhbmdlci1tdXRlZCk7Y29sb3I6dmFyKC0tZGFuZ2VyKX0uc2Vzc2lvbi1zdGF0dXMuc3RvcHBlZHtiYWNrZ3JvdW5kOnZhcigtLXdhcm5pbmctbXV0ZWQpO2NvbG9yOnZhcigtLXdhcm5pbmcpfS5zZXNzaW9uLXN0YXR1cy5wZXJtaXNzaW9uLWJsb2NrZWR7YmFja2dyb3VuZDojZjBhNTAwMjQ7Y29sb3I6I2QxOGIwMH0uc2Vzc2lvbi1zdGF0dXMuZXhpdGVkLC5zZXNzaW9uLXN0YXR1cy5hcmNoaXZlZHtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO3BhZGRpbmctbGVmdDowO3BhZGRpbmctcmlnaHQ6MH1Aa2V5ZnJhbWVzIHN0YXR1cy1wdWxzZXswJSx0b3tvcGFjaXR5OjF9NTAle29wYWNpdHk6LjV9fS5zZXNzaW9uLWlke2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7Zm9udC1zaXplOi42MjVyZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7YmFja2dyb3VuZDojOTY3NjU1MWY7cGFkZGluZzoycHggNnB4O2JvcmRlci1yYWRpdXM6NHB4O2ZvbnQtd2VpZ2h0OjUwMH0uc2Vzc2lvbi1ncm91cC0taGlzdG9yeXttYXJnaW4tdG9wOmF1dG87cGFkZGluZy10b3A6NnB4fS5zZXNzaW9uLWhpc3RvcnktdG9nZ2xlIC5oaXN0b3J5LWNvdW50LmxvYWRpbmd7bGV0dGVyLXNwYWNpbmc6LjEyZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtwYWRkaW5nLWxlZnQ6MnB4O3BhZGRpbmctcmlnaHQ6MnB4fS5zZXNzaW9uLWhpc3RvcnktYm9keXtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDo0cHg7cGFkZGluZzoycHggMCA0cHg7YW5pbWF0aW9uOmhpc3RvcnlCb2R5RmFkZUluIC4yMnMgdmFyKC0tZWFzZS1vdXQtZXhwbyl9QGtleWZyYW1lcyBoaXN0b3J5Qm9keUZhZGVJbnswJXtvcGFjaXR5OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTJweCl9dG97b3BhY2l0eToxO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApfX0uc2lkZWJhci1oaXN0b3J5LXRvb2xiYXJ7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpmbGV4LWVuZDtwYWRkaW5nOjJweCA0cHggNnB4O2ZsZXgtc2hyaW5rOjB9LnNpZGViYXItaGlzdG9yeS1jbGVhcntjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtmb250LXdlaWdodDo1MDB9LnNpZGViYXItaGlzdG9yeS1jbGVhcjpob3Zlcntjb2xvcjp2YXIoLS1kYW5nZXIpO2JhY2tncm91bmQ6dmFyKC0tZGFuZ2VyLW11dGVkKX0uc2lkZWJhci1oaXN0b3J5LXNjcm9sbHtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoycHh9LnNpZGViYXItZm9vdGVye3BhZGRpbmc6MTJweCAxMnB4IDE0cHg7Ym9yZGVyLXRvcDoxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSk7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6MTBweDtiYWNrZ3JvdW5kOiNmZmZiZjViM30uc2lkZWJhci1mb290ZXItYWN0aW9uc3tkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdChhdXRvLWZpdCxtaW5tYXgoNTZweCwxZnIpKTtnYXA6NHB4fS5zaWRlYmFyLWZvb3Rlci1hY3Rpb25zIC5idG57ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtnYXA6NHB4O2ZvbnQtc2l6ZTouNjI1cmVtO2ZvbnQtd2VpZ2h0OjUwMDtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtwYWRkaW5nOjdweCA0cHg7bWluLWhlaWdodDo0NnB4O2JvcmRlci1yYWRpdXM6OXB4O3RyYW5zaXRpb246YmFja2dyb3VuZCB2YXIoLS10cmFuc2l0aW9uLWZhc3QpLGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCksdHJhbnNmb3JtIHZhcigtLXRyYW5zaXRpb24tZmFzdCl9LnNpZGViYXItZm9vdGVyLWFjdGlvbnMgLmJ0biBzdmd7d2lkdGg6MTZweDtoZWlnaHQ6MTZweDtmbGV4LXNocmluazowO29wYWNpdHk6Ljg1O3RyYW5zaXRpb246b3BhY2l0eSB2YXIoLS10cmFuc2l0aW9uLWZhc3QpfS5zaWRlYmFyLWZvb3Rlci1hY3Rpb25zIC5idG46aG92ZXJ7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtiYWNrZ3JvdW5kOiM5Njc2NTUxNDt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMXB4KX0uc2lkZWJhci1mb290ZXItYWN0aW9ucyAuYnRuOmhvdmVyIHN2Z3tvcGFjaXR5OjF9LnNpZGViYXItZm9vdGVyLWFjdGlvbnMgLmJ0bjphY3RpdmV7dHJhbnNmb3JtOnNjYWxlKC45NSk7dHJhbnNpdGlvbi1kdXJhdGlvbjouMXN9LnNpZGViYXItZm9vdGVyLWFjdGlvbnMgLmJ0bi5oaWRkZW57ZGlzcGxheTpub25lfS5zaWRlYmFyLWZvb3Rlci1hY3Rpb25zIC5zaWRlYmFyLWxvZ291dHtwb3NpdGlvbjpyZWxhdGl2ZX0uc2lkZWJhci1mb290ZXItYWN0aW9ucyAuc2lkZWJhci1sb2dvdXQ6YmVmb3Jle2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7bGVmdDotM3B4O3RvcDoyMiU7Ym90dG9tOjIyJTt3aWR0aDoxcHg7YmFja2dyb3VuZDp2YXIoLS1ib3JkZXItc3VidGxlKTtwb2ludGVyLWV2ZW50czpub25lfS5zaWRlYmFyLWZvb3Rlci1hY3Rpb25zIC5zaWRlYmFyLWxvZ291dDpob3Zlcntjb2xvcjp2YXIoLS1kYW5nZXIpO2JhY2tncm91bmQ6dmFyKC0tZGFuZ2VyLW11dGVkKX0uc2lkZWJhci1mb290ZXItYWN0aW9ucyAuc2lkZWJhci1sb2dvdXQ6aG92ZXIgc3Zne2NvbG9yOnZhcigtLWRhbmdlcil9LnRvcGJhci1idG57ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtnYXA6NXB4O2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtc2Fucyk7Zm9udC1zaXplOi43NXJlbTtmb250LXdlaWdodDo1MDA7cGFkZGluZzo2cHggMTBweDtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1zbSk7Ym9yZGVyOjFweCBzb2xpZCB0cmFuc3BhcmVudDtjdXJzb3I6cG9pbnRlcjt0cmFuc2l0aW9uOmFsbCB2YXIoLS10cmFuc2l0aW9uLWZhc3QpO2hlaWdodDozMnB4O21pbi1oZWlnaHQ6MzJweDt3aGl0ZS1zcGFjZTpub3dyYXA7Ym94LXNpemluZzpib3JkZXItYm94O2xpbmUtaGVpZ2h0OjE7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSl9LnRvcGJhci1idG46aG92ZXJ7YmFja2dyb3VuZDojZmZmZmZmODA7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KX0udG9wYmFyLWJ0bjphY3RpdmV7dHJhbnNmb3JtOnNjYWxlKC45NSl9LnRvcGJhci1idG4uYWN0aXZle2JhY2tncm91bmQ6I2ZmZmZmZmIzO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7Zm9udC13ZWlnaHQ6NjAwO2JveC1zaGFkb3c6MCAxcHggNHB4ICM1OTNhMjAxYX0udG9wYmFyLWJ0bi5zcXVhcmV7d2lkdGg6MzJweDtwYWRkaW5nOjA7Zm9udC1zaXplOi44NzVyZW19I3Rlcm1pbmFsLWludGVyYWN0aXZlLXRvZ2dsZS10b3AuYWN0aXZle2JhY2tncm91bmQ6dmFyKC0tYWNjZW50LW11dGVkKTtjb2xvcjp2YXIoLS1hY2NlbnQpO2JvcmRlci1jb2xvcjojYzU2NTNkMzN9I3Rlcm1pbmFsLWludGVyYWN0aXZlLXRvZ2dsZS10b3AuYWN0aXZlOmhvdmVye2JhY2tncm91bmQ6I2M1NjUzZDJlfS5idG57ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtnYXA6NnB4O2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtc2Fucyk7Zm9udC1zaXplOi44NzVyZW07Zm9udC13ZWlnaHQ6NjAwO2xldHRlci1zcGFjaW5nOi0uMDA1ZW07cGFkZGluZzowIDE2cHg7aGVpZ2h0OjM4cHg7bWluLWhlaWdodDozOHB4O2JvcmRlci1yYWRpdXM6MTBweDtib3JkZXI6MXB4IHNvbGlkIHRyYW5zcGFyZW50O2N1cnNvcjpwb2ludGVyO3doaXRlLXNwYWNlOm5vd3JhcDtwb3NpdGlvbjpyZWxhdGl2ZTt1c2VyLXNlbGVjdDpub25lO3RyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAuMTVzIGVhc2UsYm9yZGVyLWNvbG9yIC4xNXMgZWFzZSxjb2xvciAuMTVzIGVhc2UsYm94LXNoYWRvdyAuMThzIGVhc2UsdHJhbnNmb3JtIC4xOHMgY3ViaWMtYmV6aWVyKC4zNCwxLjQsLjY0LDEpOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudH0uYnRuOmZvY3Vze291dGxpbmU6bm9uZX0uYnRuOmZvY3VzLXZpc2libGV7b3V0bGluZTpub25lO2JveC1zaGFkb3c6MCAwIDAgMnB4IHZhcigtLWJnLXByaW1hcnkpLDAgMCAwIDRweCB2YXIoLS1hY2NlbnQpfS5idG46ZGlzYWJsZWQsLmJ0bltkaXNhYmxlZF17b3BhY2l0eTouNDU7Y3Vyc29yOm5vdC1hbGxvd2VkO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNmb3JtOm5vbmUhaW1wb3J0YW50O2JveC1zaGFkb3c6bm9uZSFpbXBvcnRhbnR9LmJ0bi1wcmltYXJ5e2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZyx2YXIoLS1hY2NlbnQtaG92ZXIpIDAlLHZhcigtLWFjY2VudCkgMTAwJSk7Y29sb3I6dmFyKC0tdGV4dC1pbnZlcnNlKTtib3gtc2hhZG93OjAgMXB4IDJweCAjYzU2NTNkNTIsMCA0cHggMTBweCAtMnB4ICNjNTY1M2Q1MixpbnNldCAwIDFweCAjZmZmZmZmMzgsaW5zZXQgMCAtMXB4ICM1OTNhMjAyZX0uYnRuLXByaW1hcnk6aG92ZXJ7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCNkNjg1NWUgMCUsdmFyKC0tYWNjZW50LWhvdmVyKSAxMDAlKTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMXB4KTtib3gtc2hhZG93OjAgMnB4IDRweCAjYzU2NTNkNTIsMCA4cHggMjBweCAtNHB4ICNjNTY1M2Q2NixpbnNldCAwIDFweCAjZmZmZmZmNDcsaW5zZXQgMCAtMXB4ICM1OTNhMjAyZX0uYnRuLXByaW1hcnk6YWN0aXZle3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZyx2YXIoLS1hY2NlbnQpIDAlLHZhcigtLWFjY2VudC1hY3RpdmUpIDEwMCUpO2JveC1zaGFkb3c6MCAxcHggMnB4ICNjNTY1M2Q0NyxpbnNldCAwIDFweCAjNTkzYTIwMmU7dHJhbnNpdGlvbi1kdXJhdGlvbjouMDZzfS5idG4tc2Vjb25kYXJ5e2JhY2tncm91bmQ6IzdkNWIzOTE0O2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50fS5idG4tc2Vjb25kYXJ5OmhvdmVye2JhY2tncm91bmQ6IzdkNWIzOTI0O2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSl9LmJ0bi1zZWNvbmRhcnk6YWN0aXZle2JhY2tncm91bmQ6IzdkNWIzOTMzO3RyYW5zaXRpb24tZHVyYXRpb246LjA2c30uYnRuLWdob3N0e2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudH0uYnRuLWdob3N0OmhvdmVye2JhY2tncm91bmQ6IzdkNWIzOTE0O2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSl9LmJ0bi1naG9zdDphY3RpdmV7YmFja2dyb3VuZDojN2Q1YjM5MjQ7dHJhbnNpdGlvbi1kdXJhdGlvbjouMDZzfS5idG4tZGFuZ2Vye2JhY2tncm91bmQ6I2IyNGY0NTE0O2NvbG9yOnZhcigtLWRhbmdlcik7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50fS5idG4tZGFuZ2VyOmhvdmVye2JhY2tncm91bmQ6I2IyNGY0NTI5O2NvbG9yOnZhcigtLWRhbmdlcil9LmJ0bi1kYW5nZXI6YWN0aXZle2JhY2tncm91bmQ6I2IyNGY0NTNkO3RyYW5zaXRpb24tZHVyYXRpb246LjA2c30uYnRuLWRhbmdlcjpmb2N1cy12aXNpYmxle2JveC1zaGFkb3c6MCAwIDAgMnB4IHZhcigtLWJnLXByaW1hcnkpLDAgMCAwIDRweCB2YXIoLS1kYW5nZXIpfS5idG4tc3VjY2Vzc3tiYWNrZ3JvdW5kOiM0ZjdhNTgxYTtjb2xvcjp2YXIoLS1zdWNjZXNzKTtib3JkZXItY29sb3I6dHJhbnNwYXJlbnR9LmJ0bi1zdWNjZXNzOmhvdmVye2JhY2tncm91bmQ6IzRmN2E1ODJlO2NvbG9yOnZhcigtLXN1Y2Nlc3MpfS5idG4tc3VjY2VzczphY3RpdmV7YmFja2dyb3VuZDojNGY3YTU4NDI7dHJhbnNpdGlvbi1kdXJhdGlvbjouMDZzfS5idG4tc3VjY2Vzczpmb2N1cy12aXNpYmxle2JveC1zaGFkb3c6MCAwIDAgMnB4IHZhcigtLWJnLXByaW1hcnkpLDAgMCAwIDRweCB2YXIoLS1zdWNjZXNzKX0uYnRuLWJsb2Nre3dpZHRoOjEwMCV9LmJ0bi14c3toZWlnaHQ6MjZweDttaW4taGVpZ2h0OjI2cHg7cGFkZGluZzowIDEwcHg7Zm9udC1zaXplOi43NXJlbTtib3JkZXItcmFkaXVzOjdweDtnYXA6NHB4fS5idG4tc217aGVpZ2h0OjMycHg7bWluLWhlaWdodDozMnB4O3BhZGRpbmc6MCAxMnB4O2ZvbnQtc2l6ZTouODEyNXJlbTtib3JkZXItcmFkaXVzOjhweDtnYXA6NXB4fS5idG4taWNvbntwYWRkaW5nOjA7d2lkdGg6MzZweDttaW4td2lkdGg6MzZweDtoZWlnaHQ6MzZweDttaW4taGVpZ2h0OjM2cHg7Ym9yZGVyLXJhZGl1czo4cHg7Z2FwOjB9LmJ0bi1pY29uLmJ0bi1zbXt3aWR0aDozMHB4O21pbi13aWR0aDozMHB4O2hlaWdodDozMHB4O21pbi1oZWlnaHQ6MzBweDtib3JkZXItcmFkaXVzOjdweH0uYnRuLWljb24gc3Zne2ZsZXgtc2hyaW5rOjB9Lm1haW4tY29udGVudHtmbGV4OjE7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4td2lkdGg6MDttaW4taGVpZ2h0OjA7b3ZlcmZsb3c6aGlkZGVuO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7cG9zaXRpb246cmVsYXRpdmV9Lm1haW4tY29udGVudC5maWxlLXBhbmVsLW9wZW57bWFyZ2luLXJpZ2h0OnZhcigtLWxheW91dC1tYWluLWZpbGUtcGFuZWwtd2lkdGgpO3RyYW5zaXRpb246bWFyZ2luLXJpZ2h0IC4yNXMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSl9LnRlcm1pbmFsLWluZm97Zm9udC1zaXplOi42MjVyZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7Zm9udC13ZWlnaHQ6NTAwfS5tYWluLWhlYWRlci1yb3d7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtwYWRkaW5nOjZweCAxMHB4O2ZsZXgtc2hyaW5rOjA7bWluLWhlaWdodDo0NHB4O2dhcDo4cHg7cG9zaXRpb246cmVsYXRpdmV9Lm1haW4taGVhZGVyLXJvdzphZnRlcntjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDtyaWdodDowO2JvdHRvbTowO2hlaWdodDoycHg7cG9pbnRlci1ldmVudHM6bm9uZTtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg5MGRlZyx0cmFuc3BhcmVudCAwJSxyZ2JhKHZhcigtLWFjY2VudC1yZ2IsIDE5NywgMTAxLCA2MSksLjg1KSAzNSUscmdiYSh2YXIoLS1hY2NlbnQtcmdiLCAxOTcsIDEwMSwgNjEpLDEpIDUwJSxyZ2JhKHZhcigtLWFjY2VudC1yZ2IsIDE5NywgMTAxLCA2MSksLjg1KSA2NSUsdHJhbnNwYXJlbnQgMTAwJSk7YmFja2dyb3VuZC1zaXplOjIyMCUgMTAwJTtiYWNrZ3JvdW5kLXBvc2l0aW9uOjEwMCUgY2VudGVyO29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgLjI1cyBlYXNlfS5tYWluLWhlYWRlci1yb3cuaXMtcnVubmluZzphZnRlcntvcGFjaXR5OjE7YW5pbWF0aW9uOnRvcGJhclByb2dyZXNzRmxvdyAxLjZzIGxpbmVhciBpbmZpbml0ZX0ubWFpbi1oZWFkZXItcm93LmlzLXBlcm1pc3Npb24tYmxvY2tlZDphZnRlcntiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg5MGRlZyx0cmFuc3BhcmVudCAwJSxyZ2JhKDE2OSwxMDYsNDcsLjg1KSAzNSUscmdiYSgxNjksMTA2LDQ3LDEpIDUwJSxyZ2JhKDE2OSwxMDYsNDcsLjg1KSA2NSUsdHJhbnNwYXJlbnQgMTAwJSk7YmFja2dyb3VuZC1zaXplOjIyMCUgMTAwJTthbmltYXRpb24tZHVyYXRpb246Mi40c31Aa2V5ZnJhbWVzIHRvcGJhclByb2dyZXNzRmxvd3swJXtiYWNrZ3JvdW5kLXBvc2l0aW9uOjEwMCUgY2VudGVyfXRve2JhY2tncm91bmQtcG9zaXRpb246LTEwMCUgY2VudGVyfX1AbWVkaWEocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjpyZWR1Y2Upey5tYWluLWhlYWRlci1yb3cuaXMtcnVubmluZzphZnRlcnthbmltYXRpb246bm9uZTtvcGFjaXR5Oi43fX0udG9wYmFyLWxlZnR7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6OHB4O2ZsZXgtc2hyaW5rOjB9LnRvcGJhci1jZW50ZXJ7ZmxleDoxO21pbi13aWR0aDowO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjhweDtvdmVyZmxvdzpoaWRkZW59LnRvcGJhci1yaWdodHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo0cHg7ZmxleC1zaHJpbms6MH0udG9wYmFyLWJyYW5ke2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7d2lkdGg6MjZweDtoZWlnaHQ6MjZweDtib3JkZXItcmFkaXVzOjhweDtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxMzVkZWcsdmFyKC0tYWNjZW50KSx2YXIoLS1hY2NlbnQtYWN0aXZlKSk7Y29sb3I6I2ZmZjtmb250LXdlaWdodDo3MDA7Zm9udC1zaXplOi44NXJlbTtsZXR0ZXItc3BhY2luZzouMDJlbTtib3gtc2hhZG93OjAgMXB4IDNweCAjNTkzYTIwMmU7dXNlci1zZWxlY3Q6bm9uZTtmbGV4LXNocmluazowfS50b3BiYXItc2Vzc2lvbi10aXRsZXtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOi44NXJlbTtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztmbGV4LXNocmluazowO21heC13aWR0aDoyNDBweH0udG9wYmFyLWN3ZHtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtmb250LXNpemU6LjcycmVtO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubywgbW9ub3NwYWNlKTt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO21pbi13aWR0aDowO2ZsZXg6MSAxIDA7Y3Vyc29yOnBvaW50ZXI7cGFkZGluZzoycHggNnB4O2JvcmRlci1yYWRpdXM6NnB4O2RpcmVjdGlvbjpsdHI7dGV4dC1hbGlnbjpsZWZ0O3RyYW5zaXRpb246YmFja2dyb3VuZCB2YXIoLS10cmFuc2l0aW9uLWZhc3QpLGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCl9LnRvcGJhci1jd2Q6Oi13ZWJraXQtc2Nyb2xsYmFye2hlaWdodDo0cHh9LnRvcGJhci1jd2Q6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1ie2JhY2tncm91bmQ6Izk2NzY1NTQ3O2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLWZ1bGwpfS50b3BiYXItY3dkOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlcntiYWNrZ3JvdW5kOiM5Njc2NTU4MH0udG9wYmFyLWN3ZDpob3ZlcntiYWNrZ3JvdW5kOiNmZmZmZmY4Yztjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSl9LnRhaWwtbWFycXVlZS1wYXRoe2Rpc3BsYXk6aW5saW5lLWJsb2NrO21pbi13aWR0aDowO21heC13aWR0aDoxMDAlO292ZXJmbG93OmhpZGRlbjt3aGl0ZS1zcGFjZTpub3dyYXA7ZGlyZWN0aW9uOmx0cjt0ZXh0LWFsaWduOmxlZnQ7dmVydGljYWwtYWxpZ246Ym90dG9tOy0tdGFpbC1tYXJxdWVlLXNoaWZ0OiAwcHg7LS10YWlsLW1hcnF1ZWUtZHVyYXRpb246IDEyczstLXRhaWwtbWFycXVlZS1kZWxheTogMi40c30udGFpbC1tYXJxdWVlLXBhdGgtaW5uZXJ7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2hpdGUtc3BhY2U6bm93cmFwO3RyYW5zZm9ybTp0cmFuc2xhdGUoY2FsYygtMSAqIHZhcigtLXRhaWwtbWFycXVlZS1zaGlmdCkpKX0udGFpbC1tYXJxdWVlLXBhdGguaXMtb3ZlcmZsb3dpbmcgLnRhaWwtbWFycXVlZS1wYXRoLWlubmVye2FuaW1hdGlvbjp0YWlsUGF0aE1hcnF1ZWUgdmFyKC0tdGFpbC1tYXJxdWVlLWR1cmF0aW9uKSBsaW5lYXIgdmFyKC0tdGFpbC1tYXJxdWVlLWRlbGF5KSBpbmZpbml0ZSBhbHRlcm5hdGUgYm90aH1Aa2V5ZnJhbWVzIHRhaWxQYXRoTWFycXVlZXswJSwyMiV7dHJhbnNmb3JtOnRyYW5zbGF0ZShjYWxjKC0xICogdmFyKC0tdGFpbC1tYXJxdWVlLXNoaWZ0KSkpfTc4JSx0b3t0cmFuc2Zvcm06dHJhbnNsYXRlKDApfX1AbWVkaWEocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjpyZWR1Y2Upey50YWlsLW1hcnF1ZWUtcGF0aC5pcy1vdmVyZmxvd2luZyAudGFpbC1tYXJxdWVlLXBhdGgtaW5uZXJ7YW5pbWF0aW9uOm5vbmUhaW1wb3J0YW50O3RyYW5zZm9ybTp0cmFuc2xhdGUoY2FsYygtMSAqIHZhcigtLXRhaWwtbWFycXVlZS1zaGlmdCkpKX19LnRvcGJhci10YWdsaW5le2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2ZvbnQtc2l6ZTouNzhyZW07d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS5zZXNzaW9uLXN0YXR1cy1waWxse2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo1cHg7Zm9udC1zaXplOi43cmVtO2ZvbnQtd2VpZ2h0OjUwMDtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7YmFja2dyb3VuZDp2YXIoLS1iZy1lbGV2YXRlZCk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlKTtib3JkZXItcmFkaXVzOjIwcHg7cGFkZGluZzoycHggOXB4IDJweCA3cHg7ZmxleC1zaHJpbms6MDttYXgtd2lkdGg6MTQwcHg7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbn0uc2Vzc2lvbi1zdGF0dXMtcGlsbCAuc2Vzc2lvbi1zdGF0dXMtZG90e3dpZHRoOjZweDtoZWlnaHQ6NnB4O2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6dmFyKC0tdGV4dC1tdXRlZCk7ZmxleC1zaHJpbms6MH0uc2Vzc2lvbi1zdGF0dXMtcGlsbCAuc2Vzc2lvbi1zdGF0dXMtdGV4dHtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpc30uc2Vzc2lvbi1zdGF0dXMtcGlsbC5ydW5uaW5ne2JhY2tncm91bmQ6dmFyKC0tc3VjY2Vzcy1tdXRlZCk7Ym9yZGVyLWNvbG9yOiM0ZjdhNTg0ZDtjb2xvcjp2YXIoLS1zdWNjZXNzKX0uc2Vzc2lvbi1zdGF0dXMtcGlsbC5ydW5uaW5nIC5zZXNzaW9uLXN0YXR1cy1kb3R7YmFja2dyb3VuZDp2YXIoLS1zdWNjZXNzKTthbmltYXRpb246dGFzay1wdWxzZSAxLjJzIGVhc2UtaW4tb3V0IGluZmluaXRlfS5zZXNzaW9uLXN0YXR1cy1waWxsLnBlcm1pc3Npb24tYmxvY2tlZHtiYWNrZ3JvdW5kOnZhcigtLXdhcm5pbmctbXV0ZWQpO2JvcmRlci1jb2xvcjojYTk2YTJmNTk7Y29sb3I6dmFyKC0td2FybmluZyl9LnNlc3Npb24tc3RhdHVzLXBpbGwucGVybWlzc2lvbi1ibG9ja2VkIC5zZXNzaW9uLXN0YXR1cy1kb3R7YmFja2dyb3VuZDp2YXIoLS13YXJuaW5nKTthbmltYXRpb246dGFzay1wdWxzZSAxLjJzIGVhc2UtaW4tb3V0IGluZmluaXRlfS5zZXNzaW9uLXN0YXR1cy1waWxsLmV4aXRlZCwuc2Vzc2lvbi1zdGF0dXMtcGlsbC5zdG9wcGVke2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpfS5zZXNzaW9uLXN0YXR1cy1waWxsLmZhaWxlZHtiYWNrZ3JvdW5kOnZhcigtLWRhbmdlci1tdXRlZCk7Ym9yZGVyLWNvbG9yOiNiMjRmNDU0ZDtjb2xvcjp2YXIoLS1kYW5nZXIpfS5zZXNzaW9uLXN0YXR1cy1waWxsLmZhaWxlZCAuc2Vzc2lvbi1zdGF0dXMtZG90e2JhY2tncm91bmQ6dmFyKC0tZGFuZ2VyKX0uc2Vzc2lvbi1zdGF0dXMtcGlsbC5hcmNoaXZlZHtvcGFjaXR5Oi43fS5zZXNzaW9uLXN0YXR1cy1waWxsIC5zZXNzaW9uLXN0YXR1cy1lbGFwc2Vke2ZsZXgtc2hyaW5rOjA7bWFyZ2luLWxlZnQ6NHB4O3BhZGRpbmctbGVmdDo2cHg7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkIGN1cnJlbnRDb2xvcjtvcGFjaXR5Oi43NTtmb250LXZhcmlhbnQtbnVtZXJpYzp0YWJ1bGFyLW51bXM7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vLCBtb25vc3BhY2UpO2ZvbnQtc2l6ZTouNjVyZW07bGV0dGVyLXNwYWNpbmc6LS4wMWVtfS5jdXJyZW50LXRhc2t7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NXB4O2ZvbnQtc2l6ZTouN3JlbTtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7YmFja2dyb3VuZDp2YXIoLS1hY2NlbnQtbXV0ZWQpO2JvcmRlcjoxcHggc29saWQgcmdiYSgxOTcsMTAxLDYxLC4yKTtib3JkZXItcmFkaXVzOjIwcHg7cGFkZGluZzoycHggOHB4IDJweCA1cHg7Zm9udC13ZWlnaHQ6NTAwO21heC13aWR0aDoyNDBweDttaW4td2lkdGg6MDtvdmVyZmxvdzpoaWRkZW47ZmxleC1zaHJpbms6MTt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcH0uY3VycmVudC10YXNrOmJlZm9yZXtjb250ZW50OiIiO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjZweDtoZWlnaHQ6NnB4O2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6dmFyKC0tYWNjZW50KTtmbGV4LXNocmluazowO2FuaW1hdGlvbjp0YXNrLXB1bHNlIDEuMnMgZWFzZS1pbi1vdXQgaW5maW5pdGV9QGtleWZyYW1lcyB0YXNrLXB1bHNlezAlLHRve29wYWNpdHk6MTt0cmFuc2Zvcm06c2NhbGUoMSl9NTAle29wYWNpdHk6LjU7dHJhbnNmb3JtOnNjYWxlKC44KX19LnRvcGJhci1tb3JlLXdyYXB7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTppbmxpbmUtZmxleH0udG9wYmFyLW1vcmUtbWVudXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6Y2FsYygxMDAlICsgNnB4KTtyaWdodDowO21pbi13aWR0aDoxNjhweDtiYWNrZ3JvdW5kOnZhcigtLWJnLWVsZXZhdGVkKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1kZWZhdWx0KTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1tZCk7cGFkZGluZzo0cHg7Ym94LXNoYWRvdzp2YXIoLS1zaGFkb3ctbGcpO3otaW5kZXg6NjA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6MXB4fS50b3BiYXItbW9yZS1tZW51LmhpZGRlbntkaXNwbGF5Om5vbmV9LnRvcGJhci1tb3JlLWl0ZW17ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6OXB4O3dpZHRoOjEwMCU7cGFkZGluZzo4cHggMTJweDtib3JkZXI6MDtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1zYW5zKTtmb250LXNpemU6LjgycmVtO2ZvbnQtd2VpZ2h0OjUwMDtjdXJzb3I6cG9pbnRlcjtib3JkZXItcmFkaXVzOjhweDt0ZXh0LWFsaWduOmxlZnQ7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIHZhcigtLXRyYW5zaXRpb24tZmFzdCksY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KX0udG9wYmFyLW1vcmUtaXRlbTpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLWFjY2VudC1tdXRlZCk7Y29sb3I6dmFyKC0tYWNjZW50KX0udG9wYmFyLW1vcmUtaXRlbSBzdmd7ZmxleC1zaHJpbms6MDtvcGFjaXR5Oi44NX0udG9wYmFyLW1vcmUtaXRlbS50b3BiYXItbW9yZS1pdGVtLWRhbmdlcntjb2xvcjp2YXIoLS1kYW5nZXIpfS50b3BiYXItbW9yZS1pdGVtLnRvcGJhci1tb3JlLWl0ZW0tZGFuZ2VyOmhvdmVye2JhY2tncm91bmQ6dmFyKC0tZGFuZ2VyLW11dGVkKTtjb2xvcjp2YXIoLS1kYW5nZXItaG92ZXIpfS50b3BiYXItbW9yZS1pdGVtLmhpZGRlbntkaXNwbGF5Om5vbmV9LnRvcGJhci1tb3JlLWl0ZW1bZGlzYWJsZWRde29wYWNpdHk6LjU7Y3Vyc29yOm5vdC1hbGxvd2VkfS50b3BiYXItbW9yZS1pdGVtW2Rpc2FibGVkXTpob3ZlcntiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSl9LnRvcGJhci1tb3JlLWRpdmlkZXJ7aGVpZ2h0OjFweDttYXJnaW46NHB4IDZweDtiYWNrZ3JvdW5kOnZhcigtLWJvcmRlci1kZWZhdWx0KTtvcGFjaXR5Oi42fS50ZXJtaW5hbC1jb250YWluZXJ7ZmxleDoxO2Rpc3BsYXk6bm9uZTtiYWNrZ3JvdW5kOnJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgdG9wIHJpZ2h0LHJnYmEoOTEsNTgsMzQsLjIpLHRyYW5zcGFyZW50IDM1JSkscmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCBib3R0b20gbGVmdCxyZ2JhKDE5NywxMDEsNjEsLjA4KSx0cmFuc3BhcmVudCA0MCUpLGxpbmVhci1ncmFkaWVudCgxODBkZWcsIzJhMjIxYywjMWYxYjE3LCMxYTE2MTMpO292ZXJmbG93OmhpZGRlbjttaW4taGVpZ2h0OjA7bWluLXdpZHRoOjA7bWFyZ2luOjAgNnB4IDZweDtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1tZCk7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDE0MCwxMTAsODUsLjM1KTtib3gtc2hhZG93Omluc2V0IDAgMXB4ICNmZmZmZmYwZiwwIDhweCAzMnB4ICMwMDAwMDA1OSwwIDJweCA4cHggIzAwMDM7cG9zaXRpb246cmVsYXRpdmU7dHJhbnNpdGlvbjpib3JkZXItY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1ub3JtYWwpLGJveC1zaGFkb3cgdmFyKC0tdHJhbnNpdGlvbi1ub3JtYWwpfS50ZXJtaW5hbC1jb250YWluZXIuYWN0aXZle2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpzdHJldGNofS50ZXJtaW5hbC1zY3JvbGwtd3JhcHtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO292ZXJmbG93LXk6YXV0bztvdmVyZmxvdy14OmhpZGRlbjtzY3JvbGxiYXItd2lkdGg6bm9uZTtwYWRkaW5nOjEycHg7Ym9yZGVyLXJhZGl1czowO2JveC1zaGFkb3c6bm9uZTstd2Via2l0LWZvbnQtc21vb3RoaW5nOmFudGlhbGlhc2VkOy1tb3otb3N4LWZvbnQtc21vb3RoaW5nOmdyYXlzY2FsZTt0ZXh0LXJlbmRlcmluZzpnZW9tZXRyaWNQcmVjaXNpb247Zm9udC12YXJpYW50LWxpZ2F0dXJlczpub25lO2ZvbnQtZmVhdHVyZS1zZXR0aW5nczoibGlnYSIgMCwiY2xpZyIgMCwiY2FsdCIgMCwiZGxpZyIgMDtmb250LWtlcm5pbmc6bm9uZTstLXRlcm0tZmc6ICNmNWVhZGM7LS10ZXJtLWJnOiB0cmFuc3BhcmVudDstLXRlcm0tY3Vyc29yOiAjZDY3YjUyOy0tdGVybS1mb250LWZhbWlseTogIkdlaXN0IE1vbm8iLCAiU0YgTW9ubyIsIG1vbm9zcGFjZTstLXRlcm0tZm9udC1zaXplOiAxM3B4Oy0tdGVybS1saW5lLWhlaWdodDogdmFyKC0tdGVybS1yb3ctaGVpZ2h0KTstLXRlcm0tcm93LWhlaWdodDogMjBweDstLXRlcm0tY29sb3ItMDogIzFmMWIxNzstLXRlcm0tY29sb3ItMTogI2QyNzc2NjstLXRlcm0tY29sb3ItMjogIzdmYTM2ZjstLXRlcm0tY29sb3ItMzogI2Q1YTM1YjstLXRlcm0tY29sb3ItNDogIzg3YTlkOTstLXRlcm0tY29sb3ItNTogI2M1OTVjNzstLXRlcm0tY29sb3ItNjogIzdmYjNiMTstLXRlcm0tY29sb3ItNzogI2Y1ZWFkYzstLXRlcm0tY29sb3ItODogIzYyNTM0NzstLXRlcm0tY29sb3ItOTogI2UzOWE4OTstLXRlcm0tY29sb3ItMTA6ICM5Y2MwOGE7LS10ZXJtLWNvbG9yLTExOiAjZWJiYjZlOy0tdGVybS1jb2xvci0xMjogI2E4YzFlYTstLXRlcm0tY29sb3ItMTM6ICNkYmIxZGM7LS10ZXJtLWNvbG9yLTE0OiAjOWFjYmNhOy0tdGVybS1jb2xvci0xNTogI2ZmZjdlZn0udGVybWluYWwtc2Nyb2xsLXdyYXA6Oi13ZWJraXQtc2Nyb2xsYmFye2Rpc3BsYXk6bm9uZX0udGVybWluYWwtc2Nyb2xsLXdyYXAgOjpzZWxlY3Rpb257YmFja2dyb3VuZDojZDY3YjUyNDd9LnRlcm1pbmFsLXNjcm9sbC13cmFwIC50ZXJtLWdyaWR7bWluLWhlaWdodDoxMDAlfS50ZXJtaW5hbC1zY3JvbGxiYXJ7cG9zaXRpb246YWJzb2x1dGU7dG9wOjRweDtyaWdodDoycHg7Ym90dG9tOjRweDt3aWR0aDoxNHB4O3otaW5kZXg6MTA7b3BhY2l0eTowO3RyYW5zaXRpb246b3BhY2l0eSAuM3MgZWFzZTtwb2ludGVyLWV2ZW50czpub25lfS50ZXJtaW5hbC1zY3JvbGxiYXIudmlzaWJsZXtvcGFjaXR5OjE7cG9pbnRlci1ldmVudHM6YXV0b30udGVybWluYWwtc2Nyb2xsYmFyLXRyYWNre3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3JpZ2h0OjA7Ym90dG9tOjA7d2lkdGg6MTRweDtib3JkZXItcmFkaXVzOjdweH0udGVybWluYWwtc2Nyb2xsYmFyLXRodW1ie3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjNweDt3aWR0aDo4cHg7bWluLWhlaWdodDoyOHB4O2JvcmRlci1yYWRpdXM6NHB4O2JhY2tncm91bmQ6I2I0OTY3ODU5O2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMTVzIGVhc2Usd2lkdGggLjE1cyBlYXNlLHJpZ2h0IC4xNXMgZWFzZX0udGVybWluYWwtc2Nyb2xsYmFyLXRodW1iOmhvdmVye2JhY2tncm91bmQ6I2M4YWE4YzhjO3dpZHRoOjEwcHg7cmlnaHQ6MnB4fS50ZXJtaW5hbC1zY3JvbGxiYXItdGh1bWIuZHJhZ2dpbmcsLnRlcm1pbmFsLXNjcm9sbGJhci10aHVtYjphY3RpdmV7YmFja2dyb3VuZDojZGNiOTk2YjM7d2lkdGg6MTBweDtyaWdodDoycHh9QG1lZGlhKHBvaW50ZXI6Y29hcnNlKXsudGVybWluYWwtc2Nyb2xsYmFyLC50ZXJtaW5hbC1zY3JvbGxiYXItdHJhY2t7d2lkdGg6MjBweH0udGVybWluYWwtc2Nyb2xsYmFyLXRodW1ie3dpZHRoOjEycHg7cmlnaHQ6NHB4O21pbi1oZWlnaHQ6MzZweH0udGVybWluYWwtc2Nyb2xsYmFyLXRodW1iOmhvdmVyLC50ZXJtaW5hbC1zY3JvbGxiYXItdGh1bWIuZHJhZ2dpbmd7d2lkdGg6MTRweDtyaWdodDozcHh9fS50ZXJtaW5hbC1jb250YWluZXI6Zm9jdXMtd2l0aGlue2JvcmRlci1jb2xvcjojYzU2NTNkODA7Ym94LXNoYWRvdzppbnNldCAwIDFweCAjZmZmZmZmMTQsMCA4cHggMzJweCAjMDAwNiwwIDAgMCAycHggI2M1NjUzZDI2fS50ZXJtaW5hbC1yZXNpemUtaGFuZGxle3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTozcHg7bGVmdDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlKTt3aWR0aDo0OHB4O2hlaWdodDo1cHg7YmFja2dyb3VuZDojZmZmZmZmMTQ7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtZnVsbCk7Y3Vyc29yOm5zLXJlc2l6ZTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Zm9udC1zaXplOjdweDtjb2xvcjojZmZmZmZmNDA7b3BhY2l0eTowO3RyYW5zaXRpb246YWxsIC4yNXMgdmFyKC0tZWFzZS1vdXQtZXhwbyk7ei1pbmRleDoxMDtwb2ludGVyLWV2ZW50czphdXRvfS50ZXJtaW5hbC1yZXNpemUtaGFuZGxlOmJlZm9yZXtjb250ZW50OiJcMjJlZVwyMmVlIjtsZXR0ZXItc3BhY2luZzo4cHg7Zm9udC1zaXplOjZweH0udGVybWluYWwtcmVzaXplLWhhbmRsZTpob3ZlcntvcGFjaXR5OjE7YmFja2dyb3VuZDojZmZmZmZmMjY7Y29sb3I6I2ZmZmZmZjgwO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSkgc2NhbGUoMS4xKX0udGVybWluYWwtY29udGFpbmVyOmhvdmVyIC50ZXJtaW5hbC1yZXNpemUtaGFuZGxle29wYWNpdHk6Ljd9LnRlcm1pbmFsLWNvbnRhaW5lci5pbnRlcmFjdGl2ZXtib3JkZXItY29sb3I6IzRmN2E1ODhjO2JveC1zaGFkb3c6aW5zZXQgMCAxcHggI2ZmZmZmZjBmLDAgMCAwIDJweCAjNGY3YTU4NDAsMCA4cHggMzJweCAjMDAwMDAwNTl9LnRlcm1pbmFsLWNvbnRhaW5lci5pbnRlcmFjdGl2ZTpiZWZvcmV7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7cmlnaHQ6MDtoZWlnaHQ6MnB4O2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDkwZGVnLHRyYW5zcGFyZW50LHZhcigtLXN1Y2Nlc3MpLHRyYW5zcGFyZW50KTthbmltYXRpb246dGVybWluYWwtYWN0aXZlLXB1bHNlIDJzIGVhc2UtaW4tb3V0IGluZmluaXRlfUBrZXlmcmFtZXMgdGVybWluYWwtYWN0aXZlLXB1bHNlezAlLHRve29wYWNpdHk6LjV9NTAle29wYWNpdHk6MX19LnRlcm1pbmFsLWNvbnRhaW5lcjphZnRlcntjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO2hlaWdodDo0OHB4O2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIHRvcCxyZ2JhKDI2LDIyLDE5LC41KSx0cmFuc3BhcmVudCk7cG9pbnRlci1ldmVudHM6bm9uZTtvcGFjaXR5OjA7dHJhbnNpdGlvbjpvcGFjaXR5IC4zcyBlYXNlO3otaW5kZXg6MTI7Ym9yZGVyLXJhZGl1czowIDAgdmFyKC0tcmFkaXVzLW1kKSB2YXIoLS1yYWRpdXMtbWQpfS50ZXJtaW5hbC1jb250YWluZXIuaGFzLWp1bXAtYnRuOmFmdGVye29wYWNpdHk6MX0udGVybWluYWwtc2NhbGUtYnRue21pbi13aWR0aDoyNHB4O2hlaWdodDoyNHB4O3BhZGRpbmc6MCA0cHg7Zm9udC1zaXplOi44NzVyZW07Zm9udC13ZWlnaHQ6NjAwfS50ZXJtaW5hbC1zY2FsZS1sYWJlbHtmb250LXNpemU6LjY4NzVyZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7bWluLXdpZHRoOjMycHg7dGV4dC1hbGlnbjpjZW50ZXI7cGFkZGluZzowIDJweH0udGVybWluYWwtc2NhbGUtb3ZlcmxheXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6OHB4O3JpZ2h0OjhweDtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MXB4O3BhZGRpbmc6MnB4O2JvcmRlci1yYWRpdXM6N3B4O2JvcmRlcjoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuMDYpO2JhY2tncm91bmQ6IzE4MTQxMTYxO2JhY2tkcm9wLWZpbHRlcjpibHVyKDhweCk7Ym94LXNoYWRvdzowIDZweCAxOHB4ICMwMDAwMDAyZTtvcGFjaXR5Oi43Mjt0cmFuc2l0aW9uOm9wYWNpdHkgLjE4cyBlYXNlLGJhY2tncm91bmQgLjE4cyBlYXNlLGJvcmRlci1jb2xvciAuMThzIGVhc2U7ei1pbmRleDoxMjtwb2ludGVyLWV2ZW50czphdXRvfS50ZXJtaW5hbC1jb250YWluZXI6aG92ZXIgLnRlcm1pbmFsLXNjYWxlLW92ZXJsYXksLnRlcm1pbmFsLXNjYWxlLW92ZXJsYXk6Zm9jdXMtd2l0aGlue29wYWNpdHk6MTtiYWNrZ3JvdW5kOiMxODE0MTE4Zjtib3JkZXItY29sb3I6I2ZmZmZmZjFhfS50ZXJtaW5hbC1zY2FsZS1vdmVybGF5LWJ0bnttaW4td2lkdGg6MjJweDtoZWlnaHQ6MjJweDtwYWRkaW5nOjAgM3B4O2NvbG9yOiNmNWVhZGNlMDtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2JvcmRlcjpub25lO2JvcmRlci1yYWRpdXM6NXB4O3RyYW5zaXRpb246YmFja2dyb3VuZCAuMThzIGVhc2UsY29sb3IgLjE4cyBlYXNlfS50ZXJtaW5hbC1zY2FsZS1vdmVybGF5LWJ0bjpob3ZlcntiYWNrZ3JvdW5kOiNkNjdiNTIyZTtjb2xvcjojZmZmN2VmZjV9LnRlcm1pbmFsLXNjYWxlLW92ZXJsYXktbGFiZWx7Zm9udC1zaXplOi42MjVyZW07Y29sb3I6I2Y1ZWFkY2E4O21pbi13aWR0aDozNHB4O3RleHQtYWxpZ246Y2VudGVyO3BhZGRpbmc6MCAzcHh9LnRlcm1pbmFsLXNjYWxlLW92ZXJsYXktZGl2aWRlcnt3aWR0aDoxcHg7aGVpZ2h0OjE0cHg7YmFja2dyb3VuZDojZjVlYWRjMzM7bWFyZ2luOjAgMnB4fS50ZXJtaW5hbC1qdW1wLWJvdHRvbXtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDoxNHB4O2JvdHRvbToxNnB4O2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7d2lkdGg6MzRweDtoZWlnaHQ6MzRweDtwYWRkaW5nOjA7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LC4wOCk7Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZDojMWMxNjEyYzc7Y29sb3I6I2ZmZjdlZmViO2JveC1zaGFkb3c6MCAxcHggMnB4ICMwMDAwMDA0MCwwIDhweCAyMnB4ICMwMDAwMDA1MixpbnNldCAwIDFweCAjZmZmZmZmMGY7YmFja2Ryb3AtZmlsdGVyOmJsdXIoMTJweCk7LXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6Ymx1cigxMnB4KTtjdXJzb3I6cG9pbnRlcjt6LWluZGV4OjEzO29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWSgxMHB4KSBzY2FsZSguODYpO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbjpvcGFjaXR5IC4yNnMgdmFyKC0tZWFzZS1vdXQtZXhwbyksdHJhbnNmb3JtIC4zMnMgdmFyKC0tZWFzZS1zcHJpbmcpLGJhY2tncm91bmQgLjE4cyBlYXNlLGJvcmRlci1jb2xvciAuMThzIGVhc2UsYm94LXNoYWRvdyAuMnMgZWFzZX0udGVybWluYWwtanVtcC1ib3R0b20udmlzaWJsZXtvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCkgc2NhbGUoMSk7cG9pbnRlci1ldmVudHM6YXV0b30udGVybWluYWwtanVtcC1ib3R0b20gc3Zne3RyYW5zaXRpb246dHJhbnNmb3JtIC4ycyB2YXIoLS1lYXNlLW91dC1leHBvKX0udGVybWluYWwtanVtcC1ib3R0b206aG92ZXJ7YmFja2dyb3VuZDojZDY3YjUyZWI7Ym9yZGVyLWNvbG9yOiNmZmZmZmYyZTtjb2xvcjojZmZmO2JveC1zaGFkb3c6MCAxcHggMnB4ICMwMDAwMDA0NywwIDEwcHggMjZweCAjYjg1YzM3NWMsaW5zZXQgMCAxcHggI2ZmZmZmZjJlfS50ZXJtaW5hbC1qdW1wLWJvdHRvbTpob3ZlciBzdmd7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMS41cHgpfS50ZXJtaW5hbC1qdW1wLWJvdHRvbTphY3RpdmV7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCkgc2NhbGUoLjkyKTt0cmFuc2l0aW9uLWR1cmF0aW9uOi4wOHN9LnRlcm1pbmFsLWp1bXAtYm90dG9tOmZvY3VzLXZpc2libGV7b3V0bGluZTpub25lO2JveC1zaGFkb3c6MCAxcHggMnB4ICMwMDAwMDA0NywwIDEwcHggMjZweCAjYjg1YzM3NWMsaW5zZXQgMCAxcHggI2ZmZmZmZjJlLDAgMCAwIDNweCAjZDY3YjUyNTl9LnRlcm1pbmFsLWNvbnRhaW5lci5pbnRlcmFjdGl2ZXtib3JkZXItY29sb3I6IzRmN2E1ODgwO2JveC1zaGFkb3c6aW5zZXQgMCAxcHggI2ZmZmZmZjBhLDAgMCAwIDJweCAjNGY3YTU4NDAsdmFyKC0tc2hhZG93LXNvZnQpfS5taW5pLWtleWJvYXJkLWZhYntwb3NpdGlvbjpmaXhlZDtib3R0b206NjBweDtyaWdodDoxNnB4O3dpZHRoOjQ0cHg7aGVpZ2h0OjQ0cHg7Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZDp2YXIoLS1hY2NlbnQpO2NvbG9yOiNmZmY7Ym9yZGVyOm5vbmU7Zm9udC1zaXplOjEuMTI1cmVtO2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6bm9uZTthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtib3gtc2hhZG93OjAgNHB4IDE2cHggI2I4NWMzNzU5O3otaW5kZXg6MTAwO3RyYW5zaXRpb246YWxsIC4ycyB2YXIoLS1lYXNlLXNwcmluZyl9Lm1pbmkta2V5Ym9hcmQtZmFiLnZpc2libGV7ZGlzcGxheTpmbGV4fS5taW5pLWtleWJvYXJkLWZhYjpob3Zlcnt0cmFuc2Zvcm06c2NhbGUoMS4xKTtib3gtc2hhZG93OjAgNnB4IDIwcHggI2I4NWMzNzczfS5taW5pLWtleWJvYXJkLWZhYjphY3RpdmV7dHJhbnNmb3JtOnNjYWxlKC45NSl9Lm1pbmkta2V5Ym9hcmR7cG9zaXRpb246Zml4ZWQ7Ym90dG9tOjYwcHg7cmlnaHQ6MTZweDtiYWNrZ3JvdW5kOiMyYTFmMTZmNTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMTIyLDkxLDY0LC41KTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1sZyk7Ym94LXNoYWRvdzowIDhweCAzMnB4ICMwMDA2O3otaW5kZXg6MTAwMDtiYWNrZHJvcC1maWx0ZXI6Ymx1cigxNnB4KTtvdmVyZmxvdzpoaWRkZW47bWluLXdpZHRoOjI2MHB4O2FuaW1hdGlvbjpta1NsaWRlVXAgLjJzIHZhcigtLWVhc2Utb3V0LWV4cG8pfS5taW5pLWtleWJvYXJkLmhpZGRlbntkaXNwbGF5Om5vbmV9QGtleWZyYW1lcyBta1NsaWRlVXB7MCV7b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDEycHgpIHNjYWxlKC45Nil9dG97b3BhY2l0eToxO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApIHNjYWxlKDEpfX1AbWVkaWEobWF4LXdpZHRoOjY0MHB4KXsubWluaS1rZXlib2FyZHtib3R0b206MjBweDtyaWdodDoxMHB4O2xlZnQ6MTBweDttaW4td2lkdGg6MH0ubWluaS1rZXlib2FyZC1mYWJ7Ym90dG9tOjIwcHg7cmlnaHQ6MTZweH19LmNoYXQtY29udGFpbmVye3Bvc2l0aW9uOnJlbGF0aXZlO2ZsZXg6MTtkaXNwbGF5Om5vbmU7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21pbi1oZWlnaHQ6MDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowIDIwcHggMTZweDtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcscmdiYSgyNTUsMjUyLDI0OCwuNSkgMCUsdHJhbnNwYXJlbnQgMTAwJSl9LmNoYXQtdW5yZWFkLWJ1YmJsZXtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDoxNHB4O2JvdHRvbToxMHB4O2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Z2FwOjZweDtoZWlnaHQ6MzJweDttaW4td2lkdGg6MzJweDtwYWRkaW5nOjAgMTBweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LC43Mik7Ym9yZGVyLXJhZGl1czo5OTlweDtiYWNrZ3JvdW5kOiNmZmZjZjhlYjtjb2xvcjp2YXIoLS1hY2NlbnQpO2ZvbnQtc2l6ZTouNzhyZW07Zm9udC13ZWlnaHQ6NjAwO2xpbmUtaGVpZ2h0OjE7bGV0dGVyLXNwYWNpbmc6LjAxZW07d2hpdGUtc3BhY2U6bm93cmFwO2JhY2tkcm9wLWZpbHRlcjpibHVyKDE0cHgpOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOmJsdXIoMTRweCk7Ym94LXNoYWRvdzowIDFweCAzcHggIzU5M2EyMDFmLDAgMTBweCAyNHB4ICNiODVjMzcyZSxpbnNldCAwIDFweCAjZmZmOTtjdXJzb3I6cG9pbnRlcjt6LWluZGV4OjEzO29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWSg4cHgpIHNjYWxlKC45KTtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zaXRpb246b3BhY2l0eSAuMjZzIHZhcigtLWVhc2Utb3V0LWV4cG8pLHRyYW5zZm9ybSAuMzJzIHZhcigtLWVhc2Utc3ByaW5nKSxiYWNrZ3JvdW5kIC4xOHMgZWFzZSxib3JkZXItY29sb3IgLjE4cyBlYXNlLGJveC1zaGFkb3cgLjJzIGVhc2UsY29sb3IgLjE4cyBlYXNlLHBhZGRpbmcgLjIycyB2YXIoLS1lYXNlLW91dC1leHBvKX0uY2hhdC11bnJlYWQtYnViYmxlLnZpc2libGV7b3BhY2l0eToxO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApIHNjYWxlKDEpO3BvaW50ZXItZXZlbnRzOmF1dG99LmNoYXQtdW5yZWFkLWJ1YmJsZS5oYXMtdW5yZWFke2JhY2tncm91bmQ6dmFyKC0tYWNjZW50KTtjb2xvcjojZmZmO2JvcmRlci1jb2xvcjojZmZmZmZmYzc7cGFkZGluZzowIDEycHggMCAxMHB4O2JveC1zaGFkb3c6MCAxcHggM3B4ICM1OTNhMjAyZSwwIDEycHggMjhweCAjYjg1YzM3NTIsaW5zZXQgMCAxcHggI2ZmZmZmZjQ3fS5jaGF0LXVucmVhZC1idWJibGUtaWNvbntkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2ZsZXgtc2hyaW5rOjA7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjJzIHZhcigtLWVhc2Utb3V0LWV4cG8pfS5jaGF0LXVucmVhZC1idWJibGU6aG92ZXJ7YmFja2dyb3VuZDojZmZmYWYyO2JveC1zaGFkb3c6MCAycHggNHB4ICM1OTNhMjAyOSwwIDE0cHggMzBweCAjYjg1YzM3M2QsaW5zZXQgMCAxcHggI2ZmZmZmZmIzfS5jaGF0LXVucmVhZC1idWJibGUuaGFzLXVucmVhZDpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLWFjY2VudC1ob3Zlcik7Ym94LXNoYWRvdzowIDJweCA1cHggIzU5M2EyMDM4LDAgMTRweCAzMnB4ICNiODVjMzc2YixpbnNldCAwIDFweCAjZmZmZmZmNTJ9LmNoYXQtdW5yZWFkLWJ1YmJsZTpob3ZlciAuY2hhdC11bnJlYWQtYnViYmxlLWljb257dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMS41cHgpfS5jaGF0LXVucmVhZC1idWJibGU6YWN0aXZle3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApIHNjYWxlKC45NCk7dHJhbnNpdGlvbi1kdXJhdGlvbjouMDhzfS5jaGF0LXVucmVhZC1idWJibGU6Zm9jdXMtdmlzaWJsZXtvdXRsaW5lOm5vbmU7Ym94LXNoYWRvdzowIDJweCA0cHggIzU5M2EyMDMzLDAgMTJweCAyOHB4ICNiODVjMzc1MixpbnNldCAwIDFweCAjZmZmZmZmNTIsMCAwIDAgM3B4ICNjNTY1M2Q1Mn0uY2hhdC11bnJlYWQtYnViYmxlLWNvdW50e2Rpc3BsYXk6bm9uZTthbGlnbi1pdGVtczpjZW50ZXI7Zm9udC1zaXplOi43OHJlbTtmb250LXdlaWdodDo2MDA7bGluZS1oZWlnaHQ6MTtsZXR0ZXItc3BhY2luZzouMDFlbTtwb2ludGVyLWV2ZW50czpub25lfS5jaGF0LXVucmVhZC1idWJibGUtY291bnQudmlzaWJsZXtkaXNwbGF5OmlubGluZS1mbGV4O2FuaW1hdGlvbjpjaGF0VW5yZWFkQ291bnRQb3AgLjIycyB2YXIoLS1lYXNlLW91dC1iYWNrLCBjdWJpYy1iZXppZXIoLjM0LCAxLjU2LCAuNjQsIDEpKX0uY2hhdC11bnJlYWQtYnViYmxlLWNvdW50OmFmdGVye2NvbnRlbnQ6IiBcNjc2MVw2NWIwXDZkODhcNjA2ZiI7bWFyZ2luLWxlZnQ6MnB4O2ZvbnQtd2VpZ2h0OjUwMDtvcGFjaXR5Oi45NX1Aa2V5ZnJhbWVzIGNoYXRVbnJlYWRDb3VudFBvcHswJXt0cmFuc2Zvcm06c2NhbGUoLjYpO29wYWNpdHk6MH10b3t0cmFuc2Zvcm06c2NhbGUoMSk7b3BhY2l0eToxfX0uY2hhdC11bnJlYWQtZGl2aWRlcntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMnB4O21hcmdpbjo2cHggNHB4IDJweDtwYWRkaW5nOjAgMnB4O2ZvbnQtc2l6ZTouNzJyZW07Zm9udC13ZWlnaHQ6NTAwO2NvbG9yOnZhcigtLWFjY2VudCk7bGV0dGVyLXNwYWNpbmc6LjA0ZW07dXNlci1zZWxlY3Q6bm9uZTtwb2ludGVyLWV2ZW50czpub25lO29wYWNpdHk6MDthbmltYXRpb246Y2hhdFVucmVhZERpdmlkZXJJbiAuMzJzIHZhcigtLWVhc2Utb3V0LWV4cG8pIGZvcndhcmRzfS5jaGF0LXVucmVhZC1kaXZpZGVyLWxpbmV7ZmxleDoxO2hlaWdodDoxcHg7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsI2M1NjUzZDBkLCNjNTY1M2Q1MiwjYzU2NTNkMGQpfS5jaGF0LXVucmVhZC1kaXZpZGVyLWxhYmVse2ZsZXgtc2hyaW5rOjA7cGFkZGluZzozcHggMTBweDtiYWNrZ3JvdW5kOiNmZmY4ZjBmMjtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMTk3LDEwMSw2MSwuMTgpO2JvcmRlci1yYWRpdXM6OTk5cHg7Ym94LXNoYWRvdzowIDFweCAzcHggI2I4NWMzNzFhO3doaXRlLXNwYWNlOm5vd3JhcH1Aa2V5ZnJhbWVzIGNoYXRVbnJlYWREaXZpZGVySW57MCV7b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0ycHgpfXRve29wYWNpdHk6MTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKX19LmNoYXQtY29udGFpbmVyLmFjdGl2ZXtkaXNwbGF5OmZsZXh9LmNoYXQtY29udGFpbmVyOmFmdGVye2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7aGVpZ2h0OjQ4cHg7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodG8gdG9wLHJnYmEoMjU1LDI1MiwyNDgsLjYpLHRyYW5zcGFyZW50KTtwb2ludGVyLWV2ZW50czpub25lO29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgLjNzIGVhc2U7ei1pbmRleDoxMn0uY2hhdC1jb250YWluZXIuaGFzLWp1bXAtYnRuOmFmdGVye29wYWNpdHk6MX0uY2hhdC1tZXNzYWdlc3tmbGV4OjE7b3ZlcmZsb3cteTphdXRvO292ZXJmbG93LXg6aGlkZGVuO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW4tcmV2ZXJzZTtnYXA6MTZweDtwYWRkaW5nOjIwcHggNHB4IDEycHg7bWluLWhlaWdodDowO21pbi13aWR0aDowO3Njcm9sbGJhci1ndXR0ZXI6c3RhYmxlO292ZXJzY3JvbGwtYmVoYXZpb3IteTpjb250YWluOy13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOnRvdWNoO3RvdWNoLWFjdGlvbjpwYW4teTtvdmVyZmxvdy1hbmNob3I6bm9uZTtvdmVyc2Nyb2xsLWJlaGF2aW9yOmNvbnRhaW59LmNoYXQtbG9hZC1tb3Jle2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3BhZGRpbmc6OHB4IDB9LmNoYXQtbG9hZC1tb3JlLWJ0bntiYWNrZ3JvdW5kOnZhcigtLWJnLWhvdmVyKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLW1kKTtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7Zm9udC1zaXplOi43NXJlbTtwYWRkaW5nOjZweCAxNnB4O2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246YWxsIC4ycyBlYXNlfS5jaGF0LWxvYWQtbW9yZS1idG46aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS1hY2NlbnQtbXV0ZWQpO2NvbG9yOnZhcigtLWFjY2VudCk7Ym9yZGVyLWNvbG9yOnZhcigtLWFjY2VudCl9QG1lZGlhKHBvaW50ZXI6Y29hcnNlKSwobWF4LXdpZHRoOjc2OHB4KXsuY2hhdC1sb2FkLW1vcmV7cGFkZGluZzoxMnB4IDB9LmNoYXQtbG9hZC1tb3JlLWJ0bnttaW4taGVpZ2h0OjM2cHg7cGFkZGluZzo4cHggMThweDtmb250LXNpemU6Ljc4cmVtfS5jaGF0LW1lc3NhZ2UuYW5pbWF0ZS1pbnthbmltYXRpb24tZHVyYXRpb246LjE4c30uY2hhdC1tZXNzYWdlLnVzZXIuYW5pbWF0ZS1pbnthbmltYXRpb24tZHVyYXRpb246LjE3c319QGtleWZyYW1lcyBtZXNzYWdlU2xpZGV7MCV7b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDhweCkgc2NhbGUoLjk4NSl9dG97b3BhY2l0eToxO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApIHNjYWxlKDEpfX1Aa2V5ZnJhbWVzIG1lc3NhZ2VTbGlkZVVzZXJ7MCV7b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGUoMTBweCkgdHJhbnNsYXRlWSg0cHgpIHNjYWxlKC45ODUpfXRve29wYWNpdHk6MTt0cmFuc2Zvcm06dHJhbnNsYXRlKDApIHRyYW5zbGF0ZVkoMCkgc2NhbGUoMSl9fUBrZXlmcmFtZXMgbWVzc2FnZUZsb2F0ezAlLHRve3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApfTUwJXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtM3B4KX19LmNoYXQtbWVzc2FnZXtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21heC13aWR0aDoxMDAlO21pbi13aWR0aDowO21hcmdpbjo0cHggMDt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGVhc2UsdHJhbnNmb3JtIC4ycyB2YXIoLS1lYXNlLW91dC1leHBvKTstLWNoYXQtY2FyZC1tYXgtd2lkdGg6IDcyMHB4fS5jaGF0LW1lc3NhZ2U6aG92ZXJ7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTFweCl9QG1lZGlhKGhvdmVyOm5vbmUpey5jaGF0LW1lc3NhZ2U6aG92ZXJ7dHJhbnNmb3JtOm5vbmV9LmNoYXQtbWVzc2FnZTpob3ZlciAuY2hhdC1tZXNzYWdlLWJ1YmJsZXtib3gtc2hhZG93OnZhcigtLXNoYWRvdy1zbSl9LmNoYXQtbWVzc2FnZS5hc3Npc3RhbnQ6aG92ZXIgLmNoYXQtbWVzc2FnZS1idWJibGV7Ym9yZGVyLWNvbG9yOnZhcigtLWJvcmRlci1zdWJ0bGUpO2JveC1zaGFkb3c6dmFyKC0tc2hhZG93LXNtKX19LmNoYXQtbWVzc2FnZS51c2Vye2FsaWduLXNlbGY6ZmxleC1lbmR9LmNoYXQtbWVzc2FnZS5hc3Npc3RhbnR7YWxpZ24tc2VsZjpmbGV4LXN0YXJ0O21heC13aWR0aDoxMDAlO3dpZHRoOjEwMCV9LmNoYXQtbWVzc2FnZS5zeXN0ZW0taW5mb3thbGlnbi1zZWxmOmNlbnRlcjttYXgtd2lkdGg6MTAwJTt3aWR0aDoxMDAlO21hcmdpbjoxMHB4IDA7YW5pbWF0aW9uOm1lc3NhZ2VGbG9hdCAzcyBlYXNlLWluLW91dCBpbmZpbml0ZX0uc3lzdGVtLWluZm8tY2FyZHtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxMzVkZWcsIzYzNjZmMTE0LCM2MzY2ZjEwYSk7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDk5LDEwMiwyNDEsLjIpO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLW1kKTtwYWRkaW5nOjEycHggMTZweDtmb250LXNpemU6LjgxMjVyZW07Ym94LXNoYWRvdzp2YXIoLS1zaGFkb3cteHMpfS5zeXN0ZW0taW5mby1oZWFkZXJ7Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOiM2MzY2ZjFmMjttYXJnaW4tYm90dG9tOjhweDtmb250LXNpemU6LjY4NzVyZW07dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2xldHRlci1zcGFjaW5nOi4wOGVtO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjZweH0uc3lzdGVtLWluZm8taGVhZGVyOmJlZm9yZXtjb250ZW50OiIiO3dpZHRoOjhweDtoZWlnaHQ6OHB4O2JhY2tncm91bmQ6IzYzNjZmMTk5O2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLWZ1bGwpfS5zeXN0ZW0taW5mby1jb250ZW50e2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDt3b3JkLXdyYXA6YnJlYWstd29yZDtsaW5lLWhlaWdodDp2YXIoLS1saW5lLWhlaWdodC1iYXNlKTttYXgtaGVpZ2h0OjIwMHB4O292ZXJmbG93LXk6YXV0b30uY2hhdC1tZXNzYWdlLmFuaW1hdGUtaW57YW5pbWF0aW9uOm1lc3NhZ2VTbGlkZSAuMjJzIHZhcigtLWVhc2Utb3V0LWV4cG8pO3dpbGwtY2hhbmdlOm9wYWNpdHksdHJhbnNmb3JtfS5jaGF0LW1lc3NhZ2UudXNlci5hbmltYXRlLWlue2FuaW1hdGlvbjptZXNzYWdlU2xpZGVVc2VyIC4ycyB2YXIoLS1lYXNlLW91dC1leHBvKX0uY2hhdC1tZXNzYWdlLWF2YXRhcntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2cHg7cGFkZGluZzowIDJweCA0cHh9LmNoYXQtbWVzc2FnZS1hdmF0YXIuYXNzaXN0YW50e2ZsZXgtZGlyZWN0aW9uOnJvd30uY2hhdC1tZXNzYWdlLWF2YXRhci51c2Vye2ZsZXgtZGlyZWN0aW9uOnJvdy1yZXZlcnNlfS5waXhlbC1hdmF0YXJ7d2lkdGg6MjRweDtoZWlnaHQ6MjRweDtmbGV4LXNocmluazowO2JvcmRlci1yYWRpdXM6NnB4O292ZXJmbG93OmhpZGRlbjtiYWNrZ3JvdW5kOnZhcigtLWJnLXRlcnRpYXJ5KTtib3gtc2hhZG93OjAgMXB4IDNweCAjMDAwMDAwMjZ9LnBpeGVsLWF2YXRhci1pbWFnZXtkaXNwbGF5OmJsb2NrO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7b2JqZWN0LWZpdDpjb3Zlcn0ucGl4ZWwtYXZhdGFyLXN2Z3tkaXNwbGF5OmJsb2NrO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7aW1hZ2UtcmVuZGVyaW5nOnBpeGVsYXRlZH0uYXZhdGFyLW5hbWV7Zm9udC1zaXplOi43cmVtO2ZvbnQtd2VpZ2h0OjYwMDtsZXR0ZXItc3BhY2luZzouMDNlbTtsaW5lLWhlaWdodDoxfS5jaGF0LW1lc3NhZ2UuYXNzaXN0YW50IC5hdmF0YXItbmFtZXtjb2xvcjp2YXIoLS1hY2NlbnQpfS5jaGF0LW1lc3NhZ2UudXNlciAuYXZhdGFyLW5hbWV7Y29sb3I6dmFyKC0tdGV4dC10ZXJ0aWFyeSl9LmNoYXQtbWVzc2FnZS1idWJibGV7cGFkZGluZzoxMnB4IDE2cHg7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtbWQpO2ZvbnQtc2l6ZTouODc1cmVtO2xpbmUtaGVpZ2h0OnZhcigtLWxpbmUtaGVpZ2h0LXJlbGF4ZWQpO3dvcmQtd3JhcDpicmVhay13b3JkO292ZXJmbG93LXdyYXA6YW55d2hlcmU7d29yZC1icmVhazpicmVhay13b3JkO3doaXRlLXNwYWNlOnByZS13cmFwO21heC13aWR0aDoxMDAlO21pbi13aWR0aDowO292ZXJmbG93LXg6aGlkZGVuO2JveC1zaGFkb3c6dmFyKC0tc2hhZG93LXNtKTt0cmFuc2l0aW9uOmJveC1zaGFkb3cgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KX0uY2hhdC1tZXNzYWdlOmhvdmVyIC5jaGF0LW1lc3NhZ2UtYnViYmxle2JveC1zaGFkb3c6dmFyKC0tc2hhZG93LW1kKX0uY2hhdC1tZXNzYWdlLnVzZXIgLmNoYXQtbWVzc2FnZS1idWJibGV7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLHZhcigtLWFjY2VudCkgMCUsdmFyKC0tYWNjZW50LWhvdmVyKSAxMDAlKTtjb2xvcjp2YXIoLS10ZXh0LWludmVyc2UpO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLWxnKSB2YXIoLS1yYWRpdXMtbGcpIHZhcigtLXJhZGl1cy1zbSkgdmFyKC0tcmFkaXVzLWxnKTtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2ZvbnQtc2l6ZTouODEyNXJlbTttYXgtd2lkdGg6MTAwJTttaW4td2lkdGg6MDtvdmVyZmxvdy13cmFwOmFueXdoZXJlO3dvcmQtYnJlYWs6YnJlYWstd29yZDtib3gtc2hhZG93OjAgNHB4IDE2cHggI2M1NjUzZDRkLGluc2V0IDAgMXB4ICNmZmZmZmYyNn0uY2hhdC1tZXNzYWdlLnVzZXJ7bWF4LXdpZHRoOjEwMCV9LnVzZXItYXR0YWNobWVudHN7ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDp3cmFwO2p1c3RpZnktY29udGVudDpmbGV4LWVuZDtnYXA6NnB4O21hcmdpbi1ib3R0b206NnB4fS51c2VyLWF0dGFjaG1lbnQtaW1hZ2V7ZGlzcGxheTpibG9jaztsaW5lLWhlaWdodDowfS51c2VyLWF0dGFjaG1lbnQtdGh1bWJ7ZGlzcGxheTpibG9jazttYXgtd2lkdGg6bWluKDEwMCUsMjQwcHgpO21heC1oZWlnaHQ6MjAwcHg7d2lkdGg6YXV0bztoZWlnaHQ6YXV0bztib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1zbSk7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LC4yNSk7b2JqZWN0LWZpdDpjb250YWluO2N1cnNvcjp6b29tLWluO2JveC1zaGFkb3c6MCAycHggOHB4ICMwMDAwMDAyNDt0cmFuc2l0aW9uOmJvcmRlci1jb2xvciAuMTZzIGVhc2UsYm94LXNoYWRvdyAuMTZzIGVhc2UsdHJhbnNmb3JtIC4xNnMgZWFzZX0udXNlci1hdHRhY2htZW50LXRodW1iOmhvdmVye2JvcmRlci1jb2xvcjp2YXIoLS1hY2NlbnQpO2JveC1zaGFkb3c6MCA0cHggMTRweCAjMDAwMzt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMXB4KX0udXNlci1hdHRhY2htZW50LWZpbGV7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjZweDttYXgtd2lkdGg6MTAwJTtwYWRkaW5nOjVweCAxMHB4O2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLW1kKTtiYWNrZ3JvdW5kOnZhcigtLWJnLXN1cmZhY2UpO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSk7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2ZvbnQtc2l6ZTouNzVyZW07Y3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjpib3JkZXItY29sb3IgLjE2cyBlYXNlLGNvbG9yIC4xNnMgZWFzZX0udXNlci1hdHRhY2htZW50LWZpbGU6aG92ZXJ7Ym9yZGVyLWNvbG9yOnZhcigtLWFjY2VudCk7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KX0udXNlci1hdHRhY2htZW50LWZpbGUtaWNvbntkaXNwbGF5OmlubGluZS1mbGV4O2ZsZXgtc2hyaW5rOjA7Y29sb3I6dmFyKC0tYWNjZW50KX0udXNlci1hdHRhY2htZW50LWZpbGUtbmFtZXtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXB9LnVzZXItYXR0YWNobWVudC10ZXh0e3doaXRlLXNwYWNlOnByZS13cmFwO3dvcmQtYnJlYWs6YnJlYWstd29yZDtvdmVyZmxvdy13cmFwOmFueXdoZXJlfS5jaGF0LW1lc3NhZ2UuYXNzaXN0YW50IC5jaGF0LW1lc3NhZ2UtYnViYmxle2JhY2tncm91bmQ6dmFyKC0tYmctc3VyZmFjZSk7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtwYWRkaW5nOjE0cHggMThweDttYXgtd2lkdGg6MTAwJTttaW4td2lkdGg6MDt3aGl0ZS1zcGFjZTpwcmUtd3JhcDt3b3JkLXdyYXA6YnJlYWstd29yZDtvdmVyZmxvdy13cmFwOmFueXdoZXJlO3dvcmQtYnJlYWs6YnJlYWstd29yZDtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpO2JveC1zaGFkb3c6dmFyKC0tc2hhZG93LXNtKX0uY2hhdC1tZXNzYWdlLmFzc2lzdGFudDpob3ZlciAuY2hhdC1tZXNzYWdlLWJ1YmJsZXtib3JkZXItY29sb3I6dmFyKC0tYWNjZW50LXNvZnQpO2JveC1zaGFkb3c6dmFyKC0tc2hhZG93LW1kKX0uY2hhdC1tZXNzYWdlLWNvbnRlbnR7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6MnB4O3dpZHRoOjEwMCU7bWF4LXdpZHRoOjEwMCU7bWluLXdpZHRoOjA7b3ZlcmZsb3cteDpoaWRkZW47Zm9udC1zaXplOi44NzVyZW07bGluZS1oZWlnaHQ6dmFyKC0tbGluZS1oZWlnaHQtcmVsYXhlZCk7d29yZC13cmFwOmJyZWFrLXdvcmQ7d29yZC1icmVhazpicmVhay13b3JkO292ZXJmbG93LXdyYXA6YW55d2hlcmU7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtib3gtc2l6aW5nOmJvcmRlci1ib3h9LmNoYXQtbWVzc2FnZS1jb250ZW50Pi50aGlua2luZy1pbmxpbmUsLmNoYXQtbWVzc2FnZS1jb250ZW50Pi5pbmxpbmUtdG9vbCwuY2hhdC1tZXNzYWdlLWNvbnRlbnQ+LnRvb2wtdXNlLWNhcmQsLmNoYXQtbWVzc2FnZS1jb250ZW50Pi50b29sLWdyb3Vwe21hcmdpbjozcHggMH0uY2hhdC1tZXNzYWdlLm11bHRpLWFnZW50e2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjZweDt3aWR0aDoxMDAlO21heC13aWR0aDoxMDAlO21pbi13aWR0aDowO2JveC1zaXppbmc6Ym9yZGVyLWJveH0uY2hhdC1tZXNzYWdlLnVzZXIubXVsdGktYWdlbnR7YWxpZ24tc2VsZjpmbGV4LXN0YXJ0O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnR9LmNoYXQtbWVzc2FnZS5tdWx0aS1hZ2VudCAuY2hhdC1tZXNzYWdlLXNlZ21lbnR7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1zZWxmOmZsZXgtc3RhcnQ7d2lkdGg6MTAwJTttYXgtd2lkdGg6MTAwJTttaW4td2lkdGg6MDtib3gtc2l6aW5nOmJvcmRlci1ib3h9LmNoYXQtbWVzc2FnZS5tdWx0aS1hZ2VudCAuY2hhdC1tZXNzYWdlLXNlZ21lbnQuc3ViYWdlbnR7cGFkZGluZy1sZWZ0OjEwcHg7bWFyZ2luLWxlZnQ6NnB4O2JvcmRlci1sZWZ0OjJweCBzb2xpZCB2YXIoLS1hZ2VudC1jb2xvciwgdmFyKC0tYm9yZGVyLXN1YnRsZSkpO2JvcmRlci1yYWRpdXM6MCA0cHggNHB4IDA7d2lkdGg6Y2FsYygxMDAlIC0gNnB4KTttYXgtd2lkdGg6Y2FsYygxMDAlIC0gNnB4KX0uY2hhdC1tZXNzYWdlLm11bHRpLWFnZW50IC5jaGF0LW1lc3NhZ2Utc2VnbWVudC5zdWJhZ2VudCAuY2hhdC1tZXNzYWdlLWNvbnRlbnR7b3BhY2l0eTouOTZ9LmNoYXQtbWVzc2FnZS5tdWx0aS1hZ2VudCAuY2hhdC1tZXNzYWdlLXNlZ21lbnQgLmNoYXQtbWVzc2FnZS1hdmF0YXJ7cGFkZGluZy1ib3R0b206NHB4fS5jaGF0LW1lc3NhZ2UtYXZhdGFyLnN1YmFnZW50IC5hdmF0YXItbmFtZXtjb2xvcjp2YXIoLS1hZ2VudC1jb2xvciwgdmFyKC0tYWNjZW50KSl9LnN1YmFnZW50LXJlcGx5e2JhY2tncm91bmQ6I2M1NjUzZDBmO2JhY2tncm91bmQ6Y29sb3ItbWl4KGluIHNyZ2IsdmFyKC0tYWdlbnQtY29sb3IsIHZhcigtLWFjY2VudCkpIDYlLHZhcigtLWJnLXN1cmZhY2UpKTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMTk3LDEwMSw2MSwuMik7Ym9yZGVyOjFweCBzb2xpZCBjb2xvci1taXgoaW4gc3JnYix2YXIoLS1hZ2VudC1jb2xvciwgdmFyKC0tYWNjZW50KSkgMjAlLHRyYW5zcGFyZW50KTtib3JkZXItcmFkaXVzOjEwcHg7cGFkZGluZzoxMHB4IDE0cHg7bWFyZ2luOjRweCAwO2xpbmUtaGVpZ2h0OjEuNTU7Zm9udC1zaXplOi44NzVyZW07Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTt3b3JkLWJyZWFrOmJyZWFrLXdvcmQ7b3ZlcmZsb3ctd3JhcDphbnl3aGVyZTtib3gtc2l6aW5nOmJvcmRlci1ib3g7d2lkdGg6MTAwJTttYXgtd2lkdGg6MTAwJTttaW4td2lkdGg6MDtvdmVyZmxvdy14OmhpZGRlbn0uc3ViYWdlbnQtcmVwbHk+OmZpcnN0LWNoaWxke21hcmdpbi10b3A6MH0uc3ViYWdlbnQtcmVwbHk+Omxhc3QtY2hpbGR7bWFyZ2luLWJvdHRvbTowfS5zdWJhZ2VudC1yZXBseS5lcnJvcntiYWNrZ3JvdW5kOiNlMjU3NGMxNDtiYWNrZ3JvdW5kOmNvbG9yLW1peChpbiBzcmdiLHZhcigtLWRhbmdlciwgI2UyNTc0YykgOCUsdmFyKC0tYmctc3VyZmFjZSkpO2JvcmRlci1jb2xvcjojZTI1NzRjNTk7Ym9yZGVyLWNvbG9yOmNvbG9yLW1peChpbiBzcmdiLHZhcigtLWRhbmdlciwgI2UyNTc0YykgMzUlLHRyYW5zcGFyZW50KX0uc3ViYWdlbnQtcmVwbHkucGVuZGluZ3tvcGFjaXR5Oi43O3BhZGRpbmc6MTRweCAxNnB4fS5zdWJhZ2VudC1yZXBseTpub3QoLmNvbGxhcHNpYmxlKXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6ZmxleC1zdGFydDtnYXA6NnB4fS5zdWJhZ2VudC1yZXBseSBwcmUsLnN1YmFnZW50LXJlcGx5IGNvZGV7Zm9udC1zaXplOi44MnJlbX0uc3ViYWdlbnQtcmVwbHkgcHJle2JhY2tncm91bmQ6IzAwMDAwMDBhO3BhZGRpbmc6MTBweCAxMnB4O2JvcmRlci1yYWRpdXM6NnB4O292ZXJmbG93LXg6aGlkZGVuO3doaXRlLXNwYWNlOnByZS13cmFwO3dvcmQtYnJlYWs6YnJlYWstd29yZDtvdmVyZmxvdy13cmFwOmFueXdoZXJlO21hcmdpbjo4cHggMDttYXgtd2lkdGg6MTAwJTttaW4td2lkdGg6MH0uc3ViYWdlbnQtcGFuZWx7bWFyZ2luOjhweCAwO2JvcmRlcjoxcHggc29saWQgY29sb3ItbWl4KGluIHNyZ2IsdmFyKC0tYWdlbnQtY29sb3IsIHZhcigtLWFjY2VudCkpIDI1JSx0cmFuc3BhcmVudCk7Ym9yZGVyLWxlZnQ6M3B4IHNvbGlkIGNvbG9yLW1peChpbiBzcmdiLHZhcigtLWFnZW50LWNvbG9yLCB2YXIoLS1hY2NlbnQpKSA1NSUsdHJhbnNwYXJlbnQpO2JvcmRlci1yYWRpdXM6MTBweDtvdmVyZmxvdzpoaWRkZW47YmFja2dyb3VuZDpjb2xvci1taXgoaW4gc3JnYix2YXIoLS1hZ2VudC1jb2xvciwgdmFyKC0tYWNjZW50KSkgMyUsdmFyKC0tYmctc3VyZmFjZSkpO2JveC1zaGFkb3c6MCAxcHggMnB4ICMwMDAwMDAwOH0uc3ViYWdlbnQtcGFuZWwtaGVhZGVye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjhweDtwYWRkaW5nOjhweCAxMnB4O2JhY2tncm91bmQ6Y29sb3ItbWl4KGluIHNyZ2IsdmFyKC0tYWdlbnQtY29sb3IsIHZhcigtLWFjY2VudCkpIDEwJSx2YXIoLS1iZy1zdXJmYWNlKSk7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgY29sb3ItbWl4KGluIHNyZ2IsdmFyKC0tYWdlbnQtY29sb3IsIHZhcigtLWFjY2VudCkpIDE2JSx0cmFuc3BhcmVudCk7Y3Vyc29yOnBvaW50ZXI7dXNlci1zZWxlY3Q6bm9uZTtmb250LXNpemU6Ljc4cmVtO2xpbmUtaGVpZ2h0OjEuMzU7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4xNXMgZWFzZX0uc3ViYWdlbnQtcGFuZWwtaGVhZGVyOmhvdmVye2JhY2tncm91bmQ6Y29sb3ItbWl4KGluIHNyZ2IsdmFyKC0tYWdlbnQtY29sb3IsIHZhcigtLWFjY2VudCkpIDE0JSx2YXIoLS1iZy1zdXJmYWNlKSl9LnN1YmFnZW50LXBhbmVsLWhlYWRlcjpmb2N1cy12aXNpYmxle291dGxpbmU6MnB4IHNvbGlkIGNvbG9yLW1peChpbiBzcmdiLHZhcigtLWFnZW50LWNvbG9yLCB2YXIoLS1hY2NlbnQpKSA1NSUsdHJhbnNwYXJlbnQpO291dGxpbmUtb2Zmc2V0Oi0ycHh9LnN1YmFnZW50LXBhbmVsLWF2YXRhcntmbGV4OjAgMCBhdXRvO3dpZHRoOjIycHg7aGVpZ2h0OjIycHg7Ym9yZGVyLXJhZGl1czo1cHg7b3ZlcmZsb3c6aGlkZGVuO2JhY2tncm91bmQ6Y29sb3ItbWl4KGluIHNyZ2IsdmFyKC0tYWdlbnQtY29sb3IsIHZhcigtLWFjY2VudCkpIDE4JSx0cmFuc3BhcmVudCk7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcn0uc3ViYWdlbnQtcGFuZWwtYXZhdGFyIHN2Zywuc3ViYWdlbnQtcGFuZWwtYXZhdGFyIGltZ3t3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2Rpc3BsYXk6YmxvY2t9LnN1YmFnZW50LXBhbmVsLWFycm93e2ZsZXg6MCAwIGF1dG87Y29sb3I6Y29sb3ItbWl4KGluIHNyZ2IsdmFyKC0tYWdlbnQtY29sb3IsIHZhcigtLWFjY2VudCkpIDY1JSx2YXIoLS10ZXh0LXByaW1hcnkpKTtvcGFjaXR5Oi44O2ZvbnQtd2VpZ2h0OjYwMH0uc3ViYWdlbnQtcGFuZWwtYXR0cmlidXRpb257ZmxleDoxIDEgYXV0bzttaW4td2lkdGg6MDtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcH0uc3ViYWdlbnQtcGFuZWwtbmFtZXtjb2xvcjpjb2xvci1taXgoaW4gc3JnYix2YXIoLS1hZ2VudC1jb2xvciwgdmFyKC0tYWNjZW50KSkgODglLHZhcigtLXRleHQtcHJpbWFyeSkpO2ZvbnQtd2VpZ2h0OjYwMH0uc3ViYWdlbnQtcGFuZWwtdGFne2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbjowIDZweDtwYWRkaW5nOjAgNnB4O2ZvbnQtc2l6ZTouNjJyZW07Zm9udC13ZWlnaHQ6NTAwO2xldHRlci1zcGFjaW5nOi4wNGVtO2NvbG9yOnZhcigtLWFnZW50LWNvbG9yLCB2YXIoLS1hY2NlbnQpKTtiYWNrZ3JvdW5kOmNvbG9yLW1peChpbiBzcmdiLHZhcigtLWFnZW50LWNvbG9yLCB2YXIoLS1hY2NlbnQpKSAxMiUsdHJhbnNwYXJlbnQpO2JvcmRlcjoxcHggc29saWQgY29sb3ItbWl4KGluIHNyZ2IsdmFyKC0tYWdlbnQtY29sb3IsIHZhcigtLWFjY2VudCkpIDMwJSx0cmFuc3BhcmVudCk7Ym9yZGVyLXJhZGl1czo0cHg7dmVydGljYWwtYWxpZ246MXB4O2xpbmUtaGVpZ2h0OjEuNDt3aGl0ZS1zcGFjZTpub3dyYXB9LnN1YmFnZW50LXBhbmVsLXRhc2stZGVzY3tjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtmb250LXdlaWdodDo0MDB9LnN1YmFnZW50LXBhbmVsLXRvZ2dsZXtmbGV4OjAgMCBhdXRvO2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo0cHg7cGFkZGluZzozcHggMTBweDtmb250LXNpemU6LjdyZW07Zm9udC13ZWlnaHQ6NTAwO2xpbmUtaGVpZ2h0OjEuMztjb2xvcjpjb2xvci1taXgoaW4gc3JnYix2YXIoLS1hZ2VudC1jb2xvciwgdmFyKC0tYWNjZW50KSkgNzglLHZhcigtLXRleHQtcHJpbWFyeSkpO2JhY2tncm91bmQ6Y29sb3ItbWl4KGluIHNyZ2IsdmFyKC0tYWdlbnQtY29sb3IsIHZhcigtLWFjY2VudCkpIDglLHZhcigtLWJnLXN1cmZhY2UpKTtib3JkZXI6MXB4IHNvbGlkIGNvbG9yLW1peChpbiBzcmdiLHZhcigtLWFnZW50LWNvbG9yLCB2YXIoLS1hY2NlbnQpKSAzMCUsdHJhbnNwYXJlbnQpO2JvcmRlci1yYWRpdXM6OTk5cHg7Y3Vyc29yOnBvaW50ZXI7dXNlci1zZWxlY3Q6bm9uZTt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjE1cyBlYXNlLGJvcmRlci1jb2xvciAuMTVzIGVhc2UsdHJhbnNmb3JtIC4xcyBlYXNlfS5zdWJhZ2VudC1wYW5lbC10b2dnbGU6aG92ZXJ7YmFja2dyb3VuZDpjb2xvci1taXgoaW4gc3JnYix2YXIoLS1hZ2VudC1jb2xvciwgdmFyKC0tYWNjZW50KSkgMTglLHZhcigtLWJnLXN1cmZhY2UpKTtib3JkZXItY29sb3I6Y29sb3ItbWl4KGluIHNyZ2IsdmFyKC0tYWdlbnQtY29sb3IsIHZhcigtLWFjY2VudCkpIDQ1JSx0cmFuc3BhcmVudCl9LnN1YmFnZW50LXBhbmVsLXRvZ2dsZTphY3RpdmV7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMXB4KX0uc3ViYWdlbnQtcGFuZWwtdG9nZ2xlLWljb257dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjJzIHZhcigtLWVhc2Utb3V0LWV4cG8sIGN1YmljLWJlemllciguMTYsIDEsIC4zLCAxKSl9LnN1YmFnZW50LXBhbmVsW2RhdGEtZXhwYW5kZWQ9dHJ1ZV0gLnN1YmFnZW50LXBhbmVsLXRvZ2dsZS1pY29ue3RyYW5zZm9ybTpyb3RhdGUoMTgwZGVnKX0uc3ViYWdlbnQtcGFuZWwtYm9keXtwYWRkaW5nOjEwcHggMTRweDtvdmVyZmxvdy15OmF1dG87b3ZlcmZsb3cteDpoaWRkZW47bWluLXdpZHRoOjA7bWF4LXdpZHRoOjEwMCU7dHJhbnNpdGlvbjptYXgtaGVpZ2h0IC4yMnMgdmFyKC0tZWFzZS1vdXQtZXhwbywgY3ViaWMtYmV6aWVyKC4xNiwgMSwgLjMsIDEpKTtzY3JvbGxiYXItZ3V0dGVyOnN0YWJsZTtvdmVyc2Nyb2xsLWJlaGF2aW9yOmNvbnRhaW47LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2h9LnN1YmFnZW50LXBhbmVsW2RhdGEtZXhwYW5kZWQ9ZmFsc2VdIC5zdWJhZ2VudC1wYW5lbC1ib2R5e21heC1oZWlnaHQ6MjJlbX0uc3ViYWdlbnQtcGFuZWxbZGF0YS1leHBhbmRlZD10cnVlXSAuc3ViYWdlbnQtcGFuZWwtYm9keXttYXgtaGVpZ2h0Ojcwdmh9LnN1YmFnZW50LXBhbmVsLWJvZHk+OmZpcnN0LWNoaWxke21hcmdpbi10b3A6MH0uc3ViYWdlbnQtcGFuZWwtYm9keT46bGFzdC1jaGlsZHttYXJnaW4tYm90dG9tOjB9LnN1YmFnZW50LXBhbmVsLWJvZHkgLnRvb2wtdXNlLWNhcmQsLnN1YmFnZW50LXBhbmVsLWJvZHkgLnRvb2wtZ3JvdXAsLnN1YmFnZW50LXBhbmVsLWJvZHkgLmlubGluZS10b29sLC5zdWJhZ2VudC1wYW5lbC1ib2R5IC5pbmxpbmUtdGVybWluYWwsLnN1YmFnZW50LXBhbmVsLWJvZHkgLmlubGluZS1kaWZme21hcmdpbjo0cHggMH0uc3ViYWdlbnQtcGFuZWwtYm9keSAubWFya2Rvd24tY29udGVudHtmb250LXNpemU6Ljg3NXJlbX0uc3ViYWdlbnQtcGFuZWwtYm9keTo6LXdlYmtpdC1zY3JvbGxiYXJ7d2lkdGg6N3B4O2hlaWdodDo3cHh9LnN1YmFnZW50LXBhbmVsLWJvZHk6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1ie2JhY2tncm91bmQ6Y29sb3ItbWl4KGluIHNyZ2IsdmFyKC0tYWdlbnQtY29sb3IsIHZhcigtLWFjY2VudCkpIDMyJSx0cmFuc3BhcmVudCk7Ym9yZGVyLXJhZGl1czo0cHh9LnN1YmFnZW50LXBhbmVsLWJvZHk6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVye2JhY2tncm91bmQ6Y29sb3ItbWl4KGluIHNyZ2IsdmFyKC0tYWdlbnQtY29sb3IsIHZhcigtLWFjY2VudCkpIDUwJSx0cmFuc3BhcmVudCl9LnN1YmFnZW50LXBhbmVsLWJvZHk6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNre2JhY2tncm91bmQ6dHJhbnNwYXJlbnR9LnN1YmFnZW50LXBhbmVsLWZvb3RlcntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMHB4O3BhZGRpbmc6NnB4IDEycHg7YmFja2dyb3VuZDpjb2xvci1taXgoaW4gc3JnYix2YXIoLS1hZ2VudC1jb2xvciwgdmFyKC0tYWNjZW50KSkgNiUsdmFyKC0tYmctc3VyZmFjZSkpO2JvcmRlci10b3A6MXB4IHNvbGlkIGNvbG9yLW1peChpbiBzcmdiLHZhcigtLWFnZW50LWNvbG9yLCB2YXIoLS1hY2NlbnQpKSAxNCUsdHJhbnNwYXJlbnQpO2ZvbnQtc2l6ZTouN3JlbX0uc3ViYWdlbnQtcGFuZWwtZm9vdGVyLWhpbnR7ZmxleDoxIDEgYXV0bzttaW4td2lkdGg6MDtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtvcGFjaXR5Oi43O2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7bGV0dGVyLXNwYWNpbmc6LjA0ZW07b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwfS5zdWJhZ2VudC1yZXBseS5jb2xsYXBzaWJsZXtwYWRkaW5nOjA7b3ZlcmZsb3c6aGlkZGVufS5zdWJhZ2VudC1yZXBseS5maW5hbHttYXJnaW46NnB4IDAgMDtwYWRkaW5nOjEwcHggMTJweDtib3JkZXItcmFkaXVzOjhweDtib3JkZXItbGVmdDozcHggc29saWQgY29sb3ItbWl4KGluIHNyZ2IsdmFyKC0tYWdlbnQtY29sb3IsIHZhcigtLWFjY2VudCkpIDYwJSx0cmFuc3BhcmVudCk7YmFja2dyb3VuZDpjb2xvci1taXgoaW4gc3JnYix2YXIoLS1hZ2VudC1jb2xvciwgdmFyKC0tYWNjZW50KSkgNSUsdmFyKC0tYmctc3VyZmFjZSkpfS5zdWJhZ2VudC1yZXBseS5maW5hbC5lcnJvcntib3JkZXItbGVmdC1jb2xvcjp2YXIoLS1kYW5nZXIsICNlMjU3NGMpO2JhY2tncm91bmQ6Y29sb3ItbWl4KGluIHNyZ2IsdmFyKC0tZGFuZ2VyLCAjZTI1NzRjKSA1JSx2YXIoLS1iZy1zdXJmYWNlKSl9LnN1YmFnZW50LXJlcGx5LW1hcmtlcntkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NHB4O21hcmdpbi1ib3R0b206NHB4O2ZvbnQtc2l6ZTouNjhyZW07Zm9udC13ZWlnaHQ6NjAwO2xldHRlci1zcGFjaW5nOi4wNGVtO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtjb2xvcjpjb2xvci1taXgoaW4gc3JnYix2YXIoLS1hZ2VudC1jb2xvciwgdmFyKC0tYWNjZW50KSkgNzglLHZhcigtLXRleHQtcHJpbWFyeSkpfS5zdWJhZ2VudC1yZXBseS1tYXJrZXIuZXJyb3J7Y29sb3I6dmFyKC0tZGFuZ2VyLCAjZTI1NzRjKX0uc3ViYWdlbnQtcmVwbHktbWFya2VyLnBlbmRpbmd7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7dGV4dC10cmFuc2Zvcm06bm9uZTtsZXR0ZXItc3BhY2luZzowO2ZvbnQtd2VpZ2h0OjUwMH0uc3ViYWdlbnQtcmVwbHktbWFya2VyLWljb257Zm9udC13ZWlnaHQ6NzAwfS5zdWJhZ2VudC1yZXBseS5maW5hbCAuc3ViYWdlbnQtcmVwbHktY29udGVudD46Zmlyc3QtY2hpbGR7bWFyZ2luLXRvcDowfS5zdWJhZ2VudC1yZXBseS5maW5hbCAuc3ViYWdlbnQtcmVwbHktY29udGVudD46bGFzdC1jaGlsZHttYXJnaW4tYm90dG9tOjB9LmVtcHR5LW1lc3NhZ2UgLmVtcHR5LW1lc3NhZ2UtaGludHtjb2xvcjp2YXIoLS10ZXh0LXRlcnRpYXJ5KTtmb250LXN0eWxlOml0YWxpYztmb250LXNpemU6LjgxMjVyZW07b3BhY2l0eTouN30udW5rbm93bi1ibG9ja3ttYXJnaW46NHB4IDA7Ym9yZGVyOjFweCBkYXNoZWQgdmFyKC0tYm9yZGVyLXN1YnRsZSk7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtbWQpO2JhY2tncm91bmQ6Y29sb3ItbWl4KGluIHNyZ2IsdmFyKC0tdGV4dC1tdXRlZCkgNiUsdHJhbnNwYXJlbnQpO2ZvbnQtc2l6ZTouNzVyZW07Y3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIHZhcigtLXRyYW5zaXRpb24tZmFzdCl9LnVua25vd24tYmxvY2s6aG92ZXJ7YmFja2dyb3VuZDpjb2xvci1taXgoaW4gc3JnYix2YXIoLS10ZXh0LW11dGVkKSAxMCUsdHJhbnNwYXJlbnQpfS51bmtub3duLWJsb2NrLWhlYWRlcntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo4cHg7cGFkZGluZzo2cHggMTBweDtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSl9LnVua25vd24tYmxvY2staWNvbntkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3dpZHRoOjE4cHg7aGVpZ2h0OjE4cHg7Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZDp2YXIoLS10ZXh0LW11dGVkKTtjb2xvcjp2YXIoLS1iZy1zdXJmYWNlKTtmb250LXNpemU6LjdyZW07Zm9udC13ZWlnaHQ6NjAwfS51bmtub3duLWJsb2NrLWxhYmVse2ZsZXg6MTtmb250LXdlaWdodDo1MDB9LnVua25vd24tYmxvY2stdG9nZ2xle2NvbG9yOnZhcigtLXRleHQtdGVydGlhcnkpO2ZvbnQtc2l6ZTouN3JlbTt0cmFuc2l0aW9uOnRyYW5zZm9ybSB2YXIoLS10cmFuc2l0aW9uLWZhc3QpfS51bmtub3duLWJsb2NrLmNvbGxhcHNlZCAudW5rbm93bi1ibG9jay10b2dnbGV7dHJhbnNmb3JtOnJvdGF0ZSgtOTBkZWcpfS51bmtub3duLWJsb2NrLWJvZHl7bWFyZ2luOjA7cGFkZGluZzo4cHggMTBweCAxMHB4O2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7Zm9udC1zaXplOi43cmVtO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtvdmVyZmxvdy13cmFwOmFueXdoZXJlO3dvcmQtYnJlYWs6YnJlYWstYWxsO21heC1oZWlnaHQ6MjQwcHg7bWF4LXdpZHRoOjEwMCU7bWluLXdpZHRoOjA7b3ZlcmZsb3cteDpoaWRkZW47b3ZlcmZsb3cteTphdXRvO2JvcmRlci10b3A6MXB4IGRhc2hlZCB2YXIoLS1ib3JkZXItc3VidGxlKTtib3gtc2l6aW5nOmJvcmRlci1ib3h9LnVua25vd24tYmxvY2suY29sbGFwc2VkIC51bmtub3duLWJsb2NrLWJvZHl7ZGlzcGxheTpub25lfS50b29sLXVzZS1jYXJkW2RhdGEtdHJ1bmNhdGVkPXRydWVdIC50b29sLXVzZS1uYW1lOmFmdGVyLC5pbmxpbmUtdG9vbFtkYXRhLXRydW5jYXRlZD10cnVlXSAuaW5saW5lLXRvb2wtdGl0bGU6YWZ0ZXJ7Y29udGVudDoiXDVkZjJcNjIyYVw2NWFkIjtkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW4tbGVmdDo2cHg7cGFkZGluZzoxcHggNnB4O2ZvbnQtc2l6ZTouNnJlbTtmb250LXdlaWdodDo1MDA7Y29sb3I6dmFyKC0tdGV4dC1pbnZlcnNlLCAjZmZmKTtiYWNrZ3JvdW5kOnZhcigtLXRleHQtdGVydGlhcnkpO2JvcmRlci1yYWRpdXM6OTk5cHg7bGV0dGVyLXNwYWNpbmc6LjAyZW07dmVydGljYWwtYWxpZ246MXB4O29wYWNpdHk6Ljg1fS5jaGF0LW1lc3NhZ2UudGhpbmtpbmd7YWxpZ24tc2VsZjpmbGV4LXN0YXJ0O21heC13aWR0aDoxMDAlO21hcmdpbjo0cHggMH0uY2hhdC1tZXNzYWdlLnByb21wdHthbGlnbi1zZWxmOmNlbnRlcjttYXgtd2lkdGg6MTAwJTttYXJnaW46NHB4IDB9LnByb21wdC1jYXJke2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjZweDtwYWRkaW5nOjRweCA4cHg7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtc20pO2N1cnNvcjpkZWZhdWx0O2ZvbnQtc2l6ZTouNzVyZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCl9LnByb21wdC1pY29ue2ZvbnQtc2l6ZTouODc1cmVtfS5wcm9tcHQtY29udGVudHtmb250LXNpemU6Ljc1cmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2ZvbnQtc3R5bGU6aXRhbGljfS5wcm9tcHQtdGV4dHtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2NvbG9yOiNjNTY1M2RjYztmb250LXdlaWdodDo1MDB9LnR5cGluZy1pbmRpY2F0b3J7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NXB4O3BhZGRpbmc6NnB4IDB9LnR5cGluZy1pbmRpY2F0b3Igc3BhbntkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDo3cHg7aGVpZ2h0OjdweDtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOnZhcigtLWFjY2VudC1zb2Z0KTthbmltYXRpb246dHlwaW5nQm91bmNlIDEuMnMgZWFzZS1pbi1vdXQgaW5maW5pdGV9LnR5cGluZy1pbmRpY2F0b3Igc3BhbjpudGgtY2hpbGQoMil7YW5pbWF0aW9uLWRlbGF5Oi4xNXN9LnR5cGluZy1pbmRpY2F0b3Igc3BhbjpudGgtY2hpbGQoMyl7YW5pbWF0aW9uLWRlbGF5Oi4zc31Aa2V5ZnJhbWVzIHR5cGluZ0JvdW5jZXswJSw2MCUsdG97b3BhY2l0eTouMzU7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCl9MzAle29wYWNpdHk6MTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNXB4KX19LnRvb2wtdXNlLWNhcmR7bWFyZ2luOjRweCAwO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSk7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtc20pO292ZXJmbG93OmhpZGRlbjt3aWR0aDoxMDAlO21heC13aWR0aDp2YXIoLS1jaGF0LWNhcmQtbWF4LXdpZHRoLCA3MjBweCk7bWluLXdpZHRoOjA7Ym94LXNpemluZzpib3JkZXItYm94O2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZywjZmZmYmY1ZTAsI2ZmZjZlYWI4KTtib3gtc2hhZG93OjAgMXB4IDJweCAjNTkzYTIwMGE7dHJhbnNpdGlvbjpib3JkZXItY29sb3IgLjIycyBlYXNlLGJveC1zaGFkb3cgLjIycyBlYXNlLHRyYW5zZm9ybSAuMjJzIGVhc2V9LnRvb2wtdXNlLWNhcmQ6aG92ZXJ7Ym9yZGVyLWNvbG9yOiM0ZjdhNTg0ZDtib3gtc2hhZG93OjAgM3B4IDEycHggIzRmN2E1ODE0fS50b29sLXVzZS1jYXJkLmxvYWRpbmd7Ym9yZGVyLWNvbG9yOiNhOTZhMmY0ZDtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcsI2ZmZjRlMmUwLCNmZmYxZGFiOCl9LnRvb2wtdXNlLWNhcmQuc3VjY2Vzc3tib3JkZXItY29sb3I6IzRmN2E1ODUyfS50b29sLXVzZS1jYXJkLmVycm9ye2JvcmRlci1jb2xvcjojYjI0ZjQ1NTI7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCNmY2YwZWVlMCwjZmNlYmU5YjgpfS50b29sLXVzZS1oZWFkZXJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTBweDtwYWRkaW5nOjlweCAxNHB4O2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y3Vyc29yOnBvaW50ZXI7Zm9udC1zaXplOi44MTI1cmVtO3VzZXItc2VsZWN0Om5vbmU7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDt0b3VjaC1hY3Rpb246bWFuaXB1bGF0aW9uO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMThzIGVhc2U7bWluLWhlaWdodDozOHB4O2ZsZXgtd3JhcDpub3dyYXB9LnRvb2wtdXNlLWhlYWRlcjpob3ZlcntiYWNrZ3JvdW5kOiNjNTY1M2QwYX0udG9vbC11c2UtaGVhZGVyOmFjdGl2ZXtiYWNrZ3JvdW5kOiNjNTY1M2QxMn0udG9vbC11c2UtY2FyZC5sb2FkaW5nIC50b29sLXVzZS1oZWFkZXI6aG92ZXJ7YmFja2dyb3VuZDojYTk2YTJmMGZ9LnRvb2wtdXNlLWNhcmQuc3VjY2VzcyAudG9vbC11c2UtaGVhZGVyOmhvdmVye2JhY2tncm91bmQ6IzRmN2E1ODBmfS50b29sLXVzZS1jYXJkLmVycm9yIC50b29sLXVzZS1oZWFkZXI6aG92ZXJ7YmFja2dyb3VuZDojYjI0ZjQ1MGZ9LnRvb2wtdXNlLWljb257Zm9udC1zaXplOi42ODc1cmVtO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7Zm9udC13ZWlnaHQ6NzAwO2ZsZXgtc2hyaW5rOjA7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjttaW4td2lkdGg6MjJweDtoZWlnaHQ6MjJweDtib3JkZXItcmFkaXVzOjZweDtiYWNrZ3JvdW5kOnZhcigtLXN1Y2Nlc3MtbXV0ZWQpO2NvbG9yOnZhcigtLXN1Y2Nlc3MpO2xldHRlci1zcGFjaW5nOi0uMDJlbX0udG9vbC11c2UtY2FyZC5sb2FkaW5nIC50b29sLXVzZS1pY29ue2JhY2tncm91bmQ6dmFyKC0td2FybmluZy1tdXRlZCk7Y29sb3I6dmFyKC0td2FybmluZyl9LnRvb2wtdXNlLWNhcmQuZXJyb3IgLnRvb2wtdXNlLWljb257YmFja2dyb3VuZDp2YXIoLS1kYW5nZXItbXV0ZWQpO2NvbG9yOnZhcigtLWRhbmdlcil9LnRvb2wtdXNlLXNwaW5uZXJ7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6MTRweDtoZWlnaHQ6MTRweDtib3JkZXI6MnB4IHNvbGlkIHZhcigtLXdhcm5pbmctbXV0ZWQpO2JvcmRlci10b3AtY29sb3I6dmFyKC0td2FybmluZyk7Ym9yZGVyLXJhZGl1czo1MCU7YW5pbWF0aW9uOnRvb2wtc3BpbiAuOHMgbGluZWFyIGluZmluaXRlfUBrZXlmcmFtZXMgdG9vbC1zcGlue3Rve3RyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKX19LnRvb2wtdXNlLW5hbWV7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1zYW5zKTtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOi44MTI1cmVtO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7ZmxleDowIDEgYXV0bzttaW4td2lkdGg6MDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXA7bGV0dGVyLXNwYWNpbmc6LS4wMDVlbX0udG9vbC11c2UtZmlsZXtmb250LXNpemU6Ljc1cmVtO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7Y29sb3I6dmFyKC0tdGV4dC10ZXJ0aWFyeSk7bWF4LXdpZHRoOjMyMHB4O292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcDtmbGV4OjAgMSBhdXRvO21pbi13aWR0aDowfS50b29sLXVzZS1zdW1tYXJ5e2ZvbnQtc2l6ZTouNzVyZW07Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2ZsZXg6MCAxIGF1dG87bWluLXdpZHRoOjA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwO21hcmdpbi1sZWZ0OjJweH0udG9vbC11c2UtdG9nZ2xle2ZvbnQtc2l6ZTouNzVyZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjNzIHZhcigtLWVhc2Utc3ByaW5nKSxjb2xvciAuMThzIGVhc2U7ZmxleC1zaHJpbms6MDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO29wYWNpdHk6LjZ9LnRvb2wtdXNlLWNhcmQ6aG92ZXIgLnRvb2wtdXNlLXRvZ2dsZXtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7b3BhY2l0eToxfS50b29sLXVzZS1jYXJkLmNvbGxhcHNlZCAudG9vbC11c2UtdG9nZ2xle3RyYW5zZm9ybTpyb3RhdGUoLTkwZGVnKX0udG9vbC11c2UtYm9keXtwYWRkaW5nOjEycHggMTRweDtiYWNrZ3JvdW5kOiNmZmZkZjhhNjtib3JkZXItdG9wOjFweCBzb2xpZCByZ2JhKDEyNSw5MSw1NywuMDgpO21heC1oZWlnaHQ6NjAwcHg7b3ZlcmZsb3c6aGlkZGVuO3RyYW5zaXRpb246bWF4LWhlaWdodCAuMjRzIHZhcigtLWVhc2Utb3V0LWV4cG8pLHBhZGRpbmcgLjI0cyB2YXIoLS1lYXNlLW91dC1leHBvKSxvcGFjaXR5IC4xOHMgZWFzZSx0cmFuc2Zvcm0gLjI0cyB2YXIoLS1lYXNlLW91dC1leHBvKTtvcGFjaXR5OjE7dHJhbnNmb3JtLW9yaWdpbjp0b3B9LnRvb2wtdXNlLWNhcmQuY29sbGFwc2VkIC50b29sLXVzZS1ib2R5e21heC1oZWlnaHQ6MDtwYWRkaW5nLXRvcDowO3BhZGRpbmctYm90dG9tOjA7b3BhY2l0eTowO3RyYW5zZm9ybTpzY2FsZVkoLjk1KX0udG9vbC11c2UtY29udGVudHttYXJnaW46MDtmb250LXNpemU6Ljc1cmVtO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO3doaXRlLXNwYWNlOnByZS13cmFwO292ZXJmbG93LXdyYXA6YW55d2hlcmU7d29yZC1icmVhazpicmVhay13b3JkO21heC1oZWlnaHQ6NDAwcHg7bWF4LXdpZHRoOjEwMCU7bWluLXdpZHRoOjA7b3ZlcmZsb3cteDpoaWRkZW47b3ZlcmZsb3cteTphdXRvO2xpbmUtaGVpZ2h0OjEuNTV9LnRvb2wtdXNlLXJlc3VsdHttYXJnaW4tdG9wOjEwcHg7cGFkZGluZy10b3A6MTBweDtib3JkZXItdG9wOjFweCBkYXNoZWQgcmdiYSgxMjUsOTEsNTcsLjE0KX0udG9vbC11c2UtcmVzdWx0LWNvbnRlbnR7bWFyZ2luOjA7Zm9udC1zaXplOi43NXJlbTtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtvdmVyZmxvdy13cmFwOmFueXdoZXJlO3dvcmQtYnJlYWs6YnJlYWstYWxsO21heC1oZWlnaHQ6MzIwcHg7bWF4LXdpZHRoOjEwMCU7bWluLXdpZHRoOjA7b3ZlcmZsb3cteDpoaWRkZW47b3ZlcmZsb3cteTphdXRvO2xpbmUtaGVpZ2h0OjEuNTU7YmFja2dyb3VuZDojN2Q1YjM5MDk7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMteHMpO3BhZGRpbmc6OHB4IDEwcHg7Ym94LXNpemluZzpib3JkZXItYm94fS50b29sLXVzZS1yZXN1bHQtZW1wdHl7Zm9udC1zaXplOi43NXJlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtmb250LXN0eWxlOml0YWxpY30udG9vbC11c2UtbWV0YXtmb250LXNpemU6Ljc1cmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7bWFyZ2luLWJvdHRvbTo4cHg7cGFkZGluZy1ib3R0b206OHB4O2JvcmRlci1ib3R0b206MXB4IGRhc2hlZCByZ2JhKDEyNSw5MSw1NywuMTQpfS50b29sLXVzZS1tZXRhLWxhYmVse2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtmb250LXdlaWdodDo2MDB9LnRvb2wtdXNlLWNhcmQuYXNrLXVzZXJ7Ym9yZGVyLWNvbG9yOiNjNTY1M2Q0ZDtiYWNrZ3JvdW5kOiNjNTY1M2QwYX0udG9vbC11c2UtY2FyZC5hc2stdXNlciAudG9vbC11c2UtaGVhZGVye2JhY2tncm91bmQ6I2M1NjUzZDE0fS5hc2stdXNlci1ib2R5e3BhZGRpbmc6MTBweCAxMnB4fS5hc2stdXNlci1xdWVzdGlvbi1ncm91cHttYXJnaW4tYm90dG9tOjEwcHh9LmFzay11c2VyLXF1ZXN0aW9uLWdyb3VwOmxhc3QtY2hpbGR7bWFyZ2luLWJvdHRvbTowfS5hc2stdXNlci10aXRsZXtmb250LXNpemU6Ljg3NXJlbTtmb250LXdlaWdodDo1MDA7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTttYXJnaW4tYm90dG9tOjEwcHh9LmFzay11c2VyLW9wdGlvbnN7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6NnB4fS5hc2stdXNlci1vcHRpb257ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTBweDtwYWRkaW5nOjhweCAxMnB4O2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLWRlZmF1bHQpO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLXNtKTtiYWNrZ3JvdW5kOnZhcigtLWJnLXNlY29uZGFyeSk7Y3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjphbGwgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KTt0ZXh0LWFsaWduOmxlZnR9LmFzay11c2VyLW9wdGlvbjpob3Zlcjpub3QoOmRpc2FibGVkKXtib3JkZXItY29sb3I6dmFyKC0tYWNjZW50KTtiYWNrZ3JvdW5kOiNjNTY1M2QwZn0uYXNrLXVzZXItb3B0aW9uOmRpc2FibGVke29wYWNpdHk6LjU7Y3Vyc29yOm5vdC1hbGxvd2VkfS5hc2stdXNlci1vcHRpb24uc2VsZWN0ZWR7Ym9yZGVyLWNvbG9yOnZhcigtLWFjY2VudCk7YmFja2dyb3VuZDojYzU2NTNkMmU7Ym94LXNoYWRvdzowIDAgMCAxcHggI2M1NjUzZDU5IGluc2V0fS50b29sLXVzZS1jYXJkLmFzay11c2VyLmFzay11c2VyLWFuc3dlcmVke2JvcmRlci10b3A6MnB4IHNvbGlkIHZhcigtLXN1Y2Nlc3MsICM0Y2FmNTApfS5hc2stdXNlci1vcHRpb24uYXNrLXVzZXItb3B0aW9uLWNob3NlbntiYWNrZ3JvdW5kOiNjNTY1M2QyOTtib3JkZXItY29sb3I6dmFyKC0tYWNjZW50KX0uYXNrLXVzZXItaW5kaWNhdG9ye3dpZHRoOjE2cHg7aGVpZ2h0OjE2cHg7ZmxleC1zaHJpbms6MDtib3JkZXI6MnB4IHNvbGlkIHZhcigtLWJvcmRlci1kZWZhdWx0KTtib3JkZXItcmFkaXVzOjUwJTt0cmFuc2l0aW9uOmFsbCB2YXIoLS10cmFuc2l0aW9uLWZhc3QpO3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcn0uYXNrLXVzZXItb3B0aW9uc1tkYXRhLW11bHRpLXNlbGVjdD10cnVlXSAuYXNrLXVzZXItaW5kaWNhdG9ye2JvcmRlci1yYWRpdXM6M3B4fS5hc2stdXNlci1vcHRpb24uc2VsZWN0ZWQgLmFzay11c2VyLWluZGljYXRvcntib3JkZXItY29sb3I6dmFyKC0tYWNjZW50KTtiYWNrZ3JvdW5kOnZhcigtLWFjY2VudCl9LmFzay11c2VyLW9wdGlvbi5zZWxlY3RlZCAuYXNrLXVzZXItaW5kaWNhdG9yOmFmdGVye2NvbnRlbnQ6IiI7d2lkdGg6NnB4O2hlaWdodDo2cHg7YmFja2dyb3VuZDojZmZmO2JvcmRlci1yYWRpdXM6NTAlfS5hc2stdXNlci1vcHRpb25zW2RhdGEtbXVsdGktc2VsZWN0PXRydWVdIC5hc2stdXNlci1vcHRpb24uc2VsZWN0ZWQgLmFzay11c2VyLWluZGljYXRvcjphZnRlcnt3aWR0aDo0cHg7aGVpZ2h0OjhweDtib3JkZXI6c29saWQgd2hpdGU7Ym9yZGVyLXdpZHRoOjAgMnB4IDJweCAwO2JvcmRlci1yYWRpdXM6MDtiYWNrZ3JvdW5kOm5vbmU7dHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7bWFyZ2luLWJvdHRvbToycHh9LmFzay11c2VyLW9wdGlvbi1jb250ZW50e2ZsZXg6MTttaW4td2lkdGg6MH0uYXNrLXVzZXItb3B0aW9uLWxhYmVse2ZvbnQtc2l6ZTouODEyNXJlbTtmb250LXdlaWdodDo1MDA7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KX0uYXNrLXVzZXItb3B0aW9uLWRlc2N7Zm9udC1zaXplOi43NXJlbTtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7bWFyZ2luLXRvcDoycHg7bGluZS1oZWlnaHQ6MS40fS5hc2stdXNlci1hY3Rpb25ze21hcmdpbi10b3A6MTBweDtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfS5hc2stdXNlci1zdWJtaXR7cGFkZGluZzo2cHggMTZweDtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWFjY2VudCk7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtc20pO2JhY2tncm91bmQ6dmFyKC0tYWNjZW50KTtjb2xvcjojZmZmO2ZvbnQtc2l6ZTouODEyNXJlbTtmb250LXdlaWdodDo1MDA7Y3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjphbGwgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KX0uYXNrLXVzZXItc3VibWl0OmhvdmVyOm5vdCg6ZGlzYWJsZWQpe2ZpbHRlcjpicmlnaHRuZXNzKDEuMSl9LmFzay11c2VyLXN1Ym1pdDpkaXNhYmxlZHtvcGFjaXR5Oi40O2N1cnNvcjpub3QtYWxsb3dlZH0uYXNrLXVzZXItc3VibWl0LmFzay11c2VyLXN1Ym1pdHRlZHtiYWNrZ3JvdW5kOnZhcigtLWJnLXNlY29uZGFyeSk7Ym9yZGVyLWNvbG9yOnZhcigtLWJvcmRlci1kZWZhdWx0KTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtwb2ludGVyLWV2ZW50czpub25lfS5hc2stdXNlci1hbnN3ZXJlZCAuYXNrLXVzZXItb3B0aW9ue2N1cnNvcjpkZWZhdWx0O3BvaW50ZXItZXZlbnRzOm5vbmU7b3BhY2l0eTouNn0uYXNrLXVzZXItYW5zd2VyZWQgLmFzay11c2VyLW9wdGlvbi5hc2stdXNlci1vcHRpb24tY2hvc2Vue29wYWNpdHk6MTtib3JkZXItY29sb3I6dmFyKC0tc3VjY2Vzcyk7YmFja2dyb3VuZDojNGY3YTU4MGZ9LmFzay11c2VyLWFuc3dlcmVkIC5hc2stdXNlci1vcHRpb24uYXNrLXVzZXItb3B0aW9uLWNob3NlbiAuYXNrLXVzZXItaW5kaWNhdG9ye2JvcmRlci1jb2xvcjp2YXIoLS1zdWNjZXNzKTtiYWNrZ3JvdW5kOnZhcigtLXN1Y2Nlc3MpfS5hc2stdXNlci1vcHRpb24tcmVhZG9ubHl7cG9pbnRlci1ldmVudHM6bm9uZX1vdmVyZmxvdy15OiBhdXRvOyAudGhpbmtpbmctaW5saW5le2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpiYXNlbGluZTtnYXA6NXB4O21hcmdpbjoycHggMDt3aWR0aDoxMDAlO21heC13aWR0aDp2YXIoLS1jaGF0LWNhcmQtbWF4LXdpZHRoLCA3MjBweCk7Ym94LXNpemluZzpib3JkZXItYm94O3BhZGRpbmc6M3B4IDhweDtib3JkZXItcmFkaXVzOjZweDtiYWNrZ3JvdW5kOiM4YTZjYjIwYTtjdXJzb3I6cG9pbnRlcjtmb250LXNpemU6Ljc1cmVtO2xpbmUtaGVpZ2h0OjEuNDtjb2xvcjojOGE2Y2IyOGM7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIHZhcigtLXRyYW5zaXRpb24tZmFzdCksY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KTt3b3JkLWJyZWFrOmJyZWFrLXdvcmQ7b3ZlcmZsb3ctd3JhcDpicmVhay13b3JkfS50aGlua2luZy1pbmxpbmU6aG92ZXJ7YmFja2dyb3VuZDojOGE2Y2IyMTQ7Y29sb3I6IzhhNmNiMmNjfS50aGlua2luZy1pbmxpbmUuZXhwYW5kZWR7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO3doaXRlLXNwYWNlOnByZS13cmFwO2xpbmUtaGVpZ2h0OjEuNjttYXgtaGVpZ2h0OjMwMHB4O292ZXJmbG93LXk6YXV0b30udGhpbmtpbmctaW5saW5lLWljb257ZmxleC1zaHJpbms6MDtmb250LXNpemU6LjYyNXJlbX0udGhpbmtpbmctaW5saW5lLXByZXZpZXd7ZmxleDoxO21pbi13aWR0aDowO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcH0udGhpbmtpbmctaW5saW5lLmV4cGFuZGVkIC50aGlua2luZy1pbmxpbmUtcHJldmlld3t3aGl0ZS1zcGFjZTpwcmUtd3JhcDtvdmVyZmxvdy13cmFwOmFueXdoZXJlO3dvcmQtYnJlYWs6YnJlYWstd29yZH0udGhpbmtpbmctaW5saW5lLWFjdGlvbntmbGV4LXNocmluazowO2ZvbnQtc2l6ZTouNjI1cmVtO2NvbG9yOiM4YTZjYjI2NjtwYWRkaW5nOjAgNHB4O2JvcmRlci1yYWRpdXM6M3B4O2JhY2tncm91bmQ6IzhhNmNiMjE0O21hcmdpbi1sZWZ0OmF1dG99LnRoaW5raW5nLWlubGluZTpob3ZlciAudGhpbmtpbmctaW5saW5lLWFjdGlvbntjb2xvcjojOGE2Y2IyYjN9LnRoaW5raW5nLWlubGluZS50aGlua2luZy1wdHl7YmFja2dyb3VuZDojOGE2Y2IyMDh9LnRoaW5raW5nLXN0cmVhbWluZ3tkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6ZmxleC1zdGFydDtnYXA6NXB4O21hcmdpbjoycHggMDtwYWRkaW5nOjNweCA4cHg7Ym9yZGVyLXJhZGl1czo2cHg7YmFja2dyb3VuZDojOGE2Y2IyMGE7Y3Vyc29yOmRlZmF1bHQ7Zm9udC1zaXplOi43NXJlbTtsaW5lLWhlaWdodDoxLjQ7Y29sb3I6IzhhNmNiMjhjfS50aGlua2luZy1zdHJlYW1pbmctaW5uZXJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7Z2FwOjVweDt3aWR0aDoxMDAlfS50aGlua2luZy1zdHJlYW1pbmctaWNvbntmb250LXNpemU6LjYyNXJlbTtmbGV4LXNocmluazowO21hcmdpbi10b3A6MXB4fS50aGlua2luZy1zdHJlYW1pbmctdGV4dHtmbGV4OjE7bWluLXdpZHRoOjA7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKTtmb250LXNpemU6Ljc1cmVtO2xpbmUtaGVpZ2h0OjEuNTtjb2xvcjojOGE2Y2IyY2M7d2hpdGUtc3BhY2U6cHJlLXdyYXA7d29yZC1icmVhazpicmVhay13b3JkO21heC1oZWlnaHQ6NC41ZW07b3ZlcmZsb3cteTphdXRvO3Njcm9sbGJhci13aWR0aDp0aGluO3Njcm9sbGJhci1jb2xvcjpyZ2JhKDEzOCwxMDgsMTc4LC4zKSB0cmFuc3BhcmVudH0udGhpbmtpbmctc3RyZWFtaW5nLXRleHQ6Oi13ZWJraXQtc2Nyb2xsYmFye3dpZHRoOjRweH0udGhpbmtpbmctc3RyZWFtaW5nLXRleHQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1ie2JhY2tncm91bmQ6IzhhNmNiMjRkO2JvcmRlci1yYWRpdXM6MnB4fS50b29sLWdyb3Vwe21hcmdpbjo0cHggMDt3aWR0aDoxMDAlO21heC13aWR0aDp2YXIoLS1jaGF0LWNhcmQtbWF4LXdpZHRoLCA3MjBweCk7bWluLXdpZHRoOjA7Ym94LXNpemluZzpib3JkZXItYm94O2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLXNtKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZywjZmZmYmY1ZDksI2ZmZjhlZWIzKTtib3gtc2hhZG93OjAgMXB4IDJweCAjNTkzYTIwMDg7b3ZlcmZsb3c6aGlkZGVuO3RyYW5zaXRpb246Ym9yZGVyLWNvbG9yIC4xOHMgZWFzZSxib3gtc2hhZG93IC4yMnMgZWFzZSx0cmFuc2Zvcm0gLjIycyBlYXNlfS50b29sLWdyb3VwOmhvdmVye2JvcmRlci1jb2xvcjojN2Q1YjM5MmU7Ym94LXNoYWRvdzowIDJweCA4cHggIzU5M2EyMDBmfS50b29sLWdyb3VwW2RhdGEtc3RhdHVzPXBlbmRpbmdde2JvcmRlci1jb2xvcjojYTk2YTJmMzg7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCNmZmY0ZTJkOSwjZmZmMWRhYjMpfS50b29sLWdyb3VwW2RhdGEtc3RhdHVzPWVycm9yXXtib3JkZXItY29sb3I6I2IyNGY0NTQ3O2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZywjZmNmMGVlZDksI2ZjZWNlYWIzKX0udG9vbC1ncm91cC1zdW1tYXJ5e2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjlweDtwYWRkaW5nOjhweCAxMnB4O2N1cnNvcjpwb2ludGVyO2ZvbnQtc2l6ZTouNzVyZW07Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO3VzZXItc2VsZWN0Om5vbmU7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4xOHMgZWFzZX0udG9vbC1ncm91cC1zdW1tYXJ5OmhvdmVye2JhY2tncm91bmQ6I2M1NjUzZDBhfS50b29sLWdyb3VwLXN0YXR1c3tkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3dpZHRoOjE4cHg7aGVpZ2h0OjE4cHg7Ym9yZGVyLXJhZGl1czo1MCU7Zm9udC1zaXplOi42ODc1cmVtO2ZvbnQtd2VpZ2h0OjcwMDtsaW5lLWhlaWdodDoxO2ZsZXgtc2hyaW5rOjA7bGV0dGVyLXNwYWNpbmc6MH0udG9vbC1ncm91cFtkYXRhLXN0YXR1cz1kb25lXSAudG9vbC1ncm91cC1zdGF0dXN7YmFja2dyb3VuZDp2YXIoLS1zdWNjZXNzLW11dGVkKTtjb2xvcjp2YXIoLS1zdWNjZXNzKX0udG9vbC1ncm91cFtkYXRhLXN0YXR1cz1lcnJvcl0gLnRvb2wtZ3JvdXAtc3RhdHVze2JhY2tncm91bmQ6dmFyKC0tZGFuZ2VyLW11dGVkKTtjb2xvcjp2YXIoLS1kYW5nZXIpfS50b29sLWdyb3VwW2RhdGEtc3RhdHVzPXBlbmRpbmddIC50b29sLWdyb3VwLXN0YXR1c3tiYWNrZ3JvdW5kOnZhcigtLXdhcm5pbmctbXV0ZWQpO2NvbG9yOnZhcigtLXdhcm5pbmcpO2FuaW1hdGlvbjp0b29sLWdyb3VwLXB1bHNlIDEuNnMgZWFzZS1pbi1vdXQgaW5maW5pdGV9QGtleWZyYW1lcyB0b29sLWdyb3VwLXB1bHNlezAlLHRve29wYWNpdHk6MX01MCV7b3BhY2l0eTouNTV9fS50b29sLWdyb3VwLXRleHR7ZmxleDoxO21pbi13aWR0aDowO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcDtmb250LXdlaWdodDo1MDA7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtsZXR0ZXItc3BhY2luZzotLjAwNWVtfS50b29sLWdyb3VwLWNvdW50e2ZsZXgtc2hyaW5rOjA7Zm9udC1zaXplOi42ODc1cmVtO2NvbG9yOnZhcigtLXRleHQtdGVydGlhcnkpO3BhZGRpbmc6MnB4IDhweDtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1mdWxsKTtiYWNrZ3JvdW5kOiM3ZDViMzkxMjtmb250LXZhcmlhbnQtbnVtZXJpYzp0YWJ1bGFyLW51bXN9LnRvb2wtZ3JvdXAtY2hldnJvbntmbGV4LXNocmluazowO3RyYW5zaXRpb246dHJhbnNmb3JtIC4yNXMgdmFyKC0tZWFzZS1vdXQtZXhwbyk7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7b3BhY2l0eTouNn0udG9vbC1ncm91cDpob3ZlciAudG9vbC1ncm91cC1jaGV2cm9ue29wYWNpdHk6MX0udG9vbC1ncm91cFtkYXRhLWV4cGFuZGVkPXRydWVdIC50b29sLWdyb3VwLWNoZXZyb257dHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpfS50b29sLWdyb3VwLWJvZHl7ZGlzcGxheTpub25lO3BhZGRpbmc6NHB4IDhweCA4cHggMThweDtib3JkZXItdG9wOjFweCBzb2xpZCByZ2JhKDEyNSw5MSw1NywuMDYpO2JvcmRlci1sZWZ0OjJweCBzb2xpZCByZ2JhKDEyNSw5MSw1NywuMDgpO2JhY2tncm91bmQ6I2ZmZmRmODhjfS50b29sLWdyb3VwLWJvZHk+LmlubGluZS10b29se21hcmdpbjowfS50b29sLWdyb3VwLWJvZHk+LmlubGluZS10b29sKy5pbmxpbmUtdG9vbHtib3JkZXItdG9wOjFweCBkYXNoZWQgcmdiYSgxMjUsOTEsNTcsLjA2KX0udG9vbC1ncm91cFtkYXRhLWV4cGFuZGVkPXRydWVdIC50b29sLWdyb3VwLWJvZHl7ZGlzcGxheTpibG9jazthbmltYXRpb246dG9vbC1ncm91cC1yZXZlYWwgLjE4cyB2YXIoLS1lYXNlLW91dC1leHBvKX1Aa2V5ZnJhbWVzIHRvb2wtZ3JvdXAtcmV2ZWFsezAle29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMnB4KX10b3tvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCl9fS5jaGF0LWZvbGQtYmFye2ZsZXg6MCAwIGF1dG87ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6NHB4O21heC1oZWlnaHQ6MTI0cHg7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6OHB4IDRweCA3cHg7Ym94LXNpemluZzpib3JkZXItYm94O2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZywjZmZmY2Y4ZjUsI2ZmZmFmNGViKTtiYWNrZHJvcC1maWx0ZXI6Ymx1cigxMHB4KTstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjpibHVyKDEwcHgpO2JveC1zaGFkb3c6MCA0cHggMTJweCAtOHB4ICM1OTNhMjAyZX0uY2hhdC1mb2xkLWJhci5oaWRkZW57ZGlzcGxheTpub25lfS5jaGF0LWZvbGQtcm93e3dpZHRoOm1pbigxMDAlLHZhcigtLWNoYXQtY2FyZC1tYXgtd2lkdGgsIDcyMHB4KSk7bWluLWhlaWdodDozMHB4O21hcmdpbjowIGF1dG87cGFkZGluZzo1cHggMTBweDtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjU0cHggbWlubWF4KDAsMWZyKTthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjhweDtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMTI1LDkxLDU3LC4xMik7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtbWQsIDhweCk7YmFja2dyb3VuZDojZmZmZmZmOWU7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtmb250OmluaGVyaXQ7dGV4dC1hbGlnbjpsZWZ0O2N1cnNvcjpwb2ludGVyO2JveC1zaXppbmc6Ym9yZGVyLWJveH0uY2hhdC1mb2xkLXJvdzpob3Zlcntib3JkZXItY29sb3I6IzdkNWIzOTMzO2JhY2tncm91bmQ6I2ZmZmZmZmQxfS5jaGF0LWZvbGQtcm93Lmhpc3Rvcnl7YmFja2dyb3VuZDojZmZmOGVlYjg7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpfS5jaGF0LWZvbGQtcm9sZXtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtmb250LXNpemU6LjcycmVtO2ZvbnQtd2VpZ2h0OjcwMDt3aGl0ZS1zcGFjZTpub3dyYXB9LmNoYXQtZm9sZC10ZXh0e21pbi13aWR0aDowO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcDtmb250LXNpemU6Ljc4cmVtO2xpbmUtaGVpZ2h0OjEuMjV9LmNoYXQtY29udGFpbmVyLmF1dG8tZm9sZCAuY2hhdC1tZXNzYWdlc3tmbGV4OjEgMSBhdXRvO21pbi1oZWlnaHQ6MH1AbWVkaWEobWF4LXdpZHRoOjc2OHB4KXsuY2hhdC1mb2xkLWJhcnttYXgtaGVpZ2h0OjExMnB4O3BhZGRpbmctdG9wOjZweDtwYWRkaW5nLWJvdHRvbTo2cHh9LmNoYXQtZm9sZC1yb3d7bWluLWhlaWdodDoyOHB4O2dyaWQtdGVtcGxhdGUtY29sdW1uczo0NHB4IG1pbm1heCgwLDFmcik7cGFkZGluZzo0cHggOHB4fS5jaGF0LWZvbGQtcm9sZXtmb250LXNpemU6LjY4cmVtfS5jaGF0LWZvbGQtdGV4dHtmb250LXNpemU6Ljc0cmVtfX0uY2hhdC1mb2xkLWJhci1zcGFjZXJ7ZGlzcGxheTpub25lfS5jaGF0LWhpc3RvcnktaGlkZGVuLC5jaGF0LWF1dG8tZm9sZC1oaWRkZW57ZGlzcGxheTpub25lIWltcG9ydGFudH0uY2hhdC1oaXN0b3J5LXN1bW1hcnl7d2lkdGg6MTAwJTttYXgtd2lkdGg6dmFyKC0tY2hhdC1jYXJkLW1heC13aWR0aCwgNzIwcHgpO21hcmdpbjoxMHB4IGF1dG87Ym94LXNpemluZzpib3JkZXItYm94fS5jaGF0LWhpc3Rvcnktc3VtbWFyeS1idG57ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6OXB4O3dpZHRoOjEwMCU7cGFkZGluZzo3cHggMTJweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtZnVsbCwgOTk5cHgpO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSk7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCNmZmZiZjVlNiwjZmZmN2VjYzcpO2JveC1zaGFkb3c6MCAxcHggMnB4ICM1OTNhMjAwYTtjdXJzb3I6cG9pbnRlcjt0ZXh0LWFsaWduOmxlZnQ7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2ZvbnQ6aW5oZXJpdDt0cmFuc2l0aW9uOmJvcmRlci1jb2xvciAuMThzIGVhc2UsYm94LXNoYWRvdyAuMjJzIGVhc2UsYmFja2dyb3VuZCAuMThzIGVhc2V9LmNoYXQtaGlzdG9yeS1zdW1tYXJ5LWJ0bjpob3Zlcntib3JkZXItY29sb3I6IzdkNWIzOTMzO2JveC1zaGFkb3c6MCAycHggOHB4ICM1OTNhMjAwZjtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcsI2ZmZmFmM2YyLCNmZmY1ZThkOSl9LmNoYXQtaGlzdG9yeS1zdW1tYXJ5LWljb257ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtmbGV4LXNocmluazowO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO29wYWNpdHk6Ljc1fS5jaGF0LWhpc3Rvcnktc3VtbWFyeS1ib2R5e2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjFweDtmbGV4OjE7bWluLXdpZHRoOjB9LmNoYXQtaGlzdG9yeS1zdW1tYXJ5LXRpdGxle2ZvbnQtc2l6ZTouNzVyZW07Zm9udC13ZWlnaHQ6NjAwO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7bGV0dGVyLXNwYWNpbmc6LS4wMDVlbX0uY2hhdC1oaXN0b3J5LXN1bW1hcnktbWV0YXtmb250LXNpemU6LjY4NzVyZW07Y29sb3I6dmFyKC0tdGV4dC10ZXJ0aWFyeSk7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwO2ZvbnQtdmFyaWFudC1udW1lcmljOnRhYnVsYXItbnVtc30uY2hhdC1oaXN0b3J5LXN1bW1hcnktY2hldnJvbntmbGV4LXNocmluazowO2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO29wYWNpdHk6LjY7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjI1cyB2YXIoLS1lYXNlLW91dC1leHBvKX0uY2hhdC1oaXN0b3J5LXN1bW1hcnktYnRuOmhvdmVyIC5jaGF0LWhpc3Rvcnktc3VtbWFyeS1jaGV2cm9ue29wYWNpdHk6MX0uY2hhdC1oaXN0b3J5LXN1bW1hcnlbZGF0YS1leHBhbmRlZD10cnVlXSAuY2hhdC1oaXN0b3J5LXN1bW1hcnktY2hldnJvbnt0cmFuc2Zvcm06cm90YXRlKDE4MGRlZyl9LmlubGluZS10b29se2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWFyZ2luOjFweCAwO3dpZHRoOjEwMCU7bWF4LXdpZHRoOnZhcigtLWNoYXQtY2FyZC1tYXgtd2lkdGgsIDcyMHB4KTttaW4td2lkdGg6MDtib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMteHMpO2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMTZzIGVhc2V9LnRvb2wtZ3JvdXAtYm9keT4uaW5saW5lLXRvb2x7bWF4LXdpZHRoOjEwMCV9LmlubGluZS10b29sLXJvd3tkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo4cHg7cGFkZGluZzo1cHggMTBweDtmb250LXNpemU6Ljc1cmVtO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2xpbmUtaGVpZ2h0OjEuNDU7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMteHMpO21heC13aWR0aDoxMDAlO21pbi13aWR0aDowO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMTZzIGVhc2UsY29sb3IgLjE2cyBlYXNlfS5pbmxpbmUtdG9vbDpob3ZlciAuaW5saW5lLXRvb2wtcm93e2JhY2tncm91bmQ6I2M1NjUzZDBmO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSl9LmlubGluZS10b29sLXN0YXR1c3tkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3dpZHRoOjE0cHg7aGVpZ2h0OjE0cHg7ZmxleC1zaHJpbms6MDtmb250LXNpemU6LjY4NzVyZW07Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOnZhcigtLXN1Y2Nlc3MpO2xpbmUtaGVpZ2h0OjF9LmlubGluZS10b29sW2RhdGEtc3RhdHVzPXBlbmRpbmddIC5pbmxpbmUtdG9vbC1zdGF0dXN7Y29sb3I6dmFyKC0td2FybmluZyl9LmlubGluZS10b29sW2RhdGEtc3RhdHVzPWVycm9yXSAuaW5saW5lLXRvb2wtc3RhdHVzLC5pbmxpbmUtdG9vbC1lcnJvci1pbmxpbmUgLmlubGluZS10b29sLXN0YXR1c3tjb2xvcjp2YXIoLS1kYW5nZXIpfS5pbmxpbmUtdG9vbC1pY29ue2ZsZXgtc2hyaW5rOjA7Y29sb3I6dmFyKC0tdGV4dC10ZXJ0aWFyeSk7b3BhY2l0eTouODV9LmlubGluZS10b29sOmhvdmVyIC5pbmxpbmUtdG9vbC1pY29ue2NvbG9yOnZhcigtLWFjY2VudCk7b3BhY2l0eToxfS5pbmxpbmUtdG9vbC10aXRsZXtmbGV4OjE7bWluLXdpZHRoOjA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtmb250LXNpemU6Ljc1cmVtfS5pbmxpbmUtdG9vbDpob3ZlciAuaW5saW5lLXRvb2wtdGl0bGV7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KX0uaW5saW5lLXRvb2wtbWV0YXtmbGV4LXNocmluazowO2ZvbnQtc2l6ZTouNjg3NXJlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTttYXgtd2lkdGg6MjIwcHg7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwO2ZvbnQtdmFyaWFudC1udW1lcmljOnRhYnVsYXItbnVtcztsZXR0ZXItc3BhY2luZzotLjAxZW19LmlubGluZS10b29sLWltYWdle3BhZGRpbmc6MnB4IDEwcHggOHB4IDMycHg7Y3Vyc29yOmRlZmF1bHR9LmlubGluZS10b29sLWltYWdlLXRodW1ie2Rpc3BsYXk6YmxvY2s7bWF4LXdpZHRoOm1pbigxMDAlLDM2MHB4KTttYXgtaGVpZ2h0OjI0MHB4O3dpZHRoOmF1dG87aGVpZ2h0OmF1dG87Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMteHMpO2JvcmRlcjoxcHggc29saWQgcmdiYSgxMjUsOTEsNTcsLjE0KTtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg0NWRlZyxyZ2JhKDEyNSw5MSw1NywuMDUpIDI1JSx0cmFuc3BhcmVudCAyNSUsdHJhbnNwYXJlbnQgNzUlLHJnYmEoMTI1LDkxLDU3LC4wNSkgNzUlKSAwIDAgLyAxNnB4IDE2cHgsbGluZWFyLWdyYWRpZW50KDQ1ZGVnLHJnYmEoMTI1LDkxLDU3LC4wNSkgMjUlLHRyYW5zcGFyZW50IDI1JSx0cmFuc3BhcmVudCA3NSUscmdiYSgxMjUsOTEsNTcsLjA1KSA3NSUpIDhweCA4cHggLyAxNnB4IDE2cHg7b2JqZWN0LWZpdDpjb250YWluO2N1cnNvcjp6b29tLWluO3RyYW5zaXRpb246Ym9yZGVyLWNvbG9yIC4xNnMgZWFzZSxib3gtc2hhZG93IC4xNnMgZWFzZX0uaW5saW5lLXRvb2wtaW1hZ2UtdGh1bWI6aG92ZXJ7Ym9yZGVyLWNvbG9yOnZhcigtLWFjY2VudCk7Ym94LXNoYWRvdzowIDJweCAxMHB4ICMwMDAwMDAxZn0uaW5saW5lLXRvb2wtZXhwYW5kZWR7ZGlzcGxheTpub25lO3BhZGRpbmc6MCAxMHB4IDhweH0uaW5saW5lLXRvb2wtb3BlbiAuaW5saW5lLXRvb2wtZXhwYW5kZWR7ZGlzcGxheTpibG9jazthbmltYXRpb246dG9vbC1ncm91cC1yZXZlYWwgLjE2cyB2YXIoLS1lYXNlLW91dC1leHBvKX0uaW5saW5lLXRvb2wtcmVzdWx0e2JhY2tncm91bmQ6IzdkNWIzOTBhO2JvcmRlcjoxcHggc29saWQgcmdiYSgxMjUsOTEsNTcsLjA3KTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy14cyk7cGFkZGluZzoxMHB4IDEycHg7bWFyZ2luLXRvcDo2cHg7bWF4LWhlaWdodDozMjBweDttYXgtd2lkdGg6MTAwJTttaW4td2lkdGg6MDtvdmVyZmxvdy14OmhpZGRlbjtvdmVyZmxvdy15OmF1dG87c2Nyb2xsYmFyLXdpZHRoOnRoaW47c2Nyb2xsYmFyLWNvbG9yOnJnYmEoMTI1LDkxLDU3LC4yKSB0cmFuc3BhcmVudH0uaW5saW5lLXRvb2wtcmVzdWx0Ojotd2Via2l0LXNjcm9sbGJhcnt3aWR0aDo2cHh9LmlubGluZS10b29sLXJlc3VsdDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7YmFja2dyb3VuZDojN2Q1YjM5MzM7Ym9yZGVyLXJhZGl1czozcHh9LmlubGluZS10b29sLXJlc3VsdDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXJ7YmFja2dyb3VuZDojN2Q1YjM5NTJ9LmlubGluZS10b29sLXJlc3VsdC10ZXh0e2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7Zm9udC1zaXplOi43NXJlbTtsaW5lLWhlaWdodDoxLjU1O2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtvdmVyZmxvdy13cmFwOmFueXdoZXJlO3dvcmQtYnJlYWs6YnJlYWstYWxsO21heC13aWR0aDoxMDAlO21pbi13aWR0aDowO21hcmdpbjowfS5pbmxpbmUtdG9vbC1lcnJvci1pbmxpbmV7Ym9yZGVyLWxlZnQ6MnB4IHNvbGlkIHZhcigtLWRhbmdlcik7cGFkZGluZy1sZWZ0OjJweDttYXJnaW4tbGVmdDotMnB4fS5pbmxpbmUtdG9vbC1lcnJvci1pbmxpbmUgLmlubGluZS10b29sLXJvd3tjb2xvcjp2YXIoLS1kYW5nZXIpfS5pbmxpbmUtdG9vbC1yZXN1bHQuaW5saW5lLXRvb2wtZXJyb3J7Y29sb3I6dmFyKC0tZGFuZ2VyKTtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2ZvbnQtc2l6ZTouNzVyZW07YmFja2dyb3VuZDp2YXIoLS1kYW5nZXItbXV0ZWQpO2JvcmRlci1jb2xvcjojYjI0ZjQ1MmV9LmlubGluZS10b29sLWxvYWRpbmd7Zm9udC1zaXplOi43NXJlbTtjb2xvcjp2YXIoLS13YXJuaW5nKTtmb250LXN0eWxlOml0YWxpYztwYWRkaW5nOjZweCAwO2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2cHh9LmlubGluZS10b29sLWxvYWRpbmc6YmVmb3Jle2NvbnRlbnQ6IiI7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6MTBweDtoZWlnaHQ6MTBweDtib3JkZXI6MS41cHggc29saWQgdmFyKC0td2FybmluZy1tdXRlZCk7Ym9yZGVyLXRvcC1jb2xvcjp2YXIoLS13YXJuaW5nKTtib3JkZXItcmFkaXVzOjUwJTthbmltYXRpb246dG9vbC1jb250ZW50LXNwaW4gLjdzIGxpbmVhciBpbmZpbml0ZX0uaW5saW5lLXRvb2wtZW1wdHl7Zm9udC1zaXplOi43NXJlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtmb250LXN0eWxlOml0YWxpY30udG9vbC1jb250ZW50LWxvYWRpbmd7Zm9udC1zaXplOi43NXJlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtmb250LXN0eWxlOml0YWxpYztwYWRkaW5nOjhweCAwfS50b29sLWNvbnRlbnQtbG9hZGluZzpiZWZvcmV7Y29udGVudDoiIjtkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDoxMnB4O2hlaWdodDoxMnB4O2JvcmRlcjoycHggc29saWQgdmFyKC0tdGV4dC1tdXRlZCk7Ym9yZGVyLXRvcC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXItcmFkaXVzOjUwJTthbmltYXRpb246dG9vbC1jb250ZW50LXNwaW4gLjZzIGxpbmVhciBpbmZpbml0ZTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7bWFyZ2luLXJpZ2h0OjZweH1Aa2V5ZnJhbWVzIHRvb2wtY29udGVudC1zcGlue3Rve3RyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKX19LnRvb2wtY29udGVudC1lcnJvcntmb250LXNpemU6Ljc1cmVtO2NvbG9yOnZhcigtLWVycm9yKTtwYWRkaW5nOjhweCAwO2N1cnNvcjpwb2ludGVyfS50b29sLWNvbnRlbnQtZXJyb3I6aG92ZXJ7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX0uaW5saW5lLXRlcm1pbmFse21hcmdpbjo0cHggMDt3aWR0aDoxMDAlO21heC13aWR0aDp2YXIoLS1jaGF0LWNhcmQtbWF4LXdpZHRoLCA3MjBweCk7bWluLXdpZHRoOjA7Ym94LXNpemluZzpib3JkZXItYm94O2JvcmRlcjoxcHggc29saWQgcmdiYSgxNSwxMiw5LC42KTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1zbSk7YmFja2dyb3VuZDojMWYxYjE3O2JveC1zaGFkb3c6MCAxcHggI2ZmZmZmZjBhIGluc2V0LDAgMnB4IDEycHggIzBmMGMwOTJlO292ZXJmbG93OmhpZGRlbjt0cmFuc2l0aW9uOmJveC1zaGFkb3cgLjIycyBlYXNlLHRyYW5zZm9ybSAuMjJzIGVhc2UsYm9yZGVyLWNvbG9yIC4yMnMgZWFzZX0uaW5saW5lLXRlcm1pbmFsOmhvdmVye2JveC1zaGFkb3c6MCAxcHggI2ZmZmZmZjBkIGluc2V0LDAgNHB4IDE4cHggIzBmMGMwOTNkO2JvcmRlci1jb2xvcjojZmZmZmZmMWF9LnRlcm0taGVhZGVye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEwcHg7cGFkZGluZzo4cHggMTRweDtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcsI2ZmZmZmZjBhLCNmZmZmZmYwNCksIzAwMDAwMDJlO2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsLjA0KTtmb250LXNpemU6Ljc1cmVtO2N1cnNvcjpwb2ludGVyO3VzZXItc2VsZWN0Om5vbmU7cG9zaXRpb246cmVsYXRpdmU7bWF4LXdpZHRoOjEwMCU7bWluLXdpZHRoOjB9LnRlcm0taGVhZGVyOmhvdmVye2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZywjZmZmZmZmMGYsI2ZmZmZmZjA2KSwjMDAwMDAwMmV9LnRlcm0tc3RhdHVzLWRvdHt3aWR0aDo5cHg7aGVpZ2h0OjlweDtib3JkZXItcmFkaXVzOjUwJTtmbGV4LXNocmluazowO2JveC1zaGFkb3c6MCAwIDAgMXB4ICMwMDAwMDA0MCBpbnNldH0udGVybS1zdGF0dXMtZG90LnRlcm0tc3VjY2Vzc3tiYWNrZ3JvdW5kOnJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgMzUlIDMwJSwjYjZmMGM0LCM2ZWUwOWEsIzNhYTc2NSk7Ym94LXNoYWRvdzowIDAgMCAxcHggIzAwMDAwMDQwIGluc2V0LDAgMCA2cHggIzZlZTA5YTU5fS50ZXJtLXN0YXR1cy1kb3QudGVybS1lcnJvcntiYWNrZ3JvdW5kOnJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgMzUlIDMwJSwjZmZiNWI5LCNmMDcxNzgsI2I1M2I0MSk7Ym94LXNoYWRvdzowIDAgMCAxcHggIzAwMDAwMDQwIGluc2V0LDAgMCA2cHggI2YwNzE3ODU5fS50ZXJtLXN0YXR1cy1kb3QudGVybS13YXJue2JhY2tncm91bmQ6cmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCAzNSUgMzAlLCNmZmQwN2EsI2YwYTUwMCwjYWQ3NDAwKTtib3gtc2hhZG93OjAgMCAwIDFweCAjMDAwMDAwNDAgaW5zZXQsMCAwIDZweCAjZjBhNTAwNTl9LnRlcm0tc3RhdHVzLWRvdC50ZXJtLXJ1bm5pbmd7YmFja2dyb3VuZDpyYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDM1JSAzMCUsI2QxZDVkYiwjOWNhM2FmLCM0YjU1NjMpO2FuaW1hdGlvbjp0ZXJtLXB1bHNlIDFzIGVhc2UtaW4tb3V0IGluZmluaXRlfUBrZXlmcmFtZXMgdGVybS1wdWxzZXswJSx0b3tvcGFjaXR5OjE7Ym94LXNoYWRvdzowIDAgMCAxcHggIzAwMDAwMDQwIGluc2V0LDAgMCAjOWNhM2FmMDB9NTAle29wYWNpdHk6LjU1O2JveC1zaGFkb3c6MCAwIDAgMXB4ICMwMDAwMDA0MCBpbnNldCwwIDAgOHB4ICM5Y2EzYWY1OX19LnRlcm0tY21kLXByZXZpZXd7ZmxleDoxO21pbi13aWR0aDowO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7Zm9udC1zaXplOi43NXJlbTtjb2xvcjojZThkY2M4Yzc7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwO2xldHRlci1zcGFjaW5nOi0uMDA1ZW19LnRlcm0tY21kLXByZXZpZXcgLnRlcm0tcHJvbXB0e2NvbG9yOiM2ZWUwOWE7Zm9udC13ZWlnaHQ6NjAwO21hcmdpbi1yaWdodDo2cHg7Zm9udC1zaXplOi43NXJlbTtvcGFjaXR5Oi45fS50ZXJtLXRvZ2dsZS1pY29ue2ZvbnQtc2l6ZTouNjI1cmVtO2NvbG9yOiNmZmZmZmY1OTt0cmFuc2l0aW9uOmNvbG9yIC4xOHMgZWFzZTtmbGV4LXNocmluazowfS50ZXJtLWhlYWRlcjpob3ZlciAudGVybS10b2dnbGUtaWNvbntjb2xvcjojZmZmZmZmYTZ9LnRlcm0tYm9keXtwYWRkaW5nOjEycHggMTRweCAxNHB4O2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZywjMDAwMDAwMmUsIzAwMDAgMjRweCksIzFmMWIxN30udGVybS1jb21tYW5ke2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7Zm9udC1zaXplOi44MTI1cmVtO2NvbG9yOiNmNGU5ZDQ7bGluZS1oZWlnaHQ6MS41NTttYXJnaW4tYm90dG9tOjZweDt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtvdmVyZmxvdy13cmFwOmFueXdoZXJlO3dvcmQtYnJlYWs6YnJlYWstYWxsO21heC13aWR0aDoxMDAlO21pbi13aWR0aDowfS50ZXJtLXByb21wdHtjb2xvcjojNmVlMDlhO2ZvbnQtd2VpZ2h0OjYwMDttYXJnaW4tcmlnaHQ6NnB4O3RleHQtc2hhZG93OjAgMCA2cHggcmdiYSgxMTAsMjI0LDE1NCwuMjUpfS50ZXJtLW91dHB1dHttYXJnaW4tdG9wOjhweDtwYWRkaW5nLXRvcDo4cHg7Ym9yZGVyLXRvcDoxcHggZGFzaGVkIHJnYmEoMjU1LDI1NSwyNTUsLjA2KTttYXgtaGVpZ2h0OjM2MHB4O21heC13aWR0aDoxMDAlO21pbi13aWR0aDowO292ZXJmbG93LXg6aGlkZGVuO292ZXJmbG93LXk6YXV0bztzY3JvbGxiYXItd2lkdGg6dGhpbjtzY3JvbGxiYXItY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMTUpIHRyYW5zcGFyZW50fS50ZXJtLW91dHB1dDo6LXdlYmtpdC1zY3JvbGxiYXJ7d2lkdGg6NnB4fS50ZXJtLW91dHB1dDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7YmFja2dyb3VuZDojZmZmZmZmMjY7Ym9yZGVyLXJhZGl1czozcHh9LnRlcm0tb3V0cHV0Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlcntiYWNrZ3JvdW5kOiNmZmZmZmY0MH0udGVybS1saW5le2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7Zm9udC1zaXplOi44MTI1cmVtO2NvbG9yOiNkNGMyYTM7bGluZS1oZWlnaHQ6MS41NTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtvdmVyZmxvdy13cmFwOmFueXdoZXJlO3dvcmQtYnJlYWs6YnJlYWstYWxsO21heC13aWR0aDoxMDAlO21pbi13aWR0aDowfS50ZXJtLWV4aXR7bWFyZ2luLXRvcDoxMHB4O3BhZGRpbmctdG9wOjhweDtib3JkZXItdG9wOjFweCBkYXNoZWQgcmdiYSgyNTUsMjU1LDI1NSwuMDYpO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7Zm9udC1zaXplOi42ODc1cmVtO2xpbmUtaGVpZ2h0OjEuNTtsZXR0ZXItc3BhY2luZzouMDRlbX0udGVybS1leGl0LXN1Y2Nlc3N7Y29sb3I6IzZlZTA5YWJmfS50ZXJtLWV4aXQtZXJyb3J7Y29sb3I6I2YwNzE3OGM3fS5pbmxpbmUtZGlmZnttYXJnaW46NHB4IDA7d2lkdGg6MTAwJTttYXgtd2lkdGg6dmFyKC0tY2hhdC1jYXJkLW1heC13aWR0aCwgNzIwcHgpO21pbi13aWR0aDowO2JveC1zaXppbmc6Ym9yZGVyLWJveDtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLXNtKTtvdmVyZmxvdzpoaWRkZW47YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCNmZmZiZjVlMCwjZmZmNmVhYjgpO2JveC1zaGFkb3c6MCAxcHggMnB4ICM1OTNhMjAwYTt0cmFuc2l0aW9uOmJvcmRlci1jb2xvciAuMjJzIGVhc2UsYm94LXNoYWRvdyAuMjJzIGVhc2V9LmlubGluZS1kaWZmOmhvdmVye2JvcmRlci1jb2xvcjojN2Q1YjM5Mzg7Ym94LXNoYWRvdzowIDNweCAxMnB4ICM1OTNhMjAwZn0uZGlmZi1oZWFkZXJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTBweDtwYWRkaW5nOjhweCAxNHB4O2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Zm9udC1zaXplOi44MTI1cmVtO2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMThzIGVhc2U7bWF4LXdpZHRoOjEwMCU7bWluLXdpZHRoOjB9LmRpZmYtaGVhZGVyOmhvdmVye2JhY2tncm91bmQ6I2M1NjUzZDBhfS5kaWZmLXRvZ2dsZXtmb250LXNpemU6LjYyNXJlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuM3MgdmFyKC0tZWFzZS1zcHJpbmcpLGNvbG9yIC4xOHMgZWFzZTtmbGV4LXNocmluazowO21hcmdpbi1sZWZ0OmF1dG87b3BhY2l0eTouNn0uaW5saW5lLWRpZmY6aG92ZXIgLmRpZmYtdG9nZ2xle2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtvcGFjaXR5OjF9LmlubGluZS1kaWZmLmNvbGxhcHNlZCAuZGlmZi10b2dnbGV7dHJhbnNmb3JtOnJvdGF0ZSgtOTBkZWcpfS5pbmxpbmUtZGlmZi5jb2xsYXBzZWQgLmRpZmYtYm9keXttYXgtaGVpZ2h0OjA7b3ZlcmZsb3c6aGlkZGVuO29wYWNpdHk6MDt0cmFuc2l0aW9uOm1heC1oZWlnaHQgLjM1cyB2YXIoLS1lYXNlLW91dC1leHBvKSxvcGFjaXR5IC4yNXMgZWFzZX0uZGlmZi1maWxlLWljb257ZGlzcGxheTpub25lfS5kaWZmLWZpbGUtbmFtZXtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO2ZsZXgtc2hyaW5rOjA7Zm9udC1zaXplOi44MTI1cmVtO2xldHRlci1zcGFjaW5nOi0uMDA1ZW19LmRpZmYtcGF0aHtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2NvbG9yOnZhcigtLXRleHQtdGVydGlhcnkpO2ZsZXg6MTttaW4td2lkdGg6MDtvdmVyZmxvdzpoaWRkZW47d2hpdGUtc3BhY2U6bm93cmFwO2ZvbnQtc2l6ZTouNjg3NXJlbX0uZGlmZi1zdGF0dXN7ZmxleC1zaHJpbms6MDtmb250LXNpemU6LjY4NzVyZW07Zm9udC13ZWlnaHQ6NjAwO3BhZGRpbmc6M3B4IDEwcHg7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtZnVsbCk7bGV0dGVyLXNwYWNpbmc6LjAxZW19LmRpZmYtc3RhdHVzLmRpZmYtc3VjY2Vzc3tiYWNrZ3JvdW5kOnZhcigtLXN1Y2Nlc3MtbXV0ZWQpO2NvbG9yOnZhcigtLXN1Y2Nlc3MpfS5kaWZmLXN0YXR1cy5kaWZmLWVycm9ye2JhY2tncm91bmQ6dmFyKC0tZGFuZ2VyLW11dGVkKTtjb2xvcjp2YXIoLS1kYW5nZXIpfS5kaWZmLXN0YXR1cy5kaWZmLXBlbmRpbmd7YmFja2dyb3VuZDp2YXIoLS13YXJuaW5nLW11dGVkKTtjb2xvcjp2YXIoLS13YXJuaW5nKX0uZGlmZi1ib2R5e292ZXJmbG93OmhpZGRlbjtib3JkZXItdG9wOjFweCBzb2xpZCByZ2JhKDEyNSw5MSw1NywuMDgpO2JhY2tncm91bmQ6I2ZmZmRmOGE2fS5kaWZmLWNvbHVtbnN7ZGlzcGxheTpmbGV4O2dhcDoxcHg7YmFja2dyb3VuZDojN2Q1YjM5MTQ7bWF4LXdpZHRoOjEwMCU7bWluLXdpZHRoOjB9LmRpZmYtY29se2ZsZXg6MSAxIDA7bWluLXdpZHRoOjA7bWF4LXdpZHRoOjEwMCU7YmFja2dyb3VuZDojZmZmZGY4ZDk7b3ZlcmZsb3c6aGlkZGVufS5kaWZmLWNvbC1oYWxme2ZsZXg6MX0uZGlmZi1jb2wtZnVsbHtmbGV4Om5vbmU7d2lkdGg6MTAwJX0uZGlmZi1jb2wtbGFiZWx7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKTtmb250LXNpemU6LjYyNXJlbTtmb250LXdlaWdodDo3MDA7cGFkZGluZzo0cHggMTJweDtjb2xvcjp2YXIoLS10ZXh0LXRlcnRpYXJ5KTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7bGV0dGVyLXNwYWNpbmc6LjA4ZW07YmFja2dyb3VuZDojN2Q1YjM5MGQ7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgcmdiYSgxMjUsOTEsNTcsLjA4KX0uZGlmZi1saW5le3BhZGRpbmc6M3B4IDEycHg7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKTtmb250LXNpemU6Ljc1cmVtO2xpbmUtaGVpZ2h0OjEuNTU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7b3ZlcmZsb3ctd3JhcDphbnl3aGVyZTt3b3JkLWJyZWFrOmJyZWFrLWFsbDttYXgtd2lkdGg6MTAwJTttaW4td2lkdGg6MDtib3gtc2l6aW5nOmJvcmRlci1ib3h9LmRpZmYtYWRke2JhY2tncm91bmQ6IzRmN2E1ODE0O2NvbG9yOiMyYzU1MzU7Ym9yZGVyLWxlZnQ6MnB4IHNvbGlkIHJnYmEoNzksMTIyLDg4LC41KX0uZGlmZi1yZW1vdmV7YmFja2dyb3VuZDojYjI0ZjQ1MGY7Y29sb3I6IzdjMmEyMztib3JkZXItbGVmdDoycHggc29saWQgcmdiYSgxNzgsNzksNjksLjQ1KX0ubWFya2Rvd24tY29udGVudHtjb2xvcjppbmhlcml0O3doaXRlLXNwYWNlOm5vcm1hbDtvdmVyZmxvdy14OmhpZGRlbjttYXgtd2lkdGg6MTAwJTttaW4td2lkdGg6MDtvdmVyZmxvdy13cmFwOmFueXdoZXJlO3dvcmQtYnJlYWs6YnJlYWstd29yZH0ubWFya2Rvd24tY29udGVudCAuY29kZS1ibG9jayBwcmV7b3ZlcmZsb3cteDpoaWRkZW47d2hpdGUtc3BhY2U6cHJlLXdyYXA7d29yZC1icmVhazpicmVhay13b3JkO292ZXJmbG93LXdyYXA6YW55d2hlcmU7bWF4LXdpZHRoOjEwMCU7bWluLXdpZHRoOjB9Lm1hcmtkb3duLWNvbnRlbnQgcHttYXJnaW46MCAwIDhweDtvdmVyZmxvdy13cmFwOmFueXdoZXJlO3dvcmQtYnJlYWs6YnJlYWstd29yZH0ubWFya2Rvd24tY29udGVudCBwOmxhc3QtY2hpbGR7bWFyZ2luLWJvdHRvbTowfS5tYXJrZG93bi1jb250ZW50IHN0cm9uZ3tmb250LXdlaWdodDo2MDB9Lm1hcmtkb3duLWNvbnRlbnQgZW17Zm9udC1zdHlsZTppdGFsaWN9Lm1hcmtkb3duLWNvbnRlbnQgdWwsLm1hcmtkb3duLWNvbnRlbnQgb2x7bWFyZ2luOjhweCAwO3BhZGRpbmctbGVmdDoyMHB4fS5tYXJrZG93bi1jb250ZW50IGxpe21hcmdpbjo0cHggMDtvdmVyZmxvdy13cmFwOmFueXdoZXJlO3dvcmQtYnJlYWs6YnJlYWstd29yZH0ubWFya2Rvd24tY29udGVudCBoMSwubWFya2Rvd24tY29udGVudCBoMiwubWFya2Rvd24tY29udGVudCBoM3ttYXJnaW46MTZweCAwIDhweDtmb250LXdlaWdodDo2MDA7b3ZlcmZsb3ctd3JhcDphbnl3aGVyZTt3b3JkLWJyZWFrOmJyZWFrLXdvcmR9Lm1hcmtkb3duLWNvbnRlbnQgaDF7Zm9udC1zaXplOjEuMjVyZW19Lm1hcmtkb3duLWNvbnRlbnQgaDJ7Zm9udC1zaXplOjEuMXJlbX0ubWFya2Rvd24tY29udGVudCBoM3tmb250LXNpemU6MXJlbX0ubWFya2Rvd24tY29udGVudCBibG9ja3F1b3Rle21hcmdpbjo4cHggMDtwYWRkaW5nOjhweCAxMnB4O2JvcmRlci1sZWZ0OjNweCBzb2xpZCB2YXIoLS1hY2NlbnQpO2JhY2tncm91bmQ6I2M1NjUzZDBmO2JvcmRlci1yYWRpdXM6MCB2YXIoLS1yYWRpdXMtc20pIHZhcigtLXJhZGl1cy1zbSkgMDtvdmVyZmxvdy13cmFwOmFueXdoZXJlO3dvcmQtYnJlYWs6YnJlYWstd29yZH0ubWFya2Rvd24tY29udGVudCBhe292ZXJmbG93LXdyYXA6YW55d2hlcmU7d29yZC1icmVhazpicmVhay1hbGx9Lm1hcmtkb3duLWNvbnRlbnQgaW1ne21heC13aWR0aDoxMDAlO2hlaWdodDphdXRvfS5tYXJrZG93bi1jb250ZW50IGNvZGU6bm90KC5jb2RlLWJsb2NrKTpub3QoLmNvZGUtaW5saW5lKXtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2ZvbnQtc2l6ZTouODEyNXJlbTtiYWNrZ3JvdW5kOiM5Njc2NTUxZjtwYWRkaW5nOjJweCA1cHg7Ym9yZGVyLXJhZGl1czo0cHg7b3ZlcmZsb3ctd3JhcDphbnl3aGVyZTt3b3JkLWJyZWFrOmJyZWFrLWFsbH0ubWFya2Rvd24tY29udGVudCBjb2RlLmNvZGUtaW5saW5le2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7Zm9udC1zaXplOi44MTI1cmVtO2JhY2tncm91bmQ6Izk2NzY1NTFmO3BhZGRpbmc6MnB4IDVweDtib3JkZXItcmFkaXVzOjRweDtvdmVyZmxvdy13cmFwOmFueXdoZXJlO3dvcmQtYnJlYWs6YnJlYWstYWxsfS5tYXJrZG93bi1jb250ZW50IC5tZC10YWJsZS13cmFwe21hcmdpbjoxMnB4IDA7bWF4LXdpZHRoOjEwMCU7bWluLXdpZHRoOjA7b3ZlcmZsb3cteDphdXRvO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyKTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1zbSk7LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2h9Lm1hcmtkb3duLWNvbnRlbnQgLm1kLXRhYmxle2JvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTt3aWR0aDoxMDAlO3RhYmxlLWxheW91dDpmaXhlZDtmb250LXNpemU6LjgxMjVyZW07d2hpdGUtc3BhY2U6bm9ybWFsfS5tYXJrZG93bi1jb250ZW50IC5tZC10YWJsZSB0aCwubWFya2Rvd24tY29udGVudCAubWQtdGFibGUgdGR7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO3BhZGRpbmc6NnB4IDEwcHg7dGV4dC1hbGlnbjpsZWZ0O3ZlcnRpY2FsLWFsaWduOnRvcDtvdmVyZmxvdy13cmFwOmFueXdoZXJlO3dvcmQtYnJlYWs6YnJlYWstd29yZH0ubWFya2Rvd24tY29udGVudCAubWQtdGFibGUgdGh7YmFja2dyb3VuZDojOTY3NjU1MWE7Zm9udC13ZWlnaHQ6NjAwfS5tYXJrZG93bi1jb250ZW50IC5tZC10YWJsZSB0Ym9keSB0cjpudGgtY2hpbGQoMm4pe2JhY2tncm91bmQ6Izk2NzY1NTBhfS5tYXJrZG93bi1jb250ZW50IC5jb2RlLWJsb2Nre21hcmdpbjoxMnB4IDA7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtbWQpO292ZXJmbG93OmhpZGRlbjtiYWNrZ3JvdW5kOiMxZjFiMTc7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDEyMiw5MSw2NCwuMzUpO2JveC1zaGFkb3c6MCAycHggOHB4ICMwMDAwMDAyNn0ubWFya2Rvd24tY29udGVudCAuY29kZS1ibG9jay1oZWFkZXJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtwYWRkaW5nOjZweCAxMnB4O2JhY2tncm91bmQ6IzdhNWI0MDMzO2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHJnYmEoMTIyLDkxLDY0LC4yKTtnYXA6OHB4fS5tYXJrZG93bi1jb250ZW50IC5jb2RlLWxhbmd7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKTtmb250LXNpemU6LjdyZW07Y29sb3I6IzhjNzM1Zjt0ZXh0LXRyYW5zZm9ybTpsb3dlcmNhc2U7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS5tYXJrZG93bi1jb250ZW50IC5jb2RlLWNvcHl7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1zYW5zKTtmb250LXNpemU6LjdyZW07cGFkZGluZzo0cHggMTBweDtib3JkZXItcmFkaXVzOjZweDtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsLjE1KTtiYWNrZ3JvdW5kOiNmZmZmZmYxYTtjb2xvcjojZDljNGIwO2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246YWxsIHZhcigtLXRyYW5zaXRpb24tZmFzdCk7d2hpdGUtc3BhY2U6bm93cmFwO2ZsZXgtc2hyaW5rOjB9Lm1hcmtkb3duLWNvbnRlbnQgLmNvZGUtY29weTpob3ZlcntiYWNrZ3JvdW5kOiNmZmZmZmYyZTtjb2xvcjojZmZmO2JvcmRlci1jb2xvcjojZmZmZmZmNDB9Lm1hcmtkb3duLWNvbnRlbnQgLmNvZGUtY29weS5jb3BpZWR7Y29sb3I6IzdmYTM2Zjtib3JkZXItY29sb3I6IzdmYTM2ZjgwO2JhY2tncm91bmQ6IzdmYTM2ZjI2fS5tYXJrZG93bi1jb250ZW50IHByZXttYXJnaW46MDtwYWRkaW5nOjEycHg7b3ZlcmZsb3cteDpoaWRkZW47d2hpdGUtc3BhY2U6cHJlLXdyYXA7d29yZC1icmVhazpicmVhay13b3JkO292ZXJmbG93LXdyYXA6YW55d2hlcmU7bWF4LXdpZHRoOjEwMCU7bWluLXdpZHRoOjB9Lm1hcmtkb3duLWNvbnRlbnQgcHJlIGNvZGV7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKTtmb250LXNpemU6LjgxMjVyZW07bGluZS1oZWlnaHQ6MS41O2NvbG9yOiNmNWVhZGM7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtwYWRkaW5nOjA7bWF4LXdpZHRoOjEwMCU7ZGlzcGxheTpibG9ja30uaW5wdXQtcGFuZWx7cGFkZGluZzo2cHggMTBweDtwYWRkaW5nLWJvdHRvbTpjYWxjKDZweCArIHZhcigtLWlucHV0LXNhZmUtYm90dG9tLCB2YXIoLS1zYWZlLWJvdHRvbSwgMHB4KSkpO2ZsZXgtc2hyaW5rOjA7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoyNjtvdmVyc2Nyb2xsLWJlaGF2aW9yOmNvbnRhaW47dG91Y2gtYWN0aW9uOnBhbi15O2JvcmRlci10b3A6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpO3RyYW5zaXRpb246b3BhY2l0eSAuMnMgZWFzZSx2aXNpYmlsaXR5IDBzfS5pbnB1dC1jb21wb3NlcntiYWNrZ3JvdW5kOiNmZmZmZmZlMDtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1kZWZhdWx0KTtib3JkZXItcmFkaXVzOjIycHg7dHJhbnNpdGlvbjpib3JkZXItY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KSxib3gtc2hhZG93IHZhcigtLXRyYW5zaXRpb24tZmFzdCksYmFja2dyb3VuZCB2YXIoLS10cmFuc2l0aW9uLWZhc3QpO292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZTtvdmVyc2Nyb2xsLWJlaGF2aW9yOmNvbnRhaW59LmlucHV0LWNvbXBvc2VyOmZvY3VzLXdpdGhpbntib3JkZXItY29sb3I6dmFyKC0tYWNjZW50KTtib3gtc2hhZG93OjAgMCAwIDJweCB2YXIoLS1hY2NlbnQtbXV0ZWQpLDAgMCAxNnB4ICNjNTY1M2QxNDtiYWNrZ3JvdW5kOiNmZmZmZmZmYX0uY29tcG9zZXItc3RhdHVzLXJvd3tkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2cHg7ZmxleC13cmFwOndyYXA7cGFkZGluZzowIDEwcHg7bWluLWhlaWdodDowO3RyYW5zaXRpb246cGFkZGluZyB2YXIoLS10cmFuc2l0aW9uLWZhc3QpfS5jb21wb3Nlci1zdGF0dXMtcm93Pip7ZmxleC1zaHJpbms6MH0uY29tcG9zZXItc3RhdHVzLXJvdzpoYXMoPio6bm90KC5oaWRkZW4pKXtwYWRkaW5nLXRvcDo2cHg7cGFkZGluZy1ib3R0b206MH1Ac3VwcG9ydHMgbm90IHNlbGVjdG9yKDpoYXMoKikpey5jb21wb3Nlci1zdGF0dXMtcm93Om5vdCg6ZW1wdHkpe3BhZGRpbmctdG9wOjRweH19LmNvbXBvc2VyLW1haW4tcm93e2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjRweDtwYWRkaW5nOjRweCA2cHg7bWluLWhlaWdodDo0NHB4fS5jb21wb3Nlci1hY3Rpb25zLWxlZnQsLmNvbXBvc2VyLWFjdGlvbnMtcmlnaHR7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MnB4O2ZsZXgtc2hyaW5rOjB9LmNvbXBvc2VyLWlucHV0LXdyYXB7cG9zaXRpb246cmVsYXRpdmU7ZmxleDoxIDEgYXV0bzttaW4td2lkdGg6MDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyfS5jb21wb3Nlci1pbmxpbmUtY29uZmlne2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7ZmxleDowIDEgYXV0bzttaW4td2lkdGg6MDtnYXA6NHB4fS5jb21wb3Nlci1jb25maWctY29udHJvbHN7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjRweDttaW4td2lkdGg6MH0uY29tcG9zZXItY29uZmlnLWNoaXAsLmNvbXBvc2VyLWNvbmZpZy1wYXJ0e3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Z2FwOjRweDttaW4taGVpZ2h0OjI4cHg7Ym94LXNpemluZzpib3JkZXItYm94O2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTt1c2VyLXNlbGVjdDpub25lO3doaXRlLXNwYWNlOm5vd3JhcH0uY29tcG9zZXItY29uZmlnLWNoaXB7bWF4LXdpZHRoOjc2cHg7cGFkZGluZzowIDhweDtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpO2JvcmRlci1yYWRpdXM6OTk5cHg7YmFja2dyb3VuZDojZjZmMWU4Yjg7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIHZhcigtLXRyYW5zaXRpb24tZmFzdCksYm9yZGVyLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCksY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KX0uY29tcG9zZXItY29uZmlnLWNoaXAtbW9kZXtjb2xvcjp2YXIoLS1hY2NlbnQpO2JhY2tncm91bmQ6I2M1NjUzZDFhO2JvcmRlci1jb2xvcjojYzU2NTNkMzh9LmNvbXBvc2VyLWNvbmZpZy1tb2RlbC10aGlua2luZ3tkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOnN0cmV0Y2g7ZmxleDowIDEgYXV0bzttaW4td2lkdGg6MDtvdmVyZmxvdzpoaWRkZW47Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDE5NywxMDEsNjEsLjE4KTtib3JkZXItcmFkaXVzOjk5OXB4O2JhY2tncm91bmQ6I2ZmZjhmMmQxO2NvbG9yOnZhcigtLWFjY2VudCk7dHJhbnNpdGlvbjpib3JkZXItY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KSxiYWNrZ3JvdW5kIHZhcigtLXRyYW5zaXRpb24tZmFzdCl9LmNvbXBvc2VyLWNvbmZpZy1jaGlwOmhvdmVyLC5jb21wb3Nlci1jb25maWctY2hpcDpmb2N1cy13aXRoaW4sLmNvbXBvc2VyLWNvbmZpZy1tb2RlbC10aGlua2luZzpob3ZlciwuY29tcG9zZXItY29uZmlnLW1vZGVsLXRoaW5raW5nOmZvY3VzLXdpdGhpbntib3JkZXItY29sb3I6dmFyKC0tYWNjZW50KTtiYWNrZ3JvdW5kOiNmZmY4ZjJmNX0uY29tcG9zZXItY29uZmlnLXBhcnR7bWluLXdpZHRoOjA7cGFkZGluZzowIDdweDtjdXJzb3I6cG9pbnRlcn0uY29tcG9zZXItY29uZmlnLW1vZGVse21heC13aWR0aDo5MnB4fS5jb21wb3Nlci1jb25maWctdGhpbmtpbmd7bWluLXdpZHRoOjQycHg7Y29sb3I6I2E5NjUyZH0uY29tcG9zZXItY29uZmlnLXRoaW5raW5nW2RhdGEtdGhpbmtpbmc9b2ZmXXtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKX0uY29tcG9zZXItY29uZmlnLXRoaW5raW5nW2RhdGEtdGhpbmtpbmc9c3RhbmRhcmRde2NvbG9yOiM1ZDhhNjZ9LmNvbXBvc2VyLWNvbmZpZy10aGlua2luZ1tkYXRhLXRoaW5raW5nPWRlZXBde2NvbG9yOiNiMTZhMmZ9LmNvbXBvc2VyLWNvbmZpZy10aGlua2luZ1tkYXRhLXRoaW5raW5nPW1heF17Y29sb3I6I2M1NTI0OH0uY29tcG9zZXItY29uZmlnLXBhcnQrLmNvbXBvc2VyLWNvbmZpZy1wYXJ0e2JvcmRlci1sZWZ0OjFweCBzb2xpZCByZ2JhKDE5NywxMDEsNjEsLjE0KX0uY29tcG9zZXItY29uZmlnLWljb257ZmxleDowIDAgYXV0bzt3aWR0aDoxM3B4O2hlaWdodDoxM3B4fS5jb21wb3Nlci1jb25maWctbGFiZWx7bWluLXdpZHRoOjA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7Zm9udC1zaXplOi43MnJlbTtmb250LXdlaWdodDo2MDA7bGluZS1oZWlnaHQ6MX0uY29tcG9zZXItdGV4dC1waWxse3Bvc2l0aW9uOnJlbGF0aXZlO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtc2Fucyk7Zm9udC1zaXplOi43cmVtO2ZvbnQtd2VpZ2h0OjUwMDtsaW5lLWhlaWdodDoxO3BhZGRpbmc6MnB4O2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtjdXJzb3I6cG9pbnRlcjt0cmFuc2l0aW9uOmNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCk7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt3aGl0ZS1zcGFjZTpub3dyYXA7Ym94LXNpemluZzpib3JkZXItYm94O3VzZXItc2VsZWN0Om5vbmU7bWF4LXdpZHRoOjExMHB4O2xldHRlci1zcGFjaW5nOi4wMWVtfS5jb21wb3Nlci10ZXh0LXBpbGw6aG92ZXIsLmNvbXBvc2VyLXRleHQtcGlsbDpmb2N1cy13aXRoaW57Y29sb3I6dmFyKC0tYWNjZW50KX0uY29tcG9zZXItdGV4dC1sYWJlbHtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczttYXgtd2lkdGg6MTAwJX0uY29tcG9zZXItdGV4dC1oaWRkZW4tc2VsZWN0e3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTttYXJnaW46MDtwYWRkaW5nOjA7Ym9yZGVyOjA7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtjb2xvcjp0cmFuc3BhcmVudDtmb250OmluaGVyaXQ7b3BhY2l0eTowO2N1cnNvcjpwb2ludGVyO2FwcGVhcmFuY2U6bm9uZTstd2Via2l0LWFwcGVhcmFuY2U6bm9uZX0uY29tcG9zZXItdGV4dC1oaWRkZW4tc2VsZWN0OmZvY3Vze291dGxpbmU6bm9uZX0uY29tcG9zZXItdGV4dC1zZXB7Y29sb3I6dmFyKC0tdGV4dC10ZXJ0aWFyeSwgI2I1YTg5YSk7Zm9udC1zaXplOi43cmVtO2xpbmUtaGVpZ2h0OjE7dXNlci1zZWxlY3Q6bm9uZTtwb2ludGVyLWV2ZW50czpub25lO29wYWNpdHk6LjY1fS5wZXJtaXNzaW9uLWFjdGlvbnN7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjRweDthbmltYXRpb246cGVybWlzc2lvbi1mYWRlLWluIC4ycyBlYXNlLW91dH0ucGVybWlzc2lvbi1hY3Rpb25zLmhpZGRlbntkaXNwbGF5Om5vbmV9LnBlcm1pc3Npb24tYWN0aW9ucy1sYWJlbHtmb250LXNpemU6LjdyZW07Y29sb3I6I2QxOGIwMDttYXgtd2lkdGg6MTgwcHg7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwfS5idG4tcGVybWlzc2lvbntmb250LXNpemU6LjY1cmVtO3BhZGRpbmc6MXB4IDhweDtib3JkZXItcmFkaXVzOjRweDtib3JkZXI6MXB4IHNvbGlkIHRyYW5zcGFyZW50O2N1cnNvcjpwb2ludGVyO2xpbmUtaGVpZ2h0OjEuNDtmb250LXdlaWdodDo1MDA7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4xNXMsYm9yZGVyLWNvbG9yIC4xNXN9LmJ0bi1wZXJtaXNzaW9uOmRpc2FibGVke29wYWNpdHk6LjU7Y3Vyc29yOm5vdC1hbGxvd2VkfS5idG4tcGVybWlzc2lvbi1hcHByb3Zle2JhY2tncm91bmQ6I2YwYTUwMDI2O2NvbG9yOiNkMThiMDA7Ym9yZGVyLWNvbG9yOiNmMGE1MDA0ZH0uYnRuLXBlcm1pc3Npb24tYXBwcm92ZTpob3Zlcjpub3QoOmRpc2FibGVkKXtiYWNrZ3JvdW5kOiNmMGE1MDA0MH0uYnRuLXBlcm1pc3Npb24tZGVueXtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2JvcmRlci1jb2xvcjp2YXIoLS1ib3JkZXIpfS5idG4tcGVybWlzc2lvbi1kZW55OmhvdmVyOm5vdCg6ZGlzYWJsZWQpe2JhY2tncm91bmQ6I2RjMzIzMjE0O2NvbG9yOnZhcigtLWRhbmdlcik7Ym9yZGVyLWNvbG9yOiNkYzMyMzI0ZH1Aa2V5ZnJhbWVzIHBlcm1pc3Npb24tZmFkZS1pbnswJXtvcGFjaXR5OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNHB4KX10b3tvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZSgwKX19LmF1dG8tYXBwcm92ZS1pbmRpY2F0b3IuYWN0aXZle2NvbG9yOiMyMmM1NWU7Ym9yZGVyLWNvbG9yOiMyMmM1NWU4MDtiYWNrZ3JvdW5kOiMyMmM1NWUxZn0uYXV0by1hcHByb3ZlLWluZGljYXRvci5hY3RpdmU6aG92ZXJ7YmFja2dyb3VuZDojMjJjNTVlMzM7Ym9yZGVyLWNvbG9yOiMyMmM1NWV9LmFwcHJvdmFsLXN0YXRze2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO3Bvc2l0aW9uOnJlbGF0aXZlfS5hcHByb3ZhbC1zdGF0cy5oaWRkZW57ZGlzcGxheTpub25lfS5hcHByb3ZhbC1zdGF0cy1kaXZpZGVye3dpZHRoOjA7aGVpZ2h0OjE2cHg7bWFyZ2luOjAgMXB4fS5hcHByb3ZhbC1zdGF0cy1iYWRnZXtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6M3B4O21pbi1oZWlnaHQ6MjJweDtwYWRkaW5nOjFweCA4cHg7Ym9yZGVyLXJhZGl1czoxMHB4O2JhY2tncm91bmQ6IzIyYzU1ZTFhO2NvbG9yOiMyMmM1NWU7Zm9udC1zaXplOi42MjVyZW07Zm9udC13ZWlnaHQ6NjAwO2N1cnNvcjpkZWZhdWx0O3RyYW5zaXRpb246YmFja2dyb3VuZCAuMTVzO2xpbmUtaGVpZ2h0OjE7Ym94LXNpemluZzpib3JkZXItYm94fS5hcHByb3ZhbC1zdGF0cy1iYWRnZTpob3ZlcntiYWNrZ3JvdW5kOiMyMmM1NWUyZX0uYXBwcm92YWwtc3RhdHMtaWNvbntzdHJva2U6IzIyYzU1ZTtmbGV4LXNocmluazowfS5hcHByb3ZhbC1zdGF0cy10b3RhbHtmb250LXZhcmlhbnQtbnVtZXJpYzp0YWJ1bGFyLW51bXN9QGtleWZyYW1lcyBhcHByb3ZhbC1wdWxzZXswJXt0cmFuc2Zvcm06c2NhbGUoMSl9NTAle3RyYW5zZm9ybTpzY2FsZSgxLjE1KX10b3t0cmFuc2Zvcm06c2NhbGUoMSl9fS5hcHByb3ZhbC1zdGF0cy1wdWxzZXthbmltYXRpb246YXBwcm92YWwtcHVsc2UgLjNzIGVhc2Utb3V0fS5hcHByb3ZhbC1zdGF0cy1wb3B1cHtkaXNwbGF5Om5vbmU7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOmNhbGMoMTAwJSArIDZweCk7bGVmdDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlKTtiYWNrZ3JvdW5kOnZhcigtLWJnLWVsZXZhdGVkLCAjMWUxZTJlKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlcik7Ym9yZGVyLXJhZGl1czo4cHg7cGFkZGluZzo4cHggMTBweDttaW4td2lkdGg6MTQwcHg7Ym94LXNoYWRvdzowIDRweCAxNnB4ICMwMDAwMDA0MDt6LWluZGV4OjEwMDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjRweH0uYXBwcm92YWwtc3RhdHM6aG92ZXIgLmFwcHJvdmFsLXN0YXRzLXBvcHVwe2Rpc3BsYXk6ZmxleH0uYXBwcm92YWwtc3RhdHMtcG9wdXAtdGl0bGV7Zm9udC1zaXplOi42NXJlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtmb250LXdlaWdodDo1MDA7bWFyZ2luLWJvdHRvbToycHg7d2hpdGUtc3BhY2U6bm93cmFwfS5hcHByb3ZhbC1zdGF0cy1yb3d7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NnB4O2ZvbnQtc2l6ZTouN3JlbTtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSwgI2NjYyk7d2hpdGUtc3BhY2U6bm93cmFwfS5hcHByb3ZhbC1zdGF0cy1yb3ctaWNvbnt3aWR0aDoxNnB4O3RleHQtYWxpZ246Y2VudGVyO2ZsZXgtc2hyaW5rOjA7Zm9udC1zaXplOi43MnJlbX0uYXBwcm92YWwtc3RhdHMtcm93LWxhYmVse2ZsZXg6MX0uYXBwcm92YWwtc3RhdHMtcm93LWNvdW50e2ZvbnQtd2VpZ2h0OjYwMDtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnksICNlZWUpO2ZvbnQtdmFyaWFudC1udW1lcmljOnRhYnVsYXItbnVtczttaW4td2lkdGg6MjBweDt0ZXh0LWFsaWduOnJpZ2h0fS5hcHByb3ZhbC1zdGF0cy1yb3ctdG90YWx7Ym9yZGVyLXRvcDoxcHggc29saWQgdmFyKC0tYm9yZGVyKTtwYWRkaW5nLXRvcDo0cHg7bWFyZ2luLXRvcDoycHg7Y29sb3I6IzIyYzU1ZX0uYXBwcm92YWwtc3RhdHMtcm93LXRvdGFsIC5hcHByb3ZhbC1zdGF0cy1yb3ctY291bnR7Y29sb3I6IzIyYzU1ZX0ucXVldWUtYmFyey0tcWItYmc6IHJnYmEoMjU1LCAyNTUsIDI1NSwgLjE0KTstLXFiLWJnLXN0cm9uZzogcmdiYSgyNTUsIDI1NSwgMjU1LCAuMjIpOy0tcWItYm9yZGVyOiByZ2JhKDI1NSwgMjU1LCAyNTUsIC4yNCk7LS1xYi10ZXh0OiB2YXIoLS10ZXh0LXByaW1hcnksICMxZjFkMWEpOy0tcWItdGV4dC1tdXRlZDogdmFyKC0tdGV4dC1tdXRlZCwgIzZiNjU1Yyk7LS1xYi1zaGFkb3c6IDAgNHB4IDE4cHggcmdiYSgwLCAwLCAwLCAuMSksIDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIC4wNik7LS1xYi1zaGFkb3ctaG92ZXI6IDAgOHB4IDI0cHggcmdiYSgwLCAwLCAwLCAuMTQpLCAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAuMDYpfVtkYXRhLXRoZW1lPWRhcmtdIC5xdWV1ZS1iYXIsLnRoZW1lLWRhcmsgLnF1ZXVlLWJhcnstLXFiLWJnOiByZ2JhKDQwLCAzOCwgMzQsIC42KTstLXFiLWJnLXN0cm9uZzogcmdiYSg2MCwgNTYsIDUwLCAuNzQpOy0tcWItYm9yZGVyOiByZ2JhKDI1NSwgMjU1LCAyNTUsIC4xMil9LmlucHV0LXBhbmVsPi5xdWV1ZS1iYXItaG9zdHtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDoxMHB4O2xlZnQ6YXV0bztib3R0b206Y2FsYygxMDAlICsgNnB4KTt6LWluZGV4OjMwO21heC13aWR0aDptaW4oNDQwcHgsY2FsYygxMDAlIC0gMjBweCkpO3BvaW50ZXItZXZlbnRzOm5vbmV9LnF1ZXVlLWJhci1ob3N0W2hpZGRlbl17ZGlzcGxheTpub25lfS5xdWV1ZS1iYXJ7cG9pbnRlci1ldmVudHM6bm9uZTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmZsZXgtZW5kO2dhcDo1cHg7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXI6bm9uZTtib3gtc2hhZG93Om5vbmU7cGFkZGluZzowO21hcmdpbjowfUBrZXlmcmFtZXMgcXVldWVCYXJJdGVtRW50ZXJ7MCV7b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDZweCkgc2NhbGUoLjk2KX10b3tvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCkgc2NhbGUoMSl9fS5xdWV1ZS1iYXItaGVhZHtwb2ludGVyLWV2ZW50czphdXRvO2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo4cHg7cGFkZGluZzozcHggNnB4IDNweCAxMHB4O2JhY2tncm91bmQ6dmFyKC0tcWItYmcpO2JhY2tkcm9wLWZpbHRlcjpibHVyKDIwcHgpIHNhdHVyYXRlKDE4MCUpOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOmJsdXIoMjBweCkgc2F0dXJhdGUoMTgwJSk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1xYi1ib3JkZXIpO2JvcmRlci1yYWRpdXM6MTNweDtib3gtc2hhZG93OnZhcigtLXFiLXNoYWRvdyksaW5zZXQgMCAxcHggI2ZmZjM7YW5pbWF0aW9uOnF1ZXVlQmFySXRlbUVudGVyIC4yMnMgY3ViaWMtYmV6aWVyKC4yLC44LC4yLDEpIGJvdGh9LnF1ZXVlLWJhci1oZWFkLWNvdW50e2ZvbnQtc2l6ZToxMC41cHg7Zm9udC13ZWlnaHQ6NjAwO2NvbG9yOnZhcigtLXFiLXRleHQtbXV0ZWQpO2xldHRlci1zcGFjaW5nOi4wMmVtO3VzZXItc2VsZWN0Om5vbmU7d2hpdGUtc3BhY2U6bm93cmFwfS5xdWV1ZS1iYXItY2xlYXItYWxse2ZvbnQtc2l6ZToxMXB4O3BhZGRpbmc6MnB4IDlweDtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2JvcmRlcjoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuMik7Y29sb3I6dmFyKC0tcWItdGV4dC1tdXRlZCk7Ym9yZGVyLXJhZGl1czoxMHB4O2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMTVzIGVhc2UsY29sb3IgLjE1cyBlYXNlLGJvcmRlci1jb2xvciAuMTVzIGVhc2V9LnF1ZXVlLWJhci1jbGVhci1hbGw6aG92ZXJ7YmFja2dyb3VuZDojZGM1MDQ2MWY7Ym9yZGVyLWNvbG9yOiNkYzUwNDY1OTtjb2xvcjojZDg0ODNjfS5xdWV1ZS1iYXItbGlzdHtsaXN0LXN0eWxlOm5vbmU7bWFyZ2luOjA7cGFkZGluZzowO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6ZmxleC1lbmQ7Z2FwOjVweDt3aWR0aDoxMDAlfS5xdWV1ZS1iYXItaXRlbXtwb2ludGVyLWV2ZW50czphdXRvO2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2cHg7cGFkZGluZzo0cHggNnB4IDRweCA1cHg7bWF4LXdpZHRoOjEwMCU7Ym94LXNpemluZzpib3JkZXItYm94O2JhY2tncm91bmQ6dmFyKC0tcWItYmcpO2JhY2tkcm9wLWZpbHRlcjpibHVyKDIwcHgpIHNhdHVyYXRlKDE4MCUpOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOmJsdXIoMjBweCkgc2F0dXJhdGUoMTgwJSk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1xYi1ib3JkZXIpO2JvcmRlci1yYWRpdXM6MTVweDtib3gtc2hhZG93OnZhcigtLXFiLXNoYWRvdyksaW5zZXQgMCAxcHggI2ZmZjM7Zm9udC1zaXplOjEycHg7bGluZS1oZWlnaHQ6MS4zNTtjb2xvcjp2YXIoLS1xYi10ZXh0KTtjdXJzb3I6Z3JhYjt1c2VyLXNlbGVjdDpub25lO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMThzIGVhc2UsdHJhbnNmb3JtIC4xOHMgZWFzZSxib3gtc2hhZG93IC4xOHMgZWFzZTthbmltYXRpb246cXVldWVCYXJJdGVtRW50ZXIgLjIycyBjdWJpYy1iZXppZXIoLjIsLjgsLjIsMSkgYm90aH0ucXVldWUtYmFyLWl0ZW06aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS1xYi1iZy1zdHJvbmcpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xcHgpO2JveC1zaGFkb3c6dmFyKC0tcWItc2hhZG93LWhvdmVyKSxpbnNldCAwIDFweCAjZmZmZmZmNDB9LnF1ZXVlLWJhci1pdGVtLmRyYWdnaW5ne2N1cnNvcjpncmFiYmluZzt0cmFuc2Zvcm06c2NhbGUoMS4wNCk7Ym94LXNoYWRvdzowIDhweCAyMnB4ICMwMDAzO3otaW5kZXg6NTA7b3BhY2l0eTouOTR9LnF1ZXVlLWJhci1pdGVtLXNsaWRpbmd7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjE2cyBjdWJpYy1iZXppZXIoLjIsLjcsLjIsMSl9LnF1ZXVlLWJhci1pdGVtLWluZGV4e2ZsZXg6MCAwIGF1dG87d2lkdGg6MThweDtoZWlnaHQ6MThweDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7YmFja2dyb3VuZDp2YXIoLS1hY2NlbnQsICNjNTY1M2QpO2NvbG9yOnZhcigtLXRleHQtaW52ZXJzZSwgI2ZmZik7Ym9yZGVyLXJhZGl1czo1MCU7Zm9udC1zaXplOjEwcHg7Zm9udC13ZWlnaHQ6NzAwO2xpbmUtaGVpZ2h0OjF9LnF1ZXVlLWJhci1pdGVtLXRleHR7ZmxleDoxIDEgYXV0bzttaW4td2lkdGg6MDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXA7Y29sb3I6dmFyKC0tcWItdGV4dCk7Zm9udC13ZWlnaHQ6NTAwfS5xdWV1ZS1iYXItaXRlbS1wcm9tb3RlLC5xdWV1ZS1iYXItaXRlbS1kZWxldGV7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt3aWR0aDoyNHB4O2hlaWdodDoyNHB4O2JvcmRlcjpub25lO2JhY2tncm91bmQ6I2ZmZmZmZjI5O2NvbG9yOnZhcigtLXFiLXRleHQpO2JvcmRlci1yYWRpdXM6NTAlO2N1cnNvcjpwb2ludGVyO2ZsZXg6MCAwIGF1dG87dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4xNXMgZWFzZSx0cmFuc2Zvcm0gLjE1cyBlYXNlLGNvbG9yIC4xNXMgZWFzZSxmaWx0ZXIgLjE1cyBlYXNlO3BhZGRpbmc6MH0ucXVldWUtYmFyLWl0ZW0tcHJvbW90ZXtiYWNrZ3JvdW5kOnZhcigtLWFjY2VudCwgI2M1NjUzZCk7Y29sb3I6dmFyKC0tdGV4dC1pbnZlcnNlLCAjZmZmKX0ucXVldWUtYmFyLWl0ZW0tcHJvbW90ZTpob3ZlcntmaWx0ZXI6YnJpZ2h0bmVzcygxLjA4KTt0cmFuc2Zvcm06c2NhbGUoMS4wNil9LnF1ZXVlLWJhci1pdGVtLWRlbGV0ZTpob3ZlcntiYWNrZ3JvdW5kOiNkYzUwNDYyZTtjb2xvcjojZDg0ODNjfS5xdWV1ZS1iYXItaXRlbS1kZWxldGU6YWN0aXZlLC5xdWV1ZS1iYXItaXRlbS1wcm9tb3RlOmFjdGl2ZXt0cmFuc2Zvcm06c2NhbGUoLjk0KX0ucXVldWUtYmFyLWl0ZW0tcHJvbW90ZSBzdmcsLnF1ZXVlLWJhci1pdGVtLWRlbGV0ZSBzdmd7ZmxleC1zaHJpbms6MH0ucXVldWUtYmFyLnF1ZXVlLWJhci1jYXBhY2l0eSAucXVldWUtYmFyLWl0ZW17LS1xYi1iZzogcmdiYSgyMjAsIDEyMCwgNjAsIC4yKTstLXFiLWJnLXN0cm9uZzogcmdiYSgyMjAsIDEyMCwgNjAsIC4yOCl9LnF1ZXVlLWJhci5xdWV1ZS1iYXItaW5mbGlnaHQgLnF1ZXVlLWJhci1pdGVte2JveC1zaGFkb3c6dmFyKC0tcWItc2hhZG93KSxpbnNldCAwIDFweCAjZmZmZmZmNDAsMCAwIDAgMXB4ICNjNTY1M2QyZX1AbWVkaWEobWF4LXdpZHRoOjU2MHB4KXsuaW5wdXQtcGFuZWw+LnF1ZXVlLWJhci1ob3N0e3JpZ2h0OjhweDttYXgtd2lkdGg6Y2FsYygxMDAlIC0gMTZweCl9fS5pbnB1dC1oaW50e2ZvbnQtc2l6ZTouNXJlbTtsaW5lLWhlaWdodDoxLjI7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7d2hpdGUtc3BhY2U6bm93cmFwO3VzZXItc2VsZWN0Om5vbmU7b3BhY2l0eTouNzttYXgtd2lkdGg6MzhjaDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpc30uY29tcG9zZXItdG9wLXJvd3twb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo4cHg7bWluLXdpZHRoOjB9LmNvbXBvc2VyLXRvcC1yb3c6aGFzKD4udG9kby1wcm9ncmVzczpub3QoLmhpZGRlbikpLC5jb21wb3Nlci10b3Atcm93Omhhcyg+LnN0cnVjdHVyZWQtc3RhdHVzLWJhcil7bWFyZ2luLWJvdHRvbTo2cHh9LnRvZG8tcHJvZ3Jlc3N7bWFyZ2luLWJvdHRvbTo2cHg7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtvdmVyZmxvdzpoaWRkZW47dHJhbnNpdGlvbjphbGwgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KX0udG9kby1wcm9ncmVzcy5oaWRkZW57ZGlzcGxheTpub25lfS5jb21wb3Nlci10b3Atcm93Pi50b2RvLXByb2dyZXNze2ZsZXg6MTttaW4td2lkdGg6MDttYXJnaW4tYm90dG9tOjB9LnRvZG8tcHJvZ3Jlc3MtaGVhZGVye3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47cGFkZGluZzo0cHggOHB4O2N1cnNvcjpwb2ludGVyO3VzZXItc2VsZWN0Om5vbmU7Z2FwOjhweDtib3JkZXItcmFkaXVzOjEwcHg7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIHZhcigtLXRyYW5zaXRpb24tZmFzdCl9LnRvZG8tcHJvZ3Jlc3MtaGVhZGVyOmhvdmVye2JhY2tncm91bmQ6I2M1NjUzZDE0fS50b2RvLXByb2dyZXNzLWxlZnR7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6OHB4O21pbi13aWR0aDowO2ZsZXgtc2hyaW5rOjA7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoxfS50b2RvLXByb2dyZXNzLXJpbmd7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt3aWR0aDoxNnB4O2hlaWdodDoxNnB4O21pbi13aWR0aDoxNnB4O2ZsZXgtc2hyaW5rOjB9LnRvZG8tcHJvZ3Jlc3MtcmluZyBzdmd7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTt0cmFuc2Zvcm06cm90YXRlKC05MGRlZyl9LnRvZG8tcmluZy10cmFja3tzdHJva2U6I2M1NjUzZDJlfS50b2RvLXJpbmctZmlsbHtzdHJva2U6dmFyKC0tYWNjZW50KTtzdHJva2UtZGFzaGFycmF5Ojk3LjM5O3N0cm9rZS1kYXNob2Zmc2V0OmNhbGMoOTcuMzkgKiAoMSAtIHZhcigtLXByb2dyZXNzLCAwKSkpO3RyYW5zaXRpb246c3Ryb2tlLWRhc2hvZmZzZXQgLjM1cyBlYXNlfS50b2RvLXByb2dyZXNzLXJpbmc6YWZ0ZXJ7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDo0cHg7aGVpZ2h0OjRweDtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOnZhcigtLWFjY2VudCk7b3BhY2l0eTouNjthbmltYXRpb246cmluZ1B1bHNlIDEuNHMgZWFzZS1pbi1vdXQgaW5maW5pdGV9QGtleWZyYW1lcyByaW5nUHVsc2V7MCUsdG97b3BhY2l0eTouMzU7dHJhbnNmb3JtOnNjYWxlKC44NSl9NTAle29wYWNpdHk6Ljk1O3RyYW5zZm9ybTpzY2FsZSgxLjA1KX19LnRvZG8tcHJvZ3Jlc3MtY291bnRlcntmb250LXNpemU6Ljc1cmVtO2ZvbnQtd2VpZ2h0OjYwMDtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO3doaXRlLXNwYWNlOm5vd3JhcDtmb250LXZhcmlhbnQtbnVtZXJpYzp0YWJ1bGFyLW51bXN9LnRvZG8tcHJvZ3Jlc3MtZmlsbHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7Ym90dG9tOjA7d2lkdGg6Y2FsYyh2YXIoLS1wcm9ncmVzcywgMCkgKiAxMDAlKTtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCh0byByaWdodCwjYzU2NTNkNDcsI2M1NjUzZDFhKTtib3JkZXItcmFkaXVzOjEwcHggMCAwIDEwcHg7dHJhbnNpdGlvbjp3aWR0aCAuMzVzIGVhc2U7cG9pbnRlci1ldmVudHM6bm9uZTt6LWluZGV4OjB9LnRvZG8tcHJvZ3Jlc3MtZmlsbDphZnRlcntjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO3RvcDo0cHg7Ym90dG9tOjRweDtyaWdodDotMXB4O3dpZHRoOjJweDtiYWNrZ3JvdW5kOiNjNTY1M2Q5OTtib3JkZXItcmFkaXVzOjFweH0udG9kby1wcm9ncmVzcy10YXNrLXdyYXB7ZmxleDoxO21pbi13aWR0aDowO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kO2dhcDo2cHg7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoxO3BhZGRpbmctbGVmdDo4cHh9LnRvZG8tcHJvZ3Jlc3MtdGFza3tmb250LXNpemU6Ljc1cmVtO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7Zm9udC13ZWlnaHQ6NTAwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcDtmbGV4OjE7bWluLXdpZHRoOjA7dGV4dC1hbGlnbjpyaWdodH0udG9kby1wcm9ncmVzcy1oZWFkZXI6aGFzKC50b2RvLXByb2dyZXNzLXRhc2s6bm90KDplbXB0eSkpIC50b2RvLXByb2dyZXNzLXRhc2t7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsI2ZmZjAsI2ZmZmZmZjhjIDEyJSA4OCUsI2ZmZjApO3BhZGRpbmc6MXB4IDZweDtib3JkZXItcmFkaXVzOjZweH0udG9kby1wcm9ncmVzcy1jaGV2cm9ue2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2ZsZXgtc2hyaW5rOjA7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjJzIGVhc2U7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoxfS50b2RvLXByb2dyZXNzLmV4cGFuZGVkIC50b2RvLXByb2dyZXNzLWNoZXZyb257dHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpfS50b2RvLXByb2dyZXNzLWJvZHl7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3JpZ2h0OjA7Ym90dG9tOmNhbGMoMTAwJSArIDZweCk7YmFja2dyb3VuZDojZmZmYmY2ZmE7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItZGVmYXVsdCk7Ym9yZGVyLXJhZGl1czoxMnB4O3BhZGRpbmc6OHB4IDEwcHg7Ym94LXNoYWRvdzowIDhweCAyNHB4ICMwMDAwMDAxNCwwIDJweCA2cHggIzAwMDAwMDBhO2JhY2tkcm9wLWZpbHRlcjpibHVyKDhweCk7LXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6Ymx1cig4cHgpO21heC1oZWlnaHQ6MzIwcHg7b3ZlcmZsb3cteTphdXRvO3otaW5kZXg6MzA7b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDZweCk7cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHkgLjE4cyBlYXNlLHRyYW5zZm9ybSAuMThzIGVhc2V9LnRvZG8tcHJvZ3Jlc3MtYm9keS5oaWRkZW57ZGlzcGxheTpub25lfS50b2RvLXByb2dyZXNzLWJvZHkuZXhwYW5kZWR7b3BhY2l0eToxO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApO3BvaW50ZXItZXZlbnRzOmF1dG99LnRvZG8tcHJvZ3Jlc3MtbGlzdHtsaXN0LXN0eWxlOm5vbmU7bWFyZ2luOjA7cGFkZGluZzowO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjFweH0udG9kby1wcm9ncmVzcy1pdGVte2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEwcHg7cGFkZGluZzo2cHggOHB4O2JvcmRlci1yYWRpdXM6OHB4O2ZvbnQtc2l6ZTouODEyNXJlbTtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7bGluZS1oZWlnaHQ6MS4zNTt0cmFuc2l0aW9uOmJhY2tncm91bmQgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KX0udG9kby1wcm9ncmVzcy1pdGVtKy50b2RvLXByb2dyZXNzLWl0ZW17Ym9yZGVyLXRvcDoxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSk7Ym9yZGVyLXJhZGl1czowfS50b2RvLXByb2dyZXNzLWl0ZW06Zmlyc3QtY2hpbGR7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czo4cHg7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6OHB4fS50b2RvLXByb2dyZXNzLWl0ZW06bGFzdC1jaGlsZHtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjhweDtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czo4cHh9LnRvZG8tcHJvZ3Jlc3MtaXRlbS5hY3RpdmV7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtmb250LXdlaWdodDo1MDA7YmFja2dyb3VuZDojYzU2NTNkMTJ9LnRvZG8tcHJvZ3Jlc3MtaXRlbS5kb25le2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO3RleHQtZGVjb3JhdGlvbjpsaW5lLXRocm91Z2g7dGV4dC1kZWNvcmF0aW9uLWNvbG9yOnZhcigtLXRleHQtbXV0ZWQpfS50b2RvLXByb2dyZXNzLWl0ZW0+c3BhbjpsYXN0LWNoaWxke2ZsZXg6MTttaW4td2lkdGg6MDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXB9LnRvZG8taXRlbS1pY29ue3dpZHRoOjE2cHg7bWluLXdpZHRoOjE2cHg7dGV4dC1hbGlnbjpjZW50ZXI7Zm9udC1zaXplOi43NXJlbTtmbGV4LXNocmluazowfS50b2RvLWl0ZW0taWNvbi5wZW5kaW5ne2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpfS50b2RvLWl0ZW0taWNvbi5hY3RpdmV7Y29sb3I6dmFyKC0tYWNjZW50KX0udG9kby1pdGVtLWljb24uZG9uZXtjb2xvcjojNGE3YTRmfS5mb2xkZXItcGlja2VyLWNvbnRhaW5lcnttYXJnaW4tYm90dG9tOjhweH0uZm9sZGVyLXBpY2tlci1xdWljay1idG57ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NHB4O3BhZGRpbmc6NHB4IDhweDtiYWNrZ3JvdW5kOiNmZmY5O2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSk7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtc20pO2ZvbnQtc2l6ZTouNzVyZW07Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246YWxsIHZhcigtLXRyYW5zaXRpb24tZmFzdCl9LmZvbGRlci1waWNrZXItcXVpY2stYnRuOmhvdmVye2JhY2tncm91bmQ6I2ZmZmZmZmU2O2JvcmRlci1jb2xvcjp2YXIoLS1hY2NlbnQpO2NvbG9yOnZhcigtLWFjY2VudCl9LmZvbGRlci1icmVhZGNydW1ie2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7ZmxleC13cmFwOndyYXA7Z2FwOjJweDtwYWRkaW5nOjRweCA4cHg7YmFja2dyb3VuZDojZmZmNjtib3JkZXItcmFkaXVzOjZweDtmb250LXNpemU6LjY4NzVyZW07Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKTttYXJnaW4tYm90dG9tOjRweH0uZm9sZGVyLXBpY2tlcntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2cHg7cGFkZGluZzo2cHggOHB4O2JhY2tncm91bmQ6I2ZmZmZmZjgwO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSk7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtc20pfS5mb2xkZXItcGlja2VyLWljb257Zm9udC1zaXplOjFyZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7ZmxleC1zaHJpbms6MH0uZm9sZGVyLXBpY2tlci1pbnB1dHtmbGV4OjE7Ym9yZGVyOm5vbmU7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2ZvbnQtc2l6ZTouODEyNXJlbTtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO291dGxpbmU6bm9uZTtwYWRkaW5nOjRweH0uZm9sZGVyLXBpY2tlci1pbnB1dDpmb2N1c3tiYWNrZ3JvdW5kOiNmZmZjO2JvcmRlci1yYWRpdXM6NHB4fS5mb2xkZXItcGlja2VyLWRyb3Bkb3due3Bvc2l0aW9uOmFic29sdXRlO3RvcDoxMDAlO2xlZnQ6MDtyaWdodDowO2JhY2tncm91bmQ6dmFyKC0tYmctc2Vjb25kYXJ5KTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1kZWZhdWx0KTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1zbSk7Ym94LXNoYWRvdzp2YXIoLS1zaGFkb3ctZWxldmF0ZWQpO3otaW5kZXg6NTA7bWF4LWhlaWdodDoyNDBweDtvdmVyZmxvdy15OmF1dG87bWFyZ2luLXRvcDo0cHh9LmZvbGRlci1waWNrZXItaXRlbXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo4cHg7cGFkZGluZzo4cHggMTBweDtjdXJzb3I6cG9pbnRlcjtmb250LXNpemU6LjgxMjVyZW07dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIHZhcigtLXRyYW5zaXRpb24tZmFzdCl9LmZvbGRlci1waWNrZXItaXRlbTpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLWJnLXRlcnRpYXJ5KX0uZm9sZGVyLXBpY2tlci1pdGVtLmFjdGl2ZXtiYWNrZ3JvdW5kOnZhcigtLWFjY2VudC1tdXRlZCl9LmZvbGRlci1waWNrZXItaXRlbS1pY29ue2ZvbnQtc2l6ZTouODc1cmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpfS5mb2xkZXItcGlja2VyLWxvYWRpbmd7cGFkZGluZzo4cHggMTBweDt0ZXh0LWFsaWduOmNlbnRlcjtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtmb250LXNpemU6Ljc1cmVtfS5mb2xkZXItcGlja2VyLWVycm9ye3BhZGRpbmc6OHB4IDEwcHg7Y29sb3I6dmFyKC0tZGFuZ2VyKTtmb250LXNpemU6Ljc1cmVtO2JhY2tncm91bmQ6dmFyKC0tZGFuZ2VyLW11dGVkKTtib3JkZXItcmFkaXVzOjRweDttYXJnaW46NHB4IDhweH0uZm9sZGVyLXBpY2tlci1jb250YWluZXIuZHJhZy1vdmVye2JhY2tncm91bmQ6dmFyKC0tYWNjZW50LW11dGVkKTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1zbSl9LmZvbGRlci1waWNrZXItY29udGFpbmVyLmRyYWctb3ZlciAuZm9sZGVyLXBpY2tlcntib3JkZXItY29sb3I6dmFyKC0tYWNjZW50KX0uZm9sZGVyLXJlY2VudC1zZWN0aW9ue3BhZGRpbmc6NHB4IDhweDtib3JkZXItYm90dG9tOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlKTttYXJnaW4tYm90dG9tOjRweH0uZm9sZGVyLXJlY2VudC10aXRsZXtmb250LXNpemU6LjY4NzVyZW07dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2xldHRlci1zcGFjaW5nOi4wNWVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO21hcmdpbi1ib3R0b206NHB4fS5mb2xkZXItcmVjZW50LWl0ZW17ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NnB4O3BhZGRpbmc6NnB4IDhweDtjdXJzb3I6cG9pbnRlcjtmb250LXNpemU6Ljc1cmVtO2JvcmRlci1yYWRpdXM6NHB4O3RyYW5zaXRpb246YmFja2dyb3VuZCB2YXIoLS10cmFuc2l0aW9uLWZhc3QpfS5mb2xkZXItcmVjZW50LWl0ZW06aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS1iZy10ZXJ0aWFyeSl9LmZvbGRlci1yZWNlbnQtaXRlbS1wYXRoe2ZsZXg6MTttaW4td2lkdGg6MDtvdmVyZmxvdzpoaWRkZW47d2hpdGUtc3BhY2U6bm93cmFwO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyl9LmZvbGRlci1waWNrZXItaW5wdXQuaW52YWxpZHtib3JkZXItY29sb3I6dmFyKC0tZGFuZ2VyKTtiYWNrZ3JvdW5kOiNiMjRmNDUxNH0uZm9sZGVyLXBpY2tlci1pbnB1dC5pbnZhbGlkOmZvY3Vze2JveC1zaGFkb3c6MCAwIDAgMnB4ICNiMjRmNDUzM30uZm9sZGVyLXBpY2tlci12YWxpZGF0aW9ue2ZvbnQtc2l6ZTouNjg3NXJlbTtjb2xvcjp2YXIoLS1kYW5nZXIpO3BhZGRpbmc6MnB4IDRweDttYXJnaW4tdG9wOjJweDtkaXNwbGF5Om5vbmV9LmZvbGRlci1waWNrZXItdmFsaWRhdGlvbi52aXNpYmxle2Rpc3BsYXk6YmxvY2t9LmZvbGRlci1waWNrZXItY29tcGFjdHtwb3NpdGlvbjpzdGlja3k7bWFyZ2luLWJvdHRvbTo4cHh9LmZvbGRlci1waWNrZXItY29tcGFjdC1yb3d7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NnB4O3BhZGRpbmc6NnB4IDEwcHg7YmFja2dyb3VuZDojZmZmZmZmODA7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlKTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1zbSk7dHJhbnNpdGlvbjphbGwgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KX0uZm9sZGVyLXBpY2tlci1jb21wYWN0LXJvdzpmb2N1cy13aXRoaW57YmFja2dyb3VuZDojZmZmYztib3JkZXItY29sb3I6dmFyKC0tYWNjZW50KX0uZm9sZGVyLXBpY2tlci1jb21wYWN0LWljb257Zm9udC1zaXplOi44NzVyZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7ZmxleC1zaHJpbms6MH0uZm9sZGVyLXBpY2tlci1jb21wYWN0LWlucHV0e2ZsZXg6MTtib3JkZXI6bm9uZTtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7Zm9udC1zaXplOi44MTI1cmVtO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7b3V0bGluZTpub25lO3BhZGRpbmc6MnB4IDA7bWluLXdpZHRoOjB9LmZvbGRlci1waWNrZXItY29tcGFjdC1pbnB1dDo6cGxhY2Vob2xkZXJ7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCl9LmZvbGRlci1waWNrZXItdG9nZ2xle2JhY2tncm91bmQ6bm9uZTtib3JkZXI6bm9uZTtwYWRkaW5nOjRweCA2cHg7Zm9udC1zaXplOi42MjVyZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7Y3Vyc29yOnBvaW50ZXI7Ym9yZGVyLXJhZGl1czo0cHg7dHJhbnNpdGlvbjphbGwgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KX0uZm9sZGVyLXBpY2tlci10b2dnbGU6aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS1iZy10ZXJ0aWFyeSk7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpfS5mb2xkZXItcGlja2VyLXF1aWNrLXJvd3tkaXNwbGF5OmZsZXg7Z2FwOjZweDtwYWRkaW5nOjZweCA4cHg7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSl9LmZvbGRlci1waWNrZXItcXVpY2stcm93IC5mb2xkZXItcGlja2VyLXF1aWNrLWJ0bntmbGV4OjE7cGFkZGluZzo0cHggOHB4O2ZvbnQtc2l6ZTouNjg3NXJlbX0ud29ya2luZy1kaXItaW5kaWNhdG9ye3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MTBweDtib3R0b206NXB4O2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo0cHg7cGFkZGluZzoycHggNnB4O2JhY2tncm91bmQ6I2M1NjUzZDE0O2JvcmRlci1yYWRpdXM6NHB4O2ZvbnQtc2l6ZTouNjVyZW07Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtjdXJzb3I6cG9pbnRlcjt0cmFuc2l0aW9uOmFsbCB2YXIoLS10cmFuc2l0aW9uLWZhc3QpO21heC13aWR0aDoxODBweDt6LWluZGV4OjI7cG9pbnRlci1ldmVudHM6YXV0b30ud29ya2luZy1kaXItaW5kaWNhdG9yOmhvdmVye2JhY2tncm91bmQ6dmFyKC0tYWNjZW50LW11dGVkKTtjb2xvcjp2YXIoLS1hY2NlbnQpfS53b3JraW5nLWRpci1pbmRpY2F0b3ItaWNvbntmb250LXNpemU6Ljc1cmVtO2ZsZXgtc2hyaW5rOjB9LndvcmtpbmctZGlyLWluZGljYXRvci1wYXRoe2ZsZXg6MSAxIGF1dG87bWluLXdpZHRoOjA7b3ZlcmZsb3c6aGlkZGVufS53b3JraW5nLWRpci1pbmRpY2F0b3ItcGF0aDo6LXdlYmtpdC1zY3JvbGxiYXJ7aGVpZ2h0OjNweH0ud29ya2luZy1kaXItaW5kaWNhdG9yLXBhdGg6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1ie2JhY2tncm91bmQ6Izk2NzY1NTUyO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLWZ1bGwpfS53b3JraW5nLWRpci1pbmRpY2F0b3I6aG92ZXIgLndvcmtpbmctZGlyLWluZGljYXRvci1wYXRoe3Njcm9sbGJhci13aWR0aDp0aGlufS53b3JraW5nLWRpci1pbmRpY2F0b3I6aG92ZXIgLndvcmtpbmctZGlyLWluZGljYXRvci1wYXRoOjotd2Via2l0LXNjcm9sbGJhcntoZWlnaHQ6NHB4fS5pbnB1dC10ZXh0YXJlYXstLWlucHV0LW1heC1oZWlnaHQ6IDEyMHB4O2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7Zm9udC1zaXplOi44MTI1cmVtO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym9yZGVyOm5vbmU7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtwYWRkaW5nOjlweCA4cHg7b3V0bGluZTpub25lO3Jlc2l6ZTpub25lO21pbi1oZWlnaHQ6MzZweDttYXgtaGVpZ2h0OnZhcigtLWlucHV0LW1heC1oZWlnaHQpO3dpZHRoOjEwMCU7ZGlzcGxheTpibG9jaztvdmVyZmxvdy15OmhpZGRlbjtvdmVyc2Nyb2xsLWJlaGF2aW9yOmNvbnRhaW47LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2g7dHJhbnNpdGlvbjpoZWlnaHQgLjE1cyBlYXNlLW91dDtib3gtc2l6aW5nOmJvcmRlci1ib3g7bGluZS1oZWlnaHQ6MS40O3RvdWNoLWFjdGlvbjpwYW4teTtzY3JvbGxiYXItZ3V0dGVyOnN0YWJsZX1AbWVkaWEocG9pbnRlcjpjb2Fyc2Upey5pbnB1dC10ZXh0YXJlYXstLWlucHV0LW1heC1oZWlnaHQ6IG1pbigxNjBweCwgMzVkdmgpO292ZXJmbG93LXk6YXV0b319QHN1cHBvcnRzIG5vdCAoaGVpZ2h0OiAxZHZoKXtAbWVkaWEocG9pbnRlcjpjb2Fyc2Upey5pbnB1dC10ZXh0YXJlYXstLWlucHV0LW1heC1oZWlnaHQ6IG1pbigxNjBweCwgMzV2aCl9fX0uaW5wdXQtdGV4dGFyZWE6Zm9jdXN7b3V0bGluZTpub25lfS5pbnB1dC10ZXh0YXJlYTo6cGxhY2Vob2xkZXJ7Y29sb3I6dmFyKC0tdGV4dC10ZXJ0aWFyeSk7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1zYW5zKTtmb250LXdlaWdodDo1MDA7bGV0dGVyLXNwYWNpbmc6MDtvcGFjaXR5Oi42Mn0uaW5wdXQtdGV4dGFyZWEuaXMtdGVybWluYWwtcGFzc3Rocm91Z2h7b3BhY2l0eTouNztjdXJzb3I6ZGVmYXVsdH0uaW5wdXQtdGV4dGFyZWEuaXMtdGVybWluYWwtcGFzc3Rocm91Z2g6OnBsYWNlaG9sZGVye2ZvbnQtc3R5bGU6aXRhbGljfS5jb21wb3Nlci1waWxse2FwcGVhcmFuY2U6bm9uZTstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTtmb250LWZhbWlseTp2YXIoLS1mb250LXNhbnMpO2ZvbnQtc2l6ZTouNjI1cmVtO2ZvbnQtd2VpZ2h0OjUwMDtsaW5lLWhlaWdodDoxO21pbi1oZWlnaHQ6MjJweDtwYWRkaW5nOjFweCA4cHg7Ym9yZGVyLXJhZGl1czoxMHB4O2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSk7YmFja2dyb3VuZDojZjZmMWU4YjM7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246YWxsIHZhcigtLXRyYW5zaXRpb24tZmFzdCk7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtnYXA6NHB4O3doaXRlLXNwYWNlOm5vd3JhcDtib3gtc2l6aW5nOmJvcmRlci1ib3g7dXNlci1zZWxlY3Q6bm9uZX0uY29tcG9zZXItcGlsbDpob3Zlcntib3JkZXItY29sb3I6dmFyKC0tYWNjZW50KTtiYWNrZ3JvdW5kLWNvbG9yOiNmNmYxZTh9LmNvbXBvc2VyLXBpbGw6Zm9jdXMsLmNvbXBvc2VyLXBpbGw6Zm9jdXMtdmlzaWJsZXtib3JkZXItY29sb3I6dmFyKC0tYWNjZW50KTtib3gtc2hhZG93OjAgMCAwIDJweCB2YXIoLS1hY2NlbnQtbXV0ZWQpO291dGxpbmU6bm9uZX0uY29tcG9zZXItcGlsbC5kaXNhYmxlZCwuY29tcG9zZXItcGlsbFtkaXNhYmxlZF17b3BhY2l0eTouNTU7Y3Vyc29yOm5vdC1hbGxvd2VkfS5jb21wb3Nlci1waWxsLWNoaXB7cGFkZGluZzoxcHggOHB4O2ZvbnQtc2l6ZTouNjI1cmVtfS5jb21wb3Nlci1waWxsLWNoaXAuYWN0aXZle2JhY2tncm91bmQ6dmFyKC0tYWNjZW50LW11dGVkLCByZ2JhKDE5NywgMTAxLCA2MSwgLjEyKSk7Y29sb3I6dmFyKC0tYWNjZW50KTtib3JkZXItY29sb3I6dmFyKC0tYWNjZW50KX0uY29tcG9zZXItcGlsbC1jaGlwLmFjdGl2ZTpob3ZlcntiYWNrZ3JvdW5kOiNjNTY1M2QyZX0uaXMtd2FuZC1hcHAgLmlucHV0LWNvbXBvc2VyOm5vdCg6Zm9jdXMtd2l0aGluKTpub3QoLmhhcy10ZXh0KSAuYXV0by1hcHByb3ZlLWluZGljYXRvcnt3aWR0aDoyNHB4O21pbi13aWR0aDoyNHB4O3BhZGRpbmctbGVmdDowO3BhZGRpbmctcmlnaHQ6MDtnYXA6MH0uaXMtd2FuZC1hcHAgLmlucHV0LWNvbXBvc2VyOm5vdCg6Zm9jdXMtd2l0aGluKTpub3QoLmhhcy10ZXh0KSAuYXV0by1hcHByb3ZlLWluZGljYXRvciAuY29tcG9zZXItcGlsbC1sYWJlbHtkaXNwbGF5Om5vbmV9LmNoYXQtbW9kZS1zZWxlY3R7bWF4LXdpZHRoOjc4cHh9LmJ0bi1jaXJjbGV7d2lkdGg6MjhweDtoZWlnaHQ6MjhweDttaW4td2lkdGg6MjhweDtib3JkZXItcmFkaXVzOjUwJTtib3JkZXI6bm9uZTtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246YWxsIHZhcigtLXRyYW5zaXRpb24tZmFzdCk7ZmxleC1zaHJpbms6MDtwYWRkaW5nOjB9LmJ0bi1jaXJjbGUtc2VuZHtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcsdmFyKC0tYWNjZW50KSAwJSwjYTg1MjJmIDEwMCUpO2NvbG9yOiNmZmY7Ym94LXNoYWRvdzowIDFweCA2cHggI2M1NjUzZDQwfS5idG4tY2lyY2xlLXNlbmQ6aG92ZXJ7dHJhbnNmb3JtOnNjYWxlKDEuMDgpO2JveC1zaGFkb3c6MCAzcHggMTBweCAjYzU2NTNkNTl9LmJ0bi1jaXJjbGUtc2VuZDphY3RpdmV7dHJhbnNmb3JtOnNjYWxlKC45NSl9LmJ0bi1jaXJjbGUtc3RvcHtiYWNrZ3JvdW5kOiNiMjRmNDUxZjtjb2xvcjp2YXIoLS1kYW5nZXIpfS5idG4tY2lyY2xlLXN0b3A6aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS1kYW5nZXIpO2NvbG9yOiNmZmY7dHJhbnNmb3JtOnNjYWxlKDEuMDgpfS5idG4tY2lyY2xlLXN0b3A6YWN0aXZle3RyYW5zZm9ybTpzY2FsZSguOTUpfS5idG4tY2lyY2xlLXNlbmQucXVldWUtbW9kZXtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcsI2M1NjUzZDhjLCNhODUyMmY4Yyk7Ym94LXNoYWRvdzowIDFweCA0cHggI2M1NjUzZDI2fS5idG4tY2lyY2xlLXNlbmQucXVldWUtbW9kZTpob3ZlcntiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcsdmFyKC0tYWNjZW50KSAwJSwjYTg1MjJmIDEwMCUpO2JveC1zaGFkb3c6MCAzcHggMTBweCAjYzU2NTNkNTl9LnByb21wdC1vcHRpbWl6ZS1idG57cG9zaXRpb246YWJzb2x1dGU7dG9wOjVweDtyaWdodDo2cHg7d2lkdGg6MjhweDtoZWlnaHQ6MjhweDtib3JkZXItcmFkaXVzOjUwJTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMTk3LDEwMSw2MSwuMjIpO3BhZGRpbmc6MDtjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDEzNWRlZywjZmZmYWYyZjIsI2U4YzVhZTU5KTtjb2xvcjp2YXIoLS1hY2NlbnQpO3otaW5kZXg6NDtib3gtc2hhZG93OjAgMXB4IDRweCAjYzU2NTNkMWE7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIHZhcigtLXRyYW5zaXRpb24tZmFzdCksY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KSx0cmFuc2Zvcm0gdmFyKC0tdHJhbnNpdGlvbi1mYXN0KSxib3gtc2hhZG93IHZhcigtLXRyYW5zaXRpb24tZmFzdCksYm9yZGVyLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCl9LnByb21wdC1vcHRpbWl6ZS1idG46aG92ZXJ7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCNmZmZhZjIsI2U4YzVhZThjKTtjb2xvcjp2YXIoLS1hY2NlbnQtaG92ZXIpO3RyYW5zZm9ybTpzY2FsZSgxLjEyKTtib3JkZXItY29sb3I6I2M1NjUzZDU5O2JveC1zaGFkb3c6MCAycHggMTBweCAjYzU2NTNkMzgsMCAwIDAgM3B4ICNjNTY1M2QwZn0ucHJvbXB0LW9wdGltaXplLWJ0bjphY3RpdmV7dHJhbnNmb3JtOnNjYWxlKC45Mik7Ym94LXNoYWRvdzowIDFweCAzcHggI2M1NjUzZDI2fS5wcm9tcHQtb3B0aW1pemUtYnRuOmRpc2FibGVke2N1cnNvcjpub3QtYWxsb3dlZDtvcGFjaXR5Oi42fS5wcm9tcHQtb3B0aW1pemUtYnRuOmRpc2FibGVkOmhvdmVye3RyYW5zZm9ybTpub25lO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDEzNWRlZywjZmZmYWYyZjIsI2U4YzVhZTU5KTtib3gtc2hhZG93OjAgMXB4IDRweCAjYzU2NTNkMWE7Ym9yZGVyLWNvbG9yOiNjNTY1M2QzOH0ucHJvbXB0LW9wdGltaXplLWljb257dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjI1cyBlYXNlLG9wYWNpdHkgLjJzIGVhc2U7dHJhbnNmb3JtLW9yaWdpbjpjZW50ZXI7ZmlsdGVyOmRyb3Atc2hhZG93KDAgMCAxcHggcmdiYSgxOTcsMTAxLDYxLC4zKSl9LnByb21wdC1vcHRpbWl6ZS1idG46aG92ZXIgLnByb21wdC1vcHRpbWl6ZS1pY29ue2FuaW1hdGlvbjpwcm9tcHQtb3B0aW1pemUtdHdpbmtsZSAxLjRzIGVhc2UtaW4tb3V0IGluZmluaXRlO2ZpbHRlcjpkcm9wLXNoYWRvdygwIDAgM3B4IHJnYmEoMTk3LDEwMSw2MSwuNCkpfUBrZXlmcmFtZXMgcHJvbXB0LW9wdGltaXplLXR3aW5rbGV7MCUsdG97dHJhbnNmb3JtOnJvdGF0ZSgwKSBzY2FsZSgxKX01MCV7dHJhbnNmb3JtOnJvdGF0ZSgxMmRlZykgc2NhbGUoMS4xMil9fS5wcm9tcHQtb3B0aW1pemUtc3Bpbm5lcntwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO2JvcmRlci1yYWRpdXM6NTAlO3BvaW50ZXItZXZlbnRzOm5vbmU7b3BhY2l0eTowO2JhY2tncm91bmQ6Y29uaWMtZ3JhZGllbnQoZnJvbSAwZGVnLHRyYW5zcGFyZW50IDBkZWcsdmFyKC0tYWNjZW50KSAyNzBkZWcsdHJhbnNwYXJlbnQgMzYwZGVnKTttYXNrOnJhZGlhbC1ncmFkaWVudChjaXJjbGUsdHJhbnNwYXJlbnQgMTBweCxibGFjayAxMXB4KTstd2Via2l0LW1hc2s6cmFkaWFsLWdyYWRpZW50KGNpcmNsZSx0cmFuc3BhcmVudCAxMHB4LGJsYWNrIDExcHgpO3RyYW5zaXRpb246b3BhY2l0eSAuMTVzIGVhc2V9LnByb21wdC1vcHRpbWl6ZS1idG4uaXMtbG9hZGluZ3tjb2xvcjp2YXIoLS1hY2NlbnQpO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDEzNWRlZywjZmZmYWYyLCNlOGM1YWU4MCk7Ym9yZGVyLWNvbG9yOiNjNTY1M2Q2Njtib3gtc2hhZG93OjAgMnB4IDEycHggI2M1NjUzZDQwLDAgMCAwIDNweCAjYzU2NTNkMTR9LnByb21wdC1vcHRpbWl6ZS1idG4uaXMtbG9hZGluZyAucHJvbXB0LW9wdGltaXplLWljb257YW5pbWF0aW9uOnByb21wdC1vcHRpbWl6ZS1wdWxzZSAxLjFzIGVhc2UtaW4tb3V0IGluZmluaXRlfS5wcm9tcHQtb3B0aW1pemUtYnRuLmlzLWxvYWRpbmcgLnByb21wdC1vcHRpbWl6ZS1zcGlubmVye29wYWNpdHk6MTthbmltYXRpb246cHJvbXB0LW9wdGltaXplLXNwaW4gLjlzIGxpbmVhciBpbmZpbml0ZX1Aa2V5ZnJhbWVzIHByb21wdC1vcHRpbWl6ZS1zcGlue3Rve3RyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKX19QGtleWZyYW1lcyBwcm9tcHQtb3B0aW1pemUtcHVsc2V7MCUsdG97dHJhbnNmb3JtOnNjYWxlKC44OCk7b3BhY2l0eTouOH01MCV7dHJhbnNmb3JtOnNjYWxlKDEuMTUpO29wYWNpdHk6MX19LmlucHV0LWNvbXBvc2VyLmlzLW9wdGltaXppbmd7Ym9yZGVyLWNvbG9yOiNjNTY1M2Q2Yjtib3gtc2hhZG93OjAgMCAwIDJweCAjYzU2NTNkMWEsMCAwIDE4cHggI2M1NjUzZDI0fS5pbnB1dC1jb21wb3Nlci5pcy1vcHRpbWl6aW5nIC5jb21wb3Nlci1pbnB1dC13cmFwOmJlZm9yZXtjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7cG9pbnRlci1ldmVudHM6bm9uZTtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxMDBkZWcsdHJhbnNwYXJlbnQgMCUsdHJhbnNwYXJlbnQgMzglLHJnYmEoMjE0LDEyMyw4MiwuMTYpIDUwJSx0cmFuc3BhcmVudCA2MiUsdHJhbnNwYXJlbnQgMTAwJSk7YmFja2dyb3VuZC1zaXplOjIyMCUgMTAwJTtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7YmFja2dyb3VuZC1wb3NpdGlvbjoyMjAlIDA7YW5pbWF0aW9uOnByb21wdC1vcHRpbWl6ZS1mbG93IDEuNnMgbGluZWFyIGluZmluaXRlO3otaW5kZXg6MH1Aa2V5ZnJhbWVzIHByb21wdC1vcHRpbWl6ZS1mbG93ezAle2JhY2tncm91bmQtcG9zaXRpb246MjIwJSAwfXRve2JhY2tncm91bmQtcG9zaXRpb246LTEyMCUgMH19LnByb21wdC1vcHRpbWl6ZS1idG4uaXMtc2hha2V7YW5pbWF0aW9uOnByb21wdC1vcHRpbWl6ZS1zaGFrZSAuNHMgZWFzZS1vdXQ7Y29sb3I6dmFyKC0tZGFuZ2VyKX1Aa2V5ZnJhbWVzIHByb21wdC1vcHRpbWl6ZS1zaGFrZXswJSx0b3t0cmFuc2Zvcm06dHJhbnNsYXRlKDApfTIwJXt0cmFuc2Zvcm06dHJhbnNsYXRlKC0zcHgpfTQwJXt0cmFuc2Zvcm06dHJhbnNsYXRlKDNweCl9NjAle3RyYW5zZm9ybTp0cmFuc2xhdGUoLTJweCl9ODAle3RyYW5zZm9ybTp0cmFuc2xhdGUoMnB4KX19QG1lZGlhKG1heC13aWR0aDo3MjBweCl7LnByb21wdC1vcHRpbWl6ZS1idG57d2lkdGg6MjZweDtoZWlnaHQ6MjZweH0ucHJvbXB0LW9wdGltaXplLWljb257d2lkdGg6MTRweDtoZWlnaHQ6MTRweH19LmJ0bi1jaXJjbGUtYWN0aW9ue2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7d2lkdGg6MzJweDtoZWlnaHQ6MzJweDttaW4td2lkdGg6MzJweDtib3JkZXItcmFkaXVzOjUwJTtib3JkZXI6bm9uZTtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246YWxsIHZhcigtLXRyYW5zaXRpb24tZmFzdCk7ZmxleC1zaHJpbms6MDtwYWRkaW5nOjB9LmJ0bi1jaXJjbGUtYWN0aW9uOmhvdmVye2JhY2tncm91bmQ6I2M1NjUzZDFhO2NvbG9yOnZhcigtLWFjY2VudCk7dHJhbnNmb3JtOnNjYWxlKDEuMDgpfS5idG4tY2lyY2xlLWFjdGlvbjphY3RpdmV7dHJhbnNmb3JtOnNjYWxlKC45NCl9LmJ0bi1jaXJjbGUtYWN0aW9uLmFjdGl2ZXtiYWNrZ3JvdW5kOnZhcigtLWFjY2VudC1tdXRlZCwgcmdiYSgxOTcsIDEwMSwgNjEsIC4xNCkpO2NvbG9yOnZhcigtLWFjY2VudCl9LmJ0bi1jaXJjbGUtYWN0aW9uLmFjdGl2ZTpob3ZlcntiYWNrZ3JvdW5kOiNjNTY1M2QzOH0uY2hhdC1tb2RlLXRyaW97ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjZweDtmbGV4LXdyYXA6d3JhcH0uY2hhdC1tb2RlLXRyaW8tcGlsbHtwb3NpdGlvbjpyZWxhdGl2ZTtjdXJzb3I6cG9pbnRlcjt1c2VyLXNlbGVjdDpub25lfS5jaGF0LW1vZGUtdHJpby10YWd7Zm9udC1zaXplOi42MjVyZW07Zm9udC13ZWlnaHQ6NTAwO2NvbG9yOnZhcigtLXRleHQtdGVydGlhcnksICNiNWE4OWEpO2xldHRlci1zcGFjaW5nOi4wNGVtO21hcmdpbi1yaWdodDo0cHg7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO29wYWNpdHk6Ljc1fS5lbXB0eS1zdGF0ZS10cmlvLXdyYXB7bWFyZ2luLXRvcDoxNHB4O2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo4cHg7YW5pbWF0aW9uOmVtcHR5U3RhdGVUcmlvRmFkZUluIC40cyBlYXNlLW91dH0uZW1wdHktc3RhdGUtdHJpby1oaW50e2ZvbnQtc2l6ZTouNzJyZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7bGV0dGVyLXNwYWNpbmc6LjAyZW19LmNoYXQtbW9kZS10cmlvLWRyb3Bkb3due2dhcDo0cHg7cGFkZGluZzo2cHggMTJweDtiYWNrZ3JvdW5kOiNmNmYxZTg5OTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpO2JvcmRlci1yYWRpdXM6MTJweDtib3gtc2hhZG93OjAgMXB4IDNweCAjMDAwMDAwMGF9LmNoYXQtbW9kZS10cmlvLWRyb3Bkb3duIC5jaGF0LW1vZGUtdHJpby1waWxse2ZvbnQtc2l6ZTouNzhyZW07cGFkZGluZzozcHggNnB4O2JvcmRlci1yYWRpdXM6OHB4O3RyYW5zaXRpb246YmFja2dyb3VuZCB2YXIoLS10cmFuc2l0aW9uLWZhc3QpfS5jaGF0LW1vZGUtdHJpby1kcm9wZG93biAuY2hhdC1tb2RlLXRyaW8tcGlsbDpob3ZlcntiYWNrZ3JvdW5kOiNjNTY1M2QwZn0uY2hhdC1tb2RlLXRyaW8tZHJvcGRvd24gLmNoYXQtbW9kZS10cmlvLXBpbGw6Zm9jdXMtd2l0aGlue2JhY2tncm91bmQ6I2M1NjUzZDE0fS5jaGF0LW1vZGUtdHJpby1kcm9wZG93biAuY29tcG9zZXItdGV4dC1sYWJlbHtmb250LXNpemU6LjhyZW07Zm9udC13ZWlnaHQ6NTAwO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7bWF4LXdpZHRoOjE0MHB4fUBrZXlmcmFtZXMgZW1wdHlTdGF0ZVRyaW9GYWRlSW57MCV7b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDRweCl9dG97b3BhY2l0eToxO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApfX0uY2hhdC1tZXNzYWdlLWF2YXRhci51c2VyIC5jaGF0LW1vZGUtdHJpby1jb21wYWN0e21hcmdpbi1yaWdodDo0cHg7Z2FwOjNweDtvcGFjaXR5Oi41NTt0cmFuc2l0aW9uOm9wYWNpdHkgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KX0uY2hhdC1tZXNzYWdlLWF2YXRhci51c2VyOmhvdmVyIC5jaGF0LW1vZGUtdHJpby1jb21wYWN0LC5jaGF0LW1lc3NhZ2UtYXZhdGFyLnVzZXIgLmNoYXQtbW9kZS10cmlvLWNvbXBhY3Q6Zm9jdXMtd2l0aGluLC5jaGF0LW1lc3NhZ2UtYXZhdGFyLnVzZXIgLmNoYXQtbW9kZS10cmlvLWNvbXBhY3Q6aG92ZXJ7b3BhY2l0eToxfS5jaGF0LW1vZGUtdHJpby1jb21wYWN0IC5jaGF0LW1vZGUtdHJpby1waWxse2ZvbnQtc2l6ZTouNjg3NXJlbTtwYWRkaW5nOjJweCA2cHg7Ym9yZGVyLXJhZGl1czoxMHB4O2JhY2tncm91bmQ6I2Y2ZjFlODhjO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSk7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO3RyYW5zaXRpb246YWxsIHZhcigtLXRyYW5zaXRpb24tZmFzdCk7bGluZS1oZWlnaHQ6MX0uY2hhdC1tb2RlLXRyaW8tY29tcGFjdCAuY2hhdC1tb2RlLXRyaW8tcGlsbDpob3ZlcntiYWNrZ3JvdW5kOiNjNTY1M2QxYTtjb2xvcjp2YXIoLS1hY2NlbnQpO2JvcmRlci1jb2xvcjp2YXIoLS1hY2NlbnQpfS5jaGF0LW1vZGUtdHJpby1jb21wYWN0IC5jb21wb3Nlci10ZXh0LWxhYmVse2ZvbnQtc2l6ZTouNjg3NXJlbTttYXgtd2lkdGg6ODhweDtsZXR0ZXItc3BhY2luZzouMDFlbX0uY2hhdC1tb2RlLXRyaW8tY29tcGFjdCAuY29tcG9zZXItdGV4dC1zZXB7ZGlzcGxheTpub25lfUBtZWRpYShtYXgtd2lkdGg6NzIwcHgpey5jaGF0LW1vZGUtdHJpby1kcm9wZG93bntwYWRkaW5nOjZweCAxMHB4O2dhcDoycHh9LmNoYXQtbW9kZS10cmlvLWRyb3Bkb3duIC5jb21wb3Nlci10ZXh0LWxhYmVse21heC13aWR0aDoxMDBweH0uY2hhdC1tb2RlLXRyaW8tY29tcGFjdCAuY2hhdC1tb2RlLXRyaW8tcGlsbHtmb250LXNpemU6LjYyNXJlbTtwYWRkaW5nOjJweCA1cHh9LmNoYXQtbW9kZS10cmlvLWNvbXBhY3QgLmNvbXBvc2VyLXRleHQtbGFiZWx7bWF4LXdpZHRoOjY0cHh9fS5jb21wb3Nlci1wbHVzLXBvcG92ZXJ7cG9zaXRpb246YWJzb2x1dGU7bGVmdDoxNHB4O2JvdHRvbTpjYWxjKHZhcigtLXNhZmUtYm90dG9tLCAwcHgpICsgNTZweCk7ei1pbmRleDoyODttaW4td2lkdGg6MjQwcHg7bWF4LXdpZHRoOmNhbGMoMTAwJSAtIDI4cHgpO2JhY2tncm91bmQ6I2ZmZmZmZmZhO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLWRlZmF1bHQpO2JvcmRlci1yYWRpdXM6MTZweDtib3gtc2hhZG93OjAgMTJweCAyOHB4ICMwMDAwMDAyZSwwIDJweCA2cHggIzAwMDAwMDE0O3BhZGRpbmc6NnB4O2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjJweDthbmltYXRpb246cGx1c1BvcG92ZXJJbiAuMThzIGVhc2Utb3V0O3RyYW5zZm9ybS1vcmlnaW46MTZweCBjYWxjKDEwMCUgKyA4cHgpfS5jb21wb3Nlci1wbHVzLXBvcG92ZXIuaGlkZGVue2Rpc3BsYXk6bm9uZX1Aa2V5ZnJhbWVzIHBsdXNQb3BvdmVySW57MCV7b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDZweCkgc2NhbGUoLjk2KX10b3tvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCkgc2NhbGUoMSl9fS5wbHVzLXBvcG92ZXItaXRlbXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMHB4O3BhZGRpbmc6OHB4IDEwcHg7Ym9yZGVyOm5vbmU7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXItcmFkaXVzOjEwcHg7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtmb250LXNpemU6LjgycmVtO2ZvbnQtZmFtaWx5OmluaGVyaXQ7Y3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIHZhcigtLXRyYW5zaXRpb24tZmFzdCksY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KTt0ZXh0LWFsaWduOmxlZnQ7d2lkdGg6MTAwJX0ucGx1cy1wb3BvdmVyLWl0ZW06aG92ZXJ7YmFja2dyb3VuZDojYzU2NTNkMTR9LnBsdXMtcG9wb3Zlci1pdGVtOmFjdGl2ZXtiYWNrZ3JvdW5kOiNjNTY1M2QyNH0ucGx1cy1wb3BvdmVyLWljb257Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2ZsZXgtc2hyaW5rOjB9LnBsdXMtcG9wb3Zlci1sYWJlbHtmbGV4OjE7bGluZS1oZWlnaHQ6MS4yfS5wbHVzLXBvcG92ZXItdG9nZ2xlLXN0YXRle2ZvbnQtc2l6ZTouNjhyZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7cGFkZGluZzoycHggOHB4O2JvcmRlci1yYWRpdXM6OHB4O2JhY2tncm91bmQ6IzAwMDAwMDBkO2xpbmUtaGVpZ2h0OjEuMjtsZXR0ZXItc3BhY2luZzouMDJlbX0ucGx1cy1wb3BvdmVyLWl0ZW0uaXMtb24sLnBsdXMtcG9wb3Zlci1pdGVtLmlzLW9uIC5wbHVzLXBvcG92ZXItaWNvbntjb2xvcjp2YXIoLS1hY2NlbnQpfS5wbHVzLXBvcG92ZXItaXRlbS5pcy1vbiAucGx1cy1wb3BvdmVyLXRvZ2dsZS1zdGF0ZXtjb2xvcjojZmZmO2JhY2tncm91bmQ6dmFyKC0tYWNjZW50KX0ucGx1cy1wb3BvdmVyLXNlcHtoZWlnaHQ6MXB4O21hcmdpbjo0cHggNnB4O2JhY2tncm91bmQ6dmFyKC0tYm9yZGVyLXN1YnRsZSl9LnBsdXMtcG9wb3Zlci10cmlvLXdyYXB7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6MnB4fS5wbHVzLXBvcG92ZXItdHJpby13cmFwIC5jb21wb3Nlci1jb25maWctY29udHJvbHN7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpzdHJldGNoO2dhcDo2cHh9LnBsdXMtcG9wb3Zlci10cmlvLXdyYXAgLmNvbXBvc2VyLWNvbmZpZy1jaGlwLC5wbHVzLXBvcG92ZXItdHJpby13cmFwIC5jb21wb3Nlci1jb25maWctbW9kZWwtdGhpbmtpbmd7d2lkdGg6MTAwJTttYXgtd2lkdGg6bm9uZTttaW4taGVpZ2h0OjM2cHg7Ym9yZGVyLXJhZGl1czoxMnB4fS5wbHVzLXBvcG92ZXItdHJpby13cmFwIC5jb21wb3Nlci1jb25maWctY2hpcHtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydDtwYWRkaW5nOjAgMTBweH0ucGx1cy1wb3BvdmVyLXRyaW8td3JhcCAuY29tcG9zZXItY29uZmlnLW1vZGVsLC5wbHVzLXBvcG92ZXItdHJpby13cmFwIC5jb21wb3Nlci1jb25maWctdGhpbmtpbmd7ZmxleDoxIDEgMDttYXgtd2lkdGg6bm9uZTttaW4taGVpZ2h0OjM2cHg7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnQ7cGFkZGluZzowIDEwcHh9LnBsdXMtcG9wb3Zlci10cmlvLXdyYXAgLmNvbXBvc2VyLWNvbmZpZy10aGlua2luZ3tmbGV4OjAgMCA4NnB4fS5jaGF0LW1vZGUtdHJpby1wb3BvdmVye2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6c3RyZXRjaDtnYXA6MnB4fS5jaGF0LW1vZGUtdHJpby1wb3BvdmVyIC5jb21wb3Nlci10ZXh0LXNlcHtkaXNwbGF5Om5vbmV9LmNoYXQtbW9kZS10cmlvLXBvcG92ZXIgLmNoYXQtbW9kZS10cmlvLXBpbGx7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6OHB4O3BhZGRpbmc6N3B4IDEwcHg7Ym9yZGVyLXJhZGl1czoxMHB4O2ZvbnQtc2l6ZTouODJyZW07bWF4LXdpZHRoOm5vbmU7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTt0cmFuc2l0aW9uOmJhY2tncm91bmQgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KX0uY2hhdC1tb2RlLXRyaW8tcG9wb3ZlciAuY2hhdC1tb2RlLXRyaW8tcGlsbDpob3ZlciwuY2hhdC1tb2RlLXRyaW8tcG9wb3ZlciAuY2hhdC1tb2RlLXRyaW8tcGlsbDpmb2N1cy13aXRoaW57YmFja2dyb3VuZDojYzU2NTNkMTQ7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KX0uY2hhdC1tb2RlLXRyaW8tcG9wb3ZlciAuY2hhdC1tb2RlLXRyaW8tdGFne2ZvbnQtc2l6ZTouNzJyZW07Zm9udC13ZWlnaHQ6NTAwO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtsZXR0ZXItc3BhY2luZzowO3RleHQtdHJhbnNmb3JtOm5vbmU7b3BhY2l0eToxO21hcmdpbi1yaWdodDowO2ZsZXgtc2hyaW5rOjA7d2lkdGg6MzZweH0uY2hhdC1tb2RlLXRyaW8tcG9wb3ZlciAuY29tcG9zZXItdGV4dC1sYWJlbHtmbGV4OjE7Zm9udC1zaXplOi44MnJlbTtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO3RleHQtYWxpZ246cmlnaHQ7bWF4LXdpZHRoOjEwMCU7Zm9udC13ZWlnaHQ6NTAwfUBtZWRpYShtYXgtd2lkdGg6NzIwcHgpey5jb21wb3Nlci1wbHVzLXBvcG92ZXJ7bWluLXdpZHRoOjIyMHB4O2xlZnQ6MTBweDtib3R0b206Y2FsYyh2YXIoLS1zYWZlLWJvdHRvbSwgMHB4KSArIDYwcHgpfS5jb21wb3Nlci1tYWluLXJvd3tnYXA6M3B4O3BhZGRpbmctbGVmdDo1cHg7cGFkZGluZy1yaWdodDo1cHh9LmNvbXBvc2VyLWlubGluZS1jb25maWd7Z2FwOjNweH0uY29tcG9zZXItY29uZmlnLWNoaXAsLmNvbXBvc2VyLWNvbmZpZy1wYXJ0e21pbi1oZWlnaHQ6MjZweH0uY29tcG9zZXItY29uZmlnLWNoaXB7cGFkZGluZzowIDdweDttYXgtd2lkdGg6NjRweH0uY29tcG9zZXItY29uZmlnLW1vZGVse21heC13aWR0aDo3NnB4fS5jb21wb3Nlci1jb25maWctdGhpbmtpbmd7bWluLXdpZHRoOjM4cHh9LmNvbXBvc2VyLWNvbmZpZy1sYWJlbHtmb250LXNpemU6LjY4cmVtfX1AbWVkaWEobWF4LXdpZHRoOjQzMHB4KXsuY29tcG9zZXItY29uZmlnLWNoaXAtbW9kZXt3aWR0aDoyOHB4O21heC13aWR0aDoyOHB4O3BhZGRpbmc6MH0uY29tcG9zZXItY29uZmlnLWNoaXAtbW9kZSAuY29tcG9zZXItY29uZmlnLWxhYmVse2Rpc3BsYXk6bm9uZX19QG1lZGlhKG1heC13aWR0aDozODBweCl7LmNvbXBvc2VyLWNvbmZpZy1tb2RlbHt3aWR0aDozMHB4O21heC13aWR0aDozMHB4O3BhZGRpbmc6MH0uY29tcG9zZXItY29uZmlnLW1vZGVsIC5jb21wb3Nlci1jb25maWctbGFiZWx7ZGlzcGxheTpub25lfS5jb21wb3Nlci1jb25maWctdGhpbmtpbmd7bWluLXdpZHRoOjM0cHg7cGFkZGluZzowIDVweH19LnByb21wdC1vcHRpbWl6ZS1idG57ZGlzcGxheTpub25lO3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OmF1dG8gNHB4IDRweCBhdXRvO3RyYW5zZm9ybTpub25lO3dpZHRoOjI2cHg7aGVpZ2h0OjI2cHg7ei1pbmRleDo0fS5pbnB1dC1jb21wb3Nlci5oYXMtdGV4dCAucHJvbXB0LW9wdGltaXplLWJ0bntkaXNwbGF5OmlubGluZS1mbGV4fS5pbnB1dC1jb21wb3Nlci5oYXMtdGV4dCAucHJvbXB0LW9wdGltaXplLWJ0bjpob3Zlcnt0cmFuc2Zvcm06c2NhbGUoMS4xMil9LmlucHV0LWNvbXBvc2VyLmhhcy10ZXh0IC5wcm9tcHQtb3B0aW1pemUtYnRuOmFjdGl2ZXt0cmFuc2Zvcm06c2NhbGUoLjkyKX0uaW5wdXQtY29tcG9zZXIuaGFzLXRleHQgLmlucHV0LXRleHRhcmVhe3BhZGRpbmctcmlnaHQ6MzZweH0udm9pY2UtaW5wdXQtbW9kZXtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjZweDtwYWRkaW5nOjAgNHB4fS52b2ljZS1pbnB1dC1tb2RlLmhpZGRlbntkaXNwbGF5Om5vbmV9LnZvaWNlLXJlY29yZC1idG57ZmxleDoxIDEgYXV0bzttaW4td2lkdGg6MDtoZWlnaHQ6MzBweDtib3JkZXItcmFkaXVzOjk5OXB4O2JvcmRlcjoxcHggZGFzaGVkIHZhcigtLWJvcmRlci1kZWZhdWx0KTtiYWNrZ3JvdW5kOiNmNmYxZTg4MDtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1zYW5zKTtmb250LXNpemU6LjgxMjVyZW07Zm9udC13ZWlnaHQ6NTAwO2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Z2FwOjhweDt0cmFuc2l0aW9uOmJhY2tncm91bmQgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KSxjb2xvciB2YXIoLS10cmFuc2l0aW9uLWZhc3QpLGJvcmRlci1jb2xvciB2YXIoLS10cmFuc2l0aW9uLWZhc3QpO3VzZXItc2VsZWN0Om5vbmU7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lO3RvdWNoLWFjdGlvbjptYW5pcHVsYXRpb259LnZvaWNlLXJlY29yZC1idG46aG92ZXJ7YmFja2dyb3VuZDojZjZmMWU4ZTY7Ym9yZGVyLWNvbG9yOnZhcigtLWFjY2VudCk7Y29sb3I6dmFyKC0tYWNjZW50KX0udm9pY2UtcmVjb3JkLWJ0bjphY3RpdmUsLnZvaWNlLXJlY29yZC1idG4uaXMtcmVjb3JkaW5ne2JhY2tncm91bmQ6dmFyKC0tYWNjZW50LW11dGVkLCByZ2JhKDE5NywgMTAxLCA2MSwgLjE0KSk7Y29sb3I6dmFyKC0tYWNjZW50KTtib3JkZXItY29sb3I6dmFyKC0tYWNjZW50KTtib3JkZXItc3R5bGU6c29saWR9LnZvaWNlLXJlY29yZC1wdWxzZXt3aWR0aDo4cHg7aGVpZ2h0OjhweDtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOmN1cnJlbnRDb2xvcjtvcGFjaXR5Oi41NX0udm9pY2UtcmVjb3JkLWJ0bi5pcy1yZWNvcmRpbmcgLnZvaWNlLXJlY29yZC1wdWxzZXtvcGFjaXR5OjE7YW5pbWF0aW9uOnZvaWNlLXB1bHNlIDEuMXMgZWFzZS1pbi1vdXQgaW5maW5pdGV9QGtleWZyYW1lcyB2b2ljZS1wdWxzZXswJSx0b3t0cmFuc2Zvcm06c2NhbGUoMSk7b3BhY2l0eToxfTUwJXt0cmFuc2Zvcm06c2NhbGUoMS40NSk7b3BhY2l0eTouNDV9fS52b2ljZS1jYW5jZWwtYnRue3dpZHRoOjI2cHg7aGVpZ2h0OjI2cHg7Ym9yZGVyLXJhZGl1czo1MCU7Ym9yZGVyOm5vbmU7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2ZsZXgtc2hyaW5rOjA7dHJhbnNpdGlvbjphbGwgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KX0udm9pY2UtY2FuY2VsLWJ0bjpob3ZlcntiYWNrZ3JvdW5kOiNiMjRmNDUxYTtjb2xvcjp2YXIoLS1kYW5nZXIpfS5pbnB1dC1jb21wb3Nlci52b2ljZS1tb2RlIC5pbnB1dC10ZXh0YXJlYXt2aXNpYmlsaXR5OmhpZGRlbn0uaW5wdXQtY29tcG9zZXIudm9pY2UtbW9kZSAucHJvbXB0LW9wdGltaXplLWJ0bntkaXNwbGF5Om5vbmV9LmlucHV0LWNvbXBvc2VyLnZvaWNlLW1vZGUgLnZvaWNlLWlucHV0LW1vZGV7ZGlzcGxheTpmbGV4fSN2b2ljZS1idG57ZGlzcGxheTpub25lfS5pbnB1dC1jb21wb3Nlci52b2ljZS1tb2RlICN2b2ljZS1idG57YmFja2dyb3VuZDp2YXIoLS1hY2NlbnQtbXV0ZWQsIHJnYmEoMTk3LCAxMDEsIDYxLCAuMTgpKTtjb2xvcjp2YXIoLS1hY2NlbnQpfS52b2ljZS10cmFuc2NyaXB0LWJ1YmJsZXtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjEycHg7cmlnaHQ6MTJweDtib3R0b206Y2FsYygxMDAlICsgOHB4KTt6LWluZGV4OjQwO3BhZGRpbmc6MTJweCAxNnB4IDEwcHg7Ym9yZGVyLXJhZGl1czoxNnB4O2JhY2tncm91bmQ6dmFyKC0tYWNjZW50LCAjYzU2NTNkKTtjb2xvcjojZmZmO2JveC1zaGFkb3c6MCA2cHggMjRweCAjMDAwMDAwMmU7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6OHB4O3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNmb3JtLW9yaWdpbjpib3R0b20gY2VudGVyO2FuaW1hdGlvbjp2b2ljZS1idWJibGUtaW4gLjE4cyBlYXNlfS52b2ljZS10cmFuc2NyaXB0LWJ1YmJsZS5oaWRkZW57ZGlzcGxheTpub25lfUBrZXlmcmFtZXMgdm9pY2UtYnViYmxlLWluezAle29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWSg4cHgpIHNjYWxlKC45Nil9dG97b3BhY2l0eToxO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApIHNjYWxlKDEpfX0udm9pY2UtdHJhbnNjcmlwdC10ZXh0e2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtc2Fucyk7Zm9udC1zaXplOi45NXJlbTtsaW5lLWhlaWdodDoxLjU7Zm9udC13ZWlnaHQ6NTAwO3dvcmQtYnJlYWs6YnJlYWstd29yZDt3aGl0ZS1zcGFjZTpwcmUtd3JhcDttaW4taGVpZ2h0OjEuNGVtO2NvbG9yOiNmZmZ9LnZvaWNlLXRyYW5zY3JpcHQtYnViYmxlOm5vdCguaGFzLXRleHQpIC52b2ljZS10cmFuc2NyaXB0LXRleHQ6YmVmb3Jle2NvbnRlbnQ6Ilw4YmY3XDVmMDBcNTljYlw4YmY0XDhiZGRcMjAyNiI7b3BhY2l0eTouNn0udm9pY2UtdHJhbnNjcmlwdC1oaW50e2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjhweDtmb250LXNpemU6LjcycmVtO29wYWNpdHk6Ljg1fS52b2ljZS10cmFuc2NyaXB0LXN0YXR1c3tsZXR0ZXItc3BhY2luZzouMDJlbX0udm9pY2Utd2F2ZXtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmZsZXgtZW5kO2dhcDoycHg7aGVpZ2h0OjEycHh9LnZvaWNlLXdhdmU+aXt3aWR0aDoyLjVweDtib3JkZXItcmFkaXVzOjJweDtiYWNrZ3JvdW5kOmN1cnJlbnRDb2xvcjthbmltYXRpb246dm9pY2Utd2F2ZS1ib3VuY2UgLjlzIGVhc2UtaW4tb3V0IGluZmluaXRlfS52b2ljZS13YXZlPmk6bnRoLWNoaWxkKDEpe2hlaWdodDo1cHg7YW5pbWF0aW9uLWRlbGF5OjBzfS52b2ljZS13YXZlPmk6bnRoLWNoaWxkKDIpe2hlaWdodDoxMnB4O2FuaW1hdGlvbi1kZWxheTouMTVzfS52b2ljZS13YXZlPmk6bnRoLWNoaWxkKDMpe2hlaWdodDo4cHg7YW5pbWF0aW9uLWRlbGF5Oi4zc30udm9pY2Utd2F2ZT5pOm50aC1jaGlsZCg0KXtoZWlnaHQ6MTFweDthbmltYXRpb24tZGVsYXk6LjQ1c31Aa2V5ZnJhbWVzIHZvaWNlLXdhdmUtYm91bmNlezAlLHRve3RyYW5zZm9ybTpzY2FsZVkoLjQpO29wYWNpdHk6LjZ9NTAle3RyYW5zZm9ybTpzY2FsZVkoMSk7b3BhY2l0eToxfX0udm9pY2UtYnViYmxlLWFycm93e3Bvc2l0aW9uOmFic29sdXRlO3RvcDoxMDAlO2xlZnQ6MjhweDt3aWR0aDowO2hlaWdodDowO2JvcmRlci1sZWZ0OjdweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmlnaHQ6N3B4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci10b3A6OHB4IHNvbGlkIHZhcigtLWFjY2VudCwgI2M1NjUzZCl9LnZvaWNlLXRyYW5zY3JpcHQtYnViYmxlLmlzLWNhbmNlbGluZ3tiYWNrZ3JvdW5kOnZhcigtLWRhbmdlciwgI2IyNGY0NSl9LnZvaWNlLXRyYW5zY3JpcHQtYnViYmxlLmlzLWNhbmNlbGluZyAudm9pY2UtYnViYmxlLWFycm93e2JvcmRlci10b3AtY29sb3I6dmFyKC0tZGFuZ2VyLCAjYjI0ZjQ1KX1AbWVkaWEobWF4LXdpZHRoOjcyMHB4KXsuYnRuLWNpcmNsZS1hY3Rpb257d2lkdGg6MzBweDtoZWlnaHQ6MzBweDttaW4td2lkdGg6MzBweH0uY29tcG9zZXItbWFpbi1yb3d7cGFkZGluZzozcHggNHB4O21pbi1oZWlnaHQ6NDJweDtnYXA6MnB4fX0uYXR0YWNobWVudC1wcmV2aWV3e2Rpc3BsYXk6ZmxleDtnYXA6NnB4O3BhZGRpbmc6NnB4IDEwcHg7ZmxleC13cmFwOndyYXA7Ym9yZGVyLXRvcDoxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSl9LmF0dGFjaG1lbnQtcHJldmlldy5oaWRkZW57ZGlzcGxheTpub25lfS5hdHRhY2htZW50LXBpbGx7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjRweDtwYWRkaW5nOjNweCA4cHg7YmFja2dyb3VuZDojYzU2NTNkMGY7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDE5NywxMDEsNjEsLjE4KTtib3JkZXItcmFkaXVzOjhweDtmb250LXNpemU6LjcycmVtO21heC13aWR0aDoyMDBweDtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7YW5pbWF0aW9uOnBlcm1pc3Npb24tZmFkZS1pbiAuMnMgZWFzZS1vdXR9LmF0dGFjaG1lbnQtcGlsbCBpbWd7d2lkdGg6MjhweDtoZWlnaHQ6MjhweDtvYmplY3QtZml0OmNvdmVyO2JvcmRlci1yYWRpdXM6NHB4O2ZsZXgtc2hyaW5rOjB9LmF0dGFjaG1lbnQtcGlsbCAuYXR0LWljb257d2lkdGg6MThweDtoZWlnaHQ6MThweDtmbGV4LXNocmluazowO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtmb250LXNpemU6Ljg1cmVtfS5hdHRhY2htZW50LXBpbGwgLmF0dC1uYW1le292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcDtmbGV4OjE7bWluLXdpZHRoOjB9LmF0dGFjaG1lbnQtcGlsbCAuYXR0LXNpemV7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7Zm9udC1zaXplOi42NXJlbTtmbGV4LXNocmluazowfS5hdHRhY2htZW50LXBpbGwgLmF0dC1yZW1vdmV7Y3Vyc29yOnBvaW50ZXI7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7Zm9udC1zaXplOi44cmVtO2xpbmUtaGVpZ2h0OjE7cGFkZGluZzowIDJweDtmbGV4LXNocmluazowO2JvcmRlcjpub25lO2JhY2tncm91bmQ6bm9uZX0uYXR0YWNobWVudC1waWxsIC5hdHQtcmVtb3ZlOmhvdmVye2NvbG9yOnZhcigtLWRhbmdlcil9LmlucHV0LWNvbXBvc2VyLmRyYWctb3Zlcntib3JkZXItY29sb3I6dmFyKC0tYWNjZW50KSFpbXBvcnRhbnQ7YmFja2dyb3VuZDojYzU2NTNkMGEhaW1wb3J0YW50O2JveC1zaGFkb3c6MCAwIDAgMnB4IHZhcigtLWFjY2VudC1tdXRlZCksaW5zZXQgMCAwIDIwcHggI2M1NjUzZDA4fS5mb2xkZXItcGlja2VyLW1vZGFse21heC13aWR0aDo0ODBweH0uZm9sZGVyLXBpY2tlci1tb2RhbCAubW9kYWwtYm9keXtwYWRkaW5nOjE2cHh9LmxvZ2luLWNvbnRhaW5lcntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7bWluLWhlaWdodDoxMDB2aDttaW4taGVpZ2h0OjEwMGR2aDtwYWRkaW5nOjI0cHh9LmxvZ2luLWNhcmR7d2lkdGg6MTAwJTttYXgtd2lkdGg6MzgwcHg7YmFja2dyb3VuZDojZmZmYmY1ZWI7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDE1MCwxMTgsODUsLjE2KTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1sZyk7b3ZlcmZsb3c6aGlkZGVuO2JveC1zaGFkb3c6dmFyKC0tc2hhZG93LXNvZnQpfS5sb2dpbi1oZWFkZXJ7cGFkZGluZzoyOHB4IDI0cHggMjJweDt0ZXh0LWFsaWduOmNlbnRlcjtib3JkZXItYm90dG9tOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlKTtiYWNrZ3JvdW5kOnJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgdG9wLHJnYmEoMjE0LDE0NCwxMDAsLjI2KSx0cmFuc3BhcmVudCA0NSUpLGxpbmVhci1ncmFkaWVudCgxODBkZWcsI2ZmZjZlYmQ5LCNmZmZiZjVkOSl9LmJvb3QtbG9hZGluZ3ttaW4taGVpZ2h0OjEwMHZoO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtwYWRkaW5nOjI0cHh9LmJvb3QtbG9hZGluZy1jYXJke2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEycHg7cGFkZGluZzoxNnB4IDE4cHg7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlKTtib3JkZXItcmFkaXVzOjE2cHg7YmFja2dyb3VuZDp2YXIoLS1zdXJmYWNlLWVsZXZhdGVkKTtib3gtc2hhZG93OnZhcigtLXNoYWRvdy1zbSk7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpfS5ib290LWxvYWRpbmctc3Bpbm5lcnt3aWR0aDoxOHB4O2hlaWdodDoxOHB4O2ZsZXgtc2hyaW5rOjA7Ym9yZGVyOjJweCBzb2xpZCByZ2JhKDE5NywxMDEsNjEsLjE2KTtib3JkZXItdG9wLWNvbG9yOnZhcigtLWFjY2VudCk7Ym9yZGVyLXJhZGl1czo5OTlweDthbmltYXRpb246bG9naW5TcGluIC44cyBsaW5lYXIgaW5maW5pdGV9LmJvb3QtbG9hZGluZy10ZXh0e2ZvbnQtc2l6ZTouOTM3NXJlbTtmb250LXdlaWdodDo1MDB9LmxvZ2luLWxvZ297ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2dhcDoxMHB4O21hcmdpbi1ib3R0b206OHB4fS5sb2dpbi1sb2dvLWljb257d2lkdGg6NDJweDtoZWlnaHQ6NDJweDtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxMzVkZWcsI2Q2N2I1MiwjYWI1MjJlKTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1tZCk7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2JveC1zaGFkb3c6aW5zZXQgMCAxcHggI2ZmZmZmZjU5O2ZvbnQtc2l6ZToxOHB4O2NvbG9yOiNmZmY7Zm9udC13ZWlnaHQ6NzAwfS5sb2dpbi1sb2dvLXRleHR7Zm9udC1zaXplOjEuNnJlbTtmb250LXdlaWdodDo2MDA7bGV0dGVyLXNwYWNpbmc6LS4wMmVtfS5sb2dpbi1zdWJ0aXRsZXtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtmb250LXNpemU6Ljg3NXJlbX0ubG9naW4tYm9keXtwYWRkaW5nOjIycHggMjRweCAyNHB4fS5sb2dpbi1jYXJkLWxvYWRpbmcgLmxvZ2luLWJvZHl7cGFkZGluZy10b3A6MThweDtwYWRkaW5nLWJvdHRvbToyNHB4fS5sb2dpbi1oaW50e2ZvbnQtc2l6ZTouODEyNXJlbTtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7bWFyZ2luLWJvdHRvbToxNnB4O2xpbmUtaGVpZ2h0OjEuNX0ubG9naW4tbXV0ZWR7bWFyZ2luOjRweCAwIDA7Zm9udC1zaXplOi43NXJlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtsaW5lLWhlaWdodDoxLjQ1fS5sb2dpbi1zdGF0dXN7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7Z2FwOjE0cHg7cGFkZGluZzoycHggMH0ubG9naW4tc3Bpbm5lcnt3aWR0aDoxOHB4O2hlaWdodDoxOHB4O2ZsZXgtc2hyaW5rOjA7bWFyZ2luLXRvcDoycHg7Ym9yZGVyOjJweCBzb2xpZCByZ2JhKDE5NywxMDEsNjEsLjE2KTtib3JkZXItdG9wLWNvbG9yOnZhcigtLWFjY2VudCk7Ym9yZGVyLXJhZGl1czo5OTlweDthbmltYXRpb246bG9naW5TcGluIC44cyBsaW5lYXIgaW5maW5pdGV9LnBhc3N3b3JkLWZpZWxke3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXJ9LnBhc3N3b3JkLWlucHV0e3BhZGRpbmctcmlnaHQ6NzhweDttaW4taGVpZ2h0OjQ2cHh9LnBhc3N3b3JkLXRvZ2dsZXtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDo4cHg7dG9wOjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTtib3JkZXI6bm9uZTtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtmb250LXNpemU6Ljc1cmVtO2ZvbnQtd2VpZ2h0OjYwMDtwYWRkaW5nOjZweCA4cHg7Ym9yZGVyLXJhZGl1czo4cHg7Y3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIHZhcigtLXRyYW5zaXRpb24tZmFzdCksY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KX0ucGFzc3dvcmQtdG9nZ2xlOmhvdmVye2JhY2tncm91bmQ6IzdkNWIzOTE0O2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSl9LnBhc3N3b3JkLXRvZ2dsZTpmb2N1cy12aXNpYmxle291dGxpbmU6MnB4IHNvbGlkIHZhcigtLWFjY2VudCk7b3V0bGluZS1vZmZzZXQ6MnB4fUBrZXlmcmFtZXMgbG9naW5TcGluezAle3RyYW5zZm9ybTpyb3RhdGUoMCl9dG97dHJhbnNmb3JtOnJvdGF0ZSgzNjBkZWcpfX0uYnRuOmRpc2FibGVke2N1cnNvcjpub3QtYWxsb3dlZDtvcGFjaXR5Oi43Mjt0cmFuc2Zvcm06bm9uZTtib3gtc2hhZG93Om5vbmV9LmxvZ2luLWJvZHkgLmZpZWxke21hcmdpbi1ib3R0b206MjBweH0ubG9naW4tYm9keSAuaGludHttYXJnaW4tdG9wOjEwcHh9LmxvZ2luLWJvZHkgLmVycm9yLW1lc3NhZ2V7bWFyZ2luLXRvcDoxMHB4O21hcmdpbi1ib3R0b206MH0ubG9naW4tY2VydC1oaW50e21hcmdpbi10b3A6MTRweDtwYWRkaW5nOjE0cHggMTZweDtib3JkZXItcmFkaXVzOjEycHg7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDE5MCwxMjAsNDAsLjMyKTtiYWNrZ3JvdW5kOiNkYzk2M2MxYTt0ZXh0LWFsaWduOmxlZnR9LmxvZ2luLWNlcnQtaGludC10aXRsZXtmb250LXNpemU6Ljg3NXJlbTtmb250LXdlaWdodDo2MDA7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTttYXJnaW4tYm90dG9tOjZweH0ubG9naW4tY2VydC1oaW50LWJvZHl7Zm9udC1zaXplOi44MTI1cmVtO2xpbmUtaGVpZ2h0OjEuNjtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7bWFyZ2luOjAgMCAxMnB4fS5sb2dpbi1jZXJ0LWhpbnQgLmJ0bnttYXJnaW4tdG9wOjB9Lm1vZGFsLXN1YnRpdGxle21hcmdpbi10b3A6NHB4O2ZvbnQtc2l6ZTouNzVyZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7bGluZS1oZWlnaHQ6MS41fS5zZXNzaW9uLW1vZGFsIC5tb2RhbC1ib2R5e3BhZGRpbmctdG9wOjE2cHg7cGFkZGluZy1ib3R0b206OHB4fS5zZXNzaW9uLW1vZGFsIC5maWVsZDpsYXN0LW9mLXR5cGV7bWFyZ2luLWJvdHRvbTo2cHh9LnNlc3Npb24tbW9kYWwgLm1vZGFsLWZvb3RlcntmbGV4LXNocmluazowO3BhZGRpbmc6MTJweCAyMnB4IDE4cHg7Ym9yZGVyLXRvcDoxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSl9LnNlc3Npb24tbW9kYWwgLm1vZGFsLWZvb3RlciAuZXJyb3ItbWVzc2FnZXttYXJnaW4tdG9wOjhweDttYXJnaW4tYm90dG9tOjB9Lm1vZGUtY2FyZHN7ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDp3cmFwO2dhcDo2cHh9Lm1vZGUtY2FyZHtmbGV4OjEgMSAwO21pbi13aWR0aDowO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6Y2VudGVyO2dhcDozcHg7cGFkZGluZzoxMHB4IDhweDtib3JkZXI6MS41cHggc29saWQgcmdiYSgxMjUsOTEsNTcsLjIpO2JvcmRlci1yYWRpdXM6MTBweDtiYWNrZ3JvdW5kOiNmZmY5O2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246Ym9yZGVyLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCksYm94LXNoYWRvdyB2YXIoLS10cmFuc2l0aW9uLWZhc3QpLGJhY2tncm91bmQgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KTt0ZXh0LWFsaWduOmNlbnRlcjtvdXRsaW5lOm5vbmV9Lm1vZGUtY2FyZDpob3Zlcntib3JkZXItY29sb3I6I2M1NjUzZDU5O2JhY2tncm91bmQ6I2ZmZmN9Lm1vZGUtY2FyZC5hY3RpdmV7Ym9yZGVyLWNvbG9yOnZhcigtLWFjY2VudCk7YmFja2dyb3VuZDojZmZmN2VmZjI7Ym94LXNoYWRvdzowIDAgMCAxLjVweCB2YXIoLS1hY2NlbnQtbXV0ZWQpfS5tb2RlLWNhcmQ6Zm9jdXMtdmlzaWJsZXtib3JkZXItY29sb3I6dmFyKC0tYWNjZW50KTtib3gtc2hhZG93OjAgMCAwIDEuNXB4IHZhcigtLWFjY2VudC1tdXRlZCl9Lm1vZGUtY2FyZC1sYWJlbHtmb250LXNpemU6LjhyZW07Zm9udC13ZWlnaHQ6NjAwO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7bGluZS1oZWlnaHQ6MS4zfS5tb2RlLWNhcmQtZGVzY3tmb250LXNpemU6LjY4cmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2xpbmUtaGVpZ2h0OjEuM30ubW9kZS1jYXJkLmFjdGl2ZSAubW9kZS1jYXJkLWxhYmVse2NvbG9yOnZhcigtLWFjY2VudCl9Lm1vZGUtY2FyZC5kaXNhYmxlZHtvcGFjaXR5Oi40NTtjdXJzb3I6bm90LWFsbG93ZWQ7cG9pbnRlci1ldmVudHM6bm9uZX0ubW9kZS1jYXJkLmRpc2FibGVkOmhvdmVye2JvcmRlci1jb2xvcjojN2Q1YjM5MzM7YmFja2dyb3VuZDojZmZmOX0ubW9kZS1jYXJkLmRpc2FibGVkIC5tb2RlLWNhcmQtbGFiZWwsLm1vZGUtY2FyZC5kaXNhYmxlZCAubW9kZS1jYXJkLWRlc2N7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCl9Lm1vZGUtY2FyZC5hY3RpdmUuZGlzYWJsZWR7Ym94LXNoYWRvdzpub25lfS5wYXNzd29yZC1pbnB1dFtkYXRhLWVycm9yPXRydWVdLC5wYXNzd29yZC1pbnB1dFthcmlhLWludmFsaWQ9dHJ1ZV17Ym9yZGVyLWNvbG9yOnZhcigtLWRhbmdlcik7Ym94LXNoYWRvdzowIDAgMCAzcHggdmFyKC0tZGFuZ2VyLW11dGVkKX0ucGFzc3dvcmQtaW5wdXRbZGF0YS1lcnJvcj10cnVlXSsucGFzc3dvcmQtdG9nZ2xlLC5wYXNzd29yZC1pbnB1dFthcmlhLWludmFsaWQ9dHJ1ZV0rLnBhc3N3b3JkLXRvZ2dsZXtjb2xvcjp2YXIoLS1kYW5nZXIpfS5wYXNzd29yZC1pbnB1dDpmb2N1cysucGFzc3dvcmQtdG9nZ2xle2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSl9LnBhc3N3b3JkLXRvZ2dsZTphY3RpdmV7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSkgc2NhbGUoLjk4KX0ucGFzc3dvcmQtaW5wdXQ6Oi1tcy1yZXZlYWwsLnBhc3N3b3JkLWlucHV0OjotbXMtY2xlYXJ7ZGlzcGxheTpub25lfS5wYXNzd29yZC1pbnB1dDo6LXdlYmtpdC1jcmVkZW50aWFscy1hdXRvLWZpbGwtYnV0dG9uLC5wYXNzd29yZC1pbnB1dDo6LXdlYmtpdC1jb250YWN0cy1hdXRvLWZpbGwtYnV0dG9ue3Zpc2liaWxpdHk6aGlkZGVuO2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnQ7cG9pbnRlci1ldmVudHM6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDowfS5wYXNzd29yZC1pbnB1dFt0eXBlPXRleHRde2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyl9LmZpZWxke21hcmdpbi1ib3R0b206MThweH0uZmllbGQtbGFiZWx7ZGlzcGxheTpibG9jaztmb250LXNpemU6LjgxMjVyZW07Zm9udC13ZWlnaHQ6NjAwO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTttYXJnaW4tYm90dG9tOjhweH0uZmllbGQtaW5wdXR7d2lkdGg6MTAwJTtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2ZvbnQtc2l6ZTouODc1cmVtO2JhY2tncm91bmQ6I2ZmZmZmZmJmO2JvcmRlcjoxcHggc29saWQgcmdiYSgxMjUsOTEsNTcsLjIyKTtib3JkZXItcmFkaXVzOjEycHg7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtwYWRkaW5nOjEycHggMTRweDtvdXRsaW5lOm5vbmU7dHJhbnNpdGlvbjpib3JkZXItY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KSxib3gtc2hhZG93IHZhcigtLXRyYW5zaXRpb24tZmFzdCksYmFja2dyb3VuZCB2YXIoLS10cmFuc2l0aW9uLWZhc3QpO21pbi1oZWlnaHQ6NDRweH0uZmllbGQtaW5wdXQ6Zm9jdXN7Ym9yZGVyLWNvbG9yOnZhcigtLWFjY2VudCk7Ym94LXNoYWRvdzowIDAgMCAzcHggdmFyKC0tYWNjZW50LW11dGVkKSwwIDAgMjBweCAjYzU2NTNkMTQ7YmFja2dyb3VuZDojZmZmZmZmZTZ9LmZpZWxkLWlucHV0OjpwbGFjZWhvbGRlcntjb2xvcjp2YXIoLS10ZXh0LW11dGVkKX0ubW9kYWwtYmFja2Ryb3B7cG9zaXRpb246Zml4ZWQ7aW5zZXQ6MDt6LWluZGV4OjUwMDtiYWNrZ3JvdW5kOiMxNDBlMDg1NztiYWNrZHJvcC1maWx0ZXI6Ymx1cigxOHB4KSBzYXR1cmF0ZSgxNDAlKTstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjpibHVyKDE4cHgpIHNhdHVyYXRlKDE0MCUpO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtwYWRkaW5nLXRvcDptYXgoMzJweCx2YXIoLS13YW5kLXNhZmUtdG9wKSk7cGFkZGluZy1ib3R0b206bWF4KDMycHgsdmFyKC0td2FuZC1zYWZlLWJvdHRvbSkpO3BhZGRpbmctbGVmdDptYXgoMzJweCx2YXIoLS13YW5kLXNhZmUtbGVmdCkpO3BhZGRpbmctcmlnaHQ6bWF4KDMycHgsdmFyKC0td2FuZC1zYWZlLXJpZ2h0KSk7YW5pbWF0aW9uOmxpcXVpZEJhY2tkcm9wSW4gLjI4cyB2YXIoLS1lYXNlLW91dC1leHBvLCBjdWJpYy1iZXppZXIoLjE2LCAxLCAuMywgMSkpIGJvdGh9Lm1vZGFsLWJhY2tkcm9wLmNsb3Npbmd7YW5pbWF0aW9uOmxpcXVpZEJhY2tkcm9wT3V0IC4xOHMgdmFyKC0tZWFzZS1pbi1vdXQtc21vb3RoLCBjdWJpYy1iZXppZXIoLjQsIDAsIC4yLCAxKSkgYm90aDtwb2ludGVyLWV2ZW50czpub25lfUBrZXlmcmFtZXMgbGlxdWlkQmFja2Ryb3BJbnswJXtvcGFjaXR5OjB9dG97b3BhY2l0eToxfX1Aa2V5ZnJhbWVzIGxpcXVpZEJhY2tkcm9wT3V0ezAle29wYWNpdHk6MX10b3tvcGFjaXR5OjB9fS5tb2RhbHtwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDoxMDAlO21heC13aWR0aDo1NjBweDttYXgtaGVpZ2h0Ojg4dmg7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtiYWNrZ3JvdW5kOiNmZmZjZjdiZDtib3JkZXI6LjVweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LC42KTtib3JkZXItcmFkaXVzOjI2cHg7b3ZlcmZsb3c6aGlkZGVuO2JhY2tkcm9wLWZpbHRlcjpibHVyKDQwcHgpIHNhdHVyYXRlKDE4MCUpOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOmJsdXIoNDBweCkgc2F0dXJhdGUoMTgwJSk7Ym94LXNoYWRvdzowIDMycHggODBweCAtMTZweCAjMTQwZTA4NTcsMCA4cHggMjRweCAtOHB4ICMxNDBlMDgyZSwwIDAgMCAuNXB4ICM3ZDViMzkxNCxpbnNldCAwIDFweCAjZmZmZmZmYjM7YW5pbWF0aW9uOmxpcXVpZE1vZGFsSW4gLjMycyBjdWJpYy1iZXppZXIoLjM0LDEuNCwuNjQsMSkgYm90aH0ubW9kYWwtYmFja2Ryb3AuY2xvc2luZyAubW9kYWx7YW5pbWF0aW9uOmxpcXVpZE1vZGFsT3V0IC4xOHMgdmFyKC0tZWFzZS1pbi1vdXQtc21vb3RoLCBjdWJpYy1iZXppZXIoLjQsIDAsIC4yLCAxKSkgYm90aH1Aa2V5ZnJhbWVzIGxpcXVpZE1vZGFsSW57MCV7b3BhY2l0eTowO3RyYW5zZm9ybTpzY2FsZSguOTQpIHRyYW5zbGF0ZVkoMTJweCl9dG97b3BhY2l0eToxO3RyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGVZKDApfX1Aa2V5ZnJhbWVzIGxpcXVpZE1vZGFsT3V0ezAle29wYWNpdHk6MTt0cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlWSgwKX10b3tvcGFjaXR5OjA7dHJhbnNmb3JtOnNjYWxlKC45NykgdHJhbnNsYXRlWSg0cHgpfX1AbWVkaWEocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjpyZWR1Y2Upey5tb2RhbC1iYWNrZHJvcCwubW9kYWwtYmFja2Ryb3AuY2xvc2luZywubW9kYWwsLm1vZGFsLWJhY2tkcm9wLmNsb3NpbmcgLm1vZGFse2FuaW1hdGlvbjpub25lIWltcG9ydGFudH19QHN1cHBvcnRzIG5vdCAoKGJhY2tkcm9wLWZpbHRlcjogYmx1cigxcHgpKSBvciAoLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoMXB4KSkpey5tb2RhbC1iYWNrZHJvcHtiYWNrZ3JvdW5kOiMxNDBlMDg5OX0ubW9kYWx7YmFja2dyb3VuZDojZmZmYWYyO2JvcmRlci1jb2xvcjojN2Q1YjM5MmV9fUBtZWRpYShwcmVmZXJzLWNvbG9yLXNjaGVtZTpkYXJrKXsubW9kYWwtYmFja2Ryb3B7YmFja2dyb3VuZDojMDgwNTAyODB9QHN1cHBvcnRzIG5vdCAoKGJhY2tkcm9wLWZpbHRlcjogYmx1cigxcHgpKSBvciAoLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoMXB4KSkpey5tb2RhbC1iYWNrZHJvcHtiYWNrZ3JvdW5kOiMwODA1MDJjN319fS5zZXNzaW9uLW1vZGFsIC5tb2RhbC1oZWFkZXIsLnNldHRpbmdzLW1vZGFsIC5zZXR0aW5ncy1tb2RhbC1oZWFkZXJ7cGFkZGluZzoyNHB4IDI4cHggMThweDtib3JkZXItYm90dG9tOjFweCBzb2xpZCByZ2JhKDEyNSw5MSw1NywuMDgpO2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7Z2FwOjE2cHg7bWluLWhlaWdodDowfS5zZXNzaW9uLW1vZGFsIC5tb2RhbC10aXRsZSwuc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLW1vZGFsLXRpdGxlLWdyb3VwIC5tb2RhbC10aXRsZXtmb250LXNpemU6MS4zMTI1cmVtO2ZvbnQtd2VpZ2h0OjcwMDtsZXR0ZXItc3BhY2luZzotLjAyMmVtO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7bGluZS1oZWlnaHQ6MS4yfS5zZXNzaW9uLW1vZGFsIC5tb2RhbC1zdWJ0aXRsZSwuc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLW1vZGFsLXN1YnRpdGxle21hcmdpbi10b3A6NXB4O2ZvbnQtc2l6ZTouODEyNXJlbTtmb250LXdlaWdodDo0MDA7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7bGluZS1oZWlnaHQ6MS41O21heC13aWR0aDo0NGNofS5tb2RhbC1jbG9zZS1idG4sLnNlc3Npb24tbW9kYWwgLm1vZGFsLWhlYWRlcj4uYnRuLWljb24uYnRuLWdob3N0LC5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtbW9kYWwtaGVhZGVyPi5idG4taWNvbi5idG4tZ2hvc3R7d2lkdGg6MzJweDtoZWlnaHQ6MzJweDttaW4td2lkdGg6MzJweDttaW4taGVpZ2h0OjMycHg7cGFkZGluZzowO2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6IzdkNWIzOTEyO2JvcmRlcjpub25lO2NvbG9yOnZhcigtLXRleHQtdGVydGlhcnkpO2ZsZXgtc2hyaW5rOjA7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjE4cyBlYXNlLGNvbG9yIC4xOHMgZWFzZSx0cmFuc2Zvcm0gLjI4cyBjdWJpYy1iZXppZXIoLjM0LDEuNCwuNjQsMSksYm94LXNoYWRvdyAuMThzIGVhc2V9Lm1vZGFsLWNsb3NlLWJ0biBzdmd7ZGlzcGxheTpibG9jaztwb2ludGVyLWV2ZW50czpub25lfS5tb2RhbC1jbG9zZS1idG46aG92ZXIsLnNlc3Npb24tbW9kYWwgLm1vZGFsLWhlYWRlcj4uYnRuLWljb24uYnRuLWdob3N0OmhvdmVyLC5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtbW9kYWwtaGVhZGVyPi5idG4taWNvbi5idG4tZ2hvc3Q6aG92ZXJ7YmFja2dyb3VuZDojYjI0ZjQ1MWY7Y29sb3I6dmFyKC0tZGFuZ2VyKTt0cmFuc2Zvcm06cm90YXRlKDkwZGVnKTtib3gtc2hhZG93OjAgMnB4IDhweCAjYjI0ZjQ1MmV9Lm1vZGFsLWNsb3NlLWJ0bjphY3RpdmUsLnNlc3Npb24tbW9kYWwgLm1vZGFsLWhlYWRlcj4uYnRuLWljb24uYnRuLWdob3N0OmFjdGl2ZSwuc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLW1vZGFsLWhlYWRlcj4uYnRuLWljb24uYnRuLWdob3N0OmFjdGl2ZXtiYWNrZ3JvdW5kOiNiMjRmNDUzMzt0cmFuc2Zvcm06cm90YXRlKDkwZGVnKSBzY2FsZSguOTIpO3RyYW5zaXRpb24tZHVyYXRpb246LjA2c30ubW9kYWwtY2xvc2UtYnRuOmZvY3VzLXZpc2libGV7b3V0bGluZToycHggc29saWQgdmFyKC0tYWNjZW50KTtvdXRsaW5lLW9mZnNldDozcHh9LnNlc3Npb24tbW9kYWwgLm1vZGFsLWJvZHksLnNldHRpbmdzLW1vZGFsIC5zZXR0aW5ncy1tb2RhbC1ib2R5e3BhZGRpbmc6MjBweCAyOHB4fS5zZXNzaW9uLW1vZGFsIC5tb2RhbC1mb290ZXJ7cGFkZGluZzoxNnB4IDI4cHggMjJweDtib3JkZXItdG9wOjFweCBzb2xpZCByZ2JhKDEyNSw5MSw1NywuMDgpfS5zZXNzaW9uLW1vZGFsIC5maWVsZC1pbnB1dCwuc2V0dGluZ3MtbW9kYWwgLmZpZWxkLWlucHV0LC5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtY2FyZCAuZmllbGQtaW5wdXQsLnNlc3Npb24tbW9kYWwgc2VsZWN0LmZpZWxkLWlucHV0LC5zZXR0aW5ncy1tb2RhbCBzZWxlY3QuZmllbGQtaW5wdXR7YmFja2dyb3VuZDojZmZmZmZmYzc7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDEyNSw5MSw1NywuMTQpO2JvcmRlci1yYWRpdXM6MTJweDtwYWRkaW5nOjExcHggMTRweDtib3gtc2hhZG93Omluc2V0IDAgMXB4IDEuNXB4ICM3ZDViMzkwYTt0cmFuc2l0aW9uOmJvcmRlci1jb2xvciAuMTVzIGVhc2UsYm94LXNoYWRvdyAuMTVzIGVhc2UsYmFja2dyb3VuZCAuMTVzIGVhc2U7YmFja2Ryb3AtZmlsdGVyOm5vbmU7LXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6bm9uZX0uc2Vzc2lvbi1tb2RhbCAuZmllbGQtaW5wdXQ6aG92ZXIsLnNldHRpbmdzLW1vZGFsIC5maWVsZC1pbnB1dDpob3Zlcntib3JkZXItY29sb3I6IzdkNWIzOTNkO2JhY2tncm91bmQ6I2ZmZmZmZmVifS5zZXNzaW9uLW1vZGFsIC5maWVsZC1pbnB1dDpmb2N1cywuc2V0dGluZ3MtbW9kYWwgLmZpZWxkLWlucHV0OmZvY3VzLC5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtY2FyZCAuZmllbGQtaW5wdXQ6Zm9jdXMsLnNlc3Npb24tbW9kYWwgc2VsZWN0LmZpZWxkLWlucHV0OmZvY3VzLC5zZXR0aW5ncy1tb2RhbCBzZWxlY3QuZmllbGQtaW5wdXQ6Zm9jdXN7YmFja2dyb3VuZDojZmZmO2JvcmRlci1jb2xvcjp2YXIoLS1hY2NlbnQpO2JveC1zaGFkb3c6aW5zZXQgMCAxcHggMS41cHggIzdkNWIzOTBhLDAgMCAwIDNweCB2YXIoLS1hY2NlbnQtbXV0ZWQpfS5zZXNzaW9uLW1vZGFsIC5tb2RlLWNhcmRze2dhcDo4cHh9LnNlc3Npb24tbW9kYWwgLm1vZGUtY2FyZHtwYWRkaW5nOjEycHggMTBweDtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMTI1LDkxLDU3LC4xKTtib3JkZXItcmFkaXVzOjEycHg7YmFja2dyb3VuZDojZmZmOTtib3gtc2hhZG93OjAgMXB4IDJweCAjN2Q1YjM5MDg7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4xNnMgZWFzZSxib3JkZXItY29sb3IgLjE2cyBlYXNlLGJveC1zaGFkb3cgLjE2cyBlYXNlLHRyYW5zZm9ybSAuMTZzIGVhc2U7YmFja2Ryb3AtZmlsdGVyOm5vbmU7LXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6bm9uZX0uc2Vzc2lvbi1tb2RhbCAubW9kZS1jYXJkOmhvdmVye2JhY2tncm91bmQ6I2ZmZmZmZmViO2JvcmRlci1jb2xvcjojN2Q1YjM5MzM7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTFweCk7Ym94LXNoYWRvdzowIDRweCAxMnB4ICM3ZDViMzkxNH0uc2Vzc2lvbi1tb2RhbCAubW9kZS1jYXJkLmFjdGl2ZXtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcsI2ZmZmNmN2YyLCNmZmYwZTBkMSk7Ym9yZGVyOi41cHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuOCk7YmFja2Ryb3AtZmlsdGVyOmJsdXIoMTZweCkgc2F0dXJhdGUoMTgwJSk7LXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6Ymx1cigxNnB4KSBzYXR1cmF0ZSgxODAlKTtib3gtc2hhZG93OjAgMCAwIDFweCAjYzU2NTNkNTIsMCAwIDAgNHB4ICNjNTY1M2QyNCwwIDhweCAyMnB4IC00cHggI2M1NjUzZDRkLGluc2V0IDAgMXB4ICNmZmZmZmZmMixpbnNldCAwIC0xcHggI2M1NjUzZDE0O3RyYW5zZm9ybTpub25lfS5zZXNzaW9uLW1vZGFsIC5tb2RlLWNhcmQuYWN0aXZlIC5tb2RlLWNhcmQtbGFiZWx7Y29sb3I6dmFyKC0tYWNjZW50KX0uc2Vzc2lvbi1tb2RhbCAudG9vbC1jYXJke2JhY2tncm91bmQ6I2ZmZmZmZmIzO2JvcmRlcjoxcHggc29saWQgcmdiYSgxMjUsOTEsNTcsLjEyKTtib3JkZXItcmFkaXVzOjE0cHg7cGFkZGluZzoxNHB4IDE2cHg7Ym94LXNoYWRvdzowIDFweCAycHggIzdkNWIzOTA4O3RyYW5zaXRpb246YmFja2dyb3VuZCAuMThzIGVhc2UsYm9yZGVyLWNvbG9yIC4xOHMgZWFzZSxib3gtc2hhZG93IC4xOHMgZWFzZSx0cmFuc2Zvcm0gLjE4cyBlYXNlO2JhY2tkcm9wLWZpbHRlcjpub25lOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOm5vbmV9LnNlc3Npb24tbW9kYWwgLnRvb2wtY2FyZDpob3ZlcntiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyLWNvbG9yOiM3ZDViMzkzODt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMnB4KTtib3gtc2hhZG93OjAgOHB4IDIwcHggIzdkNWIzOTFhfS5zZXNzaW9uLW1vZGFsIC50b29sLWNhcmQuYWN0aXZle2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZywjZmZmY2Y3ZjIsI2ZmZjBlMGQxKTtib3JkZXI6LjVweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LC44KTtiYWNrZHJvcC1maWx0ZXI6Ymx1cigxNnB4KSBzYXR1cmF0ZSgxODAlKTstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjpibHVyKDE2cHgpIHNhdHVyYXRlKDE4MCUpO2JveC1zaGFkb3c6MCAwIDAgMXB4ICNjNTY1M2Q0ZCwwIDAgMCA0cHggI2M1NjUzZDI0LDAgMTBweCAyOHB4IC02cHggI2M1NjUzZDRkLGluc2V0IDAgMXB4ICNmZmZmZmZmMixpbnNldCAwIC0xcHggI2M1NjUzZDE0O3RyYW5zZm9ybTpub25lfS5zZXNzaW9uLW1vZGFsIC5yZWNlbnQtcGF0aC1idWJibGV7YmFja2dyb3VuZDojZmZmZmZmOGM7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDEyNSw5MSw1NywuMTIpO2JveC1zaGFkb3c6MCAxcHggMnB4ICM3ZDViMzkwODt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjE2cyBlYXNlLGJvcmRlci1jb2xvciAuMTZzIGVhc2UsY29sb3IgLjE2cyBlYXNlLHRyYW5zZm9ybSAuMTZzIGVhc2V9LnNlc3Npb24tbW9kYWwgLnJlY2VudC1wYXRoLWJ1YmJsZTpob3ZlcntiYWNrZ3JvdW5kOiNmZmY3ZWY7Ym9yZGVyLWNvbG9yOnZhcigtLWFjY2VudCk7Y29sb3I6dmFyKC0tYWNjZW50KTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMXB4KX0uc2Vzc2lvbi1tb2RhbCAuc2Vzc2lvbi1pbmxpbmUtdG9nZ2xle3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo4cHg7cGFkZGluZzo2cHggOHB4IDZweCAxMnB4O2JvcmRlci1yYWRpdXM6OTk5cHg7YmFja2dyb3VuZDojN2Q1YjM5MGQ7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDEyNSw5MSw1NywuMDgpO2N1cnNvcjpwb2ludGVyO3VzZXItc2VsZWN0Om5vbmU7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4xOHMgZWFzZSxib3JkZXItY29sb3IgLjE4cyBlYXNlLGJveC1zaGFkb3cgLjE4cyBlYXNlLGNvbG9yIC4xOHMgZWFzZTtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSl9LnNlc3Npb24tbW9kYWwgLnNlc3Npb24taW5saW5lLXRvZ2dsZTpob3ZlcntiYWNrZ3JvdW5kOiM3ZDViMzkxNztib3JkZXItY29sb3I6IzdkNWIzOTI5fS5zZXNzaW9uLW1vZGFsIC5zZXNzaW9uLWlubGluZS10b2dnbGU6aGFzKC5zd2l0Y2gtdG9nZ2xlOmNoZWNrZWQpe2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZywjZmZmN2VmLCNmZmVlZDgpO2JvcmRlci1jb2xvcjp2YXIoLS1hY2NlbnQpO2NvbG9yOnZhcigtLWFjY2VudCk7Ym94LXNoYWRvdzowIDAgMCAzcHggdmFyKC0tYWNjZW50LW11dGVkKSwwIDRweCAxMnB4ICNjNTY1M2QxZn0uc2Vzc2lvbi1tb2RhbCAuc2Vzc2lvbi1pbmxpbmUtdG9nZ2xlLWljb257ZmxleC1zaHJpbms6MDtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTt0cmFuc2l0aW9uOmNvbG9yIC4xOHMgZWFzZSx0cmFuc2Zvcm0gLjI4cyBjdWJpYy1iZXppZXIoLjM0LDEuNCwuNjQsMSl9LnNlc3Npb24tbW9kYWwgLnNlc3Npb24taW5saW5lLXRvZ2dsZTpoYXMoLnN3aXRjaC10b2dnbGU6Y2hlY2tlZCkgLnNlc3Npb24taW5saW5lLXRvZ2dsZS1pY29ue2NvbG9yOnZhcigtLWFjY2VudCk7dHJhbnNmb3JtOnJvdGF0ZSg4ZGVnKX0uc2Vzc2lvbi1tb2RhbCAuc2Vzc2lvbi1pbmxpbmUtdG9nZ2xlLWxhYmVse2ZvbnQtc2l6ZTouNzVyZW07Zm9udC13ZWlnaHQ6NjAwO2xldHRlci1zcGFjaW5nOi4wMDVlbTtjb2xvcjppbmhlcml0O3RyYW5zaXRpb246Y29sb3IgLjE4cyBlYXNlfS5zZXNzaW9uLW1vZGFsIC5zZXNzaW9uLWlubGluZS10b2dnbGUgLnN3aXRjaC10b2dnbGV7cG9zaXRpb246YWJzb2x1dGU7b3BhY2l0eTowO3dpZHRoOjA7aGVpZ2h0OjA7cG9pbnRlci1ldmVudHM6bm9uZX0uc2Vzc2lvbi1tb2RhbCAuc2Vzc2lvbi1pbmxpbmUtdG9nZ2xlIC5zd2l0Y2gtc2xpZGVye3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjMycHg7aGVpZ2h0OjIwcHg7bWluLXdpZHRoOjMycHg7Ym9yZGVyLXJhZGl1czoxMHB4O2JhY2tncm91bmQ6IzdkNWIzOTM4O2JveC1zaGFkb3c6aW5zZXQgMCAxcHggMXB4ICM3ZDViMzkyZTt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjIycyBlYXNlLGJveC1zaGFkb3cgLjIycyBlYXNlfS5zZXNzaW9uLW1vZGFsIC5zZXNzaW9uLWlubGluZS10b2dnbGUgLnN3aXRjaC1zbGlkZXI6YWZ0ZXJ7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MnB4O2xlZnQ6MnB4O3dpZHRoOjE2cHg7aGVpZ2h0OjE2cHg7Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZDojZmZmO2JveC1zaGFkb3c6MCAxLjVweCAzcHggIzE0MGUwODM4LDAgMCAwIC41cHggIzdkNWIzOTBmO3RyYW5zaXRpb246dHJhbnNmb3JtIC4yNHMgY3ViaWMtYmV6aWVyKC4zNCwxLjQsLjY0LDEpfS5zZXNzaW9uLW1vZGFsIC5zZXNzaW9uLWlubGluZS10b2dnbGUgLnN3aXRjaC10b2dnbGU6Y2hlY2tlZCsuc3dpdGNoLXNsaWRlcntiYWNrZ3JvdW5kOnZhcigtLWFjY2VudCk7Ym94LXNoYWRvdzppbnNldCAwIDFweCAxcHggIzAwMDAwMDFhfS5zZXNzaW9uLW1vZGFsIC5zZXNzaW9uLWlubGluZS10b2dnbGUgLnN3aXRjaC10b2dnbGU6Y2hlY2tlZCsuc3dpdGNoLXNsaWRlcjphZnRlcnt0cmFuc2Zvcm06dHJhbnNsYXRlKDEycHgpfS5zZXNzaW9uLW1vZGFsIC5zZXNzaW9uLWlubGluZS10b2dnbGUgLnN3aXRjaC10b2dnbGU6Zm9jdXMtdmlzaWJsZSsuc3dpdGNoLXNsaWRlcntvdXRsaW5lOjJweCBzb2xpZCB2YXIoLS1hY2NlbnQpO291dGxpbmUtb2Zmc2V0OjJweH0uc2Vzc2lvbi1tb2RhbCAuc2Vzc2lvbi1raW5kLWhpbnQtcm93e2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTRweH0uc2Vzc2lvbi1tb2RhbCAuc3VnZ2VzdGlvbnN7YmFja2dyb3VuZDojZmZmY2Y3ZjU7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDEyNSw5MSw1NywuMTQpO2JvcmRlci1yYWRpdXM6MTJweDtib3gtc2hhZG93OjAgMCAwIC41cHggIzdkNWIzOTBkLDAgMTJweCAyOHB4IC04cHggIzE0MGUwODJlO2JhY2tkcm9wLWZpbHRlcjpibHVyKDIwcHgpIHNhdHVyYXRlKDE4MCUpOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOmJsdXIoMjBweCkgc2F0dXJhdGUoMTgwJSk7b3ZlcmZsb3c6aGlkZGVufS5zZXNzaW9uLW1vZGFsIC5zdWdnZXN0aW9uLWl0ZW06aG92ZXJ7YmFja2dyb3VuZDojZThjNWFlNTJ9LnNlc3Npb24tbW9kYWwgLmVycm9yLW1lc3NhZ2UsLnNldHRpbmdzLW1vZGFsIC5lcnJvci1tZXNzYWdle2JhY2tncm91bmQ6I2IyNGY0NTFhO2JvcmRlcjoxcHggc29saWQgcmdiYSgxNzgsNzksNjksLjIpO2NvbG9yOnZhcigtLWRhbmdlcik7Ym9yZGVyLXJhZGl1czoxMHB4O3BhZGRpbmc6MTBweCAxMnB4O2JhY2tkcm9wLWZpbHRlcjpub25lOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOm5vbmV9LnNlc3Npb24tbW9kYWwgLmZpZWxkLWxhYmVsLC5zZXR0aW5ncy1tb2RhbCAuZmllbGQtbGFiZWx7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6LjgxMjVyZW07bWFyZ2luLWJvdHRvbTo4cHh9LnNlc3Npb24tbW9kYWwgLm1vZGFsLWZvb3RlciAuYnRuLXByaW1hcnksLnNldHRpbmdzLW1vZGFsIC5idG4tcHJpbWFyeXtib3gtc2hhZG93OjAgNnB4IDE2cHggLTRweCAjYzU2NTNkNjYsMCAycHggNnB4IC0ycHggI2M1NjUzZDRkLGluc2V0IDAgMXB4ICNmZmYzO2JvcmRlci1yYWRpdXM6MTJweH0uc2Vzc2lvbi1tb2RhbCAubW9kYWwtZm9vdGVyIC5idG4tcHJpbWFyeTpob3Zlciwuc2V0dGluZ3MtbW9kYWwgLmJ0bi1wcmltYXJ5OmhvdmVye2JveC1zaGFkb3c6MCAxMHB4IDI0cHggLTRweCAjYzU2NTNkNzUsMCA0cHggMTBweCAtMnB4ICNjNTY1M2Q1NyxpbnNldCAwIDFweCAjZmZmZmZmNDB9LnNlc3Npb24tbW9kYWwgLmJ0bi1zZWNvbmRhcnksLnNldHRpbmdzLW1vZGFsIC5idG4tc2Vjb25kYXJ5e2JhY2tncm91bmQ6I2ZmZmZmZmM3O2JvcmRlcjoxcHggc29saWQgcmdiYSgxMjUsOTEsNTcsLjE0KTtib3gtc2hhZG93OjAgMXB4IDJweCAjN2Q1YjM5MGE7Ym9yZGVyLXJhZGl1czoxMnB4fS5zZXNzaW9uLW1vZGFsIC5idG4tc2Vjb25kYXJ5OmhvdmVyLC5zZXR0aW5ncy1tb2RhbCAuYnRuLXNlY29uZGFyeTpob3ZlcntiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyLWNvbG9yOiM3ZDViMzkzZDtib3gtc2hhZG93OjAgNHB4IDEycHggIzdkNWIzOTE0fS5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3Mtc2lkZWJhcntib3JkZXItcmlnaHQ6MXB4IHNvbGlkIHJnYmEoMTI1LDkxLDU3LC4wOCk7cGFkZGluZy1yaWdodDoxMnB4fS5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3Mtc2lkZWJhci10aXRsZXtmb250LXNpemU6LjY4NzVyZW07Zm9udC13ZWlnaHQ6NjAwO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtsZXR0ZXItc3BhY2luZzouMDhlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKX0uc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLXRhYnN7Z2FwOjJweH0uc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLXRhYntwYWRkaW5nOjExcHggMTRweDtib3JkZXI6bm9uZTtib3JkZXItcmFkaXVzOjEwcHg7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3gtc2hhZG93Om5vbmU7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMTRzIGVhc2UsY29sb3IgLjE0cyBlYXNlLHRyYW5zZm9ybSAuMTRzIGVhc2U7YmFja2Ryb3AtZmlsdGVyOm5vbmU7LXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6bm9uZX0uc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLXRhYjpiZWZvcmV7ZGlzcGxheTpub25lfS5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtdGFiOmhvdmVye2JhY2tncm91bmQ6IzdkNWIzOTBmO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7dHJhbnNmb3JtOm5vbmU7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50fS5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtdGFiLmFjdGl2ZXtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcsI2ZmZmNmN2YyLCNmZmY0ZThjNyk7Y29sb3I6dmFyKC0tYWNjZW50KTtiYWNrZHJvcC1maWx0ZXI6Ymx1cigxNHB4KSBzYXR1cmF0ZSgxODAlKTstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjpibHVyKDE0cHgpIHNhdHVyYXRlKDE4MCUpO2JveC1zaGFkb3c6aW5zZXQgMCAwIDAgMXB4ICNjNTY1M2Q0MCxpbnNldCAwIDFweCAjZmZmZmZmZTYsaW5zZXQgMCAtMXB4ICNjNTY1M2QxNCwwIDRweCAxNHB4IC00cHggI2M1NjUzZDM4LDAgMXB4IDNweCAjN2Q1YjM5MGZ9LnNldHRpbmdzLW1vZGFsIC5zZXR0aW5ncy10YWIuYWN0aXZlIC5zZXR0aW5ncy10YWItbWV0YXtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSl9LnNldHRpbmdzLW1vZGFsIC5zZXR0aW5ncy10YWItbWFpbntmb250LXNpemU6Ljg3NXJlbTtmb250LXdlaWdodDo2MDA7bGV0dGVyLXNwYWNpbmc6LS4wMDVlbX0uc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLXRhYi1tZXRhe2ZvbnQtc2l6ZTouNzEyNXJlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKX0uc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLXBhbmVsLWhlYWRlcnttYXJnaW46MCAwIDE2cHg7cGFkZGluZy1ib3R0b206MTRweDtib3JkZXItYm90dG9tOjFweCBzb2xpZCByZ2JhKDEyNSw5MSw1NywuMDgpfS5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtcGFuZWwtdGl0bGV7Zm9udC1zaXplOjEuMTg3NXJlbTtmb250LXdlaWdodDo3MDA7bGV0dGVyLXNwYWNpbmc6LS4wMmVtfS5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtcGFuZWwtZGVzY3tmb250LXNpemU6LjgxMjVyZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCl9LnNldHRpbmdzLW1vZGFsIC5zZXR0aW5ncy1jYXJkLC5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtdXBkYXRlLXNlY3Rpb24sLnNldHRpbmdzLW1vZGFsIC5zZXR0aW5ncy1ub3RpZmljYXRpb24tc2VjdGlvbiwuc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLWFib3V0LWluZm8sLnNldHRpbmdzLW1vZGFsIC5wcmVzZXQtaXRlbXtiYWNrZ3JvdW5kOiNmZmZmZmZhNjtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMTI1LDkxLDU3LC4xKTtib3JkZXItcmFkaXVzOjE2cHg7Ym94LXNoYWRvdzowIDFweCAycHggIzdkNWIzOTA4O2JhY2tkcm9wLWZpbHRlcjpub25lOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOm5vbmV9LnNldHRpbmdzLW1vZGFsIC5zZXR0aW5ncy1hYm91dC1yb3d7Ym9yZGVyLWJvdHRvbS1jb2xvcjojN2Q1YjM5MTR9LnNldHRpbmdzLW1vZGFsIC5zd2l0Y2gtY2FyZC1saXN0e2dhcDo4cHh9LnNldHRpbmdzLW1vZGFsIC5zd2l0Y2gtY2FyZHtiYWNrZ3JvdW5kOiNmZmY5O2JvcmRlcjoxcHggc29saWQgcmdiYSgxMjUsOTEsNTcsLjEpO2JvcmRlci1yYWRpdXM6MTRweDtib3gtc2hhZG93OjAgMXB4IDJweCAjN2Q1YjM5MDg7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4xNnMgZWFzZSxib3JkZXItY29sb3IgLjE2cyBlYXNlLHRyYW5zZm9ybSAuMTZzIGVhc2UsYm94LXNoYWRvdyAuMTZzIGVhc2U7YmFja2Ryb3AtZmlsdGVyOm5vbmU7LXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6bm9uZX0uc2V0dGluZ3MtbW9kYWwgLnN3aXRjaC1jYXJkOmhvdmVye2JhY2tncm91bmQ6I2ZmZmZmZmQ5O2JvcmRlci1jb2xvcjojN2Q1YjM5MmU7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTFweCk7Ym94LXNoYWRvdzowIDRweCAxMnB4ICM3ZDViMzkwZn0uc2V0dGluZ3MtbW9kYWwgLnN3aXRjaC1jYXJkOmhhcyguc3dpdGNoLXRvZ2dsZTpjaGVja2VkKXtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcsI2ZmZjdlZiwjZmZmMWRlKTtib3JkZXItY29sb3I6dmFyKC0tYWNjZW50KTtib3gtc2hhZG93OjAgMCAwIDFweCB2YXIoLS1hY2NlbnQtbXV0ZWQpLDAgNHB4IDEycHggI2M1NjUzZDFhfS5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtdG9nZ2xlLXJvdywuc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLXJhbmdlLXJvd3tiYWNrZ3JvdW5kOiNmZmZmZmY4Yztib3JkZXI6MXB4IHNvbGlkIHJnYmEoMTI1LDkxLDU3LC4wOCk7Ym9yZGVyLXJhZGl1czoxMnB4O2JveC1zaGFkb3c6MCAxcHggMXB4ICM3ZDViMzkwNTtiYWNrZHJvcC1maWx0ZXI6bm9uZTstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjpub25lfS5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtY2FyZC1pY29uLC5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3Mtc2VjdGlvbi1pY29ue2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZywjYzU2NTNkMjksI2M1NjUzZDBmKTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMTk3LDEwMSw2MSwuMTgpO2JveC1zaGFkb3c6aW5zZXQgMCAxcHggI2ZmZjk7Y29sb3I6dmFyKC0tYWNjZW50KX0uc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLWFwcC1pY29uLW9wdGlvbntiYWNrZ3JvdW5kOiNmZmZmZmZhNjtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMTI1LDkxLDU3LC4xKTtib3JkZXItcmFkaXVzOjE0cHg7Ym94LXNoYWRvdzowIDFweCAycHggIzdkNWIzOTA4O3RyYW5zaXRpb246YmFja2dyb3VuZCAuMTZzIGVhc2UsYm9yZGVyLWNvbG9yIC4xNnMgZWFzZSxib3gtc2hhZG93IC4xNnMgZWFzZSx0cmFuc2Zvcm0gLjE2cyBlYXNlO2JhY2tkcm9wLWZpbHRlcjpub25lOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOm5vbmV9LnNldHRpbmdzLW1vZGFsIC5zZXR0aW5ncy1hcHAtaWNvbi1vcHRpb246aG92ZXJ7YmFja2dyb3VuZDojZmZmO2JvcmRlci1jb2xvcjojN2Q1YjM5MzM7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTFweCk7Ym94LXNoYWRvdzowIDRweCAxMnB4ICM3ZDViMzkxNH0uc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLWFwcC1pY29uLW9wdGlvbi5zZWxlY3RlZCwuc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLWFwcC1pY29uLW9wdGlvblthcmlhLXByZXNzZWQ9dHJ1ZV17YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCNmZmY3ZWYsI2ZmZjFkZSk7Ym9yZGVyLWNvbG9yOnZhcigtLWFjY2VudCk7Ym94LXNoYWRvdzowIDAgMCAzcHggdmFyKC0tYWNjZW50LW11dGVkKSwwIDRweCAxMnB4ICNjNTY1M2QxZn0uc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLWNvbm5lY3QtdXJsLWJveHtiYWNrZ3JvdW5kOiM3ZDViMzkwZDtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMTI1LDkxLDU3LC4xMik7Ym9yZGVyLXJhZGl1czoxMnB4fS5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtYWN0aW9ucy1zdGlja3l7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCNmZmZjZjcwMCwjZmZmY2Y3ZDkgMjhweCk7YmFja2Ryb3AtZmlsdGVyOmJsdXIoOHB4KTstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjpibHVyKDhweCl9LnNldHRpbmdzLW1vZGFsIC5zZXR0aW5ncy1zZWN0aW9uLXRpdGxle2ZvbnQtc2l6ZTouODEyNXJlbTtmb250LXdlaWdodDo3MDA7bGV0dGVyLXNwYWNpbmc6LjAwNWVtO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSl9QG1lZGlhKG1heC13aWR0aDo2NDBweCl7LnNlc3Npb24tbW9kYWwgLm1vZGFsLWhlYWRlciwuc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLW1vZGFsLWhlYWRlcntwYWRkaW5nOjE2cHggMThweCAxNHB4fS5zZXNzaW9uLW1vZGFsIC5tb2RhbC1ib2R5LC5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtbW9kYWwtYm9keXtwYWRkaW5nOjE0cHggMThweH0uc2Vzc2lvbi1tb2RhbCAubW9kYWwtZm9vdGVye3BhZGRpbmc6MTJweCAxOHB4IDE4cHh9LnNlc3Npb24tbW9kYWwgLm1vZGFsLXRpdGxlLC5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtbW9kYWwtdGl0bGUtZ3JvdXAgLm1vZGFsLXRpdGxle2ZvbnQtc2l6ZToxLjEyNXJlbX0uc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLXBhbmVsLXRpdGxle2ZvbnQtc2l6ZToxLjA2MjVyZW19fS5zaWRlYmFye2JhY2tncm91bmQ6I2ZmZmNmN2I4O2JvcmRlci1yaWdodDouNXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsLjU1KTtiYWNrZHJvcC1maWx0ZXI6Ymx1cigzNnB4KSBzYXR1cmF0ZSgxODAlKTstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjpibHVyKDM2cHgpIHNhdHVyYXRlKDE4MCUpO2JveC1zaGFkb3c6MCAwIDAgLjVweCAjN2Q1YjM5MGYsNHB4IDAgMzJweCAtOHB4ICMxNDBlMDgyZX0uc2lkZWJhci5vcGVue2JveC1zaGFkb3c6MCAwIDAgLjVweCAjN2Q1YjM5MGYsMTJweCAwIDQ4cHggLTEycHggIzE0MGUwODQ3fS5zaWRlYmFyLnBpbm5lZHtib3gtc2hhZG93OjAgMCAwIC41cHggIzdkNWIzOTBmLDJweCAwIDEycHggLThweCAjMTQwZTA4MWZ9LmRyYXdlci1iYWNrZHJvcHtiYWNrZ3JvdW5kOiMxNDBlMDg1MjtiYWNrZHJvcC1maWx0ZXI6Ymx1cigxMnB4KTstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjpibHVyKDEycHgpfS5kcmF3ZXItYmFja2Ryb3Aub3BlbntiYWNrZHJvcC1maWx0ZXI6Ymx1cigxOHB4KSBzYXR1cmF0ZSgxNDAlKTstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjpibHVyKDE4cHgpIHNhdHVyYXRlKDE0MCUpfS5zaWRlYmFyLWhlYWRlcntiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHJnYmEoMTI1LDkxLDU3LC4wNik7cGFkZGluZzoxNHB4IDE2cHh9LnNpZGViYXItdGl0bGV7Zm9udC1zaXplOi45Mzc1cmVtO2ZvbnQtd2VpZ2h0OjcwMDtsZXR0ZXItc3BhY2luZzotLjAxMmVtO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSl9LnNlc3Npb24tY291bnR7YmFja2dyb3VuZDojN2Q1YjM5MTQ7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO3BhZGRpbmc6MnB4IDlweDtib3JkZXItcmFkaXVzOjk5OXB4O2ZvbnQtc2l6ZTouNjg3NXJlbTtmb250LXdlaWdodDo3MDA7Zm9udC12YXJpYW50LW51bWVyaWM6dGFidWxhci1udW1zO2xpbmUtaGVpZ2h0OjEuNX0uc2lkZWJhci1oZWFkZXItYWN0aW9ucyAuYnRuLWdob3N0LmJ0bi1zbSwuZHJhd2VyLWNsb3NlLWJ0bnt3aWR0aDozMnB4O2hlaWdodDozMnB4O21pbi13aWR0aDozMnB4O21pbi1oZWlnaHQ6MzJweDtwYWRkaW5nOjA7Ym9yZGVyLXJhZGl1czo1MCU7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2NvbG9yOnZhcigtLXRleHQtdGVydGlhcnkpO2JvcmRlcjpub25lO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMTZzIGVhc2UsY29sb3IgLjE2cyBlYXNlLHRyYW5zZm9ybSAuMjJzIGN1YmljLWJlemllciguMzQsMS40LC42NCwxKX0uc2lkZWJhci1oZWFkZXItYWN0aW9ucyAuYnRuLWdob3N0LmJ0bi1zbTpob3ZlcntiYWNrZ3JvdW5kOiM3ZDViMzkxNDtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpfS5kcmF3ZXItY2xvc2UtYnRue2JhY2tncm91bmQ6IzdkNWIzOTEyfS5kcmF3ZXItY2xvc2UtYnRuOmhvdmVye2JhY2tncm91bmQ6I2IyNGY0NTFmO2NvbG9yOnZhcigtLWRhbmdlcik7dHJhbnNmb3JtOnJvdGF0ZSg5MGRlZyl9LmRyYXdlci1jbG9zZS1idG46YWN0aXZle2JhY2tncm91bmQ6I2IyNGY0NTMzO3RyYW5zZm9ybTpyb3RhdGUoOTBkZWcpIHNjYWxlKC45Mik7dHJhbnNpdGlvbi1kdXJhdGlvbjouMDZzfS5kcmF3ZXItY2xvc2UtYnRuOmZvY3VzLXZpc2libGV7b3V0bGluZToycHggc29saWQgdmFyKC0tYWNjZW50KTtvdXRsaW5lLW9mZnNldDozcHh9LnNpZGViYXItaGVhZGVyLW92ZXJmbG93e2JhY2tncm91bmQ6I2ZmZmNmN2RiO2JvcmRlcjouNXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsLjU1KTtiYWNrZHJvcC1maWx0ZXI6Ymx1cigyNHB4KSBzYXR1cmF0ZSgxODAlKTstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjpibHVyKDI0cHgpIHNhdHVyYXRlKDE4MCUpO2JveC1zaGFkb3c6MCAwIDAgLjVweCAjN2Q1YjM5MTQsMCAxMnB4IDI4cHggLThweCAjMTQwZTA4Mzg7Ym9yZGVyLXJhZGl1czoxMnB4O3BhZGRpbmc6NnB4fS5zaWRlYmFyLWhlYWRlci1vdmVyZmxvdyAub3ZlcmZsb3ctaXRlbXtib3JkZXItcmFkaXVzOjlweDtwYWRkaW5nOjlweCAxMHB4O2ZvbnQtc2l6ZTouODEyNXJlbTtmb250LXdlaWdodDo1MDA7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4xNnMgZWFzZSxjb2xvciAuMTZzIGVhc2UsYm94LXNoYWRvdyAuMThzIGVhc2UsdHJhbnNmb3JtIC4xOHMgdmFyKC0tZWFzZS1vdXQtZXhwbyl9LnNpZGViYXItaGVhZGVyLW92ZXJmbG93IC5vdmVyZmxvdy1pdGVtOmhvdmVye2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZywjZmZmZmZmZTYsI2ZmZmNmNzk5KTtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO2JveC1zaGFkb3c6MCAwIDAgLjVweCAjN2Q1YjM5MTQsaW5zZXQgMCAxcHggI2ZmZmZmZmQ5fS5zaWRlYmFyLWhlYWRlci1vdmVyZmxvdyAub3ZlcmZsb3ctaXRlbTphY3RpdmV7YmFja2dyb3VuZDojYzU2NTNkMWY7Y29sb3I6dmFyKC0tYWNjZW50KTt0cmFuc2Zvcm06c2NhbGUoLjk4KX0uc2Vzc2lvbi1tYW5hZ2UtYmFye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47Z2FwOjhweDtwYWRkaW5nOjRweCA0cHggNHB4IDEwcHg7Ym9yZGVyLXJhZGl1czoxMHB4O21hcmdpbi1ib3R0b206MTBweDtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O3RyYW5zaXRpb246YmFja2dyb3VuZCAuMTZzIGVhc2V9LnNlc3Npb24tbWFuYWdlLWJhcjpob3ZlcntiYWNrZ3JvdW5kOiM3ZDViMzkwZH0uc2Vzc2lvbi1tYW5hZ2UtYmFyIC5zaWRlYmFyLWludHJve2ZvbnQtc2l6ZTouNzVyZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7bGV0dGVyLXNwYWNpbmc6LjAwNWVtfS5zZXNzaW9uLW1hbmFnZS1iYXIuYWN0aXZle3Bvc2l0aW9uOnN0aWNreTt0b3A6MDt6LWluZGV4OjY7bWFyZ2luOi0xMHB4IC0xMHB4IDhweDtwYWRkaW5nOjlweCAxMHB4IDlweCA2cHg7Ym9yZGVyLXJhZGl1czowO2JhY2tncm91bmQ6I2ZmZmJmNWYwOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOnNhdHVyYXRlKDEuMikgYmx1cig4cHgpO2JhY2tkcm9wLWZpbHRlcjpzYXR1cmF0ZSgxLjIpIGJsdXIoOHB4KTtib3JkZXItYm90dG9tOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlKTtib3gtc2hhZG93Om5vbmV9LnNlc3Npb24tbWFuYWdlLWJhci5hY3RpdmU6aG92ZXJ7YmFja2dyb3VuZDojZmZmYmY1ZjB9LnNlc3Npb24tbWFuYWdlLWV4aXR7ZmxleC1zaHJpbms6MDtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3dpZHRoOjI2cHg7aGVpZ2h0OjI2cHg7cGFkZGluZzowO2JvcmRlcjpub25lO2JvcmRlci1yYWRpdXM6OHB4O2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7Y3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4xNHMgZWFzZSxjb2xvciAuMTRzIGVhc2U7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50fS5zZXNzaW9uLW1hbmFnZS1leGl0OmhvdmVye2JhY2tncm91bmQ6IzdkNWIzOTFhO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSl9LnNlc3Npb24tbWFuYWdlLXN1bW1hcnl7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjZweDttaW4td2lkdGg6MDtmbGV4OjE7Zm9udC1zaXplOi43NXJlbTtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7Zm9udC13ZWlnaHQ6NTAwfS5zZXNzaW9uLW1hbmFnZS1jb3VudHtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO21pbi13aWR0aDoyMHB4O2hlaWdodDoxOHB4O3BhZGRpbmc6MCA2cHg7YmFja2dyb3VuZDp2YXIoLS1hY2NlbnQpO2NvbG9yOnZhcigtLXRleHQtaW52ZXJzZSk7Zm9udC1zaXplOi42ODc1cmVtO2ZvbnQtd2VpZ2h0OjcwMDtib3JkZXItcmFkaXVzOjk5OXB4O2ZvbnQtdmFyaWFudC1udW1lcmljOnRhYnVsYXItbnVtc30uc2Vzc2lvbi1tYW5hZ2Utc3VtbWFyeS1sYWJlbHtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7Zm9udC13ZWlnaHQ6NjAwfS5zZXNzaW9uLW1hbmFnZS1zdW1tYXJ5LWxhYmVsLm11dGVke2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2ZvbnQtd2VpZ2h0OjUwMH0uc2Vzc2lvbi1tYW5hZ2UtYWN0aW9uc3tkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2cHg7ZmxleC1zaHJpbms6MH0uc2Vzc2lvbi1tYW5hZ2UtdG9nZ2xle2dhcDo1cHh9LmNsYXVkZS1oaXN0b3J5LWRpcmVjdG9yeS1jbGVhci1idG57bWFyZ2luLWxlZnQ6YXV0b30uc2Vzc2lvbi1ncm91cC10aXRsZXtwYWRkaW5nOjEwcHggNnB4IDhweDtmb250LXNpemU6LjY4NzVyZW07Zm9udC13ZWlnaHQ6NzAwO2xldHRlci1zcGFjaW5nOi4xZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCl9LnNlc3Npb24tZ3JvdXAtdGl0bGU6YmVmb3Jle3dpZHRoOjNweDtoZWlnaHQ6MTJweDtib3JkZXItcmFkaXVzOjk5OXB4O2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZyx2YXIoLS1hY2NlbnQpLHJnYmEoMTk3LDEwMSw2MSwuNCkpO29wYWNpdHk6MX0uc2Vzc2lvbi1pdGVte2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym9yZGVyOjFweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmFkaXVzOjExcHg7cGFkZGluZzo5cHggMTJweDttYXJnaW4tYm90dG9tOjJweDtib3gtc2hhZG93Om5vbmU7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4xNnMgZWFzZSxib3JkZXItY29sb3IgLjE2cyBlYXNlfS5zZXNzaW9uLWl0ZW06YmVmb3Jle2xlZnQ6NHB4O3RvcDo5cHg7Ym90dG9tOjlweDt3aWR0aDozcHg7Ym9yZGVyLXJhZGl1czoycHg7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLHZhcigtLWFjY2VudCkscmdiYSgxOTcsMTAxLDYxLC41KSl9LnNlc3Npb24taXRlbTpob3ZlcntiYWNrZ3JvdW5kOiM3ZDViMzkwZjtib3JkZXItY29sb3I6dHJhbnNwYXJlbnR9LnNlc3Npb24taXRlbTpob3ZlcjpiZWZvcmV7b3BhY2l0eTowfS5zZXNzaW9uLWl0ZW0uYWN0aXZle2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZywjZmZmY2Y3ZWIsI2ZmZjRlOGJkKTtib3JkZXItY29sb3I6I2M1NjUzZDQ3O2JveC1zaGFkb3c6aW5zZXQgMCAxcHggI2ZmZmZmZjhjfS5zZXNzaW9uLWl0ZW0uYWN0aXZlOmJlZm9yZXtvcGFjaXR5OjE7dHJhbnNmb3JtOnNjYWxlWSgxKX0uc2Vzc2lvbi1pdGVtLnNlbGVjdGVke2JhY2tncm91bmQ6I2M1NjUzZDE3O2JvcmRlci1jb2xvcjojYzU2NTNkMmV9LnNlc3Npb24taXRlbS5zZWxlY3RlZDpiZWZvcmV7b3BhY2l0eTouNzt0cmFuc2Zvcm06c2NhbGVZKDEpfS5zZXNzaW9uLWl0ZW06YWN0aXZle3RyYW5zZm9ybTpzY2FsZSguOTkyKTt0cmFuc2l0aW9uLWR1cmF0aW9uOi4wOHN9LnNlc3Npb24tdGl0bGUsLnNlc3Npb24tY29tbWFuZHtmb250LXNpemU6LjgxMjVyZW07Zm9udC13ZWlnaHQ6NjAwO2xldHRlci1zcGFjaW5nOi0uMDA1ZW19LnNlc3Npb24tdGl0bGUtcm93e2dhcDoxMHB4fS5zZXNzaW9uLXRpbWV7Zm9udC1zaXplOi42ODc1cmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2ZvbnQtdmFyaWFudC1udW1lcmljOnRhYnVsYXItbnVtc30uc2Vzc2lvbi1hY3Rpdml0eXtvcGFjaXR5OjE7Y29sb3I6dmFyKC0tYWNjZW50KTtmb250LXdlaWdodDo1MDB9LnNlc3Npb24tc3RhdHVze3BhZGRpbmc6MnB4IDhweDtmb250LXNpemU6LjYyNXJlbTtmb250LXdlaWdodDo3MDA7bGV0dGVyLXNwYWNpbmc6LjAyZW19LnNlc3Npb24taWR7YmFja2dyb3VuZDojN2Q1YjM5MTQ7Y29sb3I6dmFyKC0tdGV4dC10ZXJ0aWFyeSk7Zm9udC1zaXplOi42MjVyZW07cGFkZGluZzoxLjVweCA2cHg7Ym9yZGVyLXJhZGl1czo0cHh9LnNlc3Npb24tYWN0aW9uLWJ0bnt3aWR0aDoyOHB4O2hlaWdodDoyOHB4O21pbi13aWR0aDoyOHB4O21pbi1oZWlnaHQ6MjhweDtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOiM3ZDViMzkwZjtjb2xvcjp2YXIoLS10ZXh0LXRlcnRpYXJ5KTtib3JkZXI6bm9uZTt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjE2cyBlYXNlLGNvbG9yIC4xNnMgZWFzZSx0cmFuc2Zvcm0gLjE4cyBjdWJpYy1iZXppZXIoLjM0LDEuNCwuNjQsMSl9LnNlc3Npb24tYWN0aW9uLWJ0bjpob3ZlcntiYWNrZ3JvdW5kOiM3ZDViMzkyNDtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xcHgpfS5zZXNzaW9uLWFjdGlvbi1idG4uZGVsZXRlLWJ0bjpob3ZlcntiYWNrZ3JvdW5kOiNiMjRmNDUyNDtjb2xvcjp2YXIoLS1kYW5nZXIpfS5zZXNzaW9uLWFjdGlvbi1idG4ubWVyZ2UtYnRuOmhvdmVye2JhY2tncm91bmQ6IzRmN2E1ODI5O2NvbG9yOnZhcigtLXN1Y2Nlc3MpfS5zZXNzaW9uLWFjdGlvbi1idG46YWN0aXZle3RyYW5zZm9ybTpzY2FsZSguOSk7dHJhbnNpdGlvbi1kdXJhdGlvbjouMDZzfS5zZXNzaW9uLWFjdGlvbi1idG46Zm9jdXMtdmlzaWJsZXtvdXRsaW5lOjJweCBzb2xpZCB2YXIoLS1hY2NlbnQpO291dGxpbmUtb2Zmc2V0OjJweH0uc2Vzc2lvbi1tYW5hZ2UtY2hlY2sgc3Bhbnt3aWR0aDoyMHB4O2hlaWdodDoyMHB4O2JvcmRlci1yYWRpdXM6NnB4O2JvcmRlcjoxLjVweCBzb2xpZCByZ2JhKDEyNSw5MSw1NywuMjIpO2JhY2tncm91bmQ6I2ZmZjk7Ym94LXNoYWRvdzppbnNldCAwIDFweCAxcHggIzdkNWIzOTBhO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMTZzIGVhc2UsYm9yZGVyLWNvbG9yIC4xNnMgZWFzZSxib3gtc2hhZG93IC4xNnMgZWFzZX0uc2Vzc2lvbi1tYW5hZ2UtY2hlY2sgaW5wdXQ6Y2hlY2tlZCtzcGFue2JhY2tncm91bmQ6dmFyKC0tYWNjZW50KTtib3JkZXItY29sb3I6dmFyKC0tYWNjZW50KTtib3gtc2hhZG93OjAgMXB4IDNweCAjYzU2NTNkNGQsaW5zZXQgMCAxcHggI2ZmZjN9LnNlc3Npb24tbWFuYWdlLWNoZWNrIGlucHV0OmNoZWNrZWQrc3BhbjphZnRlcntjb250ZW50OiIiO3dpZHRoOjZweDtoZWlnaHQ6MTBweDtib3JkZXItcmlnaHQ6MnB4IHNvbGlkICNmZmY7Ym9yZGVyLWJvdHRvbToycHggc29saWQgI2ZmZjt0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKSB0cmFuc2xhdGUoLTFweCwtMXB4KX0uc2lkZWJhci1mb290ZXJ7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXItdG9wOjFweCBzb2xpZCByZ2JhKDEyNSw5MSw1NywuMDYpO3BhZGRpbmc6MTRweH0uc2lkZWJhci1mb290ZXItYWN0aW9ucyAuYnRue2JhY2tncm91bmQ6I2ZmZmZmZjczO2JvcmRlcjoxcHggc29saWQgcmdiYSgxMjUsOTEsNTcsLjA2KTtib3JkZXItcmFkaXVzOjEwcHg7cGFkZGluZzo4cHggNHB4O2dhcDo0cHg7Zm9udC1zaXplOi42MjVyZW07Zm9udC13ZWlnaHQ6NjAwO2xldHRlci1zcGFjaW5nOi4wMWVtO2NvbG9yOnZhcigtLXRleHQtdGVydGlhcnkpO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMTZzIGVhc2UsYm9yZGVyLWNvbG9yIC4xNnMgZWFzZSxjb2xvciAuMTZzIGVhc2UsdHJhbnNmb3JtIC4xNnMgZWFzZSxib3gtc2hhZG93IC4xNnMgZWFzZX0uc2lkZWJhci1mb290ZXItYWN0aW9ucyAuYnRuOmhvdmVye2JhY2tncm91bmQ6I2ZmZmZmZmQ5O2JvcmRlci1jb2xvcjojN2Q1YjM5Mjk7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMXB4KTtib3gtc2hhZG93OjAgMnB4IDhweCAjN2Q1YjM5MGZ9LnNpZGViYXItZm9vdGVyLWFjdGlvbnMgLmJ0bjphY3RpdmV7dHJhbnNmb3JtOnNjYWxlKC45Nik7dHJhbnNpdGlvbi1kdXJhdGlvbjouMDZzfS5zaWRlYmFyLWZvb3Rlci1hY3Rpb25zIC5idG4uYWN0aXZle2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZywjZmZmY2Y3ZjIsI2ZmZjJlNGM3KTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMTk3LDEwMSw2MSwuMjgpO2NvbG9yOnZhcigtLWFjY2VudCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTFweCk7YmFja2Ryb3AtZmlsdGVyOmJsdXIoMTZweCkgc2F0dXJhdGUoMTgwJSk7LXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6Ymx1cigxNnB4KSBzYXR1cmF0ZSgxODAlKTtib3gtc2hhZG93OjAgM3B4IDEwcHggLTNweCAjYzU2NTNkMzgsaW5zZXQgMCAxcHggI2ZmZmZmZmIzfS5zaWRlYmFyLWZvb3Rlci1hY3Rpb25zIC5idG4uc2lkZWJhci1sb2dvdXQ6aG92ZXJ7YmFja2dyb3VuZDojYjI0ZjQ1MTQ7Ym9yZGVyLWNvbG9yOiNiMjRmNDUzMztjb2xvcjp2YXIoLS1kYW5nZXIpO29wYWNpdHk6MX0uc2lkZWJhci1mb290ZXIgLmJ0bi1wcmltYXJ5e2JveC1zaGFkb3c6MCA2cHggMTZweCAtNHB4ICNjNTY1M2Q2NiwwIDJweCA2cHggLTJweCAjYzU2NTNkNGQsaW5zZXQgMCAxcHggI2ZmZjM7Ym9yZGVyLXJhZGl1czoxMnB4fS5zaWRlYmFyLWZvb3RlciAuYnRuLXByaW1hcnk6aG92ZXJ7Ym94LXNoYWRvdzowIDEwcHggMjRweCAtNHB4ICNjNTY1M2Q3NSwwIDRweCAxMHB4IC0ycHggI2M1NjUzZDU3LGluc2V0IDAgMXB4ICNmZmZmZmY0MH0uc2Vzc2lvbnMtbGlzdDplbXB0eTpiZWZvcmV7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7Zm9udC1zaXplOi44MTI1cmVtO2xldHRlci1zcGFjaW5nOi4wMWVtfUBzdXBwb3J0cyBub3QgKChiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMXB4KSkgb3IgKC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDFweCkpKXsuc2lkZWJhcntiYWNrZ3JvdW5kOiNmZmZiZjVmYX0uZHJhd2VyLWJhY2tkcm9we2JhY2tncm91bmQ6IzE0MGUwODhjfS5zaWRlYmFyLWhlYWRlci1vdmVyZmxvd3tiYWNrZ3JvdW5kOiNmZmZhZjJ9fS5tb2RhbC1oZWFkZXJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtwYWRkaW5nOjE4cHggMjJweCAxNnB4O2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpO2ZsZXgtc2hyaW5rOjA7bWluLWhlaWdodDo1NnB4fS5tb2RhbC10aXRsZXtmb250LXNpemU6MS4wNjI1cmVtO2ZvbnQtd2VpZ2h0OjYwMDtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO2xldHRlci1zcGFjaW5nOi0uMDFlbX0ubW9kYWwtYm9keXtwYWRkaW5nOjIycHg7b3ZlcmZsb3cteTphdXRvO2ZsZXg6MSAxIGF1dG87bWluLWhlaWdodDowfS5tb2RhbC1ib2R5IC5maWVsZHttYXJnaW4tYm90dG9tOjE0cHh9Lm1vZGFsLWJvZHkgLmZpZWxkOmxhc3Qtb2YtdHlwZXttYXJnaW4tYm90dG9tOjE2cHh9LnNlc3Npb24ta2luZC1oaW50LXJvd3tkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2dhcDoxMnB4fS5zZXNzaW9uLWtpbmQtaGludC1yb3cgI3Nlc3Npb24ta2luZC1kZXNjcmlwdGlvbntmbGV4OjEgMSBhdXRvfS5zZXNzaW9uLWlubGluZS10b2dnbGV7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjhweDt3aGl0ZS1zcGFjZTpub3dyYXA7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2N1cnNvcjpwb2ludGVyO3VzZXItc2VsZWN0Om5vbmV9LnNlc3Npb24taW5saW5lLXRvZ2dsZS1sYWJlbHtmb250LXNpemU6Ljc1cmVtO2ZvbnQtd2VpZ2h0OjYwMDtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSl9LmZpZWxkLWhpbnR7bWFyZ2luLXRvcDo2cHg7Zm9udC1zaXplOi43NXJlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtsaW5lLWhlaWdodDoxLjV9LnRvb2wtY2FyZHt3aWR0aDoxMDAlO3RleHQtYWxpZ246bGVmdDtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMTI1LDkxLDU3LC4yKTtib3JkZXItcmFkaXVzOjE0cHg7YmFja2dyb3VuZDojZmZmZmZmYTY7cGFkZGluZzoxNHB4O2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246Ym9yZGVyLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCksYm94LXNoYWRvdyB2YXIoLS10cmFuc2l0aW9uLWZhc3QpLHRyYW5zZm9ybSB2YXIoLS10cmFuc2l0aW9uLWZhc3QpLGJhY2tncm91bmQgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KX0udG9vbC1jYXJkOmhvdmVye2JvcmRlci1jb2xvcjp2YXIoLS1hY2NlbnQtc29mdCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTJweCk7Ym94LXNoYWRvdzowIDhweCAyNHB4ICM1OTNhMjAxYTtiYWNrZ3JvdW5kOiNmZmZmZmZkOX0udG9vbC1jYXJkLmFjdGl2ZXtib3JkZXItY29sb3I6dmFyKC0tYWNjZW50KTtiYWNrZ3JvdW5kOiNmZmY3ZWZmYTtib3gtc2hhZG93OjAgMCAwIDJweCB2YXIoLS1hY2NlbnQtbXV0ZWQpLDAgNnB4IDIwcHggIzU5M2EyMDE0fXNlbGVjdC5maWVsZC1pbnB1dHthcHBlYXJhbmNlOm5vbmU7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7YmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMTQnIGhlaWdodD0nMTQnIHZpZXdCb3g9JzAgMCAyNCAyNCcgZmlsbD0nbm9uZScgc3Ryb2tlPSclMjM4YzczNWYnIHN0cm9rZS13aWR0aD0nMicgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJyUzRSUzQ3BhdGggZD0nTTYgOWw2IDYgNi02Jy8lM0UlM0Mvc3ZnJTNFIik7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtcG9zaXRpb246cmlnaHQgMTRweCBjZW50ZXI7cGFkZGluZy1yaWdodDo0MHB4O2N1cnNvcjpwb2ludGVyfS5zdWdnZXN0aW9ucy13cmFwe3Bvc2l0aW9uOnJlbGF0aXZlfS5zdWdnZXN0aW9uc3twb3NpdGlvbjphYnNvbHV0ZTt0b3A6Y2FsYygxMDAlICsgNHB4KTtsZWZ0OjA7cmlnaHQ6MDt6LWluZGV4OjUwO2JhY2tncm91bmQ6I2ZmZmFmNGZhO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLWRlZmF1bHQpO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLW1kKTttYXgtaGVpZ2h0OjIwMHB4O292ZXJmbG93LXk6YXV0b30uc3VnZ2VzdGlvbi1pdGVte3dpZHRoOjEwMCU7dGV4dC1hbGlnbjpsZWZ0O3BhZGRpbmc6MTBweCAxMnB4O2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym9yZGVyOm5vbmU7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtjdXJzb3I6cG9pbnRlcjtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2ZvbnQtc2l6ZTouODEyNXJlbTt0cmFuc2l0aW9uOmJhY2tncm91bmQgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KX0uc3VnZ2VzdGlvbi1pdGVtOmhvdmVye2JhY2tncm91bmQ6I2U4YzVhZTU3fS5zdWdnZXN0aW9uLWl0ZW0gc21hbGx7ZGlzcGxheTpibG9jaztmb250LXNpemU6LjY4NzVyZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7bWFyZ2luLXRvcDoycHh9LnN1Z2dlc3Rpb24taXRlbS1wYXRoe2Rpc3BsYXk6YmxvY2s7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKX0ucmVjZW50LXBhdGhzLWJ1YmJsZXN7ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDp3cmFwO2dhcDo1cHg7bWFyZ2luLXRvcDo2cHh9LnJlY2VudC1wYXRocy1idWJibGVzOmVtcHR5e2Rpc3BsYXk6bm9uZX0ucmVjZW50LXBhdGgtYnViYmxle2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO3BhZGRpbmc6MnB4IDEwcHg7YmFja2dyb3VuZDojZThjNWFlMmU7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItZGVmYXVsdCk7Ym9yZGVyLXJhZGl1czo5OTlweDtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKTtmb250LXNpemU6LjY4NzVyZW07Y3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIHZhcigtLXRyYW5zaXRpb24tZmFzdCksYm9yZGVyLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCk7d2hpdGUtc3BhY2U6bm93cmFwO21heC13aWR0aDoxODBweDtvdmVyZmxvdzpoaWRkZW59LnJlY2VudC1wYXRoLWJ1YmJsZS1wYXRoe21pbi13aWR0aDowO21heC13aWR0aDoxMDAlfS5yZWNlbnQtcGF0aC1idWJibGU6aG92ZXJ7YmFja2dyb3VuZDojZThjNWFlNjY7Ym9yZGVyLWNvbG9yOnZhcigtLWJvcmRlci1ob3ZlciwgdmFyKC0tYm9yZGVyLWRlZmF1bHQpKTtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpfS5lcnJvci1tZXNzYWdle2ZvbnQtc2l6ZTouNzVyZW07Y29sb3I6dmFyKC0tZGFuZ2VyKTtwYWRkaW5nOjEwcHggMTJweDtiYWNrZ3JvdW5kOnZhcigtLWRhbmdlci1tdXRlZCk7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtbWQpO21hcmdpbi10b3A6MTJweDthbmltYXRpb246c2hha2UgLjNzIGVhc2V9QGtleWZyYW1lcyBzaGFrZXswJSx0b3t0cmFuc2Zvcm06dHJhbnNsYXRlKDApfTI1JXt0cmFuc2Zvcm06dHJhbnNsYXRlKC00cHgpfTc1JXt0cmFuc2Zvcm06dHJhbnNsYXRlKDRweCl9fS5maWVsZC1pbnB1dFtkYXRhLWVycm9yPXRydWVde2JvcmRlci1jb2xvcjp2YXIoLS1kYW5nZXIpO2JveC1zaGFkb3c6MCAwIDAgM3B4IHZhcigtLWRhbmdlci1tdXRlZCl9LmhpbnR7Zm9udC1zaXplOi42ODc1cmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO21hcmdpbi10b3A6MTJweH0uZW1wdHktc3RhdGV7dGV4dC1hbGlnbjpjZW50ZXI7cGFkZGluZzo0MHB4IDIwcHg7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7Zm9udC1zaXplOi44MTI1cmVtfS5lbXB0eS1zdGF0ZSBzdHJvbmd7ZGlzcGxheTpibG9jaztjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7Zm9udC1zaXplOi45NXJlbTttYXJnaW4tYm90dG9tOjhweDtmb250LXdlaWdodDo2MDB9LmhpZGRlbntkaXNwbGF5Om5vbmUhaW1wb3J0YW50fS5vZmZsaW5lLWJhbm5lcntwb3NpdGlvbjpmaXhlZDtib3R0b206ODBweDtsZWZ0OjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUpO2JhY2tncm91bmQ6dmFyKC0td2FybmluZyk7Y29sb3I6I2ZmZjtwYWRkaW5nOjhweCAxNnB4O2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLW1kKTtmb250LXNpemU6LjgxMjVyZW07Zm9udC13ZWlnaHQ6NTAwO3otaW5kZXg6MTAwO2JveC1zaGFkb3c6dmFyKC0tc2hhZG93LWVsZXZhdGVkKTthbmltYXRpb246c2xpZGVVcCAuM3MgZWFzZX1Aa2V5ZnJhbWVzIHNsaWRlVXB7MCV7b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSkgdHJhbnNsYXRlWSgyMHB4KX10b3tvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlKSB0cmFuc2xhdGVZKDApfX06Oi13ZWJraXQtc2Nyb2xsYmFye3dpZHRoOjZweDtoZWlnaHQ6NnB4fTo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2t7YmFja2dyb3VuZDp0cmFuc3BhcmVudH06Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1ie2JhY2tncm91bmQ6Izk2NzY1NTRkO2JvcmRlci1yYWRpdXM6M3B4fTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXJ7YmFja2dyb3VuZDojOTY3NjU1ODB9LnNlc3Npb25zLWxpc3Q6Oi13ZWJraXQtc2Nyb2xsYmFye3dpZHRoOjRweH0uc2Vzc2lvbnMtbGlzdDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2t7YmFja2dyb3VuZDp0cmFuc3BhcmVudH0uc2Vzc2lvbnMtbGlzdDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7YmFja2dyb3VuZDojOTY3NjU1NDA7Ym9yZGVyLXJhZGl1czoycHh9LnNlc3Npb25zLWxpc3Q6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVye2JhY2tncm91bmQ6Izk2NzY1NTY2fTpmb2N1cy12aXNpYmxle291dGxpbmU6MnB4IHNvbGlkIHZhcigtLWFjY2VudCk7b3V0bGluZS1vZmZzZXQ6MnB4fWJ1dHRvbjpmb2N1cy12aXNpYmxle291dGxpbmUtb2Zmc2V0OjB9QG1lZGlhKG1heC13aWR0aDo3NjhweCl7LnNpZGViYXIucGlubmVkOm5vdCguY29sbGFwc2VkKTpub3QoLm9wZW4pe3RyYW5zZm9ybTp0cmFuc2xhdGUoLTEwMCUpO3BvaW50ZXItZXZlbnRzOm5vbmU7b3BhY2l0eTowfS5tYWluLWxheW91dC5zaWRlYmFyLXBpbm5lZDpub3QoLnNpZGViYXItY29sbGFwc2VkKXtwYWRkaW5nLWxlZnQ6MH0uYXBwLWNvbnRhaW5lcnstLWxheW91dC1tYWluLWZpbGUtcGFuZWwtd2lkdGg6IDBweH0uc2lkZWJhcnt3aWR0aDptaW4oMzAwcHgsY2FsYygxMDB2dyAtIDIwcHgpKTt0b3A6MH0udGVybWluYWwtY29udGFpbmVye21hcmdpbjowIDZweCA2cHg7bWluLWhlaWdodDowfS5idG57bWluLWhlaWdodDo0MHB4fS5idG4tc217bWluLWhlaWdodDozNnB4O3BhZGRpbmc6MCAxMHB4O2ZvbnQtc2l6ZTouNzVyZW07aGVpZ2h0OjM2cHh9LmJ0bi1pY29ue3dpZHRoOjM2cHg7aGVpZ2h0OjM2cHg7bWluLWhlaWdodDozNnB4fS5jaGF0LWNvbnRhaW5lcntwYWRkaW5nOjAgMTJweCAxMnB4fS5jaGF0LW1lc3NhZ2V7bWF4LXdpZHRoOjEwMCV9LnNlc3Npb24taXRlbXttaW4taGVpZ2h0OjUycHg7cGFkZGluZzoxMnB4fS5zZXNzaW9uLWFjdGlvbi1idG57d2lkdGg6MzZweDtoZWlnaHQ6MzZweDttaW4td2lkdGg6MzZweDttaW4taGVpZ2h0OjM2cHh9LnNlc3Npb24tbWFuYWdlLWJhciAuYnRue21pbi1oZWlnaHQ6MzJweH0uY2xhdWRlLWhpc3RvcnktdG9nZ2xle21pbi1oZWlnaHQ6NDBweDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyfS5zaWRlYmFyLWZvb3Rlci1hY3Rpb25zIC5idG57bWluLWhlaWdodDo0NHB4fS50cmVlLWl0ZW17bWluLWhlaWdodDo0NHB4O3BhZGRpbmc6OHB4IDEycHh9LmZvbGRlci1waWNrZXItaXRlbXttaW4taGVpZ2h0OjQ0cHh9fUBtZWRpYShtaW4td2lkdGg6NzY5cHgpey5kcmF3ZXItYmFja2Ryb3B7ZGlzcGxheTpub25lfX1AbWVkaWEobWF4LXdpZHRoOjY0MHB4KXs6cm9vdHstLXNpZGViYXItd2lkdGg6IDI4MHB4Oy0tZmlsZS1wYW5lbC13aWR0aDogMTAwJX0uYXBwLWNvbnRhaW5lcnstLWxheW91dC1tYWluLWZpbGUtcGFuZWwtd2lkdGg6IDBweH1odG1sLGJvZHl7bWluLWhlaWdodDoxMDBkdmg7aGVpZ2h0OjEwMGR2aH1ib2R5e292ZXJmbG93OmhpZGRlbjstd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzp0b3VjaH0uYXBwLWNvbnRhaW5lcntvdmVyZmxvdzpoaWRkZW59LmZsb2F0aW5nLXNpZGViYXItdG9nZ2xle3dpZHRoOjMwcHg7aGVpZ2h0OjMwcHg7Ym9yZGVyLXJhZGl1czo2cHh9LmZsb2F0aW5nLXNpZGViYXItdG9nZ2xlIC5oYW1idXJnZXItaWNvbnt3aWR0aDoxM3B4O2hlaWdodDo5cHh9LnNpZGViYXJ7dG9wOjB9LnNpZGViYXItaGVhZGVye3BhZGRpbmc6MTBweCAxMnB4O21pbi1oZWlnaHQ6NDhweDtnYXA6OHB4fS5zaWRlYmFyLWhlYWRlci1hY3Rpb25ze2dhcDo0cHh9LnNpZGViYXItZm9vdGVyLWFjdGlvbnN7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCg0LDFmcik7Z2FwOjRweH0uc2lkZWJhci1mb290ZXItYWN0aW9uczpoYXMoLnNpZGViYXItYmFjay10by1uYXRpdmUpOmhhcyguc2lkZWJhci1zd2l0Y2gtc2VydmVyKXtncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KDUsMWZyKX0uc2lkZWJhci1mb290ZXItYWN0aW9ucyAuYnRue21pbi1oZWlnaHQ6NDBweDtwYWRkaW5nOjZweCA0cHh9LnNpZGViYXItZm9vdGVyLWFjdGlvbnMgLmJ0biBzcGFue2Rpc3BsYXk6bm9uZX0uc2lkZWJhci1mb290ZXItYWN0aW9ucyAuYnRuIHN2Z3t3aWR0aDoxOHB4O2hlaWdodDoxOHB4fS5zaWRlYmFyLWhlYWRlci1vdmVyZmxvd3ttaW4td2lkdGg6MTgwcHg7bWF4LXdpZHRoOmNhbGMoMTAwdncgLSAyNHB4KX0uc2lkZWJhci1oZWFkZXItb3ZlcmZsb3cgLm92ZXJmbG93LWl0ZW17cGFkZGluZzoxMXB4IDE0cHg7Zm9udC1zaXplOi44NzVyZW19LnRlcm1pbmFsLWhlYWRlcntwYWRkaW5nOjVweCA4cHg7bWluLWhlaWdodDozMnB4fS50ZXJtaW5hbC10aXRsZXtnYXA6NHB4O2ZvbnQtc2l6ZTouNjg3NXJlbX0udGVybWluYWwtaW5mb3tmb250LXNpemU6LjU2MjVyZW19LmN1cnJlbnQtdGFza3tmb250LXNpemU6LjU2MjVyZW07cGFkZGluZzoxcHggNnB4IDFweCA0cHg7Z2FwOjNweH0ubWFpbi1oZWFkZXItcm93e3BhZGRpbmc6MnB4IDZweDtnYXA6NHB4fS50b3BiYXItYnJhbmQsLnRvcGJhci1jd2R7ZGlzcGxheTpub25lfS50b3BiYXItc2Vzc2lvbi10aXRsZXttYXgtd2lkdGg6MTQwcHg7Zm9udC1zaXplOi43OHJlbX0uc2Vzc2lvbi1zdGF0dXMtcGlsbHtmb250LXNpemU6LjYyNXJlbTtwYWRkaW5nOjFweCA3cHggMXB4IDVweDttYXgtd2lkdGg6MTEwcHh9LnNlc3Npb24tc3RhdHVzLXBpbGwgLnNlc3Npb24tc3RhdHVzLWRvdHt3aWR0aDo1cHg7aGVpZ2h0OjVweH0udG9wYmFyLW1vcmUtbWVudXttaW4td2lkdGg6MTU2cHh9LnRlcm1pbmFsLXNjYWxlLW92ZXJsYXl7dG9wOjZweDtyaWdodDo2cHg7cGFkZGluZzoycHg7Z2FwOjFweH0udGVybWluYWwtc2NhbGUtb3ZlcmxheS1idG57bWluLXdpZHRoOjI2cHg7aGVpZ2h0OjI2cHg7Zm9udC1zaXplOi43NXJlbX0udGVybWluYWwtc2NhbGUtb3ZlcmxheS1sYWJlbHttaW4td2lkdGg6MjhweDtmb250LXNpemU6LjU2MjVyZW07cGFkZGluZzowIDJweH0ubWFpbi1sYXlvdXR7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZsZXg6MTttaW4taGVpZ2h0OjA7aGVpZ2h0OjEwMCU7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmctbGVmdDowfS5zaWRlYmFye3RvcDowO3dpZHRoOm1pbigyNjBweCxjYWxjKDEwMHZ3IC0gMTJweCkpO21heC1oZWlnaHQ6bm9uZTtib3JkZXItYm90dG9tOm5vbmV9Lm1haW4tY29udGVudHtmbGV4OjE7bWluLWhlaWdodDowO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47b3ZlcmZsb3c6aGlkZGVufS50ZXJtaW5hbC1jb250YWluZXJ7ZmxleDoxIDEgYXV0bzttaW4taGVpZ2h0OjA7bWF4LWhlaWdodDpub25lfS5zZXNzaW9ucy1saXN0e2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleDoxIDAgYXV0bzttaW4taGVpZ2h0OjA7b3ZlcmZsb3c6dmlzaWJsZTtwYWRkaW5nOjRweH0uc2Vzc2lvbi1pdGVte3dpZHRoOjEwMCU7bWF4LXdpZHRoOm5vbmU7bWFyZ2luLWJvdHRvbTo0cHg7cGFkZGluZzo4cHggMTBweDttaW4taGVpZ2h0OjQ0cHg7Ym9yZGVyLXJhZGl1czo2cHh9LnNlc3Npb24tYWN0aW9uLWJ0bnt3aWR0aDozMnB4O2hlaWdodDozMnB4O21pbi1oZWlnaHQ6MzJweDttaW4td2lkdGg6MzJweDtib3JkZXItcmFkaXVzOjZweH0uaW5wdXQtcGFuZWx7ei1pbmRleDozMDtwYWRkaW5nOjRweCA2cHg7cGFkZGluZy1ib3R0b206Y2FsYyg2cHggKyB2YXIoLS1pbnB1dC1zYWZlLWJvdHRvbSwgdmFyKC0tc2FmZS1ib3R0b20sIDBweCkpICsgdmFyKC0ta2V5Ym9hcmQtb2Zmc2V0LCAwcHgpKTtmbGV4OjAgMCBhdXRvO21hcmdpbi10b3A6YXV0bztiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcsI2Y2ZjFlODgwLCNmNmYxZThlMCAzMCUsI2Y2ZjFlOCksI2Y2ZjFlODtiYWNrZHJvcC1maWx0ZXI6Ymx1cigxMnB4KX0uaW5wdXQtdGV4dGFyZWF7cGFkZGluZy1ib3R0b206NHB4fS5pbnB1dC1jb21wb3Nlcntib3JkZXItcmFkaXVzOjE0cHg7Ym94LXNoYWRvdzowIDNweCAxNHB4ICM1OTNhMjAxMn0uYnRuLWNpcmNsZXt3aWR0aDoyNnB4O2hlaWdodDoyNnB4O2JvcmRlci1yYWRpdXM6NTAlfS5idG4tY2lyY2xlLXNlbmQgc3ZnLC5idG4tY2lyY2xlLXN0b3Agc3Zne3dpZHRoOjEycHg7aGVpZ2h0OjEycHh9LmlucHV0LXRleHRhcmVhLC5maWVsZC1pbnB1dHtmb250LXNpemU6MTZweH0uaW5wdXQtdGV4dGFyZWF7bWluLWhlaWdodDozMnB4O3BhZGRpbmc6N3B4IDMwcHggNXB4IDhweDtmb250LXNpemU6MTZweDtsaW5lLWhlaWdodDoxLjM1fS5pbnB1dC10ZXh0YXJlYTo6cGxhY2Vob2xkZXJ7Zm9udC1zaXplOjE1cHh9LmNoYXQtbW9kZS1zZWxlY3R7bWF4LXdpZHRoOjY1cHg7Zm9udC1zaXplOi41NjI1cmVtO2hlaWdodDoyMnB4O21pbi1oZWlnaHQ6MjJweDtwYWRkaW5nOjAgMTRweCAwIDRweDtib3JkZXItcmFkaXVzOjVweH0uaW5wdXQtaGludHtmb250LXNpemU6LjQ1cmVtO21heC13aWR0aDoxOGNoO29wYWNpdHk6LjZ9LnRlcm1pbmFsLWp1bXAtYm90dG9te3dpZHRoOjMycHg7aGVpZ2h0OjMycHg7cGFkZGluZzowO3JpZ2h0OjEwcHg7Ym90dG9tOjEycHh9LmNoYXQtdW5yZWFkLWJ1YmJsZXtoZWlnaHQ6MzBweDttaW4td2lkdGg6MzBweDtyaWdodDoxMHB4O2JvdHRvbTo4cHg7cGFkZGluZzowIDlweDtmb250LXNpemU6LjcycmVtfS5jaGF0LXVucmVhZC1idWJibGUuaGFzLXVucmVhZHtwYWRkaW5nOjAgMTFweCAwIDlweH0uY2hhdC11bnJlYWQtYnViYmxlLWNvdW50e2ZvbnQtc2l6ZTouNzJyZW19Lm1pbmkta2V5Ym9hcmQtZmFie3dpZHRoOjQwcHg7aGVpZ2h0OjQwcHg7Ym90dG9tOjUwcHg7cmlnaHQ6MTBweDtmb250LXNpemU6MXJlbX0ubWluaS1rZXlib2FyZHtib3R0b206NTBweDtyaWdodDo4cHg7bGVmdDo4cHg7bWluLXdpZHRoOjA7Ym9yZGVyLXJhZGl1czoxMHB4fS5jaGF0LWNvbnRhaW5lcnttaW4taGVpZ2h0OjA7ZmxleDoxIDEgYXV0bztvdmVyZmxvdzpoaWRkZW47ZGlzcGxheTpub25lO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0uY2hhdC1jb250YWluZXIuYWN0aXZle2Rpc3BsYXk6ZmxleH0uZm9sZGVyLXBpY2tlci1jb250YWluZXJ7bWFyZ2luLWJvdHRvbTo0cHh9LmZvbGRlci1waWNrZXItcXVpY2stYnRue21pbi1oZWlnaHQ6MzJweDtwYWRkaW5nOjZweCAxMHB4O2ZvbnQtc2l6ZTouNjg3NXJlbTtib3JkZXItcmFkaXVzOjZweH0uZm9sZGVyLWJyZWFkY3J1bWJ7cGFkZGluZzo0cHggNnB4O2ZvbnQtc2l6ZTouNTYyNXJlbTttYXJnaW4tYm90dG9tOjNweDtvdmVyZmxvdy14OmF1dG87LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2g7d2hpdGUtc3BhY2U6bm93cmFwO2ZsZXgtd3JhcDpub3dyYXB9LmZvbGRlci1waWNrZXJ7cGFkZGluZzo4cHggMTBweDttaW4taGVpZ2h0OjM2cHh9LmZvbGRlci1waWNrZXItaW5wdXR7Zm9udC1zaXplOjE2cHg7cGFkZGluZzo2cHh9LmZvbGRlci1waWNrZXItZHJvcGRvd257bWF4LWhlaWdodDoxODBweH0uZm9sZGVyLXBpY2tlci1pdGVte3BhZGRpbmc6OHB4IDEwcHg7bWluLWhlaWdodDozNnB4fS5mb2xkZXItcmVjZW50LWl0ZW17cGFkZGluZzo2cHggMTBweDttaW4taGVpZ2h0OjM2cHh9LmZvbGRlci1waWNrZXItY29tcGFjdC1yb3d7cGFkZGluZzo2cHh9LmZvbGRlci1waWNrZXItY29tcGFjdC1pbnB1dHtmb250LXNpemU6LjYyNXJlbX0ud29ya2luZy1kaXItaW5kaWNhdG9ye2ZvbnQtc2l6ZTouNTYyNXJlbTtwYWRkaW5nOjFweCA0cHg7bWF4LXdpZHRoOjEyMHB4fS50b2RvLXByb2dyZXNzLWhlYWRlcntwYWRkaW5nOjNweCA2cHg7Z2FwOjRweH0udG9kby1wcm9ncmVzcy1jb3VudGVyLC50b2RvLXByb2dyZXNzLXRhc2t7Zm9udC1zaXplOi41NjI1cmVtfS50b2RvLXByb2dyZXNzLWNoZXZyb257d2lkdGg6MTJweDtoZWlnaHQ6MTJweH0udG9kby1wcm9ncmVzcy1ib2R5e3BhZGRpbmc6NHB4IDZweH0ubG9naW4tY29udGFpbmVye21pbi1oZWlnaHQ6MTAwZHZoO2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7cGFkZGluZzo4cHggOHB4IGNhbGMoOHB4ICsgdmFyKC0tc2FmZS1ib3R0b20sIDBweCkpfS5sb2dpbi1jYXJke21hcmdpbi10b3A6bWF4KDZweCxlbnYoc2FmZS1hcmVhLWluc2V0LXRvcCwwcHgpKX0ubG9naW4taGVhZGVye3BhZGRpbmc6MTRweCAxMnB4IDEwcHh9LmxvZ2luLWJvZHl7cGFkZGluZzoxMnB4fS5idG57bWluLWhlaWdodDo0MHB4fS5idG4tc217bWluLWhlaWdodDozMnB4fS5jaGF0LW1lc3NhZ2UtYnViYmxle3BhZGRpbmc6OHB4IDEwcHg7Zm9udC1zaXplOi43NXJlbX0uY2hhdC1tZXNzYWdlLWF2YXRhcntmb250LXNpemU6LjY4NzVyZW19Lm1vZGFsLWJhY2tkcm9we3BhZGRpbmc6OHB4O3BhZGRpbmctdG9wOm1heCg4cHgsdmFyKC0td2FuZC1zYWZlLXRvcCkpO3BhZGRpbmctbGVmdDptYXgoOHB4LHZhcigtLXdhbmQtc2FmZS1sZWZ0KSk7cGFkZGluZy1yaWdodDptYXgoOHB4LHZhcigtLXdhbmQtc2FmZS1yaWdodCkpO2FsaWduLWl0ZW1zOmZsZXgtZW5kfS5tb2RhbHttYXgtd2lkdGg6MTAwJTttYXgtaGVpZ2h0Ojg1dmg7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtbWQpIHZhcigtLXJhZGl1cy1tZCkgMCAwO21hcmdpbi1ib3R0b206dmFyKC0tc2FmZS1ib3R0b20sIDBweCl9Lm1vZGFsLWhlYWRlcntwYWRkaW5nOjEwcHggMTJweDttaW4taGVpZ2h0OjQwcHh9Lm1vZGFsLWJvZHl7cGFkZGluZzoxMHB4IDEycHh9Lm1vZGFsLWZvb3RlcntwYWRkaW5nOjhweCAxMnB4fS5zZXNzaW9uLW1vZGFsIC5tb2RhbC1mb290ZXJ7cGFkZGluZzoxMHB4IDEycHggMTRweH0udG9vbC1jYXJke3BhZGRpbmc6MTBweDttaW4taGVpZ2h0OjM2cHh9Lm1haW4tY29udGVudC5maWxlLXBhbmVsLW9wZW57bWFyZ2luLXJpZ2h0OjB9LmZpbGUtc2lkZS1wYW5lbHt3aWR0aDoxMDAlfS5maWxlLXNpZGUtcGFuZWwtaGVhZGVye3BhZGRpbmc6MTBweCAxMnB4O21pbi1oZWlnaHQ6NDhweH0uZmlsZS1zaWRlLXBhbmVsLWljb25idG57d2lkdGg6MzRweDtoZWlnaHQ6MzRweH0uZmlsZS1leHBsb3Jlci1oZWFkZXJ7cGFkZGluZzo2cHggMTBweCA0cHg7Z2FwOjZweH0uZmlsZS1leHBsb3Jlci11cHt3aWR0aDozMnB4O2hlaWdodDozMnB4fS5maWxlLXNlYXJjaC1ib3h7cGFkZGluZzo2cHggMTBweCA4cHh9LmZpbGUtc2VhcmNoLWljb257bGVmdDoyMHB4fS5maWxlLXNlYXJjaC1jbGVhcntyaWdodDoxNnB4fS5maWxlLXNlYXJjaC1pbnB1dHttaW4taGVpZ2h0OjM0cHg7Zm9udC1zaXplOjE2cHg7cGFkZGluZzo3cHggMzJweCA3cHggMzBweH0uYmxhbmstY2hhdHtwYWRkaW5nOjE2cHggMTJweDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0fS5ibGFuay1jaGF0LWlubmVye21heC13aWR0aDoxMDAlfS5ibGFuay1jaGF0LWxvZ297d2lkdGg6NDhweDtoZWlnaHQ6NDhweDtmb250LXNpemU6MjRweDtib3JkZXItcmFkaXVzOjEycHg7bWFyZ2luLWJvdHRvbToxMHB4fS5ibGFuay1jaGF0LXRpdGxle2ZvbnQtc2l6ZToxLjEyNXJlbX0uYmxhbmstY2hhdC1zdWJ0aXRsZXtmb250LXNpemU6Ljc1cmVtO21hcmdpbi1ib3R0b206MTZweH0uYmxhbmstY2hhdC10b29sc3tnYXA6NHB4O21hcmdpbi1ib3R0b206OHB4fS5ibGFuay1jaGF0LXRvb2wtYnRue3BhZGRpbmc6NnB4IDEwcHg7Zm9udC1zaXplOi43NXJlbTttaW4taGVpZ2h0OjQ0cHh9Lm5vdGlmaWNhdGlvbi1idWJibGV7bWF4LXdpZHRoOmNhbGMoMTAwdncgLSAyNHB4KX0uYmxhbmstY2hhdC1jd2QtZHJvcGRvd257bWluLXdpZHRoOjA7d2lkdGg6Y2FsYygxMDB2dyAtIDMycHgpO21heC13aWR0aDozMjBweH0udG9hc3QtbWVzc2FnZXttYXgtd2lkdGg6Y2FsYygxMDB2dyAtIDMycHgpfX1AbWVkaWEobWluLXdpZHRoOjM5MXB4KWFuZCAobWF4LXdpZHRoOjQyMHB4KXsudGVybWluYWwtY29udGFpbmVye21hcmdpbjowIDZweCA2cHg7cGFkZGluZzo2cHh9LmlucHV0LXBhbmVse3BhZGRpbmc6NnB4IDEwcHg7cGFkZGluZy1ib3R0b206Y2FsYyg4cHggKyB2YXIoLS1pbnB1dC1zYWZlLWJvdHRvbSwgdmFyKC0tc2FmZS1ib3R0b20sIDBweCkpKX19QG1lZGlhKG1heC13aWR0aDozOTBweCl7LmZsb2F0aW5nLXNpZGViYXItdG9nZ2xle3dpZHRoOjI4cHg7aGVpZ2h0OjI4cHh9LmZsb2F0aW5nLXNpZGViYXItdG9nZ2xlIC5oYW1idXJnZXItaWNvbnt3aWR0aDoxMXB4O2hlaWdodDo4cHh9LnRlcm1pbmFsLWhlYWRlcntwYWRkaW5nOjRweCA2cHg7bWluLWhlaWdodDoyOHB4fS50ZXJtaW5hbC1pbmZve2Rpc3BsYXk6bm9uZX0udGVybWluYWwtY29udGFpbmVye21hcmdpbjowIDRweCA0cHg7cGFkZGluZzo0cHh9LmlucHV0LXBhbmVse3BhZGRpbmc6NXB4IDZweDtwYWRkaW5nLWJvdHRvbTpjYWxjKDZweCArIHZhcigtLWlucHV0LXNhZmUtYm90dG9tLCB2YXIoLS1zYWZlLWJvdHRvbSwgMHB4KSkpfS5pbnB1dC1jb21wb3Nlcntib3JkZXItcmFkaXVzOjhweH0uaW5wdXQtdGV4dGFyZWF7bWluLWhlaWdodDoyOHB4O3BhZGRpbmc6NXB4IDI4cHggMnB4IDZweDtmb250LXNpemU6MTZweH0uYnRuLWNpcmNsZXt3aWR0aDoyOHB4O2hlaWdodDoyOHB4O21pbi13aWR0aDoyOHB4fS5zZXNzaW9uLWl0ZW17cGFkZGluZzo2cHggOHB4O21pbi1oZWlnaHQ6NDBweH0uc2Vzc2lvbi1hY3Rpb24tYnRue3dpZHRoOjMwcHg7aGVpZ2h0OjMwcHg7bWluLXdpZHRoOjMwcHg7bWluLWhlaWdodDozMHB4fS5zaWRlYmFye3RvcDowO3dpZHRoOm1pbigyNDBweCxjYWxjKDEwMHZ3IC0gMTBweCkpfS5zaWRlYmFyLWZvb3Rlci1hY3Rpb25ze2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoNCwxZnIpfS5zaWRlYmFyLWZvb3Rlci1hY3Rpb25zOmhhcyguc2lkZWJhci1iYWNrLXRvLW5hdGl2ZSk6aGFzKC5zaWRlYmFyLXN3aXRjaC1zZXJ2ZXIpe2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoNSwxZnIpfS5zaWRlYmFyLWZvb3Rlci1hY3Rpb25zIC5idG4gc3BhbntkaXNwbGF5Om5vbmV9LnNpZGViYXItZm9vdGVyLWFjdGlvbnMgLmJ0bnttaW4taGVpZ2h0OjM2cHg7cGFkZGluZzo2cHh9Lm1vZGFse21heC1oZWlnaHQ6ODB2aH0ubW9kYWwtaGVhZGVye3BhZGRpbmc6OHB4IDEwcHg7bWluLWhlaWdodDozNnB4fS5tb2RhbC1ib2R5e3BhZGRpbmc6OHB4IDEwcHh9LnNlc3Npb24tbW9kYWwgLm1vZGFsLWZvb3RlcntwYWRkaW5nOjhweCAxMHB4IDEycHh9LmZpZWxkLXJvd3tncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyO2dhcDowfS5idG57bWluLWhlaWdodDozNnB4O3BhZGRpbmc6OHB4IDEycHh9LmJ0bi1zbXttaW4taGVpZ2h0OjI4cHg7cGFkZGluZzo0cHggOHB4fX1AbWVkaWEobWluLXdpZHRoOjY0MXB4KWFuZCAobWF4LXdpZHRoOjc2OHB4KXsuc2lkZWJhcnt0b3A6MDt3aWR0aDptaW4oMzIwcHgsY2FsYygxMDB2dyAtIDQwcHgpKX0uc2Vzc2lvbi1pdGVte21pbi1oZWlnaHQ6NTJweDtwYWRkaW5nOjExcHggMTJweH0uc2Vzc2lvbi1hY3Rpb24tYnRue3dpZHRoOjM0cHg7aGVpZ2h0OjM0cHg7bWluLXdpZHRoOjM0cHg7bWluLWhlaWdodDozNHB4fS5idG57bWluLWhlaWdodDo0MnB4fS5idG4tc217bWluLWhlaWdodDozNnB4fS5mbG9hdGluZy10b2dnbGV7bWluLXdpZHRoOjQ4cHg7bWluLWhlaWdodDo0OHB4fX1AbWVkaWEobWF4LWhlaWdodDo0MjBweClhbmQgKG9yaWVudGF0aW9uOmxhbmRzY2FwZSl7LmZsb2F0aW5nLXNpZGViYXItdG9nZ2xle3dpZHRoOjI4cHg7aGVpZ2h0OjI4cHh9LnNpZGViYXJ7dG9wOjB9LnRlcm1pbmFsLWNvbnRhaW5lcnttaW4taGVpZ2h0OjU1dmg7bWFyZ2luOjZweDtwYWRkaW5nOjhweH0uY2hhdC1jb250YWluZXJ7cGFkZGluZzowIDEwcHggOHB4fS5pbnB1dC1wYW5lbHtwYWRkaW5nOjhweDtwYWRkaW5nLWJvdHRvbTpjYWxjKDhweCArIHZhcigtLWlucHV0LXNhZmUtYm90dG9tLCB2YXIoLS1zYWZlLWJvdHRvbSwgMHB4KSkpfX1AbWVkaWEobWF4LXdpZHRoOjQ4MHB4KXsuY2hhdC1jb250YWluZXJ7cGFkZGluZzowIDZweCA4cHh9LmNoYXQtbWVzc2FnZXN7cGFkZGluZy1sZWZ0OjJweDtwYWRkaW5nLXJpZ2h0OjJweDtnYXA6MTJweH0uY2hhdC1tZXNzYWdley0tY2hhdC1jYXJkLW1heC13aWR0aDogMTAwJX0udG9vbC11c2UtaGVhZGVye2ZsZXgtd3JhcDp3cmFwO3Jvdy1nYXA6NHB4O3BhZGRpbmc6OHB4IDEycHh9LnRvb2wtdXNlLWZpbGV7bWF4LXdpZHRoOjEwMCV9LnRvb2wtdXNlLWJvZHl7cGFkZGluZzoxMHB4IDEycHh9LnN1YmFnZW50LXJlcGx5e3BhZGRpbmc6OXB4IDEycHh9LnN1YmFnZW50LXJlcGx5LmNvbGxhcHNpYmxle3BhZGRpbmc6MH0uc3ViYWdlbnQtcmVwbHkuZmluYWx7cGFkZGluZzo5cHggMTFweH0uc3ViYWdlbnQtcGFuZWx7bWFyZ2luOjZweCAwfS5zdWJhZ2VudC1wYW5lbC1oZWFkZXJ7cGFkZGluZzo3cHggMTBweDtnYXA6NnB4O2ZvbnQtc2l6ZTouNzRyZW19LnN1YmFnZW50LXBhbmVsLWF0dHJpYnV0aW9ue3doaXRlLXNwYWNlOm5vcm1hbDtsaW5lLWhlaWdodDoxLjR9LnN1YmFnZW50LXBhbmVsLXRhZ3ttYXJnaW46MCA0cHg7cGFkZGluZzowIDRweH0uc3ViYWdlbnQtcGFuZWwtYm9keXtwYWRkaW5nOjlweCAxMXB4fS5zdWJhZ2VudC1wYW5lbFtkYXRhLWV4cGFuZGVkPWZhbHNlXSAuc3ViYWdlbnQtcGFuZWwtYm9keXttYXgtaGVpZ2h0OjE4ZW19LnN1YmFnZW50LXBhbmVsW2RhdGEtZXhwYW5kZWQ9dHJ1ZV0gLnN1YmFnZW50LXBhbmVsLWJvZHl7bWF4LWhlaWdodDo2MHZofS5zdWJhZ2VudC1wYW5lbC1mb290ZXJ7cGFkZGluZzo1cHggMTBweH0uc3ViYWdlbnQtcGFuZWwtZm9vdGVyLWhpbnR7ZGlzcGxheTpub25lfS5tYXJrZG93bi1jb250ZW50IC5jb2RlLWJsb2Nre21hcmdpbjo4cHggMH0ubWFya2Rvd24tY29udGVudCBwcmUsLm1hcmtkb3duLWNvbnRlbnQgLmNvZGUtYmxvY2sgcHJlLC5zdWJhZ2VudC1yZXBseSBwcmV7cGFkZGluZzoxMHB4fS5kaWZmLWNvbHVtbnN7ZmxleC1kaXJlY3Rpb246Y29sdW1ufS5kaWZmLWNvbCwuZGlmZi1jb2wtaGFsZiwuZGlmZi1jb2wtZnVsbHtmbGV4OjEgMSBhdXRvO3dpZHRoOjEwMCU7bWF4LXdpZHRoOjEwMCV9LnRlcm0taGVhZGVyLC5kaWZmLWhlYWRlcntmbGV4LXdyYXA6d3JhcDtyb3ctZ2FwOjRweH0uZGlmZi1wYXRoe2ZsZXgtYmFzaXM6MTAwJTtvcmRlcjo5OX0uaW5saW5lLXRvb2wtcm93e2ZsZXgtd3JhcDp3cmFwO3Jvdy1nYXA6MnB4fS5pbmxpbmUtdG9vbC1tZXRhe21heC13aWR0aDoxMDAlO2ZsZXgtYmFzaXM6MTAwJTtwYWRkaW5nLWxlZnQ6MjJweH19LnNlc3Npb24ta2luZC1iYWRnZXtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtoZWlnaHQ6MThweDtwYWRkaW5nOjAgNnB4O2JvcmRlci1yYWRpdXM6OTk5cHg7Zm9udC1zaXplOi42ODc1cmVtO2ZvbnQtd2VpZ2h0OjYwMDtsZXR0ZXItc3BhY2luZzouMDFlbTtib3JkZXI6MXB4IHNvbGlkIHRyYW5zcGFyZW50O2ZsZXgtc2hyaW5rOjB9LnNlc3Npb24ta2luZC1iYWRnZS5wdHl7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2JhY2tncm91bmQ6Izc4ODA4YzFmO2JvcmRlci1jb2xvcjojNzg4MDhjMmV9LnNlc3Npb24ta2luZC1iYWRnZS5zdHJ1Y3R1cmVke2NvbG9yOiNkMThiNTI7YmFja2dyb3VuZDojZDc3YTUyMWE7Ym9yZGVyLWNvbG9yOiNkNzdhNTIzOH0uc2Vzc2lvbi1raW5kLWJhZGdlLndvcmt0cmVle2NvbG9yOiMyZjZmNTQ7YmFja2dyb3VuZDojNGY3YTU4MWY7Ym9yZGVyLWNvbG9yOiM0ZjdhNTgzOH0uc2Vzc2lvbi1raW5kLWRpc3BsYXl7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7cGFkZGluZzoxcHggNnB4O2JvcmRlci1yYWRpdXM6OTk5cHg7Zm9udC1zaXplOi42ODc1cmVtO2ZvbnQtd2VpZ2h0OjYwMDtjb2xvcjojOGE0YjI0O2JhY2tncm91bmQ6I2Q3N2E1MjFmO2JvcmRlcjoxcHggc29saWQgcmdiYSgyMTUsMTIyLDgyLC4yKX0uc3RydWN0dXJlZC10b29sLWhpbnR7bWFyZ2luOjRweCAwIDhweDtwYWRkaW5nOjZweCAxMHB4O2JvcmRlci1yYWRpdXM6MTBweDtmb250LXNpemU6Ljc1cmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2JhY2tncm91bmQ6I2Q3N2E1MjE0O2JvcmRlcjoxcHggZGFzaGVkIHJnYmEoMjE1LDEyMiw4MiwuMTgpfS5ibGFuay1jaGF0e2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtmbGV4OjE7cGFkZGluZzoyMHB4IDE2cHg7bWluLWhlaWdodDowO292ZXJmbG93OmF1dG99LmJsYW5rLWNoYXQtaW5uZXJ7d2lkdGg6MTAwJTttYXgtd2lkdGg6NTYwcHg7dGV4dC1hbGlnbjpjZW50ZXJ9LmJsYW5rLWNoYXQtbG9nb3t3aWR0aDo1NnB4O2hlaWdodDo1NnB4O2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDEzNWRlZywjZDc3YTUyLCNhOTUxMzApO2JvcmRlci1yYWRpdXM6MTZweDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Zm9udC1zaXplOjI4cHg7Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOiNmZmY7bWFyZ2luOjAgYXV0byAxNHB4O2JveC1zaGFkb3c6MCA0cHggMTZweCAjYzU2NTNkMzh9LmJsYW5rLWNoYXQtdGl0bGV7Zm9udC1zaXplOjEuMzc1cmVtO2ZvbnQtd2VpZ2h0OjYwMDtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO21hcmdpbjowIDAgNnB4fS5ibGFuay1jaGF0LXN1YnRpdGxle2ZvbnQtc2l6ZTouODEyNXJlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTttYXJnaW46MCAwIDIwcHh9LmJsYW5rLWNoYXQtdG9vbHN7ZGlzcGxheTpmbGV4O2dhcDo4cHg7anVzdGlmeS1jb250ZW50OmNlbnRlcjttYXJnaW4tYm90dG9tOjEycHg7ZmxleC13cmFwOndyYXB9LmJsYW5rLWNoYXQtdG9vbC1idG57cGFkZGluZzo4cHggMTRweDtib3JkZXI6MS41cHggc29saWQgdmFyKC0tYm9yZGVyLWRlZmF1bHQpO2JvcmRlci1yYWRpdXM6MTBweDtiYWNrZ3JvdW5kOiNmZmZmZmZiMztjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7Zm9udC1zaXplOi44NzVyZW07Zm9udC13ZWlnaHQ6NTAwO2ZvbnQtZmFtaWx5OmluaGVyaXQ7Y3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjphbGwgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2cHg7bWluLWhlaWdodDo0MHB4fS5ibGFuay1jaGF0LXRvb2wtYnRuOmhvdmVye2JhY2tncm91bmQ6dmFyKC0tYWNjZW50LW11dGVkKTtib3JkZXItY29sb3I6dmFyKC0tYWNjZW50KTtjb2xvcjp2YXIoLS1hY2NlbnQpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xcHgpO2JveC1zaGFkb3c6MCA0cHggMTJweCAjNTkzYTIwMTR9LmJsYW5rLWNoYXQtdG9vbC1idG4gLnRvb2wtaWNvbntmb250LXNpemU6MS4xMjVyZW19LmJsYW5rLWNoYXQtY3dkLXdyYXB7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpjZW50ZXI7bWFyZ2luLXRvcDo4cHh9LmJsYW5rLWNoYXQtY3dke2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo0cHg7Y3Vyc29yOnBvaW50ZXI7Zm9udC1zaXplOi43NXJlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtwYWRkaW5nOjRweCA4cHg7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtc20pO3RyYW5zaXRpb246Y29sb3IgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KSxiYWNrZ3JvdW5kIHZhcigtLXRyYW5zaXRpb24tZmFzdCk7dXNlci1zZWxlY3Q6bm9uZX0uYmxhbmstY2hhdC1jd2Q6aG92ZXJ7Y29sb3I6dmFyKC0tYWNjZW50KTtiYWNrZ3JvdW5kOnZhcigtLWFjY2VudC1tdXRlZCl9LmJsYW5rLWNoYXQtY3dkLWljb257Zm9udC1zaXplOi44MTI1cmVtfS5ibGFuay1jaGF0LWN3ZC1wYXRoe2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7bWF4LXdpZHRoOjI4MHB4O292ZXJmbG93OmhpZGRlbjt3aGl0ZS1zcGFjZTpub3dyYXB9LmJsYW5rLWNoYXQtY3dkLXBhdGg6Oi13ZWJraXQtc2Nyb2xsYmFye2hlaWdodDozcHh9LmJsYW5rLWNoYXQtY3dkLXBhdGg6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1ie2JhY2tncm91bmQ6Izk2NzY1NTUyO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLWZ1bGwpfS5ibGFuay1jaGF0LWN3ZDpob3ZlciAuYmxhbmstY2hhdC1jd2QtcGF0aHtzY3JvbGxiYXItd2lkdGg6dGhpbn0uYmxhbmstY2hhdC1jd2Q6aG92ZXIgLmJsYW5rLWNoYXQtY3dkLXBhdGg6Oi13ZWJraXQtc2Nyb2xsYmFye2hlaWdodDo0cHh9LmJsYW5rLWNoYXQtY3dkLWFycm93e2ZvbnQtc2l6ZTouNjI1cmVtO29wYWNpdHk6LjY7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gdmFyKC0tdHJhbnNpdGlvbi1mYXN0KX0uYmxhbmstY2hhdC1jd2QtZHJvcGRvd257cG9zaXRpb246YWJzb2x1dGU7dG9wOjEwMCU7bGVmdDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlKTttaW4td2lkdGg6MjYwcHg7bWF4LXdpZHRoOjQwMHB4O21heC1oZWlnaHQ6MjQwcHg7b3ZlcmZsb3cteTphdXRvO2JhY2tncm91bmQ6dmFyKC0tYmctcHJpbWFyeSk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItZGVmYXVsdCk7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtbWQpO2JveC1zaGFkb3c6MCA0cHggMTZweCAjMDAwMDAwMWE7ei1pbmRleDo1MDttYXJnaW4tdG9wOjRweDtwYWRkaW5nOjRweH0uYmxhbmstY2hhdC1jd2QtaXRlbXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2cHg7cGFkZGluZzo2cHggMTBweDtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1zbSk7Y3Vyc29yOnBvaW50ZXI7Zm9udC1zaXplOi43NXJlbTtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIHZhcigtLXRyYW5zaXRpb24tZmFzdCl9LmJsYW5rLWNoYXQtY3dkLWl0ZW06aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS1hY2NlbnQtbXV0ZWQpO2NvbG9yOnZhcigtLWFjY2VudCl9LmJsYW5rLWNoYXQtY3dkLWl0ZW0uYWN0aXZle2JhY2tncm91bmQ6dmFyKC0tYWNjZW50LW11dGVkKTtjb2xvcjp2YXIoLS1hY2NlbnQpO2ZvbnQtd2VpZ2h0OjUwMH0uYmxhbmstY2hhdC1jd2QtaXRlbS1sYWJlbHtmb250LXNpemU6LjYyNXJlbTtiYWNrZ3JvdW5kOnZhcigtLWFjY2VudC1tdXRlZCk7Y29sb3I6dmFyKC0tYWNjZW50KTtwYWRkaW5nOjFweCA1cHg7Ym9yZGVyLXJhZGl1czozcHg7Zm9udC13ZWlnaHQ6NTAwO3doaXRlLXNwYWNlOm5vd3JhcH0uYmxhbmstY2hhdC1jd2QtaXRlbS1wYXRoe2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7ZmxleDoxIDEgYXV0bzttaW4td2lkdGg6MDtvdmVyZmxvdzpoaWRkZW47d2hpdGUtc3BhY2U6bm93cmFwfS5ibGFuay1jaGF0LWN3ZC1sb2FkaW5ne3BhZGRpbmc6OHB4IDEwcHg7Zm9udC1zaXplOi43NXJlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTt0ZXh0LWFsaWduOmNlbnRlcn0uY2hhdC1tb2RlLXNlbGVjdHtmb250LWZhbWlseTppbmhlcml0O2N1cnNvcjpwb2ludGVyO291dGxpbmU6bm9uZX0uY2hhdC1tb2RlLXNlbGVjdDpmb2N1c3tib3JkZXItY29sb3I6dmFyKC0tYWNjZW50KX0udG9hc3QtbWVzc2FnZXtwb3NpdGlvbjpmaXhlZDt0b3A6MjRweDtsZWZ0OjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUpO3BhZGRpbmc6MTBweCAyMHB4O2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLW1kKTtmb250LXNpemU6Ljg3NXJlbTt6LWluZGV4Ojk5OTk7Ym94LXNoYWRvdzp2YXIoLS1zaGFkb3ctbGcpO2FuaW1hdGlvbjp0b2FzdC1pbiAuMjJzIGN1YmljLWJlemllciguMzQsMS41NiwuNjQsMSl9LnRvYXN0LWVycm9ye2JhY2tncm91bmQ6dmFyKC0tZGFuZ2VyKTtjb2xvcjojZmZmfUBrZXlmcmFtZXMgdG9hc3QtaW57MCV7b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSkgdHJhbnNsYXRlWSgtMTJweCl9dG97b3BhY2l0eToxO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSkgdHJhbnNsYXRlWSgwKX19Lm5vdGlmaWNhdGlvbi1idWJibGV7cG9zaXRpb246Zml4ZWQ7bGVmdDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlKTt6LWluZGV4OjEwMDAwO21pbi13aWR0aDoyMjBweDttYXgtd2lkdGg6MzIwcHg7YmFja2dyb3VuZDp2YXIoLS1iZy1wcmltYXJ5KTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlcik7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMpO2JveC1zaGFkb3c6dmFyKC0tc2hhZG93LWxnKTtwYWRkaW5nOjhweCAxMnB4O2FuaW1hdGlvbjpub3RpZmljYXRpb24tc2xpZGUtaW4gLjNzIGN1YmljLWJlemllciguMzQsMS41NiwuNjQsMSk7dHJhbnNpdGlvbjp0b3AgLjI1cyBlYXNlLG9wYWNpdHkgLjI1cyBlYXNlfS5ub3RpZmljYXRpb24tYnViYmxlLnNsaWRlLW91dHthbmltYXRpb246bm90aWZpY2F0aW9uLXNsaWRlLW91dCAuMjVzIGVhc2UgZm9yd2FyZHM7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlKX0ubm90aWZpY2F0aW9uLWJ1YmJsZS1oZWFkZXJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NnB4O21hcmdpbi1ib3R0b206MnB4fS5ub3RpZmljYXRpb24tYnViYmxlLWljb257d2lkdGg6MTZweDtoZWlnaHQ6MTZweDtmbGV4LXNocmluazowO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1zbSk7Zm9udC1zaXplOjEwcHh9Lm5vdGlmaWNhdGlvbi1idWJibGUtaWNvbi5pbmZve2JhY2tncm91bmQ6dmFyKC0tYWNjZW50KTtjb2xvcjojZmZmfS5ub3RpZmljYXRpb24tYnViYmxlLWljb24ud2FybmluZ3tiYWNrZ3JvdW5kOnZhcigtLXdhcm5pbmcpO2NvbG9yOiNmZmZ9Lm5vdGlmaWNhdGlvbi1idWJibGUtaWNvbi5zdWNjZXNze2JhY2tncm91bmQ6dmFyKC0tc3VjY2Vzcyk7Y29sb3I6I2ZmZn0ubm90aWZpY2F0aW9uLWJ1YmJsZS10aXRsZXtmb250LXNpemU6Ljc1cmVtO2ZvbnQtd2VpZ2h0OjYwMDtjb2xvcjp2YXIoLS1mZy1wcmltYXJ5KTtmbGV4OjE7bWluLXdpZHRoOjB9Lm5vdGlmaWNhdGlvbi1idWJibGUtY2xvc2V7YmFja2dyb3VuZDpub25lO2JvcmRlcjpub25lO2NvbG9yOnZhcigtLWZnLW11dGVkKTtjdXJzb3I6cG9pbnRlcjtmb250LXNpemU6MTRweDtsaW5lLWhlaWdodDoxO3BhZGRpbmc6MXB4IDNweDtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1zbSk7ZmxleC1zaHJpbms6MH0ubm90aWZpY2F0aW9uLWJ1YmJsZS1jbG9zZTpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLWJnLWhvdmVyKTtjb2xvcjp2YXIoLS1mZy1wcmltYXJ5KX0ubm90aWZpY2F0aW9uLWJ1YmJsZS1ib2R5e2ZvbnQtc2l6ZTouN3JlbTtjb2xvcjp2YXIoLS1mZy1zZWNvbmRhcnkpO2xpbmUtaGVpZ2h0OjEuNDttYXJnaW4tYm90dG9tOjA7bWF4LWhlaWdodDo0LjJlbTtvdmVyZmxvdzpoaWRkZW47ZGlzcGxheTotd2Via2l0LWJveDstd2Via2l0LWxpbmUtY2xhbXA6Mzstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWx9Lm5vdGlmaWNhdGlvbi1idWJibGUtYWN0aW9uc3ttYXJnaW4tdG9wOjZweDtkaXNwbGF5OmZsZXg7Z2FwOjZweDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9Lm5vdGlmaWNhdGlvbi1idWJibGUtYWN0aW9ucyBidXR0b257Zm9udC1zaXplOi43cmVtO3BhZGRpbmc6MnB4IDEwcHg7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtc20pO2N1cnNvcjpwb2ludGVyO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyKTtiYWNrZ3JvdW5kOnZhcigtLWJnLXNlY29uZGFyeSk7Y29sb3I6dmFyKC0tZmctcHJpbWFyeSk7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4xNXN9Lm5vdGlmaWNhdGlvbi1idWJibGUtYWN0aW9ucyBidXR0b246aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS1iZy1ob3Zlcil9Lm5vdGlmaWNhdGlvbi1idWJibGUtYWN0aW9ucyBidXR0b24ucHJpbWFyeXtiYWNrZ3JvdW5kOnZhcigtLWFjY2VudCk7Y29sb3I6I2ZmZjtib3JkZXItY29sb3I6dmFyKC0tYWNjZW50KX0ubm90aWZpY2F0aW9uLWJ1YmJsZS1hY3Rpb25zIGJ1dHRvbi5wcmltYXJ5OmhvdmVye2ZpbHRlcjpicmlnaHRuZXNzKDEuMSl9QGtleWZyYW1lcyBub3RpZmljYXRpb24tc2xpZGUtaW57MCV7b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSkgdHJhbnNsYXRlWSgtMjBweCl9dG97b3BhY2l0eToxO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSkgdHJhbnNsYXRlWSgwKX19QGtleWZyYW1lcyBub3RpZmljYXRpb24tc2xpZGUtb3V0ezAle29wYWNpdHk6MTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUpIHRyYW5zbGF0ZVkoMCl9dG97b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSkgdHJhbnNsYXRlWSgtMjBweCl9fS5ub3RpZmljYXRpb24tYnViYmxlLWFjdGlvbnMgYnV0dG9uOmRpc2FibGVke29wYWNpdHk6LjY7Y3Vyc29yOm5vdC1hbGxvd2VkO2ZpbHRlcjpub25lfS5ub3RpZmljYXRpb24tYnViYmxlLWFjdGlvbnMgYnV0dG9uLnN1Y2Nlc3N7YmFja2dyb3VuZDp2YXIoLS1zdWNjZXNzKTtjb2xvcjojZmZmO2JvcmRlci1jb2xvcjp2YXIoLS1zdWNjZXNzKX0ubm90aWZpY2F0aW9uLWJ1YmJsZS1hY3Rpb25zIGJ1dHRvbi5zdWNjZXNzOmhvdmVyOm5vdCg6ZGlzYWJsZWQpe2ZpbHRlcjpicmlnaHRuZXNzKDEuMSl9Lm5vdGlmaWNhdGlvbi1idWJibGUudXBkYXRlLWNhcmR7d2lkdGg6bWluKDM2MHB4LGNhbGMoMTAwdncgLSAyNHB4KSk7bWF4LXdpZHRoOm1pbigzNjBweCxjYWxjKDEwMHZ3IC0gMjRweCkpO21pbi13aWR0aDowO3BhZGRpbmc6MTRweCAxNHB4IDEycHg7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtbWQpO2JhY2tncm91bmQ6cmFkaWFsLWdyYWRpZW50KDEyMCUgMTIwJSBhdCAwJSAwJSx2YXIoLS1hY2NlbnQtbXV0ZWQpIDAlLHRyYW5zcGFyZW50IDU1JSksbGluZWFyLWdyYWRpZW50KDE4MGRlZyx2YXIoLS1iZy1lbGV2YXRlZCkgMCUsdmFyKC0tYmctcHJpbWFyeSkgMTAwJSk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3Ryb25nKTtib3gtc2hhZG93OnZhcigtLXNoYWRvdy14bCksMCAwIDAgMXB4ICNmZmY2IGluc2V0O292ZXJmbG93OmhpZGRlbjtpc29sYXRpb246aXNvbGF0ZX0udXBkYXRlLWNhcmQtc2hpbmV7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtwb2ludGVyLWV2ZW50czpub25lO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDExNWRlZyx0cmFuc3BhcmVudCAwJSxyZ2JhKDI1NSwyNTUsMjU1LC4xOCkgNDUlLHJnYmEoMjU1LDI1NSwyNTUsLjMyKSA1MCUscmdiYSgyNTUsMjU1LDI1NSwuMTgpIDU1JSx0cmFuc3BhcmVudCAxMDAlKTtiYWNrZ3JvdW5kLXNpemU6MjIwJSAxMDAlO2JhY2tncm91bmQtcG9zaXRpb246MTIwJSAwO21peC1ibGVuZC1tb2RlOm92ZXJsYXk7b3BhY2l0eTouNjU7YW5pbWF0aW9uOnVwZGF0ZS1jYXJkLXNoaW5lIDZzIGVhc2UtaW4tb3V0IGluZmluaXRlO3otaW5kZXg6MH1Aa2V5ZnJhbWVzIHVwZGF0ZS1jYXJkLXNoaW5lezAle2JhY2tncm91bmQtcG9zaXRpb246MTIwJSAwfTU1JXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0yMCUgMH10b3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0yMCUgMH19LnVwZGF0ZS1jYXJkLmlzLXN1Y2Nlc3N7YmFja2dyb3VuZDpyYWRpYWwtZ3JhZGllbnQoMTIwJSAxMjAlIGF0IDAlIDAlLHZhcigtLXN1Y2Nlc3MtbXV0ZWQpIDAlLHRyYW5zcGFyZW50IDU1JSksbGluZWFyLWdyYWRpZW50KDE4MGRlZyx2YXIoLS1iZy1lbGV2YXRlZCkgMCUsdmFyKC0tYmctcHJpbWFyeSkgMTAwJSk7Ym9yZGVyLWNvbG9yOnZhcigtLXN1Y2Nlc3MpO2JveC1zaGFkb3c6dmFyKC0tc2hhZG93LXhsKSwwIDAgMCAxcHggI2ZmZjYgaW5zZXQsdmFyKC0tc2hhZG93LWdsb3ctc3VjY2Vzcyl9LnVwZGF0ZS1jYXJkLWhlYWRlcntwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjE7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7Z2FwOjEwcHh9LnVwZGF0ZS1jYXJkLWljb257d2lkdGg6MzJweDtoZWlnaHQ6MzJweDtmbGV4LXNocmluazowO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLXNtKTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxMzVkZWcsdmFyKC0tYWNjZW50KSAwJSx2YXIoLS1hY2NlbnQtaG92ZXIpIDEwMCUpO2JveC1zaGFkb3c6MCA0cHggMTJweCB2YXIoLS1hY2NlbnQtZ2xvdyksaW5zZXQgMCAxcHggI2ZmZmZmZjU5fS51cGRhdGUtY2FyZC5pcy1zdWNjZXNzIC51cGRhdGUtY2FyZC1pY29ue2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDEzNWRlZyx2YXIoLS1zdWNjZXNzKSAwJSx2YXIoLS1zdWNjZXNzLWhvdmVyKSAxMDAlKTtib3gtc2hhZG93OjAgNHB4IDEycHggdmFyKC0tc3VjY2Vzcy1nbG93KSxpbnNldCAwIDFweCAjZmZmZmZmNTl9LnVwZGF0ZS1jYXJkLWhlYWRpbmd7ZmxleDoxO21pbi13aWR0aDowO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjJweH0udXBkYXRlLWNhcmQtdGl0bGV7Zm9udC1zaXplOi44OHJlbTtmb250LXdlaWdodDo3MDA7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtsZXR0ZXItc3BhY2luZzouMDFlbTtsaW5lLWhlaWdodDoxLjI1fS51cGRhdGUtY2FyZC1zdWJ0aXRsZXtmb250LXNpemU6LjcycmVtO2NvbG9yOnZhcigtLXRleHQtdGVydGlhcnkpO2xpbmUtaGVpZ2h0OjEuMzV9LnVwZGF0ZS1jYXJkLWNsb3Nle2ZsZXgtc2hyaW5rOjA7d2lkdGg6MjRweDtoZWlnaHQ6MjRweDtib3JkZXI6bm9uZTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1zbSk7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7cGFkZGluZzowO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMTVzLGNvbG9yIC4xNXN9LnVwZGF0ZS1jYXJkLWNsb3NlOmhvdmVye2JhY2tncm91bmQ6dmFyKC0tYmctdGVydGlhcnkpO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSl9LnVwZGF0ZS1jYXJkLXZlcnNpb257cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoxO21hcmdpbjoxMnB4IDAgMTBweDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo4cHg7ZmxleC13cmFwOm5vd3JhcH0udXBkYXRlLWNhcmQtdmVyc2lvbi1jaGlwe2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubywgdWktbW9ub3NwYWNlLCAiU0YgTW9ubyIsIE1lbmxvLCBDb25zb2xhcywgbW9ub3NwYWNlKTtmb250LXNpemU6Ljc0cmVtO2ZvbnQtd2VpZ2h0OjYwMDtwYWRkaW5nOjNweCAxMHB4O2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLWZ1bGwpO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSk7d2hpdGUtc3BhY2U6bm93cmFwfS51cGRhdGUtY2FyZC12ZXJzaW9uLWN1cnJlbnR7Y29sb3I6dmFyKC0tdGV4dC10ZXJ0aWFyeSk7YmFja2dyb3VuZDp2YXIoLS1iZy10ZXJ0aWFyeSl9LnVwZGF0ZS1jYXJkLXZlcnNpb24tbGF0ZXN0e2NvbG9yOnZhcigtLWFjY2VudCk7YmFja2dyb3VuZDp2YXIoLS1hY2NlbnQtbXV0ZWQpO2JvcmRlci1jb2xvcjp2YXIoLS1hY2NlbnQpO2JveC1zaGFkb3c6MCAxcHggNnB4IHZhcigtLWFjY2VudC1nbG93KX0udXBkYXRlLWNhcmQuaXMtc3VjY2VzcyAudXBkYXRlLWNhcmQtdmVyc2lvbi1sYXRlc3R7Y29sb3I6dmFyKC0tc3VjY2Vzcyk7YmFja2dyb3VuZDp2YXIoLS1zdWNjZXNzLW11dGVkKTtib3JkZXItY29sb3I6dmFyKC0tc3VjY2Vzcyk7Ym94LXNoYWRvdzowIDFweCA2cHggdmFyKC0tc3VjY2Vzcy1nbG93KX0udXBkYXRlLWNhcmQtdmVyc2lvbi1hcnJvd3tjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtmbGV4LXNocmluazowfS51cGRhdGUtY2FyZC1wcm9ncmVzc3twb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjE7aGVpZ2h0OjA7b3ZlcmZsb3c6aGlkZGVuO21hcmdpbjowO3RyYW5zaXRpb246aGVpZ2h0IC4yNXMgZWFzZSxtYXJnaW4gLjI1cyBlYXNlfS51cGRhdGUtY2FyZC1wcm9ncmVzcy5hY3RpdmV7aGVpZ2h0OjZweDttYXJnaW46MCAwIDEwcHh9LnVwZGF0ZS1jYXJkLXByb2dyZXNzLXRyYWNre3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7YmFja2dyb3VuZDp2YXIoLS1iZy10ZXJ0aWFyeSk7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtZnVsbCk7b3ZlcmZsb3c6aGlkZGVufS51cGRhdGUtY2FyZC1wcm9ncmVzcy1maWxse3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6LTQwJTt3aWR0aDo0MCU7aGVpZ2h0OjEwMCU7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtZnVsbCk7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoOTBkZWcsdmFyKC0tYWNjZW50KSAwJSx2YXIoLS1hY2NlbnQtaG92ZXIpIDEwMCUpO2JveC1zaGFkb3c6MCAwIDEwcHggdmFyKC0tYWNjZW50LWdsb3cpO2FuaW1hdGlvbjp1cGRhdGUtY2FyZC1wcm9ncmVzcy1zd2VlcCAxLjRzIGN1YmljLWJlemllciguNjUsLjA1LC4zNSwxKSBpbmZpbml0ZX1Aa2V5ZnJhbWVzIHVwZGF0ZS1jYXJkLXByb2dyZXNzLXN3ZWVwezAle2xlZnQ6LTQ1JTt3aWR0aDo0MCV9NTAle2xlZnQ6MjUlO3dpZHRoOjU1JX10b3tsZWZ0OjEwNSU7d2lkdGg6NDAlfX0udXBkYXRlLWNhcmQtc3RhdHVze3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MTtmb250LXNpemU6LjcycmVtO2xpbmUtaGVpZ2h0OjEuNDtwYWRkaW5nOjZweCAxMHB4O2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLXNtKTttYXJnaW4tYm90dG9tOjEwcHg7YmFja2dyb3VuZDp2YXIoLS1iZy10ZXJ0aWFyeSk7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSl9LnVwZGF0ZS1jYXJkLXN0YXR1cy5lcnJvcntiYWNrZ3JvdW5kOnZhcigtLWRhbmdlci1tdXRlZCk7Y29sb3I6dmFyKC0tZGFuZ2VyKTtib3JkZXItY29sb3I6dmFyKC0tZGFuZ2VyKX0udXBkYXRlLWNhcmQtc3RhdHVzLnN1Y2Nlc3N7YmFja2dyb3VuZDp2YXIoLS1zdWNjZXNzLW11dGVkKTtjb2xvcjp2YXIoLS1zdWNjZXNzKTtib3JkZXItY29sb3I6dmFyKC0tc3VjY2Vzcyl9LnVwZGF0ZS1jYXJkLWFjdGlvbnN7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoxO2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7Z2FwOjhweH0udXBkYXRlLWNhcmQtYWN0aW9ue2ZvbnQtc2l6ZTouNzhyZW07Zm9udC13ZWlnaHQ6NjAwO3BhZGRpbmc6N3B4IDE2cHg7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtc20pO2JvcmRlcjoxcHggc29saWQgdHJhbnNwYXJlbnQ7Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjZweDt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMTJzIGVhc2UsZmlsdGVyIC4xNXMgZWFzZSxib3gtc2hhZG93IC4xNXMgZWFzZX0udXBkYXRlLWNhcmQtYWN0aW9uLXByaW1hcnl7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLHZhcigtLWFjY2VudCkgMCUsdmFyKC0tYWNjZW50LWhvdmVyKSAxMDAlKTtjb2xvcjojZmZmO2JveC1zaGFkb3c6MCA0cHggMTJweCB2YXIoLS1hY2NlbnQtZ2xvdyksaW5zZXQgMCAxcHggI2ZmZmZmZjQwfS51cGRhdGUtY2FyZC1hY3Rpb24tcHJpbWFyeTpob3Zlcjpub3QoOmRpc2FibGVkKXtmaWx0ZXI6YnJpZ2h0bmVzcygxLjA1KTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMXB4KTtib3gtc2hhZG93OjAgNnB4IDE2cHggdmFyKC0tYWNjZW50LWdsb3cpLGluc2V0IDAgMXB4ICNmZmZmZmY0ZH0udXBkYXRlLWNhcmQtYWN0aW9uLXByaW1hcnk6YWN0aXZlOm5vdCg6ZGlzYWJsZWQpe3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApO2ZpbHRlcjpicmlnaHRuZXNzKC45Nil9LnVwZGF0ZS1jYXJkLWFjdGlvbjpkaXNhYmxlZHtvcGFjaXR5Oi43O2N1cnNvcjpwcm9ncmVzcztmaWx0ZXI6bm9uZTt0cmFuc2Zvcm06bm9uZX0udXBkYXRlLWNhcmQuaXMtc3VjY2VzcyAudXBkYXRlLWNhcmQtYWN0aW9uLXByaW1hcnl7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLHZhcigtLXN1Y2Nlc3MpIDAlLHZhcigtLXN1Y2Nlc3MtaG92ZXIpIDEwMCUpO2JveC1zaGFkb3c6MCA0cHggMTJweCB2YXIoLS1zdWNjZXNzLWdsb3cpLGluc2V0IDAgMXB4ICNmZmZmZmY0MH0udXBkYXRlLWNhcmQuaXMtc3VjY2VzcyAudXBkYXRlLWNhcmQtYWN0aW9uLXByaW1hcnk6aG92ZXI6bm90KDpkaXNhYmxlZCl7Ym94LXNoYWRvdzowIDZweCAxNnB4IHZhcigtLXN1Y2Nlc3MtZ2xvdyksaW5zZXQgMCAxcHggI2ZmZmZmZjRkfS5yZXN0YXJ0LW92ZXJsYXl7cG9zaXRpb246Zml4ZWQ7aW5zZXQ6MDt6LWluZGV4Ojk5OTk5O2JhY2tncm91bmQ6IzAwMDAwMGE2O2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtiYWNrZHJvcC1maWx0ZXI6Ymx1cig0cHgpO2FuaW1hdGlvbjpyZXN0YXJ0LWZhZGUtaW4gLjNzIGVhc2V9LnJlc3RhcnQtb3ZlcmxheS1jb250ZW50e3RleHQtYWxpZ246Y2VudGVyO2NvbG9yOiNmZmZ9LnJlc3RhcnQtdGl0bGV7Zm9udC1zaXplOjEuMjVyZW07Zm9udC13ZWlnaHQ6NjAwO21hcmdpbi1ib3R0b206OHB4fS5yZXN0YXJ0LXN1YnRpdGxle2ZvbnQtc2l6ZTouOXJlbTtvcGFjaXR5Oi44fS5yZXN0YXJ0LXNwaW5uZXJ7d2lkdGg6MzZweDtoZWlnaHQ6MzZweDttYXJnaW46MCBhdXRvIDE2cHg7Ym9yZGVyOjNweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LC4yNSk7Ym9yZGVyLXRvcC1jb2xvcjojZmZmO2JvcmRlci1yYWRpdXM6NTAlO2FuaW1hdGlvbjpyZXN0YXJ0LXNwaW4gLjhzIGxpbmVhciBpbmZpbml0ZX1Aa2V5ZnJhbWVzIHJlc3RhcnQtc3Bpbnt0b3t0cmFuc2Zvcm06cm90YXRlKDM2MGRlZyl9fUBrZXlmcmFtZXMgcmVzdGFydC1mYWRlLWluezAle29wYWNpdHk6MH10b3tvcGFjaXR5OjF9fS5maWxlLXByZXZpZXctb3ZlcmxheXtwb3NpdGlvbjpmaXhlZDtpbnNldDowO2JhY2tncm91bmQ6IzAwMDAwMDgwO3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7YW5pbWF0aW9uOmZhZGUtaW4gLjE1cyBlYXNlfUBrZXlmcmFtZXMgZmFkZS1pbnswJXtvcGFjaXR5OjB9dG97b3BhY2l0eToxfX0uc2V0dGluZ3MtbW9kYWx7d2lkdGg6bWluKDEwODBweCwxMDAlKTttYXgtd2lkdGg6MTA4MHB4O2hlaWdodDptaW4oODh2aCw5MjBweCk7bWF4LWhlaWdodDptaW4oODh2aCw5MjBweCk7bWluLWhlaWdodDptaW4oODh2aCw5MjBweCk7b3ZlcmZsb3c6aGlkZGVufS5zZXR0aW5ncy1tb2RhbC1oZWFkZXJ7YWxpZ24taXRlbXM6ZmxleC1zdGFydDtnYXA6MTZweDtwYWRkaW5nLWJvdHRvbToxNHB4fS5zZXR0aW5ncy1tb2RhbC10aXRsZS1ncm91cHtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDo0cHg7bWluLXdpZHRoOjB9LnNldHRpbmdzLW1vZGFsLXN1YnRpdGxle2ZvbnQtc2l6ZTouNzVyZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7bGluZS1oZWlnaHQ6MS41fS5zZXR0aW5ncy1tb2RhbC1ib2R5e3BhZGRpbmctdG9wOjE4cHg7ZmxleDoxIDEgYXV0bzttaW4taGVpZ2h0OjA7b3ZlcmZsb3c6aGlkZGVuO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW59LnNldHRpbmdzLWxheW91dHtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjI2MHB4IG1pbm1heCgwLDFmcik7Z2FwOjIycHg7bWluLWhlaWdodDowO2ZsZXg6MSAxIGF1dG87YWxpZ24taXRlbXM6c3RyZXRjaH0uc2V0dGluZ3MtbGF5b3V0Pip7bWluLWhlaWdodDowfS5zZXR0aW5ncy1zaWRlYmFye2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjE0cHg7bWluLXdpZHRoOjA7bWluLWhlaWdodDowO3BhZGRpbmctcmlnaHQ6NnB4O2JvcmRlci1yaWdodDoxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSk7b3ZlcmZsb3c6aGlkZGVufS5zZXR0aW5ncy1zaWRlYmFyLWhlYWRlciwuc2V0dGluZ3Mtc2lkZWJhci10aXRsZSwuc2V0dGluZ3Mtc2lkZWJhci1oaW50e2ZsZXgtc2hyaW5rOjB9LnNldHRpbmdzLXNpZGViYXItaGVhZGVye2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjRweDtwYWRkaW5nOjJweCA0cHggMH0uc2V0dGluZ3Mtc2lkZWJhci10aXRsZXtmb250LXNpemU6Ljg3NXJlbTtmb250LXdlaWdodDo3MDA7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtsZXR0ZXItc3BhY2luZzouMDFlbX0uc2V0dGluZ3Mtc2lkZWJhci1oaW50e2ZvbnQtc2l6ZTouNzVyZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7bGluZS1oZWlnaHQ6MS41fS5zZXR0aW5ncy10YWJze2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjhweDttYXJnaW46MDtwYWRkaW5nOjAgMTBweCAwIDA7bWluLWhlaWdodDowO292ZXJmbG93OmF1dG87cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoyO2JhY2tncm91bmQ6dHJhbnNwYXJlbnR9LnNldHRpbmdzLXRhYnM6Oi13ZWJraXQtc2Nyb2xsYmFye3dpZHRoOjZweDtoZWlnaHQ6NnB4fS5zZXR0aW5ncy10YWJzOjotd2Via2l0LXNjcm9sbGJhci10aHVtYntiYWNrZ3JvdW5kOiM5Njc2NTUzODtib3JkZXItcmFkaXVzOjk5OXB4fS5zZXR0aW5ncy10YWJzOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlcntiYWNrZ3JvdW5kOiM5Njc2NTU1Y30uc2V0dGluZ3MtdGFic3tzY3JvbGxiYXItd2lkdGg6dGhpbn0uc2V0dGluZ3MtdGFie3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6ZmxleC1zdGFydDtnYXA6NHB4O3dpZHRoOjEwMCU7cGFkZGluZzoxMnB4IDE0cHggMTJweCAxNnB4O2ZvbnQtc2l6ZTouODEyNXJlbTtmb250LXdlaWdodDo2MDA7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2JhY2tncm91bmQ6I2ZmZmZmZjhjO2JvcmRlcjoxcHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXJhZGl1czoxNnB4O2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246Y29sb3IgLjE1cyxib3JkZXItY29sb3IgLjE1cyxiYWNrZ3JvdW5kIC4xNXMsYm94LXNoYWRvdyAuMTVzLHRyYW5zZm9ybSAuMTVzO3RleHQtYWxpZ246bGVmdH0uc2V0dGluZ3MtdGFiOmJlZm9yZXtjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDt0b3A6MTBweDtib3R0b206MTBweDt3aWR0aDozcHg7Ym9yZGVyLXJhZGl1czo5OTlweDtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O3RyYW5zaXRpb246YmFja2dyb3VuZCAuMTVzIGVhc2V9LnNldHRpbmdzLXRhYjpob3Zlcntjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO2JhY2tncm91bmQ6I2M1NjUzZDE0O2JvcmRlci1jb2xvcjojYzU2NTNkMWY7dHJhbnNmb3JtOnRyYW5zbGF0ZSgycHgpfS5zZXR0aW5ncy10YWI6Zm9jdXMtdmlzaWJsZXtvdXRsaW5lOjJweCBzb2xpZCB2YXIoLS1hY2NlbnQpO291dGxpbmUtb2Zmc2V0OjJweH0uc2V0dGluZ3MtdGFiLmFjdGl2ZXtjb2xvcjp2YXIoLS1hY2NlbnQpO2JvcmRlci1jb2xvcjojZmZmZmZmYjM7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCNmZmZjZjdlYiwjZmZmNGU4YjgpO2JhY2tkcm9wLWZpbHRlcjpibHVyKDE0cHgpIHNhdHVyYXRlKDE4MCUpOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOmJsdXIoMTRweCkgc2F0dXJhdGUoMTgwJSk7Ym94LXNoYWRvdzppbnNldCAwIDAgMCAxcHggI2M1NjUzZDM4LGluc2V0IDAgMXB4ICNmZmZmZmZlNixpbnNldCAwIC0xcHggI2M1NjUzZDBmLDAgNHB4IDE0cHggLTRweCAjYzU2NTNkMzgsMCAxcHggM3B4ICM3ZDViMzkwYX0uc2V0dGluZ3MtdGFiLmFjdGl2ZTpiZWZvcmV7YmFja2dyb3VuZDp2YXIoLS1hY2NlbnQpfS5zZXR0aW5ncy10YWItbWFpbntmb250LXNpemU6Ljg3NXJlbTtmb250LXdlaWdodDo3MDA7Y29sb3I6aW5oZXJpdDtsaW5lLWhlaWdodDoxLjN9LnNldHRpbmdzLXRhYi1tZXRhe2ZvbnQtc2l6ZTouNzVyZW07Zm9udC13ZWlnaHQ6NTAwO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2xpbmUtaGVpZ2h0OjEuNDV9LnNldHRpbmdzLXRhYi5hY3RpdmUgLnNldHRpbmdzLXRhYi1tZXRhe2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KX0uc2V0dGluZ3MtY29udGVudHttaW4td2lkdGg6MDttaW4taGVpZ2h0OjA7aGVpZ2h0OjEwMCU7b3ZlcmZsb3c6YXV0bztwYWRkaW5nLXJpZ2h0OjRweH0uc2V0dGluZ3MtcGFuZWx7ZGlzcGxheTpub25lO21pbi1oZWlnaHQ6MTAwJTtwYWRkaW5nOjJweCAycHggOHB4fS5zZXR0aW5ncy1jb250ZW50Ojotd2Via2l0LXNjcm9sbGJhcnt3aWR0aDo4cHh9LnNldHRpbmdzLWNvbnRlbnQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1ie2JhY2tncm91bmQ6Izk2NzY1NTNkO2JvcmRlci1yYWRpdXM6OTk5cHh9LnNldHRpbmdzLWNvbnRlbnQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVye2JhY2tncm91bmQ6Izk2NzY1NTYxfS5zZXR0aW5ncy1jb250ZW50e3Njcm9sbGJhci13aWR0aDp0aGlufS5zZXR0aW5ncy1wYW5lbC5hY3RpdmV7ZGlzcGxheTpibG9jazthbmltYXRpb246ZmFkZS1pbiAuMThzIGVhc2V9LnNldHRpbmdzLXBhbmVsLWhlYWRlcntkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDo2cHg7bWFyZ2luOjAgMCAxNHB4O3BhZGRpbmctYm90dG9tOjEycHg7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgcmdiYSgxMjUsOTEsNTcsLjEyKX0uc2V0dGluZ3MtcGFuZWwtdGl0bGV7Zm9udC1zaXplOjEuMDYyNXJlbTtmb250LXdlaWdodDo3MDA7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtsaW5lLWhlaWdodDoxLjI7bGV0dGVyLXNwYWNpbmc6LS4wMWVtfS5zZXR0aW5ncy1wYW5lbC1kZXNje2ZvbnQtc2l6ZTouODEyNXJlbTtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7bGluZS1oZWlnaHQ6MS41NX0uc2V0dGluZ3MtcGFuZWw+LnNldHRpbmdzLXNlY3Rpb24tdGl0bGV7bWFyZ2luLXRvcDoxOHB4fS5zZXR0aW5ncy1wYW5lbD4uc2V0dGluZ3Mtc2VjdGlvbi10aXRsZTpmaXJzdC1vZi10eXBle21hcmdpbi10b3A6MH0uc2V0dGluZ3MtcGFuZWw+LmZpZWxkLXJvdywuc2V0dGluZ3MtcGFuZWw+LmZpZWxkLC5zZXR0aW5ncy1wYW5lbD4uZmllbGQtaGludHttYXgtd2lkdGg6NzYwcHh9LnNldHRpbmdzLXBhbmVsPi5zd2l0Y2gtY2FyZC1saXN0LC5zZXR0aW5ncy1wYW5lbD4uc2V0dGluZ3MtY2FyZCwuc2V0dGluZ3MtcGFuZWw+LnNldHRpbmdzLXVwZGF0ZS1zZWN0aW9uLC5zZXR0aW5ncy1wYW5lbD4uc2V0dGluZ3Mtbm90aWZpY2F0aW9uLXNlY3Rpb24sLnNldHRpbmdzLXBhbmVsPiNwcmVzZXRzLWxpc3R7bWF4LXdpZHRoOjg2MHB4fS5zZXR0aW5ncy1wYW5lbD4uc2V0dGluZ3MtY2FyZCsuc2V0dGluZ3MtY2FyZCwuc2V0dGluZ3MtcGFuZWw+LnNldHRpbmdzLXVwZGF0ZS1zZWN0aW9uKy5zZXR0aW5ncy11cGRhdGUtc2VjdGlvbiwuc2V0dGluZ3MtcGFuZWw+LnNldHRpbmdzLW5vdGlmaWNhdGlvbi1zZWN0aW9uKy5zZXR0aW5ncy1ub3RpZmljYXRpb24tc2VjdGlvbnttYXJnaW4tdG9wOjE0cHh9LnNldHRpbmdzLXBhbmVsW2hpZGRlbl17ZGlzcGxheTpub25lIWltcG9ydGFudH1AbWVkaWEobWF4LXdpZHRoOjkwMHB4KXsuc2V0dGluZ3MtbGF5b3V0e2dyaWQtdGVtcGxhdGUtY29sdW1uczoyMjBweCBtaW5tYXgoMCwxZnIpO2dhcDoxOHB4fX1AbWVkaWEobWF4LXdpZHRoOjc2OHB4KXsuc2V0dGluZ3MtbW9kYWx7d2lkdGg6bWluKDEwMCUsNzIwcHgpO2hlaWdodDptaW4oOTJ2aCw5MjBweCk7bWF4LWhlaWdodDptaW4oOTJ2aCw5MjBweCk7bWluLWhlaWdodDptaW4oOTJ2aCw5MjBweCl9LnNldHRpbmdzLW1vZGFsLWJvZHl7b3ZlcmZsb3cteTphdXRvfS5zZXR0aW5ncy1sYXlvdXR7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOm1pbm1heCgwLDFmcik7Z2FwOjE0cHg7ZmxleDowIDAgYXV0b30uc2V0dGluZ3Mtc2lkZWJhcntwYWRkaW5nLXJpZ2h0OjA7Ym9yZGVyLXJpZ2h0Om5vbmV9LnNldHRpbmdzLXRhYnN7ZmxleC1kaXJlY3Rpb246cm93O2ZsZXgtd3JhcDpub3dyYXA7b3ZlcmZsb3cteDphdXRvO3Njcm9sbGJhci13aWR0aDpub25lO3BhZGRpbmctcmlnaHQ6MDtwYWRkaW5nLWJvdHRvbTo0cHh9LnNldHRpbmdzLXRhYnM6Oi13ZWJraXQtc2Nyb2xsYmFye2Rpc3BsYXk6bm9uZX0uc2V0dGluZ3MtdGFie2ZsZXg6MCAwIDIwMHB4O21pbi1oZWlnaHQ6NzJweH0uc2V0dGluZ3MtdGFiOmhvdmVye3RyYW5zZm9ybTpub25lfS5zZXR0aW5ncy1jb250ZW50e292ZXJmbG93OnZpc2libGU7cGFkZGluZy1yaWdodDowfX1AbWVkaWEobWF4LXdpZHRoOjQ4MHB4KXsuc2V0dGluZ3MtdGFie2ZsZXgtYmFzaXM6MTgwcHg7cGFkZGluZzoxMHB4IDEycHggMTBweCAxNHB4fS5zZXR0aW5ncy10YWItbWFpbntmb250LXNpemU6LjgxMjVyZW19LnNldHRpbmdzLXRhYi1tZXRhe2ZvbnQtc2l6ZTouNjg3NXJlbX19LnNldHRpbmdzLWFib3V0LWluZm97ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6MDttYXJnaW4tYm90dG9tOjE4cHg7YmFja2dyb3VuZDojZmZmZmZmODA7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlKTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1sZyk7cGFkZGluZzo0cHggMTZweDtib3gtc2hhZG93OnZhcigtLXNoYWRvdy14cyl9LnNldHRpbmdzLWFib3V0LXJvd3tkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxNHB4O2ZvbnQtc2l6ZTouODEyNXJlbTtwYWRkaW5nOjEycHggMDtib3JkZXItYm90dG9tOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlKX0uc2V0dGluZ3MtYWJvdXQtcm93Omxhc3QtY2hpbGR7Ym9yZGVyLWJvdHRvbTpub25lfS5zZXR0aW5ncy1sYWJlbHtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7Zm9udC13ZWlnaHQ6NjAwO2ZsZXg6MCAwIDExMnB4fS5zZXR0aW5ncy12YWx1ZXtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7Zm9udC1zaXplOi44cmVtO21pbi13aWR0aDowO3RleHQtYWxpZ246cmlnaHQ7d29yZC1icmVhazpicmVhay13b3JkfS5zZXR0aW5ncy12YWx1ZSBhe2NvbG9yOnZhcigtLWFjY2VudCk7dGV4dC1kZWNvcmF0aW9uOm5vbmV9LnNldHRpbmdzLXZhbHVlIGE6aG92ZXJ7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX0uc2V0dGluZ3MtdXBkYXRlLXNlY3Rpb24sLnNldHRpbmdzLW5vdGlmaWNhdGlvbi1zZWN0aW9uLC5zZXR0aW5ncy1jYXJkLC5zd2l0Y2gtY2FyZCwucHJlc2V0LWl0ZW17Ym94LXNoYWRvdzp2YXIoLS1zaGFkb3cteHMpfS5zZXR0aW5ncy11cGRhdGUtc2VjdGlvbiwuc2V0dGluZ3Mtbm90aWZpY2F0aW9uLXNlY3Rpb257bWFyZ2luLXRvcDoxNHB4O3BhZGRpbmc6MTZweDtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLWxnKTtiYWNrZ3JvdW5kOiNmZmZmZmY3YX0uc2V0dGluZ3Mtc2VjdGlvbi10aXRsZXtmb250LXNpemU6Ljg3NXJlbTtmb250LXdlaWdodDo3MDA7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTttYXJnaW46MCAwIDEycHg7bGV0dGVyLXNwYWNpbmc6LjAxZW19LnNldHRpbmdzLXVwZGF0ZS1hY3Rpb25zLC5zZXR0aW5ncy1hY3Rpb25ze2Rpc3BsYXk6ZmxleDtnYXA6MTBweDtmbGV4LXdyYXA6d3JhcDttYXJnaW4tdG9wOjEycHh9LnNldHRpbmdzLWFjdGlvbnMtc3RpY2t5e3Bvc2l0aW9uOnN0aWNreTtib3R0b206MDtwYWRkaW5nLXRvcDoxNnB4O2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZywjZmZmYmY1MDAsI2ZmZmJmNWZhIDI4cHgpO3otaW5kZXg6MTtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9LnNldHRpbmdzLXN0YXR1cy1tZXNzYWdle21hcmdpbi10b3A6MTBweH0uc2V0dGluZ3MtaW5saW5lLWhpbnR7bWFyZ2luLXRvcDotNHB4O21hcmdpbi1ib3R0b206MTJweH0uc2V0dGluZ3MtY29ubmVjdC11cmwtYm94e2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEwcHg7YmFja2dyb3VuZDojZmZmZmZmYjg7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlKTtib3JkZXItcmFkaXVzOjEycHg7cGFkZGluZzoxMHB4IDEycHg7bWFyZ2luLXRvcDo2cHh9LnNldHRpbmdzLWNvbm5lY3QtdXJsLXRleHR7ZmxleDoxO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubywgbW9ub3NwYWNlKTtmb250LXNpemU6MTNweDtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO3dvcmQtYnJlYWs6YnJlYWstYWxsO3VzZXItc2VsZWN0OmFsbDstd2Via2l0LXVzZXItc2VsZWN0OmFsbH0uc2V0dGluZ3MtY29ubmVjdC1xci1ib3h7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEwcHg7bWFyZ2luLXRvcDoxNHB4fS5zZXR0aW5ncy1jb25uZWN0LXFyLXdyYXB7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MjAwcHg7aGVpZ2h0OjIwMHB4O3BhZGRpbmc6MTBweDtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlKTtib3JkZXItcmFkaXVzOjE2cHg7Ym94LXNoYWRvdzowIDRweCAxMnB4ICM3ZDViMzkxNDtjdXJzb3I6cG9pbnRlcjt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMTVzIGVhc2UsYm94LXNoYWRvdyAuMTVzIGVhc2U7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS5zZXR0aW5ncy1jb25uZWN0LXFyLXdyYXA6aG92ZXJ7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTFweCk7Ym94LXNoYWRvdzowIDZweCAxNnB4ICM3ZDViMzkxZn0uc2V0dGluZ3MtY29ubmVjdC1xci13cmFwIGNhbnZhc3tkaXNwbGF5OmJsb2NrO21heC13aWR0aDoxMDAlO21heC1oZWlnaHQ6MTAwJX0uc2V0dGluZ3MtY29ubmVjdC1xci1lbXB0eXtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtmb250LXNpemU6MTJweDtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7cG9pbnRlci1ldmVudHM6bm9uZX0uc2V0dGluZ3MtY29ubmVjdC1xci1oaW50e21hcmdpbjowO2ZvbnQtc2l6ZToxMnB4O2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTt0ZXh0LWFsaWduOmNlbnRlcjttYXgtd2lkdGg6MjgwcHh9LmNvbm5lY3QtcXItbW9kYWwtb3ZlcmxheXtwb3NpdGlvbjpmaXhlZDtpbnNldDowO2JhY2tncm91bmQ6IzE0MGUwODhjO2JhY2tkcm9wLWZpbHRlcjpibHVyKDZweCk7LXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6Ymx1cig2cHgpO3otaW5kZXg6OTk5OTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7cGFkZGluZzoyNHB4fS5jb25uZWN0LXFyLW1vZGFsLWNhcmR7YmFja2dyb3VuZDojZmZmO2JvcmRlci1yYWRpdXM6MjBweDtwYWRkaW5nOjI0cHg7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjE0cHg7Ym94LXNoYWRvdzowIDIwcHggNjBweCAjMDAwMDAwNTl9LmNvbm5lY3QtcXItbW9kYWwtY2FyZCBjYW52YXN7ZGlzcGxheTpibG9jaztib3JkZXItcmFkaXVzOjhweH0uY29ubmVjdC1xci1tb2RhbC1oaW50e21hcmdpbjowO2ZvbnQtc2l6ZToxM3B4O2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTt0ZXh0LWFsaWduOmNlbnRlcn0uZmllbGQtcm93e2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KDIsbWlubWF4KDAsMWZyKSk7Z2FwOjE0cHg7bWFyZ2luLWJvdHRvbToxNHB4fS5maWVsZC1yb3cgLmZpZWxke21hcmdpbi1ib3R0b206MH0uc2V0dGluZ3MtY2FyZHtiYWNrZ3JvdW5kOiNmZmZmZmY4NTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLWxnKTtwYWRkaW5nOjE4cHg7bWFyZ2luLWJvdHRvbToxNHB4fS5zZXR0aW5ncy1jYXJkIC5maWVsZDpsYXN0LW9mLXR5cGV7bWFyZ2luLWJvdHRvbToxMnB4fS5zZXR0aW5ncy1jYXJkIC5zZXR0aW5ncy1zZWN0aW9uLXRpdGxle21hcmdpbi10b3A6MH0uc2V0dGluZ3MtY2FyZCAuZmllbGQtaW5wdXR7YmFja2dyb3VuZDojZmZmZmZmYjh9LnNldHRpbmdzLWNhcmQgLmJ0bi1ibG9ja3ttYXJnaW4tYm90dG9tOjB9LnNldHRpbmdzLXBhbmVsIC5idG4tYmxvY2t7bWluLWhlaWdodDo0NHB4fS5zZXR0aW5ncy1wYW5lbCAuaGludCwuc2V0dGluZ3MtcGFuZWwgLmZpZWxkLWhpbnR7bGluZS1oZWlnaHQ6MS41NX0uc2V0dGluZ3MtcGFuZWwgaW5wdXRbdHlwZT1yYW5nZV17d2lkdGg6MTAwJX0uc2V0dGluZ3MtcGFuZWwgY29kZXttYXgtd2lkdGg6MTAwJX0uc2V0dGluZ3MtcGFuZWwgLmhpZGRlbisuaGludHttYXJnaW4tdG9wOjB9LnNldHRpbmdzLXBhbmVsIC5maWVsZC1pbnB1dCwuc2V0dGluZ3MtcGFuZWwgLmZpZWxkLXNlbGVjdHt3aWR0aDoxMDAlfS5zZXR0aW5ncy1wYW5lbCAuYnRuLXNte21pbi1oZWlnaHQ6MzRweH0uc2V0dGluZ3MtcGFuZWwgLmVycm9yLW1lc3NhZ2UsLnNldHRpbmdzLXBhbmVsIC5oaW50LmhpZGRlbiwuc2V0dGluZ3MtcGFuZWwgLmVycm9yLW1lc3NhZ2UuaGlkZGVue21hcmdpbi10b3A6MTBweH0uc2V0dGluZ3MtcGFuZWwgI3ByZXNldHMtbGlzdDplbXB0eTpiZWZvcmV7Y29udGVudDoiXDUyYTBcOGY3ZFw0ZTJkLi4uIjtkaXNwbGF5OmJsb2NrO3BhZGRpbmc6MThweDtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTt0ZXh0LWFsaWduOmNlbnRlcjtmb250LXNpemU6LjgxMjVyZW19QG1lZGlhKG1heC13aWR0aDo3NjhweCl7LnNldHRpbmdzLWFib3V0LXJvd3thbGlnbi1pdGVtczpmbGV4LXN0YXJ0fS5zZXR0aW5ncy11cGRhdGUtYWN0aW9ucywuc2V0dGluZ3MtYWN0aW9uc3tmbGV4LWRpcmVjdGlvbjpjb2x1bW59LnNldHRpbmdzLXVwZGF0ZS1hY3Rpb25zIC5idG4sLnNldHRpbmdzLWFjdGlvbnMgLmJ0bnt3aWR0aDoxMDAlfS5zZXR0aW5ncy1jb25uZWN0LXVybC1ib3h7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOnN0cmV0Y2h9fUBtZWRpYShtYXgtd2lkdGg6NjQwcHgpey5zZXR0aW5ncy1tb2RhbC1oZWFkZXJ7Z2FwOjEwcHh9LnNldHRpbmdzLW1vZGFsLXN1YnRpdGxle2ZvbnQtc2l6ZTouNjg3NXJlbX0uc2V0dGluZ3MtcGFuZWx7cGFkZGluZy1sZWZ0OjA7cGFkZGluZy1yaWdodDowfS5zZXR0aW5ncy1hYm91dC1pbmZvLC5zZXR0aW5ncy11cGRhdGUtc2VjdGlvbiwuc2V0dGluZ3Mtbm90aWZpY2F0aW9uLXNlY3Rpb24sLnNldHRpbmdzLWNhcmR7cGFkZGluZy1sZWZ0OjE0cHg7cGFkZGluZy1yaWdodDoxNHB4fS5zZXR0aW5ncy1hYm91dC1yb3d7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOnN0cmV0Y2g7Z2FwOjRweH0uc2V0dGluZ3MtbGFiZWwsLnNldHRpbmdzLXZhbHVle2ZsZXg6bm9uZTt0ZXh0LWFsaWduOmxlZnR9LnNldHRpbmdzLXBhbmVsIC5idG4taWNvbnttaW4td2lkdGg6MzRweDttaW4taGVpZ2h0OjM0cHh9fUBtZWRpYShtaW4td2lkdGg6NzY5cHgpey5zZXR0aW5ncy1wYW5lbCAuYnRuLWJsb2Nre3dpZHRoOmF1dG87bWluLXdpZHRoOjE4MHB4fX1Ac3VwcG9ydHMgbm90IChwb3NpdGlvbjogc3RpY2t5KXsuc2V0dGluZ3MtdGFicywuc2V0dGluZ3MtYWN0aW9ucy1zdGlja3l7cG9zaXRpb246c3RhdGljfX0uZW1wdHktc3RhdGUtY29tcGFjdHtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NnB4O3BhZGRpbmc6MzJweCAxNnB4O2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2ZvbnQtc2l6ZTouODEyNXJlbX0uZW1wdHktc3RhdGUtY29tcGFjdCAuZW1wdHktaWNvbntmb250LXNpemU6MS41cmVtO29wYWNpdHk6LjV9LnN3aXRjaC1jYXJkLWxpc3R7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6MTBweH0uc3dpdGNoLWNhcmR7ZGlzcGxheTpibG9jaztiYWNrZ3JvdW5kOiNmZmZmZmY4MDtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlcik7Ym9yZGVyLXJhZGl1czoxNHB4O3BhZGRpbmc6MTRweCAxNnB4O2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246Ym9yZGVyLWNvbG9yIC4ycyxiYWNrZ3JvdW5kIC4ycyx0cmFuc2Zvcm0gLjJzO3VzZXItc2VsZWN0Om5vbmV9LnN3aXRjaC1jYXJkOmhvdmVye2JvcmRlci1jb2xvcjp2YXIoLS10ZXh0LW11dGVkKTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMXB4KX0uc3dpdGNoLWNhcmQtaGVhZGVye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEwcHh9LnN3aXRjaC1jYXJkLXRpdGxle2ZsZXg6MTtmb250LXNpemU6LjgxMjVyZW07Zm9udC13ZWlnaHQ6NjAwO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSl9LnN3aXRjaC1jYXJkLWRlc2N7Zm9udC1zaXplOi43NXJlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTttYXJnaW4tdG9wOjA7bWF4LWhlaWdodDowO292ZXJmbG93OmhpZGRlbjtvcGFjaXR5OjA7dHJhbnNpdGlvbjptYXgtaGVpZ2h0IC4yNXMgZWFzZSxvcGFjaXR5IC4ycyBlYXNlLG1hcmdpbi10b3AgLjI1cyBlYXNlfS5zd2l0Y2gtY2FyZDpoYXMoLnN3aXRjaC10b2dnbGU6Y2hlY2tlZCkgLnN3aXRjaC1jYXJkLWRlc2N7bWF4LWhlaWdodDo0MHB4O29wYWNpdHk6MTttYXJnaW4tdG9wOjhweH0uc3dpdGNoLWNhcmQ6aGFzKC5zd2l0Y2gtdG9nZ2xlOmNoZWNrZWQpe2JvcmRlci1jb2xvcjp2YXIoLS1hY2NlbnQpO2JhY2tncm91bmQ6Y29sb3ItbWl4KGluIHNyZ2IsdmFyKC0tYWNjZW50KSA2JSx2YXIoLS1iZy1zZWNvbmRhcnkpKX0uc3dpdGNoLXRvZ2dsZXtwb3NpdGlvbjphYnNvbHV0ZTtvcGFjaXR5OjA7d2lkdGg6MDtoZWlnaHQ6MDtwb2ludGVyLWV2ZW50czpub25lfS5zd2l0Y2gtc2xpZGVye3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjQ0cHg7aGVpZ2h0OjI2cHg7bWluLXdpZHRoOjQ0cHg7Ym9yZGVyLXJhZGl1czoxM3B4O2JhY2tncm91bmQ6IzdkNWIzOTM4O2JveC1zaGFkb3c6aW5zZXQgMCAxcHggMXB4ICM3ZDViMzkyZTt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjIycyBlYXNlLGJveC1zaGFkb3cgLjIycyBlYXNlO2N1cnNvcjpwb2ludGVyfS5zd2l0Y2gtc2xpZGVyOmFmdGVye2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjJweDtsZWZ0OjJweDt3aWR0aDoyMnB4O2hlaWdodDoyMnB4O2JhY2tncm91bmQ6I2ZmZjtib3JkZXItcmFkaXVzOjUwJTtib3gtc2hhZG93OjAgMnB4IDRweCAjMTQwZTA4MmUsMCAwIDAgLjVweCAjN2Q1YjM5MGY7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjI0cyBjdWJpYy1iZXppZXIoLjM0LDEuNCwuNjQsMSl9LnN3aXRjaC10b2dnbGU6Y2hlY2tlZCsuc3dpdGNoLXNsaWRlcntiYWNrZ3JvdW5kOnZhcigtLWFjY2VudCk7Ym94LXNoYWRvdzppbnNldCAwIDFweCAxcHggIzAwMDAwMDFhfS5zd2l0Y2gtdG9nZ2xlOmNoZWNrZWQrLnN3aXRjaC1zbGlkZXI6YWZ0ZXJ7dHJhbnNmb3JtOnRyYW5zbGF0ZSgxOHB4KX0uc3dpdGNoLXRvZ2dsZTpmb2N1cy12aXNpYmxlKy5zd2l0Y2gtc2xpZGVye291dGxpbmU6MnB4IHNvbGlkIHZhcigtLWFjY2VudCk7b3V0bGluZS1vZmZzZXQ6MnB4fS5wcmVzZXQtaXRlbXtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMnB4O3BhZGRpbmc6MTJweCAxNHB4O2JhY2tncm91bmQ6I2ZmZmZmZjg1O2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSk7Ym9yZGVyLXJhZGl1czoxMnB4O21hcmdpbi1ib3R0b206MTBweDtmb250LXNpemU6LjgxMjVyZW19LnByZXNldC1sYWJlbHtmb250LXdlaWdodDo2MDA7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KX0ucHJlc2V0LWRldGFpbHttaW4td2lkdGg6MDt0ZXh0LWFsaWduOnJpZ2h0O2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2ZvbnQtc2l6ZTouNzVyZW07d29yZC1icmVhazpicmVhay13b3JkfUBtZWRpYShtYXgtd2lkdGg6NjQwcHgpey5wcmVzZXQtaXRlbXtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6ZmxleC1zdGFydH0ucHJlc2V0LWRldGFpbHt0ZXh0LWFsaWduOmxlZnR9fS5maWxlLXByZXZpZXctbW9kYWx7d2lkdGg6bWluKDkwdncsbWF4KDY0MHB4LGNhbGMoMTAwdncgLSAzODBweCkpKTttYXgtd2lkdGg6MTAwMHB4O2hlaWdodDo4MHZoO21heC1oZWlnaHQ6ODV2aDtiYWNrZ3JvdW5kOnZhcigtLWJnLXByaW1hcnkpO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLWxnKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlcik7Ym94LXNoYWRvdzowIDIwcHggNjBweCAjMDAwMDAwNGQ7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtvdmVyZmxvdzpoaWRkZW47YW5pbWF0aW9uOm1vZGFsLXNsaWRlLWluIC4ycyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKX1Aa2V5ZnJhbWVzIG1vZGFsLXNsaWRlLWluezAle29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMjBweCkgc2NhbGUoLjk4KX10b3tvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCkgc2NhbGUoMSl9fUBtZWRpYShtYXgtd2lkdGg6NzY4cHgpey5maWxlLXByZXZpZXctb3ZlcmxheXtwYWRkaW5nOjA7YWxpZ24taXRlbXM6c3RyZXRjaDtqdXN0aWZ5LWNvbnRlbnQ6c3RyZXRjaDt0b3A6dmFyKC0tYXBwLXZpZXdwb3J0LXRvcCwgMHB4KTtoZWlnaHQ6dmFyKC0tYXBwLXZpZXdwb3J0LWhlaWdodCwgMTAwZHZoKX0uZmlsZS1wcmV2aWV3LW1vZGFse3dpZHRoOjEwMHZ3O21heC13aWR0aDoxMDB2dztoZWlnaHQ6dmFyKC0tYXBwLXZpZXdwb3J0LWhlaWdodCwgMTAwZHZoKTttYXgtaGVpZ2h0OnZhcigtLWFwcC12aWV3cG9ydC1oZWlnaHQsIDEwMGR2aCk7Ym9yZGVyLXJhZGl1czowO2JvcmRlcjpub25lO2JveC1zaGFkb3c6bm9uZTthbmltYXRpb246ZmFkZS1pbiAuMThzIGVhc2V9LmZpbGUtcHJldmlldy1oZWFkZXJ7cGFkZGluZzoxMHB4IDEycHg7Z2FwOjhweDtwYWRkaW5nLXRvcDptYXgoMTBweCxlbnYoc2FmZS1hcmVhLWluc2V0LXRvcCkpO3BhZGRpbmctbGVmdDptYXgoMTJweCxlbnYoc2FmZS1hcmVhLWluc2V0LWxlZnQpKTtwYWRkaW5nLXJpZ2h0Om1heCgxMnB4LGVudihzYWZlLWFyZWEtaW5zZXQtcmlnaHQpKX0uZmlsZS1wcmV2aWV3LXRpdGxle2ZvbnQtc2l6ZTouODc1cmVtO2dhcDo2cHg7bWluLXdpZHRoOjA7ZmxleDoxfS5maWxlLXByZXZpZXctZmlsZW5hbWV7bWF4LXdpZHRoOjEwMCV9LmZpbGUtcHJldmlldy1wYXRoe2Rpc3BsYXk6bm9uZX0uZmlsZS1wcmV2aWV3LXRvb2xiYXJ7Z2FwOjRweDtmbGV4LXNocmluazowfS5maWxlLXByZXZpZXctdG9vbGJhci1idG57cGFkZGluZzowIDZweDtmb250LXNpemU6Ljc1cmVtfS5maWxlLXByZXZpZXctY2xvc2V7d2lkdGg6MzRweDtoZWlnaHQ6MzRweDtwYWRkaW5nOjB9LmZpbGUtcHJldmlldy1pY29ue2ZvbnQtc2l6ZToxLjEyNXJlbX0uZmlsZS1wcmV2aWV3LWJvZHl7cGFkZGluZy1ib3R0b206ZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20pfX0uZmlsZS1wcmV2aWV3LWhlYWRlcntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMnB4O3BhZGRpbmc6MTJweCAxOHB4O2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpO2JhY2tncm91bmQ6dmFyKC0tYmctc2Vjb25kYXJ5KTtmbGV4LXNocmluazowfS5maWxlLXByZXZpZXctdGl0bGV7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTBweDtmb250LXNpemU6LjkzNzVyZW07Zm9udC13ZWlnaHQ6NjAwO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7ZmxleDoxO21pbi13aWR0aDowfS5maWxlLXByZXZpZXctaWNvbntmb250LXNpemU6MS4yNXJlbTtsaW5lLWhlaWdodDoxO2ZsZXgtc2hyaW5rOjB9LmZpbGUtcHJldmlldy1uYW1lLWJsb2Nre2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjJweDttaW4td2lkdGg6MDtmbGV4OjF9LmZpbGUtcHJldmlldy1uYW1lLXJvd3tkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6YmFzZWxpbmU7Z2FwOjhweDttaW4td2lkdGg6MH0uZmlsZS1wcmV2aWV3LWZpbGVuYW1le292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcDtmb250LXNpemU6LjkzNzVyZW07Zm9udC13ZWlnaHQ6NjAwO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7bGV0dGVyLXNwYWNpbmc6LjAxZW07bWluLXdpZHRoOjB9LmZpbGUtcHJldmlldy1wYXRoe2ZvbnQtc2l6ZTouN3JlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO292ZXJmbG93OmhpZGRlbjt3aGl0ZS1zcGFjZTpub3dyYXA7bWluLXdpZHRoOjA7b3BhY2l0eTouOH0uZmlsZS1wcmV2aWV3LWRpcnR5e2ZvbnQtc2l6ZTouNjg3NXJlbTtjb2xvcjojYzY2YTFhO2ZvbnQtd2VpZ2h0OjYwMDtsZXR0ZXItc3BhY2luZzouMDJlbTtmbGV4LXNocmluazowO3BhZGRpbmc6MXB4IDhweDtiYWNrZ3JvdW5kOiNjNjZhMWExYTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMTk4LDEwNiwyNiwuMjUpO2JvcmRlci1yYWRpdXM6OTk5cHg7YW5pbWF0aW9uOmRpcnR5LXB1bHNlIDEuNnMgZWFzZS1pbi1vdXQgaW5maW5pdGV9QGtleWZyYW1lcyBkaXJ0eS1wdWxzZXswJSx0b3tvcGFjaXR5Oi42NX01MCV7b3BhY2l0eToxfX0uZmlsZS1wcmV2aWV3LWxhbmd7Zm9udC1zaXplOi42ODc1cmVtO2ZvbnQtd2VpZ2h0OjYwMDtwYWRkaW5nOjJweCA4cHg7Ym9yZGVyLXJhZGl1czo5OTlweDtiYWNrZ3JvdW5kOnZhcigtLWFjY2VudC1tdXRlZCk7Y29sb3I6dmFyKC0tYWNjZW50KTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjEyLDE1Miw5OSwuMyk7bGV0dGVyLXNwYWNpbmc6LjA0ZW07dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2ZsZXgtc2hyaW5rOjA7YWxpZ24tc2VsZjpjZW50ZXJ9LmZpbGUtcHJldmlldy1jbG9zZXtiYWNrZ3JvdW5kOm5vbmU7Ym9yZGVyOjFweCBzb2xpZCB0cmFuc3BhcmVudDtjdXJzb3I6cG9pbnRlcjtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTt3aWR0aDozMnB4O2hlaWdodDozMnB4O3BhZGRpbmc6MDtib3JkZXItcmFkaXVzOjhweDtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMTVzLGNvbG9yIC4xNXMsYm9yZGVyLWNvbG9yIC4xNXMsdHJhbnNmb3JtIC4xNXM7bGluZS1oZWlnaHQ6MTtmbGV4LXNocmluazowfS5maWxlLXByZXZpZXctY2xvc2U6aG92ZXJ7YmFja2dyb3VuZDojZGM0NjQ2MTQ7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtib3JkZXItY29sb3I6I2RjNDY0NjQwfS5maWxlLXByZXZpZXctY2xvc2U6YWN0aXZle3RyYW5zZm9ybTpzY2FsZSguOTQpfS5maWxlLXByZXZpZXctYm9keXtmbGV4OjE7b3ZlcmZsb3c6YXV0bzttaW4taGVpZ2h0OjA7c2Nyb2xsYmFyLXdpZHRoOnRoaW47c2Nyb2xsYmFyLWNvbG9yOnZhcigtLWJvcmRlci1kZWZhdWx0KSB0cmFuc3BhcmVudH0uZmlsZS1wcmV2aWV3LWJvZHk6Oi13ZWJraXQtc2Nyb2xsYmFye3dpZHRoOjhweDtoZWlnaHQ6OHB4fS5maWxlLXByZXZpZXctYm9keTo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2t7YmFja2dyb3VuZDp0cmFuc3BhcmVudH0uZmlsZS1wcmV2aWV3LWJvZHk6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1ie2JhY2tncm91bmQ6dmFyKC0tYm9yZGVyLWRlZmF1bHQpO2JvcmRlci1yYWRpdXM6NHB4fS5maWxlLXByZXZpZXctYm9keTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS10ZXh0LW11dGVkKX0uZmlsZS1wcmV2aWV3LWJvZHk6Oi13ZWJraXQtc2Nyb2xsYmFyLWNvcm5lcntiYWNrZ3JvdW5kOnRyYW5zcGFyZW50fS5jb2RlLXByZXZpZXctd3JhcHBlcntkaXNwbGF5OmZsZXg7aGVpZ2h0OjEwMCU7b3ZlcmZsb3cteDphdXRvO292ZXJmbG93LXk6aGlkZGVuO3Njcm9sbGJhci13aWR0aDp0aGluO3Njcm9sbGJhci1jb2xvcjp2YXIoLS1ib3JkZXItZGVmYXVsdCkgdHJhbnNwYXJlbnR9LmNvZGUtcHJldmlldy13cmFwcGVyOjotd2Via2l0LXNjcm9sbGJhcnt3aWR0aDo4cHg7aGVpZ2h0OjhweH0uY29kZS1wcmV2aWV3LXdyYXBwZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNre2JhY2tncm91bmQ6dHJhbnNwYXJlbnR9LmNvZGUtcHJldmlldy13cmFwcGVyOjotd2Via2l0LXNjcm9sbGJhci10aHVtYntiYWNrZ3JvdW5kOnZhcigtLWJvcmRlci1kZWZhdWx0KTtib3JkZXItcmFkaXVzOjRweH0uY29kZS1wcmV2aWV3LXdyYXBwZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVye2JhY2tncm91bmQ6dmFyKC0tdGV4dC1tdXRlZCl9LmNvZGUtcHJldmlldy1saW5lc3twYWRkaW5nOjE2cHggMTJweCAxNnB4IDE2cHg7dGV4dC1hbGlnbjpyaWdodDt1c2VyLXNlbGVjdDpub25lO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7Zm9udC1zaXplOnZhcigtLWZvbnQtc2l6ZS1zbSk7bGluZS1oZWlnaHQ6dmFyKC0tbGluZS1oZWlnaHQpO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2JhY2tncm91bmQ6dmFyKC0tYmctc2Vjb25kYXJ5KTtib3JkZXItcmlnaHQ6MXB4IHNvbGlkIHZhcigtLWJvcmRlcik7d2lkdGg6NTJweDttYXgtd2lkdGg6NTJweDtmbGV4LXNocmluazowO292ZXJmbG93OmhpZGRlbn0uY29kZS1wcmV2aWV3LWNvbnRlbnR7ZmxleDoxO21pbi13aWR0aDowO3dpZHRoOjEwMCU7cGFkZGluZzoxNnB4IDIwcHg7b3ZlcmZsb3cteDphdXRvO292ZXJmbG93LXk6YXV0b30uY29kZS1wcmV2aWV3LWNvbnRlbnQgcHJle21hcmdpbjowO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7Zm9udC1zaXplOnZhcigtLWZvbnQtc2l6ZS1zbSk7bGluZS1oZWlnaHQ6dmFyKC0tbGluZS1oZWlnaHQpO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7d2hpdGUtc3BhY2U6cHJlO3dvcmQtYnJlYWs6bm9ybWFsO292ZXJmbG93LXdyYXA6bm9ybWFsfS5zeW50YXgta2V5d29yZHtjb2xvcjojYzY3OGRkfS5zeW50YXgtc3RyaW5ne2NvbG9yOiM5OGMzNzl9LnN5bnRheC1udW1iZXJ7Y29sb3I6I2QxOWE2Nn0uc3ludGF4LWNvbW1lbnR7Y29sb3I6IzVjNjM3MDtmb250LXN0eWxlOml0YWxpY30uc3ludGF4LWZ1bmN0aW9ue2NvbG9yOiM2MWFmZWZ9LnN5bnRheC1vcGVyYXRvcntjb2xvcjojNTZiNmMyfS5zeW50YXgtdHlwZXtjb2xvcjojZTVjMDdifS5zeW50YXgtcHVuY3R1YXRpb257Y29sb3I6I2FiYjJiZn0ubWFya2Rvd24tcHJldmlld3twYWRkaW5nOjIwcHggMjhweDtsaW5lLWhlaWdodDoxLjc7Zm9udC1zaXplOi45Mzc1cmVtO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSl9Lm1hcmtkb3duLXByZXZpZXcgaDEsLm1hcmtkb3duLXByZXZpZXcgaDIsLm1hcmtkb3duLXByZXZpZXcgaDMsLm1hcmtkb3duLXByZXZpZXcgaDQsLm1hcmtkb3duLXByZXZpZXcgaDUsLm1hcmtkb3duLXByZXZpZXcgaDZ7bWFyZ2luLXRvcDoxLjVlbTttYXJnaW4tYm90dG9tOi41ZW07Zm9udC13ZWlnaHQ6NjAwO2xpbmUtaGVpZ2h0OjEuMztjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpfS5tYXJrZG93bi1wcmV2aWV3IGgxe2ZvbnQtc2l6ZToxLjc1cmVtO2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHZhcigtLWJvcmRlcik7cGFkZGluZy1ib3R0b206LjNlbX0ubWFya2Rvd24tcHJldmlldyBoMntmb250LXNpemU6MS4zNzVyZW07Ym9yZGVyLWJvdHRvbToxcHggc29saWQgdmFyKC0tYm9yZGVyKTtwYWRkaW5nLWJvdHRvbTouM2VtfS5tYXJrZG93bi1wcmV2aWV3IGgze2ZvbnQtc2l6ZToxLjEyNXJlbX0ubWFya2Rvd24tcHJldmlldyBoNHtmb250LXNpemU6MXJlbX0ubWFya2Rvd24tcHJldmlldyBwe21hcmdpbjouNzVlbSAwfS5tYXJrZG93bi1wcmV2aWV3IGF7Y29sb3I6dmFyKC0tYWNjZW50KTt0ZXh0LWRlY29yYXRpb246bm9uZX0ubWFya2Rvd24tcHJldmlldyBhOmhvdmVye3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmV9Lm1hcmtkb3duLXByZXZpZXcgY29kZXtiYWNrZ3JvdW5kOnZhcigtLWJnLXRlcnRpYXJ5KTtwYWRkaW5nOjJweCA2cHg7Ym9yZGVyLXJhZGl1czozcHg7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKTtmb250LXNpemU6Ljg3NWVtO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyKX0ubWFya2Rvd24tcHJldmlldyBwcmV7YmFja2dyb3VuZDp2YXIoLS1iZy1zZWNvbmRhcnkpO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyKTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1tZCk7cGFkZGluZzoxNnB4O292ZXJmbG93LXg6YXV0bzttYXJnaW46MWVtIDB9Lm1hcmtkb3duLXByZXZpZXcgcHJlIGNvZGV7YmFja2dyb3VuZDpub25lO2JvcmRlcjpub25lO3BhZGRpbmc6MDtmb250LXNpemU6dmFyKC0tZm9udC1zaXplLXNtKX0ubWFya2Rvd24tcHJldmlldyBibG9ja3F1b3Rle2JvcmRlci1sZWZ0OjRweCBzb2xpZCB2YXIoLS1hY2NlbnQpO21hcmdpbjoxZW0gMDtwYWRkaW5nOi41ZW0gMWVtO2JhY2tncm91bmQ6dmFyKC0tYmctc2Vjb25kYXJ5KTtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7Ym9yZGVyLXJhZGl1czowIHZhcigtLXJhZGl1cy1zbSkgdmFyKC0tcmFkaXVzLXNtKSAwfS5tYXJrZG93bi1wcmV2aWV3IHVsLC5tYXJrZG93bi1wcmV2aWV3IG9se3BhZGRpbmctbGVmdDoxLjVlbTttYXJnaW46Ljc1ZW0gMH0ubWFya2Rvd24tcHJldmlldyBsaXttYXJnaW46LjI1ZW0gMH0ubWFya2Rvd24tcHJldmlldyB0YWJsZXtib3JkZXItY29sbGFwc2U6Y29sbGFwc2U7d2lkdGg6MTAwJTttYXJnaW46MWVtIDA7Zm9udC1zaXplOi44NzVyZW19Lm1hcmtkb3duLXByZXZpZXcgdGgsLm1hcmtkb3duLXByZXZpZXcgdGR7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO3BhZGRpbmc6OHB4IDEycHg7dGV4dC1hbGlnbjpsZWZ0fS5tYXJrZG93bi1wcmV2aWV3IHRoe2JhY2tncm91bmQ6dmFyKC0tYmctc2Vjb25kYXJ5KTtmb250LXdlaWdodDo2MDB9Lm1hcmtkb3duLXByZXZpZXcgdHI6bnRoLWNoaWxkKDJuKXtiYWNrZ3JvdW5kOnZhcigtLWJnLXNlY29uZGFyeSl9Lm1hcmtkb3duLXByZXZpZXcgaHJ7Ym9yZGVyOm5vbmU7Ym9yZGVyLXRvcDoxcHggc29saWQgdmFyKC0tYm9yZGVyKTttYXJnaW46MS41ZW0gMH0ubWFya2Rvd24tcHJldmlldyBpbWd7bWF4LXdpZHRoOjEwMCU7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtc20pfS5maWxlLXByZXZpZXctbG9hZGluZ3tkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7aGVpZ2h0OjEwMCU7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7Zm9udC1zaXplOi44NzVyZW07Z2FwOjEwcHh9LmZpbGUtcHJldmlldy1sb2FkaW5nOmJlZm9yZXtjb250ZW50OiIiO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjE2cHg7aGVpZ2h0OjE2cHg7Ym9yZGVyOjJweCBzb2xpZCB2YXIoLS1ib3JkZXItZGVmYXVsdCk7Ym9yZGVyLXRvcC1jb2xvcjp2YXIoLS1hY2NlbnQpO2JvcmRlci1yYWRpdXM6NTAlO2FuaW1hdGlvbjpwcmV2aWV3LXNwaW4gLjdzIGxpbmVhciBpbmZpbml0ZX1Aa2V5ZnJhbWVzIHByZXZpZXctc3Bpbnt0b3t0cmFuc2Zvcm06cm90YXRlKDM2MGRlZyl9fS5maWxlLXByZXZpZXctZXJyb3J7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtoZWlnaHQ6MTAwJTtnYXA6OHB4O2NvbG9yOnZhcigtLWRhbmdlcik7Zm9udC1zaXplOi44NzVyZW07dGV4dC1hbGlnbjpjZW50ZXI7cGFkZGluZzoyMHB4fS5maWxlLXByZXZpZXctZXJyb3IgLnByZXZpZXctZXJyb3ItaWNvbntmb250LXNpemU6MnJlbTtvcGFjaXR5Oi41fS50cmVlLWl0ZW1bZGF0YS10eXBlPWZpbGVde2N1cnNvcjpwb2ludGVyfS50cmVlLWl0ZW1bZGF0YS10eXBlPWZpbGVdOmhvdmVye2JhY2tncm91bmQ6dmFyKC0tYmctaG92ZXIpfS50cmVlLWl0ZW1bZGF0YS10eXBlPWZpbGVdOmhvdmVyIC50cmVlLW5hbWV7Y29sb3I6dmFyKC0tYWNjZW50KX0uZmlsZS1leHBsb3Jlci11cHtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2JvcmRlcjoxcHggc29saWQgdHJhbnNwYXJlbnQ7Y3Vyc29yOnBvaW50ZXI7cGFkZGluZzowO3dpZHRoOjMwcHg7aGVpZ2h0OjMwcHg7Ym9yZGVyLXJhZGl1czo4cHg7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt0cmFuc2l0aW9uOmJhY2tncm91bmQgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KSxjb2xvciB2YXIoLS10cmFuc2l0aW9uLWZhc3QpLGJvcmRlci1jb2xvciB2YXIoLS10cmFuc2l0aW9uLWZhc3QpLHRyYW5zZm9ybSB2YXIoLS10cmFuc2l0aW9uLWZhc3QpO2ZsZXgtc2hyaW5rOjB9LmZpbGUtZXhwbG9yZXItdXA6aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS1iZy10ZXJ0aWFyeSk7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtib3JkZXItY29sb3I6dmFyKC0tYm9yZGVyLXN1YnRsZSl9LmZpbGUtZXhwbG9yZXItdXA6YWN0aXZle3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xcHgpfS50cmVlLW1ldGF7ZmxleC1zaHJpbms6MDtmb250LXNpemU6LjY4NzVyZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7Zm9udC12YXJpYW50LW51bWVyaWM6dGFidWxhci1udW1zO21hcmdpbi1sZWZ0OjZweDtwYWRkaW5nLWxlZnQ6NnB4O21heC13aWR0aDo3MHB4O292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcDtvcGFjaXR5Oi44NX0udHJlZS1pdGVtOmhvdmVyIC50cmVlLW1ldGF7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpfS50cmVlLXRydW5jYXRlZHtwYWRkaW5nOjhweCAxNHB4O21hcmdpbjo0cHggNnB4IDhweDtmb250LXNpemU6LjY4NzVyZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7YmFja2dyb3VuZDp2YXIoLS1iZy1zZWNvbmRhcnkpO2JvcmRlcjoxcHggZGFzaGVkIHZhcigtLWJvcmRlcik7Ym9yZGVyLXJhZGl1czo2cHg7dGV4dC1hbGlnbjpjZW50ZXJ9LmZpbGUtY29udGV4dC1tZW51e3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6MTEwMDttaW4td2lkdGg6MjAwcHg7cGFkZGluZzo0cHg7YmFja2dyb3VuZDp2YXIoLS1iZy1wcmltYXJ5KTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlcik7Ym9yZGVyLXJhZGl1czoxMHB4O2JveC1zaGFkb3c6MCAxMnB4IDM2cHggIzAwMDAwMDJlO2FuaW1hdGlvbjpjdHgtZmFkZS1pbiAuMTJzIGVhc2V9QGtleWZyYW1lcyBjdHgtZmFkZS1pbnswJXtvcGFjaXR5OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTRweCkgc2NhbGUoLjk4KX10b3tvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCkgc2NhbGUoMSl9fS5maWxlLWNvbnRleHQtbWVudS1pdGVte2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEwcHg7d2lkdGg6MTAwJTtwYWRkaW5nOjhweCAxMnB4O2JvcmRlcjpub25lO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtmb250LXNpemU6LjgxMjVyZW07dGV4dC1hbGlnbjpsZWZ0O2N1cnNvcjpwb2ludGVyO2JvcmRlci1yYWRpdXM6NnB4O3RyYW5zaXRpb246YmFja2dyb3VuZCAuMTJzfS5maWxlLWNvbnRleHQtbWVudS1pdGVtOmhvdmVye2JhY2tncm91bmQ6dmFyKC0tYmctdGVydGlhcnkpfS5maWxlLWNvbnRleHQtbWVudS1pdGVtIC5jdHgtaWNvbnt3aWR0aDoxOHB4O3RleHQtYWxpZ246Y2VudGVyO29wYWNpdHk6Ljg1fS53YW5kLW1pbmktdG9hc3R7cG9zaXRpb246Zml4ZWQ7dG9wOjMwcHg7bGVmdDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLC0xNHB4KTt6LWluZGV4OjEyMDA7cGFkZGluZzo4cHggMTZweDtiYWNrZ3JvdW5kOiMxNDE0MTRlYjtjb2xvcjojZmZmO2ZvbnQtc2l6ZTouODEyNXJlbTtib3JkZXItcmFkaXVzOjk5OXB4O29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgLjE4cyBlYXNlLHRyYW5zZm9ybSAuMThzIGVhc2U7cG9pbnRlci1ldmVudHM6bm9uZX0ud2FuZC1taW5pLXRvYXN0LnNob3d7b3BhY2l0eToxO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSl9LmZpbGUtcHJldmlldy10b29sYmFye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjRweDtmbGV4LXNocmluazowO21hcmdpbi1sZWZ0OjhweH0uZmlsZS1wcmV2aWV3LXRvb2xiYXItYnRue2JhY2tncm91bmQ6dmFyKC0tYmctcHJpbWFyeSk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlKTtjdXJzb3I6cG9pbnRlcjtwYWRkaW5nOjAgOHB4O21pbi13aWR0aDozMHB4O2hlaWdodDozMHB4O2dhcDo2cHg7Ym9yZGVyLXJhZGl1czo4cHg7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2ZvbnQtc2l6ZTouNzVyZW07ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjE1cyxjb2xvciAuMTVzLGJvcmRlci1jb2xvciAuMTVzLGJveC1zaGFkb3cgLjE1cyx0cmFuc2Zvcm0gLjFzfS5maWxlLXByZXZpZXctdG9vbGJhci1idG46aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS1iZy10ZXJ0aWFyeSk7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtib3JkZXItY29sb3I6dmFyKC0tYm9yZGVyKTtib3gtc2hhZG93OjAgMXB4IDNweCAjMDAwMDAwMGF9LmZpbGUtcHJldmlldy10b29sYmFyLWJ0bjphY3RpdmV7dHJhbnNmb3JtOnNjYWxlKC45NSl9LmZpbGUtcHJldmlldy10b29sYmFyLWJ0bjpkaXNhYmxlZHtvcGFjaXR5Oi41O2N1cnNvcjpub3QtYWxsb3dlZDt0cmFuc2Zvcm06bm9uZX0uZmlsZS1wcmV2aWV3LXRvb2xiYXItYnRuIC50b29sYmFyLWljb257ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcn0uZmlsZS1wcmV2aWV3LXRvb2xiYXItYnRuIC50b29sYmFyLXRleHR7Zm9udC13ZWlnaHQ6NjAwO2xldHRlci1zcGFjaW5nOi4wMWVtfS5maWxlLXByZXZpZXctdG9vbGJhci1idG4udG9vbGJhci1hY3RpdmV7YmFja2dyb3VuZDp2YXIoLS1hY2NlbnQtbXV0ZWQpO2NvbG9yOnZhcigtLWFjY2VudCk7Ym9yZGVyLWNvbG9yOiNkNDk4NjM2Nn0uZmlsZS1wcmV2aWV3LXRvb2xiYXItYnRuLnByaW1hcnl7YmFja2dyb3VuZDp2YXIoLS1hY2NlbnQpO2NvbG9yOiNmZmY7Ym9yZGVyLWNvbG9yOnZhcigtLWFjY2VudCk7Ym94LXNoYWRvdzowIDFweCAycHggIzU5M2EyMDI2fS5maWxlLXByZXZpZXctdG9vbGJhci1idG4ucHJpbWFyeTpob3ZlcntiYWNrZ3JvdW5kOiNiODdhNDc7Ym9yZGVyLWNvbG9yOiNiODdhNDc7Y29sb3I6I2ZmZjtib3gtc2hhZG93OjAgMnB4IDZweCAjNTkzYTIwMzN9LmZpbGUtcHJldmlldy10b29sYmFyLWJ0bi5kYW5nZXJ7Y29sb3I6I2MwMzkyYn0uZmlsZS1wcmV2aWV3LXRvb2xiYXItYnRuLmRhbmdlcjpob3ZlcntiYWNrZ3JvdW5kOiNkYzQ2NDYxNDtib3JkZXItY29sb3I6I2RjNDY0NjRkO2NvbG9yOiNhMDI4MTh9LmZpbGUtcHJldmlldy10b29sYmFyLWdyb3Vwe2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6c3RyZXRjaDtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpO2JvcmRlci1yYWRpdXM6OHB4O292ZXJmbG93OmhpZGRlbjtiYWNrZ3JvdW5kOnZhcigtLWJnLXByaW1hcnkpfS5maWxlLXByZXZpZXctdG9vbGJhci1ncm91cCAuZmlsZS1wcmV2aWV3LXRvb2xiYXItYnRue2JvcmRlcjpub25lO2JvcmRlci1yYWRpdXM6MDtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O21pbi13aWR0aDoyOHB4O2hlaWdodDoyOHB4O2JveC1zaGFkb3c6bm9uZX0uZmlsZS1wcmV2aWV3LXRvb2xiYXItZ3JvdXAgLmZpbGUtcHJldmlldy10b29sYmFyLWJ0bjpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLWJnLXRlcnRpYXJ5KX0uZmlsZS1wcmV2aWV3LXRvb2xiYXItZ3JvdXBsYWJlbHtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3BhZGRpbmc6MCA2cHg7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpO2JvcmRlci1yaWdodDoxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSk7YmFja2dyb3VuZDp2YXIoLS1iZy1zZWNvbmRhcnkpfS5maWxlLXByZXZpZXctdG9vbGJhci5lZGl0aW5ne2dhcDo2cHh9QG1lZGlhKG1heC13aWR0aDo3NjhweCl7LmZpbGUtcHJldmlldy10b29sYmFyLWJ0bntoZWlnaHQ6MjhweDttaW4td2lkdGg6MjhweDtwYWRkaW5nOjAgNnB4fS5maWxlLXByZXZpZXctdG9vbGJhci1idG4gLnRvb2xiYXItdGV4dHtkaXNwbGF5Om5vbmV9LmZpbGUtcHJldmlldy10b29sYmFyLWJ0bi5wcmltYXJ5IC50b29sYmFyLXRleHR7ZGlzcGxheTppbmxpbmUtZmxleH19LndhbmQtaWNvbntmbGV4LXNocmluazowO3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0uY29kZS1wcmV2aWV3LWNvbnRlbnQgcHJlLndyYXB7d2hpdGUtc3BhY2U6cHJlLXdyYXA7d29yZC1icmVhazpicmVhay13b3JkfS5maWxlLXByZXZpZXctYm9keS5lZGl0aW5ne3BhZGRpbmc6MDtiYWNrZ3JvdW5kOnZhcigtLWJnLXByaW1hcnkpfS5jb2RlLWVkaXRvci13cmFwcGVye2Rpc3BsYXk6ZmxleDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO21pbi1oZWlnaHQ6MDtiYWNrZ3JvdW5kOnZhcigtLWJnLXByaW1hcnkpfS5jb2RlLWVkaXRvci10ZXh0YXJlYXtmbGV4OjE7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTttaW4taGVpZ2h0OjA7Ym94LXNpemluZzpib3JkZXItYm94O3BhZGRpbmc6MTZweCAyMHB4O21hcmdpbjowO2JvcmRlcjpub25lO291dGxpbmU6bm9uZTtyZXNpemU6bm9uZTtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2ZvbnQtc2l6ZTp2YXIoLS1mb250LXNpemUtc20pO2xpbmUtaGVpZ2h0OnZhcigtLWxpbmUtaGVpZ2h0KTtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO2JhY2tncm91bmQ6dmFyKC0tYmctcHJpbWFyeSk7dGFiLXNpemU6MjstbW96LXRhYi1zaXplOjI7d2hpdGUtc3BhY2U6cHJlO292ZXJmbG93OmF1dG87Y2FyZXQtY29sb3I6dmFyKC0tYWNjZW50KTtzY3JvbGxiYXItd2lkdGg6dGhpbjtzY3JvbGxiYXItY29sb3I6dmFyKC0tYm9yZGVyLWRlZmF1bHQpIHRyYW5zcGFyZW50fS5jb2RlLWVkaXRvci10ZXh0YXJlYTo6LXdlYmtpdC1zY3JvbGxiYXJ7d2lkdGg6OHB4O2hlaWdodDo4cHh9LmNvZGUtZWRpdG9yLXRleHRhcmVhOjotd2Via2l0LXNjcm9sbGJhci10cmFja3tiYWNrZ3JvdW5kOnRyYW5zcGFyZW50fS5jb2RlLWVkaXRvci10ZXh0YXJlYTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7YmFja2dyb3VuZDp2YXIoLS1ib3JkZXItZGVmYXVsdCk7Ym9yZGVyLXJhZGl1czo0cHh9LmNvZGUtZWRpdG9yLXRleHRhcmVhOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLXRleHQtbXV0ZWQpfS5jb2RlLWVkaXRvci10ZXh0YXJlYTpmb2N1c3tib3gtc2hhZG93Omluc2V0IDAgMCAwIDJweCAjZDQ5ODYzMjZ9LmZpbGUtcHJldmlldy1ib2R5LmtpbmQtaW1hZ2V7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDQ1ZGVnLHJnYmEoMCwwLDAsLjA0KSAyNSUsdHJhbnNwYXJlbnQgMjUlLHRyYW5zcGFyZW50IDc1JSxyZ2JhKDAsMCwwLC4wNCkgNzUlKSxsaW5lYXItZ3JhZGllbnQoNDVkZWcscmdiYSgwLDAsMCwuMDQpIDI1JSx0cmFuc3BhcmVudCAyNSUsdHJhbnNwYXJlbnQgNzUlLHJnYmEoMCwwLDAsLjA0KSA3NSUpLHZhcigtLWJnLXByaW1hcnkpO2JhY2tncm91bmQtc2l6ZToxNnB4IDE2cHg7YmFja2dyb3VuZC1wb3NpdGlvbjowIDAsOHB4IDhweH0uaW1hZ2UtcHJldmlldy13cmFwcGVye3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO292ZXJmbG93OmF1dG87cGFkZGluZzoxNnB4fS5pbWFnZS1wcmV2aWV3LWltZ3ttYXgtd2lkdGg6MTAwJTttYXgtaGVpZ2h0OjEwMCU7b2JqZWN0LWZpdDpjb250YWluO2N1cnNvcjp6b29tLWluO3RyYW5zaXRpb246dHJhbnNmb3JtIC4ycyBlYXNlO2JveC1zaGFkb3c6MCA2cHggMjBweCAjMDAwMDAwMWY7Ym9yZGVyLXJhZGl1czo0cHg7YmFja2dyb3VuZDojZmZmfS5pbWFnZS1wcmV2aWV3LWltZy56b29tZWR7bWF4LXdpZHRoOm5vbmU7bWF4LWhlaWdodDpub25lO2N1cnNvcjp6b29tLW91dDt0cmFuc2Zvcm06c2NhbGUoMSl9LmZpbGUtcHJldmlldy1ib2R5LmtpbmQtcGRme3BhZGRpbmc6MDtiYWNrZ3JvdW5kOnZhcigtLWJnLXNlY29uZGFyeSl9LnBkZi1wcmV2aWV3LWZyYW1le3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7Ym9yZGVyOm5vbmU7YmFja2dyb3VuZDp2YXIoLS1iZy1zZWNvbmRhcnkpfS5maWxlLXByZXZpZXctYm9keS5raW5kLXZpZGVvLC5maWxlLXByZXZpZXctYm9keS5raW5kLWF1ZGlve2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtiYWNrZ3JvdW5kOiMwZDBkMGR9LmZpbGUtcHJldmlldy1ib2R5LmtpbmQtYXVkaW97YmFja2dyb3VuZDp2YXIoLS1iZy1zZWNvbmRhcnkpfS5tZWRpYS1wcmV2aWV3LXdyYXBwZXJ7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEwcHg7bWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDoxMDAlO3BhZGRpbmc6MjRweH0ubWVkaWEtcHJldmlldy12aWRlb3ttYXgtd2lkdGg6MTAwJTttYXgtaGVpZ2h0OmNhbGMoMTAwJSAtIDQwcHgpO2JhY2tncm91bmQ6IzAwMDtib3JkZXItcmFkaXVzOjRweH0ubWVkaWEtcHJldmlldy1hdWRpb3t3aWR0aDptaW4oNDIwcHgsOTAlKX0ubWVkaWEtcHJldmlldy1pY29ue2ZvbnQtc2l6ZTozLjVyZW07b3BhY2l0eTouN30ubWVkaWEtcHJldmlldy1uYW1le2ZvbnQtd2VpZ2h0OjYwMDtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO2ZvbnQtc2l6ZToxcmVtO21heC13aWR0aDoxMDAlO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcH0ubWVkaWEtcHJldmlldy1tZXRhe2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2ZvbnQtc2l6ZTouNzVyZW07Zm9udC12YXJpYW50LW51bWVyaWM6dGFidWxhci1udW1zfS5maWxlLXByZXZpZXctYm9keS5raW5kLXZpZGVvIC5tZWRpYS1wcmV2aWV3LW1ldGF7Y29sb3I6I2ZmZmZmZmIzfS5maWxlLXByZXZpZXctYm9keS5raW5kLWJpbmFyeXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXJ9LmJpbmFyeS1wcmV2aWV3LWNhcmR7bWF4LXdpZHRoOjQ4MHB4O3BhZGRpbmc6MzJweCAyOHB4O3RleHQtYWxpZ246Y2VudGVyO2JhY2tncm91bmQ6dmFyKC0tYmctc2Vjb25kYXJ5KTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlcik7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtbGcpO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMHB4fS5iaW5hcnktcHJldmlldy1pY29ue2ZvbnQtc2l6ZTozcmVtO29wYWNpdHk6LjZ9LmJpbmFyeS1wcmV2aWV3LW5hbWV7Zm9udC13ZWlnaHQ6NjAwO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7Zm9udC1zaXplOjFyZW07d29yZC1icmVhazpicmVhay1hbGx9LmJpbmFyeS1wcmV2aWV3LW1ldGF7ZGlzcGxheTpmbGV4O2dhcDo2cHg7YWxpZ24taXRlbXM6Y2VudGVyO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2ZvbnQtc2l6ZTouNzVyZW19LmJpbmFyeS1wcmV2aWV3LXBhdGh7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKTtmb250LXNpemU6Ljc1cmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO21heC13aWR0aDoxMDAlO292ZXJmbG93OmhpZGRlbjt3aGl0ZS1zcGFjZTpub3dyYXB9LmJpbmFyeS1wcmV2aWV3LWFjdGlvbnN7ZGlzcGxheTpmbGV4O2dhcDo4cHg7bWFyZ2luLXRvcDo4cHg7ZmxleC13cmFwOndyYXA7anVzdGlmeS1jb250ZW50OmNlbnRlcn0uYmluYXJ5LXByZXZpZXctYnRue3BhZGRpbmc6OHB4IDE2cHg7Ym9yZGVyLXJhZGl1czo2cHg7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO2JhY2tncm91bmQ6dmFyKC0tYmctcHJpbWFyeSk7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtmb250LXNpemU6LjgxMjVyZW07Y3Vyc29yOnBvaW50ZXI7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4xNXMsYm9yZGVyLWNvbG9yIC4xNXMsY29sb3IgLjE1c30uYmluYXJ5LXByZXZpZXctYnRuOmhvdmVye2JhY2tncm91bmQ6dmFyKC0tYWNjZW50LW11dGVkKTtib3JkZXItY29sb3I6dmFyKC0tYWNjZW50KTtjb2xvcjp2YXIoLS1hY2NlbnQpfS50cmVlLWl0ZW17dHJhbnNpdGlvbjphbGwgLjJzIHZhcigtLWVhc2Utb3V0LWV4cG8pfS50cmVlLWl0ZW06aG92ZXJ7dHJhbnNmb3JtOnRyYW5zbGF0ZSg0cHgpfS50cmVlLWl0ZW06YWN0aXZle3RyYW5zZm9ybTp0cmFuc2xhdGUoMnB4KSBzY2FsZSguOTkpfS5maWxlLXNpZGUtcGFuZWx7dHJhbnNpdGlvbjpyaWdodCAuMzVzIHZhcigtLWVhc2Utb3V0LWV4cG8pLGJveC1zaGFkb3cgLjM1cyBlYXNlfS5maWxlLXNpZGUtcGFuZWwub3Blbntib3gtc2hhZG93Oi04cHggMCAzMnB4ICM1OTNhMjAxZn0uc3Bpbm5lcnthbmltYXRpb246c3BpbiAxcyBsaW5lYXIgaW5maW5pdGV9QGtleWZyYW1lcyBzcGlue3Rve3RyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKX19QGtleWZyYW1lcyBmbG9hdHswJSx0b3t0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKX01MCV7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLThweCl9fS5mbG9hdHthbmltYXRpb246ZmxvYXQgM3MgZWFzZS1pbi1vdXQgaW5maW5pdGV9LmNoYXQtbWVzc2FnZS1idWJibGV7LXdlYmtpdC11c2VyLXNlbGVjdDp0ZXh0O3VzZXItc2VsZWN0OnRleHR9Lm1zZy1jb3B5LWJ0bntkaXNwbGF5Om5vbmU7cG9zaXRpb246YWJzb2x1dGU7dG9wOi0zMnB4O3JpZ2h0OjRweDtwYWRkaW5nOjRweCAxMHB4O2ZvbnQtc2l6ZTouNzVyZW07YmFja2dyb3VuZDp2YXIoLS1iZy1lbGV2YXRlZCk7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLWRlZmF1bHQpO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLXNtKTtib3gtc2hhZG93OnZhcigtLXNoYWRvdy1tZCk7Y3Vyc29yOnBvaW50ZXI7dXNlci1zZWxlY3Q6bm9uZTstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7ei1pbmRleDoxMDt3aGl0ZS1zcGFjZTpub3dyYXA7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O3RvdWNoLWFjdGlvbjptYW5pcHVsYXRpb259Lm1zZy1jb3B5LWJ0bi52aXNpYmxle2Rpc3BsYXk6YmxvY2t9Lm1zZy1jb3B5LWJ0bi5jb3BpZWR7YmFja2dyb3VuZDp2YXIoLS1zdWNjZXNzLW11dGVkKTtjb2xvcjp2YXIoLS1zdWNjZXNzKTtib3JkZXItY29sb3I6dmFyKC0tc3VjY2Vzcyl9LmNoYXQtbWVzc2FnZXtwb3NpdGlvbjpyZWxhdGl2ZX0udGVybWluYWwtanVtcC1ib3R0b217ei1pbmRleDoyMH0uaW5wdXQtY29tcG9zZXIuaW4tZmxpZ2h0e2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudH0uaW5wdXQtY29tcG9zZXIuaW4tZmxpZ2h0OmJlZm9yZXtjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO3RvcDotMnB4O2xlZnQ6LTYwJTt3aWR0aDoyMjAlO2hlaWdodDozcHg7Ym9yZGVyLXJhZGl1czoxNHB4IDE0cHggMCAwO2JhY2tncm91bmQ6cmFkaWFsLWdyYWRpZW50KGVsbGlwc2UgMjgwcHggNHB4LHJnYmEodmFyKC0tYWNjZW50LXJnYiwgMTk3LCAxMDEsIDYxKSwuNDUpIDAlLHJnYmEodmFyKC0tYWNjZW50LXJnYiwgMTk3LCAxMDEsIDYxKSwuMTIpIDM1JSx0cmFuc3BhcmVudCA2MCUpIG5vLXJlcGVhdDtiYWNrZ3JvdW5kLXNpemU6MjgwcHggNHB4O2FuaW1hdGlvbjpjb21wb3NlcldhdmVTbGlkZSA3cyBjdWJpYy1iZXppZXIoLjM1LDAsLjY1LDEpIGluZmluaXRlO3otaW5kZXg6Mjtwb2ludGVyLWV2ZW50czpub25lfS5pbnB1dC1jb21wb3Nlci5pbi1mbGlnaHQ6YWZ0ZXJ7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6LTJweDtsZWZ0Oi02MCU7d2lkdGg6MjIwJTtoZWlnaHQ6M3B4O2JvcmRlci1yYWRpdXM6MTRweCAxNHB4IDAgMDtiYWNrZ3JvdW5kOnJhZGlhbC1ncmFkaWVudChlbGxpcHNlIDIyMHB4IDNweCxyZ2JhKHZhcigtLWFjY2VudC1yZ2IsIDE5NywgMTAxLCA2MSksLjI1KSAwJSxyZ2JhKHZhcigtLWFjY2VudC1yZ2IsIDE5NywgMTAxLCA2MSksLjA2KSAzNSUsdHJhbnNwYXJlbnQgNjAlKSBuby1yZXBlYXQ7YmFja2dyb3VuZC1zaXplOjIyMHB4IDNweDthbmltYXRpb246Y29tcG9zZXJXYXZlU2xpZGUgOXMgY3ViaWMtYmV6aWVyKC4zNSwwLC42NSwxKSBpbmZpbml0ZSByZXZlcnNlO3otaW5kZXg6Mjtwb2ludGVyLWV2ZW50czpub25lfUBrZXlmcmFtZXMgY29tcG9zZXJXYXZlU2xpZGV7MCV7YmFja2dyb3VuZC1wb3NpdGlvbjowJSBjZW50ZXJ9dG97YmFja2dyb3VuZC1wb3NpdGlvbjoxMDAlIGNlbnRlcn19LnN0cnVjdHVyZWQtc3RhdHVzLWJhcntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpmbGV4LWVuZDtnYXA6NXB4O21hcmdpbjowIDAgMCBhdXRvO3BhZGRpbmc6NHB4IDhweDtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2JvcmRlcjpub25lO2ZvbnQtc2l6ZTouNjg3NXJlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjNzIGVhc2UsY29sb3IgLjNzIGVhc2U7b3ZlcmZsb3c6aGlkZGVuO2ZsZXgtc2hyaW5rOjB9LnN0cnVjdHVyZWQtc3RhdHVzLWJhciAuc3RhdHVzLWJhci1kb3R7d2lkdGg6NXB4O2hlaWdodDo1cHg7Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZDpyZ2JhKHZhcigtLWFjY2VudC1yZ2IsIDE5NywgMTAxLCA2MSksLjgpO2FuaW1hdGlvbjpzdGF0dXNEb3RQdWxzZSAxLjJzIGVhc2UtaW4tb3V0IGluZmluaXRlO2ZsZXgtc2hyaW5rOjB9QGtleWZyYW1lcyBzdGF0dXNEb3RQdWxzZXswJSx0b3tvcGFjaXR5Oi40O3RyYW5zZm9ybTpzY2FsZSguOSl9NTAle29wYWNpdHk6MTt0cmFuc2Zvcm06c2NhbGUoMS4xKX19LnN0cnVjdHVyZWQtc3RhdHVzLWJhciAuc3RhdHVzLWJhci1sYWJlbHtmbGV4LXNocmluazowO2ZvbnQtd2VpZ2h0OjUwMDtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtmb250LXNpemU6LjYyNXJlbX0uc3RydWN0dXJlZC1zdGF0dXMtYmFyIC5zdGF0dXMtYmFyLXRpbWVye2ZsZXgtc2hyaW5rOjA7Zm9udC12YXJpYW50LW51bWVyaWM6dGFidWxhci1udW1zO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7Zm9udC1zaXplOi42MjVyZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCl9LnN0cnVjdHVyZWQtc3RhdHVzLWJhci5jb21wbGV0ZWR7YW5pbWF0aW9uOnN0YXR1c0JhckZhZGVPdXQgMnMgZWFzZS1vdXQgMXMgZm9yd2FyZHN9LnN0cnVjdHVyZWQtc3RhdHVzLWJhci5jb21wbGV0ZWQgLnN0YXR1cy1iYXItbGFiZWx7Y29sb3I6dmFyKC0tc3VjY2Vzcyl9QGtleWZyYW1lcyBzdGF0dXNCYXJGYWRlT3V0ezAle29wYWNpdHk6MTttYXgtaGVpZ2h0OjIwcHh9NzAle29wYWNpdHk6MDttYXgtaGVpZ2h0OjIwcHh9dG97b3BhY2l0eTowO21heC1oZWlnaHQ6MDttYXJnaW46MH19LmNyb3NzLXNlc3Npb24tcXVldWV7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6MnB4O21hcmdpbjowIDhweCA0cHh9LnF1ZXVlLWhlYWRlcntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo1cHg7cGFkZGluZzowIDRweDtmb250LXNpemU6LjZyZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCl9LnF1ZXVlLWhlYWRlci1sYWJlbHtmbGV4OjE7b3BhY2l0eTouNn0ucXVldWUtaGVhZGVyLWNsZWFye2JvcmRlcjpub25lO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7Y3Vyc29yOnBvaW50ZXI7Zm9udC1zaXplOi41NjI1cmVtO3BhZGRpbmc6MXB4IDRweDtib3JkZXItcmFkaXVzOjNweDtvcGFjaXR5Oi41O3RyYW5zaXRpb246Y29sb3IgLjE1cyxiYWNrZ3JvdW5kIC4xNXMsb3BhY2l0eSAuMTVzfS5xdWV1ZS1oZWFkZXItY2xlYXI6aG92ZXJ7Y29sb3I6dmFyKC0tZXJyb3IsICNlNTUpO2JhY2tncm91bmQ6I2U1NTU1NTFmO29wYWNpdHk6MX0ucXVldWUtaXRlbXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2cHg7cGFkZGluZzo0cHggOHB4O2ZvbnQtc2l6ZTouNjg3NXJlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtvcGFjaXR5Oi43O3RyYW5zaXRpb246b3BhY2l0eSAuMTVzIGVhc2V9LnF1ZXVlLWl0ZW06aG92ZXJ7b3BhY2l0eToxfS5xdWV1ZS1pdGVtLWRvdHtmbGV4LXNocmluazowO3dpZHRoOjRweDtoZWlnaHQ6NHB4O2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6cmdiYSh2YXIoLS1hY2NlbnQtcmdiLCAxOTcsIDEwMSwgNjEpLC42KTthbmltYXRpb246c3RhdHVzRG90UHVsc2UgMS4ycyBlYXNlLWluLW91dCBpbmZpbml0ZX0ucXVldWUtaXRlbS10ZXh0e2ZsZXg6MTttaW4td2lkdGg6MDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXA7Zm9udC1zaXplOi42ODc1cmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpfS5xdWV1ZS1pdGVtLWFnZXtmbGV4LXNocmluazowO2ZvbnQtc2l6ZTouNTYyNXJlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtmb250LXZhcmlhbnQtbnVtZXJpYzp0YWJ1bGFyLW51bXM7b3BhY2l0eTouNX0ucXVldWUtaXRlbS1zZW5kLW5vd3tmbGV4LXNocmluazowO2JvcmRlcjoxcHggc29saWQgcmdiYSh2YXIoLS1hY2NlbnQtcmdiLCAxOTcsIDEwMSwgNjEpLC4zKTtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2NvbG9yOnZhcigtLWFjY2VudCwgI2M1NjUzZCk7Y3Vyc29yOnBvaW50ZXI7cGFkZGluZzoxcHggOHB4O2JvcmRlci1yYWRpdXM6NHB4O2ZvbnQtc2l6ZTouNnJlbTtsaW5lLWhlaWdodDoxLjQ7dHJhbnNpdGlvbjpjb2xvciAuMTVzLGJhY2tncm91bmQgLjE1cyxib3JkZXItY29sb3IgLjE1c30ucXVldWUtaXRlbS1zZW5kLW5vdzpob3Zlcntjb2xvcjp2YXIoLS1hY2NlbnQsICNjNTY1M2QpO2JhY2tncm91bmQ6cmdiYSh2YXIoLS1hY2NlbnQtcmdiLCAxOTcsIDEwMSwgNjEpLC4xMik7Ym9yZGVyLWNvbG9yOnJnYmEodmFyKC0tYWNjZW50LXJnYiwgMTk3LCAxMDEsIDYxKSwuNSl9LnF1ZXVlLWl0ZW0tY2FuY2Vse2ZsZXgtc2hyaW5rOjA7Ym9yZGVyOm5vbmU7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtjdXJzb3I6cG9pbnRlcjtwYWRkaW5nOjFweCA0cHg7Ym9yZGVyLXJhZGl1czozcHg7Zm9udC1zaXplOi42ODc1cmVtO2xpbmUtaGVpZ2h0OjE7b3BhY2l0eTouNDt0cmFuc2l0aW9uOmNvbG9yIC4xNXMsYmFja2dyb3VuZCAuMTVzLG9wYWNpdHkgLjE1c30ucXVldWUtaXRlbS1jYW5jZWw6aG92ZXJ7Y29sb3I6dmFyKC0tZXJyb3IsICNlNTUpO2JhY2tncm91bmQ6I2U1NTU1NTFmO29wYWNpdHk6MX0uc2V0dGluZ3MtY2FyZC1oZWFke2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O2dhcDoxMnB4O21hcmdpbi1ib3R0b206MTRweH0uc2V0dGluZ3MtY2FyZC1pY29ue2ZsZXg6MCAwIGF1dG87d2lkdGg6MzZweDtoZWlnaHQ6MzZweDtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2JvcmRlci1yYWRpdXM6MTBweDtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxMzVkZWcsI2M1NjUzZDJlLCNjNTY1M2QwZik7Y29sb3I6dmFyKC0tYWNjZW50KTtmb250LXNpemU6MThweDtib3gtc2hhZG93Omluc2V0IDAgMCAwIDFweCAjYzU2NTNkMmV9LnNldHRpbmdzLWNhcmQtaGVhZC10ZXh0e2ZsZXg6MTttaW4td2lkdGg6MDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoycHh9LnNldHRpbmdzLWNhcmQtdGl0bGV7Zm9udC1zaXplOi45Mzc1cmVtO2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO2xldHRlci1zcGFjaW5nOi4wMDVlbTtsaW5lLWhlaWdodDoxLjM7bWFyZ2luOjB9LnNldHRpbmdzLWNhcmQtZGVzY3tmb250LXNpemU6Ljc1cmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2xpbmUtaGVpZ2h0OjEuNTttYXJnaW46MH0uc2V0dGluZ3MtY2FyZC1hY3Rpb25ze2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMHB4O21hcmdpbi10b3A6NnB4fS5zZXR0aW5ncy1jYXJkLWFjdGlvbnMgLmJ0bnttaW4td2lkdGg6MTIwcHh9LnNldHRpbmdzLXN1Y2Nlc3MtbWVzc2FnZXtjb2xvcjp2YXIoLS1zdWNjZXNzKX0uc2V0dGluZ3Mtc2VjdGlvbi1oZWFke2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O2dhcDoxMHB4O21hcmdpbi1ib3R0b206MTJweH0uc2V0dGluZ3Mtc2VjdGlvbi1pY29ue2ZsZXg6MCAwIGF1dG87d2lkdGg6MjhweDtoZWlnaHQ6MjhweDtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2JvcmRlci1yYWRpdXM6OHB4O2JhY2tncm91bmQ6I2M1NjUzZDFhO2ZvbnQtc2l6ZToxNHB4fS5zZXR0aW5ncy1zZWN0aW9uLWhlYWQtdGV4dHtmbGV4OjE7bWluLXdpZHRoOjA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6MnB4fS5zZXR0aW5ncy1zZWN0aW9uLWhlYWRpbmd7Zm9udC1zaXplOi44NzVyZW07Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7bGV0dGVyLXNwYWNpbmc6LjAwNWVtO2xpbmUtaGVpZ2h0OjEuMzttYXJnaW46MH0uc2V0dGluZ3Mtc2VjdGlvbi1zdWJ7Zm9udC1zaXplOi43MnJlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtsaW5lLWhlaWdodDoxLjU7bWFyZ2luOjB9LnNldHRpbmdzLXRvZ2dsZS1yb3d7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtnYXA6MTRweDtwYWRkaW5nOjEycHggMTRweDtib3JkZXItcmFkaXVzOjEycHg7YmFja2dyb3VuZDojZmZmZmZmOGM7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDEyNSw5MSw1NywuMSk7bWFyZ2luLXRvcDoxMHB4fS5zZXR0aW5ncy10b2dnbGUtcm93Ky5zZXR0aW5ncy10b2dnbGUtcm93LC5zZXR0aW5ncy10b2dnbGUtcm93Ky5zZXR0aW5ncy1yYW5nZS1yb3csLnNldHRpbmdzLXJhbmdlLXJvdysuc2V0dGluZ3MtdG9nZ2xlLXJvd3ttYXJnaW4tdG9wOjhweH0uc2V0dGluZ3MtdG9nZ2xlLXRleHR7ZmxleDoxO21pbi13aWR0aDowO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjNweH0uc2V0dGluZ3MtdG9nZ2xlLXRpdGxle2ZvbnQtc2l6ZTouODEyNXJlbTtmb250LXdlaWdodDo2MDA7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtjdXJzb3I6cG9pbnRlcn0uc2V0dGluZ3MtdG9nZ2xlLWRlc2N7Zm9udC1zaXplOi43MnJlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtsaW5lLWhlaWdodDoxLjV9LnNldHRpbmdzLXN3aXRjaHtwb3NpdGlvbjpyZWxhdGl2ZTtmbGV4OjAgMCBhdXRvO2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5zZXR0aW5ncy10b2dnbGUtYXNpZGV7ZmxleDowIDAgYXV0bztkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMHB4fS5lbnYtcHJldmlldy1tb2RhbHttYXgtd2lkdGg6NzIwcHh9LmVudi1wcmV2aWV3LWJvZHl7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6MTJweDtwYWRkaW5nOjE4cHggMjRweCA4cHg7bWluLWhlaWdodDowfS5lbnYtcHJldmlldy10b29sYmFye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47Z2FwOjEycHg7ZmxleC13cmFwOndyYXB9LmVudi1wcmV2aWV3LW1ldGF7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjhweDtmb250LXNpemU6Ljc4cmVtO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KX0uZW52LXByZXZpZXctcGlsbHtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtwYWRkaW5nOjJweCAxMHB4O2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLWZ1bGwpO2ZvbnQtc2l6ZTouNzJyZW07Zm9udC13ZWlnaHQ6NjAwO2xldHRlci1zcGFjaW5nOi4wMmVtO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSl9LmVudi1wcmV2aWV3LXBpbGwuaXMtaW5oZXJpdHtjb2xvcjp2YXIoLS1hY2NlbnQpO2JhY2tncm91bmQ6dmFyKC0tYWNjZW50LW11dGVkKTtib3JkZXItY29sb3I6dmFyKC0tYWNjZW50KX0uZW52LXByZXZpZXctcGlsbC5pcy1taW5pbWFse2NvbG9yOnZhcigtLXN1Y2Nlc3MpO2JhY2tncm91bmQ6dmFyKC0tc3VjY2Vzcy1tdXRlZCk7Ym9yZGVyLWNvbG9yOnZhcigtLXN1Y2Nlc3MpfS5lbnYtcHJldmlldy1jb3VudHtmb250LXNpemU6LjcycmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpfS5lbnYtcHJldmlldy1jb250cm9sc3tkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMHB4O2ZsZXgtd3JhcDp3cmFwfS5lbnYtcHJldmlldy1zZWFyY2h7d2lkdGg6MjAwcHg7bWF4LXdpZHRoOjEwMCU7cGFkZGluZzo2cHggMTBweDtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1zbSk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO2JhY2tncm91bmQ6dmFyKC0tYmctZWxldmF0ZWQpO2ZvbnQtc2l6ZTouNzhyZW07Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KX0uZW52LXByZXZpZXctc2VhcmNoOmZvY3Vze291dGxpbmU6bm9uZTtib3JkZXItY29sb3I6dmFyKC0tYm9yZGVyLWZvY3VzKTtib3gtc2hhZG93OjAgMCAwIDNweCB2YXIoLS1hY2NlbnQtZ2xvdyl9LmVudi1wcmV2aWV3LXJldmVhbHtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NnB4O2ZvbnQtc2l6ZTouNzRyZW07Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2N1cnNvcjpwb2ludGVyO3VzZXItc2VsZWN0Om5vbmV9LmVudi1wcmV2aWV3LXJldmVhbCBpbnB1dHthY2NlbnQtY29sb3I6dmFyKC0tYWNjZW50KTtjdXJzb3I6cG9pbnRlcn0uZW52LXByZXZpZXctbGlzdHttYXgtaGVpZ2h0Om1pbig1NnZoLDQ2MHB4KTtvdmVyZmxvdy15OmF1dG87Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtc20pO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSk7YmFja2dyb3VuZDp2YXIoLS1iZy1lbGV2YXRlZCk7cGFkZGluZzo0cHh9LmVudi1wcmV2aWV3LWxpc3Q6Zm9jdXN7b3V0bGluZTpub25lfS5lbnYtcHJldmlldy1yb3d7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczptaW5tYXgoMCwyMjBweCkgbWlubWF4KDAsMWZyKSBhdXRvO2dhcDoxMnB4O2FsaWduLWl0ZW1zOmNlbnRlcjtwYWRkaW5nOjhweCAxMHB4O2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLXhzKTtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8sIHVpLW1vbm9zcGFjZSwgIlNGIE1vbm8iLCBNZW5sbywgQ29uc29sYXMsIG1vbm9zcGFjZSk7Zm9udC1zaXplOi43NHJlbTt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjEyc30uZW52LXByZXZpZXctcm93OmhvdmVye2JhY2tncm91bmQ6dmFyKC0tYmctdGVydGlhcnkpfS5lbnYtcHJldmlldy1yb3crLmVudi1wcmV2aWV3LXJvd3tib3JkZXItdG9wOjFweCBkYXNoZWQgdmFyKC0tYm9yZGVyLXN1YnRsZSl9LmVudi1wcmV2aWV3LW5hbWV7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtmb250LXdlaWdodDo2MDA7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjZweDtmbGV4LXdyYXA6d3JhcDtvdmVyZmxvdy13cmFwOmFueXdoZXJlfS5lbnYtcHJldmlldy1yb3cuaXMtc2Vuc2l0aXZlIC5lbnYtcHJldmlldy1uYW1le2NvbG9yOnZhcigtLXdhcm5pbmcpfS5lbnYtcHJldmlldy1iYWRnZXtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtwYWRkaW5nOjFweCA2cHg7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtZnVsbCk7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXNpemU6LjYycmVtO2ZvbnQtd2VpZ2h0OjYwMDtsZXR0ZXItc3BhY2luZzouMDRlbTtiYWNrZ3JvdW5kOnZhcigtLXdhcm5pbmctbXV0ZWQpO2NvbG9yOnZhcigtLXdhcm5pbmcpO2JvcmRlcjoxcHggc29saWQgdmFyKC0td2FybmluZyl9LmVudi1wcmV2aWV3LWJhZGdlLXJ1bnRpbWV7YmFja2dyb3VuZDp2YXIoLS1pbmZvLW11dGVkKTtjb2xvcjp2YXIoLS1pbmZvKTtib3JkZXItY29sb3I6dmFyKC0taW5mbyl9LmVudi1wcmV2aWV3LXZhbHVle2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXA7bWluLXdpZHRoOjB9LmVudi1wcmV2aWV3LXZhbHVlLmlzLXJ1bnRpbWV7Zm9udC1zdHlsZTppdGFsaWM7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCl9LmVudi1wcmV2aWV3LWxlbntjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtmb250LXNpemU6LjY4cmVtO3doaXRlLXNwYWNlOm5vd3JhcH0uZW52LXByZXZpZXctbG9hZGluZywuZW52LXByZXZpZXctZW1wdHl7cGFkZGluZzoyNHB4IDhweDt0ZXh0LWFsaWduOmNlbnRlcjtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtmb250LXNpemU6Ljc4cmVtfS5lbnYtcHJldmlldy1mb290ZXJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtnYXA6MTJweDtwYWRkaW5nOjE0cHggMjRweCAxOHB4fS5lbnYtcHJldmlldy1oaW50e2ZvbnQtc2l6ZTouN3JlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtmbGV4OjE7bWluLXdpZHRoOjB9QG1lZGlhKG1heC13aWR0aDo2NDBweCl7LmVudi1wcmV2aWV3LW1vZGFse21heC13aWR0aDpjYWxjKDEwMHZ3IC0gMjRweCl9LmVudi1wcmV2aWV3LXJvd3tncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyO2dhcDo0cHh9LmVudi1wcmV2aWV3LWxlbntqdXN0aWZ5LXNlbGY6ZW5kfS5lbnYtcHJldmlldy1zZWFyY2gsLmVudi1wcmV2aWV3LWNvbnRyb2xze3dpZHRoOjEwMCV9fS5zZXR0aW5ncy1yYW5nZS1yb3d7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTJweDtwYWRkaW5nOjEycHggMTRweDtib3JkZXItcmFkaXVzOjEycHg7YmFja2dyb3VuZDojZmZmZmZmOGM7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDEyNSw5MSw1NywuMSk7bWFyZ2luLXRvcDo4cHh9LnNldHRpbmdzLXJhbmdlLWxhYmVse2ZvbnQtc2l6ZTouODEyNXJlbTtmb250LXdlaWdodDo2MDA7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtmbGV4OjAgMCBhdXRvO21hcmdpbi1ib3R0b206MH0uc2V0dGluZ3MtcmFuZ2V7ZmxleDoxO21pbi13aWR0aDowO2FjY2VudC1jb2xvcjp2YXIoLS1hY2NlbnQpfWlucHV0W3R5cGU9cmFuZ2VdLnNldHRpbmdzLXJhbmdley13ZWJraXQtYXBwZWFyYW5jZTpub25lO2FwcGVhcmFuY2U6bm9uZTtoZWlnaHQ6MjJweDtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2N1cnNvcjpwb2ludGVyO3BhZGRpbmc6MDttYXJnaW46MDstLXJhbmdlLWZpbGw6IDUwJX1pbnB1dFt0eXBlPXJhbmdlXS5zZXR0aW5ncy1yYW5nZTo6LXdlYmtpdC1zbGlkZXItcnVubmFibGUtdHJhY2t7aGVpZ2h0OjRweDtib3JkZXItcmFkaXVzOjJweDtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCh0byByaWdodCx2YXIoLS1hY2NlbnQpIDAlLHZhcigtLWFjY2VudCkgdmFyKC0tcmFuZ2UtZmlsbCwgNTAlKSxyZ2JhKDEyNSw5MSw1NywuMikgdmFyKC0tcmFuZ2UtZmlsbCwgNTAlKSxyZ2JhKDEyNSw5MSw1NywuMikgMTAwJSk7Ym9yZGVyOm5vbmV9aW5wdXRbdHlwZT1yYW5nZV0uc2V0dGluZ3MtcmFuZ2U6Oi13ZWJraXQtc2xpZGVyLXRodW1iey13ZWJraXQtYXBwZWFyYW5jZTpub25lO2FwcGVhcmFuY2U6bm9uZTt3aWR0aDoyMHB4O2hlaWdodDoyMHB4O2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6bm9uZTtib3gtc2hhZG93OjAgMnB4IDZweCAjMTQwZTA4MzgsMCAwIDAgLjVweCAjN2Q1YjM5MWE7bWFyZ2luLXRvcDotOHB4O3RyYW5zaXRpb246dHJhbnNmb3JtIC4xNnMgZWFzZSxib3gtc2hhZG93IC4xNnMgZWFzZX1pbnB1dFt0eXBlPXJhbmdlXS5zZXR0aW5ncy1yYW5nZTpob3Zlcjo6LXdlYmtpdC1zbGlkZXItdGh1bWJ7dHJhbnNmb3JtOnNjYWxlKDEuMDgpfWlucHV0W3R5cGU9cmFuZ2VdLnNldHRpbmdzLXJhbmdlOmFjdGl2ZTo6LXdlYmtpdC1zbGlkZXItdGh1bWJ7dHJhbnNmb3JtOnNjYWxlKDEuMTYpO2JveC1zaGFkb3c6MCA0cHggMTBweCAjMTQwZTA4NDcsMCAwIDAgOHB4ICNjNTY1M2QxZiwwIDAgMCAuNXB4ICM3ZDViMzkxYX1pbnB1dFt0eXBlPXJhbmdlXS5zZXR0aW5ncy1yYW5nZTpmb2N1cy12aXNpYmxlOjotd2Via2l0LXNsaWRlci10aHVtYntib3gtc2hhZG93OjAgMnB4IDZweCAjMTQwZTA4MzgsMCAwIDAgNHB4IHZhcigtLWFjY2VudC1tdXRlZCksMCAwIDAgLjVweCAjN2Q1YjM5MWF9aW5wdXRbdHlwZT1yYW5nZV0uc2V0dGluZ3MtcmFuZ2U6Oi1tb3otcmFuZ2UtdHJhY2t7aGVpZ2h0OjRweDtib3JkZXItcmFkaXVzOjJweDtiYWNrZ3JvdW5kOiM3ZDViMzkzMztib3JkZXI6bm9uZX1pbnB1dFt0eXBlPXJhbmdlXS5zZXR0aW5ncy1yYW5nZTo6LW1vei1yYW5nZS1wcm9ncmVzc3toZWlnaHQ6NHB4O2JvcmRlci1yYWRpdXM6MnB4O2JhY2tncm91bmQ6dmFyKC0tYWNjZW50KTtib3JkZXI6bm9uZX1pbnB1dFt0eXBlPXJhbmdlXS5zZXR0aW5ncy1yYW5nZTo6LW1vei1yYW5nZS10aHVtYnt3aWR0aDoyMHB4O2hlaWdodDoyMHB4O2JvcmRlcjpub25lO2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6I2ZmZjtjdXJzb3I6cG9pbnRlcjtib3gtc2hhZG93OjAgMnB4IDZweCAjMTQwZTA4MzgsMCAwIDAgLjVweCAjN2Q1YjM5MWE7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjE2cyBlYXNlfWlucHV0W3R5cGU9cmFuZ2VdLnNldHRpbmdzLXJhbmdlOmhvdmVyOjotbW96LXJhbmdlLXRodW1ie3RyYW5zZm9ybTpzY2FsZSgxLjA4KX1pbnB1dFt0eXBlPXJhbmdlXS5zZXR0aW5ncy1yYW5nZTphY3RpdmU6Oi1tb3otcmFuZ2UtdGh1bWJ7dHJhbnNmb3JtOnNjYWxlKDEuMTYpfS5zZXR0aW5ncy1yYW5nZS12YWx1ZXtmbGV4OjAgMCA0NHB4O3RleHQtYWxpZ246cmlnaHQ7Zm9udC1zaXplOi44MTI1cmVtO2ZvbnQtd2VpZ2h0OjYwMDtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7Zm9udC12YXJpYW50LW51bWVyaWM6dGFidWxhci1udW1zfS5zZXR0aW5ncy1yb3ctd2l0aC1hY3Rpb257ZGlzcGxheTpmbGV4O2dhcDo4cHg7YWxpZ24taXRlbXM6c3RyZXRjaH0uc2V0dGluZ3Mtcm93LXdpdGgtYWN0aW9uPi5maWVsZC1pbnB1dCwuc2V0dGluZ3Mtcm93LXdpdGgtYWN0aW9uPi5maWVsZC1zZWxlY3QsLnNldHRpbmdzLXJvdy13aXRoLWFjdGlvbj5zZWxlY3R7ZmxleDoxO21pbi13aWR0aDowfS5zZXR0aW5ncy1yb3ctd2l0aC1hY3Rpb24+LmJ0bntmbGV4LXNocmluazowfS5zZXR0aW5ncy1hYm91dC1yb3ctYWN0aW9ue2ZsZXgtd3JhcDpub3dyYXB9LnNldHRpbmdzLXZhbHVlLWZsZXh7ZmxleDoxO3RleHQtYWxpZ246cmlnaHR9LmZpbGUtcGlja2Vye3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEycHg7cGFkZGluZzo2cHggMTJweCA2cHggNnB4O2JhY2tncm91bmQ6I2ZmZmZmZmI4O2JvcmRlcjoxcHggZGFzaGVkIHJnYmEoMTI1LDkxLDU3LC4yNSk7Ym9yZGVyLXJhZGl1czoxMnB4O3RyYW5zaXRpb246Ym9yZGVyLWNvbG9yIC4xOHMsYmFja2dyb3VuZCAuMThzfS5maWxlLXBpY2tlcjpob3Zlcntib3JkZXItY29sb3I6dmFyKC0tYWNjZW50LXNvZnQsIHJnYmEoMTk3LCAxMDEsIDYxLCAuNDUpKTtiYWNrZ3JvdW5kOiNmZmZmZmZlNn0uZmlsZS1waWNrZXIuZmlsZS1waWNrZXItaGFzLWZpbGV7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjojYzU2NTNkNTk7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCNjNTY1M2QxNCwjZmZmZmZmZDkpfS5maWxlLXBpY2tlci1pbnB1dHtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxcHg7aGVpZ2h0OjFweDtvcGFjaXR5OjA7cG9pbnRlci1ldmVudHM6bm9uZX0uZmlsZS1waWNrZXItdHJpZ2dlcntkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NnB4O3BhZGRpbmc6OHB4IDE0cHg7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLHZhcigtLWFjY2VudCksY29sb3ItbWl4KGluIHNyZ2IsdmFyKC0tYWNjZW50KSA4MCUsIzAwMCAwJSkpO2NvbG9yOiNmZmY7Zm9udC1zaXplOi44MTI1cmVtO2ZvbnQtd2VpZ2h0OjYwMDtib3JkZXItcmFkaXVzOjlweDtjdXJzb3I6cG9pbnRlcjtmbGV4LXNocmluazowO3RyYW5zaXRpb246ZmlsdGVyIC4xNXMsdHJhbnNmb3JtIC4xNXMsYm94LXNoYWRvdyAuMTVzO2JveC1zaGFkb3c6dmFyKC0tc2hhZG93LXhzKTt1c2VyLXNlbGVjdDpub25lfS5maWxlLXBpY2tlci10cmlnZ2VyOmhvdmVye2ZpbHRlcjpicmlnaHRuZXNzKDEuMDUpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xcHgpO2JveC1zaGFkb3c6dmFyKC0tc2hhZG93LXNtKX0uZmlsZS1waWNrZXItdHJpZ2dlcjphY3RpdmV7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCl9LmZpbGUtcGlja2VyLWlucHV0OmZvY3VzLXZpc2libGUrLmZpbGUtcGlja2VyLXRyaWdnZXJ7b3V0bGluZToycHggc29saWQgdmFyKC0tYWNjZW50KTtvdXRsaW5lLW9mZnNldDoycHh9LmZpbGUtcGlja2VyLWljb257d2lkdGg6MTZweDtoZWlnaHQ6MTZweDtmbGV4LXNocmluazowfS5maWxlLXBpY2tlci1sYWJlbHt3aGl0ZS1zcGFjZTpub3dyYXB9LmZpbGUtcGlja2VyLW5hbWV7ZmxleDoxO21pbi13aWR0aDowO2ZvbnQtc2l6ZTouODEyNXJlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXA7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKX0uZmlsZS1waWNrZXIuZmlsZS1waWNrZXItaGFzLWZpbGUgLmZpbGUtcGlja2VyLW5hbWV7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtmb250LXdlaWdodDo1MDB9LnNldHRpbmdzLWFwcC1pY29uLWJsb2Nre21hcmdpbi1ib3R0b206MThweH0uc2V0dGluZ3MtYXBwLWljb24tcGlja2Vye2Rpc3BsYXk6ZmxleDtnYXA6MTJweDtmbGV4LXdyYXA6d3JhcH0uc2V0dGluZ3MtYXBwLWljb24tb3B0aW9ue2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2cHg7cGFkZGluZzoxMHB4O2JvcmRlci1yYWRpdXM6MTRweDtiYWNrZ3JvdW5kOiNmZmZmZmY4Yztib3JkZXI6MXB4IHNvbGlkIHJnYmEoMTI1LDkxLDU3LC4xMik7Y3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjpib3JkZXItY29sb3IgLjE4cyxiYWNrZ3JvdW5kIC4xOHMsdHJhbnNmb3JtIC4xOHMsYm94LXNoYWRvdyAuMThzO21pbi13aWR0aDo4NHB4fS5zZXR0aW5ncy1hcHAtaWNvbi1vcHRpb246aG92ZXJ7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTFweCk7Ym9yZGVyLWNvbG9yOiNjNTY1M2Q0ZDtiYWNrZ3JvdW5kOiNmZmZmZmZjNztib3gtc2hhZG93OnZhcigtLXNoYWRvdy14cyl9LnNldHRpbmdzLWFwcC1pY29uLW9wdGlvbi5zZWxlY3RlZCwuc2V0dGluZ3MtYXBwLWljb24tb3B0aW9uW2FyaWEtcHJlc3NlZD10cnVlXXtib3JkZXItY29sb3I6dmFyKC0tYWNjZW50KTtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxMzVkZWcsI2M1NjUzZDI0LCNjNTY1M2QwYSk7Ym94LXNoYWRvdzppbnNldCAwIDAgMCAxcHggI2M1NjUzZDMzfS5zZXR0aW5ncy1hcHAtaWNvbi1wcmV2aWV3e3dpZHRoOjU2cHg7aGVpZ2h0OjU2cHg7Ym9yZGVyLXJhZGl1czoxMnB4O292ZXJmbG93OmhpZGRlbjtiYWNrZ3JvdW5kOnZhcigtLWJnLXRlcnRpYXJ5KTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXJ9LnNldHRpbmdzLWFwcC1pY29uLWxhYmVse2ZvbnQtc2l6ZTouNzJyZW07Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2ZvbnQtd2VpZ2h0OjUwMH0uc2V0dGluZ3MtY29ubmVjdC11cmwtdGV4dHtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8sIG1vbm9zcGFjZSk7Zm9udC1zaXplOjEycHg7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTt3b3JkLWJyZWFrOmJyZWFrLWFsbDt1c2VyLXNlbGVjdDphbGw7LXdlYmtpdC11c2VyLXNlbGVjdDphbGx9QG1lZGlhKG1heC13aWR0aDo2NDBweCl7LnNldHRpbmdzLXRvZ2dsZS1yb3csLnNldHRpbmdzLXJhbmdlLXJvd3twYWRkaW5nOjEwcHggMTJweH0uc2V0dGluZ3MtdG9nZ2xlLXJvd3tmbGV4LXdyYXA6d3JhcH0uc2V0dGluZ3MtY2FyZC1hY3Rpb25ze2p1c3RpZnktY29udGVudDpzdHJldGNofS5zZXR0aW5ncy1jYXJkLWFjdGlvbnMgLmJ0bntmbGV4OjE7bWluLXdpZHRoOjB9LmZpbGUtcGlja2Vye2ZsZXgtd3JhcDp3cmFwO3BhZGRpbmc6OHB4fS5maWxlLXBpY2tlci10cmlnZ2Vye2ZsZXg6MSAxIGF1dG87anVzdGlmeS1jb250ZW50OmNlbnRlcn0uZmlsZS1waWNrZXItbmFtZXtmbGV4OjEgMSAxMDAlO3RleHQtYWxpZ246Y2VudGVyO3BhZGRpbmc6MCA0cHh9LnNldHRpbmdzLXJvdy13aXRoLWFjdGlvbntmbGV4LXdyYXA6d3JhcH0uc2V0dGluZ3Mtcm93LXdpdGgtYWN0aW9uPi5idG57ZmxleDoxfX0udG9wYmFyLWdpdC1zbG90e2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyfS50b3BiYXItZ2l0LXNsb3Q6ZW1wdHl7ZGlzcGxheTpub25lfS50b3BiYXItZ2l0LWJhZGdle2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo1cHg7aGVpZ2h0OjMycHg7cGFkZGluZzowIDEwcHg7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1zYW5zKTtmb250LXNpemU6LjcycmVtO2ZvbnQtd2VpZ2h0OjUwMDtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXI6MXB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLXNtKTtjdXJzb3I6cG9pbnRlcjt3aGl0ZS1zcGFjZTpub3dyYXA7dHJhbnNpdGlvbjphbGwgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KTtib3gtc2l6aW5nOmJvcmRlci1ib3g7bGluZS1oZWlnaHQ6MX0udG9wYmFyLWdpdC1iYWRnZTpob3ZlcntiYWNrZ3JvdW5kOiNmZmZmZmY4MDtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpfS50b3BiYXItZ2l0LWJhZGdlOmFjdGl2ZXt0cmFuc2Zvcm06c2NhbGUoLjk2KX0udG9wYmFyLWdpdC1pY29ue2ZsZXgtc2hyaW5rOjA7b3BhY2l0eTouODV9LnRvcGJhci1naXQtYnJhbmNoe2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubywgbW9ub3NwYWNlKTtmb250LXdlaWdodDo2MDA7bWF4LXdpZHRoOjEyZW07b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXN9LnRvcGJhci1naXQtY291bnR7Y29sb3I6dmFyKC0tYWNjZW50KTtmb250LXdlaWdodDo3MDA7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vLCBtb25vc3BhY2UpfS50b3BiYXItZ2l0LWNsZWFue2NvbG9yOiMzY2EwNWFkOTtmb250LXdlaWdodDo3MDA7Zm9udC1zaXplOi43OHJlbX0ucXVpY2stY29tbWl0LW1vZGFse21heC13aWR0aDo1NDBweH0ucXVpY2stY29tbWl0LW1vZGFsIC5tb2RhbC1ib2R5e2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjEycHh9LnFjLWVtcHR5e2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO3BhZGRpbmc6NnB4IDA7dGV4dC1hbGlnbjpjZW50ZXI7Zm9udC1zdHlsZTppdGFsaWN9LnFjLWZpbGUtcm93e2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjlweDtsaW5lLWhlaWdodDoxLjY7cGFkZGluZzoxcHggMnB4O2JvcmRlci1yYWRpdXM6NXB4fS5xYy1maWxlLXJvdzpob3ZlcntiYWNrZ3JvdW5kOiM3ZDViMzkwZn0ucWMtZmlsZS1iYWRnZXtmbGV4LXNocmluazowO3dpZHRoOjE3cHg7aGVpZ2h0OjE3cHg7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtib3JkZXItcmFkaXVzOjRweDtmb250LXNpemU6LjY2cmVtO2ZvbnQtd2VpZ2h0OjgwMDtsZXR0ZXItc3BhY2luZzowO2xpbmUtaGVpZ2h0OjE7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1zYW5zKX0ucWMtYmFkZ2UtYWRke2NvbG9yOiMyMjgwNDJmYTtiYWNrZ3JvdW5kOiMzY2EwNWEyOX0ucWMtYmFkZ2UtbW9ke2NvbG9yOiNhYTZlMGVmYTtiYWNrZ3JvdW5kOiNkYzk2MWUyOX0ucWMtYmFkZ2UtZGVse2NvbG9yOiNiZTM4MzhmYTtiYWNrZ3JvdW5kOiNjODQ2NDYyNn0ucWMtYmFkZ2UtcmVue2NvbG9yOiM0ZTY0YmNmYTtiYWNrZ3JvdW5kOiM2ZTgyYzgyOX0ucWMtYmFkZ2UtdW50cmFja2Vke2NvbG9yOiMyMjgwNDJmMjtiYWNrZ3JvdW5kOiMzY2EwNWExZn0ucWMtYmFkZ2UtaWdub3JlZCwucWMtYmFkZ2Utb3RoZXJ7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7YmFja2dyb3VuZDojNzg3ODc4MWZ9LnFjLWZpbGUtcGF0aHtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXA7ZmxleDoxIDEgYXV0bzttaW4td2lkdGg6MH0ucWMtZmlsZS1kaXJ7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCl9LnFjLWZpbGUtbmFtZXtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO2ZvbnQtd2VpZ2h0OjUwMH0ucWMtc3VibW9kdWxlLWJhZGdle2ZsZXgtc2hyaW5rOjA7cGFkZGluZzoxcHggNnB4O2JvcmRlci1yYWRpdXM6OHB4O2JhY2tncm91bmQ6IzhjNjRjODI5O2NvbG9yOiM2ZTQ2YjRmMjtmb250LXNpemU6LjY4cmVtO2ZvbnQtd2VpZ2h0OjYwMDtsZXR0ZXItc3BhY2luZzouMDJlbTt3aGl0ZS1zcGFjZTpub3dyYXB9LnFjLW1lc3NhZ2UtaGVhZGVye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47Z2FwOjhweH0ucWMtYWktYnRue2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo1cHg7Y29sb3I6dmFyKC0tYWNjZW50KX0ucWMtYWktYnRuIHN2Z3tjb2xvcjp2YXIoLS1hY2NlbnQpO2ZsZXgtc2hyaW5rOjB9LnFjLWFpLWJ0bjpkaXNhYmxlZHtvcGFjaXR5Oi41O2N1cnNvcjpub3QtYWxsb3dlZDtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKX0ucWMtYWktYnRuOmRpc2FibGVkIHN2Z3tjb2xvcjp2YXIoLS10ZXh0LW11dGVkKX0ucWMtbWVzc2FnZS1pbnB1dHtyZXNpemU6dmVydGljYWw7bWluLWhlaWdodDo2OHB4O2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubywgbW9ub3NwYWNlKTtmb250LXNpemU6Ljg0cmVtO2xpbmUtaGVpZ2h0OjEuNTV9LnFjLXRhZy1maWVsZC1pbnB1dHtmbGV4OjEgMSBhdXRvO21pbi13aWR0aDowO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubywgbW9ub3NwYWNlKTtmb250LXNpemU6LjgycmVtfS5xYy10YWctZmllbGQtaW5wdXQ6ZGlzYWJsZWR7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7YmFja2dyb3VuZDojN2Q1YjM5MGE7Ym9yZGVyLWNvbG9yOiM3ZDViMzkxNDtjdXJzb3I6ZGVmYXVsdDtib3gtc2hhZG93Om5vbmV9LnF1aWNrLWNvbW1pdC1tb2RhbCAud29ya3RyZWUtbWVyZ2UtYWN0aW9uc3tkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kO2dhcDo4cHg7bWFyZ2luLXRvcDo0cHh9LnF1aWNrLWNvbW1pdC1tb2RhbCAubW9kYWwtYm9keXtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoxNHB4fS5xYy1zZWN0aW9uLXRpdGxle2ZvbnQtc2l6ZTouNzJyZW07Zm9udC13ZWlnaHQ6NzAwO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtsZXR0ZXItc3BhY2luZzouMDdlbTtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSl9LnF1aWNrLWNvbW1pdC1tb2RhbHttYXgtd2lkdGg6NjIwcHh9LnF1aWNrLWNvbW1pdC1tb2RhbCAubW9kYWwtYm9keXtnYXA6MH0ucWMtcmVsZWFzZS1wYW5lbCwucWMtcmVzdWx0LXBhbmVse2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjE0cHh9LnFjLXBhaXJ7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczo3MnB4IG1pbm1heCgwLDFmcik7Z2FwOjEycHg7YWxpZ24taXRlbXM6c3RhcnR9LnFjLXBhaXItbGFiZWx7cGFkZGluZy10b3A6OXB4O2ZvbnQtc2l6ZTouNzJyZW07Zm9udC13ZWlnaHQ6ODAwO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2xldHRlci1zcGFjaW5nOi4wNmVtO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZX0ucWMtcGFpci1mbG93e2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6bWlubWF4KDAsLjlmcikgMjRweCBtaW5tYXgoMCwxLjFmcik7Z2FwOjhweDthbGlnbi1pdGVtczpjZW50ZXI7bWluLXdpZHRoOjB9LnFjLXBhaXItdmFsdWV7bWluLXdpZHRoOjA7bWluLWhlaWdodDozOHB4O2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjhweDtwYWRkaW5nOjhweCAxMHB4O2JvcmRlcjoxcHggc29saWQgcmdiYSgxMjUsOTEsNTcsLjEyKTtib3JkZXItcmFkaXVzOjhweDtiYWNrZ3JvdW5kOiNmZmZmZmY4NTtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7b3ZlcmZsb3c6aGlkZGVufS5xYy1wYWlyLXZhbHVlLS10b3tiYWNrZ3JvdW5kOiNmZmZmZmZkNjtib3JkZXItY29sb3I6I2M1NjUzZDM4O2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSl9LnFjLXBhaXItdmFsdWUgY29kZXtmbGV4LXNocmluazowO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubywgbW9ub3NwYWNlKTtmb250LXNpemU6Ljc4cmVtO2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjp2YXIoLS1hY2NlbnQpO2JhY2tncm91bmQ6I2M1NjUzZDE3O2JvcmRlci1yYWRpdXM6NXB4O3BhZGRpbmc6MnB4IDZweH0ucWMtcGFpci12YWx1ZSBzcGFue21pbi13aWR0aDowO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcDtmb250LXNpemU6LjgycmVtfS5xYy1wYWlyLS1jb21taXQgLnFjLXBhaXItZmxvd3thbGlnbi1pdGVtczpzdHJldGNofS5xYy1wYWlyLS1jb21taXQgLnFjLXBhaXItdmFsdWV7bWluLWhlaWdodDo3NnB4O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnR9LnFjLXBhaXItLWNvbW1pdCAucWMtcGFpci12YWx1ZS0tdG97cGFkZGluZzowO2JvcmRlcjowO2JhY2tncm91bmQ6dHJhbnNwYXJlbnR9LnFjLXBhaXItLWNvbW1pdCAucWMtbWVzc2FnZS1pbnB1dHttaW4taGVpZ2h0Ojc2cHg7d2lkdGg6MTAwJTtyZXNpemU6dmVydGljYWx9LnFjLXBhaXItLXRhZyAucWMtcGFpci12YWx1ZS0tdG97cGFkZGluZzowO2JvcmRlcjowO2JhY2tncm91bmQ6dHJhbnNwYXJlbnR9LnFjLXBhaXItLXRhZyAucWMtdGFnLWZpZWxkLWlucHV0e3dpZHRoOjEwMCU7bWluLWhlaWdodDozOHB4fS5xYy1wYWlyLWFycm93e2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7Zm9udC13ZWlnaHQ6ODAwO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubywgbW9ub3NwYWNlKX0ucWMtbXV0ZWR7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7Zm9udC1zdHlsZTppdGFsaWN9LnFjLW1vZGFsLWFjdGlvbnMsLnFjLXJlc3VsdC1hY3Rpb25ze2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7Z2FwOjhweH0ucWMtcmVzdWx0LXBhbmVse3BhZGRpbmctdG9wOjJweH0ucWMtcmVzdWx0LXB1c2hlZHtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjttaW4taGVpZ2h0OjMwcHg7cGFkZGluZzowIDEwcHg7Ym9yZGVyLXJhZGl1czo5OTlweDtjb2xvcjojMjg4MjQ2ZjI7YmFja2dyb3VuZDojM2NhMDVhMWY7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDYwLDE2MCw5MCwuMjQpO2ZvbnQtc2l6ZTouNzhyZW07Zm9udC13ZWlnaHQ6NzAwfS5xYy1kb2NrLXdyYXB7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6OHB4O3BhZGRpbmctdG9wOjJweH0ucWMtZG9jay13cmFwW2RhdGEtZGlzYWJsZWQ9IjEiXXtvcGFjaXR5Oi41NTtwb2ludGVyLWV2ZW50czpub25lfS5xYy1kb2NrLWJ1c3l7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjhweDthbGlnbi1zZWxmOmZsZXgtc3RhcnQ7cGFkZGluZzoxMHB4IDE0cHg7Ym9yZGVyLXJhZGl1czoxMnB4O2JhY2tncm91bmQ6I2M1NjUzZDFhO2JvcmRlcjoxcHggc29saWQgcmdiYSgxOTcsMTAxLDYxLC4yKTtjb2xvcjp2YXIoLS1hY2NlbnQpO2ZvbnQtc2l6ZTouODJyZW07Zm9udC13ZWlnaHQ6NzAwfS5xYy1kb2NrLWJ1c3ktZG90e3dpZHRoOjhweDtoZWlnaHQ6OHB4O2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6dmFyKC0tYWNjZW50KTthbmltYXRpb246cWMtZG9jay1idXN5LXB1bHNlIDEuMnMgZWFzZS1pbi1vdXQgaW5maW5pdGV9QGtleWZyYW1lcyBxYy1kb2NrLWJ1c3ktcHVsc2V7MCUsdG97b3BhY2l0eTouNDt0cmFuc2Zvcm06c2NhbGUoLjg1KX01MCV7b3BhY2l0eToxO3RyYW5zZm9ybTpzY2FsZSgxLjE1KX19LnFjLWRvY2stc3RhZ2V7LS1xYy10b25lOiB2YXIoLS1hY2NlbnQpOy0tcWMtdG9uZS1zb2Z0OiByZ2JhKDE5NywgMTAxLCA2MSwgLjIpO2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6bWlubWF4KDAsMWZyKSA5NnB4O2dhcDoxMHB4O2hlaWdodDoxNjhweDtwYWRkaW5nOjhweDtib3JkZXItcmFkaXVzOjE2cHg7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDEyNSw5MSw1NywuMTYpO2JhY2tncm91bmQ6cmFkaWFsLWdyYWRpZW50KDEyMCUgMTIwJSBhdCAzMCUgMzAlLCNmZmZmZmY4YywjZmZmNWViMjkpLGxpbmVhci1ncmFkaWVudCgxODBkZWcsI2ZmZmZmZjc1LCNmZmY1ZWIzOCk7Ym94LXNoYWRvdzppbnNldCAwIDFweCAjZmZmZmZmYjMsMCAxcHggM3B4ICM1OTNhMjAwZDt1c2VyLXNlbGVjdDpub25lfS5xYy1kb2NrLXN0YWdlW2RhdGEtYWN0aW9uPWNvbW1pdC10YWddey0tcWMtdG9uZTogIzRhNmZhNTstLXFjLXRvbmUtc29mdDogcmdiYSg3NCwgMTExLCAxNjUsIC4yMil9LnFjLWRvY2stc3RhZ2VbZGF0YS1hY3Rpb249Y29tbWl0LXB1c2hdey0tcWMtdG9uZTogIzRmN2E1ODstLXFjLXRvbmUtc29mdDogcmdiYSg3OSwgMTIyLCA4OCwgLjIyKX0ucWMtZG9jay1zdGFnZVtkYXRhLWFjdGlvbj1jb21taXQtdGFnLXB1c2hdey0tcWMtdG9uZTogIzdjNWFhODstLXFjLXRvbmUtc29mdDogcmdiYSgxMjQsIDkwLCAxNjgsIC4yNCl9LnFjLWRvY2stZmllbGR7cG9zaXRpb246cmVsYXRpdmU7bWluLXdpZHRoOjA7Ym9yZGVyLXJhZGl1czoxMnB4O2JhY2tncm91bmQ6cmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCg0NWRlZyxyZ2JhKDEyNSw5MSw1NywuMDM1KSAwIDhweCx0cmFuc3BhcmVudCA4cHggMTZweCk7dG91Y2gtYWN0aW9uOm5vbmU7b3ZlcmZsb3c6aGlkZGVufS5xYy1kb2NrLWNsdXN0ZXJ7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3RvcDowO2JvcmRlci1yYWRpdXM6MTRweDtiYWNrZ3JvdW5kOmNvbG9yLW1peChpbiBzcmdiLHZhcigtLXFjLXRvbmUpIDEwJSx0cmFuc3BhcmVudCk7Ym9yZGVyOjEuNXB4IGRhc2hlZCBjb2xvci1taXgoaW4gc3JnYix2YXIoLS1xYy10b25lKSAzOCUsdHJhbnNwYXJlbnQpO2JveC1zaGFkb3c6MCA0cHggMTRweCB2YXIoLS1xYy10b25lLXNvZnQpO3BvaW50ZXItZXZlbnRzOm5vbmU7ei1pbmRleDowO29wYWNpdHk6MDt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMjJzIGN1YmljLWJlemllciguMjIsMSwuMzYsMSksd2lkdGggLjIycyBjdWJpYy1iZXppZXIoLjIyLDEsLjM2LDEpLGhlaWdodCAuMjJzIGN1YmljLWJlemllciguMjIsMSwuMzYsMSksb3BhY2l0eSAuMThzIGVhc2UsYmFja2dyb3VuZCAuMnMgZWFzZSxib3JkZXItY29sb3IgLjJzIGVhc2V9LnFjLWRvY2stY2x1c3Rlci5pcy1hY3RpdmV7b3BhY2l0eToxfS5xYy1jaGlwe3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDt0b3A6MDtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6N3B4O2hlaWdodDozOHB4O3BhZGRpbmc6MCAxNHB4O2JvcmRlcjoxcHggc29saWQgcmdiYSgxMjUsOTEsNTcsLjIyKTtib3JkZXItcmFkaXVzOjk5OXB4O2JhY2tncm91bmQ6I2ZmZmZmZmViO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtmb250LWZhbWlseTp2YXIoLS1mb250LXNhbnMpO2ZvbnQtc2l6ZTouODJyZW07Zm9udC13ZWlnaHQ6NzAwO2xldHRlci1zcGFjaW5nOi4wMWVtO3doaXRlLXNwYWNlOm5vd3JhcDtjdXJzb3I6Z3JhYjt0b3VjaC1hY3Rpb246bm9uZTtib3gtc2hhZG93OjAgMnB4IDZweCAjNTkzYTIwMTQ7ei1pbmRleDoyO3RyYW5zaXRpb246Ym94LXNoYWRvdyAuMThzIGVhc2UsYm9yZGVyLWNvbG9yIC4xOHMgZWFzZSxiYWNrZ3JvdW5kIC4xOHMgZWFzZSxjb2xvciAuMThzIGVhc2V9LnFjLWNoaXAucWMtY2hpcC0tYW5pbXt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMjhzIGN1YmljLWJlemllciguMjIsMSwuMzYsMSksYm94LXNoYWRvdyAuMThzIGVhc2UsYm9yZGVyLWNvbG9yIC4xOHMgZWFzZSxiYWNrZ3JvdW5kIC4xOHMgZWFzZSxjb2xvciAuMThzIGVhc2V9LnFjLWNoaXAuaXMtZ3JhYmJpbmd7Y3Vyc29yOmdyYWJiaW5nO3otaW5kZXg6NTtib3gtc2hhZG93OjAgMTJweCAyNnB4ICM1OTNhMjAzOH0ucWMtY2hpcDpkaXNhYmxlZHtjdXJzb3I6bm90LWFsbG93ZWR9LnFjLWNoaXA6bm90KDpkaXNhYmxlZCk6aG92ZXJ7Ym9yZGVyLWNvbG9yOnZhcigtLXFjLXRvbmUpfS5xYy1jaGlwLWRvdHt3aWR0aDo5cHg7aGVpZ2h0OjlweDtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOiM3ZDViMzk0ZDtib3gtc2hhZG93Omluc2V0IDAgMCAwIDJweCAjZmZmOTt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjE4cyBlYXNlLHRyYW5zZm9ybSAuMThzIGVhc2V9LnFjLWNoaXAtLWNvbW1pdCAucWMtY2hpcC1kb3R7YmFja2dyb3VuZDp2YXIoLS1hY2NlbnQpfS5xYy1jaGlwLS10YWcgLnFjLWNoaXAtZG90e2JhY2tncm91bmQ6IzRhNmZhNX0ucWMtY2hpcC0tcHVzaCAucWMtY2hpcC1kb3R7YmFja2dyb3VuZDojNGY3YTU4fS5xYy1jaGlwLS1zdWIgLnFjLWNoaXAtZG90e2JhY2tncm91bmQ6IzNhOGE4Zn0ucWMtY2hpcC0tY29tbWl0e2JvcmRlci1jb2xvcjpjb2xvci1taXgoaW4gc3JnYix2YXIoLS1hY2NlbnQpIDMwJSxyZ2JhKDEyNSw5MSw1NywuMikpfS5xYy1jaGlwLS10YWd7Ym9yZGVyLWNvbG9yOmNvbG9yLW1peChpbiBzcmdiLCM0YTZmYTUgMzAlLHJnYmEoMTI1LDkxLDU3LC4yKSl9LnFjLWNoaXAtLXB1c2h7Ym9yZGVyLWNvbG9yOmNvbG9yLW1peChpbiBzcmdiLCM0ZjdhNTggMzAlLHJnYmEoMTI1LDkxLDU3LC4yKSl9LnFjLWNoaXAtLXN1Yntib3JkZXItY29sb3I6Y29sb3ItbWl4KGluIHNyZ2IsIzNhOGE4ZiAzMCUscmdiYSgxMjUsOTEsNTcsLjIpKX0ucWMtY2hpcC5pcy1ncmFiYmluZywucWMtY2hpcC5pcy1hdHRhY2hlZHtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO2JveC1zaGFkb3c6MCAxMnB4IDI2cHggdmFyKC0tcWMtdG9uZS1zb2Z0KTt6LWluZGV4OjV9LnFjLWNoaXAuaXMtZ3JhYmJpbmcgLnFjLWNoaXAtZG90LC5xYy1jaGlwLmlzLWF0dGFjaGVkIC5xYy1jaGlwLWRvdHt0cmFuc2Zvcm06c2NhbGUoMS4xKX0ucWMtY2hpcC0tY29tbWl0LmlzLWdyYWJiaW5nLC5xYy1jaGlwLS1jb21taXQuaXMtYXR0YWNoZWR7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCNmZmYsY29sb3ItbWl4KGluIHNyZ2IsdmFyKC0tYWNjZW50KSAxNiUsI2ZmZikpO2JvcmRlci1jb2xvcjpjb2xvci1taXgoaW4gc3JnYix2YXIoLS1hY2NlbnQpIDQ2JSx0cmFuc3BhcmVudCl9LnFjLWNoaXAtLXRhZy5pcy1ncmFiYmluZywucWMtY2hpcC0tdGFnLmlzLWF0dGFjaGVke2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZywjZmZmLGNvbG9yLW1peChpbiBzcmdiLCM0YTZmYTUgMTYlLCNmZmYpKTtib3JkZXItY29sb3I6Y29sb3ItbWl4KGluIHNyZ2IsIzRhNmZhNSA0NiUsdHJhbnNwYXJlbnQpfS5xYy1jaGlwLS1wdXNoLmlzLWdyYWJiaW5nLC5xYy1jaGlwLS1wdXNoLmlzLWF0dGFjaGVke2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZywjZmZmLGNvbG9yLW1peChpbiBzcmdiLCM0ZjdhNTggMTYlLCNmZmYpKTtib3JkZXItY29sb3I6Y29sb3ItbWl4KGluIHNyZ2IsIzRmN2E1OCA0NiUsdHJhbnNwYXJlbnQpfS5xYy1jaGlwLS1zdWIuaXMtZ3JhYmJpbmcsLnFjLWNoaXAtLXN1Yi5pcy1hdHRhY2hlZHtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcsI2ZmZixjb2xvci1taXgoaW4gc3JnYiwjM2E4YThmIDE2JSwjZmZmKSk7Ym9yZGVyLWNvbG9yOmNvbG9yLW1peChpbiBzcmdiLCMzYThhOGYgNDYlLHRyYW5zcGFyZW50KX0ucWMtZG9jay1sYXVuY2h7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtnYXA6NHB4O2JvcmRlci1yYWRpdXM6MTRweDtib3JkZXI6MS41cHggZGFzaGVkIHJnYmEoMTI1LDkxLDU3LC4zMik7YmFja2dyb3VuZDojZmZmNjtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtjdXJzb3I6cG9pbnRlcjt0b3VjaC1hY3Rpb246bm9uZTt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjJzIGVhc2UsYm9yZGVyLWNvbG9yIC4ycyBlYXNlLGNvbG9yIC4ycyBlYXNlLHRyYW5zZm9ybSAuMnMgZWFzZSxib3gtc2hhZG93IC4ycyBlYXNlfS5xYy1kb2NrLWxhdW5jaDpub3QoOmRpc2FibGVkKTpob3Zlcntib3JkZXItY29sb3I6dmFyKC0tcWMtdG9uZSk7Y29sb3I6dmFyKC0tcWMtdG9uZSk7YmFja2dyb3VuZDpjb2xvci1taXgoaW4gc3JnYix2YXIoLS1xYy10b25lKSA4JSxyZ2JhKDI1NSwyNTUsMjU1LC41KSl9LnFjLWRvY2stbGF1bmNoOmRpc2FibGVke2N1cnNvcjpub3QtYWxsb3dlZH0ucWMtZG9jay1sYXVuY2gtYXJyb3d7ZGlzcGxheTppbmxpbmUtZmxleDt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMnMgZWFzZX0ucWMtZG9jay1sYXVuY2gtbGFiZWx7Zm9udC1zaXplOi43MnJlbTtmb250LXdlaWdodDo4MDA7bGV0dGVyLXNwYWNpbmc6LjA0ZW19LnFjLWRvY2stc3RhZ2VbZGF0YS1ob3Q9IjEiXSAucWMtZG9jay1sYXVuY2h7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjp2YXIoLS1xYy10b25lKTtiYWNrZ3JvdW5kOnZhcigtLXFjLXRvbmUpO2NvbG9yOiNmZmY7dHJhbnNmb3JtOnNjYWxlKDEuMDQpO2JveC1zaGFkb3c6MCA4cHggMjJweCB2YXIoLS1xYy10b25lLXNvZnQpLDAgMCAwIDVweCBjb2xvci1taXgoaW4gc3JnYix2YXIoLS1xYy10b25lKSAxOCUsdHJhbnNwYXJlbnQpfS5xYy1kb2NrLXN0YWdlW2RhdGEtaG90PSIxIl0gLnFjLWRvY2stbGF1bmNoLWFycm93e3RyYW5zZm9ybTp0cmFuc2xhdGUoM3B4KX0ucWMtZG9jay1oaW50e21pbi1oZWlnaHQ6MWVtO2ZvbnQtc2l6ZTouN3JlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTt0ZXh0LWFsaWduOmNlbnRlcjtsZXR0ZXItc3BhY2luZzouMDJlbTtvcGFjaXR5Oi44fUBtZWRpYShwcmVmZXJzLXJlZHVjZWQtbW90aW9uOnJlZHVjZSl7LnFjLWNoaXAsLnFjLWNoaXAtLWFuaW0sLnFjLWRvY2stY2x1c3RlciwucWMtZG9jay1sYXVuY2gsLnFjLWRvY2stYnVzeS1kb3R7YW5pbWF0aW9uOm5vbmUhaW1wb3J0YW50O3RyYW5zaXRpb246bm9uZSFpbXBvcnRhbnR9fUBtZWRpYShtYXgtd2lkdGg6NzIwcHgpey50b3BiYXItZ2l0LWJyYW5jaHttYXgtd2lkdGg6OGVtfS50b3BiYXItZ2l0LWJhZGdle3BhZGRpbmc6MCA4cHg7Zm9udC1zaXplOi43cmVtfS5xdWljay1jb21taXQtbW9kYWx7d2lkdGg6MTAwJTttYXgtd2lkdGg6MTAwJTttYXgtaGVpZ2h0OmNhbGMoMTAwZHZoIC0gbWF4KDE2cHgsdmFyKC0td2FuZC1zYWZlLXRvcCkpIC0gbWF4KDEycHgsdmFyKC0td2FuZC1zYWZlLWJvdHRvbSkpKX0ucXVpY2stY29tbWl0LW1vZGFsIC5tb2RhbC1oZWFkZXJ7cGFkZGluZzoxNHB4IDE2cHggMTJweH0ucXVpY2stY29tbWl0LW1vZGFsIC5tb2RhbC10aXRsZXtmb250LXNpemU6MS4wNXJlbX0ucXVpY2stY29tbWl0LW1vZGFsIC5tb2RhbC1zdWJ0aXRsZXttYXJnaW4tdG9wOjRweDtmb250LXNpemU6Ljc4cmVtO2xpbmUtaGVpZ2h0OjEuMzV9LnF1aWNrLWNvbW1pdC1tb2RhbCAubW9kYWwtYm9keXtwYWRkaW5nOjE0cHggMTZweCBjYWxjKDE2cHggKyB2YXIoLS13YW5kLXNhZmUtYm90dG9tKSl9LnFjLXJlbGVhc2UtcGFuZWwsLnFjLXJlc3VsdC1wYW5lbHtnYXA6MTJweH0ucWMtcGFpcntncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyO2dhcDo1cHh9LnFjLXBhaXItbGFiZWx7cGFkZGluZy10b3A6MDtmb250LXNpemU6LjY4cmVtfS5xYy1wYWlyLWZsb3d7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmcjtnYXA6N3B4O3Bvc2l0aW9uOnJlbGF0aXZlfS5xYy1wYWlyLWFycm93e3dpZHRoOjI4cHg7aGVpZ2h0OjIwcHg7anVzdGlmeS1zZWxmOmNlbnRlcjt0cmFuc2Zvcm06cm90YXRlKDkwZGVnKTtmb250LXNpemU6MXJlbTtsaW5lLWhlaWdodDoxfS5xYy1wYWlyLXZhbHVle21pbi1oZWlnaHQ6MzZweDtwYWRkaW5nOjhweCAxMHB4fS5xYy1wYWlyLXZhbHVlIGNvZGV7Zm9udC1zaXplOi43NnJlbX0ucWMtcGFpci12YWx1ZSBzcGFue2ZvbnQtc2l6ZTouOHJlbX0ucWMtcGFpci0tY29tbWl0IC5xYy1wYWlyLXZhbHVle21pbi1oZWlnaHQ6YXV0b30ucWMtcGFpci0tY29tbWl0IC5xYy1tZXNzYWdlLWlucHV0e21pbi1oZWlnaHQ6OTJweDtmb250LXNpemU6MTZweDtsaW5lLWhlaWdodDoxLjQ1fS5xYy1wYWlyLS10YWcgLnFjLXRhZy1maWVsZC1pbnB1dHttaW4taGVpZ2h0OjQ0cHg7Zm9udC1zaXplOjE2cHh9LnFjLWRvY2stc3RhZ2V7aGVpZ2h0OjIzNnB4O2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnI7Z3JpZC10ZW1wbGF0ZS1yb3dzOm1pbm1heCgwLDFmcikgNThweDtnYXA6OHB4O3BhZGRpbmc6OHB4O2JvcmRlci1yYWRpdXM6MTRweH0ucWMtZG9jay1maWVsZHttaW4taGVpZ2h0OjE2MHB4fS5xYy1jaGlwe2hlaWdodDozNnB4O3BhZGRpbmc6MCAxMnB4O2ZvbnQtc2l6ZTouOHJlbX0ucWMtZG9jay1sYXVuY2h7bWluLWhlaWdodDo1OHB4O2ZsZXgtZGlyZWN0aW9uOnJvdztnYXA6OHB4O2JvcmRlci1yYWRpdXM6MTNweH0ucWMtZG9jay1sYXVuY2gtbGFiZWx7Zm9udC1zaXplOi43OHJlbX0ucWMtZG9jay1zdGFnZVtkYXRhLWhvdD0iMSJdIC5xYy1kb2NrLWxhdW5jaC1hcnJvd3t0cmFuc2Zvcm06dHJhbnNsYXRlWSgycHgpfX0ud2FuZC1kaWFsb2ctYmFja2Ryb3B7cG9zaXRpb246Zml4ZWQ7aW5zZXQ6MDt6LWluZGV4OjkwMDA7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3BhZGRpbmctdG9wOm1heCgyNHB4LHZhcigtLXdhbmQtc2FmZS10b3ApKTtwYWRkaW5nLWJvdHRvbTptYXgoMjRweCx2YXIoLS13YW5kLXNhZmUtYm90dG9tKSk7cGFkZGluZy1sZWZ0Om1heCgyNHB4LHZhcigtLXdhbmQtc2FmZS1sZWZ0KSk7cGFkZGluZy1yaWdodDptYXgoMjRweCx2YXIoLS13YW5kLXNhZmUtcmlnaHQpKTtiYWNrZ3JvdW5kOiMxNDBlMDg1NztiYWNrZHJvcC1maWx0ZXI6Ymx1cigxOHB4KSBzYXR1cmF0ZSgxNDAlKTstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjpibHVyKDE4cHgpIHNhdHVyYXRlKDE0MCUpO2FuaW1hdGlvbjp3YW5kRGlhbG9nQmFja2Ryb3BJbiAuMjJzIGN1YmljLWJlemllciguMTYsMSwuMywxKSBib3RofS53YW5kLWRpYWxvZy1iYWNrZHJvcC5jbG9zaW5ne2FuaW1hdGlvbjp3YW5kRGlhbG9nQmFja2Ryb3BPdXQgLjE2cyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKSBib3RoO3BvaW50ZXItZXZlbnRzOm5vbmV9QGtleWZyYW1lcyB3YW5kRGlhbG9nQmFja2Ryb3BJbnswJXtvcGFjaXR5OjB9dG97b3BhY2l0eToxfX1Aa2V5ZnJhbWVzIHdhbmREaWFsb2dCYWNrZHJvcE91dHswJXtvcGFjaXR5OjF9dG97b3BhY2l0eTowfX0ud2FuZC1kaWFsb2d7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MTAwJTttYXgtd2lkdGg6NDIwcHg7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtiYWNrZ3JvdW5kOnJhZGlhbC1ncmFkaWVudCgxMjAlIDEyMCUgYXQgMCUgMCUsdmFyKC0tYWNjZW50LW11dGVkKSAwJSx0cmFuc3BhcmVudCA1NSUpLGxpbmVhci1ncmFkaWVudCgxODBkZWcsdmFyKC0tYmctZWxldmF0ZWQpIDAlLHZhcigtLWJnLXNlY29uZGFyeSkgMTAwJSk7Ym9yZGVyOi41cHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSk7Ym9yZGVyLXJhZGl1czoyMnB4O292ZXJmbG93OmhpZGRlbjtiYWNrZHJvcC1maWx0ZXI6Ymx1cig0MHB4KSBzYXR1cmF0ZSgxODAlKTstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjpibHVyKDQwcHgpIHNhdHVyYXRlKDE4MCUpO2JveC1zaGFkb3c6MCAyNHB4IDY0cHggLTEycHggIzU5M2EyMDQ3LDAgNnB4IDIwcHggLTZweCAjNTkzYTIwMjksMCAwIDAgLjVweCAjN2Q1YjM5MTQsaW5zZXQgMCAxcHggI2ZmZmZmZmIzO2FuaW1hdGlvbjp3YW5kRGlhbG9nSW4gLjI4cyBjdWJpYy1iZXppZXIoLjM0LDEuNCwuNjQsMSkgYm90aH0ud2FuZC1kaWFsb2ctYmFja2Ryb3AuY2xvc2luZyAud2FuZC1kaWFsb2d7YW5pbWF0aW9uOndhbmREaWFsb2dPdXQgLjE2cyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKSBib3RofUBrZXlmcmFtZXMgd2FuZERpYWxvZ0luezAle29wYWNpdHk6MDt0cmFuc2Zvcm06c2NhbGUoLjkyKSB0cmFuc2xhdGVZKDEwcHgpfXRve29wYWNpdHk6MTt0cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlWSgwKX19QGtleWZyYW1lcyB3YW5kRGlhbG9nT3V0ezAle29wYWNpdHk6MTt0cmFuc2Zvcm06c2NhbGUoMSl9dG97b3BhY2l0eTowO3RyYW5zZm9ybTpzY2FsZSguOTYpIHRyYW5zbGF0ZVkoNHB4KX19LndhbmQtZGlhbG9nLWhlYWRlcntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6ZmxleC1zdGFydDtnYXA6MTRweDtwYWRkaW5nOjIycHggMjRweCAxMnB4fS53YW5kLWRpYWxvZy1pY29ue2ZsZXgtc2hyaW5rOjA7d2lkdGg6NDBweDtoZWlnaHQ6NDBweDtib3JkZXItcmFkaXVzOjUwJTtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2ZvbnQtc2l6ZToyMHB4O2ZvbnQtd2VpZ2h0OjcwMDtsaW5lLWhlaWdodDoxO2JveC1zaGFkb3c6aW5zZXQgMCAxcHggI2ZmZmZmZjgwfS53YW5kLWRpYWxvZy1pY29uLmluZm97YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLHZhcigtLWFjY2VudC1zb2Z0KSAwJSx2YXIoLS1hY2NlbnQtaG92ZXIpIDEwMCUpO2NvbG9yOiNmZmZ9LndhbmQtZGlhbG9nLWljb24ud2FybmluZ3tiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcsI2YwYzg5MSAwJSx2YXIoLS13YXJuaW5nKSAxMDAlKTtjb2xvcjojZmZmfS53YW5kLWRpYWxvZy1pY29uLmRhbmdlcntiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcsI2Q5ODE3OCAwJSx2YXIoLS1kYW5nZXIpIDEwMCUpO2NvbG9yOiNmZmZ9LndhbmQtZGlhbG9nLWljb24uc3VjY2Vzc3tiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcsIzhjYWY5NCAwJSx2YXIoLS1zdWNjZXNzKSAxMDAlKTtjb2xvcjojZmZmfS53YW5kLWRpYWxvZy1pY29uLnF1ZXN0aW9ue2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZyx2YXIoLS1hY2NlbnQtc29mdCkgMCUsdmFyKC0tYWNjZW50KSAxMDAlKTtjb2xvcjojZmZmfS53YW5kLWRpYWxvZy10ZXh0d3JhcHtmbGV4OjEgMSBhdXRvO21pbi13aWR0aDowO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjZweDtwYWRkaW5nLXRvcDo0cHh9LndhbmQtZGlhbG9nLXRpdGxle2ZvbnQtc2l6ZToxLjA2MjVyZW07Zm9udC13ZWlnaHQ6NzAwO2xldHRlci1zcGFjaW5nOi0uMDFlbTtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO2xpbmUtaGVpZ2h0OjEuMzt3b3JkLWJyZWFrOmJyZWFrLXdvcmR9LndhbmQtZGlhbG9nLW1lc3NhZ2V7Zm9udC1zaXplOi45cmVtO2ZvbnQtd2VpZ2h0OjQwMDtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7bGluZS1oZWlnaHQ6MS41NTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDt3b3JkLWJyZWFrOmJyZWFrLXdvcmR9LndhbmQtZGlhbG9nLWJvZHl7cGFkZGluZzo0cHggMjRweCAxNHB4fS53YW5kLWRpYWxvZy1pbnB1dHt3aWR0aDoxMDAlO2JhY2tncm91bmQ6dmFyKC0tYmctc3VyZmFjZSk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlKTtib3JkZXItcmFkaXVzOjEycHg7cGFkZGluZzoxMXB4IDE0cHg7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1zYW5zKTtmb250LXNpemU6LjlyZW07Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtib3gtc2hhZG93Omluc2V0IDAgMXB4IDEuNXB4ICM3ZDViMzkwYTt0cmFuc2l0aW9uOmJvcmRlci1jb2xvciAuMTVzIGVhc2UsYm94LXNoYWRvdyAuMTVzIGVhc2UsYmFja2dyb3VuZCAuMTVzIGVhc2U7Ym94LXNpemluZzpib3JkZXItYm94fS53YW5kLWRpYWxvZy1pbnB1dDpmb2N1c3tvdXRsaW5lOm5vbmU7YmFja2dyb3VuZDp2YXIoLS1iZy1lbGV2YXRlZCk7Ym9yZGVyLWNvbG9yOnZhcigtLWFjY2VudCk7Ym94LXNoYWRvdzppbnNldCAwIDFweCAxLjVweCAjN2Q1YjM5MGEsMCAwIDAgM3B4IHZhcigtLWFjY2VudC1nbG93KX0ud2FuZC1kaWFsb2ctZm9vdGVye2Rpc3BsYXk6ZmxleDtnYXA6OHB4O2p1c3RpZnktY29udGVudDpmbGV4LWVuZDtwYWRkaW5nOjE0cHggMjBweCAyMHB4O2JvcmRlci10b3A6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpO21hcmdpbi10b3A6NnB4fS53YW5kLWRpYWxvZy1mb290ZXIgLmJ0bnttaW4td2lkdGg6ODRweH0ud2FuZC1kaWFsb2cgLmJ0bi1kYW5nZXJ7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLHZhcigtLWRhbmdlci1ob3ZlcikgMCUsdmFyKC0tZGFuZ2VyKSAxMDAlKTtjb2xvcjp2YXIoLS10ZXh0LWludmVyc2UpO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudDtib3gtc2hhZG93OjAgMXB4IDJweCB2YXIoLS1kYW5nZXItbXV0ZWQpLDAgNHB4IDEwcHggLTJweCB2YXIoLS1kYW5nZXItbXV0ZWQpLGluc2V0IDAgMXB4ICNmZmZmZmYzOCxpbnNldCAwIC0xcHggIzYwMWUxODJlfS53YW5kLWRpYWxvZyAuYnRuLWRhbmdlcjpob3ZlcntiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcsI2M5NjA1NSwjYjI0ZjQ1KTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMXB4KTtib3gtc2hhZG93OjAgMnB4IDRweCB2YXIoLS1kYW5nZXItbXV0ZWQpLDAgOHB4IDIwcHggLTRweCB2YXIoLS1kYW5nZXItZ2xvdyksaW5zZXQgMCAxcHggI2ZmZmZmZjQ3LGluc2V0IDAgLTFweCAjNjAxZTE4MmV9LndhbmQtZGlhbG9nIC5idG4tZGFuZ2VyOmFjdGl2ZXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKTtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcsdmFyKC0tZGFuZ2VyKSAwJSwjOTMzOTJmIDEwMCUpO3RyYW5zaXRpb24tZHVyYXRpb246LjA2c31AbWVkaWEocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjpyZWR1Y2Upey53YW5kLWRpYWxvZy1iYWNrZHJvcCwud2FuZC1kaWFsb2ctYmFja2Ryb3AuY2xvc2luZywud2FuZC1kaWFsb2csLndhbmQtZGlhbG9nLWJhY2tkcm9wLmNsb3NpbmcgLndhbmQtZGlhbG9ne2FuaW1hdGlvbjpub25lIWltcG9ydGFudH19QHN1cHBvcnRzIG5vdCAoKGJhY2tkcm9wLWZpbHRlcjogYmx1cigxcHgpKSBvciAoLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoMXB4KSkpey53YW5kLWRpYWxvZy1iYWNrZHJvcHtiYWNrZ3JvdW5kOiMxNDBlMDg5OX0ud2FuZC1kaWFsb2d7YmFja2dyb3VuZDp2YXIoLS1iZy1lbGV2YXRlZCk7Ym9yZGVyLWNvbG9yOnZhcigtLWJvcmRlci1zdWJ0bGUpfX1AbWVkaWEobWF4LXdpZHRoOjQ4MHB4KXsud2FuZC1kaWFsb2ctYmFja2Ryb3B7cGFkZGluZzoxNnB4O2FsaWduLWl0ZW1zOmNlbnRlcn0ud2FuZC1kaWFsb2d7bWF4LXdpZHRoOjEwMCU7Ym9yZGVyLXJhZGl1czoyMHB4fS53YW5kLWRpYWxvZy1mb290ZXJ7ZmxleC13cmFwOndyYXB9LndhbmQtZGlhbG9nLWZvb3RlciAuYnRue2ZsZXg6MSAxIGF1dG99fS5idG4td2l0aC1pY29ue2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2cHh9LmJ0bi13aXRoLWljb24+c3Zne2ZsZXgtc2hyaW5rOjB9LmNvbXBvc2VyLXBpbGwtaWNvbntkaXNwbGF5OmlubGluZS1ibG9jazt2ZXJ0aWNhbC1hbGlnbjotMnB4fS5jb21wb3Nlci1waWxsLWxhYmVse2Rpc3BsYXk6aW5saW5lLWJsb2NrO2xldHRlci1zcGFjaW5nOi4wMmVtfS5zZXR0aW5ncy1zZWN0aW9uLWljb257Zm9udC1zaXplOjA7bGluZS1oZWlnaHQ6MH0uc2V0dGluZ3Mtc2VjdGlvbi1pY29uPnN2Z3tkaXNwbGF5OmJsb2NrfS5ibGFuay1jaGF0LXRvb2wtYnRuIC50b29sLWljb257ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt3aWR0aDoxOHB4O2hlaWdodDoxOHB4O2ZvbnQtc2l6ZToxLjEyNXJlbX0uYmxhbmstY2hhdC10b29sLWJ0biAudG9vbC1pY29uPnN2Z3tkaXNwbGF5OmJsb2NrfS5ibGFuay1jaGF0LXRvb2wtYnRuIC50b29sLWljb24tdGV4dHt3aWR0aDphdXRvO2hlaWdodDphdXRvO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7Zm9udC1zaXplOjFyZW07bGluZS1oZWlnaHQ6MX0uYmxhbmstY2hhdC1jd2QtaWNvbntkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2ZvbnQtc2l6ZTowO2xpbmUtaGVpZ2h0OjB9LmJsYW5rLWNoYXQtY3dkLWljb24+c3Zne2Rpc3BsYXk6YmxvY2t9LmJsYW5rLWNoYXQtY3dkLWFycm93e2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Zm9udC1zaXplOjA7bGluZS1oZWlnaHQ6MDt0cmFuc2l0aW9uOnRyYW5zZm9ybSB2YXIoLS10cmFuc2l0aW9uLWZhc3QpfS5ibGFuay1jaGF0LWN3ZC1hcnJvdz5zdmd7ZGlzcGxheTpibG9ja30uZm9sZGVyLXBpY2tlci1pY29ue2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Zm9udC1zaXplOjA7bGluZS1oZWlnaHQ6MH0uZm9sZGVyLXBpY2tlci1pY29uPnN2Z3tkaXNwbGF5OmJsb2NrfS5mb2xkZXItcGlja2VyLXF1aWNrLWJ0bi5idG4td2l0aC1pY29ue2dhcDo1cHh9LmFwcHJvdmFsLXN0YXRzLXJvdy1pY29ue2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7d2lkdGg6MTRweDtoZWlnaHQ6MTRweDtmb250LXNpemU6MDtsaW5lLWhlaWdodDowfS5hcHByb3ZhbC1zdGF0cy1yb3ctaWNvbj5zdmd7ZGlzcGxheTpibG9ja30uYXR0YWNobWVudC1waWxsIC5hdHQtaWNvbj5zdmd7ZGlzcGxheTpibG9ja30uZm9sZGVyLXBpY2tlci1jb21wYWN0LWljb257ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtmb250LXNpemU6MDtsaW5lLWhlaWdodDowfS5mb2xkZXItcGlja2VyLWNvbXBhY3QtaWNvbj5zdmd7ZGlzcGxheTpibG9ja30uZm9sZGVyLXBpY2tlci10b2dnbGV7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtmb250LXNpemU6MDtsaW5lLWhlaWdodDowfS5mb2xkZXItcGlja2VyLXRvZ2dsZT5zdmd7ZGlzcGxheTpibG9ja30uZm9sZGVyLXBpY2tlci10b2dnbGUub3Blbnt0cmFuc2Zvcm06cm90YXRlKDE4MGRlZyl9LndvcmtpbmctZGlyLWluZGljYXRvci1pY29ue2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Zm9udC1zaXplOjA7bGluZS1oZWlnaHQ6MH0ud29ya2luZy1kaXItaW5kaWNhdG9yLWljb24+c3Zne2Rpc3BsYXk6YmxvY2t9LndhbmQtam95c3RpY2stcm9vdHtwb3NpdGlvbjpmaXhlZDt6LWluZGV4OjQwO3BvaW50ZXItZXZlbnRzOm5vbmU7b3BhY2l0eTowO3Zpc2liaWxpdHk6aGlkZGVuO3RyYW5zaXRpb246b3BhY2l0eSAuMnMgZWFzZX0ud2FuZC1qb3lzdGljay1yb290LnZpc2libGV7b3BhY2l0eToxO3Zpc2liaWxpdHk6dmlzaWJsZX0ud2FuZC1qb3lzdGljay1iYWNrZHJvcHtwb3NpdGlvbjpmaXhlZDtpbnNldDowO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7cG9pbnRlci1ldmVudHM6bm9uZTt2aXNpYmlsaXR5OmhpZGRlbn0ud2FuZC1qb3lzdGljay1iYWNrZHJvcC5hY3RpdmV7dmlzaWJpbGl0eTp2aXNpYmxlO3BvaW50ZXItZXZlbnRzOmF1dG99LndhbmQtam95c3RpY2stYmFsbHtwb3NpdGlvbjpmaXhlZDtyaWdodDoxOHB4O2JvdHRvbTo5NnB4O3dpZHRoOjU0cHg7aGVpZ2h0OjU0cHg7Ym9yZGVyLXJhZGl1czo1MCU7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2NvbG9yOiNmNWViZTFmMDtiYWNrZ3JvdW5kOiMyMzFjMThkYjtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjQ1LDIzNSwyMjUsLjE4KTtib3gtc2hhZG93OjAgOHB4IDIycHggIzAwMDAwMDRkLGluc2V0IDAgMXB4ICNmZmZmZmYxNDtiYWNrZHJvcC1maWx0ZXI6Ymx1cigxMHB4KTstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjpibHVyKDEwcHgpO3BvaW50ZXItZXZlbnRzOmF1dG87dG91Y2gtYWN0aW9uOm5vbmU7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O3VzZXItc2VsZWN0Om5vbmU7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lO3otaW5kZXg6NDM7Y3Vyc29yOmdyYWI7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjE4cyB2YXIoLS1lYXNlLXNwcmluZyksYmFja2dyb3VuZCAuMnMgZWFzZSxib3JkZXItY29sb3IgLjJzIGVhc2UsYm94LXNoYWRvdyAuMnMgZWFzZX0ud2FuZC1qb3lzdGljay1sb2dve3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MX0ud2FuZC1qb3lzdGljay1iYWxsOmhvdmVye3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xcHgpO2JvcmRlci1jb2xvcjojZjVlYmUxNGQ7YmFja2dyb3VuZDojMmIyMjFkZTY7Ym94LXNoYWRvdzowIDEwcHggMjZweCAjMDAwMDAwNTcsaW5zZXQgMCAxcHggI2ZmZmZmZjFhfS53YW5kLWpveXN0aWNrLWJhbGw6YWN0aXZlLC53YW5kLWpveXN0aWNrLWJhbGwucGFuZWwtb3BlbntiYWNrZ3JvdW5kOiMxZDE3MTRmMH0ud2FuZC1qb3lzdGljay1iYWxsLmRyYWdnaW5ne3RyYW5zZm9ybTpzY2FsZSgxLjEyKTtjdXJzb3I6Z3JhYmJpbmc7Ym94LXNoYWRvdzowIDEwcHggMjhweCAjMDAwMDAwNWN9LndhbmQtam95c3RpY2stcGFuZWx7cG9zaXRpb246Zml4ZWQ7cmlnaHQ6MThweDtib3R0b206MTYwcHg7ei1pbmRleDo0NDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDo4cHg7cGFkZGluZzoxMHB4O2JvcmRlci1yYWRpdXM6MTJweDtiYWNrZ3JvdW5kOiMxZDE3MTRmNTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjQ1LDIzNSwyMjUsLjEyKTtib3gtc2hhZG93OjAgMTRweCAzNHB4ICMwMDAwMDA1NyxpbnNldCAwIDFweCAjZmZmZmZmMGY7YmFja2Ryb3AtZmlsdGVyOmJsdXIoMTJweCk7LXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6Ymx1cigxMnB4KTtwb2ludGVyLWV2ZW50czpub25lO29wYWNpdHk6MDt2aXNpYmlsaXR5OmhpZGRlbjt0cmFuc2Zvcm06dHJhbnNsYXRlWSg4cHgpIHNjYWxlKC45Nik7dHJhbnNmb3JtLW9yaWdpbjpib3R0b20gcmlnaHQ7dHJhbnNpdGlvbjpvcGFjaXR5IC4xOHMgdmFyKC0tZWFzZS1vdXQtZXhwbyksdHJhbnNmb3JtIC4yMnMgdmFyKC0tZWFzZS1zcHJpbmcpLHZpc2liaWxpdHkgMHMgbGluZWFyIC4xOHM7d2lkdGg6bWluKDIyNHB4LGNhbGMoMTAwdncgLSAzNnB4KSk7bWF4LXdpZHRoOmNhbGMoMTAwdncgLSAzNnB4KX0ud2FuZC1qb3lzdGljay1wYW5lbC5hY3RpdmV7cG9pbnRlci1ldmVudHM6YXV0bztvcGFjaXR5OjE7dmlzaWJpbGl0eTp2aXNpYmxlO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApIHNjYWxlKDEpO3RyYW5zaXRpb24tZGVsYXk6MHN9LndqcC1oZWFkZXJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtnYXA6MTBweDttaW4taGVpZ2h0OjI0cHh9LndqcC10aXRsZXtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NnB4O2ZvbnQtc2l6ZTouNzZyZW07bGV0dGVyLXNwYWNpbmc6MDtjb2xvcjojZjVlYmUxYzc7Zm9udC13ZWlnaHQ6NjAwfS53anAtdGl0bGUtaWNvbntjb2xvcjojZjVlYmUxYjh9LndqcC1jbG9zZXt3aWR0aDoyNHB4O2hlaWdodDoyNHB4O2JvcmRlci1yYWRpdXM6NTAlO2JvcmRlcjoxcHggc29saWQgcmdiYSgyNDUsMjM1LDIyNSwuMTIpO2JhY2tncm91bmQ6I2ZmZmZmZjBkO2NvbG9yOiNmNWViZTFiODtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2N1cnNvcjpwb2ludGVyO3BhZGRpbmc6MDt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjE0cyBlYXNlLGNvbG9yIC4xNHMgZWFzZSx0cmFuc2Zvcm0gLjE0cyBlYXNlfS53anAtY2xvc2U6aG92ZXJ7YmFja2dyb3VuZDojZmZmZmZmMWE7Y29sb3I6I2Y1ZWJlMWYyfS53anAtY2xvc2U6YWN0aXZle3RyYW5zZm9ybTpzY2FsZSguOTQpfS53anAtZHBhZHtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NXB4fS53anAtZHBhZC1yb3d7ZGlzcGxheTpmbGV4O2dhcDo1cHh9LndqcC1ncmlke2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6d3JhcDtnYXA6NXB4O2p1c3RpZnktY29udGVudDpjZW50ZXJ9LndqcC1mbmtleXN7bWF4LXdpZHRoOjIwMHB4fS53anAta2V5e21pbi13aWR0aDo0NHB4O2hlaWdodDozOHB4O3BhZGRpbmc6MCA4cHg7Ym9yZGVyLXJhZGl1czo4cHg7Zm9udC1zaXplOi43NnJlbTtmb250LXdlaWdodDo1MDA7Y29sb3I6I2Y1ZWJlMWQ2O2JhY2tncm91bmQ6I2ZmZmZmZjBiO2JvcmRlcjoxcHggc29saWQgcmdiYSgyNDUsMjM1LDIyNSwuMTEpO2N1cnNvcjpwb2ludGVyO3RvdWNoLWFjdGlvbjptYW5pcHVsYXRpb247LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O3VzZXItc2VsZWN0Om5vbmU7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjFzIGVhc2UsYmFja2dyb3VuZCAuMTVzIGVhc2UsYm9yZGVyLWNvbG9yIC4xNXMgZWFzZSxjb2xvciAuMTVzIGVhc2V9LndqcC1rZXk6aG92ZXJ7YmFja2dyb3VuZDojZmZmZmZmMTQ7Ym9yZGVyLWNvbG9yOiNmNWViZTEzMztjb2xvcjojZjVlYmUxZjJ9LndqcC1rZXk6YWN0aXZle2JhY2tncm91bmQ6I2ZmZmZmZjFmO3RyYW5zZm9ybTpzY2FsZSguOTYpfS53anAta2V5LndqcC1tb2QuYWN0aXZle2JhY2tncm91bmQ6dmFyKC0tYWNjZW50KTtjb2xvcjojZmZmO2JvcmRlci1jb2xvcjp2YXIoLS1hY2NlbnQpfQo="),
10
10
  vendor: {
11
11
  "/vendor/wterm/wterm.bundle.js": {