diff --git a/dist/AccessKeyCheatsheet/AccessKeyCheatsheet.js b/dist/AccessKeyCheatsheet/AccessKeyCheatsheet.js index 655583ed6..185dc7ee5 100644 --- a/dist/AccessKeyCheatsheet/AccessKeyCheatsheet.js +++ b/dist/AccessKeyCheatsheet/AccessKeyCheatsheet.js @@ -122,7 +122,7 @@ var addListener = ($element, windowManager, messageDialogProperty) => { }); }; //! src/AccessKeyCheatsheet/modules/util/generateElements.tsx -var import_ext_gadget2 = __toESM(require("ext.gadget.React"), 1); +var import_ext_gadget2 = __toESM(require("ext.gadget.JSX"), 1); //! src/AccessKeyCheatsheet/modules/i18n.ts var import_ext_gadget = require("ext.gadget.i18n"); var getI18nMessages = () => { @@ -215,4 +215,4 @@ void (0, import_ext_gadget3.getBody)().then(function accessKeyCheatsheet($body) /* */ -//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL0FjY2Vzc0tleUNoZWF0c2hlZXQvbW9kdWxlcy9hZGRMaXN0ZW5lci50cyIsICJzcmMvQWNjZXNzS2V5Q2hlYXRzaGVldC9tb2R1bGVzL3V0aWwvZ2VuZXJhdGVFbGVtZW50cy50c3giLCAic3JjL0FjY2Vzc0tleUNoZWF0c2hlZXQvbW9kdWxlcy9pMThuLnRzIiwgInNyYy9BY2Nlc3NLZXlDaGVhdHNoZWV0L21vZHVsZXMvdXRpbC9nZW5lcmF0ZU1lc3NhZ2VEaWFsb2dQcm9wZXJ0eS50cyIsICJzcmMvQWNjZXNzS2V5Q2hlYXRzaGVldC9BY2Nlc3NLZXlDaGVhdHNoZWV0LnRzIiwgInNyYy9BY2Nlc3NLZXlDaGVhdHNoZWV0L21vZHVsZXMvaW5pdFdpbmRvd01hbmFnZXIudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImxldCBtZXNzYWdlRGlhbG9nOiBPTy51aS5NZXNzYWdlRGlhbG9nO1xuXG5jb25zdCBhZGRMaXN0ZW5lciA9IChcblx0JGVsZW1lbnQ6IEpRdWVyeSxcblx0d2luZG93TWFuYWdlcjogT08udWkuV2luZG93TWFuYWdlcixcblx0bWVzc2FnZURpYWxvZ1Byb3BlcnR5OiBPTy51aS5XaW5kb3dNYW5hZ2VyLldpbmRvd09wZW5pbmdEYXRhXG4pOiB2b2lkID0+IHtcblx0JGVsZW1lbnQub24oJ2NsaWNrJywgKGV2ZW50KTogdm9pZCA9PiB7XG5cdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuXHRcdGlmIChtZXNzYWdlRGlhbG9nKSB7XG5cdFx0XHRpZiAobWVzc2FnZURpYWxvZy5pc09wZW5lZCgpKSB7XG5cdFx0XHRcdG1lc3NhZ2VEaWFsb2cuY2xvc2UoKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdG1lc3NhZ2VEaWFsb2cub3BlbihtZXNzYWdlRGlhbG9nUHJvcGVydHkpO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdG1lc3NhZ2VEaWFsb2cgPSBuZXcgT08udWkuTWVzc2FnZURpYWxvZygpO1xuXHRcdHdpbmRvd01hbmFnZXIuYWRkV2luZG93cyhbbWVzc2FnZURpYWxvZ10pO1xuXHRcdHZvaWQgd2luZG93TWFuYWdlci5vcGVuV2luZG93KG1lc3NhZ2VEaWFsb2csIG1lc3NhZ2VEaWFsb2dQcm9wZXJ0eSk7XG5cdH0pO1xufTtcblxuZXhwb3J0IHthZGRMaXN0ZW5lcn07XG4iLCAiaW1wb3J0IFJlYWN0IGZyb20gJ2V4dC5nYWRnZXQuUmVhY3QnO1xuaW1wb3J0IHtnZXRNZXNzYWdlfSBmcm9tICcuLi9pMThuJztcblxuY29uc3QgZ2VuZXJhdGVFbGVtZW50cyA9IChcblx0JGJvZHk6IEpRdWVyeTxIVE1MQm9keUVsZW1lbnQ+XG4pOiB7XG5cdCR0YWJsZTogSlF1ZXJ5O1xuXHQkb3BlbmVyOiBKUXVlcnk8SFRNTEFuY2hvckVsZW1lbnQ+O1xufSA9PiB7XG5cdGNvbnN0IHRhYmxlID0gKFxuXHRcdDx0YWJsZSBjbGFzc05hbWU9XCJ3aWtpdGFibGVcIiBzdHlsZT17e3dpZHRoOiAnMTAwJSd9fT5cblx0XHRcdHtbLi4uJGJvZHkuZmluZCgnW2FjY2Vzc2tleV0nKV0ubWFwPFJlYWN0LlJlYWN0RWxlbWVudD4oKGVsZW1lbnQsIGluZGV4KSA9PiAoXG5cdFx0XHRcdDx0ciBrZXk9e2luZGV4fT5cblx0XHRcdFx0XHQ8dGg+e2VsZW1lbnQuYWNjZXNzS2V5LnRvVXBwZXJDYXNlKCl9PC90aD5cblx0XHRcdFx0XHQ8dGQ+XG5cdFx0XHRcdFx0XHR7KFxuXHRcdFx0XHRcdFx0XHRlbGVtZW50LmdldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbCcpIHx8XG5cdFx0XHRcdFx0XHRcdGVsZW1lbnQudGl0bGUgfHxcblx0XHRcdFx0XHRcdFx0ZWxlbWVudC50ZXh0Q29udGVudCB8fFxuXHRcdFx0XHRcdFx0XHQoZWxlbWVudCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZSB8fFxuXHRcdFx0XHRcdFx0XHQkYm9keS5maW5kKGBsYWJlbFtmb3I9XCIke2VsZW1lbnQuaWR9XCJdYCkudGV4dCgpXG5cdFx0XHRcdFx0XHQpXG5cdFx0XHRcdFx0XHRcdC5yZXBsYWNlKC9cXHMqP1xcWy4rP10kLywgJycpXG5cdFx0XHRcdFx0XHRcdC50cmltKCl9XG5cdFx0XHRcdFx0PC90ZD5cblx0XHRcdFx0PC90cj5cblx0XHRcdCkpfVxuXHRcdDwvdGFibGU+XG5cdCk7XG5cdGNvbnN0ICR0YWJsZSA9ICQodGFibGUpIGFzIEpRdWVyeTtcblxuXHRjb25zdCAkb3BlbmVyID0gJCg8YSBhY2Nlc3NLZXk9XCI/XCI+e2dldE1lc3NhZ2UoJ1RleHQnKX08L2E+KSBhcyBKUXVlcnk8SFRNTEFuY2hvckVsZW1lbnQ+O1xuXG5cdHJldHVybiB7XG5cdFx0JHRhYmxlLFxuXHRcdCRvcGVuZXIsXG5cdH07XG59O1xuXG5leHBvcnQge2dlbmVyYXRlRWxlbWVudHN9O1xuIiwgImltcG9ydCB7bG9jYWxpemV9IGZyb20gJ2V4dC5nYWRnZXQuaTE4bic7XG5cbmNvbnN0IGdldEkxOG5NZXNzYWdlcyA9ICgpID0+IHtcblx0cmV0dXJuIHtcblx0XHRDbG9zZTogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdDbG9zZScsXG5cdFx0XHRqYTogJ+mWieOBmOOCiycsXG5cdFx0XHRydTogJ9CX0LDQutGA0YvRgtGMJyxcblx0XHRcdCd6aC1oYW5zJzogJ+WFs+mXrScsXG5cdFx0XHQnemgtaGFudCc6ICfpl5zploknLFxuXHRcdH0pLFxuXHRcdFRleHQ6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnT3BlbiBhY2Nlc3Mga2V5cyBjaGVhdHNoZWV0Jyxcblx0XHRcdGphOiAn44Ki44Kv44K744K544Kt44O844Gu44OB44O844OI44K344O844OIJyxcblx0XHRcdHJ1OiAn0J7RgtC60YDRi9GC0Ywg0L/QvtC00YHQutCw0LfQutGDINGBINC60LvQsNCy0LjQsNGC0YPRgNC90YvQvNC4INGP0YDQu9GL0LrQsNC80LgnLFxuXHRcdFx0J3poLWhhbnMnOiAn5pi+56S66ZSu55uY5b+r5o236ZSu5o+Q56S6Jyxcblx0XHRcdCd6aC1oYW50JzogJ+mhr+ekuumNteebpOW/q+mAn+mNteaPkOekuicsXG5cdFx0fSksXG5cdFx0VGl0bGU6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnQWNjZXNzIGtleXMgY2hlYXRzaGVldCcsXG5cdFx0XHRqYTogJ+OCouOCr+OCu+OCueOCreODvOOBruODgeODvOODiOOCt+ODvOODiCcsXG5cdFx0XHRydTogJ9Cf0L7QtNGB0LrQsNC30LrQuCDQutC70LDQstC40LDRgtGD0YDQvdGL0YUg0Y/RgNC70YvQutC+0LInLFxuXHRcdFx0J3poLWhhbnMnOiAn6ZSu55uY5b+r5o236ZSu5o+Q56S6Jyxcblx0XHRcdCd6aC1oYW50JzogJ+mNteebpOW/q+mAn+mNteaPkOekuicsXG5cdFx0fSksXG5cdH07XG59O1xuXG5jb25zdCBpMThuTWVzc2FnZXMgPSBnZXRJMThuTWVzc2FnZXMoKTtcblxuY29uc3QgZ2V0TWVzc2FnZTogR2V0TWVzc2FnZXM8dHlwZW9mIGkxOG5NZXNzYWdlcz4gPSAoa2V5KSA9PiB7XG5cdHJldHVybiBpMThuTWVzc2FnZXNba2V5XSB8fCBrZXk7XG59O1xuXG5leHBvcnQge2dldE1lc3NhZ2V9O1xuIiwgImltcG9ydCB7Z2V0TWVzc2FnZX0gZnJvbSAnLi4vaTE4bic7XG5cbmNvbnN0IGdlbmVyYXRlTWVzc2FnZURpYWxvZ1Byb3BlcnR5ID0gKCRlbGVtZW50OiBKUXVlcnkpOiBPTy51aS5XaW5kb3dNYW5hZ2VyLldpbmRvd09wZW5pbmdEYXRhID0+IHtcblx0Y29uc3QgbWVzc2FnZURpYWxvZ1Byb3BlcnR5OiBPTy51aS5XaW5kb3dNYW5hZ2VyLldpbmRvd09wZW5pbmdEYXRhID0ge1xuXHRcdHRpdGxlOiBnZXRNZXNzYWdlKCdUaXRsZScpLFxuXHRcdG1lc3NhZ2U6ICRlbGVtZW50LFxuXHRcdGFjdGlvbnM6IFtcblx0XHRcdHtcblx0XHRcdFx0YWN0aW9uOiAnY2xvc2UnLFxuXHRcdFx0XHRmbGFnczogWydzYWZlJywgJ2Nsb3NlJ10sXG5cdFx0XHRcdGxhYmVsOiBnZXRNZXNzYWdlKCdDbG9zZScpLFxuXHRcdFx0fSxcblx0XHRdLFxuXHRcdHNpemU6ICdtZWRpdW0nLFxuXHR9O1xuXG5cdHJldHVybiBtZXNzYWdlRGlhbG9nUHJvcGVydHk7XG59O1xuXG5leHBvcnQge2dlbmVyYXRlTWVzc2FnZURpYWxvZ1Byb3BlcnR5fTtcbiIsICJpbXBvcnQge2FkZExpc3RlbmVyfSBmcm9tICcuL21vZHVsZXMvYWRkTGlzdGVuZXInO1xuaW1wb3J0IHtnZW5lcmF0ZUVsZW1lbnRzfSBmcm9tICcuL21vZHVsZXMvdXRpbC9nZW5lcmF0ZUVsZW1lbnRzJztcbmltcG9ydCB7Z2VuZXJhdGVNZXNzYWdlRGlhbG9nUHJvcGVydHl9IGZyb20gJy4vbW9kdWxlcy91dGlsL2dlbmVyYXRlTWVzc2FnZURpYWxvZ1Byb3BlcnR5JztcbmltcG9ydCB7Z2V0Qm9keX0gZnJvbSAnZXh0LmdhZGdldC5VdGlsJztcbmltcG9ydCB7aW5pdFdpbmRvd01hbmFnZXJ9IGZyb20gJy4vbW9kdWxlcy9pbml0V2luZG93TWFuYWdlcic7XG5cbi8qKlxuICogQWRkcyBhbHQrc2hpZnQrPyBhcyBhbiBhY2Nlc3Mga2V5IHRvIHNob3cgYSBsaXN0IG9mIGFsbCBkZWZhdWx0IGFjY2VzcyBrZXlzXG4gKi9cbnZvaWQgZ2V0Qm9keSgpLnRoZW4oZnVuY3Rpb24gYWNjZXNzS2V5Q2hlYXRzaGVldCgkYm9keTogSlF1ZXJ5PEhUTUxCb2R5RWxlbWVudD4pOiB2b2lkIHtcblx0Y29uc3QgeyR0YWJsZSwgJG9wZW5lcn0gPSBnZW5lcmF0ZUVsZW1lbnRzKCRib2R5KTtcblx0JG9wZW5lci5oaWRlKCkuYXBwZW5kVG8oJGJvZHkpO1xuXG5cdGNvbnN0IHdpbmRvd01hbmFnZXI6IE9PLnVpLldpbmRvd01hbmFnZXIgPSBpbml0V2luZG93TWFuYWdlcigpO1xuXHR3aW5kb3dNYW5hZ2VyLiRlbGVtZW50LmFwcGVuZFRvKCRib2R5KTtcblxuXHRjb25zdCBtZXNzYWdlRGlhbG9nUHJvcGVydHk6IE9PLnVpLldpbmRvd01hbmFnZXIuV2luZG93T3BlbmluZ0RhdGEgPSBnZW5lcmF0ZU1lc3NhZ2VEaWFsb2dQcm9wZXJ0eSgkdGFibGUpO1xuXG5cdGFkZExpc3RlbmVyKCRvcGVuZXIsIHdpbmRvd01hbmFnZXIsIG1lc3NhZ2VEaWFsb2dQcm9wZXJ0eSk7XG59KTtcbiIsICJjb25zdCBpbml0V2luZG93TWFuYWdlciA9ICgpOiBPTy51aS5XaW5kb3dNYW5hZ2VyID0+IHtcblx0Y29uc3Qgd2luZG93TWFuYWdlcjogT08udWkuV2luZG93TWFuYWdlciA9IG5ldyBPTy51aS5XaW5kb3dNYW5hZ2VyKCk7XG5cblx0d2luZG93TWFuYWdlci4kZWxlbWVudC5jc3Moe1xuXHRcdCdtYXJnaW4tYm90dG9tJzogJzAnLFxuXHRcdHdpZHRoOiAnMzVlbScsXG5cdH0pO1xuXG5cdHJldHVybiB3aW5kb3dNYW5hZ2VyO1xufTtcblxuZXhwb3J0IHtpbml0V2luZG93TWFuYWdlcn07XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsSUFBSUE7QUFFSixJQUFNQyxjQUFjQSxDQUNuQkMsVUFDQUMsZUFDQUMsMEJBQ1U7QUFDVkYsV0FBU0csR0FBRyxTQUFVQyxXQUFnQjtBQUNyQ0EsVUFBTUMsZUFBZTtBQUVyQixRQUFJUCxlQUFlO0FBQ2xCLFVBQUlBLGNBQWNRLFNBQVMsR0FBRztBQUM3QlIsc0JBQWNTLE1BQU07TUFDckIsT0FBTztBQUNOVCxzQkFBY1UsS0FBS04scUJBQXFCO01BQ3pDO0FBQ0E7SUFDRDtBQUVBSixvQkFBZ0IsSUFBSVcsR0FBR0MsR0FBR0MsY0FBYztBQUN4Q1Ysa0JBQWNXLFdBQVcsQ0FBQ2QsYUFBYSxDQUFDO0FBQ3hDLFNBQUtHLGNBQWNZLFdBQVdmLGVBQWVJLHFCQUFxQjtFQUNuRSxDQUFDO0FBQ0Y7O0FDdkJBLElBQUFZLHFCQUFrQkMsUUFB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YW1lcyI6IFsibWVzc2FnZURpYWxvZyIsICJhZGRMaXN0ZW5lciIsICIkZWxlbWVudCIsICJ3aW5kb3dNYW5hZ2VyIiwgIm1lc3NhZ2VEaWFsb2dQcm9wZXJ0eSIsICJvbiIsICJldmVudCIsICJwcmV2ZW50RGVmYXVsdCIsICJpc09wZW5lZCIsICJjbG9zZSIsICJvcGVuIiwgIk9PIiwgInVpIiwgIk1lc3NhZ2VEaWFsb2ciLCAiYWRkV2luZG93cyIsICJvcGVuV2luZG93IiwgImltcG9ydF9leHRfZ2FkZ2V0MiIsICJfX3RvRVNNIiwgInJlcXVpcmUiLCAiaW1wb3J0X2V4dF9nYWRnZXQiLCAiZ2V0STE4bk1lc3NhZ2VzIiwgIkNsb3NlIiwgImxvY2FsaXplIiwgImVuIiwgImphIiwgInJ1IiwgIlRleHQiLCAiVGl0bGUiLCAiaTE4bk1lc3NhZ2VzIiwgImdldE1lc3NhZ2UiLCAia2V5IiwgImdlbmVyYXRlRWxlbWVudHMiLCAiJGJvZHkiLCAidGFibGUiLCAiZGVmYXVsdCIsICJjcmVhdGVFbGVtZW50IiwgImNsYXNzTmFtZSIsICJzdHlsZSIsICJ3aWR0aCIsICJmaW5kIiwgIm1hcCIsICJlbGVtZW50IiwgImluZGV4IiwgImFjY2Vzc0tleSIsICJ0b1VwcGVyQ2FzZSIsICJnZXRBdHRyaWJ1dGUiLCAidGl0bGUiLCAidGV4dENvbnRlbnQiLCAidmFsdWUiLCAiY29uY2F0IiwgImlkIiwgInRleHQiLCAicmVwbGFjZSIsICJ0cmltIiwgIiR0YWJsZSIsICIkIiwgIiRvcGVuZXIiLCAiZ2VuZXJhdGVNZXNzYWdlRGlhbG9nUHJvcGVydHkiLCAibWVzc2FnZSIsICJhY3Rpb25zIiwgImFjdGlvbiIsICJmbGFncyIsICJsYWJlbCIsICJzaXplIiwgImltcG9ydF9leHRfZ2FkZ2V0MyIsICJpbml0V2luZG93TWFuYWdlciIsICJXaW5kb3dNYW5hZ2VyIiwgImNzcyIsICJnZXRCb2R5IiwgInRoZW4iLCAiYWNjZXNzS2V5Q2hlYXRzaGVldCIsICJoaWRlIiwgImFwcGVuZFRvIl0KfQo= +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL0FjY2Vzc0tleUNoZWF0c2hlZXQvbW9kdWxlcy9hZGRMaXN0ZW5lci50cyIsICJzcmMvQWNjZXNzS2V5Q2hlYXRzaGVldC9tb2R1bGVzL3V0aWwvZ2VuZXJhdGVFbGVtZW50cy50c3giLCAic3JjL0FjY2Vzc0tleUNoZWF0c2hlZXQvbW9kdWxlcy9pMThuLnRzIiwgInNyYy9BY2Nlc3NLZXlDaGVhdHNoZWV0L21vZHVsZXMvdXRpbC9nZW5lcmF0ZU1lc3NhZ2VEaWFsb2dQcm9wZXJ0eS50cyIsICJzcmMvQWNjZXNzS2V5Q2hlYXRzaGVldC9BY2Nlc3NLZXlDaGVhdHNoZWV0LnRzIiwgInNyYy9BY2Nlc3NLZXlDaGVhdHNoZWV0L21vZHVsZXMvaW5pdFdpbmRvd01hbmFnZXIudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImxldCBtZXNzYWdlRGlhbG9nOiBPTy51aS5NZXNzYWdlRGlhbG9nO1xuXG5jb25zdCBhZGRMaXN0ZW5lciA9IChcblx0JGVsZW1lbnQ6IEpRdWVyeSxcblx0d2luZG93TWFuYWdlcjogT08udWkuV2luZG93TWFuYWdlcixcblx0bWVzc2FnZURpYWxvZ1Byb3BlcnR5OiBPTy51aS5XaW5kb3dNYW5hZ2VyLldpbmRvd09wZW5pbmdEYXRhXG4pOiB2b2lkID0+IHtcblx0JGVsZW1lbnQub24oJ2NsaWNrJywgKGV2ZW50KTogdm9pZCA9PiB7XG5cdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuXHRcdGlmIChtZXNzYWdlRGlhbG9nKSB7XG5cdFx0XHRpZiAobWVzc2FnZURpYWxvZy5pc09wZW5lZCgpKSB7XG5cdFx0XHRcdG1lc3NhZ2VEaWFsb2cuY2xvc2UoKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdG1lc3NhZ2VEaWFsb2cub3BlbihtZXNzYWdlRGlhbG9nUHJvcGVydHkpO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdG1lc3NhZ2VEaWFsb2cgPSBuZXcgT08udWkuTWVzc2FnZURpYWxvZygpO1xuXHRcdHdpbmRvd01hbmFnZXIuYWRkV2luZG93cyhbbWVzc2FnZURpYWxvZ10pO1xuXHRcdHZvaWQgd2luZG93TWFuYWdlci5vcGVuV2luZG93KG1lc3NhZ2VEaWFsb2csIG1lc3NhZ2VEaWFsb2dQcm9wZXJ0eSk7XG5cdH0pO1xufTtcblxuZXhwb3J0IHthZGRMaXN0ZW5lcn07XG4iLCAiaW1wb3J0IFJlYWN0IGZyb20gJ2V4dC5nYWRnZXQuSlNYJztcbmltcG9ydCB7Z2V0TWVzc2FnZX0gZnJvbSAnLi4vaTE4bic7XG5cbmNvbnN0IGdlbmVyYXRlRWxlbWVudHMgPSAoXG5cdCRib2R5OiBKUXVlcnk8SFRNTEJvZHlFbGVtZW50PlxuKToge1xuXHQkdGFibGU6IEpRdWVyeTtcblx0JG9wZW5lcjogSlF1ZXJ5PEhUTUxBbmNob3JFbGVtZW50Pjtcbn0gPT4ge1xuXHRjb25zdCB0YWJsZSA9IChcblx0XHQ8dGFibGUgY2xhc3NOYW1lPVwid2lraXRhYmxlXCIgc3R5bGU9e3t3aWR0aDogJzEwMCUnfX0+XG5cdFx0XHR7Wy4uLiRib2R5LmZpbmQoJ1thY2Nlc3NrZXldJyldLm1hcDxSZWFjdC5SZWFjdEVsZW1lbnQ+KChlbGVtZW50LCBpbmRleCkgPT4gKFxuXHRcdFx0XHQ8dHIga2V5PXtpbmRleH0+XG5cdFx0XHRcdFx0PHRoPntlbGVtZW50LmFjY2Vzc0tleS50b1VwcGVyQ2FzZSgpfTwvdGg+XG5cdFx0XHRcdFx0PHRkPlxuXHRcdFx0XHRcdFx0eyhcblx0XHRcdFx0XHRcdFx0ZWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2FyaWEtbGFiZWwnKSB8fFxuXHRcdFx0XHRcdFx0XHRlbGVtZW50LnRpdGxlIHx8XG5cdFx0XHRcdFx0XHRcdGVsZW1lbnQudGV4dENvbnRlbnQgfHxcblx0XHRcdFx0XHRcdFx0KGVsZW1lbnQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWUgfHxcblx0XHRcdFx0XHRcdFx0JGJvZHkuZmluZChgbGFiZWxbZm9yPVwiJHtlbGVtZW50LmlkfVwiXWApLnRleHQoKVxuXHRcdFx0XHRcdFx0KVxuXHRcdFx0XHRcdFx0XHQucmVwbGFjZSgvXFxzKj9cXFsuKz9dJC8sICcnKVxuXHRcdFx0XHRcdFx0XHQudHJpbSgpfVxuXHRcdFx0XHRcdDwvdGQ+XG5cdFx0XHRcdDwvdHI+XG5cdFx0XHQpKX1cblx0XHQ8L3RhYmxlPlxuXHQpO1xuXHRjb25zdCAkdGFibGUgPSAkKHRhYmxlKSBhcyBKUXVlcnk7XG5cblx0Y29uc3QgJG9wZW5lciA9ICQoPGEgYWNjZXNzS2V5PVwiP1wiPntnZXRNZXNzYWdlKCdUZXh0Jyl9PC9hPikgYXMgSlF1ZXJ5PEhUTUxBbmNob3JFbGVtZW50PjtcblxuXHRyZXR1cm4ge1xuXHRcdCR0YWJsZSxcblx0XHQkb3BlbmVyLFxuXHR9O1xufTtcblxuZXhwb3J0IHtnZW5lcmF0ZUVsZW1lbnRzfTtcbiIsICJpbXBvcnQge2xvY2FsaXplfSBmcm9tICdleHQuZ2FkZ2V0LmkxOG4nO1xuXG5jb25zdCBnZXRJMThuTWVzc2FnZXMgPSAoKSA9PiB7XG5cdHJldHVybiB7XG5cdFx0Q2xvc2U6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnQ2xvc2UnLFxuXHRcdFx0amE6ICfplonjgZjjgosnLFxuXHRcdFx0cnU6ICfQl9Cw0LrRgNGL0YLRjCcsXG5cdFx0XHQnemgtaGFucyc6ICflhbPpl60nLFxuXHRcdFx0J3poLWhhbnQnOiAn6Zec6ZaJJyxcblx0XHR9KSxcblx0XHRUZXh0OiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ09wZW4gYWNjZXNzIGtleXMgY2hlYXRzaGVldCcsXG5cdFx0XHRqYTogJ+OCouOCr+OCu+OCueOCreODvOOBruODgeODvOODiOOCt+ODvOODiCcsXG5cdFx0XHRydTogJ9Ce0YLQutGA0YvRgtGMINC/0L7QtNGB0LrQsNC30LrRgyDRgSDQutC70LDQstC40LDRgtGD0YDQvdGL0LzQuCDRj9GA0LvRi9C60LDQvNC4Jyxcblx0XHRcdCd6aC1oYW5zJzogJ+aYvuekuumUruebmOW/q+aNt+mUruaPkOekuicsXG5cdFx0XHQnemgtaGFudCc6ICfpoa/npLrpjbXnm6Tlv6vpgJ/pjbXmj5DnpLonLFxuXHRcdH0pLFxuXHRcdFRpdGxlOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ0FjY2VzcyBrZXlzIGNoZWF0c2hlZXQnLFxuXHRcdFx0amE6ICfjgqLjgq/jgrvjgrnjgq3jg7zjga7jg4Hjg7zjg4jjgrfjg7zjg4gnLFxuXHRcdFx0cnU6ICfQn9C+0LTRgdC60LDQt9C60Lgg0LrQu9Cw0LLQuNCw0YLRg9GA0L3Ri9GFINGP0YDQu9GL0LrQvtCyJyxcblx0XHRcdCd6aC1oYW5zJzogJ+mUruebmOW/q+aNt+mUruaPkOekuicsXG5cdFx0XHQnemgtaGFudCc6ICfpjbXnm6Tlv6vpgJ/pjbXmj5DnpLonLFxuXHRcdH0pLFxuXHR9O1xufTtcblxuY29uc3QgaTE4bk1lc3NhZ2VzID0gZ2V0STE4bk1lc3NhZ2VzKCk7XG5cbmNvbnN0IGdldE1lc3NhZ2U6IEdldE1lc3NhZ2VzPHR5cGVvZiBpMThuTWVzc2FnZXM+ID0gKGtleSkgPT4ge1xuXHRyZXR1cm4gaTE4bk1lc3NhZ2VzW2tleV0gfHwga2V5O1xufTtcblxuZXhwb3J0IHtnZXRNZXNzYWdlfTtcbiIsICJpbXBvcnQge2dldE1lc3NhZ2V9IGZyb20gJy4uL2kxOG4nO1xuXG5jb25zdCBnZW5lcmF0ZU1lc3NhZ2VEaWFsb2dQcm9wZXJ0eSA9ICgkZWxlbWVudDogSlF1ZXJ5KTogT08udWkuV2luZG93TWFuYWdlci5XaW5kb3dPcGVuaW5nRGF0YSA9PiB7XG5cdGNvbnN0IG1lc3NhZ2VEaWFsb2dQcm9wZXJ0eTogT08udWkuV2luZG93TWFuYWdlci5XaW5kb3dPcGVuaW5nRGF0YSA9IHtcblx0XHR0aXRsZTogZ2V0TWVzc2FnZSgnVGl0bGUnKSxcblx0XHRtZXNzYWdlOiAkZWxlbWVudCxcblx0XHRhY3Rpb25zOiBbXG5cdFx0XHR7XG5cdFx0XHRcdGFjdGlvbjogJ2Nsb3NlJyxcblx0XHRcdFx0ZmxhZ3M6IFsnc2FmZScsICdjbG9zZSddLFxuXHRcdFx0XHRsYWJlbDogZ2V0TWVzc2FnZSgnQ2xvc2UnKSxcblx0XHRcdH0sXG5cdFx0XSxcblx0XHRzaXplOiAnbWVkaXVtJyxcblx0fTtcblxuXHRyZXR1cm4gbWVzc2FnZURpYWxvZ1Byb3BlcnR5O1xufTtcblxuZXhwb3J0IHtnZW5lcmF0ZU1lc3NhZ2VEaWFsb2dQcm9wZXJ0eX07XG4iLCAiaW1wb3J0IHthZGRMaXN0ZW5lcn0gZnJvbSAnLi9tb2R1bGVzL2FkZExpc3RlbmVyJztcbmltcG9ydCB7Z2VuZXJhdGVFbGVtZW50c30gZnJvbSAnLi9tb2R1bGVzL3V0aWwvZ2VuZXJhdGVFbGVtZW50cyc7XG5pbXBvcnQge2dlbmVyYXRlTWVzc2FnZURpYWxvZ1Byb3BlcnR5fSBmcm9tICcuL21vZHVsZXMvdXRpbC9nZW5lcmF0ZU1lc3NhZ2VEaWFsb2dQcm9wZXJ0eSc7XG5pbXBvcnQge2dldEJvZHl9IGZyb20gJ2V4dC5nYWRnZXQuVXRpbCc7XG5pbXBvcnQge2luaXRXaW5kb3dNYW5hZ2VyfSBmcm9tICcuL21vZHVsZXMvaW5pdFdpbmRvd01hbmFnZXInO1xuXG4vKipcbiAqIEFkZHMgYWx0K3NoaWZ0Kz8gYXMgYW4gYWNjZXNzIGtleSB0byBzaG93IGEgbGlzdCBvZiBhbGwgZGVmYXVsdCBhY2Nlc3Mga2V5c1xuICovXG52b2lkIGdldEJvZHkoKS50aGVuKGZ1bmN0aW9uIGFjY2Vzc0tleUNoZWF0c2hlZXQoJGJvZHk6IEpRdWVyeTxIVE1MQm9keUVsZW1lbnQ+KTogdm9pZCB7XG5cdGNvbnN0IHskdGFibGUsICRvcGVuZXJ9ID0gZ2VuZXJhdGVFbGVtZW50cygkYm9keSk7XG5cdCRvcGVuZXIuaGlkZSgpLmFwcGVuZFRvKCRib2R5KTtcblxuXHRjb25zdCB3aW5kb3dNYW5hZ2VyOiBPTy51aS5XaW5kb3dNYW5hZ2VyID0gaW5pdFdpbmRvd01hbmFnZXIoKTtcblx0d2luZG93TWFuYWdlci4kZWxlbWVudC5hcHBlbmRUbygkYm9keSk7XG5cblx0Y29uc3QgbWVzc2FnZURpYWxvZ1Byb3BlcnR5OiBPTy51aS5XaW5kb3dNYW5hZ2VyLldpbmRvd09wZW5pbmdEYXRhID0gZ2VuZXJhdGVNZXNzYWdlRGlhbG9nUHJvcGVydHkoJHRhYmxlKTtcblxuXHRhZGRMaXN0ZW5lcigkb3BlbmVyLCB3aW5kb3dNYW5hZ2VyLCBtZXNzYWdlRGlhbG9nUHJvcGVydHkpO1xufSk7XG4iLCAiY29uc3QgaW5pdFdpbmRvd01hbmFnZXIgPSAoKTogT08udWkuV2luZG93TWFuYWdlciA9PiB7XG5cdGNvbnN0IHdpbmRvd01hbmFnZXI6IE9PLnVpLldpbmRvd01hbmFnZXIgPSBuZXcgT08udWkuV2luZG93TWFuYWdlcigpO1xuXG5cdHdpbmRvd01hbmFnZXIuJGVsZW1lbnQuY3NzKHtcblx0XHQnbWFyZ2luLWJvdHRvbSc6ICcwJyxcblx0XHR3aWR0aDogJzM1ZW0nLFxuXHR9KTtcblxuXHRyZXR1cm4gd2luZG93TWFuYWdlcjtcbn07XG5cbmV4cG9ydCB7aW5pdFdpbmRvd01hbmFnZXJ9O1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLElBQUlBO0FBRUosSUFBTUMsY0FBY0EsQ0FDbkJDLFVBQ0FDLGVBQ0FDLDBCQUNVO0FBQ1ZGLFdBQVNHLEdBQUcsU0FBVUMsV0FBZ0I7QUFDckNBLFVBQU1DLGVBQWU7QUFFckIsUUFBSVAsZUFBZTtBQUNsQixVQUFJQSxjQUFjUSxTQUFTLEdBQUc7QUFDN0JSLHNCQUFjUyxNQUFNO01BQ3JCLE9BQU87QUFDTlQsc0JBQWNVLEtBQUtOLHFCQUFxQjtNQUN6QztBQUNBO0lBQ0Q7QUFFQUosb0JBQWdCLElBQUlXLEdBQUdDLEdBQUdDLGNBQWM7QUFDeENWLGtCQUFjVyxXQUFXLENBQUNkLGFBQWEsQ0FBQztBQUN4QyxTQUFLRyxjQUFjWSxXQUFXZixlQUFlSSxxQkFBcUI7RUFDbkUsQ0FBQztBQUNGOztBQ3ZCQSxJQUFBWSxxQkFBa0JDLFFBQUFDLFFBQUEsZ0JBQUEsR0FBQSxDQUFBOztBQ0FsQixJQUFBQyxvQkFBdUJELFFBQUEsaUJBQUE7QUFFdkIsSUFBTUUsa0JBQWtCQSxNQUFNO0FBQzdCLFNBQU87SUFDTkMsUUFBQSxHQUFPRixrQkFBQUcsVUFBUztNQUNmQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKLFdBQVc7TUFDWCxXQUFXO0lBQ1osQ0FBQztJQUNEQyxPQUFBLEdBQU1QLGtCQUFBRyxVQUFTO01BQ2RDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0osV0FBVztNQUNYLFdBQVc7SUFDWixDQUFDO0lBQ0RFLFFBQUEsR0FBT1Isa0JBQUFHLFVBQVM7TUFDZkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSixXQUFXO01BQ1gsV0FBVztJQUNaLENBQUM7RUFDRjtBQUNEO0FBRUEsSUFBTUcsZUFBZVIsZ0JBQWdCO0FBRXJDLElBQU1TLGFBQWdEQyxTQUFRO0FBQzdELFNBQU9GLGFBQWFFLEdBQUcsS0FBS0E7QUFDN0I7O0FEN0JBLElBQU1DLG1CQUNMQyxXQUlJO0FBQ0osUUFBTUMsUUFDTGpCLG1DQUFBa0IsUUFBQUMsY0FBQyxTQUFBO0lBQU1DLFdBQVU7SUFBWUMsT0FBTztNQUFDQyxPQUFPO0lBQU07RUFBQSxHQUNoRCxDQUFDLEdBQUdOLE1BQU1PLEtBQUssYUFBYSxDQUFDLEVBQUVDLElBQXdCLENBQUNDLFNBQVNDLFVBQ2pFMUIsbUNBQUFrQixRQUFBQyxjQUFDLE1BQUE7SUFBR0wsS0FBS1k7RUFBQSxHQUNSMUIsbUNBQUFrQixRQUFBQyxjQUFDLE1BQUEsTUFBSU0sUUFBUUUsVUFBVUMsWUFBWSxDQUFFLEdBQ3JDNUIsbUNBQUFrQixRQUFBQyxjQUFDLE1BQUEsT0FFQ00sUUFBUUksYUFBYSxZQUFZLEtBQ2pDSixRQUFRSyxTQUNSTCxRQUFRTSxlQUNQTixRQUE2Qk8sU0FDOUJoQixNQUFNTyxLQUFBLGNBQUFVLE9BQW1CUixRQUFRUyxJQUFFLElBQUEsQ0FBSSxFQUFFQyxLQUFLLEdBRTdDQyxRQUFRLGVBQWUsRUFBRSxFQUN6QkMsS0FBSyxDQUNSLENBQ0QsQ0FDQSxDQUNGO0FBRUQsUUFBTUMsU0FBU0MsRUFBRXRCLEtBQUs7QUFFdEIsUUFBTXVCLFVBQVVELEVBQUV2QyxtQ0FBQWtCLFFBQUFDLGNBQUMsS0FBQTtJQUFFUSxXQUFVO0VBQUEsR0FBS2QsV0FBVyxNQUFNLENBQUUsQ0FBSTtBQUUzRCxTQUFPO0lBQ055QjtJQUNBRTtFQUNEO0FBQ0Q7O0FFbkNBLElBQU1DLGdDQUFpQ3ZELGNBQTREO0FBQ2xHLFFBQU1FLHdCQUErRDtJQUNwRTBDLE9BQU9qQixXQUFXLE9BQU87SUFDekI2QixTQUFTeEQ7SUFDVHlELFNBQVMsQ0FDUjtNQUNDQyxRQUFRO01BQ1JDLE9BQU8sQ0FBQyxRQUFRLE9BQU87TUFDdkJDLE9BQU9qQyxXQUFXLE9BQU87SUFDMUIsQ0FBQTtJQUVEa0MsTUFBTTtFQUNQO0FBRUEsU0FBTzNEO0FBQ1I7O0FDZEEsSUFBQTRELHFCQUFzQjlDLFFBQUEsaUJBQUE7O0FDSHRCLElBQU0rQyxvQkFBb0JBLE1BQTJCO0FBQ3BELFFBQU05RCxnQkFBcUMsSUFBSVEsR0FBR0MsR0FBR3NELGNBQWM7QUFFbkUvRCxnQkFBY0QsU0FBU2lFLElBQUk7SUFDMUIsaUJBQWlCO0lBQ2pCN0IsT0FBTztFQUNSLENBQUM7QUFFRCxTQUFPbkM7QUFDUjs7QURBQSxNQUFBLEdBQUs2RCxtQkFBQUksU0FBUSxFQUFFQyxLQUFLLFNBQVNDLG9CQUFvQnRDLE9BQXNDO0FBQ3RGLFFBQU07SUFBQ3NCO0lBQVFFO0VBQU8sSUFBSXpCLGlCQUFpQkMsS0FBSztBQUNoRHdCLFVBQVFlLEtBQUssRUFBRUMsU0FBU3hDLEtBQUs7QUFFN0IsUUFBTTdCLGdCQUFxQzhELGtCQUFrQjtBQUM3RDlELGdCQUFjRCxTQUFTc0UsU0FBU3hDLEtBQUs7QUFFckMsUUFBTTVCLHdCQUErRHFELDhCQUE4QkgsTUFBTTtBQUV6R3JELGNBQVl1RCxTQUFTckQsZUFBZUMscUJBQXFCO0FBQzFELENBQUM7IiwKICAibmFtZXMiOiBbIm1lc3NhZ2VEaWFsb2ciLCAiYWRkTGlzdGVuZXIiLCAiJGVsZW1lbnQiLCAid2luZG93TWFuYWdlciIsICJtZXNzYWdlRGlhbG9nUHJvcGVydHkiLCAib24iLCAiZXZlbnQiLCAicHJldmVudERlZmF1bHQiLCAiaXNPcGVuZWQiLCAiY2xvc2UiLCAib3BlbiIsICJPTyIsICJ1aSIsICJNZXNzYWdlRGlhbG9nIiwgImFkZFdpbmRvd3MiLCAib3BlbldpbmRvdyIsICJpbXBvcnRfZXh0X2dhZGdldDIiLCAiX190b0VTTSIsICJyZXF1aXJlIiwgImltcG9ydF9leHRfZ2FkZ2V0IiwgImdldEkxOG5NZXNzYWdlcyIsICJDbG9zZSIsICJsb2NhbGl6ZSIsICJlbiIsICJqYSIsICJydSIsICJUZXh0IiwgIlRpdGxlIiwgImkxOG5NZXNzYWdlcyIsICJnZXRNZXNzYWdlIiwgImtleSIsICJnZW5lcmF0ZUVsZW1lbnRzIiwgIiRib2R5IiwgInRhYmxlIiwgImRlZmF1bHQiLCAiY3JlYXRlRWxlbWVudCIsICJjbGFzc05hbWUiLCAic3R5bGUiLCAid2lkdGgiLCAiZmluZCIsICJtYXAiLCAiZWxlbWVudCIsICJpbmRleCIsICJhY2Nlc3NLZXkiLCAidG9VcHBlckNhc2UiLCAiZ2V0QXR0cmlidXRlIiwgInRpdGxlIiwgInRleHRDb250ZW50IiwgInZhbHVlIiwgImNvbmNhdCIsICJpZCIsICJ0ZXh0IiwgInJlcGxhY2UiLCAidHJpbSIsICIkdGFibGUiLCAiJCIsICIkb3BlbmVyIiwgImdlbmVyYXRlTWVzc2FnZURpYWxvZ1Byb3BlcnR5IiwgIm1lc3NhZ2UiLCAiYWN0aW9ucyIsICJhY3Rpb24iLCAiZmxhZ3MiLCAibGFiZWwiLCAic2l6ZSIsICJpbXBvcnRfZXh0X2dhZGdldDMiLCAiaW5pdFdpbmRvd01hbmFnZXIiLCAiV2luZG93TWFuYWdlciIsICJjc3MiLCAiZ2V0Qm9keSIsICJ0aGVuIiwgImFjY2Vzc0tleUNoZWF0c2hlZXQiLCAiaGlkZSIsICJhcHBlbmRUbyJdCn0K diff --git a/dist/AdvancedSiteNotices/AdvancedSiteNotices.js b/dist/AdvancedSiteNotices/AdvancedSiteNotices.js index 8e7bc0858..d4017c28c 100644 --- a/dist/AdvancedSiteNotices/AdvancedSiteNotices.js +++ b/dist/AdvancedSiteNotices/AdvancedSiteNotices.js @@ -248,7 +248,7 @@ var queryApi = /* @__PURE__ */ function() { }; }(); //! src/AdvancedSiteNotices/modules/loadRemoteNotices.tsx -var import_ext_gadget2 = __toESM(require("ext.gadget.React"), 1); +var import_ext_gadget2 = __toESM(require("ext.gadget.JSX"), 1); var loadRemoteNotices = /* @__PURE__ */ function() { var _ref2 = _asyncToGenerator(function* () { const response = yield queryApi(); @@ -281,9 +281,9 @@ var CLASS_NAME_NOTICE = "".concat(CLASS_NAME, "__notice"); var CLASS_NAME_NOTICE_CONTENT = "".concat(CLASS_NAME_NOTICE, "__content"); var CLASS_NAME_TITLE = "".concat(CLASS_NAME, "__title"); //! src/AdvancedSiteNotices/modules/showNotice.tsx -var import_ext_gadget5 = __toESM(require("ext.gadget.React"), 1); +var import_ext_gadget5 = __toESM(require("ext.gadget.JSX"), 1); //! src/AdvancedSiteNotices/modules/util/generateArea.tsx -var import_ext_gadget4 = __toESM(require("ext.gadget.React"), 1); +var import_ext_gadget4 = __toESM(require("ext.gadget.JSX"), 1); //! src/AdvancedSiteNotices/modules/i18n.ts var import_ext_gadget3 = require("ext.gadget.i18n"); var getI18nMessages = () => { @@ -524,4 +524,4 @@ var showNotices = ($mountPoint, index, remoteNotices) => { /* */ -//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsibm9kZV9tb2R1bGVzLy5wbnBtL2Jyb2FkY2FzdGNoYW5uZWwtcG9seWZpbGxAMS4wLjEvbm9kZV9tb2R1bGVzL2Jyb2FkY2FzdGNoYW5uZWwtcG9seWZpbGwvaW5kZXguanMiLCAic3JjL0FkdmFuY2VkU2l0ZU5vdGljZXMvb3B0aW9ucy5qc29uIiwgInNyYy9BZHZhbmNlZFNpdGVOb3RpY2VzL0FkdmFuY2VkU2l0ZU5vdGljZXMudHMiLCAic3JjL0FkdmFuY2VkU2l0ZU5vdGljZXMvbW9kdWxlcy9hcGkudHMiLCAic3JjL0FkdmFuY2VkU2l0ZU5vdGljZXMvbW9kdWxlcy91dGlsL3F1ZXJ5QXBpLnRzIiwgInNyYy9BZHZhbmNlZFNpdGVOb3RpY2VzL21vZHVsZXMvbG9hZFJlbW90ZU5vdGljZXMudHN4IiwgInNyYy9BZHZhbmNlZFNpdGVOb3RpY2VzL21vZHVsZXMvY29uc3RhbnQudHMiLCAic3JjL0FkdmFuY2VkU2l0ZU5vdGljZXMvbW9kdWxlcy9zaG93Tm90aWNlLnRzeCIsICJzcmMvQWR2YW5jZWRTaXRlTm90aWNlcy9tb2R1bGVzL3V0aWwvZ2VuZXJhdGVBcmVhLnRzeCIsICJzcmMvQWR2YW5jZWRTaXRlTm90aWNlcy9tb2R1bGVzL2kxOG4udHMiLCAic3JjL0FkdmFuY2VkU2l0ZU5vdGljZXMvbW9kdWxlcy91dGlsL21hdGNoQ3JpdGVyaWEudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIihmdW5jdGlvbihnbG9iYWwpIHtcbiAgICB2YXIgY2hhbm5lbHMgPSBbXTtcblxuICAgIGZ1bmN0aW9uIEJyb2FkY2FzdENoYW5uZWwoY2hhbm5lbCkge1xuICAgICAgICB2YXIgJHRoaXMgPSB0aGlzO1xuICAgICAgICBjaGFubmVsID0gU3RyaW5nKGNoYW5uZWwpO1xuXG4gICAgICAgIHZhciBpZCA9ICckQnJvYWRjYXN0Q2hhbm5lbCQnICsgY2hhbm5lbCArICckJztcblxuICAgICAgICBjaGFubmVsc1tpZF0gPSBjaGFubmVsc1tpZF0gfHwgW107XG4gICAgICAgIGNoYW5uZWxzW2lkXS5wdXNoKHRoaXMpO1xuXG4gICAgICAgIHRoaXMuX25hbWUgPSBjaGFubmVsO1xuICAgICAgICB0aGlzLl9pZCA9IGlkO1xuICAgICAgICB0aGlzLl9jbG9zZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5fbWMgPSBuZXcgTWVzc2FnZUNoYW5uZWwoKTtcbiAgICAgICAgdGhpcy5fbWMucG9ydDEuc3RhcnQoKTtcbiAgICAgICAgdGhpcy5fbWMucG9ydDIuc3RhcnQoKTtcblxuICAgICAgICBnbG9iYWwuYWRkRXZlbnRMaXN0ZW5lcignc3RvcmFnZScsIGZ1bmN0aW9uKGUpIHtcbiAgICAgICAgICAgIGlmIChlLnN0b3JhZ2VBcmVhICE9PSBnbG9iYWwubG9jYWxTdG9yYWdlKSByZXR1cm47XG4gICAgICAgICAgICBpZiAoZS5uZXdWYWx1ZSA9PSBudWxsIHx8IGUubmV3VmFsdWUgPT09ICcnKSByZXR1cm47XG4gICAgICAgICAgICBpZiAoZS5rZXkuc3Vic3RyaW5nKDAsIGlkLmxlbmd0aCkgIT09IGlkKSByZXR1cm47XG4gICAgICAgICAgICB2YXIgZGF0YSA9IEpTT04ucGFyc2UoZS5uZXdWYWx1ZSk7XG4gICAgICAgICAgICAkdGhpcy5fbWMucG9ydDIucG9zdE1lc3NhZ2UoZGF0YSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIEJyb2FkY2FzdENoYW5uZWwucHJvdG90eXBlID0ge1xuICAgICAgICAvLyBCcm9hZGNhc3RDaGFubmVsIEFQSVxuICAgICAgICBnZXQgbmFtZSgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9uYW1lO1xuICAgICAgICB9LFxuICAgICAgICBwb3N0TWVzc2FnZTogZnVuY3Rpb24obWVzc2FnZSkge1xuICAgICAgICAgICAgdmFyICR0aGlzID0gdGhpcztcbiAgICAgICAgICAgIGlmICh0aGlzLl9jbG9zZWQpIHtcbiAgICAgICAgICAgICAgICB2YXIgZSA9IG5ldyBFcnJvcigpO1xuICAgICAgICAgICAgICAgIGUubmFtZSA9ICdJbnZhbGlkU3RhdGVFcnJvcic7XG4gICAgICAgICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciB2YWx1ZSA9IEpTT04uc3RyaW5naWZ5KG1lc3NhZ2UpO1xuXG4gICAgICAgICAgICAvLyBCcm9hZGNhc3QgdG8gb3RoZXIgY29udGV4dHMgdmlhIHN0b3JhZ2UgZXZlbnRzLi4uXG4gICAgICAgICAgICB2YXIga2V5ID0gdGhpcy5faWQgKyBTdHJpbmcoRGF0ZS5ub3coKSkgKyAnJCcgKyBTdHJpbmcoTWF0aC5yYW5kb20oKSk7XG4gICAgICAgICAgICBnbG9iYWwubG9jYWxTdG9yYWdlLnNldEl0ZW0oa2V5LCB2YWx1ZSk7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIGdsb2JhbC5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShrZXkpO1xuICAgICAgICAgICAgfSwgNTAwKTtcblxuICAgICAgICAgICAgLy8gQnJvYWRjYXN0IHRvIGN1cnJlbnQgY29udGV4dCB2aWEgcG9ydHNcbiAgICAgICAgICAgIGNoYW5uZWxzW3RoaXMuX2lkXS5mb3JFYWNoKGZ1bmN0aW9uKGJjKSB7XG4gICAgICAgICAgICAgICAgaWYgKGJjID09PSAkdGhpcykgcmV0dXJuO1xuICAgICAgICAgICAgICAgIGJjLl9tYy5wb3J0Mi5wb3N0TWVzc2FnZShKU09OLnBhcnNlKHZhbHVlKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgY2xvc2U6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuX2Nsb3NlZCkgcmV0dXJuO1xuICAgICAgICAgICAgdGhpcy5fY2xvc2VkID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuX21jLnBvcnQxLmNsb3NlKCk7XG4gICAgICAgICAgICB0aGlzLl9tYy5wb3J0Mi5jbG9zZSgpO1xuXG4gICAgICAgICAgICB2YXIgaW5kZXggPSBjaGFubmVsc1t0aGlzLl9pZF0uaW5kZXhPZih0aGlzKTtcbiAgICAgICAgICAgIGNoYW5uZWxzW3RoaXMuX2lkXS5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICB9LFxuXG4gICAgICAgIC8vIEV2ZW50VGFyZ2V0IEFQSVxuICAgICAgICBnZXQgb25tZXNzYWdlKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX21jLnBvcnQxLm9ubWVzc2FnZTtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0IG9ubWVzc2FnZSh2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5fbWMucG9ydDEub25tZXNzYWdlID0gdmFsdWU7XG4gICAgICAgIH0sXG4gICAgICAgIGFkZEV2ZW50TGlzdGVuZXI6IGZ1bmN0aW9uKC8qdHlwZSwgbGlzdGVuZXIgLCB1c2VDYXB0dXJlKi8pIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9tYy5wb3J0MS5hZGRFdmVudExpc3RlbmVyLmFwcGx5KHRoaXMuX21jLnBvcnQxLCBhcmd1bWVudHMpO1xuICAgICAgICB9LFxuICAgICAgICByZW1vdmVFdmVudExpc3RlbmVyOiBmdW5jdGlvbigvKnR5cGUsIGxpc3RlbmVyICwgdXNlQ2FwdHVyZSovKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fbWMucG9ydDEucmVtb3ZlRXZlbnRMaXN0ZW5lci5hcHBseSh0aGlzLl9tYy5wb3J0MSwgYXJndW1lbnRzKTtcbiAgICAgICAgfSxcbiAgICAgICAgZGlzcGF0Y2hFdmVudDogZnVuY3Rpb24oLypldmVudCovKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fbWMucG9ydDEuZGlzcGF0Y2hFdmVudC5hcHBseSh0aGlzLl9tYy5wb3J0MSwgYXJndW1lbnRzKTtcbiAgICAgICAgfSxcbiAgICB9O1xuXG4gICAgZ2xvYmFsLkJyb2FkY2FzdENoYW5uZWwgPSBnbG9iYWwuQnJvYWRjYXN0Q2hhbm5lbCB8fCBCcm9hZGNhc3RDaGFubmVsO1xufSkoc2VsZik7XG4iLCAie1xuXHRcImFqYXhQYWdlVGl0bGVcIjogXCJUZW1wbGF0ZTpBZHZhbmNlZFNpdGVOb3RpY2VzL2FqYXhcIixcblx0XCJtb3VudFBvaW50U2VsZWN0b3JcIjogXCIjc2l0ZU5vdGljZVwiLFxuXHRcInN0b3JhZ2VLZXlcIjogXCJleHQuZ2FkZ2V0LkFkdmFuY2VkU2l0ZU5vdGljZXNfZGlzbWlzc0FTTlwiLFxuXHRcInZlcnNpb25cIjogXCI0LjBcIlxufVxuIiwgImltcG9ydCAqIGFzIE9QVElPTlMgZnJvbSAnLi9vcHRpb25zLmpzb24nO1xuaW1wb3J0IHt0eXBlIFJlbW90ZU5vdGljZXN9IGZyb20gJy4vbW9kdWxlcy91dGlsL3F1ZXJ5QXBpJztcbmltcG9ydCB7Z2V0Qm9keX0gZnJvbSAnZXh0LmdhZGdldC5VdGlsJztcbmltcG9ydCB7bG9hZFJlbW90ZU5vdGljZXN9IGZyb20gJy4vbW9kdWxlcy9sb2FkUmVtb3RlTm90aWNlcyc7XG5pbXBvcnQge3Nob3dOb3RpY2VzfSBmcm9tICcuL21vZHVsZXMvc2hvd05vdGljZSc7XG5cbihhc3luYyBmdW5jdGlvbiBhZHZhbmNlZFNpdGVOb3RpY2VzKCk6IFByb21pc2U8dm9pZD4ge1xuXHRjb25zdCAkYm9keTogSlF1ZXJ5PEhUTUxCb2R5RWxlbWVudD4gPSBhd2FpdCBnZXRCb2R5KCk7XG5cblx0Y29uc3QgJG1vdW50UG9pbnQ6IEpRdWVyeSA9ICRib2R5LmZpbmQoT1BUSU9OUy5tb3VudFBvaW50U2VsZWN0b3IpO1xuXHRpZiAoISRtb3VudFBvaW50Lmxlbmd0aCkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGNvbnN0IHJlbW90ZU5vdGljZXM6IFJlbW90ZU5vdGljZXMgPSBhd2FpdCBsb2FkUmVtb3RlTm90aWNlcygpO1xuXHRpZiAoIXJlbW90ZU5vdGljZXMuJG5vdGljZXM/Lmxlbmd0aCkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGNvbnN0IHJhbmRvbUluZGV4OiBudW1iZXIgPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiByZW1vdGVOb3RpY2VzLiRub3RpY2VzLmxlbmd0aCk7XG5cdHNob3dOb3RpY2VzKCRtb3VudFBvaW50LCByYW5kb21JbmRleCwgcmVtb3RlTm90aWNlcyk7XG59KSgpO1xuIiwgImltcG9ydCAqIGFzIE9QVElPTlMgZnJvbSAnLi4vb3B0aW9ucy5qc29uJztcbmltcG9ydCB7aW5pdE13QXBpfSBmcm9tICdleHQuZ2FkZ2V0LlV0aWwnO1xuXG5jb25zdCBhcGk6IG13LkFwaSA9IGluaXRNd0FwaShgQWR2YW5jZWRTaXRlTm90aWNlcy8ke09QVElPTlMudmVyc2lvbn1gKTtcblxuZXhwb3J0IHthcGl9O1xuIiwgImltcG9ydCAqIGFzIE9QVElPTlMgZnJvbSAnLi4vLi4vb3B0aW9ucy5qc29uJztcbmltcG9ydCB7YXBpfSBmcm9tICcuLi9hcGknO1xuXG5pbnRlcmZhY2UgUmVtb3RlTm90aWNlcyB7XG5cdCRub3RpY2VzPzogSlF1ZXJ5O1xuXHR2ZXJzaW9uPzogc3RyaW5nO1xufVxuXG5jb25zdCB7d2dVc2VyTGFuZ3VhZ2V9ID0gbXcuY29uZmlnLmdldCgpO1xuXG5jb25zdCBwYXJhbWV0ZXJzOiBBcGlQYXJzZVBhcmFtcyA9IHtcblx0YWN0aW9uOiAncGFyc2UnLFxuXHRmb3JtYXQ6ICdqc29uJyxcblx0Zm9ybWF0dmVyc2lvbjogJzInLFxuXHRwcm9wOiAndGV4dCcsXG5cdHBhZ2U6IE9QVElPTlMuYWpheFBhZ2VUaXRsZSxcblx0dXNlbGFuZzogd2dVc2VyTGFuZ3VhZ2UsXG5cdHZhcmlhbnQ6IHdnVXNlckxhbmd1YWdlLFxuXHRzbWF4YWdlOiA2MDAsXG5cdG1heGFnZTogNjAwLFxufTtcblxuY29uc3QgcXVlcnlBcGkgPSBhc3luYyAoKTogUHJvbWlzZTxSZXR1cm5UeXBlPG13LkFwaVsnZ2V0J10+PiA9PiB7XG5cdHRyeSB7XG5cdFx0cmV0dXJuIGF3YWl0IGFwaS5nZXQocGFyYW1ldGVycyk7XG5cdH0gY2F0Y2ggKGVycm9yKSB7XG5cdFx0Y29uc29sZS5lcnJvcignW0FkdmFuY2VkU2l0ZU5vdGljZXNdIEFqYXggZXJyb3I6JywgZXJyb3IpO1xuXHRcdHJldHVybiB7fTtcblx0fVxufTtcblxuZXhwb3J0IHt0eXBlIFJlbW90ZU5vdGljZXMsIHF1ZXJ5QXBpfTtcbiIsICJpbXBvcnQge3R5cGUgUmVtb3RlTm90aWNlcywgcXVlcnlBcGl9IGZyb20gJy4vdXRpbC9xdWVyeUFwaSc7XG5pbXBvcnQgUmVhY3QgZnJvbSAnZXh0LmdhZGdldC5SZWFjdCc7XG5cbnR5cGUgQXBpUmVzcG9uc2UgPSB7XG5cdHBhcnNlOiB7XG5cdFx0dGV4dD86IHN0cmluZztcblx0fTtcbn07XG5cbmNvbnN0IGxvYWRSZW1vdGVOb3RpY2VzID0gYXN5bmMgKCk6IFByb21pc2U8UmVtb3RlTm90aWNlcz4gPT4ge1xuXHRjb25zdCByZXNwb25zZTogQXdhaXRlZDxSZXR1cm5UeXBlPHR5cGVvZiBxdWVyeUFwaT4+ID0gYXdhaXQgcXVlcnlBcGkoKTtcblx0Y29uc3QgcmVzcG9uc2VQYXJzZSA9IHJlc3BvbnNlWydwYXJzZSddIGFzIEFwaVJlc3BvbnNlWydwYXJzZSddO1xuXG5cdGlmICghcmVzcG9uc2VQYXJzZT8udGV4dCkge1xuXHRcdHJldHVybiB7fTtcblx0fVxuXG5cdGNvbnN0IHJlbW90ZU5vdGljZSA9ICg8ZGl2IGlubmVySFRNTD17cmVzcG9uc2VQYXJzZS50ZXh0fSAvPikucXVlcnlTZWxlY3RvcigndWwuc2l0ZW50cycpO1xuXHRpZiAoIXJlbW90ZU5vdGljZSkge1xuXHRcdHJldHVybiB7fTtcblx0fVxuXG5cdGNvbnN0ICRyZW1vdGVOb3RpY2VzOiBOb25OdWxsYWJsZTxSZW1vdGVOb3RpY2VzWyckbm90aWNlcyddPiA9ICQocmVtb3RlTm90aWNlKSBhcyBKUXVlcnk7XG5cblx0Y29uc3QgJG5vdGljZXM6IEpRdWVyeSA9ICRyZW1vdGVOb3RpY2VzLmZpbmQoJ2xpJyk7XG5cdGNvbnN0IHJlbW90ZU5vdGljZXNWZXJzaW9uOiBOb25OdWxsYWJsZTxSZW1vdGVOb3RpY2VzWyd2ZXJzaW9uJ10+ID0gKFxuXHRcdCRyZW1vdGVOb3RpY2VzLmRhdGEoJ2Fzbi12ZXJzaW9uJykgYXMgbnVtYmVyXG5cdCkudG9TdHJpbmcoKTtcblxuXHRyZXR1cm4ge1xuXHRcdCRub3RpY2VzLFxuXHRcdHZlcnNpb246IHJlbW90ZU5vdGljZXNWZXJzaW9uLFxuXHR9O1xufTtcblxuZXhwb3J0IHtsb2FkUmVtb3RlTm90aWNlc307XG4iLCAiY29uc3QgQ0xBU1NfTkFNRTogc3RyaW5nID0gJ2dhZGdldC1hZHZhbmNlZF9zaXRlX25vdGljZXMnO1xuY29uc3QgQ0xBU1NfTkFNRV9ESVNNSVNTOiBzdHJpbmcgPSBgJHtDTEFTU19OQU1FfV9fZGlzbWlzc2A7XG5jb25zdCBDTEFTU19OQU1FX05PVElDRTogc3RyaW5nID0gYCR7Q0xBU1NfTkFNRX1fX25vdGljZWA7XG5jb25zdCBDTEFTU19OQU1FX05PVElDRV9DT05URU5UOiBzdHJpbmcgPSBgJHtDTEFTU19OQU1FX05PVElDRX1fX2NvbnRlbnRgO1xuY29uc3QgQ0xBU1NfTkFNRV9USVRMRTogc3RyaW5nID0gYCR7Q0xBU1NfTkFNRX1fX3RpdGxlYDtcblxuZXhwb3J0IHtDTEFTU19OQU1FLCBDTEFTU19OQU1FX0RJU01JU1MsIENMQVNTX05BTUVfTk9USUNFLCBDTEFTU19OQU1FX05PVElDRV9DT05URU5ULCBDTEFTU19OQU1FX1RJVExFfTtcbiIsICJpbXBvcnQgKiBhcyBPUFRJT05TIGZyb20gJy4uL29wdGlvbnMuanNvbic7XG5pbXBvcnQge0NMQVNTX05BTUVfRElTTUlTUywgQ0xBU1NfTkFNRV9OT1RJQ0VfQ09OVEVOVH0gZnJvbSAnLi9jb25zdGFudCc7XG5pbXBvcnQgUmVhY3QgZnJvbSAnZXh0LmdhZGdldC5SZWFjdCc7XG5pbXBvcnQge3R5cGUgUmVtb3RlTm90aWNlc30gZnJvbSAnLi91dGlsL3F1ZXJ5QXBpJztcbmltcG9ydCB7Z2VuZXJhdGVBcmVhfSBmcm9tICcuL3V0aWwvZ2VuZXJhdGVBcmVhJztcbmltcG9ydCB7Z2V0TWVzc2FnZX0gZnJvbSAnLi9pMThuJztcbmltcG9ydCB7bWF0Y2hDcml0ZXJpYX0gZnJvbSAnLi91dGlsL21hdGNoQ3JpdGVyaWEnO1xuaW1wb3J0IHt0aXBweX0gZnJvbSAnZXh0LmdhZGdldC5UaXBweSc7XG5cbmNvbnN0IGJyb2FkY2FzdENoYW5uZWw6IEJyb2FkY2FzdENoYW5uZWwgPSBuZXcgQnJvYWRjYXN0Q2hhbm5lbChPUFRJT05TLnN0b3JhZ2VLZXkpO1xuXG5sZXQgY3VycmVudFZlcnNpb246IHN0cmluZyA9ICcwJztcbmNvbnN0IGxvY2FsVmVyc2lvbiA9IG13LnN0b3JhZ2UuZ2V0KE9QVElPTlMuc3RvcmFnZUtleSkgYXMgc3RyaW5nIHwgbnVsbDtcblxubGV0IHRpbWVyOiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PjtcblxuY29uc3QgJGFyZWE6IEpRdWVyeSA9IGdlbmVyYXRlQXJlYSgpO1xuY29uc3QgJGN1cnJlbnROb3RpY2U6IEpRdWVyeSA9ICRhcmVhLmZpbmQoYC4ke0NMQVNTX05BTUVfTk9USUNFX0NPTlRFTlR9YCk7XG5jb25zdCAkZGlzbWlzczogSlF1ZXJ5PEhUTUxBbmNob3JFbGVtZW50PiA9ICRhcmVhLmZpbmQoYC4ke0NMQVNTX05BTUVfRElTTUlTU31gKS5maW5kKCdhJyk7XG5cbmNvbnN0IGNsb3NlTm90aWNlcyA9ICgpOiB2b2lkID0+IHtcblx0YnJvYWRjYXN0Q2hhbm5lbC5wb3N0TWVzc2FnZSgnY2xvc2UnKTtcblx0YnJvYWRjYXN0Q2hhbm5lbC5jbG9zZSgpO1xuXHRjbGVhclRpbWVvdXQodGltZXIpO1xuXHQkYXJlYS5yZW1vdmUoKTtcblx0bXcuc3RvcmFnZS5zZXQoT1BUSU9OUy5zdG9yYWdlS2V5LCBjdXJyZW50VmVyc2lvbiwgNjAgKiA2MCAqIDI0ICogMzApO1xufTtcblxuYnJvYWRjYXN0Q2hhbm5lbC5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgY2xvc2VOb3RpY2VzKTtcblxuJGRpc21pc3Mub24oJ2NsaWNrJywgKCk6IHZvaWQgPT4ge1xuXHRjbG9zZU5vdGljZXMoKTtcblx0dm9pZCBtdy5ub3RpZnkoJCgoPHNwYW4gaW5uZXJIVE1MPXtnZXRNZXNzYWdlKCdEaXNtaXNzTm90aWNlJyl9IC8+KSBhcyBIVE1MRWxlbWVudCksIHtcblx0XHR0YWc6ICdBZHZhbmNlZFNpdGVOb3RpY2VzJyxcblx0fSk7XG59KTtcbnRpcHB5KCRkaXNtaXNzLmdldCgwKSBhcyBIVE1MQW5jaG9yRWxlbWVudCwge1xuXHRhcnJvdzogdHJ1ZSxcblx0Y29udGVudDogJGRpc21pc3MuYXR0cignYXJpYS1sYWJlbCcpIGFzIHN0cmluZyxcblx0cGxhY2VtZW50OiAnYm90dG9tJyxcbn0pO1xuXG5sZXQgJG5vdGljZXM6IEpRdWVyeTtcbmNvbnN0IG5vdGljZVN0eWxlczogSFRNTFN0eWxlRWxlbWVudFtdID0gW107XG5jb25zdCBzaG93Tm90aWNlcyA9ICgkbW91bnRQb2ludDogSlF1ZXJ5LCBpbmRleDogbnVtYmVyLCByZW1vdGVOb3RpY2VzPzogUmVtb3RlTm90aWNlcyk6IHZvaWQgPT4ge1xuXHRjdXJyZW50VmVyc2lvbiA9IHJlbW90ZU5vdGljZXM/LnZlcnNpb24gPz8gY3VycmVudFZlcnNpb247XG5cdGlmIChjdXJyZW50VmVyc2lvbiA9PT0gbG9jYWxWZXJzaW9uKSB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0aWYgKHJlbW90ZU5vdGljZXM/LiRub3RpY2VzKSB7XG5cdFx0KHskbm90aWNlc30gPSByZW1vdGVOb3RpY2VzKTtcblx0fVxuXG5cdGNvbnN0IG5vdGljZXNMZW5ndGg6IG51bWJlciA9ICRub3RpY2VzLmxlbmd0aDtcblx0Y29uc3QgbmV4dE5vdGljZUluZGV4OiBudW1iZXIgPSAoaW5kZXggKyAxKSAlIG5vdGljZXNMZW5ndGg7XG5cdGxldCAkbm90aWNlOiBKUXVlcnkgPSAkKCk7XG5cblx0bGV0IGk6IG51bWJlciA9IDA7XG5cdHdoaWxlIChpKysgPCBub3RpY2VzTGVuZ3RoKSB7XG5cdFx0JG5vdGljZSA9ICRub3RpY2VzLmVxKGluZGV4KTtcblx0XHRpZiAoIW1hdGNoQ3JpdGVyaWEoJG5vdGljZSkpIHtcblx0XHRcdHNob3dOb3RpY2VzKCRtb3VudFBvaW50LCBuZXh0Tm90aWNlSW5kZXgpO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRpbmRleCA9IGluZGV4KysgJSBub3RpY2VzTGVuZ3RoO1xuXHR9XG5cblx0aWYgKHR5cGVvZiAkbm90aWNlLmRhdGEoJ2Fzbi1odG1sJykgPT09ICdzdHJpbmcnKSB7XG5cdFx0JG5vdGljZS5kYXRhKCdhc24taHRtbC1yYXcnLCBkZWNvZGVVUklDb21wb25lbnQoKCRub3RpY2UuZGF0YSgnYXNuLWh0bWwnKSBhcyBzdHJpbmcpLnJlcGxhY2UoL1xcKy9nLCAnJTIwJykpKTtcblx0XHQkbm90aWNlLmRhdGEoJ2Fzbi1odG1sJywgbnVsbCk7XG5cdH1cblx0aWYgKHR5cGVvZiAkbm90aWNlLmRhdGEoJ2Fzbi1zdHlsZScpID09PSAnc3RyaW5nJykge1xuXHRcdCRub3RpY2UuZGF0YSgnYXNuLXN0eWxlLWlkJywgbm90aWNlU3R5bGVzLmxlbmd0aCk7XG5cdFx0Y29uc3Qgc3R5bGU6IEhUTUxTdHlsZUVsZW1lbnQgPSBtdy5sb2FkZXIuYWRkU3R5bGVUYWcoXG5cdFx0XHRkZWNvZGVVUklDb21wb25lbnQoKCRub3RpY2UuZGF0YSgnYXNuLXN0eWxlJykgYXMgc3RyaW5nKS5yZXBsYWNlKC9cXCsvZywgJyUyMCcpKVxuXHRcdCk7XG5cdFx0c3R5bGUuZGlzYWJsZWQgPSB0cnVlO1xuXHRcdG5vdGljZVN0eWxlc1tub3RpY2VTdHlsZXMubGVuZ3RoXSA9IHN0eWxlOyAvLyBSZXBsYWNlIEFycmF5I3B1c2ggdG8gYXZvaWQgY29yZS1qcyBwb2x5ZmlsbGluZ1xuXHRcdCRub3RpY2UuZGF0YSgnYXNuLXN0eWxlJywgbnVsbCk7XG5cdH1cblxuXHRjb25zdCBub3RpY2VIdG1sOiBzdHJpbmcgPSAoJG5vdGljZS5kYXRhKCdhc24taHRtbC1yYXcnKSBhcyBzdHJpbmcpIHx8ICRub3RpY2UuaHRtbCgpO1xuXHRjb25zdCBub3RpY2VTdHlsZUlkOiBudW1iZXIgPSAkbm90aWNlLmRhdGEoJ2Fzbi1zdHlsZS1pZCcpIGFzIG51bWJlcjtcblx0Y29uc3QgY3VycmVudE5vdGljZUh0bWw6IHN0cmluZyA9ICRjdXJyZW50Tm90aWNlLmh0bWwoKTtcblx0aWYgKGN1cnJlbnROb3RpY2VIdG1sICYmIGN1cnJlbnROb3RpY2VIdG1sICE9PSBub3RpY2VIdG1sKSB7XG5cdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWpxdWVyeS9uby1hbmltYXRlXG5cdFx0JGN1cnJlbnROb3RpY2Uuc3RvcCgpLmZhZGVPdXQoKCk6IHZvaWQgPT4ge1xuXHRcdFx0Zm9yIChjb25zdCBzdHlsZSBvZiBub3RpY2VTdHlsZXMpIHtcblx0XHRcdFx0c3R5bGUuZGlzYWJsZWQgPSB0cnVlO1xuXHRcdFx0fVxuXHRcdFx0Y29uc3Qgbm90aWNlU3R5bGU6IEhUTUxTdHlsZUVsZW1lbnQgfCB1bmRlZmluZWQgPSBub3RpY2VTdHlsZXNbbm90aWNlU3R5bGVJZF07XG5cdFx0XHRpZiAobm90aWNlU3R5bGUpIHtcblx0XHRcdFx0bm90aWNlU3R5bGUuZGlzYWJsZWQgPSBmYWxzZTtcblx0XHRcdH1cblx0XHRcdCRjdXJyZW50Tm90aWNlLmh0bWwobm90aWNlSHRtbCk7XG5cdFx0XHQvLyBhbmltYXRpb24gdHJ5IC9jYXRjaGVkIHRvIGF2b2lkIFR5cGVFcnJvcjogKEFuaW1hdGlvbi50d2VlbmVyc1twcm9wXXx8W10pLmNvbmNhdCBpcyBub3QgYSBmdW5jdGlvbiBlcnJvciBiZWluZyBzZWVuIGluIHByb2R1Y3Rpb25cblx0XHRcdHRyeSB7XG5cdFx0XHRcdCRjdXJyZW50Tm90aWNlLmZhZGVJbigpO1xuXHRcdFx0fSBjYXRjaCB7fVxuXHRcdH0pO1xuXHR9IGVsc2UgaWYgKCFjdXJyZW50Tm90aWNlSHRtbCkge1xuXHRcdCRtb3VudFBvaW50LmFwcGVuZCgkYXJlYSk7XG5cdFx0Y29uc3Qgbm90aWNlU3R5bGU6IEhUTUxTdHlsZUVsZW1lbnQgfCB1bmRlZmluZWQgPSBub3RpY2VTdHlsZXNbbm90aWNlU3R5bGVJZF07XG5cdFx0aWYgKG5vdGljZVN0eWxlKSB7XG5cdFx0XHRub3RpY2VTdHlsZS5kaXNhYmxlZCA9IGZhbHNlO1xuXHRcdH1cblx0XHQkY3VycmVudE5vdGljZS5odG1sKG5vdGljZUh0bWwpLmZhZGVJbigpO1xuXHR9XG5cblx0dGltZXIgPSBzZXRUaW1lb3V0KCgpOiB2b2lkID0+IHtcblx0XHRzaG93Tm90aWNlcygkbW91bnRQb2ludCwgbmV4dE5vdGljZUluZGV4KTtcblx0fSwgNyAqIDEwMDApO1xufTtcblxuZXhwb3J0IHtzaG93Tm90aWNlc307XG4iLCAiaW1wb3J0IHtcblx0Q0xBU1NfTkFNRSxcblx0Q0xBU1NfTkFNRV9ESVNNSVNTLFxuXHRDTEFTU19OQU1FX05PVElDRSxcblx0Q0xBU1NfTkFNRV9OT1RJQ0VfQ09OVEVOVCxcblx0Q0xBU1NfTkFNRV9USVRMRSxcbn0gZnJvbSAnLi4vY29uc3RhbnQnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ2V4dC5nYWRnZXQuUmVhY3QnO1xuaW1wb3J0IHtnZXRNZXNzYWdlfSBmcm9tICcuLi9pMThuJztcblxuY29uc3QgZ2VuZXJhdGVBcmVhID0gKCk6IEpRdWVyeSA9PiB7XG5cdGNvbnN0IGFyZWE6IFJlYWN0LlJlYWN0RWxlbWVudCA9IChcblx0XHQ8ZGl2IGNsYXNzTmFtZT17W0NMQVNTX05BTUUsICdub3ByaW50J119PlxuXHRcdFx0PGRpdiBjbGFzc05hbWU9e0NMQVNTX05BTUVfVElUTEV9PntnZXRNZXNzYWdlKCdUaXRsZScpfTwvZGl2PlxuXHRcdFx0PGRpdiBjbGFzc05hbWU9e0NMQVNTX05BTUVfTk9USUNFfT5cblx0XHRcdFx0PGRpdiBjbGFzc05hbWU9e1tDTEFTU19OQU1FX05PVElDRV9DT05URU5ULCAnY2VudGVyJ119IC8+XG5cdFx0XHQ8L2Rpdj5cblx0XHRcdDxkaXYgY2xhc3NOYW1lPXtDTEFTU19OQU1FX0RJU01JU1N9PlxuXHRcdFx0XHQ8YSByb2xlPVwiYnV0dG9uXCIgYXJpYS1sYWJlbD17Z2V0TWVzc2FnZSgnRGlzbWlzcycpfSAvPlxuXHRcdFx0PC9kaXY+XG5cdFx0PC9kaXY+XG5cdCk7XG5cblx0cmV0dXJuICQoYXJlYSkgYXMgSlF1ZXJ5O1xufTtcblxuZXhwb3J0IHtnZW5lcmF0ZUFyZWF9O1xuIiwgImltcG9ydCB7bG9jYWxpemV9IGZyb20gJ2V4dC5nYWRnZXQuaTE4bic7XG5cbmNvbnN0IGdldEkxOG5NZXNzYWdlcyA9ICgpID0+IHtcblx0cmV0dXJuIHtcblx0XHREaXNtaXNzOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ1R1cm4gb2ZmIHRoaXMgbm90aWNlJyxcblx0XHRcdGphOiAnQVNO44KS44Kq44OV44Gr44GZ44KLJyxcblx0XHRcdCd6aC1oYW5zJzogJ+WFs+mXreWFrOWRiicsXG5cdFx0XHQnemgtaGFudCc6ICfpl5zplonlhazlkYonLFxuXHRcdH0pLFxuXHRcdERpc21pc3NOb3RpY2U6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnWW91IGhhdmUgY2hvc2VuIHRvIHR1cm4gb2ZmIEFkdmFuY2VkIFNpdGUgTm90aWNlcyBmb3IgdGhlIG5leHQgMzAgZGF5cy4gPGJyPklmIHRoZSBzaXRlLXdpZGUgYW5ub3VuY2VtZW50IGlzIG5vdCB1cGRhdGVkIHdpdGhpbiB0aGUgbmV4dCAzMCBkYXlzLCBpdCB3aWxsIG5vIGxvbmdlciBiZSBkaXNwbGF5ZWQ7IGhvd2V2ZXIsIGlmIHRoZSBzaXRlLXdpZGUgYW5ub3VuY2VtZW50IGlzIHVwZGF0ZWQsIGl0IHdpbGwgYmUgZGlzcGxheWVkIGFnYWluLicsXG5cdFx0XHRqYTogJ+S7iuW+jDMw5pel6ZaT44CBQVNO44KS44Kq44OV44Gr44GZ44KL44GT44Go44KS6YG45oqe44GX44G+44GX44Gf44CCPGJyPuOCteOCpOODiOWFqOS9k+OBrumAmuefpeOBjOS7iuW+jDMw5pel5Lul5YaF44Gr5pu05paw44GV44KM44Gq44GE5aC05ZCI44CB6KGo56S644GV44KM44Gq44GP44Gq44KK44G+44GZ44CC44Gf44Gg44GX44CB44K144Kk44OI5YWo5L2T44Gu6YCa55+l44GM5pu05paw44GV44KM44KL5aC05ZCI44Gv44CB5YaN44Gz6KGo56S644GV44KM44G+44GZ44CCJyxcblx0XHRcdCd6aC1oYW5zJzpcblx0XHRcdFx0J+aCqOW3sumAieaLqeWcqOaOpeS4i+adpTMw5pel5YaF5YWz6Zet4oCc6auY57qn56uZ54K56YCa5ZGK4oCd44CCPGJyPuiLpeaOpeS4i+adpTMw5pel5YaF5YWo56uZ5YWs5ZGK5pyq5pyJ5pu05paw77yM5YiZ5LiN5YaN5pi+56S677yb5L2G5piv77yM6Iul5YWo56uZ5YWs5ZGK5YaF5a655pu05paw77yM5YiZ5bCG6YeN5paw5pi+56S644CCJyxcblx0XHRcdCd6aC1oYW50Jzpcblx0XHRcdFx0J+aCqOW3sumBuOaTh+WcqOaOpeS4i+S+hjMw5pel5YWn6Zec6ZaJ44CM6auY57Sa56uZ6bue6YCa5ZGK44CN44CCPGJyPuiLpeaOpeS4i+S+hjMw5pel5YWn5YWo56uZ5YWs5ZGK5pyq5pyJ5pu05paw77yM5YmH5LiN5YaN6aGv56S677yb5L2G5piv77yM6Iul5YWo56uZ5YWs5ZGK5YWn5a655pu05paw77yM5YmH5bCH6YeN5paw6aGv56S644CCJyxcblx0XHR9KSxcblx0XHRUaXRsZTogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdBbm5vdW5jZW1lbnQnLFxuXHRcdFx0amE6ICfpgJrnn6UnLFxuXHRcdFx0emg6ICflhazlkYonLFxuXHRcdH0pLFxuXHR9O1xufTtcblxuY29uc3QgaTE4bk1lc3NhZ2VzID0gZ2V0STE4bk1lc3NhZ2VzKCk7XG5cbmNvbnN0IGdldE1lc3NhZ2U6IEdldE1lc3NhZ2VzPHR5cGVvZiBpMThuTWVzc2FnZXM+ID0gKGtleSkgPT4ge1xuXHRyZXR1cm4gaTE4bk1lc3NhZ2VzW2tleV0gfHwga2V5O1xufTtcblxuZXhwb3J0IHtnZXRNZXNzYWdlfTtcbiIsICJjb25zdCB7d2dVc2VyR3JvdXBzLCB3Z0dsb2JhbEdyb3Vwcywgd2dVc2VyTGFuZ3VhZ2V9ID0gbXcuY29uZmlnLmdldCgpO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY2FtZWxjYXNlXG5jb25zdCBpbl9ncm91cCA9IChncm91cDogc3RyaW5nKTogYm9vbGVhbiA9PiB7XG5cdHJldHVybiAhISh3Z1VzZXJHcm91cHM/LmluY2x1ZGVzKGdyb3VwKSB8fCAod2dHbG9iYWxHcm91cHMgYXMgc3RyaW5nW10pPy5pbmNsdWRlcyhncm91cCkpO1xufTtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNhbWVsY2FzZVxuY29uc3Qgb25seV9mb3IgPSAodXNlckxhbmd1YWdlOiBzdHJpbmcpOiBib29sZWFuID0+IHtcblx0cmV0dXJuIHVzZXJMYW5ndWFnZSA9PT0gd2dVc2VyTGFuZ3VhZ2U7XG59O1xuXG5jb25zdCBtYXRjaENyaXRlcmlhID0gKCRub3RpY2U6IEpRdWVyeSk6IGJvb2xlYW4gPT4ge1xuXHRjb25zdCBjYWNoZSA9ICRub3RpY2UuZGF0YSgnYXNuLWNhY2hlJykgYXMgYm9vbGVhbiB8IHVuZGVmaW5lZDtcblx0aWYgKGNhY2hlICE9PSB1bmRlZmluZWQpIHtcblx0XHRyZXR1cm4gY2FjaGU7XG5cdH1cblxuXHRjb25zdCB0ZXN0Q3JpdGVyaWEgPSAoY3JpdGVyaWE6IHN0cmluZyk6IGJvb2xlYW4gPT4ge1xuXHRcdC8vIEZJWE1FOiBUaGlzIHNob3VsZG4ndCBiZSB1c2luZyBldmFsIG9uIGRhdGEgZW50ZXJlZCBpbiB3aWtpdGV4dC5cblx0XHQvLyBJZiB0aGF0IGRhdGEgaXMgbWFsZm9ybWVkIGl0IHdpbGwgdGhyb3cgYW4gZXhjZXB0aW9uIGUuZy4gY3JpdGVyaWEgPSBcIihmYWxzZSkpXCJcblx0XHR0cnkge1xuXHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWV2YWxcblx0XHRcdHJldHVybiB3aW5kb3cuZXZhbChjcml0ZXJpYSkgYXMgYm9vbGVhbjtcblx0XHR9IGNhdGNoIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cdH07XG5cblx0bGV0IHJlc3VsdDogYm9vbGVhbiA9IGZhbHNlO1xuXG5cdGNvbnN0IGNyaXRlcmlhRGF0YTogc3RyaW5nID0gKCgkbm90aWNlLmRhdGEoJ2Fzbi1jcml0ZXJpYScpIGFzIHN0cmluZyB8IHVuZGVmaW5lZCkgPz8gJycpLnRyaW0oKTtcblx0aWYgKGNyaXRlcmlhRGF0YSkge1xuXHRcdHRyeSB7XG5cdFx0XHRyZXN1bHQgPSB0ZXN0Q3JpdGVyaWEoZGVjb2RlVVJJQ29tcG9uZW50KGNyaXRlcmlhRGF0YS5yZXBsYWNlKC9cXCsvZywgJyUyMCcpKSk7XG5cdFx0fSBjYXRjaCB7XG5cdFx0XHRyZXN1bHQgPSB0cnVlO1xuXHRcdH1cblx0fSBlbHNlIGlmICgkbm90aWNlLmF0dHIoJ2NsYXNzJykpIHtcblx0XHRsZXQgY3JpdGVyaWE6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cblx0XHRpZiAoJG5vdGljZS5oYXNDbGFzcygnb25seV9zeXNvcCcpKSB7XG5cdFx0XHRjcml0ZXJpYSB8fD0gaW5fZ3JvdXAoJ3N5c29wJykgfHwgaW5fZ3JvdXAoJ3N0ZXdhcmQnKSB8fCBpbl9ncm91cCgncWl1d2VuJyk7XG5cdFx0fVxuXHRcdGlmICgkbm90aWNlLmhhc0NsYXNzKCdvbmx5X2xvZ2dlZCcpKSB7XG5cdFx0XHRjcml0ZXJpYSB8fD0gaW5fZ3JvdXAoJ3VzZXInKTtcblx0XHR9XG5cdFx0aWYgKCRub3RpY2UuaGFzQ2xhc3MoJ29ubHlfYW5vbicpKSB7XG5cdFx0XHRjcml0ZXJpYSB8fD0gIWluX2dyb3VwKCd1c2VyJyk7XG5cdFx0fVxuXHRcdGlmICgkbm90aWNlLmhhc0NsYXNzKCdvbmx5X3poX2NuJykpIHtcblx0XHRcdGNyaXRlcmlhIHx8PSBvbmx5X2ZvcignemgtY24nKTtcblx0XHR9XG5cdFx0aWYgKCRub3RpY2UuaGFzQ2xhc3MoJ29ubHlfemhfc2cnKSkge1xuXHRcdFx0Y3JpdGVyaWEgfHw9IG9ubHlfZm9yKCd6aC1zZycpO1xuXHRcdH1cblx0XHRpZiAoJG5vdGljZS5oYXNDbGFzcygnb25seV96aF9teScpKSB7XG5cdFx0XHRjcml0ZXJpYSB8fD0gb25seV9mb3IoJ3poLW15Jyk7XG5cdFx0fVxuXHRcdGlmICgkbm90aWNlLmhhc0NsYXNzKCdvbmx5X3poX2hrJykpIHtcblx0XHRcdGNyaXRlcmlhIHx8PSBvbmx5X2ZvcignemgtaGsnKTtcblx0XHR9XG5cdFx0aWYgKCRub3RpY2UuaGFzQ2xhc3MoJ29ubHlfemhfbW8nKSkge1xuXHRcdFx0Y3JpdGVyaWEgfHw9IG9ubHlfZm9yKCd6aC1tbycpO1xuXHRcdH1cblx0XHRpZiAoJG5vdGljZS5oYXNDbGFzcygnb25seV96aF90dycpKSB7XG5cdFx0XHRjcml0ZXJpYSB8fD0gb25seV9mb3IoJ3poLXR3Jyk7XG5cdFx0fVxuXG5cdFx0aWYgKGNyaXRlcmlhID09PSB1bmRlZmluZWQpIHtcblx0XHRcdGNyaXRlcmlhID0gdHJ1ZTtcblx0XHR9XG5cblx0XHRyZXN1bHQgPSBjcml0ZXJpYTtcblx0fSBlbHNlIHtcblx0XHRyZXN1bHQgPSB0cnVlO1xuXHR9XG5cblx0JG5vdGljZS5kYXRhKCdhc24tY2FjaGUnLCByZXN1bHQpO1xuXG5cdHJldHVybiByZXN1bHQ7XG59O1xuXG5leHBvcnQge21hdGNoQ3JpdGVyaWF9O1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBLEtBQUMsU0FBUyxRQUFRO0FBQ2QsVUFBSSxXQUFXLENBQUM7QUFFaEIsZUFBU0Esa0JBQWlCLFNBQVM7QUFDL0IsWUFBSSxRQUFRO0FBQ1osa0JBQVUsT0FBTyxPQUFPO0FBRXhCLFlBQUksS0FBSyx1QkFBdUIsVUFBVTtBQUUxQyxpQkFBUyxFQUFFLElBQUksU0FBUyxFQUFFLEtBQUssQ0FBQztBQUNoQyxpQkFBUyxFQUFFLEVBQUUsS0FBSyxJQUFJO0FBRXRCLGFBQUssUUFBUTtBQUNiLGFBQUssTUFBTTtBQUNYLGFBQUssVUFBVTtBQUNmLGFBQUssTUFBTSxJQUFJLGVBQWU7QUFDOUIsYUFBSyxJQUFJLE1BQU0sTUFBTTtBQUNyQixhQUFLLElBQUksTUFBTSxN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QkFBQSxNQUFxQzVGLGtCQUFrQjtBQUM3RCxRQUFJLEdBQUFtSCx3QkFBQ3ZCLGNBQWMzRSxjQUFBLFFBQUFrRywwQkFBQSxVQUFkQSxzQkFBd0JwQixTQUFRO0FBQ3BDO0lBQ0Q7QUFFQSxVQUFNdUIsY0FBc0JDLEtBQUtDLE1BQU1ELEtBQUtFLE9BQU8sSUFBSTdCLGNBQWMzRSxTQUFTOEUsTUFBTTtBQUNwRk4sZ0JBQVlDLGFBQWE0QixhQUFhMUIsYUFBYTtFQUNwRCxDQUFBO0FBQUEsV0FmZ0I4QixzQkFBQTtBQUFBLFdBQUFDLHFCQUFBL0gsTUFBQSxNQUFBQyxTQUFBO0VBQUE7QUFBQSxTQUFBNkg7QUFBQSxHQUFBLEVBZWI7IiwKICAibmFtZXMiOiBbIkJyb2FkY2FzdENoYW5uZWwiLCAiYWpheFBhZ2VUaXRsZSIsICJtb3VudFBvaW50U2VsZWN0b3IiLCAic3RvcmFnZUtleSIsICJ2ZXJzaW9uIiwgImltcG9ydF9leHRfZ2FkZ2V0NyIsICJyZXF1aXJlIiwgImltcG9ydF9leHRfZ2FkZ2V0IiwgImFwaSIsICJpbml0TXdBcGkiLCAiY29uY2F0IiwgIndnVXNlckxhbmd1YWdlIiwgIm13IiwgImNvbmZpZyIsICJnZXQiLCAicGFyYW1ldGVycyIsICJhY3Rpb24iLCAiZm9ybWF0IiwgImZvcm1hdHZlcnNpb24iLCAicHJvcCIsICJwYWdlIiwgInVzZWxhbmciLCAidmFyaWFudCIsICJzbWF4YWdlIiwgIm1heGFnZSIsICJxdWVyeUFwaSIsICJfcmVmIiwgIl9hc3luY1RvR2VuZXJhdG9yIiwgImVycm9yIiwgImNvbnNvbGUiLCAiYXBwbHkiLCAiYXJndW1lbnRzIiwgImltcG9ydF9leHRfZ2FkZ2V0MiIsICJfX3RvRVNNIiwgImxvYWRSZW1vdGVOb3RpY2VzIiwgIl9yZWYyIiwgInJlc3BvbnNlIiwgInJlc3BvbnNlUGFyc2UiLCAidGV4dCIsICJyZW1vdGVOb3RpY2UiLCAiZGVmYXVsdCIsICJjcmVhdGVFbGVtZW50IiwgImlubmVySFRNTCIsICJxdWVyeVNlbGVjdG9yIiwgIiRyZW1vdGVOb3RpY2VzIiwgIiQiLCAiJG5vdGljZXMyIiwgImZpbmQiLCAicmVtb3RlTm90aWNlc1ZlcnNpb24iLCAiZGF0YSIsICJ0b1N0cmluZyIsICIkbm90aWNlcyIsICJDTEFTU19OQU1FIiwgIkNMQVNTX05BTUVfRElTTUlTUyIsICJDTEFTU19OQU1FX05PVElDRSIsICJDTEFTU19OQU1FX05PVElDRV9DT05URU5UIiwgIkNMQVNTX05BTUVfVElUTEUiLCAiaW1wb3J0X2V4dF9nYWRnZXQ1IiwgImltcG9ydF9leHRfZ2FkZ2V0NCIsICJpbXBvcnRfZXh0X2dhZGdldDMiLCAiZ2V0STE4bk1lc3NhZ2VzIiwgIkRpc21pc3MiLCAibG9jYWxpemUiLCAiZW4iLCAiamEiLCAiRGlzbWlzc05vdGljZSIsICJUaXRsZSIsICJ6aCIsICJpMThuTWVzc2FnZXMiLCAiZ2V0TWVzc2FnZSIsICJrZXkiLCAiZ2VuZXJhdGVBcmVhIiwgImFyZWEiLCAiY2xhc3NOYW1lIiwgInJvbGUiLCAid2dVc2VyR3JvdXBzIiwgIndnR2xvYmFsR3JvdXBzIiwgIndnVXNlckxhbmd1YWdlMiIsICJpbl9ncm91cCIsICJncm91cCIsICJpbmNsdWRlcyIsICJvbmx5X2ZvciIsICJ1c2VyTGFuZ3VhZ2UiLCAibWF0Y2hDcml0ZXJpYSIsICIkbm90aWNlIiwgIl8kbm90aWNlJGRhdGEiLCAiY2FjaGUiLCAidGVzdENyaXRlcmlhIiwgImNyaXRlcmlhIiwgIndpbmRvdyIsICJldmFsIiwgInJlc3VsdCIsICJjcml0ZXJpYURhdGEiLCAidHJpbSIsICJkZWNvZGVVUklDb21wb25lbnQiLCAicmVwbGFjZSIsICJhdHRyIiwgImhhc0NsYXNzIiwgImltcG9ydF9leHRfZ2FkZ2V0NiIsICJicm9hZGNhc3RDaGFubmVsIiwgIkJyb2FkY2FzdENoYW5uZWwiLCAiY3VycmVudFZlcnNpb24iLCAibG9jYWxWZXJzaW9uIiwgInN0b3JhZ2UiLCAidGltZXIiLCAiJGFyZWEiLCAiJGN1cnJlbnROb3RpY2UiLCAiJGRpc21pc3MiLCAiY2xvc2VOb3RpY2VzIiwgInBvc3RNZXNzYWdlIiwgImNsb3NlIiwgImNsZWFyVGltZW91dCIsICJyZW1vdmUiLCAic2V0IiwgImFkZEV2ZW50TGlzdGVuZXIiLCAib24iLCAibm90aWZ5IiwgInRhZyIsICJ0aXBweSIsICJhcnJvdyIsICJjb250ZW50IiwgInBsYWNlbWVudCIsICJub3RpY2VTdHlsZXMiLCAic2hvd05vdGljZXMiLCAiJG1vdW50UG9pbnQiLCAiaW5kZXgiLCAicmVtb3RlTm90aWNlcyIsICJfcmVtb3RlTm90aWNlcyR2ZXJzaW8iLCAibm90aWNlc0xlbmd0aCIsICJsZW5ndGgiLCAibmV4dE5vdGljZUluZGV4IiwgImkiLCAiZXEiLCAic3R5bGUiLCAibG9hZGVyIiwgImFkZFN0eWxlVGFnIiwgImRpc2FibGVkIiwgIm5vdGljZUh0bWwiLCAiaHRtbCIsICJub3RpY2VTdHlsZUlkIiwgImN1cnJlbnROb3RpY2VIdG1sIiwgInN0b3AiLCAiZmFkZU91dCIsICJfaSIsICJfbm90aWNlU3R5bGVzIiwgIm5vdGljZVN0eWxlIiwgImZhZGVJbiIsICJhcHBlbmQiLCAic2V0VGltZW91dCIsICJfcmVtb3RlTm90aWNlcyQkbm90aWMiLCAiJGJvZHkiLCAiZ2V0Qm9keSIsICJyYW5kb21JbmRleCIsICJNYXRoIiwgImZsb29yIiwgInJhbmRvbSIsICJhZHZhbmNlZFNpdGVOb3RpY2VzIiwgIl9hZHZhbmNlZFNpdGVOb3RpY2VzIl0KfQo= +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsibm9kZV9tb2R1bGVzLy5wbnBtL2Jyb2FkY2FzdGNoYW5uZWwtcG9seWZpbGxAMS4wLjEvbm9kZV9tb2R1bGVzL2Jyb2FkY2FzdGNoYW5uZWwtcG9seWZpbGwvaW5kZXguanMiLCAic3JjL0FkdmFuY2VkU2l0ZU5vdGljZXMvb3B0aW9ucy5qc29uIiwgInNyYy9BZHZhbmNlZFNpdGVOb3RpY2VzL0FkdmFuY2VkU2l0ZU5vdGljZXMudHMiLCAic3JjL0FkdmFuY2VkU2l0ZU5vdGljZXMvbW9kdWxlcy9hcGkudHMiLCAic3JjL0FkdmFuY2VkU2l0ZU5vdGljZXMvbW9kdWxlcy91dGlsL3F1ZXJ5QXBpLnRzIiwgInNyYy9BZHZhbmNlZFNpdGVOb3RpY2VzL21vZHVsZXMvbG9hZFJlbW90ZU5vdGljZXMudHN4IiwgInNyYy9BZHZhbmNlZFNpdGVOb3RpY2VzL21vZHVsZXMvY29uc3RhbnQudHMiLCAic3JjL0FkdmFuY2VkU2l0ZU5vdGljZXMvbW9kdWxlcy9zaG93Tm90aWNlLnRzeCIsICJzcmMvQWR2YW5jZWRTaXRlTm90aWNlcy9tb2R1bGVzL3V0aWwvZ2VuZXJhdGVBcmVhLnRzeCIsICJzcmMvQWR2YW5jZWRTaXRlTm90aWNlcy9tb2R1bGVzL2kxOG4udHMiLCAic3JjL0FkdmFuY2VkU2l0ZU5vdGljZXMvbW9kdWxlcy91dGlsL21hdGNoQ3JpdGVyaWEudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIihmdW5jdGlvbihnbG9iYWwpIHtcbiAgICB2YXIgY2hhbm5lbHMgPSBbXTtcblxuICAgIGZ1bmN0aW9uIEJyb2FkY2FzdENoYW5uZWwoY2hhbm5lbCkge1xuICAgICAgICB2YXIgJHRoaXMgPSB0aGlzO1xuICAgICAgICBjaGFubmVsID0gU3RyaW5nKGNoYW5uZWwpO1xuXG4gICAgICAgIHZhciBpZCA9ICckQnJvYWRjYXN0Q2hhbm5lbCQnICsgY2hhbm5lbCArICckJztcblxuICAgICAgICBjaGFubmVsc1tpZF0gPSBjaGFubmVsc1tpZF0gfHwgW107XG4gICAgICAgIGNoYW5uZWxzW2lkXS5wdXNoKHRoaXMpO1xuXG4gICAgICAgIHRoaXMuX25hbWUgPSBjaGFubmVsO1xuICAgICAgICB0aGlzLl9pZCA9IGlkO1xuICAgICAgICB0aGlzLl9jbG9zZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5fbWMgPSBuZXcgTWVzc2FnZUNoYW5uZWwoKTtcbiAgICAgICAgdGhpcy5fbWMucG9ydDEuc3RhcnQoKTtcbiAgICAgICAgdGhpcy5fbWMucG9ydDIuc3RhcnQoKTtcblxuICAgICAgICBnbG9iYWwuYWRkRXZlbnRMaXN0ZW5lcignc3RvcmFnZScsIGZ1bmN0aW9uKGUpIHtcbiAgICAgICAgICAgIGlmIChlLnN0b3JhZ2VBcmVhICE9PSBnbG9iYWwubG9jYWxTdG9yYWdlKSByZXR1cm47XG4gICAgICAgICAgICBpZiAoZS5uZXdWYWx1ZSA9PSBudWxsIHx8IGUubmV3VmFsdWUgPT09ICcnKSByZXR1cm47XG4gICAgICAgICAgICBpZiAoZS5rZXkuc3Vic3RyaW5nKDAsIGlkLmxlbmd0aCkgIT09IGlkKSByZXR1cm47XG4gICAgICAgICAgICB2YXIgZGF0YSA9IEpTT04ucGFyc2UoZS5uZXdWYWx1ZSk7XG4gICAgICAgICAgICAkdGhpcy5fbWMucG9ydDIucG9zdE1lc3NhZ2UoZGF0YSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIEJyb2FkY2FzdENoYW5uZWwucHJvdG90eXBlID0ge1xuICAgICAgICAvLyBCcm9hZGNhc3RDaGFubmVsIEFQSVxuICAgICAgICBnZXQgbmFtZSgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9uYW1lO1xuICAgICAgICB9LFxuICAgICAgICBwb3N0TWVzc2FnZTogZnVuY3Rpb24obWVzc2FnZSkge1xuICAgICAgICAgICAgdmFyICR0aGlzID0gdGhpcztcbiAgICAgICAgICAgIGlmICh0aGlzLl9jbG9zZWQpIHtcbiAgICAgICAgICAgICAgICB2YXIgZSA9IG5ldyBFcnJvcigpO1xuICAgICAgICAgICAgICAgIGUubmFtZSA9ICdJbnZhbGlkU3RhdGVFcnJvcic7XG4gICAgICAgICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciB2YWx1ZSA9IEpTT04uc3RyaW5naWZ5KG1lc3NhZ2UpO1xuXG4gICAgICAgICAgICAvLyBCcm9hZGNhc3QgdG8gb3RoZXIgY29udGV4dHMgdmlhIHN0b3JhZ2UgZXZlbnRzLi4uXG4gICAgICAgICAgICB2YXIga2V5ID0gdGhpcy5faWQgKyBTdHJpbmcoRGF0ZS5ub3coKSkgKyAnJCcgKyBTdHJpbmcoTWF0aC5yYW5kb20oKSk7XG4gICAgICAgICAgICBnbG9iYWwubG9jYWxTdG9yYWdlLnNldEl0ZW0oa2V5LCB2YWx1ZSk7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIGdsb2JhbC5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShrZXkpO1xuICAgICAgICAgICAgfSwgNTAwKTtcblxuICAgICAgICAgICAgLy8gQnJvYWRjYXN0IHRvIGN1cnJlbnQgY29udGV4dCB2aWEgcG9ydHNcbiAgICAgICAgICAgIGNoYW5uZWxzW3RoaXMuX2lkXS5mb3JFYWNoKGZ1bmN0aW9uKGJjKSB7XG4gICAgICAgICAgICAgICAgaWYgKGJjID09PSAkdGhpcykgcmV0dXJuO1xuICAgICAgICAgICAgICAgIGJjLl9tYy5wb3J0Mi5wb3N0TWVzc2FnZShKU09OLnBhcnNlKHZhbHVlKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgY2xvc2U6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuX2Nsb3NlZCkgcmV0dXJuO1xuICAgICAgICAgICAgdGhpcy5fY2xvc2VkID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuX21jLnBvcnQxLmNsb3NlKCk7XG4gICAgICAgICAgICB0aGlzLl9tYy5wb3J0Mi5jbG9zZSgpO1xuXG4gICAgICAgICAgICB2YXIgaW5kZXggPSBjaGFubmVsc1t0aGlzLl9pZF0uaW5kZXhPZih0aGlzKTtcbiAgICAgICAgICAgIGNoYW5uZWxzW3RoaXMuX2lkXS5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICB9LFxuXG4gICAgICAgIC8vIEV2ZW50VGFyZ2V0IEFQSVxuICAgICAgICBnZXQgb25tZXNzYWdlKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX21jLnBvcnQxLm9ubWVzc2FnZTtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0IG9ubWVzc2FnZSh2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5fbWMucG9ydDEub25tZXNzYWdlID0gdmFsdWU7XG4gICAgICAgIH0sXG4gICAgICAgIGFkZEV2ZW50TGlzdGVuZXI6IGZ1bmN0aW9uKC8qdHlwZSwgbGlzdGVuZXIgLCB1c2VDYXB0dXJlKi8pIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9tYy5wb3J0MS5hZGRFdmVudExpc3RlbmVyLmFwcGx5KHRoaXMuX21jLnBvcnQxLCBhcmd1bWVudHMpO1xuICAgICAgICB9LFxuICAgICAgICByZW1vdmVFdmVudExpc3RlbmVyOiBmdW5jdGlvbigvKnR5cGUsIGxpc3RlbmVyICwgdXNlQ2FwdHVyZSovKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fbWMucG9ydDEucmVtb3ZlRXZlbnRMaXN0ZW5lci5hcHBseSh0aGlzLl9tYy5wb3J0MSwgYXJndW1lbnRzKTtcbiAgICAgICAgfSxcbiAgICAgICAgZGlzcGF0Y2hFdmVudDogZnVuY3Rpb24oLypldmVudCovKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fbWMucG9ydDEuZGlzcGF0Y2hFdmVudC5hcHBseSh0aGlzLl9tYy5wb3J0MSwgYXJndW1lbnRzKTtcbiAgICAgICAgfSxcbiAgICB9O1xuXG4gICAgZ2xvYmFsLkJyb2FkY2FzdENoYW5uZWwgPSBnbG9iYWwuQnJvYWRjYXN0Q2hhbm5lbCB8fCBCcm9hZGNhc3RDaGFubmVsO1xufSkoc2VsZik7XG4iLCAie1xuXHRcImFqYXhQYWdlVGl0bGVcIjogXCJUZW1wbGF0ZTpBZHZhbmNlZFNpdGVOb3RpY2VzL2FqYXhcIixcblx0XCJtb3VudFBvaW50U2VsZWN0b3JcIjogXCIjc2l0ZU5vdGljZVwiLFxuXHRcInN0b3JhZ2VLZXlcIjogXCJleHQuZ2FkZ2V0LkFkdmFuY2VkU2l0ZU5vdGljZXNfZGlzbWlzc0FTTlwiLFxuXHRcInZlcnNpb25cIjogXCI0LjBcIlxufVxuIiwgImltcG9ydCAqIGFzIE9QVElPTlMgZnJvbSAnLi9vcHRpb25zLmpzb24nO1xuaW1wb3J0IHt0eXBlIFJlbW90ZU5vdGljZXN9IGZyb20gJy4vbW9kdWxlcy91dGlsL3F1ZXJ5QXBpJztcbmltcG9ydCB7Z2V0Qm9keX0gZnJvbSAnZXh0LmdhZGdldC5VdGlsJztcbmltcG9ydCB7bG9hZFJlbW90ZU5vdGljZXN9IGZyb20gJy4vbW9kdWxlcy9sb2FkUmVtb3RlTm90aWNlcyc7XG5pbXBvcnQge3Nob3dOb3RpY2VzfSBmcm9tICcuL21vZHVsZXMvc2hvd05vdGljZSc7XG5cbihhc3luYyBmdW5jdGlvbiBhZHZhbmNlZFNpdGVOb3RpY2VzKCk6IFByb21pc2U8dm9pZD4ge1xuXHRjb25zdCAkYm9keTogSlF1ZXJ5PEhUTUxCb2R5RWxlbWVudD4gPSBhd2FpdCBnZXRCb2R5KCk7XG5cblx0Y29uc3QgJG1vdW50UG9pbnQ6IEpRdWVyeSA9ICRib2R5LmZpbmQoT1BUSU9OUy5tb3VudFBvaW50U2VsZWN0b3IpO1xuXHRpZiAoISRtb3VudFBvaW50Lmxlbmd0aCkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGNvbnN0IHJlbW90ZU5vdGljZXM6IFJlbW90ZU5vdGljZXMgPSBhd2FpdCBsb2FkUmVtb3RlTm90aWNlcygpO1xuXHRpZiAoIXJlbW90ZU5vdGljZXMuJG5vdGljZXM/Lmxlbmd0aCkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGNvbnN0IHJhbmRvbUluZGV4OiBudW1iZXIgPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiByZW1vdGVOb3RpY2VzLiRub3RpY2VzLmxlbmd0aCk7XG5cdHNob3dOb3RpY2VzKCRtb3VudFBvaW50LCByYW5kb21JbmRleCwgcmVtb3RlTm90aWNlcyk7XG59KSgpO1xuIiwgImltcG9ydCAqIGFzIE9QVElPTlMgZnJvbSAnLi4vb3B0aW9ucy5qc29uJztcbmltcG9ydCB7aW5pdE13QXBpfSBmcm9tICdleHQuZ2FkZ2V0LlV0aWwnO1xuXG5jb25zdCBhcGk6IG13LkFwaSA9IGluaXRNd0FwaShgQWR2YW5jZWRTaXRlTm90aWNlcy8ke09QVElPTlMudmVyc2lvbn1gKTtcblxuZXhwb3J0IHthcGl9O1xuIiwgImltcG9ydCAqIGFzIE9QVElPTlMgZnJvbSAnLi4vLi4vb3B0aW9ucy5qc29uJztcbmltcG9ydCB7YXBpfSBmcm9tICcuLi9hcGknO1xuXG5pbnRlcmZhY2UgUmVtb3RlTm90aWNlcyB7XG5cdCRub3RpY2VzPzogSlF1ZXJ5O1xuXHR2ZXJzaW9uPzogc3RyaW5nO1xufVxuXG5jb25zdCB7d2dVc2VyTGFuZ3VhZ2V9ID0gbXcuY29uZmlnLmdldCgpO1xuXG5jb25zdCBwYXJhbWV0ZXJzOiBBcGlQYXJzZVBhcmFtcyA9IHtcblx0YWN0aW9uOiAncGFyc2UnLFxuXHRmb3JtYXQ6ICdqc29uJyxcblx0Zm9ybWF0dmVyc2lvbjogJzInLFxuXHRwcm9wOiAndGV4dCcsXG5cdHBhZ2U6IE9QVElPTlMuYWpheFBhZ2VUaXRsZSxcblx0dXNlbGFuZzogd2dVc2VyTGFuZ3VhZ2UsXG5cdHZhcmlhbnQ6IHdnVXNlckxhbmd1YWdlLFxuXHRzbWF4YWdlOiA2MDAsXG5cdG1heGFnZTogNjAwLFxufTtcblxuY29uc3QgcXVlcnlBcGkgPSBhc3luYyAoKTogUHJvbWlzZTxSZXR1cm5UeXBlPG13LkFwaVsnZ2V0J10+PiA9PiB7XG5cdHRyeSB7XG5cdFx0cmV0dXJuIGF3YWl0IGFwaS5nZXQocGFyYW1ldGVycyk7XG5cdH0gY2F0Y2ggKGVycm9yKSB7XG5cdFx0Y29uc29sZS5lcnJvcignW0FkdmFuY2VkU2l0ZU5vdGljZXNdIEFqYXggZXJyb3I6JywgZXJyb3IpO1xuXHRcdHJldHVybiB7fTtcblx0fVxufTtcblxuZXhwb3J0IHt0eXBlIFJlbW90ZU5vdGljZXMsIHF1ZXJ5QXBpfTtcbiIsICJpbXBvcnQge3R5cGUgUmVtb3RlTm90aWNlcywgcXVlcnlBcGl9IGZyb20gJy4vdXRpbC9xdWVyeUFwaSc7XG5pbXBvcnQgUmVhY3QgZnJvbSAnZXh0LmdhZGdldC5KU1gnO1xuXG50eXBlIEFwaVJlc3BvbnNlID0ge1xuXHRwYXJzZToge1xuXHRcdHRleHQ/OiBzdHJpbmc7XG5cdH07XG59O1xuXG5jb25zdCBsb2FkUmVtb3RlTm90aWNlcyA9IGFzeW5jICgpOiBQcm9taXNlPFJlbW90ZU5vdGljZXM+ID0+IHtcblx0Y29uc3QgcmVzcG9uc2U6IEF3YWl0ZWQ8UmV0dXJuVHlwZTx0eXBlb2YgcXVlcnlBcGk+PiA9IGF3YWl0IHF1ZXJ5QXBpKCk7XG5cdGNvbnN0IHJlc3BvbnNlUGFyc2UgPSByZXNwb25zZVsncGFyc2UnXSBhcyBBcGlSZXNwb25zZVsncGFyc2UnXTtcblxuXHRpZiAoIXJlc3BvbnNlUGFyc2U/LnRleHQpIHtcblx0XHRyZXR1cm4ge307XG5cdH1cblxuXHRjb25zdCByZW1vdGVOb3RpY2UgPSAoPGRpdiBpbm5lckhUTUw9e3Jlc3BvbnNlUGFyc2UudGV4dH0gLz4pLnF1ZXJ5U2VsZWN0b3IoJ3VsLnNpdGVudHMnKTtcblx0aWYgKCFyZW1vdGVOb3RpY2UpIHtcblx0XHRyZXR1cm4ge307XG5cdH1cblxuXHRjb25zdCAkcmVtb3RlTm90aWNlczogTm9uTnVsbGFibGU8UmVtb3RlTm90aWNlc1snJG5vdGljZXMnXT4gPSAkKHJlbW90ZU5vdGljZSkgYXMgSlF1ZXJ5O1xuXG5cdGNvbnN0ICRub3RpY2VzOiBKUXVlcnkgPSAkcmVtb3RlTm90aWNlcy5maW5kKCdsaScpO1xuXHRjb25zdCByZW1vdGVOb3RpY2VzVmVyc2lvbjogTm9uTnVsbGFibGU8UmVtb3RlTm90aWNlc1sndmVyc2lvbiddPiA9IChcblx0XHQkcmVtb3RlTm90aWNlcy5kYXRhKCdhc24tdmVyc2lvbicpIGFzIG51bWJlclxuXHQpLnRvU3RyaW5nKCk7XG5cblx0cmV0dXJuIHtcblx0XHQkbm90aWNlcyxcblx0XHR2ZXJzaW9uOiByZW1vdGVOb3RpY2VzVmVyc2lvbixcblx0fTtcbn07XG5cbmV4cG9ydCB7bG9hZFJlbW90ZU5vdGljZXN9O1xuIiwgImNvbnN0IENMQVNTX05BTUU6IHN0cmluZyA9ICdnYWRnZXQtYWR2YW5jZWRfc2l0ZV9ub3RpY2VzJztcbmNvbnN0IENMQVNTX05BTUVfRElTTUlTUzogc3RyaW5nID0gYCR7Q0xBU1NfTkFNRX1fX2Rpc21pc3NgO1xuY29uc3QgQ0xBU1NfTkFNRV9OT1RJQ0U6IHN0cmluZyA9IGAke0NMQVNTX05BTUV9X19ub3RpY2VgO1xuY29uc3QgQ0xBU1NfTkFNRV9OT1RJQ0VfQ09OVEVOVDogc3RyaW5nID0gYCR7Q0xBU1NfTkFNRV9OT1RJQ0V9X19jb250ZW50YDtcbmNvbnN0IENMQVNTX05BTUVfVElUTEU6IHN0cmluZyA9IGAke0NMQVNTX05BTUV9X190aXRsZWA7XG5cbmV4cG9ydCB7Q0xBU1NfTkFNRSwgQ0xBU1NfTkFNRV9ESVNNSVNTLCBDTEFTU19OQU1FX05PVElDRSwgQ0xBU1NfTkFNRV9OT1RJQ0VfQ09OVEVOVCwgQ0xBU1NfTkFNRV9USVRMRX07XG4iLCAiaW1wb3J0ICogYXMgT1BUSU9OUyBmcm9tICcuLi9vcHRpb25zLmpzb24nO1xuaW1wb3J0IHtDTEFTU19OQU1FX0RJU01JU1MsIENMQVNTX05BTUVfTk9USUNFX0NPTlRFTlR9IGZyb20gJy4vY29uc3RhbnQnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ2V4dC5nYWRnZXQuSlNYJztcbmltcG9ydCB7dHlwZSBSZW1vdGVOb3RpY2VzfSBmcm9tICcuL3V0aWwvcXVlcnlBcGknO1xuaW1wb3J0IHtnZW5lcmF0ZUFyZWF9IGZyb20gJy4vdXRpbC9nZW5lcmF0ZUFyZWEnO1xuaW1wb3J0IHtnZXRNZXNzYWdlfSBmcm9tICcuL2kxOG4nO1xuaW1wb3J0IHttYXRjaENyaXRlcmlhfSBmcm9tICcuL3V0aWwvbWF0Y2hDcml0ZXJpYSc7XG5pbXBvcnQge3RpcHB5fSBmcm9tICdleHQuZ2FkZ2V0LlRpcHB5JztcblxuY29uc3QgYnJvYWRjYXN0Q2hhbm5lbDogQnJvYWRjYXN0Q2hhbm5lbCA9IG5ldyBCcm9hZGNhc3RDaGFubmVsKE9QVElPTlMuc3RvcmFnZUtleSk7XG5cbmxldCBjdXJyZW50VmVyc2lvbjogc3RyaW5nID0gJzAnO1xuY29uc3QgbG9jYWxWZXJzaW9uID0gbXcuc3RvcmFnZS5nZXQoT1BUSU9OUy5zdG9yYWdlS2V5KSBhcyBzdHJpbmcgfCBudWxsO1xuXG5sZXQgdGltZXI6IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+O1xuXG5jb25zdCAkYXJlYTogSlF1ZXJ5ID0gZ2VuZXJhdGVBcmVhKCk7XG5jb25zdCAkY3VycmVudE5vdGljZTogSlF1ZXJ5ID0gJGFyZWEuZmluZChgLiR7Q0xBU1NfTkFNRV9OT1RJQ0VfQ09OVEVOVH1gKTtcbmNvbnN0ICRkaXNtaXNzOiBKUXVlcnk8SFRNTEFuY2hvckVsZW1lbnQ+ID0gJGFyZWEuZmluZChgLiR7Q0xBU1NfTkFNRV9ESVNNSVNTfWApLmZpbmQoJ2EnKTtcblxuY29uc3QgY2xvc2VOb3RpY2VzID0gKCk6IHZvaWQgPT4ge1xuXHRicm9hZGNhc3RDaGFubmVsLnBvc3RNZXNzYWdlKCdjbG9zZScpO1xuXHRicm9hZGNhc3RDaGFubmVsLmNsb3NlKCk7XG5cdGNsZWFyVGltZW91dCh0aW1lcik7XG5cdCRhcmVhLnJlbW92ZSgpO1xuXHRtdy5zdG9yYWdlLnNldChPUFRJT05TLnN0b3JhZ2VLZXksIGN1cnJlbnRWZXJzaW9uLCA2MCAqIDYwICogMjQgKiAzMCk7XG59O1xuXG5icm9hZGNhc3RDaGFubmVsLmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBjbG9zZU5vdGljZXMpO1xuXG4kZGlzbWlzcy5vbignY2xpY2snLCAoKTogdm9pZCA9PiB7XG5cdGNsb3NlTm90aWNlcygpO1xuXHR2b2lkIG13Lm5vdGlmeSgkKCg8c3BhbiBpbm5lckhUTUw9e2dldE1lc3NhZ2UoJ0Rpc21pc3NOb3RpY2UnKX0gLz4pIGFzIEhUTUxFbGVtZW50KSwge1xuXHRcdHRhZzogJ0FkdmFuY2VkU2l0ZU5vdGljZXMnLFxuXHR9KTtcbn0pO1xudGlwcHkoJGRpc21pc3MuZ2V0KDApIGFzIEhUTUxBbmNob3JFbGVtZW50LCB7XG5cdGFycm93OiB0cnVlLFxuXHRjb250ZW50OiAkZGlzbWlzcy5hdHRyKCdhcmlhLWxhYmVsJykgYXMgc3RyaW5nLFxuXHRwbGFjZW1lbnQ6ICdib3R0b20nLFxufSk7XG5cbmxldCAkbm90aWNlczogSlF1ZXJ5O1xuY29uc3Qgbm90aWNlU3R5bGVzOiBIVE1MU3R5bGVFbGVtZW50W10gPSBbXTtcbmNvbnN0IHNob3dOb3RpY2VzID0gKCRtb3VudFBvaW50OiBKUXVlcnksIGluZGV4OiBudW1iZXIsIHJlbW90ZU5vdGljZXM/OiBSZW1vdGVOb3RpY2VzKTogdm9pZCA9PiB7XG5cdGN1cnJlbnRWZXJzaW9uID0gcmVtb3RlTm90aWNlcz8udmVyc2lvbiA/PyBjdXJyZW50VmVyc2lvbjtcblx0aWYgKGN1cnJlbnRWZXJzaW9uID09PSBsb2NhbFZlcnNpb24pIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRpZiAocmVtb3RlTm90aWNlcz8uJG5vdGljZXMpIHtcblx0XHQoeyRub3RpY2VzfSA9IHJlbW90ZU5vdGljZXMpO1xuXHR9XG5cblx0Y29uc3Qgbm90aWNlc0xlbmd0aDogbnVtYmVyID0gJG5vdGljZXMubGVuZ3RoO1xuXHRjb25zdCBuZXh0Tm90aWNlSW5kZXg6IG51bWJlciA9IChpbmRleCArIDEpICUgbm90aWNlc0xlbmd0aDtcblx0bGV0ICRub3RpY2U6IEpRdWVyeSA9ICQoKTtcblxuXHRsZXQgaTogbnVtYmVyID0gMDtcblx0d2hpbGUgKGkrKyA8IG5vdGljZXNMZW5ndGgpIHtcblx0XHQkbm90aWNlID0gJG5vdGljZXMuZXEoaW5kZXgpO1xuXHRcdGlmICghbWF0Y2hDcml0ZXJpYSgkbm90aWNlKSkge1xuXHRcdFx0c2hvd05vdGljZXMoJG1vdW50UG9pbnQsIG5leHROb3RpY2VJbmRleCk7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdGluZGV4ID0gaW5kZXgrKyAlIG5vdGljZXNMZW5ndGg7XG5cdH1cblxuXHRpZiAodHlwZW9mICRub3RpY2UuZGF0YSgnYXNuLWh0bWwnKSA9PT0gJ3N0cmluZycpIHtcblx0XHQkbm90aWNlLmRhdGEoJ2Fzbi1odG1sLXJhdycsIGRlY29kZVVSSUNvbXBvbmVudCgoJG5vdGljZS5kYXRhKCdhc24taHRtbCcpIGFzIHN0cmluZykucmVwbGFjZSgvXFwrL2csICclMjAnKSkpO1xuXHRcdCRub3RpY2UuZGF0YSgnYXNuLWh0bWwnLCBudWxsKTtcblx0fVxuXHRpZiAodHlwZW9mICRub3RpY2UuZGF0YSgnYXNuLXN0eWxlJykgPT09ICdzdHJpbmcnKSB7XG5cdFx0JG5vdGljZS5kYXRhKCdhc24tc3R5bGUtaWQnLCBub3RpY2VTdHlsZXMubGVuZ3RoKTtcblx0XHRjb25zdCBzdHlsZTogSFRNTFN0eWxlRWxlbWVudCA9IG13LmxvYWRlci5hZGRTdHlsZVRhZyhcblx0XHRcdGRlY29kZVVSSUNvbXBvbmVudCgoJG5vdGljZS5kYXRhKCdhc24tc3R5bGUnKSBhcyBzdHJpbmcpLnJlcGxhY2UoL1xcKy9nLCAnJTIwJykpXG5cdFx0KTtcblx0XHRzdHlsZS5kaXNhYmxlZCA9IHRydWU7XG5cdFx0bm90aWNlU3R5bGVzW25vdGljZVN0eWxlcy5sZW5ndGhdID0gc3R5bGU7IC8vIFJlcGxhY2UgQXJyYXkjcHVzaCB0byBhdm9pZCBjb3JlLWpzIHBvbHlmaWxsaW5nXG5cdFx0JG5vdGljZS5kYXRhKCdhc24tc3R5bGUnLCBudWxsKTtcblx0fVxuXG5cdGNvbnN0IG5vdGljZUh0bWw6IHN0cmluZyA9ICgkbm90aWNlLmRhdGEoJ2Fzbi1odG1sLXJhdycpIGFzIHN0cmluZykgfHwgJG5vdGljZS5odG1sKCk7XG5cdGNvbnN0IG5vdGljZVN0eWxlSWQ6IG51bWJlciA9ICRub3RpY2UuZGF0YSgnYXNuLXN0eWxlLWlkJykgYXMgbnVtYmVyO1xuXHRjb25zdCBjdXJyZW50Tm90aWNlSHRtbDogc3RyaW5nID0gJGN1cnJlbnROb3RpY2UuaHRtbCgpO1xuXHRpZiAoY3VycmVudE5vdGljZUh0bWwgJiYgY3VycmVudE5vdGljZUh0bWwgIT09IG5vdGljZUh0bWwpIHtcblx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tanF1ZXJ5L25vLWFuaW1hdGVcblx0XHQkY3VycmVudE5vdGljZS5zdG9wKCkuZmFkZU91dCgoKTogdm9pZCA9PiB7XG5cdFx0XHRmb3IgKGNvbnN0IHN0eWxlIG9mIG5vdGljZVN0eWxlcykge1xuXHRcdFx0XHRzdHlsZS5kaXNhYmxlZCA9IHRydWU7XG5cdFx0XHR9XG5cdFx0XHRjb25zdCBub3RpY2VTdHlsZTogSFRNTFN0eWxlRWxlbWVudCB8IHVuZGVmaW5lZCA9IG5vdGljZVN0eWxlc1tub3RpY2VTdHlsZUlkXTtcblx0XHRcdGlmIChub3RpY2VTdHlsZSkge1xuXHRcdFx0XHRub3RpY2VTdHlsZS5kaXNhYmxlZCA9IGZhbHNlO1xuXHRcdFx0fVxuXHRcdFx0JGN1cnJlbnROb3RpY2UuaHRtbChub3RpY2VIdG1sKTtcblx0XHRcdC8vIGFuaW1hdGlvbiB0cnkgL2NhdGNoZWQgdG8gYXZvaWQgVHlwZUVycm9yOiAoQW5pbWF0aW9uLnR3ZWVuZXJzW3Byb3BdfHxbXSkuY29uY2F0IGlzIG5vdCBhIGZ1bmN0aW9uIGVycm9yIGJlaW5nIHNlZW4gaW4gcHJvZHVjdGlvblxuXHRcdFx0dHJ5IHtcblx0XHRcdFx0JGN1cnJlbnROb3RpY2UuZmFkZUluKCk7XG5cdFx0XHR9IGNhdGNoIHt9XG5cdFx0fSk7XG5cdH0gZWxzZSBpZiAoIWN1cnJlbnROb3RpY2VIdG1sKSB7XG5cdFx0JG1vdW50UG9pbnQuYXBwZW5kKCRhcmVhKTtcblx0XHRjb25zdCBub3RpY2VTdHlsZTogSFRNTFN0eWxlRWxlbWVudCB8IHVuZGVmaW5lZCA9IG5vdGljZVN0eWxlc1tub3RpY2VTdHlsZUlkXTtcblx0XHRpZiAobm90aWNlU3R5bGUpIHtcblx0XHRcdG5vdGljZVN0eWxlLmRpc2FibGVkID0gZmFsc2U7XG5cdFx0fVxuXHRcdCRjdXJyZW50Tm90aWNlLmh0bWwobm90aWNlSHRtbCkuZmFkZUluKCk7XG5cdH1cblxuXHR0aW1lciA9IHNldFRpbWVvdXQoKCk6IHZvaWQgPT4ge1xuXHRcdHNob3dOb3RpY2VzKCRtb3VudFBvaW50LCBuZXh0Tm90aWNlSW5kZXgpO1xuXHR9LCA3ICogMTAwMCk7XG59O1xuXG5leHBvcnQge3Nob3dOb3RpY2VzfTtcbiIsICJpbXBvcnQge1xuXHRDTEFTU19OQU1FLFxuXHRDTEFTU19OQU1FX0RJU01JU1MsXG5cdENMQVNTX05BTUVfTk9USUNFLFxuXHRDTEFTU19OQU1FX05PVElDRV9DT05URU5ULFxuXHRDTEFTU19OQU1FX1RJVExFLFxufSBmcm9tICcuLi9jb25zdGFudCc7XG5pbXBvcnQgUmVhY3QgZnJvbSAnZXh0LmdhZGdldC5KU1gnO1xuaW1wb3J0IHtnZXRNZXNzYWdlfSBmcm9tICcuLi9pMThuJztcblxuY29uc3QgZ2VuZXJhdGVBcmVhID0gKCk6IEpRdWVyeSA9PiB7XG5cdGNvbnN0IGFyZWE6IFJlYWN0LlJlYWN0RWxlbWVudCA9IChcblx0XHQ8ZGl2IGNsYXNzTmFtZT17W0NMQVNTX05BTUUsICdub3ByaW50J119PlxuXHRcdFx0PGRpdiBjbGFzc05hbWU9e0NMQVNTX05BTUVfVElUTEV9PntnZXRNZXNzYWdlKCdUaXRsZScpfTwvZGl2PlxuXHRcdFx0PGRpdiBjbGFzc05hbWU9e0NMQVNTX05BTUVfTk9USUNFfT5cblx0XHRcdFx0PGRpdiBjbGFzc05hbWU9e1tDTEFTU19OQU1FX05PVElDRV9DT05URU5ULCAnY2VudGVyJ119IC8+XG5cdFx0XHQ8L2Rpdj5cblx0XHRcdDxkaXYgY2xhc3NOYW1lPXtDTEFTU19OQU1FX0RJU01JU1N9PlxuXHRcdFx0XHQ8YSByb2xlPVwiYnV0dG9uXCIgYXJpYS1sYWJlbD17Z2V0TWVzc2FnZSgnRGlzbWlzcycpfSAvPlxuXHRcdFx0PC9kaXY+XG5cdFx0PC9kaXY+XG5cdCk7XG5cblx0cmV0dXJuICQoYXJlYSkgYXMgSlF1ZXJ5O1xufTtcblxuZXhwb3J0IHtnZW5lcmF0ZUFyZWF9O1xuIiwgImltcG9ydCB7bG9jYWxpemV9IGZyb20gJ2V4dC5nYWRnZXQuaTE4bic7XG5cbmNvbnN0IGdldEkxOG5NZXNzYWdlcyA9ICgpID0+IHtcblx0cmV0dXJuIHtcblx0XHREaXNtaXNzOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ1R1cm4gb2ZmIHRoaXMgbm90aWNlJyxcblx0XHRcdGphOiAnQVNO44KS44Kq44OV44Gr44GZ44KLJyxcblx0XHRcdCd6aC1oYW5zJzogJ+WFs+mXreWFrOWRiicsXG5cdFx0XHQnemgtaGFudCc6ICfpl5zplonlhazlkYonLFxuXHRcdH0pLFxuXHRcdERpc21pc3NOb3RpY2U6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnWW91IGhhdmUgY2hvc2VuIHRvIHR1cm4gb2ZmIEFkdmFuY2VkIFNpdGUgTm90aWNlcyBmb3IgdGhlIG5leHQgMzAgZGF5cy4gPGJyPklmIHRoZSBzaXRlLXdpZGUgYW5ub3VuY2VtZW50IGlzIG5vdCB1cGRhdGVkIHdpdGhpbiB0aGUgbmV4dCAzMCBkYXlzLCBpdCB3aWxsIG5vIGxvbmdlciBiZSBkaXNwbGF5ZWQ7IGhvd2V2ZXIsIGlmIHRoZSBzaXRlLXdpZGUgYW5ub3VuY2VtZW50IGlzIHVwZGF0ZWQsIGl0IHdpbGwgYmUgZGlzcGxheWVkIGFnYWluLicsXG5cdFx0XHRqYTogJ+S7iuW+jDMw5pel6ZaT44CBQVNO44KS44Kq44OV44Gr44GZ44KL44GT44Go44KS6YG45oqe44GX44G+44GX44Gf44CCPGJyPuOCteOCpOODiOWFqOS9k+OBrumAmuefpeOBjOS7iuW+jDMw5pel5Lul5YaF44Gr5pu05paw44GV44KM44Gq44GE5aC05ZCI44CB6KGo56S644GV44KM44Gq44GP44Gq44KK44G+44GZ44CC44Gf44Gg44GX44CB44K144Kk44OI5YWo5L2T44Gu6YCa55+l44GM5pu05paw44GV44KM44KL5aC05ZCI44Gv44CB5YaN44Gz6KGo56S644GV44KM44G+44GZ44CCJyxcblx0XHRcdCd6aC1oYW5zJzpcblx0XHRcdFx0J+aCqOW3sumAieaLqeWcqOaOpeS4i+adpTMw5pel5YaF5YWz6Zet4oCc6auY57qn56uZ54K56YCa5ZGK4oCd44CCPGJyPuiLpeaOpeS4i+adpTMw5pel5YaF5YWo56uZ5YWs5ZGK5pyq5pyJ5pu05paw77yM5YiZ5LiN5YaN5pi+56S677yb5L2G5piv77yM6Iul5YWo56uZ5YWs5ZGK5YaF5a655pu05paw77yM5YiZ5bCG6YeN5paw5pi+56S644CCJyxcblx0XHRcdCd6aC1oYW50Jzpcblx0XHRcdFx0J+aCqOW3sumBuOaTh+WcqOaOpeS4i+S+hjMw5pel5YWn6Zec6ZaJ44CM6auY57Sa56uZ6bue6YCa5ZGK44CN44CCPGJyPuiLpeaOpeS4i+S+hjMw5pel5YWn5YWo56uZ5YWs5ZGK5pyq5pyJ5pu05paw77yM5YmH5LiN5YaN6aGv56S677yb5L2G5piv77yM6Iul5YWo56uZ5YWs5ZGK5YWn5a655pu05paw77yM5YmH5bCH6YeN5paw6aGv56S644CCJyxcblx0XHR9KSxcblx0XHRUaXRsZTogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdBbm5vdW5jZW1lbnQnLFxuXHRcdFx0amE6ICfpgJrnn6UnLFxuXHRcdFx0emg6ICflhazlkYonLFxuXHRcdH0pLFxuXHR9O1xufTtcblxuY29uc3QgaTE4bk1lc3NhZ2VzID0gZ2V0STE4bk1lc3NhZ2VzKCk7XG5cbmNvbnN0IGdldE1lc3NhZ2U6IEdldE1lc3NhZ2VzPHR5cGVvZiBpMThuTWVzc2FnZXM+ID0gKGtleSkgPT4ge1xuXHRyZXR1cm4gaTE4bk1lc3NhZ2VzW2tleV0gfHwga2V5O1xufTtcblxuZXhwb3J0IHtnZXRNZXNzYWdlfTtcbiIsICJjb25zdCB7d2dVc2VyR3JvdXBzLCB3Z0dsb2JhbEdyb3Vwcywgd2dVc2VyTGFuZ3VhZ2V9ID0gbXcuY29uZmlnLmdldCgpO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY2FtZWxjYXNlXG5jb25zdCBpbl9ncm91cCA9IChncm91cDogc3RyaW5nKTogYm9vbGVhbiA9PiB7XG5cdHJldHVybiAhISh3Z1VzZXJHcm91cHM/LmluY2x1ZGVzKGdyb3VwKSB8fCAod2dHbG9iYWxHcm91cHMgYXMgc3RyaW5nW10pPy5pbmNsdWRlcyhncm91cCkpO1xufTtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNhbWVsY2FzZVxuY29uc3Qgb25seV9mb3IgPSAodXNlckxhbmd1YWdlOiBzdHJpbmcpOiBib29sZWFuID0+IHtcblx0cmV0dXJuIHVzZXJMYW5ndWFnZSA9PT0gd2dVc2VyTGFuZ3VhZ2U7XG59O1xuXG5jb25zdCBtYXRjaENyaXRlcmlhID0gKCRub3RpY2U6IEpRdWVyeSk6IGJvb2xlYW4gPT4ge1xuXHRjb25zdCBjYWNoZSA9ICRub3RpY2UuZGF0YSgnYXNuLWNhY2hlJykgYXMgYm9vbGVhbiB8IHVuZGVmaW5lZDtcblx0aWYgKGNhY2hlICE9PSB1bmRlZmluZWQpIHtcblx0XHRyZXR1cm4gY2FjaGU7XG5cdH1cblxuXHRjb25zdCB0ZXN0Q3JpdGVyaWEgPSAoY3JpdGVyaWE6IHN0cmluZyk6IGJvb2xlYW4gPT4ge1xuXHRcdC8vIEZJWE1FOiBUaGlzIHNob3VsZG4ndCBiZSB1c2luZyBldmFsIG9uIGRhdGEgZW50ZXJlZCBpbiB3aWtpdGV4dC5cblx0XHQvLyBJZiB0aGF0IGRhdGEgaXMgbWFsZm9ybWVkIGl0IHdpbGwgdGhyb3cgYW4gZXhjZXB0aW9uIGUuZy4gY3JpdGVyaWEgPSBcIihmYWxzZSkpXCJcblx0XHR0cnkge1xuXHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWV2YWxcblx0XHRcdHJldHVybiB3aW5kb3cuZXZhbChjcml0ZXJpYSkgYXMgYm9vbGVhbjtcblx0XHR9IGNhdGNoIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cdH07XG5cblx0bGV0IHJlc3VsdDogYm9vbGVhbiA9IGZhbHNlO1xuXG5cdGNvbnN0IGNyaXRlcmlhRGF0YTogc3RyaW5nID0gKCgkbm90aWNlLmRhdGEoJ2Fzbi1jcml0ZXJpYScpIGFzIHN0cmluZyB8IHVuZGVmaW5lZCkgPz8gJycpLnRyaW0oKTtcblx0aWYgKGNyaXRlcmlhRGF0YSkge1xuXHRcdHRyeSB7XG5cdFx0XHRyZXN1bHQgPSB0ZXN0Q3JpdGVyaWEoZGVjb2RlVVJJQ29tcG9uZW50KGNyaXRlcmlhRGF0YS5yZXBsYWNlKC9cXCsvZywgJyUyMCcpKSk7XG5cdFx0fSBjYXRjaCB7XG5cdFx0XHRyZXN1bHQgPSB0cnVlO1xuXHRcdH1cblx0fSBlbHNlIGlmICgkbm90aWNlLmF0dHIoJ2NsYXNzJykpIHtcblx0XHRsZXQgY3JpdGVyaWE6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cblx0XHRpZiAoJG5vdGljZS5oYXNDbGFzcygnb25seV9zeXNvcCcpKSB7XG5cdFx0XHRjcml0ZXJpYSB8fD0gaW5fZ3JvdXAoJ3N5c29wJykgfHwgaW5fZ3JvdXAoJ3N0ZXdhcmQnKSB8fCBpbl9ncm91cCgncWl1d2VuJyk7XG5cdFx0fVxuXHRcdGlmICgkbm90aWNlLmhhc0NsYXNzKCdvbmx5X2xvZ2dlZCcpKSB7XG5cdFx0XHRjcml0ZXJpYSB8fD0gaW5fZ3JvdXAoJ3VzZXInKTtcblx0XHR9XG5cdFx0aWYgKCRub3RpY2UuaGFzQ2xhc3MoJ29ubHlfYW5vbicpKSB7XG5cdFx0XHRjcml0ZXJpYSB8fD0gIWluX2dyb3VwKCd1c2VyJyk7XG5cdFx0fVxuXHRcdGlmICgkbm90aWNlLmhhc0NsYXNzKCdvbmx5X3poX2NuJykpIHtcblx0XHRcdGNyaXRlcmlhIHx8PSBvbmx5X2ZvcignemgtY24nKTtcblx0XHR9XG5cdFx0aWYgKCRub3RpY2UuaGFzQ2xhc3MoJ29ubHlfemhfc2cnKSkge1xuXHRcdFx0Y3JpdGVyaWEgfHw9IG9ubHlfZm9yKCd6aC1zZycpO1xuXHRcdH1cblx0XHRpZiAoJG5vdGljZS5oYXNDbGFzcygnb25seV96aF9teScpKSB7XG5cdFx0XHRjcml0ZXJpYSB8fD0gb25seV9mb3IoJ3poLW15Jyk7XG5cdFx0fVxuXHRcdGlmICgkbm90aWNlLmhhc0NsYXNzKCdvbmx5X3poX2hrJykpIHtcblx0XHRcdGNyaXRlcmlhIHx8PSBvbmx5X2ZvcignemgtaGsnKTtcblx0XHR9XG5cdFx0aWYgKCRub3RpY2UuaGFzQ2xhc3MoJ29ubHlfemhfbW8nKSkge1xuXHRcdFx0Y3JpdGVyaWEgfHw9IG9ubHlfZm9yKCd6aC1tbycpO1xuXHRcdH1cblx0XHRpZiAoJG5vdGljZS5oYXNDbGFzcygnb25seV96aF90dycpKSB7XG5cdFx0XHRjcml0ZXJpYSB8fD0gb25seV9mb3IoJ3poLXR3Jyk7XG5cdFx0fVxuXG5cdFx0aWYgKGNyaXRlcmlhID09PSB1bmRlZmluZWQpIHtcblx0XHRcdGNyaXRlcmlhID0gdHJ1ZTtcblx0XHR9XG5cblx0XHRyZXN1bHQgPSBjcml0ZXJpYTtcblx0fSBlbHNlIHtcblx0XHRyZXN1bHQgPSB0cnVlO1xuXHR9XG5cblx0JG5vdGljZS5kYXRhKCdhc24tY2FjaGUnLCByZXN1bHQpO1xuXG5cdHJldHVybiByZXN1bHQ7XG59O1xuXG5leHBvcnQge21hdGNoQ3JpdGVyaWF9O1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBLEtBQUMsU0FBUyxRQUFRO0FBQ2QsVUFBSSxXQUFXLENBQUM7QUFFaEIsZUFBU0Esa0JBQWlCLFNBQVM7QUFDL0IsWUFBSSxRQUFRO0FBQ1osa0JBQVUsT0FBTyxPQUFPO0FBRXhCLFlBQUksS0FBSyx1QkFBdUIsVUFBVTtBQUUxQyxpQkFBUyxFQUFFLElBQUksU0FBUyxFQUFFLEtBQUssQ0FBQztBQUNoQyxpQkFBUyxFQUFFLEVBQUUsS0FBSyxJQUFJO0FBRXRCLGFBQUssUUFBUTtBQUNiLGFBQUssTUFBTTtBQUNYLGFBQUssVUFBVTtBQUNmLGFBQUssTUFBTSxJQUFJLGVBQWU7QUFDOUIsYUFBSyxJQUFJLE1BQU0sTUFBTTtBQUNyQixhQUFLLElBQUksTUFBTSxNQUFNO0FB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QUFxQzVGLGtCQUFrQjtBQUM3RCxRQUFJLEdBQUFtSCx3QkFBQ3ZCLGNBQWMzRSxjQUFBLFFBQUFrRywwQkFBQSxVQUFkQSxzQkFBd0JwQixTQUFRO0FBQ3BDO0lBQ0Q7QUFFQSxVQUFNdUIsY0FBc0JDLEtBQUtDLE1BQU1ELEtBQUtFLE9BQU8sSUFBSTdCLGNBQWMzRSxTQUFTOEUsTUFBTTtBQUNwRk4sZ0JBQVlDLGFBQWE0QixhQUFhMUIsYUFBYTtFQUNwRCxDQUFBO0FBQUEsV0FmZ0I4QixzQkFBQTtBQUFBLFdBQUFDLHFCQUFBL0gsTUFBQSxNQUFBQyxTQUFBO0VBQUE7QUFBQSxTQUFBNkg7QUFBQSxHQUFBLEVBZWI7IiwKICAibmFtZXMiOiBbIkJyb2FkY2FzdENoYW5uZWwiLCAiYWpheFBhZ2VUaXRsZSIsICJtb3VudFBvaW50U2VsZWN0b3IiLCAic3RvcmFnZUtleSIsICJ2ZXJzaW9uIiwgImltcG9ydF9leHRfZ2FkZ2V0NyIsICJyZXF1aXJlIiwgImltcG9ydF9leHRfZ2FkZ2V0IiwgImFwaSIsICJpbml0TXdBcGkiLCAiY29uY2F0IiwgIndnVXNlckxhbmd1YWdlIiwgIm13IiwgImNvbmZpZyIsICJnZXQiLCAicGFyYW1ldGVycyIsICJhY3Rpb24iLCAiZm9ybWF0IiwgImZvcm1hdHZlcnNpb24iLCAicHJvcCIsICJwYWdlIiwgInVzZWxhbmciLCAidmFyaWFudCIsICJzbWF4YWdlIiwgIm1heGFnZSIsICJxdWVyeUFwaSIsICJfcmVmIiwgIl9hc3luY1RvR2VuZXJhdG9yIiwgImVycm9yIiwgImNvbnNvbGUiLCAiYXBwbHkiLCAiYXJndW1lbnRzIiwgImltcG9ydF9leHRfZ2FkZ2V0MiIsICJfX3RvRVNNIiwgImxvYWRSZW1vdGVOb3RpY2VzIiwgIl9yZWYyIiwgInJlc3BvbnNlIiwgInJlc3BvbnNlUGFyc2UiLCAidGV4dCIsICJyZW1vdGVOb3RpY2UiLCAiZGVmYXVsdCIsICJjcmVhdGVFbGVtZW50IiwgImlubmVySFRNTCIsICJxdWVyeVNlbGVjdG9yIiwgIiRyZW1vdGVOb3RpY2VzIiwgIiQiLCAiJG5vdGljZXMyIiwgImZpbmQiLCAicmVtb3RlTm90aWNlc1ZlcnNpb24iLCAiZGF0YSIsICJ0b1N0cmluZyIsICIkbm90aWNlcyIsICJDTEFTU19OQU1FIiwgIkNMQVNTX05BTUVfRElTTUlTUyIsICJDTEFTU19OQU1FX05PVElDRSIsICJDTEFTU19OQU1FX05PVElDRV9DT05URU5UIiwgIkNMQVNTX05BTUVfVElUTEUiLCAiaW1wb3J0X2V4dF9nYWRnZXQ1IiwgImltcG9ydF9leHRfZ2FkZ2V0NCIsICJpbXBvcnRfZXh0X2dhZGdldDMiLCAiZ2V0STE4bk1lc3NhZ2VzIiwgIkRpc21pc3MiLCAibG9jYWxpemUiLCAiZW4iLCAiamEiLCAiRGlzbWlzc05vdGljZSIsICJUaXRsZSIsICJ6aCIsICJpMThuTWVzc2FnZXMiLCAiZ2V0TWVzc2FnZSIsICJrZXkiLCAiZ2VuZXJhdGVBcmVhIiwgImFyZWEiLCAiY2xhc3NOYW1lIiwgInJvbGUiLCAid2dVc2VyR3JvdXBzIiwgIndnR2xvYmFsR3JvdXBzIiwgIndnVXNlckxhbmd1YWdlMiIsICJpbl9ncm91cCIsICJncm91cCIsICJpbmNsdWRlcyIsICJvbmx5X2ZvciIsICJ1c2VyTGFuZ3VhZ2UiLCAibWF0Y2hDcml0ZXJpYSIsICIkbm90aWNlIiwgIl8kbm90aWNlJGRhdGEiLCAiY2FjaGUiLCAidGVzdENyaXRlcmlhIiwgImNyaXRlcmlhIiwgIndpbmRvdyIsICJldmFsIiwgInJlc3VsdCIsICJjcml0ZXJpYURhdGEiLCAidHJpbSIsICJkZWNvZGVVUklDb21wb25lbnQiLCAicmVwbGFjZSIsICJhdHRyIiwgImhhc0NsYXNzIiwgImltcG9ydF9leHRfZ2FkZ2V0NiIsICJicm9hZGNhc3RDaGFubmVsIiwgIkJyb2FkY2FzdENoYW5uZWwiLCAiY3VycmVudFZlcnNpb24iLCAibG9jYWxWZXJzaW9uIiwgInN0b3JhZ2UiLCAidGltZXIiLCAiJGFyZWEiLCAiJGN1cnJlbnROb3RpY2UiLCAiJGRpc21pc3MiLCAiY2xvc2VOb3RpY2VzIiwgInBvc3RNZXNzYWdlIiwgImNsb3NlIiwgImNsZWFyVGltZW91dCIsICJyZW1vdmUiLCAic2V0IiwgImFkZEV2ZW50TGlzdGVuZXIiLCAib24iLCAibm90aWZ5IiwgInRhZyIsICJ0aXBweSIsICJhcnJvdyIsICJjb250ZW50IiwgInBsYWNlbWVudCIsICJub3RpY2VTdHlsZXMiLCAic2hvd05vdGljZXMiLCAiJG1vdW50UG9pbnQiLCAiaW5kZXgiLCAicmVtb3RlTm90aWNlcyIsICJfcmVtb3RlTm90aWNlcyR2ZXJzaW8iLCAibm90aWNlc0xlbmd0aCIsICJsZW5ndGgiLCAibmV4dE5vdGljZUluZGV4IiwgImkiLCAiZXEiLCAic3R5bGUiLCAibG9hZGVyIiwgImFkZFN0eWxlVGFnIiwgImRpc2FibGVkIiwgIm5vdGljZUh0bWwiLCAiaHRtbCIsICJub3RpY2VTdHlsZUlkIiwgImN1cnJlbnROb3RpY2VIdG1sIiwgInN0b3AiLCAiZmFkZU91dCIsICJfaSIsICJfbm90aWNlU3R5bGVzIiwgIm5vdGljZVN0eWxlIiwgImZhZGVJbiIsICJhcHBlbmQiLCAic2V0VGltZW91dCIsICJfcmVtb3RlTm90aWNlcyQkbm90aWMiLCAiJGJvZHkiLCAiZ2V0Qm9keSIsICJyYW5kb21JbmRleCIsICJNYXRoIiwgImZsb29yIiwgInJhbmRvbSIsICJhZHZhbmNlZFNpdGVOb3RpY2VzIiwgIl9hZHZhbmNlZFNpdGVOb3RpY2VzIl0KfQo= diff --git a/dist/AjaxLogin/AjaxLogin.js b/dist/AjaxLogin/AjaxLogin.js index dbf35250b..84dbc2dc5 100644 --- a/dist/AjaxLogin/AjaxLogin.js +++ b/dist/AjaxLogin/AjaxLogin.js @@ -158,9 +158,9 @@ var addListener = ($element, eventListener) => { var import_ext_gadget2 = require("ext.gadget.Util"); var api = (0, import_ext_gadget2.initMwApi)("AjaxLogin/".concat(version)); //! src/AjaxLogin/modules/core.tsx -var import_ext_gadget11 = __toESM(require("ext.gadget.React"), 1); +var import_ext_gadget11 = __toESM(require("ext.gadget.JSX"), 1); //! src/AjaxLogin/modules/util/checkValid.tsx -var import_ext_gadget4 = __toESM(require("ext.gadget.React"), 1); +var import_ext_gadget4 = __toESM(require("ext.gadget.JSX"), 1); //! src/AjaxLogin/modules/i18n.ts var import_ext_gadget3 = require("ext.gadget.i18n"); var getI18nMessages = () => { @@ -425,7 +425,7 @@ var checkValid = /* @__PURE__ */ function() { }; }(); //! src/AjaxLogin/modules/util/generateElements.tsx -var import_ext_gadget6 = __toESM(require("ext.gadget.React"), 1); +var import_ext_gadget6 = __toESM(require("ext.gadget.JSX"), 1); var generateElements = (isAgreeTos) => { const messageDialog = new OO.ui.MessageDialog(); const nameInput = new OO.ui.TextInputWidget({ @@ -486,7 +486,7 @@ var generateElements = (isAgreeTos) => { }; }; //! src/AjaxLogin/modules/util/oouiPrompt.tsx -var import_ext_gadget7 = __toESM(require("ext.gadget.React"), 1); +var import_ext_gadget7 = __toESM(require("ext.gadget.JSX"), 1); //! src/AjaxLogin/modules/util/removeWindowResizeHandler.ts var removeWindowResizeHandler = () => { $(window).off({ @@ -809,4 +809,4 @@ void (0, import_ext_gadget13.getBody)().then(function initAutoLogin($body) { /* */ -//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL0FqYXhMb2dpbi9vcHRpb25zLmpzb24iLCAic3JjL0FqYXhMb2dpbi9BamF4TG9naW4udHMiLCAic3JjL0FqYXhMb2dpbi9tb2R1bGVzL2FkZExpc3RlbmVyLnRzIiwgInNyYy9BamF4TG9naW4vbW9kdWxlcy9hcGkudHMiLCAic3JjL0FqYXhMb2dpbi9tb2R1bGVzL2NvcmUudHN4IiwgInNyYy9BamF4TG9naW4vbW9kdWxlcy91dGlsL2NoZWNrVmFsaWQudHN4IiwgInNyYy9BamF4TG9naW4vbW9kdWxlcy9pMThuLnRzIiwgInNyYy9BamF4TG9naW4vbW9kdWxlcy9pbml0V2luZG93TWFuYWdlci50cyIsICJzcmMvQWpheExvZ2luL21vZHVsZXMvdXRpbC9vb3VpQ29uZmlybS50cyIsICJzcmMvQWpheExvZ2luL21vZHVsZXMvdXRpbC9nZW5lcmF0ZUVsZW1lbnRzLnRzeCIsICJzcmMvQWpheExvZ2luL21vZHVsZXMvdXRpbC9vb3VpUHJvbXB0LnRzeCIsICJzcmMvQWpheExvZ2luL21vZHVsZXMvdXRpbC9yZW1vdmVXaW5kb3dSZXNpemVIYW5kbGVyLnRzIiwgInNyYy9BamF4TG9naW4vbW9kdWxlcy91dGlsL3F1ZXJ5TG9naW5Ub2tlbi50cyIsICJzcmMvQWpheExvZ2luL21vZHVsZXMvdXRpbC9yZWRpcmVjdE9yaWdpbkxvZ2luUGFnZS50cyIsICJzcmMvQWpheExvZ2luL21vZHVsZXMvdXRpbC9zaG93RXJyb3IudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIntcblx0XCJsb2dpbkVsZW1lbnRTZWxlY3RvclwiOiBcImE6aGFzKC5hamF4bG9naW4tbW91bnQtcG9pbnQpLCNwdC1sb2dpbj5hLC52ZWN0b3ItdXNlci1tZW51LWxvZ2luPmEsI3VzZXItdG9vbHM+YVtocmVmKj1cXFwiU3BlY2lhbFxcXCJdLC5tYWlucGFnZS10b3AtbWVudT5saTpudGgtY2hpbGQoMikgYVwiLFxuXHRcInZlcnNpb25cIjogXCI0LjBcIlxufVxuIiwgImltcG9ydCAqIGFzIE9QVElPTlMgZnJvbSAnLi9vcHRpb25zLmpzb24nO1xuaW1wb3J0IHtjaGVja0ExMXlDb25maXJtS2V5LCBnZXRCb2R5fSBmcm9tICdleHQuZ2FkZ2V0LlV0aWwnO1xuaW1wb3J0IHthZGRMaXN0ZW5lcn0gZnJvbSAnLi9tb2R1bGVzL2FkZExpc3RlbmVyJztcbmltcG9ydCB7YWpheExvZ2lufSBmcm9tICcuL21vZHVsZXMvY29yZSc7XG5pbXBvcnQge3dpbmRvd01hbmFnZXJ9IGZyb20gJy4vbW9kdWxlcy9pbml0V2luZG93TWFuYWdlcic7XG5cbnZvaWQgZ2V0Qm9keSgpLnRoZW4oZnVuY3Rpb24gaW5pdEF1dG9Mb2dpbigkYm9keTogSlF1ZXJ5PEhUTUxCb2R5RWxlbWVudD4pOiB2b2lkIHtcblx0Y29uc3Qge3dnVXNlck5hbWV9ID0gbXcuY29uZmlnLmdldCgpO1xuXG5cdGlmICh3Z1VzZXJOYW1lKSB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0Y29uc3QgJGxvZ2luRWxlbWVudDogSlF1ZXJ5PEhUTUxBbmNob3JFbGVtZW50PiA9ICRib2R5LmZpbmQ8SFRNTEFuY2hvckVsZW1lbnQ+KE9QVElPTlMubG9naW5FbGVtZW50U2VsZWN0b3IpO1xuXHRpZiAoISRsb2dpbkVsZW1lbnQubGVuZ3RoKSB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0d2luZG93TWFuYWdlci4kZWxlbWVudC5hcHBlbmRUbygkYm9keSk7XG5cblx0Y29uc3QgZmFrZVRvYXN0aWZ5SW5zdGFuY2U6IFRvYXN0aWZ5SW5zdGFuY2UgPSB7XG5cdFx0aGlkZVRvYXN0OiAoKSA9PiB7fSxcblx0fTtcblxuXHRjb25zdCBldmVudExpc3RlbmVyID0gKGV2ZW50OiBKUXVlcnkuQ2xpY2tFdmVudCB8IEpRdWVyeS5LZXlEb3duRXZlbnQpOiB2b2lkID0+IHtcblx0XHRpZiAoIWNoZWNrQTExeUNvbmZpcm1LZXkoZXZlbnQpKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcblx0XHRhamF4TG9naW4oZmFrZVRvYXN0aWZ5SW5zdGFuY2UpO1xuXHR9O1xuXHRhZGRMaXN0ZW5lcigkbG9naW5FbGVtZW50LCBldmVudExpc3RlbmVyKTtcbn0pO1xuIiwgImltcG9ydCB7ZmlsdGVyQWx0ZXJlZENsaWNrc30gZnJvbSAnZXh0LmdhZGdldC5GaWx0ZXJBbHRlcmVkQ2xpY2tzJztcblxuY29uc3QgYWRkTGlzdGVuZXIgPSAoXG5cdCRlbGVtZW50OiBKUXVlcnksXG5cdGV2ZW50TGlzdGVuZXI6IChldmVudDogSlF1ZXJ5LkNsaWNrRXZlbnQgfCBKUXVlcnkuS2V5RG93bkV2ZW50KSA9PiB2b2lkXG4pOiB2b2lkID0+IHtcblx0JGVsZW1lbnQub24oJ2NsaWNrJywgZmlsdGVyQWx0ZXJlZENsaWNrcyhldmVudExpc3RlbmVyKSk7XG5cdCRlbGVtZW50Lm9uKCdrZXlkb3duJywgZXZlbnRMaXN0ZW5lcik7XG59O1xuXG5leHBvcnQge2FkZExpc3RlbmVyfTtcbiIsICJpbXBvcnQgKiBhcyBPUFRJT05TIGZyb20gJy4uL29wdGlvbnMuanNvbic7XG5pbXBvcnQge2luaXRNd0FwaX0gZnJvbSAnZXh0LmdhZGdldC5VdGlsJztcblxudHlwZSBDbGllbnRMb2dpblBhcmFtcyA9IEFwaUNsaWVudExvZ2luUGFyYW1zICYge1xuXHR1c2VybmFtZT86IHN0cmluZztcblx0cGFzc3dvcmQ/OiBzdHJpbmc7XG5cdHJlbWVtYmVyTWU/OiBib29sZWFuO1xuXHRyZXR5cGU/OiBzdHJpbmc7XG5cdE9BVEhUb2tlbj86IHN0cmluZztcbn07XG5cbmNvbnN0IGFwaTogbXcuQXBpID0gaW5pdE13QXBpKGBBamF4TG9naW4vJHtPUFRJT05TLnZlcnNpb259YCk7XG5cbmV4cG9ydCB7dHlwZSBDbGllbnRMb2dpblBhcmFtcywgYXBpfTtcbiIsICJpbXBvcnQge3R5cGUgQ2xpZW50TG9naW5QYXJhbXMsIGFwaX0gZnJvbSAnLi9hcGknO1xuaW1wb3J0IFJlYWN0IGZyb20gJ2V4dC5nYWRnZXQuUmVhY3QnO1xuaW1wb3J0IHtjaGVja1ZhbGlkfSBmcm9tICcuL3V0aWwvY2hlY2tWYWxpZCc7XG5pbXBvcnQge2dlbmVyYXRlRWxlbWVudHN9IGZyb20gJy4vdXRpbC9nZW5lcmF0ZUVsZW1lbnRzJztcbmltcG9ydCB7Z2V0TWVzc2FnZX0gZnJvbSAnLi9pMThuJztcbmltcG9ydCB7b291aVByb21wdH0gZnJvbSAnLi91dGlsL29vdWlQcm9tcHQnO1xuaW1wb3J0IHtxdWVyeUxvZ2luVG9rZW59IGZyb20gJy4vdXRpbC9xdWVyeUxvZ2luVG9rZW4nO1xuaW1wb3J0IHtyZWRpcmVjdE9yaWdpbkxvZ2luUGFnZX0gZnJvbSAnLi91dGlsL3JlZGlyZWN0T3JpZ2luTG9naW5QYWdlJztcbmltcG9ydCB7cmVtb3ZlV2luZG93UmVzaXplSGFuZGxlcn0gZnJvbSAnLi91dGlsL3JlbW92ZVdpbmRvd1Jlc2l6ZUhhbmRsZXInO1xuaW1wb3J0IHtzaG93RXJyb3J9IGZyb20gJy4vdXRpbC9zaG93RXJyb3InO1xuaW1wb3J0IHt0b2FzdGlmeX0gZnJvbSAnZXh0LmdhZGdldC5Ub2FzdGlmeSc7XG5pbXBvcnQge3dpbmRvd01hbmFnZXJ9IGZyb20gJy4vaW5pdFdpbmRvd01hbmFnZXInO1xuXG5jb25zdCBhamF4TG9naW4gPSAodG9hc3RpZnlJbnN0YW5jZTogVG9hc3RpZnlJbnN0YW5jZSwgaXNBZ3JlZVRvczogYm9vbGVhbiA9IGZhbHNlKTogdm9pZCA9PiB7XG5cdGNvbnN0IHtcblx0XHQkYWdyZWVUb3MsXG5cdFx0JGZvcmdvdFBhc3N3b3JkLFxuXHRcdCRpbnB1dEJveCxcblx0XHQkcmVtZW1iZXJNZSxcblx0XHQkdG9zTGFiZWwsXG5cdFx0YWdyZWVUb3NDaGVja2JveCxcblx0XHRrZWVwTG9naW5DaGVja2JveCxcblx0XHRtZXNzYWdlRGlhbG9nLFxuXHRcdG5hbWVJbnB1dCxcblx0XHRwd2RJbnB1dCxcblx0fSA9IGdlbmVyYXRlRWxlbWVudHMoaXNBZ3JlZVRvcyk7XG5cblx0bGV0IGxvZ2luVG9rZW46IHN0cmluZyA9ICcnO1xuXHRjb25zdCBsb2dpbiA9IGFzeW5jICh7bG9naW5Db250aW51ZSA9IGZhbHNlLCByZXR5cGVQYXNzd29yZCA9IGZhbHNlfSA9IHt9KTogUHJvbWlzZTx2b2lkPiA9PiB7XG5cdFx0dHJ5IHtcblx0XHRcdGlmICghbG9naW5Db250aW51ZSkge1xuXHRcdFx0XHQoe2xvZ2luVG9rZW4sIHRvYXN0aWZ5SW5zdGFuY2V9ID0gYXdhaXQgcXVlcnlMb2dpblRva2VuKHRvYXN0aWZ5SW5zdGFuY2UpKTtcblx0XHRcdH1cblxuXHRcdFx0Y29uc3QgcGFyYW1zOiBDbGllbnRMb2dpblBhcmFtcyA9IHtcblx0XHRcdFx0YWN0aW9uOiAnY2xpZW50bG9naW4nLFxuXHRcdFx0XHRmb3JtYXQ6ICdqc29uJyxcblx0XHRcdFx0Zm9ybWF0dmVyc2lvbjogJzInLFxuXHRcdFx0XHRsb2dpbnRva2VuOiBsb2dpblRva2VuLFxuXHRcdFx0XHRsb2dpbnJldHVybnVybDogbG9jYXRpb24uaHJlZixcblx0XHRcdFx0dXNlcm5hbWU6IG5hbWVJbnB1dC5nZXRWYWx1ZSgpLFxuXHRcdFx0XHRwYXNzd29yZDogcHdkSW5wdXQuZ2V0VmFsdWUoKSxcblx0XHRcdH07XG5cdFx0XHRpZiAoa2VlcExvZ2luQ2hlY2tib3guaXNTZWxlY3RlZCgpKSB7XG5cdFx0XHRcdHBhcmFtcy5yZW1lbWJlck1lID0gdHJ1ZTtcblx0XHRcdH1cblx0XHRcdGlmIChsb2dpbkNvbnRpbnVlIHx8IHJldHlwZVBhc3N3b3JkKSB7XG5cdFx0XHRcdGF3YWl0IHdpbmRvd01hbmFnZXIuY2xlYXJXaW5kb3dzKCk7XG5cdFx0XHRcdGRlbGV0ZSBwYXJhbXMubG9naW5yZXR1cm51cmw7XG5cdFx0XHRcdGRlbGV0ZSBwYXJhbXMudXNlcm5hbWU7XG5cdFx0XHRcdGRlbGV0ZSBwYXJhbXMucGFzc3dvcmQ7XG5cdFx0XHRcdHBhcmFtcy5sb2dpbmNvbnRpbnVlID0gdHJ1ZTtcblxuXHRcdFx0XHRjb25zdCB2YWx1ZTogc3RyaW5nIHwgbnVsbCA9IGF3YWl0IG9vdWlQcm9tcHQocmV0eXBlUGFzc3dvcmQpO1xuXG5cdFx0XHRcdHRvYXN0aWZ5SW5zdGFuY2UuaGlkZVRvYXN0KCk7XG5cblx0XHRcdFx0aWYgKHZhbHVlID09PSBudWxsKSB7XG5cdFx0XHRcdFx0dG9hc3RpZnkoXG5cdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdHRleHQ6IGdldE1lc3NhZ2UoJ0xvZ2luIGNhbmNlbGxlZCcpLFxuXHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdCdpbmZvJ1xuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0dm9pZCB3aW5kb3dNYW5hZ2VyLmNsZWFyV2luZG93cygpO1xuXG5cdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHR9IGVsc2UgaWYgKHZhbHVlID09PSAnJykge1xuXHRcdFx0XHRcdGlmIChyZXR5cGVQYXNzd29yZCkge1xuXHRcdFx0XHRcdFx0dG9hc3RpZnlJbnN0YW5jZSA9IHRvYXN0aWZ5KFxuXHRcdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdFx0dGV4dDogZ2V0TWVzc2FnZSgnRW1wdHlQYXNzd29yZCcpLFxuXHRcdFx0XHRcdFx0XHRcdGR1cmF0aW9uOiAtMSxcblx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFx0J3dhcm5pbmcnXG5cdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdFx0dm9pZCBsb2dpbih7XG5cdFx0XHRcdFx0XHRcdHJldHlwZVBhc3N3b3JkOiB0cnVlLFxuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdHRvYXN0aWZ5SW5zdGFuY2UgPSB0b2FzdGlmeShcblx0XHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcdHRleHQ6IGdldE1lc3NhZ2UoJ0VtcHR5MkZBJyksXG5cdFx0XHRcdFx0XHRcdFx0ZHVyYXRpb246IC0xLFxuXHRcdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0XHQnd2FybmluZydcblx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0XHR2b2lkIGxvZ2luKHtcblx0XHRcdFx0XHRcdFx0bG9naW5Db250aW51ZTogdHJ1ZSxcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGlmIChyZXR5cGVQYXNzd29yZCkge1xuXHRcdFx0XHRcdHBhcmFtcy5wYXNzd29yZCA9IHZhbHVlO1xuXHRcdFx0XHRcdHBhcmFtcy5yZXR5cGUgPSB2YWx1ZTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRwYXJhbXMuT0FUSFRva2VuID0gdmFsdWU7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0dG9hc3RpZnlJbnN0YW5jZS5oaWRlVG9hc3QoKTtcblx0XHRcdHRvYXN0aWZ5SW5zdGFuY2UgPSB0b2FzdGlmeShcblx0XHRcdFx0e1xuXHRcdFx0XHRcdHRleHQ6IGdldE1lc3NhZ2UoJ0xvZ2dpbmcgaW4nKSxcblx0XHRcdFx0fSxcblx0XHRcdFx0J2luZm8nXG5cdFx0XHQpO1xuXG5cdFx0XHRjb25zdCByZXNwb25zZSA9IChhd2FpdCBhcGkucG9zdChwYXJhbXMpKSBhcyB7XG5cdFx0XHRcdGNsaWVudGxvZ2luOiB7XG5cdFx0XHRcdFx0c3RhdHVzPzogc3RyaW5nO1xuXHRcdFx0XHRcdG1lc3NhZ2Vjb2RlPzogc3RyaW5nO1xuXHRcdFx0XHR9O1xuXHRcdFx0fTtcblxuXHRcdFx0dG9hc3RpZnlJbnN0YW5jZS5oaWRlVG9hc3QoKTtcblxuXHRcdFx0aWYgKHJlc3BvbnNlWydjbGllbnRsb2dpbiddPy5zdGF0dXMgPT09ICdQQVNTJykge1xuXHRcdFx0XHR0b2FzdGlmeShcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHR0ZXh0OiBnZXRNZXNzYWdlKCdMb2dpbiBzdWNjZWVkJyksXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHQnc3VjY2Vzcydcblx0XHRcdFx0KTtcblx0XHRcdFx0bG9jYXRpb24ucmVsb2FkKCk7XG5cdFx0XHR9IGVsc2UgaWYgKHJlc3BvbnNlWydjbGllbnRsb2dpbiddPy5tZXNzYWdlY29kZSkge1xuXHRcdFx0XHRjb25zdCB7bWVzc2FnZWNvZGV9ID0gcmVzcG9uc2VbJ2NsaWVudGxvZ2luJ107XG5cdFx0XHRcdHN3aXRjaCAobWVzc2FnZWNvZGUpIHtcblx0XHRcdFx0XHRjYXNlICdsb2dpbi10aHJvdHRsZWQnOlxuXHRcdFx0XHRcdFx0dG9hc3RpZnlJbnN0YW5jZSA9IHRvYXN0aWZ5KFxuXHRcdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdFx0dGV4dDogZ2V0TWVzc2FnZSgnVG9vRnJlcXVlbnQnKSxcblx0XHRcdFx0XHRcdFx0XHRkdXJhdGlvbjogLTEsXG5cdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRcdCdlcnJvcidcblx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRjYXNlICdvYXRoYXV0aC1hdXRoLXVpJzpcblx0XHRcdFx0XHRcdHZvaWQgbG9naW4oe1xuXHRcdFx0XHRcdFx0XHRsb2dpbkNvbnRpbnVlOiB0cnVlLFxuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRjYXNlICdvYXRoYXV0aC1sb2dpbi1mYWlsZWQnOlxuXHRcdFx0XHRcdFx0dG9hc3RpZnlJbnN0YW5jZSA9IHRvYXN0aWZ5KFxuXHRcdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdFx0dGV4dDogZ2V0TWVzc2FnZSgnSW52YWxpZCAyRkEgdmVyaWZpY2F0aW9uIGNvZGUnKSxcblx0XHRcdFx0XHRcdFx0XHRkdXJhdGlvbjogLTEsXG5cdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRcdCd3YXJuaW5nJ1xuXHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRcdHZvaWQgbG9naW4oe1xuXHRcdFx0XHRcdFx0XHRsb2dpbkNvbnRpbnVlOiB0cnVlLFxuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRjYXNlICdyZXNldHBhc3MtdGVtcC1lbWFpbGVkJzpcblx0XHRcdFx0XHRcdHRvYXN0aWZ5SW5zdGFuY2UgPSB0b2FzdGlmeShcblx0XHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcdHRleHQ6IGdldE1lc3NhZ2UoJ05ldyBwYXNzd29yZCBpcyByZXF1aXJlZCcpLFxuXHRcdFx0XHRcdFx0XHRcdGR1cmF0aW9uOiAtMSxcblx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFx0J3dhcm5pbmcnXG5cdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdFx0dm9pZCBsb2dpbih7XG5cdFx0XHRcdFx0XHRcdHJldHlwZVBhc3N3b3JkOiB0cnVlLFxuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRjYXNlICd3cm9uZ3Bhc3N3b3JkJzpcblx0XHRcdFx0XHRcdHRvYXN0aWZ5SW5zdGFuY2UgPSB0b2FzdGlmeShcblx0XHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcdHRleHQ6IGdldE1lc3NhZ2UoJ0ludmFsaWQgdXNlcm5hbWUgb3IgcGFzc3dvcmQnKSxcblx0XHRcdFx0XHRcdFx0XHRkdXJhdGlvbjogLTEsXG5cdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRcdCd3YXJuaW5nJ1xuXHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRcdGF3YWl0IHdpbmRvd01hbmFnZXIuY2xlYXJXaW5kb3dzKCk7XG5cdFx0XHRcdFx0XHRhamF4TG9naW4odG9hc3RpZnlJbnN0YW5jZSk7XG5cdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHRcdFx0dG9hc3RpZnkoXG5cdFx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XHR0ZXh0OiBnZXRNZXNzYWdlKCdVbmV4cGVjdGVkIEFQSSByZXNwb25zZScpLnJlcGxhY2UoJyQxJywgbWVzc2FnZWNvZGUpLFxuXHRcdFx0XHRcdFx0XHRcdGNsb3NlOiB0cnVlLFxuXHRcdFx0XHRcdFx0XHRcdGR1cmF0aW9uOiAtMSxcblx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFx0J2Vycm9yJ1xuXHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRcdHZvaWQgcmVkaXJlY3RPcmlnaW5Mb2dpblBhZ2UoKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0gY2F0Y2ggKGVycm9yKSB7XG5cdFx0XHRzaG93RXJyb3IoZXJyb3IsIHRvYXN0aWZ5SW5zdGFuY2UpO1xuXHRcdFx0dm9pZCByZWRpcmVjdE9yaWdpbkxvZ2luUGFnZSgpO1xuXHRcdH1cblx0fTtcblxuXHRjb25zdCBjaGVjayA9IGFzeW5jICgpOiBQcm9taXNlPHZvaWQ+ID0+IHtcblx0XHRjb25zdCB7XG5cdFx0XHRpc1ZhbGlkLFxuXHRcdFx0aXNBZ3JlZVRvczogbGFzdElzQWdyZWVUb3MsXG5cdFx0XHR0b2FzdGlmeUluc3RhbmNlOiBsYXN0VG9hc3RpZnlJbnN0YW5jZSxcblx0XHR9ID0gYXdhaXQgY2hlY2tWYWxpZChbYWdyZWVUb3NDaGVja2JveCwgbmFtZUlucHV0LCBwd2RJbnB1dF0sIHRvYXN0aWZ5SW5zdGFuY2UpO1xuXG5cdFx0dG9hc3RpZnlJbnN0YW5jZSA9IGxhc3RUb2FzdGlmeUluc3RhbmNlO1xuXG5cdFx0aWYgKGlzVmFsaWQpIHtcblx0XHRcdHZvaWQgbG9naW4oKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0YWpheExvZ2luKHRvYXN0aWZ5SW5zdGFuY2UsIGxhc3RJc0FncmVlVG9zKTtcblx0XHR9XG5cdH07XG5cblx0cHdkSW5wdXQub24oJ2VudGVyJywgKCk6IHZvaWQgPT4ge1xuXHRcdHZvaWQgY2hlY2soKTtcblx0fSk7XG5cdG1lc3NhZ2VEaWFsb2cuZ2V0QWN0aW9uUHJvY2VzcyA9IChhY3Rpb24pOiBPTy51aS5Qcm9jZXNzID0+XG5cdFx0bmV3IE9PLnVpLlByb2Nlc3MoKCk6IHZvaWQgPT4ge1xuXHRcdFx0aWYgKGFjdGlvbiA9PT0gJ2xvZ2luJykge1xuXHRcdFx0XHR2b2lkIGNoZWNrKCk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR0b2FzdGlmeUluc3RhbmNlLmhpZGVUb2FzdCgpO1xuXHRcdFx0XHR2b2lkIHdpbmRvd01hbmFnZXIuY2xlYXJXaW5kb3dzKCk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cblx0d2luZG93TWFuYWdlci5hZGRXaW5kb3dzKFttZXNzYWdlRGlhbG9nXSk7XG5cdHZvaWQgd2luZG93TWFuYWdlci5vcGVuV2luZG93KG1lc3NhZ2VEaWFsb2csIHtcblx0XHRhY3Rpb25zOiBbXG5cdFx0XHR7XG5cdFx0XHRcdGFjdGlvbjogJ2xvZ2luJyxcblx0XHRcdFx0ZmxhZ3M6IFsncHJpbWFyeScsICdwcm9ncmVzc2l2ZSddLFxuXHRcdFx0XHRsYWJlbDogJCg8Yj57Z2V0TWVzc2FnZSgnTG9naW4nKX08L2I+KSxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGFjdGlvbjogJ2NhbmNlbCcsXG5cdFx0XHRcdGZsYWdzOiBbJ3NhZmUnLCAnY2xvc2UnXSxcblx0XHRcdFx0bGFiZWw6ICQoPGI+e2dldE1lc3NhZ2UoJ0NhbmNlbCcpfTwvYj4pLFxuXHRcdFx0fSxcblx0XHRdLFxuXHRcdG1lc3NhZ2U6ICQoXG5cdFx0XHQ8ZGl2IGNsYXNzTmFtZT1cIm9vLXVpLXdpbmRvdy1mb290XCI+e1skaW5wdXRCb3gsICRmb3Jnb3RQYXNzd29yZCwgJHJlbWVtYmVyTWUsICRhZ3JlZVRvcywgJHRvc0xhYmVsXX08L2Rpdj5cblx0XHQpLFxuXHRcdHRpdGxlOiAkKDxiIGNsYXNzTmFtZT1cIm9vLXVpLXdpbmRvdy1oZWFkXCI+e2dldE1lc3NhZ2UoJ0xvZ2luJyl9PC9iPiksXG5cdFx0c2l6ZTogJ3NtYWxsJyxcblx0fSk7XG5cdHJlbW92ZVdpbmRvd1Jlc2l6ZUhhbmRsZXIoKTtcbn07XG5cbmV4cG9ydCB7YWpheExvZ2lufTtcbiIsICJpbXBvcnQgUmVhY3QgZnJvbSAnZXh0LmdhZGdldC5SZWFjdCc7XG5pbXBvcnQge2dldE1lc3NhZ2V9IGZyb20gJy4uL2kxOG4nO1xuaW1wb3J0IHtvb3VpQ29uZmlybX0gZnJvbSAnLi9vb3VpQ29uZmlybSc7XG5pbXBvcnQge3RvYXN0aWZ5fSBmcm9tICdleHQuZ2FkZ2V0LlRvYXN0aWZ5JztcbmltcG9ydCB7d2luZG93TWFuYWdlcn0gZnJvbSAnLi4vaW5pdFdpbmRvd01hbmFnZXInO1xuXG5jb25zdCBjaGVja1ZhbGlkID0gYXN5bmMgKFxuXHRbYWdyZWVUb3NDaGVja2JveCwgbmFtZUlucHV0LCBwd2RJbnB1dF06IFtPTy51aS5DaGVja2JveElucHV0V2lkZ2V0LCBPTy51aS5UZXh0SW5wdXRXaWRnZXQsIE9PLnVpLlRleHRJbnB1dFdpZGdldF0sXG5cdHRvYXN0aWZ5SW5zdGFuY2U6IFRvYXN0aWZ5SW5zdGFuY2Vcbik6IFByb21pc2U8e1xuXHRpc0FncmVlVG9zOiBib29sZWFuO1xuXHRpc1ZhbGlkOiBib29sZWFuO1xuXHR0b2FzdGlmeUluc3RhbmNlOiBUb2FzdGlmeUluc3RhbmNlO1xufT4gPT4ge1xuXHRsZXQgaXNBZ3JlZVRvczogYm9vbGVhbiA9IGFncmVlVG9zQ2hlY2tib3guaXNTZWxlY3RlZCgpO1xuXHRjb25zdCBpc0ZpbGw6IGJvb2xlYW4gPSAhW25hbWVJbnB1dC5nZXRWYWx1ZSgpLnRyaW0oKSwgcHdkSW5wdXQuZ2V0VmFsdWUoKS50cmltKCldLmluY2x1ZGVzKCcnKTtcblxuXHR0b2FzdGlmeUluc3RhbmNlLmhpZGVUb2FzdCgpO1xuXHRhd2FpdCB3aW5kb3dNYW5hZ2VyLmNsZWFyV2luZG93cygpO1xuXG5cdGlmICghaXNBZ3JlZVRvcykge1xuXHRcdGlzQWdyZWVUb3MgPSBhd2FpdCBvb3VpQ29uZmlybSh7XG5cdFx0XHRtZXNzYWdlOiAkKDxzcGFuIGlubmVySFRNTD17Z2V0TWVzc2FnZSgnRG91YmxlQ2hlY2tBZ3JlZWRPck5vdCcpfSAvPikgYXMgSlF1ZXJ5LFxuXHRcdFx0YWN0aW9uczogW1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0bGFiZWw6ICQoPGI+e2dldE1lc3NhZ2UoJ0NhbmNlbCcpfTwvYj4pLFxuXHRcdFx0XHRcdGFjdGlvbjogJ2NhbmNlbCcsXG5cdFx0XHRcdFx0ZmxhZ3M6IFsnc2FmZScsICdjbG9zZSddLFxuXHRcdFx0XHR9LFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0bGFiZWw6ICQoPGI+e2dldE1lc3NhZ2UoJ0kgYWdyZWUnKX08L2I+KSxcblx0XHRcdFx0XHRhY3Rpb246ICdhY2NlcHQnLFxuXHRcdFx0XHRcdGZsYWdzOiBbJ3ByaW1hcnknLCAncHJvZ3Jlc3NpdmUnXSxcblx0XHRcdFx0fSxcblx0XHRcdF0sXG5cdFx0fSk7XG5cblx0XHRpZiAoIWlzQWdyZWVUb3MpIHtcblx0XHRcdHRvYXN0aWZ5SW5zdGFuY2UgPSB0b2FzdGlmeShcblx0XHRcdFx0e1xuXHRcdFx0XHRcdHRleHQ6IGdldE1lc3NhZ2UoJ0FncmVlZE9yTm90JyksXG5cdFx0XHRcdFx0ZHVyYXRpb246IC0xLFxuXHRcdFx0XHR9LFxuXHRcdFx0XHQnaW5mbydcblx0XHRcdCk7XG5cdFx0fVxuXHR9IGVsc2UgaWYgKCFpc0ZpbGwpIHtcblx0XHR0b2FzdGlmeUluc3RhbmNlID0gdG9hc3RpZnkoXG5cdFx0XHR7XG5cdFx0XHRcdHRleHQ6IGdldE1lc3NhZ2UoJ0VtcHR5VXNlcm5hbWVPclBhc3N3b3JkJyksXG5cdFx0XHRcdGR1cmF0aW9uOiAtMSxcblx0XHRcdH0sXG5cdFx0XHQnaW5mbydcblx0XHQpO1xuXHR9XG5cblx0Y29uc3QgaXNWYWxpZDogYm9vbGVhbiA9IGlzQWdyZWVUb3MgJiYgaXNGaWxsO1xuXG5cdHJldHVybiB7XG5cdFx0aXNBZ3JlZVRvcyxcblx0XHRpc1ZhbGlkLFxuXHRcdHRvYXN0aWZ5SW5zdGFuY2UsXG5cdH07XG59O1xuXG5leHBvcnQge2NoZWNrVmFsaWR9O1xuIiwgImltcG9ydCB7bG9jYWxpemV9IGZyb20gJ2V4dC5nYWRnZXQuaTE4bic7XG5cbmNvbnN0IGdldEkxOG5NZXNzYWdlcyA9ICgpID0+IHtcblx0cmV0dXJuIHtcblx0XHQnNi1kaWdpdCBudW1iZXInOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJzYtZGlnaXQgbnVtYmVyJyxcblx0XHRcdGphOiAnNuahgeOBruaVsOWtlycsXG5cdFx0XHQnemgtaGFucyc6ICc25L2N5pWw5a2XJyxcblx0XHRcdCd6aC1oYW50JzogJzbkvY3mlbjlrZcnLFxuXHRcdH0pLFxuXHRcdENhbmNlbDogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdDYW5jZWwnLFxuXHRcdFx0amE6ICfjgq3jg6Pjg7Pjgrvjg6snLFxuXHRcdFx0emg6ICflj5bmtognLFxuXHRcdH0pLFxuXHRcdCdFbnRlciBwYXNzd29yZCc6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnRW50ZXIgcGFzc3dvcmQnLFxuXHRcdFx0amE6ICfjg5Hjgrnjg6/jg7zjg4knLFxuXHRcdFx0J3poLWhhbnMnOiAn6K+36L6T5YWl5a+G56CBJyxcblx0XHRcdCd6aC1oYW50JzogJ+iri+i8uOWFpeWvhueivCcsXG5cdFx0fSksXG5cdFx0J0VudGVyIDJGQSB2ZXJpZmljYXRpb24gY29kZSc6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnMkZBIHZlcmlmaWNhdGlvbiBjb2RlJyxcblx0XHRcdGphOiAnMkZB6KqN6Ki844Kz44O844OJJyxcblx0XHRcdCd6aC1oYW5zJzogJ+ivt+i+k+WFpTJGQemqjOivgeeggScsXG5cdFx0XHQnemgtaGFudCc6ICfoq4vovLjlhaUyRkHpqZforYnnorwnLFxuXHRcdH0pLFxuXHRcdCdGb3Jnb3QgcGFzc3dvcmQ/JzogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdGb3Jnb3QgcGFzc3dvcmQ/Jyxcblx0XHRcdGphOiAn44OR44K544Ov44O844OJ44KS44GK5b+Y44KM44Gn44GZ44GL77yfJyxcblx0XHRcdCd6aC1oYW5zJzogJ+W/mOiusOWvhuegge+8nycsXG5cdFx0XHQnemgtaGFudCc6ICflv5joqJjlr4bnorzvvJ8nLFxuXHRcdH0pLFxuXHRcdCdHZXR0aW5nIGxvZ2luIHRva2VuJzogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdHZXR0aW5nIGxvZ2luIHRva2VuJyxcblx0XHRcdGphOiAn44Ot44Kw44Kk44Oz44OI44O844Kv44Oz44KS5Y+W5b6X44GX44Gm44GE44G+44GZJyxcblx0XHRcdCd6aC1oYW5zJzogJ+ato+WcqOiOt+WPlueZu+W9leS7pOeJjCcsXG5cdFx0XHQnemgtaGFudCc6ICfmraPlnKjnjbLlj5bnmbvlhaXmrIrmnZYnLFxuXHRcdH0pLFxuXHRcdCdoZWxwIGZvciBJIGFncmVlIHdpdGggdGhlIHJlbGV2YW50IHRlcm1zJzogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdXaGVuIHlvdSBsb2dpbiwgaXQgbWVhbnMgdGhhdCB5b3UgaGF2ZSBjYXJlZnVsbHkgcmVhZCwgZnVsbHkgdW5kZXJzdG9vZCBhbmQgYWdyZWVkIHRvIGNvbXBseSB3aXRoIG91ciA8YSByZWw9XCJub29wZW5lclwiIHRhcmdldD1cIl9ibGFua1wiIGhyZWY9XCIvd2lraS9RVzpUT1NcIiB0aXRsZT1cIlRlcm1zIG9mIFNlcnZpY2VcIj5UZXJtcyBvZiBTZXJ2aWNlPC9hPiwgPGEgcmVsPVwibm9vcGVuZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPVwiL3dpa2kvUVc6UElQUFwiIHRpdGxlPVwiUGVyc29uYWwgSW5mb3JtYXRpb24gUHJvdGVjdGlvbiBQb2xpY3lcIj5QZXJzb25hbCBJbmZvcm1hdGlvbiBQcm90ZWN0aW9uIFBvbGljeTwvYT4gYW5kIDxlbT50aGUgPGEgcmVsPVwibm9vcGVuZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPVwiL3dpa2kvUVc6R1RHTFwiIHRpdGxlPVwiQ29tbW9uIFByb2dyYW1cIj5Db21tb24gUHJvZ3JhbTwvYT48L2VtPi4nLFxuXHRcdFx0amE6ICfjg63jgrDjgqTjg7PjgpLjgZnjgovjgajjgIHjgYLjgarjgZ/jga/mnKzjgrXjgqTjg4jjga7jgI48YSByZWw9XCJub29wZW5lclwiIHRhcmdldD1cIl9ibGFua1wiIGhyZWY9XCIvd2lraS9RVzpUT1NcIiB0aXRsZT1cIuWIqeeUqOimj+e0hFwiPuWIqeeUqOimj+e0hDwvYT7jgI/jgI48YSByZWw9XCJub29wZW5lclwiIHRhcmdldD1cIl9ibGFua1wiIGhyZWY9XCIvd2lraS9RVzpQSVBQXCIgdGl0bGU9XCLlgIvkurrmg4XloLHkv53orbfmlrnph51cIj7lgIvkurrmg4XloLHkv53orbfmlrnph508L2E+44CP44COPGEgcmVsPVwibm9vcGVuZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPVwiL3dpa2kvUVc6R1RHTFwiIHRpdGxlPVwi5YWx5ZCM57ax6aCYXCI+5YWx5ZCM57ax6aCYPC9hPuOAj+OCkuWNgeWIhuOBq+eQhuino+OBl+OAgeWQjOaEj+OBl+OBn+OBk+OBqOOBq+OBquOCiuOBvuOBmeOAgicsXG5cdFx0XHQnemgtaGFucyc6XG5cdFx0XHRcdCfnmbvlvZXml7bvvIzljbPku6Pooajmgqjlt7Lku5Tnu4bpmIXor7vjgIHlhYXliIbkuobop6PlubblkIzmhI/pgbXlrojmnKznvZHnq5nnmoTjgIo8YSByZWw9XCJub29wZW5lclwiIHRhcmdldD1cIl9ibGFua1wiIGhyZWY9XCIvd2lraS9RVzpUT1NcIiB0aXRsZT1cIueUqOaIt+WNj+iurlwiPueUqOaIt+WNj+iurjwvYT7jgIvjgIHjgIo8YSByZWw9XCJub29wZW5lclwiIHRhcmdldD1cIl9ibGFua1wiIGhyZWY9XCIvd2lraS9RVzpQSVBQXCIgdGl0bGU9XCLkuKrkurrkv6Hmga/kv53miqTmlrnpkohcIj7kuKrkurrkv6Hmga/kv53miqTmlrnpkog8L2E+44CL5Y+K44CKPGEgcmVsPVwibm9vcGVuZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPVwiL3dpa2kvUVc6R1RHTFwiIHRpdGxlPVwi5YWx5ZCM57qy6aKGXCI+5YWx5ZCM57qy6aKGPC9hPuOAi+OAgicsXG5cdFx0XHQnemgtaGFudCc6XG5cdFx0XHRcdCfnmbvpjITmmYLvvIzljbPku6Pooajmgqjlt7Lku5TntLDplrHoroDjgIHlhYXliIbkuobop6PkuKblkIzmhI/pgbXlrojmnKzntrLnq5nnmoTjgIo8YSByZWw9XCJub29wZW5lclwiIHRhcmdldD1cIl9ibGFua1wiIGhyZWY9XCIvd2lraS9RVzpUT1NcIiB0aXRsZT1cIueUqOaItuWNlOitsFwiPueUqOaItuWNlOitsDwvYT7jgIvjgIHjgIo8YSByZWw9XCJub29wZW5lclwiIHRhcmdldD1cIl9ibGFua1wiIGhyZWY9XCIvd2lraS9RVzpQSVBQXCIgdGl0bGU9XCLlgIvkurrkv6Hmga/kv53orbfmlrnph51cIj7lgIvkurrkv6Hmga/kv53orbfmlrnph508L2E+44CL5Y+K44CKPGEgcmVsPVwibm9vcGVuZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPVwiL3dpa2kvUVc6R1RHTFwiIHRpdGxlPVwi5YWx5ZCM57ax6aCYXCI+5YWx5ZCM57ax6aCYPC9hPuOAi+OAgicsXG5cdFx0fSksXG5cdFx0J0kgYWdyZWUnOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ0kgYWdyZWUnLFxuXHRcdFx0amE6ICflkIzmhI/jgZnjgosnLFxuXHRcdFx0emg6ICfmiJHlkIzmhI8nLFxuXHRcdH0pLFxuXHRcdCdJIGFncmVlIHdpdGggdGhlIHJlbGV2YW50IHRlcm1zJzogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdJIGFncmVlIHdpdGggdGhlIHJlbGV2YW50IHRlcm1zJyxcblx0XHRcdGphOiAn6Zai6YCj44GZ44KL6KaP57SE44KS6Kqt44G/44CB5ZCM5oSPJyxcblx0XHRcdCd6aC1oYW5zJzogJ+aIkeW3sumYheivu+W5tuWQjOaEj+ebuOWFs+adoeasvicsXG5cdFx0XHQnemgtaGFudCc6ICfmiJHlt7LplrLoroDkuKblkIzmhI/nm7jpl5zmop3mrL4nLFxuXHRcdH0pLFxuXHRcdCdJbnZhbGlkIDJGQSB2ZXJpZmljYXRpb24gY29kZSc6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnSW52YWxpZCAyRkEgdmVyaWZpY2F0aW9uIGNvZGUnLFxuXHRcdFx0amE6ICcyRkHoqo3oqLzjgrPjg7zjg4njgYzplpPpgZXjgaPjgabjgYTjgb7jgZknLFxuXHRcdFx0J3poLWhhbnMnOiAnMkZB6aqM6K+B56CB6ZSZ6K+vJyxcblx0XHRcdCd6aC1oYW50JzogJzJGQempl+itieeivOmMr+iqpCcsXG5cdFx0fSksXG5cdFx0J0ludmFsaWQgdXNlcm5hbWUgb3IgcGFzc3dvcmQnOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ0ludmFsaWQgdXNlcm5hbWUgb3IgcGFzc3dvcmQnLFxuXHRcdFx0amE6ICfliKnnlKjogIXlkI3jgb7jgZ/jga/jg5Hjgrnjg6/jg7zjg4njgYzplpPpgZXjgaPjgabjgYTjgb7jgZknLFxuXHRcdFx0J3poLWNuJzogJ+eUqOaIt+WQjeaIluWvhueggemUmeivrycsXG5cdFx0XHQnemgtaGsnOiAn55So5oi25ZCN56ix5oiW5a+G56K86Yyv6KqkJyxcblx0XHRcdCd6aC10dyc6ICfkvb/nlKjogIXlkI3nqLHmiJblr4bnorzpjK/oqqQnLFxuXHRcdH0pLFxuXHRcdCdLZWVwIG1lIGxvZ2dlZCBpbic6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnS2VlcCBtZSBsb2dnZWQgaW4nLFxuXHRcdFx0amE6ICfjg63jgrDjgqTjg7PnirbmhYvjgpLkv53mjIEnLFxuXHRcdFx0J3poLWhhbnMnOiAn6K6w5L2P5oiR55qE55m75b2V54q25oCBJyxcblx0XHRcdCd6aC1oYW50JzogJ+iomOS9j+aIkeeahOeZu+WFpeeLgOaFiycsXG5cdFx0fSksXG5cdFx0J0xvZ2dpbmcgaW4nOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ0xvZ2dpbmcgaW4nLFxuXHRcdFx0amE6ICfjg63jgrDjgqTjg7PjgZfjgabjgYTjgb7jgZknLFxuXHRcdFx0J3poLWhhbnMnOiAn5q2j5Zyo55m75b2VJyxcblx0XHRcdCd6aC1oYW50JzogJ+ato+WcqOeZu+WFpScsXG5cdFx0fSksXG5cdFx0TG9naW46IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnTG9naW4nLFxuXHRcdFx0amE6ICfjg63jgrDjgqTjg7MnLFxuXHRcdFx0J3poLWhhbnMnOiAn55m75b2VJyxcblx0XHRcdCd6aC1oYW50JzogJ+eZu+WFpScsXG5cdFx0fSksXG5cdFx0J0xvZ2luIGNhbmNlbGxlZCc6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnTG9naW4gY2FuY2VsbGVkJyxcblx0XHRcdGphOiAn44Ot44Kw44Kk44Oz44Kt44Oj44Oz44K744OrJyxcblx0XHRcdCd6aC1oYW5zJzogJ+eZu+W9leWPlua2iCcsXG5cdFx0XHQnemgtaGFudCc6ICfnmbvlhaXlj5bmtognLFxuXHRcdH0pLFxuXHRcdCdMb2dpbiBzdWNjZWVkJzogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdMb2dpbiBzdWNjZWVkJyxcblx0XHRcdGphOiAn44Ot44Kw44Kk44Oz44Gr5oiQ5Yqf44GX44G+44GX44GfJyxcblx0XHRcdCd6aC1oYW5zJzogJ+eZu+W9leaIkOWKnycsXG5cdFx0XHQnemgtaGFudCc6ICfnmbvlhaXmiJDlip8nLFxuXHRcdH0pLFxuXHRcdCdMb2dpbiB0b2tlbiBnb3QnOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ0xvZ2luIHRva2VuIGdvdCcsXG5cdFx0XHRqYTogJ+ODreOCsOOCpOODs+ODiOODvOOCr+ODs+OBruWPluW+l+OBq+aIkOWKn+OBl+OBvuOBl+OBnycsXG5cdFx0XHQnemgtaGFucyc6ICfojrflj5bnmbvlvZXku6TniYzmiJDlip8nLFxuXHRcdFx0J3poLWhhbnQnOiAn542y5Y+W55m75YWl5qyK5p2W5oiQ5YqfJyxcblx0XHR9KSxcblx0XHQnTmV3IHBhc3N3b3JkJzogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdOZXcgcGFzc3dvcmQnLFxuXHRcdFx0amE6ICfmlrDjgZfjgYTjg5Hjgrnjg6/jg7zjg4knLFxuXHRcdFx0J3poLWhhbnMnOiAn5paw5a+G56CBJyxcblx0XHRcdCd6aC1oYW50JzogJ+aWsOWvhueivCcsXG5cdFx0fSksXG5cdFx0J05ldyBwYXNzd29yZCBpcyByZXF1aXJlZCc6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnTmV3IHBhc3N3b3JkIGlzIHJlcXVpcmVkJyxcblx0XHRcdGphOiAn5paw44GX44GE44OR44K544Ov44O844OJ44KS6Kit5a6a44GX44Gm44GP44Gg44GV44GEJyxcblx0XHRcdCd6aC1oYW5zJzogJ+mcgOimgeiuvue9ruaWsOWvhueggScsXG5cdFx0XHQnemgtaGFudCc6ICfpnIDopoHoqK3nva7mlrDlr4bnorwnLFxuXHRcdH0pLFxuXHRcdFBhc3N3b3JkOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ1Bhc3N3b3JkJyxcblx0XHRcdGphOiAn44OR44K544Ov44O844OJJyxcblx0XHRcdCd6aC1oYW5zJzogJ+WvhueggScsXG5cdFx0XHQnemgtaGFudCc6ICflr4bnorwnLFxuXHRcdH0pLFxuXHRcdCdSZXNldCBwYXNzd29yZCc6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnUmVzZXQgcGFzc3dvcmQnLFxuXHRcdFx0amE6ICfjg5Hjgrnjg6/jg7zjg4njgpLjg6rjgrvjg4Pjg4gnLFxuXHRcdFx0J3poLWhhbnMnOiAn6YeN572u5a+G56CBJyxcblx0XHRcdCd6aC1oYW50JzogJ+mHjeaWsOioreWumuWvhueivCcsXG5cdFx0fSksXG5cdFx0VXNlcm5hbWU6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnVXNlcm5hbWUnLFxuXHRcdFx0amE6ICfliKnnlKjogIXlkI0nLFxuXHRcdFx0J3poLWNuJzogJ+eUqOaIt+WQjScsXG5cdFx0XHQnemgtaGsnOiAn55So5oi25ZCN56ixJyxcblx0XHRcdCd6aC10dyc6ICfkvb/nlKjogIXlkI3nqLEnLFxuXHRcdH0pLFxuXHRcdEFncmVlZE9yTm90OiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ1BsZWFzZSByZWFkIHRoZSByZWxldmFudCB0ZXJtcy4gSWYgeW91IGFncmVlLCBjaGVjayB0aGUgY2hlY2tib3ggdG8gY29uZmlybScsXG5cdFx0XHRqYTogJ+mWoumAo+OBmeOCi+imj+e0hOOCkuOBiuiqreOBv+OBhOOBn+OBoOOBjeOAgeWQjOaEj+OBleOCjOOCi+WgtOWQiOOBr+OAgeODgeOCp+ODg+OCr+ODnOODg+OCr+OCueOBq+ODgeOCp+ODg+OCr+OCkuWFpeOCjOOBpueiuuiqjeOBl+OBpuOBj+OBoOOBleOBhCcsXG5cdFx0XHQnemgtaGFucyc6ICfor7fpmIXor7vnm7jlhbPmnaHmrL7jgILoi6XlkIzmhI/vvIzli77pgInlpI3pgInmoYbku6Xnoa7orqQnLFxuXHRcdFx0J3poLWhhbnQnOiAn6KuL6Zay6K6A55u46Zec5qKd5qy+44CC6Iul5ZCM5oSP77yM5Yu+6YG46KSH6YG45qGG5Lul56K66KqNJyxcblx0XHR9KSxcblx0XHREb3VibGVDaGVja0FncmVlZE9yTm90OiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ1lvdSBoYXZlIGNhcmVmdWxseSByZWFkLCBmdWxseSB1bmRlcnN0b29kIGFuZCBhZ3JlZWQgdG8gY29tcGx5IHdpdGggb3VyIDxhIHJlbD1cIm5vb3BlbmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj1cIi93aWtpL1FXOlRPU1wiIHRpdGxlPVwiVGVybXMgb2YgU2VydmljZVwiPlRlcm1zIG9mIFNlcnZpY2U8L2E+LCA8YSByZWw9XCJub29wZW5lclwiIHRhcmdldD1cIl9ibGFua1wiIGhyZWY9XCIvd2lraS9RVzpQSVBQXCIgdGl0bGU9XCJQZXJzb25hbCBJbmZvcm1hdGlvbiBQcm90ZWN0aW9uIFBvbGljeVwiPlBlcnNvbmFsIEluZm9ybWF0aW9uIFByb3RlY3Rpb24gUG9saWN5PC9hPiBhbmQgPGEgcmVsPVwibm9vcGVuZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPVwiL3dpa2kvUVc6R1RHTFwiIHRpdGxlPVwiQ29tbW9uIFByb2dyYW1cIj5Db21tb24gUHJvZ3JhbTwvYT4uJyxcblx0XHRcdGphOiAn44GC44Gq44Gf44Gv5pys44K144Kk44OI44Gu44COPGEgcmVsPVwibm9vcGVuZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPVwiL3dpa2kvUVc6VE9TXCIgdGl0bGU9XCLliKnnlKjopo/ntIRcIj7liKnnlKjopo/ntIQ8L2E+44CP44COPGEgcmVsPVwibm9vcGVuZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPVwiL3dpa2kvUVc6UElQUFwiIHRpdGxlPVwi5YCL5Lq65oOF5aCx5L+d6K235pa56YedXCI+5YCL5Lq65oOF5aCx5L+d6K235pa56YedPC9hPuOAj+OAjjxhIHJlbD1cIm5vb3BlbmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj1cIi93aWtpL1FXOkdUR0xcIiB0aXRsZT1cIuWFseWQjOe2semgmFwiPuWFseWQjOe2semgmDwvYT7jgI/jgpLljYHliIbjgavnkIbop6PjgZfjgIHlkIzmhI/jgZfjgZ/jgZPjgajjgavjgarjgorjgb7jgZnjgIInLFxuXHRcdFx0J3poLWhhbnMnOlxuXHRcdFx0XHQn5oKo5bey5LuU57uG6ZiF6K+744CB5YWF5YiG5LqG6Kej5bm25ZCM5oSP6YG15a6I5pys572R56uZ55qE44CKPGEgcmVsPVwibm9vcGVuZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPVwiL3dpa2kvUVc6VE9TXCIgdGl0bGU9XCLnlKjmiLfljY/orq5cIj7nlKjmiLfljY/orq48L2E+44CL44CKPGEgcmVsPVwibm9vcGVuZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPVwiL3dpa2kvUVc6UElQUFwiIHRpdGxlPVwi5Liq5Lq65L+h5oGv5L+d5oqk5pa56ZKIXCI+5Liq5Lq65L+h5oGv5L+d5oqk5pa56ZKIPC9hPuOAi+OAijxhIHJlbD1cIm5vb3BlbmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj1cIi93aWtpL1FXOkdUR0xcIiB0aXRsZT1cIuWFseWQjOe6sumihlwiPuWFseWQjOe6sumihjwvYT7jgIvjgIInLFxuXHRcdFx0J3poLWhhbnQnOlxuXHRcdFx0XHQn5oKo5bey5LuU57Sw6Zax6K6A44CB5YWF5YiG5LqG6Kej5Lim5ZCM5oSP6YG15a6I5pys57ay56uZ55qE44CKPGEgcmVsPVwibm9vcGVuZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPVwiL3dpa2kvUVc6VE9TXCIgdGl0bGU9XCLnlKjmiLbljZTorbBcIj7nlKjmiLbljZTorbA8L2E+44CL44CKPGEgcmVsPVwibm9vcGVuZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPVwiL3dpa2kvUVc6UElQUFwiIHRpdGxlPVwi5YCL5Lq65L+h5oGv5L+d6K235pa56YedXCI+5YCL5Lq65L+h5oGv5L+d6K235pa56YedPC9hPuOAi+OAijxhIHJlbD1cIm5vb3BlbmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj1cIi93aWtpL1FXOkdUR0xcIiB0aXRsZT1cIuWFseWQjOe2semgmFwiPuWFseWQjOe2semgmDwvYT7jgIvjgIInLFxuXHRcdH0pLFxuXHRcdEVtcHR5MkZBOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ1RoZSAyRkEgdmVyaWZpY2F0aW9uIGNvZGUgY2Fubm90IGJlIGVtcHR5Jyxcblx0XHRcdGphOiAnMkZB6KqN6Ki844Kz44O844OJ44GM5YWl5Yqb44GV44KM44Gm44GE44G+44Gb44KTJyxcblx0XHRcdCd6aC1oYW5zJzogJzJGQemqjOivgeeggeS4jeiDveS4uuepuicsXG5cdFx0XHQnemgtaGFudCc6ICcyRkHpqZforYnnorzkuI3og73niLLnqbonLFxuXHRcdH0pLFxuXHRcdEVtcHR5UGFzc3dvcmQ6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnVGhlIHBhc3N3b3JkIGNhbm5vdCBiZSBlbXB0eScsXG5cdFx0XHRqYTogJ+ODkeOCueODr+ODvOODieOBjOWFpeWKm+OBleOCjOOBpuOBhOOBvuOBm+OCkycsXG5cdFx0XHQnemgtaGFucyc6ICflr4bnoIHkuI3og73kuLrnqbonLFxuXHRcdFx0J3poLWhhbnQnOiAn5a+G56K85LiN6IO954iy56m6Jyxcblx0XHR9KSxcblx0XHRFbXB0eVVzZXJuYW1lT3JQYXNzd29yZDogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdUaGUgdXNlcm5hbWUgb3IgcGFzc3dvcmQgY2Fubm90IGJlIGVtcHR5Jyxcblx0XHRcdGphOiAn5Yip55So6ICF5ZCN44G+44Gf44Gv44OR44K544Ov44O844OJ44GM5YWl5Yqb44GV44KM44Gm44GE44G+44Gb44KTJyxcblx0XHRcdCd6aC1jbic6ICfnlKjmiLflkI3miJblr4bnoIHkuI3og73kuLrnqbonLFxuXHRcdFx0J3poLWhrJzogJ+eUqOaItuWQjeeoseaIluWvhueivOS4jeiDveeIsuepuicsXG5cdFx0XHQnemgtdHcnOiAn5L2/55So6ICF5ZCN56ix5oiW5a+G56K85LiN6IO954iy56m6Jyxcblx0XHR9KSxcblx0XHQnTmV0d29yayBlcnJvcic6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnTmV0d29yayBlcnJvci4gUmVkaXJlY3RpbmcuLi4nLFxuXHRcdFx0amE6ICfjg43jg4Pjg4jjg6/jg7zjgq/jgqjjg6njg7zjgIHjg6rjg4DjgqTjg6zjgq/jg4jkuK0uLi4nLFxuXHRcdFx0J3poLWhhbnMnOiAn572R57uc5byC5bi444CC6YeN5a6a5ZCR5Lit4oCm4oCmJyxcblx0XHRcdCd6aC1oYW50JzogJ+e2sui3r+eVsOW4uOOAgumHjeaWsOWwjuWQkeS4reKApuKApicsXG5cdFx0fSksXG5cdFx0U2VsZWN0ZWRPck5vdDogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdLZWVwIGxvZ2dlZCBpbiBmb3IgNiBtb250aHMgaWYgc2VsZWN0ZWQ7IG90aGVyd2lzZSB1bnRpbCB0aGUgYnJvd3NlciBjbG9zZXMuJyxcblx0XHRcdGphOiAn44OB44Kn44OD44Kv44KS5YWl44KM44KL44Go44Ot44Kw44Kk44Oz54q25oWL44GMNuODtuaciOmWk+S/neaMgeOBleOCjOOAgeWFpeOCjOOBquOBhOWgtOWQiOOBr+ODluODqeOCpuOCtuOCkumWieOBmOOCi+OBvuOBp+S/neaMgeOBleOCjOOBvuOBmeOAgicsXG5cdFx0XHQnemgtaGFucyc6ICfli77pgInliJnkv53mjIHnmbvlvZXnirbmgIE25Liq5pyI77yM5ZCm5YiZ5bCG5Zyo5rWP6KeI5Zmo5YWz6Zet5pe26YCA5Ye655m75b2V44CCJyxcblx0XHRcdCd6aC1oYW50JzogJ+WLvumBuOWImeS/neaMgeeZu+WFpeeLgOaFizblgIvmnIjvvIzlkKbliYflsIflnKjngI/opr3lmajpl5zplonmmYLnmbvlh7rjgIInLFxuXHRcdH0pLFxuXHRcdFRvb0ZyZXF1ZW50OiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ1RoZSB1c2VyIGxvZ2luIGlzIHRvbyBmcmVxdWVudCwgcGxlYXNlIHRyeSBhZ2FpbiBpbiBmaXZlIG1pbnV0ZXMnLFxuXHRcdFx0amE6ICfliKnnlKjogIXjgYzpoLvnuYHjgZnjgY7jgovjgZ/jgoHjgIE15YiG5b6M44Gr5YaN6Kmm6KGM44GX44Gm44GP44Gg44GV44GEJyxcblx0XHRcdCd6aC1jbic6ICfnlKjmiLfnmbvlvZXov4fkuo7popHnuYHvvIzor7fkupTliIbpkp/lkI7lho3or5UnLFxuXHRcdFx0J3poLWhrJzogJ+eUqOaItueZu+WFpemBjuaWvOmgu+e5ge+8jOiri+S6lOWIhumQmOW+jOWGjeippicsXG5cdFx0XHQnemgtdHcnOiAn5L2/55So6ICF55m75YWl6L+H5LqO6aKR57mB77yM6K+35LqU5YiG6ZKf5ZCO5YaN6K+VJyxcblx0XHR9KSxcblx0XHQnVW5leHBlY3RlZCBBUEkgcmVzcG9uc2UnOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ1VuZXhwZWN0ZWQgQVBJIHJlc3BvbnNlOiAkMS4gUmVkaXJlY3RpbmcuLi4nLFxuXHRcdFx0amE6ICfkuojmnJ/jgZvjgaxBUEnjga7lv5znrZTvvJokMeOAgeODquODgOOCpOODrOOCr+ODiOS4rS4uLicsXG5cdFx0XHQnemgtaGFucyc6ICfmhI/lpJbnmoRBUEnlk43lupTvvJokMeOAgumHjeWumuWQkeS4reKApuKApicsXG5cdFx0XHQnemgtaGFudCc6ICfmhI/lpJbnmoRBUEnpn7/mh4nvvJokMeOAgumHjeaWsOWwjuWQkeS4reKApuKApicsXG5cdFx0fSksXG5cdH07XG59O1xuY29uc3QgaTE4bk1lc3NhZ2VzID0gZ2V0STE4bk1lc3NhZ2VzKCk7XG5cbmNvbnN0IGdldE1lc3NhZ2U6IEdldE1lc3NhZ2VzPHR5cGVvZiBpMThuTWVzc2FnZXM+ID0gKGtleSkgPT4ge1xuXHRyZXR1cm4gaTE4bk1lc3NhZ2VzW2tleV0gfHwga2V5O1xufTtcblxuZXhwb3J0IHtnZXRNZXNzYWdlfTtcbiIsICJjb25zdCBpbml0V2luZG93TWFuYWdlciA9ICgpOiBPTy51aS5XaW5kb3dNYW5hZ2VyID0+IHtcblx0cmV0dXJuIG5ldyBPTy51aS5XaW5kb3dNYW5hZ2VyKCk7XG59O1xuXG5jb25zdCB3aW5kb3dNYW5hZ2VyOiBPTy51aS5XaW5kb3dNYW5hZ2VyID0gaW5pdFdpbmRvd01hbmFnZXIoKTtcblxuZXhwb3J0IHt3aW5kb3dNYW5hZ2VyfTtcbiIsICJpbXBvcnQge3dpbmRvd01hbmFnZXJ9IGZyb20gJy4uL2luaXRXaW5kb3dNYW5hZ2VyJztcblxuY29uc3Qgb291aUNvbmZpcm0gPSBhc3luYyAob3B0aW9uczogT08udWkuTWVzc2FnZURpYWxvZy5TZXR1cERhdGFNYXApOiBQcm9taXNlPGJvb2xlYW4+ID0+IHtcblx0Y29uc3QgbWVzc2FnZURpYWxvZzogT08udWkuTWVzc2FnZURpYWxvZyA9IG5ldyBPTy51aS5NZXNzYWdlRGlhbG9nKCk7XG5cdHdpbmRvd01hbmFnZXIuYWRkV2luZG93cyhbbWVzc2FnZURpYWxvZ10pO1xuXG5cdGNvbnN0IGluc3RhbmNlOiBPTy51aS5XaW5kb3dJbnN0YW5jZSA9IHdpbmRvd01hbmFnZXIub3BlbldpbmRvdyhtZXNzYWdlRGlhbG9nLCBvcHRpb25zKTtcblxuXHRjb25zdCBkYXRhOiB2b2lkID0gYXdhaXQgaW5zdGFuY2UuY2xvc2VkO1xuXHRjb25zdCBfZGF0YSA9IGRhdGEgYXMge2FjdGlvbjogc3RyaW5nfSB8IHZvaWQ7XG5cblx0cmV0dXJuICEhKF9kYXRhPy5hY3Rpb24gPT09ICdhY2NlcHQnKTtcbn07XG5cbmV4cG9ydCB7b291aUNvbmZpcm19O1xuIiwgImltcG9ydCBSZWFjdCBmcm9tICdleHQuZ2FkZ2V0LlJlYWN0JztcbmltcG9ydCB7Z2V0TWVzc2FnZX0gZnJvbSAnLi4vaTE4bic7XG5cbmNvbnN0IGdlbmVyYXRlRWxlbWVudHMgPSAoaXNBZ3JlZVRvczogYm9vbGVhbikgPT4ge1xuXHRjb25zdCBtZXNzYWdlRGlhbG9nOiBPTy51aS5NZXNzYWdlRGlhbG9nID0gbmV3IE9PLnVpLk1lc3NhZ2VEaWFsb2coKTtcblxuXHRjb25zdCBuYW1lSW5wdXQ6IE9PLnVpLlRleHRJbnB1dFdpZGdldCA9IG5ldyBPTy51aS5UZXh0SW5wdXRXaWRnZXQoe1xuXHRcdGljb246ICd1c2VyQXZhdGFyJyxcblx0XHRwbGFjZWhvbGRlcjogZ2V0TWVzc2FnZSgnVXNlcm5hbWUnKSxcblx0XHR2YWxpZGF0ZTogJ25vbi1lbXB0eScsXG5cdH0pO1xuXG5cdGNvbnN0IHB3ZElucHV0OiBPTy51aS5UZXh0SW5wdXRXaWRnZXQgPSBuZXcgT08udWkuVGV4dElucHV0V2lkZ2V0KHtcblx0XHRpY29uOiAna2V5Jyxcblx0XHRwbGFjZWhvbGRlcjogZ2V0TWVzc2FnZSgnUGFzc3dvcmQnKSxcblx0XHR0eXBlOiAncGFzc3dvcmQnLFxuXHRcdHZhbGlkYXRlOiAnbm9uLWVtcHR5Jyxcblx0fSk7XG5cblx0Y29uc3QgYWdyZWVUb3NDaGVja2JveDogT08udWkuQ2hlY2tib3hJbnB1dFdpZGdldCA9IG5ldyBPTy51aS5DaGVja2JveElucHV0V2lkZ2V0KHtcblx0XHRzZWxlY3RlZDogaXNBZ3JlZVRvcyxcblx0fSk7XG5cdGNvbnN0IGFncmVlVG9zTGF5b3V0OiBPTy51aS5GaWVsZExheW91dDxPTy51aS5DaGVja2JveElucHV0V2lkZ2V0PiA9IG5ldyBPTy51aS5GaWVsZExheW91dChhZ3JlZVRvc0NoZWNrYm94LCB7XG5cdFx0YWxpZ246ICdpbmxpbmUnLFxuXHRcdGxhYmVsOiBnZXRNZXNzYWdlKCdJIGFncmVlIHdpdGggdGhlIHJlbGV2YW50IHRlcm1zJyksXG5cdH0pO1xuXG5cdGNvbnN0IGtlZXBMb2dpbkNoZWNrYm94OiBPTy51aS5DaGVja2JveElucHV0V2lkZ2V0ID0gbmV3IE9PLnVpLkNoZWNrYm94SW5wdXRXaWRnZXQoKTtcblx0Y29uc3Qga2VlcExvZ2luTGF5b3V0OiBPTy51aS5GaWVsZExheW91dDxPTy51aS5DaGVja2JveElucHV0V2lkZ2V0PiA9IG5ldyBPTy51aS5GaWVsZExheW91dChrZWVwTG9naW5DaGVja2JveCwge1xuXHRcdGFsaWduOiAnaW5saW5lJyxcblx0XHRoZWxwOiBnZXRNZXNzYWdlKCdTZWxlY3RlZE9yTm90JyksXG5cdFx0bGFiZWw6IGdldE1lc3NhZ2UoJ0tlZXAgbWUgbG9nZ2VkIGluJyksXG5cdH0pO1xuXG5cdGNvbnN0IGxhYmVsID0gKFxuXHRcdDxsYWJlbFxuXHRcdFx0Y2xhc3NOYW1lPXtbJ29vLXVpLWxhYmVsV2lkZ2V0JywgJ29vLXVpLWxhYmVsRWxlbWVudC1sYWJlbCddfVxuXHRcdFx0c3R5bGU9e3tmb250U2l6ZTogJzkwJScsIHRleHRBbGlnbjogJ2p1c3RpZnknfX1cblx0XHQvPlxuXHQpO1xuXHRjb25zdCAkbGFiZWwgPSAkKGxhYmVsKSBhcyBKUXVlcnk7XG5cblx0Y29uc3QgJGFncmVlVG9zOiBKUXVlcnkgPSAkbGFiZWwuY2xvbmUoKS5hcHBlbmQoYWdyZWVUb3NMYXlvdXQuJGVsZW1lbnQpO1xuXHRjb25zdCAkZm9yZ290UGFzc3dvcmQ6IEpRdWVyeSA9ICRsYWJlbFxuXHRcdC5jbG9uZSgpXG5cdFx0LmNzcygnZmxvYXQnLCAncmlnaHQnKVxuXHRcdC5hcHBlbmQoXG5cdFx0XHQ8YSBocmVmPXttdy51dGlsLmdldFVybCgnU3BlY2lhbDpQYXNzd29yZFJlc2V0Jyl9IHRpdGxlPXtnZXRNZXNzYWdlKCdSZXNldCBwYXNzd29yZCcpfT5cblx0XHRcdFx0e2dldE1lc3NhZ2UoJ0ZvcmdvdCBwYXNzd29yZD8nKX1cblx0XHRcdDwvYT5cblx0XHQpO1xuXHRjb25zdCAkaW5wdXRCb3g6IEpRdWVyeSA9ICRsYWJlbFxuXHRcdC5jbG9uZSgpXG5cdFx0LmNzcyh7XG5cdFx0XHRkaXNwbGF5OiAnYmxvY2snLFxuXHRcdFx0J2ZvbnQtc2l6ZSc6ICdpbmhlcml0Jyxcblx0XHRcdHBhZGRpbmc6ICc2cHggMCcsXG5cdFx0fSlcblx0XHQuYXBwZW5kKG5hbWVJbnB1dC4kZWxlbWVudC5jc3MoJ21hcmdpbi1ib3R0b20nLCAnNnB4JyksIHB3ZElucHV0LiRlbGVtZW50KTtcblx0Y29uc3QgJHRvc0xhYmVsOiBKUXVlcnkgPSAkbGFiZWwuY2xvbmUoKS5odG1sKGdldE1lc3NhZ2UoJ2hlbHAgZm9yIEkgYWdyZWUgd2l0aCB0aGUgcmVsZXZhbnQgdGVybXMnKSk7XG5cdGNvbnN0ICRyZW1lbWJlck1lOiBKUXVlcnkgPSAkbGFiZWwuY2xvbmUoKS5hcHBlbmQoa2VlcExvZ2luTGF5b3V0LiRlbGVtZW50LmNzcygnbWFyZ2luLXRvcCcsICc2cHgnKSk7XG5cblx0cmV0dXJuIHtcblx0XHQkYWdyZWVUb3MsXG5cdFx0JGZvcmdvdFBhc3N3b3JkLFxuXHRcdCRpbnB1dEJveCxcblx0XHQkcmVtZW1iZXJNZSxcblx0XHQkdG9zTGFiZWwsXG5cdFx0YWdyZWVUb3NDaGVja2JveCxcblx0XHRrZWVwTG9naW5DaGVja2JveCxcblx0XHRtZXNzYWdlRGlhbG9nLFxuXHRcdG5hbWVJbnB1dCxcblx0XHRwd2RJbnB1dCxcblx0fTtcbn07XG5cbmV4cG9ydCB7Z2VuZXJhdGVFbGVtZW50c307XG4iLCAiaW1wb3J0IFJlYWN0IGZyb20gJ2V4dC5nYWRnZXQuUmVhY3QnO1xuaW1wb3J0IHtnZXRNZXNzYWdlfSBmcm9tICcuLi9pMThuJztcbmltcG9ydCB7cmVtb3ZlV2luZG93UmVzaXplSGFuZGxlcn0gZnJvbSAnLi9yZW1vdmVXaW5kb3dSZXNpemVIYW5kbGVyJztcbmltcG9ydCB7d2luZG93TWFuYWdlcn0gZnJvbSAnLi4vaW5pdFdpbmRvd01hbmFnZXInO1xuXG5jb25zdCBvb3VpUHJvbXB0ID0gYXN5bmMgKHJldHlwZVBhc3N3b3JkOiBib29sZWFuKTogUHJvbWlzZTxzdHJpbmcgfCBudWxsPiA9PiB7XG5cdGNvbnN0IGNvZGVEaWFsb2c6IE9PLnVpLk1lc3NhZ2VEaWFsb2cgPSBuZXcgT08udWkuTWVzc2FnZURpYWxvZygpO1xuXHRjb25zdCBjb2RlSW5wdXQ6IE9PLnVpLlRleHRJbnB1dFdpZGdldCA9IG5ldyBPTy51aS5UZXh0SW5wdXRXaWRnZXQoe1xuXHRcdGljb246ICdrZXknLFxuXHRcdHBsYWNlaG9sZGVyOiByZXR5cGVQYXNzd29yZCA/IGdldE1lc3NhZ2UoJ05ldyBwYXNzd29yZCcpIDogZ2V0TWVzc2FnZSgnNi1kaWdpdCBudW1iZXInKSxcblx0XHR2YWxpZGF0ZTogJ2ludGVnZXInLFxuXHR9KTtcblxuXHRjb25zdCBjb2RlTGF5b3V0OiBPTy51aS5GaWVsZExheW91dDxPTy51aS5UZXh0SW5wdXRXaWRnZXQ+ID0gbmV3IE9PLnVpLkZpZWxkTGF5b3V0KGNvZGVJbnB1dCwge1xuXHRcdGFsaWduOiAndG9wJyxcblx0XHRsYWJlbDogJChcblx0XHRcdDxiIGNsYXNzTmFtZT17Wydvby11aS1tZXNzYWdlRGlhbG9nLXRpdGxlJywgJ29vLXVpLXdpbmRvdy1oZWFkJ119PlxuXHRcdFx0XHR7cmV0eXBlUGFzc3dvcmQgPyBnZXRNZXNzYWdlKCdFbnRlciBwYXNzd29yZCcpIDogZ2V0TWVzc2FnZSgnRW50ZXIgMkZBIHZlcmlmaWNhdGlvbiBjb2RlJyl9XG5cdFx0XHQ8L2I+XG5cdFx0KSxcblx0fSk7XG5cblx0d2luZG93TWFuYWdlci5hZGRXaW5kb3dzKFtjb2RlRGlhbG9nXSk7XG5cblx0Y29uc3QgaW5zdGFuY2U6IE9PLnVpLldpbmRvd0luc3RhbmNlID0gd2luZG93TWFuYWdlci5vcGVuV2luZG93KGNvZGVEaWFsb2csIHtcblx0XHRtZXNzYWdlOiBjb2RlTGF5b3V0LiRlbGVtZW50LFxuXHR9KTtcblxuXHRyZW1vdmVXaW5kb3dSZXNpemVIYW5kbGVyKCk7XG5cblx0dm9pZCBpbnN0YW5jZS5vcGVuZWQudGhlbigoKTogdm9pZCA9PiB7XG5cdFx0Y29kZUlucHV0Lm9uKCdlbnRlcicsICgpOiB2b2lkID0+IHtcblx0XHRcdCh3aW5kb3dNYW5hZ2VyLmdldEN1cnJlbnRXaW5kb3coKSBhcyBPTy51aS5XaW5kb3cpLmNsb3NlKHtcblx0XHRcdFx0YWN0aW9uOiAnYWNjZXB0Jyxcblx0XHRcdH0pO1xuXHRcdH0pO1xuXHRcdGNvZGVJbnB1dC5mb2N1cygpO1xuXHR9KTtcblxuXHRjb25zdCBkYXRhOiB2b2lkID0gYXdhaXQgaW5zdGFuY2UuY2xvc2VkO1xuXHRjb25zdCBfZGF0YSA9IGRhdGEgYXMge2FjdGlvbjogc3RyaW5nfSB8IHZvaWQ7XG5cblx0cmV0dXJuIF9kYXRhPy5hY3Rpb24gPT09ICdhY2NlcHQnID8gY29kZUlucHV0LmdldFZhbHVlKCkgOiBudWxsO1xufTtcblxuZXhwb3J0IHtvb3VpUHJvbXB0fTtcbiIsICJpbXBvcnQge3dpbmRvd01hbmFnZXJ9IGZyb20gJy4uL2luaXRXaW5kb3dNYW5hZ2VyJztcblxuY29uc3QgcmVtb3ZlV2luZG93UmVzaXplSGFuZGxlciA9ICgpOiB2b2lkID0+IHtcblx0JCh3aW5kb3cpLm9mZih7XG5cdFx0J29yaWVudGF0aW9uY2hhbmdlIHJlc2l6ZSc6ICh3aW5kb3dNYW5hZ2VyIGFzIHVua25vd24gYXMge29uV2luZG93UmVzaXplSGFuZGxlcjogKCkgPT4gdm9pZH0pXG5cdFx0XHQub25XaW5kb3dSZXNpemVIYW5kbGVyLFxuXHR9KTtcbn07XG5cbmV4cG9ydCB7cmVtb3ZlV2luZG93UmVzaXplSGFuZGxlcn07XG4iLCAiaW1wb3J0IHthcGl9IGZyb20gJy4uL2FwaSc7XG5pbXBvcnQge2dldE1lc3NhZ2V9IGZyb20gJy4uL2kxOG4nO1xuaW1wb3J0IHt0b2FzdGlmeX0gZnJvbSAnZXh0LmdhZGdldC5Ub2FzdGlmeSc7XG5cbmNvbnN0IHF1ZXJ5TG9naW5Ub2tlbiA9IGFzeW5jIChcblx0dG9hc3RpZnlJbnN0YW5jZTogVG9hc3RpZnlJbnN0YW5jZVxuKTogUHJvbWlzZTx7XG5cdGxvZ2luVG9rZW46IHN0cmluZztcblx0dG9hc3RpZnlJbnN0YW5jZTogVG9hc3RpZnlJbnN0YW5jZTtcbn0+ID0+IHtcblx0dG9hc3RpZnlJbnN0YW5jZS5oaWRlVG9hc3QoKTtcblx0dG9hc3RpZnlJbnN0YW5jZSA9IHRvYXN0aWZ5KHtcblx0XHR0ZXh0OiBnZXRNZXNzYWdlKCdHZXR0aW5nIGxvZ2luIHRva2VuJyksXG5cdH0pO1xuXG5cdGNvbnN0IGxvZ2luVG9rZW46IHN0cmluZyA9IGF3YWl0IGFwaS5nZXRUb2tlbignbG9naW4nKTtcblxuXHR0b2FzdGlmeUluc3RhbmNlLmhpZGVUb2FzdCgpO1xuXHR0b2FzdGlmeUluc3RhbmNlID0gdG9hc3RpZnkoe1xuXHRcdHRleHQ6IGdldE1lc3NhZ2UoJ0xvZ2luIHRva2VuIGdvdCcpLFxuXHRcdGR1cmF0aW9uOiAtMSxcblx0fSk7XG5cblx0cmV0dXJuIHtcblx0XHRsb2dpblRva2VuLFxuXHRcdHRvYXN0aWZ5SW5zdGFuY2UsXG5cdH07XG59O1xuXG5leHBvcnQge3F1ZXJ5TG9naW5Ub2tlbn07XG4iLCAiaW1wb3J0IHtkZWxheX0gZnJvbSAnZXh0LmdhZGdldC5VdGlsJztcbmltcG9ydCB7d2luZG93TWFuYWdlcn0gZnJvbSAnLi4vaW5pdFdpbmRvd01hbmFnZXInO1xuXG5jb25zdCByZWRpcmVjdE9yaWdpbkxvZ2luUGFnZSA9IGFzeW5jICgpOiBQcm9taXNlPHZvaWQ+ID0+IHtcblx0YXdhaXQgd2luZG93TWFuYWdlci5jbGVhcldpbmRvd3MoKTtcblx0YXdhaXQgZGVsYXkoMyAqIDEwMDApO1xuXHRsb2NhdGlvbi5ocmVmID0gbXcudXRpbC5nZXRVcmwoJ1NwZWNpYWw6VXNlcmxvZ2luJyk7XG59O1xuXG5leHBvcnQge3JlZGlyZWN0T3JpZ2luTG9naW5QYWdlfTtcbiIsICJpbXBvcnQge2dldE1lc3NhZ2V9IGZyb20gJy4uL2kxOG4nO1xuaW1wb3J0IHt0b2FzdGlmeX0gZnJvbSAnZXh0LmdhZGdldC5Ub2FzdGlmeSc7XG5cbmNvbnN0IHNob3dFcnJvciA9IChlcnJvcjogdW5rbm93biwgdG9hc3RpZnlJbnN0YW5jZTogVG9hc3RpZnlJbnN0YW5jZSk6IHZvaWQgPT4ge1xuXHRjb25zb2xlLmVycm9yKCdbQWpheExvZ2luXSBBamF4IGVycm9yOicsIGVycm9yKTtcblx0dG9hc3RpZnlJbnN0YW5jZS5oaWRlVG9hc3QoKTtcblx0dG9hc3RpZnkoXG5cdFx0e1xuXHRcdFx0dGV4dDogZ2V0TWVzc2FnZSgnTmV0d29yayBlcnJvcicpLFxuXHRcdFx0Y2xvc2U6IHRydWUsXG5cdFx0XHRkdXJhdGlvbjogLTEsXG5cdFx0fSxcblx0XHQnZXJyb3InXG5cdCk7XG59O1xuXG5leHBvcnQge3Nob3dFcnJvcn07XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNDLElBQUFBLHVCQUF3QjtBQUN4QixJQUFBQyxVQUFXOztBQ0RaLElBQUFDLHNCQUEyQ0MsUUFBQSxpQkFBQTs7QUNEM0MsSUFBQUMsb0JBQWtDRCxRQUFBLGdDQUFBO0FBRWxDLElBQU1FLGNBQWNBLENBQ25CQyxVQUNBQyxrQkFDVTtBQUNWRCxXQUFTRSxHQUFHLFVBQUEsR0FBU0osa0JBQUFLLHFCQUFvQkYsYUFBYSxDQUFDO0FBQ3ZERCxXQUFTRSxHQUFHLFdBQVdELGFBQWE7QUFDckM7O0FDUEEsSUFBQUcscUJBQXdCUCxRQUFBLGlCQUFBO0FBVXhCLElBQU1RLE9BQUEsR0FBY0QsbUJBQUFFLFdBQUEsYUFBQUMsT0FBK0JaLE9BQU8sQ0FBRTs7QUNWNUQsSUFBQWEsc0JBQWtCQyxRQUFBWixRQUFBLGtCQUFBLEdBQUEsQ0FBQTs7QUNEbEIsSUFBQWEscUJBQWtCRCxRQUFBWixRQUFBLGtCQUFBLEdBQUEsQ0FBQTs7QUNBbEIsSUFBQWMscUJBQXVCZCxRQUFBLGlCQUFBO0FBRXZCLElBQU1lLGtCQUFrQkEsTUFBTTtBQUM3QixTQUFPO0lBQ04sbUJBQUEsR0FBa0JELG1CQUFBRSxVQUFTO01BQzFCQyxJQUFJO01BQ0pDLElBQUk7TUFDSixXQUFXO01BQ1gsV0FBVztJQUNaLENBQUM7SUFDREMsU0FBQSxHQUFRTCxtQkFBQUUsVUFBUztNQUNoQkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pFLElBQUk7SUFDTCxDQUFDO0lBQ0QsbUJBQUEsR0FBa0JOLG1CQUFBRSxVQUFTO01BQzFCQyxJQUFJO01BQ0pDLElBQUk7TUFDSixXQUFXO01BQ1gsV0FBVztJQUNaLENBQUM7SUFDRCxnQ0FBQSxHQUErQkosbUJBQUFFLFVBQVM7TUFDdkNDLElBQUk7TUFDSkMsSUFBSTtNQUNKLFdBQVc7TUFDWCxXQUFXO0lBQ1osQ0FBQztJQUNELHFCQUFBLEdBQW9CSixtQkFBQUUsVUFBUztNQUM1QkMsSUFBSTtNQUNKQyxJQUFJO01BQ0osV0FBVztNQUNYLFdBQVc7SUFDWixDQUFDO0lBQ0Qsd0JBQUEsR0FBdUJKLG1CQUFBRSxVQUFTO01BQy9CQyxJQUFJO01BQ0pDLElBQUk7TUFDSixXQUFXO01BQ1gsV0FBVztJQUNaLENBQUM7SUFDRCw2Q0FBQSxHQUE0Q0osbUJBQUFFLFVBQVM7TUFDcERDLElBQUk7TUFDSkMsSUFBSTtNQUNKLFdBQ0M7TUFDRCxXQUNDO0lBQ0YsQ0FBQztJQUNELFlBQUEsR0FBV0osbUJBQUFFLFVBQVM7TUFDbkJDLElBQUk7TUFDSkMsSUFBSTtNQUNKRSxJQUFJO0lBQ0wsQ0FBQztJQUNELG9DQUFBLEdBQW1DTixtQkFBQUUsVUFBUztNQUMzQ0MsSUFBSTtNQUNKQyxJQUFJO01BQ0osV0FBVztNQUNYLFdBQVc7SUFDWixDQUFDO0lBQ0Qsa0NBQUEsR0FBaUNKLG1CQUFBRSxVQUFTO01BQ3pDQyxJQUFJO01BQ0pDLElBQUk7TUFDSixXQUFXO01BQ1gsV0FBVztJQUNaLENBQUM7SUFDRCxpQ0FBQSxHQUFnQ0osbUJBQUFFLFVBQVM7TUFDeENDLElBQUk7TUFDSkMsSUFBSTtNQUNKLFNBQVM7TUFDVCxTQUFTO01BQ1QsU0FBUztJQUNWLENBQUM7SUFDRCxzQkFBQSxHQUFxQkosbUJBQUFFLFVBQVM7TUFDN0JDLElBQUk7TUFDSkMsSUFBSTtNQUNKLFdBQVc7TUFDWCxXQUFXO0lBQ1osQ0FBQztJQUNELGVBQUEsR0FBY0osbUJBQUFFLFVBQVM7TUFDdEJDLElBQUk7TUFDSkMsSUFBSTtNQUNKLFdBQVc7TUFDWCxXQUFXO0lBQ1osQ0FBQztJQUNERyxRQUFBLEdBQU9QLG1CQUFBRSxVQUFTO01BQ2ZDLElBQUk7TUFDSkMsSUFBSTtNQUNKLFdBQVc7TUFDWCxXQUFXO0lBQ1osQ0FBQztJQUNELG9CQUFBLEdBQW1CSixtQkFBQUUsVUFBUztNQUMzQkMsSUFBSTtNQUNKQyxJQUFJO01BQ0osV0FBVztNQUNYLFdBQVc7SUFDWixDQUFDO0lBQ0Qsa0JBQUEsR0FBaUJKLG1CQUFBRSxVQUFTO01BQ3pCQyxJQUFJO01BQ0pDLElBQUk7TUFDSixXQUFXO01BQ1gsV0FBVztJQUNaLENBQUM7SUFDRCxvQkFBQSxHQUFtQkosbUJBQUFFLFVBQVM7TUFDM0JDLElBQUk7TUFDSkMsSUFBSTtNQUNKLFdBQVc7TUFDWCxXQUFXO0lBQ1osQ0FBQztJQUNELGlCQUFBLEdBQWdCSixtQkFBQUUsVUFBUztNQUN4QkMsSUFBSTtNQUNKQyxJQUFJO01BQ0osV0FBVztNQUNYLFdBQVc7SUFDWixDQUFDO0lBQ0QsNkJBQUEsR0FBNEJKLG1CQUFBRSxVQUFTO01BQ3BDQyxJQUFJO01BQ0pDLElBQUk7TUFDSixXQUFXO01BQ1gsV0FBVztJQUNaLENBQUM7SUFDREksV0FBQSxHQUFVUixtQkFBQUUsVUFBUztNQUNsQkMsSUFBSTtNQUNKQyxJQUFJO01BQ0osV0FBVztNQUNYLFdBQVc7SUFDWixDQUFDO0lBQ0QsbUJBQUEsR0FBa0JKLG1CQUFBRSxVQUFTO01BQzFCQyxJQUFJO01BQ0pDLElBQUk7TUFDSixXQUFXO01BQ1gsV0FBVztJQUNaLENBQUM7SUFDREssV0FBQSxHQUFVVCxtQkFBQUUsVUFBUztNQUNsQkMsSUFBSTtNQUNKQyxJQUFJO01BQ0osU0FBUztNQUNULFNBQVM7TUFDVCxTQUFTO0lBQ1YsQ0FBQztJQUNETSxjQUFBLEdBQWFWLG1CQUFBRSxVQUFTO01BQ3JCQyxJQUFJO01BQ0pDLElBQUk7TUFDSixXQUFXO01BQ1gsV0FBVztJQUNaLENBQUM7SUFDRE8seUJBQUEsR0FBd0JYLG1CQUFBRSxVQUFTO01BQ2hDQyxJQUFJO01BQ0pDLElBQUk7TUFDSixXQUNDO01BQ0QsV0FDQztJQUNGLENBQUM7SUFDRFEsV0FBQSxHQUFVWixtQkFBQUUsVUFBUztNQUNsQkMsSUFBSTtNQUNKQyxJQUFJO01BQ0osV0FBVztNQUNYLFdBQVc7SUFDWixDQUFDO0lBQ0RTLGdCQUFBLEdBQWViLG1CQUFBRSxVQUFTO01BQ3ZCQyxJQUFJO01BQ0pDLElBQUk7TUFDSixXQUFXO01BQ1gsV0FBVztJQUNaLENBQUM7SUFDRFUsMEJBQUEsR0FBeUJkLG1CQUFBRSxVQUFTO01BQ2pDQyxJQUFJO01BQ0pDLElBQUk7TUFDSixTQUFTO01BQ1QsU0FBUztNQUNULFNBQVM7SUFDVixDQUFDO0lBQ0Qsa0JBQUEsR0FBaUJKLG1CQUFBRSxVQUFTO01BQ3pCQyxJQUFJO01BQ0pDLElBQUk7TUFDSixXQUFXO01BQ1gsV0FBVztJQUNaLENBQUM7SUFDRFcsZ0JBQUEsR0FBZWYsbUJBQUFFLFVBQVM7TUFDdkJDLElBQUk7TUFDSkMsSUFBSTtNQUNKLFdBQVc7TUFDWCxXQUFXO0lBQ1osQ0FBQztJQUNEWSxjQUFBLEdBQWFoQixtQkFBQUUsVUFBUztNQUNyQkMsSUFBSTtNQUNKQyxJQUFJO01BQ0osU0FBUztNQUNULFNBQVM7TUFDVCxTQUFTO0lBQ1YsQ0FBQztJQUNELDRCQUFBLEdBQTJCSixtQkFBQUUsVUFBUztNQUNuQ0MsSUFBSTtNQUNKQyxJQUFJO01BQ0osV0FBVztNQUNYLFdBQVc7SUFDWixDQUFDO0VBQ0Y7QUFDRDtBQUNBLElBQU1hLGVBQWVoQixnQkFBZ0I7QUFFckMsSUFBTWlCLGFBQWdEQyxTQUFRO0FBQzdELFNBQU9GLGFBQWFFLEdBQUcsS0FBS0E7QUFDN0I7O0FDMU1BLElBQU1DLG9CQUFvQkEsTUFBMkI7QUFDcEQsU0FBTyxJQUFJQyxHQUFHQyxHQUFHQyxjQUFjO0FBQ2hDO0FBRUEsSUFBTUMsZ0JBQXFDSixrQkFBa0I7O0FDRjdELElBQU1LLGNBQUEsMkJBQUE7QUFBQSxNQUFBQyxPQUFBQyxrQkFBYyxXQUFPQyxTQUFnRTtBQUMxRixVQUFNQyxnQkFBcUMsSUFBSVIsR0FBR0MsR0FBR1EsY0FBYztBQUNuRU4sa0JBQWNPLFdBQVcsQ0FBQ0YsYUFBYSxDQUFDO0FBRXhDLFVBQU1HLFdBQWlDUixjQUFjUyxXQUFXSixlQUFlRCxPQUFPO0FBRXRGLFVBQU1NLE9BQUEsTUFBbUJGLFNBQVNHO0FBQ2xDLFVBQU1DLFFBQVFGO0FBRWQsV0FBTyxDQUFDLEdBQUVFLFVBQUEsUUFBQUEsVUFBQSxTQUFBLFNBQUFBLE1BQU9DLFlBQVc7RUFDN0IsQ0FBQTtBQUFBLFNBQUEsU0FWTVosYUFBQWEsSUFBQTtBQUFBLFdBQUFaLEtBQUFhLE1BQUEsTUFBQUMsU0FBQTtFQUFBO0FBQUEsRUFBQTs7QUhDTixJQUFBQyxxQkFBdUJ2RCxRQUFBLHFCQUFBO0FBR3ZCLElBQU13RCxhQUFBLDJCQUFBO0FBQUEsTUFBQUMsUUFBQWhCLGtCQUFhLFdBQ2xCLENBQUNpQixrQkFBa0JDLFdBQVdDLFFBQVEsR0FDdENDLGtCQUtLO0FBQ0wsUUFBSUMsYUFBc0JKLGlCQUFpQkssV0FBVztBQUN0RCxVQUFNQyxTQUFrQixDQUFDLENBQUNMLFVBQVVNLFNBQVMsRUFBRUMsS0FBSyxHQUFHTixTQUFTSyxTQUFTLEVBQUVDLEtBQUssQ0FBQyxFQUFFQyxTQUFTLEVBQUU7QUFFOUZOLHFCQUFpQk8sVUFBVTtBQUMzQixVQUFNOUIsY0FBYytCLGFBQWE7QUFFakMsUUFBSSxDQUFDUCxZQUFZO0FBQ2hCQSxtQkFBQSxNQUFtQnZCLFlBQVk7UUFDOUIrQixTQUFTQyxFQUFFMUQsbUNBQUEyRCxRQUFBQyxjQUFDLFFBQUE7VUFBS0MsV0FBVzFDLFdBQVcsd0JBQXdCO1FBQUEsQ0FBRyxDQUFFO1FBQ3BFMkMsU0FBUyxDQUNSO1VBQ0NDLE9BQU9MLEVBQUUxRCxtQ0FBQTJELFFBQUFDLGNBQUMsS0FBQSxNQUFHekMsV0FBVyxRQUFRLENBQUUsQ0FBSTtVQUN0Q21CLFFBQVE7VUFDUjBCLE9BQU8sQ0FBQyxRQUFRLE9BQU87UUFDeEIsR0FDQTtVQUNDRCxPQUFPTCxFQUFFMUQsbUNBQUEyRCxRQUFBQyxjQUFDLEtBQUEsTUFBR3pDLFdBQVcsU0FBUyxDQUFFLENBQUk7VUFDdkNtQixRQUFRO1VBQ1IwQixPQUFPLENBQUMsV0FBVyxhQUFhO1FBQ2pDLENBQUE7TUFFRixDQUFDO0FBRUQsVUFBSSxDQUFDZixZQUFZO0FBQ2hCRCw0QkFBQSxHQUFtQk4sbUJBQUF1QixVQUNsQjtVQUNDQyxNQUFNL0MsV0FBVyxhQUFhO1VBQzlCZ0QsVUFBVTtRQUNYLEdBQ0EsTUFDRDtNQUNEO0lBQ0QsV0FBVyxDQUFDaEIsUUFBUTtBQUNuQkgsMEJBQUEsR0FBbUJOLG1CQUFBdUIsVUFDbEI7UUFDQ0MsTUFBTS9DLFdBQVcseUJBQXlCO1FBQzFDZ0QsVUFBVTtNQUNYLEdBQ0EsTUFDRDtJQUNEO0FBRUEsVUFBTUMsVUFBbUJuQixjQUFjRTtBQUV2QyxXQUFPO01BQ05GO01BQ0FtQjtNQUNBcEI7SUFDRDtFQUNELENBQUE7QUFBQSxTQUFBLFNBekRNTCxZQUFBMEIsS0FBQUMsS0FBQTtBQUFBLFdBQUExQixNQUFBSixNQUFBLE1BQUFDLFNBQUE7RUFBQTtBQUFBLEVBQUE7O0FJTk4sSUFBQThCLHFCQUFrQnhFLFFBQUFaLFFBQUEsa0JBQUEsR0FBQSxDQUFBO0FBR2xCLElBQU1xRixtQkFBb0J2QixnQkFBd0I7QUFDakQsUUFBTW5CLGdCQUFxQyxJQUFJUixHQUFHQyxHQUFHUSxjQUFjO0FBRW5FLFFBQU1lLFlBQW1DLElBQUl4QixHQUFHQyxHQUFHa0QsZ0JBQWdCO0lBQ2xFQyxNQUFNO0lBQ05DLGFBQWF4RCxXQUFXLFVBQVU7SUFDbEN5RCxVQUFVO0VBQ1gsQ0FBQztBQUVELFFBQU03QixXQUFrQyxJQUFJekIsR0FBR0MsR0FBR2tELGdCQUFnQjtJQUNqRUMsTUFBTTtJQUNOQyxhQUFheEQsV0FBVyxVQUFVO0lBQ2xDMEQsTUFBTTtJQUNORCxVQUFVO0VBQ1gsQ0FBQztBQUVELFFBQU0vQixtQkFBOEMsSUFBSXZCLEdBQUdDLEdBQUd1RCxvQkFBb0I7SUFDakZDLFVBQVU5QjtFQUNYLENBQUM7QUFDRCxRQUFNK0IsaUJBQStELElBQUkxRCxHQUFHQyxHQUFHMEQsWUFBWXBDLGtCQUFrQjtJQUM1R3FDLE9BQU87SUFDUG5CLE9BQU81QyxXQUFXLGlDQUFpQztFQUNwRCxDQUFDO0FBRUQsUUFBTWdFLG9CQUErQyxJQUFJN0QsR0FBR0MsR0FBR3VELG9CQUFvQjtBQUNuRixRQUFNTSxrQkFBZ0UsSUFBSTlELEdBQUdDLEdBQUcwRCxZQUFZRSxtQkFBbUI7SUFDOUdELE9BQU87SUFDUEcsTUFBTWxFLFdBQVcsZUFBZTtJQUNoQzRDLE9BQU81QyxXQUFXLG1CQUFtQjtFQUN0QyxDQUFDO0FBRUQsUUFBTTRDLFFBQ0xRLG1DQUFBWixRQUFBQyxjQUFDLFNBQUE7SUFDQTBCLFdBQVcsQ0FBQyxxQkFBcUIsMEJBQTBCO0lBQzNEQyxPQUFPO01BQUNDLFVBQVU7TUFBT0MsV0FBVztJQUFTO0VBQUEsQ0FDOUM7QUFFRCxRQUFNQyxTQUFTaEMsRUFBRUssS0FBSztBQUV0QixRQUFNNEIsWUFBb0JELE9BQU9FLE1BQU0sRUFBRUMsT0FBT2IsZUFBZTFGLFFBQVE7QUFDdkUsUUFBTXdHLGtCQUEwQkosT0FDOUJFLE1BQU0sRUFDTkcsSUFBSSxTQUFTLE9BQU8sRUFDcEJGLE9BQ0F0QixtQ0FBQVosUUFBQUMsY0FBQyxLQUFBO0lBQUVvQyxNQUFNQyxHQUFHQyxLQUFLQyxPQUFPLHVCQUF1QjtJQUFHQyxPQUFPakYsV0FBVyxnQkFBZ0I7RUFBQSxHQUNsRkEsV0FBVyxrQkFBa0IsQ0FDL0IsQ0FDRDtBQUNELFFBQU1rRixZQUFvQlgsT0FDeEJFLE1BQU0sRUFDTkcsSUFBSTtJQUNKTyxTQUFTO0lBQ1QsYUFBYTtJQUNiQyxTQUFTO0VBQ1YsQ0FBQyxFQUNBVixPQUFPL0MsVUFBVXhELFNBQVN5RyxJQUFJLGlCQUFpQixLQUFLLEdBQUdoRCxTQUFTekQsUUFBUTtBQUMxRSxRQUFNa0gsWUFBb0JkLE9BQU9FLE1BQU0sRUFBRWEsS0FBS3RGLFdBQVcsMENBQTBDLENBQUM7QUFDcEcsUUFBTXVGLGNBQXNCaEIsT0FBT0UsTUFBTSxFQUFFQyxPQUFPVCxnQkFBZ0I5RixTQUFTeUcsSUFBSSxjQUFjLEtBQUssQ0FBQztBQUVuRyxTQUFPO0lBQ05KO0lBQ0FHO0lBQ0FPO0lBQ0FLO0lBQ0FGO0lBQ0EzRDtJQUNBc0M7SUFDQXJEO0lBQ0FnQjtJQUNBQztFQUNEO0FBQ0Q7O0FDMUVBLElBQUE0RCxxQkFBa0I1RyxRQUFBWixRQUFBLGtCQUFBLEdBQUEsQ0FBQTs7QUNFbEIsSUFBTXlILDRCQUE0QkEsTUFBWTtBQUM3Q2xELElBQUVtRCxNQUFNLEVBQUVDLElBQUk7SUFDYiw0QkFBNkJyRixjQUMzQnNGO0VBQ0gsQ0FBQztBQUNGOztBREZBLElBQU1DLGFBQUEsMkJBQUE7QUFBQSxNQUFBQyxRQUFBckYsa0JBQWEsV0FBT3NGLGdCQUFvRDtBQUM3RSxVQUFNQyxhQUFrQyxJQUFJN0YsR0FBR0MsR0FBR1EsY0FBYztBQUNoRSxVQUFNcUYsWUFBbUMsSUFBSTlGLEdBQUdDLEdBQUdrRCxnQkFBZ0I7TUFDbEVDLE1BQU07TUFDTkMsYUFBYXVDLGlCQUFpQi9GLFdBQVcsY0FBYyxJQUFJQSxXQUFXLGdCQUFnQjtNQUN0RnlELFVBQVU7SUFDWCxDQUFDO0FBRUQsVUFBTXlDLGFBQXVELElBQUkvRixHQUFHQyxHQUFHMEQsWUFBWW1DLFdBQVc7TUFDN0ZsQyxPQUFPO01BQ1BuQixPQUFPTCxFQUNOaUQsbUNBQUFoRCxRQUFBQyxjQUFDLEtBQUE7UUFBRTBCLFdBQVcsQ0FBQyw2QkFBNkIsbUJBQW1CO01BQUEsR0FDN0Q0QixpQkFBaUIvRixXQUFXLGdCQUFnQixJQUFJQSxXQUFXLDZCQUE2QixDQUMxRixDQUNEO0lBQ0QsQ0FBQztBQUVETSxrQkFBY08sV0FBVyxDQUFDbUYsVUFBVSxDQUFDO0FBRXJDLFVBQU1sRixXQUFpQ1IsY0FBY1MsV0FBV2lGLFlBQVk7TUFDM0UxRCxTQUFTNEQsV0FBVy9IO0lBQ3JCLENBQUM7QUFFRHNILDhCQUEwQjtBQUUxQixTQUFLM0UsU0FBU3FGLE9BQU9DLEtBQUssTUFBWTtBQUNyQ0gsZ0JBQVU1SCxHQUFHLFNBQVMsTUFBWTtBQUNoQ2lDLHNCQUFjK0YsaUJBQWlCLEVBQW1CQyxNQUFNO1VBQ3hEbkYsUUFBUTtRQUNULENBQUM7TUFDRixDQUFDO0FBQ0Q4RSxnQkFBVU0sTUFBTTtJQUNqQixDQUFDO0FBRUQsVUFBTXZGLE9BQUEsTUFBbUJGLFNBQVNHO0FBQ2xDLFVBQU1DLFFBQVFGO0FBRWQsWUFBT0UsVUFBQSxRQUFBQSxVQUFBLFNBQUEsU0FBQUEsTUFBT0MsWUFBVyxXQUFXOEUsVUFBVWhFLFNBQVMsSUFBSTtFQUM1RCxDQUFBO0FBQUEsU0FBQSxTQXRDTTRELFlBQUFXLEtBQUE7QUFBQSxXQUFBVixNQUFBekUsTUFBQSxNQUFBQyxTQUFBO0VBQUE7QUFBQSxFQUFBOztBRUhOLElBQUFtRixxQkFBdUJ6SSxRQUFBLHFCQUFBO0FBRXZCLElBQU0wSSxrQkFBQSwyQkFBQTtBQUFBLE1BQUFDLFFBQUFsRyxrQkFBa0IsV0FDdkJvQixrQkFJSztBQUNMQSxxQkFBaUJPLFVBQVU7QUFDM0JQLHdCQUFBLEdBQW1CNEUsbUJBQUEzRCxVQUFTO01BQzNCQyxNQUFNL0MsV0FBVyxxQkFBcUI7SUFDdkMsQ0FBQztBQUVELFVBQU00RyxhQUFBLE1BQTJCcEksSUFBSXFJLFNBQVMsT0FBTztBQUVyRGhGLHFCQUFpQk8sVUFBVTtBQUMzQlAsd0JBQUEsR0FBbUI0RSxtQkFBQTNELFVBQVM7TUFDM0JDLE1BQU0vQyxXQUFXLGlCQUFpQjtNQUNsQ2dELFVBQVU7SUFDWCxDQUFDO0FBRUQsV0FBTztNQUNONEQ7TUFDQS9FO0lBQ0Q7RUFDRCxDQUFBO0FBQUEsU0FBQSxTQXZCTTZFLGlCQUFBSSxLQUFBO0FBQUEsV0FBQUgsTUFBQXRGLE1BQUEsTUFBQUMsU0FBQTtFQUFBO0FBQUEsRUFBQTs7QUNKTixJQUFBeUYscUJBQW9CL0ksUUFBQSxpQkFBQTtBQUdwQixJQUFNZ0osMEJBQUEsMkJBQUE7QUFBQSxNQUFBQyxRQUFBeEcsa0JBQTBCLGFBQTJCO0FBQzFELFVBQU1ILGNBQWMrQixhQUFhO0FBQ2pDLFdBQUEsR0FBTTBFLG1CQUFBRyxPQUFNLElBQUksR0FBSTtBQUNwQkMsYUFBU3RDLE9BQU9DLEdBQUdDLEtBQUtDLE9BQU8sbUJBQW1CO0VBQ25ELENBQUE7QUFBQSxTQUFBLFNBSk1nQywyQkFBQTtBQUFBLFdBQUFDLE1BQUE1RixNQUFBLE1BQUFDLFNBQUE7RUFBQTtBQUFBLEVBQUE7O0FDRk4sSUFBQThGLHNCQUF1QnBKLFFBQUEscUJBQUE7QUFFdkIsSUFBTXFKLFlBQVlBLENBQUNDLE9BQWdCekYscUJBQTZDO0FBQy9FMEYsVUFBUUQsTUFBTSwyQkFBMkJBLEtBQUs7QUFDOUN6RixtQkFBaUJPLFVBQVU7QUFDM0IsR0FBQSxHQUFBZ0Ysb0JBQUF0RSxVQUNDO0lBQ0NDLE1BQU0vQyxXQUFXLGVBQWU7SUFDaENzRyxPQUFPO0lBQ1B0RCxVQUFVO0VBQ1gsR0FDQSxPQUNEO0FBQ0Q7O0FWSkEsSUFBQXdFLHNCQUF1QnhKLFFBQUEscUJBQUE7QUFHdkIsSUFBTXlKLFlBQVlBLENBQUM1RixrQkFBb0NDLGFBQXNCLFVBQWdCO0FBQzVGLFFBQU07SUFDTDBDO0lBQ0FHO0lBQ0FPO0lBQ0FLO0lBQ0FGO0lBQ0EzRDtJQUNBc0M7SUFDQXJEO0lBQ0FnQjtJQUNBQztFQUNELElBQUl5QixpQkFBaUJ2QixVQUFVO0FBRS9CLE1BQUk4RSxhQUFxQjtBQUN6QixRQUFNYyxTQUFBLDJCQUFBO0FBQUEsUUFBQUMsUUFBQWxILGtCQUFRLFdBQU87TUFBQ21ILGdCQUFnQjtNQUFPN0IsaUJBQWlCO0lBQUssSUFBSSxDQUFDLEdBQXFCO0FBQzVGLFVBQUk7QUFBQSxZQUFBOEIsdUJBQUFDO0FBQ0gsWUFBSSxDQUFDRixlQUFlO0FBQ25CLFdBQUM7WUFBQ2hCO1lBQVkvRTtVQUFnQixJQUFBLE1BQVU2RSxnQkFBZ0I3RSxnQkFBZ0I7UUFDekU7QUFFQSxjQUFNa0csU0FBNEI7VUFDakM1RyxRQUFRO1VBQ1I2RyxRQUFRO1VBQ1JDLGVBQWU7VUFDZkMsWUFBWXRCO1VBQ1p1QixnQkFBZ0JoQixTQUFTdEM7VUFDekJ1RCxVQUFVekcsVUFBVU0sU0FBUztVQUM3Qm9HLFVBQVV6RyxTQUFTSyxTQUFTO1FBQzdCO0FBQ0EsWUFBSStCLGtCQUFrQmpDLFdBQVcsR0FBRztBQUNuQ2dHLGlCQUFPTyxhQUFhO1FBQ3JCO0FBQ0EsWUFBSVYsaUJBQWlCN0IsZ0JBQWdCO0FBQ3BDLGdCQUFNekYsY0FBYytCLGFBQWE7QUFDakMsaUJBQU8wRixPQUFPSTtBQUNkLGlCQUFPSixPQUFPSztBQUNkLGlCQUFPTCxPQUFPTTtBQUNkTixpQkFBT1EsZ0JBQWdCO0FBRXZCLGdCQUFNQyxRQUFBLE1BQTZCM0MsV0FBV0UsY0FBYztBQUU1RGxFLDJCQUFpQk8sVUFBVTtBQUUzQixjQUFJb0csVUFBVSxNQUFNO0FBQ25CLGFBQUEsR0FBQWhCLG9CQUFBMUUsVUFDQztjQUNDQyxNQUFNL0MsV0FBVyxpQkFBaUI7WUFDbkMsR0FDQSxNQUNEO0FBQ0EsaUJBQUtNLGNBQWMrQixhQUFhO0FBRWhDO1VBQ0QsV0FBV21HLFVBQVUsSUFBSTtBQUN4QixnQkFBSXpDLGdCQUFnQjtBQUNuQmxFLGtDQUFBLEdBQW1CMkYsb0JBQUExRSxVQUNsQjtnQkFDQ0MsTUFBTS9DLFdBQVcsZUFBZTtnQkFDaENnRCxVQUFVO2NBQ1gsR0FDQSxTQUNEO0FBQ0EsbUJBQUswRSxPQUFNO2dCQUNWM0IsZ0JBQWdCO2NBQ2pCLENBQUM7WUFDRixPQUFPO0FBQ05sRSxrQ0FBQSxHQUFtQjJGLG9CQUFBMUUsVUFDbEI7Z0JBQ0NDLE1BQU0vQyxXQUFXLFVBQVU7Z0JBQzNCZ0QsVUFBVTtjQUNYLEdBQ0EsU0FDRDtBQUNBLG1CQUFLMEUsT0FBTTtnQkFDVkUsZUFBZTtjQUNoQixDQUFDO1lBQ0Y7QUFFQTtVQUNEO0FBRUEsY0FBSTdCLGdCQUFnQjtBQUNuQmdDLG1CQUFPTSxXQUFXRztBQUNsQlQsbUJBQU9VLFNBQVNEO1VBQ2pCLE9BQU87QUFDTlQsbUJBQU9XLFlBQVlGO1VBQ3BCO1FBQ0Q7QUFFQTNHLHlCQUFpQk8sVUFBVTtBQUMzQlAsNEJBQUEsR0FBbUIyRixvQkFBQTFFLFVBQ2xCO1VBQ0NDLE1BQU0vQyxXQUFXLFlBQVk7UUFDOUIsR0FDQSxNQUNEO0FBRUEsY0FBTTJJLFdBQUEsTUFBa0JuSyxJQUFJb0ssS0FBS2IsTUFBTTtBQU92Q2xHLHlCQUFpQk8sVUFBVTtBQUUzQixjQUFJeUYsd0JBQUFjLFNBQVMsYUFBYSxPQUFBLFFBQUFkLDBCQUFBLFNBQUEsU0FBdEJBLHNCQUF5QmdCLFlBQVcsUUFBUTtBQUMvQyxXQUFBLEdBQUFyQixvQkFBQTFFLFVBQ0M7WUFDQ0MsTUFBTS9DLFdBQVcsZUFBZTtVQUNqQyxHQUNBLFNBQ0Q7QUFDQW1ILG1CQUFTMkIsT0FBTztRQUNqQixZQUFBaEIseUJBQVdhLFNBQVMsYUFBYSxPQUFBLFFBQUFiLDJCQUFBLFVBQXRCQSx1QkFBeUJpQixhQUFhO0FBQ2hELGdCQUFNO1lBQUNBO1VBQVcsSUFBSUosU0FBUyxhQUFhO0FBQzVDLGtCQUFRSSxhQUFBO1lBQ1AsS0FBSztBQUNKbEgsa0NBQUEsR0FBbUIyRixvQkFBQTFFLFVBQ2xCO2dCQUNDQyxNQUFNL0MsV0FBVyxhQUFhO2dCQUM5QmdELFVBQVU7Y0FDWCxHQUNBLE9BQ0Q7QUFDQTtZQUNELEtBQUs7QUFDSixtQkFBSzBFLE9BQU07Z0JBQ1ZFLGVBQWU7Y0FDaEIsQ0FBQztBQUNEO1lBQ0QsS0FBSztBQUNKL0Ysa0NBQUEsR0FBbUIyRixvQkFBQTFFLFVBQ2xCO2dCQUNDQyxNQUFNL0MsV0FBVywrQkFBK0I7Z0JBQ2hEZ0QsVUFBVTtjQUNYLEdBQ0EsU0FDRDtBQUNBLG1CQUFLMEUsT0FBTTtnQkFDVkUsZUFBZTtjQUNoQixDQUFDO0FBQ0Q7WUFDRCxLQUFLO0FBQ0ovRixrQ0FBQSxHQUFtQjJGLG9CQUFBMUUsVUFDbEI7Z0JBQ0NDLE1BQU0vQyxXQUFXLDBCQUEwQjtnQkFDM0NnRCxVQUFVO2NBQ1gsR0FDQSxTQUNEO0FBQ0EsbUJBQUswRSxPQUFNO2dCQUNWM0IsZ0JBQWdCO2NBQ2pCLENBQUM7QUFDRDtZQUNELEtBQUs7QUFDSmxFLGtDQUFBLEdBQW1CMkYsb0JBQUExRSxVQUNsQjtnQkFDQ0MsTUFBTS9DLFdBQVcsOEJBQThCO2dCQUMvQ2dELFVBQVU7Y0FDWCxHQUNBLFNBQ0Q7QUFDQSxvQkFBTTFDLGNBQWMrQixhQUFhO0FBQ2pDb0Ysd0JBQVU1RixnQkFBZ0I7QUFDMUI7WUFDRDtBQUNDLGVBQUEsR0FBQTJGLG9CQUFBMUUsVUFDQztnQkFDQ0MsTUFBTS9DLFdBQVcseUJBQXlCLEVBQUVnSixRQUFRLE1BQU1ELFdBQVc7Z0JBQ3JFekMsT0FBTztnQkFDUHRELFVBQVU7Y0FDWCxHQUNBLE9BQ0Q7QUFDQSxtQkFBS2dFLHdCQUF3QjtVQUMvQjtRQUNEO01BQ0QsU0FBU00sT0FBTztBQUNmRCxrQkFBVUMsT0FBT3pGLGdCQUFnQjtBQUNqQyxhQUFLbUYsd0JBQXdCO01BQzlCO0lBQ0QsQ0FBQTtBQUFBLFdBQUEsU0F4S01VLFFBQUE7QUFBQSxhQUFBQyxNQUFBdEcsTUFBQSxNQUFBQyxTQUFBO0lBQUE7RUFBQSxFQUFBO0FBMEtOLFFBQU0ySCxRQUFBLDJCQUFBO0FBQUEsUUFBQUMsUUFBQXpJLGtCQUFRLGFBQTJCO0FBQ3hDLFlBQU07UUFDTHdDO1FBQ0FuQixZQUFZcUg7UUFDWnRILGtCQUFrQnVIO01BQ25CLElBQUEsTUFBVTVILFdBQVcsQ0FBQ0Usa0JBQWtCQyxXQUFXQyxRQUFRLEdBQUdDLGdCQUFnQjtBQUU5RUEseUJBQW1CdUg7QUFFbkIsVUFBSW5HLFNBQVM7QUFDWixhQUFLeUUsT0FBTTtNQUNaLE9BQU87QUFDTkQsa0JBQVU1RixrQkFBa0JzSCxjQUFjO01BQzNDO0lBQ0QsQ0FBQTtBQUFBLFdBQUEsU0FkTUYsU0FBQTtBQUFBLGFBQUFDLE1BQUE3SCxNQUFBLE1BQUFDLFNBQUE7SUFBQTtFQUFBLEVBQUE7QUFnQk5NLFdBQVN2RCxHQUFHLFNBQVMsTUFBWTtBQUNoQyxTQUFLNEssTUFBTTtFQUNaLENBQUM7QUFDRHRJLGdCQUFjMEksbUJBQW9CbEksWUFDakMsSUFBSWhCLEdBQUdDLEdBQUdrSixRQUFRLE1BQVk7QUFDN0IsUUFBSW5JLFdBQVcsU0FBUztBQUN2QixXQUFLOEgsTUFBTTtJQUNaLE9BQU87QUFDTnBILHVCQUFpQk8sVUFBVTtBQUMzQixXQUFLOUIsY0FBYytCLGFBQWE7SUFDakM7RUFDRCxDQUFDO0FBRUYvQixnQkFBY08sV0FBVyxDQUFDRixhQUFhLENBQUM7QUFDeEMsT0FBS0wsY0FBY1MsV0FBV0osZUFBZTtJQUM1Q2dDLFNBQVMsQ0FDUjtNQUNDeEIsUUFBUTtNQUNSMEIsT0FBTyxDQUFDLFdBQVcsYUFBYTtNQUNoQ0QsT0FBT0wsRUFBRTVELG9DQUFBNkQsUUFBQUMsY0FBQyxLQUFBLE1BQUd6QyxXQUFXLE9BQU8sQ0FBRSxDQUFJO0lBQ3RDLEdBQ0E7TUFDQ21CLFFBQVE7TUFDUjBCLE9BQU8sQ0FBQyxRQUFRLE9BQU87TUFDdkJELE9BQU9MLEVBQUU1RCxvQ0FBQTZELFFBQUFDLGNBQUMsS0FBQSxNQUFHekMsV0FBVyxRQUFRLENBQUUsQ0FBSTtJQUN2QyxDQUFBO0lBRURzQyxTQUFTQyxFQUNSNUQsb0NBQUE2RCxRQUFBQyxjQUFDLE9BQUE7TUFBSTBCLFdBQVU7SUFBQSxHQUFxQixDQUFDZSxXQUFXUCxpQkFBaUJZLGFBQWFmLFdBQVdhLFNBQVMsQ0FBRSxDQUNyRztJQUNBSixPQUFPMUMsRUFBRTVELG9DQUFBNkQsUUFBQUMsY0FBQyxLQUFBO01BQUUwQixXQUFVO0lBQUEsR0FBcUJuRSxXQUFXLE9BQU8sQ0FBRSxDQUFJO0lBQ25FdUosTUFBTTtFQUNQLENBQUM7QUFDRDlELDRCQUEwQjtBQUMzQjs7QUhsUEEsTUFBQSxHQUFLMUgsb0JBQUF5TCxTQUFRLEVBQUVwRCxLQUFLLFNBQVNxRCxjQUFjQyxPQUFzQztBQUNoRixRQUFNO0lBQUNDO0VBQVUsSUFBSTdFLEdBQUc4RSxPQUFPQyxJQUFJO0FBRW5DLE1BQUlGLFlBQVk7QUFDZjtFQUNEO0FBRUEsUUFBTUcsZ0JBQTJDSixNQUFNSyxLQUFnQ2xNLG9CQUFvQjtBQUMzRyxNQUFJLENBQUNpTSxjQUFjRSxRQUFRO0FBQzFCO0VBQ0Q7QUFFQTFKLGdCQUFjbkMsU0FBUzhMLFNBQVNQLEtBQUs7QUFFckMsUUFBTVEsdUJBQXlDO0lBQzlDOUgsV0FBV0EsTUFBTTtJQUFDO0VBQ25CO0FBRUEsUUFBTWhFLGdCQUFpQitMLFdBQXlEO0FBQy9FLFFBQUksRUFBQSxHQUFDcE0sb0JBQUFxTSxxQkFBb0JELEtBQUssR0FBRztBQUNoQztJQUNEO0FBRUFBLFVBQU1FLGVBQWU7QUFDckI1QyxjQUFVeUMsb0JBQW9CO0VBQy9CO0FBQ0FoTSxjQUFZNEwsZUFBZTFMLGFBQWE7QUFDekMsQ0FBQzsiLAogICJuYW1lcyI6IFsibG9naW5FbGVtZW50U2VsZWN0b3IiLCAidmVyc2lvbiIsICJpbXBvcnRfZXh0X2dhZGdldDEzIiwgInJlcXVpcmUiLCAiaW1wb3J0X2V4dF9nYWRnZXQiLCAiYWRkTGlzdGVuZXIiLCAiJGVsZW1lbnQiLCAiZXZlbnRMaXN0ZW5lciIsICJvbiIsICJmaWx0ZXJBbHRlcmVkQ2xpY2tzIiwgImltcG9ydF9leHRfZ2FkZ2V0MiIsICJhcGkiLCAiaW5pdE13QXBpIiwgImNvbmNhdCIsICJpbXBvcnRfZXh0X2dhZGdldDExIiwgIl9fdG9FU00iLCAiaW1wb3J0X2V4dF9nYWRnZXQ0IiwgImltcG9ydF9leHRfZ2FkZ2V0MyIsICJnZXRJMThuTWVzc2FnZXMiLCAibG9jYWxpemUiLCAiZW4iLCAiamEiLCAiQ2FuY2VsIiwgInpoIiwgIkxvZ2luIiwgIlBhc3N3b3JkIiwgIlVzZXJuYW1lIiwgIkFncmVlZE9yTm90IiwgIkRvdWJsZUNoZWNrQWdyZWVkT3JOb3QiLCAiRW1wdHkyRkEiLCAiRW1wdHlQYXNzd29yZCIsICJFbXB0eVVzZXJuYW1lT3JQYXNzd29yZCIsICJTZWxlY3RlZE9yTm90IiwgIlRvb0ZyZXF1ZW50IiwgImkxOG5NZXNzYWdlcyIsICJnZXRNZXNzYWdlIiwgImtleSIsICJpbml0V2luZG93TWFuYWdlciIsICJPTyIsICJ1aSIsICJXaW5kb3dNYW5hZ2VyIiwgIndpbmRvd01hbmFnZXIiLCAib291aUNvbmZpcm0iLCAiX3JlZiIsICJfYXN5bmNUb0dlbmVyYXRvciIsICJvcHRpb25zIiwgIm1lc3NhZ2VEaWFsb2ciLCAiTWVzc2FnZURpYWxvZyIsICJhZGRXaW5kb3dzIiwgImluc3RhbmNlIiwgIm9wZW5XaW5kb3ciLCAiZGF0YSIsICJjbG9zZWQiLCAiX2RhdGEiLCAiYWN0aW9uIiwgIl94IiwgImFwcGx5IiwgImFyZ3VtZW50cyIsICJpbXBvcnRfZXh0X2dhZGdldDUiLCAiY2hlY2tWYWxpZCIsICJfcmVmMiIsICJhZ3JlZVRvc0NoZWNrYm94IiwgIm5hbWVJbnB1dCIsICJwd2RJbnB1dCIsICJ0b2FzdGlmeUluc3RhbmNlIiwgImlzQWdyZWVUb3MiLCAiaXNTZWxlY3RlZCIsICJpc0ZpbGwiLCAiZ2V0VmFsdWUiLCAidHJpbSIsICJpbmNsdWRlcyIsICJoaWRlVG9hc3QiLCAiY2xlYXJXaW5kb3dzIiwgIm1lc3NhZ2UiLCAiJCIsICJkZWZhdWx0IiwgImNyZWF0ZUVsZW1lbnQiLCAiaW5uZXJIVE1MIiwgImFjdGlvbnMiLCAibGFiZWwiLCAiZmxhZ3MiLCAidG9hc3RpZnkiLCAidGV4dCIsICJkdXJhdGlvbiIsICJpc1ZhbGlkIiwgIl94MiIsICJfeDMiLCAiaW1wb3J0X2V4dF9nYWRnZXQ2IiwgImdlbmVyYXRlRWxlbWVudHMiLCAiVGV4dElucHV0V2lkZ2V0IiwgImljb24iLCAicGxhY2Vob2xkZXIiLCAidmFsaWRhdGUiLCAidHlwZSIsICJDaGVja2JveElucHV0V2lkZ2V0IiwgInNlbGVjdGVkIiwgImFncmVlVG9zTGF5b3V0IiwgIkZpZWxkTGF5b3V0IiwgImFsaWduIiwgImtlZXBMb2dpbkNoZWNrYm94IiwgImtlZXBMb2dpbkxheW91dCIsICJoZWxwIiwgImNsYXNzTmFtZSIsICJzdHlsZSIsICJmb250U2l6ZSIsICJ0ZXh0QWxpZ24iLCAiJGxhYmVsIiwgIiRhZ3JlZVRvcyIsICJjbG9uZSIsICJhcHBlbmQiLCAiJGZvcmdvdFBhc3N3b3JkIiwgImNzcyIsICJocmVmIiwgIm13IiwgInV0aWwiLCAiZ2V0VXJsIiwgInRpdGxlIiwgIiRpbnB1dEJveCIsICJkaXNwbGF5IiwgInBhZGRpbmciLCAiJHRvc0xhYmVsIiwgImh0bWwiLCAiJHJlbWVtYmVyTWUiLCAiaW1wb3J0X2V4dF9nYWRnZXQ3IiwgInJlbW92ZVdpbmRvd1Jlc2l6ZUhhbmRsZXIiLCAid2luZG93IiwgIm9mZiIsICJvbldpbmRvd1Jlc2l6ZUhhbmRsZXIiLCAib291aVByb21wdCIsICJfcmVmMyIsICJyZXR5cGVQYXNzd29yZCIsICJjb2RlRGlhbG9nIiwgImNvZGVJbnB1dCIsICJjb2RlTGF5b3V0IiwgIm9wZW5lZCIsICJ0aGVuIiwgImdldEN1cnJlbnRXaW5kb3ciLCAiY2xvc2UiLCAiZm9jdXMiLCAiX3g0IiwgImltcG9ydF9leHRfZ2FkZ2V0OCIsICJxdWVyeUxvZ2luVG9rZW4iLCAiX3JlZjQiLCAibG9naW5Ub2tlbiIsICJnZXRUb2tlbiIsICJfeDUiLCAiaW1wb3J0X2V4dF9nYWRnZXQ5IiwgInJlZGlyZWN0T3JpZ2luTG9naW5QYWdlIiwgIl9yZWY1IiwgImRlbGF5IiwgImxvY2F0aW9uIiwgImltcG9ydF9leHRfZ2FkZ2V0MTAiLCAic2hvd0Vycm9yIiwgImVycm9yIiwgImNvbnNvbGUiLCAiaW1wb3J0X2V4dF9nYWRnZXQxMiIsICJhamF4TG9naW4iLCAibG9naW4iLCAiX3JlZjYiLCAibG9naW5Db250aW51ZSIsICJfcmVzcG9uc2UkY2xpZW50bG9naW4iLCAiX3Jlc3BvbnNlJGNsaWVudGxvZ2luMiIsICJwYXJhbXMiLCAiZm9ybWF0IiwgImZvcm1hdHZlcnNpb24iLCAibG9naW50b2tlbiIsICJsb2dpbnJldHVybnVybCIsICJ1c2VybmFtZSIsICJwYXNzd29yZCIsICJyZW1lbWJlck1lIiwgImxvZ2luY29udGludWUiLCAidmFsdWUiLCAicmV0eXBlIiwgIk9BVEhUb2tlbiIsICJyZXNwb25zZSIsICJwb3N0IiwgInN0YXR1cyIsICJyZWxvYWQiLCAibWVzc2FnZWNvZGUiLCAicmVwbGFjZSIsICJjaGVjayIsICJfcmVmNyIsICJsYXN0SXNBZ3JlZVRvcyIsICJsYXN0VG9hc3RpZnlJbnN0YW5jZSIsICJnZXRBY3Rpb25Qcm9jZXNzIiwgIlByb2Nlc3MiLCAic2l6ZSIsICJnZXRCb2R5IiwgImluaXRBdXRvTG9naW4iLCAiJGJvZHkiLCAid2dVc2VyTmFtZSIsICJjb25maWciLCAiZ2V0IiwgIiRsb2dpbkVsZW1lbnQiLCAiZmluZCIsICJsZW5ndGgiLCAiYXBwZW5kVG8iLCAiZmFrZVRvYXN0aWZ5SW5zdGFuY2UiLCAiZXZlbnQiLCAiY2hlY2tBMTF5Q29uZmlybUtleSIsICJwcmV2ZW50RGVmYXVsdCJdCn0K +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL0FqYXhMb2dpbi9vcHRpb25zLmpzb24iLCAic3JjL0FqYXhMb2dpbi9BamF4TG9naW4udHMiLCAic3JjL0FqYXhMb2dpbi9tb2R1bGVzL2FkZExpc3RlbmVyLnRzIiwgInNyYy9BamF4TG9naW4vbW9kdWxlcy9hcGkudHMiLCAic3JjL0FqYXhMb2dpbi9tb2R1bGVzL2NvcmUudHN4IiwgInNyYy9BamF4TG9naW4vbW9kdWxlcy91dGlsL2NoZWNrVmFsaWQudHN4IiwgInNyYy9BamF4TG9naW4vbW9kdWxlcy9pMThuLnRzIiwgInNyYy9BamF4TG9naW4vbW9kdWxlcy9pbml0V2luZG93TWFuYWdlci50cyIsICJzcmMvQWpheExvZ2luL21vZHVsZXMvdXRpbC9vb3VpQ29uZmlybS50cyIsICJzcmMvQWpheExvZ2luL21vZHVsZXMvdXRpbC9nZW5lcmF0ZUVsZW1lbnRzLnRzeCIsICJzcmMvQWpheExvZ2luL21vZHVsZXMvdXRpbC9vb3VpUHJvbXB0LnRzeCIsICJzcmMvQWpheExvZ2luL21vZHVsZXMvdXRpbC9yZW1vdmVXaW5kb3dSZXNpemVIYW5kbGVyLnRzIiwgInNyYy9BamF4TG9naW4vbW9kdWxlcy91dGlsL3F1ZXJ5TG9naW5Ub2tlbi50cyIsICJzcmMvQWpheExvZ2luL21vZHVsZXMvdXRpbC9yZWRpcmVjdE9yaWdpbkxvZ2luUGFnZS50cyIsICJzcmMvQWpheExvZ2luL21vZHVsZXMvdXRpbC9zaG93RXJyb3IudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIntcblx0XCJsb2dpbkVsZW1lbnRTZWxlY3RvclwiOiBcImE6aGFzKC5hamF4bG9naW4tbW91bnQtcG9pbnQpLCNwdC1sb2dpbj5hLC52ZWN0b3ItdXNlci1tZW51LWxvZ2luPmEsI3VzZXItdG9vbHM+YVtocmVmKj1cXFwiU3BlY2lhbFxcXCJdLC5tYWlucGFnZS10b3AtbWVudT5saTpudGgtY2hpbGQoMikgYVwiLFxuXHRcInZlcnNpb25cIjogXCI0LjBcIlxufVxuIiwgImltcG9ydCAqIGFzIE9QVElPTlMgZnJvbSAnLi9vcHRpb25zLmpzb24nO1xuaW1wb3J0IHtjaGVja0ExMXlDb25maXJtS2V5LCBnZXRCb2R5fSBmcm9tICdleHQuZ2FkZ2V0LlV0aWwnO1xuaW1wb3J0IHthZGRMaXN0ZW5lcn0gZnJvbSAnLi9tb2R1bGVzL2FkZExpc3RlbmVyJztcbmltcG9ydCB7YWpheExvZ2lufSBmcm9tICcuL21vZHVsZXMvY29yZSc7XG5pbXBvcnQge3dpbmRvd01hbmFnZXJ9IGZyb20gJy4vbW9kdWxlcy9pbml0V2luZG93TWFuYWdlcic7XG5cbnZvaWQgZ2V0Qm9keSgpLnRoZW4oZnVuY3Rpb24gaW5pdEF1dG9Mb2dpbigkYm9keTogSlF1ZXJ5PEhUTUxCb2R5RWxlbWVudD4pOiB2b2lkIHtcblx0Y29uc3Qge3dnVXNlck5hbWV9ID0gbXcuY29uZmlnLmdldCgpO1xuXG5cdGlmICh3Z1VzZXJOYW1lKSB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0Y29uc3QgJGxvZ2luRWxlbWVudDogSlF1ZXJ5PEhUTUxBbmNob3JFbGVtZW50PiA9ICRib2R5LmZpbmQ8SFRNTEFuY2hvckVsZW1lbnQ+KE9QVElPTlMubG9naW5FbGVtZW50U2VsZWN0b3IpO1xuXHRpZiAoISRsb2dpbkVsZW1lbnQubGVuZ3RoKSB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0d2luZG93TWFuYWdlci4kZWxlbWVudC5hcHBlbmRUbygkYm9keSk7XG5cblx0Y29uc3QgZmFrZVRvYXN0aWZ5SW5zdGFuY2U6IFRvYXN0aWZ5SW5zdGFuY2UgPSB7XG5cdFx0aGlkZVRvYXN0OiAoKSA9PiB7fSxcblx0fTtcblxuXHRjb25zdCBldmVudExpc3RlbmVyID0gKGV2ZW50OiBKUXVlcnkuQ2xpY2tFdmVudCB8IEpRdWVyeS5LZXlEb3duRXZlbnQpOiB2b2lkID0+IHtcblx0XHRpZiAoIWNoZWNrQTExeUNvbmZpcm1LZXkoZXZlbnQpKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcblx0XHRhamF4TG9naW4oZmFrZVRvYXN0aWZ5SW5zdGFuY2UpO1xuXHR9O1xuXHRhZGRMaXN0ZW5lcigkbG9naW5FbGVtZW50LCBldmVudExpc3RlbmVyKTtcbn0pO1xuIiwgImltcG9ydCB7ZmlsdGVyQWx0ZXJlZENsaWNrc30gZnJvbSAnZXh0LmdhZGdldC5GaWx0ZXJBbHRlcmVkQ2xpY2tzJztcblxuY29uc3QgYWRkTGlzdGVuZXIgPSAoXG5cdCRlbGVtZW50OiBKUXVlcnksXG5cdGV2ZW50TGlzdGVuZXI6IChldmVudDogSlF1ZXJ5LkNsaWNrRXZlbnQgfCBKUXVlcnkuS2V5RG93bkV2ZW50KSA9PiB2b2lkXG4pOiB2b2lkID0+IHtcblx0JGVsZW1lbnQub24oJ2NsaWNrJywgZmlsdGVyQWx0ZXJlZENsaWNrcyhldmVudExpc3RlbmVyKSk7XG5cdCRlbGVtZW50Lm9uKCdrZXlkb3duJywgZXZlbnRMaXN0ZW5lcik7XG59O1xuXG5leHBvcnQge2FkZExpc3RlbmVyfTtcbiIsICJpbXBvcnQgKiBhcyBPUFRJT05TIGZyb20gJy4uL29wdGlvbnMuanNvbic7XG5pbXBvcnQge2luaXRNd0FwaX0gZnJvbSAnZXh0LmdhZGdldC5VdGlsJztcblxudHlwZSBDbGllbnRMb2dpblBhcmFtcyA9IEFwaUNsaWVudExvZ2luUGFyYW1zICYge1xuXHR1c2VybmFtZT86IHN0cmluZztcblx0cGFzc3dvcmQ/OiBzdHJpbmc7XG5cdHJlbWVtYmVyTWU/OiBib29sZWFuO1xuXHRyZXR5cGU/OiBzdHJpbmc7XG5cdE9BVEhUb2tlbj86IHN0cmluZztcbn07XG5cbmNvbnN0IGFwaTogbXcuQXBpID0gaW5pdE13QXBpKGBBamF4TG9naW4vJHtPUFRJT05TLnZlcnNpb259YCk7XG5cbmV4cG9ydCB7dHlwZSBDbGllbnRMb2dpblBhcmFtcywgYXBpfTtcbiIsICJpbXBvcnQge3R5cGUgQ2xpZW50TG9naW5QYXJhbXMsIGFwaX0gZnJvbSAnLi9hcGknO1xuaW1wb3J0IFJlYWN0IGZyb20gJ2V4dC5nYWRnZXQuSlNYJztcbmltcG9ydCB7Y2hlY2tWYWxpZH0gZnJvbSAnLi91dGlsL2NoZWNrVmFsaWQnO1xuaW1wb3J0IHtnZW5lcmF0ZUVsZW1lbnRzfSBmcm9tICcuL3V0aWwvZ2VuZXJhdGVFbGVtZW50cyc7XG5pbXBvcnQge2dldE1lc3NhZ2V9IGZyb20gJy4vaTE4bic7XG5pbXBvcnQge29vdWlQcm9tcHR9IGZyb20gJy4vdXRpbC9vb3VpUHJvbXB0JztcbmltcG9ydCB7cXVlcnlMb2dpblRva2VufSBmcm9tICcuL3V0aWwvcXVlcnlMb2dpblRva2VuJztcbmltcG9ydCB7cmVkaXJlY3RPcmlnaW5Mb2dpblBhZ2V9IGZyb20gJy4vdXRpbC9yZWRpcmVjdE9yaWdpbkxvZ2luUGFnZSc7XG5pbXBvcnQge3JlbW92ZVdpbmRvd1Jlc2l6ZUhhbmRsZXJ9IGZyb20gJy4vdXRpbC9yZW1vdmVXaW5kb3dSZXNpemVIYW5kbGVyJztcbmltcG9ydCB7c2hvd0Vycm9yfSBmcm9tICcuL3V0aWwvc2hvd0Vycm9yJztcbmltcG9ydCB7dG9hc3RpZnl9IGZyb20gJ2V4dC5nYWRnZXQuVG9hc3RpZnknO1xuaW1wb3J0IHt3aW5kb3dNYW5hZ2VyfSBmcm9tICcuL2luaXRXaW5kb3dNYW5hZ2VyJztcblxuY29uc3QgYWpheExvZ2luID0gKHRvYXN0aWZ5SW5zdGFuY2U6IFRvYXN0aWZ5SW5zdGFuY2UsIGlzQWdyZWVUb3M6IGJvb2xlYW4gPSBmYWxzZSk6IHZvaWQgPT4ge1xuXHRjb25zdCB7XG5cdFx0JGFncmVlVG9zLFxuXHRcdCRmb3Jnb3RQYXNzd29yZCxcblx0XHQkaW5wdXRCb3gsXG5cdFx0JHJlbWVtYmVyTWUsXG5cdFx0JHRvc0xhYmVsLFxuXHRcdGFncmVlVG9zQ2hlY2tib3gsXG5cdFx0a2VlcExvZ2luQ2hlY2tib3gsXG5cdFx0bWVzc2FnZURpYWxvZyxcblx0XHRuYW1lSW5wdXQsXG5cdFx0cHdkSW5wdXQsXG5cdH0gPSBnZW5lcmF0ZUVsZW1lbnRzKGlzQWdyZWVUb3MpO1xuXG5cdGxldCBsb2dpblRva2VuOiBzdHJpbmcgPSAnJztcblx0Y29uc3QgbG9naW4gPSBhc3luYyAoe2xvZ2luQ29udGludWUgPSBmYWxzZSwgcmV0eXBlUGFzc3dvcmQgPSBmYWxzZX0gPSB7fSk6IFByb21pc2U8dm9pZD4gPT4ge1xuXHRcdHRyeSB7XG5cdFx0XHRpZiAoIWxvZ2luQ29udGludWUpIHtcblx0XHRcdFx0KHtsb2dpblRva2VuLCB0b2FzdGlmeUluc3RhbmNlfSA9IGF3YWl0IHF1ZXJ5TG9naW5Ub2tlbih0b2FzdGlmeUluc3RhbmNlKSk7XG5cdFx0XHR9XG5cblx0XHRcdGNvbnN0IHBhcmFtczogQ2xpZW50TG9naW5QYXJhbXMgPSB7XG5cdFx0XHRcdGFjdGlvbjogJ2NsaWVudGxvZ2luJyxcblx0XHRcdFx0Zm9ybWF0OiAnanNvbicsXG5cdFx0XHRcdGZvcm1hdHZlcnNpb246ICcyJyxcblx0XHRcdFx0bG9naW50b2tlbjogbG9naW5Ub2tlbixcblx0XHRcdFx0bG9naW5yZXR1cm51cmw6IGxvY2F0aW9uLmhyZWYsXG5cdFx0XHRcdHVzZXJuYW1lOiBuYW1lSW5wdXQuZ2V0VmFsdWUoKSxcblx0XHRcdFx0cGFzc3dvcmQ6IHB3ZElucHV0LmdldFZhbHVlKCksXG5cdFx0XHR9O1xuXHRcdFx0aWYgKGtlZXBMb2dpbkNoZWNrYm94LmlzU2VsZWN0ZWQoKSkge1xuXHRcdFx0XHRwYXJhbXMucmVtZW1iZXJNZSA9IHRydWU7XG5cdFx0XHR9XG5cdFx0XHRpZiAobG9naW5Db250aW51ZSB8fCByZXR5cGVQYXNzd29yZCkge1xuXHRcdFx0XHRhd2FpdCB3aW5kb3dNYW5hZ2VyLmNsZWFyV2luZG93cygpO1xuXHRcdFx0XHRkZWxldGUgcGFyYW1zLmxvZ2lucmV0dXJudXJsO1xuXHRcdFx0XHRkZWxldGUgcGFyYW1zLnVzZXJuYW1lO1xuXHRcdFx0XHRkZWxldGUgcGFyYW1zLnBhc3N3b3JkO1xuXHRcdFx0XHRwYXJhbXMubG9naW5jb250aW51ZSA9IHRydWU7XG5cblx0XHRcdFx0Y29uc3QgdmFsdWU6IHN0cmluZyB8IG51bGwgPSBhd2FpdCBvb3VpUHJvbXB0KHJldHlwZVBhc3N3b3JkKTtcblxuXHRcdFx0XHR0b2FzdGlmeUluc3RhbmNlLmhpZGVUb2FzdCgpO1xuXG5cdFx0XHRcdGlmICh2YWx1ZSA9PT0gbnVsbCkge1xuXHRcdFx0XHRcdHRvYXN0aWZ5KFxuXHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHR0ZXh0OiBnZXRNZXNzYWdlKCdMb2dpbiBjYW5jZWxsZWQnKSxcblx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHQnaW5mbydcblx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdHZvaWQgd2luZG93TWFuYWdlci5jbGVhcldpbmRvd3MoKTtcblxuXHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0fSBlbHNlIGlmICh2YWx1ZSA9PT0gJycpIHtcblx0XHRcdFx0XHRpZiAocmV0eXBlUGFzc3dvcmQpIHtcblx0XHRcdFx0XHRcdHRvYXN0aWZ5SW5zdGFuY2UgPSB0b2FzdGlmeShcblx0XHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcdHRleHQ6IGdldE1lc3NhZ2UoJ0VtcHR5UGFzc3dvcmQnKSxcblx0XHRcdFx0XHRcdFx0XHRkdXJhdGlvbjogLTEsXG5cdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRcdCd3YXJuaW5nJ1xuXHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRcdHZvaWQgbG9naW4oe1xuXHRcdFx0XHRcdFx0XHRyZXR5cGVQYXNzd29yZDogdHJ1ZSxcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHR0b2FzdGlmeUluc3RhbmNlID0gdG9hc3RpZnkoXG5cdFx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XHR0ZXh0OiBnZXRNZXNzYWdlKCdFbXB0eTJGQScpLFxuXHRcdFx0XHRcdFx0XHRcdGR1cmF0aW9uOiAtMSxcblx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFx0J3dhcm5pbmcnXG5cdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdFx0dm9pZCBsb2dpbih7XG5cdFx0XHRcdFx0XHRcdGxvZ2luQ29udGludWU6IHRydWUsXG5cdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRpZiAocmV0eXBlUGFzc3dvcmQpIHtcblx0XHRcdFx0XHRwYXJhbXMucGFzc3dvcmQgPSB2YWx1ZTtcblx0XHRcdFx0XHRwYXJhbXMucmV0eXBlID0gdmFsdWU7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0cGFyYW1zLk9BVEhUb2tlbiA9IHZhbHVlO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdHRvYXN0aWZ5SW5zdGFuY2UuaGlkZVRvYXN0KCk7XG5cdFx0XHR0b2FzdGlmeUluc3RhbmNlID0gdG9hc3RpZnkoXG5cdFx0XHRcdHtcblx0XHRcdFx0XHR0ZXh0OiBnZXRNZXNzYWdlKCdMb2dnaW5nIGluJyksXG5cdFx0XHRcdH0sXG5cdFx0XHRcdCdpbmZvJ1xuXHRcdFx0KTtcblxuXHRcdFx0Y29uc3QgcmVzcG9uc2UgPSAoYXdhaXQgYXBpLnBvc3QocGFyYW1zKSkgYXMge1xuXHRcdFx0XHRjbGllbnRsb2dpbjoge1xuXHRcdFx0XHRcdHN0YXR1cz86IHN0cmluZztcblx0XHRcdFx0XHRtZXNzYWdlY29kZT86IHN0cmluZztcblx0XHRcdFx0fTtcblx0XHRcdH07XG5cblx0XHRcdHRvYXN0aWZ5SW5zdGFuY2UuaGlkZVRvYXN0KCk7XG5cblx0XHRcdGlmIChyZXNwb25zZVsnY2xpZW50bG9naW4nXT8uc3RhdHVzID09PSAnUEFTUycpIHtcblx0XHRcdFx0dG9hc3RpZnkoXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0dGV4dDogZ2V0TWVzc2FnZSgnTG9naW4gc3VjY2VlZCcpLFxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0J3N1Y2Nlc3MnXG5cdFx0XHRcdCk7XG5cdFx0XHRcdGxvY2F0aW9uLnJlbG9hZCgpO1xuXHRcdFx0fSBlbHNlIGlmIChyZXNwb25zZVsnY2xpZW50bG9naW4nXT8ubWVzc2FnZWNvZGUpIHtcblx0XHRcdFx0Y29uc3Qge21lc3NhZ2Vjb2RlfSA9IHJlc3BvbnNlWydjbGllbnRsb2dpbiddO1xuXHRcdFx0XHRzd2l0Y2ggKG1lc3NhZ2Vjb2RlKSB7XG5cdFx0XHRcdFx0Y2FzZSAnbG9naW4tdGhyb3R0bGVkJzpcblx0XHRcdFx0XHRcdHRvYXN0aWZ5SW5zdGFuY2UgPSB0b2FzdGlmeShcblx0XHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcdHRleHQ6IGdldE1lc3NhZ2UoJ1Rvb0ZyZXF1ZW50JyksXG5cdFx0XHRcdFx0XHRcdFx0ZHVyYXRpb246IC0xLFxuXHRcdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0XHQnZXJyb3InXG5cdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0Y2FzZSAnb2F0aGF1dGgtYXV0aC11aSc6XG5cdFx0XHRcdFx0XHR2b2lkIGxvZ2luKHtcblx0XHRcdFx0XHRcdFx0bG9naW5Db250aW51ZTogdHJ1ZSxcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0Y2FzZSAnb2F0aGF1dGgtbG9naW4tZmFpbGVkJzpcblx0XHRcdFx0XHRcdHRvYXN0aWZ5SW5zdGFuY2UgPSB0b2FzdGlmeShcblx0XHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcdHRleHQ6IGdldE1lc3NhZ2UoJ0ludmFsaWQgMkZBIHZlcmlmaWNhdGlvbiBjb2RlJyksXG5cdFx0XHRcdFx0XHRcdFx0ZHVyYXRpb246IC0xLFxuXHRcdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0XHQnd2FybmluZydcblx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0XHR2b2lkIGxvZ2luKHtcblx0XHRcdFx0XHRcdFx0bG9naW5Db250aW51ZTogdHJ1ZSxcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0Y2FzZSAncmVzZXRwYXNzLXRlbXAtZW1haWxlZCc6XG5cdFx0XHRcdFx0XHR0b2FzdGlmeUluc3RhbmNlID0gdG9hc3RpZnkoXG5cdFx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XHR0ZXh0OiBnZXRNZXNzYWdlKCdOZXcgcGFzc3dvcmQgaXMgcmVxdWlyZWQnKSxcblx0XHRcdFx0XHRcdFx0XHRkdXJhdGlvbjogLTEsXG5cdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRcdCd3YXJuaW5nJ1xuXHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRcdHZvaWQgbG9naW4oe1xuXHRcdFx0XHRcdFx0XHRyZXR5cGVQYXNzd29yZDogdHJ1ZSxcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0Y2FzZSAnd3JvbmdwYXNzd29yZCc6XG5cdFx0XHRcdFx0XHR0b2FzdGlmeUluc3RhbmNlID0gdG9hc3RpZnkoXG5cdFx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XHR0ZXh0OiBnZXRNZXNzYWdlKCdJbnZhbGlkIHVzZXJuYW1lIG9yIHBhc3N3b3JkJyksXG5cdFx0XHRcdFx0XHRcdFx0ZHVyYXRpb246IC0xLFxuXHRcdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0XHQnd2FybmluZydcblx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0XHRhd2FpdCB3aW5kb3dNYW5hZ2VyLmNsZWFyV2luZG93cygpO1xuXHRcdFx0XHRcdFx0YWpheExvZ2luKHRvYXN0aWZ5SW5zdGFuY2UpO1xuXHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0ZGVmYXVsdDpcblx0XHRcdFx0XHRcdHRvYXN0aWZ5KFxuXHRcdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdFx0dGV4dDogZ2V0TWVzc2FnZSgnVW5leHBlY3RlZCBBUEkgcmVzcG9uc2UnKS5yZXBsYWNlKCckMScsIG1lc3NhZ2Vjb2RlKSxcblx0XHRcdFx0XHRcdFx0XHRjbG9zZTogdHJ1ZSxcblx0XHRcdFx0XHRcdFx0XHRkdXJhdGlvbjogLTEsXG5cdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRcdCdlcnJvcidcblx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0XHR2b2lkIHJlZGlyZWN0T3JpZ2luTG9naW5QYWdlKCk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9IGNhdGNoIChlcnJvcikge1xuXHRcdFx0c2hvd0Vycm9yKGVycm9yLCB0b2FzdGlmeUluc3RhbmNlKTtcblx0XHRcdHZvaWQgcmVkaXJlY3RPcmlnaW5Mb2dpblBhZ2UoKTtcblx0XHR9XG5cdH07XG5cblx0Y29uc3QgY2hlY2sgPSBhc3luYyAoKTogUHJvbWlzZTx2b2lkPiA9PiB7XG5cdFx0Y29uc3Qge1xuXHRcdFx0aXNWYWxpZCxcblx0XHRcdGlzQWdyZWVUb3M6IGxhc3RJc0FncmVlVG9zLFxuXHRcdFx0dG9hc3RpZnlJbnN0YW5jZTogbGFzdFRvYXN0aWZ5SW5zdGFuY2UsXG5cdFx0fSA9IGF3YWl0IGNoZWNrVmFsaWQoW2FncmVlVG9zQ2hlY2tib3gsIG5hbWVJbnB1dCwgcHdkSW5wdXRdLCB0b2FzdGlmeUluc3RhbmNlKTtcblxuXHRcdHRvYXN0aWZ5SW5zdGFuY2UgPSBsYXN0VG9hc3RpZnlJbnN0YW5jZTtcblxuXHRcdGlmIChpc1ZhbGlkKSB7XG5cdFx0XHR2b2lkIGxvZ2luKCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGFqYXhMb2dpbih0b2FzdGlmeUluc3RhbmNlLCBsYXN0SXNBZ3JlZVRvcyk7XG5cdFx0fVxuXHR9O1xuXG5cdHB3ZElucHV0Lm9uKCdlbnRlcicsICgpOiB2b2lkID0+IHtcblx0XHR2b2lkIGNoZWNrKCk7XG5cdH0pO1xuXHRtZXNzYWdlRGlhbG9nLmdldEFjdGlvblByb2Nlc3MgPSAoYWN0aW9uKTogT08udWkuUHJvY2VzcyA9PlxuXHRcdG5ldyBPTy51aS5Qcm9jZXNzKCgpOiB2b2lkID0+IHtcblx0XHRcdGlmIChhY3Rpb24gPT09ICdsb2dpbicpIHtcblx0XHRcdFx0dm9pZCBjaGVjaygpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dG9hc3RpZnlJbnN0YW5jZS5oaWRlVG9hc3QoKTtcblx0XHRcdFx0dm9pZCB3aW5kb3dNYW5hZ2VyLmNsZWFyV2luZG93cygpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXG5cdHdpbmRvd01hbmFnZXIuYWRkV2luZG93cyhbbWVzc2FnZURpYWxvZ10pO1xuXHR2b2lkIHdpbmRvd01hbmFnZXIub3BlbldpbmRvdyhtZXNzYWdlRGlhbG9nLCB7XG5cdFx0YWN0aW9uczogW1xuXHRcdFx0e1xuXHRcdFx0XHRhY3Rpb246ICdsb2dpbicsXG5cdFx0XHRcdGZsYWdzOiBbJ3ByaW1hcnknLCAncHJvZ3Jlc3NpdmUnXSxcblx0XHRcdFx0bGFiZWw6ICQoPGI+e2dldE1lc3NhZ2UoJ0xvZ2luJyl9PC9iPiksXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRhY3Rpb246ICdjYW5jZWwnLFxuXHRcdFx0XHRmbGFnczogWydzYWZlJywgJ2Nsb3NlJ10sXG5cdFx0XHRcdGxhYmVsOiAkKDxiPntnZXRNZXNzYWdlKCdDYW5jZWwnKX08L2I+KSxcblx0XHRcdH0sXG5cdFx0XSxcblx0XHRtZXNzYWdlOiAkKFxuXHRcdFx0PGRpdiBjbGFzc05hbWU9XCJvby11aS13aW5kb3ctZm9vdFwiPntbJGlucHV0Qm94LCAkZm9yZ290UGFzc3dvcmQsICRyZW1lbWJlck1lLCAkYWdyZWVUb3MsICR0b3NMYWJlbF19PC9kaXY+XG5cdFx0KSxcblx0XHR0aXRsZTogJCg8YiBjbGFzc05hbWU9XCJvby11aS13aW5kb3ctaGVhZFwiPntnZXRNZXNzYWdlKCdMb2dpbicpfTwvYj4pLFxuXHRcdHNpemU6ICdzbWFsbCcsXG5cdH0pO1xuXHRyZW1vdmVXaW5kb3dSZXNpemVIYW5kbGVyKCk7XG59O1xuXG5leHBvcnQge2FqYXhMb2dpbn07XG4iLCAiaW1wb3J0IFJlYWN0IGZyb20gJ2V4dC5nYWRnZXQuSlNYJztcbmltcG9ydCB7Z2V0TWVzc2FnZX0gZnJvbSAnLi4vaTE4bic7XG5pbXBvcnQge29vdWlDb25maXJtfSBmcm9tICcuL29vdWlDb25maXJtJztcbmltcG9ydCB7dG9hc3RpZnl9IGZyb20gJ2V4dC5nYWRnZXQuVG9hc3RpZnknO1xuaW1wb3J0IHt3aW5kb3dNYW5hZ2VyfSBmcm9tICcuLi9pbml0V2luZG93TWFuYWdlcic7XG5cbmNvbnN0IGNoZWNrVmFsaWQgPSBhc3luYyAoXG5cdFthZ3JlZVRvc0NoZWNrYm94LCBuYW1lSW5wdXQsIHB3ZElucHV0XTogW09PLnVpLkNoZWNrYm94SW5wdXRXaWRnZXQsIE9PLnVpLlRleHRJbnB1dFdpZGdldCwgT08udWkuVGV4dElucHV0V2lkZ2V0XSxcblx0dG9hc3RpZnlJbnN0YW5jZTogVG9hc3RpZnlJbnN0YW5jZVxuKTogUHJvbWlzZTx7XG5cdGlzQWdyZWVUb3M6IGJvb2xlYW47XG5cdGlzVmFsaWQ6IGJvb2xlYW47XG5cdHRvYXN0aWZ5SW5zdGFuY2U6IFRvYXN0aWZ5SW5zdGFuY2U7XG59PiA9PiB7XG5cdGxldCBpc0FncmVlVG9zOiBib29sZWFuID0gYWdyZWVUb3NDaGVja2JveC5pc1NlbGVjdGVkKCk7XG5cdGNvbnN0IGlzRmlsbDogYm9vbGVhbiA9ICFbbmFtZUlucHV0LmdldFZhbHVlKCkudHJpbSgpLCBwd2RJbnB1dC5nZXRWYWx1ZSgpLnRyaW0oKV0uaW5jbHVkZXMoJycpO1xuXG5cdHRvYXN0aWZ5SW5zdGFuY2UuaGlkZVRvYXN0KCk7XG5cdGF3YWl0IHdpbmRvd01hbmFnZXIuY2xlYXJXaW5kb3dzKCk7XG5cblx0aWYgKCFpc0FncmVlVG9zKSB7XG5cdFx0aXNBZ3JlZVRvcyA9IGF3YWl0IG9vdWlDb25maXJtKHtcblx0XHRcdG1lc3NhZ2U6ICQoPHNwYW4gaW5uZXJIVE1MPXtnZXRNZXNzYWdlKCdEb3VibGVDaGVja0FncmVlZE9yTm90Jyl9IC8+KSBhcyBKUXVlcnksXG5cdFx0XHRhY3Rpb25zOiBbXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRsYWJlbDogJCg8Yj57Z2V0TWVzc2FnZSgnQ2FuY2VsJyl9PC9iPiksXG5cdFx0XHRcdFx0YWN0aW9uOiAnY2FuY2VsJyxcblx0XHRcdFx0XHRmbGFnczogWydzYWZlJywgJ2Nsb3NlJ10sXG5cdFx0XHRcdH0sXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRsYWJlbDogJCg8Yj57Z2V0TWVzc2FnZSgnSSBhZ3JlZScpfTwvYj4pLFxuXHRcdFx0XHRcdGFjdGlvbjogJ2FjY2VwdCcsXG5cdFx0XHRcdFx0ZmxhZ3M6IFsncHJpbWFyeScsICdwcm9ncmVzc2l2ZSddLFxuXHRcdFx0XHR9LFxuXHRcdFx0XSxcblx0XHR9KTtcblxuXHRcdGlmICghaXNBZ3JlZVRvcykge1xuXHRcdFx0dG9hc3RpZnlJbnN0YW5jZSA9IHRvYXN0aWZ5KFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0dGV4dDogZ2V0TWVzc2FnZSgnQWdyZWVkT3JOb3QnKSxcblx0XHRcdFx0XHRkdXJhdGlvbjogLTEsXG5cdFx0XHRcdH0sXG5cdFx0XHRcdCdpbmZvJ1xuXHRcdFx0KTtcblx0XHR9XG5cdH0gZWxzZSBpZiAoIWlzRmlsbCkge1xuXHRcdHRvYXN0aWZ5SW5zdGFuY2UgPSB0b2FzdGlmeShcblx0XHRcdHtcblx0XHRcdFx0dGV4dDogZ2V0TWVzc2FnZSgnRW1wdHlVc2VybmFtZU9yUGFzc3dvcmQnKSxcblx0XHRcdFx0ZHVyYXRpb246IC0xLFxuXHRcdFx0fSxcblx0XHRcdCdpbmZvJ1xuXHRcdCk7XG5cdH1cblxuXHRjb25zdCBpc1ZhbGlkOiBib29sZWFuID0gaXNBZ3JlZVRvcyAmJiBpc0ZpbGw7XG5cblx0cmV0dXJuIHtcblx0XHRpc0FncmVlVG9zLFxuXHRcdGlzVmFsaWQsXG5cdFx0dG9hc3RpZnlJbnN0YW5jZSxcblx0fTtcbn07XG5cbmV4cG9ydCB7Y2hlY2tWYWxpZH07XG4iLCAiaW1wb3J0IHtsb2NhbGl6ZX0gZnJvbSAnZXh0LmdhZGdldC5pMThuJztcblxuY29uc3QgZ2V0STE4bk1lc3NhZ2VzID0gKCkgPT4ge1xuXHRyZXR1cm4ge1xuXHRcdCc2LWRpZ2l0IG51bWJlcic6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnNi1kaWdpdCBudW1iZXInLFxuXHRcdFx0amE6ICc25qGB44Gu5pWw5a2XJyxcblx0XHRcdCd6aC1oYW5zJzogJzbkvY3mlbDlrZcnLFxuXHRcdFx0J3poLWhhbnQnOiAnNuS9jeaVuOWtlycsXG5cdFx0fSksXG5cdFx0Q2FuY2VsOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ0NhbmNlbCcsXG5cdFx0XHRqYTogJ+OCreODo+ODs+OCu+ODqycsXG5cdFx0XHR6aDogJ+WPlua2iCcsXG5cdFx0fSksXG5cdFx0J0VudGVyIHBhc3N3b3JkJzogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdFbnRlciBwYXNzd29yZCcsXG5cdFx0XHRqYTogJ+ODkeOCueODr+ODvOODiScsXG5cdFx0XHQnemgtaGFucyc6ICfor7fovpPlhaXlr4bnoIEnLFxuXHRcdFx0J3poLWhhbnQnOiAn6KuL6Ly45YWl5a+G56K8Jyxcblx0XHR9KSxcblx0XHQnRW50ZXIgMkZBIHZlcmlmaWNhdGlvbiBjb2RlJzogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICcyRkEgdmVyaWZpY2F0aW9uIGNvZGUnLFxuXHRcdFx0amE6ICcyRkHoqo3oqLzjgrPjg7zjg4knLFxuXHRcdFx0J3poLWhhbnMnOiAn6K+36L6T5YWlMkZB6aqM6K+B56CBJyxcblx0XHRcdCd6aC1oYW50JzogJ+iri+i8uOWFpTJGQempl+itieeivCcsXG5cdFx0fSksXG5cdFx0J0ZvcmdvdCBwYXNzd29yZD8nOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ0ZvcmdvdCBwYXNzd29yZD8nLFxuXHRcdFx0amE6ICfjg5Hjgrnjg6/jg7zjg4njgpLjgYrlv5jjgozjgafjgZnjgYvvvJ8nLFxuXHRcdFx0J3poLWhhbnMnOiAn5b+Y6K6w5a+G56CB77yfJyxcblx0XHRcdCd6aC1oYW50JzogJ+W/mOiomOWvhueivO+8nycsXG5cdFx0fSksXG5cdFx0J0dldHRpbmcgbG9naW4gdG9rZW4nOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ0dldHRpbmcgbG9naW4gdG9rZW4nLFxuXHRcdFx0amE6ICfjg63jgrDjgqTjg7Pjg4jjg7zjgq/jg7PjgpLlj5blvpfjgZfjgabjgYTjgb7jgZknLFxuXHRcdFx0J3poLWhhbnMnOiAn5q2j5Zyo6I635Y+W55m75b2V5Luk54mMJyxcblx0XHRcdCd6aC1oYW50JzogJ+ato+WcqOeNsuWPlueZu+WFpeasiuadlicsXG5cdFx0fSksXG5cdFx0J2hlbHAgZm9yIEkgYWdyZWUgd2l0aCB0aGUgcmVsZXZhbnQgdGVybXMnOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ1doZW4geW91IGxvZ2luLCBpdCBtZWFucyB0aGF0IHlvdSBoYXZlIGNhcmVmdWxseSByZWFkLCBmdWxseSB1bmRlcnN0b29kIGFuZCBhZ3JlZWQgdG8gY29tcGx5IHdpdGggb3VyIDxhIHJlbD1cIm5vb3BlbmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj1cIi93aWtpL1FXOlRPU1wiIHRpdGxlPVwiVGVybXMgb2YgU2VydmljZVwiPlRlcm1zIG9mIFNlcnZpY2U8L2E+LCA8YSByZWw9XCJub29wZW5lclwiIHRhcmdldD1cIl9ibGFua1wiIGhyZWY9XCIvd2lraS9RVzpQSVBQXCIgdGl0bGU9XCJQZXJzb25hbCBJbmZvcm1hdGlvbiBQcm90ZWN0aW9uIFBvbGljeVwiPlBlcnNvbmFsIEluZm9ybWF0aW9uIFByb3RlY3Rpb24gUG9saWN5PC9hPiBhbmQgPGVtPnRoZSA8YSByZWw9XCJub29wZW5lclwiIHRhcmdldD1cIl9ibGFua1wiIGhyZWY9XCIvd2lraS9RVzpHVEdMXCIgdGl0bGU9XCJDb21tb24gUHJvZ3JhbVwiPkNvbW1vbiBQcm9ncmFtPC9hPjwvZW0+LicsXG5cdFx0XHRqYTogJ+ODreOCsOOCpOODs+OCkuOBmeOCi+OBqOOAgeOBguOBquOBn+OBr+acrOOCteOCpOODiOOBruOAjjxhIHJlbD1cIm5vb3BlbmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj1cIi93aWtpL1FXOlRPU1wiIHRpdGxlPVwi5Yip55So6KaP57SEXCI+5Yip55So6KaP57SEPC9hPuOAj+OAjjxhIHJlbD1cIm5vb3BlbmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj1cIi93aWtpL1FXOlBJUFBcIiB0aXRsZT1cIuWAi+S6uuaDheWgseS/neitt+aWuemHnVwiPuWAi+S6uuaDheWgseS/neitt+aWuemHnTwvYT7jgI/jgI48YSByZWw9XCJub29wZW5lclwiIHRhcmdldD1cIl9ibGFua1wiIGhyZWY9XCIvd2lraS9RVzpHVEdMXCIgdGl0bGU9XCLlhbHlkIzntrHpoJhcIj7lhbHlkIzntrHpoJg8L2E+44CP44KS5Y2B5YiG44Gr55CG6Kej44GX44CB5ZCM5oSP44GX44Gf44GT44Go44Gr44Gq44KK44G+44GZ44CCJyxcblx0XHRcdCd6aC1oYW5zJzpcblx0XHRcdFx0J+eZu+W9leaXtu+8jOWNs+S7o+ihqOaCqOW3suS7lOe7humYheivu+OAgeWFheWIhuS6huino+W5tuWQjOaEj+mBteWuiOacrOe9keermeeahOOAijxhIHJlbD1cIm5vb3BlbmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj1cIi93aWtpL1FXOlRPU1wiIHRpdGxlPVwi55So5oi35Y2P6K6uXCI+55So5oi35Y2P6K6uPC9hPuOAi+OAgeOAijxhIHJlbD1cIm5vb3BlbmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj1cIi93aWtpL1FXOlBJUFBcIiB0aXRsZT1cIuS4quS6uuS/oeaBr+S/neaKpOaWuemSiFwiPuS4quS6uuS/oeaBr+S/neaKpOaWuemSiDwvYT7jgIvlj4rjgIo8YSByZWw9XCJub29wZW5lclwiIHRhcmdldD1cIl9ibGFua1wiIGhyZWY9XCIvd2lraS9RVzpHVEdMXCIgdGl0bGU9XCLlhbHlkIznurLpooZcIj7lhbHlkIznurLpooY8L2E+44CL44CCJyxcblx0XHRcdCd6aC1oYW50Jzpcblx0XHRcdFx0J+eZu+mMhOaZgu+8jOWNs+S7o+ihqOaCqOW3suS7lOe0sOmWseiugOOAgeWFheWIhuS6huino+S4puWQjOaEj+mBteWuiOacrOe2suermeeahOOAijxhIHJlbD1cIm5vb3BlbmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj1cIi93aWtpL1FXOlRPU1wiIHRpdGxlPVwi55So5oi25Y2U6K2wXCI+55So5oi25Y2U6K2wPC9hPuOAi+OAgeOAijxhIHJlbD1cIm5vb3BlbmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj1cIi93aWtpL1FXOlBJUFBcIiB0aXRsZT1cIuWAi+S6uuS/oeaBr+S/neitt+aWuemHnVwiPuWAi+S6uuS/oeaBr+S/neitt+aWuemHnTwvYT7jgIvlj4rjgIo8YSByZWw9XCJub29wZW5lclwiIHRhcmdldD1cIl9ibGFua1wiIGhyZWY9XCIvd2lraS9RVzpHVEdMXCIgdGl0bGU9XCLlhbHlkIzntrHpoJhcIj7lhbHlkIzntrHpoJg8L2E+44CL44CCJyxcblx0XHR9KSxcblx0XHQnSSBhZ3JlZSc6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnSSBhZ3JlZScsXG5cdFx0XHRqYTogJ+WQjOaEj+OBmeOCiycsXG5cdFx0XHR6aDogJ+aIkeWQjOaEjycsXG5cdFx0fSksXG5cdFx0J0kgYWdyZWUgd2l0aCB0aGUgcmVsZXZhbnQgdGVybXMnOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ0kgYWdyZWUgd2l0aCB0aGUgcmVsZXZhbnQgdGVybXMnLFxuXHRcdFx0amE6ICfplqLpgKPjgZnjgovopo/ntITjgpLoqq3jgb/jgIHlkIzmhI8nLFxuXHRcdFx0J3poLWhhbnMnOiAn5oiR5bey6ZiF6K+75bm25ZCM5oSP55u45YWz5p2h5qy+Jyxcblx0XHRcdCd6aC1oYW50JzogJ+aIkeW3sumWsuiugOS4puWQjOaEj+ebuOmXnOaineasvicsXG5cdFx0fSksXG5cdFx0J0ludmFsaWQgMkZBIHZlcmlmaWNhdGlvbiBjb2RlJzogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdJbnZhbGlkIDJGQSB2ZXJpZmljYXRpb24gY29kZScsXG5cdFx0XHRqYTogJzJGQeiqjeiovOOCs+ODvOODieOBjOmWk+mBleOBo+OBpuOBhOOBvuOBmScsXG5cdFx0XHQnemgtaGFucyc6ICcyRkHpqozor4HnoIHplJnor68nLFxuXHRcdFx0J3poLWhhbnQnOiAnMkZB6amX6K2J56K86Yyv6KqkJyxcblx0XHR9KSxcblx0XHQnSW52YWxpZCB1c2VybmFtZSBvciBwYXNzd29yZCc6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnSW52YWxpZCB1c2VybmFtZSBvciBwYXNzd29yZCcsXG5cdFx0XHRqYTogJ+WIqeeUqOiAheWQjeOBvuOBn+OBr+ODkeOCueODr+ODvOODieOBjOmWk+mBleOBo+OBpuOBhOOBvuOBmScsXG5cdFx0XHQnemgtY24nOiAn55So5oi35ZCN5oiW5a+G56CB6ZSZ6K+vJyxcblx0XHRcdCd6aC1oayc6ICfnlKjmiLblkI3nqLHmiJblr4bnorzpjK/oqqQnLFxuXHRcdFx0J3poLXR3JzogJ+S9v+eUqOiAheWQjeeoseaIluWvhueivOmMr+iqpCcsXG5cdFx0fSksXG5cdFx0J0tlZXAgbWUgbG9nZ2VkIGluJzogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdLZWVwIG1lIGxvZ2dlZCBpbicsXG5cdFx0XHRqYTogJ+ODreOCsOOCpOODs+eKtuaFi+OCkuS/neaMgScsXG5cdFx0XHQnemgtaGFucyc6ICforrDkvY/miJHnmoTnmbvlvZXnirbmgIEnLFxuXHRcdFx0J3poLWhhbnQnOiAn6KiY5L2P5oiR55qE55m75YWl54uA5oWLJyxcblx0XHR9KSxcblx0XHQnTG9nZ2luZyBpbic6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnTG9nZ2luZyBpbicsXG5cdFx0XHRqYTogJ+ODreOCsOOCpOODs+OBl+OBpuOBhOOBvuOBmScsXG5cdFx0XHQnemgtaGFucyc6ICfmraPlnKjnmbvlvZUnLFxuXHRcdFx0J3poLWhhbnQnOiAn5q2j5Zyo55m75YWlJyxcblx0XHR9KSxcblx0XHRMb2dpbjogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdMb2dpbicsXG5cdFx0XHRqYTogJ+ODreOCsOOCpOODsycsXG5cdFx0XHQnemgtaGFucyc6ICfnmbvlvZUnLFxuXHRcdFx0J3poLWhhbnQnOiAn55m75YWlJyxcblx0XHR9KSxcblx0XHQnTG9naW4gY2FuY2VsbGVkJzogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdMb2dpbiBjYW5jZWxsZWQnLFxuXHRcdFx0amE6ICfjg63jgrDjgqTjg7Pjgq3jg6Pjg7Pjgrvjg6snLFxuXHRcdFx0J3poLWhhbnMnOiAn55m75b2V5Y+W5raIJyxcblx0XHRcdCd6aC1oYW50JzogJ+eZu+WFpeWPlua2iCcsXG5cdFx0fSksXG5cdFx0J0xvZ2luIHN1Y2NlZWQnOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ0xvZ2luIHN1Y2NlZWQnLFxuXHRcdFx0amE6ICfjg63jgrDjgqTjg7PjgavmiJDlip/jgZfjgb7jgZfjgZ8nLFxuXHRcdFx0J3poLWhhbnMnOiAn55m75b2V5oiQ5YqfJyxcblx0XHRcdCd6aC1oYW50JzogJ+eZu+WFpeaIkOWKnycsXG5cdFx0fSksXG5cdFx0J0xvZ2luIHRva2VuIGdvdCc6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnTG9naW4gdG9rZW4gZ290Jyxcblx0XHRcdGphOiAn44Ot44Kw44Kk44Oz44OI44O844Kv44Oz44Gu5Y+W5b6X44Gr5oiQ5Yqf44GX44G+44GX44GfJyxcblx0XHRcdCd6aC1oYW5zJzogJ+iOt+WPlueZu+W9leS7pOeJjOaIkOWKnycsXG5cdFx0XHQnemgtaGFudCc6ICfnjbLlj5bnmbvlhaXmrIrmnZbmiJDlip8nLFxuXHRcdH0pLFxuXHRcdCdOZXcgcGFzc3dvcmQnOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ05ldyBwYXNzd29yZCcsXG5cdFx0XHRqYTogJ+aWsOOBl+OBhOODkeOCueODr+ODvOODiScsXG5cdFx0XHQnemgtaGFucyc6ICfmlrDlr4bnoIEnLFxuXHRcdFx0J3poLWhhbnQnOiAn5paw5a+G56K8Jyxcblx0XHR9KSxcblx0XHQnTmV3IHBhc3N3b3JkIGlzIHJlcXVpcmVkJzogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdOZXcgcGFzc3dvcmQgaXMgcmVxdWlyZWQnLFxuXHRcdFx0amE6ICfmlrDjgZfjgYTjg5Hjgrnjg6/jg7zjg4njgpLoqK3lrprjgZfjgabjgY/jgaDjgZXjgYQnLFxuXHRcdFx0J3poLWhhbnMnOiAn6ZyA6KaB6K6+572u5paw5a+G56CBJyxcblx0XHRcdCd6aC1oYW50JzogJ+mcgOimgeioree9ruaWsOWvhueivCcsXG5cdFx0fSksXG5cdFx0UGFzc3dvcmQ6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnUGFzc3dvcmQnLFxuXHRcdFx0amE6ICfjg5Hjgrnjg6/jg7zjg4knLFxuXHRcdFx0J3poLWhhbnMnOiAn5a+G56CBJyxcblx0XHRcdCd6aC1oYW50JzogJ+WvhueivCcsXG5cdFx0fSksXG5cdFx0J1Jlc2V0IHBhc3N3b3JkJzogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdSZXNldCBwYXNzd29yZCcsXG5cdFx0XHRqYTogJ+ODkeOCueODr+ODvOODieOCkuODquOCu+ODg+ODiCcsXG5cdFx0XHQnemgtaGFucyc6ICfph43nva7lr4bnoIEnLFxuXHRcdFx0J3poLWhhbnQnOiAn6YeN5paw6Kit5a6a5a+G56K8Jyxcblx0XHR9KSxcblx0XHRVc2VybmFtZTogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdVc2VybmFtZScsXG5cdFx0XHRqYTogJ+WIqeeUqOiAheWQjScsXG5cdFx0XHQnemgtY24nOiAn55So5oi35ZCNJyxcblx0XHRcdCd6aC1oayc6ICfnlKjmiLblkI3nqLEnLFxuXHRcdFx0J3poLXR3JzogJ+S9v+eUqOiAheWQjeeosScsXG5cdFx0fSksXG5cdFx0QWdyZWVkT3JOb3Q6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnUGxlYXNlIHJlYWQgdGhlIHJlbGV2YW50IHRlcm1zLiBJZiB5b3UgYWdyZWUsIGNoZWNrIHRoZSBjaGVja2JveCB0byBjb25maXJtJyxcblx0XHRcdGphOiAn6Zai6YCj44GZ44KL6KaP57SE44KS44GK6Kqt44G/44GE44Gf44Gg44GN44CB5ZCM5oSP44GV44KM44KL5aC05ZCI44Gv44CB44OB44Kn44OD44Kv44Oc44OD44Kv44K544Gr44OB44Kn44OD44Kv44KS5YWl44KM44Gm56K66KqN44GX44Gm44GP44Gg44GV44GEJyxcblx0XHRcdCd6aC1oYW5zJzogJ+ivt+mYheivu+ebuOWFs+adoeasvuOAguiLpeWQjOaEj++8jOWLvumAieWkjemAieahhuS7peehruiupCcsXG5cdFx0XHQnemgtaGFudCc6ICfoq4vplrLoroDnm7jpl5zmop3mrL7jgILoi6XlkIzmhI/vvIzli77pgbjopIfpgbjmoYbku6Xnorroqo0nLFxuXHRcdH0pLFxuXHRcdERvdWJsZUNoZWNrQWdyZWVkT3JOb3Q6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnWW91IGhhdmUgY2FyZWZ1bGx5IHJlYWQsIGZ1bGx5IHVuZGVyc3Rvb2QgYW5kIGFncmVlZCB0byBjb21wbHkgd2l0aCBvdXIgPGEgcmVsPVwibm9vcGVuZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPVwiL3dpa2kvUVc6VE9TXCIgdGl0bGU9XCJUZXJtcyBvZiBTZXJ2aWNlXCI+VGVybXMgb2YgU2VydmljZTwvYT4sIDxhIHJlbD1cIm5vb3BlbmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj1cIi93aWtpL1FXOlBJUFBcIiB0aXRsZT1cIlBlcnNvbmFsIEluZm9ybWF0aW9uIFByb3RlY3Rpb24gUG9saWN5XCI+UGVyc29uYWwgSW5mb3JtYXRpb24gUHJvdGVjdGlvbiBQb2xpY3k8L2E+IGFuZCA8YSByZWw9XCJub29wZW5lclwiIHRhcmdldD1cIl9ibGFua1wiIGhyZWY9XCIvd2lraS9RVzpHVEdMXCIgdGl0bGU9XCJDb21tb24gUHJvZ3JhbVwiPkNvbW1vbiBQcm9ncmFtPC9hPi4nLFxuXHRcdFx0amE6ICfjgYLjgarjgZ/jga/mnKzjgrXjgqTjg4jjga7jgI48YSByZWw9XCJub29wZW5lclwiIHRhcmdldD1cIl9ibGFua1wiIGhyZWY9XCIvd2lraS9RVzpUT1NcIiB0aXRsZT1cIuWIqeeUqOimj+e0hFwiPuWIqeeUqOimj+e0hDwvYT7jgI/jgI48YSByZWw9XCJub29wZW5lclwiIHRhcmdldD1cIl9ibGFua1wiIGhyZWY9XCIvd2lraS9RVzpQSVBQXCIgdGl0bGU9XCLlgIvkurrmg4XloLHkv53orbfmlrnph51cIj7lgIvkurrmg4XloLHkv53orbfmlrnph508L2E+44CP44COPGEgcmVsPVwibm9vcGVuZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPVwiL3dpa2kvUVc6R1RHTFwiIHRpdGxlPVwi5YWx5ZCM57ax6aCYXCI+5YWx5ZCM57ax6aCYPC9hPuOAj+OCkuWNgeWIhuOBq+eQhuino+OBl+OAgeWQjOaEj+OBl+OBn+OBk+OBqOOBq+OBquOCiuOBvuOBmeOAgicsXG5cdFx0XHQnemgtaGFucyc6XG5cdFx0XHRcdCfmgqjlt7Lku5Tnu4bpmIXor7vjgIHlhYXliIbkuobop6PlubblkIzmhI/pgbXlrojmnKznvZHnq5nnmoTjgIo8YSByZWw9XCJub29wZW5lclwiIHRhcmdldD1cIl9ibGFua1wiIGhyZWY9XCIvd2lraS9RVzpUT1NcIiB0aXRsZT1cIueUqOaIt+WNj+iurlwiPueUqOaIt+WNj+iurjwvYT7jgIvjgIo8YSByZWw9XCJub29wZW5lclwiIHRhcmdldD1cIl9ibGFua1wiIGhyZWY9XCIvd2lraS9RVzpQSVBQXCIgdGl0bGU9XCLkuKrkurrkv6Hmga/kv53miqTmlrnpkohcIj7kuKrkurrkv6Hmga/kv53miqTmlrnpkog8L2E+44CL44CKPGEgcmVsPVwibm9vcGVuZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPVwiL3dpa2kvUVc6R1RHTFwiIHRpdGxlPVwi5YWx5ZCM57qy6aKGXCI+5YWx5ZCM57qy6aKGPC9hPuOAi+OAgicsXG5cdFx0XHQnemgtaGFudCc6XG5cdFx0XHRcdCfmgqjlt7Lku5TntLDplrHoroDjgIHlhYXliIbkuobop6PkuKblkIzmhI/pgbXlrojmnKzntrLnq5nnmoTjgIo8YSByZWw9XCJub29wZW5lclwiIHRhcmdldD1cIl9ibGFua1wiIGhyZWY9XCIvd2lraS9RVzpUT1NcIiB0aXRsZT1cIueUqOaItuWNlOitsFwiPueUqOaItuWNlOitsDwvYT7jgIvjgIo8YSByZWw9XCJub29wZW5lclwiIHRhcmdldD1cIl9ibGFua1wiIGhyZWY9XCIvd2lraS9RVzpQSVBQXCIgdGl0bGU9XCLlgIvkurrkv6Hmga/kv53orbfmlrnph51cIj7lgIvkurrkv6Hmga/kv53orbfmlrnph508L2E+44CL44CKPGEgcmVsPVwibm9vcGVuZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPVwiL3dpa2kvUVc6R1RHTFwiIHRpdGxlPVwi5YWx5ZCM57ax6aCYXCI+5YWx5ZCM57ax6aCYPC9hPuOAi+OAgicsXG5cdFx0fSksXG5cdFx0RW1wdHkyRkE6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnVGhlIDJGQSB2ZXJpZmljYXRpb24gY29kZSBjYW5ub3QgYmUgZW1wdHknLFxuXHRcdFx0amE6ICcyRkHoqo3oqLzjgrPjg7zjg4njgYzlhaXlipvjgZXjgozjgabjgYTjgb7jgZvjgpMnLFxuXHRcdFx0J3poLWhhbnMnOiAnMkZB6aqM6K+B56CB5LiN6IO95Li656m6Jyxcblx0XHRcdCd6aC1oYW50JzogJzJGQempl+itieeivOS4jeiDveeIsuepuicsXG5cdFx0fSksXG5cdFx0RW1wdHlQYXNzd29yZDogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdUaGUgcGFzc3dvcmQgY2Fubm90IGJlIGVtcHR5Jyxcblx0XHRcdGphOiAn44OR44K544Ov44O844OJ44GM5YWl5Yqb44GV44KM44Gm44GE44G+44Gb44KTJyxcblx0XHRcdCd6aC1oYW5zJzogJ+WvhueggeS4jeiDveS4uuepuicsXG5cdFx0XHQnemgtaGFudCc6ICflr4bnorzkuI3og73niLLnqbonLFxuXHRcdH0pLFxuXHRcdEVtcHR5VXNlcm5hbWVPclBhc3N3b3JkOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ1RoZSB1c2VybmFtZSBvciBwYXNzd29yZCBjYW5ub3QgYmUgZW1wdHknLFxuXHRcdFx0amE6ICfliKnnlKjogIXlkI3jgb7jgZ/jga/jg5Hjgrnjg6/jg7zjg4njgYzlhaXlipvjgZXjgozjgabjgYTjgb7jgZvjgpMnLFxuXHRcdFx0J3poLWNuJzogJ+eUqOaIt+WQjeaIluWvhueggeS4jeiDveS4uuepuicsXG5cdFx0XHQnemgtaGsnOiAn55So5oi25ZCN56ix5oiW5a+G56K85LiN6IO954iy56m6Jyxcblx0XHRcdCd6aC10dyc6ICfkvb/nlKjogIXlkI3nqLHmiJblr4bnorzkuI3og73niLLnqbonLFxuXHRcdH0pLFxuXHRcdCdOZXR3b3JrIGVycm9yJzogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdOZXR3b3JrIGVycm9yLiBSZWRpcmVjdGluZy4uLicsXG5cdFx0XHRqYTogJ+ODjeODg+ODiOODr+ODvOOCr+OCqOODqeODvOOAgeODquODgOOCpOODrOOCr+ODiOS4rS4uLicsXG5cdFx0XHQnemgtaGFucyc6ICfnvZHnu5zlvILluLjjgILph43lrprlkJHkuK3igKbigKYnLFxuXHRcdFx0J3poLWhhbnQnOiAn57ay6Lev55Ww5bi444CC6YeN5paw5bCO5ZCR5Lit4oCm4oCmJyxcblx0XHR9KSxcblx0XHRTZWxlY3RlZE9yTm90OiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ0tlZXAgbG9nZ2VkIGluIGZvciA2IG1vbnRocyBpZiBzZWxlY3RlZDsgb3RoZXJ3aXNlIHVudGlsIHRoZSBicm93c2VyIGNsb3Nlcy4nLFxuXHRcdFx0amE6ICfjg4Hjgqfjg4Pjgq/jgpLlhaXjgozjgovjgajjg63jgrDjgqTjg7PnirbmhYvjgYw244O25pyI6ZaT5L+d5oyB44GV44KM44CB5YWl44KM44Gq44GE5aC05ZCI44Gv44OW44Op44Km44K244KS6ZaJ44GY44KL44G+44Gn5L+d5oyB44GV44KM44G+44GZ44CCJyxcblx0XHRcdCd6aC1oYW5zJzogJ+WLvumAieWImeS/neaMgeeZu+W9leeKtuaAgTbkuKrmnIjvvIzlkKbliJnlsIblnKjmtY/op4jlmajlhbPpl63ml7bpgIDlh7rnmbvlvZXjgIInLFxuXHRcdFx0J3poLWhhbnQnOiAn5Yu+6YG45YiZ5L+d5oyB55m75YWl54uA5oWLNuWAi+aciO+8jOWQpuWJh+Wwh+WcqOeAj+imveWZqOmXnOmWieaZgueZu+WHuuOAgicsXG5cdFx0fSksXG5cdFx0VG9vRnJlcXVlbnQ6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnVGhlIHVzZXIgbG9naW4gaXMgdG9vIGZyZXF1ZW50LCBwbGVhc2UgdHJ5IGFnYWluIGluIGZpdmUgbWludXRlcycsXG5cdFx0XHRqYTogJ+WIqeeUqOiAheOBjOmgu+e5geOBmeOBjuOCi+OBn+OCgeOAgTXliIblvozjgavlho3oqabooYzjgZfjgabjgY/jgaDjgZXjgYQnLFxuXHRcdFx0J3poLWNuJzogJ+eUqOaIt+eZu+W9lei/h+S6jumikee5ge+8jOivt+S6lOWIhumSn+WQjuWGjeivlScsXG5cdFx0XHQnemgtaGsnOiAn55So5oi255m75YWl6YGO5pa86aC757mB77yM6KuL5LqU5YiG6ZCY5b6M5YaN6KmmJyxcblx0XHRcdCd6aC10dyc6ICfkvb/nlKjogIXnmbvlhaXov4fkuo7popHnuYHvvIzor7fkupTliIbpkp/lkI7lho3or5UnLFxuXHRcdH0pLFxuXHRcdCdVbmV4cGVjdGVkIEFQSSByZXNwb25zZSc6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnVW5leHBlY3RlZCBBUEkgcmVzcG9uc2U6ICQxLiBSZWRpcmVjdGluZy4uLicsXG5cdFx0XHRqYTogJ+S6iOacn+OBm+OBrEFQSeOBruW/nOetlO+8miQx44CB44Oq44OA44Kk44Os44Kv44OI5LitLi4uJyxcblx0XHRcdCd6aC1oYW5zJzogJ+aEj+WklueahEFQSeWTjeW6lO+8miQx44CC6YeN5a6a5ZCR5Lit4oCm4oCmJyxcblx0XHRcdCd6aC1oYW50JzogJ+aEj+WklueahEFQSemfv+aHie+8miQx44CC6YeN5paw5bCO5ZCR5Lit4oCm4oCmJyxcblx0XHR9KSxcblx0fTtcbn07XG5jb25zdCBpMThuTWVzc2FnZXMgPSBnZXRJMThuTWVzc2FnZXMoKTtcblxuY29uc3QgZ2V0TWVzc2FnZTogR2V0TWVzc2FnZXM8dHlwZW9mIGkxOG5NZXNzYWdlcz4gPSAoa2V5KSA9PiB7XG5cdHJldHVybiBpMThuTWVzc2FnZXNba2V5XSB8fCBrZXk7XG59O1xuXG5leHBvcnQge2dldE1lc3NhZ2V9O1xuIiwgImNvbnN0IGluaXRXaW5kb3dNYW5hZ2VyID0gKCk6IE9PLnVpLldpbmRvd01hbmFnZXIgPT4ge1xuXHRyZXR1cm4gbmV3IE9PLnVpLldpbmRvd01hbmFnZXIoKTtcbn07XG5cbmNvbnN0IHdpbmRvd01hbmFnZXI6IE9PLnVpLldpbmRvd01hbmFnZXIgPSBpbml0V2luZG93TWFuYWdlcigpO1xuXG5leHBvcnQge3dpbmRvd01hbmFnZXJ9O1xuIiwgImltcG9ydCB7d2luZG93TWFuYWdlcn0gZnJvbSAnLi4vaW5pdFdpbmRvd01hbmFnZXInO1xuXG5jb25zdCBvb3VpQ29uZmlybSA9IGFzeW5jIChvcHRpb25zOiBPTy51aS5NZXNzYWdlRGlhbG9nLlNldHVwRGF0YU1hcCk6IFByb21pc2U8Ym9vbGVhbj4gPT4ge1xuXHRjb25zdCBtZXNzYWdlRGlhbG9nOiBPTy51aS5NZXNzYWdlRGlhbG9nID0gbmV3IE9PLnVpLk1lc3NhZ2VEaWFsb2coKTtcblx0d2luZG93TWFuYWdlci5hZGRXaW5kb3dzKFttZXNzYWdlRGlhbG9nXSk7XG5cblx0Y29uc3QgaW5zdGFuY2U6IE9PLnVpLldpbmRvd0luc3RhbmNlID0gd2luZG93TWFuYWdlci5vcGVuV2luZG93KG1lc3NhZ2VEaWFsb2csIG9wdGlvbnMpO1xuXG5cdGNvbnN0IGRhdGE6IHZvaWQgPSBhd2FpdCBpbnN0YW5jZS5jbG9zZWQ7XG5cdGNvbnN0IF9kYXRhID0gZGF0YSBhcyB7YWN0aW9uOiBzdHJpbmd9IHwgdm9pZDtcblxuXHRyZXR1cm4gISEoX2RhdGE/LmFjdGlvbiA9PT0gJ2FjY2VwdCcpO1xufTtcblxuZXhwb3J0IHtvb3VpQ29uZmlybX07XG4iLCAiaW1wb3J0IFJlYWN0IGZyb20gJ2V4dC5nYWRnZXQuSlNYJztcbmltcG9ydCB7Z2V0TWVzc2FnZX0gZnJvbSAnLi4vaTE4bic7XG5cbmNvbnN0IGdlbmVyYXRlRWxlbWVudHMgPSAoaXNBZ3JlZVRvczogYm9vbGVhbikgPT4ge1xuXHRjb25zdCBtZXNzYWdlRGlhbG9nOiBPTy51aS5NZXNzYWdlRGlhbG9nID0gbmV3IE9PLnVpLk1lc3NhZ2VEaWFsb2coKTtcblxuXHRjb25zdCBuYW1lSW5wdXQ6IE9PLnVpLlRleHRJbnB1dFdpZGdldCA9IG5ldyBPTy51aS5UZXh0SW5wdXRXaWRnZXQoe1xuXHRcdGljb246ICd1c2VyQXZhdGFyJyxcblx0XHRwbGFjZWhvbGRlcjogZ2V0TWVzc2FnZSgnVXNlcm5hbWUnKSxcblx0XHR2YWxpZGF0ZTogJ25vbi1lbXB0eScsXG5cdH0pO1xuXG5cdGNvbnN0IHB3ZElucHV0OiBPTy51aS5UZXh0SW5wdXRXaWRnZXQgPSBuZXcgT08udWkuVGV4dElucHV0V2lkZ2V0KHtcblx0XHRpY29uOiAna2V5Jyxcblx0XHRwbGFjZWhvbGRlcjogZ2V0TWVzc2FnZSgnUGFzc3dvcmQnKSxcblx0XHR0eXBlOiAncGFzc3dvcmQnLFxuXHRcdHZhbGlkYXRlOiAnbm9uLWVtcHR5Jyxcblx0fSk7XG5cblx0Y29uc3QgYWdyZWVUb3NDaGVja2JveDogT08udWkuQ2hlY2tib3hJbnB1dFdpZGdldCA9IG5ldyBPTy51aS5DaGVja2JveElucHV0V2lkZ2V0KHtcblx0XHRzZWxlY3RlZDogaXNBZ3JlZVRvcyxcblx0fSk7XG5cdGNvbnN0IGFncmVlVG9zTGF5b3V0OiBPTy51aS5GaWVsZExheW91dDxPTy51aS5DaGVja2JveElucHV0V2lkZ2V0PiA9IG5ldyBPTy51aS5GaWVsZExheW91dChhZ3JlZVRvc0NoZWNrYm94LCB7XG5cdFx0YWxpZ246ICdpbmxpbmUnLFxuXHRcdGxhYmVsOiBnZXRNZXNzYWdlKCdJIGFncmVlIHdpdGggdGhlIHJlbGV2YW50IHRlcm1zJyksXG5cdH0pO1xuXG5cdGNvbnN0IGtlZXBMb2dpbkNoZWNrYm94OiBPTy51aS5DaGVja2JveElucHV0V2lkZ2V0ID0gbmV3IE9PLnVpLkNoZWNrYm94SW5wdXRXaWRnZXQoKTtcblx0Y29uc3Qga2VlcExvZ2luTGF5b3V0OiBPTy51aS5GaWVsZExheW91dDxPTy51aS5DaGVja2JveElucHV0V2lkZ2V0PiA9IG5ldyBPTy51aS5GaWVsZExheW91dChrZWVwTG9naW5DaGVja2JveCwge1xuXHRcdGFsaWduOiAnaW5saW5lJyxcblx0XHRoZWxwOiBnZXRNZXNzYWdlKCdTZWxlY3RlZE9yTm90JyksXG5cdFx0bGFiZWw6IGdldE1lc3NhZ2UoJ0tlZXAgbWUgbG9nZ2VkIGluJyksXG5cdH0pO1xuXG5cdGNvbnN0IGxhYmVsID0gKFxuXHRcdDxsYWJlbFxuXHRcdFx0Y2xhc3NOYW1lPXtbJ29vLXVpLWxhYmVsV2lkZ2V0JywgJ29vLXVpLWxhYmVsRWxlbWVudC1sYWJlbCddfVxuXHRcdFx0c3R5bGU9e3tmb250U2l6ZTogJzkwJScsIHRleHRBbGlnbjogJ2p1c3RpZnknfX1cblx0XHQvPlxuXHQpO1xuXHRjb25zdCAkbGFiZWwgPSAkKGxhYmVsKSBhcyBKUXVlcnk7XG5cblx0Y29uc3QgJGFncmVlVG9zOiBKUXVlcnkgPSAkbGFiZWwuY2xvbmUoKS5hcHBlbmQoYWdyZWVUb3NMYXlvdXQuJGVsZW1lbnQpO1xuXHRjb25zdCAkZm9yZ290UGFzc3dvcmQ6IEpRdWVyeSA9ICRsYWJlbFxuXHRcdC5jbG9uZSgpXG5cdFx0LmNzcygnZmxvYXQnLCAncmlnaHQnKVxuXHRcdC5hcHBlbmQoXG5cdFx0XHQ8YSBocmVmPXttdy51dGlsLmdldFVybCgnU3BlY2lhbDpQYXNzd29yZFJlc2V0Jyl9IHRpdGxlPXtnZXRNZXNzYWdlKCdSZXNldCBwYXNzd29yZCcpfT5cblx0XHRcdFx0e2dldE1lc3NhZ2UoJ0ZvcmdvdCBwYXNzd29yZD8nKX1cblx0XHRcdDwvYT5cblx0XHQpO1xuXHRjb25zdCAkaW5wdXRCb3g6IEpRdWVyeSA9ICRsYWJlbFxuXHRcdC5jbG9uZSgpXG5cdFx0LmNzcyh7XG5cdFx0XHRkaXNwbGF5OiAnYmxvY2snLFxuXHRcdFx0J2ZvbnQtc2l6ZSc6ICdpbmhlcml0Jyxcblx0XHRcdHBhZGRpbmc6ICc2cHggMCcsXG5cdFx0fSlcblx0XHQuYXBwZW5kKG5hbWVJbnB1dC4kZWxlbWVudC5jc3MoJ21hcmdpbi1ib3R0b20nLCAnNnB4JyksIHB3ZElucHV0LiRlbGVtZW50KTtcblx0Y29uc3QgJHRvc0xhYmVsOiBKUXVlcnkgPSAkbGFiZWwuY2xvbmUoKS5odG1sKGdldE1lc3NhZ2UoJ2hlbHAgZm9yIEkgYWdyZWUgd2l0aCB0aGUgcmVsZXZhbnQgdGVybXMnKSk7XG5cdGNvbnN0ICRyZW1lbWJlck1lOiBKUXVlcnkgPSAkbGFiZWwuY2xvbmUoKS5hcHBlbmQoa2VlcExvZ2luTGF5b3V0LiRlbGVtZW50LmNzcygnbWFyZ2luLXRvcCcsICc2cHgnKSk7XG5cblx0cmV0dXJuIHtcblx0XHQkYWdyZWVUb3MsXG5cdFx0JGZvcmdvdFBhc3N3b3JkLFxuXHRcdCRpbnB1dEJveCxcblx0XHQkcmVtZW1iZXJNZSxcblx0XHQkdG9zTGFiZWwsXG5cdFx0YWdyZWVUb3NDaGVja2JveCxcblx0XHRrZWVwTG9naW5DaGVja2JveCxcblx0XHRtZXNzYWdlRGlhbG9nLFxuXHRcdG5hbWVJbnB1dCxcblx0XHRwd2RJbnB1dCxcblx0fTtcbn07XG5cbmV4cG9ydCB7Z2VuZXJhdGVFbGVtZW50c307XG4iLCAiaW1wb3J0IFJlYWN0IGZyb20gJ2V4dC5nYWRnZXQuSlNYJztcbmltcG9ydCB7Z2V0TWVzc2FnZX0gZnJvbSAnLi4vaTE4bic7XG5pbXBvcnQge3JlbW92ZVdpbmRvd1Jlc2l6ZUhhbmRsZXJ9IGZyb20gJy4vcmVtb3ZlV2luZG93UmVzaXplSGFuZGxlcic7XG5pbXBvcnQge3dpbmRvd01hbmFnZXJ9IGZyb20gJy4uL2luaXRXaW5kb3dNYW5hZ2VyJztcblxuY29uc3Qgb291aVByb21wdCA9IGFzeW5jIChyZXR5cGVQYXNzd29yZDogYm9vbGVhbik6IFByb21pc2U8c3RyaW5nIHwgbnVsbD4gPT4ge1xuXHRjb25zdCBjb2RlRGlhbG9nOiBPTy51aS5NZXNzYWdlRGlhbG9nID0gbmV3IE9PLnVpLk1lc3NhZ2VEaWFsb2coKTtcblx0Y29uc3QgY29kZUlucHV0OiBPTy51aS5UZXh0SW5wdXRXaWRnZXQgPSBuZXcgT08udWkuVGV4dElucHV0V2lkZ2V0KHtcblx0XHRpY29uOiAna2V5Jyxcblx0XHRwbGFjZWhvbGRlcjogcmV0eXBlUGFzc3dvcmQgPyBnZXRNZXNzYWdlKCdOZXcgcGFzc3dvcmQnKSA6IGdldE1lc3NhZ2UoJzYtZGlnaXQgbnVtYmVyJyksXG5cdFx0dmFsaWRhdGU6ICdpbnRlZ2VyJyxcblx0fSk7XG5cblx0Y29uc3QgY29kZUxheW91dDogT08udWkuRmllbGRMYXlvdXQ8T08udWkuVGV4dElucHV0V2lkZ2V0PiA9IG5ldyBPTy51aS5GaWVsZExheW91dChjb2RlSW5wdXQsIHtcblx0XHRhbGlnbjogJ3RvcCcsXG5cdFx0bGFiZWw6ICQoXG5cdFx0XHQ8YiBjbGFzc05hbWU9e1snb28tdWktbWVzc2FnZURpYWxvZy10aXRsZScsICdvby11aS13aW5kb3ctaGVhZCddfT5cblx0XHRcdFx0e3JldHlwZVBhc3N3b3JkID8gZ2V0TWVzc2FnZSgnRW50ZXIgcGFzc3dvcmQnKSA6IGdldE1lc3NhZ2UoJ0VudGVyIDJGQSB2ZXJpZmljYXRpb24gY29kZScpfVxuXHRcdFx0PC9iPlxuXHRcdCksXG5cdH0pO1xuXG5cdHdpbmRvd01hbmFnZXIuYWRkV2luZG93cyhbY29kZURpYWxvZ10pO1xuXG5cdGNvbnN0IGluc3RhbmNlOiBPTy51aS5XaW5kb3dJbnN0YW5jZSA9IHdpbmRvd01hbmFnZXIub3BlbldpbmRvdyhjb2RlRGlhbG9nLCB7XG5cdFx0bWVzc2FnZTogY29kZUxheW91dC4kZWxlbWVudCxcblx0fSk7XG5cblx0cmVtb3ZlV2luZG93UmVzaXplSGFuZGxlcigpO1xuXG5cdHZvaWQgaW5zdGFuY2Uub3BlbmVkLnRoZW4oKCk6IHZvaWQgPT4ge1xuXHRcdGNvZGVJbnB1dC5vbignZW50ZXInLCAoKTogdm9pZCA9PiB7XG5cdFx0XHQod2luZG93TWFuYWdlci5nZXRDdXJyZW50V2luZG93KCkgYXMgT08udWkuV2luZG93KS5jbG9zZSh7XG5cdFx0XHRcdGFjdGlvbjogJ2FjY2VwdCcsXG5cdFx0XHR9KTtcblx0XHR9KTtcblx0XHRjb2RlSW5wdXQuZm9jdXMoKTtcblx0fSk7XG5cblx0Y29uc3QgZGF0YTogdm9pZCA9IGF3YWl0IGluc3RhbmNlLmNsb3NlZDtcblx0Y29uc3QgX2RhdGEgPSBkYXRhIGFzIHthY3Rpb246IHN0cmluZ30gfCB2b2lkO1xuXG5cdHJldHVybiBfZGF0YT8uYWN0aW9uID09PSAnYWNjZXB0JyA/IGNvZGVJbnB1dC5nZXRWYWx1ZSgpIDogbnVsbDtcbn07XG5cbmV4cG9ydCB7b291aVByb21wdH07XG4iLCAiaW1wb3J0IHt3aW5kb3dNYW5hZ2VyfSBmcm9tICcuLi9pbml0V2luZG93TWFuYWdlcic7XG5cbmNvbnN0IHJlbW92ZVdpbmRvd1Jlc2l6ZUhhbmRsZXIgPSAoKTogdm9pZCA9PiB7XG5cdCQod2luZG93KS5vZmYoe1xuXHRcdCdvcmllbnRhdGlvbmNoYW5nZSByZXNpemUnOiAod2luZG93TWFuYWdlciBhcyB1bmtub3duIGFzIHtvbldpbmRvd1Jlc2l6ZUhhbmRsZXI6ICgpID0+IHZvaWR9KVxuXHRcdFx0Lm9uV2luZG93UmVzaXplSGFuZGxlcixcblx0fSk7XG59O1xuXG5leHBvcnQge3JlbW92ZVdpbmRvd1Jlc2l6ZUhhbmRsZXJ9O1xuIiwgImltcG9ydCB7YXBpfSBmcm9tICcuLi9hcGknO1xuaW1wb3J0IHtnZXRNZXNzYWdlfSBmcm9tICcuLi9pMThuJztcbmltcG9ydCB7dG9hc3RpZnl9IGZyb20gJ2V4dC5nYWRnZXQuVG9hc3RpZnknO1xuXG5jb25zdCBxdWVyeUxvZ2luVG9rZW4gPSBhc3luYyAoXG5cdHRvYXN0aWZ5SW5zdGFuY2U6IFRvYXN0aWZ5SW5zdGFuY2Vcbik6IFByb21pc2U8e1xuXHRsb2dpblRva2VuOiBzdHJpbmc7XG5cdHRvYXN0aWZ5SW5zdGFuY2U6IFRvYXN0aWZ5SW5zdGFuY2U7XG59PiA9PiB7XG5cdHRvYXN0aWZ5SW5zdGFuY2UuaGlkZVRvYXN0KCk7XG5cdHRvYXN0aWZ5SW5zdGFuY2UgPSB0b2FzdGlmeSh7XG5cdFx0dGV4dDogZ2V0TWVzc2FnZSgnR2V0dGluZyBsb2dpbiB0b2tlbicpLFxuXHR9KTtcblxuXHRjb25zdCBsb2dpblRva2VuOiBzdHJpbmcgPSBhd2FpdCBhcGkuZ2V0VG9rZW4oJ2xvZ2luJyk7XG5cblx0dG9hc3RpZnlJbnN0YW5jZS5oaWRlVG9hc3QoKTtcblx0dG9hc3RpZnlJbnN0YW5jZSA9IHRvYXN0aWZ5KHtcblx0XHR0ZXh0OiBnZXRNZXNzYWdlKCdMb2dpbiB0b2tlbiBnb3QnKSxcblx0XHRkdXJhdGlvbjogLTEsXG5cdH0pO1xuXG5cdHJldHVybiB7XG5cdFx0bG9naW5Ub2tlbixcblx0XHR0b2FzdGlmeUluc3RhbmNlLFxuXHR9O1xufTtcblxuZXhwb3J0IHtxdWVyeUxvZ2luVG9rZW59O1xuIiwgImltcG9ydCB7ZGVsYXl9IGZyb20gJ2V4dC5nYWRnZXQuVXRpbCc7XG5pbXBvcnQge3dpbmRvd01hbmFnZXJ9IGZyb20gJy4uL2luaXRXaW5kb3dNYW5hZ2VyJztcblxuY29uc3QgcmVkaXJlY3RPcmlnaW5Mb2dpblBhZ2UgPSBhc3luYyAoKTogUHJvbWlzZTx2b2lkPiA9PiB7XG5cdGF3YWl0IHdpbmRvd01hbmFnZXIuY2xlYXJXaW5kb3dzKCk7XG5cdGF3YWl0IGRlbGF5KDMgKiAxMDAwKTtcblx0bG9jYXRpb24uaHJlZiA9IG13LnV0aWwuZ2V0VXJsKCdTcGVjaWFsOlVzZXJsb2dpbicpO1xufTtcblxuZXhwb3J0IHtyZWRpcmVjdE9yaWdpbkxvZ2luUGFnZX07XG4iLCAiaW1wb3J0IHtnZXRNZXNzYWdlfSBmcm9tICcuLi9pMThuJztcbmltcG9ydCB7dG9hc3RpZnl9IGZyb20gJ2V4dC5nYWRnZXQuVG9hc3RpZnknO1xuXG5jb25zdCBzaG93RXJyb3IgPSAoZXJyb3I6IHVua25vd24sIHRvYXN0aWZ5SW5zdGFuY2U6IFRvYXN0aWZ5SW5zdGFuY2UpOiB2b2lkID0+IHtcblx0Y29uc29sZS5lcnJvcignW0FqYXhMb2dpbl0gQWpheCBlcnJvcjonLCBlcnJvcik7XG5cdHRvYXN0aWZ5SW5zdGFuY2UuaGlkZVRvYXN0KCk7XG5cdHRvYXN0aWZ5KFxuXHRcdHtcblx0XHRcdHRleHQ6IGdldE1lc3NhZ2UoJ05ldHdvcmsgZXJyb3InKSxcblx0XHRcdGNsb3NlOiB0cnVlLFxuXHRcdFx0ZHVyYXRpb246IC0xLFxuXHRcdH0sXG5cdFx0J2Vycm9yJ1xuXHQpO1xufTtcblxuZXhwb3J0IHtzaG93RXJyb3J9O1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQyxJQUFBQSx1QkFBd0I7QUFDeEIsSUFBQUMsVUFBVzs7QUNEWixJQUFBQyxzQkFBMkNDLFFBQUEsaUJBQUE7O0FDRDNDLElBQUFDLG9CQUFrQ0QsUUFBQSxnQ0FBQTtBQUVsQyxJQUFNRSxjQUFjQSxDQUNuQkMsVUFDQUMsa0JBQ1U7QUFDVkQsV0FBU0UsR0FBRyxVQUFBLEdBQVNKLGtCQUFBSyxxQkFBb0JGLGFBQWEsQ0FBQztBQUN2REQsV0FBU0UsR0FBRyxXQUFXRCxhQUFhO0FBQ3JDOztBQ1BBLElBQUFHLHFCQUF3QlAsUUFBQSxpQkFBQTtBQVV4QixJQUFNUSxPQUFBLEdBQWNELG1CQUFBRSxXQUFBLGFBQUFDLE9BQStCWixPQUFPLENBQUU7O0FDVjVELElBQUFhLHNCQUFrQkMsUUFBQVosUUFBQSxnQkFBQSxHQUFBLENBQUE7O0FDRGxCLElBQUFhLHFCQUFrQkQsUUFBQVosUUFBQSxnQkFBQSxHQUFBLENBQUE7O0FDQWxCLElBQUFjLHFCQUF1QmQsUUFBQSxpQkFBQTtBQUV2QixJQUFNZSxrQkFBa0JBLE1BQU07QUFDN0IsU0FBTztJQUNOLG1CQUFBLEdBQWtCRCxtQkFBQUUsVUFBUztNQUMxQkMsSUFBSTtNQUNKQyxJQUFJO01BQ0osV0FBVztNQUNYLFdBQVc7SUFDWixDQUFDO0lBQ0RDLFNBQUEsR0FBUUwsbUJBQUFFLFVBQVM7TUFDaEJDLElBQUk7TUFDSkMsSUFBSTtNQUNKRSxJQUFJO0lBQ0wsQ0FBQztJQUNELG1CQUFBLEdBQWtCTixtQkFBQUUsVUFBUztNQUMx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LFFBQU1oRSxnQkFBaUIrTCxXQUF5RDtBQUMvRSxRQUFJLEVBQUEsR0FBQ3BNLG9CQUFBcU0scUJBQW9CRCxLQUFLLEdBQUc7QUFDaEM7SUFDRDtBQUVBQSxVQUFNRSxlQUFlO0FBQ3JCNUMsY0FBVXlDLG9CQUFvQjtFQUMvQjtBQUNBaE0sY0FBWTRMLGVBQWUxTCxhQUFhO0FBQ3pDLENBQUM7IiwKICAibmFtZXMiOiBbImxvZ2luRWxlbWVudFNlbGVjdG9yIiwgInZlcnNpb24iLCAiaW1wb3J0X2V4dF9nYWRnZXQxMyIsICJyZXF1aXJlIiwgImltcG9ydF9leHRfZ2FkZ2V0IiwgImFkZExpc3RlbmVyIiwgIiRlbGVtZW50IiwgImV2ZW50TGlzdGVuZXIiLCAib24iLCAiZmlsdGVyQWx0ZXJlZENsaWNrcyIsICJpbXBvcnRfZXh0X2dhZGdldDIiLCAiYXBpIiwgImluaXRNd0FwaSIsICJjb25jYXQiLCAiaW1wb3J0X2V4dF9nYWRnZXQxMSIsICJfX3RvRVNNIiwgImltcG9ydF9leHRfZ2FkZ2V0NCIsICJpbXBvcnRfZXh0X2dhZGdldDMiLCAiZ2V0STE4bk1lc3NhZ2VzIiwgImxvY2FsaXplIiwgImVuIiwgImphIiwgIkNhbmNlbCIsICJ6aCIsICJMb2dpbiIsICJQYXNzd29yZCIsICJVc2VybmFtZSIsICJBZ3JlZWRPck5vdCIsICJEb3VibGVDaGVja0FncmVlZE9yTm90IiwgIkVtcHR5MkZBIiwgIkVtcHR5UGFzc3dvcmQiLCAiRW1wdHlVc2VybmFtZU9yUGFzc3dvcmQiLCAiU2VsZWN0ZWRPck5vdCIsICJUb29GcmVxdWVudCIsICJpMThuTWVzc2FnZXMiLCAiZ2V0TWVzc2FnZSIsICJrZXkiLCAiaW5pdFdpbmRvd01hbmFnZXIiLCAiT08iLCAidWkiLCAiV2luZG93TWFuYWdlciIsICJ3aW5kb3dNYW5hZ2VyIiwgIm9vdWlDb25maXJtIiwgIl9yZWYiLCAiX2FzeW5jVG9HZW5lcmF0b3IiLCAib3B0aW9ucyIsICJtZXNzYWdlRGlhbG9nIiwgIk1lc3NhZ2VEaWFsb2ciLCAiYWRkV2luZG93cyIsICJpbnN0YW5jZSIsICJvcGVuV2luZG93IiwgImRhdGEiLCAiY2xvc2VkIiwgIl9kYXRhIiwgImFjdGlvbiIsICJfeCIsICJhcHBseSIsICJhcmd1bWVudHMiLCAiaW1wb3J0X2V4dF9nYWRnZXQ1IiwgImNoZWNrVmFsaWQiLCAiX3JlZjIiLCAiYWdyZWVUb3NDaGVja2JveCIsICJuYW1lSW5wdXQiLCAicHdkSW5wdXQiLCAidG9hc3RpZnlJbnN0YW5jZSIsICJpc0FncmVlVG9zIiwgImlzU2VsZWN0ZWQiLCAiaXNGaWxsIiwgImdldFZhbHVlIiwgInRyaW0iLCAiaW5jbHVkZXMiLCAiaGlkZVRvYXN0IiwgImNsZWFyV2luZG93cyIsICJtZXNzYWdlIiwgIiQiLCAiZGVmYXVsdCIsICJjcmVhdGVFbGVtZW50IiwgImlubmVySFRNTCIsICJhY3Rpb25zIiwgImxhYmVsIiwgImZsYWdzIiwgInRvYXN0aWZ5IiwgInRleHQiLCAiZHVyYXRpb24iLCAiaXNWYWxpZCIsICJfeDIiLCAiX3gzIiwgImltcG9ydF9leHRfZ2FkZ2V0NiIsICJnZW5lcmF0ZUVsZW1lbnRzIiwgIlRleHRJbnB1dFdpZGdldCIsICJpY29uIiwgInBsYWNlaG9sZGVyIiwgInZhbGlkYXRlIiwgInR5cGUiLCAiQ2hlY2tib3hJbnB1dFdpZGdldCIsICJzZWxlY3RlZCIsICJhZ3JlZVRvc0xheW91dCIsICJGaWVsZExheW91dCIsICJhbGlnbiIsICJrZWVwTG9naW5DaGVja2JveCIsICJrZWVwTG9naW5MYXlvdXQiLCAiaGVscCIsICJjbGFzc05hbWUiLCAic3R5bGUiLCAiZm9udFNpemUiLCAidGV4dEFsaWduIiwgIiRsYWJlbCIsICIkYWdyZWVUb3MiLCAiY2xvbmUiLCAiYXBwZW5kIiwgIiRmb3Jnb3RQYXNzd29yZCIsICJjc3MiLCAiaHJlZiIsICJtdyIsICJ1dGlsIiwgImdldFVybCIsICJ0aXRsZSIsICIkaW5wdXRCb3giLCAiZGlzcGxheSIsICJwYWRkaW5nIiwgIiR0b3NMYWJlbCIsICJodG1sIiwgIiRyZW1lbWJlck1lIiwgImltcG9ydF9leHRfZ2FkZ2V0NyIsICJyZW1vdmVXaW5kb3dSZXNpemVIYW5kbGVyIiwgIndpbmRvdyIsICJvZmYiLCAib25XaW5kb3dSZXNpemVIYW5kbGVyIiwgIm9vdWlQcm9tcHQiLCAiX3JlZjMiLCAicmV0eXBlUGFzc3dvcmQiLCAiY29kZURpYWxvZyIsICJjb2RlSW5wdXQiLCAiY29kZUxheW91dCIsICJvcGVuZWQiLCAidGhlbiIsICJnZXRDdXJyZW50V2luZG93IiwgImNsb3NlIiwgImZvY3VzIiwgIl94NCIsICJpbXBvcnRfZXh0X2dhZGdldDgiLCAicXVlcnlMb2dpblRva2VuIiwgIl9yZWY0IiwgImxvZ2luVG9rZW4iLCAiZ2V0VG9rZW4iLCAiX3g1IiwgImltcG9ydF9leHRfZ2FkZ2V0OSIsICJyZWRpcmVjdE9yaWdpbkxvZ2luUGFnZSIsICJfcmVmNSIsICJkZWxheSIsICJsb2NhdGlvbiIsICJpbXBvcnRfZXh0X2dhZGdldDEwIiwgInNob3dFcnJvciIsICJlcnJvciIsICJjb25zb2xlIiwgImltcG9ydF9leHRfZ2FkZ2V0MTIiLCAiYWpheExvZ2luIiwgImxvZ2luIiwgIl9yZWY2IiwgImxvZ2luQ29udGludWUiLCAiX3Jlc3BvbnNlJGNsaWVudGxvZ2luIiwgIl9yZXNwb25zZSRjbGllbnRsb2dpbjIiLCAicGFyYW1zIiwgImZvcm1hdCIsICJmb3JtYXR2ZXJzaW9uIiwgImxvZ2ludG9rZW4iLCAibG9naW5yZXR1cm51cmwiLCAidXNlcm5hbWUiLCAicGFzc3dvcmQiLCAicmVtZW1iZXJNZSIsICJsb2dpbmNvbnRpbnVlIiwgInZhbHVlIiwgInJldHlwZSIsICJPQVRIVG9rZW4iLCAicmVzcG9uc2UiLCAicG9zdCIsICJzdGF0dXMiLCAicmVsb2FkIiwgIm1lc3NhZ2Vjb2RlIiwgInJlcGxhY2UiLCAiY2hlY2siLCAiX3JlZjciLCAibGFzdElzQWdyZWVUb3MiLCAibGFzdFRvYXN0aWZ5SW5zdGFuY2UiLCAiZ2V0QWN0aW9uUHJvY2VzcyIsICJQcm9jZXNzIiwgInNpemUiLCAiZ2V0Qm9keSIsICJpbml0QXV0b0xvZ2luIiwgIiRib2R5IiwgIndnVXNlck5hbWUiLCAiY29uZmlnIiwgImdldCIsICIkbG9naW5FbGVtZW50IiwgImZpbmQiLCAibGVuZ3RoIiwgImFwcGVuZFRvIiwgImZha2VUb2FzdGlmeUluc3RhbmNlIiwgImV2ZW50IiwgImNoZWNrQTExeUNvbmZpcm1LZXkiLCAicHJldmVudERlZmF1bHQiXQp9Cg== diff --git a/dist/Cat-a-lot/Cat-a-lot.js b/dist/Cat-a-lot/Cat-a-lot.js index b82706e58..2ed0cedbe 100644 --- a/dist/Cat-a-lot/Cat-a-lot.js +++ b/dist/Cat-a-lot/Cat-a-lot.js @@ -371,7 +371,7 @@ var setMessages = () => { }; //! src/Cat-a-lot/modules/core.tsx var import_ext_gadget2 = require("ext.gadget.Util"); -var import_ext_gadget3 = __toESM(require("ext.gadget.React"), 1); +var import_ext_gadget3 = __toESM(require("ext.gadget.JSX"), 1); //! src/Cat-a-lot/modules/api.ts var import_ext_gadget = require("ext.gadget.Util"); var api = (0, import_ext_gadget.initMwApi)("Cat-a-lot/".concat(version)); @@ -1181,4 +1181,4 @@ catALot(); /* */ -//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL0NhdC1hLWxvdC9vcHRpb25zLmpzb24iLCAic3JjL0NhdC1hLWxvdC9tb2R1bGVzL2NvbnN0YW50LnRzIiwgInNyYy9DYXQtYS1sb3QvbW9kdWxlcy9tZXNzYWdlcy50cyIsICJzcmMvQ2F0LWEtbG90L21vZHVsZXMvY29yZS50c3giLCAic3JjL0NhdC1hLWxvdC9tb2R1bGVzL2FwaS50cyIsICJzcmMvQ2F0LWEtbG90L21vZHVsZXMvZXh0ZW5kSlF1ZXJ5UHJvdG90eXBlLnRzIiwgInNyYy9DYXQtYS1sb3QvQ2F0LWEtbG90LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJ7XG5cdFwiYXBpVGFnXCI6IFwiQ2F0LWEtbG90XCIsXG5cdFwidGFyZ2V0TmFtZXNwYWNlXCI6IDE0LFxuXHRcInZlcnNpb25cIjogXCI2LjBcIlxufVxuIiwgIi8qIGVzbGludC1kaXNhYmxlIGNhbWVsY2FzZSAqL1xuaW1wb3J0IHR5cGUge1NldHRpbmd9IGZyb20gJy4vdHlwZXMnO1xuXG5jb25zdCBDTEFTU19OQU1FOiBzdHJpbmcgPSAnZ2FkZ2V0LWNhdF9hX2xvdCc7XG5jb25zdCBDTEFTU19OQU1FX0NPTlRBSU5FUjogc3RyaW5nID0gYCR7Q0xBU1NfTkFNRX0tY29udGFpbmVyYDtcbmNvbnN0IENMQVNTX05BTUVfQ09OVEFJTkVSX0RBVEE6IHN0cmluZyA9IGAke0NMQVNTX05BTUVfQ09OVEFJTkVSfV9fZGF0YWA7XG5jb25zdCBDTEFTU19OQU1FX0NPTlRBSU5FUl9EQVRBX0NBVEVHT1JZX0xJU1Q6IHN0cmluZyA9IGAke0NMQVNTX05BTUVfQ09OVEFJTkVSX0RBVEF9X19jYXRlZ29yeS1saXN0YDtcbmNvbnN0IENMQVNTX05BTUVfQ09OVEFJTkVSX0RBVEFfQ0FURUdPUllfTElTVF9BQ1RJT046IHN0cmluZyA9IGAke0NMQVNTX05BTUVfQ09OVEFJTkVSX0RBVEFfQ0FURUdPUllfTElTVH1fX2FjdGlvbmA7XG5jb25zdCBDTEFTU19OQU1FX0NPTlRBSU5FUl9EQVRBX0NBVEVHT1JZX0xJU1RfTk9fRk9VTkQ6IHN0cmluZyA9IGAke0NMQVNTX05BTUVfQ09OVEFJTkVSX0RBVEFfQ0FURUdPUllfTElTVH0tLW5vLWZvdW5kYDtcbmNvbnN0IENMQVNTX05BTUVfQ09OVEFJTkVSX0RBVEFfTUFSS19DT1VOVEVSOiBzdHJpbmcgPSBgJHtDTEFTU19OQU1FX0NPTlRBSU5FUl9EQVRBfV9fbWFyay1jb3VudGVyYDtcbmNvbnN0IENMQVNTX05BTUVfQ09OVEFJTkVSX0RBVEFfU0VBUkNIX0lOUFVUX0NPTlRBSU5FUl9JTlBVVDogc3RyaW5nID0gYCR7Q0xBU1NfTkFNRV9DT05UQUlORVJfREFUQX1fX3NlYXJjaC1pbnB1dC1jb250YWluZXJfX2lucHV0YDtcbmNvbnN0IENMQVNTX05BTUVfQ09OVEFJTkVSX0RBVEFfU0VMRUNUSU9OUzogc3RyaW5nID0gYCR7Q0xBU1NfTkFNRV9DT05UQUlORVJfREFUQX1fX3NlbGVjdGlvbnNgO1xuY29uc3QgQ0xBU1NfTkFNRV9DT05UQUlORVJfREFUQV9TRUxFQ1RJT05TX0FMTDogc3RyaW5nID0gYCR7Q0xBU1NfTkFNRV9DT05UQUlORVJfREFUQV9TRUxFQ1RJT05TfV9fYWxsYDtcbmNvbnN0IENMQVNTX05BTUVfQ09OVEFJTkVSX0RBVEFfU0VMRUNUSU9OU19OT05FOiBzdHJpbmcgPSBgJHtDTEFTU19OQU1FX0NPTlRBSU5FUl9EQVRBX1NFTEVDVElPTlN9X19ub25lYDtcbmNvbnN0IENMQVNTX05BTUVfQ09OVEFJTkVSX0hFQUQ6IHN0cmluZyA9IGAke0NMQVNTX05BTUVfQ09OVEFJTkVSfV9faGVhZGA7XG5jb25zdCBDTEFTU19OQU1FX0NPTlRBSU5FUl9IRUFEX0xJTks6IHN0cmluZyA9IGAke0NMQVNTX05BTUVfQ09OVEFJTkVSX0hFQUR9X19saW5rYDtcbmNvbnN0IENMQVNTX05BTUVfQ09OVEFJTkVSX0hFQURfTElOS19FTkFCTEVEOiBzdHJpbmcgPSBgJHtDTEFTU19OQU1FX0NPTlRBSU5FUl9IRUFEX0xJTkt9LS1lbmFibGVkYDtcbmNvbnN0IENMQVNTX05BTUVfQ1VSUkVOVF9DT1VOVEVSOiBzdHJpbmcgPSBgJHtDTEFTU19OQU1FfS1jdXJyZW50X2NvdW50ZXJgO1xuY29uc3QgQ0xBU1NfTkFNRV9GRUVEQkFDSzogc3RyaW5nID0gYCR7Q0xBU1NfTkFNRX0tZmVlZGJhY2tgO1xuY29uc3QgQ0xBU1NfTkFNRV9GRUVEQkFDS19ET05FOiBzdHJpbmcgPSBgJHtDTEFTU19OQU1FX0ZFRURCQUNLfS0tZG9uZWA7XG5jb25zdCBDTEFTU19OQU1FX0xBQkVMOiBzdHJpbmcgPSBgJHtDTEFTU19OQU1FfS1sYWJlbGA7XG5jb25zdCBDTEFTU19OQU1FX0xBQkVMX0RPTkU6IHN0cmluZyA9IGAke0NMQVNTX05BTUVfTEFCRUx9LS1kb25lYDtcbmNvbnN0IENMQVNTX05BTUVfTEFCRUxfTEFTVF9TRUxFQ1RFRDogc3RyaW5nID0gYCR7Q0xBU1NfTkFNRV9MQUJFTH0tLWxhc3Qtc2VsZWN0ZWRgO1xuY29uc3QgQ0xBU1NfTkFNRV9MQUJFTF9TRUxFQ1RFRDogc3RyaW5nID0gYCR7Q0xBU1NfTkFNRV9MQUJFTH0tLXNlbGVjdGVkYDtcblxuY29uc3QgREVGQVVMVF9TRVRUSU5HOiBTZXR0aW5nID0ge1xuXHRkb2NsZWFudXA6IHtcblx0XHRkZWZhdWx0OiBmYWxzZSxcblx0XHRsYWJlbF9pMThuOiAnZG9jbGVhbnVwcHJlZicsXG5cdH0sXG5cdGVkaXRwYWdlczoge1xuXHRcdGRlZmF1bHQ6IHRydWUsXG5cdFx0bGFiZWxfaTE4bjogJ2VkaXRwYWdlc3ByZWYnLFxuXHR9LFxuXHRtaW5vcjoge1xuXHRcdGRlZmF1bHQ6IGZhbHNlLFxuXHRcdGxhYmVsX2kxOG46ICdtaW5vcnByZWYnLFxuXHR9LFxuXHRzdWJjYXRjb3VudDoge1xuXHRcdGRlZmF1bHQ6IDUwLFxuXHRcdGxhYmVsX2kxOG46ICdzdWJjYXRjb3VudHByZWYnLFxuXHR9LFxuXHR3YXRjaGxpc3Q6IHtcblx0XHRkZWZhdWx0OiAncHJlZmVyZW5jZXMnLFxuXHRcdGxhYmVsX2kxOG46ICd3YXRjaGxpc3RwcmVmJyxcblx0XHRzZWxlY3RfaTE4bjoge1xuXHRcdFx0d2F0Y2hfbm9jaGFuZ2U6ICdub2NoYW5nZScsXG5cdFx0XHR3YXRjaF9wcmVmOiAncHJlZmVyZW5jZXMnLFxuXHRcdFx0d2F0Y2hfdW53YXRjaDogJ3Vud2F0Y2gnLFxuXHRcdFx0d2F0Y2hfd2F0Y2g6ICd3YXRjaCcsXG5cdFx0fSxcblx0fSxcbn07XG5cbmNvbnN0IFZBUklBTlRTOiBzdHJpbmdbXSA9IFsnemgtaGFucycsICd6aC1oYW50JywgJ3poLWNuJywgJ3poLW15JywgJ3poLXNnJywgJ3poLWhrJywgJ3poLW1vJywgJ3poLXR3J107XG5cbmV4cG9ydCB7XG5cdENMQVNTX05BTUUsXG5cdENMQVNTX05BTUVfQ09OVEFJTkVSLFxuXHRDTEFTU19OQU1FX0NPTlRBSU5FUl9EQVRBLFxuXHRDTEFTU19OQU1FX0NPTlRBSU5FUl9EQVRBX0NBVEVHT1JZX0xJU1QsXG5cdENMQVNTX05BTUVfQ09OVEFJTkVSX0RBVEFfQ0FURUdPUllfTElTVF9BQ1RJT04sXG5cdENMQVNTX05BTUVfQ09OVEFJTkVSX0RBVEFfQ0FURUdPUllfTElTVF9OT19GT1VORCxcblx0Q0xBU1NfTkFNRV9DT05UQUlORVJfREFUQV9NQVJLX0NPVU5URVIsXG5cdENMQVNTX05BTUVfQ09OVEFJTkVSX0RBVEFfU0VBUkNIX0lOUFVUX0NPTlRBSU5FUl9JTlBVVCxcblx0Q0xBU1NfTkFNRV9DT05UQUlORVJfREFUQV9TRUxFQ1RJT05TLFxuXHRDTEFTU19OQU1FX0NPTlRBSU5FUl9EQVRBX1NFTEVDVElPTlNfQUxMLFxuXHRDTEFTU19OQU1FX0NPTlRBSU5FUl9EQVRBX1NFTEVDVElPTlNfTk9ORSxcblx0Q0xBU1NfTkFNRV9DT05UQUlORVJfSEVBRCxcblx0Q0xBU1NfTkFNRV9DT05UQUlORVJfSEVBRF9MSU5LLFxuXHRDTEFTU19OQU1FX0NPTlRBSU5FUl9IRUFEX0xJTktfRU5BQkxFRCxcblx0Q0xBU1NfTkFNRV9DVVJSRU5UX0NPVU5URVIsXG5cdENMQVNTX05BTUVfRkVFREJBQ0ssXG5cdENMQVNTX05BTUVfRkVFREJBQ0tfRE9ORSxcblx0Q0xBU1NfTkFNRV9MQUJFTCxcblx0Q0xBU1NfTkFNRV9MQUJFTF9ET05FLFxuXHRDTEFTU19OQU1FX0xBQkVMX0xBU1RfU0VMRUNURUQsXG5cdENMQVNTX05BTUVfTEFCRUxfU0VMRUNURUQsXG5cdERFRkFVTFRfU0VUVElORyxcblx0VkFSSUFOVFMsXG59O1xuIiwgImltcG9ydCB0eXBlIHtNZXNzYWdlS2V5fSBmcm9tICcuL3R5cGVzJztcblxuY29uc3Qge3dnVXNlckxhbmd1YWdlfSA9IG13LmNvbmZpZy5nZXQoKTtcblxuY29uc3QgREVGQVVMVF9NRVNTQUdFUyA9IHtcblx0Ly8gYXMgaW4gMTcgZmlsZXMgc2VsZWN0ZWRcblx0J2NhdC1hLWxvdC1maWxlcy1zZWxlY3RlZCc6ICd7e1BMVVJBTDokMXxPbmUgZmlsZXwkMSBmaWxlc319IHNlbGVjdGVkLicsXG5cdC8vIEFjdGlvbnNcblx0J2NhdC1hLWxvdC1jb3B5JzogJ0NvcHknLFxuXHQnY2F0LWEtbG90LW1vdmUnOiAnTW92ZScsXG5cdCdjYXQtYS1sb3QtYWRkJzogJ0FkZCcsXG5cdCdjYXQtYS1sb3QtcmVtb3ZlLWZyb20tY2F0JzogJ1JlbW92ZSBmcm9tIHRoaXMgY2F0ZWdvcnknLFxuXHQnY2F0LWEtbG90LWVudGVyLW5hbWUnOiAnRW50ZXIgY2F0ZWdvcnkgbmFtZScsXG5cdCdjYXQtYS1sb3Qtc2VsZWN0JzogJ1NlbGVjdCcsXG5cdCdjYXQtYS1sb3QtYWxsJzogJ2FsbCcsXG5cdCdjYXQtYS1sb3Qtbm9uZSc6ICdub25lJyxcblx0J2NhdC1hLWxvdC1ub25lLXNlbGVjdGVkJzogJ05vIGZpbGVzIHNlbGVjdGVkIScsXG5cdC8vIFByZWZlcmVuY2VzXG5cdCdjYXQtYS1sb3Qtd2F0Y2hsaXN0cHJlZic6ICdXYXRjaGxpc3QgcHJlZmVyZW5jZSBjb25jZXJuaW5nIGZpbGVzIGVkaXRlZCB3aXRoIENhdC1BLUxvdCcsXG5cdCdjYXQtYS1sb3Qtd2F0Y2hfcHJlZic6ICdBY2NvcmRpbmcgdG8geW91ciBnZW5lcmFsIHByZWZlcmVuY2VzJyxcblx0J2NhdC1hLWxvdC13YXRjaF9ub2NoYW5nZSc6ICdEbyBub3QgY2hhbmdlIHdhdGNoc3RhdHVzJyxcblx0J2NhdC1hLWxvdC13YXRjaF93YXRjaCc6ICdXYXRjaCBwYWdlcyBlZGl0ZWQgd2l0aCBDYXQtQS1Mb3QnLFxuXHQnY2F0LWEtbG90LXdhdGNoX3Vud2F0Y2gnOiAnUmVtb3ZlIHBhZ2VzIHdoaWxlIGVkaXRpbmcgd2l0aCBDYXQtQS1Mb3QgZnJvbSB5b3VyIHdhdGNobGlzdCcsXG5cdCdjYXQtYS1sb3QtbWlub3JwcmVmJzpcblx0XHRcIk1hcmsgZWRpdHMgYXMgbWlub3IgKGlmIHlvdSBnZW5lcmFsbHkgbWFyayB5b3VyIGVkaXRzIGFzIG1pbm9yLCB0aGlzIHdvbid0IGNoYW5nZSBhbnl0aGluZylcIixcblx0J2NhdC1hLWxvdC1lZGl0cGFnZXNwcmVmJzogJ0FsbG93IGNhdGVnb3Jpc2luZyBwYWdlcyAoaW5jbHVkaW5nIGNhdGVnb3JpZXMpIHRoYXQgYXJlIG5vdCBmaWxlcycsXG5cdCdjYXQtYS1sb3QtZG9jbGVhbnVwcHJlZic6ICdSZW1vdmUge3tDaGVjayBjYXRlZ29yaWVzfX0gYW5kIG90aGVyIG1pbm9yIGNsZWFudXAnLFxuXHQnY2F0LWEtbG90LXN1YmNhdGNvdW50cHJlZic6ICdTdWItY2F0ZWdvcmllcyB0byBzaG93IGF0IG1vc3QnLFxuXHQvLyBQcm9ncmVzc1xuXHQnY2F0LWEtbG90LWxvYWRpbmcnOiAnTG9hZGluZy4uLicsXG5cdCdjYXQtYS1sb3QtZWRpdGluZyc6ICdFZGl0aW5nIHBhZ2UnLFxuXHQnY2F0LWEtbG90LW9mJzogJ29mICcsXG5cdCdjYXQtYS1sb3Qtc2tpcHBlZC1hbHJlYWR5Jzpcblx0XHQnVGhlIGZvbGxvd2luZyB7e1BMVVJBTDokMXxwYWdlIHdhc3wkMSBwYWdlcyB3ZXJlfX0gc2tpcHBlZCwgYmVjYXVzZSB0aGUgcGFnZSB3YXMgYWxyZWFkeSBpbiB0aGUgY2F0ZWdvcnk6Jyxcblx0J2NhdC1hLWxvdC1za2lwcGVkLW5vdC1mb3VuZCc6XG5cdFx0J1RoZSBmb2xsb3dpbmcge3tQTFVSQUw6JDF8cGFnZSB3YXN8JDEgcGFnZXMgd2VyZX19IHNraXBwZWQsIGJlY2F1c2UgdGhlIG9sZCBjYXRlZ29yeSBjb3VsZCBub3QgYmUgZm91bmQ6Jyxcblx0J2NhdC1hLWxvdC1za2lwcGVkLXNlcnZlcic6XG5cdFx0XCJUaGUgZm9sbG93aW5nIHt7UExVUkFMOiQxfHBhZ2V8JDEgcGFnZXN9fSBjb3VsZG4ndCBiZSBjaGFuZ2VkLCBzaW5jZSB0aGVyZSB3ZXJlIHByb2JsZW1zIGNvbm5lY3RpbmcgdG8gdGhlIHNlcnZlcjpcIixcblx0J2NhdC1hLWxvdC1hbGwtZG9uZSc6ICdBbGwgcGFnZXMgYXJlIHByb2Nlc3NlZC4nLFxuXHQnY2F0LWEtbG90LWRvbmUnOiAnRG9uZSEnLFxuXHQnY2F0LWEtbG90LWFkZGVkLWNhdCc6ICdBZGRlZCBjYXRlZ29yeSAkMScsXG5cdCdjYXQtYS1sb3QtY29waWVkLWNhdCc6ICdDb3BpZWQgdG8gY2F0ZWdvcnkgJDEnLFxuXHQnY2F0LWEtbG90LW1vdmVkLWNhdCc6ICdNb3ZlZCB0byBjYXRlZ29yeSAkMScsXG5cdCdjYXQtYS1sb3QtcmVtb3ZlZC1jYXQnOiAnUmVtb3ZlZCBmcm9tIGNhdGVnb3J5ICQxJyxcblx0J2NhdC1hLWxvdC1yZXR1cm4tdG8tcGFnZSc6ICdSZXR1cm4gdG8gcGFnZScsXG5cdCdjYXQtYS1sb3QtY2F0LW5vdC1mb3VuZCc6ICdDYXRlZ29yeSBub3QgZm91bmQuJyxcblx0Ly8gU3VtbWFyaWVzOlxuXHQnY2F0LWEtbG90LXN1bW1hcnktYWRkJzogJ1tbSGVscDpDYXQtYS1sb3R8Q2F0LWEtbG90XV06IEFkZGluZyBbW0NhdGVnb3J5OiQxXV0nLFxuXHQnY2F0LWEtbG90LXN1bW1hcnktY29weSc6ICdbW0hlbHA6Q2F0LWEtbG90fENhdC1hLWxvdF1dOiBDb3B5aW5nIGZyb20gW1tDYXRlZ29yeTokMV1dIHRvIFtbQ2F0ZWdvcnk6JDJdXScsXG5cdCdjYXQtYS1sb3Qtc3VtbWFyeS1tb3ZlJzogJ1tbSGVscDpDYXQtYS1sb3R8Q2F0LWEtbG90XV06IE1vdmluZyBmcm9tIFtbQ2F0ZWdvcnk6JDFdXSB0byBbW0NhdGVnb3J5OiQyXV0nLFxuXHQnY2F0LWEtbG90LXN1bW1hcnktcmVtb3ZlJzogJ1tbSGVscDpDYXQtYS1sb3R8Q2F0LWEtbG90XV06IFJlbW92aW5nIGZyb20gW1tDYXRlZ29yeTokMV1dJyxcbn0gc2F0aXNmaWVzIFJlY29yZDxNZXNzYWdlS2V5LCBzdHJpbmc+O1xuXG5jb25zdCBzZXRNZXNzYWdlcyA9ICgpOiB2b2lkID0+IHtcblx0LyohIENhdC1hLWxvdCBtZXNzYWdlcyB8IENDLUJZLVNBLTQuMCA8aHR0cHM6Ly9xd2JrLmNjL0g6Q0MtQlktU0EtNC4wPiAqL1xuXHRpZiAod2dVc2VyTGFuZ3VhZ2UgPT09ICdlbicpIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRpZiAoWyd6aC1oYW50JywgJ3poLWhrJywgJ3poLW1vJywgJ3poLXR3J10uaW5jbHVkZXMod2dVc2VyTGFuZ3VhZ2UpKSB7XG5cdFx0bXcubWVzc2FnZXMuc2V0PHR5cGVvZiBERUZBVUxUX01FU1NBR0VTPih7XG5cdFx0XHQvLyBhcyBpbiAxNyBmaWxlcyBzZWxlY3RlZFxuXHRcdFx0J2NhdC1hLWxvdC1maWxlcy1zZWxlY3RlZCc6ICckMeWAi+aWh+S7tuW3sumBuOaThycsXG5cdFx0XHQvLyBBY3Rpb25zXG5cdFx0XHQnY2F0LWEtbG90LWNvcHknOiAn6KSH6KO9Jyxcblx0XHRcdCdjYXQtYS1sb3QtbW92ZSc6ICfnp7vli5UnLFxuXHRcdFx0J2NhdC1hLWxvdC1hZGQnOiAn5aKe5YqgJyxcblx0XHRcdCdjYXQtYS1sb3QtcmVtb3ZlLWZyb20tY2F0JzogJ+W+nuatpOWIhumhnuenu+mZpCcsXG5cdFx0XHQnY2F0LWEtbG90LWVudGVyLW5hbWUnOiAn6Ly45YWl5YiG6aGe5ZCN56ixJyxcblx0XHRcdCdjYXQtYS1sb3Qtc2VsZWN0JzogJ+mBuOaThycsXG5cdFx0XHQnY2F0LWEtbG90LWFsbCc6ICflhajpg6gnLFxuXHRcdFx0J2NhdC1hLWxvdC1ub25lJzogJ+eEoScsXG5cdFx0XHQnY2F0LWEtbG90LW5vbmUtc2VsZWN0ZWQnOiAn5rKS5pyJ6YG45pOH5paH5Lu277yBJyxcblx0XHRcdC8vIFByZWZlcmVuY2VzXG5cdFx0XHQnY2F0LWEtbG90LXdhdGNobGlzdHByZWYnOiAn5L2/55SoQ2F0LUEtTG9057eo6Lyv5paH5Lu25pmC55qE55uj6KaW5YiX6KGo6YG46aCFJyxcblx0XHRcdCdjYXQtYS1sb3Qtd2F0Y2hfcHJlZic6ICfoiIfns7vntbHlj4PmlbjoqK3nva7nm7jlkIwnLFxuXHRcdFx0J2NhdC1hLWxvdC13YXRjaF9ub2NoYW5nZSc6ICfkuI3opoHmm7TmlLnnm6Poppbni4DmhYsnLFxuXHRcdFx0J2NhdC1hLWxvdC13YXRjaF93YXRjaCc6ICfnm6Poppbkvb/nlKhDYXQtQS1Mb3Tnt6jovK/nmoTpoIHpnaInLFxuXHRcdFx0J2NhdC1hLWxvdC13YXRjaF91bndhdGNoJzogJ+Wwh+S9v+eUqENhdC1BLUxvdOe3qOi8r+eahOmggemdouW+nuebo+imluWIl+ihqOenu+mZpCcsXG5cdFx0XHQnY2F0LWEtbG90LW1pbm9ycHJlZic6XG5cdFx0XHRcdCflsIfnt6jovK/mqJnoqJjniLLlsI/kv67mlLnvvIjoi6XmgqjlnKjns7vntbHlj4PmlbjoqK3nva7kuK3lt7LoqK3nva7lsIfmiYDmnInnt6jovK/mqJnoqJjniLLlsI/kv67mlLnvvIzmraTpgbjpoIXkuI3mnIPlsI3nj77mnInooYzniLLpgLLooYzmlLnli5XvvIknLFxuXHRcdFx0J2NhdC1hLWxvdC1lZGl0cGFnZXNwcmVmJzogJ+WFgeioseWwjeS4jeaYr+aWh+S7tueahOmggemdouWSjOWtkOWIhumhnumAsuihjOWIhumhnuaTjeS9nCcsXG5cdFx0XHQnY2F0LWEtbG90LWRvY2xlYW51cHByZWYnOiAn56e76Zmke3tDaGVjayBjYXRlZ29yaWVzfX3kuKbpgLLooYzlhbbku5bntLDnr4DmuIXnkIYnLFxuXHRcdFx0J2NhdC1hLWxvdC1zdWJjYXRjb3VudHByZWYnOiAn5pyA5aSa6aGv56S655qE5a2Q5YiG6aGe5pW46YePJyxcblx0XHRcdC8vIFByb2dyZXNzXG5cdFx0XHQnY2F0LWEtbG90LWxvYWRpbmcnOiAn5q2j5Zyo5Yqg6LyJ4oCm4oCmJyxcblx0XHRcdCdjYXQtYS1sb3QtZWRpdGluZyc6ICfmraPlnKjnt6jovK/poIHpnaInLFxuXHRcdFx0J2NhdC1hLWxvdC1vZic6ICfvvIzlhbHmnIknLFxuXHRcdFx0J2NhdC1hLWxvdC1za2lwcGVkLWFscmVhZHknOiAn5Lul5LiL6aCB6Z2i5bey6Lez6YGO77yM5Zug54iy6aCB6Z2i5bey57aT5Zyo5YiG6aGe5Lit77yaJyxcblx0XHRcdCdjYXQtYS1sb3Qtc2tpcHBlZC1ub3QtZm91bmQnOiAn5Lul5LiL6aCB6Z2i5bey6Lez6YGO77yM5Zug54iy5om+5LiN5Yiw54++5pyJ5YiG6aGe77yaJyxcblx0XHRcdCdjYXQtYS1sb3Qtc2tpcHBlZC1zZXJ2ZXInOiAn5Lul5LiL6aCB6Z2i54Sh5rOV57eo6Lyv77yM5Zug54iy6YCj5o6l5pyN5YuZ5Zmo5Ye66Yyv77yaJyxcblx0XHRcdCdjYXQtYS1sb3QtYWxsLWRvbmUnOiAn5YWo6YOo6aCB6Z2i5bey6JmV55CG44CCJyxcblx0XHRcdCdjYXQtYS1sb3QtZG9uZSc6ICflt7LlrozmiJDvvIEnLFxuXHRcdFx0J2NhdC1hLWxvdC1hZGRlZC1jYXQnOiAn5bey5Yqg5YWl5YiG6aGeJyxcblx0XHRcdCdjYXQtYS1sb3QtY29waWVkLWNhdCc6ICflt7LopIfoo73liLDliIbpoZ4nLFxuXHRcdFx0J2NhdC1hLWxvdC1tb3ZlZC1jYXQnOiAn5bey56e75YuV5Yiw5YiG6aGeJyxcblx0XHRcdCdjYXQtYS1sb3QtcmVtb3ZlZC1jYXQnOiAn5bey5b6e5YiG6aGe56e76ZmkJyxcblx0XHRcdCdjYXQtYS1sb3QtcmV0dXJuLXRvLXBhZ2UnOiAn6L+U5Zue5Yiw6aCB6Z2iJyxcblx0XHRcdCdjYXQtYS1sb3QtY2F0LW5vdC1mb3VuZCc6ICfmib7kuI3liLDliIbpoZ7jgIInLFxuXHRcdFx0Ly8gU3VtbWFyaWVzXG5cdFx0XHQnY2F0LWEtbG90LXN1bW1hcnktYWRkJzogJ1tbSGVscDpDYXQtYS1sb3R8Q2F0LWEtbG90XV3vvJrliqDlhaXliIbpoZ5bW0NhdGVnb3J5OiQxXV0nLFxuXHRcdFx0J2NhdC1hLWxvdC1zdW1tYXJ5LWNvcHknOiAnW1tIZWxwOkNhdC1hLWxvdHxDYXQtYS1sb3RdXe+8muWIhumhnumWk+ikh+ijve+8muW+nltbQ2F0ZWdvcnk6JDFdXeWIsFtbQ2F0ZWdvcnk6JDJdXScsXG5cdFx0XHQnY2F0LWEtbG90LXN1bW1hcnktbW92ZSc6ICdbW0hlbHA6Q2F0LWEtbG90fENhdC1hLWxvdF1d77ya5YiG6aGe6ZaT56e75YuV77ya5b6eW1tDYXRlZ29yeTokMV1d5YiwW1tDYXRlZ29yeTokMl1dJyxcblx0XHRcdCdjYXQtYS1sb3Qtc3VtbWFyeS1yZW1vdmUnOiAnW1tIZWxwOkNhdC1hLWxvdHxDYXQtYS1sb3RdXe+8muW+nuWIhumhnuenu+mZpO+8mltbQ2F0ZWdvcnk6JDFdXScsXG5cdFx0fSk7XG5cdH0gZWxzZSB7XG5cdFx0bXcubWVzc2FnZXMuc2V0PHR5cGVvZiBERUZBVUxUX01FU1NBR0VTPih7XG5cdFx0XHQvLyBhcyBpbiAxNyBmaWxlcyBzZWxlY3RlZFxuXHRcdFx0J2NhdC1hLWxvdC1maWxlcy1zZWxlY3RlZCc6ICflt7LpgInmi6kkMeS4qumhtemdouaIluaWh+S7ticsXG5cdFx0XHQvLyBBY3Rpb25zXG5cdFx0XHQnY2F0LWEtbG90LWNvcHknOiAn5aSN5Yi2Jyxcblx0XHRcdCdjYXQtYS1sb3QtbW92ZSc6ICfnp7vliqgnLFxuXHRcdFx0J2NhdC1hLWxvdC1hZGQnOiAn5aKe5YqgJyxcblx0XHRcdCdjYXQtYS1sb3QtcmVtb3ZlLWZyb20tY2F0JzogJ+S7juatpOWIhuexu+enu+mZpCcsXG5cdFx0XHQnY2F0LWEtbG90LWVudGVyLW5hbWUnOiAn6L6T5YWl5YiG57G75ZCN56ewJyxcblx0XHRcdCdjYXQtYS1sb3Qtc2VsZWN0JzogJ+mAieaLqScsXG5cdFx0XHQnY2F0LWEtbG90LWFsbCc6ICflhajpg6gnLFxuXHRcdFx0J2NhdC1hLWxvdC1ub25lJzogJ+aXoCcsXG5cdFx0XHQnY2F0LWEtbG90LW5vbmUtc2VsZWN0ZWQnOiAn5rKh5pyJ6YCJ5oup5Lu75L2V6aG16Z2i5oiW5paH5Lu277yBJyxcblx0XHRcdC8vIFByZWZlcmVuY2VzXG5cdFx0XHQnY2F0LWEtbG90LXdhdGNobGlzdHByZWYnOiAn5L2/55SoQ2F0LWEtbG9057yW6L6R5paH5Lu25pe255qE55uR6KeG5YiX6KGo6YCJ6aG5Jyxcblx0XHRcdCdjYXQtYS1sb3Qtd2F0Y2hfcHJlZic6ICfkuI7ns7vnu5/lj4LmlbDorr7nva7nm7jlkIwnLFxuXHRcdFx0J2NhdC1hLWxvdC13YXRjaF9ub2NoYW5nZSc6ICfkuI3opoHmm7TmlLnnm5Hop4bnirbmgIEnLFxuXHRcdFx0J2NhdC1hLWxvdC13YXRjaF93YXRjaCc6ICfnm5Hop4bkvb/nlKhDYXQtYS1sb3TnvJbovpHnmoTpobXpnaInLFxuXHRcdFx0J2NhdC1hLWxvdC13YXRjaF91bndhdGNoJzogJ+WwhuS9v+eUqENhdC1hLWxvdOe8lui+keeahOmhtemdouS7juebkeinhuWIl+ihqOenu+mZpCcsXG5cdFx0XHQnY2F0LWEtbG90LW1pbm9ycHJlZic6XG5cdFx0XHRcdCflsIbnvJbovpHmoIforrDkuLrlsI/kv67mlLnvvIjoi6XmgqjlnKjns7vnu5/lj4LmlbDorr7nva7kuK3lt7Lorr7nva7lsIbmiYDmnInnvJbovpHmoIforrDkuLrlsI/kv67mlLnvvIzmraTpgInpobnkuI3kvJrlr7nnjrDmnInooYzkuLrov5vooYzmlLnliqjvvIknLFxuXHRcdFx0J2NhdC1hLWxvdC1lZGl0cGFnZXNwcmVmJzogJ+WFgeiuuOWvueS4jeaYr+aWh+S7tueahOmhtemdouWSjOWtkOWIhuexu+i/m+ihjOWIhuexu+aTjeS9nCcsXG5cdFx0XHQnY2F0LWEtbG90LWRvY2xlYW51cHByZWYnOiAn56e76Zmke3tDaGVjayBjYXRlZ29yaWVzfX3lubbov5vooYzlhbbku5bnu4boioLmuIXnkIYnLFxuXHRcdFx0J2NhdC1hLWxvdC1zdWJjYXRjb3VudHByZWYnOiAn5pyA5aSa5pi+56S655qE5a2Q5YiG57G75pWw6YePJyxcblx0XHRcdC8vIFByb2dyZXNzXG5cdFx0XHQnY2F0LWEtbG90LWxvYWRpbmcnOiAn5q2j5Zyo5Yqg6L294oCm4oCmJyxcblx0XHRcdCdjYXQtYS1sb3QtZWRpdGluZyc6ICfmraPlnKjnvJbovpHpobXpnaInLFxuXHRcdFx0J2NhdC1hLWxvdC1vZic6ICfvvIzlhbHmnIknLFxuXHRcdFx0J2NhdC1hLWxvdC1za2lwcGVkLWFscmVhZHknOiAn5Lul5LiL6aG16Z2i5bey6Lez6L+H77yM5Zug5Li66aG16Z2i5bey57uP5Zyo5YiG57G75Lit77yaJyxcblx0XHRcdCdjYXQtYS1sb3Qtc2tpcHBlZC1ub3QtZm91bmQnOiAn5Lul5LiL6aG16Z2i5bey6Lez6L+H77yM5Zug5Li65om+5LiN5Yiw546w5pyJ5YiG57G777yaJyxcblx0XHRcdCdjYXQtYS1sb3Qtc2tpcHBlZC1zZXJ2ZXInOiAn5Lul5LiL6aG16Z2i5peg5rOV57yW6L6R77yM5Zug5Li66L+e5o6l5pyN5Yqh5Zmo5Ye66ZSZ77yaJyxcblx0XHRcdCdjYXQtYS1sb3QtYWxsLWRvbmUnOiAn5YWo6YOo6aG16Z2i5bey5aSE55CG44CCJyxcblx0XHRcdCdjYXQtYS1sb3QtZG9uZSc6ICflt7LlrozmiJDvvIEnLFxuXHRcdFx0J2NhdC1hLWxvdC1hZGRlZC1jYXQnOiAn5bey5Yqg5YWl5YiG57G7Jyxcblx0XHRcdCdjYXQtYS1sb3QtY29waWVkLWNhdCc6ICflt7LlpI3liLbliLDliIbnsbsnLFxuXHRcdFx0J2NhdC1hLWxvdC1tb3ZlZC1jYXQnOiAn5bey56e75Yqo5Yiw5YiG57G7Jyxcblx0XHRcdCdjYXQtYS1sb3QtcmVtb3ZlZC1jYXQnOiAn5bey5LuO5YiG57G756e76ZmkJyxcblx0XHRcdCdjYXQtYS1sb3QtcmV0dXJuLXRvLXBhZ2UnOiAn6L+U5Zue5Yiw6aG16Z2iJyxcblx0XHRcdCdjYXQtYS1sb3QtY2F0LW5vdC1mb3VuZCc6ICfmib7kuI3liLDliIbnsbvjgIInLFxuXHRcdFx0Ly8gU3VtbWFyaWVzXG5cdFx0XHQnY2F0LWEtbG90LXN1bW1hcnktYWRkJzogJ1tbSGVscDpDYXQtYS1sb3R8Q2F0LWEtbG90XV3vvJrliqDlhaXliIbnsbtbW0NhdGVnb3J5OiQxXV0nLFxuXHRcdFx0J2NhdC1hLWxvdC1zdW1tYXJ5LWNvcHknOiAnW1tIZWxwOkNhdC1hLWxvdHxDYXQtYS1sb3RdXe+8muWIhuexu+mXtOWkjeWItu+8muS7jltbQ2F0ZWdvcnk6JDFdXeWIsFtbQ2F0ZWdvcnk6JDJdXScsXG5cdFx0XHQnY2F0LWEtbG90LXN1bW1hcnktbW92ZSc6ICdbW0hlbHA6Q2F0LWEtbG90fENhdC1hLWxvdF1d77ya5YiG57G76Ze056e75Yqo77ya5LuOW1tDYXRlZ29yeTokMV1d5YiwW1tDYXRlZ29yeTokMl1dJyxcblx0XHRcdCdjYXQtYS1sb3Qtc3VtbWFyeS1yZW1vdmUnOiAnW1tIZWxwOkNhdC1hLWxvdHxDYXQtYS1sb3RdXe+8muS7juWIhuexu+enu+mZpO+8mltbQ2F0ZWdvcnk6JDFdXScsXG5cdFx0fSk7XG5cdH1cbn07XG5cbmV4cG9ydCB7REVGQVVMVF9NRVNTQUdFUywgc2V0TWVzc2FnZXN9O1xuIiwgImltcG9ydCAqIGFzIE9QVElPTlMgZnJvbSAnLi4vb3B0aW9ucy5qc29uJztcbmltcG9ydCB7XG5cdENMQVNTX05BTUUsXG5cdENMQVNTX05BTUVfQ09OVEFJTkVSLFxuXHRDTEFTU19OQU1FX0NPTlRBSU5FUl9EQVRBLFxuXHRDTEFTU19OQU1FX0NPTlRBSU5FUl9EQVRBX0NBVEVHT1JZX0xJU1QsXG5cdENMQVNTX05BTUVfQ09OVEFJTkVSX0RBVEFfQ0FURUdPUllfTElTVF9BQ1RJT04sXG5cdENMQVNTX05BTUVfQ09OVEFJTkVSX0RBVEFfQ0FURUdPUllfTElTVF9OT19GT1VORCxcblx0Q0xBU1NfTkFNRV9DT05UQUlORVJfREFUQV9NQVJLX0NPVU5URVIsXG5cdENMQVNTX05BTUVfQ09OVEFJTkVSX0RBVEFfU0VBUkNIX0lOUFVUX0NPTlRBSU5FUl9JTlBVVCxcblx0Q0xBU1NfTkFNRV9DT05UQUlORVJfREFUQV9TRUxFQ1RJT05TLFxuXHRDTEFTU19OQU1FX0NPTlRBSU5FUl9EQVRBX1NFTEVDVElPTlNfQUxMLFxuXHRDTEFTU19OQU1FX0NPTlRBSU5FUl9EQVRBX1NFTEVDVElPTlNfTk9ORSxcblx0Q0xBU1NfTkFNRV9DT05UQUlORVJfSEVBRCxcblx0Q0xBU1NfTkFNRV9DT05UQUlORVJfSEVBRF9MSU5LLFxuXHRDTEFTU19OQU1FX0NPTlRBSU5FUl9IRUFEX0xJTktfRU5BQkxFRCxcblx0Q0xBU1NfTkFNRV9DVVJSRU5UX0NPVU5URVIsXG5cdENMQVNTX05BTUVfRkVFREJBQ0ssXG5cdENMQVNTX05BTUVfRkVFREJBQ0tfRE9ORSxcblx0Q0xBU1NfTkFNRV9MQUJFTCxcblx0Q0xBU1NfTkFNRV9MQUJFTF9ET05FLFxuXHRDTEFTU19OQU1FX0xBQkVMX1NFTEVDVEVELFxuXHRERUZBVUxUX1NFVFRJTkcsXG5cdFZBUklBTlRTLFxufSBmcm9tICcuL2NvbnN0YW50JztcbmltcG9ydCB7REVGQVVMVF9NRVNTQUdFUywgc2V0TWVzc2FnZXN9IGZyb20gJy4vbWVzc2FnZXMnO1xuaW1wb3J0IHR5cGUge01lc3NhZ2VLZXksIFNldHRpbmd9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHtnZXRCb2R5LCB1bmlxdWVBcnJheX0gZnJvbSAnZXh0LmdhZGdldC5VdGlsJztcbmltcG9ydCBSZWFjdCBmcm9tICdleHQuZ2FkZ2V0LlJlYWN0JztcbmltcG9ydCB7YXBpfSBmcm9tICcuL2FwaSc7XG5cbmNvbnN0IHt3Z0Nhbm9uaWNhbFNwZWNpYWxQYWdlTmFtZSwgd2dGb3JtYXR0ZWROYW1lc3BhY2VzLCB3Z05hbWVzcGFjZUlkcywgd2dOYW1lc3BhY2VOdW1iZXIsIHdnVGl0bGV9ID0gbXcuY29uZmlnLmdldCgpO1xuXG4vKipcbiAqIENoYW5nZXMgY2F0ZWdvcnkgb2YgbXVsdGlwbGUgZmlsZXNcbiAqL1xuY29uc3QgY2F0QUxvdCA9ICgpOiB2b2lkID0+IHtcblx0LyohIENhdC1hLWxvdCB8IENDLUJZLVNBLTQuMCA8aHR0cHM6Ly9xd2JrLmNjL0g6Q0MtQlktU0EtNC4wPiAqL1xuXHRjbGFzcyBDQUwge1xuXHRcdHB1YmxpYyBzdGF0aWMgaXNTZWFyY2hNb2RlID0gZmFsc2U7XG5cblx0XHRwcml2YXRlIHN0YXRpYyByZWFkb25seSBNRVNTQUdFUzogUmVjb3JkPE1lc3NhZ2VLZXksIHN0cmluZz4gPSBERUZBVUxUX01FU1NBR0VTO1xuXHRcdHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfU0VUVElORzogU2V0dGluZyA9IERFRkFVTFRfU0VUVElORztcblxuXHRcdHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IEFQSV9UQUc6IHN0cmluZyA9IE9QVElPTlMuYXBpVGFnO1xuXHRcdHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IFRBUkdFVF9OQU1FU1BBQ0U6IG51bWJlciA9IE9QVElPTlMudGFyZ2V0TmFtZXNwYWNlO1xuXG5cdFx0cHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgQ1VSUkVOVF9DQVRFR1JPWTogc3RyaW5nID0gd2dUaXRsZTtcblxuXHRcdHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IHdnRm9ybWF0dGVkTmFtZXNwYWNlczogUmVjb3JkPG51bWJlciwgc3RyaW5nPiA9IHdnRm9ybWF0dGVkTmFtZXNwYWNlcztcblx0XHRwcml2YXRlIHN0YXRpYyByZWFkb25seSB3Z05hbWVzcGFjZUlkczogUmVjb3JkPHN0cmluZywgbnVtYmVyPiA9IHdnTmFtZXNwYWNlSWRzO1xuXG5cdFx0cHJpdmF0ZSBzdGF0aWMgaXNBdXRvQ29tcGxldGVJbml0ID0gZmFsc2U7XG5cblx0XHRwcml2YXRlIHN0YXRpYyBhcGkgPSBhcGk7XG5cblx0XHRwcml2YXRlIHN0YXRpYyBhbHJlYWR5VGhlcmU6IHN0cmluZ1tdID0gW107XG5cdFx0cHJpdmF0ZSBzdGF0aWMgY29ubmVjdGlvbkVycm9yOiBzdHJpbmdbXSA9IFtdO1xuXHRcdHByaXZhdGUgc3RhdGljIG5vdEZvdW5kOiBzdHJpbmdbXSA9IFtdO1xuXHRcdHByaXZhdGUgc3RhdGljIGNvdW50ZXJDdXJyZW50ID0gMDtcblx0XHRwcml2YXRlIHN0YXRpYyBjb3VudGVyTmVlZGVkID0gMDtcblxuXHRcdHByaXZhdGUgc3RhdGljIGNvdW50ZXJDYXQgPSAwO1xuXHRcdHByaXZhdGUgc3RhdGljIGN1cnJlbnRDYXRlZ29yeSA9ICcnO1xuXG5cdFx0cHJpdmF0ZSBzdGF0aWMgZGlhbG9nSGVpZ2h0ID0gNDUwO1xuXHRcdHByaXZhdGUgc3RhdGljIGVkaXRUb2tlbiA9ICcnO1xuXHRcdHByaXZhdGUgc3RhdGljIGxvY2FsQ2F0TmFtZSA9IHdnRm9ybWF0dGVkTmFtZXNwYWNlc1tDQUwuVEFSR0VUX05BTUVTUEFDRV0gYXMgc3RyaW5nO1xuXG5cdFx0cHJpdmF0ZSBzdGF0aWMgcGFyZW50Q2F0czogc3RyaW5nW10gPSBbXTtcblx0XHRwcml2YXRlIHN0YXRpYyBzdWJDYXRzOiBzdHJpbmdbXSA9IFtdO1xuXG5cdFx0cHJpdmF0ZSBzdGF0aWMgc2V0dGluZ3M6IE5vbk51bGxhYmxlPHR5cGVvZiB3aW5kb3cuQ2F0QUxvdFByZWZzPiA9IHt9O1xuXHRcdHByaXZhdGUgc3RhdGljIHZhcmlhbnRDYWNoZTogUmVjb3JkPHN0cmluZywgc3RyaW5nW10+ID0ge307XG5cdFx0cHJpdmF0ZSBzdGF0aWMgdmFyaWFudENhY2hlMjogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4gPSB7fTtcblxuXHRcdHByaXZhdGUgc3RhdGljICRjb3VudGVyOiBKUXVlcnkgPSAkKCk7XG5cdFx0cHJpdmF0ZSBzdGF0aWMgJHByb2dyZXNzRGlhbG9nOiBKUXVlcnkgPSAkKCk7XG5cdFx0cHJpdmF0ZSBzdGF0aWMgJGxhYmVsczogSlF1ZXJ5ID0gJCgpO1xuXHRcdHByaXZhdGUgc3RhdGljICRzZWxlY3RlZExhYmVsczogSlF1ZXJ5ID0gJCgpO1xuXG5cdFx0cHJpdmF0ZSByZWFkb25seSAkYm9keTogSlF1ZXJ5PEhUTUxCb2R5RWxlbWVudD47XG5cdFx0cHJpdmF0ZSByZWFkb25seSAkY29udGFpbmVyOiBKUXVlcnk7XG5cdFx0cHJpdmF0ZSByZWFkb25seSAkZGF0YUNvbnRhaW5lcjogSlF1ZXJ5O1xuXHRcdHByaXZhdGUgcmVhZG9ubHkgJG1hcmtDb3VudGVyOiBKUXVlcnk7XG5cdFx0cHJpdmF0ZSByZWFkb25seSAkcmVzdWx0TGlzdDogSlF1ZXJ5O1xuXHRcdHByaXZhdGUgcmVhZG9ubHkgJHNlYXJjaElucHV0OiBKUXVlcnk8SFRNTElucHV0RWxlbWVudD47XG5cdFx0cHJpdmF0ZSByZWFkb25seSAkaGVhZDogSlF1ZXJ5O1xuXHRcdHByaXZhdGUgcmVhZG9ubHkgJGxpbms6IEpRdWVyeTxIVE1MQW5jaG9yRWxlbWVudD47XG5cblx0XHRwdWJsaWMgY29uc3RydWN0b3IoJGJvZHk6IEpRdWVyeTxIVE1MQm9keUVsZW1lbnQ+KSB7XG5cdFx0XHRpZiAoIW13Lm1zZygnY2F0LWEtbG90LWxvYWRpbmcnKSkge1xuXHRcdFx0XHRtdy5tZXNzYWdlcy5zZXQoQ0FMLk1FU1NBR0VTKTtcblx0XHRcdH1cblxuXHRcdFx0dGhpcy4kYm9keSA9ICRib2R5O1xuXHRcdFx0Q0FMLmluaXRTZXR0aW5ncygpO1xuXG5cdFx0XHRjb25zdCBjb250YWluZXIgPSAoXG5cdFx0XHRcdDxkaXYgY2xhc3NOYW1lPXtbQ0xBU1NfTkFNRSwgQ0xBU1NfTkFNRV9DT05UQUlORVIsICdub3ByaW50J119PlxuXHRcdFx0XHRcdDxkaXYgY2xhc3NOYW1lPXtDTEFTU19OQU1FX0NPTlRBSU5FUl9EQVRBfT5cblx0XHRcdFx0XHRcdDxkaXYgY2xhc3NOYW1lPXtDTEFTU19OQU1FX0NPTlRBSU5FUl9EQVRBX01BUktfQ09VTlRFUn0gLz5cblx0XHRcdFx0XHRcdDxkaXYgY2xhc3NOYW1lPXtDTEFTU19OQU1FX0NPTlRBSU5FUl9EQVRBX0NBVEVHT1JZX0xJU1R9IC8+XG5cdFx0XHRcdFx0XHQ8ZGl2PlxuXHRcdFx0XHRcdFx0XHQ8aW5wdXRcblx0XHRcdFx0XHRcdFx0XHRjbGFzc05hbWU9e0NMQVNTX05BTUVfQ09OVEFJTkVSX0RBVEFfU0VBUkNIX0lOUFVUX0NPTlRBSU5FUl9JTlBVVH1cblx0XHRcdFx0XHRcdFx0XHRwbGFjZWhvbGRlcj17Q0FMLm1zZygnZW50ZXItbmFtZScpfVxuXHRcdFx0XHRcdFx0XHRcdHR5cGU9XCJ0ZXh0XCJcblx0XHRcdFx0XHRcdFx0XHR2YWx1ZT17Q0FMLmlzU2VhcmNoTW9kZSA/IChtdy51dGlsLmdldFBhcmFtVmFsdWUoJ3NlYXJjaCcpID8/ICcnKSA6ICcnfVxuXHRcdFx0XHRcdFx0XHRcdG9uS2V5RG93bj17KGV2ZW50KTogdm9pZCA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0XHRjb25zdCAkZWxlbWVudCA9ICQ8SFRNTElucHV0RWxlbWVudD4oZXZlbnQuY3VycmVudFRhcmdldCk7XG5cdFx0XHRcdFx0XHRcdFx0XHRpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGNvbnN0IGNhdDogc3RyaW5nID0gJGVsZW1lbnQudmFsKCk/LnRyaW0oKSA/PyAnJztcblx0XHRcdFx0XHRcdFx0XHRcdFx0aWYgKGNhdCkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHRoaXMudXBkYXRlQ2F0cyhjYXQpO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0fX1cblx0XHRcdFx0XHRcdFx0Lz5cblx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0PGRpdiBjbGFzc05hbWU9e0NMQVNTX05BTUVfQ09OVEFJTkVSX0RBVEFfU0VMRUNUSU9OU30+XG5cdFx0XHRcdFx0XHRcdHtbQ0FMLm1zZygnc2VsZWN0JyksICcgJ119XG5cdFx0XHRcdFx0XHRcdDxhXG5cdFx0XHRcdFx0XHRcdFx0Y2xhc3NOYW1lPXtDTEFTU19OQU1FX0NPTlRBSU5FUl9EQVRBX1NFTEVDVElPTlNfQUxMfVxuXHRcdFx0XHRcdFx0XHRcdG9uQ2xpY2s9eygpOiB2b2lkID0+IHtcblx0XHRcdFx0XHRcdFx0XHRcdHRoaXMudG9nZ2xlQWxsKHRydWUpO1xuXHRcdFx0XHRcdFx0XHRcdH19XG5cdFx0XHRcdFx0XHRcdD5cblx0XHRcdFx0XHRcdFx0XHR7Q0FMLm1zZygnYWxsJyl9XG5cdFx0XHRcdFx0XHRcdDwvYT5cblx0XHRcdFx0XHRcdFx0eycg4oCiICd9XG5cdFx0XHRcdFx0XHRcdDxhXG5cdFx0XHRcdFx0XHRcdFx0Y2xhc3NOYW1lPXtDTEFTU19OQU1FX0NPTlRBSU5FUl9EQVRBX1NFTEVDVElPTlNfTk9ORX1cblx0XHRcdFx0XHRcdFx0XHRvbkNsaWNrPXsoKTogdm9pZCA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0XHR0aGlzLnRvZ2dsZUFsbChmYWxzZSk7XG5cdFx0XHRcdFx0XHRcdFx0fX1cblx0XHRcdFx0XHRcdFx0PlxuXHRcdFx0XHRcdFx0XHRcdHtDQUwubXNnKCdub25lJyl9XG5cdFx0XHRcdFx0XHRcdDwvYT5cblx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdDxkaXYgY2xhc3NOYW1lPXtDTEFTU19OQU1FX0NPTlRBSU5FUl9IRUFEfT5cblx0XHRcdFx0XHRcdDxhIGNsYXNzTmFtZT17Q0xBU1NfTkFNRV9DT05UQUlORVJfSEVBRF9MSU5LfT5DYXQtYS1sb3Q8L2E+XG5cdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0KTtcblxuXHRcdFx0dGhpcy4kY29udGFpbmVyID0gJChjb250YWluZXIpIGFzIEpRdWVyeTtcblx0XHRcdHRoaXMuJGNvbnRhaW5lci5hcHBlbmRUbyh0aGlzLiRib2R5KTtcblxuXHRcdFx0dGhpcy4kZGF0YUNvbnRhaW5lciA9IHRoaXMuJGNvbnRhaW5lci5maW5kKGAuJHtDTEFTU19OQU1FX0NPTlRBSU5FUl9EQVRBfWApO1xuXHRcdFx0dGhpcy4kbWFya0NvdW50ZXIgPSB0aGlzLiRkYXRhQ29udGFpbmVyLmZpbmQoYC4ke0NMQVNTX05BTUVfQ09OVEFJTkVSX0RBVEFfTUFSS19DT1VOVEVSfWApO1xuXHRcdFx0dGhpcy4kcmVzdWx0TGlzdCA9IHRoaXMuJGRhdGFDb250YWluZXIuZmluZChgLiR7Q0xBU1NfTkFNRV9DT05UQUlORVJfREFUQV9DQVRFR09SWV9MSVNUfWApO1xuXHRcdFx0dGhpcy4kc2VhcmNoSW5wdXQgPSB0aGlzLiRkYXRhQ29udGFpbmVyLmZpbmQ8SFRNTElucHV0RWxlbWVudD4oXG5cdFx0XHRcdGAuJHtDTEFTU19OQU1FX0NPTlRBSU5FUl9EQVRBX1NFQVJDSF9JTlBVVF9DT05UQUlORVJfSU5QVVR9YFxuXHRcdFx0KTtcblxuXHRcdFx0dGhpcy4kaGVhZCA9IHRoaXMuJGNvbnRhaW5lci5maW5kKGAuJHtDTEFTU19OQU1FX0NPTlRBSU5FUl9IRUFEfWApO1xuXHRcdFx0dGhpcy4kbGluayA9IHRoaXMuJGhlYWQuZmluZDxIVE1MQW5jaG9yRWxlbWVudD4oYC4ke0NMQVNTX05BTUVfQ09OVEFJTkVSX0hFQURfTElOS31gKTtcblx0XHR9XG5cblx0XHRwdWJsaWMgYnVpbGRFbGVtZW50cygpOiB2b2lkIHtcblx0XHRcdGNvbnN0IHJlZ2V4Q2F0OiBSZWdFeHAgPSBuZXcgUmVnRXhwKGBeXFxcXHMqJHtDQUwubG9jYWxpemVkUmVnZXgoQ0FMLlRBUkdFVF9OQU1FU1BBQ0UsICdDYXRlZ29yeScpfTpgLCAnJyk7XG5cdFx0XHRsZXQgaXNDb21wb3NpdGlvblN0YXJ0OiBib29sZWFuO1xuXG5cdFx0XHR0aGlzLiRzZWFyY2hJbnB1dC5vbignY29tcG9zaXRpb25zdGFydCcsICgpID0+IHtcblx0XHRcdFx0aXNDb21wb3NpdGlvblN0YXJ0ID0gdHJ1ZTtcblx0XHRcdH0pO1xuXG5cdFx0XHR0aGlzLiRzZWFyY2hJbnB1dC5vbignY29tcG9zaXRpb25lbmQnLCAoKSA9PiB7XG5cdFx0XHRcdGlzQ29tcG9zaXRpb25TdGFydCA9IGZhbHNlO1xuXHRcdFx0fSk7XG5cblx0XHRcdHRoaXMuJHNlYXJjaElucHV0Lm9uKCdpbnB1dCBrZXl1cCcsIChldmVudCk6IHZvaWQgPT4ge1xuXHRcdFx0XHRpZiAoaXNDb21wb3NpdGlvblN0YXJ0KSB7XG5cdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGNvbnN0IHtjdXJyZW50VGFyZ2V0fSA9IGV2ZW50O1xuXHRcdFx0XHRjb25zdCB7dmFsdWU6IG9sZFZhbH0gPSBjdXJyZW50VGFyZ2V0O1xuXHRcdFx0XHRjb25zdCBuZXdWYWw6IHN0cmluZyA9IG9sZFZhbC5yZXBsYWNlKHJlZ2V4Q2F0LCAnJyk7XG5cdFx0XHRcdGlmIChuZXdWYWwgIT09IG9sZFZhbCkge1xuXHRcdFx0XHRcdGN1cnJlbnRUYXJnZXQudmFsdWUgPSBuZXdWYWw7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXG5cdFx0XHRjb25zdCBpbml0QXV0b2NvbXBsZXRlID0gKCk6IHZvaWQgPT4ge1xuXHRcdFx0XHRpZiAoQ0FMLmlzQXV0b0NvbXBsZXRlSW5pdCkge1xuXHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0fVxuXHRcdFx0XHRDQUwuaXNBdXRvQ29tcGxldGVJbml0ID0gdHJ1ZTtcblxuXHRcdFx0XHR0aGlzLiRzZWFyY2hJbnB1dC5hdXRvY29tcGxldGUoe1xuXHRcdFx0XHRcdHNvdXJjZTogKHJlcXVlc3Q6IHt0ZXJtOiBzdHJpbmd9LCByZXNwb25zZTogKGFyZzogSlF1ZXJ5PHN0cmluZz4pID0+IHZvaWQpOiB2b2lkID0+IHtcblx0XHRcdFx0XHRcdHRoaXMuZG9BUElDYWxsKFxuXHRcdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdFx0YWN0aW9uOiAnb3BlbnNlYXJjaCcsXG5cdFx0XHRcdFx0XHRcdFx0bmFtZXNwYWNlOiBDQUwuVEFSR0VUX05BTUVTUEFDRSxcblx0XHRcdFx0XHRcdFx0XHRyZWRpcmVjdHM6ICdyZXNvbHZlJyxcblx0XHRcdFx0XHRcdFx0XHRzZWFyY2g6IHJlcXVlc3QudGVybSxcblx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFx0KHJlc3VsdCk6IHZvaWQgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdGlmIChyZXN1bHRbMV0pIHtcblx0XHRcdFx0XHRcdFx0XHRcdHJlc3BvbnNlKFxuXHRcdFx0XHRcdFx0XHRcdFx0XHQkKHJlc3VsdFsxXSkubWFwKChfaW5kZXgsIGl0ZW06IHN0cmluZyk6IHN0cmluZyA9PiBpdGVtLnJlcGxhY2UocmVnZXhDYXQsICcnKSlcblx0XHRcdFx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0cG9zaXRpb246IHtcblx0XHRcdFx0XHRcdG15OiAncmlnaHQgYm90dG9tJyxcblx0XHRcdFx0XHRcdGF0OiAncmlnaHQgdG9wJyxcblx0XHRcdFx0XHRcdG9mOiB0aGlzLiRzZWFyY2hJbnB1dCxcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdGFwcGVuZFRvOiBgLiR7Q0xBU1NfTkFNRV9DT05UQUlORVJ9YCxcblx0XHRcdFx0fSk7XG5cdFx0XHR9O1xuXHRcdFx0dGhpcy4kbGluay5vbignY2xpY2snLCAoZXZlbnQpOiB2b2lkID0+IHtcblx0XHRcdFx0JChldmVudC5jdXJyZW50VGFyZ2V0KS50b2dnbGVDbGFzcyhDTEFTU19OQU1FX0NPTlRBSU5FUl9IRUFEX0xJTktfRU5BQkxFRCk7XG5cdFx0XHRcdGluaXRBdXRvY29tcGxldGUoKTtcblx0XHRcdFx0dGhpcy5ydW4oKTtcblx0XHRcdH0pO1xuXHRcdH1cblxuXHRcdHByaXZhdGUgc3RhdGljIGluaXRTZXR0aW5ncygpOiB2b2lkIHtcblx0XHRcdGxldCBjYXRBTG90UHJlZnM6IHR5cGVvZiBDQUwuc2V0dGluZ3MgPSB3aW5kb3cuQ2F0QUxvdFByZWZzID8/IHt9O1xuXHRcdFx0Y29uc3QgdHlwZU9mQ2F0QUxvdFByZWZzID0gdHlwZW9mIGNhdEFMb3RQcmVmcztcblx0XHRcdGlmICgodHlwZU9mQ2F0QUxvdFByZWZzID09PSAnb2JqZWN0JyAmJiAhQXJyYXkuaXNBcnJheShjYXRBTG90UHJlZnMpKSB8fCB0eXBlT2ZDYXRBTG90UHJlZnMgIT09ICdvYmplY3QnKSB7XG5cdFx0XHRcdGNhdEFMb3RQcmVmcyA9IHt9O1xuXHRcdFx0fVxuXG5cdFx0XHRmb3IgKGNvbnN0IHNldHRpbmdLZXkgb2YgT2JqZWN0LmtleXMoQ0FMLkRFRkFVTFRfU0VUVElORykgYXMgKGtleW9mIFNldHRpbmcpW10pIHtcblx0XHRcdFx0Y29uc3Qgc2V0dGluZyA9IENBTC5ERUZBVUxUX1NFVFRJTkdbc2V0dGluZ0tleV07XG5cblx0XHRcdFx0Q0FMLnNldHRpbmdzW3NldHRpbmdLZXldID0gY2F0QUxvdFByZWZzW3NldHRpbmdLZXldID8/IHNldHRpbmcuZGVmYXVsdDtcblxuXHRcdFx0XHRpZiAoIXNldHRpbmcuc2VsZWN0X2kxOG4pIHtcblx0XHRcdFx0XHRjb250aW51ZTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdHNldHRpbmcuc2VsZWN0ID0ge307XG5cdFx0XHRcdGZvciAoY29uc3QgbWVzc2FnZUtleSBvZiBPYmplY3Qua2V5cyhzZXR0aW5nLnNlbGVjdF9pMThuKSkge1xuXHRcdFx0XHRcdGNvbnN0IG1lc3NhZ2U6IHN0cmluZyA9IHNldHRpbmcuc2VsZWN0X2kxOG5bbWVzc2FnZUtleV0gYXMga2V5b2YgdHlwZW9mIHNldHRpbmcuc2VsZWN0X2kxOG47XG5cdFx0XHRcdFx0Ly8gTWVzc2FnZXMgdGhhdCBjYW4gYmUgdXNlZCBoZXJlOlxuXHRcdFx0XHRcdC8vICogc2VlIG1lc3NhZ2VzLnRzXG5cdFx0XHRcdFx0Ly8gKiBmb3IgbW9yZSBpbmZvcm1hdGlvblxuXHRcdFx0XHRcdHNldHRpbmcuc2VsZWN0W0NBTC5tc2cobWVzc2FnZUtleSBhcyBuZXZlcildID0gbWVzc2FnZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHByaXZhdGUgc3RhdGljIG1zZyhrZXk6IE1lc3NhZ2VLZXkgZXh0ZW5kcyBgY2F0LWEtbG90LSR7aW5mZXIgUH1gID8gUCA6IG5ldmVyLCAuLi5hcmdzOiBzdHJpbmdbXSk6IHN0cmluZyB7XG5cdFx0XHRjb25zdCBmdWxsS2V5OiBzdHJpbmcgPSBgY2F0LWEtbG90LSR7a2V5fWA7XG5cdFx0XHQvLyBNZXNzYWdlcyB0aGF0IGNhbiBiZSB1c2VkIGhlcmU6XG5cdFx0XHQvLyAqIHNlZSBtZXNzYWdlcy50c1xuXHRcdFx0Ly8gKiBmb3IgbW9yZSBpbmZvcm1hdGlvblxuXHRcdFx0cmV0dXJuIGFyZ3MubGVuZ3RoID8gbXcubWVzc2FnZShmdWxsS2V5LCAuLi5hcmdzKS5wYXJzZSgpIDogbXcubWVzc2FnZShmdWxsS2V5KS5wbGFpbigpO1xuXHRcdH1cblx0XHRwcml2YXRlIHN0YXRpYyBsb2NhbGl6ZWRSZWdleChuYW1lc3BhY2VOdW1iZXI6IG51bWJlciwgZmFsbGJhY2s6IHN0cmluZyk6IHN0cmluZyB7XG5cdFx0XHQvLyBDb3BpZWQgZnJvbSBIb3RDYXQsIHRoYW5rcyBMdXBvLlxuXHRcdFx0Y29uc3Qgd2lraVRleHRCbGFuazogc3RyaW5nID0gU3RyaW5nLnJhd2BbXFx0IF9cXHhBMFxcdTE2ODBcXHUxODBFXFx1MjAwMC1cXHUyMDBBXFx1MjAyOFxcdTIwMjlcXHUyMDJGXFx1MjA1RlxcdTMwMDBdK2A7XG5cdFx0XHRjb25zdCB3aWtpVGV4dEJsYW5rUkU6IFJlZ0V4cCA9IG5ldyBSZWdFeHAod2lraVRleHRCbGFuaywgJ2cnKTtcblx0XHRcdGNvbnN0IGNyZWF0ZVJlZ2V4U3RyID0gKG5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZCk6IHN0cmluZyA9PiB7XG5cdFx0XHRcdGlmICghbmFtZT8ubGVuZ3RoKSB7XG5cdFx0XHRcdFx0cmV0dXJuICcnO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGxldCByZWdleE5hbWU6IHN0cmluZyA9ICcnO1xuXHRcdFx0XHRmb3IgKGxldCBpOiBudW1iZXIgPSAwOyBpIDwgbmFtZS5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRcdGNvbnN0IGluaXRpYWw6IHN0cmluZyA9IG5hbWUuc2xpY2UoaSwgaSArIDEpO1xuXHRcdFx0XHRcdGNvbnN0IGxsOiBzdHJpbmcgPSBpbml0aWFsLnRvTG93ZXJDYXNlKCk7XG5cdFx0XHRcdFx0Y29uc3QgdWw6IHN0cmluZyA9IGluaXRpYWwudG9VcHBlckNhc2UoKTtcblx0XHRcdFx0XHRyZWdleE5hbWUgKz0gbGwgPT09IHVsID8gaW5pdGlhbCA6IGBbJHtsbH0ke3VsfV1gO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiByZWdleE5hbWUucmVwbGFjZSgvKFskKCkqKy4/XFxcXF5dKS9nLCBTdHJpbmcucmF3YFxcJDFgKS5yZXBsYWNlKHdpa2lUZXh0QmxhbmtSRSwgd2lraVRleHRCbGFuayk7XG5cdFx0XHR9O1xuXHRcdFx0ZmFsbGJhY2sgPSBmYWxsYmFjay50b0xvd2VyQ2FzZSgpO1xuXHRcdFx0Y29uc3QgY2Fub25pY2FsOiBzdHJpbmcgfCB1bmRlZmluZWQgPSBDQUwud2dGb3JtYXR0ZWROYW1lc3BhY2VzW25hbWVzcGFjZU51bWJlcl0/LnRvTG93ZXJDYXNlKCk7XG5cdFx0XHRsZXQgcmVnZXhTdHJpbmc6IHN0cmluZyA9IGNyZWF0ZVJlZ2V4U3RyKGNhbm9uaWNhbCk7XG5cdFx0XHRpZiAoZmFsbGJhY2sgJiYgY2Fub25pY2FsICE9PSBmYWxsYmFjaykge1xuXHRcdFx0XHRyZWdleFN0cmluZyArPSBgfCR7Y3JlYXRlUmVnZXhTdHIoZmFsbGJhY2spfWA7XG5cdFx0XHR9XG5cdFx0XHRmb3IgKGNvbnN0IGNhdE5hbWUgb2YgT2JqZWN0LmtleXMoQ0FMLndnTmFtZXNwYWNlSWRzKSkge1xuXHRcdFx0XHRpZiAoXG5cdFx0XHRcdFx0Y2F0TmFtZS50b0xvd2VyQ2FzZSgpICE9PSBjYW5vbmljYWwgJiZcblx0XHRcdFx0XHRjYXROYW1lLnRvTG93ZXJDYXNlKCkgIT09IGZhbGxiYWNrICYmXG5cdFx0XHRcdFx0Q0FMLndnTmFtZXNwYWNlSWRzW2NhdE5hbWVdID09PSBuYW1lc3BhY2VOdW1iZXJcblx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0cmVnZXhTdHJpbmcgKz0gYHwke2NyZWF0ZVJlZ2V4U3RyKGNhdE5hbWUpfWA7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdHJldHVybiBgKD86JHtyZWdleFN0cmluZ30pYDtcblx0XHR9XG5cdFx0cHJpdmF0ZSB1cGRhdGVTZWxlY3Rpb25Db3VudGVyKCk6IHZvaWQge1xuXHRcdFx0Q0FMLiRzZWxlY3RlZExhYmVscyA9IENBTC4kbGFiZWxzLmZpbHRlcihgLiR7Q0xBU1NfTkFNRV9MQUJFTF9TRUxFQ1RFRH1gKTtcblx0XHRcdHRoaXMuJG1hcmtDb3VudGVyLnNob3coKS5odG1sKENBTC5tc2coJ2ZpbGVzLXNlbGVjdGVkJywgQ0FMLiRzZWxlY3RlZExhYmVscy5sZW5ndGgudG9TdHJpbmcoKSkpO1xuXHRcdH1cblx0XHRwcml2YXRlIHRvZ2dsZUFsbChzZWxlY3Q6IGJvb2xlYW4pOiB2b2lkIHtcblx0XHRcdC8vIFRoZSBmb2xsb3dpbmcgY2xhc3NlcyBhcmUgdXNlZCBoZXJlOlxuXHRcdFx0Ly8gKiBzZWUgY29uc3RhbnQudHNcblx0XHRcdC8vICogZm9yIG1vcmUgaW5mb3JtYXRpb25cblx0XHRcdENBTC4kbGFiZWxzLnRvZ2dsZUNsYXNzKENMQVNTX05BTUVfTEFCRUxfU0VMRUNURUQsIHNlbGVjdCk7XG5cdFx0XHR0aGlzLnVwZGF0ZVNlbGVjdGlvbkNvdW50ZXIoKTtcblx0XHR9XG5cblx0XHRwcml2YXRlIHN0YXRpYyBhc3luYyBmaW5kQWxsVmFyaWFudHMoY2F0ZWdvcnk6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nW10+IHtcblx0XHRcdGlmIChDQUwudmFyaWFudENhY2hlW2NhdGVnb3J5XSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRcdHJldHVybiBDQUwudmFyaWFudENhY2hlW2NhdGVnb3J5XTtcblx0XHRcdH1cblx0XHRcdENBTC52YXJpYW50Q2FjaGUyW2NhdGVnb3J5XSA/Pz0ge307XG5cdFx0XHRjb25zdCByZXN1bHRzOiBzdHJpbmdbXSA9IFtdO1xuXHRcdFx0Y29uc3QgcGFyYW1zOiBBcGlQYXJzZVBhcmFtcyA9IHtcblx0XHRcdFx0YWN0aW9uOiAncGFyc2UnLFxuXHRcdFx0XHRmb3JtYXQ6ICdqc29uJyxcblx0XHRcdFx0Zm9ybWF0dmVyc2lvbjogJzInLFxuXHRcdFx0XHR0ZXh0OiBjYXRlZ29yeSxcblx0XHRcdFx0dGl0bGU6ICd0ZW1wJyxcblx0XHRcdH07XG5cdFx0XHRmb3IgKGNvbnN0IHZhcmlhbnQgb2YgVkFSSUFOVFMpIHtcblx0XHRcdFx0Y29uc3QgcmVzdWx0MiA9IENBTC52YXJpYW50Q2FjaGUyW2NhdGVnb3J5XT8uW3ZhcmlhbnRdO1xuXHRcdFx0XHRpZiAocmVzdWx0Mikge1xuXHRcdFx0XHRcdHJlc3VsdHNbcmVzdWx0cy5sZW5ndGhdID0gcmVzdWx0Mjtcblx0XHRcdFx0XHRjb250aW51ZTtcblx0XHRcdFx0fVxuXHRcdFx0XHR0cnkge1xuXHRcdFx0XHRcdGNvbnN0IHtwYXJzZX0gPSBhd2FpdCBDQUwuYXBpLmdldCh7XG5cdFx0XHRcdFx0XHQuLi5wYXJhbXMsXG5cdFx0XHRcdFx0XHR2YXJpYW50LFxuXHRcdFx0XHRcdH0gYXMgdHlwZW9mIHBhcmFtcyk7XG5cdFx0XHRcdFx0Y29uc3Qge3RleHR9ID0gcGFyc2U7XG5cdFx0XHRcdFx0Y29uc3QgcmVzdWx0ID0gJCh0ZXh0KS5lcSgwKS50ZXh0KCkudHJpbSgpO1xuXHRcdFx0XHRcdHJlc3VsdHNbcmVzdWx0cy5sZW5ndGhdID0gcmVzdWx0O1xuXHRcdFx0XHRcdGlmIChDQUwudmFyaWFudENhY2hlMltjYXRlZ29yeV0pIHtcblx0XHRcdFx0XHRcdENBTC52YXJpYW50Q2FjaGUyW2NhdGVnb3J5XVt2YXJpYW50XSA9IHJlc3VsdDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0gY2F0Y2gge31cblx0XHRcdH1cblx0XHRcdC8vIERlLWR1cGxpY2F0ZVxuXHRcdFx0Q0FMLnZhcmlhbnRDYWNoZVtjYXRlZ29yeV0gPSB1bmlxdWVBcnJheShyZXN1bHRzKTsgLy8gUmVwbGFjZSBTZXQgd2l0aCB1bmlxdWVBcnJheSwgYXZvaWRpbmcgY29yZS1qcyBwb2x5ZmlsbGluZ1xuXHRcdFx0cmV0dXJuIHJlc3VsdHM7XG5cdFx0fVxuXG5cdFx0cHJpdmF0ZSBzdGF0aWMgYXN5bmMgcmVnZXhCdWlsZGVyKGNhdGVnb3J5OiBzdHJpbmcpOiBQcm9taXNlPFJlZ0V4cD4ge1xuXHRcdFx0Ly8gQnVpbGQgYSByZWdleHAgc3RyaW5nIGZvciBtYXRjaGluZyB0aGUgZ2l2ZW4gY2F0ZWdvcnk6XG5cdFx0XHRjb25zdCBjYXROYW1lOiBzdHJpbmcgPSBDQUwubG9jYWxpemVkUmVnZXgoQ0FMLlRBUkdFVF9OQU1FU1BBQ0UsICdDYXRlZ29yeScpO1xuXHRcdFx0Ly8gdHJpbSBsZWFkaW5nL3RyYWlsaW5nIHdoaXRlc3BhY2UgYW5kIHVuZGVyc2NvcmVzXG5cdFx0XHRjYXRlZ29yeSA9IGNhdGVnb3J5LnJlcGxhY2UoL15bXFxzX10rLywgJycpLnJlcGxhY2UoL1tcXHNfXSskLywgJycpO1xuXHRcdFx0Ly8gRmluZCBhbGwgdmFyaWFudHNcblx0XHRcdGNvbnN0IHZhcmlhbnRzOiBzdHJpbmdbXSA9IGF3YWl0IENBTC5maW5kQWxsVmFyaWFudHMoY2F0ZWdvcnkpO1xuXHRcdFx0Ly8gZXNjYXBlIHJlZ2V4cCBtZXRhY2hhcmFjdGVycyAoPSBhbnkgQVNDSUkgcHVuY3R1YXRpb24gZXhjZXB0IF8pXG5cdFx0XHRjb25zdCB2YXJpYW50UmVnRXhwczogc3RyaW5nW10gPSBbXTtcblx0XHRcdGZvciAobGV0IHZhcmlhbnQgb2YgdmFyaWFudHMpIHtcblx0XHRcdFx0dmFyaWFudCA9IG13LnV0aWwuZXNjYXBlUmVnRXhwKHZhcmlhbnQpO1xuXHRcdFx0XHQvLyBhbnkgc2VxdWVuY2Ugb2Ygc3BhY2VzIGFuZCB1bmRlcnNjb3JlcyBzaG91bGQgbWF0Y2ggYW55IG90aGVyXG5cdFx0XHRcdHZhcmlhbnQgPSB2YXJpYW50LnJlcGxhY2UoL1tcXHNfXSsvZywgU3RyaW5nLnJhd2BbXFxzX10rYCk7XG5cdFx0XHRcdC8vIE1ha2UgdGhlIGZpcnN0IGNoYXJhY3RlciBjYXNlLWluc2Vuc2l0aXZlOlxuXHRcdFx0XHRjb25zdCBmaXJzdDogc3RyaW5nID0gdmFyaWFudC5zbGljZSgwLCAxKTtcblx0XHRcdFx0aWYgKGZpcnN0LnRvVXBwZXJDYXNlKCkgIT09IGZpcnN0LnRvTG93ZXJDYXNlKCkpIHtcblx0XHRcdFx0XHR2YXJpYW50ID0gYFske2ZpcnN0LnRvVXBwZXJDYXNlKCl9JHtmaXJzdC50b0xvd2VyQ2FzZSgpfV0ke3ZhcmlhbnQuc2xpY2UoMSl9YDtcblx0XHRcdFx0fVxuXHRcdFx0XHR2YXJpYW50UmVnRXhwc1t2YXJpYW50UmVnRXhwcy5sZW5ndGhdID0gdmFyaWFudDtcblx0XHRcdH1cblx0XHRcdC8vIENvbXBpbGUgaXQgaW50byBhIFJlZ0V4cCB0aGF0IG1hdGNoZXMgTWVkaWFXaWtpIGNhdGVnb3J5IHN5bnRheCAoeWVhaCwgaXQgbG9va3MgdWdseSk6XG5cdFx0XHQvLyBYWFg6IHRoZSBmaXJzdCBjYXB0dXJpbmcgcGFyZW5zIGFyZSBhc3N1bWVkIHRvIG1hdGNoIHRoZSBzb3J0a2V5LCBpZiBwcmVzZW50LCBpbmNsdWRpbmcgdGhlIHwgYnV0IGV4Y2x1ZGluZyB0aGUgXV1cblx0XHRcdHJldHVybiBuZXcgUmVnRXhwKFxuXHRcdFx0XHRgXFxcXFtcXFxcW1tcXFxcc19dKiR7Y2F0TmFtZX1bXFxcXHNfXSo6W1xcXFxzX10qKD86JHt2YXJpYW50UmVnRXhwcy5qb2luKFxuXHRcdFx0XHRcdCd8J1xuXHRcdFx0XHQpfSlbXFxcXHNfXSooXFxcXHxbXlxcXFxdXSooPzpcXFxcXVteXFxcXF1dKykqKT9cXFxcXVxcXFxdYCxcblx0XHRcdFx0J2cnXG5cdFx0XHQpO1xuXHRcdH1cblxuXHRcdHByaXZhdGUgZG9BUElDYWxsKFxuXHRcdFx0X3BhcmFtczpcblx0XHRcdFx0fCBPbWl0PEFwaUVkaXRQYWdlUGFyYW1zLCAnZm9ybWF0Jz5cblx0XHRcdFx0fCBPbWl0PEFwaU9wZW5TZWFyY2hQYXJhbXMsICdmb3JtYXQnPlxuXHRcdFx0XHR8IE9taXQ8QXBpUXVlcnlDYXRlZ29yeU1lbWJlcnNQYXJhbXMsICdmb3JtYXQnPlxuXHRcdFx0XHR8IE9taXQ8QXBpUXVlcnlSZXZpc2lvbnNQYXJhbXMsICdmb3JtYXQnPlxuXHRcdFx0XHR8IE9taXQ8QXBpUXVlcnlUb2tlbnNQYXJhbXMsICdmb3JtYXQnPixcblx0XHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG5cdFx0XHRjYWxsYmFjazogKGRhdGE6IGFueSkgPT4gdm9pZFxuXHRcdCkge1xuXHRcdFx0Y29uc3QgcGFyYW1zID0gX3BhcmFtcyBhcyB0eXBlb2YgX3BhcmFtcyAmIHtcblx0XHRcdFx0Zm9ybWF0OiAnanNvbic7XG5cdFx0XHRcdHRpdGxlPzogc3RyaW5nO1xuXHRcdFx0fTtcblx0XHRcdHBhcmFtc1snZm9ybWF0J10gPSAnanNvbic7XG5cdFx0XHRwYXJhbXNbJ2Zvcm1hdHZlcnNpb24nXSA9ICcyJztcblx0XHRcdGxldCBpOiBudW1iZXIgPSAwO1xuXHRcdFx0Y29uc3QgZG9DYWxsID0gKCk6IHZvaWQgPT4ge1xuXHRcdFx0XHRjb25zdCBoYW5kbGVFcnJvciA9IChlcnJvcjogc3RyaW5nKTogdm9pZCA9PiB7XG5cdFx0XHRcdFx0bXcubG9nLmVycm9yKCdbQ2F0LWEtbG90XSBBamF4IGVycm9yOicsIGVycm9yKTtcblx0XHRcdFx0XHRpZiAoaSA8IDQpIHtcblx0XHRcdFx0XHRcdHNldFRpbWVvdXQoZG9DYWxsLCAzMDApO1xuXHRcdFx0XHRcdFx0aSsrO1xuXHRcdFx0XHRcdH0gZWxzZSBpZiAocGFyYW1zWyd0aXRsZSddKSB7XG5cdFx0XHRcdFx0XHRDQUwuY29ubmVjdGlvbkVycm9yW0NBTC5jb25uZWN0aW9uRXJyb3IubGVuZ3RoXSA9IHBhcmFtc1sndGl0bGUnXTtcblx0XHRcdFx0XHRcdHRoaXMudXBkYXRlQ291bnRlcigpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fTtcblx0XHRcdFx0aWYgKHBhcmFtcy5hY3Rpb24gPT09ICdxdWVyeScpIHtcblx0XHRcdFx0XHRDQUwuYXBpLmdldChwYXJhbXMpLnRoZW4oY2FsbGJhY2spLmNhdGNoKGhhbmRsZUVycm9yKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRDQUwuYXBpLnBvc3QocGFyYW1zKS50aGVuKGNhbGxiYWNrKS5jYXRjaChoYW5kbGVFcnJvcik7XG5cdFx0XHRcdH1cblx0XHRcdH07XG5cdFx0XHRkb0NhbGwoKTtcblx0XHR9XG5cblx0XHRwcml2YXRlIHN0YXRpYyBtYXJrQXNEb25lKFxuXHRcdFx0JG1hcmtlZExhYmVsOiBKUXVlcnksXG5cdFx0XHR0YXJnZXRDYXRlZ29yeTogc3RyaW5nLFxuXHRcdFx0bW9kZTogJ2FkZCcgfCAnY29weScgfCAnbW92ZScgfCAncmVtb3ZlJ1xuXHRcdCk6IHZvaWQge1xuXHRcdFx0JG1hcmtlZExhYmVsLmFkZENsYXNzKENMQVNTX05BTUVfTEFCRUxfRE9ORSk7XG5cblx0XHRcdHN3aXRjaCAobW9kZSkge1xuXHRcdFx0XHRjYXNlICdhZGQnOlxuXHRcdFx0XHRcdCRtYXJrZWRMYWJlbC5hcHBlbmQoXG5cdFx0XHRcdFx0XHQ8PlxuXHRcdFx0XHRcdFx0XHQ8YnIgLz5cblx0XHRcdFx0XHRcdFx0e0NBTC5tc2coJ2FkZGVkLWNhdCcsIHRhcmdldENhdGVnb3J5KX1cblx0XHRcdFx0XHRcdDwvPlxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdGNhc2UgJ2NvcHknOlxuXHRcdFx0XHRcdCRtYXJrZWRMYWJlbC5hcHBlbmQoXG5cdFx0XHRcdFx0XHQ8PlxuXHRcdFx0XHRcdFx0XHQ8YnIgLz5cblx0XHRcdFx0XHRcdFx0e0NBTC5tc2coJ2NvcGllZC1jYXQnLCB0YXJnZXRDYXRlZ29yeSl9XG5cdFx0XHRcdFx0XHQ8Lz5cblx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRjYXNlICdtb3ZlJzpcblx0XHRcdFx0XHQkbWFya2VkTGFiZWwuYXBwZW5kKFxuXHRcdFx0XHRcdFx0PD5cblx0XHRcdFx0XHRcdFx0PGJyIC8+XG5cdFx0XHRcdFx0XHRcdHtDQUwubXNnKCdtb3ZlZC1jYXQnLCB0YXJnZXRDYXRlZ29yeSl9XG5cdFx0XHRcdFx0XHQ8Lz5cblx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRjYXNlICdyZW1vdmUnOlxuXHRcdFx0XHRcdCRtYXJrZWRMYWJlbC5hcHBlbmQoXG5cdFx0XHRcdFx0XHQ8PlxuXHRcdFx0XHRcdFx0XHQ8YnIgLz5cblx0XHRcdFx0XHRcdFx0e0NBTC5tc2coJ3JlbW92ZWQtY2F0JywgdGFyZ2V0Q2F0ZWdvcnkpfVxuXHRcdFx0XHRcdFx0PC8+XG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdH1cblx0XHR9XG5cdFx0cHJpdmF0ZSBzdGF0aWMgZG9DbGVhbnVwKHRleHQ6IHN0cmluZyk6IHN0cmluZyB7XG5cdFx0XHRyZXR1cm4gQ0FMLnNldHRpbmdzLmRvY2xlYW51cCA/IHRleHQucmVwbGFjZSgve3tcXHMqW0NjXWhlY2sgY2F0ZWdvcmllc1xccyooXFx8Py4qPyl9fS8sICcnKSA6IHRleHQ7XG5cdFx0fSAvLyBSZW1vdmUge3tVbmNhdGVnb3JpemVkfX0gKGFsc28gd2l0aCBjb21tZW50KS4gTm8gbmVlZCB0byByZXBsYWNlIGl0IHdpdGggYW55dGhpbmdcblx0XHRwcml2YXRlIHN0YXRpYyByZW1vdmVVbmNhdCh0ZXh0OiBzdHJpbmcpOiBzdHJpbmcge1xuXHRcdFx0cmV0dXJuIHRleHQucmVwbGFjZSgvXFx7XFx7XFxzKltVdV1uY2F0ZWdvcml6ZWRcXHMqKFxcfD8uKj8pXFx9XFx9LywgJycpO1xuXHRcdH1cblx0XHRwcml2YXRlIGRpc3BsYXlSZXN1bHQoKTogdm9pZCB7XG5cdFx0XHR0aGlzLiRib2R5LmNzcyh7XG5cdFx0XHRcdGN1cnNvcjogJycsXG5cdFx0XHRcdG92ZXJmbG93OiAnJyxcblx0XHRcdH0pO1xuXHRcdFx0dGhpcy4kYm9keS5maW5kKGAuJHtDTEFTU19OQU1FX0ZFRURCQUNLfWApLmFkZENsYXNzKENMQVNTX05BTUVfRkVFREJBQ0tfRE9ORSk7XG5cblx0XHRcdGNvbnN0ICRwYXJlbnQ6IEpRdWVyeSA9IENBTC4kY291bnRlci5wYXJlbnQoKTtcblx0XHRcdCRwYXJlbnQuaHRtbCg8aDM+e0NBTC5tc2coJ2RvbmUnKX08L2gzPik7XG5cdFx0XHQkcGFyZW50LmFwcGVuZChcblx0XHRcdFx0PD5cblx0XHRcdFx0XHR7Q0FMLm1zZygnYWxsLWRvbmUnKX1cblx0XHRcdFx0XHQ8YnIgLz5cblx0XHRcdFx0PC8+XG5cdFx0XHQpO1xuXG5cdFx0XHQkcGFyZW50LmFwcGVuZChcblx0XHRcdFx0PGFcblx0XHRcdFx0XHRvbkNsaWNrPXsoKTogdm9pZCA9PiB7XG5cdFx0XHRcdFx0XHRDQUwuJHByb2dyZXNzRGlhbG9nLnJlbW92ZSgpO1xuXHRcdFx0XHRcdFx0dGhpcy50b2dnbGVBbGwoZmFsc2UpO1xuXHRcdFx0XHRcdH19XG5cdFx0XHRcdD5cblx0XHRcdFx0XHR7Q0FMLm1zZygncmV0dXJuLXRvLXBhZ2UnKX1cblx0XHRcdFx0PC9hPlxuXHRcdFx0KTtcblxuXHRcdFx0aWYgKENBTC5hbHJlYWR5VGhlcmUubGVuZ3RoKSB7XG5cdFx0XHRcdCRwYXJlbnQuYXBwZW5kKFxuXHRcdFx0XHRcdDw+XG5cdFx0XHRcdFx0XHQ8aDU+e0NBTC5tc2coJ3NraXBwZWQtYWxyZWFkeScsIENBTC5hbHJlYWR5VGhlcmUubGVuZ3RoLnRvU3RyaW5nKCkpfTwvaDU+XG5cdFx0XHRcdFx0XHR7Q0FMLmFscmVhZHlUaGVyZS5yZWR1Y2U8KHN0cmluZyB8IFJlYWN0LlJlYWN0RWxlbWVudClbXT4oXG5cdFx0XHRcdFx0XHRcdChwcmUsIGN1ciwgaW5kZXgpID0+XG5cdFx0XHRcdFx0XHRcdFx0aW5kZXggPCBDQUwuYWxyZWFkeVRoZXJlLmxlbmd0aCAtIDEgPyBbLi4ucHJlLCBjdXIsIDxiciBrZXk9e2luZGV4fSAvPl0gOiBbLi4ucHJlLCBjdXJdLFxuXHRcdFx0XHRcdFx0XHRbXVxuXHRcdFx0XHRcdFx0KX1cblx0XHRcdFx0XHQ8Lz5cblx0XHRcdFx0KTtcblx0XHRcdH1cblx0XHRcdGlmIChDQUwubm90Rm91bmQubGVuZ3RoKSB7XG5cdFx0XHRcdCRwYXJlbnQuYXBwZW5kKFxuXHRcdFx0XHRcdDw+XG5cdFx0XHRcdFx0XHQ8aDU+e0NBTC5tc2coJ3NraXBwZWQtbm90LWZvdW5kJywgQ0FMLm5vdEZvdW5kLmxlbmd0aC50b1N0cmluZygpKX08L2g1PlxuXHRcdFx0XHRcdFx0e0NBTC5ub3RGb3VuZC5yZWR1Y2U8KHN0cmluZyB8IFJlYWN0LlJlYWN0RWxlbWVudClbXT4oXG5cdFx0XHRcdFx0XHRcdChwcmUsIGN1ciwgaW5kZXgpID0+XG5cdFx0XHRcdFx0XHRcdFx0aW5kZXggPCBDQUwubm90Rm91bmQubGVuZ3RoIC0gMSA/IFsuLi5wcmUsIGN1ciwgPGJyIGtleT17aW5kZXh9IC8+XSA6IFsuLi5wcmUsIGN1cl0sXG5cdFx0XHRcdFx0XHRcdFtdXG5cdFx0XHRcdFx0XHQpfVxuXHRcdFx0XHRcdDwvPlxuXHRcdFx0XHQpO1xuXHRcdFx0fVxuXHRcdFx0aWYgKENBTC5jb25uZWN0aW9uRXJyb3IubGVuZ3RoKSB7XG5cdFx0XHRcdCRwYXJlbnQuYXBwZW5kKFxuXHRcdFx0XHRcdDw+XG5cdFx0XHRcdFx0XHQ8aDU+e0NBTC5tc2coJ3NraXBwZWQtc2VydmVyJywgQ0FMLmNvbm5lY3Rpb25FcnJvci5sZW5ndGgudG9TdHJpbmcoKSl9PC9oNT5cblx0XHRcdFx0XHRcdHtDQUwuY29ubmVjdGlvbkVycm9yLnJlZHVjZTwoc3RyaW5nIHwgUmVhY3QuUmVhY3RFbGVtZW50KVtdPihcblx0XHRcdFx0XHRcdFx0KHByZSwgY3VyLCBpbmRleCkgPT5cblx0XHRcdFx0XHRcdFx0XHRpbmRleCA8IENBTC5jb25uZWN0aW9uRXJyb3IubGVuZ3RoIC0gMVxuXHRcdFx0XHRcdFx0XHRcdFx0PyBbLi4ucHJlLCBjdXIsIDxiciBrZXk9e2luZGV4fSAvPl1cblx0XHRcdFx0XHRcdFx0XHRcdDogWy4uLnByZSwgY3VyXSxcblx0XHRcdFx0XHRcdFx0W11cblx0XHRcdFx0XHRcdCl9XG5cdFx0XHRcdFx0PC8+XG5cdFx0XHRcdCk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHByaXZhdGUgdXBkYXRlQ291bnRlcigpOiB2b2lkIHtcblx0XHRcdENBTC5jb3VudGVyQ3VycmVudCsrO1xuXHRcdFx0aWYgKENBTC5jb3VudGVyQ3VycmVudCA+IENBTC5jb3VudGVyTmVlZGVkKSB7XG5cdFx0XHRcdHRoaXMuZGlzcGxheVJlc3VsdCgpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Q0FMLiRjb3VudGVyLnRleHQoQ0FMLmNvdW50ZXJDdXJyZW50KTtcblx0XHRcdH1cblx0XHR9XG5cdFx0cHJpdmF0ZSBhc3luYyBlZGl0Q2F0ZWdvcmllcyhcblx0XHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG5cdFx0XHRyZXN1bHQ6IFJlY29yZDxzdHJpbmcsIGFueT4sXG5cdFx0XHRtYXJrZWRMYWJlbDogUmV0dXJuVHlwZTx0eXBlb2YgdGhpcy5nZXRNYXJrZWRMYWJlbHM+WzBdLFxuXHRcdFx0dGFyZ2V0Q2F0ZWdvcnk6IHN0cmluZyxcblx0XHRcdG1vZGU6ICdhZGQnIHwgJ2NvcHknIHwgJ21vdmUnIHwgJ3JlbW92ZSdcblx0XHQpOiBQcm9taXNlPHZvaWQ+IHtcblx0XHRcdGNvbnN0IFttYXJrZWRMYWJlbFRpdGxlLCAkbWFya2VkTGFiZWxdID0gbWFya2VkTGFiZWw7XG5cblx0XHRcdGlmICghcmVzdWx0Py5bJ3F1ZXJ5J10pIHtcblx0XHRcdFx0Q0FMLmNvbm5lY3Rpb25FcnJvcltDQUwuY29ubmVjdGlvbkVycm9yLmxlbmd0aF0gPSBtYXJrZWRMYWJlbFRpdGxlO1xuXHRcdFx0XHR0aGlzLnVwZGF0ZUNvdW50ZXIoKTtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXG5cdFx0XHRsZXQgb3JpZ2luVGV4dDogc3RyaW5nID0gJyc7XG5cdFx0XHRsZXQgc3RhcnR0aW1lc3RhbXA6IG51bWJlciA9IDA7XG5cdFx0XHRsZXQgdGltZXN0YW1wOiBudW1iZXIgPSAwO1xuXHRcdFx0Q0FMLmVkaXRUb2tlbiA9IHJlc3VsdFsncXVlcnknXS50b2tlbnMuY3NyZnRva2VuO1xuXHRcdFx0Y29uc3Qge3BhZ2VzfSA9IHJlc3VsdFsncXVlcnknXTtcblxuXHRcdFx0Y29uc3QgW3BhZ2VdID0gcGFnZXM7XG5cdFx0XHRvcmlnaW5UZXh0ID0gcGFnZT8ucmV2aXNpb25zPy5bMF0uc2xvdHMubWFpbi5jb250ZW50O1xuXHRcdFx0KHtzdGFydHRpbWVzdGFtcH0gPSBwYWdlKTtcblx0XHRcdFt7dGltZXN0YW1wfV0gPSBwYWdlLnJldmlzaW9ucztcblxuXHRcdFx0Y29uc3Qgc291cmNlY2F0OiBzdHJpbmcgPSBDQUwuQ1VSUkVOVF9DQVRFR1JPWTtcblx0XHRcdC8vIENoZWNrIGlmIHRoYXQgZmlsZSBpcyBhbHJlYWR5IGluIHRoYXQgY2F0ZWdvcnlcblx0XHRcdGNvbnN0IHRhcmdlUmVnRXhwID0gYXdhaXQgQ0FMLnJlZ2V4QnVpbGRlcih0YXJnZXRDYXRlZ29yeSk7XG5cdFx0XHRpZiAobW9kZSAhPT0gJ3JlbW92ZScgJiYgdGFyZ2VSZWdFeHAudGVzdChvcmlnaW5UZXh0KSAmJiBtb2RlICE9PSAnbW92ZScpIHtcblx0XHRcdFx0Q0FMLmFscmVhZHlUaGVyZVtDQUwuYWxyZWFkeVRoZXJlLmxlbmd0aF0gPSBtYXJrZWRMYWJlbFRpdGxlO1xuXHRcdFx0XHR0aGlzLnVwZGF0ZUNvdW50ZXIoKTtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBGaXggdGV4dFxuXHRcdFx0bGV0IHRleHQ6IHN0cmluZyA9IG9yaWdpblRleHQ7XG5cdFx0XHRsZXQgc3VtbWFyeTogc3RyaW5nO1xuXHRcdFx0Y29uc3Qgc291cmNlQ2F0UmVnRXhwID0gYXdhaXQgQ0FMLnJlZ2V4QnVpbGRlcihzb3VyY2VjYXQpO1xuXHRcdFx0c3dpdGNoIChtb2RlKSB7XG5cdFx0XHRcdGNhc2UgJ2FkZCc6XG5cdFx0XHRcdFx0dGV4dCArPSBgXFxuW1ske0NBTC5sb2NhbENhdE5hbWV9OiR7dGFyZ2V0Q2F0ZWdvcnl9XV1cXG5gO1xuXHRcdFx0XHRcdHN1bW1hcnkgPSBDQUwubXNnKCdzdW1tYXJ5LWFkZCcpLnJlcGxhY2UoJyQxJywgdGFyZ2V0Q2F0ZWdvcnkpO1xuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRjYXNlICdjb3B5Jzpcblx0XHRcdFx0XHR0ZXh0ID0gdGV4dC5yZXBsYWNlKFxuXHRcdFx0XHRcdFx0c291cmNlQ2F0UmVnRXhwLFxuXHRcdFx0XHRcdFx0YFtbJHtDQUwubG9jYWxDYXROYW1lfToke3NvdXJjZWNhdH0kMV1dXFxuW1ske0NBTC5sb2NhbENhdE5hbWV9OiR7dGFyZ2V0Q2F0ZWdvcnl9JDFdXWBcblx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdHN1bW1hcnkgPSBDQUwubXNnKCdzdW1tYXJ5LWNvcHknKS5yZXBsYWNlKCckMScsIHNvdXJjZWNhdCkucmVwbGFjZSgnJDInLCB0YXJnZXRDYXRlZ29yeSk7XG5cdFx0XHRcdFx0Ly8gSWYgY2F0ZWdvcnkgaXMgYWRkZWQgdGhyb3VnaCB0ZW1wbGF0ZTpcblx0XHRcdFx0XHRpZiAob3JpZ2luVGV4dCA9PT0gdGV4dCkge1xuXHRcdFx0XHRcdFx0dGV4dCArPSBgXFxuW1ske0NBTC5sb2NhbENhdE5hbWV9OiR7dGFyZ2V0Q2F0ZWdvcnl9XV1gO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0Y2FzZSAnbW92ZSc6XG5cdFx0XHRcdFx0dGV4dCA9IHRleHQucmVwbGFjZShzb3VyY2VDYXRSZWdFeHAsIGBbWyR7Q0FMLmxvY2FsQ2F0TmFtZX06JHt0YXJnZXRDYXRlZ29yeX0kMV1dYCk7XG5cdFx0XHRcdFx0c3VtbWFyeSA9IENBTC5tc2coJ3N1bW1hcnktbW92ZScpLnJlcGxhY2UoJyQxJywgc291cmNlY2F0KS5yZXBsYWNlKCckMicsIHRhcmdldENhdGVnb3J5KTtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0Y2FzZSAncmVtb3ZlJzpcblx0XHRcdFx0XHR0ZXh0ID0gdGV4dC5yZXBsYWNlKHNvdXJjZUNhdFJlZ0V4cCwgJycpO1xuXHRcdFx0XHRcdHN1bW1hcnkgPSBDQUwubXNnKCdzdW1tYXJ5LXJlbW92ZScpLnJlcGxhY2UoJyQxJywgc291cmNlY2F0KTtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdH1cblxuXHRcdFx0aWYgKHRleHQgPT09IG9yaWdpblRleHQpIHtcblx0XHRcdFx0Q0FMLm5vdEZvdW5kW0NBTC5ub3RGb3VuZC5sZW5ndGhdID0gbWFya2VkTGFiZWxUaXRsZTtcblx0XHRcdFx0dGhpcy51cGRhdGVDb3VudGVyKCk7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblxuXHRcdFx0Ly8gUmVtb3ZlIHVuY2F0IGFmdGVyIHdlIGNoZWNrZWQgd2hldGhlciB3ZSBjaGFuZ2VkIHRoZSB0ZXh0IHN1Y2Nlc3NmdWxseS5cblx0XHRcdC8vIE90aGVyd2lzZSB3ZSBtaWdodCBmYWlsIHRvIGRvIHRoZSBjaGFuZ2VzLCBidXQgc3RpbGwgcmVwbGFjZSB7e3VuY2F0fX1cblx0XHRcdGlmIChtb2RlICE9PSAncmVtb3ZlJykge1xuXHRcdFx0XHR0ZXh0ID0gQ0FMLmRvQ2xlYW51cChDQUwucmVtb3ZlVW5jYXQodGV4dCkpO1xuXHRcdFx0fVxuXG5cdFx0XHR0aGlzLmRvQVBJQ2FsbChcblx0XHRcdFx0e1xuXHRcdFx0XHRcdGFjdGlvbjogJ2VkaXQnLFxuXHRcdFx0XHRcdHRva2VuOiBDQUwuZWRpdFRva2VuLFxuXHRcdFx0XHRcdHRhZ3M6IENBTC5BUElfVEFHLFxuXHRcdFx0XHRcdHRpdGxlOiBtYXJrZWRMYWJlbFRpdGxlLFxuXHRcdFx0XHRcdGFzc2VydDogJ3VzZXInLFxuXHRcdFx0XHRcdGJvdDogdHJ1ZSxcblx0XHRcdFx0XHRiYXNldGltZXN0YW1wOiB0aW1lc3RhbXAgYXMgdW5rbm93biBhcyBzdHJpbmcsXG5cdFx0XHRcdFx0d2F0Y2hsaXN0OiBDQUwuc2V0dGluZ3Mud2F0Y2hsaXN0IGFzIG5ldmVyLFxuXHRcdFx0XHRcdHRleHQsXG5cdFx0XHRcdFx0c3VtbWFyeSxcblx0XHRcdFx0XHRzdGFydHRpbWVzdGFtcDogc3RhcnR0aW1lc3RhbXAgYXMgdW5rbm93biBhcyBzdHJpbmcsXG5cdFx0XHRcdH0sXG5cdFx0XHRcdCgpOiB2b2lkID0+IHtcblx0XHRcdFx0XHR0aGlzLnVwZGF0ZUNvdW50ZXIoKTtcblx0XHRcdFx0fVxuXHRcdFx0KTtcblxuXHRcdFx0Q0FMLm1hcmtBc0RvbmUoJG1hcmtlZExhYmVsLCB0YXJnZXRDYXRlZ29yeSwgbW9kZSk7XG5cdFx0fVxuXHRcdHByaXZhdGUgZ2V0Q29udGVudChcblx0XHRcdG1hcmtlZExhYmVsOiBSZXR1cm5UeXBlPHR5cGVvZiB0aGlzLmdldE1hcmtlZExhYmVscz5bMF0sXG5cdFx0XHR0YXJnZXRDYXRlZ29yeTogc3RyaW5nLFxuXHRcdFx0bW9kZTogJ2FkZCcgfCAnY29weScgfCAnbW92ZSdcblx0XHQpOiB2b2lkIHtcblx0XHRcdHRoaXMuZG9BUElDYWxsKFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0YWN0aW9uOiAncXVlcnknLFxuXHRcdFx0XHRcdGZvcm1hdHZlcnNpb246ICcyJyxcblx0XHRcdFx0XHRtZXRhOiAndG9rZW5zJyxcblx0XHRcdFx0XHR0aXRsZXM6IG1hcmtlZExhYmVsWzBdLFxuXHRcdFx0XHRcdHByb3A6ICdyZXZpc2lvbnMnLFxuXHRcdFx0XHRcdHJ2cHJvcDogWydjb250ZW50JywgJ3RpbWVzdGFtcCddLFxuXHRcdFx0XHRcdHJ2c2xvdHM6ICdtYWluJyxcblx0XHRcdFx0fSxcblx0XHRcdFx0KHJlc3VsdCk6IHZvaWQgPT4ge1xuXHRcdFx0XHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWFyZ3VtZW50XG5cdFx0XHRcdFx0dm9pZCB0aGlzLmVkaXRDYXRlZ29yaWVzKHJlc3VsdCwgbWFya2VkTGFiZWwsIHRhcmdldENhdGVnb3J5LCBtb2RlKTtcblx0XHRcdFx0fVxuXHRcdFx0KTtcblx0XHR9XG5cdFx0cHJpdmF0ZSBzdGF0aWMgZ2V0VGl0bGVGcm9tTGluayhocmVmOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBzdHJpbmcge1xuXHRcdFx0dHJ5IHtcblx0XHRcdFx0cmV0dXJuIChkZWNvZGVVUklDb21wb25lbnQoaHJlZiA/PyAnJykubWF0Y2goL3dpa2lcXC8oLis/KSg/OiMuKyk/JC8pPy5bMV0gPz8gJycpLnJlcGxhY2UoL18vZywgJyAnKTtcblx0XHRcdH0gY2F0Y2gge1xuXHRcdFx0XHRyZXR1cm4gJyc7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHByaXZhdGUgZ2V0TWFya2VkTGFiZWxzKCk6IFtzdHJpbmcsIEpRdWVyeV1bXSB7XG5cdFx0XHRjb25zdCBtYXJrZWRMYWJlbHM6IFJldHVyblR5cGU8dHlwZW9mIHRoaXMuZ2V0TWFya2VkTGFiZWxzPiA9IFtdO1xuXHRcdFx0Q0FMLiRzZWxlY3RlZExhYmVscyA9IENBTC4kbGFiZWxzLmZpbHRlcihgLiR7Q0xBU1NfTkFNRV9MQUJFTF9TRUxFQ1RFRH1gKTtcblx0XHRcdENBTC4kc2VsZWN0ZWRMYWJlbHMuZWFjaCgoX2luZGV4LCBsYWJlbCk6IHZvaWQgPT4ge1xuXHRcdFx0XHRjb25zdCAkbGFiZWw6IEpRdWVyeSA9ICQobGFiZWwpO1xuXHRcdFx0XHRjb25zdCAkbGFiZWxMaW5rOiBKUXVlcnkgPSAkbGFiZWwuZmluZCgnYTpub3QoLkNhdGVnb3J5VHJlZVRvZ2dsZSlbdGl0bGVdJyk7XG5cdFx0XHRcdGNvbnN0IHRpdGxlOiBzdHJpbmcgPVxuXHRcdFx0XHRcdCRsYWJlbExpbmsuYXR0cigndGl0bGUnKT8udHJpbSgpIHx8XG5cdFx0XHRcdFx0Q0FMLmdldFRpdGxlRnJvbUxpbmsoJGxhYmVsTGluay5hdHRyKCdocmVmJykpIHx8XG5cdFx0XHRcdFx0Q0FMLmdldFRpdGxlRnJvbUxpbmsoJGxhYmVsLmZpbmQoJ2E6bm90KC5DYXRlZ29yeVRyZWVUb2dnbGUpJykuYXR0cignaHJlZicpKTtcblx0XHRcdFx0bWFya2VkTGFiZWxzW21hcmtlZExhYmVscy5sZW5ndGhdID0gW3RpdGxlLCAkbGFiZWxdO1xuXHRcdFx0fSk7XG5cdFx0XHRyZXR1cm4gbWFya2VkTGFiZWxzO1xuXHRcdH1cblx0XHRwcml2YXRlIHNob3dQcm9ncmVzcygpOiB2b2lkIHtcblx0XHRcdHRoaXMuJGJvZHkuY3NzKHtcblx0XHRcdFx0Y3Vyc29yOiAnd2FpdCcsXG5cdFx0XHRcdG92ZXJmbG93OiAnaGlkZGVuJyxcblx0XHRcdH0pO1xuXHRcdFx0Q0FMLiRwcm9ncmVzc0RpYWxvZyA9ICQoXG5cdFx0XHRcdDxkaXY+XG5cdFx0XHRcdFx0e0NBTC5tc2coJ2VkaXRpbmcnKX1cblx0XHRcdFx0XHQ8c3BhbiBjbGFzc05hbWU9e0NMQVNTX05BTUVfQ1VSUkVOVF9DT1VOVEVSfT57Q0FMLmNvdW50ZXJDdXJyZW50fTwvc3Bhbj5cblx0XHRcdFx0XHR7W0NBTC5tc2coJ29mJyksIENBTC5jb3VudGVyTmVlZGVkXX1cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHQpLmRpYWxvZyh7XG5cdFx0XHRcdGRpYWxvZ0NsYXNzOiBDTEFTU19OQU1FX0ZFRURCQUNLLFxuXHRcdFx0XHRtaW5IZWlnaHQ6IDkwLFxuXHRcdFx0XHRoZWlnaHQ6IDkwLFxuXHRcdFx0XHR3aWR0aDogNDUwLFxuXHRcdFx0XHRtb2RhbDogdHJ1ZSxcblx0XHRcdFx0Y2xvc2VPbkVzY2FwZTogZmFsc2UsXG5cdFx0XHRcdGRyYWdnYWJsZTogZmFsc2UsXG5cdFx0XHRcdHJlc2l6YWJsZTogZmFsc2UsXG5cdFx0XHR9KTtcblx0XHRcdHRoaXMuJGJvZHkuZmluZChgLiR7Q0xBU1NfTkFNRV9GRUVEQkFDS30gLnVpLWRpYWxvZy10aXRsZWJhcmApLmhpZGUoKTtcblx0XHRcdHRoaXMuJGJvZHkuZmluZChgLiR7Q0xBU1NfTkFNRV9GRUVEQkFDS30gLnVpLWRpYWxvZy1jb250ZW50YCkuaGVpZ2h0KCdhdXRvJyk7XG5cdFx0XHRDQUwuJGNvdW50ZXIgPSB0aGlzLiRib2R5LmZpbmQoYC4ke0NMQVNTX05BTUVfQ1VSUkVOVF9DT1VOVEVSfWApO1xuXHRcdH1cblx0XHRwcml2YXRlIGRvU29tZXRoaW5nKHRhcmdldENhdGVnb3J5OiBzdHJpbmcsIG1vZGU6ICdhZGQnIHwgJ2NvcHknIHwgJ21vdmUnKTogdm9pZCB7XG5cdFx0XHRjb25zdCBtYXJrZWRMYWJlbHM6IFJldHVyblR5cGU8dHlwZW9mIHRoaXMuZ2V0TWFya2VkTGFiZWxzPiA9IHRoaXMuZ2V0TWFya2VkTGFiZWxzKCk7XG5cdFx0XHRpZiAoIW1hcmtlZExhYmVscy5sZW5ndGgpIHtcblx0XHRcdFx0dm9pZCBtdy5ub3RpZnkoQ0FMLm1zZygnbm9uZS1zZWxlY3RlZCcpLCB7XG5cdFx0XHRcdFx0dGFnOiAnY2F0QUxvdCcsXG5cdFx0XHRcdH0pO1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cdFx0XHRDQUwuYWxyZWFkeVRoZXJlID0gW107XG5cdFx0XHRDQUwuY29ubmVjdGlvbkVycm9yID0gW107XG5cdFx0XHRDQUwubm90Rm91bmQgPSBbXTtcblx0XHRcdENBTC5jb3VudGVyQ3VycmVudCA9IDE7XG5cdFx0XHRDQUwuY291bnRlck5lZWRlZCA9IG1hcmtlZExhYmVscy5sZW5ndGg7XG5cdFx0XHR0aGlzLnNob3dQcm9ncmVzcygpO1xuXHRcdFx0Zm9yIChjb25zdCBtYXJrZWRMYWJlbCBvZiBtYXJrZWRMYWJlbHMpIHtcblx0XHRcdFx0dGhpcy5nZXRDb250ZW50KG1hcmtlZExhYmVsLCB0YXJnZXRDYXRlZ29yeSwgbW9kZSk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHByaXZhdGUgYWRkSGVyZSh0YXJnZXRDYXRlZ29yeTogc3RyaW5nKTogdm9pZCB7XG5cdFx0XHR0aGlzLmRvU29tZXRoaW5nKHRhcmdldENhdGVnb3J5LCAnYWRkJyk7XG5cdFx0fVxuXHRcdHByaXZhdGUgY29weUhlcmUodGFyZ2V0Q2F0ZWdvcnk6IHN0cmluZyk6IHZvaWQge1xuXHRcdFx0dGhpcy5kb1NvbWV0aGluZyh0YXJnZXRDYXRlZ29yeSwgJ2NvcHknKTtcblx0XHR9XG5cdFx0cHJpdmF0ZSBtb3ZlSGVyZSh0YXJnZXRDYXRlZ29yeTogc3RyaW5nKTogdm9pZCB7XG5cdFx0XHR0aGlzLmRvU29tZXRoaW5nKHRhcmdldENhdGVnb3J5LCAnbW92ZScpO1xuXHRcdH1cblx0XHRwcml2YXRlIGNyZWF0ZUNhdExpbmtzKHN5bWJvbDogc3RyaW5nLCBjYXRlZ29yaWVzOiBzdHJpbmdbXSk6IHZvaWQge1xuXHRcdFx0Y2F0ZWdvcmllcy5zb3J0KCk7XG5cdFx0XHRmb3IgKGNvbnN0IGNhdGVnb3J5IG9mIGNhdGVnb3JpZXMpIHtcblx0XHRcdFx0Y29uc3QgJHRyID0gJChcblx0XHRcdFx0XHQ8dHIgZGF0YXNldD17e2NhdGVnb3J5fX0+XG5cdFx0XHRcdFx0XHQ8dGQ+e3N5bWJvbH08L3RkPlxuXHRcdFx0XHRcdFx0PHRkPlxuXHRcdFx0XHRcdFx0XHQ8YVxuXHRcdFx0XHRcdFx0XHRcdG9uQ2xpY2s9eyhldmVudCk6IHZvaWQgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdFx0Y29uc3QgJGVsZW1lbnQgPSAkKGV2ZW50LmN1cnJlbnRUYXJnZXQpO1xuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy51cGRhdGVDYXRzKCRlbGVtZW50LmNsb3Nlc3QoJ3RyJykuZGF0YSgnY2F0ZWdvcnknKSBhcyBzdHJpbmcpO1xuXHRcdFx0XHRcdFx0XHRcdH19XG5cdFx0XHRcdFx0XHRcdD5cblx0XHRcdFx0XHRcdFx0XHR7Y2F0ZWdvcnl9XG5cdFx0XHRcdFx0XHRcdDwvYT5cblx0XHRcdFx0XHRcdDwvdGQ+XG5cdFx0XHRcdFx0PC90cj5cblx0XHRcdFx0KTtcblx0XHRcdFx0Ly8gQ2FuJ3QgbW92ZSB0byBzb3VyY2UgY2F0ZWdvcnlcblx0XHRcdFx0aWYgKGNhdGVnb3J5ICE9PSBDQUwuQ1VSUkVOVF9DQVRFR1JPWSAmJiBDQUwuaXNTZWFyY2hNb2RlKSB7XG5cdFx0XHRcdFx0JHRyLmFwcGVuZChcblx0XHRcdFx0XHRcdDx0ZD5cblx0XHRcdFx0XHRcdFx0PGFcblx0XHRcdFx0XHRcdFx0XHRjbGFzc05hbWU9e0NMQVNTX05BTUVfQ09OVEFJTkVSX0RBVEFfQ0FURUdPUllfTElTVF9BQ1RJT059XG5cdFx0XHRcdFx0XHRcdFx0b25DbGljaz17KGV2ZW50KTogdm9pZCA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0XHRjb25zdCAkZWxlbWVudCA9ICQoZXZlbnQuY3VycmVudFRhcmdldCk7XG5cdFx0XHRcdFx0XHRcdFx0XHR0aGlzLmFkZEhlcmUoJGVsZW1lbnQuY2xvc2VzdCgndHInKS5kYXRhKCdjYXRlZ29yeScpIGFzIHN0cmluZyk7XG5cdFx0XHRcdFx0XHRcdFx0fX1cblx0XHRcdFx0XHRcdFx0PlxuXHRcdFx0XHRcdFx0XHRcdHtDQUwubXNnKCdhZGQnKX1cblx0XHRcdFx0XHRcdFx0PC9hPlxuXHRcdFx0XHRcdFx0PC90ZD5cblx0XHRcdFx0XHQpO1xuXHRcdFx0XHR9IGVsc2UgaWYgKGNhdGVnb3J5ICE9PSBDQUwuQ1VSUkVOVF9DQVRFR1JPWSAmJiAhQ0FMLmlzU2VhcmNoTW9kZSkge1xuXHRcdFx0XHRcdCR0ci5hcHBlbmQoXG5cdFx0XHRcdFx0XHQ8PlxuXHRcdFx0XHRcdFx0XHQ8dGQ+XG5cdFx0XHRcdFx0XHRcdFx0PGFcblx0XHRcdFx0XHRcdFx0XHRcdGNsYXNzTmFtZT17Q0xBU1NfTkFNRV9DT05UQUlORVJfREFUQV9DQVRFR09SWV9MSVNUX0FDVElPTn1cblx0XHRcdFx0XHRcdFx0XHRcdG9uQ2xpY2s9eyhldmVudCk6IHZvaWQgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRjb25zdCAkZWxlbWVudCA9ICQoZXZlbnQuY3VycmVudFRhcmdldCk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHRoaXMuY29weUhlcmUoJGVsZW1lbnQuY2xvc2VzdCgndHInKS5kYXRhKCdjYXRlZ29yeScpIGFzIHN0cmluZyk7XG5cdFx0XHRcdFx0XHRcdFx0XHR9fVxuXHRcdFx0XHRcdFx0XHRcdD5cblx0XHRcdFx0XHRcdFx0XHRcdHtDQUwubXNnKCdjb3B5Jyl9XG5cdFx0XHRcdFx0XHRcdFx0PC9hPlxuXHRcdFx0XHRcdFx0XHQ8L3RkPlxuXHRcdFx0XHRcdFx0XHQ8dGQ+XG5cdFx0XHRcdFx0XHRcdFx0PGFcblx0XHRcdFx0XHRcdFx0XHRcdGNsYXNzTmFtZT17Q0xBU1NfTkFNRV9DT05UQUlORVJfREFUQV9DQVRFR09SWV9MSVNUX0FDVElPTn1cblx0XHRcdFx0XHRcdFx0XHRcdG9uQ2xpY2s9eyhldmVudCk6IHZvaWQgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRjb25zdCAkZWxlbWVudCA9ICQoZXZlbnQuY3VycmVudFRhcmdldCk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHRoaXMubW92ZUhlcmUoJGVsZW1lbnQuY2xvc2VzdCgndHInKS5kYXRhKCdjYXRlZ29yeScpIGFzIHN0cmluZyk7XG5cdFx0XHRcdFx0XHRcdFx0XHR9fVxuXHRcdFx0XHRcdFx0XHRcdD5cblx0XHRcdFx0XHRcdFx0XHRcdHtDQUwubXNnKCdtb3ZlJyl9XG5cdFx0XHRcdFx0XHRcdFx0PC9hPlxuXHRcdFx0XHRcdFx0XHQ8L3RkPlxuXHRcdFx0XHRcdFx0PC8+XG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0fVxuXHRcdFx0XHR0aGlzLiRyZXN1bHRMaXN0LmZpbmQoJ3RhYmxlJykuYXBwZW5kKCR0cik7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHByaXZhdGUgc2hvd0NhdGVnb3J5TGlzdCgpOiB2b2lkIHtcblx0XHRcdHRoaXMuJGJvZHkuY3NzKCdjdXJzb3InLCAnJyk7XG5cdFx0XHRjb25zdCBjdXJyZW50Q2F0ZWdvcmllczogc3RyaW5nW10gPSBbQ0FMLmN1cnJlbnRDYXRlZ29yeV07XG5cdFx0XHR0aGlzLiRyZXN1bHRMaXN0LmVtcHR5KCk7XG5cdFx0XHR0aGlzLiRyZXN1bHRMaXN0LmFwcGVuZCg8dGFibGUgLz4pO1xuXHRcdFx0dGhpcy5jcmVhdGVDYXRMaW5rcygn4oaRJywgQ0FMLnBhcmVudENhdHMpO1xuXHRcdFx0dGhpcy5jcmVhdGVDYXRMaW5rcygn4oaSJywgY3VycmVudENhdGVnb3JpZXMpO1xuXHRcdFx0dGhpcy5jcmVhdGVDYXRMaW5rcygn4oaTJywgQ0FMLnN1YkNhdHMpO1xuXHRcdFx0Ly8gUmVzZXQgd2lkdGhcblx0XHRcdHRoaXMuJGNvbnRhaW5lci53aWR0aCgnJyk7XG5cdFx0XHR0aGlzLiRjb250YWluZXIuaGVpZ2h0KCcnKTtcblx0XHRcdHRoaXMuJGNvbnRhaW5lci53aWR0aChNYXRoLm1pbigodGhpcy4kY29udGFpbmVyLndpZHRoKCkgPz8gMCkgKiAxLjEgKyAxNSwgKCQod2luZG93KS53aWR0aCgpID8/IDApIC0gMTApKTtcblx0XHRcdHRoaXMuJHJlc3VsdExpc3QuY3NzKHtcblx0XHRcdFx0J21heC1oZWlnaHQnOiBgJHtDQUwuZGlhbG9nSGVpZ2h0fXB4YCxcblx0XHRcdFx0aGVpZ2h0OiAnJyxcblx0XHRcdH0pO1xuXHRcdH1cblx0XHRwcml2YXRlIGdldFBhcmVudENhdHMoKTogdm9pZCB7XG5cdFx0XHR0aGlzLmRvQVBJQ2FsbChcblx0XHRcdFx0e1xuXHRcdFx0XHRcdGFjdGlvbjogJ3F1ZXJ5Jyxcblx0XHRcdFx0XHR0aXRsZXM6IGBDYXRlZ29yeToke0NBTC5jdXJyZW50Q2F0ZWdvcnl9YCxcblx0XHRcdFx0XHRwcm9wOiAnY2F0ZWdvcmllcycsXG5cdFx0XHRcdH0sXG5cdFx0XHRcdChyZXN1bHQpOiB2b2lkID0+IHtcblx0XHRcdFx0XHRpZiAoIXJlc3VsdCkge1xuXHRcdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRDQUwucGFyZW50Q2F0cyA9IFtdO1xuXHRcdFx0XHRcdGNvbnN0IHtwYWdlc30gPSByZXN1bHQucXVlcnk7XG5cdFx0XHRcdFx0aWYgKHBhZ2VzWzBdPy5taXNzaW5nKSB7XG5cdFx0XHRcdFx0XHR0aGlzLiRib2R5LmNzcygnY3Vyc29yJywgJycpO1xuXHRcdFx0XHRcdFx0dGhpcy4kcmVzdWx0TGlzdC5odG1sKFxuXHRcdFx0XHRcdFx0XHQ8c3BhbiBjbGFzc05hbWU9e0NMQVNTX05BTUVfQ09OVEFJTkVSX0RBVEFfQ0FURUdPUllfTElTVF9OT19GT1VORH0+XG5cdFx0XHRcdFx0XHRcdFx0e0NBTC5tc2coJ2NhdC1ub3QtZm91bmQnKX1cblx0XHRcdFx0XHRcdFx0PC9zcGFuPlxuXHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRcdHRoaXMuY3JlYXRlQ2F0TGlua3MoJ+KGkicsIFtDQUwuY3VycmVudENhdGVnb3J5XSk7XG5cdFx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGxldCBjYXRlZ29yaWVzOiB7dGl0bGU6IHN0cmluZ31bXSA9IFtdO1xuXHRcdFx0XHRcdGlmIChwYWdlc1swXT8uY2F0ZWdvcmllcykge1xuXHRcdFx0XHRcdFx0W3tjYXRlZ29yaWVzfV0gPSBwYWdlcztcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0Zm9yIChjb25zdCBjYXQgb2YgY2F0ZWdvcmllcykge1xuXHRcdFx0XHRcdFx0Q0FMLnBhcmVudENhdHNbQ0FMLnBhcmVudENhdHMubGVuZ3RoXSA9IGNhdC50aXRsZS5yZXBsYWNlKC9eW146XSs6LywgJycpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRDQUwuY291bnRlckNhdCsrO1xuXHRcdFx0XHRcdGlmIChDQUwuY291bnRlckNhdCA9PT0gMikge1xuXHRcdFx0XHRcdFx0dGhpcy5zaG93Q2F0ZWdvcnlMaXN0KCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHQpO1xuXHRcdH1cblx0XHRwcml2YXRlIGdldFN1YkNhdHMoKTogdm9pZCB7XG5cdFx0XHR0aGlzLmRvQVBJQ2FsbChcblx0XHRcdFx0e1xuXHRcdFx0XHRcdGFjdGlvbjogJ3F1ZXJ5Jyxcblx0XHRcdFx0XHRsaXN0OiAnY2F0ZWdvcnltZW1iZXJzJyxcblx0XHRcdFx0XHRjbXR5cGU6ICdzdWJjYXQnLFxuXHRcdFx0XHRcdGNtbGltaXQ6IENBTC5zZXR0aW5ncy5zdWJjYXRjb3VudCBhcyBuZXZlcixcblx0XHRcdFx0XHRjbXRpdGxlOiBgQ2F0ZWdvcnk6JHtDQUwuY3VycmVudENhdGVnb3J5fWAsXG5cdFx0XHRcdH0sXG5cdFx0XHRcdChyZXN1bHQpOiB2b2lkID0+IHtcblx0XHRcdFx0XHRjb25zdCBjYXRzOiB7dGl0bGU6IHN0cmluZ31bXSA9IHJlc3VsdD8ucXVlcnk/LmNhdGVnb3J5bWVtYmVycyB8fCBbXTtcblx0XHRcdFx0XHRDQUwuc3ViQ2F0cyA9IFtdO1xuXHRcdFx0XHRcdGZvciAoY29uc3QgY2F0IG9mIGNhdHMpIHtcblx0XHRcdFx0XHRcdENBTC5zdWJDYXRzW0NBTC5zdWJDYXRzLmxlbmd0aF0gPSBjYXQudGl0bGUucmVwbGFjZSgvXlteOl0rOi8sICcnKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0Q0FMLmNvdW50ZXJDYXQrKztcblx0XHRcdFx0XHRpZiAoQ0FMLmNvdW50ZXJDYXQgPT09IDIpIHtcblx0XHRcdFx0XHRcdHRoaXMuc2hvd0NhdGVnb3J5TGlzdCgpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0KTtcblx0XHR9XG5cdFx0cHJpdmF0ZSBnZXRDYXRlZ29yeUxpc3QoKTogdm9pZCB7XG5cdFx0XHRDQUwuY291bnRlckNhdCA9IDA7XG5cdFx0XHR0aGlzLmdldFBhcmVudENhdHMoKTtcblx0XHRcdHRoaXMuZ2V0U3ViQ2F0cygpO1xuXHRcdH1cblx0XHRwcml2YXRlIHVwZGF0ZUNhdHMoY2F0OiBzdHJpbmcpOiB2b2lkIHtcblx0XHRcdHRoaXMuJGJvZHkuY3NzKCdjdXJzb3InLCAnd2FpdCcpO1xuXHRcdFx0Q0FMLmN1cnJlbnRDYXRlZ29yeSA9IGNhdDtcblx0XHRcdHRoaXMuJHJlc3VsdExpc3QuaHRtbCg8ZGl2PntDQUwubXNnKCdsb2FkaW5nJyl9PC9kaXY+KTtcblx0XHRcdHRoaXMuZ2V0Q2F0ZWdvcnlMaXN0KCk7XG5cdFx0fVxuXG5cdFx0cHJpdmF0ZSBmaW5kQWxsTGFiZWxzKCk6IHZvaWQge1xuXHRcdFx0Ly8gSXQncyBwb3NzaWJsZSB0byBhbGxvdyBhbnkga2luZCBvZiBwYWdlcyBhcyB3ZWxsIGJ1dCB3aGF0IGhhcHBlbnMgaWYgeW91IGNsaWNrIG9uIFwic2VsZWN0IGFsbFwiIGFuZCBkb24ndCBleHBlY3QgaXRcblx0XHRcdGlmIChDQUwuaXNTZWFyY2hNb2RlKSB7XG5cdFx0XHRcdENBTC4kbGFiZWxzID0gdGhpcy4kYm9keS5maW5kKCd0YWJsZS5zZWFyY2hSZXN1bHRJbWFnZScpLmZpbmQoJ3RyPnRkJykuZXEoMSk7XG5cdFx0XHRcdGlmIChDQUwuc2V0dGluZ3MuZWRpdHBhZ2VzKSB7XG5cdFx0XHRcdFx0Q0FMLiRsYWJlbHMgPSBDQUwuJGxhYmVscy5hZGQoJ2Rpdi5tdy1zZWFyY2gtcmVzdWx0LWhlYWRpbmcnKTtcblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Q0FMLiRsYWJlbHMgPSB0aGlzLiRib2R5XG5cdFx0XHRcdFx0LmZpbmQoJ2Rpdi5nYWxsZXJ5dGV4dCcpXG5cdFx0XHRcdFx0LmFkZCh0aGlzLiRib2R5LmZpbmQoJ2RpdiNtdy1jYXRlZ29yeS1tZWRpYScpLmZpbmQoJ2xpW2NsYXNzIT1cImdhbGxlcnlib3hcIl0nKSk7XG5cdFx0XHRcdGlmIChDQUwuc2V0dGluZ3MuZWRpdHBhZ2VzKSB7XG5cdFx0XHRcdFx0Y29uc3QgJHBhZ2VzOiBKUXVlcnk8SFRNTExJRWxlbWVudD4gPSB0aGlzLiRib2R5XG5cdFx0XHRcdFx0XHQuZmluZCgnZGl2I213LXBhZ2VzLCBkaXYjbXctc3ViY2F0ZWdvcmllcycpXG5cdFx0XHRcdFx0XHQuZmluZCgnbGknKTtcblx0XHRcdFx0XHRDQUwuJGxhYmVscyA9IENBTC4kbGFiZWxzLmFkZCgkcGFnZXMpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHByaXZhdGUgbWFrZUNsaWNrYWJsZSgpOiB2b2lkIHtcblx0XHRcdHRoaXMuZmluZEFsbExhYmVscygpO1xuXHRcdFx0Q0FMLiRsYWJlbHMuYWRkQ2xhc3MoQ0xBU1NfTkFNRV9MQUJFTCkub25DYXRBTG90U2hpZnRDbGljaygoKTogdm9pZCA9PiB7XG5cdFx0XHRcdHRoaXMudXBkYXRlU2VsZWN0aW9uQ291bnRlcigpO1xuXHRcdFx0fSk7XG5cdFx0fVxuXG5cdFx0cHJpdmF0ZSBydW4oKTogdm9pZCB7XG5cdFx0XHRpZiAodGhpcy4kbGluay5oYXNDbGFzcyhDTEFTU19OQU1FX0NPTlRBSU5FUl9IRUFEX0xJTktfRU5BQkxFRCkpIHtcblx0XHRcdFx0dGhpcy5tYWtlQ2xpY2thYmxlKCk7XG5cdFx0XHRcdHRoaXMuJGRhdGFDb250YWluZXIuc2hvdygpO1xuXHRcdFx0XHR0aGlzLiRjb250YWluZXIucmVzaXphYmxlKHtcblx0XHRcdFx0XHRhbHNvUmVzaXplOiB0aGlzLiRyZXN1bHRMaXN0LFxuXHRcdFx0XHRcdGhhbmRsZXM6ICduJyxcblx0XHRcdFx0XHRyZXNpemU6IChldmVudCk6IHZvaWQgPT4ge1xuXHRcdFx0XHRcdFx0Y29uc3QgJGN1cnJlbnRUYXJnZXQgPSAkKGV2ZW50LmN1cnJlbnRUYXJnZXQpO1xuXHRcdFx0XHRcdFx0JGN1cnJlbnRUYXJnZXQuY3NzKHtcblx0XHRcdFx0XHRcdFx0bGVmdDogJycsXG5cdFx0XHRcdFx0XHRcdHRvcDogJycsXG5cdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRcdENBTC5kaWFsb2dIZWlnaHQgPSAkY3VycmVudFRhcmdldC5oZWlnaHQoKSA/PyBDQUwuZGlhbG9nSGVpZ2h0O1xuXHRcdFx0XHRcdFx0dGhpcy4kcmVzdWx0TGlzdC5jc3Moe1xuXHRcdFx0XHRcdFx0XHRtYXhIZWlnaHQ6ICcnLFxuXHRcdFx0XHRcdFx0XHR3aWR0aDogJycsXG5cdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHR9KTtcblx0XHRcdFx0dGhpcy4kcmVzdWx0TGlzdC5jc3MoJ21heC1oZWlnaHQnLCAnNDUwcHgnKTtcblx0XHRcdFx0aWYgKENBTC5pc1NlYXJjaE1vZGUpIHtcblx0XHRcdFx0XHR0aGlzLnVwZGF0ZUNhdHMoJ1BpY3R1cmVzIGFuZCBpbWFnZXMnKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHR0aGlzLnVwZGF0ZUNhdHMoQ0FMLkNVUlJFTlRfQ0FURUdST1kpO1xuXHRcdFx0XHR9XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR0aGlzLiRkYXRhQ29udGFpbmVyLmhpZGUoKTtcblx0XHRcdFx0dGhpcy4kY29udGFpbmVyLnJlc2l6YWJsZSgnZGVzdHJveScpO1xuXHRcdFx0XHR0aGlzLiRjb250YWluZXIuY3NzKCd3aWR0aCcsICcnKTtcblx0XHRcdFx0Q0FMLiRsYWJlbHMub2ZmKCdjbGljay5jYXRBTG90Jyk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0aWYgKFxuXHRcdCh3Z05hbWVzcGFjZU51bWJlciA9PT0gLTEgJiYgd2dDYW5vbmljYWxTcGVjaWFsUGFnZU5hbWUgPT09ICdTZWFyY2gnKSB8fFxuXHRcdHdnTmFtZXNwYWNlTnVtYmVyID09PSBPUFRJT05TLnRhcmdldE5hbWVzcGFjZVxuXHQpIHtcblx0XHRpZiAod2dOYW1lc3BhY2VOdW1iZXIgPT09IC0xKSB7XG5cdFx0XHRDQUwuaXNTZWFyY2hNb2RlID0gdHJ1ZTtcblx0XHR9XG5cdFx0LyohIENhdC1hLWxvdCBtZXNzYWdlcyB8IENDLUJZLVNBLTQuMCA8aHR0cHM6Ly9xd2JrLmNjL0g6Q0MtQlktU0EtNC4wPiAqL1xuXHRcdHNldE1lc3NhZ2VzKCk7XG5cdFx0dm9pZCBnZXRCb2R5KCkudGhlbigoJGJvZHk6IEpRdWVyeTxIVE1MQm9keUVsZW1lbnQ+KTogdm9pZCA9PiB7XG5cdFx0XHRuZXcgQ0FMKCRib2R5KS5idWlsZEVsZW1lbnRzKCk7XG5cdFx0fSk7XG5cdH1cbn07XG5cbmV4cG9ydCB7Y2F0QUxvdH07XG4iLCAiaW1wb3J0ICogYXMgT1BUSU9OUyBmcm9tICcuLi9vcHRpb25zLmpzb24nO1xuaW1wb3J0IHtpbml0TXdBcGl9IGZyb20gJ2V4dC5nYWRnZXQuVXRpbCc7XG5cbmNvbnN0IGFwaTogbXcuQXBpID0gaW5pdE13QXBpKGBDYXQtYS1sb3QvJHtPUFRJT05TLnZlcnNpb259YCk7XG5cbmV4cG9ydCB7YXBpfTtcbiIsICJpbXBvcnQge0NMQVNTX05BTUVfTEFCRUwsIENMQVNTX05BTUVfTEFCRUxfTEFTVF9TRUxFQ1RFRCwgQ0xBU1NfTkFNRV9MQUJFTF9TRUxFQ1RFRH0gZnJvbSAnLi9jb25zdGFudCc7XG5cbnR5cGUgT25DYXRBTG90U2hpZnRDbGljayA9ICh0aGlzOiBKUXVlcnksIGNhbGxiYWNrOiAoKSA9PiB1bmtub3duKSA9PiBKUXVlcnk7XG5kZWNsYXJlIGdsb2JhbCB7XG5cdGludGVyZmFjZSBKUXVlcnkge1xuXHRcdG9uQ2F0QUxvdFNoaWZ0Q2xpY2s6IE9uQ2F0QUxvdFNoaWZ0Q2xpY2s7XG5cdH1cbn1cblxuY29uc3QgZXh0ZW5kSlF1ZXJ5UHJvdG90eXBlID0gKCk6IHZvaWQgPT4ge1xuXHQkLmZuLmV4dGVuZCh7XG5cdFx0b25DYXRBTG90U2hpZnRDbGljazogZnVuY3Rpb24gKGNhbGxiYWNrKSB7XG5cdFx0XHRsZXQgcHJldkNoZWNrYm94OiBKUXVlcnkgfCB1bmRlZmluZWQ7XG5cblx0XHRcdC8vIFdoZW4gb3VyIGJveGVzIGFyZSBjbGlja2VkLi5cblx0XHRcdHRoaXMub24oJ2NsaWNrLmNhdEFMb3QnLCAoZXZlbnQ6IEpRdWVyeS5UcmlnZ2VyZWRFdmVudCk6IHZvaWQgPT4ge1xuXHRcdFx0XHQvLyBQcmV2ZW50IGZvbGxvd2luZyB0aGUgbGluayBhbmQgdGV4dCBzZWxlY3Rpb25cblx0XHRcdFx0aWYgKCFldmVudC5jdHJsS2V5KSB7XG5cdFx0XHRcdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIEhpZ2hsaWdodCBsYXN0IHNlbGVjdGVkXG5cdFx0XHRcdHRoaXMucGFyZW50cygnYm9keScpXG5cdFx0XHRcdFx0LmZpbmQoYC4ke0NMQVNTX05BTUVfTEFCRUxfTEFTVF9TRUxFQ1RFRH1gKVxuXHRcdFx0XHRcdC5yZW1vdmVDbGFzcyhDTEFTU19OQU1FX0xBQkVMX0xBU1RfU0VMRUNURUQpO1xuXG5cdFx0XHRcdGxldCAkdGhpc0NvbnRyb2wgPSAkKGV2ZW50LnRhcmdldCkgYXMgSlF1ZXJ5O1xuXHRcdFx0XHRpZiAoISR0aGlzQ29udHJvbC5oYXNDbGFzcyhDTEFTU19OQU1FX0xBQkVMKSkge1xuXHRcdFx0XHRcdCR0aGlzQ29udHJvbCA9ICR0aGlzQ29udHJvbC5wYXJlbnRzKGAuJHtDTEFTU19OQU1FX0xBQkVMfWApO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0JHRoaXNDb250cm9sLmFkZENsYXNzKENMQVNTX05BTUVfTEFCRUxfTEFTVF9TRUxFQ1RFRCkudG9nZ2xlQ2xhc3MoQ0xBU1NfTkFNRV9MQUJFTF9TRUxFQ1RFRCk7XG5cblx0XHRcdFx0Ly8gQW5kIG9uZSBoYXMgYmVlbiBjbGlja2VkIGJlZm9yZS4uLlxuXHRcdFx0XHRpZiAocHJldkNoZWNrYm94ICYmIGV2ZW50LnNoaWZ0S2V5KSB7XG5cdFx0XHRcdFx0Y29uc3QgbWV0aG9kOiAnYWRkQ2xhc3MnIHwgJ3JlbW92ZUNsYXNzJyA9ICR0aGlzQ29udHJvbC5oYXNDbGFzcyhDTEFTU19OQU1FX0xBQkVMX1NFTEVDVEVEKVxuXHRcdFx0XHRcdFx0PyAnYWRkQ2xhc3MnXG5cdFx0XHRcdFx0XHQ6ICdyZW1vdmVDbGFzcyc7XG5cdFx0XHRcdFx0Ly8gQ2hlY2sgb3IgdW5jaGVjayB0aGlzIG9uZSBhbmQgYWxsIGluLWJldHdlZW4gY2hlY2tib3hlc1xuXHRcdFx0XHRcdHRoaXMuc2xpY2UoXG5cdFx0XHRcdFx0XHRNYXRoLm1pbih0aGlzLmluZGV4KHByZXZDaGVja2JveCksIHRoaXMuaW5kZXgoJHRoaXNDb250cm9sKSksXG5cdFx0XHRcdFx0XHRNYXRoLm1heCh0aGlzLmluZGV4KHByZXZDaGVja2JveCksIHRoaXMuaW5kZXgoJHRoaXNDb250cm9sKSkgKyAxXG5cdFx0XHRcdFx0KVttZXRob2RdKENMQVNTX05BTUVfTEFCRUxfU0VMRUNURUQpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdC8vIEVpdGhlciB3YXksIHVwZGF0ZSB0aGUgcHJldkNoZWNrYm94IHZhcmlhYmxlIHRvIHRoZSBvbmUgY2xpY2tlZCBub3dcblx0XHRcdFx0cHJldkNoZWNrYm94ID0gJHRoaXNDb250cm9sO1xuXG5cdFx0XHRcdGlmICh0eXBlb2YgY2FsbGJhY2sgPT09ICdmdW5jdGlvbicpIHtcblx0XHRcdFx0XHRjYWxsYmFjaygpO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblxuXHRcdFx0cmV0dXJuIHRoaXM7XG5cdFx0fSBhcyBPbkNhdEFMb3RTaGlmdENsaWNrLFxuXHR9KTtcbn07XG5cbmV4cG9ydCB7ZXh0ZW5kSlF1ZXJ5UHJvdG90eXBlfTtcbiIsICJpbXBvcnQge2NhdEFMb3R9IGZyb20gJy4vbW9kdWxlcy9jb3JlJztcbmltcG9ydCB7ZXh0ZW5kSlF1ZXJ5UHJvdG90eXBlfSBmcm9tICcuL21vZHVsZXMvZXh0ZW5kSlF1ZXJ5UHJvdG90eXBlJztcblxuLyohIENhdC1hLWxvdCB8IENDLUJZLVNBLTQuMCA8aHR0cHM6Ly9xd2JrLmNjL0g6Q0MtQlktU0EtNC4wPiAqL1xuZXh0ZW5kSlF1ZXJ5UHJvdG90eXBlKCk7XG5jYXRBTG90KCk7XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0MsSUFBQUEsU0FBVTtBQUNWLElBQUFDLGtCQUFtQjtBQUNuQixJQUFBQyxVQUFXOztBQ0FaLElBQU1DLGFBQXFCO0FBQzNCLElBQU1DLHVCQUFBLEdBQUFDLE9BQWtDRixZQUFVLFlBQUE7QUFDbEQsSUFBTUcsNEJBQUEsR0FBQUQsT0FBdUNELHNCQUFvQixRQUFBO0FBQ2pFLElBQU1HLDBDQUFBLEdBQUFGLE9BQXFEQywyQkFBeUIsaUJBQUE7QUFDcEYsSUFBTUUsaURBQUEsR0FBQUgsT0FBNERFLHlDQUF1QyxVQUFBO0FBQ3pHLElBQU1FLG1EQUFBLEdBQUFKLE9BQThERSx5Q0FBdUMsWUFBQTtBQUMzRyxJQUFNRyx5Q0FBQSxHQUFBTCxPQUFvREMsMkJBQXlCLGdCQUFBO0FBQ25GLElBQU1LLHlEQUFBLEdBQUFOLE9BQW9FQywyQkFBeUIsaUNBQUE7QUFDbkcsSUFBTU0sdUNBQUEsR0FBQVAsT0FBa0RDLDJCQUF5QixjQUFBO0FBQ2pGLElBQU1PLDJDQUFBLEdBQUFSLE9BQXNETyxzQ0FBb0MsT0FBQTtBQUNoRyxJQUFNRSw0Q0FBQSxHQUFBVCxPQUF1RE8sc0NBQW9DLFFBQUE7QUFDakcsSUFBTUcsNEJBQUEsR0FBQVYsT0FBdUNELHNCQUFvQixRQUFBO0FBQ2pFLElBQU1ZLGlDQUFBLEdBQUFYLE9BQTRDVSwyQkFBeUIsUUFBQTtBQUMzRSxJQUFNRSx5Q0FBQSxHQUFBWixPQUFvRFcsZ0NBQThCLFdBQUE7QUFDeEYsSUFBTUUsNkJBQUEsR0FBQWIsT0FBd0NGLFlBQVUsa0JBQUE7QUFDeEQsSUFBTWdCLHNCQUFBLEdBQUFkLE9BQWlDRixZQUFVLFdBQUE7QUFDakQsSUFBTWlCLDJCQUFBLEdBQUFmLE9BQXNDYyxxQkFBbUIsUUFBQTtBQUMvRCxJQUFNRSxtQkFBQSxHQUFBaEIsT0FBOEJGLFlBQVUsUUFBQTtBQUM5QyxJQUFNbUIsd0JBQUEsR0FBQWpCLE9BQW1DZ0Isa0JBQWdCLFFBQUE7QUFDekQsSUFBTUUsaUNBQUEsR0FBQWxCLE9BQTRDZ0Isa0JBQWdCLGlCQUFBO0FBQ2xFLElBQU1HLDRCQUFBLEdBQUFuQixPQUF1Q2dCLGtCQUFnQixZQUFBO0FBRTdELElBQU1JLGtCQUEyQjtFQUNoQ0MsV0FBVztJQUNWQyxTQUFTO0lBQ1RDLFlBQVk7RUFDYjtFQUNBQyxXQUFXO0lBQ1ZGLFNBQVM7SUFDVEMsWUFBWTtFQUNiO0VBQ0FFLE9BQU87SUFDTkgsU0FBUztJQUNUQyxZQUFZO0VBQ2I7RUFDQUcsYUFBYTtJQUNaSixTQUFTO0lBQ1RDLFlBQVk7RUFDYjtFQUNBSSxXQUFXO0lBQ1ZMLFNBQVM7SUFDVEMsWUFBWTtJQUNaSyxhQUFhO01BQ1pDLGdCQUFnQjtNQUNoQkMsWUFBWTtNQUNaQyxlQUFlO01BQ2ZDLGFBQWE7SUFDZDtFQUNEO0FBQ0Q7QUFFQSxJQUFNQyxXQUFxQixDQUFDLFdBQVcsV0FBVyxTQUFTLFNBQVMsU0FBUyxTQUFTLFNBQVMsT0FBTzs7QUNwRHRHLElBQU07RUFBQ0M7QUFBYyxJQUFJQyxHQUFHQyxPQUFPQyxJQUFJO0FBRXZDLElBQU1DLG1CQUFtQjs7RUFFeEIsNEJBQTRCOztFQUU1QixrQkFBa0I7RUFDbEIsa0JBQWtCO0VBQ2xCLGlCQUFpQjtFQUNqQiw2QkFBNkI7RUFDN0Isd0JBQXdCO0VBQ3hCLG9CQUFvQjtFQUNwQixpQkFBaUI7RUFDakIsa0JBQWtCO0VBQ2xCLDJCQUEyQjs7RUFFM0IsMkJBQTJCO0VBQzNCLHdCQUF3QjtFQUN4Qiw0QkFBNEI7RUFDNUIseUJBQXlCO0VBQ3pCLDJCQUEyQjtFQUMzQix1QkFDQztFQUNELDJCQUEyQjtFQUMzQiwyQkFBMkI7RUFDM0IsNkJBQTZCOztFQUU3QixxQkFBcUI7RUFDckIscUJBQXFCO0VBQ3JCLGdCQUFnQjtFQUNoQiw2QkFDQztFQUNELCtCQUNDO0VBQ0QsNEJBQ0M7RUFDRCxzQkFBc0I7RUFDdEIsa0JBQWtCO0VBQ2xCLHVCQUF1QjtFQUN2Qix3QkFBd0I7RUFDeEIsdUJBQXVCO0VBQ3ZCLHlCQUF5QjtFQUN6Qiw0QkFBNEI7RUFDNUIsMkJBQTJCOztFQUUzQix5QkFBeUI7RUFDekIsMEJBQTBCO0VBQzFCLDBCQUEwQjtFQUMxQiw0QkFBNEI7QUFDN0I7QUFFQSxJQUFNQyxjQUFjQSxNQUFZO0VBQy9CO0FBQ0EsTUFBSUwsbUJBQW1CLE1BQU07QUFDNUI7RUFDRDtBQUVBLE1BQUksQ0FBQyxXQUFXLFNBQVMsU0FBUyxPQUFPLEVBQUVNLFNBQVNOLGNBQWMsR0FBRztBQUNwRUMsT0FBR00sU0FBU0MsSUFBNkI7O01BRXhDLDRCQUE0Qjs7TUFFNUIsa0JBQWtCO01BQ2xCLGtCQUFrQjtNQUNsQixpQkFBaUI7TUFDakIsNkJBQTZCO01BQzdCLHdCQUF3QjtNQUN4QixvQkFBb0I7TUFDcEIsaUJBQWlCO01BQ2pCLGtCQUFrQjtNQUNsQiwyQkFBMkI7O01BRTNCLDJCQUEyQjtNQUMzQix3QkFBd0I7TUFDeEIsNEJBQTRCO01BQzVCLHlCQUF5QjtNQUN6QiwyQkFBMkI7TUFDM0IsdUJBQ0M7TUFDRCwyQkFBMkI7TUFDM0IsMkJBQTJCO01BQzNCLDZCQUE2Qjs7TUFFN0IscUJBQXFCO01BQ3JCLHFCQUFxQjtNQUNyQixnQkFBZ0I7TUFDaEIsNkJBQTZCO01BQzdCLCtCQUErQjtNQUMvQiw0QkFBNEI7TUFDNUIsc0JBQXNCO01BQ3RCLGtCQUFrQjtNQUNsQix1QkFBdUI7TUFDdkIsd0JBQXdCO01BQ3hCLHVCQUF1QjtNQUN2Qix5QkFBeUI7TUFDekIsNEJBQTRCO01BQzVCLDJCQUEyQjs7TUFFM0IseUJBQXlCO01BQ3pCLDBCQUEwQjtNQUMxQiwwQkFBMEI7TUFDMUIsNEJBQTRCO0lBQzdCLENBQUM7RUFDRixPQUFPO0FBQ05QLE9BQUdNLFNBQVNDLElBQTZCOztNQUV4Qyw0QkFBNEI7O01BRTVCLGtCQUFrQjtNQUNsQixrQkFBa0I7TUFDbEIsaUJBQWlCO01BQ2pCLDZCQUE2QjtNQUM3Qix3QkFBd0I7TUFDeEIsb0JBQW9CO01BQ3BCLGlCQUFpQjtNQUNqQixrQkFBa0I7TUFDbEIsMkJBQTJCOztNQUUzQiwyQkFBMkI7TUFDM0Isd0JBQXdCO01BQ3hCLDRCQUE0QjtNQUM1Qix5QkFBeUI7TUFDekIsMkJBQTJCO01BQzNCLHVCQUNDO01BQ0QsMkJBQTJCO01BQzNCLDJCQUEyQjtNQUMzQiw2QkFBNkI7O01BRTdCLHFCQUFxQjtNQUNyQixxQkFBcUI7TUFDckIsZ0JBQWdCO01BQ2hCLDZCQUE2QjtNQUM3QiwrQkFBK0I7TUFDL0IsNEJBQTRCO01BQzVCLHNCQUFzQjtNQUN0QixrQkFBa0I7TUFDbEIsdUJBQXVCO01BQ3ZCLHdCQUF3QjtNQUN4Qix1QkFBdUI7TUFDdkIseUJBQXlCO01BQ3pCLDRCQUE0QjtNQUM1QiwyQkFBMkI7O01BRTNCLHlCQUF5QjtNQUN6QiwwQkFBMEI7TUFDMUIsMEJBQTBCO01BQzFCLDRCQUE0QjtJQUM3QixDQUFDO0VBQ0Y7QUFDRDs7QUM3SEEsSUFBQUMscUJBQW1DQyxRQUFBLGlCQUFBO0FBQ25DLElBQUFDLHFCQUFrQkMsUUFBQUYsUUFBQSxrQkFBQSxHQUFBLENBQUE7O0FDM0JsQixJQUFBRyxvQkFBd0JILFFBQUEsaUJBQUE7QUFFeEIsSUFBTUksT0FBQSxHQUFjRCxrQkFBQUUsV0FBQSxhQUFBakQsT0FBK0JILE9BQU8sQ0FBRTs7QUQ0QjVELElBQU07RUFBQ3FEO0VBQTRCQztFQUF1QkM7RUFBZ0JDO0VBQW1CQztBQUFPLElBQUluQixHQUFHQyxPQUFPQyxJQUFJO0FBS3RILElBQU1rQixVQUFVQSxNQUFZO0VBQzNCO0VBQ0EsTUFBTUMsSUFBSTtJQUNULE9BQWNDLGVBQWU7SUFFN0IsT0FBd0JDLFdBQUEsdUJBQXVDcEIsa0JBQUE7SUFDL0QsT0FBd0JsQixrQkFBQSx1QkFBMkJBLGlCQUFBO0lBRW5ELE9BQXdCdUMsVUFBQSx1QkFBMEJoRSxRQUFBO0lBQ2xELE9BQXdCaUUsbUJBQUEsdUJBQW1DaEUsaUJBQUE7SUFFM0QsT0FBd0JpRSxtQkFBQSx1QkFBMkJQLFNBQUE7SUFFbkQsT0FBd0JILHdCQUFBLHVCQUFnREEsdUJBQUE7SUFDeEUsT0FBd0JDLGlCQUFBLHVCQUF5Q0EsZ0JBQUE7SUFFakUsT0FBZVUscUJBQXFCO0lBRXBDLE9BQWVkLE1BQUEsdUJBQU1BLEtBQUE7SUFFckIsT0FBZWUsZUFBeUIsQ0FBQTtJQUN4QyxPQUFlQyxrQkFBNEIsQ0FBQTtJQUMzQyxPQUFlQyxXQUFxQixDQUFBO0lBQ3BDLE9BQWVDLGlCQUFpQjtJQUNoQyxPQUFlQyxnQkFBZ0I7SUFFL0IsT0FBZUMsYUFBYTtJQUM1QixPQUFlQyxrQkFBa0I7SUFFakMsT0FBZUMsZUFBZTtJQUM5QixPQUFlQyxZQUFZO0lBQzNCLE9BQWVDLGdCQUFBLE1BQWVyQixzQkFBc0JLLElBQUlJLGdCQUFnQixHQUFBO0lBRXhFLE9BQWVhLGFBQXVCLENBQUE7SUFDdEMsT0FBZUMsVUFBb0IsQ0FBQTtJQUVuQyxPQUFlQyxXQUFvRCxDQUFDO0lBQ3BFLE9BQWVDLGVBQXlDLENBQUM7SUFDekQsT0FBZUMsZ0JBQXdELENBQUM7SUFFeEUsT0FBZUMsWUFBQSxNQUFtQkMsRUFBRSxHQUFBO0lBQ3BDLE9BQWVDLG1CQUFBLE1BQTBCRCxFQUFFLEdBQUE7SUFDM0MsT0FBZUUsV0FBQSxNQUFrQkYsRUFBRSxHQUFBO0lBQ25DLE9BQWVHLG1CQUFBLE1BQTBCSCxFQUFFLEdBQUE7SUFFMUJJO0lBQ0FDO0lBQ0FDO0lBQ0FDO0lBQ0FDO0lBQ0FDO0lBQ0FDO0lBQ0FDO0lBRVZDLFlBQVlSLE9BQWdDO0FBQUEsVUFBQVM7QUFDbEQsVUFBSSxDQUFDekQsR0FBRzBELElBQUksbUJBQW1CLEdBQUc7QUFDakMxRCxXQUFHTSxTQUFTQyxJQUFJYyxJQUFJRSxRQUFRO01BQzdCO0FBRUEsV0FBS3lCLFFBQVFBO0FBQ2IzQixVQUFJc0MsYUFBYTtBQUVqQixZQUFNQyxZQUNMbEQsbUNBQUF2QixRQUFBMEUsY0FBQyxPQUFBO1FBQUlDLFdBQVcsQ0FBQ25HLFlBQVlDLHNCQUFzQixTQUFTO01BQUEsR0FDM0Q4QyxtQ0FBQXZCLFFBQUEwRSxjQUFDLE9BQUE7UUFBSUMsV0FBV2hHO01BQUEsR0FDZjRDLG1DQUFBdkIsUUFBQTBFLGNBQUMsT0FBQTtRQUFJQyxXQUFXNUY7TUFBQSxDQUF3QyxHQUN4RHdDLG1DQUFBdkIsUUFBQTBFLGNBQUMsT0FBQTtRQUFJQyxXQUFXL0Y7TUFBQSxDQUF5QyxHQUN6RDJDLG1DQUFBdkIsUUFBQTBFLGNBQUMsT0FBQSxNQUNBbkQsbUNBQUF2QixRQUFBMEUsY0FBQyxTQUFBO1FBQ0FDLFdBQVczRjtRQUNYNEYsYUFBYTFDLElBQUlxQyxJQUFJLFlBQVk7UUFDakNNLE1BQUs7UUFDTEMsT0FBTzVDLElBQUlDLGdCQUFBbUMsd0JBQWdCekQsR0FBR2tFLEtBQUtDLGNBQWMsUUFBUSxPQUFBLFFBQUFWLDBCQUFBLFNBQUFBLHdCQUFLLEtBQU07UUFDcEVXLFdBQVlDLFdBQWdCO0FBQzNCLGdCQUFNQyxXQUFXMUIsRUFBb0J5QixNQUFNRSxhQUFhO0FBQ3hELGNBQUlGLE1BQU1HLFFBQVEsU0FBUztBQUFBLGdCQUFBQyxvQkFBQUM7QUFDMUIsa0JBQU1DLE9BQUFGLHNCQUFBQyxnQkFBY0osU0FBU00sSUFBSSxPQUFBLFFBQUFGLGtCQUFBLFNBQUEsU0FBYkEsY0FBZ0JHLEtBQUssT0FBQSxRQUFBSix1QkFBQSxTQUFBQSxxQkFBSztBQUM5QyxnQkFBSUUsS0FBSztBQUNSLG1CQUFLRyxXQUFXSCxHQUFHO1lBQ3BCO1VBQ0Q7UUFDRDtNQUFBLENBQ0QsQ0FDRCxHQUNBakUsbUNBQUF2QixRQUFBMEUsY0FBQyxPQUFBO1FBQUlDLFdBQVcxRjtNQUFBLEdBQ2QsQ0FBQ2lELElBQUlxQyxJQUFJLFFBQVEsR0FBRyxHQUFHLEdBQ3hCaEQsbUNBQUF2QixRQUFBMEUsY0FBQyxLQUFBO1FBQ0FDLFdBQVd6RjtRQUNYMEcsU0FBU0EsTUFBWTtBQUNwQixlQUFLQyxVQUFVLElBQUk7UUFDcEI7TUFBQSxHQUVDM0QsSUFBSXFDLElBQUksS0FBSyxDQUNmLEdBQ0MsT0FDRGhELG1DQUFBdkIsUUFBQTBFLGNBQUMsS0FBQTtRQUNBQyxXQUFXeEY7UUFDWHlHLFNBQVNBLE1BQVk7QUFDcEIsZUFBS0MsVUFBVSxLQUFLO1FBQ3JCO01BQUEsR0FFQzNELElBQUlxQyxJQUFJLE1BQU0sQ0FDaEIsQ0FDRCxDQUNELEdBQ0FoRCxtQ0FBQXZCLFFBQUEwRSxjQUFDLE9BQUE7UUFBSUMsV0FBV3ZGO01BQUEsR0FDZm1DLG1DQUFBdkIsUUFBQTBFLGNBQUMsS0FBQTtRQUFFQyxXQUFXdEY7TUFBQSxHQUFnQyxXQUFTLENBQ3hELENBQ0Q7QUFHRCxXQUFLeUUsYUFBYUwsRUFBRWdCLFNBQVM7QUFDN0IsV0FBS1gsV0FBV2dDLFNBQVMsS0FBS2pDLEtBQUs7QUFFbkMsV0FBS0UsaUJBQWlCLEtBQUtELFdBQVdpQyxLQUFBLElBQUFySCxPQUFTQyx5QkFBeUIsQ0FBRTtBQUMxRSxXQUFLcUYsZUFBZSxLQUFLRCxlQUFlZ0MsS0FBQSxJQUFBckgsT0FBU0ssc0NBQXNDLENBQUU7QUFDekYsV0FBS2tGLGNBQWMsS0FBS0YsZUFBZWdDLEtBQUEsSUFBQXJILE9BQVNFLHVDQUF1QyxDQUFFO0FBQ3pGLFdBQUtzRixlQUFlLEtBQUtILGVBQWVnQyxLQUFBLElBQUFySCxPQUNuQ00sc0RBQXNELENBQzNEO0FBRUEsV0FBS21GLFFBQVEsS0FBS0wsV0FBV2lDLEtBQUEsSUFBQXJILE9BQVNVLHlCQUF5QixDQUFFO0FBQ2pFLFdBQUtnRixRQUFRLEtBQUtELE1BQU00QixLQUFBLElBQUFySCxPQUE0QlcsOEJBQThCLENBQUU7SUFDckY7SUFFTzJHLGdCQUFzQjtBQUM1QixZQUFNQyxXQUFtQixJQUFJQyxPQUFBLFFBQUF4SCxPQUFld0QsSUFBSWlFLGVBQWVqRSxJQUFJSSxrQkFBa0IsVUFBVSxHQUFDLEdBQUEsR0FBSyxFQUFFO0FBQ3ZHLFVBQUk4RDtBQUVKLFdBQUtsQyxhQUFhbUMsR0FBRyxvQkFBb0IsTUFBTTtBQUM5Q0QsNkJBQXFCO01BQ3RCLENBQUM7QUFFRCxXQUFLbEMsYUFBYW1DLEdBQUcsa0JBQWtCLE1BQU07QUFDNUNELDZCQUFxQjtNQUN0QixDQUFDO0FBRUQsV0FBS2xDLGFBQWFtQyxHQUFHLGVBQWdCbkIsV0FBZ0I7QUFDcEQsWUFBSWtCLG9CQUFvQjtBQUN2QjtRQUNEO0FBQ0EsY0FBTTtVQUFDaEI7UUFBYSxJQUFJRjtBQUN4QixjQUFNO1VBQUNKLE9BQU93QjtRQUFNLElBQUlsQjtBQUN4QixjQUFNbUIsU0FBaUJELE9BQU9FLFFBQVFQLFVBQVUsRUFBRTtBQUNsRCxZQUFJTSxXQUFXRCxRQUFRO0FBQ3RCbEIsd0JBQWNOLFFBQVF5QjtRQUN2QjtNQUNELENBQUM7QUFFRCxZQUFNRSxtQkFBbUJBLE1BQVk7QUFDcEMsWUFBSXZFLElBQUlNLG9CQUFvQjtBQUMzQjtRQUNEO0FBQ0FOLFlBQUlNLHFCQUFxQjtBQUV6QixhQUFLMEIsYUFBYXdDLGFBQWE7VUFDOUJDLFFBQVFBLENBQUNDLFNBQXlCQyxhQUFrRDtBQUNuRixpQkFBS0MsVUFDSjtjQUNDQyxRQUFRO2NBQ1JDLFdBQVc5RSxJQUFJSTtjQUNmMkUsV0FBVztjQUNYQyxRQUFRTixRQUFRTztZQUNqQixHQUNDQyxZQUFpQjtBQUNqQixrQkFBSUEsT0FBTyxDQUFDLEdBQUc7QUFDZFAseUJBQ0NwRCxFQUFFMkQsT0FBTyxDQUFDLENBQUMsRUFBRUMsSUFBSSxDQUFDQyxRQUFRQyxTQUF5QkEsS0FBS2YsUUFBUVAsVUFBVSxFQUFFLENBQUMsQ0FDOUU7Y0FDRDtZQUNELENBQ0Q7VUFDRDtVQUNBdUIsVUFBVTtZQUNUQyxJQUFJO1lBQ0pDLElBQUk7WUFDSkMsSUFBSSxLQUFLekQ7VUFDVjtVQUNBNEIsVUFBQSxJQUFBcEgsT0FBY0Qsb0JBQW9CO1FBQ25DLENBQUM7TUFDRjtBQUNBLFdBQUsyRixNQUFNaUMsR0FBRyxTQUFVbkIsV0FBZ0I7QUFDdkN6QixVQUFFeUIsTUFBTUUsYUFBYSxFQUFFd0MsWUFBWXRJLHNDQUFzQztBQUN6RW1ILHlCQUFpQjtBQUNqQixhQUFLb0IsSUFBSTtNQUNWLENBQUM7SUFDRjtJQUVBLE9BQWVyRCxlQUFxQjtBQUFBLFVBQUFzRDtBQUNuQyxVQUFJQyxnQkFBQUQsdUJBQW9DRSxPQUFPQyxrQkFBQSxRQUFBSCx5QkFBQSxTQUFBQSx1QkFBZ0IsQ0FBQztBQUNoRSxZQUFNSSxxQkFBcUIsT0FBT0g7QUFDbEMsVUFBS0csdUJBQXVCLFlBQVksQ0FBQ0MsTUFBTUMsUUFBUUwsWUFBWSxLQUFNRyx1QkFBdUIsVUFBVTtBQUN6R0gsdUJBQWUsQ0FBQztNQUNqQjtBQUVBLGVBQUFNLEtBQUEsR0FBQUMsZUFBeUJDLE9BQU9DLEtBQUt0RyxJQUFJcEMsZUFBZSxHQUFBdUksS0FBQUMsYUFBQUcsUUFBQUosTUFBd0I7QUFBQSxZQUFBSztBQUFoRixjQUFXQyxhQUFBTCxhQUFBRCxFQUFBO0FBQ1YsY0FBTU8sVUFBVTFHLElBQUlwQyxnQkFBZ0I2SSxVQUFVO0FBRTlDekcsWUFBSW1CLFNBQVNzRixVQUFVLEtBQUFELHdCQUFJWCxhQUFhWSxVQUFVLE9BQUEsUUFBQUQsMEJBQUEsU0FBQUEsd0JBQUtFLFFBQVE1STtBQUUvRCxZQUFJLENBQUM0SSxRQUFRdEksYUFBYTtBQUN6QjtRQUNEO0FBRUFzSSxnQkFBUUMsU0FBUyxDQUFDO0FBQ2xCLGlCQUFBQyxNQUFBLEdBQUFDLGdCQUF5QlIsT0FBT0MsS0FBS0ksUUFBUXRJLFdBQVcsR0FBQXdJLE1BQUFDLGNBQUFOLFFBQUFLLE9BQUc7QUFBM0QsZ0JBQVdFLGFBQUFELGNBQUFELEdBQUE7QUFDVixnQkFBTUcsVUFBa0JMLFFBQVF0SSxZQUFZMEksVUFBVTtBQUl0REosa0JBQVFDLE9BQU8zRyxJQUFJcUMsSUFBSXlFLFVBQW1CLENBQUMsSUFBSUM7UUFDaEQ7TUFDRDtJQUNEO0lBRUEsT0FBZTFFLElBQUljLFFBQStENkQsTUFBd0I7QUFDekcsWUFBTUMsVUFBQSxhQUFBekssT0FBK0IyRyxHQUFHO0FBSXhDLGFBQU82RCxLQUFLVCxTQUFTNUgsR0FBR29JLFFBQVFFLFNBQVMsR0FBR0QsSUFBSSxFQUFFRSxNQUFNLElBQUl2SSxHQUFHb0ksUUFBUUUsT0FBTyxFQUFFRSxNQUFNO0lBQ3ZGO0lBQ0EsT0FBZWxELGVBQWVtRCxpQkFBeUJDLFVBQTBCO0FBQUEsVUFBQUM7QUFFaEYsWUFBTUMsZ0JBQXdCQyxPQUFPQyxJQUFBQyxvQkFBQUEsa0JBQUFDLHVCQUFBLENBQUEsNkJBQUEsR0FBQSxDQUFBLCtFQUFBLENBQUEsRUFBQTtBQUNyQyxZQUFNQyxrQkFBMEIsSUFBSTVELE9BQU91RCxlQUFlLEdBQUc7QUFDN0QsWUFBTU0saUJBQWtCQyxVQUFxQztBQUM1RCxZQUFJLEVBQUNBLFNBQUEsUUFBQUEsU0FBQSxVQUFBQSxLQUFNdkIsU0FBUTtBQUNsQixpQkFBTztRQUNSO0FBQ0EsWUFBSXdCLFlBQW9CO0FBQ3hCLGlCQUFTQyxJQUFZLEdBQUdBLElBQUlGLEtBQUt2QixRQUFReUIsS0FBSztBQUM3QyxnQkFBTUMsVUFBa0JILEtBQUtJLE1BQU1GLEdBQUdBLElBQUksQ0FBQztBQUMzQyxnQkFBTUcsS0FBYUYsUUFBUUcsWUFBWTtBQUN2QyxnQkFBTUMsS0FBYUosUUFBUUssWUFBWTtBQUN2Q1AsdUJBQWFJLE9BQU9FLEtBQUtKLFVBQUEsSUFBQXpMLE9BQWMyTCxFQUFFLEVBQUEzTCxPQUFHNkwsSUFBRSxHQUFBO1FBQy9DO0FBQ0EsZUFBT04sVUFBVXpELFFBQVEsbUJBQW1Ca0QsT0FBT0MsSUFBQWMscUJBQUFBLG1CQUFBWix1QkFBQSxDQUFBLElBQUEsR0FBQSxDQUFBLE1BQUEsQ0FBQSxFQUFBLENBQVEsRUFBRXJELFFBQVFzRCxpQkFBaUJMLGFBQWE7TUFDcEc7QUFDQUYsaUJBQVdBLFNBQVNlLFlBQVk7QUFDaEMsWUFBTUksYUFBQWxCLHdCQUFnQ3RILElBQUlMLHNCQUFzQnlILGVBQWUsT0FBQSxRQUFBRSwwQkFBQSxTQUFBLFNBQXpDQSxzQkFBNENjLFlBQVk7QUFDOUYsVUFBSUssY0FBc0JaLGVBQWVXLFNBQVM7QUFDbEQsVUFBSW5CLFlBQVltQixjQUFjbkIsVUFBVTtBQUN2Q29CLHVCQUFBLElBQUFqTSxPQUFtQnFMLGVBQWVSLFFBQVEsQ0FBQztNQUM1QztBQUNBLGVBQUFxQixNQUFBLEdBQUFDLGdCQUFzQnRDLE9BQU9DLEtBQUt0RyxJQUFJSixjQUFjLEdBQUE4SSxNQUFBQyxjQUFBcEMsUUFBQW1DLE9BQUc7QUFBdkQsY0FBV0UsVUFBQUQsY0FBQUQsR0FBQTtBQUNWLFlBQ0NFLFFBQVFSLFlBQVksTUFBTUksYUFDMUJJLFFBQVFSLFlBQVksTUFBTWYsWUFDMUJySCxJQUFJSixlQUFlZ0osT0FBTyxNQUFNeEIsaUJBQy9CO0FBQ0RxQix5QkFBQSxJQUFBak0sT0FBbUJxTCxlQUFlZSxPQUFPLENBQUM7UUFDM0M7TUFDRDtBQUNBLGFBQUEsTUFBQXBNLE9BQWFpTSxhQUFXLEdBQUE7SUFDekI7SUFDUUkseUJBQStCO0FBQ3RDN0ksVUFBSTBCLGtCQUFrQjFCLElBQUl5QixRQUFRcUgsT0FBQSxJQUFBdE0sT0FBV21CLHlCQUF5QixDQUFFO0FBQ3hFLFdBQUttRSxhQUFhaUgsS0FBSyxFQUFFQyxLQUFLaEosSUFBSXFDLElBQUksa0JBQWtCckMsSUFBSTBCLGdCQUFnQjZFLE9BQU8wQyxTQUFTLENBQUMsQ0FBQztJQUMvRjtJQUNRdEYsVUFBVWdELFFBQXVCO0FBSXhDM0csVUFBSXlCLFFBQVFpRSxZQUFZL0gsMkJBQTJCZ0osTUFBTTtBQUN6RCxXQUFLa0MsdUJBQXVCO0lBQzdCO0lBRUEsT0FBcUJLLGdCQUFnQkMsVUFBcUM7QUFBQSxhQUFBQyxrQkFBQSxhQUFBO0FBQUEsWUFBQUMsbUJBQUFDO0FBQ3pFLFlBQUl0SixJQUFJb0IsYUFBYStILFFBQVEsTUFBTSxRQUFXO0FBQzdDLGlCQUFPbkosSUFBSW9CLGFBQWErSCxRQUFRO1FBQ2pDO0FBQ0EsU0FBQUcseUJBQUFELG9CQUFBckosSUFBSXFCLGVBQWM4SCxRQUFRLE9BQUEsUUFBQUcsMEJBQUEsU0FBQUEsd0JBQTFCRCxrQkFBa0JGLFFBQVEsSUFBTSxDQUFDO0FBQ2pDLGNBQU1JLFVBQW9CLENBQUE7QUFDMUIsY0FBTUMsU0FBeUI7VUFDOUIzRSxRQUFRO1VBQ1I0RSxRQUFRO1VBQ1JDLGVBQWU7VUFDZkMsTUFBTVI7VUFDTlMsT0FBTztRQUNSO0FBQ0EsaUJBQUFDLE1BQUEsR0FBQUMsWUFBc0JyTCxVQUFBb0wsTUFBQUMsVUFBQXZELFFBQUFzRCxPQUFVO0FBQUEsY0FBQUU7QUFBaEMsZ0JBQVdDLFVBQUFGLFVBQUFELEdBQUE7QUFDVixnQkFBTUksV0FBQUYsd0JBQVUvSixJQUFJcUIsY0FBYzhILFFBQVEsT0FBQSxRQUFBWSwwQkFBQSxTQUFBLFNBQTFCQSxzQkFBOEJDLE9BQU87QUFDckQsY0FBSUMsU0FBUztBQUNaVixvQkFBUUEsUUFBUWhELE1BQU0sSUFBSTBEO0FBQzFCO1VBQ0Q7QUFDQSxjQUFJO0FBQ0gsa0JBQU07Y0FBQy9DO1lBQUssSUFBQSxNQUFVbEgsSUFBSVIsSUFBSVgsSUFBSTtjQUNqQyxHQUFHMks7Y0FDSFE7WUFDRCxDQUFrQjtBQUNsQixrQkFBTTtjQUFDTDtZQUFJLElBQUl6QztBQUNmLGtCQUFNaEMsU0FBUzNELEVBQUVvSSxJQUFJLEVBQUVPLEdBQUcsQ0FBQyxFQUFFUCxLQUFLLEVBQUVuRyxLQUFLO0FBQ3pDK0Ysb0JBQVFBLFFBQVFoRCxNQUFNLElBQUlyQjtBQUMxQixnQkFBSWxGLElBQUlxQixjQUFjOEgsUUFBUSxHQUFHO0FBQ2hDbkosa0JBQUlxQixjQUFjOEgsUUFBUSxFQUFFYSxPQUFPLElBQUk5RTtZQUN4QztVQUNELFFBQVE7VUFBQztRQUNWO0FBRUFsRixZQUFJb0IsYUFBYStILFFBQVEsS0FBQSxHQUFJaEssbUJBQUFnTCxhQUFZWixPQUFPO0FBQ2hELGVBQU9BO01BQUEsQ0FBQSxFQUFBO0lBQ1I7SUFFQSxPQUFxQmEsYUFBYWpCLFVBQW1DO0FBQUEsYUFBQUMsa0JBQUEsYUFBQTtBQUVwRSxjQUFNUixVQUFrQjVJLElBQUlpRSxlQUFlakUsSUFBSUksa0JBQWtCLFVBQVU7QUFFM0UrSSxtQkFBV0EsU0FBUzdFLFFBQVEsV0FBVyxFQUFFLEVBQUVBLFFBQVEsV0FBVyxFQUFFO0FBRWhFLGNBQU0rRixXQUFBLE1BQTJCckssSUFBSWtKLGdCQUFnQkMsUUFBUTtBQUU3RCxjQUFNbUIsaUJBQTJCLENBQUE7QUFBQyxZQUFBQyxhQUFBQywyQkFDZEgsUUFBQSxHQUFBSTtBQUFBLFlBQUE7QUFBcEIsZUFBQUYsV0FBQUcsRUFBQSxHQUFBLEVBQUFELFNBQUFGLFdBQUFJLEVBQUEsR0FBQUMsUUFBOEI7QUFBQSxnQkFBckJaLFVBQUFTLE9BQUE3SDtBQUNSb0gsc0JBQVVyTCxHQUFHa0UsS0FBS2dJLGFBQWFiLE9BQU87QUFFdENBLHNCQUFVQSxRQUFRMUYsUUFBUSxXQUFXa0QsT0FBT0MsSUFBQXFELHFCQUFBQSxtQkFBQW5ELHVCQUFBLENBQUEsT0FBQSxHQUFBLENBQUEsU0FBQSxDQUFBLEVBQUEsQ0FBVztBQUV2RCxrQkFBTW9ELFFBQWdCZixRQUFROUIsTUFBTSxHQUFHLENBQUM7QUFDeEMsZ0JBQUk2QyxNQUFNekMsWUFBWSxNQUFNeUMsTUFBTTNDLFlBQVksR0FBRztBQUNoRDRCLHdCQUFBLElBQUF4TixPQUFjdU8sTUFBTXpDLFlBQVksQ0FBQyxFQUFBOUwsT0FBR3VPLE1BQU0zQyxZQUFZLEdBQUMsR0FBQSxFQUFBNUwsT0FBSXdOLFFBQVE5QixNQUFNLENBQUMsQ0FBQztZQUM1RTtBQUNBb0MsMkJBQWVBLGVBQWUvRCxNQUFNLElBQUl5RDtVQUN6QztRQUFBLFNBQUFnQixLQUFBO0FBQUFULHFCQUFBVSxFQUFBRCxHQUFBO1FBQUEsVUFBQTtBQUFBVCxxQkFBQVcsRUFBQTtRQUFBO0FBR0EsZUFBTyxJQUFJbEgsT0FBQSxnQkFBQXhILE9BQ01vTSxTQUFPLG9CQUFBLEVBQUFwTSxPQUFxQjhOLGVBQWVhLEtBQzFELEdBQ0QsR0FBQyw0Q0FBQSxHQUNELEdBQ0Q7TUFBQSxDQUFBLEVBQUE7SUFDRDtJQUVRdkcsVUFDUHdHLFNBT0FDLFVBQ0M7QUFDRCxZQUFNN0IsU0FBUzRCO0FBSWY1QixhQUFPLFFBQVEsSUFBSTtBQUNuQkEsYUFBTyxlQUFlLElBQUk7QUFDMUIsVUFBSXhCLElBQVk7QUFDaEIsWUFBTXNELFNBQVNBLE1BQVk7QUFDMUIsY0FBTUMsY0FBZUMsV0FBd0I7QUFDNUM3TSxhQUFHOE0sSUFBSUQsTUFBTSwyQkFBMkJBLEtBQUs7QUFDN0MsY0FBSXhELElBQUksR0FBRztBQUNWMEQsdUJBQVdKLFFBQVEsR0FBRztBQUN0QnREO1VBQ0QsV0FBV3dCLE9BQU8sT0FBTyxHQUFHO0FBQzNCeEosZ0JBQUlRLGdCQUFnQlIsSUFBSVEsZ0JBQWdCK0YsTUFBTSxJQUFJaUQsT0FBTyxPQUFPO0FBQ2hFLGlCQUFLbUMsY0FBYztVQUNwQjtRQUNEO0FBQ0EsWUFBSW5DLE9BQU8zRSxXQUFXLFNBQVM7QUFDOUI3RSxjQUFJUixJQUFJWCxJQUFJMkssTUFBTSxFQUFFb0MsS0FBS1AsUUFBUSxFQUFFUSxNQUFNTixXQUFXO1FBQ3JELE9BQU87QUFDTnZMLGNBQUlSLElBQUlzTSxLQUFLdEMsTUFBTSxFQUFFb0MsS0FBS1AsUUFBUSxFQUFFUSxNQUFNTixXQUFXO1FBQ3REO01BQ0Q7QUFDQUQsYUFBTztJQUNSO0lBRUEsT0FBZVMsV0FDZEMsY0FDQUMsZ0JBQ0FDLE1BQ087QUFDUEYsbUJBQWFHLFNBQVMxTyxxQkFBcUI7QUFFM0MsY0FBUXlPLE1BQUE7UUFDUCxLQUFLO0FBQ0pGLHVCQUFhSSxPQUNaL00sbUNBQUF2QixRQUFBMEUsY0FBQW5ELG1CQUFBdkIsUUFBQXVPLFVBQUEsTUFDQ2hOLG1DQUFBdkIsUUFBQTBFLGNBQUMsTUFBQSxJQUFHLEdBQ0h4QyxJQUFJcUMsSUFBSSxhQUFhNEosY0FBYyxDQUNyQyxDQUNEO0FBQ0E7UUFDRCxLQUFLO0FBQ0pELHVCQUFhSSxPQUNaL00sbUNBQUF2QixRQUFBMEUsY0FBQW5ELG1CQUFBdkIsUUFBQXVPLFVBQUEsTUFDQ2hOLG1DQUFBdkIsUUFBQTBFLGNBQUMsTUFBQSxJQUFHLEdBQ0h4QyxJQUFJcUMsSUFBSSxjQUFjNEosY0FBYyxDQUN0QyxDQUNEO0FBQ0E7UUFDRCxLQUFLO0FBQ0pELHVCQUFhSSxPQUNaL00sbUNBQUF2QixRQUFBMEUsY0FBQW5ELG1CQUFBdkIsUUFBQXVPLFVBQUEsTUFDQ2hOLG1DQUFBdkIsUUFBQTBFLGNBQUMsTUFBQSxJQUFHLEdBQ0h4QyxJQUFJcUMsSUFBSSxhQUFhNEosY0FBYyxDQUNyQyxDQUNEO0FBQ0E7UUFDRCxLQUFLO0FBQ0pELHVCQUFhSSxPQUNaL00sbUNBQUF2QixRQUFBMEUsY0FBQW5ELG1CQUFBdkIsUUFBQXVPLFVBQUEsTUFDQ2hOLG1DQUFBdkIsUUFBQTBFLGNBQUMsTUFBQSxJQUFHLEdBQ0h4QyxJQUFJcUMsSUFBSSxlQUFlNEosY0FBYyxDQUN2QyxDQUNEO0FBQ0E7TUFDRjtJQUNEO0lBQ0EsT0FBZUssVUFBVTNDLE1BQXNCO0FBQzlDLGFBQU8zSixJQUFJbUIsU0FBU3RELFlBQVk4TCxLQUFLckYsUUFBUSx5Q0FBeUMsRUFBRSxJQUFJcUY7SUFDN0Y7O0lBQ0EsT0FBZTRDLFlBQVk1QyxNQUFzQjtBQUNoRCxhQUFPQSxLQUFLckYsUUFBUSwwQ0FBMEMsRUFBRTtJQUNqRTtJQUNRa0ksZ0JBQXNCO0FBQzdCLFdBQUs3SyxNQUFNOEssSUFBSTtRQUNkQyxRQUFRO1FBQ1JDLFVBQVU7TUFDWCxDQUFDO0FBQ0QsV0FBS2hMLE1BQU1rQyxLQUFBLElBQUFySCxPQUFTYyxtQkFBbUIsQ0FBRSxFQUFFNk8sU0FBUzVPLHdCQUF3QjtBQUU1RSxZQUFNcVAsVUFBa0I1TSxJQUFJc0IsU0FBU3VMLE9BQU87QUFDNUNELGNBQVE1RCxLQUFLM0osbUNBQUF2QixRQUFBMEUsY0FBQyxNQUFBLE1BQUl4QyxJQUFJcUMsSUFBSSxNQUFNLENBQUUsQ0FBSztBQUN2Q3VLLGNBQVFSLE9BQ1AvTSxtQ0FBQXZCLFFBQUEwRSxjQUFBbkQsbUJBQUF2QixRQUFBdU8sVUFBQSxNQUNFck0sSUFBSXFDLElBQUksVUFBVSxHQUNuQmhELG1DQUFBdkIsUUFBQTBFLGNBQUMsTUFBQSxJQUFHLENBQ0wsQ0FDRDtBQUVBb0ssY0FBUVIsT0FDUC9NLG1DQUFBdkIsUUFBQTBFLGNBQUMsS0FBQTtRQUNBa0IsU0FBU0EsTUFBWTtBQUNwQjFELGNBQUl3QixnQkFBZ0JzTCxPQUFPO0FBQzNCLGVBQUtuSixVQUFVLEtBQUs7UUFDckI7TUFBQSxHQUVDM0QsSUFBSXFDLElBQUksZ0JBQWdCLENBQzFCLENBQ0Q7QUFFQSxVQUFJckMsSUFBSU8sYUFBYWdHLFFBQVE7QUFDNUJxRyxnQkFBUVIsT0FDUC9NLG1DQUFBdkIsUUFBQTBFLGNBQUFuRCxtQkFBQXZCLFFBQUF1TyxVQUFBLE1BQ0NoTixtQ0FBQXZCLFFBQUEwRSxjQUFDLE1BQUEsTUFBSXhDLElBQUlxQyxJQUFJLG1CQUFtQnJDLElBQUlPLGFBQWFnRyxPQUFPMEMsU0FBUyxDQUFDLENBQUUsR0FDbkVqSixJQUFJTyxhQUFhd00sT0FDakIsQ0FBQ0MsS0FBS0MsS0FBS0MsVUFDVkEsUUFBUWxOLElBQUlPLGFBQWFnRyxTQUFTLElBQUksQ0FBQyxHQUFHeUcsS0FBS0MsS0FBSzVOLG1DQUFBdkIsUUFBQTBFLGNBQUMsTUFBQTtVQUFHVyxLQUFLK0o7UUFBQSxDQUFPLENBQUUsSUFBSSxDQUFDLEdBQUdGLEtBQUtDLEdBQUcsR0FDdkYsQ0FBQSxDQUNELENBQ0QsQ0FDRDtNQUNEO0FBQ0EsVUFBSWpOLElBQUlTLFNBQVM4RixRQUFRO0FBQ3hCcUcsZ0JBQVFSLE9BQ1AvTSxtQ0FBQXZCLFFBQUEwRSxjQUFBbkQsbUJBQUF2QixRQUFBdU8sVUFBQSxNQUNDaE4sbUNBQUF2QixRQUFBMEUsY0FBQyxNQUFBLE1BQUl4QyxJQUFJcUMsSUFBSSxxQkFBcUJyQyxJQUFJUyxTQUFTOEYsT0FBTzBDLFNBQVMsQ0FBQyxDQUFFLEdBQ2pFakosSUFBSVMsU0FBU3NNLE9BQ2IsQ0FBQ0MsS0FBS0MsS0FBS0MsVUFDVkEsUUFBUWxOLElBQUlTLFNBQVM4RixTQUFTLElBQUksQ0FBQyxHQUFHeUcsS0FBS0MsS0FBSzVOLG1DQUFBdkIsUUFBQTBFLGNBQUMsTUFBQTtVQUFHVyxLQUFLK0o7UUFBQSxDQUFPLENBQUUsSUFBSSxDQUFDLEdBQUdGLEtBQUtDLEdBQUcsR0FDbkYsQ0FBQSxDQUNELENBQ0QsQ0FDRDtNQUNEO0FBQ0EsVUFBSWpOLElBQUlRLGdCQUFnQitGLFFBQVE7QUFDL0JxRyxnQkFBUVIsT0FDUC9NLG1DQUFBdkIsUUFBQTBFLGNBQUFuRCxtQkFBQXZCLFFBQUF1TyxVQUFBLE1BQ0NoTixtQ0FBQXZCLFFBQUEwRSxjQUFDLE1BQUEsTUFBSXhDLElBQUlxQyxJQUFJLGtCQUFrQnJDLElBQUlRLGdCQUFnQitGLE9BQU8wQyxTQUFTLENBQUMsQ0FBRSxHQUNyRWpKLElBQUlRLGdCQUFnQnVNLE9BQ3BCLENBQUNDLEtBQUtDLEtBQUtDLFVBQ1ZBLFFBQVFsTixJQUFJUSxnQkFBZ0IrRixTQUFTLElBQ2xDLENBQUMsR0FBR3lHLEtBQUtDLEtBQUs1TixtQ0FBQXZCLFFBQUEwRSxjQUFDLE1BQUE7VUFBR1csS0FBSytKO1FBQUEsQ0FBTyxDQUFFLElBQ2hDLENBQUMsR0FBR0YsS0FBS0MsR0FBRyxHQUNoQixDQUFBLENBQ0QsQ0FDRCxDQUNEO01BQ0Q7SUFDRDtJQUNRdEIsZ0JBQXNCO0FBQzdCM0wsVUFBSVU7QUFDSixVQUFJVixJQUFJVSxpQkFBaUJWLElBQUlXLGVBQWU7QUFDM0MsYUFBSzZMLGNBQWM7TUFDcEIsT0FBTztBQUNOeE0sWUFBSXNCLFNBQVNxSSxLQUFLM0osSUFBSVUsY0FBYztNQUNyQztJQUNEO0lBQ2N5TSxlQUViakksUUFDQWtJLGFBQ0FuQixnQkFDQUMsTUFDZ0I7QUFBQSxVQUFBbUIsUUFBQTtBQUFBLGFBQUFqRSxrQkFBQSxhQUFBO0FBQUEsWUFBQWtFO0FBQ2hCLGNBQU0sQ0FBQ0Msa0JBQWtCdkIsWUFBWSxJQUFJb0I7QUFFekMsWUFBSSxFQUFDbEksV0FBQSxRQUFBQSxXQUFBLFVBQUFBLE9BQVMsT0FBTyxJQUFHO0FBQ3ZCbEYsY0FBSVEsZ0JBQWdCUixJQUFJUSxnQkFBZ0IrRixNQUFNLElBQUlnSDtBQUNsREYsZ0JBQUsxQixjQUFjO0FBQ25CO1FBQ0Q7QUFFQSxZQUFJNkIsYUFBcUI7QUFDekIsWUFBSUMsaUJBQXlCO0FBQzdCLFlBQUlDLFlBQW9CO0FBQ3hCMU4sWUFBSWUsWUFBWW1FLE9BQU8sT0FBTyxFQUFFeUksT0FBT0M7QUFDdkMsY0FBTTtVQUFDQztRQUFLLElBQUkzSSxPQUFPLE9BQU87QUFFOUIsY0FBTSxDQUFDNEksSUFBSSxJQUFJRDtBQUNmTCxxQkFBYU0sU0FBQSxRQUFBQSxTQUFBLFdBQUFSLGtCQUFBUSxLQUFNQyxlQUFBLFFBQUFULG9CQUFBLFNBQUEsU0FBTkEsZ0JBQWtCLENBQUMsRUFBRVUsTUFBTUMsS0FBS0M7QUFDN0MsU0FBQztVQUFDVDtRQUFjLElBQUlLO0FBQ3BCLFNBQUM7VUFBQ0o7UUFBUyxDQUFDLElBQUlJLEtBQUtDO0FBRXJCLGNBQU1JLFlBQW9Cbk8sSUFBSUs7QUFFOUIsY0FBTStOLGNBQUEsTUFBb0JwTyxJQUFJb0ssYUFBYTZCLGNBQWM7QUFDekQsWUFBSUMsU0FBUyxZQUFZa0MsWUFBWUMsS0FBS2IsVUFBVSxLQUFLdEIsU0FBUyxRQUFRO0FBQ3pFbE0sY0FBSU8sYUFBYVAsSUFBSU8sYUFBYWdHLE1BQU0sSUFBSWdIO0FBQzVDRixnQkFBSzFCLGNBQWM7QUFDbkI7UUFDRDtBQUdBLFlBQUloQyxPQUFlNkQ7QUFDbkIsWUFBSWM7QUFDSixjQUFNQyxrQkFBQSxNQUF3QnZPLElBQUlvSyxhQUFhK0QsU0FBUztBQUN4RCxnQkFBUWpDLE1BQUE7VUFDUCxLQUFLO0FBQ0p2QyxvQkFBQSxPQUFBbk4sT0FBZXdELElBQUlnQixjQUFZLEdBQUEsRUFBQXhFLE9BQUl5UCxnQkFBYyxNQUFBO0FBQ2pEcUMsc0JBQVV0TyxJQUFJcUMsSUFBSSxhQUFhLEVBQUVpQyxRQUFRLE1BQU0ySCxjQUFjO0FBQzdEO1VBQ0QsS0FBSztBQUNKdEMsbUJBQU9BLEtBQUtyRixRQUNYaUssaUJBQUEsS0FBQS9SLE9BQ0t3RCxJQUFJZ0IsY0FBWSxHQUFBLEVBQUF4RSxPQUFJMlIsV0FBUyxVQUFBLEVBQUEzUixPQUFXd0QsSUFBSWdCLGNBQVksR0FBQSxFQUFBeEUsT0FBSXlQLGdCQUFjLE1BQUEsQ0FDaEY7QUFDQXFDLHNCQUFVdE8sSUFBSXFDLElBQUksY0FBYyxFQUFFaUMsUUFBUSxNQUFNNkosU0FBUyxFQUFFN0osUUFBUSxNQUFNMkgsY0FBYztBQUV2RixnQkFBSXVCLGVBQWU3RCxNQUFNO0FBQ3hCQSxzQkFBQSxPQUFBbk4sT0FBZXdELElBQUlnQixjQUFZLEdBQUEsRUFBQXhFLE9BQUl5UCxnQkFBYyxJQUFBO1lBQ2xEO0FBQ0E7VUFDRCxLQUFLO0FBQ0p0QyxtQkFBT0EsS0FBS3JGLFFBQVFpSyxpQkFBQSxLQUFBL1IsT0FBc0J3RCxJQUFJZ0IsY0FBWSxHQUFBLEVBQUF4RSxPQUFJeVAsZ0JBQWMsTUFBQSxDQUFNO0FBQ2xGcUMsc0JBQVV0TyxJQUFJcUMsSUFBSSxjQUFjLEVBQUVpQyxRQUFRLE1BQU02SixTQUFTLEVBQUU3SixRQUFRLE1BQU0ySCxjQUFjO0FBQ3ZGO1VBQ0QsS0FBSztBQUNKdEMsbUJBQU9BLEtBQUtyRixRQUFRaUssaUJBQWlCLEVBQUU7QUFDdkNELHNCQUFVdE8sSUFBSXFDLElBQUksZ0JBQWdCLEVBQUVpQyxRQUFRLE1BQU02SixTQUFTO0FBQzNEO1FBQ0Y7QUFFQSxZQUFJeEUsU0FBUzZELFlBQVk7QUFDeEJ4TixjQUFJUyxTQUFTVCxJQUFJUyxTQUFTOEYsTUFBTSxJQUFJZ0g7QUFDcENGLGdCQUFLMUIsY0FBYztBQUNuQjtRQUNEO0FBSUEsWUFBSU8sU0FBUyxVQUFVO0FBQ3RCdkMsaUJBQU8zSixJQUFJc00sVUFBVXRNLElBQUl1TSxZQUFZNUMsSUFBSSxDQUFDO1FBQzNDO0FBRUEwRCxjQUFLekksVUFDSjtVQUNDQyxRQUFRO1VBQ1IySixPQUFPeE8sSUFBSWU7VUFDWDBOLE1BQU16TyxJQUFJRztVQUNWeUosT0FBTzJEO1VBQ1BtQixRQUFRO1VBQ1JDLEtBQUs7VUFDTEMsZUFBZWxCO1VBQ2Z2UCxXQUFXNkIsSUFBSW1CLFNBQVNoRDtVQUN4QndMO1VBQ0EyRTtVQUNBYjtRQUNELEdBQ0EsTUFBWTtBQUNYSixnQkFBSzFCLGNBQWM7UUFDcEIsQ0FDRDtBQUVBM0wsWUFBSStMLFdBQVdDLGNBQWNDLGdCQUFnQkMsSUFBSTtNQUFBLENBQUEsRUFBQTtJQUNsRDtJQUNRMkMsV0FDUHpCLGFBQ0FuQixnQkFDQUMsTUFDTztBQUNQLFdBQUt0SCxVQUNKO1FBQ0NDLFFBQVE7UUFDUjZFLGVBQWU7UUFDZm9GLE1BQU07UUFDTkMsUUFBUTNCLFlBQVksQ0FBQztRQUNyQjRCLE1BQU07UUFDTkMsUUFBUSxDQUFDLFdBQVcsV0FBVztRQUMvQkMsU0FBUztNQUNWLEdBQ0NoSyxZQUFpQjtBQUVqQixhQUFLLEtBQUtpSSxlQUFlakksUUFBUWtJLGFBQWFuQixnQkFBZ0JDLElBQUk7TUFDbkUsQ0FDRDtJQUNEO0lBQ0EsT0FBZWlELGlCQUFpQkMsTUFBa0M7QUFDakUsVUFBSTtBQUFBLFlBQUFDLHVCQUFBQztBQUNILGlCQUFBRCx5QkFBQUMseUJBQVFDLG1CQUFtQkgsU0FBQSxRQUFBQSxTQUFBLFNBQUFBLE9BQVEsRUFBRSxFQUFFSSxNQUFNLHNCQUFzQixPQUFBLFFBQUFGLDJCQUFBLFNBQUEsU0FBM0RBLHVCQUErRCxDQUFDLE9BQUEsUUFBQUQsMEJBQUEsU0FBQUEsd0JBQUssSUFBSS9LLFFBQVEsTUFBTSxHQUFHO01BQ25HLFFBQVE7QUFDUCxlQUFPO01BQ1I7SUFDRDtJQUNRbUwsa0JBQXNDO0FBQzdDLFlBQU1DLGVBQXdELENBQUE7QUFDOUQxUCxVQUFJMEIsa0JBQWtCMUIsSUFBSXlCLFFBQVFxSCxPQUFBLElBQUF0TSxPQUFXbUIseUJBQXlCLENBQUU7QUFDeEVxQyxVQUFJMEIsZ0JBQWdCaU8sS0FBSyxDQUFDdkssUUFBUXdLLFVBQWdCO0FBQUEsWUFBQUM7QUFDakQsY0FBTUMsU0FBaUJ2TyxFQUFFcU8sS0FBSztBQUM5QixjQUFNRyxhQUFxQkQsT0FBT2pNLEtBQUssbUNBQW1DO0FBQzFFLGNBQU0rRixVQUNMaUcsbUJBQUFFLFdBQVdDLEtBQUssT0FBTyxPQUFBLFFBQUFILHFCQUFBLFNBQUEsU0FBdkJBLGlCQUEwQnJNLEtBQUssTUFDL0J4RCxJQUFJbVAsaUJBQWlCWSxXQUFXQyxLQUFLLE1BQU0sQ0FBQyxLQUM1Q2hRLElBQUltUCxpQkFBaUJXLE9BQU9qTSxLQUFLLDRCQUE0QixFQUFFbU0sS0FBSyxNQUFNLENBQUM7QUFDNUVOLHFCQUFhQSxhQUFhbkosTUFBTSxJQUFJLENBQUNxRCxPQUFPa0csTUFBTTtNQUNuRCxDQUFDO0FBQ0QsYUFBT0o7SUFDUjtJQUNRTyxlQUFxQjtBQUM1QixXQUFLdE8sTUFBTThLLElBQUk7UUFDZEMsUUFBUTtRQUNSQyxVQUFVO01BQ1gsQ0FBQztBQUNEM00sVUFBSXdCLGtCQUFrQkQsRUFDckJsQyxtQ0FBQXZCLFFBQUEwRSxjQUFDLE9BQUEsTUFDQ3hDLElBQUlxQyxJQUFJLFNBQVMsR0FDbEJoRCxtQ0FBQXZCLFFBQUEwRSxjQUFDLFFBQUE7UUFBS0MsV0FBV3BGO01BQUEsR0FBNkIyQyxJQUFJVSxjQUFlLEdBQ2hFLENBQUNWLElBQUlxQyxJQUFJLElBQUksR0FBR3JDLElBQUlXLGFBQWEsQ0FDbkMsQ0FDRCxFQUFFdVAsT0FBTztRQUNSQyxhQUFhN1M7UUFDYjhTLFdBQVc7UUFDWEMsUUFBUTtRQUNSQyxPQUFPO1FBQ1BDLE9BQU87UUFDUEMsZUFBZTtRQUNmQyxXQUFXO1FBQ1hDLFdBQVc7TUFDWixDQUFDO0FBQ0QsV0FBSy9PLE1BQU1rQyxLQUFBLElBQUFySCxPQUFTYyxxQkFBbUIsc0JBQUEsQ0FBc0IsRUFBRXFULEtBQUs7QUFDcEUsV0FBS2hQLE1BQU1rQyxLQUFBLElBQUFySCxPQUFTYyxxQkFBbUIscUJBQUEsQ0FBcUIsRUFBRStTLE9BQU8sTUFBTTtBQUMzRXJRLFVBQUlzQixXQUFXLEtBQUtLLE1BQU1rQyxLQUFBLElBQUFySCxPQUFTYSwwQkFBMEIsQ0FBRTtJQUNoRTtJQUNRdVQsWUFBWTNFLGdCQUF3QkMsTUFBcUM7QUFDaEYsWUFBTXdELGVBQXdELEtBQUtELGdCQUFnQjtBQUNuRixVQUFJLENBQUNDLGFBQWFuSixRQUFRO0FBQ3pCLGFBQUs1SCxHQUFHa1MsT0FBTzdRLElBQUlxQyxJQUFJLGVBQWUsR0FBRztVQUN4Q3lPLEtBQUs7UUFDTixDQUFDO0FBQ0Q7TUFDRDtBQUNBOVEsVUFBSU8sZUFBZSxDQUFBO0FBQ25CUCxVQUFJUSxrQkFBa0IsQ0FBQTtBQUN0QlIsVUFBSVMsV0FBVyxDQUFBO0FBQ2ZULFVBQUlVLGlCQUFpQjtBQUNyQlYsVUFBSVcsZ0JBQWdCK08sYUFBYW5KO0FBQ2pDLFdBQUswSixhQUFhO0FBQUEsVUFBQWMsYUFBQXZHLDJCQUNRa0YsWUFBQSxHQUFBc0I7QUFBQSxVQUFBO0FBQTFCLGFBQUFELFdBQUFyRyxFQUFBLEdBQUEsRUFBQXNHLFNBQUFELFdBQUFwRyxFQUFBLEdBQUFDLFFBQXdDO0FBQUEsZ0JBQTdCd0MsY0FBQTRELE9BQUFwTztBQUNWLGVBQUtpTSxXQUFXekIsYUFBYW5CLGdCQUFnQkMsSUFBSTtRQUNsRDtNQUFBLFNBQUFsQixLQUFBO0FBQUErRixtQkFBQTlGLEVBQUFELEdBQUE7TUFBQSxVQUFBO0FBQUErRixtQkFBQTdGLEVBQUE7TUFBQTtJQUNEO0lBQ1ErRixRQUFRaEYsZ0JBQThCO0FBQzdDLFdBQUsyRSxZQUFZM0UsZ0JBQWdCLEtBQUs7SUFDdkM7SUFDUWlGLFNBQVNqRixnQkFBOEI7QUFDOUMsV0FBSzJFLFlBQVkzRSxnQkFBZ0IsTUFBTTtJQUN4QztJQUNRa0YsU0FBU2xGLGdCQUE4QjtBQUM5QyxXQUFLMkUsWUFBWTNFLGdCQUFnQixNQUFNO0lBQ3hDO0lBQ1FtRixlQUFlQyxRQUFnQkMsWUFBNEI7QUFDbEVBLGlCQUFXQyxLQUFLO0FBQUEsVUFBQUMsYUFBQWhILDJCQUNPOEcsVUFBQSxHQUFBRztBQUFBLFVBQUE7QUFBdkIsYUFBQUQsV0FBQTlHLEVBQUEsR0FBQSxFQUFBK0csU0FBQUQsV0FBQTdHLEVBQUEsR0FBQUMsUUFBbUM7QUFBQSxnQkFBeEJ6QixXQUFBc0ksT0FBQTdPO0FBQ1YsZ0JBQU04TyxNQUFNblEsRUFDWGxDLG1DQUFBdkIsUUFBQTBFLGNBQUMsTUFBQTtZQUFHbVAsU0FBUztjQUFDeEk7WUFBUTtVQUFBLEdBQ3JCOUosbUNBQUF2QixRQUFBMEUsY0FBQyxNQUFBLE1BQUk2TyxNQUFPLEdBQ1poUyxtQ0FBQXZCLFFBQUEwRSxjQUFDLE1BQUEsTUFDQW5ELG1DQUFBdkIsUUFBQTBFLGNBQUMsS0FBQTtZQUNBa0IsU0FBVVYsV0FBZ0I7QUFDekIsb0JBQU1DLFdBQVcxQixFQUFFeUIsTUFBTUUsYUFBYTtBQUN0QyxtQkFBS08sV0FBV1IsU0FBUzJPLFFBQVEsSUFBSSxFQUFFQyxLQUFLLFVBQVUsQ0FBVztZQUNsRTtVQUFBLEdBRUMxSSxRQUNGLENBQ0QsQ0FDRCxDQUNEO0FBRUEsY0FBSUEsYUFBYW5KLElBQUlLLG9CQUFvQkwsSUFBSUMsY0FBYztBQUMxRHlSLGdCQUFJdEYsT0FDSC9NLG1DQUFBdkIsUUFBQTBFLGNBQUMsTUFBQSxNQUNBbkQsbUNBQUF2QixRQUFBMEUsY0FBQyxLQUFBO2NBQ0FDLFdBQVc5RjtjQUNYK0csU0FBVVYsV0FBZ0I7QUFDekIsc0JBQU1DLFdBQVcxQixFQUFFeUIsTUFBTUUsYUFBYTtBQUN0QyxxQkFBSytOLFFBQVFoTyxTQUFTMk8sUUFBUSxJQUFJLEVBQUVDLEtBQUssVUFBVSxDQUFXO2NBQy9EO1lBQUEsR0FFQzdSLElBQUlxQyxJQUFJLEtBQUssQ0FDZixDQUNELENBQ0Q7VUFDRCxXQUFXOEcsYUFBYW5KLElBQUlLLG9CQUFvQixDQUFDTCxJQUFJQyxjQUFjO0FBQ2xFeVIsZ0JBQUl0RixPQUNIL00sbUNBQUF2QixRQUFBMEUsY0FBQW5ELG1CQUFBdkIsUUFBQXVPLFVBQUEsTUFDQ2hOLG1DQUFBdkIsUUFBQTBFLGNBQUMsTUFBQSxNQUNBbkQsbUNBQUF2QixRQUFBMEUsY0FBQyxLQUFBO2NBQ0FDLFdBQVc5RjtjQUNYK0csU0FBVVYsV0FBZ0I7QUFDekIsc0JBQU1DLFdBQVcxQixFQUFFeUIsTUFBTUUsYUFBYTtBQUN0QyxxQkFBS2dPLFNBQVNqTyxTQUFTMk8sUUFBUSxJQUFJLEVBQUVDLEtBQUssVUFBVSxDQUFXO2NBQ2hFO1lBQUEsR0FFQzdSLElBQUlxQyxJQUFJLE1BQU0sQ0FDaEIsQ0FDRCxHQUNBaEQsbUNBQUF2QixRQUFBMEUsY0FBQyxNQUFBLE1BQ0FuRCxtQ0FBQXZCLFFBQUEwRSxjQUFDLEtBQUE7Y0FDQUMsV0FBVzlGO2NBQ1grRyxTQUFVVixXQUFnQjtBQUN6QixzQkFBTUMsV0FBVzFCLEVBQUV5QixNQUFNRSxhQUFhO0FBQ3RDLHFCQUFLaU8sU0FBU2xPLFNBQVMyTyxRQUFRLElBQUksRUFBRUMsS0FBSyxVQUFVLENBQVc7Y0FDaEU7WUFBQSxHQUVDN1IsSUFBSXFDLElBQUksTUFBTSxDQUNoQixDQUNELENBQ0QsQ0FDRDtVQUNEO0FBQ0EsZUFBS04sWUFBWThCLEtBQUssT0FBTyxFQUFFdUksT0FBT3NGLEdBQUc7UUFDMUM7TUFBQSxTQUFBMUcsS0FBQTtBQUFBd0csbUJBQUF2RyxFQUFBRCxHQUFBO01BQUEsVUFBQTtBQUFBd0csbUJBQUF0RyxFQUFBO01BQUE7SUFDRDtJQUNRNEcsbUJBQXlCO0FBQUEsVUFBQUMsdUJBQUFDO0FBQ2hDLFdBQUtyUSxNQUFNOEssSUFBSSxVQUFVLEVBQUU7QUFDM0IsWUFBTXdGLG9CQUE4QixDQUFDalMsSUFBSWEsZUFBZTtBQUN4RCxXQUFLa0IsWUFBWW1RLE1BQU07QUFDdkIsV0FBS25RLFlBQVlxSyxPQUFPL00sbUNBQUF2QixRQUFBMEUsY0FBQyxTQUFBLElBQU0sQ0FBRTtBQUNqQyxXQUFLNE8sZUFBZSxLQUFLcFIsSUFBSWlCLFVBQVU7QUFDdkMsV0FBS21RLGVBQWUsS0FBS2EsaUJBQWlCO0FBQzFDLFdBQUtiLGVBQWUsS0FBS3BSLElBQUlrQixPQUFPO0FBRXBDLFdBQUtVLFdBQVcwTyxNQUFNLEVBQUU7QUFDeEIsV0FBSzFPLFdBQVd5TyxPQUFPLEVBQUU7QUFDekIsV0FBS3pPLFdBQVcwTyxNQUFNNkIsS0FBS0MsTUFBQUwsd0JBQUssS0FBS25RLFdBQVcwTyxNQUFNLE9BQUEsUUFBQXlCLDBCQUFBLFNBQUFBLHdCQUFLLEtBQUssTUFBTSxNQUFBQyxXQUFLelEsRUFBRXVFLE1BQU0sRUFBRXdLLE1BQU0sT0FBQSxRQUFBMEIsYUFBQSxTQUFBQSxXQUFLLEtBQUssRUFBRSxDQUFDO0FBQ3hHLFdBQUtqUSxZQUFZMEssSUFBSTtRQUNwQixjQUFBLEdBQUFqUSxPQUFpQndELElBQUljLGNBQVksSUFBQTtRQUNqQ3VQLFFBQVE7TUFDVCxDQUFDO0lBQ0Y7SUFDUWdDLGdCQUFzQjtBQUM3QixXQUFLek4sVUFDSjtRQUNDQyxRQUFRO1FBQ1JrSyxRQUFBLFlBQUF2UyxPQUFvQndELElBQUlhLGVBQWU7UUFDdkNtTyxNQUFNO01BQ1AsR0FDQzlKLFlBQWlCO0FBQUEsWUFBQW9OLFNBQUFDO0FBQ2pCLFlBQUksQ0FBQ3JOLFFBQVE7QUFDWjtRQUNEO0FBQ0FsRixZQUFJaUIsYUFBYSxDQUFBO0FBQ2pCLGNBQU07VUFBQzRNO1FBQUssSUFBSTNJLE9BQU9zTjtBQUN2QixhQUFBRixVQUFJekUsTUFBTSxDQUFDLE9BQUEsUUFBQXlFLFlBQUEsVUFBUEEsUUFBVUcsU0FBUztBQUN0QixlQUFLOVEsTUFBTThLLElBQUksVUFBVSxFQUFFO0FBQzNCLGVBQUsxSyxZQUFZaUgsS0FDaEIzSixtQ0FBQXZCLFFBQUEwRSxjQUFDLFFBQUE7WUFBS0MsV0FBVzdGO1VBQUEsR0FDZm9ELElBQUlxQyxJQUFJLGVBQWUsQ0FDekIsQ0FDRDtBQUNBLGVBQUsrTyxlQUFlLEtBQUssQ0FBQ3BSLElBQUlhLGVBQWUsQ0FBQztBQUM5QztRQUNEO0FBQ0EsWUFBSXlRLGFBQWdDLENBQUE7QUFDcEMsYUFBQWlCLFdBQUkxRSxNQUFNLENBQUMsT0FBQSxRQUFBMEUsYUFBQSxVQUFQQSxTQUFVakIsWUFBWTtBQUN6QixXQUFDO1lBQUNBO1VBQVUsQ0FBQyxJQUFJekQ7UUFDbEI7QUFBQSxZQUFBNkUsYUFBQWxJLDJCQUNrQjhHLFVBQUEsR0FBQXFCO0FBQUEsWUFBQTtBQUFsQixlQUFBRCxXQUFBaEksRUFBQSxHQUFBLEVBQUFpSSxTQUFBRCxXQUFBL0gsRUFBQSxHQUFBQyxRQUE4QjtBQUFBLGtCQUFuQnRILE1BQUFxUCxPQUFBL1A7QUFDVjVDLGdCQUFJaUIsV0FBV2pCLElBQUlpQixXQUFXc0YsTUFBTSxJQUFJakQsSUFBSXNHLE1BQU10RixRQUFRLFdBQVcsRUFBRTtVQUN4RTtRQUFBLFNBQUEwRyxLQUFBO0FBQUEwSCxxQkFBQXpILEVBQUFELEdBQUE7UUFBQSxVQUFBO0FBQUEwSCxxQkFBQXhILEVBQUE7UUFBQTtBQUNBbEwsWUFBSVk7QUFDSixZQUFJWixJQUFJWSxlQUFlLEdBQUc7QUFDekIsZUFBS2tSLGlCQUFpQjtRQUN2QjtNQUNELENBQ0Q7SUFDRDtJQUNRYyxhQUFtQjtBQUMxQixXQUFLaE8sVUFDSjtRQUNDQyxRQUFRO1FBQ1JnTyxNQUFNO1FBQ05DLFFBQVE7UUFDUkMsU0FBUy9TLElBQUltQixTQUFTakQ7UUFDdEI4VSxTQUFBLFlBQUF4VyxPQUFxQndELElBQUlhLGVBQWU7TUFDekMsR0FDQ3FFLFlBQWlCO0FBQUEsWUFBQStOO0FBQ2pCLGNBQU1DLFFBQTBCaE8sV0FBQSxRQUFBQSxXQUFBLFdBQUErTixnQkFBQS9OLE9BQVFzTixXQUFBLFFBQUFTLGtCQUFBLFNBQUEsU0FBUkEsY0FBZUUsb0JBQW1CLENBQUE7QUFDbEVuVCxZQUFJa0IsVUFBVSxDQUFBO0FBQUMsWUFBQWtTLGFBQUE1SSwyQkFDRzBJLElBQUEsR0FBQUc7QUFBQSxZQUFBO0FBQWxCLGVBQUFELFdBQUExSSxFQUFBLEdBQUEsRUFBQTJJLFNBQUFELFdBQUF6SSxFQUFBLEdBQUFDLFFBQXdCO0FBQUEsa0JBQWJ0SCxNQUFBK1AsT0FBQXpRO0FBQ1Y1QyxnQkFBSWtCLFFBQVFsQixJQUFJa0IsUUFBUXFGLE1BQU0sSUFBSWpELElBQUlzRyxNQUFNdEYsUUFBUSxXQUFXLEVBQUU7VUFDbEU7UUFBQSxTQUFBMEcsS0FBQTtBQUFBb0kscUJBQUFuSSxFQUFBRCxHQUFBO1FBQUEsVUFBQTtBQUFBb0kscUJBQUFsSSxFQUFBO1FBQUE7QUFDQWxMLFlBQUlZO0FBQ0osWUFBSVosSUFBSVksZUFBZSxHQUFHO0FBQ3pCLGVBQUtrUixpQkFBaUI7UUFDdkI7TUFDRCxDQUNEO0lBQ0Q7SUFDUXdCLGtCQUF3QjtBQUMvQnRULFVBQUlZLGFBQWE7QUFDakIsV0FBS3lSLGNBQWM7QUFDbkIsV0FBS08sV0FBVztJQUNqQjtJQUNRblAsV0FBV0gsS0FBbUI7QUFDckMsV0FBSzNCLE1BQU04SyxJQUFJLFVBQVUsTUFBTTtBQUMvQnpNLFVBQUlhLGtCQUFrQnlDO0FBQ3RCLFdBQUt2QixZQUFZaUgsS0FBSzNKLG1DQUFBdkIsUUFBQTBFLGNBQUMsT0FBQSxNQUFLeEMsSUFBSXFDLElBQUksU0FBUyxDQUFFLENBQU07QUFDckQsV0FBS2lSLGdCQUFnQjtJQUN0QjtJQUVRQyxnQkFBc0I7QUFFN0IsVUFBSXZULElBQUlDLGNBQWM7QUFDckJELFlBQUl5QixVQUFVLEtBQUtFLE1BQU1rQyxLQUFLLHlCQUF5QixFQUFFQSxLQUFLLE9BQU8sRUFBRXFHLEdBQUcsQ0FBQztBQUMzRSxZQUFJbEssSUFBSW1CLFNBQVNuRCxXQUFXO0FBQzNCZ0MsY0FBSXlCLFVBQVV6QixJQUFJeUIsUUFBUStSLElBQUksOEJBQThCO1FBQzdEO01BQ0QsT0FBTztBQUNOeFQsWUFBSXlCLFVBQVUsS0FBS0UsTUFDakJrQyxLQUFLLGlCQUFpQixFQUN0QjJQLElBQUksS0FBSzdSLE1BQU1rQyxLQUFLLHVCQUF1QixFQUFFQSxLQUFLLHlCQUF5QixDQUFDO0FBQzlFLFlBQUk3RCxJQUFJbUIsU0FBU25ELFdBQVc7QUFDM0IsZ0JBQU15VixTQUFnQyxLQUFLOVIsTUFDekNrQyxLQUFLLG9DQUFvQyxFQUN6Q0EsS0FBSyxJQUFJO0FBQ1g3RCxjQUFJeUIsVUFBVXpCLElBQUl5QixRQUFRK1IsSUFBSUMsTUFBTTtRQUNyQztNQUNEO0lBQ0Q7SUFDUUMsZ0JBQXNCO0FBQzdCLFdBQUtILGNBQWM7QUFDbkJ2VCxVQUFJeUIsUUFBUTBLLFNBQVMzTyxnQkFBZ0IsRUFBRW1XLG9CQUFvQixNQUFZO0FBQ3RFLGFBQUs5Syx1QkFBdUI7TUFDN0IsQ0FBQztJQUNGO0lBRVFsRCxNQUFZO0FBQ25CLFVBQUksS0FBS3pELE1BQU0wUixTQUFTeFcsc0NBQXNDLEdBQUc7QUFDaEUsYUFBS3NXLGNBQWM7QUFDbkIsYUFBSzdSLGVBQWVrSCxLQUFLO0FBQ3pCLGFBQUtuSCxXQUFXOE8sVUFBVTtVQUN6Qm1ELFlBQVksS0FBSzlSO1VBQ2pCK1IsU0FBUztVQUNUQyxRQUFTL1EsV0FBZ0I7QUFBQSxnQkFBQWdSO0FBQ3hCLGtCQUFNQyxpQkFBaUIxUyxFQUFFeUIsTUFBTUUsYUFBYTtBQUM1QytRLDJCQUFleEgsSUFBSTtjQUNsQnlILE1BQU07Y0FDTkMsS0FBSztZQUNOLENBQUM7QUFDRG5VLGdCQUFJYyxnQkFBQWtULHdCQUFlQyxlQUFlNUQsT0FBTyxPQUFBLFFBQUEyRCwwQkFBQSxTQUFBQSx3QkFBS2hVLElBQUljO0FBQ2xELGlCQUFLaUIsWUFBWTBLLElBQUk7Y0FDcEIySCxXQUFXO2NBQ1g5RCxPQUFPO1lBQ1IsQ0FBQztVQUNGO1FBQ0QsQ0FBQztBQUNELGFBQUt2TyxZQUFZMEssSUFBSSxjQUFjLE9BQU87QUFDMUMsWUFBSXpNLElBQUlDLGNBQWM7QUFDckIsZUFBS3dELFdBQVcscUJBQXFCO1FBQ3RDLE9BQU87QUFDTixlQUFLQSxXQUFXekQsSUFBSUssZ0JBQWdCO1FBQ3JDO01BQ0QsT0FBTztBQUNOLGFBQUt3QixlQUFlOE8sS0FBSztBQUN6QixhQUFLL08sV0FBVzhPLFVBQVUsU0FBUztBQUNuQyxhQUFLOU8sV0FBVzZLLElBQUksU0FBUyxFQUFFO0FBQy9Cek0sWUFBSXlCLFFBQVE0UyxJQUFJLGVBQWU7TUFDaEM7SUFDRDtFQUNEO0FBRUEsTUFDRXhVLHNCQUFzQixNQUFNSCwrQkFBK0IsWUFDNURHLHNCQUE4QnpELGlCQUM3QjtBQUNELFFBQUl5RCxzQkFBc0IsSUFBSTtBQUM3QkcsVUFBSUMsZUFBZTtJQUNwQjtJQUNBO0FBQ0FsQixnQkFBWTtBQUNaLFVBQUEsR0FBS0ksbUJBQUFtVixTQUFRLEVBQUUxSSxLQUFNakssV0FBeUM7QUFDN0QsVUFBSTNCLElBQUkyQixLQUFLLEVBQUVtQyxjQUFjO0lBQzlCLENBQUM7RUFDRjtBQUNEOztBRTM2QkEsSUFBTXlRLHdCQUF3QkEsTUFBWTtBQUN6Q2hULElBQUVpVCxHQUFHQyxPQUFPO0lBQ1hkLHFCQUFxQixTQUFVdEksVUFBVTtBQUN4QyxVQUFJcUo7QUFHSixXQUFLdlEsR0FBRyxpQkFBa0JuQixXQUF1QztBQUVoRSxZQUFJLENBQUNBLE1BQU0yUixTQUFTO0FBQ25CM1IsZ0JBQU00UixlQUFlO1FBQ3RCO0FBR0EsYUFBS0MsUUFBUSxNQUFNLEVBQ2pCaFIsS0FBQSxJQUFBckgsT0FBU2tCLDhCQUE4QixDQUFFLEVBQ3pDb1gsWUFBWXBYLDhCQUE4QjtBQUU1QyxZQUFJcVgsZUFBZXhULEVBQUV5QixNQUFNZ1MsTUFBTTtBQUNqQyxZQUFJLENBQUNELGFBQWFuQixTQUFTcFcsZ0JBQWdCLEdBQUc7QUFDN0N1WCx5QkFBZUEsYUFBYUYsUUFBQSxJQUFBclksT0FBWWdCLGdCQUFnQixDQUFFO1FBQzNEO0FBRUF1WCxxQkFBYTVJLFNBQVN6Tyw4QkFBOEIsRUFBRWdJLFlBQVkvSCx5QkFBeUI7QUFHM0YsWUFBSStXLGdCQUFnQjFSLE1BQU1pUyxVQUFVO0FBQ25DLGdCQUFNQyxTQUFxQ0gsYUFBYW5CLFNBQVNqVyx5QkFBeUIsSUFDdkYsYUFDQTtBQUVILGVBQUt1SyxNQUNKaUssS0FBS0MsSUFBSSxLQUFLbEYsTUFBTXdILFlBQVksR0FBRyxLQUFLeEgsTUFBTTZILFlBQVksQ0FBQyxHQUMzRDVDLEtBQUtnRCxJQUFJLEtBQUtqSSxNQUFNd0gsWUFBWSxHQUFHLEtBQUt4SCxNQUFNNkgsWUFBWSxDQUFDLElBQUksQ0FDaEUsRUFBRUcsTUFBTSxFQUFFdlgseUJBQXlCO1FBQ3BDO0FBRUErVyx1QkFBZUs7QUFFZixZQUFJLE9BQU8xSixhQUFhLFlBQVk7QUFDbkNBLG1CQUFTO1FBQ1Y7TUFDRCxDQUFDO0FBRUQsYUFBTztJQUNSO0VBQ0QsQ0FBQztBQUNGOztBQ3BEQTtBQUNBa0osc0JBQXNCO0FBQ3RCeFUsUUFBUTsiLAogICJuYW1lcyI6IFsiYXBpVGFnIiwgInRhcmdldE5hbWVzcGFjZSIsICJ2ZXJzaW9uIiwgIkNMQVNTX05BTUUiLCAiQ0xBU1NfTkFNRV9DT05UQUlORVIiLCAiY29uY2F0IiwgIkNMQVNTX05BTUVfQ09OVEFJTkVSX0RBVEEiLCAiQ0xBU1NfTkFNRV9DT05UQUlORVJfREFUQV9DQVRFR09SWV9MSVNUIiwgIkNMQVNTX05BTUVfQ09OVEFJTkVSX0RBVEFfQ0FURUdPUllfTElTVF9BQ1RJT04iLCAiQ0xBU1NfTkFNRV9DT05UQUlORVJfREFUQV9DQVRFR09SWV9MSVNUX05PX0ZPVU5EIiwgIkNMQVNTX05BTUVfQ09OVEFJTkVSX0RBVEFfTUFSS19DT1VOVEVSIiwgIkNMQVNTX05BTUVfQ09OVEFJTkVSX0RBVEFfU0VBUkNIX0lOUFVUX0NPTlRBSU5FUl9JTlBVVCIsICJDTEFTU19OQU1FX0NPTlRBSU5FUl9EQVRBX1NFTEVDVElPTlMiLCAiQ0xBU1NfTkFNRV9DT05UQUlORVJfREFUQV9TRUxFQ1RJT05TX0FMTCIsICJDTEFTU19OQU1FX0NPTlRBSU5FUl9EQVRBX1NFTEVDVElPTlNfTk9ORSIsICJDTEFTU19OQU1FX0NPTlRBSU5FUl9IRUFEIiwgIkNMQVNTX05BTUVfQ09OVEFJTkVSX0hFQURfTElOSyIsICJDTEFTU19OQU1FX0NPTlRBSU5FUl9IRUFEX0xJTktfRU5BQkxFRCIsICJDTEFTU19OQU1FX0NVUlJFTlRfQ09VTlRFUiIsICJDTEFTU19OQU1FX0ZFRURCQUNLIiwgIkNMQVNTX05BTUVfRkVFREJBQ0tfRE9ORSIsICJDTEFTU19OQU1FX0xBQkVMIiwgIkNMQVNTX05BTUVfTEFCRUxfRE9ORSIsICJDTEFTU19OQU1FX0xBQkVMX0xBU1RfU0VMRUNURUQiLCAiQ0xBU1NfTkFNRV9MQUJFTF9TRUxFQ1RFRCIsICJERUZBVUxUX1NFVFRJTkciLCAiZG9jbGVhbnVwIiwgImRlZmF1bHQiLCAibGFiZWxfaTE4biIsICJlZGl0cGFnZXMiLCAibWlub3IiLCAic3ViY2F0Y291bnQiLCAid2F0Y2hsaXN0IiwgInNlbGVjdF9pMThuIiwgIndhdGNoX25vY2hhbmdlIiwgIndhdGNoX3ByZWYiLCAid2F0Y2hfdW53YXRjaCIsICJ3YXRjaF93YXRjaCIsICJWQVJJQU5UUyIsICJ3Z1VzZXJMYW5ndWFnZSIsICJtdyIsICJjb25maWciLCAiZ2V0IiwgIkRFRkFVTFRfTUVTU0FHRVMiLCAic2V0TWVzc2FnZXMiLCAiaW5jbHVkZXMiLCAibWVzc2FnZXMiLCAic2V0IiwgImltcG9ydF9leHRfZ2FkZ2V0MiIsICJyZXF1aXJlIiwgImltcG9ydF9leHRfZ2FkZ2V0MyIsICJfX3RvRVNNIiwgImltcG9ydF9leHRfZ2FkZ2V0IiwgImFwaSIsICJpbml0TXdBcGkiLCAid2dDYW5vbmljYWxTcGVjaWFsUGFnZU5hbWUiLCAid2dGb3JtYXR0ZWROYW1lc3BhY2VzIiwgIndnTmFtZXNwYWNlSWRzIiwgIndnTmFtZXNwYWNlTnVtYmVyIiwgIndnVGl0bGUiLCAiY2F0QUxvdCIsICJDQUwiLCAiaXNTZWFyY2hNb2RlIiwgIk1FU1NBR0VTIiwgIkFQSV9UQUciLCAiVEFSR0VUX05BTUVTUEFDRSIsICJDVVJSRU5UX0NBVEVHUk9ZIiwgImlzQXV0b0NvbXBsZXRlSW5pdCIsICJhbHJlYWR5VGhlcmUiLCAiY29ubmVjdGlvbkVycm9yIiwgIm5vdEZvdW5kIiwgImNvdW50ZXJDdXJyZW50IiwgImNvdW50ZXJOZWVkZWQiLCAiY291bnRlckNhdCIsICJjdXJyZW50Q2F0ZWdvcnkiLCAiZGlhbG9nSGVpZ2h0IiwgImVkaXRUb2tlbiIsICJsb2NhbENhdE5hbWUiLCAicGFyZW50Q2F0cyIsICJzdWJDYXRzIiwgInNldHRpbmdzIiwgInZhcmlhbnRDYWNoZSIsICJ2YXJpYW50Q2FjaGUyIiwgIiRjb3VudGVyIiwgIiQiLCAiJHByb2dyZXNzRGlhbG9nIiwgIiRsYWJlbHMiLCAiJHNlbGVjdGVkTGFiZWxzIiwgIiRib2R5IiwgIiRjb250YWluZXIiLCAiJGRhdGFDb250YWluZXIiLCAiJG1hcmtDb3VudGVyIiwgIiRyZXN1bHRMaXN0IiwgIiRzZWFyY2hJbnB1dCIsICIkaGVhZCIsICIkbGluayIsICJjb25zdHJ1Y3RvciIsICJfbXckdXRpbCRnZXRQYXJhbVZhbHUiLCAibXNnIiwgImluaXRTZXR0aW5ncyIsICJjb250YWluZXIiLCAiY3JlYXRlRWxlbWVudCIsICJjbGFzc05hbWUiLCAicGxhY2Vob2xkZXIiLCAidHlwZSIsICJ2YWx1ZSIsICJ1dGlsIiwgImdldFBhcmFtVmFsdWUiLCAib25LZXlEb3duIiwgImV2ZW50IiwgIiRlbGVtZW50IiwgImN1cnJlbnRUYXJnZXQiLCAia2V5IiwgIl8kZWxlbWVudCR2YWwkdHJpbSIsICJfJGVsZW1lbnQkdmFsIiwgImNhdCIsICJ2YWwiLCAidHJpbSIsICJ1cGRhdGVDYXRzIiwgIm9uQ2xpY2siLCAidG9nZ2xlQWxsIiwgImFwcGVuZFRvIiwgImZpbmQiLCAiYnVpbGRFbGVtZW50cyIsICJyZWdleENhdCIsICJSZWdFeHAiLCAibG9jYWxpemVkUmVnZXgiLCAiaXNDb21wb3NpdGlvblN0YXJ0IiwgIm9uIiwgIm9sZFZhbCIsICJuZXdWYWwiLCAicmVwbGFjZSIsICJpbml0QXV0b2NvbXBsZXRlIiwgImF1dG9jb21wbGV0ZSIsICJzb3VyY2UiLCAicmVxdWVzdCIsICJyZXNwb25zZSIsICJkb0FQSUNhbGwiLCAiYWN0aW9uIiwgIm5hbWVzcGFjZSIsICJyZWRpcmVjdHMiLCAic2VhcmNoIiwgInRlcm0iLCAicmVzdWx0IiwgIm1hcCIsICJfaW5kZXgiLCAiaXRlbSIsICJwb3NpdGlvbiIsICJteSIsICJhdCIsICJvZiIsICJ0b2dnbGVDbGFzcyIsICJydW4iLCAiX3dpbmRvdyRDYXRBTG90UHJlZnMiLCAiY2F0QUxvdFByZWZzIiwgIndpbmRvdyIsICJDYXRBTG90UHJlZnMiLCAidHlwZU9mQ2F0QUxvdFByZWZzIiwgIkFycmF5IiwgImlzQXJyYXkiLCAiX2kiLCAiX09iamVjdCRrZXlzIiwgIk9iamVjdCIsICJrZXlzIiwgImxlbmd0aCIsICJfY2F0QUxvdFByZWZzJHNldHRpbmciLCAic2V0dGluZ0tleSIsICJzZXR0aW5nIiwgInNlbGVjdCIsICJfaTIiLCAiX09iamVjdCRrZXlzMiIsICJtZXNzYWdlS2V5IiwgIm1lc3NhZ2UiLCAiYXJncyIsICJmdWxsS2V5IiwgInBhcnNlIiwgInBsYWluIiwgIm5hbWVzcGFjZU51bWJlciIsICJmYWxsYmFjayIsICJfQ0FMJHdnRm9ybWF0dGVkTmFtZXMiLCAid2lraVRleHRCbGFuayIsICJTdHJpbmciLCAicmF3IiwgIl90ZW1wbGF0ZU9iamVjdCIsICJfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsIiwgIndpa2lUZXh0QmxhbmtSRSIsICJjcmVhdGVSZWdleFN0ciIsICJuYW1lIiwgInJlZ2V4TmFtZSIsICJpIiwgImluaXRpYWwiLCAic2xpY2UiLCAibGwiLCAidG9Mb3dlckNhc2UiLCAidWwiLCAidG9VcHBlckNhc2UiLCAiX3RlbXBsYXRlT2JqZWN0MiIsICJjYW5vbmljYWwiLCAicmVnZXhTdHJpbmciLCAiX2kzIiwgIl9PYmplY3Qka2V5czMiLCAiY2F0TmFtZSIsICJ1cGRhdGVTZWxlY3Rpb25Db3VudGVyIiwgImZpbHRlciIsICJzaG93IiwgImh0bWwiLCAidG9TdHJpbmciLCAiZmluZEFsbFZhcmlhbnRzIiwgImNhdGVnb3J5IiwgIl9hc3luY1RvR2VuZXJhdG9yIiwgIl9DQUwkdmFyaWFudENhY2hlIiwgIl9DQUwkdmFyaWFudENhY2hlJGNhdCIsICJyZXN1bHRzIiwgInBhcmFtcyIsICJmb3JtYXQiLCAiZm9ybWF0dmVyc2lvbiIsICJ0ZXh0IiwgInRpdGxlIiwgIl9pNCIsICJfVkFSSUFOVFMiLCAiX0NBTCR2YXJpYW50Q2FjaGUyJGNhIiwgInZhcmlhbnQiLCAicmVzdWx0MiIsICJlcSIsICJ1bmlxdWVBcnJheSIsICJyZWdleEJ1aWxkZXIiLCAidmFyaWFudHMiLCAidmFyaWFudFJlZ0V4cHMiLCAiX2l0ZXJhdG9yMiIsICJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsICJfc3RlcDIiLCAicyIsICJuIiwgImRvbmUiLCAiZXNjYXBlUmVnRXhwIiwgIl90ZW1wbGF0ZU9iamVjdDMiLCAiZmlyc3QiLCAiZXJyIiwgImUiLCAiZiIsICJqb2luIiwgIl9wYXJhbXMiLCAiY2FsbGJhY2siLCAiZG9DYWxsIiwgImhhbmRsZUVycm9yIiwgImVycm9yIiwgImxvZyIsICJzZXRUaW1lb3V0IiwgInVwZGF0ZUNvdW50ZXIiLCAidGhlbiIsICJjYXRjaCIsICJwb3N0IiwgIm1hcmtBc0RvbmUiLCAiJG1hcmtlZExhYmVsIiwgInRhcmdldENhdGVnb3J5IiwgIm1vZGUiLCAiYWRkQ2xhc3MiLCAiYXBwZW5kIiwgIkZyYWdtZW50IiwgImRvQ2xlYW51cCIsICJyZW1vdmVVbmNhdCIsICJkaXNwbGF5UmVzdWx0IiwgImNzcyIsICJjdXJzb3IiLCAib3ZlcmZsb3ciLCAiJHBhcmVudCIsICJwYXJlbnQiLCAicmVtb3ZlIiwgInJlZHVjZSIsICJwcmUiLCAiY3VyIiwgImluZGV4IiwgImVkaXRDYXRlZ29yaWVzIiwgIm1hcmtlZExhYmVsIiwgIl90aGlzIiwgIl9wYWdlJHJldmlzaW9ucyIsICJtYXJrZWRMYWJlbFRpdGxlIiwgIm9yaWdpblRleHQiLCAic3RhcnR0aW1lc3RhbXAiLCAidGltZXN0YW1wIiwgInRva2VucyIsICJjc3JmdG9rZW4iLCAicGFnZXMiLCAicGFnZSIsICJyZXZpc2lvbnMiLCAic2xvdHMiLCAibWFpbiIsICJjb250ZW50IiwgInNvdXJjZWNhdCIsICJ0YXJnZVJlZ0V4cCIsICJ0ZXN0IiwgInN1bW1hcnkiLCAic291cmNlQ2F0UmVnRXhwIiwgInRva2VuIiwgInRhZ3MiLCAiYXNzZXJ0IiwgImJvdCIsICJiYXNldGltZXN0YW1wIiwgImdldENvbnRlbnQiLCAibWV0YSIsICJ0aXRsZXMiLCAicHJvcCIsICJydnByb3AiLCAicnZzbG90cyIsICJnZXRUaXRsZUZyb21MaW5rIiwgImhyZWYiLCAiX2RlY29kZVVSSUNvbXBvbmVudCRtIiwgIl9kZWNvZGVVUklDb21wb25lbnQkbTIiLCAiZGVjb2RlVVJJQ29tcG9uZW50IiwgIm1hdGNoIiwgImdldE1hcmtlZExhYmVscyIsICJtYXJrZWRMYWJlbHMiLCAiZWFjaCIsICJsYWJlbCIsICJfJGxhYmVsTGluayRhdHRyIiwgIiRsYWJlbCIsICIkbGFiZWxMaW5rIiwgImF0dHIiLCAic2hvd1Byb2dyZXNzIiwgImRpYWxvZyIsICJkaWFsb2dDbGFzcyIsICJtaW5IZWlnaHQiLCAiaGVpZ2h0IiwgIndpZHRoIiwgIm1vZGFsIiwgImNsb3NlT25Fc2NhcGUiLCAiZHJhZ2dhYmxlIiwgInJlc2l6YWJsZSIsICJoaWRlIiwgImRvU29tZXRoaW5nIiwgIm5vdGlmeSIsICJ0YWciLCAiX2l0ZXJhdG9yMyIsICJfc3RlcDMiLCAiYWRkSGVyZSIsICJjb3B5SGVyZSIsICJtb3ZlSGVyZSIsICJjcmVhdGVDYXRMaW5rcyIsICJzeW1ib2wiLCAiY2F0ZWdvcmllcyIsICJzb3J0IiwgIl9pdGVyYXRvcjQiLCAiX3N0ZXA0IiwgIiR0ciIsICJkYXRhc2V0IiwgImNsb3Nlc3QiLCAiZGF0YSIsICJzaG93Q2F0ZWdvcnlMaXN0IiwgIl90aGlzJCRjb250YWluZXIkd2lkdCIsICJfJCR3aWR0aCIsICJjdXJyZW50Q2F0ZWdvcmllcyIsICJlbXB0eSIsICJNYXRoIiwgIm1pbiIsICJnZXRQYXJlbnRDYXRzIiwgIl9wYWdlcyQiLCAiX3BhZ2VzJDIiLCAicXVlcnkiLCAibWlzc2luZyIsICJfaXRlcmF0b3I1IiwgIl9zdGVwNSIsICJnZXRTdWJDYXRzIiwgImxpc3QiLCAiY210eXBlIiwgImNtbGltaXQiLCAiY210aXRsZSIsICJfcmVzdWx0JHF1ZXJ5IiwgImNhdHMiLCAiY2F0ZWdvcnltZW1iZXJzIiwgIl9pdGVyYXRvcjYiLCAiX3N0ZXA2IiwgImdldENhdGVnb3J5TGlzdCIsICJmaW5kQWxsTGFiZWxzIiwgImFkZCIsICIkcGFnZXMiLCAibWFrZUNsaWNrYWJsZSIsICJvbkNhdEFMb3RTaGlmdENsaWNrIiwgImhhc0NsYXNzIiwgImFsc29SZXNpemUiLCAiaGFuZGxlcyIsICJyZXNpemUiLCAiXyRjdXJyZW50VGFyZ2V0JGhlaWdoIiwgIiRjdXJyZW50VGFyZ2V0IiwgImxlZnQiLCAidG9wIiwgIm1heEhlaWdodCIsICJvZmYiLCAiZ2V0Qm9keSIsICJleHRlbmRKUXVlcnlQcm90b3R5cGUiLCAiZm4iLCAiZXh0ZW5kIiwgInByZXZDaGVja2JveCIsICJjdHJsS2V5IiwgInByZXZlbnREZWZhdWx0IiwgInBhcmVudHMiLCAicmVtb3ZlQ2xhc3MiLCAiJHRoaXNDb250cm9sIiwgInRhcmdldCIsICJzaGlmdEtleSIsICJtZXRob2QiLCAibWF4Il0KfQo= +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL0NhdC1hLWxvdC9vcHRpb25zLmpzb24iLCAic3JjL0NhdC1hLWxvdC9tb2R1bGVzL2NvbnN0YW50LnRzIiwgInNyYy9DYXQtYS1sb3QvbW9kdWxlcy9tZXNzYWdlcy50cyIsICJzcmMvQ2F0LWEtbG90L21vZHVsZXMvY29yZS50c3giLCAic3JjL0NhdC1hLWxvdC9tb2R1bGVzL2FwaS50cyIsICJzcmMvQ2F0LWEtbG90L21vZHVsZXMvZXh0ZW5kSlF1ZXJ5UHJvdG90eXBlLnRzIiwgInNyYy9DYXQtYS1sb3QvQ2F0LWEtbG90LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJ7XG5cdFwiYXBpVGFnXCI6IFwiQ2F0LWEtbG90XCIsXG5cdFwidGFyZ2V0TmFtZXNwYWNlXCI6IDE0LFxuXHRcInZlcnNpb25cIjogXCI2LjBcIlxufVxuIiwgIi8qIGVzbGludC1kaXNhYmxlIGNhbWVsY2FzZSAqL1xuaW1wb3J0IHR5cGUge1NldHRpbmd9IGZyb20gJy4vdHlwZXMnO1xuXG5jb25zdCBDTEFTU19OQU1FOiBzdHJpbmcgPSAnZ2FkZ2V0LWNhdF9hX2xvdCc7XG5jb25zdCBDTEFTU19OQU1FX0NPTlRBSU5FUjogc3RyaW5nID0gYCR7Q0xBU1NfTkFNRX0tY29udGFpbmVyYDtcbmNvbnN0IENMQVNTX05BTUVfQ09OVEFJTkVSX0RBVEE6IHN0cmluZyA9IGAke0NMQVNTX05BTUVfQ09OVEFJTkVSfV9fZGF0YWA7XG5jb25zdCBDTEFTU19OQU1FX0NPTlRBSU5FUl9EQVRBX0NBVEVHT1JZX0xJU1Q6IHN0cmluZyA9IGAke0NMQVNTX05BTUVfQ09OVEFJTkVSX0RBVEF9X19jYXRlZ29yeS1saXN0YDtcbmNvbnN0IENMQVNTX05BTUVfQ09OVEFJTkVSX0RBVEFfQ0FURUdPUllfTElTVF9BQ1RJT046IHN0cmluZyA9IGAke0NMQVNTX05BTUVfQ09OVEFJTkVSX0RBVEFfQ0FURUdPUllfTElTVH1fX2FjdGlvbmA7XG5jb25zdCBDTEFTU19OQU1FX0NPTlRBSU5FUl9EQVRBX0NBVEVHT1JZX0xJU1RfTk9fRk9VTkQ6IHN0cmluZyA9IGAke0NMQVNTX05BTUVfQ09OVEFJTkVSX0RBVEFfQ0FURUdPUllfTElTVH0tLW5vLWZvdW5kYDtcbmNvbnN0IENMQVNTX05BTUVfQ09OVEFJTkVSX0RBVEFfTUFSS19DT1VOVEVSOiBzdHJpbmcgPSBgJHtDTEFTU19OQU1FX0NPTlRBSU5FUl9EQVRBfV9fbWFyay1jb3VudGVyYDtcbmNvbnN0IENMQVNTX05BTUVfQ09OVEFJTkVSX0RBVEFfU0VBUkNIX0lOUFVUX0NPTlRBSU5FUl9JTlBVVDogc3RyaW5nID0gYCR7Q0xBU1NfTkFNRV9DT05UQUlORVJfREFUQX1fX3NlYXJjaC1pbnB1dC1jb250YWluZXJfX2lucHV0YDtcbmNvbnN0IENMQVNTX05BTUVfQ09OVEFJTkVSX0RBVEFfU0VMRUNUSU9OUzogc3RyaW5nID0gYCR7Q0xBU1NfTkFNRV9DT05UQUlORVJfREFUQX1fX3NlbGVjdGlvbnNgO1xuY29uc3QgQ0xBU1NfTkFNRV9DT05UQUlORVJfREFUQV9TRUxFQ1RJT05TX0FMTDogc3RyaW5nID0gYCR7Q0xBU1NfTkFNRV9DT05UQUlORVJfREFUQV9TRUxFQ1RJT05TfV9fYWxsYDtcbmNvbnN0IENMQVNTX05BTUVfQ09OVEFJTkVSX0RBVEFfU0VMRUNUSU9OU19OT05FOiBzdHJpbmcgPSBgJHtDTEFTU19OQU1FX0NPTlRBSU5FUl9EQVRBX1NFTEVDVElPTlN9X19ub25lYDtcbmNvbnN0IENMQVNTX05BTUVfQ09OVEFJTkVSX0hFQUQ6IHN0cmluZyA9IGAke0NMQVNTX05BTUVfQ09OVEFJTkVSfV9faGVhZGA7XG5jb25zdCBDTEFTU19OQU1FX0NPTlRBSU5FUl9IRUFEX0xJTks6IHN0cmluZyA9IGAke0NMQVNTX05BTUVfQ09OVEFJTkVSX0hFQUR9X19saW5rYDtcbmNvbnN0IENMQVNTX05BTUVfQ09OVEFJTkVSX0hFQURfTElOS19FTkFCTEVEOiBzdHJpbmcgPSBgJHtDTEFTU19OQU1FX0NPTlRBSU5FUl9IRUFEX0xJTkt9LS1lbmFibGVkYDtcbmNvbnN0IENMQVNTX05BTUVfQ1VSUkVOVF9DT1VOVEVSOiBzdHJpbmcgPSBgJHtDTEFTU19OQU1FfS1jdXJyZW50X2NvdW50ZXJgO1xuY29uc3QgQ0xBU1NfTkFNRV9GRUVEQkFDSzogc3RyaW5nID0gYCR7Q0xBU1NfTkFNRX0tZmVlZGJhY2tgO1xuY29uc3QgQ0xBU1NfTkFNRV9GRUVEQkFDS19ET05FOiBzdHJpbmcgPSBgJHtDTEFTU19OQU1FX0ZFRURCQUNLfS0tZG9uZWA7XG5jb25zdCBDTEFTU19OQU1FX0xBQkVMOiBzdHJpbmcgPSBgJHtDTEFTU19OQU1FfS1sYWJlbGA7XG5jb25zdCBDTEFTU19OQU1FX0xBQkVMX0RPTkU6IHN0cmluZyA9IGAke0NMQVNTX05BTUVfTEFCRUx9LS1kb25lYDtcbmNvbnN0IENMQVNTX05BTUVfTEFCRUxfTEFTVF9TRUxFQ1RFRDogc3RyaW5nID0gYCR7Q0xBU1NfTkFNRV9MQUJFTH0tLWxhc3Qtc2VsZWN0ZWRgO1xuY29uc3QgQ0xBU1NfTkFNRV9MQUJFTF9TRUxFQ1RFRDogc3RyaW5nID0gYCR7Q0xBU1NfTkFNRV9MQUJFTH0tLXNlbGVjdGVkYDtcblxuY29uc3QgREVGQVVMVF9TRVRUSU5HOiBTZXR0aW5nID0ge1xuXHRkb2NsZWFudXA6IHtcblx0XHRkZWZhdWx0OiBmYWxzZSxcblx0XHRsYWJlbF9pMThuOiAnZG9jbGVhbnVwcHJlZicsXG5cdH0sXG5cdGVkaXRwYWdlczoge1xuXHRcdGRlZmF1bHQ6IHRydWUsXG5cdFx0bGFiZWxfaTE4bjogJ2VkaXRwYWdlc3ByZWYnLFxuXHR9LFxuXHRtaW5vcjoge1xuXHRcdGRlZmF1bHQ6IGZhbHNlLFxuXHRcdGxhYmVsX2kxOG46ICdtaW5vcnByZWYnLFxuXHR9LFxuXHRzdWJjYXRjb3VudDoge1xuXHRcdGRlZmF1bHQ6IDUwLFxuXHRcdGxhYmVsX2kxOG46ICdzdWJjYXRjb3VudHByZWYnLFxuXHR9LFxuXHR3YXRjaGxpc3Q6IHtcblx0XHRkZWZhdWx0OiAncHJlZmVyZW5jZXMnLFxuXHRcdGxhYmVsX2kxOG46ICd3YXRjaGxpc3RwcmVmJyxcblx0XHRzZWxlY3RfaTE4bjoge1xuXHRcdFx0d2F0Y2hfbm9jaGFuZ2U6ICdub2NoYW5nZScsXG5cdFx0XHR3YXRjaF9wcmVmOiAncHJlZmVyZW5jZXMnLFxuXHRcdFx0d2F0Y2hfdW53YXRjaDogJ3Vud2F0Y2gnLFxuXHRcdFx0d2F0Y2hfd2F0Y2g6ICd3YXRjaCcsXG5cdFx0fSxcblx0fSxcbn07XG5cbmNvbnN0IFZBUklBTlRTOiBzdHJpbmdbXSA9IFsnemgtaGFucycsICd6aC1oYW50JywgJ3poLWNuJywgJ3poLW15JywgJ3poLXNnJywgJ3poLWhrJywgJ3poLW1vJywgJ3poLXR3J107XG5cbmV4cG9ydCB7XG5cdENMQVNTX05BTUUsXG5cdENMQVNTX05BTUVfQ09OVEFJTkVSLFxuXHRDTEFTU19OQU1FX0NPTlRBSU5FUl9EQVRBLFxuXHRDTEFTU19OQU1FX0NPTlRBSU5FUl9EQVRBX0NBVEVHT1JZX0xJU1QsXG5cdENMQVNTX05BTUVfQ09OVEFJTkVSX0RBVEFfQ0FURUdPUllfTElTVF9BQ1RJT04sXG5cdENMQVNTX05BTUVfQ09OVEFJTkVSX0RBVEFfQ0FURUdPUllfTElTVF9OT19GT1VORCxcblx0Q0xBU1NfTkFNRV9DT05UQUlORVJfREFUQV9NQVJLX0NPVU5URVIsXG5cdENMQVNTX05BTUVfQ09OVEFJTkVSX0RBVEFfU0VBUkNIX0lOUFVUX0NPTlRBSU5FUl9JTlBVVCxcblx0Q0xBU1NfTkFNRV9DT05UQUlORVJfREFUQV9TRUxFQ1RJT05TLFxuXHRDTEFTU19OQU1FX0NPTlRBSU5FUl9EQVRBX1NFTEVDVElPTlNfQUxMLFxuXHRDTEFTU19OQU1FX0NPTlRBSU5FUl9EQVRBX1NFTEVDVElPTlNfTk9ORSxcblx0Q0xBU1NfTkFNRV9DT05UQUlORVJfSEVBRCxcblx0Q0xBU1NfTkFNRV9DT05UQUlORVJfSEVBRF9MSU5LLFxuXHRDTEFTU19OQU1FX0NPTlRBSU5FUl9IRUFEX0xJTktfRU5BQkxFRCxcblx0Q0xBU1NfTkFNRV9DVVJSRU5UX0NPVU5URVIsXG5cdENMQVNTX05BTUVfRkVFREJBQ0ssXG5cdENMQVNTX05BTUVfRkVFREJBQ0tfRE9ORSxcblx0Q0xBU1NfTkFNRV9MQUJFTCxcblx0Q0xBU1NfTkFNRV9MQUJFTF9ET05FLFxuXHRDTEFTU19OQU1FX0xBQkVMX0xBU1RfU0VMRUNURUQsXG5cdENMQVNTX05BTUVfTEFCRUxfU0VMRUNURUQsXG5cdERFRkFVTFRfU0VUVElORyxcblx0VkFSSUFOVFMsXG59O1xuIiwgImltcG9ydCB0eXBlIHtNZXNzYWdlS2V5fSBmcm9tICcuL3R5cGVzJztcblxuY29uc3Qge3dnVXNlckxhbmd1YWdlfSA9IG13LmNvbmZpZy5nZXQoKTtcblxuY29uc3QgREVGQVVMVF9NRVNTQUdFUyA9IHtcblx0Ly8gYXMgaW4gMTcgZmlsZXMgc2VsZWN0ZWRcblx0J2NhdC1hLWxvdC1maWxlcy1zZWxlY3RlZCc6ICd7e1BMVVJBTDokMXxPbmUgZmlsZXwkMSBmaWxlc319IHNlbGVjdGVkLicsXG5cdC8vIEFjdGlvbnNcblx0J2NhdC1hLWxvdC1jb3B5JzogJ0NvcHknLFxuXHQnY2F0LWEtbG90LW1vdmUnOiAnTW92ZScsXG5cdCdjYXQtYS1sb3QtYWRkJzogJ0FkZCcsXG5cdCdjYXQtYS1sb3QtcmVtb3ZlLWZyb20tY2F0JzogJ1JlbW92ZSBmcm9tIHRoaXMgY2F0ZWdvcnknLFxuXHQnY2F0LWEtbG90LWVudGVyLW5hbWUnOiAnRW50ZXIgY2F0ZWdvcnkgbmFtZScsXG5cdCdjYXQtYS1sb3Qtc2VsZWN0JzogJ1NlbGVjdCcsXG5cdCdjYXQtYS1sb3QtYWxsJzogJ2FsbCcsXG5cdCdjYXQtYS1sb3Qtbm9uZSc6ICdub25lJyxcblx0J2NhdC1hLWxvdC1ub25lLXNlbGVjdGVkJzogJ05vIGZpbGVzIHNlbGVjdGVkIScsXG5cdC8vIFByZWZlcmVuY2VzXG5cdCdjYXQtYS1sb3Qtd2F0Y2hsaXN0cHJlZic6ICdXYXRjaGxpc3QgcHJlZmVyZW5jZSBjb25jZXJuaW5nIGZpbGVzIGVkaXRlZCB3aXRoIENhdC1BLUxvdCcsXG5cdCdjYXQtYS1sb3Qtd2F0Y2hfcHJlZic6ICdBY2NvcmRpbmcgdG8geW91ciBnZW5lcmFsIHByZWZlcmVuY2VzJyxcblx0J2NhdC1hLWxvdC13YXRjaF9ub2NoYW5nZSc6ICdEbyBub3QgY2hhbmdlIHdhdGNoc3RhdHVzJyxcblx0J2NhdC1hLWxvdC13YXRjaF93YXRjaCc6ICdXYXRjaCBwYWdlcyBlZGl0ZWQgd2l0aCBDYXQtQS1Mb3QnLFxuXHQnY2F0LWEtbG90LXdhdGNoX3Vud2F0Y2gnOiAnUmVtb3ZlIHBhZ2VzIHdoaWxlIGVkaXRpbmcgd2l0aCBDYXQtQS1Mb3QgZnJvbSB5b3VyIHdhdGNobGlzdCcsXG5cdCdjYXQtYS1sb3QtbWlub3JwcmVmJzpcblx0XHRcIk1hcmsgZWRpdHMgYXMgbWlub3IgKGlmIHlvdSBnZW5lcmFsbHkgbWFyayB5b3VyIGVkaXRzIGFzIG1pbm9yLCB0aGlzIHdvbid0IGNoYW5nZSBhbnl0aGluZylcIixcblx0J2NhdC1hLWxvdC1lZGl0cGFnZXNwcmVmJzogJ0FsbG93IGNhdGVnb3Jpc2luZyBwYWdlcyAoaW5jbHVkaW5nIGNhdGVnb3JpZXMpIHRoYXQgYXJlIG5vdCBmaWxlcycsXG5cdCdjYXQtYS1sb3QtZG9jbGVhbnVwcHJlZic6ICdSZW1vdmUge3tDaGVjayBjYXRlZ29yaWVzfX0gYW5kIG90aGVyIG1pbm9yIGNsZWFudXAnLFxuXHQnY2F0LWEtbG90LXN1YmNhdGNvdW50cHJlZic6ICdTdWItY2F0ZWdvcmllcyB0byBzaG93IGF0IG1vc3QnLFxuXHQvLyBQcm9ncmVzc1xuXHQnY2F0LWEtbG90LWxvYWRpbmcnOiAnTG9hZGluZy4uLicsXG5cdCdjYXQtYS1sb3QtZWRpdGluZyc6ICdFZGl0aW5nIHBhZ2UnLFxuXHQnY2F0LWEtbG90LW9mJzogJ29mICcsXG5cdCdjYXQtYS1sb3Qtc2tpcHBlZC1hbHJlYWR5Jzpcblx0XHQnVGhlIGZvbGxvd2luZyB7e1BMVVJBTDokMXxwYWdlIHdhc3wkMSBwYWdlcyB3ZXJlfX0gc2tpcHBlZCwgYmVjYXVzZSB0aGUgcGFnZSB3YXMgYWxyZWFkeSBpbiB0aGUgY2F0ZWdvcnk6Jyxcblx0J2NhdC1hLWxvdC1za2lwcGVkLW5vdC1mb3VuZCc6XG5cdFx0J1RoZSBmb2xsb3dpbmcge3tQTFVSQUw6JDF8cGFnZSB3YXN8JDEgcGFnZXMgd2VyZX19IHNraXBwZWQsIGJlY2F1c2UgdGhlIG9sZCBjYXRlZ29yeSBjb3VsZCBub3QgYmUgZm91bmQ6Jyxcblx0J2NhdC1hLWxvdC1za2lwcGVkLXNlcnZlcic6XG5cdFx0XCJUaGUgZm9sbG93aW5nIHt7UExVUkFMOiQxfHBhZ2V8JDEgcGFnZXN9fSBjb3VsZG4ndCBiZSBjaGFuZ2VkLCBzaW5jZSB0aGVyZSB3ZXJlIHByb2JsZW1zIGNvbm5lY3RpbmcgdG8gdGhlIHNlcnZlcjpcIixcblx0J2NhdC1hLWxvdC1hbGwtZG9uZSc6ICdBbGwgcGFnZXMgYXJlIHByb2Nlc3NlZC4nLFxuXHQnY2F0LWEtbG90LWRvbmUnOiAnRG9uZSEnLFxuXHQnY2F0LWEtbG90LWFkZGVkLWNhdCc6ICdBZGRlZCBjYXRlZ29yeSAkMScsXG5cdCdjYXQtYS1sb3QtY29waWVkLWNhdCc6ICdDb3BpZWQgdG8gY2F0ZWdvcnkgJDEnLFxuXHQnY2F0LWEtbG90LW1vdmVkLWNhdCc6ICdNb3ZlZCB0byBjYXRlZ29yeSAkMScsXG5cdCdjYXQtYS1sb3QtcmVtb3ZlZC1jYXQnOiAnUmVtb3ZlZCBmcm9tIGNhdGVnb3J5ICQxJyxcblx0J2NhdC1hLWxvdC1yZXR1cm4tdG8tcGFnZSc6ICdSZXR1cm4gdG8gcGFnZScsXG5cdCdjYXQtYS1sb3QtY2F0LW5vdC1mb3VuZCc6ICdDYXRlZ29yeSBub3QgZm91bmQuJyxcblx0Ly8gU3VtbWFyaWVzOlxuXHQnY2F0LWEtbG90LXN1bW1hcnktYWRkJzogJ1tbSGVscDpDYXQtYS1sb3R8Q2F0LWEtbG90XV06IEFkZGluZyBbW0NhdGVnb3J5OiQxXV0nLFxuXHQnY2F0LWEtbG90LXN1bW1hcnktY29weSc6ICdbW0hlbHA6Q2F0LWEtbG90fENhdC1hLWxvdF1dOiBDb3B5aW5nIGZyb20gW1tDYXRlZ29yeTokMV1dIHRvIFtbQ2F0ZWdvcnk6JDJdXScsXG5cdCdjYXQtYS1sb3Qtc3VtbWFyeS1tb3ZlJzogJ1tbSGVscDpDYXQtYS1sb3R8Q2F0LWEtbG90XV06IE1vdmluZyBmcm9tIFtbQ2F0ZWdvcnk6JDFdXSB0byBbW0NhdGVnb3J5OiQyXV0nLFxuXHQnY2F0LWEtbG90LXN1bW1hcnktcmVtb3ZlJzogJ1tbSGVscDpDYXQtYS1sb3R8Q2F0LWEtbG90XV06IFJlbW92aW5nIGZyb20gW1tDYXRlZ29yeTokMV1dJyxcbn0gc2F0aXNmaWVzIFJlY29yZDxNZXNzYWdlS2V5LCBzdHJpbmc+O1xuXG5jb25zdCBzZXRNZXNzYWdlcyA9ICgpOiB2b2lkID0+IHtcblx0LyohIENhdC1hLWxvdCBtZXNzYWdlcyB8IENDLUJZLVNBLTQuMCA8aHR0cHM6Ly9xd2JrLmNjL0g6Q0MtQlktU0EtNC4wPiAqL1xuXHRpZiAod2dVc2VyTGFuZ3VhZ2UgPT09ICdlbicpIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRpZiAoWyd6aC1oYW50JywgJ3poLWhrJywgJ3poLW1vJywgJ3poLXR3J10uaW5jbHVkZXMod2dVc2VyTGFuZ3VhZ2UpKSB7XG5cdFx0bXcubWVzc2FnZXMuc2V0PHR5cGVvZiBERUZBVUxUX01FU1NBR0VTPih7XG5cdFx0XHQvLyBhcyBpbiAxNyBmaWxlcyBzZWxlY3RlZFxuXHRcdFx0J2NhdC1hLWxvdC1maWxlcy1zZWxlY3RlZCc6ICckMeWAi+aWh+S7tuW3sumBuOaThycsXG5cdFx0XHQvLyBBY3Rpb25zXG5cdFx0XHQnY2F0LWEtbG90LWNvcHknOiAn6KSH6KO9Jyxcblx0XHRcdCdjYXQtYS1sb3QtbW92ZSc6ICfnp7vli5UnLFxuXHRcdFx0J2NhdC1hLWxvdC1hZGQnOiAn5aKe5YqgJyxcblx0XHRcdCdjYXQtYS1sb3QtcmVtb3ZlLWZyb20tY2F0JzogJ+W+nuatpOWIhumhnuenu+mZpCcsXG5cdFx0XHQnY2F0LWEtbG90LWVudGVyLW5hbWUnOiAn6Ly45YWl5YiG6aGe5ZCN56ixJyxcblx0XHRcdCdjYXQtYS1sb3Qtc2VsZWN0JzogJ+mBuOaThycsXG5cdFx0XHQnY2F0LWEtbG90LWFsbCc6ICflhajpg6gnLFxuXHRcdFx0J2NhdC1hLWxvdC1ub25lJzogJ+eEoScsXG5cdFx0XHQnY2F0LWEtbG90LW5vbmUtc2VsZWN0ZWQnOiAn5rKS5pyJ6YG45pOH5paH5Lu277yBJyxcblx0XHRcdC8vIFByZWZlcmVuY2VzXG5cdFx0XHQnY2F0LWEtbG90LXdhdGNobGlzdHByZWYnOiAn5L2/55SoQ2F0LUEtTG9057eo6Lyv5paH5Lu25pmC55qE55uj6KaW5YiX6KGo6YG46aCFJyxcblx0XHRcdCdjYXQtYS1sb3Qtd2F0Y2hfcHJlZic6ICfoiIfns7vntbHlj4PmlbjoqK3nva7nm7jlkIwnLFxuXHRcdFx0J2NhdC1hLWxvdC13YXRjaF9ub2NoYW5nZSc6ICfkuI3opoHmm7TmlLnnm6Poppbni4DmhYsnLFxuXHRcdFx0J2NhdC1hLWxvdC13YXRjaF93YXRjaCc6ICfnm6Poppbkvb/nlKhDYXQtQS1Mb3Tnt6jovK/nmoTpoIHpnaInLFxuXHRcdFx0J2NhdC1hLWxvdC13YXRjaF91bndhdGNoJzogJ+Wwh+S9v+eUqENhdC1BLUxvdOe3qOi8r+eahOmggemdouW+nuebo+imluWIl+ihqOenu+mZpCcsXG5cdFx0XHQnY2F0LWEtbG90LW1pbm9ycHJlZic6XG5cdFx0XHRcdCflsIfnt6jovK/mqJnoqJjniLLlsI/kv67mlLnvvIjoi6XmgqjlnKjns7vntbHlj4PmlbjoqK3nva7kuK3lt7LoqK3nva7lsIfmiYDmnInnt6jovK/mqJnoqJjniLLlsI/kv67mlLnvvIzmraTpgbjpoIXkuI3mnIPlsI3nj77mnInooYzniLLpgLLooYzmlLnli5XvvIknLFxuXHRcdFx0J2NhdC1hLWxvdC1lZGl0cGFnZXNwcmVmJzogJ+WFgeioseWwjeS4jeaYr+aWh+S7tueahOmggemdouWSjOWtkOWIhumhnumAsuihjOWIhumhnuaTjeS9nCcsXG5cdFx0XHQnY2F0LWEtbG90LWRvY2xlYW51cHByZWYnOiAn56e76Zmke3tDaGVjayBjYXRlZ29yaWVzfX3kuKbpgLLooYzlhbbku5bntLDnr4DmuIXnkIYnLFxuXHRcdFx0J2NhdC1hLWxvdC1zdWJjYXRjb3VudHByZWYnOiAn5pyA5aSa6aGv56S655qE5a2Q5YiG6aGe5pW46YePJyxcblx0XHRcdC8vIFByb2dyZXNzXG5cdFx0XHQnY2F0LWEtbG90LWxvYWRpbmcnOiAn5q2j5Zyo5Yqg6LyJ4oCm4oCmJyxcblx0XHRcdCdjYXQtYS1sb3QtZWRpdGluZyc6ICfmraPlnKjnt6jovK/poIHpnaInLFxuXHRcdFx0J2NhdC1hLWxvdC1vZic6ICfvvIzlhbHmnIknLFxuXHRcdFx0J2NhdC1hLWxvdC1za2lwcGVkLWFscmVhZHknOiAn5Lul5LiL6aCB6Z2i5bey6Lez6YGO77yM5Zug54iy6aCB6Z2i5bey57aT5Zyo5YiG6aGe5Lit77yaJyxcblx0XHRcdCdjYXQtYS1sb3Qtc2tpcHBlZC1ub3QtZm91bmQnOiAn5Lul5LiL6aCB6Z2i5bey6Lez6YGO77yM5Zug54iy5om+5LiN5Yiw54++5pyJ5YiG6aGe77yaJyxcblx0XHRcdCdjYXQtYS1sb3Qtc2tpcHBlZC1zZXJ2ZXInOiAn5Lul5LiL6aCB6Z2i54Sh5rOV57eo6Lyv77yM5Zug54iy6YCj5o6l5pyN5YuZ5Zmo5Ye66Yyv77yaJyxcblx0XHRcdCdjYXQtYS1sb3QtYWxsLWRvbmUnOiAn5YWo6YOo6aCB6Z2i5bey6JmV55CG44CCJyxcblx0XHRcdCdjYXQtYS1sb3QtZG9uZSc6ICflt7LlrozmiJDvvIEnLFxuXHRcdFx0J2NhdC1hLWxvdC1hZGRlZC1jYXQnOiAn5bey5Yqg5YWl5YiG6aGeJyxcblx0XHRcdCdjYXQtYS1sb3QtY29waWVkLWNhdCc6ICflt7LopIfoo73liLDliIbpoZ4nLFxuXHRcdFx0J2NhdC1hLWxvdC1tb3ZlZC1jYXQnOiAn5bey56e75YuV5Yiw5YiG6aGeJyxcblx0XHRcdCdjYXQtYS1sb3QtcmVtb3ZlZC1jYXQnOiAn5bey5b6e5YiG6aGe56e76ZmkJyxcblx0XHRcdCdjYXQtYS1sb3QtcmV0dXJuLXRvLXBhZ2UnOiAn6L+U5Zue5Yiw6aCB6Z2iJyxcblx0XHRcdCdjYXQtYS1sb3QtY2F0LW5vdC1mb3VuZCc6ICfmib7kuI3liLDliIbpoZ7jgIInLFxuXHRcdFx0Ly8gU3VtbWFyaWVzXG5cdFx0XHQnY2F0LWEtbG90LXN1bW1hcnktYWRkJzogJ1tbSGVscDpDYXQtYS1sb3R8Q2F0LWEtbG90XV3vvJrliqDlhaXliIbpoZ5bW0NhdGVnb3J5OiQxXV0nLFxuXHRcdFx0J2NhdC1hLWxvdC1zdW1tYXJ5LWNvcHknOiAnW1tIZWxwOkNhdC1hLWxvdHxDYXQtYS1sb3RdXe+8muWIhumhnumWk+ikh+ijve+8muW+nltbQ2F0ZWdvcnk6JDFdXeWIsFtbQ2F0ZWdvcnk6JDJdXScsXG5cdFx0XHQnY2F0LWEtbG90LXN1bW1hcnktbW92ZSc6ICdbW0hlbHA6Q2F0LWEtbG90fENhdC1hLWxvdF1d77ya5YiG6aGe6ZaT56e75YuV77ya5b6eW1tDYXRlZ29yeTokMV1d5YiwW1tDYXRlZ29yeTokMl1dJyxcblx0XHRcdCdjYXQtYS1sb3Qtc3VtbWFyeS1yZW1vdmUnOiAnW1tIZWxwOkNhdC1hLWxvdHxDYXQtYS1sb3RdXe+8muW+nuWIhumhnuenu+mZpO+8mltbQ2F0ZWdvcnk6JDFdXScsXG5cdFx0fSk7XG5cdH0gZWxzZSB7XG5cdFx0bXcubWVzc2FnZXMuc2V0PHR5cGVvZiBERUZBVUxUX01FU1NBR0VTPih7XG5cdFx0XHQvLyBhcyBpbiAxNyBmaWxlcyBzZWxlY3RlZFxuXHRcdFx0J2NhdC1hLWxvdC1maWxlcy1zZWxlY3RlZCc6ICflt7LpgInmi6kkMeS4qumhtemdouaIluaWh+S7ticsXG5cdFx0XHQvLyBBY3Rpb25zXG5cdFx0XHQnY2F0LWEtbG90LWNvcHknOiAn5aSN5Yi2Jyxcblx0XHRcdCdjYXQtYS1sb3QtbW92ZSc6ICfnp7vliqgnLFxuXHRcdFx0J2NhdC1hLWxvdC1hZGQnOiAn5aKe5YqgJyxcblx0XHRcdCdjYXQtYS1sb3QtcmVtb3ZlLWZyb20tY2F0JzogJ+S7juatpOWIhuexu+enu+mZpCcsXG5cdFx0XHQnY2F0LWEtbG90LWVudGVyLW5hbWUnOiAn6L6T5YWl5YiG57G75ZCN56ewJyxcblx0XHRcdCdjYXQtYS1sb3Qtc2VsZWN0JzogJ+mAieaLqScsXG5cdFx0XHQnY2F0LWEtbG90LWFsbCc6ICflhajpg6gnLFxuXHRcdFx0J2NhdC1hLWxvdC1ub25lJzogJ+aXoCcsXG5cdFx0XHQnY2F0LWEtbG90LW5vbmUtc2VsZWN0ZWQnOiAn5rKh5pyJ6YCJ5oup5Lu75L2V6aG16Z2i5oiW5paH5Lu277yBJyxcblx0XHRcdC8vIFByZWZlcmVuY2VzXG5cdFx0XHQnY2F0LWEtbG90LXdhdGNobGlzdHByZWYnOiAn5L2/55SoQ2F0LWEtbG9057yW6L6R5paH5Lu25pe255qE55uR6KeG5YiX6KGo6YCJ6aG5Jyxcblx0XHRcdCdjYXQtYS1sb3Qtd2F0Y2hfcHJlZic6ICfkuI7ns7vnu5/lj4LmlbDorr7nva7nm7jlkIwnLFxuXHRcdFx0J2NhdC1hLWxvdC13YXRjaF9ub2NoYW5nZSc6ICfkuI3opoHmm7TmlLnnm5Hop4bnirbmgIEnLFxuXHRcdFx0J2NhdC1hLWxvdC13YXRjaF93YXRjaCc6ICfnm5Hop4bkvb/nlKhDYXQtYS1sb3TnvJbovpHnmoTpobXpnaInLFxuXHRcdFx0J2NhdC1hLWxvdC13YXRjaF91bndhdGNoJzogJ+WwhuS9v+eUqENhdC1hLWxvdOe8lui+keeahOmhtemdouS7juebkeinhuWIl+ihqOenu+mZpCcsXG5cdFx0XHQnY2F0LWEtbG90LW1pbm9ycHJlZic6XG5cdFx0XHRcdCflsIbnvJbovpHmoIforrDkuLrlsI/kv67mlLnvvIjoi6XmgqjlnKjns7vnu5/lj4LmlbDorr7nva7kuK3lt7Lorr7nva7lsIbmiYDmnInnvJbovpHmoIforrDkuLrlsI/kv67mlLnvvIzmraTpgInpobnkuI3kvJrlr7nnjrDmnInooYzkuLrov5vooYzmlLnliqjvvIknLFxuXHRcdFx0J2NhdC1hLWxvdC1lZGl0cGFnZXNwcmVmJzogJ+WFgeiuuOWvueS4jeaYr+aWh+S7tueahOmhtemdouWSjOWtkOWIhuexu+i/m+ihjOWIhuexu+aTjeS9nCcsXG5cdFx0XHQnY2F0LWEtbG90LWRvY2xlYW51cHByZWYnOiAn56e76Zmke3tDaGVjayBjYXRlZ29yaWVzfX3lubbov5vooYzlhbbku5bnu4boioLmuIXnkIYnLFxuXHRcdFx0J2NhdC1hLWxvdC1zdWJjYXRjb3VudHByZWYnOiAn5pyA5aSa5pi+56S655qE5a2Q5YiG57G75pWw6YePJyxcblx0XHRcdC8vIFByb2dyZXNzXG5cdFx0XHQnY2F0LWEtbG90LWxvYWRpbmcnOiAn5q2j5Zyo5Yqg6L294oCm4oCmJyxcblx0XHRcdCdjYXQtYS1sb3QtZWRpdGluZyc6ICfmraPlnKjnvJbovpHpobXpnaInLFxuXHRcdFx0J2NhdC1hLWxvdC1vZic6ICfvvIzlhbHmnIknLFxuXHRcdFx0J2NhdC1hLWxvdC1za2lwcGVkLWFscmVhZHknOiAn5Lul5LiL6aG16Z2i5bey6Lez6L+H77yM5Zug5Li66aG16Z2i5bey57uP5Zyo5YiG57G75Lit77yaJyxcblx0XHRcdCdjYXQtYS1sb3Qtc2tpcHBlZC1ub3QtZm91bmQnOiAn5Lul5LiL6aG16Z2i5bey6Lez6L+H77yM5Zug5Li65om+5LiN5Yiw546w5pyJ5YiG57G777yaJyxcblx0XHRcdCdjYXQtYS1sb3Qtc2tpcHBlZC1zZXJ2ZXInOiAn5Lul5LiL6aG16Z2i5peg5rOV57yW6L6R77yM5Zug5Li66L+e5o6l5pyN5Yqh5Zmo5Ye66ZSZ77yaJyxcblx0XHRcdCdjYXQtYS1sb3QtYWxsLWRvbmUnOiAn5YWo6YOo6aG16Z2i5bey5aSE55CG44CCJyxcblx0XHRcdCdjYXQtYS1sb3QtZG9uZSc6ICflt7LlrozmiJDvvIEnLFxuXHRcdFx0J2NhdC1hLWxvdC1hZGRlZC1jYXQnOiAn5bey5Yqg5YWl5YiG57G7Jyxcblx0XHRcdCdjYXQtYS1sb3QtY29waWVkLWNhdCc6ICflt7LlpI3liLbliLDliIbnsbsnLFxuXHRcdFx0J2NhdC1hLWxvdC1tb3ZlZC1jYXQnOiAn5bey56e75Yqo5Yiw5YiG57G7Jyxcblx0XHRcdCdjYXQtYS1sb3QtcmVtb3ZlZC1jYXQnOiAn5bey5LuO5YiG57G756e76ZmkJyxcblx0XHRcdCdjYXQtYS1sb3QtcmV0dXJuLXRvLXBhZ2UnOiAn6L+U5Zue5Yiw6aG16Z2iJyxcblx0XHRcdCdjYXQtYS1sb3QtY2F0LW5vdC1mb3VuZCc6ICfmib7kuI3liLDliIbnsbvjgIInLFxuXHRcdFx0Ly8gU3VtbWFyaWVzXG5cdFx0XHQnY2F0LWEtbG90LXN1bW1hcnktYWRkJzogJ1tbSGVscDpDYXQtYS1sb3R8Q2F0LWEtbG90XV3vvJrliqDlhaXliIbnsbtbW0NhdGVnb3J5OiQxXV0nLFxuXHRcdFx0J2NhdC1hLWxvdC1zdW1tYXJ5LWNvcHknOiAnW1tIZWxwOkNhdC1hLWxvdHxDYXQtYS1sb3RdXe+8muWIhuexu+mXtOWkjeWItu+8muS7jltbQ2F0ZWdvcnk6JDFdXeWIsFtbQ2F0ZWdvcnk6JDJdXScsXG5cdFx0XHQnY2F0LWEtbG90LXN1bW1hcnktbW92ZSc6ICdbW0hlbHA6Q2F0LWEtbG90fENhdC1hLWxvdF1d77ya5YiG57G76Ze056e75Yqo77ya5LuOW1tDYXRlZ29yeTokMV1d5YiwW1tDYXRlZ29yeTokMl1dJyxcblx0XHRcdCdjYXQtYS1sb3Qtc3VtbWFyeS1yZW1vdmUnOiAnW1tIZWxwOkNhdC1hLWxvdHxDYXQtYS1sb3RdXe+8muS7juWIhuexu+enu+mZpO+8mltbQ2F0ZWdvcnk6JDFdXScsXG5cdFx0fSk7XG5cdH1cbn07XG5cbmV4cG9ydCB7REVGQVVMVF9NRVNTQUdFUywgc2V0TWVzc2FnZXN9O1xuIiwgImltcG9ydCAqIGFzIE9QVElPTlMgZnJvbSAnLi4vb3B0aW9ucy5qc29uJztcbmltcG9ydCB7XG5cdENMQVNTX05BTUUsXG5cdENMQVNTX05BTUVfQ09OVEFJTkVSLFxuXHRDTEFTU19OQU1FX0NPTlRBSU5FUl9EQVRBLFxuXHRDTEFTU19OQU1FX0NPTlRBSU5FUl9EQVRBX0NBVEVHT1JZX0xJU1QsXG5cdENMQVNTX05BTUVfQ09OVEFJTkVSX0RBVEFfQ0FURUdPUllfTElTVF9BQ1RJT04sXG5cdENMQVNTX05BTUVfQ09OVEFJTkVSX0RBVEFfQ0FURUdPUllfTElTVF9OT19GT1VORCxcblx0Q0xBU1NfTkFNRV9DT05UQUlORVJfREFUQV9NQVJLX0NPVU5URVIsXG5cdENMQVNTX05BTUVfQ09OVEFJTkVSX0RBVEFfU0VBUkNIX0lOUFVUX0NPTlRBSU5FUl9JTlBVVCxcblx0Q0xBU1NfTkFNRV9DT05UQUlORVJfREFUQV9TRUxFQ1RJT05TLFxuXHRDTEFTU19OQU1FX0NPTlRBSU5FUl9EQVRBX1NFTEVDVElPTlNfQUxMLFxuXHRDTEFTU19OQU1FX0NPTlRBSU5FUl9EQVRBX1NFTEVDVElPTlNfTk9ORSxcblx0Q0xBU1NfTkFNRV9DT05UQUlORVJfSEVBRCxcblx0Q0xBU1NfTkFNRV9DT05UQUlORVJfSEVBRF9MSU5LLFxuXHRDTEFTU19OQU1FX0NPTlRBSU5FUl9IRUFEX0xJTktfRU5BQkxFRCxcblx0Q0xBU1NfTkFNRV9DVVJSRU5UX0NPVU5URVIsXG5cdENMQVNTX05BTUVfRkVFREJBQ0ssXG5cdENMQVNTX05BTUVfRkVFREJBQ0tfRE9ORSxcblx0Q0xBU1NfTkFNRV9MQUJFTCxcblx0Q0xBU1NfTkFNRV9MQUJFTF9ET05FLFxuXHRDTEFTU19OQU1FX0xBQkVMX1NFTEVDVEVELFxuXHRERUZBVUxUX1NFVFRJTkcsXG5cdFZBUklBTlRTLFxufSBmcm9tICcuL2NvbnN0YW50JztcbmltcG9ydCB7REVGQVVMVF9NRVNTQUdFUywgc2V0TWVzc2FnZXN9IGZyb20gJy4vbWVzc2FnZXMnO1xuaW1wb3J0IHR5cGUge01lc3NhZ2VLZXksIFNldHRpbmd9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHtnZXRCb2R5LCB1bmlxdWVBcnJheX0gZnJvbSAnZXh0LmdhZGdldC5VdGlsJztcbmltcG9ydCBSZWFjdCBmcm9tICdleHQuZ2FkZ2V0LkpTWCc7XG5pbXBvcnQge2FwaX0gZnJvbSAnLi9hcGknO1xuXG5jb25zdCB7d2dDYW5vbmljYWxTcGVjaWFsUGFnZU5hbWUsIHdnRm9ybWF0dGVkTmFtZXNwYWNlcywgd2dOYW1lc3BhY2VJZHMsIHdnTmFtZXNwYWNlTnVtYmVyLCB3Z1RpdGxlfSA9IG13LmNvbmZpZy5nZXQoKTtcblxuLyoqXG4gKiBDaGFuZ2VzIGNhdGVnb3J5IG9mIG11bHRpcGxlIGZpbGVzXG4gKi9cbmNvbnN0IGNhdEFMb3QgPSAoKTogdm9pZCA9PiB7XG5cdC8qISBDYXQtYS1sb3QgfCBDQy1CWS1TQS00LjAgPGh0dHBzOi8vcXdiay5jYy9IOkNDLUJZLVNBLTQuMD4gKi9cblx0Y2xhc3MgQ0FMIHtcblx0XHRwdWJsaWMgc3RhdGljIGlzU2VhcmNoTW9kZSA9IGZhbHNlO1xuXG5cdFx0cHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgTUVTU0FHRVM6IFJlY29yZDxNZXNzYWdlS2V5LCBzdHJpbmc+ID0gREVGQVVMVF9NRVNTQUdFUztcblx0XHRwcml2YXRlIHN0YXRpYyByZWFkb25seSBERUZBVUxUX1NFVFRJTkc6IFNldHRpbmcgPSBERUZBVUxUX1NFVFRJTkc7XG5cblx0XHRwcml2YXRlIHN0YXRpYyByZWFkb25seSBBUElfVEFHOiBzdHJpbmcgPSBPUFRJT05TLmFwaVRhZztcblx0XHRwcml2YXRlIHN0YXRpYyByZWFkb25seSBUQVJHRVRfTkFNRVNQQUNFOiBudW1iZXIgPSBPUFRJT05TLnRhcmdldE5hbWVzcGFjZTtcblxuXHRcdHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IENVUlJFTlRfQ0FURUdST1k6IHN0cmluZyA9IHdnVGl0bGU7XG5cblx0XHRwcml2YXRlIHN0YXRpYyByZWFkb25seSB3Z0Zvcm1hdHRlZE5hbWVzcGFjZXM6IFJlY29yZDxudW1iZXIsIHN0cmluZz4gPSB3Z0Zvcm1hdHRlZE5hbWVzcGFjZXM7XG5cdFx0cHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgd2dOYW1lc3BhY2VJZHM6IFJlY29yZDxzdHJpbmcsIG51bWJlcj4gPSB3Z05hbWVzcGFjZUlkcztcblxuXHRcdHByaXZhdGUgc3RhdGljIGlzQXV0b0NvbXBsZXRlSW5pdCA9IGZhbHNlO1xuXG5cdFx0cHJpdmF0ZSBzdGF0aWMgYXBpID0gYXBpO1xuXG5cdFx0cHJpdmF0ZSBzdGF0aWMgYWxyZWFkeVRoZXJlOiBzdHJpbmdbXSA9IFtdO1xuXHRcdHByaXZhdGUgc3RhdGljIGNvbm5lY3Rpb25FcnJvcjogc3RyaW5nW10gPSBbXTtcblx0XHRwcml2YXRlIHN0YXRpYyBub3RGb3VuZDogc3RyaW5nW10gPSBbXTtcblx0XHRwcml2YXRlIHN0YXRpYyBjb3VudGVyQ3VycmVudCA9IDA7XG5cdFx0cHJpdmF0ZSBzdGF0aWMgY291bnRlck5lZWRlZCA9IDA7XG5cblx0XHRwcml2YXRlIHN0YXRpYyBjb3VudGVyQ2F0ID0gMDtcblx0XHRwcml2YXRlIHN0YXRpYyBjdXJyZW50Q2F0ZWdvcnkgPSAnJztcblxuXHRcdHByaXZhdGUgc3RhdGljIGRpYWxvZ0hlaWdodCA9IDQ1MDtcblx0XHRwcml2YXRlIHN0YXRpYyBlZGl0VG9rZW4gPSAnJztcblx0XHRwcml2YXRlIHN0YXRpYyBsb2NhbENhdE5hbWUgPSB3Z0Zvcm1hdHRlZE5hbWVzcGFjZXNbQ0FMLlRBUkdFVF9OQU1FU1BBQ0VdIGFzIHN0cmluZztcblxuXHRcdHByaXZhdGUgc3RhdGljIHBhcmVudENhdHM6IHN0cmluZ1tdID0gW107XG5cdFx0cHJpdmF0ZSBzdGF0aWMgc3ViQ2F0czogc3RyaW5nW10gPSBbXTtcblxuXHRcdHByaXZhdGUgc3RhdGljIHNldHRpbmdzOiBOb25OdWxsYWJsZTx0eXBlb2Ygd2luZG93LkNhdEFMb3RQcmVmcz4gPSB7fTtcblx0XHRwcml2YXRlIHN0YXRpYyB2YXJpYW50Q2FjaGU6IFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPiA9IHt9O1xuXHRcdHByaXZhdGUgc3RhdGljIHZhcmlhbnRDYWNoZTI6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+ID0ge307XG5cblx0XHRwcml2YXRlIHN0YXRpYyAkY291bnRlcjogSlF1ZXJ5ID0gJCgpO1xuXHRcdHByaXZhdGUgc3RhdGljICRwcm9ncmVzc0RpYWxvZzogSlF1ZXJ5ID0gJCgpO1xuXHRcdHByaXZhdGUgc3RhdGljICRsYWJlbHM6IEpRdWVyeSA9ICQoKTtcblx0XHRwcml2YXRlIHN0YXRpYyAkc2VsZWN0ZWRMYWJlbHM6IEpRdWVyeSA9ICQoKTtcblxuXHRcdHByaXZhdGUgcmVhZG9ubHkgJGJvZHk6IEpRdWVyeTxIVE1MQm9keUVsZW1lbnQ+O1xuXHRcdHByaXZhdGUgcmVhZG9ubHkgJGNvbnRhaW5lcjogSlF1ZXJ5O1xuXHRcdHByaXZhdGUgcmVhZG9ubHkgJGRhdGFDb250YWluZXI6IEpRdWVyeTtcblx0XHRwcml2YXRlIHJlYWRvbmx5ICRtYXJrQ291bnRlcjogSlF1ZXJ5O1xuXHRcdHByaXZhdGUgcmVhZG9ubHkgJHJlc3VsdExpc3Q6IEpRdWVyeTtcblx0XHRwcml2YXRlIHJlYWRvbmx5ICRzZWFyY2hJbnB1dDogSlF1ZXJ5PEhUTUxJbnB1dEVsZW1lbnQ+O1xuXHRcdHByaXZhdGUgcmVhZG9ubHkgJGhlYWQ6IEpRdWVyeTtcblx0XHRwcml2YXRlIHJlYWRvbmx5ICRsaW5rOiBKUXVlcnk8SFRNTEFuY2hvckVsZW1lbnQ+O1xuXG5cdFx0cHVibGljIGNvbnN0cnVjdG9yKCRib2R5OiBKUXVlcnk8SFRNTEJvZHlFbGVtZW50Pikge1xuXHRcdFx0aWYgKCFtdy5tc2coJ2NhdC1hLWxvdC1sb2FkaW5nJykpIHtcblx0XHRcdFx0bXcubWVzc2FnZXMuc2V0KENBTC5NRVNTQUdFUyk7XG5cdFx0XHR9XG5cblx0XHRcdHRoaXMuJGJvZHkgPSAkYm9keTtcblx0XHRcdENBTC5pbml0U2V0dGluZ3MoKTtcblxuXHRcdFx0Y29uc3QgY29udGFpbmVyID0gKFxuXHRcdFx0XHQ8ZGl2IGNsYXNzTmFtZT17W0NMQVNTX05BTUUsIENMQVNTX05BTUVfQ09OVEFJTkVSLCAnbm9wcmludCddfT5cblx0XHRcdFx0XHQ8ZGl2IGNsYXNzTmFtZT17Q0xBU1NfTkFNRV9DT05UQUlORVJfREFUQX0+XG5cdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzTmFtZT17Q0xBU1NfTkFNRV9DT05UQUlORVJfREFUQV9NQVJLX0NPVU5URVJ9IC8+XG5cdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzTmFtZT17Q0xBU1NfTkFNRV9DT05UQUlORVJfREFUQV9DQVRFR09SWV9MSVNUfSAvPlxuXHRcdFx0XHRcdFx0PGRpdj5cblx0XHRcdFx0XHRcdFx0PGlucHV0XG5cdFx0XHRcdFx0XHRcdFx0Y2xhc3NOYW1lPXtDTEFTU19OQU1FX0NPTlRBSU5FUl9EQVRBX1NFQVJDSF9JTlBVVF9DT05UQUlORVJfSU5QVVR9XG5cdFx0XHRcdFx0XHRcdFx0cGxhY2Vob2xkZXI9e0NBTC5tc2coJ2VudGVyLW5hbWUnKX1cblx0XHRcdFx0XHRcdFx0XHR0eXBlPVwidGV4dFwiXG5cdFx0XHRcdFx0XHRcdFx0dmFsdWU9e0NBTC5pc1NlYXJjaE1vZGUgPyAobXcudXRpbC5nZXRQYXJhbVZhbHVlKCdzZWFyY2gnKSA/PyAnJykgOiAnJ31cblx0XHRcdFx0XHRcdFx0XHRvbktleURvd249eyhldmVudCk6IHZvaWQgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdFx0Y29uc3QgJGVsZW1lbnQgPSAkPEhUTUxJbnB1dEVsZW1lbnQ+KGV2ZW50LmN1cnJlbnRUYXJnZXQpO1xuXHRcdFx0XHRcdFx0XHRcdFx0aWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJykge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRjb25zdCBjYXQ6IHN0cmluZyA9ICRlbGVtZW50LnZhbCgpPy50cmltKCkgPz8gJyc7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGlmIChjYXQpIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0aGlzLnVwZGF0ZUNhdHMoY2F0KTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdH19XG5cdFx0XHRcdFx0XHRcdC8+XG5cdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdDxkaXYgY2xhc3NOYW1lPXtDTEFTU19OQU1FX0NPTlRBSU5FUl9EQVRBX1NFTEVDVElPTlN9PlxuXHRcdFx0XHRcdFx0XHR7W0NBTC5tc2coJ3NlbGVjdCcpLCAnICddfVxuXHRcdFx0XHRcdFx0XHQ8YVxuXHRcdFx0XHRcdFx0XHRcdGNsYXNzTmFtZT17Q0xBU1NfTkFNRV9DT05UQUlORVJfREFUQV9TRUxFQ1RJT05TX0FMTH1cblx0XHRcdFx0XHRcdFx0XHRvbkNsaWNrPXsoKTogdm9pZCA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0XHR0aGlzLnRvZ2dsZUFsbCh0cnVlKTtcblx0XHRcdFx0XHRcdFx0XHR9fVxuXHRcdFx0XHRcdFx0XHQ+XG5cdFx0XHRcdFx0XHRcdFx0e0NBTC5tc2coJ2FsbCcpfVxuXHRcdFx0XHRcdFx0XHQ8L2E+XG5cdFx0XHRcdFx0XHRcdHsnIOKAoiAnfVxuXHRcdFx0XHRcdFx0XHQ8YVxuXHRcdFx0XHRcdFx0XHRcdGNsYXNzTmFtZT17Q0xBU1NfTkFNRV9DT05UQUlORVJfREFUQV9TRUxFQ1RJT05TX05PTkV9XG5cdFx0XHRcdFx0XHRcdFx0b25DbGljaz17KCk6IHZvaWQgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy50b2dnbGVBbGwoZmFsc2UpO1xuXHRcdFx0XHRcdFx0XHRcdH19XG5cdFx0XHRcdFx0XHRcdD5cblx0XHRcdFx0XHRcdFx0XHR7Q0FMLm1zZygnbm9uZScpfVxuXHRcdFx0XHRcdFx0XHQ8L2E+XG5cdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHQ8ZGl2IGNsYXNzTmFtZT17Q0xBU1NfTkFNRV9DT05UQUlORVJfSEVBRH0+XG5cdFx0XHRcdFx0XHQ8YSBjbGFzc05hbWU9e0NMQVNTX05BTUVfQ09OVEFJTkVSX0hFQURfTElOS30+Q2F0LWEtbG90PC9hPlxuXHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHQ8L2Rpdj5cblx0XHRcdCk7XG5cblx0XHRcdHRoaXMuJGNvbnRhaW5lciA9ICQoY29udGFpbmVyKSBhcyBKUXVlcnk7XG5cdFx0XHR0aGlzLiRjb250YWluZXIuYXBwZW5kVG8odGhpcy4kYm9keSk7XG5cblx0XHRcdHRoaXMuJGRhdGFDb250YWluZXIgPSB0aGlzLiRjb250YWluZXIuZmluZChgLiR7Q0xBU1NfTkFNRV9DT05UQUlORVJfREFUQX1gKTtcblx0XHRcdHRoaXMuJG1hcmtDb3VudGVyID0gdGhpcy4kZGF0YUNvbnRhaW5lci5maW5kKGAuJHtDTEFTU19OQU1FX0NPTlRBSU5FUl9EQVRBX01BUktfQ09VTlRFUn1gKTtcblx0XHRcdHRoaXMuJHJlc3VsdExpc3QgPSB0aGlzLiRkYXRhQ29udGFpbmVyLmZpbmQoYC4ke0NMQVNTX05BTUVfQ09OVEFJTkVSX0RBVEFfQ0FURUdPUllfTElTVH1gKTtcblx0XHRcdHRoaXMuJHNlYXJjaElucHV0ID0gdGhpcy4kZGF0YUNvbnRhaW5lci5maW5kPEhUTUxJbnB1dEVsZW1lbnQ+KFxuXHRcdFx0XHRgLiR7Q0xBU1NfTkFNRV9DT05UQUlORVJfREFUQV9TRUFSQ0hfSU5QVVRfQ09OVEFJTkVSX0lOUFVUfWBcblx0XHRcdCk7XG5cblx0XHRcdHRoaXMuJGhlYWQgPSB0aGlzLiRjb250YWluZXIuZmluZChgLiR7Q0xBU1NfTkFNRV9DT05UQUlORVJfSEVBRH1gKTtcblx0XHRcdHRoaXMuJGxpbmsgPSB0aGlzLiRoZWFkLmZpbmQ8SFRNTEFuY2hvckVsZW1lbnQ+KGAuJHtDTEFTU19OQU1FX0NPTlRBSU5FUl9IRUFEX0xJTkt9YCk7XG5cdFx0fVxuXG5cdFx0cHVibGljIGJ1aWxkRWxlbWVudHMoKTogdm9pZCB7XG5cdFx0XHRjb25zdCByZWdleENhdDogUmVnRXhwID0gbmV3IFJlZ0V4cChgXlxcXFxzKiR7Q0FMLmxvY2FsaXplZFJlZ2V4KENBTC5UQVJHRVRfTkFNRVNQQUNFLCAnQ2F0ZWdvcnknKX06YCwgJycpO1xuXHRcdFx0bGV0IGlzQ29tcG9zaXRpb25TdGFydDogYm9vbGVhbjtcblxuXHRcdFx0dGhpcy4kc2VhcmNoSW5wdXQub24oJ2NvbXBvc2l0aW9uc3RhcnQnLCAoKSA9PiB7XG5cdFx0XHRcdGlzQ29tcG9zaXRpb25TdGFydCA9IHRydWU7XG5cdFx0XHR9KTtcblxuXHRcdFx0dGhpcy4kc2VhcmNoSW5wdXQub24oJ2NvbXBvc2l0aW9uZW5kJywgKCkgPT4ge1xuXHRcdFx0XHRpc0NvbXBvc2l0aW9uU3RhcnQgPSBmYWxzZTtcblx0XHRcdH0pO1xuXG5cdFx0XHR0aGlzLiRzZWFyY2hJbnB1dC5vbignaW5wdXQga2V5dXAnLCAoZXZlbnQpOiB2b2lkID0+IHtcblx0XHRcdFx0aWYgKGlzQ29tcG9zaXRpb25TdGFydCkge1xuXHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0fVxuXHRcdFx0XHRjb25zdCB7Y3VycmVudFRhcmdldH0gPSBldmVudDtcblx0XHRcdFx0Y29uc3Qge3ZhbHVlOiBvbGRWYWx9ID0gY3VycmVudFRhcmdldDtcblx0XHRcdFx0Y29uc3QgbmV3VmFsOiBzdHJpbmcgPSBvbGRWYWwucmVwbGFjZShyZWdleENhdCwgJycpO1xuXHRcdFx0XHRpZiAobmV3VmFsICE9PSBvbGRWYWwpIHtcblx0XHRcdFx0XHRjdXJyZW50VGFyZ2V0LnZhbHVlID0gbmV3VmFsO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblxuXHRcdFx0Y29uc3QgaW5pdEF1dG9jb21wbGV0ZSA9ICgpOiB2b2lkID0+IHtcblx0XHRcdFx0aWYgKENBTC5pc0F1dG9Db21wbGV0ZUluaXQpIHtcblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH1cblx0XHRcdFx0Q0FMLmlzQXV0b0NvbXBsZXRlSW5pdCA9IHRydWU7XG5cblx0XHRcdFx0dGhpcy4kc2VhcmNoSW5wdXQuYXV0b2NvbXBsZXRlKHtcblx0XHRcdFx0XHRzb3VyY2U6IChyZXF1ZXN0OiB7dGVybTogc3RyaW5nfSwgcmVzcG9uc2U6IChhcmc6IEpRdWVyeTxzdHJpbmc+KSA9PiB2b2lkKTogdm9pZCA9PiB7XG5cdFx0XHRcdFx0XHR0aGlzLmRvQVBJQ2FsbChcblx0XHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcdGFjdGlvbjogJ29wZW5zZWFyY2gnLFxuXHRcdFx0XHRcdFx0XHRcdG5hbWVzcGFjZTogQ0FMLlRBUkdFVF9OQU1FU1BBQ0UsXG5cdFx0XHRcdFx0XHRcdFx0cmVkaXJlY3RzOiAncmVzb2x2ZScsXG5cdFx0XHRcdFx0XHRcdFx0c2VhcmNoOiByZXF1ZXN0LnRlcm0sXG5cdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRcdChyZXN1bHQpOiB2b2lkID0+IHtcblx0XHRcdFx0XHRcdFx0XHRpZiAocmVzdWx0WzFdKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRyZXNwb25zZShcblx0XHRcdFx0XHRcdFx0XHRcdFx0JChyZXN1bHRbMV0pLm1hcCgoX2luZGV4LCBpdGVtOiBzdHJpbmcpOiBzdHJpbmcgPT4gaXRlbS5yZXBsYWNlKHJlZ2V4Q2F0LCAnJykpXG5cdFx0XHRcdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdHBvc2l0aW9uOiB7XG5cdFx0XHRcdFx0XHRteTogJ3JpZ2h0IGJvdHRvbScsXG5cdFx0XHRcdFx0XHRhdDogJ3JpZ2h0IHRvcCcsXG5cdFx0XHRcdFx0XHRvZjogdGhpcy4kc2VhcmNoSW5wdXQsXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRhcHBlbmRUbzogYC4ke0NMQVNTX05BTUVfQ09OVEFJTkVSfWAsXG5cdFx0XHRcdH0pO1xuXHRcdFx0fTtcblx0XHRcdHRoaXMuJGxpbmsub24oJ2NsaWNrJywgKGV2ZW50KTogdm9pZCA9PiB7XG5cdFx0XHRcdCQoZXZlbnQuY3VycmVudFRhcmdldCkudG9nZ2xlQ2xhc3MoQ0xBU1NfTkFNRV9DT05UQUlORVJfSEVBRF9MSU5LX0VOQUJMRUQpO1xuXHRcdFx0XHRpbml0QXV0b2NvbXBsZXRlKCk7XG5cdFx0XHRcdHRoaXMucnVuKCk7XG5cdFx0XHR9KTtcblx0XHR9XG5cblx0XHRwcml2YXRlIHN0YXRpYyBpbml0U2V0dGluZ3MoKTogdm9pZCB7XG5cdFx0XHRsZXQgY2F0QUxvdFByZWZzOiB0eXBlb2YgQ0FMLnNldHRpbmdzID0gd2luZG93LkNhdEFMb3RQcmVmcyA/PyB7fTtcblx0XHRcdGNvbnN0IHR5cGVPZkNhdEFMb3RQcmVmcyA9IHR5cGVvZiBjYXRBTG90UHJlZnM7XG5cdFx0XHRpZiAoKHR5cGVPZkNhdEFMb3RQcmVmcyA9PT0gJ29iamVjdCcgJiYgIUFycmF5LmlzQXJyYXkoY2F0QUxvdFByZWZzKSkgfHwgdHlwZU9mQ2F0QUxvdFByZWZzICE9PSAnb2JqZWN0Jykge1xuXHRcdFx0XHRjYXRBTG90UHJlZnMgPSB7fTtcblx0XHRcdH1cblxuXHRcdFx0Zm9yIChjb25zdCBzZXR0aW5nS2V5IG9mIE9iamVjdC5rZXlzKENBTC5ERUZBVUxUX1NFVFRJTkcpIGFzIChrZXlvZiBTZXR0aW5nKVtdKSB7XG5cdFx0XHRcdGNvbnN0IHNldHRpbmcgPSBDQUwuREVGQVVMVF9TRVRUSU5HW3NldHRpbmdLZXldO1xuXG5cdFx0XHRcdENBTC5zZXR0aW5nc1tzZXR0aW5nS2V5XSA9IGNhdEFMb3RQcmVmc1tzZXR0aW5nS2V5XSA/PyBzZXR0aW5nLmRlZmF1bHQ7XG5cblx0XHRcdFx0aWYgKCFzZXR0aW5nLnNlbGVjdF9pMThuKSB7XG5cdFx0XHRcdFx0Y29udGludWU7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRzZXR0aW5nLnNlbGVjdCA9IHt9O1xuXHRcdFx0XHRmb3IgKGNvbnN0IG1lc3NhZ2VLZXkgb2YgT2JqZWN0LmtleXMoc2V0dGluZy5zZWxlY3RfaTE4bikpIHtcblx0XHRcdFx0XHRjb25zdCBtZXNzYWdlOiBzdHJpbmcgPSBzZXR0aW5nLnNlbGVjdF9pMThuW21lc3NhZ2VLZXldIGFzIGtleW9mIHR5cGVvZiBzZXR0aW5nLnNlbGVjdF9pMThuO1xuXHRcdFx0XHRcdC8vIE1lc3NhZ2VzIHRoYXQgY2FuIGJlIHVzZWQgaGVyZTpcblx0XHRcdFx0XHQvLyAqIHNlZSBtZXNzYWdlcy50c1xuXHRcdFx0XHRcdC8vICogZm9yIG1vcmUgaW5mb3JtYXRpb25cblx0XHRcdFx0XHRzZXR0aW5nLnNlbGVjdFtDQUwubXNnKG1lc3NhZ2VLZXkgYXMgbmV2ZXIpXSA9IG1lc3NhZ2U7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHRwcml2YXRlIHN0YXRpYyBtc2coa2V5OiBNZXNzYWdlS2V5IGV4dGVuZHMgYGNhdC1hLWxvdC0ke2luZmVyIFB9YCA/IFAgOiBuZXZlciwgLi4uYXJnczogc3RyaW5nW10pOiBzdHJpbmcge1xuXHRcdFx0Y29uc3QgZnVsbEtleTogc3RyaW5nID0gYGNhdC1hLWxvdC0ke2tleX1gO1xuXHRcdFx0Ly8gTWVzc2FnZXMgdGhhdCBjYW4gYmUgdXNlZCBoZXJlOlxuXHRcdFx0Ly8gKiBzZWUgbWVzc2FnZXMudHNcblx0XHRcdC8vICogZm9yIG1vcmUgaW5mb3JtYXRpb25cblx0XHRcdHJldHVybiBhcmdzLmxlbmd0aCA/IG13Lm1lc3NhZ2UoZnVsbEtleSwgLi4uYXJncykucGFyc2UoKSA6IG13Lm1lc3NhZ2UoZnVsbEtleSkucGxhaW4oKTtcblx0XHR9XG5cdFx0cHJpdmF0ZSBzdGF0aWMgbG9jYWxpemVkUmVnZXgobmFtZXNwYWNlTnVtYmVyOiBudW1iZXIsIGZhbGxiYWNrOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRcdFx0Ly8gQ29waWVkIGZyb20gSG90Q2F0LCB0aGFua3MgTHVwby5cblx0XHRcdGNvbnN0IHdpa2lUZXh0Qmxhbms6IHN0cmluZyA9IFN0cmluZy5yYXdgW1xcdCBfXFx4QTBcXHUxNjgwXFx1MTgwRVxcdTIwMDAtXFx1MjAwQVxcdTIwMjhcXHUyMDI5XFx1MjAyRlxcdTIwNUZcXHUzMDAwXStgO1xuXHRcdFx0Y29uc3Qgd2lraVRleHRCbGFua1JFOiBSZWdFeHAgPSBuZXcgUmVnRXhwKHdpa2lUZXh0QmxhbmssICdnJyk7XG5cdFx0XHRjb25zdCBjcmVhdGVSZWdleFN0ciA9IChuYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBzdHJpbmcgPT4ge1xuXHRcdFx0XHRpZiAoIW5hbWU/Lmxlbmd0aCkge1xuXHRcdFx0XHRcdHJldHVybiAnJztcblx0XHRcdFx0fVxuXHRcdFx0XHRsZXQgcmVnZXhOYW1lOiBzdHJpbmcgPSAnJztcblx0XHRcdFx0Zm9yIChsZXQgaTogbnVtYmVyID0gMDsgaSA8IG5hbWUubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0XHRjb25zdCBpbml0aWFsOiBzdHJpbmcgPSBuYW1lLnNsaWNlKGksIGkgKyAxKTtcblx0XHRcdFx0XHRjb25zdCBsbDogc3RyaW5nID0gaW5pdGlhbC50b0xvd2VyQ2FzZSgpO1xuXHRcdFx0XHRcdGNvbnN0IHVsOiBzdHJpbmcgPSBpbml0aWFsLnRvVXBwZXJDYXNlKCk7XG5cdFx0XHRcdFx0cmVnZXhOYW1lICs9IGxsID09PSB1bCA/IGluaXRpYWwgOiBgWyR7bGx9JHt1bH1dYDtcblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gcmVnZXhOYW1lLnJlcGxhY2UoLyhbJCgpKisuP1xcXFxeXSkvZywgU3RyaW5nLnJhd2BcXCQxYCkucmVwbGFjZSh3aWtpVGV4dEJsYW5rUkUsIHdpa2lUZXh0QmxhbmspO1xuXHRcdFx0fTtcblx0XHRcdGZhbGxiYWNrID0gZmFsbGJhY2sudG9Mb3dlckNhc2UoKTtcblx0XHRcdGNvbnN0IGNhbm9uaWNhbDogc3RyaW5nIHwgdW5kZWZpbmVkID0gQ0FMLndnRm9ybWF0dGVkTmFtZXNwYWNlc1tuYW1lc3BhY2VOdW1iZXJdPy50b0xvd2VyQ2FzZSgpO1xuXHRcdFx0bGV0IHJlZ2V4U3RyaW5nOiBzdHJpbmcgPSBjcmVhdGVSZWdleFN0cihjYW5vbmljYWwpO1xuXHRcdFx0aWYgKGZhbGxiYWNrICYmIGNhbm9uaWNhbCAhPT0gZmFsbGJhY2spIHtcblx0XHRcdFx0cmVnZXhTdHJpbmcgKz0gYHwke2NyZWF0ZVJlZ2V4U3RyKGZhbGxiYWNrKX1gO1xuXHRcdFx0fVxuXHRcdFx0Zm9yIChjb25zdCBjYXROYW1lIG9mIE9iamVjdC5rZXlzKENBTC53Z05hbWVzcGFjZUlkcykpIHtcblx0XHRcdFx0aWYgKFxuXHRcdFx0XHRcdGNhdE5hbWUudG9Mb3dlckNhc2UoKSAhPT0gY2Fub25pY2FsICYmXG5cdFx0XHRcdFx0Y2F0TmFtZS50b0xvd2VyQ2FzZSgpICE9PSBmYWxsYmFjayAmJlxuXHRcdFx0XHRcdENBTC53Z05hbWVzcGFjZUlkc1tjYXROYW1lXSA9PT0gbmFtZXNwYWNlTnVtYmVyXG5cdFx0XHRcdCkge1xuXHRcdFx0XHRcdHJlZ2V4U3RyaW5nICs9IGB8JHtjcmVhdGVSZWdleFN0cihjYXROYW1lKX1gO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gYCg/OiR7cmVnZXhTdHJpbmd9KWA7XG5cdFx0fVxuXHRcdHByaXZhdGUgdXBkYXRlU2VsZWN0aW9uQ291bnRlcigpOiB2b2lkIHtcblx0XHRcdENBTC4kc2VsZWN0ZWRMYWJlbHMgPSBDQUwuJGxhYmVscy5maWx0ZXIoYC4ke0NMQVNTX05BTUVfTEFCRUxfU0VMRUNURUR9YCk7XG5cdFx0XHR0aGlzLiRtYXJrQ291bnRlci5zaG93KCkuaHRtbChDQUwubXNnKCdmaWxlcy1zZWxlY3RlZCcsIENBTC4kc2VsZWN0ZWRMYWJlbHMubGVuZ3RoLnRvU3RyaW5nKCkpKTtcblx0XHR9XG5cdFx0cHJpdmF0ZSB0b2dnbGVBbGwoc2VsZWN0OiBib29sZWFuKTogdm9pZCB7XG5cdFx0XHQvLyBUaGUgZm9sbG93aW5nIGNsYXNzZXMgYXJlIHVzZWQgaGVyZTpcblx0XHRcdC8vICogc2VlIGNvbnN0YW50LnRzXG5cdFx0XHQvLyAqIGZvciBtb3JlIGluZm9ybWF0aW9uXG5cdFx0XHRDQUwuJGxhYmVscy50b2dnbGVDbGFzcyhDTEFTU19OQU1FX0xBQkVMX1NFTEVDVEVELCBzZWxlY3QpO1xuXHRcdFx0dGhpcy51cGRhdGVTZWxlY3Rpb25Db3VudGVyKCk7XG5cdFx0fVxuXG5cdFx0cHJpdmF0ZSBzdGF0aWMgYXN5bmMgZmluZEFsbFZhcmlhbnRzKGNhdGVnb3J5OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG5cdFx0XHRpZiAoQ0FMLnZhcmlhbnRDYWNoZVtjYXRlZ29yeV0gIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHRyZXR1cm4gQ0FMLnZhcmlhbnRDYWNoZVtjYXRlZ29yeV07XG5cdFx0XHR9XG5cdFx0XHRDQUwudmFyaWFudENhY2hlMltjYXRlZ29yeV0gPz89IHt9O1xuXHRcdFx0Y29uc3QgcmVzdWx0czogc3RyaW5nW10gPSBbXTtcblx0XHRcdGNvbnN0IHBhcmFtczogQXBpUGFyc2VQYXJhbXMgPSB7XG5cdFx0XHRcdGFjdGlvbjogJ3BhcnNlJyxcblx0XHRcdFx0Zm9ybWF0OiAnanNvbicsXG5cdFx0XHRcdGZvcm1hdHZlcnNpb246ICcyJyxcblx0XHRcdFx0dGV4dDogY2F0ZWdvcnksXG5cdFx0XHRcdHRpdGxlOiAndGVtcCcsXG5cdFx0XHR9O1xuXHRcdFx0Zm9yIChjb25zdCB2YXJpYW50IG9mIFZBUklBTlRTKSB7XG5cdFx0XHRcdGNvbnN0IHJlc3VsdDIgPSBDQUwudmFyaWFudENhY2hlMltjYXRlZ29yeV0/Llt2YXJpYW50XTtcblx0XHRcdFx0aWYgKHJlc3VsdDIpIHtcblx0XHRcdFx0XHRyZXN1bHRzW3Jlc3VsdHMubGVuZ3RoXSA9IHJlc3VsdDI7XG5cdFx0XHRcdFx0Y29udGludWU7XG5cdFx0XHRcdH1cblx0XHRcdFx0dHJ5IHtcblx0XHRcdFx0XHRjb25zdCB7cGFyc2V9ID0gYXdhaXQgQ0FMLmFwaS5nZXQoe1xuXHRcdFx0XHRcdFx0Li4ucGFyYW1zLFxuXHRcdFx0XHRcdFx0dmFyaWFudCxcblx0XHRcdFx0XHR9IGFzIHR5cGVvZiBwYXJhbXMpO1xuXHRcdFx0XHRcdGNvbnN0IHt0ZXh0fSA9IHBhcnNlO1xuXHRcdFx0XHRcdGNvbnN0IHJlc3VsdCA9ICQodGV4dCkuZXEoMCkudGV4dCgpLnRyaW0oKTtcblx0XHRcdFx0XHRyZXN1bHRzW3Jlc3VsdHMubGVuZ3RoXSA9IHJlc3VsdDtcblx0XHRcdFx0XHRpZiAoQ0FMLnZhcmlhbnRDYWNoZTJbY2F0ZWdvcnldKSB7XG5cdFx0XHRcdFx0XHRDQUwudmFyaWFudENhY2hlMltjYXRlZ29yeV1bdmFyaWFudF0gPSByZXN1bHQ7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9IGNhdGNoIHt9XG5cdFx0XHR9XG5cdFx0XHQvLyBEZS1kdXBsaWNhdGVcblx0XHRcdENBTC52YXJpYW50Q2FjaGVbY2F0ZWdvcnldID0gdW5pcXVlQXJyYXkocmVzdWx0cyk7IC8vIFJlcGxhY2UgU2V0IHdpdGggdW5pcXVlQXJyYXksIGF2b2lkaW5nIGNvcmUtanMgcG9seWZpbGxpbmdcblx0XHRcdHJldHVybiByZXN1bHRzO1xuXHRcdH1cblxuXHRcdHByaXZhdGUgc3RhdGljIGFzeW5jIHJlZ2V4QnVpbGRlcihjYXRlZ29yeTogc3RyaW5nKTogUHJvbWlzZTxSZWdFeHA+IHtcblx0XHRcdC8vIEJ1aWxkIGEgcmVnZXhwIHN0cmluZyBmb3IgbWF0Y2hpbmcgdGhlIGdpdmVuIGNhdGVnb3J5OlxuXHRcdFx0Y29uc3QgY2F0TmFtZTogc3RyaW5nID0gQ0FMLmxvY2FsaXplZFJlZ2V4KENBTC5UQVJHRVRfTkFNRVNQQUNFLCAnQ2F0ZWdvcnknKTtcblx0XHRcdC8vIHRyaW0gbGVhZGluZy90cmFpbGluZyB3aGl0ZXNwYWNlIGFuZCB1bmRlcnNjb3Jlc1xuXHRcdFx0Y2F0ZWdvcnkgPSBjYXRlZ29yeS5yZXBsYWNlKC9eW1xcc19dKy8sICcnKS5yZXBsYWNlKC9bXFxzX10rJC8sICcnKTtcblx0XHRcdC8vIEZpbmQgYWxsIHZhcmlhbnRzXG5cdFx0XHRjb25zdCB2YXJpYW50czogc3RyaW5nW10gPSBhd2FpdCBDQUwuZmluZEFsbFZhcmlhbnRzKGNhdGVnb3J5KTtcblx0XHRcdC8vIGVzY2FwZSByZWdleHAgbWV0YWNoYXJhY3RlcnMgKD0gYW55IEFTQ0lJIHB1bmN0dWF0aW9uIGV4Y2VwdCBfKVxuXHRcdFx0Y29uc3QgdmFyaWFudFJlZ0V4cHM6IHN0cmluZ1tdID0gW107XG5cdFx0XHRmb3IgKGxldCB2YXJpYW50IG9mIHZhcmlhbnRzKSB7XG5cdFx0XHRcdHZhcmlhbnQgPSBtdy51dGlsLmVzY2FwZVJlZ0V4cCh2YXJpYW50KTtcblx0XHRcdFx0Ly8gYW55IHNlcXVlbmNlIG9mIHNwYWNlcyBhbmQgdW5kZXJzY29yZXMgc2hvdWxkIG1hdGNoIGFueSBvdGhlclxuXHRcdFx0XHR2YXJpYW50ID0gdmFyaWFudC5yZXBsYWNlKC9bXFxzX10rL2csIFN0cmluZy5yYXdgW1xcc19dK2ApO1xuXHRcdFx0XHQvLyBNYWtlIHRoZSBmaXJzdCBjaGFyYWN0ZXIgY2FzZS1pbnNlbnNpdGl2ZTpcblx0XHRcdFx0Y29uc3QgZmlyc3Q6IHN0cmluZyA9IHZhcmlhbnQuc2xpY2UoMCwgMSk7XG5cdFx0XHRcdGlmIChmaXJzdC50b1VwcGVyQ2FzZSgpICE9PSBmaXJzdC50b0xvd2VyQ2FzZSgpKSB7XG5cdFx0XHRcdFx0dmFyaWFudCA9IGBbJHtmaXJzdC50b1VwcGVyQ2FzZSgpfSR7Zmlyc3QudG9Mb3dlckNhc2UoKX1dJHt2YXJpYW50LnNsaWNlKDEpfWA7XG5cdFx0XHRcdH1cblx0XHRcdFx0dmFyaWFudFJlZ0V4cHNbdmFyaWFudFJlZ0V4cHMubGVuZ3RoXSA9IHZhcmlhbnQ7XG5cdFx0XHR9XG5cdFx0XHQvLyBDb21waWxlIGl0IGludG8gYSBSZWdFeHAgdGhhdCBtYXRjaGVzIE1lZGlhV2lraSBjYXRlZ29yeSBzeW50YXggKHllYWgsIGl0IGxvb2tzIHVnbHkpOlxuXHRcdFx0Ly8gWFhYOiB0aGUgZmlyc3QgY2FwdHVyaW5nIHBhcmVucyBhcmUgYXNzdW1lZCB0byBtYXRjaCB0aGUgc29ydGtleSwgaWYgcHJlc2VudCwgaW5jbHVkaW5nIHRoZSB8IGJ1dCBleGNsdWRpbmcgdGhlIF1dXG5cdFx0XHRyZXR1cm4gbmV3IFJlZ0V4cChcblx0XHRcdFx0YFxcXFxbXFxcXFtbXFxcXHNfXSoke2NhdE5hbWV9W1xcXFxzX10qOltcXFxcc19dKig/OiR7dmFyaWFudFJlZ0V4cHMuam9pbihcblx0XHRcdFx0XHQnfCdcblx0XHRcdFx0KX0pW1xcXFxzX10qKFxcXFx8W15cXFxcXV0qKD86XFxcXF1bXlxcXFxdXSspKik/XFxcXF1cXFxcXWAsXG5cdFx0XHRcdCdnJ1xuXHRcdFx0KTtcblx0XHR9XG5cblx0XHRwcml2YXRlIGRvQVBJQ2FsbChcblx0XHRcdF9wYXJhbXM6XG5cdFx0XHRcdHwgT21pdDxBcGlFZGl0UGFnZVBhcmFtcywgJ2Zvcm1hdCc+XG5cdFx0XHRcdHwgT21pdDxBcGlPcGVuU2VhcmNoUGFyYW1zLCAnZm9ybWF0Jz5cblx0XHRcdFx0fCBPbWl0PEFwaVF1ZXJ5Q2F0ZWdvcnlNZW1iZXJzUGFyYW1zLCAnZm9ybWF0Jz5cblx0XHRcdFx0fCBPbWl0PEFwaVF1ZXJ5UmV2aXNpb25zUGFyYW1zLCAnZm9ybWF0Jz5cblx0XHRcdFx0fCBPbWl0PEFwaVF1ZXJ5VG9rZW5zUGFyYW1zLCAnZm9ybWF0Jz4sXG5cdFx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuXHRcdFx0Y2FsbGJhY2s6IChkYXRhOiBhbnkpID0+IHZvaWRcblx0XHQpIHtcblx0XHRcdGNvbnN0IHBhcmFtcyA9IF9wYXJhbXMgYXMgdHlwZW9mIF9wYXJhbXMgJiB7XG5cdFx0XHRcdGZvcm1hdDogJ2pzb24nO1xuXHRcdFx0XHR0aXRsZT86IHN0cmluZztcblx0XHRcdH07XG5cdFx0XHRwYXJhbXNbJ2Zvcm1hdCddID0gJ2pzb24nO1xuXHRcdFx0cGFyYW1zWydmb3JtYXR2ZXJzaW9uJ10gPSAnMic7XG5cdFx0XHRsZXQgaTogbnVtYmVyID0gMDtcblx0XHRcdGNvbnN0IGRvQ2FsbCA9ICgpOiB2b2lkID0+IHtcblx0XHRcdFx0Y29uc3QgaGFuZGxlRXJyb3IgPSAoZXJyb3I6IHN0cmluZyk6IHZvaWQgPT4ge1xuXHRcdFx0XHRcdG13LmxvZy5lcnJvcignW0NhdC1hLWxvdF0gQWpheCBlcnJvcjonLCBlcnJvcik7XG5cdFx0XHRcdFx0aWYgKGkgPCA0KSB7XG5cdFx0XHRcdFx0XHRzZXRUaW1lb3V0KGRvQ2FsbCwgMzAwKTtcblx0XHRcdFx0XHRcdGkrKztcblx0XHRcdFx0XHR9IGVsc2UgaWYgKHBhcmFtc1sndGl0bGUnXSkge1xuXHRcdFx0XHRcdFx0Q0FMLmNvbm5lY3Rpb25FcnJvcltDQUwuY29ubmVjdGlvbkVycm9yLmxlbmd0aF0gPSBwYXJhbXNbJ3RpdGxlJ107XG5cdFx0XHRcdFx0XHR0aGlzLnVwZGF0ZUNvdW50ZXIoKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH07XG5cdFx0XHRcdGlmIChwYXJhbXMuYWN0aW9uID09PSAncXVlcnknKSB7XG5cdFx0XHRcdFx0Q0FMLmFwaS5nZXQocGFyYW1zKS50aGVuKGNhbGxiYWNrKS5jYXRjaChoYW5kbGVFcnJvcik7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0Q0FMLmFwaS5wb3N0KHBhcmFtcykudGhlbihjYWxsYmFjaykuY2F0Y2goaGFuZGxlRXJyb3IpO1xuXHRcdFx0XHR9XG5cdFx0XHR9O1xuXHRcdFx0ZG9DYWxsKCk7XG5cdFx0fVxuXG5cdFx0cHJpdmF0ZSBzdGF0aWMgbWFya0FzRG9uZShcblx0XHRcdCRtYXJrZWRMYWJlbDogSlF1ZXJ5LFxuXHRcdFx0dGFyZ2V0Q2F0ZWdvcnk6IHN0cmluZyxcblx0XHRcdG1vZGU6ICdhZGQnIHwgJ2NvcHknIHwgJ21vdmUnIHwgJ3JlbW92ZSdcblx0XHQpOiB2b2lkIHtcblx0XHRcdCRtYXJrZWRMYWJlbC5hZGRDbGFzcyhDTEFTU19OQU1FX0xBQkVMX0RPTkUpO1xuXG5cdFx0XHRzd2l0Y2ggKG1vZGUpIHtcblx0XHRcdFx0Y2FzZSAnYWRkJzpcblx0XHRcdFx0XHQkbWFya2VkTGFiZWwuYXBwZW5kKFxuXHRcdFx0XHRcdFx0PD5cblx0XHRcdFx0XHRcdFx0PGJyIC8+XG5cdFx0XHRcdFx0XHRcdHtDQUwubXNnKCdhZGRlZC1jYXQnLCB0YXJnZXRDYXRlZ29yeSl9XG5cdFx0XHRcdFx0XHQ8Lz5cblx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRjYXNlICdjb3B5Jzpcblx0XHRcdFx0XHQkbWFya2VkTGFiZWwuYXBwZW5kKFxuXHRcdFx0XHRcdFx0PD5cblx0XHRcdFx0XHRcdFx0PGJyIC8+XG5cdFx0XHRcdFx0XHRcdHtDQUwubXNnKCdjb3BpZWQtY2F0JywgdGFyZ2V0Q2F0ZWdvcnkpfVxuXHRcdFx0XHRcdFx0PC8+XG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0Y2FzZSAnbW92ZSc6XG5cdFx0XHRcdFx0JG1hcmtlZExhYmVsLmFwcGVuZChcblx0XHRcdFx0XHRcdDw+XG5cdFx0XHRcdFx0XHRcdDxiciAvPlxuXHRcdFx0XHRcdFx0XHR7Q0FMLm1zZygnbW92ZWQtY2F0JywgdGFyZ2V0Q2F0ZWdvcnkpfVxuXHRcdFx0XHRcdFx0PC8+XG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0Y2FzZSAncmVtb3ZlJzpcblx0XHRcdFx0XHQkbWFya2VkTGFiZWwuYXBwZW5kKFxuXHRcdFx0XHRcdFx0PD5cblx0XHRcdFx0XHRcdFx0PGJyIC8+XG5cdFx0XHRcdFx0XHRcdHtDQUwubXNnKCdyZW1vdmVkLWNhdCcsIHRhcmdldENhdGVnb3J5KX1cblx0XHRcdFx0XHRcdDwvPlxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHByaXZhdGUgc3RhdGljIGRvQ2xlYW51cCh0ZXh0OiBzdHJpbmcpOiBzdHJpbmcge1xuXHRcdFx0cmV0dXJuIENBTC5zZXR0aW5ncy5kb2NsZWFudXAgPyB0ZXh0LnJlcGxhY2UoL3t7XFxzKltDY11oZWNrIGNhdGVnb3JpZXNcXHMqKFxcfD8uKj8pfX0vLCAnJykgOiB0ZXh0O1xuXHRcdH0gLy8gUmVtb3ZlIHt7VW5jYXRlZ29yaXplZH19IChhbHNvIHdpdGggY29tbWVudCkuIE5vIG5lZWQgdG8gcmVwbGFjZSBpdCB3aXRoIGFueXRoaW5nXG5cdFx0cHJpdmF0ZSBzdGF0aWMgcmVtb3ZlVW5jYXQodGV4dDogc3RyaW5nKTogc3RyaW5nIHtcblx0XHRcdHJldHVybiB0ZXh0LnJlcGxhY2UoL1xce1xce1xccypbVXVdbmNhdGVnb3JpemVkXFxzKihcXHw/Lio/KVxcfVxcfS8sICcnKTtcblx0XHR9XG5cdFx0cHJpdmF0ZSBkaXNwbGF5UmVzdWx0KCk6IHZvaWQge1xuXHRcdFx0dGhpcy4kYm9keS5jc3Moe1xuXHRcdFx0XHRjdXJzb3I6ICcnLFxuXHRcdFx0XHRvdmVyZmxvdzogJycsXG5cdFx0XHR9KTtcblx0XHRcdHRoaXMuJGJvZHkuZmluZChgLiR7Q0xBU1NfTkFNRV9GRUVEQkFDS31gKS5hZGRDbGFzcyhDTEFTU19OQU1FX0ZFRURCQUNLX0RPTkUpO1xuXG5cdFx0XHRjb25zdCAkcGFyZW50OiBKUXVlcnkgPSBDQUwuJGNvdW50ZXIucGFyZW50KCk7XG5cdFx0XHQkcGFyZW50Lmh0bWwoPGgzPntDQUwubXNnKCdkb25lJyl9PC9oMz4pO1xuXHRcdFx0JHBhcmVudC5hcHBlbmQoXG5cdFx0XHRcdDw+XG5cdFx0XHRcdFx0e0NBTC5tc2coJ2FsbC1kb25lJyl9XG5cdFx0XHRcdFx0PGJyIC8+XG5cdFx0XHRcdDwvPlxuXHRcdFx0KTtcblxuXHRcdFx0JHBhcmVudC5hcHBlbmQoXG5cdFx0XHRcdDxhXG5cdFx0XHRcdFx0b25DbGljaz17KCk6IHZvaWQgPT4ge1xuXHRcdFx0XHRcdFx0Q0FMLiRwcm9ncmVzc0RpYWxvZy5yZW1vdmUoKTtcblx0XHRcdFx0XHRcdHRoaXMudG9nZ2xlQWxsKGZhbHNlKTtcblx0XHRcdFx0XHR9fVxuXHRcdFx0XHQ+XG5cdFx0XHRcdFx0e0NBTC5tc2coJ3JldHVybi10by1wYWdlJyl9XG5cdFx0XHRcdDwvYT5cblx0XHRcdCk7XG5cblx0XHRcdGlmIChDQUwuYWxyZWFkeVRoZXJlLmxlbmd0aCkge1xuXHRcdFx0XHQkcGFyZW50LmFwcGVuZChcblx0XHRcdFx0XHQ8PlxuXHRcdFx0XHRcdFx0PGg1PntDQUwubXNnKCdza2lwcGVkLWFscmVhZHknLCBDQUwuYWxyZWFkeVRoZXJlLmxlbmd0aC50b1N0cmluZygpKX08L2g1PlxuXHRcdFx0XHRcdFx0e0NBTC5hbHJlYWR5VGhlcmUucmVkdWNlPChzdHJpbmcgfCBSZWFjdC5SZWFjdEVsZW1lbnQpW10+KFxuXHRcdFx0XHRcdFx0XHQocHJlLCBjdXIsIGluZGV4KSA9PlxuXHRcdFx0XHRcdFx0XHRcdGluZGV4IDwgQ0FMLmFscmVhZHlUaGVyZS5sZW5ndGggLSAxID8gWy4uLnByZSwgY3VyLCA8YnIga2V5PXtpbmRleH0gLz5dIDogWy4uLnByZSwgY3VyXSxcblx0XHRcdFx0XHRcdFx0W11cblx0XHRcdFx0XHRcdCl9XG5cdFx0XHRcdFx0PC8+XG5cdFx0XHRcdCk7XG5cdFx0XHR9XG5cdFx0XHRpZiAoQ0FMLm5vdEZvdW5kLmxlbmd0aCkge1xuXHRcdFx0XHQkcGFyZW50LmFwcGVuZChcblx0XHRcdFx0XHQ8PlxuXHRcdFx0XHRcdFx0PGg1PntDQUwubXNnKCdza2lwcGVkLW5vdC1mb3VuZCcsIENBTC5ub3RGb3VuZC5sZW5ndGgudG9TdHJpbmcoKSl9PC9oNT5cblx0XHRcdFx0XHRcdHtDQUwubm90Rm91bmQucmVkdWNlPChzdHJpbmcgfCBSZWFjdC5SZWFjdEVsZW1lbnQpW10+KFxuXHRcdFx0XHRcdFx0XHQocHJlLCBjdXIsIGluZGV4KSA9PlxuXHRcdFx0XHRcdFx0XHRcdGluZGV4IDwgQ0FMLm5vdEZvdW5kLmxlbmd0aCAtIDEgPyBbLi4ucHJlLCBjdXIsIDxiciBrZXk9e2luZGV4fSAvPl0gOiBbLi4ucHJlLCBjdXJdLFxuXHRcdFx0XHRcdFx0XHRbXVxuXHRcdFx0XHRcdFx0KX1cblx0XHRcdFx0XHQ8Lz5cblx0XHRcdFx0KTtcblx0XHRcdH1cblx0XHRcdGlmIChDQUwuY29ubmVjdGlvbkVycm9yLmxlbmd0aCkge1xuXHRcdFx0XHQkcGFyZW50LmFwcGVuZChcblx0XHRcdFx0XHQ8PlxuXHRcdFx0XHRcdFx0PGg1PntDQUwubXNnKCdza2lwcGVkLXNlcnZlcicsIENBTC5jb25uZWN0aW9uRXJyb3IubGVuZ3RoLnRvU3RyaW5nKCkpfTwvaDU+XG5cdFx0XHRcdFx0XHR7Q0FMLmNvbm5lY3Rpb25FcnJvci5yZWR1Y2U8KHN0cmluZyB8IFJlYWN0LlJlYWN0RWxlbWVudClbXT4oXG5cdFx0XHRcdFx0XHRcdChwcmUsIGN1ciwgaW5kZXgpID0+XG5cdFx0XHRcdFx0XHRcdFx0aW5kZXggPCBDQUwuY29ubmVjdGlvbkVycm9yLmxlbmd0aCAtIDFcblx0XHRcdFx0XHRcdFx0XHRcdD8gWy4uLnByZSwgY3VyLCA8YnIga2V5PXtpbmRleH0gLz5dXG5cdFx0XHRcdFx0XHRcdFx0XHQ6IFsuLi5wcmUsIGN1cl0sXG5cdFx0XHRcdFx0XHRcdFtdXG5cdFx0XHRcdFx0XHQpfVxuXHRcdFx0XHRcdDwvPlxuXHRcdFx0XHQpO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRwcml2YXRlIHVwZGF0ZUNvdW50ZXIoKTogdm9pZCB7XG5cdFx0XHRDQUwuY291bnRlckN1cnJlbnQrKztcblx0XHRcdGlmIChDQUwuY291bnRlckN1cnJlbnQgPiBDQUwuY291bnRlck5lZWRlZCkge1xuXHRcdFx0XHR0aGlzLmRpc3BsYXlSZXN1bHQoKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdENBTC4kY291bnRlci50ZXh0KENBTC5jb3VudGVyQ3VycmVudCk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHByaXZhdGUgYXN5bmMgZWRpdENhdGVnb3JpZXMoXG5cdFx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuXHRcdFx0cmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuXHRcdFx0bWFya2VkTGFiZWw6IFJldHVyblR5cGU8dHlwZW9mIHRoaXMuZ2V0TWFya2VkTGFiZWxzPlswXSxcblx0XHRcdHRhcmdldENhdGVnb3J5OiBzdHJpbmcsXG5cdFx0XHRtb2RlOiAnYWRkJyB8ICdjb3B5JyB8ICdtb3ZlJyB8ICdyZW1vdmUnXG5cdFx0KTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0XHRjb25zdCBbbWFya2VkTGFiZWxUaXRsZSwgJG1hcmtlZExhYmVsXSA9IG1hcmtlZExhYmVsO1xuXG5cdFx0XHRpZiAoIXJlc3VsdD8uWydxdWVyeSddKSB7XG5cdFx0XHRcdENBTC5jb25uZWN0aW9uRXJyb3JbQ0FMLmNvbm5lY3Rpb25FcnJvci5sZW5ndGhdID0gbWFya2VkTGFiZWxUaXRsZTtcblx0XHRcdFx0dGhpcy51cGRhdGVDb3VudGVyKCk7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblxuXHRcdFx0bGV0IG9yaWdpblRleHQ6IHN0cmluZyA9ICcnO1xuXHRcdFx0bGV0IHN0YXJ0dGltZXN0YW1wOiBudW1iZXIgPSAwO1xuXHRcdFx0bGV0IHRpbWVzdGFtcDogbnVtYmVyID0gMDtcblx0XHRcdENBTC5lZGl0VG9rZW4gPSByZXN1bHRbJ3F1ZXJ5J10udG9rZW5zLmNzcmZ0b2tlbjtcblx0XHRcdGNvbnN0IHtwYWdlc30gPSByZXN1bHRbJ3F1ZXJ5J107XG5cblx0XHRcdGNvbnN0IFtwYWdlXSA9IHBhZ2VzO1xuXHRcdFx0b3JpZ2luVGV4dCA9IHBhZ2U/LnJldmlzaW9ucz8uWzBdLnNsb3RzLm1haW4uY29udGVudDtcblx0XHRcdCh7c3RhcnR0aW1lc3RhbXB9ID0gcGFnZSk7XG5cdFx0XHRbe3RpbWVzdGFtcH1dID0gcGFnZS5yZXZpc2lvbnM7XG5cblx0XHRcdGNvbnN0IHNvdXJjZWNhdDogc3RyaW5nID0gQ0FMLkNVUlJFTlRfQ0FURUdST1k7XG5cdFx0XHQvLyBDaGVjayBpZiB0aGF0IGZpbGUgaXMgYWxyZWFkeSBpbiB0aGF0IGNhdGVnb3J5XG5cdFx0XHRjb25zdCB0YXJnZVJlZ0V4cCA9IGF3YWl0IENBTC5yZWdleEJ1aWxkZXIodGFyZ2V0Q2F0ZWdvcnkpO1xuXHRcdFx0aWYgKG1vZGUgIT09ICdyZW1vdmUnICYmIHRhcmdlUmVnRXhwLnRlc3Qob3JpZ2luVGV4dCkgJiYgbW9kZSAhPT0gJ21vdmUnKSB7XG5cdFx0XHRcdENBTC5hbHJlYWR5VGhlcmVbQ0FMLmFscmVhZHlUaGVyZS5sZW5ndGhdID0gbWFya2VkTGFiZWxUaXRsZTtcblx0XHRcdFx0dGhpcy51cGRhdGVDb3VudGVyKCk7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblxuXHRcdFx0Ly8gRml4IHRleHRcblx0XHRcdGxldCB0ZXh0OiBzdHJpbmcgPSBvcmlnaW5UZXh0O1xuXHRcdFx0bGV0IHN1bW1hcnk6IHN0cmluZztcblx0XHRcdGNvbnN0IHNvdXJjZUNhdFJlZ0V4cCA9IGF3YWl0IENBTC5yZWdleEJ1aWxkZXIoc291cmNlY2F0KTtcblx0XHRcdHN3aXRjaCAobW9kZSkge1xuXHRcdFx0XHRjYXNlICdhZGQnOlxuXHRcdFx0XHRcdHRleHQgKz0gYFxcbltbJHtDQUwubG9jYWxDYXROYW1lfToke3RhcmdldENhdGVnb3J5fV1dXFxuYDtcblx0XHRcdFx0XHRzdW1tYXJ5ID0gQ0FMLm1zZygnc3VtbWFyeS1hZGQnKS5yZXBsYWNlKCckMScsIHRhcmdldENhdGVnb3J5KTtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0Y2FzZSAnY29weSc6XG5cdFx0XHRcdFx0dGV4dCA9IHRleHQucmVwbGFjZShcblx0XHRcdFx0XHRcdHNvdXJjZUNhdFJlZ0V4cCxcblx0XHRcdFx0XHRcdGBbWyR7Q0FMLmxvY2FsQ2F0TmFtZX06JHtzb3VyY2VjYXR9JDFdXVxcbltbJHtDQUwubG9jYWxDYXROYW1lfToke3RhcmdldENhdGVnb3J5fSQxXV1gXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRzdW1tYXJ5ID0gQ0FMLm1zZygnc3VtbWFyeS1jb3B5JykucmVwbGFjZSgnJDEnLCBzb3VyY2VjYXQpLnJlcGxhY2UoJyQyJywgdGFyZ2V0Q2F0ZWdvcnkpO1xuXHRcdFx0XHRcdC8vIElmIGNhdGVnb3J5IGlzIGFkZGVkIHRocm91Z2ggdGVtcGxhdGU6XG5cdFx0XHRcdFx0aWYgKG9yaWdpblRleHQgPT09IHRleHQpIHtcblx0XHRcdFx0XHRcdHRleHQgKz0gYFxcbltbJHtDQUwubG9jYWxDYXROYW1lfToke3RhcmdldENhdGVnb3J5fV1dYDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdGNhc2UgJ21vdmUnOlxuXHRcdFx0XHRcdHRleHQgPSB0ZXh0LnJlcGxhY2Uoc291cmNlQ2F0UmVnRXhwLCBgW1ske0NBTC5sb2NhbENhdE5hbWV9OiR7dGFyZ2V0Q2F0ZWdvcnl9JDFdXWApO1xuXHRcdFx0XHRcdHN1bW1hcnkgPSBDQUwubXNnKCdzdW1tYXJ5LW1vdmUnKS5yZXBsYWNlKCckMScsIHNvdXJjZWNhdCkucmVwbGFjZSgnJDInLCB0YXJnZXRDYXRlZ29yeSk7XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdGNhc2UgJ3JlbW92ZSc6XG5cdFx0XHRcdFx0dGV4dCA9IHRleHQucmVwbGFjZShzb3VyY2VDYXRSZWdFeHAsICcnKTtcblx0XHRcdFx0XHRzdW1tYXJ5ID0gQ0FMLm1zZygnc3VtbWFyeS1yZW1vdmUnKS5yZXBsYWNlKCckMScsIHNvdXJjZWNhdCk7XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHR9XG5cblx0XHRcdGlmICh0ZXh0ID09PSBvcmlnaW5UZXh0KSB7XG5cdFx0XHRcdENBTC5ub3RGb3VuZFtDQUwubm90Rm91bmQubGVuZ3RoXSA9IG1hcmtlZExhYmVsVGl0bGU7XG5cdFx0XHRcdHRoaXMudXBkYXRlQ291bnRlcigpO1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cblx0XHRcdC8vIFJlbW92ZSB1bmNhdCBhZnRlciB3ZSBjaGVja2VkIHdoZXRoZXIgd2UgY2hhbmdlZCB0aGUgdGV4dCBzdWNjZXNzZnVsbHkuXG5cdFx0XHQvLyBPdGhlcndpc2Ugd2UgbWlnaHQgZmFpbCB0byBkbyB0aGUgY2hhbmdlcywgYnV0IHN0aWxsIHJlcGxhY2Uge3t1bmNhdH19XG5cdFx0XHRpZiAobW9kZSAhPT0gJ3JlbW92ZScpIHtcblx0XHRcdFx0dGV4dCA9IENBTC5kb0NsZWFudXAoQ0FMLnJlbW92ZVVuY2F0KHRleHQpKTtcblx0XHRcdH1cblxuXHRcdFx0dGhpcy5kb0FQSUNhbGwoXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRhY3Rpb246ICdlZGl0Jyxcblx0XHRcdFx0XHR0b2tlbjogQ0FMLmVkaXRUb2tlbixcblx0XHRcdFx0XHR0YWdzOiBDQUwuQVBJX1RBRyxcblx0XHRcdFx0XHR0aXRsZTogbWFya2VkTGFiZWxUaXRsZSxcblx0XHRcdFx0XHRhc3NlcnQ6ICd1c2VyJyxcblx0XHRcdFx0XHRib3Q6IHRydWUsXG5cdFx0XHRcdFx0YmFzZXRpbWVzdGFtcDogdGltZXN0YW1wIGFzIHVua25vd24gYXMgc3RyaW5nLFxuXHRcdFx0XHRcdHdhdGNobGlzdDogQ0FMLnNldHRpbmdzLndhdGNobGlzdCBhcyBuZXZlcixcblx0XHRcdFx0XHR0ZXh0LFxuXHRcdFx0XHRcdHN1bW1hcnksXG5cdFx0XHRcdFx0c3RhcnR0aW1lc3RhbXA6IHN0YXJ0dGltZXN0YW1wIGFzIHVua25vd24gYXMgc3RyaW5nLFxuXHRcdFx0XHR9LFxuXHRcdFx0XHQoKTogdm9pZCA9PiB7XG5cdFx0XHRcdFx0dGhpcy51cGRhdGVDb3VudGVyKCk7XG5cdFx0XHRcdH1cblx0XHRcdCk7XG5cblx0XHRcdENBTC5tYXJrQXNEb25lKCRtYXJrZWRMYWJlbCwgdGFyZ2V0Q2F0ZWdvcnksIG1vZGUpO1xuXHRcdH1cblx0XHRwcml2YXRlIGdldENvbnRlbnQoXG5cdFx0XHRtYXJrZWRMYWJlbDogUmV0dXJuVHlwZTx0eXBlb2YgdGhpcy5nZXRNYXJrZWRMYWJlbHM+WzBdLFxuXHRcdFx0dGFyZ2V0Q2F0ZWdvcnk6IHN0cmluZyxcblx0XHRcdG1vZGU6ICdhZGQnIHwgJ2NvcHknIHwgJ21vdmUnXG5cdFx0KTogdm9pZCB7XG5cdFx0XHR0aGlzLmRvQVBJQ2FsbChcblx0XHRcdFx0e1xuXHRcdFx0XHRcdGFjdGlvbjogJ3F1ZXJ5Jyxcblx0XHRcdFx0XHRmb3JtYXR2ZXJzaW9uOiAnMicsXG5cdFx0XHRcdFx0bWV0YTogJ3Rva2VucycsXG5cdFx0XHRcdFx0dGl0bGVzOiBtYXJrZWRMYWJlbFswXSxcblx0XHRcdFx0XHRwcm9wOiAncmV2aXNpb25zJyxcblx0XHRcdFx0XHRydnByb3A6IFsnY29udGVudCcsICd0aW1lc3RhbXAnXSxcblx0XHRcdFx0XHRydnNsb3RzOiAnbWFpbicsXG5cdFx0XHRcdH0sXG5cdFx0XHRcdChyZXN1bHQpOiB2b2lkID0+IHtcblx0XHRcdFx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1hcmd1bWVudFxuXHRcdFx0XHRcdHZvaWQgdGhpcy5lZGl0Q2F0ZWdvcmllcyhyZXN1bHQsIG1hcmtlZExhYmVsLCB0YXJnZXRDYXRlZ29yeSwgbW9kZSk7XG5cdFx0XHRcdH1cblx0XHRcdCk7XG5cdFx0fVxuXHRcdHByaXZhdGUgc3RhdGljIGdldFRpdGxlRnJvbUxpbmsoaHJlZjogc3RyaW5nIHwgdW5kZWZpbmVkKTogc3RyaW5nIHtcblx0XHRcdHRyeSB7XG5cdFx0XHRcdHJldHVybiAoZGVjb2RlVVJJQ29tcG9uZW50KGhyZWYgPz8gJycpLm1hdGNoKC93aWtpXFwvKC4rPykoPzojLispPyQvKT8uWzFdID8/ICcnKS5yZXBsYWNlKC9fL2csICcgJyk7XG5cdFx0XHR9IGNhdGNoIHtcblx0XHRcdFx0cmV0dXJuICcnO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRwcml2YXRlIGdldE1hcmtlZExhYmVscygpOiBbc3RyaW5nLCBKUXVlcnldW10ge1xuXHRcdFx0Y29uc3QgbWFya2VkTGFiZWxzOiBSZXR1cm5UeXBlPHR5cGVvZiB0aGlzLmdldE1hcmtlZExhYmVscz4gPSBbXTtcblx0XHRcdENBTC4kc2VsZWN0ZWRMYWJlbHMgPSBDQUwuJGxhYmVscy5maWx0ZXIoYC4ke0NMQVNTX05BTUVfTEFCRUxfU0VMRUNURUR9YCk7XG5cdFx0XHRDQUwuJHNlbGVjdGVkTGFiZWxzLmVhY2goKF9pbmRleCwgbGFiZWwpOiB2b2lkID0+IHtcblx0XHRcdFx0Y29uc3QgJGxhYmVsOiBKUXVlcnkgPSAkKGxhYmVsKTtcblx0XHRcdFx0Y29uc3QgJGxhYmVsTGluazogSlF1ZXJ5ID0gJGxhYmVsLmZpbmQoJ2E6bm90KC5DYXRlZ29yeVRyZWVUb2dnbGUpW3RpdGxlXScpO1xuXHRcdFx0XHRjb25zdCB0aXRsZTogc3RyaW5nID1cblx0XHRcdFx0XHQkbGFiZWxMaW5rLmF0dHIoJ3RpdGxlJyk/LnRyaW0oKSB8fFxuXHRcdFx0XHRcdENBTC5nZXRUaXRsZUZyb21MaW5rKCRsYWJlbExpbmsuYXR0cignaHJlZicpKSB8fFxuXHRcdFx0XHRcdENBTC5nZXRUaXRsZUZyb21MaW5rKCRsYWJlbC5maW5kKCdhOm5vdCguQ2F0ZWdvcnlUcmVlVG9nZ2xlKScpLmF0dHIoJ2hyZWYnKSk7XG5cdFx0XHRcdG1hcmtlZExhYmVsc1ttYXJrZWRMYWJlbHMubGVuZ3RoXSA9IFt0aXRsZSwgJGxhYmVsXTtcblx0XHRcdH0pO1xuXHRcdFx0cmV0dXJuIG1hcmtlZExhYmVscztcblx0XHR9XG5cdFx0cHJpdmF0ZSBzaG93UHJvZ3Jlc3MoKTogdm9pZCB7XG5cdFx0XHR0aGlzLiRib2R5LmNzcyh7XG5cdFx0XHRcdGN1cnNvcjogJ3dhaXQnLFxuXHRcdFx0XHRvdmVyZmxvdzogJ2hpZGRlbicsXG5cdFx0XHR9KTtcblx0XHRcdENBTC4kcHJvZ3Jlc3NEaWFsb2cgPSAkKFxuXHRcdFx0XHQ8ZGl2PlxuXHRcdFx0XHRcdHtDQUwubXNnKCdlZGl0aW5nJyl9XG5cdFx0XHRcdFx0PHNwYW4gY2xhc3NOYW1lPXtDTEFTU19OQU1FX0NVUlJFTlRfQ09VTlRFUn0+e0NBTC5jb3VudGVyQ3VycmVudH08L3NwYW4+XG5cdFx0XHRcdFx0e1tDQUwubXNnKCdvZicpLCBDQUwuY291bnRlck5lZWRlZF19XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0KS5kaWFsb2coe1xuXHRcdFx0XHRkaWFsb2dDbGFzczogQ0xBU1NfTkFNRV9GRUVEQkFDSyxcblx0XHRcdFx0bWluSGVpZ2h0OiA5MCxcblx0XHRcdFx0aGVpZ2h0OiA5MCxcblx0XHRcdFx0d2lkdGg6IDQ1MCxcblx0XHRcdFx0bW9kYWw6IHRydWUsXG5cdFx0XHRcdGNsb3NlT25Fc2NhcGU6IGZhbHNlLFxuXHRcdFx0XHRkcmFnZ2FibGU6IGZhbHNlLFxuXHRcdFx0XHRyZXNpemFibGU6IGZhbHNlLFxuXHRcdFx0fSk7XG5cdFx0XHR0aGlzLiRib2R5LmZpbmQoYC4ke0NMQVNTX05BTUVfRkVFREJBQ0t9IC51aS1kaWFsb2ctdGl0bGViYXJgKS5oaWRlKCk7XG5cdFx0XHR0aGlzLiRib2R5LmZpbmQoYC4ke0NMQVNTX05BTUVfRkVFREJBQ0t9IC51aS1kaWFsb2ctY29udGVudGApLmhlaWdodCgnYXV0bycpO1xuXHRcdFx0Q0FMLiRjb3VudGVyID0gdGhpcy4kYm9keS5maW5kKGAuJHtDTEFTU19OQU1FX0NVUlJFTlRfQ09VTlRFUn1gKTtcblx0XHR9XG5cdFx0cHJpdmF0ZSBkb1NvbWV0aGluZyh0YXJnZXRDYXRlZ29yeTogc3RyaW5nLCBtb2RlOiAnYWRkJyB8ICdjb3B5JyB8ICdtb3ZlJyk6IHZvaWQge1xuXHRcdFx0Y29uc3QgbWFya2VkTGFiZWxzOiBSZXR1cm5UeXBlPHR5cGVvZiB0aGlzLmdldE1hcmtlZExhYmVscz4gPSB0aGlzLmdldE1hcmtlZExhYmVscygpO1xuXHRcdFx0aWYgKCFtYXJrZWRMYWJlbHMubGVuZ3RoKSB7XG5cdFx0XHRcdHZvaWQgbXcubm90aWZ5KENBTC5tc2coJ25vbmUtc2VsZWN0ZWQnKSwge1xuXHRcdFx0XHRcdHRhZzogJ2NhdEFMb3QnLFxuXHRcdFx0XHR9KTtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdFx0Q0FMLmFscmVhZHlUaGVyZSA9IFtdO1xuXHRcdFx0Q0FMLmNvbm5lY3Rpb25FcnJvciA9IFtdO1xuXHRcdFx0Q0FMLm5vdEZvdW5kID0gW107XG5cdFx0XHRDQUwuY291bnRlckN1cnJlbnQgPSAxO1xuXHRcdFx0Q0FMLmNvdW50ZXJOZWVkZWQgPSBtYXJrZWRMYWJlbHMubGVuZ3RoO1xuXHRcdFx0dGhpcy5zaG93UHJvZ3Jlc3MoKTtcblx0XHRcdGZvciAoY29uc3QgbWFya2VkTGFiZWwgb2YgbWFya2VkTGFiZWxzKSB7XG5cdFx0XHRcdHRoaXMuZ2V0Q29udGVudChtYXJrZWRMYWJlbCwgdGFyZ2V0Q2F0ZWdvcnksIG1vZGUpO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRwcml2YXRlIGFkZEhlcmUodGFyZ2V0Q2F0ZWdvcnk6IHN0cmluZyk6IHZvaWQge1xuXHRcdFx0dGhpcy5kb1NvbWV0aGluZyh0YXJnZXRDYXRlZ29yeSwgJ2FkZCcpO1xuXHRcdH1cblx0XHRwcml2YXRlIGNvcHlIZXJlKHRhcmdldENhdGVnb3J5OiBzdHJpbmcpOiB2b2lkIHtcblx0XHRcdHRoaXMuZG9Tb21ldGhpbmcodGFyZ2V0Q2F0ZWdvcnksICdjb3B5Jyk7XG5cdFx0fVxuXHRcdHByaXZhdGUgbW92ZUhlcmUodGFyZ2V0Q2F0ZWdvcnk6IHN0cmluZyk6IHZvaWQge1xuXHRcdFx0dGhpcy5kb1NvbWV0aGluZyh0YXJnZXRDYXRlZ29yeSwgJ21vdmUnKTtcblx0XHR9XG5cdFx0cHJpdmF0ZSBjcmVhdGVDYXRMaW5rcyhzeW1ib2w6IHN0cmluZywgY2F0ZWdvcmllczogc3RyaW5nW10pOiB2b2lkIHtcblx0XHRcdGNhdGVnb3JpZXMuc29ydCgpO1xuXHRcdFx0Zm9yIChjb25zdCBjYXRlZ29yeSBvZiBjYXRlZ29yaWVzKSB7XG5cdFx0XHRcdGNvbnN0ICR0ciA9ICQoXG5cdFx0XHRcdFx0PHRyIGRhdGFzZXQ9e3tjYXRlZ29yeX19PlxuXHRcdFx0XHRcdFx0PHRkPntzeW1ib2x9PC90ZD5cblx0XHRcdFx0XHRcdDx0ZD5cblx0XHRcdFx0XHRcdFx0PGFcblx0XHRcdFx0XHRcdFx0XHRvbkNsaWNrPXsoZXZlbnQpOiB2b2lkID0+IHtcblx0XHRcdFx0XHRcdFx0XHRcdGNvbnN0ICRlbGVtZW50ID0gJChldmVudC5jdXJyZW50VGFyZ2V0KTtcblx0XHRcdFx0XHRcdFx0XHRcdHRoaXMudXBkYXRlQ2F0cygkZWxlbWVudC5jbG9zZXN0KCd0cicpLmRhdGEoJ2NhdGVnb3J5JykgYXMgc3RyaW5nKTtcblx0XHRcdFx0XHRcdFx0XHR9fVxuXHRcdFx0XHRcdFx0XHQ+XG5cdFx0XHRcdFx0XHRcdFx0e2NhdGVnb3J5fVxuXHRcdFx0XHRcdFx0XHQ8L2E+XG5cdFx0XHRcdFx0XHQ8L3RkPlxuXHRcdFx0XHRcdDwvdHI+XG5cdFx0XHRcdCk7XG5cdFx0XHRcdC8vIENhbid0IG1vdmUgdG8gc291cmNlIGNhdGVnb3J5XG5cdFx0XHRcdGlmIChjYXRlZ29yeSAhPT0gQ0FMLkNVUlJFTlRfQ0FURUdST1kgJiYgQ0FMLmlzU2VhcmNoTW9kZSkge1xuXHRcdFx0XHRcdCR0ci5hcHBlbmQoXG5cdFx0XHRcdFx0XHQ8dGQ+XG5cdFx0XHRcdFx0XHRcdDxhXG5cdFx0XHRcdFx0XHRcdFx0Y2xhc3NOYW1lPXtDTEFTU19OQU1FX0NPTlRBSU5FUl9EQVRBX0NBVEVHT1JZX0xJU1RfQUNUSU9OfVxuXHRcdFx0XHRcdFx0XHRcdG9uQ2xpY2s9eyhldmVudCk6IHZvaWQgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdFx0Y29uc3QgJGVsZW1lbnQgPSAkKGV2ZW50LmN1cnJlbnRUYXJnZXQpO1xuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5hZGRIZXJlKCRlbGVtZW50LmNsb3Nlc3QoJ3RyJykuZGF0YSgnY2F0ZWdvcnknKSBhcyBzdHJpbmcpO1xuXHRcdFx0XHRcdFx0XHRcdH19XG5cdFx0XHRcdFx0XHRcdD5cblx0XHRcdFx0XHRcdFx0XHR7Q0FMLm1zZygnYWRkJyl9XG5cdFx0XHRcdFx0XHRcdDwvYT5cblx0XHRcdFx0XHRcdDwvdGQ+XG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0fSBlbHNlIGlmIChjYXRlZ29yeSAhPT0gQ0FMLkNVUlJFTlRfQ0FURUdST1kgJiYgIUNBTC5pc1NlYXJjaE1vZGUpIHtcblx0XHRcdFx0XHQkdHIuYXBwZW5kKFxuXHRcdFx0XHRcdFx0PD5cblx0XHRcdFx0XHRcdFx0PHRkPlxuXHRcdFx0XHRcdFx0XHRcdDxhXG5cdFx0XHRcdFx0XHRcdFx0XHRjbGFzc05hbWU9e0NMQVNTX05BTUVfQ09OVEFJTkVSX0RBVEFfQ0FURUdPUllfTElTVF9BQ1RJT059XG5cdFx0XHRcdFx0XHRcdFx0XHRvbkNsaWNrPXsoZXZlbnQpOiB2b2lkID0+IHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0Y29uc3QgJGVsZW1lbnQgPSAkKGV2ZW50LmN1cnJlbnRUYXJnZXQpO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR0aGlzLmNvcHlIZXJlKCRlbGVtZW50LmNsb3Nlc3QoJ3RyJykuZGF0YSgnY2F0ZWdvcnknKSBhcyBzdHJpbmcpO1xuXHRcdFx0XHRcdFx0XHRcdFx0fX1cblx0XHRcdFx0XHRcdFx0XHQ+XG5cdFx0XHRcdFx0XHRcdFx0XHR7Q0FMLm1zZygnY29weScpfVxuXHRcdFx0XHRcdFx0XHRcdDwvYT5cblx0XHRcdFx0XHRcdFx0PC90ZD5cblx0XHRcdFx0XHRcdFx0PHRkPlxuXHRcdFx0XHRcdFx0XHRcdDxhXG5cdFx0XHRcdFx0XHRcdFx0XHRjbGFzc05hbWU9e0NMQVNTX05BTUVfQ09OVEFJTkVSX0RBVEFfQ0FURUdPUllfTElTVF9BQ1RJT059XG5cdFx0XHRcdFx0XHRcdFx0XHRvbkNsaWNrPXsoZXZlbnQpOiB2b2lkID0+IHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0Y29uc3QgJGVsZW1lbnQgPSAkKGV2ZW50LmN1cnJlbnRUYXJnZXQpO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR0aGlzLm1vdmVIZXJlKCRlbGVtZW50LmNsb3Nlc3QoJ3RyJykuZGF0YSgnY2F0ZWdvcnknKSBhcyBzdHJpbmcpO1xuXHRcdFx0XHRcdFx0XHRcdFx0fX1cblx0XHRcdFx0XHRcdFx0XHQ+XG5cdFx0XHRcdFx0XHRcdFx0XHR7Q0FMLm1zZygnbW92ZScpfVxuXHRcdFx0XHRcdFx0XHRcdDwvYT5cblx0XHRcdFx0XHRcdFx0PC90ZD5cblx0XHRcdFx0XHRcdDwvPlxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0dGhpcy4kcmVzdWx0TGlzdC5maW5kKCd0YWJsZScpLmFwcGVuZCgkdHIpO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRwcml2YXRlIHNob3dDYXRlZ29yeUxpc3QoKTogdm9pZCB7XG5cdFx0XHR0aGlzLiRib2R5LmNzcygnY3Vyc29yJywgJycpO1xuXHRcdFx0Y29uc3QgY3VycmVudENhdGVnb3JpZXM6IHN0cmluZ1tdID0gW0NBTC5jdXJyZW50Q2F0ZWdvcnldO1xuXHRcdFx0dGhpcy4kcmVzdWx0TGlzdC5lbXB0eSgpO1xuXHRcdFx0dGhpcy4kcmVzdWx0TGlzdC5hcHBlbmQoPHRhYmxlIC8+KTtcblx0XHRcdHRoaXMuY3JlYXRlQ2F0TGlua3MoJ+KGkScsIENBTC5wYXJlbnRDYXRzKTtcblx0XHRcdHRoaXMuY3JlYXRlQ2F0TGlua3MoJ+KGkicsIGN1cnJlbnRDYXRlZ29yaWVzKTtcblx0XHRcdHRoaXMuY3JlYXRlQ2F0TGlua3MoJ+KGkycsIENBTC5zdWJDYXRzKTtcblx0XHRcdC8vIFJlc2V0IHdpZHRoXG5cdFx0XHR0aGlzLiRjb250YWluZXIud2lkdGgoJycpO1xuXHRcdFx0dGhpcy4kY29udGFpbmVyLmhlaWdodCgnJyk7XG5cdFx0XHR0aGlzLiRjb250YWluZXIud2lkdGgoTWF0aC5taW4oKHRoaXMuJGNvbnRhaW5lci53aWR0aCgpID8/IDApICogMS4xICsgMTUsICgkKHdpbmRvdykud2lkdGgoKSA/PyAwKSAtIDEwKSk7XG5cdFx0XHR0aGlzLiRyZXN1bHRMaXN0LmNzcyh7XG5cdFx0XHRcdCdtYXgtaGVpZ2h0JzogYCR7Q0FMLmRpYWxvZ0hlaWdodH1weGAsXG5cdFx0XHRcdGhlaWdodDogJycsXG5cdFx0XHR9KTtcblx0XHR9XG5cdFx0cHJpdmF0ZSBnZXRQYXJlbnRDYXRzKCk6IHZvaWQge1xuXHRcdFx0dGhpcy5kb0FQSUNhbGwoXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRhY3Rpb246ICdxdWVyeScsXG5cdFx0XHRcdFx0dGl0bGVzOiBgQ2F0ZWdvcnk6JHtDQUwuY3VycmVudENhdGVnb3J5fWAsXG5cdFx0XHRcdFx0cHJvcDogJ2NhdGVnb3JpZXMnLFxuXHRcdFx0XHR9LFxuXHRcdFx0XHQocmVzdWx0KTogdm9pZCA9PiB7XG5cdFx0XHRcdFx0aWYgKCFyZXN1bHQpIHtcblx0XHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0Q0FMLnBhcmVudENhdHMgPSBbXTtcblx0XHRcdFx0XHRjb25zdCB7cGFnZXN9ID0gcmVzdWx0LnF1ZXJ5O1xuXHRcdFx0XHRcdGlmIChwYWdlc1swXT8ubWlzc2luZykge1xuXHRcdFx0XHRcdFx0dGhpcy4kYm9keS5jc3MoJ2N1cnNvcicsICcnKTtcblx0XHRcdFx0XHRcdHRoaXMuJHJlc3VsdExpc3QuaHRtbChcblx0XHRcdFx0XHRcdFx0PHNwYW4gY2xhc3NOYW1lPXtDTEFTU19OQU1FX0NPTlRBSU5FUl9EQVRBX0NBVEVHT1JZX0xJU1RfTk9fRk9VTkR9PlxuXHRcdFx0XHRcdFx0XHRcdHtDQUwubXNnKCdjYXQtbm90LWZvdW5kJyl9XG5cdFx0XHRcdFx0XHRcdDwvc3Bhbj5cblx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0XHR0aGlzLmNyZWF0ZUNhdExpbmtzKCfihpInLCBbQ0FMLmN1cnJlbnRDYXRlZ29yeV0pO1xuXHRcdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRsZXQgY2F0ZWdvcmllczoge3RpdGxlOiBzdHJpbmd9W10gPSBbXTtcblx0XHRcdFx0XHRpZiAocGFnZXNbMF0/LmNhdGVnb3JpZXMpIHtcblx0XHRcdFx0XHRcdFt7Y2F0ZWdvcmllc31dID0gcGFnZXM7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGZvciAoY29uc3QgY2F0IG9mIGNhdGVnb3JpZXMpIHtcblx0XHRcdFx0XHRcdENBTC5wYXJlbnRDYXRzW0NBTC5wYXJlbnRDYXRzLmxlbmd0aF0gPSBjYXQudGl0bGUucmVwbGFjZSgvXlteOl0rOi8sICcnKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0Q0FMLmNvdW50ZXJDYXQrKztcblx0XHRcdFx0XHRpZiAoQ0FMLmNvdW50ZXJDYXQgPT09IDIpIHtcblx0XHRcdFx0XHRcdHRoaXMuc2hvd0NhdGVnb3J5TGlzdCgpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0KTtcblx0XHR9XG5cdFx0cHJpdmF0ZSBnZXRTdWJDYXRzKCk6IHZvaWQge1xuXHRcdFx0dGhpcy5kb0FQSUNhbGwoXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRhY3Rpb246ICdxdWVyeScsXG5cdFx0XHRcdFx0bGlzdDogJ2NhdGVnb3J5bWVtYmVycycsXG5cdFx0XHRcdFx0Y210eXBlOiAnc3ViY2F0Jyxcblx0XHRcdFx0XHRjbWxpbWl0OiBDQUwuc2V0dGluZ3Muc3ViY2F0Y291bnQgYXMgbmV2ZXIsXG5cdFx0XHRcdFx0Y210aXRsZTogYENhdGVnb3J5OiR7Q0FMLmN1cnJlbnRDYXRlZ29yeX1gLFxuXHRcdFx0XHR9LFxuXHRcdFx0XHQocmVzdWx0KTogdm9pZCA9PiB7XG5cdFx0XHRcdFx0Y29uc3QgY2F0czoge3RpdGxlOiBzdHJpbmd9W10gPSByZXN1bHQ/LnF1ZXJ5Py5jYXRlZ29yeW1lbWJlcnMgfHwgW107XG5cdFx0XHRcdFx0Q0FMLnN1YkNhdHMgPSBbXTtcblx0XHRcdFx0XHRmb3IgKGNvbnN0IGNhdCBvZiBjYXRzKSB7XG5cdFx0XHRcdFx0XHRDQUwuc3ViQ2F0c1tDQUwuc3ViQ2F0cy5sZW5ndGhdID0gY2F0LnRpdGxlLnJlcGxhY2UoL15bXjpdKzovLCAnJyk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdENBTC5jb3VudGVyQ2F0Kys7XG5cdFx0XHRcdFx0aWYgKENBTC5jb3VudGVyQ2F0ID09PSAyKSB7XG5cdFx0XHRcdFx0XHR0aGlzLnNob3dDYXRlZ29yeUxpc3QoKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdCk7XG5cdFx0fVxuXHRcdHByaXZhdGUgZ2V0Q2F0ZWdvcnlMaXN0KCk6IHZvaWQge1xuXHRcdFx0Q0FMLmNvdW50ZXJDYXQgPSAwO1xuXHRcdFx0dGhpcy5nZXRQYXJlbnRDYXRzKCk7XG5cdFx0XHR0aGlzLmdldFN1YkNhdHMoKTtcblx0XHR9XG5cdFx0cHJpdmF0ZSB1cGRhdGVDYXRzKGNhdDogc3RyaW5nKTogdm9pZCB7XG5cdFx0XHR0aGlzLiRib2R5LmNzcygnY3Vyc29yJywgJ3dhaXQnKTtcblx0XHRcdENBTC5jdXJyZW50Q2F0ZWdvcnkgPSBjYXQ7XG5cdFx0XHR0aGlzLiRyZXN1bHRMaXN0Lmh0bWwoPGRpdj57Q0FMLm1zZygnbG9hZGluZycpfTwvZGl2Pik7XG5cdFx0XHR0aGlzLmdldENhdGVnb3J5TGlzdCgpO1xuXHRcdH1cblxuXHRcdHByaXZhdGUgZmluZEFsbExhYmVscygpOiB2b2lkIHtcblx0XHRcdC8vIEl0J3MgcG9zc2libGUgdG8gYWxsb3cgYW55IGtpbmQgb2YgcGFnZXMgYXMgd2VsbCBidXQgd2hhdCBoYXBwZW5zIGlmIHlvdSBjbGljayBvbiBcInNlbGVjdCBhbGxcIiBhbmQgZG9uJ3QgZXhwZWN0IGl0XG5cdFx0XHRpZiAoQ0FMLmlzU2VhcmNoTW9kZSkge1xuXHRcdFx0XHRDQUwuJGxhYmVscyA9IHRoaXMuJGJvZHkuZmluZCgndGFibGUuc2VhcmNoUmVzdWx0SW1hZ2UnKS5maW5kKCd0cj50ZCcpLmVxKDEpO1xuXHRcdFx0XHRpZiAoQ0FMLnNldHRpbmdzLmVkaXRwYWdlcykge1xuXHRcdFx0XHRcdENBTC4kbGFiZWxzID0gQ0FMLiRsYWJlbHMuYWRkKCdkaXYubXctc2VhcmNoLXJlc3VsdC1oZWFkaW5nJyk7XG5cdFx0XHRcdH1cblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdENBTC4kbGFiZWxzID0gdGhpcy4kYm9keVxuXHRcdFx0XHRcdC5maW5kKCdkaXYuZ2FsbGVyeXRleHQnKVxuXHRcdFx0XHRcdC5hZGQodGhpcy4kYm9keS5maW5kKCdkaXYjbXctY2F0ZWdvcnktbWVkaWEnKS5maW5kKCdsaVtjbGFzcyE9XCJnYWxsZXJ5Ym94XCJdJykpO1xuXHRcdFx0XHRpZiAoQ0FMLnNldHRpbmdzLmVkaXRwYWdlcykge1xuXHRcdFx0XHRcdGNvbnN0ICRwYWdlczogSlF1ZXJ5PEhUTUxMSUVsZW1lbnQ+ID0gdGhpcy4kYm9keVxuXHRcdFx0XHRcdFx0LmZpbmQoJ2RpdiNtdy1wYWdlcywgZGl2I213LXN1YmNhdGVnb3JpZXMnKVxuXHRcdFx0XHRcdFx0LmZpbmQoJ2xpJyk7XG5cdFx0XHRcdFx0Q0FMLiRsYWJlbHMgPSBDQUwuJGxhYmVscy5hZGQoJHBhZ2VzKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHRwcml2YXRlIG1ha2VDbGlja2FibGUoKTogdm9pZCB7XG5cdFx0XHR0aGlzLmZpbmRBbGxMYWJlbHMoKTtcblx0XHRcdENBTC4kbGFiZWxzLmFkZENsYXNzKENMQVNTX05BTUVfTEFCRUwpLm9uQ2F0QUxvdFNoaWZ0Q2xpY2soKCk6IHZvaWQgPT4ge1xuXHRcdFx0XHR0aGlzLnVwZGF0ZVNlbGVjdGlvbkNvdW50ZXIoKTtcblx0XHRcdH0pO1xuXHRcdH1cblxuXHRcdHByaXZhdGUgcnVuKCk6IHZvaWQge1xuXHRcdFx0aWYgKHRoaXMuJGxpbmsuaGFzQ2xhc3MoQ0xBU1NfTkFNRV9DT05UQUlORVJfSEVBRF9MSU5LX0VOQUJMRUQpKSB7XG5cdFx0XHRcdHRoaXMubWFrZUNsaWNrYWJsZSgpO1xuXHRcdFx0XHR0aGlzLiRkYXRhQ29udGFpbmVyLnNob3coKTtcblx0XHRcdFx0dGhpcy4kY29udGFpbmVyLnJlc2l6YWJsZSh7XG5cdFx0XHRcdFx0YWxzb1Jlc2l6ZTogdGhpcy4kcmVzdWx0TGlzdCxcblx0XHRcdFx0XHRoYW5kbGVzOiAnbicsXG5cdFx0XHRcdFx0cmVzaXplOiAoZXZlbnQpOiB2b2lkID0+IHtcblx0XHRcdFx0XHRcdGNvbnN0ICRjdXJyZW50VGFyZ2V0ID0gJChldmVudC5jdXJyZW50VGFyZ2V0KTtcblx0XHRcdFx0XHRcdCRjdXJyZW50VGFyZ2V0LmNzcyh7XG5cdFx0XHRcdFx0XHRcdGxlZnQ6ICcnLFxuXHRcdFx0XHRcdFx0XHR0b3A6ICcnLFxuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0XHRDQUwuZGlhbG9nSGVpZ2h0ID0gJGN1cnJlbnRUYXJnZXQuaGVpZ2h0KCkgPz8gQ0FMLmRpYWxvZ0hlaWdodDtcblx0XHRcdFx0XHRcdHRoaXMuJHJlc3VsdExpc3QuY3NzKHtcblx0XHRcdFx0XHRcdFx0bWF4SGVpZ2h0OiAnJyxcblx0XHRcdFx0XHRcdFx0d2lkdGg6ICcnLFxuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0fSk7XG5cdFx0XHRcdHRoaXMuJHJlc3VsdExpc3QuY3NzKCdtYXgtaGVpZ2h0JywgJzQ1MHB4Jyk7XG5cdFx0XHRcdGlmIChDQUwuaXNTZWFyY2hNb2RlKSB7XG5cdFx0XHRcdFx0dGhpcy51cGRhdGVDYXRzKCdQaWN0dXJlcyBhbmQgaW1hZ2VzJyk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0dGhpcy51cGRhdGVDYXRzKENBTC5DVVJSRU5UX0NBVEVHUk9ZKTtcblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dGhpcy4kZGF0YUNvbnRhaW5lci5oaWRlKCk7XG5cdFx0XHRcdHRoaXMuJGNvbnRhaW5lci5yZXNpemFibGUoJ2Rlc3Ryb3knKTtcblx0XHRcdFx0dGhpcy4kY29udGFpbmVyLmNzcygnd2lkdGgnLCAnJyk7XG5cdFx0XHRcdENBTC4kbGFiZWxzLm9mZignY2xpY2suY2F0QUxvdCcpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdGlmIChcblx0XHQod2dOYW1lc3BhY2VOdW1iZXIgPT09IC0xICYmIHdnQ2Fub25pY2FsU3BlY2lhbFBhZ2VOYW1lID09PSAnU2VhcmNoJykgfHxcblx0XHR3Z05hbWVzcGFjZU51bWJlciA9PT0gT1BUSU9OUy50YXJnZXROYW1lc3BhY2Vcblx0KSB7XG5cdFx0aWYgKHdnTmFtZXNwYWNlTnVtYmVyID09PSAtMSkge1xuXHRcdFx0Q0FMLmlzU2VhcmNoTW9kZSA9IHRydWU7XG5cdFx0fVxuXHRcdC8qISBDYXQtYS1sb3QgbWVzc2FnZXMgfCBDQy1CWS1TQS00LjAgPGh0dHBzOi8vcXdiay5jYy9IOkNDLUJZLVNBLTQuMD4gKi9cblx0XHRzZXRNZXNzYWdlcygpO1xuXHRcdHZvaWQgZ2V0Qm9keSgpLnRoZW4oKCRib2R5OiBKUXVlcnk8SFRNTEJvZHlFbGVtZW50Pik6IHZvaWQgPT4ge1xuXHRcdFx0bmV3IENBTCgkYm9keSkuYnVpbGRFbGVtZW50cygpO1xuXHRcdH0pO1xuXHR9XG59O1xuXG5leHBvcnQge2NhdEFMb3R9O1xuIiwgImltcG9ydCAqIGFzIE9QVElPTlMgZnJvbSAnLi4vb3B0aW9ucy5qc29uJztcbmltcG9ydCB7aW5pdE13QXBpfSBmcm9tICdleHQuZ2FkZ2V0LlV0aWwnO1xuXG5jb25zdCBhcGk6IG13LkFwaSA9IGluaXRNd0FwaShgQ2F0LWEtbG90LyR7T1BUSU9OUy52ZXJzaW9ufWApO1xuXG5leHBvcnQge2FwaX07XG4iLCAiaW1wb3J0IHtDTEFTU19OQU1FX0xBQkVMLCBDTEFTU19OQU1FX0xBQkVMX0xBU1RfU0VMRUNURUQsIENMQVNTX05BTUVfTEFCRUxfU0VMRUNURUR9IGZyb20gJy4vY29uc3RhbnQnO1xuXG50eXBlIE9uQ2F0QUxvdFNoaWZ0Q2xpY2sgPSAodGhpczogSlF1ZXJ5LCBjYWxsYmFjazogKCkgPT4gdW5rbm93bikgPT4gSlF1ZXJ5O1xuZGVjbGFyZSBnbG9iYWwge1xuXHRpbnRlcmZhY2UgSlF1ZXJ5IHtcblx0XHRvbkNhdEFMb3RTaGlmdENsaWNrOiBPbkNhdEFMb3RTaGlmdENsaWNrO1xuXHR9XG59XG5cbmNvbnN0IGV4dGVuZEpRdWVyeVByb3RvdHlwZSA9ICgpOiB2b2lkID0+IHtcblx0JC5mbi5leHRlbmQoe1xuXHRcdG9uQ2F0QUxvdFNoaWZ0Q2xpY2s6IGZ1bmN0aW9uIChjYWxsYmFjaykge1xuXHRcdFx0bGV0IHByZXZDaGVja2JveDogSlF1ZXJ5IHwgdW5kZWZpbmVkO1xuXG5cdFx0XHQvLyBXaGVuIG91ciBib3hlcyBhcmUgY2xpY2tlZC4uXG5cdFx0XHR0aGlzLm9uKCdjbGljay5jYXRBTG90JywgKGV2ZW50OiBKUXVlcnkuVHJpZ2dlcmVkRXZlbnQpOiB2b2lkID0+IHtcblx0XHRcdFx0Ly8gUHJldmVudCBmb2xsb3dpbmcgdGhlIGxpbmsgYW5kIHRleHQgc2VsZWN0aW9uXG5cdFx0XHRcdGlmICghZXZlbnQuY3RybEtleSkge1xuXHRcdFx0XHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBIaWdobGlnaHQgbGFzdCBzZWxlY3RlZFxuXHRcdFx0XHR0aGlzLnBhcmVudHMoJ2JvZHknKVxuXHRcdFx0XHRcdC5maW5kKGAuJHtDTEFTU19OQU1FX0xBQkVMX0xBU1RfU0VMRUNURUR9YClcblx0XHRcdFx0XHQucmVtb3ZlQ2xhc3MoQ0xBU1NfTkFNRV9MQUJFTF9MQVNUX1NFTEVDVEVEKTtcblxuXHRcdFx0XHRsZXQgJHRoaXNDb250cm9sID0gJChldmVudC50YXJnZXQpIGFzIEpRdWVyeTtcblx0XHRcdFx0aWYgKCEkdGhpc0NvbnRyb2wuaGFzQ2xhc3MoQ0xBU1NfTkFNRV9MQUJFTCkpIHtcblx0XHRcdFx0XHQkdGhpc0NvbnRyb2wgPSAkdGhpc0NvbnRyb2wucGFyZW50cyhgLiR7Q0xBU1NfTkFNRV9MQUJFTH1gKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdCR0aGlzQ29udHJvbC5hZGRDbGFzcyhDTEFTU19OQU1FX0xBQkVMX0xBU1RfU0VMRUNURUQpLnRvZ2dsZUNsYXNzKENMQVNTX05BTUVfTEFCRUxfU0VMRUNURUQpO1xuXG5cdFx0XHRcdC8vIEFuZCBvbmUgaGFzIGJlZW4gY2xpY2tlZCBiZWZvcmUuLi5cblx0XHRcdFx0aWYgKHByZXZDaGVja2JveCAmJiBldmVudC5zaGlmdEtleSkge1xuXHRcdFx0XHRcdGNvbnN0IG1ldGhvZDogJ2FkZENsYXNzJyB8ICdyZW1vdmVDbGFzcycgPSAkdGhpc0NvbnRyb2wuaGFzQ2xhc3MoQ0xBU1NfTkFNRV9MQUJFTF9TRUxFQ1RFRClcblx0XHRcdFx0XHRcdD8gJ2FkZENsYXNzJ1xuXHRcdFx0XHRcdFx0OiAncmVtb3ZlQ2xhc3MnO1xuXHRcdFx0XHRcdC8vIENoZWNrIG9yIHVuY2hlY2sgdGhpcyBvbmUgYW5kIGFsbCBpbi1iZXR3ZWVuIGNoZWNrYm94ZXNcblx0XHRcdFx0XHR0aGlzLnNsaWNlKFxuXHRcdFx0XHRcdFx0TWF0aC5taW4odGhpcy5pbmRleChwcmV2Q2hlY2tib3gpLCB0aGlzLmluZGV4KCR0aGlzQ29udHJvbCkpLFxuXHRcdFx0XHRcdFx0TWF0aC5tYXgodGhpcy5pbmRleChwcmV2Q2hlY2tib3gpLCB0aGlzLmluZGV4KCR0aGlzQ29udHJvbCkpICsgMVxuXHRcdFx0XHRcdClbbWV0aG9kXShDTEFTU19OQU1FX0xBQkVMX1NFTEVDVEVEKTtcblx0XHRcdFx0fVxuXHRcdFx0XHQvLyBFaXRoZXIgd2F5LCB1cGRhdGUgdGhlIHByZXZDaGVja2JveCB2YXJpYWJsZSB0byB0aGUgb25lIGNsaWNrZWQgbm93XG5cdFx0XHRcdHByZXZDaGVja2JveCA9ICR0aGlzQ29udHJvbDtcblxuXHRcdFx0XHRpZiAodHlwZW9mIGNhbGxiYWNrID09PSAnZnVuY3Rpb24nKSB7XG5cdFx0XHRcdFx0Y2FsbGJhY2soKTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cblx0XHRcdHJldHVybiB0aGlzO1xuXHRcdH0gYXMgT25DYXRBTG90U2hpZnRDbGljayxcblx0fSk7XG59O1xuXG5leHBvcnQge2V4dGVuZEpRdWVyeVByb3RvdHlwZX07XG4iLCAiaW1wb3J0IHtjYXRBTG90fSBmcm9tICcuL21vZHVsZXMvY29yZSc7XG5pbXBvcnQge2V4dGVuZEpRdWVyeVByb3RvdHlwZX0gZnJvbSAnLi9tb2R1bGVzL2V4dGVuZEpRdWVyeVByb3RvdHlwZSc7XG5cbi8qISBDYXQtYS1sb3QgfCBDQy1CWS1TQS00LjAgPGh0dHBzOi8vcXdiay5jYy9IOkNDLUJZLVNBLTQuMD4gKi9cbmV4dGVuZEpRdWVyeVByb3RvdHlwZSgpO1xuY2F0QUxvdCgpO1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNDLElBQUFBLFNBQVU7QUFDVixJQUFBQyxrQkFBbUI7QUFDbkIsSUFBQUMsVUFBVzs7QUNBWixJQUFNQyxhQUFxQjtBQUMzQixJQUFNQyx1QkFBQSxHQUFBQyxPQUFrQ0YsWUFBVSxZQUFBO0FBQ2xELElBQU1HLDRCQUFB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WUFBSSxDQUFDRCxhQUFhbkIsU0FBU3BXLGdCQUFnQixHQUFHO0FBQzdDdVgseUJBQWVBLGFBQWFGLFFBQUEsSUFBQXJZLE9BQVlnQixnQkFBZ0IsQ0FBRTtRQUMzRDtBQUVBdVgscUJBQWE1SSxTQUFTek8sOEJBQThCLEVBQUVnSSxZQUFZL0gseUJBQXlCO0FBRzNGLFlBQUkrVyxnQkFBZ0IxUixNQUFNaVMsVUFBVTtBQUNuQyxnQkFBTUMsU0FBcUNILGFBQWFuQixTQUFTalcseUJBQXlCLElBQ3ZGLGFBQ0E7QUFFSCxlQUFLdUssTUFDSmlLLEtBQUtDLElBQUksS0FBS2xGLE1BQU13SCxZQUFZLEdBQUcsS0FBS3hILE1BQU02SCxZQUFZLENBQUMsR0FDM0Q1QyxLQUFLZ0QsSUFBSSxLQUFLakksTUFBTXdILFlBQVksR0FBRyxLQUFLeEgsTUFBTTZILFlBQVksQ0FBQyxJQUFJLENBQ2hFLEVBQUVHLE1BQU0sRUFBRXZYLHlCQUF5QjtRQUNwQztBQUVBK1csdUJBQWVLO0FBRWYsWUFBSSxPQUFPMUosYUFBYSxZQUFZO0FBQ25DQSxtQkFBUztRQUNWO01BQ0QsQ0FBQztBQUVELGFBQU87SUFDUjtFQUNELENBQUM7QUFDRjs7QUNwREE7QUFDQWtKLHNCQUFzQjtBQUN0QnhVLFFBQVE7IiwKICAibmFtZXMiOiBbImFwaVRhZyIsICJ0YXJnZXROYW1lc3BhY2UiLCAidmVyc2lvbiIsICJDTEFTU19OQU1FIiwgIkNMQVNTX05BTUVfQ09OVEFJTkVSIiwgImNvbmNhdCIsICJDTEFTU19OQU1FX0NPTlRBSU5FUl9EQVRBIiwgIkNMQVNTX05BTUVfQ09OVEFJTkVSX0RBVEFfQ0FURUdPUllfTElTVCIsICJDTEFTU19OQU1FX0NPTlRBSU5FUl9EQVRBX0NBVEVHT1JZX0xJU1RfQUNUSU9OIiwgIkNMQVNTX05BTUVfQ09OVEFJTkVSX0RBVEFfQ0FURUdPUllfTElTVF9OT19GT1VORCIsICJDTEFTU19OQU1FX0NPTlRBSU5FUl9EQVRBX01BUktfQ09VTlRFUiIsICJDTEFTU19OQU1FX0NPTlRBSU5FUl9EQVRBX1NFQVJDSF9JTlBVVF9DT05UQUlORVJfSU5QVVQiLCAiQ0xBU1NfTkFNRV9DT05UQUlORVJfREFUQV9TRUxFQ1RJT05TIiwgIkNMQVNTX05BTUVfQ09OVEFJTkVSX0RBVEFfU0VMRUNUSU9OU19BTEwiLCAiQ0xBU1NfTkFNRV9DT05UQUlORVJfREFUQV9TRUxFQ1RJT05TX05PTkUiLCAiQ0xBU1NfTkFNRV9DT05UQUlORVJfSEVBRCIsICJDTEFTU19OQU1FX0NPTlRBSU5FUl9IRUFEX0xJTksiLCAiQ0xBU1NfTkFNRV9DT05UQUlORVJfSEVBRF9MSU5LX0VOQUJMRUQiLCAiQ0xBU1NfTkFNRV9DVVJSRU5UX0NPVU5URVIiLCAiQ0xBU1NfTkFNRV9GRUVEQkFDSyIsICJDTEFTU19OQU1FX0ZFRURCQUNLX0RPTkUiLCAiQ0xBU1NfTkFNRV9MQUJFTCIsICJDTEFTU19OQU1FX0xBQkVMX0RPTkUiLCAiQ0xBU1NfTkFNRV9MQUJFTF9MQVNUX1NFTEVDVEVEIiwgIkNMQVNTX05BTUVfTEFCRUxfU0VMRUNURUQiLCAiREVGQVVMVF9TRVRUSU5HIiwgImRvY2xlYW51cCIsICJkZWZhdWx0IiwgImxhYmVsX2kxOG4iLCAiZWRpdHBhZ2VzIiwgIm1pbm9yIiwgInN1YmNhdGNvdW50IiwgIndhdGNobGlzdCIsICJzZWxlY3RfaTE4biIsICJ3YXRjaF9ub2NoYW5nZSIsICJ3YXRjaF9wcmVmIiwgIndhdGNoX3Vud2F0Y2giLCAid2F0Y2hfd2F0Y2giLCAiVkFSSUFOVFMiLCAid2dVc2VyTGFuZ3VhZ2UiLCAibXciLCAiY29uZmlnIiwgImdldCIsICJERUZBVUxUX01FU1NBR0VTIiwgInNldE1lc3NhZ2VzIiwgImluY2x1ZGVzIiwgIm1lc3NhZ2VzIiwgInNldCIsICJpbXBvcnRfZXh0X2dhZGdldDIiLCAicmVxdWlyZSIsICJpbXBvcnRfZXh0X2dhZGdldDMiLCAiX190b0VTTSIsICJpbXBvcnRfZXh0X2dhZGdldCIsICJhcGkiLCAiaW5pdE13QXBpIiwgIndnQ2Fub25pY2FsU3BlY2lhbFBhZ2VOYW1lIiwgIndnRm9ybWF0dGVkTmFtZXNwYWNlcyIsICJ3Z05hbWVzcGFjZUlkcyIsICJ3Z05hbWVzcGFjZU51bWJlciIsICJ3Z1RpdGxlIiwgImNhdEFMb3QiLCAiQ0FMIiwgImlzU2VhcmNoTW9kZSIsICJNRVNTQUdFUyIsICJBUElfVEFHIiwgIlRBUkdFVF9OQU1FU1BBQ0UiLCAiQ1VSUkVOVF9DQVRFR1JPWSIsICJpc0F1dG9Db21wbGV0ZUluaXQiLCAiYWxyZWFkeVRoZXJlIiwgImNvbm5lY3Rpb25FcnJvciIsICJub3RGb3VuZCIsICJjb3VudGVyQ3VycmVudCIsICJjb3VudGVyTmVlZGVkIiwgImNvdW50ZXJDYXQiLCAiY3VycmVudENhdGVnb3J5IiwgImRpYWxvZ0hlaWdodCIsICJlZGl0VG9rZW4iLCAibG9jYWxDYXROYW1lIiwgInBhcmVudENhdHMiLCAic3ViQ2F0cyIsICJzZXR0aW5ncyIsICJ2YXJpYW50Q2FjaGUiLCAidmFyaWFudENhY2hlMiIsICIkY291bnRlciIsICIkIiwgIiRwcm9ncmVzc0RpYWxvZyIsICIkbGFiZWxzIiwgIiRzZWxlY3RlZExhYmVscyIsICIkYm9keSIsICIkY29udGFpbmVyIiwgIiRkYXRhQ29udGFpbmVyIiwgIiRtYXJrQ291bnRlciIsICIkcmVzdWx0TGlzdCIsICIkc2VhcmNoSW5wdXQiLCAiJGhlYWQiLCAiJGxpbmsiLCAiY29uc3RydWN0b3IiLCAiX213JHV0aWwkZ2V0UGFyYW1WYWx1IiwgIm1zZyIsICJpbml0U2V0dGluZ3MiLCAiY29udGFpbmVyIiwgImNyZWF0ZUVsZW1lbnQiLCAiY2xhc3NOYW1lIiwgInBsYWNlaG9sZGVyIiwgInR5cGUiLCAidmFsdWUiLCAidXRpbCIsICJnZXRQYXJhbVZhbHVlIiwgIm9uS2V5RG93biIsICJldmVudCIsICIkZWxlbWVudCIsICJjdXJyZW50VGFyZ2V0IiwgImtleSIsICJfJGVsZW1lbnQkdmFsJHRyaW0iLCAiXyRlbGVtZW50JHZhbCIsICJjYXQiLCAidmFsIiwgInRyaW0iLCAidXBkYXRlQ2F0cyIsICJvbkNsaWNrIiwgInRvZ2dsZUFsbCIsICJhcHBlbmRUbyIsICJmaW5kIiwgImJ1aWxkRWxlbWVudHMiLCAicmVnZXhDYXQiLCAiUmVnRXhwIiwgImxvY2FsaXplZFJlZ2V4IiwgImlzQ29tcG9zaXRpb25TdGFydCIsICJvbiIsICJvbGRWYWwiLCAibmV3VmFsIiwgInJlcGxhY2UiLCAiaW5pdEF1dG9jb21wbGV0ZSIsICJhdXRvY29tcGxldGUiLCAic291cmNlIiwgInJlcXVlc3QiLCAicmVzcG9uc2UiLCAiZG9BUElDYWxsIiwgImFjdGlvbiIsICJuYW1lc3BhY2UiLCAicmVkaXJlY3RzIiwgInNlYXJjaCIsICJ0ZXJtIiwgInJlc3VsdCIsICJtYXAiLCAiX2luZGV4IiwgIml0ZW0iLCAicG9zaXRpb24iLCAibXkiLCAiYXQiLCAib2YiLCAidG9nZ2xlQ2xhc3MiLCAicnVuIiwgIl93aW5kb3ckQ2F0QUxvdFByZWZzIiwgImNhdEFMb3RQcmVmcyIsICJ3aW5kb3ciLCAiQ2F0QUxvdFByZWZzIiwgInR5cGVPZkNhdEFMb3RQcmVmcyIsICJBcnJheSIsICJpc0FycmF5IiwgIl9pIiwgIl9PYmplY3Qka2V5cyIsICJPYmplY3QiLCAia2V5cyIsICJsZW5ndGgiLCAiX2NhdEFMb3RQcmVmcyRzZXR0aW5nIiwgInNldHRpbmdLZXkiLCAic2V0dGluZyIsICJzZWxlY3QiLCAiX2kyIiwgIl9PYmplY3Qka2V5czIiLCAibWVzc2FnZUtleSIsICJtZXNzYWdlIiwgImFyZ3MiLCAiZnVsbEtleSIsICJwYXJzZSIsICJwbGFpbiIsICJuYW1lc3BhY2VOdW1iZXIiLCAiZmFsbGJhY2siLCAiX0NBTCR3Z0Zvcm1hdHRlZE5hbWVzIiwgIndpa2lUZXh0QmxhbmsiLCAiU3RyaW5nIiwgInJhdyIsICJfdGVtcGxhdGVPYmplY3QiLCAiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbCIsICJ3aWtpVGV4dEJsYW5rUkUiLCAiY3JlYXRlUmVnZXhTdHIiLCAibmFtZSIsICJyZWdleE5hbWUiLCAiaSIsICJpbml0aWFsIiwgInNsaWNlIiwgImxsIiwgInRvTG93ZXJDYXNlIiwgInVsIiwgInRvVXBwZXJDYXNlIiwgIl90ZW1wbGF0ZU9iamVjdDIiLCAiY2Fub25pY2FsIiwgInJlZ2V4U3RyaW5nIiwgIl9pMyIsICJfT2JqZWN0JGtleXMzIiwgImNhdE5hbWUiLCAidXBkYXRlU2VsZWN0aW9uQ291bnRlciIsICJmaWx0ZXIiLCAic2hvdyIsICJodG1sIiwgInRvU3RyaW5nIiwgImZpbmRBbGxWYXJpYW50cyIsICJjYXRlZ29yeSIsICJfYXN5bmNUb0dlbmVyYXRvciIsICJfQ0FMJHZhcmlhbnRDYWNoZSIsICJfQ0FMJHZhcmlhbnRDYWNoZSRjYXQiLCAicmVzdWx0cyIsICJwYXJhbXMiLCAiZm9ybWF0IiwgImZvcm1hdHZlcnNpb24iLCAidGV4dCIsICJ0aXRsZSIsICJfaTQiLCAiX1ZBUklBTlRTIiwgIl9DQUwkdmFyaWFudENhY2hlMiRjYSIsICJ2YXJpYW50IiwgInJlc3VsdDIiLCAiZXEiLCAidW5pcXVlQXJyYXkiLCAicmVnZXhCdWlsZGVyIiwgInZhcmlhbnRzIiwgInZhcmlhbnRSZWdFeHBzIiwgIl9pdGVyYXRvcjIiLCAiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIiLCAiX3N0ZXAyIiwgInMiLCAibiIsICJkb25lIiwgImVzY2FwZVJlZ0V4cCIsICJfdGVtcGxhdGVPYmplY3QzIiwgImZpcnN0IiwgImVyciIsICJlIiwgImYiLCAiam9pbiIsICJfcGFyYW1zIiwgImNhbGxiYWNrIiwgImRvQ2FsbCIsICJoYW5kbGVFcnJvciIsICJlcnJvciIsICJsb2ciLCAic2V0VGltZW91dCIsICJ1cGRhdGVDb3VudGVyIiwgInRoZW4iLCAiY2F0Y2giLCAicG9zdCIsICJtYXJrQXNEb25lIiwgIiRtYXJrZWRMYWJlbCIsICJ0YXJnZXRDYXRlZ29yeSIsICJtb2RlIiwgImFkZENsYXNzIiwgImFwcGVuZCIsICJGcmFnbWVudCIsICJkb0NsZWFudXAiLCAicmVtb3ZlVW5jYXQiLCAiZGlzcGxheVJlc3VsdCIsICJjc3MiLCAiY3Vyc29yIiwgIm92ZXJmbG93IiwgIiRwYXJlbnQiLCAicGFyZW50IiwgInJlbW92ZSIsICJyZWR1Y2UiLCAicHJlIiwgImN1ciIsICJpbmRleCIsICJlZGl0Q2F0ZWdvcmllcyIsICJtYXJrZWRMYWJlbCIsICJfdGhpcyIsICJfcGFnZSRyZXZpc2lvbnMiLCAibWFya2VkTGFiZWxUaXRsZSIsICJvcmlnaW5UZXh0IiwgInN0YXJ0dGltZXN0YW1wIiwgInRpbWVzdGFtcCIsICJ0b2tlbnMiLCAiY3NyZnRva2VuIiwgInBhZ2VzIiwgInBhZ2UiLCAicmV2aXNpb25zIiwgInNsb3RzIiwgIm1haW4iLCAiY29udGVudCIsICJzb3VyY2VjYXQiLCAidGFyZ2VSZWdFeHAiLCAidGVzdCIsICJzdW1tYXJ5IiwgInNvdXJjZUNhdFJlZ0V4cCIsICJ0b2tlbiIsICJ0YWdzIiwgImFzc2VydCIsICJib3QiLCAiYmFzZXRpbWVzdGFtcCIsICJnZXRDb250ZW50IiwgIm1ldGEiLCAidGl0bGVzIiwgInByb3AiLCAicnZwcm9wIiwgInJ2c2xvdHMiLCAiZ2V0VGl0bGVGcm9tTGluayIsICJocmVmIiwgIl9kZWNvZGVVUklDb21wb25lbnQkbSIsICJfZGVjb2RlVVJJQ29tcG9uZW50JG0yIiwgImRlY29kZVVSSUNvbXBvbmVudCIsICJtYXRjaCIsICJnZXRNYXJrZWRMYWJlbHMiLCAibWFya2VkTGFiZWxzIiwgImVhY2giLCAibGFiZWwiLCAiXyRsYWJlbExpbmskYXR0ciIsICIkbGFiZWwiLCAiJGxhYmVsTGluayIsICJhdHRyIiwgInNob3dQcm9ncmVzcyIsICJkaWFsb2ciLCAiZGlhbG9nQ2xhc3MiLCAibWluSGVpZ2h0IiwgImhlaWdodCIsICJ3aWR0aCIsICJtb2RhbCIsICJjbG9zZU9uRXNjYXBlIiwgImRyYWdnYWJsZSIsICJyZXNpemFibGUiLCAiaGlkZSIsICJkb1NvbWV0aGluZyIsICJub3RpZnkiLCAidGFnIiwgIl9pdGVyYXRvcjMiLCAiX3N0ZXAzIiwgImFkZEhlcmUiLCAiY29weUhlcmUiLCAibW92ZUhlcmUiLCAiY3JlYXRlQ2F0TGlua3MiLCAic3ltYm9sIiwgImNhdGVnb3JpZXMiLCAic29ydCIsICJfaXRlcmF0b3I0IiwgIl9zdGVwNCIsICIkdHIiLCAiZGF0YXNldCIsICJjbG9zZXN0IiwgImRhdGEiLCAic2hvd0NhdGVnb3J5TGlzdCIsICJfdGhpcyQkY29udGFpbmVyJHdpZHQiLCAiXyQkd2lkdGgiLCAiY3VycmVudENhdGVnb3JpZXMiLCAiZW1wdHkiLCAiTWF0aCIsICJtaW4iLCAiZ2V0UGFyZW50Q2F0cyIsICJfcGFnZXMkIiwgIl9wYWdlcyQyIiwgInF1ZXJ5IiwgIm1pc3NpbmciLCAiX2l0ZXJhdG9yNSIsICJfc3RlcDUiLCAiZ2V0U3ViQ2F0cyIsICJsaXN0IiwgImNtdHlwZSIsICJjbWxpbWl0IiwgImNtdGl0bGUiLCAiX3Jlc3VsdCRxdWVyeSIsICJjYXRzIiwgImNhdGVnb3J5bWVtYmVycyIsICJfaXRlcmF0b3I2IiwgIl9zdGVwNiIsICJnZXRDYXRlZ29yeUxpc3QiLCAiZmluZEFsbExhYmVscyIsICJhZGQiLCAiJHBhZ2VzIiwgIm1ha2VDbGlja2FibGUiLCAib25DYXRBTG90U2hpZnRDbGljayIsICJoYXNDbGFzcyIsICJhbHNvUmVzaXplIiwgImhhbmRsZXMiLCAicmVzaXplIiwgIl8kY3VycmVudFRhcmdldCRoZWlnaCIsICIkY3VycmVudFRhcmdldCIsICJsZWZ0IiwgInRvcCIsICJtYXhIZWlnaHQiLCAib2ZmIiwgImdldEJvZHkiLCAiZXh0ZW5kSlF1ZXJ5UHJvdG90eXBlIiwgImZuIiwgImV4dGVuZCIsICJwcmV2Q2hlY2tib3giLCAiY3RybEtleSIsICJwcmV2ZW50RGVmYXVsdCIsICJwYXJlbnRzIiwgInJlbW92ZUNsYXNzIiwgIiR0aGlzQ29udHJvbCIsICJ0YXJnZXQiLCAic2hpZnRLZXkiLCAibWV0aG9kIiwgIm1heCJdCn0K diff --git a/dist/CodeLinks/CodeLinks.js b/dist/CodeLinks/CodeLinks.js index e5ae3ad16..077fc9c21 100644 --- a/dist/CodeLinks/CodeLinks.js +++ b/dist/CodeLinks/CodeLinks.js @@ -105,7 +105,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge mod )); //! src/CodeLinks/modules/addLink.tsx -var import_ext_gadget = __toESM(require("ext.gadget.React"), 1); +var import_ext_gadget = __toESM(require("ext.gadget.JSX"), 1); var addLink = (element, targetTitle) => { if (!(element instanceof Element)) { throw new TypeError("Expected Element interface"); @@ -131,7 +131,7 @@ var import_ext_gadget3 = require("ext.gadget.Util"); */ var REGEX_URL = /\b((?:https?:\/\/|www\d{0,3}[.]|[a-z0-9.-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()[\]{};:'".,<>?«»“”‘’]))/i; //! src/CodeLinks/modules/processComment.tsx -var import_ext_gadget2 = __toESM(require("ext.gadget.React"), 1); +var import_ext_gadget2 = __toESM(require("ext.gadget.JSX"), 1); var processComment = (element) => { var _index, _ref; const { @@ -342,4 +342,4 @@ void (0, import_ext_gadget3.getBody)().then(function codeLinks($body) { /* */ -//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL0NvZGVMaW5rcy9tb2R1bGVzL2FkZExpbmsudHN4IiwgInNyYy9Db2RlTGlua3MvQ29kZUxpbmtzLnRzIiwgInNyYy9Db2RlTGlua3MvbW9kdWxlcy9jb25zdGFudC50cyIsICJzcmMvQ29kZUxpbmtzL21vZHVsZXMvcHJvY2Vzc0NvbW1lbnQudHN4Il0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQgUmVhY3QgZnJvbSAnZXh0LmdhZGdldC5SZWFjdCc7XG5cbmNvbnN0IGFkZExpbmsgPSAoZWxlbWVudDogRWxlbWVudCwgdGFyZ2V0VGl0bGU6IHN0cmluZyk6IHZvaWQgPT4ge1xuXHRpZiAoIShlbGVtZW50IGluc3RhbmNlb2YgRWxlbWVudCkpIHtcblx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKCdFeHBlY3RlZCBFbGVtZW50IGludGVyZmFjZScpO1xuXHR9XG5cblx0Y29uc3Qge2ZpcnN0Q2hpbGR9ID0gZWxlbWVudDtcblx0aWYgKCEoZmlyc3RDaGlsZCBpbnN0YW5jZW9mIFRleHQpKSB7XG5cdFx0dGhyb3cgbmV3IFR5cGVFcnJvcignRXhwZWN0ZWQgVGV4dCBpbnRlcmZhY2UnKTtcblx0fVxuXG5cdGVsZW1lbnQuYXBwZW5kKDxhIGhyZWY9e213LnV0aWwuZ2V0VXJsKHRhcmdldFRpdGxlKX0+e2ZpcnN0Q2hpbGR9PC9hPik7XG59O1xuXG5leHBvcnQge2FkZExpbmt9O1xuIiwgImltcG9ydCB7YWRkTGlua30gZnJvbSAnLi9tb2R1bGVzL2FkZExpbmsnO1xuaW1wb3J0IHtnZXRCb2R5fSBmcm9tICdleHQuZ2FkZ2V0LlV0aWwnO1xuaW1wb3J0IHtwcm9jZXNzQ29tbWVudH0gZnJvbSAnLi9tb2R1bGVzL3Byb2Nlc3NDb21tZW50Jztcblxudm9pZCBnZXRCb2R5KCkudGhlbihmdW5jdGlvbiBjb2RlTGlua3MoJGJvZHk6IEpRdWVyeTxIVE1MQm9keUVsZW1lbnQ+KTogdm9pZCB7XG5cdGZvciAoY29uc3QgY29kZUJsb2NrIG9mICRib2R5LmZpbmQoJy5tdy1oaWdobGlnaHQnKSkge1xuXHRcdGZvciAoY29uc3QgY29tbWVudENsYXNzIG9mIFsnYycsICdjMScsICdjbSddKSB7XG5cdFx0XHRmb3IgKGNvbnN0IGNvbW1lbnQgb2YgY29kZUJsb2NrLnF1ZXJ5U2VsZWN0b3JBbGwoYC4ke2NvbW1lbnRDbGFzc31gKSkge1xuXHRcdFx0XHRwcm9jZXNzQ29tbWVudChjb21tZW50KTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQvLyBMaW5rIG1vZHVsZSBuYW1lcyBhZnRlciBgcmVxdWlyZWAgYW5kIGBtdy5sb2FkRGF0YWAsIGFuZCB0cmFja2luZyB0ZW1wbGF0ZVxuXHQvLyBuYW1lcyBhZnRlciBgcmVxdWlyZShcIk1vZHVsZTpkZWJ1Z1wiKS50cmFja2AuXG5cdGNvbnN0IGNsYXNzZXMgPSB7XG5cdFx0aWRlbnRpZmllcjogJ24nLFxuXHRcdGZ1bmN0aW9uTmFtZTogJ25iJyxcblx0XHRzaW5nbGVRdW90ZVN0cmluZzogJ3MxJyxcblx0XHRkb3VibGVRdW90ZVN0cmluZzogJ3MyJyxcblx0fSBhcyBjb25zdCBzYXRpc2ZpZXMgUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcblxuXHRjb25zdCBtb2R1bGVOYW1lRWxlbWVudEFycmF5OiBFbGVtZW50W10gPSBbXTtcblx0Zm9yIChjb25zdCBmdW5jdGlvbk5hbWVFbGVtZW50IG9mICRib2R5LmZpbmQoYC4ke2NsYXNzZXMuZnVuY3Rpb25OYW1lfWApKSB7XG5cdFx0Y29uc3QgdGV4dDogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCA9IGZ1bmN0aW9uTmFtZUVsZW1lbnQuZmlyc3RDaGlsZD8ubm9kZVZhbHVlO1xuXHRcdGlmICh0ZXh0ICE9PSAncmVxdWlyZScpIHtcblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblxuXHRcdGxldCBuZXh0RWxlbWVudDogRWxlbWVudCB8IG51bGwgPSBmdW5jdGlvbk5hbWVFbGVtZW50Lm5leHRFbGVtZW50U2libGluZztcblx0XHRpZiAoIW5leHRFbGVtZW50KSB7XG5cdFx0XHRjb250aW51ZTtcblx0XHR9XG5cblx0XHRsZXQgbmV4dEVsZW1lbnRGaXJzdFZhbHVlOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkID0gbmV4dEVsZW1lbnQuZmlyc3RDaGlsZD8ubm9kZVZhbHVlO1xuXHRcdGNvbnN0IGhhc1BhcmVudGhlc2lzOiBib29sZWFuID0gbmV4dEVsZW1lbnRGaXJzdFZhbHVlID09PSAnKCc7XG5cdFx0aWYgKGhhc1BhcmVudGhlc2lzKSB7XG5cdFx0XHRuZXh0RWxlbWVudCA9IG5leHRFbGVtZW50Lm5leHRFbGVtZW50U2libGluZztcblx0XHRcdGlmICghbmV4dEVsZW1lbnQpIHtcblx0XHRcdFx0Y29udGludWU7XG5cdFx0XHR9XG5cdFx0XHRuZXh0RWxlbWVudEZpcnN0VmFsdWUgPSBuZXh0RWxlbWVudC5maXJzdENoaWxkPy5ub2RlVmFsdWU7XG5cdFx0fVxuXG5cdFx0Y29uc3Qge2NsYXNzTGlzdH0gPSBuZXh0RWxlbWVudDtcblx0XHRpZiAoIShjbGFzc0xpc3QuY29udGFpbnMoY2xhc3Nlcy5zaW5nbGVRdW90ZVN0cmluZykgfHwgY2xhc3NMaXN0LmNvbnRhaW5zKGNsYXNzZXMuZG91YmxlUXVvdGVTdHJpbmcpKSkge1xuXHRcdFx0Y29udGludWU7XG5cdFx0fVxuXG5cdFx0Y29uc3QgZWxlbWVudDogRWxlbWVudCA9IG5leHRFbGVtZW50O1xuXHRcdGNvbnN0IGVsZW1lbnRWYWx1ZTogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCA9IG5leHRFbGVtZW50Rmlyc3RWYWx1ZTtcblx0XHRpZiAoIWVsZW1lbnRWYWx1ZSkge1xuXHRcdFx0Y29udGludWU7XG5cdFx0fVxuXG5cdFx0bmV4dEVsZW1lbnQgPSBuZXh0RWxlbWVudC5uZXh0RWxlbWVudFNpYmxpbmc7XG5cdFx0aWYgKCFuZXh0RWxlbWVudCkge1xuXHRcdFx0Y29udGludWU7XG5cdFx0fVxuXG5cdFx0bmV4dEVsZW1lbnRGaXJzdFZhbHVlID0gbmV4dEVsZW1lbnQuZmlyc3RDaGlsZD8ubm9kZVZhbHVlO1xuXHRcdGlmIChoYXNQYXJlbnRoZXNpcyAmJiBuZXh0RWxlbWVudEZpcnN0VmFsdWU/LlswXSAhPT0gJyknKSB7XG5cdFx0XHRjb250aW51ZTtcblx0XHR9XG5cblx0XHRtb2R1bGVOYW1lRWxlbWVudEFycmF5W21vZHVsZU5hbWVFbGVtZW50QXJyYXkubGVuZ3RoXSA9IGVsZW1lbnQ7XG5cdH1cblxuXHRjb25zdCBkYXRhTW9kdWxlTmFtZUVsZW1lbnRBcnJheTogRWxlbWVudFtdID0gW107XG5cdGZvciAoY29uc3QgZWxlbWVudCBvZiAkYm9keS5maW5kKGAuJHtjbGFzc2VzLnNpbmdsZVF1b3RlU3RyaW5nfSwuJHtjbGFzc2VzLmRvdWJsZVF1b3RlU3RyaW5nfWApKSB7XG5cdFx0aWYgKG1vZHVsZU5hbWVFbGVtZW50QXJyYXkuaW5jbHVkZXMoZWxlbWVudCkpIHtcblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblxuXHRcdGNvbnN0IGVsZW1lbnRGaXJzdFZhbHVlOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkID0gZWxlbWVudC5maXJzdENoaWxkPy5ub2RlVmFsdWU7XG5cdFx0aWYgKCFlbGVtZW50Rmlyc3RWYWx1ZSB8fCAhL15bXCInXSg/Om1vZHVsZXzmqKFb57uE57WE5Z2XXSk6L2kudGVzdChlbGVtZW50Rmlyc3RWYWx1ZSkpIHtcblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblxuXHRcdGxldCBwcmV2RWxlbWVudDogRWxlbWVudCB8IG51bGwgPSBlbGVtZW50LnByZXZpb3VzRWxlbWVudFNpYmxpbmc7XG5cdFx0aWYgKCFwcmV2RWxlbWVudCkge1xuXHRcdFx0Y29udGludWU7XG5cdFx0fVxuXG5cdFx0bGV0IHByZXZFbGVtZW50Rmlyc3RWYWx1ZTogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCA9IHByZXZFbGVtZW50LmZpcnN0Q2hpbGQ/Lm5vZGVWYWx1ZTtcblx0XHRpZiAocHJldkVsZW1lbnRGaXJzdFZhbHVlID09PSAnKCcpIHtcblx0XHRcdGNvbnN0IG5leHRFbGVtZW50OiBFbGVtZW50IHwgbnVsbCA9IGVsZW1lbnQubmV4dEVsZW1lbnRTaWJsaW5nO1xuXHRcdFx0aWYgKCFuZXh0RWxlbWVudCkge1xuXHRcdFx0XHRjb250aW51ZTtcblx0XHRcdH1cblx0XHRcdGNvbnN0IG5leHRFbGVtZW50Rmlyc3RWYWx1ZTogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCA9IG5leHRFbGVtZW50LmZpcnN0Q2hpbGQ/Lm5vZGVWYWx1ZTtcblx0XHRcdGlmIChuZXh0RWxlbWVudEZpcnN0VmFsdWU/LlswXSAhPT0gJyknKSB7XG5cdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0fVxuXHRcdFx0cHJldkVsZW1lbnQgPSBwcmV2RWxlbWVudC5wcmV2aW91c0VsZW1lbnRTaWJsaW5nO1xuXHRcdFx0aWYgKCFwcmV2RWxlbWVudCkge1xuXHRcdFx0XHRjb250aW51ZTtcblx0XHRcdH1cblx0XHRcdHByZXZFbGVtZW50Rmlyc3RWYWx1ZSA9IHByZXZFbGVtZW50LmZpcnN0Q2hpbGQ/Lm5vZGVWYWx1ZTtcblx0XHR9XG5cdFx0aWYgKHByZXZFbGVtZW50Rmlyc3RWYWx1ZSAhPT0gJ2xvYWREYXRhJykge1xuXHRcdFx0Y29udGludWU7XG5cdFx0fVxuXG5cdFx0cHJldkVsZW1lbnQgPSBwcmV2RWxlbWVudC5wcmV2aW91c0VsZW1lbnRTaWJsaW5nO1xuXHRcdGlmICghcHJldkVsZW1lbnQpIHtcblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblxuXHRcdHByZXZFbGVtZW50Rmlyc3RWYWx1ZSA9IHByZXZFbGVtZW50LmZpcnN0Q2hpbGQ/Lm5vZGVWYWx1ZTtcblx0XHRpZiAocHJldkVsZW1lbnRGaXJzdFZhbHVlICE9PSAnLicpIHtcblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblxuXHRcdHByZXZFbGVtZW50ID0gcHJldkVsZW1lbnQucHJldmlvdXNFbGVtZW50U2libGluZztcblx0XHRpZiAoIXByZXZFbGVtZW50KSB7XG5cdFx0XHRjb250aW51ZTtcblx0XHR9XG5cblx0XHRwcmV2RWxlbWVudEZpcnN0VmFsdWUgPSBwcmV2RWxlbWVudC5maXJzdENoaWxkPy5ub2RlVmFsdWU7XG5cdFx0aWYgKHByZXZFbGVtZW50Rmlyc3RWYWx1ZSAhPT0gJ213Jykge1xuXHRcdFx0Y29udGludWU7XG5cdFx0fVxuXG5cdFx0ZGF0YU1vZHVsZU5hbWVFbGVtZW50QXJyYXlbZGF0YU1vZHVsZU5hbWVFbGVtZW50QXJyYXkubGVuZ3RoXSA9IGVsZW1lbnQ7XG5cdH1cblxuXHQvLyBMaW5rIG1vZHVsZSBuYW1lcyB0byBtb2R1bGUgcGFnZXMsXG5cdC8vIG9yIHRvIHRoZSBzZWN0aW9uIGluIHRoZSBTY3JpYnVudG8gbWFudWFsLlxuXHRmb3IgKGNvbnN0IGVsZW1lbnQgb2YgWy4uLm1vZHVsZU5hbWVFbGVtZW50QXJyYXksIC4uLmRhdGFNb2R1bGVOYW1lRWxlbWVudEFycmF5XSkge1xuXHRcdGNvbnN0IGVsZW1lbnRGaXJzdFZhbHVlOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkID0gZWxlbWVudC5maXJzdENoaWxkPy5ub2RlVmFsdWU7XG5cdFx0aWYgKCFlbGVtZW50Rmlyc3RWYWx1ZSkge1xuXHRcdFx0Y29udGludWU7XG5cdFx0fVxuXG5cdFx0Y29uc3QgbW9kdWxlTmFtZTogc3RyaW5nID0gZWxlbWVudEZpcnN0VmFsdWUuc2xpY2UoMSwgLTEpO1xuXHRcdGNvbnN0IHRhcmdldFRpdGxlOiBzdHJpbmcgPSAvXig/Om1vZHVsZXzmqKFb57uE57WE5Z2XXSk/Oi9pLnRlc3QobW9kdWxlTmFtZSlcblx0XHRcdD8gbW9kdWxlTmFtZVxuXHRcdFx0OiBgSGVscDpMdWEjJHttb2R1bGVOYW1lfWA7XG5cdFx0YWRkTGluayhlbGVtZW50LCB0YXJnZXRUaXRsZSk7XG5cdH1cbn0pO1xuIiwgIi8qKlxuICogQHByZXNlcnZlXG4gKiBAYXV0aG9yIEpvaG4gR3J1YmVyXG4gKiBAY29weXJpZ2h0IDIwMDLigJMyMDIzIFRoZSBEYXJpbmcgRmlyZWJhbGwgQ29tcGFueSBMTEMuXG4gKiBAc2VlIHtAbGluayBodHRwczovL2RhcmluZ2ZpcmViYWxsLm5ldC8yMDEwLzA3L2ltcHJvdmVkX3JlZ2V4X2Zvcl9tYXRjaGluZ191cmxzfVxuICovXG5jb25zdCBSRUdFWF9VUkw6IFJlZ0V4cCA9XG5cdC9cXGIoKD86aHR0cHM/OlxcL1xcL3x3d3dcXGR7MCwzfVsuXXxbYS16MC05Li1dK1suXVthLXpdezIsNH1cXC8pKD86W15cXHMoKTw+XSt8XFwoKFteXFxzKCk8Pl0rfChcXChbXlxccygpPD5dK1xcKSkpKlxcKSkrKD86XFwoKFteXFxzKCk8Pl0rfChcXChbXlxccygpPD5dK1xcKSkpKlxcKXxbXlxcc2AhKClbXFxde307OidcIi4sPD4/wqvCu+KAnOKAneKAmOKAmV0pKS9pO1xuXG5leHBvcnQge1JFR0VYX1VSTH07XG4iLCAiaW1wb3J0IHtSRUdFWF9VUkx9IGZyb20gJy4vY29uc3RhbnQnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ2V4dC5nYWRnZXQuUmVhY3QnO1xuXG5jb25zdCBwcm9jZXNzQ29tbWVudCA9IChlbGVtZW50OiBFbGVtZW50KTogdm9pZCA9PiB7XG5cdGNvbnN0IHtmaXJzdENoaWxkfSA9IGVsZW1lbnQ7XG5cdGlmICghKGZpcnN0Q2hpbGQgaW5zdGFuY2VvZiBUZXh0KSkge1xuXHRcdHRocm93IG5ldyBUeXBlRXJyb3IoJ0V4cGVjdGVkIFRleHQgaW50ZXJmYWNlJyk7XG5cdH1cblxuXHRjb25zdCB7dGV4dENvbnRlbnR9ID0gZmlyc3RDaGlsZDtcblx0aWYgKCF0ZXh0Q29udGVudCkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGNvbnN0IHRlbXBsYXRlTWF0Y2g6IFJlZ0V4cEV4ZWNBcnJheSB8IG51bGwgPSAvKFxce1xceyg/OiNpbnZva2U6KT8pKFtefHt9W1xcXVxcbiNdKykoPz1cXHx8fX0pL2kuZXhlYyh0ZXh0Q29udGVudCk7XG5cdGNvbnN0IHdpa2lsaW5rTWF0Y2g6IFJlZ0V4cEV4ZWNBcnJheSB8IG51bGwgPSAvXFxbXFxbKFtefHt9W1xcXVxcbl0rKT8oPzpcXHwuKj8pP11dLy5leGVjKHRleHRDb250ZW50KTtcblx0Y29uc3QgdXJsTWF0Y2g6IFJlZ0V4cEV4ZWNBcnJheSB8IG51bGwgPSBSRUdFWF9VUkwuZXhlYyh0ZXh0Q29udGVudCk7XG5cdGlmICghKHRlbXBsYXRlTWF0Y2ggfHwgd2lraWxpbmtNYXRjaCB8fCB1cmxNYXRjaCkpIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRjb25zdCBsaW5rID0gKDxhIGNsYXNzTmFtZT1cImNvZGUtbGlua1wiIC8+KSBhcyBIVE1MQW5jaG9yRWxlbWVudDtcblxuXHRsZXQgbGlua1RleHQ6IHN0cmluZyA9ICcnO1xuXHRsZXQgc3RhcnQ6IG51bWJlciA9ICh3aWtpbGlua01hdGNoIHx8IHRlbXBsYXRlTWF0Y2ggfHwgdXJsTWF0Y2gpPy5pbmRleCA/PyAwO1xuXHRpZiAodXJsTWF0Y2gpIHtcblx0XHRjb25zdCBbdXJsXSA9IHVybE1hdGNoO1xuXHRcdGxpbmtUZXh0ID0gdXJsO1xuXHRcdGxpbmsuaHJlZiA9IHVybDtcblx0fSBlbHNlIHtcblx0XHRsZXQgZnVsbFBhZ2VOYW1lOiBzdHJpbmcgPSAnJztcblx0XHRpZiAod2lraWxpbmtNYXRjaCkge1xuXHRcdFx0W2xpbmtUZXh0XSA9IHdpa2lsaW5rTWF0Y2g7XG5cdFx0XHRmdWxsUGFnZU5hbWUgPSB3aWtpbGlua01hdGNoWzFdIGFzIHN0cmluZztcblx0XHR9IGVsc2UgaWYgKHRlbXBsYXRlTWF0Y2gpIHtcblx0XHRcdGNvbnN0IHByZWZpeDogc3RyaW5nID0gdGVtcGxhdGVNYXRjaFsxXSBhcyBzdHJpbmc7XG5cdFx0XHRjb25zdCBwYWdlTmFtZTogc3RyaW5nID0gdGVtcGxhdGVNYXRjaFsyXSBhcyBzdHJpbmc7XG5cdFx0XHRmdWxsUGFnZU5hbWUgPSBgJHtwcmVmaXggPT09ICd7eyNpbnZva2U6JyA/ICdNb2R1bGU6JyA6ICdUZW1wbGF0ZTonfSR7cGFnZU5hbWV9YDtcblx0XHRcdGxpbmtUZXh0ID0gcGFnZU5hbWU7XG5cdFx0XHRsaW5rLnRpdGxlID0gZnVsbFBhZ2VOYW1lO1xuXHRcdFx0c3RhcnQgKz0gcHJlZml4Lmxlbmd0aDtcblx0XHR9XG5cdFx0bGluay5ocmVmID0gbXcudXRpbC5nZXRVcmwoZnVsbFBhZ2VOYW1lKTtcblx0fVxuXG5cdGxpbmsuYXBwZW5kKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGxpbmtUZXh0KSk7XG5cdGZpcnN0Q2hpbGQuYmVmb3JlKGxpbmspO1xuXG5cdGNvbnN0IGFmdGVyTGluazogc3RyaW5nID0gdGV4dENvbnRlbnQuc2xpY2UoTWF0aC5tYXgoMCwgc3RhcnQgKyBsaW5rVGV4dC5sZW5ndGgpKTtcblx0Zmlyc3RDaGlsZC50ZXh0Q29udGVudCA9IGFmdGVyTGluaztcblxuXHRjb25zdCBiZWZvcmVMaW5rOiBzdHJpbmcgPSB0ZXh0Q29udGVudC5zbGljZSgwLCBNYXRoLm1heCgwLCBzdGFydCkpO1xuXHRlbGVtZW50Lmluc2VydEJlZm9yZShkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShiZWZvcmVMaW5rKSwgbGluayk7XG59O1xuXG5leHBvcnQge3Byb2Nlc3NDb21tZW50fTtcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsSUFBQUEsb0JBQWtCQyxRQUFBQyxRQUFBLGtCQUFBLEdBQUEsQ0FBQTtBQUVsQixJQUFNQyxVQUFVQSxDQUFDQyxTQUFrQkMsZ0JBQThCO0FBQ2hFLE1BQUksRUFBRUQsbUJBQW1CRSxVQUFVO0FBQ2xDLFVBQU0sSUFBSUMsVUFBVSw0QkFBNEI7RUFDakQ7QUFFQSxRQUFNO0lBQUNDO0VBQVUsSUFBSUo7QUFDckIsTUFBSSxFQUFFSSxzQkFBc0JDLE9BQU87QUFDbEMsVUFBTSxJQUFJRixVQUFVLHlCQUF5QjtFQUM5QztBQUVBSCxVQUFRTSxPQUFPVixrQ0FBQVcsUUFBQUMsY0FBQyxLQUFBO0lB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LENBQUNELGFBQWE7QUFDakI7TUFDRDtBQUVBRSwrQkFBQU4seUJBQXdCSSxZQUFZakcsZ0JBQUEsUUFBQTZGLDJCQUFBLFNBQUEsU0FBWkEsdUJBQXdCZjtBQUNoRCxVQUFJcUIsMEJBQTBCLE1BQU07QUFDbkM7TUFDRDtBQUVBWixpQ0FBMkJBLDJCQUEyQnhELE1BQU0sSUFBSW5DO0lBQ2pFO0VBQUEsU0FBQWlFLEtBQUE7QUFBQTJCLGVBQUExQixFQUFBRCxHQUFBO0VBQUEsVUFBQTtBQUFBMkIsZUFBQXpCLEVBQUE7RUFBQTtBQUlBLFdBQUF1QyxLQUFBLEdBQUFDLE9BQXNCLENBQUMsR0FBR2xDLHdCQUF3QixHQUFHa0IsMEJBQTBCLEdBQUFlLEtBQUFDLEtBQUF4RSxRQUFBdUUsTUFBRztBQUFBLFFBQUFFO0FBQWxGLFVBQVc1RyxVQUFBMkcsS0FBQUQsRUFBQTtBQUNWLFVBQU1QLHFCQUFBUyxzQkFBK0M1RyxRQUFRSSxnQkFBQSxRQUFBd0csd0JBQUEsU0FBQSxTQUFSQSxvQkFBb0IxQjtBQUN6RSxRQUFJLENBQUNpQixtQkFBbUI7QUFDdkI7SUFDRDtBQUVBLFVBQU1VLGFBQXFCVixrQkFBa0IzRCxNQUFNLEdBQUcsRUFBRTtBQUN4RCxVQUFNdkMsY0FBc0Isd0JBQXdCbUcsS0FBS1MsVUFBVSxJQUNoRUEsYUFBQSxZQUFBNUUsT0FDWTRFLFVBQVU7QUFDekI5RyxZQUFRQyxTQUFTQyxXQUFXO0VBQzdCO0FBQ0QsQ0FBQzsiLAogICJuYW1lcyI6IFsiaW1wb3J0X2V4dF9nYWRnZXQiLCAiX190b0VTTSIsICJyZXF1aXJlIiwgImFkZExpbmsiLCAiZWxlbWVudCIsICJ0YXJnZXRUaXRsZSIsICJFbGVtZW50IiwgIlR5cGVFcnJvciIsICJmaXJzdENoaWxkIiwgIlRleHQiLCAiYXBwZW5kIiwgImRlZmF1bHQiLCAiY3JlYXRlRWxlbWVudCIsICJocmVmIiwgIm13IiwgInV0aWwiLCAiZ2V0VXJsIiwgImltcG9ydF9leHRfZ2FkZ2V0MyIsICJSRUdFWF9VUkwiLCAiaW1wb3J0X2V4dF9nYWRnZXQyIiwgInByb2Nlc3NDb21tZW50IiwgIl9pbmRleCIsICJfcmVmIiwgInRleHRDb250ZW50IiwgInRlbXBsYXRlTWF0Y2giLCAiZXhlYyIsICJ3aWtpbGlua01hdGNoIiwgInVybE1hdGNoIiwgImxpbmsiLCAiY2xhc3NOYW1lIiwgImxpbmtUZXh0IiwgInN0YXJ0IiwgImluZGV4IiwgInVybCIsICJmdWxsUGFnZU5hbWUiLCAicHJlZml4IiwgInBhZ2VOYW1lIiwgImNvbmNhdCIsICJ0aXRsZSIsICJsZW5ndGgiLCAiZG9jdW1lbnQiLCAiY3JlYXRlVGV4dE5vZGUiLCAiYmVmb3JlIiwgImFmdGVyTGluayIsICJzbGljZSIsICJNYXRoIiwgIm1heCIsICJiZWZvcmVMaW5rIiwgImluc2VydEJlZm9yZSIsICJnZXRCb2R5IiwgInRoZW4iLCAiY29kZUxpbmtzIiwgIiRib2R5IiwgIl9pdGVyYXRvcjIiLCAiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIiLCAiZmluZCIsICJfc3RlcDIiLCAicyIsICJuIiwgImRvbmUiLCAiY29kZUJsb2NrIiwgInZhbHVlIiwgIl9pMiIsICJfYXJyMiIsICJjb21tZW50Q2xhc3MiLCAiX2l0ZXJhdG9yNSIsICJxdWVyeVNlbGVjdG9yQWxsIiwgIl9zdGVwNSIsICJjb21tZW50IiwgImVyciIsICJlIiwgImYiLCAiY2xhc3NlcyIsICJpZGVudGlmaWVyIiwgImZ1bmN0aW9uTmFtZSIsICJzaW5nbGVRdW90ZVN0cmluZyIsICJkb3VibGVRdW90ZVN0cmluZyIsICJtb2R1bGVOYW1lRWxlbWVudEFycmF5IiwgIl9pdGVyYXRvcjMiLCAiX3N0ZXAzIiwgIl9mdW5jdGlvbk5hbWVFbGVtZW50JCIsICJfbmV4dEVsZW1lbnQkZmlyc3RDaGkiLCAiX25leHRFbGVtZW50JGZpcnN0Q2hpMyIsICJfbmV4dEVsZW1lbnRGaXJzdFZhbHUiLCAiZnVuY3Rpb25OYW1lRWxlbWVudCIsICJ0ZXh0IiwgIm5vZGVWYWx1ZSIsICJuZXh0RWxlbWVudCIsICJuZXh0RWxlbWVudFNpYmxpbmciLCAibmV4dEVsZW1lbnRGaXJzdFZhbHVlIiwgImhhc1BhcmVudGhlc2lzIiwgIl9uZXh0RWxlbWVudCRmaXJzdENoaTIiLCAiY2xhc3NMaXN0IiwgImNvbnRhaW5zIiwgImVsZW1lbnRWYWx1ZSIsICJkYXRhTW9kdWxlTmFtZUVsZW1lbnRBcnJheSIsICJfaXRlcmF0b3I0IiwgIl9zdGVwNCIsICJfZWxlbWVudCRmaXJzdENoaWxkMiIsICJfcHJldkVsZW1lbnQkZmlyc3RDaGkiLCAiX3ByZXZFbGVtZW50JGZpcnN0Q2hpMyIsICJfcHJldkVsZW1lbnQkZmlyc3RDaGk0IiwgImluY2x1ZGVzIiwgImVsZW1lbnRGaXJzdFZhbHVlIiwgInRlc3QiLCAicHJldkVsZW1lbnQiLCAicHJldmlvdXNFbGVtZW50U2libGluZyIsICJwcmV2RWxlbWVudEZpcnN0VmFsdWUiLCAiX25leHRFbGVtZW50JGZpcnN0Q2hpNCIsICJfcHJldkVsZW1lbnQkZmlyc3RDaGkyIiwgIl9pIiwgIl9hcnIiLCAiX2VsZW1lbnQkZmlyc3RDaGlsZCIsICJtb2R1bGVOYW1lIl0KfQo= +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL0NvZGVMaW5rcy9tb2R1bGVzL2FkZExpbmsudHN4IiwgInNyYy9Db2RlTGlua3MvQ29kZUxpbmtzLnRzIiwgInNyYy9Db2RlTGlua3MvbW9kdWxlcy9jb25zdGFudC50cyIsICJzcmMvQ29kZUxpbmtzL21vZHVsZXMvcHJvY2Vzc0NvbW1lbnQudHN4Il0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQgUmVhY3QgZnJvbSAnZXh0LmdhZGdldC5KU1gnO1xuXG5jb25zdCBhZGRMaW5rID0gKGVsZW1lbnQ6IEVsZW1lbnQsIHRhcmdldFRpdGxlOiBzdHJpbmcpOiB2b2lkID0+IHtcblx0aWYgKCEoZWxlbWVudCBpbnN0YW5jZW9mIEVsZW1lbnQpKSB7XG5cdFx0dGhyb3cgbmV3IFR5cGVFcnJvcignRXhwZWN0ZWQgRWxlbWVudCBpbnRlcmZhY2UnKTtcblx0fVxuXG5cdGNvbnN0IHtmaXJzdENoaWxkfSA9IGVsZW1lbnQ7XG5cdGlmICghKGZpcnN0Q2hpbGQgaW5zdGFuY2VvZiBUZXh0KSkge1xuXHRcdHRocm93IG5ldyBUeXBlRXJyb3IoJ0V4cGVjdGVkIFRleHQgaW50ZXJmYWNlJyk7XG5cdH1cblxuXHRlbGVtZW50LmFwcGVuZCg8YSBocmVmPXttdy51dGlsLmdldFVybCh0YXJnZXRUaXRsZSl9PntmaXJzdENoaWxkfTwvYT4pO1xufTtcblxuZXhwb3J0IHthZGRMaW5rfTtcbiIsICJpbXBvcnQge2FkZExpbmt9IGZyb20gJy4vbW9kdWxlcy9hZGRMaW5rJztcbmltcG9ydCB7Z2V0Qm9keX0gZnJvbSAnZXh0LmdhZGdldC5VdGlsJztcbmltcG9ydCB7cHJvY2Vzc0NvbW1lbnR9IGZyb20gJy4vbW9kdWxlcy9wcm9jZXNzQ29tbWVudCc7XG5cbnZvaWQgZ2V0Qm9keSgpLnRoZW4oZnVuY3Rpb24gY29kZUxpbmtzKCRib2R5OiBKUXVlcnk8SFRNTEJvZHlFbGVtZW50Pik6IHZvaWQge1xuXHRmb3IgKGNvbnN0IGNvZGVCbG9jayBvZiAkYm9keS5maW5kKCcubXctaGlnaGxpZ2h0JykpIHtcblx0XHRmb3IgKGNvbnN0IGNvbW1lbnRDbGFzcyBvZiBbJ2MnLCAnYzEnLCAnY20nXSkge1xuXHRcdFx0Zm9yIChjb25zdCBjb21tZW50IG9mIGNvZGVCbG9jay5xdWVyeVNlbGVjdG9yQWxsKGAuJHtjb21tZW50Q2xhc3N9YCkpIHtcblx0XHRcdFx0cHJvY2Vzc0NvbW1lbnQoY29tbWVudCk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Ly8gTGluayBtb2R1bGUgbmFtZXMgYWZ0ZXIgYHJlcXVpcmVgIGFuZCBgbXcubG9hZERhdGFgLCBhbmQgdHJhY2tpbmcgdGVtcGxhdGVcblx0Ly8gbmFtZXMgYWZ0ZXIgYHJlcXVpcmUoXCJNb2R1bGU6ZGVidWdcIikudHJhY2tgLlxuXHRjb25zdCBjbGFzc2VzID0ge1xuXHRcdGlkZW50aWZpZXI6ICduJyxcblx0XHRmdW5jdGlvbk5hbWU6ICduYicsXG5cdFx0c2luZ2xlUXVvdGVTdHJpbmc6ICdzMScsXG5cdFx0ZG91YmxlUXVvdGVTdHJpbmc6ICdzMicsXG5cdH0gYXMgY29uc3Qgc2F0aXNmaWVzIFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG5cblx0Y29uc3QgbW9kdWxlTmFtZUVsZW1lbnRBcnJheTogRWxlbWVudFtdID0gW107XG5cdGZvciAoY29uc3QgZnVuY3Rpb25OYW1lRWxlbWVudCBvZiAkYm9keS5maW5kKGAuJHtjbGFzc2VzLmZ1bmN0aW9uTmFtZX1gKSkge1xuXHRcdGNvbnN0IHRleHQ6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQgPSBmdW5jdGlvbk5hbWVFbGVtZW50LmZpcnN0Q2hpbGQ/Lm5vZGVWYWx1ZTtcblx0XHRpZiAodGV4dCAhPT0gJ3JlcXVpcmUnKSB7XG5cdFx0XHRjb250aW51ZTtcblx0XHR9XG5cblx0XHRsZXQgbmV4dEVsZW1lbnQ6IEVsZW1lbnQgfCBudWxsID0gZnVuY3Rpb25OYW1lRWxlbWVudC5uZXh0RWxlbWVudFNpYmxpbmc7XG5cdFx0aWYgKCFuZXh0RWxlbWVudCkge1xuXHRcdFx0Y29udGludWU7XG5cdFx0fVxuXG5cdFx0bGV0IG5leHRFbGVtZW50Rmlyc3RWYWx1ZTogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCA9IG5leHRFbGVtZW50LmZpcnN0Q2hpbGQ/Lm5vZGVWYWx1ZTtcblx0XHRjb25zdCBoYXNQYXJlbnRoZXNpczogYm9vbGVhbiA9IG5leHRFbGVtZW50Rmlyc3RWYWx1ZSA9PT0gJygnO1xuXHRcdGlmIChoYXNQYXJlbnRoZXNpcykge1xuXHRcdFx0bmV4dEVsZW1lbnQgPSBuZXh0RWxlbWVudC5uZXh0RWxlbWVudFNpYmxpbmc7XG5cdFx0XHRpZiAoIW5leHRFbGVtZW50KSB7XG5cdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0fVxuXHRcdFx0bmV4dEVsZW1lbnRGaXJzdFZhbHVlID0gbmV4dEVsZW1lbnQuZmlyc3RDaGlsZD8ubm9kZVZhbHVlO1xuXHRcdH1cblxuXHRcdGNvbnN0IHtjbGFzc0xpc3R9ID0gbmV4dEVsZW1lbnQ7XG5cdFx0aWYgKCEoY2xhc3NMaXN0LmNvbnRhaW5zKGNsYXNzZXMuc2luZ2xlUXVvdGVTdHJpbmcpIHx8IGNsYXNzTGlzdC5jb250YWlucyhjbGFzc2VzLmRvdWJsZVF1b3RlU3RyaW5nKSkpIHtcblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblxuXHRcdGNvbnN0IGVsZW1lbnQ6IEVsZW1lbnQgPSBuZXh0RWxlbWVudDtcblx0XHRjb25zdCBlbGVtZW50VmFsdWU6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQgPSBuZXh0RWxlbWVudEZpcnN0VmFsdWU7XG5cdFx0aWYgKCFlbGVtZW50VmFsdWUpIHtcblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblxuXHRcdG5leHRFbGVtZW50ID0gbmV4dEVsZW1lbnQubmV4dEVsZW1lbnRTaWJsaW5nO1xuXHRcdGlmICghbmV4dEVsZW1lbnQpIHtcblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblxuXHRcdG5leHRFbGVtZW50Rmlyc3RWYWx1ZSA9IG5leHRFbGVtZW50LmZpcnN0Q2hpbGQ/Lm5vZGVWYWx1ZTtcblx0XHRpZiAoaGFzUGFyZW50aGVzaXMgJiYgbmV4dEVsZW1lbnRGaXJzdFZhbHVlPy5bMF0gIT09ICcpJykge1xuXHRcdFx0Y29udGludWU7XG5cdFx0fVxuXG5cdFx0bW9kdWxlTmFtZUVsZW1lbnRBcnJheVttb2R1bGVOYW1lRWxlbWVudEFycmF5Lmxlbmd0aF0gPSBlbGVtZW50O1xuXHR9XG5cblx0Y29uc3QgZGF0YU1vZHVsZU5hbWVFbGVtZW50QXJyYXk6IEVsZW1lbnRbXSA9IFtdO1xuXHRmb3IgKGNvbnN0IGVsZW1lbnQgb2YgJGJvZHkuZmluZChgLiR7Y2xhc3Nlcy5zaW5nbGVRdW90ZVN0cmluZ30sLiR7Y2xhc3Nlcy5kb3VibGVRdW90ZVN0cmluZ31gKSkge1xuXHRcdGlmIChtb2R1bGVOYW1lRWxlbWVudEFycmF5LmluY2x1ZGVzKGVsZW1lbnQpKSB7XG5cdFx0XHRjb250aW51ZTtcblx0XHR9XG5cblx0XHRjb25zdCBlbGVtZW50Rmlyc3RWYWx1ZTogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCA9IGVsZW1lbnQuZmlyc3RDaGlsZD8ubm9kZVZhbHVlO1xuXHRcdGlmICghZWxlbWVudEZpcnN0VmFsdWUgfHwgIS9eW1wiJ10oPzptb2R1bGV85qihW+e7hOe1hOWdl10pOi9pLnRlc3QoZWxlbWVudEZpcnN0VmFsdWUpKSB7XG5cdFx0XHRjb250aW51ZTtcblx0XHR9XG5cblx0XHRsZXQgcHJldkVsZW1lbnQ6IEVsZW1lbnQgfCBudWxsID0gZWxlbWVudC5wcmV2aW91c0VsZW1lbnRTaWJsaW5nO1xuXHRcdGlmICghcHJldkVsZW1lbnQpIHtcblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblxuXHRcdGxldCBwcmV2RWxlbWVudEZpcnN0VmFsdWU6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQgPSBwcmV2RWxlbWVudC5maXJzdENoaWxkPy5ub2RlVmFsdWU7XG5cdFx0aWYgKHByZXZFbGVtZW50Rmlyc3RWYWx1ZSA9PT0gJygnKSB7XG5cdFx0XHRjb25zdCBuZXh0RWxlbWVudDogRWxlbWVudCB8IG51bGwgPSBlbGVtZW50Lm5leHRFbGVtZW50U2libGluZztcblx0XHRcdGlmICghbmV4dEVsZW1lbnQpIHtcblx0XHRcdFx0Y29udGludWU7XG5cdFx0XHR9XG5cdFx0XHRjb25zdCBuZXh0RWxlbWVudEZpcnN0VmFsdWU6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQgPSBuZXh0RWxlbWVudC5maXJzdENoaWxkPy5ub2RlVmFsdWU7XG5cdFx0XHRpZiAobmV4dEVsZW1lbnRGaXJzdFZhbHVlPy5bMF0gIT09ICcpJykge1xuXHRcdFx0XHRjb250aW51ZTtcblx0XHRcdH1cblx0XHRcdHByZXZFbGVtZW50ID0gcHJldkVsZW1lbnQucHJldmlvdXNFbGVtZW50U2libGluZztcblx0XHRcdGlmICghcHJldkVsZW1lbnQpIHtcblx0XHRcdFx0Y29udGludWU7XG5cdFx0XHR9XG5cdFx0XHRwcmV2RWxlbWVudEZpcnN0VmFsdWUgPSBwcmV2RWxlbWVudC5maXJzdENoaWxkPy5ub2RlVmFsdWU7XG5cdFx0fVxuXHRcdGlmIChwcmV2RWxlbWVudEZpcnN0VmFsdWUgIT09ICdsb2FkRGF0YScpIHtcblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblxuXHRcdHByZXZFbGVtZW50ID0gcHJldkVsZW1lbnQucHJldmlvdXNFbGVtZW50U2libGluZztcblx0XHRpZiAoIXByZXZFbGVtZW50KSB7XG5cdFx0XHRjb250aW51ZTtcblx0XHR9XG5cblx0XHRwcmV2RWxlbWVudEZpcnN0VmFsdWUgPSBwcmV2RWxlbWVudC5maXJzdENoaWxkPy5ub2RlVmFsdWU7XG5cdFx0aWYgKHByZXZFbGVtZW50Rmlyc3RWYWx1ZSAhPT0gJy4nKSB7XG5cdFx0XHRjb250aW51ZTtcblx0XHR9XG5cblx0XHRwcmV2RWxlbWVudCA9IHByZXZFbGVtZW50LnByZXZpb3VzRWxlbWVudFNpYmxpbmc7XG5cdFx0aWYgKCFwcmV2RWxlbWVudCkge1xuXHRcdFx0Y29udGludWU7XG5cdFx0fVxuXG5cdFx0cHJldkVsZW1lbnRGaXJzdFZhbHVlID0gcHJldkVsZW1lbnQuZmlyc3RDaGlsZD8ubm9kZVZhbHVlO1xuXHRcdGlmIChwcmV2RWxlbWVudEZpcnN0VmFsdWUgIT09ICdtdycpIHtcblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblxuXHRcdGRhdGFNb2R1bGVOYW1lRWxlbWVudEFycmF5W2RhdGFNb2R1bGVOYW1lRWxlbWVudEFycmF5Lmxlbmd0aF0gPSBlbGVtZW50O1xuXHR9XG5cblx0Ly8gTGluayBtb2R1bGUgbmFtZXMgdG8gbW9kdWxlIHBhZ2VzLFxuXHQvLyBvciB0byB0aGUgc2VjdGlvbiBpbiB0aGUgU2NyaWJ1bnRvIG1hbnVhbC5cblx0Zm9yIChjb25zdCBlbGVtZW50IG9mIFsuLi5tb2R1bGVOYW1lRWxlbWVudEFycmF5LCAuLi5kYXRhTW9kdWxlTmFtZUVsZW1lbnRBcnJheV0pIHtcblx0XHRjb25zdCBlbGVtZW50Rmlyc3RWYWx1ZTogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCA9IGVsZW1lbnQuZmlyc3RDaGlsZD8ubm9kZVZhbHVlO1xuXHRcdGlmICghZWxlbWVudEZpcnN0VmFsdWUpIHtcblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblxuXHRcdGNvbnN0IG1vZHVsZU5hbWU6IHN0cmluZyA9IGVsZW1lbnRGaXJzdFZhbHVlLnNsaWNlKDEsIC0xKTtcblx0XHRjb25zdCB0YXJnZXRUaXRsZTogc3RyaW5nID0gL14oPzptb2R1bGV85qihW+e7hOe1hOWdl10pPzovaS50ZXN0KG1vZHVsZU5hbWUpXG5cdFx0XHQ/IG1vZHVsZU5hbWVcblx0XHRcdDogYEhlbHA6THVhIyR7bW9kdWxlTmFtZX1gO1xuXHRcdGFkZExpbmsoZWxlbWVudCwgdGFyZ2V0VGl0bGUpO1xuXHR9XG59KTtcbiIsICIvKipcbiAqIEBwcmVzZXJ2ZVxuICogQGF1dGhvciBKb2huIEdydWJlclxuICogQGNvcHlyaWdodCAyMDAy4oCTMjAyMyBUaGUgRGFyaW5nIEZpcmViYWxsIENvbXBhbnkgTExDLlxuICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9kYXJpbmdmaXJlYmFsbC5uZXQvMjAxMC8wNy9pbXByb3ZlZF9yZWdleF9mb3JfbWF0Y2hpbmdfdXJsc31cbiAqL1xuY29uc3QgUkVHRVhfVVJMOiBSZWdFeHAgPVxuXHQvXFxiKCg/Omh0dHBzPzpcXC9cXC98d3d3XFxkezAsM31bLl18W2EtejAtOS4tXStbLl1bYS16XXsyLDR9XFwvKSg/OlteXFxzKCk8Pl0rfFxcKChbXlxccygpPD5dK3woXFwoW15cXHMoKTw+XStcXCkpKSpcXCkpKyg/OlxcKChbXlxccygpPD5dK3woXFwoW15cXHMoKTw+XStcXCkpKSpcXCl8W15cXHNgISgpW1xcXXt9OzonXCIuLDw+P8KrwrvigJzigJ3igJjigJldKSkvaTtcblxuZXhwb3J0IHtSRUdFWF9VUkx9O1xuIiwgImltcG9ydCB7UkVHRVhfVVJMfSBmcm9tICcuL2NvbnN0YW50JztcbmltcG9ydCBSZWFjdCBmcm9tICdleHQuZ2FkZ2V0LkpTWCc7XG5cbmNvbnN0IHByb2Nlc3NDb21tZW50ID0gKGVsZW1lbnQ6IEVsZW1lbnQpOiB2b2lkID0+IHtcblx0Y29uc3Qge2ZpcnN0Q2hpbGR9ID0gZWxlbWVudDtcblx0aWYgKCEoZmlyc3RDaGlsZCBpbnN0YW5jZW9mIFRleHQpKSB7XG5cdFx0dGhyb3cgbmV3IFR5cGVFcnJvcignRXhwZWN0ZWQgVGV4dCBpbnRlcmZhY2UnKTtcblx0fVxuXG5cdGNvbnN0IHt0ZXh0Q29udGVudH0gPSBmaXJzdENoaWxkO1xuXHRpZiAoIXRleHRDb250ZW50KSB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0Y29uc3QgdGVtcGxhdGVNYXRjaDogUmVnRXhwRXhlY0FycmF5IHwgbnVsbCA9IC8oXFx7XFx7KD86I2ludm9rZTopPykoW158e31bXFxdXFxuI10rKSg/PVxcfHx9fSkvaS5leGVjKHRleHRDb250ZW50KTtcblx0Y29uc3Qgd2lraWxpbmtNYXRjaDogUmVnRXhwRXhlY0FycmF5IHwgbnVsbCA9IC9cXFtcXFsoW158e31bXFxdXFxuXSspPyg/OlxcfC4qPyk/XV0vLmV4ZWModGV4dENvbnRlbnQpO1xuXHRjb25zdCB1cmxNYXRjaDogUmVnRXhwRXhlY0FycmF5IHwgbnVsbCA9IFJFR0VYX1VSTC5leGVjKHRleHRDb250ZW50KTtcblx0aWYgKCEodGVtcGxhdGVNYXRjaCB8fCB3aWtpbGlua01hdGNoIHx8IHVybE1hdGNoKSkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGNvbnN0IGxpbmsgPSAoPGEgY2xhc3NOYW1lPVwiY29kZS1saW5rXCIgLz4pIGFzIEhUTUxBbmNob3JFbGVtZW50O1xuXG5cdGxldCBsaW5rVGV4dDogc3RyaW5nID0gJyc7XG5cdGxldCBzdGFydDogbnVtYmVyID0gKHdpa2lsaW5rTWF0Y2ggfHwgdGVtcGxhdGVNYXRjaCB8fCB1cmxNYXRjaCk/LmluZGV4ID8/IDA7XG5cdGlmICh1cmxNYXRjaCkge1xuXHRcdGNvbnN0IFt1cmxdID0gdXJsTWF0Y2g7XG5cdFx0bGlua1RleHQgPSB1cmw7XG5cdFx0bGluay5ocmVmID0gdXJsO1xuXHR9IGVsc2Uge1xuXHRcdGxldCBmdWxsUGFnZU5hbWU6IHN0cmluZyA9ICcnO1xuXHRcdGlmICh3aWtpbGlua01hdGNoKSB7XG5cdFx0XHRbbGlua1RleHRdID0gd2lraWxpbmtNYXRjaDtcblx0XHRcdGZ1bGxQYWdlTmFtZSA9IHdpa2lsaW5rTWF0Y2hbMV0gYXMgc3RyaW5nO1xuXHRcdH0gZWxzZSBpZiAodGVtcGxhdGVNYXRjaCkge1xuXHRcdFx0Y29uc3QgcHJlZml4OiBzdHJpbmcgPSB0ZW1wbGF0ZU1hdGNoWzFdIGFzIHN0cmluZztcblx0XHRcdGNvbnN0IHBhZ2VOYW1lOiBzdHJpbmcgPSB0ZW1wbGF0ZU1hdGNoWzJdIGFzIHN0cmluZztcblx0XHRcdGZ1bGxQYWdlTmFtZSA9IGAke3ByZWZpeCA9PT0gJ3t7I2ludm9rZTonID8gJ01vZHVsZTonIDogJ1RlbXBsYXRlOid9JHtwYWdlTmFtZX1gO1xuXHRcdFx0bGlua1RleHQgPSBwYWdlTmFtZTtcblx0XHRcdGxpbmsudGl0bGUgPSBmdWxsUGFnZU5hbWU7XG5cdFx0XHRzdGFydCArPSBwcmVmaXgubGVuZ3RoO1xuXHRcdH1cblx0XHRsaW5rLmhyZWYgPSBtdy51dGlsLmdldFVybChmdWxsUGFnZU5hbWUpO1xuXHR9XG5cblx0bGluay5hcHBlbmQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobGlua1RleHQpKTtcblx0Zmlyc3RDaGlsZC5iZWZvcmUobGluayk7XG5cblx0Y29uc3QgYWZ0ZXJMaW5rOiBzdHJpbmcgPSB0ZXh0Q29udGVudC5zbGljZShNYXRoLm1heCgwLCBzdGFydCArIGxpbmtUZXh0Lmxlbmd0aCkpO1xuXHRmaXJzdENoaWxkLnRleHRDb250ZW50ID0gYWZ0ZXJMaW5rO1xuXG5cdGNvbnN0IGJlZm9yZUxpbms6IHN0cmluZyA9IHRleHRDb250ZW50LnNsaWNlKDAsIE1hdGgubWF4KDAsIHN0YXJ0KSk7XG5cdGVsZW1lbnQuaW5zZXJ0QmVmb3JlKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGJlZm9yZUxpbmspLCBsaW5rKTtcbn07XG5cbmV4cG9ydCB7cHJvY2Vzc0NvbW1lbnR9O1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxvQkFBa0JDLFFBQUFDLFFBQUEsZ0JBQUEsR0FBQSxDQUFBO0FBRWxCLElBQU1DLFVBQVVBLENBQUNDLFNBQWtCQyxnQkFBOEI7QUFDaEUsTUFBSSxFQUFFRCxtQkFBbUJFLFVBQVU7QUFDbEMsVUFBTSxJQUFJQyxVQUFVLDRCQUE0QjtFQUNqRDtBQUVBLFFBQU07SUFBQ0M7RUFBVSxJQUFJSjtBQUNyQixNQUFJLEVBQUVJLHNCQUFzQkMsT0FBTztBQUNsQyxVQUFNLElBQUlGLFVBQVUseUJBQXlCO0VBQzlDO0FBRUFILFVBQVFNLE9BQU9WLGtDQUFBVyxRQUFBQyxjQUFDLEtBQUE7SUFBRUMs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Q0QsYUFBYTtBQUNqQjtNQUNEO0FBRUFFLCtCQUFBTix5QkFBd0JJLFlBQVlqRyxnQkFBQSxRQUFBNkYsMkJBQUEsU0FBQSxTQUFaQSx1QkFBd0JmO0FBQ2hELFVBQUlxQiwwQkFBMEIsTUFBTTtBQUNuQztNQUNEO0FBRUFaLGlDQUEyQkEsMkJBQTJCeEQsTUFBTSxJQUFJbkM7SUFDakU7RUFBQSxTQUFBaUUsS0FBQTtBQUFBMkIsZUFBQTFCLEVBQUFELEdBQUE7RUFBQSxVQUFBO0FBQUEyQixlQUFBekIsRUFBQTtFQUFBO0FBSUEsV0FBQXVDLEtBQUEsR0FBQUMsT0FBc0IsQ0FBQyxHQUFHbEMsd0JBQXdCLEdBQUdrQiwwQkFBMEIsR0FBQWUsS0FBQUMsS0FBQXhFLFFBQUF1RSxNQUFHO0FBQUEsUUFBQUU7QUFBbEYsVUFBVzVHLFVBQUEyRyxLQUFBRCxFQUFBO0FBQ1YsVUFBTVAscUJBQUFTLHNCQUErQzVHLFFBQVFJLGdCQUFBLFFBQUF3Ryx3QkFBQSxTQUFBLFNBQVJBLG9CQUFvQjFCO0FBQ3pFLFFBQUksQ0FBQ2lCLG1CQUFtQjtBQUN2QjtJQUNEO0FBRUEsVUFBTVUsYUFBcUJWLGtCQUFrQjNELE1BQU0sR0FBRyxFQUFFO0FBQ3hELFVBQU12QyxjQUFzQix3QkFBd0JtRyxLQUFLUyxVQUFVLElBQ2hFQSxhQUFBLFlBQUE1RSxPQUNZNEUsVUFBVTtBQUN6QjlHLFlBQVFDLFNBQVNDLFdBQVc7RUFDN0I7QUFDRCxDQUFDOyIsCiAgIm5hbWVzIjogWyJpbXBvcnRfZXh0X2dhZGdldCIsICJfX3RvRVNNIiwgInJlcXVpcmUiLCAiYWRkTGluayIsICJlbGVtZW50IiwgInRhcmdldFRpdGxlIiwgIkVsZW1lbnQiLCAiVHlwZUVycm9yIiwgImZpcnN0Q2hpbGQiLCAiVGV4dCIsICJhcHBlbmQiLCAiZGVmYXVsdCIsICJjcmVhdGVFbGVtZW50IiwgImhyZWYiLCAibXciLCAidXRpbCIsICJnZXRVcmwiLCAiaW1wb3J0X2V4dF9nYWRnZXQzIiwgIlJFR0VYX1VSTCIsICJpbXBvcnRfZXh0X2dhZGdldDIiLCAicHJvY2Vzc0NvbW1lbnQiLCAiX2luZGV4IiwgIl9yZWYiLCAidGV4dENvbnRlbnQiLCAidGVtcGxhdGVNYXRjaCIsICJleGVjIiwgIndpa2lsaW5rTWF0Y2giLCAidXJsTWF0Y2giLCAibGluayIsICJjbGFzc05hbWUiLCAibGlua1RleHQiLCAic3RhcnQiLCAiaW5kZXgiLCAidXJsIiwgImZ1bGxQYWdlTmFtZSIsICJwcmVmaXgiLCAicGFnZU5hbWUiLCAiY29uY2F0IiwgInRpdGxlIiwgImxlbmd0aCIsICJkb2N1bWVudCIsICJjcmVhdGVUZXh0Tm9kZSIsICJiZWZvcmUiLCAiYWZ0ZXJMaW5rIiwgInNsaWNlIiwgIk1hdGgiLCAibWF4IiwgImJlZm9yZUxpbmsiLCAiaW5zZXJ0QmVmb3JlIiwgImdldEJvZHkiLCAidGhlbiIsICJjb2RlTGlua3MiLCAiJGJvZHkiLCAiX2l0ZXJhdG9yMiIsICJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsICJmaW5kIiwgIl9zdGVwMiIsICJzIiwgIm4iLCAiZG9uZSIsICJjb2RlQmxvY2siLCAidmFsdWUiLCAiX2kyIiwgIl9hcnIyIiwgImNvbW1lbnRDbGFzcyIsICJfaXRlcmF0b3I1IiwgInF1ZXJ5U2VsZWN0b3JBbGwiLCAiX3N0ZXA1IiwgImNvbW1lbnQiLCAiZXJyIiwgImUiLCAiZiIsICJjbGFzc2VzIiwgImlkZW50aWZpZXIiLCAiZnVuY3Rpb25OYW1lIiwgInNpbmdsZVF1b3RlU3RyaW5nIiwgImRvdWJsZVF1b3RlU3RyaW5nIiwgIm1vZHVsZU5hbWVFbGVtZW50QXJyYXkiLCAiX2l0ZXJhdG9yMyIsICJfc3RlcDMiLCAiX2Z1bmN0aW9uTmFtZUVsZW1lbnQkIiwgIl9uZXh0RWxlbWVudCRmaXJzdENoaSIsICJfbmV4dEVsZW1lbnQkZmlyc3RDaGkzIiwgIl9uZXh0RWxlbWVudEZpcnN0VmFsdSIsICJmdW5jdGlvbk5hbWVFbGVtZW50IiwgInRleHQiLCAibm9kZVZhbHVlIiwgIm5leHRFbGVtZW50IiwgIm5leHRFbGVtZW50U2libGluZyIsICJuZXh0RWxlbWVudEZpcnN0VmFsdWUiLCAiaGFzUGFyZW50aGVzaXMiLCAiX25leHRFbGVtZW50JGZpcnN0Q2hpMiIsICJjbGFzc0xpc3QiLCAiY29udGFpbnMiLCAiZWxlbWVudFZhbHVlIiwgImRhdGFNb2R1bGVOYW1lRWxlbWVudEFycmF5IiwgIl9pdGVyYXRvcjQiLCAiX3N0ZXA0IiwgIl9lbGVtZW50JGZpcnN0Q2hpbGQyIiwgIl9wcmV2RWxlbWVudCRmaXJzdENoaSIsICJfcHJldkVsZW1lbnQkZmlyc3RDaGkzIiwgIl9wcmV2RWxlbWVudCRmaXJzdENoaTQiLCAiaW5jbHVkZXMiLCAiZWxlbWVudEZpcnN0VmFsdWUiLCAidGVzdCIsICJwcmV2RWxlbWVudCIsICJwcmV2aW91c0VsZW1lbnRTaWJsaW5nIiwgInByZXZFbGVtZW50Rmlyc3RWYWx1ZSIsICJfbmV4dEVsZW1lbnQkZmlyc3RDaGk0IiwgIl9wcmV2RWxlbWVudCRmaXJzdENoaTIiLCAiX2kiLCAiX2FyciIsICJfZWxlbWVudCRmaXJzdENoaWxkIiwgIm1vZHVsZU5hbWUiXQp9Cg== diff --git a/dist/Collapsible/Collapsible.css b/dist/Collapsible/Collapsible.css index 20421b50d..ecdd059d9 100644 --- a/dist/Collapsible/Collapsible.css +++ b/dist/Collapsible/Collapsible.css @@ -22,18 +22,18 @@ /* */ /* esbuild-css-modules-plugin-ns-css:src/Collapsible/modules/util/Collapsible.module.less */ -.Collapsible-module__toggler_kvMGjG { +.Collapsible-module__toggler_kvMGjG__490 { -webkit-user-select: none; user-select: none; font-weight: normal; } -.mw-content-ltr .Collapsible-module__toggler_kvMGjG { +.mw-content-ltr .Collapsible-module__toggler_kvMGjG__490 { float: right; text-align: right; margin-left: .5em; margin-right: 0; } -.mw-content-rtl .Collapsible-module__toggler_kvMGjG { +.mw-content-rtl .Collapsible-module__toggler_kvMGjG__490 { float: left; text-align: left; margin-left: 0; @@ -42,4 +42,4 @@ /* */ -/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiZXNidWlsZC1jc3MtbW9kdWxlcy1wbHVnaW4tbnMtY3NzOnNyYy9Db2xsYXBzaWJsZS9tb2R1bGVzL3V0aWwvQ29sbGFwc2libGUubW9kdWxlLmxlc3MiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qIDxzdGRpbj4gKi9cbi5Db2xsYXBzaWJsZS1tb2R1bGVfX3RvZ2dsZXJfa3ZNR2pHIHtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG4ubXctY29udGVudC1sdHIgLkNvbGxhcHNpYmxlLW1vZHVsZV9fdG9nZ2xlcl9rdk1Hakcge1xuICBmbG9hdDogcmlnaHQ7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBtYXJnaW4tbGVmdDogLjVlbTtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xufVxuLm13LWNvbnRlbnQtcnRsIC5Db2xsYXBzaWJsZS1tb2R1bGVfX3RvZ2dsZXJfa3ZNR2pHIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBtYXJnaW4tcmlnaHQ6IC41ZW07XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxDQUFDO0FBQ0MsdUJBQXFCO0FBQ3JCLGVBQWE7QUFDYixlQUFhO0FBQ2Y7QUFDQSxDQUFDLGVBQWUsQ0FMZjtBQU1DLFNBQU87QUFDUCxjQUFZO0FBQ1osZUFBYTtBQUNiLGdCQUFjO0FBQ2hCO0FBQ0EsQ0FBQyxlQUFlLENBWGY7QUFZQyxTQUFPO0FBQ1AsY0FBWTtBQUNaLGVBQWE7QUFDYixnQkFBYztBQUNoQjsiLAogICJuYW1lcyI6IFtdCn0K */ +/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiZXNidWlsZC1jc3MtbW9kdWxlcy1wbHVnaW4tbnMtY3NzOnNyYy9Db2xsYXBzaWJsZS9tb2R1bGVzL3V0aWwvQ29sbGFwc2libGUubW9kdWxlLmxlc3MiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qIDxzdGRpbj4gKi9cbi5Db2xsYXBzaWJsZS1tb2R1bGVfX3RvZ2dsZXJfa3ZNR2pHX180OTAge1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cbi5tdy1jb250ZW50LWx0ciAuQ29sbGFwc2libGUtbW9kdWxlX190b2dnbGVyX2t2TUdqR19fNDkwIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgbWFyZ2luLWxlZnQ6IC41ZW07XG4gIG1hcmdpbi1yaWdodDogMDtcbn1cbi5tdy1jb250ZW50LXJ0bCAuQ29sbGFwc2libGUtbW9kdWxlX190b2dnbGVyX2t2TUdqR19fNDkwIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBtYXJnaW4tcmlnaHQ6IC41ZW07XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxDQUFDO0FBQ0MsdUJBQXFCO0FBQ3JCLGVBQWE7QUFDYixlQUFhO0FBQ2Y7QUFDQSxDQUFDLGVBQWUsQ0FMZjtBQU1DLFNBQU87QUFDUCxjQUFZO0FBQ1osZUFBYTtBQUNiLGdCQUFjO0FBQ2hCO0FBQ0EsQ0FBQyxlQUFlLENBWGY7QUFZQyxTQUFPO0FBQ1AsY0FBWTtBQUNaLGVBQWE7QUFDYixnQkFBYztBQUNoQjsiLAogICJuYW1lcyI6IFtdCn0K */ diff --git a/dist/Collapsible/Collapsible.js b/dist/Collapsible/Collapsible.js index 4dae7ea9e..61efb57b9 100644 --- a/dist/Collapsible/Collapsible.js +++ b/dist/Collapsible/Collapsible.js @@ -266,9 +266,9 @@ var addToggler = ($collapsible, $toggler) => { } }; //! src/Collapsible/modules/util/generateTogglerElement.tsx -var import_ext_gadget2 = __toESM(require("ext.gadget.React"), 1); +var import_ext_gadget2 = __toESM(require("ext.gadget.JSX"), 1); //! src/Collapsible/modules/util/Collapsible.module.less -var toggler = "Collapsible-module__toggler_kvMGjG"; +var toggler = "Collapsible-module__toggler_kvMGjG__490"; //! src/Collapsible/modules/util/generateTogglerElement.tsx var generateTogglerElement = ($collapsible, hideText, showText) => { const $toggler = $(/* @__PURE__ */ import_ext_gadget2.default.createElement("span", { @@ -420,4 +420,4 @@ mw.hook("wikipage.content").add(($content) => { /* */ -//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL0NvbGxhcHNpYmxlL21vZHVsZXMvdXRpbC9nZW5lcmF0ZVRhcmdldEVsZW1lbnRzLnRzIiwgInNyYy9Db2xsYXBzaWJsZS9tb2R1bGVzL2FkZExpc3RlbmVyLnRzIiwgInNyYy9Db2xsYXBzaWJsZS9tb2R1bGVzL3V0aWwvaGlkZUVsZW1lbnQudHMiLCAic3JjL0NvbGxhcHNpYmxlL21vZHVsZXMvdXRpbC9zaG93RWxlbWVudC50cyIsICJzcmMvQ29sbGFwc2libGUvbW9kdWxlcy91dGlsL3RvZ2dsZUVsZW1lbnQudHMiLCAic3JjL0NvbGxhcHNpYmxlL21vZHVsZXMvYWRkVG9nZ2xlci50cyIsICJzcmMvQ29sbGFwc2libGUvbW9kdWxlcy91dGlsL2dlbmVyYXRlVG9nZ2xlckVsZW1lbnQudHN4IiwgInNyYy9Db2xsYXBzaWJsZS9tb2R1bGVzL3V0aWwvQ29sbGFwc2libGUubW9kdWxlLmxlc3MiLCAic3JjL0NvbGxhcHNpYmxlL21vZHVsZXMvaTE4bi50cyIsICJzcmMvQ29sbGFwc2libGUvbW9kdWxlcy9tYWtlQ29sbGFwc2libGUudHMiLCAic3JjL0NvbGxhcHNpYmxlL21vZHVsZXMvbmF2RnJhbWUudHMiLCAic3JjL0NvbGxhcHNpYmxlL0NvbGxhcHNpYmxlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJjb25zdCBnZW5lcmF0ZVRhcmdldEVsZW1lbnRzID0gKCRjb250ZW50OiBKUXVlcnkpOiBKUXVlcnkgPT4ge1xuXHRmb3IgKGNvbnN0IGVsZW1lbnQgb2YgJGNvbnRlbnQuZmluZChcblx0XHQnLnBhcmVudC1jb2xsYXBzaWJsZSwgLnBhcmVudC1jb2xsYXBzaWJsZS11c2luZy1zbGlkZSwgLnBhcmVudC1jb2xsYXBzaWJsZS1uZXh0J1xuXHQpKSB7XG5cdFx0Y29uc3QgJHBhcmVudDogSlF1ZXJ5ID0gJChlbGVtZW50KS5wYXJlbnQoKTtcblx0XHRmb3IgKGNvbnN0IGNsYXNzTmFtZSBvZiBlbGVtZW50LmNsYXNzTGlzdCkge1xuXHRcdFx0aWYgKGNsYXNzTmFtZS5zbGljZSgwLCAxOCkgPT09ICdwYXJlbnQtY29sbGFwc2libGUnKSB7XG5cdFx0XHRcdC8vIFRoZSBmb2xsb3dpbmcgY2xhc3NlcyBhcmUgdXNlZCBoZXJlOlxuXHRcdFx0XHQvLyAqIGNvbGxhcHNpYmxlXG5cdFx0XHRcdC8vICogY29sbGFwc2libGUtdXNpbmctc2xpZGVcblx0XHRcdFx0Ly8gKiBjb2xsYXBzaWJsZS1uZXh0XG5cdFx0XHRcdCRwYXJlbnQuYWRkQ2xhc3MoY2xhc3NOYW1lLnJlcGxhY2UoL15wYXJlbnQtLywgJycpKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQkY29udGVudC5maW5kKCcuY29sbGFwc2libGUtdXNpbmctc2xpZGUsIC5jb2xsYXBzaWJsZS1uZXh0JykuYWRkQ2xhc3MoJ2NvbGxhcHNpYmxlJyk7XG5cblx0Y29uc3QgJGNvbGxhcHNpYmxlczogSlF1ZXJ5ID0gJGNvbnRlbnQuZmluZCgnLmNvbGxhcHNpYmxlJyk7XG5cblx0cmV0dXJuICRjb2xsYXBzaWJsZXM7XG59O1xuXG5leHBvcnQge2dlbmVyYXRlVGFyZ2V0RWxlbWVudHN9O1xuIiwgImltcG9ydCB7Y2hlY2tBMTF5Q29uZmlybUtleX0gZnJvbSAnZXh0LmdhZGdldC5VdGlsJztcbmltcG9ydCB7dG9nZ2xlRWxlbWVudH0gZnJvbSAnLi91dGlsL3RvZ2dsZUVsZW1lbnQnO1xuXG5jb25zdCBhZGRMaXN0ZW5lciA9ICgkY29sbGFwc2libGU6IEpRdWVyeSwgJHRvZ2dsZXJMaW5rOiBKUXVlcnksIGhpZGVUZXh0OiBzdHJpbmcsIHNob3dUZXh0OiBzdHJpbmcpOiB2b2lkID0+IHtcblx0Y29uc3QgZXZlbnRMaXN0ZW5lciA9IChldmVudDogSlF1ZXJ5LkNsaWNrRXZlbnQgfCBKUXVlcnkuS2V5RG93bkV2ZW50KTogdm9pZCA9PiB7XG5cdFx0aWYgKCFjaGVja0ExMXlDb25maXJtS2V5KGV2ZW50KSkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cblx0XHR0b2dnbGVFbGVtZW50KCRjb2xsYXBzaWJsZSk7XG5cblx0XHRpZiAoJGNvbGxhcHNpYmxlLmhhc0NsYXNzKCdjb2xsYXBzZWQnKSkge1xuXHRcdFx0JHRvZ2dsZXJMaW5rLnRleHQoc2hvd1RleHQpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHQkdG9nZ2xlckxpbmsudGV4dChoaWRlVGV4dCk7XG5cdFx0fVxuXHR9O1xuXG5cdCR0b2dnbGVyTGluay5vbignY2xpY2snLCBldmVudExpc3RlbmVyKTtcblx0JHRvZ2dsZXJMaW5rLm9uKCdrZXlkb3duJywgZXZlbnRMaXN0ZW5lcik7XG59O1xuXG5leHBvcnQge2FkZExpc3RlbmVyfTtcbiIsICIvLyDpmpDol4/mn5DkuKrlj6/mipjlj6DnmoTlhYPntKDjgIJcbmNvbnN0IGhpZGVFbGVtZW50ID0gKCRjb2xsYXBzaWJsZTogSlF1ZXJ5LCB0aW1lOiBudW1iZXIpOiB2b2lkID0+IHtcblx0Y29uc3QgdXNlU2xpZGU6IGJvb2xlYW4gPSAkY29sbGFwc2libGUuaGFzQ2xhc3MoJ2NvbGxhcHNpYmxlLXVzaW5nLXNsaWRlJyk7XG5cdGlmICgkY29sbGFwc2libGUuaGFzQ2xhc3MoJ2NvbGxhcHNpYmxlLW5leHQnKSkge1xuXHRcdGNvbnN0ICRlbGVtZW50OiBKUXVlcnkgPSAkY29sbGFwc2libGUubmV4dCgpO1xuXG5cdFx0aWYgKHVzZVNsaWRlKSB7XG5cdFx0XHQkZWxlbWVudC5zbGlkZVVwKHRpbWUpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHQkZWxlbWVudC5mYWRlT3V0KHRpbWUpO1xuXHRcdH1cblx0fSBlbHNlIHtcblx0XHRjb25zdCAkZWxlbWVudHM6IEpRdWVyeSA9ICRjb2xsYXBzaWJsZS5pcygndGFibGUnKVxuXHRcdFx0PyAkY29sbGFwc2libGUuY2hpbGRyZW4oKS5jaGlsZHJlbigndHInKVxuXHRcdFx0OiAoJGNvbGxhcHNpYmxlLmNvbnRlbnRzKCkgYXMgSlF1ZXJ5KTtcblxuXHRcdGZvciAoY29uc3QgZWxlbWVudCBvZiAkZWxlbWVudHMpIHtcblx0XHRcdGNvbnN0ICRlbGVtZW50OiBKUXVlcnkgPSAkKGVsZW1lbnQpO1xuXHRcdFx0aWYgKCRlbGVtZW50Lmhhc0NsYXNzKCdjb2xsYXBzaWJsZS1jYXNjYWRlJykpIHtcblx0XHRcdFx0aGlkZUVsZW1lbnQoJGVsZW1lbnQsIHRpbWUpO1xuXHRcdFx0fSBlbHNlIGlmICghJGVsZW1lbnQuaGFzQ2xhc3MoJ2NvbGxhcHNpYmxlLWFsd2F5cy1zaG93JykpIHtcblx0XHRcdFx0aWYgKHVzZVNsaWRlKSB7XG5cdFx0XHRcdFx0JGVsZW1lbnQuc2xpZGVVcCh0aW1lKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHQkZWxlbWVudC5mYWRlT3V0KHRpbWUpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59O1xuXG5leHBvcnQge2hpZGVFbGVtZW50fTtcbiIsICIvLyDmmL7npLrmn5DkuKrlj6/mipjlj6DnmoTlhYPntKDjgIJcbmNvbnN0IHNob3dFbGVtZW50ID0gKCRjb2xsYXBzaWJsZTogSlF1ZXJ5LCB0aW1lOiBudW1iZXIpOiB2b2lkID0+IHtcblx0Y29uc3QgdXNlU2xpZGU6IGJvb2xlYW4gPSAkY29sbGFwc2libGUuaGFzQ2xhc3MoJ2NvbGxhcHNpYmxlLXVzaW5nLXNsaWRlJyk7XG5cdGlmICgkY29sbGFwc2libGUuaGFzQ2xhc3MoJ2NvbGxhcHNpYmxlLW5leHQnKSkge1xuXHRcdGNvbnN0ICRlbGVtZW50OiBKUXVlcnkgPSAkY29sbGFwc2libGUubmV4dCgpO1xuXG5cdFx0aWYgKHVzZVNsaWRlKSB7XG5cdFx0XHQkZWxlbWVudC5zbGlkZURvd24odGltZSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdCRlbGVtZW50LmZhZGVJbih0aW1lKTtcblx0XHR9XG5cdH0gZWxzZSB7XG5cdFx0Y29uc3QgJGVsZW1lbnRzOiBKUXVlcnkgPSAkY29sbGFwc2libGUuaXMoJ3RhYmxlJylcblx0XHRcdD8gJGNvbGxhcHNpYmxlLmNoaWxkcmVuKCkuY2hpbGRyZW4oJ3RyJylcblx0XHRcdDogKCRjb2xsYXBzaWJsZS5jb250ZW50cygpIGFzIEpRdWVyeSk7XG5cblx0XHRmb3IgKGNvbnN0IGVsZW1lbnQgb2YgJGVsZW1lbnRzKSB7XG5cdFx0XHRjb25zdCAkZWxlbWVudDogSlF1ZXJ5ID0gJChlbGVtZW50KTtcblx0XHRcdGlmICgkZWxlbWVudC5oYXNDbGFzcygnY29sbGFwc2libGUtY2FzY2FkZScpKSB7XG5cdFx0XHRcdHNob3dFbGVtZW50KCRlbGVtZW50LCB0aW1lKTtcblx0XHRcdH0gZWxzZSBpZiAoISRlbGVtZW50Lmhhc0NsYXNzKCdjb2xsYXBzaWJsZS1hbHdheXMtc2hvdycpKSB7XG5cdFx0XHRcdGlmICh1c2VTbGlkZSkge1xuXHRcdFx0XHRcdCRlbGVtZW50LnNsaWRlRG93bih0aW1lKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHQkZWxlbWVudC5mYWRlSW4odGltZSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cbn07XG5cbmV4cG9ydCB7c2hvd0VsZW1lbnR9O1xuIiwgImltcG9ydCB7aGlkZUVsZW1lbnR9IGZyb20gJy4vaGlkZUVsZW1lbnQnO1xuaW1wb3J0IHtzaG93RWxlbWVudH0gZnJvbSAnLi9zaG93RWxlbWVudCc7XG5cbmNvbnN0IHRvZ2dsZUVsZW1lbnQgPSAoJGNvbGxhcHNpYmxlOiBKUXVlcnkpOiB2b2lkID0+IHtcblx0Y29uc3QgY29sbGFwc2VkOiBib29sZWFuID0gJGNvbGxhcHNpYmxlLmhhc0NsYXNzKCdjb2xsYXBzZWQnKTtcblx0Y29uc3QgZHVyYXRpb246IG51bWJlciA9IE51bWJlci5wYXJzZUludCgkY29sbGFwc2libGUuZGF0YSgnY29sbGFwc2UtZHVyYXRpb24nKSBhcyBzdHJpbmcsIDEwKSB8fCAyMDA7XG5cblx0aWYgKGNvbGxhcHNlZCkge1xuXHRcdHNob3dFbGVtZW50KCRjb2xsYXBzaWJsZSwgZHVyYXRpb24pO1xuXHRcdCRjb2xsYXBzaWJsZS5yZW1vdmVDbGFzcygnY29sbGFwc2VkJyk7XG5cdH0gZWxzZSB7XG5cdFx0aGlkZUVsZW1lbnQoJGNvbGxhcHNpYmxlLCBkdXJhdGlvbik7XG5cdFx0JGNvbGxhcHNpYmxlLmFkZENsYXNzKCdjb2xsYXBzZWQnKTtcblx0fVxufTtcblxuZXhwb3J0IHt0b2dnbGVFbGVtZW50fTtcbiIsICJjb25zdCBhZGRUb2dnbGVyID0gKCRjb2xsYXBzaWJsZTogSlF1ZXJ5LCAkdG9nZ2xlcjogSlF1ZXJ5KTogdm9pZCA9PiB7XG5cdGNvbnN0ICRhcHBlbmRIZXJlOiBKUXVlcnkgPSAkY29sbGFwc2libGVcblx0XHQuZmluZCgnLmNvbGxhcHNpYmxlLXRvZ2dsZS1hcHBlbmQtaGVyZScpXG5cdFx0Lm5vdCgnLmNvbGxhcHNpYmxlLXRvZ2dsZS1hcHBlbmRlZCcpO1xuXG5cdGlmICgkY29sbGFwc2libGUuaGFzQ2xhc3MoJ2NvbGxhcHNpYmxlLW5leHQnKSkge1xuXHRcdC8vIOiLpeaciSBjb2xsYXBzaWJsZS1uZXh0IOexu++8jOmCo+S5iOiiq+aKmOWPoOeahOWFg+e0oOS4jeWcqOivpeWFg+e0oOWGhe+8jOatpOaXtuebtOaOpeWwhuaKmOWPoOaMiemSrua3u+WKoOWcqOacq+WwvuOAglxuXHRcdCRjb2xsYXBzaWJsZS5hcHBlbmQoJHRvZ2dsZXIpO1xuXHR9IGVsc2UgaWYgKCRhcHBlbmRIZXJlLmxlbmd0aCkge1xuXHRcdC8vIOW4puaciSBjb2xsYXBzaWJsZS10b2dnbGUtYXBwZW5kLWhlcmUg57G755qE5YWD57Sg77yM6Iul5a2Y5Zyo77yM5YiZ5peg6K665Y+v5oqY5Y+g5YWD57Sg5piv5LuA5LmI77yM5YiZ5by65Yi25bCG5oqY5Y+g5oyJ6ZKu5re75Yqg6Iez6K+l5YWD57Sg5Lit44CCXG5cdFx0JGFwcGVuZEhlcmUuYXBwZW5kKCR0b2dnbGVyKTtcblx0XHQkYXBwZW5kSGVyZS5hZGRDbGFzcygnY29sbGFwc2libGUtdG9nZ2xlLWFwcGVuZGVkJyk7XG5cdFx0JGFwcGVuZEhlcmUucGFyZW50c1VudGlsKCRjb2xsYXBzaWJsZSkuYWRkQ2xhc3MoJ2NvbGxhcHNpYmxlLWFsd2F5cy1zaG93Jyk7XG5cdH0gZWxzZSBpZiAoJGNvbGxhcHNpYmxlLmhhc0NsYXNzKCduYXZib3gnKSkge1xuXHRcdC8vIG5hdmJveCDlhYPntKDnmoTmipjlj6DmjInpkq7mt7vliqDoh7MgbmF2Ym94LXRpdGxlIOS4re+8jOS4lOivpSBuYXZib3gtdGl0bGUg5Lya6YG/5YWN6KKr5oqY5Y+g5b2x5ZON5Yiw44CCXG5cdFx0JGNvbGxhcHNpYmxlLmNoaWxkcmVuKCcubmF2Ym94LXRpdGxlJykuZmlyc3QoKS5hZGRDbGFzcygnY29sbGFwc2libGUtYWx3YXlzLXNob3cnKS5hcHBlbmQoJHRvZ2dsZXIpO1xuXHR9IGVsc2UgaWYgKCRjb2xsYXBzaWJsZS5oYXNDbGFzcygnTmF2RnJhbWUnKSkge1xuXHRcdC8vIE5hdkZyYW1lIOWFg+e0oOeahOaKmOWPoOaMiemSrua3u+WKoOiHs+WFtuWtkOWFg+e0oCBOYXZIZWFkIOS4re+8jOS4lOivpSBOYXZIZWFkIOS8mumBv+WFjeiiq+aKmOWPoOW9seWTjeWIsOOAglxuXHRcdCRjb2xsYXBzaWJsZS5jaGlsZHJlbignLk5hdkhlYWQnKS5maXJzdCgpLmFkZENsYXNzKCdjb2xsYXBzaWJsZS1hbHdheXMtc2hvdycpLmFwcGVuZCgkdG9nZ2xlcik7XG5cdH0gZWxzZSBpZiAoJGNvbGxhcHNpYmxlLmlzKCd0YWJsZScpKSB7XG5cdFx0Ly8g5a+55LqOIHRhYmxlIOWvueixoe+8jOWwneivlea3u+WKoOWIsCBjYXB0aW9uIOS4re+8jOiLpSBjYXB0aW9uIOS4jeWtmOWcqO+8jOWImea3u+WKoOWIsOesrOS4gOihjOeahOacgOWQjuS4gOWIl++8jOW5tuWwhuesrOS4gOihjOiuvuS4uuWni+e7iOaYvuekuuOAglxuXHRcdGNvbnN0ICRjYXB0aW9uOiBKUXVlcnkgPSAkY29sbGFwc2libGUuY2hpbGRyZW4oJ2NhcHRpb24nKTtcblx0XHRpZiAoJGNhcHRpb24ubGVuZ3RoKSB7XG5cdFx0XHQvLyDmnIljYXB0aW9u55qE5oOF5Ya1XG5cdFx0XHQkY2FwdGlvbi5maXJzdCgpLmFwcGVuZCgkdG9nZ2xlcik7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGNvbnN0ICR0cm93czogSlF1ZXJ5PEhUTUxUYWJsZVJvd0VsZW1lbnQ+ID0gJGNvbGxhcHNpYmxlLmNoaWxkcmVuKCkuY2hpbGRyZW4oJ3RyJyk7XG5cdFx0XHQkdHJvd3MuZmlyc3QoKS5hZGRDbGFzcygnY29sbGFwc2libGUtYWx3YXlzLXNob3cnKS5jaGlsZHJlbigpLmxhc3QoKS5hcHBlbmQoJHRvZ2dsZXIpO1xuXHRcdH1cblx0fSBlbHNlIHtcblx0XHQvLyDlsJ3or5Xmn6Xmib7luKbmnIkgY29sbGFwc2libGUtYWx3YXlzLXNob3cg57G755qE5a2Q5YWD57Sg77yM6Iul5a2Y5Zyo5YiZ5bCG5oqY5Y+g5oyJ6ZKu5re75Yqg6Iez5YW25Lit44CCXG5cdFx0Ly8g5ZCm5YiZ77yM5re75Yqg6Iez5pW05Liq5Y+v5oqY5Y+g5YWD57Sg55qE5pyA5YmN6Z2i44CCXG5cdFx0Y29uc3QgJHRvVG9nZ2xlOiBKUXVlcnkgPSAkY29sbGFwc2libGUuY2hpbGRyZW4oJy5jb2xsYXBzaWJsZS1hbHdheXMtc2hvdycpO1xuXHRcdGlmICgkdG9Ub2dnbGUubGVuZ3RoKSB7XG5cdFx0XHQkdG9Ub2dnbGUuZmlyc3QoKS5hcHBlbmQoJHRvZ2dsZXIpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHQkY29sbGFwc2libGUucHJlcGVuZCgkdG9nZ2xlcik7XG5cdFx0XHQkdG9nZ2xlci5hZGRDbGFzcygnY29sbGFwc2libGUtYWx3YXlzLXNob3cnKTtcblx0XHR9XG5cdH1cbn07XG5cbmV4cG9ydCB7YWRkVG9nZ2xlcn07XG4iLCAiaW1wb3J0IFJlYWN0IGZyb20gJ2V4dC5nYWRnZXQuUmVhY3QnO1xuaW1wb3J0IHt0b2dnbGVyfSBmcm9tICcuL0NvbGxhcHNpYmxlLm1vZHVsZS5sZXNzJztcblxuY29uc3QgZ2VuZXJhdGVUb2dnbGVyRWxlbWVudCA9ICgkY29sbGFwc2libGU6IEpRdWVyeSwgaGlkZVRleHQ6IHN0cmluZywgc2hvd1RleHQ6IHN0cmluZyk6IEpRdWVyeSA9PiB7XG5cdGNvbnN0ICR0b2dnbGVyID0gJChcblx0XHQ8c3BhbiBjbGFzc05hbWU9e1t0b2dnbGVyLCAnbm9wcmludCddfT5cblx0XHRcdHsnWyd9XG5cdFx0XHQ8YSByb2xlPVwiYnV0dG9uXCIgdGFiSW5kZXg9ezB9PlxuXHRcdFx0XHR7JGNvbGxhcHNpYmxlLmhhc0NsYXNzKCdjb2xsYXBzZWQnKSA/IHNob3dUZXh0IDogaGlkZVRleHR9XG5cdFx0XHQ8L2E+XG5cdFx0XHR7J10nfVxuXHRcdDwvc3Bhbj5cblx0KSBhcyBKUXVlcnk7XG5cblx0cmV0dXJuICR0b2dnbGVyO1xufTtcblxuZXhwb3J0IHtnZW5lcmF0ZVRvZ2dsZXJFbGVtZW50fTtcbiIsICJpbXBvcnQgXCJlc2J1aWxkLWNzcy1tb2R1bGVzLXBsdWdpbi1ucy1jc3M6c3JjL0NvbGxhcHNpYmxlL21vZHVsZXMvdXRpbC9Db2xsYXBzaWJsZS5tb2R1bGUubGVzc1wiO1xuZXhwb3J0IGNvbnN0IHRvZ2dsZXIgPSBcIkNvbGxhcHNpYmxlLW1vZHVsZV9fdG9nZ2xlcl9rdk1HakdcIjtcblxuZXhwb3J0IGRlZmF1bHQge1xuICBcInRvZ2dsZXJcIjogdG9nZ2xlclxufTtcbiAgICAgICIsICJpbXBvcnQge2xvY2FsaXplfSBmcm9tICdleHQuZ2FkZ2V0LmkxOG4nO1xuXG5jb25zdCBnZXRJMThuTWVzc2FnZXMgPSAoKSA9PiB7XG5cdHJldHVybiB7XG5cdFx0Q29sbGFwc2U6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnY29sbGFwc2UnLFxuXHRcdFx0amE6ICfmipjjgornlbPjgb8nLFxuXHRcdFx0J3poLWhhbnMnOiAn5oqY5Y+gJyxcblx0XHRcdCd6aC1oYW50JzogJ+aKmOeWiicsXG5cdFx0fSksXG5cdFx0RXhwYW5kOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ2V4cGFuZCcsXG5cdFx0XHRqYTogJ+WxlemWiycsXG5cdFx0XHQnemgtaGFucyc6ICflsZXlvIAnLFxuXHRcdFx0J3poLWhhbnQnOiAn5bGV6ZaLJyxcblx0XHR9KSxcblx0fTtcbn07XG5cbmNvbnN0IGkxOG5NZXNzYWdlcyA9IGdldEkxOG5NZXNzYWdlcygpO1xuXG5jb25zdCBnZXRNZXNzYWdlOiBHZXRNZXNzYWdlczx0eXBlb2YgaTE4bk1lc3NhZ2VzPiA9IChrZXkpID0+IHtcblx0cmV0dXJuIGkxOG5NZXNzYWdlc1trZXldIHx8IGtleTtcbn07XG5cbmV4cG9ydCB7Z2V0TWVzc2FnZX07XG4iLCAiaW1wb3J0IHthZGRMaXN0ZW5lcn0gZnJvbSAnLi9hZGRMaXN0ZW5lcic7XG5pbXBvcnQge2FkZFRvZ2dsZXJ9IGZyb20gJy4vYWRkVG9nZ2xlcic7XG5pbXBvcnQge2dlbmVyYXRlVG9nZ2xlckVsZW1lbnR9IGZyb20gJy4vdXRpbC9nZW5lcmF0ZVRvZ2dsZXJFbGVtZW50JztcbmltcG9ydCB7Z2V0TWVzc2FnZX0gZnJvbSAnLi9pMThuJztcbmltcG9ydCB7aGlkZUVsZW1lbnR9IGZyb20gJy4vdXRpbC9oaWRlRWxlbWVudCc7XG5cbmNvbnN0IG1ha2VDb2xsYXBzaWJsZSA9ICgkY29sbGFwc2libGVzOiBKUXVlcnkpOiB2b2lkID0+IHtcblx0Zm9yIChjb25zdCBlbGVtZW50IG9mICRjb2xsYXBzaWJsZXMpIHtcblx0XHRjb25zdCAkY29sbGFwc2libGU6IEpRdWVyeSA9ICQoZWxlbWVudCk7XG5cdFx0aWYgKCRjb2xsYXBzaWJsZS5kYXRhKCdtYWRlLWNvbGxhcHNpYmxlJykpIHtcblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblxuXHRcdGNvbnN0IGhpZGVUZXh0OiBzdHJpbmcgPSAoJGNvbGxhcHNpYmxlLmRhdGEoJ2NvbGxhcHNldGV4dCcpIGFzIHN0cmluZykgfHwgZ2V0TWVzc2FnZSgnQ29sbGFwc2UnKTtcblx0XHRjb25zdCBzaG93VGV4dDogc3RyaW5nID0gKCRjb2xsYXBzaWJsZS5kYXRhKCdleHBhbmR0ZXh0JykgYXMgc3RyaW5nKSB8fCBnZXRNZXNzYWdlKCdFeHBhbmQnKTtcblxuXHRcdGNvbnN0ICR0b2dnbGVyOiBKUXVlcnkgPSBnZW5lcmF0ZVRvZ2dsZXJFbGVtZW50KCRjb2xsYXBzaWJsZSwgaGlkZVRleHQsIHNob3dUZXh0KTtcblx0XHRjb25zdCAkdG9nZ2xlckxpbms6IEpRdWVyeSA9ICR0b2dnbGVyLmZpbmQoJ2EnKTtcblxuXHRcdGFkZFRvZ2dsZXIoJGNvbGxhcHNpYmxlLCAkdG9nZ2xlcik7XG5cblx0XHQvLyDliJ3lp4vljJbpmpDol4/miYDmnInlhYPntKDvvIzor6Xov4fnqIvmsqHmnInliqjnlLvjgIJcblx0XHRpZiAoJGNvbGxhcHNpYmxlLmhhc0NsYXNzKCdjb2xsYXBzZWQnKSkge1xuXHRcdFx0aGlkZUVsZW1lbnQoJGNvbGxhcHNpYmxlLCAwKTtcblx0XHR9XG5cblx0XHRhZGRMaXN0ZW5lcigkY29sbGFwc2libGUsICR0b2dnbGVyTGluaywgaGlkZVRleHQsIHNob3dUZXh0KTtcblxuXHRcdCRjb2xsYXBzaWJsZS5kYXRhKCdtYWRlLWNvbGxhcHNpYmxlJywgdHJ1ZSk7XG5cdH1cbn07XG5cbmV4cG9ydCB7bWFrZUNvbGxhcHNpYmxlfTtcbiIsICJjb25zdCBuYXZGcmFtZSA9ICgkY29udGVudDogSlF1ZXJ5KTogdm9pZCA9PiB7XG5cdC8vIOWIoOmZpCBOYXZGcmFtZSDlhYPntKDoh6rluKbnmoTmipjlj6DjgIJcblx0Zm9yIChjb25zdCBlbGVtZW50IG9mICRjb250ZW50LmZpbmQ8SFRNTFNwYW5FbGVtZW50PignLk5hdlRvZ2dsZSwgLnRvZ2dsZVNob3csIC50b2dnbGVIaWRlLCAuTmF2RW5kJykpIHtcblx0XHRlbGVtZW50LnJlbW92ZSgpO1xuXHR9XG5cblx0Ly8g5Li6IE5hdkZyYW1lIOWFg+e0oOa3u+WKoCBjb2xsYXBzaWJsZeOAglxuXHRmb3IgKGNvbnN0IGVsZW1lbnQgb2YgJGNvbnRlbnQuZmluZDxIVE1MRGl2RWxlbWVudD4oJy5OYXZGcmFtZSwgLkJveG1lcmdlJykpIHtcblx0XHRpZiAoIWVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCdjb2xsYXBzaWJsZScpKSB7XG5cdFx0XHRlbGVtZW50LmNsYXNzTGlzdC5hZGQoJ2NvbGxhcHNpYmxlJyk7XG5cdFx0fVxuXG5cdFx0aWYgKCFlbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygnQm94bWVyZ2UnKSkge1xuXHRcdFx0ZWxlbWVudC5jbGFzc0xpc3QucmVwbGFjZSgnQm94bWVyZ2UnLCAnTmF2RnJhbWUnKTtcblx0XHR9XG5cdH1cblxuXHQvLyDlpoLmnpwgTmF2Q29udGVudCDmiJYgTmF2UGljIOWFg+e0oOiiq+makOiXj++8jOWImee7meeItuWFg+e0oCBOYXZGcmFtZSDmt7vliqAgY29sbGFwc2Vk44CCXG5cdGZvciAoY29uc3QgZWxlbWVudCBvZiAkY29udGVudC5maW5kPEhUTUxEaXZFbGVtZW50PignLk5hdkNvbnRlbnQsIC5OYXZQaWMnKSkge1xuXHRcdGlmIChlbGVtZW50LnN0eWxlLmRpc3BsYXkgIT09ICdub25lJykge1xuXHRcdFx0Y29udGludWU7XG5cdFx0fVxuXG5cdFx0aWYgKGVsZW1lbnQucGFyZW50RWxlbWVudCAmJiBlbGVtZW50LnBhcmVudEVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCdOYXZGcmFtZScpKSB7XG5cdFx0XHRlbGVtZW50LnBhcmVudEVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnY29sbGFwc2VkJyk7XG5cdFx0fVxuXHR9XG59O1xuXG5leHBvcnQge25hdkZyYW1lfTtcbiIsICIvKiFcbiAqIEBkZXNjcmlwdGlvbiDkuLrlhYPntKDmt7vliqDigJzpmpDol4/igJ3lkozigJzmmL7npLrigJ3nmoTmjInpkq7jgIJcbiAqXG4gKiDnlKjms5Xor7TmmI7vvJpcbiAqXG4gKiDluKbmnIkgY29sbGFwc2libGUg57G755qE5YWD57Sg6buY6K6k5Y+v5oqY5Y+g44CCXG4gKiAtIOWvueS6jiBuYXZib3jvvIzmipjlj6Dml7bkvJrkv53nlZnmoIfpopjmoI/vvIzlubblsIbmipjlj6DmjInpkq7mt7vliqDlnKjmoIfpopjmoI/kuK3jgIJcbiAqIC0g5a+55LqOIHRhYmxl77yM5oqY5Y+g5pe25Lya5L+d55WZIGNhcHRpb24g5oiW56ys5LiA6KGM77yM5bm25bCG5oqY5Y+g5oyJ6ZKu5re75Yqg5ZyoIGNhcHRpb24g5pyr5bC+XG4gKiAgIOaIluiAheesrOS4gOihjOacgOWQjuS4gOagvOacq+WwvuOAglxuICogLSDlr7nkuo7lhbbku5blhYPntKDvvIxcbiAqICAgLSDoi6XlhbblrZDlhYPntKDmnInluKbmnIkgY29sbGFwc2libGUtYWx3YXlzLXNob3cg57G777yM6YKj5LmI6Zmk5LqG6K+l5a2Q5YWD57Sg5LmL5aSW55qE5ZCE5LiqXG4gKiAgIOWtkOWFg+e0oOmDveS8mumaj+aKmOWPoOmakOiXj++8jOS4lOaKmOWPoOaMiemSrua3u+WKoOWcqOivpeWtkOWFg+e0oOacq+WwvuOAglxuICogICAtIOiLpeayoeacieWtkOWFg+e0oOW4puaciSBjb2xsYXBzaWJsZS1hbHdheXMtc2hvdyDnsbvvvIzpgqPkuYjmiYDmnInlrZDlhYPntKDpg73kvJrooqvmipjlj6DvvIxcbiAqICAg5oqY5Y+g5oyJ6ZKu5re75Yqg5Zyo5pW05LiqIGNvbGxhcHNpYmxlIOWFg+e0oOeahOW8gOWktO+8jOS4lOivpeaMiemSruS4jeS8mumaj+aKmOWPoOmakOiXj+OAglxuICogICAtIOiLpeWtkOWFg+e0oOW4puaciSBjb2xsYXBzaWJsZS1jYXNjYWRlIOexu++8jOmCo+S5iOW9k+aKmOWPoOaXtu+8jOivpeWFg+e0oOiHqui6q+S4jeaYr+makOiXj++8jFxuICogICDogIzmmK/pmpDol4/lhbbmiYDmnInnmoTlrZDlhYPntKDvvIzov5nkupvlrZDlhYPntKDlkIzmoLflj6/ku6Xlj5cgY29sbGFwc2libGUtYWx3YXlzLXNob3cg5ZKMXG4gKiAgIGNvbGxhcHNpYmxlLWNhc2NhZGUg57G755qE5b2x5ZON44CCXG4gKiAgIC0g5rOo5oSP5b+F6aG75piv5a2Q5YWD57Sg77yM55u05o6l55qE5paH5pys6IqC54K55LiN5Lya6ZqP5oqY5Y+g6ZqQ6JeP77yM5L6L5aaC77yaXG4gKiAgICAgPGRpdiBjbGFzcz1cImNvbGxhcHNpYmxlXCI+MTIzPHNwYW4+NDU2PC9zcGFuPjwvZGl2PlxuICogICDmipjlj6Dml7bvvIzigJw0NTbigJ3kvJrpmo/mipjlj6DpmpDol4/vvIzkvYbigJwxMjPigJ3kuI3kvJrjgIJcbiAqIC0g6Iul5bim5pyJIGNvbGxhcHNpYmxlLXVzaW5nLXNsaWRlIOexu++8jOmCo+S5iOaKmOWPoOaXtu+8jOS9v+eUqOa7keWKqOWKqOeUu+iAjOmdnua3oeWFpea3oeWHuueahFxuICogICDliqjnlLvjgILlu7rorq7lvZPlj6rmnInkuIDkuKrlhYPntKDkvJrooqvpmpDol4/ml7bvvIzmiY3liqDmraTnsbvjgIJcbiAqICAgLSDluKbmnIkgY29sbGFwc2libGUtdXNpbmctc2xpZGUg57G755qE5YWD57Sg5Lya6Ieq5Yqo5bim5pyJIGNvbGxhcHNpYmxlIOexu+OAglxuICogLSDoi6XluKbmnIkgY29sbGFwc2libGUtbmV4dCDnsbvvvIzpgqPkuYjlhbbmipjlj6DnmoTkuI3mmK/lhbboh6rouqvnmoTlrZDlhYPntKDvvIzogIzmmK/mipjlj6DntKfpmo9cbiAqICAg5YW25ZCO55qE5LiA5Liq5YWD57Sg44CCXG4gKiAgIC0g6L+Z56eN5oOF5Ya15LiL77yM5oqY5Y+g5oyJ6ZKu6buY6K6k6ZmE5Zyo6K+lIGNvbGxhcHNpYmxlLW5leHQg5YWD57Sg55qE5pyr5bC+44CCXG4gKiAgIC0g5bim5pyJIGNvbGxhcHNpYmxlLW5leHQg57G755qE5YWD57Sg5Lya6Ieq5Yqo5bim5pyJIGNvbGxhcHNpYmxlIOexu+OAglxuICogLSBkYXRhLWNvbGxhcHNlLWR1cmF0aW9uIOWxnuaAp+WPr+S7peiuvue9ruaKmOWPoOWKqOeUu+eahOaXtumVv++8jOm7mOiupOS4uiAyMDAg5q+r56eS44CCXG4gKiAtIOW4puaciSBjb2xsYXBzZWQg57G755qE5YWD57Sg5Yid5aeL5bCx5piv5bey5oqY5Y+g55qE44CCXG4gKiAtIGRhdGEtZXhwYW5kdGV4dCDlkowgZGF0YS1jb2xsYXBzZXRleHQg5Y+v55So5LqO5o6n5Yi25oqY5Y+g5oyJ6ZKu55qE5pi+56S65paH5a2X44CC5LiN5pSv5oyBXG4gKiAgIOe5geeugOi9rOaNou+8jOS9huaYr+WFtum7mOiupOWAvOaYr+WPr+S7peato+W4uOagueaNrueVjOmdouivreiogOe5geeugOi9rOaNoueahOOAglxuICovXG5pbXBvcnQge2dlbmVyYXRlVGFyZ2V0RWxlbWVudHN9IGZyb20gJy4vbW9kdWxlcy91dGlsL2dlbmVyYXRlVGFyZ2V0RWxlbWVudHMnO1xuaW1wb3J0IHttYWtlQ29sbGFwc2libGV9IGZyb20gJy4vbW9kdWxlcy9tYWtlQ29sbGFwc2libGUnO1xuaW1wb3J0IHtuYXZGcmFtZX0gZnJvbSAnLi9tb2R1bGVzL25hdkZyYW1lJztcblxubXcuaG9vaygnd2lraXBhZ2UuY29udGVudCcpLmFkZCgoJGNvbnRlbnQpOiB2b2lkID0+IHtcblx0Ly8gY29tcGF0aWJsZSB3aXRoIG9sZCBuYXZGcmFtZXMgKHNlZSB7e0hpZGVIfX0gYW5kIHt7SGlkZUZ9fSlcblx0bmF2RnJhbWUoJGNvbnRlbnQpO1xuXG5cdGNvbnN0ICRjb2xsYXBzaWJsZXM6IEpRdWVyeSA9IGdlbmVyYXRlVGFyZ2V0RWxlbWVudHMoJGNvbnRlbnQpO1xuXHRpZiAoISRjb2xsYXBzaWJsZXMubGVuZ3RoKSB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0bWFrZUNvbGxhcHNpYmxlKCRjb2xsYXBzaWJsZXMpO1xufSk7XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFNQSx5QkFBMEJDLGNBQTZCO0FBQUEsTUFBQUMsYUFBQUMsMkJBQ3RDRixTQUFTRyxLQUM5QixnRkFDRCxDQUFBLEdBQUFDO0FBQUEsTUFBQTtBQUZBLFNBQUFILFdBQUFJLEVBQUEsR0FB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QUF3QnhCLHVCQUF1QkMsUUFBUTtBQUM3RCxNQUFJLENBQUN1QixjQUFjNkMsUUFBUTtBQUMxQjtFQUNEO0FBRUEwQixrQkFBZ0J2RSxhQUFhO0FBQzlCLENBQUM7IiwKICAibmFtZXMiOiBbImdlbmVyYXRlVGFyZ2V0RWxlbWVudHMiLCAiJGNvbnRlbnQiLCAiX2l0ZXJhdG9yMiIsICJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsICJmaW5kIiwgIl9zdGVwMiIsICJzIiwgIm4iLCAiZG9uZSIsICJlbGVtZW50IiwgInZhbHVlIiwgIiRwYXJlbnQiLCAiJCIsICJwYXJlbnQiLCAiX2l0ZXJhdG9yMyIsICJjbGFzc0xpc3QiLCAiX3N0ZXAzIiwgImNsYXNzTmFtZSIsICJzbGljZSIsICJhZGRDbGFzcyIsICJyZXBsYWNlIiwgImVyciIsICJlIiwgImYiLCAiJGNvbGxhcHNpYmxlcyIsICJpbXBvcnRfZXh0X2dhZGdldCIsICJyZXF1aXJlIiwgImhpZGVFbGVtZW50IiwgIiRjb2xsYXBzaWJsZSIsICJ0aW1lIiwgInVzZVNsaWRlIiwgImhhc0NsYXNzIiwgIiRlbGVtZW50IiwgIm5leHQiLCAic2xpZGVVcCIsICJmYWRlT3V0IiwgIiRlbGVtZW50cyIsICJpcyIsICJjaGlsZHJlbiIsICJjb250ZW50cyIsICJfaXRlcmF0b3I0IiwgIl9zdGVwNCIsICJzaG93RWxlbWVudCIsICJzbGlkZURvd24iLCAiZmFkZUluIiwgIl9pdGVyYXRvcjUiLCAiX3N0ZXA1IiwgInRvZ2dsZUVsZW1lbnQiLCAiY29sbGFwc2VkIiwgImR1cmF0aW9uIiwgIk51bWJlciIsICJwYXJzZUludCIsICJkYXRhIiwgInJlbW92ZUNsYXNzIiwgImFkZExpc3RlbmVyIiwgIiR0b2dnbGVyTGluayIsICJoaWRlVGV4dCIsICJzaG93VGV4dCIsICJldmVudExpc3RlbmVyIiwgImV2ZW50IiwgImNoZWNrQTExeUNvbmZpcm1LZXkiLCAicHJldmVudERlZmF1bHQiLCAidGV4dCIsICJvbiIsICJhZGRUb2dnbGVyIiwgIiR0b2dnbGVyIiwgIiRhcHBlbmRIZXJlIiwgIm5vdCIsICJhcHBlbmQiLCAibGVuZ3RoIiwgInBhcmVudHNVbnRpbCIsICJmaXJzdCIsICIkY2FwdGlvbiIsICIkdHJvd3MiLCAibGFzdCIsICIkdG9Ub2dnbGUiLCAicHJlcGVuZCIsICJpbXBvcnRfZXh0X2dhZGdldDIiLCAiX190b0VTTSIsICJ0b2dnbGVyIiwgImdlbmVyYXRlVG9nZ2xlckVsZW1lbnQiLCAiZGVmYXVsdCIsICJjcmVhdGVFbGVtZW50IiwgInJvbGUiLCAidGFiSW5kZXgiLCAiaW1wb3J0X2V4dF9nYWRnZXQzIiwgImdldEkxOG5NZXNzYWdlcyIsICJDb2xsYXBzZSIsICJsb2NhbGl6ZSIsICJlbiIsICJqYSIsICJFeHBhbmQiLCAiaTE4bk1lc3NhZ2VzIiwgImdldE1lc3NhZ2UiLCAia2V5IiwgIm1ha2VDb2xsYXBzaWJsZSIsICJfaXRlcmF0b3I2IiwgIl9zdGVwNiIsICJuYXZGcmFtZSIsICJfaXRlcmF0b3I3IiwgIl9zdGVwNyIsICJyZW1vdmUiLCAiX2l0ZXJhdG9yOCIsICJfc3RlcDgiLCAiY29udGFpbnMiLCAiYWRkIiwgIl9pdGVyYXRvcjkiLCAiX3N0ZXA5IiwgInN0eWxlIiwgImRpc3BsYXkiLCAicGFyZW50RWxlbWVudCIsICJtdyIsICJob29rIl0KfQo= +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL0NvbGxhcHNpYmxlL21vZHVsZXMvdXRpbC9nZW5lcmF0ZVRhcmdldEVsZW1lbnRzLnRzIiwgInNyYy9Db2xsYXBzaWJsZS9tb2R1bGVzL2FkZExpc3RlbmVyLnRzIiwgInNyYy9Db2xsYXBzaWJsZS9tb2R1bGVzL3V0aWwvaGlkZUVsZW1lbnQudHMiLCAic3JjL0NvbGxhcHNpYmxlL21vZHVsZXMvdXRpbC9zaG93RWxlbWVudC50cyIsICJzcmMvQ29sbGFwc2libGUvbW9kdWxlcy91dGlsL3RvZ2dsZUVsZW1lbnQudHMiLCAic3JjL0NvbGxhcHNpYmxlL21vZHVsZXMvYWRkVG9nZ2xlci50cyIsICJzcmMvQ29sbGFwc2libGUvbW9kdWxlcy91dGlsL2dlbmVyYXRlVG9nZ2xlckVsZW1lbnQudHN4IiwgInNyYy9Db2xsYXBzaWJsZS9tb2R1bGVzL3V0aWwvQ29sbGFwc2libGUubW9kdWxlLmxlc3MiLCAic3JjL0NvbGxhcHNpYmxlL21vZHVsZXMvaTE4bi50cyIsICJzcmMvQ29sbGFwc2libGUvbW9kdWxlcy9tYWtlQ29sbGFwc2libGUudHMiLCAic3JjL0NvbGxhcHNpYmxlL21vZHVsZXMvbmF2RnJhbWUudHMiLCAic3JjL0NvbGxhcHNpYmxlL0NvbGxhcHNpYmxlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJjb25zdCBnZW5lcmF0ZVRhcmdldEVsZW1lbnRzID0gKCRjb250ZW50OiBKUXVlcnkpOiBKUXVlcnkgPT4ge1xuXHRmb3IgKGNvbnN0IGVsZW1lbnQgb2YgJGNvbnRlbnQuZmluZChcblx0XHQnLnBhcmVudC1jb2xsYXBzaWJsZSwgLnBhcmVudC1jb2xsYXBzaWJsZS11c2luZy1zbGlkZSwgLnBhcmVudC1jb2xsYXBzaWJsZS1uZXh0J1xuXHQpKSB7XG5cdFx0Y29uc3QgJHBhcmVudDogSlF1ZXJ5ID0gJChlbGVtZW50KS5wYXJlbnQoKTtcblx0XHRmb3IgKGNvbnN0IGNsYXNzTmFtZSBvZiBlbGVtZW50LmNsYXNzTGlzdCkge1xuXHRcdFx0aWYgKGNsYXNzTmFtZS5zbGljZSgwLCAxOCkgPT09ICdwYXJlbnQtY29sbGFwc2libGUnKSB7XG5cdFx0XHRcdC8vIFRoZSBmb2xsb3dpbmcgY2xhc3NlcyBhcmUgdXNlZCBoZXJlOlxuXHRcdFx0XHQvLyAqIGNvbGxhcHNpYmxlXG5cdFx0XHRcdC8vICogY29sbGFwc2libGUtdXNpbmctc2xpZGVcblx0XHRcdFx0Ly8gKiBjb2xsYXBzaWJsZS1uZXh0XG5cdFx0XHRcdCRwYXJlbnQuYWRkQ2xhc3MoY2xhc3NOYW1lLnJlcGxhY2UoL15wYXJlbnQtLywgJycpKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQkY29udGVudC5maW5kKCcuY29sbGFwc2libGUtdXNpbmctc2xpZGUsIC5jb2xsYXBzaWJsZS1uZXh0JykuYWRkQ2xhc3MoJ2NvbGxhcHNpYmxlJyk7XG5cblx0Y29uc3QgJGNvbGxhcHNpYmxlczogSlF1ZXJ5ID0gJGNvbnRlbnQuZmluZCgnLmNvbGxhcHNpYmxlJyk7XG5cblx0cmV0dXJuICRjb2xsYXBzaWJsZXM7XG59O1xuXG5leHBvcnQge2dlbmVyYXRlVGFyZ2V0RWxlbWVudHN9O1xuIiwgImltcG9ydCB7Y2hlY2tBMTF5Q29uZmlybUtleX0gZnJvbSAnZXh0LmdhZGdldC5VdGlsJztcbmltcG9ydCB7dG9nZ2xlRWxlbWVudH0gZnJvbSAnLi91dGlsL3RvZ2dsZUVsZW1lbnQnO1xuXG5jb25zdCBhZGRMaXN0ZW5lciA9ICgkY29sbGFwc2libGU6IEpRdWVyeSwgJHRvZ2dsZXJMaW5rOiBKUXVlcnksIGhpZGVUZXh0OiBzdHJpbmcsIHNob3dUZXh0OiBzdHJpbmcpOiB2b2lkID0+IHtcblx0Y29uc3QgZXZlbnRMaXN0ZW5lciA9IChldmVudDogSlF1ZXJ5LkNsaWNrRXZlbnQgfCBKUXVlcnkuS2V5RG93bkV2ZW50KTogdm9pZCA9PiB7XG5cdFx0aWYgKCFjaGVja0ExMXlDb25maXJtS2V5KGV2ZW50KSkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cblx0XHR0b2dnbGVFbGVtZW50KCRjb2xsYXBzaWJsZSk7XG5cblx0XHRpZiAoJGNvbGxhcHNpYmxlLmhhc0NsYXNzKCdjb2xsYXBzZWQnKSkge1xuXHRcdFx0JHRvZ2dsZXJMaW5rLnRleHQoc2hvd1RleHQpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHQkdG9nZ2xlckxpbmsudGV4dChoaWRlVGV4dCk7XG5cdFx0fVxuXHR9O1xuXG5cdCR0b2dnbGVyTGluay5vbignY2xpY2snLCBldmVudExpc3RlbmVyKTtcblx0JHRvZ2dsZXJMaW5rLm9uKCdrZXlkb3duJywgZXZlbnRMaXN0ZW5lcik7XG59O1xuXG5leHBvcnQge2FkZExpc3RlbmVyfTtcbiIsICIvLyDpmpDol4/mn5DkuKrlj6/mipjlj6DnmoTlhYPntKDjgIJcbmNvbnN0IGhpZGVFbGVtZW50ID0gKCRjb2xsYXBzaWJsZTogSlF1ZXJ5LCB0aW1lOiBudW1iZXIpOiB2b2lkID0+IHtcblx0Y29uc3QgdXNlU2xpZGU6IGJvb2xlYW4gPSAkY29sbGFwc2libGUuaGFzQ2xhc3MoJ2NvbGxhcHNpYmxlLXVzaW5nLXNsaWRlJyk7XG5cdGlmICgkY29sbGFwc2libGUuaGFzQ2xhc3MoJ2NvbGxhcHNpYmxlLW5leHQnKSkge1xuXHRcdGNvbnN0ICRlbGVtZW50OiBKUXVlcnkgPSAkY29sbGFwc2libGUubmV4dCgpO1xuXG5cdFx0aWYgKHVzZVNsaWRlKSB7XG5cdFx0XHQkZWxlbWVudC5zbGlkZVVwKHRpbWUpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHQkZWxlbWVudC5mYWRlT3V0KHRpbWUpO1xuXHRcdH1cblx0fSBlbHNlIHtcblx0XHRjb25zdCAkZWxlbWVudHM6IEpRdWVyeSA9ICRjb2xsYXBzaWJsZS5pcygndGFibGUnKVxuXHRcdFx0PyAkY29sbGFwc2libGUuY2hpbGRyZW4oKS5jaGlsZHJlbigndHInKVxuXHRcdFx0OiAoJGNvbGxhcHNpYmxlLmNvbnRlbnRzKCkgYXMgSlF1ZXJ5KTtcblxuXHRcdGZvciAoY29uc3QgZWxlbWVudCBvZiAkZWxlbWVudHMpIHtcblx0XHRcdGNvbnN0ICRlbGVtZW50OiBKUXVlcnkgPSAkKGVsZW1lbnQpO1xuXHRcdFx0aWYgKCRlbGVtZW50Lmhhc0NsYXNzKCdjb2xsYXBzaWJsZS1jYXNjYWRlJykpIHtcblx0XHRcdFx0aGlkZUVsZW1lbnQoJGVsZW1lbnQsIHRpbWUpO1xuXHRcdFx0fSBlbHNlIGlmICghJGVsZW1lbnQuaGFzQ2xhc3MoJ2NvbGxhcHNpYmxlLWFsd2F5cy1zaG93JykpIHtcblx0XHRcdFx0aWYgKHVzZVNsaWRlKSB7XG5cdFx0XHRcdFx0JGVsZW1lbnQuc2xpZGVVcCh0aW1lKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHQkZWxlbWVudC5mYWRlT3V0KHRpbWUpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59O1xuXG5leHBvcnQge2hpZGVFbGVtZW50fTtcbiIsICIvLyDmmL7npLrmn5DkuKrlj6/mipjlj6DnmoTlhYPntKDjgIJcbmNvbnN0IHNob3dFbGVtZW50ID0gKCRjb2xsYXBzaWJsZTogSlF1ZXJ5LCB0aW1lOiBudW1iZXIpOiB2b2lkID0+IHtcblx0Y29uc3QgdXNlU2xpZGU6IGJvb2xlYW4gPSAkY29sbGFwc2libGUuaGFzQ2xhc3MoJ2NvbGxhcHNpYmxlLXVzaW5nLXNsaWRlJyk7XG5cdGlmICgkY29sbGFwc2libGUuaGFzQ2xhc3MoJ2NvbGxhcHNpYmxlLW5leHQnKSkge1xuXHRcdGNvbnN0ICRlbGVtZW50OiBKUXVlcnkgPSAkY29sbGFwc2libGUubmV4dCgpO1xuXG5cdFx0aWYgKHVzZVNsaWRlKSB7XG5cdFx0XHQkZWxlbWVudC5zbGlkZURvd24odGltZSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdCRlbGVtZW50LmZhZGVJbih0aW1lKTtcblx0XHR9XG5cdH0gZWxzZSB7XG5cdFx0Y29uc3QgJGVsZW1lbnRzOiBKUXVlcnkgPSAkY29sbGFwc2libGUuaXMoJ3RhYmxlJylcblx0XHRcdD8gJGNvbGxhcHNpYmxlLmNoaWxkcmVuKCkuY2hpbGRyZW4oJ3RyJylcblx0XHRcdDogKCRjb2xsYXBzaWJsZS5jb250ZW50cygpIGFzIEpRdWVyeSk7XG5cblx0XHRmb3IgKGNvbnN0IGVsZW1lbnQgb2YgJGVsZW1lbnRzKSB7XG5cdFx0XHRjb25zdCAkZWxlbWVudDogSlF1ZXJ5ID0gJChlbGVtZW50KTtcblx0XHRcdGlmICgkZWxlbWVudC5oYXNDbGFzcygnY29sbGFwc2libGUtY2FzY2FkZScpKSB7XG5cdFx0XHRcdHNob3dFbGVtZW50KCRlbGVtZW50LCB0aW1lKTtcblx0XHRcdH0gZWxzZSBpZiAoISRlbGVtZW50Lmhhc0NsYXNzKCdjb2xsYXBzaWJsZS1hbHdheXMtc2hvdycpKSB7XG5cdFx0XHRcdGlmICh1c2VTbGlkZSkge1xuXHRcdFx0XHRcdCRlbGVtZW50LnNsaWRlRG93bih0aW1lKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHQkZWxlbWVudC5mYWRlSW4odGltZSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cbn07XG5cbmV4cG9ydCB7c2hvd0VsZW1lbnR9O1xuIiwgImltcG9ydCB7aGlkZUVsZW1lbnR9IGZyb20gJy4vaGlkZUVsZW1lbnQnO1xuaW1wb3J0IHtzaG93RWxlbWVudH0gZnJvbSAnLi9zaG93RWxlbWVudCc7XG5cbmNvbnN0IHRvZ2dsZUVsZW1lbnQgPSAoJGNvbGxhcHNpYmxlOiBKUXVlcnkpOiB2b2lkID0+IHtcblx0Y29uc3QgY29sbGFwc2VkOiBib29sZWFuID0gJGNvbGxhcHNpYmxlLmhhc0NsYXNzKCdjb2xsYXBzZWQnKTtcblx0Y29uc3QgZHVyYXRpb246IG51bWJlciA9IE51bWJlci5wYXJzZUludCgkY29sbGFwc2libGUuZGF0YSgnY29sbGFwc2UtZHVyYXRpb24nKSBhcyBzdHJpbmcsIDEwKSB8fCAyMDA7XG5cblx0aWYgKGNvbGxhcHNlZCkge1xuXHRcdHNob3dFbGVtZW50KCRjb2xsYXBzaWJsZSwgZHVyYXRpb24pO1xuXHRcdCRjb2xsYXBzaWJsZS5yZW1vdmVDbGFzcygnY29sbGFwc2VkJyk7XG5cdH0gZWxzZSB7XG5cdFx0aGlkZUVsZW1lbnQoJGNvbGxhcHNpYmxlLCBkdXJhdGlvbik7XG5cdFx0JGNvbGxhcHNpYmxlLmFkZENsYXNzKCdjb2xsYXBzZWQnKTtcblx0fVxufTtcblxuZXhwb3J0IHt0b2dnbGVFbGVtZW50fTtcbiIsICJjb25zdCBhZGRUb2dnbGVyID0gKCRjb2xsYXBzaWJsZTogSlF1ZXJ5LCAkdG9nZ2xlcjogSlF1ZXJ5KTogdm9pZCA9PiB7XG5cdGNvbnN0ICRhcHBlbmRIZXJlOiBKUXVlcnkgPSAkY29sbGFwc2libGVcblx0XHQuZmluZCgnLmNvbGxhcHNpYmxlLXRvZ2dsZS1hcHBlbmQtaGVyZScpXG5cdFx0Lm5vdCgnLmNvbGxhcHNpYmxlLXRvZ2dsZS1hcHBlbmRlZCcpO1xuXG5cdGlmICgkY29sbGFwc2libGUuaGFzQ2xhc3MoJ2NvbGxhcHNpYmxlLW5leHQnKSkge1xuXHRcdC8vIOiLpeaciSBjb2xsYXBzaWJsZS1uZXh0IOexu++8jOmCo+S5iOiiq+aKmOWPoOeahOWFg+e0oOS4jeWcqOivpeWFg+e0oOWGhe+8jOatpOaXtuebtOaOpeWwhuaKmOWPoOaMiemSrua3u+WKoOWcqOacq+WwvuOAglxuXHRcdCRjb2xsYXBzaWJsZS5hcHBlbmQoJHRvZ2dsZXIpO1xuXHR9IGVsc2UgaWYgKCRhcHBlbmRIZXJlLmxlbmd0aCkge1xuXHRcdC8vIOW4puaciSBjb2xsYXBzaWJsZS10b2dnbGUtYXBwZW5kLWhlcmUg57G755qE5YWD57Sg77yM6Iul5a2Y5Zyo77yM5YiZ5peg6K665Y+v5oqY5Y+g5YWD57Sg5piv5LuA5LmI77yM5YiZ5by65Yi25bCG5oqY5Y+g5oyJ6ZKu5re75Yqg6Iez6K+l5YWD57Sg5Lit44CCXG5cdFx0JGFwcGVuZEhlcmUuYXBwZW5kKCR0b2dnbGVyKTtcblx0XHQkYXBwZW5kSGVyZS5hZGRDbGFzcygnY29sbGFwc2libGUtdG9nZ2xlLWFwcGVuZGVkJyk7XG5cdFx0JGFwcGVuZEhlcmUucGFyZW50c1VudGlsKCRjb2xsYXBzaWJsZSkuYWRkQ2xhc3MoJ2NvbGxhcHNpYmxlLWFsd2F5cy1zaG93Jyk7XG5cdH0gZWxzZSBpZiAoJGNvbGxhcHNpYmxlLmhhc0NsYXNzKCduYXZib3gnKSkge1xuXHRcdC8vIG5hdmJveCDlhYPntKDnmoTmipjlj6DmjInpkq7mt7vliqDoh7MgbmF2Ym94LXRpdGxlIOS4re+8jOS4lOivpSBuYXZib3gtdGl0bGUg5Lya6YG/5YWN6KKr5oqY5Y+g5b2x5ZON5Yiw44CCXG5cdFx0JGNvbGxhcHNpYmxlLmNoaWxkcmVuKCcubmF2Ym94LXRpdGxlJykuZmlyc3QoKS5hZGRDbGFzcygnY29sbGFwc2libGUtYWx3YXlzLXNob3cnKS5hcHBlbmQoJHRvZ2dsZXIpO1xuXHR9IGVsc2UgaWYgKCRjb2xsYXBzaWJsZS5oYXNDbGFzcygnTmF2RnJhbWUnKSkge1xuXHRcdC8vIE5hdkZyYW1lIOWFg+e0oOeahOaKmOWPoOaMiemSrua3u+WKoOiHs+WFtuWtkOWFg+e0oCBOYXZIZWFkIOS4re+8jOS4lOivpSBOYXZIZWFkIOS8mumBv+WFjeiiq+aKmOWPoOW9seWTjeWIsOOAglxuXHRcdCRjb2xsYXBzaWJsZS5jaGlsZHJlbignLk5hdkhlYWQnKS5maXJzdCgpLmFkZENsYXNzKCdjb2xsYXBzaWJsZS1hbHdheXMtc2hvdycpLmFwcGVuZCgkdG9nZ2xlcik7XG5cdH0gZWxzZSBpZiAoJGNvbGxhcHNpYmxlLmlzKCd0YWJsZScpKSB7XG5cdFx0Ly8g5a+55LqOIHRhYmxlIOWvueixoe+8jOWwneivlea3u+WKoOWIsCBjYXB0aW9uIOS4re+8jOiLpSBjYXB0aW9uIOS4jeWtmOWcqO+8jOWImea3u+WKoOWIsOesrOS4gOihjOeahOacgOWQjuS4gOWIl++8jOW5tuWwhuesrOS4gOihjOiuvuS4uuWni+e7iOaYvuekuuOAglxuXHRcdGNvbnN0ICRjYXB0aW9uOiBKUXVlcnkgPSAkY29sbGFwc2libGUuY2hpbGRyZW4oJ2NhcHRpb24nKTtcblx0XHRpZiAoJGNhcHRpb24ubGVuZ3RoKSB7XG5cdFx0XHQvLyDmnIljYXB0aW9u55qE5oOF5Ya1XG5cdFx0XHQkY2FwdGlvbi5maXJzdCgpLmFwcGVuZCgkdG9nZ2xlcik7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGNvbnN0ICR0cm93czogSlF1ZXJ5PEhUTUxUYWJsZVJvd0VsZW1lbnQ+ID0gJGNvbGxhcHNpYmxlLmNoaWxkcmVuKCkuY2hpbGRyZW4oJ3RyJyk7XG5cdFx0XHQkdHJvd3MuZmlyc3QoKS5hZGRDbGFzcygnY29sbGFwc2libGUtYWx3YXlzLXNob3cnKS5jaGlsZHJlbigpLmxhc3QoKS5hcHBlbmQoJHRvZ2dsZXIpO1xuXHRcdH1cblx0fSBlbHNlIHtcblx0XHQvLyDlsJ3or5Xmn6Xmib7luKbmnIkgY29sbGFwc2libGUtYWx3YXlzLXNob3cg57G755qE5a2Q5YWD57Sg77yM6Iul5a2Y5Zyo5YiZ5bCG5oqY5Y+g5oyJ6ZKu5re75Yqg6Iez5YW25Lit44CCXG5cdFx0Ly8g5ZCm5YiZ77yM5re75Yqg6Iez5pW05Liq5Y+v5oqY5Y+g5YWD57Sg55qE5pyA5YmN6Z2i44CCXG5cdFx0Y29uc3QgJHRvVG9nZ2xlOiBKUXVlcnkgPSAkY29sbGFwc2libGUuY2hpbGRyZW4oJy5jb2xsYXBzaWJsZS1hbHdheXMtc2hvdycpO1xuXHRcdGlmICgkdG9Ub2dnbGUubGVuZ3RoKSB7XG5cdFx0XHQkdG9Ub2dnbGUuZmlyc3QoKS5hcHBlbmQoJHRvZ2dsZXIpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHQkY29sbGFwc2libGUucHJlcGVuZCgkdG9nZ2xlcik7XG5cdFx0XHQkdG9nZ2xlci5hZGRDbGFzcygnY29sbGFwc2libGUtYWx3YXlzLXNob3cnKTtcblx0XHR9XG5cdH1cbn07XG5cbmV4cG9ydCB7YWRkVG9nZ2xlcn07XG4iLCAiaW1wb3J0IFJlYWN0IGZyb20gJ2V4dC5nYWRnZXQuSlNYJztcbmltcG9ydCB7dG9nZ2xlcn0gZnJvbSAnLi9Db2xsYXBzaWJsZS5tb2R1bGUubGVzcyc7XG5cbmNvbnN0IGdlbmVyYXRlVG9nZ2xlckVsZW1lbnQgPSAoJGNvbGxhcHNpYmxlOiBKUXVlcnksIGhpZGVUZXh0OiBzdHJpbmcsIHNob3dUZXh0OiBzdHJpbmcpOiBKUXVlcnkgPT4ge1xuXHRjb25zdCAkdG9nZ2xlciA9ICQoXG5cdFx0PHNwYW4gY2xhc3NOYW1lPXtbdG9nZ2xlciwgJ25vcHJpbnQnXX0+XG5cdFx0XHR7J1snfVxuXHRcdFx0PGEgcm9sZT1cImJ1dHRvblwiIHRhYkluZGV4PXswfT5cblx0XHRcdFx0eyRjb2xsYXBzaWJsZS5oYXNDbGFzcygnY29sbGFwc2VkJykgPyBzaG93VGV4dCA6IGhpZGVUZXh0fVxuXHRcdFx0PC9hPlxuXHRcdFx0eyddJ31cblx0XHQ8L3NwYW4+XG5cdCkgYXMgSlF1ZXJ5O1xuXG5cdHJldHVybiAkdG9nZ2xlcjtcbn07XG5cbmV4cG9ydCB7Z2VuZXJhdGVUb2dnbGVyRWxlbWVudH07XG4iLCAiaW1wb3J0IFwiZXNidWlsZC1jc3MtbW9kdWxlcy1wbHVnaW4tbnMtY3NzOnNyYy9Db2xsYXBzaWJsZS9tb2R1bGVzL3V0aWwvQ29sbGFwc2libGUubW9kdWxlLmxlc3NcIjtcbmV4cG9ydCBjb25zdCB0b2dnbGVyID0gXCJDb2xsYXBzaWJsZS1tb2R1bGVfX3RvZ2dsZXJfa3ZNR2pHX180OTBcIjtcblxuZXhwb3J0IGRlZmF1bHQge1xuICBcInRvZ2dsZXJcIjogdG9nZ2xlclxufTtcbiAgICAgICIsICJpbXBvcnQge2xvY2FsaXplfSBmcm9tICdleHQuZ2FkZ2V0LmkxOG4nO1xuXG5jb25zdCBnZXRJMThuTWVzc2FnZXMgPSAoKSA9PiB7XG5cdHJldHVybiB7XG5cdFx0Q29sbGFwc2U6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnY29sbGFwc2UnLFxuXHRcdFx0amE6ICfmipjjgornlbPjgb8nLFxuXHRcdFx0J3poLWhhbnMnOiAn5oqY5Y+gJyxcblx0XHRcdCd6aC1oYW50JzogJ+aKmOeWiicsXG5cdFx0fSksXG5cdFx0RXhwYW5kOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ2V4cGFuZCcsXG5cdFx0XHRqYTogJ+WxlemWiycsXG5cdFx0XHQnemgtaGFucyc6ICflsZXlvIAnLFxuXHRcdFx0J3poLWhhbnQnOiAn5bGV6ZaLJyxcblx0XHR9KSxcblx0fTtcbn07XG5cbmNvbnN0IGkxOG5NZXNzYWdlcyA9IGdldEkxOG5NZXNzYWdlcygpO1xuXG5jb25zdCBnZXRNZXNzYWdlOiBHZXRNZXNzYWdlczx0eXBlb2YgaTE4bk1lc3NhZ2VzPiA9IChrZXkpID0+IHtcblx0cmV0dXJuIGkxOG5NZXNzYWdlc1trZXldIHx8IGtleTtcbn07XG5cbmV4cG9ydCB7Z2V0TWVzc2FnZX07XG4iLCAiaW1wb3J0IHthZGRMaXN0ZW5lcn0gZnJvbSAnLi9hZGRMaXN0ZW5lcic7XG5pbXBvcnQge2FkZFRvZ2dsZXJ9IGZyb20gJy4vYWRkVG9nZ2xlcic7XG5pbXBvcnQge2dlbmVyYXRlVG9nZ2xlckVsZW1lbnR9IGZyb20gJy4vdXRpbC9nZW5lcmF0ZVRvZ2dsZXJFbGVtZW50JztcbmltcG9ydCB7Z2V0TWVzc2FnZX0gZnJvbSAnLi9pMThuJztcbmltcG9ydCB7aGlkZUVsZW1lbnR9IGZyb20gJy4vdXRpbC9oaWRlRWxlbWVudCc7XG5cbmNvbnN0IG1ha2VDb2xsYXBzaWJsZSA9ICgkY29sbGFwc2libGVzOiBKUXVlcnkpOiB2b2lkID0+IHtcblx0Zm9yIChjb25zdCBlbGVtZW50IG9mICRjb2xsYXBzaWJsZXMpIHtcblx0XHRjb25zdCAkY29sbGFwc2libGU6IEpRdWVyeSA9ICQoZWxlbWVudCk7XG5cdFx0aWYgKCRjb2xsYXBzaWJsZS5kYXRhKCdtYWRlLWNvbGxhcHNpYmxlJykpIHtcblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblxuXHRcdGNvbnN0IGhpZGVUZXh0OiBzdHJpbmcgPSAoJGNvbGxhcHNpYmxlLmRhdGEoJ2NvbGxhcHNldGV4dCcpIGFzIHN0cmluZykgfHwgZ2V0TWVzc2FnZSgnQ29sbGFwc2UnKTtcblx0XHRjb25zdCBzaG93VGV4dDogc3RyaW5nID0gKCRjb2xsYXBzaWJsZS5kYXRhKCdleHBhbmR0ZXh0JykgYXMgc3RyaW5nKSB8fCBnZXRNZXNzYWdlKCdFeHBhbmQnKTtcblxuXHRcdGNvbnN0ICR0b2dnbGVyOiBKUXVlcnkgPSBnZW5lcmF0ZVRvZ2dsZXJFbGVtZW50KCRjb2xsYXBzaWJsZSwgaGlkZVRleHQsIHNob3dUZXh0KTtcblx0XHRjb25zdCAkdG9nZ2xlckxpbms6IEpRdWVyeSA9ICR0b2dnbGVyLmZpbmQoJ2EnKTtcblxuXHRcdGFkZFRvZ2dsZXIoJGNvbGxhcHNpYmxlLCAkdG9nZ2xlcik7XG5cblx0XHQvLyDliJ3lp4vljJbpmpDol4/miYDmnInlhYPntKDvvIzor6Xov4fnqIvmsqHmnInliqjnlLvjgIJcblx0XHRpZiAoJGNvbGxhcHNpYmxlLmhhc0NsYXNzKCdjb2xsYXBzZWQnKSkge1xuXHRcdFx0aGlkZUVsZW1lbnQoJGNvbGxhcHNpYmxlLCAwKTtcblx0XHR9XG5cblx0XHRhZGRMaXN0ZW5lcigkY29sbGFwc2libGUsICR0b2dnbGVyTGluaywgaGlkZVRleHQsIHNob3dUZXh0KTtcblxuXHRcdCRjb2xsYXBzaWJsZS5kYXRhKCdtYWRlLWNvbGxhcHNpYmxlJywgdHJ1ZSk7XG5cdH1cbn07XG5cbmV4cG9ydCB7bWFrZUNvbGxhcHNpYmxlfTtcbiIsICJjb25zdCBuYXZGcmFtZSA9ICgkY29udGVudDogSlF1ZXJ5KTogdm9pZCA9PiB7XG5cdC8vIOWIoOmZpCBOYXZGcmFtZSDlhYPntKDoh6rluKbnmoTmipjlj6DjgIJcblx0Zm9yIChjb25zdCBlbGVtZW50IG9mICRjb250ZW50LmZpbmQ8SFRNTFNwYW5FbGVtZW50PignLk5hdlRvZ2dsZSwgLnRvZ2dsZVNob3csIC50b2dnbGVIaWRlLCAuTmF2RW5kJykpIHtcblx0XHRlbGVtZW50LnJlbW92ZSgpO1xuXHR9XG5cblx0Ly8g5Li6IE5hdkZyYW1lIOWFg+e0oOa3u+WKoCBjb2xsYXBzaWJsZeOAglxuXHRmb3IgKGNvbnN0IGVsZW1lbnQgb2YgJGNvbnRlbnQuZmluZDxIVE1MRGl2RWxlbWVudD4oJy5OYXZGcmFtZSwgLkJveG1lcmdlJykpIHtcblx0XHRpZiAoIWVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCdjb2xsYXBzaWJsZScpKSB7XG5cdFx0XHRlbGVtZW50LmNsYXNzTGlzdC5hZGQoJ2NvbGxhcHNpYmxlJyk7XG5cdFx0fVxuXG5cdFx0aWYgKCFlbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygnQm94bWVyZ2UnKSkge1xuXHRcdFx0ZWxlbWVudC5jbGFzc0xpc3QucmVwbGFjZSgnQm94bWVyZ2UnLCAnTmF2RnJhbWUnKTtcblx0XHR9XG5cdH1cblxuXHQvLyDlpoLmnpwgTmF2Q29udGVudCDmiJYgTmF2UGljIOWFg+e0oOiiq+makOiXj++8jOWImee7meeItuWFg+e0oCBOYXZGcmFtZSDmt7vliqAgY29sbGFwc2Vk44CCXG5cdGZvciAoY29uc3QgZWxlbWVudCBvZiAkY29udGVudC5maW5kPEhUTUxEaXZFbGVtZW50PignLk5hdkNvbnRlbnQsIC5OYXZQaWMnKSkge1xuXHRcdGlmIChlbGVtZW50LnN0eWxlLmRpc3BsYXkgIT09ICdub25lJykge1xuXHRcdFx0Y29udGludWU7XG5cdFx0fVxuXG5cdFx0aWYgKGVsZW1lbnQucGFyZW50RWxlbWVudCAmJiBlbGVtZW50LnBhcmVudEVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCdOYXZGcmFtZScpKSB7XG5cdFx0XHRlbGVtZW50LnBhcmVudEVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnY29sbGFwc2VkJyk7XG5cdFx0fVxuXHR9XG59O1xuXG5leHBvcnQge25hdkZyYW1lfTtcbiIsICIvKiFcbiAqIEBkZXNjcmlwdGlvbiDkuLrlhYPntKDmt7vliqDigJzpmpDol4/igJ3lkozigJzmmL7npLrigJ3nmoTmjInpkq7jgIJcbiAqXG4gKiDnlKjms5Xor7TmmI7vvJpcbiAqXG4gKiDluKbmnIkgY29sbGFwc2libGUg57G755qE5YWD57Sg6buY6K6k5Y+v5oqY5Y+g44CCXG4gKiAtIOWvueS6jiBuYXZib3jvvIzmipjlj6Dml7bkvJrkv53nlZnmoIfpopjmoI/vvIzlubblsIbmipjlj6DmjInpkq7mt7vliqDlnKjmoIfpopjmoI/kuK3jgIJcbiAqIC0g5a+55LqOIHRhYmxl77yM5oqY5Y+g5pe25Lya5L+d55WZIGNhcHRpb24g5oiW56ys5LiA6KGM77yM5bm25bCG5oqY5Y+g5oyJ6ZKu5re75Yqg5ZyoIGNhcHRpb24g5pyr5bC+XG4gKiAgIOaIluiAheesrOS4gOihjOacgOWQjuS4gOagvOacq+WwvuOAglxuICogLSDlr7nkuo7lhbbku5blhYPntKDvvIxcbiAqICAgLSDoi6XlhbblrZDlhYPntKDmnInluKbmnIkgY29sbGFwc2libGUtYWx3YXlzLXNob3cg57G777yM6YKj5LmI6Zmk5LqG6K+l5a2Q5YWD57Sg5LmL5aSW55qE5ZCE5LiqXG4gKiAgIOWtkOWFg+e0oOmDveS8mumaj+aKmOWPoOmakOiXj++8jOS4lOaKmOWPoOaMiemSrua3u+WKoOWcqOivpeWtkOWFg+e0oOacq+WwvuOAglxuICogICAtIOiLpeayoeacieWtkOWFg+e0oOW4puaciSBjb2xsYXBzaWJsZS1hbHdheXMtc2hvdyDnsbvvvIzpgqPkuYjmiYDmnInlrZDlhYPntKDpg73kvJrooqvmipjlj6DvvIxcbiAqICAg5oqY5Y+g5oyJ6ZKu5re75Yqg5Zyo5pW05LiqIGNvbGxhcHNpYmxlIOWFg+e0oOeahOW8gOWktO+8jOS4lOivpeaMiemSruS4jeS8mumaj+aKmOWPoOmakOiXj+OAglxuICogICAtIOiLpeWtkOWFg+e0oOW4puaciSBjb2xsYXBzaWJsZS1jYXNjYWRlIOexu++8jOmCo+S5iOW9k+aKmOWPoOaXtu+8jOivpeWFg+e0oOiHqui6q+S4jeaYr+makOiXj++8jFxuICogICDogIzmmK/pmpDol4/lhbbmiYDmnInnmoTlrZDlhYPntKDvvIzov5nkupvlrZDlhYPntKDlkIzmoLflj6/ku6Xlj5cgY29sbGFwc2libGUtYWx3YXlzLXNob3cg5ZKMXG4gKiAgIGNvbGxhcHNpYmxlLWNhc2NhZGUg57G755qE5b2x5ZON44CCXG4gKiAgIC0g5rOo5oSP5b+F6aG75piv5a2Q5YWD57Sg77yM55u05o6l55qE5paH5pys6IqC54K55LiN5Lya6ZqP5oqY5Y+g6ZqQ6JeP77yM5L6L5aaC77yaXG4gKiAgICAgPGRpdiBjbGFzcz1cImNvbGxhcHNpYmxlXCI+MTIzPHNwYW4+NDU2PC9zcGFuPjwvZGl2PlxuICogICDmipjlj6Dml7bvvIzigJw0NTbigJ3kvJrpmo/mipjlj6DpmpDol4/vvIzkvYbigJwxMjPigJ3kuI3kvJrjgIJcbiAqIC0g6Iul5bim5pyJIGNvbGxhcHNpYmxlLXVzaW5nLXNsaWRlIOexu++8jOmCo+S5iOaKmOWPoOaXtu+8jOS9v+eUqOa7keWKqOWKqOeUu+iAjOmdnua3oeWFpea3oeWHuueahFxuICogICDliqjnlLvjgILlu7rorq7lvZPlj6rmnInkuIDkuKrlhYPntKDkvJrooqvpmpDol4/ml7bvvIzmiY3liqDmraTnsbvjgIJcbiAqICAgLSDluKbmnIkgY29sbGFwc2libGUtdXNpbmctc2xpZGUg57G755qE5YWD57Sg5Lya6Ieq5Yqo5bim5pyJIGNvbGxhcHNpYmxlIOexu+OAglxuICogLSDoi6XluKbmnIkgY29sbGFwc2libGUtbmV4dCDnsbvvvIzpgqPkuYjlhbbmipjlj6DnmoTkuI3mmK/lhbboh6rouqvnmoTlrZDlhYPntKDvvIzogIzmmK/mipjlj6DntKfpmo9cbiAqICAg5YW25ZCO55qE5LiA5Liq5YWD57Sg44CCXG4gKiAgIC0g6L+Z56eN5oOF5Ya15LiL77yM5oqY5Y+g5oyJ6ZKu6buY6K6k6ZmE5Zyo6K+lIGNvbGxhcHNpYmxlLW5leHQg5YWD57Sg55qE5pyr5bC+44CCXG4gKiAgIC0g5bim5pyJIGNvbGxhcHNpYmxlLW5leHQg57G755qE5YWD57Sg5Lya6Ieq5Yqo5bim5pyJIGNvbGxhcHNpYmxlIOexu+OAglxuICogLSBkYXRhLWNvbGxhcHNlLWR1cmF0aW9uIOWxnuaAp+WPr+S7peiuvue9ruaKmOWPoOWKqOeUu+eahOaXtumVv++8jOm7mOiupOS4uiAyMDAg5q+r56eS44CCXG4gKiAtIOW4puaciSBjb2xsYXBzZWQg57G755qE5YWD57Sg5Yid5aeL5bCx5piv5bey5oqY5Y+g55qE44CCXG4gKiAtIGRhdGEtZXhwYW5kdGV4dCDlkowgZGF0YS1jb2xsYXBzZXRleHQg5Y+v55So5LqO5o6n5Yi25oqY5Y+g5oyJ6ZKu55qE5pi+56S65paH5a2X44CC5LiN5pSv5oyBXG4gKiAgIOe5geeugOi9rOaNou+8jOS9huaYr+WFtum7mOiupOWAvOaYr+WPr+S7peato+W4uOagueaNrueVjOmdouivreiogOe5geeugOi9rOaNoueahOOAglxuICovXG5pbXBvcnQge2dlbmVyYXRlVGFyZ2V0RWxlbWVudHN9IGZyb20gJy4vbW9kdWxlcy91dGlsL2dlbmVyYXRlVGFyZ2V0RWxlbWVudHMnO1xuaW1wb3J0IHttYWtlQ29sbGFwc2libGV9IGZyb20gJy4vbW9kdWxlcy9tYWtlQ29sbGFwc2libGUnO1xuaW1wb3J0IHtuYXZGcmFtZX0gZnJvbSAnLi9tb2R1bGVzL25hdkZyYW1lJztcblxubXcuaG9vaygnd2lraXBhZ2UuY29udGVudCcpLmFkZCgoJGNvbnRlbnQpOiB2b2lkID0+IHtcblx0Ly8gY29tcGF0aWJsZSB3aXRoIG9sZCBuYXZGcmFtZXMgKHNlZSB7e0hpZGVIfX0gYW5kIHt7SGlkZUZ9fSlcblx0bmF2RnJhbWUoJGNvbnRlbnQpO1xuXG5cdGNvbnN0ICRjb2xsYXBzaWJsZXM6IEpRdWVyeSA9IGdlbmVyYXRlVGFyZ2V0RWxlbWVudHMoJGNvbnRlbnQpO1xuXHRpZiAoISRjb2xsYXBzaWJsZXMubGVuZ3RoKSB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0bWFrZUNvbGxhcHNpYmxlKCRjb2xsYXBzaWJsZXMpO1xufSk7XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFNQSx5QkFBMEJDLGNBQTZCO0FBQUEsTUFBQUMsYUFBQUMsMkJBQ3RDRixTQUFTRyxLQUM5QixnRkFDRCxDQUFBLEdBQUFDO0FBQUEsTUFBQTtBQUZBLFNBQUFILFdBQUFJLEVBQUEsR0FBQSxFQUFBRCxTQUFBSCxXQUFBSyxFQUFBLEdBQUFDLFFBRUc7QUFBQSxZQUZRQyxVQUFBSixPQUFBSztBQUdWLFlBQU1DLFVBQWtCQyxFQUFFSCxPQUFPLEVBQUVJLE9BQU87QUFBQSxVQUFBQyxhQUFBWCwyQkFDbEJNLFFBQVFNLFNBQUEsR0FBQUM7QUFBQSxVQUFBO0FBQWhDLGFBQUFGLFdBQUFSLEVBQUEsR0FBQSxFQUFBVSxTQUFBRixXQUFBUCxFQUFBLEdBQUFDLFFBQTJDO0FBQUEsZ0JBQWhDUyxZQUFBRCxPQUFBTjtBQUNWLGNBQUlPLFVBQVVDLE1BQU0sR0FBRyxFQUFFLE1BQU0sc0JBQXNCO0FBS3BEUCxvQkFBUVEsU0FBU0YsVUFBVUcsUUFBUSxZQUFZLEVBQUUsQ0FBQztVQUNuRDtRQUNEO01BQUEsU0FBQUMsS0FBQTtBQUFBUCxtQkFBQVEsRUFBQUQsR0FBQTtNQUFBLFVBQUE7QUFBQVAsbUJBQUFTLEVBQUE7TUFBQTtJQUNEO0VBQUEsU0FBQUYsS0FBQTtBQUFBbkIsZUFBQW9CLEVBQUFELEdBQUE7RUFBQSxVQUFBO0FBQUFuQixlQUFBcUIsRUFBQTtFQUFBO0FBRUF0QixXQUFTRyxLQUFLLDZDQUE2QyxFQUFFZSxTQUFTLGFBQWE7QUFFbkYsUUFBTUssZ0JBQXdCdkIsU0FBU0csS0FBSyxjQUFjO0FBRTFELFNBQU9vQjtBQUNSOztBQ3JCQSxJQUFBQyxvQkFBa0NDLFFBQUEsaUJBQUE7O0FDQ2xDLElBQU1DLGNBQWNBLENBQUNDLGNBQXNCQyxTQUF1QjtBQUNqRSxRQUFNQyxXQUFvQkYsYUFBYUcsU0FBUyx5QkFBeUI7QUFDekUsTUFBSUgsYUFBYUcsU0FBUyxrQkFBa0IsR0FBRztBQUM5QyxVQUFNQyxXQUFtQkosYUFBYUssS0FBSztBQUUzQyxRQUFJSCxVQUFVO0FBQ2JFLGVBQVNFLFFBQVFMLElBQUk7SUFDdEIsT0FBTztBQUNORyxlQUFTRyxRQUFRTixJQUFJO0lBQ3RCO0VBQ0QsT0FBTztBQUNOLFVBQU1PLFlBQW9CUixhQUFhUyxHQUFHLE9BQU8sSUFDOUNULGFBQWFVLFNBQVMsRUFBRUEsU0FBUyxJQUFJLElBQ3BDVixhQUFhVyxTQUFTO0FBQUEsUUFBQUMsYUFBQXJDLDJCQUVKaUMsU0FBQSxHQUFBSztBQUFBLFFBQUE7QUFBdEIsV0FBQUQsV0FBQWxDLEVBQUEsR0FBQSxFQUFBbUMsU0FBQUQsV0FBQWpDLEVBQUEsR0FBQUMsUUFBaUM7QUFBQSxjQUF0QkMsVUFBQWdDLE9BQUEvQjtBQUNWLGNBQU1zQixXQUFtQnBCLEVBQUVILE9BQU87QUFDbEMsWUFBSXVCLFNBQVNELFNBQVMscUJBQXFCLEdBQUc7QUFDN0NKLHNCQUFZSyxVQUFVSCxJQUFJO1FBQzNCLFdBQVcsQ0FBQ0csU0FBU0QsU0FBUyx5QkFBeUIsR0FBRztBQUN6RCxjQUFJRCxVQUFVO0FBQ2JFLHFCQUFTRSxRQUFRTCxJQUFJO1VBQ3RCLE9BQU87QUFDTkcscUJBQVNHLFFBQVFOLElBQUk7VUFDdEI7UUFDRDtNQUNEO0lBQUEsU0FBQVIsS0FBQTtBQUFBbUIsaUJBQUFsQixFQUFBRCxHQUFBO0lBQUEsVUFBQTtBQUFBbUIsaUJBQUFqQixFQUFBO0lBQUE7RUFDRDtBQUNEOztBQzVCQSxJQUFNbUIsY0FBY0EsQ0FBQ2QsY0FBc0JDLFNBQXVCO0FBQ2pFLFFBQU1DLFdBQW9CRixhQUFhRyxTQUFTLHlCQUF5QjtBQUN6RSxNQUFJSCxhQUFhRyxTQUFTLGtCQUFrQixHQUFHO0FBQzlDLFVBQU1DLFdBQW1CSixhQUFhSyxLQUFLO0FBRTNDLFFBQUlILFVBQVU7QUFDYkUsZUFBU1csVUFBVWQsSUFBSTtJQUN4QixPQUFPO0FBQ05HLGVBQVNZLE9BQU9mLElBQUk7SUFDckI7RUFDRCxPQUFPO0FBQ04sVUFBTU8sWUFBb0JSLGFBQWFTLEdBQUcsT0FBTyxJQUM5Q1QsYUFBYVUsU0FBUyxFQUFFQSxTQUFTLElBQUksSUFDcENWLGFBQWFXLFNBQVM7QUFBQSxRQUFBTSxhQUFBMUMsMkJBRUppQyxTQUFBLEdBQUFVO0FBQUEsUUFBQTtBQUF0QixXQUFBRCxXQUFBdkMsRUFBQSxHQUFBLEVBQUF3QyxTQUFBRCxXQUFBdEMsRUFBQSxHQUFBQyxRQUFpQztBQUFBLGNBQXRCQyxVQUFBcUMsT0FBQXBDO0FBQ1YsY0FBTXNCLFdBQW1CcEIsRUFBRUgsT0FBTztBQUNsQyxZQUFJdUIsU0FBU0QsU0FBUyxxQkFBcUIsR0FBRztBQUM3Q1csc0JBQVlWLFVBQVVILElBQUk7UUFDM0IsV0FBVyxDQUFDRyxTQUFTRCxTQUFTLHlCQUF5QixHQUFHO0FBQ3pELGNBQUlELFVBQVU7QUFDYkUscUJBQVNXLFVBQVVkLElBQUk7VUFDeEIsT0FBTztBQUNORyxxQkFBU1ksT0FBT2YsSUFBSTtVQUNyQjtRQUNEO01BQ0Q7SUFBQSxTQUFBUixLQUFBO0FBQUF3QixpQkFBQXZCLEVBQUFELEdBQUE7SUFBQSxVQUFBO0FBQUF3QixpQkFBQXRCLEVBQUE7SUFBQTtFQUNEO0FBQ0Q7O0FDMUJBLElBQU13QixnQkFBaUJuQixrQkFBK0I7QUFDckQsUUFBTW9CLFlBQXFCcEIsYUFBYUcsU0FBUyxXQUFXO0FBQzVELFFBQU1rQixXQUFtQkMsT0FBT0MsU0FBU3ZCLGFBQWF3QixLQUFLLG1CQUFtQixHQUFhLEVBQUUsS0FBSztBQUVsRyxNQUFJSixXQUFXO0FBQ2ROLGdCQUFZZCxjQUFjcUIsUUFBUTtBQUNsQ3JCLGlCQUFheUIsWUFBWSxXQUFXO0VBQ3JDLE9BQU87QUFDTjFCLGdCQUFZQyxjQUFjcUIsUUFBUTtBQUNsQ3JCLGlCQUFhVCxTQUFTLFdBQVc7RUFDbEM7QUFDRDs7QUhYQSxJQUFNbUMsY0FBY0EsQ0FBQzFCLGNBQXNCMkIsY0FBc0JDLFVBQWtCQyxhQUEyQjtBQUM3RyxRQUFNQyxnQkFBaUJDLFdBQXlEO0FBQy9FLFFBQUksRUFBQSxHQUFDbEMsa0JBQUFtQyxxQkFBb0JELEtBQUssR0FBRztBQUNoQztJQUNEO0FBRUFBLFVBQU1FLGVBQWU7QUFFckJkLGtCQUFjbkIsWUFBWTtBQUUxQixRQUFJQSxhQUFhRyxTQUFTLFdBQVcsR0FBRztBQUN2Q3dCLG1CQUFhTyxLQUFLTCxRQUFRO0lBQzNCLE9BQU87QUFDTkYsbUJBQWFPLEtBQUtOLFFBQVE7SUFDM0I7RUFDRDtBQUVBRCxlQUFhUSxHQUFHLFNBQVNMLGFBQWE7QUFDdENILGVBQWFRLEdBQUcsV0FBV0wsYUFBYTtBQUN6Qzs7QUl0QkEsSUFBTU0sYUFBYUEsQ0FBQ3BDLGNBQXNCcUMsYUFBMkI7QUFDcEUsUUFBTUMsY0FBc0J0QyxhQUMxQnhCLEtBQUssaUNBQWlDLEVBQ3RDK0QsSUFBSSw4QkFBOEI7QUFFcEMsTUFBSXZDLGFBQWFHLFNBQVMsa0JBQWtCLEdBQUc7QUFFOUNILGlCQUFhd0MsT0FBT0gsUUFBUTtFQUM3QixXQUFXQyxZQUFZRyxRQUFRO0FBRTlCSCxnQkFBWUUsT0FBT0gsUUFBUTtBQUMzQkMsZ0JBQVkvQyxTQUFTLDZCQUE2QjtBQUNsRCtDLGdCQUFZSSxhQUFhMUMsWUFBWSxFQUFFVCxTQUFTLHlCQUF5QjtFQUMxRSxXQUFXUyxhQUFhRyxTQUFTLFFBQVEsR0FBRztBQUUzQ0gsaUJBQWFVLFNBQVMsZUFBZSxFQUFFaUMsTUFBTSxFQUFFcEQsU0FBUyx5QkFBeUIsRUFBRWlELE9BQU9ILFFBQVE7RUFDbkcsV0FBV3JDLGFBQWFHLFNBQVMsVUFBVSxHQUFHO0FBRTdDSCxpQkFBYVUsU0FBUyxVQUFVLEVBQUVpQyxNQUFNLEVBQUVwRCxTQUFTLHlCQUF5QixFQUFFaUQsT0FBT0gsUUFBUTtFQUM5RixXQUFXckMsYUFBYVMsR0FBRyxPQUFPLEdBQUc7QUFFcEMsVUFBTW1DLFdBQW1CNUMsYUFBYVUsU0FBUyxTQUFTO0FBQ3hELFFBQUlrQyxTQUFTSCxRQUFRO0FBRXBCRyxlQUFTRCxNQUFNLEVBQUVILE9BQU9ILFFBQVE7SUFDakMsT0FBTztBQUNOLFlBQU1RLFNBQXNDN0MsYUFBYVUsU0FBUyxFQUFFQSxTQUFTLElBQUk7QUFDakZtQyxhQUFPRixNQUFNLEVBQUVwRCxTQUFTLHlCQUF5QixFQUFFbUIsU0FBUyxFQUFFb0MsS0FBSyxFQUFFTixPQUFPSCxRQUFRO0lBQ3JGO0VBQ0QsT0FBTztBQUdOLFVBQU1VLFlBQW9CL0MsYUFBYVUsU0FBUywwQkFBMEI7QUFDMUUsUUFBSXFDLFVBQVVOLFFBQVE7QUFDckJNLGdCQUFVSixNQUFNLEVBQUVILE9BQU9ILFFBQVE7SUFDbEMsT0FBTztBQUNOckMsbUJBQWFnRCxRQUFRWCxRQUFRO0FBQzdCQSxlQUFTOUMsU0FBUyx5QkFBeUI7SUFDNUM7RUFDRDtBQUNEOztBQ3hDQSxJQUFBMEQscUJBQWtCQyxRQUFBcEQsUUFBQSxnQkFBQSxHQUFBLENBQUE7O0FDQ1gsSUFBTXFELFVBQVU7O0FERXZCLElBQU1DLHlCQUF5QkEsQ0FBQ3BELGNBQXNCNEIsVUFBa0JDLGFBQTZCO0FBQ3BHLFFBQU1RLFdBQVdyRCxFQUNoQmlFLG1DQUFBSSxRQUFBQyxjQUFDLFFBQUE7SUFBS2pFLFdBQVcsQ0FBQzhELFNBQVMsU0FBUztFQUFBLEdBQ2xDLEtBQ0RGLG1DQUFBSSxRQUFBQyxjQUFDLEtBQUE7SUFBRUMsTUFBSztJQUFTQyxVQUFVO0VBQUEsR0FDekJ4RCxhQUFhRyxTQUFTLFdBQVcsSUFBSTBCLFdBQVdELFFBQ2xELEdBQ0MsR0FDRixDQUNEO0FBRUEsU0FBT1M7QUFDUjs7QUVmQSxJQUFBb0IscUJBQXVCM0QsUUFBQSxpQkFBQTtBQUV2QixJQUFNNEQsa0JBQWtCQSxNQUFNO0FBQzdCLFNBQU87SUFDTkMsV0FBQSxHQUFVRixtQkFBQUcsVUFBUztNQUNsQkMsSUFBSTtNQUNKQyxJQUFJO01BQ0osV0FBVztNQUNYLFdBQVc7SUFDWixDQUFDO0lBQ0RDLFNBQUEsR0FBUU4sbUJBQUFHLFVBQVM7TUFDaEJDLElBQUk7TUFDSkMsSUFBSTtNQUNKLFdBQVc7TUFDWCxXQUFXO0lBQ1osQ0FBQztFQUNGO0FBQ0Q7QUFFQSxJQUFNRSxlQUFlTixnQkFBZ0I7QUFFckMsSUFBTU8sYUFBZ0RDLFNBQVE7QUFDN0QsU0FBT0YsYUFBYUUsR0FBRyxLQUFLQTtBQUM3Qjs7QUNqQkEsSUFBTUMsa0JBQW1CdkUsbUJBQWdDO0FBQUEsTUFBQXdFLGFBQUE3RiwyQkFDbENxQixhQUFBLEdBQUF5RTtBQUFBLE1BQUE7QUFBdEIsU0FBQUQsV0FBQTFGLEVBQUEsR0FBQSxFQUFBMkYsU0FBQUQsV0FBQXpGLEVBQUEsR0FBQUMsUUFBcUM7QUFBQSxZQUExQkMsVUFBQXdGLE9BQUF2RjtBQUNWLFlBQU1rQixlQUF1QmhCLEVBQUVILE9BQU87QUFDdEMsVUFBSW1CLGFBQWF3QixLQUFLLGtCQUFrQixHQUFHO0FBQzFDO01BQ0Q7QUFFQSxZQUFNSSxXQUFvQjVCLGFBQWF3QixLQUFLLGNBQWMsS0FBZ0J5QyxXQUFXLFVBQVU7QUFDL0YsWUFBTXBDLFdBQW9CN0IsYUFBYXdCLEtBQUssWUFBWSxLQUFnQnlDLFdBQVcsUUFBUTtBQUUzRixZQUFNNUIsV0FBbUJlLHVCQUF1QnBELGNBQWM0QixVQUFVQyxRQUFRO0FBQ2hGLFlBQU1GLGVBQXVCVSxTQUFTN0QsS0FBSyxHQUFHO0FBRTlDNEQsaUJBQVdwQyxjQUFjcUMsUUFBUTtBQUdqQyxVQUFJckMsYUFBYUcsU0FBUyxXQUFXLEdBQUc7QUFDdkNKLG9CQUFZQyxjQUFjLENBQUM7TUFDNUI7QUFFQTBCLGtCQUFZMUIsY0FBYzJCLGNBQWNDLFVBQVVDLFFBQVE7QUFFMUQ3QixtQkFBYXdCLEtBQUssb0JBQW9CLElBQUk7SUFDM0M7RUFBQSxTQUFBL0IsS0FBQTtBQUFBMkUsZUFBQTFFLEVBQUFELEdBQUE7RUFBQSxVQUFBO0FBQUEyRSxlQUFBekUsRUFBQTtFQUFBO0FBQ0Q7O0FDOUJBLElBQU0yRSxXQUFZakcsY0FBMkI7QUFBQSxNQUFBa0csYUFBQWhHLDJCQUV0QkYsU0FBU0csS0FBc0IsK0NBQStDLENBQUEsR0FBQWdHO0FBQUEsTUFBQTtBQUFwRyxTQUFBRCxXQUFBN0YsRUFBQSxHQUFBLEVBQUE4RixTQUFBRCxXQUFBNUYsRUFBQSxHQUFBQyxRQUF1RztBQUFBLFlBQTVGQyxVQUFBMkYsT0FBQTFGO0FBQ1ZELGNBQVE0RixPQUFPO0lBQ2hCO0VBQUEsU0FBQWhGLEtBQUE7QUFBQThFLGVBQUE3RSxFQUFBRCxHQUFBO0VBQUEsVUFBQTtBQUFBOEUsZUFBQTVFLEVBQUE7RUFBQTtBQUFBLE1BQUErRSxhQUFBbkcsMkJBR3NCRixTQUFTRyxLQUFxQixzQkFBc0IsQ0FBQSxHQUFBbUc7QUFBQSxNQUFBO0FBQTFFLFNBQUFELFdBQUFoRyxFQUFBLEdBQUEsRUFBQWlHLFNBQUFELFdBQUEvRixFQUFBLEdBQUFDLFFBQTZFO0FBQUEsWUFBbEVDLFVBQUE4RixPQUFBN0Y7QUFDVixVQUFJLENBQUNELFFBQVFNLFVBQVV5RixTQUFTLGFBQWEsR0FBRztBQUMvQy9GLGdCQUFRTSxVQUFVMEYsSUFBSSxhQUFhO01BQ3BDO0FBRUEsVUFBSSxDQUFDaEcsUUFBUU0sVUFBVXlGLFNBQVMsVUFBVSxHQUFHO0FBQzVDL0YsZ0JBQVFNLFVBQVVLLFFBQVEsWUFBWSxVQUFVO01BQ2pEO0lBQ0Q7RUFBQSxTQUFBQyxLQUFBO0FBQUFpRixlQUFBaEYsRUFBQUQsR0FBQTtFQUFBLFVBQUE7QUFBQWlGLGVBQUEvRSxFQUFBO0VBQUE7QUFBQSxNQUFBbUYsYUFBQXZHLDJCQUdzQkYsU0FBU0csS0FBcUIsc0JBQXNCLENBQUEsR0FBQXVHO0FBQUEsTUFBQTtBQUExRSxTQUFBRCxXQUFBcEcsRUFBQSxHQUFBLEVBQUFxRyxTQUFBRCxXQUFBbkcsRUFBQSxHQUFBQyxRQUE2RTtBQUFBLFlBQWxFQyxVQUFBa0csT0FBQWpHO0FBQ1YsVUFBSUQsUUFBUW1HLE1BQU1DLFlBQVksUUFBUTtBQUNyQztNQUNEO0FBRUEsVUFBSXBHLFFBQVFxRyxpQkFBaUJyRyxRQUFRcUcsY0FBYy9GLFVBQVV5RixTQUFTLFVBQVUsR0FBRztBQUNsRi9GLGdCQUFRcUcsY0FBYy9GLFVBQVUwRixJQUFJLFdBQVc7TUFDaEQ7SUFDRDtFQUFBLFNBQUFwRixLQUFBO0FBQUFxRixlQUFBcEYsRUFBQUQsR0FBQTtFQUFBLFVBQUE7QUFBQXFGLGVBQUFuRixFQUFBO0VBQUE7QUFDRDs7QUMzQkE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBb0NBd0YsR0FBR0MsS0FBSyxrQkFBa0IsRUFBRVAsSUFBS3hHLGNBQW1CO0FBRW5EaUcsV0FBU2pHLFFBQVE7QUFFakIsUUFBTXVCLGdCQUF3QnhCLHVCQUF1QkMsUUFBUTtBQUM3RCxNQUFJLENBQUN1QixjQUFjNkMsUUFBUTtBQUMxQjtFQUNEO0FBRUEwQixrQkFBZ0J2RSxhQUFhO0FBQzlCLENBQUM7IiwKICAibmFtZXMiOiBbImdlbmVyYXRlVGFyZ2V0RWxlbWVudHMiLCAiJGNvbnRlbnQiLCAiX2l0ZXJhdG9yMiIsICJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsICJmaW5kIiwgIl9zdGVwMiIsICJzIiwgIm4iLCAiZG9uZSIsICJlbGVtZW50IiwgInZhbHVlIiwgIiRwYXJlbnQiLCAiJCIsICJwYXJlbnQiLCAiX2l0ZXJhdG9yMyIsICJjbGFzc0xpc3QiLCAiX3N0ZXAzIiwgImNsYXNzTmFtZSIsICJzbGljZSIsICJhZGRDbGFzcyIsICJyZXBsYWNlIiwgImVyciIsICJlIiwgImYiLCAiJGNvbGxhcHNpYmxlcyIsICJpbXBvcnRfZXh0X2dhZGdldCIsICJyZXF1aXJlIiwgImhpZGVFbGVtZW50IiwgIiRjb2xsYXBzaWJsZSIsICJ0aW1lIiwgInVzZVNsaWRlIiwgImhhc0NsYXNzIiwgIiRlbGVtZW50IiwgIm5leHQiLCAic2xpZGVVcCIsICJmYWRlT3V0IiwgIiRlbGVtZW50cyIsICJpcyIsICJjaGlsZHJlbiIsICJjb250ZW50cyIsICJfaXRlcmF0b3I0IiwgIl9zdGVwNCIsICJzaG93RWxlbWVudCIsICJzbGlkZURvd24iLCAiZmFkZUluIiwgIl9pdGVyYXRvcjUiLCAiX3N0ZXA1IiwgInRvZ2dsZUVsZW1lbnQiLCAiY29sbGFwc2VkIiwgImR1cmF0aW9uIiwgIk51bWJlciIsICJwYXJzZUludCIsICJkYXRhIiwgInJlbW92ZUNsYXNzIiwgImFkZExpc3RlbmVyIiwgIiR0b2dnbGVyTGluayIsICJoaWRlVGV4dCIsICJzaG93VGV4dCIsICJldmVudExpc3RlbmVyIiwgImV2ZW50IiwgImNoZWNrQTExeUNvbmZpcm1LZXkiLCAicHJldmVudERlZmF1bHQiLCAidGV4dCIsICJvbiIsICJhZGRUb2dnbGVyIiwgIiR0b2dnbGVyIiwgIiRhcHBlbmRIZXJlIiwgIm5vdCIsICJhcHBlbmQiLCAibGVuZ3RoIiwgInBhcmVudHNVbnRpbCIsICJmaXJzdCIsICIkY2FwdGlvbiIsICIkdHJvd3MiLCAibGFzdCIsICIkdG9Ub2dnbGUiLCAicHJlcGVuZCIsICJpbXBvcnRfZXh0X2dhZGdldDIiLCAiX190b0VTTSIsICJ0b2dnbGVyIiwgImdlbmVyYXRlVG9nZ2xlckVsZW1lbnQiLCAiZGVmYXVsdCIsICJjcmVhdGVFbGVtZW50IiwgInJvbGUiLCAidGFiSW5kZXgiLCAiaW1wb3J0X2V4dF9nYWRnZXQzIiwgImdldEkxOG5NZXNzYWdlcyIsICJDb2xsYXBzZSIsICJsb2NhbGl6ZSIsICJlbiIsICJqYSIsICJFeHBhbmQiLCAiaTE4bk1lc3NhZ2VzIiwgImdldE1lc3NhZ2UiLCAia2V5IiwgIm1ha2VDb2xsYXBzaWJsZSIsICJfaXRlcmF0b3I2IiwgIl9zdGVwNiIsICJuYXZGcmFtZSIsICJfaXRlcmF0b3I3IiwgIl9zdGVwNyIsICJyZW1vdmUiLCAiX2l0ZXJhdG9yOCIsICJfc3RlcDgiLCAiY29udGFpbnMiLCAiYWRkIiwgIl9pdGVyYXRvcjkiLCAiX3N0ZXA5IiwgInN0eWxlIiwgImRpc3BsYXkiLCAicGFyZW50RWxlbWVudCIsICJtdyIsICJob29rIl0KfQo= diff --git a/dist/CookieWarning/CookieWarning.css b/dist/CookieWarning/CookieWarning.css index 4dbcf0f43..90f54aeb0 100644 --- a/dist/CookieWarning/CookieWarning.css +++ b/dist/CookieWarning/CookieWarning.css @@ -19,7 +19,7 @@ /* */ /* esbuild-css-modules-plugin-ns-css:src/CookieWarning/components/CookieWarning.module.less */ -.CookieWarning-module__warning_ukvfyG { +.CookieWarning-module__warning_ukvfyG__490 { z-index: 101; color: #191919; opacity: 1; @@ -37,10 +37,10 @@ left: 0; right: 0; } -.CookieWarning-module__warning_ukvfyG p { +.CookieWarning-module__warning_ukvfyG__490 p { margin: 0 auto .5rem; } -.CookieWarning-module__warning_ukvfyG .cdx-button { +.CookieWarning-module__warning_ukvfyG__490 .cdx-button { color: #fff; text-align: center; background-color: #36c; @@ -53,7 +53,7 @@ display: block; } @media screen and (min-width: 768px) { - .CookieWarning-module__warning_ukvfyG { + .CookieWarning-module__warning_ukvfyG__490 { width: 20em; left: 0; right: auto; @@ -62,4 +62,4 @@ /* */ -/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiZXNidWlsZC1jc3MtbW9kdWxlcy1wbHVnaW4tbnMtY3NzOnNyYy9Db29raWVXYXJuaW5nL2NvbXBvbmVudHMvQ29va2llV2FybmluZy5tb2R1bGUubGVzcyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyogPHN0ZGluPiAqL1xuLkNvb2tpZVdhcm5pbmctbW9kdWxlX193YXJuaW5nX3VrdmZ5RyB7XG4gIHotaW5kZXg6IDEwMTtcbiAgY29sb3I6ICMxOTE5MTk7XG4gIG9wYWNpdHk6IDE7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTZlNmU2O1xuICBib3JkZXItcmFkaXVzOiAuNWVtO1xuICBtYXgtd2lkdGg6IDkyLjUlO1xuICBtYXJnaW46IC43NWVtO1xuICBwYWRkaW5nOiAuNzVlbTtcbiAgZm9udC1zaXplOiAuOWVtO1xuICBsaW5lLWhlaWdodDogMS4yNTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBib3R0b206IDFlbTtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG59XG4uQ29va2llV2FybmluZy1tb2R1bGVfX3dhcm5pbmdfdWt2ZnlHIHAge1xuICBtYXJnaW46IDAgYXV0byAuNXJlbTtcbn1cbi5Db29raWVXYXJuaW5nLW1vZHVsZV9fd2FybmluZ191a3ZmeUcgLmNkeC1idXR0b24ge1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzZjO1xuICBib3JkZXItY29sb3I6ICMzNmM7XG4gIGJvcmRlci1yYWRpdXM6IC4yNWVtO1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHBhZGRpbmc6IC41ZW0gMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLkNvb2tpZVdhcm5pbmctbW9kdWxlX193YXJuaW5nX3VrdmZ5RyB7XG4gICAgd2lkdGg6IDIwZW07XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogYXV0bztcbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsQ0FBQztBQUNDLFdBQVM7QUFDVCxTQUFPO0FBQ1AsV0FBUztBQUNULGtCQUFnQjtBQUNoQixvQkFBa0I7QUFDbEIsVUFBUSxJQUFJLE1BQU07QUFDbEIsaUJBQWU7QUFDZixhQUFXO0FBQ1gsVUFBUTtBQUNSLFdBQVM7QUFDVCxhQUFXO0FBQ1gsZUFBYTtBQUNiLFlBQVU7QUFDVixVQUFRO0FBQ1IsUUFBTTtBQUNOLFNBQU87QUFDVDtBQUNBLENBbEJDLHFDQWtCcUM7QUFDcEMsVUFBUSxFQUFFLEtBQUs7QUFDakI7QUFDQSxDQXJCQyxxQ0FxQnFDLENBQUM7QUFDckMsU0FBTztBQUNQLGNBQVk7QUFDWixvQkFBa0I7QUFDbEIsZ0JBQWM7QUFDZCxpQkFBZTtBQUNmLFNBQU87QUFDUCxVQUFRLEVBQUU7QUFDVixXQUFTLEtBQUs7QUFDZCxlQUFhO0FBQ2IsV0FBUztBQUNYO0FBQ0EsT0FBTyxPQUFPLElBQUksQ0FBQyxTQUFTLEVBQUU7QUFDNUIsR0FsQ0Q7QUFtQ0csV0FBTztBQUNQLFVBQU07QUFDTixXQUFPO0FBQ1Q7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K */ +/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiZXNidWlsZC1jc3MtbW9kdWxlcy1wbHVnaW4tbnMtY3NzOnNyYy9Db29raWVXYXJuaW5nL2NvbXBvbmVudHMvQ29va2llV2FybmluZy5tb2R1bGUubGVzcyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyogPHN0ZGluPiAqL1xuLkNvb2tpZVdhcm5pbmctbW9kdWxlX193YXJuaW5nX3VrdmZ5R19fNDkwIHtcbiAgei1pbmRleDogMTAxO1xuICBjb2xvcjogIzE5MTkxOTtcbiAgb3BhY2l0eTogMTtcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlNmU2ZTY7XG4gIGJvcmRlci1yYWRpdXM6IC41ZW07XG4gIG1heC13aWR0aDogOTIuNSU7XG4gIG1hcmdpbjogLjc1ZW07XG4gIHBhZGRpbmc6IC43NWVtO1xuICBmb250LXNpemU6IC45ZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjI1O1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGJvdHRvbTogMWVtO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbn1cbi5Db29raWVXYXJuaW5nLW1vZHVsZV9fd2FybmluZ191a3ZmeUdfXzQ5MCBwIHtcbiAgbWFyZ2luOiAwIGF1dG8gLjVyZW07XG59XG4uQ29va2llV2FybmluZy1tb2R1bGVfX3dhcm5pbmdfdWt2ZnlHX180OTAgLmNkeC1idXR0b24ge1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzZjO1xuICBib3JkZXItY29sb3I6ICMzNmM7XG4gIGJvcmRlci1yYWRpdXM6IC4yNWVtO1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHBhZGRpbmc6IC41ZW0gMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLkNvb2tpZVdhcm5pbmctbW9kdWxlX193YXJuaW5nX3VrdmZ5R19fNDkwIHtcbiAgICB3aWR0aDogMjBlbTtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiBhdXRvO1xuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxDQUFDO0FBQ0MsV0FBUztBQUNULFNBQU87QUFDUCxXQUFTO0FBQ1Qsa0JBQWdCO0FBQ2hCLG9CQUFrQjtBQUNsQixVQUFRLElBQUksTUFBTTtBQUNsQixpQkFBZTtBQUNmLGFBQVc7QUFDWCxVQUFRO0FBQ1IsV0FBUztBQUNULGFBQVc7QUFDWCxlQUFhO0FBQ2IsWUFBVTtBQUNWLFVBQVE7QUFDUixRQUFNO0FBQ04sU0FBTztBQUNUO0FBQ0EsQ0FsQkMsMENBa0IwQztBQUN6QyxVQUFRLEVBQUUsS0FBSztBQUNqQjtBQUNBLENBckJDLDBDQXFCMEMsQ0FBQztBQUMxQyxTQUFPO0FBQ1AsY0FBWTtBQUNaLG9CQUFrQjtBQUNsQixnQkFBYztBQUNkLGlCQUFlO0FBQ2YsU0FBTztBQUNQLFVBQVEsRUFBRTtBQUNWLFdBQVMsS0FBSztBQUNkLGVBQWE7QUFDYixXQUFTO0FBQ1g7QUFDQSxPQUFPLE9BQU8sSUFBSSxDQUFDLFNBQVMsRUFBRTtBQUM1QixHQWxDRDtBQW1DRyxXQUFPO0FBQ1AsVUFBTTtBQUNOLFdBQU87QUFDVDtBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo= */ diff --git a/dist/CookieWarning/CookieWarning.js b/dist/CookieWarning/CookieWarning.js index 8d2d9c50f..ccebe1917 100644 --- a/dist/CookieWarning/CookieWarning.js +++ b/dist/CookieWarning/CookieWarning.js @@ -189,7 +189,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge var readingPIPPKey = "consentRead"; var storageKey = "ext.gadget.CookieWarning_cookieConsent"; //! src/CookieWarning/components/AgreeButton.tsx -var import_ext_gadget2 = __toESM(require("ext.gadget.React"), 1); +var import_ext_gadget2 = __toESM(require("ext.gadget.JSX"), 1); //! src/CookieWarning/modules/i18n.ts var import_ext_gadget = require("ext.gadget.i18n"); var getI18nMessages = () => { @@ -226,7 +226,7 @@ var AgreeButton = ({ }, getMessage("Agree")); var AgreeButton_default = AgreeButton; //! src/CookieWarning/components/ConsentNotice.tsx -var import_ext_gadget3 = __toESM(require("ext.gadget.React"), 1); +var import_ext_gadget3 = __toESM(require("ext.gadget.JSX"), 1); var ConsentNotice = () => /* @__PURE__ */ import_ext_gadget3.default.createElement(import_ext_gadget3.default.Fragment, null, /* @__PURE__ */ import_ext_gadget3.default.createElement("p", { innerHTML: getMessage("TOSNotice") }), /* @__PURE__ */ import_ext_gadget3.default.createElement("p", { @@ -234,9 +234,9 @@ var ConsentNotice = () => /* @__PURE__ */ import_ext_gadget3.default.createEleme })); var ConsentNotice_default = ConsentNotice; //! src/CookieWarning/components/RootElement.tsx -var import_ext_gadget4 = __toESM(require("ext.gadget.React"), 1); +var import_ext_gadget4 = __toESM(require("ext.gadget.JSX"), 1); //! src/CookieWarning/components/CookieWarning.module.less -var warning = "CookieWarning-module__warning_ukvfyG"; +var warning = "CookieWarning-module__warning_ukvfyG__490"; //! src/CookieWarning/components/RootElement.tsx var RootElement = ({ agreeButtonOnClick @@ -273,4 +273,4 @@ var RootElement = ({ /* */ -//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsibm9kZV9tb2R1bGVzLy5wbnBtL2Jyb2FkY2FzdGNoYW5uZWwtcG9seWZpbGxAMS4wLjEvbm9kZV9tb2R1bGVzL2Jyb2FkY2FzdGNoYW5uZWwtcG9seWZpbGwvaW5kZXguanMiLCAic3JjL0Nvb2tpZVdhcm5pbmcvb3B0aW9ucy5qc29uIiwgInNyYy9Db29raWVXYXJuaW5nL2NvbXBvbmVudHMvQWdyZWVCdXR0b24udHN4IiwgInNyYy9Db29raWVXYXJuaW5nL21vZHVsZXMvaTE4bi50cyIsICJzcmMvQ29va2llV2FybmluZy9jb21wb25lbnRzL0NvbnNlbnROb3RpY2UudHN4IiwgInNyYy9Db29raWVXYXJuaW5nL2NvbXBvbmVudHMvUm9vdEVsZW1lbnQudHN4IiwgInNyYy9Db29raWVXYXJuaW5nL2NvbXBvbmVudHMvQ29va2llV2FybmluZy5tb2R1bGUubGVzcyIsICJzcmMvQ29va2llV2FybmluZy9Db29raWVXYXJuaW5nLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIoZnVuY3Rpb24oZ2xvYmFsKSB7XG4gICAgdmFyIGNoYW5uZWxzID0gW107XG5cbiAgICBmdW5jdGlvbiBCcm9hZGNhc3RDaGFubmVsKGNoYW5uZWwpIHtcbiAgICAgICAgdmFyICR0aGlzID0gdGhpcztcbiAgICAgICAgY2hhbm5lbCA9IFN0cmluZyhjaGFubmVsKTtcblxuICAgICAgICB2YXIgaWQgPSAnJEJyb2FkY2FzdENoYW5uZWwkJyArIGNoYW5uZWwgKyAnJCc7XG5cbiAgICAgICAgY2hhbm5lbHNbaWRdID0gY2hhbm5lbHNbaWRdIHx8IFtdO1xuICAgICAgICBjaGFubmVsc1tpZF0ucHVzaCh0aGlzKTtcblxuICAgICAgICB0aGlzLl9uYW1lID0gY2hhbm5lbDtcbiAgICAgICAgdGhpcy5faWQgPSBpZDtcbiAgICAgICAgdGhpcy5fY2xvc2VkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX21jID0gbmV3IE1lc3NhZ2VDaGFubmVsKCk7XG4gICAgICAgIHRoaXMuX21jLnBvcnQxLnN0YXJ0KCk7XG4gICAgICAgIHRoaXMuX21jLnBvcnQyLnN0YXJ0KCk7XG5cbiAgICAgICAgZ2xvYmFsLmFkZEV2ZW50TGlzdGVuZXIoJ3N0b3JhZ2UnLCBmdW5jdGlvbihlKSB7XG4gICAgICAgICAgICBpZiAoZS5zdG9yYWdlQXJlYSAhPT0gZ2xvYmFsLmxvY2FsU3RvcmFnZSkgcmV0dXJuO1xuICAgICAgICAgICAgaWYgKGUubmV3VmFsdWUgPT0gbnVsbCB8fCBlLm5ld1ZhbHVlID09PSAnJykgcmV0dXJuO1xuICAgICAgICAgICAgaWYgKGUua2V5LnN1YnN0cmluZygwLCBpZC5sZW5ndGgpICE9PSBpZCkgcmV0dXJuO1xuICAgICAgICAgICAgdmFyIGRhdGEgPSBKU09OLnBhcnNlKGUubmV3VmFsdWUpO1xuICAgICAgICAgICAgJHRoaXMuX21jLnBvcnQyLnBvc3RNZXNzYWdlKGRhdGEpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBCcm9hZGNhc3RDaGFubmVsLnByb3RvdHlwZSA9IHtcbiAgICAgICAgLy8gQnJvYWRjYXN0Q2hhbm5lbCBBUElcbiAgICAgICAgZ2V0IG5hbWUoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fbmFtZTtcbiAgICAgICAgfSxcbiAgICAgICAgcG9zdE1lc3NhZ2U6IGZ1bmN0aW9uKG1lc3NhZ2UpIHtcbiAgICAgICAgICAgIHZhciAkdGhpcyA9IHRoaXM7XG4gICAgICAgICAgICBpZiAodGhpcy5fY2xvc2VkKSB7XG4gICAgICAgICAgICAgICAgdmFyIGUgPSBuZXcgRXJyb3IoKTtcbiAgICAgICAgICAgICAgICBlLm5hbWUgPSAnSW52YWxpZFN0YXRlRXJyb3InO1xuICAgICAgICAgICAgICAgIHRocm93IGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YXIgdmFsdWUgPSBKU09OLnN0cmluZ2lmeShtZXNzYWdlKTtcblxuICAgICAgICAgICAgLy8gQnJvYWRjYXN0IHRvIG90aGVyIGNvbnRleHRzIHZpYSBzdG9yYWdlIGV2ZW50cy4uLlxuICAgICAgICAgICAgdmFyIGtleSA9IHRoaXMuX2lkICsgU3RyaW5nKERhdGUubm93KCkpICsgJyQnICsgU3RyaW5nKE1hdGgucmFuZG9tKCkpO1xuICAgICAgICAgICAgZ2xvYmFsLmxvY2FsU3RvcmFnZS5zZXRJdGVtKGtleSwgdmFsdWUpO1xuICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICBnbG9iYWwubG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oa2V5KTtcbiAgICAgICAgICAgIH0sIDUwMCk7XG5cbiAgICAgICAgICAgIC8vIEJyb2FkY2FzdCB0byBjdXJyZW50IGNvbnRleHQgdmlhIHBvcnRzXG4gICAgICAgICAgICBjaGFubmVsc1t0aGlzLl9pZF0uZm9yRWFjaChmdW5jdGlvbihiYykge1xuICAgICAgICAgICAgICAgIGlmIChiYyA9PT0gJHRoaXMpIHJldHVybjtcbiAgICAgICAgICAgICAgICBiYy5fbWMucG9ydDIucG9zdE1lc3NhZ2UoSlNPTi5wYXJzZSh2YWx1ZSkpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIGNsb3NlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLl9jbG9zZWQpIHJldHVybjtcbiAgICAgICAgICAgIHRoaXMuX2Nsb3NlZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLl9tYy5wb3J0MS5jbG9zZSgpO1xuICAgICAgICAgICAgdGhpcy5fbWMucG9ydDIuY2xvc2UoKTtcblxuICAgICAgICAgICAgdmFyIGluZGV4ID0gY2hhbm5lbHNbdGhpcy5faWRdLmluZGV4T2YodGhpcyk7XG4gICAgICAgICAgICBjaGFubmVsc1t0aGlzLl9pZF0uc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgfSxcblxuICAgICAgICAvLyBFdmVudFRhcmdldCBBUElcbiAgICAgICAgZ2V0IG9ubWVzc2FnZSgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9tYy5wb3J0MS5vbm1lc3NhZ2U7XG4gICAgICAgIH0sXG4gICAgICAgIHNldCBvbm1lc3NhZ2UodmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuX21jLnBvcnQxLm9ubWVzc2FnZSA9IHZhbHVlO1xuICAgICAgICB9LFxuICAgICAgICBhZGRFdmVudExpc3RlbmVyOiBmdW5jdGlvbigvKnR5cGUsIGxpc3RlbmVyICwgdXNlQ2FwdHVyZSovKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fbWMucG9ydDEuYWRkRXZlbnRMaXN0ZW5lci5hcHBseSh0aGlzLl9tYy5wb3J0MSwgYXJndW1lbnRzKTtcbiAgICAgICAgfSxcbiAgICAgICAgcmVtb3ZlRXZlbnRMaXN0ZW5lcjogZnVuY3Rpb24oLyp0eXBlLCBsaXN0ZW5lciAsIHVzZUNhcHR1cmUqLykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX21jLnBvcnQxLnJlbW92ZUV2ZW50TGlzdGVuZXIuYXBwbHkodGhpcy5fbWMucG9ydDEsIGFyZ3VtZW50cyk7XG4gICAgICAgIH0sXG4gICAgICAgIGRpc3BhdGNoRXZlbnQ6IGZ1bmN0aW9uKC8qZXZlbnQqLykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX21jLnBvcnQxLmRpc3BhdGNoRXZlbnQuYXBwbHkodGhpcy5fbWMucG9ydDEsIGFyZ3VtZW50cyk7XG4gICAgICAgIH0sXG4gICAgfTtcblxuICAgIGdsb2JhbC5Ccm9hZGNhc3RDaGFubmVsID0gZ2xvYmFsLkJyb2FkY2FzdENoYW5uZWwgfHwgQnJvYWRjYXN0Q2hhbm5lbDtcbn0pKHNlbGYpO1xuIiwgIntcblx0XCJyZWFkaW5nUElQUEtleVwiOiBcImNvbnNlbnRSZWFkXCIsXG5cdFwic3RvcmFnZUtleVwiOiBcImV4dC5nYWRnZXQuQ29va2llV2FybmluZ19jb29raWVDb25zZW50XCJcbn1cbiIsICJpbXBvcnQgUmVhY3QgZnJvbSAnZXh0LmdhZGdldC5SZWFjdCc7XG5pbXBvcnQge2dldE1lc3NhZ2V9IGZyb20gJy4uL21vZHVsZXMvaTE4bic7XG5cbmludGVyZmFjZSBQcm9wcyB7XG5cdG9uQ2xpY2s6ICgpID0+IHZvaWQ7XG59XG5cbmNvbnN0IEFncmVlQnV0dG9uID0gKHtvbkNsaWNrfTogUHJvcHMpID0+IChcblx0PGJ1dHRvblxuXHRcdGNsYXNzTmFtZT17WydjZHgtYnV0dG9uJywgJ2NkeC1idXR0b24tLWFjdGlvbi1wcm9ncmVzc2l2ZScsICdjZHgtYnV0dG9uLS13ZWlnaHQtcHJpbWFyeSddfVxuXHRcdG9uQ2xpY2s9e29uQ2xpY2t9XG5cdD5cblx0XHR7Z2V0TWVzc2FnZSgnQWdyZWUnKX1cblx0PC9idXR0b24+XG4pO1xuXG5leHBvcnQgZGVmYXVsdCBBZ3JlZUJ1dHRvbjtcbiIsICJpbXBvcnQgKiBhcyBPUFRJT05TIGZyb20gJy4uL29wdGlvbnMuanNvbic7XG5pbXBvcnQge2xvY2FsaXplfSBmcm9tICdleHQuZ2FkZ2V0LmkxOG4nO1xuXG5jb25zdCBnZXRJMThuTWVzc2FnZXMgPSAoKSA9PiB7XG5cdHJldHVybiB7XG5cdFx0QWdyZWU6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnSSBhZ3JlZScsXG5cdFx0XHRqYTogJ+OBmeOBueOBpuioseWPr+OBmeOCiycsXG5cdFx0XHR6aDogJ+WQjOaEjycsXG5cdFx0fSksXG5cdFx0Q29va2llTm90aWNlOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogYFRvIHByb3ZpZGUgYmV0dGVyIGV4cGVyaWVuY2UsIHdlIHV0aWxpemUgY29va2llcyBhbmQgb3RoZXIgdGVjaG5vbG9naWVzIHRvIHByb3ZpZGUgc2VydmljZXMuIFlvdSBjYW4gcmVmZXIgdG8gb3VyIDxhIHJlbD1cIm5vb3BlbmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj1cIi93aWtpL1FXOlBJUFA/JHtPUFRJT05TLnJlYWRpbmdQSVBQS2V5fT0xXCIgdGl0bGU9XCJQZXJzb25hbCBJbmZvcm1hdGlvbiBQcm90ZWN0aW9uIFBvbGljeVwiPjxlbT5QZXJzb25hbCBJbmZvcm1hdGlvbiBQcm90ZWN0aW9uIFBvbGljeTwvZW0+PC9hPiB0byBsZWFybiBob3cgd2UgaGFuZGxlIHlvdXIgcGVyc29uYWwgaW5mb3JtYXRpb24uYCxcblx0XHRcdGphOiBg44KI44KK6Imv44GE44K144O844OT44K544KS5o+Q5L6b44GZ44KL44Gf44KB44Gr44CB44Kv44OD44Kt44O844KE44Gd44Gu5LuW44Gu5oqA6KGT44KS5Yip55So44GX44Gm44GE44G+44GZ44CC5YCL5Lq65oOF5aCx44Gu5Y+W44KK5omx44GE5pa55rOV44Gr44Gk44GE44Gm44Gv44CBPGEgcmVsPVwibm9vcGVuZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPVwiL3dpa2kvUVc6UElQUD8ke09QVElPTlMucmVhZGluZ1BJUFBLZXl9PTFcIiB0aXRsZT1cIuWAi+S6uuaDheWgseS/neitt+aWuemHnVwiPuWAi+S6uuaDheWgseS/neitt+aWuemHnTwvYT7jgpLjgZTlj4LnhafjgY/jgaDjgZXjgYTjgIJgLFxuXHRcdFx0J3poLWhhbnMnOiBg5Li65LqG5o+Q5L6b5pyA5L2z5L2T6aqM77yM5oiR5Lus5Yip55SoQ29va2ll5Y+K5YW25LuW5oqA5pyv5o+Q5L6b5pyN5Yqh77yb5oKo5Y+v5Lul5p+l6ZiF5oiR5Lus55qEPGEgcmVsPVwibm9vcGVuZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPVwiL3dpa2kvUVc6UElQUD8ke09QVElPTlMucmVhZGluZ1BJUFBLZXl9PTFcIiB0aXRsZT1cIuS4quS6uuS/oeaBr+S/neaKpOaWuemSiFwiPuS4quS6uuS/oeaBr+S/neaKpOaWuemSiDwvYT7vvIzkuobop6PmiJHku6zlpoLkvZXlpITnkIbmgqjnmoTkuKrkurrkv6Hmga/jgIJgLFxuXHRcdFx0J3poLWhhbnQnOiBg54K65LqG5o+Q5L6b5pyA5L2z6auU6amX77yM5oiR5Lus5Yip55SoQ29va2ll5Y+K5YW25LuW5oqA6KGT5o+Q5L6b5pyN5YuZ77yb5oKo5Y+v5Lul5p+l6Zax5oiR5YCR55qEPGEgcmVsPVwibm9vcGVuZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPVwiL3dpa2kvUVc6UElQUD8ke09QVElPTlMucmVhZGluZ1BJUFBLZXl9PTFcIiB0aXRsZT1cIuWAi+S6uuS/oeaBr+S/neitt+aWuemHnVwiPuWAi+S6uuS/oeaBr+S/neitt+aWuemHnTwvYT7vvIzkuobop6PmiJHlgJHlpoLkvZXomZXnkIbmgqjnmoTlgIvkurrkv6Hmga9gLFxuXHRcdH0pLFxuXHRcdFRPU05vdGljZTogbG9jYWxpemUoe1xuXHRcdFx0ZW46IGBCeSB1c2luZyB0aGlzIHNpdGUsIHlvdSBhZ3JlZSB0byBvdXIgPGEgcmVsPVwibm9vcGVuZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPVwiL3dpa2kvUVc6VE9TPyR7T1BUSU9OUy5yZWFkaW5nUElQUEtleX09MVwiIHRpdGxlPVwiVGVybXMgb2YgVXNlXCI+PGVtPlRlcm1zIG9mIFVzZTwvZW0+PC9hPiwgPGEgcmVsPVwibm9vcGVuZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPVwiL3dpa2kvUVc6UElQUD8ke09QVElPTlMucmVhZGluZ1BJUFBLZXl9PTFcIiB0aXRsZT1cIlBlcnNvbmFsIEluZm9ybWF0aW9uIFByb3RlY3Rpb24gUG9saWN5XCI+PGVtPlBlcnNvbmFsIEluZm9ybWF0aW9uIFByb3RlY3Rpb24gUG9saWN5PC9lbT48L2E+LCBhbmQgb3RoZXIgPGEgcmVsPVwibm9vcGVuZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPVwiL3dpa2kvUVc6TEFXPyR7T1BUSU9OUy5yZWFkaW5nUElQUEtleX09MVwiIHRpdGxlPVwiTGVnYWwgcG9saWNpZXNcIj5sZWdhbCBwb2xpY2llczwvYT4uYCxcblx0XHRcdGphOiBg44GT44Gu44K144Kk44OI44KS5Yip55So44GZ44KL44GT44Go44Gn44CBPGEgcmVsPVwibm9vcGVuZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPVwiL3dpa2kvUVc6VE9TPyR7T1BUSU9OUy5yZWFkaW5nUElQUEtleX09MVwiIHRpdGxlPVwi5Yip55So6KaP57SEXCI+5Yip55So6KaP57SEPC9hPuOAgTxhIHJlbD1cIm5vb3BlbmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj1cIi93aWtpL1FXOlBJUFA/JHtPUFRJT05TLnJlYWRpbmdQSVBQS2V5fT0xXCIgdGl0bGU9XCLlgIvkurrmg4XloLHkv53orbfmlrnph51cIj7lgIvkurrmg4XloLHkv53orbfmlrnph508L2E+44CB44Gd44Gu5LuW44GuPGEgcmVsPVwibm9vcGVuZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPVwiL3dpa2kvUVc6TEFXPyR7T1BUSU9OUy5yZWFkaW5nUElQUEtleX09MVwiIHRpdGxlPVwi5rOV55qE44Od44Oq44K344O8XCI+5rOV55qE44Od44Oq44K344O8PC9hPuOBq+OBpOOBhOOBpuWNgeWIhuOBq+eQhuino+OBl+OAgemBteWuiOOBmeOCi+OBk+OBqOOBq+WQjOaEj+OBl+OBn+OCguOBruOBqOOBv+OBquOBleOCjOOBvuOBmeOAgmAsXG5cdFx0XHQnemgtaGFucyc6IGDorr/pl67mnKznvZHnq5nvvIzmiJbku6Xku7vkvZXmlrnlvI/kvb/nlKjmnKznvZHnq5nvvIzlnYfku6Pooajmgqjlt7Lku5Tnu4bpmIXor7vjgIHlhYXliIbkuobop6PlubblkIzmhI/pgbXlrojmnKznvZHnq5nnmoQ8YSByZWw9XCJub29wZW5lclwiIHRhcmdldD1cIl9ibGFua1wiIGhyZWY9XCIvd2lraS9RVzpUT1M/JHtPUFRJT05TLnJlYWRpbmdQSVBQS2V5fT0xXCIgdGl0bGU9XCLnlKjmiLfljY/orq5cIj7nlKjmiLfljY/orq48L2E+44CBPGEgcmVsPVwibm9vcGVuZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPVwiL3dpa2kvUVc6UElQUD8ke09QVElPTlMucmVhZGluZ1BJUFBLZXl9PTFcIiB0aXRsZT1cIuS4quS6uuS/oeaBr+S/neaKpOaWuemSiFwiPuS4quS6uuS/oeaBr+S/neaKpOaWuemSiDwvYT7lj4rlhbbku5blkITpobk8YSByZWw9XCJub29wZW5lclwiIHRhcmdldD1cIl9ibGFua1wiIGhyZWY9XCIvd2lraS9RVzpMQVc/JHtPUFRJT05TLnJlYWRpbmdQSVBQS2V5fT0xXCIgdGl0bGU9XCLms5XlvovmlrnpkohcIj7ms5Xlvovmlrnpkog8L2E+55qE6KeE5a6a44CCYCxcblx0XHRcdCd6aC1oYW50JzogYOWtmOWPluacrOe2suerme+8jOaIluS7peS7u+S9leaWueW8j+S9v+eUqOacrOe2suerme+8jOWdh+S7o+ihqOaCqOW3suS7lOe0sOmWseiugOOAgeWFheWIhuS6huino+S4puWQjOaEj+mBteWuiOacrOe2suermeeahDxhIHJlbD1cIm5vb3BlbmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj1cIi93aWtpL1FXOlRPUz8ke09QVElPTlMucmVhZGluZ1BJUFBLZXl9PTFcIiB0aXRsZT1cIueUqOaItuWNlOitsFwiPueUqOaItuWNlOitsDwvYT7jgIE8YSByZWw9XCJub29wZW5lclwiIHRhcmdldD1cIl9ibGFua1wiIGhyZWY9XCIvd2lraS9RVzpQSVBQPyR7T1BUSU9OUy5yZWFkaW5nUElQUEtleX09MVwiIHRpdGxlPVwi5YCL5Lq65L+h5oGv5L+d6K235pa56YedXCI+5YCL5Lq65L+h5oGv5L+d6K235pa56YedPC9hPuWPiuWFtuS7luWQhOmghTxhIHJlbD1cIm5vb3BlbmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj1cIi93aWtpL1FXOkxBVz8ke09QVElPTlMucmVhZGluZ1BJUFBLZXl9PTFcIiB0aXRsZT1cIuazleW+i+aWuemHnVwiPuazleW+i+aWuemHnTwvYT7nmoTopo/lrprjgIJgLFxuXHRcdH0pLFxuXHR9O1xufTtcbmNvbnN0IGkxOG5NZXNzYWdlcyA9IGdldEkxOG5NZXNzYWdlcygpO1xuXG5jb25zdCBnZXRNZXNzYWdlOiBHZXRNZXNzYWdlczx0eXBlb2YgaTE4bk1lc3NhZ2VzPiA9IChrZXkpID0+IHtcblx0cmV0dXJuIGkxOG5NZXNzYWdlc1trZXldIHx8IGtleTtcbn07XG5cbmV4cG9ydCB7Z2V0TWVzc2FnZX07XG4iLCAiaW1wb3J0IFJlYWN0IGZyb20gJ2V4dC5nYWRnZXQuUmVhY3QnO1xuaW1wb3J0IHtnZXRNZXNzYWdlfSBmcm9tICcuLi9tb2R1bGVzL2kxOG4nO1xuXG5jb25zdCBDb25zZW50Tm90aWNlID0gKCkgPT4gKFxuXHQ8PlxuXHRcdDxwIGlubmVySFRNTD17Z2V0TWVzc2FnZSgnVE9TTm90aWNlJyl9IC8+XG5cdFx0PHAgaW5uZXJIVE1MPXtnZXRNZXNzYWdlKCdDb29raWVOb3RpY2UnKX0gLz5cblx0PC8+XG4pO1xuXG5leHBvcnQgZGVmYXVsdCBDb25zZW50Tm90aWNlO1xuIiwgImltcG9ydCBBZ3JlZUJ1dHRvbiBmcm9tICcuL0FncmVlQnV0dG9uJztcbmltcG9ydCBDb25zZW50Tm90aWNlIGZyb20gJy4vQ29uc2VudE5vdGljZSc7XG5pbXBvcnQgUmVhY3QgZnJvbSAnZXh0LmdhZGdldC5SZWFjdCc7XG5pbXBvcnQge3dhcm5pbmd9IGZyb20gJy4vQ29va2llV2FybmluZy5tb2R1bGUubGVzcyc7XG5cbmludGVyZmFjZSBQcm9wcyB7XG5cdGFncmVlQnV0dG9uT25DbGljazogKCkgPT4gdm9pZDtcbn1cblxuY29uc3QgUm9vdEVsZW1lbnQgPSAoe2FncmVlQnV0dG9uT25DbGlja306IFByb3BzKSA9PiAoXG5cdDxkaXYgY2xhc3NOYW1lPXtbd2FybmluZywgJ25vcHJpbnQnXX0+XG5cdFx0PENvbnNlbnROb3RpY2UgLz5cblx0XHQ8QWdyZWVCdXR0b24gb25DbGljaz17YWdyZWVCdXR0b25PbkNsaWNrfSAvPlxuXHQ8L2Rpdj5cbik7XG5cbmV4cG9ydCB7Um9vdEVsZW1lbnR9O1xuIiwgImltcG9ydCBcImVzYnVpbGQtY3NzLW1vZHVsZXMtcGx1Z2luLW5zLWNzczpzcmMvQ29va2llV2FybmluZy9jb21wb25lbnRzL0Nvb2tpZVdhcm5pbmcubW9kdWxlLmxlc3NcIjtcbmV4cG9ydCBjb25zdCB3YXJuaW5nID0gXCJDb29raWVXYXJuaW5nLW1vZHVsZV9fd2FybmluZ191a3ZmeUdcIjtcblxuZXhwb3J0IGRlZmF1bHQge1xuICBcIndhcm5pbmdcIjogd2FybmluZ1xufTtcbiAgICAgICIsICJpbXBvcnQgKiBhcyBPUFRJT05TIGZyb20gJy4vb3B0aW9ucy5qc29uJztcbmltcG9ydCB7Um9vdEVsZW1lbnR9IGZyb20gJy4vY29tcG9uZW50cy9Sb290RWxlbWVudCc7XG5cbihmdW5jdGlvbiBjb29raWVXYXJuaW5nKCk6IHZvaWQge1xuXHRjb25zdCB7d2dVc2VyTmFtZX0gPSBtdy5jb25maWcuZ2V0KCk7XG5cdGNvbnN0IGxhc3RTdG9yYWdlVmFsdWU6IHN0cmluZyB8IG51bGwgPSBtdy5zdG9yYWdlLmdldChPUFRJT05TLnN0b3JhZ2VLZXkpIGFzIHN0cmluZyB8IG51bGw7XG5cdGNvbnN0IHVybENvbnNlbnRSZWFkOiBzdHJpbmcgfCBudWxsID0gbXcudXRpbC5nZXRQYXJhbVZhbHVlKE9QVElPTlMucmVhZGluZ1BJUFBLZXkpO1xuXG5cdGlmICh3Z1VzZXJOYW1lIHx8IGxhc3RTdG9yYWdlVmFsdWUgPT09ICcxJyB8fCB1cmxDb25zZW50UmVhZCkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGNvbnN0IGNsb3NlV2FybmluZyA9ICgpOiB2b2lkID0+IHtcblx0XHRicm9hZGNhc3RDaGFubmVsLnBvc3RNZXNzYWdlKCdjbG9zZScpO1xuXHRcdGJyb2FkY2FzdENoYW5uZWwuY2xvc2UoKTtcblx0XHRyb290RWxlbWVudC5yZW1vdmUoKTtcblx0XHRtdy5zdG9yYWdlLnNldChPUFRJT05TLnN0b3JhZ2VLZXksICcxJywgNjAgKiA2MCAqIDEwMDAgKiAyNCAqIDMwKTtcblx0fTtcblxuXHRjb25zdCBicm9hZGNhc3RDaGFubmVsOiBCcm9hZGNhc3RDaGFubmVsID0gbmV3IEJyb2FkY2FzdENoYW5uZWwoT1BUSU9OUy5zdG9yYWdlS2V5KTtcblx0YnJvYWRjYXN0Q2hhbm5lbC5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgY2xvc2VXYXJuaW5nKTtcblxuXHRjb25zdCByb290RWxlbWVudCA9IFJvb3RFbGVtZW50KHthZ3JlZUJ1dHRvbk9uQ2xpY2s6IGNsb3NlV2FybmluZ30pO1xuXG5cdGRv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QyxPQUFPQyxJQUFJO0FBQ25DLFFBQU1DLG1CQUFrQ0gsR0FBR0ksUUFBUUYsSUFBWXBDLFVBQVU7QUFDekUsUUFBTXVDLGlCQUFnQ0wsR0FBR00sS0FBS0MsY0FBc0IxQyxjQUFjO0FBRWxGLE1BQUlrQyxjQUFjSSxxQkFBcUIsT0FBT0UsZ0JBQWdCO0FBQzdEO0VBQ0Q7QUFFQSxRQUFNRyxlQUFlQSxNQUFZO0FBQ2hDQyxxQkFBaUJDLFlBQVksT0FBTztBQUNwQ0QscUJBQWlCRSxNQUFNO0FBQ3ZCQyxnQkFBWUMsT0FBTztBQUNuQmIsT0FBR0ksUUFBUVUsSUFBWWhELFlBQVksS0FBSyxLQUFLLEtBQUssTUFBTyxLQUFLLEVBQUU7RUFDakU7QUFFQSxRQUFNMkMsbUJBQXFDLElBQUlNLGlCQUF5QmpELFVBQVU7QUFDbEYyQyxtQkFBaUJPLGlCQUFpQixXQUFXUixZQUFZO0FBRXpELFFBQU1JLGNBQWNoQixZQUFZO0lBQUNDLG9CQUFvQlc7RUFBWSxDQUFDO0FBRWxFUyxXQUFTQyxLQUFLQyxPQUFPUCxXQUFXO0FBQ2pDLEdBQUc7IiwKICAibmFtZXMiOiBbIkJyb2FkY2FzdENoYW5uZWwiLCAicmVhZGluZ1BJUFBLZXkiLCAic3RvcmFnZUtleSIsICJpbXBvcnRfZXh0X2dhZGdldDIiLCAiX190b0VTTSIsICJyZXF1aXJlIiwgImltcG9ydF9leHRfZ2FkZ2V0IiwgImdldEkxOG5NZXNzYWdlcyIsICJBZ3JlZSIsICJsb2NhbGl6ZSIsICJlbiIsICJqYSIsICJ6aCIsICJDb29raWVOb3RpY2UiLCAiY29uY2F0IiwgIlRPU05vdGljZSIsICJpMThuTWVzc2FnZXMiLCAiZ2V0TWVzc2FnZSIsICJrZXkiLCAiQWdyZWVCdXR0b24iLCAib25DbGljayIsICJkZWZhdWx0IiwgImNyZWF0ZUVsZW1lbnQiLCAiY2xhc3NOYW1lIiwgIkFncmVlQnV0dG9uX2RlZmF1bHQiLCAiaW1wb3J0X2V4dF9nYWRnZXQzIiwgIkNvbnNlbnROb3RpY2UiLCAiRnJhZ21lbnQiLCAiaW5uZXJIVE1MIiwgIkNvbnNlbnROb3RpY2VfZGVmYXVsdCIsICJpbXBvcnRfZXh0X2dhZGdldDQiLCAid2FybmluZyIsICJSb290RWxlbWVudCIsICJhZ3JlZUJ1dHRvbk9uQ2xpY2siLCAiY29va2llV2FybmluZyIsICJ3Z1VzZXJOYW1lIiwgIm13IiwgImNvbmZpZyIsICJnZXQiLCAibGFzdFN0b3JhZ2VWYWx1ZSIsICJzdG9yYWdlIiwgInVybENvbnNlbnRSZWFkIiwgInV0aWwiLCAiZ2V0UGFyYW1WYWx1ZSIsICJjbG9zZVdhcm5pbmciLCAiYnJvYWRjYXN0Q2hhbm5lbCIsICJwb3N0TWVzc2FnZSIsICJjbG9zZSIsICJyb290RWxlbWVudCIsICJyZW1vdmUiLCAic2V0IiwgIkJyb2FkY2FzdENoYW5uZWwiLCAiYWRkRXZlbnRMaXN0ZW5lciIsICJkb2N1bWVudCIsICJib2R5IiwgImFwcGVuZCJdCn0K +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsibm9kZV9tb2R1bGVzLy5wbnBtL2Jyb2FkY2FzdGNoYW5uZWwtcG9seWZpbGxAMS4wLjEvbm9kZV9tb2R1bGVzL2Jyb2FkY2FzdGNoYW5uZWwtcG9seWZpbGwvaW5kZXguanMiLCAic3JjL0Nvb2tpZVdhcm5pbmcvb3B0aW9ucy5qc29uIiwgInNyYy9Db29raWVXYXJuaW5nL2NvbXBvbmVudHMvQWdyZWVCdXR0b24udHN4IiwgInNyYy9Db29raWVXYXJuaW5nL21vZHVsZXMvaTE4bi50cyIsICJzcmMvQ29va2llV2FybmluZy9jb21wb25lbnRzL0NvbnNlbnROb3RpY2UudHN4IiwgInNyYy9Db29raWVXYXJuaW5nL2NvbXBvbmVudHMvUm9vdEVsZW1lbnQudHN4IiwgInNyYy9Db29raWVXYXJuaW5nL2NvbXBvbmVudHMvQ29va2llV2FybmluZy5tb2R1bGUubGVzcyIsICJzcmMvQ29va2llV2FybmluZy9Db29raWVXYXJuaW5nLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIoZnVuY3Rpb24oZ2xvYmFsKSB7XG4gICAgdmFyIGNoYW5uZWxzID0gW107XG5cbiAgICBmdW5jdGlvbiBCcm9hZGNhc3RDaGFubmVsKGNoYW5uZWwpIHtcbiAgICAgICAgdmFyICR0aGlzID0gdGhpcztcbiAgICAgICAgY2hhbm5lbCA9IFN0cmluZyhjaGFubmVsKTtcblxuICAgICAgICB2YXIgaWQgPSAnJEJyb2FkY2FzdENoYW5uZWwkJyArIGNoYW5uZWwgKyAnJCc7XG5cbiAgICAgICAgY2hhbm5lbHNbaWRdID0gY2hhbm5lbHNbaWRdIHx8IFtdO1xuICAgICAgICBjaGFubmVsc1tpZF0ucHVzaCh0aGlzKTtcblxuICAgICAgICB0aGlzLl9uYW1lID0gY2hhbm5lbDtcbiAgICAgICAgdGhpcy5faWQgPSBpZDtcbiAgICAgICAgdGhpcy5fY2xvc2VkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX21jID0gbmV3IE1lc3NhZ2VDaGFubmVsKCk7XG4gICAgICAgIHRoaXMuX21jLnBvcnQxLnN0YXJ0KCk7XG4gICAgICAgIHRoaXMuX21jLnBvcnQyLnN0YXJ0KCk7XG5cbiAgICAgICAgZ2xvYmFsLmFkZEV2ZW50TGlzdGVuZXIoJ3N0b3JhZ2UnLCBmdW5jdGlvbihlKSB7XG4gICAgICAgICAgICBpZiAoZS5zdG9yYWdlQXJlYSAhPT0gZ2xvYmFsLmxvY2FsU3RvcmFnZSkgcmV0dXJuO1xuICAgICAgICAgICAgaWYgKGUubmV3VmFsdWUgPT0gbnVsbCB8fCBlLm5ld1ZhbHVlID09PSAnJykgcmV0dXJuO1xuICAgICAgICAgICAgaWYgKGUua2V5LnN1YnN0cmluZygwLCBpZC5sZW5ndGgpICE9PSBpZCkgcmV0dXJuO1xuICAgICAgICAgICAgdmFyIGRhdGEgPSBKU09OLnBhcnNlKGUubmV3VmFsdWUpO1xuICAgICAgICAgICAgJHRoaXMuX21jLnBvcnQyLnBvc3RNZXNzYWdlKGRhdGEpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBCcm9hZGNhc3RDaGFubmVsLnByb3RvdHlwZSA9IHtcbiAgICAgICAgLy8gQnJvYWRjYXN0Q2hhbm5lbCBBUElcbiAgICAgICAgZ2V0IG5hbWUoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fbmFtZTtcbiAgICAgICAgfSxcbiAgICAgICAgcG9zdE1lc3NhZ2U6IGZ1bmN0aW9uKG1lc3NhZ2UpIHtcbiAgICAgICAgICAgIHZhciAkdGhpcyA9IHRoaXM7XG4gICAgICAgICAgICBpZiAodGhpcy5fY2xvc2VkKSB7XG4gICAgICAgICAgICAgICAgdmFyIGUgPSBuZXcgRXJyb3IoKTtcbiAgICAgICAgICAgICAgICBlLm5hbWUgPSAnSW52YWxpZFN0YXRlRXJyb3InO1xuICAgICAgICAgICAgICAgIHRocm93IGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YXIgdmFsdWUgPSBKU09OLnN0cmluZ2lmeShtZXNzYWdlKTtcblxuICAgICAgICAgICAgLy8gQnJvYWRjYXN0IHRvIG90aGVyIGNvbnRleHRzIHZpYSBzdG9yYWdlIGV2ZW50cy4uLlxuICAgICAgICAgICAgdmFyIGtleSA9IHRoaXMuX2lkICsgU3RyaW5nKERhdGUubm93KCkpICsgJyQnICsgU3RyaW5nKE1hdGgucmFuZG9tKCkpO1xuICAgICAgICAgICAgZ2xvYmFsLmxvY2FsU3RvcmFnZS5zZXRJdGVtKGtleSwgdmFsdWUpO1xuICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICBnbG9iYWwubG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oa2V5KTtcbiAgICAgICAgICAgIH0sIDUwMCk7XG5cbiAgICAgICAgICAgIC8vIEJyb2FkY2FzdCB0byBjdXJyZW50IGNvbnRleHQgdmlhIHBvcnRzXG4gICAgICAgICAgICBjaGFubmVsc1t0aGlzLl9pZF0uZm9yRWFjaChmdW5jdGlvbihiYykge1xuICAgICAgICAgICAgICAgIGlmIChiYyA9PT0gJHRoaXMpIHJldHVybjtcbiAgICAgICAgICAgICAgICBiYy5fbWMucG9ydDIucG9zdE1lc3NhZ2UoSlNPTi5wYXJzZSh2YWx1ZSkpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIGNsb3NlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLl9jbG9zZWQpIHJldHVybjtcbiAgICAgICAgICAgIHRoaXMuX2Nsb3NlZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLl9tYy5wb3J0MS5jbG9zZSgpO1xuICAgICAgICAgICAgdGhpcy5fbWMucG9ydDIuY2xvc2UoKTtcblxuICAgICAgICAgICAgdmFyIGluZGV4ID0gY2hhbm5lbHNbdGhpcy5faWRdLmluZGV4T2YodGhpcyk7XG4gICAgICAgICAgICBjaGFubmVsc1t0aGlzLl9pZF0uc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgfSxcblxuICAgICAgICAvLyBFdmVudFRhcmdldCBBUElcbiAgICAgICAgZ2V0IG9ubWVzc2FnZSgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9tYy5wb3J0MS5vbm1lc3NhZ2U7XG4gICAgICAgIH0sXG4gICAgICAgIHNldCBvbm1lc3NhZ2UodmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuX21jLnBvcnQxLm9ubWVzc2FnZSA9IHZhbHVlO1xuICAgICAgICB9LFxuICAgICAgICBhZGRFdmVudExpc3RlbmVyOiBmdW5jdGlvbigvKnR5cGUsIGxpc3RlbmVyICwgdXNlQ2FwdHVyZSovKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fbWMucG9ydDEuYWRkRXZlbnRMaXN0ZW5lci5hcHBseSh0aGlzLl9tYy5wb3J0MSwgYXJndW1lbnRzKTtcbiAgICAgICAgfSxcbiAgICAgICAgcmVtb3ZlRXZlbnRMaXN0ZW5lcjogZnVuY3Rpb24oLyp0eXBlLCBsaXN0ZW5lciAsIHVzZUNhcHR1cmUqLykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX21jLnBvcnQxLnJlbW92ZUV2ZW50TGlzdGVuZXIuYXBwbHkodGhpcy5fbWMucG9ydDEsIGFyZ3VtZW50cyk7XG4gICAgICAgIH0sXG4gICAgICAgIGRpc3BhdGNoRXZlbnQ6IGZ1bmN0aW9uKC8qZXZlbnQqLykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX21jLnBvcnQxLmRpc3BhdGNoRXZlbnQuYXBwbHkodGhpcy5fbWMucG9ydDEsIGFyZ3VtZW50cyk7XG4gICAgICAgIH0sXG4gICAgfTtcblxuICAgIGdsb2JhbC5Ccm9hZGNhc3RDaGFubmVsID0gZ2xvYmFsLkJyb2FkY2FzdENoYW5uZWwgfHwgQnJvYWRjYXN0Q2hhbm5lbDtcbn0pKHNlbGYpO1xuIiwgIntcblx0XCJyZWFkaW5nUElQUEtleVwiOiBcImNvbnNlbnRSZWFkXCIsXG5cdFwic3RvcmFnZUtleVwiOiBcImV4dC5nYWRnZXQuQ29va2llV2FybmluZ19jb29raWVDb25zZW50XCJcbn1cbiIsICJpbXBvcnQgUmVhY3QgZnJvbSAnZXh0LmdhZGdldC5KU1gnO1xuaW1wb3J0IHtnZXRNZXNzYWdlfSBmcm9tICcuLi9tb2R1bGVzL2kxOG4nO1xuXG5pbnRlcmZhY2UgUHJvcHMge1xuXHRvbkNsaWNrOiAoKSA9PiB2b2lkO1xufVxuXG5jb25zdCBBZ3JlZUJ1dHRvbiA9ICh7b25DbGlja306IFByb3BzKSA9PiAoXG5cdDxidXR0b25cblx0XHRjbGFzc05hbWU9e1snY2R4LWJ1dHRvbicsICdjZHgtYnV0dG9uLS1hY3Rpb24tcHJvZ3Jlc3NpdmUnLCAnY2R4LWJ1dHRvbi0td2VpZ2h0LXByaW1hcnknXX1cblx0XHRvbkNsaWNrPXtvbkNsaWNrfVxuXHQ+XG5cdFx0e2dldE1lc3NhZ2UoJ0FncmVlJyl9XG5cdDwvYnV0dG9uPlxuKTtcblxuZXhwb3J0IGRlZmF1bHQgQWdyZWVCdXR0b247XG4iLCAiaW1wb3J0ICogYXMgT1BUSU9OUyBmcm9tICcuLi9vcHRpb25zLmpzb24nO1xuaW1wb3J0IHtsb2NhbGl6ZX0gZnJvbSAnZXh0LmdhZGdldC5pMThuJztcblxuY29uc3QgZ2V0STE4bk1lc3NhZ2VzID0gKCkgPT4ge1xuXHRyZXR1cm4ge1xuXHRcdEFncmVlOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ0kgYWdyZWUnLFxuXHRcdFx0amE6ICfjgZnjgbnjgaboqLHlj6/jgZnjgosnLFxuXHRcdFx0emg6ICflkIzmhI8nLFxuXHRcdH0pLFxuXHRcdENvb2tpZU5vdGljZTogbG9jYWxpemUoe1xuXHRcdFx0ZW46IGBUbyBwcm92aWRlIGJldHRlciBleHBlcmllbmNlLCB3ZSB1dGlsaXplIGNvb2tpZXMgYW5kIG90aGVyIHRlY2hub2xvZ2llcyB0byBwcm92aWRlIHNlcnZpY2VzLiBZb3UgY2FuIHJlZmVyIHRvIG91ciA8YSByZWw9XCJub29wZW5lclwiIHRhcmdldD1cIl9ibGFua1wiIGhyZWY9XCIvd2lraS9RVzpQSVBQPyR7T1BUSU9OUy5yZWFkaW5nUElQUEtleX09MVwiIHRpdGxlPVwiUGVyc29uYWwgSW5mb3JtYXRpb24gUHJvdGVjdGlvbiBQb2xpY3lcIj48ZW0+UGVyc29uYWwgSW5mb3JtYXRpb24gUHJvdGVjdGlvbiBQb2xpY3k8L2VtPjwvYT4gdG8gbGVhcm4gaG93IHdlIGhhbmRsZSB5b3VyIHBlcnNvbmFsIGluZm9ybWF0aW9uLmAsXG5cdFx0XHRqYTogYOOCiOOCiuiJr+OBhOOCteODvOODk+OCueOCkuaPkOS+m+OBmeOCi+OBn+OCgeOBq+OAgeOCr+ODg+OCreODvOOChOOBneOBruS7luOBruaKgOihk+OCkuWIqeeUqOOBl+OBpuOBhOOBvuOBmeOAguWAi+S6uuaDheWgseOBruWPluOCiuaJseOBhOaWueazleOBq+OBpOOBhOOBpuOBr+OAgTxhIHJlbD1cIm5vb3BlbmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj1cIi93aWtpL1FXOlBJUFA/JHtPUFRJT05TLnJlYWRpbmdQSVBQS2V5fT0xXCIgdGl0bGU9XCLlgIvkurrmg4XloLHkv53orbfmlrnph51cIj7lgIvkurrmg4XloLHkv53orbfmlrnph508L2E+44KS44GU5Y+C54Wn44GP44Gg44GV44GE44CCYCxcblx0XHRcdCd6aC1oYW5zJzogYOS4uuS6huaPkOS+m+acgOS9s+S9k+mqjO+8jOaIkeS7rOWIqeeUqENvb2tpZeWPiuWFtuS7luaKgOacr+aPkOS+m+acjeWKoe+8m+aCqOWPr+S7peafpemYheaIkeS7rOeahDxhIHJlbD1cIm5vb3BlbmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj1cIi93aWtpL1FXOlBJUFA/JHtPUFRJT05TLnJlYWRpbmdQSVBQS2V5fT0xXCIgdGl0bGU9XCLkuKrkurrkv6Hmga/kv53miqTmlrnpkohcIj7kuKrkurrkv6Hmga/kv53miqTmlrnpkog8L2E+77yM5LqG6Kej5oiR5Lus5aaC5L2V5aSE55CG5oKo55qE5Liq5Lq65L+h5oGv44CCYCxcblx0XHRcdCd6aC1oYW50JzogYOeCuuS6huaPkOS+m+acgOS9s+mrlOmpl++8jOaIkeS7rOWIqeeUqENvb2tpZeWPiuWFtuS7luaKgOihk+aPkOS+m+acjeWLme+8m+aCqOWPr+S7peafpemWseaIkeWAkeeahDxhIHJlbD1cIm5vb3BlbmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj1cIi93aWtpL1FXOlBJUFA/JHtPUFRJT05TLnJlYWRpbmdQSVBQS2V5fT0xXCIgdGl0bGU9XCLlgIvkurrkv6Hmga/kv53orbfmlrnph51cIj7lgIvkurrkv6Hmga/kv53orbfmlrnph508L2E+77yM5LqG6Kej5oiR5YCR5aaC5L2V6JmV55CG5oKo55qE5YCL5Lq65L+h5oGvYCxcblx0XHR9KSxcblx0XHRUT1NOb3RpY2U6IGxvY2FsaXplKHtcblx0XHRcdGVuOiBgQnkgdXNpbmcgdGhpcyBzaXRlLCB5b3UgYWdyZWUgdG8gb3VyIDxhIHJlbD1cIm5vb3BlbmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj1cIi93aWtpL1FXOlRPUz8ke09QVElPTlMucmVhZGluZ1BJUFBLZXl9PTFcIiB0aXRsZT1cIlRlcm1zIG9mIFVzZVwiPjxlbT5UZXJtcyBvZiBVc2U8L2VtPjwvYT4sIDxhIHJlbD1cIm5vb3BlbmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj1cIi93aWtpL1FXOlBJUFA/JHtPUFRJT05TLnJlYWRpbmdQSVBQS2V5fT0xXCIgdGl0bGU9XCJQZXJzb25hbCBJbmZvcm1hdGlvbiBQcm90ZWN0aW9uIFBvbGljeVwiPjxlbT5QZXJzb25hbCBJbmZvcm1hdGlvbiBQcm90ZWN0aW9uIFBvbGljeTwvZW0+PC9hPiwgYW5kIG90aGVyIDxhIHJlbD1cIm5vb3BlbmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj1cIi93aWtpL1FXOkxBVz8ke09QVElPTlMucmVhZGluZ1BJUFBLZXl9PTFcIiB0aXRsZT1cIkxlZ2FsIHBvbGljaWVzXCI+bGVnYWwgcG9saWNpZXM8L2E+LmAsXG5cdFx0XHRqYTogYOOBk+OBruOCteOCpOODiOOCkuWIqeeUqOOBmeOCi+OBk+OBqOOBp+OAgTxhIHJlbD1cIm5vb3BlbmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj1cIi93aWtpL1FXOlRPUz8ke09QVElPTlMucmVhZGluZ1BJUFBLZXl9PTFcIiB0aXRsZT1cIuWIqeeUqOimj+e0hFwiPuWIqeeUqOimj+e0hDwvYT7jgIE8YSByZWw9XCJub29wZW5lclwiIHRhcmdldD1cIl9ibGFua1wiIGhyZWY9XCIvd2lraS9RVzpQSVBQPyR7T1BUSU9OUy5yZWFkaW5nUElQUEtleX09MVwiIHRpdGxlPVwi5YCL5Lq65oOF5aCx5L+d6K235pa56YedXCI+5YCL5Lq65oOF5aCx5L+d6K235pa56YedPC9hPuOAgeOBneOBruS7luOBrjxhIHJlbD1cIm5vb3BlbmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj1cIi93aWtpL1FXOkxBVz8ke09QVElPTlMucmVhZGluZ1BJUFBLZXl9PTFcIiB0aXRsZT1cIuazleeahOODneODquOCt+ODvFwiPuazleeahOODneODquOCt+ODvDwvYT7jgavjgaTjgYTjgabljYHliIbjgavnkIbop6PjgZfjgIHpgbXlrojjgZnjgovjgZPjgajjgavlkIzmhI/jgZfjgZ/jgoLjga7jgajjgb/jgarjgZXjgozjgb7jgZnjgIJgLFxuXHRcdFx0J3poLWhhbnMnOiBg6K6/6Zeu5pys572R56uZ77yM5oiW5Lul5Lu75L2V5pa55byP5L2/55So5pys572R56uZ77yM5Z2H5Luj6KGo5oKo5bey5LuU57uG6ZiF6K+744CB5YWF5YiG5LqG6Kej5bm25ZCM5oSP6YG15a6I5pys572R56uZ55qEPGEgcmVsPVwibm9vcGVuZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPVwiL3dpa2kvUVc6VE9TPyR7T1BUSU9OUy5yZWFkaW5nUElQUEtleX09MVwiIHRpdGxlPVwi55So5oi35Y2P6K6uXCI+55So5oi35Y2P6K6uPC9hPuOAgTxhIHJlbD1cIm5vb3BlbmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj1cIi93aWtpL1FXOlBJUFA/JHtPUFRJT05TLnJlYWRpbmdQSVBQS2V5fT0xXCIgdGl0bGU9XCLkuKrkurrkv6Hmga/kv53miqTmlrnpkohcIj7kuKrkurrkv6Hmga/kv53miqTmlrnpkog8L2E+5Y+K5YW25LuW5ZCE6aG5PGEgcmVsPVwibm9vcGVuZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPVwiL3dpa2kvUVc6TEFXPyR7T1BUSU9OUy5yZWFkaW5nUElQUEtleX09MVwiIHRpdGxlPVwi5rOV5b6L5pa56ZKIXCI+5rOV5b6L5pa56ZKIPC9hPueahOinhOWumuOAgmAsXG5cdFx0XHQnemgtaGFudCc6IGDlrZjlj5bmnKzntrLnq5nvvIzmiJbku6Xku7vkvZXmlrnlvI/kvb/nlKjmnKzntrLnq5nvvIzlnYfku6Pooajmgqjlt7Lku5TntLDplrHoroDjgIHlhYXliIbkuobop6PkuKblkIzmhI/pgbXlrojmnKzntrLnq5nnmoQ8YSByZWw9XCJub29wZW5lclwiIHRhcmdldD1cIl9ibGFua1wiIGhyZWY9XCIvd2lraS9RVzpUT1M/JHtPUFRJT05TLnJlYWRpbmdQSVBQS2V5fT0xXCIgdGl0bGU9XCLnlKjmiLbljZTorbBcIj7nlKjmiLbljZTorbA8L2E+44CBPGEgcmVsPVwibm9vcGVuZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPVwiL3dpa2kvUVc6UElQUD8ke09QVElPTlMucmVhZGluZ1BJUFBLZXl9PTFcIiB0aXRsZT1cIuWAi+S6uuS/oeaBr+S/neitt+aWuemHnVwiPuWAi+S6uuS/oeaBr+S/neitt+aWuemHnTwvYT7lj4rlhbbku5blkITpoIU8YSByZWw9XCJub29wZW5lclwiIHRhcmdldD1cIl9ibGFua1wiIGhyZWY9XCIvd2lraS9RVzpMQVc/JHtPUFRJT05TLnJlYWRpbmdQSVBQS2V5fT0xXCIgdGl0bGU9XCLms5Xlvovmlrnph51cIj7ms5Xlvovmlrnph508L2E+55qE6KaP5a6a44CCYCxcblx0XHR9KSxcblx0fTtcbn07XG5jb25zdCBpMThuTWVzc2FnZXMgPSBnZXRJMThuTWVzc2FnZXMoKTtcblxuY29uc3QgZ2V0TWVzc2FnZTogR2V0TWVzc2FnZXM8dHlwZW9mIGkxOG5NZXNzYWdlcz4gPSAoa2V5KSA9PiB7XG5cdHJldHVybiBpMThuTWVzc2FnZXNba2V5XSB8fCBrZXk7XG59O1xuXG5leHBvcnQge2dldE1lc3NhZ2V9O1xuIiwgImltcG9ydCBSZWFjdCBmcm9tICdleHQuZ2FkZ2V0LkpTWCc7XG5pbXBvcnQge2dldE1lc3NhZ2V9IGZyb20gJy4uL21vZHVsZXMvaTE4bic7XG5cbmNvbnN0IENvbnNlbnROb3RpY2UgPSAoKSA9PiAoXG5cdDw+XG5cdFx0PHAgaW5uZXJIVE1MPXtnZXRNZXNzYWdlKCdUT1NOb3RpY2UnKX0gLz5cblx0XHQ8cCBpbm5lckhUTUw9e2dldE1lc3NhZ2UoJ0Nvb2tpZU5vdGljZScpfSAvPlxuXHQ8Lz5cbik7XG5cbmV4cG9ydCBkZWZhdWx0IENvbnNlbnROb3RpY2U7XG4iLCAiaW1wb3J0IEFncmVlQnV0dG9uIGZyb20gJy4vQWdyZWVCdXR0b24nO1xuaW1wb3J0IENvbnNlbnROb3RpY2UgZnJvbSAnLi9Db25zZW50Tm90aWNlJztcbmltcG9ydCBSZWFjdCBmcm9tICdleHQuZ2FkZ2V0LkpTWCc7XG5pbXBvcnQge3dhcm5pbmd9IGZyb20gJy4vQ29va2llV2FybmluZy5tb2R1bGUubGVzcyc7XG5cbmludGVyZmFjZSBQcm9wcyB7XG5cdGFncmVlQnV0dG9uT25DbGljazogKCkgPT4gdm9pZDtcbn1cblxuY29uc3QgUm9vdEVsZW1lbnQgPSAoe2FncmVlQnV0dG9uT25DbGlja306IFByb3BzKSA9PiAoXG5cdDxkaXYgY2xhc3NOYW1lPXtbd2FybmluZywgJ25vcHJpbnQnXX0+XG5cdFx0PENvbnNlbnROb3RpY2UgLz5cblx0XHQ8QWdyZWVCdXR0b24gb25DbGljaz17YWdyZWVCdXR0b25PbkNsaWNrfSAvPlxuXHQ8L2Rpdj5cbik7XG5cbmV4cG9ydCB7Um9vdEVsZW1lbnR9O1xuIiwgImltcG9ydCBcImVzYnVpbGQtY3NzLW1vZHVsZXMtcGx1Z2luLW5zLWNzczpzcmMvQ29va2llV2FybmluZy9jb21wb25lbnRzL0Nvb2tpZVdhcm5pbmcubW9kdWxlLmxlc3NcIjtcbmV4cG9ydCBjb25zdCB3YXJuaW5nID0gXCJDb29raWVXYXJuaW5nLW1vZHVsZV9fd2FybmluZ191a3ZmeUdfXzQ5MFwiO1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIFwid2FybmluZ1wiOiB3YXJuaW5nXG59O1xuICAgICAgIiwgImltcG9ydCAqIGFzIE9QVElPTlMgZnJvbSAnLi9vcHRpb25zLmpzb24nO1xuaW1wb3J0IHtSb290RWxlbWVudH0gZnJvbSAnLi9jb21wb25lbnRzL1Jvb3RFbGVtZW50JztcblxuKGZ1bmN0aW9uIGNvb2tpZVdhcm5pbmcoKTogdm9pZCB7XG5cdGNvbnN0IHt3Z1VzZXJOYW1lfSA9IG13LmNvbmZpZy5nZXQoKTtcblx0Y29uc3QgbGFzdFN0b3JhZ2VWYWx1ZTogc3RyaW5nIHwgbnVsbCA9IG13LnN0b3JhZ2UuZ2V0KE9QVElPTlMuc3RvcmFnZUtleSkgYXMgc3RyaW5nIHwgbnVsbDtcblx0Y29uc3QgdXJsQ29uc2VudFJlYWQ6IHN0cmluZyB8IG51bGwgPSBtdy51dGlsLmdldFBhcmFtVmFsdWUoT1BUSU9OUy5yZWFkaW5nUElQUEtleSk7XG5cblx0aWYgKHdnVXNlck5hbWUgfHwgbGFzdFN0b3JhZ2VWYWx1ZSA9PT0gJzEnIHx8IHVybENvbnNlbnRSZWFkKSB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0Y29uc3QgY2xvc2VXYXJuaW5nID0gKCk6IHZvaWQgPT4ge1xuXHRcdGJyb2FkY2FzdENoYW5uZWwucG9zdE1lc3NhZ2UoJ2Nsb3NlJyk7XG5cdFx0YnJvYWRjYXN0Q2hhbm5lbC5jbG9zZSgpO1xuXHRcdHJvb3RFbGVtZW50LnJlbW92ZSgpO1xuXHRcdG13LnN0b3JhZ2Uuc2V0KE9QVElPTlMuc3RvcmFnZUtleSwgJzEnLCA2MCAqIDYwICogMTAwMCAqIDI0ICogMzApO1xuXHR9O1xuXG5cdGNvbnN0IGJyb2FkY2FzdENoYW5uZWw6IEJyb2FkY2FzdENoYW5uZWwgPSBuZXcgQnJvYWRjYXN0Q2hhbm5lbChPUFRJT05TLnN0b3JhZ2VLZXkpO1xuXHRicm9hZGNhc3RDaGFubmVsLmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBjbG9zZVdhcm5pbmcpO1xuXG5cdGNvbnN0IHJvb3RFbGVtZW50ID0gUm9vdEVsZW1lbnQoe2FncmVlQnV0dG9uT25DbGljazogY2xvc2VXYXJuaW5nfSk7XG5cblx0ZG9j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LE9BQU9DLElBQUk7QUFDbkMsUUFBTUMsbUJBQWtDSCxHQUFHSSxRQUFRRixJQUFZcEMsVUFBVTtBQUN6RSxRQUFNdUMsaUJBQWdDTCxHQUFHTSxLQUFLQyxjQUFzQjFDLGNBQWM7QUFFbEYsTUFBSWtDLGNBQWNJLHFCQUFxQixPQUFPRSxnQkFBZ0I7QUFDN0Q7RUFDRDtBQUVBLFFBQU1HLGVBQWVBLE1BQVk7QUFDaENDLHFCQUFpQkMsWUFBWSxPQUFPO0FBQ3BDRCxxQkFBaUJFLE1BQU07QUFDdkJDLGdCQUFZQyxPQUFPO0FBQ25CYixPQUFHSSxRQUFRVSxJQUFZaEQsWUFBWSxLQUFLLEtBQUssS0FBSyxNQUFPLEtBQUssRUFBRTtFQUNqRTtBQUVBLFFBQU0yQyxtQkFBcUMsSUFBSU0saUJBQXlCakQsVUFBVTtBQUNsRjJDLG1CQUFpQk8saUJBQWlCLFdBQVdSLFlBQVk7QUFFekQsUUFBTUksY0FBY2hCLFlBQVk7SUFBQ0Msb0JBQW9CVztFQUFZLENBQUM7QUFFbEVTLFdBQVNDLEtBQUtDLE9BQU9QLFdBQVc7QUFDakMsR0FBRzsiLAogICJuYW1lcyI6IFsiQnJvYWRjYXN0Q2hhbm5lbCIsICJyZWFkaW5nUElQUEtleSIsICJzdG9yYWdlS2V5IiwgImltcG9ydF9leHRfZ2FkZ2V0MiIsICJfX3RvRVNNIiwgInJlcXVpcmUiLCAiaW1wb3J0X2V4dF9nYWRnZXQiLCAiZ2V0STE4bk1lc3NhZ2VzIiwgIkFncmVlIiwgImxvY2FsaXplIiwgImVuIiwgImphIiwgInpoIiwgIkNvb2tpZU5vdGljZSIsICJjb25jYXQiLCAiVE9TTm90aWNlIiwgImkxOG5NZXNzYWdlcyIsICJnZXRNZXNzYWdlIiwgImtleSIsICJBZ3JlZUJ1dHRvbiIsICJvbkNsaWNrIiwgImRlZmF1bHQiLCAiY3JlYXRlRWxlbWVudCIsICJjbGFzc05hbWUiLCAiQWdyZWVCdXR0b25fZGVmYXVsdCIsICJpbXBvcnRfZXh0X2dhZGdldDMiLCAiQ29uc2VudE5vdGljZSIsICJGcmFnbWVudCIsICJpbm5lckhUTUwiLCAiQ29uc2VudE5vdGljZV9kZWZhdWx0IiwgImltcG9ydF9leHRfZ2FkZ2V0NCIsICJ3YXJuaW5nIiwgIlJvb3RFbGVtZW50IiwgImFncmVlQnV0dG9uT25DbGljayIsICJjb29raWVXYXJuaW5nIiwgIndnVXNlck5hbWUiLCAibXciLCAiY29uZmlnIiwgImdldCIsICJsYXN0U3RvcmFnZVZhbHVlIiwgInN0b3JhZ2UiLCAidXJsQ29uc2VudFJlYWQiLCAidXRpbCIsICJnZXRQYXJhbVZhbHVlIiwgImNsb3NlV2FybmluZyIsICJicm9hZGNhc3RDaGFubmVsIiwgInBvc3RNZXNzYWdlIiwgImNsb3NlIiwgInJvb3RFbGVtZW50IiwgInJlbW92ZSIsICJzZXQiLCAiQnJvYWRjYXN0Q2hhbm5lbCIsICJhZGRFdmVudExpc3RlbmVyIiwgImRvY3VtZW50IiwgImJvZHkiLCAiYXBwZW5kIl0KfQo= diff --git a/dist/CopyCodeBlock/CopyCodeBlock.css b/dist/CopyCodeBlock/CopyCodeBlock.css index d39a946ab..e220aa848 100644 --- a/dist/CopyCodeBlock/CopyCodeBlock.css +++ b/dist/CopyCodeBlock/CopyCodeBlock.css @@ -20,10 +20,10 @@ /* */ /* esbuild-css-modules-plugin-ns-css:src/CopyCodeBlock/modules/CopyCodeBlock.module.less */ -.CopyCodeBlock-module__codeBlock_74i1Da { +.CopyCodeBlock-module__codeBlock_74i1Da__490 { position: relative; } -.CopyCodeBlock-module__button_74i1Da { +.CopyCodeBlock-module__button_74i1Da__490 { top: 0; right: 0; position: absolute !important; @@ -31,4 +31,4 @@ /* */ -/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiZXNidWlsZC1jc3MtbW9kdWxlcy1wbHVnaW4tbnMtY3NzOnNyYy9Db3B5Q29kZUJsb2NrL21vZHVsZXMvQ29weUNvZGVCbG9jay5tb2R1bGUubGVzcyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyogPHN0ZGluPiAqL1xuLkNvcHlDb2RlQmxvY2stbW9kdWxlX19jb2RlQmxvY2tfNzRpMURhIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLkNvcHlDb2RlQmxvY2stbW9kdWxlX19idXR0b25fNzRpMURhIHtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsQ0FBQztBQUNDLFlBQVU7QUFDWjtBQUNBLENBQUM7QUFDQyxPQUFLO0FBQ0wsU0FBTztBQUNQLFlBQVU7QUFDWjsiLAogICJuYW1lcyI6IFtdCn0K */ +/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiZXNidWlsZC1jc3MtbW9kdWxlcy1wbHVnaW4tbnMtY3NzOnNyYy9Db3B5Q29kZUJsb2NrL21vZHVsZXMvQ29weUNvZGVCbG9jay5tb2R1bGUubGVzcyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyogPHN0ZGluPiAqL1xuLkNvcHlDb2RlQmxvY2stbW9kdWxlX19jb2RlQmxvY2tfNzRpMURhX180OTAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uQ29weUNvZGVCbG9jay1tb2R1bGVfX2J1dHRvbl83NGkxRGFfXzQ5MCB7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLENBQUM7QUFDQyxZQUFVO0FBQ1o7QUFDQSxDQUFDO0FBQ0MsT0FBSztBQUNMLFNBQU87QUFDUCxZQUFVO0FBQ1o7IiwKICAibmFtZXMiOiBbXQp9Cg== */ diff --git a/dist/CopyCodeBlock/CopyCodeBlock.js b/dist/CopyCodeBlock/CopyCodeBlock.js index 0b246f108..6db12536d 100644 --- a/dist/CopyCodeBlock/CopyCodeBlock.js +++ b/dist/CopyCodeBlock/CopyCodeBlock.js @@ -68,8 +68,8 @@ function _arrayLikeToArray(r, a) { return n; } //! src/CopyCodeBlock/modules/CopyCodeBlock.module.less -var button = "CopyCodeBlock-module__button_74i1Da"; -var codeBlock = "CopyCodeBlock-module__codeBlock_74i1Da"; +var button = "CopyCodeBlock-module__button_74i1Da__490"; +var codeBlock = "CopyCodeBlock-module__codeBlock_74i1Da__490"; //! src/CopyCodeBlock/modules/addCopyListener.ts var import_ext_gadget2 = require("ext.gadget.Clipboard"); //! src/CopyCodeBlock/modules/i18n.ts @@ -161,4 +161,4 @@ mw.hook("wikipage.content").add(function copyCodeBlock($content) { /* */ -//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL0NvcHlDb2RlQmxvY2svbW9kdWxlcy9Db3B5Q29kZUJsb2NrLm1vZHVsZS5sZXNzIiwgInNyYy9Db3B5Q29kZUJsb2NrL21vZHVsZXMvYWRkQ29weUxpc3RlbmVyLnRzIiwgInNyYy9Db3B5Q29kZUJsb2NrL21vZHVsZXMvaTE4bi50cyIsICJzcmMvQ29weUNvZGVCbG9jay9tb2R1bGVzL2FkZEJ1dHRvbi50cyIsICJzcmMvQ29weUNvZGVCbG9jay9Db3B5Q29kZUJsb2NrLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQgXCJlc2J1aWxkLWNzcy1tb2R1bGVzLXBsdWdpbi1ucy1jc3M6c3JjL0NvcHlDb2RlQmxvY2svbW9kdWxlcy9Db3B5Q29kZUJsb2NrLm1vZHVsZS5sZXNzXCI7XG5leHBvcnQgY29uc3QgYnV0dG9uID0gXCJDb3B5Q29kZUJsb2NrLW1vZHVsZV9fYnV0dG9uXzc0aTFEYVwiO1xuZXhwb3J0IGNvbnN0IGNvZGVCbG9jayA9IFwiQ29weUNvZGVCbG9jay1tb2R1bGVfX2NvZGVCbG9ja183NGkxRGFcIjtcblxuZXhwb3J0IGRlZmF1bHQge1xuICBcImJ1dHRvblwiOiBidXR0b24sXG4gIFwiY29kZUJsb2NrXCI6IGNvZGVCbG9ja1xufTtcbiAgICAgICIsICJpbXBvcnQge0NsaXBib2FyZH0gZnJvbSAnZXh0LmdhZGdldC5DbGlwYm9hcmQnO1xuaW1wb3J0IHtidXR0b259IGZyb20gJy4vQ29weUNvZGVCbG9jay5tb2R1bGUubGVzcyc7XG5pbXBvcnQge2dldE1lc3NhZ2V9IGZyb20gJy4vaTE4bic7XG5pbXBvcnQge3RvYXN0aWZ5fSBmcm9tICdleHQuZ2FkZ2V0LlRvYXN0aWZ5JztcblxuY29uc3QgYWRkQ29weUxpc3RlbmVyID0gKCRwcmVzOiBKUXVlcnk8SFRNTFByZUVsZW1lbnQ+KTogdm9pZCA9PiB7XG5cdGZvciAoY29uc3QgcHJlIG9mICRwcmVzKSB7XG5cdFx0Y29uc3QgY2xpcGJvYXJkID0gbmV3IENsaXBib2FyZChwcmUucXVlcnlTZWxlY3RvcihgLiR7YnV0dG9ufWApIGFzIEhUTUxTcGFuRWxlbWVudCwge1xuXHRcdFx0dGV4dCgpOiBzdHJpbmcge1xuXHRcdFx0XHRyZXR1cm4gcHJlLnRleHRDb250ZW50ID8/ICcnO1xuXHRcdFx0fSxcblx0XHR9KTtcblx0XHRjbGlwYm9hcmQub24oJ3N1Y2Nlc3MnLCAoKTogdm9pZCA9PiB7XG5cdFx0XHR0b2FzdGlmeShcblx0XHRcdFx0e1xuXHRcdFx0XHRcdHRleHQ6IGdldE1lc3NhZ2UoJ0NvcGllZCcpLFxuXHRcdFx0XHR9LFxuXHRcdFx0XHQnc3VjY2Vzcydcblx0XHRcdCk7XG5cdFx0fSk7XG5cdFx0Y2xpcGJvYXJkLm9uKCdlcnJvcicsICgpOiB2b2lkID0+IHtcblx0XHRcdHRvYXN0aWZ5KFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0dGV4dDogZ2V0TWVzc2FnZSgnRmFpbGVkJyksXG5cdFx0XHRcdH0sXG5cdFx0XHRcdCdlcnJvcidcblx0XHRcdCk7XG5cdFx0fSk7XG5cdH1cbn07XG5cbmV4cG9ydCB7YWRkQ29weUxpc3RlbmVyfTtcbiIsICJpbXBvcnQge2xvY2FsaXplfSBmcm9tICdleHQuZ2FkZ2V0LmkxOG4nO1xuXG5jb25zdCBnZXRJMThuTWVzc2FnZXMgPSAoKSA9PiB7XG5cdHJldHVybiB7XG5cdFx0Q29weTogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdDb3B5IHRvIGNsaXBib2FyZCcsXG5cdFx0XHRqYTogJ+OCr+ODquODg+ODl+ODnOODvOODieOBq+OCs+ODlOODvCcsXG5cdFx0XHQnemgtaGFucyc6ICflpI3liLboh7PliarotLTmnb8nLFxuXHRcdFx0J3poLWhhbnQnOiAn5ou36LKd6Iez5Ymq6LK857C/Jyxcblx0XHR9KSxcblx0XHRDb3BpZWQ6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnQ29waWVkJyxcblx0XHRcdGphOiAn44Kz44OU44O844GM5oiQ5Yqf44GX44G+44GX44GfJyxcblx0XHRcdCd6aC1oYW5zJzogJ+W3suWkjeWIticsXG5cdFx0XHQnemgtaGFudCc6ICflt7Lmi7fosp0nLFxuXHRcdH0pLFxuXHRcdEZhaWxlZDogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdDb3B5IGZhaWxlZCcsXG5cdFx0XHRqYTogJ+OCs+ODlOODvOOBq+WkseaVl+OBl+OBvuOBl+OBnycsXG5cdFx0XHQnemgtaGFucyc6ICflpI3liLblpLHotKUnLFxuXHRcdFx0J3poLWhhbnQnOiAn5ou36LKd5aSx5pWXJyxcblx0XHR9KSxcblx0fTtcbn07XG5cbmNvbnN0IGkxOG5NZXNzYWdlcyA9IGdldEkxOG5NZXNzYWdlcygpO1xuXG5jb25zdCBnZXRNZXNzYWdlOiBHZXRNZXNzYWdlczx0eXBlb2YgaTE4bk1lc3NhZ2VzPiA9IChrZXkpID0+IHtcblx0cmV0dXJuIGkxOG5NZXNzYWdlc1trZXldIHx8IGtleTtcbn07XG5cbmV4cG9ydCB7Z2V0TWVzc2FnZX07XG4iLCAiaW1wb3J0IHtidXR0b24sIGNvZGVCbG9ja30gZnJvbSAnLi9Db3B5Q29kZUJsb2NrLm1vZHVsZS5sZXNzJztcbmltcG9ydCB7YWRkQ29weUxpc3RlbmVyfSBmcm9tICcuL2FkZENvcHlMaXN0ZW5lcic7XG5pbXBvcnQge2dldE1lc3NhZ2V9IGZyb20gJy4vaTE4bic7XG5pbXBvcnQge3RpcHB5fSBmcm9tICdleHQuZ2FkZ2V0LlRpcHB5JztcblxuY29uc3QgYWRkQnV0dG9uID0gKCRwcmVzOiBKUXVlcnk8SFRNTFByZUVsZW1lbnQ+KTogdm9pZCA9PiB7XG5cdC8vIFRoZSBmb2xsb3dpbmcgY2xhc3NlcyBhcmUgdXNlZCBoZXJlOlxuXHQvLyAqIHNlZSBjb25zdGFudC50c1xuXHQvLyAqIGZvciBtb3JlIGluZm9ybWF0aW9uXG5cdGNvbnN0IGNvcHlCdXR0b246IE9PLnVpLkJ1dHRvbldpZGdldCA9IG5ldyBPTy51aS5CdXR0b25XaWRnZXQoe1xuXHRcdGNsYXNzZXM6IFtidXR0b24gYXMgc3RyaW5nXSxcblx0XHRmcmFtZWQ6IGZhbHNlLFxuXHRcdGljb246ICdjb3B5Jyxcblx0fSk7XG5cdGNvbnN0ICRjb3B5QnV0dG9uOiBKUXVlcnkgPSBjb3B5QnV0dG9uLiRlbGVtZW50O1xuXG5cdCRjb3B5QnV0dG9uLmF0dHIoJ2FyaWEtbGFiZWwnLCBnZXRNZXNzYWdlKCdDb3B5JykpO1xuXG5cdC8vIFRoZSBmb2xsb3dpbmcgY2xhc3NlcyBhcmUgdXNlZCBoZXJlOlxuXHQvLyAqIHNlZSBjb25zdGFudC50c1xuXHQvLyAqIGZvciBtb3JlIGluZm9ybWF0aW9uXG5cdCRwcmVzLmFkZENsYXNzKGNvZGVCbG9jayBhcyBzdHJpbmcpLmFwcGVuZCgkY29weUJ1dHRvbik7XG5cblx0dGlwcHkoJGNvcHlCdXR0b24uZ2V0KDApIGFzIEhUTUxTcGFuRWxlbWVudCwge1xuXHRcdGFycm93OiB0cnVlLFxuXHRcdGNvbnRlbnQ6ICRjb3B5QnV0dG9uLmF0dHIoJ2FyaWEtbGFiZWwnKSBhcyBzdHJpbmcsXG5cdFx0cGxhY2VtZW50OiAnYm90dG9tJyxcblx0fSk7XG5cblx0YWRkQ29weUxpc3RlbmVyKCRwcmVzKTtcbn07XG5cbmV4cG9ydCB7YWRkQnV0dG9ufTtcbiIsICJpbXBvcnQge2FkZEJ1dHRvbn0gZnJvbSAnLi9tb2R1bGVzL2FkZEJ1dHRvbic7XG5cbm13Lmhvb2soJ3dpa2lwYWdlLmNvbnRlbnQnKS5hZGQoZnVuY3Rpb24gY29weUNvZGVCbG9jaygkY29udGVudCk6IHZvaWQge1xuXHRjb25zdCAkcHJlczogSlF1ZXJ5PEhUTUxQcmVFbGVtZW50PiA9ICRjb250ZW50LmZpbmQoJ3ByZScpO1xuXHRpZiAoISRwcmVzLmxlbmd0aCkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGFkZEJ1dHRvbigkcHJlcyk7XG59KTtcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDTyxJQUFNQSxTQUFTO0FBQ2YsSUFBTUMsWUFBWTs7QUNGekIsSUFBQUMscUJBQXdCQyxRQUFBLHNCQUFBOztBQ0F4QixJQUFBQyxvQkFBdUJELFFBQUEsaUJBQUE7QUFFdkIsSUFBTUUsa0JBQWtCQSxNQUFNO0FBQzdCLFNBQU87SUFDTkMsT0FBQSxHQUFNRixrQkFBQUcsVUFBUztNQUNkQyxJQUFJO01BQ0pDLElBQUk7TUFDSixXQUFXO01BQ1gsV0FBVztJQUNaLENBQUM7SUFDREMsU0FBQSxHQUFRTixrQkFBQUcsVUFBUztNQUNoQkMsSUFBSTtNQUNKQyxJQUFJO01BQ0osV0FBVztNQUNYLFdBQVc7SUFDWixDQUFDO0lBQ0RFLFNBQUEsR0FBUVAsa0JBQUFHLFVBQVM7TUFDaEJDLElBQUk7TUFDSkMsSUFBSTtNQUNKLFdBQVc7TUFDWCxXQUFXO0lBQ1osQ0FBQztFQUNGO0FBQ0Q7QUFFQSxJQUFNRyxlQUFlUCxnQkFBZ0I7QUFFckMsSUFBTVEsYUFBZ0RDLFNBQVE7QUFDN0QsU0FBT0YsYUFBYUUsR0FBRyxLQUFLQTtBQUM3Qjs7QUQxQkEsSUFBQUMscUJBQXVCWixRQUFBLHFCQUFBO0FBRXZCLElBQU1hLGtCQUFtQkMsV0FBd0M7QUFBQSxNQUFBQyxZQUFBQywyQkFDOUNGLEtBQUEsR0FBQUc7QUFBQSxNQUFBO0FBQWxCLFNBQUFGLFVBQUFHLEVBQUEsR0FBQSxFQUFBRCxRQUFBRixVQUFBSSxFQUFBLEdBQUFDLFFBQXlCO0FBQUEsWUFBZEMsTUFBQUosTUFBQUs7QUFDVixZQUFNQyxZQUFZLElBQUl4QixtQkFBQXlCLFVBQVVILElBQUlJLGNBQUEsSUFBQUMsT0FBa0I3QixNQUFNLENBQUUsR0FBc0I7UUFDbkY4QixPQUFlO0FBQUEsY0FBQUM7QUFDZCxrQkFBQUEsbUJBQU9QLElBQUlRLGlCQUFBLFFBQUFELHFCQUFBLFNBQUFBLG1CQUFlO1FBQzNCO01BQ0QsQ0FBQztBQUNETCxnQkFBVU8sR0FBRyxXQUFXLE1BQVk7QUFDbkMsU0FBQSxHQUFBbEIsbUJBQUFtQixVQUNDO1VBQ0NKLE1BQU1qQixXQUFXLFFBQVE7UUFDMUIsR0FDQSxTQUNEO01BQ0QsQ0FBQztBQUNEYSxnQkFBVU8sR0FBRyxTQUFTLE1BQVk7QUFDakMsU0FBQSxHQUFBbEIsbUJBQUFtQixVQUNDO1VBQ0NKLE1BQU1qQixXQUFXLFFBQVE7UUFDMUIsR0FDQSxPQUNEO01BQ0QsQ0FBQztJQUNGO0VBQUEsU0FBQXNCLEtBQUE7QUFBQWpCLGNBQUFrQixFQUFBRCxHQUFBO0VBQUEsVUFBQTtBQUFBakIsY0FBQW1CLEVBQUE7RUFBQTtBQUNEOztBRTFCQSxJQUFBQyxxQkFBb0JuQyxRQUFBLGtCQUFBO0FBRXBCLElBQU1vQyxZQUFhdEIsV0FBd0M7QUFJMUQsUUFBTXVCLGFBQWlDLElBQUlDLEdBQUdDLEdBQUdDLGFBQWE7SUFDN0RDLFNBQVMsQ0FBQzVDLE1BQWdCO0lBQzFCNkMsUUFBUTtJQUNSQyxNQUFNO0VBQ1AsQ0FBQztBQUNELFFBQU1DLGNBQXNCUCxXQUFXUTtBQUV2Q0QsY0FBWUUsS0FBSyxjQUFjcEMsV0FBVyxNQUFNLENBQUM7QUFLakRJLFFBQU1pQyxTQUFTakQsU0FBbUIsRUFBRWtELE9BQU9KLFdBQVc7QUFFdEQsR0FBQSxHQUFBVCxtQkFBQWMsT0FBTUwsWUFBWU0sSUFBSSxDQUFDLEdBQXNCO0lBQzVDQyxPQUFPO0lBQ1BDLFNBQVNSLFlBQVlFLEtBQUssWUFBWTtJQUN0Q08sV0FBVztFQUNaLENBQUM7QUFFRHhDLGtCQUFnQkMsS0FBSztBQUN0Qjs7QUM1QkF3QyxHQUFHQyxLQUFLLGtCQUFrQixFQUFFQyxJQUFJLFNBQVNDLGNBQWNDLFVBQWdCO0FBQ3RFLFFBQU01QyxRQUFnQzRDLFNBQVNDLEtBQUssS0FBSztBQUN6RCxNQUFJLENBQUM3QyxNQUFNOEMsUUFBUTtBQUNsQjtFQUNEO0FBRUF4QixZQUFVdEIsS0FBSztBQUNoQixDQUFDOyIsCiAgIm5hbWVzIjogWyJidXR0b24iLCAiY29kZUJsb2NrIiwgImltcG9ydF9leHRfZ2FkZ2V0MiIsICJyZXF1aXJlIiwgImltcG9ydF9leHRfZ2FkZ2V0IiwgImdldEkxOG5NZXNzYWdlcyIsICJDb3B5IiwgImxvY2FsaXplIiwgImVuIiwgImphIiwgIkNvcGllZCIsICJGYWlsZWQiLCAiaTE4bk1lc3NhZ2VzIiwgImdldE1lc3NhZ2UiLCAia2V5IiwgImltcG9ydF9leHRfZ2FkZ2V0MyIsICJhZGRDb3B5TGlzdGVuZXIiLCAiJHByZXMiLCAiX2l0ZXJhdG9yIiwgIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwgIl9zdGVwIiwgInMiLCAibiIsICJkb25lIiwgInByZSIsICJ2YWx1ZSIsICJjbGlwYm9hcmQiLCAiQ2xpcGJvYXJkIiwgInF1ZXJ5U2VsZWN0b3IiLCAiY29uY2F0IiwgInRleHQiLCAiX3ByZSR0ZXh0Q29udGVudCIsICJ0ZXh0Q29udGVudCIsICJvbiIsICJ0b2FzdGlmeSIsICJlcnIiLCAiZSIsICJmIiwgImltcG9ydF9leHRfZ2FkZ2V0NCIsICJhZGRCdXR0b24iLCAiY29weUJ1dHRvbiIsICJPTyIsICJ1aSIsICJCdXR0b25XaWRnZXQiLCAiY2xhc3NlcyIsICJmcmFtZWQiLCAiaWNvbiIsICIkY29weUJ1dHRvbiIsICIkZWxlbWVudCIsICJhdHRyIiwgImFkZENsYXNzIiwgImFwcGVuZCIsICJ0aXBweSIsICJnZXQiLCAiYXJyb3ciLCAiY29udGVudCIsICJwbGFjZW1lbnQiLCAibXciLCAiaG9vayIsICJhZGQiLCAiY29weUNvZGVCbG9jayIsICIkY29udGVudCIsICJmaW5kIiwgImxlbmd0aCJdCn0K +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL0NvcHlDb2RlQmxvY2svbW9kdWxlcy9Db3B5Q29kZUJsb2NrLm1vZHVsZS5sZXNzIiwgInNyYy9Db3B5Q29kZUJsb2NrL21vZHVsZXMvYWRkQ29weUxpc3RlbmVyLnRzIiwgInNyYy9Db3B5Q29kZUJsb2NrL21vZHVsZXMvaTE4bi50cyIsICJzcmMvQ29weUNvZGVCbG9jay9tb2R1bGVzL2FkZEJ1dHRvbi50cyIsICJzcmMvQ29weUNvZGVCbG9jay9Db3B5Q29kZUJsb2NrLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQgXCJlc2J1aWxkLWNzcy1tb2R1bGVzLXBsdWdpbi1ucy1jc3M6c3JjL0NvcHlDb2RlQmxvY2svbW9kdWxlcy9Db3B5Q29kZUJsb2NrLm1vZHVsZS5sZXNzXCI7XG5leHBvcnQgY29uc3QgYnV0dG9uID0gXCJDb3B5Q29kZUJsb2NrLW1vZHVsZV9fYnV0dG9uXzc0aTFEYV9fNDkwXCI7XG5leHBvcnQgY29uc3QgY29kZUJsb2NrID0gXCJDb3B5Q29kZUJsb2NrLW1vZHVsZV9fY29kZUJsb2NrXzc0aTFEYV9fNDkwXCI7XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgXCJidXR0b25cIjogYnV0dG9uLFxuICBcImNvZGVCbG9ja1wiOiBjb2RlQmxvY2tcbn07XG4gICAgICAiLCAiaW1wb3J0IHtDbGlwYm9hcmR9IGZyb20gJ2V4dC5nYWRnZXQuQ2xpcGJvYXJkJztcbmltcG9ydCB7YnV0dG9ufSBmcm9tICcuL0NvcHlDb2RlQmxvY2subW9kdWxlLmxlc3MnO1xuaW1wb3J0IHtnZXRNZXNzYWdlfSBmcm9tICcuL2kxOG4nO1xuaW1wb3J0IHt0b2FzdGlmeX0gZnJvbSAnZXh0LmdhZGdldC5Ub2FzdGlmeSc7XG5cbmNvbnN0IGFkZENvcHlMaXN0ZW5lciA9ICgkcHJlczogSlF1ZXJ5PEhUTUxQcmVFbGVtZW50Pik6IHZvaWQgPT4ge1xuXHRmb3IgKGNvbnN0IHByZSBvZiAkcHJlcykge1xuXHRcdGNvbnN0IGNsaXBib2FyZCA9IG5ldyBDbGlwYm9hcmQocHJlLnF1ZXJ5U2VsZWN0b3IoYC4ke2J1dHRvbn1gKSBhcyBIVE1MU3BhbkVsZW1lbnQsIHtcblx0XHRcdHRleHQoKTogc3RyaW5nIHtcblx0XHRcdFx0cmV0dXJuIHByZS50ZXh0Q29udGVudCA/PyAnJztcblx0XHRcdH0sXG5cdFx0fSk7XG5cdFx0Y2xpcGJvYXJkLm9uKCdzdWNjZXNzJywgKCk6IHZvaWQgPT4ge1xuXHRcdFx0dG9hc3RpZnkoXG5cdFx0XHRcdHtcblx0XHRcdFx0XHR0ZXh0OiBnZXRNZXNzYWdlKCdDb3BpZWQnKSxcblx0XHRcdFx0fSxcblx0XHRcdFx0J3N1Y2Nlc3MnXG5cdFx0XHQpO1xuXHRcdH0pO1xuXHRcdGNsaXBib2FyZC5vbignZXJyb3InLCAoKTogdm9pZCA9PiB7XG5cdFx0XHR0b2FzdGlmeShcblx0XHRcdFx0e1xuXHRcdFx0XHRcdHRleHQ6IGdldE1lc3NhZ2UoJ0ZhaWxlZCcpLFxuXHRcdFx0XHR9LFxuXHRcdFx0XHQnZXJyb3InXG5cdFx0XHQpO1xuXHRcdH0pO1xuXHR9XG59O1xuXG5leHBvcnQge2FkZENvcHlMaXN0ZW5lcn07XG4iLCAiaW1wb3J0IHtsb2NhbGl6ZX0gZnJvbSAnZXh0LmdhZGdldC5pMThuJztcblxuY29uc3QgZ2V0STE4bk1lc3NhZ2VzID0gKCkgPT4ge1xuXHRyZXR1cm4ge1xuXHRcdENvcHk6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnQ29weSB0byBjbGlwYm9hcmQnLFxuXHRcdFx0amE6ICfjgq/jg6rjg4Pjg5fjg5zjg7zjg4njgavjgrPjg5Tjg7wnLFxuXHRcdFx0J3poLWhhbnMnOiAn5aSN5Yi26Iez5Ymq6LS05p2/Jyxcblx0XHRcdCd6aC1oYW50JzogJ+aLt+iyneiHs+WJquiyvOewvycsXG5cdFx0fSksXG5cdFx0Q29waWVkOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ0NvcGllZCcsXG5cdFx0XHRqYTogJ+OCs+ODlOODvOOBjOaIkOWKn+OBl+OBvuOBl+OBnycsXG5cdFx0XHQnemgtaGFucyc6ICflt7LlpI3liLYnLFxuXHRcdFx0J3poLWhhbnQnOiAn5bey5ou36LKdJyxcblx0XHR9KSxcblx0XHRGYWlsZWQ6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnQ29weSBmYWlsZWQnLFxuXHRcdFx0amE6ICfjgrPjg5Tjg7zjgavlpLHmlZfjgZfjgb7jgZfjgZ8nLFxuXHRcdFx0J3poLWhhbnMnOiAn5aSN5Yi25aSx6LSlJyxcblx0XHRcdCd6aC1oYW50JzogJ+aLt+iyneWkseaVlycsXG5cdFx0fSksXG5cdH07XG59O1xuXG5jb25zdCBpMThuTWVzc2FnZXMgPSBnZXRJMThuTWVzc2FnZXMoKTtcblxuY29uc3QgZ2V0TWVzc2FnZTogR2V0TWVzc2FnZXM8dHlwZW9mIGkxOG5NZXNzYWdlcz4gPSAoa2V5KSA9PiB7XG5cdHJldHVybiBpMThuTWVzc2FnZXNba2V5XSB8fCBrZXk7XG59O1xuXG5leHBvcnQge2dldE1lc3NhZ2V9O1xuIiwgImltcG9ydCB7YnV0dG9uLCBjb2RlQmxvY2t9IGZyb20gJy4vQ29weUNvZGVCbG9jay5tb2R1bGUubGVzcyc7XG5pbXBvcnQge2FkZENvcHlMaXN0ZW5lcn0gZnJvbSAnLi9hZGRDb3B5TGlzdGVuZXInO1xuaW1wb3J0IHtnZXRNZXNzYWdlfSBmcm9tICcuL2kxOG4nO1xuaW1wb3J0IHt0aXBweX0gZnJvbSAnZXh0LmdhZGdldC5UaXBweSc7XG5cbmNvbnN0IGFkZEJ1dHRvbiA9ICgkcHJlczogSlF1ZXJ5PEhUTUxQcmVFbGVtZW50Pik6IHZvaWQgPT4ge1xuXHQvLyBUaGUgZm9sbG93aW5nIGNsYXNzZXMgYXJlIHVzZWQgaGVyZTpcblx0Ly8gKiBzZWUgY29uc3RhbnQudHNcblx0Ly8gKiBmb3IgbW9yZSBpbmZvcm1hdGlvblxuXHRjb25zdCBjb3B5QnV0dG9uOiBPTy51aS5CdXR0b25XaWRnZXQgPSBuZXcgT08udWkuQnV0dG9uV2lkZ2V0KHtcblx0XHRjbGFzc2VzOiBbYnV0dG9uIGFzIHN0cmluZ10sXG5cdFx0ZnJhbWVkOiBmYWxzZSxcblx0XHRpY29uOiAnY29weScsXG5cdH0pO1xuXHRjb25zdCAkY29weUJ1dHRvbjogSlF1ZXJ5ID0gY29weUJ1dHRvbi4kZWxlbWVudDtcblxuXHQkY29weUJ1dHRvbi5hdHRyKCdhcmlhLWxhYmVsJywgZ2V0TWVzc2FnZSgnQ29weScpKTtcblxuXHQvLyBUaGUgZm9sbG93aW5nIGNsYXNzZXMgYXJlIHVzZWQgaGVyZTpcblx0Ly8gKiBzZWUgY29uc3RhbnQudHNcblx0Ly8gKiBmb3IgbW9yZSBpbmZvcm1hdGlvblxuXHQkcHJlcy5hZGRDbGFzcyhjb2RlQmxvY2sgYXMgc3RyaW5nKS5hcHBlbmQoJGNvcHlCdXR0b24pO1xuXG5cdHRpcHB5KCRjb3B5QnV0dG9uLmdldCgwKSBhcyBIVE1MU3BhbkVsZW1lbnQsIHtcblx0XHRhcnJvdzogdHJ1ZSxcblx0XHRjb250ZW50OiAkY29weUJ1dHRvbi5hdHRyKCdhcmlhLWxhYmVsJykgYXMgc3RyaW5nLFxuXHRcdHBsYWNlbWVudDogJ2JvdHRvbScsXG5cdH0pO1xuXG5cdGFkZENvcHlMaXN0ZW5lcigkcHJlcyk7XG59O1xuXG5leHBvcnQge2FkZEJ1dHRvbn07XG4iLCAiaW1wb3J0IHthZGRCdXR0b259IGZyb20gJy4vbW9kdWxlcy9hZGRCdXR0b24nO1xuXG5tdy5ob29rKCd3aWtpcGFnZS5jb250ZW50JykuYWRkKGZ1bmN0aW9uIGNvcHlDb2RlQmxvY2soJGNvbnRlbnQpOiB2b2lkIHtcblx0Y29uc3QgJHByZXM6IEpRdWVyeTxIVE1MUHJlRWxlbWVudD4gPSAkY29udGVudC5maW5kKCdwcmUnKTtcblx0aWYgKCEkcHJlcy5sZW5ndGgpIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRhZGRCdXR0b24oJHByZXMpO1xufSk7XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ08sSUFBTUEsU0FBUztBQUNmLElBQU1DLFlBQVk7O0FDRnpCLElBQUFDLHFCQUF3QkMsUUFBQSxzQkFBQTs7QUNBeEIsSUFBQUMsb0JBQXVCRCxRQUFBLGlCQUFBO0FBRXZCLElBQU1FLGtCQUFrQkEsTUFBTTtBQUM3QixTQUFPO0lBQ05DLE9BQUEsR0FBTUYsa0JBQUFHLFVBQVM7TUFDZEMsSUFBSTtNQUNKQyxJQUFJO01BQ0osV0FBVztNQUNYLFdBQVc7SUFDWixDQUFDO0lBQ0RDLFNBQUEsR0FBUU4sa0JBQUFHLFVBQVM7TUFDaEJDLElBQUk7TUFDSkMsSUFBSTtNQUNKLFdBQVc7TUFDWCxXQUFXO0lBQ1osQ0FBQztJQUNERSxTQUFBLEdBQVFQLGtCQUFBRyxVQUFTO01BQ2hCQyxJQUFJO01BQ0pDLElBQUk7TUFDSixXQUFXO01BQ1gsV0FBVztJQUNaLENBQUM7RUFDRjtBQUNEO0FBRUEsSUFBTUcsZUFBZVAsZ0JBQWdCO0FBRXJDLElBQU1RLGFBQWdEQyxTQUFRO0FBQzdELFNBQU9GLGFBQWFFLEdBQUcsS0FBS0E7QUFDN0I7O0FEMUJBLElBQUFDLHFCQUF1QlosUUFBQSxxQkFBQTtBQUV2QixJQUFNYSxrQkFBbUJDLFdBQXdDO0FBQUEsTUFBQUMsWUFBQUMsMkJBQzlDRixLQUFBLEdBQUFHO0FBQUEsTUFBQTtBQUFsQixTQUFBRixVQUFBRyxFQUFBLEdBQUEsRUFBQUQsUUFBQUYsVUFBQUksRUFBQSxHQUFBQyxRQUF5QjtBQUFBLFlBQWRDLE1BQUFKLE1BQUFLO0FBQ1YsWUFBTUMsWUFBWSxJQUFJeEIsbUJBQUF5QixVQUFVSCxJQUFJSSxjQUFBLElBQUFDLE9BQWtCN0IsTUFBTSxDQUFFLEdBQXNCO1FBQ25GOEIsT0FBZTtBQUFBLGNBQUFDO0FBQ2Qsa0JBQUFBLG1CQUFPUCxJQUFJUSxpQkFBQSxRQUFBRCxxQkFBQSxTQUFBQSxtQkFBZTtRQUMzQjtNQUNELENBQUM7QUFDREwsZ0JBQVVPLEdBQUcsV0FBVyxNQUFZO0FBQ25DLFNBQUEsR0FBQWxCLG1CQUFBbUIsVUFDQztVQUNDSixNQUFNakIsV0FBVyxRQUFRO1FBQzFCLEdBQ0EsU0FDRDtNQUNELENBQUM7QUFDRGEsZ0JBQVVPLEdBQUcsU0FBUyxNQUFZO0FBQ2pDLFNBQUEsR0FBQWxCLG1CQUFBbUIsVUFDQztVQUNDSixNQUFNakIsV0FBVyxRQUFRO1FBQzFCLEdBQ0EsT0FDRDtNQUNELENBQUM7SUFDRjtFQUFBLFNBQUFzQixLQUFBO0FBQUFqQixjQUFBa0IsRUFBQUQsR0FBQTtFQUFBLFVBQUE7QUFBQWpCLGNBQUFtQixFQUFBO0VBQUE7QUFDRDs7QUUxQkEsSUFBQUMscUJBQW9CbkMsUUFBQSxrQkFBQTtBQUVwQixJQUFNb0MsWUFBYXRCLFdBQXdDO0FBSTFELFFBQU11QixhQUFpQyxJQUFJQyxHQUFHQyxHQUFHQyxhQUFhO0lBQzdEQyxTQUFTLENBQUM1QyxNQUFnQjtJQUMxQjZDLFFBQVE7SUFDUkMsTUFBTTtFQUNQLENBQUM7QUFDRCxRQUFNQyxjQUFzQlAsV0FBV1E7QUFFdkNELGNBQVlFLEtBQUssY0FBY3BDLFdBQVcsTUFBTSxDQUFDO0FBS2pESSxRQUFNaUMsU0FBU2pELFNBQW1CLEVBQUVrRCxPQUFPSixXQUFXO0FBRXRELEdBQUEsR0FBQVQsbUJBQUFjLE9BQU1MLFlBQVlNLElBQUksQ0FBQyxHQUFzQjtJQUM1Q0MsT0FBTztJQUNQQyxTQUFTUixZQUFZRSxLQUFLLFlBQVk7SUFDdENPLFdBQVc7RUFDWixDQUFDO0FBRUR4QyxrQkFBZ0JDLEtBQUs7QUFDdEI7O0FDNUJBd0MsR0FBR0MsS0FBSyxrQkFBa0IsRUFBRUMsSUFBSSxTQUFTQyxjQUFjQyxVQUFnQjtBQUN0RSxRQUFNNUMsUUFBZ0M0QyxTQUFTQyxLQUFLLEtBQUs7QUFDekQsTUFBSSxDQUFDN0MsTUFBTThDLFFBQVE7QUFDbEI7RUFDRDtBQUVBeEIsWUFBVXRCLEtBQUs7QUFDaEIsQ0FBQzsiLAogICJuYW1lcyI6IFsiYnV0dG9uIiwgImNvZGVCbG9jayIsICJpbXBvcnRfZXh0X2dhZGdldDIiLCAicmVxdWlyZSIsICJpbXBvcnRfZXh0X2dhZGdldCIsICJnZXRJMThuTWVzc2FnZXMiLCAiQ29weSIsICJsb2NhbGl6ZSIsICJlbiIsICJqYSIsICJDb3BpZWQiLCAiRmFpbGVkIiwgImkxOG5NZXNzYWdlcyIsICJnZXRNZXNzYWdlIiwgImtleSIsICJpbXBvcnRfZXh0X2dhZGdldDMiLCAiYWRkQ29weUxpc3RlbmVyIiwgIiRwcmVzIiwgIl9pdGVyYXRvciIsICJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsICJfc3RlcCIsICJzIiwgIm4iLCAiZG9uZSIsICJwcmUiLCAidmFsdWUiLCAiY2xpcGJvYXJkIiwgIkNsaXBib2FyZCIsICJxdWVyeVNlbGVjdG9yIiwgImNvbmNhdCIsICJ0ZXh0IiwgIl9wcmUkdGV4dENvbnRlbnQiLCAidGV4dENvbnRlbnQiLCAib24iLCAidG9hc3RpZnkiLCAiZXJyIiwgImUiLCAiZiIsICJpbXBvcnRfZXh0X2dhZGdldDQiLCAiYWRkQnV0dG9uIiwgImNvcHlCdXR0b24iLCAiT08iLCAidWkiLCAiQnV0dG9uV2lkZ2V0IiwgImNsYXNzZXMiLCAiZnJhbWVkIiwgImljb24iLCAiJGNvcHlCdXR0b24iLCAiJGVsZW1lbnQiLCAiYXR0ciIsICJhZGRDbGFzcyIsICJhcHBlbmQiLCAidGlwcHkiLCAiZ2V0IiwgImFycm93IiwgImNvbnRlbnQiLCAicGxhY2VtZW50IiwgIm13IiwgImhvb2siLCAiYWRkIiwgImNvcHlDb2RlQmxvY2siLCAiJGNvbnRlbnQiLCAiZmluZCIsICJsZW5ndGgiXQp9Cg== diff --git a/dist/EasyArchive/EasyArchive.css b/dist/EasyArchive/EasyArchive.css index c921435da..3489a3d9c 100644 --- a/dist/EasyArchive/EasyArchive.css +++ b/dist/EasyArchive/EasyArchive.css @@ -34,17 +34,17 @@ /* */ /* esbuild-css-modules-plugin-ns-css:src/EasyArchive/modules/components/EasyArchive.module.less */ -.ve-activated .EasyArchive-module__footerNotice_ZRkG1q { +.ve-activated .EasyArchive-module__footerNotice_ZRkG1q__490 { display: none; } -.skin-citizen .EasyArchive-module__sectionIdSpan_ZRkG1q { +.skin-citizen .EasyArchive-module__sectionIdSpan_ZRkG1q__490 { margin: 0 .5rem; font-size: .875rem; } -.EasyArchive-module__sectionIdSpan_ZRkG1q a { +.EasyArchive-module__sectionIdSpan_ZRkG1q__490 a { margin: 0 .25rem; } /* */ -/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiZXNidWlsZC1jc3MtbW9kdWxlcy1wbHVnaW4tbnMtY3NzOnNyYy9FYXN5QXJjaGl2ZS9tb2R1bGVzL2NvbXBvbmVudHMvRWFzeUFyY2hpdmUubW9kdWxlLmxlc3MiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qIDxzdGRpbj4gKi9cbi52ZS1hY3RpdmF0ZWQgLkVhc3lBcmNoaXZlLW1vZHVsZV9fZm9vdGVyTm90aWNlX1pSa0cxcSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4uc2tpbi1jaXRpemVuIC5FYXN5QXJjaGl2ZS1tb2R1bGVfX3NlY3Rpb25JZFNwYW5fWlJrRzFxIHtcbiAgbWFyZ2luOiAwIC41cmVtO1xuICBmb250LXNpemU6IC44NzVyZW07XG59XG4uRWFzeUFyY2hpdmUtbW9kdWxlX19zZWN0aW9uSWRTcGFuX1pSa0cxcSBhIHtcbiAgbWFyZ2luOiAwIC4yNXJlbTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLENBQUMsYUFBYSxDQUFDO0FBQ2IsV0FBUztBQUNYO0FBQ0EsQ0FBQyxhQUFhLENBQUM7QUFDYixVQUFRLEVBQUU7QUFDVixhQUFXO0FBQ2I7QUFDQSxDQUplLHlDQUkyQjtBQUN4QyxVQUFRLEVBQUU7QUFDWjsiLAogICJuYW1lcyI6IFtdCn0K */ +/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiZXNidWlsZC1jc3MtbW9kdWxlcy1wbHVnaW4tbnMtY3NzOnNyYy9FYXN5QXJjaGl2ZS9tb2R1bGVzL2NvbXBvbmVudHMvRWFzeUFyY2hpdmUubW9kdWxlLmxlc3MiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qIDxzdGRpbj4gKi9cbi52ZS1hY3RpdmF0ZWQgLkVhc3lBcmNoaXZlLW1vZHVsZV9fZm9vdGVyTm90aWNlX1pSa0cxcV9fNDkwIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5za2luLWNpdGl6ZW4gLkVhc3lBcmNoaXZlLW1vZHVsZV9fc2VjdGlvbklkU3Bhbl9aUmtHMXFfXzQ5MCB7XG4gIG1hcmdpbjogMCAuNXJlbTtcbiAgZm9udC1zaXplOiAuODc1cmVtO1xufVxuLkVhc3lBcmNoaXZlLW1vZHVsZV9fc2VjdGlvbklkU3Bhbl9aUmtHMXFfXzQ5MCBhIHtcbiAgbWFyZ2luOiAwIC4yNXJlbTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLENBQUMsYUFBYSxDQUFDO0FBQ2IsV0FBUztBQUNYO0FBQ0EsQ0FBQyxhQUFhLENBQUM7QUFDYixVQUFRLEVBQUU7QUFDVixhQUFXO0FBQ2I7QUFDQSxDQUplLDhDQUlnQztBQUM3QyxVQUFRLEVBQUU7QUFDWjsiLAogICJuYW1lcyI6IFtdCn0K */ diff --git a/dist/EasyArchive/EasyArchive.js b/dist/EasyArchive/EasyArchive.js index 328e4ff67..f66478ea9 100644 --- a/dist/EasyArchive/EasyArchive.js +++ b/dist/EasyArchive/EasyArchive.js @@ -228,10 +228,10 @@ var elementId = "gadget-easy_archive"; var mountPointSelector = "#footer-info,.page-info"; var version = "1.0"; //! src/EasyArchive/modules/components/react.tsx -var import_ext_gadget2 = __toESM(require("ext.gadget.React"), 1); +var import_ext_gadget2 = __toESM(require("ext.gadget.JSX"), 1); //! src/EasyArchive/modules/components/EasyArchive.module.less -var footerNotice = "EasyArchive-module__footerNotice_ZRkG1q"; -var sectionIdSpan = "EasyArchive-module__sectionIdSpan_ZRkG1q"; +var footerNotice = "EasyArchive-module__footerNotice_ZRkG1q__490"; +var sectionIdSpan = "EasyArchive-module__sectionIdSpan_ZRkG1q__490"; //! src/EasyArchive/modules/i18n.ts var import_ext_gadget = require("ext.gadget.i18n"); var getI18nMessages = () => { @@ -512,7 +512,7 @@ var getSettings = () => { }; }; //! src/EasyArchive/EasyArchive.tsx -var import_ext_gadget10 = __toESM(require("ext.gadget.React")); +var import_ext_gadget10 = __toESM(require("ext.gadget.JSX")); //! src/EasyArchive/modules/util/api.ts var import_ext_gadget3 = require("ext.gadget.Util"); var api = (0, import_ext_gadget3.initMwApi)("EasyArchive/".concat(version)); @@ -734,7 +734,7 @@ var getDeletedMessage = (indexNo) => { return getMessage("Deleted") + getMessage(":") + getMessage("Section $1").replace("$1", indexNo); }; //! src/EasyArchive/modules/util/onClick.tsx -var import_ext_gadget5 = __toESM(require("ext.gadget.React"), 1); +var import_ext_gadget5 = __toESM(require("ext.gadget.JSX"), 1); //! src/EasyArchive/modules/util/refreshPage.ts var import_ext_gadget4 = require("ext.gadget.Toastify"); var { @@ -889,7 +889,7 @@ var removeOnClick = /* @__PURE__ */ function() { }; }(); //! src/EasyArchive/modules/components/sectionLink.tsx -var import_ext_gadget7 = __toESM(require("ext.gadget.React"), 1); +var import_ext_gadget7 = __toESM(require("ext.gadget.JSX"), 1); var ArchiveSectionLink = ({ sectionIdSpans, messageChannel, @@ -961,7 +961,7 @@ var ArchiveAndDeleteSectionLink = ({ toastifyInstance }) : /* @__PURE__ */ import_ext_gadget7.default.createElement(import_ext_gadget7.default.Fragment, null)); //! src/EasyArchive/modules/addLinks.tsx -var import_ext_gadget8 = __toESM(require("ext.gadget.React"), 1); +var import_ext_gadget8 = __toESM(require("ext.gadget.JSX"), 1); var import_ext_gadget9 = require("ext.gadget.Toastify"); var addLinks = /* @__PURE__ */ function() { var _ref9 = _asyncToGenerator(function* ({ @@ -1130,4 +1130,4 @@ var appendFooterNotice = (element) => { /* */ -//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsibm9kZV9tb2R1bGVzLy5wbnBtL2Jyb2FkY2FzdGNoYW5uZWwtcG9seWZpbGxAMS4wLjEvbm9kZV9tb2R1bGVzL2Jyb2FkY2FzdGNoYW5uZWwtcG9seWZpbGwvaW5kZXguanMiLCAic3JjL0Vhc3lBcmNoaXZlL29wdGlvbnMuanNvbiIsICJzcmMvRWFzeUFyY2hpdmUvbW9kdWxlcy9jb21wb25lbnRzL3JlYWN0LnRzeCIsICJzcmMvRWFzeUFyY2hpdmUvbW9kdWxlcy9jb21wb25lbnRzL0Vhc3lBcmNoaXZlLm1vZHVsZS5sZXNzIiwgInNyYy9FYXN5QXJjaGl2ZS9tb2R1bGVzL2kxOG4udHMiLCAic3JjL0Vhc3lBcmNoaXZlL21vZHVsZXMvdXRpbC9zYW5pdGl6ZS50cyIsICJzcmMvRWFzeUFyY2hpdmUvbW9kdWxlcy91dGlsL2dldFNldHRpbmdzLnRzIiwgInNyYy9FYXN5QXJjaGl2ZS9FYXN5QXJjaGl2ZS50c3giLCAic3JjL0Vhc3lBcmNoaXZlL21vZHVsZXMvdXRpbC9hcGkudHMiLCAic3JjL0Vhc3lBcmNoaXZlL21vZHVsZXMvdXRpbC9nZXRTZWN0aW9uLnRzIiwgInNyYy9FYXN5QXJjaGl2ZS9tb2R1bGVzL3V0aWwvZWRpdFNlY3Rpb24udHMiLCAic3JjL0Vhc3lBcmNoaXZlL21vZHVsZXMvdXRpbC9nZXRNZXNzYWdlLnRzIiwgInNyYy9FYXN5QXJjaGl2ZS9tb2R1bGVzL3V0aWwvb25DbGljay50c3giLCAic3JjL0Vhc3lBcmNoaXZlL21vZHVsZXMvdXRpbC9yZWZyZXNoUGFnZS50cyIsICJzcmMvRWFzeUFyY2hpdmUvbW9kdWxlcy9jb21wb25lbnRzL3NlY3Rpb25MaW5rLnRzeCIsICJzcmMvRWFzeUFyY2hpdmUvbW9kdWxlcy9hZGRMaW5rcy50c3giLCAic3JjL0Vhc3lBcmNoaXZlL21vZHVsZXMvYXBwZW5kRm9vdGVyTm90aWNlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIoZnVuY3Rpb24oZ2xvYmFsKSB7XG4gICAgdmFyIGNoYW5uZWxzID0gW107XG5cbiAgICBmdW5jdGlvbiBCcm9hZGNhc3RDaGFubmVsKGNoYW5uZWwpIHtcbiAgICAgICAgdmFyICR0aGlzID0gdGhpcztcbiAgICAgICAgY2hhbm5lbCA9IFN0cmluZyhjaGFubmVsKTtcblxuICAgICAgICB2YXIgaWQgPSAnJEJyb2FkY2FzdENoYW5uZWwkJyArIGNoYW5uZWwgKyAnJCc7XG5cbiAgICAgICAgY2hhbm5lbHNbaWRdID0gY2hhbm5lbHNbaWRdIHx8IFtdO1xuICAgICAgICBjaGFubmVsc1tpZF0ucHVzaCh0aGlzKTtcblxuICAgICAgICB0aGlzLl9uYW1lID0gY2hhbm5lbDtcbiAgICAgICAgdGhpcy5faWQgPSBpZDtcbiAgICAgICAgdGhpcy5fY2xvc2VkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX21jID0gbmV3IE1lc3NhZ2VDaGFubmVsKCk7XG4gICAgICAgIHRoaXMuX21jLnBvcnQxLnN0YXJ0KCk7XG4gICAgICAgIHRoaXMuX21jLnBvcnQyLnN0YXJ0KCk7XG5cbiAgICAgICAgZ2xvYmFsLmFkZEV2ZW50TGlzdGVuZXIoJ3N0b3JhZ2UnLCBmdW5jdGlvbihlKSB7XG4gICAgICAgICAgICBpZiAoZS5zdG9yYWdlQXJlYSAhPT0gZ2xvYmFsLmxvY2FsU3RvcmFnZSkgcmV0dXJuO1xuICAgICAgICAgICAgaWYgKGUubmV3VmFsdWUgPT0gbnVsbCB8fCBlLm5ld1ZhbHVlID09PSAnJykgcmV0dXJuO1xuICAgICAgICAgICAgaWYgKGUua2V5LnN1YnN0cmluZygwLCBpZC5sZW5ndGgpICE9PSBpZCkgcmV0dXJuO1xuICAgICAgICAgICAgdmFyIGRhdGEgPSBKU09OLnBhcnNlKGUubmV3VmFsdWUpO1xuICAgICAgICAgICAgJHRoaXMuX21jLnBvcnQyLnBvc3RNZXNzYWdlKGRhdGEpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBCcm9hZGNhc3RDaGFubmVsLnByb3RvdHlwZSA9IHtcbiAgICAgICAgLy8gQnJvYWRjYXN0Q2hhbm5lbCBBUElcbiAgICAgICAgZ2V0IG5hbWUoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fbmFtZTtcbiAgICAgICAgfSxcbiAgICAgICAgcG9zdE1lc3NhZ2U6IGZ1bmN0aW9uKG1lc3NhZ2UpIHtcbiAgICAgICAgICAgIHZhciAkdGhpcyA9IHRoaXM7XG4gICAgICAgICAgICBpZiAodGhpcy5fY2xvc2VkKSB7XG4gICAgICAgICAgICAgICAgdmFyIGUgPSBuZXcgRXJyb3IoKTtcbiAgICAgICAgICAgICAgICBlLm5hbWUgPSAnSW52YWxpZFN0YXRlRXJyb3InO1xuICAgICAgICAgICAgICAgIHRocm93IGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YXIgdmFsdWUgPSBKU09OLnN0cmluZ2lmeShtZXNzYWdlKTtcblxuICAgICAgICAgICAgLy8gQnJvYWRjYXN0IHRvIG90aGVyIGNvbnRleHRzIHZpYSBzdG9yYWdlIGV2ZW50cy4uLlxuICAgICAgICAgICAgdmFyIGtleSA9IHRoaXMuX2lkICsgU3RyaW5nKERhdGUubm93KCkpICsgJyQnICsgU3RyaW5nKE1hdGgucmFuZG9tKCkpO1xuICAgICAgICAgICAgZ2xvYmFsLmxvY2FsU3RvcmFnZS5zZXRJdGVtKGtleSwgdmFsdWUpO1xuICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICBnbG9iYWwubG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oa2V5KTtcbiAgICAgICAgICAgIH0sIDUwMCk7XG5cbiAgICAgICAgICAgIC8vIEJyb2FkY2FzdCB0byBjdXJyZW50IGNvbnRleHQgdmlhIHBvcnRzXG4gICAgICAgICAgICBjaGFubmVsc1t0aGlzLl9pZF0uZm9yRWFjaChmdW5jdGlvbihiYykge1xuICAgICAgICAgICAgICAgIGlmIChiYyA9PT0gJHRoaXMpIHJldHVybjtcbiAgICAgICAgICAgICAgICBiYy5fbWMucG9ydDIucG9zdE1lc3NhZ2UoSlNPTi5wYXJzZSh2YWx1ZSkpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIGNsb3NlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLl9jbG9zZWQpIHJldHVybjtcbiAgICAgICAgICAgIHRoaXMuX2Nsb3NlZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLl9tYy5wb3J0MS5jbG9zZSgpO1xuICAgICAgICAgICAgdGhpcy5fbWMucG9ydDIuY2xvc2UoKTtcblxuICAgICAgICAgICAgdmFyIGluZGV4ID0gY2hhbm5lbHNbdGhpcy5faWRdLmluZGV4T2YodGhpcyk7XG4gICAgICAgICAgICBjaGFubmVsc1t0aGlzLl9pZF0uc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgfSxcblxuICAgICAgICAvLyBFdmVudFRhcmdldCBBUElcbiAgICAgICAgZ2V0IG9ubWVzc2FnZSgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9tYy5wb3J0MS5vbm1lc3NhZ2U7XG4gICAgICAgIH0sXG4gICAgICAgIHNldCBvbm1lc3NhZ2UodmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuX21jLnBvcnQxLm9ubWVzc2FnZSA9IHZhbHVlO1xuICAgICAgICB9LFxuICAgICAgICBhZGRFdmVudExpc3RlbmVyOiBmdW5jdGlvbigvKnR5cGUsIGxpc3RlbmVyICwgdXNlQ2FwdHVyZSovKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fbWMucG9ydDEuYWRkRXZlbnRMaXN0ZW5lci5hcHBseSh0aGlzLl9tYy5wb3J0MSwgYXJndW1lbnRzKTtcbiAgICAgICAgfSxcbiAgICAgICAgcmVtb3ZlRXZlbnRMaXN0ZW5lcjogZnVuY3Rpb24oLyp0eXBlLCBsaXN0ZW5lciAsIHVzZUNhcHR1cmUqLykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX21jLnBvcnQxLnJlbW92ZUV2ZW50TGlzdGVuZXIuYXBwbHkodGhpcy5fbWMucG9ydDEsIGFyZ3VtZW50cyk7XG4gICAgICAgIH0sXG4gICAgICAgIGRpc3BhdGNoRXZlbnQ6IGZ1bmN0aW9uKC8qZXZlbnQqLykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX21jLnBvcnQxLmRpc3BhdGNoRXZlbnQuYXBwbHkodGhpcy5fbWMucG9ydDEsIGFyZ3VtZW50cyk7XG4gICAgICAgIH0sXG4gICAgfTtcblxuICAgIGdsb2JhbC5Ccm9hZGNhc3RDaGFubmVsID0gZ2xvYmFsLkJyb2FkY2FzdENoYW5uZWwgfHwgQnJvYWRjYXN0Q2hhbm5lbDtcbn0pKHNlbGYpO1xuIiwgIntcblx0XCJlbGVtZW50SWRcIjogXCJnYWRnZXQtZWFzeV9hcmNoaXZlXCIsXG5cdFwibW91bnRQb2ludFNlbGVjdG9yXCI6IFwiI2Zvb3Rlci1pbmZvLC5wYWdlLWluZm9cIixcblx0XCJ2ZXJzaW9uXCI6IFwiMS4wXCJcbn1cbiIsICJpbXBvcnQgKiBhcyBPUFRJT05TIGZyb20gJy4uLy4uL29wdGlvbnMuanNvbic7XG5pbXBvcnQgUmVhY3QsIHtSZWFjdEVsZW1lbnR9IGZyb20gJ2V4dC5nYWRnZXQuUmVhY3QnO1xuaW1wb3J0IHtmb290ZXJOb3RpY2UsIHNlY3Rpb25JZFNwYW59IGZyb20gJy4vRWFzeUFyY2hpdmUubW9kdWxlLmxlc3MnO1xuaW1wb3J0IHtnZXRNZXNzYWdlfSBmcm9tICcuLi9pMThuJztcbmltcG9ydCB7c2FuaXRpemV9IGZyb20gJy4uL3V0aWwvc2FuaXRpemUnO1xuXG5pbnRlcmZhY2UgRm9vdGVyTm90aWNlUHJvcHMge1xuXHRpZD86IHN0cmluZztcblx0Y2hpbGRyZW4/OiBSZWFjdEVsZW1lbnQgfCBSZWFjdEVsZW1lbnRbXTtcbn1cblxuY29uc3QgRm9vdGVyTm90aWNlID0gKHtpZCwgY2hpbGRyZW4gPSA8PjwvPn06IEZvb3Rlck5vdGljZVByb3BzKSA9PiB7XG5cdGNvbnN0IHtza2lufSA9IG13LmNvbmZpZy5nZXQoKTtcblxuXHRyZXR1cm4gKFxuXHRcdDw+XG5cdFx0XHR7c2tpbiA9PT0gJ2NpdGl6ZW4nID8gKFxuXHRcdFx0XHQ8c2VjdGlvblxuXHRcdFx0XHRcdGlkPXtpZCA/PyBPUFRJT05TLmVsZW1lbnRJZH1cblx0XHRcdFx0XHRjbGFzc05hbWU9e1tmb290ZXJOb3RpY2UsICdwYWdlLWluZm9fX2l0ZW0nLCAnY2l0aXplbi1mb290ZXJfX3BhZ2VpbmZvLWl0ZW0nLCAnbm9wcmludCddfVxuXHRcdFx0XHQ+XG5cdFx0XHRcdFx0e2NoaWxkcmVufVxuXHRcdFx0XHQ8L3NlY3Rpb24+XG5cdFx0XHQpIDogWyd2ZWN0b3InLCAndmVjdG9yLTIwMjInLCAnZ29uZ2JpJ10uaW5jbHVkZXMoc2tpbikgfHwgZG9jdW1lbnQucXVlcnlTZWxlY3RvcigndWwjZm9vdGVyLWluZm8nKSA/IChcblx0XHRcdFx0PGxpIGlkPXtpZCA/PyBPUFRJT05TLmVsZW1lbnRJZH0gY2xhc3NOYW1lPXtbZm9vdGVyTm90aWNlLCAnbm9wcmludCddfT5cblx0XHRcdFx0XHR7Y2hpbGRyZW59XG5cdFx0XHRcdDwvbGk+XG5cdFx0XHQpIDogKFxuXHRcdFx0XHQ8ZGl2IGlkPXtpZCA/PyBPUFRJT05TLmVsZW1lbnRJZH0gY2xhc3NOYW1lPXtbZm9vdGVyTm90aWNlLCAnbm9wcmludCddfT5cblx0XHRcdFx0XHR7Y2hpbGRyZW59XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0KX1cblx0XHQ8Lz5cblx0KTtcbn07XG5cbmNvbnN0IEluQmxhY2tMaXN0ID0gKCkgPT4gKFxuXHQ8Rm9vdGVyTm90aWNlIGlkPVwiZWFzeV9hcmNoaXZlX25vdF9zdXBwb3J0ZWRfbm90aWNlXCI+XG5cdFx0PHNwYW4+XG5cdFx0XHR7Z2V0TWVzc2FnZSgnRWFzeSBBcmNoaXZlIG5vdCBzdXBwb3J0ZWQnKX1cblx0XHRcdDxiciAvPlxuXHRcdFx0e2dldE1lc3NhZ2UoJ0Vhc3kgQXJjaGl2ZSBub3Qgc3VwcG9ydGVkIGRldGFpbHMnKX1cblx0XHQ8L3NwYW4+XG5cdDwvRm9vdGVyTm90aWNlPlxuKTtcblxuY29uc3QgTm90QWxsb3dlZCA9ICgpID0+IChcblx0PEZvb3Rlck5vdGljZSBpZD1cImVhc3lfYXJjaGl2ZV9ub3RfYWxsb3dlZF9ub3RpY2VcIj5cblx0XHQ8c3Bhbj57Z2V0TWVzc2FnZSgnRWFzeSBBcmNoaXZlIG5vdCBhbGxvd2VkJyl9PC9zcGFuPlxuXHQ8L0Zvb3Rlck5vdGljZT5cbik7XG5cbmludGVyZmFjZSBBcmNMb2NOb3RBbGxvd2VkUHJvcHMge1xuXHRhcmNMb2M6IHN0cmluZztcbn1cblxuY29uc3QgQXJjTG9jTm90QWxsb3dlZCA9ICh7YXJjTG9jfTogQXJjTG9jTm90QWxsb3dlZFByb3BzKSA9PiAoXG5cdDxGb290ZXJOb3RpY2UgaWQ9XCJlYXN5X2FyY2hpdmVfYXJjX2xvY19ub3RfYWxsb3dlZF9ub3RpY2VcIj5cblx0XHQ8c3Bhbj5cblx0XHRcdHtnZXRNZXNzYWdlKCdBcmNoaXZlIExvY2F0aW9uIG5vdCBhbGxvd2VkJykucmVwbGFjZSgnJDEnLCBzYW5pdGl6ZShhcmNMb2MpKX1cblx0XHRcdDxiciAvPlxuXHRcdFx0e2dldE1lc3NhZ2UoJ0FyY2hpdmUgTG9jYXRpb24gbm90IGFsbG93ZWQgZGV0YWlscycpfVxuXHRcdDwvc3Bhbj5cblx0PC9Gb290ZXJOb3RpY2U+XG4pO1xuXG5jb25zdCBOb0FyY0xvYyA9ICgpID0+IChcblx0PEZvb3Rlck5vdGljZSBpZD1cImVhc3lfYXJjaGl2ZV9ub19hcmNfbG9jX25vdGljZVwiPlxuXHRcdDxzcGFuPntnZXRNZXNzYWdlKCdObyBBcmNoaXZlIExvY2F0aW9uJyl9PC9zcGFuPlxuXHQ8L0Zvb3Rlck5vdGljZT5cbik7XG5cbmludGVyZmFjZSBFbmFibGVkUHJvcHMge1xuXHRhcmNMb2M6IHN0cmluZztcbn1cblxuY29uc3QgRW5hYmxlZCA9ICh7YXJjTG9jfTogRW5hYmxlZFByb3BzKSA9PiAoXG5cdDxGb290ZXJOb3RpY2UgaWQ9XCJlYXN5X2FyY2hpdmVfYXJjX2xvY19ub3RfYWxsb3dlZF9ub3RpY2VcIj5cblx0XHQ8c3Bhbj5cblx0XHRcdHtnZXRNZXNzYWdlKCdFYXN5IEFyY2hpdmUgZW5hYmxlZCcpfVxuXHRcdFx0e2dldE1lc3NhZ2UoJygnKX1cblx0XHRcdHtnZXRNZXNzYWdlKCdBcmNoaXZlIGxvY2F0aW9uJyl9XG5cdFx0XHQ8YSB0aXRsZT17c2FuaXRpemUoYXJjTG9jKX0gaHJlZj17YC93aWtpLyR7c2FuaXRpemUoYXJjTG9jKX1gfT5cblx0XHRcdFx0e2FyY0xvY31cblx0XHRcdDwvYT5cblx0XHRcdHtnZXRNZXNzYWdlKCcpJyl9XG5cdFx0XHR7Z2V0TWVzc2FnZSgnLicpfVxuXHRcdDwvc3Bhbj5cblx0PC9Gb290ZXJOb3RpY2U+XG4pO1xuXG5pbnRlcmZhY2UgT25DbGlja1Byb3BzIHtcblx0dGV4dENvbnRlbnQ6IHN0cmluZztcblx0Y2xhc3NOYW1lOiBzdHJpbmc7XG5cdG9uQ2xpY2s/OiAoZXZlbnQ6IEV2ZW50KSA9PiB2b2lkO1xufVxuXG5jb25zdCBPbkNsaWNrID0gKHt0ZXh0Q29udGVudCwgY2xhc3NOYW1lLCBvbkNsaWNrfTogT25DbGlja1Byb3BzKSA9PiAoXG5cdDxhXG5cdFx0Y2xhc3NOYW1lPXtbJ2dhZGdldC1lYXN5X2FyY2hpdmVfX2xpbmsnLCBgZ2FkZ2V0LWVhc3lfYXJjaGl2ZV9fbGluay0ke2NsYXNzTmFtZX1gXX1cblx0XHRvbkNsaWNrPXtvbkNsaWNrIHx8ICgoKSA9PiB7fSl9XG5cdFx0dGV4dENvbnRlbnQ9e3RleHRDb250ZW50fVxuXHQvPlxuKTtcblxuaW50ZXJmYWNlIFNlY3Rpb25JRFByb3BzIHtcblx0Y2hpbGRyZW4/OiBSZWFjdEVsZW1lbnQgfCBSZWFjdEVsZW1lbnRbXTtcbn1cblxuY29uc3QgU2VjdGlvbklEID0gKHtjaGlsZHJlbn06IFNlY3Rpb25JRFByb3BzKSA9PiA8c3BhbiBjbGFzc05hbWU9e3NlY3Rpb25JZFNwYW59PntjaGlsZHJlbn08L3NwYW4+O1xuXG5jb25zdCBQaXBlID0gKCkgPT4gPHNwYW4gY2xhc3NOYW1lPVwibXctZWRpdHNlY3Rpb24tZGl2aWRlclwiIHRleHRDb250ZW50PXsnfCd9IC8+O1xuXG5pbnRlcmZhY2UgRWRpdENvbmZsaWN0Tm90aWNlUHJvcHMge1xuXHRvbkNsaWNrOiAoKSA9PiB2b2lkO1xufVxuXG5jb25zdCBFZGl0Q29uZmxpY3ROb3RpY2UgPSAoe29uQ2xpY2t9OiBFZGl0Q29uZmxpY3ROb3RpY2VQcm9wcykgPT4gKFxuXHQ8c3Bhbj5cblx0XHR7Z2V0TWVzc2FnZSgnRWRpdCBDb25maWxpY3QgTm90aWNlJyl9XG5cdFx0PGEgb25DbGljaz17b25DbGlja30+e2dldE1lc3NhZ2UoJ1JlZnJlc2gnKX08L2E+XG5cdDwvc3Bhbj5cbik7XG5cbmV4cG9ydCB7XG5cdEZvb3Rlck5vdGljZSxcblx0RW5hYmxlZCxcblx0SW5CbGFja0xpc3QsXG5cdE5vdEFsbG93ZWQsXG5cdEFyY0xvY05vdEFsbG93ZWQsXG5cdE5vQXJjTG9jLFxuXHRPbkNsaWNrLFxuXHRQaXBlLFxuXHRTZWN0aW9uSUQsXG5cdEVkaXRDb25mbGljdE5vdGljZSxcbn07XG4iLCAiaW1wb3J0IFwiZXNidWlsZC1jc3MtbW9kdWxlcy1wbHVnaW4tbnMtY3NzOnNyYy9FYXN5QXJjaGl2ZS9tb2R1bGVzL2NvbXBvbmVudHMvRWFzeUFyY2hpdmUubW9kdWxlLmxlc3NcIjtcbmV4cG9ydCBjb25zdCBmb290ZXJOb3RpY2UgPSBcIkVhc3lBcmNoaXZlLW1vZHVsZV9fZm9vdGVyTm90aWNlX1pSa0cxcVwiO1xuZXhwb3J0IGNvbnN0IHNlY3Rpb25JZFNwYW4gPSBcIkVhc3lBcmNoaXZlLW1vZHVsZV9fc2VjdGlvbklkU3Bhbl9aUmtHMXFcIjtcblxuZXhwb3J0IGRlZmF1bHQge1xuICBcImZvb3Rlck5vdGljZVwiOiBmb290ZXJOb3RpY2UsXG4gIFwic2VjdGlvbklkU3BhblwiOiBzZWN0aW9uSWRTcGFuXG59O1xuICAgICAgIiwgImltcG9ydCB7bG9jYWxpemV9IGZyb20gJ2V4dC5nYWRnZXQuaTE4bic7XG5cbmNvbnN0IGdldEkxOG5NZXNzYWdlcyA9ICgpID0+IHtcblx0cmV0dXJuIHtcblx0XHRBcmNoaXZlOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ2FyY2hpdmUnLFxuXHRcdFx0J3poLWhhbnMnOiAn5a2Y5qGjJyxcblx0XHRcdCd6aC1oYW50JzogJ+WtmOaqlCcsXG5cdFx0fSksXG5cdFx0J0FyY2hpdmUgbG9jYXRpb24nOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ0FyY2hpdmUgbG9jYXRpb246ICcsXG5cdFx0XHQnemgtaGFucyc6ICflrZjmoaPlnLDlnYDvvJonLFxuXHRcdFx0J3poLWhhbnQnOiAn5a2Y5qqU6Iez77yaJyxcblx0XHR9KSxcblx0XHQnQXJjaGl2ZSBMb2NhdGlvbiBub3QgYWxsb3dlZCc6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnQ3VycmVudGx5IHRoZSBhcmNoaXZlIGxvY2F0aW9uIG9mIHRoaXMgcGFnZSwgXCIkMVwiLCBidXQgRWFzeSBhcmNoaXZlIGNhbm5vdCBvcGVyYXRlIGxpa2UgdGhpcy4nLFxuXHRcdFx0J3poLWhhbnMnOiAn5q2k6aG16Z2i55uu5YmN55qE5a2Y5qGj5Zyw5Z2A5piv4oCcJDHigJ3jgIJFYXN5IEFyY2hpdmUg5peg5rOV5oyJ5q2k5Zyw5Z2A5a2Y5qGj44CCJyxcblx0XHRcdCd6aC1oYW50JzogJ+atpOmggemdoueVtuWJjeeahOWtmOaqlOWcsOWdgOaYr+OAjCQx44CN44CCRWFzeSBBcmNoaXZlIOeEoeazleaMieatpOWcsOWdgOWtmOaqlOOAgicsXG5cdFx0fSksXG5cdFx0J0FyY2hpdmUgTG9jYXRpb24gbm90IGFsbG93ZWQgZGV0YWlscyc6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnQXJjaGl2ZXMgc2hvdWxkIG5vdCBiZSBub3JtYWxseSBkaXJlY3RlZCB0byBwYWdlcyB1bmRlciBhcnRpY2xlIG5hbWVzcGFjZS4gUGxlYXNlIGNoZWNrIGlmIHlvdSBoYXZlIHRoZSBjb3JyZWN0IGFyY2hpdmUgbG9jYXRpb24uJyxcblx0XHRcdCd6aC1oYW5zJzogJ+S4gOiIrOiAjOiogO+8jOS4jeW6lOWQkeadoeebruWQjeensOepuumXtOi/m+ihjOWtmOaho+OAguatpOWklu+8jOWtmOaho+WcsOWdgOS4jeW+l+WSjOatpOmhtemdouWQjeensOebuOWQjOOAguivt+ajgOafpeWtmOaho+WcsOWdgOOAgicsXG5cdFx0XHQnemgtaGFudCc6ICfkuIDoiKzogIzoqIDvvIzkuI3mh4nlkJHmop3nm67lkI3nqLHnqbrplpPpgLLooYzlrZjmqpTjgILmraTlpJbvvIzlrZjmqpTlnLDlnYDkuI3lvpflkozmraTpoIHpnaLlkI3nqLHnm7jlkIzjgILoq4vmqqLmn6XlrZjmqpTlnLDlnYDjgIInLFxuXHRcdH0pLFxuXHRcdEFyY2hpdmluZzogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdBcmNoaXZpbmcnLFxuXHRcdFx0J3poLWhhbnMnOiAn5a2Y5qGj5LitJyxcblx0XHRcdCd6aC1oYW50JzogJ+WtmOaqlOS4rScsXG5cdFx0fSksXG5cdFx0QXJjaGl2ZWQ6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnYXJjaGl2ZWQnLFxuXHRcdFx0J3poLWhhbnMnOiAn5bey5a2Y5qGjJyxcblx0XHRcdCd6aC1oYW50JzogJ+W3suWtmOaqlCcsXG5cdFx0fSksXG5cdFx0J0VkaXQgQ29uZmlsaWN0IE5vdGljZSc6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnWW91IGhhdmUgYWxyZWFkeSBhcmNoaXZlZCBhbmQvb3IgZGVsZXRlZCBhIHNlY3Rpb24gb24gdGhpcyBwYWdlLiBQbGVhc2UgcmVmcmVzaCB0aGUgcGFnZSBhbmQgY29udGludWUgYXJjaGl2aW5nIG9yIGRlbGV0aW5nIG90aGVyIHNlY3Rpb25zIHRvIGF2b2lkIGVkaXRpbmcgY29uZmxpY3RzLicsXG5cdFx0XHQnemgtaGFucyc6XG5cdFx0XHRcdCfmgqjlt7Lnu4/lnKjmnKzpobXpnaLmiafooYzkuoblrZjmoaPjgIHliKDpmaTnq6DoioLnmoTmk43kvZzjgILor7fliLfmlrDpobXpnaLvvIznhLblkI7nu6fnu63lrZjmoaPjgIHliKDpmaTmnKzpobXpnaLnmoTlhbbku5bnq6DoioLvvIzku6Xpgb/lhY3nvJbovpHlhrLnqoHjgIInLFxuXHRcdFx0J3poLWhhbnQnOlxuXHRcdFx0XHQn5oKo5bey57aT5Zyo5pys6aCB6Z2i5Z+36KGM5LqG5a2Y5qqU44CB5Yiq6Zmk56ug56+A55qE5pON5L2c44CC6KuL5Yi35paw6aCB6Z2i77yM54S25b6M57m857qM5a2Y5qqU44CB5Yiq6Zmk5pys6aCB6Z2i55qE5YW25LuW56ug56+A77yM5Lul6YG/5YWN57eo6Lyv6KGd56qB44CCJyxcblx0XHR9KSxcblx0XHREZWxldGU6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnZGVsZXRlJyxcblx0XHRcdCd6aC1oYW5zJzogJ+WIoOmZpCcsXG5cdFx0XHQnemgtaGFudCc6ICfliKrpmaQnLFxuXHRcdH0pLFxuXHRcdERlbGV0aW5nOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ0RlbGV0aW5nJyxcblx0XHRcdCd6aC1oYW5zJzogJ+WIoOmZpOS4rScsXG5cdFx0XHQnemgtaGFudCc6ICfliKrpmaTkuK0nLFxuXHRcdH0pLFxuXHRcdERlbGV0ZWQ6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnZGVsZXRlZCcsXG5cdFx0XHQnemgtaGFucyc6ICflt7LliKDpmaQnLFxuXHRcdFx0J3poLWhhbnQnOiAn5bey5Yiq6ZmkJyxcblx0XHR9KSxcblx0XHQnQXJjaGl2ZSBzdW1tYXJ5JzogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdhcmNoaXZlIHNlY3Rpb24nLFxuXHRcdFx0J3poLWhhbnMnOiAn5a2Y5qGj5q616JC9Jyxcblx0XHRcdCd6aC1oYW50JzogJ+WtmOaqlOauteiQvScsXG5cdFx0fSksXG5cdFx0J0NyZWF0ZSBzdW1tYXJ5JzogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdjcmVhdGUgYXJjaGl2ZScsXG5cdFx0XHQnemgtaGFucyc6ICflu7rnq4vlrZjmoaMnLFxuXHRcdFx0J3poLWhhbnQnOiAn5bu656uL5a2Y5qqUJyxcblx0XHR9KSxcblx0XHQnRGVsZXRlIHN1bW1hcnknOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ2RlbGV0ZSBzZWN0aW9uJyxcblx0XHRcdCd6aC1oYW5zJzogJ+WIoOmZpOauteiQvScsXG5cdFx0XHQnemgtaGFudCc6ICfliKrpmaTmrrXokL0nLFxuXHRcdH0pLFxuXHRcdCdFYXN5IEFyY2hpdmUgZW5hYmxlZCc6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnRWFzeSBBcmNoaXZlIGlzIGVuYWJsZWQgb24gdGhpcyB0YWxrIHBhZ2UnLFxuXHRcdFx0J3poLWhhbnMnOiAn5pys6K6o6K666aG16Z2i5L2/55SoIEVhc3kgQXJjaGl2ZSDlv6vpgJ/lrZjmoaMnLFxuXHRcdFx0J3poLWhhbnQnOiAn5q2k6aCB6Z2i5L2/55SoIEVhc3kgQXJjaGl2ZSDlv6vpgJ/lrZjmqpQnLFxuXHRcdH0pLFxuXHRcdCdFYXN5IEFyY2hpdmUgbm90IGFsbG93ZWQnOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ1lvdSBjYW5ub3QgdXNlIEVhc3kgQXJjaGl2ZSB0byBhcmNoaXZlIHRocmVhZHMgb24gdGhpcyBwYWdlLicsXG5cdFx0XHQnemgtaGFucyc6ICfmgqjkuI3lj6/ku6XlnKjmraTpobXpnaLkvb/nlKggRWFzeSBBcmNoaXZlIOW/q+mAn+WtmOaho+OAgicsXG5cdFx0XHQnemgtaGFudCc6ICfmgqjkuI3lj6/ku6XlnKjmraTpoIHpnaLkvb/nlKggRWFzeSBBcmNoaXZlIOW/q+mAn+WtmOaqlOOAgicsXG5cdFx0fSksXG5cdFx0J0Vhc3kgQXJjaGl2ZSBub3Qgc3VwcG9ydGVkJzogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdUaGlzIHBhZ2UgaXMgbm90IHN1cHBvcnRlZCBieSBFYXN5IEFyY2hpdmUuJyxcblx0XHRcdCd6aC1oYW5zJzogJ+atpOmhtemdouS4jeaUr+aMgSBFYXN5IEFyY2hpdmXjgIInLFxuXHRcdFx0J3poLWhhbnQnOiAn5q2k6aCB6Z2i5LiN5pSv5oyBIEVhc3kgQXJjaGl2ZeOAgicsXG5cdFx0fSksXG5cdFx0J0Vhc3kgQXJjaGl2ZSBub3Qgc3VwcG9ydGVkIGRldGFpbHMnOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ1RoZXNlIHBhZ2VzIGFyZSBub3Qgc3VwcG9ydGVkIGJ5IEVhc3kgQXJjaGl2ZTogQXJ0aWNsZSwgRmlsZSwgVGVtcGxhdGUsIE1vZHVsZSwgTWVkaWFXaWtpLCBDYXRlZ29yeSwgU3BlY2lhbCwgSmF2YVNjcmlwdCwgQ1NTLCBKU09OLicsXG5cdFx0XHQnemgtaGFucyc6XG5cdFx0XHRcdCfov5nkupvpobXpnaLkuI3lj5cgRWFzeSBBcmNoaXZlIOaUr+aMge+8muadoeebruOAgUZpbGXjgIFUZW1wbGF0ZeOAgU1vZHVsZeOAgU1lZGlhV2lraeOAgUNhdGVnb3J544CBU3BlY2lhbOOAgUphdmFTY3JpcHTjgIFDU1PjgIFKU09O44CCJyxcblx0XHRcdCd6aC1oYW50Jzpcblx0XHRcdFx0J+mAmeS6m+mggemdouS4jeWPlyBFYXN5IEFyY2hpdmUg5pSv5oyB77ya5qKd55uu77yMRmlsZeOAgVRlbXBsYXRl44CBTW9kdWxl44CBTWVkaWFXaWtp44CBQ2F0ZWdvcnnjgIFTcGVjaWFs44CBSmF2YVNjcmlwdOOAgUNTU+OAgUpTT07jgIInLFxuXHRcdH0pLFxuXHRcdCdObyBBcmNoaXZlIExvY2F0aW9uJzogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdFYXN5IEFyY2hpdmUgY2FuIGJlIHVzZWQgb24gdGhpcyBwYWdlIGlmIG5lZWRlZC4gVG8gZW5hYmxlIGl0LCBhZGQge3tFYXN5IEFyY2hpdmV8dG89W0FyY2hpdmUgbG9jYXRpb25dfX0gdGVtcGxhdGUgdG8gdGhpcyBwYWdlLicsXG5cdFx0XHQnemgtaGFucyc6XG5cdFx0XHRcdCfoi6XpnIDopoHvvIzmraTpobXpnaLlj6/ku6XlkK/nlKggRWFzeSBBcmNoaXZl44CC6Iul6KaB5Zyo5q2k6aG16Z2i5L2/55SoIEVhc3kgQXJjaGl2Ze+8jOivt+WcqOmhtemdouS4iua3u+WKoOaooeadvyB7e0Vhc3kgQXJjaGl2ZXx0bz3lrZjmoaPkvY3nva59feOAgicsXG5cdFx0XHQnemgtaGFudCc6XG5cdFx0XHRcdCfoi6XpnIDopoHvvIzmraTpoIHpnaLlj6/ku6XllZ/nlKggRWFzeSBBcmNoaXZl44CC6Iul6KaB5Zyo5q2k6aCB6Z2i5L2/55SoIEVhc3kgQXJjaGl2Ze+8jOiri+WcqOmggemdouS4iua3u+WKoOaooeadvyB7e0Vhc3kgQXJjaGl2ZXx0bz3lrZjmqpTkvY3nva59feOAgicsXG5cdFx0fSksXG5cdFx0J1NlY3Rpb24gJDEnOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ1NlY3Rpb24gJDEnLFxuXHRcdFx0emg6ICfnrKwgJDEg56ug6IqCJyxcblx0XHR9KSxcblx0XHQnKCc6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnICgnLFxuXHRcdFx0emg6ICfvvIgnLFxuXHRcdH0pLFxuXHRcdCcpJzogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICcpJyxcblx0XHRcdHpoOiAn77yJJyxcblx0XHR9KSxcblx0XHQnLic6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnLicsXG5cdFx0XHR6aDogJ+OAgicsXG5cdFx0fSksXG5cdFx0JzonOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJzogJyxcblx0XHRcdHpoOiAn77yaJyxcblx0XHR9KSxcblx0XHRSZWZyZXNoOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ1JlZnJlc2ggdGhlIHBhZ2UnLFxuXHRcdFx0J3poLWhhbnMnOiAn5Yi35paw5b2T5YmN6aG16Z2iJyxcblx0XHRcdCd6aC1oYW50JzogJ+mHjeaWsOi8ieWFpeeVtuWJjemggScsXG5cdFx0fSksXG5cdFx0UmVmcmVzaGluZzogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdSZWZyZXNoaW5nLi4uJyxcblx0XHRcdGphOiAn5YaN6Kqt44G/6L6844G/44GX44G+44GZLi4uJyxcblx0XHRcdCd6aC1oYW5zJzogJ+WNs+WwhuWIt+aWsOW9k+WJjemhtemdouKApuKApicsXG5cdFx0XHQnemgtaGFudCc6ICfljbPlsIfph43mlrDovInlhaXnlbbliY3poIHigKbigKYnLFxuXHRcdH0pLFxuXHR9O1xufTtcblxuY29uc3QgaTE4bk1lc3NhZ2VzID0gZ2V0STE4bk1lc3NhZ2VzKCk7XG5cbmNvbnN0IGdldE1lc3NhZ2U6IEdldE1lc3NhZ2VzPHR5cGVvZiBpMThuTWVzc2FnZXM+ID0gKGtleSkgPT4ge1xuXHRyZXR1cm4gaTE4bk1lc3NhZ2VzW2tleV0gfHwga2V5O1xufTtcblxuZXhwb3J0IHtnZXRNZXNzYWdlfTtcbiIsICJjb25zdCBzYW5pdGl6ZSA9IChzdHJpbmc6IHN0cmluZykgPT4ge1xuXHRyZXR1cm4gc3RyaW5nXG5cdFx0LnJlcGxhY2UoLyYvZywgJyZhbXA7Jylcblx0XHQucmVwbGFjZSgvPC9nLCAnJmx0OycpXG5cdFx0LnJlcGxhY2UoLz4vZywgJyZndDsnKVxuXHRcdC5yZXBsYWNlKC8nL2csICcmYXBvczsnKVxuXHRcdC5yZXBsYWNlKC9cIi9nLCAnJnF1b3Q7Jyk7XG59O1xuXG5leHBvcnQge3Nhbml0aXplfTtcbiIsICJjb25zdCBpZkFyY0xvY05vdEFsbG93ZWQgPSAoYXJjTG9jOiBzdHJpbmcpID0+IHtcblx0Y29uc3Qge3dnUGFnZU5hbWV9ID0gbXcuY29uZmlnLmdldCgpO1xuXHRjb25zdCBzb3VyY2VUaXRsZSA9IG5ldyBtdy5UaXRsZSh3Z1BhZ2VOYW1lKTtcblx0Y29uc3QgYXJjTG9jVGl0bGUgPSBuZXcgbXcuVGl0bGUoYXJjTG9jKTtcblxuXHRjb25zdCBhcmNMb2NOYW1lc3BhY2VJZCA9IGFyY0xvY1RpdGxlLmdldE5hbWVzcGFjZUlkKCk7XG5cdGNvbnN0IGFyY0xvY1BhZ2VOYW1lID0gYXJjTG9jVGl0bGUuZ2V0TWFpbigpO1xuXHRjb25zdCBzb3VyY2VOYW1lc3BhY2VJZCA9IHNvdXJjZVRpdGxlLmdldE5hbWVzcGFjZUlkKCk7XG5cdGNvbnN0IHNvdXJjZVBhZ2VOYW1lID0gc291cmNlVGl0bGUuZ2V0TWFpbigpO1xuXG5cdGlmIChhcmNMb2NOYW1lc3BhY2VJZCA9PT0gMCkge1xuXHRcdHJldHVybiB0cnVlO1xuXHR9XG5cblx0aWYgKGFyY0xvY05hbWVzcGFjZUlkID09PSBzb3VyY2VOYW1lc3BhY2VJZCAmJiBhcmNMb2NQYWdlTmFtZSA9PT0gc291cmNlUGFnZU5hbWUpIHtcblx0XHRyZXR1cm4gdHJ1ZTtcblx0fVxuXG5cdHJldHVybiBmYWxzZTtcbn07XG5cbmNvbnN0IGlzSW5CbGFja2xpc3QgPSAoKSA9PiB7XG5cdGNvbnN0IHt3Z1BhZ2VOYW1lfSA9IG13LmNvbmZpZy5nZXQoKTtcblxuXHRjb25zdCBibGFja0xpc3RSZWdleEFyciA9IFtcblx0XHQvXkZpbGU6LiokLyxcblx0XHQvXk1lZGlhV2lraTouKiQvLFxuXHRcdC9eTW9kdWxlOi4qJC8sXG5cdFx0L15DYXRlZ29yeTouKiQvLFxuXHRcdC9eVGVtcGxhdGU6LiokLyxcblx0XHQvXlNwZWNpYWw6LiokLyxcblx0XHQvXlVzZXI6LipcXC8/LipcXC5qcyQvLFxuXHRcdC9eVXNlcjouKlxcLz8uKlxcLmNzcyQvLFxuXHRcdC9eVXNlcjouKlxcLz8uKlxcLmpzb24kLyxcblx0XTtcblxuXHRmb3IgKGNvbnN0IGVsZW1lbnQgb2YgYmxhY2tMaXN0UmVnZXhBcnIpIHtcblx0XHRpZiAoZWxlbWVudC50ZXN0KHdnUGFnZU5hbWUpKSB7XG5cdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gZmFsc2U7XG59O1xuXG5jb25zdCBpc05vdEFsbG93ZWQgPSAoKSA9PiB7XG5cdGNvbnN0IHt3Z05hbWVzcGFjZU51bWJlciwgd2dSZWxldmFudFVzZXJOYW1lLCB3Z1VzZXJOYW1lfSA9IG13LmNvbmZpZy5nZXQoKTtcblxuXHRpZiAoKHdnTmFtZXNwYWNlTnVtYmVyID09PSAyIHx8IHdnTmFtZXNwYWNlTnVtYmVyID09PSAzKSAmJiAhKHdnUmVsZXZhbnRVc2VyTmFtZSA9PT0gd2dVc2VyTmFtZSkpIHtcblx0XHRyZXR1cm4gdHJ1ZTtcblx0fVxuXG5cdHJldHVybiBmYWxzZTtcbn07XG5cbmNvbnN0IGlzTm90U3VwcG9ydGVkID0gKCkgPT4ge1xuXHRjb25zdCB7d2dJc01haW5QYWdlLCB3Z05hbWVzcGFjZU51bWJlciwgd2dDdXJSZXZpc2lvbklkLCB3Z1JldmlzaW9uSWR9ID0gbXcuY29uZmlnLmdldCgpO1xuXG5cdGlmICh3Z05hbWVzcGFjZU51bWJlciA8IDAgfHwgd2dDdXJSZXZpc2lvbklkIC0gd2dSZXZpc2lvbklkICE9PSAwKSB7XG5cdFx0cmV0dXJuIHRydWU7XG5cdH1cblxuXHRpZiAod2dOYW1lc3BhY2VOdW1iZXIgPT09IDAgfHwgd2dJc01haW5QYWdlKSB7XG5cdFx0cmV0dXJuIHRydWU7XG5cdH1cblxuXHRyZXR1cm4gZmFsc2U7XG59O1xuXG5jb25zdCBnZXRTZXR0aW5ncyA9ICgpID0+IHtcblx0Y29uc3Qgc2V0dGluZ3MgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuZWFzeV9hcmNoaXZlX2RhdGFfcG9pbnRfY29sbGVjdGlvbicpIGFzIEhUTUxFbGVtZW50O1xuXHRpZiAoIXNldHRpbmdzKSB7XG5cdFx0cmV0dXJuIG51bGw7XG5cdH1cblxuXHRjb25zdCB7ZGF0YXNldH0gPSBzZXR0aW5ncztcblx0Y29uc3Qge2FyY0xldmVsLCBhcmNMb2MsIHNlY0FyYywgc2VjRGVsfSA9IGRhdGFzZXQ7XG5cdHJldHVybiB7XG5cdFx0YXJjTGV2ZWw6IGFyY0xldmVsID8/ICcyJyxcblx0XHRhcmNMb2M6IGFyY0xvYyA/PyAnJyxcblx0XHRzZWNBcmM6IHNlY0FyYyA/PyAnMScsXG5cdFx0c2VjRGVsOiBzZWNEZWwgPz8gJzEnLFxuXHR9O1xufTtcblxuZXhwb3J0IHtnZXRTZXR0aW5ncywgaWZBcmNMb2NOb3RBbGxvd2VkLCBpc0luQmxhY2tsaXN0LCBpc05vdEFsbG93ZWQsIGlzTm90U3VwcG9ydGVkfTtcbiIsICJpbXBvcnQge0FyY0xvY05vdEFsbG93ZWQsIEVuYWJsZWQsIEluQmxhY2tMaXN0LCBOb0FyY0xvYywgTm90QWxsb3dlZH0gZnJvbSAnLi9tb2R1bGVzL2NvbXBvbmVudHMvcmVhY3QnO1xuaW1wb3J0IHtnZXRTZXR0aW5ncywgaWZBcmNMb2NOb3RBbGxvd2VkLCBpc0luQmxhY2tsaXN0LCBpc05vdEFsbG93ZWQsIGlzTm90U3VwcG9ydGVkfSBmcm9tICcuL21vZHVsZXMvdXRpbC9nZXRTZXR0aW5ncyc7XG5pbXBvcnQgUmVhY3QgZnJvbSAnZXh0LmdhZGdldC5SZWFjdCc7XG5pbXBvcnQge2FkZExpbmtzfSBmcm9tICcuL21vZHVsZXMvYWRkTGlua3MnO1xuaW1wb3J0IHthcHBlbmRGb290ZXJOb3RpY2V9IGZyb20gJy4vbW9kdWxlcy9hcHBlbmRGb290ZXJOb3RpY2UnO1xuXG4oZnVuY3Rpb24gZWFzeUFyY2hpdmUoKSB7XG5cdGNvbnN0IG5vdFN1cHBvcnRlZCA9IGlzTm90U3VwcG9ydGVkKCk7XG5cdGlmIChub3RTdXBwb3J0ZWQpIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRjb25zdCBpbkJsYWNrbGlzdCA9IGlzSW5CbGFja2xpc3QoKTtcblx0aWYgKGluQmxhY2tsaXN0KSB7XG5cdFx0YXBwZW5kRm9vdGVyTm90aWNlKDxJbkJsYWNrTGlzdCAvPik7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0Y29uc3Qgbm90QWxsb3dlZCA9IGlzTm90QWxsb3dlZCgpO1xuXHRpZiAobm90QWxsb3dlZCkge1xuXHRcdGFwcGVuZEZvb3Rlck5vdGljZSg8Tm90QWxsb3dlZCAvPik7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0Y29uc3Qgc2V0dGluZ3MgPSBnZXRTZXR0aW5ncygpO1xuXHRpZiAoIXNldHRpbmdzKSB7XG5cdFx0YXBwZW5kRm9vdGVyTm90aWNlKDxOb0FyY0xvYyAvPik7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0Y29uc3Qge2FyY0xvY30gPSBzZXR0aW5ncztcblx0aWYgKCFhcmNMb2MpIHtcblx0XHRhcHBlbmRGb290ZXJOb3RpY2UoPE5vQXJjTG9jIC8+KTtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRjb25zdCBhcmNMb2NOb3RBbGxvd2VkID0gaWZBcmNMb2NOb3RBbGxvd2VkKGFyY0xvYyk7XG5cdGlmIChhcmNMb2NOb3RBbGxvd2VkKSB7XG5cdFx0YXBwZW5kRm9vdGVyTm90aWNlKDxBcmNMb2NOb3RBbGxvd2VkIGFyY0xvYz17YXJjTG9jfSAvPik7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0YXBwZW5kRm9vdGVyTm90aWNlKDxFbmFibGVkIGFyY0xvYz17YXJjTG9jfSAvPik7XG5cblx0dm9pZCBhZGRMaW5rcyhzZXR0aW5ncyk7XG59KSgpO1xuIiwgImltcG9ydCAqIGFzIE9QVElPTlMgZnJvbSAnLi4vLi4vb3B0aW9ucy5qc29uJztcbmltcG9ydCB7aW5pdE13QXBpfSBmcm9tICdleHQuZ2FkZ2V0LlV0aWwnO1xuXG5jb25zdCBhcGk6IG13LkFwaSA9IGluaXRNd0FwaShgRWFzeUFyY2hpdmUvJHtPUFRJT05TLnZlcnNpb259YCk7XG5cbmV4cG9ydCB7YXBpfTtcbiIsICJpbXBvcnQge2FwaX0gZnJvbSAnLi9hcGknO1xuXG5jb25zdCBnZXRTZWN0aW9ucyA9IGFzeW5jICh0aXRsZTogc3RyaW5nKSA9PiB7XG5cdGNvbnN0IHBhcmFtczogQXBpUGFyc2VQYXJhbXMgPSB7XG5cdFx0YWN0aW9uOiAncGFyc2UnLFxuXHRcdGZvcm1hdDogJ2pzb24nLFxuXHRcdGZvcm1hdHZlcnNpb246ICcyJyxcblx0XHRwYWdlOiB0aXRsZSxcblx0XHRwcm9wOiAnc2VjdGlvbnMnLFxuXHR9O1xuXG5cdGNvbnN0IHtwYXJzZX0gPSBhd2FpdCBhcGkuZ2V0KHBhcmFtcyk7XG5cdGNvbnN0IHtzZWN0aW9uc30gPSBwYXJzZSBhcyB7XG5cdFx0c2VjdGlvbnM6IHtcblx0XHRcdGxldmVsOiBzdHJpbmc7XG5cdFx0XHRpbmRleDogc3RyaW5nO1xuXHRcdFx0YW5jaG9yOiBzdHJpbmc7XG5cdFx0fVtdO1xuXHR9O1xuXG5cdGNvbnN0IHNlY3Rpb25zVG9BcmNoaXZlID0gW107XG5cblx0Zm9yIChjb25zdCBzZWN0aW9uIG9mIHNlY3Rpb25zKSB7XG5cdFx0Y29uc3Qge2xldmVsLCBpbmRleCwgYW5jaG9yfSA9IHNlY3Rpb247XG5cblx0XHRpZiAoaW5kZXguc3RhcnRzV2l0aCgnVC0nKSkge1xuXHRcdFx0Y29udGludWU7XG5cdFx0fVxuXG5cdFx0c2VjdGlvbnNUb0FyY2hpdmVbc2VjdGlvbnNUb0FyY2hpdmUubGVuZ3RoXSA9IHtcblx0XHRcdGxldmVsLFxuXHRcdFx0aW5kZXgsXG5cdFx0XHRhbmNob3IsXG5cdFx0fTtcblx0fVxuXG5cdHJldHVybiBzZWN0aW9uc1RvQXJjaGl2ZTtcbn07XG5cbmNvbnN0IGdldFNlY3Rpb25Db250ZW50ID0gYXN5bmMgKHt0aXRsZSwgc2VjdGlvbn06IHt0aXRsZTogc3RyaW5nOyBzZWN0aW9uOiBzdHJpbmd9KTogUHJvbWlzZTxzdHJpbmcgfCBudWxsPiA9PiB7XG5cdGNvbnN0IHBhcmFtczogQXBpUXVlcnlSZXZpc2lvbnNQYXJhbXMgPSB7XG5cdFx0YWN0aW9uOiAncXVlcnknLFxuXHRcdHByb3A6ICdyZXZpc2lvbnMnLFxuXHRcdHJ2cHJvcDogJ2NvbnRlbnQnLFxuXHRcdGZvcm1hdDogJ2pzb24nLFxuXHRcdGZvcm1hdHZlcnNpb246ICcyJyxcblx0XHR0aXRsZXM6IHRpdGxlLFxuXHRcdHJ2c2VjdGlvbjogc2VjdGlvbixcblx0XHRydnNsb3RzOiAnbWFpbicsXG5cdH07XG5cblx0Y29uc3QgcmVzcG9uc2UgPSBhd2FpdCBhcGkuZ2V0KHBhcmFtcyk7XG5cblx0cmV0dXJuIChyZXNwb25zZVsncXVlcnknXS5wYWdlc1swXT8ucmV2aXNpb25zPy5bMF0uc2xvdHMubWFpbi5jb250ZW50IGFzIHN0cmluZykgPz8gbnVsbDtcbn07XG5cbmV4cG9ydCB7Z2V0U2VjdGlvbnMsIGdldFNlY3Rpb25Db250ZW50fTtcbiIsICJpbXBvcnQge2dldFNlY3Rpb25Db250ZW50LCBnZXRTZWN0aW9uc30gZnJvbSAnLi9nZXRTZWN0aW9uJztcbmltcG9ydCB7YXBpfSBmcm9tICcuL2FwaSc7XG5pbXBvcnQge2dldE1lc3NhZ2V9IGZyb20gJy4uL2kxOG4nO1xuXG5jb25zdCBpc1BhZ2VFeGlzdCA9IGFzeW5jIChhcmNoaXZlVG86IHN0cmluZykgPT4ge1xuXHRjb25zdCBwYXJhbXM6IEFwaVF1ZXJ5SW5mb1BhcmFtcyA9IHtcblx0XHRhY3Rpb246ICdxdWVyeScsXG5cdFx0Zm9ybWF0OiAnanNvbicsXG5cdFx0Zm9ybWF0dmVyc2lvbjogJzInLFxuXHRcdHByb3A6ICdpbmZvJyxcblx0XHR0aXRsZXM6IGFyY2hpdmVUbyxcblx0fTtcblxuXHRjb25zdCB7cXVlcnl9ID0gYXdhaXQgYXBpLmdldChwYXJhbXMpO1xuXG5cdGlmIChxdWVyeS5wYWdlc1swXT8ubWlzc2luZykge1xuXHRcdHJldHVybiBmYWxzZTtcblx0fVxuXG5cdHJldHVybiB0cnVlO1xufTtcblxuY29uc3QgaXNTZWN0aW9uRXhpc3QgPSBhc3luYyAoe2luZGV4LCBhbmNob3J9OiB7aW5kZXg6IHN0cmluZzsgYW5jaG9yOiBzdHJpbmd9KSA9PiB7XG5cdGNvbnN0IHt3Z1BhZ2VOYW1lfSA9IG13LmNvbmZpZy5nZXQoKTtcblx0Y29uc3Qgc2VjdGlvbnMgPSBhd2FpdCBnZXRTZWN0aW9ucyh3Z1BhZ2VOYW1lKTtcblxuXHRsZXQgaXNFeGlzdCA9IGZhbHNlO1xuXHRmb3IgKGNvbnN0IHNlY3Rpb24gb2Ygc2VjdGlvbnMpIHtcblx0XHRpZiAoaW5kZXggPT09IHNlY3Rpb24uaW5kZXggJiYgYW5jaG9yID09PSBzZWN0aW9uLmFuY2hvcikge1xuXHRcdFx0aXNFeGlzdCA9IHRydWU7XG5cdFx0fVxuXHR9XG5cdHJldHVybiBpc0V4aXN0O1xufTtcblxuY29uc3QgcmVtb3ZlU2VjdGlvbiA9IGFzeW5jICh7aW5kZXgsIGFuY2hvciwgc3VtbWFyeX06IHtpbmRleDogc3RyaW5nOyBhbmNob3I6IHN0cmluZzsgc3VtbWFyeT86IHN0cmluZ30pID0+IHtcblx0Y29uc3Qge3dnUGFnZU5hbWV9ID0gbXcuY29uZmlnLmdldCgpO1xuXHRjb25zdCBpc0V4aXN0ID0gYXdhaXQgaXNTZWN0aW9uRXhpc3Qoe2luZGV4LCBhbmNob3J9KTtcblxuXHRpZiAoaXNFeGlzdCAhPT0gdHJ1ZSkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGNvbnN0IGNvbnRlbnQgPSBhd2FpdCBnZXRTZWN0aW9uQ29udGVudCh7dGl0bGU6IHdnUGFnZU5hbWUsIHNlY3Rpb246IGluZGV4fSk7XG5cblx0aWYgKGNvbnRlbnQgPT09IG51bGwpIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRhd2FpdCBhcGkuZWRpdCh3Z1BhZ2VOYW1lLCAoKSA9PiB7XG5cdFx0cmV0dXJuIHtcblx0XHRcdHNlY3Rpb246IGluZGV4LFxuXHRcdFx0dGV4dDogJycsXG5cdFx0XHRzdW1tYXJ5OiBzdW1tYXJ5ID8/IGdldE1lc3NhZ2UoJ0RlbGV0ZSBzdW1tYXJ5JyksXG5cdFx0XHRtaW5vcjogdHJ1ZSxcblx0XHR9O1xuXHR9KTtcbn07XG5cbmNvbnN0IGFyY2hpdmVTZWN0aW9uID0gYXN5bmMgKHtpbmRleCwgYW5jaG9yLCBhcmNoaXZlVG99OiB7aW5kZXg6IHN0cmluZzsgYW5jaG9yOiBzdHJpbmc7IGFyY2hpdmVUbzogc3RyaW5nfSkgPT4ge1xuXHRjb25zdCB7d2dQYWdlTmFtZX0gPSBtdy5jb25maWcuZ2V0KCk7XG5cdGNvbnN0IGlzRXhpc3QgPSBhd2FpdCBpc1NlY3Rpb25FeGlzdCh7aW5kZXgsIGFuY2hvcn0pO1xuXG5cdGlmIChpc0V4aXN0ICE9PSB0cnVlKSB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0Y29uc3QgY29udGVudCA9IGF3YWl0IGdldFNlY3Rpb25Db250ZW50KHt0aXRsZTogd2dQYWdlTmFtZSwgc2VjdGlvbjogaW5kZXh9KTtcblxuXHRpZiAoY29udGVudCA9PT0gbnVsbCkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGNvbnN0IHBhZ2VFeGlzdCA9IGF3YWl0IGlzUGFnZUV4aXN0KGFyY2hpdmVUbyk7XG5cdGlmICghcGFnZUV4aXN0KSB7XG5cdFx0YXdhaXQgYXBpLmNyZWF0ZShcblx0XHRcdGFyY2hpdmVUbyxcblx0XHRcdHtcblx0XHRcdFx0c3VtbWFyeTogZ2V0TWVzc2FnZSgnQ3JlYXRlIHN1bW1hcnknKSxcblx0XHRcdFx0bWlub3I6IHRydWUsXG5cdFx0XHR9LFxuXHRcdFx0J3t7dGFsa2FyY2hpdmV9fSdcblx0XHQpO1xuXHR9XG5cblx0YXdhaXQgYXBpLmVkaXQoYXJjaGl2ZVRvLCAoKSA9PiB7XG5cdFx0cmV0dXJuIHtcblx0XHRcdGFwcGVuZHRleHQ6IGBcXG5cXG4ke2NvbnRlbnR9YCxcblx0XHRcdHN1bW1hcnk6IGdldE1lc3NhZ2UoJ0FyY2hpdmUgc3VtbWFyeScpLFxuXHRcdFx0bWlub3I6IHRydWUsXG5cdFx0fTtcblx0fSk7XG5cblx0YXdhaXQgcmVtb3ZlU2VjdGlvbih7aW5kZXgsIGFuY2hvciwgc3VtbWFyeTogZ2V0TWVzc2FnZSgnQXJjaGl2ZSBzdW1tYXJ5Jyl9KTtcbn07XG5cbmV4cG9ydCB7aXNTZWN0aW9uRXhpc3QsIGFyY2hpdmVTZWN0aW9uLCByZW1vdmVTZWN0aW9ufTtcbiIsICJpbXBvcnQge2dldE1lc3NhZ2V9IGZyb20gJy4uL2kxOG4nO1xuXG5jb25zdCBnZXRBcmNoaXZpbmdNZXNzYWdlID0gKGluZGV4Tm86IHN0cmluZykgPT4ge1xuXHRyZXR1cm4gZ2V0TWVzc2FnZSgnQXJjaGl2aW5nJykgKyBnZXRNZXNzYWdlKCc6JykgKyBnZXRNZXNzYWdlKCdTZWN0aW9uICQxJykucmVwbGFjZSgnJDEnLCBpbmRleE5vKTtcbn07XG5cbmNvbnN0IGdldEFyY2hpdmVkTWVzc2FnZSA9IChpbmRleE5vOiBzdHJpbmcpID0+IHtcblx0cmV0dXJuIGdldE1lc3NhZ2UoJ0FyY2hpdmVkJykgKyBnZXRNZXNzYWdlKCc6JykgKyBnZXRNZXNzYWdlKCdTZWN0aW9uICQxJykucmVwbGFjZSgnJDEnLCBpbmRleE5vKTtcbn07XG5cbmNvbnN0IGdldERlbGV0aW5nTWVzc2FnZSA9IChpbmRleE5vOiBzdHJpbmcpID0+IHtcblx0cmV0dXJuIGdldE1lc3NhZ2UoJ0RlbGV0aW5nJykgKyBnZXRNZXNzYWdlKCc6JykgKyBnZXRNZXNzYWdlKCdTZWN0aW9uICQxJykucmVwbGFjZSgnJDEnLCBpbmRleE5vKTtcbn07XG5cbmNvbnN0IGdldERlbGV0ZWRNZXNzYWdlID0gKGluZGV4Tm86IHN0cmluZykgPT4ge1xuXHRyZXR1cm4gZ2V0TWVzc2FnZSgnRGVsZXRlZCcpICsgZ2V0TWVzc2FnZSgnOicpICsgZ2V0TWVzc2FnZSgnU2VjdGlvbiAkMScpLnJlcGxhY2UoJyQxJywgaW5kZXhObyk7XG59O1xuXG5leHBvcnQge2dldEFyY2hpdmluZ01lc3NhZ2UsIGdldEFyY2hpdmVkTWVzc2FnZSwgZ2V0RGVsZXRpbmdNZXNzYWdlLCBnZXREZWxldGVkTWVzc2FnZX07XG4iLCAiaW1wb3J0IHthcmNoaXZlU2VjdGlvbiwgcmVtb3ZlU2VjdGlvbn0gZnJvbSAnLi9lZGl0U2VjdGlvbic7XG5pbXBvcnQge2dldEFyY2hpdmVkTWVzc2FnZSwgZ2V0QXJjaGl2aW5nTWVzc2FnZSwgZ2V0RGVsZXRlZE1lc3NhZ2UsIGdldERlbGV0aW5nTWVzc2FnZX0gZnJvbSAnLi9nZXRNZXNzYWdlJztcbmltcG9ydCBSZWFjdCBmcm9tICdleHQuZ2FkZ2V0LlJlYWN0JztcbmltcG9ydCB7Z2V0TWVzc2FnZX0gZnJvbSAnLi4vaTE4bic7XG5pbXBvcnQge3JlZnJlc2h9IGZyb20gJy4vcmVmcmVzaFBhZ2UnO1xuaW1wb3J0IHt0b2FzdGlmeX0gZnJvbSAnZXh0LmdhZGdldC5Ub2FzdGlmeSc7XG5cbmludGVyZmFjZSBPbkNsaWNrUHJvcHMge1xuXHRzZWN0aW9uSWRTcGFuczogRWxlbWVudFtdO1xuXHRtZXNzYWdlQ2hhbm5lbDogQnJvYWRjYXN0Q2hhbm5lbDtcblx0cmVmcmVzaENoYW5uZWw6IEJyb2FkY2FzdENoYW5uZWw7XG5cdGluZGV4Tm86IHN0cmluZztcblx0YW5jaG9yOiBzdHJpbmc7XG5cdHRvYXN0aWZ5SW5zdGFuY2U6IFRvYXN0aWZ5SW5zdGFuY2U7XG59XG5cbnR5cGUgQXJjaGl2ZU9uQ2xpY2tQcm9wcyA9IE9uQ2xpY2tQcm9wcyAmIHthcmNoaXZlVG86IHN0cmluZ307XG50eXBlIFJlbW92ZU9uQ2xpY2tQcm9wcyA9IE9uQ2xpY2tQcm9wcztcblxuY29uc3QgYXJjaGl2ZU9uQ2xpY2sgPSBhc3luYyAoXG5cdGV2ZW50OiBFdmVudCxcblx0e3NlY3Rpb25JZFNwYW5zLCBtZXNzYWdlQ2hhbm5lbCwgcmVmcmVzaENoYW5uZWwsIGluZGV4Tm8sIGFuY2hvciwgdG9hc3RpZnlJbnN0YW5jZSwgYXJjaGl2ZVRvfTogQXJjaGl2ZU9uQ2xpY2tQcm9wc1xuKSA9PiB7XG5cdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cdGNvbnN0IHBhcmVudEVsZW1lbnQgPSAoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KT8ucGFyZW50RWxlbWVudDtcblx0aWYgKCFwYXJlbnRFbGVtZW50KSB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0cGFyZW50RWxlbWVudC5yZXBsYWNlQ2hpbGRyZW4oPHNwYW4+e2dldE1lc3NhZ2UoJ0FyY2hpdmluZycpfTwvc3Bhbj4pO1xuXG5cdGZvciAoY29uc3Qgc3BhbiBvZiBzZWN0aW9uSWRTcGFucykge1xuXHRcdHNwYW4ucmVtb3ZlKCk7XG5cdH1cblxuXHRjb25zdCBtZXNzYWdlMSA9IGdldEFyY2hpdmluZ01lc3NhZ2UoaW5kZXhObyk7XG5cdG1lc3NhZ2VDaGFubmVsLnBvc3RNZXNzYWdlKG1lc3NhZ2UxKTtcblxuXHR0b2FzdGlmeUluc3RhbmNlIHx8PSB7XG5cdFx0aGlkZVRvYXN0OiAoKSA9PiB7fSxcblx0fTtcblx0dG9hc3RpZnlJbnN0YW5jZS5oaWRlVG9hc3QoKTtcblx0dG9hc3RpZnlJbnN0YW5jZSA9IHRvYXN0aWZ5KFxuXHRcdHtcblx0XHRcdHRleHQ6IG1lc3NhZ2UxLFxuXHRcdFx0Y2xvc2U6IHRydWUsXG5cdFx0XHRkdXJhdGlvbjogLTEsXG5cdFx0fSxcblx0XHQnaW5mbydcblx0KTtcblxuXHRhd2FpdCBhcmNoaXZlU2VjdGlvbih7aW5kZXg6IGluZGV4Tm8sIGFuY2hvciwgYXJjaGl2ZVRvfSk7XG5cblx0cGFyZW50RWxlbWVudC5yZXBsYWNlQ2hpbGRyZW4oPHNwYW4+e2dldE1lc3NhZ2UoJ0FyY2hpdmVkJyl9PC9zcGFuPik7XG5cblx0Y29uc3QgbWVzc2FnZSA9IGdldEFyY2hpdmVkTWVzc2FnZShpbmRleE5vKTtcblx0bWVzc2FnZUNoYW5uZWwucG9zdE1lc3NhZ2UobWVzc2FnZSk7XG5cblx0dG9hc3RpZnlJbnN0YW5jZS5oaWRlVG9hc3QoKTtcblx0dG9hc3RpZnlJbnN0YW5jZSA9IHRvYXN0aWZ5KFxuXHRcdHtcblx0XHRcdHRleHQ6IG1lc3NhZ2UsXG5cdFx0XHRjbG9zZTogdHJ1ZSxcblx0XHRcdGR1cmF0aW9uOiAtMSxcblx0XHR9LFxuXHRcdCdpbmZvJ1xuXHQpO1xuXG5cdG1lc3NhZ2VDaGFubmVsLmNsb3NlKCk7XG5cblx0cmVmcmVzaENoYW5uZWwucG9zdE1lc3NhZ2UoJ1JlZnJlc2gnKTtcblx0cmVmcmVzaCh7dG9hc3RpZnlJbnN0YW5jZX0pO1xufTtcbmNvbnN0IHJlbW92ZU9uQ2xpY2sgPSBhc3luYyAoXG5cdGV2ZW50OiBFdmVudCxcblx0e3NlY3Rpb25JZFNwYW5zLCBtZXNzYWdlQ2hhbm5lbCwgcmVmcmVzaENoYW5uZWwsIGluZGV4Tm8sIGFuY2hvciwgdG9hc3RpZnlJbnN0YW5jZX06IFJlbW92ZU9uQ2xpY2tQcm9wc1xuKSA9PiB7XG5cdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cdGNvbnN0IHBhcmVudEVsZW1lbnQgPSAoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KT8ucGFyZW50RWxlbWVudDtcblx0aWYgKCFwYXJlbnRFbGVtZW50KSB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0cGFyZW50RWxlbWVudC5yZXBsYWNlQ2hpbGRyZW4oPHNwYW4+e2dldE1lc3NhZ2UoJ0RlbGV0aW5nJyl9PC9zcGFuPik7XG5cblx0Zm9yIChjb25zdCBzcGFuIG9mIHNlY3Rpb25JZFNwYW5zKSB7XG5cdFx0c3Bhbi5yZW1vdmUoKTtcblx0fVxuXG5cdGxldCBtZXNzYWdlID0gZ2V0RGVsZXRpbmdNZXNzYWdlKGluZGV4Tm8pO1xuXHRtZXNzYWdlQ2hhbm5lbC5wb3N0TWVzc2FnZShtZXNzYWdlKTtcblxuXHR0b2FzdGlmeUluc3RhbmNlIHx8PSB7XG5cdFx0aGlkZVRvYXN0OiAoKSA9PiB7fSxcblx0fTtcblx0dG9hc3RpZnlJbnN0YW5jZS5oaWRlVG9hc3QoKTtcblx0dG9hc3RpZnlJbnN0YW5jZSA9IHRvYXN0aWZ5KFxuXHRcdHtcblx0XHRcdHRleHQ6IG1lc3NhZ2UsXG5cdFx0XHRjbG9zZTogdHJ1ZSxcblx0XHRcdGR1cmF0aW9uOiAtMSxcblx0XHR9LFxuXHRcdCdpbmZvJ1xuXHQpO1xuXG5cdGF3YWl0IHJlbW92ZVNlY3Rpb24oe2luZGV4OiBpbmRleE5vLCBhbmNob3J9KTtcblxuXHRwYXJlbnRFbGVtZW50LnJlcGxhY2VDaGlsZHJlbig8c3Bhbj57Z2V0TWVzc2FnZSgnRGVsZXRlZCcpfTwvc3Bhbj4pO1xuXG5cdG1lc3NhZ2UgPSBnZXREZWxldGVkTWVzc2FnZShpbmRleE5vKTtcblx0bWVzc2FnZUNoYW5uZWwucG9zdE1lc3NhZ2UobWVzc2FnZSk7XG5cblx0dG9hc3RpZnlJbnN0YW5jZS5oaWRlVG9hc3QoKTtcblx0dG9hc3RpZnlJbnN0YW5jZSA9IHRvYXN0aWZ5KFxuXHRcdHtcblx0XHRcdHRleHQ6IG1lc3NhZ2UsXG5cdFx0XHRjbG9zZTogdHJ1ZSxcblx0XHRcdGR1cmF0aW9uOiAtMSxcblx0XHR9LFxuXHRcdCdpbmZvJ1xuXHQpO1xuXG5cdG1lc3NhZ2VDaGFubmVsLmNsb3NlKCk7XG5cblx0cmVmcmVzaENoYW5uZWwucG9zdE1lc3NhZ2UoJ1JlZnJlc2gnKTtcblx0cmVmcmVzaCh7dG9hc3RpZnlJbnN0YW5jZX0pO1xufTtcblxuZXhwb3J0IHthcmNoaXZlT25DbGljaywgcmVtb3ZlT25DbGlja307XG4iLCAiaW1wb3J0IHtnZXRNZXNzYWdlfSBmcm9tICcuLi9pMThuJztcbmltcG9ydCB7dG9hc3RpZnl9IGZyb20gJ2V4dC5nYWRnZXQuVG9hc3RpZnknO1xuXG5jb25zdCB7d2dTY3JpcHR9ID0gbXcuY29uZmlnLmdldCgpO1xuXG5jb25zdCByZWZyZXNoID0gKHtcblx0dGFyZ2V0UGFnZSxcblx0dG9hc3RpZnlJbnN0YW5jZSxcbn06IHt0YXJnZXRQYWdlPzogc3RyaW5nOyB0b2FzdGlmeUluc3RhbmNlPzogVG9hc3RpZnlJbnN0YW5jZX0gPSB7fSk6IHZvaWQgPT4ge1xuXHR0b2FzdGlmeUluc3RhbmNlIHx8PSB7XG5cdFx0aGlkZVRvYXN0OiAoKSA9PiB7fSxcblx0fTtcblx0dG9hc3RpZnlJbnN0YW5jZS5oaWRlVG9hc3QoKTtcblx0dG9hc3RpZnlJbnN0YW5jZSA9IHRvYXN0aWZ5KFxuXHRcdHtcblx0XHRcdHRleHQ6IGdldE1lc3NhZ2UoJ1JlZnJlc2hpbmcnKSxcblx0XHRcdGR1cmF0aW9uOiAtMSxcblx0XHR9LFxuXHRcdCdzdWNjZXNzJ1xuXHQpO1xuXG5cdGNvbnN0IHt3Z1BhZ2VOYW1lfSA9IG13LmNvbmZpZy5nZXQoKTtcblx0bG9jYXRpb24ucmVwbGFjZShcblx0XHRtdy51dGlsLmdldFVybCh3Z1NjcmlwdCwge1xuXHRcdFx0dGl0bGU6IHRhcmdldFBhZ2UgPz8gd2dQYWdlTmFtZSxcblx0XHR9KVxuXHQpO1xufTtcblxuZXhwb3J0IHtyZWZyZXNofTtcbiIsICJpbXBvcnQge09uQ2xpY2ssIFBpcGUsIFNlY3Rpb25JRH0gZnJvbSAnLi9yZWFjdCc7XG5pbXBvcnQge2FyY2hpdmVPbkNsaWNrLCByZW1vdmVPbkNsaWNrfSBmcm9tICcuLi91dGlsL29uQ2xpY2snO1xuaW1wb3J0IFJlYWN0IGZyb20gJ2V4dC5nYWRnZXQuUmVhY3QnO1xuaW1wb3J0IHtnZXRNZXNzYWdlfSBmcm9tICcuLi9pMThuJztcblxuaW50ZXJmYWNlIEFyY2hpdmVTZWN0aW9uTGlua1Byb3BzIHtcblx0c2VjdGlvbklkU3BhbnM6IEVsZW1lbnRbXTtcblx0bWVzc2FnZUNoYW5uZWw6IEJyb2FkY2FzdENoYW5uZWw7XG5cdHJlZnJlc2hDaGFubmVsOiBCcm9hZGNhc3RDaGFubmVsO1xuXHRpbmRleE5vOiBzdHJpbmc7XG5cdGFuY2hvcjogc3RyaW5nO1xuXHR0b2FzdGlmeUluc3RhbmNlOiBUb2FzdGlmeUluc3RhbmNlO1xuXHRhcmNoaXZlVG86IHN0cmluZztcbn1cblxuY29uc3QgQXJjaGl2ZVNlY3Rpb25MaW5rID0gKHtcblx0c2VjdGlvbklkU3BhbnMsXG5cdG1lc3NhZ2VDaGFubmVsLFxuXHRyZWZyZXNoQ2hhbm5lbCxcblx0aW5kZXhObyxcblx0YW5jaG9yLFxuXHRhcmNoaXZlVG8sXG5cdHRvYXN0aWZ5SW5zdGFuY2UsXG59OiBBcmNoaXZlU2VjdGlvbkxpbmtQcm9wcykgPT4gKFxuXHQ8T25DbGlja1xuXHRcdGNsYXNzTmFtZT17J2FyY2hpdmUnfVxuXHRcdG9uQ2xpY2s9eyhldmVudDogRXZlbnQpID0+IHtcblx0XHRcdHZvaWQgYXJjaGl2ZU9uQ2xpY2soZXZlbnQsIHtcblx0XHRcdFx0c2VjdGlvbklkU3BhbnMsXG5cdFx0XHRcdG1lc3NhZ2VDaGFubmVsLFxuXHRcdFx0XHRyZWZyZXNoQ2hhbm5lbCxcblx0XHRcdFx0aW5kZXhObyxcblx0XHRcdFx0YW5jaG9yLFxuXHRcdFx0XHRhcmNoaXZlVG8sXG5cdFx0XHRcdHRvYXN0aWZ5SW5zdGFuY2UsXG5cdFx0XHR9KTtcblx0XHR9fVxuXHRcdHRleHRDb250ZW50PXtnZXRNZXNzYWdlKCdBcmNoaXZlJyl9XG5cdC8+XG4pO1xuXG5pbnRlcmZhY2UgUmVtb3ZlU2VjdGlvbkxpbmtQcm9wcyB7XG5cdHNlY3Rpb25JZFNwYW5zOiBFbGVtZW50W107XG5cdG1lc3NhZ2VDaGFubmVsOiBCcm9hZGNhc3RDaGFubmVsO1xuXHRyZWZyZXNoQ2hhbm5lbDogQnJvYWRjYXN0Q2hhbm5lbDtcblx0aW5kZXhObzogc3RyaW5nO1xuXHRhbmNob3I6IHN0cmluZztcblx0dG9hc3RpZnlJbnN0YW5jZTogVG9hc3RpZnlJbnN0YW5jZTtcbn1cblxuY29uc3QgUmVtb3ZlU2VjdGlvbkxpbmsgPSAoe1xuXHRzZWN0aW9uSWRTcGFucyxcblx0bWVzc2FnZUNoYW5uZWwsXG5cdHJlZnJlc2hDaGFubmVsLFxuXHRpbmRleE5vLFxuXHRhbmNob3IsXG5cdHRvYXN0aWZ5SW5zdGFuY2UsXG59OiBSZW1vdmVTZWN0aW9uTGlua1Byb3BzKSA9PiAoXG5cdDxPbkNsaWNrXG5cdFx0Y2xhc3NOYW1lPXsnZGVsZXRlJ31cblx0XHRvbkNsaWNrPXsoZXZlbnQpID0+IHtcblx0XHRcdHZvaWQgcmVtb3ZlT25DbGljayhldmVudCwge1xuXHRcdFx0XHRzZWN0aW9uSWRTcGFucyxcblx0XHRcdFx0bWVzc2FnZUNoYW5uZWwsXG5cdFx0XHRcdHJlZnJlc2hDaGFubmVsLFxuXHRcdFx0XHRpbmRleE5vLFxuXHRcdFx0XHRhbmNob3IsXG5cdFx0XHRcdHRvYXN0aWZ5SW5zdGFuY2UsXG5cdFx0XHR9KTtcblx0XHR9fVxuXHRcdHRleHRDb250ZW50PXtnZXRNZXNzYWdlKCdEZWxldGUnKX1cblx0Lz5cbik7XG5cbmludGVyZmFjZSBBcmNoaXZlQW5kRGVsZXRlU2VjdGlvbkxpbmtQcm9wcyB7XG5cdHNlY3Rpb25JZFNwYW5zOiBFbGVtZW50W107XG5cdG1lc3NhZ2VDaGFubmVsOiBCcm9hZGNhc3RDaGFubmVsO1xuXHRyZWZyZXNoQ2hhbm5lbDogQnJvYWRjYXN0Q2hhbm5lbDtcblx0aW5kZXhObzogc3RyaW5nO1xuXHRhbmNob3I6IHN0cmluZztcblx0dG9hc3RpZnlJbnN0YW5jZTogVG9hc3RpZnlJbnN0YW5jZTtcblx0c2VjQXJjOiBzdHJpbmc7XG5cdHNlY0RlbDogc3RyaW5nO1xuXHRhcmNMb2M6IHN0cmluZztcbn1cblxuY29uc3QgQXJjaGl2ZUFuZERlbGV0ZVNlY3Rpb25MaW5rID0gKHtcblx0c2VjdGlvbklkU3BhbnMsXG5cdG1lc3NhZ2VDaGFubmVsLFxuXHRyZWZyZXNoQ2hhbm5lbCxcblx0aW5kZXhObyxcblx0YW5jaG9yLFxuXHR0b2FzdGlmeUluc3RhbmNlLFxuXHRzZWNBcmMsXG5cdHNlY0RlbCxcblx0YXJjTG9jLFxufTogQXJjaGl2ZUFuZERlbGV0ZVNlY3Rpb25MaW5rUHJvcHMpID0+IChcblx0PFNlY3Rpb25JRD5cblx0XHR7c2VjQXJjID09PSAnMScgPyAoXG5cdFx0XHQ8QXJjaGl2ZVNlY3Rpb25MaW5rXG5cdFx0XHRcdHNlY3Rpb25JZFNwYW5zPXtzZWN0aW9uSWRTcGFuc31cblx0XHRcdFx0bWVzc2FnZUNoYW5uZWw9e21lc3NhZ2VDaGFubmVsfVxuXHRcdFx0XHRyZWZyZXNoQ2hhbm5lbD17cmVmcmVzaENoYW5uZWx9XG5cdFx0XHRcdGluZGV4Tm89e2luZGV4Tm99XG5cdFx0XHRcdGFuY2hvcj17YW5jaG9yfVxuXHRcdFx0XHR0b2FzdGlmeUluc3RhbmNlPXt0b2FzdGlmeUluc3RhbmNlfVxuXHRcdFx0XHRhcmNoaXZlVG89e2FyY0xvY31cblx0XHRcdC8+XG5cdFx0KSA6IChcblx0XHRcdDw+PC8+XG5cdFx0KX1cblx0XHR7c2VjQXJjID09PSAnMScgJiYgc2VjRGVsID09PSAnMScgPyA8UGlwZSAvPiA6IDw+PC8+fVxuXHRcdHtzZWNEZWwgPT09ICcxJyA/IChcblx0XHRcdDxSZW1vdmVTZWN0aW9uTGlua1xuXHRcdFx0XHRzZWN0aW9uSWRTcGFucz17c2VjdGlvbklkU3BhbnN9XG5cdFx0XHRcdG1lc3NhZ2VDaGFubmVsPXttZXNzYWdlQ2hhbm5lbH1cblx0XHRcdFx0cmVmcmVzaENoYW5uZWw9e3JlZnJlc2hDaGFubmVsfVxuXHRcdFx0XHRpbmRleE5vPXtpbmRleE5vfVxuXHRcdFx0XHRhbmNob3I9e2FuY2hvcn1cblx0XHRcdFx0dG9hc3RpZnlJbnN0YW5jZT17dG9hc3RpZnlJbnN0YW5jZX1cblx0XHRcdC8+XG5cdFx0KSA6IChcblx0XHRcdDw+PC8+XG5cdFx0KX1cblx0PC9TZWN0aW9uSUQ+XG4pO1xuXG5leHBvcnQge0FyY2hpdmVTZWN0aW9uTGluaywgUmVtb3ZlU2VjdGlvbkxpbmssIEFyY2hpdmVBbmREZWxldGVTZWN0aW9uTGlua307XG4iLCAiaW1wb3J0IHtBcmNoaXZlQW5kRGVsZXRlU2VjdGlvbkxpbmt9IGZyb20gJy4vY29tcG9uZW50cy9zZWN0aW9uTGluayc7XG5pbXBvcnQge0VkaXRDb25mbGljdE5vdGljZX0gZnJvbSAnLi9jb21wb25lbnRzL3JlYWN0JztcbmltcG9ydCBSZWFjdCBmcm9tICdleHQuZ2FkZ2V0LlJlYWN0JztcbmltcG9ydCB7Z2V0U2VjdGlvbnN9IGZyb20gJy4vdXRpbC9nZXRTZWN0aW9uJztcbmltcG9ydCB7cmVmcmVzaH0gZnJvbSAnLi91dGlsL3JlZnJlc2hQYWdlJztcbmltcG9ydCB7dG9hc3RpZnl9IGZyb20gJ2V4dC5nYWRnZXQuVG9hc3RpZnknO1xuXG5jb25zdCBhZGRMaW5rcyA9IGFzeW5jICh7XG5cdGFyY0xldmVsLFxuXHRhcmNMb2MsXG5cdHNlY0FyYyxcblx0c2VjRGVsLFxufToge1xuXHRhcmNMZXZlbDogc3RyaW5nO1xuXHRhcmNMb2M6IHN0cmluZztcblx0c2VjQXJjOiBzdHJpbmc7XG5cdHNlY0RlbDogc3RyaW5nO1xufSkgPT4ge1xuXHRjb25zdCB7d2dQYWdlTmFtZX0gPSBtdy5jb25maWcuZ2V0KCk7XG5cdGNvbnN0IHNlY3Rpb25zVG9BcmNoaXZlID0gYXdhaXQgZ2V0U2VjdGlvbnMod2dQYWdlTmFtZSk7XG5cblx0Y29uc3QgaGVhZGluZ3MgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKGBoJHthcmNMZXZlbH1gKTtcblx0Y29uc3QgaGVhZGxpbmVzID0gW107XG5cdGNvbnN0IGhlYWRpbmdJbmRpY2VzID0gW107XG5cblx0Zm9yIChjb25zdCBoZWFkaW5nIG9mIGhlYWRpbmdzKSB7XG5cdFx0Y29uc3QgaGVhZGxpbmUgPSBoZWFkaW5nLnF1ZXJ5U2VsZWN0b3IoJy5tdy1oZWFkbGluZScpO1xuXHRcdGlmIChoZWFkbGluZSkge1xuXHRcdFx0aGVhZGxpbmVzW2hlYWRsaW5lcy5sZW5ndGhdID0gaGVhZGxpbmUuaWQ7XG5cdFx0fVxuXHR9XG5cblx0Y29uc3Qgc2VjdGlvbklkU3BhbnM6IEVsZW1lbnRbXSA9IFtdO1xuXHRsZXQgdG9hc3RpZnlJbnN0YW5jZTogVG9hc3RpZnlJbnN0YW5jZSA9IHtcblx0XHRoaWRlVG9hc3Q6ICgpID0+IHt9LFxuXHR9O1xuXG5cdGNvbnN0IG1lc3NhZ2VDaGFubmVsOiBCcm9hZGNhc3RDaGFubmVsID0gbmV3IEJyb2FkY2FzdENoYW5uZWwoYCR7d2dQYWdlTmFtZX1fbWVzc2FnZWApO1xuXHRjb25zdCByZWZyZXNoQ2hhbm5lbDogQnJvYWRjYXN0Q2hhbm5lbCA9IG5ldyBCcm9hZGNhc3RDaGFubmVsKGAke3dnUGFnZU5hbWV9X3JlZnJlc2hgKTtcblxuXHRmb3IgKGNvbnN0IHNlY3Rpb24gb2Ygc2VjdGlvbnNUb0FyY2hpdmUpIHtcblx0XHRpZiAoc2VjdGlvbi5sZXZlbCAhPT0gYXJjTGV2ZWwpIHtcblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblxuXHRcdGlmIChoZWFkbGluZXMuaW5jbHVkZXMoc2VjdGlvbi5hbmNob3IpKSB7XG5cdFx0XHRoZWFkaW5nSW5kaWNlc1toZWFkaW5nSW5kaWNlcy5sZW5ndGhdID0ge1xuXHRcdFx0XHRpbmRleE5vOiBzZWN0aW9uLmluZGV4LFxuXHRcdFx0XHRhbmNob3I6IHNlY3Rpb24uYW5jaG9yLFxuXHRcdFx0fTtcblx0XHR9XG5cdH1cblxuXHRmb3IgKGNvbnN0IHtpbmRleE5vLCBhbmNob3J9IG9mIGhlYWRpbmdJbmRpY2VzKSB7XG5cdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHVuaWNvcm4vcHJlZmVyLXF1ZXJ5LXNlbGVjdG9yXG5cdFx0Y29uc3QgaGVhZGxpbmUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChhbmNob3IpO1xuXHRcdGlmICghaGVhZGxpbmUpIHtcblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblxuXHRcdGNvbnN0IHBhcmVudEhlYWRpbmcgPSBoZWFkbGluZS5wYXJlbnRFbGVtZW50O1xuXHRcdGlmICghcGFyZW50SGVhZGluZykge1xuXHRcdFx0Y29udGludWU7XG5cdFx0fVxuXG5cdFx0Y29uc3QgZWRpdFNlY3Rpb24gPSBwYXJlbnRIZWFkaW5nLnF1ZXJ5U2VsZWN0b3IoJy5tdy1lZGl0c2VjdGlvbicpO1xuXHRcdGlmICghZWRpdFNlY3Rpb24pIHtcblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblxuXHRcdGNvbnN0IHNlY3Rpb25JRFNwYW4gPSAoXG5cdFx0XHQ8QXJjaGl2ZUFuZERlbGV0ZVNlY3Rpb25MaW5rXG5cdFx0XHRcdHNlY3Rpb25JZFNwYW5zPXtzZWN0aW9uSWRTcGFuc31cblx0XHRcdFx0bWVzc2FnZUNoYW5uZWw9e21lc3NhZ2VDaGFubmVsfVxuXHRcdFx0XHRyZWZyZXNoQ2hhbm5lbD17cmVmcmVzaENoYW5uZWx9XG5cdFx0XHRcdGluZGV4Tm89e2luZGV4Tm99XG5cdFx0XHRcdGFuY2hvcj17YW5jaG9yfVxuXHRcdFx0XHR0b2FzdGlmeUluc3RhbmNlPXt0b2FzdGlmeUluc3RhbmNlfVxuXHRcdFx0XHRhcmNMb2M9e2FyY0xvY31cblx0XHRcdFx0c2VjQXJjPXtzZWNBcmN9XG5cdFx0XHRcdHNlY0RlbD17c2VjRGVsfVxuXHRcdFx0Lz5cblx0XHQpO1xuXG5cdFx0ZWRpdFNlY3Rpb24ucHJlcGVuZChzZWN0aW9uSURTcGFuKTtcblx0XHRzZWN0aW9uSWRTcGFuc1tzZWN0aW9uSWRTcGFucy5sZW5ndGhdID0gc2VjdGlvbklEU3Bhbjtcblx0fVxuXG5cdG1lc3NhZ2VDaGFubmVsLmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCAoZXZlbnQpID0+IHtcblx0XHRmb3IgKGNvbnN0IHNwYW4gb2Ygc2VjdGlvbklkU3BhbnMpIHtcblx0XHRcdHNwYW4ucmVtb3ZlKCk7XG5cdFx0fVxuXHRcdHRvYXN0aWZ5SW5zdGFuY2UuaGlkZVRvYXN0KCk7XG5cdFx0dG9hc3RpZnlJbnN0YW5jZSA9IHRvYXN0aWZ5KFxuXHRcdFx0e1xuXHRcdFx0XHR0ZXh0OiBldmVudC5kYXRhIGFzIHN0cmluZyxcblx0XHRcdFx0Y2xvc2U6IHRydWUsXG5cdFx0XHRcdGR1cmF0aW9uOiAzICogMTAwMCxcblx0XHRcdH0sXG5cdFx0XHQnaW5mbydcblx0XHQpO1xuXHR9KTtcblxuXHRyZWZyZXNoQ2hhbm5lbC5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgKCkgPT4ge1xuXHRcdHRvYXN0aWZ5SW5zdGFuY2UuaGlkZVRvYXN0KCk7XG5cdFx0dG9hc3RpZnlJbnN0YW5jZSA9IHRvYXN0aWZ5KFxuXHRcdFx0e1xuXHRcdFx0XHRub2RlOiAoXG5cdFx0XHRcdFx0PEVkaXRDb25mbGljdE5vdGljZVxuXHRcdFx0XHRcdFx0b25DbGljaz17KCkgPT4ge1xuXHRcdFx0XHRcdFx0XHR0b2FzdGlmeUluc3RhbmNlLmhpZGVUb2FzdCgpO1xuXHRcdFx0XHRcdFx0XHRyZWZyZXNoKCk7XG5cdFx0XHRcdFx0XHR9fVxuXHRcdFx0XHRcdC8+XG5cdFx0XHRcdCksXG5cdFx0XHRcdGNsb3NlOiB0cnVlLFxuXHRcdFx0XHRkdXJhdGlvbjogLTEsXG5cdFx0XHR9LFxuXHRcdFx0J2luZm8nXG5cdFx0KTtcblx0fSk7XG59O1xuXG5leHBvcnQge2FkZExpbmtzfTtcbiIsICJpbXBvcnQgKiBhcyBPUFRJT05TIGZyb20gJy4uL29wdGlvbnMuanNvbic7XG5cbmNvbnN0IGFwcGVuZEZvb3Rlck5vdGljZSA9IChlbGVtZW50OiBFbGVtZW50KSA9PiB7XG5cdGNvbnN0IG1vdW50UG9pbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yPEhUTUxFbGVtZW50PihPUFRJT05TLm1vdW50UG9pbnRTZWxlY3Rvcik7XG5cblx0aWYgKG1vdW50UG9pbnQpIHtcblx0XHRtb3VudFBvaW50LnByZXBlbmQoZWxlbWVudCk7XG5cdH1cbn07XG5cbmV4cG9ydCB7YXBwZW5kRm9vdGVyTm90aWNlfTtcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBLEtBQUMsU0FBUyxRQUFRO0FBQ2QsVUFBSSxXQUFXLENBQUM7QUFFaEIsZUFBU0Esa0JBQWlCLFNBQVM7QUFDL0IsWUFBSSxRQUFRO0FBQ1osa0JBQVUsT0FBTyxPQUFPO0FBRXhCLFlBQUksS0FBSyx1QkFBdUIsVUFBVTtBQUUxQyxpQkFBUyxFQUFFLElBQUksU0FBUyxFQUFFLEtBQUssQ0FBQztBQUNoQyxpQkFBUyxFQUFFLEVBQUUsS0FBSyxJQUFJO0FBRXRCLGFBQUssUUFBUTtBQUNiLGFBQUssTUFB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ZXMiOiBbIkJyb2FkY2FzdENoYW5uZWwiLCAiZWxlbWVudElkIiwgIm1vdW50UG9pbnRTZWxlY3RvciIsICJ2ZXJzaW9uIiwgImltcG9ydF9leHRfZ2FkZ2V0MiIsICJfX3RvRVNNIiwgInJlcXVpcmUiLCAiZm9vdGVyTm90aWNlIiwgInNlY3Rpb25JZFNwYW4iLCAiaW1wb3J0X2V4dF9nYWRnZXQiLCAiZ2V0STE4bk1lc3NhZ2VzIiwgIkFyY2hpdmUiLCAibG9jYWxpemUiLCAiZW4iLCAiQXJjaGl2aW5nIiwgIkFyY2hpdmVkIiwgIkRlbGV0ZSIsICJEZWxldGluZyIsICJEZWxldGVkIiwgInpoIiwgIlJlZnJlc2giLCAiUmVmcmVzaGluZyIsICJqYSIsICJpMThuTWVzc2FnZXMiLCAiZ2V0TWVzc2FnZSIsICJrZXkiLCAic2FuaXRpemUiLCAic3RyaW5nIiwgInJlcGxhY2UiLCAiRm9vdGVyTm90aWNlIiwgImlkIiwgImNoaWxkcmVuIiwgImRlZmF1bHQiLCAiY3JlYXRlRWxlbWVudCIsICJGcmFnbWVudCIsICJza2luIiwgIm13IiwgImNvbmZpZyIsICJnZXQiLCAiY2xhc3NOYW1lIiwgImluY2x1ZGVzIiwgImRvY3VtZW50IiwgInF1ZXJ5U2VsZWN0b3IiLCAiSW5CbGFja0xpc3QiLCAiTm90QWxsb3dlZCIsICJBcmNMb2NOb3RBbGxvd2VkIiwgImFyY0xvYyIsICJOb0FyY0xvYyIsICJFbmFibGVkIiwgInRpdGxlIiwgImhyZWYiLCAiY29uY2F0IiwgIk9uQ2xpY2siLCAidGV4dENvbnRlbnQiLCAib25DbGljayIsICJTZWN0aW9uSUQiLCAiUGlwZSIsICJFZGl0Q29uZmxpY3ROb3RpY2UiLCAiaWZBcmNMb2NOb3RBbGxvd2VkIiwgIndnUGFnZU5hbWUiLCAic291cmNlVGl0bGUiLCAiVGl0bGUiLCAiYXJjTG9jVGl0bGUiLCAiYXJjTG9jTmFtZXNwYWNlSWQiLCAiZ2V0TmFtZXNwYWNlSWQiLCAiYXJjTG9jUGFnZU5hbWUiLCAiZ2V0TWFpbiIsICJzb3VyY2VOYW1lc3BhY2VJZCIsICJzb3VyY2VQYWdlTmFtZSIsICJpc0luQmxhY2tsaXN0IiwgImJsYWNrTGlzdFJlZ2V4QXJyIiwgIl9pIiwgIl9ibGFja0xpc3RSZWdleEFyciIsICJsZW5ndGgiLCAiZWxlbWVudCIsICJ0ZXN0IiwgImlzTm90QWxsb3dlZCIsICJ3Z05hbWVzcGFjZU51bWJlciIsICJ3Z1JlbGV2YW50VXNlck5hbWUiLCAid2dVc2VyTmFtZSIsICJpc05vdFN1cHBvcnRlZCIsICJ3Z0lzTWFpblBhZ2UiLCAid2dDdXJSZXZpc2lvbklkIiwgIndnUmV2aXNpb25JZCIsICJnZXRTZXR0aW5ncyIsICJzZXR0aW5ncyIsICJkYXRhc2V0IiwgImFyY0xldmVsIiwgInNlY0FyYyIsICJzZWNEZWwiLCAiaW1wb3J0X2V4dF9nYWRnZXQxMCIsICJpbXBvcnRfZXh0X2dhZGdldDMiLCAiYXBpIiwgImluaXRNd0FwaSIsICJnZXRTZWN0aW9ucyIsICJfcmVmIiwgIl9hc3luY1RvR2VuZXJhdG9yIiwgInBhcmFtcyIsICJhY3Rpb24iLCAiZm9ybWF0IiwgImZvcm1hdHZlcnNpb24iLCAicGFnZSIsICJwcm9wIiwgInBhcnNlIiwgInNlY3Rpb25zIiwgInNlY3Rpb25zVG9BcmNoaXZlIiwgIl9pdGVyYXRvcjIiLCAiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIiLCAiX3N0ZXAyIiwgInMiLCAibiIsICJkb25lIiwgInNlY3Rpb24iLCAidmFsdWUiLCAibGV2ZWwiLCAiaW5kZXgiLCAiYW5jaG9yIiwgInN0YXJ0c1dpdGgiLCAiZXJyIiwgImUiLCAiZiIsICJfeCIsICJhcHBseSIsICJhcmd1bWVudHMiLCAiZ2V0U2VjdGlvbkNvbnRlbnQiLCAiX3JlZjIiLCAiX3Jlc3BvbnNlJHF1ZXJ5JHBhZ2VzIiwgIl9yZXNwb25zZSRxdWVyeSRwYWdlczIiLCAicnZwcm9wIiwgInRpdGxlcyIsICJydnNlY3Rpb24iLCAicnZzbG90cyIsICJyZXNwb25zZSIsICJwYWdlcyIsICJyZXZpc2lvbnMiLCAic2xvdHMiLCAibWFpbiIsICJjb250ZW50IiwgIl94MiIsICJpc1BhZ2VFeGlzdCIsICJfcmVmMyIsICJhcmNoaXZlVG8iLCAiX3F1ZXJ5JHBhZ2VzJCIsICJxdWVyeSIsICJtaXNzaW5nIiwgIl94MyIsICJpc1NlY3Rpb25FeGlzdCIsICJfcmVmNCIsICJpc0V4aXN0IiwgIl9pdGVyYXRvcjMiLCAiX3N0ZXAzIiwgIl94NCIsICJyZW1vdmVTZWN0aW9uIiwgIl9yZWY1IiwgInN1bW1hcnkiLCAiZWRpdCIsICJ0ZXh0IiwgIm1pbm9yIiwgIl94NSIsICJhcmNoaXZlU2VjdGlvbiIsICJfcmVmNiIsICJwYWdlRXhpc3QiLCAiY3JlYXRlIiwgImFwcGVuZHRleHQiLCAiX3g2IiwgImdldEFyY2hpdmluZ01lc3NhZ2UiLCAiaW5kZXhObyIsICJnZXRBcmNoaXZlZE1lc3NhZ2UiLCAiZ2V0RGVsZXRpbmdNZXNzYWdlIiwgImdldERlbGV0ZWRNZXNzYWdlIiwgImltcG9ydF9leHRfZ2FkZ2V0NSIsICJpbXBvcnRfZXh0X2dhZGdldDQiLCAid2dTY3JpcHQiLCAicmVmcmVzaCIsICJ0YXJnZXRQYWdlIiwgInRvYXN0aWZ5SW5zdGFuY2UiLCAiaGlkZVRvYXN0IiwgInRvYXN0aWZ5IiwgImR1cmF0aW9uIiwgImxvY2F0aW9uIiwgInV0aWwiLCAiZ2V0VXJsIiwgImltcG9ydF9leHRfZ2FkZ2V0NiIsICJhcmNoaXZlT25DbGljayIsICJfcmVmNyIsICJldmVudCIsICJzZWN0aW9uSWRTcGFucyIsICJtZXNzYWdlQ2hhbm5lbCIsICJyZWZyZXNoQ2hhbm5lbCIsICJfZXZlbnQkdGFyZ2V0IiwgInByZXZlbnREZWZhdWx0IiwgInBhcmVudEVsZW1lbnQiLCAidGFyZ2V0IiwgInJlcGxhY2VDaGlsZHJlbiIsICJfaXRlcmF0b3I0IiwgIl9zdGVwNCIsICJzcGFuIiwgInJlbW92ZSIsICJtZXNzYWdlMSIsICJwb3N0TWVzc2FnZSIsICJjbG9zZSIsICJtZXNzYWdlIiwgIl94NyIsICJfeDgiLCAicmVtb3ZlT25DbGljayIsICJfcmVmOCIsICJfZXZlbnQkdGFyZ2V0MiIsICJfaXRlcmF0b3I1IiwgIl9zdGVwNSIsICJfeDkiLCAiX3gxMCIsICJpbXBvcnRfZXh0X2dhZGdldDciLCAiQXJjaGl2ZVNlY3Rpb25MaW5rIiwgIlJlbW92ZVNlY3Rpb25MaW5rIiwgIkFyY2hpdmVBbmREZWxldGVTZWN0aW9uTGluayIsICJpbXBvcnRfZXh0X2dhZGdldDgiLCAiaW1wb3J0X2V4dF9nYWRnZXQ5IiwgImFkZExpbmtzIiwgIl9yZWY5IiwgImhlYWRpbmdzIiwgInF1ZXJ5U2VsZWN0b3JBbGwiLCAiaGVhZGxpbmVzIiwgImhlYWRpbmdJbmRpY2VzIiwgIl9pdGVyYXRvcjYiLCAiX3N0ZXA2IiwgImhlYWRpbmciLCAiaGVhZGxpbmUiLCAiQnJvYWRjYXN0Q2hhbm5lbCIsICJfaXRlcmF0b3I3IiwgIl9zdGVwNyIsICJfaTIiLCAiX2hlYWRpbmdJbmRpY2VzIiwgImdldEVsZW1lbnRCeUlkIiwgInBhcmVudEhlYWRpbmciLCAiZWRpdFNlY3Rpb24iLCAic2VjdGlvbklEU3BhbiIsICJwcmVwZW5kIiwgImFkZEV2ZW50TGlzdGVuZXIiLCAiX2kzIiwgIl9zZWN0aW9uSWRTcGFucyIsICJkYXRhIiwgIm5vZGUiLCAiX3gxMSIsICJhcHBlbmRGb290ZXJOb3RpY2UiLCAibW91bnRQb2ludCIsICJlYXN5QXJjaGl2ZSIsICJub3RTdXBwb3J0ZWQiLCAiaW5CbGFja2xpc3QiLCAibm90QWxsb3dlZCIsICJhcmNMb2NOb3RBbGxvd2VkIl0KfQo= +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsibm9kZV9tb2R1bGVzLy5wbnBtL2Jyb2FkY2FzdGNoYW5uZWwtcG9seWZpbGxAMS4wLjEvbm9kZV9tb2R1bGVzL2Jyb2FkY2FzdGNoYW5uZWwtcG9seWZpbGwvaW5kZXguanMiLCAic3JjL0Vhc3lBcmNoaXZlL29wdGlvbnMuanNvbiIsICJzcmMvRWFzeUFyY2hpdmUvbW9kdWxlcy9jb21wb25lbnRzL3JlYWN0LnRzeCIsICJzcmMvRWFzeUFyY2hpdmUvbW9kdWxlcy9jb21wb25lbnRzL0Vhc3lBcmNoaXZlLm1vZHVsZS5sZXNzIiwgInNyYy9FYXN5QXJjaGl2ZS9tb2R1bGVzL2kxOG4udHMiLCAic3JjL0Vhc3lBcmNoaXZlL21vZHVsZXMvdXRpbC9zYW5pdGl6ZS50cyIsICJzcmMvRWFzeUFyY2hpdmUvbW9kdWxlcy91dGlsL2dldFNldHRpbmdzLnRzIiwgInNyYy9FYXN5QXJjaGl2ZS9FYXN5QXJjaGl2ZS50c3giLCAic3JjL0Vhc3lBcmNoaXZlL21vZHVsZXMvdXRpbC9hcGkudHMiLCAic3JjL0Vhc3lBcmNoaXZlL21vZHVsZXMvdXRpbC9nZXRTZWN0aW9uLnRzIiwgInNyYy9FYXN5QXJjaGl2ZS9tb2R1bGVzL3V0aWwvZWRpdFNlY3Rpb24udHMiLCAic3JjL0Vhc3lBcmNoaXZlL21vZHVsZXMvdXRpbC9nZXRNZXNzYWdlLnRzIiwgInNyYy9FYXN5QXJjaGl2ZS9tb2R1bGVzL3V0aWwvb25DbGljay50c3giLCAic3JjL0Vhc3lBcmNoaXZlL21vZHVsZXMvdXRpbC9yZWZyZXNoUGFnZS50cyIsICJzcmMvRWFzeUFyY2hpdmUvbW9kdWxlcy9jb21wb25lbnRzL3NlY3Rpb25MaW5rLnRzeCIsICJzcmMvRWFzeUFyY2hpdmUvbW9kdWxlcy9hZGRMaW5rcy50c3giLCAic3JjL0Vhc3lBcmNoaXZlL21vZHVsZXMvYXBwZW5kRm9vdGVyTm90aWNlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIoZnVuY3Rpb24oZ2xvYmFsKSB7XG4gICAgdmFyIGNoYW5uZWxzID0gW107XG5cbiAgICBmdW5jdGlvbiBCcm9hZGNhc3RDaGFubmVsKGNoYW5uZWwpIHtcbiAgICAgICAgdmFyICR0aGlzID0gdGhpcztcbiAgICAgICAgY2hhbm5lbCA9IFN0cmluZyhjaGFubmVsKTtcblxuICAgICAgICB2YXIgaWQgPSAnJEJyb2FkY2FzdENoYW5uZWwkJyArIGNoYW5uZWwgKyAnJCc7XG5cbiAgICAgICAgY2hhbm5lbHNbaWRdID0gY2hhbm5lbHNbaWRdIHx8IFtdO1xuICAgICAgICBjaGFubmVsc1tpZF0ucHVzaCh0aGlzKTtcblxuICAgICAgICB0aGlzLl9uYW1lID0gY2hhbm5lbDtcbiAgICAgICAgdGhpcy5faWQgPSBpZDtcbiAgICAgICAgdGhpcy5fY2xvc2VkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX21jID0gbmV3IE1lc3NhZ2VDaGFubmVsKCk7XG4gICAgICAgIHRoaXMuX21jLnBvcnQxLnN0YXJ0KCk7XG4gICAgICAgIHRoaXMuX21jLnBvcnQyLnN0YXJ0KCk7XG5cbiAgICAgICAgZ2xvYmFsLmFkZEV2ZW50TGlzdGVuZXIoJ3N0b3JhZ2UnLCBmdW5jdGlvbihlKSB7XG4gICAgICAgICAgICBpZiAoZS5zdG9yYWdlQXJlYSAhPT0gZ2xvYmFsLmxvY2FsU3RvcmFnZSkgcmV0dXJuO1xuICAgICAgICAgICAgaWYgKGUubmV3VmFsdWUgPT0gbnVsbCB8fCBlLm5ld1ZhbHVlID09PSAnJykgcmV0dXJuO1xuICAgICAgICAgICAgaWYgKGUua2V5LnN1YnN0cmluZygwLCBpZC5sZW5ndGgpICE9PSBpZCkgcmV0dXJuO1xuICAgICAgICAgICAgdmFyIGRhdGEgPSBKU09OLnBhcnNlKGUubmV3VmFsdWUpO1xuICAgICAgICAgICAgJHRoaXMuX21jLnBvcnQyLnBvc3RNZXNzYWdlKGRhdGEpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBCcm9hZGNhc3RDaGFubmVsLnByb3RvdHlwZSA9IHtcbiAgICAgICAgLy8gQnJvYWRjYXN0Q2hhbm5lbCBBUElcbiAgICAgICAgZ2V0IG5hbWUoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fbmFtZTtcbiAgICAgICAgfSxcbiAgICAgICAgcG9zdE1lc3NhZ2U6IGZ1bmN0aW9uKG1lc3NhZ2UpIHtcbiAgICAgICAgICAgIHZhciAkdGhpcyA9IHRoaXM7XG4gICAgICAgICAgICBpZiAodGhpcy5fY2xvc2VkKSB7XG4gICAgICAgICAgICAgICAgdmFyIGUgPSBuZXcgRXJyb3IoKTtcbiAgICAgICAgICAgICAgICBlLm5hbWUgPSAnSW52YWxpZFN0YXRlRXJyb3InO1xuICAgICAgICAgICAgICAgIHRocm93IGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YXIgdmFsdWUgPSBKU09OLnN0cmluZ2lmeShtZXNzYWdlKTtcblxuICAgICAgICAgICAgLy8gQnJvYWRjYXN0IHRvIG90aGVyIGNvbnRleHRzIHZpYSBzdG9yYWdlIGV2ZW50cy4uLlxuICAgICAgICAgICAgdmFyIGtleSA9IHRoaXMuX2lkICsgU3RyaW5nKERhdGUubm93KCkpICsgJyQnICsgU3RyaW5nKE1hdGgucmFuZG9tKCkpO1xuICAgICAgICAgICAgZ2xvYmFsLmxvY2FsU3RvcmFnZS5zZXRJdGVtKGtleSwgdmFsdWUpO1xuICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICBnbG9iYWwubG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oa2V5KTtcbiAgICAgICAgICAgIH0sIDUwMCk7XG5cbiAgICAgICAgICAgIC8vIEJyb2FkY2FzdCB0byBjdXJyZW50IGNvbnRleHQgdmlhIHBvcnRzXG4gICAgICAgICAgICBjaGFubmVsc1t0aGlzLl9pZF0uZm9yRWFjaChmdW5jdGlvbihiYykge1xuICAgICAgICAgICAgICAgIGlmIChiYyA9PT0gJHRoaXMpIHJldHVybjtcbiAgICAgICAgICAgICAgICBiYy5fbWMucG9ydDIucG9zdE1lc3NhZ2UoSlNPTi5wYXJzZSh2YWx1ZSkpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIGNsb3NlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLl9jbG9zZWQpIHJldHVybjtcbiAgICAgICAgICAgIHRoaXMuX2Nsb3NlZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLl9tYy5wb3J0MS5jbG9zZSgpO1xuICAgICAgICAgICAgdGhpcy5fbWMucG9ydDIuY2xvc2UoKTtcblxuICAgICAgICAgICAgdmFyIGluZGV4ID0gY2hhbm5lbHNbdGhpcy5faWRdLmluZGV4T2YodGhpcyk7XG4gICAgICAgICAgICBjaGFubmVsc1t0aGlzLl9pZF0uc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgfSxcblxuICAgICAgICAvLyBFdmVudFRhcmdldCBBUElcbiAgICAgICAgZ2V0IG9ubWVzc2FnZSgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9tYy5wb3J0MS5vbm1lc3NhZ2U7XG4gICAgICAgIH0sXG4gICAgICAgIHNldCBvbm1lc3NhZ2UodmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuX21jLnBvcnQxLm9ubWVzc2FnZSA9IHZhbHVlO1xuICAgICAgICB9LFxuICAgICAgICBhZGRFdmVudExpc3RlbmVyOiBmdW5jdGlvbigvKnR5cGUsIGxpc3RlbmVyICwgdXNlQ2FwdHVyZSovKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fbWMucG9ydDEuYWRkRXZlbnRMaXN0ZW5lci5hcHBseSh0aGlzLl9tYy5wb3J0MSwgYXJndW1lbnRzKTtcbiAgICAgICAgfSxcbiAgICAgICAgcmVtb3ZlRXZlbnRMaXN0ZW5lcjogZnVuY3Rpb24oLyp0eXBlLCBsaXN0ZW5lciAsIHVzZUNhcHR1cmUqLykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX21jLnBvcnQxLnJlbW92ZUV2ZW50TGlzdGVuZXIuYXBwbHkodGhpcy5fbWMucG9ydDEsIGFyZ3VtZW50cyk7XG4gICAgICAgIH0sXG4gICAgICAgIGRpc3BhdGNoRXZlbnQ6IGZ1bmN0aW9uKC8qZXZlbnQqLykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX21jLnBvcnQxLmRpc3BhdGNoRXZlbnQuYXBwbHkodGhpcy5fbWMucG9ydDEsIGFyZ3VtZW50cyk7XG4gICAgICAgIH0sXG4gICAgfTtcblxuICAgIGdsb2JhbC5Ccm9hZGNhc3RDaGFubmVsID0gZ2xvYmFsLkJyb2FkY2FzdENoYW5uZWwgfHwgQnJvYWRjYXN0Q2hhbm5lbDtcbn0pKHNlbGYpO1xuIiwgIntcblx0XCJlbGVtZW50SWRcIjogXCJnYWRnZXQtZWFzeV9hcmNoaXZlXCIsXG5cdFwibW91bnRQb2ludFNlbGVjdG9yXCI6IFwiI2Zvb3Rlci1pbmZvLC5wYWdlLWluZm9cIixcblx0XCJ2ZXJzaW9uXCI6IFwiMS4wXCJcbn1cbiIsICJpbXBvcnQgKiBhcyBPUFRJT05TIGZyb20gJy4uLy4uL29wdGlvbnMuanNvbic7XG5pbXBvcnQgUmVhY3QsIHtSZWFjdEVsZW1lbnR9IGZyb20gJ2V4dC5nYWRnZXQuSlNYJztcbmltcG9ydCB7Zm9vdGVyTm90aWNlLCBzZWN0aW9uSWRTcGFufSBmcm9tICcuL0Vhc3lBcmNoaXZlLm1vZHVsZS5sZXNzJztcbmltcG9ydCB7Z2V0TWVzc2FnZX0gZnJvbSAnLi4vaTE4bic7XG5pbXBvcnQge3Nhbml0aXplfSBmcm9tICcuLi91dGlsL3Nhbml0aXplJztcblxuaW50ZXJmYWNlIEZvb3Rlck5vdGljZVByb3BzIHtcblx0aWQ/OiBzdHJpbmc7XG5cdGNoaWxkcmVuPzogUmVhY3RFbGVtZW50IHwgUmVhY3RFbGVtZW50W107XG59XG5cbmNvbnN0IEZvb3Rlck5vdGljZSA9ICh7aWQsIGNoaWxkcmVuID0gPD48Lz59OiBGb290ZXJOb3RpY2VQcm9wcykgPT4ge1xuXHRjb25zdCB7c2tpbn0gPSBtdy5jb25maWcuZ2V0KCk7XG5cblx0cmV0dXJuIChcblx0XHQ8PlxuXHRcdFx0e3NraW4gPT09ICdjaXRpemVuJyA/IChcblx0XHRcdFx0PHNlY3Rpb25cblx0XHRcdFx0XHRpZD17aWQgPz8gT1BUSU9OUy5lbGVtZW50SWR9XG5cdFx0XHRcdFx0Y2xhc3NOYW1lPXtbZm9vdGVyTm90aWNlLCAncGFnZS1pbmZvX19pdGVtJywgJ2NpdGl6ZW4tZm9vdGVyX19wYWdlaW5mby1pdGVtJywgJ25vcHJpbnQnXX1cblx0XHRcdFx0PlxuXHRcdFx0XHRcdHtjaGlsZHJlbn1cblx0XHRcdFx0PC9zZWN0aW9uPlxuXHRcdFx0KSA6IFsndmVjdG9yJywgJ3ZlY3Rvci0yMDIyJywgJ2dvbmdiaSddLmluY2x1ZGVzKHNraW4pIHx8IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ3VsI2Zvb3Rlci1pbmZvJykgPyAoXG5cdFx0XHRcdDxsaSBpZD17aWQgPz8gT1BUSU9OUy5lbGVtZW50SWR9IGNsYXNzTmFtZT17W2Zvb3Rlck5vdGljZSwgJ25vcHJpbnQnXX0+XG5cdFx0XHRcdFx0e2NoaWxkcmVufVxuXHRcdFx0XHQ8L2xpPlxuXHRcdFx0KSA6IChcblx0XHRcdFx0PGRpdiBpZD17aWQgPz8gT1BUSU9OUy5lbGVtZW50SWR9IGNsYXNzTmFtZT17W2Zvb3Rlck5vdGljZSwgJ25vcHJpbnQnXX0+XG5cdFx0XHRcdFx0e2NoaWxkcmVufVxuXHRcdFx0XHQ8L2Rpdj5cblx0XHRcdCl9XG5cdFx0PC8+XG5cdCk7XG59O1xuXG5jb25zdCBJbkJsYWNrTGlzdCA9ICgpID0+IChcblx0PEZvb3Rlck5vdGljZSBpZD1cImVhc3lfYXJjaGl2ZV9ub3Rfc3VwcG9ydGVkX25vdGljZVwiPlxuXHRcdDxzcGFuPlxuXHRcdFx0e2dldE1lc3NhZ2UoJ0Vhc3kgQXJjaGl2ZSBub3Qgc3VwcG9ydGVkJyl9XG5cdFx0XHQ8YnIgLz5cblx0XHRcdHtnZXRNZXNzYWdlKCdFYXN5IEFyY2hpdmUgbm90IHN1cHBvcnRlZCBkZXRhaWxzJyl9XG5cdFx0PC9zcGFuPlxuXHQ8L0Zvb3Rlck5vdGljZT5cbik7XG5cbmNvbnN0IE5vdEFsbG93ZWQgPSAoKSA9PiAoXG5cdDxGb290ZXJOb3RpY2UgaWQ9XCJlYXN5X2FyY2hpdmVfbm90X2FsbG93ZWRfbm90aWNlXCI+XG5cdFx0PHNwYW4+e2dldE1lc3NhZ2UoJ0Vhc3kgQXJjaGl2ZSBub3QgYWxsb3dlZCcpfTwvc3Bhbj5cblx0PC9Gb290ZXJOb3RpY2U+XG4pO1xuXG5pbnRlcmZhY2UgQXJjTG9jTm90QWxsb3dlZFByb3BzIHtcblx0YXJjTG9jOiBzdHJpbmc7XG59XG5cbmNvbnN0IEFyY0xvY05vdEFsbG93ZWQgPSAoe2FyY0xvY306IEFyY0xvY05vdEFsbG93ZWRQcm9wcykgPT4gKFxuXHQ8Rm9vdGVyTm90aWNlIGlkPVwiZWFzeV9hcmNoaXZlX2FyY19sb2Nfbm90X2FsbG93ZWRfbm90aWNlXCI+XG5cdFx0PHNwYW4+XG5cdFx0XHR7Z2V0TWVzc2FnZSgnQXJjaGl2ZSBMb2NhdGlvbiBub3QgYWxsb3dlZCcpLnJlcGxhY2UoJyQxJywgc2FuaXRpemUoYXJjTG9jKSl9XG5cdFx0XHQ8YnIgLz5cblx0XHRcdHtnZXRNZXNzYWdlKCdBcmNoaXZlIExvY2F0aW9uIG5vdCBhbGxvd2VkIGRldGFpbHMnKX1cblx0XHQ8L3NwYW4+XG5cdDwvRm9vdGVyTm90aWNlPlxuKTtcblxuY29uc3QgTm9BcmNMb2MgPSAoKSA9PiAoXG5cdDxGb290ZXJOb3RpY2UgaWQ9XCJlYXN5X2FyY2hpdmVfbm9fYXJjX2xvY19ub3RpY2VcIj5cblx0XHQ8c3Bhbj57Z2V0TWVzc2FnZSgnTm8gQXJjaGl2ZSBMb2NhdGlvbicpfTwvc3Bhbj5cblx0PC9Gb290ZXJOb3RpY2U+XG4pO1xuXG5pbnRlcmZhY2UgRW5hYmxlZFByb3BzIHtcblx0YXJjTG9jOiBzdHJpbmc7XG59XG5cbmNvbnN0IEVuYWJsZWQgPSAoe2FyY0xvY306IEVuYWJsZWRQcm9wcykgPT4gKFxuXHQ8Rm9vdGVyTm90aWNlIGlkPVwiZWFzeV9hcmNoaXZlX2FyY19sb2Nfbm90X2FsbG93ZWRfbm90aWNlXCI+XG5cdFx0PHNwYW4+XG5cdFx0XHR7Z2V0TWVzc2FnZSgnRWFzeSBBcmNoaXZlIGVuYWJsZWQnKX1cblx0XHRcdHtnZXRNZXNzYWdlKCcoJyl9XG5cdFx0XHR7Z2V0TWVzc2FnZSgnQXJjaGl2ZSBsb2NhdGlvbicpfVxuXHRcdFx0PGEgdGl0bGU9e3Nhbml0aXplKGFyY0xvYyl9IGhyZWY9e2Avd2lraS8ke3Nhbml0aXplKGFyY0xvYyl9YH0+XG5cdFx0XHRcdHthcmNMb2N9XG5cdFx0XHQ8L2E+XG5cdFx0XHR7Z2V0TWVzc2FnZSgnKScpfVxuXHRcdFx0e2dldE1lc3NhZ2UoJy4nKX1cblx0XHQ8L3NwYW4+XG5cdDwvRm9vdGVyTm90aWNlPlxuKTtcblxuaW50ZXJmYWNlIE9uQ2xpY2tQcm9wcyB7XG5cdHRleHRDb250ZW50OiBzdHJpbmc7XG5cdGNsYXNzTmFtZTogc3RyaW5nO1xuXHRvbkNsaWNrPzogKGV2ZW50OiBFdmVudCkgPT4gdm9pZDtcbn1cblxuY29uc3QgT25DbGljayA9ICh7dGV4dENvbnRlbnQsIGNsYXNzTmFtZSwgb25DbGlja306IE9uQ2xpY2tQcm9wcykgPT4gKFxuXHQ8YVxuXHRcdGNsYXNzTmFtZT17WydnYWRnZXQtZWFzeV9hcmNoaXZlX19saW5rJywgYGdhZGdldC1lYXN5X2FyY2hpdmVfX2xpbmstJHtjbGFzc05hbWV9YF19XG5cdFx0b25DbGljaz17b25DbGljayB8fCAoKCkgPT4ge30pfVxuXHRcdHRleHRDb250ZW50PXt0ZXh0Q29udGVudH1cblx0Lz5cbik7XG5cbmludGVyZmFjZSBTZWN0aW9uSURQcm9wcyB7XG5cdGNoaWxkcmVuPzogUmVhY3RFbGVtZW50IHwgUmVhY3RFbGVtZW50W107XG59XG5cbmNvbnN0IFNlY3Rpb25JRCA9ICh7Y2hpbGRyZW59OiBTZWN0aW9uSURQcm9wcykgPT4gPHNwYW4gY2xhc3NOYW1lPXtzZWN0aW9uSWRTcGFufT57Y2hpbGRyZW59PC9zcGFuPjtcblxuY29uc3QgUGlwZSA9ICgpID0+IDxzcGFuIGNsYXNzTmFtZT1cIm13LWVkaXRzZWN0aW9uLWRpdmlkZXJcIiB0ZXh0Q29udGVudD17J3wnfSAvPjtcblxuaW50ZXJmYWNlIEVkaXRDb25mbGljdE5vdGljZVByb3BzIHtcblx0b25DbGljazogKCkgPT4gdm9pZDtcbn1cblxuY29uc3QgRWRpdENvbmZsaWN0Tm90aWNlID0gKHtvbkNsaWNrfTogRWRpdENvbmZsaWN0Tm90aWNlUHJvcHMpID0+IChcblx0PHNwYW4+XG5cdFx0e2dldE1lc3NhZ2UoJ0VkaXQgQ29uZmlsaWN0IE5vdGljZScpfVxuXHRcdDxhIG9uQ2xpY2s9e29uQ2xpY2t9PntnZXRNZXNzYWdlKCdSZWZyZXNoJyl9PC9hPlxuXHQ8L3NwYW4+XG4pO1xuXG5leHBvcnQge1xuXHRGb290ZXJOb3RpY2UsXG5cdEVuYWJsZWQsXG5cdEluQmxhY2tMaXN0LFxuXHROb3RBbGxvd2VkLFxuXHRBcmNMb2NOb3RBbGxvd2VkLFxuXHROb0FyY0xvYyxcblx0T25DbGljayxcblx0UGlwZSxcblx0U2VjdGlvbklELFxuXHRFZGl0Q29uZmxpY3ROb3RpY2UsXG59O1xuIiwgImltcG9ydCBcImVzYnVpbGQtY3NzLW1vZHVsZXMtcGx1Z2luLW5zLWNzczpzcmMvRWFzeUFyY2hpdmUvbW9kdWxlcy9jb21wb25lbnRzL0Vhc3lBcmNoaXZlLm1vZHVsZS5sZXNzXCI7XG5leHBvcnQgY29uc3QgZm9vdGVyTm90aWNlID0gXCJFYXN5QXJjaGl2ZS1tb2R1bGVfX2Zvb3Rlck5vdGljZV9aUmtHMXFfXzQ5MFwiO1xuZXhwb3J0IGNvbnN0IHNlY3Rpb25JZFNwYW4gPSBcIkVhc3lBcmNoaXZlLW1vZHVsZV9fc2VjdGlvbklkU3Bhbl9aUmtHMXFfXzQ5MFwiO1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIFwiZm9vdGVyTm90aWNlXCI6IGZvb3Rlck5vdGljZSxcbiAgXCJzZWN0aW9uSWRTcGFuXCI6IHNlY3Rpb25JZFNwYW5cbn07XG4gICAgICAiLCAiaW1wb3J0IHtsb2NhbGl6ZX0gZnJvbSAnZXh0LmdhZGdldC5pMThuJztcblxuY29uc3QgZ2V0STE4bk1lc3NhZ2VzID0gKCkgPT4ge1xuXHRyZXR1cm4ge1xuXHRcdEFyY2hpdmU6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnYXJjaGl2ZScsXG5cdFx0XHQnemgtaGFucyc6ICflrZjmoaMnLFxuXHRcdFx0J3poLWhhbnQnOiAn5a2Y5qqUJyxcblx0XHR9KSxcblx0XHQnQXJjaGl2ZSBsb2NhdGlvbic6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnQXJjaGl2ZSBsb2NhdGlvbjogJyxcblx0XHRcdCd6aC1oYW5zJzogJ+WtmOaho+WcsOWdgO+8micsXG5cdFx0XHQnemgtaGFudCc6ICflrZjmqpToh7PvvJonLFxuXHRcdH0pLFxuXHRcdCdBcmNoaXZlIExvY2F0aW9uIG5vdCBhbGxvd2VkJzogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdDdXJyZW50bHkgdGhlIGFyY2hpdmUgbG9jYXRpb24gb2YgdGhpcyBwYWdlLCBcIiQxXCIsIGJ1dCBFYXN5IGFyY2hpdmUgY2Fubm90IG9wZXJhdGUgbGlrZSB0aGlzLicsXG5cdFx0XHQnemgtaGFucyc6ICfmraTpobXpnaLnm67liY3nmoTlrZjmoaPlnLDlnYDmmK/igJwkMeKAneOAgkVhc3kgQXJjaGl2ZSDml6Dms5XmjInmraTlnLDlnYDlrZjmoaPjgIInLFxuXHRcdFx0J3poLWhhbnQnOiAn5q2k6aCB6Z2i55W25YmN55qE5a2Y5qqU5Zyw5Z2A5piv44CMJDHjgI3jgIJFYXN5IEFyY2hpdmUg54Sh5rOV5oyJ5q2k5Zyw5Z2A5a2Y5qqU44CCJyxcblx0XHR9KSxcblx0XHQnQXJjaGl2ZSBMb2NhdGlvbiBub3QgYWxsb3dlZCBkZXRhaWxzJzogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdBcmNoaXZlcyBzaG91bGQgbm90IGJlIG5vcm1hbGx5IGRpcmVjdGVkIHRvIHBhZ2VzIHVuZGVyIGFydGljbGUgbmFtZXNwYWNlLiBQbGVhc2UgY2hlY2sgaWYgeW91IGhhdmUgdGhlIGNvcnJlY3QgYXJjaGl2ZSBsb2NhdGlvbi4nLFxuXHRcdFx0J3poLWhhbnMnOiAn5LiA6Iis6ICM6KiA77yM5LiN5bqU5ZCR5p2h55uu5ZCN56ew56m66Ze06L+b6KGM5a2Y5qGj44CC5q2k5aSW77yM5a2Y5qGj5Zyw5Z2A5LiN5b6X5ZKM5q2k6aG16Z2i5ZCN56ew55u45ZCM44CC6K+35qOA5p+l5a2Y5qGj5Zyw5Z2A44CCJyxcblx0XHRcdCd6aC1oYW50JzogJ+S4gOiIrOiAjOiogO+8jOS4jeaHieWQkeaineebruWQjeeoseepuumWk+mAsuihjOWtmOaqlOOAguatpOWklu+8jOWtmOaqlOWcsOWdgOS4jeW+l+WSjOatpOmggemdouWQjeeoseebuOWQjOOAguiri+aqouafpeWtmOaqlOWcsOWdgOOAgicsXG5cdFx0fSksXG5cdFx0QXJjaGl2aW5nOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ0FyY2hpdmluZycsXG5cdFx0XHQnemgtaGFucyc6ICflrZjmoaPkuK0nLFxuXHRcdFx0J3poLWhhbnQnOiAn5a2Y5qqU5LitJyxcblx0XHR9KSxcblx0XHRBcmNoaXZlZDogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdhcmNoaXZlZCcsXG5cdFx0XHQnemgtaGFucyc6ICflt7LlrZjmoaMnLFxuXHRcdFx0J3poLWhhbnQnOiAn5bey5a2Y5qqUJyxcblx0XHR9KSxcblx0XHQnRWRpdCBDb25maWxpY3QgTm90aWNlJzogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdZb3UgaGF2ZSBhbHJlYWR5IGFyY2hpdmVkIGFuZC9vciBkZWxldGVkIGEgc2VjdGlvbiBvbiB0aGlzIHBhZ2UuIFBsZWFzZSByZWZyZXNoIHRoZSBwYWdlIGFuZCBjb250aW51ZSBhcmNoaXZpbmcgb3IgZGVsZXRpbmcgb3RoZXIgc2VjdGlvbnMgdG8gYXZvaWQgZWRpdGluZyBjb25mbGljdHMuJyxcblx0XHRcdCd6aC1oYW5zJzpcblx0XHRcdFx0J+aCqOW3sue7j+WcqOacrOmhtemdouaJp+ihjOS6huWtmOaho+OAgeWIoOmZpOeroOiKgueahOaTjeS9nOOAguivt+WIt+aWsOmhtemdou+8jOeEtuWQjue7p+e7reWtmOaho+OAgeWIoOmZpOacrOmhtemdoueahOWFtuS7lueroOiKgu+8jOS7pemBv+WFjee8lui+keWGsueqgeOAgicsXG5cdFx0XHQnemgtaGFudCc6XG5cdFx0XHRcdCfmgqjlt7LntpPlnKjmnKzpoIHpnaLln7fooYzkuoblrZjmqpTjgIHliKrpmaTnq6Dnr4DnmoTmk43kvZzjgILoq4vliLfmlrDpoIHpnaLvvIznhLblvoznubznuozlrZjmqpTjgIHliKrpmaTmnKzpoIHpnaLnmoTlhbbku5bnq6Dnr4DvvIzku6Xpgb/lhY3nt6jovK/ooZ3nqoHjgIInLFxuXHRcdH0pLFxuXHRcdERlbGV0ZTogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdkZWxldGUnLFxuXHRcdFx0J3poLWhhbnMnOiAn5Yig6ZmkJyxcblx0XHRcdCd6aC1oYW50JzogJ+WIqumZpCcsXG5cdFx0fSksXG5cdFx0RGVsZXRpbmc6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnRGVsZXRpbmcnLFxuXHRcdFx0J3poLWhhbnMnOiAn5Yig6Zmk5LitJyxcblx0XHRcdCd6aC1oYW50JzogJ+WIqumZpOS4rScsXG5cdFx0fSksXG5cdFx0RGVsZXRlZDogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdkZWxldGVkJyxcblx0XHRcdCd6aC1oYW5zJzogJ+W3suWIoOmZpCcsXG5cdFx0XHQnemgtaGFudCc6ICflt7LliKrpmaQnLFxuXHRcdH0pLFxuXHRcdCdBcmNoaXZlIHN1bW1hcnknOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ2FyY2hpdmUgc2VjdGlvbicsXG5cdFx0XHQnemgtaGFucyc6ICflrZjmoaPmrrXokL0nLFxuXHRcdFx0J3poLWhhbnQnOiAn5a2Y5qqU5q616JC9Jyxcblx0XHR9KSxcblx0XHQnQ3JlYXRlIHN1bW1hcnknOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ2NyZWF0ZSBhcmNoaXZlJyxcblx0XHRcdCd6aC1oYW5zJzogJ+W7uueri+WtmOahoycsXG5cdFx0XHQnemgtaGFudCc6ICflu7rnq4vlrZjmqpQnLFxuXHRcdH0pLFxuXHRcdCdEZWxldGUgc3VtbWFyeSc6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnZGVsZXRlIHNlY3Rpb24nLFxuXHRcdFx0J3poLWhhbnMnOiAn5Yig6Zmk5q616JC9Jyxcblx0XHRcdCd6aC1oYW50JzogJ+WIqumZpOauteiQvScsXG5cdFx0fSksXG5cdFx0J0Vhc3kgQXJjaGl2ZSBlbmFibGVkJzogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdFYXN5IEFyY2hpdmUgaXMgZW5hYmxlZCBvbiB0aGlzIHRhbGsgcGFnZScsXG5cdFx0XHQnemgtaGFucyc6ICfmnKzorqjorrrpobXpnaLkvb/nlKggRWFzeSBBcmNoaXZlIOW/q+mAn+WtmOahoycsXG5cdFx0XHQnemgtaGFudCc6ICfmraTpoIHpnaLkvb/nlKggRWFzeSBBcmNoaXZlIOW/q+mAn+WtmOaqlCcsXG5cdFx0fSksXG5cdFx0J0Vhc3kgQXJjaGl2ZSBub3QgYWxsb3dlZCc6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnWW91IGNhbm5vdCB1c2UgRWFzeSBBcmNoaXZlIHRvIGFyY2hpdmUgdGhyZWFkcyBvbiB0aGlzIHBhZ2UuJyxcblx0XHRcdCd6aC1oYW5zJzogJ+aCqOS4jeWPr+S7peWcqOatpOmhtemdouS9v+eUqCBFYXN5IEFyY2hpdmUg5b+r6YCf5a2Y5qGj44CCJyxcblx0XHRcdCd6aC1oYW50JzogJ+aCqOS4jeWPr+S7peWcqOatpOmggemdouS9v+eUqCBFYXN5IEFyY2hpdmUg5b+r6YCf5a2Y5qqU44CCJyxcblx0XHR9KSxcblx0XHQnRWFzeSBBcmNoaXZlIG5vdCBzdXBwb3J0ZWQnOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ1RoaXMgcGFnZSBpcyBub3Qgc3VwcG9ydGVkIGJ5IEVhc3kgQXJjaGl2ZS4nLFxuXHRcdFx0J3poLWhhbnMnOiAn5q2k6aG16Z2i5LiN5pSv5oyBIEVhc3kgQXJjaGl2ZeOAgicsXG5cdFx0XHQnemgtaGFudCc6ICfmraTpoIHpnaLkuI3mlK/mjIEgRWFzeSBBcmNoaXZl44CCJyxcblx0XHR9KSxcblx0XHQnRWFzeSBBcmNoaXZlIG5vdCBzdXBwb3J0ZWQgZGV0YWlscyc6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnVGhlc2UgcGFnZXMgYXJlIG5vdCBzdXBwb3J0ZWQgYnkgRWFzeSBBcmNoaXZlOiBBcnRpY2xlLCBGaWxlLCBUZW1wbGF0ZSwgTW9kdWxlLCBNZWRpYVdpa2ksIENhdGVnb3J5LCBTcGVjaWFsLCBKYXZhU2NyaXB0LCBDU1MsIEpTT04uJyxcblx0XHRcdCd6aC1oYW5zJzpcblx0XHRcdFx0J+i/meS6m+mhtemdouS4jeWPlyBFYXN5IEFyY2hpdmUg5pSv5oyB77ya5p2h55uu44CBRmlsZeOAgVRlbXBsYXRl44CBTW9kdWxl44CBTWVkaWFXaWtp44CBQ2F0ZWdvcnnjgIFTcGVjaWFs44CBSmF2YVNjcmlwdOOAgUNTU+OAgUpTT07jgIInLFxuXHRcdFx0J3poLWhhbnQnOlxuXHRcdFx0XHQn6YCZ5Lqb6aCB6Z2i5LiN5Y+XIEVhc3kgQXJjaGl2ZSDmlK/mjIHvvJrmop3nm67vvIxGaWxl44CBVGVtcGxhdGXjgIFNb2R1bGXjgIFNZWRpYVdpa2njgIFDYXRlZ29yeeOAgVNwZWNpYWzjgIFKYXZhU2NyaXB044CBQ1NT44CBSlNPTuOAgicsXG5cdFx0fSksXG5cdFx0J05vIEFyY2hpdmUgTG9jYXRpb24nOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ0Vhc3kgQXJjaGl2ZSBjYW4gYmUgdXNlZCBvbiB0aGlzIHBhZ2UgaWYgbmVlZGVkLiBUbyBlbmFibGUgaXQsIGFkZCB7e0Vhc3kgQXJjaGl2ZXx0bz1bQXJjaGl2ZSBsb2NhdGlvbl19fSB0ZW1wbGF0ZSB0byB0aGlzIHBhZ2UuJyxcblx0XHRcdCd6aC1oYW5zJzpcblx0XHRcdFx0J+iLpemcgOimge+8jOatpOmhtemdouWPr+S7peWQr+eUqCBFYXN5IEFyY2hpdmXjgILoi6XopoHlnKjmraTpobXpnaLkvb/nlKggRWFzeSBBcmNoaXZl77yM6K+35Zyo6aG16Z2i5LiK5re75Yqg5qih5p2/IHt7RWFzeSBBcmNoaXZlfHRvPeWtmOaho+S9jee9rn1944CCJyxcblx0XHRcdCd6aC1oYW50Jzpcblx0XHRcdFx0J+iLpemcgOimge+8jOatpOmggemdouWPr+S7peWVn+eUqCBFYXN5IEFyY2hpdmXjgILoi6XopoHlnKjmraTpoIHpnaLkvb/nlKggRWFzeSBBcmNoaXZl77yM6KuL5Zyo6aCB6Z2i5LiK5re75Yqg5qih5p2/IHt7RWFzeSBBcmNoaXZlfHRvPeWtmOaqlOS9jee9rn1944CCJyxcblx0XHR9KSxcblx0XHQnU2VjdGlvbiAkMSc6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnU2VjdGlvbiAkMScsXG5cdFx0XHR6aDogJ+esrCAkMSDnq6DoioInLFxuXHRcdH0pLFxuXHRcdCcoJzogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICcgKCcsXG5cdFx0XHR6aDogJ++8iCcsXG5cdFx0fSksXG5cdFx0JyknOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJyknLFxuXHRcdFx0emg6ICfvvIknLFxuXHRcdH0pLFxuXHRcdCcuJzogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICcuJyxcblx0XHRcdHpoOiAn44CCJyxcblx0XHR9KSxcblx0XHQnOic6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnOiAnLFxuXHRcdFx0emg6ICfvvJonLFxuXHRcdH0pLFxuXHRcdFJlZnJlc2g6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnUmVmcmVzaCB0aGUgcGFnZScsXG5cdFx0XHQnemgtaGFucyc6ICfliLfmlrDlvZPliY3pobXpnaInLFxuXHRcdFx0J3poLWhhbnQnOiAn6YeN5paw6LyJ5YWl55W25YmN6aCBJyxcblx0XHR9KSxcblx0XHRSZWZyZXNoaW5nOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ1JlZnJlc2hpbmcuLi4nLFxuXHRcdFx0amE6ICflho3oqq3jgb/ovrzjgb/jgZfjgb7jgZkuLi4nLFxuXHRcdFx0J3poLWhhbnMnOiAn5Y2z5bCG5Yi35paw5b2T5YmN6aG16Z2i4oCm4oCmJyxcblx0XHRcdCd6aC1oYW50JzogJ+WNs+Wwh+mHjeaWsOi8ieWFpeeVtuWJjemggeKApuKApicsXG5cdFx0fSksXG5cdH07XG59O1xuXG5jb25zdCBpMThuTWVzc2FnZXMgPSBnZXRJMThuTWVzc2FnZXMoKTtcblxuY29uc3QgZ2V0TWVzc2FnZTogR2V0TWVzc2FnZXM8dHlwZW9mIGkxOG5NZXNzYWdlcz4gPSAoa2V5KSA9PiB7XG5cdHJldHVybiBpMThuTWVzc2FnZXNba2V5XSB8fCBrZXk7XG59O1xuXG5leHBvcnQge2dldE1lc3NhZ2V9O1xuIiwgImNvbnN0IHNhbml0aXplID0gKHN0cmluZzogc3RyaW5nKSA9PiB7XG5cdHJldHVybiBzdHJpbmdcblx0XHQucmVwbGFjZSgvJi9nLCAnJmFtcDsnKVxuXHRcdC5yZXBsYWNlKC88L2csICcmbHQ7Jylcblx0XHQucmVwbGFjZSgvPi9nLCAnJmd0OycpXG5cdFx0LnJlcGxhY2UoLycvZywgJyZhcG9zOycpXG5cdFx0LnJlcGxhY2UoL1wiL2csICcmcXVvdDsnKTtcbn07XG5cbmV4cG9ydCB7c2FuaXRpemV9O1xuIiwgImNvbnN0IGlmQXJjTG9jTm90QWxsb3dlZCA9IChhcmNMb2M6IHN0cmluZykgPT4ge1xuXHRjb25zdCB7d2dQYWdlTmFtZX0gPSBtdy5jb25maWcuZ2V0KCk7XG5cdGNvbnN0IHNvdXJjZVRpdGxlID0gbmV3IG13LlRpdGxlKHdnUGFnZU5hbWUpO1xuXHRjb25zdCBhcmNMb2NUaXRsZSA9IG5ldyBtdy5UaXRsZShhcmNMb2MpO1xuXG5cdGNvbnN0IGFyY0xvY05hbWVzcGFjZUlkID0gYXJjTG9jVGl0bGUuZ2V0TmFtZXNwYWNlSWQoKTtcblx0Y29uc3QgYXJjTG9jUGFnZU5hbWUgPSBhcmNMb2NUaXRsZS5nZXRNYWluKCk7XG5cdGNvbnN0IHNvdXJjZU5hbWVzcGFjZUlkID0gc291cmNlVGl0bGUuZ2V0TmFtZXNwYWNlSWQoKTtcblx0Y29uc3Qgc291cmNlUGFnZU5hbWUgPSBzb3VyY2VUaXRsZS5nZXRNYWluKCk7XG5cblx0aWYgKGFyY0xvY05hbWVzcGFjZUlkID09PSAwKSB7XG5cdFx0cmV0dXJuIHRydWU7XG5cdH1cblxuXHRpZiAoYXJjTG9jTmFtZXNwYWNlSWQgPT09IHNvdXJjZU5hbWVzcGFjZUlkICYmIGFyY0xvY1BhZ2VOYW1lID09PSBzb3VyY2VQYWdlTmFtZSkge1xuXHRcdHJldHVybiB0cnVlO1xuXHR9XG5cblx0cmV0dXJuIGZhbHNlO1xufTtcblxuY29uc3QgaXNJbkJsYWNrbGlzdCA9ICgpID0+IHtcblx0Y29uc3Qge3dnUGFnZU5hbWV9ID0gbXcuY29uZmlnLmdldCgpO1xuXG5cdGNvbnN0IGJsYWNrTGlzdFJlZ2V4QXJyID0gW1xuXHRcdC9eRmlsZTouKiQvLFxuXHRcdC9eTWVkaWFXaWtpOi4qJC8sXG5cdFx0L15Nb2R1bGU6LiokLyxcblx0XHQvXkNhdGVnb3J5Oi4qJC8sXG5cdFx0L15UZW1wbGF0ZTouKiQvLFxuXHRcdC9eU3BlY2lhbDouKiQvLFxuXHRcdC9eVXNlcjouKlxcLz8uKlxcLmpzJC8sXG5cdFx0L15Vc2VyOi4qXFwvPy4qXFwuY3NzJC8sXG5cdFx0L15Vc2VyOi4qXFwvPy4qXFwuanNvbiQvLFxuXHRdO1xuXG5cdGZvciAoY29uc3QgZWxlbWVudCBvZiBibGFja0xpc3RSZWdleEFycikge1xuXHRcdGlmIChlbGVtZW50LnRlc3Qod2dQYWdlTmFtZSkpIHtcblx0XHRcdHJldHVybiB0cnVlO1xuXHRcdH1cblx0fVxuXG5cdHJldHVybiBmYWxzZTtcbn07XG5cbmNvbnN0IGlzTm90QWxsb3dlZCA9ICgpID0+IHtcblx0Y29uc3Qge3dnTmFtZXNwYWNlTnVtYmVyLCB3Z1JlbGV2YW50VXNlck5hbWUsIHdnVXNlck5hbWV9ID0gbXcuY29uZmlnLmdldCgpO1xuXG5cdGlmICgod2dOYW1lc3BhY2VOdW1iZXIgPT09IDIgfHwgd2dOYW1lc3BhY2VOdW1iZXIgPT09IDMpICYmICEod2dSZWxldmFudFVzZXJOYW1lID09PSB3Z1VzZXJOYW1lKSkge1xuXHRcdHJldHVybiB0cnVlO1xuXHR9XG5cblx0cmV0dXJuIGZhbHNlO1xufTtcblxuY29uc3QgaXNOb3RTdXBwb3J0ZWQgPSAoKSA9PiB7XG5cdGNvbnN0IHt3Z0lzTWFpblBhZ2UsIHdnTmFtZXNwYWNlTnVtYmVyLCB3Z0N1clJldmlzaW9uSWQsIHdnUmV2aXNpb25JZH0gPSBtdy5jb25maWcuZ2V0KCk7XG5cblx0aWYgKHdnTmFtZXNwYWNlTnVtYmVyIDwgMCB8fCB3Z0N1clJldmlzaW9uSWQgLSB3Z1JldmlzaW9uSWQgIT09IDApIHtcblx0XHRyZXR1cm4gdHJ1ZTtcblx0fVxuXG5cdGlmICh3Z05hbWVzcGFjZU51bWJlciA9PT0gMCB8fCB3Z0lzTWFpblBhZ2UpIHtcblx0XHRyZXR1cm4gdHJ1ZTtcblx0fVxuXG5cdHJldHVybiBmYWxzZTtcbn07XG5cbmNvbnN0IGdldFNldHRpbmdzID0gKCkgPT4ge1xuXHRjb25zdCBzZXR0aW5ncyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5lYXN5X2FyY2hpdmVfZGF0YV9wb2ludF9jb2xsZWN0aW9uJykgYXMgSFRNTEVsZW1lbnQ7XG5cdGlmICghc2V0dGluZ3MpIHtcblx0XHRyZXR1cm4gbnVsbDtcblx0fVxuXG5cdGNvbnN0IHtkYXRhc2V0fSA9IHNldHRpbmdzO1xuXHRjb25zdCB7YXJjTGV2ZWwsIGFyY0xvYywgc2VjQXJjLCBzZWNEZWx9ID0gZGF0YXNldDtcblx0cmV0dXJuIHtcblx0XHRhcmNMZXZlbDogYXJjTGV2ZWwgPz8gJzInLFxuXHRcdGFyY0xvYzogYXJjTG9jID8/ICcnLFxuXHRcdHNlY0FyYzogc2VjQXJjID8/ICcxJyxcblx0XHRzZWNEZWw6IHNlY0RlbCA/PyAnMScsXG5cdH07XG59O1xuXG5leHBvcnQge2dldFNldHRpbmdzLCBpZkFyY0xvY05vdEFsbG93ZWQsIGlzSW5CbGFja2xpc3QsIGlzTm90QWxsb3dlZCwgaXNOb3RTdXBwb3J0ZWR9O1xuIiwgImltcG9ydCB7QXJjTG9jTm90QWxsb3dlZCwgRW5hYmxlZCwgSW5CbGFja0xpc3QsIE5vQXJjTG9jLCBOb3RBbGxvd2VkfSBmcm9tICcuL21vZHVsZXMvY29tcG9uZW50cy9yZWFjdCc7XG5pbXBvcnQge2dldFNldHRpbmdzLCBpZkFyY0xvY05vdEFsbG93ZWQsIGlzSW5CbGFja2xpc3QsIGlzTm90QWxsb3dlZCwgaXNOb3RTdXBwb3J0ZWR9IGZyb20gJy4vbW9kdWxlcy91dGlsL2dldFNldHRpbmdzJztcbmltcG9ydCBSZWFjdCBmcm9tICdleHQuZ2FkZ2V0LkpTWCc7XG5pbXBvcnQge2FkZExpbmtzfSBmcm9tICcuL21vZHVsZXMvYWRkTGlua3MnO1xuaW1wb3J0IHthcHBlbmRGb290ZXJOb3RpY2V9IGZyb20gJy4vbW9kdWxlcy9hcHBlbmRGb290ZXJOb3RpY2UnO1xuXG4oZnVuY3Rpb24gZWFzeUFyY2hpdmUoKSB7XG5cdGNvbnN0IG5vdFN1cHBvcnRlZCA9IGlzTm90U3VwcG9ydGVkKCk7XG5cdGlmIChub3RTdXBwb3J0ZWQpIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRjb25zdCBpbkJsYWNrbGlzdCA9IGlzSW5CbGFja2xpc3QoKTtcblx0aWYgKGluQmxhY2tsaXN0KSB7XG5cdFx0YXBwZW5kRm9vdGVyTm90aWNlKDxJbkJsYWNrTGlzdCAvPik7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0Y29uc3Qgbm90QWxsb3dlZCA9IGlzTm90QWxsb3dlZCgpO1xuXHRpZiAobm90QWxsb3dlZCkge1xuXHRcdGFwcGVuZEZvb3Rlck5vdGljZSg8Tm90QWxsb3dlZCAvPik7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0Y29uc3Qgc2V0dGluZ3MgPSBnZXRTZXR0aW5ncygpO1xuXHRpZiAoIXNldHRpbmdzKSB7XG5cdFx0YXBwZW5kRm9vdGVyTm90aWNlKDxOb0FyY0xvYyAvPik7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0Y29uc3Qge2FyY0xvY30gPSBzZXR0aW5ncztcblx0aWYgKCFhcmNMb2MpIHtcblx0XHRhcHBlbmRGb290ZXJOb3RpY2UoPE5vQXJjTG9jIC8+KTtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRjb25zdCBhcmNMb2NOb3RBbGxvd2VkID0gaWZBcmNMb2NOb3RBbGxvd2VkKGFyY0xvYyk7XG5cdGlmIChhcmNMb2NOb3RBbGxvd2VkKSB7XG5cdFx0YXBwZW5kRm9vdGVyTm90aWNlKDxBcmNMb2NOb3RBbGxvd2VkIGFyY0xvYz17YXJjTG9jfSAvPik7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0YXBwZW5kRm9vdGVyTm90aWNlKDxFbmFibGVkIGFyY0xvYz17YXJjTG9jfSAvPik7XG5cblx0dm9pZCBhZGRMaW5rcyhzZXR0aW5ncyk7XG59KSgpO1xuIiwgImltcG9ydCAqIGFzIE9QVElPTlMgZnJvbSAnLi4vLi4vb3B0aW9ucy5qc29uJztcbmltcG9ydCB7aW5pdE13QXBpfSBmcm9tICdleHQuZ2FkZ2V0LlV0aWwnO1xuXG5jb25zdCBhcGk6IG13LkFwaSA9IGluaXRNd0FwaShgRWFzeUFyY2hpdmUvJHtPUFRJT05TLnZlcnNpb259YCk7XG5cbmV4cG9ydCB7YXBpfTtcbiIsICJpbXBvcnQge2FwaX0gZnJvbSAnLi9hcGknO1xuXG5jb25zdCBnZXRTZWN0aW9ucyA9IGFzeW5jICh0aXRsZTogc3RyaW5nKSA9PiB7XG5cdGNvbnN0IHBhcmFtczogQXBpUGFyc2VQYXJhbXMgPSB7XG5cdFx0YWN0aW9uOiAncGFyc2UnLFxuXHRcdGZvcm1hdDogJ2pzb24nLFxuXHRcdGZvcm1hdHZlcnNpb246ICcyJyxcblx0XHRwYWdlOiB0aXRsZSxcblx0XHRwcm9wOiAnc2VjdGlvbnMnLFxuXHR9O1xuXG5cdGNvbnN0IHtwYXJzZX0gPSBhd2FpdCBhcGkuZ2V0KHBhcmFtcyk7XG5cdGNvbnN0IHtzZWN0aW9uc30gPSBwYXJzZSBhcyB7XG5cdFx0c2VjdGlvbnM6IHtcblx0XHRcdGxldmVsOiBzdHJpbmc7XG5cdFx0XHRpbmRleDogc3RyaW5nO1xuXHRcdFx0YW5jaG9yOiBzdHJpbmc7XG5cdFx0fVtdO1xuXHR9O1xuXG5cdGNvbnN0IHNlY3Rpb25zVG9BcmNoaXZlID0gW107XG5cblx0Zm9yIChjb25zdCBzZWN0aW9uIG9mIHNlY3Rpb25zKSB7XG5cdFx0Y29uc3Qge2xldmVsLCBpbmRleCwgYW5jaG9yfSA9IHNlY3Rpb247XG5cblx0XHRpZiAoaW5kZXguc3RhcnRzV2l0aCgnVC0nKSkge1xuXHRcdFx0Y29udGludWU7XG5cdFx0fVxuXG5cdFx0c2VjdGlvbnNUb0FyY2hpdmVbc2VjdGlvbnNUb0FyY2hpdmUubGVuZ3RoXSA9IHtcblx0XHRcdGxldmVsLFxuXHRcdFx0aW5kZXgsXG5cdFx0XHRhbmNob3IsXG5cdFx0fTtcblx0fVxuXG5cdHJldHVybiBzZWN0aW9uc1RvQXJjaGl2ZTtcbn07XG5cbmNvbnN0IGdldFNlY3Rpb25Db250ZW50ID0gYXN5bmMgKHt0aXRsZSwgc2VjdGlvbn06IHt0aXRsZTogc3RyaW5nOyBzZWN0aW9uOiBzdHJpbmd9KTogUHJvbWlzZTxzdHJpbmcgfCBudWxsPiA9PiB7XG5cdGNvbnN0IHBhcmFtczogQXBpUXVlcnlSZXZpc2lvbnNQYXJhbXMgPSB7XG5cdFx0YWN0aW9uOiAncXVlcnknLFxuXHRcdHByb3A6ICdyZXZpc2lvbnMnLFxuXHRcdHJ2cHJvcDogJ2NvbnRlbnQnLFxuXHRcdGZvcm1hdDogJ2pzb24nLFxuXHRcdGZvcm1hdHZlcnNpb246ICcyJyxcblx0XHR0aXRsZXM6IHRpdGxlLFxuXHRcdHJ2c2VjdGlvbjogc2VjdGlvbixcblx0XHRydnNsb3RzOiAnbWFpbicsXG5cdH07XG5cblx0Y29uc3QgcmVzcG9uc2UgPSBhd2FpdCBhcGkuZ2V0KHBhcmFtcyk7XG5cblx0cmV0dXJuIChyZXNwb25zZVsncXVlcnknXS5wYWdlc1swXT8ucmV2aXNpb25zPy5bMF0uc2xvdHMubWFpbi5jb250ZW50IGFzIHN0cmluZykgPz8gbnVsbDtcbn07XG5cbmV4cG9ydCB7Z2V0U2VjdGlvbnMsIGdldFNlY3Rpb25Db250ZW50fTtcbiIsICJpbXBvcnQge2dldFNlY3Rpb25Db250ZW50LCBnZXRTZWN0aW9uc30gZnJvbSAnLi9nZXRTZWN0aW9uJztcbmltcG9ydCB7YXBpfSBmcm9tICcuL2FwaSc7XG5pbXBvcnQge2dldE1lc3NhZ2V9IGZyb20gJy4uL2kxOG4nO1xuXG5jb25zdCBpc1BhZ2VFeGlzdCA9IGFzeW5jIChhcmNoaXZlVG86IHN0cmluZykgPT4ge1xuXHRjb25zdCBwYXJhbXM6IEFwaVF1ZXJ5SW5mb1BhcmFtcyA9IHtcblx0XHRhY3Rpb246ICdxdWVyeScsXG5cdFx0Zm9ybWF0OiAnanNvbicsXG5cdFx0Zm9ybWF0dmVyc2lvbjogJzInLFxuXHRcdHByb3A6ICdpbmZvJyxcblx0XHR0aXRsZXM6IGFyY2hpdmVUbyxcblx0fTtcblxuXHRjb25zdCB7cXVlcnl9ID0gYXdhaXQgYXBpLmdldChwYXJhbXMpO1xuXG5cdGlmIChxdWVyeS5wYWdlc1swXT8ubWlzc2luZykge1xuXHRcdHJldHVybiBmYWxzZTtcblx0fVxuXG5cdHJldHVybiB0cnVlO1xufTtcblxuY29uc3QgaXNTZWN0aW9uRXhpc3QgPSBhc3luYyAoe2luZGV4LCBhbmNob3J9OiB7aW5kZXg6IHN0cmluZzsgYW5jaG9yOiBzdHJpbmd9KSA9PiB7XG5cdGNvbnN0IHt3Z1BhZ2VOYW1lfSA9IG13LmNvbmZpZy5nZXQoKTtcblx0Y29uc3Qgc2VjdGlvbnMgPSBhd2FpdCBnZXRTZWN0aW9ucyh3Z1BhZ2VOYW1lKTtcblxuXHRsZXQgaXNFeGlzdCA9IGZhbHNlO1xuXHRmb3IgKGNvbnN0IHNlY3Rpb24gb2Ygc2VjdGlvbnMpIHtcblx0XHRpZiAoaW5kZXggPT09IHNlY3Rpb24uaW5kZXggJiYgYW5jaG9yID09PSBzZWN0aW9uLmFuY2hvcikge1xuXHRcdFx0aXNFeGlzdCA9IHRydWU7XG5cdFx0fVxuXHR9XG5cdHJldHVybiBpc0V4aXN0O1xufTtcblxuY29uc3QgcmVtb3ZlU2VjdGlvbiA9IGFzeW5jICh7aW5kZXgsIGFuY2hvciwgc3VtbWFyeX06IHtpbmRleDogc3RyaW5nOyBhbmNob3I6IHN0cmluZzsgc3VtbWFyeT86IHN0cmluZ30pID0+IHtcblx0Y29uc3Qge3dnUGFnZU5hbWV9ID0gbXcuY29uZmlnLmdldCgpO1xuXHRjb25zdCBpc0V4aXN0ID0gYXdhaXQgaXNTZWN0aW9uRXhpc3Qoe2luZGV4LCBhbmNob3J9KTtcblxuXHRpZiAoaXNFeGlzdCAhPT0gdHJ1ZSkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGNvbnN0IGNvbnRlbnQgPSBhd2FpdCBnZXRTZWN0aW9uQ29udGVudCh7dGl0bGU6IHdnUGFnZU5hbWUsIHNlY3Rpb246IGluZGV4fSk7XG5cblx0aWYgKGNvbnRlbnQgPT09IG51bGwpIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRhd2FpdCBhcGkuZWRpdCh3Z1BhZ2VOYW1lLCAoKSA9PiB7XG5cdFx0cmV0dXJuIHtcblx0XHRcdHNlY3Rpb246IGluZGV4LFxuXHRcdFx0dGV4dDogJycsXG5cdFx0XHRzdW1tYXJ5OiBzdW1tYXJ5ID8/IGdldE1lc3NhZ2UoJ0RlbGV0ZSBzdW1tYXJ5JyksXG5cdFx0XHRtaW5vcjogdHJ1ZSxcblx0XHR9O1xuXHR9KTtcbn07XG5cbmNvbnN0IGFyY2hpdmVTZWN0aW9uID0gYXN5bmMgKHtpbmRleCwgYW5jaG9yLCBhcmNoaXZlVG99OiB7aW5kZXg6IHN0cmluZzsgYW5jaG9yOiBzdHJpbmc7IGFyY2hpdmVUbzogc3RyaW5nfSkgPT4ge1xuXHRjb25zdCB7d2dQYWdlTmFtZX0gPSBtdy5jb25maWcuZ2V0KCk7XG5cdGNvbnN0IGlzRXhpc3QgPSBhd2FpdCBpc1NlY3Rpb25FeGlzdCh7aW5kZXgsIGFuY2hvcn0pO1xuXG5cdGlmIChpc0V4aXN0ICE9PSB0cnVlKSB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0Y29uc3QgY29udGVudCA9IGF3YWl0IGdldFNlY3Rpb25Db250ZW50KHt0aXRsZTogd2dQYWdlTmFtZSwgc2VjdGlvbjogaW5kZXh9KTtcblxuXHRpZiAoY29udGVudCA9PT0gbnVsbCkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGNvbnN0IHBhZ2VFeGlzdCA9IGF3YWl0IGlzUGFnZUV4aXN0KGFyY2hpdmVUbyk7XG5cdGlmICghcGFnZUV4aXN0KSB7XG5cdFx0YXdhaXQgYXBpLmNyZWF0ZShcblx0XHRcdGFyY2hpdmVUbyxcblx0XHRcdHtcblx0XHRcdFx0c3VtbWFyeTogZ2V0TWVzc2FnZSgnQ3JlYXRlIHN1bW1hcnknKSxcblx0XHRcdFx0bWlub3I6IHRydWUsXG5cdFx0XHR9LFxuXHRcdFx0J3t7dGFsa2FyY2hpdmV9fSdcblx0XHQpO1xuXHR9XG5cblx0YXdhaXQgYXBpLmVkaXQoYXJjaGl2ZVRvLCAoKSA9PiB7XG5cdFx0cmV0dXJuIHtcblx0XHRcdGFwcGVuZHRleHQ6IGBcXG5cXG4ke2NvbnRlbnR9YCxcblx0XHRcdHN1bW1hcnk6IGdldE1lc3NhZ2UoJ0FyY2hpdmUgc3VtbWFyeScpLFxuXHRcdFx0bWlub3I6IHRydWUsXG5cdFx0fTtcblx0fSk7XG5cblx0YXdhaXQgcmVtb3ZlU2VjdGlvbih7aW5kZXgsIGFuY2hvciwgc3VtbWFyeTogZ2V0TWVzc2FnZSgnQXJjaGl2ZSBzdW1tYXJ5Jyl9KTtcbn07XG5cbmV4cG9ydCB7aXNTZWN0aW9uRXhpc3QsIGFyY2hpdmVTZWN0aW9uLCByZW1vdmVTZWN0aW9ufTtcbiIsICJpbXBvcnQge2dldE1lc3NhZ2V9IGZyb20gJy4uL2kxOG4nO1xuXG5jb25zdCBnZXRBcmNoaXZpbmdNZXNzYWdlID0gKGluZGV4Tm86IHN0cmluZykgPT4ge1xuXHRyZXR1cm4gZ2V0TWVzc2FnZSgnQXJjaGl2aW5nJykgKyBnZXRNZXNzYWdlKCc6JykgKyBnZXRNZXNzYWdlKCdTZWN0aW9uICQxJykucmVwbGFjZSgnJDEnLCBpbmRleE5vKTtcbn07XG5cbmNvbnN0IGdldEFyY2hpdmVkTWVzc2FnZSA9IChpbmRleE5vOiBzdHJpbmcpID0+IHtcblx0cmV0dXJuIGdldE1lc3NhZ2UoJ0FyY2hpdmVkJykgKyBnZXRNZXNzYWdlKCc6JykgKyBnZXRNZXNzYWdlKCdTZWN0aW9uICQxJykucmVwbGFjZSgnJDEnLCBpbmRleE5vKTtcbn07XG5cbmNvbnN0IGdldERlbGV0aW5nTWVzc2FnZSA9IChpbmRleE5vOiBzdHJpbmcpID0+IHtcblx0cmV0dXJuIGdldE1lc3NhZ2UoJ0RlbGV0aW5nJykgKyBnZXRNZXNzYWdlKCc6JykgKyBnZXRNZXNzYWdlKCdTZWN0aW9uICQxJykucmVwbGFjZSgnJDEnLCBpbmRleE5vKTtcbn07XG5cbmNvbnN0IGdldERlbGV0ZWRNZXNzYWdlID0gKGluZGV4Tm86IHN0cmluZykgPT4ge1xuXHRyZXR1cm4gZ2V0TWVzc2FnZSgnRGVsZXRlZCcpICsgZ2V0TWVzc2FnZSgnOicpICsgZ2V0TWVzc2FnZSgnU2VjdGlvbiAkMScpLnJlcGxhY2UoJyQxJywgaW5kZXhObyk7XG59O1xuXG5leHBvcnQge2dldEFyY2hpdmluZ01lc3NhZ2UsIGdldEFyY2hpdmVkTWVzc2FnZSwgZ2V0RGVsZXRpbmdNZXNzYWdlLCBnZXREZWxldGVkTWVzc2FnZX07XG4iLCAiaW1wb3J0IHthcmNoaXZlU2VjdGlvbiwgcmVtb3ZlU2VjdGlvbn0gZnJvbSAnLi9lZGl0U2VjdGlvbic7XG5pbXBvcnQge2dldEFyY2hpdmVkTWVzc2FnZSwgZ2V0QXJjaGl2aW5nTWVzc2FnZSwgZ2V0RGVsZXRlZE1lc3NhZ2UsIGdldERlbGV0aW5nTWVzc2FnZX0gZnJvbSAnLi9nZXRNZXNzYWdlJztcbmltcG9ydCBSZWFjdCBmcm9tICdleHQuZ2FkZ2V0LkpTWCc7XG5pbXBvcnQge2dldE1lc3NhZ2V9IGZyb20gJy4uL2kxOG4nO1xuaW1wb3J0IHtyZWZyZXNofSBmcm9tICcuL3JlZnJlc2hQYWdlJztcbmltcG9ydCB7dG9hc3RpZnl9IGZyb20gJ2V4dC5nYWRnZXQuVG9hc3RpZnknO1xuXG5pbnRlcmZhY2UgT25DbGlja1Byb3BzIHtcblx0c2VjdGlvbklkU3BhbnM6IEVsZW1lbnRbXTtcblx0bWVzc2FnZUNoYW5uZWw6IEJyb2FkY2FzdENoYW5uZWw7XG5cdHJlZnJlc2hDaGFubmVsOiBCcm9hZGNhc3RDaGFubmVsO1xuXHRpbmRleE5vOiBzdHJpbmc7XG5cdGFuY2hvcjogc3RyaW5nO1xuXHR0b2FzdGlmeUluc3RhbmNlOiBUb2FzdGlmeUluc3RhbmNlO1xufVxuXG50eXBlIEFyY2hpdmVPbkNsaWNrUHJvcHMgPSBPbkNsaWNrUHJvcHMgJiB7YXJjaGl2ZVRvOiBzdHJpbmd9O1xudHlwZSBSZW1vdmVPbkNsaWNrUHJvcHMgPSBPbkNsaWNrUHJvcHM7XG5cbmNvbnN0IGFyY2hpdmVPbkNsaWNrID0gYXN5bmMgKFxuXHRldmVudDogRXZlbnQsXG5cdHtzZWN0aW9uSWRTcGFucywgbWVzc2FnZUNoYW5uZWwsIHJlZnJlc2hDaGFubmVsLCBpbmRleE5vLCBhbmNob3IsIHRvYXN0aWZ5SW5zdGFuY2UsIGFyY2hpdmVUb306IEFyY2hpdmVPbkNsaWNrUHJvcHNcbikgPT4ge1xuXHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXHRjb25zdCBwYXJlbnRFbGVtZW50ID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCk/LnBhcmVudEVsZW1lbnQ7XG5cdGlmICghcGFyZW50RWxlbWVudCkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdHBhcmVudEVsZW1lbnQucmVwbGFjZUNoaWxkcmVuKDxzcGFuPntnZXRNZXNzYWdlKCdBcmNoaXZpbmcnKX08L3NwYW4+KTtcblxuXHRmb3IgKGNvbnN0IHNwYW4gb2Ygc2VjdGlvbklkU3BhbnMpIHtcblx0XHRzcGFuLnJlbW92ZSgpO1xuXHR9XG5cblx0Y29uc3QgbWVzc2FnZTEgPSBnZXRBcmNoaXZpbmdNZXNzYWdlKGluZGV4Tm8pO1xuXHRtZXNzYWdlQ2hhbm5lbC5wb3N0TWVzc2FnZShtZXNzYWdlMSk7XG5cblx0dG9hc3RpZnlJbnN0YW5jZSB8fD0ge1xuXHRcdGhpZGVUb2FzdDogKCkgPT4ge30sXG5cdH07XG5cdHRvYXN0aWZ5SW5zdGFuY2UuaGlkZVRvYXN0KCk7XG5cdHRvYXN0aWZ5SW5zdGFuY2UgPSB0b2FzdGlmeShcblx0XHR7XG5cdFx0XHR0ZXh0OiBtZXNzYWdlMSxcblx0XHRcdGNsb3NlOiB0cnVlLFxuXHRcdFx0ZHVyYXRpb246IC0xLFxuXHRcdH0sXG5cdFx0J2luZm8nXG5cdCk7XG5cblx0YXdhaXQgYXJjaGl2ZVNlY3Rpb24oe2luZGV4OiBpbmRleE5vLCBhbmNob3IsIGFyY2hpdmVUb30pO1xuXG5cdHBhcmVudEVsZW1lbnQucmVwbGFjZUNoaWxkcmVuKDxzcGFuPntnZXRNZXNzYWdlKCdBcmNoaXZlZCcpfTwvc3Bhbj4pO1xuXG5cdGNvbnN0IG1lc3NhZ2UgPSBnZXRBcmNoaXZlZE1lc3NhZ2UoaW5kZXhObyk7XG5cdG1lc3NhZ2VDaGFubmVsLnBvc3RNZXNzYWdlKG1lc3NhZ2UpO1xuXG5cdHRvYXN0aWZ5SW5zdGFuY2UuaGlkZVRvYXN0KCk7XG5cdHRvYXN0aWZ5SW5zdGFuY2UgPSB0b2FzdGlmeShcblx0XHR7XG5cdFx0XHR0ZXh0OiBtZXNzYWdlLFxuXHRcdFx0Y2xvc2U6IHRydWUsXG5cdFx0XHRkdXJhdGlvbjogLTEsXG5cdFx0fSxcblx0XHQnaW5mbydcblx0KTtcblxuXHRtZXNzYWdlQ2hhbm5lbC5jbG9zZSgpO1xuXG5cdHJlZnJlc2hDaGFubmVsLnBvc3RNZXNzYWdlKCdSZWZyZXNoJyk7XG5cdHJlZnJlc2goe3RvYXN0aWZ5SW5zdGFuY2V9KTtcbn07XG5jb25zdCByZW1vdmVPbkNsaWNrID0gYXN5bmMgKFxuXHRldmVudDogRXZlbnQsXG5cdHtzZWN0aW9uSWRTcGFucywgbWVzc2FnZUNoYW5uZWwsIHJlZnJlc2hDaGFubmVsLCBpbmRleE5vLCBhbmNob3IsIHRvYXN0aWZ5SW5zdGFuY2V9OiBSZW1vdmVPbkNsaWNrUHJvcHNcbikgPT4ge1xuXHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXHRjb25zdCBwYXJlbnRFbGVtZW50ID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCk/LnBhcmVudEVsZW1lbnQ7XG5cdGlmICghcGFyZW50RWxlbWVudCkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdHBhcmVudEVsZW1lbnQucmVwbGFjZUNoaWxkcmVuKDxzcGFuPntnZXRNZXNzYWdlKCdEZWxldGluZycpfTwvc3Bhbj4pO1xuXG5cdGZvciAoY29uc3Qgc3BhbiBvZiBzZWN0aW9uSWRTcGFucykge1xuXHRcdHNwYW4ucmVtb3ZlKCk7XG5cdH1cblxuXHRsZXQgbWVzc2FnZSA9IGdldERlbGV0aW5nTWVzc2FnZShpbmRleE5vKTtcblx0bWVzc2FnZUNoYW5uZWwucG9zdE1lc3NhZ2UobWVzc2FnZSk7XG5cblx0dG9hc3RpZnlJbnN0YW5jZSB8fD0ge1xuXHRcdGhpZGVUb2FzdDogKCkgPT4ge30sXG5cdH07XG5cdHRvYXN0aWZ5SW5zdGFuY2UuaGlkZVRvYXN0KCk7XG5cdHRvYXN0aWZ5SW5zdGFuY2UgPSB0b2FzdGlmeShcblx0XHR7XG5cdFx0XHR0ZXh0OiBtZXNzYWdlLFxuXHRcdFx0Y2xvc2U6IHRydWUsXG5cdFx0XHRkdXJhdGlvbjogLTEsXG5cdFx0fSxcblx0XHQnaW5mbydcblx0KTtcblxuXHRhd2FpdCByZW1vdmVTZWN0aW9uKHtpbmRleDogaW5kZXhObywgYW5jaG9yfSk7XG5cblx0cGFyZW50RWxlbWVudC5yZXBsYWNlQ2hpbGRyZW4oPHNwYW4+e2dldE1lc3NhZ2UoJ0RlbGV0ZWQnKX08L3NwYW4+KTtcblxuXHRtZXNzYWdlID0gZ2V0RGVsZXRlZE1lc3NhZ2UoaW5kZXhObyk7XG5cdG1lc3NhZ2VDaGFubmVsLnBvc3RNZXNzYWdlKG1lc3NhZ2UpO1xuXG5cdHRvYXN0aWZ5SW5zdGFuY2UuaGlkZVRvYXN0KCk7XG5cdHRvYXN0aWZ5SW5zdGFuY2UgPSB0b2FzdGlmeShcblx0XHR7XG5cdFx0XHR0ZXh0OiBtZXNzYWdlLFxuXHRcdFx0Y2xvc2U6IHRydWUsXG5cdFx0XHRkdXJhdGlvbjogLTEsXG5cdFx0fSxcblx0XHQnaW5mbydcblx0KTtcblxuXHRtZXNzYWdlQ2hhbm5lbC5jbG9zZSgpO1xuXG5cdHJlZnJlc2hDaGFubmVsLnBvc3RNZXNzYWdlKCdSZWZyZXNoJyk7XG5cdHJlZnJlc2goe3RvYXN0aWZ5SW5zdGFuY2V9KTtcbn07XG5cbmV4cG9ydCB7YXJjaGl2ZU9uQ2xpY2ssIHJlbW92ZU9uQ2xpY2t9O1xuIiwgImltcG9ydCB7Z2V0TWVzc2FnZX0gZnJvbSAnLi4vaTE4bic7XG5pbXBvcnQge3RvYXN0aWZ5fSBmcm9tICdleHQuZ2FkZ2V0LlRvYXN0aWZ5JztcblxuY29uc3Qge3dnU2NyaXB0fSA9IG13LmNvbmZpZy5nZXQoKTtcblxuY29uc3QgcmVmcmVzaCA9ICh7XG5cdHRhcmdldFBhZ2UsXG5cdHRvYXN0aWZ5SW5zdGFuY2UsXG59OiB7dGFyZ2V0UGFnZT86IHN0cmluZzsgdG9hc3RpZnlJbnN0YW5jZT86IFRvYXN0aWZ5SW5zdGFuY2V9ID0ge30pOiB2b2lkID0+IHtcblx0dG9hc3RpZnlJbnN0YW5jZSB8fD0ge1xuXHRcdGhpZGVUb2FzdDogKCkgPT4ge30sXG5cdH07XG5cdHRvYXN0aWZ5SW5zdGFuY2UuaGlkZVRvYXN0KCk7XG5cdHRvYXN0aWZ5SW5zdGFuY2UgPSB0b2FzdGlmeShcblx0XHR7XG5cdFx0XHR0ZXh0OiBnZXRNZXNzYWdlKCdSZWZyZXNoaW5nJyksXG5cdFx0XHRkdXJhdGlvbjogLTEsXG5cdFx0fSxcblx0XHQnc3VjY2Vzcydcblx0KTtcblxuXHRjb25zdCB7d2dQYWdlTmFtZX0gPSBtdy5jb25maWcuZ2V0KCk7XG5cdGxvY2F0aW9uLnJlcGxhY2UoXG5cdFx0bXcudXRpbC5nZXRVcmwod2dTY3JpcHQsIHtcblx0XHRcdHRpdGxlOiB0YXJnZXRQYWdlID8/IHdnUGFnZU5hbWUsXG5cdFx0fSlcblx0KTtcbn07XG5cbmV4cG9ydCB7cmVmcmVzaH07XG4iLCAiaW1wb3J0IHtPbkNsaWNrLCBQaXBlLCBTZWN0aW9uSUR9IGZyb20gJy4vcmVhY3QnO1xuaW1wb3J0IHthcmNoaXZlT25DbGljaywgcmVtb3ZlT25DbGlja30gZnJvbSAnLi4vdXRpbC9vbkNsaWNrJztcbmltcG9ydCBSZWFjdCBmcm9tICdleHQuZ2FkZ2V0LkpTWCc7XG5pbXBvcnQge2dldE1lc3NhZ2V9IGZyb20gJy4uL2kxOG4nO1xuXG5pbnRlcmZhY2UgQXJjaGl2ZVNlY3Rpb25MaW5rUHJvcHMge1xuXHRzZWN0aW9uSWRTcGFuczogRWxlbWVudFtdO1xuXHRtZXNzYWdlQ2hhbm5lbDogQnJvYWRjYXN0Q2hhbm5lbDtcblx0cmVmcmVzaENoYW5uZWw6IEJyb2FkY2FzdENoYW5uZWw7XG5cdGluZGV4Tm86IHN0cmluZztcblx0YW5jaG9yOiBzdHJpbmc7XG5cdHRvYXN0aWZ5SW5zdGFuY2U6IFRvYXN0aWZ5SW5zdGFuY2U7XG5cdGFyY2hpdmVUbzogc3RyaW5nO1xufVxuXG5jb25zdCBBcmNoaXZlU2VjdGlvbkxpbmsgPSAoe1xuXHRzZWN0aW9uSWRTcGFucyxcblx0bWVzc2FnZUNoYW5uZWwsXG5cdHJlZnJlc2hDaGFubmVsLFxuXHRpbmRleE5vLFxuXHRhbmNob3IsXG5cdGFyY2hpdmVUbyxcblx0dG9hc3RpZnlJbnN0YW5jZSxcbn06IEFyY2hpdmVTZWN0aW9uTGlua1Byb3BzKSA9PiAoXG5cdDxPbkNsaWNrXG5cdFx0Y2xhc3NOYW1lPXsnYXJjaGl2ZSd9XG5cdFx0b25DbGljaz17KGV2ZW50OiBFdmVudCkgPT4ge1xuXHRcdFx0dm9pZCBhcmNoaXZlT25DbGljayhldmVudCwge1xuXHRcdFx0XHRzZWN0aW9uSWRTcGFucyxcblx0XHRcdFx0bWVzc2FnZUNoYW5uZWwsXG5cdFx0XHRcdHJlZnJlc2hDaGFubmVsLFxuXHRcdFx0XHRpbmRleE5vLFxuXHRcdFx0XHRhbmNob3IsXG5cdFx0XHRcdGFyY2hpdmVUbyxcblx0XHRcdFx0dG9hc3RpZnlJbnN0YW5jZSxcblx0XHRcdH0pO1xuXHRcdH19XG5cdFx0dGV4dENvbnRlbnQ9e2dldE1lc3NhZ2UoJ0FyY2hpdmUnKX1cblx0Lz5cbik7XG5cbmludGVyZmFjZSBSZW1vdmVTZWN0aW9uTGlua1Byb3BzIHtcblx0c2VjdGlvbklkU3BhbnM6IEVsZW1lbnRbXTtcblx0bWVzc2FnZUNoYW5uZWw6IEJyb2FkY2FzdENoYW5uZWw7XG5cdHJlZnJlc2hDaGFubmVsOiBCcm9hZGNhc3RDaGFubmVsO1xuXHRpbmRleE5vOiBzdHJpbmc7XG5cdGFuY2hvcjogc3RyaW5nO1xuXHR0b2FzdGlmeUluc3RhbmNlOiBUb2FzdGlmeUluc3RhbmNlO1xufVxuXG5jb25zdCBSZW1vdmVTZWN0aW9uTGluayA9ICh7XG5cdHNlY3Rpb25JZFNwYW5zLFxuXHRtZXNzYWdlQ2hhbm5lbCxcblx0cmVmcmVzaENoYW5uZWwsXG5cdGluZGV4Tm8sXG5cdGFuY2hvcixcblx0dG9hc3RpZnlJbnN0YW5jZSxcbn06IFJlbW92ZVNlY3Rpb25MaW5rUHJvcHMpID0+IChcblx0PE9uQ2xpY2tcblx0XHRjbGFzc05hbWU9eydkZWxldGUnfVxuXHRcdG9uQ2xpY2s9eyhldmVudCkgPT4ge1xuXHRcdFx0dm9pZCByZW1vdmVPbkNsaWNrKGV2ZW50LCB7XG5cdFx0XHRcdHNlY3Rpb25JZFNwYW5zLFxuXHRcdFx0XHRtZXNzYWdlQ2hhbm5lbCxcblx0XHRcdFx0cmVmcmVzaENoYW5uZWwsXG5cdFx0XHRcdGluZGV4Tm8sXG5cdFx0XHRcdGFuY2hvcixcblx0XHRcdFx0dG9hc3RpZnlJbnN0YW5jZSxcblx0XHRcdH0pO1xuXHRcdH19XG5cdFx0dGV4dENvbnRlbnQ9e2dldE1lc3NhZ2UoJ0RlbGV0ZScpfVxuXHQvPlxuKTtcblxuaW50ZXJmYWNlIEFyY2hpdmVBbmREZWxldGVTZWN0aW9uTGlua1Byb3BzIHtcblx0c2VjdGlvbklkU3BhbnM6IEVsZW1lbnRbXTtcblx0bWVzc2FnZUNoYW5uZWw6IEJyb2FkY2FzdENoYW5uZWw7XG5cdHJlZnJlc2hDaGFubmVsOiBCcm9hZGNhc3RDaGFubmVsO1xuXHRpbmRleE5vOiBzdHJpbmc7XG5cdGFuY2hvcjogc3RyaW5nO1xuXHR0b2FzdGlmeUluc3RhbmNlOiBUb2FzdGlmeUluc3RhbmNlO1xuXHRzZWNBcmM6IHN0cmluZztcblx0c2VjRGVsOiBzdHJpbmc7XG5cdGFyY0xvYzogc3RyaW5nO1xufVxuXG5jb25zdCBBcmNoaXZlQW5kRGVsZXRlU2VjdGlvbkxpbmsgPSAoe1xuXHRzZWN0aW9uSWRTcGFucyxcblx0bWVzc2FnZUNoYW5uZWwsXG5cdHJlZnJlc2hDaGFubmVsLFxuXHRpbmRleE5vLFxuXHRhbmNob3IsXG5cdHRvYXN0aWZ5SW5zdGFuY2UsXG5cdHNlY0FyYyxcblx0c2VjRGVsLFxuXHRhcmNMb2MsXG59OiBBcmNoaXZlQW5kRGVsZXRlU2VjdGlvbkxpbmtQcm9wcykgPT4gKFxuXHQ8U2VjdGlvbklEPlxuXHRcdHtzZWNBcmMgPT09ICcxJyA/IChcblx0XHRcdDxBcmNoaXZlU2VjdGlvbkxpbmtcblx0XHRcdFx0c2VjdGlvbklkU3BhbnM9e3NlY3Rpb25JZFNwYW5zfVxuXHRcdFx0XHRtZXNzYWdlQ2hhbm5lbD17bWVzc2FnZUNoYW5uZWx9XG5cdFx0XHRcdHJlZnJlc2hDaGFubmVsPXtyZWZyZXNoQ2hhbm5lbH1cblx0XHRcdFx0aW5kZXhObz17aW5kZXhOb31cblx0XHRcdFx0YW5jaG9yPXthbmNob3J9XG5cdFx0XHRcdHRvYXN0aWZ5SW5zdGFuY2U9e3RvYXN0aWZ5SW5zdGFuY2V9XG5cdFx0XHRcdGFyY2hpdmVUbz17YXJjTG9jfVxuXHRcdFx0Lz5cblx0XHQpIDogKFxuXHRcdFx0PD48Lz5cblx0XHQpfVxuXHRcdHtzZWNBcmMgPT09ICcxJyAmJiBzZWNEZWwgPT09ICcxJyA/IDxQaXBlIC8+IDogPD48Lz59XG5cdFx0e3NlY0RlbCA9PT0gJzEnID8gKFxuXHRcdFx0PFJlbW92ZVNlY3Rpb25MaW5rXG5cdFx0XHRcdHNlY3Rpb25JZFNwYW5zPXtzZWN0aW9uSWRTcGFuc31cblx0XHRcdFx0bWVzc2FnZUNoYW5uZWw9e21lc3NhZ2VDaGFubmVsfVxuXHRcdFx0XHRyZWZyZXNoQ2hhbm5lbD17cmVmcmVzaENoYW5uZWx9XG5cdFx0XHRcdGluZGV4Tm89e2luZGV4Tm99XG5cdFx0XHRcdGFuY2hvcj17YW5jaG9yfVxuXHRcdFx0XHR0b2FzdGlmeUluc3RhbmNlPXt0b2FzdGlmeUluc3RhbmNlfVxuXHRcdFx0Lz5cblx0XHQpIDogKFxuXHRcdFx0PD48Lz5cblx0XHQpfVxuXHQ8L1NlY3Rpb25JRD5cbik7XG5cbmV4cG9ydCB7QXJjaGl2ZVNlY3Rpb25MaW5rLCBSZW1vdmVTZWN0aW9uTGluaywgQXJjaGl2ZUFuZERlbGV0ZVNlY3Rpb25MaW5rfTtcbiIsICJpbXBvcnQge0FyY2hpdmVBbmREZWxldGVTZWN0aW9uTGlua30gZnJvbSAnLi9jb21wb25lbnRzL3NlY3Rpb25MaW5rJztcbmltcG9ydCB7RWRpdENvbmZsaWN0Tm90aWNlfSBmcm9tICcuL2NvbXBvbmVudHMvcmVhY3QnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ2V4dC5nYWRnZXQuSlNYJztcbmltcG9ydCB7Z2V0U2VjdGlvbnN9IGZyb20gJy4vdXRpbC9nZXRTZWN0aW9uJztcbmltcG9ydCB7cmVmcmVzaH0gZnJvbSAnLi91dGlsL3JlZnJlc2hQYWdlJztcbmltcG9ydCB7dG9hc3RpZnl9IGZyb20gJ2V4dC5nYWRnZXQuVG9hc3RpZnknO1xuXG5jb25zdCBhZGRMaW5rcyA9IGFzeW5jICh7XG5cdGFyY0xldmVsLFxuXHRhcmNMb2MsXG5cdHNlY0FyYyxcblx0c2VjRGVsLFxufToge1xuXHRhcmNMZXZlbDogc3RyaW5nO1xuXHRhcmNMb2M6IHN0cmluZztcblx0c2VjQXJjOiBzdHJpbmc7XG5cdHNlY0RlbDogc3RyaW5nO1xufSkgPT4ge1xuXHRjb25zdCB7d2dQYWdlTmFtZX0gPSBtdy5jb25maWcuZ2V0KCk7XG5cdGNvbnN0IHNlY3Rpb25zVG9BcmNoaXZlID0gYXdhaXQgZ2V0U2VjdGlvbnMod2dQYWdlTmFtZSk7XG5cblx0Y29uc3QgaGVhZGluZ3MgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKGBoJHthcmNMZXZlbH1gKTtcblx0Y29uc3QgaGVhZGxpbmVzID0gW107XG5cdGNvbnN0IGhlYWRpbmdJbmRpY2VzID0gW107XG5cblx0Zm9yIChjb25zdCBoZWFkaW5nIG9mIGhlYWRpbmdzKSB7XG5cdFx0Y29uc3QgaGVhZGxpbmUgPSBoZWFkaW5nLnF1ZXJ5U2VsZWN0b3IoJy5tdy1oZWFkbGluZScpO1xuXHRcdGlmIChoZWFkbGluZSkge1xuXHRcdFx0aGVhZGxpbmVzW2hlYWRsaW5lcy5sZW5ndGhdID0gaGVhZGxpbmUuaWQ7XG5cdFx0fVxuXHR9XG5cblx0Y29uc3Qgc2VjdGlvbklkU3BhbnM6IEVsZW1lbnRbXSA9IFtdO1xuXHRsZXQgdG9hc3RpZnlJbnN0YW5jZTogVG9hc3RpZnlJbnN0YW5jZSA9IHtcblx0XHRoaWRlVG9hc3Q6ICgpID0+IHt9LFxuXHR9O1xuXG5cdGNvbnN0IG1lc3NhZ2VDaGFubmVsOiBCcm9hZGNhc3RDaGFubmVsID0gbmV3IEJyb2FkY2FzdENoYW5uZWwoYCR7d2dQYWdlTmFtZX1fbWVzc2FnZWApO1xuXHRjb25zdCByZWZyZXNoQ2hhbm5lbDogQnJvYWRjYXN0Q2hhbm5lbCA9IG5ldyBCcm9hZGNhc3RDaGFubmVsKGAke3dnUGFnZU5hbWV9X3JlZnJlc2hgKTtcblxuXHRmb3IgKGNvbnN0IHNlY3Rpb24gb2Ygc2VjdGlvbnNUb0FyY2hpdmUpIHtcblx0XHRpZiAoc2VjdGlvbi5sZXZlbCAhPT0gYXJjTGV2ZWwpIHtcblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblxuXHRcdGlmIChoZWFkbGluZXMuaW5jbHVkZXMoc2VjdGlvbi5hbmNob3IpKSB7XG5cdFx0XHRoZWFkaW5nSW5kaWNlc1toZWFkaW5nSW5kaWNlcy5sZW5ndGhdID0ge1xuXHRcdFx0XHRpbmRleE5vOiBzZWN0aW9uLmluZGV4LFxuXHRcdFx0XHRhbmNob3I6IHNlY3Rpb24uYW5jaG9yLFxuXHRcdFx0fTtcblx0XHR9XG5cdH1cblxuXHRmb3IgKGNvbnN0IHtpbmRleE5vLCBhbmNob3J9IG9mIGhlYWRpbmdJbmRpY2VzKSB7XG5cdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHVuaWNvcm4vcHJlZmVyLXF1ZXJ5LXNlbGVjdG9yXG5cdFx0Y29uc3QgaGVhZGxpbmUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChhbmNob3IpO1xuXHRcdGlmICghaGVhZGxpbmUpIHtcblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblxuXHRcdGNvbnN0IHBhcmVudEhlYWRpbmcgPSBoZWFkbGluZS5wYXJlbnRFbGVtZW50O1xuXHRcdGlmICghcGFyZW50SGVhZGluZykge1xuXHRcdFx0Y29udGludWU7XG5cdFx0fVxuXG5cdFx0Y29uc3QgZWRpdFNlY3Rpb24gPSBwYXJlbnRIZWFkaW5nLnF1ZXJ5U2VsZWN0b3IoJy5tdy1lZGl0c2VjdGlvbicpO1xuXHRcdGlmICghZWRpdFNlY3Rpb24pIHtcblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblxuXHRcdGNvbnN0IHNlY3Rpb25JRFNwYW4gPSAoXG5cdFx0XHQ8QXJjaGl2ZUFuZERlbGV0ZVNlY3Rpb25MaW5rXG5cdFx0XHRcdHNlY3Rpb25JZFNwYW5zPXtzZWN0aW9uSWRTcGFuc31cblx0XHRcdFx0bWVzc2FnZUNoYW5uZWw9e21lc3NhZ2VDaGFubmVsfVxuXHRcdFx0XHRyZWZyZXNoQ2hhbm5lbD17cmVmcmVzaENoYW5uZWx9XG5cdFx0XHRcdGluZGV4Tm89e2luZGV4Tm99XG5cdFx0XHRcdGFuY2hvcj17YW5jaG9yfVxuXHRcdFx0XHR0b2FzdGlmeUluc3RhbmNlPXt0b2FzdGlmeUluc3RhbmNlfVxuXHRcdFx0XHRhcmNMb2M9e2FyY0xvY31cblx0XHRcdFx0c2VjQXJjPXtzZWNBcmN9XG5cdFx0XHRcdHNlY0RlbD17c2VjRGVsfVxuXHRcdFx0Lz5cblx0XHQpO1xuXG5cdFx0ZWRpdFNlY3Rpb24ucHJlcGVuZChzZWN0aW9uSURTcGFuKTtcblx0XHRzZWN0aW9uSWRTcGFuc1tzZWN0aW9uSWRTcGFucy5sZW5ndGhdID0gc2VjdGlvbklEU3Bhbjtcblx0fVxuXG5cdG1lc3NhZ2VDaGFubmVsLmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCAoZXZlbnQpID0+IHtcblx0XHRmb3IgKGNvbnN0IHNwYW4gb2Ygc2VjdGlvbklkU3BhbnMpIHtcblx0XHRcdHNwYW4ucmVtb3ZlKCk7XG5cdFx0fVxuXHRcdHRvYXN0aWZ5SW5zdGFuY2UuaGlkZVRvYXN0KCk7XG5cdFx0dG9hc3RpZnlJbnN0YW5jZSA9IHRvYXN0aWZ5KFxuXHRcdFx0e1xuXHRcdFx0XHR0ZXh0OiBldmVudC5kYXRhIGFzIHN0cmluZyxcblx0XHRcdFx0Y2xvc2U6IHRydWUsXG5cdFx0XHRcdGR1cmF0aW9uOiAzICogMTAwMCxcblx0XHRcdH0sXG5cdFx0XHQnaW5mbydcblx0XHQpO1xuXHR9KTtcblxuXHRyZWZyZXNoQ2hhbm5lbC5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgKCkgPT4ge1xuXHRcdHRvYXN0aWZ5SW5zdGFuY2UuaGlkZVRvYXN0KCk7XG5cdFx0dG9hc3RpZnlJbnN0YW5jZSA9IHRvYXN0aWZ5KFxuXHRcdFx0e1xuXHRcdFx0XHRub2RlOiAoXG5cdFx0XHRcdFx0PEVkaXRDb25mbGljdE5vdGljZVxuXHRcdFx0XHRcdFx0b25DbGljaz17KCkgPT4ge1xuXHRcdFx0XHRcdFx0XHR0b2FzdGlmeUluc3RhbmNlLmhpZGVUb2FzdCgpO1xuXHRcdFx0XHRcdFx0XHRyZWZyZXNoKCk7XG5cdFx0XHRcdFx0XHR9fVxuXHRcdFx0XHRcdC8+XG5cdFx0XHRcdCksXG5cdFx0XHRcdGNsb3NlOiB0cnVlLFxuXHRcdFx0XHRkdXJhdGlvbjogLTEsXG5cdFx0XHR9LFxuXHRcdFx0J2luZm8nXG5cdFx0KTtcblx0fSk7XG59O1xuXG5leHBvcnQge2FkZExpbmtzfTtcbiIsICJpbXBvcnQgKiBhcyBPUFRJT05TIGZyb20gJy4uL29wdGlvbnMuanNvbic7XG5cbmNvbnN0IGFwcGVuZEZvb3Rlck5vdGljZSA9IChlbGVtZW50OiBFbGVtZW50KSA9PiB7XG5cdGNvbnN0IG1vdW50UG9pbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yPEhUTUxFbGVtZW50PihPUFRJT05TLm1vdW50UG9pbnRTZWxlY3Rvcik7XG5cblx0aWYgKG1vdW50UG9pbnQpIHtcblx0XHRtb3VudFBvaW50LnByZXBlbmQoZWxlbWVudCk7XG5cdH1cbn07XG5cbmV4cG9ydCB7YXBwZW5kRm9vdGVyTm90aWNlfTtcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBLEtBQUMsU0FBUyxRQUFRO0FBQ2QsVUFBSSxXQUFXLENBQUM7QUFFaEIsZUFBU0Esa0JBQWlCLFNBQVM7QUFDL0IsWUFBSSxRQUFRO0FBQ1osa0JBQVUsT0FBTyxPQUFPO0FBRXhCLFlBQUksS0FBSyx1QkFBdUIsVUFBVTtBQUUxQyxpQkFBUyxFQUFFLElBQUksU0FBUyxFQUFFLEtBQUssQ0FBQztBQUNoQyxpQkFBUyxFQUFFLEVBQUUsS0FBSyxJQUFJO0FBRXRCLGFBQUssUUFBUTtBQUNiLGFBQUssTUFB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ZXMiOiBbIkJyb2FkY2FzdENoYW5uZWwiLCAiZWxlbWVudElkIiwgIm1vdW50UG9pbnRTZWxlY3RvciIsICJ2ZXJzaW9uIiwgImltcG9ydF9leHRfZ2FkZ2V0MiIsICJfX3RvRVNNIiwgInJlcXVpcmUiLCAiZm9vdGVyTm90aWNlIiwgInNlY3Rpb25JZFNwYW4iLCAiaW1wb3J0X2V4dF9nYWRnZXQiLCAiZ2V0STE4bk1lc3NhZ2VzIiwgIkFyY2hpdmUiLCAibG9jYWxpemUiLCAiZW4iLCAiQXJjaGl2aW5nIiwgIkFyY2hpdmVkIiwgIkRlbGV0ZSIsICJEZWxldGluZyIsICJEZWxldGVkIiwgInpoIiwgIlJlZnJlc2giLCAiUmVmcmVzaGluZyIsICJqYSIsICJpMThuTWVzc2FnZXMiLCAiZ2V0TWVzc2FnZSIsICJrZXkiLCAic2FuaXRpemUiLCAic3RyaW5nIiwgInJlcGxhY2UiLCAiRm9vdGVyTm90aWNlIiwgImlkIiwgImNoaWxkcmVuIiwgImRlZmF1bHQiLCAiY3JlYXRlRWxlbWVudCIsICJGcmFnbWVudCIsICJza2luIiwgIm13IiwgImNvbmZpZyIsICJnZXQiLCAiY2xhc3NOYW1lIiwgImluY2x1ZGVzIiwgImRvY3VtZW50IiwgInF1ZXJ5U2VsZWN0b3IiLCAiSW5CbGFja0xpc3QiLCAiTm90QWxsb3dlZCIsICJBcmNMb2NOb3RBbGxvd2VkIiwgImFyY0xvYyIsICJOb0FyY0xvYyIsICJFbmFibGVkIiwgInRpdGxlIiwgImhyZWYiLCAiY29uY2F0IiwgIk9uQ2xpY2siLCAidGV4dENvbnRlbnQiLCAib25DbGljayIsICJTZWN0aW9uSUQiLCAiUGlwZSIsICJFZGl0Q29uZmxpY3ROb3RpY2UiLCAiaWZBcmNMb2NOb3RBbGxvd2VkIiwgIndnUGFnZU5hbWUiLCAic291cmNlVGl0bGUiLCAiVGl0bGUiLCAiYXJjTG9jVGl0bGUiLCAiYXJjTG9jTmFtZXNwYWNlSWQiLCAiZ2V0TmFtZXNwYWNlSWQiLCAiYXJjTG9jUGFnZU5hbWUiLCAiZ2V0TWFpbiIsICJzb3VyY2VOYW1lc3BhY2VJZCIsICJzb3VyY2VQYWdlTmFtZSIsICJpc0luQmxhY2tsaXN0IiwgImJsYWNrTGlzdFJlZ2V4QXJyIiwgIl9pIiwgIl9ibGFja0xpc3RSZWdleEFyciIsICJsZW5ndGgiLCAiZWxlbWVudCIsICJ0ZXN0IiwgImlzTm90QWxsb3dlZCIsICJ3Z05hbWVzcGFjZU51bWJlciIsICJ3Z1JlbGV2YW50VXNlck5hbWUiLCAid2dVc2VyTmFtZSIsICJpc05vdFN1cHBvcnRlZCIsICJ3Z0lzTWFpblBhZ2UiLCAid2dDdXJSZXZpc2lvbklkIiwgIndnUmV2aXNpb25JZCIsICJnZXRTZXR0aW5ncyIsICJzZXR0aW5ncyIsICJkYXRhc2V0IiwgImFyY0xldmVsIiwgInNlY0FyYyIsICJzZWNEZWwiLCAiaW1wb3J0X2V4dF9nYWRnZXQxMCIsICJpbXBvcnRfZXh0X2dhZGdldDMiLCAiYXBpIiwgImluaXRNd0FwaSIsICJnZXRTZWN0aW9ucyIsICJfcmVmIiwgIl9hc3luY1RvR2VuZXJhdG9yIiwgInBhcmFtcyIsICJhY3Rpb24iLCAiZm9ybWF0IiwgImZvcm1hdHZlcnNpb24iLCAicGFnZSIsICJwcm9wIiwgInBhcnNlIiwgInNlY3Rpb25zIiwgInNlY3Rpb25zVG9BcmNoaXZlIiwgIl9pdGVyYXRvcjIiLCAiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIiLCAiX3N0ZXAyIiwgInMiLCAibiIsICJkb25lIiwgInNlY3Rpb24iLCAidmFsdWUiLCAibGV2ZWwiLCAiaW5kZXgiLCAiYW5jaG9yIiwgInN0YXJ0c1dpdGgiLCAiZXJyIiwgImUiLCAiZiIsICJfeCIsICJhcHBseSIsICJhcmd1bWVudHMiLCAiZ2V0U2VjdGlvbkNvbnRlbnQiLCAiX3JlZjIiLCAiX3Jlc3BvbnNlJHF1ZXJ5JHBhZ2VzIiwgIl9yZXNwb25zZSRxdWVyeSRwYWdlczIiLCAicnZwcm9wIiwgInRpdGxlcyIsICJydnNlY3Rpb24iLCAicnZzbG90cyIsICJyZXNwb25zZSIsICJwYWdlcyIsICJyZXZpc2lvbnMiLCAic2xvdHMiLCAibWFpbiIsICJjb250ZW50IiwgIl94MiIsICJpc1BhZ2VFeGlzdCIsICJfcmVmMyIsICJhcmNoaXZlVG8iLCAiX3F1ZXJ5JHBhZ2VzJCIsICJxdWVyeSIsICJtaXNzaW5nIiwgIl94MyIsICJpc1NlY3Rpb25FeGlzdCIsICJfcmVmNCIsICJpc0V4aXN0IiwgIl9pdGVyYXRvcjMiLCAiX3N0ZXAzIiwgIl94NCIsICJyZW1vdmVTZWN0aW9uIiwgIl9yZWY1IiwgInN1bW1hcnkiLCAiZWRpdCIsICJ0ZXh0IiwgIm1pbm9yIiwgIl94NSIsICJhcmNoaXZlU2VjdGlvbiIsICJfcmVmNiIsICJwYWdlRXhpc3QiLCAiY3JlYXRlIiwgImFwcGVuZHRleHQiLCAiX3g2IiwgImdldEFyY2hpdmluZ01lc3NhZ2UiLCAiaW5kZXhObyIsICJnZXRBcmNoaXZlZE1lc3NhZ2UiLCAiZ2V0RGVsZXRpbmdNZXNzYWdlIiwgImdldERlbGV0ZWRNZXNzYWdlIiwgImltcG9ydF9leHRfZ2FkZ2V0NSIsICJpbXBvcnRfZXh0X2dhZGdldDQiLCAid2dTY3JpcHQiLCAicmVmcmVzaCIsICJ0YXJnZXRQYWdlIiwgInRvYXN0aWZ5SW5zdGFuY2UiLCAiaGlkZVRvYXN0IiwgInRvYXN0aWZ5IiwgImR1cmF0aW9uIiwgImxvY2F0aW9uIiwgInV0aWwiLCAiZ2V0VXJsIiwgImltcG9ydF9leHRfZ2FkZ2V0NiIsICJhcmNoaXZlT25DbGljayIsICJfcmVmNyIsICJldmVudCIsICJzZWN0aW9uSWRTcGFucyIsICJtZXNzYWdlQ2hhbm5lbCIsICJyZWZyZXNoQ2hhbm5lbCIsICJfZXZlbnQkdGFyZ2V0IiwgInByZXZlbnREZWZhdWx0IiwgInBhcmVudEVsZW1lbnQiLCAidGFyZ2V0IiwgInJlcGxhY2VDaGlsZHJlbiIsICJfaXRlcmF0b3I0IiwgIl9zdGVwNCIsICJzcGFuIiwgInJlbW92ZSIsICJtZXNzYWdlMSIsICJwb3N0TWVzc2FnZSIsICJjbG9zZSIsICJtZXNzYWdlIiwgIl94NyIsICJfeDgiLCAicmVtb3ZlT25DbGljayIsICJfcmVmOCIsICJfZXZlbnQkdGFyZ2V0MiIsICJfaXRlcmF0b3I1IiwgIl9zdGVwNSIsICJfeDkiLCAiX3gxMCIsICJpbXBvcnRfZXh0X2dhZGdldDciLCAiQXJjaGl2ZVNlY3Rpb25MaW5rIiwgIlJlbW92ZVNlY3Rpb25MaW5rIiwgIkFyY2hpdmVBbmREZWxldGVTZWN0aW9uTGluayIsICJpbXBvcnRfZXh0X2dhZGdldDgiLCAiaW1wb3J0X2V4dF9nYWRnZXQ5IiwgImFkZExpbmtzIiwgIl9yZWY5IiwgImhlYWRpbmdzIiwgInF1ZXJ5U2VsZWN0b3JBbGwiLCAiaGVhZGxpbmVzIiwgImhlYWRpbmdJbmRpY2VzIiwgIl9pdGVyYXRvcjYiLCAiX3N0ZXA2IiwgImhlYWRpbmciLCAiaGVhZGxpbmUiLCAiQnJvYWRjYXN0Q2hhbm5lbCIsICJfaXRlcmF0b3I3IiwgIl9zdGVwNyIsICJfaTIiLCAiX2hlYWRpbmdJbmRpY2VzIiwgImdldEVsZW1lbnRCeUlkIiwgInBhcmVudEhlYWRpbmciLCAiZWRpdFNlY3Rpb24iLCAic2VjdGlvbklEU3BhbiIsICJwcmVwZW5kIiwgImFkZEV2ZW50TGlzdGVuZXIiLCAiX2kzIiwgIl9zZWN0aW9uSWRTcGFucyIsICJkYXRhIiwgIm5vZGUiLCAiX3gxMSIsICJhcHBlbmRGb290ZXJOb3RpY2UiLCAibW91bnRQb2ludCIsICJlYXN5QXJjaGl2ZSIsICJub3RTdXBwb3J0ZWQiLCAiaW5CbGFja2xpc3QiLCAibm90QWxsb3dlZCIsICJhcmNMb2NOb3RBbGxvd2VkIl0KfQo= diff --git a/dist/EditConflict/EditConflict.js b/dist/EditConflict/EditConflict.js index 6df5ad5c7..1272016eb 100644 --- a/dist/EditConflict/EditConflict.js +++ b/dist/EditConflict/EditConflict.js @@ -146,7 +146,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge //! src/EditConflict/modules/core.ts var import_ext_gadget4 = require("ext.gadget.Util"); //! src/EditConflict/modules/noticeMessage.tsx -var import_ext_gadget2 = __toESM(require("ext.gadget.React"), 1); +var import_ext_gadget2 = __toESM(require("ext.gadget.JSX"), 1); //! src/EditConflict/modules/i18n.ts var import_ext_gadget = require("ext.gadget.i18n"); var getI18nMessages = () => { @@ -286,4 +286,4 @@ if (["edit", "submit"].includes(wgAction) && wgCurRevisionId) { /* */ -//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL0VkaXRDb25mbGljdC9tb2R1bGVzL2NvcmUudHMiLCAic3JjL0VkaXRDb25mbGljdC9tb2R1bGVzL25vdGljZU1lc3NhZ2UudHN4IiwgInNyYy9FZGl0Q29uZmxpY3QvbW9kdWxlcy9pMThuLnRzIiwgInNyYy9FZGl0Q29uZmxpY3Qvb3B0aW9ucy5qc29uIiwgInNyYy9FZGl0Q29uZmxpY3QvbW9kdWxlcy9hcGkudHMiLCAic3JjL0VkaXRDb25mbGljdC9tb2R1bGVzL3V0aWwvcXVlcnlQYWdlSW5mby50cyIsICJzcmMvRWRpdENvbmZsaWN0L21vZHVsZXMvZ2V0Q3VycmVudFJldmlzaW9uSWQudHMiLCAic3JjL0VkaXRDb25mbGljdC9FZGl0Q29uZmxpY3QudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB7ZGVsYXksIGdldEJvZHl9IGZyb20gJ2V4dC5nYWRnZXQuVXRpbCc7XG5pbXBvcnQge05vdGljZU1lc3NhZ2V9IGZyb20gJy4vbm90aWNlTWVzc2FnZSc7XG5pbXBvcnQge2dldEN1cnJlbnRSZXZpc2lvbklkfSBmcm9tICcuL2dldEN1cnJlbnRSZXZpc2lvbklkJztcbmltcG9ydCB7dG9hc3RpZnl9IGZyb20gJ2V4dC5nYWRnZXQuVG9hc3RpZnknO1xuXG5jb25zdCBlZGl0Q29uZmxpY3QgPSBhc3luYyAoKTogUHJvbWlzZTx2b2lkPiA9PiB7XG5cdGxldCBpc0NvbnRpbnVlOiBib29sZWFuID0gdHJ1ZTtcblxuXHR2b2lkIGdldEJvZHkoKS50aGVuKCgkYm9keTogSlF1ZXJ5PEhUTUxCb2R5RWxlbWVudD4pOiB2b2lkID0+IHtcblx0XHQkYm9keS5maW5kKCdpbnB1dFtuYW1lPVwid3BTYXZlXCJdJykub24oJ2NsaWNrJywgKCk6IHZvaWQgPT4ge1xuXHRcdFx0aXNDb250aW51ZSA9IGZhbHNlO1xuXHRcdH0pO1xuXHR9KTtcblxuXHRjb25zdCBjaGVja0VkaXRDb25mbGljdCA9IGFzeW5jICgpOiBQcm9taXNlPHZvaWQ+ID0+IHtcblx0XHRjb25zdCB7d2dDdXJSZXZpc2lvbklkLCB3Z1BhZ2VOYW1lfSA9IG13LmNvbmZpZy5nZXQoKTtcblx0XHRjb25zdCBwYWdlUmV2aXNpb25JZDogbnVtYmVyID0gYXdhaXQgZ2V0Q3VycmVudFJldmlzaW9uSWQod2dQYWdlTmFtZSk7XG5cdFx0aWYgKCFwYWdlUmV2aXNpb25JZCkge1xuXHRcdFx0aXNDb250aW51ZSA9IGZhbHNlO1xuXHRcdH0gZWxzZSBpZiAocGFnZVJldmlzaW9uSWQgPiB3Z0N1clJldmlzaW9uSWQpIHtcblx0XHRcdGlzQ29udGludWUgPSBmYWxzZTtcblx0XHRcdHRvYXN0aWZ5KFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0bm9kZTogTm90aWNlTWVzc2FnZSgpLFxuXHRcdFx0XHRcdGNsb3NlOiB0cnVlLFxuXHRcdFx0XHRcdGR1cmF0aW9uOiAtMSxcblx0XHRcdFx0fSxcblx0XHRcdFx0J2luZm8nXG5cdFx0XHQpO1xuXHRcdH1cblx0fTtcblxuXHR3aGlsZSAodHJ1ZSkge1xuXHRcdC8vIElmICFpc0NvbnRpbnVlIHRyaWdnZXJlZCAoYnkgb25DbGljaykgdGhlbiBicmVha1xuXHRcdGlmICghaXNDb250aW51ZSkge1xuXHRcdFx0YnJlYWs7XG5cdFx0fVxuXG5cdFx0YXdhaXQgY2hlY2tFZGl0Q29uZmxpY3QoKTtcblxuXHRcdC8vIElmICFpc0NvbnRpbnVlIHRyaWdnZXJlZCAoYnkgY2hlY2tFZGl0Q29uZmxpY3QpIHRoZW4gYnJlYWtcblx0XHRpZiAoIWlzQ29udGludWUpIHtcblx0XHRcdGJyZWFrO1xuXHRcdH1cblxuXHRcdGF3YWl0IGRlbGF5KDMgKiAxMDAwKTtcblx0fVxufTtcblxuZXhwb3J0IHtlZGl0Q29uZmxpY3R9O1xuIiwgImltcG9ydCBSZWFjdCBmcm9tICdleHQuZ2FkZ2V0LlJlYWN0JztcbmltcG9ydCB7Z2V0TWVzc2FnZX0gZnJvbSAnLi9pMThuJztcblxuY29uc3QgbG9jYXRpb25SZWxvYWQgPSAoKSA9PiB7XG5cdGxvY2F0aW9uLnJlbG9hZCgpO1xuXHRyZXR1cm4gZmFsc2U7XG59O1xuXG5jb25zdCBOb3RpY2VNZXNzYWdlID0gKCkgPT4gKFxuXHQ8c3Bhbj5cblx0XHR7Z2V0TWVzc2FnZSgnTm90aWNlJyl9XG5cdFx0PGEgb25DbGljaz17bG9jYXRpb25SZWxvYWR9PntnZXRNZXNzYWdlKCdSZWZyZXNoJyl9PC9hPlxuXHQ8L3NwYW4+XG4pO1xuXG5leHBvcnQge05vdGljZU1lc3NhZ2V9O1xuIiwgImltcG9ydCB7bG9jYWxpemV9IGZyb20gJ2V4dC5nYWRnZXQuaTE4bic7XG5cbmNvbnN0IGdldEkxOG5NZXNzYWdlcyA9ICgpID0+IHtcblx0cmV0dXJuIHtcblx0XHROb3RpY2U6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnVGhpcyBwYWdlIGhhcyBiZWVuIGNoYW5nZWQgYnkgc29tZW9uZSBlbHNlIGFmdGVyIHlvdSBzdGFydGVkIGVkaXRpbmcuIENvcHkgeW91ciBjaGFuZ2VzLCByZWZyZXNoIGFuZCBzdGFydCBvdmVyIHRvIGF2b2lkIGVkaXQgY29uZmxpY3RzLicsXG5cdFx0XHRqYTogJ+OBk+OBruODmuODvOOCuOOBr+S7luOBruS6uuOBq+OCiOOBo+OBpuWkieabtOOBleOCjOOBpuOBhOOBvuOBmeOAgue3qOmbhuihneeqgeOCkumBv+OBkeOCi+OBn+OCgeOAgee3qOmbhuWGheWuueOCkuOCs+ODlOODvOOBl+OBpuODmuODvOOCuOOCkuWGjeiqreOBv+i+vOOBv+OBl+OAgee3qOmbhuOCkue2muOBkeOBpuOBj+OBoOOBleOBhOOAgicsXG5cdFx0XHQnemgtaGFucyc6ICfmraTpobXpnaLlt7Looqvku5bkurrmm7TmlLnjgILor7flpI3liLbmgqjnmoTnvJbovpHvvIznhLblkI7liLfmlrDpobXpnaLvvIzph43mlrDlvIDlp4vnvJbovpHvvIzku6Xpgb/lhY3nvJbovpHlhrLnqoHjgIInLFxuXHRcdFx0J3poLWhhbnQnOiAn5pys6aCB5bey6KKr5LuW5Lq65pu05pS544CC6KuL5bCH5oKo55qE57eo6Lyv6KSH6KO977yM5Lim6YeN5paw6LyJ5YWl6aCB6Z2i77yM54S25b6M57m857qM57eo6Lyv77yM5L6G6YG/5YWN57eo6Lyv6KGd56qB44CCJyxcblx0XHR9KSxcblx0XHRSZWZyZXNoOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ1JlZnJlc2gnLFxuXHRcdFx0amE6ICflho3oqq3jgb/ovrzjgb8nLFxuXHRcdFx0J3poLWhhbnMnOiAn5Yi35paw6aG16Z2iJyxcblx0XHRcdCd6aC1oYW50JzogJ+mHjeaWsOi8ieWFpScsXG5cdFx0fSksXG5cdH07XG59O1xuXG5jb25zdCBpMThuTWVzc2FnZXMgPSBnZXRJMThuTWVzc2FnZXMoKTtcblxuY29uc3QgZ2V0TWVzc2FnZTogR2V0TWVzc2FnZXM8dHlwZW9mIGkxOG5NZXNzYWdlcz4gPSAoa2V5KSA9PiB7XG5cdHJldHVybiBpMThuTWVzc2FnZXNba2V5XSB8fCBrZXk7XG59O1xuXG5leHBvcnQge2dldE1lc3NhZ2V9O1xuIiwgIntcblx0XCJ2ZXJzaW9uXCI6IFwiMi4wXCJcbn1cbiIsICJpbXBvcnQgKiBhcyBPUFRJT05TIGZyb20gJy4uL29wdGlvbnMuanNvbic7XG5pbXBvcnQge2luaXRNd0FwaX0gZnJvbSAnZXh0LmdhZGdldC5VdGlsJztcblxuY29uc3QgYXBpOiBtdy5BcGkgPSBpbml0TXdBcGkoYEVkaXRDb25mbGljdC8ke09QVElPTlMudmVyc2lvbn1gKTtcblxuZXhwb3J0IHthcGl9O1xuIiwgImltcG9ydCB7YXBpfSBmcm9tICcuLi9hcGknO1xuXG5pbnRlcmZhY2UgUGFnZUluZm8ge1xuXHRxdWVyeT86IHtcblx0XHRwYWdlczogQXJyYXk8e1xuXHRcdFx0bWlzc2luZz86IGJvb2xlYW47XG5cdFx0XHRyZXZpc2lvbnM6IEFycmF5PHtcblx0XHRcdFx0cmV2aWQ6IG51bWJlcjtcblx0XHRcdH0+O1xuXHRcdH0+O1xuXHR9O1xufVxuXG5jb25zdCBwYXJhbXM6IEFwaVF1ZXJ5UmV2aXNpb25zUGFyYW1zID0ge1xuXHRhY3Rpb246ICdxdWVyeScsXG5cdGZvcm1hdDogJ2pzb24nLFxuXHRmb3JtYXR2ZXJzaW9uOiAnMicsXG5cdHByb3A6ICdyZXZpc2lvbnMnLFxuXHRydnByb3A6ICdpZHMnLFxufTtcblxuY29uc3QgcXVlcnlQYWdlSW5mbyA9IGFzeW5jICh0aXRsZTogc3RyaW5nKTogUHJvbWlzZTxQYWdlSW5mbz4gPT4ge1xuXHR0cnkge1xuXHRcdHJldHVybiAoYXdhaXQgYXBpLmdldCh7XG5cdFx0XHQuLi5wYXJhbXMsXG5cdFx0XHR0aXRsZXM6IHRpdGxlLFxuXHRcdH0gYXMgdHlwZW9mIHBhcmFtcykpIGFzIFBhZ2VJbmZvO1xuXHR9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuXHRcdGNvbnNvbGUuZXJyb3IoJ1tFZGl0Q29uZmxpY3RdIEFqYXggZXJyb3I6JywgZXJyb3IpO1xuXHRcdHJldHVybiB7fTtcblx0fVxufTtcblxuZXhwb3J0IHtxdWVyeVBhZ2VJbmZvfTtcbiIsICJpbXBvcnQge3F1ZXJ5UGFnZUluZm99IGZyb20gJy4vdXRpbC9xdWVyeVBhZ2VJbmZvJztcblxuY29uc3QgZ2V0Q3VycmVudFJldmlzaW9uSWQgPSBhc3luYyAodGl0bGU6IHN0cmluZyk6IFByb21pc2U8bnVtYmVyPiA9PiB7XG5cdGNvbnN0IHBhZ2VJbmZvOiBBd2FpdGVkPFJldHVyblR5cGU8dHlwZW9mIHF1ZXJ5UGFnZUluZm8+PiA9IGF3YWl0IHF1ZXJ5UGFnZUluZm8odGl0bGUpO1xuXG5cdGNvbnN0IHtxdWVyeX0gPSBwYWdlSW5mbztcblx0aWYgKCFxdWVyeSkge1xuXHRcdHJldHVybiAwO1xuXHR9XG5cblx0Y29uc3QgW3BhZ2VdID0gcXVlcnkucGFnZXM7XG5cdGlmICghcGFnZSB8fCBwYWdlLm1pc3NpbmcpIHtcblx0XHRyZXR1cm4gMDtcblx0fVxuXG5cdHJldHVybiBwYWdlLnJldmlzaW9uc1swXSEucmV2aWQ7XG59O1xuXG5leHBvcnQge2dldEN1cnJlbnRSZXZpc2lvbklkfTtcbiIsICJpbXBvcnQge2VkaXRDb25mbGljdH0gZnJvbSAnLi9tb2R1bGVzL2NvcmUnO1xuXG5jb25zdCB7d2dBY3Rpb24sIHdnQ3VyUmV2aXNpb25JZH0gPSBtdy5jb25maWcuZ2V0KCk7XG5cbmlmIChbJ2VkaXQnLCAnc3VibWl0J10uaW5jbHVkZXMod2dBY3Rpb24pICYmIHdnQ3VyUmV2aXNpb25JZCkge1xuXHR2b2lkIGVkaXRDb25mbGljdCgpO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxxQkFBNkJDLFFBQUEsaUJBQUE7O0FDQTdCLElBQUFDLHFCQUFrQkMsUUFBQUYsUUFBQSxrQkFBQSxHQUFBLENBQUE7O0FDQWxCLElBQUFHLG9CQUF1QkgsUUFBQSxpQkFBQTtBQUV2QixJQUFNSSxrQkFBa0JBLE1BQU07QUFDN0IsU0FBTztJQUNOQyxTQUFBLEdBQVFGLGtCQUFBRyxVQUFTO01BQ2hCQyxJQUFJO01BQ0pDLElBQUk7TUFDSixXQUFXO01BQ1gsV0FBVztJQUNaLENBQUM7SUFDREMsVUFBQSxHQUFTTixrQkFBQUcsVUFBUztNQUNqQkMsSUFBSTtNQUNKQyxJQUFJO01BQ0osV0FBVztNQUNYLFdBQVc7SUFDWixDQUFDO0VBQ0Y7QUFDRDtBQUVBLElBQU1FLGVBQWVOLGdCQUFnQjtBQUVyQyxJQUFNTyxhQUFnREMsU0FBUTtBQUM3RCxTQUFPRixhQUFhRSxHQUFHLEtBQUtBO0FBQzdCOztBRHBCQSxJQUFNQyxpQkFBaUJBLE1BQU07QUFDNUJDLFdBQVNDLE9BQU87QUFDaEIsU0FBTztBQUNSO0FBRUEsSUFBTUMsZ0JBQWdCQSxNQUNyQmYsbUNBQUFnQixRQUFBQyxjQUFDLFFBQUEsTUFDQ1AsV0FBVyxRQUFRLEdBQ3BCVixtQ0FBQWdCLFFBQUFDLGNBQUMsS0FBQTtFQUFFQyxTQUFT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QUFJLENBQUMsUUFBUSxRQUFRLEVBQUV3QyxTQUFTRCxRQUFRLEtBQUtYLGlCQUFpQjtBQUM3RCxPQUFLVixhQUFhO0FBQ25COyIsCiAgIm5hbWVzIjogWyJpbXBvcnRfZXh0X2dhZGdldDQiLCAicmVxdWlyZSIsICJpbXBvcnRfZXh0X2dhZGdldDIiLCAiX190b0VTTSIsICJpbXBvcnRfZXh0X2dhZGdldCIsICJnZXRJMThuTWVzc2FnZXMiLCAiTm90aWNlIiwgImxvY2FsaXplIiwgImVuIiwgImphIiwgIlJlZnJlc2giLCAiaTE4bk1lc3NhZ2VzIiwgImdldE1lc3NhZ2UiLCAia2V5IiwgImxvY2F0aW9uUmVsb2FkIiwgImxvY2F0aW9uIiwgInJlbG9hZCIsICJOb3RpY2VNZXNzYWdlIiwgImRlZmF1bHQiLCAiY3JlYXRlRWxlbWVudCIsICJvbkNsaWNrIiwgInZlcnNpb24iLCAiaW1wb3J0X2V4dF9nYWRnZXQzIiwgImFwaSIsICJpbml0TXdBcGkiLCAiY29uY2F0IiwgInBhcmFtcyIsICJhY3Rpb24iLCAiZm9ybWF0IiwgImZvcm1hdHZlcnNpb24iLCAicHJvcCIsICJydnByb3AiLCAicXVlcnlQYWdlSW5mbyIsICJfcmVmIiwgIl9hc3luY1RvR2VuZXJhdG9yIiwgInRpdGxlIiwgImdldCIsICJ0aXRsZXMiLCAiZXJyb3IiLCAiY29uc29sZSIsICJfeCIsICJhcHBseSIsICJhcmd1bWVudHMiLCAiZ2V0Q3VycmVudFJldmlzaW9uSWQiLCAiX3JlZjIiLCAicGFnZUluZm8iLCAicXVlcnkiLCAicGFnZSIsICJwYWdlcyIsICJtaXNzaW5nIiwgInJldmlzaW9ucyIsICJyZXZpZCIsICJfeDIiLCAiaW1wb3J0X2V4dF9nYWRnZXQ1IiwgImVkaXRDb25mbGljdCIsICJfcmVmMyIsICJpc0NvbnRpbnVlIiwgImdldEJvZHkiLCAidGhlbiIsICIkYm9keSIsICJmaW5kIiwgIm9uIiwgImNoZWNrRWRpdENvbmZsaWN0IiwgIl9yZWY0IiwgIndnQ3VyUmV2aXNpb25JZCIsICJ3Z0N1clJldmlzaW9uSWQyIiwgIndnUGFnZU5hbWUiLCAibXciLCAiY29uZmlnIiwgInBhZ2VSZXZpc2lvbklkIiwgInRvYXN0aWZ5IiwgIm5vZGUiLCAiY2xvc2UiLCAiZHVyYXRpb24iLCAiZGVsYXkiLCAid2dBY3Rpb24iLCAiaW5jbHVkZXMiXQp9Cg== +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL0VkaXRDb25mbGljdC9tb2R1bGVzL2NvcmUudHMiLCAic3JjL0VkaXRDb25mbGljdC9tb2R1bGVzL25vdGljZU1lc3NhZ2UudHN4IiwgInNyYy9FZGl0Q29uZmxpY3QvbW9kdWxlcy9pMThuLnRzIiwgInNyYy9FZGl0Q29uZmxpY3Qvb3B0aW9ucy5qc29uIiwgInNyYy9FZGl0Q29uZmxpY3QvbW9kdWxlcy9hcGkudHMiLCAic3JjL0VkaXRDb25mbGljdC9tb2R1bGVzL3V0aWwvcXVlcnlQYWdlSW5mby50cyIsICJzcmMvRWRpdENvbmZsaWN0L21vZHVsZXMvZ2V0Q3VycmVudFJldmlzaW9uSWQudHMiLCAic3JjL0VkaXRDb25mbGljdC9FZGl0Q29uZmxpY3QudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB7ZGVsYXksIGdldEJvZHl9IGZyb20gJ2V4dC5nYWRnZXQuVXRpbCc7XG5pbXBvcnQge05vdGljZU1lc3NhZ2V9IGZyb20gJy4vbm90aWNlTWVzc2FnZSc7XG5pbXBvcnQge2dldEN1cnJlbnRSZXZpc2lvbklkfSBmcm9tICcuL2dldEN1cnJlbnRSZXZpc2lvbklkJztcbmltcG9ydCB7dG9hc3RpZnl9IGZyb20gJ2V4dC5nYWRnZXQuVG9hc3RpZnknO1xuXG5jb25zdCBlZGl0Q29uZmxpY3QgPSBhc3luYyAoKTogUHJvbWlzZTx2b2lkPiA9PiB7XG5cdGxldCBpc0NvbnRpbnVlOiBib29sZWFuID0gdHJ1ZTtcblxuXHR2b2lkIGdldEJvZHkoKS50aGVuKCgkYm9keTogSlF1ZXJ5PEhUTUxCb2R5RWxlbWVudD4pOiB2b2lkID0+IHtcblx0XHQkYm9keS5maW5kKCdpbnB1dFtuYW1lPVwid3BTYXZlXCJdJykub24oJ2NsaWNrJywgKCk6IHZvaWQgPT4ge1xuXHRcdFx0aXNDb250aW51ZSA9IGZhbHNlO1xuXHRcdH0pO1xuXHR9KTtcblxuXHRjb25zdCBjaGVja0VkaXRDb25mbGljdCA9IGFzeW5jICgpOiBQcm9taXNlPHZvaWQ+ID0+IHtcblx0XHRjb25zdCB7d2dDdXJSZXZpc2lvbklkLCB3Z1BhZ2VOYW1lfSA9IG13LmNvbmZpZy5nZXQoKTtcblx0XHRjb25zdCBwYWdlUmV2aXNpb25JZDogbnVtYmVyID0gYXdhaXQgZ2V0Q3VycmVudFJldmlzaW9uSWQod2dQYWdlTmFtZSk7XG5cdFx0aWYgKCFwYWdlUmV2aXNpb25JZCkge1xuXHRcdFx0aXNDb250aW51ZSA9IGZhbHNlO1xuXHRcdH0gZWxzZSBpZiAocGFnZVJldmlzaW9uSWQgPiB3Z0N1clJldmlzaW9uSWQpIHtcblx0XHRcdGlzQ29udGludWUgPSBmYWxzZTtcblx0XHRcdHRvYXN0aWZ5KFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0bm9kZTogTm90aWNlTWVzc2FnZSgpLFxuXHRcdFx0XHRcdGNsb3NlOiB0cnVlLFxuXHRcdFx0XHRcdGR1cmF0aW9uOiAtMSxcblx0XHRcdFx0fSxcblx0XHRcdFx0J2luZm8nXG5cdFx0XHQpO1xuXHRcdH1cblx0fTtcblxuXHR3aGlsZSAodHJ1ZSkge1xuXHRcdC8vIElmICFpc0NvbnRpbnVlIHRyaWdnZXJlZCAoYnkgb25DbGljaykgdGhlbiBicmVha1xuXHRcdGlmICghaXNDb250aW51ZSkge1xuXHRcdFx0YnJlYWs7XG5cdFx0fVxuXG5cdFx0YXdhaXQgY2hlY2tFZGl0Q29uZmxpY3QoKTtcblxuXHRcdC8vIElmICFpc0NvbnRpbnVlIHRyaWdnZXJlZCAoYnkgY2hlY2tFZGl0Q29uZmxpY3QpIHRoZW4gYnJlYWtcblx0XHRpZiAoIWlzQ29udGludWUpIHtcblx0XHRcdGJyZWFrO1xuXHRcdH1cblxuXHRcdGF3YWl0IGRlbGF5KDMgKiAxMDAwKTtcblx0fVxufTtcblxuZXhwb3J0IHtlZGl0Q29uZmxpY3R9O1xuIiwgImltcG9ydCBSZWFjdCBmcm9tICdleHQuZ2FkZ2V0LkpTWCc7XG5pbXBvcnQge2dldE1lc3NhZ2V9IGZyb20gJy4vaTE4bic7XG5cbmNvbnN0IGxvY2F0aW9uUmVsb2FkID0gKCkgPT4ge1xuXHRsb2NhdGlvbi5yZWxvYWQoKTtcblx0cmV0dXJuIGZhbHNlO1xufTtcblxuY29uc3QgTm90aWNlTWVzc2FnZSA9ICgpID0+IChcblx0PHNwYW4+XG5cdFx0e2dldE1lc3NhZ2UoJ05vdGljZScpfVxuXHRcdDxhIG9uQ2xpY2s9e2xvY2F0aW9uUmVsb2FkfT57Z2V0TWVzc2FnZSgnUmVmcmVzaCcpfTwvYT5cblx0PC9zcGFuPlxuKTtcblxuZXhwb3J0IHtOb3RpY2VNZXNzYWdlfTtcbiIsICJpbXBvcnQge2xvY2FsaXplfSBmcm9tICdleHQuZ2FkZ2V0LmkxOG4nO1xuXG5jb25zdCBnZXRJMThuTWVzc2FnZXMgPSAoKSA9PiB7XG5cdHJldHVybiB7XG5cdFx0Tm90aWNlOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ1RoaXMgcGFnZSBoYXMgYmVlbiBjaGFuZ2VkIGJ5IHNvbWVvbmUgZWxzZSBhZnRlciB5b3Ugc3RhcnRlZCBlZGl0aW5nLiBDb3B5IHlvdXIgY2hhbmdlcywgcmVmcmVzaCBhbmQgc3RhcnQgb3ZlciB0byBhdm9pZCBlZGl0IGNvbmZsaWN0cy4nLFxuXHRcdFx0amE6ICfjgZPjga7jg5rjg7zjgrjjga/ku5bjga7kurrjgavjgojjgaPjgablpInmm7TjgZXjgozjgabjgYTjgb7jgZnjgILnt6jpm4booZ3nqoHjgpLpgb/jgZHjgovjgZ/jgoHjgIHnt6jpm4blhoXlrrnjgpLjgrPjg5Tjg7zjgZfjgabjg5rjg7zjgrjjgpLlho3oqq3jgb/ovrzjgb/jgZfjgIHnt6jpm4bjgpLntprjgZHjgabjgY/jgaDjgZXjgYTjgIInLFxuXHRcdFx0J3poLWhhbnMnOiAn5q2k6aG16Z2i5bey6KKr5LuW5Lq65pu05pS544CC6K+35aSN5Yi25oKo55qE57yW6L6R77yM54S25ZCO5Yi35paw6aG16Z2i77yM6YeN5paw5byA5aeL57yW6L6R77yM5Lul6YG/5YWN57yW6L6R5Yay56qB44CCJyxcblx0XHRcdCd6aC1oYW50JzogJ+acrOmggeW3suiiq+S7luS6uuabtOaUueOAguiri+Wwh+aCqOeahOe3qOi8r+ikh+ijve+8jOS4pumHjeaWsOi8ieWFpemggemdou+8jOeEtuW+jOe5vOe6jOe3qOi8r++8jOS+humBv+WFjee3qOi8r+ihneeqgeOAgicsXG5cdFx0fSksXG5cdFx0UmVmcmVzaDogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdSZWZyZXNoJyxcblx0XHRcdGphOiAn5YaN6Kqt44G/6L6844G/Jyxcblx0XHRcdCd6aC1oYW5zJzogJ+WIt+aWsOmhtemdoicsXG5cdFx0XHQnemgtaGFudCc6ICfph43mlrDovInlhaUnLFxuXHRcdH0pLFxuXHR9O1xufTtcblxuY29uc3QgaTE4bk1lc3NhZ2VzID0gZ2V0STE4bk1lc3NhZ2VzKCk7XG5cbmNvbnN0IGdldE1lc3NhZ2U6IEdldE1lc3NhZ2VzPHR5cGVvZiBpMThuTWVzc2FnZXM+ID0gKGtleSkgPT4ge1xuXHRyZXR1cm4gaTE4bk1lc3NhZ2VzW2tleV0gfHwga2V5O1xufTtcblxuZXhwb3J0IHtnZXRNZXNzYWdlfTtcbiIsICJ7XG5cdFwidmVyc2lvblwiOiBcIjIuMFwiXG59XG4iLCAiaW1wb3J0ICogYXMgT1BUSU9OUyBmcm9tICcuLi9vcHRpb25zLmpzb24nO1xuaW1wb3J0IHtpbml0TXdBcGl9IGZyb20gJ2V4dC5nYWRnZXQuVXRpbCc7XG5cbmNvbnN0IGFwaTogbXcuQXBpID0gaW5pdE13QXBpKGBFZGl0Q29uZmxpY3QvJHtPUFRJT05TLnZlcnNpb259YCk7XG5cbmV4cG9ydCB7YXBpfTtcbiIsICJpbXBvcnQge2FwaX0gZnJvbSAnLi4vYXBpJztcblxuaW50ZXJmYWNlIFBhZ2VJbmZvIHtcblx0cXVlcnk/OiB7XG5cdFx0cGFnZXM6IEFycmF5PHtcblx0XHRcdG1pc3Npbmc/OiBib29sZWFuO1xuXHRcdFx0cmV2aXNpb25zOiBBcnJheTx7XG5cdFx0XHRcdHJldmlkOiBudW1iZXI7XG5cdFx0XHR9Pjtcblx0XHR9Pjtcblx0fTtcbn1cblxuY29uc3QgcGFyYW1zOiBBcGlRdWVyeVJldmlzaW9uc1BhcmFtcyA9IHtcblx0YWN0aW9uOiAncXVlcnknLFxuXHRmb3JtYXQ6ICdqc29uJyxcblx0Zm9ybWF0dmVyc2lvbjogJzInLFxuXHRwcm9wOiAncmV2aXNpb25zJyxcblx0cnZwcm9wOiAnaWRzJyxcbn07XG5cbmNvbnN0IHF1ZXJ5UGFnZUluZm8gPSBhc3luYyAodGl0bGU6IHN0cmluZyk6IFByb21pc2U8UGFnZUluZm8+ID0+IHtcblx0dHJ5IHtcblx0XHRyZXR1cm4gKGF3YWl0IGFwaS5nZXQoe1xuXHRcdFx0Li4ucGFyYW1zLFxuXHRcdFx0dGl0bGVzOiB0aXRsZSxcblx0XHR9IGFzIHR5cGVvZiBwYXJhbXMpKSBhcyBQYWdlSW5mbztcblx0fSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcblx0XHRjb25zb2xlLmVycm9yKCdbRWRpdENvbmZsaWN0XSBBamF4IGVycm9yOicsIGVycm9yKTtcblx0XHRyZXR1cm4ge307XG5cdH1cbn07XG5cbmV4cG9ydCB7cXVlcnlQYWdlSW5mb307XG4iLCAiaW1wb3J0IHtxdWVyeVBhZ2VJbmZvfSBmcm9tICcuL3V0aWwvcXVlcnlQYWdlSW5mbyc7XG5cbmNvbnN0IGdldEN1cnJlbnRSZXZpc2lvbklkID0gYXN5bmMgKHRpdGxlOiBzdHJpbmcpOiBQcm9taXNlPG51bWJlcj4gPT4ge1xuXHRjb25zdCBwYWdlSW5mbzogQXdhaXRlZDxSZXR1cm5UeXBlPHR5cGVvZiBxdWVyeVBhZ2VJbmZvPj4gPSBhd2FpdCBxdWVyeVBhZ2VJbmZvKHRpdGxlKTtcblxuXHRjb25zdCB7cXVlcnl9ID0gcGFnZUluZm87XG5cdGlmICghcXVlcnkpIHtcblx0XHRyZXR1cm4gMDtcblx0fVxuXG5cdGNvbnN0IFtwYWdlXSA9IHF1ZXJ5LnBhZ2VzO1xuXHRpZiAoIXBhZ2UgfHwgcGFnZS5taXNzaW5nKSB7XG5cdFx0cmV0dXJuIDA7XG5cdH1cblxuXHRyZXR1cm4gcGFnZS5yZXZpc2lvbnNbMF0hLnJldmlkO1xufTtcblxuZXhwb3J0IHtnZXRDdXJyZW50UmV2aXNpb25JZH07XG4iLCAiaW1wb3J0IHtlZGl0Q29uZmxpY3R9IGZyb20gJy4vbW9kdWxlcy9jb3JlJztcblxuY29uc3Qge3dnQWN0aW9uLCB3Z0N1clJldmlzaW9uSWR9ID0gbXcuY29uZmlnLmdldCgpO1xuXG5pZiAoWydlZGl0JywgJ3N1Ym1pdCddLmluY2x1ZGVzKHdnQWN0aW9uKSAmJiB3Z0N1clJldmlzaW9uSWQpIHtcblx0dm9pZCBlZGl0Q29uZmxpY3QoKTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsSUFBQUEscUJBQTZCQyxRQUFBLGlCQUFBOztBQ0E3QixJQUFBQyxxQkFBa0JDLFFBQUFGLFFBQUEsZ0JBQUEsR0FBQSxDQUFBOztBQ0FsQixJQUFBRyxvQkFBdUJILFFBQUEsaUJBQUE7QUFFdkIsSUFBTUksa0JBQWtCQSxNQUFNO0FBQzdCLFNBQU87SUFDTkMsU0FBQSxHQUFRRixrQkFBQUcsVUFBUztNQUNoQkMsSUFBSTtNQUNKQyxJQUFJO01BQ0osV0FBVztNQUNYLFdBQVc7SUFDWixDQUFDO0lBQ0RDLFVBQUEsR0FBU04sa0JBQUFHLFVBQVM7TUFDakJDLElBQUk7TUFDSkMsSUFBSTtNQUNKLFdBQVc7TUFDWCxXQUFXO0lBQ1osQ0FBQztFQUNGO0FBQ0Q7QUFFQSxJQUFNRSxlQUFlTixnQkFBZ0I7QUFFckMsSUFBTU8sYUFBZ0RDLFNBQVE7QUFDN0QsU0FBT0YsYUFBYUUsR0FBRyxLQUFLQTtBQUM3Qjs7QURwQkEsSUFBTUMsaUJBQWlCQSxNQUFNO0FBQzVCQyxXQUFTQyxPQUFPO0FBQ2hCLFNBQU87QUFDUjtBQUVBLElBQU1DLGdCQUFnQkEsTUFDckJmLG1DQUFBZ0IsUUFBQUMsY0FBQyxRQUFBLE1BQ0NQLFdBQVcsUUFBUSxHQUNwQlYsbUNBQUFnQixRQUFBQyxjQUFDLEtBQUE7RUFBRUMsU0FBU047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SSxDQUFDLFFBQVEsUUFBUSxFQUFFd0MsU0FBU0QsUUFBUSxLQUFLWCxpQkFBaUI7QUFDN0QsT0FBS1YsYUFBYTtBQUNuQjsiLAogICJuYW1lcyI6IFsiaW1wb3J0X2V4dF9nYWRnZXQ0IiwgInJlcXVpcmUiLCAiaW1wb3J0X2V4dF9nYWRnZXQyIiwgIl9fdG9FU00iLCAiaW1wb3J0X2V4dF9nYWRnZXQiLCAiZ2V0STE4bk1lc3NhZ2VzIiwgIk5vdGljZSIsICJsb2NhbGl6ZSIsICJlbiIsICJqYSIsICJSZWZyZXNoIiwgImkxOG5NZXNzYWdlcyIsICJnZXRNZXNzYWdlIiwgImtleSIsICJsb2NhdGlvblJlbG9hZCIsICJsb2NhdGlvbiIsICJyZWxvYWQiLCAiTm90aWNlTWVzc2FnZSIsICJkZWZhdWx0IiwgImNyZWF0ZUVsZW1lbnQiLCAib25DbGljayIsICJ2ZXJzaW9uIiwgImltcG9ydF9leHRfZ2FkZ2V0MyIsICJhcGkiLCAiaW5pdE13QXBpIiwgImNvbmNhdCIsICJwYXJhbXMiLCAiYWN0aW9uIiwgImZvcm1hdCIsICJmb3JtYXR2ZXJzaW9uIiwgInByb3AiLCAicnZwcm9wIiwgInF1ZXJ5UGFnZUluZm8iLCAiX3JlZiIsICJfYXN5bmNUb0dlbmVyYXRvciIsICJ0aXRsZSIsICJnZXQiLCAidGl0bGVzIiwgImVycm9yIiwgImNvbnNvbGUiLCAiX3giLCAiYXBwbHkiLCAiYXJndW1lbnRzIiwgImdldEN1cnJlbnRSZXZpc2lvbklkIiwgIl9yZWYyIiwgInBhZ2VJbmZvIiwgInF1ZXJ5IiwgInBhZ2UiLCAicGFnZXMiLCAibWlzc2luZyIsICJyZXZpc2lvbnMiLCAicmV2aWQiLCAiX3gyIiwgImltcG9ydF9leHRfZ2FkZ2V0NSIsICJlZGl0Q29uZmxpY3QiLCAiX3JlZjMiLCAiaXNDb250aW51ZSIsICJnZXRCb2R5IiwgInRoZW4iLCAiJGJvZHkiLCAiZmluZCIsICJvbiIsICJjaGVja0VkaXRDb25mbGljdCIsICJfcmVmNCIsICJ3Z0N1clJldmlzaW9uSWQiLCAid2dDdXJSZXZpc2lvbklkMiIsICJ3Z1BhZ2VOYW1lIiwgIm13IiwgImNvbmZpZyIsICJwYWdlUmV2aXNpb25JZCIsICJ0b2FzdGlmeSIsICJub2RlIiwgImNsb3NlIiwgImR1cmF0aW9uIiwgImRlbGF5IiwgIndnQWN0aW9uIiwgImluY2x1ZGVzIl0KfQo= diff --git a/dist/Editform_AiAssisted/Editform_AiAssisted.js b/dist/Editform_AiAssisted/Editform_AiAssisted.js index 4ddfadbbe..d33c46f77 100644 --- a/dist/Editform_AiAssisted/Editform_AiAssisted.js +++ b/dist/Editform_AiAssisted/Editform_AiAssisted.js @@ -150,7 +150,7 @@ void (0, import_ext_gadget2.getBody)().then(function editForm($body) { }); }); mw.hook("ve.saveDialog.stateChanged").add(() => { - processVisualEditor($body); + processVisualEditor(); }); }); @@ -158,4 +158,4 @@ void (0, import_ext_gadget2.getBody)().then(function editForm($body) { /* */ -//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL0VkaXRmb3JtX0FpQXNzaXN0ZWQvRWRpdGZvcm1fQWlBc3Npc3RlZC50cyIsICJzcmMvRWRpdGZvcm1fQWlBc3Npc3RlZC9vcHRpb25zLmpzb24iLCAic3JjL0VkaXRmb3JtX0FpQXNzaXN0ZWQvbW9kdWxlcy9pMThuLnRzIiwgInNyYy9FZGl0Zm9ybV9BaUFzc2lzdGVkL21vZHVsZXMvcHJvY2Vzc1Zpc3VhbEVkaXRvci50cyIsICJzcmMvRWRpdGZvcm1fQWlBc3Npc3RlZC9tb2R1bGVzL3Byb2Nlc3NXaWtpRWRpdG9yLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQge2dldEJvZHl9IGZyb20gJ2V4dC5nYWRnZXQuVXRpbCc7XG5pbXBvcnQge3Byb2Nlc3NWaXN1YWxFZGl0b3J9IGZyb20gJy4vbW9kdWxlcy9wcm9jZXNzVmlzdWFsRWRpdG9yJztcbmltcG9ydCB7cHJvY2Vzc1dpa2lFZGl0b3J9IGZyb20gJy4vbW9kdWxlcy9wcm9jZXNzV2lraUVkaXRvcic7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEFJ6L6F5Yqp57yW6L6R54m55q6K5aOw5piOXG4gKi9cbnZvaWQgZ2V0Qm9keSgpLnRoZW4oZnVuY3Rpb24gZWRpdEZvcm0oJGJvZHk6IEpRdWVyeTxIVE1MQm9keUVsZW1lbnQ+KTogdm9pZCB7XG5cdG13Lmhvb2soJ3dpa2lwYWdlLmVkaXRmb3JtJykuYWRkKCgkZWRpdEZvcm0pOiB2b2lkID0+IHtcblx0XHRwcm9jZXNzV2lraUVkaXRvcih7XG5cdFx0XHQkYm9keSxcblx0XHRcdCRlZGl0Rm9ybSxcblx0XHR9KTtcblx0fSk7XG5cblx0bXcuaG9vaygndmUuc2F2ZURpYWxvZy5zdGF0ZUNoYW5nZWQnKS5hZGQoKCk6IHZvaWQgPT4ge1xuXHRcdHByb2Nlc3NWaXN1YWxFZGl0b3IoJGJvZHkpO1xuXHR9KTtcbn0pO1xuIiwgIntcblx0XCJjaGFuZ2VUYWdcIjogXCJBSV9hc3Npc3RlZFwiLFxuXHRcImNvbmZpZ0tleVwiOiBcImdhZGdldC1FZGl0Zm9ybV9BaUFzc2lzdGVkX19Jbml0aWFsaXplZFwiLFxuXHRcImNvbmZpZ0tleVZlXCI6IFwiZ2FkZ2V0LUVkaXRmb3JtX0FpQXNzaXN0ZWRfX0luaXRpYWxpemVkX19WRVwiLFxuXHRcImlucHV0SWRcIjogXCJlZGl0Zm9ybV9haV9hc3Npc3RlZFwiLFxuXHRcInRhcmdldFdpa2lFZGl0b3JcIjogXCIuZWRpdENoZWNrYm94ZXMgLm9vLXVpLWhvcml6b250YWxMYXlvdXRcIlxufVxuIiwgImltcG9ydCB7bG9jYWxpemV9IGZyb20gJ2V4dC5nYWRnZXQuaTE4bic7XG5cbmNvbnN0IGdldEkxOG5NZXNzYWdlcyA9ICgpID0+IHtcblx0cmV0dXJuIHtcblx0XHRBaUFzc2lzdGVkOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ1RoaXMgZWRpdGVkIGNvbnRlbnQgd2FzIGFzc2lzdGVkIGJ5IGFydGlmaWNpYWwgaW50ZWxsaWdlbmNlJyxcblx0XHRcdGphOiAn44GT44Gu57eo6ZuG5YaF5a6544Gv5Lq65bel55+l6IO944Gr44KI44KL5pSv5o+044KS5Y+X44GR44Gm44GE44G+44GZJyxcblx0XHRcdCd6aC1oYW5zJzogJ+atpOe8lui+keeUseS6uuW3peaZuuiDve+8iEFJ77yJ6L6F5YqpJyxcblx0XHRcdCd6aC1oYW50JzogJ+atpOe3qOi8r+eUseS6uuW3peaZuuiDve+8iEFJ77yJ6LyU5YqpJyxcblx0XHR9KSxcblx0fTtcbn07XG5cbmNvbnN0IGkxOG5NZXNzYWdlcyA9IGdldEkxOG5NZXNzYWdlcygpO1xuXG5jb25zdCBnZXRNZXNzYWdlOiBHZXRNZXNzYWdlczx0eXBlb2YgaTE4bk1lc3NhZ2VzPiA9IChrZXkpID0+IHtcblx0cmV0dXJuIGkxOG5NZXNzYWdlc1trZXldIHx8IGtleTtcbn07XG5cbmV4cG9ydCB7Z2V0TWVzc2FnZX07XG4iLCAiaW1wb3J0ICogYXMgT1BUSU9OUyBmcm9tICd+L0VkaXRmb3JtX0FpQXNzaXN0ZWQvb3B0aW9ucy5qc29uJztcbmltcG9ydCB7Z2V0TWVzc2FnZX0gZnJvbSAnLi9pMThuJztcblxuY29uc3QgcHJvY2Vzc1Zpc3VhbEVkaXRvciA9ICgpOiB2b2lkID0+IHtcblx0Ly8gR3VhcmQgYWdhaW5zdCBkb3VibGUgaW5jbHVzaW9uc1xuXHRpZiAobXcuY29uZmlnLmdldChPUFRJT05TLmNvbmZpZ0tleVZlKSkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGNvbnN0IHt0YXJnZXR9ID0gd2luZG93LnZlLmluaXQ7XG5cdGNvbnN0IHtzYXZlRGlhbG9nLCBzYXZlRmllbGRzfSA9IHRhcmdldDtcblx0Y29uc3QgeyRzYXZlQ2hlY2tib3hlc30gPSBzYXZlRGlhbG9nO1xuXHRpZiAoISRzYXZlQ2hlY2tib3hlcy5sZW5ndGgpIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHQvLyBTZXQgZ3VhcmRcblx0bXcuY29uZmlnLnNldChPUFRJT05TLmNvbmZpZ0tleVZlLCB0cnVlKTtcblxuXHRjb25zdCBjaGVja2JveDogT08udWkuQ2hlY2tib3hJbnB1dFdpZGdldCA9IG5ldyBPTy51aS5DaGVja2JveElucHV0V2lkZ2V0KHtcblx0XHRzZWxlY3RlZDogZmFsc2UsXG5cdH0pO1xuXG5cdGNoZWNrYm94LnNldElucHV0SWQoT1BUSU9OUy5pbnB1dElkKTtcblxuXHRjaGVja2JveC5vbignY2hhbmdlJywgKCk6IHZvaWQgPT4ge1xuXHRcdGNvbnN0IGNoYW5nZVRhZzogc3RyaW5nID0gT1BUSU9OUy5jaGFuZ2VUYWc7XG5cdFx0Y29uc3QgZ2VuZXJhdGVDaGFuZ2VUYWdzID0gKG9yaWdpbkNoYW5nZVRhZ3M6IHN0cmluZyk6IHN0cmluZyA9PiB7XG5cdFx0XHRyZXR1cm4gY2hlY2tib3guaXNTZWxlY3RlZCgpXG5cdFx0XHRcdD8gYCR7b3JpZ2luQ2hhbmdlVGFnc30sJHtjaGFuZ2VUYWd9YFxuXHRcdFx0XHQ6IG9yaWdpbkNoYW5nZVRhZ3MucmVwbGFjZShgLCR7Y2hhbmdlVGFnfWAsICcnKTtcblx0XHR9O1xuXG5cdFx0bGV0IGNoYW5nZVRhZ3M6IHN0cmluZyA9ICcnO1xuXHRcdGNoYW5nZVRhZ3MgPSBnZW5lcmF0ZUNoYW5nZVRhZ3Moc2F2ZUZpZWxkcy53cENoYW5nZVRhZ3M/LigpID8/ICcnKTtcblx0XHRzYXZlRmllbGRzLndwQ2hhbmdlVGFncyA9ICgpOiBzdHJpbmcgPT4ge1xuXHRcdFx0cmV0dXJuIGNoYW5nZVRhZ3M7XG5cdFx0fTtcblx0fSk7XG5cblx0Y29uc3QgY2hlY2tib3hMYXlvdXQ6IE9PLnVpLkZpZWxkTGF5b3V0PE9PLnVpLkNoZWNrYm94SW5wdXRXaWRnZXQ+ID0gbmV3IE9PLnVpLkZpZWxkTGF5b3V0KGNoZWNrYm94LCB7XG5cdFx0YWxpZ246ICdpbmxpbmUnLFxuXHRcdGxhYmVsOiBnZXRNZXNzYWdlKCdBaUFzc2lzdGVkJyksXG5cdH0pO1xuXG5cdGlmICghc2F2ZURpYWxvZy4kZWxlbWVudC5maW5kKGAjJHtPUFRJT05TLmlucHV0SWR9YCkubGVuZ3RoKSB7XG5cdFx0JHNhdmVDaGVja2JveGVzLmFwcGVuZChjaGVja2JveExheW91dC4kZWxlbWVudCk7XG5cdH1cblxuXHQvLyBSZWluaXRpYWxpemF0aW9uIGlzIHJlcXVpcmVkIGZvciBzd2l0Y2hpbmcgYmV0d2VlbiBWaXN1YWxFZGl0b3IgYW5kIE5ldyBXaWtpdGV4dCBFZGl0b3IgKDIwMTcpXG5cdG13Lmhvb2soJ3ZlLmFjdGl2YXRpb25Db21wbGV0ZScpLmFkZCgoKSA9PiB7XG5cdFx0aWYgKG13LmNvbmZpZy5nZXQoT1BUSU9OUy5jb25maWdLZXlWZSkpIHtcblx0XHRcdG13LmNvbmZpZy5zZXQoT1BUSU9OUy5jb25maWdLZXlWZSwgZmFsc2UpO1xuXHRcdH1cblx0fSk7XG59O1xuXG5leHBvcnQge3Byb2Nlc3NWaXN1YWxFZGl0b3J9O1xuIiwgImltcG9ydCAqIGFzIE9QVElPTlMgZnJvbSAnfi9FZGl0Zm9ybV9BaUFzc2lzdGVkL29wdGlvbnMuanNvbic7XG5pbXBvcnQge2dldE1lc3NhZ2V9IGZyb20gJy4vaTE4bic7XG5cbmNvbnN0IHByb2Nlc3NXaWtpRWRpdG9yID0gKHskYm9keSwgJGVkaXRGb3JtfTogeyRib2R5OiBKUXVlcnk8SFRNTEJvZHlFbGVtZW50PjsgJGVkaXRGb3JtPzogSlF1ZXJ5fSk6IHZvaWQgPT4ge1xuXHQvLyBHdWFyZCBhZ2FpbnN0IGRvdWJsZSBpbmNsdXNpb25zXG5cdGlmIChtdy5jb25maWcuZ2V0KE9QVElPTlMuY29uZmlnS2V5KSkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGNvbnN0ICR0YXJnZXQ6IEpRdWVyeSA9ICgkZWRpdEZvcm0gYXMgSlF1ZXJ5KS5maW5kKE9QVElPTlMudGFyZ2V0V2lraUVkaXRvcik7XG5cdGlmICghJHRhcmdldC5sZW5ndGgpIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRtdy5jb25maWcuc2V0KE9QVElPTlMuY29uZmlnS2V5LCB0cnVlKTtcblxuXHRjb25zdCBjaGVja2JveDogT08udWkuQ2hlY2tib3hJbnB1dFdpZGdldCA9IG5ldyBPTy51aS5DaGVja2JveElucHV0V2lkZ2V0KHtcblx0XHRzZWxlY3RlZDogZmFsc2UsXG5cdH0pO1xuXG5cdGNoZWNrYm94LnNldElucHV0SWQoT1BUSU9OUy5pbnB1dElkKTtcblxuXHRjaGVja2JveC5vbignY2hhbmdlJywgKCk6IHZvaWQgPT4ge1xuXHRcdGNvbnN0IGNoYW5nZVRhZzogc3RyaW5nID0gT1BUSU9OUy5jaGFuZ2VUYWc7XG5cdFx0Y29uc3QgZ2VuZXJhdGVDaGFuZ2VUYWdzID0gKG9yaWdpbkNoYW5nZVRhZ3M6IHN0cmluZyk6IHN0cmluZyA9PiB7XG5cdFx0XHRyZXR1cm4gY2hlY2tib3guaXNTZWxlY3RlZCgpXG5cdFx0XHRcdD8gYCR7b3JpZ2luQ2hhbmdlVGFnc30sJHtjaGFuZ2VUYWd9YFxuXHRcdFx0XHQ6IG9yaWdpbkNoYW5nZVRhZ3MucmVwbGFjZShgLCR7Y2hhbmdlVGFnfWAsICcnKTtcblx0XHR9O1xuXG5cdFx0bGV0IGNoYW5nZVRhZ3M6IHN0cmluZyA9ICcnO1xuXG5cdFx0Y29uc3QgJHdwQ2hhbmdlVGFnczogSlF1ZXJ5ID0gJCgnPGlucHV0PicpLmF0dHIoe1xuXHRcdFx0aWQ6ICd3cENoYW5nZVRhZ3MnLFxuXHRcdFx0bmFtZTogJ3dwQ2hhbmdlVGFncycsXG5cdFx0XHR0eXBlOiAnaGlkZGVuJyxcblx0XHRcdHZhbHVlOiAnJyxcblx0XHR9KTtcblx0XHQkYm9keSA9ICgkZWRpdEZvcm0gYXMgSlF1ZXJ5KS5wYXJlbnRzKCdib2R5Jyk7XG5cdFx0Y29uc3QgJG9yaWdpbldwQ2hhbmdlVGFnczogSlF1ZXJ5ID0gJGJvZHkuZmluZCgnaW5wdXRbbmFtZT13cENoYW5nZVRhZ3NdJyk7XG5cdFx0aWYgKCEkb3JpZ2luV3BDaGFuZ2VUYWdzLmxlbmd0aCkge1xuXHRcdFx0JGJvZHkucHJlcGVuZCgkd3BDaGFuZ2VUYWdzKTtcblx0XHR9XG5cdFx0Y2hhbmdlVGFncyA9IGdlbmVyYXRlQ2hhbmdlVGFncygkb3JpZ2luV3BDaGFuZ2VUYWdzLnZhbCgpPy50b1N0cmluZygpID8/ICcnKTtcblx0XHQkb3JpZ2luV3BDaGFuZ2VUYWdzLnZhbChjaGFuZ2VUYWdzKTtcblx0fSk7XG5cblx0Y29uc3QgY2hlY2tib3hMYXlvdXQ6IE9PLnVpLkZpZWxkTGF5b3V0PE9PLnVpLkNoZWNrYm94SW5wdXRXaWRnZXQ+ID0gbmV3IE9PLnVpLkZpZWxkTGF5b3V0KGNoZWNrYm94LCB7XG5cdFx0YWxpZ246ICdpbmxpbmUnLFxuXHRcdGxhYmVsOiBnZXRNZXNzYWdlKCdBaUFzc2lzdGVkJyksXG5cdH0pO1xuXG5cdGlmICghJGJvZHkuZmluZChgIyR7T1BUSU9OUy5pbnB1dElkfWApLmxlbmd0aCkge1xuXHRcdCR0YXJnZXQuYXBwZW5kKGNoZWNrYm94TGF5b3V0LiRlbGVtZW50KTtcblx0fVxufTtcblxuZXhwb3J0IHtwcm9jZXNzV2lraUVkaXRvcn07XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLElBQUFBLHFCQUFzQkMsUUFBQSxpQkFBQTs7QUNDckIsSUFBQUMsWUFBYTtBQUNiLElBQUFDLFlBQWE7QUFDYixJQUFBQyxjQUFlO0FBQ2YsSUFBQUMsVUFBVztBQUNYLElBQUFDLG1CQUFvQjs7QUNMckIsSUFBQUMsb0JBQXVCTixRQUFBLGlCQUFBO0FBRXZCLElBQU1PLGtCQUFrQkEsTUFBTTtBQUM3QixTQUFPO0lBQ05DLGFBQUEsR0FBWUYsa0JBQUFHLFVBQVM7TUFDcEJDLElBQUk7TUFDSkMsSUFBSTtNQUNKLFdBQVc7TUFDWCxXQUFXO0lBQ1osQ0FBQztFQUNGO0FBQ0Q7QUFFQSxJQUFNQyxlQUFlTCxnQkFBZ0I7QUFFckMsSUFBTU0sYUFBZ0RDLFNBQVE7QUFDN0QsU0FBT0YsYUFBYUUsR0FBRyxLQUFLQTtBQUM3Qjs7QUNkQSxJQUFNQyxzQkFBc0JBLE1BQVk7QUFFdkMsTUFBSUMsR0FBR0MsT0FBT0MsSUFBWWYsV0FBVyxHQUFHO0FBQ3ZDO0VBQ0Q7QUFFQSxRQUFNO0lBQUNnQjtFQUFNLElBQUlDLE9BQU9DLEdBQUdDO0FBQzNCLFFBQU07SUFBQ0M7SUFBWUM7RUFBVSxJQUFJTDtBQUNqQyxRQUFNO0lBQUNNO0VBQWUsSUFBSUY7QUFDMUIsTUFBSSxDQUFDRSxnQkFBZ0JDLFFBQVE7QUFDNUI7RUFDRDtBQUdBVixLQUFHQyxPQUFPVSxJQUFZeEIsYUFBYSxJQUFJO0FBRXZDLFFBQU15QixXQUFzQyxJQUFJQyxHQUFHQyxHQUFHQyxvQkFBb0I7SUFDekVDLFVBQVU7RUFDWCxDQUFDO0FBRURKLFdBQVNLLFdBQW1CN0IsT0FBTztBQUVuQ3dCLFdBQVNNLEdBQUcsVUFBVSxNQUFZO0FBQUEsUUFBQUMsdUJBQUFDO0FBQ2pDLFVBQU1DLGFBQTRCcEM7QUFDbEMsVUFBTXFDLHFCQUFzQkMsc0JBQXFDO0FBQ2hFLGFBQU9YLFNBQVNZLFdBQVcsSUFBQSxHQUFBQyxPQUNyQkYsa0JBQWdCLEdBQUEsRUFBQUUsT0FBSUosVUFBUyxJQUNoQ0UsaUJBQWlCRyxRQUFBLElBQUFELE9BQVlKLFVBQVMsR0FBSSxFQUFFO0lBQ2hEO0FBRUEsUUFBSU0sYUFBcUI7QUFDekJBLGlCQUFhTCxvQkFBQUgseUJBQUFDLHlCQUFtQlosV0FBV29CLGtCQUFBLFFBQUFSLDJCQUFBLFNBQUEsU0FBWEEsdUJBQUFTLEtBQUFyQixVQUEwQixPQUFBLFFBQUFXLDBCQUFBLFNBQUFBLHdCQUFLLEVBQUU7QUFDakVYLGVBQVdvQixlQUFlLE1BQWM7QUFDdkMsYUFBT0Q7SUFDUjtFQUNELENBQUM7QUFFRCxRQUFNRyxpQkFBK0QsSUFBSWpCLEdBQUdDLEdBQUdpQixZQUFZbkIsVUFBVTtJQUNwR29CLE9BQU87SUFDUEMsT0FBT3BDLFdBQVcsWUFBWTtFQUMvQixDQUFDO0FBRUQsTUFBSSxDQUFDVSxXQUFXMkIsU0FBU0MsS0FBQSxJQUFBVixPQUFpQnJDLE9BQU8sQ0FBRSxFQUFFc0IsUUFBUTtBQUM1REQsb0JBQWdCMkIsT0FBT04sZUFBZUksUUFBUTtFQUMvQztBQUdBbEMsS0FBR3FDLEtBQUssdUJBQXVCLEVBQUVDLElBQUksTUFBTTtBQUMxQyxRQUFJdEMsR0FBR0MsT0FBT0MsSUFBWWYsV0FBVyxHQUFHO0FBQ3ZDYSxTQUFHQyxPQUFPVSxJQUFZeEIsYUFBYSxLQUFLO0lBQ3pDO0VBQ0QsQ0FBQztBQUNGOztBQ3BEQSxJQUFNb0Qsb0JBQW9CQSxDQUFDO0VBQUNDO0VBQU9DO0FBQVMsTUFBa0U7QUFFN0csTUFBSXpDLEdBQUdDLE9BQU9DLElBQVloQixTQUFTLEdBQUc7QUFDckM7RUFDRDtBQUVBLFFBQU13RCxVQUFtQkQsVUFBcUJOLEtBQWE5QyxnQkFBZ0I7QUFDM0UsTUFBSSxDQUFDcUQsUUFBUWhDLFFBQVE7QUFDcEI7RUFDRDtBQUVBVixLQUFHQyxPQUFPVSxJQUFZekIsV0FBVyxJQUFJO0FBRXJDLFFBQU0wQixXQUFzQyxJQUFJQyxHQUFHQyxHQUFHQyxvQkFBb0I7SUFDekVDLFVBQVU7RUFDWCxDQUFDO0FBRURKLFdBQVNLLFdBQW1CN0IsT0FBTztBQUVuQ3dCLFdBQVNNLEdBQUcsVUFBVSxNQUFZO0FBQUEsUUFBQXlCLHVCQUFBQztBQUNqQyxVQUFNdkIsYUFBNEJwQztBQUNsQyxVQUFNcUMscUJBQXNCQyxzQkFBcUM7QUFDaEUsYUFBT1gsU0FBU1ksV0FBVyxJQUFBLEdBQUFDLE9BQ3JCRixrQkFBZ0IsR0FBQSxFQUFBRSxPQUFJSixVQUFTLElBQ2hDRSxpQkFBaUJHLFFBQUEsSUFBQUQsT0FBWUosVUFBUyxHQUFJLEVBQUU7SUFDaEQ7QUFFQSxRQUFJTSxhQUFxQjtBQUV6QixVQUFNa0IsZ0JBQXdCQyxFQUFFLFNBQVMsRUFBRUMsS0FBSztNQUMvQ0MsSUFBSTtNQUNKQyxNQUFNO01BQ05DLE1BQU07TUFDTkMsT0FBTztJQUNSLENBQUM7QUFDRFgsWUFBU0MsVUFBcUJXLFFBQVEsTUFBTTtBQUM1QyxVQUFNQyxzQkFBOEJiLE1BQU1MLEtBQUssMEJBQTBCO0FBQ3pFLFFBQUksQ0FBQ2tCLG9CQUFvQjNDLFFBQVE7QUFDaEM4QixZQUFNYyxRQUFRVCxhQUFhO0lBQzVCO0FBQ0FsQixpQkFBYUwsb0JBQUFxQix5QkFBQUMseUJBQW1CUyxvQkFBb0JFLElBQUksT0FBQSxRQUFBWCwyQkFBQSxTQUFBLFNBQXhCQSx1QkFBMkJZLFNBQVMsT0FBQSxRQUFBYiwwQkFBQSxTQUFBQSx3QkFBSyxFQUFFO0FBQzNFVSx3QkFBb0JFLElBQUk1QixVQUFVO0VBQ25DLENBQUM7QUFFRCxRQUFNRyxpQkFBK0QsSUFBSWpCLEdBQUdDLEdBQUdpQixZQUFZbkIsVUFBVTtJQUNwR29CLE9BQU87SUFDUEMsT0FBT3BDLFdBQVcsWUFBWTtFQUMvQixDQUFDO0FBRUQsTUFBSSxDQUFDMkMsTUFBTUwsS0FBQSxJQUFBVixPQUFpQnJDLE9BQU8sQ0FBRSxFQUFFc0IsUUFBUTtBQUM5Q2dDLFlBQVFOLE9BQU9OLGVBQWVJLFFBQVE7RUFDdkM7QUFDRDs7QUpoREEsTUFBQSxHQUFLbkQsbUJBQUEwRSxTQUFRLEVBQUVDLEtBQUssU0FBU0MsU0FBU25CLE9BQXNDO0FBQzNFeEMsS0FBR3FDLEtBQUssbUJBQW1CLEVBQUVDLElBQUtHLGVBQW9CO0FBQ3JERixzQkFBa0I7TUFDakJDO01BQ0FDO0lBQ0QsQ0FBQztFQUNGLENBQUM7QUFFRHpDLEtBQUdxQyxLQUFLLDRCQUE0QixFQUFFQyxJQUFJLE1BQVk7QUFDckR2Qyx3QkFBb0J5QyxLQUFLO0VBQzFCLENBQUM7QUFDRixDQUFDOyIsCiAgIm5hbWVzIjogWyJpbXBvcnRfZXh0X2dhZGdldDIiLCAicmVxdWlyZSIsICJjaGFuZ2VUYWciLCAiY29uZmlnS2V5IiwgImNvbmZpZ0tleVZlIiwgImlucHV0SWQiLCAidGFyZ2V0V2lraUVkaXRvciIsICJpbXBvcnRfZXh0X2dhZGdldCIsICJnZXRJMThuTWVzc2FnZXMiLCAiQWlBc3Npc3RlZCIsICJsb2NhbGl6ZSIsICJlbiIsICJqYSIsICJpMThuTWVzc2FnZXMiLCAiZ2V0TWVzc2FnZSIsICJrZXkiLCAicHJvY2Vzc1Zpc3VhbEVkaXRvciIsICJtdyIsICJjb25maWciLCAiZ2V0IiwgInRhcmdldCIsICJ3aW5kb3ciLCAidmUiLCAiaW5pdCIsICJzYXZlRGlhbG9nIiwgInNhdmVGaWVsZHMiLCAiJHNhdmVDaGVja2JveGVzIiwgImxlbmd0aCIsICJzZXQiLCAiY2hlY2tib3giLCAiT08iLCAidWkiLCAiQ2hlY2tib3hJbnB1dFdpZGdldCIsICJzZWxlY3RlZCIsICJzZXRJbnB1dElkIiwgIm9uIiwgIl9zYXZlRmllbGRzJHdwQ2hhbmdlVCIsICJfc2F2ZUZpZWxkcyR3cENoYW5nZVQyIiwgImNoYW5nZVRhZzIiLCAiZ2VuZXJhdGVDaGFuZ2VUYWdzIiwgIm9yaWdpbkNoYW5nZVRhZ3MiLCAiaXNTZWxlY3RlZCIsICJjb25jYXQiLCAicmVwbGFjZSIsICJjaGFuZ2VUYWdzIiwgIndwQ2hhbmdlVGFncyIsICJjYWxsIiwgImNoZWNrYm94TGF5b3V0IiwgIkZpZWxkTGF5b3V0IiwgImFsaWduIiwgImxhYmVsIiwgIiRlbGVtZW50IiwgImZpbmQiLCAiYXBwZW5kIiwgImhvb2siLCAiYWRkIiwgInByb2Nlc3NXaWtpRWRpdG9yIiwgIiRib2R5IiwgIiRlZGl0Rm9ybSIsICIkdGFyZ2V0IiwgIl8kb3JpZ2luV3BDaGFuZ2VUYWdzJCIsICJfJG9yaWdpbldwQ2hhbmdlVGFncyQyIiwgIiR3cENoYW5nZVRhZ3MiLCAiJCIsICJhdHRyIiwgImlkIiwgIm5hbWUiLCAidHlwZSIsICJ2YWx1ZSIsICJwYXJlbnRzIiwgIiRvcmlnaW5XcENoYW5nZVRhZ3MiLCAicHJlcGVuZCIsICJ2YWwiLCAidG9TdHJpbmciLCAiZ2V0Qm9keSIsICJ0aGVuIiwgImVkaXRGb3JtIl0KfQo= +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL0VkaXRmb3JtX0FpQXNzaXN0ZWQvRWRpdGZvcm1fQWlBc3Npc3RlZC50cyIsICJzcmMvRWRpdGZvcm1fQWlBc3Npc3RlZC9vcHRpb25zLmpzb24iLCAic3JjL0VkaXRmb3JtX0FpQXNzaXN0ZWQvbW9kdWxlcy9pMThuLnRzIiwgInNyYy9FZGl0Zm9ybV9BaUFzc2lzdGVkL21vZHVsZXMvcHJvY2Vzc1Zpc3VhbEVkaXRvci50cyIsICJzcmMvRWRpdGZvcm1fQWlBc3Npc3RlZC9tb2R1bGVzL3Byb2Nlc3NXaWtpRWRpdG9yLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQge2dldEJvZHl9IGZyb20gJ2V4dC5nYWRnZXQuVXRpbCc7XG5pbXBvcnQge3Byb2Nlc3NWaXN1YWxFZGl0b3J9IGZyb20gJy4vbW9kdWxlcy9wcm9jZXNzVmlzdWFsRWRpdG9yJztcbmltcG9ydCB7cHJvY2Vzc1dpa2lFZGl0b3J9IGZyb20gJy4vbW9kdWxlcy9wcm9jZXNzV2lraUVkaXRvcic7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEFJ6L6F5Yqp57yW6L6R54m55q6K5aOw5piOXG4gKi9cbnZvaWQgZ2V0Qm9keSgpLnRoZW4oZnVuY3Rpb24gZWRpdEZvcm0oJGJvZHk6IEpRdWVyeTxIVE1MQm9keUVsZW1lbnQ+KTogdm9pZCB7XG5cdG13Lmhvb2soJ3dpa2lwYWdlLmVkaXRmb3JtJykuYWRkKCgkZWRpdEZvcm0pOiB2b2lkID0+IHtcblx0XHRwcm9jZXNzV2lraUVkaXRvcih7XG5cdFx0XHQkYm9keSxcblx0XHRcdCRlZGl0Rm9ybSxcblx0XHR9KTtcblx0fSk7XG5cblx0bXcuaG9vaygndmUuc2F2ZURpYWxvZy5zdGF0ZUNoYW5nZWQnKS5hZGQoKCk6IHZvaWQgPT4ge1xuXHRcdHByb2Nlc3NWaXN1YWxFZGl0b3IoKTtcblx0fSk7XG59KTtcbiIsICJ7XG5cdFwiY2hhbmdlVGFnXCI6IFwiQUlfYXNzaXN0ZWRcIixcblx0XCJjb25maWdLZXlcIjogXCJnYWRnZXQtRWRpdGZvcm1fQWlBc3Npc3RlZF9fSW5pdGlhbGl6ZWRcIixcblx0XCJjb25maWdLZXlWZVwiOiBcImdhZGdldC1FZGl0Zm9ybV9BaUFzc2lzdGVkX19Jbml0aWFsaXplZF9fVkVcIixcblx0XCJpbnB1dElkXCI6IFwiZWRpdGZvcm1fYWlfYXNzaXN0ZWRcIixcblx0XCJ0YXJnZXRXaWtpRWRpdG9yXCI6IFwiLmVkaXRDaGVja2JveGVzIC5vby11aS1ob3Jpem9udGFsTGF5b3V0XCJcbn1cbiIsICJpbXBvcnQge2xvY2FsaXplfSBmcm9tICdleHQuZ2FkZ2V0LmkxOG4nO1xuXG5jb25zdCBnZXRJMThuTWVzc2FnZXMgPSAoKSA9PiB7XG5cdHJldHVybiB7XG5cdFx0QWlBc3Npc3RlZDogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdUaGlzIGVkaXRlZCBjb250ZW50IHdhcyBhc3Npc3RlZCBieSBhcnRpZmljaWFsIGludGVsbGlnZW5jZScsXG5cdFx0XHRqYTogJ+OBk+OBrue3qOmbhuWGheWuueOBr+S6uuW3peefpeiDveOBq+OCiOOCi+aUr+aPtOOCkuWPl+OBkeOBpuOBhOOBvuOBmScsXG5cdFx0XHQnemgtaGFucyc6ICfmraTnvJbovpHnlLHkurrlt6Xmmbrog73vvIhBSe+8iei+heWKqScsXG5cdFx0XHQnemgtaGFudCc6ICfmraTnt6jovK/nlLHkurrlt6Xmmbrog73vvIhBSe+8iei8lOWKqScsXG5cdFx0fSksXG5cdH07XG59O1xuXG5jb25zdCBpMThuTWVzc2FnZXMgPSBnZXRJMThuTWVzc2FnZXMoKTtcblxuY29uc3QgZ2V0TWVzc2FnZTogR2V0TWVzc2FnZXM8dHlwZW9mIGkxOG5NZXNzYWdlcz4gPSAoa2V5KSA9PiB7XG5cdHJldHVybiBpMThuTWVzc2FnZXNba2V5XSB8fCBrZXk7XG59O1xuXG5leHBvcnQge2dldE1lc3NhZ2V9O1xuIiwgImltcG9ydCAqIGFzIE9QVElPTlMgZnJvbSAnfi9FZGl0Zm9ybV9BaUFzc2lzdGVkL29wdGlvbnMuanNvbic7XG5pbXBvcnQge2dldE1lc3NhZ2V9IGZyb20gJy4vaTE4bic7XG5cbmNvbnN0IHByb2Nlc3NWaXN1YWxFZGl0b3IgPSAoKTogdm9pZCA9PiB7XG5cdC8vIEd1YXJkIGFnYWluc3QgZG91YmxlIGluY2x1c2lvbnNcblx0aWYgKG13LmNvbmZpZy5nZXQoT1BUSU9OUy5jb25maWdLZXlWZSkpIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRjb25zdCB7dGFyZ2V0fSA9IHdpbmRvdy52ZS5pbml0O1xuXHRjb25zdCB7c2F2ZURpYWxvZywgc2F2ZUZpZWxkc30gPSB0YXJnZXQ7XG5cdGNvbnN0IHskc2F2ZUNoZWNrYm94ZXN9ID0gc2F2ZURpYWxvZztcblx0aWYgKCEkc2F2ZUNoZWNrYm94ZXMubGVuZ3RoKSB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0Ly8gU2V0IGd1YXJkXG5cdG13LmNvbmZpZy5zZXQoT1BUSU9OUy5jb25maWdLZXlWZSwgdHJ1ZSk7XG5cblx0Y29uc3QgY2hlY2tib3g6IE9PLnVpLkNoZWNrYm94SW5wdXRXaWRnZXQgPSBuZXcgT08udWkuQ2hlY2tib3hJbnB1dFdpZGdldCh7XG5cdFx0c2VsZWN0ZWQ6IGZhbHNlLFxuXHR9KTtcblxuXHRjaGVja2JveC5zZXRJbnB1dElkKE9QVElPTlMuaW5wdXRJZCk7XG5cblx0Y2hlY2tib3gub24oJ2NoYW5nZScsICgpOiB2b2lkID0+IHtcblx0XHRjb25zdCBjaGFuZ2VUYWc6IHN0cmluZyA9IE9QVElPTlMuY2hhbmdlVGFnO1xuXHRcdGNvbnN0IGdlbmVyYXRlQ2hhbmdlVGFncyA9IChvcmlnaW5DaGFuZ2VUYWdzOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuXHRcdFx0cmV0dXJuIGNoZWNrYm94LmlzU2VsZWN0ZWQoKVxuXHRcdFx0XHQ/IGAke29yaWdpbkNoYW5nZVRhZ3N9LCR7Y2hhbmdlVGFnfWBcblx0XHRcdFx0OiBvcmlnaW5DaGFuZ2VUYWdzLnJlcGxhY2UoYCwke2NoYW5nZVRhZ31gLCAnJyk7XG5cdFx0fTtcblxuXHRcdGxldCBjaGFuZ2VUYWdzOiBzdHJpbmcgPSAnJztcblx0XHRjaGFuZ2VUYWdzID0gZ2VuZXJhdGVDaGFuZ2VUYWdzKHNhdmVGaWVsZHMud3BDaGFuZ2VUYWdzPy4oKSA/PyAnJyk7XG5cdFx0c2F2ZUZpZWxkcy53cENoYW5nZVRhZ3MgPSAoKTogc3RyaW5nID0+IHtcblx0XHRcdHJldHVybiBjaGFuZ2VUYWdzO1xuXHRcdH07XG5cdH0pO1xuXG5cdGNvbnN0IGNoZWNrYm94TGF5b3V0OiBPTy51aS5GaWVsZExheW91dDxPTy51aS5DaGVja2JveElucHV0V2lkZ2V0PiA9IG5ldyBPTy51aS5GaWVsZExheW91dChjaGVja2JveCwge1xuXHRcdGFsaWduOiAnaW5saW5lJyxcblx0XHRsYWJlbDogZ2V0TWVzc2FnZSgnQWlBc3Npc3RlZCcpLFxuXHR9KTtcblxuXHRpZiAoIXNhdmVEaWFsb2cuJGVsZW1lbnQuZmluZChgIyR7T1BUSU9OUy5pbnB1dElkfWApLmxlbmd0aCkge1xuXHRcdCRzYXZlQ2hlY2tib3hlcy5hcHBlbmQoY2hlY2tib3hMYXlvdXQuJGVsZW1lbnQpO1xuXHR9XG5cblx0Ly8gUmVpbml0aWFsaXphdGlvbiBpcyByZXF1aXJlZCBmb3Igc3dpdGNoaW5nIGJldHdlZW4gVmlzdWFsRWRpdG9yIGFuZCBOZXcgV2lraXRleHQgRWRpdG9yICgyMDE3KVxuXHRtdy5ob29rKCd2ZS5hY3RpdmF0aW9uQ29tcGxldGUnKS5hZGQoKCkgPT4ge1xuXHRcdGlmIChtdy5jb25maWcuZ2V0KE9QVElPTlMuY29uZmlnS2V5VmUpKSB7XG5cdFx0XHRtdy5jb25maWcuc2V0KE9QVElPTlMuY29uZmlnS2V5VmUsIGZhbHNlKTtcblx0XHR9XG5cdH0pO1xufTtcblxuZXhwb3J0IHtwcm9jZXNzVmlzdWFsRWRpdG9yfTtcbiIsICJpbXBvcnQgKiBhcyBPUFRJT05TIGZyb20gJ34vRWRpdGZvcm1fQWlBc3Npc3RlZC9vcHRpb25zLmpzb24nO1xuaW1wb3J0IHtnZXRNZXNzYWdlfSBmcm9tICcuL2kxOG4nO1xuXG5jb25zdCBwcm9jZXNzV2lraUVkaXRvciA9ICh7JGJvZHksICRlZGl0Rm9ybX06IHskYm9keTogSlF1ZXJ5PEhUTUxCb2R5RWxlbWVudD47ICRlZGl0Rm9ybT86IEpRdWVyeX0pOiB2b2lkID0+IHtcblx0Ly8gR3VhcmQgYWdhaW5zdCBkb3VibGUgaW5jbHVzaW9uc1xuXHRpZiAobXcuY29uZmlnLmdldChPUFRJT05TLmNvbmZpZ0tleSkpIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRjb25zdCAkdGFyZ2V0OiBKUXVlcnkgPSAoJGVkaXRGb3JtIGFzIEpRdWVyeSkuZmluZChPUFRJT05TLnRhcmdldFdpa2lFZGl0b3IpO1xuXHRpZiAoISR0YXJnZXQubGVuZ3RoKSB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0bXcuY29uZmlnLnNldChPUFRJT05TLmNvbmZpZ0tleSwgdHJ1ZSk7XG5cblx0Y29uc3QgY2hlY2tib3g6IE9PLnVpLkNoZWNrYm94SW5wdXRXaWRnZXQgPSBuZXcgT08udWkuQ2hlY2tib3hJbnB1dFdpZGdldCh7XG5cdFx0c2VsZWN0ZWQ6IGZhbHNlLFxuXHR9KTtcblxuXHRjaGVja2JveC5zZXRJbnB1dElkKE9QVElPTlMuaW5wdXRJZCk7XG5cblx0Y2hlY2tib3gub24oJ2NoYW5nZScsICgpOiB2b2lkID0+IHtcblx0XHRjb25zdCBjaGFuZ2VUYWc6IHN0cmluZyA9IE9QVElPTlMuY2hhbmdlVGFnO1xuXHRcdGNvbnN0IGdlbmVyYXRlQ2hhbmdlVGFncyA9IChvcmlnaW5DaGFuZ2VUYWdzOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuXHRcdFx0cmV0dXJuIGNoZWNrYm94LmlzU2VsZWN0ZWQoKVxuXHRcdFx0XHQ/IGAke29yaWdpbkNoYW5nZVRhZ3N9LCR7Y2hhbmdlVGFnfWBcblx0XHRcdFx0OiBvcmlnaW5DaGFuZ2VUYWdzLnJlcGxhY2UoYCwke2NoYW5nZVRhZ31gLCAnJyk7XG5cdFx0fTtcblxuXHRcdGxldCBjaGFuZ2VUYWdzOiBzdHJpbmcgPSAnJztcblxuXHRcdGNvbnN0ICR3cENoYW5nZVRhZ3M6IEpRdWVyeSA9ICQoJzxpbnB1dD4nKS5hdHRyKHtcblx0XHRcdGlkOiAnd3BDaGFuZ2VUYWdzJyxcblx0XHRcdG5hbWU6ICd3cENoYW5nZVRhZ3MnLFxuXHRcdFx0dHlwZTogJ2hpZGRlbicsXG5cdFx0XHR2YWx1ZTogJycsXG5cdFx0fSk7XG5cdFx0JGJvZHkgPSAoJGVkaXRGb3JtIGFzIEpRdWVyeSkucGFyZW50cygnYm9keScpO1xuXHRcdGNvbnN0ICRvcmlnaW5XcENoYW5nZVRhZ3M6IEpRdWVyeSA9ICRib2R5LmZpbmQoJ2lucHV0W25hbWU9d3BDaGFuZ2VUYWdzXScpO1xuXHRcdGlmICghJG9yaWdpbldwQ2hhbmdlVGFncy5sZW5ndGgpIHtcblx0XHRcdCRib2R5LnByZXBlbmQoJHdwQ2hhbmdlVGFncyk7XG5cdFx0fVxuXHRcdGNoYW5nZVRhZ3MgPSBnZW5lcmF0ZUNoYW5nZVRhZ3MoJG9yaWdpbldwQ2hhbmdlVGFncy52YWwoKT8udG9TdHJpbmcoKSA/PyAnJyk7XG5cdFx0JG9yaWdpbldwQ2hhbmdlVGFncy52YWwoY2hhbmdlVGFncyk7XG5cdH0pO1xuXG5cdGNvbnN0IGNoZWNrYm94TGF5b3V0OiBPTy51aS5GaWVsZExheW91dDxPTy51aS5DaGVja2JveElucHV0V2lkZ2V0PiA9IG5ldyBPTy51aS5GaWVsZExheW91dChjaGVja2JveCwge1xuXHRcdGFsaWduOiAnaW5saW5lJyxcblx0XHRsYWJlbDogZ2V0TWVzc2FnZSgnQWlBc3Npc3RlZCcpLFxuXHR9KTtcblxuXHRpZiAoISRib2R5LmZpbmQoYCMke09QVElPTlMuaW5wdXRJZH1gKS5sZW5ndGgpIHtcblx0XHQkdGFyZ2V0LmFwcGVuZChjaGVja2JveExheW91dC4kZWxlbWVudCk7XG5cdH1cbn07XG5cbmV4cG9ydCB7cHJvY2Vzc1dpa2lFZGl0b3J9O1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxxQkFBc0JDLFFBQUEsaUJBQUE7O0FDQ3JCLElBQUFDLFlBQWE7QUFDYixJQUFBQyxZ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QyxLQUFHcUMsS0FBSyw0QkFBNEIsRUFBRUMsSUFBSSxNQUFZO0FBQ3JEdkMsd0JBQW9CO0VBQ3JCLENBQUM7QUFDRixDQUFDOyIsCiAgIm5hbWVzIjogWyJpbXBvcnRfZXh0X2dhZGdldDIiLCAicmVxdWlyZSIsICJjaGFuZ2VUYWciLCAiY29uZmlnS2V5IiwgImNvbmZpZ0tleVZlIiwgImlucHV0SWQiLCAidGFyZ2V0V2lraUVkaXRvciIsICJpbXBvcnRfZXh0X2dhZGdldCIsICJnZXRJMThuTWVzc2FnZXMiLCAiQWlBc3Npc3RlZCIsICJsb2NhbGl6ZSIsICJlbiIsICJqYSIsICJpMThuTWVzc2FnZXMiLCAiZ2V0TWVzc2FnZSIsICJrZXkiLCAicHJvY2Vzc1Zpc3VhbEVkaXRvciIsICJtdyIsICJjb25maWciLCAiZ2V0IiwgInRhcmdldCIsICJ3aW5kb3ciLCAidmUiLCAiaW5pdCIsICJzYXZlRGlhbG9nIiwgInNhdmVGaWVsZHMiLCAiJHNhdmVDaGVja2JveGVzIiwgImxlbmd0aCIsICJzZXQiLCAiY2hlY2tib3giLCAiT08iLCAidWkiLCAiQ2hlY2tib3hJbnB1dFdpZGdldCIsICJzZWxlY3RlZCIsICJzZXRJbnB1dElkIiwgIm9uIiwgIl9zYXZlRmllbGRzJHdwQ2hhbmdlVCIsICJfc2F2ZUZpZWxkcyR3cENoYW5nZVQyIiwgImNoYW5nZVRhZzIiLCAiZ2VuZXJhdGVDaGFuZ2VUYWdzIiwgIm9yaWdpbkNoYW5nZVRhZ3MiLCAiaXNTZWxlY3RlZCIsICJjb25jYXQiLCAicmVwbGFjZSIsICJjaGFuZ2VUYWdzIiwgIndwQ2hhbmdlVGFncyIsICJjYWxsIiwgImNoZWNrYm94TGF5b3V0IiwgIkZpZWxkTGF5b3V0IiwgImFsaWduIiwgImxhYmVsIiwgIiRlbGVtZW50IiwgImZpbmQiLCAiYXBwZW5kIiwgImhvb2siLCAiYWRkIiwgInByb2Nlc3NXaWtpRWRpdG9yIiwgIiRib2R5IiwgIiRlZGl0Rm9ybSIsICIkdGFyZ2V0IiwgIl8kb3JpZ2luV3BDaGFuZ2VUYWdzJCIsICJfJG9yaWdpbldwQ2hhbmdlVGFncyQyIiwgIiR3cENoYW5nZVRhZ3MiLCAiJCIsICJhdHRyIiwgImlkIiwgIm5hbWUiLCAidHlwZSIsICJ2YWx1ZSIsICJwYXJlbnRzIiwgIiRvcmlnaW5XcENoYW5nZVRhZ3MiLCAicHJlcGVuZCIsICJ2YWwiLCAidG9TdHJpbmciLCAiZ2V0Qm9keSIsICJ0aGVuIiwgImVkaXRGb3JtIl0KfQo= diff --git a/dist/Edittools-refToolbar/Edittools-refToolbar.css b/dist/Edittools-refToolbar/Edittools-refToolbar.css index f685d2416..f6ec4ef70 100644 --- a/dist/Edittools-refToolbar/Edittools-refToolbar.css +++ b/dist/Edittools-refToolbar/Edittools-refToolbar.css @@ -199,11 +199,11 @@ /* */ /* esbuild-css-modules-plugin-ns-css:src/Edittools-refToolbar/Edittools-refToolbar.module.less */ -.Edittools-refToolbar-module__citeFormTd_tYurZa { +.Edittools-refToolbar-module__citeFormTd_tYurZa__490 { height: 0 !important; padding: .1em !important; } /* */ -/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiZXNidWlsZC1jc3MtbW9kdWxlcy1wbHVnaW4tbnMtY3NzOnNyYy9FZGl0dG9vbHMtcmVmVG9vbGJhci9FZGl0dG9vbHMtcmVmVG9vbGJhci5tb2R1bGUubGVzcyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyogPHN0ZGluPiAqL1xuLkVkaXR0b29scy1yZWZUb29sYmFyLW1vZHVsZV9fY2l0ZUZvcm1UZF90WXVyWmEge1xuICBoZWlnaHQ6IDAgIWltcG9ydGFudDtcbiAgcGFkZGluZzogLjFlbSAhaW1wb3J0YW50O1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsQ0FBQztBQUNDLFVBQVE7QUFDUixXQUFTO0FBQ1g7IiwKICAibmFtZXMiOiBbXQp9Cg== */ +/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiZXNidWlsZC1jc3MtbW9kdWxlcy1wbHVnaW4tbnMtY3NzOnNyYy9FZGl0dG9vbHMtcmVmVG9vbGJhci9FZGl0dG9vbHMtcmVmVG9vbGJhci5tb2R1bGUubGVzcyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyogPHN0ZGluPiAqL1xuLkVkaXR0b29scy1yZWZUb29sYmFyLW1vZHVsZV9fY2l0ZUZvcm1UZF90WXVyWmFfXzQ5MCB7XG4gIGhlaWdodDogMCAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAuMWVtICFpbXBvcnRhbnQ7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxDQUFDO0FBQ0MsVUFBUTtBQUNSLFdBQVM7QUFDWDsiLAogICJuYW1lcyI6IFtdCn0K */ diff --git a/dist/Edittools-refToolbar/Edittools-refToolbar.js b/dist/Edittools-refToolbar/Edittools-refToolbar.js index 01504d7fb..fac849029 100644 --- a/dist/Edittools-refToolbar/Edittools-refToolbar.js +++ b/dist/Edittools-refToolbar/Edittools-refToolbar.js @@ -1708,7 +1708,7 @@ var refToolbar2 = ($body) => { refToolbarConfig(); }; //! src/Edittools-refToolbar/Edittools-refToolbar.module.less -var citeFormTd = "Edittools-refToolbar-module__citeFormTd_tYurZa"; +var citeFormTd = "Edittools-refToolbar-module__citeFormTd_tYurZa__490"; //! src/Edittools-refToolbar/images/add.svg var add_default = ''; //! src/Edittools-refToolbar/images/calendar.svg @@ -2262,4 +2262,4 @@ var refToolbarMesages = () => { /* */ -//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL0VkaXR0b29scy1yZWZUb29sYmFyL0VkaXR0b29scy1yZWZUb29sYmFyLnRzIiwgInNyYy9FZGl0dG9vbHMtcmVmVG9vbGJhci9tb2R1bGVzL3V0aWwvYXBpLnRzIiwgInNyYy9FZGl0dG9vbHMtcmVmVG9vbGJhci9tb2R1bGVzL3V0aWwvZ2V0TWVzc2FnZS50cyIsICJzcmMvRWRpdHRvb2xzLXJlZlRvb2xiYXIvaW1hZ2VzL2NpdGVBcnRpY2xlLnN2ZyIsICJzcmMvRWRpdHRvb2xzLXJlZlRvb2xiYXIvbW9kdWxlcy9SZWZUb29sYmFyQ29uZmlnLmpzIiwgInNyYy9FZGl0dG9vbHMtcmVmVG9vbGJhci9tb2R1bGVzL1JlZlRvb2xiYXIyLjAuanMiLCAic3JjL0VkaXR0b29scy1yZWZUb29sYmFyL0VkaXR0b29scy1yZWZUb29sYmFyLm1vZHVsZS5sZXNzIiwgInNyYy9FZGl0dG9vbHMtcmVmVG9vbGJhci9pbWFnZXMvYWRkLnN2ZyIsICJzcmMvRWRpdHRvb2xzLXJlZlRvb2xiYXIvaW1hZ2VzL2NhbGVuZGFyLnN2ZyIsICJzcmMvRWRpdHRvb2xzLXJlZlRvb2xiYXIvaW1hZ2VzL3NlYXJjaC5zdmciLCAic3JjL0VkaXR0b29scy1yZWZUb29sYmFyL21vZHVsZXMvUmVmVG9vbGJhckJhc2UuanMiLCAic3JjL0VkaXR0b29scy1yZWZUb29sYmFyL21vZHVsZXMvbWVzc2FnZXMudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB7Z2V0Qm9keX0gZnJvbSAnZXh0LmdhZGdldC5VdGlsJztcbmltcG9ydCB7cmVmVG9vbGJhcjJ9IGZyb20gJy4vbW9kdWxlcy9SZWZUb29sYmFyMi4wJztcbmltcG9ydCB7cmVmVG9vbGJhckJhc2V9IGZyb20gJy4vbW9kdWxlcy9SZWZUb29sYmFyQmFzZSc7XG5pbXBvcnQge3JlZlRvb2xiYXJNZXNhZ2VzfSBmcm9tICcuL21vZHVsZXMvbWVzc2FnZXMnO1xuXG4vKipcbiAqIFJlZlRvb2xiYXJcbiAqXG4gKiBBZGRzIHRvb2xzIGZvciBjaXRpbmcgcmVmZXJlbmNlcyB0byB0aGUgZWRpdCB0b29sYmFyLlxuICogT25lIG9mIHR3byBwb3NzaWJsZSB2ZXJzaW9ucyB3aWxsIGxvYWQgKFJlZnRvb2xiYXIgMS4wIG9yIFJlZnRvb2xiYXIgMS4wKVxuICogZGVwZW5kaW5nIG9uIHRoZSB1c2VyIHByZWZlcmVuY2VzICh0aGUgdXNlYmV0YXRvb2xiYXIgcHJlZmVyZW5jZSkuXG4gKlxuICogQGF1dGhvciBNci5aLW1hbiwgS2FsZGFyaVxuICovXG4oKCk6IHZvaWQgPT4ge1xuXHRjb25zdCB7d2dBY3Rpb24sIHdnUGFnZUNvbnRlbnRNb2RlbH0gPSBtdy5jb25maWcuZ2V0KCk7XG5cblx0Ly8gT25seSBleGVjdXRlIHdoZW4gZWRpdGluZy9wcmV2aWV3aW5nIHdpa2l0ZXh0IHBhZ2VzXG5cdGlmICghWydlZGl0JywgJ3N1Ym1pdCddLmluY2x1ZGVzKHdnQWN0aW9uKSB8fCB3Z1BhZ2VDb250ZW50TW9kZWwgIT09ICd3aWtpdGV4dCcpIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRpZiAoIW13LnVzZXIub3B0aW9ucy5nZXQoJ3VzZWJldGF0b29sYmFyJykpIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRpZiAoZG9jdW1lbnQucXVlcnlTZWxlY3RvcigndGV4dGFyZWFbbmFtZT13cFRleHRib3gxXVtyZWFkb25seV0nKSkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdC8vIExvYWQgbG9jYWwgbWVzc2FnZXMuXG5cdHJlZlRvb2xiYXJNZXNhZ2VzKCk7XG5cdC8vIExvYWQgbWFpbiBmdW5jdGlvbnNcblx0cmVmVG9vbGJhckJhc2UoKTtcblx0dm9pZCBnZXRCb2R5KCkudGhlbihyZWZUb29sYmFyMik7XG59KSgpO1xuIiwgImltcG9ydCB7aW5pdE13QXBpfSBmcm9tICdleHQuZ2FkZ2V0LlV0aWwnO1xuXG5jb25zdCBhcGk6IG13LkFwaSA9IGluaXRNd0FwaSgnUmVmVG9vbGJhci8yLjAnKTtcblxuZXhwb3J0IHthcGl9O1xuIiwgImNvbnN0IGdldE1lc3NhZ2UgPSAoa2V5OiBzdHJpbmcsIC4uLmFyZ3M6IHN0cmluZ1tdKTogc3RyaW5nID0+IHtcblx0Ly8gTWVzc2FnZXMgdGhhdCBjYW4gYmUgdXNlZCBoZXJlOlxuXHQvLyAqIHNlZSBtZXNzYWdlcy50c1xuXHQvLyAqIGZvciBtb3JlIGluZm9ybWF0aW9uXG5cdHJldHVybiBhcmdzLmxlbmd0aCA/IG13Lm1lc3NhZ2Uoa2V5LCAuLi5hcmdzKS5wYXJzZSgpIDogbXcubWVzc2FnZShrZXkpLnBsYWluKCk7XG59O1xuXG5leHBvcnQge2dldE1lc3NhZ2V9O1xuIiwgIjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj48cGF0aCBkPVwiTTcgMTJoOXYtMUg3em0wIDJoOXYtMUg3em0wIDJoOXYtMUg3em00LTlIN3YxaDR6bTAgMkg3djFoNHptMC00SDd2MWg0em01LTJoMnYxNkg4Yy0xLjcgMC0zLTEuMy0zLTNWM2g4djdsMS41LTIgMS41IDJ6XCIvPjwvc3ZnPiIsICIvKiBlc2xpbnQtZGlzYWJsZSBjYW1lbGNhc2UsIG5vLW5ldyAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50ICovXG4vLyBAdHMtbm9jaGVja1xuLyoqXG4gKiBTaXRld2lkZSBvcHRpb25zIGZvciB0aGUgdGhlIENpdGUgdG9vbGJhciBidXR0b246XG4gKiBBbGwgb3B0aW9ucyBzaG91bGQgYmUgc3BlY2lmaWVkXG4gKlxuICogXCJkYXRlIGZvcm1hdFwiIHNldHMgdGhlIGRhdGUgZm9ybWF0IHVzZWQgZm9yIHRoZSBmdW5jdGlvbiB0byBpbnNlcnQgdGhlIGN1cnJlbnQgZGF0ZVxuICogQ3VycmVudCBhdmFpbGFibGUgb3B0aW9uczpcbiAqIGRhdGUgLSB0aGUgZGF5IG9mIHRoZSBtb250aFxuICogemRhdGUgLSBkYXkgb2YgdGhlIG1vbnRoLCB6ZXJvIHBhZGRlZCB0byAyIGRpZ2l0c1xuICogbW9udGhuYW1lIC0gVGhlIG1vbnRoIG5hbWVcbiAqIG1vbnRoIC0gVGhlIG51bWJlcmljIG1vbnRoICgxLTEyKVxuICogem1vbnRoIC0gbnVtZXJpYyBtb250aCwgemVybyBwYWRkZWQgdG8gMiBkaWdpdHNcbiAqIHllYXIgLSBUaGUgZnVsbCB5ZWFyICg0IGRpZ2l0cylcbiAqXG4gKiBcImF1dG9kYXRlIGZpZWxkc1wiIGlzIGEgbGlzdCBvZiB0ZW1wbGF0ZSBmaWVsZHMgdGhhdCBzaG91bGQgaGF2ZSBhIGJ1dHRvbiB0byBpbnNlcnQgdGhlIGN1cnJlbnQgZGF0ZVxuICpcbiAqIFwibW9udGhzXCIgaXMgYSBsaXN0IG9mIGxvY2FsaXplZCBtb250aCBuYW1lc1xuICpcbiAqIFwibW9kYWxcIiAtIGlmIHRydWUsIHRoZSBkaWFsb2dzIHdpbGwgYmUgbW9kYWwgd2luZG93cywgYmxvY2tpbmcgYWNjZXNzIHRvIHRoZSByZXN0IG9mIHRoZSB3aW5kb3cuXG4gKiBBbGwgZGlhbG9ncyBpbiB0aGUgdG9vbGJhciBhcmUgbW9kYWwgYnkgZGVmYXVsdFxuICpcbiAqIFwiYXV0b3BhcnNlXCIgLSBpZiB0cnVlLCBwcmV2aWV3aW5nIGEgcmVmIHdpbGwgYXV0b21hdGljYWxseSB0cmlnZ2VyIGEgcHJldmlldyBvZiB0aGUgcGFyc2VkIHdpa2l0ZXh0LlxuICogSXQgaXMgbm90IHJlY29tbWVuZGVkIHRvIHNldCB0aGlzIHRvIHRydWUgYXMgYSBnbG9iYWwgc2V0dGluZyBhcyBpdCBtYXkgc2xvdyB0aGUgc2NyaXB0IGRvd24gZm9yXG4gKiBwZW9wbGUgd2l0aCBzbG93IGNvbm5lY3Rpb25zLlxuICpcbiAqIFwiZXhwYW5kdGVtcGxhdGVzXCIgLSBpZiB0cnVlLCB0ZW1wbGF0ZXMgYW5kIHBhcnNlciBmdW5jdGlvbnMgd2lsbCBiZSBleHBhbmRlZCB3aGVuIGdldHRpbmcgcGFnZSB0ZXh0XG4gKiAodGVtcGxhdGVzIGluc2lkZSBvZiByZWYgdGFncyB3aWxsIG5vdCBiZSBleHBhbmRlZCkuIFRoaXMgd2lsbCBhbGxvdyByZWZlcmVuY2VzIGluc2lkZSBvZiB0ZW1wbGF0ZXMgb3JcbiAqIHJlZmVyZW5jZXMgdXNpbmcge3sjdGFnOnJlZn19IHRvIGJlIGxpc3RlZCBpbiB0aGUgbmFtZWQgcmVmcyBkaWFsb2cgYW5kIHNlYXJjaGVkIGJ5IGVycm9yIGNoZWNrcy5cbiAqIFRoaXMgbWF5IHNsb3cgbG9hZGluZyB0aGUgbmFtZWQgcmVmcyBhbmQgZXJyb3IgY2hlY2sgZGlhbG9ncy5cbiAqL1xuY29uc3QgcmVmVG9vbGJhckNvbmZpZyA9ICgpID0+IHtcblx0Y29uc3Qge0NpdGVUZW1wbGF0ZX0gPSB3aW5kb3c7XG5cblx0Q2l0ZVRCLk9wdGlvbnMgPSB7XG5cdFx0J2RhdGUgZm9ybWF0JzogJzx5ZWFyPi08em1vbnRoPi08emRhdGU+Jyxcblx0XHQnYXV0b2RhdGUgZmllbGRzJzogWydhY2Nlc3NkYXRlJ10sXG5cdFx0bW9udGhzOiBbJzHmnIgnLCAnMuaciCcsICcz5pyIJywgJzTmnIgnLCAnNeaciCcsICc25pyIJywgJzfmnIgnLCAnOOaciCcsICc55pyIJywgJzEw5pyIJywgJzEx5pyIJywgJzEy5pyIJ10sXG5cdFx0bW9kYWw6IHRydWUsXG5cdFx0YXV0b3BhcnNlOiB0cnVlLFxuXHRcdGV4cGFuZHRlbXBsYXRlczogZmFsc2UsXG5cdH07XG5cblx0Ly8gQ2l0ZSB0ZW1wbGF0ZSBkZWZpbml0aW9uc1xuXHRuZXcgQ2l0ZVRlbXBsYXRlKFxuXHRcdCdjaXRlIHdlYicsXG5cdFx0J3dlYicsXG5cdFx0W1xuXHRcdFx0Ly8gQmFzaWMgZmllbGRzXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAnYXV0aG9yPE4+Jyxcblx0XHRcdFx0aW5jcmVtZW50X2dyb3VwOiAnYXV0aG9yX2FsdCcsXG5cdFx0XHRcdGluY3JlbWVudF9idXR0b246IHRydWUsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ3RpdGxlJyxcblx0XHRcdFx0YXV0b2ZpbGxwcm9wOiAndGl0bGUnLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICd1cmwnLFxuXHRcdFx0XHRhdXRvZmlsbGlkOiAndXJsJyxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAnd2Vic2l0ZScsXG5cdFx0XHRcdGF1dG9maWxscHJvcDogJ2pvdXJuYWwnLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdwdWJsaXNoZXInLFxuXHRcdFx0XHRhdXRvZmlsbHByb3A6ICdwdWJsaXNoZXInLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdhY2Nlc3NkYXRlJyxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAncmVmJyxcblx0XHRcdFx0dG9vbHRpcDogJ2NpdGUtcmVmLXRvb2x0aXAnLFxuXHRcdFx0fSxcblx0XHRdLFxuXHRcdFtcblx0XHRcdC8vIEV4cGFuZGVkIGZpZWxkc1xuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ2F1dGhvcmxpbms8Tj4nLFxuXHRcdFx0XHR0b29sdGlwOiAnY2l0ZS1hdXRob3JsaW5rLXRvb2x0aXAnLFxuXHRcdFx0XHRpbmNyZW1lbnRfZ3JvdXA6ICdhdXRob3JsaW5rJyxcblx0XHRcdFx0aW5jcmVtZW50X2J1dHRvbjogdHJ1ZSxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAnbGFzdDxOPicsXG5cdFx0XHRcdGF1dG9maWxscHJvcDogJ2xhc3QtaW5jcicsXG5cdFx0XHRcdGluY3JlbWVudF9ncm91cDogJ2F1dGhvcicsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ2ZpcnN0PE4+Jyxcblx0XHRcdFx0YXV0b2ZpbGxwcm9wOiAnZmlyc3QtaW5jcicsXG5cdFx0XHRcdGluY3JlbWVudF9ncm91cDogJ2F1dGhvcicsXG5cdFx0XHRcdGluY3JlbWVudF9idXR0b246IHRydWUsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ2xvY2F0aW9uJyxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAncGFnZScsXG5cdFx0XHRcdHRvb2x0aXA6ICdjaXRlLXBhZ2UtdG9vbHRpcCcsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ3BhZ2VzJyxcblx0XHRcdFx0YXV0b2ZpbGxwcm9wOiAncGFnZXMnLFxuXHRcdFx0XHR0b29sdGlwOiAnY2l0ZS1wYWdlcy10b29sdGlwJyxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAnbGFuZ3VhZ2UnLFxuXHRcdFx0XHRhdXRvZmlsbHByb3A6ICdsYW5ndWFnZScsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ2Zvcm1hdCcsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ2RvaScsXG5cdFx0XHRcdGF1dG9maWxsaWQ6ICdkb2knLFxuXHRcdFx0XHRhdXRvZmlsbHByb3A6ICdkb2knLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdkYXRlJyxcblx0XHRcdFx0YXV0b2ZpbGxwcm9wOiAnZGF0ZScsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ3F1b3RlJyxcblx0XHRcdH0sXG5cdFx0XVxuXHQpO1xuXHRuZXcgQ2l0ZVRlbXBsYXRlKFxuXHRcdCdjaXRlIG5ld3MnLFxuXHRcdCduZXdzJyxcblx0XHRbXG5cdFx0XHQvLyBCYXNpYyBmaWVsZHNcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdhdXRob3I8Tj4nLFxuXHRcdFx0XHRpbmNyZW1lbnRfZ3JvdXA6ICdhdXRob3JfYWx0Jyxcblx0XHRcdFx0aW5jcmVtZW50X2J1dHRvbjogdHJ1ZSxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAndGl0bGUnLFxuXHRcdFx0XHRhdXRvZmlsbHByb3A6ICd0aXRsZScsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ3VybCcsXG5cdFx0XHRcdGF1dG9maWxsaWQ6ICd1cmwnLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdhY2Nlc3NkYXRlJyxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAnd29yaycsXG5cdFx0XHRcdHRvb2x0aXA6ICdjaXRlLXdvcmstdG9vbHRpcCcsXG5cdFx0XHRcdGF1dG9maWxscHJvcDogJ2pvdXJuYWwnLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdhZ2VuY3knLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdpc3N1ZScsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ3B1Ymxpc2hlcicsXG5cdFx0XHRcdGF1dG9maWxscHJvcDogJ3B1Ymxpc2hlcicsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ2RhdGUnLFxuXHRcdFx0XHRhdXRvZmlsbHByb3A6ICdkYXRlJyxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAncmVmJyxcblx0XHRcdFx0dG9vbHRpcDogJ2NpdGUtcmVmLXRvb2x0aXAnLFxuXHRcdFx0fSxcblx0XHRdLFxuXHRcdFtcblx0XHRcdC8vIEV4cGFuZGVkIGZpZWxkc1xuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ2F1dGhvcmxpbms8Tj4nLFxuXHRcdFx0XHR0b29sdGlwOiAnY2l0ZS1hdXRob3JsaW5rLXRvb2x0aXAnLFxuXHRcdFx0XHRpbmNyZW1lbnRfZ3JvdXA6ICdhdXRob3JsaW5rJyxcblx0XHRcdFx0aW5jcmVtZW50X2J1dHRvbjogdHJ1ZSxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAnbGFzdDxOPicsXG5cdFx0XHRcdGF1dG9maWxscHJvcDogJ2xhc3QtaW5jcicsXG5cdFx0XHRcdGluY3JlbWVudF9ncm91cDogJ2F1dGhvcicsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ2ZpcnN0PE4+Jyxcblx0XHRcdFx0YXV0b2ZpbGxwcm9wOiAnZmlyc3QtaW5jcicsXG5cdFx0XHRcdGluY3JlbWVudF9ncm91cDogJ2F1dGhvcicsXG5cdFx0XHRcdGluY3JlbWVudF9idXR0b246IHRydWUsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ2xvY2F0aW9uJyxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAncGFnZScsXG5cdFx0XHRcdHRvb2x0aXA6ICdjaXRlLXBhZ2UtdG9vbHRpcCcsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ3BhZ2VzJyxcblx0XHRcdFx0YXV0b2ZpbGxwcm9wOiAncGFnZXMnLFxuXHRcdFx0XHR0b29sdGlwOiAnY2l0ZS1wYWdlcy10b29sdGlwJyxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAnbGFuZ3VhZ2UnLFxuXHRcdFx0XHRhdXRvZmlsbHByb3A6ICdsYW5ndWFnZScsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ2Zvcm1hdCcsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ2RvaScsXG5cdFx0XHRcdGF1dG9maWxsaWQ6ICdkb2knLFxuXHRcdFx0XHRhdXRvZmlsbHByb3A6ICdkb2knLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdxdW90ZScsXG5cdFx0XHR9LFxuXHRcdF1cblx0KTtcblx0bmV3IENpdGVUZW1wbGF0ZShcblx0XHQnY2l0ZSBib29rJyxcblx0XHQnYm9vaycsXG5cdFx0W1xuXHRcdFx0Ly8gQmFzaWMgZmllbGRzXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAnYXV0aG9yPE4+Jyxcblx0XHRcdFx0aW5jcmVtZW50X2dyb3VwOiAnYXV0aG9yX2FsdCcsXG5cdFx0XHRcdGluY3JlbWVudF9idXR0b246IHRydWUsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ2NvYXV0aG9ycycsXG5cdFx0XHRcdGF1dG9maWxscHJvcDogJ2NvYXV0aG9ycycsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ2VkaXRvcicsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ3RpdGxlJyxcblx0XHRcdFx0YXV0b2ZpbGxwcm9wOiAndGl0bGUnLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdkYXRlJyxcblx0XHRcdFx0YXV0b2ZpbGxwcm9wOiAneWVhcicsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ3B1Ymxpc2hlcicsXG5cdFx0XHRcdGF1dG9maWxscHJvcDogJ3B1Ymxpc2hlcicsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ2xvY2F0aW9uJyxcblx0XHRcdFx0YXV0b2ZpbGxwcm9wOiAnbG9jYXRpb24nLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdpc2JuJyxcblx0XHRcdFx0LyogXCJhdXRvZmlsbGlkXCI6XCJpc2JuXCIsICovIGF1dG9maWxscHJvcDogJ2lzYm4nLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdwYWdlJyxcblx0XHRcdFx0dG9vbHRpcDogJ2NpdGUtcGFnZS10b29sdGlwJyxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAncGFnZXMnLFxuXHRcdFx0XHRhdXRvZmlsbHByb3A6ICdwYWdlcycsXG5cdFx0XHRcdHRvb2x0aXA6ICdjaXRlLXBhZ2VzLXRvb2x0aXAnLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdlZGl0aW9uJyxcblx0XHRcdFx0YXV0b2ZpbGxwcm9wOiAnZWRpdGlvbicsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ3VybCcsXG5cdFx0XHRcdGF1dG9maWxsaWQ6ICd1cmwnLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdhY2Nlc3NkYXRlJyxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAncmVmJyxcblx0XHRcdFx0dG9vbHRpcDogJ2NpdGUtcmVmLXRvb2x0aXAnLFxuXHRcdFx0fSxcblx0XHRdLFxuXHRcdFtcblx0XHRcdC8vIEV4cGFuZGVkIGZpZWxkc1xuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ2xhc3Q8Tj4nLFxuXHRcdFx0XHRhdXRvZmlsbHByb3A6ICdsYXN0LWluY3InLFxuXHRcdFx0XHRpbmNyZW1lbnRfZ3JvdXA6ICdhdXRob3InLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdmaXJzdDxOPicsXG5cdFx0XHRcdGF1dG9maWxscHJvcDogJ2ZpcnN0LWluY3InLFxuXHRcdFx0XHRpbmNyZW1lbnRfZ3JvdXA6ICdhdXRob3InLFxuXHRcdFx0XHRpbmNyZW1lbnRfYnV0dG9uOiB0cnVlLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdhdXRob3JsaW5rPE4+Jyxcblx0XHRcdFx0dG9vbHRpcDogJ2NpdGUtYXV0aG9ybGluay10b29sdGlwJyxcblx0XHRcdFx0aW5jcmVtZW50X2dyb3VwOiAnYXV0aG9ybGluaycsXG5cdFx0XHRcdGluY3JlbWVudF9idXR0b246IHRydWUsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ2VkaXRvcjxOPi1sYXN0Jyxcblx0XHRcdFx0aW5jcmVtZW50X2dyb3VwOiAnZWRpdG9yJyxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAnZWRpdG9yPE4+LWZpcnN0Jyxcblx0XHRcdFx0aW5jcmVtZW50X2dyb3VwOiAnZWRpdG9yJyxcblx0XHRcdFx0aW5jcmVtZW50X2J1dHRvbjogdHJ1ZSxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAnZWRpdG9yPE4+LWxpbmsnLFxuXHRcdFx0XHRpbmNyZW1lbnRfZ3JvdXA6ICdlZGl0b3JsaW5rJyxcblx0XHRcdFx0aW5jcmVtZW50X2J1dHRvbjogdHJ1ZSxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAnbGFuZ3VhZ2UnLFxuXHRcdFx0XHRhdXRvZmlsbHByb3A6ICdsYW5ndWFnZScsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ2Zvcm1hdCcsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ2NoYXB0ZXInLFxuXHRcdFx0XHRhdXRvZmlsbHByb3A6ICdjaGFwdGVyJyxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAncXVvdGUnLFxuXHRcdFx0fSxcblx0XHRdXG5cdCk7XG5cdG5ldyBDaXRlVGVtcGxhdGUoXG5cdFx0J2NpdGUgam91cm5hbCcsXG5cdFx0J2pvdXJuYWwnLFxuXHRcdFtcblx0XHRcdC8vIEJhc2ljIGZpZWxkc1xuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ2F1dGhvcjxOPicsXG5cdFx0XHRcdGluY3JlbWVudF9ncm91cDogJ2F1dGhvcl9hbHQnLFxuXHRcdFx0XHRpbmNyZW1lbnRfYnV0dG9uOiB0cnVlLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdjb2F1dGhvcnMnLFxuXHRcdFx0XHRhdXRvZmlsbHByb3A6ICdjb2F1dGhvcnMnLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICd0aXRsZScsXG5cdFx0XHRcdGF1dG9maWxscHJvcDogJ3RpdGxlJyxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAnam91cm5hbCcsXG5cdFx0XHRcdGF1dG9maWxscHJvcDogJ2pvdXJuYWwnLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdkYXRlJyxcblx0XHRcdFx0YXV0b2ZpbGxwcm9wOiAnZGF0ZScsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ3ZvbHVtZScsXG5cdFx0XHRcdGF1dG9maWxscHJvcDogJ3ZvbHVtZScsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ2lzc3VlJyxcblx0XHRcdFx0YXV0b2ZpbGxwcm9wOiAnaXNzdWUnLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdwYWdlJyxcblx0XHRcdFx0dG9vbHRpcDogJ2NpdGUtcGFnZS10b29sdGlwJyxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAncGFnZXMnLFxuXHRcdFx0XHRhdXRvZmlsbHByb3A6ICdwYWdlcycsXG5cdFx0XHRcdHRvb2x0aXA6ICdjaXRlLXBhZ2VzLXRvb2x0aXAnLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdkb2knLFxuXHRcdFx0XHRhdXRvZmlsbGlkOiAnZG9pJyxcblx0XHRcdFx0YXV0b2ZpbGxwcm9wOiAnZG9pJyxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAncG1pZCcsXG5cdFx0XHRcdGF1dG9maWxsaWQ6ICdwbWlkJyxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAndXJsJyxcblx0XHRcdFx0YXV0b2ZpbGxpZDogJ3VybCcsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ2FjY2Vzc2RhdGUnLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdyZWYnLFxuXHRcdFx0XHR0b29sdGlwOiAnY2l0ZS1yZWYtdG9vbHRpcCcsXG5cdFx0XHR9LFxuXHRcdF0sXG5cdFx0W1xuXHRcdFx0Ly8gRXhwYW5kZWQgZmllbGRzXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAnYXV0aG9ybGluazxOPicsXG5cdFx0XHRcdHRvb2x0aXA6ICdjaXRlLWF1dGhvcmxpbmstdG9vbHRpcCcsXG5cdFx0XHRcdGluY3JlbWVudF9ncm91cDogJ2F1dGhvcmxpbmsnLFxuXHRcdFx0XHRpbmNyZW1lbnRfYnV0dG9uOiB0cnVlLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdsYXN0PE4+Jyxcblx0XHRcdFx0YXV0b2ZpbGxwcm9wOiAnbGFzdC1pbmNyJyxcblx0XHRcdFx0aW5jcmVtZW50X2dyb3VwOiAnYXV0aG9yJyxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAnZmlyc3Q8Tj4nLFxuXHRcdFx0XHRhdXRvZmlsbHByb3A6ICdmaXJzdC1pbmNyJyxcblx0XHRcdFx0aW5jcmVtZW50X2dyb3VwOiAnYXV0aG9yJyxcblx0XHRcdFx0aW5jcmVtZW50X2J1dHRvbjogdHJ1ZSxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAnZWRpdG9yPE4+LWxhc3QnLFxuXHRcdFx0XHRpbmNyZW1lbnRfZ3JvdXA6ICdlZGl0b3InLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdlZGl0b3I8Tj4tZmlyc3QnLFxuXHRcdFx0XHRpbmNyZW1lbnRfZ3JvdXA6ICdlZGl0b3InLFxuXHRcdFx0XHRpbmNyZW1lbnRfYnV0dG9uOiB0cnVlLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdlZGl0b3I8Tj4tbGluaycsXG5cdFx0XHRcdGluY3JlbWVudF9ncm91cDogJ2VkaXRvcmxpbmsnLFxuXHRcdFx0XHRpbmNyZW1lbnRfYnV0dG9uOiB0cnVlLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdzZXJpZXMnLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdhdCcsXG5cdFx0XHRcdHRvb2x0aXA6ICdjaXRlLWF0LXRvb2x0aXAnLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICd0cmFucy10aXRsZScsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ3B1Ymxpc2hlcicsXG5cdFx0XHRcdGF1dG9maWxscHJvcDogJ3B1Ymxpc2hlcicsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ2xvY2F0aW9uJyxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAnbGFuZ3VhZ2UnLFxuXHRcdFx0XHRhdXRvZmlsbHByb3A6ICdsYW5ndWFnZScsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ2Zvcm1hdCcsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ2lzc24nLFxuXHRcdFx0XHRhdXRvZmlsbHByb3A6ICdpc3NuJyxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAncG1jJyxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAnb2NsYycsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ2JpYmNvZGUnLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdpZCcsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ3F1b3RlJyxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAncG9zdHNjcmlwdCcsXG5cdFx0XHRcdHRvb2x0aXA6ICdjaXRlLXBvc3RzY3JpcHQtdG9vbHRpcCcsXG5cdFx0XHR9LFxuXHRcdF1cblx0KTtcblx0bmV3IENpdGVUZW1wbGF0ZShcblx0XHQnY2l0ZSBjb25mZXJlbmNlJyxcblx0XHQnY29uZmVyZW5jZScsXG5cdFx0W1xuXHRcdFx0Ly8gQmFzaWMgZmllbGRzXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAnYXV0aG9yJyxcblx0XHRcdFx0YXV0b2ZpbGxwcm9wOiAnYXV0aG9yMScsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ2NvYXV0aG9ycycsXG5cdFx0XHRcdGF1dG9maWxscHJvcDogJ2NvYXV0aG9ycycsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ3RpdGxlJyxcblx0XHRcdFx0YXV0b2ZpbGxwcm9wOiAndGl0bGUnLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdjb25mZXJlbmNlJyxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAnY29uZmVyZW5jZXVybCcsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ2Jvb2t0aXRsZScsXG5cdFx0XHRcdGF1dG9maWxscHJvcDogJ2pvdXJuYWwnLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdkYXRlJyxcblx0XHRcdFx0YXV0b2ZpbGxwcm9wOiAnZGF0ZScsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ3llYXInLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdtb250aCcsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ3ZvbHVtZScsXG5cdFx0XHRcdGF1dG9maWxscHJvcDogJ3ZvbHVtZScsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ3B1Ymxpc2hlcicsXG5cdFx0XHRcdGF1dG9maWxscHJvcDogJ3B1Ymxpc2hlcicsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ2xvY2F0aW9uJyxcblx0XHRcdFx0YXV0b2ZpbGxwcm9wOiAnbG9jYXRpb24nLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdpc2JuJyAvKiAsIFwiYXV0b2ZpbGxpZFwiOlwiaXNiblwiICovLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdwYWdlcycsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ2RvaScsXG5cdFx0XHRcdGF1dG9maWxsaWQ6ICdkb2knLFxuXHRcdFx0XHRhdXRvZmlsbHByb3A6ICdkb2knLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdwbWlkJyxcblx0XHRcdFx0YXV0b2ZpbGxpZDogJ3BtaWQnLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICd1cmwnLFxuXHRcdFx0XHRhdXRvZmlsbGlkOiAndXJsJyxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAnYWNjZXNzZGF0ZScsXG5cdFx0XHRcdHRvb2x0aXA6ICdjaXRlLWFjY2Vzc2RhdGUtdG9vbHRpcCcsXG5cdFx0XHR9LFxuXHRcdF0sXG5cdFx0W1xuXHRcdFx0Ly8gRXhwYW5kZWQgZmllbGRzXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAnbGFzdCcsXG5cdFx0XHRcdGF1dG9maWxscHJvcDogJ2xhc3QxJyxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAnZmlyc3QnLFxuXHRcdFx0XHRhdXRvZmlsbHByb3A6ICdmaXJzdDEnLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdhdXRob3JsaW5rJyxcblx0XHRcdFx0dG9vbHRpcDogJ2NpdGUtYXV0aG9ybGluay10b29sdGlwJyxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAnZWRpdG9yJyxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAnb3RoZXJzJyxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAnZWRpdGlvbicsXG5cdFx0XHRcdGF1dG9maWxscHJvcDogJ2VkaXRpb24nLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdsYW5ndWFnZScsXG5cdFx0XHRcdGF1dG9maWxscHJvcDogJ2xhbmd1YWdlJyxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAnZm9ybWF0Jyxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAnaXNzbicsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ29jbGMnLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdpZCcsXG5cdFx0XHRcdHRvb2x0aXA6ICdjaXRlLWlkLXRvb2x0aXAnLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdxdW90ZScsXG5cdFx0XHR9LFxuXHRcdF1cblx0KTtcblx0bmV3IENpdGVUZW1wbGF0ZShcblx0XHQnY2l0ZSBlbmN5Y2xvcGVkaWEnLFxuXHRcdCdlbmN5Y2xvcGVkaWEnLFxuXHRcdFtcblx0XHRcdC8vIEJhc2ljIGZpZWxkc1xuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ2F1dGhvcicsXG5cdFx0XHRcdGF1dG9maWxscHJvcDogJ2F1dGhvcjEnLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICd0aXRsZScsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ2VkaXRvcicsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ2VuY3ljbG9wZWRpYScsXG5cdFx0XHRcdGF1dG9maWxscHJvcDogJ3RpdGxlJyxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAndm9sdW1lJyxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAneWVhcicsXG5cdFx0XHRcdGF1dG9maWxscHJvcDogJ3llYXInLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdwdWJsaXNoZXInLFxuXHRcdFx0XHRhdXRvZmlsbHByb3A6ICdwdWJsaXNoZXInLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdsb2NhdGlvbicsXG5cdFx0XHRcdGF1dG9maWxscHJvcDogJ2xvY2F0aW9uJyxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAnaXNibicgLyogLCBcImF1dG9maWxsaWRcIjpcImlzYm5cIiAqLyxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAncGFnZXMnLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICd1cmwnLFxuXHRcdFx0fSxcblx0XHRdLFxuXHRcdFtcblx0XHRcdC8vIEV4cGFuZGVkIGZpZWxkc1xuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ2xhc3QnLFxuXHRcdFx0XHRhdXRvZmlsbHByb3A6ICdsYXN0MScsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ2ZpcnN0Jyxcblx0XHRcdFx0YXV0b2ZpbGxwcm9wOiAnZmlyc3QxJyxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAnYXV0aG9ybGluaycsXG5cdFx0XHRcdHRvb2x0aXA6ICdjaXRlLWF1dGhvcmxpbmstdG9vbHRpcCcsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ2NvYXV0aG9ycycsXG5cdFx0XHRcdGF1dG9maWxscHJvcDogJ2NvYXV0aG9ycycsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ290aGVycycsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ2VkaXRpb24nLFxuXHRcdFx0XHRhdXRvZmlsbHByb3A6ICdlZGl0aW9uJyxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAnb2NsYycsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ2lkJyxcblx0XHRcdFx0dG9vbHRpcDogJ2NpdGUtaWQtdG9vbHRpcCcsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ2FjY2Vzc2RhdGUnLFxuXHRcdFx0XHR0b29sdGlwOiAnY2l0ZS1hY2Nlc3NkYXRlLXRvb2x0aXAnLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdsYW5ndWFnZScsXG5cdFx0XHRcdGF1dG9maWxscHJvcDogJ2xhbmd1YWdlJyxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAnZm9ybWF0Jyxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAnZGF0ZScsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ21vbnRoJyxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAncXVvdGUnLFxuXHRcdFx0fSxcblx0XHRdXG5cdCk7XG5cblx0Ly8gZXhlY3V0ZSBtYWluIGZ1bmN0aW9uXG5cdENpdGVUQi5pbml0KCk7XG59O1xuXG5leHBvcnQge3JlZlRvb2xiYXJDb25maWd9O1xuIiwgIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudCAqL1xuLy8gQHRzLW5vY2hlY2tcbmltcG9ydCBhamF4TG9hZGVyIGZyb20gJy4uL2ltYWdlcy9BamF4LWxvYWRlci5naWYnO1xuaW1wb3J0IHthcGl9IGZyb20gJy4vdXRpbC9hcGknO1xuaW1wb3J0IHtnZXRNZXNzYWdlfSBmcm9tICcuL3V0aWwvZ2V0TWVzc2FnZSc7XG5pbXBvcnQgb29qc1VpQ2l0ZUFydGljbGUgZnJvbSAnLi4vaW1hZ2VzL2NpdGVBcnRpY2xlLnN2Zyc7XG5pbXBvcnQge3JlZlRvb2xiYXJDb25maWd9IGZyb20gJy4vUmVmVG9vbGJhckNvbmZpZyc7XG5cbi8vIFRPRE86IG1ha2UgYXV0b2RhdGUgYW4gb3B0aW9uIGluIHRoZSBDaXRlVGVtcGxhdGUgb2JqZWN0LCBub3QgYSBwcmVmZXJlbmNlXG5jb25zdCByZWZUb29sYmFyMiA9ICgkYm9keSkgPT4ge1xuXHQvLyBEZWZhdWx0IG9wdGlvbnMsIHRoZXNlIG1haW5seSBleGlzdCBzbyB0aGUgc2NyaXB0IHdvbid0IGJyZWFrIGlmIGEgbmV3IG9wdGlvbiBpcyBhZGRlZFxuXHRDaXRlVEIuRGVmYXVsdE9wdGlvbnMgPSB7XG5cdFx0J2RhdGUgZm9ybWF0JzogJzx5ZWFyPi08em1vbnRoPi08emRhdGU+Jyxcblx0XHQnYXV0b2RhdGUgZmllbGRzJzogW10sXG5cdFx0bW9udGhzOiBbJ0phbicsICdGZWInLCAnTWFyJywgJ0FwcicsICdNYXknLCAnSnVuJywgJ0p1bCcsICdBdWcnLCAnU2VwJywgJ09jdCcsICdOb3YnLCAnRGVjJ10sXG5cdFx0bW9kYWw6IHRydWUsXG5cdFx0YXV0b3BhcnNlOiBmYWxzZSxcblx0XHRleHBhbmR0ZW1wbGF0ZXM6IGZhbHNlLFxuXHR9O1xuXG5cdC8vIEdldCBhbiBvcHRpb24gLSB1c2VyIHNldHRpbmdzIG92ZXJyaWRlIGdsb2JhbCB3aGljaCBvdmVycmlkZSBkZWZhdWx0c1xuXHRDaXRlVEIuZ2V0T3B0aW9uID0gKG9wdCkgPT4ge1xuXHRcdGlmIChDaXRlVEIuVXNlck9wdGlvbnNbb3B0XSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRyZXR1cm4gQ2l0ZVRCLlVzZXJPcHRpb25zW29wdF07XG5cdFx0fSBlbHNlIGlmIChDaXRlVEIuT3B0aW9uc1tvcHRdICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdHJldHVybiBDaXRlVEIuT3B0aW9uc1tvcHRdO1xuXHRcdH1cblx0XHRyZXR1cm4gQ2l0ZVRCLkRlZmF1bHRPcHRpb25zW29wdF07XG5cdH07XG5cblx0Q2l0ZVRCLmluaXQgPSAoKSA9PiB7XG5cdFx0LyogTWFpbiBzdHVmZiwgYnVpbGQgdGhlIGFjdHVhbCB0b29sYmFyIHN0cnVjdHVyZVxuXHRcdCAqIDEuIGdldCB0aGUgdGVtcGxhdGUgbGlzdCwgbWFrZSB0aGUgZHJvcGRvd24gbGlzdCBhbmQgc2V0IHVwIHRoZSB0ZW1wbGF0ZSBkaWFsb2cgYm94ZXNcblx0XHQgKiAyLiBhY3R1YWxseSBidWlsZCB0aGUgdG9vbGJhcjpcblx0XHQgKiAtIEEgc2VjdGlvbiBmb3IgY2l0ZXNcblx0XHQgKiAtLSBkcm9wZG93biBmb3IgdGhlIHRlbXBsYXRlcyAocHJldmlvdXNseSBkZWZpbmVkKVxuXHRcdCAqIC0tIGJ1dHRvbiBmb3IgbmFtZWQgcmVmcyB3aXRoIGEgZGlhbG9nIGJveFxuXHRcdCAqIDMuIGFkZCB0aGUgd2hvbGUgdGhpbmcgdG8gdGhlIG1haW4gdG9vbGJhclxuXHRcdCAqL1xuXG5cdFx0JChkb2N1bWVudCkuZmluZCgnaGVhZCcpLnRyaWdnZXIoJ3JlZnRvb2xiYXJiYXNlJyk7XG5cdFx0Y29uc3QgJHRhcmdldCA9ICRib2R5LmZpbmQoJ3RleHRhcmVhW25hbWU9d3BUZXh0Ym94MV0nKTtcblx0XHRjb25zdCB0ZW1saXN0ID0ge307XG5cdFx0Zm9yIChjb25zdCB0IGluIENpdGVUQi5UZW1wbGF0ZXMpIHtcblx0XHRcdGlmIChPYmplY3QuaGFzT3duKENpdGVUQi5UZW1wbGF0ZXMsIHQpKSB7XG5cdFx0XHRcdGNvbnN0IHRlbSA9IENpdGVUQi5UZW1wbGF0ZXNbdF07XG5cdFx0XHRcdGNvbnN0IHNmb3JtID0gQ2l0ZVRCLmVzY1N0cih0ZW0uc2hvcnRmb3JtKTtcblx0XHRcdFx0Y29uc3QgYWN0aW9ub2JqID0ge1xuXHRcdFx0XHRcdHR5cGU6ICdkaWFsb2cnLFxuXHRcdFx0XHRcdG1vZHVsZTogYGNpdGUtZGlhbG9nLSR7c2Zvcm19YCxcblx0XHRcdFx0fTtcblx0XHRcdFx0Y29uc3QgZGlhbG9nb2JqID0ge307XG5cdFx0XHRcdGRpYWxvZ29ialtgY2l0ZS1kaWFsb2ctJHtzZm9ybX1gXSA9IHtcblx0XHRcdFx0XHRyZXNpemVtZTogZmFsc2UsXG5cdFx0XHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1lZGlhd2lraS9tc2ctZG9jXG5cdFx0XHRcdFx0dGl0bGU6IG13Lm1lc3NhZ2UoYGNpdGUtZGlhbG9nLSR7c2Zvcm19YCkucGFyc2UoKSxcblx0XHRcdFx0XHRpZDogYGNpdGV0b29sYmFyLSR7c2Zvcm19YCxcblx0XHRcdFx0XHRpbml0OiAoKSA9PiB7fSxcblx0XHRcdFx0XHRodG1sOiB0ZW0uZ2V0SW5pdGlhbCgpLFxuXHRcdFx0XHRcdGRpYWxvZzoge1xuXHRcdFx0XHRcdFx0d2lkdGg6IE1hdGgucm91bmQoJCh3aW5kb3cpLndpZHRoKCkgPz8gMCAqIDAuOCksXG5cdFx0XHRcdFx0XHRvcGVuKCkge1xuXHRcdFx0XHRcdFx0XHQkKHRoaXMpLmh0bWwoQ2l0ZVRCLmdldE9wZW5UZW1wbGF0ZSgpLmdldEZvcm0oKSk7XG5cdFx0XHRcdFx0XHRcdC8qKiBAcGFyYW0ge2pRdWVyeS5FdmVudH0gZSAqL1xuXHRcdFx0XHRcdFx0XHQkYm9keS5maW5kKCcuY2l0ZS1wcmV2LXBhcnNlJykub24oJ2NsaWNrJywgKGUpID0+IHtcblx0XHRcdFx0XHRcdFx0XHRlLnByZXZlbnREZWZhdWx0KCk7XG5cdFx0XHRcdFx0XHRcdFx0Q2l0ZVRCLnByZXZQYXJzZUNsaWNrKCk7XG5cdFx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdGJ1dHRvbnM6IHtcblx0XHRcdFx0XHRcdFx0J2NpdGUtZm9ybS1zdWJtaXQnKCkge1xuXHRcdFx0XHRcdFx0XHRcdGNvbnN0IHJlZiA9IENpdGVUQi5nZXRSZWYoZmFsc2UsIHRydWUpO1xuXHRcdFx0XHRcdFx0XHRcdCQodGhpcykuZGlhbG9nKCdjbG9zZScpO1xuXHRcdFx0XHRcdFx0XHRcdCQud2lraUVkaXRvci5tb2R1bGVzLnRvb2xiYXIuZm4uZG9BY3Rpb24oXG5cdFx0XHRcdFx0XHRcdFx0XHQkKHRoaXMpLmRhdGEoJ2NvbnRleHQnKSxcblx0XHRcdFx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0dHlwZTogJ2VuY2Fwc3VsYXRlJyxcblx0XHRcdFx0XHRcdFx0XHRcdFx0b3B0aW9uczoge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHBvc3Q6IHJlZixcblx0XHRcdFx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRcdFx0XHQkKHRoaXMpXG5cdFx0XHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFx0J2NpdGUtZm9ybS1zaG93aGlkZSc6IENpdGVUQi5zaG93SGlkZUV4dHJhLFxuXHRcdFx0XHRcdFx0XHQnY2l0ZS1yZWZwcmV2aWV3JygpIHtcblx0XHRcdFx0XHRcdFx0XHRjb25zdCByZWYgPSBDaXRlVEIuZ2V0UmVmKGZhbHNlLCBmYWxzZSk7XG5cdFx0XHRcdFx0XHRcdFx0Y29uc3QgdGVtcGxhdGUgPSBDaXRlVEIuZ2V0T3BlblRlbXBsYXRlKCk7XG5cdFx0XHRcdFx0XHRcdFx0Y29uc3QgZGl2ID0gJChgI2NpdGV0b29sYmFyLSR7Q2l0ZVRCLmVzY1N0cih0ZW1wbGF0ZS5zaG9ydGZvcm0pfWApO1xuXHRcdFx0XHRcdFx0XHRcdGRpdi5maW5kKCcuY2l0ZS1wcmV2aWV3LWxhYmVsJykuc2hvdygpO1xuXHRcdFx0XHRcdFx0XHRcdGRpdi5maW5kKCcuY2l0ZS1yZWYtcHJldmlldycpLnRleHQocmVmKS5zaG93KCk7XG5cdFx0XHRcdFx0XHRcdFx0aWYgKENpdGVUQi5nZXRPcHRpb24oJ2F1dG9wYXJzZScpKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRDaXRlVEIucHJldlBhcnNlQ2xpY2soKTtcblx0XHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdFx0ZGl2LmZpbmQoJy5jaXRlLXByZXYtcGFyc2UnKS5zaG93KCk7XG5cdFx0XHRcdFx0XHRcdFx0XHRkaXYuZmluZCgnLmNpdGUtcHJldi1wYXJzZWQtbGFiZWwnKS5oaWRlKCk7XG5cdFx0XHRcdFx0XHRcdFx0XHRkaXYuZmluZCgnLmNpdGUtcHJldmlldy1wYXJzZWQnKS5odG1sKCcnKTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRcdCd3aWtpZWRpdG9yLXRvb2xiYXItdG9vbC1saW5rLWNhbmNlbCcoKSB7XG5cdFx0XHRcdFx0XHRcdFx0JCh0aGlzKS5kaWFsb2coJ2Nsb3NlJyk7XG5cdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRcdCdjaXRlLWZvcm0tcmVzZXQnKCkge1xuXHRcdFx0XHRcdFx0XHRcdENpdGVUQi5yZXNldEZvcm0oKTtcblx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0fTtcblx0XHRcdFx0dHJ5IHtcblx0XHRcdFx0XHQkdGFyZ2V0Lndpa2lFZGl0b3IoJ2FkZERpYWxvZycsIGRpYWxvZ29iaik7XG5cdFx0XHRcdH0gY2F0Y2gge1xuXHRcdFx0XHRcdC8qIFR5cGVFcnJvcjogcmFuZ2UgaXMgbnVsbCAqL1xuXHRcdFx0XHR9XG5cdFx0XHRcdC8vIGlmICghQ2l0ZVRCLmdldE9wdGlvbignbW9kYWwnKSkge1xuXHRcdFx0XHQvLyBcdCRib2R5LmZpbmQoYCNjaXRldG9vbGJhci0ke3Nmb3JtfWApLmRpYWxvZygnb3B0aW9uJywgJ21vZGFsJywgZmFsc2UpO1xuXHRcdFx0XHQvLyB9XG5cdFx0XHRcdHRlbWxpc3Rbc2Zvcm1dID0ge1xuXHRcdFx0XHRcdGxhYmVsOiB0ZW0udGVtcGxhdGVuYW1lLFxuXHRcdFx0XHRcdGFjdGlvbjogYWN0aW9ub2JqLFxuXHRcdFx0XHR9O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGNvbnN0IHJlZnNlY3Rpb24gPSB7XG5cdFx0XHRzZWN0aW9uczoge1xuXHRcdFx0XHRjaXRlczoge1xuXHRcdFx0XHRcdHR5cGU6ICd0b29sYmFyJyxcblx0XHRcdFx0XHRsYWJlbDogZ2V0TWVzc2FnZSgnY2l0ZS1zZWN0aW9uLWxhYmVsJyksXG5cdFx0XHRcdFx0Z3JvdXBzOiB7XG5cdFx0XHRcdFx0XHR0ZW1wbGF0ZToge1xuXHRcdFx0XHRcdFx0XHR0b29sczoge1xuXHRcdFx0XHRcdFx0XHRcdHRlbXBsYXRlOiB7XG5cdFx0XHRcdFx0XHRcdFx0XHR0eXBlOiAnc2VsZWN0Jyxcblx0XHRcdFx0XHRcdFx0XHRcdGxhYmVsOiBnZXRNZXNzYWdlKCdjaXRlLXRlbXBsYXRlLWxpc3QnKSxcblx0XHRcdFx0XHRcdFx0XHRcdGxpc3Q6IHRlbWxpc3QsXG5cdFx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRuYW1lZHJlZnM6IHtcblx0XHRcdFx0XHRcdFx0bGFiZWw6IGdldE1lc3NhZ2UoJ2NpdGUtbmFtZWQtcmVmcy1sYWJlbCcpLFxuXHRcdFx0XHRcdFx0XHR0b29sczoge1xuXHRcdFx0XHRcdFx0XHRcdG5yZWZzOiB7XG5cdFx0XHRcdFx0XHRcdFx0XHR0eXBlOiAnYnV0dG9uJyxcblx0XHRcdFx0XHRcdFx0XHRcdGFjdGlvbjoge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR0eXBlOiAnZGlhbG9nJyxcblx0XHRcdFx0XHRcdFx0XHRcdFx0bW9kdWxlOiAnY2l0ZS10b29sYmFyLW5hbWVkcmVmcycsXG5cdFx0XHRcdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0XHRcdFx0aWNvbjogYGRhdGE6aW1hZ2Uvc3ZnK3htbCwke2VuY29kZVVSSUNvbXBvbmVudChvb2pzVWlDaXRlQXJ0aWNsZSl9YCxcblx0XHRcdFx0XHRcdFx0XHRcdHNlY3Rpb246ICdjaXRlcycsXG5cdFx0XHRcdFx0XHRcdFx0XHRncm91cDogJ25hbWVkcmVmcycsXG5cdFx0XHRcdFx0XHRcdFx0XHRsYWJlbDogZ2V0TWVzc2FnZSgnY2l0ZS1uYW1lZC1yZWZzLWJ1dHRvbicpLFxuXHRcdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdH0sXG5cdFx0XHR9LFxuXHRcdH07XG5cblx0XHRjb25zdCBkZWZhdWx0ZGlhbG9ncyA9IHtcblx0XHRcdCdjaXRlLXRvb2xiYXItbmFtZWRyZWZzJzoge1xuXHRcdFx0XHR0aXRsZTogbXcubWVzc2FnZSgnY2l0ZS1uYW1lZC1yZWZzLXRpdGxlJykucGFyc2UoKSxcblx0XHRcdFx0cmVzaXplbWU6IGZhbHNlLFxuXHRcdFx0XHRpZDogJ2NpdGV0b29sYmFyLW5hbWVkcmVmcycsXG5cdFx0XHRcdGh0bWw6IGA8ZGl2IGlkPVwiY2l0ZS1uYW1lZHJlZi1sb2FkaW5nXCI+IDxpbWcgc3JjPVwiJHthamF4TG9hZGVyfVwiIC8+ICZuYnNwOyR7Z2V0TWVzc2FnZShcblx0XHRcdFx0XHQnY2l0ZS1sb2FkaW5nJ1xuXHRcdFx0XHQpfTwvZGl2PmAsXG5cdFx0XHRcdGluaXQ6ICgpID0+IHt9LFxuXHRcdFx0XHRkaWFsb2c6IHtcblx0XHRcdFx0XHR3aWR0aDogTWF0aC5yb3VuZCgkKHdpbmRvdykud2lkdGgoKSA/PyAwICogMC44KSxcblx0XHRcdFx0XHRvcGVuKCkge1xuXHRcdFx0XHRcdFx0Q2l0ZVRCLmxvYWRSZWZzKCk7XG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRidXR0b25zOiB7XG5cdFx0XHRcdFx0XHQnY2l0ZS1mb3JtLXN1Ym1pdCcoKSB7XG5cdFx0XHRcdFx0XHRcdGNvbnN0IHJlZm5hbWUgPSAkYm9keS5maW5kKCcjY2l0ZS1uYW1lZHJlZi1zZWxlY3QnKS52YWwoKTtcblx0XHRcdFx0XHRcdFx0aWYgKHJlZm5hbWUgPT09ICcnKSB7XG5cdFx0XHRcdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdCQodGhpcykuZGlhbG9nKCdjbG9zZScpO1xuXHRcdFx0XHRcdFx0XHQkLndpa2lFZGl0b3IubW9kdWxlcy50b29sYmFyLmZuLmRvQWN0aW9uKFxuXHRcdFx0XHRcdFx0XHRcdCQodGhpcykuZGF0YSgnY29udGV4dCcpLFxuXHRcdFx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XHRcdHR5cGU6ICdlbmNhcHN1bGF0ZScsXG5cdFx0XHRcdFx0XHRcdFx0XHRvcHRpb25zOiB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHBvc3Q6IENpdGVUQi5nZXROYW1lZFJlZihyZWZuYW1lLCB0cnVlKSxcblx0XHRcdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFx0XHQkKHRoaXMpXG5cdFx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0J3dpa2llZGl0b3ItdG9vbGJhci10b29sLWxpbmstY2FuY2VsJygpIHtcblx0XHRcdFx0XHRcdFx0JCh0aGlzKS5kaWFsb2coJ2Nsb3NlJyk7XG5cdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdH0sXG5cdFx0XHR9LFxuXHRcdH07XG5cblx0XHR0cnkge1xuXHRcdFx0JHRhcmdldC53aWtpRWRpdG9yKCdhZGREaWFsb2cnLCBkZWZhdWx0ZGlhbG9ncyk7XG5cdFx0fSBjYXRjaCB7XG5cdFx0XHQvLyBlcnJvciBvY2N1cnJlZCBzZXR0aW5nIHVwIHdpa2llZGl0b3IuXG5cdFx0fVxuXHRcdCRib2R5LmZpbmQoJyNjaXRldG9vbGJhci1uYW1lZHJlZnMnKS5vZmYoJ2RpYWxvZ29wZW4nKTtcblx0XHRpZiAoIUNpdGVUQi5nZXRPcHRpb24oJ21vZGFsJykpIHtcblx0XHRcdC8vICRib2R5LmZpbmQoJyNjaXRldG9vbGJhci1uYW1lZHJlZnMnKS5kaWFsb2coJ29wdGlvbicsICdtb2RhbCcsIGZhbHNlKTtcblx0XHRcdG13LnV0aWwuYWRkQ1NTKCcudWktd2lkZ2V0LW92ZXJsYXl7ZGlzcGxheTpub25lICFpbXBvcnRhbnR9Jyk7XG5cdFx0fVxuXHRcdHRyeSB7XG5cdFx0XHQkdGFyZ2V0Lndpa2lFZGl0b3IoJ2FkZFRvVG9vbGJhcicsIHJlZnNlY3Rpb24pO1xuXHRcdH0gY2F0Y2gge1xuXHRcdFx0Ly8gZXJyb3Igb2NjdXJyZWQgc2V0dGluZyB1cCB3aWtpZWRpdG9yLlxuXHRcdH1cblx0fTtcblxuXHQvLyBTZXR1cCB0aGUgbWFpbiBvYmplY3Rcblx0Q2l0ZVRCLm1haW5SZWZMaXN0ID0gW107XG5cdENpdGVUQi5yZWZzTG9hZGVkID0gZmFsc2U7XG5cblx0Ly8gUkVGIEZVTkNUSU9OU1xuXHQvLyBBY3R1YWxseSBhc3NlbWJsZSBhIHJlZiBmcm9tIHVzZXIgaW5wdXRcblx0Q2l0ZVRCLmdldFJlZiA9IChpbm5lcm9ubHksIGZvcmluc2VydCkgPT4ge1xuXHRcdGxldCBpLCBqLCBnLCBncm91cDtcblx0XHRjb25zdCB0ZW1wbGF0ZSA9IENpdGVUQi5nZXRPcGVuVGVtcGxhdGUoKTtcblx0XHRjb25zdCB7dGVtcGxhdGVuYW1lfSA9IHRlbXBsYXRlO1xuXHRcdGxldCByZXMgPSAnJztcblx0XHRjb25zdCByZWZvYmogPSB7XG5cdFx0XHRzaG9ydHRhZzogZmFsc2UsXG5cdFx0fTtcblx0XHRpZiAoIWlubmVyb25seSkge1xuXHRcdFx0Z3JvdXAgPSAkKGAjY2l0ZS0ke0NpdGVUQi5lc2NTdHIodGVtcGxhdGUuc2hvcnRmb3JtKX0tZ3JvdXBgKS52YWwoKTtcblx0XHRcdGxldCByZWZuYW1lID0gJChgI2NpdGUtJHtDaXRlVEIuZXNjU3RyKHRlbXBsYXRlLnNob3J0Zm9ybSl9LW5hbWVgKS52YWwoKTtcblx0XHRcdHJlcyArPSAnPHJlZic7XG5cdFx0XHRpZiAocmVmbmFtZSkge1xuXHRcdFx0XHRyZWZuYW1lID0gU3RyaW5nKHJlZm5hbWUpLnRyaW0oKTtcblx0XHRcdFx0cmVzICs9IGAgbmFtZT0ke0NpdGVUQi5nZXRRdW90ZWRTdHJpbmcocmVmbmFtZSl9YDtcblx0XHRcdFx0cmVmb2JqLnJlZm5hbWUgPSByZWZuYW1lO1xuXHRcdFx0fVxuXHRcdFx0aWYgKGdyb3VwKSB7XG5cdFx0XHRcdGdyb3VwID0gU3RyaW5nKGdyb3VwKS50cmltKCk7XG5cdFx0XHRcdHJlcyArPSBgIGdyb3VwPSR7Q2l0ZVRCLmdldFF1b3RlZFN0cmluZyhncm91cCl9YDtcblx0XHRcdFx0cmVmb2JqLnJlZmdyb3VwID0gZ3JvdXA7XG5cdFx0XHR9XG5cdFx0XHRyZXMgKz0gJz4nO1xuXHRcdH1cblx0XHRsZXQgY29udGVudCA9IGB7eyR7dGVtcGxhdGVuYW1lfWA7XG5cdFx0Zm9yIChnIGluIHRlbXBsYXRlLmluY3JlbWVudGFibGVzKSB7XG5cdFx0XHRpZiAoT2JqZWN0Lmhhc093bih0ZW1wbGF0ZS5pbmNyZW1lbnRhYmxlcywgZykpIHtcblx0XHRcdFx0Z3JvdXAgPSB0ZW1wbGF0ZS5pbmNyZW1lbnRhYmxlc1tnXTtcblx0XHRcdFx0Zm9yIChpID0gMTsgaSA8PSBncm91cC52YWw7IGkrKykge1xuXHRcdFx0XHRcdGZvciAoaiA9IDA7IGogPCBncm91cC5maWVsZHMubGVuZ3RoOyBqKyspIHtcblx0XHRcdFx0XHRcdGNvbnN0IGZpZWxkbmFtZSA9IGdyb3VwLmZpZWxkc1tqXS5maWVsZDtcblx0XHRcdFx0XHRcdGNvbnN0IGZpZWxkaWQgPSBmaWVsZG5hbWUucmVwbGFjZSgnPE4+JywgaS50b1N0cmluZygpKTtcblx0XHRcdFx0XHRcdGNvbnN0IGZpZWxkID0gJChgI2NpdGUtJHtDaXRlVEIuZXNjU3RyKHRlbXBsYXRlLnNob3J0Zm9ybSl9LSR7ZmllbGRpZH1gKS52YWwoKTtcblx0XHRcdFx0XHRcdGlmIChmaWVsZCkge1xuXHRcdFx0XHRcdFx0XHRjb250ZW50ICs9IGAgfCR7ZmllbGRpZH09YDtcblx0XHRcdFx0XHRcdFx0Y29udGVudCArPSBTdHJpbmcoZmllbGQpLnRyaW0oKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0Zm9yIChpID0gMDsgaSA8IHRlbXBsYXRlLmJhc2ljLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRpZiAodGVtcGxhdGUuYmFzaWNbaV0uaW5jcmVtZW50X2dyb3VwKSB7XG5cdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0fVxuXHRcdFx0Y29uc3QgZmllbGRuYW1lID0gdGVtcGxhdGUuYmFzaWNbaV0uZmllbGQ7XG5cdFx0XHRjb25zdCBmaWVsZCA9ICQoYCNjaXRlLSR7Q2l0ZVRCLmVzY1N0cih0ZW1wbGF0ZS5zaG9ydGZvcm0pfS0ke2ZpZWxkbmFtZX1gKS52YWwoKTtcblx0XHRcdGlmIChmaWVsZCkge1xuXHRcdFx0XHRjb250ZW50ICs9IGAgfCR7ZmllbGRuYW1lfT1gO1xuXHRcdFx0XHRjb250ZW50ICs9IFN0cmluZyhmaWVsZCkudHJpbSgpO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRpZiAoJGJvZHkuZmluZCgnI2NpdGUtZm9ybS1zdGF0dXMnKS52YWwoKSAhPT0gJ2Nsb3NlZCcpIHtcblx0XHRcdGZvciAoaSA9IDA7IGkgPCB0ZW1wbGF0ZS5leHRyYS5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRpZiAodGVtcGxhdGUuZXh0cmFbaV0uaW5jcmVtZW50X2dyb3VwKSB7XG5cdFx0XHRcdFx0Y29udGludWU7XG5cdFx0XHRcdH1cblx0XHRcdFx0Y29uc3QgZmllbGRuYW1lID0gdGVtcGxhdGUuZXh0cmFbaV0uZmllbGQ7XG5cdFx0XHRcdGNvbnN0IGZpZWxkID0gJChgI2NpdGUtJHtDaXRlVEIuZXNjU3RyKHRlbXBsYXRlLnNob3J0Zm9ybSl9LSR7ZmllbGRuYW1lfWApLnZhbCgpO1xuXHRcdFx0XHRpZiAoZmllbGQpIHtcblx0XHRcdFx0XHRjb250ZW50ICs9IGAgfCR7ZmllbGRuYW1lfT1gO1xuXHRcdFx0XHRcdGNvbnRlbnQgKz0gU3RyaW5nKGZpZWxkKS50cmltKCk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0Y29udGVudCArPSAnfX0nO1xuXHRcdHJlcyArPSBjb250ZW50O1xuXHRcdHJlZm9iai5jb250ZW50ID0gY29udGVudDtcblx0XHRpZiAoIWlubmVyb25seSkge1xuXHRcdFx0cmVzICs9ICc8L3JlZj4nO1xuXHRcdH1cblx0XHRpZiAoZm9yaW5zZXJ0KSB7XG5cdFx0XHRDaXRlVEIubWFpblJlZkxpc3QucHVzaChyZWZvYmopO1xuXHRcdH1cblx0XHRyZXR1cm4gcmVzO1xuXHR9O1xuXG5cdC8vIE1ha2UgYSByZWZlcmVuY2UgdG8gYSBuYW1lZCByZWZcblx0Q2l0ZVRCLmdldE5hbWVkUmVmID0gKHJlZm5hbWUsIGZvcmluc2VydCkgPT4ge1xuXHRcdGlmIChmb3JpbnNlcnQpIHtcblx0XHRcdENpdGVUQi5tYWluUmVmTGlzdC5wdXNoKHtcblx0XHRcdFx0c2hvcnR0YWc6IHRydWUsXG5cdFx0XHRcdHJlZm5hbWUsXG5cdFx0XHR9KTtcblx0XHR9XG5cdFx0cmV0dXJuIGA8cmVmIG5hbWU9JHtDaXRlVEIuZ2V0UXVvdGVkU3RyaW5nKHJlZm5hbWUpfSAvPmA7XG5cdH07XG5cblx0Ly8gRnVuY3Rpb24gdG8gbG9hZCB0aGUgcmVmIGxpc3Rcblx0Q2l0ZVRCLmxvYWRSZWZzID0gKCkgPT4ge1xuXHRcdGlmIChDaXRlVEIucmVmc0xvYWRlZCkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRDaXRlVEIuZ2V0UGFnZVRleHQoQ2l0ZVRCLmxvYWRSZWZzSW50ZXJuYWwpO1xuXHR9O1xuXG5cdC8vIEZ1bmN0aW9uIHRoYXQgYWN0dWFsbHkgbG9hZHMgdGhlIGxpc3QgZnJvbSB0aGUgcGFnZSB0ZXh0XG5cdENpdGVUQi5sb2FkUmVmc0ludGVybmFsID0gKHRleHQpID0+IHtcblx0XHQvLyBXaGF0IHRoaXMgZG9lczogICAgICAgICAgICAgZXh0cmFjdCBmaXJzdCBuYW1lL2dyb3VwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dHJhY3Qgc2Vjb25kIG5hbWUvZ3JvdXAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG9ydHRhZyAgIGlubmVyIGNvbnRlbnRcblx0XHRjb25zdCByZWZzcmVnZXggPVxuXHRcdFx0LzwgKnJlZig/OiArKG5hbWV8Z3JvdXApICo9ICooPzpcIihbXlwiXSo/KVwifCcoW14nXSo/KSd8KFteICdcIi8+XSo/KSkgKik/ICooPzogKyhuYW1lfGdyb3VwKSAqPSAqKD86XCIoW15cIl0qPylcInwnKFteJ10qPyknfChbXiAnXCIvPl0qPykpICopPyAqKD86XFwvICo+fD4oKD86LnxcXG4pKj8pPCAqXFwvICpyZWYgKj4pL2dpbTtcblx0XHQvLyBUaGlzIHNob3VsZCB3b3JrIHJlZ2FyZGxlc3Mgb2YgdGhlIHF1b3RpbmcgdXNlZCBmb3IgbmFtZXMvZ3JvdXBzIGFuZCBmb3IgbGluZWJyZWFrcyBpbiB0aGUgaW5uZXIgY29udGVudFxuXHRcdHdoaWxlICh0cnVlKSB7XG5cdFx0XHRjb25zdCByZWYgPSByZWZzcmVnZXguZXhlYyh0ZXh0KTtcblx0XHRcdGlmIChyZWYgPT09IG51bGwpIHtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHR9XG5cdFx0XHRjb25zdCByZWZvYmogPSB7fTtcblx0XHRcdGlmIChyZWZbOV0pIHtcblx0XHRcdFx0Ly8gQ29udGVudCArIHNob3J0IHRhZyBjaGVja1xuXHRcdFx0XHQvLyBtdy5ub3RpZnkoYFwiJHtyZWZbOV19XCJgLCB7dGFnOiAnUmVmVG9vbGJhcjIuMCcsIHR5cGU6ICd3YXJuJ30pO1xuXHRcdFx0XHRbLCAsICwgLCAsICwgLCAsICwgcmVmb2JqLmNvbnRlbnRdID0gcmVmO1xuXHRcdFx0XHRyZWZvYmouc2hvcnR0YWcgPSBmYWxzZTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHJlZm9iai5zaG9ydHRhZyA9IHRydWU7XG5cdFx0XHR9XG5cdFx0XHRpZiAocmVmWzFdICE9PSAnJykge1xuXHRcdFx0XHQvLyBGaXJzdCBuYW1lL2dyb3VwXG5cdFx0XHRcdGlmIChyZWZbMl0pIHtcblx0XHRcdFx0XHRbLCAsIHJlZm9ialtgcmVmJHtyZWZbMV19YF1dID0gcmVmO1xuXHRcdFx0XHR9IGVsc2UgaWYgKHJlZlszXSkge1xuXHRcdFx0XHRcdFssICwgLCByZWZvYmpbYHJlZiR7cmVmWzFdfWBdXSA9IHJlZjtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRbLCAsICwgLCByZWZvYmpbYHJlZiR7cmVmWzFdfWBdXSA9IHJlZjtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0aWYgKHJlZls1XSAhPT0gJycpIHtcblx0XHRcdFx0Ly8gU2Vjb25kIG5hbWUvZ3JvdXBcblx0XHRcdFx0aWYgKHJlZls2XSkge1xuXHRcdFx0XHRcdFssICwgLCAsICwgLCByZWZvYmpbYHJlZiR7cmVmWzVdfWBdXSA9IHJlZjtcblx0XHRcdFx0fSBlbHNlIGlmIChyZWZbN10pIHtcblx0XHRcdFx0XHRbLCAsICwgLCAsICwgLCByZWZvYmpbYHJlZiR7cmVmWzVdfWBdXSA9IHJlZjtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRbLCAsICwgLCAsICwgLCAsIHJlZm9ialtgcmVmJHtyZWZbNV19YF1dID0gcmVmO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRDaXRlVEIubWFpblJlZkxpc3QucHVzaChyZWZvYmopO1xuXHRcdH1cblx0XHRDaXRlVEIucmVmc0xvYWRlZCA9IHRydWU7XG5cdFx0Q2l0ZVRCLnNldHVwTmFtZWRSZWZzKCk7XG5cdH07XG5cblx0Ly8gQUpBWCBGVU5DVElPTlNcblx0Ly8gUGFyc2Ugc29tZSB3aWtpdGV4dCBhbmQgaGFuZCBpdCBvZmYgdG8gYSBjYWxsYmFjayBmdW5jdGlvblxuXHRDaXRlVEIucGFyc2UgPSAodGV4dCwgY2FsbGJhY2spID0+IHtcblx0XHRjb25zdCBwb3N0ZGF0YSA9IHtcblx0XHRcdGFjdGlvbjogJ3BhcnNlJyxcblx0XHRcdHRpdGxlOiBtdy5jb25maWcuZ2V0KCd3Z1BhZ2VOYW1lJyksXG5cdFx0XHR0ZXh0LFxuXHRcdFx0cHJvcDogJ3RleHQnLFxuXHRcdFx0Zm9ybWF0OiAnanNvbicsXG5cdFx0XHRmb3JtYXR2ZXJzaW9uOiAnMicsXG5cdFx0fTtcblx0XHRhcGkuZ2V0KHBvc3RkYXRhKS50aGVuKCh7cGFyc2V9KSA9PiB7XG5cdFx0XHRjb25zdCBodG1sID0gcGFyc2UudGV4dDtcblx0XHRcdGNhbGxiYWNrKGh0bWwpO1xuXHRcdH0pO1xuXHR9O1xuXG5cdC8vIFVzZSB0aGUgQVBJIHRvIGV4cGFuZCB0ZW1wbGF0ZXMgb24gc29tZSB0ZXh0XG5cdENpdGVUQi5leHBhbmR0ZW1wbGF0ZXMgPSAodGV4dCwgY2FsbGJhY2spID0+IHtcblx0XHRjb25zdCBwb3N0ZGF0YSA9IHtcblx0XHRcdGFjdGlvbjogJ2V4cGFuZHRlbXBsYXRlcycsXG5cdFx0XHR0aXRsZTogbXcuY29uZmlnLmdldCgnd2dQYWdlTmFtZScpLFxuXHRcdFx0dGV4dCxcblx0XHRcdGZvcm1hdDogJ2pzb24nLFxuXHRcdFx0Zm9ybWF0dmVyc2lvbjogJzInLFxuXHRcdH07XG5cdFx0YXBpLmdldChwb3N0ZGF0YSkudGhlbigoe2V4cGFuZHRlbXBsYXRlc30pID0+IHtcblx0XHRcdGNvbnN0IHJlc3RleHQgPSBleHBhbmR0ZW1wbGF0ZXMud2lraXRleHQ7XG5cdFx0XHRjYWxsYmFjayhyZXN0ZXh0KTtcblx0XHR9KTtcblx0fTtcblxuXHQvLyBGdW5jdGlvbiB0byBnZXQgdGhlIHBhZ2UgdGV4dFxuXHRDaXRlVEIuZ2V0UGFnZVRleHQgPSAoY2FsbGJhY2spID0+IHtcblx0XHRjb25zdCBzZWN0aW9uID0gJGJvZHkuZmluZCgnaW5wdXRbbmFtZT13cFNlY3Rpb25dJykudmFsKCk7XG5cdFx0aWYgKHNlY3Rpb24gPT09ICcnKSB7XG5cdFx0XHRpZiAoQ2l0ZVRCLmdldE9wdGlvbignZXhwYW5kdGVtcGxhdGVzJykpIHtcblx0XHRcdFx0Q2l0ZVRCLmV4cGFuZHRlbXBsYXRlcyhcblx0XHRcdFx0XHQkYm9keS5maW5kKCd0ZXh0YXJlYVtuYW1lPXdwVGV4dGJveDFdJykud2lraUVkaXRvcignZ2V0Q29udGVudHMnKS50ZXh0KCksXG5cdFx0XHRcdFx0Y2FsbGJhY2tcblx0XHRcdFx0KTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGNhbGxiYWNrKCRib2R5LmZpbmQoJ3RleHRhcmVhW25hbWU9d3BUZXh0Ym94MV0nKS53aWtpRWRpdG9yKCdnZXRDb250ZW50cycpLnRleHQoKSk7XG5cdFx0XHR9XG5cdFx0fSBlbHNlIHtcblx0XHRcdGNvbnN0IHt3Z0FydGljbGVJZH0gPSBtdy5jb25maWcuZ2V0KCk7XG5cdFx0XHRjb25zdCBwb3N0ZGF0YSA9IHtcblx0XHRcdFx0YWN0aW9uOiAncXVlcnknLFxuXHRcdFx0XHRwcm9wOiAncmV2aXNpb25zJyxcblx0XHRcdFx0cnZwcm9wOiAnY29udGVudCcsXG5cdFx0XHRcdHJ2c2xvdHM6ICdtYWluJyxcblx0XHRcdFx0cGFnZWlkczogd2dBcnRpY2xlSWQsXG5cdFx0XHRcdGZvcm1hdDogJ2pzb24nLFxuXHRcdFx0XHRmb3JtYXR2ZXJzaW9uOiAnMicsXG5cdFx0XHR9O1xuXHRcdFx0aWYgKENpdGVUQi5nZXRPcHRpb24oJ2V4cGFuZHRlbXBsYXRlcycpKSB7XG5cdFx0XHRcdHBvc3RkYXRhLnJ2ZXhwYW5kdGVtcGxhdGVzID0gJzEnO1xuXHRcdFx0fVxuXHRcdFx0YXBpLmdldChwb3N0ZGF0YSkudGhlbigoe3F1ZXJ5fSkgPT4ge1xuXHRcdFx0XHRjb25zdCBwYWdldGV4dCA9IHF1ZXJ5LnBhZ2VzWzBdLnJldmlzaW9uc1swXS5zbG90cy5tYWluLmNvbnRlbnQ7XG5cdFx0XHRcdGNhbGxiYWNrKHBhZ2V0ZXh0KTtcblx0XHRcdH0pO1xuXHRcdH1cblx0fTtcblxuXHQvLyBTYWZlIHZlcnNpb24gb2YgZGVjb2RlVVJJQ29tcG9uZW50KCkgdGhhdCBkb2Vzbid0IHRocm93IGV4Y2VwdGlvbnMuXG5cdC8vIElmIHRoZSBuYXRpdmUgZGVjb2RlVVJJQ29tcG9uZW50KCkgdGhyZXcgYW4gZXhjZXB0aW9uLCB0aGUgb3JpZ2luYWwgc3RyaW5nIHdpbGwgYmUgcmV0dXJuZWQuXG5cdENpdGVUQi5zYWZlRGVjb2RlVVJJQ29tcG9uZW50ID0gKHMpID0+IHtcblx0XHR0cnkge1xuXHRcdFx0cyA9IGRlY29kZVVSSUNvbXBvbmVudChzKTtcblx0XHR9IGNhdGNoIHtcblx0XHRcdC8qIGVtcHR5ICovXG5cdFx0fVxuXHRcdHJldHVybiBzO1xuXHR9O1xuXG5cdC8vIEF1dG9maWxsIGEgdGVtcGxhdGUgZnJvbSBhbiBJRCAoSVNCTiwgRE9JLCBQTUlELCBVUkwpXG5cdENpdGVUQi5pbml0QXV0b2ZpbGwgPSBmdW5jdGlvbiAoKSB7XG5cdFx0Y29uc3QgZWxlbWlkID0gJCh0aGlzKS5hdHRyKCdpZCcpID8/ICcnO1xuXHRcdGNvbnN0IHJlcyA9IC9eY2l0ZS1hdXRvLSguKj8pLSguKiktKC4qKSQvLmV4ZWMoZWxlbWlkKTtcblx0XHRpZiAoIXJlcykge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblx0XHRjb25zdCBbLCB0ZW0sIGZpZWxkLCBhdXRvdHlwZV0gPSByZXM7XG5cdFx0bGV0IGlkID0gJChgI2NpdGUtJHt0ZW19LSR7ZmllbGR9YCkudmFsKCk7XG5cdFx0aWYgKCFpZCkge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblx0XHRsZXQgdXJsID0gJ2h0dHBzOi8vY2l0b2lkLnFpdXdlbi5uZXQuY24vbG9va3VwLnBocD8nO1xuXHRcdC8vIENpdG9pZCBleHBlY3RzIG1pbmltYWxseSBlbmNvZGVkIGlucHV0LCBzbyBkbyBzb21lIHNwZWN1bGF0aXZlIGRlY29kaW5nIGhlcmUgdG8gYXZvaWRcblx0XHQvLyA0MDQgZmV0Y2hlcy4gaHR0cHM6Ly9waGFicmljYXRvci53aWtpbWVkaWEub3JnL1QxNDY1Mzlcblx0XHRpZCA9IENpdGVUQi5zYWZlRGVjb2RlVVJJQ29tcG9uZW50KGlkKTtcblx0XHR1cmwgKz0gYCR7YXV0b3R5cGV9PSR7ZW5jb2RlVVJJQ29tcG9uZW50KGlkKX1gO1xuXHRcdHVybCArPSBgJnRlbXBsYXRlPSR7ZW5jb2RlVVJJQ29tcG9uZW50KHRlbSl9YDtcblx0XHRjb25zdCBzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XG5cdFx0cy5zZXRBdHRyaWJ1dGUoJ3NyYycsIHVybCk7XG5cdFx0cy5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAndGV4dC9qYXZhc2NyaXB0Jyk7XG5cdFx0ZG9jdW1lbnQuaGVhZC5hcHBlbmQocyk7XG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9O1xuXG5cdC8vIENhbGxiYWNrIGZvciBhdXRvZmlsbFxuXHQvLyBUT0RPOiBBdXRvZmlsbCB0aGUgVVJMLCBhdCBsZWFzdCBmb3IgRE9JXG5cdENpdGVUQi5hdXRvRmlsbCA9IChkYXRhLCB0ZW1wbGF0ZSwgdHlwZSkgPT4ge1xuXHRcdGNvbnN0IGNsID0gYGNpdGUtJHt0ZW1wbGF0ZX0tYDtcblx0XHRsZXQgaSwgajtcblx0XHRsZXQgY29hdXRob3JzO1xuXHRcdCQoYC4ke2NsfXRpdGxlYCkudmFsKGRhdGEudGl0bGUpO1xuXHRcdC8vIEZpbGwgaW4gYXV0aG9yc1xuXHRcdGlmIChkYXRhLmF1dGhvcnMgJiYgZGF0YS5hdXRob3JzLmxlbmd0aCA+IDApIHtcblx0XHRcdGlmICgkKGAuJHtjbH1sYXN0LWluY3ItMWApLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0Y29uc3QgY2xhc3NlcyA9ICQoYC4ke2NsfWxhc3QtaW5jci0xYCkuZXEoMCkuYXR0cignY2xhc3MnKT8uc3BsaXQoL1xccysvKTtcblx0XHRcdFx0aWYgKCFjbGFzc2VzKSB7XG5cdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGxldCBncm91cCA9IGZhbHNlO1xuXHRcdFx0XHRjb25zdCBwYXR0ID0gL2NpdGUtW14tXSo/LWluY3ItKC4qKS87XG5cdFx0XHRcdGZvciAoY29uc3QgY2xhc3NfIG9mIGNsYXNzZXMpIHtcblx0XHRcdFx0XHRpZiAocGF0dC5leGVjKGNsYXNzXykpIHtcblx0XHRcdFx0XHRcdFssIGdyb3VwXSA9IHBhdHQuZXhlYyhjbGFzc18pO1xuXHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdCQoYC4ke2NsfWxhc3QtaW5jci0xYCkudmFsKGRhdGEuYXV0aG9yc1swXVswXSk7XG5cdFx0XHRcdCQoYC4ke2NsfWZpcnN0LWluY3ItMWApLnZhbChkYXRhLmF1dGhvcnNbMF1bMV0pO1xuXHRcdFx0XHRjb25zdCBlbGVtaWQgPSBgI2NpdGUtaW5jci0ke3RlbXBsYXRlfS0ke2dyb3VwfWA7XG5cdFx0XHRcdGZvciAoaSA9IDI7IGkgPCBkYXRhLmF1dGhvcnMubGVuZ3RoICsgMTsgaSsrKSB7XG5cdFx0XHRcdFx0JChlbGVtaWQpLnRyaWdnZXIoJ2NsaWNrJyk7XG5cdFx0XHRcdFx0JChgLiR7Y2x9bGFzdC1pbmNyLSR7aS50b1N0cmluZygpfWApLnZhbChkYXRhLmF1dGhvcnNbaSAtIDFdWzBdKTtcblx0XHRcdFx0XHQkKGAuJHtjbH1maXJzdC1pbmNyLSR7aS50b1N0cmluZygpfWApLnZhbChkYXRhLmF1dGhvcnNbaSAtIDFdWzFdKTtcblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIGlmICgkKGAuJHtjbH1hdXRob3ItaW5jci0xYCkubGVuZ3RoID4gMCkge1xuXHRcdFx0XHRjb25zdCBjbGFzc2VzID0gJChgLiR7Y2x9YXV0aG9yLWluY3ItMWApLmVxKDApLmF0dHIoJ2NsYXNzJyk/LnNwbGl0KC9cXHMrLyk7XG5cdFx0XHRcdGlmICghY2xhc3Nlcykge1xuXHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0fVxuXHRcdFx0XHRsZXQgZ3JvdXAgPSBmYWxzZTtcblx0XHRcdFx0Y29uc3QgcGF0dCA9IC9jaXRlLVteLV0qPy1pbmNyLSguKikvO1xuXHRcdFx0XHRmb3IgKGNvbnN0IGNsYXNzXyBvZiBjbGFzc2VzKSB7XG5cdFx0XHRcdFx0aWYgKHBhdHQuZXhlYyhjbGFzc18pKSB7XG5cdFx0XHRcdFx0XHRbLCBncm91cF0gPSBwYXR0LmV4ZWMoY2xhc3NfKTtcblx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHQkKGAuJHtjbH1hdXRob3ItaW5jci0xYCkudmFsKGRhdGEuYXV0aG9yc1swXS5qb2luKCcsICcpKTtcblx0XHRcdFx0Y29uc3QgZWxlbWlkID0gYCNjaXRlLWluY3ItJHt0ZW1wbGF0ZX0tJHtncm91cH1gO1xuXHRcdFx0XHRmb3IgKGkgPSAyOyBpIDwgZGF0YS5hdXRob3JzLmxlbmd0aCArIDE7IGkrKykge1xuXHRcdFx0XHRcdCQoZWxlbWlkKS50cmlnZ2VyKCdjbGljaycpO1xuXHRcdFx0XHRcdCQoYC4ke2NsfWF1dGhvci1pbmNyLSR7aS50b1N0cmluZygpfWApLnZhbChkYXRhLmF1dGhvcnNbaSAtIDFdLmpvaW4oJywgJykpO1xuXHRcdFx0XHR9XG5cdFx0XHR9IGVsc2UgaWYgKCQoYC4ke2NsfWxhc3QxYCkubGVuZ3RoID4gMCkge1xuXHRcdFx0XHRmb3IgKGkgPSAwOyBkYXRhLmF1dGhvcnMgJiYgaSA8IGRhdGEuYXV0aG9ycy5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRcdGlmICgkKGAuJHtjbH1sYXN0JHtpICsgMX1gKS5sZW5ndGgpIHtcblx0XHRcdFx0XHRcdCQoYC4ke2NsfWxhc3Qke2kgKyAxfWApLnZhbChkYXRhLmF1dGhvcnNbaV1bMF0pO1xuXHRcdFx0XHRcdFx0JChgLiR7Y2x9Zmlyc3Qke2kgKyAxfWApLnZhbChkYXRhLmF1dGhvcnNbaV1bMV0pO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRjb2F1dGhvcnMgPSBbXTtcblx0XHRcdFx0XHRcdGZvciAoaiA9IGk7IGogPCBkYXRhLmF1dGhvcnMubGVuZ3RoOyBqKyspIHtcblx0XHRcdFx0XHRcdFx0Y29hdXRob3JzLnB1c2goZGF0YS5hdXRob3JzW2pdLmpvaW4oJywgJykpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0JChgLiR7Y2x9Y29hdXRob3JzYCkudmFsKGNvYXV0aG9ycy5qb2luKCc7ICcpKTtcblx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIGlmICgkKGAuJHtjbH1hdXRob3IxYCkubGVuZ3RoID09PSAwKSB7XG5cdFx0XHRcdGNvbnN0IGF1dGhvcnMgPSBbXTtcblx0XHRcdFx0Zm9yIChpID0gMDsgZGF0YS5hdXRob3JzICYmIGkgPCBkYXRhLmF1dGhvcnMubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0XHRhdXRob3JzLnB1c2goZGF0YS5hdXRob3JzW2ldLmpvaW4oJywgJykpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdCQoYC4ke2NsfWF1dGhvcnNgKS52YWwoYXV0aG9ycy5qb2luKCc7ICcpKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGZvciAoaSA9IDA7IGRhdGEuYXV0aG9ycyAmJiBpIDwgZGF0YS5hdXRob3JzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdFx0aWYgKCQoYC4ke2NsfWF1dGhvciR7aSArIDF9YCkubGVuZ3RoKSB7XG5cdFx0XHRcdFx0XHQkKGAuJHtjbH1hdXRob3Ike2kgKyAxfWApLnZhbChkYXRhLmF1dGhvcnNbaV0uam9pbignLCAnKSk7XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdGNvYXV0aG9ycyA9IFtdO1xuXHRcdFx0XHRcdFx0Zm9yIChqID0gaTsgaiA8IGRhdGEuYXV0aG9ycy5sZW5ndGg7IGorKykge1xuXHRcdFx0XHRcdFx0XHRjb2F1dGhvcnMucHVzaChkYXRhLmF1dGhvcnNbal0uam9pbignLCAnKSk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHQkKGAuJHtjbH1jb2F1dGhvcnNgKS52YWwoY29hdXRob3JzLmpvaW4oJzsgJykpO1xuXHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gRm9ybWF0IHBhcnRpYWwgZGF0ZXMgb2YgdGhlIGZvcm1hdCBZWVlZLU1NLCBZWVlZLU1NLVhYLCBvciBZWVlZLU1NLUREIGNvcnJlY3RseVxuXHRcdGlmIChkYXRhLmRhdGUpIHtcblx0XHRcdHRyeSB7XG5cdFx0XHRcdGNvbnN0IERUID0gbmV3IERhdGUoZGF0YS5kYXRlKTtcblx0XHRcdFx0aWYgKC9eXFxkezR9LVxcZHsyfSgtWFgpPyQvaS50ZXN0KGRhdGEuZGF0ZSkpIHtcblx0XHRcdFx0XHRkYXRhLmRhdGUgPSBkYXRhLmRhdGUucmVwbGFjZSgnLVhYJywgJycpO1xuXHRcdFx0XHRcdCQoYC4ke2NsfWRhdGVgKS52YWwoQ2l0ZVRCLmZvcm1hdERhdGUoRFQsIGZhbHNlLCB0cnVlKSk7XG5cdFx0XHRcdH0gZWxzZSBpZiAoL15cXGR7NH0tXFxkezJ9LVxcZHsyfT8vaS50ZXN0KGRhdGEuZGF0ZSkpIHtcblx0XHRcdFx0XHQkKGAuJHtjbH1kYXRlYCkudmFsKENpdGVUQi5mb3JtYXREYXRlKERULCB0cnVlLCB0cnVlKSk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0JChgLiR7Y2x9ZGF0ZWApLnZhbChkYXRhLmRhdGUpO1xuXHRcdFx0XHR9XG5cdFx0XHR9IGNhdGNoIHtcblx0XHRcdFx0LyogZW1wdHkgKi9cblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0JChgLiR7Y2x9ZGF0ZWApLnZhbChkYXRhLmRhdGUpO1xuXHRcdH1cblxuXHRcdHN3aXRjaCAodHlwZSkge1xuXHRcdFx0Y2FzZSAncG1pZCc6XG5cdFx0XHRjYXNlICdkb2knOlxuXHRcdFx0XHQkKGAuJHtjbH1qb3VybmFsYCkudmFsKGRhdGEuam91cm5hbCk7XG5cdFx0XHRcdCQoYC4ke2NsfXZvbHVtZWApLnZhbChkYXRhLnZvbHVtZSk7XG5cdFx0XHRcdCQoYC4ke2NsfWlzc3VlYCkudmFsKGRhdGEuaXNzdWUpO1xuXHRcdFx0XHQkKGAuJHtjbH1wYWdlc2ApLnZhbChkYXRhLnBhZ2VzKTtcblx0XHRcdFx0aWYgKHR5cGUgPT09ICdwbWlkJyAmJiBkYXRhLmRvaSkge1xuXHRcdFx0XHRcdCQoYC4ke2NsfWRvaWApLnZhbChkYXRhLmRvaSk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRicmVhaztcblxuXHRcdFx0Y2FzZSAnaXNibic6XG5cdFx0XHRcdCQoYC4ke2NsfXB1Ymxpc2hlcmApLnZhbChkYXRhLnB1Ymxpc2hlcik7XG5cdFx0XHRcdCQoYC4ke2NsfWxvY2F0aW9uYCkudmFsKGRhdGEubG9jYXRpb24pO1xuXHRcdFx0XHQkKGAuJHtjbH1lZGl0aW9uYCkudmFsKGRhdGEuZWRpdGlvbik7XG5cblx0XHRcdFx0YnJlYWs7XG5cblx0XHRcdGNhc2UgJ3VybCc6XG5cdFx0XHRcdCQoYC4ke2NsfWpvdXJuYWxgKS52YWwoZGF0YS5qb3VybmFsKTtcblx0XHRcdFx0JChgLiR7Y2x9dm9sdW1lYCkudmFsKGRhdGEudm9sdW1lKTtcblx0XHRcdFx0JChgLiR7Y2x9aXNzdWVgKS52YWwoZGF0YS5pc3N1ZSk7XG5cdFx0XHRcdCQoYC4ke2NsfXBhZ2VzYCkudmFsKGRhdGEucGFnZXMpO1xuXHRcdFx0XHQkKGAuJHtjbH1wdWJsaXNoZXJgKS52YWwoZGF0YS5wdWJsaXNoZXIpO1xuXHRcdFx0XHQkKGAuJHtjbH1lZGl0aW9uYCkudmFsKGRhdGEuZWRpdGlvbik7XG5cdFx0XHRcdCQoYC4ke2NsfWlzYm5gKS52YWwoZGF0YS5pc2JuKTtcblx0XHRcdFx0JChgLiR7Y2x9aXNzbmApLnZhbChkYXRhLmlzc24pO1xuXHRcdFx0XHQkKGAuJHtjbH1kb2lgKS52YWwoZGF0YS5kb2kpO1xuXHRcdFx0XHQvLyBcImVuLVVTXCIgaXNuJ3QgYSB2YWxpZCB2YWx1ZSBmb3IgdGhlIGxhbmd1YWdlIHBhcmFtZXRlclxuXHRcdFx0XHRpZiAoZGF0YS5sYW5ndWFnZSAmJiBkYXRhLmxhbmd1YWdlICE9PSAnZW4tVVMnICYmIGRhdGEubGFuZ3VhZ2UgIT09ICdlbi1HQicpIHtcblx0XHRcdFx0XHQkKGAuJHtjbH1sYW5ndWFnZWApLnZhbChkYXRhLmxhbmd1YWdlKTtcblx0XHRcdFx0fVxuXHRcdFx0XHQkKGAuJHtjbH1jaGFwdGVyYCkudmFsKGRhdGEuY2hhcHRlcik7XG5cblx0XHRcdFx0YnJlYWs7XG5cblx0XHRcdC8vIE5vIGRlZmF1bHRcblx0XHR9XG5cdH07XG5cblx0Ly8gRk9STSBESUFMT0cgRlVOQ1RJT05TXG5cdC8vIEFkZCBuZXcgaW5jcmVtZW50YWJsZSBmaWVsZHNcblx0Q2l0ZVRCLmluY3JlbWVudEZpZWxkcyA9IGZ1bmN0aW9uICgpIHtcblx0XHRjb25zdCB0ZW1wbGF0ZSA9IENpdGVUQi5nZXRPcGVuVGVtcGxhdGUoKTtcblx0XHRjb25zdCBbY3VycmVudHJvd10gPSAkKHRoaXMpLnBhcmVudHMoJ3RyJyk7XG5cdFx0JCh0aGlzKS5wcmV2KCkuY3NzKCd3aWR0aCcsICcxMDAlJyk7XG5cdFx0JCh0aGlzKS5kZXRhY2goKTtcblx0XHRjb25zdCBlbGVtaWQgPSAkKHRoaXMpLmF0dHIoJ2lkJykgPz8gJyc7XG5cdFx0Y29uc3QgcmVzID0gL15jaXRlLWluY3ItKC4qPyktKC4qKSQvLmV4ZWMoZWxlbWlkKTtcblx0XHRpZiAoIXJlcykge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRjb25zdCBbLCAsIGdyb3VwXSA9IHJlcztcblx0XHRjb25zdCBpbmNyZW1lbnRzID0gdGVtcGxhdGUuaW5jcmVtZW50YWJsZXNbZ3JvdXBdO1xuXHRcdGNvbnN0IHtmaWVsZHN9ID0gaW5jcmVtZW50cztcblx0XHR0ZW1wbGF0ZS5pbmNyZW1lbnRhYmxlc1tncm91cF0udmFsICs9IDE7XG5cdFx0Y29uc3QgdHJzID0gdGVtcGxhdGUubWFrZUZvcm1Jbm5lcihmaWVsZHMsIGZhbHNlKTtcblx0XHR0cnMucmV2ZXJzZSgpO1xuXHRcdGZvciAoY29uc3QgdHIgb2YgdHJzKSB7XG5cdFx0XHQkKGN1cnJlbnRyb3cpLmFmdGVyKHRyKTtcblx0XHR9XG5cdH07XG5cblx0Ly8gZmlsbCB0aGUgYWNjZXNzZGF0ZSBwYXJhbSB3aXRoIHRoZSBjdXJyZW50IGRhdGVcblx0Q2l0ZVRCLmZpbGxBY2Nlc3NkYXRlID0gZnVuY3Rpb24gKCkge1xuXHRcdGNvbnN0IGVsZW1pZCA9ICQodGhpcykuYXR0cignaWQnKSA/PyAnJztcblx0XHRjb25zdCByZXMgPSAvXmNpdGUtZGF0ZS0oLio/KS0oLiopJC8uZXhlYyhlbGVtaWQpO1xuXHRcdGNvbnN0IFssIGlkXSA9IHJlcztcblx0XHRpZiAoIXJlcykge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRjb25zdCBbLCAsIGZpZWxkXSA9IHJlcztcblx0XHRjb25zdCBEVCA9IG5ldyBEYXRlKCk7XG5cdFx0Y29uc3QgZGF0ZXN0ciA9IENpdGVUQi5mb3JtYXREYXRlKERUKTtcblx0XHQkKGAjY2l0ZS0ke2lkfS0ke2ZpZWxkfWApLnZhbChkYXRlc3RyKTtcblx0XHRyZXR1cm4gZmFsc2U7XG5cdH07XG5cblx0Q2l0ZVRCLmZvcm1hdERhdGUgPSAoRFQsIHVzZWRheSwgdXNlbW9udGgpID0+IHtcblx0XHRpZiAodXNlZGF5ID09PSB1bmRlZmluZWQpIHtcblx0XHRcdHVzZWRheSA9IHRydWU7XG5cdFx0fVxuXHRcdGlmICh1c2Vtb250aCA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0XHR1c2Vtb250aCA9IHRydWU7XG5cdFx0fVxuXHRcdGxldCBkYXRlc3RyID0gQ2l0ZVRCLmdldE9wdGlvbignZGF0ZSBmb3JtYXQnKTtcblx0XHRsZXQgem1vbnRoID0gJyc7XG5cdFx0bGV0IG1vbnRoID0gRFQuZ2V0VVRDTW9udGgoKSArIDE7XG5cdFx0aWYgKG1vbnRoIDwgMTApIHtcblx0XHRcdHptb250aCA9IGAwJHttb250aC50b1N0cmluZygpfWA7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHptb250aCA9IG1vbnRoLnRvU3RyaW5nKCk7XG5cdFx0fVxuXHRcdG1vbnRoID0gbW9udGgudG9TdHJpbmcoKTtcblx0XHRsZXQgemRhdGUgPSAnJztcblx0XHRsZXQgZGF0ZSA9IERULmdldFVUQ0RhdGUoKTtcblx0XHRpZiAoZGF0ZSA8IDEwKSB7XG5cdFx0XHR6ZGF0ZSA9IGAwJHtkYXRlLnRvU3RyaW5nKCl9YDtcblx0XHR9IGVsc2Uge1xuXHRcdFx0emRhdGUgPSBkYXRlLnRvU3RyaW5nKCk7XG5cdFx0fVxuXHRcdGRhdGUgPSBkYXRlLnRvU3RyaW5nKCk7XG5cdFx0aWYgKHVzZWRheSkge1xuXHRcdFx0ZGF0ZXN0ciA9IGRhdGVzdHIucmVwbGFjZSgnPGRhdGU+JywgZGF0ZSk7XG5cdFx0XHRkYXRlc3RyID0gZGF0ZXN0ci5yZXBsYWNlKCc8emRhdGU+JywgemRhdGUpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRkYXRlc3RyID0gZGF0ZXN0ci5yZXBsYWNlKCc8ZGF0ZT4nLCAnJyk7XG5cdFx0XHRkYXRlc3RyID0gZGF0ZXN0ci5yZXBsYWNlKCc8emRhdGU+JywgJycpO1xuXHRcdH1cblx0XHRpZiAodXNlbW9udGgpIHtcblx0XHRcdGRhdGVzdHIgPSBkYXRlc3RyLnJlcGxhY2UoJzxtb250aD4nLCBtb250aCk7XG5cdFx0XHRkYXRlc3RyID0gZGF0ZXN0ci5yZXBsYWNlKCc8em1vbnRoPicsIHptb250aCk7XG5cdFx0XHRkYXRlc3RyID0gZGF0ZXN0ci5yZXBsYWNlKCc8bW9udGhuYW1lPicsIENpdGVUQi5nZXRPcHRpb24oJ21vbnRocycpW0RULmdldFVUQ01vbnRoKCldKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0ZGF0ZXN0ciA9IGRhdGVzdHIucmVwbGFjZSgnPG1vbnRoPicsICcnKTtcblx0XHRcdGRhdGVzdHIgPSBkYXRlc3RyLnJlcGxhY2UoJzx6bW9udGg+JywgJycpO1xuXHRcdFx0ZGF0ZXN0ciA9IGRhdGVzdHIucmVwbGFjZSgnPG1vbnRobmFtZT4nLCAnJyk7XG5cdFx0fVxuXHRcdGRhdGVzdHIgPSBkYXRlc3RyLnJlcGxhY2UoJzx5ZWFyPicsIERULmdldFVUQ0Z1bGxZZWFyKCkudG9TdHJpbmcoKSk7XG5cdFx0cmV0dXJuIGRhdGVzdHIucmVwbGFjZSgvXlsgL1xcLSwuXSooLio/KVsgL1xcLSwuXSokL2csICckMScpOyAvLyBDbGVhbnVwIGFueSBkYW5nbGluZyBzcGFjZXMgb3IgY29ubmVjdG9ycyB0aGF0IG1pZ2h0IHJlc3VsdCBmcm9tIG9taXR0aW5nIGRhdGUvbW9udGhcblx0fTtcblxuXHQvLyBGdW5jdGlvbiBjYWxsZWQgYWZ0ZXIgdGhlIHJlZiBsaXN0IGlzIGxvYWRlZCwgdG8gYWN0dWFsbHkgc2V0IHRoZSBjb250ZW50cyBvZiB0aGUgbmFtZWQgcmVmIGRpYWxvZ1xuXHQvLyBVbnRpbCB0aGUgbGlzdCBpcyBsb2FkZWQsIGl0cyBqdXN0IGEgXCJMb2FkaW5nXCIgcGxhY2Vob2xkZXJcblx0Q2l0ZVRCLnNldHVwTmFtZWRSZWZzID0gKCkgPT4ge1xuXHRcdGNvbnN0IG5hbWVzID0gW107XG5cdFx0bGV0IGk7XG5cdFx0Zm9yIChpID0gMDsgaSA8IENpdGVUQi5tYWluUmVmTGlzdC5sZW5ndGg7IGkrKykge1xuXHRcdFx0aWYgKCFDaXRlVEIubWFpblJlZkxpc3RbaV0uc2hvcnR0YWcgJiYgQ2l0ZVRCLm1haW5SZWZMaXN0W2ldLnJlZm5hbWUpIHtcblx0XHRcdFx0bmFtZXMucHVzaChDaXRlVEIubWFpblJlZkxpc3RbaV0pO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRjb25zdCBzdHVmZiA9ICQoJzxkaXY+Jyk7XG5cdFx0JGJvZHkuZmluZCgnI2NpdGV0b29sYmFyLW5hbWVkcmVmcycpLmh0bWwoc3R1ZmYpO1xuXHRcdGlmIChuYW1lcy5sZW5ndGggPT09IDApIHtcblx0XHRcdHN0dWZmLmh0bWwoZ2V0TWVzc2FnZSgnY2l0ZS1uby1uYW1lZHJlZnMnKSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHN0dWZmLmh0bWwoZ2V0TWVzc2FnZSgnY2l0ZS1uYW1lZHJlZnMtaW50cm8nKSk7XG5cdFx0XHRjb25zdCBzZWxlY3QgPSAkKCc8c2VsZWN0PicpLmF0dHIoJ2lkJywgJ2NpdGUtbmFtZWRyZWYtc2VsZWN0Jyk7XG5cdFx0XHRzZWxlY3QuYXBwZW5kKCQoJzxvcHRpb24+JykuYXR0cigndmFsdWUnLCAnJykudGV4dChnZXRNZXNzYWdlKCdjaXRlLW5hbWVkLXJlZnMtZHJvcGRvd24nKSkpO1xuXHRcdFx0Zm9yIChpID0gMDsgaSA8IG5hbWVzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdHNlbGVjdC5hcHBlbmQoJCgnPG9wdGlvbj4nKS50ZXh0KG5hbWVzW2ldLnJlZm5hbWUpKTtcblx0XHRcdH1cblx0XHRcdHN0dWZmLmFmdGVyKHNlbGVjdCk7XG5cdFx0XHRzZWxlY3QuYmVmb3JlKCc8YnI+Jyk7XG5cdFx0XHRjb25zdCBwcmV2bGFiZWwgPSAkKCc8ZGl2PicpXG5cdFx0XHRcdC5hdHRyKCdpZCcsICdjaXRlLW5yZWYtcHJldmlldy1sYWJlbCcpXG5cdFx0XHRcdC5jc3MoJ2Rpc3BsYXknLCAnbm9uZScpXG5cdFx0XHRcdC5odG1sKGdldE1lc3NhZ2UoJ2NpdGUtcmF3LXByZXZpZXcnKSk7XG5cdFx0XHRzZWxlY3QuYWZ0ZXIocHJldmxhYmVsKTtcblx0XHRcdHByZXZsYWJlbC5iZWZvcmUoJzxicj48YnI+Jyk7XG5cdFx0XHRwcmV2bGFiZWwuYWZ0ZXIoJzxkaXYgaWQ9XCJjaXRlLW5hbWVkcmVmLXByZXZpZXdcIiBzdHlsZT1cInBhZGRpbmc6MC41ZW07IGZvbnQtc2l6ZToxMTAlXCIgLz4nKTtcblx0XHRcdGNvbnN0IHBhcnNlbGFiZWwgPSAkKCc8c3Bhbj4nKVxuXHRcdFx0XHQuYXR0cignaWQnLCAnY2l0ZS1wYXJzZWQtbGFiZWwnKVxuXHRcdFx0XHQuY3NzKCdkaXNwbGF5JywgJ25vbmUnKVxuXHRcdFx0XHQuaHRtbChnZXRNZXNzYWdlKCdjaXRlLXBhcnNlZC1sYWJlbCcpKTtcblx0XHRcdCRib2R5LmZpbmQoJyNjaXRlLW5hbWVkcmVmLXByZXZpZXcnKS5hZnRlcihwYXJzZWxhYmVsKTtcblx0XHRcdHBhcnNlbGFiZWwuYWZ0ZXIoJzxkaXYgaWQ9XCJjaXRlLW5hbWVkcmVmLXBhcnNlZFwiIHN0eWxlPVwicGFkZGluZy1ib3R0b206MC41ZW07IGZvbnQtc2l6ZToxMTAlXCIgLz4nKTtcblx0XHRcdGNvbnN0IGxpbmsgPSAkKCc8YT4nKVxuXHRcdFx0XHQuYXR0cih7XG5cdFx0XHRcdFx0aHJlZjogJyMnLFxuXHRcdFx0XHRcdGlkOiAnY2l0ZS1ucmVmLXBhcnNlJyxcblx0XHRcdFx0fSlcblx0XHRcdFx0LmNzcyh7XG5cdFx0XHRcdFx0bWFyZ2luOiAnMCAxZW0gMCAxZW0nLFxuXHRcdFx0XHRcdGRpc3BsYXk6ICdub25lJyxcblx0XHRcdFx0XHRjb2xvcjogJyMwMDAwOGInLFxuXHRcdFx0XHR9KTtcblx0XHRcdGxpbmsuaHRtbChnZXRNZXNzYWdlKCdjaXRlLWZvcm0tcGFyc2UnKSk7XG5cdFx0XHQkYm9keS5maW5kKCcjY2l0ZS1uYW1lZHJlZi1wYXJzZWQnKS5hZnRlcihsaW5rKTtcblxuXHRcdFx0JGJvZHkuZmluZCgnI2NpdGUtbmFtZWRyZWYtc2VsZWN0Jykub24oJ2NoYW5nZScsIENpdGVUQi5uYW1lZFJlZlNlbGVjdENsaWNrKTtcblx0XHRcdCRib2R5LmZpbmQoJyNjaXRlLW5yZWYtcGFyc2UnKS5vbignY2xpY2snLCBDaXRlVEIubnJlZlBhcnNlQ2xpY2spO1xuXHRcdH1cblx0fTtcblxuXHQvLyBDYWxsYmFjayBmdW5jdGlvbiBmb3IgcGFyc2VkIHByZXZpZXdcblx0Q2l0ZVRCLmZpbGxOcmVmUHJldmlldyA9IChwYXJzZWQpID0+IHtcblx0XHQkYm9keS5maW5kKCcjY2l0ZS1wYXJzZWQtbGFiZWwnKS5zaG93KCk7XG5cdFx0JGJvZHkuZmluZCgnI2NpdGUtbmFtZWRyZWYtcGFyc2VkJykuaHRtbChwYXJzZWQpO1xuXHR9O1xuXG5cdC8vIENsaWNrIGhhbmRsZXIgZm9yIHRoZSBuYW1lZC1yZWYgcGFyc2VkIHByZXZpZXdcblx0Q2l0ZVRCLm5yZWZQYXJzZUNsaWNrID0gKCkgPT4ge1xuXHRcdGNvbnN0IGNob2ljZSA9ICRib2R5LmZpbmQoJyNjaXRlLW5hbWVkcmVmLXNlbGVjdCcpLnZhbCgpO1xuXHRcdGlmIChjaG9pY2UgPT09ICcnKSB7XG5cdFx0XHQkYm9keS5maW5kKCcjY2l0ZS1wYXJzZWQtbGFiZWwnKS5oaWRlKCk7XG5cdFx0XHQkYm9keS5maW5kKCcjY2l0ZS1uYW1lZHJlZi1wYXJzZWQnKS50ZXh0KCcnKTtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cdFx0JGJvZHkuZmluZCgnI2NpdGUtbnJlZi1wYXJzZScpLmhpZGUoKTtcblx0XHRmb3IgKGNvbnN0IHJlZiBvZiBDaXRlVEIubWFpblJlZkxpc3QpIHtcblx0XHRcdGlmICghcmVmLnNob3J0dGFnICYmIHJlZi5yZWZuYW1lID09PSBjaG9pY2UpIHtcblx0XHRcdFx0Q2l0ZVRCLnBhcnNlKHJlZi5jb250ZW50LCBDaXRlVEIuZmlsbE5yZWZQcmV2aWV3KTtcblx0XHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdFx0fVxuXHRcdH1cblx0fTtcblxuXHQvLyBDbGljayBoYW5kbGVyIGZvciB0aGUgbmFtZWQtcmVmIGRyb3Bkb3duXG5cdENpdGVUQi5sYXN0bmFtZWRyZWZjaG9pY2UgPSAnJztcblx0Q2l0ZVRCLm5hbWVkUmVmU2VsZWN0Q2xpY2sgPSAoKSA9PiB7XG5cdFx0Y29uc3QgY2hvaWNlID0gJGJvZHkuZmluZCgnI2NpdGUtbmFtZWRyZWYtc2VsZWN0JykudmFsKCk7XG5cdFx0aWYgKENpdGVUQi5sYXN0bmFtZWRyZWZjaG9pY2UgPT09IGNob2ljZSkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRDaXRlVEIubGFzdG5hbWVkcmVmY2hvaWNlID0gY2hvaWNlO1xuXHRcdCRib2R5LmZpbmQoJyNjaXRlLXBhcnNlZC1sYWJlbCcpLmhpZGUoKTtcblx0XHQkYm9keS5maW5kKCcjY2l0ZS1uYW1lZHJlZi1wYXJzZWQnKS50ZXh0KCcnKTtcblx0XHRpZiAoY2hvaWNlID09PSAnJykge1xuXHRcdFx0JGJvZHkuZmluZCgnI2NpdGUtbnJlZi1wcmV2aWV3LWxhYmVsJykuaGlkZSgpO1xuXHRcdFx0JGJvZHkuZmluZCgnI2NpdGUtbmFtZWRyZWYtcHJldmlldycpLnRleHQoJycpO1xuXHRcdFx0JGJvZHkuZmluZCgnI2NpdGUtbnJlZi1wYXJzZScpLmhpZGUoKTtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0Zm9yIChjb25zdCByZWYgb2YgQ2l0ZVRCLm1haW5SZWZMaXN0KSB7XG5cdFx0XHRpZiAoIXJlZi5zaG9ydHRhZyAmJiByZWYucmVmbmFtZSA9PT0gY2hvaWNlKSB7XG5cdFx0XHRcdCRib2R5LmZpbmQoJyNjaXRlLW5yZWYtcHJldmlldy1sYWJlbCcpLnNob3coKTtcblx0XHRcdFx0JGJvZHkuZmluZCgnI2NpdGUtbmFtZWRyZWYtcHJldmlldycpLnRleHQocmVmLmNvbnRlbnQpO1xuXHRcdFx0XHRpZiAoQ2l0ZVRCLmdldE9wdGlvbignYXV0b3BhcnNlJykpIHtcblx0XHRcdFx0XHRDaXRlVEIubnJlZlBhcnNlQ2xpY2soKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHQkYm9keS5maW5kKCcjY2l0ZS1ucmVmLXBhcnNlJykuc2hvdygpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9O1xuXG5cdC8vIGNhbGxiYWNrIGZ1bmN0aW9uIGZvciBwYXJzZWQgcHJldmlld1xuXHRDaXRlVEIuZmlsbFRlbXBsYXRlUHJldmlldyA9ICh0ZXh0KSA9PiB7XG5cdFx0Y29uc3QgdGVtcGxhdGUgPSBDaXRlVEIuZ2V0T3BlblRlbXBsYXRlKCk7XG5cdFx0Y29uc3QgZGl2ID0gJChgI2NpdGV0b29sYmFyLSR7Q2l0ZVRCLmVzY1N0cih0ZW1wbGF0ZS5zaG9ydGZvcm0pfWApO1xuXHRcdGRpdi5maW5kKCcuY2l0ZS1wcmV2LXBhcnNlZC1sYWJlbCcpLnNob3coKTtcblx0XHRkaXYuZmluZCgnLmNpdGUtcHJldmlldy1wYXJzZWQnKS5odG1sKHRleHQpO1xuXHR9O1xuXG5cdC8vIENsaWNrIGhhbmRsZXIgZm9yIHRlbXBsYXRlIHBhcnNlZCBwcmV2aWV3XG5cdENpdGVUQi5wcmV2UGFyc2VDbGljayA9ICgpID0+IHtcblx0XHRjb25zdCByZWYgPSBDaXRlVEIuZ2V0UmVmKHRydWUsIGZhbHNlKTtcblx0XHRjb25zdCB0ZW1wbGF0ZSA9IENpdGVUQi5nZXRPcGVuVGVtcGxhdGUoKTtcblx0XHRjb25zdCBkaXYgPSAkKGAjY2l0ZXRvb2xiYXItJHtDaXRlVEIuZXNjU3RyKHRlbXBsYXRlLnNob3J0Zm9ybSl9YCk7XG5cdFx0ZGl2LmZpbmQoJy5jaXRlLXByZXYtcGFyc2UnKS5oaWRlKCk7XG5cdFx0Q2l0ZVRCLnBhcnNlKHJlZiwgQ2l0ZVRCLmZpbGxUZW1wbGF0ZVByZXZpZXcpO1xuXHR9O1xuXG5cdC8vIFNob3cvaGlkZSB0aGUgZXh0cmEgZmllbGRzIGluIHRoZSBkaWFsb2cgYm94XG5cdENpdGVUQi5zaG93SGlkZUV4dHJhID0gKCkgPT4ge1xuXHRcdGNvbnN0IHRlbXBsYXRlID0gQ2l0ZVRCLmdldE9wZW5UZW1wbGF0ZSgpO1xuXHRcdGNvbnN0IGRpdiA9ICQoYCNjaXRldG9vbGJhci0ke0NpdGVUQi5lc2NTdHIodGVtcGxhdGUuc2hvcnRmb3JtKX1gKTtcblx0XHRjb25zdCBzZXR0aW5nID0gZGl2LmZpbmQoJy5jaXRlLWZvcm0tc3RhdHVzJykudmFsKCk7XG5cdFx0aWYgKHNldHRpbmcgPT09ICdjbG9zZWQnKSB7XG5cdFx0XHRkaXYuZmluZCgnLmNpdGUtZm9ybS1zdGF0dXMnKS52YWwoJ29wZW4nKTtcblx0XHRcdGRpdi5maW5kKCcuY2l0ZS1leHRyYS1maWVsZHMnKS5zaG93KDEsICgpID0+IHtcblx0XHRcdFx0Ly8galF1ZXJ5IGFkZHMgYGRpc3BsYXk6IGJsb2NrYCwgd2hpY2ggc2NyZXdzIHRoaW5ncyB1cFxuXHRcdFx0XHRkaXYuZmluZCgnLmNpdGUtZXh0cmEtZmllbGRzJykuY3NzKHtcblx0XHRcdFx0XHR3aWR0aDogJzEwMCUnLFxuXHRcdFx0XHRcdCdiYWNrZ3JvdW5kLWNvbG9yJzogJ3RyYW5zcGFyZW50Jyxcblx0XHRcdFx0fSk7XG5cdFx0XHR9KTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0ZGl2LmZpbmQoJy5jaXRlLWZvcm0tc3RhdHVzJykudmFsKCdjbG9zZWQnKTtcblx0XHRcdGRpdi5maW5kKCcuY2l0ZS1leHRyYS1maWVsZHMnKS5oaWRlKCk7XG5cdFx0fVxuXHR9O1xuXG5cdC8vIFJlc2V0cyBmb3JtIGZpZWxkcyBhbmQgcHJldmlld3Ncblx0Ly8gUmVzZXRzIGZvcm0gZmllbGRzIGFuZCBwcmV2aWV3c1xuXHRDaXRlVEIucmVzZXRGb3JtID0gKCkgPT4ge1xuXHRcdGNvbnN0IHRlbXBsYXRlID0gQ2l0ZVRCLmdldE9wZW5UZW1wbGF0ZSgpO1xuXHRcdGNvbnN0IGRpdiA9ICQoYCNjaXRldG9vbGJhci0ke0NpdGVUQi5lc2NTdHIodGVtcGxhdGUuc2hvcnRmb3JtKX1gKTtcblx0XHRkaXYuaHRtbCh0ZW1wbGF0ZS5nZXRGb3JtKCkpO1xuXHR9O1xuXG5cdC8vIFNUUklORyBVVElMSVRZIEZVTkNUSU9OU1xuXHQvLyBSZXR1cm5zIGEgc3RyaW5nIHF1b3RlZCBhcyBuZWNlc3NhcnkgZm9yIG5hbWUvZ3JvdXAgYXR0cmlidXRlc1xuXHRDaXRlVEIuZ2V0UXVvdGVkU3RyaW5nID0gKHMpID0+IHtcblx0XHRjb25zdCBzcSA9IC8nLy50ZXN0KHMpOyAvLyBzaW5nbGUgcXVvdGVzXG5cdFx0Y29uc3QgZHEgPSAvXCIvLnRlc3Qocyk7IC8vIGRvdWJsZSBxdW90ZXNcblx0XHRpZiAoIXNxICYmICFkcSkge1xuXHRcdFx0Ly8gQWx3YXlzIHF1b3RlcyBmb3Igbm9uLWxhdGluIGFscGhhYmV0XG5cdFx0XHRyZXR1cm4gYFwiJHtzfVwiYDtcblx0XHR9IGVsc2UgaWYgKCFkcSkge1xuXHRcdFx0Ly8gQ2FuIHVzZSBkb3VibGUgcXVvdGVzXG5cdFx0XHRyZXR1cm4gYFwiJHtzfVwiYDtcblx0XHR9IGVsc2UgaWYgKCFzcSkge1xuXHRcdFx0Ly8gQ2FuIHVzZSBzaW5nbGUgcXVvdGVzXG5cdFx0XHRyZXR1cm4gYCcke3N9J2A7XG5cdFx0fVxuXHRcdC8vIEhhcyBkb3VibGUgYW5kIHNpbmdsZSBxdW90ZXNcblx0XHRzID0gcy5yZXBsYWNlKC9cIi9nLCBcIidcIik7XG5cdFx0cmV0dXJuIGBcIiR7c31cImA7XG5cdH07XG5cblx0Ly8gRml4IHVwIHN0cmluZ3MgZm9yIG91dHB1dCAtIGNhcGl0YWxpemUgZmlyc3QgY2hhciwgcmVwbGFjZSB1bmRlcnNjb3JlcyB3aXRoIHNwYWNlc1xuXHRDaXRlVEIuZml4U3RyID0gKHMpID0+IHtcblx0XHRzID0gcy5zbGljZSgwLCAxKS50b1VwcGVyQ2FzZSgpICsgcy5zbGljZSgxKTtcblx0XHRzID0gcy5yZXBsYWNlKCdfJywgJyAnKTtcblx0XHRyZXR1cm4gcztcblx0fTtcblxuXHQvLyBFc2NhcGUgc3BhY2VzIGFuZCBxdW90ZXMgZm9yIHVzZSBpbiBIVE1MIGNsYXNzZXMvaWRzXG5cdENpdGVUQi5lc2NTdHIgPSAocykgPT4ge1xuXHRcdHJldHVybiBzXG5cdFx0XHQucmVwbGFjZSgvXFxzL2csICctJylcblx0XHRcdC5yZXBsYWNlKC8nL2csIFN0cmluZy5yYXdgXFwnYClcblx0XHRcdC5yZXBsYWNlKC9cIi9nLCBTdHJpbmcucmF3YFxcXCJgKTtcblx0fTtcblxuXHQvLyBNSVNDIEZVTkNUSU9OU1xuXHQvLyBEZXRlcm1pbmUgd2hpY2ggdGVtcGxhdGUgZm9ybSBpcyBvcGVuLCBhbmQgZ2V0IHRoZSB0ZW1wbGF0ZSBvYmplY3QgZm9yIGl0XG5cdENpdGVUQi5nZXRPcGVuVGVtcGxhdGUgPSAoKSA9PiB7XG5cdFx0Y29uc3QgZGlhbG9ncyA9ICRib2R5LmZpbmQoJy51aS1kaWFsb2ctY29udGVudC51aS13aWRnZXQtY29udGVudDp2aXNpYmxlJyk7XG5cdFx0Y29uc3QgdGVtcGxhdGVuYW1lID0gJChkaWFsb2dzWzBdKS5maW5kKCcuY2l0ZS10ZW1wbGF0ZScpLnZhbCgpO1xuXHRcdHJldHVybiBDaXRlVEIuVGVtcGxhdGVzW3RlbXBsYXRlbmFtZV07XG5cdH07XG5cblx0Ly8gTG9hZCBjb25maWd1cmF0aW9uIGZvciBzaXRlXG5cdHJlZlRvb2xiYXJDb25maWcoKTtcblxuXHQvLyBFbmQgb2YgY29kZSBsb2FkZWQgb25seSBvbiBlZGl0XG59O1xuXG5leHBvcnQge3JlZlRvb2xiYXIyfTtcbiIsICJpbXBvcnQgXCJlc2J1aWxkLWNzcy1tb2R1bGVzLXBsdWdpbi1ucy1jc3M6c3JjL0VkaXR0b29scy1yZWZUb29sYmFyL0VkaXR0b29scy1yZWZUb29sYmFyLm1vZHVsZS5sZXNzXCI7XG5leHBvcnQgY29uc3QgY2l0ZUZvcm1UZCA9IFwiRWRpdHRvb2xzLXJlZlRvb2xiYXItbW9kdWxlX19jaXRlRm9ybVRkX3RZdXJaYVwiO1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIFwiY2l0ZUZvcm1UZFwiOiBjaXRlRm9ybVRkXG59O1xuICAgICAgIiwgIjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIj48cGF0aCBmaWxsPVwiIzAwYWY4OVwiIGQ9XCJNMTYgOWgtNVY0SDl2NUg0djJoNXY1aDJ2LTVoNXpcIi8+PC9zdmc+IiwgIjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIj48cGF0aCBmaWxsPVwiIzM2Y1wiIGQ9XCJNMTYuNCA0LjRIMTRWMi44aC0xLjZ2MS42SDcuNlYyLjhINnYxLjZIMy42QTEuNiAxLjYgMCAwIDAgMiA2djkuNmExLjYgMS42IDAgMCAwIDEuNiAxLjZoMTIuOGExLjYgMS42IDAgMCAwIDEuNi0xLjZWNmExLjYgMS42IDAgMCAwLTEuNi0xLjZtMCAxMS4ySDMuNlY4LjRoMTIuOFptLTEuNi00LjhoLTMuMlYxNGgzLjJ6XCIvPjwvc3ZnPiIsICI8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCI+PHBhdGggZmlsbD1cIiMzNmNcIiBkPVwibTE4LjUgMTYuNjEtNC44NjUtNC44NjNhNi42MTIgNi42MTIgMCAxIDAtMS44ODggMS44ODhMMTYuNjEgMTguNVpNMy44NTggOC4xMWE0LjI1IDQuMjUgMCAxIDEgNC4yNSA0LjI1IDQuMjUgNC4yNSAwIDAgMS00LjI1LTQuMjVcIi8+PC9zdmc+IiwgIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudCAqL1xuLy8gQHRzLW5vY2hlY2tcbmltcG9ydCB7Y2l0ZUZvcm1UZH0gZnJvbSAnLi4vRWRpdHRvb2xzLXJlZlRvb2xiYXIubW9kdWxlLmxlc3MnO1xuaW1wb3J0IHtnZXRNZXNzYWdlfSBmcm9tICcuL3V0aWwvZ2V0TWVzc2FnZSc7XG5pbXBvcnQgb29qc1VpQWRkIGZyb20gJy4uL2ltYWdlcy9hZGQuc3ZnJztcbmltcG9ydCBvb2pzVWlDYWxlbmRhciBmcm9tICcuLi9pbWFnZXMvY2FsZW5kYXIuc3ZnJztcbmltcG9ydCBvb2pzVWlTZWFyY2ggZnJvbSAnLi4vaW1hZ2VzL3NlYXJjaC5zdmcnO1xuXG5jb25zdCByZWZUb29sYmFyQmFzZSA9ICgpID0+IHtcblx0d2luZG93LkNpdGVUQiB8fD0ge1xuXHRcdFRlbXBsYXRlczoge30sIC8vIEFsbCB0ZW1wbGF0ZXNcblx0XHRPcHRpb25zOiB7fSwgLy8gR2xvYmFsIG9wdGlvbnNcblx0XHRVc2VyT3B0aW9uczoge30sIC8vIFVzZXIgb3B0aW9uc1xuXHRcdERlZmF1bHRPcHRpb25zOiB7fSwgLy8gU2NyaXB0IGRlZmF1bHRzXG5cdH07XG5cblx0Ly8gQ2xhc3MgZm9yIGNpdGUgdGVtcGxhdGVzXG5cdHdpbmRvdy5DaXRlVGVtcGxhdGUgPSBjbGFzcyBDaXRlVGVtcGxhdGUge1xuXHRcdGNvbnN0cnVjdG9yKHRlbXBsYXRlbmFtZSwgc2hvcnRmb3JtLCBiYXNpY2ZpZWxkcywgZXhwYW5kZWRmaWVsZHMpIHtcblx0XHRcdC8vIFByb3BlcnRpZXNcblx0XHRcdHRoaXMudGVtcGxhdGVuYW1lID0gdGVtcGxhdGVuYW1lOyAvLyBUaGUgdGVtcGxhdGUgbmFtZSAtIFwiY2l0ZSB3ZWJcIiwgXCJjaXRlIGJvb2tcIiwgZXRjLlxuXHRcdFx0dGhpcy5zaG9ydGZvcm0gPSBzaG9ydGZvcm07IC8vIEEgc2hvcnQgZm9ybSwgdXNlZCBmb3IgdGhlIGRyb3Bkb3duIGJveFxuXHRcdFx0dGhpcy5iYXNpYyA9IGJhc2ljZmllbGRzOyAvLyBCYXNpYyBmaWVsZHMgLSBhdXRob3IsIHRpdGxlLCBwdWJsaXNoZXIuLi5cblxuXHRcdFx0Ly8gTGVzcyBjb21tb24gLSBxdW90ZSwgYXJjaGl2ZXVybCAtIHNob3VsZCBiZSBldmVyeXRoaW5nIHRoZSB0ZW1wbGF0ZSBzdXBwb3J0cyBtaW51cyB0aGUgYmFzaWMgb25lc1xuXHRcdFx0dGhpcy5leHRyYSA9IGV4cGFuZGVkZmllbGRzO1xuXHRcdFx0dGhpcy5pbmNyZW1lbnRhYmxlcyA9IHt9O1xuXG5cdFx0XHQvLyBBZGQgaXQgdG8gdGhlIGxpc3Rcblx0XHRcdENpdGVUQi5UZW1wbGF0ZXNbdGhpcy50ZW1wbGF0ZW5hbWVdID0gdGhpcztcblx0XHR9XG5cdFx0bWFrZUZvcm1Jbm5lcihmaWVsZHMsIGluY3JzZXR1cCkge1xuXHRcdFx0Y29uc3QgdHJzID0gW107XG5cdFx0XHRjb25zdCBhdXRvZmlsbHMgPSBbXTtcblx0XHRcdGxldCB0cjtcblx0XHRcdGZvciAoY29uc3QgW2ksIGZpZWxkb2JqXSBvZiBmaWVsZHMuZW50cmllcygpKSB7XG5cdFx0XHRcdGxldCB7ZmllbGR9ID0gZmllbGRvYmo7XG5cdFx0XHRcdGxldCBsYWJlbGZpZWxkID0gZmllbGRvYmouZmllbGQ7XG5cdFx0XHRcdGxldCBhZCA9IGZhbHNlO1xuXHRcdFx0XHRsZXQgaW07XG5cdFx0XHRcdGlmIChpbmNyc2V0dXAgJiYgZmllbGRvYmouaW5jcmVtZW50X2dyb3VwKSB7XG5cdFx0XHRcdFx0ZmllbGQgPSBmaWVsZG9iai5maWVsZC5yZXBsYWNlKCc8Tj4nLCAnMScpO1xuXHRcdFx0XHRcdGxhYmVsZmllbGQgPSBmaWVsZG9iai5maWVsZC5yZXBsYWNlKCc8Tj4nLCAnJyk7XG5cdFx0XHRcdFx0aWYgKFxuXHRcdFx0XHRcdFx0dGhpcy5pbmNyZW1lbnRhYmxlc1tmaWVsZG9iai5pbmNyZW1lbnRfZ3JvdXBdICYmXG5cdFx0XHRcdFx0XHQhdGhpcy5pbmNyZW1lbnRhYmxlc1tmaWVsZG9iai5pbmNyZW1lbnRfZ3JvdXBdLnNldHVwXG5cdFx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0XHQvLyBUaGUgb2JqZWN0IGhhcyBiZWVuIGNyZWF0ZWQsIGJ1dCBub3QgZnVsbHkgaW5pdGlhbGl6ZWRcblx0XHRcdFx0XHRcdHRoaXMuaW5jcmVtZW50YWJsZXNbZmllbGRvYmouaW5jcmVtZW50X2dyb3VwXS5maWVsZHMucHVzaChmaWVsZG9iaik7XG5cdFx0XHRcdFx0fSBlbHNlIGlmICghdGhpcy5pbmNyZW1lbnRhYmxlc1tmaWVsZG9iai5pbmNyZW1lbnRfZ3JvdXBdKSB7XG5cdFx0XHRcdFx0XHQvLyBPYmplY3Qgbm90IHlldCBjcmVhdGVkXG5cdFx0XHRcdFx0XHR0aGlzLmluY3JlbWVudGFibGVzW2ZpZWxkb2JqLmluY3JlbWVudF9ncm91cF0gPSB7XG5cdFx0XHRcdFx0XHRcdGZpZWxkczogW2ZpZWxkb2JqXSxcblx0XHRcdFx0XHRcdFx0dmFsOiAxLFxuXHRcdFx0XHRcdFx0XHRzZXR1cDogZmFsc2UsXG5cdFx0XHRcdFx0XHR9O1xuXHRcdFx0XHRcdH0gZWxzZSBpZiAoXG5cdFx0XHRcdFx0XHR0aGlzLmluY3JlbWVudGFibGVzW2ZpZWxkb2JqLmluY3JlbWVudF9ncm91cF0gJiZcblx0XHRcdFx0XHRcdHRoaXMuaW5jcmVtZW50YWJsZXNbZmllbGRvYmouaW5jcmVtZW50X2dyb3VwXS5zZXR1cFxuXHRcdFx0XHRcdCkge1xuXHRcdFx0XHRcdFx0Ly8gRnVsbHkgaW5pdGlhbGl6ZWQgZnJvbSBhIHByZXZpb3VzIGludm9jYXRpb24gb2YgdGhpcyBmdW5jdGlvbiwganVzdCByZXNldHRpbmcgdGhlIG51bWJlclxuXHRcdFx0XHRcdFx0dGhpcy5pbmNyZW1lbnRhYmxlc1tmaWVsZG9iai5pbmNyZW1lbnRfZ3JvdXBdLnZhbCA9IDE7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9IGVsc2UgaWYgKGZpZWxkb2JqLmluY3JlbWVudF9ncm91cCkge1xuXHRcdFx0XHRcdC8vIEFkZGluZyBhIG5ldyByb3dcblx0XHRcdFx0XHRjb25zdCBpbmNydmFsID0gdGhpcy5pbmNyZW1lbnRhYmxlc1tmaWVsZG9iai5pbmNyZW1lbnRfZ3JvdXBdLnZhbDtcblx0XHRcdFx0XHRmaWVsZCA9IGZpZWxkb2JqLmZpZWxkLnJlcGxhY2UoJzxOPicsIGluY3J2YWwudG9TdHJpbmcoKSk7XG5cdFx0XHRcdFx0bGFiZWxmaWVsZCA9IGZpZWxkb2JqLmZpZWxkLnJlcGxhY2UoJzxOPicsICcnKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRjb25zdCBhdXRvZGF0ZUZpZWxkcyA9IENpdGVUQi5nZXRPcHRpb24oJ2F1dG9kYXRlIGZpZWxkcycpO1xuXHRcdFx0XHRpZiAoYXV0b2RhdGVGaWVsZHMuaW5jbHVkZXMoZmllbGQpKSB7XG5cdFx0XHRcdFx0aW0gPSAkKCc8aW1nPicpLmF0dHIoJ3NyYycsIGBkYXRhOmltYWdlL3N2Zyt4bWwsJHtlbmNvZGVVUklDb21wb25lbnQob29qc1VpQ2FsZW5kYXIpfWApO1xuXHRcdFx0XHRcdGltLmF0dHIoJ2FsdCcsIGdldE1lc3NhZ2UoJ2NpdGUtaW5zZXJ0LWRhdGUnKSkuYXR0cigndGl0bGUnLCBnZXRNZXNzYWdlKCdjaXRlLWluc2VydC1kYXRlJykpO1xuXHRcdFx0XHRcdGFkID0gJCgnPGE+JykuYXR0cignaHJlZicsICcjJyk7XG5cdFx0XHRcdFx0YWQuYXBwZW5kKGltKTtcblx0XHRcdFx0XHRhZC5hdHRyKCdpZCcsIGBjaXRlLWRhdGUtJHtDaXRlVEIuZXNjU3RyKHRoaXMuc2hvcnRmb3JtKX0tJHtmaWVsZH1gKTtcblx0XHRcdFx0XHQkKGRvY3VtZW50KS5vbihcblx0XHRcdFx0XHRcdCdjbGljaycsXG5cdFx0XHRcdFx0XHRgI2NpdGUtZGF0ZS0ke0NpdGVUQi5lc2NTdHIodGhpcy5zaG9ydGZvcm0pfS0ke2ZpZWxkfWAsXG5cdFx0XHRcdFx0XHRDaXRlVEIuZmlsbEFjY2Vzc2RhdGVcblx0XHRcdFx0XHQpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmIChmaWVsZG9iai5hdXRvZmlsbGlkKSB7XG5cdFx0XHRcdFx0Y29uc3QgYXV0b3R5cGUgPSBmaWVsZG9iai5hdXRvZmlsbGlkO1xuXHRcdFx0XHRcdGltID0gJCgnPGltZz4nKS5hdHRyKCdzcmMnLCBgZGF0YTppbWFnZS9zdmcreG1sLCR7ZW5jb2RlVVJJQ29tcG9uZW50KG9vanNVaVNlYXJjaCl9YCk7XG5cdFx0XHRcdFx0aW0uYXR0cignYWx0JywgZ2V0TWVzc2FnZSgnY2l0ZS1hdXRvZmlsbC1hbHQnKSkuYXR0cigndGl0bGUnLCBnZXRNZXNzYWdlKCdjaXRlLWF1dG9maWxsLWFsdCcpKTtcblx0XHRcdFx0XHRhZCA9ICQoJzxhPicpLmF0dHIoJ2hyZWYnLCAnIycpO1xuXHRcdFx0XHRcdGFkLmFwcGVuZChpbSk7XG5cdFx0XHRcdFx0YWQuYXR0cignaWQnLCBgY2l0ZS1hdXRvLSR7Q2l0ZVRCLmVzY1N0cih0aGlzLnNob3J0Zm9ybSl9LSR7ZmllbGR9LSR7YXV0b3R5cGV9YCk7XG5cdFx0XHRcdFx0YXV0b2ZpbGxzLnB1c2goYCNjaXRlLWF1dG8tJHtDaXRlVEIuZXNjU3RyKHRoaXMuc2hvcnRmb3JtKX0tJHtmaWVsZH0tJHthdXRvdHlwZX1gKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAoZmllbGRvYmouaW5jcmVtZW50X2J1dHRvbikge1xuXHRcdFx0XHRcdGNvbnN0IGluY3J0eXBlID0gZmllbGRvYmouaW5jcmVtZW50X2dyb3VwO1xuXHRcdFx0XHRcdGltID0gJCgnPGltZz4nKS5hdHRyKCdzcmMnLCBgZGF0YTppbWFnZS9zdmcreG1sLCR7ZW5jb2RlVVJJQ29tcG9uZW50KG9vanNVaUFkZCl9YCk7XG5cdFx0XHRcdFx0aW0uYXR0cignYWx0JywgZ2V0TWVzc2FnZSgnY2l0ZS1pbmNyZW1lbnQtYWx0JykpLmF0dHIoJ3RpdGxlJywgZ2V0TWVzc2FnZSgnY2l0ZS1pbmNyZW1lbnQtYWx0JykpO1xuXHRcdFx0XHRcdGFkID0gJCgnPGE+JykuYXR0cignaHJlZicsICcjJyk7XG5cdFx0XHRcdFx0YWQuYXBwZW5kKGltKTtcblx0XHRcdFx0XHRhZC5hdHRyKCdpZCcsIGBjaXRlLWluY3ItJHtDaXRlVEIuZXNjU3RyKHRoaXMuc2hvcnRmb3JtKX0tJHtpbmNydHlwZX1gKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGxldCBkaXNwbGF5ID0gZ2V0TWVzc2FnZShgY2l0ZS0ke2xhYmVsZmllbGR9LWxhYmVsYCk7XG5cdFx0XHRcdGlmICh0eXBlb2YgZGlzcGxheSAhPT0gJ3N0cmluZycpIHtcblx0XHRcdFx0XHRkaXNwbGF5ID0gZmllbGRvYmoubGFiZWwgPyBDaXRlVEIuZml4U3RyKGZpZWxkb2JqLmxhYmVsKSA6IENpdGVUQi5maXhTdHIobGFiZWxmaWVsZCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0Y29uc3QgdG9vbHRpcCA9IGZpZWxkb2JqLnRvb2x0aXBcblx0XHRcdFx0XHQ/ICQoJzxhYmJyPicpLmF0dHIoJ3RpdGxlJywgZ2V0TWVzc2FnZShmaWVsZG9iai50b29sdGlwKSkuaHRtbCgkKCc8c3VwPicpLnRleHQoJz8nKSlcblx0XHRcdFx0XHQ6IGZhbHNlO1xuXHRcdFx0XHRsZXQgaW5wdXQgPSAnJztcblx0XHRcdFx0aW5wdXQgPSAkKCc8aW5wdXQ+JykuYXR0cih7XG5cdFx0XHRcdFx0dGFiaW5kZXg6ICcxJyxcblx0XHRcdFx0XHRzdHlsZTogYWQgPyAnd2lkdGg6IDg1JScgOiAnd2lkdGg6IDEwMCUnLFxuXHRcdFx0XHRcdHR5cGU6ICd0ZXh0Jyxcblx0XHRcdFx0fSk7XG5cdFx0XHRcdGlucHV0LmF0dHIoJ2lkJywgYGNpdGUtJHtDaXRlVEIuZXNjU3RyKHRoaXMuc2hvcnRmb3JtKX0tJHtmaWVsZH1gKTtcblx0XHRcdFx0aWYgKGZpZWxkb2JqLmF1dG9maWxscHJvcCkge1xuXHRcdFx0XHRcdGxldCBjbGFzc25hbWUgPSBgY2l0ZS0ke0NpdGVUQi5lc2NTdHIodGhpcy5zaG9ydGZvcm0pfS0ke2ZpZWxkb2JqLmF1dG9maWxscHJvcH1gO1xuXHRcdFx0XHRcdGlmIChmaWVsZG9iai5pbmNyZW1lbnRfZ3JvdXApIHtcblx0XHRcdFx0XHRcdGlucHV0LmFkZENsYXNzKGBjaXRlLSR7Q2l0ZVRCLmVzY1N0cih0aGlzLnNob3J0Zm9ybSl9LWluY3ItJHtmaWVsZG9iai5pbmNyZW1lbnRfZ3JvdXB9YCk7XG5cdFx0XHRcdFx0XHRjbGFzc25hbWUgKz0gYC0ke3RoaXMuaW5jcmVtZW50YWJsZXNbZmllbGRvYmouaW5jcmVtZW50X2dyb3VwXS52YWwudG9TdHJpbmcoKX1gO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRpbnB1dC5hZGRDbGFzcyhjbGFzc25hbWUpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGNvbnN0IGxhYmVsID0gJCgnPGxhYmVsPicpO1xuXHRcdFx0XHRsYWJlbC5hdHRyKCdmb3InLCBgY2l0ZS0ke0NpdGVUQi5lc2NTdHIodGhpcy5zaG9ydGZvcm0pfS0ke2ZpZWxkfWApLnRleHQoZGlzcGxheSk7XG5cdFx0XHRcdGlmICh0b29sdGlwKSB7XG5cdFx0XHRcdFx0bGFiZWwuYXBwZW5kKHRvb2x0aXApO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGxldCBzdHlsZSA9ICd0ZXh0LWFsaWduOiByaWdodDsgd2lkdGg6IDIwJTsnO1xuXHRcdFx0XHRpZiAoaSAlIDIgPT09IDEpIHtcblx0XHRcdFx0XHRzdHlsZSArPSAnIHBhZGRpbmctbGVmdDogMWVtOyc7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0dHIgPSAkKCc8dHI+Jyk7XG5cdFx0XHRcdH1cblx0XHRcdFx0Y29uc3QgdGQxID0gJCgnPHRkPicpLmFkZENsYXNzKGNpdGVGb3JtVGQpLmF0dHIoe1xuXHRcdFx0XHRcdHN0eWxlLFxuXHRcdFx0XHR9KTtcblx0XHRcdFx0dGQxLmFwcGVuZChsYWJlbCk7XG5cdFx0XHRcdHRyLmFwcGVuZCh0ZDEpO1xuXHRcdFx0XHRjb25zdCB0ZDIgPSAkKCc8dGQ+JykuYWRkQ2xhc3MoY2l0ZUZvcm1UZCkuY3NzKCd3aWR0aCcsICczMCUnKTtcblx0XHRcdFx0dGQyLmFwcGVuZChpbnB1dCk7XG5cdFx0XHRcdGlmIChhZCkge1xuXHRcdFx0XHRcdHRkMi5hcHBlbmQoYWQpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHRyLmFwcGVuZCh0ZDIpO1xuXHRcdFx0XHRpZiAoaSAlIDIgPT09IDApIHtcblx0XHRcdFx0XHR0cnMucHVzaCh0cik7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdGxldCBuZWVkc2V0dXAgPSBmYWxzZTtcblx0XHRcdGZvciAoY29uc3QgZyBpbiB0aGlzLmluY3JlbWVudGFibGVzKSB7XG5cdFx0XHRcdGlmICghdGhpcy5pbmNyZW1lbnRhYmxlc1tnXS5zZXR1cCkge1xuXHRcdFx0XHRcdG5lZWRzZXR1cCA9IHRydWU7XG5cdFx0XHRcdFx0JChkb2N1bWVudCkub24oJ2NsaWNrJywgYCNjaXRlLWluY3ItJHtDaXRlVEIuZXNjU3RyKHRoaXMuc2hvcnRmb3JtKX0tJHtnfWAsIENpdGVUQi5pbmNyZW1lbnRGaWVsZHMpO1xuXHRcdFx0XHRcdHRoaXMuaW5jcmVtZW50YWJsZXNbZ10uc2V0dXAgPSB0cnVlO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRpZiAobmVlZHNldHVwIHx8IE9iamVjdC5rZXlzKHRoaXMuaW5jcmVtZW50YWJsZXMpLmxlbmd0aCA9PT0gMCkge1xuXHRcdFx0XHRmb3IgKGNvbnN0IGF1dG9maWxsIG9mIGF1dG9maWxscykge1xuXHRcdFx0XHRcdCQoZG9jdW1lbnQpLm9uKCdjbGljaycsIGF1dG9maWxsLCBDaXRlVEIuaW5pdEF1dG9maWxsKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIHRycztcblx0XHR9XG5cdFx0Ly8gZ2l2ZXMgYSBsaXR0bGUgYml0IG9mIEhUTUwgc28gdGhlIG9wZW4gZm9ybSBjYW4gYmUgaWRlbnRpZmllZFxuXHRcdGdldEluaXRpYWwoKSB7XG5cdFx0XHRjb25zdCBoaWRkZW4gPSAkKCc8aW5wdXQ+JykuYWRkQ2xhc3MoJ2NpdGUtdGVtcGxhdGUnKS5hdHRyKHtcblx0XHRcdFx0dHlwZTogJ2hpZGRlbicsXG5cdFx0XHRcdHZhbHVlOiB0aGlzLnRlbXBsYXRlbmFtZSxcblx0XHRcdH0pO1xuXHRcdFx0cmV0dXJuIGhpZGRlbjtcblx0XHR9XG5cdFx0Ly8gbWFrZXMgdGhlIGZvcm0gdXNlZCBpbiB0aGUgZGlhbG9nIGJveGVzXG5cdFx0Z2V0Rm9ybSgpIHtcblx0XHRcdGNvbnN0IG1haW4gPSAkKCc8ZGl2PicpLmFkZENsYXNzKCdjaXRlLWZvcm0tY29udGFpbmVyJyk7XG5cdFx0XHRjb25zdCBmb3JtMSA9ICQoJzx0YWJsZT4nKS5hZGRDbGFzcygnY2l0ZS1iYXNpYy1maWVsZHMnKS5jc3Moe1xuXHRcdFx0XHR3aWR0aDogJzEwMCUnLFxuXHRcdFx0XHQnYmFja2dyb3VuZC1jb2xvcic6ICd0cmFuc3BhcmVudCcsXG5cdFx0XHR9KTtcblx0XHRcdGxldCB0cnMgPSB0aGlzLm1ha2VGb3JtSW5uZXIodGhpcy5iYXNpYywgdHJ1ZSk7XG5cdFx0XHRmb3IgKGNvbnN0IHRyIG9mIHRycykge1xuXHRcdFx0XHRmb3JtMS5hcHBlbmQodHIpO1xuXHRcdFx0fVxuXHRcdFx0Y29uc3QgZm9ybTIgPSAkKCc8dGFibGU+JykuYWRkQ2xhc3MoJ2NpdGUtZXh0cmEtZmllbGRzJykuY3NzKHtcblx0XHRcdFx0d2lkdGg6ICcxMDAlJyxcblx0XHRcdFx0J2JhY2tncm91bmQtY29sb3InOiAndHJhbnNwYXJlbnQnLFxuXHRcdFx0XHRkaXNwbGF5OiAnbm9uZScsXG5cdFx0XHR9KTtcblx0XHRcdHRycyA9IHRoaXMubWFrZUZvcm1Jbm5lcih0aGlzLmV4dHJhLCB0cnVlKTtcblx0XHRcdGZvciAoY29uc3QgdHIgb2YgdHJzKSB7XG5cdFx0XHRcdGZvcm0yLmFwcGVuZCh0cik7XG5cdFx0XHR9XG5cdFx0XHRtYWluLmFwcGVuZChmb3JtMSkuYXBwZW5kKGZvcm0yKTtcblx0XHRcdGNvbnN0IGZvcm0zID0gJCgnPHRhYmxlPicpLmFkZENsYXNzKCdjaXRlLW90aGVyLWZpZWxkcycpLmNzcyh7XG5cdFx0XHRcdHdpZHRoOiAnMTAwJScsXG5cdFx0XHRcdCdiYWNrZ3JvdW5kLWNvbG9yJzogJ3RyYW5zcGFyZW50Jyxcblx0XHRcdFx0J3BhZGRpbmctdG9wJzogJzFlbScsXG5cdFx0XHR9KTtcblx0XHRcdGNvbnN0ICR0ciA9ICQoJzx0cj4nKTtcblx0XHRcdGNvbnN0ICR0ZDEgPSAkKCc8dGQ+JykuYWRkQ2xhc3MoY2l0ZUZvcm1UZCkuY3NzKHtcblx0XHRcdFx0J3RleHQtYWxpZ24nOiAncmlnaHQnLFxuXHRcdFx0XHR3aWR0aDogJzIwJScsXG5cdFx0XHR9KTtcblx0XHRcdGNvbnN0ICRsYWJlbDEgPSAkKCc8bGFiZWw+Jyk7XG5cdFx0XHQkbGFiZWwxLmF0dHIoJ2ZvcicsIGBjaXRlLSR7Q2l0ZVRCLmVzY1N0cih0aGlzLnNob3J0Zm9ybSl9LW5hbWVgKS50ZXh0KGdldE1lc3NhZ2UoJ2NpdGUtbmFtZS1sYWJlbCcpKTtcblx0XHRcdCR0ZDEuYXBwZW5kKCRsYWJlbDEpO1xuXHRcdFx0Y29uc3QgdGQyID0gJCgnPHRkPicpLmFkZENsYXNzKGNpdGVGb3JtVGQpLmNzcygnd2lkdGgnLCAnMzAlJyk7XG5cdFx0XHRjb25zdCBpbnB1dDEgPSAkKCc8aW5wdXQ+JykuYXR0cih7XG5cdFx0XHRcdHRhYmluZGV4OiAnMScsXG5cdFx0XHRcdHN0eWxlOiAnd2lkdGg6IDEwMCUnLFxuXHRcdFx0XHR0eXBlOiAndGV4dCcsXG5cdFx0XHR9KTtcblx0XHRcdGlucHV0MS5hdHRyKCdpZCcsIGBjaXRlLSR7Q2l0ZVRCLmVzY1N0cih0aGlzLnNob3J0Zm9ybSl9LW5hbWVgKTtcblx0XHRcdHRkMi5hcHBlbmQoaW5wdXQxKTtcblx0XHRcdGNvbnN0IHRkMyA9ICQoJzx0ZD4nKS5hZGRDbGFzcyhjaXRlRm9ybVRkKS5jc3Moe1xuXHRcdFx0XHQndGV4dC1hbGlnbic6ICdyaWdodCcsXG5cdFx0XHRcdCdwYWRkaW5nLWxlZnQnOiAnMWVtJyxcblx0XHRcdFx0d2lkdGg6ICcyMCUnLFxuXHRcdFx0fSk7XG5cdFx0XHRjb25zdCBsYWJlbDIgPSAkKCc8bGFiZWw+Jyk7XG5cdFx0XHRsYWJlbDIuYXR0cignZm9yJywgYGNpdGUtJHtDaXRlVEIuZXNjU3RyKHRoaXMuc2hvcnRmb3JtKX0tZ3JvdXBgKS50ZXh0KGdldE1lc3NhZ2UoJ2NpdGUtZ3JvdXAtbGFiZWwnKSk7XG5cdFx0XHR0ZDMuYXBwZW5kKGxhYmVsMik7XG5cdFx0XHRjb25zdCB0ZDQgPSAkKCc8dGQ+JykuYWRkQ2xhc3MoY2l0ZUZvcm1UZCkuY3NzKCd3aWR0aCcsICczMCUnKTtcblx0XHRcdGNvbnN0IGlucHV0MiA9ICQoJzxpbnB1dD4nKS5hdHRyKHtcblx0XHRcdFx0dGFiaW5kZXg6ICcxJyxcblx0XHRcdFx0c3R5bGU6ICd3aWR0aDogMTAwJScsXG5cdFx0XHRcdHR5cGU6ICd0ZXh0Jyxcblx0XHRcdH0pO1xuXHRcdFx0aW5wdXQyLmF0dHIoJ2lkJywgYGNpdGUtJHtDaXRlVEIuZXNjU3RyKHRoaXMuc2hvcnRmb3JtKX0tZ3JvdXBgKTtcblx0XHRcdHRkNC5hcHBlbmQoaW5wdXQyKTtcblx0XHRcdCR0ci5hcHBlbmQoJHRkMSkuYXBwZW5kKHRkMikuYXBwZW5kKHRkMykuYXBwZW5kKHRkNCk7XG5cdFx0XHRmb3JtMy5hcHBlbmQoJHRyKTtcblx0XHRcdG1haW4uYXBwZW5kKGZvcm0zKTtcblx0XHRcdGNvbnN0IGV4dHJhcyA9ICQoJzxkaXY+Jyk7XG5cdFx0XHRleHRyYXMuYXBwZW5kKFxuXHRcdFx0XHQkKCc8aW5wdXQ+JykuYWRkQ2xhc3MoJ2NpdGUtZm9ybS1zdGF0dXMnKS5hdHRyKHtcblx0XHRcdFx0XHR0eXBlOiAnaGlkZGVuJyxcblx0XHRcdFx0XHR2YWx1ZTogJ2Nsb3NlZCcsXG5cdFx0XHRcdH0pXG5cdFx0XHQpO1xuXHRcdFx0Y29uc3QgaGlkZGVuID0gJCgnPGlucHV0PicpLmFkZENsYXNzKCdjaXRlLXRlbXBsYXRlJykuYXR0cigndHlwZScsICdoaWRkZW4nKTtcblx0XHRcdGhpZGRlbi52YWwodGhpcy50ZW1wbGF0ZW5hbWUpO1xuXHRcdFx0ZXh0cmFzLmFwcGVuZChoaWRkZW4pO1xuXHRcdFx0Y29uc3Qgc3BhbjEgPSAkKCc8c3Bhbj4nKS5hZGRDbGFzcygnY2l0ZS1wcmV2aWV3LWxhYmVsJykuY3NzKCdkaXNwbGF5JywgJ25vbmUnKTtcblx0XHRcdHNwYW4xLnRleHQoZ2V0TWVzc2FnZSgnY2l0ZS1yYXctcHJldmlldycpKTtcblx0XHRcdGV4dHJhcy5hcHBlbmQoc3BhbjEpLmFwcGVuZChcblx0XHRcdFx0JCgnPGRpdj4nKS5hZGRDbGFzcygnY2l0ZS1yZWYtcHJldmlldycpLmNzcyh7XG5cdFx0XHRcdFx0cGFkZGluZzogJzAuNWVtJyxcblx0XHRcdFx0XHQnZm9udC1zaXplJzogJzExMCUnLFxuXHRcdFx0XHR9KVxuXHRcdFx0KTtcblx0XHRcdGNvbnN0IHNwYW4yID0gJCgnPHNwYW4+JykuYWRkQ2xhc3MoJ2NpdGUtcHJldi1wYXJzZWQtbGFiZWwnKS5jc3MoJ2Rpc3BsYXknLCAnbm9uZScpO1xuXHRcdFx0c3BhbjIudGV4dChnZXRNZXNzYWdlKCdjaXRlLXBhcnNlZC1sYWJlbCcpKTtcblx0XHRcdGV4dHJhcy5hcHBlbmQoc3BhbjIpLmFwcGVuZChcblx0XHRcdFx0JCgnPGRpdj4nKS5hZGRDbGFzcygnY2l0ZS1wcmV2aWV3LXBhcnNlZCcpLmNzcyh7XG5cdFx0XHRcdFx0J3BhZGRpbmctYm90dG9tJzogJzAuNWVtJyxcblx0XHRcdFx0XHQnZm9udC1zaXplJzogJzExMCUnLFxuXHRcdFx0XHR9KVxuXHRcdFx0KTtcblx0XHRcdGNvbnN0IGxpbmsgPSAkKCc8YT4nKS5hZGRDbGFzcygnY2l0ZS1wcmV2LXBhcnNlJykuYXR0cignaHJlZicsICcjJykuY3NzKHtcblx0XHRcdFx0bWFyZ2luOiAnMCAxZW0nLFxuXHRcdFx0XHRkaXNwbGF5OiAnbm9uZScsXG5cdFx0XHRcdGNvbG9yOiAnIzAwMDA4YicsXG5cdFx0XHR9KTtcblx0XHRcdGxpbmsudGV4dChnZXRNZXNzYWdlKCdjaXRlLWZvcm0tcGFyc2UnKSk7XG5cdFx0XHRleHRyYXMuYXBwZW5kKGxpbmspO1xuXHRcdFx0bWFpbi5hcHBlbmQoZXh0cmFzKTtcblx0XHRcdHJldHVybiBtYWluO1xuXHRcdH1cblx0fTtcblxuXHQkKGRvY3VtZW50KS5maW5kKCdoZWFkJykudHJpZ2dlcigncmVmdG9vbGJhcmJhc2UnKTtcbn07XG5cbmV4cG9ydCB7cmVmVG9vbGJhckJhc2V9O1xuIiwgImNvbnN0IHJlZlRvb2xiYXJNZXNhZ2VzID0gKCk6IHZvaWQgPT4ge1xuXHRjb25zdCB7d2dVc2VyTGFuZ3VhZ2V9ID0gbXcuY29uZmlnLmdldCgpO1xuXG5cdGlmICh3Z1VzZXJMYW5ndWFnZSA9PT0gJ2VuJykge1xuXHRcdHJldHVybjtcblx0fVxuXHQvLyBBbGwgdXNlci1mYWNpbmcgbWVzc2FnZXNcblx0Ly8gVE9ETzogRG9jdW1lbnQgdXNhZ2Vcblx0aWYgKFsnemgtaGFudCcsICd6aC1oaycsICd6aC1tbycsICd6aC10dyddLmluY2x1ZGVzKHdnVXNlckxhbmd1YWdlKSkge1xuXHRcdG13Lm1lc3NhZ2VzLnNldCh7XG5cdFx0XHQnY2l0ZS1zZWN0aW9uLWxhYmVsJzogJ+W8leeUqCcsXG5cdFx0XHQnY2l0ZS10ZW1wbGF0ZS1saXN0JzogJ+aooeadvycsXG5cdFx0XHQnY2l0ZS1uYW1lZC1yZWZzLWxhYmVsJzogJ+WQjOWQjeaWh+eNuycsXG5cdFx0XHQnY2l0ZS1uYW1lZC1yZWZzLXRpdGxlJzogJ+aPkuWFpeWQjOWQjeaWh+eNuycsXG5cdFx0XHQnY2l0ZS1uYW1lZC1yZWZzLWJ1dHRvbic6ICflt7Llkb3lkI3lj4PogIPmlofnjbsnLFxuXHRcdFx0J2NpdGUtbmFtZWQtcmVmcy1kcm9wZG93bic6ICflkIzlkI3mlofnjbsnLFxuXHRcdFx0Ly8gVXNlZCBvbiB0aGUgdG9wIG9mIHRoZSBuYW1lZCByZWZzIGxpc3QgZHJvcHNvd25cblx0XHRcdCdjaXRlLWRpYWxvZy1iYXNlJzogJ+W8leeUqCcsXG5cdFx0XHQnY2l0ZS1mb3JtLXN1Ym1pdCc6ICfmj5LlhaUnLFxuXHRcdFx0J2NpdGUtZm9ybS1zaG93aGlkZSc6ICfpoa/npLov6Zqx6JeP6aGN5aSW5Y2A5Z+fJyxcblx0XHRcdCdjaXRlLW5vLW5hbWVkcmVmcyc6ICflnKjmnKzpoIHmib7kuI3liLDku7vkvZXlkIzlkI3mlofnjbsnLFxuXHRcdFx0J2NpdGUtbmFtZWRyZWZzLWludHJvJzogJ+W+nuWIl+WHuueahOWPg+iAg+aWh+eNu+ebrumMhOS4remBuOaTh+S4gOWAi+WQjeWtl+OAgum7nuaTiuOAjOaPkuWFpeOAjeaPkuWFpeS4gOWAi+WPg+iAg+aWh+eNu+WIsOaWh+acrOS4reOAgicsXG5cdFx0XHQnY2l0ZS1yYXctcHJldmlldyc6ICfljp/lp4vnorzvvJonLFxuXHRcdFx0J2NpdGUtcGFyc2VkLWxhYmVsJzogJ+ino+aekOW+jOeahOWOn+Wni+eivO+8micsXG5cdFx0XHQnY2l0ZS1mb3JtLXBhcnNlJzogJ+mhr+ekuuino+aekOW+jOeahOmgkOimvScsXG5cdFx0XHQnY2l0ZS1yZWZwcmV2aWV3JzogJ+mgkOimvScsXG5cdFx0XHQnY2l0ZS1uYW1lLWxhYmVsJzogJ3JlZuWQjScsXG5cdFx0XHQnY2l0ZS1ncm91cC1sYWJlbCc6ICdyZWbntYQnLFxuXHRcdFx0J2NpdGUtZm9ybS1yZXNldCc6ICfph43oqK3ooajllq4nLFxuXHRcdFx0J2NpdGUtbG9hZGluZyc6ICfovInlhaXmlbjmk5onLFxuXHRcdFx0Ly8gU2hvd24gd2hpbGUgcGFnZXRleHQgaXMgYmVpbmcgZG93bmxvYWRlZCBmcm9tIHRoZSBBUElcblx0XHRcdCdjaXRlLWluc2VydC1kYXRlJzogJ+aPkuWFpeeVtuWJjeaXpeacnycsXG5cdFx0XHQvLyBBbHQvdGl0bGUgdGV4dCBmb3IgXCJpbnNlcnQgZGF0ZVwiIGljb25cblx0XHRcdCdjaXRlLWVyci1yZXBvcnQtaGVhZGluZyc6ICflvJXnlKjpjK/oqqTloLHlkYonLFxuXHRcdFx0Ly8gSGVhZGluZyBmb3IgZXJyb3IgcmVwb3J0IHRhYmxlXG5cdFx0XHQnY2l0ZS1lcnItcmVwb3J0LWNsb3NlJzogJ+mXnOmWiScsXG5cdFx0XHQvLyBBbHQvdGl0bGUgdGV4dCBmb3IgXCJjbG9zZVwiIGljb24gb24gZXJyb3IgcmVwb3J0XG5cdFx0XHQnY2l0ZS1lcnItcmVwb3J0LWVtcHR5JzogJ+acquaJvuWIsOmMr+iqpCcsXG5cdFx0XHQvLyBNZXNzYWdlIGRpc3BsYXllZCBpbiB0aGUgZXJyb3IgcmVwb3J0IGxpc3QgaWYgdGhlcmUgYXJlIG5vIGVycm9yc1xuXHRcdFx0J2NpdGUtYXV0b2ZpbGwtYWx0JzogJ+iHquWLleWhq+WFhScsXG5cdFx0XHQnY2l0ZS1pbmNyZW1lbnQtYWx0JzogJ+a3u+WKoOS9nOiAhScsXG5cdFx0XHQvLyBBbHQgdGV4dCBmb3IgYXV0b2ZpbGwgYnV0dG9uIGltYWdlXG5cdFx0XHQnY2l0ZS1yZWYtdG9vbHRpcCc6ICfpjKjpu57nmoTmqJnorZjnrKbvvIjkvb/oqbLlvJXnlKjlj6/ku6XmiJDngrrlhafpg6jpgKPntZDnmoTnm67mqJnvvIknLFxuXHRcdFx0J2NpdGUtcG9zdHNjcmlwdC10b29sdGlwJzogJ+WmguaenOioreWumumAmeS4gOWPg+aVuO+8jOWJh+imhuiTi+S9v+eUqOWPpem7nue1guatouW8leaWh+eahOm7mOiqjeihjOeIsicsXG5cdFx0XHQnY2l0ZS1kaWFsb2ctd2ViJzogJ+e2sumggeW8leeUqCcsXG5cdFx0XHQnY2l0ZS1kaWFsb2ctbmV3cyc6ICfmlrDogZ7lvJXnlKgnLFxuXHRcdFx0J2NpdGUtZGlhbG9nLWJvb2snOiAn5pu457GN5byV55SoJyxcblx0XHRcdCdjaXRlLWRpYWxvZy1qb3VybmFsJzogJ+acn+WIiuW8leeUqCcsXG5cdFx0XHQnY2l0ZS1kaWFsb2ctY29uZmVyZW5jZSc6ICfmnIPorbDlvJXnlKgnLFxuXHRcdFx0J2NpdGUtZGlhbG9nLWVuY3ljbG9wZWRpYSc6ICfnmb7np5Hlhajmm7jlvJXnlKgnLFxuXHRcdFx0J2NpdGUtYXV0aG9yLWxhYmVsJzogJ+S9nOiAhScsXG5cdFx0XHQnY2l0ZS10aXRsZS1sYWJlbCc6ICfmqJnpoYwnLFxuXHRcdFx0J2NpdGUtdXJsLWxhYmVsJzogJ+e2suWdgCcsXG5cdFx0XHQnY2l0ZS13ZWJzaXRlLWxhYmVsJzogJ+e2suermeWQjeeosScsXG5cdFx0XHQnY2l0ZS13b3JrLWxhYmVsJzogJ+Wgsee0meaIlumbnOiqjCcsXG5cdFx0XHQnY2l0ZS1hZ2VuY3ktbGFiZWwnOiAn6YCa6KiK56S+Jyxcblx0XHRcdCdjaXRlLXB1Ymxpc2hlci1sYWJlbCc6ICflh7rniYjogIUnLFxuXHRcdFx0J2NpdGUtYWNjZXNzZGF0ZS1sYWJlbCc6ICflrZjlj5bml6XmnJ8nLFxuXHRcdFx0J2NpdGUtbGFzdC1sYWJlbCc6ICflp5MnLFxuXHRcdFx0J2NpdGUtZmlyc3QtbGFiZWwnOiAn5ZCNJyxcblx0XHRcdCdjaXRlLWF1dGhvcmxpbmstbGFiZWwnOiAn5L2c6ICF5qKd55uuJyxcblx0XHRcdCdjaXRlLWNvYXV0aG9ycy1sYWJlbCc6ICflhbbku5bkvZzogIUnLFxuXHRcdFx0J2NpdGUtbG9jYXRpb24tbGFiZWwnOiAn5Ye654mI5ZywJyxcblx0XHRcdCdjaXRlLXBhZ2UtbGFiZWwnOiAn5omA5Zyo6aCBJyxcblx0XHRcdCdjaXRlLXBhZ2VzLWxhYmVsJzogJ+mggeevhOWcjScsXG5cdFx0XHQnY2l0ZS1hdC1sYWJlbCc6ICfmm7jlhafpg6jliIYnLFxuXHRcdFx0J2NpdGUtbGFuZ3VhZ2UtbGFiZWwnOiAn6Kqe6KiAJyxcblx0XHRcdCdjaXRlLWZvcm1hdC1sYWJlbCc6ICfmlofku7bmoLzlvI8nLFxuXHRcdFx0J2NpdGUtZG9pLWxhYmVsJzogJ0RPSScsXG5cdFx0XHQnY2l0ZS1kYXRlLWxhYmVsJzogJ+aXpeacnycsXG5cdFx0XHQnY2l0ZS1tb250aC1sYWJlbCc6ICfmnIjku70nLFxuXHRcdFx0J2NpdGUteWVhci1sYWJlbCc6ICflubTku70nLFxuXHRcdFx0J2NpdGUtcXVvdGUtbGFiZWwnOiAn5pGY6YyEJyxcblx0XHRcdCdjaXRlLW5ld3NwYXBlci1sYWJlbCc6ICfmlrDogZ7lqpLpq5QnLFxuXHRcdFx0J2NpdGUtYXV0aG9yMi1sYWJlbCc6ICfnrKwy5L2c6ICFJyxcblx0XHRcdCdjaXRlLWF1dGhvcjMtbGFiZWwnOiAn56ysM+S9nOiAhScsXG5cdFx0XHQnY2l0ZS1hdXRob3I0LWxhYmVsJzogJ+esrDTkvZzogIUnLFxuXHRcdFx0J2NpdGUtYXV0aG9yNS1sYWJlbCc6ICfnrKw15L2c6ICFJyxcblx0XHRcdCdjaXRlLWFnZW5jeSc6ICfpgJroqIrnpL4nLFxuXHRcdFx0J2NpdGUtaXNzbi1sYWJlbCc6ICdJU1NOJyxcblx0XHRcdCdjaXRlLW9jbGMtbGFiZWwnOiAnT0NMQycsXG5cdFx0XHQnY2l0ZS1iaWJjb2RlLWxhYmVsJzogJ0JpYmNvZGUnLFxuXHRcdFx0J2NpdGUtaXNibi1sYWJlbCc6ICdJU0JOJyxcblx0XHRcdCdjaXRlLW90aGVycy1sYWJlbCc6ICfora/ogIUnLFxuXHRcdFx0J2NpdGUtZWRpdGlvbi1sYWJlbCc6ICfniYjmnKwnLFxuXHRcdFx0J2NpdGUtdHJhbnMtdGl0bGUtbGFiZWwnOiAn57+76K2v5b6M5qiZ6aGMJyxcblx0XHRcdCdjaXRlLXJlZi1sYWJlbCc6ICfpjKjpu57mqJnorZjnrKYnLFxuXHRcdFx0J2NpdGUtcG9zdHNjcmlwdC1sYWJlbCc6ICfnu5PlsL7nrKYnLFxuXHRcdFx0J2NpdGUtc2VyaWVzLWxhYmVsJzogJ+ezu+WIlycsXG5cdFx0XHQnY2l0ZS12b2x1bWUtbGFiZWwnOiAn5Y23Jyxcblx0XHRcdCdjaXRlLXVuaWZpZWQtbGFiZWwnOiAn57Wx5LiA5pu46JmfJyxcblx0XHRcdCdjaXRlLWNoYXB0ZXItbGFiZWwnOiAn56ug56+AJyxcblx0XHRcdCdjaXRlLWpvdXJuYWwtbGFiZWwnOiAn6Zuc6KqML+acn+WIiicsXG5cdFx0XHQnY2l0ZS1pc3N1ZS1sYWJlbCc6ICfmnJ8nLFxuXHRcdFx0J2NpdGUtcG1pZC1sYWJlbCc6ICdQTUlEJyxcblx0XHRcdCdjaXRlLWVkaXRvci1sYWJlbCc6ICfnt6jovK8nLFxuXHRcdFx0J2NpdGUtZWRpdG9yMS1maXJzdC1sYWJlbCc6ICfnt6jovK/lkI0nLFxuXHRcdFx0J2NpdGUtZWRpdG9yMS1sYXN0LWxhYmVsJzogJ+e3qOi8r+WnkycsXG5cdFx0XHQnY2l0ZS1lZGl0b3IxLWxpbmstbGFiZWwnOiAn57eo6Lyv5qKd55uuJyxcblx0XHRcdCdjaXRlLWVkaXRvci1maXJzdC1sYWJlbCc6ICfnt6jovK/lkI0nLFxuXHRcdFx0J2NpdGUtZWRpdG9yLWxhc3QtbGFiZWwnOiAn57eo6Lyv5aeTJyxcblx0XHRcdCdjaXRlLWVkaXRvci1saW5rLWxhYmVsJzogJ+e3qOi8r+aineebricsXG5cdFx0XHQnY2l0ZS1wbWMtbGFiZWwnOiAnUE1DJyxcblx0XHRcdCdjaXRlLWlkLWxhYmVsJzogJ0lEJyxcblx0XHRcdCdjaXRlLWxheXN1bW1hcnktbGFiZWwnOiAn57Ch5piO5pGY6KaBJyxcblx0XHRcdCdjaXRlLWxheXNvdXJjZS1sYWJlbCc6ICfnsKHmmI7mkZjopoHkvobmupAnLFxuXHRcdFx0J2NpdGUtbGF5ZGF0ZS1sYWJlbCc6ICfnsKHmmI7mkZjopoHml6XmnJ8nLFxuXHRcdFx0J2NpdGUtY29uZmVyZW5jZS1sYWJlbCc6ICfmnIPorbDlkI3nqLEnLFxuXHRcdFx0J2NpdGUtY29uZmVyZW5jZXVybC1sYWJlbCc6ICfmnIPorbDntrLlnYAnLFxuXHRcdFx0J2NpdGUtYm9va3RpdGxlLWxhYmVsJzogJ+irluaWh+mbhicsXG5cdFx0XHQnY2l0ZS1lbmN5Y2xvcGVkaWEtbGFiZWwnOiAn55m+56eR5YWo5pu45ZCNJyxcblx0XHRcdCdjaXRlLWF1dGhvcmxpbmstdG9vbHRpcCc6ICfoi6XoqbLkvZzogIXmnInmop3nm67vvIzloavlr6vmop3nm67lkI3nqLEnLFxuXHRcdFx0J2NpdGUtYXQtdG9vbHRpcCc6ICflhaflrrnlnKjkvobmupDkuK3nmoTkvY3nva7vvIjnlbbmjInpoIHnorzlvJXnlKjkuI3pgannlbbmmYLvvIknLFxuXHRcdFx0J2NpdGUtYWNjZXNzZGF0ZS10b29sdGlwJzogJ+ioquWVj+mAmeWAi+W8leeUqOS+hua6kOaZgueahOaXpeacnycsXG5cdFx0XHQnY2l0ZS1pZC10b29sdGlwJzogJ+WFtuS7lueahOaWh+eroOe3qOiZnycsXG5cdFx0XHQnY2l0ZS1zYW1lY29udGVudC1kZXNjJzogJ+aqouafpeWQq+acieebuOWQjOWFp+WuueeahOWkmuWAi+WPg+iAg+aWh+eNuycsXG5cdFx0XHQnY2l0ZS1zYW1lY29udGVudC1lcnJvcic6ICflpJrlgIvlj4PogIPmlofnjbvljIXlkKvmnInnm7jlkIzlhaflrrknLFxuXHRcdFx0J2NpdGUtcmVwZWF0ZWQtZGVzYyc6ICfkvb/nlKjnm7jlkIzlkI3lrZfnmoTlpJrlgIvlj4PogIPmlofnjbsnLFxuXHRcdFx0J2NpdGUtcmVwZWF0ZWQtZXJyb3InOiAn5aSa5YCL5Y+D6ICD5paH54275L2/55So5LqG55u45ZCM5ZCN5a2XJyxcblx0XHRcdCdjaXRlLXVuZGVmaW5lZC1kZXNjJzogJ+acquWumue+qeeahOWPg+iAg+aWh+eNuycsXG5cdFx0XHQnY2l0ZS11bmRlZmluZWQtZXJyb3InOiAn5LiA5YCL5bey5ZG95ZCN55qE5Y+D6ICD5paH54275bey57aT5L2/55So5L2G5piv5rKS5pyJ5a6a576pJyxcblx0XHRcdCdjaXRlLXdvcmstdG9vbHRpcCc6ICfliIrnmbvoqbLkvZzlk4HnmoTlh7rniYjniannmoTlkI3nqLHjgILoq4vkuI3opoHkvb/nlKjmlpzpq5QnLFxuXHRcdFx0J2NpdGUtbmV3c3BhcGVyLXRvb2x0aXAnOiAn5YiK55m76Kmy5paw6IGe55qE5Ye654mI54mp5ZCN56ixJyxcblx0XHRcdCdjaXRlLXNlcmllcy10b29sdGlwJzogJ+eVtuabuOexjeaYr+S4gOezu+WIl+WHuueJiOWTgeS4reeahOWFtuS4reS4gOmDqOS7veaZguS9v+eUqCcsXG5cdFx0XHQnY2l0ZS11bmlmaWVkLXRvb2x0aXAnOiAnMTk4MOW5tOS7o+S5i+WJjeS4reWci+aJgOS9v+eUqOeahOabuOexjee3qOiZnycsXG5cdFx0XHQnY2l0ZS1sYXlzdW1tYXJ5LXRvb2x0aXAnOiAn6Kmy5paH542755u46Zec55qE5paw6IGe5aCx6YGT55qEVVJMJyxcblx0XHRcdCdjaXRlLWxheXNvdXJjZS10b29sdGlwJzogJ+ipsuaWh+eNu+ebuOmXnOeahOaWsOiBnuWgsemBk+eahOWHuuiZlScsXG5cdFx0fSk7XG5cdH0gZWxzZSB7XG5cdFx0bXcubWVzc2FnZXMuc2V0KHtcblx0XHRcdCdjaXRlLXNlY3Rpb24tbGFiZWwnOiAn5byV55SoJyxcblx0XHRcdCdjaXRlLXRlbXBsYXRlLWxpc3QnOiAn5qih5p2/Jyxcblx0XHRcdCdjaXRlLW5hbWVkLXJlZnMtbGFiZWwnOiAn5ZCM5ZCN5paH54yuJyxcblx0XHRcdCdjaXRlLW5hbWVkLXJlZnMtdGl0bGUnOiAn5o+S5YWl5ZCM5ZCN5paH54yuJyxcblx0XHRcdCdjaXRlLW5hbWVkLXJlZnMtYnV0dG9uJzogJ+W3suWRveWQjeWPguiAg+aWh+eMricsXG5cdFx0XHQnY2l0ZS1uYW1lZC1yZWZzLWRyb3Bkb3duJzogJ+WQjOWQjeaWh+eMricsXG5cdFx0XHQvLyBVc2VkIG9uIHRoZSB0b3Agb2YgdGhlIG5hbWVkIHJlZnMgbGlzdCBkcm9wc293blxuXHRcdFx0J2NpdGUtZGlhbG9nLWJhc2UnOiAn5byV55SoJyxcblx0XHRcdCdjaXRlLWZvcm0tc3VibWl0JzogJ+aPkuWFpScsXG5cdFx0XHQnY2l0ZS1mb3JtLXNob3doaWRlJzogJ+aYvuekui/pmpDol4/pop3lpJbljLrln58nLFxuXHRcdFx0J2NpdGUtbm8tbmFtZWRyZWZzJzogJ+WcqOacrOmhteaJvuS4jeWIsOS7u+S9leWQjOWQjeaWh+eMricsXG5cdFx0XHQnY2l0ZS1uYW1lZHJlZnMtaW50cm8nOiAn5LuO5YiX5Ye655qE5Y+C6ICD5paH54yu55uu5b2V5Lit6YCJ5oup5LiA5Liq5ZCN5a2X44CC54K55Ye74oCc5o+S5YWl4oCd5o+S5YWl5LiA5Liq5Y+C6ICD5paH54yu5Yiw5paH5pys5Lit44CCJyxcblx0XHRcdCdjaXRlLXJhdy1wcmV2aWV3JzogJ+a6kOS7o+egge+8micsXG5cdFx0XHQnY2l0ZS1wYXJzZWQtbGFiZWwnOiAn6Kej5p6Q5ZCO55qE5rqQ5Luj56CB77yaJyxcblx0XHRcdCdjaXRlLWZvcm0tcGFyc2UnOiAn5pi+56S66Kej5p6Q5ZCO55qE6aKE6KeIJyxcblx0XHRcdCdjaXRlLXJlZnByZXZpZXcnOiAn6aKE6KeIJyxcblx0XHRcdCdjaXRlLW5hbWUtbGFiZWwnOiAncmVm5ZCNJyxcblx0XHRcdCdjaXRlLWdyb3VwLWxhYmVsJzogJ3JlZue7hCcsXG5cdFx0XHQnY2l0ZS1mb3JtLXJlc2V0JzogJ+mHjeiuvuihqOWNlScsXG5cdFx0XHQnY2l0ZS1sb2FkaW5nJzogJ+i9veWFpeaVsOaNricsXG5cdFx0XHQvLyBTaG93biB3aGlsZSBwYWdldGV4dCBpcyBiZWluZyBkb3dubG9hZGVkIGZyb20gdGhlIEFQSVxuXHRcdFx0J2NpdGUtaW5zZXJ0LWRhdGUnOiAn5o+S5YWl5b2T5YmN5pel5pyfJyxcblx0XHRcdC8vIEFsdC90aXRsZSB0ZXh0IGZvciBcImluc2VydCBkYXRlXCIgaWNvblxuXHRcdFx0J2NpdGUtZXJyLXJlcG9ydC1oZWFkaW5nJzogJ+W8leeUqOmUmeivr+aKpeWRiicsXG5cdFx0XHQvLyBIZWFkaW5nIGZvciBlcnJvciByZXBvcnQgdGFibGVcblx0XHRcdCdjaXRlLWVyci1yZXBvcnQtY2xvc2UnOiAn5YWz6ZetJyxcblx0XHRcdC8vIEFsdC90aXRsZSB0ZXh0IGZvciBcImNsb3NlXCIgaWNvbiBvbiBlcnJvciByZXBvcnRcblx0XHRcdCdjaXRlLWVyci1yZXBvcnQtZW1wdHknOiAn5pyq5om+5Yiw6ZSZ6K+vJyxcblx0XHRcdC8vIE1lc3NhZ2UgZGlzcGxheWVkIGluIHRoZSBlcnJvciByZXBvcnQgbGlzdCBpZiB0aGVyZSBhcmUgbm8gZXJyb3JzXG5cdFx0XHQnY2l0ZS1hdXRvZmlsbC1hbHQnOiAn6Ieq5Yqo5aGr5YWFJyxcblx0XHRcdCdjaXRlLWluY3JlbWVudC1hbHQnOiAn5re75Yqg5L2c6ICFJyxcblx0XHRcdC8vIEFsdCB0ZXh0IGZvciBhdXRvZmlsbCBidXR0b24gaW1hZ2Vcblx0XHRcdCdjaXRlLXJlZi10b29sdGlwJzogJ+mUmueCueeahOagh+ivhuespu+8iOS9v+ivpeW8leeUqOWPr+S7peaIkOS4uuWGhemDqOmTvuaOpeeahOebruagh++8iScsXG5cdFx0XHQnY2l0ZS1wb3N0c2NyaXB0LXRvb2x0aXAnOiAn5aaC5p6c6K6+5a6a6L+Z5LiA5Y+C5pWw77yM5YiZ6KaG55uW5L2/55So5Y+l54K557uI5q2i5byV5paH55qE6buY6K6k6KGM5Li6Jyxcblx0XHRcdCdjaXRlLWRpYWxvZy13ZWInOiAn572R6aG15byV55SoJyxcblx0XHRcdCdjaXRlLWRpYWxvZy1uZXdzJzogJ+aWsOmXu+W8leeUqCcsXG5cdFx0XHQnY2l0ZS1kaWFsb2ctYm9vayc6ICfkuabnsY3lvJXnlKgnLFxuXHRcdFx0J2NpdGUtZGlhbG9nLWpvdXJuYWwnOiAn5pyf5YiK5byV55SoJyxcblx0XHRcdCdjaXRlLWRpYWxvZy1jb25mZXJlbmNlJzogJ+S8muiuruW8leeUqCcsXG5cdFx0XHQnY2l0ZS1kaWFsb2ctZW5jeWNsb3BlZGlhJzogJ+eZvuenkeWFqOS5puW8leeUqCcsXG5cdFx0XHQnY2l0ZS1hdXRob3ItbGFiZWwnOiAn5L2c6ICFJyxcblx0XHRcdCdjaXRlLXRpdGxlLWxhYmVsJzogJ+agh+mimCcsXG5cdFx0XHQnY2l0ZS11cmwtbGFiZWwnOiAn572R5Z2AJyxcblx0XHRcdCdjaXRlLXdlYnNpdGUtbGFiZWwnOiAn572R56uZ5ZCN56ewJyxcblx0XHRcdCdjaXRlLXdvcmstbGFiZWwnOiAn5oql57q45oiW5p2C5b+XJyxcblx0XHRcdCdjaXRlLWFnZW5jeS1sYWJlbCc6ICfpgJrorq/npL4nLFxuXHRcdFx0J2NpdGUtcHVibGlzaGVyLWxhYmVsJzogJ+WHuueJiOiAhScsXG5cdFx0XHQnY2l0ZS1hY2Nlc3NkYXRlLWxhYmVsJzogJ+iuv+mXruaXpeacnycsXG5cdFx0XHQnY2l0ZS1sYXN0LWxhYmVsJzogJ+WnkycsXG5cdFx0XHQnY2l0ZS1maXJzdC1sYWJlbCc6ICflkI0nLFxuXHRcdFx0J2NpdGUtYXV0aG9ybGluay1sYWJlbCc6ICfkvZzogIXmnaHnm64nLFxuXHRcdFx0J2NpdGUtY29hdXRob3JzLWxhYmVsJzogJ+WFtuS7luS9nOiAhScsXG5cdFx0XHQnY2l0ZS1sb2NhdGlvbi1sYWJlbCc6ICflh7rniYjlnLAnLFxuXHRcdFx0J2NpdGUtcGFnZS1sYWJlbCc6ICfmiYDlnKjpobUnLFxuXHRcdFx0J2NpdGUtcGFnZXMtbGFiZWwnOiAn6aG16IyD5Zu0Jyxcblx0XHRcdCdjaXRlLWF0LWxhYmVsJzogJ+S5puWGhemDqOWIhicsXG5cdFx0XHQnY2l0ZS1sYW5ndWFnZS1sYWJlbCc6ICfor63oqIAnLFxuXHRcdFx0J2NpdGUtZm9ybWF0LWxhYmVsJzogJ+aWh+aho+agvOW8jycsXG5cdFx0XHQnY2l0ZS1kb2ktbGFiZWwnOiAnRE9JJyxcblx0XHRcdCdjaXRlLWRhdGUtbGFiZWwnOiAn5pel5pyfJyxcblx0XHRcdCdjaXRlLW1vbnRoLWxhYmVsJzogJ+aciOS7vScsXG5cdFx0XHQnY2l0ZS15ZWFyLWxhYmVsJzogJ+W5tOS7vScsXG5cdFx0XHQnY2l0ZS1xdW90ZS1sYWJlbCc6ICfmkZjlvZUnLFxuXHRcdFx0J2NpdGUtbmV3c3BhcGVyLWxhYmVsJzogJ+aWsOmXu+WqkuS9kycsXG5cdFx0XHQnY2l0ZS1hdXRob3IyLWxhYmVsJzogJ+esrDLkvZzogIUnLFxuXHRcdFx0J2NpdGUtYXV0aG9yMy1sYWJlbCc6ICfnrKwz5L2c6ICFJyxcblx0XHRcdCdjaXRlLWF1dGhvcjQtbGFiZWwnOiAn56ysNOS9nOiAhScsXG5cdFx0XHQnY2l0ZS1hdXRob3I1LWxhYmVsJzogJ+esrDXkvZzogIUnLFxuXHRcdFx0J2NpdGUtYWdlbmN5JzogJ+mAmuiur+ekvicsXG5cdFx0XHQnY2l0ZS1pc3NuLWxhYmVsJzogJ0lTU04nLFxuXHRcdFx0J2NpdGUtb2NsYy1sYWJlbCc6ICdPQ0xDJyxcblx0XHRcdCdjaXRlLWJpYmNvZGUtbGFiZWwnOiAnQmliY29kZScsXG5cdFx0XHQnY2l0ZS1pc2JuLWxhYmVsJzogJ0lTQk4nLFxuXHRcdFx0J2NpdGUtb3RoZXJzLWxhYmVsJzogJ+ivkeiAhScsXG5cdFx0XHQnY2l0ZS1lZGl0aW9uLWxhYmVsJzogJ+eJiOacrCcsXG5cdFx0XHQnY2l0ZS10cmFucy10aXRsZS1sYWJlbCc6ICfnv7vor5HlkI7moIfpopgnLFxuXHRcdFx0J2NpdGUtcmVmLWxhYmVsJzogJ+mUmueCueagh+ivhuespicsXG5cdFx0XHQnY2l0ZS1wb3N0c2NyaXB0LWxhYmVsJzogJ+e7k+WwvuespicsXG5cdFx0XHQnY2l0ZS1zZXJpZXMtbGFiZWwnOiAn57O75YiXJyxcblx0XHRcdCdjaXRlLXZvbHVtZS1sYWJlbCc6ICfljbcnLFxuXHRcdFx0J2NpdGUtdW5pZmllZC1sYWJlbCc6ICfnu5/kuIDkuablj7cnLFxuXHRcdFx0J2NpdGUtY2hhcHRlci1sYWJlbCc6ICfnq6DoioInLFxuXHRcdFx0J2NpdGUtam91cm5hbC1sYWJlbCc6ICfmnYLlv5cv5pyf5YiKJyxcblx0XHRcdCdjaXRlLWlzc3VlLWxhYmVsJzogJ+acnycsXG5cdFx0XHQnY2l0ZS1wbWlkLWxhYmVsJzogJ1BNSUQnLFxuXHRcdFx0J2NpdGUtZWRpdG9yLWxhYmVsJzogJ+e8lui+kScsXG5cdFx0XHQnY2l0ZS1lZGl0b3IxLWZpcnN0LWxhYmVsJzogJ+e8lui+keWQjScsXG5cdFx0XHQnY2l0ZS1lZGl0b3IxLWxhc3QtbGFiZWwnOiAn57yW6L6R5aeTJyxcblx0XHRcdCdjaXRlLWVkaXRvcjEtbGluay1sYWJlbCc6ICfnvJbovpHmnaHnm64nLFxuXHRcdFx0J2NpdGUtZWRpdG9yLWZpcnN0LWxhYmVsJzogJ+e8lui+keWQjScsXG5cdFx0XHQnY2l0ZS1lZGl0b3ItbGFzdC1sYWJlbCc6ICfnvJbovpHlp5MnLFxuXHRcdFx0J2NpdGUtZWRpdG9yLWxpbmstbGFiZWwnOiAn57yW6L6R5p2h55uuJyxcblx0XHRcdCdjaXRlLXBtYy1sYWJlbCc6ICdQTUMnLFxuXHRcdFx0J2NpdGUtaWQtbGFiZWwnOiAnSUQnLFxuXHRcdFx0J2NpdGUtbGF5c3VtbWFyeS1sYWJlbCc6ICfnroDmmI7mkZjopoEnLFxuXHRcdFx0J2NpdGUtbGF5c291cmNlLWxhYmVsJzogJ+eugOaYjuaRmOimgeadpea6kCcsXG5cdFx0XHQnY2l0ZS1sYXlkYXRlLWxhYmVsJzogJ+eugOaYjuaRmOimgeaXpeacnycsXG5cdFx0XHQnY2l0ZS1jb25mZXJlbmNlLWxhYmVsJzogJ+S8muiuruWQjeensCcsXG5cdFx0XHQnY2l0ZS1jb25mZXJlbmNldXJsLWxhYmVsJzogJ+S8muiurue9keWdgCcsXG5cdFx0XHQnY2l0ZS1ib29rdGl0bGUtbGFiZWwnOiAn6K665paH6ZuGJyxcblx0XHRcdCdjaXRlLWVuY3ljbG9wZWRpYS1sYWJlbCc6ICfnmb7np5HlhajkuablkI0nLFxuXHRcdFx0J2NpdGUtYXV0aG9ybGluay10b29sdGlwJzogJ+iLpeivpeS9nOiAheacieadoeebru+8jOWhq+WGmeadoeebruWQjeensCcsXG5cdFx0XHQnY2l0ZS1hdC10b29sdGlwJzogJ+WGheWuueWcqOadpea6kOS4reeahOS9jee9ru+8iOW9k+aMiemhteeggeW8leeUqOS4jemAguW9k+aXtu+8iScsXG5cdFx0XHQnY2l0ZS1hY2Nlc3NkYXRlLXRvb2x0aXAnOiAn6K6/6Zeu6L+Z5Liq5byV55So5p2l5rqQ5pe255qE5pel5pyfJyxcblx0XHRcdCdjaXRlLWlkLXRvb2x0aXAnOiAn5YW25LuW55qE5paH56ug57yW5Y+3Jyxcblx0XHRcdCdjaXRlLXNhbWVjb250ZW50LWRlc2MnOiAn5qOA5p+l5ZCr5pyJ55u45ZCM5YaF5a6555qE5aSa5Liq5Y+C6ICD5paH54yuJyxcblx0XHRcdCdjaXRlLXNhbWVjb250ZW50LWVycm9yJzogJ+WkmuS4quWPguiAg+aWh+eMruWMheWQq+acieebuOWQjOWGheWuuScsXG5cdFx0XHQnY2l0ZS1yZXBlYXRlZC1kZXNjJzogJ+S9v+eUqOebuOWQjOWQjeWtl+eahOWkmuS4quWPguiAg+aWh+eMricsXG5cdFx0XHQnY2l0ZS1yZXBlYXRlZC1lcnJvcic6ICflpJrkuKrlj4LogIPmlofnjK7kvb/nlKjkuobnm7jlkIzlkI3lrZcnLFxuXHRcdFx0J2NpdGUtdW5kZWZpbmVkLWRlc2MnOiAn5pyq5a6a5LmJ55qE5Y+C6ICD5paH54yuJyxcblx0XHRcdCdjaXRlLXVuZGVmaW5lZC1lcnJvcic6ICfkuIDkuKrlt7Llkb3lkI3nmoTlj4LogIPmlofnjK7lt7Lnu4/kvb/nlKjkvYbmmK/msqHmnInlrprkuYknLFxuXHRcdFx0J2NpdGUtd29yay10b29sdGlwJzogJ+WIiueZu+ivpeS9nOWTgeeahOWHuueJiOeJqeeahOWQjeensOOAguivt+S4jeimgeS9v+eUqOaWnOS9kycsXG5cdFx0XHQnY2l0ZS1uZXdzcGFwZXItdG9vbHRpcCc6ICfliIrnmbvoqbLmlrDogZ7nmoTlh7rniYjnianlkI3np7AnLFxuXHRcdFx0J2NpdGUtc2VyaWVzLXRvb2x0aXAnOiAn5b2T5Lmm57GN5piv5LiA57O75YiX5Ye654mI5ZOB5Lit55qE5YW25Lit5LiA6YOo5Lu95pe25L2/55SoJyxcblx0XHRcdCdjaXRlLXVuaWZpZWQtdG9vbHRpcCc6ICcxOTgw5bm05Luj5LmL5YmN5Lit5Zu95omA5L2/55So55qE5Lmm57GN57yW5Y+3Jyxcblx0XHRcdCdjaXRlLWxheXN1bW1hcnktdG9vbHRpcCc6ICfor6XmlofnjK7nm7jlhbPnmoTmlrDpl7vmiqXpgZPnmoRVUkwnLFxuXHRcdFx0J2NpdGUtbGF5c291cmNlLXRvb2x0aXAnOiAn6K+l5paH54yu55u45YWz55qE5paw6Ze75oql6YGT55qE5Ye65aSEJyxcblx0XHR9KTtcblx0fVxufTtcblxuZXhwb3J0IHtyZWZUb29sYmFyTWVzYWdlc307XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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QUVxSixTQUFTc0MsUUFBUSxLQUFLQyx1QkFBdUIsWUFBWTtBQUNoRjtFQUNEO0FBRUEsTUFBSSxDQUFDdFUsR0FBR3VVLEtBQUs5UCxRQUFRaUUsSUFBSSxnQkFBZ0IsR0FBRztBQUMzQztFQUNEO0FBRUEsTUFBSTdHLFNBQVMyUyxjQUFjLHFDQUFxQyxHQUFHO0FBQ2xFO0VBQ0Q7QUFHQVAsb0JBQWtCO0FBRWxCbkQsaUJBQWU7QUFDZixRQUFBLEdBQUt2UixtQkFBQWtWLFNBQVEsRUFBRTNMLEtBQUt6SCxXQUFXO0FBQ2hDLEdBQUc7IiwKICAibmFtZXMiOiBbImltcG9ydF9leHRfZ2FkZ2V0MiIsICJyZXF1aXJlIiwgImltcG9ydF9leHRfZ2FkZ2V0IiwgImFwaSIsICJpbml0TXdBcGkiLCAiZ2V0TWVzc2FnZSIsICJrZXkiLCAiYXJncyIsICJsZW5ndGgiLCAibXciLCAibWVzc2FnZSIsICJwYXJzZSIsICJwbGFpbiIsICJjaXRlQXJ0aWNsZV9kZWZhdWx0IiwgInJlZlRvb2xiYXJDb25maWciLCAiQ2l0ZVRlbXBsYXRlIiwgIndpbmRvdyIsICJDaXRlVEIiLCAiT3B0aW9ucyIsICJtb250aHMiLCAibW9kYWwiLCAiYXV0b3BhcnNlIiwgImV4cGFuZHRlbXBsYXRlcyIsICJmaWVsZCIsICJpbmNyZW1lbnRfZ3JvdXAiLCAiaW5jcmVtZW50X2J1dHRvbiIsICJhdXRvZmlsbHByb3AiLCAiYXV0b2ZpbGxpZCIsICJ0b29sdGlwIiwgImluaXQiLCAicmVmVG9vbGJhcjIiLCAiJGJvZHkiLCAiRGVmYXVsdE9wdGlvbnMiLCAiZ2V0T3B0aW9uIiwgIm9wdCIsICJVc2VyT3B0aW9ucyIsICJfJCR3aWR0aDIiLCAiJCIsICJkb2N1bWVudCIsICJmaW5kIiwgInRyaWdnZXIiLCAiJHRhcmdldCIsICJ0ZW1saXN0IiwgInQiLCAiVGVtcGxhdGVzIiwgIk9iamVjdCIsICJoYXNPd24iLCAiXyQkd2lkdGgiLCAidGVtIiwgInNmb3JtIiwgImVzY1N0ciIsICJzaG9ydGZvcm0iLCAiYWN0aW9ub2JqIiwgInR5cGUiLCAibW9kdWxlIiwgImNvbmNhdCIsICJkaWFsb2dvYmoiLCAicmVzaXplbWUiLCAidGl0bGUiLCAiaWQiLCAiaHRtbCIsICJnZXRJbml0aWFsIiwgImRpYWxvZyIsICJ3aWR0aCIsICJNYXRoIiwgInJvdW5kIiwgIm9wZW4iLCAiZ2V0T3BlblRlbXBsYXRlIiwgImdldEZvcm0iLCAib24iLCAiZSIsICJwcmV2ZW50RGVmYXVsdCIsICJwcmV2UGFyc2VDbGljayIsICJidXR0b25zIiwgInJlZiIsICJnZXRSZWYiLCAid2lraUVkaXRvciIsICJtb2R1bGVzIiwgInRvb2xiYXIiLCAiZm4iLCAiZG9BY3Rpb24iLCAiZGF0YSIsICJvcHRpb25zIiwgInBvc3QiLCAic2hvd0hpZGVFeHRyYSIsICJ0ZW1wbGF0ZSIsICJkaXYiLCAic2hvdyIsICJ0ZXh0IiwgImhpZGUiLCAicmVzZXRGb3JtIiwgImxhYmVsIiwgInRlbXBsYXRlbmFtZSIsICJhY3Rpb24iLCAicmVmc2VjdGlvbiIsICJzZWN0aW9ucyIsICJjaXRlcyIsICJncm91cHMiLCAidG9vbHMiLCAibGlzdCIsICJuYW1lZHJlZnMiLCAibnJlZnMiLCAiaWNvbiIsICJlbmNvZGVVUklDb21wb25lbnQiLCAic2VjdGlvbiIsICJncm91cCIsICJkZWZhdWx0ZGlhbG9ncyIsICJBamF4X2xvYWRlcl9kZWZhdWx0IiwgImxvYWRSZWZzIiwgInJlZm5hbWUiLCAidmFsIiwgImdldE5hbWVkUmVmIiwgIm9mZiIsICJ1dGlsIiwgImFkZENTUyIsICJtYWluUmVmTGlzdCIsICJyZWZzTG9hZGVkIiwgImlubmVyb25seSIsICJmb3JpbnNlcnQiLCAiaSIsICJqIiwgImciLCAicmVzIiwgInJlZm9iaiIsICJzaG9ydHRhZyIsICJTdHJpbmciLCAidHJpbSIsICJnZXRRdW90ZWRTdHJpbmciLCAicmVmZ3JvdXAiLCAiY29udGVudCIsICJpbmNyZW1lbnRhYmxlcyIsICJmaWVsZHMiLCAiZmllbGRuYW1lIiwgImZpZWxkaWQiLCAicmVwbGFjZSIsICJ0b1N0cmluZyIsICJiYXNpYyIsICJleHRyYSIsICJwdXNoIiwgImdldFBhZ2VUZXh0IiwgImxvYWRSZWZzSW50ZXJuYWwiLCAicmVmc3JlZ2V4IiwgImV4ZWMiLCAic2V0dXBOYW1lZFJlZnMiLCAiY2FsbGJhY2siLCAicG9zdGRhdGEiLCAiY29uZmlnIiwgImdldCIsICJwcm9wIiwgImZvcm1hdCIsICJmb3JtYXR2ZXJzaW9uIiwgInRoZW4iLCAicmVzdGV4dCIsICJ3aWtpdGV4dCIsICJ3Z0FydGljbGVJZCIsICJydnByb3AiLCAicnZzbG90cyIsICJwYWdlaWRzIiwgInJ2ZXhwYW5kdGVtcGxhdGVzIiwgInF1ZXJ5IiwgInBhZ2V0ZXh0IiwgInBhZ2VzIiwgInJldmlzaW9ucyIsICJzbG90cyIsICJtYWluIiwgInNhZmVEZWNvZGVVUklDb21wb25lbnQiLCAicyIsICJkZWNvZGVVUklDb21wb25lbnQiLCAiaW5pdEF1dG9maWxsIiwgIl8kJGF0dHIiLCAiZWxlbWlkIiwgImF0dHIiLCAiYXV0b3R5cGUiLCAidXJsIiwgImNyZWF0ZUVsZW1lbnQiLCAic2V0QXR0cmlidXRlIiwgImhlYWQiLCAiYXBwZW5kIiwgImF1dG9GaWxsIiwgImNsIiwgImNvYXV0aG9ycyIsICJhdXRob3JzIiwgIl8kJGVxJGF0dHIiLCAiY2xhc3NlcyIsICJlcSIsICJzcGxpdCIsICJwYXR0IiwgIl9pdGVyYXRvciIsICJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsICJfc3RlcCIsICJuIiwgImRvbmUiLCAiY2xhc3NfIiwgInZhbHVlIiwgImVyciIsICJmIiwgIl8kJGVxJGF0dHIyIiwgIl9pdGVyYXRvcjIiLCAiX3N0ZXAyIiwgImpvaW4iLCAiZGF0ZSIsICJEVCIsICJEYXRlIiwgInRlc3QiLCAiZm9ybWF0RGF0ZSIsICJqb3VybmFsIiwgInZvbHVtZSIsICJpc3N1ZSIsICJkb2kiLCAicHVibGlzaGVyIiwgImxvY2F0aW9uIiwgImVkaXRpb24iLCAiaXNibiIsICJpc3NuIiwgImxhbmd1YWdlIiwgImNoYXB0ZXIiLCAiaW5jcmVtZW50RmllbGRzIiwgIl8kJGF0dHIyIiwgImN1cnJlbnRyb3ciLCAicGFyZW50cyIsICJwcmV2IiwgImNzcyIsICJkZXRhY2giLCAiaW5jcmVtZW50cyIsICJ0cnMiLCAibWFrZUZvcm1Jbm5lciIsICJyZXZlcnNlIiwgIl9pdGVyYXRvcjMiLCAiX3N0ZXAzIiwgInRyIiwgImFmdGVyIiwgImZpbGxBY2Nlc3NkYXRlIiwgIl8kJGF0dHIzIiwgImRhdGVzdHIiLCAidXNlZGF5IiwgInVzZW1vbnRoIiwgInptb250aCIsICJtb250aCIsICJnZXRVVENNb250aCIsICJ6ZGF0ZSIsICJnZXRVVENEYXRlIiwgImdldFVUQ0Z1bGxZZWFyIiwgIm5hbWVzIiwgInN0dWZmIiwgInNlbGVjdCIsICJiZWZvcmUiLCAicHJldmxhYmVsIiwgInBhcnNlbGFiZWwiLCAibGluayIsICJocmVmIiwgIm1hcmdpbiIsICJkaXNwbGF5IiwgImNvbG9yIiwgIm5hbWVkUmVmU2VsZWN0Q2xpY2siLCAibnJlZlBhcnNlQ2xpY2siLCAiZmlsbE5yZWZQcmV2aWV3IiwgInBhcnNlZCIsICJjaG9pY2UiLCAiX2l0ZXJhdG9yNCIsICJfc3RlcDQiLCAibGFzdG5hbWVkcmVmY2hvaWNlIiwgIl9pdGVyYXRvcjUiLCAiX3N0ZXA1IiwgImZpbGxUZW1wbGF0ZVByZXZpZXciLCAic2V0dGluZyIsICJzcSIsICJkcSIsICJmaXhTdHIiLCAic2xpY2UiLCAidG9VcHBlckNhc2UiLCAicmF3IiwgIl90ZW1wbGF0ZU9iamVjdCIsICJfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsIiwgIl90ZW1wbGF0ZU9iamVjdDIiLCAiZGlhbG9ncyIsICJjaXRlRm9ybVRkIiwgImFkZF9kZWZhdWx0IiwgImNhbGVuZGFyX2RlZmF1bHQiLCAic2VhcmNoX2RlZmF1bHQiLCAicmVmVG9vbGJhckJhc2UiLCAiX3dpbmRvdyIsICJjb25zdHJ1Y3RvciIsICJiYXNpY2ZpZWxkcyIsICJleHBhbmRlZGZpZWxkcyIsICJpbmNyc2V0dXAiLCAiYXV0b2ZpbGxzIiwgIl9pdGVyYXRvcjYiLCAiZW50cmllcyIsICJfc3RlcDYiLCAiZmllbGRvYmoiLCAibGFiZWxmaWVsZCIsICJhZCIsICJpbSIsICJzZXR1cCIsICJpbmNydmFsIiwgImF1dG9kYXRlRmllbGRzIiwgImluY2x1ZGVzIiwgImluY3J0eXBlIiwgImlucHV0IiwgInRhYmluZGV4IiwgInN0eWxlIiwgImNsYXNzbmFtZSIsICJhZGRDbGFzcyIsICJ0ZDEiLCAidGQyIiwgIm5lZWRzZXR1cCIsICJrZXlzIiwgIl9pdGVyYXRvcjciLCAiX3N0ZXA3IiwgImF1dG9maWxsIiwgImhpZGRlbiIsICJmb3JtMSIsICJfaXRlcmF0b3I4IiwgIl9zdGVwOCIsICJmb3JtMiIsICJfaXRlcmF0b3I5IiwgIl9zdGVwOSIsICJmb3JtMyIsICIkdHIiLCAiJHRkMSIsICIkbGFiZWwxIiwgImlucHV0MSIsICJ0ZDMiLCAibGFiZWwyIiwgInRkNCIsICJpbnB1dDIiLCAiZXh0cmFzIiwgInNwYW4xIiwgInBhZGRpbmciLCAic3BhbjIiLCAicmVmVG9vbGJhck1lc2FnZXMiLCAid2dVc2VyTGFuZ3VhZ2UiLCAibWVzc2FnZXMiLCAic2V0IiwgIndnQWN0aW9uIiwgIndnUGFnZUNvbnRlbnRNb2RlbCIsICJ1c2VyIiwgInF1ZXJ5U2VsZWN0b3IiLCAiZ2V0Qm9keSJdCn0K +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL0VkaXR0b29scy1yZWZUb29sYmFyL0VkaXR0b29scy1yZWZUb29sYmFyLnRzIiwgInNyYy9FZGl0dG9vbHMtcmVmVG9vbGJhci9tb2R1bGVzL3V0aWwvYXBpLnRzIiwgInNyYy9FZGl0dG9vbHMtcmVmVG9vbGJhci9tb2R1bGVzL3V0aWwvZ2V0TWVzc2FnZS50cyIsICJzcmMvRWRpdHRvb2xzLXJlZlRvb2xiYXIvaW1hZ2VzL2NpdGVBcnRpY2xlLnN2ZyIsICJzcmMvRWRpdHRvb2xzLXJlZlRvb2xiYXIvbW9kdWxlcy9SZWZUb29sYmFyQ29uZmlnLmpzIiwgInNyYy9FZGl0dG9vbHMtcmVmVG9vbGJhci9tb2R1bGVzL1JlZlRvb2xiYXIyLjAuanMiLCAic3JjL0VkaXR0b29scy1yZWZUb29sYmFyL0VkaXR0b29scy1yZWZUb29sYmFyLm1vZHVsZS5sZXNzIiwgInNyYy9FZGl0dG9vbHMtcmVmVG9vbGJhci9pbWFnZXMvYWRkLnN2ZyIsICJzcmMvRWRpdHRvb2xzLXJlZlRvb2xiYXIvaW1hZ2VzL2NhbGVuZGFyLnN2ZyIsICJzcmMvRWRpdHRvb2xzLXJlZlRvb2xiYXIvaW1hZ2VzL3NlYXJjaC5zdmciLCAic3JjL0VkaXR0b29scy1yZWZUb29sYmFyL21vZHVsZXMvUmVmVG9vbGJhckJhc2UuanMiLCAic3JjL0VkaXR0b29scy1yZWZUb29sYmFyL21vZHVsZXMvbWVzc2FnZXMudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB7Z2V0Qm9keX0gZnJvbSAnZXh0LmdhZGdldC5VdGlsJztcbmltcG9ydCB7cmVmVG9vbGJhcjJ9IGZyb20gJy4vbW9kdWxlcy9SZWZUb29sYmFyMi4wJztcbmltcG9ydCB7cmVmVG9vbGJhckJhc2V9IGZyb20gJy4vbW9kdWxlcy9SZWZUb29sYmFyQmFzZSc7XG5pbXBvcnQge3JlZlRvb2xiYXJNZXNhZ2VzfSBmcm9tICcuL21vZHVsZXMvbWVzc2FnZXMnO1xuXG4vKipcbiAqIFJlZlRvb2xiYXJcbiAqXG4gKiBBZGRzIHRvb2xzIGZvciBjaXRpbmcgcmVmZXJlbmNlcyB0byB0aGUgZWRpdCB0b29sYmFyLlxuICogT25lIG9mIHR3byBwb3NzaWJsZSB2ZXJzaW9ucyB3aWxsIGxvYWQgKFJlZnRvb2xiYXIgMS4wIG9yIFJlZnRvb2xiYXIgMS4wKVxuICogZGVwZW5kaW5nIG9uIHRoZSB1c2VyIHByZWZlcmVuY2VzICh0aGUgdXNlYmV0YXRvb2xiYXIgcHJlZmVyZW5jZSkuXG4gKlxuICogQGF1dGhvciBNci5aLW1hbiwgS2FsZGFyaVxuICovXG4oKCk6IHZvaWQgPT4ge1xuXHRjb25zdCB7d2dBY3Rpb24sIHdnUGFnZUNvbnRlbnRNb2RlbH0gPSBtdy5jb25maWcuZ2V0KCk7XG5cblx0Ly8gT25seSBleGVjdXRlIHdoZW4gZWRpdGluZy9wcmV2aWV3aW5nIHdpa2l0ZXh0IHBhZ2VzXG5cdGlmICghWydlZGl0JywgJ3N1Ym1pdCddLmluY2x1ZGVzKHdnQWN0aW9uKSB8fCB3Z1BhZ2VDb250ZW50TW9kZWwgIT09ICd3aWtpdGV4dCcpIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRpZiAoIW13LnVzZXIub3B0aW9ucy5nZXQoJ3VzZWJldGF0b29sYmFyJykpIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRpZiAoZG9jdW1lbnQucXVlcnlTZWxlY3RvcigndGV4dGFyZWFbbmFtZT13cFRleHRib3gxXVtyZWFkb25seV0nKSkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdC8vIExvYWQgbG9jYWwgbWVzc2FnZXMuXG5cdHJlZlRvb2xiYXJNZXNhZ2VzKCk7XG5cdC8vIExvYWQgbWFpbiBmdW5jdGlvbnNcblx0cmVmVG9vbGJhckJhc2UoKTtcblx0dm9pZCBnZXRCb2R5KCkudGhlbihyZWZUb29sYmFyMik7XG59KSgpO1xuIiwgImltcG9ydCB7aW5pdE13QXBpfSBmcm9tICdleHQuZ2FkZ2V0LlV0aWwnO1xuXG5jb25zdCBhcGk6IG13LkFwaSA9IGluaXRNd0FwaSgnUmVmVG9vbGJhci8yLjAnKTtcblxuZXhwb3J0IHthcGl9O1xuIiwgImNvbnN0IGdldE1lc3NhZ2UgPSAoa2V5OiBzdHJpbmcsIC4uLmFyZ3M6IHN0cmluZ1tdKTogc3RyaW5nID0+IHtcblx0Ly8gTWVzc2FnZXMgdGhhdCBjYW4gYmUgdXNlZCBoZXJlOlxuXHQvLyAqIHNlZSBtZXNzYWdlcy50c1xuXHQvLyAqIGZvciBtb3JlIGluZm9ybWF0aW9uXG5cdHJldHVybiBhcmdzLmxlbmd0aCA/IG13Lm1lc3NhZ2Uoa2V5LCAuLi5hcmdzKS5wYXJzZSgpIDogbXcubWVzc2FnZShrZXkpLnBsYWluKCk7XG59O1xuXG5leHBvcnQge2dldE1lc3NhZ2V9O1xuIiwgIjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj48cGF0aCBkPVwiTTcgMTJoOXYtMUg3em0wIDJoOXYtMUg3em0wIDJoOXYtMUg3em00LTlIN3YxaDR6bTAgMkg3djFoNHptMC00SDd2MWg0em01LTJoMnYxNkg4Yy0xLjcgMC0zLTEuMy0zLTNWM2g4djdsMS41LTIgMS41IDJ6XCIvPjwvc3ZnPiIsICIvKiBlc2xpbnQtZGlzYWJsZSBjYW1lbGNhc2UsIG5vLW5ldyAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50ICovXG4vLyBAdHMtbm9jaGVja1xuLyoqXG4gKiBTaXRld2lkZSBvcHRpb25zIGZvciB0aGUgdGhlIENpdGUgdG9vbGJhciBidXR0b246XG4gKiBBbGwgb3B0aW9ucyBzaG91bGQgYmUgc3BlY2lmaWVkXG4gKlxuICogXCJkYXRlIGZvcm1hdFwiIHNldHMgdGhlIGRhdGUgZm9ybWF0IHVzZWQgZm9yIHRoZSBmdW5jdGlvbiB0byBpbnNlcnQgdGhlIGN1cnJlbnQgZGF0ZVxuICogQ3VycmVudCBhdmFpbGFibGUgb3B0aW9uczpcbiAqIGRhdGUgLSB0aGUgZGF5IG9mIHRoZSBtb250aFxuICogemRhdGUgLSBkYXkgb2YgdGhlIG1vbnRoLCB6ZXJvIHBhZGRlZCB0byAyIGRpZ2l0c1xuICogbW9udGhuYW1lIC0gVGhlIG1vbnRoIG5hbWVcbiAqIG1vbnRoIC0gVGhlIG51bWJlcmljIG1vbnRoICgxLTEyKVxuICogem1vbnRoIC0gbnVtZXJpYyBtb250aCwgemVybyBwYWRkZWQgdG8gMiBkaWdpdHNcbiAqIHllYXIgLSBUaGUgZnVsbCB5ZWFyICg0IGRpZ2l0cylcbiAqXG4gKiBcImF1dG9kYXRlIGZpZWxkc1wiIGlzIGEgbGlzdCBvZiB0ZW1wbGF0ZSBmaWVsZHMgdGhhdCBzaG91bGQgaGF2ZSBhIGJ1dHRvbiB0byBpbnNlcnQgdGhlIGN1cnJlbnQgZGF0ZVxuICpcbiAqIFwibW9udGhzXCIgaXMgYSBsaXN0IG9mIGxvY2FsaXplZCBtb250aCBuYW1lc1xuICpcbiAqIFwibW9kYWxcIiAtIGlmIHRydWUsIHRoZSBkaWFsb2dzIHdpbGwgYmUgbW9kYWwgd2luZG93cywgYmxvY2tpbmcgYWNjZXNzIHRvIHRoZSByZXN0IG9mIHRoZSB3aW5kb3cuXG4gKiBBbGwgZGlhbG9ncyBpbiB0aGUgdG9vbGJhciBhcmUgbW9kYWwgYnkgZGVmYXVsdFxuICpcbiAqIFwiYXV0b3BhcnNlXCIgLSBpZiB0cnVlLCBwcmV2aWV3aW5nIGEgcmVmIHdpbGwgYXV0b21hdGljYWxseSB0cmlnZ2VyIGEgcHJldmlldyBvZiB0aGUgcGFyc2VkIHdpa2l0ZXh0LlxuICogSXQgaXMgbm90IHJlY29tbWVuZGVkIHRvIHNldCB0aGlzIHRvIHRydWUgYXMgYSBnbG9iYWwgc2V0dGluZyBhcyBpdCBtYXkgc2xvdyB0aGUgc2NyaXB0IGRvd24gZm9yXG4gKiBwZW9wbGUgd2l0aCBzbG93IGNvbm5lY3Rpb25zLlxuICpcbiAqIFwiZXhwYW5kdGVtcGxhdGVzXCIgLSBpZiB0cnVlLCB0ZW1wbGF0ZXMgYW5kIHBhcnNlciBmdW5jdGlvbnMgd2lsbCBiZSBleHBhbmRlZCB3aGVuIGdldHRpbmcgcGFnZSB0ZXh0XG4gKiAodGVtcGxhdGVzIGluc2lkZSBvZiByZWYgdGFncyB3aWxsIG5vdCBiZSBleHBhbmRlZCkuIFRoaXMgd2lsbCBhbGxvdyByZWZlcmVuY2VzIGluc2lkZSBvZiB0ZW1wbGF0ZXMgb3JcbiAqIHJlZmVyZW5jZXMgdXNpbmcge3sjdGFnOnJlZn19IHRvIGJlIGxpc3RlZCBpbiB0aGUgbmFtZWQgcmVmcyBkaWFsb2cgYW5kIHNlYXJjaGVkIGJ5IGVycm9yIGNoZWNrcy5cbiAqIFRoaXMgbWF5IHNsb3cgbG9hZGluZyB0aGUgbmFtZWQgcmVmcyBhbmQgZXJyb3IgY2hlY2sgZGlhbG9ncy5cbiAqL1xuY29uc3QgcmVmVG9vbGJhckNvbmZpZyA9ICgpID0+IHtcblx0Y29uc3Qge0NpdGVUZW1wbGF0ZX0gPSB3aW5kb3c7XG5cblx0Q2l0ZVRCLk9wdGlvbnMgPSB7XG5cdFx0J2RhdGUgZm9ybWF0JzogJzx5ZWFyPi08em1vbnRoPi08emRhdGU+Jyxcblx0XHQnYXV0b2RhdGUgZmllbGRzJzogWydhY2Nlc3NkYXRlJ10sXG5cdFx0bW9udGhzOiBbJzHmnIgnLCAnMuaciCcsICcz5pyIJywgJzTmnIgnLCAnNeaciCcsICc25pyIJywgJzfmnIgnLCAnOOaciCcsICc55pyIJywgJzEw5pyIJywgJzEx5pyIJywgJzEy5pyIJ10sXG5cdFx0bW9kYWw6IHRydWUsXG5cdFx0YXV0b3BhcnNlOiB0cnVlLFxuXHRcdGV4cGFuZHRlbXBsYXRlczogZmFsc2UsXG5cdH07XG5cblx0Ly8gQ2l0ZSB0ZW1wbGF0ZSBkZWZpbml0aW9uc1xuXHRuZXcgQ2l0ZVRlbXBsYXRlKFxuXHRcdCdjaXRlIHdlYicsXG5cdFx0J3dlYicsXG5cdFx0W1xuXHRcdFx0Ly8gQmFzaWMgZmllbGRzXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAnYXV0aG9yPE4+Jyxcblx0XHRcdFx0aW5jcmVtZW50X2dyb3VwOiAnYXV0aG9yX2FsdCcsXG5cdFx0XHRcdGluY3JlbWVudF9idXR0b246IHRydWUsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ3RpdGxlJyxcblx0XHRcdFx0YXV0b2ZpbGxwcm9wOiAndGl0bGUnLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICd1cmwnLFxuXHRcdFx0XHRhdXRvZmlsbGlkOiAndXJsJyxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAnd2Vic2l0ZScsXG5cdFx0XHRcdGF1dG9maWxscHJvcDogJ2pvdXJuYWwnLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdwdWJsaXNoZXInLFxuXHRcdFx0XHRhdXRvZmlsbHByb3A6ICdwdWJsaXNoZXInLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdhY2Nlc3NkYXRlJyxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAncmVmJyxcblx0XHRcdFx0dG9vbHRpcDogJ2NpdGUtcmVmLXRvb2x0aXAnLFxuXHRcdFx0fSxcblx0XHRdLFxuXHRcdFtcblx0XHRcdC8vIEV4cGFuZGVkIGZpZWxkc1xuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ2F1dGhvcmxpbms8Tj4nLFxuXHRcdFx0XHR0b29sdGlwOiAnY2l0ZS1hdXRob3JsaW5rLXRvb2x0aXAnLFxuXHRcdFx0XHRpbmNyZW1lbnRfZ3JvdXA6ICdhdXRob3JsaW5rJyxcblx0XHRcdFx0aW5jcmVtZW50X2J1dHRvbjogdHJ1ZSxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAnbGFzdDxOPicsXG5cdFx0XHRcdGF1dG9maWxscHJvcDogJ2xhc3QtaW5jcicsXG5cdFx0XHRcdGluY3JlbWVudF9ncm91cDogJ2F1dGhvcicsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ2ZpcnN0PE4+Jyxcblx0XHRcdFx0YXV0b2ZpbGxwcm9wOiAnZmlyc3QtaW5jcicsXG5cdFx0XHRcdGluY3JlbWVudF9ncm91cDogJ2F1dGhvcicsXG5cdFx0XHRcdGluY3JlbWVudF9idXR0b246IHRydWUsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ2xvY2F0aW9uJyxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAncGFnZScsXG5cdFx0XHRcdHRvb2x0aXA6ICdjaXRlLXBhZ2UtdG9vbHRpcCcsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ3BhZ2VzJyxcblx0XHRcdFx0YXV0b2ZpbGxwcm9wOiAncGFnZXMnLFxuXHRcdFx0XHR0b29sdGlwOiAnY2l0ZS1wYWdlcy10b29sdGlwJyxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAnbGFuZ3VhZ2UnLFxuXHRcdFx0XHRhdXRvZmlsbHByb3A6ICdsYW5ndWFnZScsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ2Zvcm1hdCcsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ2RvaScsXG5cdFx0XHRcdGF1dG9maWxsaWQ6ICdkb2knLFxuXHRcdFx0XHRhdXRvZmlsbHByb3A6ICdkb2knLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdkYXRlJyxcblx0XHRcdFx0YXV0b2ZpbGxwcm9wOiAnZGF0ZScsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ3F1b3RlJyxcblx0XHRcdH0sXG5cdFx0XVxuXHQpO1xuXHRuZXcgQ2l0ZVRlbXBsYXRlKFxuXHRcdCdjaXRlIG5ld3MnLFxuXHRcdCduZXdzJyxcblx0XHRbXG5cdFx0XHQvLyBCYXNpYyBmaWVsZHNcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdhdXRob3I8Tj4nLFxuXHRcdFx0XHRpbmNyZW1lbnRfZ3JvdXA6ICdhdXRob3JfYWx0Jyxcblx0XHRcdFx0aW5jcmVtZW50X2J1dHRvbjogdHJ1ZSxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAndGl0bGUnLFxuXHRcdFx0XHRhdXRvZmlsbHByb3A6ICd0aXRsZScsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ3VybCcsXG5cdFx0XHRcdGF1dG9maWxsaWQ6ICd1cmwnLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdhY2Nlc3NkYXRlJyxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAnd29yaycsXG5cdFx0XHRcdHRvb2x0aXA6ICdjaXRlLXdvcmstdG9vbHRpcCcsXG5cdFx0XHRcdGF1dG9maWxscHJvcDogJ2pvdXJuYWwnLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdhZ2VuY3knLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdpc3N1ZScsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ3B1Ymxpc2hlcicsXG5cdFx0XHRcdGF1dG9maWxscHJvcDogJ3B1Ymxpc2hlcicsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ2RhdGUnLFxuXHRcdFx0XHRhdXRvZmlsbHByb3A6ICdkYXRlJyxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAncmVmJyxcblx0XHRcdFx0dG9vbHRpcDogJ2NpdGUtcmVmLXRvb2x0aXAnLFxuXHRcdFx0fSxcblx0XHRdLFxuXHRcdFtcblx0XHRcdC8vIEV4cGFuZGVkIGZpZWxkc1xuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ2F1dGhvcmxpbms8Tj4nLFxuXHRcdFx0XHR0b29sdGlwOiAnY2l0ZS1hdXRob3JsaW5rLXRvb2x0aXAnLFxuXHRcdFx0XHRpbmNyZW1lbnRfZ3JvdXA6ICdhdXRob3JsaW5rJyxcblx0XHRcdFx0aW5jcmVtZW50X2J1dHRvbjogdHJ1ZSxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAnbGFzdDxOPicsXG5cdFx0XHRcdGF1dG9maWxscHJvcDogJ2xhc3QtaW5jcicsXG5cdFx0XHRcdGluY3JlbWVudF9ncm91cDogJ2F1dGhvcicsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ2ZpcnN0PE4+Jyxcblx0XHRcdFx0YXV0b2ZpbGxwcm9wOiAnZmlyc3QtaW5jcicsXG5cdFx0XHRcdGluY3JlbWVudF9ncm91cDogJ2F1dGhvcicsXG5cdFx0XHRcdGluY3JlbWVudF9idXR0b246IHRydWUsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ2xvY2F0aW9uJyxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAncGFnZScsXG5cdFx0XHRcdHRvb2x0aXA6ICdjaXRlLXBhZ2UtdG9vbHRpcCcsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ3BhZ2VzJyxcblx0XHRcdFx0YXV0b2ZpbGxwcm9wOiAncGFnZXMnLFxuXHRcdFx0XHR0b29sdGlwOiAnY2l0ZS1wYWdlcy10b29sdGlwJyxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAnbGFuZ3VhZ2UnLFxuXHRcdFx0XHRhdXRvZmlsbHByb3A6ICdsYW5ndWFnZScsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ2Zvcm1hdCcsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ2RvaScsXG5cdFx0XHRcdGF1dG9maWxsaWQ6ICdkb2knLFxuXHRcdFx0XHRhdXRvZmlsbHByb3A6ICdkb2knLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdxdW90ZScsXG5cdFx0XHR9LFxuXHRcdF1cblx0KTtcblx0bmV3IENpdGVUZW1wbGF0ZShcblx0XHQnY2l0ZSBib29rJyxcblx0XHQnYm9vaycsXG5cdFx0W1xuXHRcdFx0Ly8gQmFzaWMgZmllbGRzXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAnYXV0aG9yPE4+Jyxcblx0XHRcdFx0aW5jcmVtZW50X2dyb3VwOiAnYXV0aG9yX2FsdCcsXG5cdFx0XHRcdGluY3JlbWVudF9idXR0b246IHRydWUsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ2NvYXV0aG9ycycsXG5cdFx0XHRcdGF1dG9maWxscHJvcDogJ2NvYXV0aG9ycycsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ2VkaXRvcicsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ3RpdGxlJyxcblx0XHRcdFx0YXV0b2ZpbGxwcm9wOiAndGl0bGUnLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdkYXRlJyxcblx0XHRcdFx0YXV0b2ZpbGxwcm9wOiAneWVhcicsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ3B1Ymxpc2hlcicsXG5cdFx0XHRcdGF1dG9maWxscHJvcDogJ3B1Ymxpc2hlcicsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ2xvY2F0aW9uJyxcblx0XHRcdFx0YXV0b2ZpbGxwcm9wOiAnbG9jYXRpb24nLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdpc2JuJyxcblx0XHRcdFx0LyogXCJhdXRvZmlsbGlkXCI6XCJpc2JuXCIsICovIGF1dG9maWxscHJvcDogJ2lzYm4nLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdwYWdlJyxcblx0XHRcdFx0dG9vbHRpcDogJ2NpdGUtcGFnZS10b29sdGlwJyxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAncGFnZXMnLFxuXHRcdFx0XHRhdXRvZmlsbHByb3A6ICdwYWdlcycsXG5cdFx0XHRcdHRvb2x0aXA6ICdjaXRlLXBhZ2VzLXRvb2x0aXAnLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdlZGl0aW9uJyxcblx0XHRcdFx0YXV0b2ZpbGxwcm9wOiAnZWRpdGlvbicsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ3VybCcsXG5cdFx0XHRcdGF1dG9maWxsaWQ6ICd1cmwnLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdhY2Nlc3NkYXRlJyxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAncmVmJyxcblx0XHRcdFx0dG9vbHRpcDogJ2NpdGUtcmVmLXRvb2x0aXAnLFxuXHRcdFx0fSxcblx0XHRdLFxuXHRcdFtcblx0XHRcdC8vIEV4cGFuZGVkIGZpZWxkc1xuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ2xhc3Q8Tj4nLFxuXHRcdFx0XHRhdXRvZmlsbHByb3A6ICdsYXN0LWluY3InLFxuXHRcdFx0XHRpbmNyZW1lbnRfZ3JvdXA6ICdhdXRob3InLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdmaXJzdDxOPicsXG5cdFx0XHRcdGF1dG9maWxscHJvcDogJ2ZpcnN0LWluY3InLFxuXHRcdFx0XHRpbmNyZW1lbnRfZ3JvdXA6ICdhdXRob3InLFxuXHRcdFx0XHRpbmNyZW1lbnRfYnV0dG9uOiB0cnVlLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdhdXRob3JsaW5rPE4+Jyxcblx0XHRcdFx0dG9vbHRpcDogJ2NpdGUtYXV0aG9ybGluay10b29sdGlwJyxcblx0XHRcdFx0aW5jcmVtZW50X2dyb3VwOiAnYXV0aG9ybGluaycsXG5cdFx0XHRcdGluY3JlbWVudF9idXR0b246IHRydWUsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ2VkaXRvcjxOPi1sYXN0Jyxcblx0XHRcdFx0aW5jcmVtZW50X2dyb3VwOiAnZWRpdG9yJyxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAnZWRpdG9yPE4+LWZpcnN0Jyxcblx0XHRcdFx0aW5jcmVtZW50X2dyb3VwOiAnZWRpdG9yJyxcblx0XHRcdFx0aW5jcmVtZW50X2J1dHRvbjogdHJ1ZSxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAnZWRpdG9yPE4+LWxpbmsnLFxuXHRcdFx0XHRpbmNyZW1lbnRfZ3JvdXA6ICdlZGl0b3JsaW5rJyxcblx0XHRcdFx0aW5jcmVtZW50X2J1dHRvbjogdHJ1ZSxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAnbGFuZ3VhZ2UnLFxuXHRcdFx0XHRhdXRvZmlsbHByb3A6ICdsYW5ndWFnZScsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ2Zvcm1hdCcsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ2NoYXB0ZXInLFxuXHRcdFx0XHRhdXRvZmlsbHByb3A6ICdjaGFwdGVyJyxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAncXVvdGUnLFxuXHRcdFx0fSxcblx0XHRdXG5cdCk7XG5cdG5ldyBDaXRlVGVtcGxhdGUoXG5cdFx0J2NpdGUgam91cm5hbCcsXG5cdFx0J2pvdXJuYWwnLFxuXHRcdFtcblx0XHRcdC8vIEJhc2ljIGZpZWxkc1xuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ2F1dGhvcjxOPicsXG5cdFx0XHRcdGluY3JlbWVudF9ncm91cDogJ2F1dGhvcl9hbHQnLFxuXHRcdFx0XHRpbmNyZW1lbnRfYnV0dG9uOiB0cnVlLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdjb2F1dGhvcnMnLFxuXHRcdFx0XHRhdXRvZmlsbHByb3A6ICdjb2F1dGhvcnMnLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICd0aXRsZScsXG5cdFx0XHRcdGF1dG9maWxscHJvcDogJ3RpdGxlJyxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAnam91cm5hbCcsXG5cdFx0XHRcdGF1dG9maWxscHJvcDogJ2pvdXJuYWwnLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdkYXRlJyxcblx0XHRcdFx0YXV0b2ZpbGxwcm9wOiAnZGF0ZScsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ3ZvbHVtZScsXG5cdFx0XHRcdGF1dG9maWxscHJvcDogJ3ZvbHVtZScsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ2lzc3VlJyxcblx0XHRcdFx0YXV0b2ZpbGxwcm9wOiAnaXNzdWUnLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdwYWdlJyxcblx0XHRcdFx0dG9vbHRpcDogJ2NpdGUtcGFnZS10b29sdGlwJyxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAncGFnZXMnLFxuXHRcdFx0XHRhdXRvZmlsbHByb3A6ICdwYWdlcycsXG5cdFx0XHRcdHRvb2x0aXA6ICdjaXRlLXBhZ2VzLXRvb2x0aXAnLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdkb2knLFxuXHRcdFx0XHRhdXRvZmlsbGlkOiAnZG9pJyxcblx0XHRcdFx0YXV0b2ZpbGxwcm9wOiAnZG9pJyxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAncG1pZCcsXG5cdFx0XHRcdGF1dG9maWxsaWQ6ICdwbWlkJyxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAndXJsJyxcblx0XHRcdFx0YXV0b2ZpbGxpZDogJ3VybCcsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ2FjY2Vzc2RhdGUnLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdyZWYnLFxuXHRcdFx0XHR0b29sdGlwOiAnY2l0ZS1yZWYtdG9vbHRpcCcsXG5cdFx0XHR9LFxuXHRcdF0sXG5cdFx0W1xuXHRcdFx0Ly8gRXhwYW5kZWQgZmllbGRzXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAnYXV0aG9ybGluazxOPicsXG5cdFx0XHRcdHRvb2x0aXA6ICdjaXRlLWF1dGhvcmxpbmstdG9vbHRpcCcsXG5cdFx0XHRcdGluY3JlbWVudF9ncm91cDogJ2F1dGhvcmxpbmsnLFxuXHRcdFx0XHRpbmNyZW1lbnRfYnV0dG9uOiB0cnVlLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdsYXN0PE4+Jyxcblx0XHRcdFx0YXV0b2ZpbGxwcm9wOiAnbGFzdC1pbmNyJyxcblx0XHRcdFx0aW5jcmVtZW50X2dyb3VwOiAnYXV0aG9yJyxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAnZmlyc3Q8Tj4nLFxuXHRcdFx0XHRhdXRvZmlsbHByb3A6ICdmaXJzdC1pbmNyJyxcblx0XHRcdFx0aW5jcmVtZW50X2dyb3VwOiAnYXV0aG9yJyxcblx0XHRcdFx0aW5jcmVtZW50X2J1dHRvbjogdHJ1ZSxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAnZWRpdG9yPE4+LWxhc3QnLFxuXHRcdFx0XHRpbmNyZW1lbnRfZ3JvdXA6ICdlZGl0b3InLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdlZGl0b3I8Tj4tZmlyc3QnLFxuXHRcdFx0XHRpbmNyZW1lbnRfZ3JvdXA6ICdlZGl0b3InLFxuXHRcdFx0XHRpbmNyZW1lbnRfYnV0dG9uOiB0cnVlLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdlZGl0b3I8Tj4tbGluaycsXG5cdFx0XHRcdGluY3JlbWVudF9ncm91cDogJ2VkaXRvcmxpbmsnLFxuXHRcdFx0XHRpbmNyZW1lbnRfYnV0dG9uOiB0cnVlLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdzZXJpZXMnLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdhdCcsXG5cdFx0XHRcdHRvb2x0aXA6ICdjaXRlLWF0LXRvb2x0aXAnLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICd0cmFucy10aXRsZScsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ3B1Ymxpc2hlcicsXG5cdFx0XHRcdGF1dG9maWxscHJvcDogJ3B1Ymxpc2hlcicsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ2xvY2F0aW9uJyxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAnbGFuZ3VhZ2UnLFxuXHRcdFx0XHRhdXRvZmlsbHByb3A6ICdsYW5ndWFnZScsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ2Zvcm1hdCcsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ2lzc24nLFxuXHRcdFx0XHRhdXRvZmlsbHByb3A6ICdpc3NuJyxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAncG1jJyxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAnb2NsYycsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ2JpYmNvZGUnLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdpZCcsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ3F1b3RlJyxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAncG9zdHNjcmlwdCcsXG5cdFx0XHRcdHRvb2x0aXA6ICdjaXRlLXBvc3RzY3JpcHQtdG9vbHRpcCcsXG5cdFx0XHR9LFxuXHRcdF1cblx0KTtcblx0bmV3IENpdGVUZW1wbGF0ZShcblx0XHQnY2l0ZSBjb25mZXJlbmNlJyxcblx0XHQnY29uZmVyZW5jZScsXG5cdFx0W1xuXHRcdFx0Ly8gQmFzaWMgZmllbGRzXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAnYXV0aG9yJyxcblx0XHRcdFx0YXV0b2ZpbGxwcm9wOiAnYXV0aG9yMScsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ2NvYXV0aG9ycycsXG5cdFx0XHRcdGF1dG9maWxscHJvcDogJ2NvYXV0aG9ycycsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ3RpdGxlJyxcblx0XHRcdFx0YXV0b2ZpbGxwcm9wOiAndGl0bGUnLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdjb25mZXJlbmNlJyxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAnY29uZmVyZW5jZXVybCcsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ2Jvb2t0aXRsZScsXG5cdFx0XHRcdGF1dG9maWxscHJvcDogJ2pvdXJuYWwnLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdkYXRlJyxcblx0XHRcdFx0YXV0b2ZpbGxwcm9wOiAnZGF0ZScsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ3llYXInLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdtb250aCcsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ3ZvbHVtZScsXG5cdFx0XHRcdGF1dG9maWxscHJvcDogJ3ZvbHVtZScsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ3B1Ymxpc2hlcicsXG5cdFx0XHRcdGF1dG9maWxscHJvcDogJ3B1Ymxpc2hlcicsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ2xvY2F0aW9uJyxcblx0XHRcdFx0YXV0b2ZpbGxwcm9wOiAnbG9jYXRpb24nLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdpc2JuJyAvKiAsIFwiYXV0b2ZpbGxpZFwiOlwiaXNiblwiICovLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdwYWdlcycsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ2RvaScsXG5cdFx0XHRcdGF1dG9maWxsaWQ6ICdkb2knLFxuXHRcdFx0XHRhdXRvZmlsbHByb3A6ICdkb2knLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdwbWlkJyxcblx0XHRcdFx0YXV0b2ZpbGxpZDogJ3BtaWQnLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICd1cmwnLFxuXHRcdFx0XHRhdXRvZmlsbGlkOiAndXJsJyxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAnYWNjZXNzZGF0ZScsXG5cdFx0XHRcdHRvb2x0aXA6ICdjaXRlLWFjY2Vzc2RhdGUtdG9vbHRpcCcsXG5cdFx0XHR9LFxuXHRcdF0sXG5cdFx0W1xuXHRcdFx0Ly8gRXhwYW5kZWQgZmllbGRzXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAnbGFzdCcsXG5cdFx0XHRcdGF1dG9maWxscHJvcDogJ2xhc3QxJyxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAnZmlyc3QnLFxuXHRcdFx0XHRhdXRvZmlsbHByb3A6ICdmaXJzdDEnLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdhdXRob3JsaW5rJyxcblx0XHRcdFx0dG9vbHRpcDogJ2NpdGUtYXV0aG9ybGluay10b29sdGlwJyxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAnZWRpdG9yJyxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAnb3RoZXJzJyxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAnZWRpdGlvbicsXG5cdFx0XHRcdGF1dG9maWxscHJvcDogJ2VkaXRpb24nLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdsYW5ndWFnZScsXG5cdFx0XHRcdGF1dG9maWxscHJvcDogJ2xhbmd1YWdlJyxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAnZm9ybWF0Jyxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAnaXNzbicsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ29jbGMnLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdpZCcsXG5cdFx0XHRcdHRvb2x0aXA6ICdjaXRlLWlkLXRvb2x0aXAnLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdxdW90ZScsXG5cdFx0XHR9LFxuXHRcdF1cblx0KTtcblx0bmV3IENpdGVUZW1wbGF0ZShcblx0XHQnY2l0ZSBlbmN5Y2xvcGVkaWEnLFxuXHRcdCdlbmN5Y2xvcGVkaWEnLFxuXHRcdFtcblx0XHRcdC8vIEJhc2ljIGZpZWxkc1xuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ2F1dGhvcicsXG5cdFx0XHRcdGF1dG9maWxscHJvcDogJ2F1dGhvcjEnLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICd0aXRsZScsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ2VkaXRvcicsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ2VuY3ljbG9wZWRpYScsXG5cdFx0XHRcdGF1dG9maWxscHJvcDogJ3RpdGxlJyxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAndm9sdW1lJyxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAneWVhcicsXG5cdFx0XHRcdGF1dG9maWxscHJvcDogJ3llYXInLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdwdWJsaXNoZXInLFxuXHRcdFx0XHRhdXRvZmlsbHByb3A6ICdwdWJsaXNoZXInLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdsb2NhdGlvbicsXG5cdFx0XHRcdGF1dG9maWxscHJvcDogJ2xvY2F0aW9uJyxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAnaXNibicgLyogLCBcImF1dG9maWxsaWRcIjpcImlzYm5cIiAqLyxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAncGFnZXMnLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICd1cmwnLFxuXHRcdFx0fSxcblx0XHRdLFxuXHRcdFtcblx0XHRcdC8vIEV4cGFuZGVkIGZpZWxkc1xuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ2xhc3QnLFxuXHRcdFx0XHRhdXRvZmlsbHByb3A6ICdsYXN0MScsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ2ZpcnN0Jyxcblx0XHRcdFx0YXV0b2ZpbGxwcm9wOiAnZmlyc3QxJyxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAnYXV0aG9ybGluaycsXG5cdFx0XHRcdHRvb2x0aXA6ICdjaXRlLWF1dGhvcmxpbmstdG9vbHRpcCcsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ2NvYXV0aG9ycycsXG5cdFx0XHRcdGF1dG9maWxscHJvcDogJ2NvYXV0aG9ycycsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ290aGVycycsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ2VkaXRpb24nLFxuXHRcdFx0XHRhdXRvZmlsbHByb3A6ICdlZGl0aW9uJyxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAnb2NsYycsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ2lkJyxcblx0XHRcdFx0dG9vbHRpcDogJ2NpdGUtaWQtdG9vbHRpcCcsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ2FjY2Vzc2RhdGUnLFxuXHRcdFx0XHR0b29sdGlwOiAnY2l0ZS1hY2Nlc3NkYXRlLXRvb2x0aXAnLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmllbGQ6ICdsYW5ndWFnZScsXG5cdFx0XHRcdGF1dG9maWxscHJvcDogJ2xhbmd1YWdlJyxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAnZm9ybWF0Jyxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAnZGF0ZScsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWVsZDogJ21vbnRoJyxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpZWxkOiAncXVvdGUnLFxuXHRcdFx0fSxcblx0XHRdXG5cdCk7XG5cblx0Ly8gZXhlY3V0ZSBtYWluIGZ1bmN0aW9uXG5cdENpdGVUQi5pbml0KCk7XG59O1xuXG5leHBvcnQge3JlZlRvb2xiYXJDb25maWd9O1xuIiwgIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudCAqL1xuLy8gQHRzLW5vY2hlY2tcbmltcG9ydCBhamF4TG9hZGVyIGZyb20gJy4uL2ltYWdlcy9BamF4LWxvYWRlci5naWYnO1xuaW1wb3J0IHthcGl9IGZyb20gJy4vdXRpbC9hcGknO1xuaW1wb3J0IHtnZXRNZXNzYWdlfSBmcm9tICcuL3V0aWwvZ2V0TWVzc2FnZSc7XG5pbXBvcnQgb29qc1VpQ2l0ZUFydGljbGUgZnJvbSAnLi4vaW1hZ2VzL2NpdGVBcnRpY2xlLnN2Zyc7XG5pbXBvcnQge3JlZlRvb2xiYXJDb25maWd9IGZyb20gJy4vUmVmVG9vbGJhckNvbmZpZyc7XG5cbi8vIFRPRE86IG1ha2UgYXV0b2RhdGUgYW4gb3B0aW9uIGluIHRoZSBDaXRlVGVtcGxhdGUgb2JqZWN0LCBub3QgYSBwcmVmZXJlbmNlXG5jb25zdCByZWZUb29sYmFyMiA9ICgkYm9keSkgPT4ge1xuXHQvLyBEZWZhdWx0IG9wdGlvbnMsIHRoZXNlIG1haW5seSBleGlzdCBzbyB0aGUgc2NyaXB0IHdvbid0IGJyZWFrIGlmIGEgbmV3IG9wdGlvbiBpcyBhZGRlZFxuXHRDaXRlVEIuRGVmYXVsdE9wdGlvbnMgPSB7XG5cdFx0J2RhdGUgZm9ybWF0JzogJzx5ZWFyPi08em1vbnRoPi08emRhdGU+Jyxcblx0XHQnYXV0b2RhdGUgZmllbGRzJzogW10sXG5cdFx0bW9udGhzOiBbJ0phbicsICdGZWInLCAnTWFyJywgJ0FwcicsICdNYXknLCAnSnVuJywgJ0p1bCcsICdBdWcnLCAnU2VwJywgJ09jdCcsICdOb3YnLCAnRGVjJ10sXG5cdFx0bW9kYWw6IHRydWUsXG5cdFx0YXV0b3BhcnNlOiBmYWxzZSxcblx0XHRleHBhbmR0ZW1wbGF0ZXM6IGZhbHNlLFxuXHR9O1xuXG5cdC8vIEdldCBhbiBvcHRpb24gLSB1c2VyIHNldHRpbmdzIG92ZXJyaWRlIGdsb2JhbCB3aGljaCBvdmVycmlkZSBkZWZhdWx0c1xuXHRDaXRlVEIuZ2V0T3B0aW9uID0gKG9wdCkgPT4ge1xuXHRcdGlmIChDaXRlVEIuVXNlck9wdGlvbnNbb3B0XSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRyZXR1cm4gQ2l0ZVRCLlVzZXJPcHRpb25zW29wdF07XG5cdFx0fSBlbHNlIGlmIChDaXRlVEIuT3B0aW9uc1tvcHRdICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdHJldHVybiBDaXRlVEIuT3B0aW9uc1tvcHRdO1xuXHRcdH1cblx0XHRyZXR1cm4gQ2l0ZVRCLkRlZmF1bHRPcHRpb25zW29wdF07XG5cdH07XG5cblx0Q2l0ZVRCLmluaXQgPSAoKSA9PiB7XG5cdFx0LyogTWFpbiBzdHVmZiwgYnVpbGQgdGhlIGFjdHVhbCB0b29sYmFyIHN0cnVjdHVyZVxuXHRcdCAqIDEuIGdldCB0aGUgdGVtcGxhdGUgbGlzdCwgbWFrZSB0aGUgZHJvcGRvd24gbGlzdCBhbmQgc2V0IHVwIHRoZSB0ZW1wbGF0ZSBkaWFsb2cgYm94ZXNcblx0XHQgKiAyLiBhY3R1YWxseSBidWlsZCB0aGUgdG9vbGJhcjpcblx0XHQgKiAtIEEgc2VjdGlvbiBmb3IgY2l0ZXNcblx0XHQgKiAtLSBkcm9wZG93biBmb3IgdGhlIHRlbXBsYXRlcyAocHJldmlvdXNseSBkZWZpbmVkKVxuXHRcdCAqIC0tIGJ1dHRvbiBmb3IgbmFtZWQgcmVmcyB3aXRoIGEgZGlhbG9nIGJveFxuXHRcdCAqIDMuIGFkZCB0aGUgd2hvbGUgdGhpbmcgdG8gdGhlIG1haW4gdG9vbGJhclxuXHRcdCAqL1xuXG5cdFx0JChkb2N1bWVudCkuZmluZCgnaGVhZCcpLnRyaWdnZXIoJ3JlZnRvb2xiYXJiYXNlJyk7XG5cdFx0Y29uc3QgJHRhcmdldCA9ICRib2R5LmZpbmQoJ3RleHRhcmVhW25hbWU9d3BUZXh0Ym94MV0nKTtcblx0XHRjb25zdCB0ZW1saXN0ID0ge307XG5cdFx0Zm9yIChjb25zdCB0IGluIENpdGVUQi5UZW1wbGF0ZXMpIHtcblx0XHRcdGlmIChPYmplY3QuaGFzT3duKENpdGVUQi5UZW1wbGF0ZXMsIHQpKSB7XG5cdFx0XHRcdGNvbnN0IHRlbSA9IENpdGVUQi5UZW1wbGF0ZXNbdF07XG5cdFx0XHRcdGNvbnN0IHNmb3JtID0gQ2l0ZVRCLmVzY1N0cih0ZW0uc2hvcnRmb3JtKTtcblx0XHRcdFx0Y29uc3QgYWN0aW9ub2JqID0ge1xuXHRcdFx0XHRcdHR5cGU6ICdkaWFsb2cnLFxuXHRcdFx0XHRcdG1vZHVsZTogYGNpdGUtZGlhbG9nLSR7c2Zvcm19YCxcblx0XHRcdFx0fTtcblx0XHRcdFx0Y29uc3QgZGlhbG9nb2JqID0ge307XG5cdFx0XHRcdGRpYWxvZ29ialtgY2l0ZS1kaWFsb2ctJHtzZm9ybX1gXSA9IHtcblx0XHRcdFx0XHRyZXNpemVtZTogZmFsc2UsXG5cdFx0XHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1lZGlhd2lraS9tc2ctZG9jXG5cdFx0XHRcdFx0dGl0bGU6IG13Lm1lc3NhZ2UoYGNpdGUtZGlhbG9nLSR7c2Zvcm19YCkucGFyc2UoKSxcblx0XHRcdFx0XHRpZDogYGNpdGV0b29sYmFyLSR7c2Zvcm19YCxcblx0XHRcdFx0XHRpbml0OiAoKSA9PiB7fSxcblx0XHRcdFx0XHRodG1sOiB0ZW0uZ2V0SW5pdGlhbCgpLFxuXHRcdFx0XHRcdGRpYWxvZzoge1xuXHRcdFx0XHRcdFx0d2lkdGg6IE1hdGgucm91bmQoJCh3aW5kb3cpLndpZHRoKCkgPz8gMCAqIDAuOCksXG5cdFx0XHRcdFx0XHRvcGVuKCkge1xuXHRcdFx0XHRcdFx0XHQkKHRoaXMpLmh0bWwoQ2l0ZVRCLmdldE9wZW5UZW1wbGF0ZSgpLmdldEZvcm0oKSk7XG5cdFx0XHRcdFx0XHRcdC8qKiBAcGFyYW0ge2pRdWVyeS5FdmVudH0gZSAqL1xuXHRcdFx0XHRcdFx0XHQkYm9keS5maW5kKCcuY2l0ZS1wcmV2LXBhcnNlJykub24oJ2NsaWNrJywgKGUpID0+IHtcblx0XHRcdFx0XHRcdFx0XHRlLnByZXZlbnREZWZhdWx0KCk7XG5cdFx0XHRcdFx0XHRcdFx0Q2l0ZVRCLnByZXZQYXJzZUNsaWNrKCk7XG5cdFx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdGJ1dHRvbnM6IHtcblx0XHRcdFx0XHRcdFx0J2NpdGUtZm9ybS1zdWJtaXQnKCkge1xuXHRcdFx0XHRcdFx0XHRcdGNvbnN0IHJlZiA9IENpdGVUQi5nZXRSZWYoZmFsc2UsIHRydWUpO1xuXHRcdFx0XHRcdFx0XHRcdCQodGhpcykuZGlhbG9nKCdjbG9zZScpO1xuXHRcdFx0XHRcdFx0XHRcdCQud2lraUVkaXRvci5tb2R1bGVzLnRvb2xiYXIuZm4uZG9BY3Rpb24oXG5cdFx0XHRcdFx0XHRcdFx0XHQkKHRoaXMpLmRhdGEoJ2NvbnRleHQnKSxcblx0XHRcdFx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0dHlwZTogJ2VuY2Fwc3VsYXRlJyxcblx0XHRcdFx0XHRcdFx0XHRcdFx0b3B0aW9uczoge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHBvc3Q6IHJlZixcblx0XHRcdFx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRcdFx0XHQkKHRoaXMpXG5cdFx0XHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFx0J2NpdGUtZm9ybS1zaG93aGlkZSc6IENpdGVUQi5zaG93SGlkZUV4dHJhLFxuXHRcdFx0XHRcdFx0XHQnY2l0ZS1yZWZwcmV2aWV3JygpIHtcblx0XHRcdFx0XHRcdFx0XHRjb25zdCByZWYgPSBDaXRlVEIuZ2V0UmVmKGZhbHNlLCBmYWxzZSk7XG5cdFx0XHRcdFx0XHRcdFx0Y29uc3QgdGVtcGxhdGUgPSBDaXRlVEIuZ2V0T3BlblRlbXBsYXRlKCk7XG5cdFx0XHRcdFx0XHRcdFx0Y29uc3QgZGl2ID0gJChgI2NpdGV0b29sYmFyLSR7Q2l0ZVRCLmVzY1N0cih0ZW1wbGF0ZS5zaG9ydGZvcm0pfWApO1xuXHRcdFx0XHRcdFx0XHRcdGRpdi5maW5kKCcuY2l0ZS1wcmV2aWV3LWxhYmVsJykuc2hvdygpO1xuXHRcdFx0XHRcdFx0XHRcdGRpdi5maW5kKCcuY2l0ZS1yZWYtcHJldmlldycpLnRleHQocmVmKS5zaG93KCk7XG5cdFx0XHRcdFx0XHRcdFx0aWYgKENpdGVUQi5nZXRPcHRpb24oJ2F1dG9wYXJzZScpKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRDaXRlVEIucHJldlBhcnNlQ2xpY2soKTtcblx0XHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdFx0ZGl2LmZpbmQoJy5jaXRlLXByZXYtcGFyc2UnKS5zaG93KCk7XG5cdFx0XHRcdFx0XHRcdFx0XHRkaXYuZmluZCgnLmNpdGUtcHJldi1wYXJzZWQtbGFiZWwnKS5oaWRlKCk7XG5cdFx0XHRcdFx0XHRcdFx0XHRkaXYuZmluZCgnLmNpdGUtcHJldmlldy1wYXJzZWQnKS5odG1sKCcnKTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRcdCd3aWtpZWRpdG9yLXRvb2xiYXItdG9vbC1saW5rLWNhbmNlbCcoKSB7XG5cdFx0XHRcdFx0XHRcdFx0JCh0aGlzKS5kaWFsb2coJ2Nsb3NlJyk7XG5cdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRcdCdjaXRlLWZvcm0tcmVzZXQnKCkge1xuXHRcdFx0XHRcdFx0XHRcdENpdGVUQi5yZXNldEZvcm0oKTtcblx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0fTtcblx0XHRcdFx0dHJ5IHtcblx0XHRcdFx0XHQkdGFyZ2V0Lndpa2lFZGl0b3IoJ2FkZERpYWxvZycsIGRpYWxvZ29iaik7XG5cdFx0XHRcdH0gY2F0Y2gge1xuXHRcdFx0XHRcdC8qIFR5cGVFcnJvcjogcmFuZ2UgaXMgbnVsbCAqL1xuXHRcdFx0XHR9XG5cdFx0XHRcdC8vIGlmICghQ2l0ZVRCLmdldE9wdGlvbignbW9kYWwnKSkge1xuXHRcdFx0XHQvLyBcdCRib2R5LmZpbmQoYCNjaXRldG9vbGJhci0ke3Nmb3JtfWApLmRpYWxvZygnb3B0aW9uJywgJ21vZGFsJywgZmFsc2UpO1xuXHRcdFx0XHQvLyB9XG5cdFx0XHRcdHRlbWxpc3Rbc2Zvcm1dID0ge1xuXHRcdFx0XHRcdGxhYmVsOiB0ZW0udGVtcGxhdGVuYW1lLFxuXHRcdFx0XHRcdGFjdGlvbjogYWN0aW9ub2JqLFxuXHRcdFx0XHR9O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGNvbnN0IHJlZnNlY3Rpb24gPSB7XG5cdFx0XHRzZWN0aW9uczoge1xuXHRcdFx0XHRjaXRlczoge1xuXHRcdFx0XHRcdHR5cGU6ICd0b29sYmFyJyxcblx0XHRcdFx0XHRsYWJlbDogZ2V0TWVzc2FnZSgnY2l0ZS1zZWN0aW9uLWxhYmVsJyksXG5cdFx0XHRcdFx0Z3JvdXBzOiB7XG5cdFx0XHRcdFx0XHR0ZW1wbGF0ZToge1xuXHRcdFx0XHRcdFx0XHR0b29sczoge1xuXHRcdFx0XHRcdFx0XHRcdHRlbXBsYXRlOiB7XG5cdFx0XHRcdFx0XHRcdFx0XHR0eXBlOiAnc2VsZWN0Jyxcblx0XHRcdFx0XHRcdFx0XHRcdGxhYmVsOiBnZXRNZXNzYWdlKCdjaXRlLXRlbXBsYXRlLWxpc3QnKSxcblx0XHRcdFx0XHRcdFx0XHRcdGxpc3Q6IHRlbWxpc3QsXG5cdFx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRuYW1lZHJlZnM6IHtcblx0XHRcdFx0XHRcdFx0bGFiZWw6IGdldE1lc3NhZ2UoJ2NpdGUtbmFtZWQtcmVmcy1sYWJlbCcpLFxuXHRcdFx0XHRcdFx0XHR0b29sczoge1xuXHRcdFx0XHRcdFx0XHRcdG5yZWZzOiB7XG5cdFx0XHRcdFx0XHRcdFx0XHR0eXBlOiAnYnV0dG9uJyxcblx0XHRcdFx0XHRcdFx0XHRcdGFjdGlvbjoge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR0eXBlOiAnZGlhbG9nJyxcblx0XHRcdFx0XHRcdFx0XHRcdFx0bW9kdWxlOiAnY2l0ZS10b29sYmFyLW5hbWVkcmVmcycsXG5cdFx0XHRcdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0XHRcdFx0aWNvbjogYGRhdGE6aW1hZ2Uvc3ZnK3htbCwke2VuY29kZVVSSUNvbXBvbmVudChvb2pzVWlDaXRlQXJ0aWNsZSl9YCxcblx0XHRcdFx0XHRcdFx0XHRcdHNlY3Rpb246ICdjaXRlcycsXG5cdFx0XHRcdFx0XHRcdFx0XHRncm91cDogJ25hbWVkcmVmcycsXG5cdFx0XHRcdFx0XHRcdFx0XHRsYWJlbDogZ2V0TWVzc2FnZSgnY2l0ZS1uYW1lZC1yZWZzLWJ1dHRvbicpLFxuXHRcdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdH0sXG5cdFx0XHR9LFxuXHRcdH07XG5cblx0XHRjb25zdCBkZWZhdWx0ZGlhbG9ncyA9IHtcblx0XHRcdCdjaXRlLXRvb2xiYXItbmFtZWRyZWZzJzoge1xuXHRcdFx0XHR0aXRsZTogbXcubWVzc2FnZSgnY2l0ZS1uYW1lZC1yZWZzLXRpdGxlJykucGFyc2UoKSxcblx0XHRcdFx0cmVzaXplbWU6IGZhbHNlLFxuXHRcdFx0XHRpZDogJ2NpdGV0b29sYmFyLW5hbWVkcmVmcycsXG5cdFx0XHRcdGh0bWw6IGA8ZGl2IGlkPVwiY2l0ZS1uYW1lZHJlZi1sb2FkaW5nXCI+IDxpbWcgc3JjPVwiJHthamF4TG9hZGVyfVwiIC8+ICZuYnNwOyR7Z2V0TWVzc2FnZShcblx0XHRcdFx0XHQnY2l0ZS1sb2FkaW5nJ1xuXHRcdFx0XHQpfTwvZGl2PmAsXG5cdFx0XHRcdGluaXQ6ICgpID0+IHt9LFxuXHRcdFx0XHRkaWFsb2c6IHtcblx0XHRcdFx0XHR3aWR0aDogTWF0aC5yb3VuZCgkKHdpbmRvdykud2lkdGgoKSA/PyAwICogMC44KSxcblx0XHRcdFx0XHRvcGVuKCkge1xuXHRcdFx0XHRcdFx0Q2l0ZVRCLmxvYWRSZWZzKCk7XG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRidXR0b25zOiB7XG5cdFx0XHRcdFx0XHQnY2l0ZS1mb3JtLXN1Ym1pdCcoKSB7XG5cdFx0XHRcdFx0XHRcdGNvbnN0IHJlZm5hbWUgPSAkYm9keS5maW5kKCcjY2l0ZS1uYW1lZHJlZi1zZWxlY3QnKS52YWwoKTtcblx0XHRcdFx0XHRcdFx0aWYgKHJlZm5hbWUgPT09ICcnKSB7XG5cdFx0XHRcdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdCQodGhpcykuZGlhbG9nKCdjbG9zZScpO1xuXHRcdFx0XHRcdFx0XHQkLndpa2lFZGl0b3IubW9kdWxlcy50b29sYmFyLmZuLmRvQWN0aW9uKFxuXHRcdFx0XHRcdFx0XHRcdCQodGhpcykuZGF0YSgnY29udGV4dCcpLFxuXHRcdFx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XHRcdHR5cGU6ICdlbmNhcHN1bGF0ZScsXG5cdFx0XHRcdFx0XHRcdFx0XHRvcHRpb25zOiB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHBvc3Q6IENpdGVUQi5nZXROYW1lZFJlZihyZWZuYW1lLCB0cnVlKSxcblx0XHRcdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFx0XHQkKHRoaXMpXG5cdFx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0J3dpa2llZGl0b3ItdG9vbGJhci10b29sLWxpbmstY2FuY2VsJygpIHtcblx0XHRcdFx0XHRcdFx0JCh0aGlzKS5kaWFsb2coJ2Nsb3NlJyk7XG5cdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdH0sXG5cdFx0XHR9LFxuXHRcdH07XG5cblx0XHR0cnkge1xuXHRcdFx0JHRhcmdldC53aWtpRWRpdG9yKCdhZGREaWFsb2cnLCBkZWZhdWx0ZGlhbG9ncyk7XG5cdFx0fSBjYXRjaCB7XG5cdFx0XHQvLyBlcnJvciBvY2N1cnJlZCBzZXR0aW5nIHVwIHdpa2llZGl0b3IuXG5cdFx0fVxuXHRcdCRib2R5LmZpbmQoJyNjaXRldG9vbGJhci1uYW1lZHJlZnMnKS5vZmYoJ2RpYWxvZ29wZW4nKTtcblx0XHRpZiAoIUNpdGVUQi5nZXRPcHRpb24oJ21vZGFsJykpIHtcblx0XHRcdC8vICRib2R5LmZpbmQoJyNjaXRldG9vbGJhci1uYW1lZHJlZnMnKS5kaWFsb2coJ29wdGlvbicsICdtb2RhbCcsIGZhbHNlKTtcblx0XHRcdG13LnV0aWwuYWRkQ1NTKCcudWktd2lkZ2V0LW92ZXJsYXl7ZGlzcGxheTpub25lICFpbXBvcnRhbnR9Jyk7XG5cdFx0fVxuXHRcdHRyeSB7XG5cdFx0XHQkdGFyZ2V0Lndpa2lFZGl0b3IoJ2FkZFRvVG9vbGJhcicsIHJlZnNlY3Rpb24pO1xuXHRcdH0gY2F0Y2gge1xuXHRcdFx0Ly8gZXJyb3Igb2NjdXJyZWQgc2V0dGluZyB1cCB3aWtpZWRpdG9yLlxuXHRcdH1cblx0fTtcblxuXHQvLyBTZXR1cCB0aGUgbWFpbiBvYmplY3Rcblx0Q2l0ZVRCLm1haW5SZWZMaXN0ID0gW107XG5cdENpdGVUQi5yZWZzTG9hZGVkID0gZmFsc2U7XG5cblx0Ly8gUkVGIEZVTkNUSU9OU1xuXHQvLyBBY3R1YWxseSBhc3NlbWJsZSBhIHJlZiBmcm9tIHVzZXIgaW5wdXRcblx0Q2l0ZVRCLmdldFJlZiA9IChpbm5lcm9ubHksIGZvcmluc2VydCkgPT4ge1xuXHRcdGxldCBpLCBqLCBnLCBncm91cDtcblx0XHRjb25zdCB0ZW1wbGF0ZSA9IENpdGVUQi5nZXRPcGVuVGVtcGxhdGUoKTtcblx0XHRjb25zdCB7dGVtcGxhdGVuYW1lfSA9IHRlbXBsYXRlO1xuXHRcdGxldCByZXMgPSAnJztcblx0XHRjb25zdCByZWZvYmogPSB7XG5cdFx0XHRzaG9ydHRhZzogZmFsc2UsXG5cdFx0fTtcblx0XHRpZiAoIWlubmVyb25seSkge1xuXHRcdFx0Z3JvdXAgPSAkKGAjY2l0ZS0ke0NpdGVUQi5lc2NTdHIodGVtcGxhdGUuc2hvcnRmb3JtKX0tZ3JvdXBgKS52YWwoKTtcblx0XHRcdGxldCByZWZuYW1lID0gJChgI2NpdGUtJHtDaXRlVEIuZXNjU3RyKHRlbXBsYXRlLnNob3J0Zm9ybSl9LW5hbWVgKS52YWwoKTtcblx0XHRcdHJlcyArPSAnPHJlZic7XG5cdFx0XHRpZiAocmVmbmFtZSkge1xuXHRcdFx0XHRyZWZuYW1lID0gU3RyaW5nKHJlZm5hbWUpLnRyaW0oKTtcblx0XHRcdFx0cmVzICs9IGAgbmFtZT0ke0NpdGVUQi5nZXRRdW90ZWRTdHJpbmcocmVmbmFtZSl9YDtcblx0XHRcdFx0cmVmb2JqLnJlZm5hbWUgPSByZWZuYW1lO1xuXHRcdFx0fVxuXHRcdFx0aWYgKGdyb3VwKSB7XG5cdFx0XHRcdGdyb3VwID0gU3RyaW5nKGdyb3VwKS50cmltKCk7XG5cdFx0XHRcdHJlcyArPSBgIGdyb3VwPSR7Q2l0ZVRCLmdldFF1b3RlZFN0cmluZyhncm91cCl9YDtcblx0XHRcdFx0cmVmb2JqLnJlZmdyb3VwID0gZ3JvdXA7XG5cdFx0XHR9XG5cdFx0XHRyZXMgKz0gJz4nO1xuXHRcdH1cblx0XHRsZXQgY29udGVudCA9IGB7eyR7dGVtcGxhdGVuYW1lfWA7XG5cdFx0Zm9yIChnIGluIHRlbXBsYXRlLmluY3JlbWVudGFibGVzKSB7XG5cdFx0XHRpZiAoT2JqZWN0Lmhhc093bih0ZW1wbGF0ZS5pbmNyZW1lbnRhYmxlcywgZykpIHtcblx0XHRcdFx0Z3JvdXAgPSB0ZW1wbGF0ZS5pbmNyZW1lbnRhYmxlc1tnXTtcblx0XHRcdFx0Zm9yIChpID0gMTsgaSA8PSBncm91cC52YWw7IGkrKykge1xuXHRcdFx0XHRcdGZvciAoaiA9IDA7IGogPCBncm91cC5maWVsZHMubGVuZ3RoOyBqKyspIHtcblx0XHRcdFx0XHRcdGNvbnN0IGZpZWxkbmFtZSA9IGdyb3VwLmZpZWxkc1tqXS5maWVsZDtcblx0XHRcdFx0XHRcdGNvbnN0IGZpZWxkaWQgPSBmaWVsZG5hbWUucmVwbGFjZSgnPE4+JywgaS50b1N0cmluZygpKTtcblx0XHRcdFx0XHRcdGNvbnN0IGZpZWxkID0gJChgI2NpdGUtJHtDaXRlVEIuZXNjU3RyKHRlbXBsYXRlLnNob3J0Zm9ybSl9LSR7ZmllbGRpZH1gKS52YWwoKTtcblx0XHRcdFx0XHRcdGlmIChmaWVsZCkge1xuXHRcdFx0XHRcdFx0XHRjb250ZW50ICs9IGAgfCR7ZmllbGRpZH09YDtcblx0XHRcdFx0XHRcdFx0Y29udGVudCArPSBTdHJpbmcoZmllbGQpLnRyaW0oKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0Zm9yIChpID0gMDsgaSA8IHRlbXBsYXRlLmJhc2ljLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRpZiAodGVtcGxhdGUuYmFzaWNbaV0uaW5jcmVtZW50X2dyb3VwKSB7XG5cdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0fVxuXHRcdFx0Y29uc3QgZmllbGRuYW1lID0gdGVtcGxhdGUuYmFzaWNbaV0uZmllbGQ7XG5cdFx0XHRjb25zdCBmaWVsZCA9ICQoYCNjaXRlLSR7Q2l0ZVRCLmVzY1N0cih0ZW1wbGF0ZS5zaG9ydGZvcm0pfS0ke2ZpZWxkbmFtZX1gKS52YWwoKTtcblx0XHRcdGlmIChmaWVsZCkge1xuXHRcdFx0XHRjb250ZW50ICs9IGAgfCR7ZmllbGRuYW1lfT1gO1xuXHRcdFx0XHRjb250ZW50ICs9IFN0cmluZyhmaWVsZCkudHJpbSgpO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRpZiAoJGJvZHkuZmluZCgnI2NpdGUtZm9ybS1zdGF0dXMnKS52YWwoKSAhPT0gJ2Nsb3NlZCcpIHtcblx0XHRcdGZvciAoaSA9IDA7IGkgPCB0ZW1wbGF0ZS5leHRyYS5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRpZiAodGVtcGxhdGUuZXh0cmFbaV0uaW5jcmVtZW50X2dyb3VwKSB7XG5cdFx0XHRcdFx0Y29udGludWU7XG5cdFx0XHRcdH1cblx0XHRcdFx0Y29uc3QgZmllbGRuYW1lID0gdGVtcGxhdGUuZXh0cmFbaV0uZmllbGQ7XG5cdFx0XHRcdGNvbnN0IGZpZWxkID0gJChgI2NpdGUtJHtDaXRlVEIuZXNjU3RyKHRlbXBsYXRlLnNob3J0Zm9ybSl9LSR7ZmllbGRuYW1lfWApLnZhbCgpO1xuXHRcdFx0XHRpZiAoZmllbGQpIHtcblx0XHRcdFx0XHRjb250ZW50ICs9IGAgfCR7ZmllbGRuYW1lfT1gO1xuXHRcdFx0XHRcdGNvbnRlbnQgKz0gU3RyaW5nKGZpZWxkKS50cmltKCk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0Y29udGVudCArPSAnfX0nO1xuXHRcdHJlcyArPSBjb250ZW50O1xuXHRcdHJlZm9iai5jb250ZW50ID0gY29udGVudDtcblx0XHRpZiAoIWlubmVyb25seSkge1xuXHRcdFx0cmVzICs9ICc8L3JlZj4nO1xuXHRcdH1cblx0XHRpZiAoZm9yaW5zZXJ0KSB7XG5cdFx0XHRDaXRlVEIubWFpblJlZkxpc3QucHVzaChyZWZvYmopO1xuXHRcdH1cblx0XHRyZXR1cm4gcmVzO1xuXHR9O1xuXG5cdC8vIE1ha2UgYSByZWZlcmVuY2UgdG8gYSBuYW1lZCByZWZcblx0Q2l0ZVRCLmdldE5hbWVkUmVmID0gKHJlZm5hbWUsIGZvcmluc2VydCkgPT4ge1xuXHRcdGlmIChmb3JpbnNlcnQpIHtcblx0XHRcdENpdGVUQi5tYWluUmVmTGlzdC5wdXNoKHtcblx0XHRcdFx0c2hvcnR0YWc6IHRydWUsXG5cdFx0XHRcdHJlZm5hbWUsXG5cdFx0XHR9KTtcblx0XHR9XG5cdFx0cmV0dXJuIGA8cmVmIG5hbWU9JHtDaXRlVEIuZ2V0UXVvdGVkU3RyaW5nKHJlZm5hbWUpfSAvPmA7XG5cdH07XG5cblx0Ly8gRnVuY3Rpb24gdG8gbG9hZCB0aGUgcmVmIGxpc3Rcblx0Q2l0ZVRCLmxvYWRSZWZzID0gKCkgPT4ge1xuXHRcdGlmIChDaXRlVEIucmVmc0xvYWRlZCkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRDaXRlVEIuZ2V0UGFnZVRleHQoQ2l0ZVRCLmxvYWRSZWZzSW50ZXJuYWwpO1xuXHR9O1xuXG5cdC8vIEZ1bmN0aW9uIHRoYXQgYWN0dWFsbHkgbG9hZHMgdGhlIGxpc3QgZnJvbSB0aGUgcGFnZSB0ZXh0XG5cdENpdGVUQi5sb2FkUmVmc0ludGVybmFsID0gKHRleHQpID0+IHtcblx0XHQvLyBXaGF0IHRoaXMgZG9lczogICAgICAgICAgICAgZXh0cmFjdCBmaXJzdCBuYW1lL2dyb3VwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dHJhY3Qgc2Vjb25kIG5hbWUvZ3JvdXAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG9ydHRhZyAgIGlubmVyIGNvbnRlbnRcblx0XHRjb25zdCByZWZzcmVnZXggPVxuXHRcdFx0LzwgKnJlZig/OiArKG5hbWV8Z3JvdXApICo9ICooPzpcIihbXlwiXSo/KVwifCcoW14nXSo/KSd8KFteICdcIi8+XSo/KSkgKik/ICooPzogKyhuYW1lfGdyb3VwKSAqPSAqKD86XCIoW15cIl0qPylcInwnKFteJ10qPyknfChbXiAnXCIvPl0qPykpICopPyAqKD86XFwvICo+fD4oKD86LnxcXG4pKj8pPCAqXFwvICpyZWYgKj4pL2dpbTtcblx0XHQvLyBUaGlzIHNob3VsZCB3b3JrIHJlZ2FyZGxlc3Mgb2YgdGhlIHF1b3RpbmcgdXNlZCBmb3IgbmFtZXMvZ3JvdXBzIGFuZCBmb3IgbGluZWJyZWFrcyBpbiB0aGUgaW5uZXIgY29udGVudFxuXHRcdHdoaWxlICh0cnVlKSB7XG5cdFx0XHRjb25zdCByZWYgPSByZWZzcmVnZXguZXhlYyh0ZXh0KTtcblx0XHRcdGlmIChyZWYgPT09IG51bGwpIHtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHR9XG5cdFx0XHRjb25zdCByZWZvYmogPSB7fTtcblx0XHRcdGlmIChyZWZbOV0pIHtcblx0XHRcdFx0Ly8gQ29udGVudCArIHNob3J0IHRhZyBjaGVja1xuXHRcdFx0XHQvLyBtdy5ub3RpZnkoYFwiJHtyZWZbOV19XCJgLCB7dGFnOiAnUmVmVG9vbGJhcjIuMCcsIHR5cGU6ICd3YXJuJ30pO1xuXHRcdFx0XHRbLCAsICwgLCAsICwgLCAsICwgcmVmb2JqLmNvbnRlbnRdID0gcmVmO1xuXHRcdFx0XHRyZWZvYmouc2hvcnR0YWcgPSBmYWxzZTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHJlZm9iai5zaG9ydHRhZyA9IHRydWU7XG5cdFx0XHR9XG5cdFx0XHRpZiAocmVmWzFdICE9PSAnJykge1xuXHRcdFx0XHQvLyBGaXJzdCBuYW1lL2dyb3VwXG5cdFx0XHRcdGlmIChyZWZbMl0pIHtcblx0XHRcdFx0XHRbLCAsIHJlZm9ialtgcmVmJHtyZWZbMV19YF1dID0gcmVmO1xuXHRcdFx0XHR9IGVsc2UgaWYgKHJlZlszXSkge1xuXHRcdFx0XHRcdFssICwgLCByZWZvYmpbYHJlZiR7cmVmWzFdfWBdXSA9IHJlZjtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRbLCAsICwgLCByZWZvYmpbYHJlZiR7cmVmWzFdfWBdXSA9IHJlZjtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0aWYgKHJlZls1XSAhPT0gJycpIHtcblx0XHRcdFx0Ly8gU2Vjb25kIG5hbWUvZ3JvdXBcblx0XHRcdFx0aWYgKHJlZls2XSkge1xuXHRcdFx0XHRcdFssICwgLCAsICwgLCByZWZvYmpbYHJlZiR7cmVmWzVdfWBdXSA9IHJlZjtcblx0XHRcdFx0fSBlbHNlIGlmIChyZWZbN10pIHtcblx0XHRcdFx0XHRbLCAsICwgLCAsICwgLCByZWZvYmpbYHJlZiR7cmVmWzVdfWBdXSA9IHJlZjtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRbLCAsICwgLCAsICwgLCAsIHJlZm9ialtgcmVmJHtyZWZbNV19YF1dID0gcmVmO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRDaXRlVEIubWFpblJlZkxpc3QucHVzaChyZWZvYmopO1xuXHRcdH1cblx0XHRDaXRlVEIucmVmc0xvYWRlZCA9IHRydWU7XG5cdFx0Q2l0ZVRCLnNldHVwTmFtZWRSZWZzKCk7XG5cdH07XG5cblx0Ly8gQUpBWCBGVU5DVElPTlNcblx0Ly8gUGFyc2Ugc29tZSB3aWtpdGV4dCBhbmQgaGFuZCBpdCBvZmYgdG8gYSBjYWxsYmFjayBmdW5jdGlvblxuXHRDaXRlVEIucGFyc2UgPSAodGV4dCwgY2FsbGJhY2spID0+IHtcblx0XHRjb25zdCBwb3N0ZGF0YSA9IHtcblx0XHRcdGFjdGlvbjogJ3BhcnNlJyxcblx0XHRcdHRpdGxlOiBtdy5jb25maWcuZ2V0KCd3Z1BhZ2VOYW1lJyksXG5cdFx0XHR0ZXh0LFxuXHRcdFx0cHJvcDogJ3RleHQnLFxuXHRcdFx0Zm9ybWF0OiAnanNvbicsXG5cdFx0XHRmb3JtYXR2ZXJzaW9uOiAnMicsXG5cdFx0fTtcblx0XHRhcGkuZ2V0KHBvc3RkYXRhKS50aGVuKCh7cGFyc2V9KSA9PiB7XG5cdFx0XHRjb25zdCBodG1sID0gcGFyc2UudGV4dDtcblx0XHRcdGNhbGxiYWNrKGh0bWwpO1xuXHRcdH0pO1xuXHR9O1xuXG5cdC8vIFVzZSB0aGUgQVBJIHRvIGV4cGFuZCB0ZW1wbGF0ZXMgb24gc29tZSB0ZXh0XG5cdENpdGVUQi5leHBhbmR0ZW1wbGF0ZXMgPSAodGV4dCwgY2FsbGJhY2spID0+IHtcblx0XHRjb25zdCBwb3N0ZGF0YSA9IHtcblx0XHRcdGFjdGlvbjogJ2V4cGFuZHRlbXBsYXRlcycsXG5cdFx0XHR0aXRsZTogbXcuY29uZmlnLmdldCgnd2dQYWdlTmFtZScpLFxuXHRcdFx0dGV4dCxcblx0XHRcdGZvcm1hdDogJ2pzb24nLFxuXHRcdFx0Zm9ybWF0dmVyc2lvbjogJzInLFxuXHRcdH07XG5cdFx0YXBpLmdldChwb3N0ZGF0YSkudGhlbigoe2V4cGFuZHRlbXBsYXRlc30pID0+IHtcblx0XHRcdGNvbnN0IHJlc3RleHQgPSBleHBhbmR0ZW1wbGF0ZXMud2lraXRleHQ7XG5cdFx0XHRjYWxsYmFjayhyZXN0ZXh0KTtcblx0XHR9KTtcblx0fTtcblxuXHQvLyBGdW5jdGlvbiB0byBnZXQgdGhlIHBhZ2UgdGV4dFxuXHRDaXRlVEIuZ2V0UGFnZVRleHQgPSAoY2FsbGJhY2spID0+IHtcblx0XHRjb25zdCBzZWN0aW9uID0gJGJvZHkuZmluZCgnaW5wdXRbbmFtZT13cFNlY3Rpb25dJykudmFsKCk7XG5cdFx0aWYgKHNlY3Rpb24gPT09ICcnKSB7XG5cdFx0XHRpZiAoQ2l0ZVRCLmdldE9wdGlvbignZXhwYW5kdGVtcGxhdGVzJykpIHtcblx0XHRcdFx0Q2l0ZVRCLmV4cGFuZHRlbXBsYXRlcyhcblx0XHRcdFx0XHQkYm9keS5maW5kKCd0ZXh0YXJlYVtuYW1lPXdwVGV4dGJveDFdJykud2lraUVkaXRvcignZ2V0Q29udGVudHMnKS50ZXh0KCksXG5cdFx0XHRcdFx0Y2FsbGJhY2tcblx0XHRcdFx0KTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGNhbGxiYWNrKCRib2R5LmZpbmQoJ3RleHRhcmVhW25hbWU9d3BUZXh0Ym94MV0nKS53aWtpRWRpdG9yKCdnZXRDb250ZW50cycpLnRleHQoKSk7XG5cdFx0XHR9XG5cdFx0fSBlbHNlIHtcblx0XHRcdGNvbnN0IHt3Z0FydGljbGVJZH0gPSBtdy5jb25maWcuZ2V0KCk7XG5cdFx0XHRjb25zdCBwb3N0ZGF0YSA9IHtcblx0XHRcdFx0YWN0aW9uOiAncXVlcnknLFxuXHRcdFx0XHRwcm9wOiAncmV2aXNpb25zJyxcblx0XHRcdFx0cnZwcm9wOiAnY29udGVudCcsXG5cdFx0XHRcdHJ2c2xvdHM6ICdtYWluJyxcblx0XHRcdFx0cGFnZWlkczogd2dBcnRpY2xlSWQsXG5cdFx0XHRcdGZvcm1hdDogJ2pzb24nLFxuXHRcdFx0XHRmb3JtYXR2ZXJzaW9uOiAnMicsXG5cdFx0XHR9O1xuXHRcdFx0aWYgKENpdGVUQi5nZXRPcHRpb24oJ2V4cGFuZHRlbXBsYXRlcycpKSB7XG5cdFx0XHRcdHBvc3RkYXRhLnJ2ZXhwYW5kdGVtcGxhdGVzID0gJzEnO1xuXHRcdFx0fVxuXHRcdFx0YXBpLmdldChwb3N0ZGF0YSkudGhlbigoe3F1ZXJ5fSkgPT4ge1xuXHRcdFx0XHRjb25zdCBwYWdldGV4dCA9IHF1ZXJ5LnBhZ2VzWzBdLnJldmlzaW9uc1swXS5zbG90cy5tYWluLmNvbnRlbnQ7XG5cdFx0XHRcdGNhbGxiYWNrKHBhZ2V0ZXh0KTtcblx0XHRcdH0pO1xuXHRcdH1cblx0fTtcblxuXHQvLyBTYWZlIHZlcnNpb24gb2YgZGVjb2RlVVJJQ29tcG9uZW50KCkgdGhhdCBkb2Vzbid0IHRocm93IGV4Y2VwdGlvbnMuXG5cdC8vIElmIHRoZSBuYXRpdmUgZGVjb2RlVVJJQ29tcG9uZW50KCkgdGhyZXcgYW4gZXhjZXB0aW9uLCB0aGUgb3JpZ2luYWwgc3RyaW5nIHdpbGwgYmUgcmV0dXJuZWQuXG5cdENpdGVUQi5zYWZlRGVjb2RlVVJJQ29tcG9uZW50ID0gKHMpID0+IHtcblx0XHR0cnkge1xuXHRcdFx0cyA9IGRlY29kZVVSSUNvbXBvbmVudChzKTtcblx0XHR9IGNhdGNoIHtcblx0XHRcdC8qIGVtcHR5ICovXG5cdFx0fVxuXHRcdHJldHVybiBzO1xuXHR9O1xuXG5cdC8vIEF1dG9maWxsIGEgdGVtcGxhdGUgZnJvbSBhbiBJRCAoSVNCTiwgRE9JLCBQTUlELCBVUkwpXG5cdENpdGVUQi5pbml0QXV0b2ZpbGwgPSBmdW5jdGlvbiAoKSB7XG5cdFx0Y29uc3QgZWxlbWlkID0gJCh0aGlzKS5hdHRyKCdpZCcpID8/ICcnO1xuXHRcdGNvbnN0IHJlcyA9IC9eY2l0ZS1hdXRvLSguKj8pLSguKiktKC4qKSQvLmV4ZWMoZWxlbWlkKTtcblx0XHRpZiAoIXJlcykge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblx0XHRjb25zdCBbLCB0ZW0sIGZpZWxkLCBhdXRvdHlwZV0gPSByZXM7XG5cdFx0bGV0IGlkID0gJChgI2NpdGUtJHt0ZW19LSR7ZmllbGR9YCkudmFsKCk7XG5cdFx0aWYgKCFpZCkge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblx0XHRsZXQgdXJsID0gJ2h0dHBzOi8vY2l0b2lkLnFpdXdlbi5uZXQuY24vbG9va3VwLnBocD8nO1xuXHRcdC8vIENpdG9pZCBleHBlY3RzIG1pbmltYWxseSBlbmNvZGVkIGlucHV0LCBzbyBkbyBzb21lIHNwZWN1bGF0aXZlIGRlY29kaW5nIGhlcmUgdG8gYXZvaWRcblx0XHQvLyA0MDQgZmV0Y2hlcy4gaHR0cHM6Ly9waGFicmljYXRvci53aWtpbWVkaWEub3JnL1QxNDY1Mzlcblx0XHRpZCA9IENpdGVUQi5zYWZlRGVjb2RlVVJJQ29tcG9uZW50KGlkKTtcblx0XHR1cmwgKz0gYCR7YXV0b3R5cGV9PSR7ZW5jb2RlVVJJQ29tcG9uZW50KGlkKX1gO1xuXHRcdHVybCArPSBgJnRlbXBsYXRlPSR7ZW5jb2RlVVJJQ29tcG9uZW50KHRlbSl9YDtcblx0XHRjb25zdCBzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XG5cdFx0cy5zZXRBdHRyaWJ1dGUoJ3NyYycsIHVybCk7XG5cdFx0cy5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAndGV4dC9qYXZhc2NyaXB0Jyk7XG5cdFx0ZG9jdW1lbnQuaGVhZC5hcHBlbmQocyk7XG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9O1xuXG5cdC8vIENhbGxiYWNrIGZvciBhdXRvZmlsbFxuXHQvLyBUT0RPOiBBdXRvZmlsbCB0aGUgVVJMLCBhdCBsZWFzdCBmb3IgRE9JXG5cdENpdGVUQi5hdXRvRmlsbCA9IChkYXRhLCB0ZW1wbGF0ZSwgdHlwZSkgPT4ge1xuXHRcdGNvbnN0IGNsID0gYGNpdGUtJHt0ZW1wbGF0ZX0tYDtcblx0XHRsZXQgaSwgajtcblx0XHRsZXQgY29hdXRob3JzO1xuXHRcdCQoYC4ke2NsfXRpdGxlYCkudmFsKGRhdGEudGl0bGUpO1xuXHRcdC8vIEZpbGwgaW4gYXV0aG9yc1xuXHRcdGlmIChkYXRhLmF1dGhvcnMgJiYgZGF0YS5hdXRob3JzLmxlbmd0aCA+IDApIHtcblx0XHRcdGlmICgkKGAuJHtjbH1sYXN0LWluY3ItMWApLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0Y29uc3QgY2xhc3NlcyA9ICQoYC4ke2NsfWxhc3QtaW5jci0xYCkuZXEoMCkuYXR0cignY2xhc3MnKT8uc3BsaXQoL1xccysvKTtcblx0XHRcdFx0aWYgKCFjbGFzc2VzKSB7XG5cdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGxldCBncm91cCA9IGZhbHNlO1xuXHRcdFx0XHRjb25zdCBwYXR0ID0gL2NpdGUtW14tXSo/LWluY3ItKC4qKS87XG5cdFx0XHRcdGZvciAoY29uc3QgY2xhc3NfIG9mIGNsYXNzZXMpIHtcblx0XHRcdFx0XHRpZiAocGF0dC5leGVjKGNsYXNzXykpIHtcblx0XHRcdFx0XHRcdFssIGdyb3VwXSA9IHBhdHQuZXhlYyhjbGFzc18pO1xuXHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdCQoYC4ke2NsfWxhc3QtaW5jci0xYCkudmFsKGRhdGEuYXV0aG9yc1swXVswXSk7XG5cdFx0XHRcdCQoYC4ke2NsfWZpcnN0LWluY3ItMWApLnZhbChkYXRhLmF1dGhvcnNbMF1bMV0pO1xuXHRcdFx0XHRjb25zdCBlbGVtaWQgPSBgI2NpdGUtaW5jci0ke3RlbXBsYXRlfS0ke2dyb3VwfWA7XG5cdFx0XHRcdGZvciAoaSA9IDI7IGkgPCBkYXRhLmF1dGhvcnMubGVuZ3RoICsgMTsgaSsrKSB7XG5cdFx0XHRcdFx0JChlbGVtaWQpLnRyaWdnZXIoJ2NsaWNrJyk7XG5cdFx0XHRcdFx0JChgLiR7Y2x9bGFzdC1pbmNyLSR7aS50b1N0cmluZygpfWApLnZhbChkYXRhLmF1dGhvcnNbaSAtIDFdWzBdKTtcblx0XHRcdFx0XHQkKGAuJHtjbH1maXJzdC1pbmNyLSR7aS50b1N0cmluZygpfWApLnZhbChkYXRhLmF1dGhvcnNbaSAtIDFdWzFdKTtcblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIGlmICgkKGAuJHtjbH1hdXRob3ItaW5jci0xYCkubGVuZ3RoID4gMCkge1xuXHRcdFx0XHRjb25zdCBjbGFzc2VzID0gJChgLiR7Y2x9YXV0aG9yLWluY3ItMWApLmVxKDApLmF0dHIoJ2NsYXNzJyk/LnNwbGl0KC9cXHMrLyk7XG5cdFx0XHRcdGlmICghY2xhc3Nlcykge1xuXHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0fVxuXHRcdFx0XHRsZXQgZ3JvdXAgPSBmYWxzZTtcblx0XHRcdFx0Y29uc3QgcGF0dCA9IC9jaXRlLVteLV0qPy1pbmNyLSguKikvO1xuXHRcdFx0XHRmb3IgKGNvbnN0IGNsYXNzXyBvZiBjbGFzc2VzKSB7XG5cdFx0XHRcdFx0aWYgKHBhdHQuZXhlYyhjbGFzc18pKSB7XG5cdFx0XHRcdFx0XHRbLCBncm91cF0gPSBwYXR0LmV4ZWMoY2xhc3NfKTtcblx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHQkKGAuJHtjbH1hdXRob3ItaW5jci0xYCkudmFsKGRhdGEuYXV0aG9yc1swXS5qb2luKCcsICcpKTtcblx0XHRcdFx0Y29uc3QgZWxlbWlkID0gYCNjaXRlLWluY3ItJHt0ZW1wbGF0ZX0tJHtncm91cH1gO1xuXHRcdFx0XHRmb3IgKGkgPSAyOyBpIDwgZGF0YS5hdXRob3JzLmxlbmd0aCArIDE7IGkrKykge1xuXHRcdFx0XHRcdCQoZWxlbWlkKS50cmlnZ2VyKCdjbGljaycpO1xuXHRcdFx0XHRcdCQoYC4ke2NsfWF1dGhvci1pbmNyLSR7aS50b1N0cmluZygpfWApLnZhbChkYXRhLmF1dGhvcnNbaSAtIDFdLmpvaW4oJywgJykpO1xuXHRcdFx0XHR9XG5cdFx0XHR9IGVsc2UgaWYgKCQoYC4ke2NsfWxhc3QxYCkubGVuZ3RoID4gMCkge1xuXHRcdFx0XHRmb3IgKGkgPSAwOyBkYXRhLmF1dGhvcnMgJiYgaSA8IGRhdGEuYXV0aG9ycy5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRcdGlmICgkKGAuJHtjbH1sYXN0JHtpICsgMX1gKS5sZW5ndGgpIHtcblx0XHRcdFx0XHRcdCQoYC4ke2NsfWxhc3Qke2kgKyAxfWApLnZhbChkYXRhLmF1dGhvcnNbaV1bMF0pO1xuXHRcdFx0XHRcdFx0JChgLiR7Y2x9Zmlyc3Qke2kgKyAxfWApLnZhbChkYXRhLmF1dGhvcnNbaV1bMV0pO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRjb2F1dGhvcnMgPSBbXTtcblx0XHRcdFx0XHRcdGZvciAoaiA9IGk7IGogPCBkYXRhLmF1dGhvcnMubGVuZ3RoOyBqKyspIHtcblx0XHRcdFx0XHRcdFx0Y29hdXRob3JzLnB1c2goZGF0YS5hdXRob3JzW2pdLmpvaW4oJywgJykpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0JChgLiR7Y2x9Y29hdXRob3JzYCkudmFsKGNvYXV0aG9ycy5qb2luKCc7ICcpKTtcblx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIGlmICgkKGAuJHtjbH1hdXRob3IxYCkubGVuZ3RoID09PSAwKSB7XG5cdFx0XHRcdGNvbnN0IGF1dGhvcnMgPSBbXTtcblx0XHRcdFx0Zm9yIChpID0gMDsgZGF0YS5hdXRob3JzICYmIGkgPCBkYXRhLmF1dGhvcnMubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0XHRhdXRob3JzLnB1c2goZGF0YS5hdXRob3JzW2ldLmpvaW4oJywgJykpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdCQoYC4ke2NsfWF1dGhvcnNgKS52YWwoYXV0aG9ycy5qb2luKCc7ICcpKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGZvciAoaSA9IDA7IGRhdGEuYXV0aG9ycyAmJiBpIDwgZGF0YS5hdXRob3JzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdFx0aWYgKCQoYC4ke2NsfWF1dGhvciR7aSArIDF9YCkubGVuZ3RoKSB7XG5cdFx0XHRcdFx0XHQkKGAuJHtjbH1hdXRob3Ike2kgKyAxfWApLnZhbChkYXRhLmF1dGhvcnNbaV0uam9pbignLCAnKSk7XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdGNvYXV0aG9ycyA9IFtdO1xuXHRcdFx0XHRcdFx0Zm9yIChqID0gaTsgaiA8IGRhdGEuYXV0aG9ycy5sZW5ndGg7IGorKykge1xuXHRcdFx0XHRcdFx0XHRjb2F1dGhvcnMucHVzaChkYXRhLmF1dGhvcnNbal0uam9pbignLCAnKSk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHQkKGAuJHtjbH1jb2F1dGhvcnNgKS52YWwoY29hdXRob3JzLmpvaW4oJzsgJykpO1xuXHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gRm9ybWF0IHBhcnRpYWwgZGF0ZXMgb2YgdGhlIGZvcm1hdCBZWVlZLU1NLCBZWVlZLU1NLVhYLCBvciBZWVlZLU1NLUREIGNvcnJlY3RseVxuXHRcdGlmIChkYXRhLmRhdGUpIHtcblx0XHRcdHRyeSB7XG5cdFx0XHRcdGNvbnN0IERUID0gbmV3IERhdGUoZGF0YS5kYXRlKTtcblx0XHRcdFx0aWYgKC9eXFxkezR9LVxcZHsyfSgtWFgpPyQvaS50ZXN0KGRhdGEuZGF0ZSkpIHtcblx0XHRcdFx0XHRkYXRhLmRhdGUgPSBkYXRhLmRhdGUucmVwbGFjZSgnLVhYJywgJycpO1xuXHRcdFx0XHRcdCQoYC4ke2NsfWRhdGVgKS52YWwoQ2l0ZVRCLmZvcm1hdERhdGUoRFQsIGZhbHNlLCB0cnVlKSk7XG5cdFx0XHRcdH0gZWxzZSBpZiAoL15cXGR7NH0tXFxkezJ9LVxcZHsyfT8vaS50ZXN0KGRhdGEuZGF0ZSkpIHtcblx0XHRcdFx0XHQkKGAuJHtjbH1kYXRlYCkudmFsKENpdGVUQi5mb3JtYXREYXRlKERULCB0cnVlLCB0cnVlKSk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0JChgLiR7Y2x9ZGF0ZWApLnZhbChkYXRhLmRhdGUpO1xuXHRcdFx0XHR9XG5cdFx0XHR9IGNhdGNoIHtcblx0XHRcdFx0LyogZW1wdHkgKi9cblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0JChgLiR7Y2x9ZGF0ZWApLnZhbChkYXRhLmRhdGUpO1xuXHRcdH1cblxuXHRcdHN3aXRjaCAodHlwZSkge1xuXHRcdFx0Y2FzZSAncG1pZCc6XG5cdFx0XHRjYXNlICdkb2knOlxuXHRcdFx0XHQkKGAuJHtjbH1qb3VybmFsYCkudmFsKGRhdGEuam91cm5hbCk7XG5cdFx0XHRcdCQoYC4ke2NsfXZvbHVtZWApLnZhbChkYXRhLnZvbHVtZSk7XG5cdFx0XHRcdCQoYC4ke2NsfWlzc3VlYCkudmFsKGRhdGEuaXNzdWUpO1xuXHRcdFx0XHQkKGAuJHtjbH1wYWdlc2ApLnZhbChkYXRhLnBhZ2VzKTtcblx0XHRcdFx0aWYgKHR5cGUgPT09ICdwbWlkJyAmJiBkYXRhLmRvaSkge1xuXHRcdFx0XHRcdCQoYC4ke2NsfWRvaWApLnZhbChkYXRhLmRvaSk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRicmVhaztcblxuXHRcdFx0Y2FzZSAnaXNibic6XG5cdFx0XHRcdCQoYC4ke2NsfXB1Ymxpc2hlcmApLnZhbChkYXRhLnB1Ymxpc2hlcik7XG5cdFx0XHRcdCQoYC4ke2NsfWxvY2F0aW9uYCkudmFsKGRhdGEubG9jYXRpb24pO1xuXHRcdFx0XHQkKGAuJHtjbH1lZGl0aW9uYCkudmFsKGRhdGEuZWRpdGlvbik7XG5cblx0XHRcdFx0YnJlYWs7XG5cblx0XHRcdGNhc2UgJ3VybCc6XG5cdFx0XHRcdCQoYC4ke2NsfWpvdXJuYWxgKS52YWwoZGF0YS5qb3VybmFsKTtcblx0XHRcdFx0JChgLiR7Y2x9dm9sdW1lYCkudmFsKGRhdGEudm9sdW1lKTtcblx0XHRcdFx0JChgLiR7Y2x9aXNzdWVgKS52YWwoZGF0YS5pc3N1ZSk7XG5cdFx0XHRcdCQoYC4ke2NsfXBhZ2VzYCkudmFsKGRhdGEucGFnZXMpO1xuXHRcdFx0XHQkKGAuJHtjbH1wdWJsaXNoZXJgKS52YWwoZGF0YS5wdWJsaXNoZXIpO1xuXHRcdFx0XHQkKGAuJHtjbH1lZGl0aW9uYCkudmFsKGRhdGEuZWRpdGlvbik7XG5cdFx0XHRcdCQoYC4ke2NsfWlzYm5gKS52YWwoZGF0YS5pc2JuKTtcblx0XHRcdFx0JChgLiR7Y2x9aXNzbmApLnZhbChkYXRhLmlzc24pO1xuXHRcdFx0XHQkKGAuJHtjbH1kb2lgKS52YWwoZGF0YS5kb2kpO1xuXHRcdFx0XHQvLyBcImVuLVVTXCIgaXNuJ3QgYSB2YWxpZCB2YWx1ZSBmb3IgdGhlIGxhbmd1YWdlIHBhcmFtZXRlclxuXHRcdFx0XHRpZiAoZGF0YS5sYW5ndWFnZSAmJiBkYXRhLmxhbmd1YWdlICE9PSAnZW4tVVMnICYmIGRhdGEubGFuZ3VhZ2UgIT09ICdlbi1HQicpIHtcblx0XHRcdFx0XHQkKGAuJHtjbH1sYW5ndWFnZWApLnZhbChkYXRhLmxhbmd1YWdlKTtcblx0XHRcdFx0fVxuXHRcdFx0XHQkKGAuJHtjbH1jaGFwdGVyYCkudmFsKGRhdGEuY2hhcHRlcik7XG5cblx0XHRcdFx0YnJlYWs7XG5cblx0XHRcdC8vIE5vIGRlZmF1bHRcblx0XHR9XG5cdH07XG5cblx0Ly8gRk9STSBESUFMT0cgRlVOQ1RJT05TXG5cdC8vIEFkZCBuZXcgaW5jcmVtZW50YWJsZSBmaWVsZHNcblx0Q2l0ZVRCLmluY3JlbWVudEZpZWxkcyA9IGZ1bmN0aW9uICgpIHtcblx0XHRjb25zdCB0ZW1wbGF0ZSA9IENpdGVUQi5nZXRPcGVuVGVtcGxhdGUoKTtcblx0XHRjb25zdCBbY3VycmVudHJvd10gPSAkKHRoaXMpLnBhcmVudHMoJ3RyJyk7XG5cdFx0JCh0aGlzKS5wcmV2KCkuY3NzKCd3aWR0aCcsICcxMDAlJyk7XG5cdFx0JCh0aGlzKS5kZXRhY2goKTtcblx0XHRjb25zdCBlbGVtaWQgPSAkKHRoaXMpLmF0dHIoJ2lkJykgPz8gJyc7XG5cdFx0Y29uc3QgcmVzID0gL15jaXRlLWluY3ItKC4qPyktKC4qKSQvLmV4ZWMoZWxlbWlkKTtcblx0XHRpZiAoIXJlcykge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRjb25zdCBbLCAsIGdyb3VwXSA9IHJlcztcblx0XHRjb25zdCBpbmNyZW1lbnRzID0gdGVtcGxhdGUuaW5jcmVtZW50YWJsZXNbZ3JvdXBdO1xuXHRcdGNvbnN0IHtmaWVsZHN9ID0gaW5jcmVtZW50cztcblx0XHR0ZW1wbGF0ZS5pbmNyZW1lbnRhYmxlc1tncm91cF0udmFsICs9IDE7XG5cdFx0Y29uc3QgdHJzID0gdGVtcGxhdGUubWFrZUZvcm1Jbm5lcihmaWVsZHMsIGZhbHNlKTtcblx0XHR0cnMucmV2ZXJzZSgpO1xuXHRcdGZvciAoY29uc3QgdHIgb2YgdHJzKSB7XG5cdFx0XHQkKGN1cnJlbnRyb3cpLmFmdGVyKHRyKTtcblx0XHR9XG5cdH07XG5cblx0Ly8gZmlsbCB0aGUgYWNjZXNzZGF0ZSBwYXJhbSB3aXRoIHRoZSBjdXJyZW50IGRhdGVcblx0Q2l0ZVRCLmZpbGxBY2Nlc3NkYXRlID0gZnVuY3Rpb24gKCkge1xuXHRcdGNvbnN0IGVsZW1pZCA9ICQodGhpcykuYXR0cignaWQnKSA/PyAnJztcblx0XHRjb25zdCByZXMgPSAvXmNpdGUtZGF0ZS0oLio/KS0oLiopJC8uZXhlYyhlbGVtaWQpO1xuXHRcdGNvbnN0IFssIGlkXSA9IHJlcztcblx0XHRpZiAoIXJlcykge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRjb25zdCBbLCAsIGZpZWxkXSA9IHJlcztcblx0XHRjb25zdCBEVCA9IG5ldyBEYXRlKCk7XG5cdFx0Y29uc3QgZGF0ZXN0ciA9IENpdGVUQi5mb3JtYXREYXRlKERUKTtcblx0XHQkKGAjY2l0ZS0ke2lkfS0ke2ZpZWxkfWApLnZhbChkYXRlc3RyKTtcblx0XHRyZXR1cm4gZmFsc2U7XG5cdH07XG5cblx0Q2l0ZVRCLmZvcm1hdERhdGUgPSAoRFQsIHVzZWRheSwgdXNlbW9udGgpID0+IHtcblx0XHRpZiAodXNlZGF5ID09PSB1bmRlZmluZWQpIHtcblx0XHRcdHVzZWRheSA9IHRydWU7XG5cdFx0fVxuXHRcdGlmICh1c2Vtb250aCA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0XHR1c2Vtb250aCA9IHRydWU7XG5cdFx0fVxuXHRcdGxldCBkYXRlc3RyID0gQ2l0ZVRCLmdldE9wdGlvbignZGF0ZSBmb3JtYXQnKTtcblx0XHRsZXQgem1vbnRoID0gJyc7XG5cdFx0bGV0IG1vbnRoID0gRFQuZ2V0VVRDTW9udGgoKSArIDE7XG5cdFx0aWYgKG1vbnRoIDwgMTApIHtcblx0XHRcdHptb250aCA9IGAwJHttb250aC50b1N0cmluZygpfWA7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHptb250aCA9IG1vbnRoLnRvU3RyaW5nKCk7XG5cdFx0fVxuXHRcdG1vbnRoID0gbW9udGgudG9TdHJpbmcoKTtcblx0XHRsZXQgemRhdGUgPSAnJztcblx0XHRsZXQgZGF0ZSA9IERULmdldFVUQ0RhdGUoKTtcblx0XHRpZiAoZGF0ZSA8IDEwKSB7XG5cdFx0XHR6ZGF0ZSA9IGAwJHtkYXRlLnRvU3RyaW5nKCl9YDtcblx0XHR9IGVsc2Uge1xuXHRcdFx0emRhdGUgPSBkYXRlLnRvU3RyaW5nKCk7XG5cdFx0fVxuXHRcdGRhdGUgPSBkYXRlLnRvU3RyaW5nKCk7XG5cdFx0aWYgKHVzZWRheSkge1xuXHRcdFx0ZGF0ZXN0ciA9IGRhdGVzdHIucmVwbGFjZSgnPGRhdGU+JywgZGF0ZSk7XG5cdFx0XHRkYXRlc3RyID0gZGF0ZXN0ci5yZXBsYWNlKCc8emRhdGU+JywgemRhdGUpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRkYXRlc3RyID0gZGF0ZXN0ci5yZXBsYWNlKCc8ZGF0ZT4nLCAnJyk7XG5cdFx0XHRkYXRlc3RyID0gZGF0ZXN0ci5yZXBsYWNlKCc8emRhdGU+JywgJycpO1xuXHRcdH1cblx0XHRpZiAodXNlbW9udGgpIHtcblx0XHRcdGRhdGVzdHIgPSBkYXRlc3RyLnJlcGxhY2UoJzxtb250aD4nLCBtb250aCk7XG5cdFx0XHRkYXRlc3RyID0gZGF0ZXN0ci5yZXBsYWNlKCc8em1vbnRoPicsIHptb250aCk7XG5cdFx0XHRkYXRlc3RyID0gZGF0ZXN0ci5yZXBsYWNlKCc8bW9udGhuYW1lPicsIENpdGVUQi5nZXRPcHRpb24oJ21vbnRocycpW0RULmdldFVUQ01vbnRoKCldKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0ZGF0ZXN0ciA9IGRhdGVzdHIucmVwbGFjZSgnPG1vbnRoPicsICcnKTtcblx0XHRcdGRhdGVzdHIgPSBkYXRlc3RyLnJlcGxhY2UoJzx6bW9udGg+JywgJycpO1xuXHRcdFx0ZGF0ZXN0ciA9IGRhdGVzdHIucmVwbGFjZSgnPG1vbnRobmFtZT4nLCAnJyk7XG5cdFx0fVxuXHRcdGRhdGVzdHIgPSBkYXRlc3RyLnJlcGxhY2UoJzx5ZWFyPicsIERULmdldFVUQ0Z1bGxZZWFyKCkudG9TdHJpbmcoKSk7XG5cdFx0cmV0dXJuIGRhdGVzdHIucmVwbGFjZSgvXlsgL1xcLSwuXSooLio/KVsgL1xcLSwuXSokL2csICckMScpOyAvLyBDbGVhbnVwIGFueSBkYW5nbGluZyBzcGFjZXMgb3IgY29ubmVjdG9ycyB0aGF0IG1pZ2h0IHJlc3VsdCBmcm9tIG9taXR0aW5nIGRhdGUvbW9udGhcblx0fTtcblxuXHQvLyBGdW5jdGlvbiBjYWxsZWQgYWZ0ZXIgdGhlIHJlZiBsaXN0IGlzIGxvYWRlZCwgdG8gYWN0dWFsbHkgc2V0IHRoZSBjb250ZW50cyBvZiB0aGUgbmFtZWQgcmVmIGRpYWxvZ1xuXHQvLyBVbnRpbCB0aGUgbGlzdCBpcyBsb2FkZWQsIGl0cyBqdXN0IGEgXCJMb2FkaW5nXCIgcGxhY2Vob2xkZXJcblx0Q2l0ZVRCLnNldHVwTmFtZWRSZWZzID0gKCkgPT4ge1xuXHRcdGNvbnN0IG5hbWVzID0gW107XG5cdFx0bGV0IGk7XG5cdFx0Zm9yIChpID0gMDsgaSA8IENpdGVUQi5tYWluUmVmTGlzdC5sZW5ndGg7IGkrKykge1xuXHRcdFx0aWYgKCFDaXRlVEIubWFpblJlZkxpc3RbaV0uc2hvcnR0YWcgJiYgQ2l0ZVRCLm1haW5SZWZMaXN0W2ldLnJlZm5hbWUpIHtcblx0XHRcdFx0bmFtZXMucHVzaChDaXRlVEIubWFpblJlZkxpc3RbaV0pO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRjb25zdCBzdHVmZiA9ICQoJzxkaXY+Jyk7XG5cdFx0JGJvZHkuZmluZCgnI2NpdGV0b29sYmFyLW5hbWVkcmVmcycpLmh0bWwoc3R1ZmYpO1xuXHRcdGlmIChuYW1lcy5sZW5ndGggPT09IDApIHtcblx0XHRcdHN0dWZmLmh0bWwoZ2V0TWVzc2FnZSgnY2l0ZS1uby1uYW1lZHJlZnMnKSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHN0dWZmLmh0bWwoZ2V0TWVzc2FnZSgnY2l0ZS1uYW1lZHJlZnMtaW50cm8nKSk7XG5cdFx0XHRjb25zdCBzZWxlY3QgPSAkKCc8c2VsZWN0PicpLmF0dHIoJ2lkJywgJ2NpdGUtbmFtZWRyZWYtc2VsZWN0Jyk7XG5cdFx0XHRzZWxlY3QuYXBwZW5kKCQoJzxvcHRpb24+JykuYXR0cigndmFsdWUnLCAnJykudGV4dChnZXRNZXNzYWdlKCdjaXRlLW5hbWVkLXJlZnMtZHJvcGRvd24nKSkpO1xuXHRcdFx0Zm9yIChpID0gMDsgaSA8IG5hbWVzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdHNlbGVjdC5hcHBlbmQoJCgnPG9wdGlvbj4nKS50ZXh0KG5hbWVzW2ldLnJlZm5hbWUpKTtcblx0XHRcdH1cblx0XHRcdHN0dWZmLmFmdGVyKHNlbGVjdCk7XG5cdFx0XHRzZWxlY3QuYmVmb3JlKCc8YnI+Jyk7XG5cdFx0XHRjb25zdCBwcmV2bGFiZWwgPSAkKCc8ZGl2PicpXG5cdFx0XHRcdC5hdHRyKCdpZCcsICdjaXRlLW5yZWYtcHJldmlldy1sYWJlbCcpXG5cdFx0XHRcdC5jc3MoJ2Rpc3BsYXknLCAnbm9uZScpXG5cdFx0XHRcdC5odG1sKGdldE1lc3NhZ2UoJ2NpdGUtcmF3LXByZXZpZXcnKSk7XG5cdFx0XHRzZWxlY3QuYWZ0ZXIocHJldmxhYmVsKTtcblx0XHRcdHByZXZsYWJlbC5iZWZvcmUoJzxicj48YnI+Jyk7XG5cdFx0XHRwcmV2bGFiZWwuYWZ0ZXIoJzxkaXYgaWQ9XCJjaXRlLW5hbWVkcmVmLXByZXZpZXdcIiBzdHlsZT1cInBhZGRpbmc6MC41ZW07IGZvbnQtc2l6ZToxMTAlXCIgLz4nKTtcblx0XHRcdGNvbnN0IHBhcnNlbGFiZWwgPSAkKCc8c3Bhbj4nKVxuXHRcdFx0XHQuYXR0cignaWQnLCAnY2l0ZS1wYXJzZWQtbGFiZWwnKVxuXHRcdFx0XHQuY3NzKCdkaXNwbGF5JywgJ25vbmUnKVxuXHRcdFx0XHQuaHRtbChnZXRNZXNzYWdlKCdjaXRlLXBhcnNlZC1sYWJlbCcpKTtcblx0XHRcdCRib2R5LmZpbmQoJyNjaXRlLW5hbWVkcmVmLXByZXZpZXcnKS5hZnRlcihwYXJzZWxhYmVsKTtcblx0XHRcdHBhcnNlbGFiZWwuYWZ0ZXIoJzxkaXYgaWQ9XCJjaXRlLW5hbWVkcmVmLXBhcnNlZFwiIHN0eWxlPVwicGFkZGluZy1ib3R0b206MC41ZW07IGZvbnQtc2l6ZToxMTAlXCIgLz4nKTtcblx0XHRcdGNvbnN0IGxpbmsgPSAkKCc8YT4nKVxuXHRcdFx0XHQuYXR0cih7XG5cdFx0XHRcdFx0aHJlZjogJyMnLFxuXHRcdFx0XHRcdGlkOiAnY2l0ZS1ucmVmLXBhcnNlJyxcblx0XHRcdFx0fSlcblx0XHRcdFx0LmNzcyh7XG5cdFx0XHRcdFx0bWFyZ2luOiAnMCAxZW0gMCAxZW0nLFxuXHRcdFx0XHRcdGRpc3BsYXk6ICdub25lJyxcblx0XHRcdFx0XHRjb2xvcjogJyMwMDAwOGInLFxuXHRcdFx0XHR9KTtcblx0XHRcdGxpbmsuaHRtbChnZXRNZXNzYWdlKCdjaXRlLWZvcm0tcGFyc2UnKSk7XG5cdFx0XHQkYm9keS5maW5kKCcjY2l0ZS1uYW1lZHJlZi1wYXJzZWQnKS5hZnRlcihsaW5rKTtcblxuXHRcdFx0JGJvZHkuZmluZCgnI2NpdGUtbmFtZWRyZWYtc2VsZWN0Jykub24oJ2NoYW5nZScsIENpdGVUQi5uYW1lZFJlZlNlbGVjdENsaWNrKTtcblx0XHRcdCRib2R5LmZpbmQoJyNjaXRlLW5yZWYtcGFyc2UnKS5vbignY2xpY2snLCBDaXRlVEIubnJlZlBhcnNlQ2xpY2spO1xuXHRcdH1cblx0fTtcblxuXHQvLyBDYWxsYmFjayBmdW5jdGlvbiBmb3IgcGFyc2VkIHByZXZpZXdcblx0Q2l0ZVRCLmZpbGxOcmVmUHJldmlldyA9IChwYXJzZWQpID0+IHtcblx0XHQkYm9keS5maW5kKCcjY2l0ZS1wYXJzZWQtbGFiZWwnKS5zaG93KCk7XG5cdFx0JGJvZHkuZmluZCgnI2NpdGUtbmFtZWRyZWYtcGFyc2VkJykuaHRtbChwYXJzZWQpO1xuXHR9O1xuXG5cdC8vIENsaWNrIGhhbmRsZXIgZm9yIHRoZSBuYW1lZC1yZWYgcGFyc2VkIHByZXZpZXdcblx0Q2l0ZVRCLm5yZWZQYXJzZUNsaWNrID0gKCkgPT4ge1xuXHRcdGNvbnN0IGNob2ljZSA9ICRib2R5LmZpbmQoJyNjaXRlLW5hbWVkcmVmLXNlbGVjdCcpLnZhbCgpO1xuXHRcdGlmIChjaG9pY2UgPT09ICcnKSB7XG5cdFx0XHQkYm9keS5maW5kKCcjY2l0ZS1wYXJzZWQtbGFiZWwnKS5oaWRlKCk7XG5cdFx0XHQkYm9keS5maW5kKCcjY2l0ZS1uYW1lZHJlZi1wYXJzZWQnKS50ZXh0KCcnKTtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cdFx0JGJvZHkuZmluZCgnI2NpdGUtbnJlZi1wYXJzZScpLmhpZGUoKTtcblx0XHRmb3IgKGNvbnN0IHJlZiBvZiBDaXRlVEIubWFpblJlZkxpc3QpIHtcblx0XHRcdGlmICghcmVmLnNob3J0dGFnICYmIHJlZi5yZWZuYW1lID09PSBjaG9pY2UpIHtcblx0XHRcdFx0Q2l0ZVRCLnBhcnNlKHJlZi5jb250ZW50LCBDaXRlVEIuZmlsbE5yZWZQcmV2aWV3KTtcblx0XHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdFx0fVxuXHRcdH1cblx0fTtcblxuXHQvLyBDbGljayBoYW5kbGVyIGZvciB0aGUgbmFtZWQtcmVmIGRyb3Bkb3duXG5cdENpdGVUQi5sYXN0bmFtZWRyZWZjaG9pY2UgPSAnJztcblx0Q2l0ZVRCLm5hbWVkUmVmU2VsZWN0Q2xpY2sgPSAoKSA9PiB7XG5cdFx0Y29uc3QgY2hvaWNlID0gJGJvZHkuZmluZCgnI2NpdGUtbmFtZWRyZWYtc2VsZWN0JykudmFsKCk7XG5cdFx0aWYgKENpdGVUQi5sYXN0bmFtZWRyZWZjaG9pY2UgPT09IGNob2ljZSkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRDaXRlVEIubGFzdG5hbWVkcmVmY2hvaWNlID0gY2hvaWNlO1xuXHRcdCRib2R5LmZpbmQoJyNjaXRlLXBhcnNlZC1sYWJlbCcpLmhpZGUoKTtcblx0XHQkYm9keS5maW5kKCcjY2l0ZS1uYW1lZHJlZi1wYXJzZWQnKS50ZXh0KCcnKTtcblx0XHRpZiAoY2hvaWNlID09PSAnJykge1xuXHRcdFx0JGJvZHkuZmluZCgnI2NpdGUtbnJlZi1wcmV2aWV3LWxhYmVsJykuaGlkZSgpO1xuXHRcdFx0JGJvZHkuZmluZCgnI2NpdGUtbmFtZWRyZWYtcHJldmlldycpLnRleHQoJycpO1xuXHRcdFx0JGJvZHkuZmluZCgnI2NpdGUtbnJlZi1wYXJzZScpLmhpZGUoKTtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0Zm9yIChjb25zdCByZWYgb2YgQ2l0ZVRCLm1haW5SZWZMaXN0KSB7XG5cdFx0XHRpZiAoIXJlZi5zaG9ydHRhZyAmJiByZWYucmVmbmFtZSA9PT0gY2hvaWNlKSB7XG5cdFx0XHRcdCRib2R5LmZpbmQoJyNjaXRlLW5yZWYtcHJldmlldy1sYWJlbCcpLnNob3coKTtcblx0XHRcdFx0JGJvZHkuZmluZCgnI2NpdGUtbmFtZWRyZWYtcHJldmlldycpLnRleHQocmVmLmNvbnRlbnQpO1xuXHRcdFx0XHRpZiAoQ2l0ZVRCLmdldE9wdGlvbignYXV0b3BhcnNlJykpIHtcblx0XHRcdFx0XHRDaXRlVEIubnJlZlBhcnNlQ2xpY2soKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHQkYm9keS5maW5kKCcjY2l0ZS1ucmVmLXBhcnNlJykuc2hvdygpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9O1xuXG5cdC8vIGNhbGxiYWNrIGZ1bmN0aW9uIGZvciBwYXJzZWQgcHJldmlld1xuXHRDaXRlVEIuZmlsbFRlbXBsYXRlUHJldmlldyA9ICh0ZXh0KSA9PiB7XG5cdFx0Y29uc3QgdGVtcGxhdGUgPSBDaXRlVEIuZ2V0T3BlblRlbXBsYXRlKCk7XG5cdFx0Y29uc3QgZGl2ID0gJChgI2NpdGV0b29sYmFyLSR7Q2l0ZVRCLmVzY1N0cih0ZW1wbGF0ZS5zaG9ydGZvcm0pfWApO1xuXHRcdGRpdi5maW5kKCcuY2l0ZS1wcmV2LXBhcnNlZC1sYWJlbCcpLnNob3coKTtcblx0XHRkaXYuZmluZCgnLmNpdGUtcHJldmlldy1wYXJzZWQnKS5odG1sKHRleHQpO1xuXHR9O1xuXG5cdC8vIENsaWNrIGhhbmRsZXIgZm9yIHRlbXBsYXRlIHBhcnNlZCBwcmV2aWV3XG5cdENpdGVUQi5wcmV2UGFyc2VDbGljayA9ICgpID0+IHtcblx0XHRjb25zdCByZWYgPSBDaXRlVEIuZ2V0UmVmKHRydWUsIGZhbHNlKTtcblx0XHRjb25zdCB0ZW1wbGF0ZSA9IENpdGVUQi5nZXRPcGVuVGVtcGxhdGUoKTtcblx0XHRjb25zdCBkaXYgPSAkKGAjY2l0ZXRvb2xiYXItJHtDaXRlVEIuZXNjU3RyKHRlbXBsYXRlLnNob3J0Zm9ybSl9YCk7XG5cdFx0ZGl2LmZpbmQoJy5jaXRlLXByZXYtcGFyc2UnKS5oaWRlKCk7XG5cdFx0Q2l0ZVRCLnBhcnNlKHJlZiwgQ2l0ZVRCLmZpbGxUZW1wbGF0ZVByZXZpZXcpO1xuXHR9O1xuXG5cdC8vIFNob3cvaGlkZSB0aGUgZXh0cmEgZmllbGRzIGluIHRoZSBkaWFsb2cgYm94XG5cdENpdGVUQi5zaG93SGlkZUV4dHJhID0gKCkgPT4ge1xuXHRcdGNvbnN0IHRlbXBsYXRlID0gQ2l0ZVRCLmdldE9wZW5UZW1wbGF0ZSgpO1xuXHRcdGNvbnN0IGRpdiA9ICQoYCNjaXRldG9vbGJhci0ke0NpdGVUQi5lc2NTdHIodGVtcGxhdGUuc2hvcnRmb3JtKX1gKTtcblx0XHRjb25zdCBzZXR0aW5nID0gZGl2LmZpbmQoJy5jaXRlLWZvcm0tc3RhdHVzJykudmFsKCk7XG5cdFx0aWYgKHNldHRpbmcgPT09ICdjbG9zZWQnKSB7XG5cdFx0XHRkaXYuZmluZCgnLmNpdGUtZm9ybS1zdGF0dXMnKS52YWwoJ29wZW4nKTtcblx0XHRcdGRpdi5maW5kKCcuY2l0ZS1leHRyYS1maWVsZHMnKS5zaG93KDEsICgpID0+IHtcblx0XHRcdFx0Ly8galF1ZXJ5IGFkZHMgYGRpc3BsYXk6IGJsb2NrYCwgd2hpY2ggc2NyZXdzIHRoaW5ncyB1cFxuXHRcdFx0XHRkaXYuZmluZCgnLmNpdGUtZXh0cmEtZmllbGRzJykuY3NzKHtcblx0XHRcdFx0XHR3aWR0aDogJzEwMCUnLFxuXHRcdFx0XHRcdCdiYWNrZ3JvdW5kLWNvbG9yJzogJ3RyYW5zcGFyZW50Jyxcblx0XHRcdFx0fSk7XG5cdFx0XHR9KTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0ZGl2LmZpbmQoJy5jaXRlLWZvcm0tc3RhdHVzJykudmFsKCdjbG9zZWQnKTtcblx0XHRcdGRpdi5maW5kKCcuY2l0ZS1leHRyYS1maWVsZHMnKS5oaWRlKCk7XG5cdFx0fVxuXHR9O1xuXG5cdC8vIFJlc2V0cyBmb3JtIGZpZWxkcyBhbmQgcHJldmlld3Ncblx0Ly8gUmVzZXRzIGZvcm0gZmllbGRzIGFuZCBwcmV2aWV3c1xuXHRDaXRlVEIucmVzZXRGb3JtID0gKCkgPT4ge1xuXHRcdGNvbnN0IHRlbXBsYXRlID0gQ2l0ZVRCLmdldE9wZW5UZW1wbGF0ZSgpO1xuXHRcdGNvbnN0IGRpdiA9ICQoYCNjaXRldG9vbGJhci0ke0NpdGVUQi5lc2NTdHIodGVtcGxhdGUuc2hvcnRmb3JtKX1gKTtcblx0XHRkaXYuaHRtbCh0ZW1wbGF0ZS5nZXRGb3JtKCkpO1xuXHR9O1xuXG5cdC8vIFNUUklORyBVVElMSVRZIEZVTkNUSU9OU1xuXHQvLyBSZXR1cm5zIGEgc3RyaW5nIHF1b3RlZCBhcyBuZWNlc3NhcnkgZm9yIG5hbWUvZ3JvdXAgYXR0cmlidXRlc1xuXHRDaXRlVEIuZ2V0UXVvdGVkU3RyaW5nID0gKHMpID0+IHtcblx0XHRjb25zdCBzcSA9IC8nLy50ZXN0KHMpOyAvLyBzaW5nbGUgcXVvdGVzXG5cdFx0Y29uc3QgZHEgPSAvXCIvLnRlc3Qocyk7IC8vIGRvdWJsZSBxdW90ZXNcblx0XHRpZiAoIXNxICYmICFkcSkge1xuXHRcdFx0Ly8gQWx3YXlzIHF1b3RlcyBmb3Igbm9uLWxhdGluIGFscGhhYmV0XG5cdFx0XHRyZXR1cm4gYFwiJHtzfVwiYDtcblx0XHR9IGVsc2UgaWYgKCFkcSkge1xuXHRcdFx0Ly8gQ2FuIHVzZSBkb3VibGUgcXVvdGVzXG5cdFx0XHRyZXR1cm4gYFwiJHtzfVwiYDtcblx0XHR9IGVsc2UgaWYgKCFzcSkge1xuXHRcdFx0Ly8gQ2FuIHVzZSBzaW5nbGUgcXVvdGVzXG5cdFx0XHRyZXR1cm4gYCcke3N9J2A7XG5cdFx0fVxuXHRcdC8vIEhhcyBkb3VibGUgYW5kIHNpbmdsZSBxdW90ZXNcblx0XHRzID0gcy5yZXBsYWNlKC9cIi9nLCBcIidcIik7XG5cdFx0cmV0dXJuIGBcIiR7c31cImA7XG5cdH07XG5cblx0Ly8gRml4IHVwIHN0cmluZ3MgZm9yIG91dHB1dCAtIGNhcGl0YWxpemUgZmlyc3QgY2hhciwgcmVwbGFjZSB1bmRlcnNjb3JlcyB3aXRoIHNwYWNlc1xuXHRDaXRlVEIuZml4U3RyID0gKHMpID0+IHtcblx0XHRzID0gcy5zbGljZSgwLCAxKS50b1VwcGVyQ2FzZSgpICsgcy5zbGljZSgxKTtcblx0XHRzID0gcy5yZXBsYWNlKCdfJywgJyAnKTtcblx0XHRyZXR1cm4gcztcblx0fTtcblxuXHQvLyBFc2NhcGUgc3BhY2VzIGFuZCBxdW90ZXMgZm9yIHVzZSBpbiBIVE1MIGNsYXNzZXMvaWRzXG5cdENpdGVUQi5lc2NTdHIgPSAocykgPT4ge1xuXHRcdHJldHVybiBzXG5cdFx0XHQucmVwbGFjZSgvXFxzL2csICctJylcblx0XHRcdC5yZXBsYWNlKC8nL2csIFN0cmluZy5yYXdgXFwnYClcblx0XHRcdC5yZXBsYWNlKC9cIi9nLCBTdHJpbmcucmF3YFxcXCJgKTtcblx0fTtcblxuXHQvLyBNSVNDIEZVTkNUSU9OU1xuXHQvLyBEZXRlcm1pbmUgd2hpY2ggdGVtcGxhdGUgZm9ybSBpcyBvcGVuLCBhbmQgZ2V0IHRoZSB0ZW1wbGF0ZSBvYmplY3QgZm9yIGl0XG5cdENpdGVUQi5nZXRPcGVuVGVtcGxhdGUgPSAoKSA9PiB7XG5cdFx0Y29uc3QgZGlhbG9ncyA9ICRib2R5LmZpbmQoJy51aS1kaWFsb2ctY29udGVudC51aS13aWRnZXQtY29udGVudDp2aXNpYmxlJyk7XG5cdFx0Y29uc3QgdGVtcGxhdGVuYW1lID0gJChkaWFsb2dzWzBdKS5maW5kKCcuY2l0ZS10ZW1wbGF0ZScpLnZhbCgpO1xuXHRcdHJldHVybiBDaXRlVEIuVGVtcGxhdGVzW3RlbXBsYXRlbmFtZV07XG5cdH07XG5cblx0Ly8gTG9hZCBjb25maWd1cmF0aW9uIGZvciBzaXRlXG5cdHJlZlRvb2xiYXJDb25maWcoKTtcblxuXHQvLyBFbmQgb2YgY29kZSBsb2FkZWQgb25seSBvbiBlZGl0XG59O1xuXG5leHBvcnQge3JlZlRvb2xiYXIyfTtcbiIsICJpbXBvcnQgXCJlc2J1aWxkLWNzcy1tb2R1bGVzLXBsdWdpbi1ucy1jc3M6c3JjL0VkaXR0b29scy1yZWZUb29sYmFyL0VkaXR0b29scy1yZWZUb29sYmFyLm1vZHVsZS5sZXNzXCI7XG5leHBvcnQgY29uc3QgY2l0ZUZvcm1UZCA9IFwiRWRpdHRvb2xzLXJlZlRvb2xiYXItbW9kdWxlX19jaXRlRm9ybVRkX3RZdXJaYV9fNDkwXCI7XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgXCJjaXRlRm9ybVRkXCI6IGNpdGVGb3JtVGRcbn07XG4gICAgICAiLCAiPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiPjxwYXRoIGZpbGw9XCIjMDBhZjg5XCIgZD1cIk0xNiA5aC01VjRIOXY1SDR2Mmg1djVoMnYtNWg1elwiLz48L3N2Zz4iLCAiPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiPjxwYXRoIGZpbGw9XCIjMzZjXCIgZD1cIk0xNi40IDQuNEgxNFYyLjhoLTEuNnYxLjZINy42VjIuOEg2djEuNkgzLjZBMS42IDEuNiAwIDAgMCAyIDZ2OS42YTEuNiAxLjYgMCAwIDAgMS42IDEuNmgxMi44YTEuNiAxLjYgMCAwIDAgMS42LTEuNlY2YTEuNiAxLjYgMCAwIDAtMS42LTEuNm0wIDExLjJIMy42VjguNGgxMi44Wm0tMS42LTQuOGgtMy4yVjE0aDMuMnpcIi8+PC9zdmc+IiwgIjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIj48cGF0aCBmaWxsPVwiIzM2Y1wiIGQ9XCJtMTguNSAxNi42MS00Ljg2NS00Ljg2M2E2LjYxMiA2LjYxMiAwIDEgMC0xLjg4OCAxLjg4OEwxNi42MSAxOC41Wk0zLjg1OCA4LjExYTQuMjUgNC4yNSAwIDEgMSA0LjI1IDQuMjUgNC4yNSA0LjI1IDAgMCAxLTQuMjUtNC4yNVwiLz48L3N2Zz4iLCAiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50ICovXG4vLyBAdHMtbm9jaGVja1xuaW1wb3J0IHtjaXRlRm9ybVRkfSBmcm9tICcuLi9FZGl0dG9vbHMtcmVmVG9vbGJhci5tb2R1bGUubGVzcyc7XG5pbXBvcnQge2dldE1lc3NhZ2V9IGZyb20gJy4vdXRpbC9nZXRNZXNzYWdlJztcbmltcG9ydCBvb2pzVWlBZGQgZnJvbSAnLi4vaW1hZ2VzL2FkZC5zdmcnO1xuaW1wb3J0IG9vanNVaUNhbGVuZGFyIGZyb20gJy4uL2ltYWdlcy9jYWxlbmRhci5zdmcnO1xuaW1wb3J0IG9vanNVaVNlYXJjaCBmcm9tICcuLi9pbWFnZXMvc2VhcmNoLnN2Zyc7XG5cbmNvbnN0IHJlZlRvb2xiYXJCYXNlID0gKCkgPT4ge1xuXHR3aW5kb3cuQ2l0ZVRCIHx8PSB7XG5cdFx0VGVtcGxhdGVzOiB7fSwgLy8gQWxsIHRlbXBsYXRlc1xuXHRcdE9wdGlvbnM6IHt9LCAvLyBHbG9iYWwgb3B0aW9uc1xuXHRcdFVzZXJPcHRpb25zOiB7fSwgLy8gVXNlciBvcHRpb25zXG5cdFx0RGVmYXVsdE9wdGlvbnM6IHt9LCAvLyBTY3JpcHQgZGVmYXVsdHNcblx0fTtcblxuXHQvLyBDbGFzcyBmb3IgY2l0ZSB0ZW1wbGF0ZXNcblx0d2luZG93LkNpdGVUZW1wbGF0ZSA9IGNsYXNzIENpdGVUZW1wbGF0ZSB7XG5cdFx0Y29uc3RydWN0b3IodGVtcGxhdGVuYW1lLCBzaG9ydGZvcm0sIGJhc2ljZmllbGRzLCBleHBhbmRlZGZpZWxkcykge1xuXHRcdFx0Ly8gUHJvcGVydGllc1xuXHRcdFx0dGhpcy50ZW1wbGF0ZW5hbWUgPSB0ZW1wbGF0ZW5hbWU7IC8vIFRoZSB0ZW1wbGF0ZSBuYW1lIC0gXCJjaXRlIHdlYlwiLCBcImNpdGUgYm9va1wiLCBldGMuXG5cdFx0XHR0aGlzLnNob3J0Zm9ybSA9IHNob3J0Zm9ybTsgLy8gQSBzaG9ydCBmb3JtLCB1c2VkIGZvciB0aGUgZHJvcGRvd24gYm94XG5cdFx0XHR0aGlzLmJhc2ljID0gYmFzaWNmaWVsZHM7IC8vIEJhc2ljIGZpZWxkcyAtIGF1dGhvciwgdGl0bGUsIHB1Ymxpc2hlci4uLlxuXG5cdFx0XHQvLyBMZXNzIGNvbW1vbiAtIHF1b3RlLCBhcmNoaXZldXJsIC0gc2hvdWxkIGJlIGV2ZXJ5dGhpbmcgdGhlIHRlbXBsYXRlIHN1cHBvcnRzIG1pbnVzIHRoZSBiYXNpYyBvbmVzXG5cdFx0XHR0aGlzLmV4dHJhID0gZXhwYW5kZWRmaWVsZHM7XG5cdFx0XHR0aGlzLmluY3JlbWVudGFibGVzID0ge307XG5cblx0XHRcdC8vIEFkZCBpdCB0byB0aGUgbGlzdFxuXHRcdFx0Q2l0ZVRCLlRlbXBsYXRlc1t0aGlzLnRlbXBsYXRlbmFtZV0gPSB0aGlzO1xuXHRcdH1cblx0XHRtYWtlRm9ybUlubmVyKGZpZWxkcywgaW5jcnNldHVwKSB7XG5cdFx0XHRjb25zdCB0cnMgPSBbXTtcblx0XHRcdGNvbnN0IGF1dG9maWxscyA9IFtdO1xuXHRcdFx0bGV0IHRyO1xuXHRcdFx0Zm9yIChjb25zdCBbaSwgZmllbGRvYmpdIG9mIGZpZWxkcy5lbnRyaWVzKCkpIHtcblx0XHRcdFx0bGV0IHtmaWVsZH0gPSBmaWVsZG9iajtcblx0XHRcdFx0bGV0IGxhYmVsZmllbGQgPSBmaWVsZG9iai5maWVsZDtcblx0XHRcdFx0bGV0IGFkID0gZmFsc2U7XG5cdFx0XHRcdGxldCBpbTtcblx0XHRcdFx0aWYgKGluY3JzZXR1cCAmJiBmaWVsZG9iai5pbmNyZW1lbnRfZ3JvdXApIHtcblx0XHRcdFx0XHRmaWVsZCA9IGZpZWxkb2JqLmZpZWxkLnJlcGxhY2UoJzxOPicsICcxJyk7XG5cdFx0XHRcdFx0bGFiZWxmaWVsZCA9IGZpZWxkb2JqLmZpZWxkLnJlcGxhY2UoJzxOPicsICcnKTtcblx0XHRcdFx0XHRpZiAoXG5cdFx0XHRcdFx0XHR0aGlzLmluY3JlbWVudGFibGVzW2ZpZWxkb2JqLmluY3JlbWVudF9ncm91cF0gJiZcblx0XHRcdFx0XHRcdCF0aGlzLmluY3JlbWVudGFibGVzW2ZpZWxkb2JqLmluY3JlbWVudF9ncm91cF0uc2V0dXBcblx0XHRcdFx0XHQpIHtcblx0XHRcdFx0XHRcdC8vIFRoZSBvYmplY3QgaGFzIGJlZW4gY3JlYXRlZCwgYnV0IG5vdCBmdWxseSBpbml0aWFsaXplZFxuXHRcdFx0XHRcdFx0dGhpcy5pbmNyZW1lbnRhYmxlc1tmaWVsZG9iai5pbmNyZW1lbnRfZ3JvdXBdLmZpZWxkcy5wdXNoKGZpZWxkb2JqKTtcblx0XHRcdFx0XHR9IGVsc2UgaWYgKCF0aGlzLmluY3JlbWVudGFibGVzW2ZpZWxkb2JqLmluY3JlbWVudF9ncm91cF0pIHtcblx0XHRcdFx0XHRcdC8vIE9iamVjdCBub3QgeWV0IGNyZWF0ZWRcblx0XHRcdFx0XHRcdHRoaXMuaW5jcmVtZW50YWJsZXNbZmllbGRvYmouaW5jcmVtZW50X2dyb3VwXSA9IHtcblx0XHRcdFx0XHRcdFx0ZmllbGRzOiBbZmllbGRvYmpdLFxuXHRcdFx0XHRcdFx0XHR2YWw6IDEsXG5cdFx0XHRcdFx0XHRcdHNldHVwOiBmYWxzZSxcblx0XHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0fSBlbHNlIGlmIChcblx0XHRcdFx0XHRcdHRoaXMuaW5jcmVtZW50YWJsZXNbZmllbGRvYmouaW5jcmVtZW50X2dyb3VwXSAmJlxuXHRcdFx0XHRcdFx0dGhpcy5pbmNyZW1lbnRhYmxlc1tmaWVsZG9iai5pbmNyZW1lbnRfZ3JvdXBdLnNldHVwXG5cdFx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0XHQvLyBGdWxseSBpbml0aWFsaXplZCBmcm9tIGEgcHJldmlvdXMgaW52b2NhdGlvbiBvZiB0aGlzIGZ1bmN0aW9uLCBqdXN0IHJlc2V0dGluZyB0aGUgbnVtYmVyXG5cdFx0XHRcdFx0XHR0aGlzLmluY3JlbWVudGFibGVzW2ZpZWxkb2JqLmluY3JlbWVudF9ncm91cF0udmFsID0gMTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0gZWxzZSBpZiAoZmllbGRvYmouaW5jcmVtZW50X2dyb3VwKSB7XG5cdFx0XHRcdFx0Ly8gQWRkaW5nIGEgbmV3IHJvd1xuXHRcdFx0XHRcdGNvbnN0IGluY3J2YWwgPSB0aGlzLmluY3JlbWVudGFibGVzW2ZpZWxkb2JqLmluY3JlbWVudF9ncm91cF0udmFsO1xuXHRcdFx0XHRcdGZpZWxkID0gZmllbGRvYmouZmllbGQucmVwbGFjZSgnPE4+JywgaW5jcnZhbC50b1N0cmluZygpKTtcblx0XHRcdFx0XHRsYWJlbGZpZWxkID0gZmllbGRvYmouZmllbGQucmVwbGFjZSgnPE4+JywgJycpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGNvbnN0IGF1dG9kYXRlRmllbGRzID0gQ2l0ZVRCLmdldE9wdGlvbignYXV0b2RhdGUgZmllbGRzJyk7XG5cdFx0XHRcdGlmIChhdXRvZGF0ZUZpZWxkcy5pbmNsdWRlcyhmaWVsZCkpIHtcblx0XHRcdFx0XHRpbSA9ICQoJzxpbWc+JykuYXR0cignc3JjJywgYGRhdGE6aW1hZ2Uvc3ZnK3htbCwke2VuY29kZVVSSUNvbXBvbmVudChvb2pzVWlDYWxlbmRhcil9YCk7XG5cdFx0XHRcdFx0aW0uYXR0cignYWx0JywgZ2V0TWVzc2FnZSgnY2l0ZS1pbnNlcnQtZGF0ZScpKS5hdHRyKCd0aXRsZScsIGdldE1lc3NhZ2UoJ2NpdGUtaW5zZXJ0LWRhdGUnKSk7XG5cdFx0XHRcdFx0YWQgPSAkKCc8YT4nKS5hdHRyKCdocmVmJywgJyMnKTtcblx0XHRcdFx0XHRhZC5hcHBlbmQoaW0pO1xuXHRcdFx0XHRcdGFkLmF0dHIoJ2lkJywgYGNpdGUtZGF0ZS0ke0NpdGVUQi5lc2NTdHIodGhpcy5zaG9ydGZvcm0pfS0ke2ZpZWxkfWApO1xuXHRcdFx0XHRcdCQoZG9jdW1lbnQpLm9uKFxuXHRcdFx0XHRcdFx0J2NsaWNrJyxcblx0XHRcdFx0XHRcdGAjY2l0ZS1kYXRlLSR7Q2l0ZVRCLmVzY1N0cih0aGlzLnNob3J0Zm9ybSl9LSR7ZmllbGR9YCxcblx0XHRcdFx0XHRcdENpdGVUQi5maWxsQWNjZXNzZGF0ZVxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKGZpZWxkb2JqLmF1dG9maWxsaWQpIHtcblx0XHRcdFx0XHRjb25zdCBhdXRvdHlwZSA9IGZpZWxkb2JqLmF1dG9maWxsaWQ7XG5cdFx0XHRcdFx0aW0gPSAkKCc8aW1nPicpLmF0dHIoJ3NyYycsIGBkYXRhOmltYWdlL3N2Zyt4bWwsJHtlbmNvZGVVUklDb21wb25lbnQob29qc1VpU2VhcmNoKX1gKTtcblx0XHRcdFx0XHRpbS5hdHRyKCdhbHQnLCBnZXRNZXNzYWdlKCdjaXRlLWF1dG9maWxsLWFsdCcpKS5hdHRyKCd0aXRsZScsIGdldE1lc3NhZ2UoJ2NpdGUtYXV0b2ZpbGwtYWx0JykpO1xuXHRcdFx0XHRcdGFkID0gJCgnPGE+JykuYXR0cignaHJlZicsICcjJyk7XG5cdFx0XHRcdFx0YWQuYXBwZW5kKGltKTtcblx0XHRcdFx0XHRhZC5hdHRyKCdpZCcsIGBjaXRlLWF1dG8tJHtDaXRlVEIuZXNjU3RyKHRoaXMuc2hvcnRmb3JtKX0tJHtmaWVsZH0tJHthdXRvdHlwZX1gKTtcblx0XHRcdFx0XHRhdXRvZmlsbHMucHVzaChgI2NpdGUtYXV0by0ke0NpdGVUQi5lc2NTdHIodGhpcy5zaG9ydGZvcm0pfS0ke2ZpZWxkfS0ke2F1dG90eXBlfWApO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmIChmaWVsZG9iai5pbmNyZW1lbnRfYnV0dG9uKSB7XG5cdFx0XHRcdFx0Y29uc3QgaW5jcnR5cGUgPSBmaWVsZG9iai5pbmNyZW1lbnRfZ3JvdXA7XG5cdFx0XHRcdFx0aW0gPSAkKCc8aW1nPicpLmF0dHIoJ3NyYycsIGBkYXRhOmltYWdlL3N2Zyt4bWwsJHtlbmNvZGVVUklDb21wb25lbnQob29qc1VpQWRkKX1gKTtcblx0XHRcdFx0XHRpbS5hdHRyKCdhbHQnLCBnZXRNZXNzYWdlKCdjaXRlLWluY3JlbWVudC1hbHQnKSkuYXR0cigndGl0bGUnLCBnZXRNZXNzYWdlKCdjaXRlLWluY3JlbWVudC1hbHQnKSk7XG5cdFx0XHRcdFx0YWQgPSAkKCc8YT4nKS5hdHRyKCdocmVmJywgJyMnKTtcblx0XHRcdFx0XHRhZC5hcHBlbmQoaW0pO1xuXHRcdFx0XHRcdGFkLmF0dHIoJ2lkJywgYGNpdGUtaW5jci0ke0NpdGVUQi5lc2NTdHIodGhpcy5zaG9ydGZvcm0pfS0ke2luY3J0eXBlfWApO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0bGV0IGRpc3BsYXkgPSBnZXRNZXNzYWdlKGBjaXRlLSR7bGFiZWxmaWVsZH0tbGFiZWxgKTtcblx0XHRcdFx0aWYgKHR5cGVvZiBkaXNwbGF5ICE9PSAnc3RyaW5nJykge1xuXHRcdFx0XHRcdGRpc3BsYXkgPSBmaWVsZG9iai5sYWJlbCA/IENpdGVUQi5maXhTdHIoZmllbGRvYmoubGFiZWwpIDogQ2l0ZVRCLmZpeFN0cihsYWJlbGZpZWxkKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRjb25zdCB0b29sdGlwID0gZmllbGRvYmoudG9vbHRpcFxuXHRcdFx0XHRcdD8gJCgnPGFiYnI+JykuYXR0cigndGl0bGUnLCBnZXRNZXNzYWdlKGZpZWxkb2JqLnRvb2x0aXApKS5odG1sKCQoJzxzdXA+JykudGV4dCgnPycpKVxuXHRcdFx0XHRcdDogZmFsc2U7XG5cdFx0XHRcdGxldCBpbnB1dCA9ICcnO1xuXHRcdFx0XHRpbnB1dCA9ICQoJzxpbnB1dD4nKS5hdHRyKHtcblx0XHRcdFx0XHR0YWJpbmRleDogJzEnLFxuXHRcdFx0XHRcdHN0eWxlOiBhZCA/ICd3aWR0aDogODUlJyA6ICd3aWR0aDogMTAwJScsXG5cdFx0XHRcdFx0dHlwZTogJ3RleHQnLFxuXHRcdFx0XHR9KTtcblx0XHRcdFx0aW5wdXQuYXR0cignaWQnLCBgY2l0ZS0ke0NpdGVUQi5lc2NTdHIodGhpcy5zaG9ydGZvcm0pfS0ke2ZpZWxkfWApO1xuXHRcdFx0XHRpZiAoZmllbGRvYmouYXV0b2ZpbGxwcm9wKSB7XG5cdFx0XHRcdFx0bGV0IGNsYXNzbmFtZSA9IGBjaXRlLSR7Q2l0ZVRCLmVzY1N0cih0aGlzLnNob3J0Zm9ybSl9LSR7ZmllbGRvYmouYXV0b2ZpbGxwcm9wfWA7XG5cdFx0XHRcdFx0aWYgKGZpZWxkb2JqLmluY3JlbWVudF9ncm91cCkge1xuXHRcdFx0XHRcdFx0aW5wdXQuYWRkQ2xhc3MoYGNpdGUtJHtDaXRlVEIuZXNjU3RyKHRoaXMuc2hvcnRmb3JtKX0taW5jci0ke2ZpZWxkb2JqLmluY3JlbWVudF9ncm91cH1gKTtcblx0XHRcdFx0XHRcdGNsYXNzbmFtZSArPSBgLSR7dGhpcy5pbmNyZW1lbnRhYmxlc1tmaWVsZG9iai5pbmNyZW1lbnRfZ3JvdXBdLnZhbC50b1N0cmluZygpfWA7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGlucHV0LmFkZENsYXNzKGNsYXNzbmFtZSk7XG5cdFx0XHRcdH1cblx0XHRcdFx0Y29uc3QgbGFiZWwgPSAkKCc8bGFiZWw+Jyk7XG5cdFx0XHRcdGxhYmVsLmF0dHIoJ2ZvcicsIGBjaXRlLSR7Q2l0ZVRCLmVzY1N0cih0aGlzLnNob3J0Zm9ybSl9LSR7ZmllbGR9YCkudGV4dChkaXNwbGF5KTtcblx0XHRcdFx0aWYgKHRvb2x0aXApIHtcblx0XHRcdFx0XHRsYWJlbC5hcHBlbmQodG9vbHRpcCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0bGV0IHN0eWxlID0gJ3RleHQtYWxpZ246IHJpZ2h0OyB3aWR0aDogMjAlOyc7XG5cdFx0XHRcdGlmIChpICUgMiA9PT0gMSkge1xuXHRcdFx0XHRcdHN0eWxlICs9ICcgcGFkZGluZy1sZWZ0OiAxZW07Jztcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHR0ciA9ICQoJzx0cj4nKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRjb25zdCB0ZDEgPSAkKCc8dGQ+JykuYWRkQ2xhc3MoY2l0ZUZvcm1UZCkuYXR0cih7XG5cdFx0XHRcdFx0c3R5bGUsXG5cdFx0XHRcdH0pO1xuXHRcdFx0XHR0ZDEuYXBwZW5kKGxhYmVsKTtcblx0XHRcdFx0dHIuYXBwZW5kKHRkMSk7XG5cdFx0XHRcdGNvbnN0IHRkMiA9ICQoJzx0ZD4nKS5hZGRDbGFzcyhjaXRlRm9ybVRkKS5jc3MoJ3dpZHRoJywgJzMwJScpO1xuXHRcdFx0XHR0ZDIuYXBwZW5kKGlucHV0KTtcblx0XHRcdFx0aWYgKGFkKSB7XG5cdFx0XHRcdFx0dGQyLmFwcGVuZChhZCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0dHIuYXBwZW5kKHRkMik7XG5cdFx0XHRcdGlmIChpICUgMiA9PT0gMCkge1xuXHRcdFx0XHRcdHRycy5wdXNoKHRyKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0bGV0IG5lZWRzZXR1cCA9IGZhbHNlO1xuXHRcdFx0Zm9yIChjb25zdCBnIGluIHRoaXMuaW5jcmVtZW50YWJsZXMpIHtcblx0XHRcdFx0aWYgKCF0aGlzLmluY3JlbWVudGFibGVzW2ddLnNldHVwKSB7XG5cdFx0XHRcdFx0bmVlZHNldHVwID0gdHJ1ZTtcblx0XHRcdFx0XHQkKGRvY3VtZW50KS5vbignY2xpY2snLCBgI2NpdGUtaW5jci0ke0NpdGVUQi5lc2NTdHIodGhpcy5zaG9ydGZvcm0pfS0ke2d9YCwgQ2l0ZVRCLmluY3JlbWVudEZpZWxkcyk7XG5cdFx0XHRcdFx0dGhpcy5pbmNyZW1lbnRhYmxlc1tnXS5zZXR1cCA9IHRydWU7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdGlmIChuZWVkc2V0dXAgfHwgT2JqZWN0LmtleXModGhpcy5pbmNyZW1lbnRhYmxlcykubGVuZ3RoID09PSAwKSB7XG5cdFx0XHRcdGZvciAoY29uc3QgYXV0b2ZpbGwgb2YgYXV0b2ZpbGxzKSB7XG5cdFx0XHRcdFx0JChkb2N1bWVudCkub24oJ2NsaWNrJywgYXV0b2ZpbGwsIENpdGVUQi5pbml0QXV0b2ZpbGwpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gdHJzO1xuXHRcdH1cblx0XHQvLyBnaXZlcyBhIGxpdHRsZSBiaXQgb2YgSFRNTCBzbyB0aGUgb3BlbiBmb3JtIGNhbiBiZSBpZGVudGlmaWVkXG5cdFx0Z2V0SW5pdGlhbCgpIHtcblx0XHRcdGNvbnN0IGhpZGRlbiA9ICQoJzxpbnB1dD4nKS5hZGRDbGFzcygnY2l0ZS10ZW1wbGF0ZScpLmF0dHIoe1xuXHRcdFx0XHR0eXBlOiAnaGlkZGVuJyxcblx0XHRcdFx0dmFsdWU6IHRoaXMudGVtcGxhdGVuYW1lLFxuXHRcdFx0fSk7XG5cdFx0XHRyZXR1cm4gaGlkZGVuO1xuXHRcdH1cblx0XHQvLyBtYWtlcyB0aGUgZm9ybSB1c2VkIGluIHRoZSBkaWFsb2cgYm94ZXNcblx0XHRnZXRGb3JtKCkge1xuXHRcdFx0Y29uc3QgbWFpbiA9ICQoJzxkaXY+JykuYWRkQ2xhc3MoJ2NpdGUtZm9ybS1jb250YWluZXInKTtcblx0XHRcdGNvbnN0IGZvcm0xID0gJCgnPHRhYmxlPicpLmFkZENsYXNzKCdjaXRlLWJhc2ljLWZpZWxkcycpLmNzcyh7XG5cdFx0XHRcdHdpZHRoOiAnMTAwJScsXG5cdFx0XHRcdCdiYWNrZ3JvdW5kLWNvbG9yJzogJ3RyYW5zcGFyZW50Jyxcblx0XHRcdH0pO1xuXHRcdFx0bGV0IHRycyA9IHRoaXMubWFrZUZvcm1Jbm5lcih0aGlzLmJhc2ljLCB0cnVlKTtcblx0XHRcdGZvciAoY29uc3QgdHIgb2YgdHJzKSB7XG5cdFx0XHRcdGZvcm0xLmFwcGVuZCh0cik7XG5cdFx0XHR9XG5cdFx0XHRjb25zdCBmb3JtMiA9ICQoJzx0YWJsZT4nKS5hZGRDbGFzcygnY2l0ZS1leHRyYS1maWVsZHMnKS5jc3Moe1xuXHRcdFx0XHR3aWR0aDogJzEwMCUnLFxuXHRcdFx0XHQnYmFja2dyb3VuZC1jb2xvcic6ICd0cmFuc3BhcmVudCcsXG5cdFx0XHRcdGRpc3BsYXk6ICdub25lJyxcblx0XHRcdH0pO1xuXHRcdFx0dHJzID0gdGhpcy5tYWtlRm9ybUlubmVyKHRoaXMuZXh0cmEsIHRydWUpO1xuXHRcdFx0Zm9yIChjb25zdCB0ciBvZiB0cnMpIHtcblx0XHRcdFx0Zm9ybTIuYXBwZW5kKHRyKTtcblx0XHRcdH1cblx0XHRcdG1haW4uYXBwZW5kKGZvcm0xKS5hcHBlbmQoZm9ybTIpO1xuXHRcdFx0Y29uc3QgZm9ybTMgPSAkKCc8dGFibGU+JykuYWRkQ2xhc3MoJ2NpdGUtb3RoZXItZmllbGRzJykuY3NzKHtcblx0XHRcdFx0d2lkdGg6ICcxMDAlJyxcblx0XHRcdFx0J2JhY2tncm91bmQtY29sb3InOiAndHJhbnNwYXJlbnQnLFxuXHRcdFx0XHQncGFkZGluZy10b3AnOiAnMWVtJyxcblx0XHRcdH0pO1xuXHRcdFx0Y29uc3QgJHRyID0gJCgnPHRyPicpO1xuXHRcdFx0Y29uc3QgJHRkMSA9ICQoJzx0ZD4nKS5hZGRDbGFzcyhjaXRlRm9ybVRkKS5jc3Moe1xuXHRcdFx0XHQndGV4dC1hbGlnbic6ICdyaWdodCcsXG5cdFx0XHRcdHdpZHRoOiAnMjAlJyxcblx0XHRcdH0pO1xuXHRcdFx0Y29uc3QgJGxhYmVsMSA9ICQoJzxsYWJlbD4nKTtcblx0XHRcdCRsYWJlbDEuYXR0cignZm9yJywgYGNpdGUtJHtDaXRlVEIuZXNjU3RyKHRoaXMuc2hvcnRmb3JtKX0tbmFtZWApLnRleHQoZ2V0TWVzc2FnZSgnY2l0ZS1uYW1lLWxhYmVsJykpO1xuXHRcdFx0JHRkMS5hcHBlbmQoJGxhYmVsMSk7XG5cdFx0XHRjb25zdCB0ZDIgPSAkKCc8dGQ+JykuYWRkQ2xhc3MoY2l0ZUZvcm1UZCkuY3NzKCd3aWR0aCcsICczMCUnKTtcblx0XHRcdGNvbnN0IGlucHV0MSA9ICQoJzxpbnB1dD4nKS5hdHRyKHtcblx0XHRcdFx0dGFiaW5kZXg6ICcxJyxcblx0XHRcdFx0c3R5bGU6ICd3aWR0aDogMTAwJScsXG5cdFx0XHRcdHR5cGU6ICd0ZXh0Jyxcblx0XHRcdH0pO1xuXHRcdFx0aW5wdXQxLmF0dHIoJ2lkJywgYGNpdGUtJHtDaXRlVEIuZXNjU3RyKHRoaXMuc2hvcnRmb3JtKX0tbmFtZWApO1xuXHRcdFx0dGQyLmFwcGVuZChpbnB1dDEpO1xuXHRcdFx0Y29uc3QgdGQzID0gJCgnPHRkPicpLmFkZENsYXNzKGNpdGVGb3JtVGQpLmNzcyh7XG5cdFx0XHRcdCd0ZXh0LWFsaWduJzogJ3JpZ2h0Jyxcblx0XHRcdFx0J3BhZGRpbmctbGVmdCc6ICcxZW0nLFxuXHRcdFx0XHR3aWR0aDogJzIwJScsXG5cdFx0XHR9KTtcblx0XHRcdGNvbnN0IGxhYmVsMiA9ICQoJzxsYWJlbD4nKTtcblx0XHRcdGxhYmVsMi5hdHRyKCdmb3InLCBgY2l0ZS0ke0NpdGVUQi5lc2NTdHIodGhpcy5zaG9ydGZvcm0pfS1ncm91cGApLnRleHQoZ2V0TWVzc2FnZSgnY2l0ZS1ncm91cC1sYWJlbCcpKTtcblx0XHRcdHRkMy5hcHBlbmQobGFiZWwyKTtcblx0XHRcdGNvbnN0IHRkNCA9ICQoJzx0ZD4nKS5hZGRDbGFzcyhjaXRlRm9ybVRkKS5jc3MoJ3dpZHRoJywgJzMwJScpO1xuXHRcdFx0Y29uc3QgaW5wdXQyID0gJCgnPGlucHV0PicpLmF0dHIoe1xuXHRcdFx0XHR0YWJpbmRleDogJzEnLFxuXHRcdFx0XHRzdHlsZTogJ3dpZHRoOiAxMDAlJyxcblx0XHRcdFx0dHlwZTogJ3RleHQnLFxuXHRcdFx0fSk7XG5cdFx0XHRpbnB1dDIuYXR0cignaWQnLCBgY2l0ZS0ke0NpdGVUQi5lc2NTdHIodGhpcy5zaG9ydGZvcm0pfS1ncm91cGApO1xuXHRcdFx0dGQ0LmFwcGVuZChpbnB1dDIpO1xuXHRcdFx0JHRyLmFwcGVuZCgkdGQxKS5hcHBlbmQodGQyKS5hcHBlbmQodGQzKS5hcHBlbmQodGQ0KTtcblx0XHRcdGZvcm0zLmFwcGVuZCgkdHIpO1xuXHRcdFx0bWFpbi5hcHBlbmQoZm9ybTMpO1xuXHRcdFx0Y29uc3QgZXh0cmFzID0gJCgnPGRpdj4nKTtcblx0XHRcdGV4dHJhcy5hcHBlbmQoXG5cdFx0XHRcdCQoJzxpbnB1dD4nKS5hZGRDbGFzcygnY2l0ZS1mb3JtLXN0YXR1cycpLmF0dHIoe1xuXHRcdFx0XHRcdHR5cGU6ICdoaWRkZW4nLFxuXHRcdFx0XHRcdHZhbHVlOiAnY2xvc2VkJyxcblx0XHRcdFx0fSlcblx0XHRcdCk7XG5cdFx0XHRjb25zdCBoaWRkZW4gPSAkKCc8aW5wdXQ+JykuYWRkQ2xhc3MoJ2NpdGUtdGVtcGxhdGUnKS5hdHRyKCd0eXBlJywgJ2hpZGRlbicpO1xuXHRcdFx0aGlkZGVuLnZhbCh0aGlzLnRlbXBsYXRlbmFtZSk7XG5cdFx0XHRleHRyYXMuYXBwZW5kKGhpZGRlbik7XG5cdFx0XHRjb25zdCBzcGFuMSA9ICQoJzxzcGFuPicpLmFkZENsYXNzKCdjaXRlLXByZXZpZXctbGFiZWwnKS5jc3MoJ2Rpc3BsYXknLCAnbm9uZScpO1xuXHRcdFx0c3BhbjEudGV4dChnZXRNZXNzYWdlKCdjaXRlLXJhdy1wcmV2aWV3JykpO1xuXHRcdFx0ZXh0cmFzLmFwcGVuZChzcGFuMSkuYXBwZW5kKFxuXHRcdFx0XHQkKCc8ZGl2PicpLmFkZENsYXNzKCdjaXRlLXJlZi1wcmV2aWV3JykuY3NzKHtcblx0XHRcdFx0XHRwYWRkaW5nOiAnMC41ZW0nLFxuXHRcdFx0XHRcdCdmb250LXNpemUnOiAnMTEwJScsXG5cdFx0XHRcdH0pXG5cdFx0XHQpO1xuXHRcdFx0Y29uc3Qgc3BhbjIgPSAkKCc8c3Bhbj4nKS5hZGRDbGFzcygnY2l0ZS1wcmV2LXBhcnNlZC1sYWJlbCcpLmNzcygnZGlzcGxheScsICdub25lJyk7XG5cdFx0XHRzcGFuMi50ZXh0KGdldE1lc3NhZ2UoJ2NpdGUtcGFyc2VkLWxhYmVsJykpO1xuXHRcdFx0ZXh0cmFzLmFwcGVuZChzcGFuMikuYXBwZW5kKFxuXHRcdFx0XHQkKCc8ZGl2PicpLmFkZENsYXNzKCdjaXRlLXByZXZpZXctcGFyc2VkJykuY3NzKHtcblx0XHRcdFx0XHQncGFkZGluZy1ib3R0b20nOiAnMC41ZW0nLFxuXHRcdFx0XHRcdCdmb250LXNpemUnOiAnMTEwJScsXG5cdFx0XHRcdH0pXG5cdFx0XHQpO1xuXHRcdFx0Y29uc3QgbGluayA9ICQoJzxhPicpLmFkZENsYXNzKCdjaXRlLXByZXYtcGFyc2UnKS5hdHRyKCdocmVmJywgJyMnKS5jc3Moe1xuXHRcdFx0XHRtYXJnaW46ICcwIDFlbScsXG5cdFx0XHRcdGRpc3BsYXk6ICdub25lJyxcblx0XHRcdFx0Y29sb3I6ICcjMDAwMDhiJyxcblx0XHRcdH0pO1xuXHRcdFx0bGluay50ZXh0KGdldE1lc3NhZ2UoJ2NpdGUtZm9ybS1wYXJzZScpKTtcblx0XHRcdGV4dHJhcy5hcHBlbmQobGluayk7XG5cdFx0XHRtYWluLmFwcGVuZChleHRyYXMpO1xuXHRcdFx0cmV0dXJuIG1haW47XG5cdFx0fVxuXHR9O1xuXG5cdCQoZG9jdW1lbnQpLmZpbmQoJ2hlYWQnKS50cmlnZ2VyKCdyZWZ0b29sYmFyYmFzZScpO1xufTtcblxuZXhwb3J0IHtyZWZUb29sYmFyQmFzZX07XG4iLCAiY29uc3QgcmVmVG9vbGJhck1lc2FnZXMgPSAoKTogdm9pZCA9PiB7XG5cdGNvbnN0IHt3Z1VzZXJMYW5ndWFnZX0gPSBtdy5jb25maWcuZ2V0KCk7XG5cblx0aWYgKHdnVXNlckxhbmd1YWdlID09PSAnZW4nKSB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cdC8vIEFsbCB1c2VyLWZhY2luZyBtZXNzYWdlc1xuXHQvLyBUT0RPOiBEb2N1bWVudCB1c2FnZVxuXHRpZiAoWyd6aC1oYW50JywgJ3poLWhrJywgJ3poLW1vJywgJ3poLXR3J10uaW5jbHVkZXMod2dVc2VyTGFuZ3VhZ2UpKSB7XG5cdFx0bXcubWVzc2FnZXMuc2V0KHtcblx0XHRcdCdjaXRlLXNlY3Rpb24tbGFiZWwnOiAn5byV55SoJyxcblx0XHRcdCdjaXRlLXRlbXBsYXRlLWxpc3QnOiAn5qih5p2/Jyxcblx0XHRcdCdjaXRlLW5hbWVkLXJlZnMtbGFiZWwnOiAn5ZCM5ZCN5paH5427Jyxcblx0XHRcdCdjaXRlLW5hbWVkLXJlZnMtdGl0bGUnOiAn5o+S5YWl5ZCM5ZCN5paH5427Jyxcblx0XHRcdCdjaXRlLW5hbWVkLXJlZnMtYnV0dG9uJzogJ+W3suWRveWQjeWPg+iAg+aWh+eNuycsXG5cdFx0XHQnY2l0ZS1uYW1lZC1yZWZzLWRyb3Bkb3duJzogJ+WQjOWQjeaWh+eNuycsXG5cdFx0XHQvLyBVc2VkIG9uIHRoZSB0b3Agb2YgdGhlIG5hbWVkIHJlZnMgbGlzdCBkcm9wc293blxuXHRcdFx0J2NpdGUtZGlhbG9nLWJhc2UnOiAn5byV55SoJyxcblx0XHRcdCdjaXRlLWZvcm0tc3VibWl0JzogJ+aPkuWFpScsXG5cdFx0XHQnY2l0ZS1mb3JtLXNob3doaWRlJzogJ+mhr+ekui/pmrHol4/poY3lpJbljYDln58nLFxuXHRcdFx0J2NpdGUtbm8tbmFtZWRyZWZzJzogJ+WcqOacrOmggeaJvuS4jeWIsOS7u+S9leWQjOWQjeaWh+eNuycsXG5cdFx0XHQnY2l0ZS1uYW1lZHJlZnMtaW50cm8nOiAn5b6e5YiX5Ye655qE5Y+D6ICD5paH542755uu6YyE5Lit6YG45pOH5LiA5YCL5ZCN5a2X44CC6bue5pOK44CM5o+S5YWl44CN5o+S5YWl5LiA5YCL5Y+D6ICD5paH54275Yiw5paH5pys5Lit44CCJyxcblx0XHRcdCdjaXRlLXJhdy1wcmV2aWV3JzogJ+WOn+Wni+eivO+8micsXG5cdFx0XHQnY2l0ZS1wYXJzZWQtbGFiZWwnOiAn6Kej5p6Q5b6M55qE5Y6f5aeL56K877yaJyxcblx0XHRcdCdjaXRlLWZvcm0tcGFyc2UnOiAn6aGv56S66Kej5p6Q5b6M55qE6aCQ6Ka9Jyxcblx0XHRcdCdjaXRlLXJlZnByZXZpZXcnOiAn6aCQ6Ka9Jyxcblx0XHRcdCdjaXRlLW5hbWUtbGFiZWwnOiAncmVm5ZCNJyxcblx0XHRcdCdjaXRlLWdyb3VwLWxhYmVsJzogJ3JlZue1hCcsXG5cdFx0XHQnY2l0ZS1mb3JtLXJlc2V0JzogJ+mHjeioreihqOWWricsXG5cdFx0XHQnY2l0ZS1sb2FkaW5nJzogJ+i8ieWFpeaVuOaTmicsXG5cdFx0XHQvLyBTaG93biB3aGlsZSBwYWdldGV4dCBpcyBiZWluZyBkb3dubG9hZGVkIGZyb20gdGhlIEFQSVxuXHRcdFx0J2NpdGUtaW5zZXJ0LWRhdGUnOiAn5o+S5YWl55W25YmN5pel5pyfJyxcblx0XHRcdC8vIEFsdC90aXRsZSB0ZXh0IGZvciBcImluc2VydCBkYXRlXCIgaWNvblxuXHRcdFx0J2NpdGUtZXJyLXJlcG9ydC1oZWFkaW5nJzogJ+W8leeUqOmMr+iqpOWgseWRiicsXG5cdFx0XHQvLyBIZWFkaW5nIGZvciBlcnJvciByZXBvcnQgdGFibGVcblx0XHRcdCdjaXRlLWVyci1yZXBvcnQtY2xvc2UnOiAn6Zec6ZaJJyxcblx0XHRcdC8vIEFsdC90aXRsZSB0ZXh0IGZvciBcImNsb3NlXCIgaWNvbiBvbiBlcnJvciByZXBvcnRcblx0XHRcdCdjaXRlLWVyci1yZXBvcnQtZW1wdHknOiAn5pyq5om+5Yiw6Yyv6KqkJyxcblx0XHRcdC8vIE1lc3NhZ2UgZGlzcGxheWVkIGluIHRoZSBlcnJvciByZXBvcnQgbGlzdCBpZiB0aGVyZSBhcmUgbm8gZXJyb3JzXG5cdFx0XHQnY2l0ZS1hdXRvZmlsbC1hbHQnOiAn6Ieq5YuV5aGr5YWFJyxcblx0XHRcdCdjaXRlLWluY3JlbWVudC1hbHQnOiAn5re75Yqg5L2c6ICFJyxcblx0XHRcdC8vIEFsdCB0ZXh0IGZvciBhdXRvZmlsbCBidXR0b24gaW1hZ2Vcblx0XHRcdCdjaXRlLXJlZi10b29sdGlwJzogJ+mMqOm7nueahOaomeitmOespu+8iOS9v+ipsuW8leeUqOWPr+S7peaIkOeCuuWFp+mDqOmAo+e1kOeahOebruaome+8iScsXG5cdFx0XHQnY2l0ZS1wb3N0c2NyaXB0LXRvb2x0aXAnOiAn5aaC5p6c6Kit5a6a6YCZ5LiA5Y+D5pW477yM5YmH6KaG6JOL5L2/55So5Y+l6bue57WC5q2i5byV5paH55qE6buY6KqN6KGM54iyJyxcblx0XHRcdCdjaXRlLWRpYWxvZy13ZWInOiAn57ay6aCB5byV55SoJyxcblx0XHRcdCdjaXRlLWRpYWxvZy1uZXdzJzogJ+aWsOiBnuW8leeUqCcsXG5cdFx0XHQnY2l0ZS1kaWFsb2ctYm9vayc6ICfmm7jnsY3lvJXnlKgnLFxuXHRcdFx0J2NpdGUtZGlhbG9nLWpvdXJuYWwnOiAn5pyf5YiK5byV55SoJyxcblx0XHRcdCdjaXRlLWRpYWxvZy1jb25mZXJlbmNlJzogJ+acg+itsOW8leeUqCcsXG5cdFx0XHQnY2l0ZS1kaWFsb2ctZW5jeWNsb3BlZGlhJzogJ+eZvuenkeWFqOabuOW8leeUqCcsXG5cdFx0XHQnY2l0ZS1hdXRob3ItbGFiZWwnOiAn5L2c6ICFJyxcblx0XHRcdCdjaXRlLXRpdGxlLWxhYmVsJzogJ+aomemhjCcsXG5cdFx0XHQnY2l0ZS11cmwtbGFiZWwnOiAn57ay5Z2AJyxcblx0XHRcdCdjaXRlLXdlYnNpdGUtbGFiZWwnOiAn57ay56uZ5ZCN56ixJyxcblx0XHRcdCdjaXRlLXdvcmstbGFiZWwnOiAn5aCx57SZ5oiW6Zuc6KqMJyxcblx0XHRcdCdjaXRlLWFnZW5jeS1sYWJlbCc6ICfpgJroqIrnpL4nLFxuXHRcdFx0J2NpdGUtcHVibGlzaGVyLWxhYmVsJzogJ+WHuueJiOiAhScsXG5cdFx0XHQnY2l0ZS1hY2Nlc3NkYXRlLWxhYmVsJzogJ+WtmOWPluaXpeacnycsXG5cdFx0XHQnY2l0ZS1sYXN0LWxhYmVsJzogJ+WnkycsXG5cdFx0XHQnY2l0ZS1maXJzdC1sYWJlbCc6ICflkI0nLFxuXHRcdFx0J2NpdGUtYXV0aG9ybGluay1sYWJlbCc6ICfkvZzogIXmop3nm64nLFxuXHRcdFx0J2NpdGUtY29hdXRob3JzLWxhYmVsJzogJ+WFtuS7luS9nOiAhScsXG5cdFx0XHQnY2l0ZS1sb2NhdGlvbi1sYWJlbCc6ICflh7rniYjlnLAnLFxuXHRcdFx0J2NpdGUtcGFnZS1sYWJlbCc6ICfmiYDlnKjpoIEnLFxuXHRcdFx0J2NpdGUtcGFnZXMtbGFiZWwnOiAn6aCB56+E5ZyNJyxcblx0XHRcdCdjaXRlLWF0LWxhYmVsJzogJ+abuOWFp+mDqOWIhicsXG5cdFx0XHQnY2l0ZS1sYW5ndWFnZS1sYWJlbCc6ICfoqp7oqIAnLFxuXHRcdFx0J2NpdGUtZm9ybWF0LWxhYmVsJzogJ+aWh+S7tuagvOW8jycsXG5cdFx0XHQnY2l0ZS1kb2ktbGFiZWwnOiAnRE9JJyxcblx0XHRcdCdjaXRlLWRhdGUtbGFiZWwnOiAn5pel5pyfJyxcblx0XHRcdCdjaXRlLW1vbnRoLWxhYmVsJzogJ+aciOS7vScsXG5cdFx0XHQnY2l0ZS15ZWFyLWxhYmVsJzogJ+W5tOS7vScsXG5cdFx0XHQnY2l0ZS1xdW90ZS1sYWJlbCc6ICfmkZjpjIQnLFxuXHRcdFx0J2NpdGUtbmV3c3BhcGVyLWxhYmVsJzogJ+aWsOiBnuWqkumrlCcsXG5cdFx0XHQnY2l0ZS1hdXRob3IyLWxhYmVsJzogJ+esrDLkvZzogIUnLFxuXHRcdFx0J2NpdGUtYXV0aG9yMy1sYWJlbCc6ICfnrKwz5L2c6ICFJyxcblx0XHRcdCdjaXRlLWF1dGhvcjQtbGFiZWwnOiAn56ysNOS9nOiAhScsXG5cdFx0XHQnY2l0ZS1hdXRob3I1LWxhYmVsJzogJ+esrDXkvZzogIUnLFxuXHRcdFx0J2NpdGUtYWdlbmN5JzogJ+mAmuioiuekvicsXG5cdFx0XHQnY2l0ZS1pc3NuLWxhYmVsJzogJ0lTU04nLFxuXHRcdFx0J2NpdGUtb2NsYy1sYWJlbCc6ICdPQ0xDJyxcblx0XHRcdCdjaXRlLWJpYmNvZGUtbGFiZWwnOiAnQmliY29kZScsXG5cdFx0XHQnY2l0ZS1pc2JuLWxhYmVsJzogJ0lTQk4nLFxuXHRcdFx0J2NpdGUtb3RoZXJzLWxhYmVsJzogJ+itr+iAhScsXG5cdFx0XHQnY2l0ZS1lZGl0aW9uLWxhYmVsJzogJ+eJiOacrCcsXG5cdFx0XHQnY2l0ZS10cmFucy10aXRsZS1sYWJlbCc6ICfnv7vora/lvozmqJnpoYwnLFxuXHRcdFx0J2NpdGUtcmVmLWxhYmVsJzogJ+mMqOm7nuaomeitmOespicsXG5cdFx0XHQnY2l0ZS1wb3N0c2NyaXB0LWxhYmVsJzogJ+e7k+WwvuespicsXG5cdFx0XHQnY2l0ZS1zZXJpZXMtbGFiZWwnOiAn57O75YiXJyxcblx0XHRcdCdjaXRlLXZvbHVtZS1sYWJlbCc6ICfljbcnLFxuXHRcdFx0J2NpdGUtdW5pZmllZC1sYWJlbCc6ICfntbHkuIDmm7jomZ8nLFxuXHRcdFx0J2NpdGUtY2hhcHRlci1sYWJlbCc6ICfnq6Dnr4AnLFxuXHRcdFx0J2NpdGUtam91cm5hbC1sYWJlbCc6ICfpm5zoqowv5pyf5YiKJyxcblx0XHRcdCdjaXRlLWlzc3VlLWxhYmVsJzogJ+acnycsXG5cdFx0XHQnY2l0ZS1wbWlkLWxhYmVsJzogJ1BNSUQnLFxuXHRcdFx0J2NpdGUtZWRpdG9yLWxhYmVsJzogJ+e3qOi8rycsXG5cdFx0XHQnY2l0ZS1lZGl0b3IxLWZpcnN0LWxhYmVsJzogJ+e3qOi8r+WQjScsXG5cdFx0XHQnY2l0ZS1lZGl0b3IxLWxhc3QtbGFiZWwnOiAn57eo6Lyv5aeTJyxcblx0XHRcdCdjaXRlLWVkaXRvcjEtbGluay1sYWJlbCc6ICfnt6jovK/mop3nm64nLFxuXHRcdFx0J2NpdGUtZWRpdG9yLWZpcnN0LWxhYmVsJzogJ+e3qOi8r+WQjScsXG5cdFx0XHQnY2l0ZS1lZGl0b3ItbGFzdC1sYWJlbCc6ICfnt6jovK/lp5MnLFxuXHRcdFx0J2NpdGUtZWRpdG9yLWxpbmstbGFiZWwnOiAn57eo6Lyv5qKd55uuJyxcblx0XHRcdCdjaXRlLXBtYy1sYWJlbCc6ICdQTUMnLFxuXHRcdFx0J2NpdGUtaWQtbGFiZWwnOiAnSUQnLFxuXHRcdFx0J2NpdGUtbGF5c3VtbWFyeS1sYWJlbCc6ICfnsKHmmI7mkZjopoEnLFxuXHRcdFx0J2NpdGUtbGF5c291cmNlLWxhYmVsJzogJ+ewoeaYjuaRmOimgeS+hua6kCcsXG5cdFx0XHQnY2l0ZS1sYXlkYXRlLWxhYmVsJzogJ+ewoeaYjuaRmOimgeaXpeacnycsXG5cdFx0XHQnY2l0ZS1jb25mZXJlbmNlLWxhYmVsJzogJ+acg+itsOWQjeeosScsXG5cdFx0XHQnY2l0ZS1jb25mZXJlbmNldXJsLWxhYmVsJzogJ+acg+itsOe2suWdgCcsXG5cdFx0XHQnY2l0ZS1ib29rdGl0bGUtbGFiZWwnOiAn6KuW5paH6ZuGJyxcblx0XHRcdCdjaXRlLWVuY3ljbG9wZWRpYS1sYWJlbCc6ICfnmb7np5Hlhajmm7jlkI0nLFxuXHRcdFx0J2NpdGUtYXV0aG9ybGluay10b29sdGlwJzogJ+iLpeipsuS9nOiAheacieaineebru+8jOWhq+Wvq+aineebruWQjeeosScsXG5cdFx0XHQnY2l0ZS1hdC10b29sdGlwJzogJ+WFp+WuueWcqOS+hua6kOS4reeahOS9jee9ru+8iOeVtuaMiemggeeivOW8leeUqOS4jemBqeeVtuaZgu+8iScsXG5cdFx0XHQnY2l0ZS1hY2Nlc3NkYXRlLXRvb2x0aXAnOiAn6Kiq5ZWP6YCZ5YCL5byV55So5L6G5rqQ5pmC55qE5pel5pyfJyxcblx0XHRcdCdjaXRlLWlkLXRvb2x0aXAnOiAn5YW25LuW55qE5paH56ug57eo6JmfJyxcblx0XHRcdCdjaXRlLXNhbWVjb250ZW50LWRlc2MnOiAn5qqi5p+l5ZCr5pyJ55u45ZCM5YWn5a6555qE5aSa5YCL5Y+D6ICD5paH5427Jyxcblx0XHRcdCdjaXRlLXNhbWVjb250ZW50LWVycm9yJzogJ+WkmuWAi+WPg+iAg+aWh+eNu+WMheWQq+acieebuOWQjOWFp+WuuScsXG5cdFx0XHQnY2l0ZS1yZXBlYXRlZC1kZXNjJzogJ+S9v+eUqOebuOWQjOWQjeWtl+eahOWkmuWAi+WPg+iAg+aWh+eNuycsXG5cdFx0XHQnY2l0ZS1yZXBlYXRlZC1lcnJvcic6ICflpJrlgIvlj4PogIPmlofnjbvkvb/nlKjkuobnm7jlkIzlkI3lrZcnLFxuXHRcdFx0J2NpdGUtdW5kZWZpbmVkLWRlc2MnOiAn5pyq5a6a576p55qE5Y+D6ICD5paH5427Jyxcblx0XHRcdCdjaXRlLXVuZGVmaW5lZC1lcnJvcic6ICfkuIDlgIvlt7Llkb3lkI3nmoTlj4PogIPmlofnjbvlt7LntpPkvb/nlKjkvYbmmK/mspLmnInlrprnvqknLFxuXHRcdFx0J2NpdGUtd29yay10b29sdGlwJzogJ+WIiueZu+ipsuS9nOWTgeeahOWHuueJiOeJqeeahOWQjeeoseOAguiri+S4jeimgeS9v+eUqOaWnOmrlCcsXG5cdFx0XHQnY2l0ZS1uZXdzcGFwZXItdG9vbHRpcCc6ICfliIrnmbvoqbLmlrDogZ7nmoTlh7rniYjnianlkI3nqLEnLFxuXHRcdFx0J2NpdGUtc2VyaWVzLXRvb2x0aXAnOiAn55W25pu457GN5piv5LiA57O75YiX5Ye654mI5ZOB5Lit55qE5YW25Lit5LiA6YOo5Lu95pmC5L2/55SoJyxcblx0XHRcdCdjaXRlLXVuaWZpZWQtdG9vbHRpcCc6ICcxOTgw5bm05Luj5LmL5YmN5Lit5ZyL5omA5L2/55So55qE5pu457GN57eo6JmfJyxcblx0XHRcdCdjaXRlLWxheXN1bW1hcnktdG9vbHRpcCc6ICfoqbLmlofnjbvnm7jpl5znmoTmlrDogZ7loLHpgZPnmoRVUkwnLFxuXHRcdFx0J2NpdGUtbGF5c291cmNlLXRvb2x0aXAnOiAn6Kmy5paH542755u46Zec55qE5paw6IGe5aCx6YGT55qE5Ye66JmVJyxcblx0XHR9KTtcblx0fSBlbHNlIHtcblx0XHRtdy5tZXNzYWdlcy5zZXQoe1xuXHRcdFx0J2NpdGUtc2VjdGlvbi1sYWJlbCc6ICflvJXnlKgnLFxuXHRcdFx0J2NpdGUtdGVtcGxhdGUtbGlzdCc6ICfmqKHmnb8nLFxuXHRcdFx0J2NpdGUtbmFtZWQtcmVmcy1sYWJlbCc6ICflkIzlkI3mlofnjK4nLFxuXHRcdFx0J2NpdGUtbmFtZWQtcmVmcy10aXRsZSc6ICfmj5LlhaXlkIzlkI3mlofnjK4nLFxuXHRcdFx0J2NpdGUtbmFtZWQtcmVmcy1idXR0b24nOiAn5bey5ZG95ZCN5Y+C6ICD5paH54yuJyxcblx0XHRcdCdjaXRlLW5hbWVkLXJlZnMtZHJvcGRvd24nOiAn5ZCM5ZCN5paH54yuJyxcblx0XHRcdC8vIFVzZWQgb24gdGhlIHRvcCBvZiB0aGUgbmFtZWQgcmVmcyBsaXN0IGRyb3Bzb3duXG5cdFx0XHQnY2l0ZS1kaWFsb2ctYmFzZSc6ICflvJXnlKgnLFxuXHRcdFx0J2NpdGUtZm9ybS1zdWJtaXQnOiAn5o+S5YWlJyxcblx0XHRcdCdjaXRlLWZvcm0tc2hvd2hpZGUnOiAn5pi+56S6L+makOiXj+mineWkluWMuuWfnycsXG5cdFx0XHQnY2l0ZS1uby1uYW1lZHJlZnMnOiAn5Zyo5pys6aG15om+5LiN5Yiw5Lu75L2V5ZCM5ZCN5paH54yuJyxcblx0XHRcdCdjaXRlLW5hbWVkcmVmcy1pbnRybyc6ICfku47liJflh7rnmoTlj4LogIPmlofnjK7nm67lvZXkuK3pgInmi6nkuIDkuKrlkI3lrZfjgILngrnlh7vigJzmj5LlhaXigJ3mj5LlhaXkuIDkuKrlj4LogIPmlofnjK7liLDmlofmnKzkuK3jgIInLFxuXHRcdFx0J2NpdGUtcmF3LXByZXZpZXcnOiAn5rqQ5Luj56CB77yaJyxcblx0XHRcdCdjaXRlLXBhcnNlZC1sYWJlbCc6ICfop6PmnpDlkI7nmoTmupDku6PnoIHvvJonLFxuXHRcdFx0J2NpdGUtZm9ybS1wYXJzZSc6ICfmmL7npLrop6PmnpDlkI7nmoTpooTop4gnLFxuXHRcdFx0J2NpdGUtcmVmcHJldmlldyc6ICfpooTop4gnLFxuXHRcdFx0J2NpdGUtbmFtZS1sYWJlbCc6ICdyZWblkI0nLFxuXHRcdFx0J2NpdGUtZ3JvdXAtbGFiZWwnOiAncmVm57uEJyxcblx0XHRcdCdjaXRlLWZvcm0tcmVzZXQnOiAn6YeN6K6+6KGo5Y2VJyxcblx0XHRcdCdjaXRlLWxvYWRpbmcnOiAn6L295YWl5pWw5o2uJyxcblx0XHRcdC8vIFNob3duIHdoaWxlIHBhZ2V0ZXh0IGlzIGJlaW5nIGRvd25sb2FkZWQgZnJvbSB0aGUgQVBJXG5cdFx0XHQnY2l0ZS1pbnNlcnQtZGF0ZSc6ICfmj5LlhaXlvZPliY3ml6XmnJ8nLFxuXHRcdFx0Ly8gQWx0L3RpdGxlIHRleHQgZm9yIFwiaW5zZXJ0IGRhdGVcIiBpY29uXG5cdFx0XHQnY2l0ZS1lcnItcmVwb3J0LWhlYWRpbmcnOiAn5byV55So6ZSZ6K+v5oql5ZGKJyxcblx0XHRcdC8vIEhlYWRpbmcgZm9yIGVycm9yIHJlcG9ydCB0YWJsZVxuXHRcdFx0J2NpdGUtZXJyLXJlcG9ydC1jbG9zZSc6ICflhbPpl60nLFxuXHRcdFx0Ly8gQWx0L3RpdGxlIHRleHQgZm9yIFwiY2xvc2VcIiBpY29uIG9uIGVycm9yIHJlcG9ydFxuXHRcdFx0J2NpdGUtZXJyLXJlcG9ydC1lbXB0eSc6ICfmnKrmib7liLDplJnor68nLFxuXHRcdFx0Ly8gTWVzc2FnZSBkaXNwbGF5ZWQgaW4gdGhlIGVycm9yIHJlcG9ydCBsaXN0IGlmIHRoZXJlIGFyZSBubyBlcnJvcnNcblx0XHRcdCdjaXRlLWF1dG9maWxsLWFsdCc6ICfoh6rliqjloavlhYUnLFxuXHRcdFx0J2NpdGUtaW5jcmVtZW50LWFsdCc6ICfmt7vliqDkvZzogIUnLFxuXHRcdFx0Ly8gQWx0IHRleHQgZm9yIGF1dG9maWxsIGJ1dHRvbiBpbWFnZVxuXHRcdFx0J2NpdGUtcmVmLXRvb2x0aXAnOiAn6ZSa54K555qE5qCH6K+G56ym77yI5L2/6K+l5byV55So5Y+v5Lul5oiQ5Li65YaF6YOo6ZO+5o6l55qE55uu5qCH77yJJyxcblx0XHRcdCdjaXRlLXBvc3RzY3JpcHQtdG9vbHRpcCc6ICflpoLmnpzorr7lrprov5nkuIDlj4LmlbDvvIzliJnopobnm5bkvb/nlKjlj6Xngrnnu4jmraLlvJXmlofnmoTpu5jorqTooYzkuLonLFxuXHRcdFx0J2NpdGUtZGlhbG9nLXdlYic6ICfnvZHpobXlvJXnlKgnLFxuXHRcdFx0J2NpdGUtZGlhbG9nLW5ld3MnOiAn5paw6Ze75byV55SoJyxcblx0XHRcdCdjaXRlLWRpYWxvZy1ib29rJzogJ+S5puexjeW8leeUqCcsXG5cdFx0XHQnY2l0ZS1kaWFsb2ctam91cm5hbCc6ICfmnJ/liIrlvJXnlKgnLFxuXHRcdFx0J2NpdGUtZGlhbG9nLWNvbmZlcmVuY2UnOiAn5Lya6K6u5byV55SoJyxcblx0XHRcdCdjaXRlLWRpYWxvZy1lbmN5Y2xvcGVkaWEnOiAn55m+56eR5YWo5Lmm5byV55SoJyxcblx0XHRcdCdjaXRlLWF1dGhvci1sYWJlbCc6ICfkvZzogIUnLFxuXHRcdFx0J2NpdGUtdGl0bGUtbGFiZWwnOiAn5qCH6aKYJyxcblx0XHRcdCdjaXRlLXVybC1sYWJlbCc6ICfnvZHlnYAnLFxuXHRcdFx0J2NpdGUtd2Vic2l0ZS1sYWJlbCc6ICfnvZHnq5nlkI3np7AnLFxuXHRcdFx0J2NpdGUtd29yay1sYWJlbCc6ICfmiqXnurjmiJbmnYLlv5cnLFxuXHRcdFx0J2NpdGUtYWdlbmN5LWxhYmVsJzogJ+mAmuiur+ekvicsXG5cdFx0XHQnY2l0ZS1wdWJsaXNoZXItbGFiZWwnOiAn5Ye654mI6ICFJyxcblx0XHRcdCdjaXRlLWFjY2Vzc2RhdGUtbGFiZWwnOiAn6K6/6Zeu5pel5pyfJyxcblx0XHRcdCdjaXRlLWxhc3QtbGFiZWwnOiAn5aeTJyxcblx0XHRcdCdjaXRlLWZpcnN0LWxhYmVsJzogJ+WQjScsXG5cdFx0XHQnY2l0ZS1hdXRob3JsaW5rLWxhYmVsJzogJ+S9nOiAheadoeebricsXG5cdFx0XHQnY2l0ZS1jb2F1dGhvcnMtbGFiZWwnOiAn5YW25LuW5L2c6ICFJyxcblx0XHRcdCdjaXRlLWxvY2F0aW9uLWxhYmVsJzogJ+WHuueJiOWcsCcsXG5cdFx0XHQnY2l0ZS1wYWdlLWxhYmVsJzogJ+aJgOWcqOmhtScsXG5cdFx0XHQnY2l0ZS1wYWdlcy1sYWJlbCc6ICfpobXojIPlm7QnLFxuXHRcdFx0J2NpdGUtYXQtbGFiZWwnOiAn5Lmm5YaF6YOo5YiGJyxcblx0XHRcdCdjaXRlLWxhbmd1YWdlLWxhYmVsJzogJ+ivreiogCcsXG5cdFx0XHQnY2l0ZS1mb3JtYXQtbGFiZWwnOiAn5paH5qGj5qC85byPJyxcblx0XHRcdCdjaXRlLWRvaS1sYWJlbCc6ICdET0knLFxuXHRcdFx0J2NpdGUtZGF0ZS1sYWJlbCc6ICfml6XmnJ8nLFxuXHRcdFx0J2NpdGUtbW9udGgtbGFiZWwnOiAn5pyI5Lu9Jyxcblx0XHRcdCdjaXRlLXllYXItbGFiZWwnOiAn5bm05Lu9Jyxcblx0XHRcdCdjaXRlLXF1b3RlLWxhYmVsJzogJ+aRmOW9lScsXG5cdFx0XHQnY2l0ZS1uZXdzcGFwZXItbGFiZWwnOiAn5paw6Ze75aqS5L2TJyxcblx0XHRcdCdjaXRlLWF1dGhvcjItbGFiZWwnOiAn56ysMuS9nOiAhScsXG5cdFx0XHQnY2l0ZS1hdXRob3IzLWxhYmVsJzogJ+esrDPkvZzogIUnLFxuXHRcdFx0J2NpdGUtYXV0aG9yNC1sYWJlbCc6ICfnrKw05L2c6ICFJyxcblx0XHRcdCdjaXRlLWF1dGhvcjUtbGFiZWwnOiAn56ysNeS9nOiAhScsXG5cdFx0XHQnY2l0ZS1hZ2VuY3knOiAn6YCa6K6v56S+Jyxcblx0XHRcdCdjaXRlLWlzc24tbGFiZWwnOiAnSVNTTicsXG5cdFx0XHQnY2l0ZS1vY2xjLWxhYmVsJzogJ09DTEMnLFxuXHRcdFx0J2NpdGUtYmliY29kZS1sYWJlbCc6ICdCaWJjb2RlJyxcblx0XHRcdCdjaXRlLWlzYm4tbGFiZWwnOiAnSVNCTicsXG5cdFx0XHQnY2l0ZS1vdGhlcnMtbGFiZWwnOiAn6K+R6ICFJyxcblx0XHRcdCdjaXRlLWVkaXRpb24tbGFiZWwnOiAn54mI5pysJyxcblx0XHRcdCdjaXRlLXRyYW5zLXRpdGxlLWxhYmVsJzogJ+e/u+ivkeWQjuagh+mimCcsXG5cdFx0XHQnY2l0ZS1yZWYtbGFiZWwnOiAn6ZSa54K55qCH6K+G56ymJyxcblx0XHRcdCdjaXRlLXBvc3RzY3JpcHQtbGFiZWwnOiAn57uT5bC+56ymJyxcblx0XHRcdCdjaXRlLXNlcmllcy1sYWJlbCc6ICfns7vliJcnLFxuXHRcdFx0J2NpdGUtdm9sdW1lLWxhYmVsJzogJ+WNtycsXG5cdFx0XHQnY2l0ZS11bmlmaWVkLWxhYmVsJzogJ+e7n+S4gOS5puWPtycsXG5cdFx0XHQnY2l0ZS1jaGFwdGVyLWxhYmVsJzogJ+eroOiKgicsXG5cdFx0XHQnY2l0ZS1qb3VybmFsLWxhYmVsJzogJ+adguW/ly/mnJ/liIonLFxuXHRcdFx0J2NpdGUtaXNzdWUtbGFiZWwnOiAn5pyfJyxcblx0XHRcdCdjaXRlLXBtaWQtbGFiZWwnOiAnUE1JRCcsXG5cdFx0XHQnY2l0ZS1lZGl0b3ItbGFiZWwnOiAn57yW6L6RJyxcblx0XHRcdCdjaXRlLWVkaXRvcjEtZmlyc3QtbGFiZWwnOiAn57yW6L6R5ZCNJyxcblx0XHRcdCdjaXRlLWVkaXRvcjEtbGFzdC1sYWJlbCc6ICfnvJbovpHlp5MnLFxuXHRcdFx0J2NpdGUtZWRpdG9yMS1saW5rLWxhYmVsJzogJ+e8lui+keadoeebricsXG5cdFx0XHQnY2l0ZS1lZGl0b3ItZmlyc3QtbGFiZWwnOiAn57yW6L6R5ZCNJyxcblx0XHRcdCdjaXRlLWVkaXRvci1sYXN0LWxhYmVsJzogJ+e8lui+keWnkycsXG5cdFx0XHQnY2l0ZS1lZGl0b3ItbGluay1sYWJlbCc6ICfnvJbovpHmnaHnm64nLFxuXHRcdFx0J2NpdGUtcG1jLWxhYmVsJzogJ1BNQycsXG5cdFx0XHQnY2l0ZS1pZC1sYWJlbCc6ICdJRCcsXG5cdFx0XHQnY2l0ZS1sYXlzdW1tYXJ5LWxhYmVsJzogJ+eugOaYjuaRmOimgScsXG5cdFx0XHQnY2l0ZS1sYXlzb3VyY2UtbGFiZWwnOiAn566A5piO5pGY6KaB5p2l5rqQJyxcblx0XHRcdCdjaXRlLWxheWRhdGUtbGFiZWwnOiAn566A5piO5pGY6KaB5pel5pyfJyxcblx0XHRcdCdjaXRlLWNvbmZlcmVuY2UtbGFiZWwnOiAn5Lya6K6u5ZCN56ewJyxcblx0XHRcdCdjaXRlLWNvbmZlcmVuY2V1cmwtbGFiZWwnOiAn5Lya6K6u572R5Z2AJyxcblx0XHRcdCdjaXRlLWJvb2t0aXRsZS1sYWJlbCc6ICforrrmlofpm4YnLFxuXHRcdFx0J2NpdGUtZW5jeWNsb3BlZGlhLWxhYmVsJzogJ+eZvuenkeWFqOS5puWQjScsXG5cdFx0XHQnY2l0ZS1hdXRob3JsaW5rLXRvb2x0aXAnOiAn6Iul6K+l5L2c6ICF5pyJ5p2h55uu77yM5aGr5YaZ5p2h55uu5ZCN56ewJyxcblx0XHRcdCdjaXRlLWF0LXRvb2x0aXAnOiAn5YaF5a655Zyo5p2l5rqQ5Lit55qE5L2N572u77yI5b2T5oyJ6aG156CB5byV55So5LiN6YCC5b2T5pe277yJJyxcblx0XHRcdCdjaXRlLWFjY2Vzc2RhdGUtdG9vbHRpcCc6ICforr/pl67ov5nkuKrlvJXnlKjmnaXmupDml7bnmoTml6XmnJ8nLFxuXHRcdFx0J2NpdGUtaWQtdG9vbHRpcCc6ICflhbbku5bnmoTmlofnq6DnvJblj7cnLFxuXHRcdFx0J2NpdGUtc2FtZWNvbnRlbnQtZGVzYyc6ICfmo4Dmn6XlkKvmnInnm7jlkIzlhoXlrrnnmoTlpJrkuKrlj4LogIPmlofnjK4nLFxuXHRcdFx0J2NpdGUtc2FtZWNvbnRlbnQtZXJyb3InOiAn5aSa5Liq5Y+C6ICD5paH54yu5YyF5ZCr5pyJ55u45ZCM5YaF5a65Jyxcblx0XHRcdCdjaXRlLXJlcGVhdGVkLWRlc2MnOiAn5L2/55So55u45ZCM5ZCN5a2X55qE5aSa5Liq5Y+C6ICD5paH54yuJyxcblx0XHRcdCdjaXRlLXJlcGVhdGVkLWVycm9yJzogJ+WkmuS4quWPguiAg+aWh+eMruS9v+eUqOS6huebuOWQjOWQjeWtlycsXG5cdFx0XHQnY2l0ZS11bmRlZmluZWQtZGVzYyc6ICfmnKrlrprkuYnnmoTlj4LogIPmlofnjK4nLFxuXHRcdFx0J2NpdGUtdW5kZWZpbmVkLWVycm9yJzogJ+S4gOS4quW3suWRveWQjeeahOWPguiAg+aWh+eMruW3sue7j+S9v+eUqOS9huaYr+ayoeacieWumuS5iScsXG5cdFx0XHQnY2l0ZS13b3JrLXRvb2x0aXAnOiAn5YiK55m76K+l5L2c5ZOB55qE5Ye654mI54mp55qE5ZCN56ew44CC6K+35LiN6KaB5L2/55So5pac5L2TJyxcblx0XHRcdCdjaXRlLW5ld3NwYXBlci10b29sdGlwJzogJ+WIiueZu+ipsuaWsOiBnueahOWHuueJiOeJqeWQjeensCcsXG5cdFx0XHQnY2l0ZS1zZXJpZXMtdG9vbHRpcCc6ICflvZPkuabnsY3mmK/kuIDns7vliJflh7rniYjlk4HkuK3nmoTlhbbkuK3kuIDpg6jku73ml7bkvb/nlKgnLFxuXHRcdFx0J2NpdGUtdW5pZmllZC10b29sdGlwJzogJzE5ODDlubTku6PkuYvliY3kuK3lm73miYDkvb/nlKjnmoTkuabnsY3nvJblj7cnLFxuXHRcdFx0J2NpdGUtbGF5c3VtbWFyeS10b29sdGlwJzogJ+ivpeaWh+eMruebuOWFs+eahOaWsOmXu+aKpemBk+eahFVSTCcsXG5cdFx0XHQnY2l0ZS1sYXlzb3VyY2UtdG9vbHRpcCc6ICfor6XmlofnjK7nm7jlhbPnmoTmlrDpl7vmiqXpgZPnmoTlh7rlpIQnLFxuXHRcdH0pO1xuXHR9XG59O1xuXG5leHBvcnQge3JlZlRvb2xiYXJNZXNhZ2VzfTtcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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QVEsRUFBRXFKLFNBQVNzQyxRQUFRLEtBQUtDLHVCQUF1QixZQUFZO0FBQ2hGO0VBQ0Q7QUFFQSxNQUFJLENBQUN0VSxHQUFHdVUsS0FBSzlQLFFBQVFpRSxJQUFJLGdCQUFnQixHQUFHO0FBQzNDO0VBQ0Q7QUFFQSxNQUFJN0csU0FBUzJTLGNBQWMscUNBQXFDLEdBQUc7QUFDbEU7RUFDRDtBQUdBUCxvQkFBa0I7QUFFbEJuRCxpQkFBZTtBQUNmLFFBQUEsR0FBS3ZSLG1CQUFBa1YsU0FBUSxFQUFFM0wsS0FBS3pILFdBQVc7QUFDaEMsR0FBRzsiLAogICJuYW1lcyI6IFsiaW1wb3J0X2V4dF9nYWRnZXQyIiwgInJlcXVpcmUiLCAiaW1wb3J0X2V4dF9nYWRnZXQiLCAiYXBpIiwgImluaXRNd0FwaSIsICJnZXRNZXNzYWdlIiwgImtleSIsICJhcmdzIiwgImxlbmd0aCIsICJtdyIsICJtZXNzYWdlIiwgInBhcnNlIiwgInBsYWluIiwgImNpdGVBcnRpY2xlX2RlZmF1bHQiLCAicmVmVG9vbGJhckNvbmZpZyIsICJDaXRlVGVtcGxhdGUiLCAid2luZG93IiwgIkNpdGVUQiIsICJPcHRpb25zIiwgIm1vbnRocyIsICJtb2RhbCIsICJhdXRvcGFyc2UiLCAiZXhwYW5kdGVtcGxhdGVzIiwgImZpZWxkIiwgImluY3JlbWVudF9ncm91cCIsICJpbmNyZW1lbnRfYnV0dG9uIiwgImF1dG9maWxscHJvcCIsICJhdXRvZmlsbGlkIiwgInRvb2x0aXAiLCAiaW5pdCIsICJyZWZUb29sYmFyMiIsICIkYm9keSIsICJEZWZhdWx0T3B0aW9ucyIsICJnZXRPcHRpb24iLCAib3B0IiwgIlVzZXJPcHRpb25zIiwgIl8kJHdpZHRoMiIsICIkIiwgImRvY3VtZW50IiwgImZpbmQiLCAidHJpZ2dlciIsICIkdGFyZ2V0IiwgInRlbWxpc3QiLCAidCIsICJUZW1wbGF0ZXMiLCAiT2JqZWN0IiwgImhhc093biIsICJfJCR3aWR0aCIsICJ0ZW0iLCAic2Zvcm0iLCAiZXNjU3RyIiwgInNob3J0Zm9ybSIsICJhY3Rpb25vYmoiLCAidHlwZSIsICJtb2R1bGUiLCAiY29uY2F0IiwgImRpYWxvZ29iaiIsICJyZXNpemVtZSIsICJ0aXRsZSIsICJpZCIsICJodG1sIiwgImdldEluaXRpYWwiLCAiZGlhbG9nIiwgIndpZHRoIiwgIk1hdGgiLCAicm91bmQiLCAib3BlbiIsICJnZXRPcGVuVGVtcGxhdGUiLCAiZ2V0Rm9ybSIsICJvbiIsICJlIiwgInByZXZlbnREZWZhdWx0IiwgInByZXZQYXJzZUNsaWNrIiwgImJ1dHRvbnMiLCAicmVmIiwgImdldFJlZiIsICJ3aWtpRWRpdG9yIiwgIm1vZHVsZXMiLCAidG9vbGJhciIsICJmbiIsICJkb0FjdGlvbiIsICJkYXRhIiwgIm9wdGlvbnMiLCAicG9zdCIsICJzaG93SGlkZUV4dHJhIiwgInRlbXBsYXRlIiwgImRpdiIsICJzaG93IiwgInRleHQiLCAiaGlkZSIsICJyZXNldEZvcm0iLCAibGFiZWwiLCAidGVtcGxhdGVuYW1lIiwgImFjdGlvbiIsICJyZWZzZWN0aW9uIiwgInNlY3Rpb25zIiwgImNpdGVzIiwgImdyb3VwcyIsICJ0b29scyIsICJsaXN0IiwgIm5hbWVkcmVmcyIsICJucmVmcyIsICJpY29uIiwgImVuY29kZVVSSUNvbXBvbmVudCIsICJzZWN0aW9uIiwgImdyb3VwIiwgImRlZmF1bHRkaWFsb2dzIiwgIkFqYXhfbG9hZGVyX2RlZmF1bHQiLCAibG9hZFJlZnMiLCAicmVmbmFtZSIsICJ2YWwiLCAiZ2V0TmFtZWRSZWYiLCAib2ZmIiwgInV0aWwiLCAiYWRkQ1NTIiwgIm1haW5SZWZMaXN0IiwgInJlZnNMb2FkZWQiLCAiaW5uZXJvbmx5IiwgImZvcmluc2VydCIsICJpIiwgImoiLCAiZyIsICJyZXMiLCAicmVmb2JqIiwgInNob3J0dGFnIiwgIlN0cmluZyIsICJ0cmltIiwgImdldFF1b3RlZFN0cmluZyIsICJyZWZncm91cCIsICJjb250ZW50IiwgImluY3JlbWVudGFibGVzIiwgImZpZWxkcyIsICJmaWVsZG5hbWUiLCAiZmllbGRpZCIsICJyZXBsYWNlIiwgInRvU3RyaW5nIiwgImJhc2ljIiwgImV4dHJhIiwgInB1c2giLCAiZ2V0UGFnZVRleHQiLCAibG9hZFJlZnNJbnRlcm5hbCIsICJyZWZzcmVnZXgiLCAiZXhlYyIsICJzZXR1cE5hbWVkUmVmcyIsICJjYWxsYmFjayIsICJwb3N0ZGF0YSIsICJjb25maWciLCAiZ2V0IiwgInByb3AiLCAiZm9ybWF0IiwgImZvcm1hdHZlcnNpb24iLCAidGhlbiIsICJyZXN0ZXh0IiwgIndpa2l0ZXh0IiwgIndnQXJ0aWNsZUlkIiwgInJ2cHJvcCIsICJydnNsb3RzIiwgInBhZ2VpZHMiLCAicnZleHBhbmR0ZW1wbGF0ZXMiLCAicXVlcnkiLCAicGFnZXRleHQiLCAicGFnZXMiLCAicmV2aXNpb25zIiwgInNsb3RzIiwgIm1haW4iLCAic2FmZURlY29kZVVSSUNvbXBvbmVudCIsICJzIiwgImRlY29kZVVSSUNvbXBvbmVudCIsICJpbml0QXV0b2ZpbGwiLCAiXyQkYXR0ciIsICJlbGVtaWQiLCAiYXR0ciIsICJhdXRvdHlwZSIsICJ1cmwiLCAiY3JlYXRlRWxlbWVudCIsICJzZXRBdHRyaWJ1dGUiLCAiaGVhZCIsICJhcHBlbmQiLCAiYXV0b0ZpbGwiLCAiY2wiLCAiY29hdXRob3JzIiwgImF1dGhvcnMiLCAiXyQkZXEkYXR0ciIsICJjbGFzc2VzIiwgImVxIiwgInNwbGl0IiwgInBhdHQiLCAiX2l0ZXJhdG9yIiwgIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwgIl9zdGVwIiwgIm4iLCAiZG9uZSIsICJjbGFzc18iLCAidmFsdWUiLCAiZXJyIiwgImYiLCAiXyQkZXEkYXR0cjIiLCAiX2l0ZXJhdG9yMiIsICJfc3RlcDIiLCAiam9pbiIsICJkYXRlIiwgIkRUIiwgIkRhdGUiLCAidGVzdCIsICJmb3JtYXREYXRlIiwgImpvdXJuYWwiLCAidm9sdW1lIiwgImlzc3VlIiwgImRvaSIsICJwdWJsaXNoZXIiLCAibG9jYXRpb24iLCAiZWRpdGlvbiIsICJpc2JuIiwgImlzc24iLCAibGFuZ3VhZ2UiLCAiY2hhcHRlciIsICJpbmNyZW1lbnRGaWVsZHMiLCAiXyQkYXR0cjIiLCAiY3VycmVudHJvdyIsICJwYXJlbnRzIiwgInByZXYiLCAiY3NzIiwgImRldGFjaCIsICJpbmNyZW1lbnRzIiwgInRycyIsICJtYWtlRm9ybUlubmVyIiwgInJldmVyc2UiLCAiX2l0ZXJhdG9yMyIsICJfc3RlcDMiLCAidHIiLCAiYWZ0ZXIiLCAiZmlsbEFjY2Vzc2RhdGUiLCAiXyQkYXR0cjMiLCAiZGF0ZXN0ciIsICJ1c2VkYXkiLCAidXNlbW9udGgiLCAiem1vbnRoIiwgIm1vbnRoIiwgImdldFVUQ01vbnRoIiwgInpkYXRlIiwgImdldFVUQ0RhdGUiLCAiZ2V0VVRDRnVsbFllYXIiLCAibmFtZXMiLCAic3R1ZmYiLCAic2VsZWN0IiwgImJlZm9yZSIsICJwcmV2bGFiZWwiLCAicGFyc2VsYWJlbCIsICJsaW5rIiwgImhyZWYiLCAibWFyZ2luIiwgImRpc3BsYXkiLCAiY29sb3IiLCAibmFtZWRSZWZTZWxlY3RDbGljayIsICJucmVmUGFyc2VDbGljayIsICJmaWxsTnJlZlByZXZpZXciLCAicGFyc2VkIiwgImNob2ljZSIsICJfaXRlcmF0b3I0IiwgIl9zdGVwNCIsICJsYXN0bmFtZWRyZWZjaG9pY2UiLCAiX2l0ZXJhdG9yNSIsICJfc3RlcDUiLCAiZmlsbFRlbXBsYXRlUHJldmlldyIsICJzZXR0aW5nIiwgInNxIiwgImRxIiwgImZpeFN0ciIsICJzbGljZSIsICJ0b1VwcGVyQ2FzZSIsICJyYXciLCAiX3RlbXBsYXRlT2JqZWN0IiwgIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwiLCAiX3RlbXBsYXRlT2JqZWN0MiIsICJkaWFsb2dzIiwgImNpdGVGb3JtVGQiLCAiYWRkX2RlZmF1bHQiLCAiY2FsZW5kYXJfZGVmYXVsdCIsICJzZWFyY2hfZGVmYXVsdCIsICJyZWZUb29sYmFyQmFzZSIsICJfd2luZG93IiwgImNvbnN0cnVjdG9yIiwgImJhc2ljZmllbGRzIiwgImV4cGFuZGVkZmllbGRzIiwgImluY3JzZXR1cCIsICJhdXRvZmlsbHMiLCAiX2l0ZXJhdG9yNiIsICJlbnRyaWVzIiwgIl9zdGVwNiIsICJmaWVsZG9iaiIsICJsYWJlbGZpZWxkIiwgImFkIiwgImltIiwgInNldHVwIiwgImluY3J2YWwiLCAiYXV0b2RhdGVGaWVsZHMiLCAiaW5jbHVkZXMiLCAiaW5jcnR5cGUiLCAiaW5wdXQiLCAidGFiaW5kZXgiLCAic3R5bGUiLCAiY2xhc3NuYW1lIiwgImFkZENsYXNzIiwgInRkMSIsICJ0ZDIiLCAibmVlZHNldHVwIiwgImtleXMiLCAiX2l0ZXJhdG9yNyIsICJfc3RlcDciLCAiYXV0b2ZpbGwiLCAiaGlkZGVuIiwgImZvcm0xIiwgIl9pdGVyYXRvcjgiLCAiX3N0ZXA4IiwgImZvcm0yIiwgIl9pdGVyYXRvcjkiLCAiX3N0ZXA5IiwgImZvcm0zIiwgIiR0ciIsICIkdGQxIiwgIiRsYWJlbDEiLCAiaW5wdXQxIiwgInRkMyIsICJsYWJlbDIiLCAidGQ0IiwgImlucHV0MiIsICJleHRyYXMiLCAic3BhbjEiLCAicGFkZGluZyIsICJzcGFuMiIsICJyZWZUb29sYmFyTWVzYWdlcyIsICJ3Z1VzZXJMYW5ndWFnZSIsICJtZXNzYWdlcyIsICJzZXQiLCAid2dBY3Rpb24iLCAid2dQYWdlQ29udGVudE1vZGVsIiwgInVzZXIiLCAicXVlcnlTZWxlY3RvciIsICJnZXRCb2R5Il0KfQo= diff --git a/dist/EnhancedSpecialSearch/EnhancedSpecialSearch.js b/dist/EnhancedSpecialSearch/EnhancedSpecialSearch.js index 797b6839c..f61f4118a 100644 --- a/dist/EnhancedSpecialSearch/EnhancedSpecialSearch.js +++ b/dist/EnhancedSpecialSearch/EnhancedSpecialSearch.js @@ -126,7 +126,7 @@ var import_ext_gadget4 = require("ext.gadget.Util"); var siteDomain = "qiuwenbaike.cn"; var flexStyle = "display: flex; flex-wrap: wrap; align-items: center"; //! src/EnhancedSpecialSearch/components/SelectElement.tsx -var import_ext_gadget2 = __toESM(require("ext.gadget.React"), 1); +var import_ext_gadget2 = __toESM(require("ext.gadget.JSX"), 1); //! src/EnhancedSpecialSearch/modules/i18n.ts var import_ext_gadget = require("ext.gadget.i18n"); var getI18nMessages = () => { @@ -219,7 +219,7 @@ var WrapperElement = () => /* @__PURE__ */ import_ext_gadget2.default.createElem style: flexStyle }); //! src/EnhancedSpecialSearch/modules/util/openPage.tsx -var import_ext_gadget3 = __toESM(require("ext.gadget.React"), 1); +var import_ext_gadget3 = __toESM(require("ext.gadget.JSX"), 1); var openPage = (url) => { const element = /* @__PURE__ */ import_ext_gadget3.default.createElement("a", { href: url, @@ -274,4 +274,4 @@ void (0, import_ext_gadget4.getBody)().then(function enhancedSpecialSearch($body /* */ -//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL0VuaGFuY2VkU3BlY2lhbFNlYXJjaC9FbmhhbmNlZFNwZWNpYWxTZWFyY2gudHMiLCAic3JjL0VuaGFuY2VkU3BlY2lhbFNlYXJjaC9vcHRpb25zLmpzb24iLCAic3JjL0VuaGFuY2VkU3BlY2lhbFNlYXJjaC9jb21wb25lbnRzL1NlbGVjdEVsZW1lbnQudHN4IiwgInNyYy9FbmhhbmNlZFNwZWNpYWxTZWFyY2gvbW9kdWxlcy9pMThuLnRzIiwgInNyYy9FbmhhbmNlZFNwZWNpYWxTZWFyY2gvbW9kdWxlcy9nZXRPcHRpb25EYXRhLnRzIiwgInNyYy9FbmhhbmNlZFNwZWNpYWxTZWFyY2gvbW9kdWxlcy91dGlsL29wZW5QYWdlLnRzeCIsICJzcmMvRW5oYW5jZWRTcGVjaWFsU2VhcmNoL21vZHVsZXMvYWRkTGlzdGVuZXIudHMiLCAic3JjL0VuaGFuY2VkU3BlY2lhbFNlYXJjaC9tb2R1bGVzL3Byb2Nlc3NFbGVtZW50LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQge2dldEJvZHl9IGZyb20gJ2V4dC5nYWRnZXQuVXRpbCc7XG5pbXBvcnQge3Byb2Nlc3NFbGVtZW50fSBmcm9tICcuL21vZHVsZXMvcHJvY2Vzc0VsZW1lbnQnO1xuXG52b2lkIGdldEJvZHkoKS50aGVuKGZ1bmN0aW9uIGVuaGFuY2VkU3BlY2lhbFNlYXJjaCgkYm9keTogSlF1ZXJ5PEhUTUxCb2R5RWxlbWVudD4pOiB2b2lkIHtcblx0Y29uc3Qge3dnQ2Fub25pY2FsU3BlY2lhbFBhZ2VOYW1lfSA9IG13LmNvbmZpZy5nZXQoKTtcblx0aWYgKHdnQ2Fub25pY2FsU3BlY2lhbFBhZ2VOYW1lICE9PSAnU2VhcmNoJykge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGNvbnN0IHNlYXJjaEVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkID0gJGJvZHkuZmluZCgnI3NlYXJjaCcpLmdldCgwKSA/PyAkYm9keS5maW5kKCcjcG93ZXJzZWFyY2gnKS5nZXQoMCk7XG5cdGNvbnN0IHRhcmdldEVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkID0gJGJvZHkuZmluZCgnI213LXNlYXJjaC10b3AtdGFibGUnKS5nZXQoMCk7XG5cdGlmICghc2VhcmNoRWxlbWVudCB8fCAhdGFyZ2V0RWxlbWVudCkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdHByb2Nlc3NFbGVtZW50KHNlYXJjaEVsZW1lbnQsIHRhcmdldEVsZW1lbnQpO1xufSk7XG4iLCAie1xuXHRcInNpdGVEb21haW5cIjogXCJxaXV3ZW5iYWlrZS5jblwiLFxuXHRcImZsZXhTdHlsZVwiOiBcImRpc3BsYXk6IGZsZXg7IGZsZXgtd3JhcDogd3JhcDsgYWxpZ24taXRlbXM6IGNlbnRlclwiXG59XG4iLCAiaW1wb3J0ICogYXMgT1BUSU9OUyBmcm9tICcuLi9vcHRpb25zLmpzb24nO1xuaW1wb3J0IFJlYWN0IGZyb20gJ2V4dC5nYWRnZXQuUmVhY3QnO1xuaW1wb3J0IHtnZXRNZXNzYWdlfSBmcm9tICcuLi9tb2R1bGVzL2kxOG4nO1xuaW1wb3J0IHtnZXRPcHRpb25EYXRhfSBmcm9tICcuLi9tb2R1bGVzL2dldE9wdGlvbkRhdGEnO1xuXG5jb25zdCBMYWJlbEVsZW1lbnQgPSAoKSA9PiAoXG5cdDxsYWJlbFxuXHRcdGNsYXNzTmFtZT1cIm9vLXVpLWxhYmVsRWxlbWVudC1sYWJlbFwiXG5cdFx0aHRtbEZvcj1cImVuaGFuY2VkU3BlY2lhbFNlYXJjaFwiXG5cdFx0aW5uZXJUZXh0PXtnZXRNZXNzYWdlKCdTZWFyY2ggZW5naW5lJyl9XG5cdC8+XG4pO1xuXG5jb25zdCBTZWxlY3RFbGVtZW50ID0gKCkgPT4gKFxuXHQ8c2VsZWN0XG5cdFx0Y2xhc3NOYW1lPVwib28tdWktZHJvcGRvd25XaWRnZXQtaGFuZGxlXCJcblx0XHRpZD1cImVuaGFuY2VkU3BlY2lhbFNlYXJjaFwiXG5cdFx0bmFtZT1cImVuaGFuY2VkU3BlY2lhbFNlYXJjaFwiXG5cdFx0c3R5bGU9e3tcblx0XHRcdHdpZHRoOiAnYXV0bycsXG5cdFx0fX1cblx0XHR0aXRsZT17Z2V0TWVzc2FnZSgnU2VhcmNoIGVuZ2luZScpfVxuXHQ+XG5cdFx0e2dldE9wdGlvbkRhdGEoKS5tYXA8SFRNTE9wdGlvbkVsZW1lbnQ+KCh7c2l0ZSwgdXJsLCBvcmlnaW59KSA9PiB7XG5cdFx0XHRjb25zdCBvcHRpb25FbGVtZW50OiBIVE1MT3B0aW9uRWxlbWVudCA9IG5ldyBPcHRpb24oc2l0ZSwgdXJsLCBvcmlnaW4pO1xuXG5cdFx0XHRpZiAob3JpZ2luKSB7XG5cdFx0XHRcdG9wdGlvbkVsZW1lbnQuZGF0YXNldFsnb3JpZ2luJ10gPSAnMSc7XG5cdFx0XHR9XG5cblx0XHRcdHJldHVybiBvcHRpb25FbGVtZW50O1xuXHRcdH0pfVxuXHQ8L3NlbGVjdD5cbik7XG5cbmNvbnN0IFdyYXBwZXJFbGVtZW50ID0gKCkgPT4gPGRpdiBzdHlsZT17T1BUSU9OUy5mbGV4U3R5bGV9IC8+O1xuXG5leHBvcnQge0xhYmVsRWxlbWVudCwgU2VsZWN0RWxlbWVudCwgV3JhcHBlckVsZW1lbnR9O1xuIiwgImltcG9ydCB7bG9jYWxpemV9IGZyb20gJ2V4dC5nYWRnZXQuaTE4bic7XG5cbmNvbnN0IGdldEkxOG5NZXNzYWdlcyA9ICgpID0+IHtcblx0cmV0dXJuIHtcblx0XHQnU2VhcmNoIGVuZ2luZSc6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnU2VhcmNoIGVuZ2luZScsXG5cdFx0XHRqYTogJ+aknOe0ouOCqOODs+OCuOODsycsXG5cdFx0XHR6aDogJ+aQnOe0ouW8leaTjicsXG5cdFx0fSksXG5cdFx0QmFpZHU6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnQmFpZHUnLFxuXHRcdFx0amE6ICdCYWlkdScsXG5cdFx0XHR6aDogJ+eZvuW6picsXG5cdFx0fSksXG5cdFx0QmluZzogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdCaW5nJyxcblx0XHRcdCd6aC1oYW5zJzogJ+W/heW6lCcsXG5cdFx0XHQnemgtaGFudCc6ICflv4Xmh4knLFxuXHRcdH0pLFxuXHRcdEdvb2dsZTogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdHb29nbGUnLFxuXHRcdFx0amE6ICdHb29nbGUnLFxuXHRcdFx0emg6ICfosLfmrYwnLFxuXHRcdH0pLFxuXHRcdFFpdXdlbjogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdRaXV3ZW4gQmFpa2UnLFxuXHRcdFx0amE6ICfmsYLogZ7nmb7np5EnLFxuXHRcdFx0J3poLWhhbnMnOiAn5rGC6Ze755m+56eRJyxcblx0XHRcdCd6aC1oYW50JzogJ+axguiBnueZvuenkScsXG5cdFx0fSksXG5cdFx0U29nb3U6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnU29nb3UnLFxuXHRcdFx0amE6ICdTb2dvdScsXG5cdFx0XHR6aDogJ+aQnOeLlycsXG5cdFx0fSksXG5cdH07XG59O1xuXG5jb25zdCBpMThuTWVzc2FnZXMgPSBnZXRJMThuTWVzc2FnZXMoKTtcblxuY29uc3QgZ2V0TWVzc2FnZTogR2V0TWVzc2FnZXM8dHlwZW9mIGkxOG5NZXNzYWdlcz4gPSAoa2V5KSA9PiB7XG5cdHJldHVybiBpMThuTWVzc2FnZXNba2V5XSB8fCBrZXk7XG59O1xuXG5leHBvcnQge2dldE1lc3NhZ2V9O1xuIiwgImltcG9ydCAqIGFzIE9QVElPTlMgZnJvbSAnLi4vb3B0aW9ucy5qc29uJztcbmltcG9ydCB7Z2V0TWVzc2FnZX0gZnJvbSAnLi9pMThuJztcblxudHlwZSBPcHRpb25EYXRhID0ge1xuXHRzaXRlOiBzdHJpbmc7XG5cdHVybD86IHN0cmluZztcblx0b3JpZ2luPzogYm9vbGVhbjtcbn07XG5cbmNvbnN0IGdldE9wdGlvbkRhdGEgPSAoKTogT3B0aW9uRGF0YVtdID0+IHtcblx0cmV0dXJuIFtcblx0XHR7XG5cdFx0XHRzaXRlOiBnZXRNZXNzYWdlKCdRaXV3ZW4nKSxcblx0XHRcdG9yaWdpbjogdHJ1ZSxcblx0XHR9LFxuXHRcdHtcblx0XHRcdHNpdGU6IGdldE1lc3NhZ2UoJ0JhaWR1JyksXG5cdFx0XHR1cmw6IGBodHRwczovL3d3dy5iYWlkdS5jb20vcz93ZD1zaXRlJTNBJHtPUFRJT05TLnNpdGVEb21haW59KyQxYCxcblx0XHR9LFxuXHRcdHtcblx0XHRcdHNpdGU6IGdldE1lc3NhZ2UoJ0JpbmcnKSxcblx0XHRcdHVybDogYGh0dHBzOi8vd3d3LmJpbmcuY29tL3NlYXJjaD9xPXNpdGUlM0Eke09QVElPTlMuc2l0ZURvbWFpbn0rJDFgLFxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0c2l0ZTogZ2V0TWVzc2FnZSgnR29vZ2xlJyksXG5cdFx0XHR1cmw6IGBodHRwczovL3d3dy5nb29nbGUuY29tL3NlYXJjaD9xPXNpdGUlM0Eke09QVElPTlMuc2l0ZURvbWFpbn0rJDFgLFxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0c2l0ZTogZ2V0TWVzc2FnZSgnU29nb3UnKSxcblx0XHRcdHVybDogYGh0dHBzOi8vd3d3LnNvZ291LmNvbS93ZWI/cXVlcnk9c2l0ZSUzQSR7T1BUSU9OUy5zaXRlRG9tYWlufSskMWAsXG5cdFx0fSxcblx0XHR7XG5cdFx0XHRzaXRlOiAnMzYwJyxcblx0XHRcdHVybDogYGh0dHBzOi8vd3d3LnNvLmNvbS9zP3E9c2l0ZSUzQSR7T1BUSU9OUy5zaXRlRG9tYWlufSskMWAsXG5cdFx0fSxcblx0XTtcbn07XG5cbmV4cG9ydCB7dHlwZSBPcHRpb25EYXRhLCBnZXRPcHRpb25EYXRhfTtcbiIsICJpbXBvcnQgUmVhY3QgZnJvbSAnZXh0LmdhZGdldC5SZWFjdCc7XG5cbmNvbnN0IG9wZW5QYWdlID0gKHVybDogc3RyaW5nKTogdm9pZCA9PiB7XG5cdGNvbnN0IGVsZW1lbnQgPSAoPGEgaHJlZj17dXJsfSB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgLz4pIGFzIEhUTUxBbmNob3JFbGVtZW50O1xuXG5cdGVsZW1lbnQuY2xpY2soKTtcbn07XG5cbmV4cG9ydCB7b3BlblBhZ2V9O1xuIiwgImltcG9ydCB7b3BlblBhZ2V9IGZyb20gJy4vdXRpbC9vcGVuUGFnZSc7XG5cbmNvbnN0IGFkZExpc3RlbmVyID0gKHRhcmdldEVsZW1lbnQ6IEhUTUxFbGVtZW50LCBzZWxlY3RFbGVtZW50OiBIVE1MU2VsZWN0RWxlbWVudCk6IHZvaWQgPT4ge1xuXHR0YXJnZXRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3N1Ym1pdCcsIChldmVudDogU3VibWl0RXZlbnQpOiB2b2lkID0+IHtcblx0XHRjb25zdCBpbnB1dEVsZW1lbnQ6IEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsID0gdGFyZ2V0RWxlbWVudC5xdWVyeVNlbGVjdG9yKCdbdHlwZT1cInNlYXJjaFwiXScpO1xuXHRcdGlmICghaW5wdXRFbGVtZW50KSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0Y29uc3Qgb3B0aW9uRWxlbWVudDogSFRNTE9wdGlvbkVsZW1lbnQgPSBzZWxlY3RFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ29wdGlvbjpjaGVja2VkJykgYXMgSFRNTE9wdGlvbkVsZW1lbnQ7XG5cdFx0aWYgKG9wdGlvbkVsZW1lbnQuZGF0YXNldFsnb3JpZ2luJ10pIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXHRcdG9wZW5QYWdlKG9wdGlvbkVsZW1lbnQudmFsdWUucmVwbGFjZSgnJDEnLCBlbmNvZGVVUklDb21wb25lbnQoaW5wdXRFbGVtZW50LnZhbHVlKSkpO1xuXHR9KTtcbn07XG5cbmV4cG9ydCB7YWRkTGlzdGVuZXJ9O1xuIiwgImltcG9ydCAqIGFzIE9QVElPTlMgZnJvbSAnLi4vb3B0aW9ucy5qc29uJztcbmltcG9ydCB7TGFiZWxFbGVtZW50LCBTZWxlY3RFbGVtZW50LCBXcmFwcGVyRWxlbWVudH0gZnJvbSAnLi4vY29tcG9uZW50cy9TZWxlY3RFbGVtZW50JztcbmltcG9ydCB7YWRkTGlzdGVuZXJ9IGZyb20gJy4vYWRkTGlzdGVuZXInO1xuXG5jb25zdCBwcm9jZXNzRWxlbWVudCA9IChzZWFyY2hFbGVtZW50OiBIVE1MRWxlbWVudCwgdGFyZ2V0RWxlbWVudDogSFRNTEVsZW1lbnQpOiB2b2lkID0+IHtcblx0dGFyZ2V0RWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywgT1BUSU9OUy5mbGV4U3R5bGUpO1xuXG5cdGNvbnN0IHdyYXBwZXJFbGVtZW50ID0gV3JhcHBlckVsZW1lbnQoKSBhcyBIVE1MRGl2RWxlbWVudDtcblx0Y29uc3QgbGFiZWxFbGVtZW50ID0gTGFiZWxFbGVtZW50KCk7XG5cdGNvbnN0IHNlbGVjdEVsZW1lbnQgPSBTZWxlY3RFbGVtZW50KCkgYXMgSFRNTFNlbGVjdEVsZW1lbnQ7XG5cblx0d3JhcHBlckVsZW1lbnQuYXBwZW5kKGxhYmVsRWxlbWVudCwgc2VsZWN0RWxlbWVudCk7XG5cdHRhcmdldEVsZW1lbnQuYXBwZW5kKHdyYXBwZXJFbGVtZW50KTtcblxuXHRhZGRMaXN0ZW5lcihzZWFyY2hFbGVtZW50LCBzZWxlY3RFbGVtZW50KTtcbn07XG5cbmV4cG9ydCB7cHJvY2Vzc0VsZW1lbnR9O1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsSUFBQUEscUJBQXNCQyxRQUFBLGlCQUFBOztBQ0NyQixJQUFBQyxhQUFjO0FBQ2QsSUFBQUMsWUFBYTs7QUNEZCxJQUFBQyxxQkFBa0JDLFFBQUFKLFFBQUEsa0JBQUEsR0FBQSxDQUFBOztBQ0RsQixJQUFBSyxvQkFBdUJMLFFBQUEsaUJBQUE7QUFFdkIsSUFBTU0sa0JBQWtCQSxNQUFNO0FBQzdCLFNBQU87SUFDTixrQkFBQSxHQUFpQkQsa0JBQUFFLFVBQVM7TUFDekJDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO0lBQ0wsQ0FBQztJQUNEQyxRQUFBLEdBQU9OLGtCQUFBRSxVQUFTO01BQ2ZDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO0lBQ0wsQ0FBQztJQUNERSxPQUFBLEdB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S0FBSyxDQUFDLENBQUM7RUFDbkYsQ0FBQztBQUNGOztBQ2JBLElBQU1HLGlCQUFpQkEsQ0FBQ0MsZUFBNEJYLGtCQUFxQztBQUN4RkEsZ0JBQWNZLGFBQWEsU0FBaUIzRCxTQUFTO0FBRXJELFFBQU00RCxpQkFBaUJ0QixlQUFlO0FBQ3RDLFFBQU11QixlQUFldkMsYUFBYTtBQUNsQyxRQUFNMEIsZ0JBQWdCcEIsY0FBYztBQUVwQ2dDLGlCQUFlRSxPQUFPRCxjQUFjYixhQUFhO0FBQ2pERCxnQkFBY2UsT0FBT0YsY0FBYztBQUVuQ2QsY0FBWVksZUFBZVYsYUFBYTtBQUN6Qzs7QVBaQSxNQUFBLEdBQUtuRCxtQkFBQWtFLFNBQVEsRUFBRUMsS0FBSyxTQUFTQyxzQkFBc0JDLE9BQXNDO0FBQUEsTUFBQUM7QUFDeEYsUUFBTTtJQUFDQztFQUEwQixJQUFJQyxHQUFHQyxPQUFPQyxJQUFJO0FBQ25ELE1BQUlILCtCQUErQixVQUFVO0FBQzVDO0VBQ0Q7QUFFQSxRQUFNVixpQkFBQVMsa0JBQXlDRCxNQUFNTSxLQUFLLFNBQVMsRUFBRUQsSUFBSSxDQUFDLE9BQUEsUUFBQUosb0JBQUEsU0FBQUEsa0JBQUtELE1BQU1NLEtBQUssY0FBYyxFQUFFRCxJQUFJLENBQUM7QUFDL0csUUFBTXhCLGdCQUF5Q21CLE1BQU1NLEtBQUssc0JBQXNCLEVBQUVELElBQUksQ0FBQztBQUN2RixNQUFJLENBQUNiLGlCQUFpQixDQUFDWCxlQUFlO0FBQ3JDO0VBQ0Q7QUFFQVUsaUJBQWVDLGVBQWVYLGFBQWE7QUFDNUMsQ0FBQzsiLAogICJuYW1lcyI6IFsiaW1wb3J0X2V4dF9nYWRnZXQ0IiwgInJlcXVpcmUiLCAic2l0ZURvbWFpbiIsICJmbGV4U3R5bGUiLCAiaW1wb3J0X2V4dF9nYWRnZXQyIiwgIl9fdG9FU00iLCAiaW1wb3J0X2V4dF9nYWRnZXQiLCAiZ2V0STE4bk1lc3NhZ2VzIiwgImxvY2FsaXplIiwgImVuIiwgImphIiwgInpoIiwgIkJhaWR1IiwgIkJpbmciLCAiR29vZ2xlIiwgIlFpdXdlbiIsICJTb2dvdSIsICJpMThuTWVzc2FnZXMiLCAiZ2V0TWVzc2FnZSIsICJrZXkiLCAiZ2V0T3B0aW9uRGF0YSIsICJzaXRlIiwgIm9yaWdpbiIsICJ1cmwiLCAiY29uY2F0IiwgIkxhYmVsRWxlbWVudCIsICJkZWZhdWx0IiwgImNyZWF0ZUVsZW1lbnQiLCAiY2xhc3NOYW1lIiwgImh0bWxGb3IiLCAiaW5uZXJUZXh0IiwgIlNlbGVjdEVsZW1lbnQiLCAiaWQiLCAibmFtZSIsICJzdHlsZSIsICJ3aWR0aCIsICJ0aXRsZSIsICJtYXAiLCAib3B0aW9uRWxlbWVudCIsICJPcHRpb24iLCAiZGF0YXNldCIsICJXcmFwcGVyRWxlbWVudCIsICJpbXBvcnRfZXh0X2dhZGdldDMiLCAib3BlblBhZ2UiLCAiZWxlbWVudCIsICJocmVmIiwgInRhcmdldCIsICJyZWwiLCAiY2xpY2siLCAiYWRkTGlzdGVuZXIiLCAidGFyZ2V0RWxlbWVudCIsICJzZWxlY3RFbGVtZW50IiwgImFkZEV2ZW50TGlzdGVuZXIiLCAiZXZlbnQiLCAiaW5wdXRFbGVtZW50IiwgInF1ZXJ5U2VsZWN0b3IiLCAicHJldmVudERlZmF1bHQiLCAidmFsdWUiLCAicmVwbGFjZSIsICJlbmNvZGVVUklDb21wb25lbnQiLCAicHJvY2Vzc0VsZW1lbnQiLCAic2VhcmNoRWxlbWVudCIsICJzZXRBdHRyaWJ1dGUiLCAid3JhcHBlckVsZW1lbnQiLCAibGFiZWxFbGVtZW50IiwgImFwcGVuZCIsICJnZXRCb2R5IiwgInRoZW4iLCAiZW5oYW5jZWRTcGVjaWFsU2VhcmNoIiwgIiRib2R5IiwgIl8kYm9keSRmaW5kJGdldCIsICJ3Z0Nhbm9uaWNhbFNwZWNpYWxQYWdlTmFtZSIsICJtdyIsICJjb25maWciLCAiZ2V0IiwgImZpbmQiXQp9Cg== +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL0VuaGFuY2VkU3BlY2lhbFNlYXJjaC9FbmhhbmNlZFNwZWNpYWxTZWFyY2gudHMiLCAic3JjL0VuaGFuY2VkU3BlY2lhbFNlYXJjaC9vcHRpb25zLmpzb24iLCAic3JjL0VuaGFuY2VkU3BlY2lhbFNlYXJjaC9jb21wb25lbnRzL1NlbGVjdEVsZW1lbnQudHN4IiwgInNyYy9FbmhhbmNlZFNwZWNpYWxTZWFyY2gvbW9kdWxlcy9pMThuLnRzIiwgInNyYy9FbmhhbmNlZFNwZWNpYWxTZWFyY2gvbW9kdWxlcy9nZXRPcHRpb25EYXRhLnRzIiwgInNyYy9FbmhhbmNlZFNwZWNpYWxTZWFyY2gvbW9kdWxlcy91dGlsL29wZW5QYWdlLnRzeCIsICJzcmMvRW5oYW5jZWRTcGVjaWFsU2VhcmNoL21vZHVsZXMvYWRkTGlzdGVuZXIudHMiLCAic3JjL0VuaGFuY2VkU3BlY2lhbFNlYXJjaC9tb2R1bGVzL3Byb2Nlc3NFbGVtZW50LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQge2dldEJvZHl9IGZyb20gJ2V4dC5nYWRnZXQuVXRpbCc7XG5pbXBvcnQge3Byb2Nlc3NFbGVtZW50fSBmcm9tICcuL21vZHVsZXMvcHJvY2Vzc0VsZW1lbnQnO1xuXG52b2lkIGdldEJvZHkoKS50aGVuKGZ1bmN0aW9uIGVuaGFuY2VkU3BlY2lhbFNlYXJjaCgkYm9keTogSlF1ZXJ5PEhUTUxCb2R5RWxlbWVudD4pOiB2b2lkIHtcblx0Y29uc3Qge3dnQ2Fub25pY2FsU3BlY2lhbFBhZ2VOYW1lfSA9IG13LmNvbmZpZy5nZXQoKTtcblx0aWYgKHdnQ2Fub25pY2FsU3BlY2lhbFBhZ2VOYW1lICE9PSAnU2VhcmNoJykge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGNvbnN0IHNlYXJjaEVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkID0gJGJvZHkuZmluZCgnI3NlYXJjaCcpLmdldCgwKSA/PyAkYm9keS5maW5kKCcjcG93ZXJzZWFyY2gnKS5nZXQoMCk7XG5cdGNvbnN0IHRhcmdldEVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkID0gJGJvZHkuZmluZCgnI213LXNlYXJjaC10b3AtdGFibGUnKS5nZXQoMCk7XG5cdGlmICghc2VhcmNoRWxlbWVudCB8fCAhdGFyZ2V0RWxlbWVudCkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdHByb2Nlc3NFbGVtZW50KHNlYXJjaEVsZW1lbnQsIHRhcmdldEVsZW1lbnQpO1xufSk7XG4iLCAie1xuXHRcInNpdGVEb21haW5cIjogXCJxaXV3ZW5iYWlrZS5jblwiLFxuXHRcImZsZXhTdHlsZVwiOiBcImRpc3BsYXk6IGZsZXg7IGZsZXgtd3JhcDogd3JhcDsgYWxpZ24taXRlbXM6IGNlbnRlclwiXG59XG4iLCAiaW1wb3J0ICogYXMgT1BUSU9OUyBmcm9tICcuLi9vcHRpb25zLmpzb24nO1xuaW1wb3J0IFJlYWN0IGZyb20gJ2V4dC5nYWRnZXQuSlNYJztcbmltcG9ydCB7Z2V0TWVzc2FnZX0gZnJvbSAnLi4vbW9kdWxlcy9pMThuJztcbmltcG9ydCB7Z2V0T3B0aW9uRGF0YX0gZnJvbSAnLi4vbW9kdWxlcy9nZXRPcHRpb25EYXRhJztcblxuY29uc3QgTGFiZWxFbGVtZW50ID0gKCkgPT4gKFxuXHQ8bGFiZWxcblx0XHRjbGFzc05hbWU9XCJvby11aS1sYWJlbEVsZW1lbnQtbGFiZWxcIlxuXHRcdGh0bWxGb3I9XCJlbmhhbmNlZFNwZWNpYWxTZWFyY2hcIlxuXHRcdGlubmVyVGV4dD17Z2V0TWVzc2FnZSgnU2VhcmNoIGVuZ2luZScpfVxuXHQvPlxuKTtcblxuY29uc3QgU2VsZWN0RWxlbWVudCA9ICgpID0+IChcblx0PHNlbGVjdFxuXHRcdGNsYXNzTmFtZT1cIm9vLXVpLWRyb3Bkb3duV2lkZ2V0LWhhbmRsZVwiXG5cdFx0aWQ9XCJlbmhhbmNlZFNwZWNpYWxTZWFyY2hcIlxuXHRcdG5hbWU9XCJlbmhhbmNlZFNwZWNpYWxTZWFyY2hcIlxuXHRcdHN0eWxlPXt7XG5cdFx0XHR3aWR0aDogJ2F1dG8nLFxuXHRcdH19XG5cdFx0dGl0bGU9e2dldE1lc3NhZ2UoJ1NlYXJjaCBlbmdpbmUnKX1cblx0PlxuXHRcdHtnZXRPcHRpb25EYXRhKCkubWFwPEhUTUxPcHRpb25FbGVtZW50Pigoe3NpdGUsIHVybCwgb3JpZ2lufSkgPT4ge1xuXHRcdFx0Y29uc3Qgb3B0aW9uRWxlbWVudDogSFRNTE9wdGlvbkVsZW1lbnQgPSBuZXcgT3B0aW9uKHNpdGUsIHVybCwgb3JpZ2luKTtcblxuXHRcdFx0aWYgKG9yaWdpbikge1xuXHRcdFx0XHRvcHRpb25FbGVtZW50LmRhdGFzZXRbJ29yaWdpbiddID0gJzEnO1xuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gb3B0aW9uRWxlbWVudDtcblx0XHR9KX1cblx0PC9zZWxlY3Q+XG4pO1xuXG5jb25zdCBXcmFwcGVyRWxlbWVudCA9ICgpID0+IDxkaXYgc3R5bGU9e09QVElPTlMuZmxleFN0eWxlfSAvPjtcblxuZXhwb3J0IHtMYWJlbEVsZW1lbnQsIFNlbGVjdEVsZW1lbnQsIFdyYXBwZXJFbGVtZW50fTtcbiIsICJpbXBvcnQge2xvY2FsaXplfSBmcm9tICdleHQuZ2FkZ2V0LmkxOG4nO1xuXG5jb25zdCBnZXRJMThuTWVzc2FnZXMgPSAoKSA9PiB7XG5cdHJldHVybiB7XG5cdFx0J1NlYXJjaCBlbmdpbmUnOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ1NlYXJjaCBlbmdpbmUnLFxuXHRcdFx0amE6ICfmpJzntKLjgqjjg7Pjgrjjg7MnLFxuXHRcdFx0emg6ICfmkJzntKLlvJXmk44nLFxuXHRcdH0pLFxuXHRcdEJhaWR1OiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ0JhaWR1Jyxcblx0XHRcdGphOiAnQmFpZHUnLFxuXHRcdFx0emg6ICfnmb7luqYnLFxuXHRcdH0pLFxuXHRcdEJpbmc6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnQmluZycsXG5cdFx0XHQnemgtaGFucyc6ICflv4XlupQnLFxuXHRcdFx0J3poLWhhbnQnOiAn5b+F5oeJJyxcblx0XHR9KSxcblx0XHRHb29nbGU6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnR29vZ2xlJyxcblx0XHRcdGphOiAnR29vZ2xlJyxcblx0XHRcdHpoOiAn6LC35q2MJyxcblx0XHR9KSxcblx0XHRRaXV3ZW46IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnUWl1d2VuIEJhaWtlJyxcblx0XHRcdGphOiAn5rGC6IGe55m+56eRJyxcblx0XHRcdCd6aC1oYW5zJzogJ+axgumXu+eZvuenkScsXG5cdFx0XHQnemgtaGFudCc6ICfmsYLogZ7nmb7np5EnLFxuXHRcdH0pLFxuXHRcdFNvZ291OiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ1NvZ291Jyxcblx0XHRcdGphOiAnU29nb3UnLFxuXHRcdFx0emg6ICfmkJzni5cnLFxuXHRcdH0pLFxuXHR9O1xufTtcblxuY29uc3QgaTE4bk1lc3NhZ2VzID0gZ2V0STE4bk1lc3NhZ2VzKCk7XG5cbmNvbnN0IGdldE1lc3NhZ2U6IEdldE1lc3NhZ2VzPHR5cGVvZiBpMThuTWVzc2FnZXM+ID0gKGtleSkgPT4ge1xuXHRyZXR1cm4gaTE4bk1lc3NhZ2VzW2tleV0gfHwga2V5O1xufTtcblxuZXhwb3J0IHtnZXRNZXNzYWdlfTtcbiIsICJpbXBvcnQgKiBhcyBPUFRJT05TIGZyb20gJy4uL29wdGlvbnMuanNvbic7XG5pbXBvcnQge2dldE1lc3NhZ2V9IGZyb20gJy4vaTE4bic7XG5cbnR5cGUgT3B0aW9uRGF0YSA9IHtcblx0c2l0ZTogc3RyaW5nO1xuXHR1cmw/OiBzdHJpbmc7XG5cdG9yaWdpbj86IGJvb2xlYW47XG59O1xuXG5jb25zdCBnZXRPcHRpb25EYXRhID0gKCk6IE9wdGlvbkRhdGFbXSA9PiB7XG5cdHJldHVybiBbXG5cdFx0e1xuXHRcdFx0c2l0ZTogZ2V0TWVzc2FnZSgnUWl1d2VuJyksXG5cdFx0XHRvcmlnaW46IHRydWUsXG5cdFx0fSxcblx0XHR7XG5cdFx0XHRzaXRlOiBnZXRNZXNzYWdlKCdCYWlkdScpLFxuXHRcdFx0dXJsOiBgaHR0cHM6Ly93d3cuYmFpZHUuY29tL3M/d2Q9c2l0ZSUzQSR7T1BUSU9OUy5zaXRlRG9tYWlufSskMWAsXG5cdFx0fSxcblx0XHR7XG5cdFx0XHRzaXRlOiBnZXRNZXNzYWdlKCdCaW5nJyksXG5cdFx0XHR1cmw6IGBodHRwczovL3d3dy5iaW5nLmNvbS9zZWFyY2g/cT1zaXRlJTNBJHtPUFRJT05TLnNpdGVEb21haW59KyQxYCxcblx0XHR9LFxuXHRcdHtcblx0XHRcdHNpdGU6IGdldE1lc3NhZ2UoJ0dvb2dsZScpLFxuXHRcdFx0dXJsOiBgaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9zZWFyY2g/cT1zaXRlJTNBJHtPUFRJT05TLnNpdGVEb21haW59KyQxYCxcblx0XHR9LFxuXHRcdHtcblx0XHRcdHNpdGU6IGdldE1lc3NhZ2UoJ1NvZ291JyksXG5cdFx0XHR1cmw6IGBodHRwczovL3d3dy5zb2dvdS5jb20vd2ViP3F1ZXJ5PXNpdGUlM0Eke09QVElPTlMuc2l0ZURvbWFpbn0rJDFgLFxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0c2l0ZTogJzM2MCcsXG5cdFx0XHR1cmw6IGBodHRwczovL3d3dy5zby5jb20vcz9xPXNpdGUlM0Eke09QVElPTlMuc2l0ZURvbWFpbn0rJDFgLFxuXHRcdH0sXG5cdF07XG59O1xuXG5leHBvcnQge3R5cGUgT3B0aW9uRGF0YSwgZ2V0T3B0aW9uRGF0YX07XG4iLCAiaW1wb3J0IFJlYWN0IGZyb20gJ2V4dC5nYWRnZXQuSlNYJztcblxuY29uc3Qgb3BlblBhZ2UgPSAodXJsOiBzdHJpbmcpOiB2b2lkID0+IHtcblx0Y29uc3QgZWxlbWVudCA9ICg8YSBocmVmPXt1cmx9IHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiAvPikgYXMgSFRNTEFuY2hvckVsZW1lbnQ7XG5cblx0ZWxlbWVudC5jbGljaygpO1xufTtcblxuZXhwb3J0IHtvcGVuUGFnZX07XG4iLCAiaW1wb3J0IHtvcGVuUGFnZX0gZnJvbSAnLi91dGlsL29wZW5QYWdlJztcblxuY29uc3QgYWRkTGlzdGVuZXIgPSAodGFyZ2V0RWxlbWVudDogSFRNTEVsZW1lbnQsIHNlbGVjdEVsZW1lbnQ6IEhUTUxTZWxlY3RFbGVtZW50KTogdm9pZCA9PiB7XG5cdHRhcmdldEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignc3VibWl0JywgKGV2ZW50OiBTdWJtaXRFdmVudCk6IHZvaWQgPT4ge1xuXHRcdGNvbnN0IGlucHV0RWxlbWVudDogSFRNTElucHV0RWxlbWVudCB8IG51bGwgPSB0YXJnZXRFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ1t0eXBlPVwic2VhcmNoXCJdJyk7XG5cdFx0aWYgKCFpbnB1dEVsZW1lbnQpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRjb25zdCBvcHRpb25FbGVtZW50OiBIVE1MT3B0aW9uRWxlbWVudCA9IHNlbGVjdEVsZW1lbnQucXVlcnlTZWxlY3Rvcignb3B0aW9uOmNoZWNrZWQnKSBhcyBIVE1MT3B0aW9uRWxlbWVudDtcblx0XHRpZiAob3B0aW9uRWxlbWVudC5kYXRhc2V0WydvcmlnaW4nXSkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cdFx0b3BlblBhZ2Uob3B0aW9uRWxlbWVudC52YWx1ZS5yZXBsYWNlKCckMScsIGVuY29kZVVSSUNvbXBvbmVudChpbnB1dEVsZW1lbnQudmFsdWUpKSk7XG5cdH0pO1xufTtcblxuZXhwb3J0IHthZGRMaXN0ZW5lcn07XG4iLCAiaW1wb3J0ICogYXMgT1BUSU9OUyBmcm9tICcuLi9vcHRpb25zLmpzb24nO1xuaW1wb3J0IHtMYWJlbEVsZW1lbnQsIFNlbGVjdEVsZW1lbnQsIFdyYXBwZXJFbGVtZW50fSBmcm9tICcuLi9jb21wb25lbnRzL1NlbGVjdEVsZW1lbnQnO1xuaW1wb3J0IHthZGRMaXN0ZW5lcn0gZnJvbSAnLi9hZGRMaXN0ZW5lcic7XG5cbmNvbnN0IHByb2Nlc3NFbGVtZW50ID0gKHNlYXJjaEVsZW1lbnQ6IEhUTUxFbGVtZW50LCB0YXJnZXRFbGVtZW50OiBIVE1MRWxlbWVudCk6IHZvaWQgPT4ge1xuXHR0YXJnZXRFbGVtZW50LnNldEF0dHJpYnV0ZSgnc3R5bGUnLCBPUFRJT05TLmZsZXhTdHlsZSk7XG5cblx0Y29uc3Qgd3JhcHBlckVsZW1lbnQgPSBXcmFwcGVyRWxlbWVudCgpIGFzIEhUTUxEaXZFbGVtZW50O1xuXHRjb25zdCBsYWJlbEVsZW1lbnQgPSBMYWJlbEVsZW1lbnQoKTtcblx0Y29uc3Qgc2VsZWN0RWxlbWVudCA9IFNlbGVjdEVsZW1lbnQoKSBhcyBIVE1MU2VsZWN0RWxlbWVudDtcblxuXHR3cmFwcGVyRWxlbWVudC5hcHBlbmQobGFiZWxFbGVtZW50LCBzZWxlY3RFbGVtZW50KTtcblx0dGFyZ2V0RWxlbWVudC5hcHBlbmQod3JhcHBlckVsZW1lbnQpO1xuXG5cdGFkZExpc3RlbmVyKHNlYXJjaEVsZW1lbnQsIHNlbGVjdEVsZW1lbnQpO1xufTtcblxuZXhwb3J0IHtwcm9jZXNzRWxlbWVudH07XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxxQkFBc0JDLFFBQUEsaUJBQUE7O0FDQ3JCLElBQUFDLGFBQWM7QUFDZCxJQUFBQyxZQUFhOztBQ0RkLElBQUFDLHFCQUFrQkMsUUFBQUosUUFBQSxnQkFBQSxHQUFBLENBQUE7O0FDRGxCLElBQUFLLG9CQUF1QkwsUUFBQSxpQkFBQTtBQUV2QixJQUFNTSxrQkFBa0JBLE1BQU07QUFDN0IsU0FBTztJQUNOLGtCQUFBLEdBQWlCRCxrQkFBQUUsVUFBUztNQUN6QkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7SUFDTCxDQUFDO0lBQ0RDLFFBQUEsR0FBT04sa0JBQUFFLFVBQVM7TUFDZkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7SUFDTCxDQUFDO0lBQ0RFLE9BQUEsR0FBTVAs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LENBQUMsQ0FBQztFQUNuRixDQUFDO0FBQ0Y7O0FDYkEsSUFBTUcsaUJBQWlCQSxDQUFDQyxlQUE0Qlgsa0JBQXFDO0FBQ3hGQSxnQkFBY1ksYUFBYSxTQUFpQjNELFNBQVM7QUFFckQsUUFBTTRELGlCQUFpQnRCLGVBQWU7QUFDdEMsUUFBTXVCLGVBQWV2QyxhQUFhO0FBQ2xDLFFBQU0wQixnQkFBZ0JwQixjQUFjO0FBRXBDZ0MsaUJBQWVFLE9BQU9ELGNBQWNiLGFBQWE7QUFDakRELGdCQUFjZSxPQUFPRixjQUFjO0FBRW5DZCxjQUFZWSxlQUFlVixhQUFhO0FBQ3pDOztBUFpBLE1BQUEsR0FBS25ELG1CQUFBa0UsU0FBUSxFQUFFQyxLQUFLLFNBQVNDLHNCQUFzQkMsT0FBc0M7QUFBQSxNQUFBQztBQUN4RixRQUFNO0lBQUNDO0VBQTBCLElBQUlDLEdBQUdDLE9BQU9DLElBQUk7QUFDbkQsTUFBSUgsK0JBQStCLFVBQVU7QUFDNUM7RUFDRDtBQUVBLFFBQU1WLGlCQUFBUyxrQkFBeUNELE1BQU1NLEtBQUssU0FBUyxFQUFFRCxJQUFJLENBQUMsT0FBQSxRQUFBSixvQkFBQSxTQUFBQSxrQkFBS0QsTUFBTU0sS0FBSyxjQUFjLEVBQUVELElBQUksQ0FBQztBQUMvRyxRQUFNeEIsZ0JBQXlDbUIsTUFBTU0sS0FBSyxzQkFBc0IsRUFBRUQsSUFBSSxDQUFDO0FBQ3ZGLE1BQUksQ0FBQ2IsaUJBQWlCLENBQUNYLGVBQWU7QUFDckM7RUFDRDtBQUVBVSxpQkFBZUMsZUFBZVgsYUFBYTtBQUM1QyxDQUFDOyIsCiAgIm5hbWVzIjogWyJpbXBvcnRfZXh0X2dhZGdldDQiLCAicmVxdWlyZSIsICJzaXRlRG9tYWluIiwgImZsZXhTdHlsZSIsICJpbXBvcnRfZXh0X2dhZGdldDIiLCAiX190b0VTTSIsICJpbXBvcnRfZXh0X2dhZGdldCIsICJnZXRJMThuTWVzc2FnZXMiLCAibG9jYWxpemUiLCAiZW4iLCAiamEiLCAiemgiLCAiQmFpZHUiLCAiQmluZyIsICJHb29nbGUiLCAiUWl1d2VuIiwgIlNvZ291IiwgImkxOG5NZXNzYWdlcyIsICJnZXRNZXNzYWdlIiwgImtleSIsICJnZXRPcHRpb25EYXRhIiwgInNpdGUiLCAib3JpZ2luIiwgInVybCIsICJjb25jYXQiLCAiTGFiZWxFbGVtZW50IiwgImRlZmF1bHQiLCAiY3JlYXRlRWxlbWVudCIsICJjbGFzc05hbWUiLCAiaHRtbEZvciIsICJpbm5lclRleHQiLCAiU2VsZWN0RWxlbWVudCIsICJpZCIsICJuYW1lIiwgInN0eWxlIiwgIndpZHRoIiwgInRpdGxlIiwgIm1hcCIsICJvcHRpb25FbGVtZW50IiwgIk9wdGlvbiIsICJkYXRhc2V0IiwgIldyYXBwZXJFbGVtZW50IiwgImltcG9ydF9leHRfZ2FkZ2V0MyIsICJvcGVuUGFnZSIsICJlbGVtZW50IiwgImhyZWYiLCAidGFyZ2V0IiwgInJlbCIsICJjbGljayIsICJhZGRMaXN0ZW5lciIsICJ0YXJnZXRFbGVtZW50IiwgInNlbGVjdEVsZW1lbnQiLCAiYWRkRXZlbnRMaXN0ZW5lciIsICJldmVudCIsICJpbnB1dEVsZW1lbnQiLCAicXVlcnlTZWxlY3RvciIsICJwcmV2ZW50RGVmYXVsdCIsICJ2YWx1ZSIsICJyZXBsYWNlIiwgImVuY29kZVVSSUNvbXBvbmVudCIsICJwcm9jZXNzRWxlbWVudCIsICJzZWFyY2hFbGVtZW50IiwgInNldEF0dHJpYnV0ZSIsICJ3cmFwcGVyRWxlbWVudCIsICJsYWJlbEVsZW1lbnQiLCAiYXBwZW5kIiwgImdldEJvZHkiLCAidGhlbiIsICJlbmhhbmNlZFNwZWNpYWxTZWFyY2giLCAiJGJvZHkiLCAiXyRib2R5JGZpbmQkZ2V0IiwgIndnQ2Fub25pY2FsU3BlY2lhbFBhZ2VOYW1lIiwgIm13IiwgImNvbmZpZyIsICJnZXQiLCAiZmluZCJdCn0K diff --git a/dist/FoldRef/FoldRef.css b/dist/FoldRef/FoldRef.css index 59a9b6620..4e634ff3b 100644 --- a/dist/FoldRef/FoldRef.css +++ b/dist/FoldRef/FoldRef.css @@ -21,7 +21,7 @@ /* */ /* esbuild-css-modules-plugin-ns-css:src/FoldRef/modules/FoldRef.module.less */ -.FoldRef-module__refarea_FNkcvW { +.FoldRef-module__refarea_FNkcvW__490 { background-color: #00000004; border: 1px solid #e6e6e6; border-radius: .25em; @@ -32,7 +32,7 @@ overflow-y: auto; box-shadow: inset 0 1px 3px #00000013, inset 0 1px 3px #00000026; } -.FoldRef-module__expand_FNkcvW { +.FoldRef-module__expand_FNkcvW__490 { cursor: pointer; text-align: center; background-color: #fff; @@ -46,11 +46,11 @@ left: 50%; transform: translateX(-50%); } -.FoldRef-module__expand_FNkcvW:hover { +.FoldRef-module__expand_FNkcvW__490:hover { color: #36c; transition: all .2s ease-in-out; } /* */ -/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiZXNidWlsZC1jc3MtbW9kdWxlcy1wbHVnaW4tbnMtY3NzOnNyYy9Gb2xkUmVmL21vZHVsZXMvRm9sZFJlZi5tb2R1bGUubGVzcyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyogPHN0ZGluPiAqL1xuLkZvbGRSZWYtbW9kdWxlX19yZWZhcmVhX0ZOa2N2VyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDAwNDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2U2ZTZlNjtcbiAgYm9yZGVyLXJhZGl1czogLjI1ZW07XG4gIG1heC1oZWlnaHQ6IDYwdmg7XG4gIHBhZGRpbmc6IC4yZW0gLjRlbSAyZW07XG4gIHRyYW5zaXRpb246IG1heC1oZWlnaHQgLjNzIGVhc2UtaW4tb3V0O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDNweCAjMDAwMDAwMTMsIGluc2V0IDAgMXB4IDNweCAjMDAwMDAwMjY7XG59XG4uRm9sZFJlZi1tb2R1bGVfX2V4cGFuZF9GTmtjdlcge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgI2U2ZTZlNjtcbiAgYm9yZGVyLXJhZGl1czogLjVlbSAuNWVtIDAgMDtcbiAgd2lkdGg6IDIwJTtcbiAgaGVpZ2h0OiAyZW07XG4gIGxpbmUtaGVpZ2h0OiAyZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm90dG9tOiAyLjEyNWVtO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbn1cbi5Gb2xkUmVmLW1vZHVsZV9fZXhwYW5kX0ZOa2N2Vzpob3ZlciB7XG4gIGNvbG9yOiAjMzZjO1xuICB0cmFuc2l0aW9uOiBhbGwgLjJzIGVhc2UtaW4tb3V0O1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxDQUFDO0FBQ0Msb0JBQWtCO0FBQ2xCLFVBQVEsSUFBSSxNQUFNO0FBQ2xCLGlCQUFlO0FBQ2YsY0FBWTtBQUNaLFdBQVMsS0FBSyxLQUFLO0FBQ25CLGNBQVksV0FBVyxJQUFJO0FBQzNCLFlBQVU7QUFDVixjQUFZO0FBQ1osY0FBWSxNQUFNLEVBQUUsSUFBSSxJQUFJLFNBQVMsRUFBRSxNQUFNLEVBQUUsSUFBSSxJQUFJO0FBQ3pEO0FBQ0EsQ0FBQztBQUNDLFVBQVE7QUFDUixjQUFZO0FBQ1osb0JBQWtCO0FBQ2xCLFVBQVEsSUFBSSxNQUFNO0FBQ2xCLGlCQUFlLEtBQUssS0FBSyxFQUFFO0FBQzNCLFNBQU87QUFDUCxVQUFRO0FBQ1IsZUFBYTtBQUNiLFlBQVU7QUFDVixVQUFRO0FBQ1IsUUFBTTtBQUNOLGFBQVcsV0FBVztBQUN4QjtBQUNBLENBZEMsNkJBYzZCO0FBQzVCLFNBQU87QUFDUCxjQUFZLElBQUksSUFBSTtBQUN0QjsiLAogICJuYW1lcyI6IFtdCn0K */ +/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiZXNidWlsZC1jc3MtbW9kdWxlcy1wbHVnaW4tbnMtY3NzOnNyYy9Gb2xkUmVmL21vZHVsZXMvRm9sZFJlZi5tb2R1bGUubGVzcyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyogPHN0ZGluPiAqL1xuLkZvbGRSZWYtbW9kdWxlX19yZWZhcmVhX0ZOa2N2V19fNDkwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDA0O1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTZlNmU2O1xuICBib3JkZXItcmFkaXVzOiAuMjVlbTtcbiAgbWF4LWhlaWdodDogNjB2aDtcbiAgcGFkZGluZzogLjJlbSAuNGVtIDJlbTtcbiAgdHJhbnNpdGlvbjogbWF4LWhlaWdodCAuM3MgZWFzZS1pbi1vdXQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggM3B4ICMwMDAwMDAxMywgaW5zZXQgMCAxcHggM3B4ICMwMDAwMDAyNjtcbn1cbi5Gb2xkUmVmLW1vZHVsZV9fZXhwYW5kX0ZOa2N2V19fNDkwIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlNmU2ZTY7XG4gIGJvcmRlci1yYWRpdXM6IC41ZW0gLjVlbSAwIDA7XG4gIHdpZHRoOiAyMCU7XG4gIGhlaWdodDogMmVtO1xuICBsaW5lLWhlaWdodDogMmVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJvdHRvbTogMi4xMjVlbTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG59XG4uRm9sZFJlZi1tb2R1bGVfX2V4cGFuZF9GTmtjdldfXzQ5MDpob3ZlciB7XG4gIGNvbG9yOiAjMzZjO1xuICB0cmFuc2l0aW9uOiBhbGwgLjJzIGVhc2UtaW4tb3V0O1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxDQUFDO0FBQ0Msb0JBQWtCO0FBQ2xCLFVBQVEsSUFBSSxNQUFNO0FBQ2xCLGlCQUFlO0FBQ2YsY0FBWTtBQUNaLFdBQVMsS0FBSyxLQUFLO0FBQ25CLGNBQVksV0FBVyxJQUFJO0FBQzNCLFlBQVU7QUFDVixjQUFZO0FBQ1osY0FBWSxNQUFNLEVBQUUsSUFBSSxJQUFJLFNBQVMsRUFBRSxNQUFNLEVBQUUsSUFBSSxJQUFJO0FBQ3pEO0FBQ0EsQ0FBQztBQUNDLFVBQVE7QUFDUixjQUFZO0FBQ1osb0JBQWtCO0FBQ2xCLFVBQVEsSUFBSSxNQUFNO0FBQ2xCLGlCQUFlLEtBQUssS0FBSyxFQUFFO0FBQzNCLFNBQU87QUFDUCxVQUFRO0FBQ1IsZUFBYTtBQUNiLFlBQVU7QUFDVixVQUFRO0FBQ1IsUUFBTTtBQUNOLGFBQVcsV0FBVztBQUN4QjtBQUNBLENBZEMsa0NBY2tDO0FBQ2pDLFNBQU87QUFDUCxjQUFZLElBQUksSUFBSTtBQUN0QjsiLAogICJuYW1lcyI6IFtdCn0K */ diff --git a/dist/FoldRef/FoldRef.js b/dist/FoldRef/FoldRef.js index 6468f4ad5..b8ead2fb2 100644 --- a/dist/FoldRef/FoldRef.js +++ b/dist/FoldRef/FoldRef.js @@ -69,8 +69,8 @@ function _arrayLikeToArray(r, a) { return n; } //! src/FoldRef/modules/FoldRef.module.less -var expand = "FoldRef-module__expand_FNkcvW"; -var refarea = "FoldRef-module__refarea_FNkcvW"; +var expand = "FoldRef-module__expand_FNkcvW__490"; +var refarea = "FoldRef-module__refarea_FNkcvW__490"; //! src/FoldRef/modules/i18n.ts var import_ext_gadget = require("ext.gadget.i18n"); var getI18nMessages = () => { @@ -136,4 +136,4 @@ if (wgNamespaceNumber === 0) { /* */ -//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL0ZvbGRSZWYvbW9kdWxlcy9Gb2xkUmVmLm1vZHVsZS5sZXNzIiwgInNyYy9Gb2xkUmVmL21vZHVsZXMvaTE4bi50cyIsICJzcmMvRm9sZFJlZi9tb2R1bGVzL3V0aWwvcHJvY2Vzc0VsZW1lbnQudHMiLCAic3JjL0ZvbGRSZWYvbW9kdWxlcy9jb3JlLnRzIiwgInNyYy9Gb2xkUmVmL0ZvbGRSZWYudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCBcImVzYnVpbGQtY3NzLW1vZHVsZXMtcGx1Z2luLW5zLWNzczpzcmMvRm9sZFJlZi9tb2R1bGVzL0ZvbGRSZWYubW9kdWxlLmxlc3NcIjtcbmV4cG9ydCBjb25zdCBleHBhbmQgPSBcIkZvbGRSZWYtbW9kdWxlX19leHBhbmRfRk5rY3ZXXCI7XG5leHBvcnQgY29uc3QgcmVmYXJlYSA9IFwiRm9sZFJlZi1tb2R1bGVfX3JlZmFyZWFfRk5rY3ZXXCI7XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgXCJleHBhbmRcIjogZXhwYW5kLFxuICBcInJlZmFyZWFcIjogcmVmYXJlYVxufTtcbiAgICAgICIsICJpbXBvcnQge2xvY2FsaXplfSBmcm9tICdleHQuZ2FkZ2V0LmkxOG4nO1xuXG5jb25zdCBnZXRJMThuTWVzc2FnZXMgPSAoKSA9PiB7XG5cdHJldHVybiB7XG5cdFx0RXhwYW5kOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ0V4cGFuZCcsXG5cdFx0XHRqYTogJ+WxlemWiycsXG5cdFx0XHQnemgtaGFucyc6ICflsZXlvIAnLFxuXHRcdFx0J3poLWhhbnQnOiAn5bGV6ZaLJyxcblx0XHR9KSxcblx0fTtcbn07XG5cbmNvbnN0IGkxOG5NZXNzYWdlcyA9IGdldEkxOG5NZXNzYWdlcygpO1xuXG5jb25zdCBnZXRNZXNzYWdlOiBHZXRNZXNzYWdlczx0eXBlb2YgaTE4bk1lc3NhZ2VzPiA9IChrZXkpID0+IHtcblx0cmV0dXJuIGkxOG5NZXNzYWdlc1trZXldIHx8IGtleTtcbn07XG5cbmV4cG9ydCB7Z2V0TWVzc2FnZX07XG4iLCAiaW1wb3J0IHtleHBhbmQsIHJlZmFyZWF9IGZyb20gJy4uL0ZvbGRSZWYubW9kdWxlLmxlc3MnO1xuaW1wb3J0IHtnZXRNZXNzYWdlfSBmcm9tICcuLi9pMThuJztcblxuLy8gY3JlYXRlIGEgZGl2LCBwbGFjZSB7e1JlZmxpc3R9fXMgaW5zaWRlXG5jb25zdCBwcm9jZXNzRWxlbWVudCA9ICgkZWxlbWVudDogSlF1ZXJ5KTogdm9pZCA9PiB7XG5cdC8vIFRoZSBmb2xsb3dpbmcgY2xhc3NlcyBhcmUgdXNlZCBoZXJlOlxuXHQvLyAqIHNlZSBjb25zdGFudC50c1xuXHQvLyAqIGZvciBtb3JlIGluZm9ybWF0aW9uXG5cdGNvbnN0ICRyZWZGb2xkZXI6IEpRdWVyeSA9ICQoJzxkaXY+JykuYWRkQ2xhc3MocmVmYXJlYSBhcyBzdHJpbmcpO1xuXG5cdCRyZWZGb2xkZXIuaW5zZXJ0QmVmb3JlKCRlbGVtZW50KTtcblx0JGVsZW1lbnQuYXBwZW5kVG8oJHJlZkZvbGRlcik7XG5cblx0Ly8gYWRkIGFuIGV4cGFuZCBidXR0b24gYXQgdGhlIGJvdHRvbVxuXHQvLyBUaGUgZm9sbG93aW5nIGNsYXNzZXMgYXJlIHVzZWQgaGVyZTpcblx0Ly8gKiBzZWUgY29uc3RhbnQudHNcblx0Ly8gKiBmb3IgbW9yZSBpbmZvcm1hdGlvblxuXHRjb25zdCAkZXhwYW5kQnV0dG9uOiBKUXVlcnkgPSAkKCc8ZGl2PicpXG5cdFx0LmFkZENsYXNzKGV4cGFuZCBhcyBzdHJpbmcpXG5cdFx0LnRleHQoZ2V0TWVzc2FnZSgnRXhwYW5kJykpO1xuXHQkcmVmRm9sZGVyLmFmdGVyKCRleHBhbmRCdXR0b24pO1xufTtcblxuZXhwb3J0IHtwcm9jZXNzRWxlbWVudH07XG4iLCAiaW1wb3J0IHtleHBhbmQsIHJlZmFyZWF9IGZyb20gJy4vRm9sZFJlZi5tb2R1bGUubGVzcyc7XG5pbXBvcnQge3Byb2Nlc3NFbGVtZW50fSBmcm9tICcuL3V0aWwvcHJvY2Vzc0VsZW1lbnQnO1xuXG5jb25zdCBmb2xkUmVmID0gKCRib2R5OiBKUXVlcnk8SFRNTEJvZHlFbGVtZW50Pik6IHZvaWQgPT4ge1xuXHQvLyBmb3IgYXJ0aWNsZXMgdXNpbmcgPHJlZmVyZW5jZXMgLz4sIHt7UmVmbGlzdH19cyBvciBzaW1pbGFyIHRlbXBsYXRlc1xuXHRjb25zdCAkZm9sZFJlZjogSlF1ZXJ5ID0gJGJvZHkuZmluZCgnLm13LXJlZmVyZW5jZXMtd3JhcCwucmVmYmVnaW4nKTtcblx0Zm9yIChjb25zdCBlbGVtZW50IG9mICRmb2xkUmVmKSB7XG5cdFx0Y29uc3QgJGVsZW1lbnQgPSAkKGVsZW1lbnQpO1xuXHRcdGlmIChcblx0XHRcdCRlbGVtZW50XG5cdFx0XHRcdC5wYXJlbnQoJ2RpdicpXG5cdFx0XHRcdC5wYXJlbnQoJ2RpdicpXG5cdFx0XHRcdC5oYXNDbGFzcyhyZWZhcmVhIGFzIHN0cmluZykgfHxcblx0XHRcdCRlbGVtZW50LnBhcmVudCgnZGl2JykuaGFzQ2xhc3MocmVmYXJlYSBhcyBzdHJpbmcpXG5cdFx0KSB7XG5cdFx0XHRjb250aW51ZTtcblx0XHR9XG5cblx0XHRjb25zdCBoZWlnaHQ6IG51bWJlciB8IHVuZGVmaW5lZCA9ICRlbGVtZW50LmhlaWdodCgpO1xuXHRcdGlmICghaGVpZ2h0IHx8IGhlaWdodCA8PSB3aW5kb3cuaW5uZXJIZWlnaHQgKiAwLjkpIHtcblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblxuXHRcdC8vIGlmIGdyZWF0ZXIgdGhhbiA5MCUgb2YgdGhlIHZpZXdwb3J0IGhlaWdodCwgZm9sZCB0aGUgcmVmZXJlbmNlcyBsaXN0XG5cdFx0cHJvY2Vzc0VsZW1lbnQoJGVsZW1lbnQpO1xuXHR9XG5cblx0Ly8gYXR0YWNoIGV2ZW50IGxpc3RlbmVyIHRvIHRoZSBleHBhbmQgYnV0dG9uc1xuXHQkYm9keS5maW5kKGAuJHtleHBhbmR9YCkub24oJ2NsaWNrJywgKGV2ZW50OiBKUXVlcnkuQ2xpY2tFdmVudDxIVE1MRWxlbWVudD4pOiB2b2lkID0+IHtcblx0XHRjb25zdCAkZWxlbWVudCA9ICQoZXZlbnQuY3VycmVudFRhcmdldCkgYXMgSlF1ZXJ5O1xuXG5cdFx0Ly8gVGhlIGZvbGxvd2luZyBjbGFzc2VzIGFyZSB1c2VkIGhlcmU6XG5cdFx0Ly8gKiBzZWUgY29uc3RhbnQudHNcblx0XHQvLyAqIGZvciBtb3JlIGluZm9ybWF0aW9uXG5cdFx0JGVsZW1lbnQucHJldihgLiR7cmVmYXJlYX1gKS5yZW1vdmVDbGFzcyhyZWZhcmVhIGFzIHN0cmluZyk7XG5cdFx0JGVsZW1lbnQucmVtb3ZlKCk7XG5cdH0pO1xufTtcblxuZXhwb3J0IHtmb2xkUmVmfTtcbiIsICJpbXBvcnQge2ZvbGRSZWZ9IGZyb20gJy4vbW9kdWxlcy9jb3JlJztcbmltcG9ydCB7Z2V0Qm9keX0gZnJvbSAnZXh0LmdhZGdldC5VdGlsJztcblxuY29uc3Qge3dnTmFtZXNwYWNlTnVtYmVyfSA9IG13LmNvbmZpZy5nZXQoKTtcblxuaWYgKHdnTmFtZXNwYWNlTnVtYmVyID09PSAwKSB7XG5cdHZvaWQgZ2V0Qm9keSgpLnRoZW4oZm9sZFJlZik7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNPLElBQU1BLFNBQVM7QUFDZixJQUFNQyxVQUFVOztBQ0Z2QixJQUFBQyxvQkFBdUJDLFFBQUEsaUJBQUE7QUFFdkIsSUFBTUMsa0JBQWtCQSxNQUFNO0FBQzdCLFNBQU87SUFDTkMsU0FBQSxHQUFRSCxrQkFBQUksVUFBUztNQUNoQkMsSUFBSTtNQUNKQyxJQUFJO01BQ0osV0FBVztNQUNYLFdBQVc7SUFDWixDQUFDO0VBQ0Y7QUFDRDtBQUVBLElBQU1DLGVBQWVMLGdCQUFnQjtBQUVyQyxJQUFNTSxhQUFnREMsU0FBUTtBQUM3RCxTQUFPRixhQUFhRSxHQUFHLEtBQUtBO0FBQzdCOztBQ2JBLElBQU1DLGlCQUFrQkMsY0FBMkI7QUFJbEQsUUFBTUMsYUFBcUJDLEVBQUUsT0FBTyxFQUFFQyxTQUFTZixPQUFpQjtBQUVoRWEsYUFBV0csYUFBYUosUUFBUTtBQUNoQ0EsV0FBU0ssU0FBU0osVUFBVTtBQU01QixRQUFNSyxnQkFBd0JKLEVBQUUsT0FBTyxFQUNyQ0MsU0FBU2hCLE1BQWdCLEVBQ3pCb0IsS0FBS1YsV0FBVyxRQUFRLENBQUM7QUFDM0JJLGFBQVdPLE1BQU1GLGFBQWE7QUFDL0I7O0FDbEJBLElBQU1HLFVBQVdDLFdBQXlDO0FBRXpELFFBQU1DLFdBQW1CRCxNQUFNRSxLQUFLLCtCQUErQjtBQUFBLE1BQUFDLFlBQUFDLDJCQUM3Q0gsUUFBQSxHQUFBSTtBQUFBLE1BQUE7QUFBdEIsU0FBQUYsVUFBQUcsRUFBQSxHQUFBLEVBQUFELFFBQUFGLFVBQUFJLEVBQUEsR0FBQUMsUUFBZ0M7QUFBQSxZQUFyQkMsVUFBQUosTUFBQUs7QUFDVixZQUFNcEIsV0FBV0UsRUFBRWlCLE9BQU87QUFDMUIsVUFDQ25CLFNBQ0VxQixPQUFPLEtBQUssRUFDWkEsT0FBTyxLQUFLLEVBQ1pDLFNBQVNsQyxPQUFpQixLQUM1QlksU0FBU3FCLE9BQU8sS0FBSyxFQUFFQyxTQUFTbEMsT0FBaUIsR0FDaEQ7QUFDRDtNQUNEO0FBRUEsWUFBTW1DLFNBQTZCdkIsU0FBU3VCLE9BQU87QUFDbkQsVUFBSSxDQUFDQSxVQUFVQSxVQUFVQyxPQUFPQyxjQUFjLEtBQUs7QUFDbEQ7TUFDRDtBQUdBMUIscUJBQWVDLFFBQVE7SUFDeEI7RUFBQSxTQUFBMEIsS0FBQTtBQUFBYixjQUFBYyxFQUFBRCxHQUFBO0VBQUEsVUFBQTtBQUFBYixjQUFBZSxFQUFBO0VBQUE7QUFHQWxCLFFBQU1FLEtBQUEsSUFBQWlCLE9BQVMxQyxNQUFNLENBQUUsRUFBRTJDLEdBQUcsU0FBVUMsV0FBZ0Q7QUFDckYsVUFBTS9CLFdBQVdFLEVBQUU2QixNQUFNQyxhQUFhO0FBS3RDaEMsYUFBU2lDLEtBQUEsSUFBQUosT0FBU3pDLE9BQU8sQ0FBRSxFQUFFOEMsWUFBWTlDLE9BQWlCO0FBQzFEWSxhQUFTbUMsT0FBTztFQUNqQixDQUFDO0FBQ0Y7O0FDcENBLElBQUFDLHFCQUFzQjlDLFFBQUEsaUJBQUE7QUFFdEIsSUFBTTtFQUFDK0M7QUFBaUIsSUFBSUMsR0FBR0MsT0FBT0MsSUFBSTtBQUUxQyxJQUFJSCxzQkFBc0IsR0FBRztBQUM1QixRQUFBLEdBQUtELG1CQUFBSyxTQUFRLEVBQUVDLEtBQUtqQyxPQUFPO0FBQzVCOyIsCiAgIm5hbWVzIjogWyJleHBhbmQiLCAicmVmYXJlYSIsICJpbXBvcnRfZXh0X2dhZGdldCIsICJyZXF1aXJlIiwgImdldEkxOG5NZXNzYWdlcyIsICJFeHBhbmQiLCAibG9jYWxpemUiLCAiZW4iLCAiamEiLCAiaTE4bk1lc3NhZ2VzIiwgImdldE1lc3NhZ2UiLCAia2V5IiwgInByb2Nlc3NFbGVtZW50IiwgIiRlbGVtZW50IiwgIiRyZWZGb2xkZXIiLCAiJCIsICJhZGRDbGFzcyIsICJpbnNlcnRCZWZvcmUiLCAiYXBwZW5kVG8iLCAiJGV4cGFuZEJ1dHRvbiIsICJ0ZXh0IiwgImFmdGVyIiwgImZvbGRSZWYiLCAiJGJvZHkiLCAiJGZvbGRSZWYiLCAiZmluZCIsICJfaXRlcmF0b3IiLCAiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIiLCAiX3N0ZXAiLCAicyIsICJuIiwgImRvbmUiLCAiZWxlbWVudCIsICJ2YWx1ZSIsICJwYXJlbnQiLCAiaGFzQ2xhc3MiLCAiaGVpZ2h0IiwgIndpbmRvdyIsICJpbm5lckhlaWdodCIsICJlcnIiLCAiZSIsICJmIiwgImNvbmNhdCIsICJvbiIsICJldmVudCIsICJjdXJyZW50VGFyZ2V0IiwgInByZXYiLCAicmVtb3ZlQ2xhc3MiLCAicmVtb3ZlIiwgImltcG9ydF9leHRfZ2FkZ2V0MiIsICJ3Z05hbWVzcGFjZU51bWJlciIsICJtdyIsICJjb25maWciLCAiZ2V0IiwgImdldEJvZHkiLCAidGhlbiJdCn0K +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL0ZvbGRSZWYvbW9kdWxlcy9Gb2xkUmVmLm1vZHVsZS5sZXNzIiwgInNyYy9Gb2xkUmVmL21vZHVsZXMvaTE4bi50cyIsICJzcmMvRm9sZFJlZi9tb2R1bGVzL3V0aWwvcHJvY2Vzc0VsZW1lbnQudHMiLCAic3JjL0ZvbGRSZWYvbW9kdWxlcy9jb3JlLnRzIiwgInNyYy9Gb2xkUmVmL0ZvbGRSZWYudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCBcImVzYnVpbGQtY3NzLW1vZHVsZXMtcGx1Z2luLW5zLWNzczpzcmMvRm9sZFJlZi9tb2R1bGVzL0ZvbGRSZWYubW9kdWxlLmxlc3NcIjtcbmV4cG9ydCBjb25zdCBleHBhbmQgPSBcIkZvbGRSZWYtbW9kdWxlX19leHBhbmRfRk5rY3ZXX180OTBcIjtcbmV4cG9ydCBjb25zdCByZWZhcmVhID0gXCJGb2xkUmVmLW1vZHVsZV9fcmVmYXJlYV9GTmtjdldfXzQ5MFwiO1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIFwiZXhwYW5kXCI6IGV4cGFuZCxcbiAgXCJyZWZhcmVhXCI6IHJlZmFyZWFcbn07XG4gICAgICAiLCAiaW1wb3J0IHtsb2NhbGl6ZX0gZnJvbSAnZXh0LmdhZGdldC5pMThuJztcblxuY29uc3QgZ2V0STE4bk1lc3NhZ2VzID0gKCkgPT4ge1xuXHRyZXR1cm4ge1xuXHRcdEV4cGFuZDogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdFeHBhbmQnLFxuXHRcdFx0amE6ICflsZXplosnLFxuXHRcdFx0J3poLWhhbnMnOiAn5bGV5byAJyxcblx0XHRcdCd6aC1oYW50JzogJ+WxlemWiycsXG5cdFx0fSksXG5cdH07XG59O1xuXG5jb25zdCBpMThuTWVzc2FnZXMgPSBnZXRJMThuTWVzc2FnZXMoKTtcblxuY29uc3QgZ2V0TWVzc2FnZTogR2V0TWVzc2FnZXM8dHlwZW9mIGkxOG5NZXNzYWdlcz4gPSAoa2V5KSA9PiB7XG5cdHJldHVybiBpMThuTWVzc2FnZXNba2V5XSB8fCBrZXk7XG59O1xuXG5leHBvcnQge2dldE1lc3NhZ2V9O1xuIiwgImltcG9ydCB7ZXhwYW5kLCByZWZhcmVhfSBmcm9tICcuLi9Gb2xkUmVmLm1vZHVsZS5sZXNzJztcbmltcG9ydCB7Z2V0TWVzc2FnZX0gZnJvbSAnLi4vaTE4bic7XG5cbi8vIGNyZWF0ZSBhIGRpdiwgcGxhY2Uge3tSZWZsaXN0fX1zIGluc2lkZVxuY29uc3QgcHJvY2Vzc0VsZW1lbnQgPSAoJGVsZW1lbnQ6IEpRdWVyeSk6IHZvaWQgPT4ge1xuXHQvLyBUaGUgZm9sbG93aW5nIGNsYXNzZXMgYXJlIHVzZWQgaGVyZTpcblx0Ly8gKiBzZWUgY29uc3RhbnQudHNcblx0Ly8gKiBmb3IgbW9yZSBpbmZvcm1hdGlvblxuXHRjb25zdCAkcmVmRm9sZGVyOiBKUXVlcnkgPSAkKCc8ZGl2PicpLmFkZENsYXNzKHJlZmFyZWEgYXMgc3RyaW5nKTtcblxuXHQkcmVmRm9sZGVyLmluc2VydEJlZm9yZSgkZWxlbWVudCk7XG5cdCRlbGVtZW50LmFwcGVuZFRvKCRyZWZGb2xkZXIpO1xuXG5cdC8vIGFkZCBhbiBleHBhbmQgYnV0dG9uIGF0IHRoZSBib3R0b21cblx0Ly8gVGhlIGZvbGxvd2luZyBjbGFzc2VzIGFyZSB1c2VkIGhlcmU6XG5cdC8vICogc2VlIGNvbnN0YW50LnRzXG5cdC8vICogZm9yIG1vcmUgaW5mb3JtYXRpb25cblx0Y29uc3QgJGV4cGFuZEJ1dHRvbjogSlF1ZXJ5ID0gJCgnPGRpdj4nKVxuXHRcdC5hZGRDbGFzcyhleHBhbmQgYXMgc3RyaW5nKVxuXHRcdC50ZXh0KGdldE1lc3NhZ2UoJ0V4cGFuZCcpKTtcblx0JHJlZkZvbGRlci5hZnRlcigkZXhwYW5kQnV0dG9uKTtcbn07XG5cbmV4cG9ydCB7cHJvY2Vzc0VsZW1lbnR9O1xuIiwgImltcG9ydCB7ZXhwYW5kLCByZWZhcmVhfSBmcm9tICcuL0ZvbGRSZWYubW9kdWxlLmxlc3MnO1xuaW1wb3J0IHtwcm9jZXNzRWxlbWVudH0gZnJvbSAnLi91dGlsL3Byb2Nlc3NFbGVtZW50JztcblxuY29uc3QgZm9sZFJlZiA9ICgkYm9keTogSlF1ZXJ5PEhUTUxCb2R5RWxlbWVudD4pOiB2b2lkID0+IHtcblx0Ly8gZm9yIGFydGljbGVzIHVzaW5nIDxyZWZlcmVuY2VzIC8+LCB7e1JlZmxpc3R9fXMgb3Igc2ltaWxhciB0ZW1wbGF0ZXNcblx0Y29uc3QgJGZvbGRSZWY6IEpRdWVyeSA9ICRib2R5LmZpbmQoJy5tdy1yZWZlcmVuY2VzLXdyYXAsLnJlZmJlZ2luJyk7XG5cdGZvciAoY29uc3QgZWxlbWVudCBvZiAkZm9sZFJlZikge1xuXHRcdGNvbnN0ICRlbGVtZW50ID0gJChlbGVtZW50KTtcblx0XHRpZiAoXG5cdFx0XHQkZWxlbWVudFxuXHRcdFx0XHQucGFyZW50KCdkaXYnKVxuXHRcdFx0XHQucGFyZW50KCdkaXYnKVxuXHRcdFx0XHQuaGFzQ2xhc3MocmVmYXJlYSBhcyBzdHJpbmcpIHx8XG5cdFx0XHQkZWxlbWVudC5wYXJlbnQoJ2RpdicpLmhhc0NsYXNzKHJlZmFyZWEgYXMgc3RyaW5nKVxuXHRcdCkge1xuXHRcdFx0Y29udGludWU7XG5cdFx0fVxuXG5cdFx0Y29uc3QgaGVpZ2h0OiBudW1iZXIgfCB1bmRlZmluZWQgPSAkZWxlbWVudC5oZWlnaHQoKTtcblx0XHRpZiAoIWhlaWdodCB8fCBoZWlnaHQgPD0gd2luZG93LmlubmVySGVpZ2h0ICogMC45KSB7XG5cdFx0XHRjb250aW51ZTtcblx0XHR9XG5cblx0XHQvLyBpZiBncmVhdGVyIHRoYW4gOTAlIG9mIHRoZSB2aWV3cG9ydCBoZWlnaHQsIGZvbGQgdGhlIHJlZmVyZW5jZXMgbGlzdFxuXHRcdHByb2Nlc3NFbGVtZW50KCRlbGVtZW50KTtcblx0fVxuXG5cdC8vIGF0dGFjaCBldmVudCBsaXN0ZW5lciB0byB0aGUgZXhwYW5kIGJ1dHRvbnNcblx0JGJvZHkuZmluZChgLiR7ZXhwYW5kfWApLm9uKCdjbGljaycsIChldmVudDogSlF1ZXJ5LkNsaWNrRXZlbnQ8SFRNTEVsZW1lbnQ+KTogdm9pZCA9PiB7XG5cdFx0Y29uc3QgJGVsZW1lbnQgPSAkKGV2ZW50LmN1cnJlbnRUYXJnZXQpIGFzIEpRdWVyeTtcblxuXHRcdC8vIFRoZSBmb2xsb3dpbmcgY2xhc3NlcyBhcmUgdXNlZCBoZXJlOlxuXHRcdC8vICogc2VlIGNvbnN0YW50LnRzXG5cdFx0Ly8gKiBmb3IgbW9yZSBpbmZvcm1hdGlvblxuXHRcdCRlbGVtZW50LnByZXYoYC4ke3JlZmFyZWF9YCkucmVtb3ZlQ2xhc3MocmVmYXJlYSBhcyBzdHJpbmcpO1xuXHRcdCRlbGVtZW50LnJlbW92ZSgpO1xuXHR9KTtcbn07XG5cbmV4cG9ydCB7Zm9sZFJlZn07XG4iLCAiaW1wb3J0IHtmb2xkUmVmfSBmcm9tICcuL21vZHVsZXMvY29yZSc7XG5pbXBvcnQge2dldEJvZHl9IGZyb20gJ2V4dC5nYWRnZXQuVXRpbCc7XG5cbmNvbnN0IHt3Z05hbWVzcGFjZU51bWJlcn0gPSBtdy5jb25maWcuZ2V0KCk7XG5cbmlmICh3Z05hbWVzcGFjZU51bWJlciA9PT0gMCkge1xuXHR2b2lkIGdldEJvZHkoKS50aGVuKGZvbGRSZWYpO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDTyxJQUFNQSxTQUFTO0FBQ2YsSUFBTUMsVUFBVTs7QUNGdkIsSUFBQUMsb0JBQXVCQyxRQUFBLGlCQUFBO0FBRXZCLElBQU1DLGtCQUFrQkEsTUFBTTtBQUM3QixTQUFPO0lBQ05DLFNBQUEsR0FBUUgsa0JBQUFJLFVBQVM7TUFDaEJDLElBQUk7TUFDSkMsSUFBSTtNQUNKLFdBQVc7TUFDWCxXQUFXO0lBQ1osQ0FBQztFQUNGO0FBQ0Q7QUFFQSxJQUFNQyxlQUFlTCxnQkFBZ0I7QUFFckMsSUFBTU0sYUFBZ0RDLFNBQVE7QUFDN0QsU0FBT0YsYUFBYUUsR0FBRyxLQUFLQTtBQUM3Qjs7QUNiQSxJQUFNQyxpQkFBa0JDLGNBQTJCO0FBSWxELFFBQU1DLGFBQXFCQyxFQUFFLE9BQU8sRUFBRUMsU0FBU2YsT0FBaUI7QUFFaEVhLGFBQVdHLGFBQWFKLFFBQVE7QUFDaENBLFdBQVNLLFNBQVNKLFVBQVU7QUFNNUIsUUFBTUssZ0JBQXdCSixFQUFFLE9BQU8sRUFDckNDLFNBQVNoQixNQUFnQixFQUN6Qm9CLEtBQUtWLFdBQVcsUUFBUSxDQUFDO0FBQzNCSSxhQUFXTyxNQUFNRixhQUFhO0FBQy9COztBQ2xCQSxJQUFNRyxVQUFXQyxXQUF5QztBQUV6RCxRQUFNQyxXQUFtQkQsTUFBTUUsS0FBSywrQkFBK0I7QUFBQSxNQUFBQyxZQUFBQywyQkFDN0NILFFBQUEsR0FBQUk7QUFBQSxNQUFBO0FBQXRCLFNBQUFGLFVBQUFHLEVBQUEsR0FBQSxFQUFBRCxRQUFBRixVQUFBSSxFQUFBLEdBQUFDLFFBQWdDO0FBQUEsWUFBckJDLFVBQUFKLE1BQUFLO0FBQ1YsWUFBTXBCLFdBQVdFLEVBQUVpQixPQUFPO0FBQzFCLFVBQ0NuQixTQUNFcUIsT0FBTyxLQUFLLEVBQ1pBLE9BQU8sS0FBSyxFQUNaQyxTQUFTbEMsT0FBaUIsS0FDNUJZLFNBQVNxQixPQUFPLEtBQUssRUFBRUMsU0FBU2xDLE9BQWlCLEdBQ2hEO0FBQ0Q7TUFDRDtBQUVBLFlBQU1tQyxTQUE2QnZCLFNBQVN1QixPQUFPO0FBQ25ELFVBQUksQ0FBQ0EsVUFBVUEsVUFBVUMsT0FBT0MsY0FBYyxLQUFLO0FBQ2xEO01BQ0Q7QUFHQTFCLHFCQUFlQyxRQUFRO0lBQ3hCO0VBQUEsU0FBQTBCLEtBQUE7QUFBQWIsY0FBQWMsRUFBQUQsR0FBQTtFQUFBLFVBQUE7QUFBQWIsY0FBQWUsRUFBQTtFQUFBO0FBR0FsQixRQUFNRSxLQUFBLElBQUFpQixPQUFTMUMsTUFBTSxDQUFFLEVBQUUyQyxHQUFHLFNBQVVDLFdBQWdEO0FBQ3JGLFVBQU0vQixXQUFXRSxFQUFFNkIsTUFBTUMsYUFBYTtBQUt0Q2hDLGFBQVNpQyxLQUFBLElBQUFKLE9BQVN6QyxPQUFPLENBQUUsRUFBRThDLFlBQVk5QyxPQUFpQjtBQUMxRFksYUFBU21DLE9BQU87RUFDakIsQ0FBQztBQUNGOztBQ3BDQSxJQUFBQyxxQkFBc0I5QyxRQUFBLGlCQUFBO0FBRXRCLElBQU07RUFBQytDO0FBQWlCLElBQUlDLEdBQUdDLE9BQU9DLElBQUk7QUFFMUMsSUFBSUgsc0JBQXNCLEdBQUc7QUFDNUIsUUFBQSxHQUFLRCxtQkFBQUssU0FBUSxFQUFFQyxLQUFLakMsT0FBTztBQUM1QjsiLAogICJuYW1lcyI6IFsiZXhwYW5kIiwgInJlZmFyZWEiLCAiaW1wb3J0X2V4dF9nYWRnZXQiLCAicmVxdWlyZSIsICJnZXRJMThuTWVzc2FnZXMiLCAiRXhwYW5kIiwgImxvY2FsaXplIiwgImVuIiwgImphIiwgImkxOG5NZXNzYWdlcyIsICJnZXRNZXNzYWdlIiwgImtleSIsICJwcm9jZXNzRWxlbWVudCIsICIkZWxlbWVudCIsICIkcmVmRm9sZGVyIiwgIiQiLCAiYWRkQ2xhc3MiLCAiaW5zZXJ0QmVmb3JlIiwgImFwcGVuZFRvIiwgIiRleHBhbmRCdXR0b24iLCAidGV4dCIsICJhZnRlciIsICJmb2xkUmVmIiwgIiRib2R5IiwgIiRmb2xkUmVmIiwgImZpbmQiLCAiX2l0ZXJhdG9yIiwgIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwgIl9zdGVwIiwgInMiLCAibiIsICJkb25lIiwgImVsZW1lbnQiLCAidmFsdWUiLCAicGFyZW50IiwgImhhc0NsYXNzIiwgImhlaWdodCIsICJ3aW5kb3ciLCAiaW5uZXJIZWlnaHQiLCAiZXJyIiwgImUiLCAiZiIsICJjb25jYXQiLCAib24iLCAiZXZlbnQiLCAiY3VycmVudFRhcmdldCIsICJwcmV2IiwgInJlbW92ZUNsYXNzIiwgInJlbW92ZSIsICJpbXBvcnRfZXh0X2dhZGdldDIiLCAid2dOYW1lc3BhY2VOdW1iZXIiLCAibXciLCAiY29uZmlnIiwgImdldCIsICJnZXRCb2R5IiwgInRoZW4iXQp9Cg== diff --git a/dist/GeoLocationReader/GeoLocationReader.js b/dist/GeoLocationReader/GeoLocationReader.js index 0b3788ec8..706ec0761 100644 --- a/dist/GeoLocationReader/GeoLocationReader.js +++ b/dist/GeoLocationReader/GeoLocationReader.js @@ -138,7 +138,7 @@ var CLASS_NAME = "gadget-geo_location_reader"; var CLASS_NAME_ICON = "".concat(CLASS_NAME, "__icon"); var CLASS_NAME_TEXT = "".concat(CLASS_NAME, "__text"); //! src/GeoLocationReader/modules/components/react.tsx -var import_ext_gadget2 = __toESM(require("ext.gadget.React"), 1); +var import_ext_gadget2 = __toESM(require("ext.gadget.JSX"), 1); //! src/GeoLocationReader/modules/i18n.ts var import_ext_gadget = require("ext.gadget.i18n"); var getI18nMessages = () => { @@ -209,7 +209,7 @@ var FooterIcon = ({ indicatorText })); //! src/GeoLocationReader/modules/util/appendIcon.tsx -var import_ext_gadget3 = __toESM(require("ext.gadget.React"), 1); +var import_ext_gadget3 = __toESM(require("ext.gadget.JSX"), 1); var appendFooterNotice = (element) => { const mountPoint = document.querySelector(mountPointSelector); if (mountPoint) { @@ -1473,4 +1473,4 @@ var addElement = /* @__PURE__ */ function() { /* */ -//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL0dlb0xvY2F0aW9uUmVhZGVyL29wdGlvbnMuanNvbiIsICJzcmMvR2VvTG9jYXRpb24vbW9kdWxlcy9jb25zdGFudC50cyIsICJzcmMvR2VvTG9jYXRpb25SZWFkZXIvbW9kdWxlcy9jb25zdGFudC50cyIsICJzcmMvR2VvTG9jYXRpb25SZWFkZXIvbW9kdWxlcy9jb21wb25lbnRzL3JlYWN0LnRzeCIsICJzcmMvR2VvTG9jYXRpb25SZWFkZXIvbW9kdWxlcy9pMThuLnRzIiwgInNyYy9HZW9Mb2NhdGlvblJlYWRlci9tb2R1bGVzL3V0aWwvYXBwZW5kSWNvbi50c3giLCAic3JjL0dlb0xvY2F0aW9uUmVhZGVyL21vZHVsZXMvdXRpbC9uYW1lLnRzIiwgInNyYy9HZW9Mb2NhdGlvblJlYWRlci9tb2R1bGVzL3V0aWwvZ2V0TmFtZS50cyIsICJzcmMvR2VvTG9jYXRpb25SZWFkZXIvbW9kdWxlcy9hcGkudHMiLCAic3JjL0dlb0xvY2F0aW9uUmVhZGVyL21vZHVsZXMvdXRpbC9nZXRMb2NhdGlvbi50cyIsICJzcmMvR2VvTG9jYXRpb25SZWFkZXIvbW9kdWxlcy9hcHBlbmRHZW9JY29uLnRzeCIsICJzcmMvR2VvTG9jYXRpb25SZWFkZXIvbW9kdWxlcy9hZGRFbGVtZW50LnRzIiwgInNyYy9HZW9Mb2NhdGlvblJlYWRlci9HZW9Mb2NhdGlvblJlYWRlci50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsie1xuXHRcImRlZmF1bHRHZW9JbmZvXCI6IHtcblx0XHRcImNvdW50cnlPckFyZWFcIjogXCJcIixcblx0XHRcInJlZ2lvblwiOiBcIlwiLFxuXHRcdFwiY2l0eVwiOiBcIlwiXG5cdH0sXG5cdFwibW91bnRQb2ludFNlbGVjdG9yXCI6IFwiI2Zvb3Rlci1pbmZvLC5wYWdlLWluZm9cIixcblx0XCJzdG9yYWdlS2V5XCI6IFwiZXh0LmdhZGdldC5NYXJrUmlnaHRzX0dlb0xvY2F0aW9uUmVhZGVyLVwiLFxuXHRcInVzZXJOYW1lU3BhY2VOdW1iZXJcIjogMixcblx0XCJ2ZXJzaW9uXCI6IFwiMi4xXCJcbn1cbiIsICJjb25zdCBTWVNURU1fU0NSSVBUX0xJU1Q6IHN0cmluZ1tdID0gW1xuXHQn5rul55So6L+H5ruk5ZmoJyxcblx0J+axgumXu+e8luiAhScsXG5cdCfmsYLpl7vnmb7np5HnpL7ljLonLFxuXHQnRXhhbXBsZScsXG5cdCdFeHRlcm5hbCBjb250cmlidXRvcnMnLFxuXHQnTWFpbnRlbmFuY2Ugc2NyaXB0Jyxcblx0J01lZGlhV2lraSBkZWZhdWx0Jyxcblx0J01lZGlhV2lraSBtZXNzYWdlIGRlbGl2ZXJ5Jyxcblx0J05ldyB1c2VyIHBhZ2UnLFxuXTtcbmNvbnN0IFdFQk1BU1RFUl9MSVNUOiBzdHJpbmdbXSA9IFsnUWl1V2VuJywgJ1FpdVdlbiBmb3IgQWNjb3VudHMnLCAnUWl1d2VuU29jaWFsTWVkaWEnXTtcblxuZXhwb3J0IHtTWVNURU1fU0NSSVBUX0xJU1QsIFdFQk1BU1RFUl9MSVNUfTtcbiIsICJjb25zdCBDTEFTU19OQU1FOiBzdHJpbmcgPSAnZ2FkZ2V0LWdlb19sb2NhdGlvbl9yZWFkZXInO1xuY29uc3QgQ0xBU1NfTkFNRV9JQ09OOiBzdHJpbmcgPSBgJHtDTEFTU19OQU1FfV9faWNvbmA7XG5jb25zdCBDTEFTU19OQU1FX1RFWFQ6IHN0cmluZyA9IGAke0NMQVNTX05BTUV9X190ZXh0YDtcblxuZXhwb3J0IHtTWVNURU1fU0NSSVBUX0xJU1QsIFdFQk1BU1RFUl9MSVNUfSBmcm9tICd+L0dlb0xvY2F0aW9uL21vZHVsZXMvY29uc3RhbnQnO1xuZXhwb3J0IHtDTEFTU19OQU1FLCBDTEFTU19OQU1FX0lDT04sIENMQVNTX05BTUVfVEVYVH07XG4iLCAiaW1wb3J0IHtDTEFTU19OQU1FLCBDTEFTU19OQU1FX0lDT04sIENMQVNTX05BTUVfVEVYVH0gZnJvbSAnLi4vY29uc3RhbnQnO1xuaW1wb3J0IFJlYWN0LCB7UmVhY3RFbGVtZW50fSBmcm9tICdleHQuZ2FkZ2V0LlJlYWN0JztcbmltcG9ydCB7Z2V0TWVzc2FnZX0gZnJvbSAnLi4vaTE4bic7XG5cbmludGVyZmFjZSBGb290ZXJOb3RpY2VQcm9wcyB7XG5cdHNwYW5DbGFzczogc3RyaW5nO1xuXHRjaGlsZHJlbj86IFJlYWN0RWxlbWVudCB8IFJlYWN0RWxlbWVudFtdO1xufVxuXG5jb25zdCBGb290ZXJOb3RpY2UgPSAoe3NwYW5DbGFzcywgY2hpbGRyZW4gPSA8PjwvPn06IEZvb3Rlck5vdGljZVByb3BzKSA9PiB7XG5cdGNvbnN0IHtza2lufSA9IG13LmNvbmZpZy5nZXQoKTtcblx0Y2hpbGRyZW4gPz89IDw+PC8+O1xuXG5cdHJldHVybiAoXG5cdFx0PD5cblx0XHRcdHtza2luID09PSAnY2l0aXplbicgPyAoXG5cdFx0XHRcdDxzZWN0aW9uXG5cdFx0XHRcdFx0aWQ9e0NMQVNTX05BTUV9XG5cdFx0XHRcdFx0Y2xhc3NOYW1lPXtbXG5cdFx0XHRcdFx0XHRDTEFTU19OQU1FLFxuXHRcdFx0XHRcdFx0YCR7Q0xBU1NfTkFNRX0tJHtzcGFuQ2xhc3N9YCxcblx0XHRcdFx0XHRcdCdwYWdlLWluZm9fX2l0ZW0nLFxuXHRcdFx0XHRcdFx0J2NpdGl6ZW4tZm9vdGVyX19wYWdlaW5mby1pdGVtJyxcblx0XHRcdFx0XHRcdCdub3ByaW50Jyxcblx0XHRcdFx0XHRdfVxuXHRcdFx0XHQ+XG5cdFx0XHRcdFx0e2NoaWxkcmVufVxuXHRcdFx0XHQ8L3NlY3Rpb24+XG5cdFx0XHQpIDogWyd2ZWN0b3InLCAndmVjdG9yLTIwMjInLCAnZ29uZ2JpJ10uaW5jbHVkZXMoc2tpbikgfHwgZG9jdW1lbnQucXVlcnlTZWxlY3RvcigndWwjZm9vdGVyLWluZm8nKSA/IChcblx0XHRcdFx0PGxpIGlkPXtDTEFTU19OQU1FfSBjbGFzc05hbWU9e1tDTEFTU19OQU1FLCBgJHtDTEFTU19OQU1FfS0ke3NwYW5DbGFzc31gLCAnbm9wcmludCddfT5cblx0XHRcdFx0XHR7Y2hpbGRyZW59XG5cdFx0XHRcdDwvbGk+XG5cdFx0XHQpIDogKFxuXHRcdFx0XHQ8ZGl2IGlkPXtDTEFTU19OQU1FfSBjbGFzc05hbWU9e1tDTEFTU19OQU1FLCBgJHtDTEFTU19OQU1FfS0ke3NwYW5DbGFzc31gLCAnbm9wcmludCddfT5cblx0XHRcdFx0XHR7Y2hpbGRyZW59XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0KX1cblx0XHQ8Lz5cblx0KTtcbn07XG5cbmludGVyZmFjZSBJbmRpY2F0b3JQcm9wcyB7XG5cdGljb246ICdnbG9iZScgfCAnaGVscE5vdGljZSc7XG5cdGluZGljYXRvclRleHQ6IHN0cmluZztcbn1cblxuY29uc3QgSW5kaWNhdG9yID0gKHtpY29uLCBpbmRpY2F0b3JUZXh0fTogSW5kaWNhdG9yUHJvcHMpID0+IHtcblx0Y29uc3QgdGV4dDogc3RyaW5nID1cblx0XHRpY29uID09PSAnZ2xvYmUnID8gZ2V0TWVzc2FnZSgnTG9jYXRpb24nKSArIGdldE1lc3NhZ2UoJzonKSArIGluZGljYXRvclRleHQgOiAoaW5kaWNhdG9yVGV4dCA/PyAnJyk7XG5cblx0cmV0dXJuIChcblx0XHQ8PlxuXHRcdFx0PHNwYW4gY2xhc3NOYW1lPXtbQ0xBU1NfTkFNRV9JQ09OLCBgJHtDTEFTU19OQU1FX0lDT059LSR7aWNvbn1gXX0gYXJpYS1sYWJlbD17dGV4dH0+PC9zcGFuPlxuXHRcdFx0PHNwYW4gY2xhc3NOYW1lPXtDTEFTU19OQU1FX1RFWFR9Pnt0ZXh0fTwvc3Bhbj5cblx0XHQ8Lz5cblx0KTtcbn07XG5cbmludGVyZmFjZSBGb290ZXJJY29uUHJvcHMge1xuXHRzcGFuQ2xhc3M6IHN0cmluZztcblx0aWNvbjogJ2dsb2JlJyB8ICdoZWxwTm90aWNlJztcblx0aW5kaWNhdG9yVGV4dDogc3RyaW5nO1xufVxuXG5jb25zdCBGb290ZXJJY29uID0gKHtpY29uLCBzcGFuQ2xhc3MsIGluZGljYXRvclRleHR9OiBGb290ZXJJY29uUHJvcHMpID0+IChcblx0PEZvb3Rlck5vdGljZSBzcGFuQ2xhc3M9e3NwYW5DbGFzc30+XG5cdFx0PEluZGljYXRvciBpY29uPXtpY29ufSBpbmRpY2F0b3JUZXh0PXtpbmRpY2F0b3JUZXh0fSAvPlxuXHQ8L0Zvb3Rlck5vdGljZT5cbik7XG5cbmV4cG9ydCB7Rm9vdGVySWNvbiwgdHlwZSBGb290ZXJJY29uUHJvcHN9O1xuIiwgImltcG9ydCB7bG9jYWxpemV9IGZyb20gJ2V4dC5nYWRnZXQuaTE4bic7XG5cbmNvbnN0IGdldEkxOG5NZXNzYWdlcyA9ICgpID0+IHtcblx0cmV0dXJuIHtcblx0XHQnOic6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnOiAnLFxuXHRcdFx0amE6ICfvvJonLFxuXHRcdFx0emg6ICfvvJonLFxuXHRcdH0pLFxuXHRcdFVua25vd246IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnVW5rbm93biBMb2NhdGlvbicsXG5cdFx0XHRqYTogJ+acquefpUlQ5Zyw5Z+fJyxcblx0XHRcdCd6aC1oYW5zJzogJ+acquefpUlQ5bGe5ZywJyxcblx0XHRcdCd6aC1oYW50JzogJ+acquefpUlQ5bGs5ZywJyxcblx0XHR9KSxcblx0XHRMb2NhdGlvbjogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdJUCBMb2NhdGlvbicsXG5cdFx0XHRqYTogJ0lQ5Zyw5Z+fJyxcblx0XHRcdCd6aC1oYW5zJzogJ0lQ5bGe5ZywJyxcblx0XHRcdCd6aC1oYW50JzogJ0lQ5bGs5ZywJyxcblx0XHR9KSxcblx0fTtcbn07XG5cbmNvbnN0IGkxOG5NZXNzYWdlcyA9IGdldEkxOG5NZXNzYWdlcygpO1xuXG5jb25zdCBnZXRNZXNzYWdlOiBHZXRNZXNzYWdlczx0eXBlb2YgaTE4bk1lc3NhZ2VzPiA9IChrZXkpID0+IHtcblx0cmV0dXJuIGkxOG5NZXNzYWdlc1trZXldIHx8IGtleTtcbn07XG5cbmV4cG9ydCB7Z2V0TWVzc2FnZX07XG4iLCAiaW1wb3J0ICogYXMgT1BUSU9OUyBmcm9tICcuLi8uLi9vcHRpb25zLmpzb24nO1xuaW1wb3J0IHtGb290ZXJJY29uLCB0eXBlIEZvb3Rlckljb25Qcm9wc30gZnJvbSAnLi4vY29tcG9uZW50cy9yZWFjdCc7XG5pbXBvcnQgUmVhY3QgZnJvbSAnZXh0LmdhZGdldC5SZWFjdCc7XG5cbmNvbnN0IGFwcGVuZEZvb3Rlck5vdGljZSA9IChlbGVtZW50OiBFbGVtZW50KSA9PiB7XG5cdGNvbnN0IG1vdW50UG9pbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yPEhUTUxFbGVtZW50PihPUFRJT05TLm1vdW50UG9pbnRTZWxlY3Rvcik7XG5cblx0aWYgKG1vdW50UG9pbnQpIHtcblx0XHRtb3VudFBvaW50LnByZXBlbmQoZWxlbWVudCk7XG5cdH1cbn07XG5cbmNvbnN0IGFwcGVuZEljb24gPSAoe2ljb24sIGluZGljYXRvclRleHQsIHNwYW5DbGFzc306IEZvb3Rlckljb25Qcm9wcyk6IHZvaWQgPT4ge1xuXHRpZiAoIXNwYW5DbGFzcyB8fCAhaWNvbiB8fCAhaW5kaWNhdG9yVGV4dCkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGFwcGVuZEZvb3Rlck5vdGljZSg8Rm9vdGVySWNvbiBzcGFuQ2xhc3M9e3NwYW5DbGFzc30gaWNvbj17aWNvbn0gaW5kaWNhdG9yVGV4dD17aW5kaWNhdG9yVGV4dH0gLz4pO1xufTtcblxuZXhwb3J0IHthcHBlbmRJY29ufTtcbiIsICJjb25zdCBnZXRDb3VudHJ5T3JBcmVhTmFtZUxpc3QgPSAoKSA9PiB7XG5cdGNvbnN0IHt3Z1VzZXJMYW5ndWFnZX0gPSBtdy5jb25maWcuZ2V0KCk7XG5cblx0aWYgKFsnemgtaGFudCcsICd6aC1oaycsICd6aC1tbyddLmluY2x1ZGVzKHdnVXNlckxhbmd1YWdlKSkge1xuXHRcdHJldHVybiB7XG5cdFx0XHRBRjogJ+mYv+WvjOaxlycsXG5cdFx0XHRBWDogJ+Wlp+iYrScsXG5cdFx0XHRBTDogJ+mYv+eIvuW3tOWwvOS6nicsXG5cdFx0XHREWjogJ+mYv+eIvuWPiuWIqeS6nicsXG5cdFx0XHRBUzogJ+e+juWxrOiWqeaRqeS6nicsXG5cdFx0XHRBRDogJ+WuiemBk+eIvicsXG5cdFx0XHRBTzogJ+WuieWTpeaLiScsXG5cdFx0XHRBSTogJ+WuieWcreaLiScsXG5cdFx0XHRBUTogJ+WNl+altea0sicsXG5cdFx0XHRBRzogJ+WuieaPkOeTnOWSjOW3tOW4g+mBlCcsXG5cdFx0XHRBUjogJ+mYv+agueW7tycsXG5cdFx0XHRBTTogJ+S6nue+juWwvOS6nicsXG5cdFx0XHRBVzogJ+mYv+mtr+W3tCcsXG5cdFx0XHRBVTogJ+a+s+a0sicsXG5cdFx0XHRBVDogJ+Wlp+WcsOWIqScsXG5cdFx0XHRBWjogJ+mYv+WhnuaLnOeWhicsXG5cdFx0XHRCUzogJ+W3tOWTiOmmrCcsXG5cdFx0XHRCSDogJ+W3tOaelycsXG5cdFx0XHRCRDogJ+Wtn+WKoOaLieWciycsXG5cdFx0XHRCQjogJ+W3tOW3tOWkmuaWrycsXG5cdFx0XHRCWTogJ+eZveS/hOe+heaWrycsXG5cdFx0XHRCRTogJ+avlOWIqeaZgicsXG5cdFx0XHRCWjogJ+S8r+WIqeiMsicsXG5cdFx0XHRCSjogJ+iyneWvpycsXG5cdFx0XHRCTTogJ+eZvuaFlemBlCcsXG5cdFx0XHRCVDogJ+S4jeS4uScsXG5cdFx0XHRCTzogJ+eOu+WIqee2reS6nicsXG5cdFx0XHRCUTogJ+iNt+iYreWKoOWLkuavlOWNgCcsXG5cdFx0XHRCQTogJ+azoum7kScsXG5cdFx0XHRCVzogJ+WNmuiMqOeTpue0jScsXG5cdFx0XHRCVjogJ+W4g+mfi+WzticsXG5cdFx0XHRCUjogJ+W3tOilvycsXG5cdFx0XHRJTzogJ+iLseWxrOWNsOW6pua0i+mgmOWcsCcsXG5cdFx0XHRCTjogJ+axtuiQiicsXG5cdFx0XHRCRzogJ+S/neWKoOWIqeS6nicsXG5cdFx0XHRCRjogJ+W4g+Wfuue0jeazlee0oicsXG5cdFx0XHRCSTogJ+W4g+mahui/qicsXG5cdFx0XHRDVjogJ+S9m+W+l+inkicsXG5cdFx0XHRLSDogJ+afrOWflOWvqCcsXG5cdFx0XHRDTTogJ+WWgOm6pemahicsXG5cdFx0XHRDQTogJ+WKoOaLv+WkpycsXG5cdFx0XHRLWTogJ+mWi+abvOe+pOWzticsXG5cdFx0XHRDRjogJ+S4remdnicsXG5cdFx0XHRURDogJ+S5jeW+lycsXG5cdFx0XHRDTDogJ+aZuuWIqScsXG5cdFx0XHRDTjogJ+S4reWciycsXG5cdFx0XHRDWDogJ+iBluiqleWzticsXG5cdFx0XHRDQzogJ+enkeenkeaWr++8iOWfuuael++8iee+pOWzticsXG5cdFx0XHRDTzogJ+WTpeWAq+avlOS6nicsXG5cdFx0XHRLTTogJ+enkeaRqee+hScsXG5cdFx0XHRDRzogJ+WJm+aenOWFseWSjOWciycsXG5cdFx0XHRDRDogJ+WJm+aenOawkeS4u+WFseWSjOWciycsXG5cdFx0XHRDSzogJ+W6q+WFi+e+pOWzticsXG5cdFx0XHRDUjogJ+WTpeaWr+mBlOm7juWKoCcsXG5cdFx0XHRDSTogJ+enkeeJuei/queTpicsXG5cdFx0XHRIUjogJ+WFi+e+heWcsOS6nicsXG5cdFx0XHRDVTogJ+WPpOW3tCcsXG5cdFx0XHRDVzogJ+W6q+aLiee0oicsXG5cdFx0XHRDWTogJ+Whnua1pui3r+aWrycsXG5cdFx0XHRDWjogJ+aNt+WFiycsXG5cdFx0XHRESzogJ+S4uem6pScsXG5cdFx0XHRESjogJ+WQieW4g+aPkCcsXG5cdFx0XHRETTogJ+Wkmuexs+WwvOWFiycsXG5cdFx0XHRETzogJ+Wkmuexs+WwvOWKoCcsXG5cdFx0XHRFQzogJ+WOhOeTnOWkmueIvicsXG5cdFx0XHRFRzogJ+Wfg+WPiicsXG5cdFx0XHRTVjogJ+iWqeeIvueTpuWkmicsXG5cdFx0XHRHUTogJ+i1pOmBk+eVv+WFp+S6nicsXG5cdFx0XHRFUjogJ+WOhOeri+eJuemHjOS6nicsXG5cdFx0XHRFRTogJ+aEm+aymeWwvOS6nicsXG5cdFx0XHRTWjogJ+aWr+WogeWjq+iYrScsXG5cdFx0XHRFVDogJ+Wfg+WhnuS/hOavlOS6nicsXG5cdFx0XHRGSzogJ+emj+WFi+iYree+pOWzticsXG5cdFx0XHRGTzogJ+azlee+hee+pOWzticsXG5cdFx0XHRGSjogJ+aWkOa/nycsXG5cdFx0XHRGSTogJ+iKrOiYrScsXG5cdFx0XHRGUjogJ+azleWciycsXG5cdFx0XHRHRjogJ+azleWxrOWcreS6numCoycsXG5cdFx0XHRQRjogJ+azleWxrOazouWIqeWwvOilv+S6nicsXG5cdFx0XHRURjogJ+azleWxrOWNl+mDqOWSjOWNl+altemgmOWcsCcsXG5cdFx0XHRHQTogJ+WKoOiTrCcsXG5cdFx0XHRHTTogJ+WyoeavlOS6nicsXG5cdFx0XHRHRTogJ+agvOmtr+WQieS6nicsXG5cdFx0XHRERTogJ+W+t+WciycsXG5cdFx0XHRHSDogJ+WKoOe0jScsXG5cdFx0XHRHSTogJ+ebtOW4g+e+hemZgCcsXG5cdFx0XHRHUjogJ+W4jOiHmCcsXG5cdFx0XHRHTDogJ+agvOmZteiYrScsXG5cdFx0XHRHRDogJ+agvOael+e0jemBlCcsXG5cdFx0XHRHUDogJ+eTnOW+t+e+heaZricsXG5cdFx0XHRHVTogJ+mXnOWzticsXG5cdFx0XHRHVDogJ+WNseWcsOmmrOaLiScsXG5cdFx0XHRHRzogJ+agueilvycsXG5cdFx0XHRHTjogJ+eVv+WFp+S6nicsXG5cdFx0XHRHVzogJ+eVv+WFp+S6nuavlOe0uScsXG5cdFx0XHRHWTogJ+WcreS6numCoycsXG5cdFx0XHRIVDogJ+a1t+WcsCcsXG5cdFx0XHRITTogJ+i1q+W+t+WztuWSjOm6peWFi+WUkOe0jee+pOWzticsXG5cdFx0XHRWQTogJ+aiteiSguWyoScsXG5cdFx0XHRITjogJ+a0qumDveaLieaWrycsXG5cdFx0XHRISzogJ+S4reWci+mmmea4rycsXG5cdFx0XHRIVTogJ+WMiOeJmeWIqScsXG5cdFx0XHRJUzogJ+WGsOWzticsXG5cdFx0XHRJTjogJ+WNsOW6picsXG5cdFx0XHRJRDogJ+WNsOWwvCcsXG5cdFx0XHRJUjogJ+S8iuaclycsXG5cdFx0XHRJUTogJ+S8iuaLieWFiycsXG5cdFx0XHRJRTogJ+aEm+eIvuiYrScsXG5cdFx0XHRJTTogJ+S6uuWzticsXG5cdFx0XHRJTDogJ+S7peiJsuWIlycsXG5cdFx0XHRJVDogJ+aEj+Wkp+WIqScsXG5cdFx0XHRKTTogJ+eJmeiyt+WKoCcsXG5cdFx0XHRKUDogJ+aXpeacrCcsXG5cdFx0XHRKRTogJ+a+pOilvycsXG5cdFx0XHRKTzogJ+e0hOaXpicsXG5cdFx0XHRLWjogJ+WTiOiWqeWFiycsXG5cdFx0XHRLRTogJ+iCr+mbhScsXG5cdFx0XHRLSTogJ+WfuumHjOW3tOaWrycsXG5cdFx0XHRLUDogJ+WMl+mfkycsXG5cdFx0XHRLUjogJ+mfk+WciycsXG5cdFx0XHRLVzogJ+enkeWogeeJuScsXG5cdFx0XHRLRzogJ+WQieeIvuWQieaWrycsXG5cdFx0XHRMQTogJ+iAgeaSvicsXG5cdFx0XHRMVjogJ+aLieiEq+e2reS6nicsXG5cdFx0XHRMQjogJ+m7juW3tOWrqScsXG5cdFx0XHRMUzogJ+iQiue0ouaJmCcsXG5cdFx0XHRMUjogJ+WIqeavlOmHjOS6nicsXG5cdFx0XHRMWTogJ+WIqeavlOS6nicsXG5cdFx0XHRMSTogJ+WIl+aUr+aVpuWjq+eZuycsXG5cdFx0XHRMVDogJ+eri+mZtuWumycsXG5cdFx0XHRMVTogJ+ebp+ajruWgoScsXG5cdFx0XHRNTzogJ+S4reWci+a+s+mWgCcsXG5cdFx0XHRNRzogJ+mmrOmBlOWKoOaWr+WKoCcsXG5cdFx0XHRNVzogJ+mmrOaLiee2rScsXG5cdFx0XHRNWTogJ+mmrOS+huilv+S6nicsXG5cdFx0XHRNVjogJ+mmrOeIvuS7o+WkqycsXG5cdFx0XHRNTDogJ+mmrOmHjCcsXG5cdFx0XHRNVDogJ+mmrOiAs+S7licsXG5cdFx0XHRNSDogJ+mmrOe0ueeIvue+pOWzticsXG5cdFx0XHRNUTogJ+mmrOaPkOWwvOWFiycsXG5cdFx0XHRNUjogJ+avm+mHjOWhlOWwvOS6nicsXG5cdFx0XHRNVTogJ+avm+mHjOijmOaWrycsXG5cdFx0XHRZVDogJ+mmrOe0hOeJuScsXG5cdFx0XHRNWDogJ+WiqOilv+WTpScsXG5cdFx0XHRGTTogJ+WvhuWFi+e+heWwvOilv+S6nuiBr+mCpicsXG5cdFx0XHRNRDogJ+aRqeeIvuWkmueTpicsXG5cdFx0XHRNQzogJ+aRqee0jeWTpScsXG5cdFx0XHRNTjogJ+iSmeWPpCcsXG5cdFx0XHRNRTogJ+m7keWxsScsXG5cdFx0XHRNUzogJ+iSmeeJueWhnuaLieeJuScsXG5cdFx0XHRNQTogJ+aRqea0m+WTpScsXG5cdFx0XHRNWjogJ+iOq+ahkeavlOWFiycsXG5cdFx0XHRNTTogJ+e3rOeUuCcsXG5cdFx0XHROQTogJ+e0jeexs+avlOS6nicsXG5cdFx0XHROUjogJ+eRmemtrycsXG5cdFx0XHROUDogJ+WwvOaziueIvicsXG5cdFx0XHROTDogJ+iNt+iYrScsXG5cdFx0XHROQzogJ+aWsOWWgOmHjOWkmuWwvOS6nicsXG5cdFx0XHROWjogJ+aWsOilv+iYrScsXG5cdFx0XHROSTogJ+WwvOWKoOaLieeTnCcsXG5cdFx0XHRORTogJ+WwvOaXpeeIvicsXG5cdFx0XHRORzogJ+WwvOaXpeWIqeS6nicsXG5cdFx0XHROVTogJ+e0kOWfgycsXG5cdFx0XHRORjogJ+irvuemj+WFi+WzticsXG5cdFx0XHRNSzogJ+WMl+mmrOWFtumgkycsXG5cdFx0XHRNUDogJ+WMl+mmrOWIqeWuiee0jee+pOWzticsXG5cdFx0XHROTzogJ+aMquWogScsXG5cdFx0XHRPTTogJ+mYv+abvCcsXG5cdFx0XHRQSzogJ+W3tOWfuuaWr+WdpicsXG5cdFx0XHRQVzogJ+W4leWLnicsXG5cdFx0XHRQUzogJ+W3tOWLkuaWr+WdpicsXG5cdFx0XHRQQTogJ+W3tOaLv+mmrCcsXG5cdFx0XHRQRzogJ+W3tOW4g+S6nuaWsOeVv+WFp+S6nicsXG5cdFx0XHRQWTogJ+W3tOaLieWcrScsXG5cdFx0XHRQRTogJ+enmOmtrycsXG5cdFx0XHRQSDogJ+iPsuW+i+izkycsXG5cdFx0XHRQTjogJ+earueJueiCr+e+pOWzticsXG5cdFx0XHRQTDogJ+azouiYrScsXG5cdFx0XHRQVDogJ+iRoeiQhOeJmScsXG5cdFx0XHRQUjogJ+azouWkmum7juWQhCcsXG5cdFx0XHRRQTogJ+WNoeWhlOeIvicsXG5cdFx0XHRSRTogJ+eVmeWwvOaxqicsXG5cdFx0XHRSTzogJ+e+hemmrOWwvOS6nicsXG5cdFx0XHRSVTogJ+S/hOe+heaWrycsXG5cdFx0XHRSVzogJ+ebp+aXuumBlCcsXG5cdFx0XHRCTDogJ+iBluW3tOazsOWLkuexsycsXG5cdFx0XHRTSDogJ+iBlua1t+WAq+WonOOAgemYv+ajruadvuWSjOeJuemHjOaWr+Wdpi3pgZTluqvlsLzkup4nLFxuXHRcdFx0S046ICfogZbln7rojKjlkozlsLzntq3mlq8nLFxuXHRcdFx0TEM6ICfogZbnm6fopb/kup4nLFxuXHRcdFx0TUY6ICfms5XlsazogZbppqzkuIEnLFxuXHRcdFx0UE06ICfogZbnmq7ln4PniL7lkozlr4blhYvpmoYnLFxuXHRcdFx0VkM6ICfogZbmlofmo67nibnlkozmoLzmnpfntI3kuIHmlq8nLFxuXHRcdFx0V1M6ICfolqnmkankup4nLFxuXHRcdFx0U006ICfogZbppqzlipvoq74nLFxuXHRcdFx0U1Q6ICfogZblpJrnvo7lkozmma7mnpfopb/mr5QnLFxuXHRcdFx0U0E6ICfmspnlnLDpmL/mi4nkvK8nLFxuXHRcdFx0U046ICfloZ7lhafliqDniL4nLFxuXHRcdFx0UlM6ICfloZ7niL7ntq3kup4nLFxuXHRcdFx0U0M6ICfloZ7oiIzniL4nLFxuXHRcdFx0U0w6ICfloZ7mi4nliKnmmIInLFxuXHRcdFx0U0c6ICfmlrDliqDlnaEnLFxuXHRcdFx0U1g6ICfojbflsazogZbppqzkuIEnLFxuXHRcdFx0U0s6ICfmlq/mtJvkvJDlhYsnLFxuXHRcdFx0U0k6ICfmlq/mtJvmloflsLzkup4nLFxuXHRcdFx0U0I6ICfmiYDnvoXploDnvqTls7YnLFxuXHRcdFx0U086ICfntKLppqzph4wnLFxuXHRcdFx0WkE6ICfljZfpnZ4nLFxuXHRcdFx0R1M6ICfljZfllqzmsrvkup7lkozljZfmoZHlqIHlpYfnvqTls7YnLFxuXHRcdFx0U1M6ICfljZfomIfkuLknLFxuXHRcdFx0RVM6ICfopb/nj63niZknLFxuXHRcdFx0TEs6ICfmlq/ph4zomK3ljaEnLFxuXHRcdFx0U0Q6ICfomIfkuLknLFxuXHRcdFx0U1I6ICfomIfph4zljZcnLFxuXHRcdFx0U0o6ICfmlq/nk6bniL7lt7Tlkozmj5rppqzlu7YnLFxuXHRcdFx0U0U6ICfnkZ7lhbgnLFxuXHRcdFx0Q0g6ICfnkZ7lo6snLFxuXHRcdFx0U1k6ICfmlZjliKnkup4nLFxuXHRcdFx0VFc6ICfkuK3lnIvoh7rngaMnLFxuXHRcdFx0VEo6ICfloZTlkInlhYsnLFxuXHRcdFx0VFo6ICflnabmoZHlsLzkup4nLFxuXHRcdFx0VEg6ICfms7DlnIsnLFxuXHRcdFx0VEw6ICfmnbHluJ3msbYnLFxuXHRcdFx0VEc6ICflpJrlk6UnLFxuXHRcdFx0VEs6ICfmiZjlhYvli54nLFxuXHRcdFx0VE86ICfmua/liqAnLFxuXHRcdFx0VFQ6ICfljYPph4zpgZTlkozlpJrlt7Tlk6UnLFxuXHRcdFx0VE46ICfnqoHlsLzopb/kup4nLFxuXHRcdFx0VFI6ICflnJ/ogLPlhbYnLFxuXHRcdFx0VE06ICflnJ/luqvmm7wnLFxuXHRcdFx0VEM6ICfnibnlhYvmlq/lkozlh7Hnp5Hmlq/nvqTls7YnLFxuXHRcdFx0VFY6ICflnJbnk6bnm6cnLFxuXHRcdFx0VUc6ICfng4/lubLpgZQnLFxuXHRcdFx0VUE6ICfng4/lhYvomK0nLFxuXHRcdFx0QUU6ICfpmL/oga/phYsnLFxuXHRcdFx0R0I6ICfoi7HlnIsnLFxuXHRcdFx0VVM6ICfnvo7lnIsnLFxuXHRcdFx0VU06ICfnvo7lnIvmnKzlnJ/lpJblsI/ls7bltrwnLFxuXHRcdFx0VVk6ICfng4/mi4nlnK0nLFxuXHRcdFx0VVo6ICfng4/ojLLliKXlhYsnLFxuXHRcdFx0VlU6ICfnk6bliqrpmL/lnJYnLFxuXHRcdFx0VkU6ICflp5TlhafnkZ7mi4knLFxuXHRcdFx0Vk46ICfotorljZcnLFxuXHRcdFx0Vkc6ICfoi7HlsazomZXlpbPnvqTls7YnLFxuXHRcdFx0Vkk6ICfnvo7lsazomZXlpbPnvqTls7YnLFxuXHRcdFx0V0Y6ICfnk6bliKnmlq/lkozlr4zlnJbntI0nLFxuXHRcdFx0RUg6ICfopb/mkpLlk4jmi4knLFxuXHRcdFx0WUU6ICfkuZ/ploAnLFxuXHRcdFx0Wk06ICfotIrmr5Tkup4nLFxuXHRcdFx0Wlc6ICfmtKXlt7TluIPpn4snLFxuXHRcdH07XG5cdH0gZWxzZSBpZiAoWyd6aC10dyddLmluY2x1ZGVzKHdnVXNlckxhbmd1YWdlKSkge1xuXHRcdHJldHVybiB7XG5cdFx0XHRBRjogJ+mYv+WvjOaxlycsXG5cdFx0XHRBWDogJ+Wlp+iYrScsXG5cdFx0XHRBTDogJ+mYv+eIvuW3tOWwvOS6nicsXG5cdFx0XHREWjogJ+mYv+eIvuWPiuWIqeS6nicsXG5cdFx0XHRBUzogJ+e+juWxrOiWqeaRqeS6nicsXG5cdFx0XHRBRDogJ+WuiemBk+eIvicsXG5cdFx0XHRBTzogJ+WuieWTpeaLiScsXG5cdFx0XHRBSTogJ+WuieWcreaLiScsXG5cdFx0XHRBUTogJ+WNl+altea0sicsXG5cdFx0XHRBRzogJ+WuieWcsOWNoeWPiuW3tOW4g+mBlCcsXG5cdFx0XHRBUjogJ+mYv+agueW7tycsXG5cdFx0XHRBTTogJ+S6nue+juWwvOS6nicsXG5cdFx0XHRBVzogJ+mYv+mtr+W3tCcsXG5cdFx0XHRBVTogJ+a+s+a0sicsXG5cdFx0XHRBVDogJ+Wlp+WcsOWIqScsXG5cdFx0XHRBWjogJ+S6nuWhnuaLnOeEticsXG5cdFx0XHRCUzogJ+W3tOWTiOmmrCcsXG5cdFx0XHRCSDogJ+W3tOaelycsXG5cdFx0XHRCRDogJ+Wtn+WKoOaLieWciycsXG5cdFx0XHRCQjogJ+W3tOiyneWkmicsXG5cdFx0XHRCWTogJ+eZveS/hOe+heaWrycsXG5cdFx0XHRCRTogJ+avlOWIqeaZgicsXG5cdFx0XHRCWjogJ+iynemHjOaWrycsXG5cdFx0XHRCSjogJ+iyneWNlycsXG5cdFx0XHRCTTogJ+eZvuaFlemBlCcsXG5cdFx0XHRCVDogJ+S4jeS4uScsXG5cdFx0XHRCTzogJ+eOu+WIqee2reS6nicsXG5cdFx0XHRCUTogJ+iNt+iYreWKoOWLkuavlOWNgCcsXG5cdFx0XHRCQTogJ+azoui1qycsXG5cdFx0XHRCVzogJ+azouacremCoycsXG5cdFx0XHRCVjogJ+W4g+mfi+WzticsXG5cdFx0XHRCUjogJ+W3tOilvycsXG5cdFx0XHRJTzogJ+iLseWxrOWNsOW6pua0i+mgmOWcsCcsXG5cdFx0XHRCTjogJ+axtuiQiicsXG5cdFx0XHRCRzogJ+S/neWKoOWIqeS6nicsXG5cdFx0XHRCRjogJ+W4g+WQiee0jeazlee0oicsXG5cdFx0XHRCSTogJ+iSsumahuWcsCcsXG5cdFx0XHRDVjogJ+e2reW+t+inkicsXG5cdFx0XHRLSDogJ+afrOWflOWvqCcsXG5cdFx0XHRDTTogJ+WWgOm6pemahicsXG5cdFx0XHRDQTogJ+WKoOaLv+WkpycsXG5cdFx0XHRLWTogJ+mWi+abvOe+pOWzticsXG5cdFx0XHRDRjogJ+S4remdnicsXG5cdFx0XHRURDogJ+afpeW+tycsXG5cdFx0XHRDTDogJ+aZuuWIqScsXG5cdFx0XHRDTjogJ+S4reWciycsXG5cdFx0XHRDWDogJ+iBluiqleWzticsXG5cdFx0XHRDQzogJ+enkeenkeaWr++8iOWfuuael++8iee+pOWzticsXG5cdFx0XHRDTzogJ+WTpeWAq+avlOS6nicsXG5cdFx0XHRLTTogJ+iRm+aRqScsXG5cdFx0XHRDRzogJ+WJm+aenOWFseWSjOWciycsXG5cdFx0XHRDRDogJ+WJm+aenOawkeS4u+WFseWSjOWciycsXG5cdFx0XHRDSzogJ+W6q+WFi+e+pOWzticsXG5cdFx0XHRDUjogJ+WTpeaWr+Wkp+m7juWKoCcsXG5cdFx0XHRDSTogJ+ixoeeJmea1t+WyuCcsXG5cdFx0XHRIUjogJ+WFi+e+heWfg+ilv+S6nicsXG5cdFx0XHRDVTogJ+WPpOW3tCcsXG5cdFx0XHRDVzogJ+WPpOaLiee0oicsXG5cdFx0XHRDWTogJ+izveaZruWLkuaWrycsXG5cdFx0XHRDWjogJ+aNt+WFiycsXG5cdFx0XHRESzogJ+S4uem6pScsXG5cdFx0XHRESjogJ+WQieW4g+WcsCcsXG5cdFx0XHRETTogJ+Wkmuexs+WwvOWFiycsXG5cdFx0XHRETzogJ+WkmuaYjuWwvOWKoCcsXG5cdFx0XHRFQzogJ+WOhOeTnOWkmicsXG5cdFx0XHRFRzogJ+Wfg+WPiicsXG5cdFx0XHRTVjogJ+iWqeeIvueTpuWkmicsXG5cdFx0XHRHUTogJ+i1pOmBk+W5vuWFp+S6nicsXG5cdFx0XHRFUjogJ+WOhOWIqeWeguS6nicsXG5cdFx0XHRFRTogJ+aEm+aymeWwvOS6nicsXG5cdFx0XHRTWjogJ+WPsueTpuW4neWwvCcsXG5cdFx0XHRFVDogJ+iho+e0ouavlOS6nicsXG5cdFx0XHRGSzogJ+emj+WFi+iYree+pOWzticsXG5cdFx0XHRGTzogJ+azlee+hee+pOWzticsXG5cdFx0XHRGSjogJ+aWkOa/nycsXG5cdFx0XHRGSTogJ+iKrOiYrScsXG5cdFx0XHRGUjogJ+azleWciycsXG5cdFx0XHRHRjogJ+azleWxrOWcreS6numCoycsXG5cdFx0XHRQRjogJ+azleWxrOeOu+mHjOWwvOilv+S6nicsXG5cdFx0XHRURjogJ+azleWxrOWNl+mDqOWSjOWNl+altemgmOWcsCcsXG5cdFx0XHRHQTogJ+WKoOW9rScsXG5cdFx0XHRHTTogJ+eUmOavlOS6nicsXG5cdFx0XHRHRTogJ+WWrOayu+S6nicsXG5cdFx0XHRERTogJ+W+t+WciycsXG5cdFx0XHRHSDogJ+i/pue0jScsXG5cdFx0XHRHSTogJ+ebtOW4g+e+hemZgCcsXG5cdFx0XHRHUjogJ+W4jOiHmCcsXG5cdFx0XHRHTDogJ+agvOmZteiYrScsXG5cdFx0XHRHRDogJ+agvOeRnumCo+mBlCcsXG5cdFx0XHRHUDogJ+eTnOW+t+e+heaZricsXG5cdFx0XHRHVTogJ+mXnOWzticsXG5cdFx0XHRHVDogJ+eTnOWcsOmmrOaLiScsXG5cdFx0XHRHRzogJ+agueilvycsXG5cdFx0XHRHTjogJ+W5vuWFp+S6nicsXG5cdFx0XHRHVzogJ+W5vuWFp+S6nuavlOe0oicsXG5cdFx0XHRHWTogJ+iTi+S6numCoycsXG5cdFx0XHRIVDogJ+a1t+WcsCcsXG5cdFx0XHRITTogJ+i1q+W+t+WztuWSjOm6peWFi+WUkOe0jee+pOWzticsXG5cdFx0XHRWQTogJ+aiteiSguWyoScsXG5cdFx0XHRITjogJ+Wuj+mDveaLieaWrycsXG5cdFx0XHRISzogJ+S4reWci+mmmea4rycsXG5cdFx0XHRIVTogJ+WMiOeJmeWIqScsXG5cdFx0XHRJUzogJ+WGsOWzticsXG5cdFx0XHRJTjogJ+WNsOW6picsXG5cdFx0XHRJRDogJ+WNsOWwvCcsXG5cdFx0XHRJUjogJ+S8iuaclycsXG5cdFx0XHRJUTogJ+S8iuaLieWFiycsXG5cdFx0XHRJRTogJ+aEm+eIvuiYrScsXG5cdFx0XHRJTTogJ+abvOWzticsXG5cdFx0XHRJTDogJ+S7peiJsuWIlycsXG5cdFx0XHRJVDogJ+e+qeWkp+WIqScsXG5cdFx0XHRKTTogJ+eJmeiyt+WKoCcsXG5cdFx0XHRKUDogJ+aXpeacrCcsXG5cdFx0XHRKRTogJ+a+pOilvycsXG5cdFx0XHRKTzogJ+e0hOaXpicsXG5cdFx0XHRLWjogJ+WTiOiWqeWFiycsXG5cdFx0XHRLRTogJ+iCr+S6nicsXG5cdFx0XHRLSTogJ+WQiemHjOW3tOaWrycsXG5cdFx0XHRLUDogJ+WMl+mfkycsXG5cdFx0XHRLUjogJ+mfk+WciycsXG5cdFx0XHRLVzogJ+enkeWogeeJuScsXG5cdFx0XHRLRzogJ+WQieeIvuWQieaWrycsXG5cdFx0XHRMQTogJ+iAgeaSvicsXG5cdFx0XHRMVjogJ+aLieiEq+e2reS6nicsXG5cdFx0XHRMQjogJ+m7juW3tOWrqScsXG5cdFx0XHRMUzogJ+iztOe0ouaJmCcsXG5cdFx0XHRMUjogJ+iztOavlOeRnuS6nicsXG5cdFx0XHRMWTogJ+WIqeavlOS6nicsXG5cdFx0XHRMSTogJ+WIl+aUr+aVpuaWr+eZuycsXG5cdFx0XHRMVDogJ+eri+mZtuWumycsXG5cdFx0XHRMVTogJ+ebp+ajruWgoScsXG5cdFx0XHRNTzogJ+S4reWci+a+s+mWgCcsXG5cdFx0XHRNRzogJ+mmrOmBlOWKoOaWr+WKoCcsXG5cdFx0XHRNVzogJ+mmrOaLieWogScsXG5cdFx0XHRNWTogJ+mmrOS+huilv+S6nicsXG5cdFx0XHRNVjogJ+mmrOeIvuWcsOWkqycsXG5cdFx0XHRNTDogJ+mmrOmHjCcsXG5cdFx0XHRNVDogJ+mmrOeIvuS7licsXG5cdFx0XHRNSDogJ+mmrOe0ueeIvue+pOWzticsXG5cdFx0XHRNUTogJ+mmrOaPkOWwvOWFiycsXG5cdFx0XHRNUjogJ+iMheWIqeWhlOWwvOS6nicsXG5cdFx0XHRNVTogJ+aooemHjOilv+aWrycsXG5cdFx0XHRZVDogJ+mmrOe0hOeJuScsXG5cdFx0XHRNWDogJ+WiqOilv+WTpScsXG5cdFx0XHRGTTogJ+WvhuWFi+e+heWwvOilv+S6nuiBr+mCpicsXG5cdFx0XHRNRDogJ+aRqeeIvuWkmueTpicsXG5cdFx0XHRNQzogJ+aRqee0jeWTpScsXG5cdFx0XHRNTjogJ+iSmeWPpCcsXG5cdFx0XHRNRTogJ+iSmeeJueWFp+WTpee+hScsXG5cdFx0XHRNUzogJ+iSmeWTsuiHmCcsXG5cdFx0XHRNQTogJ+aRqea0m+WTpScsXG5cdFx0XHRNWjogJ+iOq+S4ieavlOWFiycsXG5cdFx0XHRNTTogJ+e3rOeUuCcsXG5cdFx0XHROQTogJ+e0jeexs+avlOS6nicsXG5cdFx0XHROUjogJ+irvumtrycsXG5cdFx0XHROUDogJ+WwvOaziueIvicsXG5cdFx0XHROTDogJ+iNt+iYrScsXG5cdFx0XHROQzogJ+aWsOWWgOmHjOWkmuWwvOS6nicsXG5cdFx0XHROWjogJ+e0kOilv+iYrScsXG5cdFx0XHROSTogJ+WwvOWKoOaLieeTnCcsXG5cdFx0XHRORTogJ+WwvOaXpScsXG5cdFx0XHRORzogJ+WliOWPiuWIqeS6nicsXG5cdFx0XHROVTogJ+e0kOWfgycsXG5cdFx0XHRORjogJ+irvuemj+WFi+WzticsXG5cdFx0XHRNSzogJ+WMl+mmrOWFtumgkycsXG5cdFx0XHRNUDogJ+WMl+mmrOWIqeWuiee0jee+pOWzticsXG5cdFx0XHROTzogJ+aMquWogScsXG5cdFx0XHRPTTogJ+mYv+abvCcsXG5cdFx0XHRQSzogJ+W3tOWfuuaWr+WdpicsXG5cdFx0XHRQVzogJ+W4m+eQiScsXG5cdFx0XHRQUzogJ+W3tOWLkuaWr+WdpicsXG5cdFx0XHRQQTogJ+W3tOaLv+mmrCcsXG5cdFx0XHRQRzogJ+W3tOW4g+S6nue0kOW5vuWFp+S6nicsXG5cdFx0XHRQWTogJ+W3tOaLieWcrScsXG5cdFx0XHRQRTogJ+enmOmtrycsXG5cdFx0XHRQSDogJ+iPsuW+i+izkycsXG5cdFx0XHRQTjogJ+earueJueiCr+e+pOWzticsXG5cdFx0XHRQTDogJ+azouiYrScsXG5cdFx0XHRQVDogJ+iRoeiQhOeJmScsXG5cdFx0XHRQUjogJ+azouWkmum7juWQhCcsXG5cdFx0XHRRQTogJ+WNoemBlCcsXG5cdFx0XHRSRTogJ+eVmeWwvOaXuicsXG5cdFx0XHRSTzogJ+e+hemmrOWwvOS6nicsXG5cdFx0XHRSVTogJ+S/hOe+heaWrycsXG5cdFx0XHRSVzogJ+ebp+WuiemBlCcsXG5cdFx0XHRCTDogJ+iBluW3tOazsOWLkuexsycsXG5cdFx0XHRTSDogJ+iBlua1t+iTruWonOOAgemYv+ajruadvuWSjOeJuemHjOaWr+Wdpi3pgZTluqvlsLzkup4nLFxuXHRcdFx0S046ICfogZblhYvph4zmlq/lpJrnpo/lj4rlsLzntq3mlq8nLFxuXHRcdFx0TEM6ICfogZbpnLLopb/kup4nLFxuXHRcdFx0TUY6ICfms5XlsazogZbppqzkuIEnLFxuXHRcdFx0UE06ICfogZbnmq7ogLboiIflr4blhYvpmoYnLFxuXHRcdFx0VkM6ICfogZbmlofmo67lj4rmoLznkZ7pgqPkuIEnLFxuXHRcdFx0V1M6ICfolqnmkankup4nLFxuXHRcdFx0U006ICfogZbppqzliKnoq74nLFxuXHRcdFx0U1Q6ICfogZblpJrnvo7mma7mnpfopb/mr5QnLFxuXHRcdFx0U0E6ICfmspnng4/lnLDpmL/mi4nkvK8nLFxuXHRcdFx0U046ICfloZ7lhafliqDniL4nLFxuXHRcdFx0UlM6ICfloZ7niL7ntq3kup4nLFxuXHRcdFx0U0M6ICfloZ7luK3niL4nLFxuXHRcdFx0U0w6ICfnjYXlrZDlsbEnLFxuXHRcdFx0U0c6ICfmlrDliqDlnaEnLFxuXHRcdFx0U1g6ICfojbflsazogZbppqzkuIEnLFxuXHRcdFx0U0s6ICfmlq/mtJvkvJDlhYsnLFxuXHRcdFx0U0k6ICfmlq/mtJvntq3lsLzkup4nLFxuXHRcdFx0U0I6ICfntKLnvoXploDnvqTls7YnLFxuXHRcdFx0U086ICfntKLppqzliKnkup4nLFxuXHRcdFx0WkE6ICfljZfpnZ4nLFxuXHRcdFx0R1M6ICfljZfllqzmsrvkup7lkozljZfmoZHlqIHlpYfnvqTls7YnLFxuXHRcdFx0U1M6ICfljZfomIfkuLknLFxuXHRcdFx0RVM6ICfopb/nj63niZknLFxuXHRcdFx0TEs6ICfmlq/ph4zomK3ljaEnLFxuXHRcdFx0U0Q6ICfomIfkuLknLFxuXHRcdFx0U1I6ICfomIfliKnljZcnLFxuXHRcdFx0U0o6ICfmlq/nk6bniL7lt7Tlkozmj5rppqzlu7YnLFxuXHRcdFx0U0U6ICfnkZ7lhbgnLFxuXHRcdFx0Q0g6ICfnkZ7lo6snLFxuXHRcdFx0U1k6ICfmlZjliKnkup4nLFxuXHRcdFx0VFc6ICfkuK3lnIvoh7rngaMnLFxuXHRcdFx0VEo6ICfloZTlkInlhYsnLFxuXHRcdFx0VFo6ICflnablsJrlsLzkup4nLFxuXHRcdFx0VEg6ICfms7DlnIsnLFxuXHRcdFx0VEw6ICfmnbHluJ3msbYnLFxuXHRcdFx0VEc6ICflpJrlk6UnLFxuXHRcdFx0VEs6ICfmiZjlhYvli54nLFxuXHRcdFx0VE86ICfmnbHliqAnLFxuXHRcdFx0VFQ6ICfljYPph4zpgZTlj4rmiZjlt7Tlk6UnLFxuXHRcdFx0VE46ICfnqoHlsLzopb/kup4nLFxuXHRcdFx0VFI6ICflnJ/ogLPlhbYnLFxuXHRcdFx0VE06ICflnJ/luqvmm7wnLFxuXHRcdFx0VEM6ICflnJ/lhYvlh7Hlj6/nvqTls7YnLFxuXHRcdFx0VFY6ICflkJDnk6bpra8nLFxuXHRcdFx0VUc6ICfng4/lubLpgZQnLFxuXHRcdFx0VUE6ICfng4/lhYvomK0nLFxuXHRcdFx0QUU6ICfpmL/oga8nLFxuXHRcdFx0R0I6ICfoi7HlnIsnLFxuXHRcdFx0VVM6ICfnvo7lnIsnLFxuXHRcdFx0VU06ICfnvo7lnIvmnKzlnJ/lpJblsI/ls7bltrwnLFxuXHRcdFx0VVk6ICfng4/mi4nlnK0nLFxuXHRcdFx0VVo6ICfng4/ojLLliKXlhYsnLFxuXHRcdFx0VlU6ICfokKzpgqPmnZwnLFxuXHRcdFx0VkU6ICflp5TlhafnkZ7mi4knLFxuXHRcdFx0Vk46ICfotorljZcnLFxuXHRcdFx0Vkc6ICfoi7Hlsazntq3kuqznvqTls7YnLFxuXHRcdFx0Vkk6ICfnvo7lsazntq3kuqznvqTls7YnLFxuXHRcdFx0V0Y6ICfnk6bliKnmlq/lkozlr4zlnJbntI0nLFxuXHRcdFx0RUg6ICfopb/mkpLlk4jmi4knLFxuXHRcdFx0WUU6ICfokYnploAnLFxuXHRcdFx0Wk06ICflsJrmr5Tkup4nLFxuXHRcdFx0Wlc6ICfovpvlt7TlqIEnLFxuXHRcdH07XG5cdH0gZWxzZSBpZiAoWyd6aC1teScsICd6aC1zZyddLmluY2x1ZGVzKHdnVXNlckxhbmd1YWdlKSkge1xuXHRcdHJldHVybiB7XG5cdFx0XHRBRjogJ+mYv+WvjOaxlycsXG5cdFx0XHRBWDogJ+WlpeWFsCcsXG5cdFx0XHRBTDogJ+mYv+WwlOW3tOWwvOS6micsXG5cdFx0XHREWjogJ+mYv+WwlOWPiuWIqeS6micsXG5cdFx0XHRBUzogJ+e+juWxnuiQqOaRqeS6micsXG5cdFx0XHRBRDogJ+WuiemBk+WwlCcsXG5cdFx0XHRBTzogJ+WuieWTpeaLiScsXG5cdFx0XHRBSTogJ+WuieWcreaLiScsXG5cdFx0XHRBUTogJ+WNl+aegea0sicsXG5cdFx0XHRBRzogJ+WuieaPkOeTnOWSjOW3tOW4g+i+vicsXG5cdFx0XHRBUjogJ+mYv+agueW7tycsXG5cdFx0XHRBTTogJ+S6mue+juWwvOS6micsXG5cdFx0XHRBVzogJ+mYv+mygeW3tCcsXG5cdFx0XHRBVTogJ+a+s+Wkp+WIqeS6micsXG5cdFx0XHRBVDogJ+WlpeWcsOWIqScsXG5cdFx0XHRBWjogJ+mYv+WhnuaLnOeWhicsXG5cdFx0XHRCUzogJ+W3tOWTiOmprCcsXG5cdFx0XHRCSDogJ+W3tOaelycsXG5cdFx0XHRCRDogJ+Wtn+WKoOaLieWbvScsXG5cdFx0XHRCQjogJ+W3tOW3tOWkmuaWrycsXG5cdFx0XHRCWTogJ+eZveS/hOe9l+aWrycsXG5cdFx0XHRCRTogJ+avlOWIqeaXticsXG5cdFx0XHRCWjogJ+S8r+WIqeWFuScsXG5cdFx0XHRCSjogJ+i0neWugScsXG5cdFx0XHRCTTogJ+eZvuaFleWkpycsXG5cdFx0XHRCVDogJ+S4jeS4uScsXG5cdFx0XHRCTzogJ+eOu+WIqee7tOS6micsXG5cdFx0XHRCUTogJ+iNt+WFsOWKoOWLkuavlOWMuicsXG5cdFx0XHRCQTogJ+azoum7kScsXG5cdFx0XHRCVzogJ+WNmuiMqOeTpue6sycsXG5cdFx0XHRCVjogJ+W4g+mfpuWymycsXG5cdFx0XHRCUjogJ+W3tOilvycsXG5cdFx0XHRJTzogJ+iLseWxnuWNsOW6pua0i+mihuWcsCcsXG5cdFx0XHRCTjogJ+axtuiOsScsXG5cdFx0XHRCRzogJ+S/neWKoOWIqeS6micsXG5cdFx0XHRCRjogJ+W4g+Wfuue6s+azlee0oicsXG5cdFx0XHRCSTogJ+W4g+mahui/qicsXG5cdFx0XHRDVjogJ+S9m+W+l+inkicsXG5cdFx0XHRLSDogJ+afrOWflOWvqCcsXG5cdFx0XHRDTTogJ+WWgOm6pumahicsXG5cdFx0XHRDQTogJ+WKoOaLv+WkpycsXG5cdFx0XHRLWTogJ+W8gOabvOe+pOWymycsXG5cdFx0XHRDRjogJ+S4remdnicsXG5cdFx0XHRURDogJ+S5jeW+lycsXG5cdFx0XHRDTDogJ+aZuuWIqScsXG5cdFx0XHRDTjogJ+S4reWbvScsXG5cdFx0XHRDWDogJ+Wco+ivnuWymycsXG5cdFx0XHRDQzogJ+enkeenkeaWr++8iOWfuuael++8iee+pOWymycsXG5cdFx0XHRDTzogJ+WTpeS8puavlOS6micsXG5cdFx0XHRLTTogJ+enkeaRqee9lycsXG5cdFx0XHRDRzogJ+WImuaenOWFseWSjOWbvScsXG5cdFx0XHRDRDogJ+WImuaenOawkeS4u+WFseWSjOWbvScsXG5cdFx0XHRDSzogJ+W6k+WFi+e+pOWymycsXG5cdFx0XHRDUjogJ+WTpeaWr+i+vum7juWKoCcsXG5cdFx0XHRDSTogJ+ixoeeJmea1t+WyuCcsXG5cdFx0XHRIUjogJ+WFi+e9l+WcsOS6micsXG5cdFx0XHRDVTogJ+WPpOW3tCcsXG5cdFx0XHRDVzogJ+W6k+aLiee0oicsXG5cdFx0XHRDWTogJ+Whnua1pui3r+aWrycsXG5cdFx0XHRDWjogJ+aNt+WFiycsXG5cdFx0XHRESzogJ+S4uem6picsXG5cdFx0XHRESjogJ+WQieW4g+aPkCcsXG5cdFx0XHRETTogJ+Wkmuexs+WwvOWFiycsXG5cdFx0XHRETzogJ+Wkmuexs+WwvOWKoCcsXG5cdFx0XHRFQzogJ+WOhOeTnOWkmuWwlCcsXG5cdFx0XHRFRzogJ+Wfg+WPiicsXG5cdFx0XHRTVjogJ+iQqOWwlOeTpuWkmicsXG5cdFx0XHRHUTogJ+i1pOmBk+WHoOWGheS6micsXG5cdFx0XHRFUjogJ+WOhOeri+eJuemHjOS6micsXG5cdFx0XHRFRTogJ+eIseaymeWwvOS6micsXG5cdFx0XHRTWjogJ+aWr+WogeWjq+WFsCcsXG5cdFx0XHRFVDogJ+Wfg+WhnuS/hOavlOS6micsXG5cdFx0XHRGSzogJ+emj+WFi+WFsOe+pOWymycsXG5cdFx0XHRGTzogJ+azlee9l+e+pOWymycsXG5cdFx0XHRGSjogJ+aWkOa1jicsXG5cdFx0XHRGSTogJ+iKrOWFsCcsXG5cdFx0XHRGUjogJ+azleWbvScsXG5cdFx0XHRHRjogJ+azleWxnuWcreS6mumCoycsXG5cdFx0XHRQRjogJ+azleWxnuazouWIqeWwvOilv+S6micsXG5cdFx0XHRURjogJ+azleWxnuWNl+mDqOWSjOWNl+aegemihuWcsCcsXG5cdFx0XHRHQTogJ+WKoOiTrCcsXG5cdFx0XHRHTTogJ+WGiOavlOS6micsXG5cdFx0XHRHRTogJ+agvOmygeWQieS6micsXG5cdFx0XHRERTogJ+W+t+WbvScsXG5cdFx0XHRHSDogJ+WKoOe6sycsXG5cdFx0XHRHSTogJ+ebtOW4g+e9l+mZgCcsXG5cdFx0XHRHUjogJ+W4jOiFiicsXG5cdFx0XHRHTDogJ+agvOmZteWFsCcsXG5cdFx0XHRHRDogJ+agvOael+e6s+i+vicsXG5cdFx0XHRHUDogJ+eTnOW+t+e9l+aZricsXG5cdFx0XHRHVTogJ+WFs+WymycsXG5cdFx0XHRHVDogJ+WNseWcsOmprOaLiScsXG5cdFx0XHRHRzogJ+agueilvycsXG5cdFx0XHRHTjogJ+WHoOWGheS6micsXG5cdFx0XHRHVzogJ+WHoOWGheS6muavlOe7jScsXG5cdFx0XHRHWTogJ+WcreS6mumCoycsXG5cdFx0XHRIVDogJ+a1t+WcsCcsXG5cdFx0XHRITTogJ+i1q+W+t+Wym+WSjOm6puWFi+WUkOe6s+e+pOWymycsXG5cdFx0XHRWQTogJ+aiteiSguWGiCcsXG5cdFx0XHRITjogJ+a0qumDveaLieaWrycsXG5cdFx0XHRISzogJ+S4reWbvemmmea4rycsXG5cdFx0XHRIVTogJ+WMiOeJmeWIqScsXG5cdFx0XHRJUzogJ+WGsOWymycsXG5cdFx0XHRJTjogJ+WNsOW6picsXG5cdFx0XHRJRDogJ+WNsOWwvCcsXG5cdFx0XHRJUjogJ+S8iuaclycsXG5cdFx0XHRJUTogJ+S8iuaLieWFiycsXG5cdFx0XHRJRTogJ+eIseWwlOWFsCcsXG5cdFx0XHRJTTogJ+mprOaBqeWymycsXG5cdFx0XHRJTDogJ+S7peiJsuWIlycsXG5cdFx0XHRJVDogJ+aEj+Wkp+WIqScsXG5cdFx0XHRKTTogJ+eJmeS5sOWKoCcsXG5cdFx0XHRKUDogJ+aXpeacrCcsXG5cdFx0XHRKRTogJ+azveilvycsXG5cdFx0XHRKTzogJ+e6puaXpicsXG5cdFx0XHRLWjogJ+WTiOiQqOWFi+aWr+WdpicsXG5cdFx0XHRLRTogJ+iCr+WwvOS6micsXG5cdFx0XHRLSTogJ+WfuumHjOW3tOaWrycsXG5cdFx0XHRLUDogJ+WMl+mfqScsXG5cdFx0XHRLUjogJ+mfqeWbvScsXG5cdFx0XHRLVzogJ+enkeWogeeJuScsXG5cdFx0XHRLRzogJ+WQieWwlOWQieaWr+aWr+WdpicsXG5cdFx0XHRMQTogJ+iAgeaMnScsXG5cdFx0XHRMVjogJ+aLieiEsee7tOS6micsXG5cdFx0XHRMQjogJ+m7juW3tOWrqScsXG5cdFx0XHRMUzogJ+iOsee0ouaJmCcsXG5cdFx0XHRMUjogJ+WIqeavlOmHjOS6micsXG5cdFx0XHRMWTogJ+WIqeavlOS6micsXG5cdFx0XHRMSTogJ+WIl+aUr+aVpuWjq+eZuycsXG5cdFx0XHRMVDogJ+eri+mZtuWumycsXG5cdFx0XHRMVTogJ+WNouajruWgoScsXG5cdFx0XHRNTzogJ+S4reWbvea+s+mXqCcsXG5cdFx0XHRNRzogJ+mprOi+vuWKoOaWr+WKoCcsXG5cdFx0XHRNVzogJ+mprOaLiee7tCcsXG5cdFx0XHRNWTogJ+mprOadpeilv+S6micsXG5cdFx0XHRNVjogJ+mprOWwlOS7o+WkqycsXG5cdFx0XHRNTDogJ+mprOmHjCcsXG5cdFx0XHRNVDogJ+mprOiAs+S7licsXG5cdFx0XHRNSDogJ+mprOe7jeWwlOe+pOWymycsXG5cdFx0XHRNUTogJ+mprOaPkOWwvOWFiycsXG5cdFx0XHRNUjogJ+avm+mHjOWhlOWwvOS6micsXG5cdFx0XHRNVTogJ+avm+mHjOaxguaWrycsXG5cdFx0XHRZVDogJ+mprOe6pueJuScsXG5cdFx0XHRNWDogJ+WiqOilv+WTpScsXG5cdFx0XHRGTTogJ+WvhuWFi+e9l+WwvOilv+S6muiBlOmCpicsXG5cdFx0XHRNRDogJ+aRqeWwlOWkmueTpicsXG5cdFx0XHRNQzogJ+aRqee6s+WTpScsXG5cdFx0XHRNTjogJ+iSmeWPpCcsXG5cdFx0XHRNRTogJ+m7keWxsScsXG5cdFx0XHRNUzogJ+iSmeeJueWhnuaLieeJuScsXG5cdFx0XHRNQTogJ+aRqea0m+WTpScsXG5cdFx0XHRNWjogJ+iOq+ahkeavlOWFiycsXG5cdFx0XHRNTTogJ+e8heeUuCcsXG5cdFx0XHROQTogJ+mCo+exs+avlOS6micsXG5cdFx0XHROUjogJ+eRmemygScsXG5cdFx0XHROUDogJ+WwvOaziuWwlCcsXG5cdFx0XHROTDogJ+iNt+WFsCcsXG5cdFx0XHROQzogJ+aWsOWWgOmHjOWkmuWwvOS6micsXG5cdFx0XHROWjogJ+aWsOilv+WFsCcsXG5cdFx0XHROSTogJ+WwvOWKoOaLieeTnCcsXG5cdFx0XHRORTogJ+WwvOaXpeWwlCcsXG5cdFx0XHRORzogJ+WwvOaXpeWIqeS6micsXG5cdFx0XHROVTogJ+e6veWfgycsXG5cdFx0XHRORjogJ+ivuuemj+WFi+WymycsXG5cdFx0XHRNSzogJ+WMl+mprOWFtumhvycsXG5cdFx0XHRNUDogJ+WMl+mprOmHjOS6mue6s+e+pOWymycsXG5cdFx0XHROTzogJ+aMquWogScsXG5cdFx0XHRPTTogJ+mYv+abvCcsXG5cdFx0XHRQSzogJ+W3tOWfuuaWr+WdpicsXG5cdFx0XHRQVzogJ+W4leWKsycsXG5cdFx0XHRQUzogJ+W3tOWLkuaWr+WdpicsXG5cdFx0XHRQQTogJ+W3tOaLv+mprCcsXG5cdFx0XHRQRzogJ+W3tOW4g+S6muaWsOWHoOWGheS6micsXG5cdFx0XHRQWTogJ+W3tOaLieWcrScsXG5cdFx0XHRQRTogJ+enmOmygScsXG5cdFx0XHRQSDogJ+iPsuW+i+WuvicsXG5cdFx0XHRQTjogJ+earueJueWHr+aBqee+pOWymycsXG5cdFx0XHRQTDogJ+azouWFsCcsXG5cdFx0XHRQVDogJ+iRoeiQhOeJmScsXG5cdFx0XHRQUjogJ+azouWkmum7juWQhCcsXG5cdFx0XHRRQTogJ+WNoeWhlOWwlCcsXG5cdFx0XHRSRTogJ+eVmeWwvOaxqicsXG5cdFx0XHRSTzogJ+e9l+mprOWwvOS6micsXG5cdFx0XHRSVTogJ+S/hOe9l+aWrycsXG5cdFx0XHRSVzogJ+WNouaXuui+vicsXG5cdFx0XHRCTDogJ+Wco+W3tOazsOWLkuexsycsXG5cdFx0XHRTSDogJ+Wco+i1q+WLkuaLv+OAgemYv+ajruadvuWSjOeJuemHjOaWr+Wdpi3ovr7lupPlsLzkuponLFxuXHRcdFx0S046ICflnKPln7rojKjlkozlsLznu7Tmlq8nLFxuXHRcdFx0TEM6ICflnKPljaLopb/kuponLFxuXHRcdFx0TUY6ICfms5XlsZ7lnKPpqazkuIEnLFxuXHRcdFx0UE06ICflnKPnmq7ln4PlsJTlkozlr4blhYvpmoYnLFxuXHRcdFx0VkM6ICflnKPmlofmo67nibnlkozmoLzmnpfnurPkuIHmlq8nLFxuXHRcdFx0V1M6ICfokKjmkankuponLFxuXHRcdFx0U006ICflnKPpqazlipvor7onLFxuXHRcdFx0U1Q6ICflnKPlpJrnvo7lkozmma7mnpfopb/mr5QnLFxuXHRcdFx0U0E6ICfmspnnibnpmL/mi4nkvK8nLFxuXHRcdFx0U046ICfloZ7lhoXliqDlsJQnLFxuXHRcdFx0UlM6ICfloZ7lsJTnu7TkuponLFxuXHRcdFx0U0M6ICfloZ7oiIzlsJQnLFxuXHRcdFx0U0w6ICfloZ7mi4nliKnmmIInLFxuXHRcdFx0U0c6ICfmlrDliqDlnaEnLFxuXHRcdFx0U1g6ICfojbflsZ7lnKPpqazkuIEnLFxuXHRcdFx0U0s6ICfmlq/mtJvkvJDlhYsnLFxuXHRcdFx0U0k6ICfmlq/mtJvmloflsLzkuponLFxuXHRcdFx0U0I6ICfmiYDnvZfpl6jnvqTlspsnLFxuXHRcdFx0U086ICfntKLpqazph4wnLFxuXHRcdFx0WkE6ICfljZfpnZ4nLFxuXHRcdFx0R1M6ICfljZfkuZTmsrvkuprlkozljZfmoZHlqIHlpYfnvqTlspsnLFxuXHRcdFx0U1M6ICfljZfoi4/kuLknLFxuXHRcdFx0RVM6ICfopb/nj63niZknLFxuXHRcdFx0TEs6ICfmlq/ph4zlhbDljaEnLFxuXHRcdFx0U0Q6ICfoi4/kuLknLFxuXHRcdFx0U1I6ICfoi4/ph4zljZcnLFxuXHRcdFx0U0o6ICfmlq/nk6blsJTlt7Tlkozmiazpqazlu7YnLFxuXHRcdFx0U0U6ICfnkZ7lhbgnLFxuXHRcdFx0Q0g6ICfnkZ7lo6snLFxuXHRcdFx0U1k6ICflj5nliKnkuponLFxuXHRcdFx0VFc6ICfkuK3lm73lj7Dmub4nLFxuXHRcdFx0VEo6ICfloZTlkInlhYvmlq/lnaYnLFxuXHRcdFx0VFo6ICflnabmoZHlsLzkuponLFxuXHRcdFx0VEg6ICfms7Dlm70nLFxuXHRcdFx0VEw6ICfkuJzluJ3msbYnLFxuXHRcdFx0VEc6ICflpJrlk6UnLFxuXHRcdFx0VEs6ICfmiZjlhYvlirMnLFxuXHRcdFx0VE86ICfmsaTliqAnLFxuXHRcdFx0VFQ6ICfnibnnq4vlsLzovr7lkozlpJrlt7Tlk6UnLFxuXHRcdFx0VE46ICfnqoHlsLzmlq8nLFxuXHRcdFx0VFI6ICflnJ/ogLPlhbYnLFxuXHRcdFx0VE06ICflnJ/lupPmm7zmlq/lnaYnLFxuXHRcdFx0VEM6ICfnibnlhYvmlq/lkozlh6/np5Hmlq/nvqTlspsnLFxuXHRcdFx0VFY6ICflm77nk6bljaInLFxuXHRcdFx0VUc6ICfkuYzlubLovr4nLFxuXHRcdFx0VUE6ICfkuYzlhYvlhbAnLFxuXHRcdFx0QUU6ICfpmL/ogZTphYsnLFxuXHRcdFx0R0I6ICfoi7Hlm70nLFxuXHRcdFx0VVM6ICfnvo7lm70nLFxuXHRcdFx0VU06ICfnvo7lm73mnKzlnJ/lpJblsI/lspvlsb8nLFxuXHRcdFx0VVk6ICfkuYzmi4nlnK0nLFxuXHRcdFx0VVo6ICfkuYzlhbnliKvlhYvmlq/lnaYnLFxuXHRcdFx0VlU6ICfnk6bliqrpmL/lm74nLFxuXHRcdFx0VkU6ICflp5TlhoXnkZ7mi4knLFxuXHRcdFx0Vk46ICfotorljZcnLFxuXHRcdFx0Vkc6ICfoi7HlsZ7nu7TlsJTkuqznvqTlspsnLFxuXHRcdFx0Vkk6ICfnvo7lsZ7nu7TlsJTkuqznvqTlspsnLFxuXHRcdFx0V0Y6ICfnk6bliKnmlq/lkozlr4zlm77nurMnLFxuXHRcdFx0RUg6ICfopb/mkpLlk4jmi4knLFxuXHRcdFx0WUU6ICfkuZ/pl6gnLFxuXHRcdFx0Wk06ICfotZ7mr5TkuponLFxuXHRcdFx0Wlc6ICfmtKXlt7TluIPpn6YnLFxuXHRcdH07XG5cdH1cblxuXHRyZXR1cm4ge1xuXHRcdEFGOiAn6Zi/5a+M5rGXJyxcblx0XHRBWDogJ+WlpeWFsCcsXG5cdFx0QUw6ICfpmL/lsJTlt7TlsLzkuponLFxuXHRcdERaOiAn6Zi/5bCU5Y+K5Yip5LqaJyxcblx0XHRBUzogJ+e+juWxnuiQqOaRqeS6micsXG5cdFx0QUQ6ICflronpgZPlsJQnLFxuXHRcdEFPOiAn5a6J5ZOl5ouJJyxcblx0XHRBSTogJ+WuieWcreaLiScsXG5cdFx0QVE6ICfljZfmnoHmtLInLFxuXHRcdEFHOiAn5a6J5o+Q55Oc5ZKM5be05biD6L6+Jyxcblx0XHRBUjogJ+mYv+agueW7tycsXG5cdFx0QU06ICfkuprnvo7lsLzkuponLFxuXHRcdEFXOiAn6Zi/6bKB5be0Jyxcblx0XHRBVTogJ+a+s+Wkp+WIqeS6micsXG5cdFx0QVQ6ICflpaXlnLDliKknLFxuXHRcdEFaOiAn6Zi/5aGe5ouc55aGJyxcblx0XHRCUzogJ+W3tOWTiOmprCcsXG5cdFx0Qkg6ICflt7TmnpcnLFxuXHRcdEJEOiAn5a2f5Yqg5ouJ5Zu9Jyxcblx0XHRCQjogJ+W3tOW3tOWkmuaWrycsXG5cdFx0Qlk6ICfnmb3kv4TnvZfmlq8nLFxuXHRcdEJFOiAn5q+U5Yip5pe2Jyxcblx0XHRCWjogJ+S8r+WIqeWFuScsXG5cdFx0Qko6ICfotJ3lroEnLFxuXHRcdEJNOiAn55m+5oWV5aSnJyxcblx0XHRCVDogJ+S4jeS4uScsXG5cdFx0Qk86ICfnjrvliKnnu7TkuponLFxuXHRcdEJROiAn6I235YWw5Yqg5YuS5q+U5Yy6Jyxcblx0XHRCQTogJ+azoum7kScsXG5cdFx0Qlc6ICfljZrojKjnk6bnurMnLFxuXHRcdEJWOiAn5biD6Z+m5bKbJyxcblx0XHRCUjogJ+W3tOilvycsXG5cdFx0SU86ICfoi7HlsZ7ljbDluqbmtIvpooblnLAnLFxuXHRcdEJOOiAn5paH6I6xJyxcblx0XHRCRzogJ+S/neWKoOWIqeS6micsXG5cdFx0QkY6ICfluIPln7rnurPms5XntKInLFxuXHRcdEJJOiAn5biD6ZqG6L+qJyxcblx0XHRDVjogJ+S9m+W+l+inkicsXG5cdFx0S0g6ICfmn6zln5Tlr6gnLFxuXHRcdENNOiAn5ZaA6bqm6ZqGJyxcblx0XHRDQTogJ+WKoOaLv+WkpycsXG5cdFx0S1k6ICflvIDmm7znvqTlspsnLFxuXHRcdENGOiAn5Lit6Z2eJyxcblx0XHRURDogJ+S5jeW+lycsXG5cdFx0Q0w6ICfmmbrliKknLFxuXHRcdENOOiAn5Lit5Zu9Jyxcblx0XHRDWDogJ+Wco+ivnuWymycsXG5cdFx0Q0M6ICfnp5Hnp5Hmlq/vvIjln7rmnpfvvInnvqTlspsnLFxuXHRcdENPOiAn5ZOl5Lym5q+U5LqaJyxcblx0XHRLTTogJ+enkeaRqee9lycsXG5cdFx0Q0c6ICfliJrmnpzlhbHlkozlm70nLFxuXHRcdENEOiAn5Yia5p6c5rCR5Li75YWx5ZKM5Zu9Jyxcblx0XHRDSzogJ+W6k+WFi+e+pOWymycsXG5cdFx0Q1I6ICflk6Xmlq/ovr7pu47liqAnLFxuXHRcdENJOiAn56eR54m56L+q55OmJyxcblx0XHRIUjogJ+WFi+e9l+WcsOS6micsXG5cdFx0Q1U6ICflj6Tlt7QnLFxuXHRcdENXOiAn5bqT5ouJ57SiJyxcblx0XHRDWTogJ+Whnua1pui3r+aWrycsXG5cdFx0Q1o6ICfmjbflhYsnLFxuXHRcdERLOiAn5Li56bqmJyxcblx0XHRESjogJ+WQieW4g+aPkCcsXG5cdFx0RE06ICflpJrnsbPlsLzlhYsnLFxuXHRcdERPOiAn5aSa57Gz5bC85YqgJyxcblx0XHRFQzogJ+WOhOeTnOWkmuWwlCcsXG5cdFx0RUc6ICfln4Plj4onLFxuXHRcdFNWOiAn6JCo5bCU55Om5aSaJyxcblx0XHRHUTogJ+i1pOmBk+WHoOWGheS6micsXG5cdFx0RVI6ICfljoTnq4vnibnph4zkuponLFxuXHRcdEVFOiAn54ix5rKZ5bC85LqaJyxcblx0XHRTWjogJ+aWr+WogeWjq+WFsCcsXG5cdFx0RVQ6ICfln4PloZ7kv4Tmr5TkuponLFxuXHRcdEZLOiAn56aP5YWL5YWw576k5bKbJyxcblx0XHRGTzogJ+azlee9l+e+pOWymycsXG5cdFx0Rko6ICfmlpDmtY4nLFxuXHRcdEZJOiAn6Iqs5YWwJyxcblx0XHRGUjogJ+azleWbvScsXG5cdFx0R0Y6ICfms5XlsZ7lnK3kuprpgqMnLFxuXHRcdFBGOiAn5rOV5bGe5rOi5Yip5bC86KW/5LqaJyxcblx0XHRURjogJ+azleWxnuWNl+mDqOWSjOWNl+aegemihuWcsCcsXG5cdFx0R0E6ICfliqDok6wnLFxuXHRcdEdNOiAn5YaI5q+U5LqaJyxcblx0XHRHRTogJ+agvOmygeWQieS6micsXG5cdFx0REU6ICflvrflm70nLFxuXHRcdEdIOiAn5Yqg57qzJyxcblx0XHRHSTogJ+ebtOW4g+e9l+mZgCcsXG5cdFx0R1I6ICfluIzohYonLFxuXHRcdEdMOiAn5qC86Zm15YWwJyxcblx0XHRHRDogJ+agvOael+e6s+i+vicsXG5cdFx0R1A6ICfnk5zlvrfnvZfmma4nLFxuXHRcdEdVOiAn5YWz5bKbJyxcblx0XHRHVDogJ+WNseWcsOmprOaLiScsXG5cdFx0R0c6ICfmoLnopb8nLFxuXHRcdEdOOiAn5Yeg5YaF5LqaJyxcblx0XHRHVzogJ+WHoOWGheS6muavlOe7jScsXG5cdFx0R1k6ICflnK3kuprpgqMnLFxuXHRcdEhUOiAn5rW35ZywJyxcblx0XHRITTogJ+i1q+W+t+Wym+WSjOm6puWFi+WUkOe6s+e+pOWymycsXG5cdFx0VkE6ICfmorXokoLlhognLFxuXHRcdEhOOiAn5rSq6YO95ouJ5pavJyxcblx0XHRISzogJ+S4reWbvemmmea4rycsXG5cdFx0SFU6ICfljIjniZnliKknLFxuXHRcdElTOiAn5Yaw5bKbJyxcblx0XHRJTjogJ+WNsOW6picsXG5cdFx0SUQ6ICfljbDlsLwnLFxuXHRcdElSOiAn5LyK5pyXJyxcblx0XHRJUTogJ+S8iuaLieWFiycsXG5cdFx0SUU6ICfniLHlsJTlhbAnLFxuXHRcdElNOiAn6ams5oGp5bKbJyxcblx0XHRJTDogJ+S7peiJsuWIlycsXG5cdFx0SVQ6ICfmhI/lpKfliKknLFxuXHRcdEpNOiAn54mZ5Lmw5YqgJyxcblx0XHRKUDogJ+aXpeacrCcsXG5cdFx0SkU6ICfms73opb8nLFxuXHRcdEpPOiAn57qm5pemJyxcblx0XHRLWjogJ+WTiOiQqOWFi+aWr+WdpicsXG5cdFx0S0U6ICfogq/lsLzkuponLFxuXHRcdEtJOiAn5Z+66YeM5be05pavJyxcblx0XHRLUDogJ+acnemynCcsXG5cdFx0S1I6ICfpn6nlm70nLFxuXHRcdEtXOiAn56eR5aiB54m5Jyxcblx0XHRLRzogJ+WQieWwlOWQieaWr+aWr+WdpicsXG5cdFx0TEE6ICfogIHmjJ0nLFxuXHRcdExWOiAn5ouJ6ISx57u05LqaJyxcblx0XHRMQjogJ+m7juW3tOWrqScsXG5cdFx0TFM6ICfojrHntKLmiZgnLFxuXHRcdExSOiAn5Yip5q+U6YeM5LqaJyxcblx0XHRMWTogJ+WIqeavlOS6micsXG5cdFx0TEk6ICfliJfmlK/mlablo6vnmbsnLFxuXHRcdExUOiAn56uL6Zm25a6bJyxcblx0XHRMVTogJ+WNouajruWgoScsXG5cdFx0TU86ICfkuK3lm73mvrPpl6gnLFxuXHRcdE1HOiAn6ams6L6+5Yqg5pav5YqgJyxcblx0XHRNVzogJ+mprOaLiee7tCcsXG5cdFx0TVk6ICfpqazmnaXopb/kuponLFxuXHRcdE1WOiAn6ams5bCU5Luj5aSrJyxcblx0XHRNTDogJ+mprOmHjCcsXG5cdFx0TVQ6ICfpqazogLPku5YnLFxuXHRcdE1IOiAn6ams57uN5bCU576k5bKbJyxcblx0XHRNUTogJ+mprOaPkOWwvOWFiycsXG5cdFx0TVI6ICfmr5vph4zloZTlsLzkuponLFxuXHRcdE1VOiAn5q+b6YeM5rGC5pavJyxcblx0XHRZVDogJ+mprOe6pueJuScsXG5cdFx0TVg6ICfloqjopb/lk6UnLFxuXHRcdEZNOiAn5a+G5YWL572X5bC86KW/5Lqa6IGU6YKmJyxcblx0XHRNRDogJ+aRqeWwlOWkmueTpicsXG5cdFx0TUM6ICfmkannurPlk6UnLFxuXHRcdE1OOiAn6JKZ5Y+kJyxcblx0XHRNRTogJ+m7keWxsScsXG5cdFx0TVM6ICfokpnnibnloZ7mi4nnibknLFxuXHRcdE1BOiAn5pGp5rSb5ZOlJyxcblx0XHRNWjogJ+iOq+ahkeavlOWFiycsXG5cdFx0TU06ICfnvIXnlLgnLFxuXHRcdE5BOiAn57qz57Gz5q+U5LqaJyxcblx0XHROUjogJ+eRmemygScsXG5cdFx0TlA6ICflsLzms4rlsJQnLFxuXHRcdE5MOiAn6I235YWwJyxcblx0XHROQzogJ+aWsOWWgOmHjOWkmuWwvOS6micsXG5cdFx0Tlo6ICfmlrDopb/lhbAnLFxuXHRcdE5JOiAn5bC85Yqg5ouJ55OcJyxcblx0XHRORTogJ+WwvOaXpeWwlCcsXG5cdFx0Tkc6ICflsLzml6XliKnkuponLFxuXHRcdE5VOiAn57q95Z+DJyxcblx0XHRORjogJ+ivuuemj+WFi+WymycsXG5cdFx0TUs6ICfljJfpqazlhbbpob8nLFxuXHRcdE1QOiAn5YyX6ams6YeM5Lqa57qz576k5bKbJyxcblx0XHROTzogJ+aMquWogScsXG5cdFx0T006ICfpmL/mm7wnLFxuXHRcdFBLOiAn5be05Z+65pav5Z2mJyxcblx0XHRQVzogJ+W4leWKsycsXG5cdFx0UFM6ICflt7Tli5Lmlq/lnaYnLFxuXHRcdFBBOiAn5be05ou/6amsJyxcblx0XHRQRzogJ+W3tOW4g+S6muaWsOWHoOWGheS6micsXG5cdFx0UFk6ICflt7Tmi4nlnK0nLFxuXHRcdFBFOiAn56eY6bKBJyxcblx0XHRQSDogJ+iPsuW+i+WuvicsXG5cdFx0UE46ICfnmq7nibnlh6/mgannvqTlspsnLFxuXHRcdFBMOiAn5rOi5YWwJyxcblx0XHRQVDogJ+iRoeiQhOeJmScsXG5cdFx0UFI6ICfms6LlpJrpu47lkIQnLFxuXHRcdFFBOiAn5Y2h5aGU5bCUJyxcblx0XHRSRTogJ+eVmeWwvOaxqicsXG5cdFx0Uk86ICfnvZfpqazlsLzkuponLFxuXHRcdFJVOiAn5L+E572X5pavJyxcblx0XHRSVzogJ+WNouaXuui+vicsXG5cdFx0Qkw6ICflnKPlt7Tms7Dli5LnsbMnLFxuXHRcdFNIOiAn5Zyj6LWr5YuS5ou/44CB6Zi/5qOu5p2+5ZKM54m56YeM5pav5Z2mLei+vuW6k+WwvOS6micsXG5cdFx0S046ICflnKPln7rojKjlkozlsLznu7Tmlq8nLFxuXHRcdExDOiAn5Zyj5Y2i6KW/5LqaJyxcblx0XHRNRjogJ+azleWxnuWco+mprOS4gScsXG5cdFx0UE06ICflnKPnmq7ln4PlsJTlkozlr4blhYvpmoYnLFxuXHRcdFZDOiAn5Zyj5paH5qOu54m55ZKM5qC85p6X57qz5LiB5pavJyxcblx0XHRXUzogJ+iQqOaRqeS6micsXG5cdFx0U006ICflnKPpqazlipvor7onLFxuXHRcdFNUOiAn5Zyj5aSa576O5ZKM5pmu5p6X6KW/5q+UJyxcblx0XHRTQTogJ+aymeeJuemYv+aLieS8rycsXG5cdFx0U046ICfloZ7lhoXliqDlsJQnLFxuXHRcdFJTOiAn5aGe5bCU57u05LqaJyxcblx0XHRTQzogJ+WhnuiIjOWwlCcsXG5cdFx0U0w6ICfloZ7mi4nliKnmmIInLFxuXHRcdFNHOiAn5paw5Yqg5Z2hJyxcblx0XHRTWDogJ+iNt+WxnuWco+mprOS4gScsXG5cdFx0U0s6ICfmlq/mtJvkvJDlhYsnLFxuXHRcdFNJOiAn5pav5rSb5paH5bC85LqaJyxcblx0XHRTQjogJ+aJgOe9l+mXqOe+pOWymycsXG5cdFx0U086ICfntKLpqazph4wnLFxuXHRcdFpBOiAn5Y2X6Z2eJyxcblx0XHRHUzogJ+WNl+S5lOayu+S6muWSjOWNl+ahkeWogeWlh+e+pOWymycsXG5cdFx0U1M6ICfljZfoi4/kuLknLFxuXHRcdEVTOiAn6KW/54+t54mZJyxcblx0XHRMSzogJ+aWr+mHjOWFsOWNoScsXG5cdFx0U0Q6ICfoi4/kuLknLFxuXHRcdFNSOiAn6IuP6YeM5Y2XJyxcblx0XHRTSjogJ+aWr+eTpuWwlOW3tOWSjOaJrOmprOW7ticsXG5cdFx0U0U6ICfnkZ7lhbgnLFxuXHRcdENIOiAn55Ge5aOrJyxcblx0XHRTWTogJ+WPmeWIqeS6micsXG5cdFx0VFc6ICfkuK3lm73oh7rmub4nLFxuXHRcdFRKOiAn5aGU5ZCJ5YWL5pav5Z2mJyxcblx0XHRUWjogJ+WdpuahkeWwvOS6micsXG5cdFx0VEg6ICfms7Dlm70nLFxuXHRcdFRMOiAn5Lic5bid5rG2Jyxcblx0XHRURzogJ+WkmuWTpScsXG5cdFx0VEs6ICfmiZjlhYvlirMnLFxuXHRcdFRPOiAn5rGk5YqgJyxcblx0XHRUVDogJ+eJueeri+WwvOi+vuWSjOWkmuW3tOWTpScsXG5cdFx0VE46ICfnqoHlsLzmlq8nLFxuXHRcdFRSOiAn5Zyf6ICz5YW2Jyxcblx0XHRUTTogJ+Wcn+W6k+abvOaWr+WdpicsXG5cdFx0VEM6ICfnibnlhYvmlq/lkozlh6/np5Hmlq/nvqTlspsnLFxuXHRcdFRWOiAn5Zu+55Om5Y2iJyxcblx0XHRVRzogJ+S5jOW5sui+vicsXG5cdFx0VUE6ICfkuYzlhYvlhbAnLFxuXHRcdEFFOiAn6Zi/6IGU6YWLJyxcblx0XHRHQjogJ+iLseWbvScsXG5cdFx0VVM6ICfnvo7lm70nLFxuXHRcdFVNOiAn576O5Zu95pys5Zyf5aSW5bCP5bKb5bG/Jyxcblx0XHRVWTogJ+S5jOaLieWcrScsXG5cdFx0VVo6ICfkuYzlhbnliKvlhYvmlq/lnaYnLFxuXHRcdFZVOiAn55Om5Yqq6Zi/5Zu+Jyxcblx0XHRWRTogJ+WnlOWGheeRnuaLiScsXG5cdFx0Vk46ICfotorljZcnLFxuXHRcdFZHOiAn6Iux5bGe57u05bCU5Lqs576k5bKbJyxcblx0XHRWSTogJ+e+juWxnue7tOWwlOS6rOe+pOWymycsXG5cdFx0V0Y6ICfnk6bliKnmlq/lkozlr4zlm77nurMnLFxuXHRcdEVIOiAn6KW/5pKS5ZOI5ouJJyxcblx0XHRZRTogJ+S5n+mXqCcsXG5cdFx0Wk06ICfotZ7mr5TkuponLFxuXHRcdFpXOiAn5rSl5be05biD6Z+mJyxcblx0fTtcbn07XG5cbmNvbnN0IGdldFJlZ2lvbk5hbWVMaXN0ID0gKCkgPT4ge1xuXHRjb25zdCB7d2dVc2VyTGFuZ3VhZ2V9ID0gbXcuY29uZmlnLmdldCgpO1xuXG5cdGlmIChbJ3poLWhhbnQnLCAnemgtaGsnLCAnemgtbW8nLCAnemgtdHcnXS5pbmNsdWRlcyh3Z1VzZXJMYW5ndWFnZSkpIHtcblx0XHRyZXR1cm4ge1xuXHRcdFx0QUg6ICflronlvr0nLFxuXHRcdFx0Qko6ICfljJfkuqwnLFxuXHRcdFx0Q1E6ICfph43mhbYnLFxuXHRcdFx0Rko6ICfnpo/lu7onLFxuXHRcdFx0R0Q6ICflu6PmnbEnLFxuXHRcdFx0R1M6ICfnlJjogoUnLFxuXHRcdFx0R1g6ICflu6Popb8nLFxuXHRcdFx0R1o6ICfosrTlt54nLFxuXHRcdFx0SEE6ICfmsrPljZcnLFxuXHRcdFx0SEI6ICfmuZbljJcnLFxuXHRcdFx0SEU6ICfmsrPljJcnLFxuXHRcdFx0SEk6ICfmtbfljZcnLFxuXHRcdFx0SEw6ICfpu5Hpvo3msZ8nLFxuXHRcdFx0SE46ICfmuZbljZcnLFxuXHRcdFx0Skw6ICflkInmnpcnLFxuXHRcdFx0SlM6ICfmsZ/omIcnLFxuXHRcdFx0Slg6ICfmsZ/opb8nLFxuXHRcdFx0TE46ICfpgbzlr6cnLFxuXHRcdFx0Tk06ICflhafokpnlj6QnLFxuXHRcdFx0Tlg6ICflr6flpI8nLFxuXHRcdFx0UUg6ICfpnZLmtbcnLFxuXHRcdFx0U0M6ICflm5vlt50nLFxuXHRcdFx0U0Q6ICflsbHmnbEnLFxuXHRcdFx0U0g6ICfkuIrmtbcnLFxuXHRcdFx0U046ICfpmZ3opb8nLFxuXHRcdFx0U1g6ICflsbHopb8nLFxuXHRcdFx0VEo6ICflpKnmtKUnLFxuXHRcdFx0WEo6ICfmlrDnloYnLFxuXHRcdFx0WFo6ICfopb/ol48nLFxuXHRcdFx0WU46ICfpm7LljZcnLFxuXHRcdFx0Wko6ICfmtZnmsZ8nLFxuXHRcdH07XG5cdH1cblxuXHRyZXR1cm4ge1xuXHRcdEFIOiAn5a6J5b69Jyxcblx0XHRCSjogJ+WMl+S6rCcsXG5cdFx0Q1E6ICfph43luoYnLFxuXHRcdEZKOiAn56aP5bu6Jyxcblx0XHRHRDogJ+W5v+S4nCcsXG5cdFx0R1M6ICfnlJjogoMnLFxuXHRcdEdYOiAn5bm/6KW/Jyxcblx0XHRHWjogJ+i0teW3nicsXG5cdFx0SEE6ICfmsrPljZcnLFxuXHRcdEhCOiAn5rmW5YyXJyxcblx0XHRIRTogJ+ays+WMlycsXG5cdFx0SEk6ICfmtbfljZcnLFxuXHRcdEhMOiAn6buR6b6Z5rGfJyxcblx0XHRITjogJ+a5luWNlycsXG5cdFx0Skw6ICflkInmnpcnLFxuXHRcdEpTOiAn5rGf6IuPJyxcblx0XHRKWDogJ+axn+ilvycsXG5cdFx0TE46ICfovr3lroEnLFxuXHRcdE5NOiAn5YaF6JKZ5Y+kJyxcblx0XHROWDogJ+WugeWkjycsXG5cdFx0UUg6ICfpnZLmtbcnLFxuXHRcdFNDOiAn5Zub5bedJyxcblx0XHRTRDogJ+WxseS4nCcsXG5cdFx0U0g6ICfkuIrmtbcnLFxuXHRcdFNOOiAn6ZmV6KW/Jyxcblx0XHRTWDogJ+WxseilvycsXG5cdFx0VEo6ICflpKnmtKUnLFxuXHRcdFhKOiAn5paw55aGJyxcblx0XHRYWjogJ+ilv+iXjycsXG5cdFx0WU46ICfkupHljZcnLFxuXHRcdFpKOiAn5rWZ5rGfJyxcblx0fTtcbn07XG5cbmV4cG9ydCB7Z2V0Q291bnRyeU9yQXJlYU5hbWVMaXN0LCBnZXRSZWdpb25OYW1lTGlzdH07XG4iLCAiaW1wb3J0IHtnZXRDb3VudHJ5T3JBcmVhTmFtZUxpc3QsIGdldFJlZ2lvbk5hbWVMaXN0fSBmcm9tICcuL25hbWUnO1xuXG50eXBlIENvdW50cnlPckFyZWFOYW1lTGlzdCA9IFJldHVyblR5cGU8dHlwZW9mIGdldENvdW50cnlPckFyZWFOYW1lTGlzdD47XG50eXBlIFJlZ2lvbk5hbWVMaXN0ID0gUmV0dXJuVHlwZTx0eXBlb2YgZ2V0UmVnaW9uTmFtZUxpc3Q+O1xuXG5jb25zdCBjb3VudHJ5T3JBcmVhTGlzdDogQ291bnRyeU9yQXJlYU5hbWVMaXN0ID0gZ2V0Q291bnRyeU9yQXJlYU5hbWVMaXN0KCk7XG5jb25zdCByZWdpb25MaXN0OiBSZWdpb25OYW1lTGlzdCA9IGdldFJlZ2lvbk5hbWVMaXN0KCk7XG5cbmNvbnN0IGdldENvdW50cnlPckFyZWFOYW1lID0gPFQgZXh0ZW5kcyBrZXlvZiBDb3VudHJ5T3JBcmVhTmFtZUxpc3Q+KGtleTogVCk6IENvdW50cnlPckFyZWFOYW1lTGlzdFtUXSB8IHVuZGVmaW5lZCA9PiB7XG5cdHJldHVybiBjb3VudHJ5T3JBcmVhTGlzdFtrZXldO1xufTtcblxuY29uc3QgZ2V0UmVnaW9uTmFtZSA9IDxUIGV4dGVuZHMga2V5b2YgUmVnaW9uTmFtZUxpc3Q+KGtleTogVCk6IFJlZ2lvbk5hbWVMaXN0W1RdIHwgdW5kZWZpbmVkID0+IHtcblx0cmV0dXJuIHJlZ2lvbkxpc3Rba2V5XTtcbn07XG5cbmV4cG9ydCB7dHlwZSBDb3VudHJ5T3JBcmVhTmFtZUxpc3QsIHR5cGUgUmVnaW9uTmFtZUxpc3QsIGdldENvdW50cnlPckFyZWFOYW1lLCBnZXRSZWdpb25OYW1lfTtcbiIsICJpbXBvcnQgKiBhcyBPUFRJT05TIGZyb20gJy4uL29wdGlvbnMuanNvbic7XG5pbXBvcnQge2luaXRNd0FwaX0gZnJvbSAnZXh0LmdhZGdldC5VdGlsJztcblxuY29uc3QgYXBpOiBtdy5BcGkgPSBpbml0TXdBcGkoYEdlb0xvY2F0aW9uUmVhZGVyLyR7T1BUSU9OUy52ZXJzaW9ufWApO1xuXG5leHBvcnQge2FwaX07XG4iLCAiaW1wb3J0ICogYXMgT1BUSU9OUyBmcm9tICcuLi8uLi9vcHRpb25zLmpzb24nO1xuaW1wb3J0IHt0eXBlIENvdW50cnlPckFyZWFOYW1lTGlzdCwgdHlwZSBSZWdpb25OYW1lTGlzdCwgZ2V0Q291bnRyeU9yQXJlYU5hbWUsIGdldFJlZ2lvbk5hbWV9IGZyb20gJy4vZ2V0TmFtZSc7XG5pbXBvcnQgdHlwZSB7U3RvcmVHZW9JbmZvfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQge2FwaX0gZnJvbSAnLi4vYXBpJztcbmltcG9ydCB7Z2V0TWVzc2FnZX0gZnJvbSAnLi4vaTE4bic7XG5cbmNvbnN0IGdldExvY2F0aW9uID0gYXN5bmMgKHdnUmVsZXZhbnRVc2VyTmFtZTogc3RyaW5nKSA9PiB7XG5cdGNvbnN0IHN0b3JlUGFnZVRpdGxlOiBzdHJpbmcgPSBgVXNlcjoke3dnUmVsZXZhbnRVc2VyTmFtZX0vR2VvSVAuanNvbmA7XG5cblx0bGV0IGNvdW50cnlPckFyZWFOYW1lOiBzdHJpbmcgPSBnZXRNZXNzYWdlKCdVbmtub3duJyk7XG5cdGxldCByZWdpb25OYW1lOiBzdHJpbmcgPSAnJztcblxuXHRpZiAobXcuc3RvcmFnZS5nZXRPYmplY3QoT1BUSU9OUy5zdG9yYWdlS2V5ICsgd2dSZWxldmFudFVzZXJOYW1lKSkge1xuXHRcdCh7Y291bnRyeU9yQXJlYU5hbWUsIHJlZ2lvbk5hbWV9ID0gbXcuc3RvcmFnZS5nZXRPYmplY3QoT1BUSU9OUy5zdG9yYWdlS2V5ICsgd2dSZWxldmFudFVzZXJOYW1lKSBhcyB7XG5cdFx0XHRjb3VudHJ5T3JBcmVhTmFtZTogc3RyaW5nO1xuXHRcdFx0cmVnaW9uTmFtZTogc3RyaW5nO1xuXHRcdH0pO1xuXHR9IGVsc2Uge1xuXHRcdHRyeSB7XG5cdFx0XHRjb25zdCBwYXJhbXM6IEFwaVF1ZXJ5UmV2aXNpb25zUGFyYW1zID0ge1xuXHRcdFx0XHRhY3Rpb246ICdxdWVyeScsXG5cdFx0XHRcdGZvcm1hdDogJ2pzb24nLFxuXHRcdFx0XHRmb3JtYXR2ZXJzaW9uOiAnMicsXG5cdFx0XHRcdHRpdGxlczogW3N0b3JlUGFnZVRpdGxlXSxcblx0XHRcdFx0cHJvcDogWydyZXZpc2lvbnMnXSxcblx0XHRcdFx0cnZwcm9wOiBbJ2NvbnRlbnQnXSxcblx0XHRcdFx0cnZzbG90czogJ21haW4nLFxuXHRcdFx0XHRzbWF4YWdlOiA2MDAsXG5cdFx0XHRcdG1heGFnZTogNjAwLFxuXHRcdFx0fTtcblxuXHRcdFx0Y29uc3QgZGF0YSA9IGF3YWl0IGFwaS5nZXQocGFyYW1zKTtcblxuXHRcdFx0Y29uc3QgY29udGVudCA9IChkYXRhWydxdWVyeSddPy5wYWdlc1swXT8ucmV2aXNpb25zPy5bMF0uc2xvdHMubWFpbi5jb250ZW50IGFzIHN0cmluZykgfHwgJyc7XG5cdFx0XHRjb25zdCByZXNwb25zZSA9IEpTT04ucGFyc2UoY29udGVudCkgYXMgU3RvcmVHZW9JbmZvICYge1xuXHRcdFx0XHRjb3VudHJ5Pzogc3RyaW5nO1xuXHRcdFx0fTtcblxuXHRcdFx0aWYgKCEocmVzcG9uc2UuY291bnRyeSB8fCByZXNwb25zZS5jb3VudHJ5T3JBcmVhKSAmJiAhcmVzcG9uc2UucmVnaW9uKSB7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblxuXHRcdFx0Y29uc3Qge2NvdW50cnksIGNvdW50cnlPckFyZWEsIHJlZ2lvbn0gPSByZXNwb25zZTtcblxuXHRcdFx0bGV0IGxvY2F0aW9uOiBTdG9yZUdlb0luZm9bJ2NvdW50cnlPckFyZWEnXSA9ICcnO1xuXG5cdFx0XHRpZiAoY291bnRyeSB8fCBjb3VudHJ5T3JBcmVhKSB7XG5cdFx0XHRcdGxvY2F0aW9uID0gY291bnRyeSB8fCBjb3VudHJ5T3JBcmVhO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAoZ2V0Q291bnRyeU9yQXJlYU5hbWUobG9jYXRpb24gYXMga2V5b2YgQ291bnRyeU9yQXJlYU5hbWVMaXN0KSkge1xuXHRcdFx0XHRjb3VudHJ5T3JBcmVhTmFtZSA9XG5cdFx0XHRcdFx0Z2V0Q291bnRyeU9yQXJlYU5hbWUobG9jYXRpb24gYXMga2V5b2YgQ291bnRyeU9yQXJlYU5hbWVMaXN0KSB8fCBnZXRNZXNzYWdlKCdVbmtub3duJyk7XG5cdFx0XHR9XG5cblx0XHRcdGlmIChsb2NhdGlvbiAmJiBsb2NhdGlvbiA9PT0gJ0NOJykge1xuXHRcdFx0XHRyZWdpb25OYW1lID0gZ2V0UmVnaW9uTmFtZShyZWdpb24gYXMga2V5b2YgUmVnaW9uTmFtZUxpc3QpIHx8ICcnO1xuXHRcdFx0fVxuXG5cdFx0XHRtdy5zdG9yYWdlLnNldE9iamVjdChPUFRJT05TLnN0b3JhZ2VLZXkgKyB3Z1JlbGV2YW50VXNlck5hbWUsIHtjb3VudHJ5T3JBcmVhTmFtZSwgcmVnaW9uTmFtZX0sIDYwICogNjApO1xuXHRcdH0gY2F0Y2ggKGVycm9yOiB1bmtub3duKSB7XG5cdFx0XHRjb25zb2xlLmVycm9yKCdbR2VvTG9jYXRpb25SZWFkZXJdIEFqYXggZXJyb3IgaW4gYGdldExvY2F0aW9uYCBtZXRob2Q6JywgZXJyb3IpO1xuXHRcdH1cblx0fVxuXG5cdHJldHVybiB7Y291bnRyeU9yQXJlYU5hbWUsIHJlZ2lvbk5hbWV9O1xufTtcblxuZXhwb3J0IHtnZXRMb2NhdGlvbn07XG4iLCAiaW1wb3J0IHthcHBlbmRJY29ufSBmcm9tICcuL3V0aWwvYXBwZW5kSWNvbic7XG5pbXBvcnQge2dldExvY2F0aW9ufSBmcm9tICcuL3V0aWwvZ2V0TG9jYXRpb24nO1xuaW1wb3J0IHtnZXRNZXNzYWdlfSBmcm9tICcuL2kxOG4nO1xuXG5jb25zdCBhcHBlbmRHZW9JY29uID0gYXN5bmMgKCk6IFByb21pc2U8dm9pZD4gPT4ge1xuXHRjb25zdCB7d2dSZWxldmFudFVzZXJOYW1lfSA9IG13LmNvbmZpZy5nZXQoKTtcblx0aWYgKCF3Z1JlbGV2YW50VXNlck5hbWUpIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHR0cnkge1xuXHRcdGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZ2V0TG9jYXRpb24od2dSZWxldmFudFVzZXJOYW1lKTtcblx0XHRjb25zdCBjb3VudHJ5T3JBcmVhTmFtZSA9IHJlc3BvbnNlPy5jb3VudHJ5T3JBcmVhTmFtZSA/PyAnJztcblx0XHRjb25zdCByZWdpb25OYW1lID0gcmVzcG9uc2U/LnJlZ2lvbk5hbWUgPz8gJyc7XG5cblx0XHRhcHBlbmRJY29uKHtcblx0XHRcdGljb246ICdnbG9iZScsXG5cdFx0XHRpbmRpY2F0b3JUZXh0OiBjb3VudHJ5T3JBcmVhTmFtZSArIHJlZ2lvbk5hbWUsXG5cdFx0XHRzcGFuQ2xhc3M6ICdncmVlbicsXG5cdFx0fSk7XG5cdH0gY2F0Y2ggKGVycm9yOiB1bmtub3duKSB7XG5cdFx0Y29uc29sZS5lcnJvcignW0dlb0xvY2F0aW9uUmVhZGVyXSBBamF4IGVycm9yIGluIGBhcHBlbmRHZW9JY29uYCBtZXRob2Q6JywgZXJyb3IpO1xuXHRcdGFwcGVuZEljb24oe1xuXHRcdFx0aWNvbjogJ2hlbHBOb3RpY2UnLFxuXHRcdFx0aW5kaWNhdG9yVGV4dDogZ2V0TWVzc2FnZSgnVW5rbm93bicpLFxuXHRcdFx0c3BhbkNsYXNzOiAnb3JhbmdlJyxcblx0XHR9KTtcblx0fVxufTtcblxuZXhwb3J0IHthcHBlbmRHZW9JY29ufTtcbiIsICJpbXBvcnQge2FwcGVuZEdlb0ljb259IGZyb20gJy4vYXBwZW5kR2VvSWNvbic7XG5pbXBvcnQge2dldExvY2FsVXNlckdyb3Vwc30gZnJvbSAnZXh0LmdhZGdldC5NYXJrUmlnaHRzJztcblxuY29uc3QgYWRkRWxlbWVudCA9IGFzeW5jICgpOiBQcm9taXNlPHZvaWQ+ID0+IHtcblx0Y29uc3Qge3dnUmVsZXZhbnRVc2VyTmFtZX0gPSBtdy5jb25maWcuZ2V0KCk7XG5cblx0aWYgKCF3Z1JlbGV2YW50VXNlck5hbWUpIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHR0cnkge1xuXHRcdGNvbnN0IGdyb3Vwc01hcCA9IGF3YWl0IGdldExvY2FsVXNlckdyb3Vwcyhbd2dSZWxldmFudFVzZXJOYW1lXSk7XG5cdFx0Y29uc3QgZ3JvdXBzID0gZ3JvdXBzTWFwW3dnUmVsZXZhbnRVc2VyTmFtZV0gPz8gW107XG5cblx0XHRpZiAoZ3JvdXBzLmluY2x1ZGVzKCdib3QnKSB8fCBncm91cHMuaW5jbHVkZXMoJ3FpdXdlbicpKSB7XG5cdFx0XHQvKiBlbXB0eSAqL1xuXHRcdFx0Ly8gQWxyZWFkeSBzaG93biBpbiBNYXJrUmlnaHRzLVVzZXJwYWdlXG5cdFx0fSBlbHNlIHtcblx0XHRcdHZvaWQgYXBwZW5kR2VvSWNvbigpO1xuXHRcdH1cblx0fSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcblx0XHRjb25zb2xlLmVycm9yKCdbR2VvTG9jYXRpb25SZWFkZXJdIEFqYXggZXJyb3IgaW4gYGFkZEVsZW1lbnRgIG1ldGhvZDonLCBlcnJvcik7XG5cdH1cbn07XG5cbmV4cG9ydCB7YWRkRWxlbWVudH07XG4iLCAiaW1wb3J0ICogYXMgT1BUSU9OUyBmcm9tICcuL29wdGlvbnMuanNvbic7XG5pbXBvcnQge1NZU1RFTV9TQ1JJUFRfTElTVCwgV0VCTUFTVEVSX0xJU1R9IGZyb20gJy4vbW9kdWxlcy9jb25zdGFudCc7XG5pbXBvcnQge2FkZEVsZW1lbnR9IGZyb20gJy4vbW9kdWxlcy9hZGRFbGVtZW50JztcblxuKGZ1bmN0aW9uIGdlb0xvY2F0aW9uUmVhZGVyKCk6IHZvaWQge1xuXHRjb25zdCB7d2dBY3Rpb24sIHdnTmFtZXNwYWNlTnVtYmVyLCB3Z1BhZ2VOYW1lLCB3Z1JlbGV2YW50VXNlck5hbWV9ID0gbXcuY29uZmlnLmdldCgpO1xuXHRpZiAoXG5cdFx0IXdnUmVsZXZhbnRVc2VyTmFtZSB8fFxuXHRcdFNZU1RFTV9TQ1JJUFRfTElTVC5pbmNsdWRlcyh3Z1JlbGV2YW50VXNlck5hbWUpIHx8XG5cdFx0V0VCTUFTVEVSX0xJU1QuaW5jbHVkZXMod2dSZWxldmFudFVzZXJOYW1lKSB8fFxuXHRcdCEod2dOYW1lc3BhY2VOdW1iZXIgPT09IE9QVElPTlMudXNlck5hbWVTcGFjZU51bWJlcikgfHxcblx0XHQhKHdnQWN0aW9uID09PSAndmlldycpXG5cdCkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGNvbnN0IHBhZ2VOYW1lOiBzdHJpbmcgPSBuZXcgbXcuVGl0bGUod2dQYWdlTmFtZSkudG9UZXh0KCk7XG5cdGNvbnN0IHJlbGV2YW50VXNlclBhZ2VOYW1lOiBzdHJpbmcgPSBuZXcgbXcuVGl0bGUod2dSZWxldmFudFVzZXJOYW1lLCBPUFRJT05TLnVzZXJOYW1lU3BhY2VOdW1iZXIpLnRvVGV4dCgpO1xuXHRpZiAocGFnZU5hbWUgIT09IHJlbGV2YW50VXNlclBhZ2VOYW1lKSB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0dm9pZCBhZGRFbGVtZW50KCk7XG59KSgpO1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFNQyxJQUFBQSxxQkFBc0I7QUFDdEIsSUFBQUMsYUFBYztBQUNkLElBQUFDLHNCQUF1QjtBQUN2QixJQUFBQyxVQUFXOztBQ1RaLElBQU1DLHFCQUErQixDQUNwQyxTQUNBLFFBQ0EsVUFDQSxXQUNBLHlCQUNBLHNCQUNBLHFCQUNBLDhCQUNBLGVBQUE7QUFFRCxJQUFNQyxpQkFBMkIsQ0FBQyxVQUFVLHVCQUF1QixtQkFBbUI7O0FDWHRGLElBQU1DLGFBQXFCO0FBQzNCLElBQU1DLGtCQUFBLEdBQUFDLE9BQTZCRixZQUFVLFFBQUE7QUFDN0MsSUFBTUcsa0JBQUEsR0FBQUQsT0FBNkJGLFlBQVUsUUFBQTs7QUNEN0MsSUFBQUkscUJBQWtDQyxRQUFBQyxRQUFBLGtCQUFBLEdBQUEsQ0FBQTs7QUNEbEMsSUFBQUMsb0JBQXVCRCxR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LElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO0lBQ0w7RUFDRCxXQUFXLENBQUMsT0FBTyxFQUFFeFEsU0FBU2UsY0FBYyxHQUFHO0FBQzlDLFdBQU87TUFDTkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7SUFDTDtFQUNELFdBQVcsQ0FBQyxTQUFTLE9BQU8sRUFBRXhRLFNBQVNlLGNBQWMsR0FBRztBQUN2RCxXQUFPO01BQ05DLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO0lBQ0w7RUFDRDtBQUVBLFNBQU87SUFDTnhQLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNK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QUFtQmdDLFNBQVN3UyxrQkFBa0IsS0FDOUN2VSxlQUFlK0IsU0FBU3dTLGtCQUFrQixLQUMxQyxFQUFFaUQsc0JBQThCM1gsd0JBQ2hDLEVBQUUwWCxhQUFhLFNBQ2Q7QUFDRDtFQUNEO0FBRUEsUUFBTUcsV0FBbUIsSUFBSWhXLEdBQUdpVyxNQUFNRixVQUFVLEVBQUVHLE9BQU87QUFDekQsUUFBTUMsdUJBQStCLElBQUluVyxHQUFHaVcsTUFBTXBELG9CQUE0QjFVLG1CQUFtQixFQUFFK1gsT0FBTztBQUMxRyxNQUFJRixhQUFhRyxzQkFBc0I7QUFDdEM7RUFDRDtBQUVBLE9BQUtiLFdBQVc7QUFDakIsR0FBRzsiLAogICJuYW1lcyI6IFsibW91bnRQb2ludFNlbGVjdG9yIiwgInN0b3JhZ2VLZXkiLCAidXNlck5hbWVTcGFjZU51bWJlciIsICJ2ZXJzaW9uIiwgIlNZU1RFTV9TQ1JJUFRfTElTVCIsICJXRUJNQVNURVJfTElTVCIsICJDTEFTU19OQU1FIiwgIkNMQVNTX05BTUVfSUNPTiIsICJjb25jYXQiLCAiQ0xBU1NfTkFNRV9URVhUIiwgImltcG9ydF9leHRfZ2FkZ2V0MiIsICJfX3RvRVNNIiwgInJlcXVpcmUiLCAiaW1wb3J0X2V4dF9nYWRnZXQiLCAiZ2V0STE4bk1lc3NhZ2VzIiwgImxvY2FsaXplIiwgImVuIiwgImphIiwgInpoIiwgIlVua25vd24iLCAiTG9jYXRpb24iLCAiaTE4bk1lc3NhZ2VzIiwgImdldE1lc3NhZ2UiLCAia2V5IiwgIkZvb3Rlck5vdGljZSIsICJzcGFuQ2xhc3MiLCAiY2hpbGRyZW4iLCAiZGVmYXVsdCIsICJjcmVhdGVFbGVtZW50IiwgIkZyYWdtZW50IiwgInNraW4iLCAibXciLCAiY29uZmlnIiwgImdldCIsICJpZCIsICJjbGFzc05hbWUiLCAiaW5jbHVkZXMiLCAiZG9jdW1lbnQiLCAicXVlcnlTZWxlY3RvciIsICJJbmRpY2F0b3IiLCAiaWNvbiIsICJpbmRpY2F0b3JUZXh0IiwgInRleHQiLCAiRm9vdGVySWNvbiIsICJpbXBvcnRfZXh0X2dhZGdldDMiLCAiYXBwZW5kRm9vdGVyTm90aWNlIiwgImVsZW1lbnQiLCAibW91bnRQb2ludCIsICJwcmVwZW5kIiwgImFwcGVuZEljb24iLCAiZ2V0Q291bnRyeU9yQXJlYU5hbWVMaXN0IiwgIndnVXNlckxhbmd1YWdlIiwgIkFGIiwgIkFYIiwgIkFMIiwgIkRaIiwgIkFTIiwgIkFEIiwgIkFPIiwgIkFJIiwgIkFRIiwgIkFHIiwgIkFSIiwgIkFNIiwgIkFXIiwgIkFVIiwgIkFUIiwgIkFaIiwgIkJTIiwgIkJIIiwgIkJEIiwgIkJCIiwgIkJZIiwgIkJFIiwgIkJaIiwgIkJKIiwgIkJNIiwgIkJUIiwgIkJPIiwgIkJRIiwgIkJBIiwgIkJXIiwgIkJWIiwgIkJSIiwgIklPIiwgIkJOIiwgIkJHIiwgIkJGIiwgIkJJIiwgIkNWIiwgIktIIiwgIkNNIiwgIkNBIiwgIktZIiwgIkNGIiwgIlREIiwgIkNMIiwgIkNOIiwgIkNYIiwgIkNDIiwgIkNPIiwgIktNIiwgIkNHIiwgIkNEIiwgIkNLIiwgIkNSIiwgIkNJIiwgIkhSIiwgIkNVIiwgIkNXIiwgIkNZIiwgIkNaIiwgIkRLIiwgIkRKIiwgIkRNIiwgIkRPIiwgIkVDIiwgIkVHIiwgIlNWIiwgIkdRIiwgIkVSIiwgIkVFIiwgIlNaIiwgIkVUIiwgIkZLIiwgIkZPIiwgIkZKIiwgIkZJIiwgIkZSIiwgIkdGIiwgIlBGIiwgIlRGIiwgIkdBIiwgIkdNIiwgIkdFIiwgIkRFIiwgIkdIIiwgIkdJIiwgIkdSIiwgIkdMIiwgIkdEIiwgIkdQIiwgIkdVIiwgIkdUIiwgIkdHIiwgIkdOIiwgIkdXIiwgIkdZIiwgIkhUIiwgIkhNIiwgIlZBIiwgIkhOIiwgIkhLIiwgIkhVIiwgIklTIiwgIklOIiwgIklEIiwgIklSIiwgIklRIiwgIklFIiwgIklNIiwgIklMIiwgIklUIiwgIkpNIiwgIkpQIiwgIkpFIiwgIkpPIiwgIktaIiwgIktFIiwgIktJIiwgIktQIiwgIktSIiwgIktXIiwgIktHIiwgIkxBIiwgIkxWIiwgIkxCIiwgIkxTIiwgIkxSIiwgIkxZIiwgIkxJIiwgIkxUIiwgIkxVIiwgIk1PIiwgIk1HIiwgIk1XIiwgIk1ZIiwgIk1WIiwgIk1MIiwgIk1UIiwgIk1IIiwgIk1RIiwgIk1SIiwgIk1VIiwgIllUIiwgIk1YIiwgIkZNIiwgIk1EIiwgIk1DIiwgIk1OIiwgIk1FIiwgIk1TIiwgIk1BIiwgIk1aIiwgIk1NIiwgIk5BIiwgIk5SIiwgIk5QIiwgIk5MIiwgIk5DIiwgIk5aIiwgIk5JIiwgIk5FIiwgIk5HIiwgIk5VIiwgIk5GIiwgIk1LIiwgIk1QIiwgIk5PIiwgIk9NIiwgIlBLIiwgIlBXIiwgIlBTIiwgIlBBIiwgIlBHIiwgIlBZIiwgIlBFIiwgIlBIIiwgIlBOIiwgIlBMIiwgIlBUIiwgIlBSIiwgIlFBIiwgIlJFIiwgIlJPIiwgIlJVIiwgIlJXIiwgIkJMIiwgIlNIIiwgIktOIiwgIkxDIiwgIk1GIiwgIlBNIiwgIlZDIiwgIldTIiwgIlNNIiwgIlNUIiwgIlNBIiwgIlNOIiwgIlJTIiwgIlNDIiwgIlNMIiwgIlNHIiwgIlNYIiwgIlNLIiwgIlNJIiwgIlNCIiwgIlNPIiwgIlpBIiwgIkdTIiwgIlNTIiwgIkVTIiwgIkxLIiwgIlNEIiwgIlNSIiwgIlNKIiwgIlNFIiwgIkNIIiwgIlNZIiwgIlRXIiwgIlRKIiwgIlRaIiwgIlRIIiwgIlRMIiwgIlRHIiwgIlRLIiwgIlRPIiwgIlRUIiwgIlROIiwgIlRSIiwgIlRNIiwgIlRDIiwgIlRWIiwgIlVHIiwgIlVBIiwgIkFFIiwgIkdCIiwgIlVTIiwgIlVNIiwgIlVZIiwgIlVaIiwgIlZVIiwgIlZFIiwgIlZOIiwgIlZHIiwgIlZJIiwgIldGIiwgIkVIIiwgIllFIiwgIlpNIiwgIlpXIiwgImdldFJlZ2lvbk5hbWVMaXN0IiwgIkFIIiwgIkNRIiwgIkdYIiwgIkdaIiwgIkhBIiwgIkhCIiwgIkhFIiwgIkhJIiwgIkhMIiwgIkpMIiwgIkpTIiwgIkpYIiwgIkxOIiwgIk5NIiwgIk5YIiwgIlFIIiwgIlhKIiwgIlhaIiwgIllOIiwgIlpKIiwgImNvdW50cnlPckFyZWFMaXN0IiwgInJlZ2lvbkxpc3QiLCAiZ2V0Q291bnRyeU9yQXJlYU5hbWUiLCAiZ2V0UmVnaW9uTmFtZSIsICJpbXBvcnRfZXh0X2dhZGdldDQiLCAiYXBpIiwgImluaXRNd0FwaSIsICJnZXRMb2NhdGlvbiIsICJfcmVmIiwgIl9hc3luY1RvR2VuZXJhdG9yIiwgIndnUmVsZXZhbnRVc2VyTmFtZSIsICJzdG9yZVBhZ2VUaXRsZSIsICJjb3VudHJ5T3JBcmVhTmFtZSIsICJyZWdpb25OYW1lIiwgInN0b3JhZ2UiLCAiZ2V0T2JqZWN0IiwgIl9kYXRhJHF1ZXJ5IiwgInBhcmFtcyIsICJhY3Rpb24iLCAiZm9ybWF0IiwgImZvcm1hdHZlcnNpb24iLCAidGl0bGVzIiwgInByb3AiLCAicnZwcm9wIiwgInJ2c2xvdHMiLCAic21heGFnZSIsICJtYXhhZ2UiLCAiZGF0YSIsICJjb250ZW50IiwgInBhZ2VzIiwgInJldmlzaW9ucyIsICJzbG90cyIsICJtYWluIiwgInJlc3BvbnNlIiwgIkpTT04iLCAicGFyc2UiLCAiY291bnRyeSIsICJjb3VudHJ5T3JBcmVhIiwgInJlZ2lvbiIsICJsb2NhdGlvbiIsICJzZXRPYmplY3QiLCAiZXJyb3IiLCAiY29uc29sZSIsICJfeCIsICJhcHBseSIsICJhcmd1bWVudHMiLCAiYXBwZW5kR2VvSWNvbiIsICJfcmVmMiIsICJfcmVzcG9uc2UkY291bnRyeU9yQXIiLCAiX3Jlc3BvbnNlJHJlZ2lvbk5hbWUiLCAiaW1wb3J0X2V4dF9nYWRnZXQ1IiwgImFkZEVsZW1lbnQiLCAiX3JlZjMiLCAiX2dyb3Vwc01hcCR3Z1JlbGV2YW50IiwgImdyb3Vwc01hcCIsICJnZXRMb2NhbFVzZXJHcm91cHMiLCAiZ3JvdXBzIiwgImdlb0xvY2F0aW9uUmVhZGVyIiwgIndnQWN0aW9uIiwgIndnTmFtZXNwYWNlTnVtYmVyIiwgIndnUGFnZU5hbWUiLCAicGFnZU5hbWUiLCAiVGl0bGUiLCAidG9UZXh0IiwgInJlbGV2YW50VXNlclBhZ2VOYW1lIl0KfQo= +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL0dlb0xvY2F0aW9uUmVhZGVyL29wdGlvbnMuanNvbiIsICJzcmMvR2VvTG9jYXRpb24vbW9kdWxlcy9jb25zdGFudC50cyIsICJzcmMvR2VvTG9jYXRpb25SZWFkZXIvbW9kdWxlcy9jb25zdGFudC50cyIsICJzcmMvR2VvTG9jYXRpb25SZWFkZXIvbW9kdWxlcy9jb21wb25lbnRzL3JlYWN0LnRzeCIsICJzcmMvR2VvTG9jYXRpb25SZWFkZXIvbW9kdWxlcy9pMThuLnRzIiwgInNyYy9HZW9Mb2NhdGlvblJlYWRlci9tb2R1bGVzL3V0aWwvYXBwZW5kSWNvbi50c3giLCAic3JjL0dlb0xvY2F0aW9uUmVhZGVyL21vZHVsZXMvdXRpbC9uYW1lLnRzIiwgInNyYy9HZW9Mb2NhdGlvblJlYWRlci9tb2R1bGVzL3V0aWwvZ2V0TmFtZS50cyIsICJzcmMvR2VvTG9jYXRpb25SZWFkZXIvbW9kdWxlcy9hcGkudHMiLCAic3JjL0dlb0xvY2F0aW9uUmVhZGVyL21vZHVsZXMvdXRpbC9nZXRMb2NhdGlvbi50cyIsICJzcmMvR2VvTG9jYXRpb25SZWFkZXIvbW9kdWxlcy9hcHBlbmRHZW9JY29uLnRzeCIsICJzcmMvR2VvTG9jYXRpb25SZWFkZXIvbW9kdWxlcy9hZGRFbGVtZW50LnRzIiwgInNyYy9HZW9Mb2NhdGlvblJlYWRlci9HZW9Mb2NhdGlvblJlYWRlci50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsie1xuXHRcImRlZmF1bHRHZW9JbmZvXCI6IHtcblx0XHRcImNvdW50cnlPckFyZWFcIjogXCJcIixcblx0XHRcInJlZ2lvblwiOiBcIlwiLFxuXHRcdFwiY2l0eVwiOiBcIlwiXG5cdH0sXG5cdFwibW91bnRQb2ludFNlbGVjdG9yXCI6IFwiI2Zvb3Rlci1pbmZvLC5wYWdlLWluZm9cIixcblx0XCJzdG9yYWdlS2V5XCI6IFwiZXh0LmdhZGdldC5NYXJrUmlnaHRzX0dlb0xvY2F0aW9uUmVhZGVyLVwiLFxuXHRcInVzZXJOYW1lU3BhY2VOdW1iZXJcIjogMixcblx0XCJ2ZXJzaW9uXCI6IFwiMi4xXCJcbn1cbiIsICJjb25zdCBTWVNURU1fU0NSSVBUX0xJU1Q6IHN0cmluZ1tdID0gW1xuXHQn5rul55So6L+H5ruk5ZmoJyxcblx0J+axgumXu+e8luiAhScsXG5cdCfmsYLpl7vnmb7np5HnpL7ljLonLFxuXHQnRXhhbXBsZScsXG5cdCdFeHRlcm5hbCBjb250cmlidXRvcnMnLFxuXHQnTWFpbnRlbmFuY2Ugc2NyaXB0Jyxcblx0J01lZGlhV2lraSBkZWZhdWx0Jyxcblx0J01lZGlhV2lraSBtZXNzYWdlIGRlbGl2ZXJ5Jyxcblx0J05ldyB1c2VyIHBhZ2UnLFxuXTtcbmNvbnN0IFdFQk1BU1RFUl9MSVNUOiBzdHJpbmdbXSA9IFsnUWl1V2VuJywgJ1FpdVdlbiBmb3IgQWNjb3VudHMnLCAnUWl1d2VuU29jaWFsTWVkaWEnXTtcblxuZXhwb3J0IHtTWVNURU1fU0NSSVBUX0xJU1QsIFdFQk1BU1RFUl9MSVNUfTtcbiIsICJjb25zdCBDTEFTU19OQU1FOiBzdHJpbmcgPSAnZ2FkZ2V0LWdlb19sb2NhdGlvbl9yZWFkZXInO1xuY29uc3QgQ0xBU1NfTkFNRV9JQ09OOiBzdHJpbmcgPSBgJHtDTEFTU19OQU1FfV9faWNvbmA7XG5jb25zdCBDTEFTU19OQU1FX1RFWFQ6IHN0cmluZyA9IGAke0NMQVNTX05BTUV9X190ZXh0YDtcblxuZXhwb3J0IHtTWVNURU1fU0NSSVBUX0xJU1QsIFdFQk1BU1RFUl9MSVNUfSBmcm9tICd+L0dlb0xvY2F0aW9uL21vZHVsZXMvY29uc3RhbnQnO1xuZXhwb3J0IHtDTEFTU19OQU1FLCBDTEFTU19OQU1FX0lDT04sIENMQVNTX05BTUVfVEVYVH07XG4iLCAiaW1wb3J0IHtDTEFTU19OQU1FLCBDTEFTU19OQU1FX0lDT04sIENMQVNTX05BTUVfVEVYVH0gZnJvbSAnLi4vY29uc3RhbnQnO1xuaW1wb3J0IFJlYWN0LCB7UmVhY3RFbGVtZW50fSBmcm9tICdleHQuZ2FkZ2V0LkpTWCc7XG5pbXBvcnQge2dldE1lc3NhZ2V9IGZyb20gJy4uL2kxOG4nO1xuXG5pbnRlcmZhY2UgRm9vdGVyTm90aWNlUHJvcHMge1xuXHRzcGFuQ2xhc3M6IHN0cmluZztcblx0Y2hpbGRyZW4/OiBSZWFjdEVsZW1lbnQgfCBSZWFjdEVsZW1lbnRbXTtcbn1cblxuY29uc3QgRm9vdGVyTm90aWNlID0gKHtzcGFuQ2xhc3MsIGNoaWxkcmVuID0gPD48Lz59OiBGb290ZXJOb3RpY2VQcm9wcykgPT4ge1xuXHRjb25zdCB7c2tpbn0gPSBtdy5jb25maWcuZ2V0KCk7XG5cdGNoaWxkcmVuID8/PSA8PjwvPjtcblxuXHRyZXR1cm4gKFxuXHRcdDw+XG5cdFx0XHR7c2tpbiA9PT0gJ2NpdGl6ZW4nID8gKFxuXHRcdFx0XHQ8c2VjdGlvblxuXHRcdFx0XHRcdGlkPXtDTEFTU19OQU1FfVxuXHRcdFx0XHRcdGNsYXNzTmFtZT17W1xuXHRcdFx0XHRcdFx0Q0xBU1NfTkFNRSxcblx0XHRcdFx0XHRcdGAke0NMQVNTX05BTUV9LSR7c3BhbkNsYXNzfWAsXG5cdFx0XHRcdFx0XHQncGFnZS1pbmZvX19pdGVtJyxcblx0XHRcdFx0XHRcdCdjaXRpemVuLWZvb3Rlcl9fcGFnZWluZm8taXRlbScsXG5cdFx0XHRcdFx0XHQnbm9wcmludCcsXG5cdFx0XHRcdFx0XX1cblx0XHRcdFx0PlxuXHRcdFx0XHRcdHtjaGlsZHJlbn1cblx0XHRcdFx0PC9zZWN0aW9uPlxuXHRcdFx0KSA6IFsndmVjdG9yJywgJ3ZlY3Rvci0yMDIyJywgJ2dvbmdiaSddLmluY2x1ZGVzKHNraW4pIHx8IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ3VsI2Zvb3Rlci1pbmZvJykgPyAoXG5cdFx0XHRcdDxsaSBpZD17Q0xBU1NfTkFNRX0gY2xhc3NOYW1lPXtbQ0xBU1NfTkFNRSwgYCR7Q0xBU1NfTkFNRX0tJHtzcGFuQ2xhc3N9YCwgJ25vcHJpbnQnXX0+XG5cdFx0XHRcdFx0e2NoaWxkcmVufVxuXHRcdFx0XHQ8L2xpPlxuXHRcdFx0KSA6IChcblx0XHRcdFx0PGRpdiBpZD17Q0xBU1NfTkFNRX0gY2xhc3NOYW1lPXtbQ0xBU1NfTkFNRSwgYCR7Q0xBU1NfTkFNRX0tJHtzcGFuQ2xhc3N9YCwgJ25vcHJpbnQnXX0+XG5cdFx0XHRcdFx0e2NoaWxkcmVufVxuXHRcdFx0XHQ8L2Rpdj5cblx0XHRcdCl9XG5cdFx0PC8+XG5cdCk7XG59O1xuXG5pbnRlcmZhY2UgSW5kaWNhdG9yUHJvcHMge1xuXHRpY29uOiAnZ2xvYmUnIHwgJ2hlbHBOb3RpY2UnO1xuXHRpbmRpY2F0b3JUZXh0OiBzdHJpbmc7XG59XG5cbmNvbnN0IEluZGljYXRvciA9ICh7aWNvbiwgaW5kaWNhdG9yVGV4dH06IEluZGljYXRvclByb3BzKSA9PiB7XG5cdGNvbnN0IHRleHQ6IHN0cmluZyA9XG5cdFx0aWNvbiA9PT0gJ2dsb2JlJyA/IGdldE1lc3NhZ2UoJ0xvY2F0aW9uJykgKyBnZXRNZXNzYWdlKCc6JykgKyBpbmRpY2F0b3JUZXh0IDogKGluZGljYXRvclRleHQgPz8gJycpO1xuXG5cdHJldHVybiAoXG5cdFx0PD5cblx0XHRcdDxzcGFuIGNsYXNzTmFtZT17W0NMQVNTX05BTUVfSUNPTiwgYCR7Q0xBU1NfTkFNRV9JQ09OfS0ke2ljb259YF19IGFyaWEtbGFiZWw9e3RleHR9Pjwvc3Bhbj5cblx0XHRcdDxzcGFuIGNsYXNzTmFtZT17Q0xBU1NfTkFNRV9URVhUfT57dGV4dH08L3NwYW4+XG5cdFx0PC8+XG5cdCk7XG59O1xuXG5pbnRlcmZhY2UgRm9vdGVySWNvblByb3BzIHtcblx0c3BhbkNsYXNzOiBzdHJpbmc7XG5cdGljb246ICdnbG9iZScgfCAnaGVscE5vdGljZSc7XG5cdGluZGljYXRvclRleHQ6IHN0cmluZztcbn1cblxuY29uc3QgRm9vdGVySWNvbiA9ICh7aWNvbiwgc3BhbkNsYXNzLCBpbmRpY2F0b3JUZXh0fTogRm9vdGVySWNvblByb3BzKSA9PiAoXG5cdDxGb290ZXJOb3RpY2Ugc3BhbkNsYXNzPXtzcGFuQ2xhc3N9PlxuXHRcdDxJbmRpY2F0b3IgaWNvbj17aWNvbn0gaW5kaWNhdG9yVGV4dD17aW5kaWNhdG9yVGV4dH0gLz5cblx0PC9Gb290ZXJOb3RpY2U+XG4pO1xuXG5leHBvcnQge0Zvb3Rlckljb24sIHR5cGUgRm9vdGVySWNvblByb3BzfTtcbiIsICJpbXBvcnQge2xvY2FsaXplfSBmcm9tICdleHQuZ2FkZ2V0LmkxOG4nO1xuXG5jb25zdCBnZXRJMThuTWVzc2FnZXMgPSAoKSA9PiB7XG5cdHJldHVybiB7XG5cdFx0JzonOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJzogJyxcblx0XHRcdGphOiAn77yaJyxcblx0XHRcdHpoOiAn77yaJyxcblx0XHR9KSxcblx0XHRVbmtub3duOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ1Vua25vd24gTG9jYXRpb24nLFxuXHRcdFx0amE6ICfmnKrnn6VJUOWcsOWfnycsXG5cdFx0XHQnemgtaGFucyc6ICfmnKrnn6VJUOWxnuWcsCcsXG5cdFx0XHQnemgtaGFudCc6ICfmnKrnn6VJUOWxrOWcsCcsXG5cdFx0fSksXG5cdFx0TG9jYXRpb246IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnSVAgTG9jYXRpb24nLFxuXHRcdFx0amE6ICdJUOWcsOWfnycsXG5cdFx0XHQnemgtaGFucyc6ICdJUOWxnuWcsCcsXG5cdFx0XHQnemgtaGFudCc6ICdJUOWxrOWcsCcsXG5cdFx0fSksXG5cdH07XG59O1xuXG5jb25zdCBpMThuTWVzc2FnZXMgPSBnZXRJMThuTWVzc2FnZXMoKTtcblxuY29uc3QgZ2V0TWVzc2FnZTogR2V0TWVzc2FnZXM8dHlwZW9mIGkxOG5NZXNzYWdlcz4gPSAoa2V5KSA9PiB7XG5cdHJldHVybiBpMThuTWVzc2FnZXNba2V5XSB8fCBrZXk7XG59O1xuXG5leHBvcnQge2dldE1lc3NhZ2V9O1xuIiwgImltcG9ydCAqIGFzIE9QVElPTlMgZnJvbSAnLi4vLi4vb3B0aW9ucy5qc29uJztcbmltcG9ydCB7Rm9vdGVySWNvbiwgdHlwZSBGb290ZXJJY29uUHJvcHN9IGZyb20gJy4uL2NvbXBvbmVudHMvcmVhY3QnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ2V4dC5nYWRnZXQuSlNYJztcblxuY29uc3QgYXBwZW5kRm9vdGVyTm90aWNlID0gKGVsZW1lbnQ6IEVsZW1lbnQpID0+IHtcblx0Y29uc3QgbW91bnRQb2ludCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3I8SFRNTEVsZW1lbnQ+KE9QVElPTlMubW91bnRQb2ludFNlbGVjdG9yKTtcblxuXHRpZiAobW91bnRQb2ludCkge1xuXHRcdG1vdW50UG9pbnQucHJlcGVuZChlbGVtZW50KTtcblx0fVxufTtcblxuY29uc3QgYXBwZW5kSWNvbiA9ICh7aWNvbiwgaW5kaWNhdG9yVGV4dCwgc3BhbkNsYXNzfTogRm9vdGVySWNvblByb3BzKTogdm9pZCA9PiB7XG5cdGlmICghc3BhbkNsYXNzIHx8ICFpY29uIHx8ICFpbmRpY2F0b3JUZXh0KSB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0YXBwZW5kRm9vdGVyTm90aWNlKDxGb290ZXJJY29uIHNwYW5DbGFzcz17c3BhbkNsYXNzfSBpY29uPXtpY29ufSBpbmRpY2F0b3JUZXh0PXtpbmRpY2F0b3JUZXh0fSAvPik7XG59O1xuXG5leHBvcnQge2FwcGVuZEljb259O1xuIiwgImNvbnN0IGdldENvdW50cnlPckFyZWFOYW1lTGlzdCA9ICgpID0+IHtcblx0Y29uc3Qge3dnVXNlckxhbmd1YWdlfSA9IG13LmNvbmZpZy5nZXQoKTtcblxuXHRpZiAoWyd6aC1oYW50JywgJ3poLWhrJywgJ3poLW1vJ10uaW5jbHVkZXMod2dVc2VyTGFuZ3VhZ2UpKSB7XG5cdFx0cmV0dXJuIHtcblx0XHRcdEFGOiAn6Zi/5a+M5rGXJyxcblx0XHRcdEFYOiAn5aWn6JitJyxcblx0XHRcdEFMOiAn6Zi/54i+5be05bC85LqeJyxcblx0XHRcdERaOiAn6Zi/54i+5Y+K5Yip5LqeJyxcblx0XHRcdEFTOiAn576O5bGs6Jap5pGp5LqeJyxcblx0XHRcdEFEOiAn5a6J6YGT54i+Jyxcblx0XHRcdEFPOiAn5a6J5ZOl5ouJJyxcblx0XHRcdEFJOiAn5a6J5Zyt5ouJJyxcblx0XHRcdEFROiAn5Y2X5qW15rSyJyxcblx0XHRcdEFHOiAn5a6J5o+Q55Oc5ZKM5be05biD6YGUJyxcblx0XHRcdEFSOiAn6Zi/5qC55bu3Jyxcblx0XHRcdEFNOiAn5Lqe576O5bC85LqeJyxcblx0XHRcdEFXOiAn6Zi/6a2v5be0Jyxcblx0XHRcdEFVOiAn5r6z5rSyJyxcblx0XHRcdEFUOiAn5aWn5Zyw5YipJyxcblx0XHRcdEFaOiAn6Zi/5aGe5ouc55aGJyxcblx0XHRcdEJTOiAn5be05ZOI6aasJyxcblx0XHRcdEJIOiAn5be05p6XJyxcblx0XHRcdEJEOiAn5a2f5Yqg5ouJ5ZyLJyxcblx0XHRcdEJCOiAn5be05be05aSa5pavJyxcblx0XHRcdEJZOiAn55m95L+E576F5pavJyxcblx0XHRcdEJFOiAn5q+U5Yip5pmCJyxcblx0XHRcdEJaOiAn5Lyv5Yip6IyyJyxcblx0XHRcdEJKOiAn6LKd5a+nJyxcblx0XHRcdEJNOiAn55m+5oWV6YGUJyxcblx0XHRcdEJUOiAn5LiN5Li5Jyxcblx0XHRcdEJPOiAn54675Yip57at5LqeJyxcblx0XHRcdEJROiAn6I236Jit5Yqg5YuS5q+U5Y2AJyxcblx0XHRcdEJBOiAn5rOi6buRJyxcblx0XHRcdEJXOiAn5Y2a6Iyo55Om57SNJyxcblx0XHRcdEJWOiAn5biD6Z+L5bO2Jyxcblx0XHRcdEJSOiAn5be06KW/Jyxcblx0XHRcdElPOiAn6Iux5bGs5Y2w5bqm5rSL6aCY5ZywJyxcblx0XHRcdEJOOiAn5rG26JCKJyxcblx0XHRcdEJHOiAn5L+d5Yqg5Yip5LqeJyxcblx0XHRcdEJGOiAn5biD5Z+657SN5rOV57SiJyxcblx0XHRcdEJJOiAn5biD6ZqG6L+qJyxcblx0XHRcdENWOiAn5L2b5b6X6KeSJyxcblx0XHRcdEtIOiAn5p+s5Z+U5a+oJyxcblx0XHRcdENNOiAn5ZaA6bql6ZqGJyxcblx0XHRcdENBOiAn5Yqg5ou/5aSnJyxcblx0XHRcdEtZOiAn6ZaL5pu8576k5bO2Jyxcblx0XHRcdENGOiAn5Lit6Z2eJyxcblx0XHRcdFREOiAn5LmN5b6XJyxcblx0XHRcdENMOiAn5pm65YipJyxcblx0XHRcdENOOiAn5Lit5ZyLJyxcblx0XHRcdENYOiAn6IGW6KqV5bO2Jyxcblx0XHRcdENDOiAn56eR56eR5pav77yI5Z+65p6X77yJ576k5bO2Jyxcblx0XHRcdENPOiAn5ZOl5YCr5q+U5LqeJyxcblx0XHRcdEtNOiAn56eR5pGp576FJyxcblx0XHRcdENHOiAn5Ymb5p6c5YWx5ZKM5ZyLJyxcblx0XHRcdENEOiAn5Ymb5p6c5rCR5Li75YWx5ZKM5ZyLJyxcblx0XHRcdENLOiAn5bqr5YWL576k5bO2Jyxcblx0XHRcdENSOiAn5ZOl5pav6YGU6buO5YqgJyxcblx0XHRcdENJOiAn56eR54m56L+q55OmJyxcblx0XHRcdEhSOiAn5YWL576F5Zyw5LqeJyxcblx0XHRcdENVOiAn5Y+k5be0Jyxcblx0XHRcdENXOiAn5bqr5ouJ57SiJyxcblx0XHRcdENZOiAn5aGe5rWm6Lev5pavJyxcblx0XHRcdENaOiAn5o235YWLJyxcblx0XHRcdERLOiAn5Li56bqlJyxcblx0XHRcdERKOiAn5ZCJ5biD5o+QJyxcblx0XHRcdERNOiAn5aSa57Gz5bC85YWLJyxcblx0XHRcdERPOiAn5aSa57Gz5bC85YqgJyxcblx0XHRcdEVDOiAn5Y6E55Oc5aSa54i+Jyxcblx0XHRcdEVHOiAn5Z+D5Y+KJyxcblx0XHRcdFNWOiAn6Jap54i+55Om5aSaJyxcblx0XHRcdEdROiAn6LWk6YGT55W/5YWn5LqeJyxcblx0XHRcdEVSOiAn5Y6E56uL54m56YeM5LqeJyxcblx0XHRcdEVFOiAn5oSb5rKZ5bC85LqeJyxcblx0XHRcdFNaOiAn5pav5aiB5aOr6JitJyxcblx0XHRcdEVUOiAn5Z+D5aGe5L+E5q+U5LqeJyxcblx0XHRcdEZLOiAn56aP5YWL6Jit576k5bO2Jyxcblx0XHRcdEZPOiAn5rOV576F576k5bO2Jyxcblx0XHRcdEZKOiAn5paQ5r+fJyxcblx0XHRcdEZJOiAn6Iqs6JitJyxcblx0XHRcdEZSOiAn5rOV5ZyLJyxcblx0XHRcdEdGOiAn5rOV5bGs5Zyt5Lqe6YKjJyxcblx0XHRcdFBGOiAn5rOV5bGs5rOi5Yip5bC86KW/5LqeJyxcblx0XHRcdFRGOiAn5rOV5bGs5Y2X6YOo5ZKM5Y2X5qW16aCY5ZywJyxcblx0XHRcdEdBOiAn5Yqg6JOsJyxcblx0XHRcdEdNOiAn5bKh5q+U5LqeJyxcblx0XHRcdEdFOiAn5qC86a2v5ZCJ5LqeJyxcblx0XHRcdERFOiAn5b635ZyLJyxcblx0XHRcdEdIOiAn5Yqg57SNJyxcblx0XHRcdEdJOiAn55u05biD576F6ZmAJyxcblx0XHRcdEdSOiAn5biM6IeYJyxcblx0XHRcdEdMOiAn5qC86Zm16JitJyxcblx0XHRcdEdEOiAn5qC85p6X57SN6YGUJyxcblx0XHRcdEdQOiAn55Oc5b63576F5pmuJyxcblx0XHRcdEdVOiAn6Zec5bO2Jyxcblx0XHRcdEdUOiAn5Y2x5Zyw6aas5ouJJyxcblx0XHRcdEdHOiAn5qC56KW/Jyxcblx0XHRcdEdOOiAn55W/5YWn5LqeJyxcblx0XHRcdEdXOiAn55W/5YWn5Lqe5q+U57S5Jyxcblx0XHRcdEdZOiAn5Zyt5Lqe6YKjJyxcblx0XHRcdEhUOiAn5rW35ZywJyxcblx0XHRcdEhNOiAn6LWr5b635bO25ZKM6bql5YWL5ZSQ57SN576k5bO2Jyxcblx0XHRcdFZBOiAn5qK16JKC5bKhJyxcblx0XHRcdEhOOiAn5rSq6YO95ouJ5pavJyxcblx0XHRcdEhLOiAn5Lit5ZyL6aaZ5rivJyxcblx0XHRcdEhVOiAn5YyI54mZ5YipJyxcblx0XHRcdElTOiAn5Yaw5bO2Jyxcblx0XHRcdElOOiAn5Y2w5bqmJyxcblx0XHRcdElEOiAn5Y2w5bC8Jyxcblx0XHRcdElSOiAn5LyK5pyXJyxcblx0XHRcdElROiAn5LyK5ouJ5YWLJyxcblx0XHRcdElFOiAn5oSb54i+6JitJyxcblx0XHRcdElNOiAn5Lq65bO2Jyxcblx0XHRcdElMOiAn5Lul6Imy5YiXJyxcblx0XHRcdElUOiAn5oSP5aSn5YipJyxcblx0XHRcdEpNOiAn54mZ6LK35YqgJyxcblx0XHRcdEpQOiAn5pel5pysJyxcblx0XHRcdEpFOiAn5r6k6KW/Jyxcblx0XHRcdEpPOiAn57SE5pemJyxcblx0XHRcdEtaOiAn5ZOI6Jap5YWLJyxcblx0XHRcdEtFOiAn6IKv6ZuFJyxcblx0XHRcdEtJOiAn5Z+66YeM5be05pavJyxcblx0XHRcdEtQOiAn5YyX6Z+TJyxcblx0XHRcdEtSOiAn6Z+T5ZyLJyxcblx0XHRcdEtXOiAn56eR5aiB54m5Jyxcblx0XHRcdEtHOiAn5ZCJ54i+5ZCJ5pavJyxcblx0XHRcdExBOiAn6ICB5pK+Jyxcblx0XHRcdExWOiAn5ouJ6ISr57at5LqeJyxcblx0XHRcdExCOiAn6buO5be05aupJyxcblx0XHRcdExTOiAn6JCK57Si5omYJyxcblx0XHRcdExSOiAn5Yip5q+U6YeM5LqeJyxcblx0XHRcdExZOiAn5Yip5q+U5LqeJyxcblx0XHRcdExJOiAn5YiX5pSv5pWm5aOr55m7Jyxcblx0XHRcdExUOiAn56uL6Zm25a6bJyxcblx0XHRcdExVOiAn55un5qOu5aChJyxcblx0XHRcdE1POiAn5Lit5ZyL5r6z6ZaAJyxcblx0XHRcdE1HOiAn6aas6YGU5Yqg5pav5YqgJyxcblx0XHRcdE1XOiAn6aas5ouJ57atJyxcblx0XHRcdE1ZOiAn6aas5L6G6KW/5LqeJyxcblx0XHRcdE1WOiAn6aas54i+5Luj5aSrJyxcblx0XHRcdE1MOiAn6aas6YeMJyxcblx0XHRcdE1UOiAn6aas6ICz5LuWJyxcblx0XHRcdE1IOiAn6aas57S554i+576k5bO2Jyxcblx0XHRcdE1ROiAn6aas5o+Q5bC85YWLJyxcblx0XHRcdE1SOiAn5q+b6YeM5aGU5bC85LqeJyxcblx0XHRcdE1VOiAn5q+b6YeM6KOY5pavJyxcblx0XHRcdFlUOiAn6aas57SE54m5Jyxcblx0XHRcdE1YOiAn5aKo6KW/5ZOlJyxcblx0XHRcdEZNOiAn5a+G5YWL576F5bC86KW/5Lqe6IGv6YKmJyxcblx0XHRcdE1EOiAn5pGp54i+5aSa55OmJyxcblx0XHRcdE1DOiAn5pGp57SN5ZOlJyxcblx0XHRcdE1OOiAn6JKZ5Y+kJyxcblx0XHRcdE1FOiAn6buR5bGxJyxcblx0XHRcdE1TOiAn6JKZ54m55aGe5ouJ54m5Jyxcblx0XHRcdE1BOiAn5pGp5rSb5ZOlJyxcblx0XHRcdE1aOiAn6I6r5qGR5q+U5YWLJyxcblx0XHRcdE1NOiAn57es55S4Jyxcblx0XHRcdE5BOiAn57SN57Gz5q+U5LqeJyxcblx0XHRcdE5SOiAn55GZ6a2vJyxcblx0XHRcdE5QOiAn5bC85rOK54i+Jyxcblx0XHRcdE5MOiAn6I236JitJyxcblx0XHRcdE5DOiAn5paw5ZaA6YeM5aSa5bC85LqeJyxcblx0XHRcdE5aOiAn5paw6KW/6JitJyxcblx0XHRcdE5JOiAn5bC85Yqg5ouJ55OcJyxcblx0XHRcdE5FOiAn5bC85pel54i+Jyxcblx0XHRcdE5HOiAn5bC85pel5Yip5LqeJyxcblx0XHRcdE5VOiAn57SQ5Z+DJyxcblx0XHRcdE5GOiAn6Ku+56aP5YWL5bO2Jyxcblx0XHRcdE1LOiAn5YyX6aas5YW26aCTJyxcblx0XHRcdE1QOiAn5YyX6aas5Yip5a6J57SN576k5bO2Jyxcblx0XHRcdE5POiAn5oyq5aiBJyxcblx0XHRcdE9NOiAn6Zi/5pu8Jyxcblx0XHRcdFBLOiAn5be05Z+65pav5Z2mJyxcblx0XHRcdFBXOiAn5biV5YueJyxcblx0XHRcdFBTOiAn5be05YuS5pav5Z2mJyxcblx0XHRcdFBBOiAn5be05ou/6aasJyxcblx0XHRcdFBHOiAn5be05biD5Lqe5paw55W/5YWn5LqeJyxcblx0XHRcdFBZOiAn5be05ouJ5ZytJyxcblx0XHRcdFBFOiAn56eY6a2vJyxcblx0XHRcdFBIOiAn6I+y5b6L6LOTJyxcblx0XHRcdFBOOiAn55qu54m56IKv576k5bO2Jyxcblx0XHRcdFBMOiAn5rOi6JitJyxcblx0XHRcdFBUOiAn6JGh6JCE54mZJyxcblx0XHRcdFBSOiAn5rOi5aSa6buO5ZCEJyxcblx0XHRcdFFBOiAn5Y2h5aGU54i+Jyxcblx0XHRcdFJFOiAn55WZ5bC85rGqJyxcblx0XHRcdFJPOiAn576F6aas5bC85LqeJyxcblx0XHRcdFJVOiAn5L+E576F5pavJyxcblx0XHRcdFJXOiAn55un5pe66YGUJyxcblx0XHRcdEJMOiAn6IGW5be05rOw5YuS57GzJyxcblx0XHRcdFNIOiAn6IGW5rW35YCr5aic44CB6Zi/5qOu5p2+5ZKM54m56YeM5pav5Z2mLemBlOW6q+WwvOS6nicsXG5cdFx0XHRLTjogJ+iBluWfuuiMqOWSjOWwvOe2reaWrycsXG5cdFx0XHRMQzogJ+iBluebp+ilv+S6nicsXG5cdFx0XHRNRjogJ+azleWxrOiBlummrOS4gScsXG5cdFx0XHRQTTogJ+iBluearuWfg+eIvuWSjOWvhuWFi+mahicsXG5cdFx0XHRWQzogJ+iBluaWh+ajrueJueWSjOagvOael+e0jeS4geaWrycsXG5cdFx0XHRXUzogJ+iWqeaRqeS6nicsXG5cdFx0XHRTTTogJ+iBlummrOWKm+irvicsXG5cdFx0XHRTVDogJ+iBluWkmue+juWSjOaZruael+ilv+avlCcsXG5cdFx0XHRTQTogJ+aymeWcsOmYv+aLieS8rycsXG5cdFx0XHRTTjogJ+WhnuWFp+WKoOeIvicsXG5cdFx0XHRSUzogJ+WhnueIvue2reS6nicsXG5cdFx0XHRTQzogJ+WhnuiIjOeIvicsXG5cdFx0XHRTTDogJ+WhnuaLieWIqeaYgicsXG5cdFx0XHRTRzogJ+aWsOWKoOWdoScsXG5cdFx0XHRTWDogJ+iNt+WxrOiBlummrOS4gScsXG5cdFx0XHRTSzogJ+aWr+a0m+S8kOWFiycsXG5cdFx0XHRTSTogJ+aWr+a0m+aWh+WwvOS6nicsXG5cdFx0XHRTQjogJ+aJgOe+hemWgOe+pOWzticsXG5cdFx0XHRTTzogJ+e0oummrOmHjCcsXG5cdFx0XHRaQTogJ+WNl+mdnicsXG5cdFx0XHRHUzogJ+WNl+WWrOayu+S6nuWSjOWNl+ahkeWogeWlh+e+pOWzticsXG5cdFx0XHRTUzogJ+WNl+iYh+S4uScsXG5cdFx0XHRFUzogJ+ilv+ePreeJmScsXG5cdFx0XHRMSzogJ+aWr+mHjOiYreWNoScsXG5cdFx0XHRTRDogJ+iYh+S4uScsXG5cdFx0XHRTUjogJ+iYh+mHjOWNlycsXG5cdFx0XHRTSjogJ+aWr+eTpueIvuW3tOWSjOaPmummrOW7ticsXG5cdFx0XHRTRTogJ+eRnuWFuCcsXG5cdFx0XHRDSDogJ+eRnuWjqycsXG5cdFx0XHRTWTogJ+aVmOWIqeS6nicsXG5cdFx0XHRUVzogJ+S4reWci+iHuueBoycsXG5cdFx0XHRUSjogJ+WhlOWQieWFiycsXG5cdFx0XHRUWjogJ+WdpuahkeWwvOS6nicsXG5cdFx0XHRUSDogJ+azsOWciycsXG5cdFx0XHRUTDogJ+adseW4neaxticsXG5cdFx0XHRURzogJ+WkmuWTpScsXG5cdFx0XHRUSzogJ+aJmOWFi+WLnicsXG5cdFx0XHRUTzogJ+a5r+WKoCcsXG5cdFx0XHRUVDogJ+WNg+mHjOmBlOWSjOWkmuW3tOWTpScsXG5cdFx0XHRUTjogJ+eqgeWwvOilv+S6nicsXG5cdFx0XHRUUjogJ+Wcn+iAs+WFticsXG5cdFx0XHRUTTogJ+Wcn+W6q+abvCcsXG5cdFx0XHRUQzogJ+eJueWFi+aWr+WSjOWHseenkeaWr+e+pOWzticsXG5cdFx0XHRUVjogJ+WclueTpuebpycsXG5cdFx0XHRVRzogJ+eDj+W5sumBlCcsXG5cdFx0XHRVQTogJ+eDj+WFi+iYrScsXG5cdFx0XHRBRTogJ+mYv+iBr+mFiycsXG5cdFx0XHRHQjogJ+iLseWciycsXG5cdFx0XHRVUzogJ+e+juWciycsXG5cdFx0XHRVTTogJ+e+juWci+acrOWcn+WkluWwj+WztuW2vCcsXG5cdFx0XHRVWTogJ+eDj+aLieWcrScsXG5cdFx0XHRVWjogJ+eDj+iMsuWIpeWFiycsXG5cdFx0XHRWVTogJ+eTpuWKqumYv+WclicsXG5cdFx0XHRWRTogJ+WnlOWFp+eRnuaLiScsXG5cdFx0XHRWTjogJ+i2iuWNlycsXG5cdFx0XHRWRzogJ+iLseWxrOiZleWls+e+pOWzticsXG5cdFx0XHRWSTogJ+e+juWxrOiZleWls+e+pOWzticsXG5cdFx0XHRXRjogJ+eTpuWIqeaWr+WSjOWvjOWclue0jScsXG5cdFx0XHRFSDogJ+ilv+aSkuWTiOaLiScsXG5cdFx0XHRZRTogJ+S5n+mWgCcsXG5cdFx0XHRaTTogJ+i0iuavlOS6nicsXG5cdFx0XHRaVzogJ+a0peW3tOW4g+mfiycsXG5cdFx0fTtcblx0fSBlbHNlIGlmIChbJ3poLXR3J10uaW5jbHVkZXMod2dVc2VyTGFuZ3VhZ2UpKSB7XG5cdFx0cmV0dXJuIHtcblx0XHRcdEFGOiAn6Zi/5a+M5rGXJyxcblx0XHRcdEFYOiAn5aWn6JitJyxcblx0XHRcdEFMOiAn6Zi/54i+5be05bC85LqeJyxcblx0XHRcdERaOiAn6Zi/54i+5Y+K5Yip5LqeJyxcblx0XHRcdEFTOiAn576O5bGs6Jap5pGp5LqeJyxcblx0XHRcdEFEOiAn5a6J6YGT54i+Jyxcblx0XHRcdEFPOiAn5a6J5ZOl5ouJJyxcblx0XHRcdEFJOiAn5a6J5Zyt5ouJJyxcblx0XHRcdEFROiAn5Y2X5qW15rSyJyxcblx0XHRcdEFHOiAn5a6J5Zyw5Y2h5Y+K5be05biD6YGUJyxcblx0XHRcdEFSOiAn6Zi/5qC55bu3Jyxcblx0XHRcdEFNOiAn5Lqe576O5bC85LqeJyxcblx0XHRcdEFXOiAn6Zi/6a2v5be0Jyxcblx0XHRcdEFVOiAn5r6z5rSyJyxcblx0XHRcdEFUOiAn5aWn5Zyw5YipJyxcblx0XHRcdEFaOiAn5Lqe5aGe5ouc54S2Jyxcblx0XHRcdEJTOiAn5be05ZOI6aasJyxcblx0XHRcdEJIOiAn5be05p6XJyxcblx0XHRcdEJEOiAn5a2f5Yqg5ouJ5ZyLJyxcblx0XHRcdEJCOiAn5be06LKd5aSaJyxcblx0XHRcdEJZOiAn55m95L+E576F5pavJyxcblx0XHRcdEJFOiAn5q+U5Yip5pmCJyxcblx0XHRcdEJaOiAn6LKd6YeM5pavJyxcblx0XHRcdEJKOiAn6LKd5Y2XJyxcblx0XHRcdEJNOiAn55m+5oWV6YGUJyxcblx0XHRcdEJUOiAn5LiN5Li5Jyxcblx0XHRcdEJPOiAn54675Yip57at5LqeJyxcblx0XHRcdEJROiAn6I236Jit5Yqg5YuS5q+U5Y2AJyxcblx0XHRcdEJBOiAn5rOi6LWrJyxcblx0XHRcdEJXOiAn5rOi5pyt6YKjJyxcblx0XHRcdEJWOiAn5biD6Z+L5bO2Jyxcblx0XHRcdEJSOiAn5be06KW/Jyxcblx0XHRcdElPOiAn6Iux5bGs5Y2w5bqm5rSL6aCY5ZywJyxcblx0XHRcdEJOOiAn5rG26JCKJyxcblx0XHRcdEJHOiAn5L+d5Yqg5Yip5LqeJyxcblx0XHRcdEJGOiAn5biD5ZCJ57SN5rOV57SiJyxcblx0XHRcdEJJOiAn6JKy6ZqG5ZywJyxcblx0XHRcdENWOiAn57at5b636KeSJyxcblx0XHRcdEtIOiAn5p+s5Z+U5a+oJyxcblx0XHRcdENNOiAn5ZaA6bql6ZqGJyxcblx0XHRcdENBOiAn5Yqg5ou/5aSnJyxcblx0XHRcdEtZOiAn6ZaL5pu8576k5bO2Jyxcblx0XHRcdENGOiAn5Lit6Z2eJyxcblx0XHRcdFREOiAn5p+l5b63Jyxcblx0XHRcdENMOiAn5pm65YipJyxcblx0XHRcdENOOiAn5Lit5ZyLJyxcblx0XHRcdENYOiAn6IGW6KqV5bO2Jyxcblx0XHRcdENDOiAn56eR56eR5pav77yI5Z+65p6X77yJ576k5bO2Jyxcblx0XHRcdENPOiAn5ZOl5YCr5q+U5LqeJyxcblx0XHRcdEtNOiAn6JGb5pGpJyxcblx0XHRcdENHOiAn5Ymb5p6c5YWx5ZKM5ZyLJyxcblx0XHRcdENEOiAn5Ymb5p6c5rCR5Li75YWx5ZKM5ZyLJyxcblx0XHRcdENLOiAn5bqr5YWL576k5bO2Jyxcblx0XHRcdENSOiAn5ZOl5pav5aSn6buO5YqgJyxcblx0XHRcdENJOiAn6LGh54mZ5rW35bK4Jyxcblx0XHRcdEhSOiAn5YWL576F5Z+D6KW/5LqeJyxcblx0XHRcdENVOiAn5Y+k5be0Jyxcblx0XHRcdENXOiAn5Y+k5ouJ57SiJyxcblx0XHRcdENZOiAn6LO95pmu5YuS5pavJyxcblx0XHRcdENaOiAn5o235YWLJyxcblx0XHRcdERLOiAn5Li56bqlJyxcblx0XHRcdERKOiAn5ZCJ5biD5ZywJyxcblx0XHRcdERNOiAn5aSa57Gz5bC85YWLJyxcblx0XHRcdERPOiAn5aSa5piO5bC85YqgJyxcblx0XHRcdEVDOiAn5Y6E55Oc5aSaJyxcblx0XHRcdEVHOiAn5Z+D5Y+KJyxcblx0XHRcdFNWOiAn6Jap54i+55Om5aSaJyxcblx0XHRcdEdROiAn6LWk6YGT5bm+5YWn5LqeJyxcblx0XHRcdEVSOiAn5Y6E5Yip5Z6C5LqeJyxcblx0XHRcdEVFOiAn5oSb5rKZ5bC85LqeJyxcblx0XHRcdFNaOiAn5Y+y55Om5bid5bC8Jyxcblx0XHRcdEVUOiAn6KGj57Si5q+U5LqeJyxcblx0XHRcdEZLOiAn56aP5YWL6Jit576k5bO2Jyxcblx0XHRcdEZPOiAn5rOV576F576k5bO2Jyxcblx0XHRcdEZKOiAn5paQ5r+fJyxcblx0XHRcdEZJOiAn6Iqs6JitJyxcblx0XHRcdEZSOiAn5rOV5ZyLJyxcblx0XHRcdEdGOiAn5rOV5bGs5Zyt5Lqe6YKjJyxcblx0XHRcdFBGOiAn5rOV5bGs54676YeM5bC86KW/5LqeJyxcblx0XHRcdFRGOiAn5rOV5bGs5Y2X6YOo5ZKM5Y2X5qW16aCY5ZywJyxcblx0XHRcdEdBOiAn5Yqg5b2tJyxcblx0XHRcdEdNOiAn55SY5q+U5LqeJyxcblx0XHRcdEdFOiAn5Zas5rK75LqeJyxcblx0XHRcdERFOiAn5b635ZyLJyxcblx0XHRcdEdIOiAn6L+m57SNJyxcblx0XHRcdEdJOiAn55u05biD576F6ZmAJyxcblx0XHRcdEdSOiAn5biM6IeYJyxcblx0XHRcdEdMOiAn5qC86Zm16JitJyxcblx0XHRcdEdEOiAn5qC855Ge6YKj6YGUJyxcblx0XHRcdEdQOiAn55Oc5b63576F5pmuJyxcblx0XHRcdEdVOiAn6Zec5bO2Jyxcblx0XHRcdEdUOiAn55Oc5Zyw6aas5ouJJyxcblx0XHRcdEdHOiAn5qC56KW/Jyxcblx0XHRcdEdOOiAn5bm+5YWn5LqeJyxcblx0XHRcdEdXOiAn5bm+5YWn5Lqe5q+U57SiJyxcblx0XHRcdEdZOiAn6JOL5Lqe6YKjJyxcblx0XHRcdEhUOiAn5rW35ZywJyxcblx0XHRcdEhNOiAn6LWr5b635bO25ZKM6bql5YWL5ZSQ57SN576k5bO2Jyxcblx0XHRcdFZBOiAn5qK16JKC5bKhJyxcblx0XHRcdEhOOiAn5a6P6YO95ouJ5pavJyxcblx0XHRcdEhLOiAn5Lit5ZyL6aaZ5rivJyxcblx0XHRcdEhVOiAn5YyI54mZ5YipJyxcblx0XHRcdElTOiAn5Yaw5bO2Jyxcblx0XHRcdElOOiAn5Y2w5bqmJyxcblx0XHRcdElEOiAn5Y2w5bC8Jyxcblx0XHRcdElSOiAn5LyK5pyXJyxcblx0XHRcdElROiAn5LyK5ouJ5YWLJyxcblx0XHRcdElFOiAn5oSb54i+6JitJyxcblx0XHRcdElNOiAn5pu85bO2Jyxcblx0XHRcdElMOiAn5Lul6Imy5YiXJyxcblx0XHRcdElUOiAn576p5aSn5YipJyxcblx0XHRcdEpNOiAn54mZ6LK35YqgJyxcblx0XHRcdEpQOiAn5pel5pysJyxcblx0XHRcdEpFOiAn5r6k6KW/Jyxcblx0XHRcdEpPOiAn57SE5pemJyxcblx0XHRcdEtaOiAn5ZOI6Jap5YWLJyxcblx0XHRcdEtFOiAn6IKv5LqeJyxcblx0XHRcdEtJOiAn5ZCJ6YeM5be05pavJyxcblx0XHRcdEtQOiAn5YyX6Z+TJyxcblx0XHRcdEtSOiAn6Z+T5ZyLJyxcblx0XHRcdEtXOiAn56eR5aiB54m5Jyxcblx0XHRcdEtHOiAn5ZCJ54i+5ZCJ5pavJyxcblx0XHRcdExBOiAn6ICB5pK+Jyxcblx0XHRcdExWOiAn5ouJ6ISr57at5LqeJyxcblx0XHRcdExCOiAn6buO5be05aupJyxcblx0XHRcdExTOiAn6LO057Si5omYJyxcblx0XHRcdExSOiAn6LO05q+U55Ge5LqeJyxcblx0XHRcdExZOiAn5Yip5q+U5LqeJyxcblx0XHRcdExJOiAn5YiX5pSv5pWm5pav55m7Jyxcblx0XHRcdExUOiAn56uL6Zm25a6bJyxcblx0XHRcdExVOiAn55un5qOu5aChJyxcblx0XHRcdE1POiAn5Lit5ZyL5r6z6ZaAJyxcblx0XHRcdE1HOiAn6aas6YGU5Yqg5pav5YqgJyxcblx0XHRcdE1XOiAn6aas5ouJ5aiBJyxcblx0XHRcdE1ZOiAn6aas5L6G6KW/5LqeJyxcblx0XHRcdE1WOiAn6aas54i+5Zyw5aSrJyxcblx0XHRcdE1MOiAn6aas6YeMJyxcblx0XHRcdE1UOiAn6aas54i+5LuWJyxcblx0XHRcdE1IOiAn6aas57S554i+576k5bO2Jyxcblx0XHRcdE1ROiAn6aas5o+Q5bC85YWLJyxcblx0XHRcdE1SOiAn6IyF5Yip5aGU5bC85LqeJyxcblx0XHRcdE1VOiAn5qih6YeM6KW/5pavJyxcblx0XHRcdFlUOiAn6aas57SE54m5Jyxcblx0XHRcdE1YOiAn5aKo6KW/5ZOlJyxcblx0XHRcdEZNOiAn5a+G5YWL576F5bC86KW/5Lqe6IGv6YKmJyxcblx0XHRcdE1EOiAn5pGp54i+5aSa55OmJyxcblx0XHRcdE1DOiAn5pGp57SN5ZOlJyxcblx0XHRcdE1OOiAn6JKZ5Y+kJyxcblx0XHRcdE1FOiAn6JKZ54m55YWn5ZOl576FJyxcblx0XHRcdE1TOiAn6JKZ5ZOy6IeYJyxcblx0XHRcdE1BOiAn5pGp5rSb5ZOlJyxcblx0XHRcdE1aOiAn6I6r5LiJ5q+U5YWLJyxcblx0XHRcdE1NOiAn57es55S4Jyxcblx0XHRcdE5BOiAn57SN57Gz5q+U5LqeJyxcblx0XHRcdE5SOiAn6Ku+6a2vJyxcblx0XHRcdE5QOiAn5bC85rOK54i+Jyxcblx0XHRcdE5MOiAn6I236JitJyxcblx0XHRcdE5DOiAn5paw5ZaA6YeM5aSa5bC85LqeJyxcblx0XHRcdE5aOiAn57SQ6KW/6JitJyxcblx0XHRcdE5JOiAn5bC85Yqg5ouJ55OcJyxcblx0XHRcdE5FOiAn5bC85pelJyxcblx0XHRcdE5HOiAn5aWI5Y+K5Yip5LqeJyxcblx0XHRcdE5VOiAn57SQ5Z+DJyxcblx0XHRcdE5GOiAn6Ku+56aP5YWL5bO2Jyxcblx0XHRcdE1LOiAn5YyX6aas5YW26aCTJyxcblx0XHRcdE1QOiAn5YyX6aas5Yip5a6J57SN576k5bO2Jyxcblx0XHRcdE5POiAn5oyq5aiBJyxcblx0XHRcdE9NOiAn6Zi/5pu8Jyxcblx0XHRcdFBLOiAn5be05Z+65pav5Z2mJyxcblx0XHRcdFBXOiAn5bib55CJJyxcblx0XHRcdFBTOiAn5be05YuS5pav5Z2mJyxcblx0XHRcdFBBOiAn5be05ou/6aasJyxcblx0XHRcdFBHOiAn5be05biD5Lqe57SQ5bm+5YWn5LqeJyxcblx0XHRcdFBZOiAn5be05ouJ5ZytJyxcblx0XHRcdFBFOiAn56eY6a2vJyxcblx0XHRcdFBIOiAn6I+y5b6L6LOTJyxcblx0XHRcdFBOOiAn55qu54m56IKv576k5bO2Jyxcblx0XHRcdFBMOiAn5rOi6JitJyxcblx0XHRcdFBUOiAn6JGh6JCE54mZJyxcblx0XHRcdFBSOiAn5rOi5aSa6buO5ZCEJyxcblx0XHRcdFFBOiAn5Y2h6YGUJyxcblx0XHRcdFJFOiAn55WZ5bC85pe6Jyxcblx0XHRcdFJPOiAn576F6aas5bC85LqeJyxcblx0XHRcdFJVOiAn5L+E576F5pavJyxcblx0XHRcdFJXOiAn55un5a6J6YGUJyxcblx0XHRcdEJMOiAn6IGW5be05rOw5YuS57GzJyxcblx0XHRcdFNIOiAn6IGW5rW36JOu5aic44CB6Zi/5qOu5p2+5ZKM54m56YeM5pav5Z2mLemBlOW6q+WwvOS6nicsXG5cdFx0XHRLTjogJ+iBluWFi+mHjOaWr+Wkmuemj+WPiuWwvOe2reaWrycsXG5cdFx0XHRMQzogJ+iBlumcsuilv+S6nicsXG5cdFx0XHRNRjogJ+azleWxrOiBlummrOS4gScsXG5cdFx0XHRQTTogJ+iBluearuiAtuiIh+WvhuWFi+mahicsXG5cdFx0XHRWQzogJ+iBluaWh+ajruWPiuagvOeRnumCo+S4gScsXG5cdFx0XHRXUzogJ+iWqeaRqeS6nicsXG5cdFx0XHRTTTogJ+iBlummrOWIqeirvicsXG5cdFx0XHRTVDogJ+iBluWkmue+juaZruael+ilv+avlCcsXG5cdFx0XHRTQTogJ+aymeeDj+WcsOmYv+aLieS8rycsXG5cdFx0XHRTTjogJ+WhnuWFp+WKoOeIvicsXG5cdFx0XHRSUzogJ+WhnueIvue2reS6nicsXG5cdFx0XHRTQzogJ+WhnuW4reeIvicsXG5cdFx0XHRTTDogJ+eNheWtkOWxsScsXG5cdFx0XHRTRzogJ+aWsOWKoOWdoScsXG5cdFx0XHRTWDogJ+iNt+WxrOiBlummrOS4gScsXG5cdFx0XHRTSzogJ+aWr+a0m+S8kOWFiycsXG5cdFx0XHRTSTogJ+aWr+a0m+e2reWwvOS6nicsXG5cdFx0XHRTQjogJ+e0oue+hemWgOe+pOWzticsXG5cdFx0XHRTTzogJ+e0oummrOWIqeS6nicsXG5cdFx0XHRaQTogJ+WNl+mdnicsXG5cdFx0XHRHUzogJ+WNl+WWrOayu+S6nuWSjOWNl+ahkeWogeWlh+e+pOWzticsXG5cdFx0XHRTUzogJ+WNl+iYh+S4uScsXG5cdFx0XHRFUzogJ+ilv+ePreeJmScsXG5cdFx0XHRMSzogJ+aWr+mHjOiYreWNoScsXG5cdFx0XHRTRDogJ+iYh+S4uScsXG5cdFx0XHRTUjogJ+iYh+WIqeWNlycsXG5cdFx0XHRTSjogJ+aWr+eTpueIvuW3tOWSjOaPmummrOW7ticsXG5cdFx0XHRTRTogJ+eRnuWFuCcsXG5cdFx0XHRDSDogJ+eRnuWjqycsXG5cdFx0XHRTWTogJ+aVmOWIqeS6nicsXG5cdFx0XHRUVzogJ+S4reWci+iHuueBoycsXG5cdFx0XHRUSjogJ+WhlOWQieWFiycsXG5cdFx0XHRUWjogJ+WdpuWwmuWwvOS6nicsXG5cdFx0XHRUSDogJ+azsOWciycsXG5cdFx0XHRUTDogJ+adseW4neaxticsXG5cdFx0XHRURzogJ+WkmuWTpScsXG5cdFx0XHRUSzogJ+aJmOWFi+WLnicsXG5cdFx0XHRUTzogJ+adseWKoCcsXG5cdFx0XHRUVDogJ+WNg+mHjOmBlOWPiuaJmOW3tOWTpScsXG5cdFx0XHRUTjogJ+eqgeWwvOilv+S6nicsXG5cdFx0XHRUUjogJ+Wcn+iAs+WFticsXG5cdFx0XHRUTTogJ+Wcn+W6q+abvCcsXG5cdFx0XHRUQzogJ+Wcn+WFi+WHseWPr+e+pOWzticsXG5cdFx0XHRUVjogJ+WQkOeTpumtrycsXG5cdFx0XHRVRzogJ+eDj+W5sumBlCcsXG5cdFx0XHRVQTogJ+eDj+WFi+iYrScsXG5cdFx0XHRBRTogJ+mYv+iBrycsXG5cdFx0XHRHQjogJ+iLseWciycsXG5cdFx0XHRVUzogJ+e+juWciycsXG5cdFx0XHRVTTogJ+e+juWci+acrOWcn+WkluWwj+WztuW2vCcsXG5cdFx0XHRVWTogJ+eDj+aLieWcrScsXG5cdFx0XHRVWjogJ+eDj+iMsuWIpeWFiycsXG5cdFx0XHRWVTogJ+iQrOmCo+adnCcsXG5cdFx0XHRWRTogJ+WnlOWFp+eRnuaLiScsXG5cdFx0XHRWTjogJ+i2iuWNlycsXG5cdFx0XHRWRzogJ+iLseWxrOe2reS6rOe+pOWzticsXG5cdFx0XHRWSTogJ+e+juWxrOe2reS6rOe+pOWzticsXG5cdFx0XHRXRjogJ+eTpuWIqeaWr+WSjOWvjOWclue0jScsXG5cdFx0XHRFSDogJ+ilv+aSkuWTiOaLiScsXG5cdFx0XHRZRTogJ+iRiemWgCcsXG5cdFx0XHRaTTogJ+WwmuavlOS6nicsXG5cdFx0XHRaVzogJ+i+m+W3tOWogScsXG5cdFx0fTtcblx0fSBlbHNlIGlmIChbJ3poLW15JywgJ3poLXNnJ10uaW5jbHVkZXMod2dVc2VyTGFuZ3VhZ2UpKSB7XG5cdFx0cmV0dXJuIHtcblx0XHRcdEFGOiAn6Zi/5a+M5rGXJyxcblx0XHRcdEFYOiAn5aWl5YWwJyxcblx0XHRcdEFMOiAn6Zi/5bCU5be05bC85LqaJyxcblx0XHRcdERaOiAn6Zi/5bCU5Y+K5Yip5LqaJyxcblx0XHRcdEFTOiAn576O5bGe6JCo5pGp5LqaJyxcblx0XHRcdEFEOiAn5a6J6YGT5bCUJyxcblx0XHRcdEFPOiAn5a6J5ZOl5ouJJyxcblx0XHRcdEFJOiAn5a6J5Zyt5ouJJyxcblx0XHRcdEFROiAn5Y2X5p6B5rSyJyxcblx0XHRcdEFHOiAn5a6J5o+Q55Oc5ZKM5be05biD6L6+Jyxcblx0XHRcdEFSOiAn6Zi/5qC55bu3Jyxcblx0XHRcdEFNOiAn5Lqa576O5bC85LqaJyxcblx0XHRcdEFXOiAn6Zi/6bKB5be0Jyxcblx0XHRcdEFVOiAn5r6z5aSn5Yip5LqaJyxcblx0XHRcdEFUOiAn5aWl5Zyw5YipJyxcblx0XHRcdEFaOiAn6Zi/5aGe5ouc55aGJyxcblx0XHRcdEJTOiAn5be05ZOI6amsJyxcblx0XHRcdEJIOiAn5be05p6XJyxcblx0XHRcdEJEOiAn5a2f5Yqg5ouJ5Zu9Jyxcblx0XHRcdEJCOiAn5be05be05aSa5pavJyxcblx0XHRcdEJZOiAn55m95L+E572X5pavJyxcblx0XHRcdEJFOiAn5q+U5Yip5pe2Jyxcblx0XHRcdEJaOiAn5Lyv5Yip5YW5Jyxcblx0XHRcdEJKOiAn6LSd5a6BJyxcblx0XHRcdEJNOiAn55m+5oWV5aSnJyxcblx0XHRcdEJUOiAn5LiN5Li5Jyxcblx0XHRcdEJPOiAn54675Yip57u05LqaJyxcblx0XHRcdEJROiAn6I235YWw5Yqg5YuS5q+U5Yy6Jyxcblx0XHRcdEJBOiAn5rOi6buRJyxcblx0XHRcdEJXOiAn5Y2a6Iyo55Om57qzJyxcblx0XHRcdEJWOiAn5biD6Z+m5bKbJyxcblx0XHRcdEJSOiAn5be06KW/Jyxcblx0XHRcdElPOiAn6Iux5bGe5Y2w5bqm5rSL6aKG5ZywJyxcblx0XHRcdEJOOiAn5rG26I6xJyxcblx0XHRcdEJHOiAn5L+d5Yqg5Yip5LqaJyxcblx0XHRcdEJGOiAn5biD5Z+657qz5rOV57SiJyxcblx0XHRcdEJJOiAn5biD6ZqG6L+qJyxcblx0XHRcdENWOiAn5L2b5b6X6KeSJyxcblx0XHRcdEtIOiAn5p+s5Z+U5a+oJyxcblx0XHRcdENNOiAn5ZaA6bqm6ZqGJyxcblx0XHRcdENBOiAn5Yqg5ou/5aSnJyxcblx0XHRcdEtZOiAn5byA5pu8576k5bKbJyxcblx0XHRcdENGOiAn5Lit6Z2eJyxcblx0XHRcdFREOiAn5LmN5b6XJyxcblx0XHRcdENMOiAn5pm65YipJyxcblx0XHRcdENOOiAn5Lit5Zu9Jyxcblx0XHRcdENYOiAn5Zyj6K+e5bKbJyxcblx0XHRcdENDOiAn56eR56eR5pav77yI5Z+65p6X77yJ576k5bKbJyxcblx0XHRcdENPOiAn5ZOl5Lym5q+U5LqaJyxcblx0XHRcdEtNOiAn56eR5pGp572XJyxcblx0XHRcdENHOiAn5Yia5p6c5YWx5ZKM5Zu9Jyxcblx0XHRcdENEOiAn5Yia5p6c5rCR5Li75YWx5ZKM5Zu9Jyxcblx0XHRcdENLOiAn5bqT5YWL576k5bKbJyxcblx0XHRcdENSOiAn5ZOl5pav6L6+6buO5YqgJyxcblx0XHRcdENJOiAn6LGh54mZ5rW35bK4Jyxcblx0XHRcdEhSOiAn5YWL572X5Zyw5LqaJyxcblx0XHRcdENVOiAn5Y+k5be0Jyxcblx0XHRcdENXOiAn5bqT5ouJ57SiJyxcblx0XHRcdENZOiAn5aGe5rWm6Lev5pavJyxcblx0XHRcdENaOiAn5o235YWLJyxcblx0XHRcdERLOiAn5Li56bqmJyxcblx0XHRcdERKOiAn5ZCJ5biD5o+QJyxcblx0XHRcdERNOiAn5aSa57Gz5bC85YWLJyxcblx0XHRcdERPOiAn5aSa57Gz5bC85YqgJyxcblx0XHRcdEVDOiAn5Y6E55Oc5aSa5bCUJyxcblx0XHRcdEVHOiAn5Z+D5Y+KJyxcblx0XHRcdFNWOiAn6JCo5bCU55Om5aSaJyxcblx0XHRcdEdROiAn6LWk6YGT5Yeg5YaF5LqaJyxcblx0XHRcdEVSOiAn5Y6E56uL54m56YeM5LqaJyxcblx0XHRcdEVFOiAn54ix5rKZ5bC85LqaJyxcblx0XHRcdFNaOiAn5pav5aiB5aOr5YWwJyxcblx0XHRcdEVUOiAn5Z+D5aGe5L+E5q+U5LqaJyxcblx0XHRcdEZLOiAn56aP5YWL5YWw576k5bKbJyxcblx0XHRcdEZPOiAn5rOV572X576k5bKbJyxcblx0XHRcdEZKOiAn5paQ5rWOJyxcblx0XHRcdEZJOiAn6Iqs5YWwJyxcblx0XHRcdEZSOiAn5rOV5Zu9Jyxcblx0XHRcdEdGOiAn5rOV5bGe5Zyt5Lqa6YKjJyxcblx0XHRcdFBGOiAn5rOV5bGe5rOi5Yip5bC86KW/5LqaJyxcblx0XHRcdFRGOiAn5rOV5bGe5Y2X6YOo5ZKM5Y2X5p6B6aKG5ZywJyxcblx0XHRcdEdBOiAn5Yqg6JOsJyxcblx0XHRcdEdNOiAn5YaI5q+U5LqaJyxcblx0XHRcdEdFOiAn5qC86bKB5ZCJ5LqaJyxcblx0XHRcdERFOiAn5b635Zu9Jyxcblx0XHRcdEdIOiAn5Yqg57qzJyxcblx0XHRcdEdJOiAn55u05biD572X6ZmAJyxcblx0XHRcdEdSOiAn5biM6IWKJyxcblx0XHRcdEdMOiAn5qC86Zm15YWwJyxcblx0XHRcdEdEOiAn5qC85p6X57qz6L6+Jyxcblx0XHRcdEdQOiAn55Oc5b63572X5pmuJyxcblx0XHRcdEdVOiAn5YWz5bKbJyxcblx0XHRcdEdUOiAn5Y2x5Zyw6ams5ouJJyxcblx0XHRcdEdHOiAn5qC56KW/Jyxcblx0XHRcdEdOOiAn5Yeg5YaF5LqaJyxcblx0XHRcdEdXOiAn5Yeg5YaF5Lqa5q+U57uNJyxcblx0XHRcdEdZOiAn5Zyt5Lqa6YKjJyxcblx0XHRcdEhUOiAn5rW35ZywJyxcblx0XHRcdEhNOiAn6LWr5b635bKb5ZKM6bqm5YWL5ZSQ57qz576k5bKbJyxcblx0XHRcdFZBOiAn5qK16JKC5YaIJyxcblx0XHRcdEhOOiAn5rSq6YO95ouJ5pavJyxcblx0XHRcdEhLOiAn5Lit5Zu96aaZ5rivJyxcblx0XHRcdEhVOiAn5YyI54mZ5YipJyxcblx0XHRcdElTOiAn5Yaw5bKbJyxcblx0XHRcdElOOiAn5Y2w5bqmJyxcblx0XHRcdElEOiAn5Y2w5bC8Jyxcblx0XHRcdElSOiAn5LyK5pyXJyxcblx0XHRcdElROiAn5LyK5ouJ5YWLJyxcblx0XHRcdElFOiAn54ix5bCU5YWwJyxcblx0XHRcdElNOiAn6ams5oGp5bKbJyxcblx0XHRcdElMOiAn5Lul6Imy5YiXJyxcblx0XHRcdElUOiAn5oSP5aSn5YipJyxcblx0XHRcdEpNOiAn54mZ5Lmw5YqgJyxcblx0XHRcdEpQOiAn5pel5pysJyxcblx0XHRcdEpFOiAn5rO96KW/Jyxcblx0XHRcdEpPOiAn57qm5pemJyxcblx0XHRcdEtaOiAn5ZOI6JCo5YWL5pav5Z2mJyxcblx0XHRcdEtFOiAn6IKv5bC85LqaJyxcblx0XHRcdEtJOiAn5Z+66YeM5be05pavJyxcblx0XHRcdEtQOiAn5YyX6Z+pJyxcblx0XHRcdEtSOiAn6Z+p5Zu9Jyxcblx0XHRcdEtXOiAn56eR5aiB54m5Jyxcblx0XHRcdEtHOiAn5ZCJ5bCU5ZCJ5pav5pav5Z2mJyxcblx0XHRcdExBOiAn6ICB5oydJyxcblx0XHRcdExWOiAn5ouJ6ISx57u05LqaJyxcblx0XHRcdExCOiAn6buO5be05aupJyxcblx0XHRcdExTOiAn6I6x57Si5omYJyxcblx0XHRcdExSOiAn5Yip5q+U6YeM5LqaJyxcblx0XHRcdExZOiAn5Yip5q+U5LqaJyxcblx0XHRcdExJOiAn5YiX5pSv5pWm5aOr55m7Jyxcblx0XHRcdExUOiAn56uL6Zm25a6bJyxcblx0XHRcdExVOiAn5Y2i5qOu5aChJyxcblx0XHRcdE1POiAn5Lit5Zu95r6z6ZeoJyxcblx0XHRcdE1HOiAn6ams6L6+5Yqg5pav5YqgJyxcblx0XHRcdE1XOiAn6ams5ouJ57u0Jyxcblx0XHRcdE1ZOiAn6ams5p2l6KW/5LqaJyxcblx0XHRcdE1WOiAn6ams5bCU5Luj5aSrJyxcblx0XHRcdE1MOiAn6ams6YeMJyxcblx0XHRcdE1UOiAn6ams6ICz5LuWJyxcblx0XHRcdE1IOiAn6ams57uN5bCU576k5bKbJyxcblx0XHRcdE1ROiAn6ams5o+Q5bC85YWLJyxcblx0XHRcdE1SOiAn5q+b6YeM5aGU5bC85LqaJyxcblx0XHRcdE1VOiAn5q+b6YeM5rGC5pavJyxcblx0XHRcdFlUOiAn6ams57qm54m5Jyxcblx0XHRcdE1YOiAn5aKo6KW/5ZOlJyxcblx0XHRcdEZNOiAn5a+G5YWL572X5bC86KW/5Lqa6IGU6YKmJyxcblx0XHRcdE1EOiAn5pGp5bCU5aSa55OmJyxcblx0XHRcdE1DOiAn5pGp57qz5ZOlJyxcblx0XHRcdE1OOiAn6JKZ5Y+kJyxcblx0XHRcdE1FOiAn6buR5bGxJyxcblx0XHRcdE1TOiAn6JKZ54m55aGe5ouJ54m5Jyxcblx0XHRcdE1BOiAn5pGp5rSb5ZOlJyxcblx0XHRcdE1aOiAn6I6r5qGR5q+U5YWLJyxcblx0XHRcdE1NOiAn57yF55S4Jyxcblx0XHRcdE5BOiAn6YKj57Gz5q+U5LqaJyxcblx0XHRcdE5SOiAn55GZ6bKBJyxcblx0XHRcdE5QOiAn5bC85rOK5bCUJyxcblx0XHRcdE5MOiAn6I235YWwJyxcblx0XHRcdE5DOiAn5paw5ZaA6YeM5aSa5bC85LqaJyxcblx0XHRcdE5aOiAn5paw6KW/5YWwJyxcblx0XHRcdE5JOiAn5bC85Yqg5ouJ55OcJyxcblx0XHRcdE5FOiAn5bC85pel5bCUJyxcblx0XHRcdE5HOiAn5bC85pel5Yip5LqaJyxcblx0XHRcdE5VOiAn57q95Z+DJyxcblx0XHRcdE5GOiAn6K+656aP5YWL5bKbJyxcblx0XHRcdE1LOiAn5YyX6ams5YW26aG/Jyxcblx0XHRcdE1QOiAn5YyX6ams6YeM5Lqa57qz576k5bKbJyxcblx0XHRcdE5POiAn5oyq5aiBJyxcblx0XHRcdE9NOiAn6Zi/5pu8Jyxcblx0XHRcdFBLOiAn5be05Z+65pav5Z2mJyxcblx0XHRcdFBXOiAn5biV5YqzJyxcblx0XHRcdFBTOiAn5be05YuS5pav5Z2mJyxcblx0XHRcdFBBOiAn5be05ou/6amsJyxcblx0XHRcdFBHOiAn5be05biD5Lqa5paw5Yeg5YaF5LqaJyxcblx0XHRcdFBZOiAn5be05ouJ5ZytJyxcblx0XHRcdFBFOiAn56eY6bKBJyxcblx0XHRcdFBIOiAn6I+y5b6L5a6+Jyxcblx0XHRcdFBOOiAn55qu54m55Yev5oGp576k5bKbJyxcblx0XHRcdFBMOiAn5rOi5YWwJyxcblx0XHRcdFBUOiAn6JGh6JCE54mZJyxcblx0XHRcdFBSOiAn5rOi5aSa6buO5ZCEJyxcblx0XHRcdFFBOiAn5Y2h5aGU5bCUJyxcblx0XHRcdFJFOiAn55WZ5bC85rGqJyxcblx0XHRcdFJPOiAn572X6ams5bC85LqaJyxcblx0XHRcdFJVOiAn5L+E572X5pavJyxcblx0XHRcdFJXOiAn5Y2i5pe66L6+Jyxcblx0XHRcdEJMOiAn5Zyj5be05rOw5YuS57GzJyxcblx0XHRcdFNIOiAn5Zyj6LWr5YuS5ou/44CB6Zi/5qOu5p2+5ZKM54m56YeM5pav5Z2mLei+vuW6k+WwvOS6micsXG5cdFx0XHRLTjogJ+Wco+WfuuiMqOWSjOWwvOe7tOaWrycsXG5cdFx0XHRMQzogJ+Wco+WNouilv+S6micsXG5cdFx0XHRNRjogJ+azleWxnuWco+mprOS4gScsXG5cdFx0XHRQTTogJ+Wco+earuWfg+WwlOWSjOWvhuWFi+mahicsXG5cdFx0XHRWQzogJ+Wco+aWh+ajrueJueWSjOagvOael+e6s+S4geaWrycsXG5cdFx0XHRXUzogJ+iQqOaRqeS6micsXG5cdFx0XHRTTTogJ+Wco+mprOWKm+ivuicsXG5cdFx0XHRTVDogJ+Wco+Wkmue+juWSjOaZruael+ilv+avlCcsXG5cdFx0XHRTQTogJ+aymeeJuemYv+aLieS8rycsXG5cdFx0XHRTTjogJ+WhnuWGheWKoOWwlCcsXG5cdFx0XHRSUzogJ+WhnuWwlOe7tOS6micsXG5cdFx0XHRTQzogJ+WhnuiIjOWwlCcsXG5cdFx0XHRTTDogJ+WhnuaLieWIqeaYgicsXG5cdFx0XHRTRzogJ+aWsOWKoOWdoScsXG5cdFx0XHRTWDogJ+iNt+WxnuWco+mprOS4gScsXG5cdFx0XHRTSzogJ+aWr+a0m+S8kOWFiycsXG5cdFx0XHRTSTogJ+aWr+a0m+aWh+WwvOS6micsXG5cdFx0XHRTQjogJ+aJgOe9l+mXqOe+pOWymycsXG5cdFx0XHRTTzogJ+e0oumprOmHjCcsXG5cdFx0XHRaQTogJ+WNl+mdnicsXG5cdFx0XHRHUzogJ+WNl+S5lOayu+S6muWSjOWNl+ahkeWogeWlh+e+pOWymycsXG5cdFx0XHRTUzogJ+WNl+iLj+S4uScsXG5cdFx0XHRFUzogJ+ilv+ePreeJmScsXG5cdFx0XHRMSzogJ+aWr+mHjOWFsOWNoScsXG5cdFx0XHRTRDogJ+iLj+S4uScsXG5cdFx0XHRTUjogJ+iLj+mHjOWNlycsXG5cdFx0XHRTSjogJ+aWr+eTpuWwlOW3tOWSjOaJrOmprOW7ticsXG5cdFx0XHRTRTogJ+eRnuWFuCcsXG5cdFx0XHRDSDogJ+eRnuWjqycsXG5cdFx0XHRTWTogJ+WPmeWIqeS6micsXG5cdFx0XHRUVzogJ+S4reWbveWPsOa5vicsXG5cdFx0XHRUSjogJ+WhlOWQieWFi+aWr+WdpicsXG5cdFx0XHRUWjogJ+WdpuahkeWwvOS6micsXG5cdFx0XHRUSDogJ+azsOWbvScsXG5cdFx0XHRUTDogJ+S4nOW4neaxticsXG5cdFx0XHRURzogJ+WkmuWTpScsXG5cdFx0XHRUSzogJ+aJmOWFi+WKsycsXG5cdFx0XHRUTzogJ+axpOWKoCcsXG5cdFx0XHRUVDogJ+eJueeri+WwvOi+vuWSjOWkmuW3tOWTpScsXG5cdFx0XHRUTjogJ+eqgeWwvOaWrycsXG5cdFx0XHRUUjogJ+Wcn+iAs+WFticsXG5cdFx0XHRUTTogJ+Wcn+W6k+abvOaWr+WdpicsXG5cdFx0XHRUQzogJ+eJueWFi+aWr+WSjOWHr+enkeaWr+e+pOWymycsXG5cdFx0XHRUVjogJ+WbvueTpuWNoicsXG5cdFx0XHRVRzogJ+S5jOW5sui+vicsXG5cdFx0XHRVQTogJ+S5jOWFi+WFsCcsXG5cdFx0XHRBRTogJ+mYv+iBlOmFiycsXG5cdFx0XHRHQjogJ+iLseWbvScsXG5cdFx0XHRVUzogJ+e+juWbvScsXG5cdFx0XHRVTTogJ+e+juWbveacrOWcn+WkluWwj+Wym+WxvycsXG5cdFx0XHRVWTogJ+S5jOaLieWcrScsXG5cdFx0XHRVWjogJ+S5jOWFueWIq+WFi+aWr+WdpicsXG5cdFx0XHRWVTogJ+eTpuWKqumYv+WbvicsXG5cdFx0XHRWRTogJ+WnlOWGheeRnuaLiScsXG5cdFx0XHRWTjogJ+i2iuWNlycsXG5cdFx0XHRWRzogJ+iLseWxnue7tOWwlOS6rOe+pOWymycsXG5cdFx0XHRWSTogJ+e+juWxnue7tOWwlOS6rOe+pOWymycsXG5cdFx0XHRXRjogJ+eTpuWIqeaWr+WSjOWvjOWbvue6sycsXG5cdFx0XHRFSDogJ+ilv+aSkuWTiOaLiScsXG5cdFx0XHRZRTogJ+S5n+mXqCcsXG5cdFx0XHRaTTogJ+i1nuavlOS6micsXG5cdFx0XHRaVzogJ+a0peW3tOW4g+mfpicsXG5cdFx0fTtcblx0fVxuXG5cdHJldHVybiB7XG5cdFx0QUY6ICfpmL/lr4zmsZcnLFxuXHRcdEFYOiAn5aWl5YWwJyxcblx0XHRBTDogJ+mYv+WwlOW3tOWwvOS6micsXG5cdFx0RFo6ICfpmL/lsJTlj4rliKnkuponLFxuXHRcdEFTOiAn576O5bGe6JCo5pGp5LqaJyxcblx0XHRBRDogJ+WuiemBk+WwlCcsXG5cdFx0QU86ICflronlk6Xmi4knLFxuXHRcdEFJOiAn5a6J5Zyt5ouJJyxcblx0XHRBUTogJ+WNl+aegea0sicsXG5cdFx0QUc6ICflronmj5Dnk5zlkozlt7TluIPovr4nLFxuXHRcdEFSOiAn6Zi/5qC55bu3Jyxcblx0XHRBTTogJ+S6mue+juWwvOS6micsXG5cdFx0QVc6ICfpmL/psoHlt7QnLFxuXHRcdEFVOiAn5r6z5aSn5Yip5LqaJyxcblx0XHRBVDogJ+WlpeWcsOWIqScsXG5cdFx0QVo6ICfpmL/loZ7mi5znloYnLFxuXHRcdEJTOiAn5be05ZOI6amsJyxcblx0XHRCSDogJ+W3tOaelycsXG5cdFx0QkQ6ICflrZ/liqDmi4nlm70nLFxuXHRcdEJCOiAn5be05be05aSa5pavJyxcblx0XHRCWTogJ+eZveS/hOe9l+aWrycsXG5cdFx0QkU6ICfmr5TliKnml7YnLFxuXHRcdEJaOiAn5Lyv5Yip5YW5Jyxcblx0XHRCSjogJ+i0neWugScsXG5cdFx0Qk06ICfnmb7mhZXlpKcnLFxuXHRcdEJUOiAn5LiN5Li5Jyxcblx0XHRCTzogJ+eOu+WIqee7tOS6micsXG5cdFx0QlE6ICfojbflhbDliqDli5Lmr5TljLonLFxuXHRcdEJBOiAn5rOi6buRJyxcblx0XHRCVzogJ+WNmuiMqOeTpue6sycsXG5cdFx0QlY6ICfluIPpn6blspsnLFxuXHRcdEJSOiAn5be06KW/Jyxcblx0XHRJTzogJ+iLseWxnuWNsOW6pua0i+mihuWcsCcsXG5cdFx0Qk46ICfmlofojrEnLFxuXHRcdEJHOiAn5L+d5Yqg5Yip5LqaJyxcblx0XHRCRjogJ+W4g+Wfuue6s+azlee0oicsXG5cdFx0Qkk6ICfluIPpmobov6onLFxuXHRcdENWOiAn5L2b5b6X6KeSJyxcblx0XHRLSDogJ+afrOWflOWvqCcsXG5cdFx0Q006ICflloDpuqbpmoYnLFxuXHRcdENBOiAn5Yqg5ou/5aSnJyxcblx0XHRLWTogJ+W8gOabvOe+pOWymycsXG5cdFx0Q0Y6ICfkuK3pnZ4nLFxuXHRcdFREOiAn5LmN5b6XJyxcblx0XHRDTDogJ+aZuuWIqScsXG5cdFx0Q046ICfkuK3lm70nLFxuXHRcdENYOiAn5Zyj6K+e5bKbJyxcblx0XHRDQzogJ+enkeenkeaWr++8iOWfuuael++8iee+pOWymycsXG5cdFx0Q086ICflk6XkvKbmr5TkuponLFxuXHRcdEtNOiAn56eR5pGp572XJyxcblx0XHRDRzogJ+WImuaenOWFseWSjOWbvScsXG5cdFx0Q0Q6ICfliJrmnpzmsJHkuLvlhbHlkozlm70nLFxuXHRcdENLOiAn5bqT5YWL576k5bKbJyxcblx0XHRDUjogJ+WTpeaWr+i+vum7juWKoCcsXG5cdFx0Q0k6ICfnp5Hnibnov6rnk6YnLFxuXHRcdEhSOiAn5YWL572X5Zyw5LqaJyxcblx0XHRDVTogJ+WPpOW3tCcsXG5cdFx0Q1c6ICflupPmi4nntKInLFxuXHRcdENZOiAn5aGe5rWm6Lev5pavJyxcblx0XHRDWjogJ+aNt+WFiycsXG5cdFx0REs6ICfkuLnpuqYnLFxuXHRcdERKOiAn5ZCJ5biD5o+QJyxcblx0XHRETTogJ+Wkmuexs+WwvOWFiycsXG5cdFx0RE86ICflpJrnsbPlsLzliqAnLFxuXHRcdEVDOiAn5Y6E55Oc5aSa5bCUJyxcblx0XHRFRzogJ+Wfg+WPiicsXG5cdFx0U1Y6ICfokKjlsJTnk6blpJonLFxuXHRcdEdROiAn6LWk6YGT5Yeg5YaF5LqaJyxcblx0XHRFUjogJ+WOhOeri+eJuemHjOS6micsXG5cdFx0RUU6ICfniLHmspnlsLzkuponLFxuXHRcdFNaOiAn5pav5aiB5aOr5YWwJyxcblx0XHRFVDogJ+Wfg+WhnuS/hOavlOS6micsXG5cdFx0Rks6ICfnpo/lhYvlhbDnvqTlspsnLFxuXHRcdEZPOiAn5rOV572X576k5bKbJyxcblx0XHRGSjogJ+aWkOa1jicsXG5cdFx0Rkk6ICfoiqzlhbAnLFxuXHRcdEZSOiAn5rOV5Zu9Jyxcblx0XHRHRjogJ+azleWxnuWcreS6mumCoycsXG5cdFx0UEY6ICfms5XlsZ7ms6LliKnlsLzopb/kuponLFxuXHRcdFRGOiAn5rOV5bGe5Y2X6YOo5ZKM5Y2X5p6B6aKG5ZywJyxcblx0XHRHQTogJ+WKoOiTrCcsXG5cdFx0R006ICflhojmr5TkuponLFxuXHRcdEdFOiAn5qC86bKB5ZCJ5LqaJyxcblx0XHRERTogJ+W+t+WbvScsXG5cdFx0R0g6ICfliqDnurMnLFxuXHRcdEdJOiAn55u05biD572X6ZmAJyxcblx0XHRHUjogJ+W4jOiFiicsXG5cdFx0R0w6ICfmoLzpmbXlhbAnLFxuXHRcdEdEOiAn5qC85p6X57qz6L6+Jyxcblx0XHRHUDogJ+eTnOW+t+e9l+aZricsXG5cdFx0R1U6ICflhbPlspsnLFxuXHRcdEdUOiAn5Y2x5Zyw6ams5ouJJyxcblx0XHRHRzogJ+agueilvycsXG5cdFx0R046ICflh6DlhoXkuponLFxuXHRcdEdXOiAn5Yeg5YaF5Lqa5q+U57uNJyxcblx0XHRHWTogJ+WcreS6mumCoycsXG5cdFx0SFQ6ICfmtbflnLAnLFxuXHRcdEhNOiAn6LWr5b635bKb5ZKM6bqm5YWL5ZSQ57qz576k5bKbJyxcblx0XHRWQTogJ+aiteiSguWGiCcsXG5cdFx0SE46ICfmtKrpg73mi4nmlq8nLFxuXHRcdEhLOiAn5Lit5Zu96aaZ5rivJyxcblx0XHRIVTogJ+WMiOeJmeWIqScsXG5cdFx0SVM6ICflhrDlspsnLFxuXHRcdElOOiAn5Y2w5bqmJyxcblx0XHRJRDogJ+WNsOWwvCcsXG5cdFx0SVI6ICfkvIrmnJcnLFxuXHRcdElROiAn5LyK5ouJ5YWLJyxcblx0XHRJRTogJ+eIseWwlOWFsCcsXG5cdFx0SU06ICfpqazmganlspsnLFxuXHRcdElMOiAn5Lul6Imy5YiXJyxcblx0XHRJVDogJ+aEj+Wkp+WIqScsXG5cdFx0Sk06ICfniZnkubDliqAnLFxuXHRcdEpQOiAn5pel5pysJyxcblx0XHRKRTogJ+azveilvycsXG5cdFx0Sk86ICfnuqbml6YnLFxuXHRcdEtaOiAn5ZOI6JCo5YWL5pav5Z2mJyxcblx0XHRLRTogJ+iCr+WwvOS6micsXG5cdFx0S0k6ICfln7rph4zlt7Tmlq8nLFxuXHRcdEtQOiAn5pyd6bKcJyxcblx0XHRLUjogJ+mfqeWbvScsXG5cdFx0S1c6ICfnp5HlqIHnibknLFxuXHRcdEtHOiAn5ZCJ5bCU5ZCJ5pav5pav5Z2mJyxcblx0XHRMQTogJ+iAgeaMnScsXG5cdFx0TFY6ICfmi4nohLHnu7TkuponLFxuXHRcdExCOiAn6buO5be05aupJyxcblx0XHRMUzogJ+iOsee0ouaJmCcsXG5cdFx0TFI6ICfliKnmr5Tph4zkuponLFxuXHRcdExZOiAn5Yip5q+U5LqaJyxcblx0XHRMSTogJ+WIl+aUr+aVpuWjq+eZuycsXG5cdFx0TFQ6ICfnq4vpmbblrpsnLFxuXHRcdExVOiAn5Y2i5qOu5aChJyxcblx0XHRNTzogJ+S4reWbvea+s+mXqCcsXG5cdFx0TUc6ICfpqazovr7liqDmlq/liqAnLFxuXHRcdE1XOiAn6ams5ouJ57u0Jyxcblx0XHRNWTogJ+mprOadpeilv+S6micsXG5cdFx0TVY6ICfpqazlsJTku6PlpKsnLFxuXHRcdE1MOiAn6ams6YeMJyxcblx0XHRNVDogJ+mprOiAs+S7licsXG5cdFx0TUg6ICfpqaznu43lsJTnvqTlspsnLFxuXHRcdE1ROiAn6ams5o+Q5bC85YWLJyxcblx0XHRNUjogJ+avm+mHjOWhlOWwvOS6micsXG5cdFx0TVU6ICfmr5vph4zmsYLmlq8nLFxuXHRcdFlUOiAn6ams57qm54m5Jyxcblx0XHRNWDogJ+WiqOilv+WTpScsXG5cdFx0Rk06ICflr4blhYvnvZflsLzopb/kuprogZTpgqYnLFxuXHRcdE1EOiAn5pGp5bCU5aSa55OmJyxcblx0XHRNQzogJ+aRqee6s+WTpScsXG5cdFx0TU46ICfokpnlj6QnLFxuXHRcdE1FOiAn6buR5bGxJyxcblx0XHRNUzogJ+iSmeeJueWhnuaLieeJuScsXG5cdFx0TUE6ICfmkanmtJvlk6UnLFxuXHRcdE1aOiAn6I6r5qGR5q+U5YWLJyxcblx0XHRNTTogJ+e8heeUuCcsXG5cdFx0TkE6ICfnurPnsbPmr5TkuponLFxuXHRcdE5SOiAn55GZ6bKBJyxcblx0XHROUDogJ+WwvOaziuWwlCcsXG5cdFx0Tkw6ICfojbflhbAnLFxuXHRcdE5DOiAn5paw5ZaA6YeM5aSa5bC85LqaJyxcblx0XHROWjogJ+aWsOilv+WFsCcsXG5cdFx0Tkk6ICflsLzliqDmi4nnk5wnLFxuXHRcdE5FOiAn5bC85pel5bCUJyxcblx0XHRORzogJ+WwvOaXpeWIqeS6micsXG5cdFx0TlU6ICfnur3ln4MnLFxuXHRcdE5GOiAn6K+656aP5YWL5bKbJyxcblx0XHRNSzogJ+WMl+mprOWFtumhvycsXG5cdFx0TVA6ICfljJfpqazph4zkuprnurPnvqTlspsnLFxuXHRcdE5POiAn5oyq5aiBJyxcblx0XHRPTTogJ+mYv+abvCcsXG5cdFx0UEs6ICflt7Tln7rmlq/lnaYnLFxuXHRcdFBXOiAn5biV5YqzJyxcblx0XHRQUzogJ+W3tOWLkuaWr+WdpicsXG5cdFx0UEE6ICflt7Tmi7/pqawnLFxuXHRcdFBHOiAn5be05biD5Lqa5paw5Yeg5YaF5LqaJyxcblx0XHRQWTogJ+W3tOaLieWcrScsXG5cdFx0UEU6ICfnp5jpsoEnLFxuXHRcdFBIOiAn6I+y5b6L5a6+Jyxcblx0XHRQTjogJ+earueJueWHr+aBqee+pOWymycsXG5cdFx0UEw6ICfms6LlhbAnLFxuXHRcdFBUOiAn6JGh6JCE54mZJyxcblx0XHRQUjogJ+azouWkmum7juWQhCcsXG5cdFx0UUE6ICfljaHloZTlsJQnLFxuXHRcdFJFOiAn55WZ5bC85rGqJyxcblx0XHRSTzogJ+e9l+mprOWwvOS6micsXG5cdFx0UlU6ICfkv4TnvZfmlq8nLFxuXHRcdFJXOiAn5Y2i5pe66L6+Jyxcblx0XHRCTDogJ+Wco+W3tOazsOWLkuexsycsXG5cdFx0U0g6ICflnKPotavli5Lmi7/jgIHpmL/mo67mnb7lkoznibnph4zmlq/lnaYt6L6+5bqT5bC85LqaJyxcblx0XHRLTjogJ+Wco+WfuuiMqOWSjOWwvOe7tOaWrycsXG5cdFx0TEM6ICflnKPljaLopb/kuponLFxuXHRcdE1GOiAn5rOV5bGe5Zyj6ams5LiBJyxcblx0XHRQTTogJ+Wco+earuWfg+WwlOWSjOWvhuWFi+mahicsXG5cdFx0VkM6ICflnKPmlofmo67nibnlkozmoLzmnpfnurPkuIHmlq8nLFxuXHRcdFdTOiAn6JCo5pGp5LqaJyxcblx0XHRTTTogJ+Wco+mprOWKm+ivuicsXG5cdFx0U1Q6ICflnKPlpJrnvo7lkozmma7mnpfopb/mr5QnLFxuXHRcdFNBOiAn5rKZ54m56Zi/5ouJ5LyvJyxcblx0XHRTTjogJ+WhnuWGheWKoOWwlCcsXG5cdFx0UlM6ICfloZ7lsJTnu7TkuponLFxuXHRcdFNDOiAn5aGe6IiM5bCUJyxcblx0XHRTTDogJ+WhnuaLieWIqeaYgicsXG5cdFx0U0c6ICfmlrDliqDlnaEnLFxuXHRcdFNYOiAn6I235bGe5Zyj6ams5LiBJyxcblx0XHRTSzogJ+aWr+a0m+S8kOWFiycsXG5cdFx0U0k6ICfmlq/mtJvmloflsLzkuponLFxuXHRcdFNCOiAn5omA572X6Zeo576k5bKbJyxcblx0XHRTTzogJ+e0oumprOmHjCcsXG5cdFx0WkE6ICfljZfpnZ4nLFxuXHRcdEdTOiAn5Y2X5LmU5rK75Lqa5ZKM5Y2X5qGR5aiB5aWH576k5bKbJyxcblx0XHRTUzogJ+WNl+iLj+S4uScsXG5cdFx0RVM6ICfopb/nj63niZknLFxuXHRcdExLOiAn5pav6YeM5YWw5Y2hJyxcblx0XHRTRDogJ+iLj+S4uScsXG5cdFx0U1I6ICfoi4/ph4zljZcnLFxuXHRcdFNKOiAn5pav55Om5bCU5be05ZKM5oms6ams5bu2Jyxcblx0XHRTRTogJ+eRnuWFuCcsXG5cdFx0Q0g6ICfnkZ7lo6snLFxuXHRcdFNZOiAn5Y+Z5Yip5LqaJyxcblx0XHRUVzogJ+S4reWbveiHuua5vicsXG5cdFx0VEo6ICfloZTlkInlhYvmlq/lnaYnLFxuXHRcdFRaOiAn5Z2m5qGR5bC85LqaJyxcblx0XHRUSDogJ+azsOWbvScsXG5cdFx0VEw6ICfkuJzluJ3msbYnLFxuXHRcdFRHOiAn5aSa5ZOlJyxcblx0XHRUSzogJ+aJmOWFi+WKsycsXG5cdFx0VE86ICfmsaTliqAnLFxuXHRcdFRUOiAn54m556uL5bC86L6+5ZKM5aSa5be05ZOlJyxcblx0XHRUTjogJ+eqgeWwvOaWrycsXG5cdFx0VFI6ICflnJ/ogLPlhbYnLFxuXHRcdFRNOiAn5Zyf5bqT5pu85pav5Z2mJyxcblx0XHRUQzogJ+eJueWFi+aWr+WSjOWHr+enkeaWr+e+pOWymycsXG5cdFx0VFY6ICflm77nk6bljaInLFxuXHRcdFVHOiAn5LmM5bmy6L6+Jyxcblx0XHRVQTogJ+S5jOWFi+WFsCcsXG5cdFx0QUU6ICfpmL/ogZTphYsnLFxuXHRcdEdCOiAn6Iux5Zu9Jyxcblx0XHRVUzogJ+e+juWbvScsXG5cdFx0VU06ICfnvo7lm73mnKzlnJ/lpJblsI/lspvlsb8nLFxuXHRcdFVZOiAn5LmM5ouJ5ZytJyxcblx0XHRVWjogJ+S5jOWFueWIq+WFi+aWr+WdpicsXG5cdFx0VlU6ICfnk6bliqrpmL/lm74nLFxuXHRcdFZFOiAn5aeU5YaF55Ge5ouJJyxcblx0XHRWTjogJ+i2iuWNlycsXG5cdFx0Vkc6ICfoi7HlsZ7nu7TlsJTkuqznvqTlspsnLFxuXHRcdFZJOiAn576O5bGe57u05bCU5Lqs576k5bKbJyxcblx0XHRXRjogJ+eTpuWIqeaWr+WSjOWvjOWbvue6sycsXG5cdFx0RUg6ICfopb/mkpLlk4jmi4knLFxuXHRcdFlFOiAn5Lmf6ZeoJyxcblx0XHRaTTogJ+i1nuavlOS6micsXG5cdFx0Wlc6ICfmtKXlt7TluIPpn6YnLFxuXHR9O1xufTtcblxuY29uc3QgZ2V0UmVnaW9uTmFtZUxpc3QgPSAoKSA9PiB7XG5cdGNvbnN0IHt3Z1VzZXJMYW5ndWFnZX0gPSBtdy5jb25maWcuZ2V0KCk7XG5cblx0aWYgKFsnemgtaGFudCcsICd6aC1oaycsICd6aC1tbycsICd6aC10dyddLmluY2x1ZGVzKHdnVXNlckxhbmd1YWdlKSkge1xuXHRcdHJldHVybiB7XG5cdFx0XHRBSDogJ+WuieW+vScsXG5cdFx0XHRCSjogJ+WMl+S6rCcsXG5cdFx0XHRDUTogJ+mHjeaFticsXG5cdFx0XHRGSjogJ+emj+W7uicsXG5cdFx0XHRHRDogJ+W7o+adsScsXG5cdFx0XHRHUzogJ+eUmOiChScsXG5cdFx0XHRHWDogJ+W7o+ilvycsXG5cdFx0XHRHWjogJ+iytOW3nicsXG5cdFx0XHRIQTogJ+ays+WNlycsXG5cdFx0XHRIQjogJ+a5luWMlycsXG5cdFx0XHRIRTogJ+ays+WMlycsXG5cdFx0XHRISTogJ+a1t+WNlycsXG5cdFx0XHRITDogJ+m7kem+jeaxnycsXG5cdFx0XHRITjogJ+a5luWNlycsXG5cdFx0XHRKTDogJ+WQieaelycsXG5cdFx0XHRKUzogJ+axn+iYhycsXG5cdFx0XHRKWDogJ+axn+ilvycsXG5cdFx0XHRMTjogJ+mBvOWvpycsXG5cdFx0XHROTTogJ+WFp+iSmeWPpCcsXG5cdFx0XHROWDogJ+Wvp+WkjycsXG5cdFx0XHRRSDogJ+mdkua1tycsXG5cdFx0XHRTQzogJ+Wbm+W3nScsXG5cdFx0XHRTRDogJ+WxseadsScsXG5cdFx0XHRTSDogJ+S4iua1tycsXG5cdFx0XHRTTjogJ+mZneilvycsXG5cdFx0XHRTWDogJ+WxseilvycsXG5cdFx0XHRUSjogJ+Wkqea0pScsXG5cdFx0XHRYSjogJ+aWsOeWhicsXG5cdFx0XHRYWjogJ+ilv+iXjycsXG5cdFx0XHRZTjogJ+mbsuWNlycsXG5cdFx0XHRaSjogJ+a1meaxnycsXG5cdFx0fTtcblx0fVxuXG5cdHJldHVybiB7XG5cdFx0QUg6ICflronlvr0nLFxuXHRcdEJKOiAn5YyX5LqsJyxcblx0XHRDUTogJ+mHjeW6hicsXG5cdFx0Rko6ICfnpo/lu7onLFxuXHRcdEdEOiAn5bm/5LicJyxcblx0XHRHUzogJ+eUmOiCgycsXG5cdFx0R1g6ICflub/opb8nLFxuXHRcdEdaOiAn6LS15beeJyxcblx0XHRIQTogJ+ays+WNlycsXG5cdFx0SEI6ICfmuZbljJcnLFxuXHRcdEhFOiAn5rKz5YyXJyxcblx0XHRISTogJ+a1t+WNlycsXG5cdFx0SEw6ICfpu5HpvpnmsZ8nLFxuXHRcdEhOOiAn5rmW5Y2XJyxcblx0XHRKTDogJ+WQieaelycsXG5cdFx0SlM6ICfmsZ/oi48nLFxuXHRcdEpYOiAn5rGf6KW/Jyxcblx0XHRMTjogJ+i+veWugScsXG5cdFx0Tk06ICflhoXokpnlj6QnLFxuXHRcdE5YOiAn5a6B5aSPJyxcblx0XHRRSDogJ+mdkua1tycsXG5cdFx0U0M6ICflm5vlt50nLFxuXHRcdFNEOiAn5bGx5LicJyxcblx0XHRTSDogJ+S4iua1tycsXG5cdFx0U046ICfpmZXopb8nLFxuXHRcdFNYOiAn5bGx6KW/Jyxcblx0XHRUSjogJ+Wkqea0pScsXG5cdFx0WEo6ICfmlrDnloYnLFxuXHRcdFhaOiAn6KW/6JePJyxcblx0XHRZTjogJ+S6keWNlycsXG5cdFx0Wko6ICfmtZnmsZ8nLFxuXHR9O1xufTtcblxuZXhwb3J0IHtnZXRDb3VudHJ5T3JBcmVhTmFtZUxpc3QsIGdldFJlZ2lvbk5hbWVMaXN0fTtcbiIsICJpbXBvcnQge2dldENvdW50cnlPckFyZWFOYW1lTGlzdCwgZ2V0UmVnaW9uTmFtZUxpc3R9IGZyb20gJy4vbmFtZSc7XG5cbnR5cGUgQ291bnRyeU9yQXJlYU5hbWVMaXN0ID0gUmV0dXJuVHlwZTx0eXBlb2YgZ2V0Q291bnRyeU9yQXJlYU5hbWVMaXN0PjtcbnR5cGUgUmVnaW9uTmFtZUxpc3QgPSBSZXR1cm5UeXBlPHR5cGVvZiBnZXRSZWdpb25OYW1lTGlzdD47XG5cbmNvbnN0IGNvdW50cnlPckFyZWFMaXN0OiBDb3VudHJ5T3JBcmVhTmFtZUxpc3QgPSBnZXRDb3VudHJ5T3JBcmVhTmFtZUxpc3QoKTtcbmNvbnN0IHJlZ2lvbkxpc3Q6IFJlZ2lvbk5hbWVMaXN0ID0gZ2V0UmVnaW9uTmFtZUxpc3QoKTtcblxuY29uc3QgZ2V0Q291bnRyeU9yQXJlYU5hbWUgPSA8VCBleHRlbmRzIGtleW9mIENvdW50cnlPckFyZWFOYW1lTGlzdD4oa2V5OiBUKTogQ291bnRyeU9yQXJlYU5hbWVMaXN0W1RdIHwgdW5kZWZpbmVkID0+IHtcblx0cmV0dXJuIGNvdW50cnlPckFyZWFMaXN0W2tleV07XG59O1xuXG5jb25zdCBnZXRSZWdpb25OYW1lID0gPFQgZXh0ZW5kcyBrZXlvZiBSZWdpb25OYW1lTGlzdD4oa2V5OiBUKTogUmVnaW9uTmFtZUxpc3RbVF0gfCB1bmRlZmluZWQgPT4ge1xuXHRyZXR1cm4gcmVnaW9uTGlzdFtrZXldO1xufTtcblxuZXhwb3J0IHt0eXBlIENvdW50cnlPckFyZWFOYW1lTGlzdCwgdHlwZSBSZWdpb25OYW1lTGlzdCwgZ2V0Q291bnRyeU9yQXJlYU5hbWUsIGdldFJlZ2lvbk5hbWV9O1xuIiwgImltcG9ydCAqIGFzIE9QVElPTlMgZnJvbSAnLi4vb3B0aW9ucy5qc29uJztcbmltcG9ydCB7aW5pdE13QXBpfSBmcm9tICdleHQuZ2FkZ2V0LlV0aWwnO1xuXG5jb25zdCBhcGk6IG13LkFwaSA9IGluaXRNd0FwaShgR2VvTG9jYXRpb25SZWFkZXIvJHtPUFRJT05TLnZlcnNpb259YCk7XG5cbmV4cG9ydCB7YXBpfTtcbiIsICJpbXBvcnQgKiBhcyBPUFRJT05TIGZyb20gJy4uLy4uL29wdGlvbnMuanNvbic7XG5pbXBvcnQge3R5cGUgQ291bnRyeU9yQXJlYU5hbWVMaXN0LCB0eXBlIFJlZ2lvbk5hbWVMaXN0LCBnZXRDb3VudHJ5T3JBcmVhTmFtZSwgZ2V0UmVnaW9uTmFtZX0gZnJvbSAnLi9nZXROYW1lJztcbmltcG9ydCB0eXBlIHtTdG9yZUdlb0luZm99IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7YXBpfSBmcm9tICcuLi9hcGknO1xuaW1wb3J0IHtnZXRNZXNzYWdlfSBmcm9tICcuLi9pMThuJztcblxuY29uc3QgZ2V0TG9jYXRpb24gPSBhc3luYyAod2dSZWxldmFudFVzZXJOYW1lOiBzdHJpbmcpID0+IHtcblx0Y29uc3Qgc3RvcmVQYWdlVGl0bGU6IHN0cmluZyA9IGBVc2VyOiR7d2dSZWxldmFudFVzZXJOYW1lfS9HZW9JUC5qc29uYDtcblxuXHRsZXQgY291bnRyeU9yQXJlYU5hbWU6IHN0cmluZyA9IGdldE1lc3NhZ2UoJ1Vua25vd24nKTtcblx0bGV0IHJlZ2lvbk5hbWU6IHN0cmluZyA9ICcnO1xuXG5cdGlmIChtdy5zdG9yYWdlLmdldE9iamVjdChPUFRJT05TLnN0b3JhZ2VLZXkgKyB3Z1JlbGV2YW50VXNlck5hbWUpKSB7XG5cdFx0KHtjb3VudHJ5T3JBcmVhTmFtZSwgcmVnaW9uTmFtZX0gPSBtdy5zdG9yYWdlLmdldE9iamVjdChPUFRJT05TLnN0b3JhZ2VLZXkgKyB3Z1JlbGV2YW50VXNlck5hbWUpIGFzIHtcblx0XHRcdGNvdW50cnlPckFyZWFOYW1lOiBzdHJpbmc7XG5cdFx0XHRyZWdpb25OYW1lOiBzdHJpbmc7XG5cdFx0fSk7XG5cdH0gZWxzZSB7XG5cdFx0dHJ5IHtcblx0XHRcdGNvbnN0IHBhcmFtczogQXBpUXVlcnlSZXZpc2lvbnNQYXJhbXMgPSB7XG5cdFx0XHRcdGFjdGlvbjogJ3F1ZXJ5Jyxcblx0XHRcdFx0Zm9ybWF0OiAnanNvbicsXG5cdFx0XHRcdGZvcm1hdHZlcnNpb246ICcyJyxcblx0XHRcdFx0dGl0bGVzOiBbc3RvcmVQYWdlVGl0bGVdLFxuXHRcdFx0XHRwcm9wOiBbJ3JldmlzaW9ucyddLFxuXHRcdFx0XHRydnByb3A6IFsnY29udGVudCddLFxuXHRcdFx0XHRydnNsb3RzOiAnbWFpbicsXG5cdFx0XHRcdHNtYXhhZ2U6IDYwMCxcblx0XHRcdFx0bWF4YWdlOiA2MDAsXG5cdFx0XHR9O1xuXG5cdFx0XHRjb25zdCBkYXRhID0gYXdhaXQgYXBpLmdldChwYXJhbXMpO1xuXG5cdFx0XHRjb25zdCBjb250ZW50ID0gKGRhdGFbJ3F1ZXJ5J10/LnBhZ2VzWzBdPy5yZXZpc2lvbnM/LlswXS5zbG90cy5tYWluLmNvbnRlbnQgYXMgc3RyaW5nKSB8fCAnJztcblx0XHRcdGNvbnN0IHJlc3BvbnNlID0gSlNPTi5wYXJzZShjb250ZW50KSBhcyBTdG9yZUdlb0luZm8gJiB7XG5cdFx0XHRcdGNvdW50cnk/OiBzdHJpbmc7XG5cdFx0XHR9O1xuXG5cdFx0XHRpZiAoIShyZXNwb25zZS5jb3VudHJ5IHx8IHJlc3BvbnNlLmNvdW50cnlPckFyZWEpICYmICFyZXNwb25zZS5yZWdpb24pIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXG5cdFx0XHRjb25zdCB7Y291bnRyeSwgY291bnRyeU9yQXJlYSwgcmVnaW9ufSA9IHJlc3BvbnNlO1xuXG5cdFx0XHRsZXQgbG9jYXRpb246IFN0b3JlR2VvSW5mb1snY291bnRyeU9yQXJlYSddID0gJyc7XG5cblx0XHRcdGlmIChjb3VudHJ5IHx8IGNvdW50cnlPckFyZWEpIHtcblx0XHRcdFx0bG9jYXRpb24gPSBjb3VudHJ5IHx8IGNvdW50cnlPckFyZWE7XG5cdFx0XHR9XG5cblx0XHRcdGlmIChnZXRDb3VudHJ5T3JBcmVhTmFtZShsb2NhdGlvbiBhcyBrZXlvZiBDb3VudHJ5T3JBcmVhTmFtZUxpc3QpKSB7XG5cdFx0XHRcdGNvdW50cnlPckFyZWFOYW1lID1cblx0XHRcdFx0XHRnZXRDb3VudHJ5T3JBcmVhTmFtZShsb2NhdGlvbiBhcyBrZXlvZiBDb3VudHJ5T3JBcmVhTmFtZUxpc3QpIHx8IGdldE1lc3NhZ2UoJ1Vua25vd24nKTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKGxvY2F0aW9uICYmIGxvY2F0aW9uID09PSAnQ04nKSB7XG5cdFx0XHRcdHJlZ2lvbk5hbWUgPSBnZXRSZWdpb25OYW1lKHJlZ2lvbiBhcyBrZXlvZiBSZWdpb25OYW1lTGlzdCkgfHwgJyc7XG5cdFx0XHR9XG5cblx0XHRcdG13LnN0b3JhZ2Uuc2V0T2JqZWN0KE9QVElPTlMuc3RvcmFnZUtleSArIHdnUmVsZXZhbnRVc2VyTmFtZSwge2NvdW50cnlPckFyZWFOYW1lLCByZWdpb25OYW1lfSwgNjAgKiA2MCk7XG5cdFx0fSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcblx0XHRcdGNvbnNvbGUuZXJyb3IoJ1tHZW9Mb2NhdGlvblJlYWRlcl0gQWpheCBlcnJvciBpbiBgZ2V0TG9jYXRpb25gIG1ldGhvZDonLCBlcnJvcik7XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIHtjb3VudHJ5T3JBcmVhTmFtZSwgcmVnaW9uTmFtZX07XG59O1xuXG5leHBvcnQge2dldExvY2F0aW9ufTtcbiIsICJpbXBvcnQge2FwcGVuZEljb259IGZyb20gJy4vdXRpbC9hcHBlbmRJY29uJztcbmltcG9ydCB7Z2V0TG9jYXRpb259IGZyb20gJy4vdXRpbC9nZXRMb2NhdGlvbic7XG5pbXBvcnQge2dldE1lc3NhZ2V9IGZyb20gJy4vaTE4bic7XG5cbmNvbnN0IGFwcGVuZEdlb0ljb24gPSBhc3luYyAoKTogUHJvbWlzZTx2b2lkPiA9PiB7XG5cdGNvbnN0IHt3Z1JlbGV2YW50VXNlck5hbWV9ID0gbXcuY29uZmlnLmdldCgpO1xuXHRpZiAoIXdnUmVsZXZhbnRVc2VyTmFtZSkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdHRyeSB7XG5cdFx0Y29uc3QgcmVzcG9uc2UgPSBhd2FpdCBnZXRMb2NhdGlvbih3Z1JlbGV2YW50VXNlck5hbWUpO1xuXHRcdGNvbnN0IGNvdW50cnlPckFyZWFOYW1lID0gcmVzcG9uc2U/LmNvdW50cnlPckFyZWFOYW1lID8/ICcnO1xuXHRcdGNvbnN0IHJlZ2lvbk5hbWUgPSByZXNwb25zZT8ucmVnaW9uTmFtZSA/PyAnJztcblxuXHRcdGFwcGVuZEljb24oe1xuXHRcdFx0aWNvbjogJ2dsb2JlJyxcblx0XHRcdGluZGljYXRvclRleHQ6IGNvdW50cnlPckFyZWFOYW1lICsgcmVnaW9uTmFtZSxcblx0XHRcdHNwYW5DbGFzczogJ2dyZWVuJyxcblx0XHR9KTtcblx0fSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcblx0XHRjb25zb2xlLmVycm9yKCdbR2VvTG9jYXRpb25SZWFkZXJdIEFqYXggZXJyb3IgaW4gYGFwcGVuZEdlb0ljb25gIG1ldGhvZDonLCBlcnJvcik7XG5cdFx0YXBwZW5kSWNvbih7XG5cdFx0XHRpY29uOiAnaGVscE5vdGljZScsXG5cdFx0XHRpbmRpY2F0b3JUZXh0OiBnZXRNZXNzYWdlKCdVbmtub3duJyksXG5cdFx0XHRzcGFuQ2xhc3M6ICdvcmFuZ2UnLFxuXHRcdH0pO1xuXHR9XG59O1xuXG5leHBvcnQge2FwcGVuZEdlb0ljb259O1xuIiwgImltcG9ydCB7YXBwZW5kR2VvSWNvbn0gZnJvbSAnLi9hcHBlbmRHZW9JY29uJztcbmltcG9ydCB7Z2V0TG9jYWxVc2VyR3JvdXBzfSBmcm9tICdleHQuZ2FkZ2V0Lk1hcmtSaWdodHMnO1xuXG5jb25zdCBhZGRFbGVtZW50ID0gYXN5bmMgKCk6IFByb21pc2U8dm9pZD4gPT4ge1xuXHRjb25zdCB7d2dSZWxldmFudFVzZXJOYW1lfSA9IG13LmNvbmZpZy5nZXQoKTtcblxuXHRpZiAoIXdnUmVsZXZhbnRVc2VyTmFtZSkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdHRyeSB7XG5cdFx0Y29uc3QgZ3JvdXBzTWFwID0gYXdhaXQgZ2V0TG9jYWxVc2VyR3JvdXBzKFt3Z1JlbGV2YW50VXNlck5hbWVdKTtcblx0XHRjb25zdCBncm91cHMgPSBncm91cHNNYXBbd2dSZWxldmFudFVzZXJOYW1lXSA/PyBbXTtcblxuXHRcdGlmIChncm91cHMuaW5jbHVkZXMoJ2JvdCcpIHx8IGdyb3Vwcy5pbmNsdWRlcygncWl1d2VuJykpIHtcblx0XHRcdC8qIGVtcHR5ICovXG5cdFx0XHQvLyBBbHJlYWR5IHNob3duIGluIE1hcmtSaWdodHMtVXNlcnBhZ2Vcblx0XHR9IGVsc2Uge1xuXHRcdFx0dm9pZCBhcHBlbmRHZW9JY29uKCk7XG5cdFx0fVxuXHR9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuXHRcdGNvbnNvbGUuZXJyb3IoJ1tHZW9Mb2NhdGlvblJlYWRlcl0gQWpheCBlcnJvciBpbiBgYWRkRWxlbWVudGAgbWV0aG9kOicsIGVycm9yKTtcblx0fVxufTtcblxuZXhwb3J0IHthZGRFbGVtZW50fTtcbiIsICJpbXBvcnQgKiBhcyBPUFRJT05TIGZyb20gJy4vb3B0aW9ucy5qc29uJztcbmltcG9ydCB7U1lTVEVNX1NDUklQVF9MSVNULCBXRUJNQVNURVJfTElTVH0gZnJvbSAnLi9tb2R1bGVzL2NvbnN0YW50JztcbmltcG9ydCB7YWRkRWxlbWVudH0gZnJvbSAnLi9tb2R1bGVzL2FkZEVsZW1lbnQnO1xuXG4oZnVuY3Rpb24gZ2VvTG9jYXRpb25SZWFkZXIoKTogdm9pZCB7XG5cdGNvbnN0IHt3Z0FjdGlvbiwgd2dOYW1lc3BhY2VOdW1iZXIsIHdnUGFnZU5hbWUsIHdnUmVsZXZhbnRVc2VyTmFtZX0gPSBtdy5jb25maWcuZ2V0KCk7XG5cdGlmIChcblx0XHQhd2dSZWxldmFudFVzZXJOYW1lIHx8XG5cdFx0U1lTVEVNX1NDUklQVF9MSVNULmluY2x1ZGVzKHdnUmVsZXZhbnRVc2VyTmFtZSkgfHxcblx0XHRXRUJNQVNURVJfTElTVC5pbmNsdWRlcyh3Z1JlbGV2YW50VXNlck5hbWUpIHx8XG5cdFx0ISh3Z05hbWVzcGFjZU51bWJlciA9PT0gT1BUSU9OUy51c2VyTmFtZVNwYWNlTnVtYmVyKSB8fFxuXHRcdCEod2dBY3Rpb24gPT09ICd2aWV3Jylcblx0KSB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0Y29uc3QgcGFnZU5hbWU6IHN0cmluZyA9IG5ldyBtdy5UaXRsZSh3Z1BhZ2VOYW1lKS50b1RleHQoKTtcblx0Y29uc3QgcmVsZXZhbnRVc2VyUGFnZU5hbWU6IHN0cmluZyA9IG5ldyBtdy5UaXRsZSh3Z1JlbGV2YW50VXNlck5hbWUsIE9QVElPTlMudXNlck5hbWVTcGFjZU51bWJlcikudG9UZXh0KCk7XG5cdGlmIChwYWdlTmFtZSAhPT0gcmVsZXZhbnRVc2VyUGFnZU5hbWUpIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHR2b2lkIGFkZEVsZW1lbnQoKTtcbn0pKCk7XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQU1DLElBQUFBLHFCQUFzQjtBQUN0QixJQUFBQyxhQUFjO0FBQ2QsSUFBQUMsc0JBQXVCO0FBQ3ZCLElBQUFDLFVBQVc7O0FDVFosSUFBTUMscUJBQStCLENBQ3BDLFNBQ0EsUUFDQSxVQUNBLFdBQ0EseUJBQ0Esc0JBQ0EscUJBQ0EsOEJBQ0EsZUFBQTtBQUVELElBQU1DLGlCQUEyQixDQUFDLFVBQVUsdUJBQXVCLG1CQUFtQjs7QUNYdEYsSUFBTUMsYUFBcUI7QUFDM0IsSUFBTUMsa0JBQUEsR0FBQUMsT0FBNkJGLFlBQVUsUUFBQTtBQUM3QyxJQUFNRyxrQkFBQSxHQUFBRCxPQUE2QkYsWUFBVSxRQUFBOztBQ0Q3QyxJQUFBSSxxQkFBa0NDLFFBQUFDLFFBQUEsZ0JBQUEsR0FBQSxDQUFBOztBQ0RsQyxJQUFBQyxvQkFBdUJELFFBQUEs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STtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7SUFDTDtFQUNELFdBQVcsQ0FBQyxPQUFPLEVBQUV4USxTQUFTZSxjQUFjLEdBQUc7QUFDOUMsV0FBTztNQUNOQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtJQUNMO0VBQ0QsV0FBVyxDQUFDLFNBQVMsT0FBTyxFQUFFeFEsU0FBU2UsY0FBYyxHQUFHO0FBQ3ZELFdBQU87TUFDTkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7SUFDTDtFQUNEO0FBRUEsU0FBTztJQUNOeFAsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElB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Z0MsU0FBU3dTLGtCQUFrQixLQUM5Q3ZVLGVBQWUrQixTQUFTd1Msa0JBQWtCLEtBQzFDLEVBQUVpRCxzQkFBOEIzWCx3QkFDaEMsRUFBRTBYLGFBQWEsU0FDZDtBQUNEO0VBQ0Q7QUFFQSxRQUFNRyxXQUFtQixJQUFJaFcsR0FBR2lXLE1BQU1GLFVBQVUsRUFBRUcsT0FBTztBQUN6RCxRQUFNQyx1QkFBK0IsSUFBSW5XLEdBQUdpVyxNQUFNcEQsb0JBQTRCMVUsbUJBQW1CLEVBQUUrWCxPQUFPO0FBQzFHLE1BQUlGLGFBQWFHLHNCQUFzQjtBQUN0QztFQUNEO0FBRUEsT0FBS2IsV0FBVztBQUNqQixHQUFHOyIsCiAgIm5hbWVzIjogWyJtb3VudFBvaW50U2VsZWN0b3IiLCAic3RvcmFnZUtleSIsICJ1c2VyTmFtZVNwYWNlTnVtYmVyIiwgInZlcnNpb24iLCAiU1lTVEVNX1NDUklQVF9MSVNUIiwgIldFQk1BU1RFUl9MSVNUIiwgIkNMQVNTX05BTUUiLCAiQ0xBU1NfTkFNRV9JQ09OIiwgImNvbmNhdCIsICJDTEFTU19OQU1FX1RFWFQiLCAiaW1wb3J0X2V4dF9nYWRnZXQyIiwgIl9fdG9FU00iLCAicmVxdWlyZSIsICJpbXBvcnRfZXh0X2dhZGdldCIsICJnZXRJMThuTWVzc2FnZXMiLCAibG9jYWxpemUiLCAiZW4iLCAiamEiLCAiemgiLCAiVW5rbm93biIsICJMb2NhdGlvbiIsICJpMThuTWVzc2FnZXMiLCAiZ2V0TWVzc2FnZSIsICJrZXkiLCAiRm9vdGVyTm90aWNlIiwgInNwYW5DbGFzcyIsICJjaGlsZHJlbiIsICJkZWZhdWx0IiwgImNyZWF0ZUVsZW1lbnQiLCAiRnJhZ21lbnQiLCAic2tpbiIsICJtdyIsICJjb25maWciLCAiZ2V0IiwgImlkIiwgImNsYXNzTmFtZSIsICJpbmNsdWRlcyIsICJkb2N1bWVudCIsICJxdWVyeVNlbGVjdG9yIiwgIkluZGljYXRvciIsICJpY29uIiwgImluZGljYXRvclRleHQiLCAidGV4dCIsICJGb290ZXJJY29uIiwgImltcG9ydF9leHRfZ2FkZ2V0MyIsICJhcHBlbmRGb290ZXJOb3RpY2UiLCAiZWxlbWVudCIsICJtb3VudFBvaW50IiwgInByZXBlbmQiLCAiYXBwZW5kSWNvbiIsICJnZXRDb3VudHJ5T3JBcmVhTmFtZUxpc3QiLCAid2dVc2VyTGFuZ3VhZ2UiLCAiQUYiLCAiQVgiLCAiQUwiLCAiRFoiLCAiQVMiLCAiQUQiLCAiQU8iLCAiQUkiLCAiQVEiLCAiQUciLCAiQVIiLCAiQU0iLCAiQVciLCAiQVUiLCAiQVQiLCAiQVoiLCAiQlMiLCAiQkgiLCAiQkQiLCAiQkIiLCAiQlkiLCAiQkUiLCAiQloiLCAiQkoiLCAiQk0iLCAiQlQiLCAiQk8iLCAiQlEiLCAiQkEiLCAiQlciLCAiQlYiLCAiQlIiLCAiSU8iLCAiQk4iLCAiQkciLCAiQkYiLCAiQkkiLCAiQ1YiLCAiS0giLCAiQ00iLCAiQ0EiLCAiS1kiLCAiQ0YiLCAiVEQiLCAiQ0wiLCAiQ04iLCAiQ1giLCAiQ0MiLCAiQ08iLCAiS00iLCAiQ0ciLCAiQ0QiLCAiQ0siLCAiQ1IiLCAiQ0kiLCAiSFIiLCAiQ1UiLCAiQ1ciLCAiQ1kiLCAiQ1oiLCAiREsiLCAiREoiLCAiRE0iLCAiRE8iLCAiRUMiLCAiRUciLCAiU1YiLCAiR1EiLCAiRVIiLCAiRUUiLCAiU1oiLCAiRVQiLCAiRksiLCAiRk8iLCAiRkoiLCAiRkkiLCAiRlIiLCAiR0YiLCAiUEYiLCAiVEYiLCAiR0EiLCAiR00iLCAiR0UiLCAiREUiLCAiR0giLCAiR0kiLCAiR1IiLCAiR0wiLCAiR0QiLCAiR1AiLCAiR1UiLCAiR1QiLCAiR0ciLCAiR04iLCAiR1ciLCAiR1kiLCAiSFQiLCAiSE0iLCAiVkEiLCAiSE4iLCAiSEsiLCAiSFUiLCAiSVMiLCAiSU4iLCAiSUQiLCAiSVIiLCAiSVEiLCAiSUUiLCAiSU0iLCAiSUwiLCAiSVQiLCAiSk0iLCAiSlAiLCAiSkUiLCAiSk8iLCAiS1oiLCAiS0UiLCAiS0kiLCAiS1AiLCAiS1IiLCAiS1ciLCAiS0ciLCAiTEEiLCAiTFYiLCAiTEIiLCAiTFMiLCAiTFIiLCAiTFkiLCAiTEkiLCAiTFQiLCAiTFUiLCAiTU8iLCAiTUciLCAiTVciLCAiTVkiLCAiTVYiLCAiTUwiLCAiTVQiLCAiTUgiLCAiTVEiLCAiTVIiLCAiTVUiLCAiWVQiLCAiTVgiLCAiRk0iLCAiTUQiLCAiTUMiLCAiTU4iLCAiTUUiLCAiTVMiLCAiTUEiLCAiTVoiLCAiTU0iLCAiTkEiLCAiTlIiLCAiTlAiLCAiTkwiLCAiTkMiLCAiTloiLCAiTkkiLCAiTkUiLCAiTkciLCAiTlUiLCAiTkYiLCAiTUsiLCAiTVAiLCAiTk8iLCAiT00iLCAiUEsiLCAiUFciLCAiUFMiLCAiUEEiLCAiUEciLCAiUFkiLCAiUEUiLCAiUEgiLCAiUE4iLCAiUEwiLCAiUFQiLCAiUFIiLCAiUUEiLCAiUkUiLCAiUk8iLCAiUlUiLCAiUlciLCAiQkwiLCAiU0giLCAiS04iLCAiTEMiLCAiTUYiLCAiUE0iLCAiVkMiLCAiV1MiLCAiU00iLCAiU1QiLCAiU0EiLCAiU04iLCAiUlMiLCAiU0MiLCAiU0wiLCAiU0ciLCAiU1giLCAiU0siLCAiU0kiLCAiU0IiLCAiU08iLCAiWkEiLCAiR1MiLCAiU1MiLCAiRVMiLCAiTEsiLCAiU0QiLCAiU1IiLCAiU0oiLCAiU0UiLCAiQ0giLCAiU1kiLCAiVFciLCAiVEoiLCAiVFoiLCAiVEgiLCAiVEwiLCAiVEciLCAiVEsiLCAiVE8iLCAiVFQiLCAiVE4iLCAiVFIiLCAiVE0iLCAiVEMiLCAiVFYiLCAiVUciLCAiVUEiLCAiQUUiLCAiR0IiLCAiVVMiLCAiVU0iLCAiVVkiLCAiVVoiLCAiVlUiLCAiVkUiLCAiVk4iLCAiVkciLCAiVkkiLCAiV0YiLCAiRUgiLCAiWUUiLCAiWk0iLCAiWlciLCAiZ2V0UmVnaW9uTmFtZUxpc3QiLCAiQUgiLCAiQ1EiLCAiR1giLCAiR1oiLCAiSEEiLCAiSEIiLCAiSEUiLCAiSEkiLCAiSEwiLCAiSkwiLCAiSlMiLCAiSlgiLCAiTE4iLCAiTk0iLCAiTlgiLCAiUUgiLCAiWEoiLCAiWFoiLCAiWU4iLCAiWkoiLCAiY291bnRyeU9yQXJlYUxpc3QiLCAicmVnaW9uTGlzdCIsICJnZXRDb3VudHJ5T3JBcmVhTmFtZSIsICJnZXRSZWdpb25OYW1lIiwgImltcG9ydF9leHRfZ2FkZ2V0NCIsICJhcGkiLCAiaW5pdE13QXBpIiwgImdldExvY2F0aW9uIiwgIl9yZWYiLCAiX2FzeW5jVG9HZW5lcmF0b3IiLCAid2dSZWxldmFudFVzZXJOYW1lIiwgInN0b3JlUGFnZVRpdGxlIiwgImNvdW50cnlPckFyZWFOYW1lIiwgInJlZ2lvbk5hbWUiLCAic3RvcmFnZSIsICJnZXRPYmplY3QiLCAiX2RhdGEkcXVlcnkiLCAicGFyYW1zIiwgImFjdGlvbiIsICJmb3JtYXQiLCAiZm9ybWF0dmVyc2lvbiIsICJ0aXRsZXMiLCAicHJvcCIsICJydnByb3AiLCAicnZzbG90cyIsICJzbWF4YWdlIiwgIm1heGFnZSIsICJkYXRhIiwgImNvbnRlbnQiLCAicGFnZXMiLCAicmV2aXNpb25zIiwgInNsb3RzIiwgIm1haW4iLCAicmVzcG9uc2UiLCAiSlNPTiIsICJwYXJzZSIsICJjb3VudHJ5IiwgImNvdW50cnlPckFyZWEiLCAicmVnaW9uIiwgImxvY2F0aW9uIiwgInNldE9iamVjdCIsICJlcnJvciIsICJjb25zb2xlIiwgIl94IiwgImFwcGx5IiwgImFyZ3VtZW50cyIsICJhcHBlbmRHZW9JY29uIiwgIl9yZWYyIiwgIl9yZXNwb25zZSRjb3VudHJ5T3JBciIsICJfcmVzcG9uc2UkcmVnaW9uTmFtZSIsICJpbXBvcnRfZXh0X2dhZGdldDUiLCAiYWRkRWxlbWVudCIsICJfcmVmMyIsICJfZ3JvdXBzTWFwJHdnUmVsZXZhbnQiLCAiZ3JvdXBzTWFwIiwgImdldExvY2FsVXNlckdyb3VwcyIsICJncm91cHMiLCAiZ2VvTG9jYXRpb25SZWFkZXIiLCAid2dBY3Rpb24iLCAid2dOYW1lc3BhY2VOdW1iZXIiLCAid2dQYWdlTmFtZSIsICJwYWdlTmFtZSIsICJUaXRsZSIsICJ0b1RleHQiLCAicmVsZXZhbnRVc2VyUGFnZU5hbWUiXQp9Cg== diff --git a/dist/HistoryDisclaimer/HistoryDisclaimer.css b/dist/HistoryDisclaimer/HistoryDisclaimer.css index 2d83648c9..9ccffcf24 100644 --- a/dist/HistoryDisclaimer/HistoryDisclaimer.css +++ b/dist/HistoryDisclaimer/HistoryDisclaimer.css @@ -19,38 +19,38 @@ /* */ /* esbuild-css-modules-plugin-ns-css:src/HistoryDisclaimer/HistoryDisclaimer.module.less */ -.HistoryDisclaimer-module__disclaimer_W9SYoG { +.HistoryDisclaimer-module__disclaimer_W9SYoG__490 { z-index: 99999; pointer-events: none; background-image: url('data:image/svg+xml,'); position: fixed; inset: 0; } -html:lang(zh-hant) .HistoryDisclaimer-module__disclaimer_W9SYoG { +html:lang(zh-hant) .HistoryDisclaimer-module__disclaimer_W9SYoG__490 { background-image: url('data:image/svg+xml,'); } -.skin-gongbi .HistoryDisclaimer-module__disclaimer_W9SYoG { +.skin-gongbi .HistoryDisclaimer-module__disclaimer_W9SYoG__490 { inset: 5em 15em 0 13em; } @media screen and (max-width: 1200px) { - .skin-gongbi .HistoryDisclaimer-module__disclaimer_W9SYoG { + .skin-gongbi .HistoryDisclaimer-module__disclaimer_W9SYoG__490 { inset: 5em 0 0 13em; } } @media screen and (max-width: 768px) { - .skin-gongbi .HistoryDisclaimer-module__disclaimer_W9SYoG { + .skin-gongbi .HistoryDisclaimer-module__disclaimer_W9SYoG__490 { inset: 0; } } -:is(.skin-vector .HistoryDisclaimer-module__disclaimer_W9SYoG, .skin-vector-legacy .HistoryDisclaimer-module__disclaimer_W9SYoG) { +:is(.skin-vector .HistoryDisclaimer-module__disclaimer_W9SYoG__490, .skin-vector-legacy .HistoryDisclaimer-module__disclaimer_W9SYoG__490) { inset: 5em 0 0 12em; } @media screen and (max-width: 768px) { - :is(.skin-vector .HistoryDisclaimer-module__disclaimer_W9SYoG, .skin-vector-legacy .HistoryDisclaimer-module__disclaimer_W9SYoG) { + :is(.skin-vector .HistoryDisclaimer-module__disclaimer_W9SYoG__490, .skin-vector-legacy .HistoryDisclaimer-module__disclaimer_W9SYoG__490) { inset: 0; } } /* */ -/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiZXNidWlsZC1jc3MtbW9kdWxlcy1wbHVnaW4tbnMtY3NzOnNyYy9IaXN0b3J5RGlzY2xhaW1lci9IaXN0b3J5RGlzY2xhaW1lci5tb2R1bGUubGVzcyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyogPHN0ZGluPiAqL1xuLkhpc3RvcnlEaXNjbGFpbWVyLW1vZHVsZV9fZGlzY2xhaW1lcl9XOVNZb0cge1xuICB6LWluZGV4OiA5OTk5OTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9zdmcreG1sLDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjAwXCIgaGVpZ2h0PVwiMjAwXCIgZmlsbD1cIiUyM2NjY1wiIG9wYWNpdHk9XCIuM1wiIHZpZXdCb3g9XCIwIDAgMjAwIDIwMFwiPjxwYXRoIGQ9XCJtMjUuNjAzIDE0NS45NTgtMi42NDQgMi42NDctMS4wMzYtMS4xMi0xLjUzMi0xLjU2MmMuMzU2LS40OTMuMzI5LS43ODkuMTMzLTEuMDE0bC0yLjg3IDIuMzUxIDIuMTk4IDIuMjM5IDEuMDc3IDEuMTMzLTMuMjgyIDMuMjgxLjYxNi4zMzEgMy4xMTMtMy4xMTljMi45NjcgMy4zMjMgNS40NDQgNy40NyAzLjY3MyAxMy43NDlsLjI5NC4wMzVjMy42ODctNy4xNTIgMS4yMTgtMTIuMDg3LTEuOTQ1LTE1LjgwNGwyLjgyLTIuODIzYzMuNjMgMy45NyA1LjUzNCA2LjQzNCA1LjQ0MyA3LjM3IDAgLjI2LS4xMi40NDQtLjM3OC43MDQtLjM1Ny4zNi0xLjQ0OCAxLjMyNC0yLjEzNCAxLjkwOGwuMTk1LjIzM2MuODMzLS41MzUgMS42MS0uODMgMi4xNzYtLjg0NS40OS4wMzUgMSAuNDMgMS41ODIgMS4wMi45NDQtLjk1IDEuNDA2LTEuODY1IDEuNDc2LTIuODc5LjExOS0xLjY1NC0xLjY2NS00LjE3NC02LjE1LTkuMTE2LjI5My0uMzk0LjM5MS0uNzE4LjM2My0uOTg2bC0zLjE5Ny4yMzN6bS00LjA2NS00LjY3NS04LjM2OCA4LjM3OC0zLjE3IDEuMzE2IDUuMSA1LjIwM2MzLjEgMy4xNiA2LjM3NSA2LjggNy4zMDUgMTEuMzJsLjI3My0uMDVjMS4wMDgtNS45OTgtMi42NzMtMTAuMjE1LTUuNjQtMTMuMjQ4bC0zLjY5My0zLjc3MyAxMS4xNi0xMS4xNzNjLjIzLS4yMjUuMzA4LS40NzEuMTgyLS43MDRsLTMuNDI5LjI5NnptMTMuMjY2LTEuNzY2LTMuNzMtMy44MDkgMy4wNS0zLjA1NSAzLjY5NSAzLjc3My4wMzUuMDM1em00LjM5NC0xMS45NCAzLjczIDMuODA4LTMuMTE0IDMuMTItLjAzNS0uMDM2LTMuNjk0LTMuNzczem00LjE2MyA0LjI1MiAxLjI3MyAxLjMwMi4zMjktLjMyNGMuNjcxLS42NjggMS4xOTYtMi4wMTMgMS4wODUtMi4xNjFsLTQuNjE4LTQuNzFjLjI1OS0uMzk0LjM2NC0uNzE4LjM0My0uOTY0bC0zLjI4Mi40MTUuMDcgMS44ODctMi45NTMgMi45NTctMi4yMjUtMi4yNzRjLjM1Ny0uNDkzLjMxNS0uODAyLjEyLTEuMDYzbC0yLjc4NSAyLjMwMiAyLjkzOSAzLTIuOTE4IDIuOTIxLTIuODQ3IDEuMjUzIDYuNzggNi45Mi4yOTMtLjI5NWMuNzg0LS43ODIgMS4yMS0yLjA2MyAxLjAzNi0yLjI0NmwtLjc1Ni0uNzc1IDMuMDM2LTMuMDQxYTEwLjQyNSAxMC40OSAwIDAgMSAyLjQ3OCA0LjExYy0xLjQ0OS4yNC0yLjg5LjE4NC00LjI5Ni0uMjY2bC0uMDcuMzU5YzEuNjE2LjczMiAzLjE1NSAxLjExMiA0LjY1MyAxLjE4Mi4zNDMgMi4zOTQtLjI3MyA1LjE2OC0yLjEwNiA4LjYwM2wuMjczLjE0OGMyLjQ5Ny0zLjQ1IDMuNjg3LTYuMzM2IDMuODYyLTguODI3IDMuMjYtLjQzIDYuNDM3LTIuMjA0IDkuODI0LTQuODQ0LS43Ny0xLjE1NS0uOTEtMi4zMTYtLjMwOC0zLjQxNGwtLjIxLS4yMTJjLTMuMDg2IDIuOTIyLTYuMjQxIDUuNDA3LTkuMzgzIDYuNjE4LS4zMDEtMS45ODYtMS4yOC0zLjc0Ni0yLjc2NC01LjQyOHptMTUuMTYyLTE5LjIzM2MxLjIzOSAxLjc5NSAyLjI2OCAzLjczMSAzLjAwMiA1LjczNy0xLjkxLS40MzYtMy44OS0xLjMzLTUuOTI2LTIuODE1em0tLjU4OC0yLjMxNi4wMzYgMS45NS0zLjUwNSAzLjUxMy0yLjk2Ny0zLjAzNGE1My43MzYgNTQuMDY2IDAgMCAwIDUuMTU3LTUuODg1Yy40NDEtLjE3Ni42MzctLjQwOS42MzctLjcwNGwtMy40MjEtLjM2LTMuMDAyIDYuNTY4LTIuMTYyIDEuMDIgNC4wMzYgNC4xMi0yLjYxLS4xNjMuNDYyIDEuOTU3LTQuMzI0LTQuNDE0Yy4zMjktLjQ1Ny4yOTQtLjcxOC4xMDUtLjk4NmwtMi40NjMgMi4wNyA0Ljk1NCA1LjA1NS0xLjA3OCAxLjA3Ny0zLjg3Ni0zLjk1NmMuMzQzLS40NzIuMjk0LS43ODkuMTA1LTEuMDVsLTIuNDc3IDIuMDU2IDcuNTUgNy43MWMyLjc0MyAyLjggNC44NDIgNS4yMzYgNS45NzUgOC4wNDZsLjM0My0uMDVjLjExOS0zLjU3Ni0xLjYyNC02LjUzMi00LjM0NS05LjQybDEuMzg1LTEuMzg2IDYuMzg4IDYuNTI2LjI5NC0uMjk2Yy42MjItLjYyIDEuMDE0LTEuODY1Ljg4OS0yLjAyN2wtNS41MzUtNS42NTNjLjI2LS4zOTQuMzY0LS43ODkuMzQzLTEuMDM1bC0zLjA3Mi4zOTQuMDcgMS43ODgtMS4yMjUgMS4yMjUtMi4zNTgtMi40MDggNC40MDgtNC40MDdjLjE4Mi0uMTgzLjI2LS4zNi4yMTctLjU0MmwxLjIxIDEuMjMyYzIuOTY3IDMuMDM0IDUuODU3IDYuMzQzIDYuNSAxMC41OTVsLjMwOC0uMDVjMS4wMjItNS41ODktMi4yMzgtOS4zNzctNS4wOTQtMTIuMjlsLS44NzQtLjg4Ny4zOTItLjM5NGMyLjUwNSAyLjA5IDQuNjg4IDMuNTI2IDYuNzU5IDQuMzU3YTE2LjA5MyAxNi4xOTIgMCAwIDEgLjEwNSA3LjU2bC4zNTcuMDY0YzEuMDIxLTIuNDkzIDEuNDM0LTQuODAxIDEuMzg1LTYuOTk4YTEyLjE3NCAxMi4yNDkgMCAwIDAgNS4yMDUuMjMzYy0uNDk3LTEuMTctLjM3OC0yLjI5NS4yOTQtMy4xNjhsLS4xMjYtLjE5OGExNC4xMzMgMTQuMjIgMCAwIDEtNS42MDQuOTQ0Yy0uNDQxLTIuNzI0LTEuNTYtNS4yNTktMi45OTUtNy42MS4zNDItLjQwOS40NTUtLjYyLjM5Mi0uOTE1em0xNy4xNzgtMTcuMzZjLjI0NS0uMjQ3LjMwOC0uNDcyLjE4Mi0uNzA0LTEuNDE0LjAxNC0zLjczNi4yNDYtMy43MzYuMjQ2bC4zOTIgMi43MS0zLjEzNSAzLjEzMy0yLjk0LTIuOTk5Yy40NDItLjYwNS4zOTMtLjkxNS4xODMtMS4yMzJsLTIuOTUzIDIuNCAzLjczIDMuODA5LTYuMDUyIDYuMDYuNTguMzMyIDQuNzY2LTQuNzczYzIuMTY5IDQuMDYyIDMuNDg0IDkuMzk4IDIuOTQ1IDE0LjE4NWguMzIyYzEuNDM1LTQuMzcyIDEuNTc1LTguNjIzLjYwMi0xMi41OGw0LjA2NSA0LjE1NC0zLjE0OCAzLjE1NC41OC4zMyAzLjAxNi0zLjAyIDMuNzMgMy44MS4zNzgtLjM3NGMuNzk3LS44MDIgMS4yMS0yIDEuMDM1LTIuMTc1bC0zLjE2Mi0zLjIzMSAyLjc5Mi0yLjc5NWMuMjMxLS4yMjUuMzA4LS40NzEuMTgyLS43MDQtMS4zMDItLjAwNy0zLjM5NC4wOTgtMy4zOTQuMDk4bC40NDEgMi40NjQtLjQ3NS40NzItNi42OTYtNi44MzZjNC42NiAyLjc3MyA5LjAzMyAzLjk0MiAxMy4xNCAzLjI4OC0uNjIzLTEuMjY3LS41ODgtMi41NDkuMDM0LTMuNDY0bC0uMTI2LS4yMzNhMTkuMTcxIDE5LjI5IDAgMCAxLTEyLjg1My4wNDN6bTkuNTcyLTExLjgwNi0zLjk2NyAzLjk3LjYwMi4zMTcgMy44Mi0zLjgyMiAyLjk1MiAzLjAxMi0zLjcgMy43MS42LjMxOCAzLjU1NS0zLjU2MiAzLjQzNSAzLjUwNi00LjQzNiA0LjQ0MS42MTYuMzMxIDQuMjg4LTQuMjk0IDQuMzEgNC40LjM5My0uMzk0Yy43Ny0uNzY3IDEuMTQ3LTIuMTYyLjkzNy0yLjM3M0w4NC40NjcgNzYuNzdjLjM3OC0uNTA2LjMzLS43ODguMTMzLTEuMDQ4bC0yLjg4MiAyLjM2NXptMTQuODMzLS4yOTYtMS43NDIgMS43NDYtMy4zODctMy40NTYgMy43ODUtMy43ODhjLjIzMi0uMjI1LjMzLS40OTMuMTk2LS43MThsLTMuMzU4LjIzMy4zNzggMi4zNjUtMS40NTUgMS40NTgtMi45MDQtMi45NjQgMy45OTYtMy45OTljLjIzLS4yMjUuMzI4LS40OTMuMTk1LS43MThsLTMuNDU2LjIzMy4zNzggMi40NjQtMS41NjggMS41Ny0yLjE2Mi0yLjIxYy4zOTItLjUyMS4zMy0uODE4LjEzMy0xLjA4NWwtMi45MDMgMi4zOCAxNC45NzMgMTUuMjgzLjM5Mi0uMzk0Yy43Ny0uNzY3IDEuMTQ3LTIuMTYxLjkzNy0yLjM3MmwtMy43MDgtMy43ODggNC4zMzgtNC4zNDRjLjI0NS0uMjQ2LjM0My0uNTA2LjE5Ni0uNzE3bC0zLjY1My4yMzJ6bTYuMDgtMjMuNzczIDEuMzIyIDEuMzUyLTYuMzMxIDYuMzM2LTEuMzIzLTEuMzUyem0tMy4xNDkgOS41ODEtMS4zODUtMS40MTUgNi4zMzItNi4zMzYgMS4zODUgMS40MTV6bS40Ny40NzggNi4zMzEtNi4zMzYuNjE1LjYyNy4zMy0uMzI0Yy42MjItLjYyIDEuMjU5LTEuOTE1IDEuMTgyLTIuMDI4bC0zLjUzNC0zLjYwNGMuMjgtLjQwOC4zNjQtLjc4OS4zNDMtMS4wMzVsLTMuMjYuNDY1LjA1NSAxLjg3Mi02LjA1MiA2LjA2MS0yLjgxMyAxLjIxOCA1Ljc0NCA1Ljg2NC4yNi0uMjZjLjc5Ny0uODAzIDEuMjQ1LTIuMDYzIDEuMDg0LTIuMjI1em00LjUwNSA2LjUxMiAyLjMwMi0yLjMwMiAxLjM1OCAxLjM4Ny0yLjAzIDIuNTg0em0tMS40NzYtNi4xNiAxLjQwNiAxLjQzNy0yLjMwMSAyLjMwMi0xLjQwNy0xLjQzNnptLS40MjcgNC4yMTggMi4zMDItMi4zMDIgMS40NTUgMS40ODUtMi4zMDIgMi4zMDJ6bTguMzU0LTIuNTU2LTEuMjI0IDEuNTg0LTQuOTItNS4wMjYgNy4yNDItNy4yNTFjLjIzMi0uMjI1LjM0My0uNTA3LjE5Ni0uNzE4bC0zLjQ0Mi4yMTguMzU3IDIuNDc4TDk5LjYgNzIuODk4bC42MDIuMzE3IDEuNjkzLTEuNjk2IDUuNTcgNS42OC0xLjY2NSAyLjAyOCAyLjc3IDEuMjExYy4xNDctLjIxLjE4My0uNTQyLjA4NC0uODM3bDMuMjk2LTYuMDA2IDIuMzM3IDIuMzg3LjMwOC0uMzFjLjkxNy0uOTE1IDEuMTEyLTEuODAyIDEuMDM2LTEuOTE1bC0yLjQzNS0yLjQ4NS45NTEtMS45Mjl6bS4yMS02LjExN2ExNSAxNSAwIDAgMSAxLjYxNyAzLjc5NSA4LjYwNiA4LjY1OSAwIDAgMS00LjU3LS44Mzh6bS0uNTI1LTIuMzE2LS4wMTMgMS45MzYtNC4yMjYgNC4yMy42MDEuMzE4LjkxNy0uOTE1YzEuOTI0IDEuMzAyIDMuNjI0IDIuMDQ4IDUuMjQ4IDIuMzVhMTIuNyAxMi43IDAgMCAxLS4zMDIgNS4yNjZsLjM0My4wODVjLjg2OC0xLjc4MiAxLjM2NS0zLjUyIDEuNTA0LTUuMTk1YTEyLjEwNCAxMi4xOCAwIDAgMCA0LjU4NC0uOTNjLS42NTgtMS4yMDMtLjctMi4zMy0uMTI2LTMuMjk0bC0uMTQ3LS4xODNjLTEuNC44OC0yLjgzNCAxLjYyNi00LjI3NSAyLjA2M2ExNC4wNjQgMTQuMTUgMCAwIDAtMS40Mi01LjA3NmMuMzQyLS40MDkuNDQtLjYwNi4zNzctLjg2N3ptMTAuNDY4LTYuMTc0YzEuMTY5LjMwMyAyLjY4NyAxLjAyOCAzLjU5IDIuMDQ5IDIuNjEtLjAzNSAxLjU2Ny00LjYzMi0zLjUwNi0yLjMzem0zLjgyNy0xMS4yMzUtMi4zNzkgMi4zODYtMy4yNi0zLjMzYzEuMjg3LTEuNjU0IDIuNDg0LTMuNTM0IDMuMTU1LTQuODU3LjY1LS4zNi45NDQtLjcxOC45NjYtMS4wNjNsLTMuNTkuMzk0YTIzLjkyOSAyNC4wNzYgMCAwIDEtLjk4NiA0Ljg2NGwtMi41NCAxLjMzOCA0Ljc0MyA0Ljg0My0yLjg0LjE3LjMxNSAyLjA5Ny0uODk2LjkwMWEyNi4zMDggMjYuNDcgMCAwIDAtLjI4Ny0zLjk4NGMuMzkyLS4zMjQuNDQxLS42NC4zMTUtLjkwMWwtMi42ODcgMS40MTUgMi4yNjgtMi4yNzRjLjIzMS0uMjI1LjMwOC0uNDcxLjE4Mi0uNzA0bC0yLjkyNS4xODMuMzAxIDIuMDItMS4wOTIgMS4wOTFjLjU0Ni0xLjI5NS0uOTg2LTMuMTU0LTQuMzQ1LS42MTNsLS4wMzQuMjMzYy45MzcuMTM0IDIuMTkuNTg0IDIuOTk1IDEuMzEuMjIzLS4wMzYuNDQtLjA3OC42MTUtLjE2M2wtMy41OSAzLjU5LjYwMi4zNDUgMS4wNzctMS4wNzctLjA2My4xMzRjMS4wMjIuNDUgMi4zOCAxLjE3NSAzLjIzMyAyLjExMiAyLjQ2My4wNzcgMS43NDItNC4xNi0zLjAyMy0yLjM5M2wzLjYzOC0zLjY0YTQ0IDQ0IDAgMCAxIDIuMzY1IDMuNzY2bC00LjYxOCA0LjYyNi42MDIuMzQ0IDMuMDM2LTMuMDQxIDEuOTA0IDEuOTQzLTIuODkgMi44OTQuNTguMzMgMi43NTgtMi43NiAxLjAxNCAxLjAzNi0yLjU0IDEuMDA3YzEuMTc1IDEuNTI3IDIuNzUgNC4wOTcgMy4zNDQgNi4yNDRsLjM0My0uMDE0Yy4yODctMi4yOC0uMjgtNC44MDgtLjg3NC02LjYzMWwuMTYtLjE2MiAyLjg3NiAyLjkzNWMuMTc1LjE4My4yMjQuMzMxIDAgLjU1NmwtMS40IDEuMjc1LjIxLjIxYy43MTQtLjUyIDEuMTctLjU4NCAxLjU3NS0uNTM0LjQwNi4wNDkuODExLjQyOSAxLjMwOC45MDggMS43NjQtMi4wNjMgMS4zMy0zLjAyNy4xNjktNC4yMTdsLTQuMzYtNC40NSAyLjY2LTIuNjZjLjIzLS4yMjYuMzA3LS40NzIuMTgxLS43MDUtMS4xMDUtLjAwNy0yLjg0LjE3LTIuODQuMTdsLjMwMSAxLjk4NS0uNzQ4Ljc1My0xLjkwNC0xLjk0MyAzLjAzNy0zLjA0MmMuMTQ3LS4xNDguMjMxLS4yOTUuMjMxLS40NTdsLjQ1NS40NjRjMi45MzkgMyA1LjY4MiA2LjI1OSA2LjAxIDEwLjU4OGwuMzQzLjAyMmMxLjQ3Ni01LjgxNS0xLjYyMy05LjUwNC00LjQ3OC0xMi40MThsLS41OC0uNTkxIDEuNTQ2LTEuNTUgOC45NDIgOS4xMjQuMzI5LS4zMjRjLjk4LS45NzggMS4xNDctMS45NjQgMS4wMzYtMi4wNzdsLTguNDI0LTguNTk1IDEuNDM0LTEuNDM2Yy4yMzEtLjIyNS4zMjktLjQ5My4xODItLjcwNC0xLjM0My4wMTMtMy40OTEuMjMyLTMuNDkxLjIzMnptMTMuMjczLTIwLjY2Mi4xMDUgMS45MjItMy44IDMuODA4LTIuMzA4LTIuNTg0Yy4zNDMtLjQ0My4zMjktLjc4OC4xMzMtMS4wNDlsLTIuNzg0IDIuMzY2IDMuMDAxIDMuMjMxLTMuMzU4IDMuMzY1LTIuODk3IDEuMjA0IDEyLjg4MSAxMy4xNDQuMzA5LS4zMWMuODE4LS44MTcgMS4xNDctMi4wNjIuOTAyLTIuMzA4TDEzMi40MzIgMzQuM2wzLjQ3Ny0zLjQ3OGMyLjU4MiAzLjA2MiA0LjA1OSA2LjAyIDMuNDk5IDEwLjNsLjQyLjA3YzEuNTMxLTMuNzggMS4zMzUtNi41NTQuMTQ2LTkuMDUzIDIuMDQzLjE3NiA0LjQyOS42OSA2LjAyNCAxLjY2OCAzLjEyMS0uNTEzLjcyOC01LjU5LTYuMzgtMi4zNTgtLjQ3LS44NzMtMS4wNzgtMS43MjQtMS43Ny0yLjU3bDQuMDE1LTQuMDE5IDkuMDg5IDkuMjcxYy4yNDUuMjQ3LjI3My40NzktLjAzNS43ODktLjUzOC41NDItMi45MDMgMi42MTItMi45MDMgMi42MTJsLjIyMy4yMzNjMS4xOS0uODY2IDEuODc2LTEuMDkxIDIuNTE5LTEuMTIuNjQzLS4wMjggMS4xOTYuMzAzIDEuOTI0Ljg0NSAyLjE1NS0yLjYyIDEuNzIxLTMuNzUyLjQyLTUuMDgzbC05LjAwNS05LjIwOGMuMjU5LS4zOTQuMzQyLS43NjcuMzQyLS45NjR6bTE2LjQzNS0xNS4yNDggMS40NjMgMi4xODkuMjQ1LS4wNWExNS40NjMgMTUuNTU4IDAgMCAwIC41NTItMy42ODhjLjMwOC0uMzQ1LjQ1NS0uNTU2LjQyNy0uODE3bC0zLjI3NC4wNS4wMDggMS45NS00LjMzOCA0LjM0M2MuNjA4LTEuNDU3LTEuMjE4LTMuNTEzLTQuMzE4LS4wNWwtLjAyLjIxMmE0LjQ3OCA0LjUwNiAwIDAgMSAzLjA0My44M2MuMTYtLjAzNS4zMDgtLjA3Ny40NDEtLjE0N2wtNC44NjMgNC44NjRhOC4wNDcgOC4wOTYgMCAwIDAtMS4xODItLjY0OGwtLjIzMS4yMjVhMy4zNTggMy4zOCAwIDAgMSAuODc0IDMuMjY2Yy0uMjQ1Ljc0LS4xNTQgMS41MjguNTg4IDEuOTIyLjgyNi4zOCAxLjczNS0uMjc1IDEuOTI0LTEuMTQuMTg5LS44NjYtLjE2OS0yLjE0Ny0xLjQ0Mi0zLjIyNHptLTIuODgyIDUuMTAzYzEuOTAzLS40NjQgNC43MDktLjYzMyA2LjUyLS4xMzMgMi43NjQtMS4yMzItLjUxNy01Ljc0NS02LjUzNS0uMTR6bS0zLjczIDExLjMwNmExOC40MDIgMTguNTE0IDAgMCAwIDEuNzk4LTguMTU4Yy4zOTItLjMyNC40MjctLjU1Ni4zNDMtLjgwM2wtMy4xMjEgMS4yMDRhMTcuOTgyIDE4LjA5MiAwIDAgMSAuNjQ0IDcuNzE2em0xMS4wOTctNi4yMTYtNC41OTcgNC42MDQtMS43NTYuNzQ2Yy43NzctMi44MDEgMS4wODUtNS41MjYuNzU2LTcuNjFhMTIuNTI1IDEyLjYwMSAwIDAgMCA1LjU0OS41MTR6bS0xLjE4MiA4LjMyOC0zLjA4Ni0zLjE0NyA0Ljg2My00Ljg2NCAzLjA4NiAzLjE0N3ptLTcuMzc1LTEwLjA4YzEuMzAyIDIuNjgxIDEuMDc4IDguNDgyLS4zNzggMTIuNzc3bC4yOTQuMTMzYTI5IDI5IDAgMCAwIDEuOTYtNC43MDNsNS4zMzcgNS40NTYuMjgtLjI3NGMuNzQ5LS43NTQgMS4xNjItMi4wMTQgMS0yLjE3NmwtLjY2NC0uNjc1IDQuODYzLTQuODY1IDEuMTEyIDEuMTM0LjMzLS4zMjRjLjYyMS0uNjIgMS4xOTUtMS45MTUgMS4wOTgtMi4wNDlsLTMuOTQtNC4wMmMuMjQ2LS4zNDQuMjk0LS42NTQuMjgtLjgzN2wtMi4xMjcuMjY3YTE3Ljg0MiAxNy45NTIgMCAwIDAgNC4xMjktMS4yOTVjLS41OTUtLjgxLS44OTYtMi4xMzMtLjM0My0zLjE1NGwtLjI1OS0uMjZjLTIuODM0IDEuOTkyLTYuODk5IDMuOTctOS45MzUgMy44NzguNDU1LS41NTYuNTUyLS44NTEuNDEyLTEuMTMzek00OC41MTggMTU5Ljk2Yy4yNDUtLjI0Ny4zNDMtLjUwNy4yMTctLjc0bC0zLjgxNC40My4zMDggMi42ODktMTEuNzYxIDExLjc3Ny41OC4zMzEgNi43MjQtNi43M2MyLjM4IDQuNDcgMy41NzUgMTEuMzM0IDIuOTEgMTcuMjgzaC4yNmEzMC4yOTYgMzAuNDgyIDAgMCAwIDEuMjMxLTEyLjA2Nmw4LjM2MSA4LjUzMi4zNTctLjM2Yy43Mi0uNzE3IDEuMjczLTEuOSAxLjE4Mi0yLjAyN2wtOS4yNS05LjQ0Yy4yNi0uMzYuMjk0LS42Mi4xOTYtLjgxOGwtMS4zODUuNjM0YTI1IDI1IDAgMCAwLTEuMzA4LTQuMzAxem0tMS40IDkuOTU0YzIuNzc4LS40MyA2Ljc1My0uNDkzIDkuMjY1LjI4OSAzLjI1My0xLjA5OC0uMjk0LTYuMzY0LTkuMjY0LS41Nzh6bTEyLjUwNC0yMy44NWE4LjExNyA4LjE2NiAwIDAgMSAzLjg1NS43NzRjMi43MDEtLjcxMS43MjgtNS4xOTUtMy44NDEtMS4wMTR6bS0zLjM1MiAxMS4wMjNhMjkuNjY3IDI5Ljg0OSAwIDAgMC0xLjU5NS01LjAyNmMuMzkyLS4zNTkuNDQxLS43MDQuMjk0LS45ODZsLTMuNTgzIDEuODUyYzIuNDc3IDMuOTc3IDQuMjY4IDguNzE1IDQuODUgMTIuMTc5bC4zMjEtLjA2M2ExOS41MjEgMTkuNjQgMCAwIDAgLjIwMy00LjUxM2w4Ljc0NiA4LjkyNy4zNTYtLjM2Yy43MzUtLjczMiAxLjExMy0xLjkyOC45ODctMi4wOTdsLTkuNDg4LTkuNjg3Yy4yNTktLjM2LjI5My0uNjIuMjE3LS44Mzh6bTE3LjQwOS01LjM4NS0uMjEuMTQ4YTIzLjcyIDIzLjg2NSAwIDAgMSAuOTU5IDMuMDljLjExMi40NDQgMCAuNTU3LS40OS41OTItMy41NC41NzctNi45NDEtMS4wMTQtMTAuMTUzLTMuNTA2bDQuMjMzLTUuMzQzYy4xOTYtLjI2LjI0NS0uNTQyLjA5OC0uNzU0LTEuNDE0LjI3NS0zLjQ3OC44NzMtMy40NzguODczbC41MDQgMi40NjQtMS44NiAyLjM1MWE0Ni41MyA0Ni44MTUgMCAwIDEtNC4zNi00LjExOGMuMzQzLS40NzIuMjk0LS44MTcuMTItMS4wNjNsLTIuODU1IDIuMjRhNTguMjg0IDU4LjY0MSAwIDAgMCA1LjQ1OCA1LjAxMmwtMy4wMzcgMy44NTcuNjE2LjI2NyAyLjkzOS0zLjczYzMuOTQ2IDMuMDM0IDguMDI1IDQuODkyIDEyLjUzOCA0LjQ0OSAxLjQ0OC0uMTc2IDMuNDY0LS44ODcgMy40MjEtMi4zOC0uMDEzLS41NDItLjU2LS45MzYtMi4wOTktMS4yODh6bTEwLjc5NS0xNy4wODVjLjI4NyAxLjI0Ni40NTUgMy4zNjUuNDQxIDUuMTY4YTExLjI2NSAxMS4zMzQgMCAwIDEtNC45MTItMS4yODJsNi4xMDItNi4xMWMuMjMxLS4yMjUuMzI5LS40OTMuMTk2LS43MThsLTMuMzk0LjIzMi4zMjkgMi40MTUtMy42ODcgMy42ODktMS44OS0xLjkyOSA0Ljg0Mi00Ljg1Yy4yMzItLjIyNS4zMy0uNDkzLjE5Ni0uNzE4bC0zLjI2LjIzMi4zNDIgMi4yOTUtMi41NzUgMi41ODQtMS43OS0xLjgzIDUuNDc4LTUuNDkxYy4yMy0uMjI1LjMwOC0uNDcyLjE4Mi0uNzA0bC0zLjMzLjIzMi4zMjggMi4zNDUtMy4xMzUgMy4xMzItMS4zNTctMS4zODZjLjM1Ni0uNDkzLjM0Mi0uODAzLjE1My0xLjA2M2wtMi43ODQgMi4zNjYgMi4wMTUgMi4wNTUtNS42MTEgNS42MTguNjE1LjMzMSA1LjQ2NS01LjQ3IDEuNzkgMS44My00LjgxMyA0LjgxNi41ODEuMzMgNC42OC00LjY4OCAxLjg5IDEuOTI5LTYuNDMgNi40MzQuNjAxLjM0NSA1LjIyLTUuMjIzYy40OSAyLjk3LjE5IDYuODU2LTEuMDkxIDEwLjQyNmwuMzA4LjEycTEuNjE1LTIuNzk5IDIuNTYtNS41OTdsMi4yMjYgMi4yNzNjLjI5My4yOTYuMzU2LjU5Mi4wMDcgMS43NTNsMy4xNjIuNjgzYy4wMzUtLjE5Ny4wNS0uNDQ0LjAyLS43MDRsMS43NzgtNy43MTYtLjI0NS0uMTEzLTIuNTI2IDQuNDIxLTMuNTk2LTMuNjc0YTE0LjEzMyAxNC4yMiAwIDAgMCAuMTg5LTQuNTI3YzQuODM1IDMuMjE3IDkuMDE5IDMuOTI4IDEzLjEzMyAyLjI1My0uODA1LTEuMDItLjk0NC0yLjI4MS0uNTE4LTMuNjI2bC0uMTk2LS4yNmMtMi4wMzYgMS40MTUtNC4xOTggMi4zOC02LjUzNSAyLjUzNS44NjctMS43NTMgMS41OTUtMy43MTcgMS45OTQtNS4xMjUuNDQtLjI3NS40ODktLjUyMS40NC0uNzY4em02LjI1Ni0xOS41MDhjMS4xMi0uMTQgMi43My4wNDIgMy43My42MDYgMi42NTEtLjgyNC40ODItNS4yNDUtMy43MDgtLjg1MnptNi41MzUgMS4xNjJjLjUxMSAxLjM0NCAxLjEzNCAzLjY2IDEuNDc2IDUuNTk3YTE0LjA2NCAxNC4xNSAwIDAgMS00LjM1OC0xLjY0bC0xLjEyNy0xLjE1NSA2LjEwMi02LjExYy4yNDUtLjI0Ny4zMjgtLjQ5NC4xOTYtLjcxOS0xLjM2NS4wNTctMy40NzguMzQ1LTMuNDc4LjM0NWwuMjggMi40MjktMy41NzUgMy41NzYtMi43NDMtMi44MDFjLjM0Mi0uNDcyLjMyOS0uNzU0LjEzMy0xLjAxNGwtMi44MDYgMi4yODggMy40MzUgMy41MDYtNi4zMzIgNi4zMzYuNjAyLjM0NSA2LjE5OS02LjIxIDQuNjggNC43OC0zLjQwNyA4Ljk5IDMuNTMzLjU3Yy4wODQtLjI4MiAwLS41OTEtLjE3NS0uODM3bC42MDktOC4xNTIgMy40ODQgMy41NTVjLjIyNC4yMzIuMjM4LjQwOC0uMDU2LjcwNC0uMzkyLjM5NC0yLjQ2MyAyLjIwMy0yLjQ2MyAyLjIwM2wuMjEuMjExYzEuMDc3LS43NTMgMS43MDctLjkyOSAyLjI5NS0uOTIyczEuMTMzLjM2NiAxLjgxMi45M2MyLjEwNi0yLjUgMS42NTgtMy41ODQuMzIyLTQuOTU3bC02Ljc1OS02Ljg5OWM0LjkxOSAzLjIzOSA4LjUzIDMuNjk2IDEyLjU2IDIuODkzLS42OTQtMS4xNjgtLjc5OC0yLjQ5OS0uMTc2LTMuNDc3bC0uMTI2LS4yMzNjLTIuMzcyIDEuMTA1LTUuMTU3IDEuOTkzLTguMjcgMS41NTZhMzkuNDYyIDM5LjcwNSAwIDAgMCAxLjIxNy01LjY4OGMuNDA2LS4zNDUuNTA0LS41Ny40MjgtLjgxN3ptLTkuNzYgMTAuNDI2YzEuNjAyLjEyIDMuNjguNjkgNS4wMDIgMS43MSAzLjIzMy0uNDI4IDEuMTQ3LTUuNzg2LTQuOTUzLTEuOTU2em0xMS44OTQtMjEuNzA0YzEuMjAzLjAwNyAyLjg1NS4zMzggMy45MTkuOTcxIDIuNjgtLjYyNi43OS01LjA5Ni0zLjg5LTEuMjMyem0uMzcxIDMuNjQ3IDEzLjEwNiAxMy4zNzUuMzA4LS4zMWMuNy0uNzA0IDEuMDc3LTEuODMuODg5LTIuMDI3bC0xMS43OTctMTIuMDM4Yy40NC0uNTcuMzc4LS45MDIuMTgyLTEuMTk3em0xNC41NTQgMy42MDQtMi0yLjA0MiAyLjU0Ni0yLjU0OCAxLjgyNiAxLjg1OHptLTQuMTctOS4zOTggMS44NTMgMS44OTMtMi41NDcgMi41NDgtMS44NTQtMS44OTN6bS0uMjI0IDQuOTIgMi41NDctMi41NDggMS45MzggMS45NzgtMi41NDcgMi41NDh6bS43Mi0xMy4zNDcuMTQgMS43ODgtNi4yNjIgNi4yNzIuNjAyLjMxNyA2LjI4My02LjI4NiAxMC45OTIgMTEuMjE0Yy4yNi4yNi4yNzMuNDc5LS4wMi43NzVhNDUuNTUgNDUuODI5IDAgMCAxLTEuNzY0IDEuNTdsLTEuODI2LTEuODU5IDEuMzcxLTEuNjA0Yy4xOTYtLjIzMy4yNDUtLjUwNy4wOTgtLjcxOGwtMi41Ni0uMTc2LjI3OSAxLjY3NS02LjExNS02LjI0NCAxLjI1OS0xLjI2Yy4yMzEtLjIyNS4zMjktLjQ5My4xODItLjcwNWwtMi44OS4yNTQuMjMyIDIuMDItNi41OTEgNi41OTYuNTY3LjM0NSAxLjI3My0xLjI3NCA2Ljg0MyA2Ljk4My0xLjQ4NCAxLjcxOC42NzkuMzMgNS4yNzUtNi4wOTYgMi45NjYgMy4wMzQuMjk0LS4yOTVjLjg4MS0uODggMS4wNzctMS43NjcuOTg3LTEuODY2bC0uNTE4LS41MjhjLjYxNS0uMzYgMS4wNTYtLjQ3MiAxLjQ5Ny0uNDg2LjUwNC4wMiAxLjAzNi4zNjYgMS42NTEuODkzIDEuOTQ2LTIuMzcyIDEuNTEyLTMuMzcyLjI4Ny00LjYyNWwtMTAuOTA4LTExLjEzN2MuMjgtLjM3My4zNjQtLjc1My4zNDMtMXptMTguOTI2LTguOTMzIDMuNTIgMy41OS02LjQ1OCA2LjQ3LTMuNTItMy41OXptMS4zNjUgMTQuNDYtMy44NTYtMy45MzYgNi40NTgtNi40NyAzLjg1NiAzLjkzNnptLTQuMjk2LTE5LjE5OEwxMTUuMjQgOTIuMTY2bC42MDEuMzQ1IDUuNzI0LTUuNzMgMi41OTYgMy4yMS0xLjM3MiAxLjM3My0yLjkyNSAxLjIzMiAxMS4wMDcgMTEuMjM1LjMwOC0uMzA5Yy44NDctLjg1MiAxLjE5Ni0yLjExMi45NzMtMi4zNDRsLS43NDItLjc2IDYuNDU4LTYuNDcgMS4zMzYgMS4zNjYuMzI5LS4zMjRjLjY4NS0uNjgzIDEuMjEtMi4wNjIgMS4wOTktMi4yMWwtOC43Ni04Ljk0OGMuMjgtLjQwOC4zNDMtLjc2Ny4zMjktMS4wMTRsLTMuMzMxLjM5NC4wODQgMS45NzEtNC4xNzggNC4xODJhMjMuNTggMjMuNzI0IDAgMCAwLS44MzItNC45NzdsNS44OTEtNS45Yy4yNDUtLjI0Ni4zNDMtLjUwNi4yMTctLjczOWwtMy42NTMuNDN6bTEyLjIwMi0xMS42NTdjMS4zMy0uMDI5IDMuMTEzLjM3MyA0LjE3NyAxLjE2OCAyLjg5LS40NDQgMS4wNjQtNS4zMDgtNC4xNjMtMS40MTV6bTMuNjczIDQuMzc4YzEuMzAyLS4wNTYgMy4wNjUuMjkgNC4xNSAxLjAzNiAyLjg3NS0uNTI5Ljk1MS01LjM5My00LjE1LTEuMjY3em0tMi43ODQgMi4yMDQgMi4yNjctMi4yNzNjLjIxLS4yMTIuMzA4LS40NzIuMTgyLS43MDUtMS4xNjgtLjAwNi0zLjAzNi4wOTktMy4wMzYuMDk5bC4zOTIgMi4xNDctLjI2LjI2LTIuODQtMi45IDEuMTI2LTEuODE2Yy43LS4zNDUgMS4wMDgtLjc1MyAxLjA0My0xLjExM2wtMy45MTEuMjMzYTI5LjQ1NyAyOS42MzggMCAwIDEtMi40NTYgNy42MTdsLjI3My4xNDggMi4zNjUtMi44OTMgMi41MzMgMi41ODQtMi41NzUgMi41ODMuNTgxLjMzMSAyLjIxOC0yLjIyNGMxLjczNSAyLjc5NSAzLjIyNiA2LjE2NyAzLjYxNyA5LjE2NWwuMzcxLS4wMTRhMTguNTQxIDE4LjY1NiAwIDAgMC0uMDk3LTUuNjQ1bDUuOTkgNi4xMS4zNDItLjM0NWMuOTE2LS45MTUgMS4wOTgtMS45NS45ODYtMi4wNjJsLTcuNzMxLTcuODkyYzEuMDg0LjI4MiAyLjM1Ljc0NiAzLjIwNCAxLjM5NCAyLjUxOS0uMjA0IDEuMzcyLTQuNDQyLTMuNjg3LTEuODg3em0xMi42MzYtNC43NTItLjA5OC4xNjItOC4zNC04LjUxOGMuMzc4LS41MDcuMzE1LS44MDIuMTE5LTEuMDYzbC0yLjY4NyAyLjIwNCA5LjM5IDkuNTg4LTQuNDE1IDYuNDc3LjY2NS4yMTggNC4yMTktNi4yMTYgNC44MjggNC45MjguMzU2LS4zNmMuNy0uNzA0IDEuMDg1LTEuOTI4Ljg5LTIuMTI2bC00LjU3LTQuNjYgMS43MTQtMi41MzVjLjE2LS4yMzMuMTk2LS41Mi4wMzUtLjY5bC0yLjg0LjMwMnptLS43LTE4LjE2M2MxLjQ0MS4yMTggMy4zMS43MDQgNC41NyAxLjYyNyAzLjE4Mi0uNDc5IDEuMjgtNS43ODctNC41MjEtMS44Mzh6bTEyLjc3Ni00LjYzOWMuMjMyLS4yMjUuMzMtLjQ5My4xOTYtLjcxOGwtMy43MzYuNDA5LjMwOCAyLjU5LTExLjAxMyAxMS4wMjUuNjE1LjMzem0tMTAuNTMgMTIuN2MyLjk4IDEuMzU5IDYuNTU3IDMuMjYgOC44OTMgNS41NDcgNC4xMzUtLjA2My42NjUtNi42MS04Ljc0Ni01LjgyOXptMTcuNzI0LS43NzUtMy40MDggMy40MTVjLS44NTQtMy45Ny0yLjQ4NC04LjYxLTMuNzUtMTEuNTQ1LjQwNS0uMzczLjQxMi0uNzQuMjkzLS45ODZsLTMuNTMzIDIuMDdjMi4wMjkgMi45NjQgNC43MyA3LjQ5OCA2LjUxNCAxMC45NGwtOC4yNyA4LjI3OC41OC4zMzEgMTQuODQ3LTE0Ljg2Yy4yNDYtLjI0Ny4zNDMtLjUwOC4yMTctLjc0bC0zLjguNDQ0em01LjgtMTQuOTg4LTEuNyAyLjg4LTQuNjE4LTQuNzEgMi4yMTgtMi4yMjRjLjIzMS0uMjI1LjI5My0uNDU4LjE2OC0uNjktMS4xMDYtLjEzNC0yLjk2Ni0uMTkxLTIuOTY2LS4xOTFsLjUzOCAyLjIzMS0uNDA2LjQwOS0zLjYxNy0zLjY4OWMuMzc4LS41MDcuMzE1LS44MDIuMTMzLTEuMDg0bC0yLjY4NyAyLjI2NyA0LjI5NiA0LjM3OC0yLjAyMiAyLjAyOC41NjcuMzQ1IDEuOTEtMS45MDggNS4wNjUgNS4xNzQtMS42MjMgMi41NyAzLjI0IDEuMTYyYTEuMDUgMS4wNTYgMCAwIDAtLjAyOS0uODUybDEuNzY0LTcuOTYyWm0zLjk1My0xMS4zOTctLjAxNCAxLjkwMS00LjU5NyA0LjYwNC44OTYtOS4xOGMuNDI2LS40OTMuNzItLjk3OC42ODUtMS4zNDVsLTMuNDA3LjMxNy4wNyAxLjgyNC01LjcxIDUuNzE2LjYwMi4zMTcgNS4zMTgtNS4zMjFjLS4wNjMgMi4zNDQtLjQ3IDYuMDgyLS44NjEgOC42ODdhNi4zIDYuMyAwIDAgMC0uODA0IDEuMzkzbDIuOTUyLjAxNC4yNTItMS40OTIuNjM3LS42MzRjMS40NzYgMy4wNTUgMi4wOTIgNi42MTcgMS4zNzIgMTAuMThsLjM5MS4wN2MxLjYxNy00LjM1NyAxLjU2OC04LjMyNyAwLTEyLjAxbC41MjUtLjUyYzIuNzM2IDQuMzA4IDMuNTU1IDkuMDA0IDEuNzIxIDE0LjM2MWwuMzU3LjA3YzMuMDE2LTYuMjUxIDIuNjEtMTEuMzU1LS4yNzMtMTYuMjRsLjQ5LS40OTNjMy41OTYgNC4wMzQgNS4zNTIgNi40NTYgNS4yODIgNy40MDUtLjAzNS4yOTYtLjEyLjQ3OS0uMzc4Ljc0YTQzLjY2IDQzLjkyOCAwIDAgMS0xLjk3MyAxLjc0NmwuMjEuMjQ2Yy43NDgtLjQ4NiAxLjQ2Mi0uNzgxIDEuOTUyLS43NDZzLjk3My40MDEgMS40OS45MjJhNC4xMjggNC4xNTMgMCAwIDAgMS40MTQtMi43MTdjLjEyLTEuNjU1LTEuNTMyLTQuMTc1LTUuOTQtOS4wNjcuMzA4LS40MDkuMzkyLS43MTguMzc4LS45NjV6XCIvPjwvc3ZnPicpO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGluc2V0OiAwO1xufVxuaHRtbDpsYW5nKHpoLWhhbnQpIC5IaXN0b3J5RGlzY2xhaW1lci1tb2R1bGVfX2Rpc2NsYWltZXJfVzlTWW9HIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdkYXRhOmltYWdlL3N2Zyt4bWwsPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMDBcIiBoZWlnaHQ9XCIyMDBcIiBmaWxsPVwiJTIzY2NjXCIgb3BhY2l0eT1cIi4zXCIgdmlld0JveD1cIjAgMCAyMDAgMjAwXCI+PHBhdGggZD1cIk0xMy4xMTYgMTU1LjgyMyAyNC44NSAxNDQuMDFjLjIzLS4yMjUuMzI3LS40OTMuMTk1LS43MThsLTMuNDcyLjM2LjI4IDIuNDYzLTguOTEgOC45NjlMMTAgMTU2LjI1M2w0LjgxOCA0Ljk0MWMzLjExNiAzLjE5NyA2Ljc1NSA3LjAzMyA4LjUyNiAxMS4yOTJsLjMwNy0uMDc4Yy0uMDctNS42MS00LjE0MS0xMC4wMjQtNy4wNjItMTMuMDIzem0xMi45MDUtNi43ODYtLjY2My42NjgtMS40NzgtMS41MTMuOTI3LTEuMzU5Yy41MzctLjIxMS44MjMtLjUwNy44NTgtLjgzbC0yLjU1Mi4wNTVjLS40NzQgMS40NTgtMS42NTMgNC4wNDgtMi43NiA1Ljg3OWwuMzMzLjE4MyAxLjc3MS0yLjA3NyAxLjI3IDEuMzAyLTEuODIgMS44My0yLjEzNC4xNTUuMjE2IDEuNzc0LS4xOTUuMTk3LTEuNDc4LTEuNTEzLjcxOC0xLjExMmMuNTY1LS4yNDcuODU4LS41MzYuODU4LS44MzFsLTIuNTM4LjEwNmMtLjM2MyAxLjM4LTEuMzI1IDMuNzgtMi4zMDggNS41NTRsLjMyLjE2MmEyNyAyNyAwIDAgMCAxLjYyNS0yLjAyOGwxLjIyIDEuMjUzLTEuODY5IDEuODguNTkzLjM0NSAxLjM0Ni0xLjM2YTExLjM2NCAxMS40NzUgMCAwIDEgMS4zMzEgNC44OTNsLjQwNC4wODVhMTIuNDEgMTIuNTMgMCAwIDAgLjQ4OC0zLjQ5MmwxLjk2IDIuMDA2LjI3OS0uMjc1Yy43OTQtLjgwMi45NjItMS42NTQuODc4LTEuNzMxbC0yLjc0Ny0yLjgxNmE0LjYwMSA0LjY0NiAwIDAgMSAyLjAyOS44MzFjMi4wODQtLjI0IDEuMjc1LTMuNzY2LTIuMzUtMS4xNjJsLS4zMDctLjMxIDEuODk2LTEuOTA3YTEuMSAxLjEgMCAwIDAgLjE4Mi0uMjQ3bC4wMzQuMDM2IDEuMzk1LTEuNDA4Yy43NTMgMS42ODkgMS4yMDYgMy41ODMgMS4wNjcgNS40NDhsLjM5LjA3Yy40Ni0xLjM3Mi43Ni0yLjc1Mi43OTUtNC4wNjFsMS45MjQgMS45NzguMjkzLS4yOTZjLjgwOC0uODE3Ljk3Ni0xLjcwNC44NzgtMS44MDJsLTMuMjI4LTMuMzA4YzEuODM0IDEuMTg5IDMuNDc5IDEuODE1IDUuMDQgMS43NzMtLjcwMy0xLjA4NC0uODE1LTIuMDItLjM1NS0yLjc3M2wtLjE0Ni0uMjExYTYuOTcyIDcuMDQgMCAwIDEtNC4yMzIuNzRsMi4xODktMi4yMDVjLjIzLS4yMjUuMzA2LS40NzEuMTY3LS42OWwtMi44NDUuMTU1em04LjgwNSAxMC4wOTUtMi40NjcgMi40ODQtMi41NjYtMi42MzMgNC4wMDktNC4wMzRjLjI0My0uMjQ2LjM0LS41MDcuMTk1LS43MThsLTMuMi4zMTcuMjQ0IDIuMjMxLTEuNzIyIDEuNzMyLTEuNjAzLTEuNjQ3Yy4zNC0uNDcyLjI5Mi0uNzE4LjExOC0uOTY0bC0yLjUzMSAyLjE1NCA1LjI1IDUuMzg2LTEuODM0IDEuODQ0LTMuNTE0LTMuNjA0Yy4zMDctLjQ0NC4zMTQtLjcwNC4xMDUtLjk1bC0yLjQ5NiAyLjExOCA0LjEyOCA0LjIzMS0yLjQ5NiAyLjUxMy41OTIuMzQ1IDEyLjc1OS0xMi44NGMuMjMtLjIyNS4zMjctLjQ5My4xOTUtLjcxOGwtMy40MjMuMzh6bS42NzctMTQuNjE1LTMuNzEtMy44MDkgMy4wMzQtMy4wNTUgMy42NzQgMy43NzMuMDM1LjAzNXptNC4zNzItMTEuOTQgMy43MDggMy44MDgtMy4xMDIgMy4xMi0uMDM1LS4wMzYtMy42NzQtMy43NzN6bTQuMTQgNC4yNTIgMS4yNyAxLjMwMi4zMjctLjMyNGMuNjYzLS42NjggMS4xOTMtMi4wMTMgMS4wNzQtMi4xNjFsLTQuNTk0LTQuNzFjLjI1OC0uMzk0LjM1Ni0uNzE4LjM0MS0uOTY0bC0zLjI2My40MTUuMDcgMS44ODctMi45MzUgMi45NTctMi4yMTctMi4yNzRjLjM1Ni0uNDkzLjMxNC0uODAyLjExOS0xLjA2M2wtMi43NzUgMi4zMDIgMi45MjEgMy0yLjkwNyAyLjkyMS0yLjgzIDEuMjUzIDYuNzQxIDYuOTIuMjkzLS4yOTVjLjc4MS0uNzgyIDEuMjA2LTIuMDYzIDEuMDMyLTIuMjQ2bC0uNzU0LS43NzUgMy4wMTktMy4wNDFhMTAuMzg4IDEwLjQ5IDAgMCAxIDIuNDYxIDQuMTFjLTEuNDM3LjI0LTIuODcyLjE4NC00LjI3NC0uMjY2bC0uMDcuMzU5YTEyLjc1OSAxMi44ODMgMCAwIDAgNC42MyAxLjE4MmMuMzQxIDIuMzk0LS4yNzIgNS4xNjgtMi4wOTggOC42MDNsLjI3Mi4xNDhjMi40ODgtMy40NSAzLjY2Ny02LjMzNiAzLjg0MS04LjgyNyAzLjI1LS40MyA2LjQwOC0yLjIwNCA5Ljc3NS00Ljg0NC0uNzY3LTEuMTU1LS45MDYtMi4zMTYtLjMwNy0zLjQxNGwtLjIwOS0uMjEyYy0zLjA2NyAyLjkyMi02LjIxMiA1LjQwNy05LjMzNSA2LjYxOC0uMjkzLTEuOTg2LTEuMjY5LTMuNzQ2LTIuNzQ3LTUuNDI4em0xNS4wODgtMTkuMjMzYzEuMjMzIDEuNzk1IDIuMjU5IDMuNzMxIDIuOTkgNS43MzctMS45MDMtLjQzNi0zLjg2OS0xLjMzLTUuODkxLTIuODE1em0tLjU4Ni0yLjMxNi4wMzUgMS45NS0zLjQ4NiAzLjUxMy0yLjk1Ni0zLjAzNGE1Mi44NDcgNTMuMzYyIDAgMCAwIDUuMTMxLTUuODg1Yy40MzktLjE3Ni42MzQtLjQwOS42MzQtLjcwNGwtMy40MDItLjM2LTIuOTkgNi41NjgtMi4xNTUgMS4wMiA0LjAxNiA0LjEyLTIuNi0uMTYzLjQ2IDEuOTU3LTQuMzAxLTQuNDE0Yy4zMjctLjQ1Ny4yOTMtLjcxOC4xMDQtLjk4NmwtMi40NDcgMi4wNyA0LjkzIDUuMDU1LTEuMDc0IDEuMDc3LTMuODU2LTMuOTU2Yy4zNDEtLjQ3Mi4yOTMtLjc4OS4xMDUtMS4wNWwtMi40NjggMi4wNTYgNy41MTUgNy43MWMyLjcyNyAyLjggNC44MTggNS4yMzYgNS45NDcgOC4wNDZsLjM0MS0uMDVjLjExOS0zLjU3Ni0xLjYxLTYuNTMyLTQuMzIyLTkuNDE5bDEuMzgtMS4zODcgNi4zNTggNi41MjYuMjkzLS4yOTVjLjYxNC0uNjIgMS4wMTEtMS44NjYuODg2LTIuMDI4bC01LjUwOC01LjY1M2MuMjU4LS4zOTQuMzYyLS43ODkuMzQtMS4wMzVsLTMuMDUzLjM5NC4wNyAxLjc4OC0xLjIyIDEuMjI1LTIuMzQzLTIuNDA4IDQuMzg2LTQuNDA3Yy4xOC0uMTgzLjI1OC0uMzYuMjE2LS41NDJsMS4yMDYgMS4yMzJjMi45NTYgMy4wMzQgNS44MjggNi4zNDMgNi40NjIgMTAuNTk1bC4zMDctLjA0OWMxLjAxOC01LjU5LTIuMjI0LTkuMzc3LTUuMDY4LTEyLjI5MWwtLjg2NS0uODg3LjM5LS4zOTRjMi40OSAyLjA5IDQuNjY0IDMuNTI3IDYuNzI4IDQuMzU3LjU4NiAyLjQ1LjY5NyA0Ljk3LjEwNSA3LjU2MWwuMzU2LjA2M2ExNi45NDIgMTcuMTA3IDAgMCAwIDEuMzgtNi45OThjMS43MDguNDY1IDMuNDAyLjUyIDUuMTguMjMzLS40OTUtMS4xNjktLjM3Ny0yLjI5NS4yOTMtMy4xNjhsLS4xMjYtLjE5N2MtMS44MjYuNjYxLTMuNjY3IDEuMDQ4LTUuNTc3Ljk0My0uNDM5LTIuNzI0LTEuNTU1LTUuMjU5LTIuOTc3LTcuNjEuMzQyLS40MDguNDU0LS42Mi4zOS0uOTE1em0xNy4wODgtMTcuMzZjLjI0NC0uMjQ3LjMwNy0uNDcyLjE4Mi0uNzA0LTEuNDAyLjAxNC0zLjcxNy4yNDYtMy43MTcuMjQ2bC4zOSAyLjcxLTMuMTE1IDMuMTMzLTIuOTIyLTIuOTk5Yy40NC0uNjA1LjM5LS45MTUuMTgyLTEuMjMybC0yLjkzNiAyLjQgMy43MDkgMy44MDktNi4wMjQgNi4wNi41NzkuMzMyIDQuNzQtNC43NzNjMi4xNTUgNC4wNjIgMy40NzMgOS4zOTggMi45MyAxNC4xODVoLjMyYTIyLjMxIDIyLjUyNyAwIDAgMCAuNi0xMi41OGw0LjA0MyA0LjE1NC0zLjEzIDMuMTU0LjU3OC4zMyAzLjAwNS0zLjAyIDMuNzA5IDMuODEuMzc2LS4zNzRjLjc5NS0uODAyIDEuMjA2LTIgMS4wMzItMi4xNzVsLTMuMTQ1LTMuMjMxIDIuNzc1LTIuNzk1Yy4yMy0uMjI1LjMwNy0uNDcxLjE4MS0uNzA0LTEuMjktLjAwNy0zLjM3NC4wOTgtMy4zNzQuMDk4bC40NCAyLjQ2NC0uNDc1LjQ3Mi02LjY2NS02LjgzNmM0LjYzNiAyLjc3MyA4Ljk4NyAzLjk0MiAxMy4wNzIgMy4yODgtLjYyLTEuMjY3LS41ODYtMi41NDkuMDM1LTMuNDY0bC0uMTI2LS4yMzNhMTkuMDMzIDE5LjIxOSAwIDAgMS0xMi43ODYuMDQyem05LjUyNC0xMS44MDYtMy45NDYgMy45Ny41OTIuMzE3IDMuOC0zLjgyMiAyLjkzNSAzLjAxMi0zLjY4MSAzLjcxLjU5My4zMTggMy41MzQtMy41NjIgMy40MjQgMy41MDYtNC40MTQgNC40NDEuNjE0LjMzMSA0LjI2Ny00LjI5NCA0LjI4NyA0LjQuMzktLjM5NGMuNzYtLjc2NyAxLjE0NC0yLjE2Mi45MzQtMi4zNzNMODQuOTA1IDgxLjc3Yy4zNzctLjUwNi4zMjgtLjc4OC4xMzItMS4wNDhsLTIuODcyIDIuMzY1em0xNC43NTktLjI5Ni0xLjczNiAxLjc0Ni0zLjM3NS0zLjQ1NiAzLjc2NS0zLjc4OGMuMjMtLjIyNS4zMjgtLjQ5My4xOTUtLjcxOGwtMy4zNC4yMzMuMzc3IDIuMzY1LTEuNDQzIDEuNDU4LTIuODkzLTIuOTY0IDMuOTc0LTMuOTk5Yy4yMy0uMjI1LjMyNy0uNDkzLjE5NS0uNzE4bC0zLjQzOC4yMzMuMzc3IDIuNDY0LTEuNTU1IDEuNTctMi4xNTQtMi4yMWMuMzktLjUyMS4zMjctLjgxOC4xMzItMS4wODVsLTIuODg2IDIuMzggMTQuODk4IDE1LjI4My4zOS0uMzk0Yy43Ni0uNzY3IDEuMTQ0LTIuMTYxLjkzNS0yLjM3MmwtMy42OTUtMy43ODggNC4zMTYtNC4zNDRjLjI0My0uMjQ2LjM0LS41MDYuMTk1LS43MTdsLTMuNjMzLjIzMnptNi4wNTItMjMuNzczIDEuMzE3IDEuMzUyLTYuMjk2IDYuMzM2LTEuMzE3LTEuMzUyem0tMy4xMzggOS41ODEtMS4zOC0xLjQxNSA2LjI5NS02LjMzNiAxLjM4IDEuNDE1em0uNDY3LjQ3OCA2LjI5Ni02LjMzNi42MTQuNjI3LjMyNy0uMzI0Yy42MTMtLjYyIDEuMjU1LTEuOTE1IDEuMTcxLTIuMDI4bC0zLjUxMy0zLjYwNGMuMjc5LS40MDguMzYzLS43ODkuMzQxLTEuMDM1bC0zLjI0OS40NjUuMDU2IDEuODcyLTYuMDIzIDYuMDYxLTIuNzk2IDEuMjE4IDUuNzE3IDUuODY0LjI1OC0uMjZjLjc5NS0uODAzIDEuMjQyLTIuMDYzIDEuMDgxLTIuMjI1em00LjQ4MyA2LjUxMiAyLjI4Ny0yLjMwMiAxLjM0NiAxLjM4Ny0yLjAxNSAyLjU4NHptLTEuNDcxLTYuMTYgMS4zOTQgMS40MzctMi4yODcgMi4zMDItMS4zOTQtMS40MzZ6bS0uNDI1IDQuMjE4IDIuMjg2LTIuMzAyIDEuNDQ0IDEuNDg1LTIuMjg3IDIuMzAyem04LjMxLTIuNTU2LTEuMjIgMS41ODQtNC44OTQtNS4wMjYgNy4yMS03LjI1MWMuMjMtLjIyNS4zNC0uNTA3LjE5NS0uNzE4bC0zLjQyNC4yMTguMzU2IDIuNDc4LTEyLjQxNiAxMi40OTUuNTkyLjMxNyAxLjY4Ny0xLjY5NiA1LjUzNiA1LjY4LTEuNjYgMi4wMjggMi43NTUgMS4yMTFjLjE0Ni0uMjEuMTgtLjU0Mi4wODMtLjgzN2wzLjI3Ny02LjAwNiAyLjMyOSAyLjM4Ny4zMDctLjMxYy45MDYtLjkxNSAxLjEwOC0xLjgwMiAxLjAyNC0xLjkxNWwtMi40MjYtMi40ODUuOTQ4LTEuOTI5em0uMjEtNi4xMTdhMTQuODUgMTQuOTk1IDAgMCAxIDEuNjEgMy43OTVjLTEuNDcyLjE0LTIuOTg0LS4wOTItNC41NDYtLjgzOHptLS41MjMtMi4zMTYtLjAxNCAxLjkzNi00LjIwNCA0LjIzLjU5My4zMTguOTA2LS45MTVjMS45MTcgMS4zMDIgMy42MDQgMi4wNDggNS4yMTUgMi4zNWExMi40OCAxMi42MDEgMCAwIDEtLjMgNS4yNjZsLjM0Mi4wODVhMTQuNDMyIDE0LjU3MiAwIDAgMCAxLjQ5OC01LjE5NWMxLjUuMDIxIDIuOTctLjMxNyA0LjU2LS45My0uNjU2LTEuMjAzLS42OTctMi4zMy0uMTI1LTMuMjk0bC0uMTQ2LS4xODNjLTEuMzk1Ljg4LTIuODE3IDEuNjI2LTQuMjYgMi4wNjNhMTQuMyAxNC4zIDAgMCAwLTEuNDA4LTUuMDc2Yy4zNC0uNDA5LjQzOS0uNjA2LjM3Ni0uODY3em0xMC40MjItNi4xNzRjMS4xNTguMzAzIDIuNjc3IDEuMDI4IDMuNTcgMi4wNDkgMi42LS4wMzUgMS41NjItNC42MzItMy40OTMtMi4zM3ptMy44MDctMTEuMjM1LTIuMzcgMi4zODYtMy4yNDMtMy4zM2EzMi4zNSAzMi42NjUgMCAwIDAgMy4xNDUtNC44NTdjLjY0OC0uMzYuOTQxLS43MTguOTU1LTEuMDYzbC0zLjU3LjM5NGMtLjA5IDEuMjMyLS40NTMgMy4xNjEtLjk3NiA0Ljg2NGwtMi41MjMgMS4zMzggNC43MiA0Ljg0My0yLjgyNC4xNy4zMTQgMi4wOTctLjg5My45MDFhMjYuMjE0IDI2LjQ3IDAgMCAwLS4yODYtMy45ODRjLjM5LS4zMjQuNDQtLjY0LjMxNC0uOTAxbC0yLjY3IDEuNDE1IDIuMjU5LTIuMjc0Yy4yMy0uMjI1LjMwNi0uNDcxLjE4MS0uNzA0bC0yLjkwNy4xODMuMjkzIDIuMDItMS4wODggMS4wOTFjLjUzNy0xLjI5NS0uOTgzLTMuMTU0LTQuMzIyLS42MTNsLS4wMzUuMjMzYTYuMDY1IDYuMTI1IDAgMCAxIDIuOTc3IDEuMzFjLjIyMy0uMDM2LjQzOS0uMDc4LjYxMy0uMTYzbC0zLjU3IDMuNTkuNTkzLjM0NSAxLjA3NC0xLjA3Ny0uMDYzLjEzNGMxLjAxOC40NSAyLjM2NCAxLjE3NSAzLjIxNCAyLjExMiAyLjQ1NC4wNzcgMS43MzYtNC4xNi0zLjAwNS0yLjM5M2wzLjYxOS0zLjY0YTQzLjM2NSA0My43ODcgMCAwIDEgMi4zNSAzLjc2NmwtNC41OTUgNC42MjYuNTkzLjM0NCAzLjAxOC0zLjA0MSAxLjg5NyAxLjk0My0yLjg3MyAyLjg5NC41OC4zMyAyLjc0LTIuNzYgMS4wMSAxLjAzNi0yLjUyMyAxLjAwN2MxLjE3MSAxLjUyNyAyLjc0IDQuMDk3IDMuMzI1IDYuMjQ0bC4zNDItLjAxNGMuMjg2LTIuMjgtLjI4LTQuODA4LS44NzItNi42MzFsLjE2LS4xNjIgMi44NiAyLjkzNWMuMTc0LjE4My4yMjIuMzMxIDAgLjU1NmwtMS4zOTUgMS4yNzUuMjA5LjIxYy43MTEtLjUyIDEuMTY1LS41ODQgMS41NjktLjUzNHMuODAyLjQyOSAxLjMwMy45MDhjMS43NTgtMi4wNjMgMS4zMjUtMy4wMjcuMTY4LTQuMjE3bC00LjMzNy00LjQ1IDIuNjQzLTIuNjZjLjIzLS4yMjYuMzA3LS40NzIuMTgxLS43MDUtMS4wOTQtLjAwNy0yLjgyNC4xNy0yLjgyNC4xN2wuMjkzIDEuOTg1LS43NDYuNzUzLTEuODk2LTEuOTQzIDMuMDE4LTMuMDQyYy4xNDYtLjE0OC4yMy0uMjk1LjIzLS40NTdsLjQ0Ni40NjRjMi45MjIgMyA1LjY0OCA2LjI1OSA1Ljk4MiAxMC41ODhsLjM0MS4wMjJjMS40NzItNS44MTUtMS42MS05LjUwNC00LjQ1NS0xMi40MThsLS41NzgtLjU5MSAxLjU0LTEuNTUgOC44OTcgOS4xMjQuMzI3LS4zMjRjLjk3Ni0uOTc4IDEuMTQ0LTEuOTY0IDEuMDI1LTIuMDc3bC04LjM4LTguNTk1IDEuNDI4LTEuNDM2Yy4yMy0uMjI1LjMyOC0uNDkzLjE4Mi0uNzA0LTEuMzQuMDEzLTMuNDcyLjIzMi0zLjQ3Mi4yMzJ6bTEzLjE2My0xOS43NDcuMTA0IDEuOTIyLTMuNjMyIDMuNjYtLjE2MS0uMDk4Yy0xLjEzLS42OTctMy41NzctMS01LjcxLS45NDNhMTcuMjIgMTcuMzg4IDAgMCAwIC4xOTUgMi40NDJjMS43MDEtLjUzNSA0LjA5Mi0xLjAxMyA0LjkzLS42NTVsLTMuOTEyIDMuOTM1LTIuODc5IDEuMjA0IDEyLjQxIDEyLjczNS4zMDYtLjMwOWMuODA5LS44MTcgMS4xNTgtMi4wNzcuOTM0LTIuMzA5bC0xMC40MzYtMTAuNzA3IDQuMDkyLTQuMTE5YzIuNjQzIDMuODM3IDQuMDA4IDguMjM3IDMuNTcgMTEuNzQzbC4zNC4wNDljMS4wODItMi45NzggMS4xNDUtNi4xMS40MTktOS4wMDQgMi4xMjYgMS4xODkgNC4yOCAyLjAyIDYuMzE3IDIuMTg5LS41OC0uODg3LS43MTgtMi4wODQtLjE0Ni0zLjI0NmwtLjE2MS0uMjZjLTMuMTE2LjU2My02LjUxOS0uNTItOS41My0yLjI4OGwzLjY4LTMuNzEgOC42MDQgOC44MjdjLjIyMy4yMzMuMjcyLjQ0NC0uMDIuNzQtLjUwMy41MDYtMi42MTUgMi4zNjUtMi42MTUgMi4zNjVsLjIwOS4yMTFjMS4xMDItLjc4MSAxLjcyOS0uOTU3IDIuMzY0LS45Ny42MzQtLjAxNSAxLjEyOS4zMyAxLjgzNC44OTMgMi4xMTItMi41NDkgMS42NjYtMy42NjguMzgzLTQuOTg0bC04LjUxMy04LjczYy4yNTktLjM5My4zNDItLjc2Ni4zMjgtLjk4NXptMTYuMzg0LTE2LjE2MyAxLjQ1NyAyLjE4OS4yNDQtLjA1YTE1LjQwOCAxNS41NTggMCAwIDAgLjU1LTMuNjg4Yy4zMDctLjM0NS40NTQtLjU1Ni40MjYtLjgxN2wtMy4yNjMuMDVWMTJsLTQuMzE2IDQuMzQzYy42MDctMS40NTctMS4yMDYtMy41MTMtNC4yOTQtLjA1bC0uMDIuMjEyYTQuNDYyIDQuNTA2IDAgMCAxIDMuMDMyLjgzIDEuNyAxLjcgMCAwIDAgLjQzOS0uMTQ3bC00LjgzOSA0Ljg2NGE4LjQzNiA4LjUxOCAwIDAgMC0xLjE3OC0uNjQ4bC0uMjMuMjI1YTMuMzQ3IDMuMzggMCAwIDEgLjg3MiAzLjI2NmMtLjI0NC43NC0uMTU0IDEuNTI4LjU4NiAxLjkyMi44MjIuMzggMS43MjgtLjI3NSAxLjkxLTEuMTQuMTgxLS44NjYtLjE2OC0yLjE0Ny0xLjQzNy0zLjIyNHptLTIuODY2IDUuMTAzYzEuODktLjQ2NCA0LjY4NS0uNjMzIDYuNDkxLS4xMzMgMi43NTQtMS4yMzItLjUxNS01Ljc0NS02LjUwNS0uMTR6bS0zLjcwOCAxMS4zMDZjMS4yOS0yLjY2OCAxLjg4OS01Ljk0OCAxLjc4NC04LjE1OC4zOS0uMzI0LjQyNS0uNTU2LjM0Mi0uODAzbC0zLjEwMyAxLjIwNGExNy44NDggMTguMDIyIDAgMCAxIC42MzUgNy43MTZ6bTExLjA0My02LjIxNi00LjU3MyA0LjYwNC0xLjc1Ljc0NmMuNzc0LTIuODAxIDEuMDgtNS41MjYuNzUzLTcuNjEgMS42OTQuNTg1IDMuNTk3Ljc1NCA1LjUxNS41MTR6bS0xLjE3MSA4LjMyOC0zLjA2OC0zLjE0NyA0LjgzOS00Ljg2NCAzLjA2NyAzLjE0N3ptLTcuMzQyLTEwLjA4YzEuMjk3IDIuNjgxIDEuMDY3IDguNDgyLS4zNzcgMTIuNzc3bC4yOTMuMTMzYTI4LjYgMjguNiAwIDAgMCAxLjk0Ni00LjcwM2w1LjMxMiA1LjQ1Ni4yOC0uMjc0Yy43NDYtLjc1NCAxLjE1Ny0yLjAxNC45OTYtMi4xNzZsLS42NTUtLjY3NSA0LjgzOC00Ljg2NSAxLjEwOSAxLjEzNC4zMjctLjMyNGMuNjEzLS42MiAxLjE4NS0xLjkxNSAxLjA5NS0yLjA0OWwtMy45MTktNC4wMmMuMjQ0LS4zNDQuMjkzLS42NTQuMjgtLjgzN2wtMi4xMi4yNjdhMTcuNzA5IDE3Ljg4MSAwIDAgMCA0LjEwNi0xLjI5NWMtLjU5My0uODEtLjg5Mi0yLjEzMy0uMzQxLTMuMTU0bC0uMjU5LS4yNmMtMi44MTYgMS45OTItNi44NjcgMy45Ny05Ljg4NiAzLjg3OC40NTQtLjU1Ni41NTEtLjg1MS40MTItMS4xMzN6TTQ5LjE0NyAxNjQuOTZjLjI0My0uMjQ3LjM0LS41MDcuMjE2LS43NGwtMy43OTMuNDMuMzA3IDIuNjg5LTExLjY5OSAxMS43NzcuNTc5LjMzMSA2LjY4Ni02LjczYzIuMzY0IDQuNDcgMy41NTYgMTEuMzM0IDIuODkzIDE3LjI4M2guMjU5YTMwLjI1OCAzMC41NTMgMCAwIDAgMS4yMjYtMTIuMDY2bDguMzE4IDguNTMyLjM1Ni0uMzZjLjcxLS43MTcgMS4yNjktMS45IDEuMTcxLTIuMDI3bC05LjIwMy05LjQ0Yy4yNTgtLjM2LjI5My0uNjIuMTk1LS44MThsLTEuMzczLjYzNGEyNS4wOTkgMjUuMzQzIDAgMCAwLTEuMzA0LTQuMzAxem0tMS4zOTUgOS45NTRjMi43NjEtLjQzIDYuNzIxLS40OTMgOS4yMTcuMjg5IDMuMjM1LTEuMDk4LS4yODYtNi4zNjQtOS4yMTctLjU3OHptMTIuNDQ1LTIzLjg1YTcuOTQ4IDguMDI1IDAgMCAxIDMuODM1Ljc3NGMyLjY4NC0uNzExLjcyNS01LjE5NS0zLjgyLTEuMDE0em0tMy4zMzMgMTEuMDIzYTI5LjQ5MSAyOS43NzggMCAwIDAtMS41OS01LjAyNmMuMzkxLS4zNi40NC0uNzA0LjI5NC0uOTg2bC0zLjU2MyAxLjg1MmMyLjQ2OCAzLjk3NyA0LjI0NiA4LjcxNSA0LjgyNSAxMi4xNzlsLjMyLS4wNjNhMTkuMzEyIDE5LjUgMCAwIDAgLjIwMy00LjUxM2w4LjcgOC45MjcuMzU2LS4zNmMuNzMyLS43MzIgMS4xMDktMS45MjguOTgzLTIuMDk3bC05LjQ0LTkuNjg3Yy4yNTktLjM2LjI5NC0uNjIuMjE3LS44Mzh6bTE3LjMxOS01LjM4NS0uMjEuMTQ4YTIyLjkzOCAyMy4xNjEgMCAwIDEgLjk1NiAzLjA5Yy4xMTEuNDQ0IDAgLjU1Ny0uNDg4LjU5Mi0zLjUyMS41NzctNi45MDItMS4wMTQtMTAuMTAyLTMuNTA2bDQuMjExLTUuMzQzYy4xOTUtLjI2LjI0NC0uNTQyLjA5OC0uNzU0LTEuNDA5LjI3NS0zLjQ1OC44NzMtMy40NTguODczbC41MDEgMi40NjQtMS44NTQgMi4zNTFBNDYuMjkzIDQ2Ljc0NCAwIDAgMSA1OS41IDE1Mi41Yy4zNDEtLjQ3Mi4yOTMtLjgxNy4xMTgtMS4wNjNsLTIuODM3IDIuMjRjMS43OTggMS44NDMgMy41OTcgMy41NjEgNS40MyA1LjAxMWwtMy4wMjUgMy44NTguNjEzLjI2NyAyLjkyOS0zLjczYzMuOTI1IDMuMDM0IDcuOTgzIDQuODkyIDEyLjQ3MiA0LjQ0OSAxLjQzNy0uMTc2IDMuNDQ1LS44ODcgMy40MDItMi4zOC0uMDE0LS41NDItLjU1OC0uOTM2LTIuMDkxLTEuMjg4em0xMC43MzctMTcuMDg1Yy4yODYgMS4yNDYuNDUzIDMuMzY1LjQzOSA1LjE2OC0xLjU3LS4wMjEtMy4xOC0uNDIzLTQuODg3LTEuMjgybDYuMDcyLTYuMTFjLjIzLS4yMjUuMzI3LS40OTMuMTk1LS43MThsLTMuMzc0LjIzMi4zMjcgMi40MTUtMy42NjcgMy42ODktMS44NzUtMS45MjkgNC44MTctNC44NWMuMjMtLjIyNS4zMjgtLjQ5My4xOTYtLjcxOGwtMy4yNS4yMzIuMzQyIDIuMjk1LTIuNTY2IDIuNTg0LTEuNzg1LTEuODMgNS40NTItNS40OTFjLjIzLS4yMjUuMzA3LS40NzIuMTgyLS43MDRsLTMuMzEyLjIzMi4zMjggMi4zNDUtMy4xMTYgMy4xMzItMS4zNDYtMS4zODZjLjM1Ni0uNDkzLjM0MS0uODAzLjE1NC0xLjA2M2wtMi43NzUgMi4zNjYgMi4wMDggMi4wNTUtNS41ODUgNS42MTguNjE0LjMzMSA1LjQzOC01LjQ3IDEuNzg1IDEuODMtNC43OSA0LjgxNi41NzkuMzMgNC42NTctNC42ODggMS44NzYgMS45MjktNi4zOTQgNi40MzQuNTkzLjM0NSA1LjE5My01LjIyM2MuNDg5IDIuOTcuMTg5IDYuODU2LTEuMDg3IDEwLjQyNmwuMzA3LjExM3ExLjYxMS0yLjc5OSAyLjU0NC01LjU5N2wyLjIxNyAyLjI3NGMuMjg2LjI5NS4zNS41OS4wMDcgMS43NTNsMy4xNDUuNjgyYTIuNiAyLjYgMCAwIDAgLjAyLS43MDRsMS43NzEtNy43MTYtLjI0My0uMTEzLTIuNTEgNC40MjEtMy41ODMtMy42NzRjLjMtMS41NzcuMzctMy4xMi4xODgtNC41MjcgNC44MSAzLjIxOCA4Ljk3MyAzLjkyOSAxMy4wNjUgMi4yNTMtLjgwMi0xLjAyLS45NDEtMi4yODEtLjUxNi0zLjYyNWwtLjE5NS0uMjZjLTIuMDI4IDEuNDE0LTQuMTc2IDIuMzc5LTYuNTA1IDIuNTM0YTMxLjM3MyAzMS42OCAwIDAgMCAxLjk4LTUuMTI1Yy40NC0uMjc1LjQ4OC0uNTIxLjQ0LS43Njh6bTYuMjI2LTE5LjUwOGMxLjExNS0uMTQgMi43MTEuMDQyIDMuNzA4LjYwNiAyLjYzNi0uODI0LjQ4MS01LjI0NS0zLjY5NS0uODUyem02LjQ5OCAxLjE2MmEzNS40MTcgMzUuNzYyIDAgMCAxIDEuNDcgNS41OTcgMTMuOTQ0IDE0LjA4IDAgMCAxLTQuMzM2LTEuNjRsLTEuMTIyLTEuMTU1IDYuMDcyLTYuMTFjLjI0NC0uMjQ3LjMyOC0uNDk0LjE5NS0uNzE5LTEuMzYuMDU3LTMuNDU4LjM0NS0zLjQ1OC4zNDVsLjI4IDIuNDI5LTMuNTU2IDMuNTc2LTIuNzI3LTIuODAxYy4zNDItLjQ3Mi4zMjgtLjc1NC4xMzItMS4wMTRsLTIuNzg4IDIuMjg4IDMuNDIzIDMuNTA2LTYuMjk2IDYuMzM2LjU5My4zNDUgNi4xNy02LjIxIDQuNjU3IDQuNzgtMy4zODggOC45OSAzLjUxMy41N2MuMDg0LS4yODIgMC0uNTkxLS4xNzQtLjgzOGwuNjA2LTguMTUxIDMuNDY1IDMuNTU1Yy4yMjMuMjMyLjIzNy40MDgtLjA1Ni43MDQtLjM5LjM5NC0yLjQ0NyAyLjIwMy0yLjQ0NyAyLjIwM2wuMjEuMjExYzEuMDY2LS43NTMgMS43LS45MjkgMi4yNzktLjkyMi41NzkuMDA2IDEuMTI5LjM2NiAxLjgwNS45MyAyLjA5OS0yLjUgMS42NTMtMy41ODQuMzE0LTQuOTU3bC02LjcyOC02Ljg5OWM0Ljg4NyAzLjIzOSA4LjQ4NSAzLjY5NiAxMi40OTQgMi44OTMtLjY5LTEuMTY4LS43OTUtMi40OTktLjE3NS0zLjQ3N2wtLjEyNS0uMjMzYy0yLjM2NCAxLjEwNS01LjEzMiAxLjk5My04LjIyNyAxLjU1Ni41OTMtMS45NjQuOTktNC4xMzIgMS4yMDYtNS42ODguNDA0LS4zNDUuNTAyLS41Ny40MjUtLjgxN3ptLTkuNzEyIDEwLjQyNmMxLjU5Ni4xMiAzLjY2LjY5IDQuOTc4IDEuNzEgMy4yMTMtLjQyOCAxLjE0My01Ljc4Ni00LjkzLTEuOTU2em0xNi4yMDMtMjMuMjI0IDEuMjgzIDEuMzE3LTIuODEgMi44MjMtMS4yODMtMS4zMTd6bS4xNDYgNS44NTctMS4yMi0xLjI1MyAyLjgxLTIuODI0IDEuMjIgMS4yNTR6bTMuMjc2LTIuMzUxLjY3Ny42OS4yNTgtLjI2Yy41MTYtLjUyMSAxLjAzOS0xLjY2OS45NDktMS44MDJsLTMuNDUyLTMuNTQyYy4yNDQtLjM0NC4zNDItLjcwNC4zMTQtLjkwMWwtMi44MjQuNDAyLjA1NiAxLjYwNC0yLjU2NiAyLjU4NC0yLjYwNyAxLjAyIDE0Ljc4NyAxNS4xNzEuMzA3LS4zMWMuNzk1LS44MDIgMS4wMS0xLjg2NS43NjctMi4xMTJsLTkuNDc1LTkuNzIyem03LjI4IDUuODg1LTEuMzY3LTEuNDAxIDIuNzEyLTIuNzI0IDEuMTU3IDEuMTgyem0tMS44ODMtNy40NCAxLjE0NCAxLjE2OC0yLjcxMiAyLjcyNC0xLjE0NC0xLjE2OXptLTEuMTAxIDQuMzcxIDIuNzExLTIuNzI0IDEuMTU4IDEuMTgyLTIuNzEyIDIuNzI0em04Ljk5My0yLjg1Yy4yMy0uMjI2LjI1OS0uNTIyLjExOS0uNzRsLTIuNTUyLS4xNC4zMTQgMS44MzctNC4wNzktNC4xODIgMS4zMTgtMS4zMjRjLjIwOS0uMjEuMjkyLS40NTcuMTY3LS42OS0xLjEyOS4wMjgtMi44OTMuMjMzLTIuODkzLjIzM2wuMjE2IDIuMDM0LTYuNyA2Ljc0NC41NzkuMzY2IDEuMjgyLTEuMjg4IDQuNzA3IDQuODMtMS42MSAxLjg4LjY2Mi4zNDQgNS40OTMtNi40MDYgMi4xNjkgMi4yMjQuMzA2LS4zMWMuODU4LS44NjUgMS4wNzQtMS43MDMuOTc3LTEuODAxbC0xLjkxLTEuOTU3em0tOS4xODktNS4wNDItMS4yMi0xLjI1MyAyLjc5LTIuODA4IDEuMjE5IDEuMjUzem0tLjE2LTUuODQzIDEuMjgzIDEuMzE3LTIuNzkgMi44MDktMS4yODItMS4zMTd6bS0uNzMyLTIuMTA0LjExOCAxLjgwMi0yLjU0NSAyLjU2Mi0yLjQ3NSAxLjA1NiA1LjI4NSA1LjQyLjI0My0uMjQ2Yy42OTgtLjcwNCAxLjA3NC0xLjgzLjkyNy0xLjk3OGwtLjIwOS0uMjExIDIuNzg5LTIuODA5IDcuODY0IDguMDc1Yy4yMDkuMjEuMjU4LjM5NC0uMDIuNjc1bC0xLjg5NyAxLjcxOC4yMjMuMjMzYy44NzgtLjYyIDEuMzk0LS43NDcgMS44OS0uNjk4LjQ5NC4wNS45OTYuNDAyIDEuNTc1LjkyMyAxLjgyLTIuMTkgMS4zNzMtMy4xNzUuMTY3LTQuNDE1bC0xMS4xNzUtMTEuNDY4Yy4yNTgtLjM5NC4zNjItLjc4OC4zNC0xLjAzNXptMTkuMDE4LTguNDcgMy41IDMuNTktNi40MjggNi40Ny0zLjUtMy41OXptMS4zNiAxNC40Ni0zLjgzNS0zLjkzNiA2LjQyOC02LjQ3IDMuODM1IDMuOTM2em0tNC4yNzQtMTkuMTk4LTExLjM0MyAxMS40MTguNTkzLjM0NSA1LjY5Ni01LjczIDIuNTggMy4yMS0xLjM2NyAxLjM3My0yLjkxNCAxLjIzMiAxMC45NTMgMTEuMjM1LjMwNy0uMzA5Yy44NDQtLjg1MiAxLjE5Mi0yLjExMi45NjItMi4zNDRsLS43MzktLjc2IDYuNDI4LTYuNDcgMS4zMzIgMS4zNjYuMzI3LS4zMjRjLjY4My0uNjgzIDEuMjA2LTIuMDYyIDEuMDk1LTIuMjFsLTguNzE1LTguOTQ4Yy4yNzktLjQwOC4zNDEtLjc2Ny4zMjctMS4wMTRsLTMuMzExLjM5NC4wODQgMS45NzEtNC4xNTUgNC4xODJjLS4wNDItMS40OTMtLjQwNS0zLjMxNi0uODMtNC45NzdsNS44NTYtNS45Yy4yNDQtLjI0Ni4zNDItLjUwNi4yMTYtLjczOWwtMy42MzIuNDN6bTEyLjEzOC0xMS42NTdjMS4zMjQtLjAyOSAzLjA5NS4zNzMgNC4xNTUgMS4xNjggMi44NzMtLjQ0NCAxLjA2LTUuMzA4LTQuMTQxLTEuNDE1em0zLjY2IDQuMzc4YzEuMjktLjA1NiAzLjA0Ny4yOSA0LjEyOCAxLjAzNSAyLjg1OC0uNTI4Ljk0OC01LjM5Mi00LjEyOC0xLjI2NnptLTIuNzc1IDIuMjA0IDIuMjYtMi4yNzNjLjIwOS0uMjEyLjMwNi0uNDcyLjE4LS43MDUtMS4xNjQtLjAwNi0zLjAxOC4wOTktMy4wMTguMDk5bC4zOSAyLjE0Ny0uMjU3LjI2LTIuODI0LTIuOSAxLjEyMi0xLjgxNmMuNjk3LS4zNDUgMS4wMDQtLjc1MyAxLjAzOC0xLjExM2wtMy44OS4yMzNjLS4yNTEgMS45MTUtMS4yOSA1LjIxLTIuNDQ3IDcuNjE3bC4yNzIuMTQ4IDIuMzU3LTIuODkzIDIuNTIzIDIuNTg0LTIuNTY2IDIuNTgzLjU4LjMzMSAyLjIxLTIuMjI0YzEuNzI4IDIuNzk1IDMuMjEzIDYuMTY3IDMuNTk2IDkuMTY1bC4zNy0uMDE0YTE4LjU0NSAxOC43MjYgMCAwIDAtLjA5OC01LjY0NWw1Ljk1NCA2LjExLjM0Mi0uMzQ1Yy45MDYtLjkxNSAxLjA5NC0xLjk1Ljk3Ni0yLjA2MmwtNy42OS03Ljg5MmE5LjU1MSA5LjY0NSAwIDAgMSAzLjE4NiAxLjM5NGMyLjUwMi0uMjA0IDEuMzY2LTQuNDQyLTMuNjY4LTEuODg3em0xMi41Ny00Ljc1Mi0uMDk3LjE2Mi04LjMwMy04LjUxOGMuMzc2LS41MDcuMzEzLS44MDIuMTE4LTEuMDYzbC0yLjY3NyAyLjIwNCA5LjM0MiA5LjU4OC00LjM5MiA2LjQ3Ny42NjIuMjE4IDQuMTk3LTYuMjE2IDQuODA0IDQuOTI4LjM1Ni0uMzZjLjY5Ny0uNzA0IDEuMDc0LTEuOTI4Ljg4NS0yLjEyNmwtNC41NDUtNC42NiAxLjcwOC0yLjUzNWMuMTYtLjIzMy4xOTUtLjUyLjAzNC0uNjlsLTIuODI0LjMwMnptLS42OTYtMTguMTYzYzEuNDM2LjIxOCAzLjI5LjcwNCA0LjU0NSAxLjYyNyAzLjE2NS0uNDc5IDEuMjc2LTUuNzg3LTQuNDk2LTEuODM4em0xMi43MDktNC42MzljLjIzLS4yMjUuMzI3LS40OTMuMTk1LS43MThsLTMuNzE2LjQwOS4zMDcgMi41OS0xMC45NTMgMTEuMDI1LjYxMy4zM3ptLTEwLjQ3OSAxMi43YzIuOTYzIDEuMzU5IDYuNTE5IDMuMjYgOC44NDcgNS41NDcgNC4xMTQtLjA2My42NjMtNi42MS04LjctNS44Mjl6bTE3LjYzMi0uNzc1LTMuMzk1IDMuNDE1YTY4LjYwMyA2OS4yNzIgMCAwIDAtMy43My0xMS41NDVjLjQwNC0uMzczLjQwNC0uNzQuMjkzLS45ODZsLTMuNTE0IDIuMDdjMi4wMTUgMi45NjQgNC43MDYgNy40OTggNi40NzcgMTAuOTRsLTguMjI3IDguMjc4LjU3OS4zMzEgMTQuNzY2LTE0Ljg2Yy4yNDQtLjI0Ny4zNDEtLjUwOC4yMTYtLjc0bC0zLjc3OS40NDR6bTMuNzU4LTI4LjQxMiAxLjU5IDEuNjMzLTMuNjIgMy42NC0xLjU4OS0xLjYzNHptLjA1NiA3LjQxMi0xLjYyNC0xLjY2MSAzLjYxOC0zLjY0IDEuNjI1IDEuNjYyem0uNDY3LjQ3OSAzLjYxOS0zLjY0LjY0LjY2Mi4zMjgtLjMyNGMuNjUtLjY1NSAxLjA5NS0xLjk3OC45NjMtMi4xNDdsLTMuOTE5LTQuMDJjLjI0NC0uMzcyLjMyOC0uNzE3LjI5My0uOTVsLTMuMTE2LjM5NC4wNTYgMS44MzctMy4zNzQgMy40LTIuNjM2IDEuMTU1IDYuMjYgNi40MjguMjU5LS4yNmMuNzYtLjc2OCAxLjE1Ny0xLjk3OS45OTctMi4xNDh6bS4xMTkgNS4xMzItMS4yNDIgMi44MTUtMy45OTQtNC4xMDQgMS43MjEtMS43MzFjLjIzLS4yMjUuMjkzLS40NTguMTY4LS42OS0xLjA5NS0uMTctMi45Ny0uMTc2LTIuOTctLjE3NmwuNDg4IDEuOTg1LTMuNDIzLTMuNTA1Yy40MDQtLjUwNy4zNjItLjc4OS4xNjctMS4wNWwtMi42NTYgMi4yMTggNC4yMDMgNC4zMTUtMS42NzMgMS42ODMuNTkzLjM0NCAxLjU0LTEuNTQ4IDQuNjU4IDQuNzgtMS4yNTUgMi41NyAzLjEwOSAxLjExMmEuOTMuOTMgMCAwIDAtLjEyNS0uODg3bC45MTMtOC4wMzJ6bTguMjQ3LTYuMjQ1YzIuMDg1IDIuNTcgMy4wNiA0LjIzIDIuOTkgNC45NDktLjA2Mi4yNi0uMTYuNDIyLS40MjQuNjlsLTEuNzUgMS41N2ExMy4zODYgMTMuNTE3IDAgMCAwLTEuMjctNi43NDR6bS0uNTc5LS4zMy00LjYyMiA0LjY1MmExMi40OCAxMi42MDEgMCAwIDAtLjQ0LTIuMTA0bDYuMDI1LTYuMDYyYy4yNDMtLjI0Ni4zMjctLjQ5Mi4xOTUtLjcxN2wtMy4zMTIuMzMuMjY2IDIuMzE2LTcuOTgzIDguMDQuNTkyLjM0NCAyLjA2NC0yLjA3N2ExNC44NSAxNC45OTUgMCAwIDEgLjg5MiA4LjA3NWwuMzU2LjA3YzEuMDQ2LTIuNTIgMS41NjItNS4wMjYgMS40My03LjM3OGwuNTM2LS41NDJhMTYuNjYyIDE2LjgyNSAwIDAgMSAuNTAyIDguODYzbC40MDQuMDVjMS40MDgtMy43MDQgMS43OTktNy4zOTIuODMtMTAuNjU5bC41MDEtLjUwN2MxLjY0NiAzLjA0MiAyLjMwOCA2LjQ1NiAxLjU5NyAxMC4wNDdsLjM0MS4wODRxMS4wNzYtMi43NTYgMS4yNDEtNS4yNTlsLjIxLjIxMWMuNjk3LS40MzYgMS4zMS0uNjY4IDEuNzc3LS42MTIuNDY4LjA1Ni45NDkuNDE1IDEuNDUuOTIyYTQuNDYyIDQuNTA2IDAgMCAwIDEuNDE2LTIuNDcxYy4yNTEtMS40NTctLjc4OC0zLjQ1LTMuNTc3LTYuODA4LjI5My0uMzkzLjQwNS0uNjY4LjM5LS45NWwtMy4wMTguMjY3elwiLz48L3N2Zz4nKTtcbn1cbi5za2luLWdvbmdiaSAuSGlzdG9yeURpc2NsYWltZXItbW9kdWxlX19kaXNjbGFpbWVyX1c5U1lvRyB7XG4gIGluc2V0OiA1ZW0gMTVlbSAwIDEzZW07XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMjAwcHgpIHtcbiAgLnNraW4tZ29uZ2JpIC5IaXN0b3J5RGlzY2xhaW1lci1tb2R1bGVfX2Rpc2NsYWltZXJfVzlTWW9HIHtcbiAgICBpbnNldDogNWVtIDAgMCAxM2VtO1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuc2tpbi1nb25nYmkgLkhpc3RvcnlEaXNjbGFpbWVyLW1vZHVsZV9fZGlzY2xhaW1lcl9XOVNZb0cge1xuICAgIGluc2V0OiAwO1xuICB9XG59XG46aXMoLnNraW4tdmVjdG9yIC5IaXN0b3J5RGlzY2xhaW1lci1tb2R1bGVfX2Rpc2NsYWltZXJfVzlTWW9HLCAuc2tpbi12ZWN0b3ItbGVnYWN5IC5IaXN0b3J5RGlzY2xhaW1lci1tb2R1bGVfX2Rpc2NsYWltZXJfVzlTWW9HKSB7XG4gIGluc2V0OiA1ZW0gMCAwIDEyZW07XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICA6aXMoLnNraW4tdmVjdG9yIC5IaXN0b3J5RGlzY2xhaW1lci1tb2R1bGVfX2Rpc2NsYWltZXJfVzlTWW9HLCAuc2tpbi12ZWN0b3ItbGVnYWN5IC5IaXN0b3J5RGlzY2xhaW1lci1tb2R1bGVfX2Rpc2NsYWltZXJfVzlTWW9HKSB7XG4gICAgaW5zZXQ6IDA7XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLENBQUM7QUFDQyxXQUFTO0FBQ1Qsa0JBQWdCO0FBQ2hCLG9CQUFrQjtBQUNsQixZQUFVO0FBQ1YsU0FBTztBQUNUO0FBQ0EsSUFBSSxNQUFNLFNBQVMsQ0FQbEI7QUFRQyxvQkFBa0I7QUFDcEI7QUFDQSxDQUFDLFlBQVksQ0FWWjtBQVdDLFNBQU8sSUFBSSxLQUFLLEVBQUU7QUFDcEI7QUFDQSxPQUFPLE9BQU8sSUFBSSxDQUFDLFNBQVMsRUFBRTtBQUM1QixHQUpELFlBSWMsQ0FkZDtBQWVHLFdBQU8sSUFBSSxFQUFFLEVBQUU7QUFDakI7QUFDRjtBQUNBLE9BQU8sT0FBTyxJQUFJLENBQUMsU0FBUyxFQUFFO0FBQzVCLEdBVEQsWUFTYyxDQW5CZDtBQW9CRyxXQUFPO0FBQ1Q7QUFDRjtBQUNBLElBQUksQ0FBQyxZQUFZLENBdkJoQiw2Q0F1QjhELENBQUMsbUJBQW1CLENBdkJsRjtBQXdCQyxTQUFPLElBQUksRUFBRSxFQUFFO0FBQ2pCO0FBQ0EsT0FBTyxPQUFPLElBQUksQ0FBQyxTQUFTLEVBQUU7QUFDNUIsTUFBSSxDQUpELFlBSWMsQ0EzQmxCLDZDQTJCZ0UsQ0FKRCxtQkFJcUIsQ0EzQnBGO0FBNEJHLFdBQU87QUFDVDtBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo= */ +/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiZXNidWlsZC1jc3MtbW9kdWxlcy1wbHVnaW4tbnMtY3NzOnNyYy9IaXN0b3J5RGlzY2xhaW1lci9IaXN0b3J5RGlzY2xhaW1lci5tb2R1bGUubGVzcyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyogPHN0ZGluPiAqL1xuLkhpc3RvcnlEaXNjbGFpbWVyLW1vZHVsZV9fZGlzY2xhaW1lcl9XOVNZb0dfXzQ5MCB7XG4gIHotaW5kZXg6IDk5OTk5O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdkYXRhOmltYWdlL3N2Zyt4bWwsPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMDBcIiBoZWlnaHQ9XCIyMDBcIiBmaWxsPVwiJTIzY2NjXCIgb3BhY2l0eT1cIi4zXCIgdmlld0JveD1cIjAgMCAyMDAgMjAwXCI+PHBhdGggZD1cIm0yNS42MDMgMTQ1Ljk1OC0yLjY0NCAyLjY0Ny0xLjAzNi0xLjEyLTEuNTMyLTEuNTYyYy4zNTYtLjQ5My4zMjktLjc4OS4xMzMtMS4wMTRsLTIuODcgMi4zNTEgMi4xOTggMi4yMzkgMS4wNzcgMS4xMzMtMy4yODIgMy4yODEuNjE2LjMzMSAzLjExMy0zLjExOWMyLjk2NyAzLjMyMyA1LjQ0NCA3LjQ3IDMuNjczIDEzLjc0OWwuMjk0LjAzNWMzLjY4Ny03LjE1MiAxLjIxOC0xMi4wODctMS45NDUtMTUuODA0bDIuODItMi44MjNjMy42MyAzLjk3IDUuNTM0IDYuNDM0IDUuNDQzIDcuMzcgMCAuMjYtLjEyLjQ0NC0uMzc4LjcwNC0uMzU3LjM2LTEuNDQ4IDEuMzI0LTIuMTM0IDEuOTA4bC4xOTUuMjMzYy44MzMtLjUzNSAxLjYxLS44MyAyLjE3Ni0uODQ1LjQ5LjAzNSAxIC40MyAxLjU4MiAxLjAyLjk0NC0uOTUgMS40MDYtMS44NjUgMS40NzYtMi44NzkuMTE5LTEuNjU0LTEuNjY1LTQuMTc0LTYuMTUtOS4xMTYuMjkzLS4zOTQuMzkxLS43MTguMzYzLS45ODZsLTMuMTk3LjIzM3ptLTQuMDY1LTQuNjc1LTguMzY4IDguMzc4LTMuMTcgMS4zMTYgNS4xIDUuMjAzYzMuMSAzLjE2IDYuMzc1IDYuOCA3LjMwNSAxMS4zMmwuMjczLS4wNWMxLjAwOC01Ljk5OC0yLjY3My0xMC4yMTUtNS42NC0xMy4yNDhsLTMuNjkzLTMuNzczIDExLjE2LTExLjE3M2MuMjMtLjIyNS4zMDgtLjQ3MS4xODItLjcwNGwtMy40MjkuMjk2em0xMy4yNjYtMS43NjYtMy43My0zLjgwOSAzLjA1LTMuMDU1IDMuNjk1IDMuNzczLjAzNS4wMzV6bTQuMzk0LTExLjk0IDMuNzMgMy44MDgtMy4xMTQgMy4xMi0uMDM1LS4wMzYtMy42OTQtMy43NzN6bTQuMTYzIDQuMjUyIDEuMjczIDEuMzAyLjMyOS0uMzI0Yy42NzEtLjY2OCAxLjE5Ni0yLjAxMyAxLjA4NS0yLjE2MWwtNC42MTgtNC43MWMuMjU5LS4zOTQuMzY0LS43MTguMzQzLS45NjRsLTMuMjgyLjQxNS4wNyAxLjg4Ny0yLjk1MyAyLjk1Ny0yLjIyNS0yLjI3NGMuMzU3LS40OTMuMzE1LS44MDIuMTItMS4wNjNsLTIuNzg1IDIuMzAyIDIuOTM5IDMtMi45MTggMi45MjEtMi44NDcgMS4yNTMgNi43OCA2LjkyLjI5My0uMjk1Yy43ODQtLjc4MiAxLjIxLTIuMDYzIDEuMDM2LTIuMjQ2bC0uNzU2LS43NzUgMy4wMzYtMy4wNDFhMTAuNDI1IDEwLjQ5IDAgMCAxIDIuNDc4IDQuMTFjLTEuNDQ5LjI0LTIuODkuMTg0LTQuMjk2LS4yNjZsLS4wNy4zNTljMS42MTYuNzMyIDMuMTU1IDEuMTEyIDQuNjUzIDEuMTgyLjM0MyAyLjM5NC0uMjczIDUuMTY4LTIuMTA2IDguNjAzbC4yNzMuMTQ4YzIuNDk3LTMuNDUgMy42ODctNi4zMzYgMy44NjItOC44MjcgMy4yNi0uNDMgNi40MzctMi4yMDQgOS44MjQtNC44NDQtLjc3LTEuMTU1LS45MS0yLjMxNi0uMzA4LTMuNDE0bC0uMjEtLjIxMmMtMy4wODYgMi45MjItNi4yNDEgNS40MDctOS4zODMgNi42MTgtLjMwMS0xLjk4Ni0xLjI4LTMuNzQ2LTIuNzY0LTUuNDI4em0xNS4xNjItMTkuMjMzYzEuMjM5IDEuNzk1IDIuMjY4IDMuNzMxIDMuMDAyIDUuNzM3LTEuOTEtLjQzNi0zLjg5LTEuMzMtNS45MjYtMi44MTV6bS0uNTg4LTIuMzE2LjAzNiAxLjk1LTMuNTA1IDMuNTEzLTIuOTY3LTMuMDM0YTUzLjczNiA1NC4wNjYgMCAwIDAgNS4xNTctNS44ODVjLjQ0MS0uMTc2LjYzNy0uNDA5LjYzNy0uNzA0bC0zLjQyMS0uMzYtMy4wMDIgNi41NjgtMi4xNjIgMS4wMiA0LjAzNiA0LjEyLTIuNjEtLjE2My40NjIgMS45NTctNC4zMjQtNC40MTRjLjMyOS0uNDU3LjI5NC0uNzE4LjEwNS0uOTg2bC0yLjQ2MyAyLjA3IDQuOTU0IDUuMDU1LTEuMDc4IDEuMDc3LTMuODc2LTMuOTU2Yy4zNDMtLjQ3Mi4yOTQtLjc4OS4xMDUtMS4wNWwtMi40NzcgMi4wNTYgNy41NSA3LjcxYzIuNzQzIDIuOCA0Ljg0MiA1LjIzNiA1Ljk3NSA4LjA0NmwuMzQzLS4wNWMuMTE5LTMuNTc2LTEuNjI0LTYuNTMyLTQuMzQ1LTkuNDJsMS4zODUtMS4zODYgNi4zODggNi41MjYuMjk0LS4yOTZjLjYyMi0uNjIgMS4wMTQtMS44NjUuODg5LTIuMDI3bC01LjUzNS01LjY1M2MuMjYtLjM5NC4zNjQtLjc4OS4zNDMtMS4wMzVsLTMuMDcyLjM5NC4wNyAxLjc4OC0xLjIyNSAxLjIyNS0yLjM1OC0yLjQwOCA0LjQwOC00LjQwN2MuMTgyLS4xODMuMjYtLjM2LjIxNy0uNTQybDEuMjEgMS4yMzJjMi45NjcgMy4wMzQgNS44NTcgNi4zNDMgNi41IDEwLjU5NWwuMzA4LS4wNWMxLjAyMi01LjU4OS0yLjIzOC05LjM3Ny01LjA5NC0xMi4yOWwtLjg3NC0uODg3LjM5Mi0uMzk0YzIuNTA1IDIuMDkgNC42ODggMy41MjYgNi43NTkgNC4zNTdhMTYuMDkzIDE2LjE5MiAwIDAgMSAuMTA1IDcuNTZsLjM1Ny4wNjRjMS4wMjEtMi40OTMgMS40MzQtNC44MDEgMS4zODUtNi45OThhMTIuMTc0IDEyLjI0OSAwIDAgMCA1LjIwNS4yMzNjLS40OTctMS4xNy0uMzc4LTIuMjk1LjI5NC0zLjE2OGwtLjEyNi0uMTk4YTE0LjEzMyAxNC4yMiAwIDAgMS01LjYwNC45NDRjLS40NDEtMi43MjQtMS41Ni01LjI1OS0yLjk5NS03LjYxLjM0Mi0uNDA5LjQ1NS0uNjIuMzkyLS45MTV6bTE3LjE3OC0xNy4zNmMuMjQ1LS4yNDcuMzA4LS40NzIuMTgyLS43MDQtMS40MTQuMDE0LTMuNzM2LjI0Ni0zLjczNi4yNDZsLjM5MiAyLjcxLTMuMTM1IDMuMTMzLTIuOTQtMi45OTljLjQ0Mi0uNjA1LjM5My0uOTE1LjE4My0xLjIzMmwtMi45NTMgMi40IDMuNzMgMy44MDktNi4wNTIgNi4wNi41OC4zMzIgNC43NjYtNC43NzNjMi4xNjkgNC4wNjIgMy40ODQgOS4zOTggMi45NDUgMTQuMTg1aC4zMjJjMS40MzUtNC4zNzIgMS41NzUtOC42MjMuNjAyLTEyLjU4bDQuMDY1IDQuMTU0LTMuMTQ4IDMuMTU0LjU4LjMzIDMuMDE2LTMuMDIgMy43MyAzLjgxLjM3OC0uMzc0Yy43OTctLjgwMiAxLjIxLTIgMS4wMzUtMi4xNzVsLTMuMTYyLTMuMjMxIDIuNzkyLTIuNzk1Yy4yMzEtLjIyNS4zMDgtLjQ3MS4xODItLjcwNC0xLjMwMi0uMDA3LTMuMzk0LjA5OC0zLjM5NC4wOThsLjQ0MSAyLjQ2NC0uNDc1LjQ3Mi02LjY5Ni02LjgzNmM0LjY2IDIuNzczIDkuMDMzIDMuOTQyIDEzLjE0IDMuMjg4LS42MjMtMS4yNjctLjU4OC0yLjU0OS4wMzQtMy40NjRsLS4xMjYtLjIzM2ExOS4xNzEgMTkuMjkgMCAwIDEtMTIuODUzLjA0M3ptOS41NzItMTEuODA2LTMuOTY3IDMuOTcuNjAyLjMxNyAzLjgyLTMuODIyIDIuOTUyIDMuMDEyLTMuNyAzLjcxLjYuMzE4IDMuNTU1LTMuNTYyIDMuNDM1IDMuNTA2LTQuNDM2IDQuNDQxLjYxNi4zMzEgNC4yODgtNC4yOTQgNC4zMSA0LjQuMzkzLS4zOTRjLjc3LS43NjcgMS4xNDctMi4xNjIuOTM3LTIuMzczTDg0LjQ2NyA3Ni43N2MuMzc4LS41MDYuMzMtLjc4OC4xMzMtMS4wNDhsLTIuODgyIDIuMzY1em0xNC44MzMtLjI5Ni0xLjc0MiAxLjc0Ni0zLjM4Ny0zLjQ1NiAzLjc4NS0zLjc4OGMuMjMyLS4yMjUuMzMtLjQ5My4xOTYtLjcxOGwtMy4zNTguMjMzLjM3OCAyLjM2NS0xLjQ1NSAxLjQ1OC0yLjkwNC0yLjk2NCAzLjk5Ni0zLjk5OWMuMjMtLjIyNS4zMjgtLjQ5My4xOTUtLjcxOGwtMy40NTYuMjMzLjM3OCAyLjQ2NC0xLjU2OCAxLjU3LTIuMTYyLTIuMjFjLjM5Mi0uNTIxLjMzLS44MTguMTMzLTEuMDg1bC0yLjkwMyAyLjM4IDE0Ljk3MyAxNS4yODMuMzkyLS4zOTRjLjc3LS43NjcgMS4xNDctMi4xNjEuOTM3LTIuMzcybC0zLjcwOC0zLjc4OCA0LjMzOC00LjM0NGMuMjQ1LS4yNDYuMzQzLS41MDYuMTk2LS43MTdsLTMuNjUzLjIzMnptNi4wOC0yMy43NzMgMS4zMjIgMS4zNTItNi4zMzEgNi4zMzYtMS4zMjMtMS4zNTJ6bS0zLjE0OSA5LjU4MS0xLjM4NS0xLjQxNSA2LjMzMi02LjMzNiAxLjM4NSAxLjQxNXptLjQ3LjQ3OCA2LjMzMS02LjMzNi42MTUuNjI3LjMzLS4zMjRjLjYyMi0uNjIgMS4yNTktMS45MTUgMS4xODItMi4wMjhsLTMuNTM0LTMuNjA0Yy4yOC0uNDA4LjM2NC0uNzg5LjM0My0xLjAzNWwtMy4yNi40NjUuMDU1IDEuODcyLTYuMDUyIDYuMDYxLTIuODEzIDEuMjE4IDUuNzQ0IDUuODY0LjI2LS4yNmMuNzk3LS44MDMgMS4yNDUtMi4wNjMgMS4wODQtMi4yMjV6bTQuNTA1IDYuNTEyIDIuMzAyLTIuMzAyIDEuMzU4IDEuMzg3LTIuMDMgMi41ODR6bS0xLjQ3Ni02LjE2IDEuNDA2IDEuNDM3LTIuMzAxIDIuMzAyLTEuNDA3LTEuNDM2em0tLjQyNyA0LjIxOCAyLjMwMi0yLjMwMiAxLjQ1NSAxLjQ4NS0yLjMwMiAyLjMwMnptOC4zNTQtMi41NTYtMS4yMjQgMS41ODQtNC45Mi01LjAyNiA3LjI0Mi03LjI1MWMuMjMyLS4yMjUuMzQzLS41MDcuMTk2LS43MThsLTMuNDQyLjIxOC4zNTcgMi40NzhMOTkuNiA3Mi44OThsLjYwMi4zMTcgMS42OTMtMS42OTYgNS41NyA1LjY4LTEuNjY1IDIuMDI4IDIuNzcgMS4yMTFjLjE0Ny0uMjEuMTgzLS41NDIuMDg0LS44MzdsMy4yOTYtNi4wMDYgMi4zMzcgMi4zODcuMzA4LS4zMWMuOTE3LS45MTUgMS4xMTItMS44MDIgMS4wMzYtMS45MTVsLTIuNDM1LTIuNDg1Ljk1MS0xLjkyOXptLjIxLTYuMTE3YTE1IDE1IDAgMCAxIDEuNjE3IDMuNzk1IDguNjA2IDguNjU5IDAgMCAxLTQuNTctLjgzOHptLS41MjUtMi4zMTYtLjAxMyAxLjkzNi00LjIyNiA0LjIzLjYwMS4zMTguOTE3LS45MTVjMS45MjQgMS4zMDIgMy42MjQgMi4wNDggNS4yNDggMi4zNWExMi43IDEyLjcgMCAwIDEtLjMwMiA1LjI2NmwuMzQzLjA4NWMuODY4LTEuNzgyIDEuMzY1LTMuNTIgMS41MDQtNS4xOTVhMTIuMTA0IDEyLjE4IDAgMCAwIDQuNTg0LS45M2MtLjY1OC0xLjIwMy0uNy0yLjMzLS4xMjYtMy4yOTRsLS4xNDctLjE4M2MtMS40Ljg4LTIuODM0IDEuNjI2LTQuMjc1IDIuMDYzYTE0LjA2NCAxNC4xNSAwIDAgMC0xLjQyLTUuMDc2Yy4zNDItLjQwOS40NC0uNjA2LjM3Ny0uODY3em0xMC40NjgtNi4xNzRjMS4xNjkuMzAzIDIuNjg3IDEuMDI4IDMuNTkgMi4wNDkgMi42MS0uMDM1IDEuNTY3LTQuNjMyLTMuNTA2LTIuMzN6bTMuODI3LTExLjIzNS0yLjM3OSAyLjM4Ni0zLjI2LTMuMzNjMS4yODctMS42NTQgMi40ODQtMy41MzQgMy4xNTUtNC44NTcuNjUtLjM2Ljk0NC0uNzE4Ljk2Ni0xLjA2M2wtMy41OS4zOTRhMjMuOTI5IDI0LjA3NiAwIDAgMS0uOTg2IDQuODY0bC0yLjU0IDEuMzM4IDQuNzQzIDQuODQzLTIuODQuMTcuMzE1IDIuMDk3LS44OTYuOTAxYTI2LjMwOCAyNi40NyAwIDAgMC0uMjg3LTMuOTg0Yy4zOTItLjMyNC40NDEtLjY0LjMxNS0uOTAxbC0yLjY4NyAxLjQxNSAyLjI2OC0yLjI3NGMuMjMxLS4yMjUuMzA4LS40NzEuMTgyLS43MDRsLTIuOTI1LjE4My4zMDEgMi4wMi0xLjA5MiAxLjA5MWMuNTQ2LTEuMjk1LS45ODYtMy4xNTQtNC4zNDUtLjYxM2wtLjAzNC4yMzNjLjkzNy4xMzQgMi4xOS41ODQgMi45OTUgMS4zMS4yMjMtLjAzNi40NC0uMDc4LjYxNS0uMTYzbC0zLjU5IDMuNTkuNjAyLjM0NSAxLjA3Ny0xLjA3Ny0uMDYzLjEzNGMxLjAyMi40NSAyLjM4IDEuMTc1IDMuMjMzIDIuMTEyIDIuNDYzLjA3NyAxLjc0Mi00LjE2LTMuMDIzLTIuMzkzbDMuNjM4LTMuNjRhNDQgNDQgMCAwIDEgMi4zNjUgMy43NjZsLTQuNjE4IDQuNjI2LjYwMi4zNDQgMy4wMzYtMy4wNDEgMS45MDQgMS45NDMtMi44OSAyLjg5NC41OC4zMyAyLjc1OC0yLjc2IDEuMDE0IDEuMDM2LTIuNTQgMS4wMDdjMS4xNzUgMS41MjcgMi43NSA0LjA5NyAzLjM0NCA2LjI0NGwuMzQzLS4wMTRjLjI4Ny0yLjI4LS4yOC00LjgwOC0uODc0LTYuNjMxbC4xNi0uMTYyIDIuODc2IDIuOTM1Yy4xNzUuMTgzLjIyNC4zMzEgMCAuNTU2bC0xLjQgMS4yNzUuMjEuMjFjLjcxNC0uNTIgMS4xNy0uNTg0IDEuNTc1LS41MzQuNDA2LjA0OS44MTEuNDI5IDEuMzA4LjkwOCAxLjc2NC0yLjA2MyAxLjMzLTMuMDI3LjE2OS00LjIxN2wtNC4zNi00LjQ1IDIuNjYtMi42NmMuMjMtLjIyNi4zMDctLjQ3Mi4xODEtLjcwNS0xLjEwNS0uMDA3LTIuODQuMTctMi44NC4xN2wuMzAxIDEuOTg1LS43NDguNzUzLTEuOTA0LTEuOTQzIDMuMDM3LTMuMDQyYy4xNDctLjE0OC4yMzEtLjI5NS4yMzEtLjQ1N2wuNDU1LjQ2NGMyLjkzOSAzIDUuNjgyIDYuMjU5IDYuMDEgMTAuNTg4bC4zNDMuMDIyYzEuNDc2LTUuODE1LTEuNjIzLTkuNTA0LTQuNDc4LTEyLjQxOGwtLjU4LS41OTEgMS41NDYtMS41NSA4Ljk0MiA5LjEyNC4zMjktLjMyNGMuOTgtLjk3OCAxLjE0Ny0xLjk2NCAxLjAzNi0yLjA3N2wtOC40MjQtOC41OTUgMS40MzQtMS40MzZjLjIzMS0uMjI1LjMyOS0uNDkzLjE4Mi0uNzA0LTEuMzQzLjAxMy0zLjQ5MS4yMzItMy40OTEuMjMyem0xMy4yNzMtMjAuNjYyLjEwNSAxLjkyMi0zLjggMy44MDgtMi4zMDgtMi41ODRjLjM0My0uNDQzLjMyOS0uNzg4LjEzMy0xLjA0OWwtMi43ODQgMi4zNjYgMy4wMDEgMy4yMzEtMy4zNTggMy4zNjUtMi44OTcgMS4yMDQgMTIuODgxIDEzLjE0NC4zMDktLjMxYy44MTgtLjgxNyAxLjE0Ny0yLjA2Mi45MDItMi4zMDhMMTMyLjQzMiAzNC4zbDMuNDc3LTMuNDc4YzIuNTgyIDMuMDYyIDQuMDU5IDYuMDIgMy40OTkgMTAuM2wuNDIuMDdjMS41MzEtMy43OCAxLjMzNS02LjU1NC4xNDYtOS4wNTMgMi4wNDMuMTc2IDQuNDI5LjY5IDYuMDI0IDEuNjY4IDMuMTIxLS41MTMuNzI4LTUuNTktNi4zOC0yLjM1OC0uNDctLjg3My0xLjA3OC0xLjcyNC0xLjc3LTIuNTdsNC4wMTUtNC4wMTkgOS4wODkgOS4yNzFjLjI0NS4yNDcuMjczLjQ3OS0uMDM1Ljc4OS0uNTM4LjU0Mi0yLjkwMyAyLjYxMi0yLjkwMyAyLjYxMmwuMjIzLjIzM2MxLjE5LS44NjYgMS44NzYtMS4wOTEgMi41MTktMS4xMi42NDMtLjAyOCAxLjE5Ni4zMDMgMS45MjQuODQ1IDIuMTU1LTIuNjIgMS43MjEtMy43NTIuNDItNS4wODNsLTkuMDA1LTkuMjA4Yy4yNTktLjM5NC4zNDItLjc2Ny4zNDItLjk2NHptMTYuNDM1LTE1LjI0OCAxLjQ2MyAyLjE4OS4yNDUtLjA1YTE1LjQ2MyAxNS41NTggMCAwIDAgLjU1Mi0zLjY4OGMuMzA4LS4zNDUuNDU1LS41NTYuNDI3LS44MTdsLTMuMjc0LjA1LjAwOCAxLjk1LTQuMzM4IDQuMzQzYy42MDgtMS40NTctMS4yMTgtMy41MTMtNC4zMTgtLjA1bC0uMDIuMjEyYTQuNDc4IDQuNTA2IDAgMCAxIDMuMDQzLjgzYy4xNi0uMDM1LjMwOC0uMDc3LjQ0MS0uMTQ3bC00Ljg2MyA0Ljg2NGE4LjA0NyA4LjA5NiAwIDAgMC0xLjE4Mi0uNjQ4bC0uMjMxLjIyNWEzLjM1OCAzLjM4IDAgMCAxIC44NzQgMy4yNjZjLS4yNDUuNzQtLjE1NCAxLjUyOC41ODggMS45MjIuODI2LjM4IDEuNzM1LS4yNzUgMS45MjQtMS4xNC4xODktLjg2Ni0uMTY5LTIuMTQ3LTEuNDQyLTMuMjI0em0tMi44ODIgNS4xMDNjMS45MDMtLjQ2NCA0LjcwOS0uNjMzIDYuNTItLjEzMyAyLjc2NC0xLjIzMi0uNTE3LTUuNzQ1LTYuNTM1LS4xNHptLTMuNzMgMTEuMzA2YTE4LjQwMiAxOC41MTQgMCAwIDAgMS43OTgtOC4xNThjLjM5Mi0uMzI0LjQyNy0uNTU2LjM0My0uODAzbC0zLjEyMSAxLjIwNGExNy45ODIgMTguMDkyIDAgMCAxIC42NDQgNy43MTZ6bTExLjA5Ny02LjIxNi00LjU5NyA0LjYwNC0xLjc1Ni43NDZjLjc3Ny0yLjgwMSAxLjA4NS01LjUyNi43NTYtNy42MWExMi41MjUgMTIuNjAxIDAgMCAwIDUuNTQ5LjUxNHptLTEuMTgyIDguMzI4LTMuMDg2LTMuMTQ3IDQuODYzLTQuODY0IDMuMDg2IDMuMTQ3em0tNy4zNzUtMTAuMDhjMS4zMDIgMi42ODEgMS4wNzggOC40ODItLjM3OCAxMi43NzdsLjI5NC4xMzNhMjkgMjkgMCAwIDAgMS45Ni00LjcwM2w1LjMzNyA1LjQ1Ni4yOC0uMjc0Yy43NDktLjc1NCAxLjE2Mi0yLjAxNCAxLTIuMTc2bC0uNjY0LS42NzUgNC44NjMtNC44NjUgMS4xMTIgMS4xMzQuMzMtLjMyNGMuNjIxLS42MiAxLjE5NS0xLjkxNSAxLjA5OC0yLjA0OWwtMy45NC00LjAyYy4yNDYtLjM0NC4yOTQtLjY1NC4yOC0uODM3bC0yLjEyNy4yNjdhMTcuODQyIDE3Ljk1MiAwIDAgMCA0LjEyOS0xLjI5NWMtLjU5NS0uODEtLjg5Ni0yLjEzMy0uMzQzLTMuMTU0bC0uMjU5LS4yNmMtMi44MzQgMS45OTItNi44OTkgMy45Ny05LjkzNSAzLjg3OC40NTUtLjU1Ni41NTItLjg1MS40MTItMS4xMzN6TTQ4LjUxOCAxNTkuOTZjLjI0NS0uMjQ3LjM0My0uNTA3LjIxNy0uNzRsLTMuODE0LjQzLjMwOCAyLjY4OS0xMS43NjEgMTEuNzc3LjU4LjMzMSA2LjcyNC02LjczYzIuMzggNC40NyAzLjU3NSAxMS4zMzQgMi45MSAxNy4yODNoLjI2YTMwLjI5NiAzMC40ODIgMCAwIDAgMS4yMzEtMTIuMDY2bDguMzYxIDguNTMyLjM1Ny0uMzZjLjcyLS43MTcgMS4yNzMtMS45IDEuMTgyLTIuMDI3bC05LjI1LTkuNDRjLjI2LS4zNi4yOTQtLjYyLjE5Ni0uODE4bC0xLjM4NS42MzRhMjUgMjUgMCAwIDAtMS4zMDgtNC4zMDF6bS0xLjQgOS45NTRjMi43NzgtLjQzIDYuNzUzLS40OTMgOS4yNjUuMjg5IDMuMjUzLTEuMDk4LS4yOTQtNi4zNjQtOS4yNjQtLjU3OHptMTIuNTA0LTIzLjg1YTguMTE3IDguMTY2IDAgMCAxIDMuODU1Ljc3NGMyLjcwMS0uNzExLjcyOC01LjE5NS0zLjg0MS0xLjAxNHptLTMuMzUyIDExLjAyM2EyOS42NjcgMjkuODQ5IDAgMCAwLTEuNTk1LTUuMDI2Yy4zOTItLjM1OS40NDEtLjcwNC4yOTQtLjk4NmwtMy41ODMgMS44NTJjMi40NzcgMy45NzcgNC4yNjggOC43MTUgNC44NSAxMi4xNzlsLjMyMS0uMDYzYTE5LjUyMSAxOS42NCAwIDAgMCAuMjAzLTQuNTEzbDguNzQ2IDguOTI3LjM1Ni0uMzZjLjczNS0uNzMyIDEuMTEzLTEuOTI4Ljk4Ny0yLjA5N2wtOS40ODgtOS42ODdjLjI1OS0uMzYuMjkzLS42Mi4yMTctLjgzOHptMTcuNDA5LTUuMzg1LS4yMS4xNDhhMjMuNzIgMjMuODY1IDAgMCAxIC45NTkgMy4wOWMuMTEyLjQ0NCAwIC41NTctLjQ5LjU5Mi0zLjU0LjU3Ny02Ljk0MS0xLjAxNC0xMC4xNTMtMy41MDZsNC4yMzMtNS4zNDNjLjE5Ni0uMjYuMjQ1LS41NDIuMDk4LS43NTQtMS40MTQuMjc1LTMuNDc4Ljg3My0zLjQ3OC44NzNsLjUwNCAyLjQ2NC0xLjg2IDIuMzUxYTQ2LjUzIDQ2LjgxNSAwIDAgMS00LjM2LTQuMTE4Yy4zNDMtLjQ3Mi4yOTQtLjgxNy4xMi0xLjA2M2wtMi44NTUgMi4yNGE1OC4yODQgNTguNjQxIDAgMCAwIDUuNDU4IDUuMDEybC0zLjAzNyAzLjg1Ny42MTYuMjY3IDIuOTM5LTMuNzNjMy45NDYgMy4wMzQgOC4wMjUgNC44OTIgMTIuNTM4IDQuNDQ5IDEuNDQ4LS4xNzYgMy40NjQtLjg4NyAzLjQyMS0yLjM4LS4wMTMtLjU0Mi0uNTYtLjkzNi0yLjA5OS0xLjI4OHptMTAuNzk1LTE3LjA4NWMuMjg3IDEuMjQ2LjQ1NSAzLjM2NS40NDEgNS4xNjhhMTEuMjY1IDExLjMzNCAwIDAgMS00LjkxMi0xLjI4Mmw2LjEwMi02LjExYy4yMzEtLjIyNS4zMjktLjQ5My4xOTYtLjcxOGwtMy4zOTQuMjMyLjMyOSAyLjQxNS0zLjY4NyAzLjY4OS0xLjg5LTEuOTI5IDQuODQyLTQuODVjLjIzMi0uMjI1LjMzLS40OTMuMTk2LS43MThsLTMuMjYuMjMyLjM0MiAyLjI5NS0yLjU3NSAyLjU4NC0xLjc5LTEuODMgNS40NzgtNS40OTFjLjIzLS4yMjUuMzA4LS40NzIuMTgyLS43MDRsLTMuMzMuMjMyLjMyOCAyLjM0NS0zLjEzNSAzLjEzMi0xLjM1Ny0xLjM4NmMuMzU2LS40OTMuMzQyLS44MDMuMTUzLTEuMDYzbC0yLjc4NCAyLjM2NiAyLjAxNSAyLjA1NS01LjYxMSA1LjYxOC42MTUuMzMxIDUuNDY1LTUuNDcgMS43OSAxLjgzLTQuODEzIDQuODE2LjU4MS4zMyA0LjY4LTQuNjg4IDEuODkgMS45MjktNi40MyA2LjQzNC42MDEuMzQ1IDUuMjItNS4yMjNjLjQ5IDIuOTcuMTkgNi44NTYtMS4wOTEgMTAuNDI2bC4zMDguMTJxMS42MTUtMi43OTkgMi41Ni01LjU5N2wyLjIyNiAyLjI3M2MuMjkzLjI5Ni4zNTYuNTkyLjAwNyAxLjc1M2wzLjE2Mi42ODNjLjAzNS0uMTk3LjA1LS40NDQuMDItLjcwNGwxLjc3OC03LjcxNi0uMjQ1LS4xMTMtMi41MjYgNC40MjEtMy41OTYtMy42NzRhMTQuMTMzIDE0LjIyIDAgMCAwIC4xODktNC41MjdjNC44MzUgMy4yMTcgOS4wMTkgMy45MjggMTMuMTMzIDIuMjUzLS44MDUtMS4wMi0uOTQ0LTIuMjgxLS41MTgtMy42MjZsLS4xOTYtLjI2Yy0yLjAzNiAxLjQxNS00LjE5OCAyLjM4LTYuNTM1IDIuNTM1Ljg2Ny0xLjc1MyAxLjU5NS0zLjcxNyAxLjk5NC01LjEyNS40NC0uMjc1LjQ4OS0uNTIxLjQ0LS43Njh6bTYuMjU2LTE5LjUwOGMxLjEyLS4xNCAyLjczLjA0MiAzLjczLjYwNiAyLjY1MS0uODI0LjQ4Mi01LjI0NS0zLjcwOC0uODUyem02LjUzNSAxLjE2MmMuNTExIDEuMzQ0IDEuMTM0IDMuNjYgMS40NzYgNS41OTdhMTQuMDY0IDE0LjE1IDAgMCAxLTQuMzU4LTEuNjRsLTEuMTI3LTEuMTU1IDYuMTAyLTYuMTFjLjI0NS0uMjQ3LjMyOC0uNDk0LjE5Ni0uNzE5LTEuMzY1LjA1Ny0zLjQ3OC4zNDUtMy40NzguMzQ1bC4yOCAyLjQyOS0zLjU3NSAzLjU3Ni0yLjc0My0yLjgwMWMuMzQyLS40NzIuMzI5LS43NTQuMTMzLTEuMDE0bC0yLjgwNiAyLjI4OCAzLjQzNSAzLjUwNi02LjMzMiA2LjMzNi42MDIuMzQ1IDYuMTk5LTYuMjEgNC42OCA0Ljc4LTMuNDA3IDguOTkgMy41MzMuNTdjLjA4NC0uMjgyIDAtLjU5MS0uMTc1LS44MzdsLjYwOS04LjE1MiAzLjQ4NCAzLjU1NWMuMjI0LjIzMi4yMzguNDA4LS4wNTYuNzA0LS4zOTIuMzk0LTIuNDYzIDIuMjAzLTIuNDYzIDIuMjAzbC4yMS4yMTFjMS4wNzctLjc1MyAxLjcwNy0uOTI5IDIuMjk1LS45MjJzMS4xMzMuMzY2IDEuODEyLjkzYzIuMTA2LTIuNSAxLjY1OC0zLjU4NC4zMjItNC45NTdsLTYuNzU5LTYuODk5YzQuOTE5IDMuMjM5IDguNTMgMy42OTYgMTIuNTYgMi44OTMtLjY5NC0xLjE2OC0uNzk4LTIuNDk5LS4xNzYtMy40NzdsLS4xMjYtLjIzM2MtMi4zNzIgMS4xMDUtNS4xNTcgMS45OTMtOC4yNyAxLjU1NmEzOS40NjIgMzkuNzA1IDAgMCAwIDEuMjE3LTUuNjg4Yy40MDYtLjM0NS41MDQtLjU3LjQyOC0uODE3em0tOS43NiAxMC40MjZjMS42MDIuMTIgMy42OC42OSA1LjAwMiAxLjcxIDMuMjMzLS40MjggMS4xNDctNS43ODYtNC45NTMtMS45NTZ6bTExLjg5NC0yMS43MDRjMS4yMDMuMDA3IDIuODU1LjMzOCAzLjkxOS45NzEgMi42OC0uNjI2Ljc5LTUuMDk2LTMuODktMS4yMzJ6bS4zNzEgMy42NDcgMTMuMTA2IDEzLjM3NS4zMDgtLjMxYy43LS43MDQgMS4wNzctMS44My44ODktMi4wMjdsLTExLjc5Ny0xMi4wMzhjLjQ0LS41Ny4zNzgtLjkwMi4xODItMS4xOTd6bTE0LjU1NCAzLjYwNC0yLTIuMDQyIDIuNTQ2LTIuNTQ4IDEuODI2IDEuODU4em0tNC4xNy05LjM5OCAxLjg1MyAxLjg5My0yLjU0NyAyLjU0OC0xLjg1NC0xLjg5M3ptLS4yMjQgNC45MiAyLjU0Ny0yLjU0OCAxLjkzOCAxLjk3OC0yLjU0NyAyLjU0OHptLjcyLTEzLjM0Ny4xNCAxLjc4OC02LjI2MiA2LjI3Mi42MDIuMzE3IDYuMjgzLTYuMjg2IDEwLjk5MiAxMS4yMTRjLjI2LjI2LjI3My40NzktLjAyLjc3NWE0NS41NSA0NS44MjkgMCAwIDEtMS43NjQgMS41N2wtMS44MjYtMS44NTkgMS4zNzEtMS42MDRjLjE5Ni0uMjMzLjI0NS0uNTA3LjA5OC0uNzE4bC0yLjU2LS4xNzYuMjc5IDEuNjc1LTYuMTE1LTYuMjQ0IDEuMjU5LTEuMjZjLjIzMS0uMjI1LjMyOS0uNDkzLjE4Mi0uNzA1bC0yLjg5LjI1NC4yMzIgMi4wMi02LjU5MSA2LjU5Ni41NjcuMzQ1IDEuMjczLTEuMjc0IDYuODQzIDYuOTgzLTEuNDg0IDEuNzE4LjY3OS4zMyA1LjI3NS02LjA5NiAyLjk2NiAzLjAzNC4yOTQtLjI5NWMuODgxLS44OCAxLjA3Ny0xLjc2Ny45ODctMS44NjZsLS41MTgtLjUyOGMuNjE1LS4zNiAxLjA1Ni0uNDcyIDEuNDk3LS40ODYuNTA0LjAyIDEuMDM2LjM2NiAxLjY1MS44OTMgMS45NDYtMi4zNzIgMS41MTItMy4zNzIuMjg3LTQuNjI1bC0xMC45MDgtMTEuMTM3Yy4yOC0uMzczLjM2NC0uNzUzLjM0My0xem0xOC45MjYtOC45MzMgMy41MiAzLjU5LTYuNDU4IDYuNDctMy41Mi0zLjU5em0xLjM2NSAxNC40Ni0zLjg1Ni0zLjkzNiA2LjQ1OC02LjQ3IDMuODU2IDMuOTM2em0tNC4yOTYtMTkuMTk4TDExNS4yNCA5Mi4xNjZsLjYwMS4zNDUgNS43MjQtNS43MyAyLjU5NiAzLjIxLTEuMzcyIDEuMzczLTIuOTI1IDEuMjMyIDExLjAwNyAxMS4yMzUuMzA4LS4zMDljLjg0Ny0uODUyIDEuMTk2LTIuMTEyLjk3My0yLjM0NGwtLjc0Mi0uNzYgNi40NTgtNi40NyAxLjMzNiAxLjM2Ni4zMjktLjMyNGMuNjg1LS42ODMgMS4yMS0yLjA2MiAxLjA5OS0yLjIxbC04Ljc2LTguOTQ4Yy4yOC0uNDA4LjM0My0uNzY3LjMyOS0xLjAxNGwtMy4zMzEuMzk0LjA4NCAxLjk3MS00LjE3OCA0LjE4MmEyMy41OCAyMy43MjQgMCAwIDAtLjgzMi00Ljk3N2w1Ljg5MS01LjljLjI0NS0uMjQ2LjM0My0uNTA2LjIxNy0uNzM5bC0zLjY1My40M3ptMTIuMjAyLTExLjY1N2MxLjMzLS4wMjkgMy4xMTMuMzczIDQuMTc3IDEuMTY4IDIuODktLjQ0NCAxLjA2NC01LjMwOC00LjE2My0xLjQxNXptMy42NzMgNC4zNzhjMS4zMDItLjA1NiAzLjA2NS4yOSA0LjE1IDEuMDM2IDIuODc1LS41MjkuOTUxLTUuMzkzLTQuMTUtMS4yNjd6bS0yLjc4NCAyLjIwNCAyLjI2Ny0yLjI3M2MuMjEtLjIxMi4zMDgtLjQ3Mi4xODItLjcwNS0xLjE2OC0uMDA2LTMuMDM2LjA5OS0zLjAzNi4wOTlsLjM5MiAyLjE0Ny0uMjYuMjYtMi44NC0yLjkgMS4xMjYtMS44MTZjLjctLjM0NSAxLjAwOC0uNzUzIDEuMDQzLTEuMTEzbC0zLjkxMS4yMzNhMjkuNDU3IDI5LjYzOCAwIDAgMS0yLjQ1NiA3LjYxN2wuMjczLjE0OCAyLjM2NS0yLjg5MyAyLjUzMyAyLjU4NC0yLjU3NSAyLjU4My41ODEuMzMxIDIuMjE4LTIuMjI0YzEuNzM1IDIuNzk1IDMuMjI2IDYuMTY3IDMuNjE3IDkuMTY1bC4zNzEtLjAxNGExOC41NDEgMTguNjU2IDAgMCAwLS4wOTctNS42NDVsNS45OSA2LjExLjM0Mi0uMzQ1Yy45MTYtLjkxNSAxLjA5OC0xLjk1Ljk4Ni0yLjA2MmwtNy43MzEtNy44OTJjMS4wODQuMjgyIDIuMzUuNzQ2IDMuMjA0IDEuMzk0IDIuNTE5LS4yMDQgMS4zNzItNC40NDItMy42ODctMS44ODd6bTEyLjYzNi00Ljc1Mi0uMDk4LjE2Mi04LjM0LTguNTE4Yy4zNzgtLjUwNy4zMTUtLjgwMi4xMTktMS4wNjNsLTIuNjg3IDIuMjA0IDkuMzkgOS41ODgtNC40MTUgNi40NzcuNjY1LjIxOCA0LjIxOS02LjIxNiA0LjgyOCA0LjkyOC4zNTYtLjM2Yy43LS43MDQgMS4wODUtMS45MjguODktMi4xMjZsLTQuNTctNC42NiAxLjcxNC0yLjUzNWMuMTYtLjIzMy4xOTYtLjUyLjAzNS0uNjlsLTIuODQuMzAyem0tLjctMTguMTYzYzEuNDQxLjIxOCAzLjMxLjcwNCA0LjU3IDEuNjI3IDMuMTgyLS40NzkgMS4yOC01Ljc4Ny00LjUyMS0xLjgzOHptMTIuNzc2LTQuNjM5Yy4yMzItLjIyNS4zMy0uNDkzLjE5Ni0uNzE4bC0zLjczNi40MDkuMzA4IDIuNTktMTEuMDEzIDExLjAyNS42MTUuMzN6bS0xMC41MyAxMi43YzIuOTggMS4zNTkgNi41NTcgMy4yNiA4Ljg5MyA1LjU0NyA0LjEzNS0uMDYzLjY2NS02LjYxLTguNzQ2LTUuODI5em0xNy43MjQtLjc3NS0zLjQwOCAzLjQxNWMtLjg1NC0zLjk3LTIuNDg0LTguNjEtMy43NS0xMS41NDUuNDA1LS4zNzMuNDEyLS43NC4yOTMtLjk4NmwtMy41MzMgMi4wN2MyLjAyOSAyLjk2NCA0LjczIDcuNDk4IDYuNTE0IDEwLjk0bC04LjI3IDguMjc4LjU4LjMzMSAxNC44NDctMTQuODZjLjI0Ni0uMjQ3LjM0My0uNTA4LjIxNy0uNzRsLTMuOC40NDR6bTUuOC0xNC45ODgtMS43IDIuODgtNC42MTgtNC43MSAyLjIxOC0yLjIyNGMuMjMxLS4yMjUuMjkzLS40NTguMTY4LS42OS0xLjEwNi0uMTM0LTIuOTY2LS4xOTEtMi45NjYtLjE5MWwuNTM4IDIuMjMxLS40MDYuNDA5LTMuNjE3LTMuNjg5Yy4zNzgtLjUwNy4zMTUtLjgwMi4xMzMtMS4wODRsLTIuNjg3IDIuMjY3IDQuMjk2IDQuMzc4LTIuMDIyIDIuMDI4LjU2Ny4zNDUgMS45MS0xLjkwOCA1LjA2NSA1LjE3NC0xLjYyMyAyLjU3IDMuMjQgMS4xNjJhMS4wNSAxLjA1NiAwIDAgMC0uMDI5LS44NTJsMS43NjQtNy45NjJabTMuOTUzLTExLjM5Ny0uMDE0IDEuOTAxLTQuNTk3IDQuNjA0Ljg5Ni05LjE4Yy40MjYtLjQ5My43Mi0uOTc4LjY4NS0xLjM0NWwtMy40MDcuMzE3LjA3IDEuODI0LTUuNzEgNS43MTYuNjAyLjMxNyA1LjMxOC01LjMyMWMtLjA2MyAyLjM0NC0uNDcgNi4wODItLjg2MSA4LjY4N2E2LjMgNi4zIDAgMCAwLS44MDQgMS4zOTNsMi45NTIuMDE0LjI1Mi0xLjQ5Mi42MzctLjYzNGMxLjQ3NiAzLjA1NSAyLjA5MiA2LjYxNyAxLjM3MiAxMC4xOGwuMzkxLjA3YzEuNjE3LTQuMzU3IDEuNTY4LTguMzI3IDAtMTIuMDFsLjUyNS0uNTJjMi43MzYgNC4zMDggMy41NTUgOS4wMDQgMS43MjEgMTQuMzYxbC4zNTcuMDdjMy4wMTYtNi4yNTEgMi42MS0xMS4zNTUtLjI3My0xNi4yNGwuNDktLjQ5M2MzLjU5NiA0LjAzNCA1LjM1MiA2LjQ1NiA1LjI4MiA3LjQwNS0uMDM1LjI5Ni0uMTIuNDc5LS4zNzguNzRhNDMuNjYgNDMuOTI4IDAgMCAxLTEuOTczIDEuNzQ2bC4yMS4yNDZjLjc0OC0uNDg2IDEuNDYyLS43ODEgMS45NTItLjc0NnMuOTczLjQwMSAxLjQ5LjkyMmE0LjEyOCA0LjE1MyAwIDAgMCAxLjQxNC0yLjcxN2MuMTItMS42NTUtMS41MzItNC4xNzUtNS45NC05LjA2Ny4zMDgtLjQwOS4zOTItLjcxOC4zNzgtLjk2NXpcIi8+PC9zdmc+Jyk7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgaW5zZXQ6IDA7XG59XG5odG1sOmxhbmcoemgtaGFudCkgLkhpc3RvcnlEaXNjbGFpbWVyLW1vZHVsZV9fZGlzY2xhaW1lcl9XOVNZb0dfXzQ5MCB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9zdmcreG1sLDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjAwXCIgaGVpZ2h0PVwiMjAwXCIgZmlsbD1cIiUyM2NjY1wiIG9wYWNpdHk9XCIuM1wiIHZpZXdCb3g9XCIwIDAgMjAwIDIwMFwiPjxwYXRoIGQ9XCJNMTMuMTE2IDE1NS44MjMgMjQuODUgMTQ0LjAxYy4yMy0uMjI1LjMyNy0uNDkzLjE5NS0uNzE4bC0zLjQ3Mi4zNi4yOCAyLjQ2My04LjkxIDguOTY5TDEwIDE1Ni4yNTNsNC44MTggNC45NDFjMy4xMTYgMy4xOTcgNi43NTUgNy4wMzMgOC41MjYgMTEuMjkybC4zMDctLjA3OGMtLjA3LTUuNjEtNC4xNDEtMTAuMDI0LTcuMDYyLTEzLjAyM3ptMTIuOTA1LTYuNzg2LS42NjMuNjY4LTEuNDc4LTEuNTEzLjkyNy0xLjM1OWMuNTM3LS4yMTEuODIzLS41MDcuODU4LS44M2wtMi41NTIuMDU1Yy0uNDc0IDEuNDU4LTEuNjUzIDQuMDQ4LTIuNzYgNS44NzlsLjMzMy4xODMgMS43NzEtMi4wNzcgMS4yNyAxLjMwMi0xLjgyIDEuODMtMi4xMzQuMTU1LjIxNiAxLjc3NC0uMTk1LjE5Ny0xLjQ3OC0xLjUxMy43MTgtMS4xMTJjLjU2NS0uMjQ3Ljg1OC0uNTM2Ljg1OC0uODMxbC0yLjUzOC4xMDZjLS4zNjMgMS4zOC0xLjMyNSAzLjc4LTIuMzA4IDUuNTU0bC4zMi4xNjJhMjcgMjcgMCAwIDAgMS42MjUtMi4wMjhsMS4yMiAxLjI1My0xLjg2OSAxLjg4LjU5My4zNDUgMS4zNDYtMS4zNmExMS4zNjQgMTEuNDc1IDAgMCAxIDEuMzMxIDQuODkzbC40MDQuMDg1YTEyLjQxIDEyLjUzIDAgMCAwIC40ODgtMy40OTJsMS45NiAyLjAwNi4yNzktLjI3NWMuNzk0LS44MDIuOTYyLTEuNjU0Ljg3OC0xLjczMWwtMi43NDctMi44MTZhNC42MDEgNC42NDYgMCAwIDEgMi4wMjkuODMxYzIuMDg0LS4yNCAxLjI3NS0zLjc2Ni0yLjM1LTEuMTYybC0uMzA3LS4zMSAxLjg5Ni0xLjkwN2ExLjEgMS4xIDAgMCAwIC4xODItLjI0N2wuMDM0LjAzNiAxLjM5NS0xLjQwOGMuNzUzIDEuNjg5IDEuMjA2IDMuNTgzIDEuMDY3IDUuNDQ4bC4zOS4wN2MuNDYtMS4zNzIuNzYtMi43NTIuNzk1LTQuMDYxbDEuOTI0IDEuOTc4LjI5My0uMjk2Yy44MDgtLjgxNy45NzYtMS43MDQuODc4LTEuODAybC0zLjIyOC0zLjMwOGMxLjgzNCAxLjE4OSAzLjQ3OSAxLjgxNSA1LjA0IDEuNzczLS43MDMtMS4wODQtLjgxNS0yLjAyLS4zNTUtMi43NzNsLS4xNDYtLjIxMWE2Ljk3MiA3LjA0IDAgMCAxLTQuMjMyLjc0bDIuMTg5LTIuMjA1Yy4yMy0uMjI1LjMwNi0uNDcxLjE2Ny0uNjlsLTIuODQ1LjE1NXptOC44MDUgMTAuMDk1LTIuNDY3IDIuNDg0LTIuNTY2LTIuNjMzIDQuMDA5LTQuMDM0Yy4yNDMtLjI0Ni4zNC0uNTA3LjE5NS0uNzE4bC0zLjIuMzE3LjI0NCAyLjIzMS0xLjcyMiAxLjczMi0xLjYwMy0xLjY0N2MuMzQtLjQ3Mi4yOTItLjcxOC4xMTgtLjk2NGwtMi41MzEgMi4xNTQgNS4yNSA1LjM4Ni0xLjgzNCAxLjg0NC0zLjUxNC0zLjYwNGMuMzA3LS40NDQuMzE0LS43MDQuMTA1LS45NWwtMi40OTYgMi4xMTggNC4xMjggNC4yMzEtMi40OTYgMi41MTMuNTkyLjM0NSAxMi43NTktMTIuODRjLjIzLS4yMjUuMzI3LS40OTMuMTk1LS43MThsLTMuNDIzLjM4em0uNjc3LTE0LjYxNS0zLjcxLTMuODA5IDMuMDM0LTMuMDU1IDMuNjc0IDMuNzczLjAzNS4wMzV6bTQuMzcyLTExLjk0IDMuNzA4IDMuODA4LTMuMTAyIDMuMTItLjAzNS0uMDM2LTMuNjc0LTMuNzczem00LjE0IDQuMjUyIDEuMjcgMS4zMDIuMzI3LS4zMjRjLjY2My0uNjY4IDEuMTkzLTIuMDEzIDEuMDc0LTIuMTYxbC00LjU5NC00LjcxYy4yNTgtLjM5NC4zNTYtLjcxOC4zNDEtLjk2NGwtMy4yNjMuNDE1LjA3IDEuODg3LTIuOTM1IDIuOTU3LTIuMjE3LTIuMjc0Yy4zNTYtLjQ5My4zMTQtLjgwMi4xMTktMS4wNjNsLTIuNzc1IDIuMzAyIDIuOTIxIDMtMi45MDcgMi45MjEtMi44MyAxLjI1MyA2Ljc0MSA2LjkyLjI5My0uMjk1Yy43ODEtLjc4MiAxLjIwNi0yLjA2MyAxLjAzMi0yLjI0NmwtLjc1NC0uNzc1IDMuMDE5LTMuMDQxYTEwLjM4OCAxMC40OSAwIDAgMSAyLjQ2MSA0LjExYy0xLjQzNy4yNC0yLjg3Mi4xODQtNC4yNzQtLjI2NmwtLjA3LjM1OWExMi43NTkgMTIuODgzIDAgMCAwIDQuNjMgMS4xODJjLjM0MSAyLjM5NC0uMjcyIDUuMTY4LTIuMDk4IDguNjAzbC4yNzIuMTQ4YzIuNDg4LTMuNDUgMy42NjctNi4zMzYgMy44NDEtOC44MjcgMy4yNS0uNDMgNi40MDgtMi4yMDQgOS43NzUtNC44NDQtLjc2Ny0xLjE1NS0uOTA2LTIuMzE2LS4zMDctMy40MTRsLS4yMDktLjIxMmMtMy4wNjcgMi45MjItNi4yMTIgNS40MDctOS4zMzUgNi42MTgtLjI5My0xLjk4Ni0xLjI2OS0zLjc0Ni0yLjc0Ny01LjQyOHptMTUuMDg4LTE5LjIzM2MxLjIzMyAxLjc5NSAyLjI1OSAzLjczMSAyLjk5IDUuNzM3LTEuOTAzLS40MzYtMy44NjktMS4zMy01Ljg5MS0yLjgxNXptLS41ODYtMi4zMTYuMDM1IDEuOTUtMy40ODYgMy41MTMtMi45NTYtMy4wMzRhNTIuODQ3IDUzLjM2MiAwIDAgMCA1LjEzMS01Ljg4NWMuNDM5LS4xNzYuNjM0LS40MDkuNjM0LS43MDRsLTMuNDAyLS4zNi0yLjk5IDYuNTY4LTIuMTU1IDEuMDIgNC4wMTYgNC4xMi0yLjYtLjE2My40NiAxLjk1Ny00LjMwMS00LjQxNGMuMzI3LS40NTcuMjkzLS43MTguMTA0LS45ODZsLTIuNDQ3IDIuMDcgNC45MyA1LjA1NS0xLjA3NCAxLjA3Ny0zLjg1Ni0zLjk1NmMuMzQxLS40NzIuMjkzLS43ODkuMTA1LTEuMDVsLTIuNDY4IDIuMDU2IDcuNTE1IDcuNzFjMi43MjcgMi44IDQuODE4IDUuMjM2IDUuOTQ3IDguMDQ2bC4zNDEtLjA1Yy4xMTktMy41NzYtMS42MS02LjUzMi00LjMyMi05LjQxOWwxLjM4LTEuMzg3IDYuMzU4IDYuNTI2LjI5My0uMjk1Yy42MTQtLjYyIDEuMDExLTEuODY2Ljg4Ni0yLjAyOGwtNS41MDgtNS42NTNjLjI1OC0uMzk0LjM2Mi0uNzg5LjM0LTEuMDM1bC0zLjA1My4zOTQuMDcgMS43ODgtMS4yMiAxLjIyNS0yLjM0My0yLjQwOCA0LjM4Ni00LjQwN2MuMTgtLjE4My4yNTgtLjM2LjIxNi0uNTQybDEuMjA2IDEuMjMyYzIuOTU2IDMuMDM0IDUuODI4IDYuMzQzIDYuNDYyIDEwLjU5NWwuMzA3LS4wNDljMS4wMTgtNS41OS0yLjIyNC05LjM3Ny01LjA2OC0xMi4yOTFsLS44NjUtLjg4Ny4zOS0uMzk0YzIuNDkgMi4wOSA0LjY2NCAzLjUyNyA2LjcyOCA0LjM1Ny41ODYgMi40NS42OTcgNC45Ny4xMDUgNy41NjFsLjM1Ni4wNjNhMTYuOTQyIDE3LjEwNyAwIDAgMCAxLjM4LTYuOTk4YzEuNzA4LjQ2NSAzLjQwMi41MiA1LjE4LjIzMy0uNDk1LTEuMTY5LS4zNzctMi4yOTUuMjkzLTMuMTY4bC0uMTI2LS4xOTdjLTEuODI2LjY2MS0zLjY2NyAxLjA0OC01LjU3Ny45NDMtLjQzOS0yLjcyNC0xLjU1NS01LjI1OS0yLjk3Ny03LjYxLjM0Mi0uNDA4LjQ1NC0uNjIuMzktLjkxNXptMTcuMDg4LTE3LjM2Yy4yNDQtLjI0Ny4zMDctLjQ3Mi4xODItLjcwNC0xLjQwMi4wMTQtMy43MTcuMjQ2LTMuNzE3LjI0NmwuMzkgMi43MS0zLjExNSAzLjEzMy0yLjkyMi0yLjk5OWMuNDQtLjYwNS4zOS0uOTE1LjE4Mi0xLjIzMmwtMi45MzYgMi40IDMuNzA5IDMuODA5LTYuMDI0IDYuMDYuNTc5LjMzMiA0Ljc0LTQuNzczYzIuMTU1IDQuMDYyIDMuNDczIDkuMzk4IDIuOTMgMTQuMTg1aC4zMmEyMi4zMSAyMi41MjcgMCAwIDAgLjYtMTIuNThsNC4wNDMgNC4xNTQtMy4xMyAzLjE1NC41NzguMzMgMy4wMDUtMy4wMiAzLjcwOSAzLjgxLjM3Ni0uMzc0Yy43OTUtLjgwMiAxLjIwNi0yIDEuMDMyLTIuMTc1bC0zLjE0NS0zLjIzMSAyLjc3NS0yLjc5NWMuMjMtLjIyNS4zMDctLjQ3MS4xODEtLjcwNC0xLjI5LS4wMDctMy4zNzQuMDk4LTMuMzc0LjA5OGwuNDQgMi40NjQtLjQ3NS40NzItNi42NjUtNi44MzZjNC42MzYgMi43NzMgOC45ODcgMy45NDIgMTMuMDcyIDMuMjg4LS42Mi0xLjI2Ny0uNTg2LTIuNTQ5LjAzNS0zLjQ2NGwtLjEyNi0uMjMzYTE5LjAzMyAxOS4yMTkgMCAwIDEtMTIuNzg2LjA0MnptOS41MjQtMTEuODA2LTMuOTQ2IDMuOTcuNTkyLjMxNyAzLjgtMy44MjIgMi45MzUgMy4wMTItMy42ODEgMy43MS41OTMuMzE4IDMuNTM0LTMuNTYyIDMuNDI0IDMuNTA2LTQuNDE0IDQuNDQxLjYxNC4zMzEgNC4yNjctNC4yOTQgNC4yODcgNC40LjM5LS4zOTRjLjc2LS43NjcgMS4xNDQtMi4xNjIuOTM0LTIuMzczTDg0LjkwNSA4MS43N2MuMzc3LS41MDYuMzI4LS43ODguMTMyLTEuMDQ4bC0yLjg3MiAyLjM2NXptMTQuNzU5LS4yOTYtMS43MzYgMS43NDYtMy4zNzUtMy40NTYgMy43NjUtMy43ODhjLjIzLS4yMjUuMzI4LS40OTMuMTk1LS43MThsLTMuMzQuMjMzLjM3NyAyLjM2NS0xLjQ0MyAxLjQ1OC0yLjg5My0yLjk2NCAzLjk3NC0zLjk5OWMuMjMtLjIyNS4zMjctLjQ5My4xOTUtLjcxOGwtMy40MzguMjMzLjM3NyAyLjQ2NC0xLjU1NSAxLjU3LTIuMTU0LTIuMjFjLjM5LS41MjEuMzI3LS44MTguMTMyLTEuMDg1bC0yLjg4NiAyLjM4IDE0Ljg5OCAxNS4yODMuMzktLjM5NGMuNzYtLjc2NyAxLjE0NC0yLjE2MS45MzUtMi4zNzJsLTMuNjk1LTMuNzg4IDQuMzE2LTQuMzQ0Yy4yNDMtLjI0Ni4zNC0uNTA2LjE5NS0uNzE3bC0zLjYzMy4yMzJ6bTYuMDUyLTIzLjc3MyAxLjMxNyAxLjM1Mi02LjI5NiA2LjMzNi0xLjMxNy0xLjM1MnptLTMuMTM4IDkuNTgxLTEuMzgtMS40MTUgNi4yOTUtNi4zMzYgMS4zOCAxLjQxNXptLjQ2Ny40NzggNi4yOTYtNi4zMzYuNjE0LjYyNy4zMjctLjMyNGMuNjEzLS42MiAxLjI1NS0xLjkxNSAxLjE3MS0yLjAyOGwtMy41MTMtMy42MDRjLjI3OS0uNDA4LjM2My0uNzg5LjM0MS0xLjAzNWwtMy4yNDkuNDY1LjA1NiAxLjg3Mi02LjAyMyA2LjA2MS0yLjc5NiAxLjIxOCA1LjcxNyA1Ljg2NC4yNTgtLjI2Yy43OTUtLjgwMyAxLjI0Mi0yLjA2MyAxLjA4MS0yLjIyNXptNC40ODMgNi41MTIgMi4yODctMi4zMDIgMS4zNDYgMS4zODctMi4wMTUgMi41ODR6bS0xLjQ3MS02LjE2IDEuMzk0IDEuNDM3LTIuMjg3IDIuMzAyLTEuMzk0LTEuNDM2em0tLjQyNSA0LjIxOCAyLjI4Ni0yLjMwMiAxLjQ0NCAxLjQ4NS0yLjI4NyAyLjMwMnptOC4zMS0yLjU1Ni0xLjIyIDEuNTg0LTQuODk0LTUuMDI2IDcuMjEtNy4yNTFjLjIzLS4yMjUuMzQtLjUwNy4xOTUtLjcxOGwtMy40MjQuMjE4LjM1NiAyLjQ3OC0xMi40MTYgMTIuNDk1LjU5Mi4zMTcgMS42ODctMS42OTYgNS41MzYgNS42OC0xLjY2IDIuMDI4IDIuNzU1IDEuMjExYy4xNDYtLjIxLjE4LS41NDIuMDgzLS44MzdsMy4yNzctNi4wMDYgMi4zMjkgMi4zODcuMzA3LS4zMWMuOTA2LS45MTUgMS4xMDgtMS44MDIgMS4wMjQtMS45MTVsLTIuNDI2LTIuNDg1Ljk0OC0xLjkyOXptLjIxLTYuMTE3YTE0Ljg1IDE0Ljk5NSAwIDAgMSAxLjYxIDMuNzk1Yy0xLjQ3Mi4xNC0yLjk4NC0uMDkyLTQuNTQ2LS44Mzh6bS0uNTIzLTIuMzE2LS4wMTQgMS45MzYtNC4yMDQgNC4yMy41OTMuMzE4LjkwNi0uOTE1YzEuOTE3IDEuMzAyIDMuNjA0IDIuMDQ4IDUuMjE1IDIuMzVhMTIuNDggMTIuNjAxIDAgMCAxLS4zIDUuMjY2bC4zNDIuMDg1YTE0LjQzMiAxNC41NzIgMCAwIDAgMS40OTgtNS4xOTVjMS41LjAyMSAyLjk3LS4zMTcgNC41Ni0uOTMtLjY1Ni0xLjIwMy0uNjk3LTIuMzMtLjEyNS0zLjI5NGwtLjE0Ni0uMTgzYy0xLjM5NS44OC0yLjgxNyAxLjYyNi00LjI2IDIuMDYzYTE0LjMgMTQuMyAwIDAgMC0xLjQwOC01LjA3NmMuMzQtLjQwOS40MzktLjYwNi4zNzYtLjg2N3ptMTAuNDIyLTYuMTc0YzEuMTU4LjMwMyAyLjY3NyAxLjAyOCAzLjU3IDIuMDQ5IDIuNi0uMDM1IDEuNTYyLTQuNjMyLTMuNDkzLTIuMzN6bTMuODA3LTExLjIzNS0yLjM3IDIuMzg2LTMuMjQzLTMuMzNhMzIuMzUgMzIuNjY1IDAgMCAwIDMuMTQ1LTQuODU3Yy42NDgtLjM2Ljk0MS0uNzE4Ljk1NS0xLjA2M2wtMy41Ny4zOTRjLS4wOSAxLjIzMi0uNDUzIDMuMTYxLS45NzYgNC44NjRsLTIuNTIzIDEuMzM4IDQuNzIgNC44NDMtMi44MjQuMTcuMzE0IDIuMDk3LS44OTMuOTAxYTI2LjIxNCAyNi40NyAwIDAgMC0uMjg2LTMuOTg0Yy4zOS0uMzI0LjQ0LS42NC4zMTQtLjkwMWwtMi42NyAxLjQxNSAyLjI1OS0yLjI3NGMuMjMtLjIyNS4zMDYtLjQ3MS4xODEtLjcwNGwtMi45MDcuMTgzLjI5MyAyLjAyLTEuMDg4IDEuMDkxYy41MzctMS4yOTUtLjk4My0zLjE1NC00LjMyMi0uNjEzbC0uMDM1LjIzM2E2LjA2NSA2LjEyNSAwIDAgMSAyLjk3NyAxLjMxYy4yMjMtLjAzNi40MzktLjA3OC42MTMtLjE2M2wtMy41NyAzLjU5LjU5My4zNDUgMS4wNzQtMS4wNzctLjA2My4xMzRjMS4wMTguNDUgMi4zNjQgMS4xNzUgMy4yMTQgMi4xMTIgMi40NTQuMDc3IDEuNzM2LTQuMTYtMy4wMDUtMi4zOTNsMy42MTktMy42NGE0My4zNjUgNDMuNzg3IDAgMCAxIDIuMzUgMy43NjZsLTQuNTk1IDQuNjI2LjU5My4zNDQgMy4wMTgtMy4wNDEgMS44OTcgMS45NDMtMi44NzMgMi44OTQuNTguMzMgMi43NC0yLjc2IDEuMDEgMS4wMzYtMi41MjMgMS4wMDdjMS4xNzEgMS41MjcgMi43NCA0LjA5NyAzLjMyNSA2LjI0NGwuMzQyLS4wMTRjLjI4Ni0yLjI4LS4yOC00LjgwOC0uODcyLTYuNjMxbC4xNi0uMTYyIDIuODYgMi45MzVjLjE3NC4xODMuMjIyLjMzMSAwIC41NTZsLTEuMzk1IDEuMjc1LjIwOS4yMWMuNzExLS41MiAxLjE2NS0uNTg0IDEuNTY5LS41MzRzLjgwMi40MjkgMS4zMDMuOTA4YzEuNzU4LTIuMDYzIDEuMzI1LTMuMDI3LjE2OC00LjIxN2wtNC4zMzctNC40NSAyLjY0My0yLjY2Yy4yMy0uMjI2LjMwNy0uNDcyLjE4MS0uNzA1LTEuMDk0LS4wMDctMi44MjQuMTctMi44MjQuMTdsLjI5MyAxLjk4NS0uNzQ2Ljc1My0xLjg5Ni0xLjk0MyAzLjAxOC0zLjA0MmMuMTQ2LS4xNDguMjMtLjI5NS4yMy0uNDU3bC40NDYuNDY0YzIuOTIyIDMgNS42NDggNi4yNTkgNS45ODIgMTAuNTg4bC4zNDEuMDIyYzEuNDcyLTUuODE1LTEuNjEtOS41MDQtNC40NTUtMTIuNDE4bC0uNTc4LS41OTEgMS41NC0xLjU1IDguODk3IDkuMTI0LjMyNy0uMzI0Yy45NzYtLjk3OCAxLjE0NC0xLjk2NCAxLjAyNS0yLjA3N2wtOC4zOC04LjU5NSAxLjQyOC0xLjQzNmMuMjMtLjIyNS4zMjgtLjQ5My4xODItLjcwNC0xLjM0LjAxMy0zLjQ3Mi4yMzItMy40NzIuMjMyem0xMy4xNjMtMTkuNzQ3LjEwNCAxLjkyMi0zLjYzMiAzLjY2LS4xNjEtLjA5OGMtMS4xMy0uNjk3LTMuNTc3LTEtNS43MS0uOTQzYTE3LjIyIDE3LjM4OCAwIDAgMCAuMTk1IDIuNDQyYzEuNzAxLS41MzUgNC4wOTItMS4wMTMgNC45My0uNjU1bC0zLjkxMiAzLjkzNS0yLjg3OSAxLjIwNCAxMi40MSAxMi43MzUuMzA2LS4zMDljLjgwOS0uODE3IDEuMTU4LTIuMDc3LjkzNC0yLjMwOWwtMTAuNDM2LTEwLjcwNyA0LjA5Mi00LjExOWMyLjY0MyAzLjgzNyA0LjAwOCA4LjIzNyAzLjU3IDExLjc0M2wuMzQuMDQ5YzEuMDgyLTIuOTc4IDEuMTQ1LTYuMTEuNDE5LTkuMDA0IDIuMTI2IDEuMTg5IDQuMjggMi4wMiA2LjMxNyAyLjE4OS0uNTgtLjg4Ny0uNzE4LTIuMDg0LS4xNDYtMy4yNDZsLS4xNjEtLjI2Yy0zLjExNi41NjMtNi41MTktLjUyLTkuNTMtMi4yODhsMy42OC0zLjcxIDguNjA0IDguODI3Yy4yMjMuMjMzLjI3Mi40NDQtLjAyLjc0LS41MDMuNTA2LTIuNjE1IDIuMzY1LTIuNjE1IDIuMzY1bC4yMDkuMjExYzEuMTAyLS43ODEgMS43MjktLjk1NyAyLjM2NC0uOTcuNjM0LS4wMTUgMS4xMjkuMzMgMS44MzQuODkzIDIuMTEyLTIuNTQ5IDEuNjY2LTMuNjY4LjM4My00Ljk4NGwtOC41MTMtOC43M2MuMjU5LS4zOTMuMzQyLS43NjYuMzI4LS45ODV6bTE2LjM4NC0xNi4xNjMgMS40NTcgMi4xODkuMjQ0LS4wNWExNS40MDggMTUuNTU4IDAgMCAwIC41NS0zLjY4OGMuMzA3LS4zNDUuNDU0LS41NTYuNDI2LS44MTdsLTMuMjYzLjA1VjEybC00LjMxNiA0LjM0M2MuNjA3LTEuNDU3LTEuMjA2LTMuNTEzLTQuMjk0LS4wNWwtLjAyLjIxMmE0LjQ2MiA0LjUwNiAwIDAgMSAzLjAzMi44MyAxLjcgMS43IDAgMCAwIC40MzktLjE0N2wtNC44MzkgNC44NjRhOC40MzYgOC41MTggMCAwIDAtMS4xNzgtLjY0OGwtLjIzLjIyNWEzLjM0NyAzLjM4IDAgMCAxIC44NzIgMy4yNjZjLS4yNDQuNzQtLjE1NCAxLjUyOC41ODYgMS45MjIuODIyLjM4IDEuNzI4LS4yNzUgMS45MS0xLjE0LjE4MS0uODY2LS4xNjgtMi4xNDctMS40MzctMy4yMjR6bS0yLjg2NiA1LjEwM2MxLjg5LS40NjQgNC42ODUtLjYzMyA2LjQ5MS0uMTMzIDIuNzU0LTEuMjMyLS41MTUtNS43NDUtNi41MDUtLjE0em0tMy43MDggMTEuMzA2YzEuMjktMi42NjggMS44ODktNS45NDggMS43ODQtOC4xNTguMzktLjMyNC40MjUtLjU1Ni4zNDItLjgwM2wtMy4xMDMgMS4yMDRhMTcuODQ4IDE4LjAyMiAwIDAgMSAuNjM1IDcuNzE2em0xMS4wNDMtNi4yMTYtNC41NzMgNC42MDQtMS43NS43NDZjLjc3NC0yLjgwMSAxLjA4LTUuNTI2Ljc1My03LjYxIDEuNjk0LjU4NSAzLjU5Ny43NTQgNS41MTUuNTE0em0tMS4xNzEgOC4zMjgtMy4wNjgtMy4xNDcgNC44MzktNC44NjQgMy4wNjcgMy4xNDd6bS03LjM0Mi0xMC4wOGMxLjI5NyAyLjY4MSAxLjA2NyA4LjQ4Mi0uMzc3IDEyLjc3N2wuMjkzLjEzM2EyOC42IDI4LjYgMCAwIDAgMS45NDYtNC43MDNsNS4zMTIgNS40NTYuMjgtLjI3NGMuNzQ2LS43NTQgMS4xNTctMi4wMTQuOTk2LTIuMTc2bC0uNjU1LS42NzUgNC44MzgtNC44NjUgMS4xMDkgMS4xMzQuMzI3LS4zMjRjLjYxMy0uNjIgMS4xODUtMS45MTUgMS4wOTUtMi4wNDlsLTMuOTE5LTQuMDJjLjI0NC0uMzQ0LjI5My0uNjU0LjI4LS44MzdsLTIuMTIuMjY3YTE3LjcwOSAxNy44ODEgMCAwIDAgNC4xMDYtMS4yOTVjLS41OTMtLjgxLS44OTItMi4xMzMtLjM0MS0zLjE1NGwtLjI1OS0uMjZjLTIuODE2IDEuOTkyLTYuODY3IDMuOTctOS44ODYgMy44NzguNDU0LS41NTYuNTUxLS44NTEuNDEyLTEuMTMzek00OS4xNDcgMTY0Ljk2Yy4yNDMtLjI0Ny4zNC0uNTA3LjIxNi0uNzRsLTMuNzkzLjQzLjMwNyAyLjY4OS0xMS42OTkgMTEuNzc3LjU3OS4zMzEgNi42ODYtNi43M2MyLjM2NCA0LjQ3IDMuNTU2IDExLjMzNCAyLjg5MyAxNy4yODNoLjI1OWEzMC4yNTggMzAuNTUzIDAgMCAwIDEuMjI2LTEyLjA2Nmw4LjMxOCA4LjUzMi4zNTYtLjM2Yy43MS0uNzE3IDEuMjY5LTEuOSAxLjE3MS0yLjAyN2wtOS4yMDMtOS40NGMuMjU4LS4zNi4yOTMtLjYyLjE5NS0uODE4bC0xLjM3My42MzRhMjUuMDk5IDI1LjM0MyAwIDAgMC0xLjMwNC00LjMwMXptLTEuMzk1IDkuOTU0YzIuNzYxLS40MyA2LjcyMS0uNDkzIDkuMjE3LjI4OSAzLjIzNS0xLjA5OC0uMjg2LTYuMzY0LTkuMjE3LS41Nzh6bTEyLjQ0NS0yMy44NWE3Ljk0OCA4LjAyNSAwIDAgMSAzLjgzNS43NzRjMi42ODQtLjcxMS43MjUtNS4xOTUtMy44Mi0xLjAxNHptLTMuMzMzIDExLjAyM2EyOS40OTEgMjkuNzc4IDAgMCAwLTEuNTktNS4wMjZjLjM5MS0uMzYuNDQtLjcwNC4yOTQtLjk4NmwtMy41NjMgMS44NTJjMi40NjggMy45NzcgNC4yNDYgOC43MTUgNC44MjUgMTIuMTc5bC4zMi0uMDYzYTE5LjMxMiAxOS41IDAgMCAwIC4yMDMtNC41MTNsOC43IDguOTI3LjM1Ni0uMzZjLjczMi0uNzMyIDEuMTA5LTEuOTI4Ljk4My0yLjA5N2wtOS40NC05LjY4N2MuMjU5LS4zNi4yOTQtLjYyLjIxNy0uODM4em0xNy4zMTktNS4zODUtLjIxLjE0OGEyMi45MzggMjMuMTYxIDAgMCAxIC45NTYgMy4wOWMuMTExLjQ0NCAwIC41NTctLjQ4OC41OTItMy41MjEuNTc3LTYuOTAyLTEuMDE0LTEwLjEwMi0zLjUwNmw0LjIxMS01LjM0M2MuMTk1LS4yNi4yNDQtLjU0Mi4wOTgtLjc1NC0xLjQwOS4yNzUtMy40NTguODczLTMuNDU4Ljg3M2wuNTAxIDIuNDY0LTEuODU0IDIuMzUxQTQ2LjI5MyA0Ni43NDQgMCAwIDEgNTkuNSAxNTIuNWMuMzQxLS40NzIuMjkzLS44MTcuMTE4LTEuMDYzbC0yLjgzNyAyLjI0YzEuNzk4IDEuODQzIDMuNTk3IDMuNTYxIDUuNDMgNS4wMTFsLTMuMDI1IDMuODU4LjYxMy4yNjcgMi45MjktMy43M2MzLjkyNSAzLjAzNCA3Ljk4MyA0Ljg5MiAxMi40NzIgNC40NDkgMS40MzctLjE3NiAzLjQ0NS0uODg3IDMuNDAyLTIuMzgtLjAxNC0uNTQyLS41NTgtLjkzNi0yLjA5MS0xLjI4OHptMTAuNzM3LTE3LjA4NWMuMjg2IDEuMjQ2LjQ1MyAzLjM2NS40MzkgNS4xNjgtMS41Ny0uMDIxLTMuMTgtLjQyMy00Ljg4Ny0xLjI4Mmw2LjA3Mi02LjExYy4yMy0uMjI1LjMyNy0uNDkzLjE5NS0uNzE4bC0zLjM3NC4yMzIuMzI3IDIuNDE1LTMuNjY3IDMuNjg5LTEuODc1LTEuOTI5IDQuODE3LTQuODVjLjIzLS4yMjUuMzI4LS40OTMuMTk2LS43MThsLTMuMjUuMjMyLjM0MiAyLjI5NS0yLjU2NiAyLjU4NC0xLjc4NS0xLjgzIDUuNDUyLTUuNDkxYy4yMy0uMjI1LjMwNy0uNDcyLjE4Mi0uNzA0bC0zLjMxMi4yMzIuMzI4IDIuMzQ1LTMuMTE2IDMuMTMyLTEuMzQ2LTEuMzg2Yy4zNTYtLjQ5My4zNDEtLjgwMy4xNTQtMS4wNjNsLTIuNzc1IDIuMzY2IDIuMDA4IDIuMDU1LTUuNTg1IDUuNjE4LjYxNC4zMzEgNS40MzgtNS40NyAxLjc4NSAxLjgzLTQuNzkgNC44MTYuNTc5LjMzIDQuNjU3LTQuNjg4IDEuODc2IDEuOTI5LTYuMzk0IDYuNDM0LjU5My4zNDUgNS4xOTMtNS4yMjNjLjQ4OSAyLjk3LjE4OSA2Ljg1Ni0xLjA4NyAxMC40MjZsLjMwNy4xMTNxMS42MTEtMi43OTkgMi41NDQtNS41OTdsMi4yMTcgMi4yNzRjLjI4Ni4yOTUuMzUuNTkuMDA3IDEuNzUzbDMuMTQ1LjY4MmEyLjYgMi42IDAgMCAwIC4wMi0uNzA0bDEuNzcxLTcuNzE2LS4yNDMtLjExMy0yLjUxIDQuNDIxLTMuNTgzLTMuNjc0Yy4zLTEuNTc3LjM3LTMuMTIuMTg4LTQuNTI3IDQuODEgMy4yMTggOC45NzMgMy45MjkgMTMuMDY1IDIuMjUzLS44MDItMS4wMi0uOTQxLTIuMjgxLS41MTYtMy42MjVsLS4xOTUtLjI2Yy0yLjAyOCAxLjQxNC00LjE3NiAyLjM3OS02LjUwNSAyLjUzNGEzMS4zNzMgMzEuNjggMCAwIDAgMS45OC01LjEyNWMuNDQtLjI3NS40ODgtLjUyMS40NC0uNzY4em02LjIyNi0xOS41MDhjMS4xMTUtLjE0IDIuNzExLjA0MiAzLjcwOC42MDYgMi42MzYtLjgyNC40ODEtNS4yNDUtMy42OTUtLjg1MnptNi40OTggMS4xNjJhMzUuNDE3IDM1Ljc2MiAwIDAgMSAxLjQ3IDUuNTk3IDEzLjk0NCAxNC4wOCAwIDAgMS00LjMzNi0xLjY0bC0xLjEyMi0xLjE1NSA2LjA3Mi02LjExYy4yNDQtLjI0Ny4zMjgtLjQ5NC4xOTUtLjcxOS0xLjM2LjA1Ny0zLjQ1OC4zNDUtMy40NTguMzQ1bC4yOCAyLjQyOS0zLjU1NiAzLjU3Ni0yLjcyNy0yLjgwMWMuMzQyLS40NzIuMzI4LS43NTQuMTMyLTEuMDE0bC0yLjc4OCAyLjI4OCAzLjQyMyAzLjUwNi02LjI5NiA2LjMzNi41OTMuMzQ1IDYuMTctNi4yMSA0LjY1NyA0Ljc4LTMuMzg4IDguOTkgMy41MTMuNTdjLjA4NC0uMjgyIDAtLjU5MS0uMTc0LS44MzhsLjYwNi04LjE1MSAzLjQ2NSAzLjU1NWMuMjIzLjIzMi4yMzcuNDA4LS4wNTYuNzA0LS4zOS4zOTQtMi40NDcgMi4yMDMtMi40NDcgMi4yMDNsLjIxLjIxMWMxLjA2Ni0uNzUzIDEuNy0uOTI5IDIuMjc5LS45MjIuNTc5LjAwNiAxLjEyOS4zNjYgMS44MDUuOTMgMi4wOTktMi41IDEuNjUzLTMuNTg0LjMxNC00Ljk1N2wtNi43MjgtNi44OTljNC44ODcgMy4yMzkgOC40ODUgMy42OTYgMTIuNDk0IDIuODkzLS42OS0xLjE2OC0uNzk1LTIuNDk5LS4xNzUtMy40NzdsLS4xMjUtLjIzM2MtMi4zNjQgMS4xMDUtNS4xMzIgMS45OTMtOC4yMjcgMS41NTYuNTkzLTEuOTY0Ljk5LTQuMTMyIDEuMjA2LTUuNjg4LjQwNC0uMzQ1LjUwMi0uNTcuNDI1LS44MTd6bS05LjcxMiAxMC40MjZjMS41OTYuMTIgMy42Ni42OSA0Ljk3OCAxLjcxIDMuMjEzLS40MjggMS4xNDMtNS43ODYtNC45My0xLjk1NnptMTYuMjAzLTIzLjIyNCAxLjI4MyAxLjMxNy0yLjgxIDIuODIzLTEuMjgzLTEuMzE3em0uMTQ2IDUuODU3LTEuMjItMS4yNTMgMi44MS0yLjgyNCAxLjIyIDEuMjU0em0zLjI3Ni0yLjM1MS42NzcuNjkuMjU4LS4yNmMuNTE2LS41MjEgMS4wMzktMS42NjkuOTQ5LTEuODAybC0zLjQ1Mi0zLjU0MmMuMjQ0LS4zNDQuMzQyLS43MDQuMzE0LS45MDFsLTIuODI0LjQwMi4wNTYgMS42MDQtMi41NjYgMi41ODQtMi42MDcgMS4wMiAxNC43ODcgMTUuMTcxLjMwNy0uMzFjLjc5NS0uODAyIDEuMDEtMS44NjUuNzY3LTIuMTEybC05LjQ3NS05LjcyMnptNy4yOCA1Ljg4NS0xLjM2Ny0xLjQwMSAyLjcxMi0yLjcyNCAxLjE1NyAxLjE4MnptLTEuODgzLTcuNDQgMS4xNDQgMS4xNjgtMi43MTIgMi43MjQtMS4xNDQtMS4xNjl6bS0xLjEwMSA0LjM3MSAyLjcxMS0yLjcyNCAxLjE1OCAxLjE4Mi0yLjcxMiAyLjcyNHptOC45OTMtMi44NWMuMjMtLjIyNi4yNTktLjUyMi4xMTktLjc0bC0yLjU1Mi0uMTQuMzE0IDEuODM3LTQuMDc5LTQuMTgyIDEuMzE4LTEuMzI0Yy4yMDktLjIxLjI5Mi0uNDU3LjE2Ny0uNjktMS4xMjkuMDI4LTIuODkzLjIzMy0yLjg5My4yMzNsLjIxNiAyLjAzNC02LjcgNi43NDQuNTc5LjM2NiAxLjI4Mi0xLjI4OCA0LjcwNyA0LjgzLTEuNjEgMS44OC42NjIuMzQ0IDUuNDkzLTYuNDA2IDIuMTY5IDIuMjI0LjMwNi0uMzFjLjg1OC0uODY1IDEuMDc0LTEuNzAzLjk3Ny0xLjgwMWwtMS45MS0xLjk1N3ptLTkuMTg5LTUuMDQyLTEuMjItMS4yNTMgMi43OS0yLjgwOCAxLjIxOSAxLjI1M3ptLS4xNi01Ljg0MyAxLjI4MyAxLjMxNy0yLjc5IDIuODA5LTEuMjgyLTEuMzE3em0tLjczMi0yLjEwNC4xMTggMS44MDItMi41NDUgMi41NjItMi40NzUgMS4wNTYgNS4yODUgNS40Mi4yNDMtLjI0NmMuNjk4LS43MDQgMS4wNzQtMS44My45MjctMS45NzhsLS4yMDktLjIxMSAyLjc4OS0yLjgwOSA3Ljg2NCA4LjA3NWMuMjA5LjIxLjI1OC4zOTQtLjAyLjY3NWwtMS44OTcgMS43MTguMjIzLjIzM2MuODc4LS42MiAxLjM5NC0uNzQ3IDEuODktLjY5OC40OTQuMDUuOTk2LjQwMiAxLjU3NS45MjMgMS44Mi0yLjE5IDEuMzczLTMuMTc1LjE2Ny00LjQxNWwtMTEuMTc1LTExLjQ2OGMuMjU4LS4zOTQuMzYyLS43ODguMzQtMS4wMzV6bTE5LjAxOC04LjQ3IDMuNSAzLjU5LTYuNDI4IDYuNDctMy41LTMuNTl6bTEuMzYgMTQuNDYtMy44MzUtMy45MzYgNi40MjgtNi40NyAzLjgzNSAzLjkzNnptLTQuMjc0LTE5LjE5OC0xMS4zNDMgMTEuNDE4LjU5My4zNDUgNS42OTYtNS43MyAyLjU4IDMuMjEtMS4zNjcgMS4zNzMtMi45MTQgMS4yMzIgMTAuOTUzIDExLjIzNS4zMDctLjMwOWMuODQ0LS44NTIgMS4xOTItMi4xMTIuOTYyLTIuMzQ0bC0uNzM5LS43NiA2LjQyOC02LjQ3IDEuMzMyIDEuMzY2LjMyNy0uMzI0Yy42ODMtLjY4MyAxLjIwNi0yLjA2MiAxLjA5NS0yLjIxbC04LjcxNS04Ljk0OGMuMjc5LS40MDguMzQxLS43NjcuMzI3LTEuMDE0bC0zLjMxMS4zOTQuMDg0IDEuOTcxLTQuMTU1IDQuMTgyYy0uMDQyLTEuNDkzLS40MDUtMy4zMTYtLjgzLTQuOTc3bDUuODU2LTUuOWMuMjQ0LS4yNDYuMzQyLS41MDYuMjE2LS43MzlsLTMuNjMyLjQzem0xMi4xMzgtMTEuNjU3YzEuMzI0LS4wMjkgMy4wOTUuMzczIDQuMTU1IDEuMTY4IDIuODczLS40NDQgMS4wNi01LjMwOC00LjE0MS0xLjQxNXptMy42NiA0LjM3OGMxLjI5LS4wNTYgMy4wNDcuMjkgNC4xMjggMS4wMzUgMi44NTgtLjUyOC45NDgtNS4zOTItNC4xMjgtMS4yNjZ6bS0yLjc3NSAyLjIwNCAyLjI2LTIuMjczYy4yMDktLjIxMi4zMDYtLjQ3Mi4xOC0uNzA1LTEuMTY0LS4wMDYtMy4wMTguMDk5LTMuMDE4LjA5OWwuMzkgMi4xNDctLjI1Ny4yNi0yLjgyNC0yLjkgMS4xMjItMS44MTZjLjY5Ny0uMzQ1IDEuMDA0LS43NTMgMS4wMzgtMS4xMTNsLTMuODkuMjMzYy0uMjUxIDEuOTE1LTEuMjkgNS4yMS0yLjQ0NyA3LjYxN2wuMjcyLjE0OCAyLjM1Ny0yLjg5MyAyLjUyMyAyLjU4NC0yLjU2NiAyLjU4My41OC4zMzEgMi4yMS0yLjIyNGMxLjcyOCAyLjc5NSAzLjIxMyA2LjE2NyAzLjU5NiA5LjE2NWwuMzctLjAxNGExOC41NDUgMTguNzI2IDAgMCAwLS4wOTgtNS42NDVsNS45NTQgNi4xMS4zNDItLjM0NWMuOTA2LS45MTUgMS4wOTQtMS45NS45NzYtMi4wNjJsLTcuNjktNy44OTJhOS41NTEgOS42NDUgMCAwIDEgMy4xODYgMS4zOTRjMi41MDItLjIwNCAxLjM2Ni00LjQ0Mi0zLjY2OC0xLjg4N3ptMTIuNTctNC43NTItLjA5Ny4xNjItOC4zMDMtOC41MThjLjM3Ni0uNTA3LjMxMy0uODAyLjExOC0xLjA2M2wtMi42NzcgMi4yMDQgOS4zNDIgOS41ODgtNC4zOTIgNi40NzcuNjYyLjIxOCA0LjE5Ny02LjIxNiA0LjgwNCA0LjkyOC4zNTYtLjM2Yy42OTctLjcwNCAxLjA3NC0xLjkyOC44ODUtMi4xMjZsLTQuNTQ1LTQuNjYgMS43MDgtMi41MzVjLjE2LS4yMzMuMTk1LS41Mi4wMzQtLjY5bC0yLjgyNC4zMDJ6bS0uNjk2LTE4LjE2M2MxLjQzNi4yMTggMy4yOS43MDQgNC41NDUgMS42MjcgMy4xNjUtLjQ3OSAxLjI3Ni01Ljc4Ny00LjQ5Ni0xLjgzOHptMTIuNzA5LTQuNjM5Yy4yMy0uMjI1LjMyNy0uNDkzLjE5NS0uNzE4bC0zLjcxNi40MDkuMzA3IDIuNTktMTAuOTUzIDExLjAyNS42MTMuMzN6bS0xMC40NzkgMTIuN2MyLjk2MyAxLjM1OSA2LjUxOSAzLjI2IDguODQ3IDUuNTQ3IDQuMTE0LS4wNjMuNjYzLTYuNjEtOC43LTUuODI5em0xNy42MzItLjc3NS0zLjM5NSAzLjQxNWE2OC42MDMgNjkuMjcyIDAgMCAwLTMuNzMtMTEuNTQ1Yy40MDQtLjM3My40MDQtLjc0LjI5My0uOTg2bC0zLjUxNCAyLjA3YzIuMDE1IDIuOTY0IDQuNzA2IDcuNDk4IDYuNDc3IDEwLjk0bC04LjIyNyA4LjI3OC41NzkuMzMxIDE0Ljc2Ni0xNC44NmMuMjQ0LS4yNDcuMzQxLS41MDguMjE2LS43NGwtMy43NzkuNDQ0em0zLjc1OC0yOC40MTIgMS41OSAxLjYzMy0zLjYyIDMuNjQtMS41ODktMS42MzR6bS4wNTYgNy40MTItMS42MjQtMS42NjEgMy42MTgtMy42NCAxLjYyNSAxLjY2MnptLjQ2Ny40NzkgMy42MTktMy42NC42NC42NjIuMzI4LS4zMjRjLjY1LS42NTUgMS4wOTUtMS45NzguOTYzLTIuMTQ3bC0zLjkxOS00LjAyYy4yNDQtLjM3Mi4zMjgtLjcxNy4yOTMtLjk1bC0zLjExNi4zOTQuMDU2IDEuODM3LTMuMzc0IDMuNC0yLjYzNiAxLjE1NSA2LjI2IDYuNDI4LjI1OS0uMjZjLjc2LS43NjggMS4xNTctMS45NzkuOTk3LTIuMTQ4em0uMTE5IDUuMTMyLTEuMjQyIDIuODE1LTMuOTk0LTQuMTA0IDEuNzIxLTEuNzMxYy4yMy0uMjI1LjI5My0uNDU4LjE2OC0uNjktMS4wOTUtLjE3LTIuOTctLjE3Ni0yLjk3LS4xNzZsLjQ4OCAxLjk4NS0zLjQyMy0zLjUwNWMuNDA0LS41MDcuMzYyLS43ODkuMTY3LTEuMDVsLTIuNjU2IDIuMjE4IDQuMjAzIDQuMzE1LTEuNjczIDEuNjgzLjU5My4zNDQgMS41NC0xLjU0OCA0LjY1OCA0Ljc4LTEuMjU1IDIuNTcgMy4xMDkgMS4xMTJhLjkzLjkzIDAgMCAwLS4xMjUtLjg4N2wuOTEzLTguMDMyem04LjI0Ny02LjI0NWMyLjA4NSAyLjU3IDMuMDYgNC4yMyAyLjk5IDQuOTQ5LS4wNjIuMjYtLjE2LjQyMi0uNDI0LjY5bC0xLjc1IDEuNTdhMTMuMzg2IDEzLjUxNyAwIDAgMC0xLjI3LTYuNzQ0em0tLjU3OS0uMzMtNC42MjIgNC42NTJhMTIuNDggMTIuNjAxIDAgMCAwLS40NC0yLjEwNGw2LjAyNS02LjA2MmMuMjQzLS4yNDYuMzI3LS40OTIuMTk1LS43MTdsLTMuMzEyLjMzLjI2NiAyLjMxNi03Ljk4MyA4LjA0LjU5Mi4zNDQgMi4wNjQtMi4wNzdhMTQuODUgMTQuOTk1IDAgMCAxIC44OTIgOC4wNzVsLjM1Ni4wN2MxLjA0Ni0yLjUyIDEuNTYyLTUuMDI2IDEuNDMtNy4zNzhsLjUzNi0uNTQyYTE2LjY2MiAxNi44MjUgMCAwIDEgLjUwMiA4Ljg2M2wuNDA0LjA1YzEuNDA4LTMuNzA0IDEuNzk5LTcuMzkyLjgzLTEwLjY1OWwuNTAxLS41MDdjMS42NDYgMy4wNDIgMi4zMDggNi40NTYgMS41OTcgMTAuMDQ3bC4zNDEuMDg0cTEuMDc2LTIuNzU2IDEuMjQxLTUuMjU5bC4yMS4yMTFjLjY5Ny0uNDM2IDEuMzEtLjY2OCAxLjc3Ny0uNjEyLjQ2OC4wNTYuOTQ5LjQxNSAxLjQ1LjkyMmE0LjQ2MiA0LjUwNiAwIDAgMCAxLjQxNi0yLjQ3MWMuMjUxLTEuNDU3LS43ODgtMy40NS0zLjU3Ny02LjgwOC4yOTMtLjM5My40MDUtLjY2OC4zOS0uOTVsLTMuMDE4LjI2N3pcIi8+PC9zdmc+Jyk7XG59XG4uc2tpbi1nb25nYmkgLkhpc3RvcnlEaXNjbGFpbWVyLW1vZHVsZV9fZGlzY2xhaW1lcl9XOVNZb0dfXzQ5MCB7XG4gIGluc2V0OiA1ZW0gMTVlbSAwIDEzZW07XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMjAwcHgpIHtcbiAgLnNraW4tZ29uZ2JpIC5IaXN0b3J5RGlzY2xhaW1lci1tb2R1bGVfX2Rpc2NsYWltZXJfVzlTWW9HX180OTAge1xuICAgIGluc2V0OiA1ZW0gMCAwIDEzZW07XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5za2luLWdvbmdiaSAuSGlzdG9yeURpc2NsYWltZXItbW9kdWxlX19kaXNjbGFpbWVyX1c5U1lvR19fNDkwIHtcbiAgICBpbnNldDogMDtcbiAgfVxufVxuOmlzKC5za2luLXZlY3RvciAuSGlzdG9yeURpc2NsYWltZXItbW9kdWxlX19kaXNjbGFpbWVyX1c5U1lvR19fNDkwLCAuc2tpbi12ZWN0b3ItbGVnYWN5IC5IaXN0b3J5RGlzY2xhaW1lci1tb2R1bGVfX2Rpc2NsYWltZXJfVzlTWW9HX180OTApIHtcbiAgaW5zZXQ6IDVlbSAwIDAgMTJlbTtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIDppcyguc2tpbi12ZWN0b3IgLkhpc3RvcnlEaXNjbGFpbWVyLW1vZHVsZV9fZGlzY2xhaW1lcl9XOVNZb0dfXzQ5MCwgLnNraW4tdmVjdG9yLWxlZ2FjeSAuSGlzdG9yeURpc2NsYWltZXItbW9kdWxlX19kaXNjbGFpbWVyX1c5U1lvR19fNDkwKSB7XG4gICAgaW5zZXQ6IDA7XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLENBQUM7QUFDQyxXQUFTO0FBQ1Qsa0JBQWdCO0FBQ2hCLG9CQUFrQjtBQUNsQixZQUFVO0FBQ1YsU0FBTztBQUNUO0FBQ0EsSUFBSSxNQUFNLFNBQVMsQ0FQbEI7QUFRQyxvQkFBa0I7QUFDcEI7QUFDQSxDQUFDLFlBQVksQ0FWWjtBQVdDLFNBQU8sSUFBSSxLQUFLLEVBQUU7QUFDcEI7QUFDQSxPQUFPLE9BQU8sSUFBSSxDQUFDLFNBQVMsRUFBRTtBQUM1QixHQUpELFlBSWMsQ0FkZDtBQWVHLFdBQU8sSUFBSSxFQUFFLEVBQUU7QUFDakI7QUFDRjtBQUNBLE9BQU8sT0FBTyxJQUFJLENBQUMsU0FBUyxFQUFFO0FBQzVCLEdBVEQsWUFTYyxDQW5CZDtBQW9CRyxXQUFPO0FBQ1Q7QUFDRjtBQUNBLElBQUksQ0FBQyxZQUFZLENBdkJoQixrREF1Qm1FLENBQUMsbUJBQW1CLENBdkJ2RjtBQXdCQyxTQUFPLElBQUksRUFBRSxFQUFFO0FBQ2pCO0FBQ0EsT0FBTyxPQUFPLElBQUksQ0FBQyxTQUFTLEVBQUU7QUFDNUIsTUFBSSxDQUpELFlBSWMsQ0EzQmxCLGtEQTJCcUUsQ0FKRCxtQkFJcUIsQ0EzQnpGO0FBNEJHLFdBQU87QUFDVDtBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo= */ diff --git a/dist/HistoryDisclaimer/HistoryDisclaimer.js b/dist/HistoryDisclaimer/HistoryDisclaimer.js index c93f49729..d7fa4f236 100644 --- a/dist/HistoryDisclaimer/HistoryDisclaimer.js +++ b/dist/HistoryDisclaimer/HistoryDisclaimer.js @@ -103,9 +103,9 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge mod )); //! src/HistoryDisclaimer/HistoryDisclaimer.module.less -var disclaimer = "HistoryDisclaimer-module__disclaimer_W9SYoG"; +var disclaimer = "HistoryDisclaimer-module__disclaimer_W9SYoG__490"; //! src/HistoryDisclaimer/modules/getBackground.tsx -var import_ext_gadget = __toESM(require("ext.gadget.React"), 1); +var import_ext_gadget = __toESM(require("ext.gadget.JSX"), 1); var Background = () => /* @__PURE__ */ import_ext_gadget.default.createElement("div", { className: disclaimer }); @@ -129,4 +129,4 @@ var getBackground = () => /* @__PURE__ */ import_ext_gadget.default.createElemen /* */ -//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL0hpc3RvcnlEaXNjbGFpbWVyL0hpc3RvcnlEaXNjbGFpbWVyLm1vZHVsZS5sZXNzIiwgInNyYy9IaXN0b3J5RGlzY2xhaW1lci9tb2R1bGVzL2dldEJhY2tncm91bmQudHN4IiwgInNyYy9IaXN0b3J5RGlzY2xhaW1lci9IaXN0b3J5RGlzY2xhaW1lci50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IFwiZXNidWlsZC1jc3MtbW9kdWxlcy1wbHVnaW4tbnMtY3NzOnNyYy9IaXN0b3J5RGlzY2xhaW1lci9IaXN0b3J5RGlzY2xhaW1lci5tb2R1bGUubGVzc1wiO1xuZXhwb3J0IGNvbnN0IGRpc2NsYWltZXIgPSBcIkhpc3RvcnlEaXNjbGFpbWVyLW1vZHVsZV9fZGlzY2xhaW1lcl9XOVNZb0dcIjtcblxuZXhwb3J0IGRlZmF1bHQge1xuICBcImRpc2NsYWltZXJcIjogZGlzY2xhaW1lclxufTtcbiAgICAgICIsICJpbXBvcnQgUmVhY3QgZnJvbSAnZXh0LmdhZGdldC5SZWFjdCc7XG5pbXBvcnQge2Rpc2NsYWltZXJ9IGZyb20gJy4uL0hpc3RvcnlEaXNjbGFpbWVyLm1vZHVsZS5sZXNzJztcblxuY29uc3QgQmFja2dyb3VuZCA9ICgpID0+IDxkaXYgY2xhc3NOYW1lPXtkaXNjbGFpbWVyfSAvPjtcblxuY29uc3QgZ2V0QmFja2dyb3VuZCA9ICgpID0+IDxCYWNrZ3JvdW5kIC8+O1xuXG5leHBvcnQge0JhY2tncm91bmQsIGdldEJhY2tncm91bmR9O1xuIiwgImltcG9ydCB7ZGlzY2xhaW1lcn0gZnJvbSAnLi9IaXN0b3J5RGlzY2xhaW1lci5tb2R1bGUubGVzcyc7XG5pbXBvcnQge2dldEJhY2tncm91bmR9IGZyb20gJy4vbW9kdWxlcy9nZXRCYWNrZ3JvdW5kJztcblxuKGZ1bmN0aW9uIGhpc3RvcnlEaXNjbGFpbWVyKCk6IHZvaWQge1xuXHRjb25zdCB7d2dDdXJSZXZpc2lvbklkLCB3Z1JldmlzaW9uSWR9ID0gbXcuY29uZmlnLmdldCgpO1xuXG5cdGlmICghd2dDdXJSZXZpc2lvbklkIHx8ICF3Z1JldmlzaW9uSWQgfHwgd2dDdXJSZXZpc2lvbklkIDw9IHdnUmV2aXNpb25JZCkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGlmIChkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGAuJHtkaXNjbGFpbWVyfWApKSB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0ZG9jdW1lbnQuYm9keS5hcHBlbmQoZ2V0QmFja2dyb3VuZCgpKTtcbn0pKCk7XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDTyxJQUFNQSxhQUFhOztBQ0QxQixJQUFBQyxvQkFBa0JDLFFBQUFDLFFBQUEsa0JBQUEsR0FBQSxDQUFBO0FBR2xCLElBQU1DLGFBQWFBLE1BQU1ILGtDQUFBSSxRQUFBQyxjQUFDLE9BQUE7RUFBSUMsV0FBV1A7QUFBQSxDQUFZO0FBRXJELElBQU1RLGdCQUFnQkEsTUFBTVAsa0NBQUFJLFFBQUFDLGNBQUNGLFlBQUEsSUFBVzs7Q0NGdkMsU0FBU0ssb0JBQTBCO0FBQ25DLFFBQU07SUFBQ0M7SUFBaUJDO0VBQVksSUFBSUMsR0FBR0MsT0FBT0MsSUFBSTtBQUV0RCxNQUFJLENBQUNKLG1CQUFtQixDQUFDQyxnQkFBZ0JELG1CQUFtQkMsY0FBYztBQUN6RTtFQUNEO0FBRUEsTUFBSUksU0FBU0MsY0FBQSxJQUFBQyxPQUFrQmpCLFVBQVUsQ0FBRSxHQUFHO0FBQzdDO0VBQ0Q7QUFFQWUsV0FBU0csS0FBS0MsT0FBT1gsY0FBYyxDQUFDO0FBQ3JDLEdBQUc7IiwKICAibmFtZXMiOiBbImRpc2NsYWltZXIiLCAiaW1wb3J0X2V4dF9nYWRnZXQiLCAiX190b0VTTSIsICJyZXF1aXJlIiwgIkJhY2tncm91bmQiLCAiZGVmYXVsdCIsICJjcmVhdGVFbGVtZW50IiwgImNsYXNzTmFtZSIsICJnZXRCYWNrZ3JvdW5kIiwgImhpc3RvcnlEaXNjbGFpbWVyIiwgIndnQ3VyUmV2aXNpb25JZCIsICJ3Z1JldmlzaW9uSWQiLCAibXciLCAiY29uZmlnIiwgImdldCIsICJkb2N1bWVudCIsICJxdWVyeVNlbGVjdG9yIiwgImNvbmNhdCIsICJib2R5IiwgImFwcGVuZCJdCn0K +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL0hpc3RvcnlEaXNjbGFpbWVyL0hpc3RvcnlEaXNjbGFpbWVyLm1vZHVsZS5sZXNzIiwgInNyYy9IaXN0b3J5RGlzY2xhaW1lci9tb2R1bGVzL2dldEJhY2tncm91bmQudHN4IiwgInNyYy9IaXN0b3J5RGlzY2xhaW1lci9IaXN0b3J5RGlzY2xhaW1lci50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IFwiZXNidWlsZC1jc3MtbW9kdWxlcy1wbHVnaW4tbnMtY3NzOnNyYy9IaXN0b3J5RGlzY2xhaW1lci9IaXN0b3J5RGlzY2xhaW1lci5tb2R1bGUubGVzc1wiO1xuZXhwb3J0IGNvbnN0IGRpc2NsYWltZXIgPSBcIkhpc3RvcnlEaXNjbGFpbWVyLW1vZHVsZV9fZGlzY2xhaW1lcl9XOVNZb0dfXzQ5MFwiO1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIFwiZGlzY2xhaW1lclwiOiBkaXNjbGFpbWVyXG59O1xuICAgICAgIiwgImltcG9ydCBSZWFjdCBmcm9tICdleHQuZ2FkZ2V0LkpTWCc7XG5pbXBvcnQge2Rpc2NsYWltZXJ9IGZyb20gJy4uL0hpc3RvcnlEaXNjbGFpbWVyLm1vZHVsZS5sZXNzJztcblxuY29uc3QgQmFja2dyb3VuZCA9ICgpID0+IDxkaXYgY2xhc3NOYW1lPXtkaXNjbGFpbWVyfSAvPjtcblxuY29uc3QgZ2V0QmFja2dyb3VuZCA9ICgpID0+IDxCYWNrZ3JvdW5kIC8+O1xuXG5leHBvcnQge0JhY2tncm91bmQsIGdldEJhY2tncm91bmR9O1xuIiwgImltcG9ydCB7ZGlzY2xhaW1lcn0gZnJvbSAnLi9IaXN0b3J5RGlzY2xhaW1lci5tb2R1bGUubGVzcyc7XG5pbXBvcnQge2dldEJhY2tncm91bmR9IGZyb20gJy4vbW9kdWxlcy9nZXRCYWNrZ3JvdW5kJztcblxuKGZ1bmN0aW9uIGhpc3RvcnlEaXNjbGFpbWVyKCk6IHZvaWQge1xuXHRjb25zdCB7d2dDdXJSZXZpc2lvbklkLCB3Z1JldmlzaW9uSWR9ID0gbXcuY29uZmlnLmdldCgpO1xuXG5cdGlmICghd2dDdXJSZXZpc2lvbklkIHx8ICF3Z1JldmlzaW9uSWQgfHwgd2dDdXJSZXZpc2lvbklkIDw9IHdnUmV2aXNpb25JZCkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGlmIChkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGAuJHtkaXNjbGFpbWVyfWApKSB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0ZG9jdW1lbnQuYm9keS5hcHBlbmQoZ2V0QmFja2dyb3VuZCgpKTtcbn0pKCk7XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDTyxJQUFNQSxhQUFhOztBQ0QxQixJQUFBQyxvQkFBa0JDLFFBQUFDLFFBQUEsZ0JBQUEsR0FBQSxDQUFBO0FBR2xCLElBQU1DLGFBQWFBLE1BQU1ILGtDQUFBSSxRQUFBQyxjQUFDLE9BQUE7RUFBSUMsV0FBV1A7QUFBQSxDQUFZO0FBRXJELElBQU1RLGdCQUFnQkEsTUFBTVAsa0NBQUFJLFFBQUFDLGNBQUNGLFlBQUEsSUFBVzs7Q0NGdkMsU0FBU0ssb0JBQTBCO0FBQ25DLFFBQU07SUFBQ0M7SUFBaUJDO0VBQVksSUFBSUMsR0FBR0MsT0FBT0MsSUFBSTtBQUV0RCxNQUFJLENBQUNKLG1CQUFtQixDQUFDQyxnQkFBZ0JELG1CQUFtQkMsY0FBYztBQUN6RTtFQUNEO0FBRUEsTUFBSUksU0FBU0MsY0FBQSxJQUFBQyxPQUFrQmpCLFVBQVUsQ0FBRSxHQUFHO0FBQzdDO0VBQ0Q7QUFFQWUsV0FBU0csS0FBS0MsT0FBT1gsY0FBYyxDQUFDO0FBQ3JDLEdBQUc7IiwKICAibmFtZXMiOiBbImRpc2NsYWltZXIiLCAiaW1wb3J0X2V4dF9nYWRnZXQiLCAiX190b0VTTSIsICJyZXF1aXJlIiwgIkJhY2tncm91bmQiLCAiZGVmYXVsdCIsICJjcmVhdGVFbGVtZW50IiwgImNsYXNzTmFtZSIsICJnZXRCYWNrZ3JvdW5kIiwgImhpc3RvcnlEaXNjbGFpbWVyIiwgIndnQ3VyUmV2aXNpb25JZCIsICJ3Z1JldmlzaW9uSWQiLCAibXciLCAiY29uZmlnIiwgImdldCIsICJkb2N1bWVudCIsICJxdWVyeVNlbGVjdG9yIiwgImNvbmNhdCIsICJib2R5IiwgImFwcGVuZCJdCn0K diff --git a/dist/HotCat/HotCat.css b/dist/HotCat/HotCat.css index 9fe034ccd..831034f1a 100644 --- a/dist/HotCat/HotCat.css +++ b/dist/HotCat/HotCat.css @@ -51,7 +51,7 @@ /* */ /* esbuild-css-modules-plugin-ns-css:src/HotCat/modules/check.module.less */ -.check-module__catcheckInlineIcon_mJ5NDq { +.check-module__catcheckInlineIcon_mJ5NDq__490 { display: inline-block; position: relative; top: 2px; @@ -59,4 +59,4 @@ /* */ -/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiZXNidWlsZC1jc3MtbW9kdWxlcy1wbHVnaW4tbnMtY3NzOnNyYy9Ib3RDYXQvbW9kdWxlcy9jaGVjay5tb2R1bGUubGVzcyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyogPHN0ZGluPiAqL1xuLmNoZWNrLW1vZHVsZV9fY2F0Y2hlY2tJbmxpbmVJY29uX21KNU5EcSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IDJweDtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsQ0FBQztBQUNDLFdBQVM7QUFDVCxZQUFVO0FBQ1YsT0FBSztBQUNQOyIsCiAgIm5hbWVzIjogW10KfQo= */ +/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiZXNidWlsZC1jc3MtbW9kdWxlcy1wbHVnaW4tbnMtY3NzOnNyYy9Ib3RDYXQvbW9kdWxlcy9jaGVjay5tb2R1bGUubGVzcyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyogPHN0ZGluPiAqL1xuLmNoZWNrLW1vZHVsZV9fY2F0Y2hlY2tJbmxpbmVJY29uX21KNU5EcV9fNDkwIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogMnB4O1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxDQUFDO0FBQ0MsV0FBUztBQUNULFlBQVU7QUFDVixPQUFLO0FBQ1A7IiwKICAibmFtZXMiOiBbXQp9Cg== */ diff --git a/dist/HotCat/HotCat.js b/dist/HotCat/HotCat.js index 1aeea945e..437b074cf 100644 --- a/dist/HotCat/HotCat.js +++ b/dist/HotCat/HotCat.js @@ -111,7 +111,7 @@ function _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } })); } //! src/HotCat/modules/check.module.less -var catcheckInlineIcon = "check-module__catcheckInlineIcon_mJ5NDq"; +var catcheckInlineIcon = "check-module__catcheckInlineIcon_mJ5NDq__490"; //! src/HotCat/modules/api.ts var import_ext_gadget = require("ext.gadget.Util"); var mwApi = (userAgent) => { @@ -3363,4 +3363,4 @@ hotCatMessages(); /* */ -//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL0hvdENhdC9tb2R1bGVzL2NoZWNrLm1vZHVsZS5sZXNzIiwgInNyYy9Ib3RDYXQvbW9kdWxlcy9hcGkudHMiLCAic3JjL0hvdENhdC9tb2R1bGVzL2NoZWNrLnRzIiwgInNyYy9Ib3RDYXQvSG90Q2F0LmpzIiwgInNyYy9Ib3RDYXQvbW9kdWxlcy9nZXRNZXNzYWdlLnRzIiwgInNyYy9Ib3RDYXQvbW9kdWxlcy9tZXNzYWdlcy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IFwiZXNidWlsZC1jc3MtbW9kdWxlcy1wbHVnaW4tbnMtY3NzOnNyYy9Ib3RDYXQvbW9kdWxlcy9jaGVjay5tb2R1bGUubGVzc1wiO1xuZXhwb3J0IGNvbnN0IGNhdGNoZWNrSW5saW5lSWNvbiA9IFwiY2hlY2stbW9kdWxlX19jYXRjaGVja0lubGluZUljb25fbUo1TkRxXCI7XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgXCJjYXRjaGVja0lubGluZUljb25cIjogY2F0Y2hlY2tJbmxpbmVJY29uXG59O1xuICAgICAgIiwgImltcG9ydCB7aW5pdE13QXBpfSBmcm9tICdleHQuZ2FkZ2V0LlV0aWwnO1xuXG4vLyBJbml0aWFsaXplIE1lZGlhV2lraSBBUElcbmNvbnN0IG13QXBpOiAodXNlckFnZW50Pzogc3RyaW5nKSA9PiBtdy5BcGkgPSAodXNlckFnZW50KSA9PiB7XG5cdHJldHVybiBpbml0TXdBcGkodXNlckFnZW50KTtcbn07XG5cbmV4cG9ydCB7bXdBcGl9O1xuIiwgImltcG9ydCB7Y2F0Y2hlY2tJbmxpbmVJY29ufSBmcm9tICcuL2NoZWNrLm1vZHVsZS5sZXNzJztcbmltcG9ydCB7bXdBcGl9IGZyb20gJy4vYXBpJztcblxuLyoqXG4gKiBDaGVja0NhdGVnb3JpZXMgSG90Q2F0IEV4dGVuc2lvbiDigJNcbiAqIHJlbW92ZXMgdGhlIHRlbXBsYXRlIHdoZW4gY2F0ZWdvcml6aW5nIChwcm9tcHRzIGJlZm9yZSkgd2l0aCBIb3RDYXQgYW5kXG4gKiBhZGRzIGEgbGluayBcIkNhdGVnb3JpZXMgYXJlIE9LXCIgdG8gdGhlIGNhdGVnb3J5LXNlY3Rpb25cbiAqXG4gKiBAcmV2IDIgKDIwMTQtMDMtMjApXG4gKiBAYXV0aG9yIFJpbGxrZSwgMjAxMlxuICovXG4oZnVuY3Rpb24gaG90Q2F0Q2hlY2soKSB7XG5cdGlmIChcblx0XHRtdy5jb25maWcuZ2V0KCd3Z05hbWVzcGFjZU51bWJlcicpICE9PSA2IHx8XG5cdFx0d2luZG93LkhvdENhdEF1dG9SZW1vdmVDaGVja0NhdE9wdE91dCB8fFxuXHRcdCFkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuY2hlY2tjYXRlZ29yaWVzJylcblx0KSB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cdGNvbnN0IGFwaSA9IG13QXBpKCdob3RDYXRDaGVjay8yLjAnKTtcblx0Y29uc3QgY2hlY2tDYXRlZ29yaWVzUmVnRXhwID0gL3t7W0NjXWhlY2tbIF9dY2F0ZWdvcmllc1tee31dKn19L2c7XG5cdGNvbnN0IHNlbGZOYW1lID0gJyhbW01lZGlhV2lraTpHYWRnZXQtSG90Q2F0LWNoZWNrLmpzfFNjcmlwdF1dKTogJztcblx0Y29uc3Qgc3RvcmFnZUl0ZW1OYW1lID0gJ2NoZWNrQ2F0Jztcblx0Y29uc3Qgc3RvcmFnZUl0ZW0gPSBtdy5zdG9yYWdlLmdldChzdG9yYWdlSXRlbU5hbWUpO1xuXHQvKipcblx0ICogQSBmZXcgc3R5bGluZyBoZWxwZXIgZnVuY3Rpb25zXG5cdCAqXG5cdCAqIEBwYXJhbSB7c3RyaW5nfSBpY29uQ2xhc3Ncblx0ICogQHJldHVybiB7SlF1ZXJ5fVxuXHQgKi9cblx0Y29uc3QgY3JlYXRlakljb24gPSAoaWNvbkNsYXNzOiBzdHJpbmcpOiBKUXVlcnkgPT4ge1xuXHRcdHJldHVybiAkKCc8c3Bhbj4nKS5hdHRyKCdjbGFzcycsIGB1aS1pY29uICR7aWNvbkNsYXNzfSAke2NhdGNoZWNrSW5saW5lSWNvbn1gKS50ZXh0KCcgJyk7XG5cdH07XG5cdGNvbnN0IGNyZWF0ZU5vdGlmeUFyZWEgPSAodGV4dE5vZGU6IEpRdWVyeTxKUXVlcnkuTm9kZT4sIGljb246IHN0cmluZywgc3RhdGU6IHN0cmluZyk6IEpRdWVyeTxIVE1MRWxlbWVudD4gPT4ge1xuXHRcdHJldHVybiAkKCc8ZGl2PicpXG5cdFx0XHQuYWRkQ2xhc3MoJ3VpLXdpZGdldCcpXG5cdFx0XHQuYXBwZW5kKFxuXHRcdFx0XHQkKCc8ZGl2PicpXG5cdFx0XHRcdFx0LmF0dHIoJ2NsYXNzJywgYCR7c3RhdGV9IHVpLWNvcm5lci1hbGxgKVxuXHRcdFx0XHRcdC5jc3Moe1xuXHRcdFx0XHRcdFx0J21hcmdpbi10b3AnOiAnMjBweCcsXG5cdFx0XHRcdFx0XHRwYWRkaW5nOiAnMC43ZW0nLFxuXHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0LmFwcGVuZCgkKCc8cD4nKS5hcHBlbmQoY3JlYXRlakljb24oaWNvbikuY3NzKCdtYXJnaW5SaWdodCcsICcwLjNlbScpLCB0ZXh0Tm9kZSkpXG5cdFx0XHQpO1xuXHR9O1xuXHQvLyBSZW1vdmUgXCJjaGVjayBjYXRlZ29yaWVzXCIgd2hlbiB1c2luZyBIb3RDYXRcblx0Ly8gT25seSBleGVjdXRlZCBvbiBmaXJzdCBzdWJtaXRcblx0JCgnYm9keScpLm9uZSgnc3VibWl0LmNoZWNrQ2F0TGlzdGVuZXInLCAnI2hvdGNhdENvbW1pdEZvcm0nLCBmdW5jdGlvbiAoZSkge1xuXHRcdGlmIChzdG9yYWdlSXRlbSA9PT0gJ2Rpc2FibGVkJykge1xuXHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0fVxuXHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWFzc2lnbm1lbnRcblx0XHRjb25zdCBzZWxmID0gdGhpcztcblxuXHRcdGNvbnN0IG5ld1ZhbCA9IChzZWxmLndwVGV4dGJveDEgYXMgSFRNTFRleHRBcmVhRWxlbWVudCkudmFsdWU/LnJlcGxhY2UoY2hlY2tDYXRlZ29yaWVzUmVnRXhwLCAnJyk7XG5cdFx0Y29uc3QgZGxnQnV0dG9uczoge1xuXHRcdFx0J1llcywgUmVtb3ZlJz86ICgpID0+IHZvaWQ7XG5cdFx0XHQnTm8sIGtlZXAgaXQnPzogKCkgPT4gdm9pZDtcblx0XHR9ID0ge307XG5cdFx0bGV0ICRkaWFsb2dDaGVja1N0b3JhZ2U6IEpRdWVyeTxIVE1MRWxlbWVudD47XG5cdFx0bGV0ICRwZXJtYVNhdmVIaW50OiBKUXVlcnk8SFRNTEVsZW1lbnQ+O1xuXHRcdGxldCAkdGV4dEhpbnROb2RlO1xuXHRcdGxldCAkZGlhbG9nO1xuXHRcdGNvbnN0IGRvUmVtb3ZlID0gKCkgPT4ge1xuXHRcdFx0KHNlbGYud3BTdW1tYXJ5IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlID1cblx0XHRcdFx0YFJlbW92aW5nIFtbVGVtcGxhdGU6Q2hlY2sgY2F0ZWdvcmllc3x7e0NoZWNrIGNhdGVnb3JpZXN9fV1dICR7KHNlbGYud3BTdW1tYXJ5IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlfWA7XG5cblx0XHRcdChzZWxmLndwVGV4dGJveDEgYXMgSFRNTFRleHRBcmVhRWxlbWVudCkudmFsdWUgPSBuZXdWYWw7XG5cdFx0fTtcblx0XHRjb25zdCB3cml0ZVN0b3JhZ2UgPSAodmFsOiBzdHJpbmcpID0+IHtcblx0XHRcdG13LnN0b3JhZ2Uuc2V0KHN0b3JhZ2VJdGVtTmFtZSwgdmFsLCA2MCAqIDYwICogMjQgKiA3KTsgLy8gNyBkYXlzXG5cdFx0fTtcblx0XHRkbGdCdXR0b25zWydZZXMsIFJlbW92ZSddID0gZnVuY3Rpb24gKCkge1xuXHRcdFx0ZG9SZW1vdmUoKTtcblx0XHRcdGlmICgoJGRpYWxvZ0NoZWNrU3RvcmFnZVswXSBhcyBIVE1MSW5wdXRFbGVtZW50KT8uY2hlY2tlZCkge1xuXHRcdFx0XHR3cml0ZVN0b3JhZ2UoJ2F1dG8nKTtcblx0XHRcdH1cblx0XHRcdCQodGhpcykuZGlhbG9nKCdjbG9zZScpO1xuXHRcdH07XG5cdFx0ZGxnQnV0dG9uc1snTm8sIGtlZXAgaXQnXSA9IGZ1bmN0aW9uICgpIHtcblx0XHRcdGlmICgoJGRpYWxvZ0NoZWNrU3RvcmFnZVswXSBhcyBIVE1MSW5wdXRFbGVtZW50KT8uY2hlY2tlZCkge1xuXHRcdFx0XHR3cml0ZVN0b3JhZ2UoJ2Rpc2FibGVkJyk7XG5cdFx0XHR9XG5cdFx0XHQkKHRoaXMpLmRpYWxvZygnY2xvc2UnKTtcblx0XHR9O1xuXHRcdGNvbnN0IF9hZGRUb0pTID0gZnVuY3Rpb24gKHRoaXM6IEhUTUxFbGVtZW50LCBfZTogSlF1ZXJ5LkV2ZW50KSB7XG5cdFx0XHRfZS5wcmV2ZW50RGVmYXVsdCgpO1xuXHRcdFx0aWYgKCRwZXJtYVNhdmVIaW50Lmhhc0NsYXNzKCd1aS1zdGF0ZS1kaXNhYmxlZCcpKSB7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblx0XHRcdGNvbnN0ICRlbDogSlF1ZXJ5PEhUTUxFbGVtZW50PiA9ICQodGhpcyk7XG5cdFx0XHQkZWwub2ZmKCdjbGljaycpLnRleHQoJ1BsZWFzZSB3YWl0LicpO1xuXHRcdFx0JHBlcm1hU2F2ZUhpbnQuYWRkQ2xhc3MoJ3VpLXN0YXRlLWRpc2FibGVkJyk7XG5cdFx0XHRjb25zdCBwYXJhbXM6IEFwaUVkaXRQYWdlUGFyYW1zID0ge1xuXHRcdFx0XHRhY3Rpb246ICdlZGl0Jyxcblx0XHRcdFx0Zm9ybWF0OiAnanNvbicsXG5cdFx0XHRcdHRpdGxlOiBgVXNlcjoke213LmNvbmZpZy5nZXQoJ3dnVXNlck5hbWUnKX0vY29tbW9uLmpzYCxcblx0XHRcdFx0c3VtbWFyeTogYCR7c2VsZk5hbWV9U2F2aW5nIEhvdENhdCBjb25maWd1cmF0aW9uLmAsXG5cdFx0XHRcdGFwcGVuZHRleHQ6ICRlbC5kYXRhKCdhZGRUZXh0JykgYXMgc3RyaW5nLFxuXHRcdFx0fTtcblx0XHRcdGNvbnN0IGVkaXREb25lID0gKGVkaXRTdGF0Pzoge2Vycm9yPzoge2NvZGU/OiBzdHJpbmc7IGluZm8/OiBzdHJpbmd9fSkgPT4ge1xuXHRcdFx0XHRpZiAoIWVkaXRTdGF0KSB7XG5cdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmIChlZGl0U3RhdC5lcnJvcikge1xuXHRcdFx0XHRcdHZvaWQgbXcubm90aWZ5KFxuXHRcdFx0XHRcdFx0YFVuYWJsZSB0byBzYXZlIHRvIHlvdXIgY29tbW9uLmpzIHVzaW5nIHRoZSBBUElcXG4ke2VkaXRTdGF0LmVycm9yLmNvZGV9XFxuJHtlZGl0U3RhdC5lcnJvci5pbmZvfWAsXG5cdFx0XHRcdFx0XHR7dGFnOiAnaG90Q2F0Q2hlY2snLCB0eXBlOiAnZXJyb3InfVxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0JGVsLnRleHQoJ0VkaXQtRXJyb3IhJyk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0JGVsLnRleHQoJ0RvbmUuJyk7XG5cdFx0XHRcdFx0JHBlcm1hU2F2ZUhpbnQuZmFkZU91dCgpO1xuXHRcdFx0XHR9XG5cdFx0XHR9O1xuXHRcdFx0dm9pZCBhcGkucG9zdFdpdGhUb2tlbignY3NyZicsIHBhcmFtcykudGhlbihlZGl0RG9uZSk7XG5cdFx0fTtcblx0XHQvKipcblx0XHQgKiBPbiBXaWtpbWVkaWEgQ29tbW9ucyB0aGVyZSB3ZXJlIHBlb3BsZSB3aG8gc2FpZDpcblx0XHQgKiBcIkNhdGVnb3JpemluZyB3aXRoIEhvdENhdCBkb2VzIGxlZ2l0IGF1dG9tYXRlZCByZW1vdmFsIG9mIHRoZSBjaGVjay1jYXQtbWVzc2FnZVwiXG5cdFx0ICogU28gd2UgaW52ZW50ZWQgYSBkaWFsb2cgdGhhdCBzaG91bGQgYmUgcmVhZGFibGUgYnkgdXNlcnMgZXZlbiB3aXRoIHZlcnkgZmV3IEVuZ2xpc2ggc2tpbGxzLlxuXHRcdCAqL1xuXHRcdGNvbnN0IHByb21wdCA9ICgpID0+IHtcblx0XHRcdCRkaWFsb2dDaGVja1N0b3JhZ2UgPSAkKCc8aW5wdXQ+Jylcblx0XHRcdFx0LmF0dHIoe1xuXHRcdFx0XHRcdHR5cGU6ICdjaGVja2JveCcsXG5cdFx0XHRcdFx0aWQ6ICdob3RDYXRBdXRvUmVtb3ZlQ2hlY2tDYXRTdG9yYWdlJyxcblx0XHRcdFx0fSlcblx0XHRcdFx0Lm9uKCdjaGFuZ2UnLCBmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdFx0aWYgKCh0aGlzIGFzIEhUTUxJbnB1dEVsZW1lbnQpLmNoZWNrZWQpIHtcblx0XHRcdFx0XHRcdCRwZXJtYVNhdmVIaW50LmZhZGVJbigpO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHQkcGVybWFTYXZlSGludC5mYWRlT3V0KCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KTtcblx0XHRcdCR0ZXh0SGludE5vZGUgPSAkKCc8dWw+Jyk7XG5cdFx0XHQkKCc8bGk+Jylcblx0XHRcdFx0LmFwcGVuZChcblx0XHRcdFx0XHQkKCc8YT4nKVxuXHRcdFx0XHRcdFx0LmF0dHIoJ2hyZWYnLCAnIycpXG5cdFx0XHRcdFx0XHQudGV4dCgnRGlzYWJsZSB0aGlzIGZlYXR1cmUuJylcblx0XHRcdFx0XHRcdC5kYXRhKCdhZGRUZXh0JywgJ1xcbndpbmRvdy5Ib3RDYXRBdXRvUmVtb3ZlQ2hlY2tDYXRPcHRPdXQgPSB0cnVlOycpXG5cdFx0XHRcdFx0XHQub24oJ2NsaWNrJywgX2FkZFRvSlMpXG5cdFx0XHRcdClcblx0XHRcdFx0LmFwcGVuZFRvKCR0ZXh0SGludE5vZGUpO1xuXHRcdFx0JCgnPGxpPicpXG5cdFx0XHRcdC5hcHBlbmQoXG5cdFx0XHRcdFx0JCgnPGE+Jylcblx0XHRcdFx0XHRcdC5hdHRyKCdocmVmJywgJyMnKVxuXHRcdFx0XHRcdFx0LnRleHQoJ1JlbW92ZSB7e2NoZWNrIGNhdGVnb3JpZXN9fSB3aGVuIGVkaXRpbmcgdXNpbmcgSG90Q2F0IHdpdGhvdXQgcHJvbXB0aW5nLicpXG5cdFx0XHRcdFx0XHQuZGF0YSgnYWRkVGV4dCcsICdcXG53aW5kb3cuSG90Q2F0QXV0b1JlbW92ZUNoZWNrQ2F0ID0gdHJ1ZTsnKVxuXHRcdFx0XHRcdFx0Lm9uKCdjbGljaycsIF9hZGRUb0pTKVxuXHRcdFx0XHQpXG5cdFx0XHRcdC5hcHBlbmRUbygkdGV4dEhpbnROb2RlKTtcblx0XHRcdCRwZXJtYVNhdmVIaW50ID0gY3JlYXRlTm90aWZ5QXJlYShcblx0XHRcdFx0JCgnPHNwYW4+JykudGV4dCgnU2F2ZSB0aGVzZSBzZXR0aW5nIGluIHlvdXIgY29tbW9uLmpzOiAnKS5hcHBlbmQoJHRleHRIaW50Tm9kZSksXG5cdFx0XHRcdCd1aS1pY29uLWluZm8nLFxuXHRcdFx0XHQndWktc3RhdGUtaGlnaGxpZ2h0J1xuXHRcdFx0KTtcblx0XHRcdCRkaWFsb2cgPSAkKCc8ZGl2PicpXG5cdFx0XHRcdC5hcHBlbmQoXG5cdFx0XHRcdFx0JCgnPHNwYW4+Jylcblx0XHRcdFx0XHRcdC5jc3Moe1xuXHRcdFx0XHRcdFx0XHQnZm9udC1zaXplJzogJzJlbScsXG5cdFx0XHRcdFx0XHRcdCdsaW5lLWhlaWdodCc6ICcxLjhlbScsXG5cdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdFx0LmFwcGVuZChcblx0XHRcdFx0XHRcdFx0JCgnPHNwYW4+JykudGV4dCgnIHt7Y2hlY2sgY2F0ZWdvcmllc319ICcpLmNzcyh7XG5cdFx0XHRcdFx0XHRcdFx0J2JhY2tncm91bmQtY29sb3InOiAnI0Y4Q0NCMCcsXG5cdFx0XHRcdFx0XHRcdFx0J3RleHQtZGVjb3JhdGlvbic6ICdsaW5lLXRocm91Z2ggIWltcG9ydGFudCcsXG5cdFx0XHRcdFx0XHRcdFx0ZGlzcGxheTogJ2lubGluZS1ibG9jaycsXG5cdFx0XHRcdFx0XHRcdH0pLFxuXHRcdFx0XHRcdFx0XHQkKCc8c3Bhbj4nKS50ZXh0KCcgPycpXG5cdFx0XHRcdFx0XHQpXG5cdFx0XHRcdClcblx0XHRcdFx0LmFwcGVuZChcblx0XHRcdFx0XHQnPGJyPicsXG5cdFx0XHRcdFx0JGRpYWxvZ0NoZWNrU3RvcmFnZSxcblx0XHRcdFx0XHQkKCc8bGFiZWw+JykuYXR0cignZm9yJywgJ2hvdENhdEF1dG9SZW1vdmVDaGVja0NhdFN0b3JhZ2UnKS50ZXh0KFwiRG9uJ3QgYXNrIGFnYWluXCIpLFxuXHRcdFx0XHRcdCc8YnI+J1xuXHRcdFx0XHQpXG5cdFx0XHRcdC5hcHBlbmQobXcudXNlci5pc0Fub24oKSA/ICcnIDogJHBlcm1hU2F2ZUhpbnQuaGlkZSgpKTtcblx0XHRcdCRkaWFsb2cuZGlhbG9nKHtcblx0XHRcdFx0bW9kYWw6IHRydWUsXG5cdFx0XHRcdGNsb3NlT25Fc2NhcGU6IHRydWUsXG5cdFx0XHRcdHRpdGxlOiAne3tjaGVjayBjYXRlZ29yaWVzfX0gKOKIkik/Jyxcblx0XHRcdFx0d2lkdGg6IDQ1MCxcblx0XHRcdFx0YnV0dG9uczogZGxnQnV0dG9ucyxcblx0XHRcdFx0Y2xvc2U6ICgpID0+IHtcblx0XHRcdFx0XHRjb25zdCAkYm9keSA9ICQoJ2JvZHknKTtcblx0XHRcdFx0XHQkYm9keS5maW5kKCcjaG90Y2F0Q29tbWl0Rm9ybScpLnRyaWdnZXIoJ3N1Ym1pdCcpO1xuXHRcdFx0XHR9LFxuXHRcdFx0XHRvcGVuKCkge1xuXHRcdFx0XHRcdGNvbnN0ICRidXR0b25zID0gJCh0aGlzKS5wYXJlbnQoKS5maW5kKCcudWktZGlhbG9nLWJ1dHRvbnBhbmUgYnV0dG9uJyk7XG5cdFx0XHRcdFx0JGJ1dHRvbnMuZXEoMCkuYnV0dG9uKHtcblx0XHRcdFx0XHRcdGljb25zOiB7XG5cdFx0XHRcdFx0XHRcdHByaW1hcnk6ICd1aS1pY29uLWNpcmNsZS1jaGVjaycsXG5cdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdCRidXR0b25zLmVxKDEpLmJ1dHRvbih7XG5cdFx0XHRcdFx0XHRpY29uczoge1xuXHRcdFx0XHRcdFx0XHRwcmltYXJ5OiAndWktaWNvbi1jYW5jZWwnLFxuXHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fSxcblx0XHRcdH0pO1xuXHRcdH07XG5cblx0XHRpZiAobmV3VmFsICE9PSAoc2VsZi53cFRleHRib3gxIGFzIEhUTUxUZXh0QXJlYUVsZW1lbnQpLnZhbHVlKSB7XG5cdFx0XHRpZiAod2luZG93LkhvdENhdEF1dG9SZW1vdmVDaGVja0NhdCB8fCBzdG9yYWdlSXRlbSA9PT0gJ2F1dG8nKSB7XG5cdFx0XHRcdGRvUmVtb3ZlKCk7XG5cdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0fVxuXHRcdFx0ZS5wcmV2ZW50RGVmYXVsdCgpO1xuXHRcdFx0cHJvbXB0KCk7XG5cdFx0fVxuXHRcdHJldHVybiB0cnVlO1xuXHR9KTtcblx0Ly8gQWRkIE9LLUxpbmsgdG8gdGhlIGNhdHMgcGFuZWxcblx0Y29uc3QgJG9rTGluayA9ICQoJzxhPicpXG5cdFx0LmF0dHIoe1xuXHRcdFx0aHJlZjogJyMnLFxuXHRcdFx0dGl0bGU6ICdDYXRlZ29yaWVzIGFyZSBPSyEgSW1tZWRpYXRlbHkgcmVtb3ZlIHRoZSB0ZW1wbGF0ZS4nLFxuXHRcdH0pXG5cdFx0LmFwcGVuZCgnPHM+Jylcblx0XHQudGV4dCgne3tDaGVjayBjYXRlZ29yaWVzfX0nKTtcblx0JG9rTGluay5vbignY2xpY2snLCBmdW5jdGlvbiAoZSkge1xuXHRcdGUucHJldmVudERlZmF1bHQoKTtcblx0XHRjb25zdCAkZWwgPSAkKHRoaXMpO1xuXHRcdCRlbC5vZmYoJ2NsaWNrJyk7XG5cdFx0Y29uc3QgZG9FZGl0ID0gKHJlc3VsdDogc3RyaW5nKSA9PiB7XG5cdFx0XHRpZiAoIXJlc3VsdCkge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cdFx0XHQkZWwudGV4dCgnRG9pbmcuJyk7XG5cdFx0XHRjb25zdCB0ZXh0ID0gcmVzdWx0LnJlcGxhY2UoY2hlY2tDYXRlZ29yaWVzUmVnRXhwLCAnJyk7XG5cdFx0XHRpZiAodGV4dCA9PT0gcmVzdWx0KSB7XG5cdFx0XHRcdCRlbC50ZXh0KCdUZW1wbGF0ZSBub3QgZm91bmQhJyk7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblx0XHRcdGNvbnN0IHBhcmFtczogQXBpRWRpdFBhZ2VQYXJhbXMgPSB7XG5cdFx0XHRcdHRleHQsXG5cdFx0XHRcdGFjdGlvbjogJ2VkaXQnLFxuXHRcdFx0XHRmb3JtYXQ6ICdqc29uJyxcblx0XHRcdFx0dGl0bGU6IG13LmNvbmZpZy5nZXQoJ3dnUGFnZU5hbWUnKSxcblx0XHRcdFx0c3VtbWFyeTogYCR7c2VsZk5hbWV9Q2F0ZWdvcmllcyBhcmUgY2hlY2tlZCBhbmQgT0suIFlvdSBjYW4gaGVscCBbW0NhdGVnb3J5Ok1lZGlhIG5lZWRpbmcgY2F0ZWdvcnkgcmV2aWV3fHJldmlld2luZ11dIWAsXG5cdFx0XHRcdG5vY3JlYXRlOiB0cnVlLFxuXHRcdFx0fTtcblx0XHRcdGNvbnN0IGVkaXREb25lID0gKGVkaXRTdGF0Pzoge2Vycm9yPzoge2NvZGU/OiBzdHJpbmc7IGluZm8/OiBzdHJpbmd9fSkgPT4ge1xuXHRcdFx0XHRpZiAoIWVkaXRTdGF0KSB7XG5cdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmIChlZGl0U3RhdC5lcnJvcikge1xuXHRcdFx0XHRcdHZvaWQgbXcubm90aWZ5KFxuXHRcdFx0XHRcdFx0YFVuYWJsZSB0byByZW1vdmUgXCJDaGVjayBjYXRlZ29yaWVzXCIgd2l0aCB0aGUgQVBJXFxuJHtlZGl0U3RhdC5lcnJvci5jb2RlfVxcbiR7ZWRpdFN0YXQuZXJyb3IuaW5mb31gLFxuXHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHR0YWc6ICdob3RDYXRDaGVjaycsXG5cdFx0XHRcdFx0XHRcdHR5cGU6ICdlcnJvcicsXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0XHQkZWwudGV4dCgnRWRpdC1FcnJvciEnKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHQkZWwudGV4dCgnRWRpdCBEb25lLicpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGNvbnN0ICRib2R5ID0gJCgnYm9keScpO1xuXHRcdFx0XHQkYm9keS5maW5kKCcuY2hlY2tjYXRlZ29yaWVzJykuZmFkZU91dCgpO1xuXHRcdFx0fTtcblx0XHRcdCRlbC50ZXh0KCdEb2luZy4uJyk7XG5cdFx0XHR2b2lkIGFwaS5wb3N0V2l0aFRva2VuKCdjc3JmJywgcGFyYW1zKS50aGVuKGVkaXREb25lKTtcblx0XHR9O1xuXHRcdCRlbC50ZXh0KCdEb2luZycpO1xuXHRcdHZvaWQgJC5hamF4KHtcblx0XHRcdHVybDogbXcuY29uZmlnLmdldCgnd2dTY3JpcHQnKSxcblx0XHRcdGRhdGE6IHtcblx0XHRcdFx0YWN0aW9uOiAncmF3Jyxcblx0XHRcdFx0dGl0bGU6IG13LmNvbmZpZy5nZXQoJ3dnUGFnZU5hbWUnKS5yZXBsYWNlKC8gL2csICdfJyksXG5cdFx0XHR9LFxuXHRcdFx0ZGF0YVR5cGU6ICd0ZXh0Jyxcblx0XHRcdGVycm9yOiAoKSA9PiB7XG5cdFx0XHRcdCRlbC50ZXh0KCdFcnJvciEnKTtcblx0XHRcdH0sXG5cdFx0XHRzdWNjZXNzOiBkb0VkaXQsXG5cdFx0XHR0eXBlOiAnR0VUJyxcblx0XHRcdGNhY2hlOiBmYWxzZSxcblx0XHR9KTtcblx0fSk7XG5cdCQoZnVuY3Rpb24gbG9hZEhvdENhdENoZWNrKCkge1xuXHRcdGNvbnN0ICRib2R5ID0gJCgnYm9keScpO1xuXHRcdCRib2R5LmZpbmQoJyNjYXRsaW5rcycpLmZpbmQoJ3VsOmZpcnN0JykuYXBwZW5kKCQoJzxsaT4nKS5hcHBlbmQoJG9rTGluaykpO1xuXHR9KTtcbn0pKCk7XG4iLCAiLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuLy8gQHRzLW5vY2hlY2tcbmltcG9ydCAnLi9tb2R1bGVzL2NoZWNrJztcbmltcG9ydCB7Z2VuZXJhdGVBcnJheX0gZnJvbSAnZXh0LmdhZGdldC5VdGlsJztcbmltcG9ydCB7Z2V0TWVzc2FnZX0gZnJvbSAnLi9tb2R1bGVzL2dldE1lc3NhZ2UnO1xuaW1wb3J0IHtob3RDYXRNZXNzYWdlc30gZnJvbSAnLi9tb2R1bGVzL21lc3NhZ2VzJztcbmltcG9ydCB7bXdBcGl9IGZyb20gJy4vbW9kdWxlcy9hcGknO1xuaW1wb3J0IHBubyBmcm9tICcuL2ltYWdlcy9QX25vLnBuZyc7XG5pbXBvcnQgcHllcyBmcm9tICcuL2ltYWdlcy9QX3llcy5wbmcnO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBBamF4LWJhc2VkIHNpbXBsZSBDYXRlZ29yeSBtYW5hZ2VyLiBBbGxvd3MgYWRkaW5nL3JlbW92aW5nL2NoYW5naW5nIGNhdGVnb3JpZXMgb24gYSBwYWdlIHZpZXcuXG4gKiBTdXBwb3J0cyBtdWx0aXBsZSBjYXRlZ29yeSBjaGFuZ2VzLCBhcyB3ZWxsIGFzIHJlZGlyZWN0IGFuZCBkaXNhbWJpZ3VhdGlvbiByZXNvbHV0aW9uLiBBbHNvXG4gKiBwbHVncyBpbnRvIHRoZSB1cGxvYWQgZm9ybS4gU2VhcmNoIGVuZ2luZXMgdG8gdXNlIGZvciB0aGUgc3VnZ2VzdGlvbiBsaXN0IGFyZSBjb25maWd1cmFibGUsIGFuZFxuICogY2FuIGJlIHNlbGVjdGVkIGludGVyYWN0aXZlbHkuXG4gKlxuICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9jb21tb25zLndpa2ltZWRpYS5vcmcvd2lraS9IZWxwOkdhZGdldC1Ib3RDYXR9XG4gKiBAYXV0aG9yIGF1dGhvcnMgPGh0dHBzOi8vY29tbW9ucy53aWtpbWVkaWEub3JnL3dpa2kvSGVscDpHYWRnZXQtSG90Q2F0L1ZlcnNpb25faGlzdG9yeT5cbiAqL1xuLy8gTG9hZCB0cmFuc2xhdGlvbnMgbG9jYWxseVxuaG90Q2F0TWVzc2FnZXMoKTtcblxuLy8gTWFpbiBib2R5XG4oZnVuY3Rpb24gaG90Q2F0KCkge1xuXHQvLyBEb24ndCB1c2UgbXcuY29uZmlnLmdldCgpIGFzIHRoYXQgdGFrZXMgYSBjb3B5IG9mIHRoZSBjb25maWcsIGFuZCBzbyBkb2Vzbid0XG5cdC8vIGFjY291bnQgZm9yIHZhbHVlcyBjaGFuZ2luZywgZS5nLiB3Z0N1clJldmlzaW9uSWQgYWZ0ZXIgYSBWRSBlZGl0XG5cdGNvbnN0IGNvbmYgPSBtdy5jb25maWcudmFsdWVzO1xuXHQvLyBHdWFyZCBhZ2FpbnN0IGRvdWJsZSBpbmNsdXNpb25zXG5cdGlmICgod2luZG93LkhvdENhdCAmJiAhd2luZG93LkhvdENhdC5ub2RlTmFtZSkgfHwgY29uZi53Z0FjdGlvbiA9PT0gJ2VkaXQnKSB7XG5cdFx0cmV0dXJuOyAvLyBOb3Qgb24gZWRpdCBtb2RlXG5cdH1cblx0Ly8gSW5pdGlhbGl6ZSBNZWRpYVdpa2kgQVBJXG5cdGNvbnN0IGFwaSA9IG13QXBpKCdIb3RDYXQvMy4wJyk7XG5cdC8vIENvbmZpZ3VyYXRpb24gc3R1ZmYuXG5cdHdpbmRvdy5Ib3RDYXQgPSB7XG5cdFx0Ly8gVGhlIGxpdHRsZSBtb2RpZmljYXRpb24gbGlua3MgZGlzcGxheWVkIGFmdGVyIGNhdGVnb3J5IG5hbWVzLiBVKzIyMTIgaXMgYSBtaW51cyBzaWduOyBVKzIxOTMgYW5kIFUrMjE5MSBhcmVcblx0XHQvLyBkb3dud2FyZCBhbmQgdXB3YXJkIHBvaW50aW5nIGFycm93cy4gRG8gbm90IHVzZSDihpMgYW5kIOKGkSBpbiB0aGUgY29kZSFcblx0XHRsaW5rczoge1xuXHRcdFx0Y2hhbmdlOiAnKMKxKScsXG5cdFx0XHRyZW1vdmU6ICcoXFx1MjIxMiknLFxuXHRcdFx0YWRkOiAnKCspJyxcblx0XHRcdHJlc3RvcmU6ICcow5cpJyxcblx0XHRcdHVuZG86ICcow5cpJyxcblx0XHRcdGRvd246ICcoXFx1MjE5MyknLFxuXHRcdFx0dXA6ICcoXFx1MjE5MSknLFxuXHRcdH0sXG5cdFx0Y2hhbmdlVGFnOiAnSG90Q2F0Jyxcblx0XHQvLyBUaGUgSFRNTCBjb250ZW50IG9mIHRoZSBcImVudGVyIG11bHRpLW1vZGVcIiBsaW5rIGF0IHRoZSBmcm9udC5cblx0XHRhZGRtdWx0aTogJzxzcGFuPis8c3VwPis8L3N1cD48L3NwYW4+Jyxcblx0XHQvLyBSZXR1cm4gdHJ1ZSB0byBkaXNhYmxlIEhvdENhdC5cblx0XHRkaXNhYmxlOiAoKSA9PiB7XG5cdFx0XHRjb25zdCBucyA9IGNvbmYud2dOYW1lc3BhY2VOdW1iZXI7XG5cdFx0XHRjb25zdCBuc0lkcyA9IGNvbmYud2dOYW1lc3BhY2VJZHM7XG5cdFx0XHRyZXR1cm4gKFxuXHRcdFx0XHRucyA8IDAgfHxcblx0XHRcdFx0Ly8gU3BlY2lhbCBwYWdlczsgU3BlY2lhbDpVcGxvYWQgaXMgaGFuZGxlZCBkaWZmZXJlbnRseVxuXHRcdFx0XHRucyA9PT0gMTAgfHxcblx0XHRcdFx0Ly8gVGVtcGxhdGVzXG5cdFx0XHRcdG5zID09PSA4MjggfHxcblx0XHRcdFx0Ly8gTW9kdWxlIChMdWEpXG5cdFx0XHRcdG5zID09PSA4IHx8XG5cdFx0XHRcdC8vIE1lZGlhV2lraVxuXHRcdFx0XHQobnMgPT09IDYgJiYgIWNvbmYud2dBcnRpY2xlSWQpIHx8XG5cdFx0XHRcdC8vIE5vbi1leGlzdGluZyBmaWxlIHBhZ2VzXG5cdFx0XHRcdChucyA9PT0gMiAmJiAvXFwuKGpzfGNzcykkLy50ZXN0KGNvbmYud2dUaXRsZSkpIHx8XG5cdFx0XHRcdC8vIFVzZXIgc2NyaXB0c1xuXHRcdFx0XHQobnNJZHMgJiYgKG5zID09PSBuc0lkcy5jcmVhdG9yIHx8IG5zID09PSBuc0lkcy50aW1lZHRleHQgfHwgbnMgPT09IG5zSWRzLmluc3RpdHV0aW9uKSlcblx0XHRcdCk7XG5cdFx0fSxcblx0XHQvLyBBIHJlZ2V4cCBtYXRjaGluZyBhIHRlbXBsYXRlcyB1c2VkIHRvIG1hcmsgdW5jYXRlZ29yaXplZCBwYWdlcywgaWYgeW91ciB3aWtpIGRvZXMgaGF2ZSB0aGF0LlxuXHRcdC8vIElmIG5vdCwgc2V0IGl0IHRvIG51bGwuXG5cdFx0dW5jYXRfcmVnZXhwOiAve3tcXHMqW1V1XW5jYXRlZ29yaXplZFxccypbXn1dKn19XFxzKig8IS0tLio/LS0+XFxzKik/L2csXG5cdFx0Ly8gVGhlIGltYWdlcyB1c2VkIGZvciB0aGUgbGl0dGxlIGluZGljYXRpb24gaWNvbi4gU2hvdWxkIG5vdCBuZWVkIGNoYW5naW5nLlxuXHRcdGV4aXN0c1llczogcHllcyxcblx0XHRleGlzdHNObzogcG5vLFxuXHRcdC8vIGEgbGlzdCBvZiBjYXRlZ29yaWVzIHdoaWNoIGNhbiBiZSByZW1vdmVkIGJ5IHJlbW92aW5nIGEgdGVtcGxhdGVcblx0XHQvLyBrZXk6IHRoZSBjYXRlZ29yeSB3aXRob3V0IG5hbWVzcGFjZVxuXHRcdC8vIHZhbHVlOiBBIHJlZ2V4cCBtYXRjaGluZyB0aGUgdGVtcGxhdGUgbmFtZSwgYWdhaW4gd2l0aG91dCBuYW1lc3BhY2Vcblx0XHQvLyBJZiB5b3UgZG9uJ3QgaGF2ZSB0aGlzIGF0IHlvdXIgd2lraSwgb3IgZG9uJ3Qgd2FudCB0aGlzLCBzZXQgaXQgdG8gYW4gZW1wdHkgb2JqZWN0IHt9LlxuXHRcdHRlbXBsYXRlX2NhdGVnb3JpZXM6IHt9LFxuXHRcdC8vIE92ZXJyaWRlIHRoZSBkZWNpc2lvbiBvZiB3aGV0aGVyIEhvdENhdCBzaG91bGQgaGVscCB1c2VycyBieSBhdXRvbWF0aWNhbGx5XG5cdFx0Ly8gY2FwaXRhbGlzaW5nIHRoZSB0aXRsZSBpbiB0aGUgdXNlciBpbnB1dCB0ZXh0IGlmIHRoZSB3aWtpIGhhcyBjYXNlLXNlbnNpdGl2ZSBwYWdlIG5hbWVzLlxuXHRcdC8vIEJhc2ljYWxseSwgdGhpcyB3aWxsIG1ha2UgYW4gQVBJIHF1ZXJ5IHRvIGNoZWNrIHRoZSBNZWRpYVdpa2kgY29uZmlndXJhdGlvbiBhbmQgSG90Q2F0IHRoZW4gc2V0c1xuXHRcdC8vIHRoaXMgdG8gdHJ1ZSBmb3IgbW9zdCB3aWtpcywgYW5kIHRvIGZhbHNlIG9uIFdpa3Rpb25hcnkuXG5cdFx0Ly9cblx0XHQvLyBZb3UgY2FuIHNldCB0aGlzIGRpcmVjdGx5IGlmIHRoZXJlIGlzIGEgcHJvYmxlbSB3aXRoIGl0LiBGb3IgZXhhbXBsZSwgR2VvcmdpYW4gV2lraXBlZGlhIChrYXdpa2kpLFxuXHRcdC8vIGlzIGtub3duIHRvIGhhdmUgZGlmZmVyZW50IGNhcGl0YWxpc2F0aW9uIGxvZ2ljIGJldHdlZW4gTWVkaWFXaWtpIFBIUCBhbmQgSmF2YVNjcmlwdC4gQXMgc3VjaCwgYXV0b21hdGljXG5cdFx0Ly8gY2FzZSBjaGFuZ2VzIGluIEphdmFTY3JpcHQgYnkgSG90Q2F0IHdvdWxkIGJlIHdyb25nLlxuXHRcdGNhcGl0YWxpemVQYWdlTmFtZXM6IG51bGwsXG5cdFx0Ly8gSWYgdXBsb2FkX2Rpc2FibGVkIGlzIHRydWUsIEhvdENhdCB3aWxsIG5vdCBiZSB1c2VkIG9uIHRoZSBVcGxvYWQgZm9ybS5cblx0XHR1cGxvYWRfZGlzYWJsZWQ6IGZhbHNlLFxuXHRcdC8vIFNpbmdsZSByZWd1bGFyIGV4cHJlc3Npb24gbWF0Y2hpbmcgYmxhY2tsaXN0ZWQgY2F0ZWdvcmllcyB0aGF0IGNhbm5vdCBiZSBjaGFuZ2VkIG9yXG5cdFx0Ly8gYWRkZWQgdXNpbmcgSG90Q2F0LiBGb3IgaW5zdGFuY2UgL1xcYnN0dWJzPyQvIChhbnkgY2F0ZWdvcnkgZW5kaW5nIHdpdGggdGhlIHdvcmQgXCJzdHViXCJcblx0XHQvLyBvciBcInN0dWJzXCIpLCBvciAvKFxcYnN0dWJzPyQpfFxcYm1haW50ZW5hbmNlXFxiLyAoc3R1YiBjYXRlZ29yaWVzIGFuZCBhbnkgY2F0ZWdvcnkgd2l0aCB0aGVcblx0XHQvLyB3b3JkIFwibWFpbnRlbmFuY2VcIiBpbiBpdHMgdGl0bGUuXG5cdFx0YmxhY2tsaXN0OiBudWxsLFxuXHRcdC8vIFN0dWZmIGNoYW5nZWFibGUgYnkgdXNlcnM6XG5cdFx0Ly8gQmFja2dyb3VuZCBmb3IgY2hhbmdlZCBjYXRlZ29yaWVzIGluIG11bHRpLWVkaXQgbW9kZS4gRGVmYXVsdCBpcyBhIHZlcnkgbGlnaHQgc2FsbW9uIHBpbmsuXG5cdFx0YmdfY2hhbmdlZDogJyNGQ0EnLFxuXHRcdC8vIElmIHRydWUsIEhvdENhdCB3aWxsIG5ldmVyIGF1dG9tYXRpY2FsbHkgc3VibWl0IGNoYW5nZXMuIEhvdENhdCB3aWxsIG9ubHkgb3BlbiBhbiBlZGl0IHBhZ2Ugd2l0aFxuXHRcdC8vIHRoZSBjaGFuZ2VzOyB1c2VycyBtdXN0IGFsd2F5cyBzYXZlIGV4cGxpY2l0bHkuXG5cdFx0bm9fYXV0b2NvbW1pdDogZmFsc2UsXG5cdFx0Ly8gSWYgdHJ1ZSwgdGhlIFwiY2F0ZWdvcnkgZGVsZXRpb25cIiBsaW5rIFwiKC0pXCIgd2lsbCBuZXZlciBzYXZlIGF1dG9tYXRpY2FsbHkgYnV0IGFsd2F5cyBzaG93IGFuXG5cdFx0Ly8gZWRpdCBwYWdlIHdoZXJlIHRoZSB1c2VyIGhhcyB0byBzYXZlIHRoZSBlZGl0IG1hbnVhbGx5LiBJcyBmYWxzZSBieSBkZWZhdWx0IGJlY2F1c2UgdGhhdCdzIHRoZVxuXHRcdC8vIHRyYWRpdGlvbmFsIGJlaGF2aW9yLiBUaGlzIHNldHRpbmcgb3ZlcnJpZGVzIG5vX2F1dG9jb21taXQgZm9yIFwiKC0pXCIgbGlua3MuXG5cdFx0ZGVsX25lZWRzX2RpZmY6IGZhbHNlLFxuXHRcdC8vIFRpbWUsIGluIG1pbGxpc2Vjb25kcywgdGhhdCBIb3RDYXQgd2FpdHMgYWZ0ZXIgYSBrZXlzdHJva2UgYmVmb3JlIG1ha2luZyBhIHJlcXVlc3QgdG8gdGhlXG5cdFx0Ly8gc2VydmVyIHRvIGdldCBzdWdnZXN0aW9ucy5cblx0XHRzdWdnZXN0X2RlbGF5OiAxMDAwLFxuXHRcdC8vIERlZmF1bHQgd2lkdGgsIGluIGNoYXJhY3RlcnMsIG9mIHRoZSB0ZXh0IGlucHV0IGZpZWxkLlxuXHRcdGVkaXRib3hfd2lkdGg6IDQwLFxuXHRcdC8vIE9uZSBvZiB0aGUgZW5naW5lX25hbWVzIGFib3ZlLCB0byBiZSB1c2VkIGFzIHRoZSBkZWZhdWx0IHN1Z2dlc3Rpb24gZW5naW5lLlxuXHRcdHN1Z2dlc3Rpb25zOiAnY29tYmluZWQnLFxuXHRcdC8vIElmIHRydWUsIGFsd2F5cyB1c2UgdGhlIGRlZmF1bHQgZW5naW5lLCBhbmQgbmV2ZXIgZGlzcGxheSBhIHNlbGVjdG9yLlxuXHRcdGZpeGVkX3NlYXJjaDogZmFsc2UsXG5cdFx0Ly8gSWYgZmFsc2UsIGRvIG5vdCBkaXNwbGF5IHRoZSBcInVwXCIgYW5kIFwiZG93blwiIGxpbmtzXG5cdFx0dXNlX3VwX2Rvd246IHRydWUsXG5cdFx0Ly8gRGVmYXVsdCBsaXN0IHNpemVcblx0XHRsaXN0U2l6ZTogMTAsXG5cdFx0Ly8gSWYgdHJ1ZSwgc2luZ2xlIGNhdGVnb3J5IGNoYW5nZXMgYXJlIG1hcmtlZCBhcyBtaW5vciBlZGl0cy4gSWYgZmFsc2UsIHRoZXkncmUgbm90LlxuXHRcdHNpbmdsZV9taW5vcjogdHJ1ZSxcblx0XHQvLyBJZiB0cnVlLCBuZXZlciBhZGQgYSBwYWdlIHRvIHRoZSB1c2VyJ3Mgd2F0Y2hsaXN0LiBJZiBmYWxzZSwgcGFnZXMgZ2V0IGFkZGVkIHRvIHRoZSB3YXRjaGxpc3QgaWZcblx0XHQvLyB0aGUgdXNlciBoYXMgdGhlIFwiQWRkIHBhZ2VzIEkgZWRpdCB0byBteSB3YXRjaGxpc3RcIiBvciB0aGUgXCJBZGQgcGFnZXMgSSBjcmVhdGUgdG8gbXkgd2F0Y2hsaXN0XCJcblx0XHQvLyBvcHRpb25zIGluIGhpcyBvciBoZXIgcHJlZmVyZW5jZXMgc2V0LlxuXHRcdGRvbnRfYWRkX3RvX3dhdGNobGlzdDogZmFsc2UsXG5cdFx0c2hvcnRjdXRzOiBudWxsLFxuXHRcdGFkZFNob3J0Y3V0czogKG1hcCkgPT4ge1xuXHRcdFx0aWYgKCFtYXApIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdFx0d2luZG93LkhvdENhdC5zaG9ydGN1dHMgfHw9IHt9O1xuXHRcdFx0Zm9yIChsZXQgayBpbiBtYXApIHtcblx0XHRcdFx0aWYgKCFPYmplY3QuaGFzT3duKG1hcCwgaykgfHwgdHlwZW9mIGsgIT09ICdzdHJpbmcnKSB7XG5cdFx0XHRcdFx0Y29udGludWU7XG5cdFx0XHRcdH1cblx0XHRcdFx0bGV0IHYgPSBtYXBba107XG5cdFx0XHRcdGlmICh0eXBlb2YgdiAhPT0gJ3N0cmluZycpIHtcblx0XHRcdFx0XHRjb250aW51ZTtcblx0XHRcdFx0fVxuXHRcdFx0XHRrID0gay50cmltKCk7XG5cdFx0XHRcdHYgPSB2LnRyaW0oKTtcblx0XHRcdFx0aWYgKGsubGVuZ3RoID09PSAwIHx8IHYubGVuZ3RoID09PSAwKSB7XG5cdFx0XHRcdFx0Y29udGludWU7XG5cdFx0XHRcdH1cblx0XHRcdFx0d2luZG93LkhvdENhdC5zaG9ydGN1dHNba10gPSB2O1xuXHRcdFx0fVxuXHRcdH0sXG5cdH07XG5cdGNvbnN0IEhDID0gd2luZG93LkhvdENhdDtcblx0Ly8gTW9yZSBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eS4gV2UgaGF2ZSBhIGZldyBwbGFjZXMgd2hlcmUgd2UgdGVzdCBmb3IgdGhlIGJyb3dzZXI6IG9uY2UgZm9yXG5cdC8vIFNhZmFyaSA8IDMuMCwgYW5kIHR3aWNlIGZvciBXZWJLaXQgKENocm9tZSBvciBTYWZhcmksIGFueSB2ZXJzaW9ucylcblx0Y29uc3QgdWEgPSBuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCk7XG5cdGNvbnN0IGlzX3dlYmtpdCA9IC9hcHBsZXdlYmtpdFxcL1xcZCsvLnRlc3QodWEpICYmICF1YS5pbmNsdWRlcygnc3Bvb2ZlcicpO1xuXHRsZXQgY2F0X3ByZWZpeCA9IG51bGw7XG5cdGxldCBub1N1Z2dlc3Rpb25zID0gZmFsc2U7XG5cdC8vIE5vIGZ1cnRoZXIgY2hhbmdlcyBzaG91bGQgYmUgbmVjZXNzYXJ5IGhlcmUuXG5cdC8vIFRoZSBmb2xsb3dpbmcgcmVndWxhciBleHByZXNzaW9uIHN0cmluZ3MgYXJlIHVzZWQgd2hlbiBzZWFyY2hpbmcgZm9yIGNhdGVnb3JpZXMgaW4gd2lraXRleHQuXG5cdGNvbnN0IHdpa2lUZXh0QmxhbmsgPSBTdHJpbmcucmF3YFtcXHQgX1xceEEwXFx1MTY4MFxcdTE4MEVcXHUyMDAwLVxcdTIwMEFcXHUyMDI4XFx1MjAyOVxcdTIwMkZcXHUyMDVGXFx1MzAwMF0rYDtcblx0Y29uc3Qgd2lraVRleHRCbGFua1JFID0gbmV3IFJlZ0V4cCh3aWtpVGV4dEJsYW5rLCAnZycpO1xuXHQvLyBSZWdleHAgZm9yIGhhbmRsaW5nIGJsYW5rcyBpbnNpZGUgYSBjYXRlZ29yeSB0aXRsZSBvciBuYW1lc3BhY2UgbmFtZS5cblx0Ly8gU2VlIHtAbGluayBodHRwOi8vc3ZuLndpa2ltZWRpYS5vcmcvdmlld3ZjL21lZGlhd2lraS90cnVuay9waGFzZTMvaW5jbHVkZXMvVGl0bGUucGhwP3JldmlzaW9uPTEwNDA1MSZ2aWV3PW1hcmt1cCNsMjcyMn1cblx0Ly8gU2VlIGFsc28ge0BsaW5rIGh0dHA6Ly93d3cuZmlsZWZvcm1hdC5pbmZvL2luZm8vdW5pY29kZS9jYXRlZ29yeS9acy9saXN0Lmh0bX1cblx0Ly8gICBNZWRpYVdpa2kgY29sbGFwc2VzIHNldmVyYWwgY29udGlndW91cyBibGFua3MgaW5zaWRlIGEgcGFnZSB0aXRsZSB0byBvbmUgc2luZ2xlIGJsYW5rLiBJdCBhbHNvIHJlcGxhY2UgYVxuXHQvLyBudW1iZXIgb2Ygc3BlY2lhbCB3aGl0ZXNwYWNlIGNoYXJhY3RlcnMgYnkgc2ltcGxlIGJsYW5rcy4gQW5kIGZpbmFsbHksIGJsYW5rcyBhcmUgdHJlYXRlZCBhcyB1bmRlcnNjb3Jlcy5cblx0Ly8gVGhlcmVmb3JlLCB3aGVuIGxvb2tpbmcgZm9yIHBhZ2UgdGl0bGVzIGluIHdpa2l0ZXh0LCB3ZSBtdXN0IGhhbmRsZSBhbGwgdGhlc2UgY2FzZXMuXG5cdC8vICAgTm90ZTogd2UgX2RvXyBpbmNsdWRlIHRoZSBob3Jpem9udGFsIHRhYiBpbiB0aGUgYWJvdmUgbGlzdCwgZXZlbiB0aG91Z2ggdGhlIE1lZGlhV2lraSBzb2Z0d2FyZSBmb3Igc29tZSByZWFzb25cblx0Ly8gYXBwZWFycyB0byBub3QgaGFuZGxlIGl0LiBUaGUgemVyby13aWR0aCBzcGFjZSBcXHUyMDBCIGlzIF9ub3RfIGhhbmRsZWQgYXMgYSBzcGFjZSBpbnNpZGUgdGl0bGVzIGJ5IE1XLlxuXHRjb25zdCB3aWtpVGV4dEJsYW5rT3JCaWRpID0gU3RyaW5nLnJhd2BbXFx0IF9cXHhBMFxcdTE2ODBcXHUxODBFXFx1MjAwMC1cXHUyMDBCXFx1MjAwRVxcdTIwMEZcXHUyMDI4LVxcdTIwMkZcXHUyMDVGXFx1MzAwMF0qYDtcblx0Ly8gV2hpdGVzcGFjZSByZWdleHAgZm9yIGhhbmRsaW5nIHdoaXRlc3BhY2UgYmV0d2VlbiBsaW5rIGNvbXBvbmVudHMuIEluY2x1ZGluZyB0aGUgaG9yaXpvbnRhbCB0YWIsIGJ1dCBub3QgXFxuXFxyXFxmXFx2OlxuXHQvLyBhIGxpbmsgbXVzdCBiZSBvbiBvbmUgc2luZ2xlIGxpbmUuXG5cdC8vICAgTWVkaWFXaWtpIGFsc28gcmVtb3ZlcyBVbmljb2RlIGJpZGkgb3ZlcnJpZGUgY2hhcmFjdGVycyBpbiBwYWdlIHRpdGxlcyAoYW5kIG5hbWVzcGFjZSBuYW1lcykgY29tcGxldGVseS5cblx0Ly8gVGhpcyBpcyAqbm90KiBoYW5kbGVkLCBhcyBpdCB3b3VsZCByZXF1aXJlIHVzIHRvIGFsbG93IGFueSBvZiBbXFx1MjAwRVxcdTIwMEZcXHUyMDJBLVxcdTIwMkVdIGJldHdlZW4gYW55IHR3b1xuXHQvLyBjaGFyYWN0ZXJzIGluc2lkZSBhIGNhdGVnb3J5IGxpbmsuIEl0IF9jb3VsZF8gYmUgZG9uZSB0aG91Z2guLi4gV2UgX2RvXyBoYW5kbGUgc3RyYW5nZSBzcGFjZXMsIGluY2x1ZGluZyB0aGVcblx0Ly8gemVyby13aWR0aCBzcGFjZSBcXHUyMDBCLCBhbmQgYmlkaSBvdmVycmlkZXMgYmV0d2VlbiB0aGUgY29tcG9uZW50cyBvZiBhIGNhdGVnb3J5IGxpbmsgKGFkamFjZW50IHRvIHRoZSBjb2xvbixcblx0Ly8gb3IgYWRqYWNlbnQgdG8gYW5kIGluc2lkZSBvZiBcIltbXCIgYW5kIFwiXV1cIikuXG5cdC8vIEZpcnN0IGF1dG8tbG9jYWxpemUgdGhlIHJlZ2V4cHMgZm9yIHRoZSBjYXRlZ29yeSBhbmQgdGhlIHRlbXBsYXRlIG5hbWVzcGFjZXMuXG5cdGNvbnN0IGZvcm1hdHRlZE5hbWVzcGFjZXMgPSBjb25mLndnRm9ybWF0dGVkTmFtZXNwYWNlcztcblx0Y29uc3QgbmFtZXNwYWNlSWRzID0gY29uZi53Z05hbWVzcGFjZUlkcztcblx0Y29uc3QgYXV0b0xvY2FsaXplID0gKG5hbWVzcGFjZU51bWJlciwgZmFsbGJhY2spID0+IHtcblx0XHRjb25zdCBjcmVhdGVSZWdleHBTdHIgPSAobmFtZSkgPT4ge1xuXHRcdFx0aWYgKCFuYW1lIHx8IG5hbWUubGVuZ3RoID09PSAwKSB7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblx0XHRcdGxldCByZWdleF9uYW1lID0gJyc7XG5cdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IG5hbWUubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0Y29uc3QgaW5pdGlhbCA9IG5hbWUuY2hhckF0KGkpO1xuXHRcdFx0XHRjb25zdCBsbCA9IGluaXRpYWwudG9Mb3dlckNhc2UoKTtcblx0XHRcdFx0Y29uc3QgdWwgPSBpbml0aWFsLnRvVXBwZXJDYXNlKCk7XG5cdFx0XHRcdHJlZ2V4X25hbWUgKz0gbGwgPT09IHVsID8gaW5pdGlhbCA6IGBbJHtsbH0ke3VsfV1gO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIHJlZ2V4X25hbWUucmVwbGFjZSgvKFskKCkqKy4/XFxcXF5dKS9nLCBTdHJpbmcucmF3YFxcJDFgKS5yZXBsYWNlKHdpa2lUZXh0QmxhbmtSRSwgd2lraVRleHRCbGFuayk7XG5cdFx0fTtcblx0XHRmYWxsYmFjayA9IGZhbGxiYWNrLnRvTG93ZXJDYXNlKCk7XG5cdFx0Y29uc3QgY2Fub25pY2FsID0gZm9ybWF0dGVkTmFtZXNwYWNlc1tTdHJpbmcobmFtZXNwYWNlTnVtYmVyKV0udG9Mb3dlckNhc2UoKTtcblx0XHRsZXQgcmVnZXhwID0gY3JlYXRlUmVnZXhwU3RyKGNhbm9uaWNhbCk7XG5cdFx0aWYgKGZhbGxiYWNrICYmIGNhbm9uaWNhbCAhPT0gZmFsbGJhY2spIHtcblx0XHRcdHJlZ2V4cCArPSBgfCR7Y3JlYXRlUmVnZXhwU3RyKGZhbGxiYWNrKX1gO1xuXHRcdH1cblx0XHRpZiAobmFtZXNwYWNlSWRzKSB7XG5cdFx0XHRmb3IgKGNvbnN0IGNhdF9uYW1lIGluIG5hbWVzcGFjZUlkcykge1xuXHRcdFx0XHRpZiAoXG5cdFx0XHRcdFx0dHlwZW9mIGNhdF9uYW1lID09PSAnc3RyaW5nJyAmJlxuXHRcdFx0XHRcdGNhdF9uYW1lLnRvTG93ZXJDYXNlKCkgIT09IGNhbm9uaWNhbCAmJlxuXHRcdFx0XHRcdGNhdF9uYW1lLnRvTG93ZXJDYXNlKCkgIT09IGZhbGxiYWNrICYmXG5cdFx0XHRcdFx0bmFtZXNwYWNlSWRzW2NhdF9uYW1lXSA9PT0gbmFtZXNwYWNlTnVtYmVyXG5cdFx0XHRcdCkge1xuXHRcdFx0XHRcdHJlZ2V4cCArPSBgfCR7Y3JlYXRlUmVnZXhwU3RyKGNhdF9uYW1lKX1gO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJldHVybiByZWdleHA7XG5cdH07XG5cdEhDLmNhdGVnb3J5X2Nhbm9uaWNhbCA9IGZvcm1hdHRlZE5hbWVzcGFjZXNbJzE0J107XG5cdEhDLmNhdGVnb3J5X3JlZ2V4cCA9IGF1dG9Mb2NhbGl6ZSgxNCwgJ2NhdGVnb3J5Jyk7XG5cdGlmIChmb3JtYXR0ZWROYW1lc3BhY2VzWycxMCddKSB7XG5cdFx0SEMudGVtcGxhdGVfcmVnZXhwID0gYXV0b0xvY2FsaXplKDEwLCAndGVtcGxhdGUnKTtcblx0fVxuXHQvLyBVdGlsaXR5IGZ1bmN0aW9ucy4gWWVzLCB0aGlzIGR1cGxpY2F0ZXMgc29tZSBmdW5jdGlvbmFsaXR5IHRoYXQgYWxzbyBleGlzdHMgaW4gb3RoZXIgcGxhY2VzLCBidXRcblx0Ly8gdG8ga2VlcCB0aGlzIHdob2xlIHN0dWZmIGluIGEgc2luZ2xlIGZpbGUgbm90IGRlcGVuZGluZyBvbiBhbnkgb3RoZXIgb24td2lraSBKYXZhU2NyaXB0cywgd2UgcmUtZG9cblx0Ly8gdGhlc2UgZmV3IG9wZXJhdGlvbnMgaGVyZS5cblx0Y29uc3QgbWFrZSA9IChhcmcsIGxpdGVyYWwpID0+IHtcblx0XHRpZiAoIWFyZykge1xuXHRcdFx0cmV0dXJuIG51bGw7XG5cdFx0fVxuXHRcdHJldHVybiBsaXRlcmFsID8gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoYXJnKSA6IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoYXJnKTtcblx0fTtcblx0Y29uc3QgcGFyYW0gPSAobmFtZSwgdXJpKSA9PiB7XG5cdFx0dXJpIHx8PSBkb2N1bWVudC5sb2NhdGlvbi5ocmVmO1xuXHRcdGNvbnN0IHJlID0gbmV3IFJlZ0V4cChgWyY/XSR7bmFtZX09KFteJiNdKilgKTtcblx0XHRjb25zdCBtID0gcmUuZXhlYyh1cmkpO1xuXHRcdGlmIChtICYmIG0ubGVuZ3RoID4gMSkge1xuXHRcdFx0cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChtWzFdKTtcblx0XHR9XG5cdFx0cmV0dXJuIG51bGw7XG5cdH07XG5cdGNvbnN0IHRpdGxlID0gKGhyZWYpID0+IHtcblx0XHRpZiAoIWhyZWYpIHtcblx0XHRcdHJldHVybiBudWxsO1xuXHRcdH1cblx0XHRjb25zdCBzY3JpcHQgPSBgJHtjb25mLndnU2NyaXB0fT9gO1xuXHRcdGlmIChcblx0XHRcdGhyZWYuaW5kZXhPZihzY3JpcHQpID09PSAwIHx8XG5cdFx0XHRocmVmLmluZGV4T2YoY29uZi53Z1NlcnZlciArIHNjcmlwdCkgPT09IDAgfHxcblx0XHRcdChjb25mLndnU2VydmVyLnNsaWNlKDAsIDIpID09PSAnLy8nICYmXG5cdFx0XHRcdGhyZWYuaW5kZXhPZihkb2N1bWVudC5sb2NhdGlvbi5wcm90b2NvbCArIGNvbmYud2dTZXJ2ZXIgKyBzY3JpcHQpID09PSAwKVxuXHRcdCkge1xuXHRcdFx0Ly8gaHJlZj1cIi9pbmRleC5waHA/dGl0bGU9Li4uXCJcblx0XHRcdHJldHVybiBwYXJhbSgndGl0bGUnLCBocmVmKTtcblx0XHR9XG5cdFx0Ly8gaHJlZj1cIi93aWtpLy4uLlwiXG5cdFx0bGV0IHByZWZpeCA9IGNvbmYud2dBcnRpY2xlUGF0aC5yZXBsYWNlKCckMScsICcnKTtcblx0XHRpZiAoaHJlZi5pbmRleE9mKHByZWZpeCkpIHtcblx0XHRcdHByZWZpeCA9IGNvbmYud2dTZXJ2ZXIgKyBwcmVmaXg7XG5cdFx0fSAvLyBGdWxseSBleHBhbmRlZCBVUkw/XG5cdFx0aWYgKGhyZWYuaW5kZXhPZihwcmVmaXgpICYmIHByZWZpeC5zbGljZSgwLCAyKSA9PT0gJy8vJykge1xuXHRcdFx0cHJlZml4ID0gZG9jdW1lbnQubG9jYXRpb24ucHJvdG9jb2wgKyBwcmVmaXg7XG5cdFx0fSAvLyBQcm90b2NvbC1yZWxhdGl2ZSB3Z1NlcnZlcj9cblx0XHRpZiAoaHJlZi5pbmRleE9mKHByZWZpeCkgPT09IDApIHtcblx0XHRcdHJldHVybiBkZWNvZGVVUklDb21wb25lbnQoaHJlZi5zbGljZShwcmVmaXgubGVuZ3RoKSk7XG5cdFx0fVxuXHRcdHJldHVybiBudWxsO1xuXHR9O1xuXHRjb25zdCBoYXNDbGFzcyA9ICh7Y2xhc3NOYW1lfSwgbmFtZSkgPT4ge1xuXHRcdHJldHVybiBgICR7Y2xhc3NOYW1lfSBgLmluY2x1ZGVzKGAgJHtuYW1lfSBgKTtcblx0fTtcblx0Y29uc3QgY2FwaXRhbGl6ZSA9IChzdHIpID0+IHtcblx0XHRpZiAoIXN0ciB8fCBzdHIubGVuZ3RoID09PSAwKSB7XG5cdFx0XHRyZXR1cm4gc3RyO1xuXHRcdH1cblx0XHRyZXR1cm4gc3RyLnNsaWNlKDAsIDEpLnRvVXBwZXJDYXNlKCkgKyBzdHIuc2xpY2UoMSk7XG5cdH07XG5cdGNvbnN0IHdpa2lQYWdlUGF0aCA9IChwYWdlTmFtZSkgPT4ge1xuXHRcdHJldHVybiBjb25mLndnQXJ0aWNsZVBhdGgucmVwbGFjZSgnJDEnLCBlbmNvZGVVUklDb21wb25lbnQocGFnZU5hbWUpLnJlcGxhY2UoLyUzQS9nLCAnOicpLnJlcGxhY2UoLyUyRi9nLCAnLycpKTtcblx0fTtcblx0Y29uc3QgZXNjYXBlUkUgPSAoc3RyKSA9PiB7XG5cdFx0cmV0dXJuIHN0ci5yZXBsYWNlKC8oWyQoKSorLj9bXFxcXFxcXV5dKS9nLCBTdHJpbmcucmF3YFxcJDFgKTtcblx0fTtcblx0Y29uc3Qgc3Vic3RpdHV0ZUZhY3RvcnkgPSAob3B0aW9ucykgPT4ge1xuXHRcdG9wdGlvbnMgfHw9IHt9O1xuXHRcdGNvbnN0IGxlYWQgPSBvcHRpb25zLmluZGljYXRvciB8fCAnJCc7XG5cdFx0Y29uc3QgaW5kaWNhdG9yID0gZXNjYXBlUkUobGVhZCk7XG5cdFx0Y29uc3QgbGJyYWNlID0gZXNjYXBlUkUob3B0aW9ucy5sYnJhY2UgfHwgJ3snKTtcblx0XHRjb25zdCByYnJhY2UgPSBlc2NhcGVSRShvcHRpb25zLnJicmFjZSB8fCAnfScpO1xuXHRcdGNvbnN0IHJlID0gbmV3IFJlZ0V4cChcblx0XHRcdC8vICQkXG5cdFx0XHRgKD86JHtpbmRpY2F0b3J9KCR7aW5kaWNhdG9yfSkpfGAgK1xuXHRcdFx0XHQvLyAkMCwgJDFcblx0XHRcdFx0YCg/OiR7aW5kaWNhdG9yfShcXFxcZCspKXxgICtcblx0XHRcdFx0Ly8gJHtrZXl9XG5cdFx0XHRcdGAoPzoke2luZGljYXRvcn0oPzoke2xicmFjZX0oW14ke2xicmFjZX0ke3JicmFjZX1dKykke3JicmFjZX0pKXxgICtcblx0XHRcdFx0Ly8gJGtleSAob25seSBpZiBmaXJzdCBjaGFyIGFmdGVyICQgaXMgbm90ICQsIGRpZ2l0LCBvciB7IClcblx0XHRcdFx0YCg/OiR7aW5kaWNhdG9yfSg/ISg/Olske2luZGljYXRvcn0ke2xicmFjZX1dfFxcXFxkKSkoXFxcXFMrPylcXFxcYilgLFxuXHRcdFx0J2cnXG5cdFx0KTtcblx0XHQvLyBSZXBsYWNlICQxLCAkMiwgb3IgJHtrZXkxfSwgJHtrZXkyfSwgb3IgJGtleTEsICRrZXkyIGJ5IHZhbHVlcyBmcm9tIG1hcC4gJCQgaXMgcmVwbGFjZWQgYnkgYSBzaW5nbGUgJC5cblx0XHRyZXR1cm4gKHN0ciwgbWFwKSA9PiB7XG5cdFx0XHRpZiAoIW1hcCkge1xuXHRcdFx0XHRyZXR1cm4gc3RyO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIHN0ci5yZXBsYWNlKHJlLCAobWF0Y2gsIHByZWZpeCwgaWR4LCBrZXksIGFscGhhKSA9PiB7XG5cdFx0XHRcdGlmIChwcmVmaXggPT09IGxlYWQpIHtcblx0XHRcdFx0XHRyZXR1cm4gbGVhZDtcblx0XHRcdFx0fVxuXHRcdFx0XHRjb25zdCBrID0gYWxwaGEgfHwga2V5IHx8IGlkeDtcblx0XHRcdFx0Y29uc3QgcmVwbGFjZW1lbnQgPSB0eXBlb2YgbWFwW2tdID09PSAnZnVuY3Rpb24nID8gbWFwW2tdKG1hdGNoLCBrKSA6IG1hcFtrXTtcblx0XHRcdFx0cmV0dXJuIHR5cGVvZiByZXBsYWNlbWVudCA9PT0gJ3N0cmluZycgPyByZXBsYWNlbWVudCA6IHJlcGxhY2VtZW50IHx8IG1hdGNoO1xuXHRcdFx0fSk7XG5cdFx0fTtcblx0fTtcblx0Y29uc3QgcmVwbGFjZVNob3J0Y3V0cyA9ICgoKSA9PiB7XG5cdFx0Y29uc3QgcmVwbGFjZUhhc2ggPSBzdWJzdGl0dXRlRmFjdG9yeSh7XG5cdFx0XHRpbmRpY2F0b3I6ICcjJyxcblx0XHRcdGxicmFjZTogJ1snLFxuXHRcdFx0cmJyYWNlOiAnXScsXG5cdFx0fSk7XG5cdFx0cmV0dXJuIChzdHIsIG1hcCkgPT4ge1xuXHRcdFx0Y29uc3QgcyA9IHJlcGxhY2VIYXNoKHN0ciwgbWFwKTtcblx0XHRcdHJldHVybiBIQy5jYXBpdGFsaXplUGFnZU5hbWVzID8gY2FwaXRhbGl6ZShzKSA6IHM7XG5cdFx0fTtcblx0fSkoKTtcblx0Ly8gVGV4dCBtb2RpZmljYXRpb25cblx0Y29uc3QgZmluZENhdHNSRSA9IG5ldyBSZWdFeHAoXG5cdFx0YFxcXFxbXFxcXFske3dpa2lUZXh0QmxhbmtPckJpZGl9KD86JHtIQy5jYXRlZ29yeV9yZWdleHB9KSR7d2lraVRleHRCbGFua09yQmlkaX06W15cXFxcXV0rXFxcXF1cXFxcXWAsXG5cdFx0J2cnXG5cdCk7XG5cdGNvbnN0IHJlcGxhY2VCeUJsYW5rcyA9IChtYXRjaCkgPT4ge1xuXHRcdHJldHVybiBtYXRjaC5yZXBsYWNlKC8oXFxzfFxcUykvZywgJyAnKTtcblx0fTsgLy8gLy4vIGRvZXNuJ3QgbWF0Y2ggbGluZWJyZWFrcy4gLyhcXHN8XFxTKS8gZG9lcy5cblx0Y29uc3QgZmluZF9jYXRlZ29yeSA9ICh3aWtpdGV4dCwgY2F0ZWdvcnksIG9uY2UpID0+IHtcblx0XHRsZXQgY2F0X3JlZ2V4ID0gbnVsbDtcblx0XHRpZiAoSEMudGVtcGxhdGVfY2F0ZWdvcmllc1tjYXRlZ29yeV0pIHtcblx0XHRcdGNhdF9yZWdleCA9IG5ldyBSZWdFeHAoXG5cdFx0XHRcdGBcXFxce1xcXFx7JHt3aWtpVGV4dEJsYW5rT3JCaWRpfSgke0hDLnRlbXBsYXRlX3JlZ2V4cH0oPz0ke3dpa2lUZXh0QmxhbmtPckJpZGl9OikpPyR7d2lraVRleHRCbGFua09yQmlkaX0oPzoke0hDLnRlbXBsYXRlX2NhdGVnb3JpZXNbY2F0ZWdvcnldfSkke3dpa2lUZXh0QmxhbmtPckJpZGl9KFxcXFx8Lio/KT9cXFxcfVxcXFx9YCxcblx0XHRcdFx0J2cnXG5cdFx0XHQpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRjb25zdCBjYXRfbmFtZSA9IGVzY2FwZVJFKGNhdGVnb3J5KTtcblx0XHRcdGNvbnN0IGluaXRpYWwgPSBjYXRfbmFtZS5zbGljZSgwLCAxKTtcblx0XHRcdGNhdF9yZWdleCA9IG5ldyBSZWdFeHAoXG5cdFx0XHRcdGBcXFxcW1xcXFxbJHt3aWtpVGV4dEJsYW5rT3JCaWRpfSgke0hDLmNhdGVnb3J5X3JlZ2V4cH0pJHt3aWtpVGV4dEJsYW5rT3JCaWRpfToke3dpa2lUZXh0QmxhbmtPckJpZGl9JHtcblx0XHRcdFx0XHRpbml0aWFsID09PSAnXFxcXCcgfHwgIUhDLmNhcGl0YWxpemVQYWdlTmFtZXNcblx0XHRcdFx0XHRcdD8gaW5pdGlhbFxuXHRcdFx0XHRcdFx0OiBgWyR7aW5pdGlhbC50b1VwcGVyQ2FzZSgpfSR7aW5pdGlhbC50b0xvd2VyQ2FzZSgpfV1gXG5cdFx0XHRcdH0ke2NhdF9uYW1lLnNsaWNlKDEpLnJlcGxhY2Uod2lraVRleHRCbGFua1JFLCB3aWtpVGV4dEJsYW5rKX0ke3dpa2lUZXh0QmxhbmtPckJpZGl9KFxcXFx8Lio/KT9cXFxcXVxcXFxdYCxcblx0XHRcdFx0J2cnXG5cdFx0XHQpO1xuXHRcdH1cblx0XHRpZiAob25jZSkge1xuXHRcdFx0cmV0dXJuIGNhdF9yZWdleC5leGVjKHdpa2l0ZXh0KTtcblx0XHR9XG5cdFx0Y29uc3Qgbm93aWtpUmVnZXggPSBuZXcgUmVnRXhwKCc8bm8nLmNvbmNhdCgnd2lraT4nLCBTdHJpbmcucmF3YChcXHN8XFxTKSo/PC9ub2AsICd3aWtpJywgJz4nKSwgJ2cnKTtcblx0XHRjb25zdCBjb3BpZWR0ZXh0ID0gd2lraXRleHQucmVwbGFjZSgvPCEtLShcXHN8XFxTKSo/LS0+L2csIHJlcGxhY2VCeUJsYW5rcykucmVwbGFjZShub3dpa2lSZWdleCwgcmVwbGFjZUJ5QmxhbmtzKTtcblx0XHRjb25zdCByZXN1bHQgPSBbXTtcblx0XHRsZXQgY3Vycl9tYXRjaCA9IG51bGw7XG5cdFx0d2hpbGUgKChjdXJyX21hdGNoID0gY2F0X3JlZ2V4LmV4ZWMoY29waWVkdGV4dCkpICE9PSBudWxsKSB7XG5cdFx0XHRyZXN1bHRbcmVzdWx0Lmxlbmd0aF0gPSB7XG5cdFx0XHRcdG1hdGNoOiBjdXJyX21hdGNoLFxuXHRcdFx0fTtcblx0XHR9XG5cdFx0cmVzdWx0LnJlID0gY2F0X3JlZ2V4O1xuXHRcdHJldHVybiByZXN1bHQ7IC8vIEFuIGFycmF5IGNvbnRhaW5pbmcgYWxsIG1hdGNoZXMsIHdpdGggcG9zaXRpb25zLCBpbiByZXN1bHRbIGkgXS5tYXRjaFxuXHR9O1xuXHRsZXQgaW50ZXJsYW5ndWFnZVJFID0gbnVsbDtcblx0Y29uc3QgY2hhbmdlX2NhdGVnb3J5ID0gKHdpa2l0ZXh0LCB0b1JlbW92ZSwgdG9BZGQsIGtleSwgaXNfaGlkZGVuKSA9PiB7XG5cdFx0Y29uc3QgZmluZF9pbnNlcnRpb25wb2ludCA9IChfd2lraXRleHQpID0+IHtcblx0XHRcdGNvbnN0IG5vd2lraVJlZ2V4ID0gbmV3IFJlZ0V4cCgnPG5vJy5jb25jYXQoJ3dpa2k+JywgU3RyaW5nLnJhd2AoXFxzfFxcUykqPzwvbm9gLCAnd2lraScsICc+JyksICdnJyk7XG5cdFx0XHRjb25zdCBjb3BpZWR0ZXh0ID0gX3dpa2l0ZXh0XG5cdFx0XHRcdC5yZXBsYWNlKC88IS0tKFxcc3xcXFMpKj8tLT4vZywgcmVwbGFjZUJ5QmxhbmtzKVxuXHRcdFx0XHQucmVwbGFjZShub3dpa2lSZWdleCwgcmVwbGFjZUJ5QmxhbmtzKTtcblx0XHRcdC8vIFNlYXJjaCBpbiBjb3BpZWR0ZXh0IHRvIGF2b2lkIHRoYXQgd2UgaW5zZXJ0IGluc2lkZSBhbiBIVE1MIGNvbW1lbnQgb3IgYSBub3dpa2kgXCJlbGVtZW50XCIuXG5cdFx0XHRsZXQgaW5kZXggPSAtMTtcblx0XHRcdGZpbmRDYXRzUkUubGFzdEluZGV4ID0gMDtcblx0XHRcdHdoaWxlIChmaW5kQ2F0c1JFLmV4ZWMoY29waWVkdGV4dCkgIT09IG51bGwpIHtcblx0XHRcdFx0aW5kZXggPSBmaW5kQ2F0c1JFLmxhc3RJbmRleDtcblx0XHRcdH1cblx0XHRcdGlmIChpbmRleCA8IDApIHtcblx0XHRcdFx0Ly8gRmluZCB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IGludGVybGFuZ3VhZ2UgbGluay4uLlxuXHRcdFx0XHRsZXQgbWF0Y2ggPSBudWxsO1xuXHRcdFx0XHRpZiAoaW50ZXJsYW5ndWFnZVJFKSB7XG5cdFx0XHRcdFx0bWF0Y2ggPSBpbnRlcmxhbmd1YWdlUkUuZXhlYyhjb3BpZWR0ZXh0KTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHQvLyBBcHByb3hpbWF0aW9uIHdpdGhvdXQgQVBJOiBpbnRlcmxhbmd1YWdlIGxpbmtzIHN0YXJ0IHdpdGggMiB0byAzIGxvd2VyIGNhc2UgbGV0dGVycywgb3B0aW9uYWxseSBmb2xsb3dlZCBieVxuXHRcdFx0XHRcdC8vIGEgc2VxdWVuY2Ugb2YgZ3JvdXBzIGNvbnNpc3Rpbmcgb2YgYSBkYXNoIGZvbGxvd2VkIGJ5IG9uZSBvciBtb3JlIGxvd2VyIGNhc2UgbGV0dGVycy4gRXhjZXB0aW9ucyBhcmUgXCJzaW1wbGVcIlxuXHRcdFx0XHRcdC8vIGFuZCBcInRva2lwb25hXCIuXG5cdFx0XHRcdFx0bWF0Y2ggPSAvKChefFxcblxccj8pKFxcW1xcW1xccyooKFthLXpdezIsM30oLVthLXpdKykqKXxzaW1wbGV8dG9raXBvbmEpXFxzKjpbXlxcXV0rXV1cXHMqKSkrJC8uZXhlYyhcblx0XHRcdFx0XHRcdGNvcGllZHRleHRcblx0XHRcdFx0XHQpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmIChtYXRjaCkge1xuXHRcdFx0XHRcdCh7aW5kZXh9ID0gbWF0Y2gpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiB7XG5cdFx0XHRcdFx0aWR4OiBpbmRleCxcblx0XHRcdFx0XHRvbkNhdDogZmFsc2UsXG5cdFx0XHRcdH07XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRpZHg6IGluZGV4LFxuXHRcdFx0XHRvbkNhdDogaW5kZXggPj0gMCxcblx0XHRcdH07XG5cdFx0fTtcblx0XHRjb25zdCBzdW1tYXJ5ID0gW107XG5cdFx0Y29uc3QgbmFtZVNwYWNlID0gSEMuY2F0ZWdvcnlfY2Fub25pY2FsO1xuXHRcdGNvbnN0IC8vIFBvc2l0aW9uIG9mIHJlbW92ZWQgY2F0ZWdvcnk7XG5cdFx0XHRrZXlDaGFuZ2UgPSB0b1JlbW92ZSAmJiB0b0FkZCAmJiB0b1JlbW92ZSA9PT0gdG9BZGQgJiYgdG9BZGQubGVuZ3RoID4gMDtcblx0XHRsZXQgbWF0Y2hlcztcblx0XHRsZXQgY2F0X3BvaW50ID0gLTE7XG5cdFx0a2V5ICYmPSBgfCR7a2V5fWA7XG5cdFx0Ly8gUmVtb3ZlXG5cdFx0aWYgKHRvUmVtb3ZlICYmIHRvUmVtb3ZlLmxlbmd0aCA+IDApIHtcblx0XHRcdG1hdGNoZXMgPSBmaW5kX2NhdGVnb3J5KHdpa2l0ZXh0LCB0b1JlbW92ZSk7XG5cdFx0XHRpZiAoIW1hdGNoZXMgfHwgbWF0Y2hlcy5sZW5ndGggPT09IDApIHtcblx0XHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0XHR0ZXh0OiB3aWtpdGV4dCxcblx0XHRcdFx0XHRzdW1tYXJ5LFxuXHRcdFx0XHRcdGVycm9yOiBnZXRNZXNzYWdlKCdtZXNzYWdlcy1jYXRfbm90Rm91bmQnLCB0b1JlbW92ZSksXG5cdFx0XHRcdH07XG5cdFx0XHR9XG5cdFx0XHRsZXQgYmVmb3JlID0gd2lraXRleHQuc2xpY2UoMCwgTWF0aC5tYXgoMCwgbWF0Y2hlc1swXS5tYXRjaC5pbmRleCkpO1xuXHRcdFx0bGV0IGFmdGVyID0gd2lraXRleHQuc2xpY2UoTWF0aC5tYXgoMCwgbWF0Y2hlc1swXS5tYXRjaC5pbmRleCArIG1hdGNoZXNbMF0ubWF0Y2hbMF0ubGVuZ3RoKSk7XG5cdFx0XHRpZiAobWF0Y2hlcy5sZW5ndGggPiAxKSB7XG5cdFx0XHRcdC8vIFJlbW92ZSBhbGwgb2NjdXJyZW5jZXMgaW4gYWZ0ZXJcblx0XHRcdFx0bWF0Y2hlcy5yZS5sYXN0SW5kZXggPSAwO1xuXHRcdFx0XHRhZnRlciA9IGFmdGVyLnJlcGxhY2UobWF0Y2hlcy5yZSwgJycpO1xuXHRcdFx0fVxuXHRcdFx0aWYgKFxuXHRcdFx0XHR0b0FkZCAmJiAvLyBuYW1lU3BhY2UgPSBtYXRjaGVzWyAwIF0ubWF0Y2hbIDEgXSB8fCBuYW1lU3BhY2U7IENhbm9uaWNhbCBuYW1lc3BhY2Ugc2hvdWxkIGJlIGFsd2F5cyBwcmVmZXJyZWRcblx0XHRcdFx0a2V5ID09PSBudWxsXG5cdFx0XHQpIHtcblx0XHRcdFx0WywgLCBrZXldID0gbWF0Y2hlc1swXS5tYXRjaDtcblx0XHRcdH1cblx0XHRcdC8vIFJlbWVtYmVyIHRoZSBjYXRlZ29yeSBrZXksIGlmIGFueS5cblx0XHRcdC8vIFJlbW92ZSB3aGl0ZXNwYWNlIChwcm9wZXJseSk6IHN0cmlwIHdoaXRlc3BhY2UsIGJ1dCBvbmx5IHVwIHRvIHRoZSBuZXh0IGxpbmUgZmVlZC5cblx0XHRcdC8vIElmIHdlIHRoZW4gaGF2ZSB0d28gbGluZWZlZWRzIGluIGEgcm93LCByZW1vdmUgb25lLiBPdGhlcndpc2UsIGlmIHdlIGhhdmUgdHdvIG5vbi1cblx0XHRcdC8vIHdoaXRlc3BhY2UgY2hhcmFjdGVycywgaW5zZXJ0IGEgYmxhbmsuXG5cdFx0XHRsZXQgaSA9IGJlZm9yZS5sZW5ndGggLSAxO1xuXHRcdFx0d2hpbGUgKGkgPj0gMCAmJiBiZWZvcmUuY2hhckF0KGkpICE9PSAnXFxuJyAmJiBiZWZvcmUuc2xpY2UoaSwgaSArIDEpLnNlYXJjaCgvXFxzLykgPj0gMCkge1xuXHRcdFx0XHRpLS07XG5cdFx0XHR9XG5cdFx0XHRsZXQgaiA9IDA7XG5cdFx0XHR3aGlsZSAoaiA8IGFmdGVyLmxlbmd0aCAmJiBhZnRlci5jaGFyQXQoaikgIT09ICdcXG4nICYmIGFmdGVyLnNsaWNlKGosIGogKyAxKS5zZWFyY2goL1xccy8pID49IDApIHtcblx0XHRcdFx0aisrO1xuXHRcdFx0fVxuXHRcdFx0aWYgKFxuXHRcdFx0XHRpID49IDAgJiZcblx0XHRcdFx0YmVmb3JlLmNoYXJBdChpKSA9PT0gJ1xcbicgJiZcblx0XHRcdFx0KGFmdGVyLmxlbmd0aCA9PT0gMCB8fCAoaiA8IGFmdGVyLmxlbmd0aCAmJiBhZnRlci5jaGFyQXQoaikgPT09ICdcXG4nKSlcblx0XHRcdCkge1xuXHRcdFx0XHRpLS07XG5cdFx0XHR9XG5cdFx0XHRiZWZvcmUgPSBpID49IDAgPyBiZWZvcmUuc2xpY2UoMCwgTWF0aC5tYXgoMCwgaSArIDEpKSA6ICcnO1xuXHRcdFx0YWZ0ZXIgPSBqIDwgYWZ0ZXIubGVuZ3RoID8gYWZ0ZXIuc2xpY2UoTWF0aC5tYXgoMCwgaikpIDogJyc7XG5cdFx0XHRpZiAoXG5cdFx0XHRcdGJlZm9yZS5sZW5ndGggPiAwICYmXG5cdFx0XHRcdGJlZm9yZS5zbGljZShNYXRoLm1heCgwLCBiZWZvcmUubGVuZ3RoIC0gMSkpLnNlYXJjaCgvXFxTLykgPj0gMCAmJlxuXHRcdFx0XHRhZnRlci5sZW5ndGggPiAwICYmXG5cdFx0XHRcdGFmdGVyLnNsaWNlKDAsIDEpLnNlYXJjaCgvXFxTLykgPj0gMFxuXHRcdFx0KSB7XG5cdFx0XHRcdGJlZm9yZSArPSAnICc7XG5cdFx0XHR9XG5cdFx0XHRjYXRfcG9pbnQgPSBiZWZvcmUubGVuZ3RoO1xuXHRcdFx0aWYgKGNhdF9wb2ludCA9PT0gMCAmJiBhZnRlci5sZW5ndGggPiAwICYmIGFmdGVyLnNsaWNlKDAsIDEpID09PSAnXFxuJykge1xuXHRcdFx0XHRhZnRlciA9IGFmdGVyLnNsaWNlKDEpO1xuXHRcdFx0fVxuXHRcdFx0d2lraXRleHQgPSBiZWZvcmUgKyBhZnRlcjtcblx0XHRcdGlmICgha2V5Q2hhbmdlKSB7XG5cdFx0XHRcdGlmIChIQy50ZW1wbGF0ZV9jYXRlZ29yaWVzW3RvUmVtb3ZlXSkge1xuXHRcdFx0XHRcdHN1bW1hcnlbc3VtbWFyeS5sZW5ndGhdID0gZ2V0TWVzc2FnZSgnbWVzc2FnZXMtdGVtcGxhdGVfcmVtb3ZlZCcsIHRvUmVtb3ZlKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRzdW1tYXJ5W3N1bW1hcnkubGVuZ3RoXSA9IGdldE1lc3NhZ2UoJ21lc3NhZ2VzLWNhdF9yZW1vdmVkJywgdG9SZW1vdmUpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHRcdC8vIEFkZFxuXHRcdGlmICh0b0FkZCAmJiB0b0FkZC5sZW5ndGggPiAwKSB7XG5cdFx0XHRtYXRjaGVzID0gZmluZF9jYXRlZ29yeSh3aWtpdGV4dCwgdG9BZGQpO1xuXHRcdFx0aWYgKG1hdGNoZXMgJiYgbWF0Y2hlcy5sZW5ndGggPiAwKSB7XG5cdFx0XHRcdC8vIEFscmVhZHkgZXhpc3RzXG5cdFx0XHRcdHJldHVybiB7XG5cdFx0XHRcdFx0dGV4dDogd2lraXRleHQsXG5cdFx0XHRcdFx0c3VtbWFyeSxcblx0XHRcdFx0XHRlcnJvcjogZ2V0TWVzc2FnZSgnbWVzc2FnZXMtY2F0X2V4aXN0cycsIHRvQWRkKSxcblx0XHRcdFx0fTtcblx0XHRcdH1cblx0XHRcdGxldCBvbkNhdCA9IGZhbHNlO1xuXHRcdFx0aWYgKGNhdF9wb2ludCA8IDApIHtcblx0XHRcdFx0Y29uc3QgcG9pbnQgPSBmaW5kX2luc2VydGlvbnBvaW50KHdpa2l0ZXh0KTtcblx0XHRcdFx0Y2F0X3BvaW50ID0gcG9pbnQuaWR4O1xuXHRcdFx0XHQoe29uQ2F0fSA9IHBvaW50KTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdG9uQ2F0ID0gdHJ1ZTtcblx0XHRcdH1cblx0XHRcdGNvbnN0IG5ld2NhdHN0cmluZyA9IGBbWyR7bmFtZVNwYWNlfToke3RvQWRkfSR7a2V5IHx8ICcnfV1dYDtcblx0XHRcdGlmIChjYXRfcG9pbnQgPj0gMCkge1xuXHRcdFx0XHRjb25zdCBzdWZmaXggPSB3aWtpdGV4dC5zbGljZShNYXRoLm1heCgwLCBjYXRfcG9pbnQpKTtcblx0XHRcdFx0d2lraXRleHQgPVxuXHRcdFx0XHRcdHdpa2l0ZXh0LnNsaWNlKDAsIE1hdGgubWF4KDAsIGNhdF9wb2ludCkpICtcblx0XHRcdFx0XHQoY2F0X3BvaW50ID4gMCA/ICdcXG4nIDogJycpICtcblx0XHRcdFx0XHRuZXdjYXRzdHJpbmcgK1xuXHRcdFx0XHRcdChvbkNhdCA/ICcnIDogJ1xcbicpO1xuXHRcdFx0XHR3aWtpdGV4dCArPSBzdWZmaXgubGVuZ3RoID4gMCAmJiBzdWZmaXguc2xpY2UoMCwgMSkgIT09ICdcXG4nID8gYFxcbiR7c3VmZml4fWAgOiBzdWZmaXg7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRpZiAod2lraXRleHQubGVuZ3RoID4gMCAmJiB3aWtpdGV4dC5zbGljZSgtMSwgd2lraXRleHQubGVuZ3RoIC0gMSArIDEpICE9PSAnXFxuJykge1xuXHRcdFx0XHRcdHdpa2l0ZXh0ICs9ICdcXG4nO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHdpa2l0ZXh0ICs9ICh3aWtpdGV4dC5sZW5ndGggPiAwID8gJ1xcbicgOiAnJykgKyBuZXdjYXRzdHJpbmc7XG5cdFx0XHR9XG5cdFx0XHRpZiAoa2V5Q2hhbmdlKSB7XG5cdFx0XHRcdGxldCBrID0ga2V5IHx8ICcnO1xuXHRcdFx0XHRpZiAoay5sZW5ndGggPiAwKSB7XG5cdFx0XHRcdFx0ayA9IGsuc2xpY2UoMSk7XG5cdFx0XHRcdH1cblx0XHRcdFx0c3VtbWFyeVtzdW1tYXJ5Lmxlbmd0aF0gPSBnZXRNZXNzYWdlKCdtZXNzYWdlcy1jYXRfa2V5Y2hhbmdlJywgdG9BZGQsIGspO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0c3VtbWFyeVtzdW1tYXJ5Lmxlbmd0aF0gPSBnZXRNZXNzYWdlKCdtZXNzYWdlcy1jYXRfYWRkZWQnLCB0b0FkZCk7XG5cdFx0XHR9XG5cdFx0XHRpZiAoSEMudW5jYXRfcmVnZXhwICYmICFpc19oaWRkZW4pIHtcblx0XHRcdFx0Y29uc3QgdHh0ID0gd2lraXRleHQucmVwbGFjZShIQy51bmNhdF9yZWdleHAsICcnKTsgLy8gUmVtb3ZlIFwidW5jYXRcIiB0ZW1wbGF0ZXNcblx0XHRcdFx0aWYgKHR4dC5sZW5ndGggIT09IHdpa2l0ZXh0Lmxlbmd0aCkge1xuXHRcdFx0XHRcdHdpa2l0ZXh0ID0gdHh0O1xuXHRcdFx0XHRcdHN1bW1hcnlbc3VtbWFyeS5sZW5ndGhdID0gZ2V0TWVzc2FnZSgnbWVzc2FnZXMtdW5jYXRfcmVtb3ZlZCcpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHR0ZXh0OiB3aWtpdGV4dCxcblx0XHRcdHN1bW1hcnksXG5cdFx0XHRlcnJvcjogbnVsbCxcblx0XHR9O1xuXHR9O1xuXHQvLyBUaGUgcmVhbCBIb3RDYXQgVUlcblx0Y29uc3QgZXZ0S2V5cyA9ICh7Y3RybEtleSwgbWV0YUtleSwgc2hpZnRLZXl9KSA9PiB7XG5cdFx0bGV0IGNvZGUgPSAwO1xuXHRcdGlmIChjdHJsS2V5KSB7XG5cdFx0XHQvLyBBbGwgbW9kZXJuIGJyb3dzZXJzXG5cdFx0XHQvLyBDdHJsLWNsaWNrIHNlZW1zIHRvIGJlIG92ZXJsb2FkZWQgaW4gRkYvTWFjIChpdCBvcGVucyBhIHBvcC11cCBtZW51KSwgc28gdHJlYXQgY21kLWNsaWNrXG5cdFx0XHQvLyBhcyBhIGN0cmwtY2xpY2ssIHRvby5cblx0XHRcdGlmIChjdHJsS2V5IHx8IG1ldGFLZXkpIHtcblx0XHRcdFx0Y29kZSB8fD0gMTtcblx0XHRcdH1cblx0XHRcdGlmIChzaGlmdEtleSkge1xuXHRcdFx0XHRjb2RlIHx8PSAyO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRyZXR1cm4gY29kZTtcblx0fTtcblx0Y29uc3QgZXZ0S2lsbCA9IChlKSA9PiB7XG5cdFx0aWYgKGUucHJldmVudERlZmF1bHQpIHtcblx0XHRcdGUucHJldmVudERlZmF1bHQoKTtcblx0XHRcdGUuc3RvcFByb3BhZ2F0aW9uKCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGUuY2FuY2VsQnViYmxlID0gdHJ1ZTtcblx0XHR9XG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9O1xuXHRsZXQgY2F0TGluZSA9IG51bGw7IC8vIHRydWUgaWYgTWVkaWFXaWtpIHNlcnZlcyB0aGUgbmV3IFVMLUxJIERPTSBmb3IgY2F0ZWdvcmllc1xuXHRsZXQgb25VcGxvYWQgPSBmYWxzZTtcblx0bGV0IGVkaXRvcnMgPSBbXTtcblx0bGV0IGNvbW1pdEJ1dHRvbiA9IG51bGw7XG5cdGxldCBjb21taXRGb3JtID0gbnVsbDtcblx0bGV0IG11bHRpU3BhbiA9IG51bGw7XG5cdGxldCBwYWdlVGV4dCA9IG51bGw7XG5cdGxldCBwYWdlVGltZSA9IG51bGw7XG5cdGxldCBwYWdlV2F0Y2hlZCA9IGZhbHNlO1xuXHRsZXQgd2F0Y2hDcmVhdGUgPSBmYWxzZTtcblx0bGV0IHdhdGNoRWRpdCA9IGZhbHNlO1xuXHRsZXQgbWlub3JFZGl0cyA9IGZhbHNlO1xuXHRsZXQgZWRpdFRva2VuID0gbnVsbDtcblx0bGV0IGlzX3J0bCA9IGZhbHNlO1xuXHRsZXQgc2VydmVyVGltZSA9IG51bGw7XG5cdGxldCBsYXN0UmV2SWQgPSBudWxsO1xuXHRsZXQgcGFnZVRleHRSZXZJZCA9IG51bGw7XG5cdGxldCBjb25mbGljdGluZ1VzZXIgPSBudWxsO1xuXHRsZXQgbmV3RE9NID0gZmFsc2U7XG5cdGNvbnN0IFVOQ0hBTkdFRCA9IDA7XG5cdGNvbnN0IE9QRU4gPSAxOyAvLyBPcGVuLCBidXQgbm8gaW5wdXQgeWV0XG5cdGNvbnN0IENIQU5HRV9QRU5ESU5HID0gMjsgLy8gT3Blbiwgc29tZSBpbnB1dCBtYWRlXG5cdGNvbnN0IENIQU5HRUQgPSAzO1xuXHRjb25zdCBERUxFVEVEID0gNDtcblx0Y29uc3Qgc2V0UGFnZSA9IChkYXRhKSA9PiB7XG5cdFx0bGV0IHN0YXJ0VGltZSA9IG51bGw7XG5cdFx0aWYgKGRhdGEgJiYgZGF0YS5xdWVyeSkge1xuXHRcdFx0aWYgKGRhdGEucXVlcnkucGFnZXMpIHtcblx0XHRcdFx0Y29uc3QgW3BhZ2VdID0gZGF0YS5xdWVyeS5wYWdlcztcblx0XHRcdFx0aWYgKHBhZ2UpIHtcblx0XHRcdFx0XHRpZiAocGFnZS5yZXZpc2lvbnMgJiYgcGFnZS5yZXZpc2lvbnMubGVuZ3RoID4gMCkge1xuXHRcdFx0XHRcdFx0Ly8gUmV2aXNpb25zIGFyZSBzb3J0ZWQgYnkgcmV2aXNpb24gSUQsIGhlbmNlIFswXSBpcyB0aGUgb25lIHdlIGFza2VkIGZvciwgYW5kIHBvc3NpYmx5IHRoZXJlJ3MgYSBbMV0gaWYgd2UncmVcblx0XHRcdFx0XHRcdC8vIG5vdCBvbiB0aGUgbGF0ZXN0IHJldmlzaW9uIChlZGl0IGNvbmZsaWN0cyBhbmQgc3VjaCkuXG5cdFx0XHRcdFx0XHRwYWdlVGV4dCA9IHBhZ2UucmV2aXNpb25zWzBdLnNsb3RzLm1haW4uY29udGVudDtcblx0XHRcdFx0XHRcdGlmIChwYWdlLnJldmlzaW9uc1swXS50aW1lc3RhbXApIHtcblx0XHRcdFx0XHRcdFx0cGFnZVRpbWUgPSBwYWdlLnJldmlzaW9uc1swXS50aW1lc3RhbXAucmVwbGFjZSgvXFxEL2csICcnKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdGlmIChwYWdlLnJldmlzaW9uc1swXS5yZXZpZCkge1xuXHRcdFx0XHRcdFx0XHRwYWdlVGV4dFJldklkID0gcGFnZS5yZXZpc2lvbnNbMF0ucmV2aWQ7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRpZiAocGFnZS5yZXZpc2lvbnMubGVuZ3RoID4gMSkge1xuXHRcdFx0XHRcdFx0XHRjb25mbGljdGluZ1VzZXIgPSBwYWdlLnJldmlzaW9uc1sxXS51c2VyO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRpZiAocGFnZS5sYXN0cmV2aWQpIHtcblx0XHRcdFx0XHRcdGxhc3RSZXZJZCA9IHBhZ2UubGFzdHJldmlkO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRpZiAocGFnZS5zdGFydHRpbWVzdGFtcCkge1xuXHRcdFx0XHRcdFx0c3RhcnRUaW1lID0gcGFnZS5zdGFydHRpbWVzdGFtcC5yZXBsYWNlKC9cXEQvZywgJycpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRwYWdlV2F0Y2hlZCA9IHR5cGVvZiBwYWdlLndhdGNoZWQgPT09ICdzdHJpbmcnO1xuXHRcdFx0XHRcdGlmIChkYXRhLnF1ZXJ5LnRva2Vucykge1xuXHRcdFx0XHRcdFx0ZWRpdFRva2VuID0gZGF0YS5xdWVyeS50b2tlbnMuY3NyZnRva2VuO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRpZiAocGFnZS5sYW5nbGlua3MgJiYgKCFkYXRhWydxdWVyeS1jb250aW51ZSddIHx8ICFkYXRhWydxdWVyeS1jb250aW51ZSddLmxhbmdsaW5rcykpIHtcblx0XHRcdFx0XHRcdC8vIFdlIGhhdmUgaW50ZXJsYW5ndWFnZSBsaW5rcywgYW5kIHdlIGdvdCB0aGVtIGFsbC5cblx0XHRcdFx0XHRcdGxldCByZSA9ICcnO1xuXHRcdFx0XHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBwYWdlLmxhbmdsaW5rcy5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRcdFx0XHRyZSArPVxuXHRcdFx0XHRcdFx0XHRcdChpID4gMCA/ICd8JyA6ICcnKSArIHBhZ2UubGFuZ2xpbmtzW2ldLmxhbmcucmVwbGFjZSgvKFskKCkqKy4/XFxcXF5dKS9nLCBTdHJpbmcucmF3YFxcJDFgKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdGlmIChyZS5sZW5ndGggPiAwKSB7XG5cdFx0XHRcdFx0XHRcdGludGVybGFuZ3VhZ2VSRSA9IG5ldyBSZWdFeHAoYCgoXnxcXFxcblxcXFxyPykoXFxcXFtcXFxcW1xcXFxzKigke3JlfSlcXFxccyo6W15cXFxcXV0rXFxcXF1cXFxcXVxcXFxzKikpKyRgKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdC8vIFNpdGVpbmZvXG5cdFx0XHRpZiAoZGF0YS5xdWVyeS5nZW5lcmFsKSB7XG5cdFx0XHRcdGlmIChkYXRhLnF1ZXJ5LmdlbmVyYWwudGltZSAmJiAhc3RhcnRUaW1lKSB7XG5cdFx0XHRcdFx0c3RhcnRUaW1lID0gZGF0YS5xdWVyeS5nZW5lcmFsLnRpbWUucmVwbGFjZSgvXFxEL2csICcnKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAoSEMuY2FwaXRhbGl6ZVBhZ2VOYW1lcyA9PT0gbnVsbCkge1xuXHRcdFx0XHRcdC8vIFJlc291cmNlTG9hZGVyJ3MgSlNQYXJzZXIgZG9lc24ndCBsaWtlIC5jYXNlLCBzbyBvdmVycmlkZSBlc2xpbnQuXG5cdFx0XHRcdFx0SEMuY2FwaXRhbGl6ZVBhZ2VOYW1lcyA9IGRhdGEucXVlcnkuZ2VuZXJhbC5jYXNlID09PSAnZmlyc3QtbGV0dGVyJztcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0c2VydmVyVGltZSA9IHN0YXJ0VGltZTtcblx0XHRcdC8vIFVzZXJpbmZvXG5cdFx0XHRpZiAoZGF0YS5xdWVyeS51c2VyaW5mbyAmJiBkYXRhLnF1ZXJ5LnVzZXJpbmZvLm9wdGlvbnMpIHtcblx0XHRcdFx0d2F0Y2hDcmVhdGUgPSAhSEMuZG9udF9hZGRfdG9fd2F0Y2hsaXN0ICYmIGRhdGEucXVlcnkudXNlcmluZm8ub3B0aW9ucy53YXRjaGNyZWF0aW9ucyA9PT0gJzEnO1xuXHRcdFx0XHR3YXRjaEVkaXQgPSAhSEMuZG9udF9hZGRfdG9fd2F0Y2hsaXN0ICYmIGRhdGEucXVlcnkudXNlcmluZm8ub3B0aW9ucy53YXRjaGRlZmF1bHQgPT09ICcxJztcblx0XHRcdFx0bWlub3JFZGl0cyA9IGRhdGEucXVlcnkudXNlcmluZm8ub3B0aW9ucy5taW5vcmRlZmF1bHQgPT09IDE7XG5cdFx0XHRcdC8vIElmIHRoZSB1c2VyIGhhcyB0aGUgXCJBbGwgZWRpdHMgYXJlIG1pbm9yXCIgcHJlZmVyZW5jZSBlbmFibGVkLCB3ZSBzaG91bGQgaG9ub3IgdGhhdFxuXHRcdFx0XHQvLyBmb3Igc2luZ2xlIGNhdGVnb3J5IGNoYW5nZXMsIG5vIG1hdHRlciB3aGF0IHRoZSBzaXRlIGNvbmZpZ3VyYXRpb24gaXMuXG5cdFx0XHRcdGlmIChtaW5vckVkaXRzKSB7XG5cdFx0XHRcdFx0SEMuc2luZ2xlX21pbm9yID0gdHJ1ZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fTtcblx0bGV0IHNhdmVJblByb2dyZXNzID0gZmFsc2U7XG5cdGNvbnN0IGluaXRpYXRlRWRpdCA9IChkb0VkaXQsIGZhaWx1cmUpID0+IHtcblx0XHRpZiAoc2F2ZUluUHJvZ3Jlc3MpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0c2F2ZUluUHJvZ3Jlc3MgPSB0cnVlO1xuXHRcdGxldCBvbGRCdXR0b25TdGF0ZTtcblx0XHRpZiAoY29tbWl0QnV0dG9uKSB7XG5cdFx0XHRvbGRCdXR0b25TdGF0ZSA9IGNvbW1pdEJ1dHRvbi5kaXNhYmxlZDtcblx0XHRcdGNvbW1pdEJ1dHRvbi5kaXNhYmxlZCA9IHRydWU7XG5cdFx0fVxuXHRcdGNvbnN0IGZhaWwgPSBmdW5jdGlvbiAoLi4uYXJncykge1xuXHRcdFx0c2F2ZUluUHJvZ3Jlc3MgPSBmYWxzZTtcblx0XHRcdGlmIChjb21taXRCdXR0b24pIHtcblx0XHRcdFx0Y29tbWl0QnV0dG9uLmRpc2FibGVkID0gb2xkQnV0dG9uU3RhdGU7XG5cdFx0XHR9XG5cdFx0XHRmYWlsdXJlLmFwcGx5KHRoaXMsIGFyZ3MpO1xuXHRcdH07XG5cdFx0Ly8gTXVzdCB1c2UgQWpheCBoZXJlIHRvIGdldCB0aGUgdXNlciBvcHRpb25zIGFuZCB0aGUgZWRpdCB0b2tlbi5cblx0XHRjb25zdCBwYXJhbXMgPSB7XG5cdFx0XHRhY3Rpb246ICdxdWVyeScsXG5cdFx0XHRmb3JtYXQ6ICdqc29uJyxcblx0XHRcdGZvcm1hdHZlcnNpb246ICcyJyxcblx0XHRcdHJhd2NvbnRpbnVlOiAnJyxcblx0XHRcdHRpdGxlczogY29uZi53Z1BhZ2VOYW1lLFxuXHRcdFx0cHJvcDogWydpbmZvJywgJ3JldmlzaW9ucycsICdsYW5nbGlua3MnXSxcblx0XHRcdGlucHJvcDogJ3dhdGNoZWQnLFxuXHRcdFx0cnZwcm9wOiBbJ2NvbnRlbnQnLCAndGltZXN0YW1wJywgJ2lkcycsICd1c2VyJ10sXG5cdFx0XHRydnNsb3RzOiAnbWFpbicsXG5cdFx0XHRydmxpbWl0OiAnMicsXG5cdFx0XHRydmRpcjogJ25ld2VyJyxcblx0XHRcdHJ2c3RhcnRpZDogY29uZi53Z0N1clJldmlzaW9uSWQsXG5cdFx0XHRsbGxpbWl0OiAnNTAwJyxcblx0XHRcdG1ldGE6IFsnc2l0ZWluZm8nLCAndXNlcmluZm8nLCAndG9rZW5zJ10sXG5cdFx0XHR0eXBlOiAnY3NyZicsXG5cdFx0XHR1aXByb3A6IFsnb3B0aW9ucyddLFxuXHRcdH07XG5cdFx0YXBpLmdldChwYXJhbXMpXG5cdFx0XHQuZG9uZSgoZGF0YSkgPT4ge1xuXHRcdFx0XHRzZXRQYWdlKGRhdGEpO1xuXHRcdFx0XHRkb0VkaXQoZmFpbCk7XG5cdFx0XHR9KVxuXHRcdFx0LmZhaWwoKHtzdGF0dXMsIHN0YXR1c1RleHR9KSA9PiB7XG5cdFx0XHRcdGZhaWwoYCR7c3RhdHVzfSAke3N0YXR1c1RleHR9YCk7XG5cdFx0XHR9KTtcblx0fTtcblx0Y29uc3QgbXVsdGlDaGFuZ2VNc2cgPSAoY291bnQpID0+IHtcblx0XHRyZXR1cm4gZ2V0TWVzc2FnZSgnbWVzc2FnZXMtbXVsdGlfY2hhbmdlJywgU3RyaW5nKGNvdW50KSk7XG5cdH07XG5cdGNvbnN0IGN1cnJlbnRUaW1lc3RhbXAgPSAoKSA9PiB7XG5cdFx0Y29uc3Qgbm93ID0gbmV3IERhdGUoKTtcblx0XHRsZXQgdHMgPSBTdHJpbmcobm93LmdldFVUQ0Z1bGxZZWFyKCkpO1xuXHRcdGNvbnN0IHR3byA9IChzKSA9PiB7XG5cdFx0XHRyZXR1cm4gcy5zbGljZSgtMik7XG5cdFx0fTtcblx0XHR0cyArPVxuXHRcdFx0dHdvKGAwJHtub3cuZ2V0VVRDTW9udGgoKSArIDF9YCkgK1xuXHRcdFx0dHdvKGAwJHtub3cuZ2V0VVRDRGF0ZSgpfWApICtcblx0XHRcdHR3byhgMDAke25vdy5nZXRVVENIb3VycygpfWApICtcblx0XHRcdHR3byhgMDAke25vdy5nZXRVVENNaW51dGVzKCl9YCkgK1xuXHRcdFx0dHdvKGAwMCR7bm93LmdldFVUQ1NlY29uZHMoKX1gKTtcblx0XHRyZXR1cm4gdHM7XG5cdH07XG5cdGNvbnN0IHBlcmZvcm1DaGFuZ2VzID0gKGZhaWx1cmUsIHNpbmdsZUVkaXRvcikgPT4ge1xuXHRcdGlmIChwYWdlVGV4dCA9PT0gbnVsbCkge1xuXHRcdFx0ZmFpbHVyZShnZXRNZXNzYWdlKCdtZXNzYWdlcy1tdWx0aV9lcnJvcicpKTtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0Ly8gQ3JlYXRlIGEgZm9ybSBhbmQgc3VibWl0IGl0LiBXZSBkb24ndCB1c2UgdGhlIGVkaXQgQVBJIChhcGkucGhwP2FjdGlvbj1lZGl0KSBiZWNhdXNlXG5cdFx0Ly8gKGEpIHNlbnNpYmx5IHJlcG9ydGluZyBiYWNrIGVycm9ycyBsaWtlIGVkaXQgY29uZmxpY3RzIGlzIGFsd2F5cyBhIGhhc3NsZSwgYW5kXG5cdFx0Ly8gKGIpIHdlIHdhbnQgdG8gc2hvdyBhIGRpZmYgZm9yIG11bHRpLWVkaXRzIGFueXdheSwgYW5kXG5cdFx0Ly8gKGMpIHdlIHdhbnQgdG8gdHJpZ2dlciBvbnN1Ym1pdCBldmVudHMsIGFsbG93aW5nIHVzZXIgY29kZSB0byBpbnRlcmNlcHQgdGhlIGVkaXQuXG5cdFx0Ly8gVXNpbmcgdGhlIGZvcm0sIHdlIGNhbiBkbyAoYikgYW5kIChjKSwgYW5kIHdlIGdldCAoYSkgZm9yIGZyZWUuIEFuZCwgb2YgY291cnNlLCB1c2luZyB0aGUgZm9ybVxuXHRcdC8vIGF1dG9tYXRpY2FsbHkgcmVsb2FkcyB0aGUgcGFnZSB3aXRoIHRoZSB1cGRhdGVkIGNhdGVnb3JpZXMgb24gYSBzdWNjZXNzZnVsIHN1Ym1pdCwgd2hpY2hcblx0XHQvLyB3ZSB3b3VsZCBoYXZlIHRvIGRvIGV4cGxpY2l0bHkgaWYgd2UgdXNlZCB0aGUgZWRpdCBBUEkuXG5cdFx0bGV0IGFjdGlvbjtcblx0XHQvLyBOb3JtYWxseSwgd2UgZG9uJ3QgaGF2ZSB0byBjYXJlIGFib3V0IGVkaXQgY29uZmxpY3RzLiBJZiBzb21lIG90aGVyIHVzZXIgZWRpdGVkIHRoZSBwYWdlIGluIHRoZSBtZWFudGltZSwgdGhlXG5cdFx0Ly8gc2VydmVyIHdpbGwgdGFrZSBjYXJlIG9mIGl0IGFuZCBtZXJnZSB0aGUgZWRpdCBhdXRvbWF0aWNhbGx5IG9yIHByZXNlbnQgYW4gZWRpdCBjb25mbGljdCBzY3JlZW4uIEhvd2V2ZXIsIHRoZVxuXHRcdC8vIHNlcnZlciBzdXBwcmVzc2VzIGVkaXQgY29uZmxpY3RzIHdpdGggb25lc2VsZi4gSGVuY2UsIGlmIHdlIGhhdmUgYSBjb25mbGljdCwgYW5kIHRoZSBjb25mbGljdGluZyB1c2VyIGlzIHRoZVxuXHRcdC8vIGN1cnJlbnQgdXNlciwgdGhlbiB3ZSBzZXQgdGhlIFwib2xkaWRcIiB2YWx1ZSBhbmQgc3dpdGNoIHRvIGRpZmYsIHdoaWNoIGdpdmVzIHRoZSBcInlvdSBhcmUgZWRpdGluZyBhbiBvbGQgdmVyc2lvbjtcblx0XHQvLyBpZiB5b3Ugc2F2ZSwgYW55IG1vcmUgcmVjZW50IGNoYW5nZXMgd2lsbCBiZSBsb3N0XCIgc2NyZWVuLlxuXHRcdGNvbnN0IHNlbGZFZGl0Q29uZmxpY3QgPVxuXHRcdFx0KChsYXN0UmV2SWQgIT09IG51bGwgJiYgbGFzdFJldklkICE9PSBjb25mLndnQ3VyUmV2aXNpb25JZCkgfHxcblx0XHRcdFx0KHBhZ2VUZXh0UmV2SWQgIT09IG51bGwgJiYgcGFnZVRleHRSZXZJZCAhPT0gY29uZi53Z0N1clJldmlzaW9uSWQpKSAmJlxuXHRcdFx0Y29uZmxpY3RpbmdVc2VyICYmXG5cdFx0XHRjb25mbGljdGluZ1VzZXIgPT09IGNvbmYud2dVc2VyTmFtZTtcblx0XHRpZiAoc2luZ2xlRWRpdG9yICYmICFzaW5nbGVFZGl0b3Iubm9Db21taXQgJiYgIUhDLm5vX2F1dG9jb21taXQgJiYgZWRpdFRva2VuICYmICFzZWxmRWRpdENvbmZsaWN0KSB7XG5cdFx0XHQvLyBJZiB3ZSBkbyBoYXZlIGFuIGVkaXQgY29uZmxpY3QsIGJ1dCBub3Qgd2l0aCBvdXJzZWxmLCB0aGF0J3Mgbm8gcmVhc29uIG5vdCB0byBhdHRlbXB0IHRvIHNhdmU6IHRoZSBzZXJ2ZXIgc2lkZSBtYXkgYWN0dWFsbHkgYmUgYWJsZSB0b1xuXHRcdFx0Ly8gbWVyZ2UgdGhlIGNoYW5nZXMuIFdlIGp1c3QgbmVlZCB0byBtYWtlIHN1cmUgdGhhdCB3ZSBkbyBwcmVzZW50IGEgZGlmZiB2aWV3IGlmIGl0J3MgYSBzZWxmIGVkaXQgY29uZmxpY3QuXG5cdFx0XHRjb21taXRGb3JtLndwRWRpdFRva2VuLnZhbHVlID0gZWRpdFRva2VuO1xuXHRcdFx0YWN0aW9uID0gY29tbWl0Rm9ybS53cERpZmY7XG5cdFx0XHRpZiAoYWN0aW9uKSB7XG5cdFx0XHRcdGFjdGlvbi52YWx1ZSA9ICd3cFNhdmUnO1xuXHRcdFx0XHRhY3Rpb24ubmFtZSA9IGFjdGlvbi52YWx1ZTtcblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0YWN0aW9uID0gY29tbWl0Rm9ybS53cFNhdmU7XG5cdFx0XHRpZiAoYWN0aW9uKSB7XG5cdFx0XHRcdGFjdGlvbi52YWx1ZSA9ICd3cERpZmYnO1xuXHRcdFx0XHRhY3Rpb24ubmFtZSA9IGFjdGlvbi52YWx1ZTtcblx0XHRcdH1cblx0XHR9XG5cdFx0bGV0IHJlc3VsdCA9IHtcblx0XHRcdHRleHQ6IHBhZ2VUZXh0LFxuXHRcdH07XG5cdFx0Y29uc3QgY2hhbmdlZCA9IFtdO1xuXHRcdGNvbnN0IGFkZGVkID0gW107XG5cdFx0Y29uc3QgZGVsZXRlZCA9IFtdO1xuXHRcdGNvbnN0IHRvRWRpdCA9IHNpbmdsZUVkaXRvciA/IFtzaW5nbGVFZGl0b3JdIDogZWRpdG9ycztcblx0XHRsZXQgZWRpdDtcblx0XHRsZXQgaTtcblx0XHRsZXQgZXJyb3IgPSBudWxsO1xuXHRcdGxldCBjaGFuZ2VzID0gMDtcblx0XHRmb3IgKGkgPSAwOyBpIDwgdG9FZGl0Lmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRlZGl0ID0gdG9FZGl0W2ldO1xuXHRcdFx0aWYgKGVkaXQuc3RhdGUgPT09IENIQU5HRUQpIHtcblx0XHRcdFx0cmVzdWx0ID0gY2hhbmdlX2NhdGVnb3J5KFxuXHRcdFx0XHRcdHJlc3VsdC50ZXh0LFxuXHRcdFx0XHRcdGVkaXQub3JpZ2luYWxDYXRlZ29yeSxcblx0XHRcdFx0XHRlZGl0LmN1cnJlbnRDYXRlZ29yeSxcblx0XHRcdFx0XHRlZGl0LmN1cnJlbnRLZXksXG5cdFx0XHRcdFx0ZWRpdC5jdXJyZW50SGlkZGVuXG5cdFx0XHRcdCk7XG5cdFx0XHRcdGlmICghcmVzdWx0LmVycm9yKSB7XG5cdFx0XHRcdFx0Y2hhbmdlcysrO1xuXHRcdFx0XHRcdGlmICghZWRpdC5vcmlnaW5hbENhdGVnb3J5IHx8IGVkaXQub3JpZ2luYWxDYXRlZ29yeS5sZW5ndGggPT09IDApIHtcblx0XHRcdFx0XHRcdGFkZGVkW2FkZGVkLmxlbmd0aF0gPSBlZGl0LmN1cnJlbnRDYXRlZ29yeTtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0Y2hhbmdlZFtjaGFuZ2VkLmxlbmd0aF0gPSB7XG5cdFx0XHRcdFx0XHRcdGZyb206IGVkaXQub3JpZ2luYWxDYXRlZ29yeSxcblx0XHRcdFx0XHRcdFx0dG86IGVkaXQuY3VycmVudENhdGVnb3J5LFxuXHRcdFx0XHRcdFx0fTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0gZWxzZSBpZiAoZXJyb3IgPT09IG51bGwpIHtcblx0XHRcdFx0XHQoe2Vycm9yfSA9IHJlc3VsdCk7XG5cdFx0XHRcdH1cblx0XHRcdH0gZWxzZSBpZiAoZWRpdC5zdGF0ZSA9PT0gREVMRVRFRCAmJiBlZGl0Lm9yaWdpbmFsQ2F0ZWdvcnkgJiYgZWRpdC5vcmlnaW5hbENhdGVnb3J5Lmxlbmd0aCA+IDApIHtcblx0XHRcdFx0cmVzdWx0ID0gY2hhbmdlX2NhdGVnb3J5KHJlc3VsdC50ZXh0LCBlZGl0Lm9yaWdpbmFsQ2F0ZWdvcnksIG51bGwsIG51bGwsIGZhbHNlKTtcblx0XHRcdFx0aWYgKCFyZXN1bHQuZXJyb3IpIHtcblx0XHRcdFx0XHRjaGFuZ2VzKys7XG5cdFx0XHRcdFx0ZGVsZXRlZFtkZWxldGVkLmxlbmd0aF0gPSBlZGl0Lm9yaWdpbmFsQ2F0ZWdvcnk7XG5cdFx0XHRcdH0gZWxzZSBpZiAoZXJyb3IgPT09IG51bGwpIHtcblx0XHRcdFx0XHQoe2Vycm9yfSA9IHJlc3VsdCk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0aWYgKGVycm9yICE9PSBudWxsKSB7XG5cdFx0XHQvLyBEbyBub3QgY29tbWl0IGlmIHRoZXJlIHdlcmUgZXJyb3JzXG5cdFx0XHRhY3Rpb24gPSBjb21taXRGb3JtLndwU2F2ZTtcblx0XHRcdGlmIChhY3Rpb24pIHtcblx0XHRcdFx0YWN0aW9uLnZhbHVlID0gJ3dwRGlmZic7XG5cdFx0XHRcdGFjdGlvbi5uYW1lID0gYWN0aW9uLnZhbHVlO1xuXHRcdFx0fVxuXHRcdH1cblx0XHQvLyBGaWxsIGluIHRoZSBmb3JtIGFuZCBzdWJtaXQgaXRcblx0XHRjb21taXRGb3JtLndwTWlub3JlZGl0LmNoZWNrZWQgPSBtaW5vckVkaXRzO1xuXHRcdGNvbW1pdEZvcm0ud3BXYXRjaHRoaXMuY2hlY2tlZCA9ICghY29uZi53Z0FydGljbGVJZCAmJiB3YXRjaENyZWF0ZSkgfHwgd2F0Y2hFZGl0IHx8IHBhZ2VXYXRjaGVkO1xuXHRcdGlmIChjb25mLndnQXJ0aWNsZUlkIHx8ICEhc2luZ2xlRWRpdG9yKSB7XG5cdFx0XHQvLyBQcmVwYXJlIGNoYW5nZS10YWcgc2F2ZVxuXHRcdFx0aWYgKGFjdGlvbiAmJiBhY3Rpb24udmFsdWUgPT09ICd3cFNhdmUnKSB7XG5cdFx0XHRcdGlmIChIQy5jaGFuZ2VUYWcpIHtcblx0XHRcdFx0XHRjb21taXRGb3JtLndwQ2hhbmdlVGFncy52YWx1ZSA9IEhDLmNoYW5nZVRhZztcblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Y29tbWl0Rm9ybS53cEF1dG9TdW1tYXJ5LnZhbHVlID0gSEMuY2hhbmdlVGFnO1xuXHRcdFx0fVxuXHRcdFx0aWYgKGNoYW5nZXMgPT09IDEpIHtcblx0XHRcdFx0aWYgKHJlc3VsdC5zdW1tYXJ5ICYmIHJlc3VsdC5zdW1tYXJ5Lmxlbmd0aCA+IDApIHtcblx0XHRcdFx0XHRjb21taXRGb3JtLndwU3VtbWFyeS52YWx1ZSA9XG5cdFx0XHRcdFx0XHQoSEMuY2hhbmdlVGFnID8gJycgOiBnZXRNZXNzYWdlKCdtZXNzYWdlcy1wcmVmaXgnKSkgK1xuXHRcdFx0XHRcdFx0cmVzdWx0LnN1bW1hcnkuam9pbihnZXRNZXNzYWdlKCdtZXNzYWdlcy1zZXBhcmF0b3InKSkgK1xuXHRcdFx0XHRcdFx0KEhDLmNoYW5nZVRhZyA/ICcnIDogZ2V0TWVzc2FnZSgnbWVzc2FnZXMtdXNpbmcnKSk7XG5cdFx0XHRcdH1cblx0XHRcdFx0Y29tbWl0Rm9ybS53cE1pbm9yZWRpdC5jaGVja2VkID0gSEMuc2luZ2xlX21pbm9yIHx8IG1pbm9yRWRpdHM7XG5cdFx0XHR9IGVsc2UgaWYgKGNoYW5nZXMpIHtcblx0XHRcdFx0bGV0IHN1bW1hcnkgPSBbXTtcblx0XHRcdFx0Y29uc3Qgc2hvcnRTdW1tYXJ5ID0gW107XG5cdFx0XHRcdC8vIERlbGV0ZWRcblx0XHRcdFx0Zm9yIChpID0gMDsgaSA8IGRlbGV0ZWQubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0XHRzdW1tYXJ5W3N1bW1hcnkubGVuZ3RoXSA9IGDiiJIke2dldE1lc3NhZ2UoJ21lc3NhZ2VzLXNob3J0X2NhdGNoYW5nZScsIGRlbGV0ZWRbaV0pfWA7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKGRlbGV0ZWQubGVuZ3RoID09PSAxKSB7XG5cdFx0XHRcdFx0c2hvcnRTdW1tYXJ5W3Nob3J0U3VtbWFyeS5sZW5ndGhdID0gYOKIkiR7Z2V0TWVzc2FnZSgnbWVzc2FnZXMtc2hvcnRfY2F0Y2hhbmdlJywgZGVsZXRlZFswXSl9YDtcblx0XHRcdFx0fSBlbHNlIGlmIChkZWxldGVkLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0XHRzaG9ydFN1bW1hcnlbc2hvcnRTdW1tYXJ5Lmxlbmd0aF0gPSBg4oiSICR7bXVsdGlDaGFuZ2VNc2coZGVsZXRlZC5sZW5ndGgpfWA7XG5cdFx0XHRcdH1cblx0XHRcdFx0Ly8gQWRkZWRcblx0XHRcdFx0Zm9yIChpID0gMDsgaSA8IGFkZGVkLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdFx0c3VtbWFyeVtzdW1tYXJ5Lmxlbmd0aF0gPSBgKyR7Z2V0TWVzc2FnZSgnbWVzc2FnZXMtc2hvcnRfY2F0Y2hhbmdlJywgYWRkZWRbaV0pfWA7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKGFkZGVkLmxlbmd0aCA9PT0gMSkge1xuXHRcdFx0XHRcdHNob3J0U3VtbWFyeVtzaG9ydFN1bW1hcnkubGVuZ3RoXSA9IGArJHtnZXRNZXNzYWdlKCdtZXNzYWdlcy1zaG9ydF9jYXRjaGFuZ2UnLCBhZGRlZFswXSl9YDtcblx0XHRcdFx0fSBlbHNlIGlmIChhZGRlZC5sZW5ndGggPiAwKSB7XG5cdFx0XHRcdFx0c2hvcnRTdW1tYXJ5W3Nob3J0U3VtbWFyeS5sZW5ndGhdID0gYCsgJHttdWx0aUNoYW5nZU1zZyhhZGRlZC5sZW5ndGgpfWA7XG5cdFx0XHRcdH1cblx0XHRcdFx0Ly8gQ2hhbmdlZFxuXHRcdFx0XHRjb25zdCBhcnJvdyA9IGlzX3J0bCA/ICdcXHUyMTkwJyA6ICdcXHUyMTkyJzsgLy8gbGVmdCBhbmQgcmlnaHQgYXJyb3dzLiBEb24ndCB1c2Ug4oaQIGFuZCDihpIgaW4gdGhlIGNvZGUuXG5cdFx0XHRcdGZvciAoaSA9IDA7IGkgPCBjaGFuZ2VkLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdFx0aWYgKGNoYW5nZWRbaV0uZnJvbSA9PT0gY2hhbmdlZFtpXS50bykge1xuXHRcdFx0XHRcdFx0c3VtbWFyeVtzdW1tYXJ5Lmxlbmd0aF0gPSBgwrEke2dldE1lc3NhZ2UoJ21lc3NhZ2VzLXNob3J0X2NhdGNoYW5nZScsIGNoYW5nZWRbaV0uZnJvbSl9YDtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0c3VtbWFyeVtzdW1tYXJ5Lmxlbmd0aF0gPVxuXHRcdFx0XHRcdFx0XHRgwrEke2dldE1lc3NhZ2UoJ21lc3NhZ2VzLXNob3J0X2NhdGNoYW5nZScsIGNoYW5nZWRbaV0uZnJvbSl9JHthcnJvd30ke2dldE1lc3NhZ2UoXG5cdFx0XHRcdFx0XHRcdFx0J21lc3NhZ2VzLXNob3J0X2NhdGNoYW5nZScsXG5cdFx0XHRcdFx0XHRcdFx0Y2hhbmdlZFtpXS50b1xuXHRcdFx0XHRcdFx0XHQpfWA7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdGlmIChjaGFuZ2VkLmxlbmd0aCA9PT0gMSkge1xuXHRcdFx0XHRcdGlmIChjaGFuZ2VkWzBdLmZyb20gPT09IGNoYW5nZWRbMF0udG8pIHtcblx0XHRcdFx0XHRcdHNob3J0U3VtbWFyeVtzaG9ydFN1bW1hcnkubGVuZ3RoXSA9XG5cdFx0XHRcdFx0XHRcdGDCsSR7Z2V0TWVzc2FnZSgnbWVzc2FnZXMtc2hvcnRfY2F0Y2hhbmdlJywgY2hhbmdlZFswXS5mcm9tKX1gO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRzaG9ydFN1bW1hcnlbc2hvcnRTdW1tYXJ5Lmxlbmd0aF0gPVxuXHRcdFx0XHRcdFx0XHRgwrEke2dldE1lc3NhZ2UoJ21lc3NhZ2VzLXNob3J0X2NhdGNoYW5nZScsIGNoYW5nZWRbMF0uZnJvbSl9JHthcnJvd30ke2dldE1lc3NhZ2UoXG5cdFx0XHRcdFx0XHRcdFx0J21lc3NhZ2VzLXNob3J0X2NhdGNoYW5nZScsXG5cdFx0XHRcdFx0XHRcdFx0Y2hhbmdlZFswXS50b1xuXHRcdFx0XHRcdFx0XHQpfWA7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9IGVsc2UgaWYgKGNoYW5nZWQubGVuZ3RoID4gMCkge1xuXHRcdFx0XHRcdHNob3J0U3VtbWFyeVtzaG9ydFN1bW1hcnkubGVuZ3RoXSA9IGDCsSAke211bHRpQ2hhbmdlTXNnKGNoYW5nZWQubGVuZ3RoKX1gO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmIChzdW1tYXJ5Lmxlbmd0aCA+IDApIHtcblx0XHRcdFx0XHRzdW1tYXJ5ID0gc3VtbWFyeS5qb2luKGdldE1lc3NhZ2UoJ21lc3NhZ2VzLXNlcGFyYXRvcicpKTtcblx0XHRcdFx0XHRpZiAoXG5cdFx0XHRcdFx0XHRzdW1tYXJ5Lmxlbmd0aCA+XG5cdFx0XHRcdFx0XHQyMDAgLVxuXHRcdFx0XHRcdFx0XHQoSEMuY2hhbmdlVGFnID8gJycgOiBnZXRNZXNzYWdlKCdtZXNzYWdlcy1wcmVmaXgnKSkubGVuZ3RoIC1cblx0XHRcdFx0XHRcdFx0KEhDLmNoYW5nZVRhZyA/ICcnIDogZ2V0TWVzc2FnZSgnbWVzc2FnZXMtdXNpbmcnKSkubGVuZ3RoXG5cdFx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0XHRzdW1tYXJ5ID0gc2hvcnRTdW1tYXJ5LmpvaW4oZ2V0TWVzc2FnZSgnbWVzc2FnZXMtc2VwYXJhdG9yJykpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRjb21taXRGb3JtLndwU3VtbWFyeS52YWx1ZSA9XG5cdFx0XHRcdFx0XHQoSEMuY2hhbmdlVGFnID8gJycgOiBnZXRNZXNzYWdlKCdtZXNzYWdlcy1wcmVmaXgnKSkgK1xuXHRcdFx0XHRcdFx0c3VtbWFyeSArXG5cdFx0XHRcdFx0XHQoSEMuY2hhbmdlVGFnID8gJycgOiBnZXRNZXNzYWdlKCdtZXNzYWdlcy11c2luZycpKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHRjb21taXRGb3JtLndwVGV4dGJveDEudmFsdWUgPSByZXN1bHQudGV4dDtcblx0XHRjb21taXRGb3JtLndwU3RhcnR0aW1lLnZhbHVlID0gc2VydmVyVGltZSB8fCBjdXJyZW50VGltZXN0YW1wKCk7XG5cdFx0Y29tbWl0Rm9ybS53cEVkaXR0aW1lLnZhbHVlID0gcGFnZVRpbWUgfHwgY29tbWl0Rm9ybS53cFN0YXJ0dGltZS52YWx1ZTtcblx0XHRpZiAoc2VsZkVkaXRDb25mbGljdCkge1xuXHRcdFx0Y29tbWl0Rm9ybS5vbGRpZC52YWx1ZSA9IFN0cmluZyhwYWdlVGV4dFJldklkIHx8IGNvbmYud2dDdXJSZXZpc2lvbklkKTtcblx0XHR9XG5cdFx0Ly8gU3VibWl0IHRoZSBmb3JtIGluIGEgd2F5IHRoYXQgdHJpZ2dlcnMgb25zdWJtaXQgZXZlbnRzOiBjb21taXRGb3JtLnN1Ym1pdCgpIGRvZXNuJ3QuXG5cdFx0Y29tbWl0Rm9ybS5oY0NvbW1pdC5jbGljaygpO1xuXHR9O1xuXHRjb25zdCByZXNvbHZlT25lID0gKHBhZ2UsIHRvUmVzb2x2ZSkgPT4ge1xuXHRcdGNvbnN0IGNhdHMgPSBwYWdlLmNhdGVnb3JpZXM7XG5cdFx0Y29uc3Qge2xpbmtzfSA9IHBhZ2U7XG5cdFx0bGV0IGlzX2RhYiA9IGZhbHNlOyAvLyBIYXJkIHJlZGlyZWN0P1xuXHRcdGxldCBpc19yZWRpciA9IHR5cGVvZiBwYWdlLnJlZGlyZWN0ID09PSAnc3RyaW5nJztcblx0XHRsZXQgaTtcblx0XHRjb25zdCBpc19oaWRkZW4gPSBwYWdlLmNhdGVnb3J5aW5mbyAmJiB0eXBlb2YgcGFnZS5jYXRlZ29yeWluZm8uaGlkZGVuID09PSAnc3RyaW5nJztcblx0XHRjb25zdCBpc19taXNzaW5nID0gdHlwZW9mIHBhZ2UubWlzc2luZyA9PT0gJ3N0cmluZyc7XG5cdFx0Zm9yIChpID0gMDsgaSA8IHRvUmVzb2x2ZS5sZW5ndGg7IGkrKykge1xuXHRcdFx0aWYgKGkgJiYgdG9SZXNvbHZlW2ldLmRhYklucHV0Q2xlYW5lZCAhPT0gcGFnZS50aXRsZS5zbGljZShNYXRoLm1heCgwLCBwYWdlLnRpdGxlLmluZGV4T2YoJzonKSArIDEpKSkge1xuXHRcdFx0XHRjb250aW51ZTtcblx0XHRcdH1cblx0XHRcdC8vIE5vdGU6IHRoZSBzZXJ2ZXIgcmV0dXJucyBpbiBwYWdlIGFuIE5GQyBub3JtYWxpemVkIFVuaWNvZGUgdGl0bGUuIElmIG91ciBpbnB1dCB3YXMgbm90IE5GQyBub3JtYWxpemVkLCB3ZSBtYXkgbm90IGZpbmRcblx0XHRcdC8vIGFueSBlbnRyeSBoZXJlLiBJZiB3ZSBoYXZlIG9ubHkgb25lIGVkaXRvciB0byByZXNvbHZlICh0aGUgbW9zdCBjb21tb24gY2FzZSwgSSBwcmVzdW1lKSwgd2UgbWF5IHNpbXBseSBza2lwIHRoZSBjaGVjay5cblx0XHRcdHRvUmVzb2x2ZVtpXS5jdXJyZW50SGlkZGVuID0gaXNfaGlkZGVuO1xuXHRcdFx0dG9SZXNvbHZlW2ldLmlucHV0RXhpc3RzID0gIWlzX21pc3Npbmc7XG5cdFx0XHR0b1Jlc29sdmVbaV0uaWNvbi5zcmMgPSBpc19taXNzaW5nID8gSEMuZXhpc3RzTm8gOiBIQy5leGlzdHNZZXM7XG5cdFx0fVxuXHRcdGlmIChpc19taXNzaW5nKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdGlmICghaXNfcmVkaXIgJiYgY2F0cyAmJiAoZ2V0TWVzc2FnZSgnZGlzYW1iaWdfY2F0ZWdvcnknKSB8fCBnZXRNZXNzYWdlKCdyZWRpcl9jYXRlZ29yeScpKSkge1xuXHRcdFx0Zm9yIChjb25zdCBjYXRfIG9mIGNhdHMpIHtcblx0XHRcdFx0bGV0IGNhdCA9IGNhdF8udGl0bGU7XG5cdFx0XHRcdC8vIFN0cmlwIG5hbWVzcGFjZSBwcmVmaXhcblx0XHRcdFx0aWYgKGNhdCkge1xuXHRcdFx0XHRcdGNhdCA9IGNhdC5zbGljZShNYXRoLm1heCgwLCBjYXQuaW5kZXhPZignOicpICsgMSkpLnJlcGxhY2UoL18vZywgJyAnKTtcblx0XHRcdFx0XHRpZiAoY2F0ID09PSBnZXRNZXNzYWdlKCdkaXNhbWJpZ19jYXRlZ29yeScpKSB7XG5cdFx0XHRcdFx0XHRpc19kYWIgPSB0cnVlO1xuXHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0fSBlbHNlIGlmIChjYXQgPT09IGdldE1lc3NhZ2UoJ3JlZGlyX2NhdGVnb3J5JykpIHtcblx0XHRcdFx0XHRcdGlzX3JlZGlyID0gdHJ1ZTtcblx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHRpZiAoIWlzX3JlZGlyICYmICFpc19kYWIpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0aWYgKCFsaW5rcyB8fCBsaW5rcy5sZW5ndGggPT09IDApIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0Y29uc3QgdGl0bGVzID0gW107XG5cdFx0Zm9yIChpID0gMDsgaSA8IGxpbmtzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRpZiAoXG5cdFx0XHRcdC8vIENhdGVnb3J5IG5hbWVzcGFjZSAtLSBhbHdheXMgdHJ1ZSBzaW5jZSB3ZSBhc2sgb25seSBmb3IgdGhlIGNhdGVnb3J5IGxpbmtzXG5cdFx0XHRcdGxpbmtzW2ldLm5zID09PSAxNCAmJlxuXHRcdFx0XHQvLyBOYW1lIG5vdCBlbXB0eVxuXHRcdFx0XHRsaW5rc1tpXS50aXRsZSAmJlxuXHRcdFx0XHRsaW5rc1tpXS50aXRsZS5sZW5ndGggPiAwXG5cdFx0XHQpIHtcblx0XHRcdFx0Ly8gSW50ZXJuYWwgbGluayB0byBleGlzdGluZyB0aGluZ3kuIEV4dHJhY3QgdGhlIHBhZ2UgbmFtZSBhbmQgcmVtb3ZlIHRoZSBuYW1lc3BhY2UuXG5cdFx0XHRcdGxldCBtYXRjaCA9IGxpbmtzW2ldLnRpdGxlO1xuXHRcdFx0XHRtYXRjaCA9IG1hdGNoLnNsaWNlKE1hdGgubWF4KDAsIG1hdGNoLmluZGV4T2YoJzonKSArIDEpKTtcblx0XHRcdFx0Ly8gRXhjbHVkZSBibGFja2xpc3RlZCBjYXRlZ29yaWVzLlxuXHRcdFx0XHRpZiAoIUhDLmJsYWNrbGlzdCB8fCAhSEMuYmxhY2tsaXN0LnRlc3QobWF0Y2gpKSB7XG5cdFx0XHRcdFx0dGl0bGVzW3RpdGxlcy5sZW5ndGhdID0gbWF0Y2g7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0aWYgKHRpdGxlcy5sZW5ndGggPT09IDApIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0Zm9yIChpID0gMDsgaSA8IHRvUmVzb2x2ZS5sZW5ndGg7IGkrKykge1xuXHRcdFx0aWYgKGkgJiYgdG9SZXNvbHZlW2ldLmRhYklucHV0Q2xlYW5lZCAhPT0gcGFnZS50aXRsZS5zbGljZShNYXRoLm1heCgwLCBwYWdlLnRpdGxlLmluZGV4T2YoJzonKSArIDEpKSkge1xuXHRcdFx0XHRjb250aW51ZTtcblx0XHRcdH1cblx0XHRcdHRvUmVzb2x2ZVtpXS5pbnB1dEV4aXN0cyA9IHRydWU7IC8vIE1pZ2h0IGFjdHVhbGx5IGJlIHdyb25nIGlmIGl0J3MgYSByZWRpcmVjdCBwb2ludGluZyB0byBhIG5vbi1leGlzdGluZyBjYXRlZ29yeVxuXHRcdFx0dG9SZXNvbHZlW2ldLmljb24uc3JjID0gSEMuZXhpc3RzWWVzO1xuXHRcdFx0aWYgKHRpdGxlcy5sZW5ndGggPiAxKSB7XG5cdFx0XHRcdHRvUmVzb2x2ZVtpXS5kYWIgPSB0aXRsZXM7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR0b1Jlc29sdmVbaV0udGV4dC52YWx1ZSA9XG5cdFx0XHRcdFx0dGl0bGVzWzBdICsgKHRvUmVzb2x2ZVtpXS5jdXJyZW50S2V5ID09PSBudWxsID8gJycgOiBgfCR7dG9SZXNvbHZlW2ldLmN1cnJlbnRLZXl9YCk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9O1xuXHRjb25zdCByZXNvbHZlUmVkaXJlY3RzID0gKHRvUmVzb2x2ZSwgcGFyYW1zKSA9PiB7XG5cdFx0aWYgKCFwYXJhbXMgfHwgIXBhcmFtcy5xdWVyeSB8fCAhcGFyYW1zLnF1ZXJ5LnBhZ2VzKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdGZvciAoY29uc3QgcCBpbiBwYXJhbXMucXVlcnkucGFnZXMpIHtcblx0XHRcdGlmICghT2JqZWN0Lmhhc093bihwYXJhbXMucXVlcnkucGFnZXMsIHApKSB7XG5cdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0fVxuXHRcdFx0cmVzb2x2ZU9uZShwYXJhbXMucXVlcnkucGFnZXNbcF0sIHRvUmVzb2x2ZSk7XG5cdFx0fVxuXHR9O1xuXHRjb25zdCByZXNvbHZlTXVsdGkgPSAodG9SZXNvbHZlLCBjYWxsYmFjaykgPT4ge1xuXHRcdGxldCBpO1xuXHRcdGZvciAoaSA9IDA7IGkgPCB0b1Jlc29sdmUubGVuZ3RoOyBpKyspIHtcblx0XHRcdHRvUmVzb2x2ZVtpXS5kYWIgPSBudWxsO1xuXHRcdFx0dG9SZXNvbHZlW2ldLmRhYklucHV0ID0gdG9SZXNvbHZlW2ldLmxhc3RJbnB1dDtcblx0XHR9XG5cdFx0aWYgKG5vU3VnZ2VzdGlvbnMpIHtcblx0XHRcdGNhbGxiYWNrKHRvUmVzb2x2ZSk7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdGNvbnN0IHBhcmFtcyA9IHtcblx0XHRcdGFjdGlvbjogJ3F1ZXJ5Jyxcblx0XHRcdGZvcm1hdDogJ2pzb24nLFxuXHRcdFx0cHJvcDogJ2luZm98bGlua3N8Y2F0ZWdvcmllc3xjYXRlZ29yeWluZm8nLFxuXHRcdFx0cGxuYW1lc3BhY2U6ICcxNCcsXG5cdFx0XHRwbGxpbWl0OiB0b1Jlc29sdmUubGVuZ3RoICogMTAsXG5cdFx0XHRjbGxpbWl0OiB0b1Jlc29sdmUubGVuZ3RoICogMTAsXG5cdFx0fTtcblx0XHRjb25zdCB0aXRsZXMgPSBbXTtcblx0XHRmb3IgKGkgPSAwOyBpIDwgdG9SZXNvbHZlLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRsZXQgdiA9IHRvUmVzb2x2ZVtpXS5kYWJJbnB1dDtcblx0XHRcdHYgPSByZXBsYWNlU2hvcnRjdXRzKHYsIEhDLnNob3J0Y3V0cyk7XG5cdFx0XHR0b1Jlc29sdmVbaV0uZGFiSW5wdXRDbGVhbmVkID0gdjtcblx0XHRcdHRpdGxlc1t0aXRsZXMubGVuZ3RoXSA9IGBDYXRlZ29yeToke3Z9YDtcblx0XHR9XG5cdFx0cGFyYW1zLnRpdGxlcyA9IHRpdGxlcy5qb2luKCd8Jyk7XG5cdFx0YXBpLmdldChwYXJhbXMpXG5cdFx0XHQuZG9uZSgoanNvbikgPT4ge1xuXHRcdFx0XHRyZXNvbHZlUmVkaXJlY3RzKHRvUmVzb2x2ZSwganNvbik7XG5cdFx0XHRcdGNhbGxiYWNrKHRvUmVzb2x2ZSk7XG5cdFx0XHR9KVxuXHRcdFx0LmZhaWwoKHJlcSkgPT4ge1xuXHRcdFx0XHRpZiAoIXJlcSkge1xuXHRcdFx0XHRcdG5vU3VnZ2VzdGlvbnMgPSB0cnVlO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGNhbGxiYWNrKHRvUmVzb2x2ZSk7XG5cdFx0XHR9KTtcblx0fTtcblx0Y29uc3QgbWFrZUFjdGl2ZSA9ICh3aGljaCkgPT4ge1xuXHRcdGlmICh3aGljaC5pc19hY3RpdmUpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0Zm9yIChjb25zdCBlZGl0b3Igb2YgZWRpdG9ycykge1xuXHRcdFx0aWYgKGVkaXRvciAhPT0gd2hpY2gpIHtcblx0XHRcdFx0ZWRpdG9yLmluYWN0aXZhdGUoKTtcblx0XHRcdH1cblx0XHR9XG5cdFx0d2hpY2guaXNfYWN0aXZlID0gdHJ1ZTtcblx0XHRpZiAod2hpY2guZGFiKSB7XG5cdFx0XHRzaG93RGFiKHdoaWNoKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Ly8gQ2hlY2sgZm9yIHByb2dyYW1tYXRpYyB2YWx1ZSBjaGFuZ2VzLlxuXHRcdFx0Y29uc3QgZXhwZWN0ZWRJbnB1dCA9IHdoaWNoLmxhc3RSZWFsSW5wdXQgfHwgd2hpY2gubGFzdElucHV0IHx8ICcnO1xuXHRcdFx0Y29uc3QgYWN0dWFsVmFsdWUgPSB3aGljaC50ZXh0LnZhbHVlIHx8ICcnO1xuXHRcdFx0aWYgKFxuXHRcdFx0XHQoZXhwZWN0ZWRJbnB1dC5sZW5ndGggPT09IDAgJiYgYWN0dWFsVmFsdWUubGVuZ3RoID4gMCkgfHxcblx0XHRcdFx0KGV4cGVjdGVkSW5wdXQubGVuZ3RoID4gMCAmJiBhY3R1YWxWYWx1ZS5pbmRleE9mKGV4cGVjdGVkSW5wdXQpKVxuXHRcdFx0KSB7XG5cdFx0XHRcdC8vIFNvbWVob3cgdGhlIGZpZWxkJ3MgdmFsdWUgYXBwZWFycyB0byBoYXZlIGNoYW5nZWQsIGFuZCB3aGljaC5sYXN0U2VsZWN0aW9uIHRoZXJlZm9yZSBpcyBubyBsb25nZXIgdmFsaWQuIFRyeSB0byBzZXQgdGhlXG5cdFx0XHRcdC8vIGN1cnNvciBhdCB0aGUgZW5kIG9mIHRoZSBjYXRlZ29yeSwgYW5kIGRvIG5vdCBkaXNwbGF5IHRoZSBvbGQgc3VnZ2VzdGlvbiBsaXN0LlxuXHRcdFx0XHR3aGljaC5zaG93c0xpc3QgPSBmYWxzZTtcblx0XHRcdFx0Y29uc3QgdiA9IGFjdHVhbFZhbHVlLnNwbGl0KCd8Jyk7XG5cdFx0XHRcdFt3aGljaC5sYXN0SW5wdXRdID0gdjtcblx0XHRcdFx0d2hpY2gubGFzdFJlYWxJbnB1dCA9IHdoaWNoLmxhc3RJbnB1dDtcblx0XHRcdFx0aWYgKHYubGVuZ3RoID4gMSkge1xuXHRcdFx0XHRcdFssIHdoaWNoLmN1cnJlbnRLZXldID0gdjtcblx0XHRcdFx0fVxuXHRcdFx0XHR3aGljaC5sYXN0U2VsZWN0aW9uICYmPSB7XG5cdFx0XHRcdFx0c3RhcnQ6IHZbMF0ubGVuZ3RoLFxuXHRcdFx0XHRcdGVuZDogdlswXS5sZW5ndGgsXG5cdFx0XHRcdH07XG5cdFx0XHR9XG5cdFx0XHRpZiAod2hpY2guc2hvd3NMaXN0KSB7XG5cdFx0XHRcdHdoaWNoLmRpc3BsYXlMaXN0KCk7XG5cdFx0XHR9XG5cdFx0XHRpZiAod2hpY2gubGFzdFNlbGVjdGlvbikge1xuXHRcdFx0XHRzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0XHR3aGljaC5zZXRTZWxlY3Rpb24od2hpY2gubGFzdFNlbGVjdGlvbi5zdGFydCwgd2hpY2gubGFzdFNlbGVjdGlvbi5lbmQpO1xuXHRcdFx0XHR9LCAwKTtcblx0XHRcdH1cblx0XHR9XG5cdH07XG5cdGNvbnN0IHNob3dEYWIgPSAod2hpY2gpID0+IHtcblx0XHRpZiAod2hpY2guaXNfYWN0aXZlKSB7XG5cdFx0XHR3aGljaC5zaG93U3VnZ2VzdGlvbnMod2hpY2guZGFiLCBmYWxzZSwgbnVsbCwgbnVsbCk7IC8vIGRvIGF1dG9jb21wbGV0aW9uLCBubyBrZXksIG5vIGVuZ2luZSBzZWxlY3RvclxuXHRcdFx0d2hpY2guZGFiID0gbnVsbDtcblx0XHR9IGVsc2Uge1xuXHRcdFx0bWFrZUFjdGl2ZSh3aGljaCk7XG5cdFx0fVxuXHR9O1xuXHRjb25zdCBtdWx0aVN1Ym1pdCA9ICgpID0+IHtcblx0XHRjb25zdCB0b1Jlc29sdmUgPSBbXTtcblx0XHRmb3IgKGNvbnN0IGVkaXRvciBvZiBlZGl0b3JzKSB7XG5cdFx0XHRpZiAoZWRpdG9yLnN0YXRlID09PSBDSEFOR0VfUEVORElORyB8fCBlZGl0b3Iuc3RhdGUgPT09IE9QRU4pIHtcblx0XHRcdFx0dG9SZXNvbHZlW3RvUmVzb2x2ZS5sZW5ndGhdID0gZWRpdG9yO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRpZiAodG9SZXNvbHZlLmxlbmd0aCA9PT0gMCkge1xuXHRcdFx0aW5pdGlhdGVFZGl0KFxuXHRcdFx0XHQoZmFpbHVyZSkgPT4ge1xuXHRcdFx0XHRcdHBlcmZvcm1DaGFuZ2VzKGZhaWx1cmUpO1xuXHRcdFx0XHR9LFxuXHRcdFx0XHQobXNnKSA9PiB7XG5cdFx0XHRcdFx0dm9pZCBtdy5ub3RpZnkobXNnLCB7dGFnOiAnaG90Q2F0J30pO1xuXHRcdFx0XHR9XG5cdFx0XHQpO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRyZXNvbHZlTXVsdGkodG9SZXNvbHZlLCAocmVzb2x2ZWQpID0+IHtcblx0XHRcdGxldCBmaXJzdERhYiA9IG51bGw7XG5cdFx0XHRsZXQgZG9udENoYW5nZSA9IGZhbHNlO1xuXHRcdFx0Zm9yIChjb25zdCBlbGVtZW50IG9mIHJlc29sdmVkKSB7XG5cdFx0XHRcdGlmIChlbGVtZW50Lmxhc3RJbnB1dCA9PT0gZWxlbWVudC5kYWJJbnB1dCkge1xuXHRcdFx0XHRcdGlmIChlbGVtZW50LmRhYikge1xuXHRcdFx0XHRcdFx0Zmlyc3REYWIgfHw9IGVsZW1lbnQ7XG5cdFx0XHRcdFx0fSBlbHNlIGlmIChlbGVtZW50LmFjY2VwdENoZWNrKHRydWUpKSB7XG5cdFx0XHRcdFx0XHRlbGVtZW50LmNvbW1pdCgpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHQvLyBXZSBkaWRuJ3QgZGlzYWJsZSBhbGwgdGhlIG9wZW4gZWRpdG9ycywgYnV0IHdlIGRpZCBhc3luY2hyb25vdXMgY2FsbHMuIEl0IGlzXG5cdFx0XHRcdFx0Ly8gdGhlb3JldGljYWxseSBwb3NzaWJsZSB0aGF0IHRoZSB1c2VyIGNoYW5nZWQgc29tZXRoaW5nLi4uXG5cdFx0XHRcdFx0ZG9udENoYW5nZSA9IHRydWU7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdGlmIChmaXJzdERhYikge1xuXHRcdFx0XHRzaG93RGFiKGZpcnN0RGFiKTtcblx0XHRcdH0gZWxzZSBpZiAoIWRvbnRDaGFuZ2UpIHtcblx0XHRcdFx0aW5pdGlhdGVFZGl0KFxuXHRcdFx0XHRcdChmYWlsdXJlKSA9PiB7XG5cdFx0XHRcdFx0XHRwZXJmb3JtQ2hhbmdlcyhmYWlsdXJlKTtcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdChtc2cpID0+IHtcblx0XHRcdFx0XHRcdHZvaWQgbXcubm90aWZ5KG1zZywge3RhZzogJ2hvdENhdCd9KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdCk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH07XG5cdGNvbnN0IHNldE11bHRpSW5wdXQgPSAoKSA9PiB7XG5cdFx0aWYgKGNvbW1pdEJ1dHRvbiB8fCBvblVwbG9hZCkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRjb21taXRCdXR0b24gPSBtYWtlKCdpbnB1dCcpO1xuXHRcdGNvbW1pdEJ1dHRvbi50eXBlID0gJ2J1dHRvbic7XG5cdFx0Y29tbWl0QnV0dG9uLnZhbHVlID0gZ2V0TWVzc2FnZSgnbWVzc2FnZXMtY29tbWl0Jyk7XG5cdFx0Y29tbWl0QnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgbXVsdGlTdWJtaXQpO1xuXHRcdGlmIChtdWx0aVNwYW4pIHtcblx0XHRcdG11bHRpU3Bhbi5yZXBsYWNlV2l0aChjb21taXRCdXR0b24pO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRjYXRMaW5lLmFwcGVuZChjb21taXRCdXR0b24pO1xuXHRcdH1cblx0fTtcblx0Y29uc3QgY2hlY2tNdWx0aUlucHV0ID0gKCkgPT4ge1xuXHRcdGlmICghY29tbWl0QnV0dG9uKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdGxldCBoYXNDaGFuZ2VzID0gZmFsc2U7XG5cdFx0Zm9yIChjb25zdCBlZGl0b3Igb2YgZWRpdG9ycykge1xuXHRcdFx0aWYgKGVkaXRvci5zdGF0ZSAhPT0gVU5DSEFOR0VEKSB7XG5cdFx0XHRcdGhhc0NoYW5nZXMgPSB0cnVlO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdH1cblx0XHR9XG5cdFx0Y29tbWl0QnV0dG9uLmRpc2FibGVkID0gIWhhc0NoYW5nZXM7XG5cdH07XG5cdGNvbnN0IHN1Z2dlc3Rpb25FbmdpbmVzID0ge1xuXHRcdG9wZW5zZWFyY2g6IHtcblx0XHRcdHVyaTogYCR7bXcuY29uZmlnLmdldChcblx0XHRcdFx0J3dnU2NyaXB0UGF0aCdcblx0XHRcdCl9L2FwaS5waHA/Zm9ybWF0PWpzb24mYWN0aW9uPW9wZW5zZWFyY2gmbmFtZXNwYWNlPTE0JmxpbWl0PTMwJnNlYXJjaD1DYXRlZ29yeTokMWAsXG5cdFx0XHQvLyAkMSA9IHNlYXJjaCB0ZXJtXG5cdFx0XHQvLyBGdW5jdGlvbiB0byBjb252ZXJ0IHJlc3VsdCBvZiB1cmkgaW50byBhbiBhcnJheSBvZiBjYXRlZ29yeSBuYW1lc1xuXHRcdFx0aGFuZGxlcjogKHF1ZXJ5UmVzdWx0LCBxdWVyeUtleSkgPT4ge1xuXHRcdFx0XHRpZiAocXVlcnlSZXN1bHQgJiYgcXVlcnlSZXN1bHQubGVuZ3RoID49IDIpIHtcblx0XHRcdFx0XHRjb25zdCBrZXkgPSBxdWVyeVJlc3VsdFswXS5zbGljZShNYXRoLm1heCgwLCBxdWVyeVJlc3VsdFswXS5pbmRleE9mKCc6JykgKyAxKSk7XG5cdFx0XHRcdFx0Y29uc3QgWywgdGl0bGVzXSA9IHF1ZXJ5UmVzdWx0O1xuXHRcdFx0XHRcdGxldCBleGlzdHMgPSBmYWxzZTtcblx0XHRcdFx0XHRjYXRfcHJlZml4IHx8PSBuZXcgUmVnRXhwKGBeKCR7SEMuY2F0ZWdvcnlfcmVnZXhwfSk6YCk7XG5cdFx0XHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCB0aXRsZXMubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0XHRcdGNhdF9wcmVmaXgubGFzdEluZGV4ID0gMDtcblx0XHRcdFx0XHRcdGNvbnN0IG0gPSBjYXRfcHJlZml4LmV4ZWModGl0bGVzW2ldKTtcblx0XHRcdFx0XHRcdGlmIChtICYmIG0ubGVuZ3RoID4gMSkge1xuXHRcdFx0XHRcdFx0XHR0aXRsZXNbaV0gPSB0aXRsZXNbaV0uc2xpY2UoTWF0aC5tYXgoMCwgdGl0bGVzW2ldLmluZGV4T2YoJzonKSArIDEpKTsgLy8gcm0gbmFtZXNwYWNlXG5cdFx0XHRcdFx0XHRcdGlmIChrZXkgPT09IHRpdGxlc1tpXSkge1xuXHRcdFx0XHRcdFx0XHRcdGV4aXN0cyA9IHRydWU7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdHRpdGxlcy5zcGxpY2UoaSwgMSk7IC8vIE5vcGUsIGl0J3Mgbm90IGEgY2F0ZWdvcnkgYWZ0ZXIgYWxsLlxuXHRcdFx0XHRcdFx0XHRpLS07XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHRpdGxlcy5leGlzdHMgPSBleGlzdHM7XG5cdFx0XHRcdFx0aWYgKHF1ZXJ5S2V5ICE9PSBrZXkpIHtcblx0XHRcdFx0XHRcdHRpdGxlcy5ub3JtYWxpemVkID0ga2V5O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHQvLyBSZW1lbWJlciB0aGUgTkZDIG5vcm1hbGl6ZWQga2V5IHdlIGdvdCBiYWNrIGZyb20gdGhlIHNlcnZlclxuXHRcdFx0XHRcdHJldHVybiB0aXRsZXM7XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIG51bGw7XG5cdFx0XHR9LFxuXHRcdH0sXG5cdFx0aW50ZXJuYWxzZWFyY2g6IHtcblx0XHRcdHVyaTogYCR7bXcuY29uZmlnLmdldChcblx0XHRcdFx0J3dnU2NyaXB0UGF0aCdcblx0XHRcdCl9L2FwaS5waHA/Zm9ybWF0PWpzb24mYWN0aW9uPXF1ZXJ5Jmxpc3Q9YWxscGFnZXMmYXBuYW1lc3BhY2U9MTQmYXBsaW1pdD0zMCZhcGZyb209JDEmYXBwcmVmaXg9JDFgLFxuXHRcdFx0aGFuZGxlcjogKHF1ZXJ5UmVzdWx0KSA9PiB7XG5cdFx0XHRcdGlmIChxdWVyeVJlc3VsdCAmJiBxdWVyeVJlc3VsdC5xdWVyeSAmJiBxdWVyeVJlc3VsdC5xdWVyeS5hbGxwYWdlcykge1xuXHRcdFx0XHRcdGNvbnN0IHRpdGxlcyA9IHF1ZXJ5UmVzdWx0LnF1ZXJ5LmFsbHBhZ2VzO1xuXHRcdFx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgdGl0bGVzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdFx0XHR0aXRsZXNbaV0gPSB0aXRsZXNbaV0udGl0bGUuc2xpY2UoTWF0aC5tYXgoMCwgdGl0bGVzW2ldLnRpdGxlLmluZGV4T2YoJzonKSArIDEpKTtcblx0XHRcdFx0XHR9IC8vIHJtIG5hbWVzcGFjZVxuXHRcdFx0XHRcdHJldHVybiB0aXRsZXM7XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIG51bGw7XG5cdFx0XHR9LFxuXHRcdH0sXG5cdFx0ZXhpc3RzOiB7XG5cdFx0XHR1cmk6IGAke213LmNvbmZpZy5nZXQoJ3dnU2NyaXB0UGF0aCcpfS9hcGkucGhwP2Zvcm1hdD1qc29uJmFjdGlvbj1xdWVyeSZwcm9wPWluZm8mdGl0bGVzPUNhdGVnb3J5OiQxYCxcblx0XHRcdGhhbmRsZXI6IChxdWVyeVJlc3VsdCwgcXVlcnlLZXkpID0+IHtcblx0XHRcdFx0aWYgKHF1ZXJ5UmVzdWx0ICYmIHF1ZXJ5UmVzdWx0LnF1ZXJ5ICYmIHF1ZXJ5UmVzdWx0LnF1ZXJ5LnBhZ2VzICYmICFxdWVyeVJlc3VsdC5xdWVyeS5wYWdlc1stMV0pIHtcblx0XHRcdFx0XHQvLyBTaG91bGQgaGF2ZSBleGFjdGx5IDFcblx0XHRcdFx0XHRmb3IgKGNvbnN0IHAgaW4gcXVlcnlSZXN1bHQucXVlcnkucGFnZXMpIHtcblx0XHRcdFx0XHRcdGlmICghT2JqZWN0Lmhhc093bihxdWVyeVJlc3VsdC5xdWVyeS5wYWdlcywgcCkpIHtcblx0XHRcdFx0XHRcdFx0Y29udGludWU7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRsZXQgX3RpdGxlID0gcXVlcnlSZXN1bHQucXVlcnkucGFnZXNbcF0udGl0bGU7XG5cdFx0XHRcdFx0XHRfdGl0bGUgPSBfdGl0bGUuc2xpY2UoTWF0aC5tYXgoMCwgX3RpdGxlLmluZGV4T2YoJzonKSArIDEpKTtcblx0XHRcdFx0XHRcdGNvbnN0IHRpdGxlcyA9IFtfdGl0bGVdO1xuXHRcdFx0XHRcdFx0dGl0bGVzLmV4aXN0cyA9IHRydWU7XG5cdFx0XHRcdFx0XHRpZiAocXVlcnlLZXkgIT09IF90aXRsZSkge1xuXHRcdFx0XHRcdFx0XHR0aXRsZXMubm9ybWFsaXplZCA9IF90aXRsZTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdC8vIE5GQ1xuXHRcdFx0XHRcdFx0cmV0dXJuIHRpdGxlcztcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIG51bGw7XG5cdFx0XHR9LFxuXHRcdH0sXG5cdFx0c3ViY2F0ZWdvcmllczoge1xuXHRcdFx0dXJpOiBgJHttdy5jb25maWcuZ2V0KFxuXHRcdFx0XHQnd2dTY3JpcHRQYXRoJ1xuXHRcdFx0KX0vYXBpLnBocD9mb3JtYXQ9anNvbiZhY3Rpb249cXVlcnkmbGlzdD1jYXRlZ29yeW1lbWJlcnMmY210eXBlPXN1YmNhdCZjbWxpbWl0PW1heCZjbXRpdGxlPUNhdGVnb3J5OiQxYCxcblx0XHRcdGhhbmRsZXI6IChxdWVyeVJlc3VsdCkgPT4ge1xuXHRcdFx0XHRpZiAocXVlcnlSZXN1bHQgJiYgcXVlcnlSZXN1bHQucXVlcnkgJiYgcXVlcnlSZXN1bHQucXVlcnkuY2F0ZWdvcnltZW1iZXJzKSB7XG5cdFx0XHRcdFx0Y29uc3QgdGl0bGVzID0gcXVlcnlSZXN1bHQucXVlcnkuY2F0ZWdvcnltZW1iZXJzO1xuXHRcdFx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgdGl0bGVzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdFx0XHR0aXRsZXNbaV0gPSB0aXRsZXNbaV0udGl0bGUuc2xpY2UoTWF0aC5tYXgoMCwgdGl0bGVzW2ldLnRpdGxlLmluZGV4T2YoJzonKSArIDEpKTtcblx0XHRcdFx0XHR9IC8vIHJtIG5hbWVzcGFjZVxuXHRcdFx0XHRcdHJldHVybiB0aXRsZXM7XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIG51bGw7XG5cdFx0XHR9LFxuXHRcdH0sXG5cdFx0cGFyZW50Y2F0ZWdvcmllczoge1xuXHRcdFx0dXJpOiBgJHttdy5jb25maWcuZ2V0KFxuXHRcdFx0XHQnd2dTY3JpcHRQYXRoJ1xuXHRcdFx0KX0vYXBpLnBocD9mb3JtYXQ9anNvbiZhY3Rpb249cXVlcnkmcHJvcD1jYXRlZ29yaWVzJnRpdGxlcz1DYXRlZ29yeTokMSZjbGxpbWl0PW1heGAsXG5cdFx0XHRoYW5kbGVyOiAocXVlcnlSZXN1bHQpID0+IHtcblx0XHRcdFx0aWYgKHF1ZXJ5UmVzdWx0ICYmIHF1ZXJ5UmVzdWx0LnF1ZXJ5ICYmIHF1ZXJ5UmVzdWx0LnF1ZXJ5LnBhZ2VzKSB7XG5cdFx0XHRcdFx0Zm9yIChjb25zdCBwIGluIHF1ZXJ5UmVzdWx0LnF1ZXJ5LnBhZ2VzKSB7XG5cdFx0XHRcdFx0XHRpZiAocXVlcnlSZXN1bHQucXVlcnkucGFnZXNbcF0uY2F0ZWdvcmllcykge1xuXHRcdFx0XHRcdFx0XHRjb25zdCB0aXRsZXMgPSBxdWVyeVJlc3VsdC5xdWVyeS5wYWdlc1twXS5jYXRlZ29yaWVzO1xuXHRcdFx0XHRcdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IHRpdGxlcy5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRcdFx0XHRcdHRpdGxlc1tpXSA9IHRpdGxlc1tpXS50aXRsZS5zbGljZShNYXRoLm1heCgwLCB0aXRsZXNbaV0udGl0bGUuaW5kZXhPZignOicpICsgMSkpO1xuXHRcdFx0XHRcdFx0XHR9IC8vIHJtIG5hbWVzcGFjZVxuXHRcdFx0XHRcdFx0XHRyZXR1cm4gdGl0bGVzO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gbnVsbDtcblx0XHRcdH0sXG5cdFx0fSxcblx0fTtcblx0Y29uc3Qgc3VnZ2VzdGlvbkNvbmZpZ3MgPSB7XG5cdFx0c2VhcmNoaW5kZXg6IHtcblx0XHRcdG5hbWU6ICdTZWFyY2ggaW5kZXgnLFxuXHRcdFx0ZW5naW5lczogWydvcGVuc2VhcmNoJ10sXG5cdFx0XHRjYWNoZToge30sXG5cdFx0XHRzaG93OiB0cnVlLFxuXHRcdFx0dGVtcDogZmFsc2UsXG5cdFx0XHRub0NvbXBsZXRpb246IGZhbHNlLFxuXHRcdH0sXG5cdFx0cGFnZWxpc3Q6IHtcblx0XHRcdG5hbWU6ICdQYWdlIGxpc3QnLFxuXHRcdFx0ZW5naW5lczogWydpbnRlcm5hbHNlYXJjaCcsICdleGlzdHMnXSxcblx0XHRcdGNhY2hlOiB7fSxcblx0XHRcdHNob3c6IHRydWUsXG5cdFx0XHR0ZW1wOiBmYWxzZSxcblx0XHRcdG5vQ29tcGxldGlvbjogZmFsc2UsXG5cdFx0fSxcblx0XHRjb21iaW5lZDoge1xuXHRcdFx0bmFtZTogJ0NvbWJpbmVkIHNlYXJjaCcsXG5cdFx0XHRlbmdpbmVzOiBbJ29wZW5zZWFyY2gnLCAnaW50ZXJuYWxzZWFyY2gnXSxcblx0XHRcdGNhY2hlOiB7fSxcblx0XHRcdHNob3c6IHRydWUsXG5cdFx0XHR0ZW1wOiBmYWxzZSxcblx0XHRcdG5vQ29tcGxldGlvbjogZmFsc2UsXG5cdFx0fSxcblx0XHRzdWJjYXQ6IHtcblx0XHRcdG5hbWU6ICdTdWJjYXRlZ29yaWVzJyxcblx0XHRcdGVuZ2luZXM6IFsnc3ViY2F0ZWdvcmllcyddLFxuXHRcdFx0Y2FjaGU6IHt9LFxuXHRcdFx0c2hvdzogdHJ1ZSxcblx0XHRcdHRlbXA6IHRydWUsXG5cdFx0XHRub0NvbXBsZXRpb246IHRydWUsXG5cdFx0fSxcblx0XHRwYXJlbnRjYXQ6IHtcblx0XHRcdG5hbWU6ICdQYXJlbnQgY2F0ZWdvcmllcycsXG5cdFx0XHRlbmdpbmVzOiBbJ3BhcmVudGNhdGVnb3JpZXMnXSxcblx0XHRcdGNhY2hlOiB7fSxcblx0XHRcdHNob3c6IHRydWUsXG5cdFx0XHR0ZW1wOiB0cnVlLFxuXHRcdFx0bm9Db21wbGV0aW9uOiB0cnVlLFxuXHRcdH0sXG5cdH07XG5cdC8vIEV2ZW50IGtleUNvZGVzIHRoYXQgd2UgaGFuZGxlIGluIHRoZSB0ZXh0IGlucHV0IGZpZWxkL3N1Z2dlc3Rpb24gbGlzdC5cblx0Y29uc3QgQlMgPSA4O1xuXHRjb25zdCBUQUIgPSA5O1xuXHRjb25zdCBSRVQgPSAxMztcblx0Y29uc3QgRVNDID0gMjc7XG5cdGNvbnN0IFNQQUNFID0gMzI7XG5cdGNvbnN0IFBHVVAgPSAzMztcblx0Y29uc3QgUEdET1dOID0gMzQ7XG5cdGNvbnN0IFVQID0gMzg7XG5cdGNvbnN0IERPV04gPSA0MDtcblx0Y29uc3QgREVMID0gNDY7XG5cdGNvbnN0IElNRSA9IDIyOTtcblx0Y2xhc3MgQ2F0ZWdvcnlFZGl0b3Ige1xuXHRcdGNvbnN0cnVjdG9yKC4uLmFyZ3MpIHtcblx0XHRcdHRoaXMuaW5pdGlhbGl6ZSguLi5hcmdzKTtcblx0XHR9XG5cdFx0aXNDb21wb3NpdGlvblN0YXJ0ID0gZmFsc2U7XG5cdFx0aW5pdGlhbGl6ZShsaW5lLCBzcGFuLCBhZnRlciwga2V5LCBpc19oaWRkZW4pIHtcblx0XHRcdC8vIElmIGEgc3BhbiBpcyBnaXZlbiwgJ2FmdGVyJyBpcyB0aGUgY2F0ZWdvcnkgdGl0bGUsIG90aGVyd2lzZSBpdCBtYXkgYmUgYW4gZWxlbWVudCBhZnRlciB3aGljaCB0b1xuXHRcdFx0Ly8gaW5zZXJ0IHRoZSBuZXcgc3Bhbi4gJ2tleScgaXMgbGlrZXdpc2Ugb3ZlcmxvYWRlZDsgaWYgYSBzcGFuIGlzIGdpdmVuLCBpdCBpcyB0aGUgY2F0ZWdvcnkga2V5IChpZlxuXHRcdFx0Ly8ga25vd24pLCBvdGhlcndpc2UgaXQgaXMgYSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciBhIGJhciBzaGFsbCBiZSBwcmVwZW5kZWQuXG5cdFx0XHRpZiAoc3Bhbikge1xuXHRcdFx0XHRpZiAoaXNfcnRsKSB7XG5cdFx0XHRcdFx0c3Bhbi5kaXIgPSAncnRsJztcblx0XHRcdFx0fVxuXHRcdFx0XHR0aGlzLmlzQWRkQ2F0ZWdvcnkgPSBmYWxzZTtcblx0XHRcdFx0dGhpcy5jYXRMaW5rID0gc3Bhbi5maXJzdENoaWxkO1xuXHRcdFx0XHR0aGlzLm9yaWdpbmFsQ2F0ZWdvcnkgPSBhZnRlcjtcblx0XHRcdFx0dGhpcy5vcmlnaW5hbEtleSA9IGtleSAmJiBrZXkubGVuZ3RoID4gMSA/IGtleS5zbGljZSgxKSA6IG51bGw7IC8vID4gMSBiZWNhdXNlIGl0IGluY2x1ZGVzIHRoZSBsZWFkaW5nIGJhclxuXHRcdFx0XHR0aGlzLm9yaWdpbmFsRXhpc3RzID0gIWhhc0NsYXNzKHRoaXMuY2F0TGluaywgJ25ldycpO1xuXHRcdFx0XHQvLyBDcmVhdGUgY2hhbmdlIGFuZCBkZWwgbGlua3Ncblx0XHRcdFx0dGhpcy5tYWtlTGlua1NwYW4oKTtcblx0XHRcdFx0aWYgKCF0aGlzLm9yaWdpbmFsRXhpc3RzICYmIHRoaXMudXBEb3duTGlua3MpIHtcblx0XHRcdFx0XHR0aGlzLnVwRG93bkxpbmtzLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG5cdFx0XHRcdH1cblx0XHRcdFx0c3Bhbi5hcHBlbmQodGhpcy5saW5rU3Bhbik7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR0aGlzLmlzQWRkQ2F0ZWdvcnkgPSB0cnVlO1xuXHRcdFx0XHQvLyBDcmVhdGUgYWRkIHNwYW4gYW5kIGFwcGVuZCB0byBjYXRMaW5rc1xuXHRcdFx0XHR0aGlzLm9yaWdpbmFsQ2F0ZWdvcnkgPSAnJztcblx0XHRcdFx0dGhpcy5vcmlnaW5hbEtleSA9IG51bGw7XG5cdFx0XHRcdHRoaXMub3JpZ2luYWxFeGlzdHMgPSBmYWxzZTtcblx0XHRcdFx0aWYgKCFuZXdET00pIHtcblx0XHRcdFx0XHRzcGFuID0gbWFrZSgnc3BhbicpO1xuXHRcdFx0XHRcdHNwYW4uY2xhc3NOYW1lID0gJ25vcHJpbnQnO1xuXHRcdFx0XHRcdGlmIChrZXkpIHtcblx0XHRcdFx0XHRcdHNwYW4uYXBwZW5kKG1ha2UoJyB8ICcsIHRydWUpKTtcblx0XHRcdFx0XHRcdGlmIChhZnRlcikge1xuXHRcdFx0XHRcdFx0XHRhZnRlci5wYXJlbnROb2RlLmluc2VydEJlZm9yZShzcGFuLCBhZnRlci5uZXh0U2libGluZyk7XG5cdFx0XHRcdFx0XHRcdGFmdGVyID0gYWZ0ZXIubmV4dFNpYmxpbmc7XG5cdFx0XHRcdFx0XHR9IGVsc2UgaWYgKGxpbmUpIHtcblx0XHRcdFx0XHRcdFx0bGluZS5hcHBlbmQoc3Bhbik7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSBlbHNlIGlmIChsaW5lICYmIGxpbmUuZmlyc3RDaGlsZCkge1xuXHRcdFx0XHRcdFx0c3Bhbi5hcHBlbmQobWFrZSgnICcsIHRydWUpKTtcblx0XHRcdFx0XHRcdGxpbmUuYXBwZW5kKHNwYW4pO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHR0aGlzLmxpbmtTcGFuID0gbWFrZSgnc3BhbicpO1xuXHRcdFx0XHR0aGlzLmxpbmtTcGFuLmNsYXNzTmFtZSA9ICdub3ByaW50IG5vcG9wdXBzIGhvdGNhdGxpbmsnO1xuXHRcdFx0XHRjb25zdCBsaW5rID0gbWFrZSgnYScpO1xuXHRcdFx0XHRsaW5rLmhyZWYgPSAnI2NhdGxpbmtzJztcblx0XHRcdFx0bGluay5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMub3Blbi5iaW5kKHRoaXMpKTtcblx0XHRcdFx0bGluay5hcHBlbmQobWFrZShIQy5saW5rcy5hZGQsIHRydWUpKTtcblx0XHRcdFx0bGluay50aXRsZSA9IGdldE1lc3NhZ2UoJ3Rvb2x0aXBzLWFkZCcpO1xuXHRcdFx0XHR0aGlzLmxpbmtTcGFuLmFwcGVuZChsaW5rKTtcblx0XHRcdFx0c3BhbiA9IG1ha2UobmV3RE9NID8gJ2xpJyA6ICdzcGFuJyk7XG5cdFx0XHRcdHNwYW4uY2xhc3NOYW1lID0gJ25vcHJpbnQnO1xuXHRcdFx0XHRpZiAoaXNfcnRsKSB7XG5cdFx0XHRcdFx0c3Bhbi5kaXIgPSAncnRsJztcblx0XHRcdFx0fVxuXHRcdFx0XHRzcGFuLmFwcGVuZCh0aGlzLmxpbmtTcGFuKTtcblx0XHRcdFx0aWYgKGFmdGVyKSB7XG5cdFx0XHRcdFx0YWZ0ZXIucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoc3BhbiwgYWZ0ZXIubmV4dFNpYmxpbmcpO1xuXHRcdFx0XHR9IGVsc2UgaWYgKGxpbmUpIHtcblx0XHRcdFx0XHRsaW5lLmFwcGVuZChzcGFuKTtcblx0XHRcdFx0fVxuXHRcdFx0XHR0aGlzLm5vcm1hbExpbmtzID0gbnVsbDtcblx0XHRcdFx0dGhpcy51bmRlbExpbmsgPSBudWxsO1xuXHRcdFx0XHR0aGlzLmNhdExpbmsgPSBudWxsO1xuXHRcdFx0fVxuXHRcdFx0dGhpcy5vcmlnaW5hbEhpZGRlbiA9IGlzX2hpZGRlbjtcblx0XHRcdHRoaXMubGluZSA9IGxpbmU7XG5cdFx0XHR0aGlzLmVuZ2luZSA9IEhDLnN1Z2dlc3Rpb25zO1xuXHRcdFx0dGhpcy5zcGFuID0gc3Bhbjtcblx0XHRcdHRoaXMuY3VycmVudENhdGVnb3J5ID0gdGhpcy5vcmlnaW5hbENhdGVnb3J5O1xuXHRcdFx0dGhpcy5jdXJyZW50RXhpc3RzID0gdGhpcy5vcmlnaW5hbEV4aXN0cztcblx0XHRcdHRoaXMuY3VycmVudEhpZGRlbiA9IHRoaXMub3JpZ2luYWxIaWRkZW47XG5cdFx0XHR0aGlzLmN1cnJlbnRLZXkgPSB0aGlzLm9yaWdpbmFsS2V5O1xuXHRcdFx0dGhpcy5zdGF0ZSA9IFVOQ0hBTkdFRDtcblx0XHRcdHRoaXMubGFzdFNhdmVkU3RhdGUgPSBVTkNIQU5HRUQ7XG5cdFx0XHR0aGlzLmxhc3RTYXZlZENhdGVnb3J5ID0gdGhpcy5vcmlnaW5hbENhdGVnb3J5O1xuXHRcdFx0dGhpcy5sYXN0U2F2ZWRLZXkgPSB0aGlzLm9yaWdpbmFsS2V5O1xuXHRcdFx0dGhpcy5sYXN0U2F2ZWRFeGlzdHMgPSB0aGlzLm9yaWdpbmFsRXhpc3RzO1xuXHRcdFx0dGhpcy5sYXN0U2F2ZWRIaWRkZW4gPSB0aGlzLm9yaWdpbmFsSGlkZGVuO1xuXHRcdFx0aWYgKHRoaXMuY2F0TGluayAmJiB0aGlzLmN1cnJlbnRLZXkpIHtcblx0XHRcdFx0dGhpcy5jYXRMaW5rLnRpdGxlID0gdGhpcy5jdXJyZW50S2V5O1xuXHRcdFx0fVxuXHRcdFx0ZWRpdG9yc1tlZGl0b3JzLmxlbmd0aF0gPSB0aGlzO1xuXHRcdH1cblx0XHRtYWtlTGlua1NwYW4oKSB7XG5cdFx0XHR0aGlzLm5vcm1hbExpbmtzID0gbWFrZSgnc3BhbicpO1xuXHRcdFx0bGV0IGxpbmsgPSBudWxsO1xuXHRcdFx0aWYgKHRoaXMub3JpZ2luYWxDYXRlZ29yeSAmJiB0aGlzLm9yaWdpbmFsQ2F0ZWdvcnkubGVuZ3RoID4gMCkge1xuXHRcdFx0XHRsaW5rID0gbWFrZSgnYScpO1xuXHRcdFx0XHRsaW5rLmhyZWYgPSAnI2NhdGxpbmtzJztcblx0XHRcdFx0bGluay5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMucmVtb3ZlLmJpbmQodGhpcykpO1xuXHRcdFx0XHRsaW5rLmFwcGVuZChtYWtlKEhDLmxpbmtzLnJlbW92ZSwgdHJ1ZSkpO1xuXHRcdFx0XHRsaW5rLnRpdGxlID0gZ2V0TWVzc2FnZSgndG9vbHRpcHMtcmVtb3ZlJyk7XG5cdFx0XHRcdHRoaXMubm9ybWFsTGlua3MuYXBwZW5kKG1ha2UoJyAnLCB0cnVlKSk7XG5cdFx0XHRcdHRoaXMubm9ybWFsTGlua3MuYXBwZW5kKGxpbmspO1xuXHRcdFx0fVxuXHRcdFx0aWYgKCFIQy50ZW1wbGF0ZV9jYXRlZ29yaWVzW3RoaXMub3JpZ2luYWxDYXRlZ29yeV0pIHtcblx0XHRcdFx0bGluayA9IG1ha2UoJ2EnKTtcblx0XHRcdFx0bGluay5ocmVmID0gJyNjYXRsaW5rcyc7XG5cdFx0XHRcdGxpbmsuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLm9wZW4uYmluZCh0aGlzKSk7XG5cdFx0XHRcdGxpbmsuYXBwZW5kKG1ha2UoSEMubGlua3MuY2hhbmdlLCB0cnVlKSk7XG5cdFx0XHRcdGxpbmsudGl0bGUgPSBnZXRNZXNzYWdlKCd0b29sdGlwcy1jaGFuZ2UnKTtcblx0XHRcdFx0dGhpcy5ub3JtYWxMaW5rcy5hcHBlbmQobWFrZSgnICcsIHRydWUpKTtcblx0XHRcdFx0dGhpcy5ub3JtYWxMaW5rcy5hcHBlbmQobGluayk7XG5cdFx0XHRcdGlmICghbm9TdWdnZXN0aW9ucyAmJiBIQy51c2VfdXBfZG93bikge1xuXHRcdFx0XHRcdHRoaXMudXBEb3duTGlua3MgPSBtYWtlKCdzcGFuJyk7XG5cdFx0XHRcdFx0bGluayA9IG1ha2UoJ2EnKTtcblx0XHRcdFx0XHRsaW5rLmhyZWYgPSAnI2NhdGxpbmtzJztcblx0XHRcdFx0XHRsaW5rLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5kb3duLmJpbmQodGhpcykpO1xuXHRcdFx0XHRcdGxpbmsuYXBwZW5kKG1ha2UoSEMubGlua3MuZG93biwgdHJ1ZSkpO1xuXHRcdFx0XHRcdGxpbmsudGl0bGUgPSBnZXRNZXNzYWdlKCd0b29sdGlwcy1kb3duJyk7XG5cdFx0XHRcdFx0dGhpcy51cERvd25MaW5rcy5hcHBlbmQobWFrZSgnICcsIHRydWUpKTtcblx0XHRcdFx0XHR0aGlzLnVwRG93bkxpbmtzLmFwcGVuZChsaW5rKTtcblx0XHRcdFx0XHRsaW5rID0gbWFrZSgnYScpO1xuXHRcdFx0XHRcdGxpbmsuaHJlZiA9ICcjY2F0bGlua3MnO1xuXHRcdFx0XHRcdGxpbmsuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLnVwLmJpbmQodGhpcykpO1xuXHRcdFx0XHRcdGxpbmsuYXBwZW5kKG1ha2UoSEMubGlua3MudXAsIHRydWUpKTtcblx0XHRcdFx0XHRsaW5rLnRpdGxlID0gZ2V0TWVzc2FnZSgndG9vbHRpcHMtdXAnKTtcblx0XHRcdFx0XHR0aGlzLnVwRG93bkxpbmtzLmFwcGVuZChtYWtlKCcgJywgdHJ1ZSkpO1xuXHRcdFx0XHRcdHRoaXMudXBEb3duTGlua3MuYXBwZW5kKGxpbmspO1xuXHRcdFx0XHRcdHRoaXMubm9ybWFsTGlua3MuYXBwZW5kKHRoaXMudXBEb3duTGlua3MpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHR0aGlzLmxpbmtTcGFuID0gbWFrZSgnc3BhbicpO1xuXHRcdFx0dGhpcy5saW5rU3Bhbi5jbGFzc05hbWUgPSAnbm9wcmludCBub3BvcHVwcyBob3RjYXRsaW5rJztcblx0XHRcdHRoaXMubGlua1NwYW4uYXBwZW5kKHRoaXMubm9ybWFsTGlua3MpO1xuXHRcdFx0dGhpcy51bmRlbExpbmsgPSBtYWtlKCdzcGFuJyk7XG5cdFx0XHR0aGlzLnVuZGVsTGluay5jbGFzc05hbWUgPSAnbm9wb3B1cHMgaG90Y2F0bGluayc7XG5cdFx0XHR0aGlzLnVuZGVsTGluay5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuXHRcdFx0bGluayA9IG1ha2UoJ2EnKTtcblx0XHRcdGxpbmsuaHJlZiA9ICcjY2F0bGlua3MnO1xuXHRcdFx0bGluay5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMucmVzdG9yZS5iaW5kKHRoaXMpKTtcblx0XHRcdGxpbmsuYXBwZW5kKG1ha2UoSEMubGlua3MucmVzdG9yZSwgdHJ1ZSkpO1xuXHRcdFx0bGluay50aXRsZSA9IGdldE1lc3NhZ2UoJ3Rvb2x0aXBzLXJlc3RvcmUnKTtcblx0XHRcdHRoaXMudW5kZWxMaW5rLmFwcGVuZChtYWtlKCcgJywgdHJ1ZSkpO1xuXHRcdFx0dGhpcy51bmRlbExpbmsuYXBwZW5kKGxpbmspO1xuXHRcdFx0dGhpcy5saW5rU3Bhbi5hcHBlbmQodGhpcy51bmRlbExpbmspO1xuXHRcdH1cblx0XHRpbnZva2VTdWdnZXN0aW9ucyhkb250X2F1dG9jb21wbGV0ZSkge1xuXHRcdFx0aWYgKFxuXHRcdFx0XHR0aGlzLmVuZ2luZSAmJlxuXHRcdFx0XHRzdWdnZXN0aW9uQ29uZmlnc1t0aGlzLmVuZ2luZV0gJiZcblx0XHRcdFx0c3VnZ2VzdGlvbkNvbmZpZ3NbdGhpcy5lbmdpbmVdLnRlbXAgJiZcblx0XHRcdFx0IWRvbnRfYXV0b2NvbXBsZXRlXG5cdFx0XHQpIHtcblx0XHRcdFx0dGhpcy5lbmdpbmUgPSBIQy5zdWdnZXN0aW9ucztcblx0XHRcdH0gLy8gUmVzZXQgdG8gYSBzZWFyY2ggdXBvbiBpbnB1dFxuXHRcdFx0dGhpcy5zdGF0ZSA9IENIQU5HRV9QRU5ESU5HO1xuXHRcdFx0Y29uc3Qgc2VsZiA9IHRoaXM7XG5cdFx0XHRzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0c2VsZi50ZXh0Y2hhbmdlKGRvbnRfYXV0b2NvbXBsZXRlKTtcblx0XHRcdH0sIEhDLnN1Z2dlc3RfZGVsYXkpO1xuXHRcdH1cblx0XHRtYWtlRm9ybSgpIHtcblx0XHRcdGNvbnN0IGZvcm0gPSBtYWtlKCdmb3JtJyk7XG5cdFx0XHRmb3JtLm1ldGhvZCA9ICdQT1NUJztcblx0XHRcdGZvcm0uYWRkRXZlbnRMaXN0ZW5lcignc3VibWl0JywgdGhpcy5hY2NlcHQuYmluZCh0aGlzKSk7XG5cdFx0XHR0aGlzLmZvcm0gPSBmb3JtO1xuXHRcdFx0Y29uc3Qgc2VsZiA9IHRoaXM7XG5cdFx0XHRjb25zdCB0ZXh0ID0gbWFrZSgnaW5wdXQnKTtcblx0XHRcdHRleHQudHlwZSA9ICd0ZXh0Jztcblx0XHRcdHRleHQuc2l6ZSA9IEhDLmVkaXRib3hfd2lkdGg7XG5cdFx0XHRpZiAoIW5vU3VnZ2VzdGlvbnMpIHtcblx0XHRcdFx0Ly8gQmUgY2FyZWZ1bCBoZXJlIHRvIGhhbmRsZSBJTUUgaW5wdXQuIFRoaXMgaXMgYnJvd3Nlci9PUy9JTUUgZGVwZW5kZW50LCBidXQgYmFzaWNhbGx5IHRoZXJlIGFyZSB0d28gbWVjaGFuaXNtczpcblx0XHRcdFx0Ly8gLSBNb2Rlcm4gKERPTSBMZXZlbCAzKSBicm93c2VycyB1c2UgY29tcG9zaXRpb25zdGFydC9jb21wb3NpdGlvbmVuZCBldmVudHMgdG8gc2lnbmFsIGNvbXBvc2l0aW9uOyBpZiB0aGVcblx0XHRcdFx0Ly8gICBjb21wb3NpdGlvbiBpcyBub3QgY2FuY2VsZWQsIHRoZXJlJ2xsIGJlIGEgdGV4dElucHV0IGV2ZW50IGZvbGxvd2luZy4gRHVyaW5nIGEgY29tcG9zaXRpb24ga2V5IGV2ZW50cyBhcmVcblx0XHRcdFx0Ly8gICBlaXRoZXIgYWxsIHN1cHByZXNzZWQgKEZGL0dlY2tvKSwgb3Igb3RoZXJ3aXNlIGhhdmUga2V5RG93biA9PT0gSU1FIGZvciBhbGwga2V5cyAoV2Via2l0KS5cblx0XHRcdFx0Ly8gICAtIFdlYmtpdCBzZW5kcyBhIHRleHRJbnB1dCBmb2xsb3dlZCBieSBrZXlEb3duID09PSBJTUUgYW5kIGEga2V5VXAgd2l0aCB0aGUga2V5IHRoYXQgZW5kZWQgY29tcG9zaXRpb24uXG5cdFx0XHRcdC8vICAgLSBHZWNrbyBkb2Vzbid0IHNlbmQgdGV4dElucHV0IGJ1dCBqdXN0IGEga2V5VXAgd2l0aCB0aGUga2V5IHRoYXQgZW5kZWQgY29tcG9zaXRpb24sIHdpdGhvdXQgc2VuZGluZyBrZXlEb3duXG5cdFx0XHRcdC8vXHQgZmlyc3QuIEdlY2tvIGRvZXNuJ3Qgc2VuZCBhbnkga2V5ZG93biB3aGlsZSBJTUUgaXMgYWN0aXZlLlxuXHRcdFx0XHQvLyAtIE9sZGVyIGJyb3dzZXJzIHNpZ25hbCBjb21wb3NpdGlvbiBieSBrZXlEb3duID09PSBJTUUgZm9yIHRoZSBmaXJzdCBhbmQgc3Vic2VxdWVudCBrZXlzIGZvciBhIGNvbXBvc2l0aW9uLiBUaGVcblx0XHRcdFx0Ly8gICBmaXJzdCBrZXlEb3duICE9PSBJTUUgaXMgY2VydGFpbmx5IGFmdGVyIHRoZSBlbmQgb2YgdGhlIGNvbXBvc2l0aW9uLiBUeXBpY2FsbHksIGNvbXBvc2l0aW9uIGVuZCBjYW4gYWxzbyBiZVxuXHRcdFx0XHQvLyAgIGRldGVjdGVkIGJ5IGEga2V5RG93biBJTUUgd2l0aCBhIGtleVVwIG9mIHNwYWNlLCB0YWIsIGVzY2FwZSwgb3IgcmV0dXJuLlxuXHRcdFx0XHR0ZXh0LmFkZEV2ZW50TGlzdGVuZXIoJ2tleXVwJywgKGV2ZW50KSA9PiB7XG5cdFx0XHRcdFx0Y29uc3Qga2V5ID0gZXZlbnQua2V5IHx8IDA7XG5cdFx0XHRcdFx0aWYgKFxuXHRcdFx0XHRcdFx0c2VsZi5pbWUgJiZcblx0XHRcdFx0XHRcdHNlbGYubGFzdEtleSA9PT0gSU1FICYmXG5cdFx0XHRcdFx0XHQhc2VsZi51c2VzQ29tcG9zaXRpb24gJiZcblx0XHRcdFx0XHRcdChrZXkgPT09IFRBQiB8fCBrZXkgPT09IFJFVCB8fCBrZXkgPT09IEVTQyB8fCBrZXkgPT09IFNQQUNFKVxuXHRcdFx0XHRcdCkge1xuXHRcdFx0XHRcdFx0c2VsZi5pbWUgPSBmYWxzZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0aWYgKHNlbGYuaW1lKSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0aWYgKGtleSA9PT0gVVAgfHwga2V5ID09PSBET1dOIHx8IGtleSA9PT0gUEdVUCB8fCBrZXkgPT09IFBHRE9XTikge1xuXHRcdFx0XHRcdFx0Ly8gSW4gY2FzZSBhIGJyb3dzZXIgZG9lc24ndCBnZW5lcmF0ZSBrZXlwcmVzcyBldmVudHMgZm9yIGFycm93IGtleXMuLi5cblx0XHRcdFx0XHRcdGlmIChzZWxmLmtleUNvdW50ID09PSAwKSB7XG5cdFx0XHRcdFx0XHRcdHJldHVybiBzZWxmLnByb2Nlc3NLZXkoZXZlbnQpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRpZiAoa2V5ID09PSBFU0MgJiYgc2VsZi5sYXN0S2V5ICE9PSBJTUUgJiYgIXNlbGYucmVzZXRLZXlTZWxlY3Rpb24oKSkge1xuXHRcdFx0XHRcdFx0XHQvLyBObyB1bmRvIG9mIGtleSBzZWxlY3Rpb246IHRyZWF0IEVTQyBhcyBcImNhbmNlbFwiLlxuXHRcdFx0XHRcdFx0XHRzZWxmLmNhbmNlbCgpO1xuXHRcdFx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHQvLyBBbHNvIGRvIHRoaXMgZm9yIEVTQyBhcyBhIHdvcmthcm91bmQgZm9yIEZpcmVmb3ggYnVnIDUyNDM2MFxuXHRcdFx0XHRcdFx0Ly8ge0BsaW5rIGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTUyNDM2MH1cblx0XHRcdFx0XHRcdGlmIChzZWxmLmlzQ29tcG9zaXRpb25TdGFydCkge1xuXHRcdFx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRzZWxmLmludm9rZVN1Z2dlc3Rpb25zKGtleSA9PT0gQlMgfHwga2V5ID09PSBERUwgfHwga2V5ID09PSBFU0MpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHRcdFx0fSk7XG5cdFx0XHRcdHRleHQuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIChldmVudCkgPT4ge1xuXHRcdFx0XHRcdGNvbnN0IGtleSA9IGV2ZW50LmtleSB8fCAwO1xuXHRcdFx0XHRcdHNlbGYubGFzdEtleSA9IGtleTtcblx0XHRcdFx0XHRzZWxmLmtleUNvdW50ID0gMDtcblx0XHRcdFx0XHQvLyBET00gTGV2ZWwgPCAzIElNRSBpbnB1dFxuXHRcdFx0XHRcdGlmICghc2VsZi5pbWUgJiYga2V5ID09PSBJTUUgJiYgIXNlbGYudXNlc0NvbXBvc2l0aW9uKSB7XG5cdFx0XHRcdFx0XHQvLyBzZWxmLnVzZXNDb21wb3NpdGlvbiBjYXRjaGVzIGJyb3dzZXJzIHRoYXQgbWF5IGVtaXQgc3B1cmlvdXMga2V5ZG93biBJTUUgYWZ0ZXIgYSBjb21wb3NpdGlvbiBoYXMgZW5kZWRcblx0XHRcdFx0XHRcdHNlbGYuaW1lID0gdHJ1ZTtcblx0XHRcdFx0XHR9IGVsc2UgaWYgKFxuXHRcdFx0XHRcdFx0c2VsZi5pbWUgJiZcblx0XHRcdFx0XHRcdGtleSAhPT0gSU1FICYmXG5cdFx0XHRcdFx0XHQhKChrZXkgPj0gMTYgJiYga2V5IDw9IDIwKSB8fCAoa2V5ID49IDkxICYmIGtleSA8PSA5MykgfHwga2V5ID09PSAxNDQpXG5cdFx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0XHQvLyBJZ25vcmUgY29udHJvbCBrZXlzOiBjdHJsLCBzaGlmdCwgYWx0LCBhbHQgZ3IsIGNhcHMgbG9jaywgd2luZG93cy9hcHBsZSBjbWQga2V5cywgbnVtIGxvY2suIE9ubHkgdGhlIHdpbmRvd3Mga2V5c1xuXHRcdFx0XHRcdFx0Ly8gdGVybWluYXRlIElNRSAoYXBwbGUgY21kIGRvZXNuJ3QpLCBidXQgdGhleSBhbHNvIGNhdXNlIGEgYmx1ciwgc28gaXQncyBPSyB0byBpZ25vcmUgdGhlbSBoZXJlLlxuXHRcdFx0XHRcdFx0Ly8gTm90ZTogU2FmYXJpIDQgKDUzMC4xNykgcHJvcGFnYXRlcyBFU0Mgb3V0IG9mIGFuIElNRSBjb21wb3NpdGlvbiAob2JzZXJ2ZWQgYXQgbGVhc3Qgb24gV2luIFhQKS5cblx0XHRcdFx0XHRcdHNlbGYuaW1lID0gZmFsc2U7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGlmIChzZWxmLmltZSkge1xuXHRcdFx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdC8vIEhhbmRsZSByZXR1cm4gZXhwbGljaXRseSwgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgZm9ybSBzdWJtaXNzaW9uIHRvIGJlIGFibGUgdG8gY2hlY2sgZm9yIGN0cmxcblx0XHRcdFx0XHRpZiAoa2V5ID09PSBSRVQpIHtcblx0XHRcdFx0XHRcdHJldHVybiBzZWxmLmFjY2VwdChldmVudCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdC8vIEluaGliaXQgZGVmYXVsdCBiZWhhdmlvciBvZiBFU0MgKHJldmVydCB0byBsYXN0IHJlYWwgaW5wdXQgaW4gRkY6IHdlIGRvIHRoYXQgb3Vyc2VsdmVzKVxuXHRcdFx0XHRcdHJldHVybiBrZXkgPT09IEVTQyA/IGV2dEtpbGwoZXZlbnQpIDogdHJ1ZTtcblx0XHRcdFx0fSk7XG5cdFx0XHRcdC8vIEFuZCBoYW5kbGUgY29udGludWVkIHByZXNzaW5nIG9mIGFycm93IGtleXNcblx0XHRcdFx0dGV4dC5hZGRFdmVudExpc3RlbmVyKCdrZXlwcmVzcycsIChldmVudCkgPT4ge1xuXHRcdFx0XHRcdHNlbGYua2V5Q291bnQrKztcblx0XHRcdFx0XHRyZXR1cm4gc2VsZi5wcm9jZXNzS2V5KGV2ZW50KTtcblx0XHRcdFx0fSk7XG5cdFx0XHRcdHRleHQuYWRkRXZlbnRMaXN0ZW5lcignZm9jdXMnLCAoKSA9PiB7XG5cdFx0XHRcdFx0bWFrZUFjdGl2ZShzZWxmKTtcblx0XHRcdFx0fSk7XG5cdFx0XHRcdC8vIERvbid0IHRlc3QgZm9yIHRleHQuc2VsZWN0aW9uU3RhcnQgYmVpbmcgZGVmaW5lZDtcblx0XHRcdFx0JCh0ZXh0KS5vbignYmx1cicsIHRoaXMuc2F2ZVZpZXcuYmluZCh0aGlzKSk7XG5cdFx0XHRcdC8vIERPTSBMZXZlbCAzIElNRSBoYW5kbGluZ1xuXHRcdFx0XHR0cnkge1xuXHRcdFx0XHRcdC8vIFNldHRpbmcgbGFzdEtleSA9IElNRSBwcm92aWRlcyBhIGZha2Uga2V5RG93biBmb3IgR2Vja28ncyBzaW5nbGUga2V5VXAgYWZ0ZXIgYSBjbXBvc2l0aW9uLiBJZiB3ZSBkaWRuJ3QgZG8gdGhpcyxcblx0XHRcdFx0XHQvLyBjYW5jZWxsaW5nIGEgY29tcG9zaXRpb24gdmlhIEVTQyB3b3VsZCBhbHNvIGNhbmNlbCBhbmQgY2xvc2UgdGhlIHdob2xlIGNhdGVnb3J5IGlucHV0IGVkaXRvci5cblx0XHRcdFx0XHQkKHRleHQpLm9uKCdjb21wb3NpdGlvbnN0YXJ0JywgKCkgPT4ge1xuXHRcdFx0XHRcdFx0c2VsZi5sYXN0S2V5ID0gSU1FO1xuXHRcdFx0XHRcdFx0c2VsZi51c2VzQ29tcG9zaXRpb24gPSB0cnVlO1xuXHRcdFx0XHRcdFx0c2VsZi5pbWUgPSB0cnVlO1xuXHRcdFx0XHRcdFx0c2VsZi5pc0NvbXBvc2l0aW9uU3RhcnQgPSB0cnVlO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdCQodGV4dCkub24oJ2NvbXBvc2l0aW9uZW5kJywgKCkgPT4ge1xuXHRcdFx0XHRcdFx0c2VsZi5sYXN0S2V5ID0gSU1FO1xuXHRcdFx0XHRcdFx0c2VsZi51c2VzQ29tcG9zaXRpb24gPSB0cnVlO1xuXHRcdFx0XHRcdFx0c2VsZi5pbWUgPSBmYWxzZTtcblx0XHRcdFx0XHRcdHNlbGYuaXNDb21wb3NpdGlvblN0YXJ0ID0gZmFsc2U7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0JCh0ZXh0KS5vbigndGV4dElucHV0JywgKCkgPT4ge1xuXHRcdFx0XHRcdFx0c2VsZi5pbWUgPSBmYWxzZTtcblx0XHRcdFx0XHRcdGlmIChzZWxmLmlzQ29tcG9zaXRpb25TdGFydCkge1xuXHRcdFx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRzZWxmLmludm9rZVN1Z2dlc3Rpb25zKGZhbHNlKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fSBjYXRjaCB7XG5cdFx0XHRcdFx0Ly8gSnVzdCBpbiBjYXNlIHNvbWUgYnJvd3NlcnMgbWlnaHQgcHJvZHVjZSBleGNlcHRpb25zIHdpdGggdGhlc2UgRE9NIExldmVsIDMgZXZlbnRzXG5cdFx0XHRcdH1cblx0XHRcdFx0JCh0ZXh0KS5vbignYmx1cicsICgpID0+IHtcblx0XHRcdFx0XHRzZWxmLnVzZXNDb21wb3NpdGlvbiA9IGZhbHNlO1xuXHRcdFx0XHRcdHNlbGYuaW1lID0gZmFsc2U7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fVxuXHRcdFx0dGhpcy50ZXh0ID0gdGV4dDtcblx0XHRcdHRoaXMuaWNvbiA9IG1ha2UoJ2ltZycpO1xuXHRcdFx0bGV0IGxpc3QgPSBudWxsO1xuXHRcdFx0aWYgKCFub1N1Z2dlc3Rpb25zKSB7XG5cdFx0XHRcdGxpc3QgPSBtYWtlKCdzZWxlY3QnKTtcblx0XHRcdFx0bGlzdC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcblx0XHRcdFx0XHRpZiAoc2VsZi5oaWdobGlnaHRTdWdnZXN0aW9uKDApKSB7XG5cdFx0XHRcdFx0XHRzZWxmLnRleHRjaGFuZ2UoZmFsc2UsIHRydWUpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSk7XG5cdFx0XHRcdGxpc3QuYWRkRXZlbnRMaXN0ZW5lcignZGJsY2xpY2snLCAoZSkgPT4ge1xuXHRcdFx0XHRcdGlmIChzZWxmLmhpZ2hsaWdodFN1Z2dlc3Rpb24oMCkpIHtcblx0XHRcdFx0XHRcdHNlbGYuYWNjZXB0KGUpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSk7XG5cdFx0XHRcdGxpc3QuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgKCkgPT4ge1xuXHRcdFx0XHRcdHNlbGYuaGlnaGxpZ2h0U3VnZ2VzdGlvbigwKTtcblx0XHRcdFx0XHRzZWxmLnRleHQuZm9jdXMoKTtcblx0XHRcdFx0fSk7XG5cdFx0XHRcdGxpc3QuYWRkRXZlbnRMaXN0ZW5lcigna2V5dXAnLCAoZXZlbnQpID0+IHtcblx0XHRcdFx0XHRpZiAoZXZlbnQua2V5ID09PSBFU0MpIHtcblx0XHRcdFx0XHRcdHNlbGYucmVzZXRLZXlTZWxlY3Rpb24oKTtcblx0XHRcdFx0XHRcdHNlbGYudGV4dC5mb2N1cygpO1xuXHRcdFx0XHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHRcdFx0XHRcdHNlbGYudGV4dGNoYW5nZSh0cnVlKTtcblx0XHRcdFx0XHRcdH0sIEhDLnN1Z2dlc3RfZGVsYXkpO1xuXHRcdFx0XHRcdH0gZWxzZSBpZiAoZXZlbnQua2V5ID09PSBSRVQpIHtcblx0XHRcdFx0XHRcdHNlbGYuYWNjZXB0KGV2ZW50KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pO1xuXHRcdFx0XHRpZiAoIUhDLmZpeGVkX3NlYXJjaCkge1xuXHRcdFx0XHRcdGNvbnN0IGVuZ2luZVNlbGVjdG9yID0gbWFrZSgnc2VsZWN0Jyk7XG5cdFx0XHRcdFx0Zm9yIChjb25zdCBrZXkgaW4gc3VnZ2VzdGlvbkNvbmZpZ3MpIHtcblx0XHRcdFx0XHRcdGlmIChzdWdnZXN0aW9uQ29uZmlnc1trZXldLnNob3cpIHtcblx0XHRcdFx0XHRcdFx0Y29uc3Qgb3B0ID0gbWFrZSgnb3B0aW9uJyk7XG5cdFx0XHRcdFx0XHRcdG9wdC52YWx1ZSA9IGtleTtcblx0XHRcdFx0XHRcdFx0aWYgKGtleSA9PT0gdGhpcy5lbmdpbmUpIHtcblx0XHRcdFx0XHRcdFx0XHRvcHQuc2VsZWN0ZWQgPSB0cnVlO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdG9wdC5hcHBlbmQobWFrZShzdWdnZXN0aW9uQ29uZmlnc1trZXldLm5hbWUsIHRydWUpKTtcblx0XHRcdFx0XHRcdFx0ZW5naW5lU2VsZWN0b3IuYXBwZW5kKG9wdCk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGVuZ2luZVNlbGVjdG9yLmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsICgpID0+IHtcblx0XHRcdFx0XHRcdHNlbGYuZW5naW5lID0gc2VsZi5lbmdpbmVTZWxlY3Rvci5vcHRpb25zW3NlbGYuZW5naW5lU2VsZWN0b3Iuc2VsZWN0ZWRJbmRleF0udmFsdWU7XG5cdFx0XHRcdFx0XHRzZWxmLnRleHQuZm9jdXMoKTtcblx0XHRcdFx0XHRcdHNlbGYudGV4dGNoYW5nZSh0cnVlLCB0cnVlKTsgLy8gRG9uJ3QgYXV0b2NvbXBsZXRlLCBmb3JjZSByZS1kaXNwbGF5IG9mIGxpc3Rcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHR0aGlzLmVuZ2luZVNlbGVjdG9yID0gZW5naW5lU2VsZWN0b3I7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdHRoaXMubGlzdCA9IGxpc3Q7XG5cdFx0XHRjb25zdCBidXR0b25fbGFiZWwgPSAoX2lkLCBkZWZhdWx0VGV4dCkgPT4ge1xuXHRcdFx0XHRjb25zdCBsYWJlbCA9IG51bGw7XG5cdFx0XHRcdGlmICghbGFiZWwgfHwgIWxhYmVsLmRhdGEpIHtcblx0XHRcdFx0XHRyZXR1cm4gZGVmYXVsdFRleHQ7XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIGxhYmVsLmRhdGE7XG5cdFx0XHR9O1xuXHRcdFx0Ly8gRG8gbm90IHVzZSB0eXBlICdzdWJtaXQnOyB3ZSBjYW5ub3QgZGV0ZWN0IG1vZGlmaWVyIGtleXMgaWYgd2UgZG9cblx0XHRcdGNvbnN0IE9LID0gbWFrZSgnaW5wdXQnKTtcblx0XHRcdE9LLnR5cGUgPSAnYnV0dG9uJztcblx0XHRcdE9LLnZhbHVlID0gYnV0dG9uX2xhYmVsKCd3cE9rVXBsb2FkTGJsJywgZ2V0TWVzc2FnZSgnbWVzc2FnZXMtb2snKSk7XG5cdFx0XHRPSy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuYWNjZXB0LmJpbmQodGhpcykpO1xuXHRcdFx0dGhpcy5vayA9IE9LO1xuXHRcdFx0Y29uc3QgY2FuY2VsID0gbWFrZSgnaW5wdXQnKTtcblx0XHRcdGNhbmNlbC50eXBlID0gJ2J1dHRvbic7XG5cdFx0XHRjYW5jZWwudmFsdWUgPSBidXR0b25fbGFiZWwoJ3dwQ2FuY2VsVXBsb2FkTGJsJywgZ2V0TWVzc2FnZSgnbWVzc2FnZXMtY2FuY2VsJykpO1xuXHRcdFx0Y2FuY2VsLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5jYW5jZWwuYmluZCh0aGlzKSk7XG5cdFx0XHR0aGlzLmNhbmNlbEJ1dHRvbiA9IGNhbmNlbDtcblx0XHRcdGNvbnN0IHNwYW4gPSBtYWtlKCdzcGFuJyk7XG5cdFx0XHRzcGFuLmNsYXNzTmFtZSA9ICdob3RjYXRpbnB1dCc7XG5cdFx0XHRzcGFuLnN0eWxlLnBvc2l0aW9uID0gJ3JlbGF0aXZlJztcblx0XHRcdHNwYW4uYXBwZW5kKHRleHQpO1xuXHRcdFx0c3Bhbi5zdHlsZS53aGl0ZVNwYWNlID0gJ25vd3JhcCc7XG5cdFx0XHRpZiAobGlzdCkge1xuXHRcdFx0XHRzcGFuLmFwcGVuZChsaXN0KTtcblx0XHRcdH1cblx0XHRcdGlmICh0aGlzLmVuZ2luZVNlbGVjdG9yKSB7XG5cdFx0XHRcdHNwYW4uYXBwZW5kKHRoaXMuZW5naW5lU2VsZWN0b3IpO1xuXHRcdFx0fVxuXHRcdFx0aWYgKCFub1N1Z2dlc3Rpb25zKSB7XG5cdFx0XHRcdHNwYW4uYXBwZW5kKHRoaXMuaWNvbik7XG5cdFx0XHR9XG5cdFx0XHRzcGFuLmFwcGVuZChPSyk7XG5cdFx0XHRzcGFuLmFwcGVuZChjYW5jZWwpO1xuXHRcdFx0Zm9ybS5hcHBlbmQoc3Bhbik7XG5cdFx0XHRmb3JtLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG5cdFx0XHR0aGlzLnNwYW4uYXBwZW5kKGZvcm0pO1xuXHRcdH1cblx0XHRkaXNwbGF5KGV2ZW50KSB7XG5cdFx0XHRpZiAodGhpcy5pc0FkZENhdGVnb3J5ICYmICFvblVwbG9hZCAmJiB0aGlzLmxpbmUpIHtcblx0XHRcdFx0bmV3IENhdGVnb3J5RWRpdG9yKHRoaXMubGluZSwgbnVsbCwgdGhpcy5zcGFuLCB0cnVlKTsgLy8gQ3JlYXRlIGEgbmV3IG9uZVxuXHRcdFx0fVxuXHRcdFx0aWYgKCFjb21taXRCdXR0b24gJiYgIW9uVXBsb2FkKSB7XG5cdFx0XHRcdGZvciAoY29uc3QgZWRpdG9yIG9mIGVkaXRvcnMpIHtcblx0XHRcdFx0XHRpZiAoZWRpdG9yLnN0YXRlICE9PSBVTkNIQU5HRUQpIHtcblx0XHRcdFx0XHRcdHNldE11bHRpSW5wdXQoKTtcblx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0aWYgKCF0aGlzLmZvcm0pIHtcblx0XHRcdFx0dGhpcy5tYWtlRm9ybSgpO1xuXHRcdFx0fVxuXHRcdFx0aWYgKHRoaXMubGlzdCkge1xuXHRcdFx0XHR0aGlzLmxpc3Quc3R5bGUuZGlzcGxheSA9ICdub25lJztcblx0XHRcdH1cblx0XHRcdGlmICh0aGlzLmVuZ2luZVNlbGVjdG9yKSB7XG5cdFx0XHRcdHRoaXMuZW5naW5lU2VsZWN0b3Iuc3R5bGUuZGlzcGxheSA9ICdub25lJztcblx0XHRcdH1cblx0XHRcdHRoaXMuY3VycmVudENhdGVnb3J5ID0gdGhpcy5sYXN0U2F2ZWRDYXRlZ29yeTtcblx0XHRcdHRoaXMuY3VycmVudEV4aXN0cyA9IHRoaXMubGFzdFNhdmVkRXhpc3RzO1xuXHRcdFx0dGhpcy5jdXJyZW50SGlkZGVuID0gdGhpcy5sYXN0U2F2ZWRIaWRkZW47XG5cdFx0XHR0aGlzLmN1cnJlbnRLZXkgPSB0aGlzLmxhc3RTYXZlZEtleTtcblx0XHRcdHRoaXMuaWNvbi5zcmMgPSB0aGlzLmN1cnJlbnRFeGlzdHMgPyBIQy5leGlzdHNZZXMgOiBIQy5leGlzdHNObztcblx0XHRcdHRoaXMudGV4dC52YWx1ZSA9IHRoaXMuY3VycmVudENhdGVnb3J5ICsgKHRoaXMuY3VycmVudEtleSA9PT0gbnVsbCA/ICcnIDogYHwke3RoaXMuY3VycmVudEtleX1gKTtcblx0XHRcdHRoaXMub3JpZ2luYWxTdGF0ZSA9IHRoaXMuc3RhdGU7XG5cdFx0XHR0aGlzLmxhc3RJbnB1dCA9IHRoaXMuY3VycmVudENhdGVnb3J5O1xuXHRcdFx0dGhpcy5pbnB1dEV4aXN0cyA9IHRoaXMuY3VycmVudEV4aXN0cztcblx0XHRcdHRoaXMuc3RhdGUgPSB0aGlzLnN0YXRlID09PSBVTkNIQU5HRUQgPyBPUEVOIDogQ0hBTkdFX1BFTkRJTkc7XG5cdFx0XHR0aGlzLmxhc3RTZWxlY3Rpb24gPSB7XG5cdFx0XHRcdHN0YXJ0OiB0aGlzLmN1cnJlbnRDYXRlZ29yeS5sZW5ndGgsXG5cdFx0XHRcdGVuZDogdGhpcy5jdXJyZW50Q2F0ZWdvcnkubGVuZ3RoLFxuXHRcdFx0fTtcblx0XHRcdHRoaXMuc2hvd3NMaXN0ID0gZmFsc2U7XG5cdFx0XHQvLyBEaXNwbGF5IHRoZSBmb3JtXG5cdFx0XHRpZiAodGhpcy5jYXRMaW5rKSB7XG5cdFx0XHRcdHRoaXMuY2F0TGluay5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuXHRcdFx0fVxuXHRcdFx0dGhpcy5saW5rU3Bhbi5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuXHRcdFx0dGhpcy5mb3JtLnN0eWxlLmRpc3BsYXkgPSAnaW5saW5lJztcblx0XHRcdHRoaXMub2suZGlzYWJsZWQgPSBmYWxzZTtcblx0XHRcdC8vIEtpbGwgdGhlIGV2ZW50IGJlZm9yZSBmb2N1c2luZywgb3RoZXJ3aXNlIElFIHdpbGwga2lsbCB0aGUgb25mb2N1cyBldmVudCFcblx0XHRcdGNvbnN0IHJlc3VsdCA9IGV2dEtpbGwoZXZlbnQpO1xuXHRcdFx0dGhpcy50ZXh0LmZvY3VzKCk7XG5cdFx0XHR0aGlzLnRleHQucmVhZE9ubHkgPSBmYWxzZTtcblx0XHRcdGNoZWNrTXVsdGlJbnB1dCgpO1xuXHRcdFx0cmV0dXJuIHJlc3VsdDtcblx0XHR9XG5cdFx0c2hvdyhldmVudCwgZW5naW5lLCByZWFkT25seSkge1xuXHRcdFx0Y29uc3QgcmVzdWx0ID0gdGhpcy5kaXNwbGF5KGV2ZW50KTtcblx0XHRcdGNvbnN0IHYgPSB0aGlzLmxhc3RTYXZlZENhdGVnb3J5O1xuXHRcdFx0aWYgKHYubGVuZ3RoID09PSAwKSB7XG5cdFx0XHRcdHJldHVybiByZXN1bHQ7XG5cdFx0XHR9XG5cdFx0XHR0aGlzLnRleHQucmVhZE9ubHkgPSAhIXJlYWRPbmx5O1xuXHRcdFx0dGhpcy5lbmdpbmUgPSBlbmdpbmU7XG5cdFx0XHR0aGlzLnRleHRjaGFuZ2UoZmFsc2UsIHRydWUpOyAvLyBkbyBhdXRvY29tcGxldGlvbiwgZm9yY2UgZGlzcGxheSBvZiBzdWdnZXN0aW9uc1xuXHRcdFx0cmV0dXJuIHJlc3VsdDtcblx0XHR9XG5cdFx0b3BlbihldmVudCkge1xuXHRcdFx0cmV0dXJuIHRoaXMuc2hvdyhldmVudCwgdGhpcy5lbmdpbmUgJiYgc3VnZ2VzdGlvbkNvbmZpZ3NbdGhpcy5lbmdpbmVdLnRlbXAgPyBIQy5zdWdnZXN0aW9ucyA6IHRoaXMuZW5naW5lKTtcblx0XHR9XG5cdFx0ZG93bihldmVudCkge1xuXHRcdFx0cmV0dXJuIHRoaXMuc2hvdyhldmVudCwgJ3N1YmNhdCcsIHRydWUpO1xuXHRcdH1cblx0XHR1cChldmVudCkge1xuXHRcdFx0cmV0dXJuIHRoaXMuc2hvdyhldmVudCwgJ3BhcmVudGNhdCcpO1xuXHRcdH1cblx0XHRjYW5jZWwoKSB7XG5cdFx0XHRpZiAodGhpcy5pc0FkZENhdGVnb3J5ICYmICFvblVwbG9hZCkge1xuXHRcdFx0XHR0aGlzLnJlbW92ZUVkaXRvcigpOyAvLyBXZSBhZGRlZCBhIG5ldyBhZGRlciB3aGVuIG9wZW5pbmdcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdFx0Ly8gQ2xvc2UsIHJlLWRpc3BsYXkgbGlua1xuXHRcdFx0dGhpcy5pbmFjdGl2YXRlKCk7XG5cdFx0XHR0aGlzLmZvcm0uc3R5bGUuZGlzcGxheSA9ICdub25lJztcblx0XHRcdGlmICh0aGlzLmNhdExpbmspIHtcblx0XHRcdFx0dGhpcy5jYXRMaW5rLnN0eWxlLmRpc3BsYXkgPSAnJztcblx0XHRcdH1cblx0XHRcdHRoaXMubGlua1NwYW4uc3R5bGUuZGlzcGxheSA9ICcnO1xuXHRcdFx0dGhpcy5zdGF0ZSA9IHRoaXMub3JpZ2luYWxTdGF0ZTtcblx0XHRcdHRoaXMuY3VycmVudENhdGVnb3J5ID0gdGhpcy5sYXN0U2F2ZWRDYXRlZ29yeTtcblx0XHRcdHRoaXMuY3VycmVudEtleSA9IHRoaXMubGFzdFNhdmVkS2V5O1xuXHRcdFx0dGhpcy5jdXJyZW50RXhpc3RzID0gdGhpcy5sYXN0U2F2ZWRFeGlzdHM7XG5cdFx0XHR0aGlzLmN1cnJlbnRIaWRkZW4gPSB0aGlzLmxhc3RTYXZlZEhpZGRlbjtcblx0XHRcdGlmICh0aGlzLmNhdExpbmspIHtcblx0XHRcdFx0dGhpcy5jYXRMaW5rLnRpdGxlID0gdGhpcy5jdXJyZW50S2V5ICYmIHRoaXMuY3VycmVudEtleS5sZW5ndGggPiAwID8gdGhpcy5jdXJyZW50S2V5IDogJyc7XG5cdFx0XHR9XG5cdFx0XHRpZiAodGhpcy5zdGF0ZSA9PT0gVU5DSEFOR0VEKSB7XG5cdFx0XHRcdGlmICh0aGlzLmNhdExpbmspIHtcblx0XHRcdFx0XHR0aGlzLmNhdExpbmsuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gJ3RyYW5zcGFyZW50Jztcblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIGlmICghb25VcGxvYWQpIHtcblx0XHRcdFx0dHJ5IHtcblx0XHRcdFx0XHR0aGlzLmNhdExpbmsuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gSEMuYmdfY2hhbmdlZDtcblx0XHRcdFx0fSBjYXRjaCB7XG5cdFx0XHRcdFx0LyogZW1wdHkgKi9cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0Y2hlY2tNdWx0aUlucHV0KCk7XG5cdFx0fVxuXHRcdHJlbW92ZUVkaXRvcigpIHtcblx0XHRcdGlmICghbmV3RE9NKSB7XG5cdFx0XHRcdGNvbnN0IG5leHQgPSB0aGlzLnNwYW4ubmV4dFNpYmxpbmc7XG5cdFx0XHRcdGlmIChuZXh0KSB7XG5cdFx0XHRcdFx0bmV4dC5yZW1vdmUoKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0aWYgKHRoaXMuc3BhbiAmJiB0aGlzLnNwYW4ucGFyZW50Tm9kZSkge1xuXHRcdFx0XHR0aGlzLnNwYW4ucmVtb3ZlKCk7XG5cdFx0XHR9XG5cdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IGVkaXRvcnMubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0aWYgKGVkaXRvcnNbaV0gPT09IHRoaXMpIHtcblx0XHRcdFx0XHRlZGl0b3JzLnNwbGljZShpLCAxKTtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0Y2hlY2tNdWx0aUlucHV0KCk7XG5cdFx0fVxuXHRcdHJvbGxiYWNrKGV2ZW50KSB7XG5cdFx0XHR0aGlzLnVuZG9MaW5rLnJlbW92ZSgpO1xuXHRcdFx0dGhpcy51bmRvTGluayA9IG51bGw7XG5cdFx0XHR0aGlzLmN1cnJlbnRDYXRlZ29yeSA9IHRoaXMub3JpZ2luYWxDYXRlZ29yeTtcblx0XHRcdHRoaXMuY3VycmVudEtleSA9IHRoaXMub3JpZ2luYWxLZXk7XG5cdFx0XHR0aGlzLmN1cnJlbnRFeGlzdHMgPSB0aGlzLm9yaWdpbmFsRXhpc3RzO1xuXHRcdFx0dGhpcy5jdXJyZW50SGlkZGVuID0gdGhpcy5vcmlnaW5hbEhpZGRlbjtcblx0XHRcdHRoaXMubGFzdFNhdmVkQ2F0ZWdvcnkgPSB0aGlzLm9yaWdpbmFsQ2F0ZWdvcnk7XG5cdFx0XHR0aGlzLmxhc3RTYXZlZEtleSA9IHRoaXMub3JpZ2luYWxLZXk7XG5cdFx0XHR0aGlzLmxhc3RTYXZlZEV4aXN0cyA9IHRoaXMub3JpZ2luYWxFeGlzdHM7XG5cdFx0XHR0aGlzLmxhc3RTYXZlZEhpZGRlbiA9IHRoaXMub3JpZ2luYWxIaWRkZW47XG5cdFx0XHR0aGlzLnN0YXRlID0gVU5DSEFOR0VEO1xuXHRcdFx0aWYgKCF0aGlzLmN1cnJlbnRDYXRlZ29yeSB8fCB0aGlzLmN1cnJlbnRDYXRlZ29yeS5sZW5ndGggPT09IDApIHtcblx0XHRcdFx0Ly8gSXQgd2FzIGEgbmV3bHkgYWRkZWQgY2F0ZWdvcnkuIFJlbW92ZSB0aGUgd2hvbGUgZWRpdG9yLlxuXHRcdFx0XHR0aGlzLnJlbW92ZUVkaXRvcigpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Ly8gUmVkaXNwbGF5IHRoZSBsaW5rLi4uXG5cdFx0XHRcdHRoaXMuY2F0TGluay5maXJzdENoaWxkLnJlbW92ZSgpO1xuXHRcdFx0XHR0aGlzLmNhdExpbmsuYXBwZW5kKG1ha2UodGhpcy5jdXJyZW50Q2F0ZWdvcnksIHRydWUpKTtcblx0XHRcdFx0dGhpcy5jYXRMaW5rLmhyZWYgPSB3aWtpUGFnZVBhdGgoYCR7SEMuY2F0ZWdvcnlfY2Fub25pY2FsfToke3RoaXMuY3VycmVudENhdGVnb3J5fWApO1xuXHRcdFx0XHR0aGlzLmNhdExpbmsudGl0bGUgPSB0aGlzLmN1cnJlbnRLZXkgfHwgJyc7XG5cdFx0XHRcdHRoaXMuY2F0TGluay5jbGFzc05hbWUgPSB0aGlzLmN1cnJlbnRFeGlzdHMgPyAnJyA6ICduZXcnO1xuXHRcdFx0XHR0aGlzLmNhdExpbmsuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gJ3RyYW5zcGFyZW50Jztcblx0XHRcdFx0aWYgKHRoaXMudXBEb3duTGlua3MpIHtcblx0XHRcdFx0XHR0aGlzLnVwRG93bkxpbmtzLnN0eWxlLmRpc3BsYXkgPSB0aGlzLmN1cnJlbnRFeGlzdHMgPyAnJyA6ICdub25lJztcblx0XHRcdFx0fVxuXHRcdFx0XHRjaGVja011bHRpSW5wdXQoKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiBldnRLaWxsKGV2ZW50KTtcblx0XHR9XG5cdFx0aW5hY3RpdmF0ZSgpIHtcblx0XHRcdGlmICh0aGlzLmxpc3QpIHtcblx0XHRcdFx0dGhpcy5saXN0LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG5cdFx0XHR9XG5cdFx0XHRpZiAodGhpcy5lbmdpbmVTZWxlY3Rvcikge1xuXHRcdFx0XHR0aGlzLmVuZ2luZVNlbGVjdG9yLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG5cdFx0XHR9XG5cdFx0XHR0aGlzLmlzX2FjdGl2ZSA9IGZhbHNlO1xuXHRcdH1cblx0XHRhY2NlcHRDaGVjayhkb250Q2hlY2spIHtcblx0XHRcdHRoaXMuc2FuaXRpemVJbnB1dCgpO1xuXHRcdFx0Y29uc3QgdmFsdWUgPSB0aGlzLnRleHQudmFsdWUuc3BsaXQoJ3wnKTtcblx0XHRcdGxldCBrZXkgPSBudWxsO1xuXHRcdFx0aWYgKHZhbHVlLmxlbmd0aCA+IDEpIHtcblx0XHRcdFx0Wywga2V5XSA9IHZhbHVlO1xuXHRcdFx0fVxuXHRcdFx0bGV0IHYgPSB2YWx1ZVswXS5yZXBsYWNlKC9fL2csICcgJykudHJpbSgpO1xuXHRcdFx0aWYgKEhDLmNhcGl0YWxpemVQYWdlTmFtZXMpIHtcblx0XHRcdFx0diA9IGNhcGl0YWxpemUodik7XG5cdFx0XHR9XG5cdFx0XHR0aGlzLmxhc3RJbnB1dCA9IHY7XG5cdFx0XHR2ID0gcmVwbGFjZVNob3J0Y3V0cyh2LCBIQy5zaG9ydGN1dHMpO1xuXHRcdFx0aWYgKHYubGVuZ3RoID09PSAwKSB7XG5cdFx0XHRcdHRoaXMuY2FuY2VsKCk7XG5cdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdH1cblx0XHRcdGlmIChcblx0XHRcdFx0IWRvbnRDaGVjayAmJlxuXHRcdFx0XHQoKGNvbmYud2dOYW1lc3BhY2VOdW1iZXIgPT09IDE0ICYmIHYgPT09IGNvbmYud2dUaXRsZSkgfHwgKEhDLmJsYWNrbGlzdCAmJiBIQy5ibGFja2xpc3QudGVzdCh2KSkpXG5cdFx0XHQpIHtcblx0XHRcdFx0dGhpcy5jYW5jZWwoKTtcblx0XHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdFx0fVxuXHRcdFx0dGhpcy5jdXJyZW50Q2F0ZWdvcnkgPSB2O1xuXHRcdFx0dGhpcy5jdXJyZW50S2V5ID0ga2V5O1xuXHRcdFx0dGhpcy5jdXJyZW50RXhpc3RzID0gdGhpcy5pbnB1dEV4aXN0cztcblx0XHRcdHJldHVybiB0cnVlO1xuXHRcdH1cblx0XHRhY2NlcHQoZXZlbnQpIHtcblx0XHRcdC8vIChldnRLZXlzKGV2ZW50KSAmIDEpICE9PSAwXG5cdFx0XHQvLyDlvZPkuJTku4XlvZNldnRLZXlzKGV2ZW50KeS4ujHml7bvvIzmlbTkuKrliKTliKvlvI/miY3kuLp0cnVlXG5cdFx0XHR0aGlzLm5vQ29tbWl0ID0gZXZ0S2V5cyhldmVudCkgPT09IDE7XG5cdFx0XHRjb25zdCByZXN1bHQgPSBldnRLaWxsKGV2ZW50KTtcblx0XHRcdGlmICh0aGlzLmFjY2VwdENoZWNrKCkpIHtcblx0XHRcdFx0Y29uc3QgdG9SZXNvbHZlID0gW3RoaXNdO1xuXHRcdFx0XHRjb25zdCBvcmlnaW5hbCA9IHRoaXMuY3VycmVudENhdGVnb3J5O1xuXHRcdFx0XHRyZXNvbHZlTXVsdGkodG9SZXNvbHZlLCAocmVzb2x2ZWQpID0+IHtcblx0XHRcdFx0XHRpZiAocmVzb2x2ZWRbMF0uZGFiKSB7XG5cdFx0XHRcdFx0XHRzaG93RGFiKHJlc29sdmVkWzBdKTtcblx0XHRcdFx0XHR9IGVsc2UgaWYgKHJlc29sdmVkWzBdLmFjY2VwdENoZWNrKHRydWUpKSB7XG5cdFx0XHRcdFx0XHRyZXNvbHZlZFswXS5jb21taXQoXG5cdFx0XHRcdFx0XHRcdHJlc29sdmVkWzBdLmN1cnJlbnRDYXRlZ29yeSA9PT0gb3JpZ2luYWxcblx0XHRcdFx0XHRcdFx0XHQ/IG51bGxcblx0XHRcdFx0XHRcdFx0XHQ6IGdldE1lc3NhZ2UoJ21lc3NhZ2VzLWNhdF9yZXNvbHZlZCcsIG9yaWdpbmFsKVxuXHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIHJlc3VsdDtcblx0XHR9XG5cdFx0Y2xvc2UoKSB7XG5cdFx0XHRpZiAoIXRoaXMuY2F0TGluaykge1xuXHRcdFx0XHQvLyBDcmVhdGUgYSBjYXRMaW5rXG5cdFx0XHRcdHRoaXMuY2F0TGluayA9IG1ha2UoJ2EnKTtcblx0XHRcdFx0dGhpcy5jYXRMaW5rLmFwcGVuZChtYWtlKCdmb28nLCB0cnVlKSk7XG5cdFx0XHRcdHRoaXMuY2F0TGluay5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuXHRcdFx0XHR0aGlzLnNwYW4uaW5zZXJ0QmVmb3JlKHRoaXMuY2F0TGluaywgdGhpcy5zcGFuLmZpcnN0Q2hpbGQubmV4dFNpYmxpbmcpO1xuXHRcdFx0fVxuXHRcdFx0dGhpcy5jYXRMaW5rLmZpcnN0Q2hpbGQucmVtb3ZlKCk7XG5cdFx0XHR0aGlzLmNhdExpbmsuYXBwZW5kKG1ha2UodGhpcy5jdXJyZW50Q2F0ZWdvcnksIHRydWUpKTtcblx0XHRcdHRoaXMuY2F0TGluay5ocmVmID0gd2lraVBhZ2VQYXRoKGAke0hDLmNhdGVnb3J5X2Nhbm9uaWNhbH06JHt0aGlzLmN1cnJlbnRDYXRlZ29yeX1gKTtcblx0XHRcdHRoaXMuY2F0TGluay5jbGFzc05hbWUgPSB0aGlzLmN1cnJlbnRFeGlzdHMgPyAnJyA6ICduZXcnO1xuXHRcdFx0dGhpcy5sYXN0U2F2ZWRDYXRlZ29yeSA9IHRoaXMuY3VycmVudENhdGVnb3J5O1xuXHRcdFx0dGhpcy5sYXN0U2F2ZWRLZXkgPSB0aGlzLmN1cnJlbnRLZXk7XG5cdFx0XHR0aGlzLmxhc3RTYXZlZEV4aXN0cyA9IHRoaXMuY3VycmVudEV4aXN0cztcblx0XHRcdHRoaXMubGFzdFNhdmVkSGlkZGVuID0gdGhpcy5jdXJyZW50SGlkZGVuO1xuXHRcdFx0Ly8gQ2xvc2UgZm9ybSBhbmQgcmVkaXNwbGF5IGNhdGVnb3J5XG5cdFx0XHR0aGlzLmluYWN0aXZhdGUoKTtcblx0XHRcdHRoaXMuZm9ybS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuXHRcdFx0dGhpcy5jYXRMaW5rLnRpdGxlID0gdGhpcy5jdXJyZW50S2V5IHx8ICcnO1xuXHRcdFx0dGhpcy5jYXRMaW5rLnN0eWxlLmRpc3BsYXkgPSAnJztcblx0XHRcdGlmICh0aGlzLmlzQWRkQ2F0ZWdvcnkpIHtcblx0XHRcdFx0aWYgKG9uVXBsb2FkICYmIHRoaXMubGluZSkge1xuXHRcdFx0XHRcdG5ldyBDYXRlZ29yeUVkaXRvcih0aGlzLmxpbmUsIG51bGwsIHRoaXMuc3BhbiwgdHJ1ZSk7IC8vIENyZWF0ZSBhIG5ldyBvbmVcblx0XHRcdFx0fVxuXHRcdFx0XHR0aGlzLmlzQWRkQ2F0ZWdvcnkgPSBmYWxzZTtcblx0XHRcdFx0dGhpcy5saW5rU3Bhbi5yZW1vdmUoKTtcblx0XHRcdFx0dGhpcy5tYWtlTGlua1NwYW4oKTtcblx0XHRcdFx0dGhpcy5zcGFuLmFwcGVuZCh0aGlzLmxpbmtTcGFuKTtcblx0XHRcdH1cblx0XHRcdGlmICghdGhpcy51bmRvTGluaykge1xuXHRcdFx0XHQvLyBBcHBlbmQgYW4gdW5kbyBsaW5rLlxuXHRcdFx0XHRjb25zdCBzcGFuID0gbWFrZSgnc3BhbicpO1xuXHRcdFx0XHRjb25zdCBsaW5rID0gbWFrZSgnYScpO1xuXHRcdFx0XHRsaW5rLmhyZWYgPSAnI2NhdGxpbmtzJztcblx0XHRcdFx0bGluay5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMucm9sbGJhY2suYmluZCh0aGlzKSk7XG5cdFx0XHRcdGxpbmsuYXBwZW5kKG1ha2UoSEMubGlua3MudW5kbywgdHJ1ZSkpO1xuXHRcdFx0XHRsaW5rLnRpdGxlID0gZ2V0TWVzc2FnZSgndG9vbHRpcHMtdW5kbycpO1xuXHRcdFx0XHRzcGFuLmFwcGVuZChtYWtlKCcgJywgdHJ1ZSkpO1xuXHRcdFx0XHRzcGFuLmFwcGVuZChsaW5rKTtcblx0XHRcdFx0dGhpcy5ub3JtYWxMaW5rcy5hcHBlbmQoc3Bhbik7XG5cdFx0XHRcdHRoaXMudW5kb0xpbmsgPSBzcGFuO1xuXHRcdFx0XHRpZiAoIW9uVXBsb2FkKSB7XG5cdFx0XHRcdFx0dHJ5IHtcblx0XHRcdFx0XHRcdHRoaXMuY2F0TGluay5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSBIQy5iZ19jaGFuZ2VkO1xuXHRcdFx0XHRcdH0gY2F0Y2gge1xuXHRcdFx0XHRcdFx0LyogZW1wdHkgKi9cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdGlmICh0aGlzLnVwRG93bkxpbmtzKSB7XG5cdFx0XHRcdHRoaXMudXBEb3duTGlua3Muc3R5bGUuZGlzcGxheSA9IHRoaXMubGFzdFNhdmVkRXhpc3RzID8gJycgOiAnbm9uZSc7XG5cdFx0XHR9XG5cdFx0XHR0aGlzLmxpbmtTcGFuLnN0eWxlLmRpc3BsYXkgPSAnJztcblx0XHRcdHRoaXMuc3RhdGUgPSBDSEFOR0VEO1xuXHRcdFx0Y2hlY2tNdWx0aUlucHV0KCk7XG5cdFx0fVxuXHRcdGNvbW1pdCgpIHtcblx0XHRcdC8vIENoZWNrIGFnYWluIHRvIGNhdGNoIHByb2JsZW0gY2FzZXMgYWZ0ZXIgcmVkaXJlY3QgcmVzb2x1dGlvblxuXHRcdFx0aWYgKFxuXHRcdFx0XHQodGhpcy5jdXJyZW50Q2F0ZWdvcnkgPT09IHRoaXMub3JpZ2luYWxDYXRlZ29yeSAmJlxuXHRcdFx0XHRcdCh0aGlzLmN1cnJlbnRLZXkgPT09IHRoaXMub3JpZ2luYWxLZXkgfHxcblx0XHRcdFx0XHRcdCh0aGlzLmN1cnJlbnRLZXkgPT09IG51bGwgJiYgdGhpcy5vcmlnaW5hbEtleS5sZW5ndGggPT09IDApKSkgfHxcblx0XHRcdFx0KGNvbmYud2dOYW1lc3BhY2VOdW1iZXIgPT09IDE0ICYmIHRoaXMuY3VycmVudENhdGVnb3J5ID09PSBjb25mLndnVGl0bGUpIHx8XG5cdFx0XHRcdChIQy5ibGFja2xpc3QgJiYgSEMuYmxhY2tsaXN0LnRlc3QodGhpcy5jdXJyZW50Q2F0ZWdvcnkpKVxuXHRcdFx0KSB7XG5cdFx0XHRcdHRoaXMuY2FuY2VsKCk7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblx0XHRcdHRoaXMuY2xvc2UoKTtcblx0XHRcdGlmICghY29tbWl0QnV0dG9uICYmICFvblVwbG9hZCkge1xuXHRcdFx0XHRjb25zdCBzZWxmID0gdGhpcztcblx0XHRcdFx0aW5pdGlhdGVFZGl0KFxuXHRcdFx0XHRcdChmYWlsdXJlKSA9PiB7XG5cdFx0XHRcdFx0XHRwZXJmb3JtQ2hhbmdlcyhmYWlsdXJlLCBzZWxmKTtcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdChtc2cpID0+IHtcblx0XHRcdFx0XHRcdHZvaWQgbXcubm90aWZ5KG1zZywge3RhZzogJ2hvdENhdCd9KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdCk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJlbW92ZShldmVudCkge1xuXHRcdFx0Ly8gKGV2dEtleXMoZXZlbnQpICYgMSlcblx0XHRcdC8vIOW9k+S4lOS7heW9k2V2dEtleXMoZXZlbnQp5Li6MeaXtu+8jOaVtOS4quWIpOWIq+W8j+aJjeS4ujHvvIzlkKbliJnpg73mmK8wXG5cdFx0XHR0aGlzLmRvUmVtb3ZlKGV2dEtleXMoZXZlbnQpID09PSAxKTtcblx0XHRcdHJldHVybiBldnRLaWxsKGV2ZW50KTtcblx0XHR9XG5cdFx0ZG9SZW1vdmUobm9Db21taXQpIHtcblx0XHRcdGlmICh0aGlzLmlzQWRkQ2F0ZWdvcnkpIHtcblx0XHRcdFx0Ly8gRW1wdHkgaW5wdXQgb24gYWRkaW5nIGEgbmV3IGNhdGVnb3J5XG5cdFx0XHRcdHRoaXMuY2FuY2VsKCk7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblx0XHRcdGlmICghY29tbWl0QnV0dG9uICYmICFvblVwbG9hZCkge1xuXHRcdFx0XHRmb3IgKGNvbnN0IGVkaXRvciBvZiBlZGl0b3JzKSB7XG5cdFx0XHRcdFx0aWYgKGVkaXRvci5zdGF0ZSAhPT0gVU5DSEFOR0VEKSB7XG5cdFx0XHRcdFx0XHRzZXRNdWx0aUlucHV0KCk7XG5cdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdGlmIChjb21taXRCdXR0b24pIHtcblx0XHRcdFx0dGhpcy5jYXRMaW5rLnRpdGxlID0gJyc7XG5cdFx0XHRcdHRoaXMuY2F0TGluay5zdHlsZS5jc3NUZXh0ICs9ICc7IHRleHQtZGVjb3JhdGlvbiA6IGxpbmUtdGhyb3VnaCAhaW1wb3J0YW50Oyc7XG5cdFx0XHRcdHRyeSB7XG5cdFx0XHRcdFx0dGhpcy5jYXRMaW5rLnN0eWxlLmJhY2tncm91bmRDb2xvciA9IEhDLmJnX2NoYW5nZWQ7XG5cdFx0XHRcdH0gY2F0Y2gge1xuXHRcdFx0XHRcdC8qIGVtcHR5ICovXG5cdFx0XHRcdH1cblx0XHRcdFx0dGhpcy5vcmlnaW5hbFN0YXRlID0gdGhpcy5zdGF0ZTtcblx0XHRcdFx0dGhpcy5zdGF0ZSA9IERFTEVURUQ7XG5cdFx0XHRcdHRoaXMubm9ybWFsTGlua3Muc3R5bGUuZGlzcGxheSA9ICdub25lJztcblx0XHRcdFx0dGhpcy51bmRlbExpbmsuc3R5bGUuZGlzcGxheSA9ICcnO1xuXHRcdFx0XHRjaGVja011bHRpSW5wdXQoKTtcblx0XHRcdH0gZWxzZSBpZiAob25VcGxvYWQpIHtcblx0XHRcdFx0Ly8gUmVtb3ZlIHRoaXMgZWRpdG9yIGNvbXBsZXRlbHlcblx0XHRcdFx0dGhpcy5yZW1vdmVFZGl0b3IoKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHRoaXMub3JpZ2luYWxTdGF0ZSA9IHRoaXMuc3RhdGU7XG5cdFx0XHRcdHRoaXMuc3RhdGUgPSBERUxFVEVEO1xuXHRcdFx0XHR0aGlzLm5vQ29tbWl0ID0gbm9Db21taXQgfHwgSEMuZGVsX25lZWRzX2RpZmY7XG5cdFx0XHRcdGNvbnN0IHNlbGYgPSB0aGlzO1xuXHRcdFx0XHRpbml0aWF0ZUVkaXQoXG5cdFx0XHRcdFx0KGZhaWx1cmUpID0+IHtcblx0XHRcdFx0XHRcdHBlcmZvcm1DaGFuZ2VzKGZhaWx1cmUsIHNlbGYpO1xuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0KG1zZykgPT4ge1xuXHRcdFx0XHRcdFx0c2VsZi5zdGF0ZSA9IHNlbGYub3JpZ2luYWxTdGF0ZTtcblx0XHRcdFx0XHRcdHZvaWQgbXcubm90aWZ5KG1zZywge3RhZzogJ2hvdENhdCd9KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdCk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJlc3RvcmUoZXZlbnQpIHtcblx0XHRcdC8vIENhbiBvY2N1ciBvbmx5IGlmIHdlIGRvIGhhdmUgYSBjb21taXQgYnV0dG9uIGFuZCBhcmUgbm90IG9uIHRoZSB1cGxvYWQgZm9ybVxuXHRcdFx0dGhpcy5jYXRMaW5rLnRpdGxlID0gdGhpcy5jdXJyZW50S2V5IHx8ICcnO1xuXHRcdFx0dGhpcy5jYXRMaW5rLnN0eWxlLnRleHREZWNvcmF0aW9uID0gJyc7XG5cdFx0XHR0aGlzLnN0YXRlID0gdGhpcy5vcmlnaW5hbFN0YXRlO1xuXHRcdFx0aWYgKHRoaXMuc3RhdGUgPT09IFVOQ0hBTkdFRCkge1xuXHRcdFx0XHR0aGlzLmNhdExpbmsuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gJ3RyYW5zcGFyZW50Jztcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHRyeSB7XG5cdFx0XHRcdFx0dGhpcy5jYXRMaW5rLnN0eWxlLmJhY2tncm91bmRDb2xvciA9IEhDLmJnX2NoYW5nZWQ7XG5cdFx0XHRcdH0gY2F0Y2gge1xuXHRcdFx0XHRcdC8qIGVtcHR5ICovXG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdHRoaXMubm9ybWFsTGlua3Muc3R5bGUuZGlzcGxheSA9ICcnO1xuXHRcdFx0dGhpcy51bmRlbExpbmsuc3R5bGUuZGlzcGxheSA9ICdub25lJztcblx0XHRcdGNoZWNrTXVsdGlJbnB1dCgpO1xuXHRcdFx0cmV0dXJuIGV2dEtpbGwoZXZlbnQpO1xuXHRcdH1cblx0XHQvLyBJbnRlcm5hbCBvcGVyYXRpb25zXG5cdFx0c2VsZWN0RW5naW5lKGVuZ2luZU5hbWUpIHtcblx0XHRcdGlmICghdGhpcy5lbmdpbmVTZWxlY3Rvcikge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuZW5naW5lU2VsZWN0b3Iub3B0aW9ucy5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHR0aGlzLmVuZ2luZVNlbGVjdG9yLm9wdGlvbnNbaV0uc2VsZWN0ZWQgPSB0aGlzLmVuZ2luZVNlbGVjdG9yLm9wdGlvbnNbaV0udmFsdWUgPT09IGVuZ2luZU5hbWU7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHNhbml0aXplSW5wdXQoKSB7XG5cdFx0XHRsZXQgdiA9IHRoaXMudGV4dC52YWx1ZSB8fCAnJztcblx0XHRcdHYgPSB2LnJlcGxhY2UoL14oXFxzfF8pKy8sICcnKTsgLy8gVHJpbSBsZWFkaW5nIGJsYW5rcyBhbmQgdW5kZXJzY29yZXNcblx0XHRcdGNvbnN0IHJlID0gbmV3IFJlZ0V4cChgXigke0hDLmNhdGVnb3J5X3JlZ2V4cH0pOmApO1xuXHRcdFx0aWYgKHJlLnRlc3QodikpIHtcblx0XHRcdFx0diA9IHYuc2xpY2UoTWF0aC5tYXgoMCwgdi5pbmRleE9mKCc6JykgKyAxKSkucmVwbGFjZSgvXihcXHN8XykrLywgJycpO1xuXHRcdFx0fVxuXHRcdFx0diA9IHYucmVwbGFjZSgvXFx1MjAwRSQvLCAnJyk7IC8vIFRyaW0gZW5kaW5nIGxlZnQtdG8tcmlnaHQgbWFya1xuXHRcdFx0aWYgKEhDLmNhcGl0YWxpemVQYWdlTmFtZXMpIHtcblx0XHRcdFx0diA9IGNhcGl0YWxpemUodik7XG5cdFx0XHR9XG5cdFx0XHQvLyBPbmx5IHVwZGF0ZSB0aGUgaW5wdXQgZmllbGQgaWYgdGhlcmUgaXMgYSBkaWZmZXJlbmNlLiBWYXJpb3VzIGJyb3dzZXJzIG90aGVyd2lzZVxuXHRcdFx0Ly8gcmVzZXQgdGhlIHNlbGVjdGlvbiBhbmQgY3Vyc29yIHBvc2l0aW9uIGFmdGVyIGVhY2ggdmFsdWUgcmUtYXNzaWdubWVudC5cblx0XHRcdGlmICh0aGlzLnRleHQudmFsdWUgIT09IG51bGwgJiYgdGhpcy50ZXh0LnZhbHVlICE9PSB2KSB7XG5cdFx0XHRcdHRoaXMudGV4dC52YWx1ZSA9IHY7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdG1ha2VDYWxsKHVybCwgY2FsbGJhY2tPYmosIGVuZ2luZSwgcXVlcnlLZXksIGNsZWFuS2V5KSB7XG5cdFx0XHRsZXQgY2IgPSBjYWxsYmFja09iajtcblx0XHRcdGNvbnN0IGUgPSBlbmdpbmU7XG5cdFx0XHRjb25zdCB2ID0gcXVlcnlLZXk7XG5cdFx0XHRjb25zdCB6ID0gY2xlYW5LZXk7XG5cdFx0XHRjb25zdCBzZWxmID0gdGhpcztcblx0XHRcdGNvbnN0IGRvbmUgPSAoKSA9PiB7XG5cdFx0XHRcdGNiLmNhbGxzTWFkZSsrO1xuXHRcdFx0XHRpZiAoY2IuY2FsbHNNYWRlID09PSBjYi5ub2ZDYWxscykge1xuXHRcdFx0XHRcdGlmIChjYi5leGlzdHMpIHtcblx0XHRcdFx0XHRcdGNiLmFsbFRpdGxlcy5leGlzdHMgPSB0cnVlO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRpZiAoY2Iubm9ybWFsaXplZCkge1xuXHRcdFx0XHRcdFx0Y2IuYWxsVGl0bGVzLm5vcm1hbGl6ZWQgPSBjYi5ub3JtYWxpemVkO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRpZiAoIWNiLmRvbnRDYWNoZSAmJiAhc3VnZ2VzdGlvbkNvbmZpZ3NbY2IuZW5naW5lTmFtZV0uY2FjaGVbel0pIHtcblx0XHRcdFx0XHRcdHN1Z2dlc3Rpb25Db25maWdzW2NiLmVuZ2luZU5hbWVdLmNhY2hlW3pdID0gY2IuYWxsVGl0bGVzO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRzZWxmLnRleHQucmVhZE9ubHkgPSBmYWxzZTtcblx0XHRcdFx0XHRpZiAoIWNiLmNhbmNlbGxlZCkge1xuXHRcdFx0XHRcdFx0c2VsZi5zaG93U3VnZ2VzdGlvbnMoY2IuYWxsVGl0bGVzLCBjYi5ub0NvbXBsZXRpb24sIHYsIGNiLmVuZ2luZU5hbWUpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRpZiAoY2IgPT09IHNlbGYuY2FsbGJhY2tPYmopIHtcblx0XHRcdFx0XHRcdHNlbGYuY2FsbGJhY2tPYmogPSBudWxsO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRjYiA9IHVuZGVmaW5lZDtcblx0XHRcdFx0fVxuXHRcdFx0fTtcblx0XHRcdCQuZ2V0SlNPTih1cmwsIChqc29uKSA9PiB7XG5cdFx0XHRcdGNvbnN0IHRpdGxlcyA9IGUuaGFuZGxlcihqc29uLCB6KTtcblx0XHRcdFx0aWYgKHRpdGxlcyAmJiB0aXRsZXMubGVuZ3RoID4gMCkge1xuXHRcdFx0XHRcdGNiLmFsbFRpdGxlcyA9IGNiLmFsbFRpdGxlcyA9PT0gbnVsbCA/IHRpdGxlcyA6IFsuLi5jYi5hbGxUaXRsZXMsIC4uLmdlbmVyYXRlQXJyYXkodGl0bGVzKV07XG5cdFx0XHRcdFx0aWYgKHRpdGxlcy5leGlzdHMpIHtcblx0XHRcdFx0XHRcdGNiLmV4aXN0cyA9IHRydWU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGlmICh0aXRsZXMubm9ybWFsaXplZCkge1xuXHRcdFx0XHRcdFx0Y2Iubm9ybWFsaXplZCA9IHRpdGxlcy5ub3JtYWxpemVkO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRkb25lKCk7XG5cdFx0XHR9KS5mYWlsKChyZXEpID0+IHtcblx0XHRcdFx0aWYgKCFyZXEpIHtcblx0XHRcdFx0XHRub1N1Z2dlc3Rpb25zID0gdHJ1ZTtcblx0XHRcdFx0fVxuXHRcdFx0XHRjYi5kb250Q2FjaGUgPSB0cnVlO1xuXHRcdFx0XHRkb25lKCk7XG5cdFx0XHR9KTtcblx0XHR9XG5cdFx0Y2FsbGJhY2tPYmogPSBudWxsO1xuXHRcdHRleHRjaGFuZ2UoZG9udF9hdXRvY29tcGxldGUsIGZvcmNlKSB7XG5cdFx0XHQvLyBIaWRlIGFsbCBvdGhlciBsaXN0c1xuXHRcdFx0bWFrZUFjdGl2ZSh0aGlzKTtcblx0XHRcdC8vIEdldCBpbnB1dCB2YWx1ZSwgb21pdCBzb3J0IGtleSwgaWYgYW55XG5cdFx0XHR0aGlzLnNhbml0aXplSW5wdXQoKTtcblx0XHRcdGxldCB2ID0gdGhpcy50ZXh0LnZhbHVlO1xuXHRcdFx0Ly8gRGlzcmVnYXJkIGFueXRoaW5nIGFmdGVyIGEgcGlwZS5cblx0XHRcdGNvbnN0IHBpcGUgPSB2LmluZGV4T2YoJ3wnKTtcblx0XHRcdGlmIChwaXBlID09PSAtMSkge1xuXHRcdFx0XHR0aGlzLmN1cnJlbnRLZXkgPSBudWxsO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dGhpcy5jdXJyZW50S2V5ID0gdi5zbGljZShNYXRoLm1heCgwLCBwaXBlICsgMSkpO1xuXHRcdFx0XHR2ID0gdi5zbGljZSgwLCBNYXRoLm1heCgwLCBwaXBlKSk7XG5cdFx0XHR9XG5cdFx0XHRpZiAodGhpcy5sYXN0SW5wdXQgPT09IHYgJiYgIWZvcmNlKSB7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH0gLy8gTm8gY2hhbmdlXG5cdFx0XHRpZiAodGhpcy5sYXN0SW5wdXQgIT09IHYpIHtcblx0XHRcdFx0Y2hlY2tNdWx0aUlucHV0KCk7XG5cdFx0XHR9XG5cdFx0XHR0aGlzLmxhc3RJbnB1dCA9IHY7XG5cdFx0XHR0aGlzLmxhc3RSZWFsSW5wdXQgPSB2O1xuXHRcdFx0Ly8gTWFyayBibGFja2xpc3RlZCBpbnB1dHMuXG5cdFx0XHR0aGlzLm9rLmRpc2FibGVkID0gdi5sZW5ndGggPiAwICYmIEhDLmJsYWNrbGlzdCAmJiBIQy5ibGFja2xpc3QudGVzdCh2KTtcblx0XHRcdGlmIChub1N1Z2dlc3Rpb25zKSB7XG5cdFx0XHRcdC8vIE5vIEFqYXg6IGp1c3QgbWFrZSBzdXJlIHRoZSBsaXN0IGlzIGhpZGRlblxuXHRcdFx0XHRpZiAodGhpcy5saXN0KSB7XG5cdFx0XHRcdFx0dGhpcy5saXN0LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKHRoaXMuZW5naW5lU2VsZWN0b3IpIHtcblx0XHRcdFx0XHR0aGlzLmVuZ2luZVNlbGVjdG9yLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKHRoaXMuaWNvbikge1xuXHRcdFx0XHRcdHRoaXMuaWNvbi5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblx0XHRcdGlmICh2Lmxlbmd0aCA9PT0gMCkge1xuXHRcdFx0XHR0aGlzLnNob3dTdWdnZXN0aW9ucyhbXSk7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblx0XHRcdGxldCBjbGVhbktleSA9IHYucmVwbGFjZSgvW1xcdTIwMEVcXHUyMDBGXFx1MjAyQS1cXHUyMDJFXS9nLCAnJykucmVwbGFjZSh3aWtpVGV4dEJsYW5rUkUsICcgJyk7XG5cdFx0XHRjbGVhbktleSA9IHJlcGxhY2VTaG9ydGN1dHMoY2xlYW5LZXksIEhDLnNob3J0Y3V0cyk7XG5cdFx0XHRjbGVhbktleSA9IGNsZWFuS2V5LnRyaW0oKTtcblx0XHRcdGlmIChjbGVhbktleS5sZW5ndGggPT09IDApIHtcblx0XHRcdFx0dGhpcy5zaG93U3VnZ2VzdGlvbnMoW10pO1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cdFx0XHRpZiAodGhpcy5jYWxsYmFja09iaikge1xuXHRcdFx0XHR0aGlzLmNhbGxiYWNrT2JqLmNhbmNlbGxlZCA9IHRydWU7XG5cdFx0XHR9XG5cdFx0XHRjb25zdCBlbmdpbmVOYW1lID0gc3VnZ2VzdGlvbkNvbmZpZ3NbdGhpcy5lbmdpbmVdID8gdGhpcy5lbmdpbmUgOiAnY29tYmluZWQnO1xuXHRcdFx0ZG9udF9hdXRvY29tcGxldGUgfHw9IHN1Z2dlc3Rpb25Db25maWdzW2VuZ2luZU5hbWVdLm5vQ29tcGxldGlvbjtcblx0XHRcdGlmIChzdWdnZXN0aW9uQ29uZmlnc1tlbmdpbmVOYW1lXS5jYWNoZVtjbGVhbktleV0pIHtcblx0XHRcdFx0dGhpcy5zaG93U3VnZ2VzdGlvbnMoc3VnZ2VzdGlvbkNvbmZpZ3NbZW5naW5lTmFtZV0uY2FjaGVbY2xlYW5LZXldLCBkb250X2F1dG9jb21wbGV0ZSwgdiwgZW5naW5lTmFtZSk7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblx0XHRcdGNvbnN0IHtlbmdpbmVzfSA9IHN1Z2dlc3Rpb25Db25maWdzW2VuZ2luZU5hbWVdO1xuXHRcdFx0dGhpcy5jYWxsYmFja09iaiA9IHtcblx0XHRcdFx0YWxsVGl0bGVzOiBudWxsLFxuXHRcdFx0XHRjYWxsc01hZGU6IDAsXG5cdFx0XHRcdG5vZkNhbGxzOiBlbmdpbmVzLmxlbmd0aCxcblx0XHRcdFx0bm9Db21wbGV0aW9uOiBkb250X2F1dG9jb21wbGV0ZSxcblx0XHRcdFx0ZW5naW5lTmFtZSxcblx0XHRcdH07XG5cdFx0XHR0aGlzLm1ha2VDYWxscyhlbmdpbmVzLCB0aGlzLmNhbGxiYWNrT2JqLCB2LCBjbGVhbktleSk7XG5cdFx0fVxuXHRcdG1ha2VDYWxscyhlbmdpbmVzLCBjYiwgdiwgY2xlYW5LZXkpIHtcblx0XHRcdGZvciAoY29uc3QgZW5naW5lXyBvZiBlbmdpbmVzKSB7XG5cdFx0XHRcdGNvbnN0IGVuZ2luZSA9IHN1Z2dlc3Rpb25FbmdpbmVzW2VuZ2luZV9dO1xuXHRcdFx0XHRjb25zdCB1cmwgPSBjb25mLndnU2NyaXB0UGF0aCArIGVuZ2luZS51cmkucmVwbGFjZSgvXFwkMS9nLCBlbmNvZGVVUklDb21wb25lbnQoY2xlYW5LZXkpKTtcblx0XHRcdFx0dGhpcy5tYWtlQ2FsbCh1cmwsIGNiLCBlbmdpbmUsIHYsIGNsZWFuS2V5KTtcblx0XHRcdH1cblx0XHR9XG5cdFx0c2hvd1N1Z2dlc3Rpb25zKHRpdGxlcywgZG9udEF1dG9jb21wbGV0ZSwgcXVlcnlLZXksIGVuZ2luZU5hbWUpIHtcblx0XHRcdHRoaXMudGV4dC5yZWFkT25seSA9IGZhbHNlO1xuXHRcdFx0dGhpcy5kYWIgPSBudWxsO1xuXHRcdFx0dGhpcy5zaG93c0xpc3QgPSBmYWxzZTtcblx0XHRcdGlmICghdGhpcy5saXN0KSB7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblx0XHRcdGlmIChub1N1Z2dlc3Rpb25zKSB7XG5cdFx0XHRcdGlmICh0aGlzLmxpc3QpIHtcblx0XHRcdFx0XHR0aGlzLmxpc3Quc3R5bGUuZGlzcGxheSA9ICdub25lJztcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAodGhpcy5lbmdpbmVTZWxlY3Rvcikge1xuXHRcdFx0XHRcdHRoaXMuZW5naW5lU2VsZWN0b3Iuc3R5bGUuZGlzcGxheSA9ICdub25lJztcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAodGhpcy5pY29uKSB7XG5cdFx0XHRcdFx0dGhpcy5pY29uLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG5cdFx0XHRcdH1cblx0XHRcdFx0dGhpcy5pbnB1dEV4aXN0cyA9IHRydWU7IC8vIERlZmF1bHQuLi5cblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdFx0dGhpcy5lbmdpbmVOYW1lID0gZW5naW5lTmFtZTtcblx0XHRcdGlmIChlbmdpbmVOYW1lKSB7XG5cdFx0XHRcdGlmICghdGhpcy5lbmdpbmVTZWxlY3Rvcikge1xuXHRcdFx0XHRcdHRoaXMuZW5naW5lTmFtZSA9IG51bGw7XG5cdFx0XHRcdH1cblx0XHRcdH0gZWxzZSBpZiAodGhpcy5lbmdpbmVTZWxlY3Rvcikge1xuXHRcdFx0XHR0aGlzLmVuZ2luZVNlbGVjdG9yLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG5cdFx0XHR9XG5cdFx0XHRpZiAocXVlcnlLZXkpIHtcblx0XHRcdFx0aWYgKHRoaXMubGFzdElucHV0LmluZGV4T2YocXVlcnlLZXkpKSB7XG5cdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmIChcblx0XHRcdFx0XHR0aGlzLmxhc3RRdWVyeSAmJlxuXHRcdFx0XHRcdHRoaXMubGFzdElucHV0LmluZGV4T2YodGhpcy5sYXN0UXVlcnkpID09PSAwICYmXG5cdFx0XHRcdFx0dGhpcy5sYXN0UXVlcnkubGVuZ3RoID4gcXVlcnlLZXkubGVuZ3RoXG5cdFx0XHRcdCkge1xuXHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0dGhpcy5sYXN0UXVlcnkgPSBxdWVyeUtleTtcblx0XHRcdC8vIEdldCBjdXJyZW50IGlucHV0IHRleHRcblx0XHRcdGxldCB2ID0gdGhpcy50ZXh0LnZhbHVlLnNwbGl0KCd8Jyk7XG5cdFx0XHRjb25zdCBrZXkgPSB2Lmxlbmd0aCA+IDEgPyBgfCR7dlsxXX1gIDogJyc7XG5cdFx0XHR2ID0gSEMuY2FwaXRhbGl6ZVBhZ2VOYW1lcyA/IGNhcGl0YWxpemUodlswXSkgOiB2WzBdO1xuXHRcdFx0bGV0IHZOb3JtYWxpemVkID0gdjtcblx0XHRcdGNvbnN0IGtub3duVG9FeGlzdCA9IHRpdGxlcyAmJiB0aXRsZXMuZXhpc3RzO1xuXHRcdFx0bGV0IGk7XG5cdFx0XHRpZiAodGl0bGVzKSB7XG5cdFx0XHRcdGlmICh0aXRsZXMubm9ybWFsaXplZCAmJiB2LmluZGV4T2YocXVlcnlLZXkpID09PSAwKSB7XG5cdFx0XHRcdFx0Ly8gV2UgZ290IGJhY2sgYSBkaWZmZXJlbnQgbm9ybWFsaXphdGlvbiB0aGFuIHdoYXQgaXMgaW4gdGhlIGlucHV0IGZpZWxkXG5cdFx0XHRcdFx0dk5vcm1hbGl6ZWQgPSB0aXRsZXMubm9ybWFsaXplZCArIHYuc2xpY2UocXVlcnlLZXkubGVuZ3RoKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRjb25zdCB2TG93ID0gdk5vcm1hbGl6ZWQudG9Mb3dlckNhc2UoKTtcblx0XHRcdFx0Ly8gU3RyaXAgYmxhY2tsaXN0ZWQgY2F0ZWdvcmllc1xuXHRcdFx0XHRpZiAoSEMuYmxhY2tsaXN0KSB7XG5cdFx0XHRcdFx0Zm9yIChpID0gMDsgaSA8IHRpdGxlcy5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRcdFx0aWYgKEhDLmJsYWNrbGlzdC50ZXN0KHRpdGxlc1tpXSkpIHtcblx0XHRcdFx0XHRcdFx0dGl0bGVzLnNwbGljZShpLCAxKTtcblx0XHRcdFx0XHRcdFx0aS0tO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHR0aXRsZXMuc29ydCgoYSwgYikgPT4ge1xuXHRcdFx0XHRcdGlmIChhID09PSBiKSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gMDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0aWYgKGEuaW5kZXhPZihiKSA9PT0gMCkge1xuXHRcdFx0XHRcdFx0cmV0dXJuIDE7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdC8vIGEgYmVnaW5zIHdpdGggYjogYSA+IGJcblx0XHRcdFx0XHRpZiAoYi5pbmRleE9mKGEpID09PSAwKSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gLTE7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdC8vIGIgYmVnaW5zIHdpdGggYTogYSA8IGJcblx0XHRcdFx0XHQvLyBPcGVuc2VhcmNoIG1heSByZXR1cm4gc3R1ZmYgbm90IGJlZ2lubmluZyB3aXRoIHRoZSBzZWFyY2ggcHJlZml4IVxuXHRcdFx0XHRcdGxldCBwcmVmaXhNYXRjaEEgPSBhLmluZGV4T2Yodk5vcm1hbGl6ZWQpID09PSAwID8gMSA6IDA7XG5cdFx0XHRcdFx0bGV0IHByZWZpeE1hdGNoQiA9IGIuaW5kZXhPZih2Tm9ybWFsaXplZCkgPT09IDAgPyAxIDogMDtcblx0XHRcdFx0XHRpZiAocHJlZml4TWF0Y2hBICE9PSBwcmVmaXhNYXRjaEIpIHtcblx0XHRcdFx0XHRcdHJldHVybiBwcmVmaXhNYXRjaEIgLSBwcmVmaXhNYXRjaEE7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdC8vIENhc2UtaW5zZW5zaXRpdmUgcHJlZml4IG1hdGNoIVxuXHRcdFx0XHRcdGNvbnN0IGFMb3cgPSBhLnRvTG93ZXJDYXNlKCk7XG5cdFx0XHRcdFx0Y29uc3QgYkxvdyA9IGIudG9Mb3dlckNhc2UoKTtcblx0XHRcdFx0XHRwcmVmaXhNYXRjaEEgPSBhTG93LmluZGV4T2YodkxvdykgPT09IDAgPyAxIDogMDtcblx0XHRcdFx0XHRwcmVmaXhNYXRjaEIgPSBiTG93LmluZGV4T2YodkxvdykgPT09IDAgPyAxIDogMDtcblx0XHRcdFx0XHRpZiAocHJlZml4TWF0Y2hBICE9PSBwcmVmaXhNYXRjaEIpIHtcblx0XHRcdFx0XHRcdHJldHVybiBwcmVmaXhNYXRjaEIgLSBwcmVmaXhNYXRjaEE7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGlmIChhIDwgYikge1xuXHRcdFx0XHRcdFx0cmV0dXJuIC0xO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRpZiAoYiA8IGEpIHtcblx0XHRcdFx0XHRcdHJldHVybiAxO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRyZXR1cm4gMDtcblx0XHRcdFx0fSk7XG5cdFx0XHRcdC8vIFJlbW92ZSBkdXBsaWNhdGVzIGFuZCBzZWxmLXJlZmVyZW5jZXNcblx0XHRcdFx0Zm9yIChpID0gMDsgaSA8IHRpdGxlcy5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRcdGlmIChcblx0XHRcdFx0XHRcdChpICsgMSA8IHRpdGxlcy5sZW5ndGggJiYgdGl0bGVzW2ldID09PSB0aXRsZXNbaSArIDFdKSB8fFxuXHRcdFx0XHRcdFx0KGNvbmYud2dOYW1lc3BhY2VOdW1iZXIgPT09IDE0ICYmIHRpdGxlc1tpXSA9PT0gY29uZi53Z1RpdGxlKVxuXHRcdFx0XHRcdCkge1xuXHRcdFx0XHRcdFx0dGl0bGVzLnNwbGljZShpLCAxKTtcblx0XHRcdFx0XHRcdGktLTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdGlmICghdGl0bGVzIHx8IHRpdGxlcy5sZW5ndGggPT09IDApIHtcblx0XHRcdFx0aWYgKHRoaXMubGlzdCkge1xuXHRcdFx0XHRcdHRoaXMubGlzdC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmICh0aGlzLmVuZ2luZVNlbGVjdG9yKSB7XG5cdFx0XHRcdFx0dGhpcy5lbmdpbmVTZWxlY3Rvci5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmIChlbmdpbmVOYW1lICYmIHN1Z2dlc3Rpb25Db25maWdzW2VuZ2luZU5hbWVdICYmICFzdWdnZXN0aW9uQ29uZmlnc1tlbmdpbmVOYW1lXS50ZW1wKSB7XG5cdFx0XHRcdFx0aWYgKHRoaXMuaWNvbikge1xuXHRcdFx0XHRcdFx0dGhpcy5pY29uLnNyYyA9IEhDLmV4aXN0c05vO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHR0aGlzLmlucHV0RXhpc3RzID0gZmFsc2U7XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdFx0Y29uc3QgW2ZpcnN0VGl0bGVdID0gdGl0bGVzO1xuXHRcdFx0Y29uc3QgY29tcGxldGVkID0gdGhpcy5hdXRvQ29tcGxldGUoZmlyc3RUaXRsZSwgdiwgdk5vcm1hbGl6ZWQsIGtleSwgZG9udEF1dG9jb21wbGV0ZSk7XG5cdFx0XHRjb25zdCBleGlzdGluZyA9IGNvbXBsZXRlZCB8fCBrbm93blRvRXhpc3QgfHwgZmlyc3RUaXRsZSA9PT0gcmVwbGFjZVNob3J0Y3V0cyh2LCBIQy5zaG9ydGN1dHMpO1xuXHRcdFx0aWYgKGVuZ2luZU5hbWUgJiYgc3VnZ2VzdGlvbkNvbmZpZ3NbZW5naW5lTmFtZV0gJiYgIXN1Z2dlc3Rpb25Db25maWdzW2VuZ2luZU5hbWVdLnRlbXApIHtcblx0XHRcdFx0dGhpcy5pY29uLnNyYyA9IGV4aXN0aW5nID8gSEMuZXhpc3RzWWVzIDogSEMuZXhpc3RzTm87XG5cdFx0XHRcdHRoaXMuaW5wdXRFeGlzdHMgPSBleGlzdGluZztcblx0XHRcdH1cblx0XHRcdGlmIChjb21wbGV0ZWQpIHtcblx0XHRcdFx0dGhpcy5sYXN0SW5wdXQgPSBmaXJzdFRpdGxlO1xuXHRcdFx0XHRpZiAodGl0bGVzLmxlbmd0aCA9PT0gMSkge1xuXHRcdFx0XHRcdHRoaXMubGlzdC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuXHRcdFx0XHRcdGlmICh0aGlzLmVuZ2luZVNlbGVjdG9yKSB7XG5cdFx0XHRcdFx0XHR0aGlzLmVuZ2luZVNlbGVjdG9yLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0Ly8gKFJlLSlmaWxsIHRoZSBsaXN0XG5cdFx0XHR3aGlsZSAodGhpcy5saXN0LmZpcnN0Q2hpbGQpIHtcblx0XHRcdFx0dGhpcy5saXN0LmZpcnN0Q2hpbGQucmVtb3ZlKCk7XG5cdFx0XHR9XG5cdFx0XHRmb3IgKGkgPSAwOyBpIDwgdGl0bGVzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdGNvbnN0IG9wdCA9IG1ha2UoJ29wdGlvbicpO1xuXHRcdFx0XHRvcHQuYXBwZW5kKG1ha2UodGl0bGVzW2ldLCB0cnVlKSk7XG5cdFx0XHRcdG9wdC5zZWxlY3RlZCA9IGNvbXBsZXRlZCAmJiBpID09PSAwO1xuXHRcdFx0XHR0aGlzLmxpc3QuYXBwZW5kKG9wdCk7XG5cdFx0XHR9XG5cdFx0XHR0aGlzLmRpc3BsYXlMaXN0KCk7XG5cdFx0fVxuXHRcdGRpc3BsYXlMaXN0KCkge1xuXHRcdFx0dGhpcy5zaG93c0xpc3QgPSB0cnVlO1xuXHRcdFx0aWYgKCF0aGlzLmlzX2FjdGl2ZSkge1xuXHRcdFx0XHR0aGlzLmxpc3Quc3R5bGUuZGlzcGxheSA9ICdub25lJztcblx0XHRcdFx0aWYgKHRoaXMuZW5naW5lU2VsZWN0b3IpIHtcblx0XHRcdFx0XHR0aGlzLmVuZ2luZVNlbGVjdG9yLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdFx0bGV0IG5vZkl0ZW1zID0gTWF0aC5taW4odGhpcy5saXN0Lm9wdGlvbnMubGVuZ3RoLCBIQy5saXN0U2l6ZSk7XG5cdFx0XHRpZiAobm9mSXRlbXMgPD0gMSkge1xuXHRcdFx0XHRub2ZJdGVtcyA9IDI7XG5cdFx0XHR9XG5cdFx0XHR0aGlzLmxpc3Quc2l6ZSA9IG5vZkl0ZW1zO1xuXHRcdFx0dGhpcy5saXN0LnN0eWxlLmFsaWduID0gaXNfcnRsID8gJ3JpZ2h0JyA6ICdsZWZ0Jztcblx0XHRcdHRoaXMubGlzdC5zdHlsZS56SW5kZXggPSA1O1xuXHRcdFx0dGhpcy5saXN0LnN0eWxlLnBvc2l0aW9uID0gJ2Fic29sdXRlJztcblx0XHRcdC8vIENvbXB1dGUgaW5pdGlhbCBsaXN0IHBvc2l0aW9uLiBGaXJzdCB0aGUgaGVpZ2h0LlxuXHRcdFx0Y29uc3QgYW5jaG9yID0gaXNfcnRsID8gJ3JpZ2h0JyA6ICdsZWZ0Jztcblx0XHRcdGxldCBsaXN0aCA9IDA7XG5cdFx0XHRpZiAodGhpcy5saXN0LnN0eWxlLmRpc3BsYXkgPT09ICdub25lJykge1xuXHRcdFx0XHQvLyBPZmYtc2NyZWVuIGRpc3BsYXkgdG8gZ2V0IHRoZSBoZWlnaHRcblx0XHRcdFx0dGhpcy5saXN0LnN0eWxlLnRvcCA9IGAke3RoaXMudGV4dC5vZmZzZXRUb3B9cHhgO1xuXHRcdFx0XHR0aGlzLmxpc3Quc3R5bGVbYW5jaG9yXSA9ICctMTAwMDBweCc7XG5cdFx0XHRcdHRoaXMubGlzdC5zdHlsZS5kaXNwbGF5ID0gJyc7XG5cdFx0XHRcdGxpc3RoID0gdGhpcy5saXN0Lm9mZnNldEhlaWdodDtcblx0XHRcdFx0dGhpcy5saXN0LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRsaXN0aCA9IHRoaXMubGlzdC5vZmZzZXRIZWlnaHQ7XG5cdFx0XHR9XG5cdFx0XHQvLyBBcHByb3hpbWF0ZSBjYWxjdWxhdGlvbiBvZiBtYXhpbXVtIGxpc3Qgc2l6ZVxuXHRcdFx0bGV0IG1heExpc3RIZWlnaHQgPSBsaXN0aDtcblx0XHRcdGlmIChub2ZJdGVtcyA8IEhDLmxpc3RTaXplKSB7XG5cdFx0XHRcdG1heExpc3RIZWlnaHQgPSAobGlzdGggLyBub2ZJdGVtcykgKiBIQy5saXN0U2l6ZTtcblx0XHRcdH1cblx0XHRcdGNvbnN0IHZpZXdwb3J0ID0gKHdoYXQpID0+IHtcblx0XHRcdFx0Y29uc3QgcyA9IGBjbGllbnQke3doYXR9YDtcblx0XHRcdFx0cmV0dXJuIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCA/IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudFtzXSA6IDA7XG5cdFx0XHR9O1xuXHRcdFx0Y29uc3Qgc2Nyb2xsX29mZnNldCA9ICh3aGF0KSA9PiB7XG5cdFx0XHRcdGNvbnN0IHMgPSBgc2Nyb2xsJHt3aGF0fWA7XG5cdFx0XHRcdGxldCByZXN1bHQgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQgPyBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnRbc10gOiAwO1xuXHRcdFx0XHRpZiAoaXNfcnRsICYmIHdoYXQgPT09ICdMZWZ0Jykge1xuXHRcdFx0XHRcdC8vIFJUTCBpbmNvbnNpc3RlbmNpZXMuXG5cdFx0XHRcdFx0Ly8gRkY6IDAgYXQgdGhlIGZhciByaWdodCwgdGhlbiBpbmNyZWFzaW5nbHkgbmVnYXRpdmUgdmFsdWVzLlxuXHRcdFx0XHRcdC8vIElFID49IDg6IDAgYXQgdGhlIGZhciByaWdodCwgdGhlbiBpbmNyZWFzaW5nbHkgcG9zaXRpdmUgdmFsdWVzLlxuXHRcdFx0XHRcdC8vIFdlYmtpdDogc2Nyb2xsV2lkdGggLSBjbGllbnRXaWR0aCBhdCB0aGUgZmFyIHJpZ2h0LCB0aGVuIGRvd24gdG8gemVyby5cblx0XHRcdFx0XHQvLyBPcGVyYTogZG9uJ3Qga25vdy4uLlxuXHRcdFx0XHRcdGlmIChyZXN1bHQgPCAwKSB7XG5cdFx0XHRcdFx0XHRyZXN1bHQgPSAtcmVzdWx0O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRpZiAoIWlzX3dlYmtpdCkge1xuXHRcdFx0XHRcdFx0cmVzdWx0ID0gc2Nyb2xsX29mZnNldCgnV2lkdGgnKSAtIHZpZXdwb3J0KCdXaWR0aCcpIC0gcmVzdWx0O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHQvLyBOb3cgYWxsIGhhdmUgd2Via2l0IGJlaGF2aW9yLCBpLmUuIHplcm8gaWYgYXQgdGhlIGxlZnRtb3N0IGVkZ2UuXG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIHJlc3VsdDtcblx0XHRcdH07XG5cdFx0XHRjb25zdCBwb3NpdGlvbiA9IChub2RlKSA9PiB7XG5cdFx0XHRcdC8vIFN0cmlwcGVkLWRvd24gc2ltcGxpZmllZCBwb3NpdGlvbiBmdW5jdGlvbi4gSXQncyBnb29kIGVub3VnaCBmb3Igb3VyIHB1cnBvc2VzLlxuXHRcdFx0XHRpZiAobm9kZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QpIHtcblx0XHRcdFx0XHRjb25zdCBib3ggPSBub2RlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXHRcdFx0XHRcdHJldHVybiB7XG5cdFx0XHRcdFx0XHR4OiBNYXRoLnJvdW5kKGJveC5sZWZ0ICsgc2Nyb2xsX29mZnNldCgnTGVmdCcpKSxcblx0XHRcdFx0XHRcdHk6IE1hdGgucm91bmQoYm94LnRvcCArIHNjcm9sbF9vZmZzZXQoJ1RvcCcpKSxcblx0XHRcdFx0XHR9O1xuXHRcdFx0XHR9XG5cdFx0XHRcdGxldCB0ID0gMDtcblx0XHRcdFx0bGV0IGwgPSAwO1xuXHRcdFx0XHRkbyB7XG5cdFx0XHRcdFx0dCArPSBub2RlLm9mZnNldFRvcCB8fCAwO1xuXHRcdFx0XHRcdGwgKz0gbm9kZS5vZmZzZXRMZWZ0IHx8IDA7XG5cdFx0XHRcdFx0bm9kZSA9IG5vZGUub2Zmc2V0UGFyZW50O1xuXHRcdFx0XHR9IHdoaWxlIChub2RlKTtcblx0XHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0XHR4OiBsLFxuXHRcdFx0XHRcdHk6IHQsXG5cdFx0XHRcdH07XG5cdFx0XHR9O1xuXHRcdFx0Y29uc3QgdGV4dFBvcyA9IHBvc2l0aW9uKHRoaXMudGV4dCk7XG5cdFx0XHRjb25zdCBubCA9IDA7XG5cdFx0XHRsZXQgbnQgPSAwO1xuXHRcdFx0Ly8gT3BlcmEgOS41IHNvbWVob3cgaGFzIG9mZnNldFdpZHRoID0gMCBoZXJlPz8gVXNlIHRoZSBuZXh0IGJlc3QgdmFsdWUuLi5cblx0XHRcdGxldCBvZmZzZXQgPSAwO1xuXHRcdFx0Y29uc3QgdGV4dEJveFdpZHRoID0gdGhpcy50ZXh0Lm9mZnNldFdpZHRoIHx8IHRoaXMudGV4dC5jbGllbnRXaWR0aDtcblx0XHRcdGlmICh0aGlzLmVuZ2luZU5hbWUpIHtcblx0XHRcdFx0dGhpcy5lbmdpbmVTZWxlY3Rvci5zdHlsZS56SW5kZXggPSA1O1xuXHRcdFx0XHR0aGlzLmVuZ2luZVNlbGVjdG9yLnN0eWxlLnBvc2l0aW9uID0gJ2Fic29sdXRlJztcblx0XHRcdFx0dGhpcy5lbmdpbmVTZWxlY3Rvci5zdHlsZS53aWR0aCA9IGAke3RleHRCb3hXaWR0aH1weGA7XG5cdFx0XHRcdC8vIEZpZ3VyZSBvdXQgdGhlIGhlaWdodCBvZiB0aGlzIHNlbGVjdG9yOiBkaXNwbGF5IGl0IG9mZi1zY3JlZW4sIHRoZW4gaGlkZSBpdCBhZ2Fpbi5cblx0XHRcdFx0aWYgKHRoaXMuZW5naW5lU2VsZWN0b3Iuc3R5bGUuZGlzcGxheSA9PT0gJ25vbmUnKSB7XG5cdFx0XHRcdFx0dGhpcy5lbmdpbmVTZWxlY3Rvci5zdHlsZVthbmNob3JdID0gJy0xMDAwMHB4Jztcblx0XHRcdFx0XHR0aGlzLmVuZ2luZVNlbGVjdG9yLnN0eWxlLnRvcCA9ICcwJztcblx0XHRcdFx0XHR0aGlzLmVuZ2luZVNlbGVjdG9yLnN0eWxlLmRpc3BsYXkgPSAnJztcblx0XHRcdFx0XHRvZmZzZXQgPSB0aGlzLmVuZ2luZVNlbGVjdG9yLm9mZnNldEhlaWdodDtcblx0XHRcdFx0XHR0aGlzLmVuZ2luZVNlbGVjdG9yLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0b2Zmc2V0ID0gdGhpcy5lbmdpbmVTZWxlY3Rvci5vZmZzZXRIZWlnaHQ7XG5cdFx0XHRcdH1cblx0XHRcdFx0dGhpcy5lbmdpbmVTZWxlY3Rvci5zdHlsZVthbmNob3JdID0gYCR7bmx9cHhgO1xuXHRcdFx0fVxuXHRcdFx0aWYgKHRleHRQb3MueSA8IG1heExpc3RIZWlnaHQgKyBvZmZzZXQgKyAxKSB7XG5cdFx0XHRcdC8vIFRoZSBsaXN0IG1pZ2h0IGV4dGVuZCBiZXlvbmQgdGhlIHVwcGVyIGJvcmRlciBvZiB0aGUgcGFnZS4gTGV0J3MgYXZvaWQgdGhhdCBieSBwbGFjaW5nIGl0XG5cdFx0XHRcdC8vIGJlbG93IHRoZSBpbnB1dCB0ZXh0IGZpZWxkLlxuXHRcdFx0XHRudCA9IHRoaXMudGV4dC5vZmZzZXRIZWlnaHQgKyBvZmZzZXQgKyAxO1xuXHRcdFx0XHRpZiAodGhpcy5lbmdpbmVOYW1lKSB7XG5cdFx0XHRcdFx0dGhpcy5lbmdpbmVTZWxlY3Rvci5zdHlsZS50b3AgPSBgJHt0aGlzLnRleHQub2Zmc2V0SGVpZ2h0fXB4YDtcblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0bnQgPSAtbGlzdGggLSBvZmZzZXQgLSAxO1xuXHRcdFx0XHRpZiAodGhpcy5lbmdpbmVOYW1lKSB7XG5cdFx0XHRcdFx0dGhpcy5lbmdpbmVTZWxlY3Rvci5zdHlsZS50b3AgPSBgJHstKG9mZnNldCArIDEpfXB4YDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0dGhpcy5saXN0LnN0eWxlLnRvcCA9IGAke250fXB4YDtcblx0XHRcdHRoaXMubGlzdC5zdHlsZS53aWR0aCA9ICcnOyAvLyBObyBmaXhlZCB3aWR0aCAoeWV0KVxuXHRcdFx0dGhpcy5saXN0LnN0eWxlW2FuY2hvcl0gPSBgJHtubH1weGA7XG5cdFx0XHRpZiAodGhpcy5lbmdpbmVOYW1lKSB7XG5cdFx0XHRcdHRoaXMuc2VsZWN0RW5naW5lKHRoaXMuZW5naW5lTmFtZSk7XG5cdFx0XHRcdHRoaXMuZW5naW5lU2VsZWN0b3Iuc3R5bGUuZGlzcGxheSA9ICcnO1xuXHRcdFx0fVxuXHRcdFx0dGhpcy5saXN0LnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snO1xuXHRcdFx0Ly8gU2V0IHRoZSB3aWR0aCBvZiB0aGUgbGlzdFxuXHRcdFx0aWYgKHRoaXMubGlzdC5vZmZzZXRXaWR0aCA8IHRleHRCb3hXaWR0aCkge1xuXHRcdFx0XHR0aGlzLmxpc3Quc3R5bGUud2lkdGggPSBgJHt0ZXh0Qm94V2lkdGh9cHhgO1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cdFx0XHQvLyBJZiB0aGUgbGlzdCBpcyB3aWRlciB0aGFuIHRoZSB0ZXh0Ym94OiBtYWtlIHN1cmUgaXQgZml0cyBob3Jpem9udGFsbHkgaW50byB0aGUgYnJvd3NlciB3aW5kb3dcblx0XHRcdGNvbnN0IHNjcm9sbCA9IHNjcm9sbF9vZmZzZXQoJ0xlZnQnKTtcblx0XHRcdGNvbnN0IHZpZXdfdyA9IHZpZXdwb3J0KCdXaWR0aCcpO1xuXHRcdFx0bGV0IHcgPSB0aGlzLmxpc3Qub2Zmc2V0V2lkdGg7XG5cdFx0XHRjb25zdCBsX3BvcyA9IHBvc2l0aW9uKHRoaXMubGlzdCk7XG5cdFx0XHRsZXQgbGVmdCA9IGxfcG9zLng7XG5cdFx0XHRsZXQgcmlnaHQgPSBsZWZ0ICsgdztcblx0XHRcdGlmIChsZWZ0IDwgc2Nyb2xsIHx8IHJpZ2h0ID4gc2Nyb2xsICsgdmlld193KSB7XG5cdFx0XHRcdGlmICh3ID4gdmlld193KSB7XG5cdFx0XHRcdFx0dyA9IHZpZXdfdztcblx0XHRcdFx0XHR0aGlzLmxpc3Quc3R5bGUud2lkdGggPSBgJHt3fXB4YDtcblx0XHRcdFx0XHRpZiAoaXNfcnRsKSB7XG5cdFx0XHRcdFx0XHRsZWZ0ID0gcmlnaHQgLSB3O1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRyaWdodCA9IGxlZnQgKyB3O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRsZXQgcmVsYXRpdmVfb2Zmc2V0ID0gMDtcblx0XHRcdFx0aWYgKGxlZnQgPCBzY3JvbGwpIHtcblx0XHRcdFx0XHRyZWxhdGl2ZV9vZmZzZXQgPSBzY3JvbGwgLSBsZWZ0O1xuXHRcdFx0XHR9IGVsc2UgaWYgKHJpZ2h0ID4gc2Nyb2xsICsgdmlld193KSB7XG5cdFx0XHRcdFx0cmVsYXRpdmVfb2Zmc2V0ID0gLShyaWdodCAtIHNjcm9sbCAtIHZpZXdfdyk7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKGlzX3J0bCkge1xuXHRcdFx0XHRcdHJlbGF0aXZlX29mZnNldCA9IC1yZWxhdGl2ZV9vZmZzZXQ7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKHJlbGF0aXZlX29mZnNldCkge1xuXHRcdFx0XHRcdHRoaXMubGlzdC5zdHlsZVthbmNob3JdID0gYCR7bmwgKyByZWxhdGl2ZV9vZmZzZXR9cHhgO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHRcdGF1dG9Db21wbGV0ZShuZXdWYWwsIGFjdFZhbCwgbm9ybWFsaXplZEFjdFZhbCwga2V5LCBkb250TW9kaWZ5KSB7XG5cdFx0XHRpZiAobmV3VmFsID09PSBhY3RWYWwpIHtcblx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHR9XG5cdFx0XHRpZiAoZG9udE1vZGlmeSB8fCB0aGlzLmltZSB8fCAhdGhpcy5jYW5TZWxlY3QoKSkge1xuXHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHR9XG5cdFx0XHQvLyBJZiB3ZSBjYW4ndCBzZWxlY3QgcHJvcGVybHkgb3IgYW4gSU1FIGNvbXBvc2l0aW9uIGlzIG9uZ29pbmcsIGF1dG9jb21wbGV0aW9uIHdvdWxkIGJlIGEgbWFqb3IgYW5ub3lhbmNlIHRvIHRoZSB1c2VyLlxuXHRcdFx0aWYgKG5ld1ZhbC5pbmRleE9mKGFjdFZhbCkpIHtcblx0XHRcdFx0Ly8gTWF5YmUgaXQnbGwgd29yayB3aXRoIHRoZSBub3JtYWxpemVkIHZhbHVlIChORkMpP1xuXHRcdFx0XHRpZiAobm9ybWFsaXplZEFjdFZhbCAmJiBuZXdWYWwuaW5kZXhPZihub3JtYWxpemVkQWN0VmFsKSA9PT0gMCkge1xuXHRcdFx0XHRcdGlmICh0aGlzLmxhc3RSZWFsSW5wdXQgPT09IGFjdFZhbCkge1xuXHRcdFx0XHRcdFx0dGhpcy5sYXN0UmVhbElucHV0ID0gbm9ybWFsaXplZEFjdFZhbDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0YWN0VmFsID0gbm9ybWFsaXplZEFjdFZhbDtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdC8vIEFjdHVhbCBpbnB1dCBpcyBhIHByZWZpeCBvZiB0aGUgbmV3IHRleHQuIEZpbGwgaW4gbmV3IHRleHQsIHNlbGVjdGluZyB0aGUgbmV3bHkgYWRkZWQgc3VmZml4XG5cdFx0XHQvLyBzdWNoIHRoYXQgaXQgY2FuIGJlIGVhc2lseSByZW1vdmVkIGJ5IHR5cGluZyBiYWNrc3BhY2UgaWYgdGhlIHN1Z2dlc3Rpb24gaXMgdW53YW50ZWQuXG5cdFx0XHR0aGlzLnRleHQuZm9jdXMoKTtcblx0XHRcdHRoaXMudGV4dC52YWx1ZSA9IG5ld1ZhbCArIGtleTtcblx0XHRcdHRoaXMuc2V0U2VsZWN0aW9uKGFjdFZhbC5sZW5ndGgsIG5ld1ZhbC5sZW5ndGgpO1xuXHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0fVxuXHRcdGNhblNlbGVjdCgpIHtcblx0XHRcdHJldHVybiAoXG5cdFx0XHRcdHRoaXMudGV4dC5zZXRTZWxlY3Rpb25SYW5nZSB8fFxuXHRcdFx0XHQodGhpcy50ZXh0LnNlbGVjdGlvblN0YXJ0ICE9PSB1bmRlZmluZWQgJiYgdGhpcy50ZXh0LnNlbGVjdGlvbkVuZCAhPT0gdW5kZWZpbmVkKVxuXHRcdFx0KTtcblx0XHR9XG5cdFx0c2V0U2VsZWN0aW9uKGZyb20sIHRvKSB7XG5cdFx0XHQvLyB0aGlzLnRleHQgbXVzdCBiZSBmb2N1c2VkIChhdCBsZWFzdCBvbiBJRSlcblx0XHRcdGlmICghdGhpcy50ZXh0LnZhbHVlKSB7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblx0XHRcdGlmICh0aGlzLnRleHQuc2V0U2VsZWN0aW9uUmFuZ2UpIHtcblx0XHRcdFx0Ly8gZS5nLiBraHRtbFxuXHRcdFx0XHR0aGlzLnRleHQuc2V0U2VsZWN0aW9uUmFuZ2UoZnJvbSwgdG8pO1xuXHRcdFx0fSBlbHNlIGlmICh0aGlzLnRleHQuc2VsZWN0aW9uU3RhcnQgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHRpZiAoZnJvbSA+IHRoaXMudGV4dC5zZWxlY3Rpb25TdGFydCkge1xuXHRcdFx0XHRcdHRoaXMudGV4dC5zZWxlY3Rpb25FbmQgPSB0bztcblx0XHRcdFx0XHR0aGlzLnRleHQuc2VsZWN0aW9uU3RhcnQgPSBmcm9tO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHRoaXMudGV4dC5zZWxlY3Rpb25TdGFydCA9IGZyb207XG5cdFx0XHRcdFx0dGhpcy50ZXh0LnNlbGVjdGlvbkVuZCA9IHRvO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHRcdGdldFNlbGVjdGlvbigpIHtcblx0XHRcdGxldCBmcm9tID0gMDtcblx0XHRcdC8vIHRoaXMudGV4dCBtdXN0IGJlIGZvY3VzZWQgKGF0IGxlYXN0IG9uIElFKVxuXHRcdFx0bGV0IHRvID0gMDtcblx0XHRcdGlmICghdGhpcy50ZXh0LnZhbHVlKSB7XG5cdFx0XHRcdC8vIE5vIHRleHQuXG5cdFx0XHR9IGVsc2UgaWYgKHRoaXMudGV4dC5zZWxlY3Rpb25TdGFydCAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRcdGZyb20gPSB0aGlzLnRleHQuc2VsZWN0aW9uU3RhcnQ7XG5cdFx0XHRcdHRvID0gdGhpcy50ZXh0LnNlbGVjdGlvbkVuZDtcblx0XHRcdH1cblx0XHRcdHJldHVybiB7XG5cdFx0XHRcdHN0YXJ0OiBmcm9tLFxuXHRcdFx0XHRlbmQ6IHRvLFxuXHRcdFx0fTtcblx0XHR9XG5cdFx0c2F2ZVZpZXcoKSB7XG5cdFx0XHR0aGlzLmxhc3RTZWxlY3Rpb24gPSB0aGlzLmdldFNlbGVjdGlvbigpO1xuXHRcdH1cblx0XHRwcm9jZXNzS2V5KGV2ZW50KSB7XG5cdFx0XHRsZXQgZGlyID0gMDtcblx0XHRcdHN3aXRjaCAodGhpcy5sYXN0S2V5KSB7XG5cdFx0XHRcdGNhc2UgVVA6XG5cdFx0XHRcdFx0ZGlyID0gLTE7XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdGNhc2UgRE9XTjpcblx0XHRcdFx0XHRkaXIgPSAxO1xuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRjYXNlIFBHVVA6XG5cdFx0XHRcdFx0ZGlyID0gLUhDLmxpc3RTaXplO1xuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRjYXNlIFBHRE9XTjpcblx0XHRcdFx0XHRkaXIgPSBIQy5saXN0U2l6ZTtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0Y2FzZSBFU0M6XG5cdFx0XHRcdFx0Ly8gSW5oaWJpdCBkZWZhdWx0IGJlaGF2aW9yIChyZXZlcnQgdG8gbGFzdCByZWFsIGlucHV0IGluIEZGOiB3ZSBkbyB0aGF0IG91cnNlbHZlcylcblx0XHRcdFx0XHRyZXR1cm4gZXZ0S2lsbChldmVudCk7XG5cdFx0XHR9XG5cdFx0XHRpZiAoZGlyKSB7XG5cdFx0XHRcdGlmICh0aGlzLmxpc3Quc3R5bGUuZGlzcGxheSAhPT0gJ25vbmUnKSB7XG5cdFx0XHRcdFx0Ly8gTGlzdCBpcyB2aXNpYmxlLCBzbyB0aGVyZSBhcmUgc3VnZ2VzdGlvbnNcblx0XHRcdFx0XHR0aGlzLmhpZ2hsaWdodFN1Z2dlc3Rpb24oZGlyKTtcblx0XHRcdFx0XHQvLyBLaWxsIHRoZSBldmVudCwgb3RoZXJ3aXNlIHNvbWUgYnJvd3NlcnMgKGUuZy4sIEZpcmVmb3gpIG1heSBhZGRpdGlvbmFsbHkgdHJlYXQgYW4gdXAtYXJyb3dcblx0XHRcdFx0XHQvLyBhcyBcInBsYWNlIHRoZSB0ZXh0IGN1cnNvciBhdCB0aGUgZnJvbnRcIiwgd2hpY2ggd2UgZG9uJ3Qgd2FudCBoZXJlLlxuXHRcdFx0XHRcdHJldHVybiBldnRLaWxsKGV2ZW50KTtcblx0XHRcdFx0fSBlbHNlIGlmIChcblx0XHRcdFx0XHR0aGlzLmtleUNvdW50IDw9IDEgJiZcblx0XHRcdFx0XHQoIXRoaXMuY2FsbGJhY2tPYmogfHwgdGhpcy5jYWxsYmFja09iai5jYWxsc01hZGUgPT09IHRoaXMuY2FsbGJhY2tPYmoubm9mQ2FsbHMpXG5cdFx0XHRcdCkge1xuXHRcdFx0XHRcdC8vIElmIG5vIHN1Z2dlc3Rpb25zIGRpc3BsYXllZCwgZ2V0IHRoZW0sIHVubGVzcyB3ZSdyZSBhbHJlYWR5IGdldHRpbmcgdGhlbS5cblx0XHRcdFx0XHR0aGlzLnRleHRjaGFuZ2UoKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0fVxuXHRcdGhpZ2hsaWdodFN1Z2dlc3Rpb24oZGlyKSB7XG5cdFx0XHRpZiAobm9TdWdnZXN0aW9ucyB8fCAhdGhpcy5saXN0IHx8IHRoaXMubGlzdC5zdHlsZS5kaXNwbGF5ID09PSAnbm9uZScpIHtcblx0XHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdFx0fVxuXHRcdFx0Y29uc3QgY3VyciA9IHRoaXMubGlzdC5zZWxlY3RlZEluZGV4O1xuXHRcdFx0bGV0IHRndCA9IC0xO1xuXHRcdFx0aWYgKGRpciA9PT0gMCkge1xuXHRcdFx0XHRpZiAoY3VyciA8IDAgfHwgY3VyciA+PSB0aGlzLmxpc3Qub3B0aW9ucy5sZW5ndGgpIHtcblx0XHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHRcdH1cblx0XHRcdFx0dGd0ID0gY3Vycjtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHRndCA9IGN1cnIgPCAwID8gMCA6IGN1cnIgKyBkaXI7XG5cdFx0XHRcdHRndCA9IE1hdGgubWF4KHRndCwgMCk7XG5cdFx0XHRcdGlmICh0Z3QgPj0gdGhpcy5saXN0Lm9wdGlvbnMubGVuZ3RoKSB7XG5cdFx0XHRcdFx0dGd0ID0gdGhpcy5saXN0Lm9wdGlvbnMubGVuZ3RoIC0gMTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0aWYgKHRndCAhPT0gY3VyciB8fCBkaXIgPT09IDApIHtcblx0XHRcdFx0aWYgKGN1cnIgPj0gMCAmJiBjdXJyIDwgdGhpcy5saXN0Lm9wdGlvbnMubGVuZ3RoICYmIGRpciAhPT0gMCkge1xuXHRcdFx0XHRcdHRoaXMubGlzdC5vcHRpb25zW2N1cnJdLnNlbGVjdGVkID0gZmFsc2U7XG5cdFx0XHRcdH1cblx0XHRcdFx0dGhpcy5saXN0Lm9wdGlvbnNbdGd0XS5zZWxlY3RlZCA9IHRydWU7XG5cdFx0XHRcdC8vIEdldCBjdXJyZW50IGlucHV0IHRleHRcblx0XHRcdFx0Y29uc3QgdiA9IHRoaXMudGV4dC52YWx1ZS5zcGxpdCgnfCcpO1xuXHRcdFx0XHRjb25zdCBrZXkgPSB2Lmxlbmd0aCA+IDEgPyBgfCR7dlsxXX1gIDogJyc7XG5cdFx0XHRcdGNvbnN0IGNvbXBsZXRlZCA9IHRoaXMuYXV0b0NvbXBsZXRlKHRoaXMubGlzdC5vcHRpb25zW3RndF0udGV4dCwgdGhpcy5sYXN0UmVhbElucHV0LCBudWxsLCBrZXksIGZhbHNlKTtcblx0XHRcdFx0aWYgKCFjb21wbGV0ZWQgfHwgdGhpcy5saXN0Lm9wdGlvbnNbdGd0XS50ZXh0ID09PSB0aGlzLmxhc3RSZWFsSW5wdXQpIHtcblx0XHRcdFx0XHR0aGlzLnRleHQudmFsdWUgPSB0aGlzLmxpc3Qub3B0aW9uc1t0Z3RdLnRleHQgKyBrZXk7XG5cdFx0XHRcdFx0aWYgKHRoaXMuY2FuU2VsZWN0KCkpIHtcblx0XHRcdFx0XHRcdHRoaXMuc2V0U2VsZWN0aW9uKHRoaXMubGlzdC5vcHRpb25zW3RndF0udGV4dC5sZW5ndGgsIHRoaXMubGlzdC5vcHRpb25zW3RndF0udGV4dC5sZW5ndGgpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHR0aGlzLmxhc3RJbnB1dCA9IHRoaXMubGlzdC5vcHRpb25zW3RndF0udGV4dDtcblx0XHRcdFx0dGhpcy5pbnB1dEV4aXN0cyA9IHRydWU7IC8vIE1pZ2h0IGJlIHdyb25nIGlmIGZyb20gYSBkYWIgbGlzdC4uLlxuXHRcdFx0XHRpZiAodGhpcy5pY29uKSB7XG5cdFx0XHRcdFx0dGhpcy5pY29uLnNyYyA9IEhDLmV4aXN0c1llcztcblx0XHRcdFx0fVxuXHRcdFx0XHR0aGlzLnN0YXRlID0gQ0hBTkdFX1BFTkRJTkc7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHR9XG5cdFx0cmVzZXRLZXlTZWxlY3Rpb24oKSB7XG5cdFx0XHRpZiAobm9TdWdnZXN0aW9ucyB8fCAhdGhpcy5saXN0IHx8IHRoaXMubGlzdC5zdHlsZS5kaXNwbGF5ID09PSAnbm9uZScpIHtcblx0XHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdFx0fVxuXHRcdFx0Y29uc3QgY3VyciA9IHRoaXMubGlzdC5zZWxlY3RlZEluZGV4O1xuXHRcdFx0aWYgKGN1cnIgPj0gMCAmJiBjdXJyIDwgdGhpcy5saXN0Lm9wdGlvbnMubGVuZ3RoKSB7XG5cdFx0XHRcdHRoaXMubGlzdC5vcHRpb25zW2N1cnJdLnNlbGVjdGVkID0gZmFsc2U7XG5cdFx0XHRcdC8vIEdldCBjdXJyZW50IGlucHV0IHRleHRcblx0XHRcdFx0Y29uc3QgdiA9IHRoaXMudGV4dC52YWx1ZS5zcGxpdCgnfCcpO1xuXHRcdFx0XHRjb25zdCBrZXkgPSB2Lmxlbmd0aCA+IDEgPyBgfCR7dlsxXX1gIDogJyc7XG5cdFx0XHRcdC8vIEVTQyBpcyBoYW5kbGVkIHN0cmFuZ2VseSBieSBzb21lIGJyb3dzZXJzIChlLmcuLCBGRik7IHNvbWVob3cgaXQgcmVzZXRzIHRoZSBpbnB1dCB2YWx1ZSBiZWZvcmVcblx0XHRcdFx0Ly8gb3VyIGV2ZW50IGhhbmRsZXJzIGV2ZXIgZ2V0IGEgY2hhbmNlIHRvIHJ1bi5cblx0XHRcdFx0bGV0IHJlc3VsdCA9IHZbMF0gIT09IHRoaXMubGFzdElucHV0O1xuXHRcdFx0XHRpZiAodlswXSAhPT0gdGhpcy5sYXN0UmVhbElucHV0KSB7XG5cdFx0XHRcdFx0dGhpcy50ZXh0LnZhbHVlID0gdGhpcy5sYXN0UmVhbElucHV0ICsga2V5O1xuXHRcdFx0XHRcdHJlc3VsdCA9IHRydWU7XG5cdFx0XHRcdH1cblx0XHRcdFx0dGhpcy5sYXN0SW5wdXQgPSB0aGlzLmxhc3RSZWFsSW5wdXQ7XG5cdFx0XHRcdHJldHVybiByZXN1bHQ7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXHR9XG5cdGNvbnN0IGluaXRpYWxpemUgPSAoKSA9PiB7XG5cdFx0Ly8gVXNlciBjb25maWd1cmF0aW9uczogRG8gdGhpcyBoZXJlLCBjYWxsZWQgZnJvbSB0aGUgb25sb2FkIGhhbmRsZXIsIHNvIHRoYXQgdXNlcnMgY2FuXG5cdFx0Ly8gb3ZlcnJpZGUgaXQgZWFzaWx5IGluIHRoZWlyIG93biB1c2VyIHNjcmlwdCBmaWxlcyBieSBqdXN0IGRlY2xhcmluZyB2YXJpYWJsZXMuXG5cdFx0Y29uc3QgY29uZmlnID0ge307XG5cdFx0SEMuZG9udF9hZGRfdG9fd2F0Y2hsaXN0ID1cblx0XHRcdHdpbmRvdy5ob3RjYXRfZG9udF9hZGRfdG9fd2F0Y2hsaXN0ID09PSB1bmRlZmluZWRcblx0XHRcdFx0PyBjb25maWcuSG90Q2F0RG9udEFkZFRvV2F0Y2hsaXN0ID09PSB1bmRlZmluZWRcblx0XHRcdFx0XHQ/IEhDLmRvbnRfYWRkX3RvX3dhdGNobGlzdFxuXHRcdFx0XHRcdDogY29uZmlnLkhvdENhdERvbnRBZGRUb1dhdGNobGlzdFxuXHRcdFx0XHQ6ICEhd2luZG93LmhvdGNhdF9kb250X2FkZF90b193YXRjaGxpc3Q7XG5cdFx0SEMubm9fYXV0b2NvbW1pdCA9XG5cdFx0XHR3aW5kb3cuaG90Y2F0X25vX2F1dG9jb21taXQgPT09IHVuZGVmaW5lZFxuXHRcdFx0XHQ/IGNvbmZpZy5Ib3RDYXROb0F1dG9Db21taXQgPT09IHVuZGVmaW5lZFxuXHRcdFx0XHRcdD8gY29uZi53Z05hbWVzcGFjZU51bWJlciAlIDJcblx0XHRcdFx0XHRcdD8gdHJ1ZVxuXHRcdFx0XHRcdFx0OiBIQy5ub19hdXRvY29tbWl0IC8vIE9uIHRhbGsgbmFtZXNwYWNlIGRlZmF1bHQgYXV0b2NvbW1pdCBvZmZcblx0XHRcdFx0XHQ6IGNvbmZpZy5Ib3RDYXROb0F1dG9Db21taXRcblx0XHRcdFx0OiAhIXdpbmRvdy5ob3RjYXRfbm9fYXV0b2NvbW1pdDtcblx0XHRIQy5kZWxfbmVlZHNfZGlmZiA9XG5cdFx0XHR3aW5kb3cuaG90Y2F0X2RlbF9uZWVkc19kaWZmID09PSB1bmRlZmluZWRcblx0XHRcdFx0PyBjb25maWcuSG90Q2F0RGVsTmVlZHNEaWZmID09PSB1bmRlZmluZWRcblx0XHRcdFx0XHQ/IEhDLmRlbF9uZWVkc19kaWZmXG5cdFx0XHRcdFx0OiBjb25maWcuSG90Q2F0RGVsTmVlZHNEaWZmXG5cdFx0XHRcdDogISF3aW5kb3cuaG90Y2F0X2RlbF9uZWVkc19kaWZmO1xuXHRcdEhDLnN1Z2dlc3RfZGVsYXkgPSB3aW5kb3cuaG90Y2F0X3N1Z2dlc3Rpb25fZGVsYXkgfHwgY29uZmlnLkhvdENhdFN1Z2dlc3Rpb25EZWxheSB8fCBIQy5zdWdnZXN0X2RlbGF5O1xuXHRcdEhDLmVkaXRib3hfd2lkdGggPSB3aW5kb3cuaG90Y2F0X2VkaXRib3hfd2lkdGggfHwgY29uZmlnLkhvdENhdEVkaXRCb3hXaWR0aCB8fCBIQy5lZGl0Ym94X3dpZHRoO1xuXHRcdEhDLnN1Z2dlc3Rpb25zID0gd2luZG93LmhvdGNhdF9zdWdnZXN0aW9ucyB8fCBjb25maWcuSG90Q2F0U3VnZ2VzdGlvbnMgfHwgSEMuc3VnZ2VzdGlvbnM7XG5cdFx0aWYgKHR5cGVvZiBIQy5zdWdnZXN0aW9ucyAhPT0gJ3N0cmluZycgfHwgIXN1Z2dlc3Rpb25Db25maWdzW0hDLnN1Z2dlc3Rpb25zXSkge1xuXHRcdFx0SEMuc3VnZ2VzdGlvbnMgPSAnY29tYmluZWQnO1xuXHRcdH1cblx0XHRIQy5maXhlZF9zZWFyY2ggPVxuXHRcdFx0d2luZG93LmhvdGNhdF9zdWdnZXN0aW9uc19maXhlZCA9PT0gdW5kZWZpbmVkXG5cdFx0XHRcdD8gY29uZmlnLkhvdENhdEZpeGVkU3VnZ2VzdGlvbnMgPT09IHVuZGVmaW5lZFxuXHRcdFx0XHRcdD8gSEMuZml4ZWRfc2VhcmNoXG5cdFx0XHRcdFx0OiBjb25maWcuSG90Q2F0Rml4ZWRTdWdnZXN0aW9uc1xuXHRcdFx0XHQ6ICEhd2luZG93LmhvdGNhdF9zdWdnZXN0aW9uc19maXhlZDtcblx0XHRIQy5zaW5nbGVfbWlub3IgPVxuXHRcdFx0d2luZG93LmhvdGNhdF9zaW5nbGVfY2hhbmdlc19hcmVfbWlub3IgPT09IHVuZGVmaW5lZFxuXHRcdFx0XHQ/IGNvbmZpZy5Ib3RDYXRNaW5vclNpbmdsZUNoYW5nZXMgPT09IHVuZGVmaW5lZFxuXHRcdFx0XHRcdD8gSEMuc2luZ2xlX21pbm9yXG5cdFx0XHRcdFx0OiBjb25maWcuSG90Q2F0TWlub3JTaW5nbGVDaGFuZ2VzXG5cdFx0XHRcdDogISF3aW5kb3cuaG90Y2F0X3NpbmdsZV9jaGFuZ2VzX2FyZV9taW5vcjtcblx0XHRIQy5iZ19jaGFuZ2VkID0gd2luZG93LmhvdGNhdF9jaGFuZ2VkX2JhY2tncm91bmQgfHwgY29uZmlnLkhvdENhdENoYW5nZWRCYWNrZ3JvdW5kIHx8IEhDLmJnX2NoYW5nZWQ7XG5cdFx0SEMudXNlX3VwX2Rvd24gPVxuXHRcdFx0d2luZG93LmhvdGNhdF91c2VfY2F0ZWdvcnlfbGlua3MgPT09IHVuZGVmaW5lZFxuXHRcdFx0XHQ/IGNvbmZpZy5Ib3RDYXRVc2VDYXRlZ29yeUxpbmtzID09PSB1bmRlZmluZWRcblx0XHRcdFx0XHQ/IEhDLnVzZV91cF9kb3duXG5cdFx0XHRcdFx0OiBjb25maWcuSG90Q2F0VXNlQ2F0ZWdvcnlMaW5rc1xuXHRcdFx0XHQ6ICEhd2luZG93LmhvdGNhdF91c2VfY2F0ZWdvcnlfbGlua3M7XG5cdFx0SEMubGlzdFNpemUgPSB3aW5kb3cuaG90Y2F0X2xpc3Rfc2l6ZSB8fCBjb25maWcuSG90Q2F0TGlzdFNpemUgfHwgSEMubGlzdFNpemU7XG5cdFx0SEMuY2hhbmdlVGFnID0gY29uZmlnLkhvdENhdENoYW5nZVRhZyB8fCAnJztcblx0XHQvLyBUaGUgbmV4dCB3aG9sZSBzaGViYW5nIGlzIG5lZWRlZCwgYmVjYXVzZSBtYW51YWwgdGFncyBnZXQgbm90IHN1Ym1pdHRlZCBleGNlcHQgb2Ygc2F2ZVxuXHRcdGlmIChIQy5jaGFuZ2VUYWcpIHtcblx0XHRcdGNvbnN0IGVGb3JtID0gZG9jdW1lbnQuZWRpdGZvcm07XG5cdFx0XHRjb25zdCBjYXRSZWdFeHAgPSBuZXcgUmVnRXhwKGBeXFxcXFtcXFxcWygke0hDLmNhdGVnb3J5X3JlZ2V4cH0pOmApO1xuXHRcdFx0bGV0IG9sZFR4dDtcblx0XHRcdC8vIFJldHVybnMgdHJ1ZSBpZiBtaW5vciBjaGFuZ2Vcblx0XHRcdGNvbnN0IGlzTWlub3JDaGFuZ2UgPSAoKSA9PiB7XG5cdFx0XHRcdGxldCBuZXdUeHQgPSBlRm9ybS53cFRleHRib3gxO1xuXHRcdFx0XHRpZiAoIW5ld1R4dCkge1xuXHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0fVxuXHRcdFx0XHRuZXdUeHQgPSBuZXdUeHQudmFsdWU7XG5cdFx0XHRcdGNvbnN0IG9sZExpbmVzID0gb2xkVHh0Lm1hdGNoKC9eLiokL2dtKTtcblx0XHRcdFx0Y29uc3QgbmV3TGluZXMgPSBuZXdUeHQubWF0Y2goL14uKiQvZ20pO1xuXHRcdFx0XHRsZXQgY0FycjsgLy8gY2hhbmdlc1xuXHRcdFx0XHRjb25zdCBleGNlcHQgPSAoYUFyciwgYkFycikgPT4ge1xuXHRcdFx0XHRcdGNvbnN0IHJlc3VsdCA9IFtdO1xuXHRcdFx0XHRcdGxldCBsQXJyOyAvLyBzbWFsbGVyXG5cdFx0XHRcdFx0bGV0IC8vIGxhcmdlclxuXHRcdFx0XHRcdFx0c0Fycjtcblx0XHRcdFx0XHRpZiAoYUFyci5sZW5ndGggPCBiQXJyLmxlbmd0aCkge1xuXHRcdFx0XHRcdFx0bEFyciA9IGJBcnI7XG5cdFx0XHRcdFx0XHRzQXJyID0gYUFycjtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0bEFyciA9IGFBcnI7XG5cdFx0XHRcdFx0XHRzQXJyID0gYkFycjtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0Zm9yIChjb25zdCBpdGVtIG9mIGxBcnIpIHtcblx0XHRcdFx0XHRcdGNvbnN0IGluZCA9IHNBcnIuaW5kZXhPZihpdGVtKTtcblx0XHRcdFx0XHRcdGlmIChpbmQgPT09IC0xKSB7XG5cdFx0XHRcdFx0XHRcdHJlc3VsdFtyZXN1bHQubGVuZ3RoXSA9IGl0ZW07XG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRzQXJyLnNwbGljZShpbmQsIDEpOyAvLyBkb24ndCBjaGVjayB0aGlzIGl0ZW0gYWdhaW5cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0cmV0dXJuIFsuLi5yZXN1bHQsIC4uLnNBcnJdO1xuXHRcdFx0XHR9O1xuXHRcdFx0XHRjQXJyID0gZXhjZXB0KG9sZExpbmVzLCBuZXdMaW5lcyk7XG5cdFx0XHRcdGlmIChjQXJyLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0XHRjQXJyID0gY0Fyci5maWx0ZXIoKGMpID0+IHtcblx0XHRcdFx0XHRcdGMgPSBjLnRyaW0oKTtcblx0XHRcdFx0XHRcdHJldHVybiBjICYmICFjYXRSZWdFeHAudGVzdChjKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAoY0Fyci5sZW5ndGggPT09IDApIHtcblx0XHRcdFx0XHRvbGRUeHQgPSBuZXdUeHQ7XG5cdFx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHRcdH1cblx0XHRcdH07XG5cdFx0XHRpZiAoXG5cdFx0XHRcdGNvbmYud2dBY3Rpb24gPT09ICdzdWJtaXQnICYmXG5cdFx0XHRcdGNvbmYud2dBcnRpY2xlSWQgJiZcblx0XHRcdFx0ZUZvcm0gJiZcblx0XHRcdFx0ZUZvcm0ud3BTdW1tYXJ5ICYmXG5cdFx0XHRcdGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyN3aWtpRGlmZicpXG5cdFx0XHQpIHtcblx0XHRcdFx0Y29uc3Qgc3VtID0gZUZvcm0ud3BTdW1tYXJ5O1xuXHRcdFx0XHRjb25zdCBzdW1BID0gZUZvcm0ud3BBdXRvU3VtbWFyeTtcblx0XHRcdFx0aWYgKHN1bS52YWx1ZSAmJiBzdW1BLnZhbHVlID09PSBIQy5jaGFuZ2VUYWcpIHtcblx0XHRcdFx0XHQvLyBIb3RDYXQgZGlmZlxuXHRcdFx0XHRcdC8vIE1ENSBoYXNoIG9mIHRoZSBlbXB0eSBzdHJpbmcsIGFzIEhvdENhdCBlZGl0IGlzIGJhc2VkIG9uIGVtcHR5IHN1bVxuXHRcdFx0XHRcdHN1bUEudmFsdWUgPSBzdW1BLnZhbHVlLnJlcGxhY2UoSEMuY2hhbmdlVGFnLCAnZDQxZDhjZDk4ZjAwYjIwNGU5ODAwOTk4ZWNmODQyN2UnKTtcblx0XHRcdFx0XHQvLyBBdHRyIGNyZWF0aW9uIGFuZCBldmVudCBoYW5kbGluZyBpcyBub3Qgc2FtZSBpbiBhbGwgKG9sZCkgYnJvd3NlcnMgc28gdXNlICRcblx0XHRcdFx0XHRjb25zdCAkY3QgPSAkKCc8aW5wdXQ+Jylcblx0XHRcdFx0XHRcdC5hdHRyKHtcblx0XHRcdFx0XHRcdFx0dHlwZTogJ2hpZGRlbicsXG5cdFx0XHRcdFx0XHRcdG5hbWU6ICd3cENoYW5nZVRhZ3MnLFxuXHRcdFx0XHRcdFx0fSlcblx0XHRcdFx0XHRcdC52YWwoSEMuY2hhbmdlVGFnKTtcblx0XHRcdFx0XHQkKGVGb3JtKS5hcHBlbmQoJGN0KTtcblx0XHRcdFx0XHRvbGRUeHQgPSBlRm9ybS53cFRleHRib3gxLnZhbHVlO1xuXHRcdFx0XHRcdGNvbnN0ICRib2R5ID0gJCgnYm9keScpO1xuXHRcdFx0XHRcdCRib2R5LmZpbmQoJ2lucHV0W25hbWU9d3BTYXZlXScpLm9uZSgnY2xpY2snLCAoKSA9PiB7XG5cdFx0XHRcdFx0XHRpZiAoJGN0LnZhbCgpKSB7XG5cdFx0XHRcdFx0XHRcdHN1bS52YWx1ZSA9IHN1bS52YWx1ZS5yZXBsYWNlKFxuXHRcdFx0XHRcdFx0XHRcdGdldE1lc3NhZ2UoJ21lc3NhZ2VzLXVzaW5nJykgfHwgZ2V0TWVzc2FnZSgnbWVzc2FnZXMtcHJlZml4JyksXG5cdFx0XHRcdFx0XHRcdFx0Jydcblx0XHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRjb25zdCByZW1vdmVDaGFuZ2VUYWcgPSAoKSA9PiB7XG5cdFx0XHRcdFx0XHQkKGVGb3JtLndwVGV4dGJveDEpXG5cdFx0XHRcdFx0XHRcdC5hZGQoc3VtKVxuXHRcdFx0XHRcdFx0XHQub25lKCdpbnB1dCcsICgpID0+IHtcblx0XHRcdFx0XHRcdFx0XHRzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0XHRcdFx0XHRcdGlmIChpc01pbm9yQ2hhbmdlKCkpIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0cmVtb3ZlQ2hhbmdlVGFnKCk7XG5cdFx0XHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHQkY3QudmFsKCcnKTtcblx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHR9LCA1MDApO1xuXHRcdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHR9O1xuXHRcdFx0XHRcdHJlbW92ZUNoYW5nZVRhZygpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHRcdC8vIE51bWVyaWMgaW5wdXQsIG1ha2Ugc3VyZSB3ZSBoYXZlIGEgbnVtZXJpYyB2YWx1ZVxuXHRcdEhDLmxpc3RTaXplID0gTnVtYmVyLnBhcnNlSW50KEhDLmxpc3RTaXplLCAxMCk7XG5cdFx0aWYgKE51bWJlci5pc05hTihIQy5saXN0U2l6ZSkgfHwgSEMubGlzdFNpemUgPCA1KSB7XG5cdFx0XHRIQy5saXN0U2l6ZSA9IDU7XG5cdFx0fVxuXHRcdEhDLmxpc3RTaXplID0gTWF0aC5taW4oSEMubGlzdFNpemUsIDMwKTsgLy8gTWF4IHNpemVcblx0XHQvLyBMb2NhbGl6ZSBzZWFyY2ggZW5naW5lIG5hbWVzXG5cdFx0Zm9yIChjb25zdCBba2V5LCBzdWdnZXN0aW9uQ29uZmlnXSBvZiBPYmplY3QuZW50cmllcyhzdWdnZXN0aW9uQ29uZmlncykpIHtcblx0XHRcdHRyeSB7XG5cdFx0XHRcdGlmIChrZXkgJiYgZ2V0TWVzc2FnZShgZW5naW5lX25hbWVzLSR7a2V5fWApKSB7XG5cdFx0XHRcdFx0c3VnZ2VzdGlvbkNvbmZpZy5uYW1lID0gZ2V0TWVzc2FnZShgZW5naW5lX25hbWVzLSR7a2V5fWApO1xuXHRcdFx0XHR9XG5cdFx0XHR9IGNhdGNoIHtcblx0XHRcdFx0Y29udGludWU7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdC8vIENhdGNoIGJvdGggbmF0aXZlIFJUTCBhbmQgXCJmYWtlZFwiIFJUTCB0aHJvdWdoIFtbTWVkaWFXaWtpOlJ0bC5qc11dXG5cdFx0aXNfcnRsID0gaGFzQ2xhc3MoZG9jdW1lbnQucXVlcnlTZWxlY3RvcignYm9keScpLCAncnRsJyk7XG5cdFx0aWYgKCFpc19ydGwpIHtcblx0XHRcdGlmIChkb2N1bWVudC5kZWZhdWx0VmlldyAmJiBkb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKSB7XG5cdFx0XHRcdC8vIEdlY2tvIGV0Yy5cblx0XHRcdFx0aXNfcnRsID0gZG9jdW1lbnQuZGVmYXVsdFZpZXdcblx0XHRcdFx0XHQuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdib2R5JyksIG51bGwpXG5cdFx0XHRcdFx0LmdldFByb3BlcnR5VmFsdWUoJ2RpcmVjdGlvbicpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Ly8gTm90IGV4YWN0bHkgcmlnaHQsIGJ1dCBiZXN0IGVmZm9ydFxuXHRcdFx0XHRpc19ydGwgPSAkKCdib2R5JylbMF0uc3R5bGUuZGlyZWN0aW9uO1xuXHRcdFx0fVxuXHRcdFx0aXNfcnRsID0gaXNfcnRsID09PSAncnRsJztcblx0XHR9XG5cdH07XG5cdGNvbnN0IGNhbl9lZGl0ID0gKCkgPT4ge1xuXHRcdHJldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjY2EtZWRpdCcpICE9PSBudWxsO1xuXHR9O1xuXHQvLyBMZWdhY3kgc3R1ZmZcblx0Y29uc3QgY2xvc2VGb3JtID0gZnVuY3Rpb24gKCkge1xuXHRcdC8vIENsb3NlIGFsbCBvcGVuIGVkaXRvcnMgd2l0aG91dCByZWRpcmVjdCByZXNvbHV0aW9uIGFuZCBvdGhlciBhc3luY2hyb25vdXMgc3R1ZmYuXG5cdFx0Zm9yIChjb25zdCBlZGl0IG9mIGVkaXRvcnMpIHtcblx0XHRcdGlmIChlZGl0LnN0YXRlID09PSBPUEVOKSB7XG5cdFx0XHRcdGVkaXQuY2FuY2VsKCk7XG5cdFx0XHR9IGVsc2UgaWYgKGVkaXQuc3RhdGUgPT09IENIQU5HRV9QRU5ESU5HKSB7XG5cdFx0XHRcdGVkaXQuc2FuaXRpemVJbnB1dCgpO1xuXHRcdFx0XHRjb25zdCB2YWx1ZSA9IGVkaXQudGV4dC52YWx1ZS5zcGxpdCgnfCcpO1xuXHRcdFx0XHRsZXQga2V5ID0gbnVsbDtcblx0XHRcdFx0aWYgKHZhbHVlLmxlbmd0aCA+IDEpIHtcblx0XHRcdFx0XHRbLCBrZXldID0gdmFsdWU7XG5cdFx0XHRcdH1cblx0XHRcdFx0Y29uc3QgdiA9IHZhbHVlWzBdLnJlcGxhY2UoL18vZywgJyAnKS50cmltKCk7XG5cdFx0XHRcdGlmICh2Lmxlbmd0aCA9PT0gMCkge1xuXHRcdFx0XHRcdGVkaXQuY2FuY2VsKCk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0ZWRpdC5jdXJyZW50Q2F0ZWdvcnkgPSB2O1xuXHRcdFx0XHRcdGVkaXQuY3VycmVudEtleSA9IGtleTtcblx0XHRcdFx0XHRlZGl0LmN1cnJlbnRFeGlzdHMgPSB0aGlzLmlucHV0RXhpc3RzO1xuXHRcdFx0XHRcdGVkaXQuY2xvc2UoKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fTtcblx0Y29uc3Qgc2V0dXBfdXBsb2FkID0gKCkgPT4ge1xuXHRcdG9uVXBsb2FkID0gdHJ1ZTtcblx0XHQvLyBBZGQgYW4gZW1wdHkgY2F0ZWdvcnkgYmFyIGF0IHRoZSBlbmQgb2YgdGhlIHRhYmxlIGNvbnRhaW5pbmcgdGhlIGRlc2NyaXB0aW9uLCBhbmQgY2hhbmdlIHRoZSBvbnN1Ym1pdCBoYW5kbGVyLlxuXHRcdGxldCBpcCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNtdy1odG1sZm9ybS1kZXNjcmlwdGlvbicpIHx8IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W25hbWU9d3BEZXN0RmlsZV0nKTtcblx0XHRpZiAoIWlwKSB7XG5cdFx0XHRpcCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W25hbWU9d3BEZXN0RmlsZV0nKTtcblx0XHRcdHdoaWxlIChpcCAmJiBpcC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpICE9PSAndGFibGUnKSB7XG5cdFx0XHRcdGlwID0gaXAucGFyZW50Tm9kZTtcblx0XHRcdH1cblx0XHR9XG5cdFx0aWYgKCFpcCkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRjb25zdCByZXVwbG9hZCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W25hbWU9d3BGb3JSZVVwbG9hZF0nKTtcblx0XHRjb25zdCBkZXN0RmlsZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W25hbWU9d3BEZXN0RmlsZV0nKTtcblx0XHRpZiAoKHJldXBsb2FkICYmICEhcmV1cGxvYWQudmFsdWUpIHx8IChkZXN0RmlsZSAmJiAoZGVzdEZpbGUuZGlzYWJsZWQgfHwgZGVzdEZpbGUucmVhZE9ubHkpKSkge1xuXHRcdFx0cmV0dXJuOyAvLyByZS11cGxvYWQgZm9ybS4uLlxuXHRcdH1cblx0XHQvLyBJbnNlcnQgYSB0YWJsZSByb3cgd2l0aCB0d28gZmllbGRzIChsYWJlbCBhbmQgZW1wdHkgY2F0ZWdvcnkgYmFyKVxuXHRcdGNvbnN0IGxhYmVsQ2VsbCA9IG1ha2UoJ3RkJyk7XG5cdFx0Y29uc3QgbGluZUNlbGwgPSBtYWtlKCd0ZCcpO1xuXHRcdC8vIENyZWF0ZSB0aGUgY2F0ZWdvcnkgbGluZVxuXHRcdGNhdExpbmUgPSBtYWtlKCdkaXYnKTtcblx0XHRjYXRMaW5lLmNsYXNzTmFtZSA9ICdjYXRsaW5rcyc7XG5cdFx0Y2F0TGluZS5pZCA9ICdjYXRsaW5rcyc7XG5cdFx0Y2F0TGluZS5zdHlsZS50ZXh0QWxpZ24gPSBpc19ydGwgPyAncmlnaHQnIDogJ2xlZnQnO1xuXHRcdC8vIFdlJ2xsIGJlIGluc2lkZSBhIHRhYmxlIHJvdy4gTWFrZSBzdXJlIHRoYXQgd2UgZG9uJ3QgaGF2ZSBtYXJnaW5zIG9yIHN0cmFuZ2UgYm9yZGVycy5cblx0XHRjYXRMaW5lLnN0eWxlLm1hcmdpbiA9ICcwJztcblx0XHRjYXRMaW5lLnN0eWxlLmJvcmRlciA9ICdub25lJztcblx0XHRsaW5lQ2VsbC5hcHBlbmQoY2F0TGluZSk7XG5cdFx0Ly8gQ3JlYXRlIHRoZSBsYWJlbFxuXHRcdGNvbnN0IGxhYmVsID0gbnVsbDtcblx0XHRpZiAobGFiZWwpIHtcblx0XHRcdGxhYmVsQ2VsbC5pZCA9ICdob3RjYXRMYWJlbFRyYW5zbGF0ZWQnO1xuXHRcdFx0bGFiZWxDZWxsLmFwcGVuZChsYWJlbCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGxhYmVsQ2VsbC5pZCA9ICdob3RjYXRMYWJlbCc7XG5cdFx0XHRsYWJlbENlbGwuYXBwZW5kKG1ha2UoZ2V0TWVzc2FnZSgnY2F0ZWdvcmllcycpLCB0cnVlKSk7XG5cdFx0fVxuXHRcdGxhYmVsQ2VsbC5jbGFzc05hbWUgPSAnbXctbGFiZWwnO1xuXHRcdGxhYmVsQ2VsbC5zdHlsZS50ZXh0QWxpZ24gPSAncmlnaHQnO1xuXHRcdGxhYmVsQ2VsbC5zdHlsZS52ZXJ0aWNhbEFsaWduID0gJ21pZGRsZSc7XG5cdFx0Ly8gQ2hhbmdlIHRoZSBvbnN1Ym1pdCBoYW5kbGVyXG5cdFx0Y29uc3QgZm9ybSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyN1cGxvYWQnKSB8fCBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjbXctdXBsb2FkLWZvcm0nKTtcblx0XHRpZiAoZm9ybSkge1xuXHRcdFx0Y29uc3QgbmV3Um93ID0gaXAuaW5zZXJ0Um93KC0xKTtcblx0XHRcdG5ld1Jvdy5hcHBlbmQobGFiZWxDZWxsKTtcblx0XHRcdG5ld1Jvdy5hcHBlbmQobGluZUNlbGwpO1xuXHRcdFx0Zm9ybS5hZGRFdmVudExpc3RlbmVyKCdzdWJtaXQnLCAob2xkU3VibWl0LCAuLi5hcmdzKSA9PiB7XG5cdFx0XHRcdHJldHVybiAoKCkgPT4ge1xuXHRcdFx0XHRcdGxldCBkb19zdWJtaXQgPSB0cnVlO1xuXHRcdFx0XHRcdGlmIChvbGRTdWJtaXQpIHtcblx0XHRcdFx0XHRcdGlmICh0eXBlb2Ygb2xkU3VibWl0ID09PSAnc3RyaW5nJykge1xuXHRcdFx0XHRcdFx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZXZhbFxuXHRcdFx0XHRcdFx0XHRkb19zdWJtaXQgPSB3aW5kb3cuZXZhbChvbGRTdWJtaXQpO1xuXHRcdFx0XHRcdFx0fSBlbHNlIGlmIChvbGRTdWJtaXQgaW5zdGFuY2VvZiBGdW5jdGlvbikge1xuXHRcdFx0XHRcdFx0XHRkb19zdWJtaXQgPSBvbGRTdWJtaXQuYXBwbHkoZm9ybSwgW29sZFN1Ym1pdCwgLi4uYXJnc10pO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRpZiAoIWRvX3N1Ym1pdCkge1xuXHRcdFx0XHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRjbG9zZUZvcm0oKTtcblx0XHRcdFx0XHQvLyBDb3B5IHRoZSBjYXRlZ29yaWVzXG5cdFx0XHRcdFx0Y29uc3QgZWIgPVxuXHRcdFx0XHRcdFx0ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigndGV4dGFyZWFbbmFtZT13cFVwbG9hZERlc2NyaXB0aW9uXScpIHx8XG5cdFx0XHRcdFx0XHRkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjd3BEZXNjJyk7XG5cdFx0XHRcdFx0bGV0IGFkZGVkT25lID0gZmFsc2U7XG5cdFx0XHRcdFx0Zm9yIChjb25zdCBlZGl0b3Igb2YgZWRpdG9ycykge1xuXHRcdFx0XHRcdFx0Y29uc3QgdCA9IGVkaXRvci5jdXJyZW50Q2F0ZWdvcnk7XG5cdFx0XHRcdFx0XHRpZiAoIXQpIHtcblx0XHRcdFx0XHRcdFx0Y29udGludWU7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRjb25zdCBrZXkgPSBlZGl0b3IuY3VycmVudEtleTtcblx0XHRcdFx0XHRcdGNvbnN0IG5ld19jYXQgPSBgW1ske0hDLmNhdGVnb3J5X2Nhbm9uaWNhbH06JHt0fSR7a2V5ID8gYHwke2tleX1gIDogJyd9XV1gO1xuXHRcdFx0XHRcdFx0Ly8gT25seSBhZGQgaWYgbm90IGFscmVhZHkgcHJlc2VudFxuXHRcdFx0XHRcdFx0Y29uc3Qgbm93aWtpUmVnZXggPSBuZXcgUmVnRXhwKFxuXHRcdFx0XHRcdFx0XHQnPG5vJy5jb25jYXQoJ3dpa2k+JywgU3RyaW5nLnJhd2AoXFxzfFxcUykqPzwvbm9gLCAnd2lraScsICc+JyksXG5cdFx0XHRcdFx0XHRcdCdnJ1xuXHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRcdGNvbnN0IF9jbGVhbmVkVGV4dCA9IGViLnZhbHVlLnJlcGxhY2UoLzwhLS0oXFxzfFxcUykqPy0tPi9nLCAnJykucmVwbGFjZShub3dpa2lSZWdleCk7XG5cdFx0XHRcdFx0XHRpZiAoIWZpbmRfY2F0ZWdvcnkoX2NsZWFuZWRUZXh0LCB0LCB0cnVlKSkge1xuXHRcdFx0XHRcdFx0XHRlYi52YWx1ZSArPSBgXFxuJHtuZXdfY2F0fWA7XG5cdFx0XHRcdFx0XHRcdGFkZGVkT25lID0gdHJ1ZTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0aWYgKGFkZGVkT25lKSB7XG5cdFx0XHRcdFx0XHQvLyBSZW1vdmUgXCJzdWJzdDp1bmNcIiBhZGRlZCBieSBGbGluZm8gaWYgaXQgZGlkbid0IGZpbmQgY2F0ZWdvcmllc1xuXHRcdFx0XHRcdFx0Y29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKCd7eyQnLmNvbmNhdCgnc3Vic3Q6JykuY29uY2F0KCd1bmN9fScpLCAnZycpO1xuXHRcdFx0XHRcdFx0ZWIudmFsdWUgPSBlYi52YWx1ZS5yZXBsYWNlKHJlZ2V4LCAnJyk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0XHR9KShmb3JtLm9uc3VibWl0KTtcblx0XHRcdH0pO1xuXHRcdH1cblx0fTtcblx0bGV0IGNsZWFuZWRUZXh0ID0gbnVsbDtcblx0Y29uc3QgaXNPblBhZ2UgPSAoe2ZpcnN0Q2hpbGR9KSA9PiB7XG5cdFx0aWYgKGZpcnN0Q2hpbGQubm9kZVR5cGUgIT09IE5vZGUuRUxFTUVOVF9OT0RFKSB7XG5cdFx0XHRyZXR1cm4gbnVsbDtcblx0XHR9XG5cdFx0bGV0IGNhdFRpdGxlID0gdGl0bGUoZmlyc3RDaGlsZC5nZXRBdHRyaWJ1dGUoJ2hyZWYnKSk7XG5cdFx0aWYgKCFjYXRUaXRsZSkge1xuXHRcdFx0cmV0dXJuIG51bGw7XG5cdFx0fVxuXHRcdGNhdFRpdGxlID0gY2F0VGl0bGUuc2xpY2UoY2F0VGl0bGUuaW5kZXhPZignOicpICsgMSkucmVwbGFjZSgvXy9nLCAnICcpO1xuXHRcdGlmIChIQy5ibGFja2xpc3QgJiYgSEMuYmxhY2tsaXN0LnRlc3QoY2F0VGl0bGUpKSB7XG5cdFx0XHRyZXR1cm4gbnVsbDtcblx0XHR9XG5cdFx0Y29uc3QgcmVzdWx0ID0ge1xuXHRcdFx0dGl0bGU6IGNhdFRpdGxlLFxuXHRcdFx0bWF0Y2g6IFsnJywgJycsICcnXSxcblx0XHR9O1xuXHRcdGlmIChwYWdlVGV4dCA9PT0gbnVsbCkge1xuXHRcdFx0cmV0dXJuIHJlc3VsdDtcblx0XHR9XG5cdFx0aWYgKGNsZWFuZWRUZXh0ID09PSBudWxsKSB7XG5cdFx0XHRjb25zdCBub3dpa2lSZWdleCA9IG5ldyBSZWdFeHAoJzxubycuY29uY2F0KCd3aWtpPicsIFN0cmluZy5yYXdgKFxcc3xcXFMpKj88L25vYCwgJ3dpa2knLCAnPicpLCAnZycpO1xuXHRcdFx0Y2xlYW5lZFRleHQgPSBwYWdlVGV4dC5yZXBsYWNlKC88IS0tKFxcc3xcXFMpKj8tLT4vZywgJycpLnJlcGxhY2Uobm93aWtpUmVnZXgsICcnKTtcblx0XHR9XG5cdFx0cmVzdWx0Lm1hdGNoID0gZmluZF9jYXRlZ29yeShjbGVhbmVkVGV4dCwgY2F0VGl0bGUsIHRydWUpO1xuXHRcdHJldHVybiByZXN1bHQ7XG5cdH07XG5cdGxldCBpbml0aWFsaXplZCA9IGZhbHNlO1xuXHRsZXQgc2V0dXBUaW1lb3V0ID0gbnVsbDtcblx0Y29uc3QgZmluZEJ5Q2xhc3MgPSAoc2NvcGUsIHRhZywgY2xhc3NOYW1lKSA9PiB7XG5cdFx0Y29uc3QgcmVzdWx0ID0gJChzY29wZSkuZmluZChgJHt0YWd9LiR7Y2xhc3NOYW1lfWApO1xuXHRcdHJldHVybiByZXN1bHQgJiYgcmVzdWx0Lmxlbmd0aCA+IDAgPyByZXN1bHRbMF0gOiBudWxsO1xuXHR9O1xuXHRjb25zdCBzZXR1cCA9IChhZGRpdGlvbmFsV29yaykgPT4ge1xuXHRcdGlmIChpbml0aWFsaXplZCkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRpbml0aWFsaXplZCA9IHRydWU7XG5cdFx0aWYgKHNldHVwVGltZW91dCkge1xuXHRcdFx0d2luZG93LmNsZWFyVGltZW91dChzZXR1cFRpbWVvdXQpO1xuXHRcdFx0c2V0dXBUaW1lb3V0ID0gbnVsbDtcblx0XHR9XG5cdFx0Ly8gRmluZCB0aGUgY2F0ZWdvcnkgYmFyLCBvciBjcmVhdGUgYW4gZW1wdHkgb25lIGlmIHRoZXJlIGlzbid0IG9uZS4gVGhlbiBhZGQgLS8rLSBsaW5rcyBhZnRlclxuXHRcdC8vIGVhY2ggY2F0ZWdvcnksIGFuZCBhZGQgdGhlICsgbGluay5cblx0XHRjYXRMaW5lIHx8PSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjbXctbm9ybWFsLWNhdGxpbmtzJyk7IC8vIFNwZWNpYWw6VXBsb2FkXG5cdFx0Y29uc3QgaGlkZGVuQ2F0cyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNtdy1oaWRkZW4tY2F0bGlua3MnKTtcblx0XHRpZiAoIWNhdExpbmUpIHtcblx0XHRcdGxldCBmb290ZXIgPSBudWxsO1xuXHRcdFx0aWYgKCFoaWRkZW5DYXRzKSB7XG5cdFx0XHRcdGZvb3RlciA9IGZpbmRCeUNsYXNzKGRvY3VtZW50LCAnZGl2JywgJ3ByaW50Zm9vdGVyJyk7XG5cdFx0XHRcdGlmICghZm9vdGVyKSB7XG5cdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHR9IC8vIERvbid0IGtub3cgd2hlcmUgdG8gaW5zZXJ0IHRoZSBjYXRlZ29yeSBsaW5lXG5cdFx0XHR9XG5cdFx0XHRjYXRMaW5lID0gbWFrZSgnZGl2Jyk7XG5cdFx0XHRjYXRMaW5lLmlkID0gJ213LW5vcm1hbC1jYXRsaW5rcyc7XG5cdFx0XHRjYXRMaW5lLnN0eWxlLnRleHRBbGlnbiA9IGlzX3J0bCA/ICdyaWdodCcgOiAnbGVmdCc7XG5cdFx0XHQvLyBBZGQgYSBsYWJlbFxuXHRcdFx0Y29uc3QgbGFiZWwgPSBtYWtlKCdhJyk7XG5cdFx0XHRsYWJlbC5ocmVmID0gY29uZi53Z0FydGljbGVQYXRoLnJlcGxhY2UoJyQxJywgJ1NwZWNpYWw6Q2F0ZWdvcmllcycpO1xuXHRcdFx0bGFiZWwudGl0bGUgPSBnZXRNZXNzYWdlKCdjYXRlZ29yaWVzJyk7XG5cdFx0XHRsYWJlbC5hcHBlbmQobWFrZShnZXRNZXNzYWdlKCdjYXRlZ29yaWVzJyksIHRydWUpKTtcblx0XHRcdGNhdExpbmUuYXBwZW5kKGxhYmVsKTtcblx0XHRcdGNhdExpbmUuYXBwZW5kKG1ha2UoJzonLCB0cnVlKSk7XG5cdFx0XHQvLyBJbnNlcnQgdGhlIG5ldyBjYXRlZ29yeSBsaW5lXG5cdFx0XHRsZXQgY29udGFpbmVyID0gaGlkZGVuQ2F0cyA/IGhpZGRlbkNhdHMucGFyZW50Tm9kZSA6IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNjYXRsaW5rcycpO1xuXHRcdFx0aWYgKCFjb250YWluZXIpIHtcblx0XHRcdFx0Y29udGFpbmVyID0gbWFrZSgnZGl2Jyk7XG5cdFx0XHRcdGNvbnRhaW5lci5pZCA9ICdjYXRsaW5rcyc7XG5cdFx0XHRcdGZvb3Rlci5wYXJlbnROb2RlLmluc2VydEJlZm9yZShjb250YWluZXIsIGZvb3Rlci5uZXh0U2libGluZyk7XG5cdFx0XHR9XG5cdFx0XHRjb250YWluZXIuY2xhc3NOYW1lID0gJ2NhdGxpbmtzIG5vcHJpbnQnO1xuXHRcdFx0Y29udGFpbmVyLnN0eWxlLmRpc3BsYXkgPSAnJztcblx0XHRcdGlmIChoaWRkZW5DYXRzKSB7XG5cdFx0XHRcdGhpZGRlbkNhdHMuYmVmb3JlKGNhdExpbmUpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Y29udGFpbmVyLmFwcGVuZChjYXRMaW5lKTtcblx0XHRcdH1cblx0XHR9IC8vIGVuZCBpZiBjYXRMaW5lIGV4aXN0c1xuXHRcdGlmIChpc19ydGwpIHtcblx0XHRcdGNhdExpbmUuZGlyID0gJ3J0bCc7XG5cdFx0fVxuXHRcdC8vIENyZWF0ZSBlZGl0b3JzIGZvciBhbGwgZXhpc3RpbmcgY2F0ZWdvcmllc1xuXHRcdGNvbnN0IGNyZWF0ZUVkaXRvcnMgPSAobGluZSwgaXNfaGlkZGVuKSA9PiB7XG5cdFx0XHRsZXQgaTtcblx0XHRcdGxldCBjYXRzID0gbGluZS5xdWVyeVNlbGVjdG9yQWxsKCdsaScpO1xuXHRcdFx0aWYgKGNhdHMubGVuZ3RoID4gMCkge1xuXHRcdFx0XHRuZXdET00gPSB0cnVlO1xuXHRcdFx0XHRsaW5lID0gY2F0c1swXS5wYXJlbnROb2RlO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Y2F0cyA9IGxpbmUucXVlcnlTZWxlY3RvckFsbCgnc3BhbicpO1xuXHRcdFx0fVxuXHRcdFx0Ly8gQ29weSBjYXRzLCBvdGhlcndpc2UgaXQnbGwgYWxzbyBtYWdpY2FsbHkgY29udGFpbiBvdXIgYWRkZWQgc3BhbnMgYXMgaXQgaXMgYSBsaXZlIGNvbGxlY3Rpb24hXG5cdFx0XHRjb25zdCBjb3B5Q2F0cyA9IEFycmF5LmZyb20oe1xuXHRcdFx0XHRsZW5ndGg6IGNhdHMubGVuZ3RoLFxuXHRcdFx0fSk7XG5cdFx0XHRmb3IgKGkgPSAwOyBpIDwgY2F0cy5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRjb3B5Q2F0c1tpXSA9IGNhdHNbaV07XG5cdFx0XHR9XG5cdFx0XHRmb3IgKGkgPSAwOyBpIDwgY29weUNhdHMubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0Y29uc3QgdGVzdCA9IGlzT25QYWdlKGNvcHlDYXRzW2ldKTtcblx0XHRcdFx0aWYgKHRlc3QgIT09IG51bGwgJiYgdGVzdC5tYXRjaCAhPT0gbnVsbCAmJiBsaW5lKSB7XG5cdFx0XHRcdFx0bmV3IENhdGVnb3J5RWRpdG9yKGxpbmUsIGNvcHlDYXRzW2ldLCB0ZXN0LnRpdGxlLCB0ZXN0Lm1hdGNoWzJdLCBpc19oaWRkZW4pO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gY29weUNhdHMubGVuZ3RoID4gMCA/IGNvcHlDYXRzLmF0KC0xKSA6IG51bGw7XG5cdFx0fTtcblx0XHRjb25zdCBsYXN0U3BhbiA9IGNyZWF0ZUVkaXRvcnMoY2F0TGluZSwgZmFsc2UpO1xuXHRcdC8vIENyZWF0ZSBvbmUgdG8gYWRkIGEgbmV3IGNhdGVnb3J5XG5cdFx0bmV3IENhdGVnb3J5RWRpdG9yKG5ld0RPTSA/IGNhdExpbmUucXVlcnlTZWxlY3RvckFsbCgndWwnKVswXSA6IGNhdExpbmUsIG51bGwsIG51bGwsIGxhc3RTcGFuICE9PSBudWxsLCBmYWxzZSk7XG5cdFx0aWYgKCFvblVwbG9hZCkge1xuXHRcdFx0aWYgKHBhZ2VUZXh0ICE9PSBudWxsICYmIGhpZGRlbkNhdHMpIHtcblx0XHRcdFx0aWYgKGlzX3J0bCkge1xuXHRcdFx0XHRcdGhpZGRlbkNhdHMuZGlyID0gJ3J0bCc7XG5cdFx0XHRcdH1cblx0XHRcdFx0Y3JlYXRlRWRpdG9ycyhoaWRkZW5DYXRzLCB0cnVlKTtcblx0XHRcdH1cblx0XHRcdC8vIEFuZCBmaW5hbGx5IGFkZCB0aGUgXCJtdWx0aS1tb2RlXCIgc3Bhbi4gKERvIHRoaXMgYXQgdGhlIGVuZCwgb3RoZXJ3aXNlIGl0IGVuZHMgdXAgaW4gdGhlIGxpc3QgYWJvdmUuKVxuXHRcdFx0Y29uc3QgZW5hYmxlTXVsdGkgPSBtYWtlKCdzcGFuJyk7XG5cdFx0XHRlbmFibGVNdWx0aS5jbGFzc05hbWUgPSAnbm9wcmludCc7XG5cdFx0XHRpZiAoaXNfcnRsKSB7XG5cdFx0XHRcdGVuYWJsZU11bHRpLmRpciA9ICdydGwnO1xuXHRcdFx0fVxuXHRcdFx0Y2F0TGluZS5pbnNlcnRCZWZvcmUoZW5hYmxlTXVsdGksIGNhdExpbmUuZmlyc3RDaGlsZC5uZXh0U2libGluZyk7XG5cdFx0XHRlbmFibGVNdWx0aS5hcHBlbmQobWFrZSgnXFx1MDBBMCcsIHRydWUpKTsgLy8gbmJzcFxuXHRcdFx0bXVsdGlTcGFuID0gbWFrZSgnc3BhbicpO1xuXHRcdFx0ZW5hYmxlTXVsdGkuYXBwZW5kKG11bHRpU3Bhbik7XG5cdFx0XHRtdWx0aVNwYW4uaW5uZXJIVE1MID0gYCg8YT4ke0hDLmFkZG11bHRpfTwvYT4pYDtcblx0XHRcdGNvbnN0IFtsaW5rXSA9IG11bHRpU3Bhbi5xdWVyeVNlbGVjdG9yQWxsKCdhJyk7XG5cdFx0XHRsaW5rLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKGV2ZW50KSA9PiB7XG5cdFx0XHRcdHNldE11bHRpSW5wdXQoKTtcblx0XHRcdFx0Y2hlY2tNdWx0aUlucHV0KCk7XG5cdFx0XHRcdHJldHVybiBldnRLaWxsKGV2ZW50KTtcblx0XHRcdH0pO1xuXHRcdFx0bGluay50aXRsZSA9IGdldE1lc3NhZ2UoJ211bHRpX3Rvb2x0aXAnKTtcblx0XHRcdGxpbmsuc3R5bGUuY3Vyc29yID0gJ3BvaW50ZXInO1xuXHRcdH1cblx0XHRjbGVhbmVkVGV4dCA9IG51bGw7XG5cdFx0aWYgKGFkZGl0aW9uYWxXb3JrIGluc3RhbmNlb2YgRnVuY3Rpb24pIHtcblx0XHRcdGFkZGl0aW9uYWxXb3JrKCk7XG5cdFx0fVxuXHRcdG13Lmhvb2soJ2hvdGNhdC5yZWFkeScpLmZpcmUoKTsgLy8gRXhlY3V0ZSByZWdpc3RlcmVkIGNhbGxiYWNrIGZ1bmN0aW9uc1xuXHRcdCQoJ2JvZHknKS50cmlnZ2VyKCdob3RjYXRTZXR1cENvbXBsZXRlZCcpO1xuXHR9O1xuXHRjb25zdCBjcmVhdGVDb21taXRGb3JtID0gKCkgPT4ge1xuXHRcdGlmIChjb21taXRGb3JtKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdGNvbnN0IGZvcm1Db250YWluZXIgPSBtYWtlKCdkaXYnKTtcblx0XHRmb3JtQ29udGFpbmVyLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG5cdFx0ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignYm9keScpLmFwcGVuZChmb3JtQ29udGFpbmVyKTtcblx0XHRmb3JtQ29udGFpbmVyLmlubmVySFRNTCA9IGA8Zm9ybSBpZD1cImhvdGNhdENvbW1pdEZvcm1cIiBtZXRob2Q9XCJwb3N0XCIgZW5jdHlwZT1cIm11bHRpcGFydC9mb3JtLWRhdGFcIiBhY3Rpb249XCIke1xuXHRcdFx0Y29uZi53Z1NjcmlwdFxuXHRcdH0/dGl0bGU9JHtlbmNvZGVVUklDb21wb25lbnQoY29uZi53Z1BhZ2VOYW1lKX0mYWN0aW9uPXN1Ym1pdFwiPlxuXHRcdDxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cIndwVGV4dGJveDFcIj5cblx0XHQ8aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJtb2RlbFwiIHZhbHVlPVwiJHtjb25mLndnUGFnZUNvbnRlbnRNb2RlbH1cIj5cblx0XHQ8aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJmb3JtYXRcIiB2YWx1ZT1cInRleHQveC13aWtpXCI+XG5cdFx0PGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwid3BTdW1tYXJ5XCIgdmFsdWU9XCJcIj5cblx0XHQ8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgbmFtZT1cIndwTWlub3JlZGl0XCIgdGl0bGU9XCJ3cE1pbm9yZWRpdFwiIHZhbHVlPVwiMVwiPlxuXHRcdDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBuYW1lPVwid3BXYXRjaHRoaXNcIiB0aXRsZT1cIndwV2F0Y2h0aGlzXCIgdmFsdWU9XCIxXCI+XG5cdFx0PGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwid3BBdXRvU3VtbWFyeVwiIHZhbHVlPVwiZDQxZDhjZDk4ZjAwYjIwNGU5ODAwOTk4ZWNmODQyN2VcIj5cblx0XHQ8aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJ3cEVkaXR0aW1lXCI+XG5cdFx0PGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwid3BTdGFydHRpbWVcIj5cblx0XHQ8aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJ3cERpZmZcIiB2YWx1ZT1cIndwRGlmZlwiPlxuXHRcdDxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cIm9sZGlkXCIgdmFsdWU9XCIwXCI+XG5cdFx0PGlucHV0IHR5cGU9XCJzdWJtaXRcIiBuYW1lPVwiaGNDb21taXRcIiB2YWx1ZT1cImhjQ29tbWl0XCI+XG5cdFx0PGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwid3BFZGl0VG9rZW5cIj5cblx0XHQ8aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJ3cFVsdGltYXRlUGFyYW1cIiB2YWx1ZT1cIjFcIj5cblx0XHQ8aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJ3cENoYW5nZVRhZ3NcIj5cblx0XHQ8aW5wdXQgdHlwZT1cImhpZGRlblwiIHZhbHVlPVwi4oSz8J2SsuKZpfCdk4rwnZOD8J2SvvCdkrjihLTwnZK54oSvXCIgbmFtZT1cIndwVW5pY29kZUNoZWNrXCI+XG5cdFx0PC9mb3JtPmA7XG5cdFx0Y29tbWl0Rm9ybSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNob3RjYXRDb21taXRGb3JtJyk7XG5cdH07XG5cdGNvbnN0IGdldFBhZ2UgPSAoKSA9PiB7XG5cdFx0Ly8gV2Uga25vdyB3ZSBoYXZlIGFuIGFydGljbGUgaGVyZS5cblx0XHRpZiAoY29uZi53Z0FydGljbGVJZCkge1xuXHRcdFx0Y29uc3QgcGFyYW1zID0ge1xuXHRcdFx0XHRhY3Rpb246ICdxdWVyeScsXG5cdFx0XHRcdGZvcm1hdDogJ2pzb24nLFxuXHRcdFx0XHRmb3JtYXR2ZXJzaW9uOiAnMicsXG5cdFx0XHRcdHJhd2NvbnRpbnVlOiAnJyxcblx0XHRcdFx0dGl0bGVzOiBjb25mLndnUGFnZU5hbWUsXG5cdFx0XHRcdHByb3A6IFsnaW5mbycsICdyZXZpc2lvbnMnXSxcblx0XHRcdFx0cnZwcm9wOiBbJ2NvbnRlbnQnLCAndGltZXN0YW1wJywgJ2lkcyddLFxuXHRcdFx0XHRydmxpbWl0OiAnMScsXG5cdFx0XHRcdHJ2c3RhcnRpZDogY29uZi53Z0N1clJldmlzaW9uSWQsXG5cdFx0XHRcdHJ2c2xvdHM6ICdtYWluJyxcblx0XHRcdFx0bWV0YTogWydzaXRlaW5mbyddLFxuXHRcdFx0fTtcblx0XHRcdEhDLnN0YXJ0ID0gKGRhdGEpID0+IHtcblx0XHRcdFx0c2V0UGFnZShkYXRhKTtcblx0XHRcdFx0c2V0dXAoY3JlYXRlQ29tbWl0Rm9ybSk7XG5cdFx0XHR9O1xuXHRcdFx0YXBpLmdldChwYXJhbXMpLnRoZW4oKGRhdGEpID0+IHtcblx0XHRcdFx0SEMuc3RhcnQoZGF0YSk7XG5cdFx0XHR9KTtcblx0XHRcdHNldHVwVGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0XHRzZXR1cChjcmVhdGVDb21taXRGb3JtKTtcblx0XHRcdH0sIDQwMDApOyAvLyA0IHNlYywganVzdCBpbiBjYXNlIGdldHRpbmcgdGhlIHdpa2l0ZXh0IHRha2VzIGxvbmdlci5cblx0XHR9IGVsc2Uge1xuXHRcdFx0Ly8gRG9lc24ndCBleGlzdCB5ZXQuIERpc2FibGUgb24gbm9uLWV4aXN0aW5nIFVzZXIgcGFnZXMuXG5cdFx0XHRpZiAoY29uZi53Z05hbWVzcGFjZU51bWJlciA9PT0gMikge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cdFx0XHRwYWdlVGV4dCA9ICcnO1xuXHRcdFx0cGFnZVRpbWUgPSBudWxsO1xuXHRcdFx0c2V0dXAoY3JlYXRlQ29tbWl0Rm9ybSk7XG5cdFx0fVxuXHR9O1xuXHRjb25zdCBzZXRTdGF0ZSA9IChzdGF0ZSkgPT4ge1xuXHRcdGNvbnN0IGNhdHMgPSBzdGF0ZS5zcGxpdCgnXFxuJyk7XG5cdFx0aWYgKGNhdHMubGVuZ3RoID09PSAwKSB7XG5cdFx0XHRyZXR1cm4gbnVsbDtcblx0XHR9XG5cdFx0aWYgKGluaXRpYWxpemVkICYmIGVkaXRvcnMubGVuZ3RoID09PSAxICYmIGVkaXRvcnNbMF0uaXNBZGRDYXRlZ29yeSkge1xuXHRcdFx0Ly8gSW5zZXJ0IG5ldyBzcGFucyBhbmQgY3JlYXRlIG5ldyBlZGl0b3JzIGZvciB0aGVtLlxuXHRcdFx0Y29uc3QgbmV3U3BhbnMgPSBbXTtcblx0XHRcdGNvbnN0IGJlZm9yZSA9IGVkaXRvcnMubGVuZ3RoID09PSAxID8gZWRpdG9yc1swXS5zcGFuIDogbnVsbDtcblx0XHRcdGxldCBpO1xuXHRcdFx0Zm9yIChpID0gMDsgaSA8IGNhdHMubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0aWYgKGNhdHNbaV0ubGVuZ3RoID09PSAwKSB7XG5cdFx0XHRcdFx0Y29udGludWU7XG5cdFx0XHRcdH1cblx0XHRcdFx0bGV0IGNhdCA9IGNhdHNbaV0uc3BsaXQoJ3wnKTtcblx0XHRcdFx0Y29uc3Qga2V5ID0gY2F0Lmxlbmd0aCA+IDEgPyBjYXRbMV0gOiBudWxsO1xuXHRcdFx0XHRbY2F0XSA9IGNhdDtcblx0XHRcdFx0Y29uc3QgbGluayA9IG1ha2UoJ2EnKTtcblx0XHRcdFx0bGluay5ocmVmID0gd2lraVBhZ2VQYXRoKGAke0hDLmNhdGVnb3J5X2Nhbm9uaWNhbH06JHtjYXR9YCk7XG5cdFx0XHRcdGxpbmsuYXBwZW5kKG1ha2UoY2F0LCB0cnVlKSk7XG5cdFx0XHRcdGxpbmsudGl0bGUgPSBjYXQ7XG5cdFx0XHRcdGNvbnN0IHNwYW4gPSBtYWtlKCdzcGFuJyk7XG5cdFx0XHRcdHNwYW4uYXBwZW5kKGxpbmspO1xuXHRcdFx0XHRpZiAoIWkpIHtcblx0XHRcdFx0XHRjYXRMaW5lLmluc2VydEJlZm9yZShtYWtlKCcgJywgdHJ1ZSksIGJlZm9yZSk7XG5cdFx0XHRcdH1cblx0XHRcdFx0YmVmb3JlLmJlZm9yZShzcGFuKTtcblx0XHRcdFx0aWYgKGJlZm9yZSAmJiBpICsgMSA8IGNhdHMubGVuZ3RoKSB7XG5cdFx0XHRcdFx0cGFyZW50Lmluc2VydEJlZm9yZShtYWtlKCcgfCAnLCB0cnVlKSwgYmVmb3JlKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRuZXdTcGFuc1tuZXdTcGFucy5sZW5ndGhdID0ge1xuXHRcdFx0XHRcdGVsZW1lbnQ6IHNwYW4sXG5cdFx0XHRcdFx0dGl0bGU6IGNhdCxcblx0XHRcdFx0XHRrZXksXG5cdFx0XHRcdH07XG5cdFx0XHR9XG5cdFx0XHQvLyBBbmQgY2hhbmdlIHRoZSBsYXN0IG9uZS4uLlxuXHRcdFx0aWYgKGJlZm9yZSkge1xuXHRcdFx0XHRiZWZvcmUucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUobWFrZSgnIHwgJywgdHJ1ZSksIGJlZm9yZSk7XG5cdFx0XHR9XG5cdFx0XHRmb3IgKGkgPSAwOyBpIDwgbmV3U3BhbnMubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0bmV3IENhdGVnb3J5RWRpdG9yKGNhdExpbmUsIG5ld1NwYW5zW2ldLmVsZW1lbnQsIG5ld1NwYW5zW2ldLnRpdGxlLCBuZXdTcGFuc1tpXS5rZXkpO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRyZXR1cm4gbnVsbDtcblx0fTtcblx0Y29uc3QgZ2V0U3RhdGUgPSAoKSA9PiB7XG5cdFx0bGV0IHJlc3VsdCA9IG51bGw7XG5cdFx0Zm9yIChjb25zdCBlZGl0b3Igb2YgZWRpdG9ycykge1xuXHRcdFx0bGV0IHRleHQgPSBlZGl0b3IuY3VycmVudENhdGVnb3J5O1xuXHRcdFx0Y29uc3Qga2V5ID0gZWRpdG9yLmN1cnJlbnRLZXk7XG5cdFx0XHRpZiAodGV4dCAmJiB0ZXh0Lmxlbmd0aCA+IDApIHtcblx0XHRcdFx0aWYgKGtleSAhPT0gbnVsbCkge1xuXHRcdFx0XHRcdHRleHQgKz0gYHwke2tleX1gO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmIChyZXN1bHQgPT09IG51bGwpIHtcblx0XHRcdFx0XHRyZXN1bHQgPSB0ZXh0O1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHJlc3VsdCArPSBgXFxuJHt0ZXh0fWA7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0cmV0dXJuIHJlc3VsdDtcblx0fTtcblx0Y29uc3QgcmVhbGx5X3J1biA9ICgpID0+IHtcblx0XHRpbml0aWFsaXplKCk7XG5cdFx0aWYgKFxuXHRcdFx0IUhDLnVwbG9hZF9kaXNhYmxlZCAmJlxuXHRcdFx0Y29uZi53Z05hbWVzcGFjZU51bWJlciA9PT0gLTEgJiZcblx0XHRcdGNvbmYud2dDYW5vbmljYWxTcGVjaWFsUGFnZU5hbWUgPT09ICdVcGxvYWQnICYmXG5cdFx0XHRjb25mLndnVXNlck5hbWVcblx0XHQpIHtcblx0XHRcdHNldHVwX3VwbG9hZCgpO1xuXHRcdFx0c2V0dXAoKCkgPT4ge1xuXHRcdFx0XHQvLyBDaGVjayBmb3Igc3RhdGUgcmVzdG9yYXRpb24gb25jZSB0aGUgc2V0dXAgaXMgZG9uZSBvdGhlcndpc2UsIGJ1dCBiZWZvcmUgc2lnbmFsbGluZyBzZXR1cCBjb21wbGV0aW9uXG5cdFx0XHRcdGlmICh3aW5kb3cuVXBsb2FkRm9ybSAmJiBVcGxvYWRGb3JtLnByZXZpb3VzX2hvdGNhdF9zdGF0ZSkge1xuXHRcdFx0XHRcdFVwbG9hZEZvcm0ucHJldmlvdXNfaG90Y2F0X3N0YXRlID0gc2V0U3RhdGUoVXBsb2FkRm9ybS5wcmV2aW91c19ob3RjYXRfc3RhdGUpO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0aWYgKFxuXHRcdFx0XHQhY29uZi53Z0lzQXJ0aWNsZSB8fFxuXHRcdFx0XHRjb25mLndnQWN0aW9uICE9PSAndmlldycgfHxcblx0XHRcdFx0cGFyYW0oJ2RpZmYnKSAhPT0gbnVsbCB8fFxuXHRcdFx0XHRwYXJhbSgnb2xkaWQnKSAhPT0gbnVsbCB8fFxuXHRcdFx0XHQhY2FuX2VkaXQoKSB8fFxuXHRcdFx0XHRIQy5kaXNhYmxlKClcblx0XHRcdCkge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cdFx0XHRnZXRQYWdlKCk7XG5cdFx0fVxuXHR9O1xuXHRjb25zdCBydW4gPSAoKSA9PiB7XG5cdFx0aWYgKEhDLnN0YXJ0ZWQpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0SEMuc3RhcnRlZCA9IHRydWU7XG5cdFx0cmVhbGx5X3J1bigpO1xuXHR9O1xuXHQvLyBFeHBvcnQgbGVnYWN5IGZ1bmN0aW9uc1xuXHR3aW5kb3cuaG90Y2F0X2dldF9zdGF0ZSA9ICgpID0+IHtcblx0XHRyZXR1cm4gZ2V0U3RhdGUoKTtcblx0fTtcblx0d2luZG93LmhvdGNhdF9zZXRfc3RhdGUgPSAoc3RhdGUpID0+IHtcblx0XHRyZXR1cm4gc2V0U3RhdGUoc3RhdGUpO1xuXHR9O1xuXHR3aW5kb3cuaG90Y2F0X2Nsb3NlX2Zvcm0gPSAoKSA9PiB7XG5cdFx0Y2xvc2VGb3JtKCk7XG5cdH07XG5cdEhDLnJ1bldoZW5SZWFkeSA9IChjYWxsYmFjaykgPT4ge1xuXHRcdC8vIHJ1biB1c2VyLXJlZ2lzdGVyZWQgY29kZSBvbmNlIEhvdENhdCBpcyBmdWxseSBzZXQgdXAgYW5kIHJlYWR5LlxuXHRcdG13Lmhvb2soJ2hvdGNhdC5yZWFkeScpLmFkZChjYWxsYmFjayk7XG5cdH07XG5cdC8vIFJ1biBhcyBzb29uIGFzIHBvc3NpYmxlLiBUaGlzIHZhcmllcyBkZXBlbmRpbmcgb24gTWVkaWFXaWtpIHZlcnNpb247XG5cdC8vIHdpbmRvdydzICdsb2FkJyBldmVudCBpcyBhbHdheXMgc2FmZSwgYnV0IHVzdWFsbHkgd2UgY2FuIGRvIGJldHRlciB0aGFuIHRoYXQuXG5cdGlmIChjb25mLndnQ2Fub25pY2FsU3BlY2lhbFBhZ2VOYW1lICE9PSAnVXBsb2FkJykge1xuXHRcdC8vIFJlbG9hZCBIb3RDYXQgYWZ0ZXIgKFZFKSBlZGl0cyAoYnVnIFQxMDMyODUpXG5cdFx0bXcuaG9vaygncG9zdEVkaXQnKS5hZGQoKCkgPT4ge1xuXHRcdFx0Ly8gUmVzZXQgSG90Q2F0IGluIGNhc2UgdGhpcyBpcyBhIHNvZnQgcmVsb2FkIChlLmcuIFZpc3VhbEVkaXRvciBlZGl0KSwgdW5sZXNzIHRoZSBjYXRlZ29yaWVzXG5cdFx0XHQvLyB3ZXJlIG5vdCByZS1yZW5kZXJlZCBhbmQgb3VyIGludGVyZmFjZSBpcyBzdGlsbCB0aGVyZSAoZS5nLiBEaXNjdXNzaW9uVG9vbHMgZWRpdClcblx0XHRcdGlmIChkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjY2F0bGlua3MgLmhvdGNhdGxpbmsnKSkge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cdFx0XHRjYXRMaW5lID0gbnVsbDtcblx0XHRcdGVkaXRvcnMgPSBbXTtcblx0XHRcdGluaXRpYWxpemVkID0gZmFsc2U7XG5cdFx0XHRIQy5zdGFydGVkID0gZmFsc2U7XG5cdFx0XHRydW4oKTtcblx0XHR9KTtcblx0fVxuXHQvLyBXZSBjYW4gc2FmZWx5IHRyaWdnZXIganVzdCBhZnRlciB1c2VyIGNvbmZpZ3VyYXRpb24gaXMgbG9hZGVkLlxuXHQvLyBVc2UgYWx3YXlzKCkgaW5zdGVhZCBvZiB0aGVuKCkgdG8gYWxzbyBzdGFydCBIb3RDYXQgaWYgdGhlIHVzZXIgbW9kdWxlIGhhcyBwcm9ibGVtcy5cblx0JChydW4pO1xufSkoKTtcbiIsICJjb25zdCBnZXRNZXNzYWdlID0gKGtleTogc3RyaW5nLCAuLi5hcmdzOiBzdHJpbmdbXSk6IHN0cmluZyA9PiB7XG5cdGtleSA9IGBob3RjYXQtJHtrZXl9YDtcblx0Ly8gTWVzc2FnZXMgdGhhdCBjYW4gYmUgdXNlZCBoZXJlOlxuXHQvLyAqIHNlZSBtZXNzYWdlcy50c1xuXHQvLyAqIGZvciBtb3JlIGluZm9ybWF0aW9uXG5cdHJldHVybiBtdy5tZXNzYWdlKGtleSwgLi4uYXJncykucGxhaW4oKTtcbn07XG5cbmV4cG9ydCB7Z2V0TWVzc2FnZX07XG4iLCAiY29uc3QgaG90Q2F0TWVzc2FnZXMgPSAoKTogdm9pZCA9PiB7XG5cdGNvbnN0IHt3Z1VzZXJMYW5ndWFnZX0gPSBtdy5jb25maWcuZ2V0KCk7XG5cblx0aWYgKFsnemgtaGFudCcsICd6aC1oaycsICd6aC1tbycsICd6aC10dyddLmluY2x1ZGVzKHdnVXNlckxhbmd1YWdlKSkge1xuXHRcdG13Lm1lc3NhZ2VzLnNldCh7XG5cdFx0XHQnaG90Y2F0LW1lc3NhZ2VzLWNhdF9yZW1vdmVkJzogJ+W3suenu+mZpFtbQ2F0ZWdvcnk6JDFdXScsXG5cdFx0XHQnaG90Y2F0LW1lc3NhZ2VzLXRlbXBsYXRlX3JlbW92ZWQnOiAn5bey56e76Zmke3tbW0NhdGVnb3J5OiQxXV19fScsXG5cdFx0XHQnaG90Y2F0LW1lc3NhZ2VzLWNhdF9hZGRlZCc6ICflt7Lmt7vliqBbW0NhdGVnb3J5OiQxXV0nLFxuXHRcdFx0Ly8gJDIgaXMgdGhlIG5ldyBrZXlcblx0XHRcdCdob3RjYXQtbWVzc2FnZXMtY2F0X2tleWNoYW5nZSc6ICflt7LoqK3nva5bW0NhdGVnb3J5OiQxXV3nmoTmlrDmjpLluo/lrZfvvJpcIiQyXCInLFxuXHRcdFx0J2hvdGNhdC1tZXNzYWdlcy1jYXRfbm90Rm91bmQnOiAn5YiG6aGe4oCcJDHigJ3mspLmnInmib7liLAnLFxuXHRcdFx0J2hvdGNhdC1tZXNzYWdlcy1jYXRfZXhpc3RzJzogJ+WIhumhnuKAnCQx4oCd5bey57aT5a2Y5Zyo77yM5rKS5pyJ5re75Yqg44CCJyxcblx0XHRcdCdob3RjYXQtbWVzc2FnZXMtY2F0X3Jlc29sdmVkJzogJ++8iOmHjeWumuWQkVtbQ2F0ZWdvcnk6JDFdXeW3suiZleeQhu+8iScsXG5cdFx0XHQnaG90Y2F0LW1lc3NhZ2VzLXVuY2F0X3JlbW92ZWQnOiAn5bey56e76Zmke3t1bmNhdGVnb3JpemVkfX0nLFxuXHRcdFx0Ly8gU29tZSB0ZXh0IHRvIHByZWZpeCB0byB0aGUgZWRpdCBzdW1tYXJ5LlxuXHRcdFx0J2hvdGNhdC1tZXNzYWdlcy1wcmVmaXgnOiAn5L2/55SoW1tIOkhPVENBVHxIb3RDYXRdXScsXG5cdFx0XHQvLyBTb21lIHRleHQgdG8gYXBwZW5kIHRvIHRoZSBlZGl0IHN1bW1hcnkuIE5hbWVkICd1c2luZycgZm9yIGhpc3RvcmljYWwgcmVhc29ucy4gSWYgeW91IHByZWZlclxuXHRcdFx0Ly8gdG8gaGF2ZSBhIG1hcmtlciBhdCB0aGUgZnJvbnQsIHVzZSBwcmVmaXggYW5kIHNldCB0aGlzIHRvIHRoZSBlbXB0eSBzdHJpbmcuXG5cdFx0XHQnaG90Y2F0LW1lc3NhZ2VzLXVzaW5nJzogJycsXG5cdFx0XHQnaG90Y2F0LW1lc3NhZ2VzLW11bHRpX2NoYW5nZSc6ICckMeWAi+WIhumhnicsXG5cdFx0XHQvLyBBbnkgY2F0ZWdvcnkgaW4gdGhpcyBjYXRlZ29yeSBpcyBkZWVtZWQgYSBkaXNhbWJpZ3VhdGlvbiBjYXRlZ29yeTsgaS5lLiwgYSBjYXRlZ29yeSB0aGF0IHNob3VsZCBub3QgY29udGFpblxuXHRcdFx0Ly8gYW55IGl0ZW1zLCBidXQgdGhhdCBjb250YWlucyBsaW5rcyB0byBvdGhlciBjYXRlZ29yaWVzIHdoZXJlIHN0dWZmIHNob3VsZCBiZSBjYXRlZ29yaXplZC4gSWYgeW91IGRvbid0IGhhdmVcblx0XHRcdC8vIHRoYXQgY29uY2VwdCBvbiB5b3VyIHdpa2ksIHNldCBpdCB0byBibGFuayBzdHJpbmcuIFVzZSBibGFua3MsIG5vdCB1bmRlcnNjb3Jlcy5cblx0XHRcdCdob3RjYXQtZGlzYW1iaWdfY2F0ZWdvcnknOiAnJyxcblx0XHRcdC8vIEFueSBjYXRlZ29yeSBpbiB0aGlzIGNhdGVnb3J5IGlzIGRlZW1lZCBhIChzb2Z0KSByZWRpcmVjdCB0byBzb21lIG90aGVyIGNhdGVnb3J5IGRlZmluZWQgYnkgYSBsaW5rXG5cdFx0XHQvLyB0byBhbm90aGVyIG5vbi1ibGFja2xpc3RlZCBjYXRlZ29yeS4gSWYgeW91ciB3aWtpIGRvZXNuJ3QgaGF2ZSBzb2Z0IGNhdGVnb3J5IHJlZGlyZWN0cywgc2V0IHRoaXMgdG8gbnVsbC5cblx0XHRcdC8vIElmIGEgc29mdC1yZWRpcmVjdGVkIGNhdGVnb3J5IGNvbnRhaW5zIG1vcmUgdGhhbiBvbmUgbGluayB0byBhbm90aGVyIG5vbi1ibGFja2xpc3RlZCBjYXRlZ29yeSwgaXQncyBjb25zaWRlcmVkXG5cdFx0XHQvLyBhIGRpc2FtYmlndWF0aW9uIGNhdGVnb3J5IGluc3RlYWQuXG5cdFx0XHQnaG90Y2F0LXJlZGlyX2NhdGVnb3J5JzogJ+W3sumHjeWumuWQkeeahOWIhuexuycsXG5cdFx0XHQnaG90Y2F0LW1lc3NhZ2VzLXNlcGFyYXRvcic6ICc7ICcsXG5cdFx0XHQvLyAkMSBpcyByZXBsYWNlZCBieSBhIG51bWJlci4gSWYgeW91ciBsYW5ndWFnZSBoYXMgc2V2ZXJhbCBwbHVyYWwgZm9ybXMgKGMuZi4gW1s6ZW53aWtpOkR1YWwgKGdyYW1tYXRpY2FsIGZvcm0pXV0pLFxuXHRcdFx0Ly8geW91IGNhbiBzZXQgdGhpcyB0byBhbiBhcnJheSBvZiBzdHJpbmdzIHN1aXRhYmxlIGZvciBwYXNzaW5nIHRvIG13Lmxhbmd1YWdlLmNvbmZpZ1BsdXJhbCgpLlxuXHRcdFx0Ly8gSWYgdGhhdCBmdW5jdGlvbiBkb2Vzbid0IGV4aXN0LCBIb3RDYXQgd2lsbCBzaW1wbHkgZmFsbCBiYWNrIHRvIHVzaW5nIHRoZSBsYXN0XG5cdFx0XHQvLyBlbnRyeSBpbiB0aGUgYXJyYXkuXG5cdFx0XHQvLyBEZWZhdWx0cyB0byAnW1snICsgY2F0ZWdvcnlfY2Fub25pY2FsICsgJzokMV1dJy4gQ2FuIGJlIG92ZXJyaWRkZW4gaWYgaW4gdGhlIHNob3J0IGVkaXQgc3VtbWFyaWVzXG5cdFx0XHQvLyBub3QgdGhlIHN0YW5kYXJkIGNhdGVnb3J5IG5hbWUgc2hvdWxkIGJlIHVzZWQgYnV0LCBzYXksIGEgc2hvcnRlciBuYW1lc3BhY2UgYWxpYXMuICQxIGlzIHJlcGxhY2VkXG5cdFx0XHQvLyBieSBhIGNhdGVnb3J5IG5hbWUuXG5cdFx0XHQnaG90Y2F0LW1lc3NhZ2VzLXNob3J0X2NhdGNoYW5nZSc6ICckMScsXG5cdFx0XHQvLyBCdXR0b24gdGV4dC4gTG9jYWxpemUgdG8gd2dDb250ZW50TGFuZ3VhZ2UgaGVyZTsgbG9jYWxpemUgdG8gd2dVc2VyTGFuZ3VhZ2UgaW4gYSBzdWJwYWdlLFxuXHRcdFx0Ly8gc2VlIGxvY2FsaXphdGlvbiBob29rIGJlbG93LlxuXHRcdFx0J2hvdGNhdC1tZXNzYWdlcy1jb21taXQnOiAn5YSy5a2YJyxcblx0XHRcdC8vIEJ1dHRvbiB0ZXh0LiBMb2NhbGl6ZSB0byB3Z0NvbnRlbnRMYW5ndWFnZSBoZXJlOyBsb2NhbGl6ZSB0byB3Z1VzZXJMYW5ndWFnZSBpbiBhIHN1YnBhZ2UsXG5cdFx0XHQvLyBzZWUgbG9jYWxpemF0aW9uIGhvb2sgYmVsb3cuXG5cdFx0XHQnaG90Y2F0LW1lc3NhZ2VzLW9rJzogJ+eiuuWumicsXG5cdFx0XHQvLyBCdXR0b24gdGV4dC4gTG9jYWxpemUgdG8gd2dDb250ZW50TGFuZ3VhZ2UgaGVyZTsgbG9jYWxpemUgdG8gd2dVc2VyTGFuZ3VhZ2UgaW4gYSBzdWJwYWdlLFxuXHRcdFx0Ly8gc2VlIGxvY2FsaXphdGlvbiBob29rIGJlbG93LlxuXHRcdFx0J2hvdGNhdC1tZXNzYWdlcy1jYW5jZWwnOiAn5Y+W5raIJyxcblx0XHRcdC8vIExvY2FsaXplIHRvIHdnQ29udGVudExhbmd1YWdlIGhlcmU7IGxvY2FsaXplIHRvIHdnVXNlckxhbmd1YWdlIGluIGEgc3VicGFnZSxcblx0XHRcdC8vIHNlZSBsb2NhbGl6YXRpb24gaG9vayBiZWxvdy5cblx0XHRcdCdob3RjYXQtbWVzc2FnZXMtbXVsdGlfZXJyb3InOlxuXHRcdFx0XHQn54Sh5rOV5b6e5Ly65pyN5Zmo5Y+W5b6X6aCB6Z2i5paH5a2X44CC5Zug5q2k77yM5oKo55qE5YiG6aGe6K6K5pu054Sh5rOV5YSy5a2Y44CC5oiR5YCR54K65q2k5LiN5L6/6KGo56S65oqx5q2J44CCJyxcblx0XHRcdC8vIFBsdXJhbCBvZiBjYXRlZ29yeV9jYW5vbmljYWwuXG5cdFx0XHQnaG90Y2F0LWNhdGVnb3JpZXMnOiAn5YiG6aGeJyxcblx0XHRcdC8vIE5hbWVzIGZvciB0aGUgc2VhcmNoIGVuZ2luZXNcblx0XHRcdCdob3RjYXQtZW5naW5lX25hbWVzLXNlYXJjaGluZGV4JzogJ+aQnOWwi+e0ouW8lScsXG5cdFx0XHQnaG90Y2F0LWVuZ2luZV9uYW1lcy1wYWdlbGlzdCc6ICfpoIHpnaLliJfooagnLFxuXHRcdFx0J2hvdGNhdC1lbmdpbmVfbmFtZXMtY29tYmluZWQnOiAn5ZCI5L215pCc5bCLJyxcblx0XHRcdCdob3RjYXQtZW5naW5lX25hbWVzLXN1YmNhdCc6ICflrZDliIbpoZ4nLFxuXHRcdFx0J2hvdGNhdC1lbmdpbmVfbmFtZXMtcGFyZW50Y2F0JzogJ+S4iuWxpOWIhumhnicsXG5cdFx0XHQvLyBUaGUgdG9vbHRpcHMgZm9yIHRoZSBhYm92ZSBsaW5rc1xuXHRcdFx0J2hvdGNhdC10b29sdGlwcy1jaGFuZ2UnOiAn5L+u5pS5Jyxcblx0XHRcdCdob3RjYXQtdG9vbHRpcHMtcmVtb3ZlJzogJ+enu+mZpCcsXG5cdFx0XHQnaG90Y2F0LXRvb2x0aXBzLWFkZCc6ICflop7liqDkuIDlgIvmlrDliIbpoZ4nLFxuXHRcdFx0J2hvdGNhdC10b29sdGlwcy1yZXN0b3JlJzogJ+W+qeWOn+iuiuabtCcsXG5cdFx0XHQnaG90Y2F0LXRvb2x0aXBzLXVuZG8nOiAn5b6p5Y6f6K6K5pu0Jyxcblx0XHRcdCdob3RjYXQtdG9vbHRpcHMtZG93bic6ICfmiZPplovku6Xkv67mlLnkuKbpoa/npLrlrZDliIbpoZ4nLFxuXHRcdFx0J2hvdGNhdC10b29sdGlwcy11cCc6ICfmiZPplovku6Xkv67mlLnkuKbpoa/npLrkuIrlsaTliIbpoZ4nLFxuXHRcdFx0Ly8gVG9vbHRpcCBmb3IgdGhlIFwiZW50ZXIgbXVsdGktbW9kZVwiIGxpbmtcblx0XHRcdCdob3RjYXQtbXVsdGlfdG9vbHRpcCc6ICfkv67mlLnlpJrlgIvliIbpoZ4nLFxuXHRcdH0pO1xuXHR9IGVsc2Uge1xuXHRcdG13Lm1lc3NhZ2VzLnNldCh7XG5cdFx0XHQnaG90Y2F0LW1lc3NhZ2VzLWNhdF9yZW1vdmVkJzogJ+W3suenu+mZpFtbQ2F0ZWdvcnk6JDFdXScsXG5cdFx0XHQnaG90Y2F0LW1lc3NhZ2VzLXRlbXBsYXRlX3JlbW92ZWQnOiAn5bey56e76Zmke3tbW0NhdGVnb3J5OiQxXV19fScsXG5cdFx0XHQnaG90Y2F0LW1lc3NhZ2VzLWNhdF9hZGRlZCc6ICflt7Lmt7vliqBbW0NhdGVnb3J5OiQxXV0nLFxuXHRcdFx0Ly8gJDIgaXMgdGhlIG5ldyBrZXlcblx0XHRcdCdob3RjYXQtbWVzc2FnZXMtY2F0X2tleWNoYW5nZSc6ICflt7Lorr7nva5bW0NhdGVnb3J5OiQxXV3nmoTmlrDmjpLluo/lrZfvvJpcIiQyXCInLFxuXHRcdFx0J2hvdGNhdC1tZXNzYWdlcy1jYXRfbm90Rm91bmQnOiAn5YiG57G74oCcJDHigJ3msqHmnInmib7liLAnLFxuXHRcdFx0J2hvdGNhdC1tZXNzYWdlcy1jYXRfZXhpc3RzJzogJ+WIhuexu+KAnCQx4oCd5bey57uP5a2Y5Zyo77yM5rKh5pyJ5re75Yqg44CCJyxcblx0XHRcdCdob3RjYXQtbWVzc2FnZXMtY2F0X3Jlc29sdmVkJzogJ++8iOmHjeWumuWQkVtbQ2F0ZWdvcnk6JDFdXeW3suWkhOeQhu+8iScsXG5cdFx0XHQnaG90Y2F0LW1lc3NhZ2VzLXVuY2F0X3JlbW92ZWQnOiAn5bey56e76Zmke3t1bmNhdGVnb3JpemVkfX0nLFxuXHRcdFx0Ly8gU29tZSB0ZXh0IHRvIHByZWZpeCB0byB0aGUgZWRpdCBzdW1tYXJ5LlxuXHRcdFx0J2hvdGNhdC1tZXNzYWdlcy1wcmVmaXgnOiAn5L2/55SoW1tIOkhPVENBVHxIb3RDYXRdXScsXG5cdFx0XHQvLyBTb21lIHRleHQgdG8gYXBwZW5kIHRvIHRoZSBlZGl0IHN1bW1hcnkuIE5hbWVkICd1c2luZycgZm9yIGhpc3RvcmljYWwgcmVhc29ucy4gSWYgeW91IHByZWZlclxuXHRcdFx0Ly8gdG8gaGF2ZSBhIG1hcmtlciBhdCB0aGUgZnJvbnQsIHVzZSBwcmVmaXggYW5kIHNldCB0aGlzIHRvIHRoZSBlbXB0eSBzdHJpbmcuXG5cdFx0XHQnaG90Y2F0LW1lc3NhZ2VzLXVzaW5nJzogJycsXG5cdFx0XHQnaG90Y2F0LW1lc3NhZ2VzLW11bHRpX2NoYW5nZSc6ICckMeS4quWIhuexuycsXG5cdFx0XHQvLyBBbnkgY2F0ZWdvcnkgaW4gdGhpcyBjYXRlZ29yeSBpcyBkZWVtZWQgYSBkaXNhbWJpZ3VhdGlvbiBjYXRlZ29yeTsgaS5lLiwgYSBjYXRlZ29yeSB0aGF0IHNob3VsZCBub3QgY29udGFpblxuXHRcdFx0Ly8gYW55IGl0ZW1zLCBidXQgdGhhdCBjb250YWlucyBsaW5rcyB0byBvdGhlciBjYXRlZ29yaWVzIHdoZXJlIHN0dWZmIHNob3VsZCBiZSBjYXRlZ29yaXplZC4gSWYgeW91IGRvbid0IGhhdmVcblx0XHRcdC8vIHRoYXQgY29uY2VwdCBvbiB5b3VyIHdpa2ksIHNldCBpdCB0byBibGFuayBzdHJpbmcuIFVzZSBibGFua3MsIG5vdCB1bmRlcnNjb3Jlcy5cblx0XHRcdCdob3RjYXQtZGlzYW1iaWdfY2F0ZWdvcnknOiAnJyxcblx0XHRcdC8vIEFueSBjYXRlZ29yeSBpbiB0aGlzIGNhdGVnb3J5IGlzIGRlZW1lZCBhIChzb2Z0KSByZWRpcmVjdCB0byBzb21lIG90aGVyIGNhdGVnb3J5IGRlZmluZWQgYnkgYSBsaW5rXG5cdFx0XHQvLyB0byBhbm90aGVyIG5vbi1ibGFja2xpc3RlZCBjYXRlZ29yeS4gSWYgeW91ciB3aWtpIGRvZXNuJ3QgaGF2ZSBzb2Z0IGNhdGVnb3J5IHJlZGlyZWN0cywgc2V0IHRoaXMgdG8gbnVsbC5cblx0XHRcdC8vIElmIGEgc29mdC1yZWRpcmVjdGVkIGNhdGVnb3J5IGNvbnRhaW5zIG1vcmUgdGhhbiBvbmUgbGluayB0byBhbm90aGVyIG5vbi1ibGFja2xpc3RlZCBjYXRlZ29yeSwgaXQncyBjb25zaWRlcmVkXG5cdFx0XHQvLyBhIGRpc2FtYmlndWF0aW9uIGNhdGVnb3J5IGluc3RlYWQuXHRcdFx0J2hvdGNhdC1yZWRpcl9jYXRlZ29yeSc6ICflt7Lph43lrprlkJHnmoTliIbnsbsnLFxuXHRcdFx0J2hvdGNhdC1tZXNzYWdlcy1zZXBhcmF0b3InOiAnOyAnLFxuXHRcdFx0Ly8gJDEgaXMgcmVwbGFjZWQgYnkgYSBudW1iZXIuIElmIHlvdXIgbGFuZ3VhZ2UgaGFzIHNldmVyYWwgcGx1cmFsIGZvcm1zIChjLmYuIFtbOmVud2lraTpEdWFsIChncmFtbWF0aWNhbCBmb3JtKV1dKSxcblx0XHRcdC8vIHlvdSBjYW4gc2V0IHRoaXMgdG8gYW4gYXJyYXkgb2Ygc3RyaW5ncyBzdWl0YWJsZSBmb3IgcGFzc2luZyB0byBtdy5sYW5ndWFnZS5jb25maWdQbHVyYWwoKS5cblx0XHRcdC8vIElmIHRoYXQgZnVuY3Rpb24gZG9lc24ndCBleGlzdCwgSG90Q2F0IHdpbGwgc2ltcGx5IGZhbGwgYmFjayB0byB1c2luZyB0aGUgbGFzdFxuXHRcdFx0Ly8gZW50cnkgaW4gdGhlIGFycmF5LlxuXHRcdFx0Ly8gRGVmYXVsdHMgdG8gJ1tbJyArIGNhdGVnb3J5X2Nhbm9uaWNhbCArICc6JDFdXScuIENhbiBiZSBvdmVycmlkZGVuIGlmIGluIHRoZSBzaG9ydCBlZGl0IHN1bW1hcmllc1xuXHRcdFx0Ly8gbm90IHRoZSBzdGFuZGFyZCBjYXRlZ29yeSBuYW1lIHNob3VsZCBiZSB1c2VkIGJ1dCwgc2F5LCBhIHNob3J0ZXIgbmFtZXNwYWNlIGFsaWFzLiAkMSBpcyByZXBsYWNlZFxuXHRcdFx0Ly8gYnkgYSBjYXRlZ29yeSBuYW1lLlxuXHRcdFx0J2hvdGNhdC1tZXNzYWdlcy1zaG9ydF9jYXRjaGFuZ2UnOiAnJDEnLFxuXHRcdFx0Ly8gQnV0dG9uIHRleHQuIExvY2FsaXplIHRvIHdnQ29udGVudExhbmd1YWdlIGhlcmU7IGxvY2FsaXplIHRvIHdnVXNlckxhbmd1YWdlIGluIGEgc3VicGFnZSxcblx0XHRcdC8vIHNlZSBsb2NhbGl6YXRpb24gaG9vayBiZWxvdy5cblx0XHRcdCdob3RjYXQtbWVzc2FnZXMtY29tbWl0JzogJ+S/neWtmCcsXG5cdFx0XHQvLyBCdXR0b24gdGV4dC4gTG9jYWxpemUgdG8gd2dDb250ZW50TGFuZ3VhZ2UgaGVyZTsgbG9jYWxpemUgdG8gd2dVc2VyTGFuZ3VhZ2UgaW4gYSBzdWJwYWdlLFxuXHRcdFx0Ly8gc2VlIGxvY2FsaXphdGlvbiBob29rIGJlbG93LlxuXHRcdFx0J2hvdGNhdC1tZXNzYWdlcy1vayc6ICfnoa7lrponLFxuXHRcdFx0Ly8gQnV0dG9uIHRleHQuIExvY2FsaXplIHRvIHdnQ29udGVudExhbmd1YWdlIGhlcmU7IGxvY2FsaXplIHRvIHdnVXNlckxhbmd1YWdlIGluIGEgc3VicGFnZSxcblx0XHRcdC8vIHNlZSBsb2NhbGl6YXRpb24gaG9vayBiZWxvdy5cblx0XHRcdCdob3RjYXQtbWVzc2FnZXMtY2FuY2VsJzogJ+WPlua2iCcsXG5cdFx0XHQvLyBMb2NhbGl6ZSB0byB3Z0NvbnRlbnRMYW5ndWFnZSBoZXJlOyBsb2NhbGl6ZSB0byB3Z1VzZXJMYW5ndWFnZSBpbiBhIHN1YnBhZ2UsXG5cdFx0XHQvLyBzZWUgbG9jYWxpemF0aW9uIGhvb2sgYmVsb3cuXG5cdFx0XHQnaG90Y2F0LW1lc3NhZ2VzLW11bHRpX2Vycm9yJzpcblx0XHRcdFx0J+aXoOazleS7juacjeWKoeWZqOWPluW+l+mhtemdouaWh+Wtl+OAguWboOatpO+8jOaCqOeahOWIhuexu+abtOaUueaXoOazleS/neWtmOOAguaIkeS7rOS4uuatpOS4jeS+v+ihqOekuuaKseatieOAgicsXG5cdFx0XHQvLyBQbHVyYWwgb2YgY2F0ZWdvcnlfY2Fub25pY2FsLlxuXHRcdFx0J2hvdGNhdC1jYXRlZ29yaWVzJzogJ+WIhuexuycsXG5cdFx0XHQvLyBOYW1lcyBmb3IgdGhlIHNlYXJjaCBlbmdpbmVzXG5cdFx0XHQnaG90Y2F0LWVuZ2luZV9uYW1lcy1zZWFyY2hpbmRleCc6ICfmkJzntKLntKLlvJUnLFxuXHRcdFx0J2hvdGNhdC1lbmdpbmVfbmFtZXMtcGFnZWxpc3QnOiAn6aG16Z2i5YiX6KGoJyxcblx0XHRcdCdob3RjYXQtZW5naW5lX25hbWVzLWNvbWJpbmVkJzogJ+WQiOW5tuaQnOe0oicsXG5cdFx0XHQnaG90Y2F0LWVuZ2luZV9uYW1lcy1zdWJjYXQnOiAn5a2Q5YiG57G7Jyxcblx0XHRcdCdob3RjYXQtZW5naW5lX25hbWVzLXBhcmVudGNhdCc6ICfkuIrlsYLliIbnsbsnLFxuXHRcdFx0Ly8gVGhlIHRvb2x0aXBzIGZvciB0aGUgYWJvdmUgbGlua3Ncblx0XHRcdCdob3RjYXQtdG9vbHRpcHMtY2hhbmdlJzogJ+S/ruaUuScsXG5cdFx0XHQnaG90Y2F0LXRvb2x0aXBzLXJlbW92ZSc6ICfnp7vpmaQnLFxuXHRcdFx0J2hvdGNhdC10b29sdGlwcy1hZGQnOiAn5aKe5Yqg5LiA5Liq5paw5YiG57G7Jyxcblx0XHRcdCdob3RjYXQtdG9vbHRpcHMtcmVzdG9yZSc6ICfmkqTplIDmm7TmlLknLFxuXHRcdFx0J2hvdGNhdC10b29sdGlwcy11bmRvJzogJ+aSpOmUgOabtOaUuScsXG5cdFx0XHQnaG90Y2F0LXRvb2x0aXBzLWRvd24nOiAn5omT5byA5Lul5L+u5pS55bm25pi+56S65a2Q5YiG57G7Jyxcblx0XHRcdCdob3RjYXQtdG9vbHRpcHMtdXAnOiAn5omT5byA5Lul5L+u5pS55bm25pi+56S65LiK5bGC5YiG57G7Jyxcblx0XHRcdC8vIFRvb2x0aXAgZm9yIHRoZSBcImVudGVyIG11bHRpLW1vZGVcIiBsaW5rXG5cdFx0XHQnaG90Y2F0LW11bHRpX3Rvb2x0aXAnOiAn5L+u5pS55aSa5Liq5YiG57G7Jyxcblx0XHR9KTtcblx0fVxufTtcblxuZXhwb3J0IHtob3RDYXRNZXNzYWdlc307XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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QUc3QixVQUFJM0gsU0FBU0MsY0FBYyx1QkFBdUIsR0FBRztBQUNwRDtNQUNEO0FBQ0FvUyxnQkFBVTtBQUNWRSxnQkFBVSxDQUFBO0FBQ1ZzZSxvQkFBYztBQUNkbG1CLFNBQUdzb0IsVUFBVTtBQUNiRCxVQUFJO0lBQ0wsQ0FBQztFQUNGO0FBR0F0eUIsSUFBRXN5QixHQUFHO0FBQ04sR0FBRzsiLAogICJuYW1lcyI6IFsiY2F0Y2hlY2tJbmxpbmVJY29uIiwgImltcG9ydF9leHRfZ2FkZ2V0IiwgInJlcXVpcmUiLCAibXdBcGkiLCAidXNlckFnZW50IiwgImluaXRNd0FwaSIsICJob3RDYXRDaGVjayIsICJtdyIsICJjb25maWciLCAiZ2V0IiwgIndpbmRvdyIsICJIb3RDYXRBdXRvUmVtb3ZlQ2hlY2tDYXRPcHRPdXQiLCAiZG9jdW1lbnQiLCAicXVlcnlTZWxlY3RvciIsICJhcGkiLCAiY2hlY2tDYXRlZ29yaWVzUmVnRXhwIiwgInNlbGZOYW1lIiwgInN0b3JhZ2VJdGVtTmFtZSIsICJzdG9yYWdlSXRlbSIsICJzdG9yYWdlIiwgImNyZWF0ZWpJY29uIiwgImljb25DbGFzcyIsICIkIiwgImF0dHIiLCAiY29uY2F0IiwgInRleHQiLCAiY3JlYXRlTm90aWZ5QXJlYSIsICJ0ZXh0Tm9kZSIsICJpY29uIiwgInN0YXRlIiwgImFkZENsYXNzIiwgImFwcGVuZCIsICJjc3MiLCAicGFkZGluZyIsICJvbmUiLCAiZSIsICJfc2VsZiR3cFRleHRib3gxJHZhbHUiLCAic2VsZiIsICJuZXdWYWwiLCAid3BUZXh0Ym94MSIsICJ2YWx1ZSIsICJyZXBsYWNlIiwgImRsZ0J1dHRvbnMiLCAiJGRpYWxvZ0NoZWNrU3RvcmFnZSIsICIkcGVybWFTYXZlSGludCIsICIkdGV4dEhpbnROb2RlIiwgIiRkaWFsb2ciLCAiZG9SZW1vdmUiLCAid3BTdW1tYXJ5IiwgIndyaXRlU3RvcmFnZSIsICJ2YWwiLCAic2V0IiwgIl8kZGlhbG9nQ2hlY2tTdG9yYWdlJCIsICJjaGVja2VkIiwgImRpYWxvZyIsICJfJGRpYWxvZ0NoZWNrU3RvcmFnZSQyIiwgIl9hZGRUb0pTIiwgIl9lIiwgInByZXZlbnREZWZhdWx0IiwgImhhc0NsYXNzIiwgIiRlbCIsICJvZmYiLCAicGFyYW1zIiwgImFjdGlvbiIsICJmb3JtYXQiLCAidGl0bGUiLCAic3VtbWFyeSIsICJhcHBlbmR0ZXh0IiwgImRhdGEiLCAiZWRpdERvbmUiLCAiZWRpdFN0YXQiLCAiZXJyb3IiLCAibm90aWZ5IiwgImNvZGUiLCAiaW5mbyIsICJ0YWciLCAidHlwZSIsICJmYWRlT3V0IiwgInBvc3RXaXRoVG9rZW4iLCAidGhlbiIsICJwcm9tcHQiLCAiaWQiLCAib24iLCAiZmFkZUluIiwgImFwcGVuZFRvIiwgImRpc3BsYXkiLCAidXNlciIsICJpc0Fub24iLCAiaGlkZSIsICJtb2RhbCIsICJjbG9zZU9uRXNjYXBlIiwgIndpZHRoIiwgImJ1dHRvbnMiLCAiY2xvc2UiLCAiJGJvZHkiLCAiZmluZCIsICJ0cmlnZ2VyIiwgIm9wZW4iLCAiJGJ1dHRvbnMiLCAicGFyZW50IiwgImVxIiwgImJ1dHRvbiIsICJpY29ucyIsICJwcmltYXJ5IiwgIkhvdENhdEF1dG9SZW1vdmVDaGVja0NhdCIsICIkb2tMaW5rIiwgImhyZWYiLCAiZG9FZGl0IiwgInJlc3VsdCIsICJub2NyZWF0ZSIsICJhamF4IiwgInVybCIsICJkYXRhVHlwZSIsICJzdWNjZXNzIiwgImNhY2hlIiwgImxvYWRIb3RDYXRDaGVjayIsICJpbXBvcnRfZXh0X2dhZGdldDIiLCAiZ2V0TWVzc2FnZSIsICJrZXkiLCAiYXJncyIsICJtZXNzYWdlIiwgInBsYWluIiwgImhvdENhdE1lc3NhZ2VzIiwgIndnVXNlckxhbmd1YWdlIiwgImluY2x1ZGVzIiwgIm1lc3NhZ2VzIiwgImhvdENhdCIsICJjb25mIiwgInZhbHVlcyIsICJIb3RDYXQiLCAibm9kZU5hbWUiLCAid2dBY3Rpb24iLCAibGlua3MiLCAiY2hhbmdlIiwgInJlbW92ZSIsICJhZGQiLCAicmVzdG9yZSIsICJ1bmRvIiwgImRvd24iLCAidXAiLCAiY2hhbmdlVGFnIiwgImFkZG11bHRpIiwgImRpc2FibGUiLCAibnMiLCAid2dOYW1lc3BhY2VOdW1iZXIiLCAibnNJZHMiLCAid2dOYW1lc3BhY2VJZHMiLCAid2dBcnRpY2xlSWQiLCAidGVzdCIsICJ3Z1RpdGxlIiwgImNyZWF0b3IiLCAidGltZWR0ZXh0IiwgImluc3RpdHV0aW9uIiwgInVuY2F0X3JlZ2V4cCIsICJleGlzdHNZZXMiLCAiUF95ZXNfZGVmYXVsdCIsICJleGlzdHNObyIsICJQX25vX2RlZmF1bHQiLCAidGVtcGxhdGVfY2F0ZWdvcmllcyIsICJjYXBpdGFsaXplUGFnZU5hbWVzIiwgInVwbG9hZF9kaXNhYmxlZCIsICJibGFja2xpc3QiLCAiYmdfY2hhbmdlZCIsICJub19hdXRvY29tbWl0IiwgImRlbF9uZWVkc19kaWZmIiwgInN1Z2dlc3RfZGVsYXkiLCAiZWRpdGJveF93aWR0aCIsICJzdWdnZXN0aW9ucyIsICJmaXhlZF9zZWFyY2giLCAidXNlX3VwX2Rvd24iLCAibGlzdFNpemUiLCAic2luZ2xlX21pbm9yIiwgImRvbnRfYWRkX3RvX3dhdGNobGlzdCIsICJzaG9ydGN1dHMiLCAiYWRkU2hvcnRjdXRzIiwgIm1hcCIsICJfd2luZG93JEhvdENhdCIsICJrIiwgIk9iamVjdCIsICJoYXNPd24iLCAidiIsICJ0cmltIiwgImxlbmd0aCIsICJIQyIsICJ1YSIsICJuYXZpZ2F0b3IiLCAidG9Mb3dlckNhc2UiLCAiaXNfd2Via2l0IiwgImNhdF9wcmVmaXgiLCAibm9TdWdnZXN0aW9ucyIsICJ3aWtpVGV4dEJsYW5rIiwgIlN0cmluZyIsICJyYXciLCAiX3RlbXBsYXRlT2JqZWN0IiwgIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwiLCAid2lraVRleHRCbGFua1JFIiwgIlJlZ0V4cCIsICJ3aWtpVGV4dEJsYW5rT3JCaWRpIiwgIl90ZW1wbGF0ZU9iamVjdDIiLCAiZm9ybWF0dGVkTmFtZXNwYWNlcyIsICJ3Z0Zvcm1hdHRlZE5hbWVzcGFjZXMiLCAibmFtZXNwYWNlSWRzIiwgImF1dG9Mb2NhbGl6ZSIsICJuYW1lc3BhY2VOdW1iZXIiLCAiZmFsbGJhY2siLCAiY3JlYXRlUmVnZXhwU3RyIiwgIm5hbWUiLCAicmVnZXhfbmFtZSIsICJpIiwgImluaXRpYWwiLCAiY2hhckF0IiwgImxsIiwgInVsIiwgInRvVXBwZXJDYXNlIiwgIl90ZW1wbGF0ZU9iamVjdDMiLCAiY2Fub25pY2FsIiwgInJlZ2V4cCIsICJjYXRfbmFtZSIsICJjYXRlZ29yeV9jYW5vbmljYWwiLCAiY2F0ZWdvcnlfcmVnZXhwIiwgInRlbXBsYXRlX3JlZ2V4cCIsICJtYWtlIiwgImFyZyIsICJsaXRlcmFsIiwgImNyZWF0ZVRleHROb2RlIiwgImNyZWF0ZUVsZW1lbnQiLCAicGFyYW0iLCAidXJpIiwgImxvY2F0aW9uIiwgInJlIiwgIm0iLCAiZXhlYyIsICJkZWNvZGVVUklDb21wb25lbnQiLCAic2NyaXB0IiwgIndnU2NyaXB0IiwgImluZGV4T2YiLCAid2dTZXJ2ZXIiLCAic2xpY2UiLCAicHJvdG9jb2wiLCAicHJlZml4IiwgIndnQXJ0aWNsZVBhdGgiLCAiY2xhc3NOYW1lIiwgImNhcGl0YWxpemUiLCAic3RyIiwgIndpa2lQYWdlUGF0aCIsICJwYWdlTmFtZSIsICJlbmNvZGVVUklDb21wb25lbnQiLCAiZXNjYXBlUkUiLCAiX3RlbXBsYXRlT2JqZWN0NCIsICJzdWJzdGl0dXRlRmFjdG9yeSIsICJvcHRpb25zIiwgImxlYWQiLCAiaW5kaWNhdG9yIiwgImxicmFjZSIsICJyYnJhY2UiLCAibWF0Y2giLCAiaWR4IiwgImFscGhhIiwgInJlcGxhY2VtZW50IiwgInJlcGxhY2VTaG9ydGN1dHMiLCAicmVwbGFjZUhhc2giLCAicyIsICJmaW5kQ2F0c1JFIiwgInJlcGxhY2VCeUJsYW5rcyIsICJmaW5kX2NhdGVnb3J5IiwgIndpa2l0ZXh0IiwgImNhdGVnb3J5IiwgIm9uY2UiLCAiY2F0X3JlZ2V4IiwgIm5vd2lraVJlZ2V4IiwgIl90ZW1wbGF0ZU9iamVjdDUiLCAiY29waWVkdGV4dCIsICJjdXJyX21hdGNoIiwgImludGVybGFuZ3VhZ2VSRSIsICJjaGFuZ2VfY2F0ZWdvcnkiLCAidG9SZW1vdmUiLCAidG9BZGQiLCAiaXNfaGlkZGVuIiwgImZpbmRfaW5zZXJ0aW9ucG9pbnQiLCAiX3dpa2l0ZXh0IiwgIl90ZW1wbGF0ZU9iamVjdDYiLCAiaW5kZXgiLCAibGFzdEluZGV4IiwgIm9uQ2F0IiwgIm5hbWVTcGFjZSIsICJrZXlDaGFuZ2UiLCAibWF0Y2hlcyIsICJjYXRfcG9pbnQiLCAiYmVmb3JlIiwgIk1hdGgiLCAibWF4IiwgImFmdGVyIiwgInNlYXJjaCIsICJqIiwgInBvaW50IiwgIm5ld2NhdHN0cmluZyIsICJzdWZmaXgiLCAidHh0IiwgImV2dEtleXMiLCAiY3RybEtleSIsICJtZXRhS2V5IiwgInNoaWZ0S2V5IiwgImV2dEtpbGwiLCAic3RvcFByb3BhZ2F0aW9uIiwgImNhbmNlbEJ1YmJsZSIsICJjYXRMaW5lIiwgIm9uVXBsb2FkIiwgImVkaXRvcnMiLCAiY29tbWl0QnV0dG9uIiwgImNvbW1pdEZvcm0iLCAibXVsdGlTcGFuIiwgInBhZ2VUZXh0IiwgInBhZ2VUaW1lIiwgInBhZ2VXYXRjaGVkIiwgIndhdGNoQ3JlYXRlIiwgIndhdGNoRWRpdCIsICJtaW5vckVkaXRzIiwgImVkaXRUb2tlbiIsICJpc19ydGwiLCAic2VydmVyVGltZSIsICJsYXN0UmV2SWQiLCAicGFnZVRleHRSZXZJZCIsICJjb25mbGljdGluZ1VzZXIiLCAibmV3RE9NIiwgIlVOQ0hBTkdFRCIsICJPUEVOIiwgIkNIQU5HRV9QRU5ESU5HIiwgIkNIQU5HRUQiLCAiREVMRVRFRCIsICJzZXRQYWdlIiwgInN0YXJ0VGltZSIsICJxdWVyeSIsICJwYWdlcyIsICJwYWdlIiwgInJldmlzaW9ucyIsICJzbG90cyIsICJtYWluIiwgImNvbnRlbnQiLCAidGltZXN0YW1wIiwgInJldmlkIiwgImxhc3RyZXZpZCIsICJzdGFydHRpbWVzdGFtcCIsICJ3YXRjaGVkIiwgInRva2VucyIsICJjc3JmdG9rZW4iLCAibGFuZ2xpbmtzIiwgImxhbmciLCAiX3RlbXBsYXRlT2JqZWN0NyIsICJnZW5lcmFsIiwgInRpbWUiLCAiY2FzZSIsICJ1c2VyaW5mbyIsICJ3YXRjaGNyZWF0aW9ucyIsICJ3YXRjaGRlZmF1bHQiLCAibWlub3JkZWZhdWx0IiwgInNhdmVJblByb2dyZXNzIiwgImluaXRpYXRlRWRpdCIsICJmYWlsdXJlIiwgIm9sZEJ1dHRvblN0YXRlIiwgImRpc2FibGVkIiwgImZhaWwiLCAiYXBwbHkiLCAiZm9ybWF0dmVyc2lvbiIsICJyYXdjb250aW51ZSIsICJ0aXRsZXMiLCAid2dQYWdlTmFtZSIsICJwcm9wIiwgImlucHJvcCIsICJydnByb3AiLCAicnZzbG90cyIsICJydmxpbWl0IiwgInJ2ZGlyIiwgInJ2c3RhcnRpZCIsICJ3Z0N1clJldmlzaW9uSWQiLCAibGxsaW1pdCIsICJtZXRhIiwgInVpcHJvcCIsICJkb25lIiwgInN0YXR1cyIsICJzdGF0dXNUZXh0IiwgIm11bHRpQ2hhbmdlTXNnIiwgImNvdW50IiwgImN1cnJlbnRUaW1lc3RhbXAiLCAibm93IiwgIkRhdGUiLCAidHMiLCAiZ2V0VVRDRnVsbFllYXIiLCAidHdvIiwgImdldFVUQ01vbnRoIiwgImdldFVUQ0RhdGUiLCAiZ2V0VVRDSG91cnMiLCAiZ2V0VVRDTWludXRlcyIsICJnZXRVVENTZWNvbmRzIiwgInBlcmZvcm1DaGFuZ2VzIiwgInNpbmdsZUVkaXRvciIsICJzZWxmRWRpdENvbmZsaWN0IiwgIndnVXNlck5hbWUiLCAibm9Db21taXQiLCAid3BFZGl0VG9rZW4iLCAid3BEaWZmIiwgIndwU2F2ZSIsICJjaGFuZ2VkIiwgImFkZGVkIiwgImRlbGV0ZWQiLCAidG9FZGl0IiwgImVkaXQiLCAiY2hhbmdlcyIsICJvcmlnaW5hbENhdGVnb3J5IiwgImN1cnJlbnRDYXRlZ29yeSIsICJjdXJyZW50S2V5IiwgImN1cnJlbnRIaWRkZW4iLCAiZnJvbSIsICJ0byIsICJ3cE1pbm9yZWRpdCIsICJ3cFdhdGNodGhpcyIsICJ3cENoYW5nZVRhZ3MiLCAid3BBdXRvU3VtbWFyeSIsICJqb2luIiwgInNob3J0U3VtbWFyeSIsICJhcnJvdyIsICJ3cFN0YXJ0dGltZSIsICJ3cEVkaXR0aW1lIiwgIm9sZGlkIiwgImhjQ29tbWl0IiwgImNsaWNrIiwgInJlc29sdmVPbmUiLCAidG9SZXNvbHZlIiwgImNhdHMiLCAiY2F0ZWdvcmllcyIsICJpc19kYWIiLCAiaXNfcmVkaXIiLCAicmVkaXJlY3QiLCAiY2F0ZWdvcnlpbmZvIiwgImhpZGRlbiIsICJpc19taXNzaW5nIiwgIm1pc3NpbmciLCAiZGFiSW5wdXRDbGVhbmVkIiwgImlucHV0RXhpc3RzIiwgInNyYyIsICJfaXRlcmF0b3IiLCAiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIiLCAiX3N0ZXAiLCAibiIsICJjYXRfIiwgImNhdCIsICJlcnIiLCAiZiIsICJkYWIiLCAicmVzb2x2ZVJlZGlyZWN0cyIsICJwIiwgInJlc29sdmVNdWx0aSIsICJjYWxsYmFjayIsICJkYWJJbnB1dCIsICJsYXN0SW5wdXQiLCAicGxuYW1lc3BhY2UiLCAicGxsaW1pdCIsICJjbGxpbWl0IiwgImpzb24iLCAicmVxIiwgIm1ha2VBY3RpdmUiLCAid2hpY2giLCAiaXNfYWN0aXZlIiwgIl9pIiwgIl9lZGl0b3JzIiwgImVkaXRvciIsICJpbmFjdGl2YXRlIiwgInNob3dEYWIiLCAiZXhwZWN0ZWRJbnB1dCIsICJsYXN0UmVhbElucHV0IiwgImFjdHVhbFZhbHVlIiwgInNob3dzTGlzdCIsICJzcGxpdCIsICJsYXN0U2VsZWN0aW9uIiwgInN0YXJ0IiwgImVuZCIsICJkaXNwbGF5TGlzdCIsICJzZXRUaW1lb3V0IiwgInNldFNlbGVjdGlvbiIsICJzaG93U3VnZ2VzdGlvbnMiLCAibXVsdGlTdWJtaXQiLCAiX2kyIiwgIl9lZGl0b3JzMiIsICJtc2ciLCAicmVzb2x2ZWQiLCAiZmlyc3REYWIiLCAiZG9udENoYW5nZSIsICJfaXRlcmF0b3IyIiwgIl9zdGVwMiIsICJlbGVtZW50IiwgImFjY2VwdENoZWNrIiwgImNvbW1pdCIsICJzZXRNdWx0aUlucHV0IiwgImFkZEV2ZW50TGlzdGVuZXIiLCAicmVwbGFjZVdpdGgiLCAiY2hlY2tNdWx0aUlucHV0IiwgImhhc0NoYW5nZXMiLCAiX2kzIiwgIl9lZGl0b3JzMyIsICJzdWdnZXN0aW9uRW5naW5lcyIsICJvcGVuc2VhcmNoIiwgImhhbmRsZXIiLCAicXVlcnlSZXN1bHQiLCAicXVlcnlLZXkiLCAiZXhpc3RzIiwgInNwbGljZSIsICJub3JtYWxpemVkIiwgImludGVybmFsc2VhcmNoIiwgImFsbHBhZ2VzIiwgIl90aXRsZSIsICJzdWJjYXRlZ29yaWVzIiwgImNhdGVnb3J5bWVtYmVycyIsICJwYXJlbnRjYXRlZ29yaWVzIiwgInN1Z2dlc3Rpb25Db25maWdzIiwgInNlYXJjaGluZGV4IiwgImVuZ2luZXMiLCAic2hvdyIsICJ0ZW1wIiwgIm5vQ29tcGxldGlvbiIsICJwYWdlbGlzdCIsICJjb21iaW5lZCIsICJzdWJjYXQiLCAicGFyZW50Y2F0IiwgIkJTIiwgIlRBQiIsICJSRVQiLCAiRVNDIiwgIlNQQUNFIiwgIlBHVVAiLCAiUEdET1dOIiwgIlVQIiwgIkRPV04iLCAiREVMIiwgIklNRSIsICJDYXRlZ29yeUVkaXRvciIsICJjb25zdHJ1Y3RvciIsICJpbml0aWFsaXplIiwgImlzQ29tcG9zaXRpb25TdGFydCIsICJsaW5lIiwgInNwYW4iLCAiZGlyIiwgImlzQWRkQ2F0ZWdvcnkiLCAiY2F0TGluayIsICJmaXJzdENoaWxkIiwgIm9yaWdpbmFsS2V5IiwgIm9yaWdpbmFsRXhpc3RzIiwgIm1ha2VMaW5rU3BhbiIsICJ1cERvd25MaW5rcyIsICJzdHlsZSIsICJsaW5rU3BhbiIsICJwYXJlbnROb2RlIiwgImluc2VydEJlZm9yZSIsICJuZXh0U2libGluZyIsICJsaW5rIiwgImJpbmQiLCAibm9ybWFsTGlua3MiLCAidW5kZWxMaW5rIiwgIm9yaWdpbmFsSGlkZGVuIiwgImVuZ2luZSIsICJjdXJyZW50RXhpc3RzIiwgImxhc3RTYXZlZFN0YXRlIiwgImxhc3RTYXZlZENhdGVnb3J5IiwgImxhc3RTYXZlZEtleSIsICJsYXN0U2F2ZWRFeGlzdHMiLCAibGFzdFNhdmVkSGlkZGVuIiwgImludm9rZVN1Z2dlc3Rpb25zIiwgImRvbnRfYXV0b2NvbXBsZXRlIiwgInRleHRjaGFuZ2UiLCAibWFrZUZvcm0iLCAiZm9ybSIsICJtZXRob2QiLCAiYWNjZXB0IiwgInNpemUiLCAiZXZlbnQiLCAiaW1lIiwgImxhc3RLZXkiLCAidXNlc0NvbXBvc2l0aW9uIiwgImtleUNvdW50IiwgInByb2Nlc3NLZXkiLCAicmVzZXRLZXlTZWxlY3Rpb24iLCAiY2FuY2VsIiwgInNhdmVWaWV3IiwgImxpc3QiLCAiaGlnaGxpZ2h0U3VnZ2VzdGlvbiIsICJmb2N1cyIsICJlbmdpbmVTZWxlY3RvciIsICJvcHQiLCAic2VsZWN0ZWQiLCAic2VsZWN0ZWRJbmRleCIsICJidXR0b25fbGFiZWwiLCAiX2lkIiwgImRlZmF1bHRUZXh0IiwgImxhYmVsIiwgIk9LIiwgIm9rIiwgImNhbmNlbEJ1dHRvbiIsICJwb3NpdGlvbiIsICJ3aGl0ZVNwYWNlIiwgIl9pNCIsICJfZWRpdG9yczQiLCAib3JpZ2luYWxTdGF0ZSIsICJyZWFkT25seSIsICJyZW1vdmVFZGl0b3IiLCAiYmFja2dyb3VuZENvbG9yIiwgIm5leHQiLCAicm9sbGJhY2siLCAidW5kb0xpbmsiLCAiZG9udENoZWNrIiwgInNhbml0aXplSW5wdXQiLCAib3JpZ2luYWwiLCAiX2k1IiwgIl9lZGl0b3JzNSIsICJjc3NUZXh0IiwgInRleHREZWNvcmF0aW9uIiwgInNlbGVjdEVuZ2luZSIsICJlbmdpbmVOYW1lIiwgIm1ha2VDYWxsIiwgImNhbGxiYWNrT2JqIiwgImNsZWFuS2V5IiwgImNiIiwgInoiLCAiY2FsbHNNYWRlIiwgIm5vZkNhbGxzIiwgImFsbFRpdGxlcyIsICJkb250Q2FjaGUiLCAiY2FuY2VsbGVkIiwgImdldEpTT04iLCAiZ2VuZXJhdGVBcnJheSIsICJmb3JjZSIsICJwaXBlIiwgIm1ha2VDYWxscyIsICJfaXRlcmF0b3IzIiwgIl9zdGVwMyIsICJlbmdpbmVfIiwgIndnU2NyaXB0UGF0aCIsICJkb250QXV0b2NvbXBsZXRlIiwgImxhc3RRdWVyeSIsICJ2Tm9ybWFsaXplZCIsICJrbm93blRvRXhpc3QiLCAidkxvdyIsICJzb3J0IiwgImEiLCAiYiIsICJwcmVmaXhNYXRjaEEiLCAicHJlZml4TWF0Y2hCIiwgImFMb3ciLCAiYkxvdyIsICJmaXJzdFRpdGxlIiwgImNvbXBsZXRlZCIsICJhdXRvQ29tcGxldGUiLCAiZXhpc3RpbmciLCAibm9mSXRlbXMiLCAibWluIiwgImFsaWduIiwgInpJbmRleCIsICJhbmNob3IiLCAibGlzdGgiLCAidG9wIiwgIm9mZnNldFRvcCIsICJvZmZzZXRIZWlnaHQiLCAibWF4TGlzdEhlaWdodCIsICJ2aWV3cG9ydCIsICJ3aGF0IiwgImRvY3VtZW50RWxlbWVudCIsICJzY3JvbGxfb2Zmc2V0IiwgIm5vZGUiLCAiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwgImJveCIsICJ4IiwgInJvdW5kIiwgImxlZnQiLCAieSIsICJ0IiwgImwiLCAib2Zmc2V0TGVmdCIsICJvZmZzZXRQYXJlbnQiLCAidGV4dFBvcyIsICJubCIsICJudCIsICJvZmZzZXQiLCAidGV4dEJveFdpZHRoIiwgIm9mZnNldFdpZHRoIiwgImNsaWVudFdpZHRoIiwgInNjcm9sbCIsICJ2aWV3X3ciLCAidyIsICJsX3BvcyIsICJyaWdodCIsICJyZWxhdGl2ZV9vZmZzZXQiLCAiYWN0VmFsIiwgIm5vcm1hbGl6ZWRBY3RWYWwiLCAiZG9udE1vZGlmeSIsICJjYW5TZWxlY3QiLCAic2V0U2VsZWN0aW9uUmFuZ2UiLCAic2VsZWN0aW9uU3RhcnQiLCAic2VsZWN0aW9uRW5kIiwgImdldFNlbGVjdGlvbiIsICJjdXJyIiwgInRndCIsICJob3RjYXRfZG9udF9hZGRfdG9fd2F0Y2hsaXN0IiwgIkhvdENhdERvbnRBZGRUb1dhdGNobGlzdCIsICJob3RjYXRfbm9fYXV0b2NvbW1pdCIsICJIb3RDYXROb0F1dG9Db21taXQiLCAiaG90Y2F0X2RlbF9uZWVkc19kaWZmIiwgIkhvdENhdERlbE5lZWRzRGlmZiIsICJob3RjYXRfc3VnZ2VzdGlvbl9kZWxheSIsICJIb3RDYXRTdWdnZXN0aW9uRGVsYXkiLCAiaG90Y2F0X2VkaXRib3hfd2lkdGgiLCAiSG90Q2F0RWRpdEJveFdpZHRoIiwgImhvdGNhdF9zdWdnZXN0aW9ucyIsICJIb3RDYXRTdWdnZXN0aW9ucyIsICJob3RjYXRfc3VnZ2VzdGlvbnNfZml4ZWQiLCAiSG90Q2F0Rml4ZWRTdWdnZXN0aW9ucyIsICJob3RjYXRfc2luZ2xlX2NoYW5nZXNfYXJlX21pbm9yIiwgIkhvdENhdE1pbm9yU2luZ2xlQ2hhbmdlcyIsICJob3RjYXRfY2hhbmdlZF9iYWNrZ3JvdW5kIiwgIkhvdENhdENoYW5nZWRCYWNrZ3JvdW5kIiwgImhvdGNhdF91c2VfY2F0ZWdvcnlfbGlua3MiLCAiSG90Q2F0VXNlQ2F0ZWdvcnlMaW5rcyIsICJob3RjYXRfbGlzdF9zaXplIiwgIkhvdENhdExpc3RTaXplIiwgIkhvdENhdENoYW5nZVRhZyIsICJlRm9ybSIsICJlZGl0Zm9ybSIsICJjYXRSZWdFeHAiLCAib2xkVHh0IiwgImlzTWlub3JDaGFuZ2UiLCAibmV3VHh0IiwgIm9sZExpbmVzIiwgIm5ld0xpbmVzIiwgImNBcnIiLCAiZXhjZXB0IiwgImFBcnIiLCAiYkFyciIsICJsQXJyIiwgInNBcnIiLCAiX2l0ZXJhdG9yNCIsICJfc3RlcDQiLCAiaXRlbSIsICJpbmQiLCAiZmlsdGVyIiwgImMiLCAic3VtIiwgInN1bUEiLCAiJGN0IiwgInJlbW92ZUNoYW5nZVRhZyIsICJOdW1iZXIiLCAicGFyc2VJbnQiLCAiaXNOYU4iLCAiX2k2IiwgIl9PYmplY3QkZW50cmllcyIsICJlbnRyaWVzIiwgInN1Z2dlc3Rpb25Db25maWciLCAiZGVmYXVsdFZpZXciLCAiZ2V0Q29tcHV0ZWRTdHlsZSIsICJnZXRQcm9wZXJ0eVZhbHVlIiwgImRpcmVjdGlvbiIsICJjYW5fZWRpdCIsICJjbG9zZUZvcm0iLCAiX2k3IiwgIl9lZGl0b3JzNiIsICJzZXR1cF91cGxvYWQiLCAiaXAiLCAicmV1cGxvYWQiLCAiZGVzdEZpbGUiLCAibGFiZWxDZWxsIiwgImxpbmVDZWxsIiwgInRleHRBbGlnbiIsICJtYXJnaW4iLCAiYm9yZGVyIiwgInZlcnRpY2FsQWxpZ24iLCAibmV3Um93IiwgImluc2VydFJvdyIsICJvbGRTdWJtaXQiLCAiZG9fc3VibWl0IiwgImV2YWwiLCAiRnVuY3Rpb24iLCAiZWIiLCAiYWRkZWRPbmUiLCAiX2k4IiwgIl9lZGl0b3JzNyIsICJuZXdfY2F0IiwgIl90ZW1wbGF0ZU9iamVjdDgiLCAiX2NsZWFuZWRUZXh0IiwgInJlZ2V4IiwgIm9uc3VibWl0IiwgImNsZWFuZWRUZXh0IiwgImlzT25QYWdlIiwgIm5vZGVUeXBlIiwgIk5vZGUiLCAiRUxFTUVOVF9OT0RFIiwgImNhdFRpdGxlIiwgImdldEF0dHJpYnV0ZSIsICJfdGVtcGxhdGVPYmplY3Q5IiwgImluaXRpYWxpemVkIiwgInNldHVwVGltZW91dCIsICJmaW5kQnlDbGFzcyIsICJzY29wZSIsICJzZXR1cCIsICJhZGRpdGlvbmFsV29yayIsICJjbGVhclRpbWVvdXQiLCAiaGlkZGVuQ2F0cyIsICJmb290ZXIiLCAiY29udGFpbmVyIiwgImNyZWF0ZUVkaXRvcnMiLCAicXVlcnlTZWxlY3RvckFsbCIsICJjb3B5Q2F0cyIsICJBcnJheSIsICJhdCIsICJsYXN0U3BhbiIsICJlbmFibGVNdWx0aSIsICJpbm5lckhUTUwiLCAiY3Vyc29yIiwgImhvb2siLCAiZmlyZSIsICJjcmVhdGVDb21taXRGb3JtIiwgImZvcm1Db250YWluZXIiLCAid2dQYWdlQ29udGVudE1vZGVsIiwgImdldFBhZ2UiLCAic2V0U3RhdGUiLCAibmV3U3BhbnMiLCAiZ2V0U3RhdGUiLCAiX2k5IiwgIl9lZGl0b3JzOCIsICJyZWFsbHlfcnVuIiwgIndnQ2Fub25pY2FsU3BlY2lhbFBhZ2VOYW1lIiwgIlVwbG9hZEZvcm0iLCAicHJldmlvdXNfaG90Y2F0X3N0YXRlIiwgIndnSXNBcnRpY2xlIiwgInJ1biIsICJzdGFydGVkIiwgImhvdGNhdF9nZXRfc3RhdGUiLCAiaG90Y2F0X3NldF9zdGF0ZSIsICJob3RjYXRfY2xvc2VfZm9ybSIsICJydW5XaGVuUmVhZHkiXQp9Cg== +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL0hvdENhdC9tb2R1bGVzL2NoZWNrLm1vZHVsZS5sZXNzIiwgInNyYy9Ib3RDYXQvbW9kdWxlcy9hcGkudHMiLCAic3JjL0hvdENhdC9tb2R1bGVzL2NoZWNrLnRzIiwgInNyYy9Ib3RDYXQvSG90Q2F0LmpzIiwgInNyYy9Ib3RDYXQvbW9kdWxlcy9nZXRNZXNzYWdlLnRzIiwgInNyYy9Ib3RDYXQvbW9kdWxlcy9tZXNzYWdlcy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IFwiZXNidWlsZC1jc3MtbW9kdWxlcy1wbHVnaW4tbnMtY3NzOnNyYy9Ib3RDYXQvbW9kdWxlcy9jaGVjay5tb2R1bGUubGVzc1wiO1xuZXhwb3J0IGNvbnN0IGNhdGNoZWNrSW5saW5lSWNvbiA9IFwiY2hlY2stbW9kdWxlX19jYXRjaGVja0lubGluZUljb25fbUo1TkRxX180OTBcIjtcblxuZXhwb3J0IGRlZmF1bHQge1xuICBcImNhdGNoZWNrSW5saW5lSWNvblwiOiBjYXRjaGVja0lubGluZUljb25cbn07XG4gICAgICAiLCAiaW1wb3J0IHtpbml0TXdBcGl9IGZyb20gJ2V4dC5nYWRnZXQuVXRpbCc7XG5cbi8vIEluaXRpYWxpemUgTWVkaWFXaWtpIEFQSVxuY29uc3QgbXdBcGk6ICh1c2VyQWdlbnQ/OiBzdHJpbmcpID0+IG13LkFwaSA9ICh1c2VyQWdlbnQpID0+IHtcblx0cmV0dXJuIGluaXRNd0FwaSh1c2VyQWdlbnQpO1xufTtcblxuZXhwb3J0IHttd0FwaX07XG4iLCAiaW1wb3J0IHtjYXRjaGVja0lubGluZUljb259IGZyb20gJy4vY2hlY2subW9kdWxlLmxlc3MnO1xuaW1wb3J0IHttd0FwaX0gZnJvbSAnLi9hcGknO1xuXG4vKipcbiAqIENoZWNrQ2F0ZWdvcmllcyBIb3RDYXQgRXh0ZW5zaW9uIOKAk1xuICogcmVtb3ZlcyB0aGUgdGVtcGxhdGUgd2hlbiBjYXRlZ29yaXppbmcgKHByb21wdHMgYmVmb3JlKSB3aXRoIEhvdENhdCBhbmRcbiAqIGFkZHMgYSBsaW5rIFwiQ2F0ZWdvcmllcyBhcmUgT0tcIiB0byB0aGUgY2F0ZWdvcnktc2VjdGlvblxuICpcbiAqIEByZXYgMiAoMjAxNC0wMy0yMClcbiAqIEBhdXRob3IgUmlsbGtlLCAyMDEyXG4gKi9cbihmdW5jdGlvbiBob3RDYXRDaGVjaygpIHtcblx0aWYgKFxuXHRcdG13LmNvbmZpZy5nZXQoJ3dnTmFtZXNwYWNlTnVtYmVyJykgIT09IDYgfHxcblx0XHR3aW5kb3cuSG90Q2F0QXV0b1JlbW92ZUNoZWNrQ2F0T3B0T3V0IHx8XG5cdFx0IWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5jaGVja2NhdGVnb3JpZXMnKVxuXHQpIHtcblx0XHRyZXR1cm47XG5cdH1cblx0Y29uc3QgYXBpID0gbXdBcGkoJ2hvdENhdENoZWNrLzIuMCcpO1xuXHRjb25zdCBjaGVja0NhdGVnb3JpZXNSZWdFeHAgPSAve3tbQ2NdaGVja1sgX11jYXRlZ29yaWVzW157fV0qfX0vZztcblx0Y29uc3Qgc2VsZk5hbWUgPSAnKFtbTWVkaWFXaWtpOkdhZGdldC1Ib3RDYXQtY2hlY2suanN8U2NyaXB0XV0pOiAnO1xuXHRjb25zdCBzdG9yYWdlSXRlbU5hbWUgPSAnY2hlY2tDYXQnO1xuXHRjb25zdCBzdG9yYWdlSXRlbSA9IG13LnN0b3JhZ2UuZ2V0KHN0b3JhZ2VJdGVtTmFtZSk7XG5cdC8qKlxuXHQgKiBBIGZldyBzdHlsaW5nIGhlbHBlciBmdW5jdGlvbnNcblx0ICpcblx0ICogQHBhcmFtIHtzdHJpbmd9IGljb25DbGFzc1xuXHQgKiBAcmV0dXJuIHtKUXVlcnl9XG5cdCAqL1xuXHRjb25zdCBjcmVhdGVqSWNvbiA9IChpY29uQ2xhc3M6IHN0cmluZyk6IEpRdWVyeSA9PiB7XG5cdFx0cmV0dXJuICQoJzxzcGFuPicpLmF0dHIoJ2NsYXNzJywgYHVpLWljb24gJHtpY29uQ2xhc3N9ICR7Y2F0Y2hlY2tJbmxpbmVJY29ufWApLnRleHQoJyAnKTtcblx0fTtcblx0Y29uc3QgY3JlYXRlTm90aWZ5QXJlYSA9ICh0ZXh0Tm9kZTogSlF1ZXJ5PEpRdWVyeS5Ob2RlPiwgaWNvbjogc3RyaW5nLCBzdGF0ZTogc3RyaW5nKTogSlF1ZXJ5PEhUTUxFbGVtZW50PiA9PiB7XG5cdFx0cmV0dXJuICQoJzxkaXY+Jylcblx0XHRcdC5hZGRDbGFzcygndWktd2lkZ2V0Jylcblx0XHRcdC5hcHBlbmQoXG5cdFx0XHRcdCQoJzxkaXY+Jylcblx0XHRcdFx0XHQuYXR0cignY2xhc3MnLCBgJHtzdGF0ZX0gdWktY29ybmVyLWFsbGApXG5cdFx0XHRcdFx0LmNzcyh7XG5cdFx0XHRcdFx0XHQnbWFyZ2luLXRvcCc6ICcyMHB4Jyxcblx0XHRcdFx0XHRcdHBhZGRpbmc6ICcwLjdlbScsXG5cdFx0XHRcdFx0fSlcblx0XHRcdFx0XHQuYXBwZW5kKCQoJzxwPicpLmFwcGVuZChjcmVhdGVqSWNvbihpY29uKS5jc3MoJ21hcmdpblJpZ2h0JywgJzAuM2VtJyksIHRleHROb2RlKSlcblx0XHRcdCk7XG5cdH07XG5cdC8vIFJlbW92ZSBcImNoZWNrIGNhdGVnb3JpZXNcIiB3aGVuIHVzaW5nIEhvdENhdFxuXHQvLyBPbmx5IGV4ZWN1dGVkIG9uIGZpcnN0IHN1Ym1pdFxuXHQkKCdib2R5Jykub25lKCdzdWJtaXQuY2hlY2tDYXRMaXN0ZW5lcicsICcjaG90Y2F0Q29tbWl0Rm9ybScsIGZ1bmN0aW9uIChlKSB7XG5cdFx0aWYgKHN0b3JhZ2VJdGVtID09PSAnZGlzYWJsZWQnKSB7XG5cdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHR9XG5cdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtYXNzaWdubWVudFxuXHRcdGNvbnN0IHNlbGYgPSB0aGlzO1xuXG5cdFx0Y29uc3QgbmV3VmFsID0gKHNlbGYud3BUZXh0Ym94MSBhcyBIVE1MVGV4dEFyZWFFbGVtZW50KS52YWx1ZT8ucmVwbGFjZShjaGVja0NhdGVnb3JpZXNSZWdFeHAsICcnKTtcblx0XHRjb25zdCBkbGdCdXR0b25zOiB7XG5cdFx0XHQnWWVzLCBSZW1vdmUnPzogKCkgPT4gdm9pZDtcblx0XHRcdCdObywga2VlcCBpdCc/OiAoKSA9PiB2b2lkO1xuXHRcdH0gPSB7fTtcblx0XHRsZXQgJGRpYWxvZ0NoZWNrU3RvcmFnZTogSlF1ZXJ5PEhUTUxFbGVtZW50Pjtcblx0XHRsZXQgJHBlcm1hU2F2ZUhpbnQ6IEpRdWVyeTxIVE1MRWxlbWVudD47XG5cdFx0bGV0ICR0ZXh0SGludE5vZGU7XG5cdFx0bGV0ICRkaWFsb2c7XG5cdFx0Y29uc3QgZG9SZW1vdmUgPSAoKSA9PiB7XG5cdFx0XHQoc2VsZi53cFN1bW1hcnkgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWUgPVxuXHRcdFx0XHRgUmVtb3ZpbmcgW1tUZW1wbGF0ZTpDaGVjayBjYXRlZ29yaWVzfHt7Q2hlY2sgY2F0ZWdvcmllc319XV0gJHsoc2VsZi53cFN1bW1hcnkgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWV9YDtcblxuXHRcdFx0KHNlbGYud3BUZXh0Ym94MSBhcyBIVE1MVGV4dEFyZWFFbGVtZW50KS52YWx1ZSA9IG5ld1ZhbDtcblx0XHR9O1xuXHRcdGNvbnN0IHdyaXRlU3RvcmFnZSA9ICh2YWw6IHN0cmluZykgPT4ge1xuXHRcdFx0bXcuc3RvcmFnZS5zZXQoc3RvcmFnZUl0ZW1OYW1lLCB2YWwsIDYwICogNjAgKiAyNCAqIDcpOyAvLyA3IGRheXNcblx0XHR9O1xuXHRcdGRsZ0J1dHRvbnNbJ1llcywgUmVtb3ZlJ10gPSBmdW5jdGlvbiAoKSB7XG5cdFx0XHRkb1JlbW92ZSgpO1xuXHRcdFx0aWYgKCgkZGlhbG9nQ2hlY2tTdG9yYWdlWzBdIGFzIEhUTUxJbnB1dEVsZW1lbnQpPy5jaGVja2VkKSB7XG5cdFx0XHRcdHdyaXRlU3RvcmFnZSgnYXV0bycpO1xuXHRcdFx0fVxuXHRcdFx0JCh0aGlzKS5kaWFsb2coJ2Nsb3NlJyk7XG5cdFx0fTtcblx0XHRkbGdCdXR0b25zWydObywga2VlcCBpdCddID0gZnVuY3Rpb24gKCkge1xuXHRcdFx0aWYgKCgkZGlhbG9nQ2hlY2tTdG9yYWdlWzBdIGFzIEhUTUxJbnB1dEVsZW1lbnQpPy5jaGVja2VkKSB7XG5cdFx0XHRcdHdyaXRlU3RvcmFnZSgnZGlzYWJsZWQnKTtcblx0XHRcdH1cblx0XHRcdCQodGhpcykuZGlhbG9nKCdjbG9zZScpO1xuXHRcdH07XG5cdFx0Y29uc3QgX2FkZFRvSlMgPSBmdW5jdGlvbiAodGhpczogSFRNTEVsZW1lbnQsIF9lOiBKUXVlcnkuRXZlbnQpIHtcblx0XHRcdF9lLnByZXZlbnREZWZhdWx0KCk7XG5cdFx0XHRpZiAoJHBlcm1hU2F2ZUhpbnQuaGFzQ2xhc3MoJ3VpLXN0YXRlLWRpc2FibGVkJykpIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdFx0Y29uc3QgJGVsOiBKUXVlcnk8SFRNTEVsZW1lbnQ+ID0gJCh0aGlzKTtcblx0XHRcdCRlbC5vZmYoJ2NsaWNrJykudGV4dCgnUGxlYXNlIHdhaXQuJyk7XG5cdFx0XHQkcGVybWFTYXZlSGludC5hZGRDbGFzcygndWktc3RhdGUtZGlzYWJsZWQnKTtcblx0XHRcdGNvbnN0IHBhcmFtczogQXBpRWRpdFBhZ2VQYXJhbXMgPSB7XG5cdFx0XHRcdGFjdGlvbjogJ2VkaXQnLFxuXHRcdFx0XHRmb3JtYXQ6ICdqc29uJyxcblx0XHRcdFx0dGl0bGU6IGBVc2VyOiR7bXcuY29uZmlnLmdldCgnd2dVc2VyTmFtZScpfS9jb21tb24uanNgLFxuXHRcdFx0XHRzdW1tYXJ5OiBgJHtzZWxmTmFtZX1TYXZpbmcgSG90Q2F0IGNvbmZpZ3VyYXRpb24uYCxcblx0XHRcdFx0YXBwZW5kdGV4dDogJGVsLmRhdGEoJ2FkZFRleHQnKSBhcyBzdHJpbmcsXG5cdFx0XHR9O1xuXHRcdFx0Y29uc3QgZWRpdERvbmUgPSAoZWRpdFN0YXQ/OiB7ZXJyb3I/OiB7Y29kZT86IHN0cmluZzsgaW5mbz86IHN0cmluZ319KSA9PiB7XG5cdFx0XHRcdGlmICghZWRpdFN0YXQpIHtcblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKGVkaXRTdGF0LmVycm9yKSB7XG5cdFx0XHRcdFx0dm9pZCBtdy5ub3RpZnkoXG5cdFx0XHRcdFx0XHRgVW5hYmxlIHRvIHNhdmUgdG8geW91ciBjb21tb24uanMgdXNpbmcgdGhlIEFQSVxcbiR7ZWRpdFN0YXQuZXJyb3IuY29kZX1cXG4ke2VkaXRTdGF0LmVycm9yLmluZm99YCxcblx0XHRcdFx0XHRcdHt0YWc6ICdob3RDYXRDaGVjaycsIHR5cGU6ICdlcnJvcid9XG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0XHQkZWwudGV4dCgnRWRpdC1FcnJvciEnKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHQkZWwudGV4dCgnRG9uZS4nKTtcblx0XHRcdFx0XHQkcGVybWFTYXZlSGludC5mYWRlT3V0KCk7XG5cdFx0XHRcdH1cblx0XHRcdH07XG5cdFx0XHR2b2lkIGFwaS5wb3N0V2l0aFRva2VuKCdjc3JmJywgcGFyYW1zKS50aGVuKGVkaXREb25lKTtcblx0XHR9O1xuXHRcdC8qKlxuXHRcdCAqIE9uIFdpa2ltZWRpYSBDb21tb25zIHRoZXJlIHdlcmUgcGVvcGxlIHdobyBzYWlkOlxuXHRcdCAqIFwiQ2F0ZWdvcml6aW5nIHdpdGggSG90Q2F0IGRvZXMgbGVnaXQgYXV0b21hdGVkIHJlbW92YWwgb2YgdGhlIGNoZWNrLWNhdC1tZXNzYWdlXCJcblx0XHQgKiBTbyB3ZSBpbnZlbnRlZCBhIGRpYWxvZyB0aGF0IHNob3VsZCBiZSByZWFkYWJsZSBieSB1c2VycyBldmVuIHdpdGggdmVyeSBmZXcgRW5nbGlzaCBza2lsbHMuXG5cdFx0ICovXG5cdFx0Y29uc3QgcHJvbXB0ID0gKCkgPT4ge1xuXHRcdFx0JGRpYWxvZ0NoZWNrU3RvcmFnZSA9ICQoJzxpbnB1dD4nKVxuXHRcdFx0XHQuYXR0cih7XG5cdFx0XHRcdFx0dHlwZTogJ2NoZWNrYm94Jyxcblx0XHRcdFx0XHRpZDogJ2hvdENhdEF1dG9SZW1vdmVDaGVja0NhdFN0b3JhZ2UnLFxuXHRcdFx0XHR9KVxuXHRcdFx0XHQub24oJ2NoYW5nZScsIGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0XHRpZiAoKHRoaXMgYXMgSFRNTElucHV0RWxlbWVudCkuY2hlY2tlZCkge1xuXHRcdFx0XHRcdFx0JHBlcm1hU2F2ZUhpbnQuZmFkZUluKCk7XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdCRwZXJtYVNhdmVIaW50LmZhZGVPdXQoKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pO1xuXHRcdFx0JHRleHRIaW50Tm9kZSA9ICQoJzx1bD4nKTtcblx0XHRcdCQoJzxsaT4nKVxuXHRcdFx0XHQuYXBwZW5kKFxuXHRcdFx0XHRcdCQoJzxhPicpXG5cdFx0XHRcdFx0XHQuYXR0cignaHJlZicsICcjJylcblx0XHRcdFx0XHRcdC50ZXh0KCdEaXNhYmxlIHRoaXMgZmVhdHVyZS4nKVxuXHRcdFx0XHRcdFx0LmRhdGEoJ2FkZFRleHQnLCAnXFxud2luZG93LkhvdENhdEF1dG9SZW1vdmVDaGVja0NhdE9wdE91dCA9IHRydWU7Jylcblx0XHRcdFx0XHRcdC5vbignY2xpY2snLCBfYWRkVG9KUylcblx0XHRcdFx0KVxuXHRcdFx0XHQuYXBwZW5kVG8oJHRleHRIaW50Tm9kZSk7XG5cdFx0XHQkKCc8bGk+Jylcblx0XHRcdFx0LmFwcGVuZChcblx0XHRcdFx0XHQkKCc8YT4nKVxuXHRcdFx0XHRcdFx0LmF0dHIoJ2hyZWYnLCAnIycpXG5cdFx0XHRcdFx0XHQudGV4dCgnUmVtb3ZlIHt7Y2hlY2sgY2F0ZWdvcmllc319IHdoZW4gZWRpdGluZyB1c2luZyBIb3RDYXQgd2l0aG91dCBwcm9tcHRpbmcuJylcblx0XHRcdFx0XHRcdC5kYXRhKCdhZGRUZXh0JywgJ1xcbndpbmRvdy5Ib3RDYXRBdXRvUmVtb3ZlQ2hlY2tDYXQgPSB0cnVlOycpXG5cdFx0XHRcdFx0XHQub24oJ2NsaWNrJywgX2FkZFRvSlMpXG5cdFx0XHRcdClcblx0XHRcdFx0LmFwcGVuZFRvKCR0ZXh0SGludE5vZGUpO1xuXHRcdFx0JHBlcm1hU2F2ZUhpbnQgPSBjcmVhdGVOb3RpZnlBcmVhKFxuXHRcdFx0XHQkKCc8c3Bhbj4nKS50ZXh0KCdTYXZlIHRoZXNlIHNldHRpbmcgaW4geW91ciBjb21tb24uanM6ICcpLmFwcGVuZCgkdGV4dEhpbnROb2RlKSxcblx0XHRcdFx0J3VpLWljb24taW5mbycsXG5cdFx0XHRcdCd1aS1zdGF0ZS1oaWdobGlnaHQnXG5cdFx0XHQpO1xuXHRcdFx0JGRpYWxvZyA9ICQoJzxkaXY+Jylcblx0XHRcdFx0LmFwcGVuZChcblx0XHRcdFx0XHQkKCc8c3Bhbj4nKVxuXHRcdFx0XHRcdFx0LmNzcyh7XG5cdFx0XHRcdFx0XHRcdCdmb250LXNpemUnOiAnMmVtJyxcblx0XHRcdFx0XHRcdFx0J2xpbmUtaGVpZ2h0JzogJzEuOGVtJyxcblx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHQuYXBwZW5kKFxuXHRcdFx0XHRcdFx0XHQkKCc8c3Bhbj4nKS50ZXh0KCcge3tjaGVjayBjYXRlZ29yaWVzfX0gJykuY3NzKHtcblx0XHRcdFx0XHRcdFx0XHQnYmFja2dyb3VuZC1jb2xvcic6ICcjRjhDQ0IwJyxcblx0XHRcdFx0XHRcdFx0XHQndGV4dC1kZWNvcmF0aW9uJzogJ2xpbmUtdGhyb3VnaCAhaW1wb3J0YW50Jyxcblx0XHRcdFx0XHRcdFx0XHRkaXNwbGF5OiAnaW5saW5lLWJsb2NrJyxcblx0XHRcdFx0XHRcdFx0fSksXG5cdFx0XHRcdFx0XHRcdCQoJzxzcGFuPicpLnRleHQoJyA/Jylcblx0XHRcdFx0XHRcdClcblx0XHRcdFx0KVxuXHRcdFx0XHQuYXBwZW5kKFxuXHRcdFx0XHRcdCc8YnI+Jyxcblx0XHRcdFx0XHQkZGlhbG9nQ2hlY2tTdG9yYWdlLFxuXHRcdFx0XHRcdCQoJzxsYWJlbD4nKS5hdHRyKCdmb3InLCAnaG90Q2F0QXV0b1JlbW92ZUNoZWNrQ2F0U3RvcmFnZScpLnRleHQoXCJEb24ndCBhc2sgYWdhaW5cIiksXG5cdFx0XHRcdFx0Jzxicj4nXG5cdFx0XHRcdClcblx0XHRcdFx0LmFwcGVuZChtdy51c2VyLmlzQW5vbigpID8gJycgOiAkcGVybWFTYXZlSGludC5oaWRlKCkpO1xuXHRcdFx0JGRpYWxvZy5kaWFsb2coe1xuXHRcdFx0XHRtb2RhbDogdHJ1ZSxcblx0XHRcdFx0Y2xvc2VPbkVzY2FwZTogdHJ1ZSxcblx0XHRcdFx0dGl0bGU6ICd7e2NoZWNrIGNhdGVnb3JpZXN9fSAo4oiSKT8nLFxuXHRcdFx0XHR3aWR0aDogNDUwLFxuXHRcdFx0XHRidXR0b25zOiBkbGdCdXR0b25zLFxuXHRcdFx0XHRjbG9zZTogKCkgPT4ge1xuXHRcdFx0XHRcdGNvbnN0ICRib2R5ID0gJCgnYm9keScpO1xuXHRcdFx0XHRcdCRib2R5LmZpbmQoJyNob3RjYXRDb21taXRGb3JtJykudHJpZ2dlcignc3VibWl0Jyk7XG5cdFx0XHRcdH0sXG5cdFx0XHRcdG9wZW4oKSB7XG5cdFx0XHRcdFx0Y29uc3QgJGJ1dHRvbnMgPSAkKHRoaXMpLnBhcmVudCgpLmZpbmQoJy51aS1kaWFsb2ctYnV0dG9ucGFuZSBidXR0b24nKTtcblx0XHRcdFx0XHQkYnV0dG9ucy5lcSgwKS5idXR0b24oe1xuXHRcdFx0XHRcdFx0aWNvbnM6IHtcblx0XHRcdFx0XHRcdFx0cHJpbWFyeTogJ3VpLWljb24tY2lyY2xlLWNoZWNrJyxcblx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0JGJ1dHRvbnMuZXEoMSkuYnV0dG9uKHtcblx0XHRcdFx0XHRcdGljb25zOiB7XG5cdFx0XHRcdFx0XHRcdHByaW1hcnk6ICd1aS1pY29uLWNhbmNlbCcsXG5cdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9LFxuXHRcdFx0fSk7XG5cdFx0fTtcblxuXHRcdGlmIChuZXdWYWwgIT09IChzZWxmLndwVGV4dGJveDEgYXMgSFRNTFRleHRBcmVhRWxlbWVudCkudmFsdWUpIHtcblx0XHRcdGlmICh3aW5kb3cuSG90Q2F0QXV0b1JlbW92ZUNoZWNrQ2F0IHx8IHN0b3JhZ2VJdGVtID09PSAnYXV0bycpIHtcblx0XHRcdFx0ZG9SZW1vdmUoKTtcblx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHR9XG5cdFx0XHRlLnByZXZlbnREZWZhdWx0KCk7XG5cdFx0XHRwcm9tcHQoKTtcblx0XHR9XG5cdFx0cmV0dXJuIHRydWU7XG5cdH0pO1xuXHQvLyBBZGQgT0stTGluayB0byB0aGUgY2F0cyBwYW5lbFxuXHRjb25zdCAkb2tMaW5rID0gJCgnPGE+Jylcblx0XHQuYXR0cih7XG5cdFx0XHRocmVmOiAnIycsXG5cdFx0XHR0aXRsZTogJ0NhdGVnb3JpZXMgYXJlIE9LISBJbW1lZGlhdGVseSByZW1vdmUgdGhlIHRlbXBsYXRlLicsXG5cdFx0fSlcblx0XHQuYXBwZW5kKCc8cz4nKVxuXHRcdC50ZXh0KCd7e0NoZWNrIGNhdGVnb3JpZXN9fScpO1xuXHQkb2tMaW5rLm9uKCdjbGljaycsIGZ1bmN0aW9uIChlKSB7XG5cdFx0ZS5wcmV2ZW50RGVmYXVsdCgpO1xuXHRcdGNvbnN0ICRlbCA9ICQodGhpcyk7XG5cdFx0JGVsLm9mZignY2xpY2snKTtcblx0XHRjb25zdCBkb0VkaXQgPSAocmVzdWx0OiBzdHJpbmcpID0+IHtcblx0XHRcdGlmICghcmVzdWx0KSB7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblx0XHRcdCRlbC50ZXh0KCdEb2luZy4nKTtcblx0XHRcdGNvbnN0IHRleHQgPSByZXN1bHQucmVwbGFjZShjaGVja0NhdGVnb3JpZXNSZWdFeHAsICcnKTtcblx0XHRcdGlmICh0ZXh0ID09PSByZXN1bHQpIHtcblx0XHRcdFx0JGVsLnRleHQoJ1RlbXBsYXRlIG5vdCBmb3VuZCEnKTtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdFx0Y29uc3QgcGFyYW1zOiBBcGlFZGl0UGFnZVBhcmFtcyA9IHtcblx0XHRcdFx0dGV4dCxcblx0XHRcdFx0YWN0aW9uOiAnZWRpdCcsXG5cdFx0XHRcdGZvcm1hdDogJ2pzb24nLFxuXHRcdFx0XHR0aXRsZTogbXcuY29uZmlnLmdldCgnd2dQYWdlTmFtZScpLFxuXHRcdFx0XHRzdW1tYXJ5OiBgJHtzZWxmTmFtZX1DYXRlZ29yaWVzIGFyZSBjaGVja2VkIGFuZCBPSy4gWW91IGNhbiBoZWxwIFtbQ2F0ZWdvcnk6TWVkaWEgbmVlZGluZyBjYXRlZ29yeSByZXZpZXd8cmV2aWV3aW5nXV0hYCxcblx0XHRcdFx0bm9jcmVhdGU6IHRydWUsXG5cdFx0XHR9O1xuXHRcdFx0Y29uc3QgZWRpdERvbmUgPSAoZWRpdFN0YXQ/OiB7ZXJyb3I/OiB7Y29kZT86IHN0cmluZzsgaW5mbz86IHN0cmluZ319KSA9PiB7XG5cdFx0XHRcdGlmICghZWRpdFN0YXQpIHtcblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKGVkaXRTdGF0LmVycm9yKSB7XG5cdFx0XHRcdFx0dm9pZCBtdy5ub3RpZnkoXG5cdFx0XHRcdFx0XHRgVW5hYmxlIHRvIHJlbW92ZSBcIkNoZWNrIGNhdGVnb3JpZXNcIiB3aXRoIHRoZSBBUElcXG4ke2VkaXRTdGF0LmVycm9yLmNvZGV9XFxuJHtlZGl0U3RhdC5lcnJvci5pbmZvfWAsXG5cdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdHRhZzogJ2hvdENhdENoZWNrJyxcblx0XHRcdFx0XHRcdFx0dHlwZTogJ2Vycm9yJyxcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdCRlbC50ZXh0KCdFZGl0LUVycm9yIScpO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdCRlbC50ZXh0KCdFZGl0IERvbmUuJyk7XG5cdFx0XHRcdH1cblx0XHRcdFx0Y29uc3QgJGJvZHkgPSAkKCdib2R5Jyk7XG5cdFx0XHRcdCRib2R5LmZpbmQoJy5jaGVja2NhdGVnb3JpZXMnKS5mYWRlT3V0KCk7XG5cdFx0XHR9O1xuXHRcdFx0JGVsLnRleHQoJ0RvaW5nLi4nKTtcblx0XHRcdHZvaWQgYXBpLnBvc3RXaXRoVG9rZW4oJ2NzcmYnLCBwYXJhbXMpLnRoZW4oZWRpdERvbmUpO1xuXHRcdH07XG5cdFx0JGVsLnRleHQoJ0RvaW5nJyk7XG5cdFx0dm9pZCAkLmFqYXgoe1xuXHRcdFx0dXJsOiBtdy5jb25maWcuZ2V0KCd3Z1NjcmlwdCcpLFxuXHRcdFx0ZGF0YToge1xuXHRcdFx0XHRhY3Rpb246ICdyYXcnLFxuXHRcdFx0XHR0aXRsZTogbXcuY29uZmlnLmdldCgnd2dQYWdlTmFtZScpLnJlcGxhY2UoLyAvZywgJ18nKSxcblx0XHRcdH0sXG5cdFx0XHRkYXRhVHlwZTogJ3RleHQnLFxuXHRcdFx0ZXJyb3I6ICgpID0+IHtcblx0XHRcdFx0JGVsLnRleHQoJ0Vycm9yIScpO1xuXHRcdFx0fSxcblx0XHRcdHN1Y2Nlc3M6IGRvRWRpdCxcblx0XHRcdHR5cGU6ICdHRVQnLFxuXHRcdFx0Y2FjaGU6IGZhbHNlLFxuXHRcdH0pO1xuXHR9KTtcblx0JChmdW5jdGlvbiBsb2FkSG90Q2F0Q2hlY2soKSB7XG5cdFx0Y29uc3QgJGJvZHkgPSAkKCdib2R5Jyk7XG5cdFx0JGJvZHkuZmluZCgnI2NhdGxpbmtzJykuZmluZCgndWw6Zmlyc3QnKS5hcHBlbmQoJCgnPGxpPicpLmFwcGVuZCgkb2tMaW5rKSk7XG5cdH0pO1xufSkoKTtcbiIsICIvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50XG4vLyBAdHMtbm9jaGVja1xuaW1wb3J0ICcuL21vZHVsZXMvY2hlY2snO1xuaW1wb3J0IHtnZW5lcmF0ZUFycmF5fSBmcm9tICdleHQuZ2FkZ2V0LlV0aWwnO1xuaW1wb3J0IHtnZXRNZXNzYWdlfSBmcm9tICcuL21vZHVsZXMvZ2V0TWVzc2FnZSc7XG5pbXBvcnQge2hvdENhdE1lc3NhZ2VzfSBmcm9tICcuL21vZHVsZXMvbWVzc2FnZXMnO1xuaW1wb3J0IHttd0FwaX0gZnJvbSAnLi9tb2R1bGVzL2FwaSc7XG5pbXBvcnQgcG5vIGZyb20gJy4vaW1hZ2VzL1Bfbm8ucG5nJztcbmltcG9ydCBweWVzIGZyb20gJy4vaW1hZ2VzL1BfeWVzLnBuZyc7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEFqYXgtYmFzZWQgc2ltcGxlIENhdGVnb3J5IG1hbmFnZXIuIEFsbG93cyBhZGRpbmcvcmVtb3ZpbmcvY2hhbmdpbmcgY2F0ZWdvcmllcyBvbiBhIHBhZ2Ugdmlldy5cbiAqIFN1cHBvcnRzIG11bHRpcGxlIGNhdGVnb3J5IGNoYW5nZXMsIGFzIHdlbGwgYXMgcmVkaXJlY3QgYW5kIGRpc2FtYmlndWF0aW9uIHJlc29sdXRpb24uIEFsc29cbiAqIHBsdWdzIGludG8gdGhlIHVwbG9hZCBmb3JtLiBTZWFyY2ggZW5naW5lcyB0byB1c2UgZm9yIHRoZSBzdWdnZXN0aW9uIGxpc3QgYXJlIGNvbmZpZ3VyYWJsZSwgYW5kXG4gKiBjYW4gYmUgc2VsZWN0ZWQgaW50ZXJhY3RpdmVseS5cbiAqXG4gKiBAc2VlIHtAbGluayBodHRwczovL2NvbW1vbnMud2lraW1lZGlhLm9yZy93aWtpL0hlbHA6R2FkZ2V0LUhvdENhdH1cbiAqIEBhdXRob3IgYXV0aG9ycyA8aHR0cHM6Ly9jb21tb25zLndpa2ltZWRpYS5vcmcvd2lraS9IZWxwOkdhZGdldC1Ib3RDYXQvVmVyc2lvbl9oaXN0b3J5PlxuICovXG4vLyBMb2FkIHRyYW5zbGF0aW9ucyBsb2NhbGx5XG5ob3RDYXRNZXNzYWdlcygpO1xuXG4vLyBNYWluIGJvZHlcbihmdW5jdGlvbiBob3RDYXQoKSB7XG5cdC8vIERvbid0IHVzZSBtdy5jb25maWcuZ2V0KCkgYXMgdGhhdCB0YWtlcyBhIGNvcHkgb2YgdGhlIGNvbmZpZywgYW5kIHNvIGRvZXNuJ3Rcblx0Ly8gYWNjb3VudCBmb3IgdmFsdWVzIGNoYW5naW5nLCBlLmcuIHdnQ3VyUmV2aXNpb25JZCBhZnRlciBhIFZFIGVkaXRcblx0Y29uc3QgY29uZiA9IG13LmNvbmZpZy52YWx1ZXM7XG5cdC8vIEd1YXJkIGFnYWluc3QgZG91YmxlIGluY2x1c2lvbnNcblx0aWYgKCh3aW5kb3cuSG90Q2F0ICYmICF3aW5kb3cuSG90Q2F0Lm5vZGVOYW1lKSB8fCBjb25mLndnQWN0aW9uID09PSAnZWRpdCcpIHtcblx0XHRyZXR1cm47IC8vIE5vdCBvbiBlZGl0IG1vZGVcblx0fVxuXHQvLyBJbml0aWFsaXplIE1lZGlhV2lraSBBUElcblx0Y29uc3QgYXBpID0gbXdBcGkoJ0hvdENhdC8zLjAnKTtcblx0Ly8gQ29uZmlndXJhdGlvbiBzdHVmZi5cblx0d2luZG93LkhvdENhdCA9IHtcblx0XHQvLyBUaGUgbGl0dGxlIG1vZGlmaWNhdGlvbiBsaW5rcyBkaXNwbGF5ZWQgYWZ0ZXIgY2F0ZWdvcnkgbmFtZXMuIFUrMjIxMiBpcyBhIG1pbnVzIHNpZ247IFUrMjE5MyBhbmQgVSsyMTkxIGFyZVxuXHRcdC8vIGRvd253YXJkIGFuZCB1cHdhcmQgcG9pbnRpbmcgYXJyb3dzLiBEbyBub3QgdXNlIOKGkyBhbmQg4oaRIGluIHRoZSBjb2RlIVxuXHRcdGxpbmtzOiB7XG5cdFx0XHRjaGFuZ2U6ICcowrEpJyxcblx0XHRcdHJlbW92ZTogJyhcXHUyMjEyKScsXG5cdFx0XHRhZGQ6ICcoKyknLFxuXHRcdFx0cmVzdG9yZTogJyjDlyknLFxuXHRcdFx0dW5kbzogJyjDlyknLFxuXHRcdFx0ZG93bjogJyhcXHUyMTkzKScsXG5cdFx0XHR1cDogJyhcXHUyMTkxKScsXG5cdFx0fSxcblx0XHRjaGFuZ2VUYWc6ICdIb3RDYXQnLFxuXHRcdC8vIFRoZSBIVE1MIGNvbnRlbnQgb2YgdGhlIFwiZW50ZXIgbXVsdGktbW9kZVwiIGxpbmsgYXQgdGhlIGZyb250LlxuXHRcdGFkZG11bHRpOiAnPHNwYW4+KzxzdXA+Kzwvc3VwPjwvc3Bhbj4nLFxuXHRcdC8vIFJldHVybiB0cnVlIHRvIGRpc2FibGUgSG90Q2F0LlxuXHRcdGRpc2FibGU6ICgpID0+IHtcblx0XHRcdGNvbnN0IG5zID0gY29uZi53Z05hbWVzcGFjZU51bWJlcjtcblx0XHRcdGNvbnN0IG5zSWRzID0gY29uZi53Z05hbWVzcGFjZUlkcztcblx0XHRcdHJldHVybiAoXG5cdFx0XHRcdG5zIDwgMCB8fFxuXHRcdFx0XHQvLyBTcGVjaWFsIHBhZ2VzOyBTcGVjaWFsOlVwbG9hZCBpcyBoYW5kbGVkIGRpZmZlcmVudGx5XG5cdFx0XHRcdG5zID09PSAxMCB8fFxuXHRcdFx0XHQvLyBUZW1wbGF0ZXNcblx0XHRcdFx0bnMgPT09IDgyOCB8fFxuXHRcdFx0XHQvLyBNb2R1bGUgKEx1YSlcblx0XHRcdFx0bnMgPT09IDggfHxcblx0XHRcdFx0Ly8gTWVkaWFXaWtpXG5cdFx0XHRcdChucyA9PT0gNiAmJiAhY29uZi53Z0FydGljbGVJZCkgfHxcblx0XHRcdFx0Ly8gTm9uLWV4aXN0aW5nIGZpbGUgcGFnZXNcblx0XHRcdFx0KG5zID09PSAyICYmIC9cXC4oanN8Y3NzKSQvLnRlc3QoY29uZi53Z1RpdGxlKSkgfHxcblx0XHRcdFx0Ly8gVXNlciBzY3JpcHRzXG5cdFx0XHRcdChuc0lkcyAmJiAobnMgPT09IG5zSWRzLmNyZWF0b3IgfHwgbnMgPT09IG5zSWRzLnRpbWVkdGV4dCB8fCBucyA9PT0gbnNJZHMuaW5zdGl0dXRpb24pKVxuXHRcdFx0KTtcblx0XHR9LFxuXHRcdC8vIEEgcmVnZXhwIG1hdGNoaW5nIGEgdGVtcGxhdGVzIHVzZWQgdG8gbWFyayB1bmNhdGVnb3JpemVkIHBhZ2VzLCBpZiB5b3VyIHdpa2kgZG9lcyBoYXZlIHRoYXQuXG5cdFx0Ly8gSWYgbm90LCBzZXQgaXQgdG8gbnVsbC5cblx0XHR1bmNhdF9yZWdleHA6IC97e1xccypbVXVdbmNhdGVnb3JpemVkXFxzKltefV0qfX1cXHMqKDwhLS0uKj8tLT5cXHMqKT8vZyxcblx0XHQvLyBUaGUgaW1hZ2VzIHVzZWQgZm9yIHRoZSBsaXR0bGUgaW5kaWNhdGlvbiBpY29uLiBTaG91bGQgbm90IG5lZWQgY2hhbmdpbmcuXG5cdFx0ZXhpc3RzWWVzOiBweWVzLFxuXHRcdGV4aXN0c05vOiBwbm8sXG5cdFx0Ly8gYSBsaXN0IG9mIGNhdGVnb3JpZXMgd2hpY2ggY2FuIGJlIHJlbW92ZWQgYnkgcmVtb3ZpbmcgYSB0ZW1wbGF0ZVxuXHRcdC8vIGtleTogdGhlIGNhdGVnb3J5IHdpdGhvdXQgbmFtZXNwYWNlXG5cdFx0Ly8gdmFsdWU6IEEgcmVnZXhwIG1hdGNoaW5nIHRoZSB0ZW1wbGF0ZSBuYW1lLCBhZ2FpbiB3aXRob3V0IG5hbWVzcGFjZVxuXHRcdC8vIElmIHlvdSBkb24ndCBoYXZlIHRoaXMgYXQgeW91ciB3aWtpLCBvciBkb24ndCB3YW50IHRoaXMsIHNldCBpdCB0byBhbiBlbXB0eSBvYmplY3Qge30uXG5cdFx0dGVtcGxhdGVfY2F0ZWdvcmllczoge30sXG5cdFx0Ly8gT3ZlcnJpZGUgdGhlIGRlY2lzaW9uIG9mIHdoZXRoZXIgSG90Q2F0IHNob3VsZCBoZWxwIHVzZXJzIGJ5IGF1dG9tYXRpY2FsbHlcblx0XHQvLyBjYXBpdGFsaXNpbmcgdGhlIHRpdGxlIGluIHRoZSB1c2VyIGlucHV0IHRleHQgaWYgdGhlIHdpa2kgaGFzIGNhc2Utc2Vuc2l0aXZlIHBhZ2UgbmFtZXMuXG5cdFx0Ly8gQmFzaWNhbGx5LCB0aGlzIHdpbGwgbWFrZSBhbiBBUEkgcXVlcnkgdG8gY2hlY2sgdGhlIE1lZGlhV2lraSBjb25maWd1cmF0aW9uIGFuZCBIb3RDYXQgdGhlbiBzZXRzXG5cdFx0Ly8gdGhpcyB0byB0cnVlIGZvciBtb3N0IHdpa2lzLCBhbmQgdG8gZmFsc2Ugb24gV2lrdGlvbmFyeS5cblx0XHQvL1xuXHRcdC8vIFlvdSBjYW4gc2V0IHRoaXMgZGlyZWN0bHkgaWYgdGhlcmUgaXMgYSBwcm9ibGVtIHdpdGggaXQuIEZvciBleGFtcGxlLCBHZW9yZ2lhbiBXaWtpcGVkaWEgKGthd2lraSksXG5cdFx0Ly8gaXMga25vd24gdG8gaGF2ZSBkaWZmZXJlbnQgY2FwaXRhbGlzYXRpb24gbG9naWMgYmV0d2VlbiBNZWRpYVdpa2kgUEhQIGFuZCBKYXZhU2NyaXB0LiBBcyBzdWNoLCBhdXRvbWF0aWNcblx0XHQvLyBjYXNlIGNoYW5nZXMgaW4gSmF2YVNjcmlwdCBieSBIb3RDYXQgd291bGQgYmUgd3JvbmcuXG5cdFx0Y2FwaXRhbGl6ZVBhZ2VOYW1lczogbnVsbCxcblx0XHQvLyBJZiB1cGxvYWRfZGlzYWJsZWQgaXMgdHJ1ZSwgSG90Q2F0IHdpbGwgbm90IGJlIHVzZWQgb24gdGhlIFVwbG9hZCBmb3JtLlxuXHRcdHVwbG9hZF9kaXNhYmxlZDogZmFsc2UsXG5cdFx0Ly8gU2luZ2xlIHJlZ3VsYXIgZXhwcmVzc2lvbiBtYXRjaGluZyBibGFja2xpc3RlZCBjYXRlZ29yaWVzIHRoYXQgY2Fubm90IGJlIGNoYW5nZWQgb3Jcblx0XHQvLyBhZGRlZCB1c2luZyBIb3RDYXQuIEZvciBpbnN0YW5jZSAvXFxic3R1YnM/JC8gKGFueSBjYXRlZ29yeSBlbmRpbmcgd2l0aCB0aGUgd29yZCBcInN0dWJcIlxuXHRcdC8vIG9yIFwic3R1YnNcIiksIG9yIC8oXFxic3R1YnM/JCl8XFxibWFpbnRlbmFuY2VcXGIvIChzdHViIGNhdGVnb3JpZXMgYW5kIGFueSBjYXRlZ29yeSB3aXRoIHRoZVxuXHRcdC8vIHdvcmQgXCJtYWludGVuYW5jZVwiIGluIGl0cyB0aXRsZS5cblx0XHRibGFja2xpc3Q6IG51bGwsXG5cdFx0Ly8gU3R1ZmYgY2hhbmdlYWJsZSBieSB1c2Vyczpcblx0XHQvLyBCYWNrZ3JvdW5kIGZvciBjaGFuZ2VkIGNhdGVnb3JpZXMgaW4gbXVsdGktZWRpdCBtb2RlLiBEZWZhdWx0IGlzIGEgdmVyeSBsaWdodCBzYWxtb24gcGluay5cblx0XHRiZ19jaGFuZ2VkOiAnI0ZDQScsXG5cdFx0Ly8gSWYgdHJ1ZSwgSG90Q2F0IHdpbGwgbmV2ZXIgYXV0b21hdGljYWxseSBzdWJtaXQgY2hhbmdlcy4gSG90Q2F0IHdpbGwgb25seSBvcGVuIGFuIGVkaXQgcGFnZSB3aXRoXG5cdFx0Ly8gdGhlIGNoYW5nZXM7IHVzZXJzIG11c3QgYWx3YXlzIHNhdmUgZXhwbGljaXRseS5cblx0XHRub19hdXRvY29tbWl0OiBmYWxzZSxcblx0XHQvLyBJZiB0cnVlLCB0aGUgXCJjYXRlZ29yeSBkZWxldGlvblwiIGxpbmsgXCIoLSlcIiB3aWxsIG5ldmVyIHNhdmUgYXV0b21hdGljYWxseSBidXQgYWx3YXlzIHNob3cgYW5cblx0XHQvLyBlZGl0IHBhZ2Ugd2hlcmUgdGhlIHVzZXIgaGFzIHRvIHNhdmUgdGhlIGVkaXQgbWFudWFsbHkuIElzIGZhbHNlIGJ5IGRlZmF1bHQgYmVjYXVzZSB0aGF0J3MgdGhlXG5cdFx0Ly8gdHJhZGl0aW9uYWwgYmVoYXZpb3IuIFRoaXMgc2V0dGluZyBvdmVycmlkZXMgbm9fYXV0b2NvbW1pdCBmb3IgXCIoLSlcIiBsaW5rcy5cblx0XHRkZWxfbmVlZHNfZGlmZjogZmFsc2UsXG5cdFx0Ly8gVGltZSwgaW4gbWlsbGlzZWNvbmRzLCB0aGF0IEhvdENhdCB3YWl0cyBhZnRlciBhIGtleXN0cm9rZSBiZWZvcmUgbWFraW5nIGEgcmVxdWVzdCB0byB0aGVcblx0XHQvLyBzZXJ2ZXIgdG8gZ2V0IHN1Z2dlc3Rpb25zLlxuXHRcdHN1Z2dlc3RfZGVsYXk6IDEwMDAsXG5cdFx0Ly8gRGVmYXVsdCB3aWR0aCwgaW4gY2hhcmFjdGVycywgb2YgdGhlIHRleHQgaW5wdXQgZmllbGQuXG5cdFx0ZWRpdGJveF93aWR0aDogNDAsXG5cdFx0Ly8gT25lIG9mIHRoZSBlbmdpbmVfbmFtZXMgYWJvdmUsIHRvIGJlIHVzZWQgYXMgdGhlIGRlZmF1bHQgc3VnZ2VzdGlvbiBlbmdpbmUuXG5cdFx0c3VnZ2VzdGlvbnM6ICdjb21iaW5lZCcsXG5cdFx0Ly8gSWYgdHJ1ZSwgYWx3YXlzIHVzZSB0aGUgZGVmYXVsdCBlbmdpbmUsIGFuZCBuZXZlciBkaXNwbGF5IGEgc2VsZWN0b3IuXG5cdFx0Zml4ZWRfc2VhcmNoOiBmYWxzZSxcblx0XHQvLyBJZiBmYWxzZSwgZG8gbm90IGRpc3BsYXkgdGhlIFwidXBcIiBhbmQgXCJkb3duXCIgbGlua3Ncblx0XHR1c2VfdXBfZG93bjogdHJ1ZSxcblx0XHQvLyBEZWZhdWx0IGxpc3Qgc2l6ZVxuXHRcdGxpc3RTaXplOiAxMCxcblx0XHQvLyBJZiB0cnVlLCBzaW5nbGUgY2F0ZWdvcnkgY2hhbmdlcyBhcmUgbWFya2VkIGFzIG1pbm9yIGVkaXRzLiBJZiBmYWxzZSwgdGhleSdyZSBub3QuXG5cdFx0c2luZ2xlX21pbm9yOiB0cnVlLFxuXHRcdC8vIElmIHRydWUsIG5ldmVyIGFkZCBhIHBhZ2UgdG8gdGhlIHVzZXIncyB3YXRjaGxpc3QuIElmIGZhbHNlLCBwYWdlcyBnZXQgYWRkZWQgdG8gdGhlIHdhdGNobGlzdCBpZlxuXHRcdC8vIHRoZSB1c2VyIGhhcyB0aGUgXCJBZGQgcGFnZXMgSSBlZGl0IHRvIG15IHdhdGNobGlzdFwiIG9yIHRoZSBcIkFkZCBwYWdlcyBJIGNyZWF0ZSB0byBteSB3YXRjaGxpc3RcIlxuXHRcdC8vIG9wdGlvbnMgaW4gaGlzIG9yIGhlciBwcmVmZXJlbmNlcyBzZXQuXG5cdFx0ZG9udF9hZGRfdG9fd2F0Y2hsaXN0OiBmYWxzZSxcblx0XHRzaG9ydGN1dHM6IG51bGwsXG5cdFx0YWRkU2hvcnRjdXRzOiAobWFwKSA9PiB7XG5cdFx0XHRpZiAoIW1hcCkge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cdFx0XHR3aW5kb3cuSG90Q2F0LnNob3J0Y3V0cyB8fD0ge307XG5cdFx0XHRmb3IgKGxldCBrIGluIG1hcCkge1xuXHRcdFx0XHRpZiAoIU9iamVjdC5oYXNPd24obWFwLCBrKSB8fCB0eXBlb2YgayAhPT0gJ3N0cmluZycpIHtcblx0XHRcdFx0XHRjb250aW51ZTtcblx0XHRcdFx0fVxuXHRcdFx0XHRsZXQgdiA9IG1hcFtrXTtcblx0XHRcdFx0aWYgKHR5cGVvZiB2ICE9PSAnc3RyaW5nJykge1xuXHRcdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGsgPSBrLnRyaW0oKTtcblx0XHRcdFx0diA9IHYudHJpbSgpO1xuXHRcdFx0XHRpZiAoay5sZW5ndGggPT09IDAgfHwgdi5sZW5ndGggPT09IDApIHtcblx0XHRcdFx0XHRjb250aW51ZTtcblx0XHRcdFx0fVxuXHRcdFx0XHR3aW5kb3cuSG90Q2F0LnNob3J0Y3V0c1trXSA9IHY7XG5cdFx0XHR9XG5cdFx0fSxcblx0fTtcblx0Y29uc3QgSEMgPSB3aW5kb3cuSG90Q2F0O1xuXHQvLyBNb3JlIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LiBXZSBoYXZlIGEgZmV3IHBsYWNlcyB3aGVyZSB3ZSB0ZXN0IGZvciB0aGUgYnJvd3Nlcjogb25jZSBmb3Jcblx0Ly8gU2FmYXJpIDwgMy4wLCBhbmQgdHdpY2UgZm9yIFdlYktpdCAoQ2hyb21lIG9yIFNhZmFyaSwgYW55IHZlcnNpb25zKVxuXHRjb25zdCB1YSA9IG5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKTtcblx0Y29uc3QgaXNfd2Via2l0ID0gL2FwcGxld2Via2l0XFwvXFxkKy8udGVzdCh1YSkgJiYgIXVhLmluY2x1ZGVzKCdzcG9vZmVyJyk7XG5cdGxldCBjYXRfcHJlZml4ID0gbnVsbDtcblx0bGV0IG5vU3VnZ2VzdGlvbnMgPSBmYWxzZTtcblx0Ly8gTm8gZnVydGhlciBjaGFuZ2VzIHNob3VsZCBiZSBuZWNlc3NhcnkgaGVyZS5cblx0Ly8gVGhlIGZvbGxvd2luZyByZWd1bGFyIGV4cHJlc3Npb24gc3RyaW5ncyBhcmUgdXNlZCB3aGVuIHNlYXJjaGluZyBmb3IgY2F0ZWdvcmllcyBpbiB3aWtpdGV4dC5cblx0Y29uc3Qgd2lraVRleHRCbGFuayA9IFN0cmluZy5yYXdgW1xcdCBfXFx4QTBcXHUxNjgwXFx1MTgwRVxcdTIwMDAtXFx1MjAwQVxcdTIwMjhcXHUyMDI5XFx1MjAyRlxcdTIwNUZcXHUzMDAwXStgO1xuXHRjb25zdCB3aWtpVGV4dEJsYW5rUkUgPSBuZXcgUmVnRXhwKHdpa2lUZXh0QmxhbmssICdnJyk7XG5cdC8vIFJlZ2V4cCBmb3IgaGFuZGxpbmcgYmxhbmtzIGluc2lkZSBhIGNhdGVnb3J5IHRpdGxlIG9yIG5hbWVzcGFjZSBuYW1lLlxuXHQvLyBTZWUge0BsaW5rIGh0dHA6Ly9zdm4ud2lraW1lZGlhLm9yZy92aWV3dmMvbWVkaWF3aWtpL3RydW5rL3BoYXNlMy9pbmNsdWRlcy9UaXRsZS5waHA/cmV2aXNpb249MTA0MDUxJnZpZXc9bWFya3VwI2wyNzIyfVxuXHQvLyBTZWUgYWxzbyB7QGxpbmsgaHR0cDovL3d3dy5maWxlZm9ybWF0LmluZm8vaW5mby91bmljb2RlL2NhdGVnb3J5L1pzL2xpc3QuaHRtfVxuXHQvLyAgIE1lZGlhV2lraSBjb2xsYXBzZXMgc2V2ZXJhbCBjb250aWd1b3VzIGJsYW5rcyBpbnNpZGUgYSBwYWdlIHRpdGxlIHRvIG9uZSBzaW5nbGUgYmxhbmsuIEl0IGFsc28gcmVwbGFjZSBhXG5cdC8vIG51bWJlciBvZiBzcGVjaWFsIHdoaXRlc3BhY2UgY2hhcmFjdGVycyBieSBzaW1wbGUgYmxhbmtzLiBBbmQgZmluYWxseSwgYmxhbmtzIGFyZSB0cmVhdGVkIGFzIHVuZGVyc2NvcmVzLlxuXHQvLyBUaGVyZWZvcmUsIHdoZW4gbG9va2luZyBmb3IgcGFnZSB0aXRsZXMgaW4gd2lraXRleHQsIHdlIG11c3QgaGFuZGxlIGFsbCB0aGVzZSBjYXNlcy5cblx0Ly8gICBOb3RlOiB3ZSBfZG9fIGluY2x1ZGUgdGhlIGhvcml6b250YWwgdGFiIGluIHRoZSBhYm92ZSBsaXN0LCBldmVuIHRob3VnaCB0aGUgTWVkaWFXaWtpIHNvZnR3YXJlIGZvciBzb21lIHJlYXNvblxuXHQvLyBhcHBlYXJzIHRvIG5vdCBoYW5kbGUgaXQuIFRoZSB6ZXJvLXdpZHRoIHNwYWNlIFxcdTIwMEIgaXMgX25vdF8gaGFuZGxlZCBhcyBhIHNwYWNlIGluc2lkZSB0aXRsZXMgYnkgTVcuXG5cdGNvbnN0IHdpa2lUZXh0QmxhbmtPckJpZGkgPSBTdHJpbmcucmF3YFtcXHQgX1xceEEwXFx1MTY4MFxcdTE4MEVcXHUyMDAwLVxcdTIwMEJcXHUyMDBFXFx1MjAwRlxcdTIwMjgtXFx1MjAyRlxcdTIwNUZcXHUzMDAwXSpgO1xuXHQvLyBXaGl0ZXNwYWNlIHJlZ2V4cCBmb3IgaGFuZGxpbmcgd2hpdGVzcGFjZSBiZXR3ZWVuIGxpbmsgY29tcG9uZW50cy4gSW5jbHVkaW5nIHRoZSBob3Jpem9udGFsIHRhYiwgYnV0IG5vdCBcXG5cXHJcXGZcXHY6XG5cdC8vIGEgbGluayBtdXN0IGJlIG9uIG9uZSBzaW5nbGUgbGluZS5cblx0Ly8gICBNZWRpYVdpa2kgYWxzbyByZW1vdmVzIFVuaWNvZGUgYmlkaSBvdmVycmlkZSBjaGFyYWN0ZXJzIGluIHBhZ2UgdGl0bGVzIChhbmQgbmFtZXNwYWNlIG5hbWVzKSBjb21wbGV0ZWx5LlxuXHQvLyBUaGlzIGlzICpub3QqIGhhbmRsZWQsIGFzIGl0IHdvdWxkIHJlcXVpcmUgdXMgdG8gYWxsb3cgYW55IG9mIFtcXHUyMDBFXFx1MjAwRlxcdTIwMkEtXFx1MjAyRV0gYmV0d2VlbiBhbnkgdHdvXG5cdC8vIGNoYXJhY3RlcnMgaW5zaWRlIGEgY2F0ZWdvcnkgbGluay4gSXQgX2NvdWxkXyBiZSBkb25lIHRob3VnaC4uLiBXZSBfZG9fIGhhbmRsZSBzdHJhbmdlIHNwYWNlcywgaW5jbHVkaW5nIHRoZVxuXHQvLyB6ZXJvLXdpZHRoIHNwYWNlIFxcdTIwMEIsIGFuZCBiaWRpIG92ZXJyaWRlcyBiZXR3ZWVuIHRoZSBjb21wb25lbnRzIG9mIGEgY2F0ZWdvcnkgbGluayAoYWRqYWNlbnQgdG8gdGhlIGNvbG9uLFxuXHQvLyBvciBhZGphY2VudCB0byBhbmQgaW5zaWRlIG9mIFwiW1tcIiBhbmQgXCJdXVwiKS5cblx0Ly8gRmlyc3QgYXV0by1sb2NhbGl6ZSB0aGUgcmVnZXhwcyBmb3IgdGhlIGNhdGVnb3J5IGFuZCB0aGUgdGVtcGxhdGUgbmFtZXNwYWNlcy5cblx0Y29uc3QgZm9ybWF0dGVkTmFtZXNwYWNlcyA9IGNvbmYud2dGb3JtYXR0ZWROYW1lc3BhY2VzO1xuXHRjb25zdCBuYW1lc3BhY2VJZHMgPSBjb25mLndnTmFtZXNwYWNlSWRzO1xuXHRjb25zdCBhdXRvTG9jYWxpemUgPSAobmFtZXNwYWNlTnVtYmVyLCBmYWxsYmFjaykgPT4ge1xuXHRcdGNvbnN0IGNyZWF0ZVJlZ2V4cFN0ciA9IChuYW1lKSA9PiB7XG5cdFx0XHRpZiAoIW5hbWUgfHwgbmFtZS5sZW5ndGggPT09IDApIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdFx0bGV0IHJlZ2V4X25hbWUgPSAnJztcblx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgbmFtZS5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRjb25zdCBpbml0aWFsID0gbmFtZS5jaGFyQXQoaSk7XG5cdFx0XHRcdGNvbnN0IGxsID0gaW5pdGlhbC50b0xvd2VyQ2FzZSgpO1xuXHRcdFx0XHRjb25zdCB1bCA9IGluaXRpYWwudG9VcHBlckNhc2UoKTtcblx0XHRcdFx0cmVnZXhfbmFtZSArPSBsbCA9PT0gdWwgPyBpbml0aWFsIDogYFske2xsfSR7dWx9XWA7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gcmVnZXhfbmFtZS5yZXBsYWNlKC8oWyQoKSorLj9cXFxcXl0pL2csIFN0cmluZy5yYXdgXFwkMWApLnJlcGxhY2Uod2lraVRleHRCbGFua1JFLCB3aWtpVGV4dEJsYW5rKTtcblx0XHR9O1xuXHRcdGZhbGxiYWNrID0gZmFsbGJhY2sudG9Mb3dlckNhc2UoKTtcblx0XHRjb25zdCBjYW5vbmljYWwgPSBmb3JtYXR0ZWROYW1lc3BhY2VzW1N0cmluZyhuYW1lc3BhY2VOdW1iZXIpXS50b0xvd2VyQ2FzZSgpO1xuXHRcdGxldCByZWdleHAgPSBjcmVhdGVSZWdleHBTdHIoY2Fub25pY2FsKTtcblx0XHRpZiAoZmFsbGJhY2sgJiYgY2Fub25pY2FsICE9PSBmYWxsYmFjaykge1xuXHRcdFx0cmVnZXhwICs9IGB8JHtjcmVhdGVSZWdleHBTdHIoZmFsbGJhY2spfWA7XG5cdFx0fVxuXHRcdGlmIChuYW1lc3BhY2VJZHMpIHtcblx0XHRcdGZvciAoY29uc3QgY2F0X25hbWUgaW4gbmFtZXNwYWNlSWRzKSB7XG5cdFx0XHRcdGlmIChcblx0XHRcdFx0XHR0eXBlb2YgY2F0X25hbWUgPT09ICdzdHJpbmcnICYmXG5cdFx0XHRcdFx0Y2F0X25hbWUudG9Mb3dlckNhc2UoKSAhPT0gY2Fub25pY2FsICYmXG5cdFx0XHRcdFx0Y2F0X25hbWUudG9Mb3dlckNhc2UoKSAhPT0gZmFsbGJhY2sgJiZcblx0XHRcdFx0XHRuYW1lc3BhY2VJZHNbY2F0X25hbWVdID09PSBuYW1lc3BhY2VOdW1iZXJcblx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0cmVnZXhwICs9IGB8JHtjcmVhdGVSZWdleHBTdHIoY2F0X25hbWUpfWA7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0cmV0dXJuIHJlZ2V4cDtcblx0fTtcblx0SEMuY2F0ZWdvcnlfY2Fub25pY2FsID0gZm9ybWF0dGVkTmFtZXNwYWNlc1snMTQnXTtcblx0SEMuY2F0ZWdvcnlfcmVnZXhwID0gYXV0b0xvY2FsaXplKDE0LCAnY2F0ZWdvcnknKTtcblx0aWYgKGZvcm1hdHRlZE5hbWVzcGFjZXNbJzEwJ10pIHtcblx0XHRIQy50ZW1wbGF0ZV9yZWdleHAgPSBhdXRvTG9jYWxpemUoMTAsICd0ZW1wbGF0ZScpO1xuXHR9XG5cdC8vIFV0aWxpdHkgZnVuY3Rpb25zLiBZZXMsIHRoaXMgZHVwbGljYXRlcyBzb21lIGZ1bmN0aW9uYWxpdHkgdGhhdCBhbHNvIGV4aXN0cyBpbiBvdGhlciBwbGFjZXMsIGJ1dFxuXHQvLyB0byBrZWVwIHRoaXMgd2hvbGUgc3R1ZmYgaW4gYSBzaW5nbGUgZmlsZSBub3QgZGVwZW5kaW5nIG9uIGFueSBvdGhlciBvbi13aWtpIEphdmFTY3JpcHRzLCB3ZSByZS1kb1xuXHQvLyB0aGVzZSBmZXcgb3BlcmF0aW9ucyBoZXJlLlxuXHRjb25zdCBtYWtlID0gKGFyZywgbGl0ZXJhbCkgPT4ge1xuXHRcdGlmICghYXJnKSB7XG5cdFx0XHRyZXR1cm4gbnVsbDtcblx0XHR9XG5cdFx0cmV0dXJuIGxpdGVyYWwgPyBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShhcmcpIDogZG9jdW1lbnQuY3JlYXRlRWxlbWVudChhcmcpO1xuXHR9O1xuXHRjb25zdCBwYXJhbSA9IChuYW1lLCB1cmkpID0+IHtcblx0XHR1cmkgfHw9IGRvY3VtZW50LmxvY2F0aW9uLmhyZWY7XG5cdFx0Y29uc3QgcmUgPSBuZXcgUmVnRXhwKGBbJj9dJHtuYW1lfT0oW14mI10qKWApO1xuXHRcdGNvbnN0IG0gPSByZS5leGVjKHVyaSk7XG5cdFx0aWYgKG0gJiYgbS5sZW5ndGggPiAxKSB7XG5cdFx0XHRyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KG1bMV0pO1xuXHRcdH1cblx0XHRyZXR1cm4gbnVsbDtcblx0fTtcblx0Y29uc3QgdGl0bGUgPSAoaHJlZikgPT4ge1xuXHRcdGlmICghaHJlZikge1xuXHRcdFx0cmV0dXJuIG51bGw7XG5cdFx0fVxuXHRcdGNvbnN0IHNjcmlwdCA9IGAke2NvbmYud2dTY3JpcHR9P2A7XG5cdFx0aWYgKFxuXHRcdFx0aHJlZi5pbmRleE9mKHNjcmlwdCkgPT09IDAgfHxcblx0XHRcdGhyZWYuaW5kZXhPZihjb25mLndnU2VydmVyICsgc2NyaXB0KSA9PT0gMCB8fFxuXHRcdFx0KGNvbmYud2dTZXJ2ZXIuc2xpY2UoMCwgMikgPT09ICcvLycgJiZcblx0XHRcdFx0aHJlZi5pbmRleE9mKGRvY3VtZW50LmxvY2F0aW9uLnByb3RvY29sICsgY29uZi53Z1NlcnZlciArIHNjcmlwdCkgPT09IDApXG5cdFx0KSB7XG5cdFx0XHQvLyBocmVmPVwiL2luZGV4LnBocD90aXRsZT0uLi5cIlxuXHRcdFx0cmV0dXJuIHBhcmFtKCd0aXRsZScsIGhyZWYpO1xuXHRcdH1cblx0XHQvLyBocmVmPVwiL3dpa2kvLi4uXCJcblx0XHRsZXQgcHJlZml4ID0gY29uZi53Z0FydGljbGVQYXRoLnJlcGxhY2UoJyQxJywgJycpO1xuXHRcdGlmIChocmVmLmluZGV4T2YocHJlZml4KSkge1xuXHRcdFx0cHJlZml4ID0gY29uZi53Z1NlcnZlciArIHByZWZpeDtcblx0XHR9IC8vIEZ1bGx5IGV4cGFuZGVkIFVSTD9cblx0XHRpZiAoaHJlZi5pbmRleE9mKHByZWZpeCkgJiYgcHJlZml4LnNsaWNlKDAsIDIpID09PSAnLy8nKSB7XG5cdFx0XHRwcmVmaXggPSBkb2N1bWVudC5sb2NhdGlvbi5wcm90b2NvbCArIHByZWZpeDtcblx0XHR9IC8vIFByb3RvY29sLXJlbGF0aXZlIHdnU2VydmVyP1xuXHRcdGlmIChocmVmLmluZGV4T2YocHJlZml4KSA9PT0gMCkge1xuXHRcdFx0cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChocmVmLnNsaWNlKHByZWZpeC5sZW5ndGgpKTtcblx0XHR9XG5cdFx0cmV0dXJuIG51bGw7XG5cdH07XG5cdGNvbnN0IGhhc0NsYXNzID0gKHtjbGFzc05hbWV9LCBuYW1lKSA9PiB7XG5cdFx0cmV0dXJuIGAgJHtjbGFzc05hbWV9IGAuaW5jbHVkZXMoYCAke25hbWV9IGApO1xuXHR9O1xuXHRjb25zdCBjYXBpdGFsaXplID0gKHN0cikgPT4ge1xuXHRcdGlmICghc3RyIHx8IHN0ci5sZW5ndGggPT09IDApIHtcblx0XHRcdHJldHVybiBzdHI7XG5cdFx0fVxuXHRcdHJldHVybiBzdHIuc2xpY2UoMCwgMSkudG9VcHBlckNhc2UoKSArIHN0ci5zbGljZSgxKTtcblx0fTtcblx0Y29uc3Qgd2lraVBhZ2VQYXRoID0gKHBhZ2VOYW1lKSA9PiB7XG5cdFx0cmV0dXJuIGNvbmYud2dBcnRpY2xlUGF0aC5yZXBsYWNlKCckMScsIGVuY29kZVVSSUNvbXBvbmVudChwYWdlTmFtZSkucmVwbGFjZSgvJTNBL2csICc6JykucmVwbGFjZSgvJTJGL2csICcvJykpO1xuXHR9O1xuXHRjb25zdCBlc2NhcGVSRSA9IChzdHIpID0+IHtcblx0XHRyZXR1cm4gc3RyLnJlcGxhY2UoLyhbJCgpKisuP1tcXFxcXFxdXl0pL2csIFN0cmluZy5yYXdgXFwkMWApO1xuXHR9O1xuXHRjb25zdCBzdWJzdGl0dXRlRmFjdG9yeSA9IChvcHRpb25zKSA9PiB7XG5cdFx0b3B0aW9ucyB8fD0ge307XG5cdFx0Y29uc3QgbGVhZCA9IG9wdGlvbnMuaW5kaWNhdG9yIHx8ICckJztcblx0XHRjb25zdCBpbmRpY2F0b3IgPSBlc2NhcGVSRShsZWFkKTtcblx0XHRjb25zdCBsYnJhY2UgPSBlc2NhcGVSRShvcHRpb25zLmxicmFjZSB8fCAneycpO1xuXHRcdGNvbnN0IHJicmFjZSA9IGVzY2FwZVJFKG9wdGlvbnMucmJyYWNlIHx8ICd9Jyk7XG5cdFx0Y29uc3QgcmUgPSBuZXcgUmVnRXhwKFxuXHRcdFx0Ly8gJCRcblx0XHRcdGAoPzoke2luZGljYXRvcn0oJHtpbmRpY2F0b3J9KSl8YCArXG5cdFx0XHRcdC8vICQwLCAkMVxuXHRcdFx0XHRgKD86JHtpbmRpY2F0b3J9KFxcXFxkKykpfGAgK1xuXHRcdFx0XHQvLyAke2tleX1cblx0XHRcdFx0YCg/OiR7aW5kaWNhdG9yfSg/OiR7bGJyYWNlfShbXiR7bGJyYWNlfSR7cmJyYWNlfV0rKSR7cmJyYWNlfSkpfGAgK1xuXHRcdFx0XHQvLyAka2V5IChvbmx5IGlmIGZpcnN0IGNoYXIgYWZ0ZXIgJCBpcyBub3QgJCwgZGlnaXQsIG9yIHsgKVxuXHRcdFx0XHRgKD86JHtpbmRpY2F0b3J9KD8hKD86WyR7aW5kaWNhdG9yfSR7bGJyYWNlfV18XFxcXGQpKShcXFxcUys/KVxcXFxiKWAsXG5cdFx0XHQnZydcblx0XHQpO1xuXHRcdC8vIFJlcGxhY2UgJDEsICQyLCBvciAke2tleTF9LCAke2tleTJ9LCBvciAka2V5MSwgJGtleTIgYnkgdmFsdWVzIGZyb20gbWFwLiAkJCBpcyByZXBsYWNlZCBieSBhIHNpbmdsZSAkLlxuXHRcdHJldHVybiAoc3RyLCBtYXApID0+IHtcblx0XHRcdGlmICghbWFwKSB7XG5cdFx0XHRcdHJldHVybiBzdHI7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gc3RyLnJlcGxhY2UocmUsIChtYXRjaCwgcHJlZml4LCBpZHgsIGtleSwgYWxwaGEpID0+IHtcblx0XHRcdFx0aWYgKHByZWZpeCA9PT0gbGVhZCkge1xuXHRcdFx0XHRcdHJldHVybiBsZWFkO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGNvbnN0IGsgPSBhbHBoYSB8fCBrZXkgfHwgaWR4O1xuXHRcdFx0XHRjb25zdCByZXBsYWNlbWVudCA9IHR5cGVvZiBtYXBba10gPT09ICdmdW5jdGlvbicgPyBtYXBba10obWF0Y2gsIGspIDogbWFwW2tdO1xuXHRcdFx0XHRyZXR1cm4gdHlwZW9mIHJlcGxhY2VtZW50ID09PSAnc3RyaW5nJyA/IHJlcGxhY2VtZW50IDogcmVwbGFjZW1lbnQgfHwgbWF0Y2g7XG5cdFx0XHR9KTtcblx0XHR9O1xuXHR9O1xuXHRjb25zdCByZXBsYWNlU2hvcnRjdXRzID0gKCgpID0+IHtcblx0XHRjb25zdCByZXBsYWNlSGFzaCA9IHN1YnN0aXR1dGVGYWN0b3J5KHtcblx0XHRcdGluZGljYXRvcjogJyMnLFxuXHRcdFx0bGJyYWNlOiAnWycsXG5cdFx0XHRyYnJhY2U6ICddJyxcblx0XHR9KTtcblx0XHRyZXR1cm4gKHN0ciwgbWFwKSA9PiB7XG5cdFx0XHRjb25zdCBzID0gcmVwbGFjZUhhc2goc3RyLCBtYXApO1xuXHRcdFx0cmV0dXJuIEhDLmNhcGl0YWxpemVQYWdlTmFtZXMgPyBjYXBpdGFsaXplKHMpIDogcztcblx0XHR9O1xuXHR9KSgpO1xuXHQvLyBUZXh0IG1vZGlmaWNhdGlvblxuXHRjb25zdCBmaW5kQ2F0c1JFID0gbmV3IFJlZ0V4cChcblx0XHRgXFxcXFtcXFxcWyR7d2lraVRleHRCbGFua09yQmlkaX0oPzoke0hDLmNhdGVnb3J5X3JlZ2V4cH0pJHt3aWtpVGV4dEJsYW5rT3JCaWRpfTpbXlxcXFxdXStcXFxcXVxcXFxdYCxcblx0XHQnZydcblx0KTtcblx0Y29uc3QgcmVwbGFjZUJ5QmxhbmtzID0gKG1hdGNoKSA9PiB7XG5cdFx0cmV0dXJuIG1hdGNoLnJlcGxhY2UoLyhcXHN8XFxTKS9nLCAnICcpO1xuXHR9OyAvLyAvLi8gZG9lc24ndCBtYXRjaCBsaW5lYnJlYWtzLiAvKFxcc3xcXFMpLyBkb2VzLlxuXHRjb25zdCBmaW5kX2NhdGVnb3J5ID0gKHdpa2l0ZXh0LCBjYXRlZ29yeSwgb25jZSkgPT4ge1xuXHRcdGxldCBjYXRfcmVnZXggPSBudWxsO1xuXHRcdGlmIChIQy50ZW1wbGF0ZV9jYXRlZ29yaWVzW2NhdGVnb3J5XSkge1xuXHRcdFx0Y2F0X3JlZ2V4ID0gbmV3IFJlZ0V4cChcblx0XHRcdFx0YFxcXFx7XFxcXHske3dpa2lUZXh0QmxhbmtPckJpZGl9KCR7SEMudGVtcGxhdGVfcmVnZXhwfSg/PSR7d2lraVRleHRCbGFua09yQmlkaX06KSk/JHt3aWtpVGV4dEJsYW5rT3JCaWRpfSg/OiR7SEMudGVtcGxhdGVfY2F0ZWdvcmllc1tjYXRlZ29yeV19KSR7d2lraVRleHRCbGFua09yQmlkaX0oXFxcXHwuKj8pP1xcXFx9XFxcXH1gLFxuXHRcdFx0XHQnZydcblx0XHRcdCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGNvbnN0IGNhdF9uYW1lID0gZXNjYXBlUkUoY2F0ZWdvcnkpO1xuXHRcdFx0Y29uc3QgaW5pdGlhbCA9IGNhdF9uYW1lLnNsaWNlKDAsIDEpO1xuXHRcdFx0Y2F0X3JlZ2V4ID0gbmV3IFJlZ0V4cChcblx0XHRcdFx0YFxcXFxbXFxcXFske3dpa2lUZXh0QmxhbmtPckJpZGl9KCR7SEMuY2F0ZWdvcnlfcmVnZXhwfSkke3dpa2lUZXh0QmxhbmtPckJpZGl9OiR7d2lraVRleHRCbGFua09yQmlkaX0ke1xuXHRcdFx0XHRcdGluaXRpYWwgPT09ICdcXFxcJyB8fCAhSEMuY2FwaXRhbGl6ZVBhZ2VOYW1lc1xuXHRcdFx0XHRcdFx0PyBpbml0aWFsXG5cdFx0XHRcdFx0XHQ6IGBbJHtpbml0aWFsLnRvVXBwZXJDYXNlKCl9JHtpbml0aWFsLnRvTG93ZXJDYXNlKCl9XWBcblx0XHRcdFx0fSR7Y2F0X25hbWUuc2xpY2UoMSkucmVwbGFjZSh3aWtpVGV4dEJsYW5rUkUsIHdpa2lUZXh0QmxhbmspfSR7d2lraVRleHRCbGFua09yQmlkaX0oXFxcXHwuKj8pP1xcXFxdXFxcXF1gLFxuXHRcdFx0XHQnZydcblx0XHRcdCk7XG5cdFx0fVxuXHRcdGlmIChvbmNlKSB7XG5cdFx0XHRyZXR1cm4gY2F0X3JlZ2V4LmV4ZWMod2lraXRleHQpO1xuXHRcdH1cblx0XHRjb25zdCBub3dpa2lSZWdleCA9IG5ldyBSZWdFeHAoJzxubycuY29uY2F0KCd3aWtpPicsIFN0cmluZy5yYXdgKFxcc3xcXFMpKj88L25vYCwgJ3dpa2knLCAnPicpLCAnZycpO1xuXHRcdGNvbnN0IGNvcGllZHRleHQgPSB3aWtpdGV4dC5yZXBsYWNlKC88IS0tKFxcc3xcXFMpKj8tLT4vZywgcmVwbGFjZUJ5QmxhbmtzKS5yZXBsYWNlKG5vd2lraVJlZ2V4LCByZXBsYWNlQnlCbGFua3MpO1xuXHRcdGNvbnN0IHJlc3VsdCA9IFtdO1xuXHRcdGxldCBjdXJyX21hdGNoID0gbnVsbDtcblx0XHR3aGlsZSAoKGN1cnJfbWF0Y2ggPSBjYXRfcmVnZXguZXhlYyhjb3BpZWR0ZXh0KSkgIT09IG51bGwpIHtcblx0XHRcdHJlc3VsdFtyZXN1bHQubGVuZ3RoXSA9IHtcblx0XHRcdFx0bWF0Y2g6IGN1cnJfbWF0Y2gsXG5cdFx0XHR9O1xuXHRcdH1cblx0XHRyZXN1bHQucmUgPSBjYXRfcmVnZXg7XG5cdFx0cmV0dXJuIHJlc3VsdDsgLy8gQW4gYXJyYXkgY29udGFpbmluZyBhbGwgbWF0Y2hlcywgd2l0aCBwb3NpdGlvbnMsIGluIHJlc3VsdFsgaSBdLm1hdGNoXG5cdH07XG5cdGxldCBpbnRlcmxhbmd1YWdlUkUgPSBudWxsO1xuXHRjb25zdCBjaGFuZ2VfY2F0ZWdvcnkgPSAod2lraXRleHQsIHRvUmVtb3ZlLCB0b0FkZCwga2V5LCBpc19oaWRkZW4pID0+IHtcblx0XHRjb25zdCBmaW5kX2luc2VydGlvbnBvaW50ID0gKF93aWtpdGV4dCkgPT4ge1xuXHRcdFx0Y29uc3Qgbm93aWtpUmVnZXggPSBuZXcgUmVnRXhwKCc8bm8nLmNvbmNhdCgnd2lraT4nLCBTdHJpbmcucmF3YChcXHN8XFxTKSo/PC9ub2AsICd3aWtpJywgJz4nKSwgJ2cnKTtcblx0XHRcdGNvbnN0IGNvcGllZHRleHQgPSBfd2lraXRleHRcblx0XHRcdFx0LnJlcGxhY2UoLzwhLS0oXFxzfFxcUykqPy0tPi9nLCByZXBsYWNlQnlCbGFua3MpXG5cdFx0XHRcdC5yZXBsYWNlKG5vd2lraVJlZ2V4LCByZXBsYWNlQnlCbGFua3MpO1xuXHRcdFx0Ly8gU2VhcmNoIGluIGNvcGllZHRleHQgdG8gYXZvaWQgdGhhdCB3ZSBpbnNlcnQgaW5zaWRlIGFuIEhUTUwgY29tbWVudCBvciBhIG5vd2lraSBcImVsZW1lbnRcIi5cblx0XHRcdGxldCBpbmRleCA9IC0xO1xuXHRcdFx0ZmluZENhdHNSRS5sYXN0SW5kZXggPSAwO1xuXHRcdFx0d2hpbGUgKGZpbmRDYXRzUkUuZXhlYyhjb3BpZWR0ZXh0KSAhPT0gbnVsbCkge1xuXHRcdFx0XHRpbmRleCA9IGZpbmRDYXRzUkUubGFzdEluZGV4O1xuXHRcdFx0fVxuXHRcdFx0aWYgKGluZGV4IDwgMCkge1xuXHRcdFx0XHQvLyBGaW5kIHRoZSBpbmRleCBvZiB0aGUgZmlyc3QgaW50ZXJsYW5ndWFnZSBsaW5rLi4uXG5cdFx0XHRcdGxldCBtYXRjaCA9IG51bGw7XG5cdFx0XHRcdGlmIChpbnRlcmxhbmd1YWdlUkUpIHtcblx0XHRcdFx0XHRtYXRjaCA9IGludGVybGFuZ3VhZ2VSRS5leGVjKGNvcGllZHRleHQpO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdC8vIEFwcHJveGltYXRpb24gd2l0aG91dCBBUEk6IGludGVybGFuZ3VhZ2UgbGlua3Mgc3RhcnQgd2l0aCAyIHRvIDMgbG93ZXIgY2FzZSBsZXR0ZXJzLCBvcHRpb25hbGx5IGZvbGxvd2VkIGJ5XG5cdFx0XHRcdFx0Ly8gYSBzZXF1ZW5jZSBvZiBncm91cHMgY29uc2lzdGluZyBvZiBhIGRhc2ggZm9sbG93ZWQgYnkgb25lIG9yIG1vcmUgbG93ZXIgY2FzZSBsZXR0ZXJzLiBFeGNlcHRpb25zIGFyZSBcInNpbXBsZVwiXG5cdFx0XHRcdFx0Ly8gYW5kIFwidG9raXBvbmFcIi5cblx0XHRcdFx0XHRtYXRjaCA9IC8oKF58XFxuXFxyPykoXFxbXFxbXFxzKigoW2Etel17MiwzfSgtW2Etel0rKSopfHNpbXBsZXx0b2tpcG9uYSlcXHMqOlteXFxdXStdXVxccyopKSskLy5leGVjKFxuXHRcdFx0XHRcdFx0Y29waWVkdGV4dFxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKG1hdGNoKSB7XG5cdFx0XHRcdFx0KHtpbmRleH0gPSBtYXRjaCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0XHRpZHg6IGluZGV4LFxuXHRcdFx0XHRcdG9uQ2F0OiBmYWxzZSxcblx0XHRcdFx0fTtcblx0XHRcdH1cblx0XHRcdHJldHVybiB7XG5cdFx0XHRcdGlkeDogaW5kZXgsXG5cdFx0XHRcdG9uQ2F0OiBpbmRleCA+PSAwLFxuXHRcdFx0fTtcblx0XHR9O1xuXHRcdGNvbnN0IHN1bW1hcnkgPSBbXTtcblx0XHRjb25zdCBuYW1lU3BhY2UgPSBIQy5jYXRlZ29yeV9jYW5vbmljYWw7XG5cdFx0Y29uc3QgLy8gUG9zaXRpb24gb2YgcmVtb3ZlZCBjYXRlZ29yeTtcblx0XHRcdGtleUNoYW5nZSA9IHRvUmVtb3ZlICYmIHRvQWRkICYmIHRvUmVtb3ZlID09PSB0b0FkZCAmJiB0b0FkZC5sZW5ndGggPiAwO1xuXHRcdGxldCBtYXRjaGVzO1xuXHRcdGxldCBjYXRfcG9pbnQgPSAtMTtcblx0XHRrZXkgJiY9IGB8JHtrZXl9YDtcblx0XHQvLyBSZW1vdmVcblx0XHRpZiAodG9SZW1vdmUgJiYgdG9SZW1vdmUubGVuZ3RoID4gMCkge1xuXHRcdFx0bWF0Y2hlcyA9IGZpbmRfY2F0ZWdvcnkod2lraXRleHQsIHRvUmVtb3ZlKTtcblx0XHRcdGlmICghbWF0Y2hlcyB8fCBtYXRjaGVzLmxlbmd0aCA9PT0gMCkge1xuXHRcdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRcdHRleHQ6IHdpa2l0ZXh0LFxuXHRcdFx0XHRcdHN1bW1hcnksXG5cdFx0XHRcdFx0ZXJyb3I6IGdldE1lc3NhZ2UoJ21lc3NhZ2VzLWNhdF9ub3RGb3VuZCcsIHRvUmVtb3ZlKSxcblx0XHRcdFx0fTtcblx0XHRcdH1cblx0XHRcdGxldCBiZWZvcmUgPSB3aWtpdGV4dC5zbGljZSgwLCBNYXRoLm1heCgwLCBtYXRjaGVzWzBdLm1hdGNoLmluZGV4KSk7XG5cdFx0XHRsZXQgYWZ0ZXIgPSB3aWtpdGV4dC5zbGljZShNYXRoLm1heCgwLCBtYXRjaGVzWzBdLm1hdGNoLmluZGV4ICsgbWF0Y2hlc1swXS5tYXRjaFswXS5sZW5ndGgpKTtcblx0XHRcdGlmIChtYXRjaGVzLmxlbmd0aCA+IDEpIHtcblx0XHRcdFx0Ly8gUmVtb3ZlIGFsbCBvY2N1cnJlbmNlcyBpbiBhZnRlclxuXHRcdFx0XHRtYXRjaGVzLnJlLmxhc3RJbmRleCA9IDA7XG5cdFx0XHRcdGFmdGVyID0gYWZ0ZXIucmVwbGFjZShtYXRjaGVzLnJlLCAnJyk7XG5cdFx0XHR9XG5cdFx0XHRpZiAoXG5cdFx0XHRcdHRvQWRkICYmIC8vIG5hbWVTcGFjZSA9IG1hdGNoZXNbIDAgXS5tYXRjaFsgMSBdIHx8IG5hbWVTcGFjZTsgQ2Fub25pY2FsIG5hbWVzcGFjZSBzaG91bGQgYmUgYWx3YXlzIHByZWZlcnJlZFxuXHRcdFx0XHRrZXkgPT09IG51bGxcblx0XHRcdCkge1xuXHRcdFx0XHRbLCAsIGtleV0gPSBtYXRjaGVzWzBdLm1hdGNoO1xuXHRcdFx0fVxuXHRcdFx0Ly8gUmVtZW1iZXIgdGhlIGNhdGVnb3J5IGtleSwgaWYgYW55LlxuXHRcdFx0Ly8gUmVtb3ZlIHdoaXRlc3BhY2UgKHByb3Blcmx5KTogc3RyaXAgd2hpdGVzcGFjZSwgYnV0IG9ubHkgdXAgdG8gdGhlIG5leHQgbGluZSBmZWVkLlxuXHRcdFx0Ly8gSWYgd2UgdGhlbiBoYXZlIHR3byBsaW5lZmVlZHMgaW4gYSByb3csIHJlbW92ZSBvbmUuIE90aGVyd2lzZSwgaWYgd2UgaGF2ZSB0d28gbm9uLVxuXHRcdFx0Ly8gd2hpdGVzcGFjZSBjaGFyYWN0ZXJzLCBpbnNlcnQgYSBibGFuay5cblx0XHRcdGxldCBpID0gYmVmb3JlLmxlbmd0aCAtIDE7XG5cdFx0XHR3aGlsZSAoaSA+PSAwICYmIGJlZm9yZS5jaGFyQXQoaSkgIT09ICdcXG4nICYmIGJlZm9yZS5zbGljZShpLCBpICsgMSkuc2VhcmNoKC9cXHMvKSA+PSAwKSB7XG5cdFx0XHRcdGktLTtcblx0XHRcdH1cblx0XHRcdGxldCBqID0gMDtcblx0XHRcdHdoaWxlIChqIDwgYWZ0ZXIubGVuZ3RoICYmIGFmdGVyLmNoYXJBdChqKSAhPT0gJ1xcbicgJiYgYWZ0ZXIuc2xpY2UoaiwgaiArIDEpLnNlYXJjaCgvXFxzLykgPj0gMCkge1xuXHRcdFx0XHRqKys7XG5cdFx0XHR9XG5cdFx0XHRpZiAoXG5cdFx0XHRcdGkgPj0gMCAmJlxuXHRcdFx0XHRiZWZvcmUuY2hhckF0KGkpID09PSAnXFxuJyAmJlxuXHRcdFx0XHQoYWZ0ZXIubGVuZ3RoID09PSAwIHx8IChqIDwgYWZ0ZXIubGVuZ3RoICYmIGFmdGVyLmNoYXJBdChqKSA9PT0gJ1xcbicpKVxuXHRcdFx0KSB7XG5cdFx0XHRcdGktLTtcblx0XHRcdH1cblx0XHRcdGJlZm9yZSA9IGkgPj0gMCA/IGJlZm9yZS5zbGljZSgwLCBNYXRoLm1heCgwLCBpICsgMSkpIDogJyc7XG5cdFx0XHRhZnRlciA9IGogPCBhZnRlci5sZW5ndGggPyBhZnRlci5zbGljZShNYXRoLm1heCgwLCBqKSkgOiAnJztcblx0XHRcdGlmIChcblx0XHRcdFx0YmVmb3JlLmxlbmd0aCA+IDAgJiZcblx0XHRcdFx0YmVmb3JlLnNsaWNlKE1hdGgubWF4KDAsIGJlZm9yZS5sZW5ndGggLSAxKSkuc2VhcmNoKC9cXFMvKSA+PSAwICYmXG5cdFx0XHRcdGFmdGVyLmxlbmd0aCA+IDAgJiZcblx0XHRcdFx0YWZ0ZXIuc2xpY2UoMCwgMSkuc2VhcmNoKC9cXFMvKSA+PSAwXG5cdFx0XHQpIHtcblx0XHRcdFx0YmVmb3JlICs9ICcgJztcblx0XHRcdH1cblx0XHRcdGNhdF9wb2ludCA9IGJlZm9yZS5sZW5ndGg7XG5cdFx0XHRpZiAoY2F0X3BvaW50ID09PSAwICYmIGFmdGVyLmxlbmd0aCA+IDAgJiYgYWZ0ZXIuc2xpY2UoMCwgMSkgPT09ICdcXG4nKSB7XG5cdFx0XHRcdGFmdGVyID0gYWZ0ZXIuc2xpY2UoMSk7XG5cdFx0XHR9XG5cdFx0XHR3aWtpdGV4dCA9IGJlZm9yZSArIGFmdGVyO1xuXHRcdFx0aWYgKCFrZXlDaGFuZ2UpIHtcblx0XHRcdFx0aWYgKEhDLnRlbXBsYXRlX2NhdGVnb3JpZXNbdG9SZW1vdmVdKSB7XG5cdFx0XHRcdFx0c3VtbWFyeVtzdW1tYXJ5Lmxlbmd0aF0gPSBnZXRNZXNzYWdlKCdtZXNzYWdlcy10ZW1wbGF0ZV9yZW1vdmVkJywgdG9SZW1vdmUpO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHN1bW1hcnlbc3VtbWFyeS5sZW5ndGhdID0gZ2V0TWVzc2FnZSgnbWVzc2FnZXMtY2F0X3JlbW92ZWQnLCB0b1JlbW92ZSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0Ly8gQWRkXG5cdFx0aWYgKHRvQWRkICYmIHRvQWRkLmxlbmd0aCA+IDApIHtcblx0XHRcdG1hdGNoZXMgPSBmaW5kX2NhdGVnb3J5KHdpa2l0ZXh0LCB0b0FkZCk7XG5cdFx0XHRpZiAobWF0Y2hlcyAmJiBtYXRjaGVzLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0Ly8gQWxyZWFkeSBleGlzdHNcblx0XHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0XHR0ZXh0OiB3aWtpdGV4dCxcblx0XHRcdFx0XHRzdW1tYXJ5LFxuXHRcdFx0XHRcdGVycm9yOiBnZXRNZXNzYWdlKCdtZXNzYWdlcy1jYXRfZXhpc3RzJywgdG9BZGQpLFxuXHRcdFx0XHR9O1xuXHRcdFx0fVxuXHRcdFx0bGV0IG9uQ2F0ID0gZmFsc2U7XG5cdFx0XHRpZiAoY2F0X3BvaW50IDwgMCkge1xuXHRcdFx0XHRjb25zdCBwb2ludCA9IGZpbmRfaW5zZXJ0aW9ucG9pbnQod2lraXRleHQpO1xuXHRcdFx0XHRjYXRfcG9pbnQgPSBwb2ludC5pZHg7XG5cdFx0XHRcdCh7b25DYXR9ID0gcG9pbnQpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0b25DYXQgPSB0cnVlO1xuXHRcdFx0fVxuXHRcdFx0Y29uc3QgbmV3Y2F0c3RyaW5nID0gYFtbJHtuYW1lU3BhY2V9OiR7dG9BZGR9JHtrZXkgfHwgJyd9XV1gO1xuXHRcdFx0aWYgKGNhdF9wb2ludCA+PSAwKSB7XG5cdFx0XHRcdGNvbnN0IHN1ZmZpeCA9IHdpa2l0ZXh0LnNsaWNlKE1hdGgubWF4KDAsIGNhdF9wb2ludCkpO1xuXHRcdFx0XHR3aWtpdGV4dCA9XG5cdFx0XHRcdFx0d2lraXRleHQuc2xpY2UoMCwgTWF0aC5tYXgoMCwgY2F0X3BvaW50KSkgK1xuXHRcdFx0XHRcdChjYXRfcG9pbnQgPiAwID8gJ1xcbicgOiAnJykgK1xuXHRcdFx0XHRcdG5ld2NhdHN0cmluZyArXG5cdFx0XHRcdFx0KG9uQ2F0ID8gJycgOiAnXFxuJyk7XG5cdFx0XHRcdHdpa2l0ZXh0ICs9IHN1ZmZpeC5sZW5ndGggPiAwICYmIHN1ZmZpeC5zbGljZSgwLCAxKSAhPT0gJ1xcbicgPyBgXFxuJHtzdWZmaXh9YCA6IHN1ZmZpeDtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGlmICh3aWtpdGV4dC5sZW5ndGggPiAwICYmIHdpa2l0ZXh0LnNsaWNlKC0xLCB3aWtpdGV4dC5sZW5ndGggLSAxICsgMSkgIT09ICdcXG4nKSB7XG5cdFx0XHRcdFx0d2lraXRleHQgKz0gJ1xcbic7XG5cdFx0XHRcdH1cblx0XHRcdFx0d2lraXRleHQgKz0gKHdpa2l0ZXh0Lmxlbmd0aCA+IDAgPyAnXFxuJyA6ICcnKSArIG5ld2NhdHN0cmluZztcblx0XHRcdH1cblx0XHRcdGlmIChrZXlDaGFuZ2UpIHtcblx0XHRcdFx0bGV0IGsgPSBrZXkgfHwgJyc7XG5cdFx0XHRcdGlmIChrLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0XHRrID0gay5zbGljZSgxKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRzdW1tYXJ5W3N1bW1hcnkubGVuZ3RoXSA9IGdldE1lc3NhZ2UoJ21lc3NhZ2VzLWNhdF9rZXljaGFuZ2UnLCB0b0FkZCwgayk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRzdW1tYXJ5W3N1bW1hcnkubGVuZ3RoXSA9IGdldE1lc3NhZ2UoJ21lc3NhZ2VzLWNhdF9hZGRlZCcsIHRvQWRkKTtcblx0XHRcdH1cblx0XHRcdGlmIChIQy51bmNhdF9yZWdleHAgJiYgIWlzX2hpZGRlbikge1xuXHRcdFx0XHRjb25zdCB0eHQgPSB3aWtpdGV4dC5yZXBsYWNlKEhDLnVuY2F0X3JlZ2V4cCwgJycpOyAvLyBSZW1vdmUgXCJ1bmNhdFwiIHRlbXBsYXRlc1xuXHRcdFx0XHRpZiAodHh0Lmxlbmd0aCAhPT0gd2lraXRleHQubGVuZ3RoKSB7XG5cdFx0XHRcdFx0d2lraXRleHQgPSB0eHQ7XG5cdFx0XHRcdFx0c3VtbWFyeVtzdW1tYXJ5Lmxlbmd0aF0gPSBnZXRNZXNzYWdlKCdtZXNzYWdlcy11bmNhdF9yZW1vdmVkJyk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHRleHQ6IHdpa2l0ZXh0LFxuXHRcdFx0c3VtbWFyeSxcblx0XHRcdGVycm9yOiBudWxsLFxuXHRcdH07XG5cdH07XG5cdC8vIFRoZSByZWFsIEhvdENhdCBVSVxuXHRjb25zdCBldnRLZXlzID0gKHtjdHJsS2V5LCBtZXRhS2V5LCBzaGlmdEtleX0pID0+IHtcblx0XHRsZXQgY29kZSA9IDA7XG5cdFx0aWYgKGN0cmxLZXkpIHtcblx0XHRcdC8vIEFsbCBtb2Rlcm4gYnJvd3NlcnNcblx0XHRcdC8vIEN0cmwtY2xpY2sgc2VlbXMgdG8gYmUgb3ZlcmxvYWRlZCBpbiBGRi9NYWMgKGl0IG9wZW5zIGEgcG9wLXVwIG1lbnUpLCBzbyB0cmVhdCBjbWQtY2xpY2tcblx0XHRcdC8vIGFzIGEgY3RybC1jbGljaywgdG9vLlxuXHRcdFx0aWYgKGN0cmxLZXkgfHwgbWV0YUtleSkge1xuXHRcdFx0XHRjb2RlIHx8PSAxO1xuXHRcdFx0fVxuXHRcdFx0aWYgKHNoaWZ0S2V5KSB7XG5cdFx0XHRcdGNvZGUgfHw9IDI7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJldHVybiBjb2RlO1xuXHR9O1xuXHRjb25zdCBldnRLaWxsID0gKGUpID0+IHtcblx0XHRpZiAoZS5wcmV2ZW50RGVmYXVsdCkge1xuXHRcdFx0ZS5wcmV2ZW50RGVmYXVsdCgpO1xuXHRcdFx0ZS5zdG9wUHJvcGFnYXRpb24oKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0ZS5jYW5jZWxCdWJibGUgPSB0cnVlO1xuXHRcdH1cblx0XHRyZXR1cm4gZmFsc2U7XG5cdH07XG5cdGxldCBjYXRMaW5lID0gbnVsbDsgLy8gdHJ1ZSBpZiBNZWRpYVdpa2kgc2VydmVzIHRoZSBuZXcgVUwtTEkgRE9NIGZvciBjYXRlZ29yaWVzXG5cdGxldCBvblVwbG9hZCA9IGZhbHNlO1xuXHRsZXQgZWRpdG9ycyA9IFtdO1xuXHRsZXQgY29tbWl0QnV0dG9uID0gbnVsbDtcblx0bGV0IGNvbW1pdEZvcm0gPSBudWxsO1xuXHRsZXQgbXVsdGlTcGFuID0gbnVsbDtcblx0bGV0IHBhZ2VUZXh0ID0gbnVsbDtcblx0bGV0IHBhZ2VUaW1lID0gbnVsbDtcblx0bGV0IHBhZ2VXYXRjaGVkID0gZmFsc2U7XG5cdGxldCB3YXRjaENyZWF0ZSA9IGZhbHNlO1xuXHRsZXQgd2F0Y2hFZGl0ID0gZmFsc2U7XG5cdGxldCBtaW5vckVkaXRzID0gZmFsc2U7XG5cdGxldCBlZGl0VG9rZW4gPSBudWxsO1xuXHRsZXQgaXNfcnRsID0gZmFsc2U7XG5cdGxldCBzZXJ2ZXJUaW1lID0gbnVsbDtcblx0bGV0IGxhc3RSZXZJZCA9IG51bGw7XG5cdGxldCBwYWdlVGV4dFJldklkID0gbnVsbDtcblx0bGV0IGNvbmZsaWN0aW5nVXNlciA9IG51bGw7XG5cdGxldCBuZXdET00gPSBmYWxzZTtcblx0Y29uc3QgVU5DSEFOR0VEID0gMDtcblx0Y29uc3QgT1BFTiA9IDE7IC8vIE9wZW4sIGJ1dCBubyBpbnB1dCB5ZXRcblx0Y29uc3QgQ0hBTkdFX1BFTkRJTkcgPSAyOyAvLyBPcGVuLCBzb21lIGlucHV0IG1hZGVcblx0Y29uc3QgQ0hBTkdFRCA9IDM7XG5cdGNvbnN0IERFTEVURUQgPSA0O1xuXHRjb25zdCBzZXRQYWdlID0gKGRhdGEpID0+IHtcblx0XHRsZXQgc3RhcnRUaW1lID0gbnVsbDtcblx0XHRpZiAoZGF0YSAmJiBkYXRhLnF1ZXJ5KSB7XG5cdFx0XHRpZiAoZGF0YS5xdWVyeS5wYWdlcykge1xuXHRcdFx0XHRjb25zdCBbcGFnZV0gPSBkYXRhLnF1ZXJ5LnBhZ2VzO1xuXHRcdFx0XHRpZiAocGFnZSkge1xuXHRcdFx0XHRcdGlmIChwYWdlLnJldmlzaW9ucyAmJiBwYWdlLnJldmlzaW9ucy5sZW5ndGggPiAwKSB7XG5cdFx0XHRcdFx0XHQvLyBSZXZpc2lvbnMgYXJlIHNvcnRlZCBieSByZXZpc2lvbiBJRCwgaGVuY2UgWzBdIGlzIHRoZSBvbmUgd2UgYXNrZWQgZm9yLCBhbmQgcG9zc2libHkgdGhlcmUncyBhIFsxXSBpZiB3ZSdyZVxuXHRcdFx0XHRcdFx0Ly8gbm90IG9uIHRoZSBsYXRlc3QgcmV2aXNpb24gKGVkaXQgY29uZmxpY3RzIGFuZCBzdWNoKS5cblx0XHRcdFx0XHRcdHBhZ2VUZXh0ID0gcGFnZS5yZXZpc2lvbnNbMF0uc2xvdHMubWFpbi5jb250ZW50O1xuXHRcdFx0XHRcdFx0aWYgKHBhZ2UucmV2aXNpb25zWzBdLnRpbWVzdGFtcCkge1xuXHRcdFx0XHRcdFx0XHRwYWdlVGltZSA9IHBhZ2UucmV2aXNpb25zWzBdLnRpbWVzdGFtcC5yZXBsYWNlKC9cXEQvZywgJycpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0aWYgKHBhZ2UucmV2aXNpb25zWzBdLnJldmlkKSB7XG5cdFx0XHRcdFx0XHRcdHBhZ2VUZXh0UmV2SWQgPSBwYWdlLnJldmlzaW9uc1swXS5yZXZpZDtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdGlmIChwYWdlLnJldmlzaW9ucy5sZW5ndGggPiAxKSB7XG5cdFx0XHRcdFx0XHRcdGNvbmZsaWN0aW5nVXNlciA9IHBhZ2UucmV2aXNpb25zWzFdLnVzZXI7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGlmIChwYWdlLmxhc3RyZXZpZCkge1xuXHRcdFx0XHRcdFx0bGFzdFJldklkID0gcGFnZS5sYXN0cmV2aWQ7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGlmIChwYWdlLnN0YXJ0dGltZXN0YW1wKSB7XG5cdFx0XHRcdFx0XHRzdGFydFRpbWUgPSBwYWdlLnN0YXJ0dGltZXN0YW1wLnJlcGxhY2UoL1xcRC9nLCAnJyk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHBhZ2VXYXRjaGVkID0gdHlwZW9mIHBhZ2Uud2F0Y2hlZCA9PT0gJ3N0cmluZyc7XG5cdFx0XHRcdFx0aWYgKGRhdGEucXVlcnkudG9rZW5zKSB7XG5cdFx0XHRcdFx0XHRlZGl0VG9rZW4gPSBkYXRhLnF1ZXJ5LnRva2Vucy5jc3JmdG9rZW47XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGlmIChwYWdlLmxhbmdsaW5rcyAmJiAoIWRhdGFbJ3F1ZXJ5LWNvbnRpbnVlJ10gfHwgIWRhdGFbJ3F1ZXJ5LWNvbnRpbnVlJ10ubGFuZ2xpbmtzKSkge1xuXHRcdFx0XHRcdFx0Ly8gV2UgaGF2ZSBpbnRlcmxhbmd1YWdlIGxpbmtzLCBhbmQgd2UgZ290IHRoZW0gYWxsLlxuXHRcdFx0XHRcdFx0bGV0IHJlID0gJyc7XG5cdFx0XHRcdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IHBhZ2UubGFuZ2xpbmtzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdFx0XHRcdHJlICs9XG5cdFx0XHRcdFx0XHRcdFx0KGkgPiAwID8gJ3wnIDogJycpICsgcGFnZS5sYW5nbGlua3NbaV0ubGFuZy5yZXBsYWNlKC8oWyQoKSorLj9cXFxcXl0pL2csIFN0cmluZy5yYXdgXFwkMWApO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0aWYgKHJlLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0XHRcdFx0aW50ZXJsYW5ndWFnZVJFID0gbmV3IFJlZ0V4cChgKChefFxcXFxuXFxcXHI/KShcXFxcW1xcXFxbXFxcXHMqKCR7cmV9KVxcXFxzKjpbXlxcXFxdXStcXFxcXVxcXFxdXFxcXHMqKSkrJGApO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0Ly8gU2l0ZWluZm9cblx0XHRcdGlmIChkYXRhLnF1ZXJ5LmdlbmVyYWwpIHtcblx0XHRcdFx0aWYgKGRhdGEucXVlcnkuZ2VuZXJhbC50aW1lICYmICFzdGFydFRpbWUpIHtcblx0XHRcdFx0XHRzdGFydFRpbWUgPSBkYXRhLnF1ZXJ5LmdlbmVyYWwudGltZS5yZXBsYWNlKC9cXEQvZywgJycpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmIChIQy5jYXBpdGFsaXplUGFnZU5hbWVzID09PSBudWxsKSB7XG5cdFx0XHRcdFx0Ly8gUmVzb3VyY2VMb2FkZXIncyBKU1BhcnNlciBkb2Vzbid0IGxpa2UgLmNhc2UsIHNvIG92ZXJyaWRlIGVzbGludC5cblx0XHRcdFx0XHRIQy5jYXBpdGFsaXplUGFnZU5hbWVzID0gZGF0YS5xdWVyeS5nZW5lcmFsLmNhc2UgPT09ICdmaXJzdC1sZXR0ZXInO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRzZXJ2ZXJUaW1lID0gc3RhcnRUaW1lO1xuXHRcdFx0Ly8gVXNlcmluZm9cblx0XHRcdGlmIChkYXRhLnF1ZXJ5LnVzZXJpbmZvICYmIGRhdGEucXVlcnkudXNlcmluZm8ub3B0aW9ucykge1xuXHRcdFx0XHR3YXRjaENyZWF0ZSA9ICFIQy5kb250X2FkZF90b193YXRjaGxpc3QgJiYgZGF0YS5xdWVyeS51c2VyaW5mby5vcHRpb25zLndhdGNoY3JlYXRpb25zID09PSAnMSc7XG5cdFx0XHRcdHdhdGNoRWRpdCA9ICFIQy5kb250X2FkZF90b193YXRjaGxpc3QgJiYgZGF0YS5xdWVyeS51c2VyaW5mby5vcHRpb25zLndhdGNoZGVmYXVsdCA9PT0gJzEnO1xuXHRcdFx0XHRtaW5vckVkaXRzID0gZGF0YS5xdWVyeS51c2VyaW5mby5vcHRpb25zLm1pbm9yZGVmYXVsdCA9PT0gMTtcblx0XHRcdFx0Ly8gSWYgdGhlIHVzZXIgaGFzIHRoZSBcIkFsbCBlZGl0cyBhcmUgbWlub3JcIiBwcmVmZXJlbmNlIGVuYWJsZWQsIHdlIHNob3VsZCBob25vciB0aGF0XG5cdFx0XHRcdC8vIGZvciBzaW5nbGUgY2F0ZWdvcnkgY2hhbmdlcywgbm8gbWF0dGVyIHdoYXQgdGhlIHNpdGUgY29uZmlndXJhdGlvbiBpcy5cblx0XHRcdFx0aWYgKG1pbm9yRWRpdHMpIHtcblx0XHRcdFx0XHRIQy5zaW5nbGVfbWlub3IgPSB0cnVlO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9O1xuXHRsZXQgc2F2ZUluUHJvZ3Jlc3MgPSBmYWxzZTtcblx0Y29uc3QgaW5pdGlhdGVFZGl0ID0gKGRvRWRpdCwgZmFpbHVyZSkgPT4ge1xuXHRcdGlmIChzYXZlSW5Qcm9ncmVzcykge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRzYXZlSW5Qcm9ncmVzcyA9IHRydWU7XG5cdFx0bGV0IG9sZEJ1dHRvblN0YXRlO1xuXHRcdGlmIChjb21taXRCdXR0b24pIHtcblx0XHRcdG9sZEJ1dHRvblN0YXRlID0gY29tbWl0QnV0dG9uLmRpc2FibGVkO1xuXHRcdFx0Y29tbWl0QnV0dG9uLmRpc2FibGVkID0gdHJ1ZTtcblx0XHR9XG5cdFx0Y29uc3QgZmFpbCA9IGZ1bmN0aW9uICguLi5hcmdzKSB7XG5cdFx0XHRzYXZlSW5Qcm9ncmVzcyA9IGZhbHNlO1xuXHRcdFx0aWYgKGNvbW1pdEJ1dHRvbikge1xuXHRcdFx0XHRjb21taXRCdXR0b24uZGlzYWJsZWQgPSBvbGRCdXR0b25TdGF0ZTtcblx0XHRcdH1cblx0XHRcdGZhaWx1cmUuYXBwbHkodGhpcywgYXJncyk7XG5cdFx0fTtcblx0XHQvLyBNdXN0IHVzZSBBamF4IGhlcmUgdG8gZ2V0IHRoZSB1c2VyIG9wdGlvbnMgYW5kIHRoZSBlZGl0IHRva2VuLlxuXHRcdGNvbnN0IHBhcmFtcyA9IHtcblx0XHRcdGFjdGlvbjogJ3F1ZXJ5Jyxcblx0XHRcdGZvcm1hdDogJ2pzb24nLFxuXHRcdFx0Zm9ybWF0dmVyc2lvbjogJzInLFxuXHRcdFx0cmF3Y29udGludWU6ICcnLFxuXHRcdFx0dGl0bGVzOiBjb25mLndnUGFnZU5hbWUsXG5cdFx0XHRwcm9wOiBbJ2luZm8nLCAncmV2aXNpb25zJywgJ2xhbmdsaW5rcyddLFxuXHRcdFx0aW5wcm9wOiAnd2F0Y2hlZCcsXG5cdFx0XHRydnByb3A6IFsnY29udGVudCcsICd0aW1lc3RhbXAnLCAnaWRzJywgJ3VzZXInXSxcblx0XHRcdHJ2c2xvdHM6ICdtYWluJyxcblx0XHRcdHJ2bGltaXQ6ICcyJyxcblx0XHRcdHJ2ZGlyOiAnbmV3ZXInLFxuXHRcdFx0cnZzdGFydGlkOiBjb25mLndnQ3VyUmV2aXNpb25JZCxcblx0XHRcdGxsbGltaXQ6ICc1MDAnLFxuXHRcdFx0bWV0YTogWydzaXRlaW5mbycsICd1c2VyaW5mbycsICd0b2tlbnMnXSxcblx0XHRcdHR5cGU6ICdjc3JmJyxcblx0XHRcdHVpcHJvcDogWydvcHRpb25zJ10sXG5cdFx0fTtcblx0XHRhcGkuZ2V0KHBhcmFtcylcblx0XHRcdC5kb25lKChkYXRhKSA9PiB7XG5cdFx0XHRcdHNldFBhZ2UoZGF0YSk7XG5cdFx0XHRcdGRvRWRpdChmYWlsKTtcblx0XHRcdH0pXG5cdFx0XHQuZmFpbCgoe3N0YXR1cywgc3RhdHVzVGV4dH0pID0+IHtcblx0XHRcdFx0ZmFpbChgJHtzdGF0dXN9ICR7c3RhdHVzVGV4dH1gKTtcblx0XHRcdH0pO1xuXHR9O1xuXHRjb25zdCBtdWx0aUNoYW5nZU1zZyA9IChjb3VudCkgPT4ge1xuXHRcdHJldHVybiBnZXRNZXNzYWdlKCdtZXNzYWdlcy1tdWx0aV9jaGFuZ2UnLCBTdHJpbmcoY291bnQpKTtcblx0fTtcblx0Y29uc3QgY3VycmVudFRpbWVzdGFtcCA9ICgpID0+IHtcblx0XHRjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xuXHRcdGxldCB0cyA9IFN0cmluZyhub3cuZ2V0VVRDRnVsbFllYXIoKSk7XG5cdFx0Y29uc3QgdHdvID0gKHMpID0+IHtcblx0XHRcdHJldHVybiBzLnNsaWNlKC0yKTtcblx0XHR9O1xuXHRcdHRzICs9XG5cdFx0XHR0d28oYDAke25vdy5nZXRVVENNb250aCgpICsgMX1gKSArXG5cdFx0XHR0d28oYDAke25vdy5nZXRVVENEYXRlKCl9YCkgK1xuXHRcdFx0dHdvKGAwMCR7bm93LmdldFVUQ0hvdXJzKCl9YCkgK1xuXHRcdFx0dHdvKGAwMCR7bm93LmdldFVUQ01pbnV0ZXMoKX1gKSArXG5cdFx0XHR0d28oYDAwJHtub3cuZ2V0VVRDU2Vjb25kcygpfWApO1xuXHRcdHJldHVybiB0cztcblx0fTtcblx0Y29uc3QgcGVyZm9ybUNoYW5nZXMgPSAoZmFpbHVyZSwgc2luZ2xlRWRpdG9yKSA9PiB7XG5cdFx0aWYgKHBhZ2VUZXh0ID09PSBudWxsKSB7XG5cdFx0XHRmYWlsdXJlKGdldE1lc3NhZ2UoJ21lc3NhZ2VzLW11bHRpX2Vycm9yJykpO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHQvLyBDcmVhdGUgYSBmb3JtIGFuZCBzdWJtaXQgaXQuIFdlIGRvbid0IHVzZSB0aGUgZWRpdCBBUEkgKGFwaS5waHA/YWN0aW9uPWVkaXQpIGJlY2F1c2Vcblx0XHQvLyAoYSkgc2Vuc2libHkgcmVwb3J0aW5nIGJhY2sgZXJyb3JzIGxpa2UgZWRpdCBjb25mbGljdHMgaXMgYWx3YXlzIGEgaGFzc2xlLCBhbmRcblx0XHQvLyAoYikgd2Ugd2FudCB0byBzaG93IGEgZGlmZiBmb3IgbXVsdGktZWRpdHMgYW55d2F5LCBhbmRcblx0XHQvLyAoYykgd2Ugd2FudCB0byB0cmlnZ2VyIG9uc3VibWl0IGV2ZW50cywgYWxsb3dpbmcgdXNlciBjb2RlIHRvIGludGVyY2VwdCB0aGUgZWRpdC5cblx0XHQvLyBVc2luZyB0aGUgZm9ybSwgd2UgY2FuIGRvIChiKSBhbmQgKGMpLCBhbmQgd2UgZ2V0IChhKSBmb3IgZnJlZS4gQW5kLCBvZiBjb3Vyc2UsIHVzaW5nIHRoZSBmb3JtXG5cdFx0Ly8gYXV0b21hdGljYWxseSByZWxvYWRzIHRoZSBwYWdlIHdpdGggdGhlIHVwZGF0ZWQgY2F0ZWdvcmllcyBvbiBhIHN1Y2Nlc3NmdWwgc3VibWl0LCB3aGljaFxuXHRcdC8vIHdlIHdvdWxkIGhhdmUgdG8gZG8gZXhwbGljaXRseSBpZiB3ZSB1c2VkIHRoZSBlZGl0IEFQSS5cblx0XHRsZXQgYWN0aW9uO1xuXHRcdC8vIE5vcm1hbGx5LCB3ZSBkb24ndCBoYXZlIHRvIGNhcmUgYWJvdXQgZWRpdCBjb25mbGljdHMuIElmIHNvbWUgb3RoZXIgdXNlciBlZGl0ZWQgdGhlIHBhZ2UgaW4gdGhlIG1lYW50aW1lLCB0aGVcblx0XHQvLyBzZXJ2ZXIgd2lsbCB0YWtlIGNhcmUgb2YgaXQgYW5kIG1lcmdlIHRoZSBlZGl0IGF1dG9tYXRpY2FsbHkgb3IgcHJlc2VudCBhbiBlZGl0IGNvbmZsaWN0IHNjcmVlbi4gSG93ZXZlciwgdGhlXG5cdFx0Ly8gc2VydmVyIHN1cHByZXNzZXMgZWRpdCBjb25mbGljdHMgd2l0aCBvbmVzZWxmLiBIZW5jZSwgaWYgd2UgaGF2ZSBhIGNvbmZsaWN0LCBhbmQgdGhlIGNvbmZsaWN0aW5nIHVzZXIgaXMgdGhlXG5cdFx0Ly8gY3VycmVudCB1c2VyLCB0aGVuIHdlIHNldCB0aGUgXCJvbGRpZFwiIHZhbHVlIGFuZCBzd2l0Y2ggdG8gZGlmZiwgd2hpY2ggZ2l2ZXMgdGhlIFwieW91IGFyZSBlZGl0aW5nIGFuIG9sZCB2ZXJzaW9uO1xuXHRcdC8vIGlmIHlvdSBzYXZlLCBhbnkgbW9yZSByZWNlbnQgY2hhbmdlcyB3aWxsIGJlIGxvc3RcIiBzY3JlZW4uXG5cdFx0Y29uc3Qgc2VsZkVkaXRDb25mbGljdCA9XG5cdFx0XHQoKGxhc3RSZXZJZCAhPT0gbnVsbCAmJiBsYXN0UmV2SWQgIT09IGNvbmYud2dDdXJSZXZpc2lvbklkKSB8fFxuXHRcdFx0XHQocGFnZVRleHRSZXZJZCAhPT0gbnVsbCAmJiBwYWdlVGV4dFJldklkICE9PSBjb25mLndnQ3VyUmV2aXNpb25JZCkpICYmXG5cdFx0XHRjb25mbGljdGluZ1VzZXIgJiZcblx0XHRcdGNvbmZsaWN0aW5nVXNlciA9PT0gY29uZi53Z1VzZXJOYW1lO1xuXHRcdGlmIChzaW5nbGVFZGl0b3IgJiYgIXNpbmdsZUVkaXRvci5ub0NvbW1pdCAmJiAhSEMubm9fYXV0b2NvbW1pdCAmJiBlZGl0VG9rZW4gJiYgIXNlbGZFZGl0Q29uZmxpY3QpIHtcblx0XHRcdC8vIElmIHdlIGRvIGhhdmUgYW4gZWRpdCBjb25mbGljdCwgYnV0IG5vdCB3aXRoIG91cnNlbGYsIHRoYXQncyBubyByZWFzb24gbm90IHRvIGF0dGVtcHQgdG8gc2F2ZTogdGhlIHNlcnZlciBzaWRlIG1heSBhY3R1YWxseSBiZSBhYmxlIHRvXG5cdFx0XHQvLyBtZXJnZSB0aGUgY2hhbmdlcy4gV2UganVzdCBuZWVkIHRvIG1ha2Ugc3VyZSB0aGF0IHdlIGRvIHByZXNlbnQgYSBkaWZmIHZpZXcgaWYgaXQncyBhIHNlbGYgZWRpdCBjb25mbGljdC5cblx0XHRcdGNvbW1pdEZvcm0ud3BFZGl0VG9rZW4udmFsdWUgPSBlZGl0VG9rZW47XG5cdFx0XHRhY3Rpb24gPSBjb21taXRGb3JtLndwRGlmZjtcblx0XHRcdGlmIChhY3Rpb24pIHtcblx0XHRcdFx0YWN0aW9uLnZhbHVlID0gJ3dwU2F2ZSc7XG5cdFx0XHRcdGFjdGlvbi5uYW1lID0gYWN0aW9uLnZhbHVlO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHRhY3Rpb24gPSBjb21taXRGb3JtLndwU2F2ZTtcblx0XHRcdGlmIChhY3Rpb24pIHtcblx0XHRcdFx0YWN0aW9uLnZhbHVlID0gJ3dwRGlmZic7XG5cdFx0XHRcdGFjdGlvbi5uYW1lID0gYWN0aW9uLnZhbHVlO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRsZXQgcmVzdWx0ID0ge1xuXHRcdFx0dGV4dDogcGFnZVRleHQsXG5cdFx0fTtcblx0XHRjb25zdCBjaGFuZ2VkID0gW107XG5cdFx0Y29uc3QgYWRkZWQgPSBbXTtcblx0XHRjb25zdCBkZWxldGVkID0gW107XG5cdFx0Y29uc3QgdG9FZGl0ID0gc2luZ2xlRWRpdG9yID8gW3NpbmdsZUVkaXRvcl0gOiBlZGl0b3JzO1xuXHRcdGxldCBlZGl0O1xuXHRcdGxldCBpO1xuXHRcdGxldCBlcnJvciA9IG51bGw7XG5cdFx0bGV0IGNoYW5nZXMgPSAwO1xuXHRcdGZvciAoaSA9IDA7IGkgPCB0b0VkaXQubGVuZ3RoOyBpKyspIHtcblx0XHRcdGVkaXQgPSB0b0VkaXRbaV07XG5cdFx0XHRpZiAoZWRpdC5zdGF0ZSA9PT0gQ0hBTkdFRCkge1xuXHRcdFx0XHRyZXN1bHQgPSBjaGFuZ2VfY2F0ZWdvcnkoXG5cdFx0XHRcdFx0cmVzdWx0LnRleHQsXG5cdFx0XHRcdFx0ZWRpdC5vcmlnaW5hbENhdGVnb3J5LFxuXHRcdFx0XHRcdGVkaXQuY3VycmVudENhdGVnb3J5LFxuXHRcdFx0XHRcdGVkaXQuY3VycmVudEtleSxcblx0XHRcdFx0XHRlZGl0LmN1cnJlbnRIaWRkZW5cblx0XHRcdFx0KTtcblx0XHRcdFx0aWYgKCFyZXN1bHQuZXJyb3IpIHtcblx0XHRcdFx0XHRjaGFuZ2VzKys7XG5cdFx0XHRcdFx0aWYgKCFlZGl0Lm9yaWdpbmFsQ2F0ZWdvcnkgfHwgZWRpdC5vcmlnaW5hbENhdGVnb3J5Lmxlbmd0aCA9PT0gMCkge1xuXHRcdFx0XHRcdFx0YWRkZWRbYWRkZWQubGVuZ3RoXSA9IGVkaXQuY3VycmVudENhdGVnb3J5O1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRjaGFuZ2VkW2NoYW5nZWQubGVuZ3RoXSA9IHtcblx0XHRcdFx0XHRcdFx0ZnJvbTogZWRpdC5vcmlnaW5hbENhdGVnb3J5LFxuXHRcdFx0XHRcdFx0XHR0bzogZWRpdC5jdXJyZW50Q2F0ZWdvcnksXG5cdFx0XHRcdFx0XHR9O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSBlbHNlIGlmIChlcnJvciA9PT0gbnVsbCkge1xuXHRcdFx0XHRcdCh7ZXJyb3J9ID0gcmVzdWx0KTtcblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIGlmIChlZGl0LnN0YXRlID09PSBERUxFVEVEICYmIGVkaXQub3JpZ2luYWxDYXRlZ29yeSAmJiBlZGl0Lm9yaWdpbmFsQ2F0ZWdvcnkubGVuZ3RoID4gMCkge1xuXHRcdFx0XHRyZXN1bHQgPSBjaGFuZ2VfY2F0ZWdvcnkocmVzdWx0LnRleHQsIGVkaXQub3JpZ2luYWxDYXRlZ29yeSwgbnVsbCwgbnVsbCwgZmFsc2UpO1xuXHRcdFx0XHRpZiAoIXJlc3VsdC5lcnJvcikge1xuXHRcdFx0XHRcdGNoYW5nZXMrKztcblx0XHRcdFx0XHRkZWxldGVkW2RlbGV0ZWQubGVuZ3RoXSA9IGVkaXQub3JpZ2luYWxDYXRlZ29yeTtcblx0XHRcdFx0fSBlbHNlIGlmIChlcnJvciA9PT0gbnVsbCkge1xuXHRcdFx0XHRcdCh7ZXJyb3J9ID0gcmVzdWx0KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHRpZiAoZXJyb3IgIT09IG51bGwpIHtcblx0XHRcdC8vIERvIG5vdCBjb21taXQgaWYgdGhlcmUgd2VyZSBlcnJvcnNcblx0XHRcdGFjdGlvbiA9IGNvbW1pdEZvcm0ud3BTYXZlO1xuXHRcdFx0aWYgKGFjdGlvbikge1xuXHRcdFx0XHRhY3Rpb24udmFsdWUgPSAnd3BEaWZmJztcblx0XHRcdFx0YWN0aW9uLm5hbWUgPSBhY3Rpb24udmFsdWU7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdC8vIEZpbGwgaW4gdGhlIGZvcm0gYW5kIHN1Ym1pdCBpdFxuXHRcdGNvbW1pdEZvcm0ud3BNaW5vcmVkaXQuY2hlY2tlZCA9IG1pbm9yRWRpdHM7XG5cdFx0Y29tbWl0Rm9ybS53cFdhdGNodGhpcy5jaGVja2VkID0gKCFjb25mLndnQXJ0aWNsZUlkICYmIHdhdGNoQ3JlYXRlKSB8fCB3YXRjaEVkaXQgfHwgcGFnZVdhdGNoZWQ7XG5cdFx0aWYgKGNvbmYud2dBcnRpY2xlSWQgfHwgISFzaW5nbGVFZGl0b3IpIHtcblx0XHRcdC8vIFByZXBhcmUgY2hhbmdlLXRhZyBzYXZlXG5cdFx0XHRpZiAoYWN0aW9uICYmIGFjdGlvbi52YWx1ZSA9PT0gJ3dwU2F2ZScpIHtcblx0XHRcdFx0aWYgKEhDLmNoYW5nZVRhZykge1xuXHRcdFx0XHRcdGNvbW1pdEZvcm0ud3BDaGFuZ2VUYWdzLnZhbHVlID0gSEMuY2hhbmdlVGFnO1xuXHRcdFx0XHR9XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRjb21taXRGb3JtLndwQXV0b1N1bW1hcnkudmFsdWUgPSBIQy5jaGFuZ2VUYWc7XG5cdFx0XHR9XG5cdFx0XHRpZiAoY2hhbmdlcyA9PT0gMSkge1xuXHRcdFx0XHRpZiAocmVzdWx0LnN1bW1hcnkgJiYgcmVzdWx0LnN1bW1hcnkubGVuZ3RoID4gMCkge1xuXHRcdFx0XHRcdGNvbW1pdEZvcm0ud3BTdW1tYXJ5LnZhbHVlID1cblx0XHRcdFx0XHRcdChIQy5jaGFuZ2VUYWcgPyAnJyA6IGdldE1lc3NhZ2UoJ21lc3NhZ2VzLXByZWZpeCcpKSArXG5cdFx0XHRcdFx0XHRyZXN1bHQuc3VtbWFyeS5qb2luKGdldE1lc3NhZ2UoJ21lc3NhZ2VzLXNlcGFyYXRvcicpKSArXG5cdFx0XHRcdFx0XHQoSEMuY2hhbmdlVGFnID8gJycgOiBnZXRNZXNzYWdlKCdtZXNzYWdlcy11c2luZycpKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRjb21taXRGb3JtLndwTWlub3JlZGl0LmNoZWNrZWQgPSBIQy5zaW5nbGVfbWlub3IgfHwgbWlub3JFZGl0cztcblx0XHRcdH0gZWxzZSBpZiAoY2hhbmdlcykge1xuXHRcdFx0XHRsZXQgc3VtbWFyeSA9IFtdO1xuXHRcdFx0XHRjb25zdCBzaG9ydFN1bW1hcnkgPSBbXTtcblx0XHRcdFx0Ly8gRGVsZXRlZFxuXHRcdFx0XHRmb3IgKGkgPSAwOyBpIDwgZGVsZXRlZC5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRcdHN1bW1hcnlbc3VtbWFyeS5sZW5ndGhdID0gYOKIkiR7Z2V0TWVzc2FnZSgnbWVzc2FnZXMtc2hvcnRfY2F0Y2hhbmdlJywgZGVsZXRlZFtpXSl9YDtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAoZGVsZXRlZC5sZW5ndGggPT09IDEpIHtcblx0XHRcdFx0XHRzaG9ydFN1bW1hcnlbc2hvcnRTdW1tYXJ5Lmxlbmd0aF0gPSBg4oiSJHtnZXRNZXNzYWdlKCdtZXNzYWdlcy1zaG9ydF9jYXRjaGFuZ2UnLCBkZWxldGVkWzBdKX1gO1xuXHRcdFx0XHR9IGVsc2UgaWYgKGRlbGV0ZWQubGVuZ3RoID4gMCkge1xuXHRcdFx0XHRcdHNob3J0U3VtbWFyeVtzaG9ydFN1bW1hcnkubGVuZ3RoXSA9IGDiiJIgJHttdWx0aUNoYW5nZU1zZyhkZWxldGVkLmxlbmd0aCl9YDtcblx0XHRcdFx0fVxuXHRcdFx0XHQvLyBBZGRlZFxuXHRcdFx0XHRmb3IgKGkgPSAwOyBpIDwgYWRkZWQubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0XHRzdW1tYXJ5W3N1bW1hcnkubGVuZ3RoXSA9IGArJHtnZXRNZXNzYWdlKCdtZXNzYWdlcy1zaG9ydF9jYXRjaGFuZ2UnLCBhZGRlZFtpXSl9YDtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAoYWRkZWQubGVuZ3RoID09PSAxKSB7XG5cdFx0XHRcdFx0c2hvcnRTdW1tYXJ5W3Nob3J0U3VtbWFyeS5sZW5ndGhdID0gYCske2dldE1lc3NhZ2UoJ21lc3NhZ2VzLXNob3J0X2NhdGNoYW5nZScsIGFkZGVkWzBdKX1gO1xuXHRcdFx0XHR9IGVsc2UgaWYgKGFkZGVkLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0XHRzaG9ydFN1bW1hcnlbc2hvcnRTdW1tYXJ5Lmxlbmd0aF0gPSBgKyAke211bHRpQ2hhbmdlTXNnKGFkZGVkLmxlbmd0aCl9YDtcblx0XHRcdFx0fVxuXHRcdFx0XHQvLyBDaGFuZ2VkXG5cdFx0XHRcdGNvbnN0IGFycm93ID0gaXNfcnRsID8gJ1xcdTIxOTAnIDogJ1xcdTIxOTInOyAvLyBsZWZ0IGFuZCByaWdodCBhcnJvd3MuIERvbid0IHVzZSDihpAgYW5kIOKGkiBpbiB0aGUgY29kZS5cblx0XHRcdFx0Zm9yIChpID0gMDsgaSA8IGNoYW5nZWQubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0XHRpZiAoY2hhbmdlZFtpXS5mcm9tID09PSBjaGFuZ2VkW2ldLnRvKSB7XG5cdFx0XHRcdFx0XHRzdW1tYXJ5W3N1bW1hcnkubGVuZ3RoXSA9IGDCsSR7Z2V0TWVzc2FnZSgnbWVzc2FnZXMtc2hvcnRfY2F0Y2hhbmdlJywgY2hhbmdlZFtpXS5mcm9tKX1gO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRzdW1tYXJ5W3N1bW1hcnkubGVuZ3RoXSA9XG5cdFx0XHRcdFx0XHRcdGDCsSR7Z2V0TWVzc2FnZSgnbWVzc2FnZXMtc2hvcnRfY2F0Y2hhbmdlJywgY2hhbmdlZFtpXS5mcm9tKX0ke2Fycm93fSR7Z2V0TWVzc2FnZShcblx0XHRcdFx0XHRcdFx0XHQnbWVzc2FnZXMtc2hvcnRfY2F0Y2hhbmdlJyxcblx0XHRcdFx0XHRcdFx0XHRjaGFuZ2VkW2ldLnRvXG5cdFx0XHRcdFx0XHRcdCl9YDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKGNoYW5nZWQubGVuZ3RoID09PSAxKSB7XG5cdFx0XHRcdFx0aWYgKGNoYW5nZWRbMF0uZnJvbSA9PT0gY2hhbmdlZFswXS50bykge1xuXHRcdFx0XHRcdFx0c2hvcnRTdW1tYXJ5W3Nob3J0U3VtbWFyeS5sZW5ndGhdID1cblx0XHRcdFx0XHRcdFx0YMKxJHtnZXRNZXNzYWdlKCdtZXNzYWdlcy1zaG9ydF9jYXRjaGFuZ2UnLCBjaGFuZ2VkWzBdLmZyb20pfWA7XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdHNob3J0U3VtbWFyeVtzaG9ydFN1bW1hcnkubGVuZ3RoXSA9XG5cdFx0XHRcdFx0XHRcdGDCsSR7Z2V0TWVzc2FnZSgnbWVzc2FnZXMtc2hvcnRfY2F0Y2hhbmdlJywgY2hhbmdlZFswXS5mcm9tKX0ke2Fycm93fSR7Z2V0TWVzc2FnZShcblx0XHRcdFx0XHRcdFx0XHQnbWVzc2FnZXMtc2hvcnRfY2F0Y2hhbmdlJyxcblx0XHRcdFx0XHRcdFx0XHRjaGFuZ2VkWzBdLnRvXG5cdFx0XHRcdFx0XHRcdCl9YDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0gZWxzZSBpZiAoY2hhbmdlZC5sZW5ndGggPiAwKSB7XG5cdFx0XHRcdFx0c2hvcnRTdW1tYXJ5W3Nob3J0U3VtbWFyeS5sZW5ndGhdID0gYMKxICR7bXVsdGlDaGFuZ2VNc2coY2hhbmdlZC5sZW5ndGgpfWA7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKHN1bW1hcnkubGVuZ3RoID4gMCkge1xuXHRcdFx0XHRcdHN1bW1hcnkgPSBzdW1tYXJ5LmpvaW4oZ2V0TWVzc2FnZSgnbWVzc2FnZXMtc2VwYXJhdG9yJykpO1xuXHRcdFx0XHRcdGlmIChcblx0XHRcdFx0XHRcdHN1bW1hcnkubGVuZ3RoID5cblx0XHRcdFx0XHRcdDIwMCAtXG5cdFx0XHRcdFx0XHRcdChIQy5jaGFuZ2VUYWcgPyAnJyA6IGdldE1lc3NhZ2UoJ21lc3NhZ2VzLXByZWZpeCcpKS5sZW5ndGggLVxuXHRcdFx0XHRcdFx0XHQoSEMuY2hhbmdlVGFnID8gJycgOiBnZXRNZXNzYWdlKCdtZXNzYWdlcy11c2luZycpKS5sZW5ndGhcblx0XHRcdFx0XHQpIHtcblx0XHRcdFx0XHRcdHN1bW1hcnkgPSBzaG9ydFN1bW1hcnkuam9pbihnZXRNZXNzYWdlKCdtZXNzYWdlcy1zZXBhcmF0b3InKSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGNvbW1pdEZvcm0ud3BTdW1tYXJ5LnZhbHVlID1cblx0XHRcdFx0XHRcdChIQy5jaGFuZ2VUYWcgPyAnJyA6IGdldE1lc3NhZ2UoJ21lc3NhZ2VzLXByZWZpeCcpKSArXG5cdFx0XHRcdFx0XHRzdW1tYXJ5ICtcblx0XHRcdFx0XHRcdChIQy5jaGFuZ2VUYWcgPyAnJyA6IGdldE1lc3NhZ2UoJ21lc3NhZ2VzLXVzaW5nJykpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHRcdGNvbW1pdEZvcm0ud3BUZXh0Ym94MS52YWx1ZSA9IHJlc3VsdC50ZXh0O1xuXHRcdGNvbW1pdEZvcm0ud3BTdGFydHRpbWUudmFsdWUgPSBzZXJ2ZXJUaW1lIHx8IGN1cnJlbnRUaW1lc3RhbXAoKTtcblx0XHRjb21taXRGb3JtLndwRWRpdHRpbWUudmFsdWUgPSBwYWdlVGltZSB8fCBjb21taXRGb3JtLndwU3RhcnR0aW1lLnZhbHVlO1xuXHRcdGlmIChzZWxmRWRpdENvbmZsaWN0KSB7XG5cdFx0XHRjb21taXRGb3JtLm9sZGlkLnZhbHVlID0gU3RyaW5nKHBhZ2VUZXh0UmV2SWQgfHwgY29uZi53Z0N1clJldmlzaW9uSWQpO1xuXHRcdH1cblx0XHQvLyBTdWJtaXQgdGhlIGZvcm0gaW4gYSB3YXkgdGhhdCB0cmlnZ2VycyBvbnN1Ym1pdCBldmVudHM6IGNvbW1pdEZvcm0uc3VibWl0KCkgZG9lc24ndC5cblx0XHRjb21taXRGb3JtLmhjQ29tbWl0LmNsaWNrKCk7XG5cdH07XG5cdGNvbnN0IHJlc29sdmVPbmUgPSAocGFnZSwgdG9SZXNvbHZlKSA9PiB7XG5cdFx0Y29uc3QgY2F0cyA9IHBhZ2UuY2F0ZWdvcmllcztcblx0XHRjb25zdCB7bGlua3N9ID0gcGFnZTtcblx0XHRsZXQgaXNfZGFiID0gZmFsc2U7IC8vIEhhcmQgcmVkaXJlY3Q/XG5cdFx0bGV0IGlzX3JlZGlyID0gdHlwZW9mIHBhZ2UucmVkaXJlY3QgPT09ICdzdHJpbmcnO1xuXHRcdGxldCBpO1xuXHRcdGNvbnN0IGlzX2hpZGRlbiA9IHBhZ2UuY2F0ZWdvcnlpbmZvICYmIHR5cGVvZiBwYWdlLmNhdGVnb3J5aW5mby5oaWRkZW4gPT09ICdzdHJpbmcnO1xuXHRcdGNvbnN0IGlzX21pc3NpbmcgPSB0eXBlb2YgcGFnZS5taXNzaW5nID09PSAnc3RyaW5nJztcblx0XHRmb3IgKGkgPSAwOyBpIDwgdG9SZXNvbHZlLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRpZiAoaSAmJiB0b1Jlc29sdmVbaV0uZGFiSW5wdXRDbGVhbmVkICE9PSBwYWdlLnRpdGxlLnNsaWNlKE1hdGgubWF4KDAsIHBhZ2UudGl0bGUuaW5kZXhPZignOicpICsgMSkpKSB7XG5cdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0fVxuXHRcdFx0Ly8gTm90ZTogdGhlIHNlcnZlciByZXR1cm5zIGluIHBhZ2UgYW4gTkZDIG5vcm1hbGl6ZWQgVW5pY29kZSB0aXRsZS4gSWYgb3VyIGlucHV0IHdhcyBub3QgTkZDIG5vcm1hbGl6ZWQsIHdlIG1heSBub3QgZmluZFxuXHRcdFx0Ly8gYW55IGVudHJ5IGhlcmUuIElmIHdlIGhhdmUgb25seSBvbmUgZWRpdG9yIHRvIHJlc29sdmUgKHRoZSBtb3N0IGNvbW1vbiBjYXNlLCBJIHByZXN1bWUpLCB3ZSBtYXkgc2ltcGx5IHNraXAgdGhlIGNoZWNrLlxuXHRcdFx0dG9SZXNvbHZlW2ldLmN1cnJlbnRIaWRkZW4gPSBpc19oaWRkZW47XG5cdFx0XHR0b1Jlc29sdmVbaV0uaW5wdXRFeGlzdHMgPSAhaXNfbWlzc2luZztcblx0XHRcdHRvUmVzb2x2ZVtpXS5pY29uLnNyYyA9IGlzX21pc3NpbmcgPyBIQy5leGlzdHNObyA6IEhDLmV4aXN0c1llcztcblx0XHR9XG5cdFx0aWYgKGlzX21pc3NpbmcpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0aWYgKCFpc19yZWRpciAmJiBjYXRzICYmIChnZXRNZXNzYWdlKCdkaXNhbWJpZ19jYXRlZ29yeScpIHx8IGdldE1lc3NhZ2UoJ3JlZGlyX2NhdGVnb3J5JykpKSB7XG5cdFx0XHRmb3IgKGNvbnN0IGNhdF8gb2YgY2F0cykge1xuXHRcdFx0XHRsZXQgY2F0ID0gY2F0Xy50aXRsZTtcblx0XHRcdFx0Ly8gU3RyaXAgbmFtZXNwYWNlIHByZWZpeFxuXHRcdFx0XHRpZiAoY2F0KSB7XG5cdFx0XHRcdFx0Y2F0ID0gY2F0LnNsaWNlKE1hdGgubWF4KDAsIGNhdC5pbmRleE9mKCc6JykgKyAxKSkucmVwbGFjZSgvXy9nLCAnICcpO1xuXHRcdFx0XHRcdGlmIChjYXQgPT09IGdldE1lc3NhZ2UoJ2Rpc2FtYmlnX2NhdGVnb3J5JykpIHtcblx0XHRcdFx0XHRcdGlzX2RhYiA9IHRydWU7XG5cdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHR9IGVsc2UgaWYgKGNhdCA9PT0gZ2V0TWVzc2FnZSgncmVkaXJfY2F0ZWdvcnknKSkge1xuXHRcdFx0XHRcdFx0aXNfcmVkaXIgPSB0cnVlO1xuXHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHRcdGlmICghaXNfcmVkaXIgJiYgIWlzX2RhYikge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRpZiAoIWxpbmtzIHx8IGxpbmtzLmxlbmd0aCA9PT0gMCkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRjb25zdCB0aXRsZXMgPSBbXTtcblx0XHRmb3IgKGkgPSAwOyBpIDwgbGlua3MubGVuZ3RoOyBpKyspIHtcblx0XHRcdGlmIChcblx0XHRcdFx0Ly8gQ2F0ZWdvcnkgbmFtZXNwYWNlIC0tIGFsd2F5cyB0cnVlIHNpbmNlIHdlIGFzayBvbmx5IGZvciB0aGUgY2F0ZWdvcnkgbGlua3Ncblx0XHRcdFx0bGlua3NbaV0ubnMgPT09IDE0ICYmXG5cdFx0XHRcdC8vIE5hbWUgbm90IGVtcHR5XG5cdFx0XHRcdGxpbmtzW2ldLnRpdGxlICYmXG5cdFx0XHRcdGxpbmtzW2ldLnRpdGxlLmxlbmd0aCA+IDBcblx0XHRcdCkge1xuXHRcdFx0XHQvLyBJbnRlcm5hbCBsaW5rIHRvIGV4aXN0aW5nIHRoaW5neS4gRXh0cmFjdCB0aGUgcGFnZSBuYW1lIGFuZCByZW1vdmUgdGhlIG5hbWVzcGFjZS5cblx0XHRcdFx0bGV0IG1hdGNoID0gbGlua3NbaV0udGl0bGU7XG5cdFx0XHRcdG1hdGNoID0gbWF0Y2guc2xpY2UoTWF0aC5tYXgoMCwgbWF0Y2guaW5kZXhPZignOicpICsgMSkpO1xuXHRcdFx0XHQvLyBFeGNsdWRlIGJsYWNrbGlzdGVkIGNhdGVnb3JpZXMuXG5cdFx0XHRcdGlmICghSEMuYmxhY2tsaXN0IHx8ICFIQy5ibGFja2xpc3QudGVzdChtYXRjaCkpIHtcblx0XHRcdFx0XHR0aXRsZXNbdGl0bGVzLmxlbmd0aF0gPSBtYXRjaDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHRpZiAodGl0bGVzLmxlbmd0aCA9PT0gMCkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRmb3IgKGkgPSAwOyBpIDwgdG9SZXNvbHZlLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRpZiAoaSAmJiB0b1Jlc29sdmVbaV0uZGFiSW5wdXRDbGVhbmVkICE9PSBwYWdlLnRpdGxlLnNsaWNlKE1hdGgubWF4KDAsIHBhZ2UudGl0bGUuaW5kZXhPZignOicpICsgMSkpKSB7XG5cdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0fVxuXHRcdFx0dG9SZXNvbHZlW2ldLmlucHV0RXhpc3RzID0gdHJ1ZTsgLy8gTWlnaHQgYWN0dWFsbHkgYmUgd3JvbmcgaWYgaXQncyBhIHJlZGlyZWN0IHBvaW50aW5nIHRvIGEgbm9uLWV4aXN0aW5nIGNhdGVnb3J5XG5cdFx0XHR0b1Jlc29sdmVbaV0uaWNvbi5zcmMgPSBIQy5leGlzdHNZZXM7XG5cdFx0XHRpZiAodGl0bGVzLmxlbmd0aCA+IDEpIHtcblx0XHRcdFx0dG9SZXNvbHZlW2ldLmRhYiA9IHRpdGxlcztcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHRvUmVzb2x2ZVtpXS50ZXh0LnZhbHVlID1cblx0XHRcdFx0XHR0aXRsZXNbMF0gKyAodG9SZXNvbHZlW2ldLmN1cnJlbnRLZXkgPT09IG51bGwgPyAnJyA6IGB8JHt0b1Jlc29sdmVbaV0uY3VycmVudEtleX1gKTtcblx0XHRcdH1cblx0XHR9XG5cdH07XG5cdGNvbnN0IHJlc29sdmVSZWRpcmVjdHMgPSAodG9SZXNvbHZlLCBwYXJhbXMpID0+IHtcblx0XHRpZiAoIXBhcmFtcyB8fCAhcGFyYW1zLnF1ZXJ5IHx8ICFwYXJhbXMucXVlcnkucGFnZXMpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0Zm9yIChjb25zdCBwIGluIHBhcmFtcy5xdWVyeS5wYWdlcykge1xuXHRcdFx0aWYgKCFPYmplY3QuaGFzT3duKHBhcmFtcy5xdWVyeS5wYWdlcywgcCkpIHtcblx0XHRcdFx0Y29udGludWU7XG5cdFx0XHR9XG5cdFx0XHRyZXNvbHZlT25lKHBhcmFtcy5xdWVyeS5wYWdlc1twXSwgdG9SZXNvbHZlKTtcblx0XHR9XG5cdH07XG5cdGNvbnN0IHJlc29sdmVNdWx0aSA9ICh0b1Jlc29sdmUsIGNhbGxiYWNrKSA9PiB7XG5cdFx0bGV0IGk7XG5cdFx0Zm9yIChpID0gMDsgaSA8IHRvUmVzb2x2ZS5sZW5ndGg7IGkrKykge1xuXHRcdFx0dG9SZXNvbHZlW2ldLmRhYiA9IG51bGw7XG5cdFx0XHR0b1Jlc29sdmVbaV0uZGFiSW5wdXQgPSB0b1Jlc29sdmVbaV0ubGFzdElucHV0O1xuXHRcdH1cblx0XHRpZiAobm9TdWdnZXN0aW9ucykge1xuXHRcdFx0Y2FsbGJhY2sodG9SZXNvbHZlKTtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0Y29uc3QgcGFyYW1zID0ge1xuXHRcdFx0YWN0aW9uOiAncXVlcnknLFxuXHRcdFx0Zm9ybWF0OiAnanNvbicsXG5cdFx0XHRwcm9wOiAnaW5mb3xsaW5rc3xjYXRlZ29yaWVzfGNhdGVnb3J5aW5mbycsXG5cdFx0XHRwbG5hbWVzcGFjZTogJzE0Jyxcblx0XHRcdHBsbGltaXQ6IHRvUmVzb2x2ZS5sZW5ndGggKiAxMCxcblx0XHRcdGNsbGltaXQ6IHRvUmVzb2x2ZS5sZW5ndGggKiAxMCxcblx0XHR9O1xuXHRcdGNvbnN0IHRpdGxlcyA9IFtdO1xuXHRcdGZvciAoaSA9IDA7IGkgPCB0b1Jlc29sdmUubGVuZ3RoOyBpKyspIHtcblx0XHRcdGxldCB2ID0gdG9SZXNvbHZlW2ldLmRhYklucHV0O1xuXHRcdFx0diA9IHJlcGxhY2VTaG9ydGN1dHModiwgSEMuc2hvcnRjdXRzKTtcblx0XHRcdHRvUmVzb2x2ZVtpXS5kYWJJbnB1dENsZWFuZWQgPSB2O1xuXHRcdFx0dGl0bGVzW3RpdGxlcy5sZW5ndGhdID0gYENhdGVnb3J5OiR7dn1gO1xuXHRcdH1cblx0XHRwYXJhbXMudGl0bGVzID0gdGl0bGVzLmpvaW4oJ3wnKTtcblx0XHRhcGkuZ2V0KHBhcmFtcylcblx0XHRcdC5kb25lKChqc29uKSA9PiB7XG5cdFx0XHRcdHJlc29sdmVSZWRpcmVjdHModG9SZXNvbHZlLCBqc29uKTtcblx0XHRcdFx0Y2FsbGJhY2sodG9SZXNvbHZlKTtcblx0XHRcdH0pXG5cdFx0XHQuZmFpbCgocmVxKSA9PiB7XG5cdFx0XHRcdGlmICghcmVxKSB7XG5cdFx0XHRcdFx0bm9TdWdnZXN0aW9ucyA9IHRydWU7XG5cdFx0XHRcdH1cblx0XHRcdFx0Y2FsbGJhY2sodG9SZXNvbHZlKTtcblx0XHRcdH0pO1xuXHR9O1xuXHRjb25zdCBtYWtlQWN0aXZlID0gKHdoaWNoKSA9PiB7XG5cdFx0aWYgKHdoaWNoLmlzX2FjdGl2ZSkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRmb3IgKGNvbnN0IGVkaXRvciBvZiBlZGl0b3JzKSB7XG5cdFx0XHRpZiAoZWRpdG9yICE9PSB3aGljaCkge1xuXHRcdFx0XHRlZGl0b3IuaW5hY3RpdmF0ZSgpO1xuXHRcdFx0fVxuXHRcdH1cblx0XHR3aGljaC5pc19hY3RpdmUgPSB0cnVlO1xuXHRcdGlmICh3aGljaC5kYWIpIHtcblx0XHRcdHNob3dEYWIod2hpY2gpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHQvLyBDaGVjayBmb3IgcHJvZ3JhbW1hdGljIHZhbHVlIGNoYW5nZXMuXG5cdFx0XHRjb25zdCBleHBlY3RlZElucHV0ID0gd2hpY2gubGFzdFJlYWxJbnB1dCB8fCB3aGljaC5sYXN0SW5wdXQgfHwgJyc7XG5cdFx0XHRjb25zdCBhY3R1YWxWYWx1ZSA9IHdoaWNoLnRleHQudmFsdWUgfHwgJyc7XG5cdFx0XHRpZiAoXG5cdFx0XHRcdChleHBlY3RlZElucHV0Lmxlbmd0aCA9PT0gMCAmJiBhY3R1YWxWYWx1ZS5sZW5ndGggPiAwKSB8fFxuXHRcdFx0XHQoZXhwZWN0ZWRJbnB1dC5sZW5ndGggPiAwICYmIGFjdHVhbFZhbHVlLmluZGV4T2YoZXhwZWN0ZWRJbnB1dCkpXG5cdFx0XHQpIHtcblx0XHRcdFx0Ly8gU29tZWhvdyB0aGUgZmllbGQncyB2YWx1ZSBhcHBlYXJzIHRvIGhhdmUgY2hhbmdlZCwgYW5kIHdoaWNoLmxhc3RTZWxlY3Rpb24gdGhlcmVmb3JlIGlzIG5vIGxvbmdlciB2YWxpZC4gVHJ5IHRvIHNldCB0aGVcblx0XHRcdFx0Ly8gY3Vyc29yIGF0IHRoZSBlbmQgb2YgdGhlIGNhdGVnb3J5LCBhbmQgZG8gbm90IGRpc3BsYXkgdGhlIG9sZCBzdWdnZXN0aW9uIGxpc3QuXG5cdFx0XHRcdHdoaWNoLnNob3dzTGlzdCA9IGZhbHNlO1xuXHRcdFx0XHRjb25zdCB2ID0gYWN0dWFsVmFsdWUuc3BsaXQoJ3wnKTtcblx0XHRcdFx0W3doaWNoLmxhc3RJbnB1dF0gPSB2O1xuXHRcdFx0XHR3aGljaC5sYXN0UmVhbElucHV0ID0gd2hpY2gubGFzdElucHV0O1xuXHRcdFx0XHRpZiAodi5sZW5ndGggPiAxKSB7XG5cdFx0XHRcdFx0Wywgd2hpY2guY3VycmVudEtleV0gPSB2O1xuXHRcdFx0XHR9XG5cdFx0XHRcdHdoaWNoLmxhc3RTZWxlY3Rpb24gJiY9IHtcblx0XHRcdFx0XHRzdGFydDogdlswXS5sZW5ndGgsXG5cdFx0XHRcdFx0ZW5kOiB2WzBdLmxlbmd0aCxcblx0XHRcdFx0fTtcblx0XHRcdH1cblx0XHRcdGlmICh3aGljaC5zaG93c0xpc3QpIHtcblx0XHRcdFx0d2hpY2guZGlzcGxheUxpc3QoKTtcblx0XHRcdH1cblx0XHRcdGlmICh3aGljaC5sYXN0U2VsZWN0aW9uKSB7XG5cdFx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0XHRcdHdoaWNoLnNldFNlbGVjdGlvbih3aGljaC5sYXN0U2VsZWN0aW9uLnN0YXJ0LCB3aGljaC5sYXN0U2VsZWN0aW9uLmVuZCk7XG5cdFx0XHRcdH0sIDApO1xuXHRcdFx0fVxuXHRcdH1cblx0fTtcblx0Y29uc3Qgc2hvd0RhYiA9ICh3aGljaCkgPT4ge1xuXHRcdGlmICh3aGljaC5pc19hY3RpdmUpIHtcblx0XHRcdHdoaWNoLnNob3dTdWdnZXN0aW9ucyh3aGljaC5kYWIsIGZhbHNlLCBudWxsLCBudWxsKTsgLy8gZG8gYXV0b2NvbXBsZXRpb24sIG5vIGtleSwgbm8gZW5naW5lIHNlbGVjdG9yXG5cdFx0XHR3aGljaC5kYWIgPSBudWxsO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRtYWtlQWN0aXZlKHdoaWNoKTtcblx0XHR9XG5cdH07XG5cdGNvbnN0IG11bHRpU3VibWl0ID0gKCkgPT4ge1xuXHRcdGNvbnN0IHRvUmVzb2x2ZSA9IFtdO1xuXHRcdGZvciAoY29uc3QgZWRpdG9yIG9mIGVkaXRvcnMpIHtcblx0XHRcdGlmIChlZGl0b3Iuc3RhdGUgPT09IENIQU5HRV9QRU5ESU5HIHx8IGVkaXRvci5zdGF0ZSA9PT0gT1BFTikge1xuXHRcdFx0XHR0b1Jlc29sdmVbdG9SZXNvbHZlLmxlbmd0aF0gPSBlZGl0b3I7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdGlmICh0b1Jlc29sdmUubGVuZ3RoID09PSAwKSB7XG5cdFx0XHRpbml0aWF0ZUVkaXQoXG5cdFx0XHRcdChmYWlsdXJlKSA9PiB7XG5cdFx0XHRcdFx0cGVyZm9ybUNoYW5nZXMoZmFpbHVyZSk7XG5cdFx0XHRcdH0sXG5cdFx0XHRcdChtc2cpID0+IHtcblx0XHRcdFx0XHR2b2lkIG13Lm5vdGlmeShtc2csIHt0YWc6ICdob3RDYXQnfSk7XG5cdFx0XHRcdH1cblx0XHRcdCk7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdHJlc29sdmVNdWx0aSh0b1Jlc29sdmUsIChyZXNvbHZlZCkgPT4ge1xuXHRcdFx0bGV0IGZpcnN0RGFiID0gbnVsbDtcblx0XHRcdGxldCBkb250Q2hhbmdlID0gZmFsc2U7XG5cdFx0XHRmb3IgKGNvbnN0IGVsZW1lbnQgb2YgcmVzb2x2ZWQpIHtcblx0XHRcdFx0aWYgKGVsZW1lbnQubGFzdElucHV0ID09PSBlbGVtZW50LmRhYklucHV0KSB7XG5cdFx0XHRcdFx0aWYgKGVsZW1lbnQuZGFiKSB7XG5cdFx0XHRcdFx0XHRmaXJzdERhYiB8fD0gZWxlbWVudDtcblx0XHRcdFx0XHR9IGVsc2UgaWYgKGVsZW1lbnQuYWNjZXB0Q2hlY2sodHJ1ZSkpIHtcblx0XHRcdFx0XHRcdGVsZW1lbnQuY29tbWl0KCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdC8vIFdlIGRpZG4ndCBkaXNhYmxlIGFsbCB0aGUgb3BlbiBlZGl0b3JzLCBidXQgd2UgZGlkIGFzeW5jaHJvbm91cyBjYWxscy4gSXQgaXNcblx0XHRcdFx0XHQvLyB0aGVvcmV0aWNhbGx5IHBvc3NpYmxlIHRoYXQgdGhlIHVzZXIgY2hhbmdlZCBzb21ldGhpbmcuLi5cblx0XHRcdFx0XHRkb250Q2hhbmdlID0gdHJ1ZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0aWYgKGZpcnN0RGFiKSB7XG5cdFx0XHRcdHNob3dEYWIoZmlyc3REYWIpO1xuXHRcdFx0fSBlbHNlIGlmICghZG9udENoYW5nZSkge1xuXHRcdFx0XHRpbml0aWF0ZUVkaXQoXG5cdFx0XHRcdFx0KGZhaWx1cmUpID0+IHtcblx0XHRcdFx0XHRcdHBlcmZvcm1DaGFuZ2VzKGZhaWx1cmUpO1xuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0KG1zZykgPT4ge1xuXHRcdFx0XHRcdFx0dm9pZCBtdy5ub3RpZnkobXNnLCB7dGFnOiAnaG90Q2F0J30pO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0KTtcblx0XHRcdH1cblx0XHR9KTtcblx0fTtcblx0Y29uc3Qgc2V0TXVsdGlJbnB1dCA9ICgpID0+IHtcblx0XHRpZiAoY29tbWl0QnV0dG9uIHx8IG9uVXBsb2FkKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdGNvbW1pdEJ1dHRvbiA9IG1ha2UoJ2lucHV0Jyk7XG5cdFx0Y29tbWl0QnV0dG9uLnR5cGUgPSAnYnV0dG9uJztcblx0XHRjb21taXRCdXR0b24udmFsdWUgPSBnZXRNZXNzYWdlKCdtZXNzYWdlcy1jb21taXQnKTtcblx0XHRjb21taXRCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBtdWx0aVN1Ym1pdCk7XG5cdFx0aWYgKG11bHRpU3Bhbikge1xuXHRcdFx0bXVsdGlTcGFuLnJlcGxhY2VXaXRoKGNvbW1pdEJ1dHRvbik7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGNhdExpbmUuYXBwZW5kKGNvbW1pdEJ1dHRvbik7XG5cdFx0fVxuXHR9O1xuXHRjb25zdCBjaGVja011bHRpSW5wdXQgPSAoKSA9PiB7XG5cdFx0aWYgKCFjb21taXRCdXR0b24pIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0bGV0IGhhc0NoYW5nZXMgPSBmYWxzZTtcblx0XHRmb3IgKGNvbnN0IGVkaXRvciBvZiBlZGl0b3JzKSB7XG5cdFx0XHRpZiAoZWRpdG9yLnN0YXRlICE9PSBVTkNIQU5HRUQpIHtcblx0XHRcdFx0aGFzQ2hhbmdlcyA9IHRydWU7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRjb21taXRCdXR0b24uZGlzYWJsZWQgPSAhaGFzQ2hhbmdlcztcblx0fTtcblx0Y29uc3Qgc3VnZ2VzdGlvbkVuZ2luZXMgPSB7XG5cdFx0b3BlbnNlYXJjaDoge1xuXHRcdFx0dXJpOiBgJHttdy5jb25maWcuZ2V0KFxuXHRcdFx0XHQnd2dTY3JpcHRQYXRoJ1xuXHRcdFx0KX0vYXBpLnBocD9mb3JtYXQ9anNvbiZhY3Rpb249b3BlbnNlYXJjaCZuYW1lc3BhY2U9MTQmbGltaXQ9MzAmc2VhcmNoPUNhdGVnb3J5OiQxYCxcblx0XHRcdC8vICQxID0gc2VhcmNoIHRlcm1cblx0XHRcdC8vIEZ1bmN0aW9uIHRvIGNvbnZlcnQgcmVzdWx0IG9mIHVyaSBpbnRvIGFuIGFycmF5IG9mIGNhdGVnb3J5IG5hbWVzXG5cdFx0XHRoYW5kbGVyOiAocXVlcnlSZXN1bHQsIHF1ZXJ5S2V5KSA9PiB7XG5cdFx0XHRcdGlmIChxdWVyeVJlc3VsdCAmJiBxdWVyeVJlc3VsdC5sZW5ndGggPj0gMikge1xuXHRcdFx0XHRcdGNvbnN0IGtleSA9IHF1ZXJ5UmVzdWx0WzBdLnNsaWNlKE1hdGgubWF4KDAsIHF1ZXJ5UmVzdWx0WzBdLmluZGV4T2YoJzonKSArIDEpKTtcblx0XHRcdFx0XHRjb25zdCBbLCB0aXRsZXNdID0gcXVlcnlSZXN1bHQ7XG5cdFx0XHRcdFx0bGV0IGV4aXN0cyA9IGZhbHNlO1xuXHRcdFx0XHRcdGNhdF9wcmVmaXggfHw9IG5ldyBSZWdFeHAoYF4oJHtIQy5jYXRlZ29yeV9yZWdleHB9KTpgKTtcblx0XHRcdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IHRpdGxlcy5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRcdFx0Y2F0X3ByZWZpeC5sYXN0SW5kZXggPSAwO1xuXHRcdFx0XHRcdFx0Y29uc3QgbSA9IGNhdF9wcmVmaXguZXhlYyh0aXRsZXNbaV0pO1xuXHRcdFx0XHRcdFx0aWYgKG0gJiYgbS5sZW5ndGggPiAxKSB7XG5cdFx0XHRcdFx0XHRcdHRpdGxlc1tpXSA9IHRpdGxlc1tpXS5zbGljZShNYXRoLm1heCgwLCB0aXRsZXNbaV0uaW5kZXhPZignOicpICsgMSkpOyAvLyBybSBuYW1lc3BhY2Vcblx0XHRcdFx0XHRcdFx0aWYgKGtleSA9PT0gdGl0bGVzW2ldKSB7XG5cdFx0XHRcdFx0XHRcdFx0ZXhpc3RzID0gdHJ1ZTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0dGl0bGVzLnNwbGljZShpLCAxKTsgLy8gTm9wZSwgaXQncyBub3QgYSBjYXRlZ29yeSBhZnRlciBhbGwuXG5cdFx0XHRcdFx0XHRcdGktLTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0dGl0bGVzLmV4aXN0cyA9IGV4aXN0cztcblx0XHRcdFx0XHRpZiAocXVlcnlLZXkgIT09IGtleSkge1xuXHRcdFx0XHRcdFx0dGl0bGVzLm5vcm1hbGl6ZWQgPSBrZXk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdC8vIFJlbWVtYmVyIHRoZSBORkMgbm9ybWFsaXplZCBrZXkgd2UgZ290IGJhY2sgZnJvbSB0aGUgc2VydmVyXG5cdFx0XHRcdFx0cmV0dXJuIHRpdGxlcztcblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gbnVsbDtcblx0XHRcdH0sXG5cdFx0fSxcblx0XHRpbnRlcm5hbHNlYXJjaDoge1xuXHRcdFx0dXJpOiBgJHttdy5jb25maWcuZ2V0KFxuXHRcdFx0XHQnd2dTY3JpcHRQYXRoJ1xuXHRcdFx0KX0vYXBpLnBocD9mb3JtYXQ9anNvbiZhY3Rpb249cXVlcnkmbGlzdD1hbGxwYWdlcyZhcG5hbWVzcGFjZT0xNCZhcGxpbWl0PTMwJmFwZnJvbT0kMSZhcHByZWZpeD0kMWAsXG5cdFx0XHRoYW5kbGVyOiAocXVlcnlSZXN1bHQpID0+IHtcblx0XHRcdFx0aWYgKHF1ZXJ5UmVzdWx0ICYmIHF1ZXJ5UmVzdWx0LnF1ZXJ5ICYmIHF1ZXJ5UmVzdWx0LnF1ZXJ5LmFsbHBhZ2VzKSB7XG5cdFx0XHRcdFx0Y29uc3QgdGl0bGVzID0gcXVlcnlSZXN1bHQucXVlcnkuYWxscGFnZXM7XG5cdFx0XHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCB0aXRsZXMubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0XHRcdHRpdGxlc1tpXSA9IHRpdGxlc1tpXS50aXRsZS5zbGljZShNYXRoLm1heCgwLCB0aXRsZXNbaV0udGl0bGUuaW5kZXhPZignOicpICsgMSkpO1xuXHRcdFx0XHRcdH0gLy8gcm0gbmFtZXNwYWNlXG5cdFx0XHRcdFx0cmV0dXJuIHRpdGxlcztcblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gbnVsbDtcblx0XHRcdH0sXG5cdFx0fSxcblx0XHRleGlzdHM6IHtcblx0XHRcdHVyaTogYCR7bXcuY29uZmlnLmdldCgnd2dTY3JpcHRQYXRoJyl9L2FwaS5waHA/Zm9ybWF0PWpzb24mYWN0aW9uPXF1ZXJ5JnByb3A9aW5mbyZ0aXRsZXM9Q2F0ZWdvcnk6JDFgLFxuXHRcdFx0aGFuZGxlcjogKHF1ZXJ5UmVzdWx0LCBxdWVyeUtleSkgPT4ge1xuXHRcdFx0XHRpZiAocXVlcnlSZXN1bHQgJiYgcXVlcnlSZXN1bHQucXVlcnkgJiYgcXVlcnlSZXN1bHQucXVlcnkucGFnZXMgJiYgIXF1ZXJ5UmVzdWx0LnF1ZXJ5LnBhZ2VzWy0xXSkge1xuXHRcdFx0XHRcdC8vIFNob3VsZCBoYXZlIGV4YWN0bHkgMVxuXHRcdFx0XHRcdGZvciAoY29uc3QgcCBpbiBxdWVyeVJlc3VsdC5xdWVyeS5wYWdlcykge1xuXHRcdFx0XHRcdFx0aWYgKCFPYmplY3QuaGFzT3duKHF1ZXJ5UmVzdWx0LnF1ZXJ5LnBhZ2VzLCBwKSkge1xuXHRcdFx0XHRcdFx0XHRjb250aW51ZTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdGxldCBfdGl0bGUgPSBxdWVyeVJlc3VsdC5xdWVyeS5wYWdlc1twXS50aXRsZTtcblx0XHRcdFx0XHRcdF90aXRsZSA9IF90aXRsZS5zbGljZShNYXRoLm1heCgwLCBfdGl0bGUuaW5kZXhPZignOicpICsgMSkpO1xuXHRcdFx0XHRcdFx0Y29uc3QgdGl0bGVzID0gW190aXRsZV07XG5cdFx0XHRcdFx0XHR0aXRsZXMuZXhpc3RzID0gdHJ1ZTtcblx0XHRcdFx0XHRcdGlmIChxdWVyeUtleSAhPT0gX3RpdGxlKSB7XG5cdFx0XHRcdFx0XHRcdHRpdGxlcy5ub3JtYWxpemVkID0gX3RpdGxlO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0Ly8gTkZDXG5cdFx0XHRcdFx0XHRyZXR1cm4gdGl0bGVzO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gbnVsbDtcblx0XHRcdH0sXG5cdFx0fSxcblx0XHRzdWJjYXRlZ29yaWVzOiB7XG5cdFx0XHR1cmk6IGAke213LmNvbmZpZy5nZXQoXG5cdFx0XHRcdCd3Z1NjcmlwdFBhdGgnXG5cdFx0XHQpfS9hcGkucGhwP2Zvcm1hdD1qc29uJmFjdGlvbj1xdWVyeSZsaXN0PWNhdGVnb3J5bWVtYmVycyZjbXR5cGU9c3ViY2F0JmNtbGltaXQ9bWF4JmNtdGl0bGU9Q2F0ZWdvcnk6JDFgLFxuXHRcdFx0aGFuZGxlcjogKHF1ZXJ5UmVzdWx0KSA9PiB7XG5cdFx0XHRcdGlmIChxdWVyeVJlc3VsdCAmJiBxdWVyeVJlc3VsdC5xdWVyeSAmJiBxdWVyeVJlc3VsdC5xdWVyeS5jYXRlZ29yeW1lbWJlcnMpIHtcblx0XHRcdFx0XHRjb25zdCB0aXRsZXMgPSBxdWVyeVJlc3VsdC5xdWVyeS5jYXRlZ29yeW1lbWJlcnM7XG5cdFx0XHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCB0aXRsZXMubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0XHRcdHRpdGxlc1tpXSA9IHRpdGxlc1tpXS50aXRsZS5zbGljZShNYXRoLm1heCgwLCB0aXRsZXNbaV0udGl0bGUuaW5kZXhPZignOicpICsgMSkpO1xuXHRcdFx0XHRcdH0gLy8gcm0gbmFtZXNwYWNlXG5cdFx0XHRcdFx0cmV0dXJuIHRpdGxlcztcblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gbnVsbDtcblx0XHRcdH0sXG5cdFx0fSxcblx0XHRwYXJlbnRjYXRlZ29yaWVzOiB7XG5cdFx0XHR1cmk6IGAke213LmNvbmZpZy5nZXQoXG5cdFx0XHRcdCd3Z1NjcmlwdFBhdGgnXG5cdFx0XHQpfS9hcGkucGhwP2Zvcm1hdD1qc29uJmFjdGlvbj1xdWVyeSZwcm9wPWNhdGVnb3JpZXMmdGl0bGVzPUNhdGVnb3J5OiQxJmNsbGltaXQ9bWF4YCxcblx0XHRcdGhhbmRsZXI6IChxdWVyeVJlc3VsdCkgPT4ge1xuXHRcdFx0XHRpZiAocXVlcnlSZXN1bHQgJiYgcXVlcnlSZXN1bHQucXVlcnkgJiYgcXVlcnlSZXN1bHQucXVlcnkucGFnZXMpIHtcblx0XHRcdFx0XHRmb3IgKGNvbnN0IHAgaW4gcXVlcnlSZXN1bHQucXVlcnkucGFnZXMpIHtcblx0XHRcdFx0XHRcdGlmIChxdWVyeVJlc3VsdC5xdWVyeS5wYWdlc1twXS5jYXRlZ29yaWVzKSB7XG5cdFx0XHRcdFx0XHRcdGNvbnN0IHRpdGxlcyA9IHF1ZXJ5UmVzdWx0LnF1ZXJ5LnBhZ2VzW3BdLmNhdGVnb3JpZXM7XG5cdFx0XHRcdFx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgdGl0bGVzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdFx0XHRcdFx0dGl0bGVzW2ldID0gdGl0bGVzW2ldLnRpdGxlLnNsaWNlKE1hdGgubWF4KDAsIHRpdGxlc1tpXS50aXRsZS5pbmRleE9mKCc6JykgKyAxKSk7XG5cdFx0XHRcdFx0XHRcdH0gLy8gcm0gbmFtZXNwYWNlXG5cdFx0XHRcdFx0XHRcdHJldHVybiB0aXRsZXM7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiBudWxsO1xuXHRcdFx0fSxcblx0XHR9LFxuXHR9O1xuXHRjb25zdCBzdWdnZXN0aW9uQ29uZmlncyA9IHtcblx0XHRzZWFyY2hpbmRleDoge1xuXHRcdFx0bmFtZTogJ1NlYXJjaCBpbmRleCcsXG5cdFx0XHRlbmdpbmVzOiBbJ29wZW5zZWFyY2gnXSxcblx0XHRcdGNhY2hlOiB7fSxcblx0XHRcdHNob3c6IHRydWUsXG5cdFx0XHR0ZW1wOiBmYWxzZSxcblx0XHRcdG5vQ29tcGxldGlvbjogZmFsc2UsXG5cdFx0fSxcblx0XHRwYWdlbGlzdDoge1xuXHRcdFx0bmFtZTogJ1BhZ2UgbGlzdCcsXG5cdFx0XHRlbmdpbmVzOiBbJ2ludGVybmFsc2VhcmNoJywgJ2V4aXN0cyddLFxuXHRcdFx0Y2FjaGU6IHt9LFxuXHRcdFx0c2hvdzogdHJ1ZSxcblx0XHRcdHRlbXA6IGZhbHNlLFxuXHRcdFx0bm9Db21wbGV0aW9uOiBmYWxzZSxcblx0XHR9LFxuXHRcdGNvbWJpbmVkOiB7XG5cdFx0XHRuYW1lOiAnQ29tYmluZWQgc2VhcmNoJyxcblx0XHRcdGVuZ2luZXM6IFsnb3BlbnNlYXJjaCcsICdpbnRlcm5hbHNlYXJjaCddLFxuXHRcdFx0Y2FjaGU6IHt9LFxuXHRcdFx0c2hvdzogdHJ1ZSxcblx0XHRcdHRlbXA6IGZhbHNlLFxuXHRcdFx0bm9Db21wbGV0aW9uOiBmYWxzZSxcblx0XHR9LFxuXHRcdHN1YmNhdDoge1xuXHRcdFx0bmFtZTogJ1N1YmNhdGVnb3JpZXMnLFxuXHRcdFx0ZW5naW5lczogWydzdWJjYXRlZ29yaWVzJ10sXG5cdFx0XHRjYWNoZToge30sXG5cdFx0XHRzaG93OiB0cnVlLFxuXHRcdFx0dGVtcDogdHJ1ZSxcblx0XHRcdG5vQ29tcGxldGlvbjogdHJ1ZSxcblx0XHR9LFxuXHRcdHBhcmVudGNhdDoge1xuXHRcdFx0bmFtZTogJ1BhcmVudCBjYXRlZ29yaWVzJyxcblx0XHRcdGVuZ2luZXM6IFsncGFyZW50Y2F0ZWdvcmllcyddLFxuXHRcdFx0Y2FjaGU6IHt9LFxuXHRcdFx0c2hvdzogdHJ1ZSxcblx0XHRcdHRlbXA6IHRydWUsXG5cdFx0XHRub0NvbXBsZXRpb246IHRydWUsXG5cdFx0fSxcblx0fTtcblx0Ly8gRXZlbnQga2V5Q29kZXMgdGhhdCB3ZSBoYW5kbGUgaW4gdGhlIHRleHQgaW5wdXQgZmllbGQvc3VnZ2VzdGlvbiBsaXN0LlxuXHRjb25zdCBCUyA9IDg7XG5cdGNvbnN0IFRBQiA9IDk7XG5cdGNvbnN0IFJFVCA9IDEzO1xuXHRjb25zdCBFU0MgPSAyNztcblx0Y29uc3QgU1BBQ0UgPSAzMjtcblx0Y29uc3QgUEdVUCA9IDMzO1xuXHRjb25zdCBQR0RPV04gPSAzNDtcblx0Y29uc3QgVVAgPSAzODtcblx0Y29uc3QgRE9XTiA9IDQwO1xuXHRjb25zdCBERUwgPSA0Njtcblx0Y29uc3QgSU1FID0gMjI5O1xuXHRjbGFzcyBDYXRlZ29yeUVkaXRvciB7XG5cdFx0Y29uc3RydWN0b3IoLi4uYXJncykge1xuXHRcdFx0dGhpcy5pbml0aWFsaXplKC4uLmFyZ3MpO1xuXHRcdH1cblx0XHRpc0NvbXBvc2l0aW9uU3RhcnQgPSBmYWxzZTtcblx0XHRpbml0aWFsaXplKGxpbmUsIHNwYW4sIGFmdGVyLCBrZXksIGlzX2hpZGRlbikge1xuXHRcdFx0Ly8gSWYgYSBzcGFuIGlzIGdpdmVuLCAnYWZ0ZXInIGlzIHRoZSBjYXRlZ29yeSB0aXRsZSwgb3RoZXJ3aXNlIGl0IG1heSBiZSBhbiBlbGVtZW50IGFmdGVyIHdoaWNoIHRvXG5cdFx0XHQvLyBpbnNlcnQgdGhlIG5ldyBzcGFuLiAna2V5JyBpcyBsaWtld2lzZSBvdmVybG9hZGVkOyBpZiBhIHNwYW4gaXMgZ2l2ZW4sIGl0IGlzIHRoZSBjYXRlZ29yeSBrZXkgKGlmXG5cdFx0XHQvLyBrbm93biksIG90aGVyd2lzZSBpdCBpcyBhIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIGEgYmFyIHNoYWxsIGJlIHByZXBlbmRlZC5cblx0XHRcdGlmIChzcGFuKSB7XG5cdFx0XHRcdGlmIChpc19ydGwpIHtcblx0XHRcdFx0XHRzcGFuLmRpciA9ICdydGwnO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHRoaXMuaXNBZGRDYXRlZ29yeSA9IGZhbHNlO1xuXHRcdFx0XHR0aGlzLmNhdExpbmsgPSBzcGFuLmZpcnN0Q2hpbGQ7XG5cdFx0XHRcdHRoaXMub3JpZ2luYWxDYXRlZ29yeSA9IGFmdGVyO1xuXHRcdFx0XHR0aGlzLm9yaWdpbmFsS2V5ID0ga2V5ICYmIGtleS5sZW5ndGggPiAxID8ga2V5LnNsaWNlKDEpIDogbnVsbDsgLy8gPiAxIGJlY2F1c2UgaXQgaW5jbHVkZXMgdGhlIGxlYWRpbmcgYmFyXG5cdFx0XHRcdHRoaXMub3JpZ2luYWxFeGlzdHMgPSAhaGFzQ2xhc3ModGhpcy5jYXRMaW5rLCAnbmV3Jyk7XG5cdFx0XHRcdC8vIENyZWF0ZSBjaGFuZ2UgYW5kIGRlbCBsaW5rc1xuXHRcdFx0XHR0aGlzLm1ha2VMaW5rU3BhbigpO1xuXHRcdFx0XHRpZiAoIXRoaXMub3JpZ2luYWxFeGlzdHMgJiYgdGhpcy51cERvd25MaW5rcykge1xuXHRcdFx0XHRcdHRoaXMudXBEb3duTGlua3Muc3R5bGUuZGlzcGxheSA9ICdub25lJztcblx0XHRcdFx0fVxuXHRcdFx0XHRzcGFuLmFwcGVuZCh0aGlzLmxpbmtTcGFuKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHRoaXMuaXNBZGRDYXRlZ29yeSA9IHRydWU7XG5cdFx0XHRcdC8vIENyZWF0ZSBhZGQgc3BhbiBhbmQgYXBwZW5kIHRvIGNhdExpbmtzXG5cdFx0XHRcdHRoaXMub3JpZ2luYWxDYXRlZ29yeSA9ICcnO1xuXHRcdFx0XHR0aGlzLm9yaWdpbmFsS2V5ID0gbnVsbDtcblx0XHRcdFx0dGhpcy5vcmlnaW5hbEV4aXN0cyA9IGZhbHNlO1xuXHRcdFx0XHRpZiAoIW5ld0RPTSkge1xuXHRcdFx0XHRcdHNwYW4gPSBtYWtlKCdzcGFuJyk7XG5cdFx0XHRcdFx0c3Bhbi5jbGFzc05hbWUgPSAnbm9wcmludCc7XG5cdFx0XHRcdFx0aWYgKGtleSkge1xuXHRcdFx0XHRcdFx0c3Bhbi5hcHBlbmQobWFrZSgnIHwgJywgdHJ1ZSkpO1xuXHRcdFx0XHRcdFx0aWYgKGFmdGVyKSB7XG5cdFx0XHRcdFx0XHRcdGFmdGVyLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHNwYW4sIGFmdGVyLm5leHRTaWJsaW5nKTtcblx0XHRcdFx0XHRcdFx0YWZ0ZXIgPSBhZnRlci5uZXh0U2libGluZztcblx0XHRcdFx0XHRcdH0gZWxzZSBpZiAobGluZSkge1xuXHRcdFx0XHRcdFx0XHRsaW5lLmFwcGVuZChzcGFuKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9IGVsc2UgaWYgKGxpbmUgJiYgbGluZS5maXJzdENoaWxkKSB7XG5cdFx0XHRcdFx0XHRzcGFuLmFwcGVuZChtYWtlKCcgJywgdHJ1ZSkpO1xuXHRcdFx0XHRcdFx0bGluZS5hcHBlbmQoc3Bhbik7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdHRoaXMubGlua1NwYW4gPSBtYWtlKCdzcGFuJyk7XG5cdFx0XHRcdHRoaXMubGlua1NwYW4uY2xhc3NOYW1lID0gJ25vcHJpbnQgbm9wb3B1cHMgaG90Y2F0bGluayc7XG5cdFx0XHRcdGNvbnN0IGxpbmsgPSBtYWtlKCdhJyk7XG5cdFx0XHRcdGxpbmsuaHJlZiA9ICcjY2F0bGlua3MnO1xuXHRcdFx0XHRsaW5rLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5vcGVuLmJpbmQodGhpcykpO1xuXHRcdFx0XHRsaW5rLmFwcGVuZChtYWtlKEhDLmxpbmtzLmFkZCwgdHJ1ZSkpO1xuXHRcdFx0XHRsaW5rLnRpdGxlID0gZ2V0TWVzc2FnZSgndG9vbHRpcHMtYWRkJyk7XG5cdFx0XHRcdHRoaXMubGlua1NwYW4uYXBwZW5kKGxpbmspO1xuXHRcdFx0XHRzcGFuID0gbWFrZShuZXdET00gPyAnbGknIDogJ3NwYW4nKTtcblx0XHRcdFx0c3Bhbi5jbGFzc05hbWUgPSAnbm9wcmludCc7XG5cdFx0XHRcdGlmIChpc19ydGwpIHtcblx0XHRcdFx0XHRzcGFuLmRpciA9ICdydGwnO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHNwYW4uYXBwZW5kKHRoaXMubGlua1NwYW4pO1xuXHRcdFx0XHRpZiAoYWZ0ZXIpIHtcblx0XHRcdFx0XHRhZnRlci5wYXJlbnROb2RlLmluc2VydEJlZm9yZShzcGFuLCBhZnRlci5uZXh0U2libGluZyk7XG5cdFx0XHRcdH0gZWxzZSBpZiAobGluZSkge1xuXHRcdFx0XHRcdGxpbmUuYXBwZW5kKHNwYW4pO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHRoaXMubm9ybWFsTGlua3MgPSBudWxsO1xuXHRcdFx0XHR0aGlzLnVuZGVsTGluayA9IG51bGw7XG5cdFx0XHRcdHRoaXMuY2F0TGluayA9IG51bGw7XG5cdFx0XHR9XG5cdFx0XHR0aGlzLm9yaWdpbmFsSGlkZGVuID0gaXNfaGlkZGVuO1xuXHRcdFx0dGhpcy5saW5lID0gbGluZTtcblx0XHRcdHRoaXMuZW5naW5lID0gSEMuc3VnZ2VzdGlvbnM7XG5cdFx0XHR0aGlzLnNwYW4gPSBzcGFuO1xuXHRcdFx0dGhpcy5jdXJyZW50Q2F0ZWdvcnkgPSB0aGlzLm9yaWdpbmFsQ2F0ZWdvcnk7XG5cdFx0XHR0aGlzLmN1cnJlbnRFeGlzdHMgPSB0aGlzLm9yaWdpbmFsRXhpc3RzO1xuXHRcdFx0dGhpcy5jdXJyZW50SGlkZGVuID0gdGhpcy5vcmlnaW5hbEhpZGRlbjtcblx0XHRcdHRoaXMuY3VycmVudEtleSA9IHRoaXMub3JpZ2luYWxLZXk7XG5cdFx0XHR0aGlzLnN0YXRlID0gVU5DSEFOR0VEO1xuXHRcdFx0dGhpcy5sYXN0U2F2ZWRTdGF0ZSA9IFVOQ0hBTkdFRDtcblx0XHRcdHRoaXMubGFzdFNhdmVkQ2F0ZWdvcnkgPSB0aGlzLm9yaWdpbmFsQ2F0ZWdvcnk7XG5cdFx0XHR0aGlzLmxhc3RTYXZlZEtleSA9IHRoaXMub3JpZ2luYWxLZXk7XG5cdFx0XHR0aGlzLmxhc3RTYXZlZEV4aXN0cyA9IHRoaXMub3JpZ2luYWxFeGlzdHM7XG5cdFx0XHR0aGlzLmxhc3RTYXZlZEhpZGRlbiA9IHRoaXMub3JpZ2luYWxIaWRkZW47XG5cdFx0XHRpZiAodGhpcy5jYXRMaW5rICYmIHRoaXMuY3VycmVudEtleSkge1xuXHRcdFx0XHR0aGlzLmNhdExpbmsudGl0bGUgPSB0aGlzLmN1cnJlbnRLZXk7XG5cdFx0XHR9XG5cdFx0XHRlZGl0b3JzW2VkaXRvcnMubGVuZ3RoXSA9IHRoaXM7XG5cdFx0fVxuXHRcdG1ha2VMaW5rU3BhbigpIHtcblx0XHRcdHRoaXMubm9ybWFsTGlua3MgPSBtYWtlKCdzcGFuJyk7XG5cdFx0XHRsZXQgbGluayA9IG51bGw7XG5cdFx0XHRpZiAodGhpcy5vcmlnaW5hbENhdGVnb3J5ICYmIHRoaXMub3JpZ2luYWxDYXRlZ29yeS5sZW5ndGggPiAwKSB7XG5cdFx0XHRcdGxpbmsgPSBtYWtlKCdhJyk7XG5cdFx0XHRcdGxpbmsuaHJlZiA9ICcjY2F0bGlua3MnO1xuXHRcdFx0XHRsaW5rLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5yZW1vdmUuYmluZCh0aGlzKSk7XG5cdFx0XHRcdGxpbmsuYXBwZW5kKG1ha2UoSEMubGlua3MucmVtb3ZlLCB0cnVlKSk7XG5cdFx0XHRcdGxpbmsudGl0bGUgPSBnZXRNZXNzYWdlKCd0b29sdGlwcy1yZW1vdmUnKTtcblx0XHRcdFx0dGhpcy5ub3JtYWxMaW5rcy5hcHBlbmQobWFrZSgnICcsIHRydWUpKTtcblx0XHRcdFx0dGhpcy5ub3JtYWxMaW5rcy5hcHBlbmQobGluayk7XG5cdFx0XHR9XG5cdFx0XHRpZiAoIUhDLnRlbXBsYXRlX2NhdGVnb3JpZXNbdGhpcy5vcmlnaW5hbENhdGVnb3J5XSkge1xuXHRcdFx0XHRsaW5rID0gbWFrZSgnYScpO1xuXHRcdFx0XHRsaW5rLmhyZWYgPSAnI2NhdGxpbmtzJztcblx0XHRcdFx0bGluay5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMub3Blbi5iaW5kKHRoaXMpKTtcblx0XHRcdFx0bGluay5hcHBlbmQobWFrZShIQy5saW5rcy5jaGFuZ2UsIHRydWUpKTtcblx0XHRcdFx0bGluay50aXRsZSA9IGdldE1lc3NhZ2UoJ3Rvb2x0aXBzLWNoYW5nZScpO1xuXHRcdFx0XHR0aGlzLm5vcm1hbExpbmtzLmFwcGVuZChtYWtlKCcgJywgdHJ1ZSkpO1xuXHRcdFx0XHR0aGlzLm5vcm1hbExpbmtzLmFwcGVuZChsaW5rKTtcblx0XHRcdFx0aWYgKCFub1N1Z2dlc3Rpb25zICYmIEhDLnVzZV91cF9kb3duKSB7XG5cdFx0XHRcdFx0dGhpcy51cERvd25MaW5rcyA9IG1ha2UoJ3NwYW4nKTtcblx0XHRcdFx0XHRsaW5rID0gbWFrZSgnYScpO1xuXHRcdFx0XHRcdGxpbmsuaHJlZiA9ICcjY2F0bGlua3MnO1xuXHRcdFx0XHRcdGxpbmsuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLmRvd24uYmluZCh0aGlzKSk7XG5cdFx0XHRcdFx0bGluay5hcHBlbmQobWFrZShIQy5saW5rcy5kb3duLCB0cnVlKSk7XG5cdFx0XHRcdFx0bGluay50aXRsZSA9IGdldE1lc3NhZ2UoJ3Rvb2x0aXBzLWRvd24nKTtcblx0XHRcdFx0XHR0aGlzLnVwRG93bkxpbmtzLmFwcGVuZChtYWtlKCcgJywgdHJ1ZSkpO1xuXHRcdFx0XHRcdHRoaXMudXBEb3duTGlua3MuYXBwZW5kKGxpbmspO1xuXHRcdFx0XHRcdGxpbmsgPSBtYWtlKCdhJyk7XG5cdFx0XHRcdFx0bGluay5ocmVmID0gJyNjYXRsaW5rcyc7XG5cdFx0XHRcdFx0bGluay5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMudXAuYmluZCh0aGlzKSk7XG5cdFx0XHRcdFx0bGluay5hcHBlbmQobWFrZShIQy5saW5rcy51cCwgdHJ1ZSkpO1xuXHRcdFx0XHRcdGxpbmsudGl0bGUgPSBnZXRNZXNzYWdlKCd0b29sdGlwcy11cCcpO1xuXHRcdFx0XHRcdHRoaXMudXBEb3duTGlua3MuYXBwZW5kKG1ha2UoJyAnLCB0cnVlKSk7XG5cdFx0XHRcdFx0dGhpcy51cERvd25MaW5rcy5hcHBlbmQobGluayk7XG5cdFx0XHRcdFx0dGhpcy5ub3JtYWxMaW5rcy5hcHBlbmQodGhpcy51cERvd25MaW5rcyk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdHRoaXMubGlua1NwYW4gPSBtYWtlKCdzcGFuJyk7XG5cdFx0XHR0aGlzLmxpbmtTcGFuLmNsYXNzTmFtZSA9ICdub3ByaW50IG5vcG9wdXBzIGhvdGNhdGxpbmsnO1xuXHRcdFx0dGhpcy5saW5rU3Bhbi5hcHBlbmQodGhpcy5ub3JtYWxMaW5rcyk7XG5cdFx0XHR0aGlzLnVuZGVsTGluayA9IG1ha2UoJ3NwYW4nKTtcblx0XHRcdHRoaXMudW5kZWxMaW5rLmNsYXNzTmFtZSA9ICdub3BvcHVwcyBob3RjYXRsaW5rJztcblx0XHRcdHRoaXMudW5kZWxMaW5rLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG5cdFx0XHRsaW5rID0gbWFrZSgnYScpO1xuXHRcdFx0bGluay5ocmVmID0gJyNjYXRsaW5rcyc7XG5cdFx0XHRsaW5rLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5yZXN0b3JlLmJpbmQodGhpcykpO1xuXHRcdFx0bGluay5hcHBlbmQobWFrZShIQy5saW5rcy5yZXN0b3JlLCB0cnVlKSk7XG5cdFx0XHRsaW5rLnRpdGxlID0gZ2V0TWVzc2FnZSgndG9vbHRpcHMtcmVzdG9yZScpO1xuXHRcdFx0dGhpcy51bmRlbExpbmsuYXBwZW5kKG1ha2UoJyAnLCB0cnVlKSk7XG5cdFx0XHR0aGlzLnVuZGVsTGluay5hcHBlbmQobGluayk7XG5cdFx0XHR0aGlzLmxpbmtTcGFuLmFwcGVuZCh0aGlzLnVuZGVsTGluayk7XG5cdFx0fVxuXHRcdGludm9rZVN1Z2dlc3Rpb25zKGRvbnRfYXV0b2NvbXBsZXRlKSB7XG5cdFx0XHRpZiAoXG5cdFx0XHRcdHRoaXMuZW5naW5lICYmXG5cdFx0XHRcdHN1Z2dlc3Rpb25Db25maWdzW3RoaXMuZW5naW5lXSAmJlxuXHRcdFx0XHRzdWdnZXN0aW9uQ29uZmlnc1t0aGlzLmVuZ2luZV0udGVtcCAmJlxuXHRcdFx0XHQhZG9udF9hdXRvY29tcGxldGVcblx0XHRcdCkge1xuXHRcdFx0XHR0aGlzLmVuZ2luZSA9IEhDLnN1Z2dlc3Rpb25zO1xuXHRcdFx0fSAvLyBSZXNldCB0byBhIHNlYXJjaCB1cG9uIGlucHV0XG5cdFx0XHR0aGlzLnN0YXRlID0gQ0hBTkdFX1BFTkRJTkc7XG5cdFx0XHRjb25zdCBzZWxmID0gdGhpcztcblx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0XHRzZWxmLnRleHRjaGFuZ2UoZG9udF9hdXRvY29tcGxldGUpO1xuXHRcdFx0fSwgSEMuc3VnZ2VzdF9kZWxheSk7XG5cdFx0fVxuXHRcdG1ha2VGb3JtKCkge1xuXHRcdFx0Y29uc3QgZm9ybSA9IG1ha2UoJ2Zvcm0nKTtcblx0XHRcdGZvcm0ubWV0aG9kID0gJ1BPU1QnO1xuXHRcdFx0Zm9ybS5hZGRFdmVudExpc3RlbmVyKCdzdWJtaXQnLCB0aGlzLmFjY2VwdC5iaW5kKHRoaXMpKTtcblx0XHRcdHRoaXMuZm9ybSA9IGZvcm07XG5cdFx0XHRjb25zdCBzZWxmID0gdGhpcztcblx0XHRcdGNvbnN0IHRleHQgPSBtYWtlKCdpbnB1dCcpO1xuXHRcdFx0dGV4dC50eXBlID0gJ3RleHQnO1xuXHRcdFx0dGV4dC5zaXplID0gSEMuZWRpdGJveF93aWR0aDtcblx0XHRcdGlmICghbm9TdWdnZXN0aW9ucykge1xuXHRcdFx0XHQvLyBCZSBjYXJlZnVsIGhlcmUgdG8gaGFuZGxlIElNRSBpbnB1dC4gVGhpcyBpcyBicm93c2VyL09TL0lNRSBkZXBlbmRlbnQsIGJ1dCBiYXNpY2FsbHkgdGhlcmUgYXJlIHR3byBtZWNoYW5pc21zOlxuXHRcdFx0XHQvLyAtIE1vZGVybiAoRE9NIExldmVsIDMpIGJyb3dzZXJzIHVzZSBjb21wb3NpdGlvbnN0YXJ0L2NvbXBvc2l0aW9uZW5kIGV2ZW50cyB0byBzaWduYWwgY29tcG9zaXRpb247IGlmIHRoZVxuXHRcdFx0XHQvLyAgIGNvbXBvc2l0aW9uIGlzIG5vdCBjYW5jZWxlZCwgdGhlcmUnbGwgYmUgYSB0ZXh0SW5wdXQgZXZlbnQgZm9sbG93aW5nLiBEdXJpbmcgYSBjb21wb3NpdGlvbiBrZXkgZXZlbnRzIGFyZVxuXHRcdFx0XHQvLyAgIGVpdGhlciBhbGwgc3VwcHJlc3NlZCAoRkYvR2Vja28pLCBvciBvdGhlcndpc2UgaGF2ZSBrZXlEb3duID09PSBJTUUgZm9yIGFsbCBrZXlzIChXZWJraXQpLlxuXHRcdFx0XHQvLyAgIC0gV2Via2l0IHNlbmRzIGEgdGV4dElucHV0IGZvbGxvd2VkIGJ5IGtleURvd24gPT09IElNRSBhbmQgYSBrZXlVcCB3aXRoIHRoZSBrZXkgdGhhdCBlbmRlZCBjb21wb3NpdGlvbi5cblx0XHRcdFx0Ly8gICAtIEdlY2tvIGRvZXNuJ3Qgc2VuZCB0ZXh0SW5wdXQgYnV0IGp1c3QgYSBrZXlVcCB3aXRoIHRoZSBrZXkgdGhhdCBlbmRlZCBjb21wb3NpdGlvbiwgd2l0aG91dCBzZW5kaW5nIGtleURvd25cblx0XHRcdFx0Ly9cdCBmaXJzdC4gR2Vja28gZG9lc24ndCBzZW5kIGFueSBrZXlkb3duIHdoaWxlIElNRSBpcyBhY3RpdmUuXG5cdFx0XHRcdC8vIC0gT2xkZXIgYnJvd3NlcnMgc2lnbmFsIGNvbXBvc2l0aW9uIGJ5IGtleURvd24gPT09IElNRSBmb3IgdGhlIGZpcnN0IGFuZCBzdWJzZXF1ZW50IGtleXMgZm9yIGEgY29tcG9zaXRpb24uIFRoZVxuXHRcdFx0XHQvLyAgIGZpcnN0IGtleURvd24gIT09IElNRSBpcyBjZXJ0YWlubHkgYWZ0ZXIgdGhlIGVuZCBvZiB0aGUgY29tcG9zaXRpb24uIFR5cGljYWxseSwgY29tcG9zaXRpb24gZW5kIGNhbiBhbHNvIGJlXG5cdFx0XHRcdC8vICAgZGV0ZWN0ZWQgYnkgYSBrZXlEb3duIElNRSB3aXRoIGEga2V5VXAgb2Ygc3BhY2UsIHRhYiwgZXNjYXBlLCBvciByZXR1cm4uXG5cdFx0XHRcdHRleHQuYWRkRXZlbnRMaXN0ZW5lcigna2V5dXAnLCAoZXZlbnQpID0+IHtcblx0XHRcdFx0XHRjb25zdCBrZXkgPSBldmVudC5rZXkgfHwgMDtcblx0XHRcdFx0XHRpZiAoXG5cdFx0XHRcdFx0XHRzZWxmLmltZSAmJlxuXHRcdFx0XHRcdFx0c2VsZi5sYXN0S2V5ID09PSBJTUUgJiZcblx0XHRcdFx0XHRcdCFzZWxmLnVzZXNDb21wb3NpdGlvbiAmJlxuXHRcdFx0XHRcdFx0KGtleSA9PT0gVEFCIHx8IGtleSA9PT0gUkVUIHx8IGtleSA9PT0gRVNDIHx8IGtleSA9PT0gU1BBQ0UpXG5cdFx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0XHRzZWxmLmltZSA9IGZhbHNlO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRpZiAoc2VsZi5pbWUpIHtcblx0XHRcdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRpZiAoa2V5ID09PSBVUCB8fCBrZXkgPT09IERPV04gfHwga2V5ID09PSBQR1VQIHx8IGtleSA9PT0gUEdET1dOKSB7XG5cdFx0XHRcdFx0XHQvLyBJbiBjYXNlIGEgYnJvd3NlciBkb2Vzbid0IGdlbmVyYXRlIGtleXByZXNzIGV2ZW50cyBmb3IgYXJyb3cga2V5cy4uLlxuXHRcdFx0XHRcdFx0aWYgKHNlbGYua2V5Q291bnQgPT09IDApIHtcblx0XHRcdFx0XHRcdFx0cmV0dXJuIHNlbGYucHJvY2Vzc0tleShldmVudCk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdGlmIChrZXkgPT09IEVTQyAmJiBzZWxmLmxhc3RLZXkgIT09IElNRSAmJiAhc2VsZi5yZXNldEtleVNlbGVjdGlvbigpKSB7XG5cdFx0XHRcdFx0XHRcdC8vIE5vIHVuZG8gb2Yga2V5IHNlbGVjdGlvbjogdHJlYXQgRVNDIGFzIFwiY2FuY2VsXCIuXG5cdFx0XHRcdFx0XHRcdHNlbGYuY2FuY2VsKCk7XG5cdFx0XHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdC8vIEFsc28gZG8gdGhpcyBmb3IgRVNDIGFzIGEgd29ya2Fyb3VuZCBmb3IgRmlyZWZveCBidWcgNTI0MzYwXG5cdFx0XHRcdFx0XHQvLyB7QGxpbmsgaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTI0MzYwfVxuXHRcdFx0XHRcdFx0aWYgKHNlbGYuaXNDb21wb3NpdGlvblN0YXJ0KSB7XG5cdFx0XHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdHNlbGYuaW52b2tlU3VnZ2VzdGlvbnMoa2V5ID09PSBCUyB8fCBrZXkgPT09IERFTCB8fCBrZXkgPT09IEVTQyk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0XHR9KTtcblx0XHRcdFx0dGV4dC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgKGV2ZW50KSA9PiB7XG5cdFx0XHRcdFx0Y29uc3Qga2V5ID0gZXZlbnQua2V5IHx8IDA7XG5cdFx0XHRcdFx0c2VsZi5sYXN0S2V5ID0ga2V5O1xuXHRcdFx0XHRcdHNlbGYua2V5Q291bnQgPSAwO1xuXHRcdFx0XHRcdC8vIERPTSBMZXZlbCA8IDMgSU1FIGlucHV0XG5cdFx0XHRcdFx0aWYgKCFzZWxmLmltZSAmJiBrZXkgPT09IElNRSAmJiAhc2VsZi51c2VzQ29tcG9zaXRpb24pIHtcblx0XHRcdFx0XHRcdC8vIHNlbGYudXNlc0NvbXBvc2l0aW9uIGNhdGNoZXMgYnJvd3NlcnMgdGhhdCBtYXkgZW1pdCBzcHVyaW91cyBrZXlkb3duIElNRSBhZnRlciBhIGNvbXBvc2l0aW9uIGhhcyBlbmRlZFxuXHRcdFx0XHRcdFx0c2VsZi5pbWUgPSB0cnVlO1xuXHRcdFx0XHRcdH0gZWxzZSBpZiAoXG5cdFx0XHRcdFx0XHRzZWxmLmltZSAmJlxuXHRcdFx0XHRcdFx0a2V5ICE9PSBJTUUgJiZcblx0XHRcdFx0XHRcdCEoKGtleSA+PSAxNiAmJiBrZXkgPD0gMjApIHx8IChrZXkgPj0gOTEgJiYga2V5IDw9IDkzKSB8fCBrZXkgPT09IDE0NClcblx0XHRcdFx0XHQpIHtcblx0XHRcdFx0XHRcdC8vIElnbm9yZSBjb250cm9sIGtleXM6IGN0cmwsIHNoaWZ0LCBhbHQsIGFsdCBnciwgY2FwcyBsb2NrLCB3aW5kb3dzL2FwcGxlIGNtZCBrZXlzLCBudW0gbG9jay4gT25seSB0aGUgd2luZG93cyBrZXlzXG5cdFx0XHRcdFx0XHQvLyB0ZXJtaW5hdGUgSU1FIChhcHBsZSBjbWQgZG9lc24ndCksIGJ1dCB0aGV5IGFsc28gY2F1c2UgYSBibHVyLCBzbyBpdCdzIE9LIHRvIGlnbm9yZSB0aGVtIGhlcmUuXG5cdFx0XHRcdFx0XHQvLyBOb3RlOiBTYWZhcmkgNCAoNTMwLjE3KSBwcm9wYWdhdGVzIEVTQyBvdXQgb2YgYW4gSU1FIGNvbXBvc2l0aW9uIChvYnNlcnZlZCBhdCBsZWFzdCBvbiBXaW4gWFApLlxuXHRcdFx0XHRcdFx0c2VsZi5pbWUgPSBmYWxzZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0aWYgKHNlbGYuaW1lKSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0Ly8gSGFuZGxlIHJldHVybiBleHBsaWNpdGx5LCB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCBmb3JtIHN1Ym1pc3Npb24gdG8gYmUgYWJsZSB0byBjaGVjayBmb3IgY3RybFxuXHRcdFx0XHRcdGlmIChrZXkgPT09IFJFVCkge1xuXHRcdFx0XHRcdFx0cmV0dXJuIHNlbGYuYWNjZXB0KGV2ZW50KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0Ly8gSW5oaWJpdCBkZWZhdWx0IGJlaGF2aW9yIG9mIEVTQyAocmV2ZXJ0IHRvIGxhc3QgcmVhbCBpbnB1dCBpbiBGRjogd2UgZG8gdGhhdCBvdXJzZWx2ZXMpXG5cdFx0XHRcdFx0cmV0dXJuIGtleSA9PT0gRVNDID8gZXZ0S2lsbChldmVudCkgOiB0cnVlO1xuXHRcdFx0XHR9KTtcblx0XHRcdFx0Ly8gQW5kIGhhbmRsZSBjb250aW51ZWQgcHJlc3Npbmcgb2YgYXJyb3cga2V5c1xuXHRcdFx0XHR0ZXh0LmFkZEV2ZW50TGlzdGVuZXIoJ2tleXByZXNzJywgKGV2ZW50KSA9PiB7XG5cdFx0XHRcdFx0c2VsZi5rZXlDb3VudCsrO1xuXHRcdFx0XHRcdHJldHVybiBzZWxmLnByb2Nlc3NLZXkoZXZlbnQpO1xuXHRcdFx0XHR9KTtcblx0XHRcdFx0dGV4dC5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsICgpID0+IHtcblx0XHRcdFx0XHRtYWtlQWN0aXZlKHNlbGYpO1xuXHRcdFx0XHR9KTtcblx0XHRcdFx0Ly8gRG9uJ3QgdGVzdCBmb3IgdGV4dC5zZWxlY3Rpb25TdGFydCBiZWluZyBkZWZpbmVkO1xuXHRcdFx0XHQkKHRleHQpLm9uKCdibHVyJywgdGhpcy5zYXZlVmlldy5iaW5kKHRoaXMpKTtcblx0XHRcdFx0Ly8gRE9NIExldmVsIDMgSU1FIGhhbmRsaW5nXG5cdFx0XHRcdHRyeSB7XG5cdFx0XHRcdFx0Ly8gU2V0dGluZyBsYXN0S2V5ID0gSU1FIHByb3ZpZGVzIGEgZmFrZSBrZXlEb3duIGZvciBHZWNrbydzIHNpbmdsZSBrZXlVcCBhZnRlciBhIGNtcG9zaXRpb24uIElmIHdlIGRpZG4ndCBkbyB0aGlzLFxuXHRcdFx0XHRcdC8vIGNhbmNlbGxpbmcgYSBjb21wb3NpdGlvbiB2aWEgRVNDIHdvdWxkIGFsc28gY2FuY2VsIGFuZCBjbG9zZSB0aGUgd2hvbGUgY2F0ZWdvcnkgaW5wdXQgZWRpdG9yLlxuXHRcdFx0XHRcdCQodGV4dCkub24oJ2NvbXBvc2l0aW9uc3RhcnQnLCAoKSA9PiB7XG5cdFx0XHRcdFx0XHRzZWxmLmxhc3RLZXkgPSBJTUU7XG5cdFx0XHRcdFx0XHRzZWxmLnVzZXNDb21wb3NpdGlvbiA9IHRydWU7XG5cdFx0XHRcdFx0XHRzZWxmLmltZSA9IHRydWU7XG5cdFx0XHRcdFx0XHRzZWxmLmlzQ29tcG9zaXRpb25TdGFydCA9IHRydWU7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0JCh0ZXh0KS5vbignY29tcG9zaXRpb25lbmQnLCAoKSA9PiB7XG5cdFx0XHRcdFx0XHRzZWxmLmxhc3RLZXkgPSBJTUU7XG5cdFx0XHRcdFx0XHRzZWxmLnVzZXNDb21wb3NpdGlvbiA9IHRydWU7XG5cdFx0XHRcdFx0XHRzZWxmLmltZSA9IGZhbHNlO1xuXHRcdFx0XHRcdFx0c2VsZi5pc0NvbXBvc2l0aW9uU3RhcnQgPSBmYWxzZTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHQkKHRleHQpLm9uKCd0ZXh0SW5wdXQnLCAoKSA9PiB7XG5cdFx0XHRcdFx0XHRzZWxmLmltZSA9IGZhbHNlO1xuXHRcdFx0XHRcdFx0aWYgKHNlbGYuaXNDb21wb3NpdGlvblN0YXJ0KSB7XG5cdFx0XHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdHNlbGYuaW52b2tlU3VnZ2VzdGlvbnMoZmFsc2UpO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9IGNhdGNoIHtcblx0XHRcdFx0XHQvLyBKdXN0IGluIGNhc2Ugc29tZSBicm93c2VycyBtaWdodCBwcm9kdWNlIGV4Y2VwdGlvbnMgd2l0aCB0aGVzZSBET00gTGV2ZWwgMyBldmVudHNcblx0XHRcdFx0fVxuXHRcdFx0XHQkKHRleHQpLm9uKCdibHVyJywgKCkgPT4ge1xuXHRcdFx0XHRcdHNlbGYudXNlc0NvbXBvc2l0aW9uID0gZmFsc2U7XG5cdFx0XHRcdFx0c2VsZi5pbWUgPSBmYWxzZTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cdFx0XHR0aGlzLnRleHQgPSB0ZXh0O1xuXHRcdFx0dGhpcy5pY29uID0gbWFrZSgnaW1nJyk7XG5cdFx0XHRsZXQgbGlzdCA9IG51bGw7XG5cdFx0XHRpZiAoIW5vU3VnZ2VzdGlvbnMpIHtcblx0XHRcdFx0bGlzdCA9IG1ha2UoJ3NlbGVjdCcpO1xuXHRcdFx0XHRsaXN0LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuXHRcdFx0XHRcdGlmIChzZWxmLmhpZ2hsaWdodFN1Z2dlc3Rpb24oMCkpIHtcblx0XHRcdFx0XHRcdHNlbGYudGV4dGNoYW5nZShmYWxzZSwgdHJ1ZSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KTtcblx0XHRcdFx0bGlzdC5hZGRFdmVudExpc3RlbmVyKCdkYmxjbGljaycsIChlKSA9PiB7XG5cdFx0XHRcdFx0aWYgKHNlbGYuaGlnaGxpZ2h0U3VnZ2VzdGlvbigwKSkge1xuXHRcdFx0XHRcdFx0c2VsZi5hY2NlcHQoZSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KTtcblx0XHRcdFx0bGlzdC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCAoKSA9PiB7XG5cdFx0XHRcdFx0c2VsZi5oaWdobGlnaHRTdWdnZXN0aW9uKDApO1xuXHRcdFx0XHRcdHNlbGYudGV4dC5mb2N1cygpO1xuXHRcdFx0XHR9KTtcblx0XHRcdFx0bGlzdC5hZGRFdmVudExpc3RlbmVyKCdrZXl1cCcsIChldmVudCkgPT4ge1xuXHRcdFx0XHRcdGlmIChldmVudC5rZXkgPT09IEVTQykge1xuXHRcdFx0XHRcdFx0c2VsZi5yZXNldEtleVNlbGVjdGlvbigpO1xuXHRcdFx0XHRcdFx0c2VsZi50ZXh0LmZvY3VzKCk7XG5cdFx0XHRcdFx0XHRzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0XHRcdFx0c2VsZi50ZXh0Y2hhbmdlKHRydWUpO1xuXHRcdFx0XHRcdFx0fSwgSEMuc3VnZ2VzdF9kZWxheSk7XG5cdFx0XHRcdFx0fSBlbHNlIGlmIChldmVudC5rZXkgPT09IFJFVCkge1xuXHRcdFx0XHRcdFx0c2VsZi5hY2NlcHQoZXZlbnQpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSk7XG5cdFx0XHRcdGlmICghSEMuZml4ZWRfc2VhcmNoKSB7XG5cdFx0XHRcdFx0Y29uc3QgZW5naW5lU2VsZWN0b3IgPSBtYWtlKCdzZWxlY3QnKTtcblx0XHRcdFx0XHRmb3IgKGNvbnN0IGtleSBpbiBzdWdnZXN0aW9uQ29uZmlncykge1xuXHRcdFx0XHRcdFx0aWYgKHN1Z2dlc3Rpb25Db25maWdzW2tleV0uc2hvdykge1xuXHRcdFx0XHRcdFx0XHRjb25zdCBvcHQgPSBtYWtlKCdvcHRpb24nKTtcblx0XHRcdFx0XHRcdFx0b3B0LnZhbHVlID0ga2V5O1xuXHRcdFx0XHRcdFx0XHRpZiAoa2V5ID09PSB0aGlzLmVuZ2luZSkge1xuXHRcdFx0XHRcdFx0XHRcdG9wdC5zZWxlY3RlZCA9IHRydWU7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0b3B0LmFwcGVuZChtYWtlKHN1Z2dlc3Rpb25Db25maWdzW2tleV0ubmFtZSwgdHJ1ZSkpO1xuXHRcdFx0XHRcdFx0XHRlbmdpbmVTZWxlY3Rvci5hcHBlbmQob3B0KTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0ZW5naW5lU2VsZWN0b3IuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgKCkgPT4ge1xuXHRcdFx0XHRcdFx0c2VsZi5lbmdpbmUgPSBzZWxmLmVuZ2luZVNlbGVjdG9yLm9wdGlvbnNbc2VsZi5lbmdpbmVTZWxlY3Rvci5zZWxlY3RlZEluZGV4XS52YWx1ZTtcblx0XHRcdFx0XHRcdHNlbGYudGV4dC5mb2N1cygpO1xuXHRcdFx0XHRcdFx0c2VsZi50ZXh0Y2hhbmdlKHRydWUsIHRydWUpOyAvLyBEb24ndCBhdXRvY29tcGxldGUsIGZvcmNlIHJlLWRpc3BsYXkgb2YgbGlzdFxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdHRoaXMuZW5naW5lU2VsZWN0b3IgPSBlbmdpbmVTZWxlY3Rvcjtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0dGhpcy5saXN0ID0gbGlzdDtcblx0XHRcdGNvbnN0IGJ1dHRvbl9sYWJlbCA9IChfaWQsIGRlZmF1bHRUZXh0KSA9PiB7XG5cdFx0XHRcdGNvbnN0IGxhYmVsID0gbnVsbDtcblx0XHRcdFx0aWYgKCFsYWJlbCB8fCAhbGFiZWwuZGF0YSkge1xuXHRcdFx0XHRcdHJldHVybiBkZWZhdWx0VGV4dDtcblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gbGFiZWwuZGF0YTtcblx0XHRcdH07XG5cdFx0XHQvLyBEbyBub3QgdXNlIHR5cGUgJ3N1Ym1pdCc7IHdlIGNhbm5vdCBkZXRlY3QgbW9kaWZpZXIga2V5cyBpZiB3ZSBkb1xuXHRcdFx0Y29uc3QgT0sgPSBtYWtlKCdpbnB1dCcpO1xuXHRcdFx0T0sudHlwZSA9ICdidXR0b24nO1xuXHRcdFx0T0sudmFsdWUgPSBidXR0b25fbGFiZWwoJ3dwT2tVcGxvYWRMYmwnLCBnZXRNZXNzYWdlKCdtZXNzYWdlcy1vaycpKTtcblx0XHRcdE9LLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5hY2NlcHQuYmluZCh0aGlzKSk7XG5cdFx0XHR0aGlzLm9rID0gT0s7XG5cdFx0XHRjb25zdCBjYW5jZWwgPSBtYWtlKCdpbnB1dCcpO1xuXHRcdFx0Y2FuY2VsLnR5cGUgPSAnYnV0dG9uJztcblx0XHRcdGNhbmNlbC52YWx1ZSA9IGJ1dHRvbl9sYWJlbCgnd3BDYW5jZWxVcGxvYWRMYmwnLCBnZXRNZXNzYWdlKCdtZXNzYWdlcy1jYW5jZWwnKSk7XG5cdFx0XHRjYW5jZWwuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLmNhbmNlbC5iaW5kKHRoaXMpKTtcblx0XHRcdHRoaXMuY2FuY2VsQnV0dG9uID0gY2FuY2VsO1xuXHRcdFx0Y29uc3Qgc3BhbiA9IG1ha2UoJ3NwYW4nKTtcblx0XHRcdHNwYW4uY2xhc3NOYW1lID0gJ2hvdGNhdGlucHV0Jztcblx0XHRcdHNwYW4uc3R5bGUucG9zaXRpb24gPSAncmVsYXRpdmUnO1xuXHRcdFx0c3Bhbi5hcHBlbmQodGV4dCk7XG5cdFx0XHRzcGFuLnN0eWxlLndoaXRlU3BhY2UgPSAnbm93cmFwJztcblx0XHRcdGlmIChsaXN0KSB7XG5cdFx0XHRcdHNwYW4uYXBwZW5kKGxpc3QpO1xuXHRcdFx0fVxuXHRcdFx0aWYgKHRoaXMuZW5naW5lU2VsZWN0b3IpIHtcblx0XHRcdFx0c3Bhbi5hcHBlbmQodGhpcy5lbmdpbmVTZWxlY3Rvcik7XG5cdFx0XHR9XG5cdFx0XHRpZiAoIW5vU3VnZ2VzdGlvbnMpIHtcblx0XHRcdFx0c3Bhbi5hcHBlbmQodGhpcy5pY29uKTtcblx0XHRcdH1cblx0XHRcdHNwYW4uYXBwZW5kKE9LKTtcblx0XHRcdHNwYW4uYXBwZW5kKGNhbmNlbCk7XG5cdFx0XHRmb3JtLmFwcGVuZChzcGFuKTtcblx0XHRcdGZvcm0uc3R5bGUuZGlzcGxheSA9ICdub25lJztcblx0XHRcdHRoaXMuc3Bhbi5hcHBlbmQoZm9ybSk7XG5cdFx0fVxuXHRcdGRpc3BsYXkoZXZlbnQpIHtcblx0XHRcdGlmICh0aGlzLmlzQWRkQ2F0ZWdvcnkgJiYgIW9uVXBsb2FkICYmIHRoaXMubGluZSkge1xuXHRcdFx0XHRuZXcgQ2F0ZWdvcnlFZGl0b3IodGhpcy5saW5lLCBudWxsLCB0aGlzLnNwYW4sIHRydWUpOyAvLyBDcmVhdGUgYSBuZXcgb25lXG5cdFx0XHR9XG5cdFx0XHRpZiAoIWNvbW1pdEJ1dHRvbiAmJiAhb25VcGxvYWQpIHtcblx0XHRcdFx0Zm9yIChjb25zdCBlZGl0b3Igb2YgZWRpdG9ycykge1xuXHRcdFx0XHRcdGlmIChlZGl0b3Iuc3RhdGUgIT09IFVOQ0hBTkdFRCkge1xuXHRcdFx0XHRcdFx0c2V0TXVsdGlJbnB1dCgpO1xuXHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRpZiAoIXRoaXMuZm9ybSkge1xuXHRcdFx0XHR0aGlzLm1ha2VGb3JtKCk7XG5cdFx0XHR9XG5cdFx0XHRpZiAodGhpcy5saXN0KSB7XG5cdFx0XHRcdHRoaXMubGlzdC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuXHRcdFx0fVxuXHRcdFx0aWYgKHRoaXMuZW5naW5lU2VsZWN0b3IpIHtcblx0XHRcdFx0dGhpcy5lbmdpbmVTZWxlY3Rvci5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuXHRcdFx0fVxuXHRcdFx0dGhpcy5jdXJyZW50Q2F0ZWdvcnkgPSB0aGlzLmxhc3RTYXZlZENhdGVnb3J5O1xuXHRcdFx0dGhpcy5jdXJyZW50RXhpc3RzID0gdGhpcy5sYXN0U2F2ZWRFeGlzdHM7XG5cdFx0XHR0aGlzLmN1cnJlbnRIaWRkZW4gPSB0aGlzLmxhc3RTYXZlZEhpZGRlbjtcblx0XHRcdHRoaXMuY3VycmVudEtleSA9IHRoaXMubGFzdFNhdmVkS2V5O1xuXHRcdFx0dGhpcy5pY29uLnNyYyA9IHRoaXMuY3VycmVudEV4aXN0cyA/IEhDLmV4aXN0c1llcyA6IEhDLmV4aXN0c05vO1xuXHRcdFx0dGhpcy50ZXh0LnZhbHVlID0gdGhpcy5jdXJyZW50Q2F0ZWdvcnkgKyAodGhpcy5jdXJyZW50S2V5ID09PSBudWxsID8gJycgOiBgfCR7dGhpcy5jdXJyZW50S2V5fWApO1xuXHRcdFx0dGhpcy5vcmlnaW5hbFN0YXRlID0gdGhpcy5zdGF0ZTtcblx0XHRcdHRoaXMubGFzdElucHV0ID0gdGhpcy5jdXJyZW50Q2F0ZWdvcnk7XG5cdFx0XHR0aGlzLmlucHV0RXhpc3RzID0gdGhpcy5jdXJyZW50RXhpc3RzO1xuXHRcdFx0dGhpcy5zdGF0ZSA9IHRoaXMuc3RhdGUgPT09IFVOQ0hBTkdFRCA/IE9QRU4gOiBDSEFOR0VfUEVORElORztcblx0XHRcdHRoaXMubGFzdFNlbGVjdGlvbiA9IHtcblx0XHRcdFx0c3RhcnQ6IHRoaXMuY3VycmVudENhdGVnb3J5Lmxlbmd0aCxcblx0XHRcdFx0ZW5kOiB0aGlzLmN1cnJlbnRDYXRlZ29yeS5sZW5ndGgsXG5cdFx0XHR9O1xuXHRcdFx0dGhpcy5zaG93c0xpc3QgPSBmYWxzZTtcblx0XHRcdC8vIERpc3BsYXkgdGhlIGZvcm1cblx0XHRcdGlmICh0aGlzLmNhdExpbmspIHtcblx0XHRcdFx0dGhpcy5jYXRMaW5rLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG5cdFx0XHR9XG5cdFx0XHR0aGlzLmxpbmtTcGFuLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG5cdFx0XHR0aGlzLmZvcm0uc3R5bGUuZGlzcGxheSA9ICdpbmxpbmUnO1xuXHRcdFx0dGhpcy5vay5kaXNhYmxlZCA9IGZhbHNlO1xuXHRcdFx0Ly8gS2lsbCB0aGUgZXZlbnQgYmVmb3JlIGZvY3VzaW5nLCBvdGhlcndpc2UgSUUgd2lsbCBraWxsIHRoZSBvbmZvY3VzIGV2ZW50IVxuXHRcdFx0Y29uc3QgcmVzdWx0ID0gZXZ0S2lsbChldmVudCk7XG5cdFx0XHR0aGlzLnRleHQuZm9jdXMoKTtcblx0XHRcdHRoaXMudGV4dC5yZWFkT25seSA9IGZhbHNlO1xuXHRcdFx0Y2hlY2tNdWx0aUlucHV0KCk7XG5cdFx0XHRyZXR1cm4gcmVzdWx0O1xuXHRcdH1cblx0XHRzaG93KGV2ZW50LCBlbmdpbmUsIHJlYWRPbmx5KSB7XG5cdFx0XHRjb25zdCByZXN1bHQgPSB0aGlzLmRpc3BsYXkoZXZlbnQpO1xuXHRcdFx0Y29uc3QgdiA9IHRoaXMubGFzdFNhdmVkQ2F0ZWdvcnk7XG5cdFx0XHRpZiAodi5sZW5ndGggPT09IDApIHtcblx0XHRcdFx0cmV0dXJuIHJlc3VsdDtcblx0XHRcdH1cblx0XHRcdHRoaXMudGV4dC5yZWFkT25seSA9ICEhcmVhZE9ubHk7XG5cdFx0XHR0aGlzLmVuZ2luZSA9IGVuZ2luZTtcblx0XHRcdHRoaXMudGV4dGNoYW5nZShmYWxzZSwgdHJ1ZSk7IC8vIGRvIGF1dG9jb21wbGV0aW9uLCBmb3JjZSBkaXNwbGF5IG9mIHN1Z2dlc3Rpb25zXG5cdFx0XHRyZXR1cm4gcmVzdWx0O1xuXHRcdH1cblx0XHRvcGVuKGV2ZW50KSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5zaG93KGV2ZW50LCB0aGlzLmVuZ2luZSAmJiBzdWdnZXN0aW9uQ29uZmlnc1t0aGlzLmVuZ2luZV0udGVtcCA/IEhDLnN1Z2dlc3Rpb25zIDogdGhpcy5lbmdpbmUpO1xuXHRcdH1cblx0XHRkb3duKGV2ZW50KSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5zaG93KGV2ZW50LCAnc3ViY2F0JywgdHJ1ZSk7XG5cdFx0fVxuXHRcdHVwKGV2ZW50KSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5zaG93KGV2ZW50LCAncGFyZW50Y2F0Jyk7XG5cdFx0fVxuXHRcdGNhbmNlbCgpIHtcblx0XHRcdGlmICh0aGlzLmlzQWRkQ2F0ZWdvcnkgJiYgIW9uVXBsb2FkKSB7XG5cdFx0XHRcdHRoaXMucmVtb3ZlRWRpdG9yKCk7IC8vIFdlIGFkZGVkIGEgbmV3IGFkZGVyIHdoZW4gb3BlbmluZ1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cdFx0XHQvLyBDbG9zZSwgcmUtZGlzcGxheSBsaW5rXG5cdFx0XHR0aGlzLmluYWN0aXZhdGUoKTtcblx0XHRcdHRoaXMuZm9ybS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuXHRcdFx0aWYgKHRoaXMuY2F0TGluaykge1xuXHRcdFx0XHR0aGlzLmNhdExpbmsuc3R5bGUuZGlzcGxheSA9ICcnO1xuXHRcdFx0fVxuXHRcdFx0dGhpcy5saW5rU3Bhbi5zdHlsZS5kaXNwbGF5ID0gJyc7XG5cdFx0XHR0aGlzLnN0YXRlID0gdGhpcy5vcmlnaW5hbFN0YXRlO1xuXHRcdFx0dGhpcy5jdXJyZW50Q2F0ZWdvcnkgPSB0aGlzLmxhc3RTYXZlZENhdGVnb3J5O1xuXHRcdFx0dGhpcy5jdXJyZW50S2V5ID0gdGhpcy5sYXN0U2F2ZWRLZXk7XG5cdFx0XHR0aGlzLmN1cnJlbnRFeGlzdHMgPSB0aGlzLmxhc3RTYXZlZEV4aXN0cztcblx0XHRcdHRoaXMuY3VycmVudEhpZGRlbiA9IHRoaXMubGFzdFNhdmVkSGlkZGVuO1xuXHRcdFx0aWYgKHRoaXMuY2F0TGluaykge1xuXHRcdFx0XHR0aGlzLmNhdExpbmsudGl0bGUgPSB0aGlzLmN1cnJlbnRLZXkgJiYgdGhpcy5jdXJyZW50S2V5Lmxlbmd0aCA+IDAgPyB0aGlzLmN1cnJlbnRLZXkgOiAnJztcblx0XHRcdH1cblx0XHRcdGlmICh0aGlzLnN0YXRlID09PSBVTkNIQU5HRUQpIHtcblx0XHRcdFx0aWYgKHRoaXMuY2F0TGluaykge1xuXHRcdFx0XHRcdHRoaXMuY2F0TGluay5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAndHJhbnNwYXJlbnQnO1xuXHRcdFx0XHR9XG5cdFx0XHR9IGVsc2UgaWYgKCFvblVwbG9hZCkge1xuXHRcdFx0XHR0cnkge1xuXHRcdFx0XHRcdHRoaXMuY2F0TGluay5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSBIQy5iZ19jaGFuZ2VkO1xuXHRcdFx0XHR9IGNhdGNoIHtcblx0XHRcdFx0XHQvKiBlbXB0eSAqL1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRjaGVja011bHRpSW5wdXQoKTtcblx0XHR9XG5cdFx0cmVtb3ZlRWRpdG9yKCkge1xuXHRcdFx0aWYgKCFuZXdET00pIHtcblx0XHRcdFx0Y29uc3QgbmV4dCA9IHRoaXMuc3Bhbi5uZXh0U2libGluZztcblx0XHRcdFx0aWYgKG5leHQpIHtcblx0XHRcdFx0XHRuZXh0LnJlbW92ZSgpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRpZiAodGhpcy5zcGFuICYmIHRoaXMuc3Bhbi5wYXJlbnROb2RlKSB7XG5cdFx0XHRcdHRoaXMuc3Bhbi5yZW1vdmUoKTtcblx0XHRcdH1cblx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgZWRpdG9ycy5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRpZiAoZWRpdG9yc1tpXSA9PT0gdGhpcykge1xuXHRcdFx0XHRcdGVkaXRvcnMuc3BsaWNlKGksIDEpO1xuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRjaGVja011bHRpSW5wdXQoKTtcblx0XHR9XG5cdFx0cm9sbGJhY2soZXZlbnQpIHtcblx0XHRcdHRoaXMudW5kb0xpbmsucmVtb3ZlKCk7XG5cdFx0XHR0aGlzLnVuZG9MaW5rID0gbnVsbDtcblx0XHRcdHRoaXMuY3VycmVudENhdGVnb3J5ID0gdGhpcy5vcmlnaW5hbENhdGVnb3J5O1xuXHRcdFx0dGhpcy5jdXJyZW50S2V5ID0gdGhpcy5vcmlnaW5hbEtleTtcblx0XHRcdHRoaXMuY3VycmVudEV4aXN0cyA9IHRoaXMub3JpZ2luYWxFeGlzdHM7XG5cdFx0XHR0aGlzLmN1cnJlbnRIaWRkZW4gPSB0aGlzLm9yaWdpbmFsSGlkZGVuO1xuXHRcdFx0dGhpcy5sYXN0U2F2ZWRDYXRlZ29yeSA9IHRoaXMub3JpZ2luYWxDYXRlZ29yeTtcblx0XHRcdHRoaXMubGFzdFNhdmVkS2V5ID0gdGhpcy5vcmlnaW5hbEtleTtcblx0XHRcdHRoaXMubGFzdFNhdmVkRXhpc3RzID0gdGhpcy5vcmlnaW5hbEV4aXN0cztcblx0XHRcdHRoaXMubGFzdFNhdmVkSGlkZGVuID0gdGhpcy5vcmlnaW5hbEhpZGRlbjtcblx0XHRcdHRoaXMuc3RhdGUgPSBVTkNIQU5HRUQ7XG5cdFx0XHRpZiAoIXRoaXMuY3VycmVudENhdGVnb3J5IHx8IHRoaXMuY3VycmVudENhdGVnb3J5Lmxlbmd0aCA9PT0gMCkge1xuXHRcdFx0XHQvLyBJdCB3YXMgYSBuZXdseSBhZGRlZCBjYXRlZ29yeS4gUmVtb3ZlIHRoZSB3aG9sZSBlZGl0b3IuXG5cdFx0XHRcdHRoaXMucmVtb3ZlRWRpdG9yKCk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHQvLyBSZWRpc3BsYXkgdGhlIGxpbmsuLi5cblx0XHRcdFx0dGhpcy5jYXRMaW5rLmZpcnN0Q2hpbGQucmVtb3ZlKCk7XG5cdFx0XHRcdHRoaXMuY2F0TGluay5hcHBlbmQobWFrZSh0aGlzLmN1cnJlbnRDYXRlZ29yeSwgdHJ1ZSkpO1xuXHRcdFx0XHR0aGlzLmNhdExpbmsuaHJlZiA9IHdpa2lQYWdlUGF0aChgJHtIQy5jYXRlZ29yeV9jYW5vbmljYWx9OiR7dGhpcy5jdXJyZW50Q2F0ZWdvcnl9YCk7XG5cdFx0XHRcdHRoaXMuY2F0TGluay50aXRsZSA9IHRoaXMuY3VycmVudEtleSB8fCAnJztcblx0XHRcdFx0dGhpcy5jYXRMaW5rLmNsYXNzTmFtZSA9IHRoaXMuY3VycmVudEV4aXN0cyA/ICcnIDogJ25ldyc7XG5cdFx0XHRcdHRoaXMuY2F0TGluay5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAndHJhbnNwYXJlbnQnO1xuXHRcdFx0XHRpZiAodGhpcy51cERvd25MaW5rcykge1xuXHRcdFx0XHRcdHRoaXMudXBEb3duTGlua3Muc3R5bGUuZGlzcGxheSA9IHRoaXMuY3VycmVudEV4aXN0cyA/ICcnIDogJ25vbmUnO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGNoZWNrTXVsdGlJbnB1dCgpO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIGV2dEtpbGwoZXZlbnQpO1xuXHRcdH1cblx0XHRpbmFjdGl2YXRlKCkge1xuXHRcdFx0aWYgKHRoaXMubGlzdCkge1xuXHRcdFx0XHR0aGlzLmxpc3Quc3R5bGUuZGlzcGxheSA9ICdub25lJztcblx0XHRcdH1cblx0XHRcdGlmICh0aGlzLmVuZ2luZVNlbGVjdG9yKSB7XG5cdFx0XHRcdHRoaXMuZW5naW5lU2VsZWN0b3Iuc3R5bGUuZGlzcGxheSA9ICdub25lJztcblx0XHRcdH1cblx0XHRcdHRoaXMuaXNfYWN0aXZlID0gZmFsc2U7XG5cdFx0fVxuXHRcdGFjY2VwdENoZWNrKGRvbnRDaGVjaykge1xuXHRcdFx0dGhpcy5zYW5pdGl6ZUlucHV0KCk7XG5cdFx0XHRjb25zdCB2YWx1ZSA9IHRoaXMudGV4dC52YWx1ZS5zcGxpdCgnfCcpO1xuXHRcdFx0bGV0IGtleSA9IG51bGw7XG5cdFx0XHRpZiAodmFsdWUubGVuZ3RoID4gMSkge1xuXHRcdFx0XHRbLCBrZXldID0gdmFsdWU7XG5cdFx0XHR9XG5cdFx0XHRsZXQgdiA9IHZhbHVlWzBdLnJlcGxhY2UoL18vZywgJyAnKS50cmltKCk7XG5cdFx0XHRpZiAoSEMuY2FwaXRhbGl6ZVBhZ2VOYW1lcykge1xuXHRcdFx0XHR2ID0gY2FwaXRhbGl6ZSh2KTtcblx0XHRcdH1cblx0XHRcdHRoaXMubGFzdElucHV0ID0gdjtcblx0XHRcdHYgPSByZXBsYWNlU2hvcnRjdXRzKHYsIEhDLnNob3J0Y3V0cyk7XG5cdFx0XHRpZiAodi5sZW5ndGggPT09IDApIHtcblx0XHRcdFx0dGhpcy5jYW5jZWwoKTtcblx0XHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdFx0fVxuXHRcdFx0aWYgKFxuXHRcdFx0XHQhZG9udENoZWNrICYmXG5cdFx0XHRcdCgoY29uZi53Z05hbWVzcGFjZU51bWJlciA9PT0gMTQgJiYgdiA9PT0gY29uZi53Z1RpdGxlKSB8fCAoSEMuYmxhY2tsaXN0ICYmIEhDLmJsYWNrbGlzdC50ZXN0KHYpKSlcblx0XHRcdCkge1xuXHRcdFx0XHR0aGlzLmNhbmNlbCgpO1xuXHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHR9XG5cdFx0XHR0aGlzLmN1cnJlbnRDYXRlZ29yeSA9IHY7XG5cdFx0XHR0aGlzLmN1cnJlbnRLZXkgPSBrZXk7XG5cdFx0XHR0aGlzLmN1cnJlbnRFeGlzdHMgPSB0aGlzLmlucHV0RXhpc3RzO1xuXHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0fVxuXHRcdGFjY2VwdChldmVudCkge1xuXHRcdFx0Ly8gKGV2dEtleXMoZXZlbnQpICYgMSkgIT09IDBcblx0XHRcdC8vIOW9k+S4lOS7heW9k2V2dEtleXMoZXZlbnQp5Li6MeaXtu+8jOaVtOS4quWIpOWIq+W8j+aJjeS4unRydWVcblx0XHRcdHRoaXMubm9Db21taXQgPSBldnRLZXlzKGV2ZW50KSA9PT0gMTtcblx0XHRcdGNvbnN0IHJlc3VsdCA9IGV2dEtpbGwoZXZlbnQpO1xuXHRcdFx0aWYgKHRoaXMuYWNjZXB0Q2hlY2soKSkge1xuXHRcdFx0XHRjb25zdCB0b1Jlc29sdmUgPSBbdGhpc107XG5cdFx0XHRcdGNvbnN0IG9yaWdpbmFsID0gdGhpcy5jdXJyZW50Q2F0ZWdvcnk7XG5cdFx0XHRcdHJlc29sdmVNdWx0aSh0b1Jlc29sdmUsIChyZXNvbHZlZCkgPT4ge1xuXHRcdFx0XHRcdGlmIChyZXNvbHZlZFswXS5kYWIpIHtcblx0XHRcdFx0XHRcdHNob3dEYWIocmVzb2x2ZWRbMF0pO1xuXHRcdFx0XHRcdH0gZWxzZSBpZiAocmVzb2x2ZWRbMF0uYWNjZXB0Q2hlY2sodHJ1ZSkpIHtcblx0XHRcdFx0XHRcdHJlc29sdmVkWzBdLmNvbW1pdChcblx0XHRcdFx0XHRcdFx0cmVzb2x2ZWRbMF0uY3VycmVudENhdGVnb3J5ID09PSBvcmlnaW5hbFxuXHRcdFx0XHRcdFx0XHRcdD8gbnVsbFxuXHRcdFx0XHRcdFx0XHRcdDogZ2V0TWVzc2FnZSgnbWVzc2FnZXMtY2F0X3Jlc29sdmVkJywgb3JpZ2luYWwpXG5cdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gcmVzdWx0O1xuXHRcdH1cblx0XHRjbG9zZSgpIHtcblx0XHRcdGlmICghdGhpcy5jYXRMaW5rKSB7XG5cdFx0XHRcdC8vIENyZWF0ZSBhIGNhdExpbmtcblx0XHRcdFx0dGhpcy5jYXRMaW5rID0gbWFrZSgnYScpO1xuXHRcdFx0XHR0aGlzLmNhdExpbmsuYXBwZW5kKG1ha2UoJ2ZvbycsIHRydWUpKTtcblx0XHRcdFx0dGhpcy5jYXRMaW5rLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG5cdFx0XHRcdHRoaXMuc3Bhbi5pbnNlcnRCZWZvcmUodGhpcy5jYXRMaW5rLCB0aGlzLnNwYW4uZmlyc3RDaGlsZC5uZXh0U2libGluZyk7XG5cdFx0XHR9XG5cdFx0XHR0aGlzLmNhdExpbmsuZmlyc3RDaGlsZC5yZW1vdmUoKTtcblx0XHRcdHRoaXMuY2F0TGluay5hcHBlbmQobWFrZSh0aGlzLmN1cnJlbnRDYXRlZ29yeSwgdHJ1ZSkpO1xuXHRcdFx0dGhpcy5jYXRMaW5rLmhyZWYgPSB3aWtpUGFnZVBhdGgoYCR7SEMuY2F0ZWdvcnlfY2Fub25pY2FsfToke3RoaXMuY3VycmVudENhdGVnb3J5fWApO1xuXHRcdFx0dGhpcy5jYXRMaW5rLmNsYXNzTmFtZSA9IHRoaXMuY3VycmVudEV4aXN0cyA/ICcnIDogJ25ldyc7XG5cdFx0XHR0aGlzLmxhc3RTYXZlZENhdGVnb3J5ID0gdGhpcy5jdXJyZW50Q2F0ZWdvcnk7XG5cdFx0XHR0aGlzLmxhc3RTYXZlZEtleSA9IHRoaXMuY3VycmVudEtleTtcblx0XHRcdHRoaXMubGFzdFNhdmVkRXhpc3RzID0gdGhpcy5jdXJyZW50RXhpc3RzO1xuXHRcdFx0dGhpcy5sYXN0U2F2ZWRIaWRkZW4gPSB0aGlzLmN1cnJlbnRIaWRkZW47XG5cdFx0XHQvLyBDbG9zZSBmb3JtIGFuZCByZWRpc3BsYXkgY2F0ZWdvcnlcblx0XHRcdHRoaXMuaW5hY3RpdmF0ZSgpO1xuXHRcdFx0dGhpcy5mb3JtLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG5cdFx0XHR0aGlzLmNhdExpbmsudGl0bGUgPSB0aGlzLmN1cnJlbnRLZXkgfHwgJyc7XG5cdFx0XHR0aGlzLmNhdExpbmsuc3R5bGUuZGlzcGxheSA9ICcnO1xuXHRcdFx0aWYgKHRoaXMuaXNBZGRDYXRlZ29yeSkge1xuXHRcdFx0XHRpZiAob25VcGxvYWQgJiYgdGhpcy5saW5lKSB7XG5cdFx0XHRcdFx0bmV3IENhdGVnb3J5RWRpdG9yKHRoaXMubGluZSwgbnVsbCwgdGhpcy5zcGFuLCB0cnVlKTsgLy8gQ3JlYXRlIGEgbmV3IG9uZVxuXHRcdFx0XHR9XG5cdFx0XHRcdHRoaXMuaXNBZGRDYXRlZ29yeSA9IGZhbHNlO1xuXHRcdFx0XHR0aGlzLmxpbmtTcGFuLnJlbW92ZSgpO1xuXHRcdFx0XHR0aGlzLm1ha2VMaW5rU3BhbigpO1xuXHRcdFx0XHR0aGlzLnNwYW4uYXBwZW5kKHRoaXMubGlua1NwYW4pO1xuXHRcdFx0fVxuXHRcdFx0aWYgKCF0aGlzLnVuZG9MaW5rKSB7XG5cdFx0XHRcdC8vIEFwcGVuZCBhbiB1bmRvIGxpbmsuXG5cdFx0XHRcdGNvbnN0IHNwYW4gPSBtYWtlKCdzcGFuJyk7XG5cdFx0XHRcdGNvbnN0IGxpbmsgPSBtYWtlKCdhJyk7XG5cdFx0XHRcdGxpbmsuaHJlZiA9ICcjY2F0bGlua3MnO1xuXHRcdFx0XHRsaW5rLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5yb2xsYmFjay5iaW5kKHRoaXMpKTtcblx0XHRcdFx0bGluay5hcHBlbmQobWFrZShIQy5saW5rcy51bmRvLCB0cnVlKSk7XG5cdFx0XHRcdGxpbmsudGl0bGUgPSBnZXRNZXNzYWdlKCd0b29sdGlwcy11bmRvJyk7XG5cdFx0XHRcdHNwYW4uYXBwZW5kKG1ha2UoJyAnLCB0cnVlKSk7XG5cdFx0XHRcdHNwYW4uYXBwZW5kKGxpbmspO1xuXHRcdFx0XHR0aGlzLm5vcm1hbExpbmtzLmFwcGVuZChzcGFuKTtcblx0XHRcdFx0dGhpcy51bmRvTGluayA9IHNwYW47XG5cdFx0XHRcdGlmICghb25VcGxvYWQpIHtcblx0XHRcdFx0XHR0cnkge1xuXHRcdFx0XHRcdFx0dGhpcy5jYXRMaW5rLnN0eWxlLmJhY2tncm91bmRDb2xvciA9IEhDLmJnX2NoYW5nZWQ7XG5cdFx0XHRcdFx0fSBjYXRjaCB7XG5cdFx0XHRcdFx0XHQvKiBlbXB0eSAqL1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0aWYgKHRoaXMudXBEb3duTGlua3MpIHtcblx0XHRcdFx0dGhpcy51cERvd25MaW5rcy5zdHlsZS5kaXNwbGF5ID0gdGhpcy5sYXN0U2F2ZWRFeGlzdHMgPyAnJyA6ICdub25lJztcblx0XHRcdH1cblx0XHRcdHRoaXMubGlua1NwYW4uc3R5bGUuZGlzcGxheSA9ICcnO1xuXHRcdFx0dGhpcy5zdGF0ZSA9IENIQU5HRUQ7XG5cdFx0XHRjaGVja011bHRpSW5wdXQoKTtcblx0XHR9XG5cdFx0Y29tbWl0KCkge1xuXHRcdFx0Ly8gQ2hlY2sgYWdhaW4gdG8gY2F0Y2ggcHJvYmxlbSBjYXNlcyBhZnRlciByZWRpcmVjdCByZXNvbHV0aW9uXG5cdFx0XHRpZiAoXG5cdFx0XHRcdCh0aGlzLmN1cnJlbnRDYXRlZ29yeSA9PT0gdGhpcy5vcmlnaW5hbENhdGVnb3J5ICYmXG5cdFx0XHRcdFx0KHRoaXMuY3VycmVudEtleSA9PT0gdGhpcy5vcmlnaW5hbEtleSB8fFxuXHRcdFx0XHRcdFx0KHRoaXMuY3VycmVudEtleSA9PT0gbnVsbCAmJiB0aGlzLm9yaWdpbmFsS2V5Lmxlbmd0aCA9PT0gMCkpKSB8fFxuXHRcdFx0XHQoY29uZi53Z05hbWVzcGFjZU51bWJlciA9PT0gMTQgJiYgdGhpcy5jdXJyZW50Q2F0ZWdvcnkgPT09IGNvbmYud2dUaXRsZSkgfHxcblx0XHRcdFx0KEhDLmJsYWNrbGlzdCAmJiBIQy5ibGFja2xpc3QudGVzdCh0aGlzLmN1cnJlbnRDYXRlZ29yeSkpXG5cdFx0XHQpIHtcblx0XHRcdFx0dGhpcy5jYW5jZWwoKTtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdFx0dGhpcy5jbG9zZSgpO1xuXHRcdFx0aWYgKCFjb21taXRCdXR0b24gJiYgIW9uVXBsb2FkKSB7XG5cdFx0XHRcdGNvbnN0IHNlbGYgPSB0aGlzO1xuXHRcdFx0XHRpbml0aWF0ZUVkaXQoXG5cdFx0XHRcdFx0KGZhaWx1cmUpID0+IHtcblx0XHRcdFx0XHRcdHBlcmZvcm1DaGFuZ2VzKGZhaWx1cmUsIHNlbGYpO1xuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0KG1zZykgPT4ge1xuXHRcdFx0XHRcdFx0dm9pZCBtdy5ub3RpZnkobXNnLCB7dGFnOiAnaG90Q2F0J30pO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0KTtcblx0XHRcdH1cblx0XHR9XG5cdFx0cmVtb3ZlKGV2ZW50KSB7XG5cdFx0XHQvLyAoZXZ0S2V5cyhldmVudCkgJiAxKVxuXHRcdFx0Ly8g5b2T5LiU5LuF5b2TZXZ0S2V5cyhldmVudCnkuLox5pe277yM5pW05Liq5Yik5Yir5byP5omN5Li6Me+8jOWQpuWImemDveaYrzBcblx0XHRcdHRoaXMuZG9SZW1vdmUoZXZ0S2V5cyhldmVudCkgPT09IDEpO1xuXHRcdFx0cmV0dXJuIGV2dEtpbGwoZXZlbnQpO1xuXHRcdH1cblx0XHRkb1JlbW92ZShub0NvbW1pdCkge1xuXHRcdFx0aWYgKHRoaXMuaXNBZGRDYXRlZ29yeSkge1xuXHRcdFx0XHQvLyBFbXB0eSBpbnB1dCBvbiBhZGRpbmcgYSBuZXcgY2F0ZWdvcnlcblx0XHRcdFx0dGhpcy5jYW5jZWwoKTtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdFx0aWYgKCFjb21taXRCdXR0b24gJiYgIW9uVXBsb2FkKSB7XG5cdFx0XHRcdGZvciAoY29uc3QgZWRpdG9yIG9mIGVkaXRvcnMpIHtcblx0XHRcdFx0XHRpZiAoZWRpdG9yLnN0YXRlICE9PSBVTkNIQU5HRUQpIHtcblx0XHRcdFx0XHRcdHNldE11bHRpSW5wdXQoKTtcblx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0aWYgKGNvbW1pdEJ1dHRvbikge1xuXHRcdFx0XHR0aGlzLmNhdExpbmsudGl0bGUgPSAnJztcblx0XHRcdFx0dGhpcy5jYXRMaW5rLnN0eWxlLmNzc1RleHQgKz0gJzsgdGV4dC1kZWNvcmF0aW9uIDogbGluZS10aHJvdWdoICFpbXBvcnRhbnQ7Jztcblx0XHRcdFx0dHJ5IHtcblx0XHRcdFx0XHR0aGlzLmNhdExpbmsuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gSEMuYmdfY2hhbmdlZDtcblx0XHRcdFx0fSBjYXRjaCB7XG5cdFx0XHRcdFx0LyogZW1wdHkgKi9cblx0XHRcdFx0fVxuXHRcdFx0XHR0aGlzLm9yaWdpbmFsU3RhdGUgPSB0aGlzLnN0YXRlO1xuXHRcdFx0XHR0aGlzLnN0YXRlID0gREVMRVRFRDtcblx0XHRcdFx0dGhpcy5ub3JtYWxMaW5rcy5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuXHRcdFx0XHR0aGlzLnVuZGVsTGluay5zdHlsZS5kaXNwbGF5ID0gJyc7XG5cdFx0XHRcdGNoZWNrTXVsdGlJbnB1dCgpO1xuXHRcdFx0fSBlbHNlIGlmIChvblVwbG9hZCkge1xuXHRcdFx0XHQvLyBSZW1vdmUgdGhpcyBlZGl0b3IgY29tcGxldGVseVxuXHRcdFx0XHR0aGlzLnJlbW92ZUVkaXRvcigpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dGhpcy5vcmlnaW5hbFN0YXRlID0gdGhpcy5zdGF0ZTtcblx0XHRcdFx0dGhpcy5zdGF0ZSA9IERFTEVURUQ7XG5cdFx0XHRcdHRoaXMubm9Db21taXQgPSBub0NvbW1pdCB8fCBIQy5kZWxfbmVlZHNfZGlmZjtcblx0XHRcdFx0Y29uc3Qgc2VsZiA9IHRoaXM7XG5cdFx0XHRcdGluaXRpYXRlRWRpdChcblx0XHRcdFx0XHQoZmFpbHVyZSkgPT4ge1xuXHRcdFx0XHRcdFx0cGVyZm9ybUNoYW5nZXMoZmFpbHVyZSwgc2VsZik7XG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHQobXNnKSA9PiB7XG5cdFx0XHRcdFx0XHRzZWxmLnN0YXRlID0gc2VsZi5vcmlnaW5hbFN0YXRlO1xuXHRcdFx0XHRcdFx0dm9pZCBtdy5ub3RpZnkobXNnLCB7dGFnOiAnaG90Q2F0J30pO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0KTtcblx0XHRcdH1cblx0XHR9XG5cdFx0cmVzdG9yZShldmVudCkge1xuXHRcdFx0Ly8gQ2FuIG9jY3VyIG9ubHkgaWYgd2UgZG8gaGF2ZSBhIGNvbW1pdCBidXR0b24gYW5kIGFyZSBub3Qgb24gdGhlIHVwbG9hZCBmb3JtXG5cdFx0XHR0aGlzLmNhdExpbmsudGl0bGUgPSB0aGlzLmN1cnJlbnRLZXkgfHwgJyc7XG5cdFx0XHR0aGlzLmNhdExpbmsuc3R5bGUudGV4dERlY29yYXRpb24gPSAnJztcblx0XHRcdHRoaXMuc3RhdGUgPSB0aGlzLm9yaWdpbmFsU3RhdGU7XG5cdFx0XHRpZiAodGhpcy5zdGF0ZSA9PT0gVU5DSEFOR0VEKSB7XG5cdFx0XHRcdHRoaXMuY2F0TGluay5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAndHJhbnNwYXJlbnQnO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dHJ5IHtcblx0XHRcdFx0XHR0aGlzLmNhdExpbmsuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gSEMuYmdfY2hhbmdlZDtcblx0XHRcdFx0fSBjYXRjaCB7XG5cdFx0XHRcdFx0LyogZW1wdHkgKi9cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0dGhpcy5ub3JtYWxMaW5rcy5zdHlsZS5kaXNwbGF5ID0gJyc7XG5cdFx0XHR0aGlzLnVuZGVsTGluay5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuXHRcdFx0Y2hlY2tNdWx0aUlucHV0KCk7XG5cdFx0XHRyZXR1cm4gZXZ0S2lsbChldmVudCk7XG5cdFx0fVxuXHRcdC8vIEludGVybmFsIG9wZXJhdGlvbnNcblx0XHRzZWxlY3RFbmdpbmUoZW5naW5lTmFtZSkge1xuXHRcdFx0aWYgKCF0aGlzLmVuZ2luZVNlbGVjdG9yKSB7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5lbmdpbmVTZWxlY3Rvci5vcHRpb25zLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdHRoaXMuZW5naW5lU2VsZWN0b3Iub3B0aW9uc1tpXS5zZWxlY3RlZCA9IHRoaXMuZW5naW5lU2VsZWN0b3Iub3B0aW9uc1tpXS52YWx1ZSA9PT0gZW5naW5lTmFtZTtcblx0XHRcdH1cblx0XHR9XG5cdFx0c2FuaXRpemVJbnB1dCgpIHtcblx0XHRcdGxldCB2ID0gdGhpcy50ZXh0LnZhbHVlIHx8ICcnO1xuXHRcdFx0diA9IHYucmVwbGFjZSgvXihcXHN8XykrLywgJycpOyAvLyBUcmltIGxlYWRpbmcgYmxhbmtzIGFuZCB1bmRlcnNjb3Jlc1xuXHRcdFx0Y29uc3QgcmUgPSBuZXcgUmVnRXhwKGBeKCR7SEMuY2F0ZWdvcnlfcmVnZXhwfSk6YCk7XG5cdFx0XHRpZiAocmUudGVzdCh2KSkge1xuXHRcdFx0XHR2ID0gdi5zbGljZShNYXRoLm1heCgwLCB2LmluZGV4T2YoJzonKSArIDEpKS5yZXBsYWNlKC9eKFxcc3xfKSsvLCAnJyk7XG5cdFx0XHR9XG5cdFx0XHR2ID0gdi5yZXBsYWNlKC9cXHUyMDBFJC8sICcnKTsgLy8gVHJpbSBlbmRpbmcgbGVmdC10by1yaWdodCBtYXJrXG5cdFx0XHRpZiAoSEMuY2FwaXRhbGl6ZVBhZ2VOYW1lcykge1xuXHRcdFx0XHR2ID0gY2FwaXRhbGl6ZSh2KTtcblx0XHRcdH1cblx0XHRcdC8vIE9ubHkgdXBkYXRlIHRoZSBpbnB1dCBmaWVsZCBpZiB0aGVyZSBpcyBhIGRpZmZlcmVuY2UuIFZhcmlvdXMgYnJvd3NlcnMgb3RoZXJ3aXNlXG5cdFx0XHQvLyByZXNldCB0aGUgc2VsZWN0aW9uIGFuZCBjdXJzb3IgcG9zaXRpb24gYWZ0ZXIgZWFjaCB2YWx1ZSByZS1hc3NpZ25tZW50LlxuXHRcdFx0aWYgKHRoaXMudGV4dC52YWx1ZSAhPT0gbnVsbCAmJiB0aGlzLnRleHQudmFsdWUgIT09IHYpIHtcblx0XHRcdFx0dGhpcy50ZXh0LnZhbHVlID0gdjtcblx0XHRcdH1cblx0XHR9XG5cdFx0bWFrZUNhbGwodXJsLCBjYWxsYmFja09iaiwgZW5naW5lLCBxdWVyeUtleSwgY2xlYW5LZXkpIHtcblx0XHRcdGxldCBjYiA9IGNhbGxiYWNrT2JqO1xuXHRcdFx0Y29uc3QgZSA9IGVuZ2luZTtcblx0XHRcdGNvbnN0IHYgPSBxdWVyeUtleTtcblx0XHRcdGNvbnN0IHogPSBjbGVhbktleTtcblx0XHRcdGNvbnN0IHNlbGYgPSB0aGlzO1xuXHRcdFx0Y29uc3QgZG9uZSA9ICgpID0+IHtcblx0XHRcdFx0Y2IuY2FsbHNNYWRlKys7XG5cdFx0XHRcdGlmIChjYi5jYWxsc01hZGUgPT09IGNiLm5vZkNhbGxzKSB7XG5cdFx0XHRcdFx0aWYgKGNiLmV4aXN0cykge1xuXHRcdFx0XHRcdFx0Y2IuYWxsVGl0bGVzLmV4aXN0cyA9IHRydWU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGlmIChjYi5ub3JtYWxpemVkKSB7XG5cdFx0XHRcdFx0XHRjYi5hbGxUaXRsZXMubm9ybWFsaXplZCA9IGNiLm5vcm1hbGl6ZWQ7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGlmICghY2IuZG9udENhY2hlICYmICFzdWdnZXN0aW9uQ29uZmlnc1tjYi5lbmdpbmVOYW1lXS5jYWNoZVt6XSkge1xuXHRcdFx0XHRcdFx0c3VnZ2VzdGlvbkNvbmZpZ3NbY2IuZW5naW5lTmFtZV0uY2FjaGVbel0gPSBjYi5hbGxUaXRsZXM7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHNlbGYudGV4dC5yZWFkT25seSA9IGZhbHNlO1xuXHRcdFx0XHRcdGlmICghY2IuY2FuY2VsbGVkKSB7XG5cdFx0XHRcdFx0XHRzZWxmLnNob3dTdWdnZXN0aW9ucyhjYi5hbGxUaXRsZXMsIGNiLm5vQ29tcGxldGlvbiwgdiwgY2IuZW5naW5lTmFtZSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGlmIChjYiA9PT0gc2VsZi5jYWxsYmFja09iaikge1xuXHRcdFx0XHRcdFx0c2VsZi5jYWxsYmFja09iaiA9IG51bGw7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGNiID0gdW5kZWZpbmVkO1xuXHRcdFx0XHR9XG5cdFx0XHR9O1xuXHRcdFx0JC5nZXRKU09OKHVybCwgKGpzb24pID0+IHtcblx0XHRcdFx0Y29uc3QgdGl0bGVzID0gZS5oYW5kbGVyKGpzb24sIHopO1xuXHRcdFx0XHRpZiAodGl0bGVzICYmIHRpdGxlcy5sZW5ndGggPiAwKSB7XG5cdFx0XHRcdFx0Y2IuYWxsVGl0bGVzID0gY2IuYWxsVGl0bGVzID09PSBudWxsID8gdGl0bGVzIDogWy4uLmNiLmFsbFRpdGxlcywgLi4uZ2VuZXJhdGVBcnJheSh0aXRsZXMpXTtcblx0XHRcdFx0XHRpZiAodGl0bGVzLmV4aXN0cykge1xuXHRcdFx0XHRcdFx0Y2IuZXhpc3RzID0gdHJ1ZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0aWYgKHRpdGxlcy5ub3JtYWxpemVkKSB7XG5cdFx0XHRcdFx0XHRjYi5ub3JtYWxpemVkID0gdGl0bGVzLm5vcm1hbGl6ZWQ7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdGRvbmUoKTtcblx0XHRcdH0pLmZhaWwoKHJlcSkgPT4ge1xuXHRcdFx0XHRpZiAoIXJlcSkge1xuXHRcdFx0XHRcdG5vU3VnZ2VzdGlvbnMgPSB0cnVlO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGNiLmRvbnRDYWNoZSA9IHRydWU7XG5cdFx0XHRcdGRvbmUoKTtcblx0XHRcdH0pO1xuXHRcdH1cblx0XHRjYWxsYmFja09iaiA9IG51bGw7XG5cdFx0dGV4dGNoYW5nZShkb250X2F1dG9jb21wbGV0ZSwgZm9yY2UpIHtcblx0XHRcdC8vIEhpZGUgYWxsIG90aGVyIGxpc3RzXG5cdFx0XHRtYWtlQWN0aXZlKHRoaXMpO1xuXHRcdFx0Ly8gR2V0IGlucHV0IHZhbHVlLCBvbWl0IHNvcnQga2V5LCBpZiBhbnlcblx0XHRcdHRoaXMuc2FuaXRpemVJbnB1dCgpO1xuXHRcdFx0bGV0IHYgPSB0aGlzLnRleHQudmFsdWU7XG5cdFx0XHQvLyBEaXNyZWdhcmQgYW55dGhpbmcgYWZ0ZXIgYSBwaXBlLlxuXHRcdFx0Y29uc3QgcGlwZSA9IHYuaW5kZXhPZignfCcpO1xuXHRcdFx0aWYgKHBpcGUgPT09IC0xKSB7XG5cdFx0XHRcdHRoaXMuY3VycmVudEtleSA9IG51bGw7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR0aGlzLmN1cnJlbnRLZXkgPSB2LnNsaWNlKE1hdGgubWF4KDAsIHBpcGUgKyAxKSk7XG5cdFx0XHRcdHYgPSB2LnNsaWNlKDAsIE1hdGgubWF4KDAsIHBpcGUpKTtcblx0XHRcdH1cblx0XHRcdGlmICh0aGlzLmxhc3RJbnB1dCA9PT0gdiAmJiAhZm9yY2UpIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fSAvLyBObyBjaGFuZ2Vcblx0XHRcdGlmICh0aGlzLmxhc3RJbnB1dCAhPT0gdikge1xuXHRcdFx0XHRjaGVja011bHRpSW5wdXQoKTtcblx0XHRcdH1cblx0XHRcdHRoaXMubGFzdElucHV0ID0gdjtcblx0XHRcdHRoaXMubGFzdFJlYWxJbnB1dCA9IHY7XG5cdFx0XHQvLyBNYXJrIGJsYWNrbGlzdGVkIGlucHV0cy5cblx0XHRcdHRoaXMub2suZGlzYWJsZWQgPSB2Lmxlbmd0aCA+IDAgJiYgSEMuYmxhY2tsaXN0ICYmIEhDLmJsYWNrbGlzdC50ZXN0KHYpO1xuXHRcdFx0aWYgKG5vU3VnZ2VzdGlvbnMpIHtcblx0XHRcdFx0Ly8gTm8gQWpheDoganVzdCBtYWtlIHN1cmUgdGhlIGxpc3QgaXMgaGlkZGVuXG5cdFx0XHRcdGlmICh0aGlzLmxpc3QpIHtcblx0XHRcdFx0XHR0aGlzLmxpc3Quc3R5bGUuZGlzcGxheSA9ICdub25lJztcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAodGhpcy5lbmdpbmVTZWxlY3Rvcikge1xuXHRcdFx0XHRcdHRoaXMuZW5naW5lU2VsZWN0b3Iuc3R5bGUuZGlzcGxheSA9ICdub25lJztcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAodGhpcy5pY29uKSB7XG5cdFx0XHRcdFx0dGhpcy5pY29uLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdFx0aWYgKHYubGVuZ3RoID09PSAwKSB7XG5cdFx0XHRcdHRoaXMuc2hvd1N1Z2dlc3Rpb25zKFtdKTtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdFx0bGV0IGNsZWFuS2V5ID0gdi5yZXBsYWNlKC9bXFx1MjAwRVxcdTIwMEZcXHUyMDJBLVxcdTIwMkVdL2csICcnKS5yZXBsYWNlKHdpa2lUZXh0QmxhbmtSRSwgJyAnKTtcblx0XHRcdGNsZWFuS2V5ID0gcmVwbGFjZVNob3J0Y3V0cyhjbGVhbktleSwgSEMuc2hvcnRjdXRzKTtcblx0XHRcdGNsZWFuS2V5ID0gY2xlYW5LZXkudHJpbSgpO1xuXHRcdFx0aWYgKGNsZWFuS2V5Lmxlbmd0aCA9PT0gMCkge1xuXHRcdFx0XHR0aGlzLnNob3dTdWdnZXN0aW9ucyhbXSk7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblx0XHRcdGlmICh0aGlzLmNhbGxiYWNrT2JqKSB7XG5cdFx0XHRcdHRoaXMuY2FsbGJhY2tPYmouY2FuY2VsbGVkID0gdHJ1ZTtcblx0XHRcdH1cblx0XHRcdGNvbnN0IGVuZ2luZU5hbWUgPSBzdWdnZXN0aW9uQ29uZmlnc1t0aGlzLmVuZ2luZV0gPyB0aGlzLmVuZ2luZSA6ICdjb21iaW5lZCc7XG5cdFx0XHRkb250X2F1dG9jb21wbGV0ZSB8fD0gc3VnZ2VzdGlvbkNvbmZpZ3NbZW5naW5lTmFtZV0ubm9Db21wbGV0aW9uO1xuXHRcdFx0aWYgKHN1Z2dlc3Rpb25Db25maWdzW2VuZ2luZU5hbWVdLmNhY2hlW2NsZWFuS2V5XSkge1xuXHRcdFx0XHR0aGlzLnNob3dTdWdnZXN0aW9ucyhzdWdnZXN0aW9uQ29uZmlnc1tlbmdpbmVOYW1lXS5jYWNoZVtjbGVhbktleV0sIGRvbnRfYXV0b2NvbXBsZXRlLCB2LCBlbmdpbmVOYW1lKTtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdFx0Y29uc3Qge2VuZ2luZXN9ID0gc3VnZ2VzdGlvbkNvbmZpZ3NbZW5naW5lTmFtZV07XG5cdFx0XHR0aGlzLmNhbGxiYWNrT2JqID0ge1xuXHRcdFx0XHRhbGxUaXRsZXM6IG51bGwsXG5cdFx0XHRcdGNhbGxzTWFkZTogMCxcblx0XHRcdFx0bm9mQ2FsbHM6IGVuZ2luZXMubGVuZ3RoLFxuXHRcdFx0XHRub0NvbXBsZXRpb246IGRvbnRfYXV0b2NvbXBsZXRlLFxuXHRcdFx0XHRlbmdpbmVOYW1lLFxuXHRcdFx0fTtcblx0XHRcdHRoaXMubWFrZUNhbGxzKGVuZ2luZXMsIHRoaXMuY2FsbGJhY2tPYmosIHYsIGNsZWFuS2V5KTtcblx0XHR9XG5cdFx0bWFrZUNhbGxzKGVuZ2luZXMsIGNiLCB2LCBjbGVhbktleSkge1xuXHRcdFx0Zm9yIChjb25zdCBlbmdpbmVfIG9mIGVuZ2luZXMpIHtcblx0XHRcdFx0Y29uc3QgZW5naW5lID0gc3VnZ2VzdGlvbkVuZ2luZXNbZW5naW5lX107XG5cdFx0XHRcdGNvbnN0IHVybCA9IGNvbmYud2dTY3JpcHRQYXRoICsgZW5naW5lLnVyaS5yZXBsYWNlKC9cXCQxL2csIGVuY29kZVVSSUNvbXBvbmVudChjbGVhbktleSkpO1xuXHRcdFx0XHR0aGlzLm1ha2VDYWxsKHVybCwgY2IsIGVuZ2luZSwgdiwgY2xlYW5LZXkpO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRzaG93U3VnZ2VzdGlvbnModGl0bGVzLCBkb250QXV0b2NvbXBsZXRlLCBxdWVyeUtleSwgZW5naW5lTmFtZSkge1xuXHRcdFx0dGhpcy50ZXh0LnJlYWRPbmx5ID0gZmFsc2U7XG5cdFx0XHR0aGlzLmRhYiA9IG51bGw7XG5cdFx0XHR0aGlzLnNob3dzTGlzdCA9IGZhbHNlO1xuXHRcdFx0aWYgKCF0aGlzLmxpc3QpIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdFx0aWYgKG5vU3VnZ2VzdGlvbnMpIHtcblx0XHRcdFx0aWYgKHRoaXMubGlzdCkge1xuXHRcdFx0XHRcdHRoaXMubGlzdC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmICh0aGlzLmVuZ2luZVNlbGVjdG9yKSB7XG5cdFx0XHRcdFx0dGhpcy5lbmdpbmVTZWxlY3Rvci5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmICh0aGlzLmljb24pIHtcblx0XHRcdFx0XHR0aGlzLmljb24uc3R5bGUuZGlzcGxheSA9ICdub25lJztcblx0XHRcdFx0fVxuXHRcdFx0XHR0aGlzLmlucHV0RXhpc3RzID0gdHJ1ZTsgLy8gRGVmYXVsdC4uLlxuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cdFx0XHR0aGlzLmVuZ2luZU5hbWUgPSBlbmdpbmVOYW1lO1xuXHRcdFx0aWYgKGVuZ2luZU5hbWUpIHtcblx0XHRcdFx0aWYgKCF0aGlzLmVuZ2luZVNlbGVjdG9yKSB7XG5cdFx0XHRcdFx0dGhpcy5lbmdpbmVOYW1lID0gbnVsbDtcblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIGlmICh0aGlzLmVuZ2luZVNlbGVjdG9yKSB7XG5cdFx0XHRcdHRoaXMuZW5naW5lU2VsZWN0b3Iuc3R5bGUuZGlzcGxheSA9ICdub25lJztcblx0XHRcdH1cblx0XHRcdGlmIChxdWVyeUtleSkge1xuXHRcdFx0XHRpZiAodGhpcy5sYXN0SW5wdXQuaW5kZXhPZihxdWVyeUtleSkpIHtcblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKFxuXHRcdFx0XHRcdHRoaXMubGFzdFF1ZXJ5ICYmXG5cdFx0XHRcdFx0dGhpcy5sYXN0SW5wdXQuaW5kZXhPZih0aGlzLmxhc3RRdWVyeSkgPT09IDAgJiZcblx0XHRcdFx0XHR0aGlzLmxhc3RRdWVyeS5sZW5ndGggPiBxdWVyeUtleS5sZW5ndGhcblx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHR0aGlzLmxhc3RRdWVyeSA9IHF1ZXJ5S2V5O1xuXHRcdFx0Ly8gR2V0IGN1cnJlbnQgaW5wdXQgdGV4dFxuXHRcdFx0bGV0IHYgPSB0aGlzLnRleHQudmFsdWUuc3BsaXQoJ3wnKTtcblx0XHRcdGNvbnN0IGtleSA9IHYubGVuZ3RoID4gMSA/IGB8JHt2WzFdfWAgOiAnJztcblx0XHRcdHYgPSBIQy5jYXBpdGFsaXplUGFnZU5hbWVzID8gY2FwaXRhbGl6ZSh2WzBdKSA6IHZbMF07XG5cdFx0XHRsZXQgdk5vcm1hbGl6ZWQgPSB2O1xuXHRcdFx0Y29uc3Qga25vd25Ub0V4aXN0ID0gdGl0bGVzICYmIHRpdGxlcy5leGlzdHM7XG5cdFx0XHRsZXQgaTtcblx0XHRcdGlmICh0aXRsZXMpIHtcblx0XHRcdFx0aWYgKHRpdGxlcy5ub3JtYWxpemVkICYmIHYuaW5kZXhPZihxdWVyeUtleSkgPT09IDApIHtcblx0XHRcdFx0XHQvLyBXZSBnb3QgYmFjayBhIGRpZmZlcmVudCBub3JtYWxpemF0aW9uIHRoYW4gd2hhdCBpcyBpbiB0aGUgaW5wdXQgZmllbGRcblx0XHRcdFx0XHR2Tm9ybWFsaXplZCA9IHRpdGxlcy5ub3JtYWxpemVkICsgdi5zbGljZShxdWVyeUtleS5sZW5ndGgpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGNvbnN0IHZMb3cgPSB2Tm9ybWFsaXplZC50b0xvd2VyQ2FzZSgpO1xuXHRcdFx0XHQvLyBTdHJpcCBibGFja2xpc3RlZCBjYXRlZ29yaWVzXG5cdFx0XHRcdGlmIChIQy5ibGFja2xpc3QpIHtcblx0XHRcdFx0XHRmb3IgKGkgPSAwOyBpIDwgdGl0bGVzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdFx0XHRpZiAoSEMuYmxhY2tsaXN0LnRlc3QodGl0bGVzW2ldKSkge1xuXHRcdFx0XHRcdFx0XHR0aXRsZXMuc3BsaWNlKGksIDEpO1xuXHRcdFx0XHRcdFx0XHRpLS07XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdHRpdGxlcy5zb3J0KChhLCBiKSA9PiB7XG5cdFx0XHRcdFx0aWYgKGEgPT09IGIpIHtcblx0XHRcdFx0XHRcdHJldHVybiAwO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRpZiAoYS5pbmRleE9mKGIpID09PSAwKSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gMTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0Ly8gYSBiZWdpbnMgd2l0aCBiOiBhID4gYlxuXHRcdFx0XHRcdGlmIChiLmluZGV4T2YoYSkgPT09IDApIHtcblx0XHRcdFx0XHRcdHJldHVybiAtMTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0Ly8gYiBiZWdpbnMgd2l0aCBhOiBhIDwgYlxuXHRcdFx0XHRcdC8vIE9wZW5zZWFyY2ggbWF5IHJldHVybiBzdHVmZiBub3QgYmVnaW5uaW5nIHdpdGggdGhlIHNlYXJjaCBwcmVmaXghXG5cdFx0XHRcdFx0bGV0IHByZWZpeE1hdGNoQSA9IGEuaW5kZXhPZih2Tm9ybWFsaXplZCkgPT09IDAgPyAxIDogMDtcblx0XHRcdFx0XHRsZXQgcHJlZml4TWF0Y2hCID0gYi5pbmRleE9mKHZOb3JtYWxpemVkKSA9PT0gMCA/IDEgOiAwO1xuXHRcdFx0XHRcdGlmIChwcmVmaXhNYXRjaEEgIT09IHByZWZpeE1hdGNoQikge1xuXHRcdFx0XHRcdFx0cmV0dXJuIHByZWZpeE1hdGNoQiAtIHByZWZpeE1hdGNoQTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0Ly8gQ2FzZS1pbnNlbnNpdGl2ZSBwcmVmaXggbWF0Y2ghXG5cdFx0XHRcdFx0Y29uc3QgYUxvdyA9IGEudG9Mb3dlckNhc2UoKTtcblx0XHRcdFx0XHRjb25zdCBiTG93ID0gYi50b0xvd2VyQ2FzZSgpO1xuXHRcdFx0XHRcdHByZWZpeE1hdGNoQSA9IGFMb3cuaW5kZXhPZih2TG93KSA9PT0gMCA/IDEgOiAwO1xuXHRcdFx0XHRcdHByZWZpeE1hdGNoQiA9IGJMb3cuaW5kZXhPZih2TG93KSA9PT0gMCA/IDEgOiAwO1xuXHRcdFx0XHRcdGlmIChwcmVmaXhNYXRjaEEgIT09IHByZWZpeE1hdGNoQikge1xuXHRcdFx0XHRcdFx0cmV0dXJuIHByZWZpeE1hdGNoQiAtIHByZWZpeE1hdGNoQTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0aWYgKGEgPCBiKSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gLTE7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGlmIChiIDwgYSkge1xuXHRcdFx0XHRcdFx0cmV0dXJuIDE7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHJldHVybiAwO1xuXHRcdFx0XHR9KTtcblx0XHRcdFx0Ly8gUmVtb3ZlIGR1cGxpY2F0ZXMgYW5kIHNlbGYtcmVmZXJlbmNlc1xuXHRcdFx0XHRmb3IgKGkgPSAwOyBpIDwgdGl0bGVzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdFx0aWYgKFxuXHRcdFx0XHRcdFx0KGkgKyAxIDwgdGl0bGVzLmxlbmd0aCAmJiB0aXRsZXNbaV0gPT09IHRpdGxlc1tpICsgMV0pIHx8XG5cdFx0XHRcdFx0XHQoY29uZi53Z05hbWVzcGFjZU51bWJlciA9PT0gMTQgJiYgdGl0bGVzW2ldID09PSBjb25mLndnVGl0bGUpXG5cdFx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0XHR0aXRsZXMuc3BsaWNlKGksIDEpO1xuXHRcdFx0XHRcdFx0aS0tO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0aWYgKCF0aXRsZXMgfHwgdGl0bGVzLmxlbmd0aCA9PT0gMCkge1xuXHRcdFx0XHRpZiAodGhpcy5saXN0KSB7XG5cdFx0XHRcdFx0dGhpcy5saXN0LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKHRoaXMuZW5naW5lU2VsZWN0b3IpIHtcblx0XHRcdFx0XHR0aGlzLmVuZ2luZVNlbGVjdG9yLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKGVuZ2luZU5hbWUgJiYgc3VnZ2VzdGlvbkNvbmZpZ3NbZW5naW5lTmFtZV0gJiYgIXN1Z2dlc3Rpb25Db25maWdzW2VuZ2luZU5hbWVdLnRlbXApIHtcblx0XHRcdFx0XHRpZiAodGhpcy5pY29uKSB7XG5cdFx0XHRcdFx0XHR0aGlzLmljb24uc3JjID0gSEMuZXhpc3RzTm87XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHRoaXMuaW5wdXRFeGlzdHMgPSBmYWxzZTtcblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cdFx0XHRjb25zdCBbZmlyc3RUaXRsZV0gPSB0aXRsZXM7XG5cdFx0XHRjb25zdCBjb21wbGV0ZWQgPSB0aGlzLmF1dG9Db21wbGV0ZShmaXJzdFRpdGxlLCB2LCB2Tm9ybWFsaXplZCwga2V5LCBkb250QXV0b2NvbXBsZXRlKTtcblx0XHRcdGNvbnN0IGV4aXN0aW5nID0gY29tcGxldGVkIHx8IGtub3duVG9FeGlzdCB8fCBmaXJzdFRpdGxlID09PSByZXBsYWNlU2hvcnRjdXRzKHYsIEhDLnNob3J0Y3V0cyk7XG5cdFx0XHRpZiAoZW5naW5lTmFtZSAmJiBzdWdnZXN0aW9uQ29uZmlnc1tlbmdpbmVOYW1lXSAmJiAhc3VnZ2VzdGlvbkNvbmZpZ3NbZW5naW5lTmFtZV0udGVtcCkge1xuXHRcdFx0XHR0aGlzLmljb24uc3JjID0gZXhpc3RpbmcgPyBIQy5leGlzdHNZZXMgOiBIQy5leGlzdHNObztcblx0XHRcdFx0dGhpcy5pbnB1dEV4aXN0cyA9IGV4aXN0aW5nO1xuXHRcdFx0fVxuXHRcdFx0aWYgKGNvbXBsZXRlZCkge1xuXHRcdFx0XHR0aGlzLmxhc3RJbnB1dCA9IGZpcnN0VGl0bGU7XG5cdFx0XHRcdGlmICh0aXRsZXMubGVuZ3RoID09PSAxKSB7XG5cdFx0XHRcdFx0dGhpcy5saXN0LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG5cdFx0XHRcdFx0aWYgKHRoaXMuZW5naW5lU2VsZWN0b3IpIHtcblx0XHRcdFx0XHRcdHRoaXMuZW5naW5lU2VsZWN0b3Iuc3R5bGUuZGlzcGxheSA9ICdub25lJztcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHQvLyAoUmUtKWZpbGwgdGhlIGxpc3Rcblx0XHRcdHdoaWxlICh0aGlzLmxpc3QuZmlyc3RDaGlsZCkge1xuXHRcdFx0XHR0aGlzLmxpc3QuZmlyc3RDaGlsZC5yZW1vdmUoKTtcblx0XHRcdH1cblx0XHRcdGZvciAoaSA9IDA7IGkgPCB0aXRsZXMubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0Y29uc3Qgb3B0ID0gbWFrZSgnb3B0aW9uJyk7XG5cdFx0XHRcdG9wdC5hcHBlbmQobWFrZSh0aXRsZXNbaV0sIHRydWUpKTtcblx0XHRcdFx0b3B0LnNlbGVjdGVkID0gY29tcGxldGVkICYmIGkgPT09IDA7XG5cdFx0XHRcdHRoaXMubGlzdC5hcHBlbmQob3B0KTtcblx0XHRcdH1cblx0XHRcdHRoaXMuZGlzcGxheUxpc3QoKTtcblx0XHR9XG5cdFx0ZGlzcGxheUxpc3QoKSB7XG5cdFx0XHR0aGlzLnNob3dzTGlzdCA9IHRydWU7XG5cdFx0XHRpZiAoIXRoaXMuaXNfYWN0aXZlKSB7XG5cdFx0XHRcdHRoaXMubGlzdC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuXHRcdFx0XHRpZiAodGhpcy5lbmdpbmVTZWxlY3Rvcikge1xuXHRcdFx0XHRcdHRoaXMuZW5naW5lU2VsZWN0b3Iuc3R5bGUuZGlzcGxheSA9ICdub25lJztcblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cdFx0XHRsZXQgbm9mSXRlbXMgPSBNYXRoLm1pbih0aGlzLmxpc3Qub3B0aW9ucy5sZW5ndGgsIEhDLmxpc3RTaXplKTtcblx0XHRcdGlmIChub2ZJdGVtcyA8PSAxKSB7XG5cdFx0XHRcdG5vZkl0ZW1zID0gMjtcblx0XHRcdH1cblx0XHRcdHRoaXMubGlzdC5zaXplID0gbm9mSXRlbXM7XG5cdFx0XHR0aGlzLmxpc3Quc3R5bGUuYWxpZ24gPSBpc19ydGwgPyAncmlnaHQnIDogJ2xlZnQnO1xuXHRcdFx0dGhpcy5saXN0LnN0eWxlLnpJbmRleCA9IDU7XG5cdFx0XHR0aGlzLmxpc3Quc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnO1xuXHRcdFx0Ly8gQ29tcHV0ZSBpbml0aWFsIGxpc3QgcG9zaXRpb24uIEZpcnN0IHRoZSBoZWlnaHQuXG5cdFx0XHRjb25zdCBhbmNob3IgPSBpc19ydGwgPyAncmlnaHQnIDogJ2xlZnQnO1xuXHRcdFx0bGV0IGxpc3RoID0gMDtcblx0XHRcdGlmICh0aGlzLmxpc3Quc3R5bGUuZGlzcGxheSA9PT0gJ25vbmUnKSB7XG5cdFx0XHRcdC8vIE9mZi1zY3JlZW4gZGlzcGxheSB0byBnZXQgdGhlIGhlaWdodFxuXHRcdFx0XHR0aGlzLmxpc3Quc3R5bGUudG9wID0gYCR7dGhpcy50ZXh0Lm9mZnNldFRvcH1weGA7XG5cdFx0XHRcdHRoaXMubGlzdC5zdHlsZVthbmNob3JdID0gJy0xMDAwMHB4Jztcblx0XHRcdFx0dGhpcy5saXN0LnN0eWxlLmRpc3BsYXkgPSAnJztcblx0XHRcdFx0bGlzdGggPSB0aGlzLmxpc3Qub2Zmc2V0SGVpZ2h0O1xuXHRcdFx0XHR0aGlzLmxpc3Quc3R5bGUuZGlzcGxheSA9ICdub25lJztcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGxpc3RoID0gdGhpcy5saXN0Lm9mZnNldEhlaWdodDtcblx0XHRcdH1cblx0XHRcdC8vIEFwcHJveGltYXRlIGNhbGN1bGF0aW9uIG9mIG1heGltdW0gbGlzdCBzaXplXG5cdFx0XHRsZXQgbWF4TGlzdEhlaWdodCA9IGxpc3RoO1xuXHRcdFx0aWYgKG5vZkl0ZW1zIDwgSEMubGlzdFNpemUpIHtcblx0XHRcdFx0bWF4TGlzdEhlaWdodCA9IChsaXN0aCAvIG5vZkl0ZW1zKSAqIEhDLmxpc3RTaXplO1xuXHRcdFx0fVxuXHRcdFx0Y29uc3Qgdmlld3BvcnQgPSAod2hhdCkgPT4ge1xuXHRcdFx0XHRjb25zdCBzID0gYGNsaWVudCR7d2hhdH1gO1xuXHRcdFx0XHRyZXR1cm4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50ID8gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50W3NdIDogMDtcblx0XHRcdH07XG5cdFx0XHRjb25zdCBzY3JvbGxfb2Zmc2V0ID0gKHdoYXQpID0+IHtcblx0XHRcdFx0Y29uc3QgcyA9IGBzY3JvbGwke3doYXR9YDtcblx0XHRcdFx0bGV0IHJlc3VsdCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCA/IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudFtzXSA6IDA7XG5cdFx0XHRcdGlmIChpc19ydGwgJiYgd2hhdCA9PT0gJ0xlZnQnKSB7XG5cdFx0XHRcdFx0Ly8gUlRMIGluY29uc2lzdGVuY2llcy5cblx0XHRcdFx0XHQvLyBGRjogMCBhdCB0aGUgZmFyIHJpZ2h0LCB0aGVuIGluY3JlYXNpbmdseSBuZWdhdGl2ZSB2YWx1ZXMuXG5cdFx0XHRcdFx0Ly8gSUUgPj0gODogMCBhdCB0aGUgZmFyIHJpZ2h0LCB0aGVuIGluY3JlYXNpbmdseSBwb3NpdGl2ZSB2YWx1ZXMuXG5cdFx0XHRcdFx0Ly8gV2Via2l0OiBzY3JvbGxXaWR0aCAtIGNsaWVudFdpZHRoIGF0IHRoZSBmYXIgcmlnaHQsIHRoZW4gZG93biB0byB6ZXJvLlxuXHRcdFx0XHRcdC8vIE9wZXJhOiBkb24ndCBrbm93Li4uXG5cdFx0XHRcdFx0aWYgKHJlc3VsdCA8IDApIHtcblx0XHRcdFx0XHRcdHJlc3VsdCA9IC1yZXN1bHQ7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGlmICghaXNfd2Via2l0KSB7XG5cdFx0XHRcdFx0XHRyZXN1bHQgPSBzY3JvbGxfb2Zmc2V0KCdXaWR0aCcpIC0gdmlld3BvcnQoJ1dpZHRoJykgLSByZXN1bHQ7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdC8vIE5vdyBhbGwgaGF2ZSB3ZWJraXQgYmVoYXZpb3IsIGkuZS4gemVybyBpZiBhdCB0aGUgbGVmdG1vc3QgZWRnZS5cblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gcmVzdWx0O1xuXHRcdFx0fTtcblx0XHRcdGNvbnN0IHBvc2l0aW9uID0gKG5vZGUpID0+IHtcblx0XHRcdFx0Ly8gU3RyaXBwZWQtZG93biBzaW1wbGlmaWVkIHBvc2l0aW9uIGZ1bmN0aW9uLiBJdCdzIGdvb2QgZW5vdWdoIGZvciBvdXIgcHVycG9zZXMuXG5cdFx0XHRcdGlmIChub2RlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCkge1xuXHRcdFx0XHRcdGNvbnN0IGJveCA9IG5vZGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cdFx0XHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0XHRcdHg6IE1hdGgucm91bmQoYm94LmxlZnQgKyBzY3JvbGxfb2Zmc2V0KCdMZWZ0JykpLFxuXHRcdFx0XHRcdFx0eTogTWF0aC5yb3VuZChib3gudG9wICsgc2Nyb2xsX29mZnNldCgnVG9wJykpLFxuXHRcdFx0XHRcdH07XG5cdFx0XHRcdH1cblx0XHRcdFx0bGV0IHQgPSAwO1xuXHRcdFx0XHRsZXQgbCA9IDA7XG5cdFx0XHRcdGRvIHtcblx0XHRcdFx0XHR0ICs9IG5vZGUub2Zmc2V0VG9wIHx8IDA7XG5cdFx0XHRcdFx0bCArPSBub2RlLm9mZnNldExlZnQgfHwgMDtcblx0XHRcdFx0XHRub2RlID0gbm9kZS5vZmZzZXRQYXJlbnQ7XG5cdFx0XHRcdH0gd2hpbGUgKG5vZGUpO1xuXHRcdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRcdHg6IGwsXG5cdFx0XHRcdFx0eTogdCxcblx0XHRcdFx0fTtcblx0XHRcdH07XG5cdFx0XHRjb25zdCB0ZXh0UG9zID0gcG9zaXRpb24odGhpcy50ZXh0KTtcblx0XHRcdGNvbnN0IG5sID0gMDtcblx0XHRcdGxldCBudCA9IDA7XG5cdFx0XHQvLyBPcGVyYSA5LjUgc29tZWhvdyBoYXMgb2Zmc2V0V2lkdGggPSAwIGhlcmU/PyBVc2UgdGhlIG5leHQgYmVzdCB2YWx1ZS4uLlxuXHRcdFx0bGV0IG9mZnNldCA9IDA7XG5cdFx0XHRjb25zdCB0ZXh0Qm94V2lkdGggPSB0aGlzLnRleHQub2Zmc2V0V2lkdGggfHwgdGhpcy50ZXh0LmNsaWVudFdpZHRoO1xuXHRcdFx0aWYgKHRoaXMuZW5naW5lTmFtZSkge1xuXHRcdFx0XHR0aGlzLmVuZ2luZVNlbGVjdG9yLnN0eWxlLnpJbmRleCA9IDU7XG5cdFx0XHRcdHRoaXMuZW5naW5lU2VsZWN0b3Iuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnO1xuXHRcdFx0XHR0aGlzLmVuZ2luZVNlbGVjdG9yLnN0eWxlLndpZHRoID0gYCR7dGV4dEJveFdpZHRofXB4YDtcblx0XHRcdFx0Ly8gRmlndXJlIG91dCB0aGUgaGVpZ2h0IG9mIHRoaXMgc2VsZWN0b3I6IGRpc3BsYXkgaXQgb2ZmLXNjcmVlbiwgdGhlbiBoaWRlIGl0IGFnYWluLlxuXHRcdFx0XHRpZiAodGhpcy5lbmdpbmVTZWxlY3Rvci5zdHlsZS5kaXNwbGF5ID09PSAnbm9uZScpIHtcblx0XHRcdFx0XHR0aGlzLmVuZ2luZVNlbGVjdG9yLnN0eWxlW2FuY2hvcl0gPSAnLTEwMDAwcHgnO1xuXHRcdFx0XHRcdHRoaXMuZW5naW5lU2VsZWN0b3Iuc3R5bGUudG9wID0gJzAnO1xuXHRcdFx0XHRcdHRoaXMuZW5naW5lU2VsZWN0b3Iuc3R5bGUuZGlzcGxheSA9ICcnO1xuXHRcdFx0XHRcdG9mZnNldCA9IHRoaXMuZW5naW5lU2VsZWN0b3Iub2Zmc2V0SGVpZ2h0O1xuXHRcdFx0XHRcdHRoaXMuZW5naW5lU2VsZWN0b3Iuc3R5bGUuZGlzcGxheSA9ICdub25lJztcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRvZmZzZXQgPSB0aGlzLmVuZ2luZVNlbGVjdG9yLm9mZnNldEhlaWdodDtcblx0XHRcdFx0fVxuXHRcdFx0XHR0aGlzLmVuZ2luZVNlbGVjdG9yLnN0eWxlW2FuY2hvcl0gPSBgJHtubH1weGA7XG5cdFx0XHR9XG5cdFx0XHRpZiAodGV4dFBvcy55IDwgbWF4TGlzdEhlaWdodCArIG9mZnNldCArIDEpIHtcblx0XHRcdFx0Ly8gVGhlIGxpc3QgbWlnaHQgZXh0ZW5kIGJleW9uZCB0aGUgdXBwZXIgYm9yZGVyIG9mIHRoZSBwYWdlLiBMZXQncyBhdm9pZCB0aGF0IGJ5IHBsYWNpbmcgaXRcblx0XHRcdFx0Ly8gYmVsb3cgdGhlIGlucHV0IHRleHQgZmllbGQuXG5cdFx0XHRcdG50ID0gdGhpcy50ZXh0Lm9mZnNldEhlaWdodCArIG9mZnNldCArIDE7XG5cdFx0XHRcdGlmICh0aGlzLmVuZ2luZU5hbWUpIHtcblx0XHRcdFx0XHR0aGlzLmVuZ2luZVNlbGVjdG9yLnN0eWxlLnRvcCA9IGAke3RoaXMudGV4dC5vZmZzZXRIZWlnaHR9cHhgO1xuXHRcdFx0XHR9XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRudCA9IC1saXN0aCAtIG9mZnNldCAtIDE7XG5cdFx0XHRcdGlmICh0aGlzLmVuZ2luZU5hbWUpIHtcblx0XHRcdFx0XHR0aGlzLmVuZ2luZVNlbGVjdG9yLnN0eWxlLnRvcCA9IGAkey0ob2Zmc2V0ICsgMSl9cHhgO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHR0aGlzLmxpc3Quc3R5bGUudG9wID0gYCR7bnR9cHhgO1xuXHRcdFx0dGhpcy5saXN0LnN0eWxlLndpZHRoID0gJyc7IC8vIE5vIGZpeGVkIHdpZHRoICh5ZXQpXG5cdFx0XHR0aGlzLmxpc3Quc3R5bGVbYW5jaG9yXSA9IGAke25sfXB4YDtcblx0XHRcdGlmICh0aGlzLmVuZ2luZU5hbWUpIHtcblx0XHRcdFx0dGhpcy5zZWxlY3RFbmdpbmUodGhpcy5lbmdpbmVOYW1lKTtcblx0XHRcdFx0dGhpcy5lbmdpbmVTZWxlY3Rvci5zdHlsZS5kaXNwbGF5ID0gJyc7XG5cdFx0XHR9XG5cdFx0XHR0aGlzLmxpc3Quc3R5bGUuZGlzcGxheSA9ICdibG9jayc7XG5cdFx0XHQvLyBTZXQgdGhlIHdpZHRoIG9mIHRoZSBsaXN0XG5cdFx0XHRpZiAodGhpcy5saXN0Lm9mZnNldFdpZHRoIDwgdGV4dEJveFdpZHRoKSB7XG5cdFx0XHRcdHRoaXMubGlzdC5zdHlsZS53aWR0aCA9IGAke3RleHRCb3hXaWR0aH1weGA7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblx0XHRcdC8vIElmIHRoZSBsaXN0IGlzIHdpZGVyIHRoYW4gdGhlIHRleHRib3g6IG1ha2Ugc3VyZSBpdCBmaXRzIGhvcml6b250YWxseSBpbnRvIHRoZSBicm93c2VyIHdpbmRvd1xuXHRcdFx0Y29uc3Qgc2Nyb2xsID0gc2Nyb2xsX29mZnNldCgnTGVmdCcpO1xuXHRcdFx0Y29uc3Qgdmlld193ID0gdmlld3BvcnQoJ1dpZHRoJyk7XG5cdFx0XHRsZXQgdyA9IHRoaXMubGlzdC5vZmZzZXRXaWR0aDtcblx0XHRcdGNvbnN0IGxfcG9zID0gcG9zaXRpb24odGhpcy5saXN0KTtcblx0XHRcdGxldCBsZWZ0ID0gbF9wb3MueDtcblx0XHRcdGxldCByaWdodCA9IGxlZnQgKyB3O1xuXHRcdFx0aWYgKGxlZnQgPCBzY3JvbGwgfHwgcmlnaHQgPiBzY3JvbGwgKyB2aWV3X3cpIHtcblx0XHRcdFx0aWYgKHcgPiB2aWV3X3cpIHtcblx0XHRcdFx0XHR3ID0gdmlld193O1xuXHRcdFx0XHRcdHRoaXMubGlzdC5zdHlsZS53aWR0aCA9IGAke3d9cHhgO1xuXHRcdFx0XHRcdGlmIChpc19ydGwpIHtcblx0XHRcdFx0XHRcdGxlZnQgPSByaWdodCAtIHc7XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdHJpZ2h0ID0gbGVmdCArIHc7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdGxldCByZWxhdGl2ZV9vZmZzZXQgPSAwO1xuXHRcdFx0XHRpZiAobGVmdCA8IHNjcm9sbCkge1xuXHRcdFx0XHRcdHJlbGF0aXZlX29mZnNldCA9IHNjcm9sbCAtIGxlZnQ7XG5cdFx0XHRcdH0gZWxzZSBpZiAocmlnaHQgPiBzY3JvbGwgKyB2aWV3X3cpIHtcblx0XHRcdFx0XHRyZWxhdGl2ZV9vZmZzZXQgPSAtKHJpZ2h0IC0gc2Nyb2xsIC0gdmlld193KTtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAoaXNfcnRsKSB7XG5cdFx0XHRcdFx0cmVsYXRpdmVfb2Zmc2V0ID0gLXJlbGF0aXZlX29mZnNldDtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAocmVsYXRpdmVfb2Zmc2V0KSB7XG5cdFx0XHRcdFx0dGhpcy5saXN0LnN0eWxlW2FuY2hvcl0gPSBgJHtubCArIHJlbGF0aXZlX29mZnNldH1weGA7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0YXV0b0NvbXBsZXRlKG5ld1ZhbCwgYWN0VmFsLCBub3JtYWxpemVkQWN0VmFsLCBrZXksIGRvbnRNb2RpZnkpIHtcblx0XHRcdGlmIChuZXdWYWwgPT09IGFjdFZhbCkge1xuXHRcdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHRcdH1cblx0XHRcdGlmIChkb250TW9kaWZ5IHx8IHRoaXMuaW1lIHx8ICF0aGlzLmNhblNlbGVjdCgpKSB7XG5cdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdH1cblx0XHRcdC8vIElmIHdlIGNhbid0IHNlbGVjdCBwcm9wZXJseSBvciBhbiBJTUUgY29tcG9zaXRpb24gaXMgb25nb2luZywgYXV0b2NvbXBsZXRpb24gd291bGQgYmUgYSBtYWpvciBhbm5veWFuY2UgdG8gdGhlIHVzZXIuXG5cdFx0XHRpZiAobmV3VmFsLmluZGV4T2YoYWN0VmFsKSkge1xuXHRcdFx0XHQvLyBNYXliZSBpdCdsbCB3b3JrIHdpdGggdGhlIG5vcm1hbGl6ZWQgdmFsdWUgKE5GQyk/XG5cdFx0XHRcdGlmIChub3JtYWxpemVkQWN0VmFsICYmIG5ld1ZhbC5pbmRleE9mKG5vcm1hbGl6ZWRBY3RWYWwpID09PSAwKSB7XG5cdFx0XHRcdFx0aWYgKHRoaXMubGFzdFJlYWxJbnB1dCA9PT0gYWN0VmFsKSB7XG5cdFx0XHRcdFx0XHR0aGlzLmxhc3RSZWFsSW5wdXQgPSBub3JtYWxpemVkQWN0VmFsO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRhY3RWYWwgPSBub3JtYWxpemVkQWN0VmFsO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0Ly8gQWN0dWFsIGlucHV0IGlzIGEgcHJlZml4IG9mIHRoZSBuZXcgdGV4dC4gRmlsbCBpbiBuZXcgdGV4dCwgc2VsZWN0aW5nIHRoZSBuZXdseSBhZGRlZCBzdWZmaXhcblx0XHRcdC8vIHN1Y2ggdGhhdCBpdCBjYW4gYmUgZWFzaWx5IHJlbW92ZWQgYnkgdHlwaW5nIGJhY2tzcGFjZSBpZiB0aGUgc3VnZ2VzdGlvbiBpcyB1bndhbnRlZC5cblx0XHRcdHRoaXMudGV4dC5mb2N1cygpO1xuXHRcdFx0dGhpcy50ZXh0LnZhbHVlID0gbmV3VmFsICsga2V5O1xuXHRcdFx0dGhpcy5zZXRTZWxlY3Rpb24oYWN0VmFsLmxlbmd0aCwgbmV3VmFsLmxlbmd0aCk7XG5cdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHR9XG5cdFx0Y2FuU2VsZWN0KCkge1xuXHRcdFx0cmV0dXJuIChcblx0XHRcdFx0dGhpcy50ZXh0LnNldFNlbGVjdGlvblJhbmdlIHx8XG5cdFx0XHRcdCh0aGlzLnRleHQuc2VsZWN0aW9uU3RhcnQgIT09IHVuZGVmaW5lZCAmJiB0aGlzLnRleHQuc2VsZWN0aW9uRW5kICE9PSB1bmRlZmluZWQpXG5cdFx0XHQpO1xuXHRcdH1cblx0XHRzZXRTZWxlY3Rpb24oZnJvbSwgdG8pIHtcblx0XHRcdC8vIHRoaXMudGV4dCBtdXN0IGJlIGZvY3VzZWQgKGF0IGxlYXN0IG9uIElFKVxuXHRcdFx0aWYgKCF0aGlzLnRleHQudmFsdWUpIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdFx0aWYgKHRoaXMudGV4dC5zZXRTZWxlY3Rpb25SYW5nZSkge1xuXHRcdFx0XHQvLyBlLmcuIGtodG1sXG5cdFx0XHRcdHRoaXMudGV4dC5zZXRTZWxlY3Rpb25SYW5nZShmcm9tLCB0byk7XG5cdFx0XHR9IGVsc2UgaWYgKHRoaXMudGV4dC5zZWxlY3Rpb25TdGFydCAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRcdGlmIChmcm9tID4gdGhpcy50ZXh0LnNlbGVjdGlvblN0YXJ0KSB7XG5cdFx0XHRcdFx0dGhpcy50ZXh0LnNlbGVjdGlvbkVuZCA9IHRvO1xuXHRcdFx0XHRcdHRoaXMudGV4dC5zZWxlY3Rpb25TdGFydCA9IGZyb207XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0dGhpcy50ZXh0LnNlbGVjdGlvblN0YXJ0ID0gZnJvbTtcblx0XHRcdFx0XHR0aGlzLnRleHQuc2VsZWN0aW9uRW5kID0gdG87XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0Z2V0U2VsZWN0aW9uKCkge1xuXHRcdFx0bGV0IGZyb20gPSAwO1xuXHRcdFx0Ly8gdGhpcy50ZXh0IG11c3QgYmUgZm9jdXNlZCAoYXQgbGVhc3Qgb24gSUUpXG5cdFx0XHRsZXQgdG8gPSAwO1xuXHRcdFx0aWYgKCF0aGlzLnRleHQudmFsdWUpIHtcblx0XHRcdFx0Ly8gTm8gdGV4dC5cblx0XHRcdH0gZWxzZSBpZiAodGhpcy50ZXh0LnNlbGVjdGlvblN0YXJ0ICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0ZnJvbSA9IHRoaXMudGV4dC5zZWxlY3Rpb25TdGFydDtcblx0XHRcdFx0dG8gPSB0aGlzLnRleHQuc2VsZWN0aW9uRW5kO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0c3RhcnQ6IGZyb20sXG5cdFx0XHRcdGVuZDogdG8sXG5cdFx0XHR9O1xuXHRcdH1cblx0XHRzYXZlVmlldygpIHtcblx0XHRcdHRoaXMubGFzdFNlbGVjdGlvbiA9IHRoaXMuZ2V0U2VsZWN0aW9uKCk7XG5cdFx0fVxuXHRcdHByb2Nlc3NLZXkoZXZlbnQpIHtcblx0XHRcdGxldCBkaXIgPSAwO1xuXHRcdFx0c3dpdGNoICh0aGlzLmxhc3RLZXkpIHtcblx0XHRcdFx0Y2FzZSBVUDpcblx0XHRcdFx0XHRkaXIgPSAtMTtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0Y2FzZSBET1dOOlxuXHRcdFx0XHRcdGRpciA9IDE7XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdGNhc2UgUEdVUDpcblx0XHRcdFx0XHRkaXIgPSAtSEMubGlzdFNpemU7XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdGNhc2UgUEdET1dOOlxuXHRcdFx0XHRcdGRpciA9IEhDLmxpc3RTaXplO1xuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRjYXNlIEVTQzpcblx0XHRcdFx0XHQvLyBJbmhpYml0IGRlZmF1bHQgYmVoYXZpb3IgKHJldmVydCB0byBsYXN0IHJlYWwgaW5wdXQgaW4gRkY6IHdlIGRvIHRoYXQgb3Vyc2VsdmVzKVxuXHRcdFx0XHRcdHJldHVybiBldnRLaWxsKGV2ZW50KTtcblx0XHRcdH1cblx0XHRcdGlmIChkaXIpIHtcblx0XHRcdFx0aWYgKHRoaXMubGlzdC5zdHlsZS5kaXNwbGF5ICE9PSAnbm9uZScpIHtcblx0XHRcdFx0XHQvLyBMaXN0IGlzIHZpc2libGUsIHNvIHRoZXJlIGFyZSBzdWdnZXN0aW9uc1xuXHRcdFx0XHRcdHRoaXMuaGlnaGxpZ2h0U3VnZ2VzdGlvbihkaXIpO1xuXHRcdFx0XHRcdC8vIEtpbGwgdGhlIGV2ZW50LCBvdGhlcndpc2Ugc29tZSBicm93c2VycyAoZS5nLiwgRmlyZWZveCkgbWF5IGFkZGl0aW9uYWxseSB0cmVhdCBhbiB1cC1hcnJvd1xuXHRcdFx0XHRcdC8vIGFzIFwicGxhY2UgdGhlIHRleHQgY3Vyc29yIGF0IHRoZSBmcm9udFwiLCB3aGljaCB3ZSBkb24ndCB3YW50IGhlcmUuXG5cdFx0XHRcdFx0cmV0dXJuIGV2dEtpbGwoZXZlbnQpO1xuXHRcdFx0XHR9IGVsc2UgaWYgKFxuXHRcdFx0XHRcdHRoaXMua2V5Q291bnQgPD0gMSAmJlxuXHRcdFx0XHRcdCghdGhpcy5jYWxsYmFja09iaiB8fCB0aGlzLmNhbGxiYWNrT2JqLmNhbGxzTWFkZSA9PT0gdGhpcy5jYWxsYmFja09iai5ub2ZDYWxscylcblx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0Ly8gSWYgbm8gc3VnZ2VzdGlvbnMgZGlzcGxheWVkLCBnZXQgdGhlbSwgdW5sZXNzIHdlJ3JlIGFscmVhZHkgZ2V0dGluZyB0aGVtLlxuXHRcdFx0XHRcdHRoaXMudGV4dGNoYW5nZSgpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHR9XG5cdFx0aGlnaGxpZ2h0U3VnZ2VzdGlvbihkaXIpIHtcblx0XHRcdGlmIChub1N1Z2dlc3Rpb25zIHx8ICF0aGlzLmxpc3QgfHwgdGhpcy5saXN0LnN0eWxlLmRpc3BsYXkgPT09ICdub25lJykge1xuXHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHR9XG5cdFx0XHRjb25zdCBjdXJyID0gdGhpcy5saXN0LnNlbGVjdGVkSW5kZXg7XG5cdFx0XHRsZXQgdGd0ID0gLTE7XG5cdFx0XHRpZiAoZGlyID09PSAwKSB7XG5cdFx0XHRcdGlmIChjdXJyIDwgMCB8fCBjdXJyID49IHRoaXMubGlzdC5vcHRpb25zLmxlbmd0aCkge1xuXHRcdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdFx0fVxuXHRcdFx0XHR0Z3QgPSBjdXJyO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dGd0ID0gY3VyciA8IDAgPyAwIDogY3VyciArIGRpcjtcblx0XHRcdFx0dGd0ID0gTWF0aC5tYXgodGd0LCAwKTtcblx0XHRcdFx0aWYgKHRndCA+PSB0aGlzLmxpc3Qub3B0aW9ucy5sZW5ndGgpIHtcblx0XHRcdFx0XHR0Z3QgPSB0aGlzLmxpc3Qub3B0aW9ucy5sZW5ndGggLSAxO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRpZiAodGd0ICE9PSBjdXJyIHx8IGRpciA9PT0gMCkge1xuXHRcdFx0XHRpZiAoY3VyciA+PSAwICYmIGN1cnIgPCB0aGlzLmxpc3Qub3B0aW9ucy5sZW5ndGggJiYgZGlyICE9PSAwKSB7XG5cdFx0XHRcdFx0dGhpcy5saXN0Lm9wdGlvbnNbY3Vycl0uc2VsZWN0ZWQgPSBmYWxzZTtcblx0XHRcdFx0fVxuXHRcdFx0XHR0aGlzLmxpc3Qub3B0aW9uc1t0Z3RdLnNlbGVjdGVkID0gdHJ1ZTtcblx0XHRcdFx0Ly8gR2V0IGN1cnJlbnQgaW5wdXQgdGV4dFxuXHRcdFx0XHRjb25zdCB2ID0gdGhpcy50ZXh0LnZhbHVlLnNwbGl0KCd8Jyk7XG5cdFx0XHRcdGNvbnN0IGtleSA9IHYubGVuZ3RoID4gMSA/IGB8JHt2WzFdfWAgOiAnJztcblx0XHRcdFx0Y29uc3QgY29tcGxldGVkID0gdGhpcy5hdXRvQ29tcGxldGUodGhpcy5saXN0Lm9wdGlvbnNbdGd0XS50ZXh0LCB0aGlzLmxhc3RSZWFsSW5wdXQsIG51bGwsIGtleSwgZmFsc2UpO1xuXHRcdFx0XHRpZiAoIWNvbXBsZXRlZCB8fCB0aGlzLmxpc3Qub3B0aW9uc1t0Z3RdLnRleHQgPT09IHRoaXMubGFzdFJlYWxJbnB1dCkge1xuXHRcdFx0XHRcdHRoaXMudGV4dC52YWx1ZSA9IHRoaXMubGlzdC5vcHRpb25zW3RndF0udGV4dCArIGtleTtcblx0XHRcdFx0XHRpZiAodGhpcy5jYW5TZWxlY3QoKSkge1xuXHRcdFx0XHRcdFx0dGhpcy5zZXRTZWxlY3Rpb24odGhpcy5saXN0Lm9wdGlvbnNbdGd0XS50ZXh0Lmxlbmd0aCwgdGhpcy5saXN0Lm9wdGlvbnNbdGd0XS50ZXh0Lmxlbmd0aCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdHRoaXMubGFzdElucHV0ID0gdGhpcy5saXN0Lm9wdGlvbnNbdGd0XS50ZXh0O1xuXHRcdFx0XHR0aGlzLmlucHV0RXhpc3RzID0gdHJ1ZTsgLy8gTWlnaHQgYmUgd3JvbmcgaWYgZnJvbSBhIGRhYiBsaXN0Li4uXG5cdFx0XHRcdGlmICh0aGlzLmljb24pIHtcblx0XHRcdFx0XHR0aGlzLmljb24uc3JjID0gSEMuZXhpc3RzWWVzO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHRoaXMuc3RhdGUgPSBDSEFOR0VfUEVORElORztcblx0XHRcdH1cblx0XHRcdHJldHVybiB0cnVlO1xuXHRcdH1cblx0XHRyZXNldEtleVNlbGVjdGlvbigpIHtcblx0XHRcdGlmIChub1N1Z2dlc3Rpb25zIHx8ICF0aGlzLmxpc3QgfHwgdGhpcy5saXN0LnN0eWxlLmRpc3BsYXkgPT09ICdub25lJykge1xuXHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHR9XG5cdFx0XHRjb25zdCBjdXJyID0gdGhpcy5saXN0LnNlbGVjdGVkSW5kZXg7XG5cdFx0XHRpZiAoY3VyciA+PSAwICYmIGN1cnIgPCB0aGlzLmxpc3Qub3B0aW9ucy5sZW5ndGgpIHtcblx0XHRcdFx0dGhpcy5saXN0Lm9wdGlvbnNbY3Vycl0uc2VsZWN0ZWQgPSBmYWxzZTtcblx0XHRcdFx0Ly8gR2V0IGN1cnJlbnQgaW5wdXQgdGV4dFxuXHRcdFx0XHRjb25zdCB2ID0gdGhpcy50ZXh0LnZhbHVlLnNwbGl0KCd8Jyk7XG5cdFx0XHRcdGNvbnN0IGtleSA9IHYubGVuZ3RoID4gMSA/IGB8JHt2WzFdfWAgOiAnJztcblx0XHRcdFx0Ly8gRVNDIGlzIGhhbmRsZWQgc3RyYW5nZWx5IGJ5IHNvbWUgYnJvd3NlcnMgKGUuZy4sIEZGKTsgc29tZWhvdyBpdCByZXNldHMgdGhlIGlucHV0IHZhbHVlIGJlZm9yZVxuXHRcdFx0XHQvLyBvdXIgZXZlbnQgaGFuZGxlcnMgZXZlciBnZXQgYSBjaGFuY2UgdG8gcnVuLlxuXHRcdFx0XHRsZXQgcmVzdWx0ID0gdlswXSAhPT0gdGhpcy5sYXN0SW5wdXQ7XG5cdFx0XHRcdGlmICh2WzBdICE9PSB0aGlzLmxhc3RSZWFsSW5wdXQpIHtcblx0XHRcdFx0XHR0aGlzLnRleHQudmFsdWUgPSB0aGlzLmxhc3RSZWFsSW5wdXQgKyBrZXk7XG5cdFx0XHRcdFx0cmVzdWx0ID0gdHJ1ZTtcblx0XHRcdFx0fVxuXHRcdFx0XHR0aGlzLmxhc3RJbnB1dCA9IHRoaXMubGFzdFJlYWxJbnB1dDtcblx0XHRcdFx0cmV0dXJuIHJlc3VsdDtcblx0XHRcdH1cblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cdH1cblx0Y29uc3QgaW5pdGlhbGl6ZSA9ICgpID0+IHtcblx0XHQvLyBVc2VyIGNvbmZpZ3VyYXRpb25zOiBEbyB0aGlzIGhlcmUsIGNhbGxlZCBmcm9tIHRoZSBvbmxvYWQgaGFuZGxlciwgc28gdGhhdCB1c2VycyBjYW5cblx0XHQvLyBvdmVycmlkZSBpdCBlYXNpbHkgaW4gdGhlaXIgb3duIHVzZXIgc2NyaXB0IGZpbGVzIGJ5IGp1c3QgZGVjbGFyaW5nIHZhcmlhYmxlcy5cblx0XHRjb25zdCBjb25maWcgPSB7fTtcblx0XHRIQy5kb250X2FkZF90b193YXRjaGxpc3QgPVxuXHRcdFx0d2luZG93LmhvdGNhdF9kb250X2FkZF90b193YXRjaGxpc3QgPT09IHVuZGVmaW5lZFxuXHRcdFx0XHQ/IGNvbmZpZy5Ib3RDYXREb250QWRkVG9XYXRjaGxpc3QgPT09IHVuZGVmaW5lZFxuXHRcdFx0XHRcdD8gSEMuZG9udF9hZGRfdG9fd2F0Y2hsaXN0XG5cdFx0XHRcdFx0OiBjb25maWcuSG90Q2F0RG9udEFkZFRvV2F0Y2hsaXN0XG5cdFx0XHRcdDogISF3aW5kb3cuaG90Y2F0X2RvbnRfYWRkX3RvX3dhdGNobGlzdDtcblx0XHRIQy5ub19hdXRvY29tbWl0ID1cblx0XHRcdHdpbmRvdy5ob3RjYXRfbm9fYXV0b2NvbW1pdCA9PT0gdW5kZWZpbmVkXG5cdFx0XHRcdD8gY29uZmlnLkhvdENhdE5vQXV0b0NvbW1pdCA9PT0gdW5kZWZpbmVkXG5cdFx0XHRcdFx0PyBjb25mLndnTmFtZXNwYWNlTnVtYmVyICUgMlxuXHRcdFx0XHRcdFx0PyB0cnVlXG5cdFx0XHRcdFx0XHQ6IEhDLm5vX2F1dG9jb21taXQgLy8gT24gdGFsayBuYW1lc3BhY2UgZGVmYXVsdCBhdXRvY29tbWl0IG9mZlxuXHRcdFx0XHRcdDogY29uZmlnLkhvdENhdE5vQXV0b0NvbW1pdFxuXHRcdFx0XHQ6ICEhd2luZG93LmhvdGNhdF9ub19hdXRvY29tbWl0O1xuXHRcdEhDLmRlbF9uZWVkc19kaWZmID1cblx0XHRcdHdpbmRvdy5ob3RjYXRfZGVsX25lZWRzX2RpZmYgPT09IHVuZGVmaW5lZFxuXHRcdFx0XHQ/IGNvbmZpZy5Ib3RDYXREZWxOZWVkc0RpZmYgPT09IHVuZGVmaW5lZFxuXHRcdFx0XHRcdD8gSEMuZGVsX25lZWRzX2RpZmZcblx0XHRcdFx0XHQ6IGNvbmZpZy5Ib3RDYXREZWxOZWVkc0RpZmZcblx0XHRcdFx0OiAhIXdpbmRvdy5ob3RjYXRfZGVsX25lZWRzX2RpZmY7XG5cdFx0SEMuc3VnZ2VzdF9kZWxheSA9IHdpbmRvdy5ob3RjYXRfc3VnZ2VzdGlvbl9kZWxheSB8fCBjb25maWcuSG90Q2F0U3VnZ2VzdGlvbkRlbGF5IHx8IEhDLnN1Z2dlc3RfZGVsYXk7XG5cdFx0SEMuZWRpdGJveF93aWR0aCA9IHdpbmRvdy5ob3RjYXRfZWRpdGJveF93aWR0aCB8fCBjb25maWcuSG90Q2F0RWRpdEJveFdpZHRoIHx8IEhDLmVkaXRib3hfd2lkdGg7XG5cdFx0SEMuc3VnZ2VzdGlvbnMgPSB3aW5kb3cuaG90Y2F0X3N1Z2dlc3Rpb25zIHx8IGNvbmZpZy5Ib3RDYXRTdWdnZXN0aW9ucyB8fCBIQy5zdWdnZXN0aW9ucztcblx0XHRpZiAodHlwZW9mIEhDLnN1Z2dlc3Rpb25zICE9PSAnc3RyaW5nJyB8fCAhc3VnZ2VzdGlvbkNvbmZpZ3NbSEMuc3VnZ2VzdGlvbnNdKSB7XG5cdFx0XHRIQy5zdWdnZXN0aW9ucyA9ICdjb21iaW5lZCc7XG5cdFx0fVxuXHRcdEhDLmZpeGVkX3NlYXJjaCA9XG5cdFx0XHR3aW5kb3cuaG90Y2F0X3N1Z2dlc3Rpb25zX2ZpeGVkID09PSB1bmRlZmluZWRcblx0XHRcdFx0PyBjb25maWcuSG90Q2F0Rml4ZWRTdWdnZXN0aW9ucyA9PT0gdW5kZWZpbmVkXG5cdFx0XHRcdFx0PyBIQy5maXhlZF9zZWFyY2hcblx0XHRcdFx0XHQ6IGNvbmZpZy5Ib3RDYXRGaXhlZFN1Z2dlc3Rpb25zXG5cdFx0XHRcdDogISF3aW5kb3cuaG90Y2F0X3N1Z2dlc3Rpb25zX2ZpeGVkO1xuXHRcdEhDLnNpbmdsZV9taW5vciA9XG5cdFx0XHR3aW5kb3cuaG90Y2F0X3NpbmdsZV9jaGFuZ2VzX2FyZV9taW5vciA9PT0gdW5kZWZpbmVkXG5cdFx0XHRcdD8gY29uZmlnLkhvdENhdE1pbm9yU2luZ2xlQ2hhbmdlcyA9PT0gdW5kZWZpbmVkXG5cdFx0XHRcdFx0PyBIQy5zaW5nbGVfbWlub3Jcblx0XHRcdFx0XHQ6IGNvbmZpZy5Ib3RDYXRNaW5vclNpbmdsZUNoYW5nZXNcblx0XHRcdFx0OiAhIXdpbmRvdy5ob3RjYXRfc2luZ2xlX2NoYW5nZXNfYXJlX21pbm9yO1xuXHRcdEhDLmJnX2NoYW5nZWQgPSB3aW5kb3cuaG90Y2F0X2NoYW5nZWRfYmFja2dyb3VuZCB8fCBjb25maWcuSG90Q2F0Q2hhbmdlZEJhY2tncm91bmQgfHwgSEMuYmdfY2hhbmdlZDtcblx0XHRIQy51c2VfdXBfZG93biA9XG5cdFx0XHR3aW5kb3cuaG90Y2F0X3VzZV9jYXRlZ29yeV9saW5rcyA9PT0gdW5kZWZpbmVkXG5cdFx0XHRcdD8gY29uZmlnLkhvdENhdFVzZUNhdGVnb3J5TGlua3MgPT09IHVuZGVmaW5lZFxuXHRcdFx0XHRcdD8gSEMudXNlX3VwX2Rvd25cblx0XHRcdFx0XHQ6IGNvbmZpZy5Ib3RDYXRVc2VDYXRlZ29yeUxpbmtzXG5cdFx0XHRcdDogISF3aW5kb3cuaG90Y2F0X3VzZV9jYXRlZ29yeV9saW5rcztcblx0XHRIQy5saXN0U2l6ZSA9IHdpbmRvdy5ob3RjYXRfbGlzdF9zaXplIHx8IGNvbmZpZy5Ib3RDYXRMaXN0U2l6ZSB8fCBIQy5saXN0U2l6ZTtcblx0XHRIQy5jaGFuZ2VUYWcgPSBjb25maWcuSG90Q2F0Q2hhbmdlVGFnIHx8ICcnO1xuXHRcdC8vIFRoZSBuZXh0IHdob2xlIHNoZWJhbmcgaXMgbmVlZGVkLCBiZWNhdXNlIG1hbnVhbCB0YWdzIGdldCBub3Qgc3VibWl0dGVkIGV4Y2VwdCBvZiBzYXZlXG5cdFx0aWYgKEhDLmNoYW5nZVRhZykge1xuXHRcdFx0Y29uc3QgZUZvcm0gPSBkb2N1bWVudC5lZGl0Zm9ybTtcblx0XHRcdGNvbnN0IGNhdFJlZ0V4cCA9IG5ldyBSZWdFeHAoYF5cXFxcW1xcXFxbKCR7SEMuY2F0ZWdvcnlfcmVnZXhwfSk6YCk7XG5cdFx0XHRsZXQgb2xkVHh0O1xuXHRcdFx0Ly8gUmV0dXJucyB0cnVlIGlmIG1pbm9yIGNoYW5nZVxuXHRcdFx0Y29uc3QgaXNNaW5vckNoYW5nZSA9ICgpID0+IHtcblx0XHRcdFx0bGV0IG5ld1R4dCA9IGVGb3JtLndwVGV4dGJveDE7XG5cdFx0XHRcdGlmICghbmV3VHh0KSB7XG5cdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHR9XG5cdFx0XHRcdG5ld1R4dCA9IG5ld1R4dC52YWx1ZTtcblx0XHRcdFx0Y29uc3Qgb2xkTGluZXMgPSBvbGRUeHQubWF0Y2goL14uKiQvZ20pO1xuXHRcdFx0XHRjb25zdCBuZXdMaW5lcyA9IG5ld1R4dC5tYXRjaCgvXi4qJC9nbSk7XG5cdFx0XHRcdGxldCBjQXJyOyAvLyBjaGFuZ2VzXG5cdFx0XHRcdGNvbnN0IGV4Y2VwdCA9IChhQXJyLCBiQXJyKSA9PiB7XG5cdFx0XHRcdFx0Y29uc3QgcmVzdWx0ID0gW107XG5cdFx0XHRcdFx0bGV0IGxBcnI7IC8vIHNtYWxsZXJcblx0XHRcdFx0XHRsZXQgLy8gbGFyZ2VyXG5cdFx0XHRcdFx0XHRzQXJyO1xuXHRcdFx0XHRcdGlmIChhQXJyLmxlbmd0aCA8IGJBcnIubGVuZ3RoKSB7XG5cdFx0XHRcdFx0XHRsQXJyID0gYkFycjtcblx0XHRcdFx0XHRcdHNBcnIgPSBhQXJyO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRsQXJyID0gYUFycjtcblx0XHRcdFx0XHRcdHNBcnIgPSBiQXJyO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRmb3IgKGNvbnN0IGl0ZW0gb2YgbEFycikge1xuXHRcdFx0XHRcdFx0Y29uc3QgaW5kID0gc0Fyci5pbmRleE9mKGl0ZW0pO1xuXHRcdFx0XHRcdFx0aWYgKGluZCA9PT0gLTEpIHtcblx0XHRcdFx0XHRcdFx0cmVzdWx0W3Jlc3VsdC5sZW5ndGhdID0gaXRlbTtcblx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdHNBcnIuc3BsaWNlKGluZCwgMSk7IC8vIGRvbid0IGNoZWNrIHRoaXMgaXRlbSBhZ2FpblxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRyZXR1cm4gWy4uLnJlc3VsdCwgLi4uc0Fycl07XG5cdFx0XHRcdH07XG5cdFx0XHRcdGNBcnIgPSBleGNlcHQob2xkTGluZXMsIG5ld0xpbmVzKTtcblx0XHRcdFx0aWYgKGNBcnIubGVuZ3RoID4gMCkge1xuXHRcdFx0XHRcdGNBcnIgPSBjQXJyLmZpbHRlcigoYykgPT4ge1xuXHRcdFx0XHRcdFx0YyA9IGMudHJpbSgpO1xuXHRcdFx0XHRcdFx0cmV0dXJuIGMgJiYgIWNhdFJlZ0V4cC50ZXN0KGMpO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmIChjQXJyLmxlbmd0aCA9PT0gMCkge1xuXHRcdFx0XHRcdG9sZFR4dCA9IG5ld1R4dDtcblx0XHRcdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHRcdFx0fVxuXHRcdFx0fTtcblx0XHRcdGlmIChcblx0XHRcdFx0Y29uZi53Z0FjdGlvbiA9PT0gJ3N1Ym1pdCcgJiZcblx0XHRcdFx0Y29uZi53Z0FydGljbGVJZCAmJlxuXHRcdFx0XHRlRm9ybSAmJlxuXHRcdFx0XHRlRm9ybS53cFN1bW1hcnkgJiZcblx0XHRcdFx0ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3dpa2lEaWZmJylcblx0XHRcdCkge1xuXHRcdFx0XHRjb25zdCBzdW0gPSBlRm9ybS53cFN1bW1hcnk7XG5cdFx0XHRcdGNvbnN0IHN1bUEgPSBlRm9ybS53cEF1dG9TdW1tYXJ5O1xuXHRcdFx0XHRpZiAoc3VtLnZhbHVlICYmIHN1bUEudmFsdWUgPT09IEhDLmNoYW5nZVRhZykge1xuXHRcdFx0XHRcdC8vIEhvdENhdCBkaWZmXG5cdFx0XHRcdFx0Ly8gTUQ1IGhhc2ggb2YgdGhlIGVtcHR5IHN0cmluZywgYXMgSG90Q2F0IGVkaXQgaXMgYmFzZWQgb24gZW1wdHkgc3VtXG5cdFx0XHRcdFx0c3VtQS52YWx1ZSA9IHN1bUEudmFsdWUucmVwbGFjZShIQy5jaGFuZ2VUYWcsICdkNDFkOGNkOThmMDBiMjA0ZTk4MDA5OThlY2Y4NDI3ZScpO1xuXHRcdFx0XHRcdC8vIEF0dHIgY3JlYXRpb24gYW5kIGV2ZW50IGhhbmRsaW5nIGlzIG5vdCBzYW1lIGluIGFsbCAob2xkKSBicm93c2VycyBzbyB1c2UgJFxuXHRcdFx0XHRcdGNvbnN0ICRjdCA9ICQoJzxpbnB1dD4nKVxuXHRcdFx0XHRcdFx0LmF0dHIoe1xuXHRcdFx0XHRcdFx0XHR0eXBlOiAnaGlkZGVuJyxcblx0XHRcdFx0XHRcdFx0bmFtZTogJ3dwQ2hhbmdlVGFncycsXG5cdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdFx0LnZhbChIQy5jaGFuZ2VUYWcpO1xuXHRcdFx0XHRcdCQoZUZvcm0pLmFwcGVuZCgkY3QpO1xuXHRcdFx0XHRcdG9sZFR4dCA9IGVGb3JtLndwVGV4dGJveDEudmFsdWU7XG5cdFx0XHRcdFx0Y29uc3QgJGJvZHkgPSAkKCdib2R5Jyk7XG5cdFx0XHRcdFx0JGJvZHkuZmluZCgnaW5wdXRbbmFtZT13cFNhdmVdJykub25lKCdjbGljaycsICgpID0+IHtcblx0XHRcdFx0XHRcdGlmICgkY3QudmFsKCkpIHtcblx0XHRcdFx0XHRcdFx0c3VtLnZhbHVlID0gc3VtLnZhbHVlLnJlcGxhY2UoXG5cdFx0XHRcdFx0XHRcdFx0Z2V0TWVzc2FnZSgnbWVzc2FnZXMtdXNpbmcnKSB8fCBnZXRNZXNzYWdlKCdtZXNzYWdlcy1wcmVmaXgnKSxcblx0XHRcdFx0XHRcdFx0XHQnJ1xuXHRcdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdGNvbnN0IHJlbW92ZUNoYW5nZVRhZyA9ICgpID0+IHtcblx0XHRcdFx0XHRcdCQoZUZvcm0ud3BUZXh0Ym94MSlcblx0XHRcdFx0XHRcdFx0LmFkZChzdW0pXG5cdFx0XHRcdFx0XHRcdC5vbmUoJ2lucHV0JywgKCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdFx0aWYgKGlzTWlub3JDaGFuZ2UoKSkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRyZW1vdmVDaGFuZ2VUYWcoKTtcblx0XHRcdFx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdCRjdC52YWwoJycpO1xuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdH0sIDUwMCk7XG5cdFx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0cmVtb3ZlQ2hhbmdlVGFnKCk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0Ly8gTnVtZXJpYyBpbnB1dCwgbWFrZSBzdXJlIHdlIGhhdmUgYSBudW1lcmljIHZhbHVlXG5cdFx0SEMubGlzdFNpemUgPSBOdW1iZXIucGFyc2VJbnQoSEMubGlzdFNpemUsIDEwKTtcblx0XHRpZiAoTnVtYmVyLmlzTmFOKEhDLmxpc3RTaXplKSB8fCBIQy5saXN0U2l6ZSA8IDUpIHtcblx0XHRcdEhDLmxpc3RTaXplID0gNTtcblx0XHR9XG5cdFx0SEMubGlzdFNpemUgPSBNYXRoLm1pbihIQy5saXN0U2l6ZSwgMzApOyAvLyBNYXggc2l6ZVxuXHRcdC8vIExvY2FsaXplIHNlYXJjaCBlbmdpbmUgbmFtZXNcblx0XHRmb3IgKGNvbnN0IFtrZXksIHN1Z2dlc3Rpb25Db25maWddIG9mIE9iamVjdC5lbnRyaWVzKHN1Z2dlc3Rpb25Db25maWdzKSkge1xuXHRcdFx0dHJ5IHtcblx0XHRcdFx0aWYgKGtleSAmJiBnZXRNZXNzYWdlKGBlbmdpbmVfbmFtZXMtJHtrZXl9YCkpIHtcblx0XHRcdFx0XHRzdWdnZXN0aW9uQ29uZmlnLm5hbWUgPSBnZXRNZXNzYWdlKGBlbmdpbmVfbmFtZXMtJHtrZXl9YCk7XG5cdFx0XHRcdH1cblx0XHRcdH0gY2F0Y2gge1xuXHRcdFx0XHRjb250aW51ZTtcblx0XHRcdH1cblx0XHR9XG5cdFx0Ly8gQ2F0Y2ggYm90aCBuYXRpdmUgUlRMIGFuZCBcImZha2VkXCIgUlRMIHRocm91Z2ggW1tNZWRpYVdpa2k6UnRsLmpzXV1cblx0XHRpc19ydGwgPSBoYXNDbGFzcyhkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdib2R5JyksICdydGwnKTtcblx0XHRpZiAoIWlzX3J0bCkge1xuXHRcdFx0aWYgKGRvY3VtZW50LmRlZmF1bHRWaWV3ICYmIGRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUpIHtcblx0XHRcdFx0Ly8gR2Vja28gZXRjLlxuXHRcdFx0XHRpc19ydGwgPSBkb2N1bWVudC5kZWZhdWx0Vmlld1xuXHRcdFx0XHRcdC5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2JvZHknKSwgbnVsbClcblx0XHRcdFx0XHQuZ2V0UHJvcGVydHlWYWx1ZSgnZGlyZWN0aW9uJyk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHQvLyBOb3QgZXhhY3RseSByaWdodCwgYnV0IGJlc3QgZWZmb3J0XG5cdFx0XHRcdGlzX3J0bCA9ICQoJ2JvZHknKVswXS5zdHlsZS5kaXJlY3Rpb247XG5cdFx0XHR9XG5cdFx0XHRpc19ydGwgPSBpc19ydGwgPT09ICdydGwnO1xuXHRcdH1cblx0fTtcblx0Y29uc3QgY2FuX2VkaXQgPSAoKSA9PiB7XG5cdFx0cmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNjYS1lZGl0JykgIT09IG51bGw7XG5cdH07XG5cdC8vIExlZ2FjeSBzdHVmZlxuXHRjb25zdCBjbG9zZUZvcm0gPSBmdW5jdGlvbiAoKSB7XG5cdFx0Ly8gQ2xvc2UgYWxsIG9wZW4gZWRpdG9ycyB3aXRob3V0IHJlZGlyZWN0IHJlc29sdXRpb24gYW5kIG90aGVyIGFzeW5jaHJvbm91cyBzdHVmZi5cblx0XHRmb3IgKGNvbnN0IGVkaXQgb2YgZWRpdG9ycykge1xuXHRcdFx0aWYgKGVkaXQuc3RhdGUgPT09IE9QRU4pIHtcblx0XHRcdFx0ZWRpdC5jYW5jZWwoKTtcblx0XHRcdH0gZWxzZSBpZiAoZWRpdC5zdGF0ZSA9PT0gQ0hBTkdFX1BFTkRJTkcpIHtcblx0XHRcdFx0ZWRpdC5zYW5pdGl6ZUlucHV0KCk7XG5cdFx0XHRcdGNvbnN0IHZhbHVlID0gZWRpdC50ZXh0LnZhbHVlLnNwbGl0KCd8Jyk7XG5cdFx0XHRcdGxldCBrZXkgPSBudWxsO1xuXHRcdFx0XHRpZiAodmFsdWUubGVuZ3RoID4gMSkge1xuXHRcdFx0XHRcdFssIGtleV0gPSB2YWx1ZTtcblx0XHRcdFx0fVxuXHRcdFx0XHRjb25zdCB2ID0gdmFsdWVbMF0ucmVwbGFjZSgvXy9nLCAnICcpLnRyaW0oKTtcblx0XHRcdFx0aWYgKHYubGVuZ3RoID09PSAwKSB7XG5cdFx0XHRcdFx0ZWRpdC5jYW5jZWwoKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRlZGl0LmN1cnJlbnRDYXRlZ29yeSA9IHY7XG5cdFx0XHRcdFx0ZWRpdC5jdXJyZW50S2V5ID0ga2V5O1xuXHRcdFx0XHRcdGVkaXQuY3VycmVudEV4aXN0cyA9IHRoaXMuaW5wdXRFeGlzdHM7XG5cdFx0XHRcdFx0ZWRpdC5jbG9zZSgpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9O1xuXHRjb25zdCBzZXR1cF91cGxvYWQgPSAoKSA9PiB7XG5cdFx0b25VcGxvYWQgPSB0cnVlO1xuXHRcdC8vIEFkZCBhbiBlbXB0eSBjYXRlZ29yeSBiYXIgYXQgdGhlIGVuZCBvZiB0aGUgdGFibGUgY29udGFpbmluZyB0aGUgZGVzY3JpcHRpb24sIGFuZCBjaGFuZ2UgdGhlIG9uc3VibWl0IGhhbmRsZXIuXG5cdFx0bGV0IGlwID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI213LWh0bWxmb3JtLWRlc2NyaXB0aW9uJykgfHwgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXRbbmFtZT13cERlc3RGaWxlXScpO1xuXHRcdGlmICghaXApIHtcblx0XHRcdGlwID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXRbbmFtZT13cERlc3RGaWxlXScpO1xuXHRcdFx0d2hpbGUgKGlwICYmIGlwLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgIT09ICd0YWJsZScpIHtcblx0XHRcdFx0aXAgPSBpcC5wYXJlbnROb2RlO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRpZiAoIWlwKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdGNvbnN0IHJldXBsb2FkID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXRbbmFtZT13cEZvclJlVXBsb2FkXScpO1xuXHRcdGNvbnN0IGRlc3RGaWxlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXRbbmFtZT13cERlc3RGaWxlXScpO1xuXHRcdGlmICgocmV1cGxvYWQgJiYgISFyZXVwbG9hZC52YWx1ZSkgfHwgKGRlc3RGaWxlICYmIChkZXN0RmlsZS5kaXNhYmxlZCB8fCBkZXN0RmlsZS5yZWFkT25seSkpKSB7XG5cdFx0XHRyZXR1cm47IC8vIHJlLXVwbG9hZCBmb3JtLi4uXG5cdFx0fVxuXHRcdC8vIEluc2VydCBhIHRhYmxlIHJvdyB3aXRoIHR3byBmaWVsZHMgKGxhYmVsIGFuZCBlbXB0eSBjYXRlZ29yeSBiYXIpXG5cdFx0Y29uc3QgbGFiZWxDZWxsID0gbWFrZSgndGQnKTtcblx0XHRjb25zdCBsaW5lQ2VsbCA9IG1ha2UoJ3RkJyk7XG5cdFx0Ly8gQ3JlYXRlIHRoZSBjYXRlZ29yeSBsaW5lXG5cdFx0Y2F0TGluZSA9IG1ha2UoJ2RpdicpO1xuXHRcdGNhdExpbmUuY2xhc3NOYW1lID0gJ2NhdGxpbmtzJztcblx0XHRjYXRMaW5lLmlkID0gJ2NhdGxpbmtzJztcblx0XHRjYXRMaW5lLnN0eWxlLnRleHRBbGlnbiA9IGlzX3J0bCA/ICdyaWdodCcgOiAnbGVmdCc7XG5cdFx0Ly8gV2UnbGwgYmUgaW5zaWRlIGEgdGFibGUgcm93LiBNYWtlIHN1cmUgdGhhdCB3ZSBkb24ndCBoYXZlIG1hcmdpbnMgb3Igc3RyYW5nZSBib3JkZXJzLlxuXHRcdGNhdExpbmUuc3R5bGUubWFyZ2luID0gJzAnO1xuXHRcdGNhdExpbmUuc3R5bGUuYm9yZGVyID0gJ25vbmUnO1xuXHRcdGxpbmVDZWxsLmFwcGVuZChjYXRMaW5lKTtcblx0XHQvLyBDcmVhdGUgdGhlIGxhYmVsXG5cdFx0Y29uc3QgbGFiZWwgPSBudWxsO1xuXHRcdGlmIChsYWJlbCkge1xuXHRcdFx0bGFiZWxDZWxsLmlkID0gJ2hvdGNhdExhYmVsVHJhbnNsYXRlZCc7XG5cdFx0XHRsYWJlbENlbGwuYXBwZW5kKGxhYmVsKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0bGFiZWxDZWxsLmlkID0gJ2hvdGNhdExhYmVsJztcblx0XHRcdGxhYmVsQ2VsbC5hcHBlbmQobWFrZShnZXRNZXNzYWdlKCdjYXRlZ29yaWVzJyksIHRydWUpKTtcblx0XHR9XG5cdFx0bGFiZWxDZWxsLmNsYXNzTmFtZSA9ICdtdy1sYWJlbCc7XG5cdFx0bGFiZWxDZWxsLnN0eWxlLnRleHRBbGlnbiA9ICdyaWdodCc7XG5cdFx0bGFiZWxDZWxsLnN0eWxlLnZlcnRpY2FsQWxpZ24gPSAnbWlkZGxlJztcblx0XHQvLyBDaGFuZ2UgdGhlIG9uc3VibWl0IGhhbmRsZXJcblx0XHRjb25zdCBmb3JtID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3VwbG9hZCcpIHx8IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNtdy11cGxvYWQtZm9ybScpO1xuXHRcdGlmIChmb3JtKSB7XG5cdFx0XHRjb25zdCBuZXdSb3cgPSBpcC5pbnNlcnRSb3coLTEpO1xuXHRcdFx0bmV3Um93LmFwcGVuZChsYWJlbENlbGwpO1xuXHRcdFx0bmV3Um93LmFwcGVuZChsaW5lQ2VsbCk7XG5cdFx0XHRmb3JtLmFkZEV2ZW50TGlzdGVuZXIoJ3N1Ym1pdCcsIChvbGRTdWJtaXQsIC4uLmFyZ3MpID0+IHtcblx0XHRcdFx0cmV0dXJuICgoKSA9PiB7XG5cdFx0XHRcdFx0bGV0IGRvX3N1Ym1pdCA9IHRydWU7XG5cdFx0XHRcdFx0aWYgKG9sZFN1Ym1pdCkge1xuXHRcdFx0XHRcdFx0aWYgKHR5cGVvZiBvbGRTdWJtaXQgPT09ICdzdHJpbmcnKSB7XG5cdFx0XHRcdFx0XHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1ldmFsXG5cdFx0XHRcdFx0XHRcdGRvX3N1Ym1pdCA9IHdpbmRvdy5ldmFsKG9sZFN1Ym1pdCk7XG5cdFx0XHRcdFx0XHR9IGVsc2UgaWYgKG9sZFN1Ym1pdCBpbnN0YW5jZW9mIEZ1bmN0aW9uKSB7XG5cdFx0XHRcdFx0XHRcdGRvX3N1Ym1pdCA9IG9sZFN1Ym1pdC5hcHBseShmb3JtLCBbb2xkU3VibWl0LCAuLi5hcmdzXSk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGlmICghZG9fc3VibWl0KSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGNsb3NlRm9ybSgpO1xuXHRcdFx0XHRcdC8vIENvcHkgdGhlIGNhdGVnb3JpZXNcblx0XHRcdFx0XHRjb25zdCBlYiA9XG5cdFx0XHRcdFx0XHRkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCd0ZXh0YXJlYVtuYW1lPXdwVXBsb2FkRGVzY3JpcHRpb25dJykgfHxcblx0XHRcdFx0XHRcdGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyN3cERlc2MnKTtcblx0XHRcdFx0XHRsZXQgYWRkZWRPbmUgPSBmYWxzZTtcblx0XHRcdFx0XHRmb3IgKGNvbnN0IGVkaXRvciBvZiBlZGl0b3JzKSB7XG5cdFx0XHRcdFx0XHRjb25zdCB0ID0gZWRpdG9yLmN1cnJlbnRDYXRlZ29yeTtcblx0XHRcdFx0XHRcdGlmICghdCkge1xuXHRcdFx0XHRcdFx0XHRjb250aW51ZTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdGNvbnN0IGtleSA9IGVkaXRvci5jdXJyZW50S2V5O1xuXHRcdFx0XHRcdFx0Y29uc3QgbmV3X2NhdCA9IGBbWyR7SEMuY2F0ZWdvcnlfY2Fub25pY2FsfToke3R9JHtrZXkgPyBgfCR7a2V5fWAgOiAnJ31dXWA7XG5cdFx0XHRcdFx0XHQvLyBPbmx5IGFkZCBpZiBub3QgYWxyZWFkeSBwcmVzZW50XG5cdFx0XHRcdFx0XHRjb25zdCBub3dpa2lSZWdleCA9IG5ldyBSZWdFeHAoXG5cdFx0XHRcdFx0XHRcdCc8bm8nLmNvbmNhdCgnd2lraT4nLCBTdHJpbmcucmF3YChcXHN8XFxTKSo/PC9ub2AsICd3aWtpJywgJz4nKSxcblx0XHRcdFx0XHRcdFx0J2cnXG5cdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdFx0Y29uc3QgX2NsZWFuZWRUZXh0ID0gZWIudmFsdWUucmVwbGFjZSgvPCEtLShcXHN8XFxTKSo/LS0+L2csICcnKS5yZXBsYWNlKG5vd2lraVJlZ2V4KTtcblx0XHRcdFx0XHRcdGlmICghZmluZF9jYXRlZ29yeShfY2xlYW5lZFRleHQsIHQsIHRydWUpKSB7XG5cdFx0XHRcdFx0XHRcdGViLnZhbHVlICs9IGBcXG4ke25ld19jYXR9YDtcblx0XHRcdFx0XHRcdFx0YWRkZWRPbmUgPSB0cnVlO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRpZiAoYWRkZWRPbmUpIHtcblx0XHRcdFx0XHRcdC8vIFJlbW92ZSBcInN1YnN0OnVuY1wiIGFkZGVkIGJ5IEZsaW5mbyBpZiBpdCBkaWRuJ3QgZmluZCBjYXRlZ29yaWVzXG5cdFx0XHRcdFx0XHRjb25zdCByZWdleCA9IG5ldyBSZWdFeHAoJ3t7JCcuY29uY2F0KCdzdWJzdDonKS5jb25jYXQoJ3VuY319JyksICdnJyk7XG5cdFx0XHRcdFx0XHRlYi52YWx1ZSA9IGViLnZhbHVlLnJlcGxhY2UocmVnZXgsICcnKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHRcdH0pKGZvcm0ub25zdWJtaXQpO1xuXHRcdFx0fSk7XG5cdFx0fVxuXHR9O1xuXHRsZXQgY2xlYW5lZFRleHQgPSBudWxsO1xuXHRjb25zdCBpc09uUGFnZSA9ICh7Zmlyc3RDaGlsZH0pID0+IHtcblx0XHRpZiAoZmlyc3RDaGlsZC5ub2RlVHlwZSAhPT0gTm9kZS5FTEVNRU5UX05PREUpIHtcblx0XHRcdHJldHVybiBudWxsO1xuXHRcdH1cblx0XHRsZXQgY2F0VGl0bGUgPSB0aXRsZShmaXJzdENoaWxkLmdldEF0dHJpYnV0ZSgnaHJlZicpKTtcblx0XHRpZiAoIWNhdFRpdGxlKSB7XG5cdFx0XHRyZXR1cm4gbnVsbDtcblx0XHR9XG5cdFx0Y2F0VGl0bGUgPSBjYXRUaXRsZS5zbGljZShjYXRUaXRsZS5pbmRleE9mKCc6JykgKyAxKS5yZXBsYWNlKC9fL2csICcgJyk7XG5cdFx0aWYgKEhDLmJsYWNrbGlzdCAmJiBIQy5ibGFja2xpc3QudGVzdChjYXRUaXRsZSkpIHtcblx0XHRcdHJldHVybiBudWxsO1xuXHRcdH1cblx0XHRjb25zdCByZXN1bHQgPSB7XG5cdFx0XHR0aXRsZTogY2F0VGl0bGUsXG5cdFx0XHRtYXRjaDogWycnLCAnJywgJyddLFxuXHRcdH07XG5cdFx0aWYgKHBhZ2VUZXh0ID09PSBudWxsKSB7XG5cdFx0XHRyZXR1cm4gcmVzdWx0O1xuXHRcdH1cblx0XHRpZiAoY2xlYW5lZFRleHQgPT09IG51bGwpIHtcblx0XHRcdGNvbnN0IG5vd2lraVJlZ2V4ID0gbmV3IFJlZ0V4cCgnPG5vJy5jb25jYXQoJ3dpa2k+JywgU3RyaW5nLnJhd2AoXFxzfFxcUykqPzwvbm9gLCAnd2lraScsICc+JyksICdnJyk7XG5cdFx0XHRjbGVhbmVkVGV4dCA9IHBhZ2VUZXh0LnJlcGxhY2UoLzwhLS0oXFxzfFxcUykqPy0tPi9nLCAnJykucmVwbGFjZShub3dpa2lSZWdleCwgJycpO1xuXHRcdH1cblx0XHRyZXN1bHQubWF0Y2ggPSBmaW5kX2NhdGVnb3J5KGNsZWFuZWRUZXh0LCBjYXRUaXRsZSwgdHJ1ZSk7XG5cdFx0cmV0dXJuIHJlc3VsdDtcblx0fTtcblx0bGV0IGluaXRpYWxpemVkID0gZmFsc2U7XG5cdGxldCBzZXR1cFRpbWVvdXQgPSBudWxsO1xuXHRjb25zdCBmaW5kQnlDbGFzcyA9IChzY29wZSwgdGFnLCBjbGFzc05hbWUpID0+IHtcblx0XHRjb25zdCByZXN1bHQgPSAkKHNjb3BlKS5maW5kKGAke3RhZ30uJHtjbGFzc05hbWV9YCk7XG5cdFx0cmV0dXJuIHJlc3VsdCAmJiByZXN1bHQubGVuZ3RoID4gMCA/IHJlc3VsdFswXSA6IG51bGw7XG5cdH07XG5cdGNvbnN0IHNldHVwID0gKGFkZGl0aW9uYWxXb3JrKSA9PiB7XG5cdFx0aWYgKGluaXRpYWxpemVkKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdGluaXRpYWxpemVkID0gdHJ1ZTtcblx0XHRpZiAoc2V0dXBUaW1lb3V0KSB7XG5cdFx0XHR3aW5kb3cuY2xlYXJUaW1lb3V0KHNldHVwVGltZW91dCk7XG5cdFx0XHRzZXR1cFRpbWVvdXQgPSBudWxsO1xuXHRcdH1cblx0XHQvLyBGaW5kIHRoZSBjYXRlZ29yeSBiYXIsIG9yIGNyZWF0ZSBhbiBlbXB0eSBvbmUgaWYgdGhlcmUgaXNuJ3Qgb25lLiBUaGVuIGFkZCAtLystIGxpbmtzIGFmdGVyXG5cdFx0Ly8gZWFjaCBjYXRlZ29yeSwgYW5kIGFkZCB0aGUgKyBsaW5rLlxuXHRcdGNhdExpbmUgfHw9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNtdy1ub3JtYWwtY2F0bGlua3MnKTsgLy8gU3BlY2lhbDpVcGxvYWRcblx0XHRjb25zdCBoaWRkZW5DYXRzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI213LWhpZGRlbi1jYXRsaW5rcycpO1xuXHRcdGlmICghY2F0TGluZSkge1xuXHRcdFx0bGV0IGZvb3RlciA9IG51bGw7XG5cdFx0XHRpZiAoIWhpZGRlbkNhdHMpIHtcblx0XHRcdFx0Zm9vdGVyID0gZmluZEJ5Q2xhc3MoZG9jdW1lbnQsICdkaXYnLCAncHJpbnRmb290ZXInKTtcblx0XHRcdFx0aWYgKCFmb290ZXIpIHtcblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH0gLy8gRG9uJ3Qga25vdyB3aGVyZSB0byBpbnNlcnQgdGhlIGNhdGVnb3J5IGxpbmVcblx0XHRcdH1cblx0XHRcdGNhdExpbmUgPSBtYWtlKCdkaXYnKTtcblx0XHRcdGNhdExpbmUuaWQgPSAnbXctbm9ybWFsLWNhdGxpbmtzJztcblx0XHRcdGNhdExpbmUuc3R5bGUudGV4dEFsaWduID0gaXNfcnRsID8gJ3JpZ2h0JyA6ICdsZWZ0Jztcblx0XHRcdC8vIEFkZCBhIGxhYmVsXG5cdFx0XHRjb25zdCBsYWJlbCA9IG1ha2UoJ2EnKTtcblx0XHRcdGxhYmVsLmhyZWYgPSBjb25mLndnQXJ0aWNsZVBhdGgucmVwbGFjZSgnJDEnLCAnU3BlY2lhbDpDYXRlZ29yaWVzJyk7XG5cdFx0XHRsYWJlbC50aXRsZSA9IGdldE1lc3NhZ2UoJ2NhdGVnb3JpZXMnKTtcblx0XHRcdGxhYmVsLmFwcGVuZChtYWtlKGdldE1lc3NhZ2UoJ2NhdGVnb3JpZXMnKSwgdHJ1ZSkpO1xuXHRcdFx0Y2F0TGluZS5hcHBlbmQobGFiZWwpO1xuXHRcdFx0Y2F0TGluZS5hcHBlbmQobWFrZSgnOicsIHRydWUpKTtcblx0XHRcdC8vIEluc2VydCB0aGUgbmV3IGNhdGVnb3J5IGxpbmVcblx0XHRcdGxldCBjb250YWluZXIgPSBoaWRkZW5DYXRzID8gaGlkZGVuQ2F0cy5wYXJlbnROb2RlIDogZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI2NhdGxpbmtzJyk7XG5cdFx0XHRpZiAoIWNvbnRhaW5lcikge1xuXHRcdFx0XHRjb250YWluZXIgPSBtYWtlKCdkaXYnKTtcblx0XHRcdFx0Y29udGFpbmVyLmlkID0gJ2NhdGxpbmtzJztcblx0XHRcdFx0Zm9vdGVyLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGNvbnRhaW5lciwgZm9vdGVyLm5leHRTaWJsaW5nKTtcblx0XHRcdH1cblx0XHRcdGNvbnRhaW5lci5jbGFzc05hbWUgPSAnY2F0bGlua3Mgbm9wcmludCc7XG5cdFx0XHRjb250YWluZXIuc3R5bGUuZGlzcGxheSA9ICcnO1xuXHRcdFx0aWYgKGhpZGRlbkNhdHMpIHtcblx0XHRcdFx0aGlkZGVuQ2F0cy5iZWZvcmUoY2F0TGluZSk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRjb250YWluZXIuYXBwZW5kKGNhdExpbmUpO1xuXHRcdFx0fVxuXHRcdH0gLy8gZW5kIGlmIGNhdExpbmUgZXhpc3RzXG5cdFx0aWYgKGlzX3J0bCkge1xuXHRcdFx0Y2F0TGluZS5kaXIgPSAncnRsJztcblx0XHR9XG5cdFx0Ly8gQ3JlYXRlIGVkaXRvcnMgZm9yIGFsbCBleGlzdGluZyBjYXRlZ29yaWVzXG5cdFx0Y29uc3QgY3JlYXRlRWRpdG9ycyA9IChsaW5lLCBpc19oaWRkZW4pID0+IHtcblx0XHRcdGxldCBpO1xuXHRcdFx0bGV0IGNhdHMgPSBsaW5lLnF1ZXJ5U2VsZWN0b3JBbGwoJ2xpJyk7XG5cdFx0XHRpZiAoY2F0cy5sZW5ndGggPiAwKSB7XG5cdFx0XHRcdG5ld0RPTSA9IHRydWU7XG5cdFx0XHRcdGxpbmUgPSBjYXRzWzBdLnBhcmVudE5vZGU7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRjYXRzID0gbGluZS5xdWVyeVNlbGVjdG9yQWxsKCdzcGFuJyk7XG5cdFx0XHR9XG5cdFx0XHQvLyBDb3B5IGNhdHMsIG90aGVyd2lzZSBpdCdsbCBhbHNvIG1hZ2ljYWxseSBjb250YWluIG91ciBhZGRlZCBzcGFucyBhcyBpdCBpcyBhIGxpdmUgY29sbGVjdGlvbiFcblx0XHRcdGNvbnN0IGNvcHlDYXRzID0gQXJyYXkuZnJvbSh7XG5cdFx0XHRcdGxlbmd0aDogY2F0cy5sZW5ndGgsXG5cdFx0XHR9KTtcblx0XHRcdGZvciAoaSA9IDA7IGkgPCBjYXRzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdGNvcHlDYXRzW2ldID0gY2F0c1tpXTtcblx0XHRcdH1cblx0XHRcdGZvciAoaSA9IDA7IGkgPCBjb3B5Q2F0cy5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRjb25zdCB0ZXN0ID0gaXNPblBhZ2UoY29weUNhdHNbaV0pO1xuXHRcdFx0XHRpZiAodGVzdCAhPT0gbnVsbCAmJiB0ZXN0Lm1hdGNoICE9PSBudWxsICYmIGxpbmUpIHtcblx0XHRcdFx0XHRuZXcgQ2F0ZWdvcnlFZGl0b3IobGluZSwgY29weUNhdHNbaV0sIHRlc3QudGl0bGUsIHRlc3QubWF0Y2hbMl0sIGlzX2hpZGRlbik7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdHJldHVybiBjb3B5Q2F0cy5sZW5ndGggPiAwID8gY29weUNhdHMuYXQoLTEpIDogbnVsbDtcblx0XHR9O1xuXHRcdGNvbnN0IGxhc3RTcGFuID0gY3JlYXRlRWRpdG9ycyhjYXRMaW5lLCBmYWxzZSk7XG5cdFx0Ly8gQ3JlYXRlIG9uZSB0byBhZGQgYSBuZXcgY2F0ZWdvcnlcblx0XHRuZXcgQ2F0ZWdvcnlFZGl0b3IobmV3RE9NID8gY2F0TGluZS5xdWVyeVNlbGVjdG9yQWxsKCd1bCcpWzBdIDogY2F0TGluZSwgbnVsbCwgbnVsbCwgbGFzdFNwYW4gIT09IG51bGwsIGZhbHNlKTtcblx0XHRpZiAoIW9uVXBsb2FkKSB7XG5cdFx0XHRpZiAocGFnZVRleHQgIT09IG51bGwgJiYgaGlkZGVuQ2F0cykge1xuXHRcdFx0XHRpZiAoaXNfcnRsKSB7XG5cdFx0XHRcdFx0aGlkZGVuQ2F0cy5kaXIgPSAncnRsJztcblx0XHRcdFx0fVxuXHRcdFx0XHRjcmVhdGVFZGl0b3JzKGhpZGRlbkNhdHMsIHRydWUpO1xuXHRcdFx0fVxuXHRcdFx0Ly8gQW5kIGZpbmFsbHkgYWRkIHRoZSBcIm11bHRpLW1vZGVcIiBzcGFuLiAoRG8gdGhpcyBhdCB0aGUgZW5kLCBvdGhlcndpc2UgaXQgZW5kcyB1cCBpbiB0aGUgbGlzdCBhYm92ZS4pXG5cdFx0XHRjb25zdCBlbmFibGVNdWx0aSA9IG1ha2UoJ3NwYW4nKTtcblx0XHRcdGVuYWJsZU11bHRpLmNsYXNzTmFtZSA9ICdub3ByaW50Jztcblx0XHRcdGlmIChpc19ydGwpIHtcblx0XHRcdFx0ZW5hYmxlTXVsdGkuZGlyID0gJ3J0bCc7XG5cdFx0XHR9XG5cdFx0XHRjYXRMaW5lLmluc2VydEJlZm9yZShlbmFibGVNdWx0aSwgY2F0TGluZS5maXJzdENoaWxkLm5leHRTaWJsaW5nKTtcblx0XHRcdGVuYWJsZU11bHRpLmFwcGVuZChtYWtlKCdcXHUwMEEwJywgdHJ1ZSkpOyAvLyBuYnNwXG5cdFx0XHRtdWx0aVNwYW4gPSBtYWtlKCdzcGFuJyk7XG5cdFx0XHRlbmFibGVNdWx0aS5hcHBlbmQobXVsdGlTcGFuKTtcblx0XHRcdG11bHRpU3Bhbi5pbm5lckhUTUwgPSBgKDxhPiR7SEMuYWRkbXVsdGl9PC9hPilgO1xuXHRcdFx0Y29uc3QgW2xpbmtdID0gbXVsdGlTcGFuLnF1ZXJ5U2VsZWN0b3JBbGwoJ2EnKTtcblx0XHRcdGxpbmsuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoZXZlbnQpID0+IHtcblx0XHRcdFx0c2V0TXVsdGlJbnB1dCgpO1xuXHRcdFx0XHRjaGVja011bHRpSW5wdXQoKTtcblx0XHRcdFx0cmV0dXJuIGV2dEtpbGwoZXZlbnQpO1xuXHRcdFx0fSk7XG5cdFx0XHRsaW5rLnRpdGxlID0gZ2V0TWVzc2FnZSgnbXVsdGlfdG9vbHRpcCcpO1xuXHRcdFx0bGluay5zdHlsZS5jdXJzb3IgPSAncG9pbnRlcic7XG5cdFx0fVxuXHRcdGNsZWFuZWRUZXh0ID0gbnVsbDtcblx0XHRpZiAoYWRkaXRpb25hbFdvcmsgaW5zdGFuY2VvZiBGdW5jdGlvbikge1xuXHRcdFx0YWRkaXRpb25hbFdvcmsoKTtcblx0XHR9XG5cdFx0bXcuaG9vaygnaG90Y2F0LnJlYWR5JykuZmlyZSgpOyAvLyBFeGVjdXRlIHJlZ2lzdGVyZWQgY2FsbGJhY2sgZnVuY3Rpb25zXG5cdFx0JCgnYm9keScpLnRyaWdnZXIoJ2hvdGNhdFNldHVwQ29tcGxldGVkJyk7XG5cdH07XG5cdGNvbnN0IGNyZWF0ZUNvbW1pdEZvcm0gPSAoKSA9PiB7XG5cdFx0aWYgKGNvbW1pdEZvcm0pIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0Y29uc3QgZm9ybUNvbnRhaW5lciA9IG1ha2UoJ2RpdicpO1xuXHRcdGZvcm1Db250YWluZXIuc3R5bGUuZGlzcGxheSA9ICdub25lJztcblx0XHRkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdib2R5JykuYXBwZW5kKGZvcm1Db250YWluZXIpO1xuXHRcdGZvcm1Db250YWluZXIuaW5uZXJIVE1MID0gYDxmb3JtIGlkPVwiaG90Y2F0Q29tbWl0Rm9ybVwiIG1ldGhvZD1cInBvc3RcIiBlbmN0eXBlPVwibXVsdGlwYXJ0L2Zvcm0tZGF0YVwiIGFjdGlvbj1cIiR7XG5cdFx0XHRjb25mLndnU2NyaXB0XG5cdFx0fT90aXRsZT0ke2VuY29kZVVSSUNvbXBvbmVudChjb25mLndnUGFnZU5hbWUpfSZhY3Rpb249c3VibWl0XCI+XG5cdFx0PGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwid3BUZXh0Ym94MVwiPlxuXHRcdDxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cIm1vZGVsXCIgdmFsdWU9XCIke2NvbmYud2dQYWdlQ29udGVudE1vZGVsfVwiPlxuXHRcdDxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cImZvcm1hdFwiIHZhbHVlPVwidGV4dC94LXdpa2lcIj5cblx0XHQ8aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJ3cFN1bW1hcnlcIiB2YWx1ZT1cIlwiPlxuXHRcdDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBuYW1lPVwid3BNaW5vcmVkaXRcIiB0aXRsZT1cIndwTWlub3JlZGl0XCIgdmFsdWU9XCIxXCI+XG5cdFx0PGlucHV0IHR5cGU9XCJjaGVja2JveFwiIG5hbWU9XCJ3cFdhdGNodGhpc1wiIHRpdGxlPVwid3BXYXRjaHRoaXNcIiB2YWx1ZT1cIjFcIj5cblx0XHQ8aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJ3cEF1dG9TdW1tYXJ5XCIgdmFsdWU9XCJkNDFkOGNkOThmMDBiMjA0ZTk4MDA5OThlY2Y4NDI3ZVwiPlxuXHRcdDxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cIndwRWRpdHRpbWVcIj5cblx0XHQ8aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJ3cFN0YXJ0dGltZVwiPlxuXHRcdDxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cIndwRGlmZlwiIHZhbHVlPVwid3BEaWZmXCI+XG5cdFx0PGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwib2xkaWRcIiB2YWx1ZT1cIjBcIj5cblx0XHQ8aW5wdXQgdHlwZT1cInN1Ym1pdFwiIG5hbWU9XCJoY0NvbW1pdFwiIHZhbHVlPVwiaGNDb21taXRcIj5cblx0XHQ8aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJ3cEVkaXRUb2tlblwiPlxuXHRcdDxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cIndwVWx0aW1hdGVQYXJhbVwiIHZhbHVlPVwiMVwiPlxuXHRcdDxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cIndwQ2hhbmdlVGFnc1wiPlxuXHRcdDxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgdmFsdWU9XCLihLPwnZKy4pml8J2TivCdk4PwnZK+8J2SuOKEtPCdkrnihK9cIiBuYW1lPVwid3BVbmljb2RlQ2hlY2tcIj5cblx0XHQ8L2Zvcm0+YDtcblx0XHRjb21taXRGb3JtID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI2hvdGNhdENvbW1pdEZvcm0nKTtcblx0fTtcblx0Y29uc3QgZ2V0UGFnZSA9ICgpID0+IHtcblx0XHQvLyBXZSBrbm93IHdlIGhhdmUgYW4gYXJ0aWNsZSBoZXJlLlxuXHRcdGlmIChjb25mLndnQXJ0aWNsZUlkKSB7XG5cdFx0XHRjb25zdCBwYXJhbXMgPSB7XG5cdFx0XHRcdGFjdGlvbjogJ3F1ZXJ5Jyxcblx0XHRcdFx0Zm9ybWF0OiAnanNvbicsXG5cdFx0XHRcdGZvcm1hdHZlcnNpb246ICcyJyxcblx0XHRcdFx0cmF3Y29udGludWU6ICcnLFxuXHRcdFx0XHR0aXRsZXM6IGNvbmYud2dQYWdlTmFtZSxcblx0XHRcdFx0cHJvcDogWydpbmZvJywgJ3JldmlzaW9ucyddLFxuXHRcdFx0XHRydnByb3A6IFsnY29udGVudCcsICd0aW1lc3RhbXAnLCAnaWRzJ10sXG5cdFx0XHRcdHJ2bGltaXQ6ICcxJyxcblx0XHRcdFx0cnZzdGFydGlkOiBjb25mLndnQ3VyUmV2aXNpb25JZCxcblx0XHRcdFx0cnZzbG90czogJ21haW4nLFxuXHRcdFx0XHRtZXRhOiBbJ3NpdGVpbmZvJ10sXG5cdFx0XHR9O1xuXHRcdFx0SEMuc3RhcnQgPSAoZGF0YSkgPT4ge1xuXHRcdFx0XHRzZXRQYWdlKGRhdGEpO1xuXHRcdFx0XHRzZXR1cChjcmVhdGVDb21taXRGb3JtKTtcblx0XHRcdH07XG5cdFx0XHRhcGkuZ2V0KHBhcmFtcykudGhlbigoZGF0YSkgPT4ge1xuXHRcdFx0XHRIQy5zdGFydChkYXRhKTtcblx0XHRcdH0pO1xuXHRcdFx0c2V0dXBUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHRcdHNldHVwKGNyZWF0ZUNvbW1pdEZvcm0pO1xuXHRcdFx0fSwgNDAwMCk7IC8vIDQgc2VjLCBqdXN0IGluIGNhc2UgZ2V0dGluZyB0aGUgd2lraXRleHQgdGFrZXMgbG9uZ2VyLlxuXHRcdH0gZWxzZSB7XG5cdFx0XHQvLyBEb2Vzbid0IGV4aXN0IHlldC4gRGlzYWJsZSBvbiBub24tZXhpc3RpbmcgVXNlciBwYWdlcy5cblx0XHRcdGlmIChjb25mLndnTmFtZXNwYWNlTnVtYmVyID09PSAyKSB7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblx0XHRcdHBhZ2VUZXh0ID0gJyc7XG5cdFx0XHRwYWdlVGltZSA9IG51bGw7XG5cdFx0XHRzZXR1cChjcmVhdGVDb21taXRGb3JtKTtcblx0XHR9XG5cdH07XG5cdGNvbnN0IHNldFN0YXRlID0gKHN0YXRlKSA9PiB7XG5cdFx0Y29uc3QgY2F0cyA9IHN0YXRlLnNwbGl0KCdcXG4nKTtcblx0XHRpZiAoY2F0cy5sZW5ndGggPT09IDApIHtcblx0XHRcdHJldHVybiBudWxsO1xuXHRcdH1cblx0XHRpZiAoaW5pdGlhbGl6ZWQgJiYgZWRpdG9ycy5sZW5ndGggPT09IDEgJiYgZWRpdG9yc1swXS5pc0FkZENhdGVnb3J5KSB7XG5cdFx0XHQvLyBJbnNlcnQgbmV3IHNwYW5zIGFuZCBjcmVhdGUgbmV3IGVkaXRvcnMgZm9yIHRoZW0uXG5cdFx0XHRjb25zdCBuZXdTcGFucyA9IFtdO1xuXHRcdFx0Y29uc3QgYmVmb3JlID0gZWRpdG9ycy5sZW5ndGggPT09IDEgPyBlZGl0b3JzWzBdLnNwYW4gOiBudWxsO1xuXHRcdFx0bGV0IGk7XG5cdFx0XHRmb3IgKGkgPSAwOyBpIDwgY2F0cy5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRpZiAoY2F0c1tpXS5sZW5ndGggPT09IDApIHtcblx0XHRcdFx0XHRjb250aW51ZTtcblx0XHRcdFx0fVxuXHRcdFx0XHRsZXQgY2F0ID0gY2F0c1tpXS5zcGxpdCgnfCcpO1xuXHRcdFx0XHRjb25zdCBrZXkgPSBjYXQubGVuZ3RoID4gMSA/IGNhdFsxXSA6IG51bGw7XG5cdFx0XHRcdFtjYXRdID0gY2F0O1xuXHRcdFx0XHRjb25zdCBsaW5rID0gbWFrZSgnYScpO1xuXHRcdFx0XHRsaW5rLmhyZWYgPSB3aWtpUGFnZVBhdGgoYCR7SEMuY2F0ZWdvcnlfY2Fub25pY2FsfToke2NhdH1gKTtcblx0XHRcdFx0bGluay5hcHBlbmQobWFrZShjYXQsIHRydWUpKTtcblx0XHRcdFx0bGluay50aXRsZSA9IGNhdDtcblx0XHRcdFx0Y29uc3Qgc3BhbiA9IG1ha2UoJ3NwYW4nKTtcblx0XHRcdFx0c3Bhbi5hcHBlbmQobGluayk7XG5cdFx0XHRcdGlmICghaSkge1xuXHRcdFx0XHRcdGNhdExpbmUuaW5zZXJ0QmVmb3JlKG1ha2UoJyAnLCB0cnVlKSwgYmVmb3JlKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRiZWZvcmUuYmVmb3JlKHNwYW4pO1xuXHRcdFx0XHRpZiAoYmVmb3JlICYmIGkgKyAxIDwgY2F0cy5sZW5ndGgpIHtcblx0XHRcdFx0XHRwYXJlbnQuaW5zZXJ0QmVmb3JlKG1ha2UoJyB8ICcsIHRydWUpLCBiZWZvcmUpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdG5ld1NwYW5zW25ld1NwYW5zLmxlbmd0aF0gPSB7XG5cdFx0XHRcdFx0ZWxlbWVudDogc3Bhbixcblx0XHRcdFx0XHR0aXRsZTogY2F0LFxuXHRcdFx0XHRcdGtleSxcblx0XHRcdFx0fTtcblx0XHRcdH1cblx0XHRcdC8vIEFuZCBjaGFuZ2UgdGhlIGxhc3Qgb25lLi4uXG5cdFx0XHRpZiAoYmVmb3JlKSB7XG5cdFx0XHRcdGJlZm9yZS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShtYWtlKCcgfCAnLCB0cnVlKSwgYmVmb3JlKTtcblx0XHRcdH1cblx0XHRcdGZvciAoaSA9IDA7IGkgPCBuZXdTcGFucy5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRuZXcgQ2F0ZWdvcnlFZGl0b3IoY2F0TGluZSwgbmV3U3BhbnNbaV0uZWxlbWVudCwgbmV3U3BhbnNbaV0udGl0bGUsIG5ld1NwYW5zW2ldLmtleSk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJldHVybiBudWxsO1xuXHR9O1xuXHRjb25zdCBnZXRTdGF0ZSA9ICgpID0+IHtcblx0XHRsZXQgcmVzdWx0ID0gbnVsbDtcblx0XHRmb3IgKGNvbnN0IGVkaXRvciBvZiBlZGl0b3JzKSB7XG5cdFx0XHRsZXQgdGV4dCA9IGVkaXRvci5jdXJyZW50Q2F0ZWdvcnk7XG5cdFx0XHRjb25zdCBrZXkgPSBlZGl0b3IuY3VycmVudEtleTtcblx0XHRcdGlmICh0ZXh0ICYmIHRleHQubGVuZ3RoID4gMCkge1xuXHRcdFx0XHRpZiAoa2V5ICE9PSBudWxsKSB7XG5cdFx0XHRcdFx0dGV4dCArPSBgfCR7a2V5fWA7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKHJlc3VsdCA9PT0gbnVsbCkge1xuXHRcdFx0XHRcdHJlc3VsdCA9IHRleHQ7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0cmVzdWx0ICs9IGBcXG4ke3RleHR9YDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHRyZXR1cm4gcmVzdWx0O1xuXHR9O1xuXHRjb25zdCByZWFsbHlfcnVuID0gKCkgPT4ge1xuXHRcdGluaXRpYWxpemUoKTtcblx0XHRpZiAoXG5cdFx0XHQhSEMudXBsb2FkX2Rpc2FibGVkICYmXG5cdFx0XHRjb25mLndnTmFtZXNwYWNlTnVtYmVyID09PSAtMSAmJlxuXHRcdFx0Y29uZi53Z0Nhbm9uaWNhbFNwZWNpYWxQYWdlTmFtZSA9PT0gJ1VwbG9hZCcgJiZcblx0XHRcdGNvbmYud2dVc2VyTmFtZVxuXHRcdCkge1xuXHRcdFx0c2V0dXBfdXBsb2FkKCk7XG5cdFx0XHRzZXR1cCgoKSA9PiB7XG5cdFx0XHRcdC8vIENoZWNrIGZvciBzdGF0ZSByZXN0b3JhdGlvbiBvbmNlIHRoZSBzZXR1cCBpcyBkb25lIG90aGVyd2lzZSwgYnV0IGJlZm9yZSBzaWduYWxsaW5nIHNldHVwIGNvbXBsZXRpb25cblx0XHRcdFx0aWYgKHdpbmRvdy5VcGxvYWRGb3JtICYmIFVwbG9hZEZvcm0ucHJldmlvdXNfaG90Y2F0X3N0YXRlKSB7XG5cdFx0XHRcdFx0VXBsb2FkRm9ybS5wcmV2aW91c19ob3RjYXRfc3RhdGUgPSBzZXRTdGF0ZShVcGxvYWRGb3JtLnByZXZpb3VzX2hvdGNhdF9zdGF0ZSk7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRpZiAoXG5cdFx0XHRcdCFjb25mLndnSXNBcnRpY2xlIHx8XG5cdFx0XHRcdGNvbmYud2dBY3Rpb24gIT09ICd2aWV3JyB8fFxuXHRcdFx0XHRwYXJhbSgnZGlmZicpICE9PSBudWxsIHx8XG5cdFx0XHRcdHBhcmFtKCdvbGRpZCcpICE9PSBudWxsIHx8XG5cdFx0XHRcdCFjYW5fZWRpdCgpIHx8XG5cdFx0XHRcdEhDLmRpc2FibGUoKVxuXHRcdFx0KSB7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblx0XHRcdGdldFBhZ2UoKTtcblx0XHR9XG5cdH07XG5cdGNvbnN0IHJ1biA9ICgpID0+IHtcblx0XHRpZiAoSEMuc3RhcnRlZCkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRIQy5zdGFydGVkID0gdHJ1ZTtcblx0XHRyZWFsbHlfcnVuKCk7XG5cdH07XG5cdC8vIEV4cG9ydCBsZWdhY3kgZnVuY3Rpb25zXG5cdHdpbmRvdy5ob3RjYXRfZ2V0X3N0YXRlID0gKCkgPT4ge1xuXHRcdHJldHVybiBnZXRTdGF0ZSgpO1xuXHR9O1xuXHR3aW5kb3cuaG90Y2F0X3NldF9zdGF0ZSA9IChzdGF0ZSkgPT4ge1xuXHRcdHJldHVybiBzZXRTdGF0ZShzdGF0ZSk7XG5cdH07XG5cdHdpbmRvdy5ob3RjYXRfY2xvc2VfZm9ybSA9ICgpID0+IHtcblx0XHRjbG9zZUZvcm0oKTtcblx0fTtcblx0SEMucnVuV2hlblJlYWR5ID0gKGNhbGxiYWNrKSA9PiB7XG5cdFx0Ly8gcnVuIHVzZXItcmVnaXN0ZXJlZCBjb2RlIG9uY2UgSG90Q2F0IGlzIGZ1bGx5IHNldCB1cCBhbmQgcmVhZHkuXG5cdFx0bXcuaG9vaygnaG90Y2F0LnJlYWR5JykuYWRkKGNhbGxiYWNrKTtcblx0fTtcblx0Ly8gUnVuIGFzIHNvb24gYXMgcG9zc2libGUuIFRoaXMgdmFyaWVzIGRlcGVuZGluZyBvbiBNZWRpYVdpa2kgdmVyc2lvbjtcblx0Ly8gd2luZG93J3MgJ2xvYWQnIGV2ZW50IGlzIGFsd2F5cyBzYWZlLCBidXQgdXN1YWxseSB3ZSBjYW4gZG8gYmV0dGVyIHRoYW4gdGhhdC5cblx0aWYgKGNvbmYud2dDYW5vbmljYWxTcGVjaWFsUGFnZU5hbWUgIT09ICdVcGxvYWQnKSB7XG5cdFx0Ly8gUmVsb2FkIEhvdENhdCBhZnRlciAoVkUpIGVkaXRzIChidWcgVDEwMzI4NSlcblx0XHRtdy5ob29rKCdwb3N0RWRpdCcpLmFkZCgoKSA9PiB7XG5cdFx0XHQvLyBSZXNldCBIb3RDYXQgaW4gY2FzZSB0aGlzIGlzIGEgc29mdCByZWxvYWQgKGUuZy4gVmlzdWFsRWRpdG9yIGVkaXQpLCB1bmxlc3MgdGhlIGNhdGVnb3JpZXNcblx0XHRcdC8vIHdlcmUgbm90IHJlLXJlbmRlcmVkIGFuZCBvdXIgaW50ZXJmYWNlIGlzIHN0aWxsIHRoZXJlIChlLmcuIERpc2N1c3Npb25Ub29scyBlZGl0KVxuXHRcdFx0aWYgKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNjYXRsaW5rcyAuaG90Y2F0bGluaycpKSB7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblx0XHRcdGNhdExpbmUgPSBudWxsO1xuXHRcdFx0ZWRpdG9ycyA9IFtdO1xuXHRcdFx0aW5pdGlhbGl6ZWQgPSBmYWxzZTtcblx0XHRcdEhDLnN0YXJ0ZWQgPSBmYWxzZTtcblx0XHRcdHJ1bigpO1xuXHRcdH0pO1xuXHR9XG5cdC8vIFdlIGNhbiBzYWZlbHkgdHJpZ2dlciBqdXN0IGFmdGVyIHVzZXIgY29uZmlndXJhdGlvbiBpcyBsb2FkZWQuXG5cdC8vIFVzZSBhbHdheXMoKSBpbnN0ZWFkIG9mIHRoZW4oKSB0byBhbHNvIHN0YXJ0IEhvdENhdCBpZiB0aGUgdXNlciBtb2R1bGUgaGFzIHByb2JsZW1zLlxuXHQkKHJ1bik7XG59KSgpO1xuIiwgImNvbnN0IGdldE1lc3NhZ2UgPSAoa2V5OiBzdHJpbmcsIC4uLmFyZ3M6IHN0cmluZ1tdKTogc3RyaW5nID0+IHtcblx0a2V5ID0gYGhvdGNhdC0ke2tleX1gO1xuXHQvLyBNZXNzYWdlcyB0aGF0IGNhbiBiZSB1c2VkIGhlcmU6XG5cdC8vICogc2VlIG1lc3NhZ2VzLnRzXG5cdC8vICogZm9yIG1vcmUgaW5mb3JtYXRpb25cblx0cmV0dXJuIG13Lm1lc3NhZ2Uoa2V5LCAuLi5hcmdzKS5wbGFpbigpO1xufTtcblxuZXhwb3J0IHtnZXRNZXNzYWdlfTtcbiIsICJjb25zdCBob3RDYXRNZXNzYWdlcyA9ICgpOiB2b2lkID0+IHtcblx0Y29uc3Qge3dnVXNlckxhbmd1YWdlfSA9IG13LmNvbmZpZy5nZXQoKTtcblxuXHRpZiAoWyd6aC1oYW50JywgJ3poLWhrJywgJ3poLW1vJywgJ3poLXR3J10uaW5jbHVkZXMod2dVc2VyTGFuZ3VhZ2UpKSB7XG5cdFx0bXcubWVzc2FnZXMuc2V0KHtcblx0XHRcdCdob3RjYXQtbWVzc2FnZXMtY2F0X3JlbW92ZWQnOiAn5bey56e76ZmkW1tDYXRlZ29yeTokMV1dJyxcblx0XHRcdCdob3RjYXQtbWVzc2FnZXMtdGVtcGxhdGVfcmVtb3ZlZCc6ICflt7Lnp7vpmaR7e1tbQ2F0ZWdvcnk6JDFdXX19Jyxcblx0XHRcdCdob3RjYXQtbWVzc2FnZXMtY2F0X2FkZGVkJzogJ+W3sua3u+WKoFtbQ2F0ZWdvcnk6JDFdXScsXG5cdFx0XHQvLyAkMiBpcyB0aGUgbmV3IGtleVxuXHRcdFx0J2hvdGNhdC1tZXNzYWdlcy1jYXRfa2V5Y2hhbmdlJzogJ+W3suioree9rltbQ2F0ZWdvcnk6JDFdXeeahOaWsOaOkuW6j+Wtl++8mlwiJDJcIicsXG5cdFx0XHQnaG90Y2F0LW1lc3NhZ2VzLWNhdF9ub3RGb3VuZCc6ICfliIbpoZ7igJwkMeKAneaykuacieaJvuWIsCcsXG5cdFx0XHQnaG90Y2F0LW1lc3NhZ2VzLWNhdF9leGlzdHMnOiAn5YiG6aGe4oCcJDHigJ3lt7LntpPlrZjlnKjvvIzmspLmnInmt7vliqDjgIInLFxuXHRcdFx0J2hvdGNhdC1tZXNzYWdlcy1jYXRfcmVzb2x2ZWQnOiAn77yI6YeN5a6a5ZCRW1tDYXRlZ29yeTokMV1d5bey6JmV55CG77yJJyxcblx0XHRcdCdob3RjYXQtbWVzc2FnZXMtdW5jYXRfcmVtb3ZlZCc6ICflt7Lnp7vpmaR7e3VuY2F0ZWdvcml6ZWR9fScsXG5cdFx0XHQvLyBTb21lIHRleHQgdG8gcHJlZml4IHRvIHRoZSBlZGl0IHN1bW1hcnkuXG5cdFx0XHQnaG90Y2F0LW1lc3NhZ2VzLXByZWZpeCc6ICfkvb/nlKhbW0g6SE9UQ0FUfEhvdENhdF1dJyxcblx0XHRcdC8vIFNvbWUgdGV4dCB0byBhcHBlbmQgdG8gdGhlIGVkaXQgc3VtbWFyeS4gTmFtZWQgJ3VzaW5nJyBmb3IgaGlzdG9yaWNhbCByZWFzb25zLiBJZiB5b3UgcHJlZmVyXG5cdFx0XHQvLyB0byBoYXZlIGEgbWFya2VyIGF0IHRoZSBmcm9udCwgdXNlIHByZWZpeCBhbmQgc2V0IHRoaXMgdG8gdGhlIGVtcHR5IHN0cmluZy5cblx0XHRcdCdob3RjYXQtbWVzc2FnZXMtdXNpbmcnOiAnJyxcblx0XHRcdCdob3RjYXQtbWVzc2FnZXMtbXVsdGlfY2hhbmdlJzogJyQx5YCL5YiG6aGeJyxcblx0XHRcdC8vIEFueSBjYXRlZ29yeSBpbiB0aGlzIGNhdGVnb3J5IGlzIGRlZW1lZCBhIGRpc2FtYmlndWF0aW9uIGNhdGVnb3J5OyBpLmUuLCBhIGNhdGVnb3J5IHRoYXQgc2hvdWxkIG5vdCBjb250YWluXG5cdFx0XHQvLyBhbnkgaXRlbXMsIGJ1dCB0aGF0IGNvbnRhaW5zIGxpbmtzIHRvIG90aGVyIGNhdGVnb3JpZXMgd2hlcmUgc3R1ZmYgc2hvdWxkIGJlIGNhdGVnb3JpemVkLiBJZiB5b3UgZG9uJ3QgaGF2ZVxuXHRcdFx0Ly8gdGhhdCBjb25jZXB0IG9uIHlvdXIgd2lraSwgc2V0IGl0IHRvIGJsYW5rIHN0cmluZy4gVXNlIGJsYW5rcywgbm90IHVuZGVyc2NvcmVzLlxuXHRcdFx0J2hvdGNhdC1kaXNhbWJpZ19jYXRlZ29yeSc6ICcnLFxuXHRcdFx0Ly8gQW55IGNhdGVnb3J5IGluIHRoaXMgY2F0ZWdvcnkgaXMgZGVlbWVkIGEgKHNvZnQpIHJlZGlyZWN0IHRvIHNvbWUgb3RoZXIgY2F0ZWdvcnkgZGVmaW5lZCBieSBhIGxpbmtcblx0XHRcdC8vIHRvIGFub3RoZXIgbm9uLWJsYWNrbGlzdGVkIGNhdGVnb3J5LiBJZiB5b3VyIHdpa2kgZG9lc24ndCBoYXZlIHNvZnQgY2F0ZWdvcnkgcmVkaXJlY3RzLCBzZXQgdGhpcyB0byBudWxsLlxuXHRcdFx0Ly8gSWYgYSBzb2Z0LXJlZGlyZWN0ZWQgY2F0ZWdvcnkgY29udGFpbnMgbW9yZSB0aGFuIG9uZSBsaW5rIHRvIGFub3RoZXIgbm9uLWJsYWNrbGlzdGVkIGNhdGVnb3J5LCBpdCdzIGNvbnNpZGVyZWRcblx0XHRcdC8vIGEgZGlzYW1iaWd1YXRpb24gY2F0ZWdvcnkgaW5zdGVhZC5cblx0XHRcdCdob3RjYXQtcmVkaXJfY2F0ZWdvcnknOiAn5bey6YeN5a6a5ZCR55qE5YiG57G7Jyxcblx0XHRcdCdob3RjYXQtbWVzc2FnZXMtc2VwYXJhdG9yJzogJzsgJyxcblx0XHRcdC8vICQxIGlzIHJlcGxhY2VkIGJ5IGEgbnVtYmVyLiBJZiB5b3VyIGxhbmd1YWdlIGhhcyBzZXZlcmFsIHBsdXJhbCBmb3JtcyAoYy5mLiBbWzplbndpa2k6RHVhbCAoZ3JhbW1hdGljYWwgZm9ybSldXSksXG5cdFx0XHQvLyB5b3UgY2FuIHNldCB0aGlzIHRvIGFuIGFycmF5IG9mIHN0cmluZ3Mgc3VpdGFibGUgZm9yIHBhc3NpbmcgdG8gbXcubGFuZ3VhZ2UuY29uZmlnUGx1cmFsKCkuXG5cdFx0XHQvLyBJZiB0aGF0IGZ1bmN0aW9uIGRvZXNuJ3QgZXhpc3QsIEhvdENhdCB3aWxsIHNpbXBseSBmYWxsIGJhY2sgdG8gdXNpbmcgdGhlIGxhc3Rcblx0XHRcdC8vIGVudHJ5IGluIHRoZSBhcnJheS5cblx0XHRcdC8vIERlZmF1bHRzIHRvICdbWycgKyBjYXRlZ29yeV9jYW5vbmljYWwgKyAnOiQxXV0nLiBDYW4gYmUgb3ZlcnJpZGRlbiBpZiBpbiB0aGUgc2hvcnQgZWRpdCBzdW1tYXJpZXNcblx0XHRcdC8vIG5vdCB0aGUgc3RhbmRhcmQgY2F0ZWdvcnkgbmFtZSBzaG91bGQgYmUgdXNlZCBidXQsIHNheSwgYSBzaG9ydGVyIG5hbWVzcGFjZSBhbGlhcy4gJDEgaXMgcmVwbGFjZWRcblx0XHRcdC8vIGJ5IGEgY2F0ZWdvcnkgbmFtZS5cblx0XHRcdCdob3RjYXQtbWVzc2FnZXMtc2hvcnRfY2F0Y2hhbmdlJzogJyQxJyxcblx0XHRcdC8vIEJ1dHRvbiB0ZXh0LiBMb2NhbGl6ZSB0byB3Z0NvbnRlbnRMYW5ndWFnZSBoZXJlOyBsb2NhbGl6ZSB0byB3Z1VzZXJMYW5ndWFnZSBpbiBhIHN1YnBhZ2UsXG5cdFx0XHQvLyBzZWUgbG9jYWxpemF0aW9uIGhvb2sgYmVsb3cuXG5cdFx0XHQnaG90Y2F0LW1lc3NhZ2VzLWNvbW1pdCc6ICflhLLlrZgnLFxuXHRcdFx0Ly8gQnV0dG9uIHRleHQuIExvY2FsaXplIHRvIHdnQ29udGVudExhbmd1YWdlIGhlcmU7IGxvY2FsaXplIHRvIHdnVXNlckxhbmd1YWdlIGluIGEgc3VicGFnZSxcblx0XHRcdC8vIHNlZSBsb2NhbGl6YXRpb24gaG9vayBiZWxvdy5cblx0XHRcdCdob3RjYXQtbWVzc2FnZXMtb2snOiAn56K65a6aJyxcblx0XHRcdC8vIEJ1dHRvbiB0ZXh0LiBMb2NhbGl6ZSB0byB3Z0NvbnRlbnRMYW5ndWFnZSBoZXJlOyBsb2NhbGl6ZSB0byB3Z1VzZXJMYW5ndWFnZSBpbiBhIHN1YnBhZ2UsXG5cdFx0XHQvLyBzZWUgbG9jYWxpemF0aW9uIGhvb2sgYmVsb3cuXG5cdFx0XHQnaG90Y2F0LW1lc3NhZ2VzLWNhbmNlbCc6ICflj5bmtognLFxuXHRcdFx0Ly8gTG9jYWxpemUgdG8gd2dDb250ZW50TGFuZ3VhZ2UgaGVyZTsgbG9jYWxpemUgdG8gd2dVc2VyTGFuZ3VhZ2UgaW4gYSBzdWJwYWdlLFxuXHRcdFx0Ly8gc2VlIGxvY2FsaXphdGlvbiBob29rIGJlbG93LlxuXHRcdFx0J2hvdGNhdC1tZXNzYWdlcy1tdWx0aV9lcnJvcic6XG5cdFx0XHRcdCfnhKHms5Xlvp7kvLrmnI3lmajlj5blvpfpoIHpnaLmloflrZfjgILlm6DmraTvvIzmgqjnmoTliIbpoZ7orormm7TnhKHms5XlhLLlrZjjgILmiJHlgJHngrrmraTkuI3kvr/ooajnpLrmirHmrYnjgIInLFxuXHRcdFx0Ly8gUGx1cmFsIG9mIGNhdGVnb3J5X2Nhbm9uaWNhbC5cblx0XHRcdCdob3RjYXQtY2F0ZWdvcmllcyc6ICfliIbpoZ4nLFxuXHRcdFx0Ly8gTmFtZXMgZm9yIHRoZSBzZWFyY2ggZW5naW5lc1xuXHRcdFx0J2hvdGNhdC1lbmdpbmVfbmFtZXMtc2VhcmNoaW5kZXgnOiAn5pCc5bCL57Si5byVJyxcblx0XHRcdCdob3RjYXQtZW5naW5lX25hbWVzLXBhZ2VsaXN0JzogJ+mggemdouWIl+ihqCcsXG5cdFx0XHQnaG90Y2F0LWVuZ2luZV9uYW1lcy1jb21iaW5lZCc6ICflkIjkvbXmkJzlsIsnLFxuXHRcdFx0J2hvdGNhdC1lbmdpbmVfbmFtZXMtc3ViY2F0JzogJ+WtkOWIhumhnicsXG5cdFx0XHQnaG90Y2F0LWVuZ2luZV9uYW1lcy1wYXJlbnRjYXQnOiAn5LiK5bGk5YiG6aGeJyxcblx0XHRcdC8vIFRoZSB0b29sdGlwcyBmb3IgdGhlIGFib3ZlIGxpbmtzXG5cdFx0XHQnaG90Y2F0LXRvb2x0aXBzLWNoYW5nZSc6ICfkv67mlLknLFxuXHRcdFx0J2hvdGNhdC10b29sdGlwcy1yZW1vdmUnOiAn56e76ZmkJyxcblx0XHRcdCdob3RjYXQtdG9vbHRpcHMtYWRkJzogJ+WinuWKoOS4gOWAi+aWsOWIhumhnicsXG5cdFx0XHQnaG90Y2F0LXRvb2x0aXBzLXJlc3RvcmUnOiAn5b6p5Y6f6K6K5pu0Jyxcblx0XHRcdCdob3RjYXQtdG9vbHRpcHMtdW5kbyc6ICflvqnljp/orormm7QnLFxuXHRcdFx0J2hvdGNhdC10b29sdGlwcy1kb3duJzogJ+aJk+mWi+S7peS/ruaUueS4pumhr+ekuuWtkOWIhumhnicsXG5cdFx0XHQnaG90Y2F0LXRvb2x0aXBzLXVwJzogJ+aJk+mWi+S7peS/ruaUueS4pumhr+ekuuS4iuWxpOWIhumhnicsXG5cdFx0XHQvLyBUb29sdGlwIGZvciB0aGUgXCJlbnRlciBtdWx0aS1tb2RlXCIgbGlua1xuXHRcdFx0J2hvdGNhdC1tdWx0aV90b29sdGlwJzogJ+S/ruaUueWkmuWAi+WIhumhnicsXG5cdFx0fSk7XG5cdH0gZWxzZSB7XG5cdFx0bXcubWVzc2FnZXMuc2V0KHtcblx0XHRcdCdob3RjYXQtbWVzc2FnZXMtY2F0X3JlbW92ZWQnOiAn5bey56e76ZmkW1tDYXRlZ29yeTokMV1dJyxcblx0XHRcdCdob3RjYXQtbWVzc2FnZXMtdGVtcGxhdGVfcmVtb3ZlZCc6ICflt7Lnp7vpmaR7e1tbQ2F0ZWdvcnk6JDFdXX19Jyxcblx0XHRcdCdob3RjYXQtbWVzc2FnZXMtY2F0X2FkZGVkJzogJ+W3sua3u+WKoFtbQ2F0ZWdvcnk6JDFdXScsXG5cdFx0XHQvLyAkMiBpcyB0aGUgbmV3IGtleVxuXHRcdFx0J2hvdGNhdC1tZXNzYWdlcy1jYXRfa2V5Y2hhbmdlJzogJ+W3suiuvue9rltbQ2F0ZWdvcnk6JDFdXeeahOaWsOaOkuW6j+Wtl++8mlwiJDJcIicsXG5cdFx0XHQnaG90Y2F0LW1lc3NhZ2VzLWNhdF9ub3RGb3VuZCc6ICfliIbnsbvigJwkMeKAneayoeacieaJvuWIsCcsXG5cdFx0XHQnaG90Y2F0LW1lc3NhZ2VzLWNhdF9leGlzdHMnOiAn5YiG57G74oCcJDHigJ3lt7Lnu4/lrZjlnKjvvIzmsqHmnInmt7vliqDjgIInLFxuXHRcdFx0J2hvdGNhdC1tZXNzYWdlcy1jYXRfcmVzb2x2ZWQnOiAn77yI6YeN5a6a5ZCRW1tDYXRlZ29yeTokMV1d5bey5aSE55CG77yJJyxcblx0XHRcdCdob3RjYXQtbWVzc2FnZXMtdW5jYXRfcmVtb3ZlZCc6ICflt7Lnp7vpmaR7e3VuY2F0ZWdvcml6ZWR9fScsXG5cdFx0XHQvLyBTb21lIHRleHQgdG8gcHJlZml4IHRvIHRoZSBlZGl0IHN1bW1hcnkuXG5cdFx0XHQnaG90Y2F0LW1lc3NhZ2VzLXByZWZpeCc6ICfkvb/nlKhbW0g6SE9UQ0FUfEhvdENhdF1dJyxcblx0XHRcdC8vIFNvbWUgdGV4dCB0byBhcHBlbmQgdG8gdGhlIGVkaXQgc3VtbWFyeS4gTmFtZWQgJ3VzaW5nJyBmb3IgaGlzdG9yaWNhbCByZWFzb25zLiBJZiB5b3UgcHJlZmVyXG5cdFx0XHQvLyB0byBoYXZlIGEgbWFya2VyIGF0IHRoZSBmcm9udCwgdXNlIHByZWZpeCBhbmQgc2V0IHRoaXMgdG8gdGhlIGVtcHR5IHN0cmluZy5cblx0XHRcdCdob3RjYXQtbWVzc2FnZXMtdXNpbmcnOiAnJyxcblx0XHRcdCdob3RjYXQtbWVzc2FnZXMtbXVsdGlfY2hhbmdlJzogJyQx5Liq5YiG57G7Jyxcblx0XHRcdC8vIEFueSBjYXRlZ29yeSBpbiB0aGlzIGNhdGVnb3J5IGlzIGRlZW1lZCBhIGRpc2FtYmlndWF0aW9uIGNhdGVnb3J5OyBpLmUuLCBhIGNhdGVnb3J5IHRoYXQgc2hvdWxkIG5vdCBjb250YWluXG5cdFx0XHQvLyBhbnkgaXRlbXMsIGJ1dCB0aGF0IGNvbnRhaW5zIGxpbmtzIHRvIG90aGVyIGNhdGVnb3JpZXMgd2hlcmUgc3R1ZmYgc2hvdWxkIGJlIGNhdGVnb3JpemVkLiBJZiB5b3UgZG9uJ3QgaGF2ZVxuXHRcdFx0Ly8gdGhhdCBjb25jZXB0IG9uIHlvdXIgd2lraSwgc2V0IGl0IHRvIGJsYW5rIHN0cmluZy4gVXNlIGJsYW5rcywgbm90IHVuZGVyc2NvcmVzLlxuXHRcdFx0J2hvdGNhdC1kaXNhbWJpZ19jYXRlZ29yeSc6ICcnLFxuXHRcdFx0Ly8gQW55IGNhdGVnb3J5IGluIHRoaXMgY2F0ZWdvcnkgaXMgZGVlbWVkIGEgKHNvZnQpIHJlZGlyZWN0IHRvIHNvbWUgb3RoZXIgY2F0ZWdvcnkgZGVmaW5lZCBieSBhIGxpbmtcblx0XHRcdC8vIHRvIGFub3RoZXIgbm9uLWJsYWNrbGlzdGVkIGNhdGVnb3J5LiBJZiB5b3VyIHdpa2kgZG9lc24ndCBoYXZlIHNvZnQgY2F0ZWdvcnkgcmVkaXJlY3RzLCBzZXQgdGhpcyB0byBudWxsLlxuXHRcdFx0Ly8gSWYgYSBzb2Z0LXJlZGlyZWN0ZWQgY2F0ZWdvcnkgY29udGFpbnMgbW9yZSB0aGFuIG9uZSBsaW5rIHRvIGFub3RoZXIgbm9uLWJsYWNrbGlzdGVkIGNhdGVnb3J5LCBpdCdzIGNvbnNpZGVyZWRcblx0XHRcdC8vIGEgZGlzYW1iaWd1YXRpb24gY2F0ZWdvcnkgaW5zdGVhZC5cdFx0XHQnaG90Y2F0LXJlZGlyX2NhdGVnb3J5JzogJ+W3sumHjeWumuWQkeeahOWIhuexuycsXG5cdFx0XHQnaG90Y2F0LW1lc3NhZ2VzLXNlcGFyYXRvcic6ICc7ICcsXG5cdFx0XHQvLyAkMSBpcyByZXBsYWNlZCBieSBhIG51bWJlci4gSWYgeW91ciBsYW5ndWFnZSBoYXMgc2V2ZXJhbCBwbHVyYWwgZm9ybXMgKGMuZi4gW1s6ZW53aWtpOkR1YWwgKGdyYW1tYXRpY2FsIGZvcm0pXV0pLFxuXHRcdFx0Ly8geW91IGNhbiBzZXQgdGhpcyB0byBhbiBhcnJheSBvZiBzdHJpbmdzIHN1aXRhYmxlIGZvciBwYXNzaW5nIHRvIG13Lmxhbmd1YWdlLmNvbmZpZ1BsdXJhbCgpLlxuXHRcdFx0Ly8gSWYgdGhhdCBmdW5jdGlvbiBkb2Vzbid0IGV4aXN0LCBIb3RDYXQgd2lsbCBzaW1wbHkgZmFsbCBiYWNrIHRvIHVzaW5nIHRoZSBsYXN0XG5cdFx0XHQvLyBlbnRyeSBpbiB0aGUgYXJyYXkuXG5cdFx0XHQvLyBEZWZhdWx0cyB0byAnW1snICsgY2F0ZWdvcnlfY2Fub25pY2FsICsgJzokMV1dJy4gQ2FuIGJlIG92ZXJyaWRkZW4gaWYgaW4gdGhlIHNob3J0IGVkaXQgc3VtbWFyaWVzXG5cdFx0XHQvLyBub3QgdGhlIHN0YW5kYXJkIGNhdGVnb3J5IG5hbWUgc2hvdWxkIGJlIHVzZWQgYnV0LCBzYXksIGEgc2hvcnRlciBuYW1lc3BhY2UgYWxpYXMuICQxIGlzIHJlcGxhY2VkXG5cdFx0XHQvLyBieSBhIGNhdGVnb3J5IG5hbWUuXG5cdFx0XHQnaG90Y2F0LW1lc3NhZ2VzLXNob3J0X2NhdGNoYW5nZSc6ICckMScsXG5cdFx0XHQvLyBCdXR0b24gdGV4dC4gTG9jYWxpemUgdG8gd2dDb250ZW50TGFuZ3VhZ2UgaGVyZTsgbG9jYWxpemUgdG8gd2dVc2VyTGFuZ3VhZ2UgaW4gYSBzdWJwYWdlLFxuXHRcdFx0Ly8gc2VlIGxvY2FsaXphdGlvbiBob29rIGJlbG93LlxuXHRcdFx0J2hvdGNhdC1tZXNzYWdlcy1jb21taXQnOiAn5L+d5a2YJyxcblx0XHRcdC8vIEJ1dHRvbiB0ZXh0LiBMb2NhbGl6ZSB0byB3Z0NvbnRlbnRMYW5ndWFnZSBoZXJlOyBsb2NhbGl6ZSB0byB3Z1VzZXJMYW5ndWFnZSBpbiBhIHN1YnBhZ2UsXG5cdFx0XHQvLyBzZWUgbG9jYWxpemF0aW9uIGhvb2sgYmVsb3cuXG5cdFx0XHQnaG90Y2F0LW1lc3NhZ2VzLW9rJzogJ+ehruWumicsXG5cdFx0XHQvLyBCdXR0b24gdGV4dC4gTG9jYWxpemUgdG8gd2dDb250ZW50TGFuZ3VhZ2UgaGVyZTsgbG9jYWxpemUgdG8gd2dVc2VyTGFuZ3VhZ2UgaW4gYSBzdWJwYWdlLFxuXHRcdFx0Ly8gc2VlIGxvY2FsaXphdGlvbiBob29rIGJlbG93LlxuXHRcdFx0J2hvdGNhdC1tZXNzYWdlcy1jYW5jZWwnOiAn5Y+W5raIJyxcblx0XHRcdC8vIExvY2FsaXplIHRvIHdnQ29udGVudExhbmd1YWdlIGhlcmU7IGxvY2FsaXplIHRvIHdnVXNlckxhbmd1YWdlIGluIGEgc3VicGFnZSxcblx0XHRcdC8vIHNlZSBsb2NhbGl6YXRpb24gaG9vayBiZWxvdy5cblx0XHRcdCdob3RjYXQtbWVzc2FnZXMtbXVsdGlfZXJyb3InOlxuXHRcdFx0XHQn5peg5rOV5LuO5pyN5Yqh5Zmo5Y+W5b6X6aG16Z2i5paH5a2X44CC5Zug5q2k77yM5oKo55qE5YiG57G75pu05pS55peg5rOV5L+d5a2Y44CC5oiR5Lus5Li65q2k5LiN5L6/6KGo56S65oqx5q2J44CCJyxcblx0XHRcdC8vIFBsdXJhbCBvZiBjYXRlZ29yeV9jYW5vbmljYWwuXG5cdFx0XHQnaG90Y2F0LWNhdGVnb3JpZXMnOiAn5YiG57G7Jyxcblx0XHRcdC8vIE5hbWVzIGZvciB0aGUgc2VhcmNoIGVuZ2luZXNcblx0XHRcdCdob3RjYXQtZW5naW5lX25hbWVzLXNlYXJjaGluZGV4JzogJ+aQnOe0oue0ouW8lScsXG5cdFx0XHQnaG90Y2F0LWVuZ2luZV9uYW1lcy1wYWdlbGlzdCc6ICfpobXpnaLliJfooagnLFxuXHRcdFx0J2hvdGNhdC1lbmdpbmVfbmFtZXMtY29tYmluZWQnOiAn5ZCI5bm25pCc57SiJyxcblx0XHRcdCdob3RjYXQtZW5naW5lX25hbWVzLXN1YmNhdCc6ICflrZDliIbnsbsnLFxuXHRcdFx0J2hvdGNhdC1lbmdpbmVfbmFtZXMtcGFyZW50Y2F0JzogJ+S4iuWxguWIhuexuycsXG5cdFx0XHQvLyBUaGUgdG9vbHRpcHMgZm9yIHRoZSBhYm92ZSBsaW5rc1xuXHRcdFx0J2hvdGNhdC10b29sdGlwcy1jaGFuZ2UnOiAn5L+u5pS5Jyxcblx0XHRcdCdob3RjYXQtdG9vbHRpcHMtcmVtb3ZlJzogJ+enu+mZpCcsXG5cdFx0XHQnaG90Y2F0LXRvb2x0aXBzLWFkZCc6ICflop7liqDkuIDkuKrmlrDliIbnsbsnLFxuXHRcdFx0J2hvdGNhdC10b29sdGlwcy1yZXN0b3JlJzogJ+aSpOmUgOabtOaUuScsXG5cdFx0XHQnaG90Y2F0LXRvb2x0aXBzLXVuZG8nOiAn5pKk6ZSA5pu05pS5Jyxcblx0XHRcdCdob3RjYXQtdG9vbHRpcHMtZG93bic6ICfmiZPlvIDku6Xkv67mlLnlubbmmL7npLrlrZDliIbnsbsnLFxuXHRcdFx0J2hvdGNhdC10b29sdGlwcy11cCc6ICfmiZPlvIDku6Xkv67mlLnlubbmmL7npLrkuIrlsYLliIbnsbsnLFxuXHRcdFx0Ly8gVG9vbHRpcCBmb3IgdGhlIFwiZW50ZXIgbXVsdGktbW9kZVwiIGxpbmtcblx0XHRcdCdob3RjYXQtbXVsdGlfdG9vbHRpcCc6ICfkv67mlLnlpJrkuKrliIbnsbsnLFxuXHRcdH0pO1xuXHR9XG59O1xuXG5leHBvcnQge2hvdENhdE1lc3NhZ2VzfTtcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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QUFNO0FBRzdCLFVBQUkzSCxTQUFTQyxjQUFjLHVCQUF1QixHQUFHO0FBQ3BEO01BQ0Q7QUFDQW9TLGdCQUFVO0FBQ1ZFLGdCQUFVLENBQUE7QUFDVnNlLG9CQUFjO0FBQ2RsbUIsU0FBR3NvQixVQUFVO0FBQ2JELFVBQUk7SUFDTCxDQUFDO0VBQ0Y7QUFHQXR5QixJQUFFc3lCLEdBQUc7QUFDTixHQUFHOyIsCiAgIm5hbWVzIjogWyJjYXRjaGVja0lubGluZUljb24iLCAiaW1wb3J0X2V4dF9nYWRnZXQiLCAicmVxdWlyZSIsICJtd0FwaSIsICJ1c2VyQWdlbnQiLCAiaW5pdE13QXBpIiwgImhvdENhdENoZWNrIiwgIm13IiwgImNvbmZpZyIsICJnZXQiLCAid2luZG93IiwgIkhvdENhdEF1dG9SZW1vdmVDaGVja0NhdE9wdE91dCIsICJkb2N1bWVudCIsICJxdWVyeVNlbGVjdG9yIiwgImFwaSIsICJjaGVja0NhdGVnb3JpZXNSZWdFeHAiLCAic2VsZk5hbWUiLCAic3RvcmFnZUl0ZW1OYW1lIiwgInN0b3JhZ2VJdGVtIiwgInN0b3JhZ2UiLCAiY3JlYXRlakljb24iLCAiaWNvbkNsYXNzIiwgIiQiLCAiYXR0ciIsICJjb25jYXQiLCAidGV4dCIsICJjcmVhdGVOb3RpZnlBcmVhIiwgInRleHROb2RlIiwgImljb24iLCAic3RhdGUiLCAiYWRkQ2xhc3MiLCAiYXBwZW5kIiwgImNzcyIsICJwYWRkaW5nIiwgIm9uZSIsICJlIiwgIl9zZWxmJHdwVGV4dGJveDEkdmFsdSIsICJzZWxmIiwgIm5ld1ZhbCIsICJ3cFRleHRib3gxIiwgInZhbHVlIiwgInJlcGxhY2UiLCAiZGxnQnV0dG9ucyIsICIkZGlhbG9nQ2hlY2tTdG9yYWdlIiwgIiRwZXJtYVNhdmVIaW50IiwgIiR0ZXh0SGludE5vZGUiLCAiJGRpYWxvZyIsICJkb1JlbW92ZSIsICJ3cFN1bW1hcnkiLCAid3JpdGVTdG9yYWdlIiwgInZhbCIsICJzZXQiLCAiXyRkaWFsb2dDaGVja1N0b3JhZ2UkIiwgImNoZWNrZWQiLCAiZGlhbG9nIiwgIl8kZGlhbG9nQ2hlY2tTdG9yYWdlJDIiLCAiX2FkZFRvSlMiLCAiX2UiLCAicHJldmVudERlZmF1bHQiLCAiaGFzQ2xhc3MiLCAiJGVsIiwgIm9mZiIsICJwYXJhbXMiLCAiYWN0aW9uIiwgImZvcm1hdCIsICJ0aXRsZSIsICJzdW1tYXJ5IiwgImFwcGVuZHRleHQiLCAiZGF0YSIsICJlZGl0RG9uZSIsICJlZGl0U3RhdCIsICJlcnJvciIsICJub3RpZnkiLCAiY29kZSIsICJpbmZvIiwgInRhZyIsICJ0eXBlIiwgImZhZGVPdXQiLCAicG9zdFdpdGhUb2tlbiIsICJ0aGVuIiwgInByb21wdCIsICJpZCIsICJvbiIsICJmYWRlSW4iLCAiYXBwZW5kVG8iLCAiZGlzcGxheSIsICJ1c2VyIiwgImlzQW5vbiIsICJoaWRlIiwgIm1vZGFsIiwgImNsb3NlT25Fc2NhcGUiLCAid2lkdGgiLCAiYnV0dG9ucyIsICJjbG9zZSIsICIkYm9keSIsICJmaW5kIiwgInRyaWdnZXIiLCAib3BlbiIsICIkYnV0dG9ucyIsICJwYXJlbnQiLCAiZXEiLCAiYnV0dG9uIiwgImljb25zIiwgInByaW1hcnkiLCAiSG90Q2F0QXV0b1JlbW92ZUNoZWNrQ2F0IiwgIiRva0xpbmsiLCAiaHJlZiIsICJkb0VkaXQiLCAicmVzdWx0IiwgIm5vY3JlYXRlIiwgImFqYXgiLCAidXJsIiwgImRhdGFUeXBlIiwgInN1Y2Nlc3MiLCAiY2FjaGUiLCAibG9hZEhvdENhdENoZWNrIiwgImltcG9ydF9leHRfZ2FkZ2V0MiIsICJnZXRNZXNzYWdlIiwgImtleSIsICJhcmdzIiwgIm1lc3NhZ2UiLCAicGxhaW4iLCAiaG90Q2F0TWVzc2FnZXMiLCAid2dVc2VyTGFuZ3VhZ2UiLCAiaW5jbHVkZXMiLCAibWVzc2FnZXMiLCAiaG90Q2F0IiwgImNvbmYiLCAidmFsdWVzIiwgIkhvdENhdCIsICJub2RlTmFtZSIsICJ3Z0FjdGlvbiIsICJsaW5rcyIsICJjaGFuZ2UiLCAicmVtb3ZlIiwgImFkZCIsICJyZXN0b3JlIiwgInVuZG8iLCAiZG93biIsICJ1cCIsICJjaGFuZ2VUYWciLCAiYWRkbXVsdGkiLCAiZGlzYWJsZSIsICJucyIsICJ3Z05hbWVzcGFjZU51bWJlciIsICJuc0lkcyIsICJ3Z05hbWVzcGFjZUlkcyIsICJ3Z0FydGljbGVJZCIsICJ0ZXN0IiwgIndnVGl0bGUiLCAiY3JlYXRvciIsICJ0aW1lZHRleHQiLCAiaW5zdGl0dXRpb24iLCAidW5jYXRfcmVnZXhwIiwgImV4aXN0c1llcyIsICJQX3llc19kZWZhdWx0IiwgImV4aXN0c05vIiwgIlBfbm9fZGVmYXVsdCIsICJ0ZW1wbGF0ZV9jYXRlZ29yaWVzIiwgImNhcGl0YWxpemVQYWdlTmFtZXMiLCAidXBsb2FkX2Rpc2FibGVkIiwgImJsYWNrbGlzdCIsICJiZ19jaGFuZ2VkIiwgIm5vX2F1dG9jb21taXQiLCAiZGVsX25lZWRzX2RpZmYiLCAic3VnZ2VzdF9kZWxheSIsICJlZGl0Ym94X3dpZHRoIiwgInN1Z2dlc3Rpb25zIiwgImZpeGVkX3NlYXJjaCIsICJ1c2VfdXBfZG93biIsICJsaXN0U2l6ZSIsICJzaW5nbGVfbWlub3IiLCAiZG9udF9hZGRfdG9fd2F0Y2hsaXN0IiwgInNob3J0Y3V0cyIsICJhZGRTaG9ydGN1dHMiLCAibWFwIiwgIl93aW5kb3ckSG90Q2F0IiwgImsiLCAiT2JqZWN0IiwgImhhc093biIsICJ2IiwgInRyaW0iLCAibGVuZ3RoIiwgIkhDIiwgInVhIiwgIm5hdmlnYXRvciIsICJ0b0xvd2VyQ2FzZSIsICJpc193ZWJraXQiLCAiY2F0X3ByZWZpeCIsICJub1N1Z2dlc3Rpb25zIiwgIndpa2lUZXh0QmxhbmsiLCAiU3RyaW5nIiwgInJhdyIsICJfdGVtcGxhdGVPYmplY3QiLCAiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbCIsICJ3aWtpVGV4dEJsYW5rUkUiLCAiUmVnRXhwIiwgIndpa2lUZXh0QmxhbmtPckJpZGkiLCAiX3RlbXBsYXRlT2JqZWN0MiIsICJmb3JtYXR0ZWROYW1lc3BhY2VzIiwgIndnRm9ybWF0dGVkTmFtZXNwYWNlcyIsICJuYW1lc3BhY2VJZHMiLCAiYXV0b0xvY2FsaXplIiwgIm5hbWVzcGFjZU51bWJlciIsICJmYWxsYmFjayIsICJjcmVhdGVSZWdleHBTdHIiLCAibmFtZSIsICJyZWdleF9uYW1lIiwgImkiLCAiaW5pdGlhbCIsICJjaGFyQXQiLCAibGwiLCAidWwiLCAidG9VcHBlckNhc2UiLCAiX3RlbXBsYXRlT2JqZWN0MyIsICJjYW5vbmljYWwiLCAicmVnZXhwIiwgImNhdF9uYW1lIiwgImNhdGVnb3J5X2Nhbm9uaWNhbCIsICJjYXRlZ29yeV9yZWdleHAiLCAidGVtcGxhdGVfcmVnZXhwIiwgIm1ha2UiLCAiYXJnIiwgImxpdGVyYWwiLCAiY3JlYXRlVGV4dE5vZGUiLCAiY3JlYXRlRWxlbWVudCIsICJwYXJhbSIsICJ1cmkiLCAibG9jYXRpb24iLCAicmUiLCAibSIsICJleGVjIiwgImRlY29kZVVSSUNvbXBvbmVudCIsICJzY3JpcHQiLCAid2dTY3JpcHQiLCAiaW5kZXhPZiIsICJ3Z1NlcnZlciIsICJzbGljZSIsICJwcm90b2NvbCIsICJwcmVmaXgiLCAid2dBcnRpY2xlUGF0aCIsICJjbGFzc05hbWUiLCAiY2FwaXRhbGl6ZSIsICJzdHIiLCAid2lraVBhZ2VQYXRoIiwgInBhZ2VOYW1lIiwgImVuY29kZVVSSUNvbXBvbmVudCIsICJlc2NhcGVSRSIsICJfdGVtcGxhdGVPYmplY3Q0IiwgInN1YnN0aXR1dGVGYWN0b3J5IiwgIm9wdGlvbnMiLCAibGVhZCIsICJpbmRpY2F0b3IiLCAibGJyYWNlIiwgInJicmFjZSIsICJtYXRjaCIsICJpZHgiLCAiYWxwaGEiLCAicmVwbGFjZW1lbnQiLCAicmVwbGFjZVNob3J0Y3V0cyIsICJyZXBsYWNlSGFzaCIsICJzIiwgImZpbmRDYXRzUkUiLCAicmVwbGFjZUJ5QmxhbmtzIiwgImZpbmRfY2F0ZWdvcnkiLCAid2lraXRleHQiLCAiY2F0ZWdvcnkiLCAib25jZSIsICJjYXRfcmVnZXgiLCAibm93aWtpUmVnZXgiLCAiX3RlbXBsYXRlT2JqZWN0NSIsICJjb3BpZWR0ZXh0IiwgImN1cnJfbWF0Y2giLCAiaW50ZXJsYW5ndWFnZVJFIiwgImNoYW5nZV9jYXRlZ29yeSIsICJ0b1JlbW92ZSIsICJ0b0FkZCIsICJpc19oaWRkZW4iLCAiZmluZF9pbnNlcnRpb25wb2ludCIsICJfd2lraXRleHQiLCAiX3RlbXBsYXRlT2JqZWN0NiIsICJpbmRleCIsICJsYXN0SW5kZXgiLCAib25DYXQiLCAibmFtZVNwYWNlIiwgImtleUNoYW5nZSIsICJtYXRjaGVzIiwgImNhdF9wb2ludCIsICJiZWZvcmUiLCAiTWF0aCIsICJtYXgiLCAiYWZ0ZXIiLCAic2VhcmNoIiwgImoiLCAicG9pbnQiLCAibmV3Y2F0c3RyaW5nIiwgInN1ZmZpeCIsICJ0eHQiLCAiZXZ0S2V5cyIsICJjdHJsS2V5IiwgIm1ldGFLZXkiLCAic2hpZnRLZXkiLCAiZXZ0S2lsbCIsICJzdG9wUHJvcGFnYXRpb24iLCAiY2FuY2VsQnViYmxlIiwgImNhdExpbmUiLCAib25VcGxvYWQiLCAiZWRpdG9ycyIsICJjb21taXRCdXR0b24iLCAiY29tbWl0Rm9ybSIsICJtdWx0aVNwYW4iLCAicGFnZVRleHQiLCAicGFnZVRpbWUiLCAicGFnZVdhdGNoZWQiLCAid2F0Y2hDcmVhdGUiLCAid2F0Y2hFZGl0IiwgIm1pbm9yRWRpdHMiLCAiZWRpdFRva2VuIiwgImlzX3J0bCIsICJzZXJ2ZXJUaW1lIiwgImxhc3RSZXZJZCIsICJwYWdlVGV4dFJldklkIiwgImNvbmZsaWN0aW5nVXNlciIsICJuZXdET00iLCAiVU5DSEFOR0VEIiwgIk9QRU4iLCAiQ0hBTkdFX1BFTkRJTkciLCAiQ0hBTkdFRCIsICJERUxFVEVEIiwgInNldFBhZ2UiLCAic3RhcnRUaW1lIiwgInF1ZXJ5IiwgInBhZ2VzIiwgInBhZ2UiLCAicmV2aXNpb25zIiwgInNsb3RzIiwgIm1haW4iLCAiY29udGVudCIsICJ0aW1lc3RhbXAiLCAicmV2aWQiLCAibGFzdHJldmlkIiwgInN0YXJ0dGltZXN0YW1wIiwgIndhdGNoZWQiLCAidG9rZW5zIiwgImNzcmZ0b2tlbiIsICJsYW5nbGlua3MiLCAibGFuZyIsICJfdGVtcGxhdGVPYmplY3Q3IiwgImdlbmVyYWwiLCAidGltZSIsICJjYXNlIiwgInVzZXJpbmZvIiwgIndhdGNoY3JlYXRpb25zIiwgIndhdGNoZGVmYXVsdCIsICJtaW5vcmRlZmF1bHQiLCAic2F2ZUluUHJvZ3Jlc3MiLCAiaW5pdGlhdGVFZGl0IiwgImZhaWx1cmUiLCAib2xkQnV0dG9uU3RhdGUiLCAiZGlzYWJsZWQiLCAiZmFpbCIsICJhcHBseSIsICJmb3JtYXR2ZXJzaW9uIiwgInJhd2NvbnRpbnVlIiwgInRpdGxlcyIsICJ3Z1BhZ2VOYW1lIiwgInByb3AiLCAiaW5wcm9wIiwgInJ2cHJvcCIsICJydnNsb3RzIiwgInJ2bGltaXQiLCAicnZkaXIiLCAicnZzdGFydGlkIiwgIndnQ3VyUmV2aXNpb25JZCIsICJsbGxpbWl0IiwgIm1ldGEiLCAidWlwcm9wIiwgImRvbmUiLCAic3RhdHVzIiwgInN0YXR1c1RleHQiLCAibXVsdGlDaGFuZ2VNc2ciLCAiY291bnQiLCAiY3VycmVudFRpbWVzdGFtcCIsICJub3ciLCAiRGF0ZSIsICJ0cyIsICJnZXRVVENGdWxsWWVhciIsICJ0d28iLCAiZ2V0VVRDTW9udGgiLCAiZ2V0VVRDRGF0ZSIsICJnZXRVVENIb3VycyIsICJnZXRVVENNaW51dGVzIiwgImdldFVUQ1NlY29uZHMiLCAicGVyZm9ybUNoYW5nZXMiLCAic2luZ2xlRWRpdG9yIiwgInNlbGZFZGl0Q29uZmxpY3QiLCAid2dVc2VyTmFtZSIsICJub0NvbW1pdCIsICJ3cEVkaXRUb2tlbiIsICJ3cERpZmYiLCAid3BTYXZlIiwgImNoYW5nZWQiLCAiYWRkZWQiLCAiZGVsZXRlZCIsICJ0b0VkaXQiLCAiZWRpdCIsICJjaGFuZ2VzIiwgIm9yaWdpbmFsQ2F0ZWdvcnkiLCAiY3VycmVudENhdGVnb3J5IiwgImN1cnJlbnRLZXkiLCAiY3VycmVudEhpZGRlbiIsICJmcm9tIiwgInRvIiwgIndwTWlub3JlZGl0IiwgIndwV2F0Y2h0aGlzIiwgIndwQ2hhbmdlVGFncyIsICJ3cEF1dG9TdW1tYXJ5IiwgImpvaW4iLCAic2hvcnRTdW1tYXJ5IiwgImFycm93IiwgIndwU3RhcnR0aW1lIiwgIndwRWRpdHRpbWUiLCAib2xkaWQiLCAiaGNDb21taXQiLCAiY2xpY2siLCAicmVzb2x2ZU9uZSIsICJ0b1Jlc29sdmUiLCAiY2F0cyIsICJjYXRlZ29yaWVzIiwgImlzX2RhYiIsICJpc19yZWRpciIsICJyZWRpcmVjdCIsICJjYXRlZ29yeWluZm8iLCAiaGlkZGVuIiwgImlzX21pc3NpbmciLCAibWlzc2luZyIsICJkYWJJbnB1dENsZWFuZWQiLCAiaW5wdXRFeGlzdHMiLCAic3JjIiwgIl9pdGVyYXRvciIsICJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsICJfc3RlcCIsICJuIiwgImNhdF8iLCAiY2F0IiwgImVyciIsICJmIiwgImRhYiIsICJyZXNvbHZlUmVkaXJlY3RzIiwgInAiLCAicmVzb2x2ZU11bHRpIiwgImNhbGxiYWNrIiwgImRhYklucHV0IiwgImxhc3RJbnB1dCIsICJwbG5hbWVzcGFjZSIsICJwbGxpbWl0IiwgImNsbGltaXQiLCAianNvbiIsICJyZXEiLCAibWFrZUFjdGl2ZSIsICJ3aGljaCIsICJpc19hY3RpdmUiLCAiX2kiLCAiX2VkaXRvcnMiLCAiZWRpdG9yIiwgImluYWN0aXZhdGUiLCAic2hvd0RhYiIsICJleHBlY3RlZElucHV0IiwgImxhc3RSZWFsSW5wdXQiLCAiYWN0dWFsVmFsdWUiLCAic2hvd3NMaXN0IiwgInNwbGl0IiwgImxhc3RTZWxlY3Rpb24iLCAic3RhcnQiLCAiZW5kIiwgImRpc3BsYXlMaXN0IiwgInNldFRpbWVvdXQiLCAic2V0U2VsZWN0aW9uIiwgInNob3dTdWdnZXN0aW9ucyIsICJtdWx0aVN1Ym1pdCIsICJfaTIiLCAiX2VkaXRvcnMyIiwgIm1zZyIsICJyZXNvbHZlZCIsICJmaXJzdERhYiIsICJkb250Q2hhbmdlIiwgIl9pdGVyYXRvcjIiLCAiX3N0ZXAyIiwgImVsZW1lbnQiLCAiYWNjZXB0Q2hlY2siLCAiY29tbWl0IiwgInNldE11bHRpSW5wdXQiLCAiYWRkRXZlbnRMaXN0ZW5lciIsICJyZXBsYWNlV2l0aCIsICJjaGVja011bHRpSW5wdXQiLCAiaGFzQ2hhbmdlcyIsICJfaTMiLCAiX2VkaXRvcnMzIiwgInN1Z2dlc3Rpb25FbmdpbmVzIiwgIm9wZW5zZWFyY2giLCAiaGFuZGxlciIsICJxdWVyeVJlc3VsdCIsICJxdWVyeUtleSIsICJleGlzdHMiLCAic3BsaWNlIiwgIm5vcm1hbGl6ZWQiLCAiaW50ZXJuYWxzZWFyY2giLCAiYWxscGFnZXMiLCAiX3RpdGxlIiwgInN1YmNhdGVnb3JpZXMiLCAiY2F0ZWdvcnltZW1iZXJzIiwgInBhcmVudGNhdGVnb3JpZXMiLCAic3VnZ2VzdGlvbkNvbmZpZ3MiLCAic2VhcmNoaW5kZXgiLCAiZW5naW5lcyIsICJzaG93IiwgInRlbXAiLCAibm9Db21wbGV0aW9uIiwgInBhZ2VsaXN0IiwgImNvbWJpbmVkIiwgInN1YmNhdCIsICJwYXJlbnRjYXQiLCAiQlMiLCAiVEFCIiwgIlJFVCIsICJFU0MiLCAiU1BBQ0UiLCAiUEdVUCIsICJQR0RPV04iLCAiVVAiLCAiRE9XTiIsICJERUwiLCAiSU1FIiwgIkNhdGVnb3J5RWRpdG9yIiwgImNvbnN0cnVjdG9yIiwgImluaXRpYWxpemUiLCAiaXNDb21wb3NpdGlvblN0YXJ0IiwgImxpbmUiLCAic3BhbiIsICJkaXIiLCAiaXNBZGRDYXRlZ29yeSIsICJjYXRMaW5rIiwgImZpcnN0Q2hpbGQiLCAib3JpZ2luYWxLZXkiLCAib3JpZ2luYWxFeGlzdHMiLCAibWFrZUxpbmtTcGFuIiwgInVwRG93bkxpbmtzIiwgInN0eWxlIiwgImxpbmtTcGFuIiwgInBhcmVudE5vZGUiLCAiaW5zZXJ0QmVmb3JlIiwgIm5leHRTaWJsaW5nIiwgImxpbmsiLCAiYmluZCIsICJub3JtYWxMaW5rcyIsICJ1bmRlbExpbmsiLCAib3JpZ2luYWxIaWRkZW4iLCAiZW5naW5lIiwgImN1cnJlbnRFeGlzdHMiLCAibGFzdFNhdmVkU3RhdGUiLCAibGFzdFNhdmVkQ2F0ZWdvcnkiLCAibGFzdFNhdmVkS2V5IiwgImxhc3RTYXZlZEV4aXN0cyIsICJsYXN0U2F2ZWRIaWRkZW4iLCAiaW52b2tlU3VnZ2VzdGlvbnMiLCAiZG9udF9hdXRvY29tcGxldGUiLCAidGV4dGNoYW5nZSIsICJtYWtlRm9ybSIsICJmb3JtIiwgIm1ldGhvZCIsICJhY2NlcHQiLCAic2l6ZSIsICJldmVudCIsICJpbWUiLCAibGFzdEtleSIsICJ1c2VzQ29tcG9zaXRpb24iLCAia2V5Q291bnQiLCAicHJvY2Vzc0tleSIsICJyZXNldEtleVNlbGVjdGlvbiIsICJjYW5jZWwiLCAic2F2ZVZpZXciLCAibGlzdCIsICJoaWdobGlnaHRTdWdnZXN0aW9uIiwgImZvY3VzIiwgImVuZ2luZVNlbGVjdG9yIiwgIm9wdCIsICJzZWxlY3RlZCIsICJzZWxlY3RlZEluZGV4IiwgImJ1dHRvbl9sYWJlbCIsICJfaWQiLCAiZGVmYXVsdFRleHQiLCAibGFiZWwiLCAiT0siLCAib2siLCAiY2FuY2VsQnV0dG9uIiwgInBvc2l0aW9uIiwgIndoaXRlU3BhY2UiLCAiX2k0IiwgIl9lZGl0b3JzNCIsICJvcmlnaW5hbFN0YXRlIiwgInJlYWRPbmx5IiwgInJlbW92ZUVkaXRvciIsICJiYWNrZ3JvdW5kQ29sb3IiLCAibmV4dCIsICJyb2xsYmFjayIsICJ1bmRvTGluayIsICJkb250Q2hlY2siLCAic2FuaXRpemVJbnB1dCIsICJvcmlnaW5hbCIsICJfaTUiLCAiX2VkaXRvcnM1IiwgImNzc1RleHQiLCAidGV4dERlY29yYXRpb24iLCAic2VsZWN0RW5naW5lIiwgImVuZ2luZU5hbWUiLCAibWFrZUNhbGwiLCAiY2FsbGJhY2tPYmoiLCAiY2xlYW5LZXkiLCAiY2IiLCAieiIsICJjYWxsc01hZGUiLCAibm9mQ2FsbHMiLCAiYWxsVGl0bGVzIiwgImRvbnRDYWNoZSIsICJjYW5jZWxsZWQiLCAiZ2V0SlNPTiIsICJnZW5lcmF0ZUFycmF5IiwgImZvcmNlIiwgInBpcGUiLCAibWFrZUNhbGxzIiwgIl9pdGVyYXRvcjMiLCAiX3N0ZXAzIiwgImVuZ2luZV8iLCAid2dTY3JpcHRQYXRoIiwgImRvbnRBdXRvY29tcGxldGUiLCAibGFzdFF1ZXJ5IiwgInZOb3JtYWxpemVkIiwgImtub3duVG9FeGlzdCIsICJ2TG93IiwgInNvcnQiLCAiYSIsICJiIiwgInByZWZpeE1hdGNoQSIsICJwcmVmaXhNYXRjaEIiLCAiYUxvdyIsICJiTG93IiwgImZpcnN0VGl0bGUiLCAiY29tcGxldGVkIiwgImF1dG9Db21wbGV0ZSIsICJleGlzdGluZyIsICJub2ZJdGVtcyIsICJtaW4iLCAiYWxpZ24iLCAiekluZGV4IiwgImFuY2hvciIsICJsaXN0aCIsICJ0b3AiLCAib2Zmc2V0VG9wIiwgIm9mZnNldEhlaWdodCIsICJtYXhMaXN0SGVpZ2h0IiwgInZpZXdwb3J0IiwgIndoYXQiLCAiZG9jdW1lbnRFbGVtZW50IiwgInNjcm9sbF9vZmZzZXQiLCAibm9kZSIsICJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCAiYm94IiwgIngiLCAicm91bmQiLCAibGVmdCIsICJ5IiwgInQiLCAibCIsICJvZmZzZXRMZWZ0IiwgIm9mZnNldFBhcmVudCIsICJ0ZXh0UG9zIiwgIm5sIiwgIm50IiwgIm9mZnNldCIsICJ0ZXh0Qm94V2lkdGgiLCAib2Zmc2V0V2lkdGgiLCAiY2xpZW50V2lkdGgiLCAic2Nyb2xsIiwgInZpZXdfdyIsICJ3IiwgImxfcG9zIiwgInJpZ2h0IiwgInJlbGF0aXZlX29mZnNldCIsICJhY3RWYWwiLCAibm9ybWFsaXplZEFjdFZhbCIsICJkb250TW9kaWZ5IiwgImNhblNlbGVjdCIsICJzZXRTZWxlY3Rpb25SYW5nZSIsICJzZWxlY3Rpb25TdGFydCIsICJzZWxlY3Rpb25FbmQiLCAiZ2V0U2VsZWN0aW9uIiwgImN1cnIiLCAidGd0IiwgImhvdGNhdF9kb250X2FkZF90b193YXRjaGxpc3QiLCAiSG90Q2F0RG9udEFkZFRvV2F0Y2hsaXN0IiwgImhvdGNhdF9ub19hdXRvY29tbWl0IiwgIkhvdENhdE5vQXV0b0NvbW1pdCIsICJob3RjYXRfZGVsX25lZWRzX2RpZmYiLCAiSG90Q2F0RGVsTmVlZHNEaWZmIiwgImhvdGNhdF9zdWdnZXN0aW9uX2RlbGF5IiwgIkhvdENhdFN1Z2dlc3Rpb25EZWxheSIsICJob3RjYXRfZWRpdGJveF93aWR0aCIsICJIb3RDYXRFZGl0Qm94V2lkdGgiLCAiaG90Y2F0X3N1Z2dlc3Rpb25zIiwgIkhvdENhdFN1Z2dlc3Rpb25zIiwgImhvdGNhdF9zdWdnZXN0aW9uc19maXhlZCIsICJIb3RDYXRGaXhlZFN1Z2dlc3Rpb25zIiwgImhvdGNhdF9zaW5nbGVfY2hhbmdlc19hcmVfbWlub3IiLCAiSG90Q2F0TWlub3JTaW5nbGVDaGFuZ2VzIiwgImhvdGNhdF9jaGFuZ2VkX2JhY2tncm91bmQiLCAiSG90Q2F0Q2hhbmdlZEJhY2tncm91bmQiLCAiaG90Y2F0X3VzZV9jYXRlZ29yeV9saW5rcyIsICJIb3RDYXRVc2VDYXRlZ29yeUxpbmtzIiwgImhvdGNhdF9saXN0X3NpemUiLCAiSG90Q2F0TGlzdFNpemUiLCAiSG90Q2F0Q2hhbmdlVGFnIiwgImVGb3JtIiwgImVkaXRmb3JtIiwgImNhdFJlZ0V4cCIsICJvbGRUeHQiLCAiaXNNaW5vckNoYW5nZSIsICJuZXdUeHQiLCAib2xkTGluZXMiLCAibmV3TGluZXMiLCAiY0FyciIsICJleGNlcHQiLCAiYUFyciIsICJiQXJyIiwgImxBcnIiLCAic0FyciIsICJfaXRlcmF0b3I0IiwgIl9zdGVwNCIsICJpdGVtIiwgImluZCIsICJmaWx0ZXIiLCAiYyIsICJzdW0iLCAic3VtQSIsICIkY3QiLCAicmVtb3ZlQ2hhbmdlVGFnIiwgIk51bWJlciIsICJwYXJzZUludCIsICJpc05hTiIsICJfaTYiLCAiX09iamVjdCRlbnRyaWVzIiwgImVudHJpZXMiLCAic3VnZ2VzdGlvbkNvbmZpZyIsICJkZWZhdWx0VmlldyIsICJnZXRDb21wdXRlZFN0eWxlIiwgImdldFByb3BlcnR5VmFsdWUiLCAiZGlyZWN0aW9uIiwgImNhbl9lZGl0IiwgImNsb3NlRm9ybSIsICJfaTciLCAiX2VkaXRvcnM2IiwgInNldHVwX3VwbG9hZCIsICJpcCIsICJyZXVwbG9hZCIsICJkZXN0RmlsZSIsICJsYWJlbENlbGwiLCAibGluZUNlbGwiLCAidGV4dEFsaWduIiwgIm1hcmdpbiIsICJib3JkZXIiLCAidmVydGljYWxBbGlnbiIsICJuZXdSb3ciLCAiaW5zZXJ0Um93IiwgIm9sZFN1Ym1pdCIsICJkb19zdWJtaXQiLCAiZXZhbCIsICJGdW5jdGlvbiIsICJlYiIsICJhZGRlZE9uZSIsICJfaTgiLCAiX2VkaXRvcnM3IiwgIm5ld19jYXQiLCAiX3RlbXBsYXRlT2JqZWN0OCIsICJfY2xlYW5lZFRleHQiLCAicmVnZXgiLCAib25zdWJtaXQiLCAiY2xlYW5lZFRleHQiLCAiaXNPblBhZ2UiLCAibm9kZVR5cGUiLCAiTm9kZSIsICJFTEVNRU5UX05PREUiLCAiY2F0VGl0bGUiLCAiZ2V0QXR0cmlidXRlIiwgIl90ZW1wbGF0ZU9iamVjdDkiLCAiaW5pdGlhbGl6ZWQiLCAic2V0dXBUaW1lb3V0IiwgImZpbmRCeUNsYXNzIiwgInNjb3BlIiwgInNldHVwIiwgImFkZGl0aW9uYWxXb3JrIiwgImNsZWFyVGltZW91dCIsICJoaWRkZW5DYXRzIiwgImZvb3RlciIsICJjb250YWluZXIiLCAiY3JlYXRlRWRpdG9ycyIsICJxdWVyeVNlbGVjdG9yQWxsIiwgImNvcHlDYXRzIiwgIkFycmF5IiwgImF0IiwgImxhc3RTcGFuIiwgImVuYWJsZU11bHRpIiwgImlubmVySFRNTCIsICJjdXJzb3IiLCAiaG9vayIsICJmaXJlIiwgImNyZWF0ZUNvbW1pdEZvcm0iLCAiZm9ybUNvbnRhaW5lciIsICJ3Z1BhZ2VDb250ZW50TW9kZWwiLCAiZ2V0UGFnZSIsICJzZXRTdGF0ZSIsICJuZXdTcGFucyIsICJnZXRTdGF0ZSIsICJfaTkiLCAiX2VkaXRvcnM4IiwgInJlYWxseV9ydW4iLCAid2dDYW5vbmljYWxTcGVjaWFsUGFnZU5hbWUiLCAiVXBsb2FkRm9ybSIsICJwcmV2aW91c19ob3RjYXRfc3RhdGUiLCAid2dJc0FydGljbGUiLCAicnVuIiwgInN0YXJ0ZWQiLCAiaG90Y2F0X2dldF9zdGF0ZSIsICJob3RjYXRfc2V0X3N0YXRlIiwgImhvdGNhdF9jbG9zZV9mb3JtIiwgInJ1bldoZW5SZWFkeSJdCn0K diff --git a/dist/JSX/JSX.js b/dist/JSX/JSX.js new file mode 100644 index 000000000..021ab8a86 --- /dev/null +++ b/dist/JSX/JSX.js @@ -0,0 +1,870 @@ +/** + * SPDX-License-Identifier: BSD-3-Clause + * _addText: '{{Gadget Header|license=BSD|attribution=proteriax}}' + * + * @base {@link https://github.com/alex-kinokon/jsx-dom} + * @source {@link https://git.qiuwen.net.cn/InterfaceAdmin/QiuwenGadgets/src/branch/master/src/React} + * @license BSD-3-Clause {@link https://github.com/alex-kinokon/jsx-dom/blob/master/LICENSE} + */ + +/** + * BSD 3-Clause License + * + * Copyright (c) proteriax + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. Neither the name of the copyright holder nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +/** + * +------------------------------------------------------------+ + * | === WARNING: GLOBAL GADGET FILE === | + * +------------------------------------------------------------+ + * | All changes should be made in the repository, | + * | otherwise they will be lost. | + * +------------------------------------------------------------+ + * | Changes to this page may affect many users. | + * | Please discuss changes by opening an issue before editing. | + * +------------------------------------------------------------+ + */ +/* */ + +(() => { + +"use strict"; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __commonJS = (cb, mod) => function __require() { + return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; +}; + +// node_modules/.pnpm/proxy-polyfill@0.3.2/node_modules/proxy-polyfill/proxy.min.js +var require_proxy_min = __commonJS({ + "node_modules/.pnpm/proxy-polyfill@0.3.2/node_modules/proxy-polyfill/proxy.min.js"() { + (function() { + function n() { + function v() { + return null; + } + function l(a) { + return a ? "object" === typeof a || "function" === typeof a : false; + } + function p(a) { + if (null !== a && !l(a)) throw new TypeError("Object prototype may only be an Object or null: " + a); + } + var q = null, e = Object, w = !!e.create || !({ __proto__: null } instanceof e), A = e.create || (w ? function(a) { + p(a); + return { __proto__: a }; + } : function(a) { + function c() { + } + p(a); + if (null === a) throw new SyntaxError("Native Object.create is required to create objects with null prototype"); + c.prototype = a; + return new c(); + }), B = e.getPrototypeOf || ([].__proto__ === Array.prototype ? function(a) { + a = a.__proto__; + return l(a) ? a : null; + } : v); + var m = function(a, c) { + function k() { + } + if (void 0 === (this && this instanceof m ? this.constructor : void 0)) throw new TypeError("Constructor Proxy requires 'new'"); + if (!l(a) || !l(c)) throw new TypeError("Cannot create proxy with a non-object as target or handler"); + q = function() { + a = null; + k = function(b) { + throw new TypeError("Cannot perform '" + b + "' on a proxy that has been revoked"); + }; + }; + setTimeout(function() { + q = null; + }, 0); + var g = c; + c = { get: null, set: null, apply: null, construct: null }; + for (var h in g) { + if (!(h in c)) throw new TypeError("Proxy polyfill does not support trap '" + h + "'"); + c[h] = g[h]; + } + "function" === typeof g && (c.apply = g.apply.bind(g)); + g = B(a); + var r = false, t = false; + if ("function" === typeof a) { + var f = function() { + var b = this && this.constructor === f, d = Array.prototype.slice.call(arguments); + k(b ? "construct" : "apply"); + return b && c.construct ? c.construct.call(this, a, d) : !b && c.apply ? c.apply(a, this, d) : b ? (d.unshift(a), new (a.bind.apply(a, d))()) : a.apply( + this, + d + ); + }; + r = true; + } else a instanceof Array ? (f = [], t = true) : f = w || null !== g ? A(g) : {}; + var x = c.get ? function(b) { + k("get"); + return c.get(this, b, f); + } : function(b) { + k("get"); + return this[b]; + }, C = c.set ? function(b, d) { + k("set"); + c.set(this, b, d, f); + } : function(b, d) { + k("set"); + this[b] = d; + }, y = {}; + e.getOwnPropertyNames(a).forEach(function(b) { + if (!((r || t) && b in f)) { + var d = e.getOwnPropertyDescriptor(a, b); + e.defineProperty(f, b, { enumerable: !!d.enumerable, get: x.bind(a, b), set: C.bind(a, b) }); + y[b] = true; + } + }); + h = true; + if (r || t) { + var D = e.setPrototypeOf || ([].__proto__ === Array.prototype ? function(b, d) { + p(d); + b.__proto__ = d; + return b; + } : v); + g && D(f, g) || (h = false); + } + if (c.get || !h) for (var u in a) y[u] || e.defineProperty(f, u, { get: x.bind(a, u) }); + e.seal(a); + e.seal(f); + return f; + }; + m.revocable = function(a, c) { + return { proxy: new m(a, c), revoke: q }; + }; + return m; + } + ; + var z = "undefined" !== typeof process && "[object process]" === {}.toString.call(process) || "undefined" !== typeof navigator && "ReactNative" === navigator.product ? global : self; + z.Proxy || (z.Proxy = n(), z.Proxy.revocable = z.Proxy.revocable); + })(); + } +}); + +// dist/JSX/JSX.js +require_proxy_min(); +function _createForOfIteratorHelper(r, e) { + var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; + if (!t) { + if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { + t && (r = t); + var n = 0, F = function() { + }; + return { s: F, n: function() { + return n >= r.length ? { done: true } : { done: false, value: r[n++] }; + }, e: function(r2) { + throw r2; + }, f: F }; + } + throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + var o, a = true, u = false; + return { s: function() { + t = t.call(r); + }, n: function() { + var r2 = t.next(); + return a = r2.done, r2; + }, e: function(r2) { + u = true, o = r2; + }, f: function() { + try { + a || null == t.return || t.return(); + } finally { + if (u) throw o; + } + } }; +} +function _unsupportedIterableToArray(r, a) { + if (r) { + if ("string" == typeof r) return _arrayLikeToArray(r, a); + var t = {}.toString.call(r).slice(8, -1); + return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; + } +} +function _arrayLikeToArray(r, a) { + (null == a || a > r.length) && (a = r.length); + for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; + return n; +} +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames2 = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __export = (target, all) => { + for (var name in all) __defProp(target, name, { + get: all[name], + enumerable: true + }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + var _iterator = _createForOfIteratorHelper(__getOwnPropNames2(from)), _step; + try { + for (_iterator.s(); !(_step = _iterator.n()).done; ) { + let key = _step.value; + if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { + get: () => from[key], + enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }); + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + } + return to; +}; +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { + value: true +}), mod); +//! src/JSX/JSX.ts +var JSX_exports = {}; +__export(JSX_exports, { + Component: () => Component, + Fragment: () => Fragment, + PureComponent: () => Component, + SVGNamespace: () => SVGNamespace, + ShadowRoot: () => ShadowRoot, + StrictMode: () => Fragment, + className: () => className, + createElement: () => createElement, + createFactory: () => createFactory, + createRef: () => createRef, + forwardRef: () => forwardRef, + h: () => createElement, + isRef: () => isRef, + jsx: () => jsx, + jsxs: () => jsx, + memo: () => identity, + preventDefault: () => preventDefault, + stopPropagation: () => stopPropagation, + styled: () => styled, + useCallback: () => identity, + useClassList: () => useClassList, + useImperativeHandle: () => useImperativeHandle, + useMemo: () => useMemo, + useRef: () => createRef, + useText: () => useText +}); +module.exports = __toCommonJS(JSX_exports); +var keys = Object.keys; +function identity(value) { + return value; +} +function isBoolean(val) { + return typeof val === "boolean"; +} +function isElement(val) { + return val && typeof val.nodeType === "number"; +} +function isString(val) { + return typeof val === "string"; +} +function isNumber(val) { + return typeof val === "number"; +} +function isObject(val) { + return typeof val === "object" ? val !== null : isFunction(val); +} +function isFunction(val) { + return typeof val === "function"; +} +function isComponentClass(Component2) { + return !!(Component2 && Component2.isComponent); +} +function isArrayLike(obj) { + return isObject(obj) && typeof obj.length === "number" && typeof obj.nodeType !== "number"; +} +function forEach(value, fn) { + if (!value) return; + var _iterator2 = _createForOfIteratorHelper(keys(value)), _step2; + try { + for (_iterator2.s(); !(_step2 = _iterator2.n()).done; ) { + const key = _step2.value; + fn(value[key], key); + } + } catch (err) { + _iterator2.e(err); + } finally { + _iterator2.f(); + } +} +function createRef() { + return Object.seal({ + current: null + }); +} +function isRef(maybeRef) { + return isObject(maybeRef) && "current" in maybeRef; +} +var isUnitlessNumber = { + animationIterationCount: 0, + borderImageOutset: 0, + borderImageSlice: 0, + borderImageWidth: 0, + boxFlex: 0, + boxFlexGroup: 0, + boxOrdinalGroup: 0, + columnCount: 0, + columns: 0, + flex: 0, + flexGrow: 0, + flexPositive: 0, + flexShrink: 0, + flexNegative: 0, + flexOrder: 0, + gridArea: 0, + gridRow: 0, + gridRowEnd: 0, + gridRowSpan: 0, + gridRowStart: 0, + gridColumn: 0, + gridColumnEnd: 0, + gridColumnSpan: 0, + gridColumnStart: 0, + fontWeight: 0, + lineClamp: 0, + lineHeight: 0, + opacity: 0, + order: 0, + orphans: 0, + tabSize: 0, + widows: 0, + zIndex: 0, + zoom: 0, + // SVG-related properties + fillOpacity: 0, + floodOpacity: 0, + stopOpacity: 0, + strokeDasharray: 0, + strokeDashoffset: 0, + strokeMiterlimit: 0, + strokeOpacity: 0, + strokeWidth: 0 +}; +function prefixKey(prefix, key) { + return prefix + key.charAt(0).toUpperCase() + key.substring(1); +} +var prefixes = ["Webkit", "ms", "Moz", "O"]; +keys(isUnitlessNumber).forEach((prop) => { + prefixes.forEach((prefix) => { + isUnitlessNumber[prefixKey(prefix, prop)] = 0; + }); +}); +var jsxDomType = Symbol.for("jsx-dom:type"); +var JsxDomType = /* @__PURE__ */ function(JsxDomType2) { + JsxDomType2["ShadowRoot"] = "ShadowRoot"; + return JsxDomType2; +}(JsxDomType || {}); +function ShadowRoot(_ref) { + let { + children, + ref, + ...attr2 + } = _ref; + return { + [jsxDomType]: JsxDomType.ShadowRoot, + ref, + attr: attr2, + children + }; +} +function isShadowRoot(el) { + return el != null && el[jsxDomType] === JsxDomType.ShadowRoot; +} +var SVGNamespace = "http://www.w3.org/2000/svg"; +var XLinkNamespace = "http://www.w3.org/1999/xlink"; +var XMLNamespace = "http://www.w3.org/XML/1998/namespace"; +function isVisibleChild(value) { + return !isBoolean(value) && value != null; +} +function className(value) { + if (Array.isArray(value)) { + return value.map(className).filter(Boolean).join(" "); + } else if (isObject(value)) { + if (Symbol.iterator in value) { + return className(Array.from(value)); + } + return keys(value).filter((k) => value[k]).join(" "); + } else if (isVisibleChild(value)) { + return "" + value; + } else { + return ""; + } +} +var svg = { + animate: 0, + circle: 0, + clipPath: 0, + defs: 0, + desc: 0, + ellipse: 0, + feBlend: 0, + feColorMatrix: 0, + feComponentTransfer: 0, + feComposite: 0, + feConvolveMatrix: 0, + feDiffuseLighting: 0, + feDisplacementMap: 0, + feDistantLight: 0, + feFlood: 0, + feFuncA: 0, + feFuncB: 0, + feFuncG: 0, + feFuncR: 0, + feGaussianBlur: 0, + feImage: 0, + feMerge: 0, + feMergeNode: 0, + feMorphology: 0, + feOffset: 0, + fePointLight: 0, + feSpecularLighting: 0, + feSpotLight: 0, + feTile: 0, + feTurbulence: 0, + filter: 0, + foreignObject: 0, + g: 0, + image: 0, + line: 0, + linearGradient: 0, + marker: 0, + mask: 0, + metadata: 0, + path: 0, + pattern: 0, + polygon: 0, + polyline: 0, + radialGradient: 0, + rect: 0, + stop: 0, + svg: 0, + switch: 0, + symbol: 0, + text: 0, + textPath: 0, + tspan: 0, + use: 0, + view: 0 +}; +var nonPresentationSVGAttributes = /^(a(ll|t|u)|base[FP]|c(al|lipPathU|on)|di|ed|ex|filter[RU]|g(lyphR|r)|ke|l(en|im)|ma(rker[HUW]|s)|n|pat|pr|point[^e]|re[^n]|s[puy]|st[^or]|ta|textL|vi|xC|y|z)/; +function createFactory(tag) { + return createElement.bind(null, tag); +} +function Fragment(attr2) { + const fragment = document.createDocumentFragment(); + appendChild(attr2.children, fragment); + return fragment; +} +var Component = class { + static isComponent = true; + constructor(props) { + this.props = props; + } + render() { + return null; + } +}; +function initComponentClass(Class, attr2, children) { + attr2 = { + ...attr2, + children + }; + const instance = new Class(attr2); + const node = instance.render(); + if ("ref" in attr2) { + attachRef(attr2.ref, instance); + } + return node; +} +function jsx(tag, _ref) { + let { + children, + ...attr2 + } = _ref; + if (!attr2.namespaceURI && svg[tag] === 0) { + attr2 = { + ...attr2, + namespaceURI: SVGNamespace + }; + } + let node; + if (isString(tag)) { + node = attr2.namespaceURI ? document.createElementNS(attr2.namespaceURI, tag) : document.createElement(tag); + attributes(attr2, node); + appendChild(children, node); + if (node instanceof window.HTMLSelectElement && attr2.value != null) { + if (attr2.multiple === true && Array.isArray(attr2.value)) { + const values = attr2.value.map((value) => String(value)); + node.querySelectorAll("option").forEach((option) => option.selected = values.includes(option.value)); + } else { + node.value = attr2.value; + } + } + attachRef(attr2.ref, node); + } else if (isFunction(tag)) { + if (isObject(tag.defaultProps)) { + attr2 = { + ...tag.defaultProps, + ...attr2 + }; + } + node = isComponentClass(tag) ? initComponentClass(tag, attr2, children) : tag({ + ...attr2, + children + }); + } else { + throw new TypeError("Invalid JSX element type: ".concat(tag)); + } + return node; +} +function createElement(tag, attr2) { + for (var _len = arguments.length, children = new Array(_len > 2 ? _len - 2 : 0), _key2 = 2; _key2 < _len; _key2++) { + children[_key2 - 2] = arguments[_key2]; + } + if (isString(attr2) || Array.isArray(attr2)) { + children.unshift(attr2); + attr2 = {}; + } + attr2 = attr2 || {}; + if (attr2.children != null && !children.length) { + ({ + children, + ...attr2 + } = attr2); + } + return jsx(tag, { + ...attr2, + children + }, attr2.key); +} +function attachRef(ref, node) { + if (isRef(ref)) { + ref.current = node; + } else if (isFunction(ref)) { + ref(node); + } +} +function appendChild(child, node) { + if (isArrayLike(child)) { + appendChildren(child, node); + } else if (isString(child) || isNumber(child)) { + appendChildToNode(document.createTextNode(child), node); + } else if (child === null) { + appendChildToNode(document.createComment(""), node); + } else if (isElement(child)) { + appendChildToNode(child, node); + } else if (isShadowRoot(child)) { + const shadowRoot = node.attachShadow(child.attr); + appendChild(child.children, shadowRoot); + attachRef(child.ref, shadowRoot); + } +} +function appendChildren(children, node) { + for (var _i = 0, _arr = [...children]; _i < _arr.length; _i++) { + const child = _arr[_i]; + appendChild(child, node); + } + return node; +} +function appendChildToNode(child, node) { + if (node instanceof window.HTMLTemplateElement) { + node.content.appendChild(child); + } else { + node.appendChild(child); + } +} +function normalizeAttribute(s, separator) { + return s.replace(/[A-Z]/g, (match) => separator + match.toLowerCase()); +} +function style(node, value) { + if (value == null || value === false) ; + else if (Array.isArray(value)) { + value.forEach((v) => style(node, v)); + } else if (isString(value)) { + node.setAttribute("style", value); + } else if (isObject(value)) { + forEach(value, (val, key) => { + if (key.indexOf("-") === 0) { + node.style.setProperty(key, val); + } else if (isNumber(val) && isUnitlessNumber[key] !== 0) { + node.style[key] = val + "px"; + } else { + node.style[key] = val; + } + }); + } +} +function attribute(key, value, node) { + switch (key) { + case "xlinkActuate": + case "xlinkArcrole": + case "xlinkHref": + case "xlinkRole": + case "xlinkShow": + case "xlinkTitle": + case "xlinkType": + attrNS(node, XLinkNamespace, normalizeAttribute(key, ":"), value); + return; + case "xmlnsXlink": + attr(node, normalizeAttribute(key, ":"), value); + return; + case "xmlBase": + case "xmlLang": + case "xmlSpace": + attrNS(node, XMLNamespace, normalizeAttribute(key, ":"), value); + return; + } + switch (key) { + case "htmlFor": + attr(node, "for", value); + return; + case "dataset": + forEach(value, (dataValue, dataKey) => { + if (dataValue != null) { + node.dataset[dataKey] = dataValue; + } + }); + return; + case "innerHTML": + case "innerText": + case "textContent": + if (isVisibleChild(value)) { + node[key] = value; + } + return; + case "dangerouslySetInnerHTML": + if (isObject(value)) { + node.innerHTML = value["__html"]; + } + return; + case "value": + if (value == null || node instanceof window.HTMLSelectElement) { + return; + } else if (node instanceof window.HTMLTextAreaElement) { + node.value = value; + return; + } + break; + case "spellCheck": + node.spellcheck = value; + return; + case "class": + case "className": + if (isFunction(value)) { + value(node); + } else { + attr(node, "class", className(value)); + } + return; + case "ref": + case "namespaceURI": + return; + case "style": + style(node, value); + return; + case "on": + case "onCapture": + forEach(value, (eventHandler, eventName) => { + node.addEventListener(eventName, eventHandler, key === "onCapture"); + }); + return; + } + if (isFunction(value)) { + if (key[0] === "o" && key[1] === "n") { + let attribute2 = key.toLowerCase(); + const useCapture = attribute2.endsWith("capture"); + if (attribute2 === "ondoubleclick") { + attribute2 = "ondblclick"; + } else if (useCapture && attribute2 === "ondoubleclickcapture") { + attribute2 = "ondblclickcapture"; + } + if (!useCapture && node[attribute2] === null) { + node[attribute2] = value; + } else if (useCapture) { + node.addEventListener(attribute2.substring(2, attribute2.length - 7), value, true); + } else { + let eventName; + if (attribute2 in window) { + const standardEventName = attribute2.substring(2); + eventName = standardEventName; + } else { + const customEventName = attribute2[2] + key.slice(3); + eventName = customEventName; + } + node.addEventListener(eventName, value); + } + } + } else if (isObject(value)) { + node[key] = value; + } else if (value === true) { + attr(node, key, ""); + } else if (value !== false && value != null) { + if (node instanceof SVGElement && !nonPresentationSVGAttributes.test(key)) { + attr(node, normalizeAttribute(key, "-"), value); + } else { + attr(node, key, value); + } + } +} +function attr(node, key, value) { + node.setAttribute(key, value); +} +function attrNS(node, namespace, key, value) { + node.setAttributeNS(namespace, key, value); +} +function attributes(attr2, node) { + var _iterator3 = _createForOfIteratorHelper(keys(attr2)), _step3; + try { + for (_iterator3.s(); !(_step3 = _iterator3.n()).done; ) { + const key = _step3.value; + attribute(key, attr2[key], node); + } + } catch (err) { + _iterator3.e(err); + } finally { + _iterator3.f(); + } + return node; +} +function useText(initialValue) { + const text = new Text(); + Object.defineProperty(text, "toString", { + value() { + return this.textContent; + } + }); + function setText(value) { + text.textContent = value; + } + if (initialValue != null) { + setText(initialValue); + } + return [text, setText]; +} +function useClassList(initialValue) { + const div = document.createElement("div"); + if (initialValue != null) { + div.className = className(initialValue); + } + let list = div.classList; + function ClassList(value) { + value.setAttribute("class", list.value); + list = value.classList; + } + Object.defineProperties(ClassList, Object.getOwnPropertyDescriptors({ + get size() { + return list.length; + }, + get value() { + return list.value; + }, + add() { + list.add(...arguments); + }, + remove() { + list.remove(...arguments); + }, + toggle(token, force) { + list.toggle(token, force); + }, + contains(token) { + return list.contains(token); + } + })); + return ClassList; +} +function useMemo(factory) { + return factory(); +} +function forwardRef(render) { + return (_ref) => { + let { + ref, + ...props + } = _ref; + return render(props, ref !== null && ref !== void 0 ? ref : createRef()); + }; +} +function useImperativeHandle(ref, init) { + attachRef(ref, init()); +} +var cache = /* @__PURE__ */ new Map(); +var createStyledComponent = (name) => function(list) { + for (var _len = arguments.length, interpolations = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + interpolations[_key - 1] = arguments[_key]; + } + return (_ref) => { + let { + style: style2, + ...props + } = _ref; + const lastIndex = list.length - 1; + const css = list.slice(0, lastIndex).reduce((p, s, i) => { + const interpolation = interpolations[i]; + const current = typeof interpolation === "function" ? interpolation(props) : interpolation; + return p + s + current; + }, "") + list[lastIndex]; + return createElement(name, { + style: [css, style2], + ...props + }); + }; +}; +var baseStyled = (customComponent) => createStyledComponent(customComponent); +var styled = /* @__PURE__ */ new Proxy(baseStyled, { + get(_, name) { + return setIfAbsent(cache, name, () => createStyledComponent(name)); + } +}); +function setIfAbsent(map, key, getValue) { + if (map.has(key)) { + return map.get(key); + } else { + const value = getValue(key); + map.set(key, value); + return value; + } +} +function preventDefault(event) { + event.preventDefault(); + return event; +} +function stopPropagation(event) { + event.stopPropagation(); + return event; +} + +})(); + +/* */ + +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsibm9kZV9tb2R1bGVzLy5wbnBtL3Byb3h5LXBvbHlmaWxsQDAuMy4yL25vZGVfbW9kdWxlcy9wcm94eS1wb2x5ZmlsbC9wcm94eS5taW4uanMiLCAic3JjL0pTWC9KU1gudHMiLCAibm9kZV9tb2R1bGVzLy5wbnBtL2pzeC1kb21AOC4xLjYvbm9kZV9tb2R1bGVzL2pzeC1kb20vaW5kZXguanMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIihmdW5jdGlvbigpe2Z1bmN0aW9uIG4oKXtmdW5jdGlvbiB2KCl7cmV0dXJuIG51bGx9ZnVuY3Rpb24gbChhKXtyZXR1cm4gYT9cIm9iamVjdFwiPT09dHlwZW9mIGF8fFwiZnVuY3Rpb25cIj09PXR5cGVvZiBhOiExfWZ1bmN0aW9uIHAoYSl7aWYobnVsbCE9PWEmJiFsKGEpKXRocm93IG5ldyBUeXBlRXJyb3IoXCJPYmplY3QgcHJvdG90eXBlIG1heSBvbmx5IGJlIGFuIE9iamVjdCBvciBudWxsOiBcIithKTt9dmFyIHE9bnVsbCxlPU9iamVjdCx3PSEhZS5jcmVhdGV8fCEoe19fcHJvdG9fXzpudWxsfWluc3RhbmNlb2YgZSksQT1lLmNyZWF0ZXx8KHc/ZnVuY3Rpb24oYSl7cChhKTtyZXR1cm57X19wcm90b19fOmF9fTpmdW5jdGlvbihhKXtmdW5jdGlvbiBjKCl7fXAoYSk7aWYobnVsbD09PWEpdGhyb3cgbmV3IFN5bnRheEVycm9yKFwiTmF0aXZlIE9iamVjdC5jcmVhdGUgaXMgcmVxdWlyZWQgdG8gY3JlYXRlIG9iamVjdHMgd2l0aCBudWxsIHByb3RvdHlwZVwiKTtjLnByb3RvdHlwZT1hO3JldHVybiBuZXcgY30pLFxuQj1lLmdldFByb3RvdHlwZU9mfHwoW10uX19wcm90b19fPT09QXJyYXkucHJvdG90eXBlP2Z1bmN0aW9uKGEpe2E9YS5fX3Byb3RvX187cmV0dXJuIGwoYSk/YTpudWxsfTp2KTt2YXIgbT1mdW5jdGlvbihhLGMpe2Z1bmN0aW9uIGsoKXt9aWYodm9pZCAwPT09KHRoaXMmJnRoaXMgaW5zdGFuY2VvZiBtP3RoaXMuY29uc3RydWN0b3I6dm9pZCAwKSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ29uc3RydWN0b3IgUHJveHkgcmVxdWlyZXMgJ25ldydcIik7aWYoIWwoYSl8fCFsKGMpKXRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY3JlYXRlIHByb3h5IHdpdGggYSBub24tb2JqZWN0IGFzIHRhcmdldCBvciBoYW5kbGVyXCIpO3E9ZnVuY3Rpb24oKXthPW51bGw7az1mdW5jdGlvbihiKXt0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IHBlcmZvcm0gJ1wiK2IrXCInIG9uIGEgcHJveHkgdGhhdCBoYXMgYmVlbiByZXZva2VkXCIpO319O3NldFRpbWVvdXQoZnVuY3Rpb24oKXtxPW51bGx9LDApO3ZhciBnPVxuYztjPXtnZXQ6bnVsbCxzZXQ6bnVsbCxhcHBseTpudWxsLGNvbnN0cnVjdDpudWxsfTtmb3IodmFyIGggaW4gZyl7aWYoIShoIGluIGMpKXRocm93IG5ldyBUeXBlRXJyb3IoXCJQcm94eSBwb2x5ZmlsbCBkb2VzIG5vdCBzdXBwb3J0IHRyYXAgJ1wiK2grXCInXCIpO2NbaF09Z1toXX1cImZ1bmN0aW9uXCI9PT10eXBlb2YgZyYmKGMuYXBwbHk9Zy5hcHBseS5iaW5kKGcpKTtnPUIoYSk7dmFyIHI9ITEsdD0hMTtpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgYSl7dmFyIGY9ZnVuY3Rpb24oKXt2YXIgYj10aGlzJiZ0aGlzLmNvbnN0cnVjdG9yPT09ZixkPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7ayhiP1wiY29uc3RydWN0XCI6XCJhcHBseVwiKTtyZXR1cm4gYiYmYy5jb25zdHJ1Y3Q/Yy5jb25zdHJ1Y3QuY2FsbCh0aGlzLGEsZCk6IWImJmMuYXBwbHk/Yy5hcHBseShhLHRoaXMsZCk6Yj8oZC51bnNoaWZ0KGEpLG5ldyAoYS5iaW5kLmFwcGx5KGEsZCkpKTphLmFwcGx5KHRoaXMsXG5kKX07cj0hMH1lbHNlIGEgaW5zdGFuY2VvZiBBcnJheT8oZj1bXSx0PSEwKTpmPXd8fG51bGwhPT1nP0EoZyk6e307dmFyIHg9Yy5nZXQ/ZnVuY3Rpb24oYil7ayhcImdldFwiKTtyZXR1cm4gYy5nZXQodGhpcyxiLGYpfTpmdW5jdGlvbihiKXtrKFwiZ2V0XCIpO3JldHVybiB0aGlzW2JdfSxDPWMuc2V0P2Z1bmN0aW9uKGIsZCl7ayhcInNldFwiKTtjLnNldCh0aGlzLGIsZCxmKX06ZnVuY3Rpb24oYixkKXtrKFwic2V0XCIpO3RoaXNbYl09ZH0seT17fTtlLmdldE93blByb3BlcnR5TmFtZXMoYSkuZm9yRWFjaChmdW5jdGlvbihiKXtpZighKChyfHx0KSYmYiBpbiBmKSl7dmFyIGQ9ZS5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYSxiKTtlLmRlZmluZVByb3BlcnR5KGYsYix7ZW51bWVyYWJsZTohIWQuZW51bWVyYWJsZSxnZXQ6eC5iaW5kKGEsYiksc2V0OkMuYmluZChhLGIpfSk7eVtiXT0hMH19KTtoPSEwO2lmKHJ8fHQpe3ZhciBEPWUuc2V0UHJvdG90eXBlT2Z8fChbXS5fX3Byb3RvX189PT1cbkFycmF5LnByb3RvdHlwZT9mdW5jdGlvbihiLGQpe3AoZCk7Yi5fX3Byb3RvX189ZDtyZXR1cm4gYn06dik7ZyYmRChmLGcpfHwoaD0hMSl9aWYoYy5nZXR8fCFoKWZvcih2YXIgdSBpbiBhKXlbdV18fGUuZGVmaW5lUHJvcGVydHkoZix1LHtnZXQ6eC5iaW5kKGEsdSl9KTtlLnNlYWwoYSk7ZS5zZWFsKGYpO3JldHVybiBmfTttLnJldm9jYWJsZT1mdW5jdGlvbihhLGMpe3JldHVybntwcm94eTpuZXcgbShhLGMpLHJldm9rZTpxfX07cmV0dXJuIG19O3ZhciB6PVwidW5kZWZpbmVkXCIhPT10eXBlb2YgcHJvY2VzcyYmXCJbb2JqZWN0IHByb2Nlc3NdXCI9PT17fS50b1N0cmluZy5jYWxsKHByb2Nlc3MpfHxcInVuZGVmaW5lZFwiIT09dHlwZW9mIG5hdmlnYXRvciYmXCJSZWFjdE5hdGl2ZVwiPT09bmF2aWdhdG9yLnByb2R1Y3Q/Z2xvYmFsOnNlbGY7ei5Qcm94eXx8KHouUHJveHk9bigpLHouUHJveHkucmV2b2NhYmxlPXouUHJveHkucmV2b2NhYmxlKTt9KSgpO1xuIiwgIi8vIOWmguaenOS9v+eUqCBqc3gtZG9t77yM5YiZ5Y+W5raI5rOo6YeK5Lul5LiL6KGMIC8gVG8gVXNlIGpzeC1kb20sIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmVcbmV4cG9ydCAqIGZyb20gJ2pzeC1kb20nO1xuIiwgIi8qIGVzbGludC1kaXNhYmxlICovXG5jb25zdCBrZXlzID0gT2JqZWN0LmtleXM7XG5mdW5jdGlvbiBpZGVudGl0eSh2YWx1ZSkge1xuICByZXR1cm4gdmFsdWU7XG59XG5mdW5jdGlvbiBpc0Jvb2xlYW4odmFsKSB7XG4gIHJldHVybiB0eXBlb2YgdmFsID09PSBcImJvb2xlYW5cIjtcbn1cbmZ1bmN0aW9uIGlzRWxlbWVudCh2YWwpIHtcbiAgcmV0dXJuIHZhbCAmJiB0eXBlb2YgdmFsLm5vZGVUeXBlID09PSBcIm51bWJlclwiO1xufVxuZnVuY3Rpb24gaXNTdHJpbmcodmFsKSB7XG4gIHJldHVybiB0eXBlb2YgdmFsID09PSBcInN0cmluZ1wiO1xufVxuZnVuY3Rpb24gaXNOdW1iZXIodmFsKSB7XG4gIHJldHVybiB0eXBlb2YgdmFsID09PSBcIm51bWJlclwiO1xufVxuZnVuY3Rpb24gaXNPYmplY3QodmFsKSB7XG4gIHJldHVybiB0eXBlb2YgdmFsID09PSBcIm9iamVjdFwiID8gdmFsICE9PSBudWxsIDogaXNGdW5jdGlvbih2YWwpO1xufVxuZnVuY3Rpb24gaXNGdW5jdGlvbih2YWwpIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWwgPT09IFwiZnVuY3Rpb25cIjtcbn1cbmZ1bmN0aW9uIGlzQ29tcG9uZW50Q2xhc3MoQ29tcG9uZW50KSB7XG4gIHJldHVybiAhIShDb21wb25lbnQgJiYgQ29tcG9uZW50LmlzQ29tcG9uZW50KTtcbn1cbmZ1bmN0aW9uIGlzQXJyYXlMaWtlKG9iaikge1xuICByZXR1cm4gKFxuICAgIGlzT2JqZWN0KG9iaikgJiZcbiAgICB0eXBlb2Ygb2JqLmxlbmd0aCA9PT0gXCJudW1iZXJcIiAmJlxuICAgIHR5cGVvZiBvYmoubm9kZVR5cGUgIT09IFwibnVtYmVyXCJcbiAgKTtcbn1cbmZ1bmN0aW9uIGZvckVhY2godmFsdWUsIGZuKSB7XG4gIGlmICghdmFsdWUpIHJldHVybjtcbiAgZm9yIChjb25zdCBrZXkgb2Yga2V5cyh2YWx1ZSkpIHtcbiAgICBmbih2YWx1ZVtrZXldLCBrZXkpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVJlZigpIHtcbiAgcmV0dXJuIE9iamVjdC5zZWFsKHtcbiAgICBjdXJyZW50OiBudWxsLFxuICB9KTtcbn1cbmZ1bmN0aW9uIGlzUmVmKG1heWJlUmVmKSB7XG4gIHJldHVybiBpc09iamVjdChtYXliZVJlZikgJiYgXCJjdXJyZW50XCIgaW4gbWF5YmVSZWY7XG59XG5cbi8qKlxuICogQ29weXJpZ2h0IChjKSBGYWNlYm9vaywgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgb25cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9ibG9iL2I4N2FhYmRmZTFiNzQ2MWU3MzMxYWJiMzYwMWQ5ZTZiYjI3NTQ0YmMvTElDRU5TRVxuICovXG5cbi8qKlxuICogQ1NTIHByb3BlcnRpZXMgd2hpY2ggYWNjZXB0IG51bWJlcnMgYnV0IGFyZSBub3QgaW4gdW5pdHMgb2YgXCJweFwiLlxuICovXG5jb25zdCBpc1VuaXRsZXNzTnVtYmVyID0ge1xuICBhbmltYXRpb25JdGVyYXRpb25Db3VudDogMCxcbiAgYm9yZGVySW1hZ2VPdXRzZXQ6IDAsXG4gIGJvcmRlckltYWdlU2xpY2U6IDAsXG4gIGJvcmRlckltYWdlV2lkdGg6IDAsXG4gIGJveEZsZXg6IDAsXG4gIGJveEZsZXhHcm91cDogMCxcbiAgYm94T3JkaW5hbEdyb3VwOiAwLFxuICBjb2x1bW5Db3VudDogMCxcbiAgY29sdW1uczogMCxcbiAgZmxleDogMCxcbiAgZmxleEdyb3c6IDAsXG4gIGZsZXhQb3NpdGl2ZTogMCxcbiAgZmxleFNocmluazogMCxcbiAgZmxleE5lZ2F0aXZlOiAwLFxuICBmbGV4T3JkZXI6IDAsXG4gIGdyaWRBcmVhOiAwLFxuICBncmlkUm93OiAwLFxuICBncmlkUm93RW5kOiAwLFxuICBncmlkUm93U3BhbjogMCxcbiAgZ3JpZFJvd1N0YXJ0OiAwLFxuICBncmlkQ29sdW1uOiAwLFxuICBncmlkQ29sdW1uRW5kOiAwLFxuICBncmlkQ29sdW1uU3BhbjogMCxcbiAgZ3JpZENvbHVtblN0YXJ0OiAwLFxuICBmb250V2VpZ2h0OiAwLFxuICBsaW5lQ2xhbXA6IDAsXG4gIGxpbmVIZWlnaHQ6IDAsXG4gIG9wYWNpdHk6IDAsXG4gIG9yZGVyOiAwLFxuICBvcnBoYW5zOiAwLFxuICB0YWJTaXplOiAwLFxuICB3aWRvd3M6IDAsXG4gIHpJbmRleDogMCxcbiAgem9vbTogMCxcbiAgLy8gU1ZHLXJlbGF0ZWQgcHJvcGVydGllc1xuICBmaWxsT3BhY2l0eTogMCxcbiAgZmxvb2RPcGFjaXR5OiAwLFxuICBzdG9wT3BhY2l0eTogMCxcbiAgc3Ryb2tlRGFzaGFycmF5OiAwLFxuICBzdHJva2VEYXNob2Zmc2V0OiAwLFxuICBzdHJva2VNaXRlcmxpbWl0OiAwLFxuICBzdHJva2VPcGFjaXR5OiAwLFxuICBzdHJva2VXaWR0aDogMCxcbn07XG5cbi8qKlxuICogQHBhcmFtIHByZWZpeCB2ZW5kb3Itc3BlY2lmaWMgcHJlZml4LCBlZzogV2Via2l0XG4gKiBAcGFyYW0ga2V5IHN0eWxlIG5hbWUsIGVnOiB0cmFuc2l0aW9uRHVyYXRpb25cbiAqIEByZXR1cm4gc3R5bGUgbmFtZSBwcmVmaXhlZCB3aXRoIGBwcmVmaXhgLCBwcm9wZXJseSBjYW1lbENhc2VkLCBlZzpcbiAqIFdlYmtpdFRyYW5zaXRpb25EdXJhdGlvblxuICovXG5mdW5jdGlvbiBwcmVmaXhLZXkocHJlZml4LCBrZXkpIHtcbiAgcmV0dXJuIHByZWZpeCArIGtleS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIGtleS5zdWJzdHJpbmcoMSk7XG59XG5cbi8qKlxuICogU3VwcG9ydCBzdHlsZSBuYW1lcyB0aGF0IG1heSBjb21lIHBhc3NlZCBpbiBwcmVmaXhlZCBieSBhZGRpbmcgcGVybXV0YXRpb25zXG4gKiBvZiB2ZW5kb3IgcHJlZml4ZXMuXG4gKi9cbmNvbnN0IHByZWZpeGVzID0gW1wiV2Via2l0XCIsIFwibXNcIiwgXCJNb3pcIiwgXCJPXCJdO1xuLy8gVXNpbmcgT2JqZWN0LmtleXMgaGVyZSwgb3IgZWxzZSB0aGUgdmFuaWxsYSBmb3ItaW4gbG9vcCBtYWtlcyBJRTggZ28gaW50byBhblxuLy8gaW5maW5pdGUgbG9vcCwgYmVjYXVzZSBpdCBpdGVyYXRlcyBvdmVyIHRoZSBuZXdseSBhZGRlZCBwcm9wcyB0b28uXG5rZXlzKGlzVW5pdGxlc3NOdW1iZXIpLmZvckVhY2goKHByb3ApID0+IHtcbiAgcHJlZml4ZXMuZm9yRWFjaCgocHJlZml4KSA9PiB7XG4gICAgaXNVbml0bGVzc051bWJlcltwcmVmaXhLZXkocHJlZml4LCBwcm9wKV0gPSAwOyAvLyBpc1VuaXRsZXNzTnVtYmVyW3Byb3BdXG4gIH0pO1xufSk7XG5cbmNvbnN0IGpzeERvbVR5cGUgPSBTeW1ib2wuZm9yKFwianN4LWRvbTp0eXBlXCIpO1xudmFyIEpzeERvbVR5cGUgPSAvKiNfX1BVUkVfXyovIChmdW5jdGlvbiAoSnN4RG9tVHlwZSkge1xuICBKc3hEb21UeXBlW1wiU2hhZG93Um9vdFwiXSA9IFwiU2hhZG93Um9vdFwiO1xuICByZXR1cm4gSnN4RG9tVHlwZTtcbn0pKEpzeERvbVR5cGUgfHwge30pO1xuZnVuY3Rpb24gU2hhZG93Um9vdChfcmVmKSB7XG4gIGxldCB7IGNoaWxkcmVuLCByZWYsIC4uLmF0dHIgfSA9IF9yZWY7XG4gIHJldHVybiB7XG4gICAgW2pzeERvbVR5cGVdOiBKc3hEb21UeXBlLlNoYWRvd1Jvb3QsXG4gICAgcmVmLFxuICAgIGF0dHIsXG4gICAgY2hpbGRyZW4sXG4gIH07XG59XG5mdW5jdGlvbiBpc1NoYWRvd1Jvb3QoZWwpIHtcbiAgcmV0dXJuIGVsICE9IG51bGwgJiYgZWxbanN4RG9tVHlwZV0gPT09IEpzeERvbVR5cGUuU2hhZG93Um9vdDtcbn1cblxuY29uc3QgU1ZHTmFtZXNwYWNlID0gXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiO1xuY29uc3QgWExpbmtOYW1lc3BhY2UgPSBcImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIjtcbmNvbnN0IFhNTE5hbWVzcGFjZSA9IFwiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlXCI7XG5cbi8vIGh0dHBzOi8vZmFjZWJvb2suZ2l0aHViLmlvL3JlYWN0L2RvY3MvanN4LWluLWRlcHRoLmh0bWwjYm9vbGVhbnMtbnVsbC1hbmQtdW5kZWZpbmVkLWFyZS1pZ25vcmVkXG4vLyBFbXVsYXRlIEpTWCBFeHByZXNzaW9uIGxvZ2ljIHRvIGlnbm9yZSBjZXJ0YWluIHR5cGUgb2YgY2hpbGRyZW4gb3IgY2xhc3NOYW1lLlxuZnVuY3Rpb24gaXNWaXNpYmxlQ2hpbGQodmFsdWUpIHtcbiAgcmV0dXJuICFpc0Jvb2xlYW4odmFsdWUpICYmIHZhbHVlICE9IG51bGw7XG59XG5cbi8qKlxuICogQ29udmVydCBhIGB2YWx1ZWAgdG8gYSBjbGFzc05hbWUgc3RyaW5nLlxuICogYHZhbHVlYCBjYW4gYmUgYSBzdHJpbmcsIGFuIGFycmF5IG9yIGEgYERpY3Rpb25hcnk8Ym9vbGVhbj5gLlxuICovXG5mdW5jdGlvbiBjbGFzc05hbWUodmFsdWUpIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgcmV0dXJuIHZhbHVlLm1hcChjbGFzc05hbWUpLmZpbHRlcihCb29sZWFuKS5qb2luKFwiIFwiKTtcbiAgfSBlbHNlIGlmIChpc09iamVjdCh2YWx1ZSkpIHtcbiAgICBpZiAoU3ltYm9sLml0ZXJhdG9yIGluIHZhbHVlKSB7XG4gICAgICByZXR1cm4gY2xhc3NOYW1lKEFycmF5LmZyb20odmFsdWUpKTtcbiAgICB9XG4gICAgcmV0dXJuIGtleXModmFsdWUpXG4gICAgICAuZmlsdGVyKChrKSA9PiB2YWx1ZVtrXSlcbiAgICAgIC5qb2luKFwiIFwiKTtcbiAgfSBlbHNlIGlmIChpc1Zpc2libGVDaGlsZCh2YWx1ZSkpIHtcbiAgICByZXR1cm4gXCJcIiArIHZhbHVlO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBcIlwiO1xuICB9XG59XG5jb25zdCBzdmcgPSB7XG4gIGFuaW1hdGU6IDAsXG4gIGNpcmNsZTogMCxcbiAgY2xpcFBhdGg6IDAsXG4gIGRlZnM6IDAsXG4gIGRlc2M6IDAsXG4gIGVsbGlwc2U6IDAsXG4gIGZlQmxlbmQ6IDAsXG4gIGZlQ29sb3JNYXRyaXg6IDAsXG4gIGZlQ29tcG9uZW50VHJhbnNmZXI6IDAsXG4gIGZlQ29tcG9zaXRlOiAwLFxuICBmZUNvbnZvbHZlTWF0cml4OiAwLFxuICBmZURpZmZ1c2VMaWdodGluZzogMCxcbiAgZmVEaXNwbGFjZW1lbnRNYXA6IDAsXG4gIGZlRGlzdGFudExpZ2h0OiAwLFxuICBmZUZsb29kOiAwLFxuICBmZUZ1bmNBOiAwLFxuICBmZUZ1bmNCOiAwLFxuICBmZUZ1bmNHOiAwLFxuICBmZUZ1bmNSOiAwLFxuICBmZUdhdXNzaWFuQmx1cjogMCxcbiAgZmVJbWFnZTogMCxcbiAgZmVNZXJnZTogMCxcbiAgZmVNZXJnZU5vZGU6IDAsXG4gIGZlTW9ycGhvbG9neTogMCxcbiAgZmVPZmZzZXQ6IDAsXG4gIGZlUG9pbnRMaWdodDogMCxcbiAgZmVTcGVjdWxhckxpZ2h0aW5nOiAwLFxuICBmZVNwb3RMaWdodDogMCxcbiAgZmVUaWxlOiAwLFxuICBmZVR1cmJ1bGVuY2U6IDAsXG4gIGZpbHRlcjogMCxcbiAgZm9yZWlnbk9iamVjdDogMCxcbiAgZzogMCxcbiAgaW1hZ2U6IDAsXG4gIGxpbmU6IDAsXG4gIGxpbmVhckdyYWRpZW50OiAwLFxuICBtYXJrZXI6IDAsXG4gIG1hc2s6IDAsXG4gIG1ldGFkYXRhOiAwLFxuICBwYXRoOiAwLFxuICBwYXR0ZXJuOiAwLFxuICBwb2x5Z29uOiAwLFxuICBwb2x5bGluZTogMCxcbiAgcmFkaWFsR3JhZGllbnQ6IDAsXG4gIHJlY3Q6IDAsXG4gIHN0b3A6IDAsXG4gIHN2ZzogMCxcbiAgc3dpdGNoOiAwLFxuICBzeW1ib2w6IDAsXG4gIHRleHQ6IDAsXG4gIHRleHRQYXRoOiAwLFxuICB0c3BhbjogMCxcbiAgdXNlOiAwLFxuICB2aWV3OiAwLFxufTtcbmNvbnN0IG5vblByZXNlbnRhdGlvblNWR0F0dHJpYnV0ZXMgPVxuICAvXihhKGxsfHR8dSl8YmFzZVtGUF18YyhhbHxsaXBQYXRoVXxvbil8ZGl8ZWR8ZXh8ZmlsdGVyW1JVXXxnKGx5cGhSfHIpfGtlfGwoZW58aW0pfG1hKHJrZXJbSFVXXXxzKXxufHBhdHxwcnxwb2ludFteZV18cmVbXm5dfHNbcHV5XXxzdFteb3JdfHRhfHRleHRMfHZpfHhDfHl8eikvO1xuZnVuY3Rpb24gY3JlYXRlRmFjdG9yeSh0YWcpIHtcbiAgcmV0dXJuIGNyZWF0ZUVsZW1lbnQuYmluZChudWxsLCB0YWcpO1xufVxuZnVuY3Rpb24gRnJhZ21lbnQoYXR0cikge1xuICBjb25zdCBmcmFnbWVudCA9IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtcbiAgYXBwZW5kQ2hpbGQoYXR0ci5jaGlsZHJlbiwgZnJhZ21lbnQpO1xuICByZXR1cm4gZnJhZ21lbnQ7XG59XG5jbGFzcyBDb21wb25lbnQge1xuICBzdGF0aWMgaXNDb21wb25lbnQgPSB0cnVlO1xuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgIHRoaXMucHJvcHMgPSBwcm9wcztcbiAgfVxuICByZW5kZXIoKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cbmZ1bmN0aW9uIGluaXRDb21wb25lbnRDbGFzcyhDbGFzcywgYXR0ciwgY2hpbGRyZW4pIHtcbiAgYXR0ciA9IHtcbiAgICAuLi5hdHRyLFxuICAgIGNoaWxkcmVuLFxuICB9O1xuICBjb25zdCBpbnN0YW5jZSA9IG5ldyBDbGFzcyhhdHRyKTtcbiAgY29uc3Qgbm9kZSA9IGluc3RhbmNlLnJlbmRlcigpO1xuICBpZiAoXCJyZWZcIiBpbiBhdHRyKSB7XG4gICAgYXR0YWNoUmVmKGF0dHIucmVmLCBpbnN0YW5jZSk7XG4gIH1cbiAgcmV0dXJuIG5vZGU7XG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbmZ1bmN0aW9uIGpzeCh0YWcsIF9yZWYpIHtcbiAgbGV0IHsgY2hpbGRyZW4sIC4uLmF0dHIgfSA9IF9yZWY7XG4gIGlmICghYXR0ci5uYW1lc3BhY2VVUkkgJiYgc3ZnW3RhZ10gPT09IDApIHtcbiAgICBhdHRyID0ge1xuICAgICAgLi4uYXR0cixcbiAgICAgIG5hbWVzcGFjZVVSSTogU1ZHTmFtZXNwYWNlLFxuICAgIH07XG4gIH1cbiAgbGV0IG5vZGU7XG4gIGlmIChpc1N0cmluZyh0YWcpKSB7XG4gICAgbm9kZSA9IGF0dHIubmFtZXNwYWNlVVJJXG4gICAgICA/IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhhdHRyLm5hbWVzcGFjZVVSSSwgdGFnKVxuICAgICAgOiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRhZyk7XG4gICAgYXR0cmlidXRlcyhhdHRyLCBub2RlKTtcbiAgICBhcHBlbmRDaGlsZChjaGlsZHJlbiwgbm9kZSk7XG5cbiAgICAvLyBTZWxlY3QgYG9wdGlvbmAgZWxlbWVudHMgaW4gYHNlbGVjdGBcbiAgICBpZiAobm9kZSBpbnN0YW5jZW9mIHdpbmRvdy5IVE1MU2VsZWN0RWxlbWVudCAmJiBhdHRyLnZhbHVlICE9IG51bGwpIHtcbiAgICAgIGlmIChhdHRyLm11bHRpcGxlID09PSB0cnVlICYmIEFycmF5LmlzQXJyYXkoYXR0ci52YWx1ZSkpIHtcbiAgICAgICAgY29uc3QgdmFsdWVzID0gYXR0ci52YWx1ZS5tYXAoKHZhbHVlKSA9PiBTdHJpbmcodmFsdWUpKTtcbiAgICAgICAgbm9kZVxuICAgICAgICAgIC5xdWVyeVNlbGVjdG9yQWxsKFwib3B0aW9uXCIpXG4gICAgICAgICAgLmZvckVhY2goXG4gICAgICAgICAgICAob3B0aW9uKSA9PiAob3B0aW9uLnNlbGVjdGVkID0gdmFsdWVzLmluY2x1ZGVzKG9wdGlvbi52YWx1ZSkpLFxuICAgICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBub2RlLnZhbHVlID0gYXR0ci52YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgYXR0YWNoUmVmKGF0dHIucmVmLCBub2RlKTtcbiAgfSBlbHNlIGlmIChpc0Z1bmN0aW9uKHRhZykpIHtcbiAgICAvLyBDdXN0b20gZWxlbWVudHMuXG4gICAgaWYgKGlzT2JqZWN0KHRhZy5kZWZhdWx0UHJvcHMpKSB7XG4gICAgICBhdHRyID0ge1xuICAgICAgICAuLi50YWcuZGVmYXVsdFByb3BzLFxuICAgICAgICAuLi5hdHRyLFxuICAgICAgfTtcbiAgICB9XG4gICAgbm9kZSA9IGlzQ29tcG9uZW50Q2xhc3ModGFnKVxuICAgICAgPyBpbml0Q29tcG9uZW50Q2xhc3ModGFnLCBhdHRyLCBjaGlsZHJlbilcbiAgICAgIDogdGFnKHtcbiAgICAgICAgICAuLi5hdHRyLFxuICAgICAgICAgIGNoaWxkcmVuLFxuICAgICAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBJbnZhbGlkIEpTWCBlbGVtZW50IHR5cGU6ICR7dGFnfWApO1xuICB9XG4gIHJldHVybiBub2RlO1xufVxuZnVuY3Rpb24gY3JlYXRlRWxlbWVudCh0YWcsIGF0dHIpIHtcbiAgZm9yIChcbiAgICB2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsXG4gICAgICBjaGlsZHJlbiA9IG5ldyBBcnJheShfbGVuID4gMiA/IF9sZW4gLSAyIDogMCksXG4gICAgICBfa2V5MiA9IDI7XG4gICAgX2tleTIgPCBfbGVuO1xuICAgIF9rZXkyKytcbiAgKSB7XG4gICAgY2hpbGRyZW5bX2tleTIgLSAyXSA9IGFyZ3VtZW50c1tfa2V5Ml07XG4gIH1cbiAgaWYgKGlzU3RyaW5nKGF0dHIpIHx8IEFycmF5LmlzQXJyYXkoYXR0cikpIHtcbiAgICBjaGlsZHJlbi51bnNoaWZ0KGF0dHIpO1xuICAgIGF0dHIgPSB7fTtcbiAgfVxuICBhdHRyID0gYXR0ciB8fCB7fTtcbiAgaWYgKGF0dHIuY2hpbGRyZW4gIT0gbnVsbCAmJiAhY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgKHsgY2hpbGRyZW4sIC4uLmF0dHIgfSA9IGF0dHIpO1xuICB9XG4gIHJldHVybiBqc3goXG4gICAgdGFnLFxuICAgIHtcbiAgICAgIC4uLmF0dHIsXG4gICAgICBjaGlsZHJlbixcbiAgICB9LFxuICAgIGF0dHIua2V5LFxuICApO1xufVxuZnVuY3Rpb24gYXR0YWNoUmVmKHJlZiwgbm9kZSkge1xuICBpZiAoaXNSZWYocmVmKSkge1xuICAgIHJlZi5jdXJyZW50ID0gbm9kZTtcbiAgfSBlbHNlIGlmIChpc0Z1bmN0aW9uKHJlZikpIHtcbiAgICByZWYobm9kZSk7XG4gIH1cbn1cbmZ1bmN0aW9uIGFwcGVuZENoaWxkKGNoaWxkLCBub2RlKSB7XG4gIGlmIChpc0FycmF5TGlrZShjaGlsZCkpIHtcbiAgICBhcHBlbmRDaGlsZHJlbihjaGlsZCwgbm9kZSk7XG4gIH0gZWxzZSBpZiAoaXNTdHJpbmcoY2hpbGQpIHx8IGlzTnVtYmVyKGNoaWxkKSkge1xuICAgIGFwcGVuZENoaWxkVG9Ob2RlKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGNoaWxkKSwgbm9kZSk7XG4gIH0gZWxzZSBpZiAoY2hpbGQgPT09IG51bGwpIHtcbiAgICBhcHBlbmRDaGlsZFRvTm9kZShkb2N1bWVudC5jcmVhdGVDb21tZW50KFwiXCIpLCBub2RlKTtcbiAgfSBlbHNlIGlmIChpc0VsZW1lbnQoY2hpbGQpKSB7XG4gICAgYXBwZW5kQ2hpbGRUb05vZGUoY2hpbGQsIG5vZGUpO1xuICB9IGVsc2UgaWYgKGlzU2hhZG93Um9vdChjaGlsZCkpIHtcbiAgICBjb25zdCBzaGFkb3dSb290ID0gbm9kZS5hdHRhY2hTaGFkb3coY2hpbGQuYXR0cik7XG4gICAgYXBwZW5kQ2hpbGQoY2hpbGQuY2hpbGRyZW4sIHNoYWRvd1Jvb3QpO1xuICAgIGF0dGFjaFJlZihjaGlsZC5yZWYsIHNoYWRvd1Jvb3QpO1xuICB9XG59XG5mdW5jdGlvbiBhcHBlbmRDaGlsZHJlbihjaGlsZHJlbiwgbm9kZSkge1xuICBmb3IgKGNvbnN0IGNoaWxkIG9mIFsuLi5jaGlsZHJlbl0pIHtcbiAgICBhcHBlbmRDaGlsZChjaGlsZCwgbm9kZSk7XG4gIH1cbiAgcmV0dXJuIG5vZGU7XG59XG5mdW5jdGlvbiBhcHBlbmRDaGlsZFRvTm9kZShjaGlsZCwgbm9kZSkge1xuICBpZiAobm9kZSBpbnN0YW5jZW9mIHdpbmRvdy5IVE1MVGVtcGxhdGVFbGVtZW50KSB7XG4gICAgbm9kZS5jb250ZW50LmFwcGVuZENoaWxkKGNoaWxkKTtcbiAgfSBlbHNlIHtcbiAgICBub2RlLmFwcGVuZENoaWxkKGNoaWxkKTtcbiAgfVxufVxuZnVuY3Rpb24gbm9ybWFsaXplQXR0cmlidXRlKHMsIHNlcGFyYXRvcikge1xuICByZXR1cm4gcy5yZXBsYWNlKC9bQS1aXS9nLCAobWF0Y2gpID0+IHNlcGFyYXRvciArIG1hdGNoLnRvTG93ZXJDYXNlKCkpO1xufVxuZnVuY3Rpb24gc3R5bGUobm9kZSwgdmFsdWUpIHtcbiAgaWYgKHZhbHVlID09IG51bGwgfHwgdmFsdWUgPT09IGZhbHNlKTtcbiAgZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICB2YWx1ZS5mb3JFYWNoKCh2KSA9PiBzdHlsZShub2RlLCB2KSk7XG4gIH0gZWxzZSBpZiAoaXNTdHJpbmcodmFsdWUpKSB7XG4gICAgbm9kZS5zZXRBdHRyaWJ1dGUoXCJzdHlsZVwiLCB2YWx1ZSk7XG4gIH0gZWxzZSBpZiAoaXNPYmplY3QodmFsdWUpKSB7XG4gICAgZm9yRWFjaCh2YWx1ZSwgKHZhbCwga2V5KSA9PiB7XG4gICAgICBpZiAoa2V5LmluZGV4T2YoXCItXCIpID09PSAwKSB7XG4gICAgICAgIC8vIENTUyBjdXN0b20gcHJvcGVydGllcyAodmFyaWFibGVzKSBzdGFydCB3aXRoIGAtYCAoZS5nLiBgLS1teS12YXJpYWJsZWApXG4gICAgICAgIC8vIGFuZCBtdXN0IGJlIGFzc2lnbmVkIHZpYSBgc2V0UHJvcGVydHlgLlxuICAgICAgICBub2RlLnN0eWxlLnNldFByb3BlcnR5KGtleSwgdmFsKTtcbiAgICAgIH0gZWxzZSBpZiAoaXNOdW1iZXIodmFsKSAmJiBpc1VuaXRsZXNzTnVtYmVyW2tleV0gIT09IDApIHtcbiAgICAgICAgbm9kZS5zdHlsZVtrZXldID0gdmFsICsgXCJweFwiO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbm9kZS5zdHlsZVtrZXldID0gdmFsO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG5mdW5jdGlvbiBhdHRyaWJ1dGUoa2V5LCB2YWx1ZSwgbm9kZSkge1xuICBzd2l0Y2ggKGtleSkge1xuICAgIGNhc2UgXCJ4bGlua0FjdHVhdGVcIjpcbiAgICBjYXNlIFwieGxpbmtBcmNyb2xlXCI6XG4gICAgY2FzZSBcInhsaW5rSHJlZlwiOlxuICAgIGNhc2UgXCJ4bGlua1JvbGVcIjpcbiAgICBjYXNlIFwieGxpbmtTaG93XCI6XG4gICAgY2FzZSBcInhsaW5rVGl0bGVcIjpcbiAgICBjYXNlIFwieGxpbmtUeXBlXCI6XG4gICAgICBhdHRyTlMobm9kZSwgWExpbmtOYW1lc3BhY2UsIG5vcm1hbGl6ZUF0dHJpYnV0ZShrZXksIFwiOlwiKSwgdmFsdWUpO1xuICAgICAgcmV0dXJuO1xuICAgIGNhc2UgXCJ4bWxuc1hsaW5rXCI6XG4gICAgICBhdHRyKG5vZGUsIG5vcm1hbGl6ZUF0dHJpYnV0ZShrZXksIFwiOlwiKSwgdmFsdWUpO1xuICAgICAgcmV0dXJuO1xuICAgIGNhc2UgXCJ4bWxCYXNlXCI6XG4gICAgY2FzZSBcInhtbExhbmdcIjpcbiAgICBjYXNlIFwieG1sU3BhY2VcIjpcbiAgICAgIGF0dHJOUyhub2RlLCBYTUxOYW1lc3BhY2UsIG5vcm1hbGl6ZUF0dHJpYnV0ZShrZXksIFwiOlwiKSwgdmFsdWUpO1xuICAgICAgcmV0dXJuO1xuICB9XG4gIHN3aXRjaCAoa2V5KSB7XG4gICAgY2FzZSBcImh0bWxGb3JcIjpcbiAgICAgIGF0dHIobm9kZSwgXCJmb3JcIiwgdmFsdWUpO1xuICAgICAgcmV0dXJuO1xuICAgIGNhc2UgXCJkYXRhc2V0XCI6XG4gICAgICBmb3JFYWNoKHZhbHVlLCAoZGF0YVZhbHVlLCBkYXRhS2V5KSA9PiB7XG4gICAgICAgIGlmIChkYXRhVmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAgIG5vZGUuZGF0YXNldFtkYXRhS2V5XSA9IGRhdGFWYWx1ZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgY2FzZSBcImlubmVySFRNTFwiOlxuICAgIGNhc2UgXCJpbm5lclRleHRcIjpcbiAgICBjYXNlIFwidGV4dENvbnRlbnRcIjpcbiAgICAgIGlmIChpc1Zpc2libGVDaGlsZCh2YWx1ZSkpIHtcbiAgICAgICAgbm9kZVtrZXldID0gdmFsdWU7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgY2FzZSBcImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MXCI6XG4gICAgICBpZiAoaXNPYmplY3QodmFsdWUpKSB7XG4gICAgICAgIG5vZGUuaW5uZXJIVE1MID0gdmFsdWVbXCJfX2h0bWxcIl07XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgY2FzZSBcInZhbHVlXCI6XG4gICAgICBpZiAodmFsdWUgPT0gbnVsbCB8fCBub2RlIGluc3RhbmNlb2Ygd2luZG93LkhUTUxTZWxlY3RFbGVtZW50KSB7XG4gICAgICAgIC8vIHNraXAgbnVsbGlzaCB2YWx1ZXNcbiAgICAgICAgLy8gZm9yIGA8c2VsZWN0PmAgYXBwbHkgdmFsdWUgYWZ0ZXIgYXBwZW5kaW5nIGA8b3B0aW9uPmAgZWxlbWVudHNcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfSBlbHNlIGlmIChub2RlIGluc3RhbmNlb2Ygd2luZG93LkhUTUxUZXh0QXJlYUVsZW1lbnQpIHtcbiAgICAgICAgbm9kZS52YWx1ZSA9IHZhbHVlO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICAvLyB1c2UgYXR0cmlidXRlIGZvciBvdGhlciBlbGVtZW50c1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBcInNwZWxsQ2hlY2tcIjpcbiAgICAgIG5vZGUuc3BlbGxjaGVjayA9IHZhbHVlO1xuICAgICAgcmV0dXJuO1xuICAgIGNhc2UgXCJjbGFzc1wiOlxuICAgIGNhc2UgXCJjbGFzc05hbWVcIjpcbiAgICAgIGlmIChpc0Z1bmN0aW9uKHZhbHVlKSkge1xuICAgICAgICB2YWx1ZShub2RlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGF0dHIobm9kZSwgXCJjbGFzc1wiLCBjbGFzc05hbWUodmFsdWUpKTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICBjYXNlIFwicmVmXCI6XG4gICAgY2FzZSBcIm5hbWVzcGFjZVVSSVwiOlxuICAgICAgcmV0dXJuO1xuICAgIGNhc2UgXCJzdHlsZVwiOlxuICAgICAgc3R5bGUobm9kZSwgdmFsdWUpO1xuICAgICAgcmV0dXJuO1xuICAgIGNhc2UgXCJvblwiOlxuICAgIGNhc2UgXCJvbkNhcHR1cmVcIjpcbiAgICAgIGZvckVhY2godmFsdWUsIChldmVudEhhbmRsZXIsIGV2ZW50TmFtZSkgPT4ge1xuICAgICAgICBub2RlLmFkZEV2ZW50TGlzdGVuZXIoZXZlbnROYW1lLCBldmVudEhhbmRsZXIsIGtleSA9PT0gXCJvbkNhcHR1cmVcIik7XG4gICAgICB9KTtcbiAgICAgIHJldHVybjtcbiAgICAvLyBmYWxsdGhyb3VnaFxuICB9XG4gIGlmIChpc0Z1bmN0aW9uKHZhbHVlKSkge1xuICAgIGlmIChrZXlbMF0gPT09IFwib1wiICYmIGtleVsxXSA9PT0gXCJuXCIpIHtcbiAgICAgIGxldCBhdHRyaWJ1dGUgPSBrZXkudG9Mb3dlckNhc2UoKTtcbiAgICAgIGNvbnN0IHVzZUNhcHR1cmUgPSBhdHRyaWJ1dGUuZW5kc1dpdGgoXCJjYXB0dXJlXCIpO1xuICAgICAgaWYgKGF0dHJpYnV0ZSA9PT0gXCJvbmRvdWJsZWNsaWNrXCIpIHtcbiAgICAgICAgYXR0cmlidXRlID0gXCJvbmRibGNsaWNrXCI7XG4gICAgICB9IGVsc2UgaWYgKHVzZUNhcHR1cmUgJiYgYXR0cmlidXRlID09PSBcIm9uZG91YmxlY2xpY2tjYXB0dXJlXCIpIHtcbiAgICAgICAgYXR0cmlidXRlID0gXCJvbmRibGNsaWNrY2FwdHVyZVwiO1xuICAgICAgfVxuICAgICAgaWYgKCF1c2VDYXB0dXJlICYmIG5vZGVbYXR0cmlidXRlXSA9PT0gbnVsbCkge1xuICAgICAgICAvLyB1c2UgcHJvcGVydHkgd2hlbiBwb3NzaWJsZSBQUiAjMTdcbiAgICAgICAgbm9kZVthdHRyaWJ1dGVdID0gdmFsdWU7XG4gICAgICB9IGVsc2UgaWYgKHVzZUNhcHR1cmUpIHtcbiAgICAgICAgbm9kZS5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgICAgIGF0dHJpYnV0ZS5zdWJzdHJpbmcoMiwgYXR0cmlidXRlLmxlbmd0aCAtIDcpLFxuICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgIHRydWUsXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsZXQgZXZlbnROYW1lO1xuICAgICAgICBpZiAoYXR0cmlidXRlIGluIHdpbmRvdykge1xuICAgICAgICAgIC8vIHN0YW5kYXJkIGV2ZW50XG4gICAgICAgICAgLy8gdGhlIEpTWCBhdHRyaWJ1dGUgY291bGQgaGF2ZSBiZWVuIFwib25Nb3VzZU92ZXJcIiBhbmQgdGhlXG4gICAgICAgICAgLy8gbWVtYmVyIG5hbWUgXCJvbm1vdXNlb3ZlclwiIGlzIG9uIHRoZSB3aW5kb3cncyBwcm90b3R5cGVcbiAgICAgICAgICAvLyBzbyBsZXQncyBhZGQgdGhlIGxpc3RlbmVyIFwibW91c2VvdmVyXCIsIHdoaWNoIGlzIGFsbCBsb3dlcmNhc2VkXG4gICAgICAgICAgY29uc3Qgc3RhbmRhcmRFdmVudE5hbWUgPSBhdHRyaWJ1dGUuc3Vic3RyaW5nKDIpO1xuICAgICAgICAgIGV2ZW50TmFtZSA9IHN0YW5kYXJkRXZlbnROYW1lO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIGN1c3RvbSBldmVudFxuICAgICAgICAgIC8vIHRoZSBKU1ggYXR0cmlidXRlIGNvdWxkIGhhdmUgYmVlbiBcIm9uTXlDdXN0b21FdmVudFwiXG4gICAgICAgICAgLy8gc28gbGV0J3MgdHJpbSBvZmYgdGhlIFwib25cIiBwcmVmaXggYW5kIGxvd2VyY2FzZSB0aGUgZmlyc3QgY2hhcmFjdGVyXG4gICAgICAgICAgLy8gYW5kIGFkZCB0aGUgbGlzdGVuZXIgXCJteUN1c3RvbUV2ZW50XCJcbiAgICAgICAgICAvLyBleGNlcHQgZm9yIHRoZSBmaXJzdCBjaGFyYWN0ZXIsIHdlIGtlZXAgdGhlIGV2ZW50IG5hbWUgY2FzZVxuICAgICAgICAgIGNvbnN0IGN1c3RvbUV2ZW50TmFtZSA9IGF0dHJpYnV0ZVsyXSArIGtleS5zbGljZSgzKTtcbiAgICAgICAgICBldmVudE5hbWUgPSBjdXN0b21FdmVudE5hbWU7XG4gICAgICAgIH1cbiAgICAgICAgbm9kZS5hZGRFdmVudExpc3RlbmVyKGV2ZW50TmFtZSwgdmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgfSBlbHNlIGlmIChpc09iamVjdCh2YWx1ZSkpIHtcbiAgICBub2RlW2tleV0gPSB2YWx1ZTtcbiAgfSBlbHNlIGlmICh2YWx1ZSA9PT0gdHJ1ZSkge1xuICAgIGF0dHIobm9kZSwga2V5LCBcIlwiKTtcbiAgfSBlbHNlIGlmICh2YWx1ZSAhPT0gZmFsc2UgJiYgdmFsdWUgIT0gbnVsbCkge1xuICAgIGlmIChub2RlIGluc3RhbmNlb2YgU1ZHRWxlbWVudCAmJiAhbm9uUHJlc2VudGF0aW9uU1ZHQXR0cmlidXRlcy50ZXN0KGtleSkpIHtcbiAgICAgIGF0dHIobm9kZSwgbm9ybWFsaXplQXR0cmlidXRlKGtleSwgXCItXCIpLCB2YWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGF0dHIobm9kZSwga2V5LCB2YWx1ZSk7XG4gICAgfVxuICB9XG59XG5mdW5jdGlvbiBhdHRyKG5vZGUsIGtleSwgdmFsdWUpIHtcbiAgbm9kZS5zZXRBdHRyaWJ1dGUoa2V5LCB2YWx1ZSk7XG59XG5mdW5jdGlvbiBhdHRyTlMobm9kZSwgbmFtZXNwYWNlLCBrZXksIHZhbHVlKSB7XG4gIG5vZGUuc2V0QXR0cmlidXRlTlMobmFtZXNwYWNlLCBrZXksIHZhbHVlKTtcbn1cbmZ1bmN0aW9uIGF0dHJpYnV0ZXMoYXR0ciwgbm9kZSkge1xuICBmb3IgKGNvbnN0IGtleSBvZiBrZXlzKGF0dHIpKSB7XG4gICAgYXR0cmlidXRlKGtleSwgYXR0cltrZXldLCBub2RlKTtcbiAgfVxuICByZXR1cm4gbm9kZTtcbn1cblxuZnVuY3Rpb24gdXNlVGV4dChpbml0aWFsVmFsdWUpIHtcbiAgY29uc3QgdGV4dCA9IG5ldyBUZXh0KCk7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0ZXh0LCBcInRvU3RyaW5nXCIsIHtcbiAgICB2YWx1ZSgpIHtcbiAgICAgIHJldHVybiB0aGlzLnRleHRDb250ZW50O1xuICAgIH0sXG4gIH0pO1xuICBmdW5jdGlvbiBzZXRUZXh0KHZhbHVlKSB7XG4gICAgdGV4dC50ZXh0Q29udGVudCA9IHZhbHVlO1xuICB9XG4gIGlmIChpbml0aWFsVmFsdWUgIT0gbnVsbCkge1xuICAgIHNldFRleHQoaW5pdGlhbFZhbHVlKTtcbiAgfVxuICByZXR1cm4gW3RleHQsIHNldFRleHRdO1xufVxuZnVuY3Rpb24gdXNlQ2xhc3NMaXN0KGluaXRpYWxWYWx1ZSkge1xuICBjb25zdCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xuICBpZiAoaW5pdGlhbFZhbHVlICE9IG51bGwpIHtcbiAgICBkaXYuY2xhc3NOYW1lID0gY2xhc3NOYW1lKGluaXRpYWxWYWx1ZSk7XG4gIH1cbiAgbGV0IGxpc3QgPSBkaXYuY2xhc3NMaXN0O1xuICBmdW5jdGlvbiBDbGFzc0xpc3QodmFsdWUpIHtcbiAgICB2YWx1ZS5zZXRBdHRyaWJ1dGUoXCJjbGFzc1wiLCBsaXN0LnZhbHVlKTtcbiAgICBsaXN0ID0gdmFsdWUuY2xhc3NMaXN0O1xuICB9XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKFxuICAgIENsYXNzTGlzdCxcbiAgICBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyh7XG4gICAgICBnZXQgc2l6ZSgpIHtcbiAgICAgICAgcmV0dXJuIGxpc3QubGVuZ3RoO1xuICAgICAgfSxcbiAgICAgIGdldCB2YWx1ZSgpIHtcbiAgICAgICAgcmV0dXJuIGxpc3QudmFsdWU7XG4gICAgICB9LFxuICAgICAgYWRkKCkge1xuICAgICAgICBsaXN0LmFkZCguLi5hcmd1bWVudHMpO1xuICAgICAgfSxcbiAgICAgIHJlbW92ZSgpIHtcbiAgICAgICAgbGlzdC5yZW1vdmUoLi4uYXJndW1lbnRzKTtcbiAgICAgIH0sXG4gICAgICB0b2dnbGUodG9rZW4sIGZvcmNlKSB7XG4gICAgICAgIGxpc3QudG9nZ2xlKHRva2VuLCBmb3JjZSk7XG4gICAgICB9LFxuICAgICAgY29udGFpbnModG9rZW4pIHtcbiAgICAgICAgcmV0dXJuIGxpc3QuY29udGFpbnModG9rZW4pO1xuICAgICAgfSxcbiAgICB9KSxcbiAgKTtcbiAgcmV0dXJuIENsYXNzTGlzdDtcbn1cblxuZnVuY3Rpb24gdXNlTWVtbyhmYWN0b3J5KSB7XG4gIHJldHVybiBmYWN0b3J5KCk7XG59XG5mdW5jdGlvbiBmb3J3YXJkUmVmKHJlbmRlcikge1xuICByZXR1cm4gKF9yZWYpID0+IHtcbiAgICBsZXQgeyByZWYsIC4uLnByb3BzIH0gPSBfcmVmO1xuICAgIHJldHVybiByZW5kZXIocHJvcHMsIHJlZiA/PyBjcmVhdGVSZWYoKSk7XG4gIH07XG59XG5mdW5jdGlvbiB1c2VJbXBlcmF0aXZlSGFuZGxlKHJlZiwgaW5pdCkge1xuICBhdHRhY2hSZWYocmVmLCBpbml0KCkpO1xufVxuXG5jb25zdCBjYWNoZSA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7XG5jb25zdCBjcmVhdGVTdHlsZWRDb21wb25lbnQgPSAobmFtZSkgPT5cbiAgZnVuY3Rpb24gKGxpc3QpIHtcbiAgICBmb3IgKFxuICAgICAgdmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLFxuICAgICAgICBpbnRlcnBvbGF0aW9ucyA9IG5ldyBBcnJheShfbGVuID4gMSA/IF9sZW4gLSAxIDogMCksXG4gICAgICAgIF9rZXkgPSAxO1xuICAgICAgX2tleSA8IF9sZW47XG4gICAgICBfa2V5KytcbiAgICApIHtcbiAgICAgIGludGVycG9sYXRpb25zW19rZXkgLSAxXSA9IGFyZ3VtZW50c1tfa2V5XTtcbiAgICB9XG4gICAgcmV0dXJuIChfcmVmKSA9PiB7XG4gICAgICBsZXQgeyBzdHlsZSwgLi4ucHJvcHMgfSA9IF9yZWY7XG4gICAgICBjb25zdCBsYXN0SW5kZXggPSBsaXN0Lmxlbmd0aCAtIDE7XG4gICAgICBjb25zdCBjc3MgPVxuICAgICAgICBsaXN0LnNsaWNlKDAsIGxhc3RJbmRleCkucmVkdWNlKChwLCBzLCBpKSA9PiB7XG4gICAgICAgICAgY29uc3QgaW50ZXJwb2xhdGlvbiA9IGludGVycG9sYXRpb25zW2ldO1xuICAgICAgICAgIGNvbnN0IGN1cnJlbnQgPVxuICAgICAgICAgICAgdHlwZW9mIGludGVycG9sYXRpb24gPT09IFwiZnVuY3Rpb25cIlxuICAgICAgICAgICAgICA/IGludGVycG9sYXRpb24ocHJvcHMpXG4gICAgICAgICAgICAgIDogaW50ZXJwb2xhdGlvbjtcbiAgICAgICAgICByZXR1cm4gcCArIHMgKyBjdXJyZW50O1xuICAgICAgICB9LCBcIlwiKSArIGxpc3RbbGFzdEluZGV4XTtcbiAgICAgIHJldHVybiBjcmVhdGVFbGVtZW50KG5hbWUsIHtcbiAgICAgICAgc3R5bGU6IFtjc3MsIHN0eWxlXSxcbiAgICAgICAgLi4ucHJvcHMsXG4gICAgICB9KTtcbiAgICB9O1xuICB9O1xuY29uc3QgYmFzZVN0eWxlZCA9IChjdXN0b21Db21wb25lbnQpID0+IGNyZWF0ZVN0eWxlZENvbXBvbmVudChjdXN0b21Db21wb25lbnQpO1xuY29uc3Qgc3R5bGVkID0gLyogQF9fUFVSRV9fICovIG5ldyBQcm94eShiYXNlU3R5bGVkLCB7XG4gIGdldChfLCBuYW1lKSB7XG4gICAgcmV0dXJuIHNldElmQWJzZW50KGNhY2hlLCBuYW1lLCAoKSA9PiBjcmVhdGVTdHlsZWRDb21wb25lbnQobmFtZSkpO1xuICB9LFxufSk7XG5mdW5jdGlvbiBzZXRJZkFic2VudChtYXAsIGtleSwgZ2V0VmFsdWUpIHtcbiAgaWYgKG1hcC5oYXMoa2V5KSkge1xuICAgIHJldHVybiBtYXAuZ2V0KGtleSk7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgdmFsdWUgPSBnZXRWYWx1ZShrZXkpO1xuICAgIG1hcC5zZXQoa2V5LCB2YWx1ZSk7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG59XG5cbnZhciBpbmRleCA9IHtcbiAgQ29tcG9uZW50LFxuICBQdXJlQ29tcG9uZW50OiBDb21wb25lbnQsXG4gIGNyZWF0ZUVsZW1lbnQsXG4gIEZyYWdtZW50LFxuICBTaGFkb3dSb290LFxufTtcbmZ1bmN0aW9uIHByZXZlbnREZWZhdWx0KGV2ZW50KSB7XG4gIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gIHJldHVybiBldmVudDtcbn1cbmZ1bmN0aW9uIHN0b3BQcm9wYWdhdGlvbihldmVudCkge1xuICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgcmV0dXJuIGV2ZW50O1xufVxuXG5leHBvcnQge1xuICBDb21wb25lbnQsXG4gIEZyYWdtZW50LFxuICBDb21wb25lbnQgYXMgUHVyZUNvbXBvbmVudCxcbiAgU1ZHTmFtZXNwYWNlLFxuICBTaGFkb3dSb290LFxuICBGcmFnbWVudCBhcyBTdHJpY3RNb2RlLFxuICBjbGFzc05hbWUsXG4gIGNyZWF0ZUVsZW1lbnQsXG4gIGNyZWF0ZUZhY3RvcnksXG4gIGNyZWF0ZVJlZixcbiAgaW5kZXggYXMgZGVmYXVsdCxcbiAgZm9yd2FyZFJlZixcbiAgY3JlYXRlRWxlbWVudCBhcyBoLFxuICBpc1JlZixcbiAganN4LFxuICBqc3ggYXMganN4cyxcbiAgaWRlbnRpdHkgYXMgbWVtbyxcbiAgcHJldmVudERlZmF1bHQsXG4gIHN0b3BQcm9wYWdhdGlvbixcbiAgc3R5bGVkLFxuICBpZGVudGl0eSBhcyB1c2VDYWxsYmFjayxcbiAgdXNlQ2xhc3NMaXN0LFxuICB1c2VJbXBlcmF0aXZlSGFuZGxlLFxuICB1c2VNZW1vLFxuICBjcmVhdGVSZWYgYXMgdXNlUmVmLFxuICB1c2VUZXh0LFxufTtcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBLEtBQUMsV0FBVTtBQUFDLGVBQVMsSUFBRztBQUFDLGlCQUFTLElBQUc7QUFBQyxpQkFBTztBQUFBLFFBQUk7QUFBQyxpQkFBUyxFQUFFLEdBQUU7QUFBQyxpQkFBTyxJQUFFLGFBQVcsT0FBTyxLQUFHLGVBQWEsT0FBTyxJQUFFO0FBQUEsUUFBRTtBQUFDLGlCQUFTLEVBQUUsR0FBRTtBQUFDLGNBQUcsU0FBTyxLQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTSxJQUFJLFVBQVUscURBQW1ELENBQUM7QUFBQSxRQUFFO0FBQUMsWUFBSSxJQUFFLE1BQUssSUFBRSxRQUFPLElBQUUsQ0FBQyxDQUFDLEVBQUUsVUFBUSxFQUFFLEVBQUMsV0FBVSxLQUFJLGFBQVksSUFBRyxJQUFFLEVBQUUsV0FBUyxJQUFFLFNBQVMsR0FBRTtBQUFDLFlBQUUsQ0FBQztBQUFFLGlCQUFNLEVBQUMsV0FBVSxFQUFDO0FBQUEsUUFBQyxJQUFFLFNBQVMsR0FBRTtBQUFDLG1CQUFTLElBQUc7QUFBQSxVQUFDO0FBQUMsWUFBRSxDQUFDO0FBQUUsY0FBRyxTQUFPLEVBQUUsT0FBTSxJQUFJLFlBQVksd0VBQXdFO0FBQUUsWUFBRSxZQUFVO0FBQUUsaUJBQU8sSUFBSTtBQUFB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QUFDO0VBQ0g7QUFDRjtBQUNGLElBQU11RyxhQUFjQyxxQkFBb0JaLHNCQUFzQlksZUFBZTtBQUM3RSxJQUFNelIsU0FBeUIsb0JBQUkwUixNQUFNRixZQUFZO0VBQ25ERyxJQUFJQyxHQUFHZCxNQUFNO0FBQ1gsV0FBT2UsWUFBWWxCLE9BQU9HLE1BQU0sTUFBTUQsc0JBQXNCQyxJQUFJLENBQUM7RUFDbkU7QUFDRixDQUFDO0FBQ0QsU0FBU2UsWUFBWWhMLEtBQUsxRSxLQUFLMlAsVUFBVTtBQUN2QyxNQUFJakwsSUFBSWtMLElBQUk1UCxHQUFHLEdBQUc7QUFDaEIsV0FBTzBFLElBQUk4SyxJQUFJeFAsR0FBRztFQUNwQixPQUFPO0FBQ0wsVUFBTXZCLFFBQVFrUixTQUFTM1AsR0FBRztBQUMxQjBFLFFBQUltTCxJQUFJN1AsS0FBS3ZCLEtBQUs7QUFDbEIsV0FBT0E7RUFDVDtBQUNGO0FBU0EsU0FBU2QsZUFBZW1TLE9BQU87QUFDN0JBLFFBQU1uUyxlQUFlO0FBQ3JCLFNBQU9tUztBQUNUO0FBQ0EsU0FBU2xTLGdCQUFnQmtTLE9BQU87QUFDOUJBLFFBQU1sUyxnQkFBZ0I7QUFDdEIsU0FBT2tTO0FBQ1Q7IiwKICAibmFtZXMiOiBbIkpTWF9leHBvcnRzIiwgIl9fZXhwb3J0IiwgIkNvbXBvbmVudCIsICJGcmFnbWVudCIsICJQdXJlQ29tcG9uZW50IiwgIlNWR05hbWVzcGFjZSIsICJTaGFkb3dSb290IiwgIlN0cmljdE1vZGUiLCAiY2xhc3NOYW1lIiwgImNyZWF0ZUVsZW1lbnQiLCAiY3JlYXRlRmFjdG9yeSIsICJjcmVhdGVSZWYiLCAiZm9yd2FyZFJlZiIsICJoIiwgImlzUmVmIiwgImpzeCIsICJqc3hzIiwgIm1lbW8iLCAiaWRlbnRpdHkiLCAicHJldmVudERlZmF1bHQiLCAic3RvcFByb3BhZ2F0aW9uIiwgInN0eWxlZCIsICJ1c2VDYWxsYmFjayIsICJ1c2VDbGFzc0xpc3QiLCAidXNlSW1wZXJhdGl2ZUhhbmRsZSIsICJ1c2VNZW1vIiwgInVzZVJlZiIsICJ1c2VUZXh0IiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIl9fdG9Db21tb25KUyIsICJrZXlzIiwgIk9iamVjdCIsICJ2YWx1ZSIsICJpc0Jvb2xlYW4iLCAidmFsIiwgImlzRWxlbWVudCIsICJub2RlVHlwZSIsICJpc1N0cmluZyIsICJpc051bWJlciIsICJpc09iamVjdCIsICJpc0Z1bmN0aW9uIiwgImlzQ29tcG9uZW50Q2xhc3MiLCAiQ29tcG9uZW50MiIsICJpc0NvbXBvbmVudCIsICJpc0FycmF5TGlrZSIsICJvYmoiLCAibGVuZ3RoIiwgImZvckVhY2giLCAiZm4iLCAiX2l0ZXJhdG9yMiIsICJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsICJfc3RlcDIiLCAicyIsICJuIiwgImRvbmUiLCAia2V5IiwgImVyciIsICJlIiwgImYiLCAic2VhbCIsICJjdXJyZW50IiwgIm1heWJlUmVmIiwgImlzVW5pdGxlc3NOdW1iZXIiLCAiYW5pbWF0aW9uSXRlcmF0aW9uQ291bnQiLCAiYm9yZGVySW1hZ2VPdXRzZXQiLCAiYm9yZGVySW1hZ2VTbGljZSIsICJib3JkZXJJbWFnZVdpZHRoIiwgImJveEZsZXgiLCAiYm94RmxleEdyb3VwIiwgImJveE9yZGluYWxHcm91cCIsICJjb2x1bW5Db3VudCIsICJjb2x1bW5zIiwgImZsZXgiLCAiZmxleEdyb3ciLCAiZmxleFBvc2l0aXZlIiwgImZsZXhTaHJpbmsiLCAiZmxleE5lZ2F0aXZlIiwgImZsZXhPcmRlciIsICJncmlkQXJlYSIsICJncmlkUm93IiwgImdyaWRSb3dFbmQiLCAiZ3JpZFJvd1NwYW4iLCAiZ3JpZFJvd1N0YXJ0IiwgImdyaWRDb2x1bW4iLCAiZ3JpZENvbHVtbkVuZCIsICJncmlkQ29sdW1uU3BhbiIsICJncmlkQ29sdW1uU3RhcnQiLCAiZm9udFdlaWdodCIsICJsaW5lQ2xhbXAiLCAibGluZUhlaWdodCIsICJvcGFjaXR5IiwgIm9yZGVyIiwgIm9ycGhhbnMiLCAidGFiU2l6ZSIsICJ3aWRvd3MiLCAiekluZGV4IiwgInpvb20iLCAiZmlsbE9wYWNpdHkiLCAiZmxvb2RPcGFjaXR5IiwgInN0b3BPcGFjaXR5IiwgInN0cm9rZURhc2hhcnJheSIsICJzdHJva2VEYXNob2Zmc2V0IiwgInN0cm9rZU1pdGVybGltaXQiLCAic3Ryb2tlT3BhY2l0eSIsICJzdHJva2VXaWR0aCIsICJwcmVmaXhLZXkiLCAicHJlZml4IiwgImNoYXJBdCIsICJ0b1VwcGVyQ2FzZSIsICJzdWJzdHJpbmciLCAicHJlZml4ZXMiLCAicHJvcCIsICJqc3hEb21UeXBlIiwgIlN5bWJvbCIsICJmb3IiLCAiSnN4RG9tVHlwZSIsICJKc3hEb21UeXBlMiIsICJfcmVmIiwgImNoaWxkcmVuIiwgInJlZiIsICJhdHRyMiIsICJhdHRyIiwgImlzU2hhZG93Um9vdCIsICJlbCIsICJYTGlua05hbWVzcGFjZSIsICJYTUxOYW1lc3BhY2UiLCAiaXNWaXNpYmxlQ2hpbGQiLCAiQXJyYXkiLCAiaXNBcnJheSIsICJtYXAiLCAiZmlsdGVyIiwgIkJvb2xlYW4iLCAiam9pbiIsICJpdGVyYXRvciIsICJmcm9tIiwgImsiLCAic3ZnIiwgImFuaW1hdGUiLCAiY2lyY2xlIiwgImNsaXBQYXRoIiwgImRlZnMiLCAiZGVzYyIsICJlbGxpcHNlIiwgImZlQmxlbmQiLCAiZmVDb2xvck1hdHJpeCIsICJmZUNvbXBvbmVudFRyYW5zZmVyIiwgImZlQ29tcG9zaXRlIiwgImZlQ29udm9sdmVNYXRyaXgiLCAiZmVEaWZmdXNlTGlnaHRpbmciLCAiZmVEaXNwbGFjZW1lbnRNYXAiLCAiZmVEaXN0YW50TGlnaHQiLCAiZmVGbG9vZCIsICJmZUZ1bmNBIiwgImZlRnVuY0IiLCAiZmVGdW5jRyIsICJmZUZ1bmNSIiwgImZlR2F1c3NpYW5CbHVyIiwgImZlSW1hZ2UiLCAiZmVNZXJnZSIsICJmZU1lcmdlTm9kZSIsICJmZU1vcnBob2xvZ3kiLCAiZmVPZmZzZXQiLCAiZmVQb2ludExpZ2h0IiwgImZlU3BlY3VsYXJMaWdodGluZyIsICJmZVNwb3RMaWdodCIsICJmZVRpbGUiLCAiZmVUdXJidWxlbmNlIiwgImZvcmVpZ25PYmplY3QiLCAiZyIsICJpbWFnZSIsICJsaW5lIiwgImxpbmVhckdyYWRpZW50IiwgIm1hcmtlciIsICJtYXNrIiwgIm1ldGFkYXRhIiwgInBhdGgiLCAicGF0dGVybiIsICJwb2x5Z29uIiwgInBvbHlsaW5lIiwgInJhZGlhbEdyYWRpZW50IiwgInJlY3QiLCAic3RvcCIsICJzd2l0Y2giLCAic3ltYm9sIiwgInRleHQiLCAidGV4dFBhdGgiLCAidHNwYW4iLCAidXNlIiwgInZpZXciLCAibm9uUHJlc2VudGF0aW9uU1ZHQXR0cmlidXRlcyIsICJ0YWciLCAiYmluZCIsICJmcmFnbWVudCIsICJkb2N1bWVudCIsICJjcmVhdGVEb2N1bWVudEZyYWdtZW50IiwgImFwcGVuZENoaWxkIiwgImNvbnN0cnVjdG9yIiwgInByb3BzIiwgInJlbmRlciIsICJpbml0Q29tcG9uZW50Q2xhc3MiLCAiQ2xhc3MiLCAiaW5zdGFuY2UiLCAibm9kZSIsICJhdHRhY2hSZWYiLCAibmFtZXNwYWNlVVJJIiwgImNyZWF0ZUVsZW1lbnROUyIsICJhdHRyaWJ1dGVzIiwgIndpbmRvdyIsICJIVE1MU2VsZWN0RWxlbWVudCIsICJtdWx0aXBsZSIsICJ2YWx1ZXMiLCAiU3RyaW5nIiwgInF1ZXJ5U2VsZWN0b3JBbGwiLCAib3B0aW9uIiwgInNlbGVjdGVkIiwgImluY2x1ZGVzIiwgImRlZmF1bHRQcm9wcyIsICJUeXBlRXJyb3IiLCAiY29uY2F0IiwgIl9sZW4iLCAiYXJndW1lbnRzIiwgIl9rZXkyIiwgInVuc2hpZnQiLCAiY2hpbGQiLCAiYXBwZW5kQ2hpbGRyZW4iLCAiYXBwZW5kQ2hpbGRUb05vZGUiLCAiY3JlYXRlVGV4dE5vZGUiLCAiY3JlYXRlQ29tbWVudCIsICJzaGFkb3dSb290IiwgImF0dGFjaFNoYWRvdyIsICJfaSIsICJfYXJyIiwgIkhUTUxUZW1wbGF0ZUVsZW1lbnQiLCAiY29udGVudCIsICJub3JtYWxpemVBdHRyaWJ1dGUiLCAic2VwYXJhdG9yIiwgInJlcGxhY2UiLCAibWF0Y2giLCAidG9Mb3dlckNhc2UiLCAic3R5bGUiLCAidiIsICJzZXRBdHRyaWJ1dGUiLCAiaW5kZXhPZiIsICJzZXRQcm9wZXJ0eSIsICJhdHRyaWJ1dGUiLCAiYXR0ck5TIiwgImRhdGFWYWx1ZSIsICJkYXRhS2V5IiwgImRhdGFzZXQiLCAiaW5uZXJIVE1MIiwgIkhUTUxUZXh0QXJlYUVsZW1lbnQiLCAic3BlbGxjaGVjayIsICJldmVudEhhbmRsZXIiLCAiZXZlbnROYW1lIiwgImFkZEV2ZW50TGlzdGVuZXIiLCAiYXR0cmlidXRlMiIsICJ1c2VDYXB0dXJlIiwgImVuZHNXaXRoIiwgInN0YW5kYXJkRXZlbnROYW1lIiwgImN1c3RvbUV2ZW50TmFtZSIsICJzbGljZSIsICJTVkdFbGVtZW50IiwgInRlc3QiLCAibmFtZXNwYWNlIiwgInNldEF0dHJpYnV0ZU5TIiwgIl9pdGVyYXRvcjMiLCAiX3N0ZXAzIiwgImluaXRpYWxWYWx1ZSIsICJUZXh0IiwgImRlZmluZVByb3BlcnR5IiwgInRleHRDb250ZW50IiwgInNldFRleHQiLCAiZGl2IiwgImxpc3QiLCAiY2xhc3NMaXN0IiwgIkNsYXNzTGlzdCIsICJkZWZpbmVQcm9wZXJ0aWVzIiwgImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCAic2l6ZSIsICJhZGQiLCAicmVtb3ZlIiwgInRvZ2dsZSIsICJ0b2tlbiIsICJmb3JjZSIsICJjb250YWlucyIsICJmYWN0b3J5IiwgImluaXQiLCAiY2FjaGUiLCAiTWFwIiwgImNyZWF0ZVN0eWxlZENvbXBvbmVudCIsICJuYW1lIiwgImludGVycG9sYXRpb25zIiwgIl9rZXkiLCAic3R5bGUyIiwgImxhc3RJbmRleCIsICJjc3MiLCAicmVkdWNlIiwgInAiLCAiaSIsICJpbnRlcnBvbGF0aW9uIiwgImJhc2VTdHlsZWQiLCAiY3VzdG9tQ29tcG9uZW50IiwgIlByb3h5IiwgImdldCIsICJfIiwgInNldElmQWJzZW50IiwgImdldFZhbHVlIiwgImhhcyIsICJzZXQiLCAiZXZlbnQiXQp9Cg== diff --git a/dist/LinkSpacing/LinkSpacing.css b/dist/LinkSpacing/LinkSpacing.css index 110b8f7a4..ba2d9f192 100644 --- a/dist/LinkSpacing/LinkSpacing.css +++ b/dist/LinkSpacing/LinkSpacing.css @@ -23,7 +23,7 @@ /* */ /* esbuild-css-modules-plugin-ns-css:src/LinkSpacing/util/LinkSpacing.module.less */ -.LinkSpacing-module__linkSpace_E9P2BW { +.LinkSpacing-module__linkSpace_E9P2BW__490 { pointer-events: none; width: 1px; display: inline-block; @@ -31,4 +31,4 @@ /* */ -/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiZXNidWlsZC1jc3MtbW9kdWxlcy1wbHVnaW4tbnMtY3NzOnNyYy9MaW5rU3BhY2luZy91dGlsL0xpbmtTcGFjaW5nLm1vZHVsZS5sZXNzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiA8c3RkaW4+ICovXG4uTGlua1NwYWNpbmctbW9kdWxlX19saW5rU3BhY2VfRTlQMkJXIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHdpZHRoOiAxcHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxDQUFDO0FBQ0Msa0JBQWdCO0FBQ2hCLFNBQU87QUFDUCxXQUFTO0FBQ1g7IiwKICAibmFtZXMiOiBbXQp9Cg== */ +/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiZXNidWlsZC1jc3MtbW9kdWxlcy1wbHVnaW4tbnMtY3NzOnNyYy9MaW5rU3BhY2luZy91dGlsL0xpbmtTcGFjaW5nLm1vZHVsZS5sZXNzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiA8c3RkaW4+ICovXG4uTGlua1NwYWNpbmctbW9kdWxlX19saW5rU3BhY2VfRTlQMkJXX180OTAge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgd2lkdGg6IDFweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLENBQUM7QUFDQyxrQkFBZ0I7QUFDaEIsU0FBTztBQUNQLFdBQVM7QUFDWDsiLAogICJuYW1lcyI6IFtdCn0K */ diff --git a/dist/LinkSpacing/LinkSpacing.js b/dist/LinkSpacing/LinkSpacing.js index 1cf01c853..32a9b2156 100644 --- a/dist/LinkSpacing/LinkSpacing.js +++ b/dist/LinkSpacing/LinkSpacing.js @@ -107,9 +107,9 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge mod )); //! src/LinkSpacing/util/LinkSpace.tsx -var import_ext_gadget = __toESM(require("ext.gadget.React"), 1); +var import_ext_gadget = __toESM(require("ext.gadget.JSX"), 1); //! src/LinkSpacing/util/LinkSpacing.module.less -var linkSpace = "LinkSpacing-module__linkSpace_E9P2BW"; +var linkSpace = "LinkSpacing-module__linkSpace_E9P2BW__490"; //! src/LinkSpacing/util/LinkSpace.tsx var LinkSpace = () => /* @__PURE__ */ import_ext_gadget.default.createElement("span", { className: linkSpace @@ -143,4 +143,4 @@ try { /* */ -//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL0xpbmtTcGFjaW5nL3V0aWwvTGlua1NwYWNlLnRzeCIsICJzcmMvTGlua1NwYWNpbmcvdXRpbC9MaW5rU3BhY2luZy5tb2R1bGUubGVzcyIsICJzcmMvTGlua1NwYWNpbmcvTGlua1NwYWNpbmcudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCBSZWFjdCBmcm9tICdleHQuZ2FkZ2V0LlJlYWN0JztcbmltcG9ydCB7bGlua1NwYWNlfSBmcm9tICcuL0xpbmtTcGFjaW5nLm1vZHVsZS5sZXNzJztcblxuY29uc3QgTGlua1NwYWNlID0gKCkgPT4gPHNwYW4gY2xhc3NOYW1lPXtsaW5rU3BhY2V9IC8+O1xuXG5leHBvcnQge0xpbmtTcGFjZX07XG4iLCAiaW1wb3J0IFwiZXNidWlsZC1jc3MtbW9kdWxlcy1wbHVnaW4tbnMtY3NzOnNyYy9MaW5rU3BhY2luZy91dGlsL0xpbmtTcGFjaW5nLm1vZHVsZS5sZXNzXCI7XG5leHBvcnQgY29uc3QgbGlua1NwYWNlID0gXCJMaW5rU3BhY2luZy1tb2R1bGVfX2xpbmtTcGFjZV9FOVAyQldcIjtcblxuZXhwb3J0IGRlZmF1bHQge1xuICBcImxpbmtTcGFjZVwiOiBsaW5rU3BhY2Vcbn07XG4gICAgICAiLCAiaW1wb3J0IHtMaW5rU3BhY2V9IGZyb20gJy4vdXRpbC9MaW5rU3BhY2UnO1xuXG5jb25zdCBsaW5rcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5tdy1wYXJzZXItb3V0cHV0IGEnKTtcblxuZm9yIChjb25zdCBbaW5kZXgsIGxpbmtdIG9mIGxpbmtzLmVudHJpZXMoKSkge1xuXHRpZiAoIShpbmRleCA+IDApKSB7XG5cdFx0Y29udGludWU7XG5cdH1cblxuXHRjb25zdCBiZWZvcmVFbGVtZW50ID0gbGlua3NbaW5kZXggLSAxXTtcblx0aWYgKCFiZWZvcmVFbGVtZW50KSB7XG5cdFx0Y29udGludWU7XG5cdH1cblxuXHRpZiAoYmVmb3JlRWxlbWVudC5uZXh0U2libGluZyA9PT0gbGluaykge1xuXHRcdGNvbnN0IHNwYWNlciA9IExpbmtTcGFjZSgpLmNsb25lTm9kZSgpO1xuXHRcdGxpbmsuYmVmb3JlKHNwYWNlciwgbGluayk7XG5cdH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxvQkFBa0JDLFFBQUFDLFFBQUEsa0JBQUEsR0FBQSxDQUFBOztBQ0NYLElBQU1DLFlBQVk7O0FERXpCLElBQU1DLFlBQVlBLE1BQU1KLGtDQUFBSyxRQUFBQyxjQUFDLFFBQUE7RUFBS0MsV0FBV0o7QUFBQSxDQUFXOztBRURwRCxJQUFNSyxRQUFRQyxTQUFTQyxpQkFBaUIscUJBQXFCO0FBQUEsSUFBQUMsYUFBQUMsMkJBRWpDSixNQUFNSyxRQUFRLENBQUE7QUFGbUIsSUFFbkJDO0FBQUEsSUFBQTtBQUExQyxPQUFBSCxXQUFBSSxFQUFBLEdBQUEsRUFBQUQsU0FBQUgsV0FBQUssRUFBQSxHQUFBQyxRQUE2QztBQUFBLFVBQWxDLENBQUNDLE9BQU9DLElBQUksSUFBQUwsT0FBQU07QUFDdEIsUUFBSSxFQUFFRixRQUFRLElBQUk7QUFDakI7SUFDRDtBQUVBLFVBQU1HLGdCQUFnQmIsTUFBTVUsUUFBUSxDQUFDO0FBQ3JDLFFBQUksQ0FBQ0csZUFBZTtBQUNuQjtJQUNEO0FBRUEsUUFBSUEsY0FBY0MsZ0JBQWdCSCxNQUFNO0FBQ3ZDLFlBQU1JLFNBQVNuQixVQUFVLEVBQUVvQixVQUFVO0FBQ3JDTCxXQUFLTSxPQUFPRixRQUFRSixJQUFJO0lBQ3pCO0VBQ0Q7QUFBQSxTQUFBTyxLQUFBO0FBQUFmLGFBQUFnQixFQUFBRCxHQUFBO0FBQUEsVUFBQTtBQUFBZixhQUFBaUIsRUFBQTtBQUFBOyIsCiAgIm5hbWVzIjogWyJpbXBvcnRfZXh0X2dhZGdldCIsICJfX3RvRVNNIiwgInJlcXVpcmUiLCAibGlua1NwYWNlIiwgIkxpbmtTcGFjZSIsICJkZWZhdWx0IiwgImNyZWF0ZUVsZW1lbnQiLCAiY2xhc3NOYW1lIiwgImxpbmtzIiwgImRvY3VtZW50IiwgInF1ZXJ5U2VsZWN0b3JBbGwiLCAiX2l0ZXJhdG9yMiIsICJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsICJlbnRyaWVzIiwgIl9zdGVwMiIsICJzIiwgIm4iLCAiZG9uZSIsICJpbmRleCIsICJsaW5rIiwgInZhbHVlIiwgImJlZm9yZUVsZW1lbnQiLCAibmV4dFNpYmxpbmciLCAic3BhY2VyIiwgImNsb25lTm9kZSIsICJiZWZvcmUiLCAiZXJyIiwgImUiLCAiZiJdCn0K +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL0xpbmtTcGFjaW5nL3V0aWwvTGlua1NwYWNlLnRzeCIsICJzcmMvTGlua1NwYWNpbmcvdXRpbC9MaW5rU3BhY2luZy5tb2R1bGUubGVzcyIsICJzcmMvTGlua1NwYWNpbmcvTGlua1NwYWNpbmcudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCBSZWFjdCBmcm9tICdleHQuZ2FkZ2V0LkpTWCc7XG5pbXBvcnQge2xpbmtTcGFjZX0gZnJvbSAnLi9MaW5rU3BhY2luZy5tb2R1bGUubGVzcyc7XG5cbmNvbnN0IExpbmtTcGFjZSA9ICgpID0+IDxzcGFuIGNsYXNzTmFtZT17bGlua1NwYWNlfSAvPjtcblxuZXhwb3J0IHtMaW5rU3BhY2V9O1xuIiwgImltcG9ydCBcImVzYnVpbGQtY3NzLW1vZHVsZXMtcGx1Z2luLW5zLWNzczpzcmMvTGlua1NwYWNpbmcvdXRpbC9MaW5rU3BhY2luZy5tb2R1bGUubGVzc1wiO1xuZXhwb3J0IGNvbnN0IGxpbmtTcGFjZSA9IFwiTGlua1NwYWNpbmctbW9kdWxlX19saW5rU3BhY2VfRTlQMkJXX180OTBcIjtcblxuZXhwb3J0IGRlZmF1bHQge1xuICBcImxpbmtTcGFjZVwiOiBsaW5rU3BhY2Vcbn07XG4gICAgICAiLCAiaW1wb3J0IHtMaW5rU3BhY2V9IGZyb20gJy4vdXRpbC9MaW5rU3BhY2UnO1xuXG5jb25zdCBsaW5rcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5tdy1wYXJzZXItb3V0cHV0IGEnKTtcblxuZm9yIChjb25zdCBbaW5kZXgsIGxpbmtdIG9mIGxpbmtzLmVudHJpZXMoKSkge1xuXHRpZiAoIShpbmRleCA+IDApKSB7XG5cdFx0Y29udGludWU7XG5cdH1cblxuXHRjb25zdCBiZWZvcmVFbGVtZW50ID0gbGlua3NbaW5kZXggLSAxXTtcblx0aWYgKCFiZWZvcmVFbGVtZW50KSB7XG5cdFx0Y29udGludWU7XG5cdH1cblxuXHRpZiAoYmVmb3JlRWxlbWVudC5uZXh0U2libGluZyA9PT0gbGluaykge1xuXHRcdGNvbnN0IHNwYWNlciA9IExpbmtTcGFjZSgpLmNsb25lTm9kZSgpO1xuXHRcdGxpbmsuYmVmb3JlKHNwYWNlciwgbGluayk7XG5cdH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxvQkFBa0JDLFFBQUFDLFFBQUEsZ0JBQUEsR0FBQSxDQUFBOztBQ0NYLElBQU1DLFlBQVk7O0FERXpCLElBQU1DLFlBQVlBLE1BQU1KLGtDQUFBSyxRQUFBQyxjQUFDLFFBQUE7RUFBS0MsV0FBV0o7QUFBQSxDQUFXOztBRURwRCxJQUFNSyxRQUFRQyxTQUFTQyxpQkFBaUIscUJBQXFCO0FBQUEsSUFBQUMsYUFBQUMsMkJBRWpDSixNQUFNSyxRQUFRLENBQUE7QUFGbUIsSUFFbkJDO0FBQUEsSUFBQTtBQUExQyxPQUFBSCxXQUFBSSxFQUFBLEdBQUEsRUFBQUQsU0FBQUgsV0FBQUssRUFBQSxHQUFBQyxRQUE2QztBQUFBLFVBQWxDLENBQUNDLE9BQU9DLElBQUksSUFBQUwsT0FBQU07QUFDdEIsUUFBSSxFQUFFRixRQUFRLElBQUk7QUFDakI7SUFDRDtBQUVBLFVBQU1HLGdCQUFnQmIsTUFBTVUsUUFBUSxDQUFDO0FBQ3JDLFFBQUksQ0FBQ0csZUFBZTtBQUNuQjtJQUNEO0FBRUEsUUFBSUEsY0FBY0MsZ0JBQWdCSCxNQUFNO0FBQ3ZDLFlBQU1JLFNBQVNuQixVQUFVLEVBQUVvQixVQUFVO0FBQ3JDTCxXQUFLTSxPQUFPRixRQUFRSixJQUFJO0lBQ3pCO0VBQ0Q7QUFBQSxTQUFBTyxLQUFBO0FBQUFmLGFBQUFnQixFQUFBRCxHQUFBO0FBQUEsVUFBQTtBQUFBZixhQUFBaUIsRUFBQTtBQUFBOyIsCiAgIm5hbWVzIjogWyJpbXBvcnRfZXh0X2dhZGdldCIsICJfX3RvRVNNIiwgInJlcXVpcmUiLCAibGlua1NwYWNlIiwgIkxpbmtTcGFjZSIsICJkZWZhdWx0IiwgImNyZWF0ZUVsZW1lbnQiLCAiY2xhc3NOYW1lIiwgImxpbmtzIiwgImRvY3VtZW50IiwgInF1ZXJ5U2VsZWN0b3JBbGwiLCAiX2l0ZXJhdG9yMiIsICJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsICJlbnRyaWVzIiwgIl9zdGVwMiIsICJzIiwgIm4iLCAiZG9uZSIsICJpbmRleCIsICJsaW5rIiwgInZhbHVlIiwgImJlZm9yZUVsZW1lbnQiLCAibmV4dFNpYmxpbmciLCAic3BhY2VyIiwgImNsb25lTm9kZSIsICJiZWZvcmUiLCAiZXJyIiwgImUiLCAiZiJdCn0K diff --git a/dist/LogFilter/LogFilter.css b/dist/LogFilter/LogFilter.css index 16789a34b..459c08e43 100644 --- a/dist/LogFilter/LogFilter.css +++ b/dist/LogFilter/LogFilter.css @@ -20,13 +20,13 @@ /* */ /* esbuild-css-modules-plugin-ns-css:src/LogFilter/LogFilter.module.less */ -.LogFilter-module__rightsFilter_kXTJ9W { +.LogFilter-module__rightsFilter_kXTJ9W__490 { flex-flow: wrap; align-items: center; gap: .25em; display: flex; } -.LogFilter-module__rightsFilter_kXTJ9W > * { +.LogFilter-module__rightsFilter_kXTJ9W__490 > * { flex-flow: wrap; align-items: center; gap: .25em; @@ -35,4 +35,4 @@ /* */ -/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiZXNidWlsZC1jc3MtbW9kdWxlcy1wbHVnaW4tbnMtY3NzOnNyYy9Mb2dGaWx0ZXIvTG9nRmlsdGVyLm1vZHVsZS5sZXNzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiA8c3RkaW4+ICovXG4uTG9nRmlsdGVyLW1vZHVsZV9fcmlnaHRzRmlsdGVyX2tYVEo5VyB7XG4gIGZsZXgtZmxvdzogd3JhcDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAuMjVlbTtcbiAgZGlzcGxheTogZmxleDtcbn1cbi5Mb2dGaWx0ZXItbW9kdWxlX19yaWdodHNGaWx0ZXJfa1hUSjlXID4gKiB7XG4gIGZsZXgtZmxvdzogd3JhcDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAuMjVlbTtcbiAgZGlzcGxheTogZmxleDtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxDQUFDO0FBQ0MsYUFBVztBQUNYLGVBQWE7QUFDYixPQUFLO0FBQ0wsV0FBUztBQUNYO0FBQ0EsQ0FOQyxzQ0FNc0MsRUFBRTtBQUN2QyxhQUFXO0FBQ1gsZUFBYTtBQUNiLE9BQUs7QUFDTCxXQUFTO0FBQ1g7IiwKICAibmFtZXMiOiBbXQp9Cg== */ +/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiZXNidWlsZC1jc3MtbW9kdWxlcy1wbHVnaW4tbnMtY3NzOnNyYy9Mb2dGaWx0ZXIvTG9nRmlsdGVyLm1vZHVsZS5sZXNzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiA8c3RkaW4+ICovXG4uTG9nRmlsdGVyLW1vZHVsZV9fcmlnaHRzRmlsdGVyX2tYVEo5V19fNDkwIHtcbiAgZmxleC1mbG93OiB3cmFwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IC4yNWVtO1xuICBkaXNwbGF5OiBmbGV4O1xufVxuLkxvZ0ZpbHRlci1tb2R1bGVfX3JpZ2h0c0ZpbHRlcl9rWFRKOVdfXzQ5MCA+ICoge1xuICBmbGV4LWZsb3c6IHdyYXA7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogLjI1ZW07XG4gIGRpc3BsYXk6IGZsZXg7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsQ0FBQztBQUNDLGFBQVc7QUFDWCxlQUFhO0FBQ2IsT0FBSztBQUNMLFdBQVM7QUFDWDtBQUNBLENBTkMsMkNBTTJDLEVBQUU7QUFDNUMsYUFBVztBQUNYLGVBQWE7QUFDYixPQUFLO0FBQ0wsV0FBUztBQUNYOyIsCiAgIm5hbWVzIjogW10KfQo= */ diff --git a/dist/LogFilter/LogFilter.js b/dist/LogFilter/LogFilter.js index 8f599cdb8..8dc0c25b8 100644 --- a/dist/LogFilter/LogFilter.js +++ b/dist/LogFilter/LogFilter.js @@ -138,9 +138,9 @@ var MESSAGES = { "filter-highlight-button": "高亮" }; //! src/LogFilter/modules/core.tsx -var import_ext_gadget = __toESM(require("ext.gadget.React"), 1); +var import_ext_gadget = __toESM(require("ext.gadget.JSX"), 1); //! src/LogFilter/LogFilter.module.less -var rightsFilter = "LogFilter-module__rightsFilter_kXTJ9W"; +var rightsFilter = "LogFilter-module__rightsFilter_kXTJ9W__490"; //! src/LogFilter/modules/core.tsx var URL_LIFILTER = mw.util.getParamValue("lifilter"); var URL_LIFILTER_CASE = mw.util.getParamValue("lifiltercase"); @@ -355,4 +355,4 @@ var import_ext_gadget2 = require("ext.gadget.Util"); /* */ -//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL0xvZ0ZpbHRlci9vcHRpb25zLmpzb24iLCAic3JjL0xvZ0ZpbHRlci9tb2R1bGVzL21lc3NhZ2VzLnRzIiwgInNyYy9Mb2dGaWx0ZXIvbW9kdWxlcy9jb3JlLnRzeCIsICJzcmMvTG9nRmlsdGVyL0xvZ0ZpbHRlci5tb2R1bGUubGVzcyIsICJzcmMvTG9nRmlsdGVyL21vZHVsZXMvY29uc3RhbnQudHMiLCAic3JjL0xvZ0ZpbHRlci9Mb2dGaWx0ZXIudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIntcblx0XCJjb25maWdLZXlcIjogXCJnYWRnZXQtTG9nRmlsdGVyX19Jbml0aWFsaXplZFwiXG59XG4iLCAiY29uc3QgTUVTU0FHRVMgPSB7XG5cdCdmaWx0ZXItcG9ydGxldC10ZXh0JzogJ+i/h+a7pCcsXG5cdCdmaWx0ZXItcG9ydGxldC1kZXNjcmlwdGlvbic6ICfmiZPlvIDkuqTkupLlvI/ml6Xlv5fmraPliJnov4fmu6TlmagnLFxuXHQnZmlsdGVyLWdhZGdldC1wYWdlJzogJ01lZGlhV2lraTpHYWRnZXQtTG9nRmlsdGVyLmpzJyxcblx0J2ZpbHRlci1yaWdodHMtbGlzdC1pbnN0cnVjdGlvbnMnOiAn5q2j5YiZ6KGo6L6+5byP6L+H5ruk5Lul56m65qC85YiG6ZqU55qE5p2D6ZmQ5YiX6KGo44CCJyxcblx0J2ZpbHRlci1vdGhlci1saXN0LWluc3RydWN0aW9ucyc6ICfmraPliJnooajovr7lvI/ov4fmu6TmnKzliJfooajnmoTnuq/mlofmnKzmoLflvI/jgIInLFxuXHQnZmlsdGVyLWxlZ2VuZCc6ICfov4fmu6TliJfooagnLFxuXHQnZmlsdGVyLW9wdGlvbi1hZGRlZCc6ICfmt7vliqDmnYPpmZAnLFxuXHQnZmlsdGVyLW9wdGlvbi1yZW1vdmVkJzogJ+WIoOmZpOadg+mZkCcsXG5cdCdmaWx0ZXItb3B0aW9uLWFkZGVkLW9yLXJlbW92ZWQnOiAn5re75Yqg5oiW5Yig6Zmk5p2D6ZmQJyxcblx0J2ZpbHRlci1vcHRpb24tYWRkZWQtcmVtb3ZlZC1zdGF0aWMnOiAn5bey5re75YqgL+W3suenu+mZpC/kv53mjIHkuI3lj5gnLFxuXHQnZmlsdGVyLXJlZ2V4LWxhYmVsJzogJ+ato+WImeihqOi+vuW8j++8micsXG5cdCdmaWx0ZXItaW52ZXJ0LWxhYmVsJzogJ+WPjemAiScsXG5cdCdmaWx0ZXItY2FzZS1sYWJlbCc6ICflpKflsI/lhpnmlY/mhJ8nLFxuXHQnZmlsdGVyLWZpbHRlci1idXR0b24nOiAn6L+H5rukJyxcblx0J2ZpbHRlci1oaWdobGlnaHQtYnV0dG9uJzogJ+mrmOS6ricsXG59O1xuXG5leHBvcnQge01FU1NBR0VTfTtcbiIsICJpbXBvcnQge01FU1NBR0VTfSBmcm9tICcuL21lc3NhZ2VzJztcbmltcG9ydCBSZWFjdCBmcm9tICdleHQuZ2FkZ2V0LlJlYWN0JztcbmltcG9ydCB7cmlnaHRzRmlsdGVyfSBmcm9tICcuLi9Mb2dGaWx0ZXIubW9kdWxlLmxlc3MnO1xuXG5jb25zdCBVUkxfTElGSUxURVI6IHN0cmluZyB8IG51bGwgPSBtdy51dGlsLmdldFBhcmFtVmFsdWUoJ2xpZmlsdGVyJyk7XG5jb25zdCBVUkxfTElGSUxURVJfQ0FTRTogc3RyaW5nIHwgbnVsbCA9IG13LnV0aWwuZ2V0UGFyYW1WYWx1ZSgnbGlmaWx0ZXJjYXNlJyk7XG5jb25zdCBVUkxfTElGSUxURVJfRVhQUjogc3RyaW5nIHwgbnVsbCA9IG13LnV0aWwuZ2V0UGFyYW1WYWx1ZSgnbGlmaWx0ZXJleHByJyk7XG5jb25zdCBVUkxfTElGSUxURVJfSElMSUdIVDogc3RyaW5nIHwgbnVsbCA9IG13LnV0aWwuZ2V0UGFyYW1WYWx1ZSgnbGlmaWx0ZXJoaWxpZ2h0Jyk7XG5jb25zdCBVUkxfTElGSUxURVJfSU5WOiBzdHJpbmcgfCBudWxsID0gbXcudXRpbC5nZXRQYXJhbVZhbHVlKCdsaWZpbHRlcmludicpO1xuXG5jbGFzcyBMb2dGaWx0ZXIge1xuXHRwcml2YXRlIHJlYWRvbmx5IHJpZ2h0c0xvZ09ubHkgPSBsb2NhdGlvbi5ocmVmLmluY2x1ZGVzKCd0eXBlPXJpZ2h0cycpIHx8IGxvY2F0aW9uLmhyZWYuaW5jbHVkZXMoJ0xvZy9yaWdodHMnKTtcblx0cHJpdmF0ZSBsYXN0Q2xpY2tlZCA9IGZhbHNlO1xuXHRwcml2YXRlICRib2R5OiBKUXVlcnk8SFRNTEJvZHlFbGVtZW50PjtcblxuXHRwdWJsaWMgY29uc3RydWN0b3IoJGJvZHk6IEpRdWVyeTxIVE1MQm9keUVsZW1lbnQ+KSB7XG5cdFx0dGhpcy4kYm9keSA9ICRib2R5O1xuXHRcdC8vIERlZmluZSBpbnRlcmZhY2UgbWVzc2FnZXNcblx0XHRtdy5tZXNzYWdlcy5zZXQoTUVTU0FHRVMpO1xuXHR9XG5cblx0cHVibGljIGFkZFBvcnRsZXRMaW5rKCk6IHZvaWQge1xuXHRcdC8vIENyZWF0ZSBwb3J0bGV0IGxpbmtcblx0XHRjb25zdCBwb3J0bGV0TGluazogSFRNTExJRWxlbWVudCB8IG51bGwgPSBtdy51dGlsLmFkZFBvcnRsZXRMaW5rKFxuXHRcdFx0dGhpcy4kYm9keS5maW5kKCcjcC1jYWN0aW9ucycpLmxlbmd0aCA/ICdwLWNhY3Rpb25zJyA6ICdwLXRiJyxcblx0XHRcdCcjJyxcblx0XHRcdExvZ0ZpbHRlci5tc2coJ3BvcnRsZXQtdGV4dCcpLFxuXHRcdFx0J2NhLXJ4ZmlsdGVyJyxcblx0XHRcdExvZ0ZpbHRlci5tc2coJ3BvcnRsZXQtZGVzY3JpcHRpb24nKVxuXHRcdCk7XG5cdFx0Ly8gQmluZCBjbGljayBsaXN0ZW5lclxuXHRcdGlmIChwb3J0bGV0TGluaykge1xuXHRcdFx0Y29uc3QgJHBvcnRsZXRMaW5rOiBKUXVlcnkgPSAkKHBvcnRsZXRMaW5rKTtcblx0XHRcdCRwb3J0bGV0TGluay5maW5kKCdhJykub24oJ2NsaWNrJywgKGV2ZW50OiBKUXVlcnkuQ2xpY2tFdmVudCk6IHZvaWQgPT4ge1xuXHRcdFx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXHRcdFx0XHR0aGlzLmJ1aWxkRm9ybSgpO1xuXHRcdFx0fSk7XG5cdFx0fVxuXHRcdC8vIERpc3BsYXkgZm9ybSBkaXJlY2x0eT9cblx0XHRpZiAoVVJMX0xJRklMVEVSIHx8IFVSTF9MSUZJTFRFUl9FWFBSKSB7XG5cdFx0XHR0aGlzLmJ1aWxkRm9ybSgpO1xuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgYnVpbGRGb3JtKCk6IHZvaWQge1xuXHRcdGNvbnN0ICRwYWdlVG9wOiBKUXVlcnkgPSB0aGlzLiRib2R5LmZpbmQoJyNjb250ZW50U3ViLCAjdG9wYmFyJyk7XG5cdFx0aWYgKCEkcGFnZVRvcC5sZW5ndGgpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRsZXQgb2xkSW5wdXQ6IHN0cmluZyA9ICcnO1xuXHRcdGNvbnN0IGluc3RydWN0aW9uczogc3RyaW5nID0gdGhpcy5yaWdodHNMb2dPbmx5XG5cdFx0XHQ/IExvZ0ZpbHRlci5tc2coJ3JpZ2h0cy1saXN0LWluc3RydWN0aW9ucycpXG5cdFx0XHQ6IExvZ0ZpbHRlci5tc2coJ290aGVyLWxpc3QtaW5zdHJ1Y3Rpb25zJyk7XG5cblx0XHR0aGlzLiRib2R5LmZpbmQoJyNjYS1yeGZpbHRlcicpLmhpZGUoKTtcblxuXHRcdC8vIFNldCB1cCBjb25maWdcblx0XHRjb25zdCBjYXNpbmc6IGJvb2xlYW4gPSBVUkxfTElGSUxURVJfQ0FTRSA9PT0gJzEnO1xuXHRcdGNvbnN0IGhpbGlnaHQ6IGJvb2xlYW4gPSBVUkxfTElGSUxURVJfSElMSUdIVCA9PT0gJzEnO1xuXHRcdGNvbnN0IGludmVydGVkOiBib29sZWFuID0gVVJMX0xJRklMVEVSX0lOViA9PT0gJzEnO1xuXG5cdFx0Ly8gR2VuZXJhdGUgdGhlIGZvcm1cblx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWVkaWF3aWtpL2NsYXNzLWRvY1xuXHRcdGNvbnN0ICRmaWVsZFNldDogSlF1ZXJ5ID0gJCgnPGZpZWxkc2V0PicpXG5cdFx0XHQuYXR0cignaWQnLCAncmlnaHRzRmlsdGVyJylcblx0XHRcdC5hZGRDbGFzcyhyaWdodHNGaWx0ZXIgYXMgc3RyaW5nKVxuXHRcdFx0LnRleHQoaW5zdHJ1Y3Rpb25zKTtcblx0XHRjb25zdCAkbGVnZW5kOiBKUXVlcnkgPSAkKCc8bGVnZW5kPicpLnRleHQoTG9nRmlsdGVyLm1zZygnbGVnZW5kJykpO1xuXHRcdCRmaWVsZFNldC5hcHBlbmQoJGxlZ2VuZCk7XG5cblx0XHRsZXQgcmZTZWxlY3QgPSA8PjwvPjtcblx0XHRpZiAodGhpcy5yaWdodHNMb2dPbmx5KSB7XG5cdFx0XHRyZlNlbGVjdCA9IChcblx0XHRcdFx0PHNlbGVjdCBpZD1cImdhZGdldC1sb2dfZmlsdGVyX19zZWxlY3RcIj5cblx0XHRcdFx0XHQ8b3B0aW9uPnttdy5odG1sLmVzY2FwZShMb2dGaWx0ZXIubXNnKCdvcHRpb24tYWRkZWQnKSl9PC9vcHRpb24+XG5cdFx0XHRcdFx0PG9wdGlvbj57bXcuaHRtbC5lc2NhcGUoTG9nRmlsdGVyLm1zZygnb3B0aW9uLXJlbW92ZWQnKSl9PC9vcHRpb24+XG5cdFx0XHRcdFx0PG9wdGlvbj57bXcuaHRtbC5lc2NhcGUoTG9nRmlsdGVyLm1zZygnb3B0aW9uLWFkZGVkLW9yLXJlbW92ZWQnKSl9PC9vcHRpb24+XG5cdFx0XHRcdFx0PG9wdGlvbj57bXcuaHRtbC5lc2NhcGUoTG9nRmlsdGVyLm1zZygnb3B0aW9uLWFkZGVkLXJlbW92ZWQtc3RhdGljJykpfTwvb3B0aW9uPlxuXHRcdFx0XHQ8L3NlbGVjdD5cblx0XHRcdCk7XG5cdFx0fVxuXHRcdGNvbnN0IGZpZWxkU2V0SW5uZXIgPSAoXG5cdFx0XHQ8PlxuXHRcdFx0XHQ8ZGl2IGNsYXNzTmFtZT1cImdhZGdldC1sb2dfZmlsdGVyX19yZWdleFwiPlxuXHRcdFx0XHRcdDxsYWJlbCBodG1sRm9yPVwiZ2FkZ2V0LWxvZ19maWx0ZXJfX3JlZ2V4XCI+e213Lmh0bWwuZXNjYXBlKExvZ0ZpbHRlci5tc2coJ3JlZ2V4LWxhYmVsJykpfTwvbGFiZWw+XG5cdFx0XHRcdFx0PGlucHV0IGlkPVwiZ2FkZ2V0LWxvZ19maWx0ZXJfX3JlZ2V4XCIgLz5cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdDxkaXYgY2xhc3NOYW1lPVwiZ2FkZ2V0LWxvZ19maWx0ZXJfX2NoZWNrYm94ZXNcIj5cblx0XHRcdFx0XHQ8ZGl2IGNsYXNzTmFtZT1cImdhZGdldC1sb2dfZmlsdGVyX19pbnZlcnRcIj5cblx0XHRcdFx0XHRcdDxpbnB1dCBpZD1cImdhZGdldC1sb2dfZmlsdGVyX19pbnZlcnRcIiB0eXBlPVwiY2hlY2tib3hcIiAvPlxuXHRcdFx0XHRcdFx0PGxhYmVsIGh0bWxGb3I9XCJnYWRnZXQtbG9nX2ZpbHRlcl9faW52ZXJ0XCI+XG5cdFx0XHRcdFx0XHRcdHttdy5odG1sLmVzY2FwZShMb2dGaWx0ZXIubXNnKCdpbnZlcnQtbGFiZWwnKSl9XG5cdFx0XHRcdFx0XHQ8L2xhYmVsPlxuXHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdDxkaXYgY2xhc3NOYW1lPVwiZ2FkZ2V0LWxvZ19maWx0ZXJfX2Nhc2VcIj5cblx0XHRcdFx0XHRcdDxpbnB1dCBpZD1cImdhZGdldC1sb2dfZmlsdGVyX19jYXNlXCIgdHlwZT1cImNoZWNrYm94XCIgLz5cblx0XHRcdFx0XHRcdDxsYWJlbCBodG1sRm9yPVwiZ2FkZ2V0LWxvZ19maWx0ZXJfX2Nhc2VcIj57bXcuaHRtbC5lc2NhcGUoTG9nRmlsdGVyLm1zZygnY2FzZS1sYWJlbCcpKX08L2xhYmVsPlxuXHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0PGRpdiBjbGFzc05hbWU9XCJnYWRnZXQtbG9nX2ZpbHRlcl9fYnV0dG9uc1wiPlxuXHRcdFx0XHRcdDxidXR0b25cblx0XHRcdFx0XHRcdGNsYXNzTmFtZT17WydjZHgtYnV0dG9uIGNkeC1idXR0b24tLWFjdGlvbi1wcm9ncmVzc2l2ZScsICdjZHgtYnV0dG9uLS13ZWlnaHQtcHJpbWFyeSddfVxuXHRcdFx0XHRcdFx0dmFsdWU9XCIwXCJcblx0XHRcdFx0XHQ+XG5cdFx0XHRcdFx0XHR7bXcuaHRtbC5lc2NhcGUoTG9nRmlsdGVyLm1zZygnZmlsdGVyLWJ1dHRvbicpKX1cblx0XHRcdFx0XHQ8L2J1dHRvbj5cblx0XHRcdFx0XHQ8YnV0dG9uXG5cdFx0XHRcdFx0XHRjbGFzc05hbWU9e1snY2R4LWJ1dHRvbiBjZHgtYnV0dG9uLS1hY3Rpb24tcHJvZ3Jlc3NpdmUnLCAnY2R4LWJ1dHRvbi0td2VpZ2h0LXByaW1hcnknXX1cblx0XHRcdFx0XHRcdHZhbHVlPVwiMVwiXG5cdFx0XHRcdFx0PlxuXHRcdFx0XHRcdFx0e213Lmh0bWwuZXNjYXBlKExvZ0ZpbHRlci5tc2coJ2hpZ2hsaWdodC1idXR0b24nKSl9XG5cdFx0XHRcdFx0PC9idXR0b24+XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0PC8+XG5cdFx0KTtcblx0XHQvLyBJbmplY3QgdGhlc2UgSFRNTCBlbGVtZW50cyBpbnRvIHRoZSBmaWVsZHNldFxuXHRcdCRmaWVsZFNldC5hcHBlbmQocmZTZWxlY3QsIGZpZWxkU2V0SW5uZXIpO1xuXHRcdCRwYWdlVG9wLmFmdGVyKCRmaWVsZFNldCk7XG5cblx0XHQvLyBTZXQgcGFzc2VkIHZhbHVlc1xuXHRcdHRoaXMuJGJvZHkuZmluZCgnI2dhZGdldC1sb2dfZmlsdGVyX19yZWdleCcpLnZhbChVUkxfTElGSUxURVJfRVhQUiA/PyAnJyk7XG5cdFx0dGhpcy4kYm9keS5maW5kKCcjZ2FkZ2V0LWxvZ19maWx0ZXJfX2Nhc2UnKS5wcm9wKCdjaGVja2VkJywgIWNhc2luZyk7XG5cdFx0dGhpcy4kYm9keS5maW5kKCcjZ2FkZ2V0LWxvZ19maWx0ZXJfX2ludmVydCcpLnByb3AoJ2NoZWNrZWQnLCBpbnZlcnRlZCk7XG5cdFx0dGhpcy4kYm9keS5maW5kKCcjZ2FkZ2V0LWxvZ19maWx0ZXJfX3JlZ2V4JykudHJpZ2dlcignZm9jdXMnKTtcblxuXHRcdC8vIEJpbmQgY2xpY2sgYW5kIGNoYW5nZSBsaXN0ZW5lcnNcblx0XHR0aGlzLiRib2R5XG5cdFx0XHQuZmluZCgnI3JpZ2h0c0ZpbHRlcicpXG5cdFx0XHQuZmluZCgnaW5wdXQnKVxuXHRcdFx0Lm9uKCdrZXl1cCBjaGFuZ2UnLCAoZXZlbnQpOiB2b2lkID0+IHtcblx0XHRcdFx0Y29uc3QgJGVsZW1lbnQ6IEpRdWVyeSA9ICQoZXZlbnQuY3VycmVudFRhcmdldCk7XG5cdFx0XHRcdGlmICgkZWxlbWVudC5hdHRyKCdpZCcpICE9PSAnZ2FkZ2V0LWxvZ19maWx0ZXJfX3JlZ2V4Jykge1xuXHRcdFx0XHRcdHRoaXMuZmlsdGVyTGkoKTtcblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH1cblx0XHRcdFx0Y29uc3QgY3VySW5wdXQ6IHN0cmluZyA9ICRlbGVtZW50LnZhbCgpIGFzIHN0cmluZztcblx0XHRcdFx0aWYgKG9sZElucHV0ICE9PSBjdXJJbnB1dCkge1xuXHRcdFx0XHRcdG9sZElucHV0ID0gY3VySW5wdXQ7XG5cdFx0XHRcdFx0dGhpcy5maWx0ZXJMaSgpO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHQkZmllbGRTZXQuZmluZCgnYnV0dG9uJykub24oJ2NsaWNrJywgKGV2ZW50KTogdm9pZCA9PiB7XG5cdFx0XHRjb25zdCAkZWxlbWVudDogSlF1ZXJ5ID0gJChldmVudC5jdXJyZW50VGFyZ2V0KTtcblx0XHRcdHRoaXMubGFzdENsaWNrZWQgPSAhISRlbGVtZW50LnZhbCgpO1xuXHRcdFx0dGhpcy5maWx0ZXJMaSgpO1xuXHRcdH0pO1xuXG5cdFx0aWYgKFVSTF9MSUZJTFRFUl9FWFBSKSB7XG5cdFx0XHR0aGlzLmZpbHRlckxpKGhpbGlnaHQpO1xuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgZmlsdGVyTGkoaGlsaWdodD86IGJvb2xlYW4pOiB2b2lkIHtcblx0XHQvLyBHcmFiIHRoZSBsaXN0IG9mIGFsbCA8bGk+IGluIHRoZSBjb250ZW50XG5cdFx0Y29uc3QgJGxpc3RJdGVtczogSlF1ZXJ5ID0gdGhpcy4kYm9keS5maW5kKCcjYm9keUNvbnRlbnQnKS5maW5kKCdsaScpO1xuXHRcdGlmICghJGxpc3RJdGVtcy5sZW5ndGgpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRoaWxpZ2h0ID0gISEoaGlsaWdodCB8fCB0aGlzLmxhc3RDbGlja2VkLnRvU3RyaW5nKCkgPT09ICcxJyk7XG5cblx0XHQvLyBHcmFiIG9wdGlvbnMgZnJvbSBmb3JtXG5cdFx0bGV0IHR5cGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblx0XHRpZiAodGhpcy5yaWdodHNMb2dPbmx5KSB7XG5cdFx0XHR0eXBlID0gdGhpcy4kYm9keS5maW5kKCcjZ2FkZ2V0LWxvZ19maWx0ZXJfX3NlbGVjdCcpLmF0dHIoJ3NlbGVjdGVkSW5kZXgnKTtcblx0XHR9XG5cblx0XHRjb25zdCBpbnZlcnQgPSB0aGlzLiRib2R5LmZpbmQoJyNnYWRnZXQtbG9nX2ZpbHRlcl9faW52ZXJ0JykucHJvcCgnY2hlY2tlZCcpIGFzIGJvb2xlYW47XG5cdFx0Y29uc3Qgc2VhcmNoOiBzdHJpbmcgPSB0aGlzLiRib2R5LmZpbmQoJyNnYWRnZXQtbG9nX2ZpbHRlcl9fcmVnZXgnKS52YWwoKT8udG9TdHJpbmcoKSA/PyAnJztcblx0XHRjb25zdCBmbGFnczogc3RyaW5nID0gdGhpcy4kYm9keS5maW5kKCcjZ2FkZ2V0LWxvZ19maWx0ZXJfX2Nhc2UnKS5wcm9wKCdjaGVja2VkJykgPyAnaWcnIDogJ2cnO1xuXHRcdGxldCByZWdleFJmOiBSZWdFeHAgfCB1bmRlZmluZWQ7XG5cdFx0dHJ5IHtcblx0XHRcdHJlZ2V4UmYgPSBuZXcgUmVnRXhwKHNlYXJjaCwgZmxhZ3MpO1xuXHRcdH0gY2F0Y2ggKGVycm9yKSB7XG5cdFx0XHRjb25zb2xlLmxvZyhlcnJvcik7XG5cdFx0fVxuXG5cdFx0Ly8gVGhlIHJlZ2V4IHVzZWQgdG8gZ3JhYiB0aGUgU3BlY2lhbDpMb2cvcmlnaHRzIGNoYW5nZXNcblx0XHRjb25zdCBSRUdFWF9SSUdIVDogUmVnRXhwID0gL14uKj91c2VyOi4qP1xcc2Zyb21cXHMoLio/KVxcc3RvXFxzKC4qPylcXHNcXHUyMDBFLio/JC9pO1xuXG5cdFx0Ly8gSXRlcmF0ZVxuXHRcdGZvciAoY29uc3QgZWxlbWVudCBvZiAkbGlzdEl0ZW1zKSB7XG5cdFx0XHRjb25zdCAkZWxlbWVudDogSlF1ZXJ5ID0gJChlbGVtZW50KTtcblx0XHRcdGxldCBsb29rOiBzdHJpbmcgPSAnJztcblxuXHRcdFx0aWYgKHRoaXMucmlnaHRzTG9nT25seSkge1xuXHRcdFx0XHQvLyBTcGVjaWFsOkxvZy9yaWdodHNcblx0XHRcdFx0Y29uc3Qgb2xkcjogc3RyaW5nID0gJGVsZW1lbnQudGV4dCgpLnJlcGxhY2UoUkVHRVhfUklHSFQsICckMScpO1xuXHRcdFx0XHRjb25zdCBuZXdyOiBzdHJpbmcgPSAkZWxlbWVudC50ZXh0KCkucmVwbGFjZShSRUdFWF9SSUdIVCwgJyQyJyk7XG5cdFx0XHRcdGNvbnN0IG9sZHJsOiBzdHJpbmdbXSA9IG9sZHIuc3BsaXQoJywgJyk7XG5cdFx0XHRcdGNvbnN0IG5ld3JsOiBzdHJpbmdbXSA9IG5ld3Iuc3BsaXQoJywgJyk7XG5cdFx0XHRcdGZvciAobGV0IGk6IG51bWJlciA9IDA7IGkgPCBvbGRybC5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRcdGZvciAobGV0IGo6IG51bWJlciA9IDA7IGogPCBuZXdybC5sZW5ndGg7IGorKykge1xuXHRcdFx0XHRcdFx0aWYgKG9sZHJsW2ldID09PSBuZXdybFtqXSkge1xuXHRcdFx0XHRcdFx0XHRvbGRybFtpXSA9ICcnO1xuXHRcdFx0XHRcdFx0XHRuZXdybFtqXSA9ICcnO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRjb25zdCByZW1yOiBzdHJpbmcgPSBvbGRybC5qb2luKCcsJyk7XG5cdFx0XHRcdGNvbnN0IGFkZHI6IHN0cmluZyA9IG5ld3JsLmpvaW4oJywnKTtcblx0XHRcdFx0c3dpdGNoICh0eXBlKSB7XG5cdFx0XHRcdFx0Y2FzZSAnMCc6XG5cdFx0XHRcdFx0XHRsb29rID0gYWRkcjtcblx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdGNhc2UgJzEnOlxuXHRcdFx0XHRcdFx0bG9vayA9IHJlbXI7XG5cdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRjYXNlICcyJzpcblx0XHRcdFx0XHRcdGxvb2sgPSBgJHtyZW1yfSAke2FkZHJ9YDtcblx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdGNhc2UgJzMnOlxuXHRcdFx0XHRcdFx0bG9vayA9IGAke29sZHJ9ICR7bmV3cn1gO1xuXHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdH1cblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdC8vIEFueSBvdGhlciBsaXN0IG9mIDxsaT4gb2JqZWN0c1xuXHRcdFx0XHRsb29rID0gJGVsZW1lbnQudGV4dCgpO1xuXHRcdFx0fVxuXG5cdFx0XHQkZWxlbWVudC5jc3MoJ2JhY2tncm91bmQtY29sb3InLCAnJyk7XG5cdFx0XHQkZWxlbWVudC5zaG93KCk7XG5cblx0XHRcdGlmIChyZWdleFJmICYmICgobG9vaz8uc2VhcmNoKHJlZ2V4UmYpID09PSAtMSAmJiBpbnZlcnQpIHx8IChsb29rPy5zZWFyY2gocmVnZXhSZikgIT09IC0xICYmICFpbnZlcnQpKSkge1xuXHRcdFx0XHRpZiAoaGlsaWdodCkge1xuXHRcdFx0XHRcdCRlbGVtZW50LmNzcygnYmFja2dyb3VuZC1jb2xvcicsICcjZmZmZjk5Jyk7XG5cdFx0XHRcdH1cblx0XHRcdH0gZWxzZSBpZiAoIWhpbGlnaHQpIHtcblx0XHRcdFx0JGVsZW1lbnQuaGlkZSgpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgc3RhdGljIG1zZyhrZXk6IHN0cmluZyk6IHN0cmluZyB7XG5cdFx0a2V5ID0gYGZpbHRlci0ke2tleX1gO1xuXHRcdC8vIE1lc3NhZ2VzIHRoYXQgY2FuIGJlIHVzZWQgaGVyZTpcblx0XHQvLyAqIHNlZSBtZXNzYWdlcy50c1xuXHRcdC8vICogZm9yIG1vcmUgaW5mb3JtYXRpb25cblx0XHRyZXR1cm4gbXcubWVzc2FnZShrZXkpLnBsYWluKCk7XG5cdH1cbn1cblxuZXhwb3J0IHtMb2dGaWx0ZXJ9O1xuIiwgImltcG9ydCBcImVzYnVpbGQtY3NzLW1vZHVsZXMtcGx1Z2luLW5zLWNzczpzcmMvTG9nRmlsdGVyL0xvZ0ZpbHRlci5tb2R1bGUubGVzc1wiO1xuZXhwb3J0IGNvbnN0IHJpZ2h0c0ZpbHRlciA9IFwiTG9nRmlsdGVyLW1vZHVsZV9fcmlnaHRzRmlsdGVyX2tYVEo5V1wiO1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIFwicmlnaHRzRmlsdGVyXCI6IHJpZ2h0c0ZpbHRlclxufTtcbiAgICAgICIsICJjb25zdCBSRUdFWF9UQVJHRVRfUEFHRTogUmVnRXhwID1cblx0L14oPzphY3RpdmV1c2Vyc3xjaGVja3VzZXJ8Y29udHJpYnV0aW9uc3xpcGJsb2NrbGlzdHxsaW5rc2VhcmNofGxvZ3xzZWFyY2h8KD86dW5jYXRlZ29yaXp8dW51c3x3YW50KWVkKD86Y2F0ZWdvcml8dGVtcGxhdCllc3x3YW50ZWRmaWxlc3woPzpzaG9ydHxsb25nfGFuY2llbnR8dW5jYXRlZ29yaXplZHx1bndhdGNoZWR8d2FudGVkfHByb3RlY3RlZHxkZWFkZW5kfGxvbmVseXxuZXcpcGFnZXN8ZmV3ZXN0cmV2aXNpb25zfHdpdGhvdXRpbnRlcndpa2l8KD86ZG91YmxlfGJyb2tlbilyZWRpcmVjdHN8cHJvdGVjdGVkdGl0bGVzfGNyb3NzbmFtZXNwYWNlbGlua3N8cmVjZW50Y2hhbmdlc3xjYXRlZ29yaWVzfGRpc2FtYmlndWF0aW9uc3xsaXN0cmVkaXJlY3RzfGdsb2JhbHVzZXJzfGdsb2JhbGJsb2NrbGlzdHxsaXN0dXNlcnN8d2F0Y2hsaXN0fG1vc3QoPzpsaW5rZWR8cmV2aXNpb25zfGNhdGVnb3JpZXMpfG51a2V8d2hhdGxpbmtzaGVyZSkkL2k7XG5cbmV4cG9ydCB7UkVHRVhfVEFSR0VUX1BBR0V9O1xuIiwgIi8qKlxuICogTG9nIGZpbHRlciBzY3JpcHRcbiAqXG4gKiBDcmVhdGVkIGJ5IFNwbGFya2FcbiAqIEFtZW5kZWQgYnkgTWlrZS5saWZlZ3VhcmQgJiBMdXBvXG4gKiBQYXJ0aWFsbHkgcmV3cml0dGVuIGJ5IERpZUJ1Y2hlXG4gKlxuICogPGxpPiBlbGVtZW50IEZpbHRlciBTY3JpcHQsIHZlcnNpb24gWzAuMl1cbiAqIFNob3VsZCBjdXJyZW50bHkgd29yayBvbiBhbGwga25vd24gc2tpbnMgKHdpdGggYSAjY29udGVudFN1YiBvciAjdG9wYmFyKVxuICpcbiAqIG13LnV0aWwuZ2V0VXJsKCBtdy5jb25maWcuZ2V0KCAnd2dQYWdlTmFtZScgKSApICsgJz8nICtcbiAqICd3aXRoSlM9TWVkaWFXaWtpOkdhZGdldC1Mb2dGaWx0ZXIuanMmbGlmaWx0ZXI9MSZsaWZpbHRlcmV4cHI9VEVTVCZsaWZpbHRlcmNhc2UmbGlmaWx0ZXJoaWxpZ2h0JmxpZmlsdGVyaW52J1xuICovXG5pbXBvcnQgKiBhcyBPUFRJT05TIGZyb20gJy4vb3B0aW9ucy5qc29uJztcbmltcG9ydCB7TG9nRmlsdGVyfSBmcm9tICcuL21vZHVsZXMvY29yZSc7XG5pbXBvcnQge1JFR0VYX1RBUkdFVF9QQUdFfSBmcm9tICcuL21vZHVsZXMvY29uc3RhbnQnO1xuaW1wb3J0IHtnZXRCb2R5fSBmcm9tICdleHQuZ2FkZ2V0LlV0aWwnO1xuXG4oZnVuY3Rpb24gbG9nRmlsdGVyKCk6IHZvaWQge1xuXHRjb25zdCB7Y29uZmlnS2V5fSA9IE9QVElPTlM7XG5cdGNvbnN0IHt3Z0FjdGlvbiwgd2dDYW5vbmljYWxTcGVjaWFsUGFnZU5hbWV9ID0gbXcuY29uZmlnLmdldCgpO1xuXG5cdC8vIEd1YXJkIGFnYWluc3QgZG91YmxlIGluY2x1c2lvbnNcblx0aWYgKG13LmNvbmZpZy5nZXQoY29uZmlnS2V5KSkge1xuXHRcdHJldHVybjtcblx0fVxuXHQvLyBTZXQgZ3VhcmRcblx0bXcuY29uZmlnLnNldChjb25maWdLZXksIHRydWUpO1xuXG5cdC8vIFdoZW4gdG8gZW5hYmxlIGFsbCB0aGlzXG5cdGlmIChcblx0XHR3Z0FjdGlvbiAhPT0gJ2hpc3RvcnknICYmXG5cdFx0IW13LnV0aWwuZ2V0UGFyYW1WYWx1ZSgnbGlmaWx0ZXInKSAmJlxuXHRcdCFSRUdFWF9UQVJHRVRfUEFHRS50ZXN0KHdnQ2Fub25pY2FsU3BlY2lhbFBhZ2VOYW1lIHx8ICcnKVxuXHQpIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHR2b2lkIGdldEJvZHkoKS50aGVuKCgkYm9keTogSlF1ZXJ5PEhUTUxCb2R5RWxlbWVudD4pOiB2b2lkID0+IHtcblx0XHRuZXcgTG9nRmlsdGVyKCRib2R5KS5hZGRQb3J0bGV0TGluaygpOyAvLyBMb2FkXG5cdH0pO1xufSkoKTtcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxrQkFBQSxDQUFBO0FBQUFDLFNBQUFELGlCQUFBO0VBQUFFLFdBQUFBLE1BQUFBO0VBQUFDLFNBQUFBLE1BQUFDO0FBQUEsQ0FBQTtBQUNDLElBQUFGLFlBQWE7QUFEZCxJQUFBRSxrQkFBQTtFQUNDRjtBQUNEOztBQ0ZBLElBQU1HLFdBQVc7RUFDaEIsdUJBQXVCO0VBQ3ZCLDhCQUE4QjtFQUM5QixzQkFBc0I7RUFDdEIsbUNBQW1DO0VBQ25DLGtDQUFrQztFQUNsQyxpQkFBaUI7RUFDakIsdUJBQXVCO0VBQ3ZCLHlCQUF5QjtFQUN6QixrQ0FBa0M7RUFDbEMsc0NBQXNDO0VBQ3RDLHNCQUFzQjtFQUN0Qix1QkFBdUI7RUFDdkIscUJBQXFCO0VBQ3JCLHdCQUF3QjtFQUN4QiwyQkFBMkI7QUFDNUI7O0FDZkEsSUFBQUMsb0JBQWtCQyxRQUFBQyxRQUFBLGtCQUFBLEdBQUEsQ0FBQTs7QUNBWCxJQUFNQyxlQUFlOztBREc1QixJQUFNQyxlQUE4QkMsR0FBR0MsS0FBS0MsY0FBYyxVQUFVO0FBQ3BFLElBQU1DLG9CQUFtQ0gsR0FBR0MsS0FBS0MsY0FBYyxjQUFjO0FBQzdFLElBQU1FLG9CQUFtQ0osR0FBR0MsS0FBS0MsY0FBYyxjQUFjO0FBQzdFLElBQU1HLHVCQUFzQ0wsR0FBR0MsS0FBS0MsY0FBYyxpQkFBaUI7QUFDbkYsSUFB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R0FBQTtJQUFBLFVBQUE7QUFBQXhCLGlCQUFBMEIsRUFBQTtJQUFBO0VBQ0Q7RUFFQSxPQUFlOUUsSUFBSStFLEtBQXFCO0FBQ3ZDQSxVQUFBLFVBQUFOLE9BQWdCTSxHQUFHO0FBSW5CLFdBQU9yRyxHQUFHc0csUUFBUUQsR0FBRyxFQUFFRSxNQUFNO0VBQzlCO0FBQ0Q7O0FFalBBLElBQU1DLG9CQUNMOztBQ2VELElBQUFDLHFCQUFzQjVHLFFBQUEsaUJBQUE7Q0FFckIsU0FBUzZHLFlBQWtCO0FBQzNCLFFBQU07SUFBQ25ILFdBQUFvSDtFQUFTLElBQUl0SDtBQUNwQixRQUFNO0lBQUN1SDtJQUFVQztFQUEwQixJQUFJN0csR0FBRzhHLE9BQU9DLElBQUk7QUFHN0QsTUFBSS9HLEdBQUc4RyxPQUFPQyxJQUFJSixVQUFTLEdBQUc7QUFDN0I7RUFDRDtBQUVBM0csS0FBRzhHLE9BQU83RixJQUFJMEYsWUFBVyxJQUFJO0FBRzdCLE1BQ0NDLGFBQWEsYUFDYixDQUFDNUcsR0FBR0MsS0FBS0MsY0FBYyxVQUFVLEtBQ2pDLENBQUNzRyxrQkFBa0JRLEtBQUtILDhCQUE4QixFQUFFLEdBQ3ZEO0FBQ0Q7RUFDRDtBQUVBLFFBQUEsR0FBS0osbUJBQUFRLFNBQVEsRUFBRUMsS0FBTXBHLFdBQXlDO0FBQzdELFFBQUlQLFVBQVVPLEtBQUssRUFBRUksZUFBZTtFQUNyQyxDQUFDO0FBQ0YsR0FBRzsiLAogICJuYW1lcyI6IFsib3B0aW9uc19leHBvcnRzIiwgIl9fZXhwb3J0IiwgImNvbmZpZ0tleSIsICJkZWZhdWx0IiwgIm9wdGlvbnNfZGVmYXVsdCIsICJNRVNTQUdFUyIsICJpbXBvcnRfZXh0X2dhZGdldCIsICJfX3RvRVNNIiwgInJlcXVpcmUiLCAicmlnaHRzRmlsdGVyIiwgIlVSTF9MSUZJTFRFUiIsICJtdyIsICJ1dGlsIiwgImdldFBhcmFtVmFsdWUiLCAiVVJMX0xJRklMVEVSX0NBU0UiLCAiVVJMX0xJRklMVEVSX0VYUFIiLCAiVVJMX0xJRklMVEVSX0hJTElHSFQiLCAiVVJMX0xJRklMVEVSX0lOViIsICJMb2dGaWx0ZXIiLCAiX0xvZ0ZpbHRlciIsICJyaWdodHNMb2dPbmx5IiwgImxvY2F0aW9uIiwgImhyZWYiLCAiaW5jbHVkZXMiLCAibGFzdENsaWNrZWQiLCAiJGJvZHkiLCAiY29uc3RydWN0b3IiLCAibWVzc2FnZXMiLCAic2V0IiwgImFkZFBvcnRsZXRMaW5rIiwgInBvcnRsZXRMaW5rIiwgImZpbmQiLCAibGVuZ3RoIiwgIm1zZyIsICIkcG9ydGxldExpbmsiLCAiJCIsICJvbiIsICJldmVudCIsICJwcmV2ZW50RGVmYXVsdCIsICJidWlsZEZvcm0iLCAiJHBhZ2VUb3AiLCAib2xkSW5wdXQiLCAiaW5zdHJ1Y3Rpb25zIiwgImhpZGUiLCAiY2FzaW5nIiwgImhpbGlnaHQiLCAiaW52ZXJ0ZWQiLCAiJGZpZWxkU2V0IiwgImF0dHIiLCAiYWRkQ2xhc3MiLCAidGV4dCIsICIkbGVnZW5kIiwgImFwcGVuZCIsICJyZlNlbGVjdCIsICJjcmVhdGVFbGVtZW50IiwgIkZyYWdtZW50IiwgImlkIiwgImh0bWwiLCAiZXNjYXBlIiwgImZpZWxkU2V0SW5uZXIiLCAiY2xhc3NOYW1lIiwgImh0bWxGb3IiLCAidHlwZSIsICJ2YWx1ZSIsICJhZnRlciIsICJ2YWwiLCAicHJvcCIsICJ0cmlnZ2VyIiwgIiRlbGVtZW50IiwgImN1cnJlbnRUYXJnZXQiLCAiZmlsdGVyTGkiLCAiY3VySW5wdXQiLCAiX3RoaXMkJGJvZHkkZmluZCR2YWwkIiwgIl90aGlzJCRib2R5JGZpbmQkdmFsIiwgIiRsaXN0SXRlbXMiLCAidG9TdHJpbmciLCAiaW52ZXJ0IiwgInNlYXJjaCIsICJmbGFncyIsICJyZWdleFJmIiwgIlJlZ0V4cCIsICJlcnJvciIsICJjb25zb2xlIiwgImxvZyIsICJSRUdFWF9SSUdIVCIsICJfaXRlcmF0b3IyIiwgIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwgIl9zdGVwMiIsICJzIiwgIm4iLCAiZG9uZSIsICJfbG9vayIsICJfbG9vazIiLCAiZWxlbWVudCIsICJsb29rIiwgIm9sZHIiLCAicmVwbGFjZSIsICJuZXdyIiwgIm9sZHJsIiwgInNwbGl0IiwgIm5ld3JsIiwgImkiLCAiaiIsICJyZW1yIiwgImpvaW4iLCAiYWRkciIsICJjb25jYXQiLCAiY3NzIiwgInNob3ciLCAiZXJyIiwgImUiLCAiZiIsICJrZXkiLCAibWVzc2FnZSIsICJwbGFpbiIsICJSRUdFWF9UQVJHRVRfUEFHRSIsICJpbXBvcnRfZXh0X2dhZGdldDIiLCAibG9nRmlsdGVyIiwgImNvbmZpZ0tleTIiLCAid2dBY3Rpb24iLCAid2dDYW5vbmljYWxTcGVjaWFsUGFnZU5hbWUiLCAiY29uZmlnIiwgImdldCIsICJ0ZXN0IiwgImdldEJvZHkiLCAidGhlbiJdCn0K +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL0xvZ0ZpbHRlci9vcHRpb25zLmpzb24iLCAic3JjL0xvZ0ZpbHRlci9tb2R1bGVzL21lc3NhZ2VzLnRzIiwgInNyYy9Mb2dGaWx0ZXIvbW9kdWxlcy9jb3JlLnRzeCIsICJzcmMvTG9nRmlsdGVyL0xvZ0ZpbHRlci5tb2R1bGUubGVzcyIsICJzcmMvTG9nRmlsdGVyL21vZHVsZXMvY29uc3RhbnQudHMiLCAic3JjL0xvZ0ZpbHRlci9Mb2dGaWx0ZXIudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIntcblx0XCJjb25maWdLZXlcIjogXCJnYWRnZXQtTG9nRmlsdGVyX19Jbml0aWFsaXplZFwiXG59XG4iLCAiY29uc3QgTUVTU0FHRVMgPSB7XG5cdCdmaWx0ZXItcG9ydGxldC10ZXh0JzogJ+i/h+a7pCcsXG5cdCdmaWx0ZXItcG9ydGxldC1kZXNjcmlwdGlvbic6ICfmiZPlvIDkuqTkupLlvI/ml6Xlv5fmraPliJnov4fmu6TlmagnLFxuXHQnZmlsdGVyLWdhZGdldC1wYWdlJzogJ01lZGlhV2lraTpHYWRnZXQtTG9nRmlsdGVyLmpzJyxcblx0J2ZpbHRlci1yaWdodHMtbGlzdC1pbnN0cnVjdGlvbnMnOiAn5q2j5YiZ6KGo6L6+5byP6L+H5ruk5Lul56m65qC85YiG6ZqU55qE5p2D6ZmQ5YiX6KGo44CCJyxcblx0J2ZpbHRlci1vdGhlci1saXN0LWluc3RydWN0aW9ucyc6ICfmraPliJnooajovr7lvI/ov4fmu6TmnKzliJfooajnmoTnuq/mlofmnKzmoLflvI/jgIInLFxuXHQnZmlsdGVyLWxlZ2VuZCc6ICfov4fmu6TliJfooagnLFxuXHQnZmlsdGVyLW9wdGlvbi1hZGRlZCc6ICfmt7vliqDmnYPpmZAnLFxuXHQnZmlsdGVyLW9wdGlvbi1yZW1vdmVkJzogJ+WIoOmZpOadg+mZkCcsXG5cdCdmaWx0ZXItb3B0aW9uLWFkZGVkLW9yLXJlbW92ZWQnOiAn5re75Yqg5oiW5Yig6Zmk5p2D6ZmQJyxcblx0J2ZpbHRlci1vcHRpb24tYWRkZWQtcmVtb3ZlZC1zdGF0aWMnOiAn5bey5re75YqgL+W3suenu+mZpC/kv53mjIHkuI3lj5gnLFxuXHQnZmlsdGVyLXJlZ2V4LWxhYmVsJzogJ+ato+WImeihqOi+vuW8j++8micsXG5cdCdmaWx0ZXItaW52ZXJ0LWxhYmVsJzogJ+WPjemAiScsXG5cdCdmaWx0ZXItY2FzZS1sYWJlbCc6ICflpKflsI/lhpnmlY/mhJ8nLFxuXHQnZmlsdGVyLWZpbHRlci1idXR0b24nOiAn6L+H5rukJyxcblx0J2ZpbHRlci1oaWdobGlnaHQtYnV0dG9uJzogJ+mrmOS6ricsXG59O1xuXG5leHBvcnQge01FU1NBR0VTfTtcbiIsICJpbXBvcnQge01FU1NBR0VTfSBmcm9tICcuL21lc3NhZ2VzJztcbmltcG9ydCBSZWFjdCBmcm9tICdleHQuZ2FkZ2V0LkpTWCc7XG5pbXBvcnQge3JpZ2h0c0ZpbHRlcn0gZnJvbSAnLi4vTG9nRmlsdGVyLm1vZHVsZS5sZXNzJztcblxuY29uc3QgVVJMX0xJRklMVEVSOiBzdHJpbmcgfCBudWxsID0gbXcudXRpbC5nZXRQYXJhbVZhbHVlKCdsaWZpbHRlcicpO1xuY29uc3QgVVJMX0xJRklMVEVSX0NBU0U6IHN0cmluZyB8IG51bGwgPSBtdy51dGlsLmdldFBhcmFtVmFsdWUoJ2xpZmlsdGVyY2FzZScpO1xuY29uc3QgVVJMX0xJRklMVEVSX0VYUFI6IHN0cmluZyB8IG51bGwgPSBtdy51dGlsLmdldFBhcmFtVmFsdWUoJ2xpZmlsdGVyZXhwcicpO1xuY29uc3QgVVJMX0xJRklMVEVSX0hJTElHSFQ6IHN0cmluZyB8IG51bGwgPSBtdy51dGlsLmdldFBhcmFtVmFsdWUoJ2xpZmlsdGVyaGlsaWdodCcpO1xuY29uc3QgVVJMX0xJRklMVEVSX0lOVjogc3RyaW5nIHwgbnVsbCA9IG13LnV0aWwuZ2V0UGFyYW1WYWx1ZSgnbGlmaWx0ZXJpbnYnKTtcblxuY2xhc3MgTG9nRmlsdGVyIHtcblx0cHJpdmF0ZSByZWFkb25seSByaWdodHNMb2dPbmx5ID0gbG9jYXRpb24uaHJlZi5pbmNsdWRlcygndHlwZT1yaWdodHMnKSB8fCBsb2NhdGlvbi5ocmVmLmluY2x1ZGVzKCdMb2cvcmlnaHRzJyk7XG5cdHByaXZhdGUgbGFzdENsaWNrZWQgPSBmYWxzZTtcblx0cHJpdmF0ZSAkYm9keTogSlF1ZXJ5PEhUTUxCb2R5RWxlbWVudD47XG5cblx0cHVibGljIGNvbnN0cnVjdG9yKCRib2R5OiBKUXVlcnk8SFRNTEJvZHlFbGVtZW50Pikge1xuXHRcdHRoaXMuJGJvZHkgPSAkYm9keTtcblx0XHQvLyBEZWZpbmUgaW50ZXJmYWNlIG1lc3NhZ2VzXG5cdFx0bXcubWVzc2FnZXMuc2V0KE1FU1NBR0VTKTtcblx0fVxuXG5cdHB1YmxpYyBhZGRQb3J0bGV0TGluaygpOiB2b2lkIHtcblx0XHQvLyBDcmVhdGUgcG9ydGxldCBsaW5rXG5cdFx0Y29uc3QgcG9ydGxldExpbms6IEhUTUxMSUVsZW1lbnQgfCBudWxsID0gbXcudXRpbC5hZGRQb3J0bGV0TGluayhcblx0XHRcdHRoaXMuJGJvZHkuZmluZCgnI3AtY2FjdGlvbnMnKS5sZW5ndGggPyAncC1jYWN0aW9ucycgOiAncC10YicsXG5cdFx0XHQnIycsXG5cdFx0XHRMb2dGaWx0ZXIubXNnKCdwb3J0bGV0LXRleHQnKSxcblx0XHRcdCdjYS1yeGZpbHRlcicsXG5cdFx0XHRMb2dGaWx0ZXIubXNnKCdwb3J0bGV0LWRlc2NyaXB0aW9uJylcblx0XHQpO1xuXHRcdC8vIEJpbmQgY2xpY2sgbGlzdGVuZXJcblx0XHRpZiAocG9ydGxldExpbmspIHtcblx0XHRcdGNvbnN0ICRwb3J0bGV0TGluazogSlF1ZXJ5ID0gJChwb3J0bGV0TGluayk7XG5cdFx0XHQkcG9ydGxldExpbmsuZmluZCgnYScpLm9uKCdjbGljaycsIChldmVudDogSlF1ZXJ5LkNsaWNrRXZlbnQpOiB2b2lkID0+IHtcblx0XHRcdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcblx0XHRcdFx0dGhpcy5idWlsZEZvcm0oKTtcblx0XHRcdH0pO1xuXHRcdH1cblx0XHQvLyBEaXNwbGF5IGZvcm0gZGlyZWNsdHk/XG5cdFx0aWYgKFVSTF9MSUZJTFRFUiB8fCBVUkxfTElGSUxURVJfRVhQUikge1xuXHRcdFx0dGhpcy5idWlsZEZvcm0oKTtcblx0XHR9XG5cdH1cblxuXHRwcml2YXRlIGJ1aWxkRm9ybSgpOiB2b2lkIHtcblx0XHRjb25zdCAkcGFnZVRvcDogSlF1ZXJ5ID0gdGhpcy4kYm9keS5maW5kKCcjY29udGVudFN1YiwgI3RvcGJhcicpO1xuXHRcdGlmICghJHBhZ2VUb3AubGVuZ3RoKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0bGV0IG9sZElucHV0OiBzdHJpbmcgPSAnJztcblx0XHRjb25zdCBpbnN0cnVjdGlvbnM6IHN0cmluZyA9IHRoaXMucmlnaHRzTG9nT25seVxuXHRcdFx0PyBMb2dGaWx0ZXIubXNnKCdyaWdodHMtbGlzdC1pbnN0cnVjdGlvbnMnKVxuXHRcdFx0OiBMb2dGaWx0ZXIubXNnKCdvdGhlci1saXN0LWluc3RydWN0aW9ucycpO1xuXG5cdFx0dGhpcy4kYm9keS5maW5kKCcjY2EtcnhmaWx0ZXInKS5oaWRlKCk7XG5cblx0XHQvLyBTZXQgdXAgY29uZmlnXG5cdFx0Y29uc3QgY2FzaW5nOiBib29sZWFuID0gVVJMX0xJRklMVEVSX0NBU0UgPT09ICcxJztcblx0XHRjb25zdCBoaWxpZ2h0OiBib29sZWFuID0gVVJMX0xJRklMVEVSX0hJTElHSFQgPT09ICcxJztcblx0XHRjb25zdCBpbnZlcnRlZDogYm9vbGVhbiA9IFVSTF9MSUZJTFRFUl9JTlYgPT09ICcxJztcblxuXHRcdC8vIEdlbmVyYXRlIHRoZSBmb3JtXG5cdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1lZGlhd2lraS9jbGFzcy1kb2Ncblx0XHRjb25zdCAkZmllbGRTZXQ6IEpRdWVyeSA9ICQoJzxmaWVsZHNldD4nKVxuXHRcdFx0LmF0dHIoJ2lkJywgJ3JpZ2h0c0ZpbHRlcicpXG5cdFx0XHQuYWRkQ2xhc3MocmlnaHRzRmlsdGVyIGFzIHN0cmluZylcblx0XHRcdC50ZXh0KGluc3RydWN0aW9ucyk7XG5cdFx0Y29uc3QgJGxlZ2VuZDogSlF1ZXJ5ID0gJCgnPGxlZ2VuZD4nKS50ZXh0KExvZ0ZpbHRlci5tc2coJ2xlZ2VuZCcpKTtcblx0XHQkZmllbGRTZXQuYXBwZW5kKCRsZWdlbmQpO1xuXG5cdFx0bGV0IHJmU2VsZWN0ID0gPD48Lz47XG5cdFx0aWYgKHRoaXMucmlnaHRzTG9nT25seSkge1xuXHRcdFx0cmZTZWxlY3QgPSAoXG5cdFx0XHRcdDxzZWxlY3QgaWQ9XCJnYWRnZXQtbG9nX2ZpbHRlcl9fc2VsZWN0XCI+XG5cdFx0XHRcdFx0PG9wdGlvbj57bXcuaHRtbC5lc2NhcGUoTG9nRmlsdGVyLm1zZygnb3B0aW9uLWFkZGVkJykpfTwvb3B0aW9uPlxuXHRcdFx0XHRcdDxvcHRpb24+e213Lmh0bWwuZXNjYXBlKExvZ0ZpbHRlci5tc2coJ29wdGlvbi1yZW1vdmVkJykpfTwvb3B0aW9uPlxuXHRcdFx0XHRcdDxvcHRpb24+e213Lmh0bWwuZXNjYXBlKExvZ0ZpbHRlci5tc2coJ29wdGlvbi1hZGRlZC1vci1yZW1vdmVkJykpfTwvb3B0aW9uPlxuXHRcdFx0XHRcdDxvcHRpb24+e213Lmh0bWwuZXNjYXBlKExvZ0ZpbHRlci5tc2coJ29wdGlvbi1hZGRlZC1yZW1vdmVkLXN0YXRpYycpKX08L29wdGlvbj5cblx0XHRcdFx0PC9zZWxlY3Q+XG5cdFx0XHQpO1xuXHRcdH1cblx0XHRjb25zdCBmaWVsZFNldElubmVyID0gKFxuXHRcdFx0PD5cblx0XHRcdFx0PGRpdiBjbGFzc05hbWU9XCJnYWRnZXQtbG9nX2ZpbHRlcl9fcmVnZXhcIj5cblx0XHRcdFx0XHQ8bGFiZWwgaHRtbEZvcj1cImdhZGdldC1sb2dfZmlsdGVyX19yZWdleFwiPnttdy5odG1sLmVzY2FwZShMb2dGaWx0ZXIubXNnKCdyZWdleC1sYWJlbCcpKX08L2xhYmVsPlxuXHRcdFx0XHRcdDxpbnB1dCBpZD1cImdhZGdldC1sb2dfZmlsdGVyX19yZWdleFwiIC8+XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHQ8ZGl2IGNsYXNzTmFtZT1cImdhZGdldC1sb2dfZmlsdGVyX19jaGVja2JveGVzXCI+XG5cdFx0XHRcdFx0PGRpdiBjbGFzc05hbWU9XCJnYWRnZXQtbG9nX2ZpbHRlcl9faW52ZXJ0XCI+XG5cdFx0XHRcdFx0XHQ8aW5wdXQgaWQ9XCJnYWRnZXQtbG9nX2ZpbHRlcl9faW52ZXJ0XCIgdHlwZT1cImNoZWNrYm94XCIgLz5cblx0XHRcdFx0XHRcdDxsYWJlbCBodG1sRm9yPVwiZ2FkZ2V0LWxvZ19maWx0ZXJfX2ludmVydFwiPlxuXHRcdFx0XHRcdFx0XHR7bXcuaHRtbC5lc2NhcGUoTG9nRmlsdGVyLm1zZygnaW52ZXJ0LWxhYmVsJykpfVxuXHRcdFx0XHRcdFx0PC9sYWJlbD5cblx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHQ8ZGl2IGNsYXNzTmFtZT1cImdhZGdldC1sb2dfZmlsdGVyX19jYXNlXCI+XG5cdFx0XHRcdFx0XHQ8aW5wdXQgaWQ9XCJnYWRnZXQtbG9nX2ZpbHRlcl9fY2FzZVwiIHR5cGU9XCJjaGVja2JveFwiIC8+XG5cdFx0XHRcdFx0XHQ8bGFiZWwgaHRtbEZvcj1cImdhZGdldC1sb2dfZmlsdGVyX19jYXNlXCI+e213Lmh0bWwuZXNjYXBlKExvZ0ZpbHRlci5tc2coJ2Nhc2UtbGFiZWwnKSl9PC9sYWJlbD5cblx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdDxkaXYgY2xhc3NOYW1lPVwiZ2FkZ2V0LWxvZ19maWx0ZXJfX2J1dHRvbnNcIj5cblx0XHRcdFx0XHQ8YnV0dG9uXG5cdFx0XHRcdFx0XHRjbGFzc05hbWU9e1snY2R4LWJ1dHRvbiBjZHgtYnV0dG9uLS1hY3Rpb24tcHJvZ3Jlc3NpdmUnLCAnY2R4LWJ1dHRvbi0td2VpZ2h0LXByaW1hcnknXX1cblx0XHRcdFx0XHRcdHZhbHVlPVwiMFwiXG5cdFx0XHRcdFx0PlxuXHRcdFx0XHRcdFx0e213Lmh0bWwuZXNjYXBlKExvZ0ZpbHRlci5tc2coJ2ZpbHRlci1idXR0b24nKSl9XG5cdFx0XHRcdFx0PC9idXR0b24+XG5cdFx0XHRcdFx0PGJ1dHRvblxuXHRcdFx0XHRcdFx0Y2xhc3NOYW1lPXtbJ2NkeC1idXR0b24gY2R4LWJ1dHRvbi0tYWN0aW9uLXByb2dyZXNzaXZlJywgJ2NkeC1idXR0b24tLXdlaWdodC1wcmltYXJ5J119XG5cdFx0XHRcdFx0XHR2YWx1ZT1cIjFcIlxuXHRcdFx0XHRcdD5cblx0XHRcdFx0XHRcdHttdy5odG1sLmVzY2FwZShMb2dGaWx0ZXIubXNnKCdoaWdobGlnaHQtYnV0dG9uJykpfVxuXHRcdFx0XHRcdDwvYnV0dG9uPlxuXHRcdFx0XHQ8L2Rpdj5cblx0XHRcdDwvPlxuXHRcdCk7XG5cdFx0Ly8gSW5qZWN0IHRoZXNlIEhUTUwgZWxlbWVudHMgaW50byB0aGUgZmllbGRzZXRcblx0XHQkZmllbGRTZXQuYXBwZW5kKHJmU2VsZWN0LCBmaWVsZFNldElubmVyKTtcblx0XHQkcGFnZVRvcC5hZnRlcigkZmllbGRTZXQpO1xuXG5cdFx0Ly8gU2V0IHBhc3NlZCB2YWx1ZXNcblx0XHR0aGlzLiRib2R5LmZpbmQoJyNnYWRnZXQtbG9nX2ZpbHRlcl9fcmVnZXgnKS52YWwoVVJMX0xJRklMVEVSX0VYUFIgPz8gJycpO1xuXHRcdHRoaXMuJGJvZHkuZmluZCgnI2dhZGdldC1sb2dfZmlsdGVyX19jYXNlJykucHJvcCgnY2hlY2tlZCcsICFjYXNpbmcpO1xuXHRcdHRoaXMuJGJvZHkuZmluZCgnI2dhZGdldC1sb2dfZmlsdGVyX19pbnZlcnQnKS5wcm9wKCdjaGVja2VkJywgaW52ZXJ0ZWQpO1xuXHRcdHRoaXMuJGJvZHkuZmluZCgnI2dhZGdldC1sb2dfZmlsdGVyX19yZWdleCcpLnRyaWdnZXIoJ2ZvY3VzJyk7XG5cblx0XHQvLyBCaW5kIGNsaWNrIGFuZCBjaGFuZ2UgbGlzdGVuZXJzXG5cdFx0dGhpcy4kYm9keVxuXHRcdFx0LmZpbmQoJyNyaWdodHNGaWx0ZXInKVxuXHRcdFx0LmZpbmQoJ2lucHV0Jylcblx0XHRcdC5vbigna2V5dXAgY2hhbmdlJywgKGV2ZW50KTogdm9pZCA9PiB7XG5cdFx0XHRcdGNvbnN0ICRlbGVtZW50OiBKUXVlcnkgPSAkKGV2ZW50LmN1cnJlbnRUYXJnZXQpO1xuXHRcdFx0XHRpZiAoJGVsZW1lbnQuYXR0cignaWQnKSAhPT0gJ2dhZGdldC1sb2dfZmlsdGVyX19yZWdleCcpIHtcblx0XHRcdFx0XHR0aGlzLmZpbHRlckxpKCk7XG5cdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGNvbnN0IGN1cklucHV0OiBzdHJpbmcgPSAkZWxlbWVudC52YWwoKSBhcyBzdHJpbmc7XG5cdFx0XHRcdGlmIChvbGRJbnB1dCAhPT0gY3VySW5wdXQpIHtcblx0XHRcdFx0XHRvbGRJbnB1dCA9IGN1cklucHV0O1xuXHRcdFx0XHRcdHRoaXMuZmlsdGVyTGkoKTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0JGZpZWxkU2V0LmZpbmQoJ2J1dHRvbicpLm9uKCdjbGljaycsIChldmVudCk6IHZvaWQgPT4ge1xuXHRcdFx0Y29uc3QgJGVsZW1lbnQ6IEpRdWVyeSA9ICQoZXZlbnQuY3VycmVudFRhcmdldCk7XG5cdFx0XHR0aGlzLmxhc3RDbGlja2VkID0gISEkZWxlbWVudC52YWwoKTtcblx0XHRcdHRoaXMuZmlsdGVyTGkoKTtcblx0XHR9KTtcblxuXHRcdGlmIChVUkxfTElGSUxURVJfRVhQUikge1xuXHRcdFx0dGhpcy5maWx0ZXJMaShoaWxpZ2h0KTtcblx0XHR9XG5cdH1cblxuXHRwcml2YXRlIGZpbHRlckxpKGhpbGlnaHQ/OiBib29sZWFuKTogdm9pZCB7XG5cdFx0Ly8gR3JhYiB0aGUgbGlzdCBvZiBhbGwgPGxpPiBpbiB0aGUgY29udGVudFxuXHRcdGNvbnN0ICRsaXN0SXRlbXM6IEpRdWVyeSA9IHRoaXMuJGJvZHkuZmluZCgnI2JvZHlDb250ZW50JykuZmluZCgnbGknKTtcblx0XHRpZiAoISRsaXN0SXRlbXMubGVuZ3RoKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0aGlsaWdodCA9ICEhKGhpbGlnaHQgfHwgdGhpcy5sYXN0Q2xpY2tlZC50b1N0cmluZygpID09PSAnMScpO1xuXG5cdFx0Ly8gR3JhYiBvcHRpb25zIGZyb20gZm9ybVxuXHRcdGxldCB0eXBlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cdFx0aWYgKHRoaXMucmlnaHRzTG9nT25seSkge1xuXHRcdFx0dHlwZSA9IHRoaXMuJGJvZHkuZmluZCgnI2dhZGdldC1sb2dfZmlsdGVyX19zZWxlY3QnKS5hdHRyKCdzZWxlY3RlZEluZGV4Jyk7XG5cdFx0fVxuXG5cdFx0Y29uc3QgaW52ZXJ0ID0gdGhpcy4kYm9keS5maW5kKCcjZ2FkZ2V0LWxvZ19maWx0ZXJfX2ludmVydCcpLnByb3AoJ2NoZWNrZWQnKSBhcyBib29sZWFuO1xuXHRcdGNvbnN0IHNlYXJjaDogc3RyaW5nID0gdGhpcy4kYm9keS5maW5kKCcjZ2FkZ2V0LWxvZ19maWx0ZXJfX3JlZ2V4JykudmFsKCk/LnRvU3RyaW5nKCkgPz8gJyc7XG5cdFx0Y29uc3QgZmxhZ3M6IHN0cmluZyA9IHRoaXMuJGJvZHkuZmluZCgnI2dhZGdldC1sb2dfZmlsdGVyX19jYXNlJykucHJvcCgnY2hlY2tlZCcpID8gJ2lnJyA6ICdnJztcblx0XHRsZXQgcmVnZXhSZjogUmVnRXhwIHwgdW5kZWZpbmVkO1xuXHRcdHRyeSB7XG5cdFx0XHRyZWdleFJmID0gbmV3IFJlZ0V4cChzZWFyY2gsIGZsYWdzKTtcblx0XHR9IGNhdGNoIChlcnJvcikge1xuXHRcdFx0Y29uc29sZS5sb2coZXJyb3IpO1xuXHRcdH1cblxuXHRcdC8vIFRoZSByZWdleCB1c2VkIHRvIGdyYWIgdGhlIFNwZWNpYWw6TG9nL3JpZ2h0cyBjaGFuZ2VzXG5cdFx0Y29uc3QgUkVHRVhfUklHSFQ6IFJlZ0V4cCA9IC9eLio/dXNlcjouKj9cXHNmcm9tXFxzKC4qPylcXHN0b1xccyguKj8pXFxzXFx1MjAwRS4qPyQvaTtcblxuXHRcdC8vIEl0ZXJhdGVcblx0XHRmb3IgKGNvbnN0IGVsZW1lbnQgb2YgJGxpc3RJdGVtcykge1xuXHRcdFx0Y29uc3QgJGVsZW1lbnQ6IEpRdWVyeSA9ICQoZWxlbWVudCk7XG5cdFx0XHRsZXQgbG9vazogc3RyaW5nID0gJyc7XG5cblx0XHRcdGlmICh0aGlzLnJpZ2h0c0xvZ09ubHkpIHtcblx0XHRcdFx0Ly8gU3BlY2lhbDpMb2cvcmlnaHRzXG5cdFx0XHRcdGNvbnN0IG9sZHI6IHN0cmluZyA9ICRlbGVtZW50LnRleHQoKS5yZXBsYWNlKFJFR0VYX1JJR0hULCAnJDEnKTtcblx0XHRcdFx0Y29uc3QgbmV3cjogc3RyaW5nID0gJGVsZW1lbnQudGV4dCgpLnJlcGxhY2UoUkVHRVhfUklHSFQsICckMicpO1xuXHRcdFx0XHRjb25zdCBvbGRybDogc3RyaW5nW10gPSBvbGRyLnNwbGl0KCcsICcpO1xuXHRcdFx0XHRjb25zdCBuZXdybDogc3RyaW5nW10gPSBuZXdyLnNwbGl0KCcsICcpO1xuXHRcdFx0XHRmb3IgKGxldCBpOiBudW1iZXIgPSAwOyBpIDwgb2xkcmwubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0XHRmb3IgKGxldCBqOiBudW1iZXIgPSAwOyBqIDwgbmV3cmwubGVuZ3RoOyBqKyspIHtcblx0XHRcdFx0XHRcdGlmIChvbGRybFtpXSA9PT0gbmV3cmxbal0pIHtcblx0XHRcdFx0XHRcdFx0b2xkcmxbaV0gPSAnJztcblx0XHRcdFx0XHRcdFx0bmV3cmxbal0gPSAnJztcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0Y29uc3QgcmVtcjogc3RyaW5nID0gb2xkcmwuam9pbignLCcpO1xuXHRcdFx0XHRjb25zdCBhZGRyOiBzdHJpbmcgPSBuZXdybC5qb2luKCcsJyk7XG5cdFx0XHRcdHN3aXRjaCAodHlwZSkge1xuXHRcdFx0XHRcdGNhc2UgJzAnOlxuXHRcdFx0XHRcdFx0bG9vayA9IGFkZHI7XG5cdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRjYXNlICcxJzpcblx0XHRcdFx0XHRcdGxvb2sgPSByZW1yO1xuXHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0Y2FzZSAnMic6XG5cdFx0XHRcdFx0XHRsb29rID0gYCR7cmVtcn0gJHthZGRyfWA7XG5cdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRjYXNlICczJzpcblx0XHRcdFx0XHRcdGxvb2sgPSBgJHtvbGRyfSAke25ld3J9YDtcblx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHR9XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHQvLyBBbnkgb3RoZXIgbGlzdCBvZiA8bGk+IG9iamVjdHNcblx0XHRcdFx0bG9vayA9ICRlbGVtZW50LnRleHQoKTtcblx0XHRcdH1cblxuXHRcdFx0JGVsZW1lbnQuY3NzKCdiYWNrZ3JvdW5kLWNvbG9yJywgJycpO1xuXHRcdFx0JGVsZW1lbnQuc2hvdygpO1xuXG5cdFx0XHRpZiAocmVnZXhSZiAmJiAoKGxvb2s/LnNlYXJjaChyZWdleFJmKSA9PT0gLTEgJiYgaW52ZXJ0KSB8fCAobG9vaz8uc2VhcmNoKHJlZ2V4UmYpICE9PSAtMSAmJiAhaW52ZXJ0KSkpIHtcblx0XHRcdFx0aWYgKGhpbGlnaHQpIHtcblx0XHRcdFx0XHQkZWxlbWVudC5jc3MoJ2JhY2tncm91bmQtY29sb3InLCAnI2ZmZmY5OScpO1xuXHRcdFx0XHR9XG5cdFx0XHR9IGVsc2UgaWYgKCFoaWxpZ2h0KSB7XG5cdFx0XHRcdCRlbGVtZW50LmhpZGUoKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRwcml2YXRlIHN0YXRpYyBtc2coa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuXHRcdGtleSA9IGBmaWx0ZXItJHtrZXl9YDtcblx0XHQvLyBNZXNzYWdlcyB0aGF0IGNhbiBiZSB1c2VkIGhlcmU6XG5cdFx0Ly8gKiBzZWUgbWVzc2FnZXMudHNcblx0XHQvLyAqIGZvciBtb3JlIGluZm9ybWF0aW9uXG5cdFx0cmV0dXJuIG13Lm1lc3NhZ2Uoa2V5KS5wbGFpbigpO1xuXHR9XG59XG5cbmV4cG9ydCB7TG9nRmlsdGVyfTtcbiIsICJpbXBvcnQgXCJlc2J1aWxkLWNzcy1tb2R1bGVzLXBsdWdpbi1ucy1jc3M6c3JjL0xvZ0ZpbHRlci9Mb2dGaWx0ZXIubW9kdWxlLmxlc3NcIjtcbmV4cG9ydCBjb25zdCByaWdodHNGaWx0ZXIgPSBcIkxvZ0ZpbHRlci1tb2R1bGVfX3JpZ2h0c0ZpbHRlcl9rWFRKOVdfXzQ5MFwiO1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIFwicmlnaHRzRmlsdGVyXCI6IHJpZ2h0c0ZpbHRlclxufTtcbiAgICAgICIsICJjb25zdCBSRUdFWF9UQVJHRVRfUEFHRTogUmVnRXhwID1cblx0L14oPzphY3RpdmV1c2Vyc3xjaGVja3VzZXJ8Y29udHJpYnV0aW9uc3xpcGJsb2NrbGlzdHxsaW5rc2VhcmNofGxvZ3xzZWFyY2h8KD86dW5jYXRlZ29yaXp8dW51c3x3YW50KWVkKD86Y2F0ZWdvcml8dGVtcGxhdCllc3x3YW50ZWRmaWxlc3woPzpzaG9ydHxsb25nfGFuY2llbnR8dW5jYXRlZ29yaXplZHx1bndhdGNoZWR8d2FudGVkfHByb3RlY3RlZHxkZWFkZW5kfGxvbmVseXxuZXcpcGFnZXN8ZmV3ZXN0cmV2aXNpb25zfHdpdGhvdXRpbnRlcndpa2l8KD86ZG91YmxlfGJyb2tlbilyZWRpcmVjdHN8cHJvdGVjdGVkdGl0bGVzfGNyb3NzbmFtZXNwYWNlbGlua3N8cmVjZW50Y2hhbmdlc3xjYXRlZ29yaWVzfGRpc2FtYmlndWF0aW9uc3xsaXN0cmVkaXJlY3RzfGdsb2JhbHVzZXJzfGdsb2JhbGJsb2NrbGlzdHxsaXN0dXNlcnN8d2F0Y2hsaXN0fG1vc3QoPzpsaW5rZWR8cmV2aXNpb25zfGNhdGVnb3JpZXMpfG51a2V8d2hhdGxpbmtzaGVyZSkkL2k7XG5cbmV4cG9ydCB7UkVHRVhfVEFSR0VUX1BBR0V9O1xuIiwgIi8qKlxuICogTG9nIGZpbHRlciBzY3JpcHRcbiAqXG4gKiBDcmVhdGVkIGJ5IFNwbGFya2FcbiAqIEFtZW5kZWQgYnkgTWlrZS5saWZlZ3VhcmQgJiBMdXBvXG4gKiBQYXJ0aWFsbHkgcmV3cml0dGVuIGJ5IERpZUJ1Y2hlXG4gKlxuICogPGxpPiBlbGVtZW50IEZpbHRlciBTY3JpcHQsIHZlcnNpb24gWzAuMl1cbiAqIFNob3VsZCBjdXJyZW50bHkgd29yayBvbiBhbGwga25vd24gc2tpbnMgKHdpdGggYSAjY29udGVudFN1YiBvciAjdG9wYmFyKVxuICpcbiAqIG13LnV0aWwuZ2V0VXJsKCBtdy5jb25maWcuZ2V0KCAnd2dQYWdlTmFtZScgKSApICsgJz8nICtcbiAqICd3aXRoSlM9TWVkaWFXaWtpOkdhZGdldC1Mb2dGaWx0ZXIuanMmbGlmaWx0ZXI9MSZsaWZpbHRlcmV4cHI9VEVTVCZsaWZpbHRlcmNhc2UmbGlmaWx0ZXJoaWxpZ2h0JmxpZmlsdGVyaW52J1xuICovXG5pbXBvcnQgKiBhcyBPUFRJT05TIGZyb20gJy4vb3B0aW9ucy5qc29uJztcbmltcG9ydCB7TG9nRmlsdGVyfSBmcm9tICcuL21vZHVsZXMvY29yZSc7XG5pbXBvcnQge1JFR0VYX1RBUkdFVF9QQUdFfSBmcm9tICcuL21vZHVsZXMvY29uc3RhbnQnO1xuaW1wb3J0IHtnZXRCb2R5fSBmcm9tICdleHQuZ2FkZ2V0LlV0aWwnO1xuXG4oZnVuY3Rpb24gbG9nRmlsdGVyKCk6IHZvaWQge1xuXHRjb25zdCB7Y29uZmlnS2V5fSA9IE9QVElPTlM7XG5cdGNvbnN0IHt3Z0FjdGlvbiwgd2dDYW5vbmljYWxTcGVjaWFsUGFnZU5hbWV9ID0gbXcuY29uZmlnLmdldCgpO1xuXG5cdC8vIEd1YXJkIGFnYWluc3QgZG91YmxlIGluY2x1c2lvbnNcblx0aWYgKG13LmNvbmZpZy5nZXQoY29uZmlnS2V5KSkge1xuXHRcdHJldHVybjtcblx0fVxuXHQvLyBTZXQgZ3VhcmRcblx0bXcuY29uZmlnLnNldChjb25maWdLZXksIHRydWUpO1xuXG5cdC8vIFdoZW4gdG8gZW5hYmxlIGFsbCB0aGlzXG5cdGlmIChcblx0XHR3Z0FjdGlvbiAhPT0gJ2hpc3RvcnknICYmXG5cdFx0IW13LnV0aWwuZ2V0UGFyYW1WYWx1ZSgnbGlmaWx0ZXInKSAmJlxuXHRcdCFSRUdFWF9UQVJHRVRfUEFHRS50ZXN0KHdnQ2Fub25pY2FsU3BlY2lhbFBhZ2VOYW1lIHx8ICcnKVxuXHQpIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHR2b2lkIGdldEJvZHkoKS50aGVuKCgkYm9keTogSlF1ZXJ5PEhUTUxCb2R5RWxlbWVudD4pOiB2b2lkID0+IHtcblx0XHRuZXcgTG9nRmlsdGVyKCRib2R5KS5hZGRQb3J0bGV0TGluaygpOyAvLyBMb2FkXG5cdH0pO1xufSkoKTtcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxrQkFBQSxDQUFBO0FBQUFDLFNBQUFELGlCQUFBO0VBQUFFLFdBQUFBLE1BQUFBO0VBQUFDLFNBQUFBLE1BQUFDO0FBQUEsQ0FBQTtBQUNDLElBQUFGLFlBQWE7QUFEZCxJQUFBRSxrQkFBQTtFQUNDRjtBQUNEOztBQ0ZBLElBQU1HLFdBQVc7RUFDaEIsdUJBQXVCO0VBQ3ZCLDhCQUE4QjtFQUM5QixzQkFBc0I7RUFDdEIsbUNBQW1DO0VBQ25DLGtDQUFrQztFQUNsQyxpQkFBaUI7RUFDakIsdUJBQXVCO0VBQ3ZCLHlCQUF5QjtFQUN6QixrQ0FBa0M7RUFDbEMsc0NBQXNDO0VBQ3RDLHNCQUFzQjtFQUN0Qix1QkFBdUI7RUFDdkIscUJBQXFCO0VBQ3JCLHdCQUF3QjtFQUN4QiwyQkFBMkI7QUFDNUI7O0FDZkEsSUFBQUMsb0JBQWtCQyxRQUFBQyxRQUFBLGdCQUFBLEdBQUEsQ0FBQTs7QUNBWCxJQUFNQyxlQUFlOztBREc1QixJQUFNQyxlQUE4QkMsR0FBR0MsS0FBS0MsY0FBYyxVQUFVO0FBQ3BFLElBQU1DLG9CQUFtQ0gsR0FBR0MsS0FBS0MsY0FBYyxjQUFjO0FBQzdFLElBQU1FLG9CQUFtQ0osR0FBR0MsS0FBS0MsY0FBYyxjQUFjO0FBQzdFLElBQU1HLHVCQUFzQ0wsR0FBR0MsS0FBS0MsY0FBYyxpQkFBaUI7QUFDbkYsSUFBTUksbUJBQWtDTixHQUFHQyxLQUFLQyxjQUFjLGFBQWE7QUFFM0UsSUFBTUssWUFBTixNQUFNQyxXQUFVO0VBQ0VDLGlCQUFBLE1BQWdCQyxTQUFTQyxLQUFLQyxTQUFTLGFBQWEsS0FBS0YsU0FBU0MsS0FBS0MsU0FBUyxZQUFZLEdBQUE7RUFDckdDLGNBQWM7RUFDZEM7RUFFREMsWUFBWUQsT0FBZ0M7QUFDbEQsU0FBS0EsUUFBUUE7QUFFYmQsT0FBR2dCLFNBQVNDLElBQUl2QixRQUFRO0VBQ3pCO0VBRU93QixpQkFBdUI7QUFFN0IsVUFBTUMsY0FBb0NuQixHQUFHQyxLQUFLaUIsZUFDakQsS0FBS0osTUFBTU0sS0FBSyxhQUFhLEVBQUVDLFNBQVMsZUFBZSxRQUN2RCxLQUNBYixXQUFVYyxJQUFJLGNBQWMsR0FDNUIsZUFDQWQsV0FBVWMsSUFBSSxxQkFBcUIsQ0FDcEM7QUFFQSxRQUFJSCxhQUFhO0FBQ2hCLFlBQU1JLGVBQXVCQyxFQUFFTCxXQUFXO0FBQzFDSSxtQkFBYUgsS0FBSyxHQUFHLEVBQUVLLEdBQUcsU0FBVUMsV0FBbUM7QUFDdEVBLGNBQU1DLGVBQWU7QUFDckIsYUFBS0MsVUFBVTtNQUNoQixDQUFDO0lBQ0Y7QUFFQSxRQUFJN0IsZ0JBQWdCSyxtQkFBbUI7QUFDdEMsV0FBS3dCLFVBQVU7SUFDaEI7RUFDRDtFQUVRQSxZQUFrQjtBQUN6QixVQUFNQyxXQUFtQixLQUFLZixNQUFNTSxLQUFLLHNCQUFzQjtBQUMvRCxRQUFJLENBQUNTLFNBQVNSLFFBQVE7QUFDckI7SUFDRDtBQUVBLFFBQUlTLFdBQW1CO0FBQ3ZCLFVBQU1DLGVBQXVCLEtBQUt0QixnQkFDL0JELFdBQVVjLElBQUksMEJBQTBCLElBQ3hDZCxXQUFVYyxJQUFJLHlCQUF5QjtBQUUxQyxTQUFLUixNQUFNTSxLQUFLLGNBQWMsRUFBRVksS0FBSztBQUdyQyxVQUFNQyxTQUFrQjlCLHNCQUFzQjtBQUM5QyxVQUFNK0IsVUFBbUI3Qix5QkFBeUI7QUFDbEQsVUFBTThCLFdBQW9CN0IscUJBQXFCO0FBSS9DLFVBQU04QixZQUFvQlosRUFBRSxZQUFZLEVBQ3RDYSxLQUFLLE1BQU0sY0FBYyxFQUN6QkMsU0FBU3hDLFlBQXNCLEVBQy9CeUMsS0FBS1IsWUFBWTtBQUNuQixVQUFNUyxVQUFrQmhCLEVBQUUsVUFBVSxFQUFFZSxLQUFLL0IsV0FBVWMsSUFBSSxRQUFRLENBQUM7QUFDbEVjLGNBQVVLLE9BQU9ELE9BQU87QUFFeEIsUUFBSUUsV0FBVy9DLGtDQUFBSCxRQUFBbUQsY0FBQWhELGtCQUFBSCxRQUFBb0QsVUFBQSxJQUFFO0FBQ2pCLFFBQUksS0FBS25DLGVBQWU7QUFDdkJpQyxpQkFDQy9DLGtDQUFBSCxRQUFBbUQsY0FBQyxVQUFBO1FBQU9FLElBQUc7TUFBQSxHQUNWbEQsa0NBQUFILFFBQUFtRCxjQUFDLFVBQUEsTUFBUTNDLEdBQUc4QyxLQUFLQyxPQUFPdkMsV0FBVWMsSUFBSSxjQUFjLENBQUMsQ0FBRSxHQUN2RDNCLGtDQUFBSCxRQUFBbUQsY0FBQyxVQUFBLE1BQVEzQyxHQUFHOEMsS0FBS0MsT0FBT3ZDLFdBQVVjLElBQUksZ0JBQWdCLENBQUMsQ0FBRSxHQUN6RDNCLGtDQUFBSCxRQUFBbUQsY0FBQyxVQUFBLE1BQVEzQyxHQUFHOEMsS0FBS0MsT0FBT3ZDLFdBQVVjLElBQUkseUJBQXlCLENBQUMsQ0FBRSxHQUNsRTNCLGtDQUFBSCxRQUFBbUQsY0FBQyxVQUFBLE1BQVEzQyxHQUFHOEMsS0FBS0MsT0FBT3ZDLFdBQVVjLElBQUksNkJBQTZCLENBQUMsQ0FBRSxDQUN2RTtJQUVGO0FBQ0EsVUFBTTBCLGdCQUNMckQsa0NBQUFILFFBQUFtRCxjQUFBaEQsa0JBQUFILFFBQUFvRCxVQUFBLE1BQ0NqRCxrQ0FBQUgsUUFBQW1ELGNBQUMsT0FBQTtNQUFJTSxXQUFVO0lBQUEsR0FDZHRELGtDQUFBSCxRQUFBbUQsY0FBQyxTQUFBO01BQU1PLFNBQVE7SUFBQSxHQUE0QmxELEdBQUc4QyxLQUFLQyxPQUFPdkMsV0FBVWMsSUFBSSxhQUFhLENBQUMsQ0FBRSxHQUN4RjNCLGtDQUFBSCxRQUFBbUQsY0FBQyxTQUFBO01BQU1FLElBQUc7SUFBQSxDQUEyQixDQUN0QyxHQUNBbEQsa0NBQUFILFFBQUFtRCxjQUFDLE9BQUE7TUFBSU0sV0FBVTtJQUFBLEdBQ2R0RCxrQ0FBQUgsUUFBQW1ELGNBQUMsT0FBQTtNQUFJTSxXQUFVO0lBQUEsR0FDZHRELGtDQUFBSCxRQUFBbUQsY0FBQyxTQUFBO01BQU1FLElBQUc7TUFBNEJNLE1BQUs7SUFBQSxDQUFXLEdBQ3REeEQsa0NBQUFILFFBQUFtRCxjQUFDLFNBQUE7TUFBTU8sU0FBUTtJQUFBLEdBQ2JsRCxHQUFHOEMsS0FBS0MsT0FBT3ZDLFdBQVVjLElBQUksY0FBYyxDQUFDLENBQzlDLENBQ0QsR0FDQTNCLGtDQUFBSCxRQUFBbUQsY0FBQyxPQUFBO01BQUlNLFdBQVU7SUFBQSxHQUNkdEQsa0NBQUFILFFBQUFtRCxjQUFDLFNBQUE7TUFBTUUsSUFBRztNQUEwQk0sTUFBSztJQUFBLENBQVcsR0FDcER4RCxrQ0FBQUgsUUFBQW1ELGNBQUMsU0FBQTtNQUFNTyxTQUFRO0lBQUEsR0FBMkJsRCxHQUFHOEMsS0FBS0MsT0FBT3ZDLFdBQVVjLElBQUksWUFBWSxDQUFDLENBQUUsQ0FDdkYsQ0FDRCxHQUNBM0Isa0NBQUFILFFBQUFtRCxjQUFDLE9BQUE7TUFBSU0sV0FBVTtJQUFBLEdBQ2R0RCxrQ0FBQUgsUUFBQW1ELGNBQUMsVUFBQTtNQUNBTSxXQUFXLENBQUMsNkNBQTZDLDRCQUE0QjtNQUNyRkcsT0FBTTtJQUFBLEdBRUxwRCxHQUFHOEMsS0FBS0MsT0FBT3ZDLFdBQVVjLElBQUksZUFBZSxDQUFDLENBQy9DLEdBQ0EzQixrQ0FBQUgsUUFBQW1ELGNBQUMsVUFBQTtNQUNBTSxXQUFXLENBQUMsNkNBQTZDLDRCQUE0QjtNQUNyRkcsT0FBTTtJQUFBLEdBRUxwRCxHQUFHOEMsS0FBS0MsT0FBT3ZDLFdBQVVjLElBQUksa0JBQWtCLENBQUMsQ0FDbEQsQ0FDRCxDQUNEO0FBR0RjLGNBQVVLLE9BQU9DLFVBQVVNLGFBQWE7QUFDeENuQixhQUFTd0IsTUFBTWpCLFNBQVM7QUFHeEIsU0FBS3RCLE1BQU1NLEtBQUssMkJBQTJCLEVBQUVrQyxJQUFJbEQsc0JBQUEsUUFBQUEsc0JBQUEsU0FBQUEsb0JBQXFCLEVBQUU7QUFDeEUsU0FBS1UsTUFBTU0sS0FBSywwQkFBMEIsRUFBRW1DLEtBQUssV0FBVyxDQUFDdEIsTUFBTTtBQUNuRSxTQUFLbkIsTUFBTU0sS0FBSyw0QkFBNEIsRUFBRW1DLEtBQUssV0FBV3BCLFFBQVE7QUFDdEUsU0FBS3JCLE1BQU1NLEtBQUssMkJBQTJCLEVBQUVvQyxRQUFRLE9BQU87QUFHNUQsU0FBSzFDLE1BQ0hNLEtBQUssZUFBZSxFQUNwQkEsS0FBSyxPQUFPLEVBQ1pLLEdBQUcsZ0JBQWlCQyxXQUFnQjtBQUNwQyxZQUFNK0IsV0FBbUJqQyxFQUFFRSxNQUFNZ0MsYUFBYTtBQUM5QyxVQUFJRCxTQUFTcEIsS0FBSyxJQUFJLE1BQU0sNEJBQTRCO0FBQ3ZELGFBQUtzQixTQUFTO0FBQ2Q7TUFDRDtBQUNBLFlBQU1DLFdBQW1CSCxTQUFTSCxJQUFJO0FBQ3RDLFVBQUl4QixhQUFhOEIsVUFBVTtBQUMxQjlCLG1CQUFXOEI7QUFDWCxhQUFLRCxTQUFTO01BQ2Y7SUFDRCxDQUFDO0FBQ0Z2QixjQUFVaEIsS0FBSyxRQUFRLEVBQUVLLEdBQUcsU0FBVUMsV0FBZ0I7QUFDckQsWUFBTStCLFdBQW1CakMsRUFBRUUsTUFBTWdDLGFBQWE7QUFDOUMsV0FBSzdDLGNBQWMsQ0FBQyxDQUFDNEMsU0FBU0gsSUFBSTtBQUNsQyxXQUFLSyxTQUFTO0lBQ2YsQ0FBQztBQUVELFFBQUl2RCxtQkFBbUI7QUFDdEIsV0FBS3VELFNBQVN6QixPQUFPO0lBQ3RCO0VBQ0Q7RUFFUXlCLFNBQVN6QixTQUF5QjtBQUFBLFFBQUEyQix1QkFBQUM7QUFFekMsVUFBTUMsYUFBcUIsS0FBS2pELE1BQU1NLEtBQUssY0FBYyxFQUFFQSxLQUFLLElBQUk7QUFDcEUsUUFBSSxDQUFDMkMsV0FBVzFDLFFBQVE7QUFDdkI7SUFDRDtBQUVBYSxjQUFVLENBQUMsRUFBRUEsV0FBVyxLQUFLckIsWUFBWW1ELFNBQVMsTUFBTTtBQUd4RCxRQUFJYjtBQUNKLFFBQUksS0FBSzFDLGVBQWU7QUFDdkIwQyxhQUFPLEtBQUtyQyxNQUFNTSxLQUFLLDRCQUE0QixFQUFFaUIsS0FBSyxlQUFlO0lBQzFFO0FBRUEsVUFBTTRCLFNBQVMsS0FBS25ELE1BQU1NLEtBQUssNEJBQTRCLEVBQUVtQyxLQUFLLFNBQVM7QUFDM0UsVUFBTVcsVUFBQUwseUJBQUFDLHVCQUFpQixLQUFLaEQsTUFBTU0sS0FBSywyQkFBMkIsRUFBRWtDLElBQUksT0FBQSxRQUFBUSx5QkFBQSxTQUFBLFNBQWpEQSxxQkFBb0RFLFNBQVMsT0FBQSxRQUFBSCwwQkFBQSxTQUFBQSx3QkFBSztBQUN6RixVQUFNTSxRQUFnQixLQUFLckQsTUFBTU0sS0FBSywwQkFBMEIsRUFBRW1DLEtBQUssU0FBUyxJQUFJLE9BQU87QUFDM0YsUUFBSWE7QUFDSixRQUFJO0FBQ0hBLGdCQUFVLElBQUlDLE9BQU9ILFFBQVFDLEtBQUs7SUFDbkMsU0FBU0csT0FBTztBQUNmQyxjQUFRQyxJQUFJRixLQUFLO0lBQ2xCO0FBR0EsVUFBTUcsY0FBc0I7QUFBQSxRQUFBQyxhQUFBQywyQkFHTlosVUFBQSxHQUFBYTtBQUFBLFFBQUE7QUFBdEIsV0FBQUYsV0FBQUcsRUFBQSxHQUFBLEVBQUFELFNBQUFGLFdBQUFJLEVBQUEsR0FBQUMsUUFBa0M7QUFBQSxZQUFBQyxPQUFBQztBQUFBLGNBQXZCQyxVQUFBTixPQUFBeEI7QUFDVixjQUFNSyxXQUFtQmpDLEVBQUUwRCxPQUFPO0FBQ2xDLFlBQUlDLE9BQWU7QUFFbkIsWUFBSSxLQUFLMUUsZUFBZTtBQUV2QixnQkFBTTJFLE9BQWUzQixTQUFTbEIsS0FBSyxFQUFFOEMsUUFBUVosYUFBYSxJQUFJO0FBQzlELGdCQUFNYSxPQUFlN0IsU0FBU2xCLEtBQUssRUFBRThDLFFBQVFaLGFBQWEsSUFBSTtBQUM5RCxnQkFBTWMsUUFBa0JILEtBQUtJLE1BQU0sSUFBSTtBQUN2QyxnQkFBTUMsUUFBa0JILEtBQUtFLE1BQU0sSUFBSTtBQUN2QyxtQkFBU0UsSUFBWSxHQUFHQSxJQUFJSCxNQUFNbEUsUUFBUXFFLEtBQUs7QUFDOUMscUJBQVNDLElBQVksR0FBR0EsSUFBSUYsTUFBTXBFLFFBQVFzRSxLQUFLO0FBQzlDLGtCQUFJSixNQUFNRyxDQUFDLE1BQU1ELE1BQU1FLENBQUMsR0FBRztBQUMxQkosc0JBQU1HLENBQUMsSUFBSTtBQUNYRCxzQkFBTUUsQ0FBQyxJQUFJO2NBQ1o7WUFDRDtVQUNEO0FBQ0EsZ0JBQU1DLE9BQWVMLE1BQU1NLEtBQUssR0FBRztBQUNuQyxnQkFBTUMsT0FBZUwsTUFBTUksS0FBSyxHQUFHO0FBQ25DLGtCQUFRMUMsTUFBQTtZQUNQLEtBQUs7QUFDSmdDLHFCQUFPVztBQUNQO1lBQ0QsS0FBSztBQUNKWCxxQkFBT1M7QUFDUDtZQUNELEtBQUs7QUFDSlQscUJBQUEsR0FBQVksT0FBVUgsTUFBSSxHQUFBLEVBQUFHLE9BQUlELElBQUk7QUFDdEI7WUFDRCxLQUFLO0FBQ0pYLHFCQUFBLEdBQUFZLE9BQVVYLE1BQUksR0FBQSxFQUFBVyxPQUFJVCxJQUFJO0FBQ3RCO1VBQ0Y7UUFDRCxPQUFPO0FBRU5ILGlCQUFPMUIsU0FBU2xCLEtBQUs7UUFDdEI7QUFFQWtCLGlCQUFTdUMsSUFBSSxvQkFBb0IsRUFBRTtBQUNuQ3ZDLGlCQUFTd0MsS0FBSztBQUVkLFlBQUk3QixjQUFhWSxRQUFBRyxVQUFBLFFBQUFILFVBQUEsU0FBQSxTQUFBQSxNQUFNZCxPQUFPRSxPQUFPLE9BQU0sTUFBTUgsWUFBWWdCLFNBQUFFLFVBQUEsUUFBQUYsV0FBQSxTQUFBLFNBQUFBLE9BQU1mLE9BQU9FLE9BQU8sT0FBTSxNQUFNLENBQUNILFNBQVU7QUFDdkcsY0FBSS9CLFNBQVM7QUFDWnVCLHFCQUFTdUMsSUFBSSxvQkFBb0IsU0FBUztVQUMzQztRQUNELFdBQVcsQ0FBQzlELFNBQVM7QUFDcEJ1QixtQkFBU3pCLEtBQUs7UUFDZjtNQUNEO0lBQUEsU0FBQWtFLEtBQUE7QUFBQXhCLGlCQUFBeUIsRUFBQUQsR0FBQTtJQUFBLFVBQUE7QUFBQXhCLGlCQUFBMEIsRUFBQTtJQUFBO0VBQ0Q7RUFFQSxPQUFlOUUsSUFBSStFLEtBQXFCO0FBQ3ZDQSxVQUFBLFVBQUFOLE9BQWdCTSxHQUFHO0FBSW5CLFdBQU9yRyxHQUFHc0csUUFBUUQsR0FBRyxFQUFFRSxNQUFNO0VBQzlCO0FBQ0Q7O0FFalBBLElBQU1DLG9CQUNMOztBQ2VELElBQUFDLHFCQUFzQjVHLFFBQUEsaUJBQUE7Q0FFckIsU0FBUzZHLFlBQWtCO0FBQzNCLFFBQU07SUFBQ25ILFdBQUFvSDtFQUFTLElBQUl0SDtBQUNwQixRQUFNO0lBQUN1SDtJQUFVQztFQUEwQixJQUFJN0csR0FBRzhHLE9BQU9DLElBQUk7QUFHN0QsTUFBSS9HLEdBQUc4RyxPQUFPQyxJQUFJSixVQUFTLEdBQUc7QUFDN0I7RUFDRDtBQUVBM0csS0FBRzhHLE9BQU83RixJQUFJMEYsWUFBVyxJQUFJO0FBRzdCLE1BQ0NDLGFBQWEsYUFDYixDQUFDNUcsR0FBR0MsS0FBS0MsY0FBYyxVQUFVLEtBQ2pDLENBQUNzRyxrQkFBa0JRLEtBQUtILDhCQUE4QixFQUFFLEdBQ3ZEO0FBQ0Q7RUFDRDtBQUVBLFFBQUEsR0FBS0osbUJBQUFRLFNBQVEsRUFBRUMsS0FBTXBHLFdBQXlDO0FBQzdELFFBQUlQLFVBQVVPLEtBQUssRUFBRUksZUFBZTtFQUNyQyxDQUFDO0FBQ0YsR0FBRzsiLAogICJuYW1lcyI6IFsib3B0aW9uc19leHBvcnRzIiwgIl9fZXhwb3J0IiwgImNvbmZpZ0tleSIsICJkZWZhdWx0IiwgIm9wdGlvbnNfZGVmYXVsdCIsICJNRVNTQUdFUyIsICJpbXBvcnRfZXh0X2dhZGdldCIsICJfX3RvRVNNIiwgInJlcXVpcmUiLCAicmlnaHRzRmlsdGVyIiwgIlVSTF9MSUZJTFRFUiIsICJtdyIsICJ1dGlsIiwgImdldFBhcmFtVmFsdWUiLCAiVVJMX0xJRklMVEVSX0NBU0UiLCAiVVJMX0xJRklMVEVSX0VYUFIiLCAiVVJMX0xJRklMVEVSX0hJTElHSFQiLCAiVVJMX0xJRklMVEVSX0lOViIsICJMb2dGaWx0ZXIiLCAiX0xvZ0ZpbHRlciIsICJyaWdodHNMb2dPbmx5IiwgImxvY2F0aW9uIiwgImhyZWYiLCAiaW5jbHVkZXMiLCAibGFzdENsaWNrZWQiLCAiJGJvZHkiLCAiY29uc3RydWN0b3IiLCAibWVzc2FnZXMiLCAic2V0IiwgImFkZFBvcnRsZXRMaW5rIiwgInBvcnRsZXRMaW5rIiwgImZpbmQiLCAibGVuZ3RoIiwgIm1zZyIsICIkcG9ydGxldExpbmsiLCAiJCIsICJvbiIsICJldmVudCIsICJwcmV2ZW50RGVmYXVsdCIsICJidWlsZEZvcm0iLCAiJHBhZ2VUb3AiLCAib2xkSW5wdXQiLCAiaW5zdHJ1Y3Rpb25zIiwgImhpZGUiLCAiY2FzaW5nIiwgImhpbGlnaHQiLCAiaW52ZXJ0ZWQiLCAiJGZpZWxkU2V0IiwgImF0dHIiLCAiYWRkQ2xhc3MiLCAidGV4dCIsICIkbGVnZW5kIiwgImFwcGVuZCIsICJyZlNlbGVjdCIsICJjcmVhdGVFbGVtZW50IiwgIkZyYWdtZW50IiwgImlkIiwgImh0bWwiLCAiZXNjYXBlIiwgImZpZWxkU2V0SW5uZXIiLCAiY2xhc3NOYW1lIiwgImh0bWxGb3IiLCAidHlwZSIsICJ2YWx1ZSIsICJhZnRlciIsICJ2YWwiLCAicHJvcCIsICJ0cmlnZ2VyIiwgIiRlbGVtZW50IiwgImN1cnJlbnRUYXJnZXQiLCAiZmlsdGVyTGkiLCAiY3VySW5wdXQiLCAiX3RoaXMkJGJvZHkkZmluZCR2YWwkIiwgIl90aGlzJCRib2R5JGZpbmQkdmFsIiwgIiRsaXN0SXRlbXMiLCAidG9TdHJpbmciLCAiaW52ZXJ0IiwgInNlYXJjaCIsICJmbGFncyIsICJyZWdleFJmIiwgIlJlZ0V4cCIsICJlcnJvciIsICJjb25zb2xlIiwgImxvZyIsICJSRUdFWF9SSUdIVCIsICJfaXRlcmF0b3IyIiwgIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwgIl9zdGVwMiIsICJzIiwgIm4iLCAiZG9uZSIsICJfbG9vayIsICJfbG9vazIiLCAiZWxlbWVudCIsICJsb29rIiwgIm9sZHIiLCAicmVwbGFjZSIsICJuZXdyIiwgIm9sZHJsIiwgInNwbGl0IiwgIm5ld3JsIiwgImkiLCAiaiIsICJyZW1yIiwgImpvaW4iLCAiYWRkciIsICJjb25jYXQiLCAiY3NzIiwgInNob3ciLCAiZXJyIiwgImUiLCAiZiIsICJrZXkiLCAibWVzc2FnZSIsICJwbGFpbiIsICJSRUdFWF9UQVJHRVRfUEFHRSIsICJpbXBvcnRfZXh0X2dhZGdldDIiLCAibG9nRmlsdGVyIiwgImNvbmZpZ0tleTIiLCAid2dBY3Rpb24iLCAid2dDYW5vbmljYWxTcGVjaWFsUGFnZU5hbWUiLCAiY29uZmlnIiwgImdldCIsICJ0ZXN0IiwgImdldEJvZHkiLCAidGhlbiJdCn0K diff --git a/dist/MarkBlocked/MarkBlocked.css b/dist/MarkBlocked/MarkBlocked.css index ed6075c3d..833734bba 100644 --- a/dist/MarkBlocked/MarkBlocked.css +++ b/dist/MarkBlocked/MarkBlocked.css @@ -20,21 +20,21 @@ /* */ /* esbuild-css-modules-plugin-ns-css:src/MarkBlocked/modules/MarkBlocked.module.less */ -.MarkBlocked-module__userlinkTemp_xtAfOG { +.MarkBlocked-module__userlinkTemp_xtAfOG__490 { opacity: .7; text-decoration: line-through; } -.MarkBlocked-module__userlinkPartial_xtAfOG { +.MarkBlocked-module__userlinkPartial_xtAfOG__490 { opacity: .85; -webkit-text-decoration: underline dotted; text-decoration: underline dotted; } -.MarkBlocked-module__userlinkIndef_xtAfOG { +.MarkBlocked-module__userlinkIndef_xtAfOG__490 { opacity: .4; font-style: italic; text-decoration: line-through; } -.MarkBlocked-module__userlinkLocked_xtAfOG { +.MarkBlocked-module__userlinkLocked_xtAfOG__490 { opacity: .4; font-style: italic; -webkit-text-decoration: line-through double; @@ -43,4 +43,4 @@ /* */ -/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiZXNidWlsZC1jc3MtbW9kdWxlcy1wbHVnaW4tbnMtY3NzOnNyYy9NYXJrQmxvY2tlZC9tb2R1bGVzL01hcmtCbG9ja2VkLm1vZHVsZS5sZXNzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiA8c3RkaW4+ICovXG4uTWFya0Jsb2NrZWQtbW9kdWxlX191c2VybGlua1RlbXBfeHRBZk9HIHtcbiAgb3BhY2l0eTogLjc7XG4gIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xufVxuLk1hcmtCbG9ja2VkLW1vZHVsZV9fdXNlcmxpbmtQYXJ0aWFsX3h0QWZPRyB7XG4gIG9wYWNpdHk6IC44NTtcbiAgLXdlYmtpdC10ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDtcbn1cbi5NYXJrQmxvY2tlZC1tb2R1bGVfX3VzZXJsaW5rSW5kZWZfeHRBZk9HIHtcbiAgb3BhY2l0eTogLjQ7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG59XG4uTWFya0Jsb2NrZWQtbW9kdWxlX191c2VybGlua0xvY2tlZF94dEFmT0cge1xuICBvcGFjaXR5OiAuNDtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICAtd2Via2l0LXRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoIGRvdWJsZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2ggZG91YmxlO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLENBQUM7QUFDQyxXQUFTO0FBQ1QsbUJBQWlCO0FBQ25CO0FBQ0EsQ0FBQztBQUNDLFdBQVM7QUFDVCwyQkFBeUIsVUFBVTtBQUNuQyxtQkFBaUIsVUFBVTtBQUM3QjtBQUNBLENBQUM7QUFDQyxXQUFTO0FBQ1QsY0FBWTtBQUNaLG1CQUFpQjtBQUNuQjtBQUNBLENBQUM7QUFDQyxXQUFTO0FBQ1QsY0FBWTtBQUNaLDJCQUF5QixhQUFhO0FBQ3RDLG1CQUFpQixhQUFhO0FBQ2hDOyIsCiAgIm5hbWVzIjogW10KfQo= */ +/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiZXNidWlsZC1jc3MtbW9kdWxlcy1wbHVnaW4tbnMtY3NzOnNyYy9NYXJrQmxvY2tlZC9tb2R1bGVzL01hcmtCbG9ja2VkLm1vZHVsZS5sZXNzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiA8c3RkaW4+ICovXG4uTWFya0Jsb2NrZWQtbW9kdWxlX191c2VybGlua1RlbXBfeHRBZk9HX180OTAge1xuICBvcGFjaXR5OiAuNztcbiAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG59XG4uTWFya0Jsb2NrZWQtbW9kdWxlX191c2VybGlua1BhcnRpYWxfeHRBZk9HX180OTAge1xuICBvcGFjaXR5OiAuODU7XG4gIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XG59XG4uTWFya0Jsb2NrZWQtbW9kdWxlX191c2VybGlua0luZGVmX3h0QWZPR19fNDkwIHtcbiAgb3BhY2l0eTogLjQ7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG59XG4uTWFya0Jsb2NrZWQtbW9kdWxlX191c2VybGlua0xvY2tlZF94dEFmT0dfXzQ5MCB7XG4gIG9wYWNpdHk6IC40O1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2ggZG91YmxlO1xuICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaCBkb3VibGU7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsQ0FBQztBQUNDLFdBQVM7QUFDVCxtQkFBaUI7QUFDbkI7QUFDQSxDQUFDO0FBQ0MsV0FBUztBQUNULDJCQUF5QixVQUFVO0FBQ25DLG1CQUFpQixVQUFVO0FBQzdCO0FBQ0EsQ0FBQztBQUNDLFdBQVM7QUFDVCxjQUFZO0FBQ1osbUJBQWlCO0FBQ25CO0FBQ0EsQ0FBQztBQUNDLFdBQVM7QUFDVCxjQUFZO0FBQ1osMkJBQXlCLGFBQWE7QUFDdEMsbUJBQWlCLGFBQWE7QUFDaEM7IiwKICAibmFtZXMiOiBbXQp9Cg== */ diff --git a/dist/MarkBlocked/MarkBlocked.js b/dist/MarkBlocked/MarkBlocked.js index c309b9889..d31ce4107 100644 --- a/dist/MarkBlocked/MarkBlocked.js +++ b/dist/MarkBlocked/MarkBlocked.js @@ -161,10 +161,10 @@ var parseTS = (string) => { return new Date(Date.UTC(+m[1], +m[2] - 1, +m[3], +m[4], +m[5], +m[6])).getTime(); }; //! src/MarkBlocked/modules/MarkBlocked.module.less -var userlinkIndef = "MarkBlocked-module__userlinkIndef_xtAfOG"; -var userlinkLocked = "MarkBlocked-module__userlinkLocked_xtAfOG"; -var userlinkPartial = "MarkBlocked-module__userlinkPartial_xtAfOG"; -var userlinkTemp = "MarkBlocked-module__userlinkTemp_xtAfOG"; +var userlinkIndef = "MarkBlocked-module__userlinkIndef_xtAfOG__490"; +var userlinkLocked = "MarkBlocked-module__userlinkLocked_xtAfOG__490"; +var userlinkPartial = "MarkBlocked-module__userlinkPartial_xtAfOG__490"; +var userlinkTemp = "MarkBlocked-module__userlinkTemp_xtAfOG__490"; //! src/MarkBlocked/modules/util/markLinks.ts var markGlobalLockedLinks = ({ response, @@ -729,4 +729,4 @@ if (!["edit", "submit"].includes(mw.config.get("wgAction"))) { /* */ -//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL01hcmtCbG9ja2VkL29wdGlvbnMuanNvbiIsICJzcmMvTWFya0Jsb2NrZWQvbW9kdWxlcy9pMThuLnRzIiwgInNyYy9NYXJrQmxvY2tlZC9tb2R1bGVzL3V0aWwvcGFyc2VUaW1lLnRzIiwgInNyYy9NYXJrQmxvY2tlZC9tb2R1bGVzL01hcmtCbG9ja2VkLm1vZHVsZS5sZXNzIiwgInNyYy9NYXJrQmxvY2tlZC9tb2R1bGVzL3V0aWwvbWFya0xpbmtzLnRzIiwgInNyYy9NYXJrQmxvY2tlZC9tb2R1bGVzL3V0aWwvYXBpLnRzIiwgInNyYy9NYXJrQmxvY2tlZC9tb2R1bGVzL3V0aWwvcXVlcnkudHMiLCAic3JjL01hcmtCbG9ja2VkL21vZHVsZXMvdXRpbC9tYXJrVXNlckxpbmtzLnRzIiwgInNyYy9NYXJrQmxvY2tlZC9tb2R1bGVzL3V0aWwvZ2VuZXJhdGVVc2VyTGlua3MudHMiLCAic3JjL01hcmtCbG9ja2VkL21vZHVsZXMvdXRpbC9nZW5lcmF0ZVVzZXJOYW1lc3BhY2VUaXRsZXMudHMiLCAic3JjL01hcmtCbG9ja2VkL21vZHVsZXMvbWFya0Jsb2NrZWRVc2VyLnRzIiwgInNyYy9NYXJrQmxvY2tlZC9tb2R1bGVzL2FkZEhvb2sudHMiLCAic3JjL01hcmtCbG9ja2VkL01hcmtCbG9ja2VkLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJ7XG5cdFwiY29udHJpYnV0aW9uc1BhZ2VBbGlhc1wiOiBcIlNwZWNpYWw6Q29udHJpYnV0aW9uc1wiLFxuXHRcInVzZXJOYW1lc3BhY2VOdW1iZXJzXCI6IFsyLCAzXSxcblx0XCJzdG9yYWdlS2V5TG9ja2VkXCI6IFwiZXh0LmdhZGdldC5NYXJrQmxvY2tlZF9pc0xvY2tlZC1cIixcblx0XCJzdG9yYWdlS2V5QmxvY2tlZFwiOiBcImV4dC5nYWRnZXQuTWFya0Jsb2NrZWRfaXNCbG9ja2VkLVwiLFxuXHRcInZlcnNpb25cIjogXCIyLjBcIlxufVxuIiwgImltcG9ydCB7bG9jYWxpemV9IGZyb20gJ2V4dC5nYWRnZXQuaTE4bic7XG5cbmNvbnN0IGdldEkxOG5NZXNzYWdlcyA9ICgpID0+IHtcblx0cmV0dXJuIHtcblx0XHRpbmZpbml0eTogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdpbmZpbml0eScsXG5cdFx0XHQnemgtaGFucyc6ICfml6DpmZDmnJ8nLFxuXHRcdFx0J3poLWhhbnQnOiAn54Sh6ZmQ5pyfJyxcblx0XHR9KSxcblx0XHRCbG9ja2VkOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJzsgJDVibG9ja2VkICgkMSkgYnkgJDI6ICQzICgkNCBhZ28pJyxcblx0XHRcdCd6aC1oYW5zJzogJ++8m+eUsSQyJDXlsIHnpoEkMe+8miQz77yIJDTliY3vvIknLFxuXHRcdFx0J3poLWhhbnQnOiAn77yb55SxJDIkNeWwgemOliQx77yaJDPvvIgkNOWJje+8iScsXG5cdFx0fSksXG5cdFx0J0dsb2JhbGx5IEJsb2NrZWQnOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJzsgJDVibG9ja2VkIGdsb2JhbGx5ICgkMSkgYnkgJDI6ICQzICgkNCBhZ28pJyxcblx0XHRcdCd6aC1oYW5zJzogJ++8m+eUsSQyJDXlhajln5/lsIHnpoEkMe+8miQz77yIJDTliY3vvIknLFxuXHRcdFx0J3poLWhhbnQnOiAn77yb55SxJDIkNeWFqOWfn+WwgemOliQx77yaJDPvvIgkNOWJje+8iScsXG5cdFx0fSksXG5cdFx0TG9ja2VkOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJzsgTG9ja2VkJyxcblx0XHRcdCd6aC1oYW5zJzogJ++8m+W3suWFqOWfn+mUgeWumicsXG5cdFx0XHQnemgtaGFudCc6ICfvvJvlt7Llhajln5/pjpblrponLFxuXHRcdH0pLFxuXHRcdHBhcnRpYWw6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAncGFydGlhbCAnLFxuXHRcdFx0emg6ICfpg6jliIYnLFxuXHRcdH0pLFxuXHRcdGQ6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnZGF5Jyxcblx0XHRcdHpoOiAn5aSpJyxcblx0XHR9KSxcblx0XHRzOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ3NlY29uZCcsXG5cdFx0XHR6aDogJ+enkicsXG5cdFx0fSksXG5cdH07XG59O1xuXG5jb25zdCBpMThuTWVzc2FnZXMgPSBnZXRJMThuTWVzc2FnZXMoKTtcblxuY29uc3QgZ2V0TWVzc2FnZTogR2V0TWVzc2FnZXM8dHlwZW9mIGkxOG5NZXNzYWdlcz4gPSAoa2V5KSA9PiB7XG5cdHJldHVybiBpMThuTWVzc2FnZXNba2V5XSB8fCBrZXk7XG59O1xuXG5leHBvcnQge2dldE1lc3NhZ2V9O1xuIiwgImltcG9ydCB7Z2V0TWVzc2FnZX0gZnJvbSAnLi4vaTE4bic7XG5cbmNvbnN0IGFkZFplcm8gPSAodjogbnVtYmVyKTogc3RyaW5nID0+IHtcblx0cmV0dXJuIHYgPD0gOSA/IGAwJHt2fWAgOiBgJHt2fWA7XG59O1xuXG5jb25zdCBpbkhvdXJzID0gKG1zOiBudW1iZXIpOiBzdHJpbmcgPT4ge1xuXHRsZXQgbW06IG51bWJlciA9IE1hdGguZmxvb3IobXMgLyA2ZTQpO1xuXHRpZiAoIW1tKSB7XG5cdFx0cmV0dXJuIGAke01hdGguZmxvb3IobXMgLyAxZTMpfSR7Z2V0TWVzc2FnZSgncycpfWA7XG5cdH1cblxuXHRsZXQgaGg6IG51bWJlciA9IE1hdGguZmxvb3IobW0gLyA2MCk7XG5cdG1tICU9IDYwO1xuXG5cdGNvbnN0IGRkOiBudW1iZXIgPSBNYXRoLmZsb29yKGhoIC8gMjQpO1xuXHRoaCAlPSAyNDtcblxuXHRpZiAoZGQpIHtcblx0XHRyZXR1cm4gYCR7ZGQgKyAoZGQgPCAxMCA/IGAuJHthZGRaZXJvKGhoKX1gIDogJycpfSR7Z2V0TWVzc2FnZSgnZCcpfWA7XG5cdH1cblxuXHRyZXR1cm4gYCR7aGh9OiR7YWRkWmVybyhtbSl9YDtcbn07XG5cbi8vIDIwMDgxMjI2MjIwNjA1IG9yIDIwMDgtMDEtMjZUMDY6MzQ6MTlaIC0+IG51bWJlclxuY29uc3QgcGFyc2VUUyA9IChzdHJpbmc6IHN0cmluZyk6IG51bWJlciA9PiB7XG5cdGNvbnN0IG06IFJlZ0V4cE1hdGNoQXJyYXkgPSBzdHJpbmdcblx0XHQucmVwbGFjZSgvXFxEL2csICcnKVxuXHRcdC5tYXRjaCgvKFxcZFxcZFxcZFxcZCkoXFxkXFxkKShcXGRcXGQpKFxcZFxcZCkoXFxkXFxkKShcXGRcXGQpLykgYXMgUmVnRXhwTWF0Y2hBcnJheTtcblxuXHRyZXR1cm4gbmV3IERhdGUoXG5cdFx0RGF0ZS5VVEMoXG5cdFx0XHQrKG1bMV0gYXMgc3RyaW5nKSxcblx0XHRcdCsobVsyXSBhcyBzdHJpbmcpIC0gMSxcblx0XHRcdCsobVszXSBhcyBzdHJpbmcpLFxuXHRcdFx0KyhtWzRdIGFzIHN0cmluZyksXG5cdFx0XHQrKG1bNV0gYXMgc3RyaW5nKSxcblx0XHRcdCsobVs2XSBhcyBzdHJpbmcpXG5cdFx0KVxuXHQpLmdldFRpbWUoKTtcbn07XG5cbmV4cG9ydCB7aW5Ib3VycywgcGFyc2VUU307XG4iLCAiaW1wb3J0IFwiZXNidWlsZC1jc3MtbW9kdWxlcy1wbHVnaW4tbnMtY3NzOnNyYy9NYXJrQmxvY2tlZC9tb2R1bGVzL01hcmtCbG9ja2VkLm1vZHVsZS5sZXNzXCI7XG5leHBvcnQgY29uc3QgdXNlcmxpbmtJbmRlZiA9IFwiTWFya0Jsb2NrZWQtbW9kdWxlX191c2VybGlua0luZGVmX3h0QWZPR1wiO1xuZXhwb3J0IGNvbnN0IHVzZXJsaW5rTG9ja2VkID0gXCJNYXJrQmxvY2tlZC1tb2R1bGVfX3VzZXJsaW5rTG9ja2VkX3h0QWZPR1wiO1xuZXhwb3J0IGNvbnN0IHVzZXJsaW5rUGFydGlhbCA9IFwiTWFya0Jsb2NrZWQtbW9kdWxlX191c2VybGlua1BhcnRpYWxfeHRBZk9HXCI7XG5leHBvcnQgY29uc3QgdXNlcmxpbmtUZW1wID0gXCJNYXJrQmxvY2tlZC1tb2R1bGVfX3VzZXJsaW5rVGVtcF94dEFmT0dcIjtcblxuZXhwb3J0IGRlZmF1bHQge1xuICBcInVzZXJsaW5rSW5kZWZcIjogdXNlcmxpbmtJbmRlZixcbiAgXCJ1c2VybGlua0xvY2tlZFwiOiB1c2VybGlua0xvY2tlZCxcbiAgXCJ1c2VybGlua1BhcnRpYWxcIjogdXNlcmxpbmtQYXJ0aWFsLFxuICBcInVzZXJsaW5rVGVtcFwiOiB1c2VybGlua1RlbXBcbn07XG4gICAgICAiLCAiaW1wb3J0IHR5cGUge1F1ZXJ5R2xvYmFsTG9ja3NSZXNwb25zZSwgUXVlcnlMb2NhbEFuZEdsb2JhbEJsb2Nrc1Jlc3BvbnNlfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQge2luSG91cnMsIHBhcnNlVFN9IGZyb20gJy4vcGFyc2VUaW1lJztcbmltcG9ydCB7dXNlcmxpbmtJbmRlZiwgdXNlcmxpbmtMb2NrZWQsIHVzZXJsaW5rUGFydGlhbCwgdXNlcmxpbmtUZW1wfSBmcm9tICcuLi9NYXJrQmxvY2tlZC5tb2R1bGUubGVzcyc7XG5pbXBvcnQge2dldE1lc3NhZ2V9IGZyb20gJy4uL2kxOG4nO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBDYWxsYmFjazogcmVjZWl2ZSBkYXRhIGFuZCBtYXJrIGxpbmtzXG4gKi9cblxuY29uc3QgbWFya0dsb2JhbExvY2tlZExpbmtzID0gKHtcblx0cmVzcG9uc2UsXG5cdHVzZXJMaW5rcyxcbn06IHtcblx0cmVzcG9uc2U6IFF1ZXJ5R2xvYmFsTG9ja3NSZXNwb25zZTtcblx0dXNlckxpbmtzOiBSZWNvcmQ8c3RyaW5nLCBKUXVlcnlbXT47XG59KTogdm9pZCA9PiB7XG5cdC8vIEdsb2JhbCBsb2Nrc1xuXHRpZiAoIXJlc3BvbnNlWydxdWVyeSddPy5nbG9iYWx1c2VyaW5mbykge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGNvbnN0IHVzZXIgPSByZXNwb25zZVsncXVlcnknXS5nbG9iYWx1c2VyaW5mbz8ubmFtZTtcblx0Y29uc3QgbG9ja2VkID0gcmVzcG9uc2VbJ3F1ZXJ5J10uZ2xvYmFsdXNlcmluZm8/LmxvY2tlZDtcblxuXHRpZiAoIWxvY2tlZCB8fCAhdXNlcikge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGNvbnN0IHRpcDogc3RyaW5nID0gZ2V0TWVzc2FnZSgnTG9ja2VkJyk7XG5cblx0Y29uc3QgJGxpbmtzOiBKUXVlcnlbXSB8IHVuZGVmaW5lZCA9IHVzZXJMaW5rc1t1c2VyXTtcblx0aWYgKCEkbGlua3MpIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRjb25zdCBjbGFzc05hbWUgPSB1c2VybGlua0xvY2tlZCBhcyBzdHJpbmc7XG5cblx0Zm9yIChjb25zdCAkbGluayBvZiAkbGlua3MpIHtcblx0XHQvLyBUaGUgZm9sbG93aW5nIGNsYXNzZXMgYXJlIHVzZWQgaGVyZTpcblx0XHQvLyAqIHNlZSAuL01hcmtibG9ja2VkLm1vZHVsZS5sZXNzXG5cdFx0Ly8gKiBmb3IgbW9yZSBpbmZvcm1hdGlvblxuXHRcdCRsaW5rLmFkZENsYXNzKGNsYXNzTmFtZSkuYXR0cigndGl0bGUnLCAkbGluay5hdHRyKCd0aXRsZScpICsgdGlwKTtcblx0fVxufTtcblxuY29uc3QgbWFya0xvY2FsQmxvY2tzID0gKHtcblx0cmVzcG9uc2UsXG5cdHVzZXJMaW5rcyxcblx0YmtpcCxcbn06IHtcblx0cmVzcG9uc2U6IFF1ZXJ5TG9jYWxBbmRHbG9iYWxCbG9ja3NSZXNwb25zZTtcblx0dXNlckxpbmtzOiBSZWNvcmQ8c3RyaW5nLCBKUXVlcnlbXT47XG5cdGJraXA/OiBzdHJpbmc7XG59KTogdm9pZCA9PiB7XG5cdC8vIExvY2FsIGJsb2Nrc1xuXHRpZiAoIXJlc3BvbnNlWydxdWVyeSddPy5ibG9ja3MpIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRmb3IgKGNvbnN0IGJsb2NrIG9mIHJlc3BvbnNlWydxdWVyeSddLmJsb2Nrcykge1xuXHRcdGNvbnN0IGlzUGFydGlhbEJsY29rOiBib29sZWFuID0gdHlwZW9mIGJsb2NrLnJlc3RyaWN0aW9ucyA9PT0gJ3N0cmluZycgJiYgYmxvY2sucmVzdHJpY3Rpb25zICE9PSAnJzsgLy8gUGFydGlhbCBibG9ja1xuXG5cdFx0bGV0IGNsYXNzTmFtZTogc3RyaW5nID0gdXNlcmxpbmtQYXJ0aWFsIGFzIHN0cmluZztcblx0XHRsZXQgYmxvY2tUaW1lOiBzdHJpbmcgPSAnJztcblx0XHRpZiAoYmxvY2suZXhwaXJ5LnN0YXJ0c1dpdGgoJ2luJykpIHtcblx0XHRcdGlmICghaXNQYXJ0aWFsQmxjb2spIHtcblx0XHRcdFx0Y2xhc3NOYW1lID0gdXNlcmxpbmtJbmRlZiBhcyBzdHJpbmc7XG5cdFx0XHR9XG5cdFx0XHRibG9ja1RpbWUgPSBnZXRNZXNzYWdlKCdpbmZpbml0eScpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRpZiAoIWlzUGFydGlhbEJsY29rKSB7XG5cdFx0XHRcdGNsYXNzTmFtZSA9IHVzZXJsaW5rVGVtcCBhcyBzdHJpbmc7XG5cdFx0XHR9XG5cdFx0XHRibG9ja1RpbWUgPSBpbkhvdXJzKHBhcnNlVFMoYmxvY2suZXhwaXJ5KSAtIHBhcnNlVFMoYmxvY2sudGltZXN0YW1wKSk7XG5cdFx0fVxuXG5cdFx0bGV0IHRpcDogc3RyaW5nID0gZ2V0TWVzc2FnZSgnQmxvY2tlZCcpXG5cdFx0XHQucmVwbGFjZSgnJDEnLCBibG9ja1RpbWUpXG5cdFx0XHQucmVwbGFjZSgnJDInLCBibG9jay5ieSlcblx0XHRcdC5yZXBsYWNlKCckMycsIGJsb2NrLnJlYXNvbilcblx0XHRcdC5yZXBsYWNlKCckNCcsIGluSG91cnMoRGF0ZS5ub3coKSAtIHBhcnNlVFMoYmxvY2sudGltZXN0YW1wKSkpO1xuXHRcdHRpcCA9IGlzUGFydGlhbEJsY29rID8gdGlwLnJlcGxhY2UoJyQ1JywgZ2V0TWVzc2FnZSgncGFydGlhbCcpKSA6IHRpcC5yZXBsYWNlKCckNScsICcnKTtcblxuXHRcdGNvbnN0ICRsaW5rczogSlF1ZXJ5W10gfCB1bmRlZmluZWQgPSB1c2VyTGlua3NbYmtpcCA/PyBibG9jay51c2VyXTtcblx0XHRpZiAoISRsaW5rcykge1xuXHRcdFx0Y29udGludWU7XG5cdFx0fVxuXG5cdFx0Zm9yIChjb25zdCAkbGluayBvZiAkbGlua3MpIHtcblx0XHRcdC8vIFRoZSBmb2xsb3dpbmcgY2xhc3NlcyBhcmUgdXNlZCBoZXJlOlxuXHRcdFx0Ly8gKiBzZWUgLi9NYXJrYmxvY2tlZC5tb2R1bGUubGVzc1xuXHRcdFx0Ly8gKiBmb3IgbW9yZSBpbmZvcm1hdGlvblxuXHRcdFx0JGxpbmsuYWRkQ2xhc3MoY2xhc3NOYW1lKS5hdHRyKCd0aXRsZScsICRsaW5rLmF0dHIoJ3RpdGxlJykgKyB0aXApO1xuXHRcdH1cblx0fVxufTtcblxuY29uc3QgbWFya0dsb2JhbEJsb2NrcyA9ICh7XG5cdHJlc3BvbnNlLFxuXHR1c2VyTGlua3MsXG5cdGJraXAsXG59OiB7XG5cdHJlc3BvbnNlOiBRdWVyeUxvY2FsQW5kR2xvYmFsQmxvY2tzUmVzcG9uc2U7XG5cdHVzZXJMaW5rczogUmVjb3JkPHN0cmluZywgSlF1ZXJ5W10+O1xuXHRia2lwPzogc3RyaW5nO1xufSk6IHZvaWQgPT4ge1xuXHQvLyBHbG9iYWwgYmxvY2tzXG5cdGlmICghcmVzcG9uc2VbJ3F1ZXJ5J10/Lmdsb2JhbGJsb2Nrcykge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGZvciAoY29uc3QgYmxvY2sgb2YgcmVzcG9uc2VbJ3F1ZXJ5J10uZ2xvYmFsYmxvY2tzKSB7XG5cdFx0bGV0IGNsYXNzTmFtZTogc3RyaW5nID0gdXNlcmxpbmtQYXJ0aWFsIGFzIHN0cmluZztcblx0XHRsZXQgYmxvY2tUaW1lOiBzdHJpbmcgPSAnJztcblx0XHRpZiAoYmxvY2suZXhwaXJ5LnN0YXJ0c1dpdGgoJ2luJykpIHtcblx0XHRcdGNsYXNzTmFtZSA9IHVzZXJsaW5rSW5kZWYgYXMgc3RyaW5nO1xuXHRcdFx0YmxvY2tUaW1lID0gZ2V0TWVzc2FnZSgnaW5maW5pdHknKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Y2xhc3NOYW1lID0gdXNlcmxpbmtUZW1wIGFzIHN0cmluZztcblx0XHRcdGJsb2NrVGltZSA9IGluSG91cnMocGFyc2VUUyhibG9jay5leHBpcnkpIC0gcGFyc2VUUyhibG9jay50aW1lc3RhbXApKTtcblx0XHR9XG5cblx0XHRsZXQgdGlwOiBzdHJpbmcgPSBnZXRNZXNzYWdlKCdHbG9iYWxseSBCbG9ja2VkJylcblx0XHRcdC5yZXBsYWNlKCckMScsIGJsb2NrVGltZSlcblx0XHRcdC5yZXBsYWNlKCckMicsIGJsb2NrLmJ5KVxuXHRcdFx0LnJlcGxhY2UoJyQzJywgYmxvY2sucmVhc29uKVxuXHRcdFx0LnJlcGxhY2UoJyQ0JywgaW5Ib3VycyhEYXRlLm5vdygpIC0gcGFyc2VUUyhibG9jay50aW1lc3RhbXApKSk7XG5cdFx0dGlwID0gdGlwLnJlcGxhY2UoJyQ1JywgJycpO1xuXG5cdFx0Y29uc3QgJGxpbmtzOiBKUXVlcnlbXSB8IHVuZGVmaW5lZCA9IHVzZXJMaW5rc1tia2lwID8/IGJsb2NrLnRhcmdldF07XG5cdFx0aWYgKCEkbGlua3MpIHtcblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblxuXHRcdGZvciAoY29uc3QgJGxpbmsgb2YgJGxpbmtzKSB7XG5cdFx0XHQvLyBUaGUgZm9sbG93aW5nIGNsYXNzZXMgYXJlIHVzZWQgaGVyZTpcblx0XHRcdC8vICogc2VlIC4vTWFya2Jsb2NrZWQubW9kdWxlLmxlc3Ncblx0XHRcdC8vICogZm9yIG1vcmUgaW5mb3JtYXRpb25cblx0XHRcdCRsaW5rLmFkZENsYXNzKGNsYXNzTmFtZSkuYXR0cigndGl0bGUnLCAkbGluay5hdHRyKCd0aXRsZScpICsgdGlwKTtcblx0XHR9XG5cdH1cbn07XG5cbmV4cG9ydCB7bWFya0dsb2JhbExvY2tlZExpbmtzLCBtYXJrTG9jYWxCbG9ja3MsIG1hcmtHbG9iYWxCbG9ja3N9O1xuIiwgImltcG9ydCAqIGFzIE9QVElPTlMgZnJvbSAnLi4vLi4vb3B0aW9ucy5qc29uJztcbmltcG9ydCB7aW5pdE13QXBpfSBmcm9tICdleHQuZ2FkZ2V0LlV0aWwnO1xuXG5jb25zdCBhcGk6IG13LkFwaSA9IGluaXRNd0FwaShgTWFya0Jsb2NrZWQvJHtPUFRJT05TLnZlcnNpb259YCk7XG5cbmV4cG9ydCB7YXBpfTtcbiIsICJpbXBvcnQge0FwaVF1ZXJ5R2xvYmFsQmxvY2tzUGFyYW1zUmVkZWZpbmVkfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQge2FwaX0gZnJvbSAnLi9hcGknO1xuXG5jb25zdCBxdWVyeUdsb2JhbFVzZXJJbmZvID0gYXN5bmMgKGd1aXVzZXI6IHN0cmluZykgPT4ge1xuXHRjb25zdCBwYXJhbXM6IEFwaVF1ZXJ5R2xvYmFsVXNlckluZm9SZXNwb25zZSA9IHtcblx0XHRhY3Rpb246ICdxdWVyeScsXG5cdFx0Zm9ybWF0OiAnanNvbicsXG5cdFx0Zm9ybWF0dmVyc2lvbjogJzInLFxuXHRcdG1ldGE6IFsnZ2xvYmFsdXNlcmluZm8nXSxcblx0XHRndWl1c2VyLFxuXHRcdHNtYXhhZ2U6IDYwMCxcblx0XHRtYXhhZ2U6IDYwMCxcblx0fTtcblxuXHRyZXR1cm4gYXdhaXQgYXBpLmdldChwYXJhbXMpO1xufTtcblxuY29uc3QgcXVlcnlJUEJsb2NrcyA9IGFzeW5jIChia2lwOiBzdHJpbmcpID0+IHtcblx0Y29uc3QgcGFyYW1zOiBBcGlRdWVyeUJsb2Nrc1BhcmFtcyAmIEFwaVF1ZXJ5R2xvYmFsQmxvY2tzUGFyYW1zUmVkZWZpbmVkID0ge1xuXHRcdGFjdGlvbjogJ3F1ZXJ5Jyxcblx0XHRmb3JtYXQ6ICdqc29uJyxcblx0XHRmb3JtYXR2ZXJzaW9uOiAnMicsXG5cdFx0bGlzdDogWydibG9ja3MnLCAnZ2xvYmFsYmxvY2tzJ10sXG5cdFx0YmtpcCxcblx0XHRia2xpbWl0OiAxMDAsXG5cdFx0Ymtwcm9wOiBbJ2J5JywgJ2V4cGlyeScsICdyZWFzb24nLCAncmVzdHJpY3Rpb25zJywgJ3RpbWVzdGFtcCcsICd1c2VyJ10sXG5cdFx0YmdpcDogYmtpcCxcblx0XHRiZ2xpbWl0OiAxMDAsXG5cdFx0Ymdwcm9wOiBbJ2J5JywgJ2V4cGlyeScsICdyZWFzb24nLCAndGltZXN0YW1wJywgJ3RhcmdldCddLFxuXHRcdHNtYXhhZ2U6IDYwMCxcblx0XHRtYXhhZ2U6IDYwMCxcblx0fTtcblxuXHRyZXR1cm4gYXdhaXQgYXBpLmdldChwYXJhbXMpO1xufTtcblxuY29uc3QgcXVlcnlVc2VyQmxvY2tzID0gYXN5bmMgKGJrdXNlcnM6IHN0cmluZyB8IHN0cmluZ1tdKSA9PiB7XG5cdGNvbnN0IHBhcmFtczogQXBpUXVlcnlCbG9ja3NQYXJhbXMgJiBBcGlRdWVyeUdsb2JhbEJsb2Nrc1BhcmFtc1JlZGVmaW5lZCA9IHtcblx0XHRhY3Rpb246ICdxdWVyeScsXG5cdFx0Zm9ybWF0OiAnanNvbicsXG5cdFx0Zm9ybWF0dmVyc2lvbjogJzInLFxuXHRcdGxpc3Q6IFsnYmxvY2tzJywgJ2dsb2JhbGJsb2NrcyddLFxuXHRcdGJrdXNlcnMsXG5cdFx0YmtsaW1pdDogMTAwLFxuXHRcdGJrcHJvcDogWydieScsICdleHBpcnknLCAncmVhc29uJywgJ3Jlc3RyaWN0aW9ucycsICd0aW1lc3RhbXAnLCAndXNlciddLFxuXHRcdGJnbGltaXQ6IDEwMCxcblx0XHRiZ3RhcmdldHM6IGJrdXNlcnMsXG5cdFx0Ymdwcm9wOiBbJ2J5JywgJ2V4cGlyeScsICdyZWFzb24nLCAndGltZXN0YW1wJywgJ3RhcmdldCddLFxuXHRcdHNtYXhhZ2U6IDYwMCxcblx0XHRtYXhhZ2U6IDYwMCxcblx0fTtcblxuXHRyZXR1cm4gYXdhaXQgYXBpLmdldChwYXJhbXMpO1xufTtcblxuZXhwb3J0IHtxdWVyeUdsb2JhbFVzZXJJbmZvLCBxdWVyeUlQQmxvY2tzLCBxdWVyeVVzZXJCbG9ja3N9O1xuIiwgImltcG9ydCAqIGFzIE9QVElPTlMgZnJvbSAnLi4vLi4vb3B0aW9ucy5qc29uJztcbmltcG9ydCB0eXBlIHtRdWVyeUdsb2JhbExvY2tzUmVzcG9uc2UsIFF1ZXJ5TG9jYWxBbmRHbG9iYWxCbG9ja3NSZXNwb25zZX0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHttYXJrR2xvYmFsQmxvY2tzLCBtYXJrR2xvYmFsTG9ja2VkTGlua3MsIG1hcmtMb2NhbEJsb2Nrc30gZnJvbSAnLi9tYXJrTGlua3MnO1xuaW1wb3J0IHtxdWVyeUdsb2JhbFVzZXJJbmZvLCBxdWVyeUlQQmxvY2tzLCBxdWVyeVVzZXJCbG9ja3N9IGZyb20gJy4vcXVlcnknO1xuXG5jb25zdCBtYXJrR2xvYmFsTG9ja2VkVXNlckxpbmtzID0gKHVzZXJMaW5rczogUmVjb3JkPHN0cmluZywgSlF1ZXJ5W10+KSA9PiB7XG5cdC8vIENvbnZlcnQgdXNlcnMgaW50byBhcnJheVxuXHRjb25zdCB1c2Vyczogc3RyaW5nW10gPSBPYmplY3Qua2V5cyh1c2VyTGlua3MpO1xuXHRpZiAoIXVzZXJzLmxlbmd0aCkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGNvbnN0IHByb21pc2VzOiAoKCkgPT4gUHJvbWlzZTx2b2lkPilbXSA9IFtdO1xuXG5cdC8vIEdsb2JhbCBMb2NrIHF1ZXJpZXNcblx0Zm9yIChjb25zdCBndWl1c2VyIG9mIHVzZXJzKSB7XG5cdFx0aWYgKG13LnV0aWwuaXNJUHY0QWRkcmVzcyhndWl1c2VyKSB8fCBtdy51dGlsLmlzSVB2NkFkZHJlc3MoZ3VpdXNlcikpIHtcblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblxuXHRcdGlmIChtdy5zdG9yYWdlLmdldE9iamVjdChPUFRJT05TLnN0b3JhZ2VLZXlMb2NrZWQgKyBndWl1c2VyKSkge1xuXHRcdFx0Y29uc3QgcmVzcG9uc2UgPSBtdy5zdG9yYWdlLmdldE9iamVjdChPUFRJT05TLnN0b3JhZ2VLZXlMb2NrZWQgKyBndWl1c2VyKSBhcyBRdWVyeUdsb2JhbExvY2tzUmVzcG9uc2U7XG5cblx0XHRcdGlmIChyZXNwb25zZVsncXVlcnknXT8uZ2xvYmFsdXNlcmluZm8pIHtcblx0XHRcdFx0bWFya0dsb2JhbExvY2tlZExpbmtzKHtyZXNwb25zZSwgdXNlckxpbmtzfSk7XG5cdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHByb21pc2VzW3Byb21pc2VzLmxlbmd0aF0gPSBhc3luYyAoKTogUHJvbWlzZTx2b2lkPiA9PiB7XG5cdFx0XHR0cnkge1xuXHRcdFx0XHRjb25zdCByZXNwb25zZSA9IChhd2FpdCBxdWVyeUdsb2JhbFVzZXJJbmZvKGd1aXVzZXIpKSBhcyBRdWVyeUdsb2JhbExvY2tzUmVzcG9uc2U7XG5cblx0XHRcdFx0bWFya0dsb2JhbExvY2tlZExpbmtzKHtyZXNwb25zZSwgdXNlckxpbmtzfSk7XG5cblx0XHRcdFx0bXcuc3RvcmFnZS5zZXRPYmplY3QoT1BUSU9OUy5zdG9yYWdlS2V5TG9ja2VkICsgZ3VpdXNlciwgcmVzcG9uc2UsIDYwICogNjAgKiAyNCk7XG5cdFx0XHR9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuXHRcdFx0XHRjb25zb2xlLmVycm9yKCdbTWFya0Jsb2NrZWRdIEFqYXggZXJyb3I6JywgZXJyb3IpO1xuXHRcdFx0fVxuXHRcdH07XG5cdH1cblxuXHR2b2lkIChhc3luYyAoKSA9PiB7XG5cdFx0Zm9yIChjb25zdCBwcm9taXNlIG9mIHByb21pc2VzKSB7XG5cdFx0XHR0cnkge1xuXHRcdFx0XHRhd2FpdCBwcm9taXNlKCk7XG5cdFx0XHR9IGNhdGNoIHt9XG5cdFx0fVxuXHR9KSgpO1xufTtcblxuY29uc3QgbWFya0Jsb2NrZWRVc2VyTGlua3MgPSAodXNlckxpbmtzOiBSZWNvcmQ8c3RyaW5nLCBKUXVlcnlbXT4pID0+IHtcblx0Ly8gQ29udmVydCB1c2VycyBpbnRvIGFycmF5XG5cdGxldCB1c2Vyczogc3RyaW5nW10gPSBPYmplY3Qua2V5cyh1c2VyTGlua3MpO1xuXHRpZiAoIXVzZXJzLmxlbmd0aCkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGNvbnN0IHByb21pc2VzOiAoKCkgPT4gUHJvbWlzZTx2b2lkPilbXSA9IFtdO1xuXG5cdGZvciAoY29uc3QgdXNlciBvZiB1c2Vycykge1xuXHRcdGlmIChtdy5zdG9yYWdlLmdldE9iamVjdChPUFRJT05TLnN0b3JhZ2VLZXlCbG9ja2VkICsgdXNlcikpIHtcblx0XHRcdGNvbnN0IHJlc3BvbnNlID0gbXcuc3RvcmFnZS5nZXRPYmplY3QoXG5cdFx0XHRcdE9QVElPTlMuc3RvcmFnZUtleUJsb2NrZWQgKyB1c2VyXG5cdFx0XHQpIGFzIFF1ZXJ5TG9jYWxBbmRHbG9iYWxCbG9ja3NSZXNwb25zZTtcblxuXHRcdFx0aWYgKHJlc3BvbnNlWydxdWVyeSddPy5ibG9ja3MgfHwgcmVzcG9uc2VbJ3F1ZXJ5J10/Lmdsb2JhbGJsb2Nrcykge1xuXHRcdFx0XHRpZiAocmVzcG9uc2VbJ3F1ZXJ5J10/LmJsb2Nrcykge1xuXHRcdFx0XHRcdG1hcmtMb2NhbEJsb2Nrcyh7cmVzcG9uc2UsIHVzZXJMaW5rc30pO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0aWYgKHJlc3BvbnNlWydxdWVyeSddPy5nbG9iYWxibG9ja3MpIHtcblx0XHRcdFx0XHRtYXJrR2xvYmFsQmxvY2tzKHtyZXNwb25zZSwgdXNlckxpbmtzfSk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHR1c2VycyA9IHVzZXJzLmZpbHRlcigoZWxlbWVudCkgPT4ge1xuXHRcdFx0XHRcdHJldHVybiBlbGVtZW50ICE9PSB1c2VyO1xuXHRcdFx0XHR9KTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQvLyBMb2NhbCBhbmQgZ2xvYmFsIHVzZXIgYmxvY2sgcXVlcmllc1xuXHRmb3IgKGxldCBpID0gMDsgaSA8IHVzZXJzLmxlbmd0aDsgaSsrKSB7XG5cdFx0Y29uc3QgYmt1c2VycyA9IHVzZXJzLnNwbGljZSgwLCAyNSk7XG5cdFx0aWYgKCFia3VzZXJzLmxlbmd0aCkge1xuXHRcdFx0Y29udGludWU7XG5cdFx0fVxuXG5cdFx0cHJvbWlzZXNbcHJvbWlzZXMubGVuZ3RoXSA9IGFzeW5jICgpOiBQcm9taXNlPHZvaWQ+ID0+IHtcblx0XHRcdHRyeSB7XG5cdFx0XHRcdGNvbnN0IHJlc3BvbnNlID0gKGF3YWl0IHF1ZXJ5VXNlckJsb2Nrcyhia3VzZXJzKSkgYXMgUXVlcnlMb2NhbEFuZEdsb2JhbEJsb2Nrc1Jlc3BvbnNlO1xuXG5cdFx0XHRcdGlmIChyZXNwb25zZVsncXVlcnknXT8uYmxvY2tzKSB7XG5cdFx0XHRcdFx0bWFya0xvY2FsQmxvY2tzKHtyZXNwb25zZSwgdXNlckxpbmtzfSk7XG5cblx0XHRcdFx0XHRmb3IgKGNvbnN0IGJsb2NrIG9mIHJlc3BvbnNlWydxdWVyeSddLmJsb2Nrcykge1xuXHRcdFx0XHRcdFx0aWYgKGJsb2NrLnVzZXIpIHtcblx0XHRcdFx0XHRcdFx0bXcuc3RvcmFnZS5zZXRPYmplY3QoT1BUSU9OUy5zdG9yYWdlS2V5TG9ja2VkICsgYmxvY2sudXNlciwgcmVzcG9uc2UsIDYwICogNjApO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdGlmIChyZXNwb25zZVsncXVlcnknXT8uZ2xvYmFsYmxvY2tzKSB7XG5cdFx0XHRcdFx0bWFya0dsb2JhbEJsb2Nrcyh7cmVzcG9uc2UsIHVzZXJMaW5rc30pO1xuXG5cdFx0XHRcdFx0Zm9yIChjb25zdCBibG9jayBvZiByZXNwb25zZVsncXVlcnknXS5nbG9iYWxibG9ja3MpIHtcblx0XHRcdFx0XHRcdGlmIChibG9jay50YXJnZXQpIHtcblx0XHRcdFx0XHRcdFx0bXcuc3RvcmFnZS5zZXRPYmplY3QoT1BUSU9OUy5zdG9yYWdlS2V5TG9ja2VkICsgYmxvY2sudGFyZ2V0LCByZXNwb25zZSwgNjAgKiA2MCk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuXHRcdFx0XHRjb25zb2xlLmVycm9yKCdbTWFya0Jsb2NrZWRdIEFqYXggZXJyb3I6JywgZXJyb3IpO1xuXHRcdFx0fVxuXHRcdH07XG5cdH1cblxuXHR2b2lkIChhc3luYyAoKSA9PiB7XG5cdFx0Zm9yIChjb25zdCBwcm9taXNlIG9mIHByb21pc2VzKSB7XG5cdFx0XHR0cnkge1xuXHRcdFx0XHRhd2FpdCBwcm9taXNlKCk7XG5cdFx0XHR9IGNhdGNoIHt9XG5cdFx0fVxuXHR9KSgpO1xufTtcblxuY29uc3QgbWFya0Jsb2NrZWRJUExpbmtzID0gKHVzZXJMaW5rczogUmVjb3JkPHN0cmluZywgSlF1ZXJ5W10+KSA9PiB7XG5cdC8vIENvbnZlcnQgdXNlcnMgaW50byBhcnJheVxuXHRjb25zdCB1c2Vyczogc3RyaW5nW10gPSBPYmplY3Qua2V5cyh1c2VyTGlua3MpO1xuXHRpZiAoIXVzZXJzLmxlbmd0aCkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGNvbnN0IHByb21pc2VzOiAoKCkgPT4gUHJvbWlzZTx2b2lkPilbXSA9IFtdO1xuXG5cdC8vIExvY2FsIGFuZCBnbG9iYWwgSVAgYmxvY2sgcXVlcmllc1xuXHRmb3IgKGxldCBpID0gMDsgaSA8IHVzZXJzLmxlbmd0aDsgaSsrKSB7XG5cdFx0Y29uc3QgYmt1c2VycyA9IHVzZXJzLnNwbGljZSgwLCAyNSk7XG5cdFx0aWYgKCFia3VzZXJzLmxlbmd0aCkge1xuXHRcdFx0Y29udGludWU7XG5cdFx0fVxuXG5cdFx0Zm9yIChsZXQgYmtpcCBvZiBia3VzZXJzKSB7XG5cdFx0XHRpZiAoIW13LnV0aWwuaXNJUHY0QWRkcmVzcyhia2lwKSAmJiAhbXcudXRpbC5pc0lQdjZBZGRyZXNzKGJraXApKSB7XG5cdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAobXcudXRpbC5pc0lQdjZBZGRyZXNzKGJraXApKSB7XG5cdFx0XHRcdGJraXAgPSBia2lwLnRvVXBwZXJDYXNlKCk7XG5cdFx0XHR9XG5cblx0XHRcdGlmIChtdy5zdG9yYWdlLmdldE9iamVjdChPUFRJT05TLnN0b3JhZ2VLZXlCbG9ja2VkICsgYmtpcCkpIHtcblx0XHRcdFx0Y29uc3QgcmVzcG9uc2UgPSBtdy5zdG9yYWdlLmdldE9iamVjdChcblx0XHRcdFx0XHRPUFRJT05TLnN0b3JhZ2VLZXlCbG9ja2VkICsgYmtpcFxuXHRcdFx0XHQpIGFzIFF1ZXJ5TG9jYWxBbmRHbG9iYWxCbG9ja3NSZXNwb25zZTtcblxuXHRcdFx0XHRpZiAocmVzcG9uc2VbJ3F1ZXJ5J10/LmJsb2Nrcykge1xuXHRcdFx0XHRcdG1hcmtMb2NhbEJsb2Nrcyh7cmVzcG9uc2UsIHVzZXJMaW5rc30pO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0aWYgKHJlc3BvbnNlWydxdWVyeSddPy5nbG9iYWxibG9ja3MpIHtcblx0XHRcdFx0XHRtYXJrR2xvYmFsQmxvY2tzKHtyZXNwb25zZSwgdXNlckxpbmtzfSk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRjb250aW51ZTtcblx0XHRcdH1cblxuXHRcdFx0cHJvbWlzZXNbcHJvbWlzZXMubGVuZ3RoXSA9IGFzeW5jICgpOiBQcm9taXNlPHZvaWQ+ID0+IHtcblx0XHRcdFx0dHJ5IHtcblx0XHRcdFx0XHRjb25zdCByZXNwb25zZSA9IChhd2FpdCBxdWVyeUlQQmxvY2tzKGJraXApKSBhcyBRdWVyeUxvY2FsQW5kR2xvYmFsQmxvY2tzUmVzcG9uc2U7XG5cblx0XHRcdFx0XHRpZiAocmVzcG9uc2VbJ3F1ZXJ5J10/LmJsb2Nrcykge1xuXHRcdFx0XHRcdFx0bWFya0xvY2FsQmxvY2tzKHtyZXNwb25zZSwgdXNlckxpbmtzLCBia2lwfSk7XG5cblx0XHRcdFx0XHRcdGZvciAoY29uc3QgYmxvY2sgb2YgcmVzcG9uc2VbJ3F1ZXJ5J10uYmxvY2tzKSB7XG5cdFx0XHRcdFx0XHRcdGlmIChibG9jay51c2VyKSB7XG5cdFx0XHRcdFx0XHRcdFx0bXcuc3RvcmFnZS5zZXRPYmplY3QoT1BUSU9OUy5zdG9yYWdlS2V5TG9ja2VkICsgYmxvY2sudXNlciwgcmVzcG9uc2UsIDYwICogNjApO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0aWYgKHJlc3BvbnNlWydxdWVyeSddPy5nbG9iYWxibG9ja3MpIHtcblx0XHRcdFx0XHRcdG1hcmtHbG9iYWxCbG9ja3Moe3Jlc3BvbnNlLCB1c2VyTGlua3MsIGJraXB9KTtcblxuXHRcdFx0XHRcdFx0Zm9yIChjb25zdCBibG9jayBvZiByZXNwb25zZVsncXVlcnknXS5nbG9iYWxibG9ja3MpIHtcblx0XHRcdFx0XHRcdFx0aWYgKGJsb2NrLnRhcmdldCkge1xuXHRcdFx0XHRcdFx0XHRcdG13LnN0b3JhZ2Uuc2V0T2JqZWN0KE9QVElPTlMuc3RvcmFnZUtleUxvY2tlZCArIGJsb2NrLnRhcmdldCwgcmVzcG9uc2UsIDYwICogNjApO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuXHRcdFx0XHRcdGNvbnNvbGUuZXJyb3IoJ1tNYXJrQmxvY2tlZF0gQWpheCBlcnJvcjonLCBlcnJvcik7XG5cdFx0XHRcdH1cblx0XHRcdH07XG5cdFx0fVxuXHR9XG5cblx0dm9pZCAoYXN5bmMgKCkgPT4ge1xuXHRcdGZvciAoY29uc3QgcHJvbWlzZSBvZiBwcm9taXNlcykge1xuXHRcdFx0dHJ5IHtcblx0XHRcdFx0YXdhaXQgcHJvbWlzZSgpO1xuXHRcdFx0fSBjYXRjaCB7fVxuXHRcdH1cblx0fSkoKTtcbn07XG5cbmV4cG9ydCB7bWFya0dsb2JhbExvY2tlZFVzZXJMaW5rcywgbWFya0Jsb2NrZWRVc2VyTGlua3MsIG1hcmtCbG9ja2VkSVBMaW5rc307XG4iLCAiaW1wb3J0ICogYXMgT1BUSU9OUyBmcm9tICcuLi8uLi9vcHRpb25zLmpzb24nO1xuaW1wb3J0IHtNd1VyaX0gZnJvbSAnZXh0LmdhZGdldC5VdGlsJztcbmltcG9ydCB7Z2VuZXJhdGVVc2VyTmFtZXNwYWNlVGl0bGVzfSBmcm9tICcuL2dlbmVyYXRlVXNlck5hbWVzcGFjZVRpdGxlcyc7XG5cbi8vIEdldCBhbGwgYWxpYXNlcyBmb3IgdXNlcjogJiB1c2VyX3RhbGs6XG5jb25zdCB1c2VyTmFtZXNwYWNlVGl0bGVzOiBzdHJpbmdbXSA9IGdlbmVyYXRlVXNlck5hbWVzcGFjZVRpdGxlcygpO1xuLy8gUmVnRXhwIGZvciBhbGwgdGl0bGVzIHRoYXQgYXJlICBVc2VyOnwgVXNlcl90YWxrOiB8IFNwZWNpYWw6Q29udHJpYnV0aW9ucy8gKGZvciB1c2Vyc2NyaXB0cylcbmNvbnN0IHVzZXJUaXRsZVJlZ2V4OiBSZWdFeHAgPSBuZXcgUmVnRXhwKFxuXHRgXigke3VzZXJOYW1lc3BhY2VUaXRsZXMuam9pbignfCcpfXwke09QVElPTlMuY29udHJpYnV0aW9uc1BhZ2VBbGlhc31cXFxcLykrKFteXFxcXC8jXSspJGAsXG5cdCdpJ1xuKTtcblxuLy8gUmVnRXhwIGZvciBsaW5rc1xuLy8gYXJ0aWNsZVJlZ2V4IGFsc28gbWF0Y2hlcyBleHRlcm5hbCBsaW5rcyBpbiBvcmRlciB0byBzdXBwb3J0IHRoZSBub3BpbmcgdGVtcGxhdGVcbmNvbnN0IHt3Z0FydGljbGVQYXRoLCB3Z1NjcmlwdH0gPSBtdy5jb25maWcuZ2V0KCk7XG5jb25zdCBhcnRpY2xlUmVnZXg6IFJlZ0V4cCA9IG5ldyBSZWdFeHAoYCR7d2dBcnRpY2xlUGF0aC5yZXBsYWNlKCckMScsICcnKX0oW14jXSspYCk7XG5jb25zdCBzY3JpcHRSZWdleDogUmVnRXhwID0gbmV3IFJlZ0V4cChgXiR7d2dTY3JpcHR9XFxcXD90aXRsZT0oW14jJl0rKWApO1xuXG5jb25zdCBnZW5lcmF0ZVVzZXJMaW5rcyA9ICgkY29udGVudDogSlF1ZXJ5KTogUmVjb3JkPHN0cmluZywgSlF1ZXJ5W10+ID0+IHtcblx0Ly8gRmluZCBhbGwgXCJ1c2VyXCIgbGlua3MgYW5kIHNhdmUgdGhlbSBpbiB1c2VyTGlua3MgOiB7ICd1c2Vycyc6IFs8bGluazE+LCA8bGluazI+LCAuLi5dLCAndXNlcjInOiBbPGxpbmszPiwgPGxpbmszPiwgLi4uXSwgLi4uIH1cblx0Y29uc3QgdXNlckxpbmtzOiBSZWNvcmQ8c3RyaW5nLCBKUXVlcnlbXT4gPSB7fTtcblxuXHRmb3IgKGNvbnN0IGVsZW1lbnQgb2YgJGNvbnRlbnQuZmluZCgnYScpKSB7XG5cdFx0Y29uc3QgJGVsZW1lbnQ6IEpRdWVyeTxIVE1MQW5jaG9yRWxlbWVudD4gPSAkKGVsZW1lbnQpO1xuXHRcdGlmIChcblx0XHRcdCRlbGVtZW50Lmhhc0NsYXNzKCdtdy1jaGFuZ2VzbGlzdC1kYXRlJykgfHxcblx0XHRcdCRlbGVtZW50Lmhhc0NsYXNzKCdleHQtZGlzY3Vzc2lvbnRvb2xzLWluaXQtdGltZXN0YW1wbGluaycpIHx8XG5cdFx0XHQkZWxlbWVudC5wYXJlbnQoJ3NwYW4nKS5oYXNDbGFzcygnbXctaGlzdG9yeS11bmRvJykgfHxcblx0XHRcdCRlbGVtZW50LnBhcmVudCgnc3BhbicpLmhhc0NsYXNzKCdtdy1yb2xsYmFjay1saW5rJylcblx0XHQpIHtcblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblxuXHRcdGNvbnN0IGhyZWY6IHN0cmluZyB8IHVuZGVmaW5lZCA9ICRlbGVtZW50LmF0dHIoJ2hyZWYnKTtcblx0XHRpZiAoIWhyZWYpIHtcblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblx0XHRpZiAobXcudXRpbC5pc0lQdjZBZGRyZXNzKGhyZWYucmVwbGFjZSgvXig/Omh0dHBzPzpcXC9cXC8pL2ksICcnKSkpIHtcblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblx0XHR0cnkge1xuXHRcdFx0Ly8gTWF5YmUgYWJzb2x1dGUgVVJMXG5cdFx0XHRpZiAobmV3IE13VXJpKGhyZWYpLmhvc3QgIT09IGxvY2F0aW9uLmhvc3QpIHtcblx0XHRcdFx0Y29udGludWU7XG5cdFx0XHR9XG5cdFx0fSBjYXRjaCB7XG5cdFx0XHR0cnkge1xuXHRcdFx0XHQvLyBNYXliZSByZWxhdGl2ZSBVUkxcblx0XHRcdFx0aWYgKG5ldyBNd1VyaShsb2NhdGlvbi5ocmVmICsgaHJlZikuaG9zdCAhPT0gbG9jYXRpb24uaG9zdCkge1xuXHRcdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0XHR9XG5cdFx0XHR9IGNhdGNoIHtcblx0XHRcdFx0Y29udGludWU7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0bGV0IHBhZ2VUaXRsZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXHRcdGlmIChhcnRpY2xlUmVnZXgudGVzdChocmVmKSkge1xuXHRcdFx0Y29uc3QgbWF0Y2g6IFJlZ0V4cEV4ZWNBcnJheSA9IGFydGljbGVSZWdleC5leGVjKGhyZWYpIGFzIFJlZ0V4cEV4ZWNBcnJheTtcblx0XHRcdHBhZ2VUaXRsZSA9IG1hdGNoWzFdIGFzIHN0cmluZztcblx0XHR9IGVsc2UgaWYgKHNjcmlwdFJlZ2V4LnRlc3QoaHJlZikpIHtcblx0XHRcdGNvbnN0IG1hdGNoOiBSZWdFeHBFeGVjQXJyYXkgPSBzY3JpcHRSZWdleC5leGVjKGhyZWYpIGFzIFJlZ0V4cEV4ZWNBcnJheTtcblx0XHRcdHBhZ2VUaXRsZSA9IG1hdGNoWzFdIGFzIHN0cmluZztcblx0XHR9IGVsc2Uge1xuXHRcdFx0Y29udGludWU7XG5cdFx0fVxuXG5cdFx0cGFnZVRpdGxlID0gZGVjb2RlVVJJQ29tcG9uZW50KHBhZ2VUaXRsZSkucmVwbGFjZSgvXy9nLCAnICcpO1xuXG5cdFx0Y29uc3QgdXNlckV4ZWNBcnJheTogUmVnRXhwRXhlY0FycmF5IHwgbnVsbCA9IHVzZXJUaXRsZVJlZ2V4LmV4ZWMocGFnZVRpdGxlKTtcblx0XHRpZiAoIXVzZXJFeGVjQXJyYXkgfHwgdHlwZW9mIHVzZXJFeGVjQXJyYXlbMl0gIT09ICdzdHJpbmcnKSB7XG5cdFx0XHRjb250aW51ZTtcblx0XHR9XG5cblx0XHRsZXQgdXNlcjogc3RyaW5nID0gdXNlckV4ZWNBcnJheVsyXS5zbGljZSgwLCAxKS50b1VwcGVyQ2FzZSgpICsgdXNlckV4ZWNBcnJheVsyXS5zbGljZSgxKTtcblx0XHRpZiAobXcudXRpbC5pc0lQdjZBZGRyZXNzKHVzZXIpKSB7XG5cdFx0XHR1c2VyID0gdXNlci50b1VwcGVyQ2FzZSgpO1xuXHRcdH1cblxuXHRcdHVzZXJMaW5rc1t1c2VyXSA/Pz0gW107XG5cblx0XHQodXNlckxpbmtzW3VzZXJdIGFzICh0eXBlb2YgdXNlckxpbmtzKVtrZXlvZiB0eXBlb2YgdXNlckxpbmtzXSlbXG5cdFx0XHQodXNlckxpbmtzW3VzZXJdIGFzICh0eXBlb2YgdXNlckxpbmtzKVtrZXlvZiB0eXBlb2YgdXNlckxpbmtzXSkubGVuZ3RoXG5cdFx0XSA9ICRlbGVtZW50OyAvLyBSZXBsYWNlIEFycmF5I3B1c2ggdG8gYXZvaWQgY29yZS1qcyBwb2x5ZmlsbGluZ1xuXHR9XG5cblx0cmV0dXJuIHVzZXJMaW5rcztcbn07XG5cbmV4cG9ydCB7Z2VuZXJhdGVVc2VyTGlua3N9O1xuIiwgImltcG9ydCAqIGFzIE9QVElPTlMgZnJvbSAnLi4vLi4vb3B0aW9ucy5qc29uJztcblxuY29uc3QgZ2VuZXJhdGVVc2VyTmFtZXNwYWNlVGl0bGVzID0gKCk6IHN0cmluZ1tdID0+IHtcblx0Y29uc3Qge3dnTmFtZXNwYWNlSWRzfSA9IG13LmNvbmZpZy5nZXQoKTtcblxuXHRjb25zdCB1c2VyTmFtZXNwYWNlVGl0bGVzOiBzdHJpbmdbXSA9IFtdO1xuXG5cdGZvciAoY29uc3QgW25hbWVzcGFjZSwgaWRdIG9mIE9iamVjdC5lbnRyaWVzKHdnTmFtZXNwYWNlSWRzKSkge1xuXHRcdGlmICghT1BUSU9OUy51c2VyTmFtZXNwYWNlTnVtYmVycy5pbmNsdWRlcyhpZCkpIHtcblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblxuXHRcdHVzZXJOYW1lc3BhY2VUaXRsZXNbdXNlck5hbWVzcGFjZVRpdGxlcy5sZW5ndGhdID0gYCR7bXcudXRpbC5lc2NhcGVSZWdFeHAobmFtZXNwYWNlLnJlcGxhY2UoL18vZywgJyAnKSl9OmA7IC8vIFJlcGxhY2UgQXJyYXkjcHVzaCB0byBhdm9pZCBjb3JlLWpzIHBvbHlmaWxsaW5nXG5cdH1cblxuXHRyZXR1cm4gdXNlck5hbWVzcGFjZVRpdGxlcztcbn07XG5cbmV4cG9ydCB7Z2VuZXJhdGVVc2VyTmFtZXNwYWNlVGl0bGVzfTtcbiIsICJpbXBvcnQge21hcmtCbG9ja2VkSVBMaW5rcywgbWFya0Jsb2NrZWRVc2VyTGlua3MsIG1hcmtHbG9iYWxMb2NrZWRVc2VyTGlua3N9IGZyb20gJy4vdXRpbC9tYXJrVXNlckxpbmtzJztcbmltcG9ydCB7Z2VuZXJhdGVVc2VyTGlua3N9IGZyb20gJy4vdXRpbC9nZW5lcmF0ZVVzZXJMaW5rcyc7XG5cbmNvbnN0IG1hcmtCbG9ja2VkVXNlciA9ICgkY29udGVudDogSlF1ZXJ5KTogdm9pZCA9PiB7XG5cdC8vIEZpbmQgYWxsIFwidXNlclwiIGxpbmtzIGFuZCBzYXZlIHRoZW0gaW4gdXNlckxpbmtzIDogeyAndXNlcnMnOiBbPGxpbmsxPiwgPGxpbmsyPiwgLi4uXSwgJ3VzZXIyJzogWzxsaW5rMz4sIDxsaW5rMz4sIC4uLl0sIC4uLiB9XG5cdGNvbnN0IHVzZXJMaW5rczogUmVjb3JkPHN0cmluZywgSlF1ZXJ5W10+ID0gZ2VuZXJhdGVVc2VyTGlua3MoJGNvbnRlbnQpO1xuXG5cdG1hcmtHbG9iYWxMb2NrZWRVc2VyTGlua3ModXNlckxpbmtzKTtcblx0bWFya0Jsb2NrZWRVc2VyTGlua3ModXNlckxpbmtzKTtcblx0bWFya0Jsb2NrZWRJUExpbmtzKHVzZXJMaW5rcyk7XG59O1xuXG5leHBvcnQge21hcmtCbG9ja2VkVXNlcn07XG4iLCAiaW1wb3J0IHttYXJrQmxvY2tlZFVzZXJ9IGZyb20gJy4vbWFya0Jsb2NrZWRVc2VyJztcblxuY29uc3Qge3dnQWN0aW9uLCB3Z05hbWVzcGFjZU51bWJlcn0gPSBtdy5jb25maWcuZ2V0KCk7XG5cbmNvbnN0IGFkZEhvb2sgPSAoKTogdm9pZCA9PiB7XG5cdGxldCBpc0luaXQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuXHRtdy5ob29rKCd3aWtpcGFnZS5jb250ZW50JykuYWRkKGZ1bmN0aW9uIG1hcmtCbG9ja2VkKCRjb250ZW50KTogdm9pZCB7XG5cdFx0aWYgKGlzSW5pdCkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRpc0luaXQgPSB0cnVlO1xuXG5cdFx0Ly8gT24gdGhlIGZpcnN0IGNhbGwgYWZ0ZXIgaW5pdGlhbCBwYWdlIGxvYWQsIGNvbnRhaW5lciBpcyBtdy51dGlsLiRjb250ZW50XG5cdFx0Ly8gVXNlZCB0byBsaW1pdCBtYWluc3BhY2UgYWN0aXZpdHkgdG8ganVzdCB0aGUgZGlmZiBkZWZpbml0aW9uc1xuXHRcdGlmICh3Z0FjdGlvbiA9PT0gJ3ZpZXcnICYmIHdnTmFtZXNwYWNlTnVtYmVyID09PSAwKSB7XG5cdFx0XHQkY29udGVudCA9ICRjb250ZW50LmZpbmQoJy5kaWZmLXRpdGxlJyk7XG5cdFx0fVxuXHRcdC8vIE9uIHBhZ2UgbG9hZCwgYWxzbyB1cGRhdGUgdGhlIG5hbWVzcGFjZSB0YWJcblx0XHQkY29udGVudCA9ICRjb250ZW50LmFkZCgnI2NhLW5zdGFiLXVzZXInKTtcblxuXHRcdG1hcmtCbG9ja2VkVXNlcigkY29udGVudCk7XG5cdH0pO1xufTtcblxuZXhwb3J0IHthZGRIb29rfTtcbiIsICJpbXBvcnQge2FkZEhvb2t9IGZyb20gJy4vbW9kdWxlcy9hZGRIb29rJztcblxuaWYgKCFbJ2VkaXQnLCAnc3VibWl0J10uaW5jbHVkZXMobXcuY29uZmlnLmdldCgnd2dBY3Rpb24nKSkpIHtcblx0YWRkSG9vaygpO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0MsSUFBQUEseUJBQTBCO0FBQzFCLElBQUFDLHVCQUF3QixDQUFDLEdBQUcsQ0FBQztBQUM3QixJQUFBQyxtQkFBb0I7QUFDcEIsSUFBQUMsb0JBQXFCO0FBQ3JCLElBQUFDLFVBQVc7O0FDTFosSUFBQUMsb0JBQXVCQyxRQUFBLGlCQUFBO0FBRXZCLElBQU1DLGtCQUFrQkEsTUFBTTtBQUM3QixTQUFPO0lBQ05DLFdBQUEsR0FBVUgsa0JBQUFJLFVBQVM7TUFDbEJDLElBQUk7TUFDSixXQUFXO01BQ1gsV0FBVztJQUNaLENBQUM7SUFDREMsVUFBQSxHQUFTTixrQkFBQUksVUFBUztNQUNqQkMsSUFBSTtNQUNKLFdBQVc7TUFDWCxXQUFXO0lBQ1osQ0FBQztJQUNELHFCQUFBLEdBQW9CTCxrQkFBQUksVUFBUztNQUM1QkMsSUFBSTtNQUNKLFdBQVc7TUFDWCxXQUFXO0lBQ1osQ0FBQztJQUNERSxTQUFBLEdBQVFQLGtCQUFBSSxVQUFTO01BQ2hCQyxJQUFJO01BQ0osV0FBVztNQUNYLFdBQVc7SUFDWixDQUFDO0lBQ0RHLFVBQUEsR0FBU1Isa0JBQUFJLFVBQVM7TUFDakJDLElBQUk7TUFDSkksSUFBSTtJQUNMLENBQUM7SUFDREMs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RUFDYkwsVUFBVUssSUFBSSxFQUFpRGdGLE1BQ2pFLElBQUk2RTtJQUNMO0VBQUEsU0FBQTlJLEtBQUE7QUFBQXlJLGdCQUFBeEksRUFBQUQsR0FBQTtFQUFBLFVBQUE7QUFBQXlJLGdCQUFBdkksRUFBQTtFQUFBO0FBRUEsU0FBT3RCO0FBQ1I7O0FFcEZBLElBQU1nTCxrQkFBbUJwQixjQUEyQjtBQUVuRCxRQUFNNUosWUFBc0MySixrQkFBa0JDLFFBQVE7QUFFdEUzRSw0QkFBMEJqRixTQUFTO0FBQ25Dc0csdUJBQXFCdEcsU0FBUztBQUM5QnlILHFCQUFtQnpILFNBQVM7QUFDN0I7O0FDUkEsSUFBTTtFQUFDaUw7RUFBVUM7QUFBaUIsSUFBSXpGLEdBQUdpRCxPQUFPM0UsSUFBSTtBQUVwRCxJQUFNb0gsVUFBVUEsTUFBWTtBQUMzQixNQUFJQyxTQUFrQjtBQUV0QjNGLEtBQUc0RixLQUFLLGtCQUFrQixFQUFFQyxJQUFJLFNBQVNDLFlBQVkzQixVQUFnQjtBQUNwRSxRQUFJd0IsUUFBUTtBQUNYO0lBQ0Q7QUFDQUEsYUFBUztBQUlULFFBQUlILGFBQWEsVUFBVUMsc0JBQXNCLEdBQUc7QUFDbkR0QixpQkFBV0EsU0FBU0UsS0FBSyxhQUFhO0lBQ3ZDO0FBRUFGLGVBQVdBLFNBQVMwQixJQUFJLGdCQUFnQjtBQUV4Q04sb0JBQWdCcEIsUUFBUTtFQUN6QixDQUFDO0FBQ0Y7O0FDckJBLElBQUksQ0FBQyxDQUFDLFFBQVEsUUFBUSxFQUFFWCxTQUFTeEQsR0FBR2lELE9BQU8zRSxJQUFJLFVBQVUsQ0FBQyxHQUFHO0FBQzVEb0gsVUFBUTtBQUNUOyIsCiAgIm5hbWVzIjogWyJjb250cmlidXRpb25zUGFnZUFsaWFzIiwgInVzZXJOYW1lc3BhY2VOdW1iZXJzIiwgInN0b3JhZ2VLZXlMb2NrZWQiLCAic3RvcmFnZUtleUJsb2NrZWQiLCAidmVyc2lvbiIsICJpbXBvcnRfZXh0X2dhZGdldCIsICJyZXF1aXJlIiwgImdldEkxOG5NZXNzYWdlcyIsICJpbmZpbml0eSIsICJsb2NhbGl6ZSIsICJlbiIsICJCbG9ja2VkIiwgIkxvY2tlZCIsICJwYXJ0aWFsIiwgInpoIiwgImQiLCAicyIsICJpMThuTWVzc2FnZXMiLCAiZ2V0TWVzc2FnZSIsICJrZXkiLCAiYWRkWmVybyIsICJ2IiwgImNvbmNhdCIsICJpbkhvdXJzIiwgIm1zIiwgIm1tIiwgIk1hdGgiLCAiZmxvb3IiLCAiaGgiLCAiZGQiLCAicGFyc2VUUyIsICJzdHJpbmciLCAibSIsICJyZXBsYWNlIiwgIm1hdGNoIiwgIkRhdGUiLCAiVVRDIiwgImdldFRpbWUiLCAidXNlcmxpbmtJbmRlZiIsICJ1c2VybGlua0xvY2tlZCIsICJ1c2VybGlua1BhcnRpYWwiLCAidXNlcmxpbmtUZW1wIiwgIm1hcmtHbG9iYWxMb2NrZWRMaW5rcyIsICJyZXNwb25zZSIsICJ1c2VyTGlua3MiLCAiX3Jlc3BvbnNlJHF1ZXJ5IiwgIl9yZXNwb25zZSRxdWVyeSRnbG9iYSIsICJfcmVzcG9uc2UkcXVlcnkkZ2xvYmEyIiwgImdsb2JhbHVzZXJpbmZvIiwgInVzZXIiLCAibmFtZSIsICJsb2NrZWQiLCAidGlwIiwgIiRsaW5rcyIsICJjbGFzc05hbWUiLCAiX2l0ZXJhdG9yIiwgIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwgIl9zdGVwIiwgIm4iLCAiZG9uZSIsICIkbGluayIsICJ2YWx1ZSIsICJhZGRDbGFzcyIsICJhdHRyIiwgImVyciIsICJlIiwgImYiLCAibWFya0xvY2FsQmxvY2tzIiwgImJraXAiLCAiX3Jlc3BvbnNlJHF1ZXJ5MiIsICJibG9ja3MiLCAiX2l0ZXJhdG9yMiIsICJfc3RlcDIiLCAiYmxvY2siLCAiaXNQYXJ0aWFsQmxjb2siLCAicmVzdHJpY3Rpb25zIiwgImJsb2NrVGltZSIsICJleHBpcnkiLCAic3RhcnRzV2l0aCIsICJ0aW1lc3RhbXAiLCAiYnkiLCAicmVhc29uIiwgIm5vdyIsICJfaXRlcmF0b3IzIiwgIl9zdGVwMyIsICJtYXJrR2xvYmFsQmxvY2tzIiwgIl9yZXNwb25zZSRxdWVyeTMiLCAiZ2xvYmFsYmxvY2tzIiwgIl9pdGVyYXRvcjQiLCAiX3N0ZXA0IiwgInRhcmdldCIsICJfaXRlcmF0b3I1IiwgIl9zdGVwNSIsICJpbXBvcnRfZXh0X2dhZGdldDIiLCAiYXBpIiwgImluaXRNd0FwaSIsICJxdWVyeUdsb2JhbFVzZXJJbmZvIiwgIl9yZWYiLCAiX2FzeW5jVG9HZW5lcmF0b3IiLCAiZ3VpdXNlciIsICJwYXJhbXMiLCAiYWN0aW9uIiwgImZvcm1hdCIsICJmb3JtYXR2ZXJzaW9uIiwgIm1ldGEiLCAic21heGFnZSIsICJtYXhhZ2UiLCAiZ2V0IiwgIl94IiwgImFwcGx5IiwgImFyZ3VtZW50cyIsICJxdWVyeUlQQmxvY2tzIiwgIl9yZWYyIiwgImxpc3QiLCAiYmtsaW1pdCIsICJia3Byb3AiLCAiYmdpcCIsICJiZ2xpbWl0IiwgImJncHJvcCIsICJfeDIiLCAicXVlcnlVc2VyQmxvY2tzIiwgIl9yZWYzIiwgImJrdXNlcnMiLCAiYmd0YXJnZXRzIiwgIl94MyIsICJtYXJrR2xvYmFsTG9ja2VkVXNlckxpbmtzIiwgInVzZXJzIiwgIk9iamVjdCIsICJrZXlzIiwgImxlbmd0aCIsICJwcm9taXNlcyIsICJfaSIsICJfdXNlcnMiLCAibXciLCAidXRpbCIsICJpc0lQdjRBZGRyZXNzIiwgImlzSVB2NkFkZHJlc3MiLCAic3RvcmFnZSIsICJnZXRPYmplY3QiLCAiX3Jlc3BvbnNlJHF1ZXJ5NCIsICJzZXRPYmplY3QiLCAiZXJyb3IiLCAiY29uc29sZSIsICJfaTIiLCAiX3Byb21pc2VzIiwgInByb21pc2UiLCAibWFya0Jsb2NrZWRVc2VyTGlua3MiLCAiX2l0ZXJhdG9yNiIsICJfc3RlcDYiLCAiX3Jlc3BvbnNlJHF1ZXJ5NyIsICJfcmVzcG9uc2UkcXVlcnk4IiwgIl9yZXNwb25zZSRxdWVyeTkiLCAiX3Jlc3BvbnNlJHF1ZXJ5MTAiLCAiZmlsdGVyIiwgImVsZW1lbnQiLCAiaSIsICJzcGxpY2UiLCAiX3Jlc3BvbnNlJHF1ZXJ5NSIsICJfcmVzcG9uc2UkcXVlcnk2IiwgIl9pdGVyYXRvcjciLCAiX3N0ZXA3IiwgIl9pdGVyYXRvcjgiLCAiX3N0ZXA4IiwgIl9pMyIsICJfcHJvbWlzZXMyIiwgIm1hcmtCbG9ja2VkSVBMaW5rcyIsICJfaXRlcmF0b3I5IiwgIl9zdGVwOSIsICJ0b1VwcGVyQ2FzZSIsICJfcmVzcG9uc2UkcXVlcnkxMSIsICJfcmVzcG9uc2UkcXVlcnkxMiIsICJfcmVzcG9uc2UkcXVlcnkxMyIsICJfcmVzcG9uc2UkcXVlcnkxNCIsICJfaXRlcmF0b3IxMCIsICJfc3RlcDEwIiwgIl9pdGVyYXRvcjExIiwgIl9zdGVwMTEiLCAiX2k0IiwgIl9wcm9taXNlczMiLCAiaW1wb3J0X2V4dF9nYWRnZXQzIiwgImdlbmVyYXRlVXNlck5hbWVzcGFjZVRpdGxlcyIsICJ3Z05hbWVzcGFjZUlkcyIsICJjb25maWciLCAidXNlck5hbWVzcGFjZVRpdGxlczIiLCAiX2k1IiwgIl9PYmplY3QkZW50cmllcyIsICJlbnRyaWVzIiwgIm5hbWVzcGFjZSIsICJpZCIsICJpbmNsdWRlcyIsICJlc2NhcGVSZWdFeHAiLCAidXNlck5hbWVzcGFjZVRpdGxlcyIsICJ1c2VyVGl0bGVSZWdleCIsICJSZWdFeHAiLCAiam9pbiIsICJ3Z0FydGljbGVQYXRoIiwgIndnU2NyaXB0IiwgImFydGljbGVSZWdleCIsICJzY3JpcHRSZWdleCIsICJnZW5lcmF0ZVVzZXJMaW5rcyIsICIkY29udGVudCIsICJfaXRlcmF0b3IxMiIsICJmaW5kIiwgIl9zdGVwMTIiLCAiX3VzZXIiLCAiX3VzZXJMaW5rcyRfdXNlciIsICIkZWxlbWVudCIsICIkIiwgImhhc0NsYXNzIiwgInBhcmVudCIsICJocmVmIiwgIk13VXJpIiwgImhvc3QiLCAibG9jYXRpb24iLCAicGFnZVRpdGxlIiwgInRlc3QiLCAiZXhlYyIsICJkZWNvZGVVUklDb21wb25lbnQiLCAidXNlckV4ZWNBcnJheSIsICJzbGljZSIsICJtYXJrQmxvY2tlZFVzZXIiLCAid2dBY3Rpb24iLCAid2dOYW1lc3BhY2VOdW1iZXIiLCAiYWRkSG9vayIsICJpc0luaXQiLCAiaG9vayIsICJhZGQiLCAibWFya0Jsb2NrZWQiXQp9Cg== +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL01hcmtCbG9ja2VkL29wdGlvbnMuanNvbiIsICJzcmMvTWFya0Jsb2NrZWQvbW9kdWxlcy9pMThuLnRzIiwgInNyYy9NYXJrQmxvY2tlZC9tb2R1bGVzL3V0aWwvcGFyc2VUaW1lLnRzIiwgInNyYy9NYXJrQmxvY2tlZC9tb2R1bGVzL01hcmtCbG9ja2VkLm1vZHVsZS5sZXNzIiwgInNyYy9NYXJrQmxvY2tlZC9tb2R1bGVzL3V0aWwvbWFya0xpbmtzLnRzIiwgInNyYy9NYXJrQmxvY2tlZC9tb2R1bGVzL3V0aWwvYXBpLnRzIiwgInNyYy9NYXJrQmxvY2tlZC9tb2R1bGVzL3V0aWwvcXVlcnkudHMiLCAic3JjL01hcmtCbG9ja2VkL21vZHVsZXMvdXRpbC9tYXJrVXNlckxpbmtzLnRzIiwgInNyYy9NYXJrQmxvY2tlZC9tb2R1bGVzL3V0aWwvZ2VuZXJhdGVVc2VyTGlua3MudHMiLCAic3JjL01hcmtCbG9ja2VkL21vZHVsZXMvdXRpbC9nZW5lcmF0ZVVzZXJOYW1lc3BhY2VUaXRsZXMudHMiLCAic3JjL01hcmtCbG9ja2VkL21vZHVsZXMvbWFya0Jsb2NrZWRVc2VyLnRzIiwgInNyYy9NYXJrQmxvY2tlZC9tb2R1bGVzL2FkZEhvb2sudHMiLCAic3JjL01hcmtCbG9ja2VkL01hcmtCbG9ja2VkLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJ7XG5cdFwiY29udHJpYnV0aW9uc1BhZ2VBbGlhc1wiOiBcIlNwZWNpYWw6Q29udHJpYnV0aW9uc1wiLFxuXHRcInVzZXJOYW1lc3BhY2VOdW1iZXJzXCI6IFsyLCAzXSxcblx0XCJzdG9yYWdlS2V5TG9ja2VkXCI6IFwiZXh0LmdhZGdldC5NYXJrQmxvY2tlZF9pc0xvY2tlZC1cIixcblx0XCJzdG9yYWdlS2V5QmxvY2tlZFwiOiBcImV4dC5nYWRnZXQuTWFya0Jsb2NrZWRfaXNCbG9ja2VkLVwiLFxuXHRcInZlcnNpb25cIjogXCIyLjBcIlxufVxuIiwgImltcG9ydCB7bG9jYWxpemV9IGZyb20gJ2V4dC5nYWRnZXQuaTE4bic7XG5cbmNvbnN0IGdldEkxOG5NZXNzYWdlcyA9ICgpID0+IHtcblx0cmV0dXJuIHtcblx0XHRpbmZpbml0eTogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdpbmZpbml0eScsXG5cdFx0XHQnemgtaGFucyc6ICfml6DpmZDmnJ8nLFxuXHRcdFx0J3poLWhhbnQnOiAn54Sh6ZmQ5pyfJyxcblx0XHR9KSxcblx0XHRCbG9ja2VkOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJzsgJDVibG9ja2VkICgkMSkgYnkgJDI6ICQzICgkNCBhZ28pJyxcblx0XHRcdCd6aC1oYW5zJzogJ++8m+eUsSQyJDXlsIHnpoEkMe+8miQz77yIJDTliY3vvIknLFxuXHRcdFx0J3poLWhhbnQnOiAn77yb55SxJDIkNeWwgemOliQx77yaJDPvvIgkNOWJje+8iScsXG5cdFx0fSksXG5cdFx0J0dsb2JhbGx5IEJsb2NrZWQnOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJzsgJDVibG9ja2VkIGdsb2JhbGx5ICgkMSkgYnkgJDI6ICQzICgkNCBhZ28pJyxcblx0XHRcdCd6aC1oYW5zJzogJ++8m+eUsSQyJDXlhajln5/lsIHnpoEkMe+8miQz77yIJDTliY3vvIknLFxuXHRcdFx0J3poLWhhbnQnOiAn77yb55SxJDIkNeWFqOWfn+WwgemOliQx77yaJDPvvIgkNOWJje+8iScsXG5cdFx0fSksXG5cdFx0TG9ja2VkOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJzsgTG9ja2VkJyxcblx0XHRcdCd6aC1oYW5zJzogJ++8m+W3suWFqOWfn+mUgeWumicsXG5cdFx0XHQnemgtaGFudCc6ICfvvJvlt7Llhajln5/pjpblrponLFxuXHRcdH0pLFxuXHRcdHBhcnRpYWw6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAncGFydGlhbCAnLFxuXHRcdFx0emg6ICfpg6jliIYnLFxuXHRcdH0pLFxuXHRcdGQ6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnZGF5Jyxcblx0XHRcdHpoOiAn5aSpJyxcblx0XHR9KSxcblx0XHRzOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ3NlY29uZCcsXG5cdFx0XHR6aDogJ+enkicsXG5cdFx0fSksXG5cdH07XG59O1xuXG5jb25zdCBpMThuTWVzc2FnZXMgPSBnZXRJMThuTWVzc2FnZXMoKTtcblxuY29uc3QgZ2V0TWVzc2FnZTogR2V0TWVzc2FnZXM8dHlwZW9mIGkxOG5NZXNzYWdlcz4gPSAoa2V5KSA9PiB7XG5cdHJldHVybiBpMThuTWVzc2FnZXNba2V5XSB8fCBrZXk7XG59O1xuXG5leHBvcnQge2dldE1lc3NhZ2V9O1xuIiwgImltcG9ydCB7Z2V0TWVzc2FnZX0gZnJvbSAnLi4vaTE4bic7XG5cbmNvbnN0IGFkZFplcm8gPSAodjogbnVtYmVyKTogc3RyaW5nID0+IHtcblx0cmV0dXJuIHYgPD0gOSA/IGAwJHt2fWAgOiBgJHt2fWA7XG59O1xuXG5jb25zdCBpbkhvdXJzID0gKG1zOiBudW1iZXIpOiBzdHJpbmcgPT4ge1xuXHRsZXQgbW06IG51bWJlciA9IE1hdGguZmxvb3IobXMgLyA2ZTQpO1xuXHRpZiAoIW1tKSB7XG5cdFx0cmV0dXJuIGAke01hdGguZmxvb3IobXMgLyAxZTMpfSR7Z2V0TWVzc2FnZSgncycpfWA7XG5cdH1cblxuXHRsZXQgaGg6IG51bWJlciA9IE1hdGguZmxvb3IobW0gLyA2MCk7XG5cdG1tICU9IDYwO1xuXG5cdGNvbnN0IGRkOiBudW1iZXIgPSBNYXRoLmZsb29yKGhoIC8gMjQpO1xuXHRoaCAlPSAyNDtcblxuXHRpZiAoZGQpIHtcblx0XHRyZXR1cm4gYCR7ZGQgKyAoZGQgPCAxMCA/IGAuJHthZGRaZXJvKGhoKX1gIDogJycpfSR7Z2V0TWVzc2FnZSgnZCcpfWA7XG5cdH1cblxuXHRyZXR1cm4gYCR7aGh9OiR7YWRkWmVybyhtbSl9YDtcbn07XG5cbi8vIDIwMDgxMjI2MjIwNjA1IG9yIDIwMDgtMDEtMjZUMDY6MzQ6MTlaIC0+IG51bWJlclxuY29uc3QgcGFyc2VUUyA9IChzdHJpbmc6IHN0cmluZyk6IG51bWJlciA9PiB7XG5cdGNvbnN0IG06IFJlZ0V4cE1hdGNoQXJyYXkgPSBzdHJpbmdcblx0XHQucmVwbGFjZSgvXFxEL2csICcnKVxuXHRcdC5tYXRjaCgvKFxcZFxcZFxcZFxcZCkoXFxkXFxkKShcXGRcXGQpKFxcZFxcZCkoXFxkXFxkKShcXGRcXGQpLykgYXMgUmVnRXhwTWF0Y2hBcnJheTtcblxuXHRyZXR1cm4gbmV3IERhdGUoXG5cdFx0RGF0ZS5VVEMoXG5cdFx0XHQrKG1bMV0gYXMgc3RyaW5nKSxcblx0XHRcdCsobVsyXSBhcyBzdHJpbmcpIC0gMSxcblx0XHRcdCsobVszXSBhcyBzdHJpbmcpLFxuXHRcdFx0KyhtWzRdIGFzIHN0cmluZyksXG5cdFx0XHQrKG1bNV0gYXMgc3RyaW5nKSxcblx0XHRcdCsobVs2XSBhcyBzdHJpbmcpXG5cdFx0KVxuXHQpLmdldFRpbWUoKTtcbn07XG5cbmV4cG9ydCB7aW5Ib3VycywgcGFyc2VUU307XG4iLCAiaW1wb3J0IFwiZXNidWlsZC1jc3MtbW9kdWxlcy1wbHVnaW4tbnMtY3NzOnNyYy9NYXJrQmxvY2tlZC9tb2R1bGVzL01hcmtCbG9ja2VkLm1vZHVsZS5sZXNzXCI7XG5leHBvcnQgY29uc3QgdXNlcmxpbmtJbmRlZiA9IFwiTWFya0Jsb2NrZWQtbW9kdWxlX191c2VybGlua0luZGVmX3h0QWZPR19fNDkwXCI7XG5leHBvcnQgY29uc3QgdXNlcmxpbmtMb2NrZWQgPSBcIk1hcmtCbG9ja2VkLW1vZHVsZV9fdXNlcmxpbmtMb2NrZWRfeHRBZk9HX180OTBcIjtcbmV4cG9ydCBjb25zdCB1c2VybGlua1BhcnRpYWwgPSBcIk1hcmtCbG9ja2VkLW1vZHVsZV9fdXNlcmxpbmtQYXJ0aWFsX3h0QWZPR19fNDkwXCI7XG5leHBvcnQgY29uc3QgdXNlcmxpbmtUZW1wID0gXCJNYXJrQmxvY2tlZC1tb2R1bGVfX3VzZXJsaW5rVGVtcF94dEFmT0dfXzQ5MFwiO1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIFwidXNlcmxpbmtJbmRlZlwiOiB1c2VybGlua0luZGVmLFxuICBcInVzZXJsaW5rTG9ja2VkXCI6IHVzZXJsaW5rTG9ja2VkLFxuICBcInVzZXJsaW5rUGFydGlhbFwiOiB1c2VybGlua1BhcnRpYWwsXG4gIFwidXNlcmxpbmtUZW1wXCI6IHVzZXJsaW5rVGVtcFxufTtcbiAgICAgICIsICJpbXBvcnQgdHlwZSB7UXVlcnlHbG9iYWxMb2Nrc1Jlc3BvbnNlLCBRdWVyeUxvY2FsQW5kR2xvYmFsQmxvY2tzUmVzcG9uc2V9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7aW5Ib3VycywgcGFyc2VUU30gZnJvbSAnLi9wYXJzZVRpbWUnO1xuaW1wb3J0IHt1c2VybGlua0luZGVmLCB1c2VybGlua0xvY2tlZCwgdXNlcmxpbmtQYXJ0aWFsLCB1c2VybGlua1RlbXB9IGZyb20gJy4uL01hcmtCbG9ja2VkLm1vZHVsZS5sZXNzJztcbmltcG9ydCB7Z2V0TWVzc2FnZX0gZnJvbSAnLi4vaTE4bic7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIENhbGxiYWNrOiByZWNlaXZlIGRhdGEgYW5kIG1hcmsgbGlua3NcbiAqL1xuXG5jb25zdCBtYXJrR2xvYmFsTG9ja2VkTGlua3MgPSAoe1xuXHRyZXNwb25zZSxcblx0dXNlckxpbmtzLFxufToge1xuXHRyZXNwb25zZTogUXVlcnlHbG9iYWxMb2Nrc1Jlc3BvbnNlO1xuXHR1c2VyTGlua3M6IFJlY29yZDxzdHJpbmcsIEpRdWVyeVtdPjtcbn0pOiB2b2lkID0+IHtcblx0Ly8gR2xvYmFsIGxvY2tzXG5cdGlmICghcmVzcG9uc2VbJ3F1ZXJ5J10/Lmdsb2JhbHVzZXJpbmZvKSB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0Y29uc3QgdXNlciA9IHJlc3BvbnNlWydxdWVyeSddLmdsb2JhbHVzZXJpbmZvPy5uYW1lO1xuXHRjb25zdCBsb2NrZWQgPSByZXNwb25zZVsncXVlcnknXS5nbG9iYWx1c2VyaW5mbz8ubG9ja2VkO1xuXG5cdGlmICghbG9ja2VkIHx8ICF1c2VyKSB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0Y29uc3QgdGlwOiBzdHJpbmcgPSBnZXRNZXNzYWdlKCdMb2NrZWQnKTtcblxuXHRjb25zdCAkbGlua3M6IEpRdWVyeVtdIHwgdW5kZWZpbmVkID0gdXNlckxpbmtzW3VzZXJdO1xuXHRpZiAoISRsaW5rcykge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGNvbnN0IGNsYXNzTmFtZSA9IHVzZXJsaW5rTG9ja2VkIGFzIHN0cmluZztcblxuXHRmb3IgKGNvbnN0ICRsaW5rIG9mICRsaW5rcykge1xuXHRcdC8vIFRoZSBmb2xsb3dpbmcgY2xhc3NlcyBhcmUgdXNlZCBoZXJlOlxuXHRcdC8vICogc2VlIC4vTWFya2Jsb2NrZWQubW9kdWxlLmxlc3Ncblx0XHQvLyAqIGZvciBtb3JlIGluZm9ybWF0aW9uXG5cdFx0JGxpbmsuYWRkQ2xhc3MoY2xhc3NOYW1lKS5hdHRyKCd0aXRsZScsICRsaW5rLmF0dHIoJ3RpdGxlJykgKyB0aXApO1xuXHR9XG59O1xuXG5jb25zdCBtYXJrTG9jYWxCbG9ja3MgPSAoe1xuXHRyZXNwb25zZSxcblx0dXNlckxpbmtzLFxuXHRia2lwLFxufToge1xuXHRyZXNwb25zZTogUXVlcnlMb2NhbEFuZEdsb2JhbEJsb2Nrc1Jlc3BvbnNlO1xuXHR1c2VyTGlua3M6IFJlY29yZDxzdHJpbmcsIEpRdWVyeVtdPjtcblx0YmtpcD86IHN0cmluZztcbn0pOiB2b2lkID0+IHtcblx0Ly8gTG9jYWwgYmxvY2tzXG5cdGlmICghcmVzcG9uc2VbJ3F1ZXJ5J10/LmJsb2Nrcykge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGZvciAoY29uc3QgYmxvY2sgb2YgcmVzcG9uc2VbJ3F1ZXJ5J10uYmxvY2tzKSB7XG5cdFx0Y29uc3QgaXNQYXJ0aWFsQmxjb2s6IGJvb2xlYW4gPSB0eXBlb2YgYmxvY2sucmVzdHJpY3Rpb25zID09PSAnc3RyaW5nJyAmJiBibG9jay5yZXN0cmljdGlvbnMgIT09ICcnOyAvLyBQYXJ0aWFsIGJsb2NrXG5cblx0XHRsZXQgY2xhc3NOYW1lOiBzdHJpbmcgPSB1c2VybGlua1BhcnRpYWwgYXMgc3RyaW5nO1xuXHRcdGxldCBibG9ja1RpbWU6IHN0cmluZyA9ICcnO1xuXHRcdGlmIChibG9jay5leHBpcnkuc3RhcnRzV2l0aCgnaW4nKSkge1xuXHRcdFx0aWYgKCFpc1BhcnRpYWxCbGNvaykge1xuXHRcdFx0XHRjbGFzc05hbWUgPSB1c2VybGlua0luZGVmIGFzIHN0cmluZztcblx0XHRcdH1cblx0XHRcdGJsb2NrVGltZSA9IGdldE1lc3NhZ2UoJ2luZmluaXR5Jyk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGlmICghaXNQYXJ0aWFsQmxjb2spIHtcblx0XHRcdFx0Y2xhc3NOYW1lID0gdXNlcmxpbmtUZW1wIGFzIHN0cmluZztcblx0XHRcdH1cblx0XHRcdGJsb2NrVGltZSA9IGluSG91cnMocGFyc2VUUyhibG9jay5leHBpcnkpIC0gcGFyc2VUUyhibG9jay50aW1lc3RhbXApKTtcblx0XHR9XG5cblx0XHRsZXQgdGlwOiBzdHJpbmcgPSBnZXRNZXNzYWdlKCdCbG9ja2VkJylcblx0XHRcdC5yZXBsYWNlKCckMScsIGJsb2NrVGltZSlcblx0XHRcdC5yZXBsYWNlKCckMicsIGJsb2NrLmJ5KVxuXHRcdFx0LnJlcGxhY2UoJyQzJywgYmxvY2sucmVhc29uKVxuXHRcdFx0LnJlcGxhY2UoJyQ0JywgaW5Ib3VycyhEYXRlLm5vdygpIC0gcGFyc2VUUyhibG9jay50aW1lc3RhbXApKSk7XG5cdFx0dGlwID0gaXNQYXJ0aWFsQmxjb2sgPyB0aXAucmVwbGFjZSgnJDUnLCBnZXRNZXNzYWdlKCdwYXJ0aWFsJykpIDogdGlwLnJlcGxhY2UoJyQ1JywgJycpO1xuXG5cdFx0Y29uc3QgJGxpbmtzOiBKUXVlcnlbXSB8IHVuZGVmaW5lZCA9IHVzZXJMaW5rc1tia2lwID8/IGJsb2NrLnVzZXJdO1xuXHRcdGlmICghJGxpbmtzKSB7XG5cdFx0XHRjb250aW51ZTtcblx0XHR9XG5cblx0XHRmb3IgKGNvbnN0ICRsaW5rIG9mICRsaW5rcykge1xuXHRcdFx0Ly8gVGhlIGZvbGxvd2luZyBjbGFzc2VzIGFyZSB1c2VkIGhlcmU6XG5cdFx0XHQvLyAqIHNlZSAuL01hcmtibG9ja2VkLm1vZHVsZS5sZXNzXG5cdFx0XHQvLyAqIGZvciBtb3JlIGluZm9ybWF0aW9uXG5cdFx0XHQkbGluay5hZGRDbGFzcyhjbGFzc05hbWUpLmF0dHIoJ3RpdGxlJywgJGxpbmsuYXR0cigndGl0bGUnKSArIHRpcCk7XG5cdFx0fVxuXHR9XG59O1xuXG5jb25zdCBtYXJrR2xvYmFsQmxvY2tzID0gKHtcblx0cmVzcG9uc2UsXG5cdHVzZXJMaW5rcyxcblx0YmtpcCxcbn06IHtcblx0cmVzcG9uc2U6IFF1ZXJ5TG9jYWxBbmRHbG9iYWxCbG9ja3NSZXNwb25zZTtcblx0dXNlckxpbmtzOiBSZWNvcmQ8c3RyaW5nLCBKUXVlcnlbXT47XG5cdGJraXA/OiBzdHJpbmc7XG59KTogdm9pZCA9PiB7XG5cdC8vIEdsb2JhbCBibG9ja3Ncblx0aWYgKCFyZXNwb25zZVsncXVlcnknXT8uZ2xvYmFsYmxvY2tzKSB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0Zm9yIChjb25zdCBibG9jayBvZiByZXNwb25zZVsncXVlcnknXS5nbG9iYWxibG9ja3MpIHtcblx0XHRsZXQgY2xhc3NOYW1lOiBzdHJpbmcgPSB1c2VybGlua1BhcnRpYWwgYXMgc3RyaW5nO1xuXHRcdGxldCBibG9ja1RpbWU6IHN0cmluZyA9ICcnO1xuXHRcdGlmIChibG9jay5leHBpcnkuc3RhcnRzV2l0aCgnaW4nKSkge1xuXHRcdFx0Y2xhc3NOYW1lID0gdXNlcmxpbmtJbmRlZiBhcyBzdHJpbmc7XG5cdFx0XHRibG9ja1RpbWUgPSBnZXRNZXNzYWdlKCdpbmZpbml0eScpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRjbGFzc05hbWUgPSB1c2VybGlua1RlbXAgYXMgc3RyaW5nO1xuXHRcdFx0YmxvY2tUaW1lID0gaW5Ib3VycyhwYXJzZVRTKGJsb2NrLmV4cGlyeSkgLSBwYXJzZVRTKGJsb2NrLnRpbWVzdGFtcCkpO1xuXHRcdH1cblxuXHRcdGxldCB0aXA6IHN0cmluZyA9IGdldE1lc3NhZ2UoJ0dsb2JhbGx5IEJsb2NrZWQnKVxuXHRcdFx0LnJlcGxhY2UoJyQxJywgYmxvY2tUaW1lKVxuXHRcdFx0LnJlcGxhY2UoJyQyJywgYmxvY2suYnkpXG5cdFx0XHQucmVwbGFjZSgnJDMnLCBibG9jay5yZWFzb24pXG5cdFx0XHQucmVwbGFjZSgnJDQnLCBpbkhvdXJzKERhdGUubm93KCkgLSBwYXJzZVRTKGJsb2NrLnRpbWVzdGFtcCkpKTtcblx0XHR0aXAgPSB0aXAucmVwbGFjZSgnJDUnLCAnJyk7XG5cblx0XHRjb25zdCAkbGlua3M6IEpRdWVyeVtdIHwgdW5kZWZpbmVkID0gdXNlckxpbmtzW2JraXAgPz8gYmxvY2sudGFyZ2V0XTtcblx0XHRpZiAoISRsaW5rcykge1xuXHRcdFx0Y29udGludWU7XG5cdFx0fVxuXG5cdFx0Zm9yIChjb25zdCAkbGluayBvZiAkbGlua3MpIHtcblx0XHRcdC8vIFRoZSBmb2xsb3dpbmcgY2xhc3NlcyBhcmUgdXNlZCBoZXJlOlxuXHRcdFx0Ly8gKiBzZWUgLi9NYXJrYmxvY2tlZC5tb2R1bGUubGVzc1xuXHRcdFx0Ly8gKiBmb3IgbW9yZSBpbmZvcm1hdGlvblxuXHRcdFx0JGxpbmsuYWRkQ2xhc3MoY2xhc3NOYW1lKS5hdHRyKCd0aXRsZScsICRsaW5rLmF0dHIoJ3RpdGxlJykgKyB0aXApO1xuXHRcdH1cblx0fVxufTtcblxuZXhwb3J0IHttYXJrR2xvYmFsTG9ja2VkTGlua3MsIG1hcmtMb2NhbEJsb2NrcywgbWFya0dsb2JhbEJsb2Nrc307XG4iLCAiaW1wb3J0ICogYXMgT1BUSU9OUyBmcm9tICcuLi8uLi9vcHRpb25zLmpzb24nO1xuaW1wb3J0IHtpbml0TXdBcGl9IGZyb20gJ2V4dC5nYWRnZXQuVXRpbCc7XG5cbmNvbnN0IGFwaTogbXcuQXBpID0gaW5pdE13QXBpKGBNYXJrQmxvY2tlZC8ke09QVElPTlMudmVyc2lvbn1gKTtcblxuZXhwb3J0IHthcGl9O1xuIiwgImltcG9ydCB7QXBpUXVlcnlHbG9iYWxCbG9ja3NQYXJhbXNSZWRlZmluZWR9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7YXBpfSBmcm9tICcuL2FwaSc7XG5cbmNvbnN0IHF1ZXJ5R2xvYmFsVXNlckluZm8gPSBhc3luYyAoZ3VpdXNlcjogc3RyaW5nKSA9PiB7XG5cdGNvbnN0IHBhcmFtczogQXBpUXVlcnlHbG9iYWxVc2VySW5mb1Jlc3BvbnNlID0ge1xuXHRcdGFjdGlvbjogJ3F1ZXJ5Jyxcblx0XHRmb3JtYXQ6ICdqc29uJyxcblx0XHRmb3JtYXR2ZXJzaW9uOiAnMicsXG5cdFx0bWV0YTogWydnbG9iYWx1c2VyaW5mbyddLFxuXHRcdGd1aXVzZXIsXG5cdFx0c21heGFnZTogNjAwLFxuXHRcdG1heGFnZTogNjAwLFxuXHR9O1xuXG5cdHJldHVybiBhd2FpdCBhcGkuZ2V0KHBhcmFtcyk7XG59O1xuXG5jb25zdCBxdWVyeUlQQmxvY2tzID0gYXN5bmMgKGJraXA6IHN0cmluZykgPT4ge1xuXHRjb25zdCBwYXJhbXM6IEFwaVF1ZXJ5QmxvY2tzUGFyYW1zICYgQXBpUXVlcnlHbG9iYWxCbG9ja3NQYXJhbXNSZWRlZmluZWQgPSB7XG5cdFx0YWN0aW9uOiAncXVlcnknLFxuXHRcdGZvcm1hdDogJ2pzb24nLFxuXHRcdGZvcm1hdHZlcnNpb246ICcyJyxcblx0XHRsaXN0OiBbJ2Jsb2NrcycsICdnbG9iYWxibG9ja3MnXSxcblx0XHRia2lwLFxuXHRcdGJrbGltaXQ6IDEwMCxcblx0XHRia3Byb3A6IFsnYnknLCAnZXhwaXJ5JywgJ3JlYXNvbicsICdyZXN0cmljdGlvbnMnLCAndGltZXN0YW1wJywgJ3VzZXInXSxcblx0XHRiZ2lwOiBia2lwLFxuXHRcdGJnbGltaXQ6IDEwMCxcblx0XHRiZ3Byb3A6IFsnYnknLCAnZXhwaXJ5JywgJ3JlYXNvbicsICd0aW1lc3RhbXAnLCAndGFyZ2V0J10sXG5cdFx0c21heGFnZTogNjAwLFxuXHRcdG1heGFnZTogNjAwLFxuXHR9O1xuXG5cdHJldHVybiBhd2FpdCBhcGkuZ2V0KHBhcmFtcyk7XG59O1xuXG5jb25zdCBxdWVyeVVzZXJCbG9ja3MgPSBhc3luYyAoYmt1c2Vyczogc3RyaW5nIHwgc3RyaW5nW10pID0+IHtcblx0Y29uc3QgcGFyYW1zOiBBcGlRdWVyeUJsb2Nrc1BhcmFtcyAmIEFwaVF1ZXJ5R2xvYmFsQmxvY2tzUGFyYW1zUmVkZWZpbmVkID0ge1xuXHRcdGFjdGlvbjogJ3F1ZXJ5Jyxcblx0XHRmb3JtYXQ6ICdqc29uJyxcblx0XHRmb3JtYXR2ZXJzaW9uOiAnMicsXG5cdFx0bGlzdDogWydibG9ja3MnLCAnZ2xvYmFsYmxvY2tzJ10sXG5cdFx0Ymt1c2Vycyxcblx0XHRia2xpbWl0OiAxMDAsXG5cdFx0Ymtwcm9wOiBbJ2J5JywgJ2V4cGlyeScsICdyZWFzb24nLCAncmVzdHJpY3Rpb25zJywgJ3RpbWVzdGFtcCcsICd1c2VyJ10sXG5cdFx0YmdsaW1pdDogMTAwLFxuXHRcdGJndGFyZ2V0czogYmt1c2Vycyxcblx0XHRiZ3Byb3A6IFsnYnknLCAnZXhwaXJ5JywgJ3JlYXNvbicsICd0aW1lc3RhbXAnLCAndGFyZ2V0J10sXG5cdFx0c21heGFnZTogNjAwLFxuXHRcdG1heGFnZTogNjAwLFxuXHR9O1xuXG5cdHJldHVybiBhd2FpdCBhcGkuZ2V0KHBhcmFtcyk7XG59O1xuXG5leHBvcnQge3F1ZXJ5R2xvYmFsVXNlckluZm8sIHF1ZXJ5SVBCbG9ja3MsIHF1ZXJ5VXNlckJsb2Nrc307XG4iLCAiaW1wb3J0ICogYXMgT1BUSU9OUyBmcm9tICcuLi8uLi9vcHRpb25zLmpzb24nO1xuaW1wb3J0IHR5cGUge1F1ZXJ5R2xvYmFsTG9ja3NSZXNwb25zZSwgUXVlcnlMb2NhbEFuZEdsb2JhbEJsb2Nrc1Jlc3BvbnNlfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQge21hcmtHbG9iYWxCbG9ja3MsIG1hcmtHbG9iYWxMb2NrZWRMaW5rcywgbWFya0xvY2FsQmxvY2tzfSBmcm9tICcuL21hcmtMaW5rcyc7XG5pbXBvcnQge3F1ZXJ5R2xvYmFsVXNlckluZm8sIHF1ZXJ5SVBCbG9ja3MsIHF1ZXJ5VXNlckJsb2Nrc30gZnJvbSAnLi9xdWVyeSc7XG5cbmNvbnN0IG1hcmtHbG9iYWxMb2NrZWRVc2VyTGlua3MgPSAodXNlckxpbmtzOiBSZWNvcmQ8c3RyaW5nLCBKUXVlcnlbXT4pID0+IHtcblx0Ly8gQ29udmVydCB1c2VycyBpbnRvIGFycmF5XG5cdGNvbnN0IHVzZXJzOiBzdHJpbmdbXSA9IE9iamVjdC5rZXlzKHVzZXJMaW5rcyk7XG5cdGlmICghdXNlcnMubGVuZ3RoKSB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0Y29uc3QgcHJvbWlzZXM6ICgoKSA9PiBQcm9taXNlPHZvaWQ+KVtdID0gW107XG5cblx0Ly8gR2xvYmFsIExvY2sgcXVlcmllc1xuXHRmb3IgKGNvbnN0IGd1aXVzZXIgb2YgdXNlcnMpIHtcblx0XHRpZiAobXcudXRpbC5pc0lQdjRBZGRyZXNzKGd1aXVzZXIpIHx8IG13LnV0aWwuaXNJUHY2QWRkcmVzcyhndWl1c2VyKSkge1xuXHRcdFx0Y29udGludWU7XG5cdFx0fVxuXG5cdFx0aWYgKG13LnN0b3JhZ2UuZ2V0T2JqZWN0KE9QVElPTlMuc3RvcmFnZUtleUxvY2tlZCArIGd1aXVzZXIpKSB7XG5cdFx0XHRjb25zdCByZXNwb25zZSA9IG13LnN0b3JhZ2UuZ2V0T2JqZWN0KE9QVElPTlMuc3RvcmFnZUtleUxvY2tlZCArIGd1aXVzZXIpIGFzIFF1ZXJ5R2xvYmFsTG9ja3NSZXNwb25zZTtcblxuXHRcdFx0aWYgKHJlc3BvbnNlWydxdWVyeSddPy5nbG9iYWx1c2VyaW5mbykge1xuXHRcdFx0XHRtYXJrR2xvYmFsTG9ja2VkTGlua3Moe3Jlc3BvbnNlLCB1c2VyTGlua3N9KTtcblx0XHRcdFx0Y29udGludWU7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cHJvbWlzZXNbcHJvbWlzZXMubGVuZ3RoXSA9IGFzeW5jICgpOiBQcm9taXNlPHZvaWQ+ID0+IHtcblx0XHRcdHRyeSB7XG5cdFx0XHRcdGNvbnN0IHJlc3BvbnNlID0gKGF3YWl0IHF1ZXJ5R2xvYmFsVXNlckluZm8oZ3VpdXNlcikpIGFzIFF1ZXJ5R2xvYmFsTG9ja3NSZXNwb25zZTtcblxuXHRcdFx0XHRtYXJrR2xvYmFsTG9ja2VkTGlua3Moe3Jlc3BvbnNlLCB1c2VyTGlua3N9KTtcblxuXHRcdFx0XHRtdy5zdG9yYWdlLnNldE9iamVjdChPUFRJT05TLnN0b3JhZ2VLZXlMb2NrZWQgKyBndWl1c2VyLCByZXNwb25zZSwgNjAgKiA2MCAqIDI0KTtcblx0XHRcdH0gY2F0Y2ggKGVycm9yOiB1bmtub3duKSB7XG5cdFx0XHRcdGNvbnNvbGUuZXJyb3IoJ1tNYXJrQmxvY2tlZF0gQWpheCBlcnJvcjonLCBlcnJvcik7XG5cdFx0XHR9XG5cdFx0fTtcblx0fVxuXG5cdHZvaWQgKGFzeW5jICgpID0+IHtcblx0XHRmb3IgKGNvbnN0IHByb21pc2Ugb2YgcHJvbWlzZXMpIHtcblx0XHRcdHRyeSB7XG5cdFx0XHRcdGF3YWl0IHByb21pc2UoKTtcblx0XHRcdH0gY2F0Y2gge31cblx0XHR9XG5cdH0pKCk7XG59O1xuXG5jb25zdCBtYXJrQmxvY2tlZFVzZXJMaW5rcyA9ICh1c2VyTGlua3M6IFJlY29yZDxzdHJpbmcsIEpRdWVyeVtdPikgPT4ge1xuXHQvLyBDb252ZXJ0IHVzZXJzIGludG8gYXJyYXlcblx0bGV0IHVzZXJzOiBzdHJpbmdbXSA9IE9iamVjdC5rZXlzKHVzZXJMaW5rcyk7XG5cdGlmICghdXNlcnMubGVuZ3RoKSB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0Y29uc3QgcHJvbWlzZXM6ICgoKSA9PiBQcm9taXNlPHZvaWQ+KVtdID0gW107XG5cblx0Zm9yIChjb25zdCB1c2VyIG9mIHVzZXJzKSB7XG5cdFx0aWYgKG13LnN0b3JhZ2UuZ2V0T2JqZWN0KE9QVElPTlMuc3RvcmFnZUtleUJsb2NrZWQgKyB1c2VyKSkge1xuXHRcdFx0Y29uc3QgcmVzcG9uc2UgPSBtdy5zdG9yYWdlLmdldE9iamVjdChcblx0XHRcdFx0T1BUSU9OUy5zdG9yYWdlS2V5QmxvY2tlZCArIHVzZXJcblx0XHRcdCkgYXMgUXVlcnlMb2NhbEFuZEdsb2JhbEJsb2Nrc1Jlc3BvbnNlO1xuXG5cdFx0XHRpZiAocmVzcG9uc2VbJ3F1ZXJ5J10/LmJsb2NrcyB8fCByZXNwb25zZVsncXVlcnknXT8uZ2xvYmFsYmxvY2tzKSB7XG5cdFx0XHRcdGlmIChyZXNwb25zZVsncXVlcnknXT8uYmxvY2tzKSB7XG5cdFx0XHRcdFx0bWFya0xvY2FsQmxvY2tzKHtyZXNwb25zZSwgdXNlckxpbmtzfSk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRpZiAocmVzcG9uc2VbJ3F1ZXJ5J10/Lmdsb2JhbGJsb2Nrcykge1xuXHRcdFx0XHRcdG1hcmtHbG9iYWxCbG9ja3Moe3Jlc3BvbnNlLCB1c2VyTGlua3N9KTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdHVzZXJzID0gdXNlcnMuZmlsdGVyKChlbGVtZW50KSA9PiB7XG5cdFx0XHRcdFx0cmV0dXJuIGVsZW1lbnQgIT09IHVzZXI7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8vIExvY2FsIGFuZCBnbG9iYWwgdXNlciBibG9jayBxdWVyaWVzXG5cdGZvciAobGV0IGkgPSAwOyBpIDwgdXNlcnMubGVuZ3RoOyBpKyspIHtcblx0XHRjb25zdCBia3VzZXJzID0gdXNlcnMuc3BsaWNlKDAsIDI1KTtcblx0XHRpZiAoIWJrdXNlcnMubGVuZ3RoKSB7XG5cdFx0XHRjb250aW51ZTtcblx0XHR9XG5cblx0XHRwcm9taXNlc1twcm9taXNlcy5sZW5ndGhdID0gYXN5bmMgKCk6IFByb21pc2U8dm9pZD4gPT4ge1xuXHRcdFx0dHJ5IHtcblx0XHRcdFx0Y29uc3QgcmVzcG9uc2UgPSAoYXdhaXQgcXVlcnlVc2VyQmxvY2tzKGJrdXNlcnMpKSBhcyBRdWVyeUxvY2FsQW5kR2xvYmFsQmxvY2tzUmVzcG9uc2U7XG5cblx0XHRcdFx0aWYgKHJlc3BvbnNlWydxdWVyeSddPy5ibG9ja3MpIHtcblx0XHRcdFx0XHRtYXJrTG9jYWxCbG9ja3Moe3Jlc3BvbnNlLCB1c2VyTGlua3N9KTtcblxuXHRcdFx0XHRcdGZvciAoY29uc3QgYmxvY2sgb2YgcmVzcG9uc2VbJ3F1ZXJ5J10uYmxvY2tzKSB7XG5cdFx0XHRcdFx0XHRpZiAoYmxvY2sudXNlcikge1xuXHRcdFx0XHRcdFx0XHRtdy5zdG9yYWdlLnNldE9iamVjdChPUFRJT05TLnN0b3JhZ2VLZXlMb2NrZWQgKyBibG9jay51c2VyLCByZXNwb25zZSwgNjAgKiA2MCk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0aWYgKHJlc3BvbnNlWydxdWVyeSddPy5nbG9iYWxibG9ja3MpIHtcblx0XHRcdFx0XHRtYXJrR2xvYmFsQmxvY2tzKHtyZXNwb25zZSwgdXNlckxpbmtzfSk7XG5cblx0XHRcdFx0XHRmb3IgKGNvbnN0IGJsb2NrIG9mIHJlc3BvbnNlWydxdWVyeSddLmdsb2JhbGJsb2Nrcykge1xuXHRcdFx0XHRcdFx0aWYgKGJsb2NrLnRhcmdldCkge1xuXHRcdFx0XHRcdFx0XHRtdy5zdG9yYWdlLnNldE9iamVjdChPUFRJT05TLnN0b3JhZ2VLZXlMb2NrZWQgKyBibG9jay50YXJnZXQsIHJlc3BvbnNlLCA2MCAqIDYwKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH0gY2F0Y2ggKGVycm9yOiB1bmtub3duKSB7XG5cdFx0XHRcdGNvbnNvbGUuZXJyb3IoJ1tNYXJrQmxvY2tlZF0gQWpheCBlcnJvcjonLCBlcnJvcik7XG5cdFx0XHR9XG5cdFx0fTtcblx0fVxuXG5cdHZvaWQgKGFzeW5jICgpID0+IHtcblx0XHRmb3IgKGNvbnN0IHByb21pc2Ugb2YgcHJvbWlzZXMpIHtcblx0XHRcdHRyeSB7XG5cdFx0XHRcdGF3YWl0IHByb21pc2UoKTtcblx0XHRcdH0gY2F0Y2gge31cblx0XHR9XG5cdH0pKCk7XG59O1xuXG5jb25zdCBtYXJrQmxvY2tlZElQTGlua3MgPSAodXNlckxpbmtzOiBSZWNvcmQ8c3RyaW5nLCBKUXVlcnlbXT4pID0+IHtcblx0Ly8gQ29udmVydCB1c2VycyBpbnRvIGFycmF5XG5cdGNvbnN0IHVzZXJzOiBzdHJpbmdbXSA9IE9iamVjdC5rZXlzKHVzZXJMaW5rcyk7XG5cdGlmICghdXNlcnMubGVuZ3RoKSB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0Y29uc3QgcHJvbWlzZXM6ICgoKSA9PiBQcm9taXNlPHZvaWQ+KVtdID0gW107XG5cblx0Ly8gTG9jYWwgYW5kIGdsb2JhbCBJUCBibG9jayBxdWVyaWVzXG5cdGZvciAobGV0IGkgPSAwOyBpIDwgdXNlcnMubGVuZ3RoOyBpKyspIHtcblx0XHRjb25zdCBia3VzZXJzID0gdXNlcnMuc3BsaWNlKDAsIDI1KTtcblx0XHRpZiAoIWJrdXNlcnMubGVuZ3RoKSB7XG5cdFx0XHRjb250aW51ZTtcblx0XHR9XG5cblx0XHRmb3IgKGxldCBia2lwIG9mIGJrdXNlcnMpIHtcblx0XHRcdGlmICghbXcudXRpbC5pc0lQdjRBZGRyZXNzKGJraXApICYmICFtdy51dGlsLmlzSVB2NkFkZHJlc3MoYmtpcCkpIHtcblx0XHRcdFx0Y29udGludWU7XG5cdFx0XHR9XG5cblx0XHRcdGlmIChtdy51dGlsLmlzSVB2NkFkZHJlc3MoYmtpcCkpIHtcblx0XHRcdFx0YmtpcCA9IGJraXAudG9VcHBlckNhc2UoKTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKG13LnN0b3JhZ2UuZ2V0T2JqZWN0KE9QVElPTlMuc3RvcmFnZUtleUJsb2NrZWQgKyBia2lwKSkge1xuXHRcdFx0XHRjb25zdCByZXNwb25zZSA9IG13LnN0b3JhZ2UuZ2V0T2JqZWN0KFxuXHRcdFx0XHRcdE9QVElPTlMuc3RvcmFnZUtleUJsb2NrZWQgKyBia2lwXG5cdFx0XHRcdCkgYXMgUXVlcnlMb2NhbEFuZEdsb2JhbEJsb2Nrc1Jlc3BvbnNlO1xuXG5cdFx0XHRcdGlmIChyZXNwb25zZVsncXVlcnknXT8uYmxvY2tzKSB7XG5cdFx0XHRcdFx0bWFya0xvY2FsQmxvY2tzKHtyZXNwb25zZSwgdXNlckxpbmtzfSk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRpZiAocmVzcG9uc2VbJ3F1ZXJ5J10/Lmdsb2JhbGJsb2Nrcykge1xuXHRcdFx0XHRcdG1hcmtHbG9iYWxCbG9ja3Moe3Jlc3BvbnNlLCB1c2VyTGlua3N9KTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0fVxuXG5cdFx0XHRwcm9taXNlc1twcm9taXNlcy5sZW5ndGhdID0gYXN5bmMgKCk6IFByb21pc2U8dm9pZD4gPT4ge1xuXHRcdFx0XHR0cnkge1xuXHRcdFx0XHRcdGNvbnN0IHJlc3BvbnNlID0gKGF3YWl0IHF1ZXJ5SVBCbG9ja3MoYmtpcCkpIGFzIFF1ZXJ5TG9jYWxBbmRHbG9iYWxCbG9ja3NSZXNwb25zZTtcblxuXHRcdFx0XHRcdGlmIChyZXNwb25zZVsncXVlcnknXT8uYmxvY2tzKSB7XG5cdFx0XHRcdFx0XHRtYXJrTG9jYWxCbG9ja3Moe3Jlc3BvbnNlLCB1c2VyTGlua3MsIGJraXB9KTtcblxuXHRcdFx0XHRcdFx0Zm9yIChjb25zdCBibG9jayBvZiByZXNwb25zZVsncXVlcnknXS5ibG9ja3MpIHtcblx0XHRcdFx0XHRcdFx0aWYgKGJsb2NrLnVzZXIpIHtcblx0XHRcdFx0XHRcdFx0XHRtdy5zdG9yYWdlLnNldE9iamVjdChPUFRJT05TLnN0b3JhZ2VLZXlMb2NrZWQgKyBibG9jay51c2VyLCByZXNwb25zZSwgNjAgKiA2MCk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRpZiAocmVzcG9uc2VbJ3F1ZXJ5J10/Lmdsb2JhbGJsb2Nrcykge1xuXHRcdFx0XHRcdFx0bWFya0dsb2JhbEJsb2Nrcyh7cmVzcG9uc2UsIHVzZXJMaW5rcywgYmtpcH0pO1xuXG5cdFx0XHRcdFx0XHRmb3IgKGNvbnN0IGJsb2NrIG9mIHJlc3BvbnNlWydxdWVyeSddLmdsb2JhbGJsb2Nrcykge1xuXHRcdFx0XHRcdFx0XHRpZiAoYmxvY2sudGFyZ2V0KSB7XG5cdFx0XHRcdFx0XHRcdFx0bXcuc3RvcmFnZS5zZXRPYmplY3QoT1BUSU9OUy5zdG9yYWdlS2V5TG9ja2VkICsgYmxvY2sudGFyZ2V0LCByZXNwb25zZSwgNjAgKiA2MCk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0gY2F0Y2ggKGVycm9yOiB1bmtub3duKSB7XG5cdFx0XHRcdFx0Y29uc29sZS5lcnJvcignW01hcmtCbG9ja2VkXSBBamF4IGVycm9yOicsIGVycm9yKTtcblx0XHRcdFx0fVxuXHRcdFx0fTtcblx0XHR9XG5cdH1cblxuXHR2b2lkIChhc3luYyAoKSA9PiB7XG5cdFx0Zm9yIChjb25zdCBwcm9taXNlIG9mIHByb21pc2VzKSB7XG5cdFx0XHR0cnkge1xuXHRcdFx0XHRhd2FpdCBwcm9taXNlKCk7XG5cdFx0XHR9IGNhdGNoIHt9XG5cdFx0fVxuXHR9KSgpO1xufTtcblxuZXhwb3J0IHttYXJrR2xvYmFsTG9ja2VkVXNlckxpbmtzLCBtYXJrQmxvY2tlZFVzZXJMaW5rcywgbWFya0Jsb2NrZWRJUExpbmtzfTtcbiIsICJpbXBvcnQgKiBhcyBPUFRJT05TIGZyb20gJy4uLy4uL29wdGlvbnMuanNvbic7XG5pbXBvcnQge013VXJpfSBmcm9tICdleHQuZ2FkZ2V0LlV0aWwnO1xuaW1wb3J0IHtnZW5lcmF0ZVVzZXJOYW1lc3BhY2VUaXRsZXN9IGZyb20gJy4vZ2VuZXJhdGVVc2VyTmFtZXNwYWNlVGl0bGVzJztcblxuLy8gR2V0IGFsbCBhbGlhc2VzIGZvciB1c2VyOiAmIHVzZXJfdGFsazpcbmNvbnN0IHVzZXJOYW1lc3BhY2VUaXRsZXM6IHN0cmluZ1tdID0gZ2VuZXJhdGVVc2VyTmFtZXNwYWNlVGl0bGVzKCk7XG4vLyBSZWdFeHAgZm9yIGFsbCB0aXRsZXMgdGhhdCBhcmUgIFVzZXI6fCBVc2VyX3RhbGs6IHwgU3BlY2lhbDpDb250cmlidXRpb25zLyAoZm9yIHVzZXJzY3JpcHRzKVxuY29uc3QgdXNlclRpdGxlUmVnZXg6IFJlZ0V4cCA9IG5ldyBSZWdFeHAoXG5cdGBeKCR7dXNlck5hbWVzcGFjZVRpdGxlcy5qb2luKCd8Jyl9fCR7T1BUSU9OUy5jb250cmlidXRpb25zUGFnZUFsaWFzfVxcXFwvKSsoW15cXFxcLyNdKykkYCxcblx0J2knXG4pO1xuXG4vLyBSZWdFeHAgZm9yIGxpbmtzXG4vLyBhcnRpY2xlUmVnZXggYWxzbyBtYXRjaGVzIGV4dGVybmFsIGxpbmtzIGluIG9yZGVyIHRvIHN1cHBvcnQgdGhlIG5vcGluZyB0ZW1wbGF0ZVxuY29uc3Qge3dnQXJ0aWNsZVBhdGgsIHdnU2NyaXB0fSA9IG13LmNvbmZpZy5nZXQoKTtcbmNvbnN0IGFydGljbGVSZWdleDogUmVnRXhwID0gbmV3IFJlZ0V4cChgJHt3Z0FydGljbGVQYXRoLnJlcGxhY2UoJyQxJywgJycpfShbXiNdKylgKTtcbmNvbnN0IHNjcmlwdFJlZ2V4OiBSZWdFeHAgPSBuZXcgUmVnRXhwKGBeJHt3Z1NjcmlwdH1cXFxcP3RpdGxlPShbXiMmXSspYCk7XG5cbmNvbnN0IGdlbmVyYXRlVXNlckxpbmtzID0gKCRjb250ZW50OiBKUXVlcnkpOiBSZWNvcmQ8c3RyaW5nLCBKUXVlcnlbXT4gPT4ge1xuXHQvLyBGaW5kIGFsbCBcInVzZXJcIiBsaW5rcyBhbmQgc2F2ZSB0aGVtIGluIHVzZXJMaW5rcyA6IHsgJ3VzZXJzJzogWzxsaW5rMT4sIDxsaW5rMj4sIC4uLl0sICd1c2VyMic6IFs8bGluazM+LCA8bGluazM+LCAuLi5dLCAuLi4gfVxuXHRjb25zdCB1c2VyTGlua3M6IFJlY29yZDxzdHJpbmcsIEpRdWVyeVtdPiA9IHt9O1xuXG5cdGZvciAoY29uc3QgZWxlbWVudCBvZiAkY29udGVudC5maW5kKCdhJykpIHtcblx0XHRjb25zdCAkZWxlbWVudDogSlF1ZXJ5PEhUTUxBbmNob3JFbGVtZW50PiA9ICQoZWxlbWVudCk7XG5cdFx0aWYgKFxuXHRcdFx0JGVsZW1lbnQuaGFzQ2xhc3MoJ213LWNoYW5nZXNsaXN0LWRhdGUnKSB8fFxuXHRcdFx0JGVsZW1lbnQuaGFzQ2xhc3MoJ2V4dC1kaXNjdXNzaW9udG9vbHMtaW5pdC10aW1lc3RhbXBsaW5rJykgfHxcblx0XHRcdCRlbGVtZW50LnBhcmVudCgnc3BhbicpLmhhc0NsYXNzKCdtdy1oaXN0b3J5LXVuZG8nKSB8fFxuXHRcdFx0JGVsZW1lbnQucGFyZW50KCdzcGFuJykuaGFzQ2xhc3MoJ213LXJvbGxiYWNrLWxpbmsnKVxuXHRcdCkge1xuXHRcdFx0Y29udGludWU7XG5cdFx0fVxuXG5cdFx0Y29uc3QgaHJlZjogc3RyaW5nIHwgdW5kZWZpbmVkID0gJGVsZW1lbnQuYXR0cignaHJlZicpO1xuXHRcdGlmICghaHJlZikge1xuXHRcdFx0Y29udGludWU7XG5cdFx0fVxuXHRcdGlmIChtdy51dGlsLmlzSVB2NkFkZHJlc3MoaHJlZi5yZXBsYWNlKC9eKD86aHR0cHM/OlxcL1xcLykvaSwgJycpKSkge1xuXHRcdFx0Y29udGludWU7XG5cdFx0fVxuXHRcdHRyeSB7XG5cdFx0XHQvLyBNYXliZSBhYnNvbHV0ZSBVUkxcblx0XHRcdGlmIChuZXcgTXdVcmkoaHJlZikuaG9zdCAhPT0gbG9jYXRpb24uaG9zdCkge1xuXHRcdFx0XHRjb250aW51ZTtcblx0XHRcdH1cblx0XHR9IGNhdGNoIHtcblx0XHRcdHRyeSB7XG5cdFx0XHRcdC8vIE1heWJlIHJlbGF0aXZlIFVSTFxuXHRcdFx0XHRpZiAobmV3IE13VXJpKGxvY2F0aW9uLmhyZWYgKyBocmVmKS5ob3N0ICE9PSBsb2NhdGlvbi5ob3N0KSB7XG5cdFx0XHRcdFx0Y29udGludWU7XG5cdFx0XHRcdH1cblx0XHRcdH0gY2F0Y2gge1xuXHRcdFx0XHRjb250aW51ZTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRsZXQgcGFnZVRpdGxlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cdFx0aWYgKGFydGljbGVSZWdleC50ZXN0KGhyZWYpKSB7XG5cdFx0XHRjb25zdCBtYXRjaDogUmVnRXhwRXhlY0FycmF5ID0gYXJ0aWNsZVJlZ2V4LmV4ZWMoaHJlZikgYXMgUmVnRXhwRXhlY0FycmF5O1xuXHRcdFx0cGFnZVRpdGxlID0gbWF0Y2hbMV0gYXMgc3RyaW5nO1xuXHRcdH0gZWxzZSBpZiAoc2NyaXB0UmVnZXgudGVzdChocmVmKSkge1xuXHRcdFx0Y29uc3QgbWF0Y2g6IFJlZ0V4cEV4ZWNBcnJheSA9IHNjcmlwdFJlZ2V4LmV4ZWMoaHJlZikgYXMgUmVnRXhwRXhlY0FycmF5O1xuXHRcdFx0cGFnZVRpdGxlID0gbWF0Y2hbMV0gYXMgc3RyaW5nO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRjb250aW51ZTtcblx0XHR9XG5cblx0XHRwYWdlVGl0bGUgPSBkZWNvZGVVUklDb21wb25lbnQocGFnZVRpdGxlKS5yZXBsYWNlKC9fL2csICcgJyk7XG5cblx0XHRjb25zdCB1c2VyRXhlY0FycmF5OiBSZWdFeHBFeGVjQXJyYXkgfCBudWxsID0gdXNlclRpdGxlUmVnZXguZXhlYyhwYWdlVGl0bGUpO1xuXHRcdGlmICghdXNlckV4ZWNBcnJheSB8fCB0eXBlb2YgdXNlckV4ZWNBcnJheVsyXSAhPT0gJ3N0cmluZycpIHtcblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblxuXHRcdGxldCB1c2VyOiBzdHJpbmcgPSB1c2VyRXhlY0FycmF5WzJdLnNsaWNlKDAsIDEpLnRvVXBwZXJDYXNlKCkgKyB1c2VyRXhlY0FycmF5WzJdLnNsaWNlKDEpO1xuXHRcdGlmIChtdy51dGlsLmlzSVB2NkFkZHJlc3ModXNlcikpIHtcblx0XHRcdHVzZXIgPSB1c2VyLnRvVXBwZXJDYXNlKCk7XG5cdFx0fVxuXG5cdFx0dXNlckxpbmtzW3VzZXJdID8/PSBbXTtcblxuXHRcdCh1c2VyTGlua3NbdXNlcl0gYXMgKHR5cGVvZiB1c2VyTGlua3MpW2tleW9mIHR5cGVvZiB1c2VyTGlua3NdKVtcblx0XHRcdCh1c2VyTGlua3NbdXNlcl0gYXMgKHR5cGVvZiB1c2VyTGlua3MpW2tleW9mIHR5cGVvZiB1c2VyTGlua3NdKS5sZW5ndGhcblx0XHRdID0gJGVsZW1lbnQ7IC8vIFJlcGxhY2UgQXJyYXkjcHVzaCB0byBhdm9pZCBjb3JlLWpzIHBvbHlmaWxsaW5nXG5cdH1cblxuXHRyZXR1cm4gdXNlckxpbmtzO1xufTtcblxuZXhwb3J0IHtnZW5lcmF0ZVVzZXJMaW5rc307XG4iLCAiaW1wb3J0ICogYXMgT1BUSU9OUyBmcm9tICcuLi8uLi9vcHRpb25zLmpzb24nO1xuXG5jb25zdCBnZW5lcmF0ZVVzZXJOYW1lc3BhY2VUaXRsZXMgPSAoKTogc3RyaW5nW10gPT4ge1xuXHRjb25zdCB7d2dOYW1lc3BhY2VJZHN9ID0gbXcuY29uZmlnLmdldCgpO1xuXG5cdGNvbnN0IHVzZXJOYW1lc3BhY2VUaXRsZXM6IHN0cmluZ1tdID0gW107XG5cblx0Zm9yIChjb25zdCBbbmFtZXNwYWNlLCBpZF0gb2YgT2JqZWN0LmVudHJpZXMod2dOYW1lc3BhY2VJZHMpKSB7XG5cdFx0aWYgKCFPUFRJT05TLnVzZXJOYW1lc3BhY2VOdW1iZXJzLmluY2x1ZGVzKGlkKSkge1xuXHRcdFx0Y29udGludWU7XG5cdFx0fVxuXG5cdFx0dXNlck5hbWVzcGFjZVRpdGxlc1t1c2VyTmFtZXNwYWNlVGl0bGVzLmxlbmd0aF0gPSBgJHttdy51dGlsLmVzY2FwZVJlZ0V4cChuYW1lc3BhY2UucmVwbGFjZSgvXy9nLCAnICcpKX06YDsgLy8gUmVwbGFjZSBBcnJheSNwdXNoIHRvIGF2b2lkIGNvcmUtanMgcG9seWZpbGxpbmdcblx0fVxuXG5cdHJldHVybiB1c2VyTmFtZXNwYWNlVGl0bGVzO1xufTtcblxuZXhwb3J0IHtnZW5lcmF0ZVVzZXJOYW1lc3BhY2VUaXRsZXN9O1xuIiwgImltcG9ydCB7bWFya0Jsb2NrZWRJUExpbmtzLCBtYXJrQmxvY2tlZFVzZXJMaW5rcywgbWFya0dsb2JhbExvY2tlZFVzZXJMaW5rc30gZnJvbSAnLi91dGlsL21hcmtVc2VyTGlua3MnO1xuaW1wb3J0IHtnZW5lcmF0ZVVzZXJMaW5rc30gZnJvbSAnLi91dGlsL2dlbmVyYXRlVXNlckxpbmtzJztcblxuY29uc3QgbWFya0Jsb2NrZWRVc2VyID0gKCRjb250ZW50OiBKUXVlcnkpOiB2b2lkID0+IHtcblx0Ly8gRmluZCBhbGwgXCJ1c2VyXCIgbGlua3MgYW5kIHNhdmUgdGhlbSBpbiB1c2VyTGlua3MgOiB7ICd1c2Vycyc6IFs8bGluazE+LCA8bGluazI+LCAuLi5dLCAndXNlcjInOiBbPGxpbmszPiwgPGxpbmszPiwgLi4uXSwgLi4uIH1cblx0Y29uc3QgdXNlckxpbmtzOiBSZWNvcmQ8c3RyaW5nLCBKUXVlcnlbXT4gPSBnZW5lcmF0ZVVzZXJMaW5rcygkY29udGVudCk7XG5cblx0bWFya0dsb2JhbExvY2tlZFVzZXJMaW5rcyh1c2VyTGlua3MpO1xuXHRtYXJrQmxvY2tlZFVzZXJMaW5rcyh1c2VyTGlua3MpO1xuXHRtYXJrQmxvY2tlZElQTGlua3ModXNlckxpbmtzKTtcbn07XG5cbmV4cG9ydCB7bWFya0Jsb2NrZWRVc2VyfTtcbiIsICJpbXBvcnQge21hcmtCbG9ja2VkVXNlcn0gZnJvbSAnLi9tYXJrQmxvY2tlZFVzZXInO1xuXG5jb25zdCB7d2dBY3Rpb24sIHdnTmFtZXNwYWNlTnVtYmVyfSA9IG13LmNvbmZpZy5nZXQoKTtcblxuY29uc3QgYWRkSG9vayA9ICgpOiB2b2lkID0+IHtcblx0bGV0IGlzSW5pdDogYm9vbGVhbiA9IGZhbHNlO1xuXG5cdG13Lmhvb2soJ3dpa2lwYWdlLmNvbnRlbnQnKS5hZGQoZnVuY3Rpb24gbWFya0Jsb2NrZWQoJGNvbnRlbnQpOiB2b2lkIHtcblx0XHRpZiAoaXNJbml0KSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdGlzSW5pdCA9IHRydWU7XG5cblx0XHQvLyBPbiB0aGUgZmlyc3QgY2FsbCBhZnRlciBpbml0aWFsIHBhZ2UgbG9hZCwgY29udGFpbmVyIGlzIG13LnV0aWwuJGNvbnRlbnRcblx0XHQvLyBVc2VkIHRvIGxpbWl0IG1haW5zcGFjZSBhY3Rpdml0eSB0byBqdXN0IHRoZSBkaWZmIGRlZmluaXRpb25zXG5cdFx0aWYgKHdnQWN0aW9uID09PSAndmlldycgJiYgd2dOYW1lc3BhY2VOdW1iZXIgPT09IDApIHtcblx0XHRcdCRjb250ZW50ID0gJGNvbnRlbnQuZmluZCgnLmRpZmYtdGl0bGUnKTtcblx0XHR9XG5cdFx0Ly8gT24gcGFnZSBsb2FkLCBhbHNvIHVwZGF0ZSB0aGUgbmFtZXNwYWNlIHRhYlxuXHRcdCRjb250ZW50ID0gJGNvbnRlbnQuYWRkKCcjY2EtbnN0YWItdXNlcicpO1xuXG5cdFx0bWFya0Jsb2NrZWRVc2VyKCRjb250ZW50KTtcblx0fSk7XG59O1xuXG5leHBvcnQge2FkZEhvb2t9O1xuIiwgImltcG9ydCB7YWRkSG9va30gZnJvbSAnLi9tb2R1bGVzL2FkZEhvb2snO1xuXG5pZiAoIVsnZWRpdCcsICdzdWJtaXQnXS5pbmNsdWRlcyhtdy5jb25maWcuZ2V0KCd3Z0FjdGlvbicpKSkge1xuXHRhZGRIb29rKCk7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQyxJQUFBQSx5QkFBMEI7QUFDMUIsSUFBQUMsdUJBQXdCLENBQUMsR0FBRyxDQUFDO0FBQzdCLElBQUFDLG1CQUFvQjtBQUNwQixJQUFBQyxvQkFBcUI7QUFDckIsSUFBQUMsVUFBVzs7QUNMWixJQUFBQyxvQkFBdUJDLFFBQUEsaUJBQUE7QUFFdkIsSUFBTUMsa0JBQWtCQSxNQUFNO0FBQzdCLFNBQU87SUFDTkMsV0FBQSxHQUFVSCxrQkFBQUksVUFBUztNQUNsQkMsSUFBSTtNQUNKLFdBQVc7TUFDWCxXQUFXO0lBQ1osQ0FBQztJQUNEQyxVQUFBLEdBQVNOLGtCQUFBSSxVQUFTO01BQ2pCQyxJQUFJO01BQ0osV0FBVztNQUNYLFdBQVc7SUFDWixDQUFDO0lBQ0QscUJBQUEsR0FBb0JMLGtCQUFBSSxVQUFTO01BQzVCQyxJQUFJO01BQ0osV0FBVztNQUNYLFdBQVc7SUFDWixDQUFDO0lBQ0RFLFNBQUEsR0FBUVAsa0JBQUFJLFVBQVM7TUFDaEJDLElBQUk7TUFDSixXQUFXO01BQ1gsV0FBVztJQUNaLENBQUM7SUFDREcsVUFBQSxHQUFTUixrQkFBQUksVUFBUztNQUNqQkMsSUFBSTtNQUNKSSxJ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QUFFbkJoSyxnQkFBVUssSUFBSSxFQUNiTCxVQUFVSyxJQUFJLEVBQWlEZ0YsTUFDakUsSUFBSTZFO0lBQ0w7RUFBQSxTQUFBOUksS0FBQTtBQUFBeUksZ0JBQUF4SSxFQUFBRCxHQUFBO0VBQUEsVUFBQTtBQUFBeUksZ0JBQUF2SSxFQUFBO0VBQUE7QUFFQSxTQUFPdEI7QUFDUjs7QUVwRkEsSUFBTWdMLGtCQUFtQnBCLGNBQTJCO0FBRW5ELFFBQU01SixZQUFzQzJKLGtCQUFrQkMsUUFBUTtBQUV0RTNFLDRCQUEwQmpGLFNBQVM7QUFDbkNzRyx1QkFBcUJ0RyxTQUFTO0FBQzlCeUgscUJBQW1CekgsU0FBUztBQUM3Qjs7QUNSQSxJQUFNO0VBQUNpTDtFQUFVQztBQUFpQixJQUFJekYsR0FBR2lELE9BQU8zRSxJQUFJO0FBRXBELElBQU1vSCxVQUFVQSxNQUFZO0FBQzNCLE1BQUlDLFNBQWtCO0FBRXRCM0YsS0FBRzRGLEtBQUssa0JBQWtCLEVBQUVDLElBQUksU0FBU0MsWUFBWTNCLFVBQWdCO0FBQ3BFLFFBQUl3QixRQUFRO0FBQ1g7SUFDRDtBQUNBQSxhQUFTO0FBSVQsUUFBSUgsYUFBYSxVQUFVQyxzQkFBc0IsR0FBRztBQUNuRHRCLGlCQUFXQSxTQUFTRSxLQUFLLGFBQWE7SUFDdkM7QUFFQUYsZUFBV0EsU0FBUzBCLElBQUksZ0JBQWdCO0FBRXhDTixvQkFBZ0JwQixRQUFRO0VBQ3pCLENBQUM7QUFDRjs7QUNyQkEsSUFBSSxDQUFDLENBQUMsUUFBUSxRQUFRLEVBQUVYLFNBQVN4RCxHQUFHaUQsT0FBTzNFLElBQUksVUFBVSxDQUFDLEdBQUc7QUFDNURvSCxVQUFRO0FBQ1Q7IiwKICAibmFtZXMiOiBbImNvbnRyaWJ1dGlvbnNQYWdlQWxpYXMiLCAidXNlck5hbWVzcGFjZU51bWJlcnMiLCAic3RvcmFnZUtleUxvY2tlZCIsICJzdG9yYWdlS2V5QmxvY2tlZCIsICJ2ZXJzaW9uIiwgImltcG9ydF9leHRfZ2FkZ2V0IiwgInJlcXVpcmUiLCAiZ2V0STE4bk1lc3NhZ2VzIiwgImluZmluaXR5IiwgImxvY2FsaXplIiwgImVuIiwgIkJsb2NrZWQiLCAiTG9ja2VkIiwgInBhcnRpYWwiLCAiemgiLCAiZCIsICJzIiwgImkxOG5NZXNzYWdlcyIsICJnZXRNZXNzYWdlIiwgImtleSIsICJhZGRaZXJvIiwgInYiLCAiY29uY2F0IiwgImluSG91cnMiLCAibXMiLCAibW0iLCAiTWF0aCIsICJmbG9vciIsICJoaCIsICJkZCIsICJwYXJzZVRTIiwgInN0cmluZyIsICJtIiwgInJlcGxhY2UiLCAibWF0Y2giLCAiRGF0ZSIsICJVVEMiLCAiZ2V0VGltZSIsICJ1c2VybGlua0luZGVmIiwgInVzZXJsaW5rTG9ja2VkIiwgInVzZXJsaW5rUGFydGlhbCIsICJ1c2VybGlua1RlbXAiLCAibWFya0dsb2JhbExvY2tlZExpbmtzIiwgInJlc3BvbnNlIiwgInVzZXJMaW5rcyIsICJfcmVzcG9uc2UkcXVlcnkiLCAiX3Jlc3BvbnNlJHF1ZXJ5JGdsb2JhIiwgIl9yZXNwb25zZSRxdWVyeSRnbG9iYTIiLCAiZ2xvYmFsdXNlcmluZm8iLCAidXNlciIsICJuYW1lIiwgImxvY2tlZCIsICJ0aXAiLCAiJGxpbmtzIiwgImNsYXNzTmFtZSIsICJfaXRlcmF0b3IiLCAiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIiLCAiX3N0ZXAiLCAibiIsICJkb25lIiwgIiRsaW5rIiwgInZhbHVlIiwgImFkZENsYXNzIiwgImF0dHIiLCAiZXJyIiwgImUiLCAiZiIsICJtYXJrTG9jYWxCbG9ja3MiLCAiYmtpcCIsICJfcmVzcG9uc2UkcXVlcnkyIiwgImJsb2NrcyIsICJfaXRlcmF0b3IyIiwgIl9zdGVwMiIsICJibG9jayIsICJpc1BhcnRpYWxCbGNvayIsICJyZXN0cmljdGlvbnMiLCAiYmxvY2tUaW1lIiwgImV4cGlyeSIsICJzdGFydHNXaXRoIiwgInRpbWVzdGFtcCIsICJieSIsICJyZWFzb24iLCAibm93IiwgIl9pdGVyYXRvcjMiLCAiX3N0ZXAzIiwgIm1hcmtHbG9iYWxCbG9ja3MiLCAiX3Jlc3BvbnNlJHF1ZXJ5MyIsICJnbG9iYWxibG9ja3MiLCAiX2l0ZXJhdG9yNCIsICJfc3RlcDQiLCAidGFyZ2V0IiwgIl9pdGVyYXRvcjUiLCAiX3N0ZXA1IiwgImltcG9ydF9leHRfZ2FkZ2V0MiIsICJhcGkiLCAiaW5pdE13QXBpIiwgInF1ZXJ5R2xvYmFsVXNlckluZm8iLCAiX3JlZiIsICJfYXN5bmNUb0dlbmVyYXRvciIsICJndWl1c2VyIiwgInBhcmFtcyIsICJhY3Rpb24iLCAiZm9ybWF0IiwgImZvcm1hdHZlcnNpb24iLCAibWV0YSIsICJzbWF4YWdlIiwgIm1heGFnZSIsICJnZXQiLCAiX3giLCAiYXBwbHkiLCAiYXJndW1lbnRzIiwgInF1ZXJ5SVBCbG9ja3MiLCAiX3JlZjIiLCAibGlzdCIsICJia2xpbWl0IiwgImJrcHJvcCIsICJiZ2lwIiwgImJnbGltaXQiLCAiYmdwcm9wIiwgIl94MiIsICJxdWVyeVVzZXJCbG9ja3MiLCAiX3JlZjMiLCAiYmt1c2VycyIsICJiZ3RhcmdldHMiLCAiX3gzIiwgIm1hcmtHbG9iYWxMb2NrZWRVc2VyTGlua3MiLCAidXNlcnMiLCAiT2JqZWN0IiwgImtleXMiLCAibGVuZ3RoIiwgInByb21pc2VzIiwgIl9pIiwgIl91c2VycyIsICJtdyIsICJ1dGlsIiwgImlzSVB2NEFkZHJlc3MiLCAiaXNJUHY2QWRkcmVzcyIsICJzdG9yYWdlIiwgImdldE9iamVjdCIsICJfcmVzcG9uc2UkcXVlcnk0IiwgInNldE9iamVjdCIsICJlcnJvciIsICJjb25zb2xlIiwgIl9pMiIsICJfcHJvbWlzZXMiLCAicHJvbWlzZSIsICJtYXJrQmxvY2tlZFVzZXJMaW5rcyIsICJfaXRlcmF0b3I2IiwgIl9zdGVwNiIsICJfcmVzcG9uc2UkcXVlcnk3IiwgIl9yZXNwb25zZSRxdWVyeTgiLCAiX3Jlc3BvbnNlJHF1ZXJ5OSIsICJfcmVzcG9uc2UkcXVlcnkxMCIsICJmaWx0ZXIiLCAiZWxlbWVudCIsICJpIiwgInNwbGljZSIsICJfcmVzcG9uc2UkcXVlcnk1IiwgIl9yZXNwb25zZSRxdWVyeTYiLCAiX2l0ZXJhdG9yNyIsICJfc3RlcDciLCAiX2l0ZXJhdG9yOCIsICJfc3RlcDgiLCAiX2kzIiwgIl9wcm9taXNlczIiLCAibWFya0Jsb2NrZWRJUExpbmtzIiwgIl9pdGVyYXRvcjkiLCAiX3N0ZXA5IiwgInRvVXBwZXJDYXNlIiwgIl9yZXNwb25zZSRxdWVyeTExIiwgIl9yZXNwb25zZSRxdWVyeTEyIiwgIl9yZXNwb25zZSRxdWVyeTEzIiwgIl9yZXNwb25zZSRxdWVyeTE0IiwgIl9pdGVyYXRvcjEwIiwgIl9zdGVwMTAiLCAiX2l0ZXJhdG9yMTEiLCAiX3N0ZXAxMSIsICJfaTQiLCAiX3Byb21pc2VzMyIsICJpbXBvcnRfZXh0X2dhZGdldDMiLCAiZ2VuZXJhdGVVc2VyTmFtZXNwYWNlVGl0bGVzIiwgIndnTmFtZXNwYWNlSWRzIiwgImNvbmZpZyIsICJ1c2VyTmFtZXNwYWNlVGl0bGVzMiIsICJfaTUiLCAiX09iamVjdCRlbnRyaWVzIiwgImVudHJpZXMiLCAibmFtZXNwYWNlIiwgImlkIiwgImluY2x1ZGVzIiwgImVzY2FwZVJlZ0V4cCIsICJ1c2VyTmFtZXNwYWNlVGl0bGVzIiwgInVzZXJUaXRsZVJlZ2V4IiwgIlJlZ0V4cCIsICJqb2luIiwgIndnQXJ0aWNsZVBhdGgiLCAid2dTY3JpcHQiLCAiYXJ0aWNsZVJlZ2V4IiwgInNjcmlwdFJlZ2V4IiwgImdlbmVyYXRlVXNlckxpbmtzIiwgIiRjb250ZW50IiwgIl9pdGVyYXRvcjEyIiwgImZpbmQiLCAiX3N0ZXAxMiIsICJfdXNlciIsICJfdXNlckxpbmtzJF91c2VyIiwgIiRlbGVtZW50IiwgIiQiLCAiaGFzQ2xhc3MiLCAicGFyZW50IiwgImhyZWYiLCAiTXdVcmkiLCAiaG9zdCIsICJsb2NhdGlvbiIsICJwYWdlVGl0bGUiLCAidGVzdCIsICJleGVjIiwgImRlY29kZVVSSUNvbXBvbmVudCIsICJ1c2VyRXhlY0FycmF5IiwgInNsaWNlIiwgIm1hcmtCbG9ja2VkVXNlciIsICJ3Z0FjdGlvbiIsICJ3Z05hbWVzcGFjZU51bWJlciIsICJhZGRIb29rIiwgImlzSW5pdCIsICJob29rIiwgImFkZCIsICJtYXJrQmxvY2tlZCJdCn0K diff --git a/dist/MarkRights-Userpage/MarkRights-Userpage.js b/dist/MarkRights-Userpage/MarkRights-Userpage.js index 8cd37adbd..0eb4d6e6a 100644 --- a/dist/MarkRights-Userpage/MarkRights-Userpage.js +++ b/dist/MarkRights-Userpage/MarkRights-Userpage.js @@ -135,7 +135,7 @@ var WEBMASTER_LIST = ["QiuWen", "QiuWen for Accounts", "QiuwenSocialMedia"]; //! src/MarkRights-Userpage/modules/getPermissions.ts var import_ext_gadget4 = require("ext.gadget.MarkRights"); //! src/MarkRights-Userpage/components/react.tsx -var import_ext_gadget = __toESM(require("ext.gadget.React"), 1); +var import_ext_gadget = __toESM(require("ext.gadget.JSX"), 1); var FooterNotice = ({ spanClass, children = /* @__PURE__ */ import_ext_gadget.default.createElement(import_ext_gadget.default.Fragment, null) @@ -176,7 +176,7 @@ var FooterIcon = ({ spanClass })); //! src/MarkRights-Userpage/modules/appendIcon.tsx -var import_ext_gadget2 = __toESM(require("ext.gadget.React"), 1); +var import_ext_gadget2 = __toESM(require("ext.gadget.JSX"), 1); var appendFooterNotice = (element) => { const mountPoint = document.querySelector(mountPointSelector); if (mountPoint) { @@ -368,4 +368,4 @@ var getPermissions = /* @__PURE__ */ function() { /* */ -//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL01hcmtSaWdodHMtVXNlcnBhZ2Uvb3B0aW9ucy5qc29uIiwgInNyYy9HZW9Mb2NhdGlvbi9tb2R1bGVzL2NvbnN0YW50LnRzIiwgInNyYy9NYXJrUmlnaHRzLVVzZXJwYWdlL21vZHVsZXMvZ2V0UGVybWlzc2lvbnMudHMiLCAic3JjL01hcmtSaWdodHMtVXNlcnBhZ2UvY29tcG9uZW50cy9yZWFjdC50c3giLCAic3JjL01hcmtSaWdodHMtVXNlcnBhZ2UvbW9kdWxlcy9hcHBlbmRJY29uLnRzeCIsICJzcmMvTWFya1JpZ2h0cy1Vc2VycGFnZS9tb2R1bGVzL2kxOG4udHMiLCAic3JjL01hcmtSaWdodHMtVXNlcnBhZ2UvTWFya1JpZ2h0cy1Vc2VycGFnZS50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsie1xuXHRcIm1vdW50UG9pbnRTZWxlY3RvclwiOiBcIiNmb290ZXItaW5mbywucGFnZS1pbmZvXCIsXG5cdFwidXNlck5hbWVTcGFjZU51bWJlclwiOiAyLFxuXHRcInZlcnNpb25cIjogXCIyLjBcIlxufVxuIiwgImNvbnN0IFNZU1RFTV9TQ1JJUFRfTElTVDogc3RyaW5nW10gPSBbXG5cdCfmu6XnlKjov4fmu6TlmagnLFxuXHQn5rGC6Ze757yW6ICFJyxcblx0J+axgumXu+eZvuenkeekvuWMuicsXG5cdCdFeGFtcGxlJyxcblx0J0V4dGVybmFsIGNvbnRyaWJ1dG9ycycsXG5cdCdNYWludGVuYW5jZSBzY3JpcHQnLFxuXHQnTWVkaWFXaWtpIGRlZmF1bHQnLFxuXHQnTWVkaWFXaWtpIG1lc3NhZ2UgZGVsaXZlcnknLFxuXHQnTmV3IHVzZXIgcGFnZScsXG5dO1xuY29uc3QgV0VCTUFTVEVSX0xJU1Q6IHN0cmluZ1tdID0gWydRaXVXZW4nLCAnUWl1V2VuIGZvciBBY2NvdW50cycsICdRaXV3ZW5Tb2NpYWxNZWRpYSddO1xuXG5leHBvcnQge1NZU1RFTV9TQ1JJUFRfTElTVCwgV0VCTUFTVEVSX0xJU1R9O1xuIiwgImltcG9ydCB7U1lTVEVNX1NDUklQVF9MSVNULCBXRUJNQVNURVJfTElTVH0gZnJvbSAnLi9jb25zdGFudCc7XG5pbXBvcnQge2dldEdsb2JhbFVzZXJHcm91cHMsIGdldExvY2FsVXNlckdyb3Vwc30gZnJvbSAnZXh0LmdhZGdldC5NYXJrUmlnaHRzJztcbmltcG9ydCB0eXBlIHtVc2VyUmlnaHRzfSBmcm9tICd+L01hcmtSaWdodHMvbW9kdWxlcy90eXBlcyc7XG5pbXBvcnQge2FwcGVuZEljb259IGZyb20gJy4vYXBwZW5kSWNvbic7XG5pbXBvcnQge2dldE1lc3NhZ2V9IGZyb20gJy4vaTE4bic7XG5pbXBvcnQge3VuaXF1ZUFycmF5fSBmcm9tICdleHQuZ2FkZ2V0LlV0aWwnO1xuXG5jb25zdCBnZXRQZXJtaXNzaW9ucyA9IGFzeW5jICh3Z1JlbGV2YW50VXNlck5hbWU6IHN0cmluZyk6IFByb21pc2U8dm9pZD4gPT4ge1xuXHR0cnkge1xuXHRcdGNvbnN0IGxvY2FsR3JvdXBzTWFwID0gYXdhaXQgZ2V0TG9jYWxVc2VyR3JvdXBzKFt3Z1JlbGV2YW50VXNlck5hbWVdKTtcblx0XHRjb25zdCBsb2NhbEdyb3VwcyA9IGxvY2FsR3JvdXBzTWFwW3dnUmVsZXZhbnRVc2VyTmFtZV0gPz8gW107XG5cblx0XHRjb25zdCBnbG9iYWxHcm91cHNNYXAgPSBhd2FpdCBnZXRHbG9iYWxVc2VyR3JvdXBzKFt3Z1JlbGV2YW50VXNlck5hbWVdKTtcblx0XHRjb25zdCBnbG9iYWxHcm91cHMgPSBnbG9iYWxHcm91cHNNYXBbd2dSZWxldmFudFVzZXJOYW1lXSA/PyBbXTtcblxuXHRcdGNvbnN0IGdyb3VwcyA9IHVuaXF1ZUFycmF5KFsuLi5sb2NhbEdyb3VwcywgLi4uZ2xvYmFsR3JvdXBzXSkuZmlsdGVyKChlbGVtZW50KSA9PiB7XG5cdFx0XHQvLyBEbyBub3Qgc2hvdyBpbXBsaWNpdCBncm91cHMuIEJvdHMgQWxyZWFkeSBzaG93biBpbiBHZW9Mb2NhdGlvblZpZXdlclxuXHRcdFx0cmV0dXJuICFbJyonLCAndXNlcicsICdhdXRvY29uZmlybWVkJywgJ3JucnN2ZXJpZnktY29uZmlybWVkJywgJ2JvdCddLmluY2x1ZGVzKGVsZW1lbnQpO1xuXHRcdH0pO1xuXG5cdFx0aWYgKFNZU1RFTV9TQ1JJUFRfTElTVC5pbmNsdWRlcyh3Z1JlbGV2YW50VXNlck5hbWUpKSB7XG5cdFx0XHQvLyBBbHJlYWR5IHNob3duIGluIEdlb0xvY2F0aW9uVmlld2VyXG5cdFx0fSBlbHNlIGlmIChXRUJNQVNURVJfTElTVC5pbmNsdWRlcyh3Z1JlbGV2YW50VXNlck5hbWUpKSB7XG5cdFx0XHRhcHBlbmRJY29uKHtpbmRpY2F0b3JUZXh0OiBnZXRNZXNzYWdlKCdxaXV3ZW4nKSwgc3BhbkNsYXNzOiAncWl1d2VuJ30pO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRmb3IgKGNvbnN0IGdyb3VwIG9mIGdyb3Vwcykge1xuXHRcdFx0XHRhcHBlbmRJY29uKHtpbmRpY2F0b3JUZXh0OiBnZXRNZXNzYWdlKGdyb3VwIGFzIFVzZXJSaWdodHMpLCBzcGFuQ2xhc3M6IGdyb3VwIGFzIFVzZXJSaWdodHN9KTtcblx0XHRcdH1cblx0XHR9XG5cdH0gY2F0Y2gge31cbn07XG5cbmV4cG9ydCB7Z2V0UGVybWlzc2lvbnN9O1xuIiwgImltcG9ydCBSZWFjdCwge1JlYWN0RWxlbWVudH0gZnJvbSAnZXh0LmdhZGdldC5SZWFjdCc7XG5pbXBvcnQgdHlwZSB7VXNlclJpZ2h0c30gZnJvbSAnfi9NYXJrUmlnaHRzL21vZHVsZXMvdHlwZXMnO1xuXG5pbnRlcmZhY2UgRm9vdGVyTm90aWNlUHJvcHMge1xuXHRzcGFuQ2xhc3M6IHN0cmluZztcblx0Y2hpbGRyZW4/OiBSZWFjdEVsZW1lbnQgfCBSZWFjdEVsZW1lbnRbXTtcbn1cblxuY29uc3QgRm9vdGVyTm90aWNlID0gKHtzcGFuQ2xhc3MsIGNoaWxkcmVuID0gPD48Lz59OiBGb290ZXJOb3RpY2VQcm9wcykgPT4ge1xuXHRjb25zdCB7c2tpbn0gPSBtdy5jb25maWcuZ2V0KCk7XG5cdGNvbnN0IGNsYXNzTmFtZXMgPSBbJ2dhZGdldC1tYXJrcmlnaHRzX3VzZXJwYWdlJywgYGdhZGdldC1tYXJrcmlnaHRzX3VzZXJwYWdlX18ke3NwYW5DbGFzc31gXTtcblxuXHRyZXR1cm4gKFxuXHRcdDw+XG5cdFx0XHR7c2tpbiA9PT0gJ2NpdGl6ZW4nID8gKFxuXHRcdFx0XHQ8c2VjdGlvbiBjbGFzc05hbWU9e1suLi5jbGFzc05hbWVzLCAncGFnZS1pbmZvX19pdGVtJywgJ2NpdGl6ZW4tZm9vdGVyX19wYWdlaW5mby1pdGVtJywgJ25vcHJpbnQnXX0+XG5cdFx0XHRcdFx0e2NoaWxkcmVuID8/IDw+PC8+fVxuXHRcdFx0XHQ8L3NlY3Rpb24+XG5cdFx0XHQpIDogWyd2ZWN0b3InLCAndmVjdG9yLTIwMjInLCAnZ29uZ2JpJ10uaW5jbHVkZXMoc2tpbikgfHwgZG9jdW1lbnQucXVlcnlTZWxlY3RvcigndWwjZm9vdGVyLWluZm8nKSA/IChcblx0XHRcdFx0PGxpIGNsYXNzTmFtZT17W2NsYXNzTmFtZXMsICdub3ByaW50J119PntjaGlsZHJlbiA/PyA8PjwvPn08L2xpPlxuXHRcdFx0KSA6IChcblx0XHRcdFx0PGRpdiBjbGFzc05hbWU9e1tjbGFzc05hbWVzLCAnbm9wcmludCddfT57Y2hpbGRyZW4gPz8gPD48Lz59PC9kaXY+XG5cdFx0XHQpfVxuXHRcdDwvPlxuXHQpO1xufTtcblxuaW50ZXJmYWNlIEluZGljYXRvclByb3BzIHtcblx0aW5kaWNhdG9yVGV4dDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXHRzcGFuQ2xhc3M6IFVzZXJSaWdodHMgfCAndW5rbm93bic7XG59XG5cbmNvbnN0IEluZGljYXRvciA9ICh7aW5kaWNhdG9yVGV4dCwgc3BhbkNsYXNzfTogSW5kaWNhdG9yUHJvcHMpID0+IHtcblx0aWYgKCFpbmRpY2F0b3JUZXh0KSB7XG5cdFx0cmV0dXJuIDw+PC8+O1xuXHR9XG5cblx0cmV0dXJuIChcblx0XHQ8PlxuXHRcdFx0PHNwYW5cblx0XHRcdFx0Y2xhc3NOYW1lPXtbJ2dhZGdldC1tYXJrcmlnaHRzX3VzZXJwYWdlX19pY29uJywgYGdhZGdldC1tYXJrcmlnaHRzX3VzZXJwYWdlX19pY29uX18ke3NwYW5DbGFzc31gXX1cblx0XHRcdFx0dGl0bGU9e2luZGljYXRvclRleHR9XG5cdFx0XHQvPlxuXHRcdFx0PHNwYW4gY2xhc3NOYW1lPVwiZ2FkZ2V0LW1hcmtyaWdodHNfdXNlcnBhZ2VfX3RleHRcIj57aW5kaWNhdG9yVGV4dH08L3NwYW4+XG5cdFx0PC8+XG5cdCk7XG59O1xuXG5jb25zdCBGb290ZXJJY29uID0gKHtzcGFuQ2xhc3MsIGluZGljYXRvclRleHR9OiBJbmRpY2F0b3JQcm9wcykgPT4gKFxuXHQ8Rm9vdGVyTm90aWNlIHNwYW5DbGFzcz17c3BhbkNsYXNzfT5cblx0XHQ8SW5kaWNhdG9yIGluZGljYXRvclRleHQ9e2luZGljYXRvclRleHR9IHNwYW5DbGFzcz17c3BhbkNsYXNzfSAvPlxuXHQ8L0Zvb3Rlck5vdGljZT5cbik7XG5cbmV4cG9ydCB7Rm9vdGVySWNvbiwgdHlwZSBJbmRpY2F0b3JQcm9wc307XG4iLCAiaW1wb3J0ICogYXMgT1BUSU9OUyBmcm9tICcuLi9vcHRpb25zLmpzb24nO1xuaW1wb3J0IHtGb290ZXJJY29uLCB0eXBlIEluZGljYXRvclByb3BzfSBmcm9tICcuLi9jb21wb25lbnRzL3JlYWN0JztcbmltcG9ydCBSZWFjdCBmcm9tICdleHQuZ2FkZ2V0LlJlYWN0JztcblxuY29uc3QgYXBwZW5kRm9vdGVyTm90aWNlID0gKGVsZW1lbnQ6IEVsZW1lbnQpID0+IHtcblx0Y29uc3QgbW91bnRQb2ludCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3I8SFRNTEVsZW1lbnQ+KE9QVElPTlMubW91bnRQb2ludFNlbGVjdG9yKTtcblxuXHRpZiAobW91bnRQb2ludCkge1xuXHRcdG1vdW50UG9pbnQucHJlcGVuZChlbGVtZW50KTtcblx0fVxufTtcblxuY29uc3QgYXBwZW5kSWNvbiA9ICh7aW5kaWNhdG9yVGV4dCwgc3BhbkNsYXNzfTogSW5kaWNhdG9yUHJvcHMpOiB2b2lkID0+IHtcblx0aWYgKHNwYW5DbGFzcyA9PT0gJ3Vua25vd24nIHx8ICFpbmRpY2F0b3JUZXh0KSB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0YXBwZW5kRm9vdGVyTm90aWNlKDxGb290ZXJJY29uIHNwYW5DbGFzcz17c3BhbkNsYXNzfSBpbmRpY2F0b3JUZXh0PXtpbmRpY2F0b3JUZXh0fSAvPik7XG59O1xuXG5leHBvcnQge2FwcGVuZEljb259O1xuIiwgImltcG9ydCB7bG9jYWxpemV9IGZyb20gJ2V4dC5nYWRnZXQuaTE4bic7XG5cbmNvbnN0IGdldEkxOG5NZXNzYWdlcyA9ICgpID0+IHtcblx0cmV0dXJuIHtcblx0XHRxaXV3ZW46IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnV2VibWFzdGVyJyxcblx0XHRcdCd6aC1oYW5zJzogJ+ermemVvycsXG5cdFx0XHQnemgtaGFudCc6ICfnq5nplbcnLFxuXHRcdH0pLFxuXHRcdHN0ZXdhcmQ6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnU3Rld2FyZCcsXG5cdFx0XHQnemgtaGFucyc6ICfoo4HlhrPlp5TlkZgnLFxuXHRcdFx0J3poLWhhbnQnOiAn6KOB5rG65aeU5ZOhJyxcblx0XHR9KSxcblx0XHRjaGVja3VzZXI6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnQ2hlY2tVc2VyJyxcblx0XHRcdCd6aC1oYW5zJzogJ+eUqOaIt+afpeaguCcsXG5cdFx0XHQnemgtaGFudCc6ICfnlKjmiLbmn6XmoLgnLFxuXHRcdH0pLFxuXHRcdHN1cHByZXNzOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ092ZXJzaWdodGVyJyxcblx0XHRcdCd6aC1oYW5zJzogJ+ebkeedo+WRmCcsXG5cdFx0XHQnemgtaGFudCc6ICfnm6PnnaPlk6EnLFxuXHRcdH0pLFxuXHRcdHN5c29wOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ1N5c09wJyxcblx0XHRcdCd6aC1oYW5zJzogJ+euoeeQhuWRmCcsXG5cdFx0XHQnemgtaGFudCc6ICfnrqHnkIblk6EnLFxuXHRcdH0pLFxuXHRcdCdpbnRlcmZhY2UtYWRtaW4nOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ0ludGVyZmFjZSBBZG1pbmlzdHJhdG9yJyxcblx0XHRcdCd6aC1oYW5zJzogJ+eVjOmdoueuoeeQhuWRmCcsXG5cdFx0XHQnemgtaGFudCc6ICfku4vpnaLnrqHnkIblk6EnLFxuXHRcdH0pLFxuXHRcdHRlbXBsYXRlZWRpdG9yOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ1RlbXBsYXRlIEVkaXRvcicsXG5cdFx0XHQnemgtaGFucyc6ICfmqKHmnb/nvJbovpHlkZgnLFxuXHRcdFx0J3poLWhhbnQnOiAn5qih5p2/57eo6Lyv5ZOhJyxcblx0XHR9KSxcblx0XHR0cmFuc3dpa2k6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnSW1wb3J0ZXInLFxuXHRcdFx0J3poLWhhbnMnOiAn5a+85YWl6ICFJyxcblx0XHRcdCd6aC1oYW50JzogJ+WMr+WFpeiAhScsXG5cdFx0fSksXG5cdFx0cGF0cm9sbGVyOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ1BhdHJvbGxlcicsXG5cdFx0XHQnemgtaGFucyc6ICflt6Hmn6XlkZgnLFxuXHRcdFx0J3poLWhhbnQnOiAn5beh5p+l5ZOhJyxcblx0XHR9KSxcblx0XHRhdXRvcmV2aWV3ZXI6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnRXhlbXB0ZWQgZnJvbSBwYWdlIHBhdHJvbCcsXG5cdFx0XHQnemgtaGFucyc6ICflt6Hmn6XosYHlhY0nLFxuXHRcdFx0J3poLWhhbnQnOiAn5beh5p+l6LGB5YWNJyxcblx0XHR9KSxcblx0XHRzZW5pb3JlZGl0b3I6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnU2VuaW9yIEVkaXRvcicsXG5cdFx0XHQnemgtaGFucyc6ICfotYTmt7HnvJbogIUnLFxuXHRcdFx0J3poLWhhbnQnOiAn6LOH5rex57eo6ICFJyxcblx0XHR9KSxcblx0XHRldmVudHNwb25zb3I6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnRXZlbnQgU3BvbnNvcicsXG5cdFx0XHQnemgtaGFucyc6ICfmtLvliqjnu4Tnu4fogIUnLFxuXHRcdFx0J3poLWhhbnQnOiAn5rS75YuV57WE57mU6ICFJyxcblx0XHR9KSxcblx0XHQnbWFzc21lc3NhZ2Utc2VuZGVyJzogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdNYXNzTWVzc2FnZSBzZW5kZXInLFxuXHRcdFx0J3poLWhhbnMnOiAn5aSn6YeP5raI5oGv5Y+R6YCB6ICFJyxcblx0XHRcdCd6aC1oYW50JzogJ+Wkp+mHj+ioiuaBr+WCs+mAgeiAhScsXG5cdFx0fSksXG5cdFx0Y29uZmlybWVkOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ0NvbmZpcm1lZCB1c2VyJyxcblx0XHRcdCd6aC1oYW5zJzogJ+ehruiupOeUqOaItycsXG5cdFx0XHQnemgtaGFudCc6ICfnorroqo3nlKjmiLYnLFxuXHRcdH0pLFxuXHRcdGF1dG9jb25maXJtZWQ6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnQXV0by1jb25maXJtZWQgdXNlcicsXG5cdFx0XHQnemgtaGFucyc6ICfoh6rliqjnoa7orqTnlKjmiLcnLFxuXHRcdFx0J3poLWhhbnQnOiAn6Ieq5YuV56K66KqN55So5oi2Jyxcblx0XHR9KSxcblx0XHQncm5yc3ZlcmlmeS1leGVtcHQnOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ0V4ZW1wdGVkIGZyb20gcmVhbC1uYW1lIHZlcmlmaWNhdGlvbicsXG5cdFx0XHQnemgtaGFucyc6ICflrp7lkI3liLbpqozor4HosYHlhY0nLFxuXHRcdFx0J3poLWhhbnQnOiAn5a+m5ZCN5Yi26amX6K2J6LGB5YWNJyxcblx0XHR9KSxcblx0XHRib3Q6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnQm90Jyxcblx0XHRcdCd6aC1oYW5zJzogJ+acuuWZqOS6uicsXG5cdFx0XHQnemgtaGFudCc6ICfmqZ/morDkuronLFxuXHRcdH0pLFxuXHRcdGZsb29kOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ0Zsb29kZXInLFxuXHRcdFx0J3poLWhhbnMnOiAn5py65Zmo55So5oi3Jyxcblx0XHRcdCd6aC1oYW50JzogJ+apn+aisOeUqOaIticsXG5cdFx0fSksXG5cdFx0J2lwYmxvY2stZXhlbXB0JzogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdFeGVtcHRlZCBmcm9tIElQIGJsb2NrcycsXG5cdFx0XHQnemgtaGFucyc6ICdJUOWwgeemgeixgeWFjScsXG5cdFx0XHQnemgtaGFudCc6ICdJUOWwgemOluixgeWFjScsXG5cdFx0fSksXG5cdH07XG59O1xuXG5jb25zdCBpMThuTWVzc2FnZXMgPSBnZXRJMThuTWVzc2FnZXMoKTtcblxuY29uc3QgZ2V0TWVzc2FnZTogR2V0TWVzc2FnZXM8dHlwZW9mIGkxOG5NZXNzYWdlcz4gPSAoa2V5KSA9PiB7XG5cdHJldHVybiBpMThuTWVzc2FnZXNba2V5XSB8fCBrZXk7XG59O1xuXG5leHBvcnQge2dldE1lc3NhZ2V9O1xuIiwgImltcG9ydCAqIGFzIE9QVElPTlMgZnJvbSAnLi9vcHRpb25zLmpzb24nO1xuaW1wb3J0IHtnZXRQZXJtaXNzaW9uc30gZnJvbSAnLi9tb2R1bGVzL2dldFBlcm1pc3Npb25zJztcblxuKGZ1bmN0aW9uIG1hcmtSaWdodHNVc2VyUGFnZSgpOiB2b2lkIHtcblx0Y29uc3Qge3dnQWN0aW9uLCB3Z05hbWVzcGFjZU51bWJlciwgd2dQYWdlTmFtZSwgd2dSZWxldmFudFVzZXJOYW1lfSA9IG13LmNvbmZpZy5nZXQoKTtcblx0aWYgKCF3Z1JlbGV2YW50VXNlck5hbWUgfHwgISh3Z05hbWVzcGFjZU51bWJlciA9PT0gT1BUSU9OUy51c2VyTmFtZVNwYWNlTnVtYmVyKSB8fCAhKHdnQWN0aW9uID09PSAndmlldycpKSB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0aWYgKG13LnV0aWwuaXNJUHY0QWRkcmVzcyh3Z1JlbGV2YW50VXNlck5hbWUpIHx8IG13LnV0aWwuaXNJUHY2QWRkcmVzcyh3Z1JlbGV2YW50VXNlck5hbWUpKSB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0Y29uc3QgcmVsZXZhbnRVc2VyUGFnZU5hbWU6IHN0cmluZyA9IG5ldyBtdy5UaXRsZSh3Z1JlbGV2YW50VXNlck5hbWUsIE9QVElPTlMudXNlck5hbWVTcGFjZU51bWJlcikudG9UZXh0KCk7XG5cdGNvbnN0IHBhZ2VOYW1lOiBzdHJpbmcgPSBuZXcgbXcuVGl0bGUod2dQYWdlTmFtZSkudG9UZXh0KCk7XG5cdGlmIChwYWdlTmFtZSAhPT0gcmVsZXZhbnRVc2VyUGFnZU5hbWUpIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHR2b2lkIGdldFBlcm1pc3Npb25zKHdnUmVsZXZhbnRVc2VyTmFtZSk7XG59KSgpO1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0MsSUFBQUEscUJBQXNCO0FBQ3RCLElBQUFDLHNCQUF1Qjs7QUNGeEIsSUFBTUMscUJBQStCLENBQ3BDLFNBQ0EsUUFDQSxVQUNBLFdBQ0EseUJBQ0Esc0JBQ0EscUJBQ0EsOEJBQ0EsZUFBQTtBQUVELElBQU1DLGlCQUEyQixDQUFDLFVBQVUsdUJBQXVCLG1CQUFtQjs7QUNWdEYsSUFBQUMscUJBQXNEQyxRQUFBLHVCQUFBOztBQ0R0RCxJQUFBQyxvQkFBa0NDLFFBQUFGLFFBQUEsa0JBQUEsR0FBQSxDQUFBO0FBUWxDLElBQU1HLGVBQWVBLENBQUM7RUFBQ0M7RUFBV0MsV0FBV0osa0NBQUFLLFFBQUFDLGNBQUFOLGtCQUFBSyxRQUFBRSxVQUFBLElBQUU7QUFBRyxNQUF5QjtBQUMxRSxRQUFNO0lBQUNDO0VBQUksSUFBSUMsR0FBR0MsT0FBT0MsSUFBSTtBQUM3QixRQUFNQyxhQUFhLENBQUMsOEJBQUEsK0JBQUFDLE9BQTZEVixTQUFTLENBQUE7QUFFMUYsU0FDQ0gsa0NBQUFLLFFBQUFDLGNBQUFOLGtCQUFBSyxRQUFBRSxVQUFBLE1BQ0VDLFNBQVMsWUFDVFIsa0NBQUFLLFFBQUFDLGNB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QUEsWUFBQTtBQUFwQixlQUFBRixXQUFBRyxFQUFBLEdBQUEsRUFBQUQsU0FBQUYsV0FBQUksRUFBQSxHQUFBQyxRQUE0QjtBQUFBLGtCQUFqQkMsUUFBQUosT0FBQUs7QUFDVjlDLHVCQUFXO2NBQUNSLGVBQWU2QixXQUFXd0IsS0FBbUI7Y0FBR3JFLFdBQVdxRTtZQUFtQixDQUFDO1VBQzVGO1FBQUEsU0FBQUUsS0FBQTtBQUFBUixxQkFBQVMsRUFBQUQsR0FBQTtRQUFBLFVBQUE7QUFBQVIscUJBQUFVLEVBQUE7UUFBQTtNQUNEO0lBQ0QsUUFBUTtJQUFDO0VBQ1YsQ0FBQTtBQUFBLFNBQUEsU0F2Qk16QixnQkFBQTBCLElBQUE7QUFBQSxXQUFBekIsS0FBQTBCLE1BQUEsTUFBQUMsU0FBQTtFQUFBO0FBQUEsRUFBQTs7Q0lKTCxTQUFTQyxxQkFBMkI7QUFDcEMsUUFBTTtJQUFDQztJQUFVQztJQUFtQkM7SUFBWTdCO0VBQWtCLElBQUk3QyxHQUFHQyxPQUFPQyxJQUFJO0FBQ3BGLE1BQUksQ0FBQzJDLHNCQUFzQixFQUFFNEIsc0JBQThCdkYsd0JBQXdCLEVBQUVzRixhQUFhLFNBQVM7QUFDMUc7RUFDRDtBQUVBLE1BQUl4RSxHQUFHMkUsS0FBS0MsY0FBYy9CLGtCQUFrQixLQUFLN0MsR0FBRzJFLEtBQUtFLGNBQWNoQyxrQkFBa0IsR0FBRztBQUMzRjtFQUNEO0FBRUEsUUFBTWlDLHVCQUErQixJQUFJOUUsR0FBRytFLE1BQU1sQyxvQkFBNEIzRCxtQkFBbUIsRUFBRThGLE9BQU87QUFDMUcsUUFBTUMsV0FBbUIsSUFBSWpGLEdBQUcrRSxNQUFNTCxVQUFVLEVBQUVNLE9BQU87QUFDekQsTUFBSUMsYUFBYUgsc0JBQXNCO0FBQ3RDO0VBQ0Q7QUFFQSxPQUFLcEMsZUFBZUcsa0JBQWtCO0FBQ3ZDLEdBQUc7IiwKICAibmFtZXMiOiBbIm1vdW50UG9pbnRTZWxlY3RvciIsICJ1c2VyTmFtZVNwYWNlTnVtYmVyIiwgIlNZU1RFTV9TQ1JJUFRfTElTVCIsICJXRUJNQVNURVJfTElTVCIsICJpbXBvcnRfZXh0X2dhZGdldDQiLCAicmVxdWlyZSIsICJpbXBvcnRfZXh0X2dhZGdldCIsICJfX3RvRVNNIiwgIkZvb3Rlck5vdGljZSIsICJzcGFuQ2xhc3MiLCAiY2hpbGRyZW4iLCAiZGVmYXVsdCIsICJjcmVhdGVFbGVtZW50IiwgIkZyYWdtZW50IiwgInNraW4iLCAibXciLCAiY29uZmlnIiwgImdldCIsICJjbGFzc05hbWVzIiwgImNvbmNhdCIsICJjbGFzc05hbWUiLCAiaW5jbHVkZXMiLCAiZG9jdW1lbnQiLCAicXVlcnlTZWxlY3RvciIsICJJbmRpY2F0b3IiLCAiaW5kaWNhdG9yVGV4dCIsICJ0aXRsZSIsICJGb290ZXJJY29uIiwgImltcG9ydF9leHRfZ2FkZ2V0MiIsICJhcHBlbmRGb290ZXJOb3RpY2UiLCAiZWxlbWVudCIsICJtb3VudFBvaW50IiwgInByZXBlbmQiLCAiYXBwZW5kSWNvbiIsICJpbXBvcnRfZXh0X2dhZGdldDMiLCAiZ2V0STE4bk1lc3NhZ2VzIiwgInFpdXdlbiIsICJsb2NhbGl6ZSIsICJlbiIsICJzdGV3YXJkIiwgImNoZWNrdXNlciIsICJzdXBwcmVzcyIsICJzeXNvcCIsICJ0ZW1wbGF0ZWVkaXRvciIsICJ0cmFuc3dpa2kiLCAicGF0cm9sbGVyIiwgImF1dG9yZXZpZXdlciIsICJzZW5pb3JlZGl0b3IiLCAiZXZlbnRzcG9uc29yIiwgImNvbmZpcm1lZCIsICJhdXRvY29uZmlybWVkIiwgImJvdCIsICJmbG9vZCIsICJpMThuTWVzc2FnZXMiLCAiZ2V0TWVzc2FnZSIsICJrZXkiLCAiaW1wb3J0X2V4dF9nYWRnZXQ1IiwgImdldFBlcm1pc3Npb25zIiwgIl9yZWYiLCAiX2FzeW5jVG9HZW5lcmF0b3IiLCAid2dSZWxldmFudFVzZXJOYW1lIiwgIl9sb2NhbEdyb3Vwc01hcCR3Z1JlbCIsICJfZ2xvYmFsR3JvdXBzTWFwJHdnUmUiLCAibG9jYWxHcm91cHNNYXAiLCAiZ2V0TG9jYWxVc2VyR3JvdXBzIiwgImxvY2FsR3JvdXBzIiwgImdsb2JhbEdyb3Vwc01hcCIsICJnZXRHbG9iYWxVc2VyR3JvdXBzIiwgImdsb2JhbEdyb3VwcyIsICJncm91cHMiLCAidW5pcXVlQXJyYXkiLCAiZmlsdGVyIiwgIl9pdGVyYXRvcjIiLCAiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIiLCAiX3N0ZXAyIiwgInMiLCAibiIsICJkb25lIiwgImdyb3VwIiwgInZhbHVlIiwgImVyciIsICJlIiwgImYiLCAiX3giLCAiYXBwbHkiLCAiYXJndW1lbnRzIiwgIm1hcmtSaWdodHNVc2VyUGFnZSIsICJ3Z0FjdGlvbiIsICJ3Z05hbWVzcGFjZU51bWJlciIsICJ3Z1BhZ2VOYW1lIiwgInV0aWwiLCAiaXNJUHY0QWRkcmVzcyIsICJpc0lQdjZBZGRyZXNzIiwgInJlbGV2YW50VXNlclBhZ2VOYW1lIiwgIlRpdGxlIiwgInRvVGV4dCIsICJwYWdlTmFtZSJdCn0K +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL01hcmtSaWdodHMtVXNlcnBhZ2Uvb3B0aW9ucy5qc29uIiwgInNyYy9HZW9Mb2NhdGlvbi9tb2R1bGVzL2NvbnN0YW50LnRzIiwgInNyYy9NYXJrUmlnaHRzLVVzZXJwYWdlL21vZHVsZXMvZ2V0UGVybWlzc2lvbnMudHMiLCAic3JjL01hcmtSaWdodHMtVXNlcnBhZ2UvY29tcG9uZW50cy9yZWFjdC50c3giLCAic3JjL01hcmtSaWdodHMtVXNlcnBhZ2UvbW9kdWxlcy9hcHBlbmRJY29uLnRzeCIsICJzcmMvTWFya1JpZ2h0cy1Vc2VycGFnZS9tb2R1bGVzL2kxOG4udHMiLCAic3JjL01hcmtSaWdodHMtVXNlcnBhZ2UvTWFya1JpZ2h0cy1Vc2VycGFnZS50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsie1xuXHRcIm1vdW50UG9pbnRTZWxlY3RvclwiOiBcIiNmb290ZXItaW5mbywucGFnZS1pbmZvXCIsXG5cdFwidXNlck5hbWVTcGFjZU51bWJlclwiOiAyLFxuXHRcInZlcnNpb25cIjogXCIyLjBcIlxufVxuIiwgImNvbnN0IFNZU1RFTV9TQ1JJUFRfTElTVDogc3RyaW5nW10gPSBbXG5cdCfmu6XnlKjov4fmu6TlmagnLFxuXHQn5rGC6Ze757yW6ICFJyxcblx0J+axgumXu+eZvuenkeekvuWMuicsXG5cdCdFeGFtcGxlJyxcblx0J0V4dGVybmFsIGNvbnRyaWJ1dG9ycycsXG5cdCdNYWludGVuYW5jZSBzY3JpcHQnLFxuXHQnTWVkaWFXaWtpIGRlZmF1bHQnLFxuXHQnTWVkaWFXaWtpIG1lc3NhZ2UgZGVsaXZlcnknLFxuXHQnTmV3IHVzZXIgcGFnZScsXG5dO1xuY29uc3QgV0VCTUFTVEVSX0xJU1Q6IHN0cmluZ1tdID0gWydRaXVXZW4nLCAnUWl1V2VuIGZvciBBY2NvdW50cycsICdRaXV3ZW5Tb2NpYWxNZWRpYSddO1xuXG5leHBvcnQge1NZU1RFTV9TQ1JJUFRfTElTVCwgV0VCTUFTVEVSX0xJU1R9O1xuIiwgImltcG9ydCB7U1lTVEVNX1NDUklQVF9MSVNULCBXRUJNQVNURVJfTElTVH0gZnJvbSAnLi9jb25zdGFudCc7XG5pbXBvcnQge2dldEdsb2JhbFVzZXJHcm91cHMsIGdldExvY2FsVXNlckdyb3Vwc30gZnJvbSAnZXh0LmdhZGdldC5NYXJrUmlnaHRzJztcbmltcG9ydCB0eXBlIHtVc2VyUmlnaHRzfSBmcm9tICd+L01hcmtSaWdodHMvbW9kdWxlcy90eXBlcyc7XG5pbXBvcnQge2FwcGVuZEljb259IGZyb20gJy4vYXBwZW5kSWNvbic7XG5pbXBvcnQge2dldE1lc3NhZ2V9IGZyb20gJy4vaTE4bic7XG5pbXBvcnQge3VuaXF1ZUFycmF5fSBmcm9tICdleHQuZ2FkZ2V0LlV0aWwnO1xuXG5jb25zdCBnZXRQZXJtaXNzaW9ucyA9IGFzeW5jICh3Z1JlbGV2YW50VXNlck5hbWU6IHN0cmluZyk6IFByb21pc2U8dm9pZD4gPT4ge1xuXHR0cnkge1xuXHRcdGNvbnN0IGxvY2FsR3JvdXBzTWFwID0gYXdhaXQgZ2V0TG9jYWxVc2VyR3JvdXBzKFt3Z1JlbGV2YW50VXNlck5hbWVdKTtcblx0XHRjb25zdCBsb2NhbEdyb3VwcyA9IGxvY2FsR3JvdXBzTWFwW3dnUmVsZXZhbnRVc2VyTmFtZV0gPz8gW107XG5cblx0XHRjb25zdCBnbG9iYWxHcm91cHNNYXAgPSBhd2FpdCBnZXRHbG9iYWxVc2VyR3JvdXBzKFt3Z1JlbGV2YW50VXNlck5hbWVdKTtcblx0XHRjb25zdCBnbG9iYWxHcm91cHMgPSBnbG9iYWxHcm91cHNNYXBbd2dSZWxldmFudFVzZXJOYW1lXSA/PyBbXTtcblxuXHRcdGNvbnN0IGdyb3VwcyA9IHVuaXF1ZUFycmF5KFsuLi5sb2NhbEdyb3VwcywgLi4uZ2xvYmFsR3JvdXBzXSkuZmlsdGVyKChlbGVtZW50KSA9PiB7XG5cdFx0XHQvLyBEbyBub3Qgc2hvdyBpbXBsaWNpdCBncm91cHMuIEJvdHMgQWxyZWFkeSBzaG93biBpbiBHZW9Mb2NhdGlvblZpZXdlclxuXHRcdFx0cmV0dXJuICFbJyonLCAndXNlcicsICdhdXRvY29uZmlybWVkJywgJ3JucnN2ZXJpZnktY29uZmlybWVkJywgJ2JvdCddLmluY2x1ZGVzKGVsZW1lbnQpO1xuXHRcdH0pO1xuXG5cdFx0aWYgKFNZU1RFTV9TQ1JJUFRfTElTVC5pbmNsdWRlcyh3Z1JlbGV2YW50VXNlck5hbWUpKSB7XG5cdFx0XHQvLyBBbHJlYWR5IHNob3duIGluIEdlb0xvY2F0aW9uVmlld2VyXG5cdFx0fSBlbHNlIGlmIChXRUJNQVNURVJfTElTVC5pbmNsdWRlcyh3Z1JlbGV2YW50VXNlck5hbWUpKSB7XG5cdFx0XHRhcHBlbmRJY29uKHtpbmRpY2F0b3JUZXh0OiBnZXRNZXNzYWdlKCdxaXV3ZW4nKSwgc3BhbkNsYXNzOiAncWl1d2VuJ30pO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRmb3IgKGNvbnN0IGdyb3VwIG9mIGdyb3Vwcykge1xuXHRcdFx0XHRhcHBlbmRJY29uKHtpbmRpY2F0b3JUZXh0OiBnZXRNZXNzYWdlKGdyb3VwIGFzIFVzZXJSaWdodHMpLCBzcGFuQ2xhc3M6IGdyb3VwIGFzIFVzZXJSaWdodHN9KTtcblx0XHRcdH1cblx0XHR9XG5cdH0gY2F0Y2gge31cbn07XG5cbmV4cG9ydCB7Z2V0UGVybWlzc2lvbnN9O1xuIiwgImltcG9ydCBSZWFjdCwge1JlYWN0RWxlbWVudH0gZnJvbSAnZXh0LmdhZGdldC5KU1gnO1xuaW1wb3J0IHR5cGUge1VzZXJSaWdodHN9IGZyb20gJ34vTWFya1JpZ2h0cy9tb2R1bGVzL3R5cGVzJztcblxuaW50ZXJmYWNlIEZvb3Rlck5vdGljZVByb3BzIHtcblx0c3BhbkNsYXNzOiBzdHJpbmc7XG5cdGNoaWxkcmVuPzogUmVhY3RFbGVtZW50IHwgUmVhY3RFbGVtZW50W107XG59XG5cbmNvbnN0IEZvb3Rlck5vdGljZSA9ICh7c3BhbkNsYXNzLCBjaGlsZHJlbiA9IDw+PC8+fTogRm9vdGVyTm90aWNlUHJvcHMpID0+IHtcblx0Y29uc3Qge3NraW59ID0gbXcuY29uZmlnLmdldCgpO1xuXHRjb25zdCBjbGFzc05hbWVzID0gWydnYWRnZXQtbWFya3JpZ2h0c191c2VycGFnZScsIGBnYWRnZXQtbWFya3JpZ2h0c191c2VycGFnZV9fJHtzcGFuQ2xhc3N9YF07XG5cblx0cmV0dXJuIChcblx0XHQ8PlxuXHRcdFx0e3NraW4gPT09ICdjaXRpemVuJyA/IChcblx0XHRcdFx0PHNlY3Rpb24gY2xhc3NOYW1lPXtbLi4uY2xhc3NOYW1lcywgJ3BhZ2UtaW5mb19faXRlbScsICdjaXRpemVuLWZvb3Rlcl9fcGFnZWluZm8taXRlbScsICdub3ByaW50J119PlxuXHRcdFx0XHRcdHtjaGlsZHJlbiA/PyA8PjwvPn1cblx0XHRcdFx0PC9zZWN0aW9uPlxuXHRcdFx0KSA6IFsndmVjdG9yJywgJ3ZlY3Rvci0yMDIyJywgJ2dvbmdiaSddLmluY2x1ZGVzKHNraW4pIHx8IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ3VsI2Zvb3Rlci1pbmZvJykgPyAoXG5cdFx0XHRcdDxsaSBjbGFzc05hbWU9e1tjbGFzc05hbWVzLCAnbm9wcmludCddfT57Y2hpbGRyZW4gPz8gPD48Lz59PC9saT5cblx0XHRcdCkgOiAoXG5cdFx0XHRcdDxkaXYgY2xhc3NOYW1lPXtbY2xhc3NOYW1lcywgJ25vcHJpbnQnXX0+e2NoaWxkcmVuID8/IDw+PC8+fTwvZGl2PlxuXHRcdFx0KX1cblx0XHQ8Lz5cblx0KTtcbn07XG5cbmludGVyZmFjZSBJbmRpY2F0b3JQcm9wcyB7XG5cdGluZGljYXRvclRleHQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcblx0c3BhbkNsYXNzOiBVc2VyUmlnaHRzIHwgJ3Vua25vd24nO1xufVxuXG5jb25zdCBJbmRpY2F0b3IgPSAoe2luZGljYXRvclRleHQsIHNwYW5DbGFzc306IEluZGljYXRvclByb3BzKSA9PiB7XG5cdGlmICghaW5kaWNhdG9yVGV4dCkge1xuXHRcdHJldHVybiA8PjwvPjtcblx0fVxuXG5cdHJldHVybiAoXG5cdFx0PD5cblx0XHRcdDxzcGFuXG5cdFx0XHRcdGNsYXNzTmFtZT17WydnYWRnZXQtbWFya3JpZ2h0c191c2VycGFnZV9faWNvbicsIGBnYWRnZXQtbWFya3JpZ2h0c191c2VycGFnZV9faWNvbl9fJHtzcGFuQ2xhc3N9YF19XG5cdFx0XHRcdHRpdGxlPXtpbmRpY2F0b3JUZXh0fVxuXHRcdFx0Lz5cblx0XHRcdDxzcGFuIGNsYXNzTmFtZT1cImdhZGdldC1tYXJrcmlnaHRzX3VzZXJwYWdlX190ZXh0XCI+e2luZGljYXRvclRleHR9PC9zcGFuPlxuXHRcdDwvPlxuXHQpO1xufTtcblxuY29uc3QgRm9vdGVySWNvbiA9ICh7c3BhbkNsYXNzLCBpbmRpY2F0b3JUZXh0fTogSW5kaWNhdG9yUHJvcHMpID0+IChcblx0PEZvb3Rlck5vdGljZSBzcGFuQ2xhc3M9e3NwYW5DbGFzc30+XG5cdFx0PEluZGljYXRvciBpbmRpY2F0b3JUZXh0PXtpbmRpY2F0b3JUZXh0fSBzcGFuQ2xhc3M9e3NwYW5DbGFzc30gLz5cblx0PC9Gb290ZXJOb3RpY2U+XG4pO1xuXG5leHBvcnQge0Zvb3Rlckljb24sIHR5cGUgSW5kaWNhdG9yUHJvcHN9O1xuIiwgImltcG9ydCAqIGFzIE9QVElPTlMgZnJvbSAnLi4vb3B0aW9ucy5qc29uJztcbmltcG9ydCB7Rm9vdGVySWNvbiwgdHlwZSBJbmRpY2F0b3JQcm9wc30gZnJvbSAnLi4vY29tcG9uZW50cy9yZWFjdCc7XG5pbXBvcnQgUmVhY3QgZnJvbSAnZXh0LmdhZGdldC5KU1gnO1xuXG5jb25zdCBhcHBlbmRGb290ZXJOb3RpY2UgPSAoZWxlbWVudDogRWxlbWVudCkgPT4ge1xuXHRjb25zdCBtb3VudFBvaW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcjxIVE1MRWxlbWVudD4oT1BUSU9OUy5tb3VudFBvaW50U2VsZWN0b3IpO1xuXG5cdGlmIChtb3VudFBvaW50KSB7XG5cdFx0bW91bnRQb2ludC5wcmVwZW5kKGVsZW1lbnQpO1xuXHR9XG59O1xuXG5jb25zdCBhcHBlbmRJY29uID0gKHtpbmRpY2F0b3JUZXh0LCBzcGFuQ2xhc3N9OiBJbmRpY2F0b3JQcm9wcyk6IHZvaWQgPT4ge1xuXHRpZiAoc3BhbkNsYXNzID09PSAndW5rbm93bicgfHwgIWluZGljYXRvclRleHQpIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRhcHBlbmRGb290ZXJOb3RpY2UoPEZvb3Rlckljb24gc3BhbkNsYXNzPXtzcGFuQ2xhc3N9IGluZGljYXRvclRleHQ9e2luZGljYXRvclRleHR9IC8+KTtcbn07XG5cbmV4cG9ydCB7YXBwZW5kSWNvbn07XG4iLCAiaW1wb3J0IHtsb2NhbGl6ZX0gZnJvbSAnZXh0LmdhZGdldC5pMThuJztcblxuY29uc3QgZ2V0STE4bk1lc3NhZ2VzID0gKCkgPT4ge1xuXHRyZXR1cm4ge1xuXHRcdHFpdXdlbjogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdXZWJtYXN0ZXInLFxuXHRcdFx0J3poLWhhbnMnOiAn56uZ6ZW/Jyxcblx0XHRcdCd6aC1oYW50JzogJ+ermemVtycsXG5cdFx0fSksXG5cdFx0c3Rld2FyZDogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdTdGV3YXJkJyxcblx0XHRcdCd6aC1oYW5zJzogJ+ijgeWGs+WnlOWRmCcsXG5cdFx0XHQnemgtaGFudCc6ICfoo4Hmsbrlp5Tlk6EnLFxuXHRcdH0pLFxuXHRcdGNoZWNrdXNlcjogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdDaGVja1VzZXInLFxuXHRcdFx0J3poLWhhbnMnOiAn55So5oi35p+l5qC4Jyxcblx0XHRcdCd6aC1oYW50JzogJ+eUqOaItuafpeaguCcsXG5cdFx0fSksXG5cdFx0c3VwcHJlc3M6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnT3ZlcnNpZ2h0ZXInLFxuXHRcdFx0J3poLWhhbnMnOiAn55uR552j5ZGYJyxcblx0XHRcdCd6aC1oYW50JzogJ+ebo+edo+WToScsXG5cdFx0fSksXG5cdFx0c3lzb3A6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnU3lzT3AnLFxuXHRcdFx0J3poLWhhbnMnOiAn566h55CG5ZGYJyxcblx0XHRcdCd6aC1oYW50JzogJ+euoeeQhuWToScsXG5cdFx0fSksXG5cdFx0J2ludGVyZmFjZS1hZG1pbic6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnSW50ZXJmYWNlIEFkbWluaXN0cmF0b3InLFxuXHRcdFx0J3poLWhhbnMnOiAn55WM6Z2i566h55CG5ZGYJyxcblx0XHRcdCd6aC1oYW50JzogJ+S7i+mdoueuoeeQhuWToScsXG5cdFx0fSksXG5cdFx0dGVtcGxhdGVlZGl0b3I6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnVGVtcGxhdGUgRWRpdG9yJyxcblx0XHRcdCd6aC1oYW5zJzogJ+aooeadv+e8lui+keWRmCcsXG5cdFx0XHQnemgtaGFudCc6ICfmqKHmnb/nt6jovK/lk6EnLFxuXHRcdH0pLFxuXHRcdHRyYW5zd2lraTogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdJbXBvcnRlcicsXG5cdFx0XHQnemgtaGFucyc6ICflr7zlhaXogIUnLFxuXHRcdFx0J3poLWhhbnQnOiAn5Yyv5YWl6ICFJyxcblx0XHR9KSxcblx0XHRwYXRyb2xsZXI6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnUGF0cm9sbGVyJyxcblx0XHRcdCd6aC1oYW5zJzogJ+W3oeafpeWRmCcsXG5cdFx0XHQnemgtaGFudCc6ICflt6Hmn6Xlk6EnLFxuXHRcdH0pLFxuXHRcdGF1dG9yZXZpZXdlcjogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdFeGVtcHRlZCBmcm9tIHBhZ2UgcGF0cm9sJyxcblx0XHRcdCd6aC1oYW5zJzogJ+W3oeafpeixgeWFjScsXG5cdFx0XHQnemgtaGFudCc6ICflt6Hmn6XosYHlhY0nLFxuXHRcdH0pLFxuXHRcdHNlbmlvcmVkaXRvcjogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdTZW5pb3IgRWRpdG9yJyxcblx0XHRcdCd6aC1oYW5zJzogJ+i1hOa3see8luiAhScsXG5cdFx0XHQnemgtaGFudCc6ICfos4fmt7Hnt6jogIUnLFxuXHRcdH0pLFxuXHRcdGV2ZW50c3BvbnNvcjogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdFdmVudCBTcG9uc29yJyxcblx0XHRcdCd6aC1oYW5zJzogJ+a0u+WKqOe7hOe7h+iAhScsXG5cdFx0XHQnemgtaGFudCc6ICfmtLvli5XntYTnuZTogIUnLFxuXHRcdH0pLFxuXHRcdCdtYXNzbWVzc2FnZS1zZW5kZXInOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ01hc3NNZXNzYWdlIHNlbmRlcicsXG5cdFx0XHQnemgtaGFucyc6ICflpKfph4/mtojmga/lj5HpgIHogIUnLFxuXHRcdFx0J3poLWhhbnQnOiAn5aSn6YeP6KiK5oGv5YKz6YCB6ICFJyxcblx0XHR9KSxcblx0XHRjb25maXJtZWQ6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnQ29uZmlybWVkIHVzZXInLFxuXHRcdFx0J3poLWhhbnMnOiAn56Gu6K6k55So5oi3Jyxcblx0XHRcdCd6aC1oYW50JzogJ+eiuuiqjeeUqOaIticsXG5cdFx0fSksXG5cdFx0YXV0b2NvbmZpcm1lZDogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdBdXRvLWNvbmZpcm1lZCB1c2VyJyxcblx0XHRcdCd6aC1oYW5zJzogJ+iHquWKqOehruiupOeUqOaItycsXG5cdFx0XHQnemgtaGFudCc6ICfoh6rli5Xnorroqo3nlKjmiLYnLFxuXHRcdH0pLFxuXHRcdCdybnJzdmVyaWZ5LWV4ZW1wdCc6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnRXhlbXB0ZWQgZnJvbSByZWFsLW5hbWUgdmVyaWZpY2F0aW9uJyxcblx0XHRcdCd6aC1oYW5zJzogJ+WunuWQjeWItumqjOivgeixgeWFjScsXG5cdFx0XHQnemgtaGFudCc6ICflr6blkI3liLbpqZforYnosYHlhY0nLFxuXHRcdH0pLFxuXHRcdGJvdDogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdCb3QnLFxuXHRcdFx0J3poLWhhbnMnOiAn5py65Zmo5Lq6Jyxcblx0XHRcdCd6aC1oYW50JzogJ+apn+aisOS6uicsXG5cdFx0fSksXG5cdFx0Zmxvb2Q6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnRmxvb2RlcicsXG5cdFx0XHQnemgtaGFucyc6ICfmnLrlmajnlKjmiLcnLFxuXHRcdFx0J3poLWhhbnQnOiAn5qmf5qKw55So5oi2Jyxcblx0XHR9KSxcblx0XHQnaXBibG9jay1leGVtcHQnOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ0V4ZW1wdGVkIGZyb20gSVAgYmxvY2tzJyxcblx0XHRcdCd6aC1oYW5zJzogJ0lQ5bCB56aB6LGB5YWNJyxcblx0XHRcdCd6aC1oYW50JzogJ0lQ5bCB6Y6W6LGB5YWNJyxcblx0XHR9KSxcblx0fTtcbn07XG5cbmNvbnN0IGkxOG5NZXNzYWdlcyA9IGdldEkxOG5NZXNzYWdlcygpO1xuXG5jb25zdCBnZXRNZXNzYWdlOiBHZXRNZXNzYWdlczx0eXBlb2YgaTE4bk1lc3NhZ2VzPiA9IChrZXkpID0+IHtcblx0cmV0dXJuIGkxOG5NZXNzYWdlc1trZXldIHx8IGtleTtcbn07XG5cbmV4cG9ydCB7Z2V0TWVzc2FnZX07XG4iLCAiaW1wb3J0ICogYXMgT1BUSU9OUyBmcm9tICcuL29wdGlvbnMuanNvbic7XG5pbXBvcnQge2dldFBlcm1pc3Npb25zfSBmcm9tICcuL21vZHVsZXMvZ2V0UGVybWlzc2lvbnMnO1xuXG4oZnVuY3Rpb24gbWFya1JpZ2h0c1VzZXJQYWdlKCk6IHZvaWQge1xuXHRjb25zdCB7d2dBY3Rpb24sIHdnTmFtZXNwYWNlTnVtYmVyLCB3Z1BhZ2VOYW1lLCB3Z1JlbGV2YW50VXNlck5hbWV9ID0gbXcuY29uZmlnLmdldCgpO1xuXHRpZiAoIXdnUmVsZXZhbnRVc2VyTmFtZSB8fCAhKHdnTmFtZXNwYWNlTnVtYmVyID09PSBPUFRJT05TLnVzZXJOYW1lU3BhY2VOdW1iZXIpIHx8ICEod2dBY3Rpb24gPT09ICd2aWV3JykpIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRpZiAobXcudXRpbC5pc0lQdjRBZGRyZXNzKHdnUmVsZXZhbnRVc2VyTmFtZSkgfHwgbXcudXRpbC5pc0lQdjZBZGRyZXNzKHdnUmVsZXZhbnRVc2VyTmFtZSkpIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRjb25zdCByZWxldmFudFVzZXJQYWdlTmFtZTogc3RyaW5nID0gbmV3IG13LlRpdGxlKHdnUmVsZXZhbnRVc2VyTmFtZSwgT1BUSU9OUy51c2VyTmFtZVNwYWNlTnVtYmVyKS50b1RleHQoKTtcblx0Y29uc3QgcGFnZU5hbWU6IHN0cmluZyA9IG5ldyBtdy5UaXRsZSh3Z1BhZ2VOYW1lKS50b1RleHQoKTtcblx0aWYgKHBhZ2VOYW1lICE9PSByZWxldmFudFVzZXJQYWdlTmFtZSkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdHZvaWQgZ2V0UGVybWlzc2lvbnMod2dSZWxldmFudFVzZXJOYW1lKTtcbn0pKCk7XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQyxJQUFBQSxxQkFBc0I7QUFDdEIsSUFBQUMsc0JBQXVCOztBQ0Z4QixJQUFNQyxxQkFBK0IsQ0FDcEMsU0FDQSxRQUNBLFVBQ0EsV0FDQSx5QkFDQSxzQkFDQSxxQkFDQSw4QkFDQSxlQUFBO0FBRUQsSUFBTUMsaUJBQTJCLENBQUMsVUFBVSx1QkFBdUIsbUJBQW1COztBQ1Z0RixJQUFBQyxxQkFBc0RDLFFBQUEsdUJBQUE7O0FDRHRELElBQUFDLG9CQUFrQ0MsUUFBQUYsUUFBQSxnQkFBQSxHQUFBLENBQUE7QUFRbEMsSUFBTUcsZUFBZUEsQ0FBQztFQUFDQztFQUFXQyxXQUFXSixrQ0FBQUssUUFBQUMsY0FBQU4sa0JBQUFLLFFBQUFFLFVBQUEsSUFBRTtBQUFHLE1BQXlCO0FBQzFFLFFBQU07SUFBQ0M7RUFBSSxJQUFJQyxHQUFHQyxPQUFPQyxJQUFJO0FBQzdCLFFBQU1DLGFBQWEsQ0FBQyw4QkFBQSwrQkFBQUMsT0FBNkRWLFNBQVMsQ0FBQTtBQUUxRixTQUNDSCxrQ0FBQUssUUFBQUMsY0FBQU4sa0JBQUFLLFFBQUFFLFVBQUEsTUFDRUMsU0FBUyxZQUNUUixrQ0FBQUssUUFBQUMsY0FBQyxX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QUFBO0FBQXBCLGVBQUFGLFdBQUFHLEVBQUEsR0FBQSxFQUFBRCxTQUFBRixXQUFBSSxFQUFBLEdBQUFDLFFBQTRCO0FBQUEsa0JBQWpCQyxRQUFBSixPQUFBSztBQUNWOUMsdUJBQVc7Y0FBQ1IsZUFBZTZCLFdBQVd3QixLQUFtQjtjQUFHckUsV0FBV3FFO1lBQW1CLENBQUM7VUFDNUY7UUFBQSxTQUFBRSxLQUFBO0FBQUFSLHFCQUFBUyxFQUFBRCxHQUFBO1FBQUEsVUFBQTtBQUFBUixxQkFBQVUsRUFBQTtRQUFBO01BQ0Q7SUFDRCxRQUFRO0lBQUM7RUFDVixDQUFBO0FBQUEsU0FBQSxTQXZCTXpCLGdCQUFBMEIsSUFBQTtBQUFBLFdBQUF6QixLQUFBMEIsTUFBQSxNQUFBQyxTQUFBO0VBQUE7QUFBQSxFQUFBOztDSUpMLFNBQVNDLHFCQUEyQjtBQUNwQyxRQUFNO0lBQUNDO0lBQVVDO0lBQW1CQztJQUFZN0I7RUFBa0IsSUFBSTdDLEdBQUdDLE9BQU9DLElBQUk7QUFDcEYsTUFBSSxDQUFDMkMsc0JBQXNCLEVBQUU0QixzQkFBOEJ2Rix3QkFBd0IsRUFBRXNGLGFBQWEsU0FBUztBQUMxRztFQUNEO0FBRUEsTUFBSXhFLEdBQUcyRSxLQUFLQyxjQUFjL0Isa0JBQWtCLEtBQUs3QyxHQUFHMkUsS0FBS0UsY0FBY2hDLGtCQUFrQixHQUFHO0FBQzNGO0VBQ0Q7QUFFQSxRQUFNaUMsdUJBQStCLElBQUk5RSxHQUFHK0UsTUFBTWxDLG9CQUE0QjNELG1CQUFtQixFQUFFOEYsT0FBTztBQUMxRyxRQUFNQyxXQUFtQixJQUFJakYsR0FBRytFLE1BQU1MLFVBQVUsRUFBRU0sT0FBTztBQUN6RCxNQUFJQyxhQUFhSCxzQkFBc0I7QUFDdEM7RUFDRDtBQUVBLE9BQUtwQyxlQUFlRyxrQkFBa0I7QUFDdkMsR0FBRzsiLAogICJuYW1lcyI6IFsibW91bnRQb2ludFNlbGVjdG9yIiwgInVzZXJOYW1lU3BhY2VOdW1iZXIiLCAiU1lTVEVNX1NDUklQVF9MSVNUIiwgIldFQk1BU1RFUl9MSVNUIiwgImltcG9ydF9leHRfZ2FkZ2V0NCIsICJyZXF1aXJlIiwgImltcG9ydF9leHRfZ2FkZ2V0IiwgIl9fdG9FU00iLCAiRm9vdGVyTm90aWNlIiwgInNwYW5DbGFzcyIsICJjaGlsZHJlbiIsICJkZWZhdWx0IiwgImNyZWF0ZUVsZW1lbnQiLCAiRnJhZ21lbnQiLCAic2tpbiIsICJtdyIsICJjb25maWciLCAiZ2V0IiwgImNsYXNzTmFtZXMiLCAiY29uY2F0IiwgImNsYXNzTmFtZSIsICJpbmNsdWRlcyIsICJkb2N1bWVudCIsICJxdWVyeVNlbGVjdG9yIiwgIkluZGljYXRvciIsICJpbmRpY2F0b3JUZXh0IiwgInRpdGxlIiwgIkZvb3Rlckljb24iLCAiaW1wb3J0X2V4dF9nYWRnZXQyIiwgImFwcGVuZEZvb3Rlck5vdGljZSIsICJlbGVtZW50IiwgIm1vdW50UG9pbnQiLCAicHJlcGVuZCIsICJhcHBlbmRJY29uIiwgImltcG9ydF9leHRfZ2FkZ2V0MyIsICJnZXRJMThuTWVzc2FnZXMiLCAicWl1d2VuIiwgImxvY2FsaXplIiwgImVuIiwgInN0ZXdhcmQiLCAiY2hlY2t1c2VyIiwgInN1cHByZXNzIiwgInN5c29wIiwgInRlbXBsYXRlZWRpdG9yIiwgInRyYW5zd2lraSIsICJwYXRyb2xsZXIiLCAiYXV0b3Jldmlld2VyIiwgInNlbmlvcmVkaXRvciIsICJldmVudHNwb25zb3IiLCAiY29uZmlybWVkIiwgImF1dG9jb25maXJtZWQiLCAiYm90IiwgImZsb29kIiwgImkxOG5NZXNzYWdlcyIsICJnZXRNZXNzYWdlIiwgImtleSIsICJpbXBvcnRfZXh0X2dhZGdldDUiLCAiZ2V0UGVybWlzc2lvbnMiLCAiX3JlZiIsICJfYXN5bmNUb0dlbmVyYXRvciIsICJ3Z1JlbGV2YW50VXNlck5hbWUiLCAiX2xvY2FsR3JvdXBzTWFwJHdnUmVsIiwgIl9nbG9iYWxHcm91cHNNYXAkd2dSZSIsICJsb2NhbEdyb3Vwc01hcCIsICJnZXRMb2NhbFVzZXJHcm91cHMiLCAibG9jYWxHcm91cHMiLCAiZ2xvYmFsR3JvdXBzTWFwIiwgImdldEdsb2JhbFVzZXJHcm91cHMiLCAiZ2xvYmFsR3JvdXBzIiwgImdyb3VwcyIsICJ1bmlxdWVBcnJheSIsICJmaWx0ZXIiLCAiX2l0ZXJhdG9yMiIsICJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsICJfc3RlcDIiLCAicyIsICJuIiwgImRvbmUiLCAiZ3JvdXAiLCAidmFsdWUiLCAiZXJyIiwgImUiLCAiZiIsICJfeCIsICJhcHBseSIsICJhcmd1bWVudHMiLCAibWFya1JpZ2h0c1VzZXJQYWdlIiwgIndnQWN0aW9uIiwgIndnTmFtZXNwYWNlTnVtYmVyIiwgIndnUGFnZU5hbWUiLCAidXRpbCIsICJpc0lQdjRBZGRyZXNzIiwgImlzSVB2NkFkZHJlc3MiLCAicmVsZXZhbnRVc2VyUGFnZU5hbWUiLCAiVGl0bGUiLCAidG9UZXh0IiwgInBhZ2VOYW1lIl0KfQo= diff --git a/dist/MemorialDay/MemorialDay.css b/dist/MemorialDay/MemorialDay.css index cb214f6d8..e87c7298f 100644 --- a/dist/MemorialDay/MemorialDay.css +++ b/dist/MemorialDay/MemorialDay.css @@ -24,10 +24,10 @@ } /* esbuild-css-modules-plugin-ns-css:src/MemorialDay/modules/MemorialDay.module.less */ -.MemorialDay-module__memorial_cnrRka { +.MemorialDay-module__memorial_cnrRka__490 { filter: grayscale(.95) !important; } /* */ -/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL01lbW9yaWFsRGF5L01lbW9yaWFsRGF5Lmxlc3MiLCAiZXNidWlsZC1jc3MtbW9kdWxlcy1wbHVnaW4tbnMtY3NzOnNyYy9NZW1vcmlhbERheS9tb2R1bGVzL01lbW9yaWFsRGF5Lm1vZHVsZS5sZXNzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIubWVtb3JpYWwge1xuICBmaWx0ZXI6IGdyYXlzY2FsZSgwLjk1KSAhaW1wb3J0YW50O1xufVxuIiwgIi8qIDxzdGRpbj4gKi9cbi5NZW1vcmlhbERheS1tb2R1bGVfX21lbW9yaWFsX2NuclJrYSB7XG4gIGZpbHRlcjogZ3JheXNjYWxlKC45NSkgIWltcG9ydGFudDtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLENBQUM7QUFDQyxVQUFRLFVBQVU7QUFDcEI7OztBQ0RBLENBQUM7QUFDQyxVQUFRLFVBQVU7QUFDcEI7IiwKICAibmFtZXMiOiBbXQp9Cg== */ +/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL01lbW9yaWFsRGF5L01lbW9yaWFsRGF5Lmxlc3MiLCAiZXNidWlsZC1jc3MtbW9kdWxlcy1wbHVnaW4tbnMtY3NzOnNyYy9NZW1vcmlhbERheS9tb2R1bGVzL01lbW9yaWFsRGF5Lm1vZHVsZS5sZXNzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIubWVtb3JpYWwge1xuICBmaWx0ZXI6IGdyYXlzY2FsZSgwLjk1KSAhaW1wb3J0YW50O1xufVxuIiwgIi8qIDxzdGRpbj4gKi9cbi5NZW1vcmlhbERheS1tb2R1bGVfX21lbW9yaWFsX2NuclJrYV9fNDkwIHtcbiAgZmlsdGVyOiBncmF5c2NhbGUoLjk1KSAhaW1wb3J0YW50O1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsQ0FBQztBQUNDLFVBQVEsVUFBVTtBQUNwQjs7O0FDREEsQ0FBQztBQUNDLFVBQVEsVUFBVTtBQUNwQjsiLAogICJuYW1lcyI6IFtdCn0K */ diff --git a/dist/MemorialDay/MemorialDay.js b/dist/MemorialDay/MemorialDay.js index 485e6b4b7..bc0333985 100644 --- a/dist/MemorialDay/MemorialDay.js +++ b/dist/MemorialDay/MemorialDay.js @@ -69,7 +69,7 @@ function _arrayLikeToArray(r, a) { //! src/MemorialDay/options.json var configKey = "gadget-MemorialDay__Initialized"; //! src/MemorialDay/modules/MemorialDay.module.less -var memorial = "MemorialDay-module__memorial_cnrRka"; +var memorial = "MemorialDay-module__memorial_cnrRka__490"; //! src/MemorialDay/modules/addStyleTag.ts var addStyleTag = () => { const { @@ -148,4 +148,4 @@ var import_ext_gadget2 = require("ext.gadget.MemorialDay-settings"); /* */ -//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL01lbW9yaWFsRGF5L29wdGlvbnMuanNvbiIsICJzcmMvTWVtb3JpYWxEYXkvbW9kdWxlcy9NZW1vcmlhbERheS5tb2R1bGUubGVzcyIsICJzcmMvTWVtb3JpYWxEYXkvbW9kdWxlcy9hZGRTdHlsZVRhZy50cyIsICJzcmMvTWVtb3JpYWxEYXkvTWVtb3JpYWxEYXkudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIntcblx0XCJjb25maWdLZXlcIjogXCJnYWRnZXQtTWVtb3JpYWxEYXlfX0luaXRpYWxpemVkXCJcbn1cbiIsICJpbXBvcnQgXCJlc2J1aWxkLWNzcy1tb2R1bGVzLXBsdWdpbi1ucy1jc3M6c3JjL01lbW9yaWFsRGF5L21vZHVsZXMvTWVtb3JpYWxEYXkubW9kdWxlLmxlc3NcIjtcbmV4cG9ydCBjb25zdCBtZW1vcmlhbCA9IFwiTWVtb3JpYWxEYXktbW9kdWxlX19tZW1vcmlhbF9jbnJSa2FcIjtcblxuZXhwb3J0IGRlZmF1bHQge1xuICBcIm1lbW9yaWFsXCI6IG1lbW9yaWFsXG59O1xuICAgICAgIiwgImltcG9ydCB7bWVtb3JpYWx9IGZyb20gJy4vTWVtb3JpYWxEYXkubW9kdWxlLmxlc3MnO1xuXG5jb25zdCBhZGRTdHlsZVRhZyA9ICgpID0+IHtcblx0Y29uc3Qge3dnSXNNYWluUGFnZX0gPSBtdy5jb25maWcuZ2V0KCk7XG5cblx0aWYgKHdnSXNNYWluUGFnZSkge1xuXHRcdHZvaWQgbXcubG9hZGVyLnVzaW5nKCdleHQuZ2FkZ2V0Lk1haW5wYWdlLU1vdXJuaW5nJyk7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0Y29uc3QgQ0xBU1NfTElTVCA9IFtcblx0XHQnLnNraW4tY2l0aXplbiAubXctYm9keScsXG5cdFx0Jy5za2luLWdvbmdiaSAjbXctY29udGVudCcsXG5cdFx0Jy5za2luLXZlY3RvciAubXctYm9keScsXG5cdFx0Jy5za2luLXZlY3Rvci0yMDIyIC5tdy1ib2R5Jyxcblx0XTtcblxuXHRmb3IgKGNvbnN0IGNsYXNzTmFtZSBvZiBDTEFTU19MSVNUKSB7XG5cdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1lZGlhd2lraS9jbGFzcy1kb2Ncblx0XHRkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGNsYXNzTmFtZSk/LmNsYXNzTGlzdC5hZGQobWVtb3JpYWwgYXMgc3RyaW5nKTtcblx0fVxufTtcblxuZXhwb3J0IHthZGRTdHlsZVRhZ307XG4iLCAiaW1wb3J0ICcuL01lbW9yaWFsRGF5Lmxlc3MnO1xuaW1wb3J0ICogYXMgT1BUSU9OUyBmcm9tICcuL29wdGlvbnMuanNvbic7XG5pbXBvcnQge2FkZFN0eWxlVGFnfSBmcm9tICcuL21vZHVsZXMvYWRkU3R5bGVUYWcnO1xuaW1wb3J0IHtnZW5lcmF0ZUFycmF5fSBmcm9tICdleHQuZ2FkZ2V0LlV0aWwnO1xuaW1wb3J0IHtwYWdlTGlzdH0gZnJvbSAnZXh0LmdhZGdldC5NZW1vcmlhbERheS1zZXR0aW5ncyc7XG5cbihmdW5jdGlvbiBtZW1vcmlhbERheSgpIHtcblx0Ly8gR3VhcmQgYWdhaW5zdCBkb3VibGUgaW5jbHVzaW9uc1xuXHRpZiAobXcuY29uZmlnLmdldChPUFRJT05TLmNvbmZpZ0tleSkpIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRpZiAoIUFycmF5LmlzQXJyYXkocGFnZUxpc3QpKSB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0Y29uc3QgREFURU5PVzogRGF0ZSA9IG5ldyBEYXRlKCk7XG5cdGNvbnN0IFlFQVI6IG51bWJlciA9IERBVEVOT1cuZ2V0RnVsbFllYXIoKTtcblx0Y29uc3QgTU9OVEg6IG51bWJlciA9IERBVEVOT1cuZ2V0TW9udGgoKSArIDE7XG5cdGNvbnN0IERBWTogbnVtYmVyID0gREFURU5PVy5nZXREYXRlKCk7XG5cblx0Y29uc3Qge3dnUGFnZU5hbWV9ID0gbXcuY29uZmlnLmdldCgpO1xuXG5cdGZvciAoY29uc3QgcGFnZSBvZiBwYWdlTGlzdCkge1xuXHRcdGlmICghcGFnZS50aXRsZXMgfHwgIXBhZ2UuZGF0ZXMpIHtcblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblx0XHRjb25zdCB7dGl0bGVzLCBkYXRlc30gPSBwYWdlO1xuXG5cdFx0aWYgKCF0aXRsZXMuaW5jbHVkZXMod2dQYWdlTmFtZSkpIHtcblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblxuXHRcdGNvbnN0IGFsbERhdGVzID0gZ2VuZXJhdGVBcnJheShkYXRlcyk7XG5cblx0XHRmb3IgKGxldCBkYXRlIG9mIGFsbERhdGVzKSB7XG5cdFx0XHRpZiAodHlwZW9mIGRhdGUgPT09ICdzdHJpbmcnKSB7XG5cdFx0XHRcdGRhdGUgPSBOdW1iZXIucGFyc2VJbnQoZGF0ZSwgMTApO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAoIWFsbERhdGVzLmluY2x1ZGVzKE1PTlRIICogMWUyICsgREFZKSAmJiAhYWxsRGF0ZXMuaW5jbHVkZXMoWUVBUiAqIDFlNCArIE1PTlRIICogMWUyICsgREFZKSkge1xuXHRcdFx0XHRjb250aW51ZTtcblx0XHRcdH1cblxuXHRcdFx0YWRkU3R5bGVUYWcoKTtcblx0XHRcdG13LmNvbmZpZy5zZXQoT1BUSU9OUy5jb25maWdLZXksIHRydWUpO1xuXHRcdH1cblx0fVxufSkoKTtcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNDLElBQUFBLFlBQWE7O0FDQVAsSUFBTUMsV0FBVzs7QUNDeEIsSUFBTUMsY0FBY0EsTUFBTTtBQUN6QixRQUFNO0lBQUNDO0VBQVksSUFBSUMsR0FBR0MsT0FBT0MsSUFBSTtBQUVyQyxNQUFJSCxjQUFjO0FBQ2pCLFNBQUtDLEdBQUdHLE9BQU9DLE1BQU0sOEJBQThCO0FBQ25EO0VBQ0Q7QUFFQSxRQUFNQyxhQUFhLENBQ2xCLDBCQUNBLDRCQUNBLHlCQUNBLDRCQUFBO0FBR0QsV0FBQUMsS0FBQSxHQUFBQyxjQUF3QkYsWUFBQUMsS0FBQUMsWUFBQUMsUUFBQUYsTUFBWTtBQUFBLFFBQUFHO0FBQXBDLFVBQVdDLFlBQUFILFlBQUFELEVBQUE7QUFFVixLQUFBRyx3QkFBQUUsU0FBU0MsY0FBY0YsU0FBUyxPQUFBLFFBQUFELDBCQUFBLFVBQWhDQSxzQkFBbUNJLFVBQVVDLElBQUlqQixRQUFrQjtFQUNwRTtBQUNEOztBQ2xCQSxJQUFBa0Isb0JBQTRCQyxRQUFBLGlCQUFBO0FBQzVCLElBQUFDLHFCQUF1QkQsUUFBQSxpQ0FBQTtDQUV0QixTQUFTRSxjQUFjO0FBRXZCLE1BQUlsQixHQUFHQyxPQUFPQyxJQUFZTixTQUFTLEdBQUc7QUFDckM7RUFDRDtBQUVBLE1BQUksQ0FBQ3VCLE1BQU1DLFFBQVFILG1CQUFBSSxRQUFRLEdBQUc7QUFDN0I7RUFDRDtBQUVBLFFBQU1DLFVBQWdCLG9CQUFJQyxLQUFLO0FBQy9CLFFBQU1DLE9BQWVGLFFBQVFHLFlBQVk7QUFDekMsUUFBTUMsUUFBZ0JKLFFBQVFLLFNBQVMsSUFBSTtBQUMzQyxRQUFNQyxNQUFjTixRQUFRTyxRQUFRO0FBRXBDLFFBQU07SUFBQ0M7RUFBVSxJQUFJOUIsR0FBR0MsT0FBT0MsSUFBSTtBQUFBLE1BQUE2QixZQUFBQywyQkFFaEJmLG1CQUFBSSxRQUFBLEdBQUFZO0FBQUEsTUFBQTtBQUFuQixTQUFBRixVQUFBRyxFQUFBLEdBQUEsRUFBQUQsUUFBQUYsVUFBQUksRUFBQSxHQUFBQyxRQUE2QjtBQUFBLFlBQWxCQyxPQUFBSixNQUFBSztBQUNWLFVBQUksQ0FBQ0QsS0FBS0UsVUFBVSxDQUFDRixLQUFLRyxPQUFPO0FBQ2hDO01BQ0Q7QUFDQSxZQUFNO1FBQUNEO1FBQVFDO01BQUssSUFBSUg7QUFFeEIsVUFBSSxDQUFDRSxPQUFPRSxTQUFTWCxVQUFVLEdBQUc7QUFDakM7TUFDRDtBQUVBLFlBQU1ZLFlBQUEsR0FBVzNCLGtCQUFBNEIsZUFBY0gsS0FBSztBQUFBLFVBQUFJLGFBQUFaLDJCQUVuQlUsUUFBQSxHQUFBRztBQUFBLFVBQUE7QUFBakIsYUFBQUQsV0FBQVYsRUFBQSxHQUFBLEVBQUFXLFNBQUFELFdBQUFULEVBQUEsR0FBQUMsUUFBMkI7QUFBQSxjQUFsQlUsT0FBQUQsT0FBQVA7QUFDUixjQUFJLE9BQU9RLFNBQVMsVUFBVTtBQUM3QkEsbUJBQU9DLE9BQU9DLFNBQVNGLE1BQU0sRUFBRTtVQUNoQztBQUVBLGNBQUksQ0FBQ0osU0FBU0QsU0FBU2YsUUFBUSxNQUFNRSxHQUFHLEtBQUssQ0FBQ2MsU0FBU0QsU0FBU2pCLE9BQU8sTUFBTUUsUUFBUSxNQUFNRSxHQUFHLEdBQUc7QUFDaEc7VUFDRDtBQUVBOUIsc0JBQVk7QUFDWkUsYUFBR0MsT0FBT2dELElBQVlyRCxXQUFXLElBQUk7UUFDdEM7TUFBQSxTQUFBc0QsS0FBQTtBQUFBTixtQkFBQU8sRUFBQUQsR0FBQTtNQUFBLFVBQUE7QUFBQU4sbUJBQUFRLEVBQUE7TUFBQTtJQUNEO0VBQUEsU0FBQUYsS0FBQTtBQUFBbkIsY0FBQW9CLEVBQUFELEdBQUE7RUFBQSxVQUFBO0FBQUFuQixjQUFBcUIsRUFBQTtFQUFBO0FBQ0QsR0FBRzsiLAogICJuYW1lcyI6IFsiY29uZmlnS2V5IiwgIm1lbW9yaWFsIiwgImFkZFN0eWxlVGFnIiwgIndnSXNNYWluUGFnZSIsICJtdyIsICJjb25maWciLCAiZ2V0IiwgImxvYWRlciIsICJ1c2luZyIsICJDTEFTU19MSVNUIiwgIl9pIiwgIl9DTEFTU19MSVNUIiwgImxlbmd0aCIsICJfZG9jdW1lbnQkcXVlcnlTZWxlY3QiLCAiY2xhc3NOYW1lIiwgImRvY3VtZW50IiwgInF1ZXJ5U2VsZWN0b3IiLCAiY2xhc3NMaXN0IiwgImFkZCIsICJpbXBvcnRfZXh0X2dhZGdldCIsICJyZXF1aXJlIiwgImltcG9ydF9leHRfZ2FkZ2V0MiIsICJtZW1vcmlhbERheSIsICJBcnJheSIsICJpc0FycmF5IiwgInBhZ2VMaXN0IiwgIkRBVEVOT1ciLCAiRGF0ZSIsICJZRUFSIiwgImdldEZ1bGxZZWFyIiwgIk1PTlRIIiwgImdldE1vbnRoIiwgIkRBWSIsICJnZXREYXRlIiwgIndnUGFnZU5hbWUiLCAiX2l0ZXJhdG9yIiwgIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwgIl9zdGVwIiwgInMiLCAibiIsICJkb25lIiwgInBhZ2UiLCAidmFsdWUiLCAidGl0bGVzIiwgImRhdGVzIiwgImluY2x1ZGVzIiwgImFsbERhdGVzIiwgImdlbmVyYXRlQXJyYXkiLCAiX2l0ZXJhdG9yMiIsICJfc3RlcDIiLCAiZGF0ZSIsICJOdW1iZXIiLCAicGFyc2VJbnQiLCAic2V0IiwgImVyciIsICJlIiwgImYiXQp9Cg== +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL01lbW9yaWFsRGF5L29wdGlvbnMuanNvbiIsICJzcmMvTWVtb3JpYWxEYXkvbW9kdWxlcy9NZW1vcmlhbERheS5tb2R1bGUubGVzcyIsICJzcmMvTWVtb3JpYWxEYXkvbW9kdWxlcy9hZGRTdHlsZVRhZy50cyIsICJzcmMvTWVtb3JpYWxEYXkvTWVtb3JpYWxEYXkudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIntcblx0XCJjb25maWdLZXlcIjogXCJnYWRnZXQtTWVtb3JpYWxEYXlfX0luaXRpYWxpemVkXCJcbn1cbiIsICJpbXBvcnQgXCJlc2J1aWxkLWNzcy1tb2R1bGVzLXBsdWdpbi1ucy1jc3M6c3JjL01lbW9yaWFsRGF5L21vZHVsZXMvTWVtb3JpYWxEYXkubW9kdWxlLmxlc3NcIjtcbmV4cG9ydCBjb25zdCBtZW1vcmlhbCA9IFwiTWVtb3JpYWxEYXktbW9kdWxlX19tZW1vcmlhbF9jbnJSa2FfXzQ5MFwiO1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIFwibWVtb3JpYWxcIjogbWVtb3JpYWxcbn07XG4gICAgICAiLCAiaW1wb3J0IHttZW1vcmlhbH0gZnJvbSAnLi9NZW1vcmlhbERheS5tb2R1bGUubGVzcyc7XG5cbmNvbnN0IGFkZFN0eWxlVGFnID0gKCkgPT4ge1xuXHRjb25zdCB7d2dJc01haW5QYWdlfSA9IG13LmNvbmZpZy5nZXQoKTtcblxuXHRpZiAod2dJc01haW5QYWdlKSB7XG5cdFx0dm9pZCBtdy5sb2FkZXIudXNpbmcoJ2V4dC5nYWRnZXQuTWFpbnBhZ2UtTW91cm5pbmcnKTtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRjb25zdCBDTEFTU19MSVNUID0gW1xuXHRcdCcuc2tpbi1jaXRpemVuIC5tdy1ib2R5Jyxcblx0XHQnLnNraW4tZ29uZ2JpICNtdy1jb250ZW50Jyxcblx0XHQnLnNraW4tdmVjdG9yIC5tdy1ib2R5Jyxcblx0XHQnLnNraW4tdmVjdG9yLTIwMjIgLm13LWJvZHknLFxuXHRdO1xuXG5cdGZvciAoY29uc3QgY2xhc3NOYW1lIG9mIENMQVNTX0xJU1QpIHtcblx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWVkaWF3aWtpL2NsYXNzLWRvY1xuXHRcdGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoY2xhc3NOYW1lKT8uY2xhc3NMaXN0LmFkZChtZW1vcmlhbCBhcyBzdHJpbmcpO1xuXHR9XG59O1xuXG5leHBvcnQge2FkZFN0eWxlVGFnfTtcbiIsICJpbXBvcnQgJy4vTWVtb3JpYWxEYXkubGVzcyc7XG5pbXBvcnQgKiBhcyBPUFRJT05TIGZyb20gJy4vb3B0aW9ucy5qc29uJztcbmltcG9ydCB7YWRkU3R5bGVUYWd9IGZyb20gJy4vbW9kdWxlcy9hZGRTdHlsZVRhZyc7XG5pbXBvcnQge2dlbmVyYXRlQXJyYXl9IGZyb20gJ2V4dC5nYWRnZXQuVXRpbCc7XG5pbXBvcnQge3BhZ2VMaXN0fSBmcm9tICdleHQuZ2FkZ2V0Lk1lbW9yaWFsRGF5LXNldHRpbmdzJztcblxuKGZ1bmN0aW9uIG1lbW9yaWFsRGF5KCkge1xuXHQvLyBHdWFyZCBhZ2FpbnN0IGRvdWJsZSBpbmNsdXNpb25zXG5cdGlmIChtdy5jb25maWcuZ2V0KE9QVElPTlMuY29uZmlnS2V5KSkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGlmICghQXJyYXkuaXNBcnJheShwYWdlTGlzdCkpIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRjb25zdCBEQVRFTk9XOiBEYXRlID0gbmV3IERhdGUoKTtcblx0Y29uc3QgWUVBUjogbnVtYmVyID0gREFURU5PVy5nZXRGdWxsWWVhcigpO1xuXHRjb25zdCBNT05USDogbnVtYmVyID0gREFURU5PVy5nZXRNb250aCgpICsgMTtcblx0Y29uc3QgREFZOiBudW1iZXIgPSBEQVRFTk9XLmdldERhdGUoKTtcblxuXHRjb25zdCB7d2dQYWdlTmFtZX0gPSBtdy5jb25maWcuZ2V0KCk7XG5cblx0Zm9yIChjb25zdCBwYWdlIG9mIHBhZ2VMaXN0KSB7XG5cdFx0aWYgKCFwYWdlLnRpdGxlcyB8fCAhcGFnZS5kYXRlcykge1xuXHRcdFx0Y29udGludWU7XG5cdFx0fVxuXHRcdGNvbnN0IHt0aXRsZXMsIGRhdGVzfSA9IHBhZ2U7XG5cblx0XHRpZiAoIXRpdGxlcy5pbmNsdWRlcyh3Z1BhZ2VOYW1lKSkge1xuXHRcdFx0Y29udGludWU7XG5cdFx0fVxuXG5cdFx0Y29uc3QgYWxsRGF0ZXMgPSBnZW5lcmF0ZUFycmF5KGRhdGVzKTtcblxuXHRcdGZvciAobGV0IGRhdGUgb2YgYWxsRGF0ZXMpIHtcblx0XHRcdGlmICh0eXBlb2YgZGF0ZSA9PT0gJ3N0cmluZycpIHtcblx0XHRcdFx0ZGF0ZSA9IE51bWJlci5wYXJzZUludChkYXRlLCAxMCk7XG5cdFx0XHR9XG5cblx0XHRcdGlmICghYWxsRGF0ZXMuaW5jbHVkZXMoTU9OVEggKiAxZTIgKyBEQVkpICYmICFhbGxEYXRlcy5pbmNsdWRlcyhZRUFSICogMWU0ICsgTU9OVEggKiAxZTIgKyBEQVkpKSB7XG5cdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0fVxuXG5cdFx0XHRhZGRTdHlsZVRhZygpO1xuXHRcdFx0bXcuY29uZmlnLnNldChPUFRJT05TLmNvbmZpZ0tleSwgdHJ1ZSk7XG5cdFx0fVxuXHR9XG59KSgpO1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0MsSUFBQUEsWUFBYTs7QUNBUCxJQUFNQyxXQUFXOztBQ0N4QixJQUFNQyxjQUFjQSxNQUFNO0FBQ3pCLFFBQU07SUFBQ0M7RUFBWSxJQUFJQyxHQUFHQyxPQUFPQyxJQUFJO0FBRXJDLE1BQUlILGNBQWM7QUFDakIsU0FBS0MsR0FBR0csT0FBT0MsTUFBTSw4QkFBOEI7QUFDbkQ7RUFDRDtBQUVBLFFBQU1DLGFBQWEsQ0FDbEIsMEJBQ0EsNEJBQ0EseUJBQ0EsNEJBQUE7QUFHRCxXQUFBQyxLQUFBLEdBQUFDLGNBQXdCRixZQUFBQyxLQUFBQyxZQUFBQyxRQUFBRixNQUFZO0FBQUEsUUFBQUc7QUFBcEMsVUFBV0MsWUFBQUgsWUFBQUQsRUFBQTtBQUVWLEtBQUFHLHdCQUFBRSxTQUFTQyxjQUFjRixTQUFTLE9BQUEsUUFBQUQsMEJBQUEsVUFBaENBLHNCQUFtQ0ksVUFBVUMsSUFBSWpCLFFBQWtCO0VBQ3BFO0FBQ0Q7O0FDbEJBLElBQUFrQixvQkFBNEJDLFFBQUEsaUJBQUE7QUFDNUIsSUFBQUMscUJBQXVCRCxRQUFBLGlDQUFBO0NBRXRCLFNBQVNFLGNBQWM7QUFFdkIsTUFBSWxCLEdBQUdDLE9BQU9DLElBQVlOLFNBQVMsR0FBRztBQUNyQztFQUNEO0FBRUEsTUFBSSxDQUFDdUIsTUFBTUMsUUFBUUgsbUJBQUFJLFFBQVEsR0FBRztBQUM3QjtFQUNEO0FBRUEsUUFBTUMsVUFBZ0Isb0JBQUlDLEtBQUs7QUFDL0IsUUFBTUMsT0FBZUYsUUFBUUcsWUFBWTtBQUN6QyxRQUFNQyxRQUFnQkosUUFBUUssU0FBUyxJQUFJO0FBQzNDLFFBQU1DLE1BQWNOLFFBQVFPLFFBQVE7QUFFcEMsUUFBTTtJQUFDQztFQUFVLElBQUk5QixHQUFHQyxPQUFPQyxJQUFJO0FBQUEsTUFBQTZCLFlBQUFDLDJCQUVoQmYsbUJBQUFJLFFBQUEsR0FBQVk7QUFBQSxNQUFBO0FBQW5CLFNBQUFGLFVBQUFHLEVBQUEsR0FBQSxFQUFBRCxRQUFBRixVQUFBSSxFQUFBLEdBQUFDLFFBQTZCO0FBQUEsWUFBbEJDLE9BQUFKLE1BQUFLO0FBQ1YsVUFBSSxDQUFDRCxLQUFLRSxVQUFVLENBQUNGLEtBQUtHLE9BQU87QUFDaEM7TUFDRDtBQUNBLFlBQU07UUFBQ0Q7UUFBUUM7TUFBSyxJQUFJSDtBQUV4QixVQUFJLENBQUNFLE9BQU9FLFNBQVNYLFVBQVUsR0FBRztBQUNqQztNQUNEO0FBRUEsWUFBTVksWUFBQSxHQUFXM0Isa0JBQUE0QixlQUFjSCxLQUFLO0FBQUEsVUFBQUksYUFBQVosMkJBRW5CVSxRQUFBLEdBQUFHO0FBQUEsVUFBQTtBQUFqQixhQUFBRCxXQUFBVixFQUFBLEdBQUEsRUFBQVcsU0FBQUQsV0FBQVQsRUFBQSxHQUFBQyxRQUEyQjtBQUFBLGNBQWxCVSxPQUFBRCxPQUFBUDtBQUNSLGNBQUksT0FBT1EsU0FBUyxVQUFVO0FBQzdCQSxtQkFBT0MsT0FBT0MsU0FBU0YsTUFBTSxFQUFFO1VBQ2hDO0FBRUEsY0FBSSxDQUFDSixTQUFTRCxTQUFTZixRQUFRLE1BQU1FLEdBQUcsS0FBSyxDQUFDYyxTQUFTRCxTQUFTakIsT0FBTyxNQUFNRSxRQUFRLE1BQU1FLEdBQUcsR0FBRztBQUNoRztVQUNEO0FBRUE5QixzQkFBWTtBQUNaRSxhQUFHQyxPQUFPZ0QsSUFBWXJELFdBQVcsSUFBSTtRQUN0QztNQUFBLFNBQUFzRCxLQUFBO0FBQUFOLG1CQUFBTyxFQUFBRCxHQUFBO01BQUEsVUFBQTtBQUFBTixtQkFBQVEsRUFBQTtNQUFBO0lBQ0Q7RUFBQSxTQUFBRixLQUFBO0FBQUFuQixjQUFBb0IsRUFBQUQsR0FBQTtFQUFBLFVBQUE7QUFBQW5CLGNBQUFxQixFQUFBO0VBQUE7QUFDRCxHQUFHOyIsCiAgIm5hbWVzIjogWyJjb25maWdLZXkiLCAibWVtb3JpYWwiLCAiYWRkU3R5bGVUYWciLCAid2dJc01haW5QYWdlIiwgIm13IiwgImNvbmZpZyIsICJnZXQiLCAibG9hZGVyIiwgInVzaW5nIiwgIkNMQVNTX0xJU1QiLCAiX2kiLCAiX0NMQVNTX0xJU1QiLCAibGVuZ3RoIiwgIl9kb2N1bWVudCRxdWVyeVNlbGVjdCIsICJjbGFzc05hbWUiLCAiZG9jdW1lbnQiLCAicXVlcnlTZWxlY3RvciIsICJjbGFzc0xpc3QiLCAiYWRkIiwgImltcG9ydF9leHRfZ2FkZ2V0IiwgInJlcXVpcmUiLCAiaW1wb3J0X2V4dF9nYWRnZXQyIiwgIm1lbW9yaWFsRGF5IiwgIkFycmF5IiwgImlzQXJyYXkiLCAicGFnZUxpc3QiLCAiREFURU5PVyIsICJEYXRlIiwgIllFQVIiLCAiZ2V0RnVsbFllYXIiLCAiTU9OVEgiLCAiZ2V0TW9udGgiLCAiREFZIiwgImdldERhdGUiLCAid2dQYWdlTmFtZSIsICJfaXRlcmF0b3IiLCAiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIiLCAiX3N0ZXAiLCAicyIsICJuIiwgImRvbmUiLCAicGFnZSIsICJ2YWx1ZSIsICJ0aXRsZXMiLCAiZGF0ZXMiLCAiaW5jbHVkZXMiLCAiYWxsRGF0ZXMiLCAiZ2VuZXJhdGVBcnJheSIsICJfaXRlcmF0b3IyIiwgIl9zdGVwMiIsICJkYXRlIiwgIk51bWJlciIsICJwYXJzZUludCIsICJzZXQiLCAiZXJyIiwgImUiLCAiZiJdCn0K diff --git a/dist/NoteTA/NoteTA.js b/dist/NoteTA/NoteTA.js index 17243bdf6..ed9255ef0 100644 --- a/dist/NoteTA/NoteTA.js +++ b/dist/NoteTA/NoteTA.js @@ -107,7 +107,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge var portletClass = "x-noteTA-viewer"; var version = "1.0"; //! src/NoteTA/modules/util/ApiRetryFailError.tsx -var import_ext_gadget2 = __toESM(require("ext.gadget.React"), 1); +var import_ext_gadget2 = __toESM(require("ext.gadget.JSX"), 1); //! src/NoteTA/modules/i18n.ts var import_ext_gadget = require("ext.gadget.i18n"); var getI18nMessages = () => { @@ -184,7 +184,7 @@ var parseWikitext = (...args) => { return parseWithRetry(args); }; //! src/NoteTA/modules/viewer.tsx -var import_ext_gadget4 = __toESM(require("ext.gadget.React"), 1); +var import_ext_gadget4 = __toESM(require("ext.gadget.JSX"), 1); //! src/NoteTA/modules/util/assert.ts function assert(value, valueName) { if (!value) { @@ -547,7 +547,7 @@ var initGlobalMethods = ($body) => { //! src/NoteTA/NoteTA.ts var import_ext_gadget6 = require("ext.gadget.Util"); //! src/NoteTA/modules/util/generatePortletLink.tsx -var import_ext_gadget5 = __toESM(require("ext.gadget.React"), 1); +var import_ext_gadget5 = __toESM(require("ext.gadget.JSX"), 1); var generatePortletLink = (hash) => { if (!portletId) { return; @@ -612,4 +612,4 @@ mw.hook("wikipage.content").add(function noteTA($content) { /* */ -//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL05vdGVUQS9vcHRpb25zLmpzb24iLCAic3JjL05vdGVUQS9tb2R1bGVzL3V0aWwvQXBpUmV0cnlGYWlsRXJyb3IudHN4IiwgInNyYy9Ob3RlVEEvbW9kdWxlcy9pMThuLnRzIiwgInNyYy9Ob3RlVEEvbW9kdWxlcy9hcGkudHMiLCAic3JjL05vdGVUQS9tb2R1bGVzL3BhcnNlV2lraXRleHQudHMiLCAic3JjL05vdGVUQS9tb2R1bGVzL3ZpZXdlci50c3giLCAic3JjL05vdGVUQS9tb2R1bGVzL3V0aWwvYXNzZXJ0LnRzIiwgInNyYy9Ob3RlVEEvbW9kdWxlcy9pbml0Vmlld01hcC50cyIsICJzcmMvTm90ZVRBL21vZHVsZXMvaW5pdFdpbmRvd01hbmFnZXIudHMiLCAic3JjL05vdGVUQS9tb2R1bGVzL2luaXRHbG9iYWxNZXRob2RzLnRzIiwgInNyYy9Ob3RlVEEvTm90ZVRBLnRzIiwgInNyYy9Ob3RlVEEvbW9kdWxlcy91dGlsL2dlbmVyYXRlUG9ydGxldExpbmsudHN4Il0sCiAgInNvdXJjZXNDb250ZW50IjogWyJ7XG5cdFwicG9ydGxldENsYXNzXCI6IFwieC1ub3RlVEEtdmlld2VyXCIsXG5cdFwidmVyc2lvblwiOiBcIjEuMFwiXG59XG4iLCAiaW1wb3J0IFJlYWN0IGZyb20gJ2V4dC5nYWRnZXQuUmVhY3QnO1xuaW1wb3J0IHtnZXRNZXNzYWdlfSBmcm9tICcuLi9pMThuJztcblxuY2xhc3MgQXBpUmV0cnlGYWlsRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG5cdHByaXZhdGUgZXJyb3JzOiBzdHJpbmdbXTtcblxuXHRwdWJsaWMgY29uc3RydWN0b3IoZXJyb3JzOiBzdHJpbmdbXSkge1xuXHRcdHN1cGVyKGBBcGkgY2FsbHMgZmFpbGVkICR7ZXJyb3JzLmxlbmd0aH0gdGltZShzKSBpbiBhIHJvdy5gKTtcblx0XHR0aGlzLm5hbWUgPSAnQXBpUmV0cnlGYWlsRXJyb3InO1xuXHRcdHRoaXMuZXJyb3JzID0gZXJyb3JzO1xuXHR9XG5cblx0cHVibGljIHRvSlF1ZXJ5KCk6IEpRdWVyeSB7XG5cdFx0Y29uc3QgZXJyb3JDb3VudDogbnVtYmVyID0gdGhpcy5lcnJvcnMubGVuZ3RoO1xuXG5cdFx0Y29uc3QgZWxlbWVudCA9IChcblx0XHRcdDxkaXYgY2xhc3NOYW1lPVwiZXJyb3JcIj5cblx0XHRcdFx0PHA+e2dldE1lc3NhZ2UoJ0FwaVJldHJ5RmFpbEVycm9yJykucmVwbGFjZSgvXFwkMS9nLCBlcnJvckNvdW50LnRvU3RyaW5nKCkpfTwvcD5cblx0XHRcdFx0PG9sPlxuXHRcdFx0XHRcdHt0aGlzLmVycm9ycy5tYXA8UmVhY3QuUmVhY3RFbGVtZW50PigoZXJyb3IsIGluZGV4KSA9PiAoXG5cdFx0XHRcdFx0XHQ8bGkga2V5PXtpbmRleH0+XG5cdFx0XHRcdFx0XHRcdHtlcnJvci5zcGxpdCgnXFxuJykubWFwPFJlYWN0LlJlYWN0RWxlbWVudD4oKGxpbmUsIG51bWJlcikgPT4gKFxuXHRcdFx0XHRcdFx0XHRcdDxwIGtleT17bnVtYmVyfT57bGluZX08L3A+XG5cdFx0XHRcdFx0XHRcdCkpfVxuXHRcdFx0XHRcdFx0PC9saT5cblx0XHRcdFx0XHQpKX1cblx0XHRcdFx0PC9vbD5cblx0XHRcdDwvZGl2PlxuXHRcdCk7XG5cdFx0Y29uc3QgJGVsZW1lbnQgPSAkKGVsZW1lbnQpIGFzIEpRdWVyeTtcblxuXHRcdHJldHVybiAkZWxlbWVudDtcblx0fVxufVxuXG5leHBvcnQge0FwaVJldHJ5RmFpbEVycm9yfTtcbiIsICJpbXBvcnQge2xvY2FsaXplfSBmcm9tICdleHQuZ2FkZ2V0LmkxOG4nO1xuXG5jb25zdCBnZXRJMThuTWVzc2FnZXMgPSAoKSA9PiB7XG5cdHJldHVybiB7XG5cdFx0QXBpUmV0cnlGYWlsRXJyb3I6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnQXBpIGNhbGxzIGZhaWxlZCAkMSB0aW1lKHMpIGluIGEgcm93LiBFcnJvcnM6ICcsXG5cdFx0XHQnemgtaGFucyc6ICdBcGkg6LCD55So6L+e57ut5aSx6LSlICQxIOasoe+8jCQxIOasoeiwg+eUqOeahOmUmeivr+WIhuWIq+S4uu+8micsXG5cdFx0XHQnemgtaGFudCc6ICdBcGkg6Kq/55So6YCj57qM5aSx5pWXICQxIOasoe+8jCQxIOasoeiqv+eUqOeahOmMr+iqpOWIhuWIpeeCuu+8micsXG5cdFx0fSksXG5cdFx0TG9hZGluZzogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdMb2FkaW5nLi4uJyxcblx0XHRcdCd6aC1oYW5zJzogJ+ato+WcqOWKoOi9veKApuKApicsXG5cdFx0XHQnemgtaGFudCc6ICfmraPlnKjovInlhaXigKbigKYnLFxuXHRcdH0pLFxuXHRcdFRpdGxlOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ05vdGVUQScsXG5cdFx0XHQnemgtaGFucyc6ICflrZfor43ovazmjaInLFxuXHRcdFx0J3poLWhhbnQnOiAn5a2X6Kme6L2J5o+bJyxcblx0XHR9KSxcblx0fTtcbn07XG5cbmNvbnN0IGkxOG5NZXNzYWdlcyA9IGdldEkxOG5NZXNzYWdlcygpO1xuXG5jb25zdCBnZXRNZXNzYWdlOiBHZXRNZXNzYWdlczx0eXBlb2YgaTE4bk1lc3NhZ2VzPiA9IChrZXkpID0+IHtcblx0cmV0dXJuIGkxOG5NZXNzYWdlc1trZXldIHx8IGtleTtcbn07XG5cbmV4cG9ydCB7Z2V0TWVzc2FnZX07XG4iLCAiaW1wb3J0ICogYXMgT1BUSU9OUyBmcm9tICcuLi9vcHRpb25zLmpzb24nO1xuaW1wb3J0IHtpbml0TXdBcGl9IGZyb20gJ2V4dC5nYWRnZXQuVXRpbCc7XG5cbmNvbnN0IGFwaTogbXcuQXBpID0gaW5pdE13QXBpKGBOb3RlVEEvJHtPUFRJT05TLnZlcnNpb259YCk7XG5cbmV4cG9ydCB7YXBpfTtcbiIsICJpbXBvcnQge0FwaVJldHJ5RmFpbEVycm9yfSBmcm9tICcuL3V0aWwvQXBpUmV0cnlGYWlsRXJyb3InO1xuaW1wb3J0IHthcGl9IGZyb20gJy4vYXBpJztcblxudHlwZSBBcGlQYXJzZSA9IG13LkFwaVsncGFyc2UnXTtcbnR5cGUgQXBpUGFyc2VQYXJhbWV0ZXJzID0gUGFyYW1ldGVyczxBcGlQYXJzZT47XG50eXBlIEFwaVBhcnNlUmVzcG9uc2UgPSBBd2FpdGVkPFJldHVyblR5cGU8QXBpUGFyc2U+PjtcbnR5cGUgQXBpUmVzcG9uc2UgPSBBcGlQYXJzZVJlc3BvbnNlIHwgQXBpUmV0cnlGYWlsRXJyb3I7XG5cbmNvbnN0IHBhcnNlV2l0aFJldHJ5ID0gKFxuXHRhcmdzOiBBcGlQYXJzZVBhcmFtZXRlcnMsXG5cdGNvdW50OiBudW1iZXIgPSAzLFxuXHRwcmV2aW91c0Vycm9yczogc3RyaW5nW10gPSBbXVxuKTogSlF1ZXJ5LkRlZmVycmVkPEFwaVJlc3BvbnNlPiA9PiB7XG5cdGlmICghY291bnQpIHtcblx0XHRyZXR1cm4gJC5EZWZlcnJlZDxBcGlSZXRyeUZhaWxFcnJvcj4oKS5yZWplY3QobmV3IEFwaVJldHJ5RmFpbEVycm9yKHByZXZpb3VzRXJyb3JzKSk7XG5cdH1cblxuXHRjb25zdCBkZWZlcnJlZCA9ICQuRGVmZXJyZWQ8QXBpUmVzcG9uc2U+KCk7XG5cblx0dm9pZCBhcGlcblx0XHQucGFyc2UoLi4uYXJncylcblx0XHQudGhlbigocmVzcG9uc2U6IEFwaVBhcnNlUmVzcG9uc2UpOiB2b2lkID0+IHtcblx0XHRcdHZvaWQgZGVmZXJyZWQucmVzb2x2ZShyZXNwb25zZSk7XG5cdFx0fSlcblx0XHQuY2F0Y2goKGVycm9yPzogRXJyb3IgfCBzdHJpbmcpOiB2b2lkID0+IHtcblx0XHRcdGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuXG5cdFx0XHRpZiAoZXJyb3IgJiYgdHlwZW9mIGVycm9yID09PSAnb2JqZWN0JyAmJiAnc3RhY2snIGluIGVycm9yKSB7XG5cdFx0XHRcdHByZXZpb3VzRXJyb3JzW3ByZXZpb3VzRXJyb3JzLmxlbmd0aF0gPSBlcnJvci5zdGFjaztcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHByZXZpb3VzRXJyb3JzW3ByZXZpb3VzRXJyb3JzLmxlbmd0aF0gPSBTdHJpbmcoZXJyb3IpO1xuXHRcdFx0fVxuXG5cdFx0XHRwYXJzZVdpdGhSZXRyeShhcmdzLCAtLWNvdW50LCBwcmV2aW91c0Vycm9ycylcblx0XHRcdFx0LnRoZW4oKG5ld1Jlc3BvbnNlOiBBcGlSZXNwb25zZSk6IHZvaWQgPT4ge1xuXHRcdFx0XHRcdHZvaWQgZGVmZXJyZWQucmVzb2x2ZShuZXdSZXNwb25zZSk7XG5cdFx0XHRcdH0pXG5cdFx0XHRcdC5jYXRjaCgobmV3RXJyb3I/OiBFcnJvciB8IHN0cmluZyk6IHZvaWQgPT4ge1xuXHRcdFx0XHRcdHZvaWQgZGVmZXJyZWQucmVqZWN0KG5ld0Vycm9yKTtcblx0XHRcdFx0fSk7XG5cdFx0fSk7XG5cblx0cmV0dXJuIGRlZmVycmVkO1xufTtcblxuY29uc3QgcGFyc2VXaWtpdGV4dCA9ICguLi5hcmdzOiBBcGlQYXJzZVBhcmFtZXRlcnMpOiBKUXVlcnkuRGVmZXJyZWQ8QXBpUmVzcG9uc2U+ID0+IHtcblx0cmV0dXJuIHBhcnNlV2l0aFJldHJ5KGFyZ3MpO1xufTtcblxuZXhwb3J0IHt0eXBlIEFwaVBhcnNlUmVzcG9uc2UsIHR5cGUgQXBpUmVzcG9uc2UsIHBhcnNlV2lraXRleHR9O1xuIiwgImltcG9ydCAqIGFzIE9QVElPTlMgZnJvbSAnLi4vb3B0aW9ucy5qc29uJztcbmltcG9ydCB7dHlwZSBBcGlQYXJzZVJlc3BvbnNlLCB0eXBlIEFwaVJlc3BvbnNlLCBwYXJzZVdpa2l0ZXh0fSBmcm9tICcuL3BhcnNlV2lraXRleHQnO1xuaW1wb3J0IHtBcGlSZXRyeUZhaWxFcnJvcn0gZnJvbSAnLi91dGlsL0FwaVJldHJ5RmFpbEVycm9yJztcbmltcG9ydCBSZWFjdCBmcm9tICdleHQuZ2FkZ2V0LlJlYWN0JztcbmltcG9ydCB7YXNzZXJ0fSBmcm9tICcuL3V0aWwvYXNzZXJ0JztcbmltcG9ydCB7Z2V0TWVzc2FnZX0gZnJvbSAnLi9pMThuJztcbmltcG9ydCB7dmlld2VyTWFwfSBmcm9tICcuL2luaXRWaWV3TWFwJztcbmltcG9ydCB7d2luZG93TWFuYWdlcn0gZnJvbSAnLi9pbml0V2luZG93TWFuYWdlcic7XG5cbmNvbnN0IGdldFZpZXdlciA9ICgkYm9keTogSlF1ZXJ5PEhUTUxCb2R5RWxlbWVudD4sIGhhc2g6IHN0cmluZyk6IHR5cGVvZiB2aWV3ZXIgPT4ge1xuXHRpZiAodmlld2VyTWFwLmhhcyhoYXNoKSkge1xuXHRcdGNvbnN0IHN0b3JlZFZpZXdlciA9IHZpZXdlck1hcC5nZXQoaGFzaCk7XG5cdFx0YXNzZXJ0KHN0b3JlZFZpZXdlciwgJ3ZpZXdlcicpO1xuXG5cdFx0cmV0dXJuIHN0b3JlZFZpZXdlcjtcblx0fVxuXG5cdGNvbnN0ICR0YXJnZXRFbGVtZW50OiBKUXVlcnkgPSAkYm9keS5maW5kKGAjbm90ZVRBLSR7aGFzaH1gKTtcblx0aWYgKCEkdGFyZ2V0RWxlbWVudC5sZW5ndGgpIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoYENhbid0IGdldCBFbGVtZW50IFwiI25vdGVUQS0ke2hhc2h9XCIuYCk7XG5cdH1cblxuXHRjb25zdCB7d2dQYWdlTmFtZSwgd2dVc2VyVmFyaWFudH0gPSBtdy5jb25maWcuZ2V0KCk7XG5cblx0Y2xhc3MgTm90ZVRBVmlld2VyIGV4dGVuZHMgT08udWkuUHJvY2Vzc0RpYWxvZyB7XG5cdFx0cHJpdmF0ZSBkYXRhSXNMb2FkZWQ6IGJvb2xlYW47XG5cdFx0cHJpdmF0ZSBleGVjdXRlUHJvbWlzZT86IFJldHVyblR5cGU8dHlwZW9mIHRoaXMuZG9FeGVjdXRlPjtcblx0XHRwcml2YXRlIG11dGF0aW9uT2JzZXJ2ZXI6IE11dGF0aW9uT2JzZXJ2ZXI7XG5cdFx0cHJpdmF0ZSAkcmVhbENvbnRlbnQ6IEpRdWVyeTtcblx0XHRwcml2YXRlICRib2R5OiBKUXVlcnkgfCB1bmRlZmluZWQ7XG5cdFx0cHJpdmF0ZSBzdGF0aWMgbGFzdEVycm9yPzogT08udWkuRXJyb3I7XG5cdFx0cHJpdmF0ZSBzdGF0aWMgbm90ZVRBUGFyc2VUZXh0OiBzdHJpbmc7XG5cblx0XHRwdWJsaWMgY29uc3RydWN0b3IoKSB7XG5cdFx0XHRzdXBlcih7XG5cdFx0XHRcdHNpemU6ICdsYXJnZXInLFxuXHRcdFx0fSk7XG5cblx0XHRcdHRoaXMuZGF0YUlzTG9hZGVkID0gZmFsc2U7XG5cdFx0XHR0aGlzLiRyZWFsQ29udGVudCA9ICQoPGRpdiAvPikgYXMgSlF1ZXJ5O1xuXG5cdFx0XHR0aGlzLm11dGF0aW9uT2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcih0aGlzLnVwZGF0ZVNpemUuYmluZCh0aGlzKSk7XG5cdFx0XHR0aGlzLm11dGF0aW9uT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLiRyZWFsQ29udGVudC5nZXQoMCkgYXMgSFRNTEVsZW1lbnQsIHtcblx0XHRcdFx0Y2hpbGRMaXN0OiB0cnVlLFxuXHRcdFx0XHRzdWJ0cmVlOiB0cnVlLFxuXHRcdFx0fSk7XG5cdFx0fVxuXG5cdFx0cHVibGljIG92ZXJyaWRlIGluaXRpYWxpemUoKTogdGhpcyB7XG5cdFx0XHRzdXBlci5pbml0aWFsaXplKCk7XG5cblx0XHRcdGNvbnN0IHBhbmVsTGF5b3V0OiBPTy51aS5QYW5lbExheW91dCA9IG5ldyBPTy51aS5QYW5lbExheW91dCh7XG5cdFx0XHRcdGV4cGFuZGVkOiBmYWxzZSxcblx0XHRcdFx0cGFkZGVkOiB0cnVlLFxuXHRcdFx0fSk7XG5cblx0XHRcdHRoaXMuJHJlYWxDb250ZW50LmFwcGVuZFRvKHBhbmVsTGF5b3V0LiRlbGVtZW50KTtcblx0XHRcdHBhbmVsTGF5b3V0LiRlbGVtZW50LmFwcGVuZFRvKHRoaXMuJGJvZHkgYXMgSlF1ZXJ5KTtcblxuXHRcdFx0cmV0dXJuIHRoaXM7XG5cdFx0fVxuXG5cdFx0cHVibGljIG92ZXJyaWRlIGdldFNldHVwUHJvY2VzcyhkYXRhOiBPTy51aS5EaWFsb2cuU2V0dXBEYXRhTWFwKTogT08udWkuUHJvY2VzcyB7XG5cdFx0XHRyZXR1cm4gc3VwZXIuZ2V0U2V0dXBQcm9jZXNzKGRhdGEpLm5leHQoKCk6IHZvaWQgPT4ge1xuXHRcdFx0XHR2b2lkIHRoaXMuZG9FeGVjdXRlV3JhcCgpO1xuXHRcdFx0XHR2b2lkIHRoaXMuZXhlY3V0ZUFjdGlvbignbWFpbicpO1xuXHRcdFx0fSk7XG5cdFx0fVxuXG5cdFx0cHVibGljIG92ZXJyaWRlIGdldEFjdGlvblByb2Nlc3MoYWN0aW9uPzogc3RyaW5nKTogT08udWkuUHJvY2VzcyB7XG5cdFx0XHRjb25zdCBpc01haW5BY3Rpb246IGJvb2xlYW4gPSBhY3Rpb24gPT09ICdtYWluJztcblxuXHRcdFx0cmV0dXJuIChcblx0XHRcdFx0c3VwZXJcblx0XHRcdFx0XHQuZ2V0QWN0aW9uUHJvY2VzcyhhY3Rpb24pXG5cdFx0XHRcdFx0Ly8gQHRzLWV4cGVjdC1lcnJvciBUUzcwMzBcblx0XHRcdFx0XHQubmV4dCgoKSA9PiB7XG5cdFx0XHRcdFx0XHRpZiAoaXNNYWluQWN0aW9uKSB7XG5cdFx0XHRcdFx0XHRcdHJldHVybiB0aGlzLmRvRXhlY3V0ZVdyYXAoKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdC5uZXh0KCgpID0+IHtcblx0XHRcdFx0XHRcdGlmIChpc01haW5BY3Rpb24gJiYgTm90ZVRBVmlld2VyLmxhc3RFcnJvcikge1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gTm90ZVRBVmlld2VyLmxhc3RFcnJvcjtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdHJldHVybiBzdXBlci5nZXRBY3Rpb25Qcm9jZXNzKGFjdGlvbikuZXhlY3V0ZSgpO1xuXHRcdFx0XHRcdH0pXG5cdFx0XHQpO1xuXHRcdH1cblxuXHRcdHB1YmxpYyBkZXN0cm95KCk6IHZvaWQge1xuXHRcdFx0dGhpcy5tdXRhdGlvbk9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcblx0XHR9XG5cblx0XHRwcml2YXRlIHN0YXRpYyBnZXROb3RlVEFQYXJzZVRleHQoKTogSlF1ZXJ5LkRlZmVycmVkPEFwaVJlc3BvbnNlPiB7XG5cdFx0XHRpZiAoTm90ZVRBVmlld2VyLm5vdGVUQVBhcnNlVGV4dCkge1xuXHRcdFx0XHRyZXR1cm4gJC5EZWZlcnJlZDxzdHJpbmc+KCkucmVzb2x2ZShOb3RlVEFWaWV3ZXIubm90ZVRBUGFyc2VUZXh0KTtcblx0XHRcdH1cblxuXHRcdFx0Y29uc3QgJG5vdGVUQXRpdGxlOiBKUXVlcnkgPSAkdGFyZ2V0RWxlbWVudC5maW5kKCcubm90ZVRBLXRpdGxlJyk7XG5cdFx0XHRjb25zdCBhY3R1YWxUaXRsZTogc3RyaW5nID0gd2dQYWdlTmFtZS5yZXBsYWNlKC9fL2csICcgJyk7XG5cdFx0XHRsZXQgd2lraXRleHQ6IHN0cmluZyA9ICcnO1xuXG5cdFx0XHRjb25zdCB0aXRsZURlZmVycmVkID0gJC5EZWZlcnJlZDxBcGlSZXNwb25zZT4oKTtcblxuXHRcdFx0aWYgKCRub3RlVEF0aXRsZS5sZW5ndGgpIHtcblx0XHRcdFx0Y29uc3QgdGl0bGVDb252OiBzdHJpbmcgfCB1bmRlZmluZWQgPSAkbm90ZVRBdGl0bGUuYXR0cignZGF0YS1ub3RldGEtY29kZScpO1xuXHRcdFx0XHRhc3NlcnQodGl0bGVDb252LCAndGl0bGVDb252Jyk7XG5cblx0XHRcdFx0bGV0IHRpdGxlRGVzYzogc3RyaW5nIHwgdW5kZWZpbmVkID0gJG5vdGVUQXRpdGxlLmF0dHIoJ2RhdGEtbm90ZXRhLWRlc2MnKTtcblx0XHRcdFx0aWYgKHRpdGxlRGVzYykge1xuXHRcdFx0XHRcdHRpdGxlRGVzYyA9IGDvvIgke3RpdGxlRGVzY33vvIlgO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHRpdGxlRGVzYyA9ICcnO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0d2lraXRleHQgKz0gYDxzcGFuIHN0eWxlPVwiZmxvYXQ6cmlnaHRcIj57e2VkaXR8JHthY3R1YWxUaXRsZX18c2VjdGlvbj0wfX08L3NwYW4+XFxuYDtcblx0XHRcdFx0d2lraXRleHQgKz0gJzsg5pys5paH5L2/55SoW1tIZWxwOuWtl+ivjei9rOaNouWkhOeQhnzmoIfpopjmiYvlt6XovazmjaJdXVxcbic7XG5cdFx0XHRcdHdpa2l0ZXh0ICs9IGAqIOi9rOaNouagh+mimOS4uu+8mi17RHwke3RpdGxlQ29udn19LSR7dGl0bGVEZXNjfVxcbmA7XG5cdFx0XHRcdHdpa2l0ZXh0ICs9IGAqIOWunumZheagh+mimOS4uu+8mi17Unwke2FjdHVhbFRpdGxlfX0t77yb5b2T5YmN5pi+56S65Li677yaLXt8JHt0aXRsZUNvbnZ9fS1cXG5gO1xuXG5cdFx0XHRcdHZvaWQgdGl0bGVEZWZlcnJlZC5yZXNvbHZlKCk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRwYXJzZVdpa2l0ZXh0KGB7e25vdGVUQS9tdWx0aXRpdGxlfCR7YWN0dWFsVGl0bGV9fX1gLCB7XG5cdFx0XHRcdFx0dGl0bGU6IGFjdHVhbFRpdGxlLFxuXHRcdFx0XHRcdHZhcmlhbnQ6ICd6aCcsXG5cdFx0XHRcdH0pXG5cdFx0XHRcdFx0LnRoZW4oKHJlc3VsdEh0bWw6IEFwaVJlc3BvbnNlKTogdm9pZCA9PiB7XG5cdFx0XHRcdFx0XHRjb25zdCAkbXVsdGlUaXRsZTogSlF1ZXJ5ID0gJCgkLnBhcnNlSFRNTChyZXN1bHRIdG1sIGFzIEFwaVBhcnNlUmVzcG9uc2UpKS5maW5kKFxuXHRcdFx0XHRcdFx0XHQnLm5vdGVUQS1tdWx0aXRpdGxlJ1xuXHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRcdGlmICgkbXVsdGlUaXRsZS5sZW5ndGgpIHtcblx0XHRcdFx0XHRcdFx0d2lraXRleHQgKz0gJzsg5pys5paHW1tIZWxwOuWtl+ivjei9rOaNouWkhOeQhnzmoIfpopjlj6/og73nu4/ov4fovazmjaJdXVxcbiog6L2s5o2i5qCH6aKY5Li677yaJztcblxuXHRcdFx0XHRcdFx0XHRjb25zdCB0ZXh0VmFyaWFudDogUmVjb3JkPHN0cmluZywgc3RyaW5nW10+ID0ge307XG5cdFx0XHRcdFx0XHRcdGNvbnN0IHZhcmlhbnRUZXh0OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBudWxsPiA9IHt9O1xuXG5cdFx0XHRcdFx0XHRcdGZvciAoY29uc3QgZWxlbWVudCBvZiAkbXVsdGlUaXRsZS5jaGlsZHJlbigpKSB7XG5cdFx0XHRcdFx0XHRcdFx0Y29uc3QgJGVsZW1lbnQgPSAkKGVsZW1lbnQpO1xuXG5cdFx0XHRcdFx0XHRcdFx0Y29uc3QgdmFyaWFudDogc3RyaW5nIHwgdW5kZWZpbmVkID0gJGVsZW1lbnQuYXR0cignZGF0YS1ub3RldGEtbXVsdGl0aXRsZS12YXJpYW50Jyk7XG5cdFx0XHRcdFx0XHRcdFx0YXNzZXJ0KHZhcmlhbnQsICd2YXJpYW50Jyk7XG5cblx0XHRcdFx0XHRcdFx0XHRjb25zdCB0ZXh0OiBzdHJpbmcgPSAkZWxlbWVudC50ZXh0KCkudHJpbSgpO1xuXHRcdFx0XHRcdFx0XHRcdHZhcmlhbnRUZXh0W3ZhcmlhbnRdID0gdGV4dDtcblxuXHRcdFx0XHRcdFx0XHRcdGNvbnN0IHRleHRWYXJpYW50QXJyYXk6IHN0cmluZ1tdIHwgdW5kZWZpbmVkID0gdGV4dFZhcmlhbnRbdGV4dF07XG5cdFx0XHRcdFx0XHRcdFx0aWYgKHRleHRWYXJpYW50QXJyYXkpIHtcblx0XHRcdFx0XHRcdFx0XHRcdHRleHRWYXJpYW50QXJyYXlbdGV4dFZhcmlhbnRBcnJheS5sZW5ndGhdID0gdmFyaWFudDtcblx0XHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdFx0dGV4dFZhcmlhbnRbdGV4dF0gPSBbdmFyaWFudF07XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdFx0Y29uc3QgdGl0bGVDb252ZXJ0ZWQ6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQgPSB2YXJpYW50VGV4dFt3Z1VzZXJWYXJpYW50IGFzIHN0cmluZ107XG5cblx0XHRcdFx0XHRcdFx0Y29uc3QgbXVsdGlUaXRsZTogc3RyaW5nW10gPSBbXTtcblx0XHRcdFx0XHRcdFx0Zm9yIChjb25zdCB0ZXh0IG9mIE9iamVjdC52YWx1ZXModmFyaWFudFRleHQpKSB7XG5cdFx0XHRcdFx0XHRcdFx0aWYgKHRleHQgPT09IG51bGwgfHwgdGV4dCA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRjb250aW51ZTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdFx0XHRjb25zdCB2YXJpYW50czogc3RyaW5nW10gfCB1bmRlZmluZWQgPSB0ZXh0VmFyaWFudFt0ZXh0XTtcblx0XHRcdFx0XHRcdFx0XHRpZiAoIXZhcmlhbnRzKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRjb250aW51ZTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdFx0XHRmb3IgKGNvbnN0IHZhcmlhbnQgb2YgdmFyaWFudHMpIHtcblx0XHRcdFx0XHRcdFx0XHRcdHZhcmlhbnRUZXh0W3ZhcmlhbnRdID0gbnVsbDtcblx0XHRcdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdFx0XHRjb25zdCB2YXJpYW50c05hbWU6IHN0cmluZyA9IHZhcmlhbnRzXG5cdFx0XHRcdFx0XHRcdFx0XHQubWFwKCh2YXJpYW50OiBzdHJpbmcpOiBzdHJpbmcgPT4gYC17Unx7e01lZGlhV2lraTpWYXJpYW50bmFtZS0ke3ZhcmlhbnR9fX19LWApXG5cdFx0XHRcdFx0XHRcdFx0XHQuam9pbign44CBJyk7XG5cdFx0XHRcdFx0XHRcdFx0bXVsdGlUaXRsZVttdWx0aVRpdGxlLmxlbmd0aF0gPSBgJHt2YXJpYW50c05hbWV977yaLXtSfCR7dGV4dH19LWA7XG5cdFx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0XHRjb25zdCBzdWJJdGVtU2VwYXJhdG9yOiBzdHJpbmcgPSAnXFxuKiogJztcblx0XHRcdFx0XHRcdFx0d2lraXRleHQgKz0gYCR7c3ViSXRlbVNlcGFyYXRvcn0ke211bHRpVGl0bGUuam9pbihzdWJJdGVtU2VwYXJhdG9yKX1gO1xuXHRcdFx0XHRcdFx0XHR3aWtpdGV4dCArPSBgXFxuKiDlrp7pmYXmoIfpopjkuLrvvJote1J8JHthY3R1YWxUaXRsZX19Le+8m+W9k+WJjeaYvuekuuS4uu+8mi17Unwke3RpdGxlQ29udmVydGVkfX0tXFxuYDtcblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0dm9pZCB0aXRsZURlZmVycmVkLnJlc29sdmUoKTtcblx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdC5jYXRjaCgoZXJyb3I6IEFwaVJldHJ5RmFpbEVycm9yKTogdm9pZCA9PiB7XG5cdFx0XHRcdFx0XHR2b2lkIHRpdGxlRGVmZXJyZWQucmVqZWN0KGVycm9yKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdH1cblxuXHRcdFx0Y29uc3QgZGVmZXJyZWQgPSAkLkRlZmVycmVkPEFwaVJlc3BvbnNlPigpO1xuXG5cdFx0XHR0aXRsZURlZmVycmVkXG5cdFx0XHRcdC50aGVuKCgpOiB2b2lkID0+IHtcblx0XHRcdFx0XHRjb25zdCAkbm90ZVRBZ3JvdXBzOiBKUXVlcnkgPSAkdGFyZ2V0RWxlbWVudC5maW5kKCcubm90ZVRBLWdyb3VwID4gKltkYXRhLW5vdGV0YS1ncm91cF0nKTtcblx0XHRcdFx0XHRmb3IgKGNvbnN0IGVsZW1lbnQgb2YgJG5vdGVUQWdyb3Vwcykge1xuXHRcdFx0XHRcdFx0Y29uc3QgJGVsZW1lbnQ6IEpRdWVyeSA9ICQoZWxlbWVudCk7XG5cdFx0XHRcdFx0XHRzd2l0Y2ggKCRlbGVtZW50LmF0dHIoJ2RhdGEtbm90ZXRhLWdyb3VwLXNvdXJjZScpKSB7XG5cdFx0XHRcdFx0XHRcdGNhc2UgJ3RlbXBsYXRlJzpcblx0XHRcdFx0XHRcdFx0XHR3aWtpdGV4dCArPSBge3tDR3JvdXAvJHskZWxlbWVudC5hdHRyKCdkYXRhLW5vdGV0YS1ncm91cCcpfX19XFxuYDtcblx0XHRcdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRcdFx0Y2FzZSAnbW9kdWxlJzpcblx0XHRcdFx0XHRcdFx0XHR3aWtpdGV4dCArPSBge3sjaW52b2tlOkNHcm91cFZpZXdlcnxkaWFsb2d8JHskZWxlbWVudC5hdHRyKCdkYXRhLW5vdGV0YS1ncm91cCcpfX19XFxuYDtcblx0XHRcdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRcdFx0Y2FzZSAnbm9uZSc6XG5cdFx0XHRcdFx0XHRcdFx0d2lraXRleHQgKz0gYDsg5pys5paH5L2/55So55qE5YWs5YWx6L2s5o2i57uE4oCcJHskZWxlbWVudC5hdHRyKCdkYXRhLW5vdGV0YS1ncm91cCcpfeKAneWwmuacquWIm+W7ulxcbmA7XG5cdFx0XHRcdFx0XHRcdFx0d2lraXRleHQgKz0gYCoge3tlZGl0fE1vZHVsZTpDR3JvdXAvJHskZWxlbWVudC5hdHRyKCdkYXRhLW5vdGV0YS1ncm91cCcpfXzliJvlu7rlhazlhbHovazmjaLnu4TigJwkeyRlbGVtZW50LmF0dHIoJ2RhdGEtbm90ZXRhLWdyb3VwJyl94oCdfX1cXG5gO1xuXHRcdFx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHRcdFx0XHRcdHdpa2l0ZXh0ICs9IGA7IOacquefpeWFrOWFsei9rOaNoue7hOKAnCR7JGVsZW1lbnQuYXR0cignZGF0YS1ub3RldGEtZ3JvdXAnKX3igJ3mnaXmupDigJwkeyRlbGVtZW50LmF0dHIoJ2RhdGEtbm90ZXRhLWdyb3VwLXNvdXJjZScpfeKAnVxcbmA7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0Y29uc3QgJG5vdGVUQWxvY2FsOiBKUXVlcnkgPSAkdGFyZ2V0RWxlbWVudC5maW5kKCcubm90ZVRBLWxvY2FsJyk7XG5cdFx0XHRcdFx0aWYgKCRub3RlVEFsb2NhbC5sZW5ndGgpIHtcblx0XHRcdFx0XHRcdHdpa2l0ZXh0ICs9IGA8c3BhbiBzdHlsZT1cImZsb2F0OnJpZ2h0XCI+e3tlZGl0fCR7YWN0dWFsVGl0bGV9fHNlY3Rpb249MH19PC9zcGFuPlxcbmA7XG5cdFx0XHRcdFx0XHR3aWtpdGV4dCArPSAnOyDmnKzmlofkvb/nlKhbW0hlbHA65a2X6K+N6L2s5o2i5aSE55CGfOWFqOaWh+aJi+W3pei9rOaNol1dXFxuJztcblxuXHRcdFx0XHRcdFx0Y29uc3QgJG5vdGVUQWxvY2FscyA9ICRub3RlVEFsb2NhbC5jaGlsZHJlbignKltkYXRhLW5vdGV0YS1jb2RlXScpO1xuXHRcdFx0XHRcdFx0Zm9yIChjb25zdCBlbGVtZW50IG9mICRub3RlVEFsb2NhbHMpIHtcblx0XHRcdFx0XHRcdFx0Y29uc3QgJGVsZW1lbnQ6IEpRdWVyeSA9ICQoZWxlbWVudCk7XG5cblx0XHRcdFx0XHRcdFx0bGV0IGxvY2FsRGVzYzogc3RyaW5nIHwgdW5kZWZpbmVkID0gJGVsZW1lbnQuYXR0cignZGF0YS1ub3RldGEtZGVzYycpO1xuXHRcdFx0XHRcdFx0XHRpZiAobG9jYWxEZXNjKSB7XG5cdFx0XHRcdFx0XHRcdFx0bG9jYWxEZXNjID0gYO+8iCR7bG9jYWxEZXNjfe+8iWA7XG5cdFx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0bG9jYWxEZXNjID0gJyc7XG5cdFx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0XHRjb25zdCBsb2NhbENvbnY6IHN0cmluZyB8IHVuZGVmaW5lZCA9ICRlbGVtZW50LmF0dHIoJ2RhdGEtbm90ZXRhLWNvZGUnKTtcblx0XHRcdFx0XHRcdFx0d2lraXRleHQgKz0gYCogLXtEfCR7bG9jYWxDb252fX0tJHtsb2NhbERlc2N95b2T5YmN5pi+56S65Li677yaLXske2xvY2FsQ29udn19LVxcbmA7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0d2lraXRleHQgKz0gJ3t7bm90ZVRBL2Zvb3Rlcn19XFxuJztcblxuXHRcdFx0XHRcdE5vdGVUQVZpZXdlci5ub3RlVEFQYXJzZVRleHQgPSB3aWtpdGV4dDtcblxuXHRcdFx0XHRcdHZvaWQgZGVmZXJyZWQucmVzb2x2ZSh3aWtpdGV4dCk7XG5cdFx0XHRcdH0pXG5cdFx0XHRcdC5jYXRjaCgoZXJyb3I6IEFwaVJldHJ5RmFpbEVycm9yKTogdm9pZCA9PiB7XG5cdFx0XHRcdFx0dm9pZCBkZWZlcnJlZC5yZWplY3QoZXJyb3IpO1xuXHRcdFx0XHR9KTtcblxuXHRcdFx0cmV0dXJuIGRlZmVycmVkO1xuXHRcdH1cblxuXHRcdHByaXZhdGUgZG9FeGVjdXRlKCkge1xuXHRcdFx0aWYgKHRoaXMuZGF0YUlzTG9hZGVkKSB7XG5cdFx0XHRcdHJldHVybiAkLkRlZmVycmVkPEFwaVJlc3BvbnNlPigpLnJlc29sdmUoKTtcblx0XHRcdH1cblxuXHRcdFx0dGhpcy4kcmVhbENvbnRlbnQuZW1wdHkoKS5hcHBlbmQoPHA+e2dldE1lc3NhZ2UoJ0xvYWRpbmcnKX08L3A+KTtcblxuXHRcdFx0cmV0dXJuIE5vdGVUQVZpZXdlci5nZXROb3RlVEFQYXJzZVRleHQoKVxuXHRcdFx0XHQudGhlbigod2lraXRleHQ6IEFwaVJlc3BvbnNlKSA9PlxuXHRcdFx0XHRcdHBhcnNlV2lraXRleHQod2lraXRleHQgYXMgQXBpUGFyc2VSZXNwb25zZSwge1xuXHRcdFx0XHRcdFx0dGl0bGU6ICdUZW1wbGF0ZTpDR3JvdXAvLScsXG5cdFx0XHRcdFx0XHR2YXJpYW50OiB3Z1VzZXJWYXJpYW50IGFzIHN0cmluZyxcblx0XHRcdFx0XHR9KVxuXHRcdFx0XHQpXG5cdFx0XHRcdC50aGVuKChwYXJzZWRIdG1sOiBBcGlSZXNwb25zZSk6IHZvaWQgPT4ge1xuXHRcdFx0XHRcdC8vIFRoZSBmb2xsb3dpbmcgY2xhc3NlcyBhcmUgdXNlZCBoZXJlOlxuXHRcdFx0XHRcdC8vICogc2VlIGNvbnN0YW50LnRzXG5cdFx0XHRcdFx0Ly8gKiBmb3IgbW9yZSBpbmZvcm1hdGlvblxuXHRcdFx0XHRcdHRoaXMuJHJlYWxDb250ZW50XG5cdFx0XHRcdFx0XHQuZW1wdHkoKVxuXHRcdFx0XHRcdFx0Lmh0bWwocGFyc2VkSHRtbCBhcyBBcGlQYXJzZVJlc3BvbnNlKVxuXHRcdFx0XHRcdFx0LmFkZENsYXNzKGAke09QVElPTlMucG9ydGxldENsYXNzfS1vdXRwdXRgKTtcblxuXHRcdFx0XHRcdChcblx0XHRcdFx0XHRcdHRoaXMuJHJlYWxDb250ZW50LmZpbmQoJy5tdy1jb2xsYXBzaWJsZScpIGFzIEpRdWVyeSAmIHttYWtlQ29sbGFwc2libGU6ICgpID0+IEpRdWVyeX1cblx0XHRcdFx0XHQpLm1ha2VDb2xsYXBzaWJsZSgpO1xuXG5cdFx0XHRcdFx0dGhpcy51cGRhdGVTaXplKCk7XG5cdFx0XHRcdFx0dGhpcy5kYXRhSXNMb2FkZWQgPSB0cnVlO1xuXHRcdFx0XHR9KVxuXHRcdFx0XHQuY2F0Y2goKGVycm9yOiBBcGlSZXRyeUZhaWxFcnJvciB8IEVycm9yIHwgc3RyaW5nKTogdm9pZCA9PiB7XG5cdFx0XHRcdFx0aWYgKGVycm9yIGluc3RhbmNlb2YgQXBpUmV0cnlGYWlsRXJyb3IpIHtcblx0XHRcdFx0XHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvb25seS10aHJvdy1lcnJvclxuXHRcdFx0XHRcdFx0dGhyb3cgbmV3IE9PLnVpLkVycm9yKGVycm9yLnRvSlF1ZXJ5KCksIHtcblx0XHRcdFx0XHRcdFx0cmVjb3ZlcmFibGU6IHRydWUsXG5cdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9vbmx5LXRocm93LWVycm9yXG5cdFx0XHRcdFx0XHR0aHJvdyBuZXcgT08udWkuRXJyb3IoU3RyaW5nKGVycm9yKSwge1xuXHRcdFx0XHRcdFx0XHRyZWNvdmVyYWJsZTogZmFsc2UsXG5cdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pO1xuXHRcdH1cblxuXHRcdHByaXZhdGUgZG9FeGVjdXRlV3JhcCgpIHtcblx0XHRcdGlmICh0aGlzLmV4ZWN1dGVQcm9taXNlID09PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0dGhpcy5leGVjdXRlUHJvbWlzZSA9IHRoaXMuZG9FeGVjdXRlKCk7XG5cdFx0XHRcdGRlbGV0ZSBOb3RlVEFWaWV3ZXIubGFzdEVycm9yO1xuXG5cdFx0XHRcdGNvbnN0IGV4ZWN1dGVEZWZlcnJlZCA9ICQuRGVmZXJyZWQ8QXBpUmVzcG9uc2U+KCk7XG5cdFx0XHRcdHZvaWQgKHRoaXMuZXhlY3V0ZVByb21pc2UgYXMgSlF1ZXJ5LlByb21pc2U8QXBpUmVzcG9uc2U+KVxuXHRcdFx0XHRcdC50aGVuKChyZXNwb25zZTogQXBpUmVzcG9uc2UpOiB2b2lkID0+IHtcblx0XHRcdFx0XHRcdHZvaWQgZXhlY3V0ZURlZmVycmVkLnJlc29sdmUocmVzcG9uc2UpO1xuXHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0LmNhdGNoKChlcnJvcjogRXJyb3IgfCBPTy51aS5FcnJvciB8IHN0cmluZyk6IHZvaWQgPT4ge1xuXHRcdFx0XHRcdFx0aWYgKGVycm9yIGluc3RhbmNlb2YgT08udWkuRXJyb3IpIHtcblx0XHRcdFx0XHRcdFx0Tm90ZVRBVmlld2VyLmxhc3RFcnJvciA9IGVycm9yO1xuXHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0dm9pZCBleGVjdXRlRGVmZXJyZWQucmVqZWN0KGVycm9yKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdC5hbHdheXMoKCk6IHZvaWQgPT4ge1xuXHRcdFx0XHRcdFx0ZGVsZXRlIHRoaXMuZXhlY3V0ZVByb21pc2U7XG5cdFx0XHRcdFx0fSk7XG5cblx0XHRcdFx0cmV0dXJuIGV4ZWN1dGVEZWZlcnJlZDtcblx0XHRcdH1cblxuXHRcdFx0Y29uc3QgZGVmZXJyZWQgPSAkLkRlZmVycmVkPEFwaVJlc3BvbnNlPigpO1xuXHRcdFx0dm9pZCAodGhpcy5leGVjdXRlUHJvbWlzZSBhcyBKUXVlcnkuUHJvbWlzZTxBcGlSZXNwb25zZT4pXG5cdFx0XHRcdC50aGVuKChyZXNwb25zZTogQXBpUmVzcG9uc2UpOiB2b2lkID0+IHtcblx0XHRcdFx0XHR2b2lkIGRlZmVycmVkLnJlc29sdmUocmVzcG9uc2UpO1xuXHRcdFx0XHR9KVxuXHRcdFx0XHQuY2F0Y2goKGVycm9yOiBFcnJvciB8IE9PLnVpLkVycm9yIHwgc3RyaW5nKTogdm9pZCA9PiB7XG5cdFx0XHRcdFx0aWYgKGVycm9yIGluc3RhbmNlb2YgT08udWkuRXJyb3IpIHtcblx0XHRcdFx0XHRcdE5vdGVUQVZpZXdlci5sYXN0RXJyb3IgPSBlcnJvcjtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0dm9pZCBkZWZlcnJlZC5yZWplY3QoZXJyb3IpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSlcblx0XHRcdFx0LmFsd2F5cygoKTogdm9pZCA9PiB7XG5cdFx0XHRcdFx0ZGVsZXRlIHRoaXMuZXhlY3V0ZVByb21pc2U7XG5cdFx0XHRcdH0pO1xuXG5cdFx0XHRyZXR1cm4gZGVmZXJyZWQ7XG5cdFx0fVxuXHR9XG5cblx0Tm90ZVRBVmlld2VyLnN0YXRpYyA9IHtcblx0XHQuLi5PTy51aS5Qcm9jZXNzRGlhbG9nLnN0YXRpYyxcblx0fTtcblx0Tm90ZVRBVmlld2VyLnN0YXRpYy5uYW1lID0gYE5vdGVUQVZpZXdlci0ke2hhc2h9YDtcblx0Tm90ZVRBVmlld2VyLnN0YXRpYy50aXRsZSA9IGdldE1lc3NhZ2UoJ1RpdGxlJyk7XG5cdE5vdGVUQVZpZXdlci5zdGF0aWMuYWN0aW9ucyA9IFtcblx0XHR7XG5cdFx0XHRsYWJlbDogbXcubXNnKCdvb3VpLWRpYWxvZy1wcm9jZXNzLWRpc21pc3MnKSxcblx0XHRcdGZsYWdzOiAnc2FmZScsXG5cdFx0fSxcblx0XTtcblxuXHRjb25zdCB2aWV3ZXI6IE5vdGVUQVZpZXdlciA9IG5ldyBOb3RlVEFWaWV3ZXIoKTtcblx0d2luZG93TWFuYWdlci5hZGRXaW5kb3dzKFt2aWV3ZXJdKTtcblx0dmlld2VyTWFwLnNldChoYXNoLCB2aWV3ZXIpO1xuXG5cdHJldHVybiB2aWV3ZXI7XG59O1xuXG5jb25zdCByZXNldEFsbFZpZXdlciA9ICgpOiB2b2lkID0+IHtcblx0Zm9yIChjb25zdCB2aWV3ZXIgb2Ygdmlld2VyTWFwLnZhbHVlcygpKSB7XG5cdFx0dmlld2VyLmRlc3Ryb3koKTtcblx0fVxuXHR2aWV3ZXJNYXAuY2xlYXIoKTtcblx0dm9pZCB3aW5kb3dNYW5hZ2VyLmNsZWFyV2luZG93cygpO1xufTtcblxuZXhwb3J0IHtnZXRWaWV3ZXIsIHJlc2V0QWxsVmlld2VyfTtcbiIsICIvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZnVuYy1zdHlsZVxuZnVuY3Rpb24gYXNzZXJ0PFQ+KHZhbHVlOiBUIHwgdW5kZWZpbmVkLCB2YWx1ZU5hbWU6IHN0cmluZyk6IGFzc2VydHMgdmFsdWUge1xuXHRpZiAoIXZhbHVlKSB7XG5cdFx0dGhyb3cgbmV3IEVycm9yKGBBc3NlcnQgRmFpbCwgJHt2YWx1ZU5hbWV9ID09IGZhbHNlLmApO1xuXHR9XG59XG5cbmV4cG9ydCB7YXNzZXJ0fTtcbiIsICJpbXBvcnQge3R5cGUgZ2V0Vmlld2VyfSBmcm9tICcuL3ZpZXdlcic7XG5cbmNvbnN0IHZpZXdlck1hcCA9IG5ldyBNYXA8c3RyaW5nLCBSZXR1cm5UeXBlPHR5cGVvZiBnZXRWaWV3ZXI+PigpO1xuXG5leHBvcnQge3ZpZXdlck1hcH07XG4iLCAiY29uc3QgaW5pdFdpbmRvd01hbmFnZXIgPSAoKTogT08udWkuV2luZG93TWFuYWdlciA9PiB7XG5cdHJldHVybiBuZXcgT08udWkuV2luZG93TWFuYWdlcigpO1xufTtcblxuY29uc3Qgd2luZG93TWFuYWdlcjogT08udWkuV2luZG93TWFuYWdlciA9IGluaXRXaW5kb3dNYW5hZ2VyKCk7XG5cbmV4cG9ydCB7d2luZG93TWFuYWdlcn07XG4iLCAiaW1wb3J0ICogYXMgT1BUSU9OUyBmcm9tICcuLi9vcHRpb25zLmpzb24nO1xuXG5sZXQgcG9ydGxldElkOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbmNvbnN0IGluaXRHbG9iYWxNZXRob2RzID0gKCRib2R5OiBKUXVlcnk8SFRNTEJvZHlFbGVtZW50Pik6IHR5cGVvZiBnbG9iYWxNZXRob2RzID0+IHtcblx0Y29uc3QgZ2xvYmFsTWV0aG9kczoge1xuXHRcdGluaXQoKTogdm9pZDtcblx0XHRkZUluaXQoKTogdm9pZDtcblx0fSA9IHtcblx0XHRpbml0KCkge1xuXHRcdFx0LyogZmFrZSAqL1xuXHRcdH0sXG5cdFx0ZGVJbml0KCkge1xuXHRcdFx0LyogZmFrZSAqL1xuXHRcdH0sXG5cdH07XG5cblx0Y29uc3Qge3NraW59ID0gbXcuY29uZmlnLmdldCgpO1xuXG5cdGlmIChza2luID09PSAndmVjdG9yJykge1xuXHRcdHBvcnRsZXRJZCA9ICdwLW5vdGVUQSc7XG5cblx0XHRsZXQgJG5vdGVUQVRhYjogSlF1ZXJ5IHwgdW5kZWZpbmVkO1xuXHRcdGdsb2JhbE1ldGhvZHMuaW5pdCA9ICgpOiB2b2lkID0+IHtcblx0XHRcdGlmICgkbm90ZVRBVGFiIHx8ICFwb3J0bGV0SWQpIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdFx0Y29uc3Qgbm90ZVRBVGFiOiBIVE1MRWxlbWVudCB8IG51bGwgPSBtdy51dGlsLmFkZFBvcnRsZXQocG9ydGxldElkKTtcblx0XHRcdGlmICghbm90ZVRBVGFiKSB7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblx0XHRcdCRub3RlVEFUYWIgPSAkKG5vdGVUQVRhYik7XG5cdFx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWVkaWF3aWtpL2NsYXNzLWRvY1xuXHRcdFx0JG5vdGVUQVRhYlxuXHRcdFx0XHQucmVtb3ZlQ2xhc3MoYG13LXBvcnRsZXQtJHtwb3J0bGV0SWR9YClcblx0XHRcdFx0LmFkZENsYXNzKFtgbXctcG9ydGxldC0ke3BvcnRsZXRJZC5yZXBsYWNlKCdwLScsICcnKX1gLCAndmVjdG9yLW1lbnUtdGFicycsICd2ZWN0b3ItbWVudS10YWJzLWxlZ2FjeSddKTtcblx0XHRcdCRib2R5LmZpbmQoJyNwLXZhcmlhbnRzJykuYWZ0ZXIoJG5vdGVUQVRhYik7XG5cdFx0fTtcblx0XHRnbG9iYWxNZXRob2RzLmRlSW5pdCA9ICgpOiB2b2lkID0+IHtcblx0XHRcdGlmICghJG5vdGVUQVRhYikge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cdFx0XHQkbm90ZVRBVGFiLmZpbmQoJ3VsJykuZW1wdHkoKTtcblx0XHRcdGlmIChwb3J0bGV0SWQpIHtcblx0XHRcdFx0bXcudXRpbC5oaWRlUG9ydGxldChwb3J0bGV0SWQpO1xuXHRcdFx0fVxuXHRcdH07XG5cdH0gZWxzZSBpZiAoc2tpbiA9PT0gJ3ZlY3Rvci0yMDIyJykge1xuXHRcdHBvcnRsZXRJZCA9ICdwLWFzc29jaWF0ZWQtcGFnZXMnO1xuXG5cdFx0Z2xvYmFsTWV0aG9kcy5kZUluaXQgPSAoKTogdm9pZCA9PiB7XG5cdFx0XHQkYm9keS5maW5kKGAuJHtPUFRJT05TLnBvcnRsZXRDbGFzc31gKS5yZW1vdmUoKTtcblx0XHR9O1xuXHR9XG5cblx0cmV0dXJuIGdsb2JhbE1ldGhvZHM7XG59O1xuXG5leHBvcnQge3BvcnRsZXRJZCwgaW5pdEdsb2JhbE1ldGhvZHN9O1xuIiwgImltcG9ydCB7Z2V0Vmlld2VyLCByZXNldEFsbFZpZXdlcn0gZnJvbSAnLi9tb2R1bGVzL3ZpZXdlcic7XG5pbXBvcnQge2luaXRHbG9iYWxNZXRob2RzLCBwb3J0bGV0SWR9IGZyb20gJy4vbW9kdWxlcy9pbml0R2xvYmFsTWV0aG9kcyc7XG5pbXBvcnQge2NoZWNrQTExeUNvbmZpcm1LZXl9IGZyb20gJ2V4dC5nYWRnZXQuVXRpbCc7XG5pbXBvcnQge2dlbmVyYXRlUG9ydGxldExpbmt9IGZyb20gJy4vbW9kdWxlcy91dGlsL2dlbmVyYXRlUG9ydGxldExpbmsnO1xuaW1wb3J0IHt3aW5kb3dNYW5hZ2VyfSBmcm9tICcuL21vZHVsZXMvaW5pdFdpbmRvd01hbmFnZXInO1xuXG5sZXQgaXNJbml0OiBib29sZWFuID0gZmFsc2U7XG5cbm13Lmhvb2soJ3dpa2lwYWdlLmNvbnRlbnQnKS5hZGQoZnVuY3Rpb24gbm90ZVRBKCRjb250ZW50KTogdm9pZCB7XG5cdGNvbnN0ICRib2R5OiBKUXVlcnk8SFRNTEJvZHlFbGVtZW50PiA9ICRjb250ZW50LnBhcmVudHMoJ2JvZHknKTtcblxuXHRpZiAoIWlzSW5pdCkge1xuXHRcdGlzSW5pdCA9IHRydWU7XG5cdFx0d2luZG93TWFuYWdlci4kZWxlbWVudC5hcHBlbmRUbygkYm9keSk7XG5cdH1cblxuXHRyZXNldEFsbFZpZXdlcigpO1xuXG5cdGNvbnN0IGdsb2JhbE1ldGhvZHMgPSBpbml0R2xvYmFsTWV0aG9kcygkYm9keSk7XG5cdGdsb2JhbE1ldGhvZHMuZGVJbml0KCk7XG5cdGdsb2JhbE1ldGhvZHMuaW5pdCgpO1xuXG5cdGZvciAoY29uc3QgZWxlbWVudCBvZiAkYm9keS5maW5kKCcubXctaW5kaWNhdG9yW2lkXj1tdy1pbmRpY2F0b3Itbm90ZVRBLV0nKSkge1xuXHRcdGNvbnN0IGhhc2g6IHN0cmluZyA9IGVsZW1lbnQuaWQucmVwbGFjZSgvXm13LWluZGljYXRvci1ub3RlVEEtLywgJycpO1xuXG5cdFx0bGV0ICRlbGVtZW50OiBKUXVlcnkgPSAkKGVsZW1lbnQpO1xuXHRcdGlmIChwb3J0bGV0SWQpIHtcblx0XHRcdCRlbGVtZW50LmhpZGUoKTtcblxuXHRcdFx0Y29uc3QgJHBvcnRsZXRMaW5rOiBKUXVlcnkgfCB1bmRlZmluZWQgPSBnZW5lcmF0ZVBvcnRsZXRMaW5rKGhhc2gpO1xuXHRcdFx0aWYgKCEkcG9ydGxldExpbmspIHtcblx0XHRcdFx0Y29udGludWU7XG5cdFx0XHR9XG5cblx0XHRcdCRlbGVtZW50ID0gJHBvcnRsZXRMaW5rO1xuXHRcdH1cblxuXHRcdGNvbnN0IG9wZW5lckxpc3RlbmVyID0gKGV2ZW50OiBKUXVlcnkuQ2xpY2tFdmVudCB8IEpRdWVyeS5LZXlEb3duRXZlbnQpOiB2b2lkID0+IHtcblx0XHRcdGlmICghY2hlY2tBMTF5Q29uZmlybUtleShldmVudCkpIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXG5cdFx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXHRcdFx0Z2V0Vmlld2VyKCRib2R5LCBoYXNoKS5vcGVuKCk7XG5cdFx0fTtcblx0XHQkZWxlbWVudC5vbignY2xpY2snLCBvcGVuZXJMaXN0ZW5lcik7XG5cdFx0JGVsZW1lbnQub24oJ2tleWRvd24nLCBvcGVuZXJMaXN0ZW5lcik7XG5cdH1cbn0pO1xuIiwgImltcG9ydCAqIGFzIE9QVElPTlMgZnJvbSAnLi4vLi4vb3B0aW9ucy5qc29uJztcbmltcG9ydCBSZWFjdCBmcm9tICdleHQuZ2FkZ2V0LlJlYWN0JztcbmltcG9ydCB7cG9ydGxldElkfSBmcm9tICcuLi9pbml0R2xvYmFsTWV0aG9kcyc7XG5cbmNvbnN0IGdlbmVyYXRlUG9ydGxldExpbmsgPSAoaGFzaDogc3RyaW5nKTogSlF1ZXJ5IHwgdW5kZWZpbmVkID0+IHtcblx0aWYgKCFwb3J0bGV0SWQpIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRjb25zdCBwb3J0bGV0TGluazogSFRNTExJRWxlbWVudCB8IG51bGwgPSBtdy51dGlsLmFkZFBvcnRsZXRMaW5rKHBvcnRsZXRJZCwgJyMnLCAn5rGJL+a8oicsIGBjYS1ub3RlVEEtJHtoYXNofWApO1xuXHRpZiAoIXBvcnRsZXRMaW5rKSB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cdHBvcnRsZXRMaW5rLmNsYXNzTGlzdC5hZGQoJ2NhLW5vdGVUQScpO1xuXG5cdC8vIFRoZSBmb2xsb3dpbmcgY2xhc3NlcyBhcmUgdXNlZCBoZXJlOlxuXHQvLyAqIHNlZSBjb25zdGFudC50c1xuXHQvLyAqIGZvciBtb3JlIGluZm9ybWF0aW9uXG5cdGNvbnN0ICRwb3J0bGV0TGluazogSlF1ZXJ5ID0gJChwb3J0bGV0TGluaykuYWRkQ2xhc3MoT1BUSU9OUy5wb3J0bGV0Q2xhc3MpO1xuXHQkcG9ydGxldExpbmtcblx0XHQuZmluZCgnYScpXG5cdFx0LmVtcHR5KClcblx0XHQuYXBwZW5kKFxuXHRcdFx0PGRpdj5cblx0XHRcdFx0PHNwYW4gY2xhc3NOYW1lPXtbYCR7T1BUSU9OUy5wb3J0bGV0Q2xhc3N9X19sYWJlbGAsIGAke09QVElPTlMucG9ydGxldENsYXNzfV9fbGFiZWwtaGFuc2BdfT5cblx0XHRcdFx0XHR7J+axiSd9XG5cdFx0XHRcdDwvc3Bhbj5cblx0XHRcdFx0PHNwYW4gY2xhc3NOYW1lPXtbYCR7T1BUSU9OUy5wb3J0bGV0Q2xhc3N9X19sYWJlbGAsIGAke09QVElPTlMucG9ydGxldENsYXNzfV9fbGFiZWwtaGFudGBdfT5cblx0XHRcdFx0XHR7J+a8oid9XG5cdFx0XHRcdDwvc3Bhbj5cblx0XHRcdDwvZGl2PlxuXHRcdCk7XG5cblx0cmV0dXJuICRwb3J0bGV0TGluaztcbn07XG5cbmV4cG9ydCB7Z2VuZXJhdGVQb3J0bGV0TGlua307XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0MsSUFBQUEsZUFBZ0I7QUFDaEIsSUFBQUMsVUFBVzs7QUNGWixJQUFBQyxxQkFBa0JDLFFBQUFDLFFBQUEsa0JBQUEsR0FBQSxDQUFBOztBQ0FsQixJQUFBQyxvQkFBdUJELFFBQUEsaUJBQUE7QUFFdkIsSUFBTUUsa0JBQWtCQSxNQUFNO0FBQzdCLFNBQU87SUFDTkMsb0JBQUEsR0FBbUJGLGtCQUFBRyxVQUFTO01BQzNCQyxJQUFJO01BQ0osV0FBVztNQUNYLFdBQVc7SUFDWixDQUFDO0lBQ0RDLFVBQUEsR0FBU0wsa0JBQUFHLFVBQVM7TUFDakJDLElBQUk7TUFDSixXQUFXO01BQ1gsV0FBVztJQUNaLENBQUM7SUFDREUsUUFBQSxHQUFPTixrQkFBQUcsVUFBUztNQUNmQyxJQUFJO01BQ0osV0FBVztNQUNYLFdBQVc7SUFDWixDQUFDO0VBQ0Y7QUFDRDtBQUVBLElBQU1HLGVBQWVOLGdCQUFnQjtBQUVyQyxJQUFNTyxhQUFnREMsU0FBUTtBQUM3RCxTQUFPRixhQUFhRSxHQUFHLEtBQUtBO0FBQzdCOztBRHZCQSxJQUFNUCxvQkFBTixjQUFnQ1EsTUFBTTtFQUM3QkM7RUFFREMsWUFBWUQsUUFBa0I7QUFDcEMsVUFBQSxvQkFBQUUsT0FBMEJGLE9BQU9HLFFBQU0sb0JBQUEsQ0FBb0I7QUFDM0QsU0FBS0MsT0FBTztBQUNaLFNBQUtKLFNBQVNBO0VBQ2Y7RUFFT0ssV0FBbUI7QUFDekIsVUFBTUMsYUFBcUIsS0FBS04sT0FBT0c7QUFFdkMsVUFBTUksVUFDTHJCLG1DQUFBc0IsUUFBQUMsY0FBQyxPQUFBO01BQUlDLFdBQVU7SUFBQSxHQUNkeEIs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QUFELFdBQUFoRixFQUFBLEdBQUEsRUFBQWlGLFNBQUFELFdBQUEvRSxFQUFBLEdBQUFDLFFBQTZFO0FBQUEsWUFBbEUvRyxVQUFBOEwsT0FBQXpKO0FBQ1YsWUFBTVcsT0FBZWhELFFBQVErTCxHQUFHM0wsUUFBUSx5QkFBeUIsRUFBRTtBQUVuRSxVQUFJUSxXQUFtQkMsRUFBRWIsT0FBTztBQUNoQyxVQUFJa0ssV0FBVztBQUNkdEosaUJBQVNvTCxLQUFLO0FBRWQsY0FBTVQsZUFBbUNMLG9CQUFvQmxJLElBQUk7QUFDakUsWUFBSSxDQUFDdUksY0FBYztBQUNsQjtRQUNEO0FBRUEzSyxtQkFBVzJLO01BQ1o7QUFFQSxZQUFNVSxpQkFBa0JDLFdBQXlEO0FBQ2hGLFlBQUksRUFBQSxHQUFDbEIsbUJBQUFtQixxQkFBb0JELEtBQUssR0FBRztBQUNoQztRQUNEO0FBRUFBLGNBQU1FLGVBQWU7QUFDckJ0SixrQkFBVUMsT0FBT0MsSUFBSSxFQUFFcUosS0FBSztNQUM3QjtBQUNBekwsZUFBUzBMLEdBQUcsU0FBU0wsY0FBYztBQUNuQ3JMLGVBQVMwTCxHQUFHLFdBQVdMLGNBQWM7SUFDdEM7RUFBQSxTQUFBOUUsS0FBQTtBQUFBMEUsZUFBQXpFLEVBQUFELEdBQUE7RUFBQSxVQUFBO0FBQUEwRSxlQUFBeEUsRUFBQTtFQUFBO0FBQ0QsQ0FBQzsiLAogICJuYW1lcyI6IFsicG9ydGxldENsYXNzIiwgInZlcnNpb24iLCAiaW1wb3J0X2V4dF9nYWRnZXQyIiwgIl9fdG9FU00iLCAicmVxdWlyZSIsICJpbXBvcnRfZXh0X2dhZGdldCIsICJnZXRJMThuTWVzc2FnZXMiLCAiQXBpUmV0cnlGYWlsRXJyb3IiLCAibG9jYWxpemUiLCAiZW4iLCAiTG9hZGluZyIsICJUaXRsZSIsICJpMThuTWVzc2FnZXMiLCAiZ2V0TWVzc2FnZSIsICJrZXkiLCAiRXJyb3IiLCAiZXJyb3JzIiwgImNvbnN0cnVjdG9yIiwgImNvbmNhdCIsICJsZW5ndGgiLCAibmFtZSIsICJ0b0pRdWVyeSIsICJlcnJvckNvdW50IiwgImVsZW1lbnQiLCAiZGVmYXVsdCIsICJjcmVhdGVFbGVtZW50IiwgImNsYXNzTmFtZSIsICJyZXBsYWNlIiwgInRvU3RyaW5nIiwgIm1hcCIsICJlcnJvciIsICJpbmRleCIsICJzcGxpdCIsICJsaW5lIiwgIm51bWJlciIsICIkZWxlbWVudCIsICIkIiwgImltcG9ydF9leHRfZ2FkZ2V0MyIsICJhcGkiLCAiaW5pdE13QXBpIiwgInBhcnNlV2l0aFJldHJ5IiwgImFyZ3MiLCAiY291bnQiLCAicHJldmlvdXNFcnJvcnMiLCAiRGVmZXJyZWQiLCAicmVqZWN0IiwgImRlZmVycmVkIiwgInBhcnNlIiwgInRoZW4iLCAicmVzcG9uc2UiLCAicmVzb2x2ZSIsICJjYXRjaCIsICJjb25zb2xlIiwgInN0YWNrIiwgIlN0cmluZyIsICJuZXdSZXNwb25zZSIsICJuZXdFcnJvciIsICJwYXJzZVdpa2l0ZXh0IiwgImltcG9ydF9leHRfZ2FkZ2V0NCIsICJhc3NlcnQiLCAidmFsdWUiLCAidmFsdWVOYW1lIiwgInZpZXdlck1hcCIsICJNYXAiLCAiaW5pdFdpbmRvd01hbmFnZXIiLCAiT08iLCAidWkiLCAiV2luZG93TWFuYWdlciIsICJ3aW5kb3dNYW5hZ2VyIiwgImdldFZpZXdlciIsICIkYm9keSIsICJoYXNoIiwgImhhcyIsICJzdG9yZWRWaWV3ZXIiLCAiZ2V0IiwgIiR0YXJnZXRFbGVtZW50IiwgImZpbmQiLCAid2dQYWdlTmFtZSIsICJ3Z1VzZXJWYXJpYW50IiwgIm13IiwgImNvbmZpZyIsICJOb3RlVEFWaWV3ZXIiLCAiUHJvY2Vzc0RpYWxvZyIsICJkYXRhSXNMb2FkZWQiLCAiZXhlY3V0ZVByb21pc2UiLCAibXV0YXRpb25PYnNlcnZlciIsICIkcmVhbENvbnRlbnQiLCAibGFzdEVycm9yIiwgIm5vdGVUQVBhcnNlVGV4dCIsICJzaXplIiwgIk11dGF0aW9uT2JzZXJ2ZXIiLCAidXBkYXRlU2l6ZSIsICJiaW5kIiwgIm9ic2VydmUiLCAiY2hpbGRMaXN0IiwgInN1YnRyZWUiLCAiaW5pdGlhbGl6ZSIsICJwYW5lbExheW91dCIsICJQYW5lbExheW91dCIsICJleHBhbmRlZCIsICJwYWRkZWQiLCAiYXBwZW5kVG8iLCAiZ2V0U2V0dXBQcm9jZXNzIiwgImRhdGEiLCAibmV4dCIsICJkb0V4ZWN1dGVXcmFwIiwgImV4ZWN1dGVBY3Rpb24iLCAiZ2V0QWN0aW9uUHJvY2VzcyIsICJhY3Rpb24iLCAiaXNNYWluQWN0aW9uIiwgImV4ZWN1dGUiLCAiZGVzdHJveSIsICJkaXNjb25uZWN0IiwgImdldE5vdGVUQVBhcnNlVGV4dCIsICIkbm90ZVRBdGl0bGUiLCAiYWN0dWFsVGl0bGUiLCAid2lraXRleHQiLCAidGl0bGVEZWZlcnJlZCIsICJ0aXRsZUNvbnYiLCAiYXR0ciIsICJ0aXRsZURlc2MiLCAidGl0bGUiLCAidmFyaWFudCIsICJyZXN1bHRIdG1sIiwgIiRtdWx0aVRpdGxlIiwgInBhcnNlSFRNTCIsICJ0ZXh0VmFyaWFudCIsICJ2YXJpYW50VGV4dCIsICJfaXRlcmF0b3IyIiwgIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwgImNoaWxkcmVuIiwgIl9zdGVwMiIsICJzIiwgIm4iLCAiZG9uZSIsICJ0ZXh0IiwgInRyaW0iLCAidGV4dFZhcmlhbnRBcnJheSIsICJlcnIiLCAiZSIsICJmIiwgInRpdGxlQ29udmVydGVkIiwgIm11bHRpVGl0bGUiLCAiX2kiLCAiX09iamVjdCR2YWx1ZXMiLCAiT2JqZWN0IiwgInZhbHVlcyIsICJ2YXJpYW50cyIsICJfaXRlcmF0b3IzIiwgIl9zdGVwMyIsICJ2YXJpYW50c05hbWUiLCAiam9pbiIsICJzdWJJdGVtU2VwYXJhdG9yIiwgIiRub3RlVEFncm91cHMiLCAiX2l0ZXJhdG9yNCIsICJfc3RlcDQiLCAiJG5vdGVUQWxvY2FsIiwgIiRub3RlVEFsb2NhbHMiLCAiX2l0ZXJhdG9yNSIsICJfc3RlcDUiLCAibG9jYWxEZXNjIiwgImxvY2FsQ29udiIsICJkb0V4ZWN1dGUiLCAiZW1wdHkiLCAiYXBwZW5kIiwgInBhcnNlZEh0bWwiLCAiaHRtbCIsICJhZGRDbGFzcyIsICJtYWtlQ29sbGFwc2libGUiLCAicmVjb3ZlcmFibGUiLCAiZXhlY3V0ZURlZmVycmVkIiwgImFsd2F5cyIsICJzdGF0aWMiLCAiYWN0aW9ucyIsICJsYWJlbCIsICJtc2ciLCAiZmxhZ3MiLCAidmlld2VyIiwgImFkZFdpbmRvd3MiLCAic2V0IiwgInJlc2V0QWxsVmlld2VyIiwgIl9pdGVyYXRvcjYiLCAiX3N0ZXA2IiwgImNsZWFyIiwgImNsZWFyV2luZG93cyIsICJwb3J0bGV0SWQiLCAiaW5pdEdsb2JhbE1ldGhvZHMiLCAiZ2xvYmFsTWV0aG9kcyIsICJpbml0IiwgImRlSW5pdCIsICJza2luIiwgIiRub3RlVEFUYWIiLCAibm90ZVRBVGFiIiwgInV0aWwiLCAiYWRkUG9ydGxldCIsICJyZW1vdmVDbGFzcyIsICJhZnRlciIsICJoaWRlUG9ydGxldCIsICJyZW1vdmUiLCAiaW1wb3J0X2V4dF9nYWRnZXQ2IiwgImltcG9ydF9leHRfZ2FkZ2V0NSIsICJnZW5lcmF0ZVBvcnRsZXRMaW5rIiwgInBvcnRsZXRMaW5rIiwgImFkZFBvcnRsZXRMaW5rIiwgImNsYXNzTGlzdCIsICJhZGQiLCAiJHBvcnRsZXRMaW5rIiwgImlzSW5pdCIsICJob29rIiwgIm5vdGVUQSIsICIkY29udGVudCIsICJwYXJlbnRzIiwgIl9pdGVyYXRvcjciLCAiX3N0ZXA3IiwgImlkIiwgImhpZGUiLCAib3BlbmVyTGlzdGVuZXIiLCAiZXZlbnQiLCAiY2hlY2tBMTF5Q29uZmlybUtleSIsICJwcmV2ZW50RGVmYXVsdCIsICJvcGVuIiwgIm9uIl0KfQo= +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL05vdGVUQS9vcHRpb25zLmpzb24iLCAic3JjL05vdGVUQS9tb2R1bGVzL3V0aWwvQXBpUmV0cnlGYWlsRXJyb3IudHN4IiwgInNyYy9Ob3RlVEEvbW9kdWxlcy9pMThuLnRzIiwgInNyYy9Ob3RlVEEvbW9kdWxlcy9hcGkudHMiLCAic3JjL05vdGVUQS9tb2R1bGVzL3BhcnNlV2lraXRleHQudHMiLCAic3JjL05vdGVUQS9tb2R1bGVzL3ZpZXdlci50c3giLCAic3JjL05vdGVUQS9tb2R1bGVzL3V0aWwvYXNzZXJ0LnRzIiwgInNyYy9Ob3RlVEEvbW9kdWxlcy9pbml0Vmlld01hcC50cyIsICJzcmMvTm90ZVRBL21vZHVsZXMvaW5pdFdpbmRvd01hbmFnZXIudHMiLCAic3JjL05vdGVUQS9tb2R1bGVzL2luaXRHbG9iYWxNZXRob2RzLnRzIiwgInNyYy9Ob3RlVEEvTm90ZVRBLnRzIiwgInNyYy9Ob3RlVEEvbW9kdWxlcy91dGlsL2dlbmVyYXRlUG9ydGxldExpbmsudHN4Il0sCiAgInNvdXJjZXNDb250ZW50IjogWyJ7XG5cdFwicG9ydGxldENsYXNzXCI6IFwieC1ub3RlVEEtdmlld2VyXCIsXG5cdFwidmVyc2lvblwiOiBcIjEuMFwiXG59XG4iLCAiaW1wb3J0IFJlYWN0IGZyb20gJ2V4dC5nYWRnZXQuSlNYJztcbmltcG9ydCB7Z2V0TWVzc2FnZX0gZnJvbSAnLi4vaTE4bic7XG5cbmNsYXNzIEFwaVJldHJ5RmFpbEVycm9yIGV4dGVuZHMgRXJyb3Ige1xuXHRwcml2YXRlIGVycm9yczogc3RyaW5nW107XG5cblx0cHVibGljIGNvbnN0cnVjdG9yKGVycm9yczogc3RyaW5nW10pIHtcblx0XHRzdXBlcihgQXBpIGNhbGxzIGZhaWxlZCAke2Vycm9ycy5sZW5ndGh9IHRpbWUocykgaW4gYSByb3cuYCk7XG5cdFx0dGhpcy5uYW1lID0gJ0FwaVJldHJ5RmFpbEVycm9yJztcblx0XHR0aGlzLmVycm9ycyA9IGVycm9ycztcblx0fVxuXG5cdHB1YmxpYyB0b0pRdWVyeSgpOiBKUXVlcnkge1xuXHRcdGNvbnN0IGVycm9yQ291bnQ6IG51bWJlciA9IHRoaXMuZXJyb3JzLmxlbmd0aDtcblxuXHRcdGNvbnN0IGVsZW1lbnQgPSAoXG5cdFx0XHQ8ZGl2IGNsYXNzTmFtZT1cImVycm9yXCI+XG5cdFx0XHRcdDxwPntnZXRNZXNzYWdlKCdBcGlSZXRyeUZhaWxFcnJvcicpLnJlcGxhY2UoL1xcJDEvZywgZXJyb3JDb3VudC50b1N0cmluZygpKX08L3A+XG5cdFx0XHRcdDxvbD5cblx0XHRcdFx0XHR7dGhpcy5lcnJvcnMubWFwPFJlYWN0LlJlYWN0RWxlbWVudD4oKGVycm9yLCBpbmRleCkgPT4gKFxuXHRcdFx0XHRcdFx0PGxpIGtleT17aW5kZXh9PlxuXHRcdFx0XHRcdFx0XHR7ZXJyb3Iuc3BsaXQoJ1xcbicpLm1hcDxSZWFjdC5SZWFjdEVsZW1lbnQ+KChsaW5lLCBudW1iZXIpID0+IChcblx0XHRcdFx0XHRcdFx0XHQ8cCBrZXk9e251bWJlcn0+e2xpbmV9PC9wPlxuXHRcdFx0XHRcdFx0XHQpKX1cblx0XHRcdFx0XHRcdDwvbGk+XG5cdFx0XHRcdFx0KSl9XG5cdFx0XHRcdDwvb2w+XG5cdFx0XHQ8L2Rpdj5cblx0XHQpO1xuXHRcdGNvbnN0ICRlbGVtZW50ID0gJChlbGVtZW50KSBhcyBKUXVlcnk7XG5cblx0XHRyZXR1cm4gJGVsZW1lbnQ7XG5cdH1cbn1cblxuZXhwb3J0IHtBcGlSZXRyeUZhaWxFcnJvcn07XG4iLCAiaW1wb3J0IHtsb2NhbGl6ZX0gZnJvbSAnZXh0LmdhZGdldC5pMThuJztcblxuY29uc3QgZ2V0STE4bk1lc3NhZ2VzID0gKCkgPT4ge1xuXHRyZXR1cm4ge1xuXHRcdEFwaVJldHJ5RmFpbEVycm9yOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ0FwaSBjYWxscyBmYWlsZWQgJDEgdGltZShzKSBpbiBhIHJvdy4gRXJyb3JzOiAnLFxuXHRcdFx0J3poLWhhbnMnOiAnQXBpIOiwg+eUqOi/nue7reWksei0pSAkMSDmrKHvvIwkMSDmrKHosIPnlKjnmoTplJnor6/liIbliKvkuLrvvJonLFxuXHRcdFx0J3poLWhhbnQnOiAnQXBpIOiqv+eUqOmAo+e6jOWkseaVlyAkMSDmrKHvvIwkMSDmrKHoqr/nlKjnmoTpjK/oqqTliIbliKXngrrvvJonLFxuXHRcdH0pLFxuXHRcdExvYWRpbmc6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnTG9hZGluZy4uLicsXG5cdFx0XHQnemgtaGFucyc6ICfmraPlnKjliqDovb3igKbigKYnLFxuXHRcdFx0J3poLWhhbnQnOiAn5q2j5Zyo6LyJ5YWl4oCm4oCmJyxcblx0XHR9KSxcblx0XHRUaXRsZTogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdOb3RlVEEnLFxuXHRcdFx0J3poLWhhbnMnOiAn5a2X6K+N6L2s5o2iJyxcblx0XHRcdCd6aC1oYW50JzogJ+Wtl+ipnui9ieaPmycsXG5cdFx0fSksXG5cdH07XG59O1xuXG5jb25zdCBpMThuTWVzc2FnZXMgPSBnZXRJMThuTWVzc2FnZXMoKTtcblxuY29uc3QgZ2V0TWVzc2FnZTogR2V0TWVzc2FnZXM8dHlwZW9mIGkxOG5NZXNzYWdlcz4gPSAoa2V5KSA9PiB7XG5cdHJldHVybiBpMThuTWVzc2FnZXNba2V5XSB8fCBrZXk7XG59O1xuXG5leHBvcnQge2dldE1lc3NhZ2V9O1xuIiwgImltcG9ydCAqIGFzIE9QVElPTlMgZnJvbSAnLi4vb3B0aW9ucy5qc29uJztcbmltcG9ydCB7aW5pdE13QXBpfSBmcm9tICdleHQuZ2FkZ2V0LlV0aWwnO1xuXG5jb25zdCBhcGk6IG13LkFwaSA9IGluaXRNd0FwaShgTm90ZVRBLyR7T1BUSU9OUy52ZXJzaW9ufWApO1xuXG5leHBvcnQge2FwaX07XG4iLCAiaW1wb3J0IHtBcGlSZXRyeUZhaWxFcnJvcn0gZnJvbSAnLi91dGlsL0FwaVJldHJ5RmFpbEVycm9yJztcbmltcG9ydCB7YXBpfSBmcm9tICcuL2FwaSc7XG5cbnR5cGUgQXBpUGFyc2UgPSBtdy5BcGlbJ3BhcnNlJ107XG50eXBlIEFwaVBhcnNlUGFyYW1ldGVycyA9IFBhcmFtZXRlcnM8QXBpUGFyc2U+O1xudHlwZSBBcGlQYXJzZVJlc3BvbnNlID0gQXdhaXRlZDxSZXR1cm5UeXBlPEFwaVBhcnNlPj47XG50eXBlIEFwaVJlc3BvbnNlID0gQXBpUGFyc2VSZXNwb25zZSB8IEFwaVJldHJ5RmFpbEVycm9yO1xuXG5jb25zdCBwYXJzZVdpdGhSZXRyeSA9IChcblx0YXJnczogQXBpUGFyc2VQYXJhbWV0ZXJzLFxuXHRjb3VudDogbnVtYmVyID0gMyxcblx0cHJldmlvdXNFcnJvcnM6IHN0cmluZ1tdID0gW11cbik6IEpRdWVyeS5EZWZlcnJlZDxBcGlSZXNwb25zZT4gPT4ge1xuXHRpZiAoIWNvdW50KSB7XG5cdFx0cmV0dXJuICQuRGVmZXJyZWQ8QXBpUmV0cnlGYWlsRXJyb3I+KCkucmVqZWN0KG5ldyBBcGlSZXRyeUZhaWxFcnJvcihwcmV2aW91c0Vycm9ycykpO1xuXHR9XG5cblx0Y29uc3QgZGVmZXJyZWQgPSAkLkRlZmVycmVkPEFwaVJlc3BvbnNlPigpO1xuXG5cdHZvaWQgYXBpXG5cdFx0LnBhcnNlKC4uLmFyZ3MpXG5cdFx0LnRoZW4oKHJlc3BvbnNlOiBBcGlQYXJzZVJlc3BvbnNlKTogdm9pZCA9PiB7XG5cdFx0XHR2b2lkIGRlZmVycmVkLnJlc29sdmUocmVzcG9uc2UpO1xuXHRcdH0pXG5cdFx0LmNhdGNoKChlcnJvcj86IEVycm9yIHwgc3RyaW5nKTogdm9pZCA9PiB7XG5cdFx0XHRjb25zb2xlLmVycm9yKGVycm9yKTtcblxuXHRcdFx0aWYgKGVycm9yICYmIHR5cGVvZiBlcnJvciA9PT0gJ29iamVjdCcgJiYgJ3N0YWNrJyBpbiBlcnJvcikge1xuXHRcdFx0XHRwcmV2aW91c0Vycm9yc1twcmV2aW91c0Vycm9ycy5sZW5ndGhdID0gZXJyb3Iuc3RhY2s7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRwcmV2aW91c0Vycm9yc1twcmV2aW91c0Vycm9ycy5sZW5ndGhdID0gU3RyaW5nKGVycm9yKTtcblx0XHRcdH1cblxuXHRcdFx0cGFyc2VXaXRoUmV0cnkoYXJncywgLS1jb3VudCwgcHJldmlvdXNFcnJvcnMpXG5cdFx0XHRcdC50aGVuKChuZXdSZXNwb25zZTogQXBpUmVzcG9uc2UpOiB2b2lkID0+IHtcblx0XHRcdFx0XHR2b2lkIGRlZmVycmVkLnJlc29sdmUobmV3UmVzcG9uc2UpO1xuXHRcdFx0XHR9KVxuXHRcdFx0XHQuY2F0Y2goKG5ld0Vycm9yPzogRXJyb3IgfCBzdHJpbmcpOiB2b2lkID0+IHtcblx0XHRcdFx0XHR2b2lkIGRlZmVycmVkLnJlamVjdChuZXdFcnJvcik7XG5cdFx0XHRcdH0pO1xuXHRcdH0pO1xuXG5cdHJldHVybiBkZWZlcnJlZDtcbn07XG5cbmNvbnN0IHBhcnNlV2lraXRleHQgPSAoLi4uYXJnczogQXBpUGFyc2VQYXJhbWV0ZXJzKTogSlF1ZXJ5LkRlZmVycmVkPEFwaVJlc3BvbnNlPiA9PiB7XG5cdHJldHVybiBwYXJzZVdpdGhSZXRyeShhcmdzKTtcbn07XG5cbmV4cG9ydCB7dHlwZSBBcGlQYXJzZVJlc3BvbnNlLCB0eXBlIEFwaVJlc3BvbnNlLCBwYXJzZVdpa2l0ZXh0fTtcbiIsICJpbXBvcnQgKiBhcyBPUFRJT05TIGZyb20gJy4uL29wdGlvbnMuanNvbic7XG5pbXBvcnQge3R5cGUgQXBpUGFyc2VSZXNwb25zZSwgdHlwZSBBcGlSZXNwb25zZSwgcGFyc2VXaWtpdGV4dH0gZnJvbSAnLi9wYXJzZVdpa2l0ZXh0JztcbmltcG9ydCB7QXBpUmV0cnlGYWlsRXJyb3J9IGZyb20gJy4vdXRpbC9BcGlSZXRyeUZhaWxFcnJvcic7XG5pbXBvcnQgUmVhY3QgZnJvbSAnZXh0LmdhZGdldC5KU1gnO1xuaW1wb3J0IHthc3NlcnR9IGZyb20gJy4vdXRpbC9hc3NlcnQnO1xuaW1wb3J0IHtnZXRNZXNzYWdlfSBmcm9tICcuL2kxOG4nO1xuaW1wb3J0IHt2aWV3ZXJNYXB9IGZyb20gJy4vaW5pdFZpZXdNYXAnO1xuaW1wb3J0IHt3aW5kb3dNYW5hZ2VyfSBmcm9tICcuL2luaXRXaW5kb3dNYW5hZ2VyJztcblxuY29uc3QgZ2V0Vmlld2VyID0gKCRib2R5OiBKUXVlcnk8SFRNTEJvZHlFbGVtZW50PiwgaGFzaDogc3RyaW5nKTogdHlwZW9mIHZpZXdlciA9PiB7XG5cdGlmICh2aWV3ZXJNYXAuaGFzKGhhc2gpKSB7XG5cdFx0Y29uc3Qgc3RvcmVkVmlld2VyID0gdmlld2VyTWFwLmdldChoYXNoKTtcblx0XHRhc3NlcnQoc3RvcmVkVmlld2VyLCAndmlld2VyJyk7XG5cblx0XHRyZXR1cm4gc3RvcmVkVmlld2VyO1xuXHR9XG5cblx0Y29uc3QgJHRhcmdldEVsZW1lbnQ6IEpRdWVyeSA9ICRib2R5LmZpbmQoYCNub3RlVEEtJHtoYXNofWApO1xuXHRpZiAoISR0YXJnZXRFbGVtZW50Lmxlbmd0aCkge1xuXHRcdHRocm93IG5ldyBFcnJvcihgQ2FuJ3QgZ2V0IEVsZW1lbnQgXCIjbm90ZVRBLSR7aGFzaH1cIi5gKTtcblx0fVxuXG5cdGNvbnN0IHt3Z1BhZ2VOYW1lLCB3Z1VzZXJWYXJpYW50fSA9IG13LmNvbmZpZy5nZXQoKTtcblxuXHRjbGFzcyBOb3RlVEFWaWV3ZXIgZXh0ZW5kcyBPTy51aS5Qcm9jZXNzRGlhbG9nIHtcblx0XHRwcml2YXRlIGRhdGFJc0xvYWRlZDogYm9vbGVhbjtcblx0XHRwcml2YXRlIGV4ZWN1dGVQcm9taXNlPzogUmV0dXJuVHlwZTx0eXBlb2YgdGhpcy5kb0V4ZWN1dGU+O1xuXHRcdHByaXZhdGUgbXV0YXRpb25PYnNlcnZlcjogTXV0YXRpb25PYnNlcnZlcjtcblx0XHRwcml2YXRlICRyZWFsQ29udGVudDogSlF1ZXJ5O1xuXHRcdHByaXZhdGUgJGJvZHk6IEpRdWVyeSB8IHVuZGVmaW5lZDtcblx0XHRwcml2YXRlIHN0YXRpYyBsYXN0RXJyb3I/OiBPTy51aS5FcnJvcjtcblx0XHRwcml2YXRlIHN0YXRpYyBub3RlVEFQYXJzZVRleHQ6IHN0cmluZztcblxuXHRcdHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcblx0XHRcdHN1cGVyKHtcblx0XHRcdFx0c2l6ZTogJ2xhcmdlcicsXG5cdFx0XHR9KTtcblxuXHRcdFx0dGhpcy5kYXRhSXNMb2FkZWQgPSBmYWxzZTtcblx0XHRcdHRoaXMuJHJlYWxDb250ZW50ID0gJCg8ZGl2IC8+KSBhcyBKUXVlcnk7XG5cblx0XHRcdHRoaXMubXV0YXRpb25PYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKHRoaXMudXBkYXRlU2l6ZS5iaW5kKHRoaXMpKTtcblx0XHRcdHRoaXMubXV0YXRpb25PYnNlcnZlci5vYnNlcnZlKHRoaXMuJHJlYWxDb250ZW50LmdldCgwKSBhcyBIVE1MRWxlbWVudCwge1xuXHRcdFx0XHRjaGlsZExpc3Q6IHRydWUsXG5cdFx0XHRcdHN1YnRyZWU6IHRydWUsXG5cdFx0XHR9KTtcblx0XHR9XG5cblx0XHRwdWJsaWMgb3ZlcnJpZGUgaW5pdGlhbGl6ZSgpOiB0aGlzIHtcblx0XHRcdHN1cGVyLmluaXRpYWxpemUoKTtcblxuXHRcdFx0Y29uc3QgcGFuZWxMYXlvdXQ6IE9PLnVpLlBhbmVsTGF5b3V0ID0gbmV3IE9PLnVpLlBhbmVsTGF5b3V0KHtcblx0XHRcdFx0ZXhwYW5kZWQ6IGZhbHNlLFxuXHRcdFx0XHRwYWRkZWQ6IHRydWUsXG5cdFx0XHR9KTtcblxuXHRcdFx0dGhpcy4kcmVhbENvbnRlbnQuYXBwZW5kVG8ocGFuZWxMYXlvdXQuJGVsZW1lbnQpO1xuXHRcdFx0cGFuZWxMYXlvdXQuJGVsZW1lbnQuYXBwZW5kVG8odGhpcy4kYm9keSBhcyBKUXVlcnkpO1xuXG5cdFx0XHRyZXR1cm4gdGhpcztcblx0XHR9XG5cblx0XHRwdWJsaWMgb3ZlcnJpZGUgZ2V0U2V0dXBQcm9jZXNzKGRhdGE6IE9PLnVpLkRpYWxvZy5TZXR1cERhdGFNYXApOiBPTy51aS5Qcm9jZXNzIHtcblx0XHRcdHJldHVybiBzdXBlci5nZXRTZXR1cFByb2Nlc3MoZGF0YSkubmV4dCgoKTogdm9pZCA9PiB7XG5cdFx0XHRcdHZvaWQgdGhpcy5kb0V4ZWN1dGVXcmFwKCk7XG5cdFx0XHRcdHZvaWQgdGhpcy5leGVjdXRlQWN0aW9uKCdtYWluJyk7XG5cdFx0XHR9KTtcblx0XHR9XG5cblx0XHRwdWJsaWMgb3ZlcnJpZGUgZ2V0QWN0aW9uUHJvY2VzcyhhY3Rpb24/OiBzdHJpbmcpOiBPTy51aS5Qcm9jZXNzIHtcblx0XHRcdGNvbnN0IGlzTWFpbkFjdGlvbjogYm9vbGVhbiA9IGFjdGlvbiA9PT0gJ21haW4nO1xuXG5cdFx0XHRyZXR1cm4gKFxuXHRcdFx0XHRzdXBlclxuXHRcdFx0XHRcdC5nZXRBY3Rpb25Qcm9jZXNzKGFjdGlvbilcblx0XHRcdFx0XHQvLyBAdHMtZXhwZWN0LWVycm9yIFRTNzAzMFxuXHRcdFx0XHRcdC5uZXh0KCgpID0+IHtcblx0XHRcdFx0XHRcdGlmIChpc01haW5BY3Rpb24pIHtcblx0XHRcdFx0XHRcdFx0cmV0dXJuIHRoaXMuZG9FeGVjdXRlV3JhcCgpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0Lm5leHQoKCkgPT4ge1xuXHRcdFx0XHRcdFx0aWYgKGlzTWFpbkFjdGlvbiAmJiBOb3RlVEFWaWV3ZXIubGFzdEVycm9yKSB7XG5cdFx0XHRcdFx0XHRcdHJldHVybiBOb3RlVEFWaWV3ZXIubGFzdEVycm9yO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0cmV0dXJuIHN1cGVyLmdldEFjdGlvblByb2Nlc3MoYWN0aW9uKS5leGVjdXRlKCk7XG5cdFx0XHRcdFx0fSlcblx0XHRcdCk7XG5cdFx0fVxuXG5cdFx0cHVibGljIGRlc3Ryb3koKTogdm9pZCB7XG5cdFx0XHR0aGlzLm11dGF0aW9uT2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuXHRcdH1cblxuXHRcdHByaXZhdGUgc3RhdGljIGdldE5vdGVUQVBhcnNlVGV4dCgpOiBKUXVlcnkuRGVmZXJyZWQ8QXBpUmVzcG9uc2U+IHtcblx0XHRcdGlmIChOb3RlVEFWaWV3ZXIubm90ZVRBUGFyc2VUZXh0KSB7XG5cdFx0XHRcdHJldHVybiAkLkRlZmVycmVkPHN0cmluZz4oKS5yZXNvbHZlKE5vdGVUQVZpZXdlci5ub3RlVEFQYXJzZVRleHQpO1xuXHRcdFx0fVxuXG5cdFx0XHRjb25zdCAkbm90ZVRBdGl0bGU6IEpRdWVyeSA9ICR0YXJnZXRFbGVtZW50LmZpbmQoJy5ub3RlVEEtdGl0bGUnKTtcblx0XHRcdGNvbnN0IGFjdHVhbFRpdGxlOiBzdHJpbmcgPSB3Z1BhZ2VOYW1lLnJlcGxhY2UoL18vZywgJyAnKTtcblx0XHRcdGxldCB3aWtpdGV4dDogc3RyaW5nID0gJyc7XG5cblx0XHRcdGNvbnN0IHRpdGxlRGVmZXJyZWQgPSAkLkRlZmVycmVkPEFwaVJlc3BvbnNlPigpO1xuXG5cdFx0XHRpZiAoJG5vdGVUQXRpdGxlLmxlbmd0aCkge1xuXHRcdFx0XHRjb25zdCB0aXRsZUNvbnY6IHN0cmluZyB8IHVuZGVmaW5lZCA9ICRub3RlVEF0aXRsZS5hdHRyKCdkYXRhLW5vdGV0YS1jb2RlJyk7XG5cdFx0XHRcdGFzc2VydCh0aXRsZUNvbnYsICd0aXRsZUNvbnYnKTtcblxuXHRcdFx0XHRsZXQgdGl0bGVEZXNjOiBzdHJpbmcgfCB1bmRlZmluZWQgPSAkbm90ZVRBdGl0bGUuYXR0cignZGF0YS1ub3RldGEtZGVzYycpO1xuXHRcdFx0XHRpZiAodGl0bGVEZXNjKSB7XG5cdFx0XHRcdFx0dGl0bGVEZXNjID0gYO+8iCR7dGl0bGVEZXNjfe+8iWA7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0dGl0bGVEZXNjID0gJyc7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHR3aWtpdGV4dCArPSBgPHNwYW4gc3R5bGU9XCJmbG9hdDpyaWdodFwiPnt7ZWRpdHwke2FjdHVhbFRpdGxlfXxzZWN0aW9uPTB9fTwvc3Bhbj5cXG5gO1xuXHRcdFx0XHR3aWtpdGV4dCArPSAnOyDmnKzmlofkvb/nlKhbW0hlbHA65a2X6K+N6L2s5o2i5aSE55CGfOagh+mimOaJi+W3pei9rOaNol1dXFxuJztcblx0XHRcdFx0d2lraXRleHQgKz0gYCog6L2s5o2i5qCH6aKY5Li677yaLXtEfCR7dGl0bGVDb252fX0tJHt0aXRsZURlc2N9XFxuYDtcblx0XHRcdFx0d2lraXRleHQgKz0gYCog5a6e6ZmF5qCH6aKY5Li677yaLXtSfCR7YWN0dWFsVGl0bGV9fS3vvJvlvZPliY3mmL7npLrkuLrvvJote3wke3RpdGxlQ29udn19LVxcbmA7XG5cblx0XHRcdFx0dm9pZCB0aXRsZURlZmVycmVkLnJlc29sdmUoKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHBhcnNlV2lraXRleHQoYHt7bm90ZVRBL211bHRpdGl0bGV8JHthY3R1YWxUaXRsZX19fWAsIHtcblx0XHRcdFx0XHR0aXRsZTogYWN0dWFsVGl0bGUsXG5cdFx0XHRcdFx0dmFyaWFudDogJ3poJyxcblx0XHRcdFx0fSlcblx0XHRcdFx0XHQudGhlbigocmVzdWx0SHRtbDogQXBpUmVzcG9uc2UpOiB2b2lkID0+IHtcblx0XHRcdFx0XHRcdGNvbnN0ICRtdWx0aVRpdGxlOiBKUXVlcnkgPSAkKCQucGFyc2VIVE1MKHJlc3VsdEh0bWwgYXMgQXBpUGFyc2VSZXNwb25zZSkpLmZpbmQoXG5cdFx0XHRcdFx0XHRcdCcubm90ZVRBLW11bHRpdGl0bGUnXG5cdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdFx0aWYgKCRtdWx0aVRpdGxlLmxlbmd0aCkge1xuXHRcdFx0XHRcdFx0XHR3aWtpdGV4dCArPSAnOyDmnKzmlodbW0hlbHA65a2X6K+N6L2s5o2i5aSE55CGfOagh+mimOWPr+iDvee7j+i/h+i9rOaNol1dXFxuKiDovazmjaLmoIfpopjkuLrvvJonO1xuXG5cdFx0XHRcdFx0XHRcdGNvbnN0IHRleHRWYXJpYW50OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4gPSB7fTtcblx0XHRcdFx0XHRcdFx0Y29uc3QgdmFyaWFudFRleHQ6IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bGw+ID0ge307XG5cblx0XHRcdFx0XHRcdFx0Zm9yIChjb25zdCBlbGVtZW50IG9mICRtdWx0aVRpdGxlLmNoaWxkcmVuKCkpIHtcblx0XHRcdFx0XHRcdFx0XHRjb25zdCAkZWxlbWVudCA9ICQoZWxlbWVudCk7XG5cblx0XHRcdFx0XHRcdFx0XHRjb25zdCB2YXJpYW50OiBzdHJpbmcgfCB1bmRlZmluZWQgPSAkZWxlbWVudC5hdHRyKCdkYXRhLW5vdGV0YS1tdWx0aXRpdGxlLXZhcmlhbnQnKTtcblx0XHRcdFx0XHRcdFx0XHRhc3NlcnQodmFyaWFudCwgJ3ZhcmlhbnQnKTtcblxuXHRcdFx0XHRcdFx0XHRcdGNvbnN0IHRleHQ6IHN0cmluZyA9ICRlbGVtZW50LnRleHQoKS50cmltKCk7XG5cdFx0XHRcdFx0XHRcdFx0dmFyaWFudFRleHRbdmFyaWFudF0gPSB0ZXh0O1xuXG5cdFx0XHRcdFx0XHRcdFx0Y29uc3QgdGV4dFZhcmlhbnRBcnJheTogc3RyaW5nW10gfCB1bmRlZmluZWQgPSB0ZXh0VmFyaWFudFt0ZXh0XTtcblx0XHRcdFx0XHRcdFx0XHRpZiAodGV4dFZhcmlhbnRBcnJheSkge1xuXHRcdFx0XHRcdFx0XHRcdFx0dGV4dFZhcmlhbnRBcnJheVt0ZXh0VmFyaWFudEFycmF5Lmxlbmd0aF0gPSB2YXJpYW50O1xuXHRcdFx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0XHR0ZXh0VmFyaWFudFt0ZXh0XSA9IFt2YXJpYW50XTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0XHRjb25zdCB0aXRsZUNvbnZlcnRlZDogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCA9IHZhcmlhbnRUZXh0W3dnVXNlclZhcmlhbnQgYXMgc3RyaW5nXTtcblxuXHRcdFx0XHRcdFx0XHRjb25zdCBtdWx0aVRpdGxlOiBzdHJpbmdbXSA9IFtdO1xuXHRcdFx0XHRcdFx0XHRmb3IgKGNvbnN0IHRleHQgb2YgT2JqZWN0LnZhbHVlcyh2YXJpYW50VGV4dCkpIHtcblx0XHRcdFx0XHRcdFx0XHRpZiAodGV4dCA9PT0gbnVsbCB8fCB0ZXh0ID09PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0XHRcdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0XHRcdGNvbnN0IHZhcmlhbnRzOiBzdHJpbmdbXSB8IHVuZGVmaW5lZCA9IHRleHRWYXJpYW50W3RleHRdO1xuXHRcdFx0XHRcdFx0XHRcdGlmICghdmFyaWFudHMpIHtcblx0XHRcdFx0XHRcdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0XHRcdGZvciAoY29uc3QgdmFyaWFudCBvZiB2YXJpYW50cykge1xuXHRcdFx0XHRcdFx0XHRcdFx0dmFyaWFudFRleHRbdmFyaWFudF0gPSBudWxsO1xuXHRcdFx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0XHRcdGNvbnN0IHZhcmlhbnRzTmFtZTogc3RyaW5nID0gdmFyaWFudHNcblx0XHRcdFx0XHRcdFx0XHRcdC5tYXAoKHZhcmlhbnQ6IHN0cmluZyk6IHN0cmluZyA9PiBgLXtSfHt7TWVkaWFXaWtpOlZhcmlhbnRuYW1lLSR7dmFyaWFudH19fX0tYClcblx0XHRcdFx0XHRcdFx0XHRcdC5qb2luKCfjgIEnKTtcblx0XHRcdFx0XHRcdFx0XHRtdWx0aVRpdGxlW211bHRpVGl0bGUubGVuZ3RoXSA9IGAke3ZhcmlhbnRzTmFtZX3vvJote1J8JHt0ZXh0fX0tYDtcblx0XHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRcdGNvbnN0IHN1Ykl0ZW1TZXBhcmF0b3I6IHN0cmluZyA9ICdcXG4qKiAnO1xuXHRcdFx0XHRcdFx0XHR3aWtpdGV4dCArPSBgJHtzdWJJdGVtU2VwYXJhdG9yfSR7bXVsdGlUaXRsZS5qb2luKHN1Ykl0ZW1TZXBhcmF0b3IpfWA7XG5cdFx0XHRcdFx0XHRcdHdpa2l0ZXh0ICs9IGBcXG4qIOWunumZheagh+mimOS4uu+8mi17Unwke2FjdHVhbFRpdGxlfX0t77yb5b2T5YmN5pi+56S65Li677yaLXtSfCR7dGl0bGVDb252ZXJ0ZWR9fS1cXG5gO1xuXHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHR2b2lkIHRpdGxlRGVmZXJyZWQucmVzb2x2ZSgpO1xuXHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0LmNhdGNoKChlcnJvcjogQXBpUmV0cnlGYWlsRXJyb3IpOiB2b2lkID0+IHtcblx0XHRcdFx0XHRcdHZvaWQgdGl0bGVEZWZlcnJlZC5yZWplY3QoZXJyb3IpO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0fVxuXG5cdFx0XHRjb25zdCBkZWZlcnJlZCA9ICQuRGVmZXJyZWQ8QXBpUmVzcG9uc2U+KCk7XG5cblx0XHRcdHRpdGxlRGVmZXJyZWRcblx0XHRcdFx0LnRoZW4oKCk6IHZvaWQgPT4ge1xuXHRcdFx0XHRcdGNvbnN0ICRub3RlVEFncm91cHM6IEpRdWVyeSA9ICR0YXJnZXRFbGVtZW50LmZpbmQoJy5ub3RlVEEtZ3JvdXAgPiAqW2RhdGEtbm90ZXRhLWdyb3VwXScpO1xuXHRcdFx0XHRcdGZvciAoY29uc3QgZWxlbWVudCBvZiAkbm90ZVRBZ3JvdXBzKSB7XG5cdFx0XHRcdFx0XHRjb25zdCAkZWxlbWVudDogSlF1ZXJ5ID0gJChlbGVtZW50KTtcblx0XHRcdFx0XHRcdHN3aXRjaCAoJGVsZW1lbnQuYXR0cignZGF0YS1ub3RldGEtZ3JvdXAtc291cmNlJykpIHtcblx0XHRcdFx0XHRcdFx0Y2FzZSAndGVtcGxhdGUnOlxuXHRcdFx0XHRcdFx0XHRcdHdpa2l0ZXh0ICs9IGB7e0NHcm91cC8keyRlbGVtZW50LmF0dHIoJ2RhdGEtbm90ZXRhLWdyb3VwJyl9fX1cXG5gO1xuXHRcdFx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdFx0XHRjYXNlICdtb2R1bGUnOlxuXHRcdFx0XHRcdFx0XHRcdHdpa2l0ZXh0ICs9IGB7eyNpbnZva2U6Q0dyb3VwVmlld2VyfGRpYWxvZ3wkeyRlbGVtZW50LmF0dHIoJ2RhdGEtbm90ZXRhLWdyb3VwJyl9fX1cXG5gO1xuXHRcdFx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdFx0XHRjYXNlICdub25lJzpcblx0XHRcdFx0XHRcdFx0XHR3aWtpdGV4dCArPSBgOyDmnKzmlofkvb/nlKjnmoTlhazlhbHovazmjaLnu4TigJwkeyRlbGVtZW50LmF0dHIoJ2RhdGEtbm90ZXRhLWdyb3VwJyl94oCd5bCa5pyq5Yib5bu6XFxuYDtcblx0XHRcdFx0XHRcdFx0XHR3aWtpdGV4dCArPSBgKiB7e2VkaXR8TW9kdWxlOkNHcm91cC8keyRlbGVtZW50LmF0dHIoJ2RhdGEtbm90ZXRhLWdyb3VwJyl9fOWIm+W7uuWFrOWFsei9rOaNoue7hOKAnCR7JGVsZW1lbnQuYXR0cignZGF0YS1ub3RldGEtZ3JvdXAnKX3igJ19fVxcbmA7XG5cdFx0XHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdFx0XHRcdFx0d2lraXRleHQgKz0gYDsg5pyq55+l5YWs5YWx6L2s5o2i57uE4oCcJHskZWxlbWVudC5hdHRyKCdkYXRhLW5vdGV0YS1ncm91cCcpfeKAneadpea6kOKAnCR7JGVsZW1lbnQuYXR0cignZGF0YS1ub3RldGEtZ3JvdXAtc291cmNlJyl94oCdXFxuYDtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRjb25zdCAkbm90ZVRBbG9jYWw6IEpRdWVyeSA9ICR0YXJnZXRFbGVtZW50LmZpbmQoJy5ub3RlVEEtbG9jYWwnKTtcblx0XHRcdFx0XHRpZiAoJG5vdGVUQWxvY2FsLmxlbmd0aCkge1xuXHRcdFx0XHRcdFx0d2lraXRleHQgKz0gYDxzcGFuIHN0eWxlPVwiZmxvYXQ6cmlnaHRcIj57e2VkaXR8JHthY3R1YWxUaXRsZX18c2VjdGlvbj0wfX08L3NwYW4+XFxuYDtcblx0XHRcdFx0XHRcdHdpa2l0ZXh0ICs9ICc7IOacrOaWh+S9v+eUqFtbSGVscDrlrZfor43ovazmjaLlpITnkIZ85YWo5paH5omL5bel6L2s5o2iXV1cXG4nO1xuXG5cdFx0XHRcdFx0XHRjb25zdCAkbm90ZVRBbG9jYWxzID0gJG5vdGVUQWxvY2FsLmNoaWxkcmVuKCcqW2RhdGEtbm90ZXRhLWNvZGVdJyk7XG5cdFx0XHRcdFx0XHRmb3IgKGNvbnN0IGVsZW1lbnQgb2YgJG5vdGVUQWxvY2Fscykge1xuXHRcdFx0XHRcdFx0XHRjb25zdCAkZWxlbWVudDogSlF1ZXJ5ID0gJChlbGVtZW50KTtcblxuXHRcdFx0XHRcdFx0XHRsZXQgbG9jYWxEZXNjOiBzdHJpbmcgfCB1bmRlZmluZWQgPSAkZWxlbWVudC5hdHRyKCdkYXRhLW5vdGV0YS1kZXNjJyk7XG5cdFx0XHRcdFx0XHRcdGlmIChsb2NhbERlc2MpIHtcblx0XHRcdFx0XHRcdFx0XHRsb2NhbERlc2MgPSBg77yIJHtsb2NhbERlc2N977yJYDtcblx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRsb2NhbERlc2MgPSAnJztcblx0XHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRcdGNvbnN0IGxvY2FsQ29udjogc3RyaW5nIHwgdW5kZWZpbmVkID0gJGVsZW1lbnQuYXR0cignZGF0YS1ub3RldGEtY29kZScpO1xuXHRcdFx0XHRcdFx0XHR3aWtpdGV4dCArPSBgKiAte0R8JHtsb2NhbENvbnZ9fS0ke2xvY2FsRGVzY33lvZPliY3mmL7npLrkuLrvvJoteyR7bG9jYWxDb252fX0tXFxuYDtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHR3aWtpdGV4dCArPSAne3tub3RlVEEvZm9vdGVyfX1cXG4nO1xuXG5cdFx0XHRcdFx0Tm90ZVRBVmlld2VyLm5vdGVUQVBhcnNlVGV4dCA9IHdpa2l0ZXh0O1xuXG5cdFx0XHRcdFx0dm9pZCBkZWZlcnJlZC5yZXNvbHZlKHdpa2l0ZXh0KTtcblx0XHRcdFx0fSlcblx0XHRcdFx0LmNhdGNoKChlcnJvcjogQXBpUmV0cnlGYWlsRXJyb3IpOiB2b2lkID0+IHtcblx0XHRcdFx0XHR2b2lkIGRlZmVycmVkLnJlamVjdChlcnJvcik7XG5cdFx0XHRcdH0pO1xuXG5cdFx0XHRyZXR1cm4gZGVmZXJyZWQ7XG5cdFx0fVxuXG5cdFx0cHJpdmF0ZSBkb0V4ZWN1dGUoKSB7XG5cdFx0XHRpZiAodGhpcy5kYXRhSXNMb2FkZWQpIHtcblx0XHRcdFx0cmV0dXJuICQuRGVmZXJyZWQ8QXBpUmVzcG9uc2U+KCkucmVzb2x2ZSgpO1xuXHRcdFx0fVxuXG5cdFx0XHR0aGlzLiRyZWFsQ29udGVudC5lbXB0eSgpLmFwcGVuZCg8cD57Z2V0TWVzc2FnZSgnTG9hZGluZycpfTwvcD4pO1xuXG5cdFx0XHRyZXR1cm4gTm90ZVRBVmlld2VyLmdldE5vdGVUQVBhcnNlVGV4dCgpXG5cdFx0XHRcdC50aGVuKCh3aWtpdGV4dDogQXBpUmVzcG9uc2UpID0+XG5cdFx0XHRcdFx0cGFyc2VXaWtpdGV4dCh3aWtpdGV4dCBhcyBBcGlQYXJzZVJlc3BvbnNlLCB7XG5cdFx0XHRcdFx0XHR0aXRsZTogJ1RlbXBsYXRlOkNHcm91cC8tJyxcblx0XHRcdFx0XHRcdHZhcmlhbnQ6IHdnVXNlclZhcmlhbnQgYXMgc3RyaW5nLFxuXHRcdFx0XHRcdH0pXG5cdFx0XHRcdClcblx0XHRcdFx0LnRoZW4oKHBhcnNlZEh0bWw6IEFwaVJlc3BvbnNlKTogdm9pZCA9PiB7XG5cdFx0XHRcdFx0Ly8gVGhlIGZvbGxvd2luZyBjbGFzc2VzIGFyZSB1c2VkIGhlcmU6XG5cdFx0XHRcdFx0Ly8gKiBzZWUgY29uc3RhbnQudHNcblx0XHRcdFx0XHQvLyAqIGZvciBtb3JlIGluZm9ybWF0aW9uXG5cdFx0XHRcdFx0dGhpcy4kcmVhbENvbnRlbnRcblx0XHRcdFx0XHRcdC5lbXB0eSgpXG5cdFx0XHRcdFx0XHQuaHRtbChwYXJzZWRIdG1sIGFzIEFwaVBhcnNlUmVzcG9uc2UpXG5cdFx0XHRcdFx0XHQuYWRkQ2xhc3MoYCR7T1BUSU9OUy5wb3J0bGV0Q2xhc3N9LW91dHB1dGApO1xuXG5cdFx0XHRcdFx0KFxuXHRcdFx0XHRcdFx0dGhpcy4kcmVhbENvbnRlbnQuZmluZCgnLm13LWNvbGxhcHNpYmxlJykgYXMgSlF1ZXJ5ICYge21ha2VDb2xsYXBzaWJsZTogKCkgPT4gSlF1ZXJ5fVxuXHRcdFx0XHRcdCkubWFrZUNvbGxhcHNpYmxlKCk7XG5cblx0XHRcdFx0XHR0aGlzLnVwZGF0ZVNpemUoKTtcblx0XHRcdFx0XHR0aGlzLmRhdGFJc0xvYWRlZCA9IHRydWU7XG5cdFx0XHRcdH0pXG5cdFx0XHRcdC5jYXRjaCgoZXJyb3I6IEFwaVJldHJ5RmFpbEVycm9yIHwgRXJyb3IgfCBzdHJpbmcpOiB2b2lkID0+IHtcblx0XHRcdFx0XHRpZiAoZXJyb3IgaW5zdGFuY2VvZiBBcGlSZXRyeUZhaWxFcnJvcikge1xuXHRcdFx0XHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9vbmx5LXRocm93LWVycm9yXG5cdFx0XHRcdFx0XHR0aHJvdyBuZXcgT08udWkuRXJyb3IoZXJyb3IudG9KUXVlcnkoKSwge1xuXHRcdFx0XHRcdFx0XHRyZWNvdmVyYWJsZTogdHJ1ZSxcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L29ubHktdGhyb3ctZXJyb3Jcblx0XHRcdFx0XHRcdHRocm93IG5ldyBPTy51aS5FcnJvcihTdHJpbmcoZXJyb3IpLCB7XG5cdFx0XHRcdFx0XHRcdHJlY292ZXJhYmxlOiBmYWxzZSxcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSk7XG5cdFx0fVxuXG5cdFx0cHJpdmF0ZSBkb0V4ZWN1dGVXcmFwKCkge1xuXHRcdFx0aWYgKHRoaXMuZXhlY3V0ZVByb21pc2UgPT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHR0aGlzLmV4ZWN1dGVQcm9taXNlID0gdGhpcy5kb0V4ZWN1dGUoKTtcblx0XHRcdFx0ZGVsZXRlIE5vdGVUQVZpZXdlci5sYXN0RXJyb3I7XG5cblx0XHRcdFx0Y29uc3QgZXhlY3V0ZURlZmVycmVkID0gJC5EZWZlcnJlZDxBcGlSZXNwb25zZT4oKTtcblx0XHRcdFx0dm9pZCAodGhpcy5leGVjdXRlUHJvbWlzZSBhcyBKUXVlcnkuUHJvbWlzZTxBcGlSZXNwb25zZT4pXG5cdFx0XHRcdFx0LnRoZW4oKHJlc3BvbnNlOiBBcGlSZXNwb25zZSk6IHZvaWQgPT4ge1xuXHRcdFx0XHRcdFx0dm9pZCBleGVjdXRlRGVmZXJyZWQucmVzb2x2ZShyZXNwb25zZSk7XG5cdFx0XHRcdFx0fSlcblx0XHRcdFx0XHQuY2F0Y2goKGVycm9yOiBFcnJvciB8IE9PLnVpLkVycm9yIHwgc3RyaW5nKTogdm9pZCA9PiB7XG5cdFx0XHRcdFx0XHRpZiAoZXJyb3IgaW5zdGFuY2VvZiBPTy51aS5FcnJvcikge1xuXHRcdFx0XHRcdFx0XHROb3RlVEFWaWV3ZXIubGFzdEVycm9yID0gZXJyb3I7XG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHR2b2lkIGV4ZWN1dGVEZWZlcnJlZC5yZWplY3QoZXJyb3IpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0LmFsd2F5cygoKTogdm9pZCA9PiB7XG5cdFx0XHRcdFx0XHRkZWxldGUgdGhpcy5leGVjdXRlUHJvbWlzZTtcblx0XHRcdFx0XHR9KTtcblxuXHRcdFx0XHRyZXR1cm4gZXhlY3V0ZURlZmVycmVkO1xuXHRcdFx0fVxuXG5cdFx0XHRjb25zdCBkZWZlcnJlZCA9ICQuRGVmZXJyZWQ8QXBpUmVzcG9uc2U+KCk7XG5cdFx0XHR2b2lkICh0aGlzLmV4ZWN1dGVQcm9taXNlIGFzIEpRdWVyeS5Qcm9taXNlPEFwaVJlc3BvbnNlPilcblx0XHRcdFx0LnRoZW4oKHJlc3BvbnNlOiBBcGlSZXNwb25zZSk6IHZvaWQgPT4ge1xuXHRcdFx0XHRcdHZvaWQgZGVmZXJyZWQucmVzb2x2ZShyZXNwb25zZSk7XG5cdFx0XHRcdH0pXG5cdFx0XHRcdC5jYXRjaCgoZXJyb3I6IEVycm9yIHwgT08udWkuRXJyb3IgfCBzdHJpbmcpOiB2b2lkID0+IHtcblx0XHRcdFx0XHRpZiAoZXJyb3IgaW5zdGFuY2VvZiBPTy51aS5FcnJvcikge1xuXHRcdFx0XHRcdFx0Tm90ZVRBVmlld2VyLmxhc3RFcnJvciA9IGVycm9yO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHR2b2lkIGRlZmVycmVkLnJlamVjdChlcnJvcik7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KVxuXHRcdFx0XHQuYWx3YXlzKCgpOiB2b2lkID0+IHtcblx0XHRcdFx0XHRkZWxldGUgdGhpcy5leGVjdXRlUHJvbWlzZTtcblx0XHRcdFx0fSk7XG5cblx0XHRcdHJldHVybiBkZWZlcnJlZDtcblx0XHR9XG5cdH1cblxuXHROb3RlVEFWaWV3ZXIuc3RhdGljID0ge1xuXHRcdC4uLk9PLnVpLlByb2Nlc3NEaWFsb2cuc3RhdGljLFxuXHR9O1xuXHROb3RlVEFWaWV3ZXIuc3RhdGljLm5hbWUgPSBgTm90ZVRBVmlld2VyLSR7aGFzaH1gO1xuXHROb3RlVEFWaWV3ZXIuc3RhdGljLnRpdGxlID0gZ2V0TWVzc2FnZSgnVGl0bGUnKTtcblx0Tm90ZVRBVmlld2VyLnN0YXRpYy5hY3Rpb25zID0gW1xuXHRcdHtcblx0XHRcdGxhYmVsOiBtdy5tc2coJ29vdWktZGlhbG9nLXByb2Nlc3MtZGlzbWlzcycpLFxuXHRcdFx0ZmxhZ3M6ICdzYWZlJyxcblx0XHR9LFxuXHRdO1xuXG5cdGNvbnN0IHZpZXdlcjogTm90ZVRBVmlld2VyID0gbmV3IE5vdGVUQVZpZXdlcigpO1xuXHR3aW5kb3dNYW5hZ2VyLmFkZFdpbmRvd3MoW3ZpZXdlcl0pO1xuXHR2aWV3ZXJNYXAuc2V0KGhhc2gsIHZpZXdlcik7XG5cblx0cmV0dXJuIHZpZXdlcjtcbn07XG5cbmNvbnN0IHJlc2V0QWxsVmlld2VyID0gKCk6IHZvaWQgPT4ge1xuXHRmb3IgKGNvbnN0IHZpZXdlciBvZiB2aWV3ZXJNYXAudmFsdWVzKCkpIHtcblx0XHR2aWV3ZXIuZGVzdHJveSgpO1xuXHR9XG5cdHZpZXdlck1hcC5jbGVhcigpO1xuXHR2b2lkIHdpbmRvd01hbmFnZXIuY2xlYXJXaW5kb3dzKCk7XG59O1xuXG5leHBvcnQge2dldFZpZXdlciwgcmVzZXRBbGxWaWV3ZXJ9O1xuIiwgIi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBmdW5jLXN0eWxlXG5mdW5jdGlvbiBhc3NlcnQ8VD4odmFsdWU6IFQgfCB1bmRlZmluZWQsIHZhbHVlTmFtZTogc3RyaW5nKTogYXNzZXJ0cyB2YWx1ZSB7XG5cdGlmICghdmFsdWUpIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoYEFzc2VydCBGYWlsLCAke3ZhbHVlTmFtZX0gPT0gZmFsc2UuYCk7XG5cdH1cbn1cblxuZXhwb3J0IHthc3NlcnR9O1xuIiwgImltcG9ydCB7dHlwZSBnZXRWaWV3ZXJ9IGZyb20gJy4vdmlld2VyJztcblxuY29uc3Qgdmlld2VyTWFwID0gbmV3IE1hcDxzdHJpbmcsIFJldHVyblR5cGU8dHlwZW9mIGdldFZpZXdlcj4+KCk7XG5cbmV4cG9ydCB7dmlld2VyTWFwfTtcbiIsICJjb25zdCBpbml0V2luZG93TWFuYWdlciA9ICgpOiBPTy51aS5XaW5kb3dNYW5hZ2VyID0+IHtcblx0cmV0dXJuIG5ldyBPTy51aS5XaW5kb3dNYW5hZ2VyKCk7XG59O1xuXG5jb25zdCB3aW5kb3dNYW5hZ2VyOiBPTy51aS5XaW5kb3dNYW5hZ2VyID0gaW5pdFdpbmRvd01hbmFnZXIoKTtcblxuZXhwb3J0IHt3aW5kb3dNYW5hZ2VyfTtcbiIsICJpbXBvcnQgKiBhcyBPUFRJT05TIGZyb20gJy4uL29wdGlvbnMuanNvbic7XG5cbmxldCBwb3J0bGV0SWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuY29uc3QgaW5pdEdsb2JhbE1ldGhvZHMgPSAoJGJvZHk6IEpRdWVyeTxIVE1MQm9keUVsZW1lbnQ+KTogdHlwZW9mIGdsb2JhbE1ldGhvZHMgPT4ge1xuXHRjb25zdCBnbG9iYWxNZXRob2RzOiB7XG5cdFx0aW5pdCgpOiB2b2lkO1xuXHRcdGRlSW5pdCgpOiB2b2lkO1xuXHR9ID0ge1xuXHRcdGluaXQoKSB7XG5cdFx0XHQvKiBmYWtlICovXG5cdFx0fSxcblx0XHRkZUluaXQoKSB7XG5cdFx0XHQvKiBmYWtlICovXG5cdFx0fSxcblx0fTtcblxuXHRjb25zdCB7c2tpbn0gPSBtdy5jb25maWcuZ2V0KCk7XG5cblx0aWYgKHNraW4gPT09ICd2ZWN0b3InKSB7XG5cdFx0cG9ydGxldElkID0gJ3Atbm90ZVRBJztcblxuXHRcdGxldCAkbm90ZVRBVGFiOiBKUXVlcnkgfCB1bmRlZmluZWQ7XG5cdFx0Z2xvYmFsTWV0aG9kcy5pbml0ID0gKCk6IHZvaWQgPT4ge1xuXHRcdFx0aWYgKCRub3RlVEFUYWIgfHwgIXBvcnRsZXRJZCkge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cdFx0XHRjb25zdCBub3RlVEFUYWI6IEhUTUxFbGVtZW50IHwgbnVsbCA9IG13LnV0aWwuYWRkUG9ydGxldChwb3J0bGV0SWQpO1xuXHRcdFx0aWYgKCFub3RlVEFUYWIpIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdFx0JG5vdGVUQVRhYiA9ICQobm90ZVRBVGFiKTtcblx0XHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBtZWRpYXdpa2kvY2xhc3MtZG9jXG5cdFx0XHQkbm90ZVRBVGFiXG5cdFx0XHRcdC5yZW1vdmVDbGFzcyhgbXctcG9ydGxldC0ke3BvcnRsZXRJZH1gKVxuXHRcdFx0XHQuYWRkQ2xhc3MoW2Btdy1wb3J0bGV0LSR7cG9ydGxldElkLnJlcGxhY2UoJ3AtJywgJycpfWAsICd2ZWN0b3ItbWVudS10YWJzJywgJ3ZlY3Rvci1tZW51LXRhYnMtbGVnYWN5J10pO1xuXHRcdFx0JGJvZHkuZmluZCgnI3AtdmFyaWFudHMnKS5hZnRlcigkbm90ZVRBVGFiKTtcblx0XHR9O1xuXHRcdGdsb2JhbE1ldGhvZHMuZGVJbml0ID0gKCk6IHZvaWQgPT4ge1xuXHRcdFx0aWYgKCEkbm90ZVRBVGFiKSB7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblx0XHRcdCRub3RlVEFUYWIuZmluZCgndWwnKS5lbXB0eSgpO1xuXHRcdFx0aWYgKHBvcnRsZXRJZCkge1xuXHRcdFx0XHRtdy51dGlsLmhpZGVQb3J0bGV0KHBvcnRsZXRJZCk7XG5cdFx0XHR9XG5cdFx0fTtcblx0fSBlbHNlIGlmIChza2luID09PSAndmVjdG9yLTIwMjInKSB7XG5cdFx0cG9ydGxldElkID0gJ3AtYXNzb2NpYXRlZC1wYWdlcyc7XG5cblx0XHRnbG9iYWxNZXRob2RzLmRlSW5pdCA9ICgpOiB2b2lkID0+IHtcblx0XHRcdCRib2R5LmZpbmQoYC4ke09QVElPTlMucG9ydGxldENsYXNzfWApLnJlbW92ZSgpO1xuXHRcdH07XG5cdH1cblxuXHRyZXR1cm4gZ2xvYmFsTWV0aG9kcztcbn07XG5cbmV4cG9ydCB7cG9ydGxldElkLCBpbml0R2xvYmFsTWV0aG9kc307XG4iLCAiaW1wb3J0IHtnZXRWaWV3ZXIsIHJlc2V0QWxsVmlld2VyfSBmcm9tICcuL21vZHVsZXMvdmlld2VyJztcbmltcG9ydCB7aW5pdEdsb2JhbE1ldGhvZHMsIHBvcnRsZXRJZH0gZnJvbSAnLi9tb2R1bGVzL2luaXRHbG9iYWxNZXRob2RzJztcbmltcG9ydCB7Y2hlY2tBMTF5Q29uZmlybUtleX0gZnJvbSAnZXh0LmdhZGdldC5VdGlsJztcbmltcG9ydCB7Z2VuZXJhdGVQb3J0bGV0TGlua30gZnJvbSAnLi9tb2R1bGVzL3V0aWwvZ2VuZXJhdGVQb3J0bGV0TGluayc7XG5pbXBvcnQge3dpbmRvd01hbmFnZXJ9IGZyb20gJy4vbW9kdWxlcy9pbml0V2luZG93TWFuYWdlcic7XG5cbmxldCBpc0luaXQ6IGJvb2xlYW4gPSBmYWxzZTtcblxubXcuaG9vaygnd2lraXBhZ2UuY29udGVudCcpLmFkZChmdW5jdGlvbiBub3RlVEEoJGNvbnRlbnQpOiB2b2lkIHtcblx0Y29uc3QgJGJvZHk6IEpRdWVyeTxIVE1MQm9keUVsZW1lbnQ+ID0gJGNvbnRlbnQucGFyZW50cygnYm9keScpO1xuXG5cdGlmICghaXNJbml0KSB7XG5cdFx0aXNJbml0ID0gdHJ1ZTtcblx0XHR3aW5kb3dNYW5hZ2VyLiRlbGVtZW50LmFwcGVuZFRvKCRib2R5KTtcblx0fVxuXG5cdHJlc2V0QWxsVmlld2VyKCk7XG5cblx0Y29uc3QgZ2xvYmFsTWV0aG9kcyA9IGluaXRHbG9iYWxNZXRob2RzKCRib2R5KTtcblx0Z2xvYmFsTWV0aG9kcy5kZUluaXQoKTtcblx0Z2xvYmFsTWV0aG9kcy5pbml0KCk7XG5cblx0Zm9yIChjb25zdCBlbGVtZW50IG9mICRib2R5LmZpbmQoJy5tdy1pbmRpY2F0b3JbaWRePW13LWluZGljYXRvci1ub3RlVEEtXScpKSB7XG5cdFx0Y29uc3QgaGFzaDogc3RyaW5nID0gZWxlbWVudC5pZC5yZXBsYWNlKC9ebXctaW5kaWNhdG9yLW5vdGVUQS0vLCAnJyk7XG5cblx0XHRsZXQgJGVsZW1lbnQ6IEpRdWVyeSA9ICQoZWxlbWVudCk7XG5cdFx0aWYgKHBvcnRsZXRJZCkge1xuXHRcdFx0JGVsZW1lbnQuaGlkZSgpO1xuXG5cdFx0XHRjb25zdCAkcG9ydGxldExpbms6IEpRdWVyeSB8IHVuZGVmaW5lZCA9IGdlbmVyYXRlUG9ydGxldExpbmsoaGFzaCk7XG5cdFx0XHRpZiAoISRwb3J0bGV0TGluaykge1xuXHRcdFx0XHRjb250aW51ZTtcblx0XHRcdH1cblxuXHRcdFx0JGVsZW1lbnQgPSAkcG9ydGxldExpbms7XG5cdFx0fVxuXG5cdFx0Y29uc3Qgb3BlbmVyTGlzdGVuZXIgPSAoZXZlbnQ6IEpRdWVyeS5DbGlja0V2ZW50IHwgSlF1ZXJ5LktleURvd25FdmVudCk6IHZvaWQgPT4ge1xuXHRcdFx0aWYgKCFjaGVja0ExMXlDb25maXJtS2V5KGV2ZW50KSkge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cblx0XHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cdFx0XHRnZXRWaWV3ZXIoJGJvZHksIGhhc2gpLm9wZW4oKTtcblx0XHR9O1xuXHRcdCRlbGVtZW50Lm9uKCdjbGljaycsIG9wZW5lckxpc3RlbmVyKTtcblx0XHQkZWxlbWVudC5vbigna2V5ZG93bicsIG9wZW5lckxpc3RlbmVyKTtcblx0fVxufSk7XG4iLCAiaW1wb3J0ICogYXMgT1BUSU9OUyBmcm9tICcuLi8uLi9vcHRpb25zLmpzb24nO1xuaW1wb3J0IFJlYWN0IGZyb20gJ2V4dC5nYWRnZXQuSlNYJztcbmltcG9ydCB7cG9ydGxldElkfSBmcm9tICcuLi9pbml0R2xvYmFsTWV0aG9kcyc7XG5cbmNvbnN0IGdlbmVyYXRlUG9ydGxldExpbmsgPSAoaGFzaDogc3RyaW5nKTogSlF1ZXJ5IHwgdW5kZWZpbmVkID0+IHtcblx0aWYgKCFwb3J0bGV0SWQpIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRjb25zdCBwb3J0bGV0TGluazogSFRNTExJRWxlbWVudCB8IG51bGwgPSBtdy51dGlsLmFkZFBvcnRsZXRMaW5rKHBvcnRsZXRJZCwgJyMnLCAn5rGJL+a8oicsIGBjYS1ub3RlVEEtJHtoYXNofWApO1xuXHRpZiAoIXBvcnRsZXRMaW5rKSB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cdHBvcnRsZXRMaW5rLmNsYXNzTGlzdC5hZGQoJ2NhLW5vdGVUQScpO1xuXG5cdC8vIFRoZSBmb2xsb3dpbmcgY2xhc3NlcyBhcmUgdXNlZCBoZXJlOlxuXHQvLyAqIHNlZSBjb25zdGFudC50c1xuXHQvLyAqIGZvciBtb3JlIGluZm9ybWF0aW9uXG5cdGNvbnN0ICRwb3J0bGV0TGluazogSlF1ZXJ5ID0gJChwb3J0bGV0TGluaykuYWRkQ2xhc3MoT1BUSU9OUy5wb3J0bGV0Q2xhc3MpO1xuXHQkcG9ydGxldExpbmtcblx0XHQuZmluZCgnYScpXG5cdFx0LmVtcHR5KClcblx0XHQuYXBwZW5kKFxuXHRcdFx0PGRpdj5cblx0XHRcdFx0PHNwYW4gY2xhc3NOYW1lPXtbYCR7T1BUSU9OUy5wb3J0bGV0Q2xhc3N9X19sYWJlbGAsIGAke09QVElPTlMucG9ydGxldENsYXNzfV9fbGFiZWwtaGFuc2BdfT5cblx0XHRcdFx0XHR7J+axiSd9XG5cdFx0XHRcdDwvc3Bhbj5cblx0XHRcdFx0PHNwYW4gY2xhc3NOYW1lPXtbYCR7T1BUSU9OUy5wb3J0bGV0Q2xhc3N9X19sYWJlbGAsIGAke09QVElPTlMucG9ydGxldENsYXNzfV9fbGFiZWwtaGFudGBdfT5cblx0XHRcdFx0XHR7J+a8oid9XG5cdFx0XHRcdDwvc3Bhbj5cblx0XHRcdDwvZGl2PlxuXHRcdCk7XG5cblx0cmV0dXJuICRwb3J0bGV0TGluaztcbn07XG5cbmV4cG9ydCB7Z2VuZXJhdGVQb3J0bGV0TGlua307XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0MsSUFBQUEsZUFBZ0I7QUFDaEIsSUFBQUMsVUFBVzs7QUNGWixJQUFBQyxxQkFBa0JDLFFBQUFDLFFBQUEsZ0JBQUEsR0FBQSxDQUFBOztBQ0FsQixJQUFBQyxvQkFBdUJELFFBQUEsaUJBQUE7QUFFdkIsSUFBTUUsa0JBQWtCQSxNQUFNO0FBQzdCLFNBQU87SUFDTkMsb0JBQUEsR0FBbUJGLGtCQUFBRyxVQUFTO01BQzNCQyxJQUFJO01BQ0osV0FBVztNQUNYLFdBQVc7SUFDWixDQUFDO0lBQ0RDLFVBQUEsR0FBU0wsa0JBQUFHLFVBQVM7TUFDakJDLElBQUk7TUFDSixXQUFXO01BQ1gsV0FBVztJQUNaLENBQUM7SUFDREUsUUFBQSxHQUFPTixrQkFBQUcsVUFBUztNQUNmQyxJQUFJO01BQ0osV0FBVztNQUNYLFdBQVc7SUFDWixDQUFDO0VBQ0Y7QUFDRDtBQUVBLElBQU1HLGVBQWVOLGdCQUFnQjtBQUVyQyxJQUFNTyxhQUFnREMsU0FBUTtBQUM3RCxTQUFPRixhQUFhRSxHQUFHLEtBQUtBO0FBQzdCOztBRHZCQSxJQUFNUCxvQkFBTixjQUFnQ1EsTUFBTTtFQUM3QkM7RUFFREMsWUFBWUQsUUFBa0I7QUFDcEMsVUFBQSxvQkFBQUUsT0FBMEJGLE9BQU9HLFFBQU0sb0JBQUEsQ0FBb0I7QUFDM0QsU0FBS0MsT0FBTztBQUNaLFNBQUtKLFNBQVNBO0VBQ2Y7RUFFT0ssV0FBbUI7QUFDekIsVUFBTUMsYUFBcUIsS0FBS04sT0FBT0c7QUFFdkMsVUFBTUksVUFDTHJCLG1DQUFBc0IsUUFBQUMsY0FBQyxPQUFBO01BQUlDLFdBQVU7SUFBQSxHQUNkeEIsbUNBQUFz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QUFoRixFQUFBLEdBQUEsRUFBQWlGLFNBQUFELFdBQUEvRSxFQUFBLEdBQUFDLFFBQTZFO0FBQUEsWUFBbEUvRyxVQUFBOEwsT0FBQXpKO0FBQ1YsWUFBTVcsT0FBZWhELFFBQVErTCxHQUFHM0wsUUFBUSx5QkFBeUIsRUFBRTtBQUVuRSxVQUFJUSxXQUFtQkMsRUFBRWIsT0FBTztBQUNoQyxVQUFJa0ssV0FBVztBQUNkdEosaUJBQVNvTCxLQUFLO0FBRWQsY0FBTVQsZUFBbUNMLG9CQUFvQmxJLElBQUk7QUFDakUsWUFBSSxDQUFDdUksY0FBYztBQUNsQjtRQUNEO0FBRUEzSyxtQkFBVzJLO01BQ1o7QUFFQSxZQUFNVSxpQkFBa0JDLFdBQXlEO0FBQ2hGLFlBQUksRUFBQSxHQUFDbEIsbUJBQUFtQixxQkFBb0JELEtBQUssR0FBRztBQUNoQztRQUNEO0FBRUFBLGNBQU1FLGVBQWU7QUFDckJ0SixrQkFBVUMsT0FBT0MsSUFBSSxFQUFFcUosS0FBSztNQUM3QjtBQUNBekwsZUFBUzBMLEdBQUcsU0FBU0wsY0FBYztBQUNuQ3JMLGVBQVMwTCxHQUFHLFdBQVdMLGNBQWM7SUFDdEM7RUFBQSxTQUFBOUUsS0FBQTtBQUFBMEUsZUFBQXpFLEVBQUFELEdBQUE7RUFBQSxVQUFBO0FBQUEwRSxlQUFBeEUsRUFBQTtFQUFBO0FBQ0QsQ0FBQzsiLAogICJuYW1lcyI6IFsicG9ydGxldENsYXNzIiwgInZlcnNpb24iLCAiaW1wb3J0X2V4dF9nYWRnZXQyIiwgIl9fdG9FU00iLCAicmVxdWlyZSIsICJpbXBvcnRfZXh0X2dhZGdldCIsICJnZXRJMThuTWVzc2FnZXMiLCAiQXBpUmV0cnlGYWlsRXJyb3IiLCAibG9jYWxpemUiLCAiZW4iLCAiTG9hZGluZyIsICJUaXRsZSIsICJpMThuTWVzc2FnZXMiLCAiZ2V0TWVzc2FnZSIsICJrZXkiLCAiRXJyb3IiLCAiZXJyb3JzIiwgImNvbnN0cnVjdG9yIiwgImNvbmNhdCIsICJsZW5ndGgiLCAibmFtZSIsICJ0b0pRdWVyeSIsICJlcnJvckNvdW50IiwgImVsZW1lbnQiLCAiZGVmYXVsdCIsICJjcmVhdGVFbGVtZW50IiwgImNsYXNzTmFtZSIsICJyZXBsYWNlIiwgInRvU3RyaW5nIiwgIm1hcCIsICJlcnJvciIsICJpbmRleCIsICJzcGxpdCIsICJsaW5lIiwgIm51bWJlciIsICIkZWxlbWVudCIsICIkIiwgImltcG9ydF9leHRfZ2FkZ2V0MyIsICJhcGkiLCAiaW5pdE13QXBpIiwgInBhcnNlV2l0aFJldHJ5IiwgImFyZ3MiLCAiY291bnQiLCAicHJldmlvdXNFcnJvcnMiLCAiRGVmZXJyZWQiLCAicmVqZWN0IiwgImRlZmVycmVkIiwgInBhcnNlIiwgInRoZW4iLCAicmVzcG9uc2UiLCAicmVzb2x2ZSIsICJjYXRjaCIsICJjb25zb2xlIiwgInN0YWNrIiwgIlN0cmluZyIsICJuZXdSZXNwb25zZSIsICJuZXdFcnJvciIsICJwYXJzZVdpa2l0ZXh0IiwgImltcG9ydF9leHRfZ2FkZ2V0NCIsICJhc3NlcnQiLCAidmFsdWUiLCAidmFsdWVOYW1lIiwgInZpZXdlck1hcCIsICJNYXAiLCAiaW5pdFdpbmRvd01hbmFnZXIiLCAiT08iLCAidWkiLCAiV2luZG93TWFuYWdlciIsICJ3aW5kb3dNYW5hZ2VyIiwgImdldFZpZXdlciIsICIkYm9keSIsICJoYXNoIiwgImhhcyIsICJzdG9yZWRWaWV3ZXIiLCAiZ2V0IiwgIiR0YXJnZXRFbGVtZW50IiwgImZpbmQiLCAid2dQYWdlTmFtZSIsICJ3Z1VzZXJWYXJpYW50IiwgIm13IiwgImNvbmZpZyIsICJOb3RlVEFWaWV3ZXIiLCAiUHJvY2Vzc0RpYWxvZyIsICJkYXRhSXNMb2FkZWQiLCAiZXhlY3V0ZVByb21pc2UiLCAibXV0YXRpb25PYnNlcnZlciIsICIkcmVhbENvbnRlbnQiLCAibGFzdEVycm9yIiwgIm5vdGVUQVBhcnNlVGV4dCIsICJzaXplIiwgIk11dGF0aW9uT2JzZXJ2ZXIiLCAidXBkYXRlU2l6ZSIsICJiaW5kIiwgIm9ic2VydmUiLCAiY2hpbGRMaXN0IiwgInN1YnRyZWUiLCAiaW5pdGlhbGl6ZSIsICJwYW5lbExheW91dCIsICJQYW5lbExheW91dCIsICJleHBhbmRlZCIsICJwYWRkZWQiLCAiYXBwZW5kVG8iLCAiZ2V0U2V0dXBQcm9jZXNzIiwgImRhdGEiLCAibmV4dCIsICJkb0V4ZWN1dGVXcmFwIiwgImV4ZWN1dGVBY3Rpb24iLCAiZ2V0QWN0aW9uUHJvY2VzcyIsICJhY3Rpb24iLCAiaXNNYWluQWN0aW9uIiwgImV4ZWN1dGUiLCAiZGVzdHJveSIsICJkaXNjb25uZWN0IiwgImdldE5vdGVUQVBhcnNlVGV4dCIsICIkbm90ZVRBdGl0bGUiLCAiYWN0dWFsVGl0bGUiLCAid2lraXRleHQiLCAidGl0bGVEZWZlcnJlZCIsICJ0aXRsZUNvbnYiLCAiYXR0ciIsICJ0aXRsZURlc2MiLCAidGl0bGUiLCAidmFyaWFudCIsICJyZXN1bHRIdG1sIiwgIiRtdWx0aVRpdGxlIiwgInBhcnNlSFRNTCIsICJ0ZXh0VmFyaWFudCIsICJ2YXJpYW50VGV4dCIsICJfaXRlcmF0b3IyIiwgIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwgImNoaWxkcmVuIiwgIl9zdGVwMiIsICJzIiwgIm4iLCAiZG9uZSIsICJ0ZXh0IiwgInRyaW0iLCAidGV4dFZhcmlhbnRBcnJheSIsICJlcnIiLCAiZSIsICJmIiwgInRpdGxlQ29udmVydGVkIiwgIm11bHRpVGl0bGUiLCAiX2kiLCAiX09iamVjdCR2YWx1ZXMiLCAiT2JqZWN0IiwgInZhbHVlcyIsICJ2YXJpYW50cyIsICJfaXRlcmF0b3IzIiwgIl9zdGVwMyIsICJ2YXJpYW50c05hbWUiLCAiam9pbiIsICJzdWJJdGVtU2VwYXJhdG9yIiwgIiRub3RlVEFncm91cHMiLCAiX2l0ZXJhdG9yNCIsICJfc3RlcDQiLCAiJG5vdGVUQWxvY2FsIiwgIiRub3RlVEFsb2NhbHMiLCAiX2l0ZXJhdG9yNSIsICJfc3RlcDUiLCAibG9jYWxEZXNjIiwgImxvY2FsQ29udiIsICJkb0V4ZWN1dGUiLCAiZW1wdHkiLCAiYXBwZW5kIiwgInBhcnNlZEh0bWwiLCAiaHRtbCIsICJhZGRDbGFzcyIsICJtYWtlQ29sbGFwc2libGUiLCAicmVjb3ZlcmFibGUiLCAiZXhlY3V0ZURlZmVycmVkIiwgImFsd2F5cyIsICJzdGF0aWMiLCAiYWN0aW9ucyIsICJsYWJlbCIsICJtc2ciLCAiZmxhZ3MiLCAidmlld2VyIiwgImFkZFdpbmRvd3MiLCAic2V0IiwgInJlc2V0QWxsVmlld2VyIiwgIl9pdGVyYXRvcjYiLCAiX3N0ZXA2IiwgImNsZWFyIiwgImNsZWFyV2luZG93cyIsICJwb3J0bGV0SWQiLCAiaW5pdEdsb2JhbE1ldGhvZHMiLCAiZ2xvYmFsTWV0aG9kcyIsICJpbml0IiwgImRlSW5pdCIsICJza2luIiwgIiRub3RlVEFUYWIiLCAibm90ZVRBVGFiIiwgInV0aWwiLCAiYWRkUG9ydGxldCIsICJyZW1vdmVDbGFzcyIsICJhZnRlciIsICJoaWRlUG9ydGxldCIsICJyZW1vdmUiLCAiaW1wb3J0X2V4dF9nYWRnZXQ2IiwgImltcG9ydF9leHRfZ2FkZ2V0NSIsICJnZW5lcmF0ZVBvcnRsZXRMaW5rIiwgInBvcnRsZXRMaW5rIiwgImFkZFBvcnRsZXRMaW5rIiwgImNsYXNzTGlzdCIsICJhZGQiLCAiJHBvcnRsZXRMaW5rIiwgImlzSW5pdCIsICJob29rIiwgIm5vdGVUQSIsICIkY29udGVudCIsICJwYXJlbnRzIiwgIl9pdGVyYXRvcjciLCAiX3N0ZXA3IiwgImlkIiwgImhpZGUiLCAib3BlbmVyTGlzdGVuZXIiLCAiZXZlbnQiLCAiY2hlY2tBMTF5Q29uZmlybUtleSIsICJwcmV2ZW50RGVmYXVsdCIsICJvcGVuIiwgIm9uIl0KfQo= diff --git a/dist/OnlineAdmins/OnlineAdmins.css b/dist/OnlineAdmins/OnlineAdmins.css index dbb149a9f..726804270 100644 --- a/dist/OnlineAdmins/OnlineAdmins.css +++ b/dist/OnlineAdmins/OnlineAdmins.css @@ -20,24 +20,24 @@ /* */ /* esbuild-css-modules-plugin-ns-css:src/OnlineAdmins/modules/components/OnlineAdmins.module.less */ -.OnlineAdmins-module__section_WS9IGa { +.OnlineAdmins-module__section_WS9IGa__490 { word-break: break-all; } -.OnlineAdmins-module__talkPageLink_WS9IGa { +.OnlineAdmins-module__talkPageLink_WS9IGa__490 { font-size: 90%; } -.OnlineAdmins-module__sectionList_WS9IGa, -.OnlineAdmins-module__sectionList_WS9IGa li { +.OnlineAdmins-module__sectionList_WS9IGa__490, +.OnlineAdmins-module__sectionList_WS9IGa__490 li { margin: 0; display: inline; } -:is(.OnlineAdmins-module__sectionList_WS9IGa, .OnlineAdmins-module__sectionList_WS9IGa li):after { +:is(.OnlineAdmins-module__sectionList_WS9IGa__490, .OnlineAdmins-module__sectionList_WS9IGa__490 li):after { content: "、"; } -:is(.OnlineAdmins-module__sectionList_WS9IGa, .OnlineAdmins-module__sectionList_WS9IGa li):last-child:after { +:is(.OnlineAdmins-module__sectionList_WS9IGa__490, .OnlineAdmins-module__sectionList_WS9IGa__490 li):last-child:after { content: none; } /* */ -/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiZXNidWlsZC1jc3MtbW9kdWxlcy1wbHVnaW4tbnMtY3NzOnNyYy9PbmxpbmVBZG1pbnMvbW9kdWxlcy9jb21wb25lbnRzL09ubGluZUFkbWlucy5tb2R1bGUubGVzcyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyogPHN0ZGluPiAqL1xuLk9ubGluZUFkbWlucy1tb2R1bGVfX3NlY3Rpb25fV1M5SUdhIHtcbiAgd29yZC1icmVhazogYnJlYWstYWxsO1xufVxuLk9ubGluZUFkbWlucy1tb2R1bGVfX3RhbGtQYWdlTGlua19XUzlJR2Ege1xuICBmb250LXNpemU6IDkwJTtcbn1cbi5PbmxpbmVBZG1pbnMtbW9kdWxlX19zZWN0aW9uTGlzdF9XUzlJR2EsXG4uT25saW5lQWRtaW5zLW1vZHVsZV9fc2VjdGlvbkxpc3RfV1M5SUdhIGxpIHtcbiAgbWFyZ2luOiAwO1xuICBkaXNwbGF5OiBpbmxpbmU7XG59XG46aXMoLk9ubGluZUFkbWlucy1tb2R1bGVfX3NlY3Rpb25MaXN0X1dTOUlHYSwgLk9ubGluZUFkbWlucy1tb2R1bGVfX3NlY3Rpb25MaXN0X1dTOUlHYSBsaSk6YWZ0ZXIge1xuICBjb250ZW50OiBcIlxcMzAwMVwiO1xufVxuOmlzKC5PbmxpbmVBZG1pbnMtbW9kdWxlX19zZWN0aW9uTGlzdF9XUzlJR2EsIC5PbmxpbmVBZG1pbnMtbW9kdWxlX19zZWN0aW9uTGlzdF9XUzlJR2EgbGkpOmxhc3QtY2hpbGQ6YWZ0ZXIge1xuICBjb250ZW50OiBub25lO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLENBQUM7QUFDQyxjQUFZO0FBQ2Q7QUFDQSxDQUFDO0FBQ0MsYUFBVztBQUNiO0FBQ0EsQ0FBQztBQUNELENBREMsd0NBQ3dDO0FBQ3ZDLFVBQVE7QUFDUixXQUFTO0FBQ1g7QUFDQSxJQUFJLENBTEgseUNBSzZDLENBTDdDLHdDQUtzRixHQUFHO0FBQ3hGLFdBQVM7QUFDWDtBQUNBLElBQUksQ0FSSCx5Q0FRNkMsQ0FSN0Msd0NBUXNGLEdBQUcsV0FBVztBQUNuRyxXQUFTO0FBQ1g7IiwKICAibmFtZXMiOiBbXQp9Cg== */ +/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiZXNidWlsZC1jc3MtbW9kdWxlcy1wbHVnaW4tbnMtY3NzOnNyYy9PbmxpbmVBZG1pbnMvbW9kdWxlcy9jb21wb25lbnRzL09ubGluZUFkbWlucy5tb2R1bGUubGVzcyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyogPHN0ZGluPiAqL1xuLk9ubGluZUFkbWlucy1tb2R1bGVfX3NlY3Rpb25fV1M5SUdhX180OTAge1xuICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG59XG4uT25saW5lQWRtaW5zLW1vZHVsZV9fdGFsa1BhZ2VMaW5rX1dTOUlHYV9fNDkwIHtcbiAgZm9udC1zaXplOiA5MCU7XG59XG4uT25saW5lQWRtaW5zLW1vZHVsZV9fc2VjdGlvbkxpc3RfV1M5SUdhX180OTAsXG4uT25saW5lQWRtaW5zLW1vZHVsZV9fc2VjdGlvbkxpc3RfV1M5SUdhX180OTAgbGkge1xuICBtYXJnaW46IDA7XG4gIGRpc3BsYXk6IGlubGluZTtcbn1cbjppcyguT25saW5lQWRtaW5zLW1vZHVsZV9fc2VjdGlvbkxpc3RfV1M5SUdhX180OTAsIC5PbmxpbmVBZG1pbnMtbW9kdWxlX19zZWN0aW9uTGlzdF9XUzlJR2FfXzQ5MCBsaSk6YWZ0ZXIge1xuICBjb250ZW50OiBcIlxcMzAwMVwiO1xufVxuOmlzKC5PbmxpbmVBZG1pbnMtbW9kdWxlX19zZWN0aW9uTGlzdF9XUzlJR2FfXzQ5MCwgLk9ubGluZUFkbWlucy1tb2R1bGVfX3NlY3Rpb25MaXN0X1dTOUlHYV9fNDkwIGxpKTpsYXN0LWNoaWxkOmFmdGVyIHtcbiAgY29udGVudDogbm9uZTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxDQUFDO0FBQ0MsY0FBWTtBQUNkO0FBQ0EsQ0FBQztBQUNDLGFBQVc7QUFDYjtBQUNBLENBQUM7QUFDRCxDQURDLDZDQUM2QztBQUM1QyxVQUFRO0FBQ1IsV0FBUztBQUNYO0FBQ0EsSUFBSSxDQUxILDhDQUtrRCxDQUxsRCw2Q0FLZ0csR0FBRztBQUNsRyxXQUFTO0FBQ1g7QUFDQSxJQUFJLENBUkgsOENBUWtELENBUmxELDZDQVFnRyxHQUFHLFdBQVc7QUFDN0csV0FBUztBQUNYOyIsCiAgIm5hbWVzIjogW10KfQo= */ diff --git a/dist/OnlineAdmins/OnlineAdmins.js b/dist/OnlineAdmins/OnlineAdmins.js index 1a629162a..afd9a5065 100644 --- a/dist/OnlineAdmins/OnlineAdmins.js +++ b/dist/OnlineAdmins/OnlineAdmins.js @@ -366,11 +366,11 @@ var getMessage = (key) => { return i18nMessages[key] || key; }; //! src/OnlineAdmins/modules/components/OnlineAdmins.module.less -var section = "OnlineAdmins-module__section_WS9IGa"; -var sectionList = "OnlineAdmins-module__sectionList_WS9IGa"; -var talkPageLink = "OnlineAdmins-module__talkPageLink_WS9IGa"; +var section = "OnlineAdmins-module__section_WS9IGa__490"; +var sectionList = "OnlineAdmins-module__sectionList_WS9IGa__490"; +var talkPageLink = "OnlineAdmins-module__talkPageLink_WS9IGa__490"; //! src/OnlineAdmins/modules/components/groupList.tsx -var import_ext_gadget4 = __toESM(require("ext.gadget.React"), 1); +var import_ext_gadget4 = __toESM(require("ext.gadget.JSX"), 1); //! src/OnlineAdmins/modules/util/sanitize.ts var sanitize = (string) => { return string.replace(/&/g, "&").replace(//g, ">").replace(/'/g, "'").replace(/"/g, """); @@ -475,4 +475,4 @@ $(addPortletLink); /* */ -//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL09ubGluZUFkbWlucy9vcHRpb25zLmpzb24iLCAic3JjL09ubGluZUFkbWlucy9tb2R1bGVzL3V0aWwvYXBpLnRzIiwgInNyYy9PbmxpbmVBZG1pbnMvbW9kdWxlcy91dGlsL3F1ZXJ5LnRzIiwgInNyYy9PbmxpbmVBZG1pbnMvbW9kdWxlcy9jb25zdGFudC50cyIsICJzcmMvT25saW5lQWRtaW5zL21vZHVsZXMvdXRpbC9nZXRBZG1pbnMudHMiLCAic3JjL09ubGluZUFkbWlucy9tb2R1bGVzL2kxOG4udHMiLCAic3JjL09ubGluZUFkbWlucy9tb2R1bGVzL2NvbXBvbmVudHMvT25saW5lQWRtaW5zLm1vZHVsZS5sZXNzIiwgInNyYy9PbmxpbmVBZG1pbnMvbW9kdWxlcy9jb21wb25lbnRzL2dyb3VwTGlzdC50c3giLCAic3JjL09ubGluZUFkbWlucy9tb2R1bGVzL3V0aWwvc2FuaXRpemUudHMiLCAic3JjL09ubGluZUFkbWlucy9tb2R1bGVzL2RvQ2xpY2sudHMiLCAic3JjL09ubGluZUFkbWlucy9PbmxpbmVBZG1pbnMudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIntcblx0XCJ2ZXJzaW9uXCI6IFwiMi4wXCIsXG5cdFwic3RvcmFnZUtleVwiOiBcImV4dC5nYWRnZXQuT25saW5lQWRtaW5zX2dldEFkbWluc1wiXG59XG4iLCAiaW1wb3J0ICogYXMgT1BUSU9OUyBmcm9tICcuLi8uLi9vcHRpb25zLmpzb24nO1xuaW1wb3J0IHtpbml0TXdBcGl9IGZyb20gJ2V4dC5nYWRnZXQuVXRpbCc7XG5cbmNvbnN0IGFwaTogbXcuQXBpID0gaW5pdE13QXBpKGBPbmxpbmVBZG1pbnMvJHtPUFRJT05TLnZlcnNpb259YCk7XG5cbmV4cG9ydCB7YXBpfTtcbiIsICJpbXBvcnQge2FwaX0gZnJvbSAnLi9hcGknO1xuXG5jb25zdCBxdWVyeVJlY2VudENoYW5nZXMgPSBhc3luYyAocmNzdGFydDogc3RyaW5nLCByY2VuZDogc3RyaW5nKSA9PiB7XG5cdGNvbnN0IHBhcmFtczogQXBpUXVlcnlSZWNlbnRDaGFuZ2VzUGFyYW1zID0ge1xuXHRcdHJjc3RhcnQsXG5cdFx0cmNlbmQsXG5cdFx0YWN0aW9uOiAncXVlcnknLFxuXHRcdGZvcm1hdDogJ2pzb24nLFxuXHRcdGZvcm1hdHZlcnNpb246ICcyJyxcblx0XHRsaXN0OiAncmVjZW50Y2hhbmdlcycsXG5cdFx0cmNwcm9wOiAndXNlcicsXG5cdFx0cmNzaG93OiBbJyFib3QnLCAnIWFub24nXSxcblx0XHRyY2xpbWl0OiA1MDAsXG5cdFx0c21heGFnZTogNjAwLFxuXHRcdG1heGFnZTogNjAwLFxuXHR9O1xuXHRjb25zdCByZXNwb25zZSA9IGF3YWl0IGFwaS5nZXQocGFyYW1zKTtcblxuXHRyZXR1cm4gcmVzcG9uc2U7XG59O1xuXG5jb25zdCBxdWVyeUxvZ0V2ZW50cyA9IGFzeW5jIChsZXN0YXJ0OiBzdHJpbmcsIGxlZW5kOiBzdHJpbmcpID0+IHtcblx0Y29uc3QgcGFyYW1zOiBBcGlRdWVyeUxvZ0V2ZW50c1BhcmFtcyA9IHtcblx0XHRsZXN0YXJ0LFxuXHRcdGxlZW5kLFxuXHRcdGFjdGlvbjogJ3F1ZXJ5Jyxcblx0XHRmb3JtYXQ6ICdqc29uJyxcblx0XHRmb3JtYXR2ZXJzaW9uOiAnMicsXG5cdFx0bGlzdDogJ2xvZ2V2ZW50cycsXG5cdFx0bGVwcm9wOiAndXNlcicsXG5cdFx0bGVsaW1pdDogNTAwLFxuXHRcdHNtYXhhZ2U6IDYwMCxcblx0XHRtYXhhZ2U6IDYwMCxcblx0fTtcblx0Y29uc3QgcmVzcG9uc2UgPSBhd2FpdCBhcGkuZ2V0KHBhcmFtcyk7XG5cblx0cmV0dXJuIHJlc3BvbnNlO1xufTtcblxuY29uc3QgcXVlcnlVc2VyUHJvcHMgPSBhc3luYyAodXN1c2Vyczogc3RyaW5nIHwgc3RyaW5nW10pID0+IHtcblx0Y29uc3QgcGFyYW1zOiBBcGlRdWVyeVVzZXJzUGFyYW1zID0ge1xuXHRcdHVzdXNlcnMsXG5cdFx0YWN0aW9uOiAncXVlcnknLFxuXHRcdGZvcm1hdDogJ2pzb24nLFxuXHRcdGZvcm1hdHZlcnNpb246ICcyJyxcblx0XHRsaXN0OiAndXNlcnMnLFxuXHRcdHVzcHJvcDogJ2dyb3VwcycsXG5cdFx0c21heGFnZTogNjAwLFxuXHRcdG1heGFnZTogNjAwLFxuXHR9O1xuXHRjb25zdCByZXNwb25zZSA9IGF3YWl0IGFwaS5nZXQocGFyYW1zKTtcblxuXHRyZXR1cm4gcmVzcG9uc2U7XG59O1xuXG5leHBvcnQge3F1ZXJ5UmVjZW50Q2hhbmdlcywgcXVlcnlMb2dFdmVudHMsIHF1ZXJ5VXNlclByb3BzfTtcbiIsICJjb25zdCBCTEFDS19MSVNUOiBzdHJpbmdbXSA9IFsn5rul55So6L+H5ruk5ZmoJ107XG5cbmV4cG9ydCB7QkxBQ0tfTElTVH07XG4iLCAiaW1wb3J0ICogYXMgT1BUSU9OUyBmcm9tICcuLi8uLi9vcHRpb25zLmpzb24nO1xuaW1wb3J0IHtxdWVyeUxvZ0V2ZW50cywgcXVlcnlSZWNlbnRDaGFuZ2VzLCBxdWVyeVVzZXJQcm9wc30gZnJvbSAnLi9xdWVyeSc7XG5pbXBvcnQge0JMQUNLX0xJU1R9IGZyb20gJy4uL2NvbnN0YW50JztcbmltcG9ydCB7dW5pcXVlQXJyYXl9IGZyb20gJ2V4dC5nYWRnZXQuVXRpbCc7XG5cbmNvbnN0IGdldEFkbWlucyA9IGFzeW5jICgpID0+IHtcblx0bGV0IHN0ZXdhcmRzOiBzdHJpbmdbXSA9IFtdO1xuXHRsZXQgc3lzb3BzOiBzdHJpbmdbXSA9IFtdO1xuXHRsZXQgcGF0cm9sbGVyczogc3RyaW5nW10gPSBbXTtcblxuXHRpZiAobXcuc3RvcmFnZS5nZXRPYmplY3QoT1BUSU9OUy5zdG9yYWdlS2V5KSkge1xuXHRcdCh7c3Rld2FyZHMsIHN5c29wcywgcGF0cm9sbGVyc30gPSBtdy5zdG9yYWdlLmdldE9iamVjdChPUFRJT05TLnN0b3JhZ2VLZXkpIGFzIHtcblx0XHRcdHN0ZXdhcmRzOiBzdHJpbmdbXTtcblx0XHRcdHN5c29wczogc3RyaW5nW107XG5cdFx0XHRwYXRyb2xsZXJzOiBzdHJpbmdbXTtcblx0XHR9KTtcblx0fSBlbHNlIHtcblx0XHRsZXQgdXNlcnM6IHN0cmluZ1tdID0gW107XG5cdFx0Y29uc3QgcHJvbWlzZXM6ICgoKSA9PiBQcm9taXNlPHZvaWQ+KVtdID0gW107XG5cblx0XHRjb25zdCB0aW1lOiBEYXRlID0gbmV3IERhdGUoKTtcblx0XHRjb25zdCByY3N0YXJ0OiBzdHJpbmcgPSB0aW1lLnRvSVNPU3RyaW5nKCk7XG5cblx0XHQvLyBRdWVyeSB1c2VycyBoYXMgbG9nL2VkaXQgcmVjb3JkIGluIHJlY2VudCAzMCBtaW51dGVzXG5cdFx0dGltZS5zZXRNaW51dGVzKHRpbWUuZ2V0TWludXRlcygpIC0gMzApOyAvLyDmnIDov5Hmm7TmlLkzMOWIhumSn+WGheeahOe8lui+keeUqOaIt1xuXHRcdGNvbnN0IHJjZW5kOiBzdHJpbmcgPSB0aW1lLnRvSVNPU3RyaW5nKCk7XG5cblx0XHR0cnkge1xuXHRcdFx0Y29uc3QgcmVjZW50Y2hhbmdlcyA9IGF3YWl0IHF1ZXJ5UmVjZW50Q2hhbmdlcyhyY3N0YXJ0LCByY2VuZCk7XG5cblx0XHRcdGZvciAoY29uc3Qge3VzZXJ9IG9mIHJlY2VudGNoYW5nZXNbJ3F1ZXJ5J10ucmVjZW50Y2hhbmdlcyBhcyB7dXNlcjogc3RyaW5nfVtdKSB7XG5cdFx0XHRcdHVzZXJzW3VzZXJzLmxlbmd0aF0gPSB1c2VyOyAvLyBSZXBsYWNlIEFycmF5I3B1c2ggdG8gYXZvaWQgY29yZS1qcyBwb2x5ZmlsbGluZ1xuXHRcdFx0fVxuXHRcdH0gY2F0Y2gge31cblxuXHRcdHRyeSB7XG5cdFx0XHRjb25zdCBsb2dldmVudHMgPSBhd2FpdCBxdWVyeUxvZ0V2ZW50cyhyY3N0YXJ0LCByY2VuZCk7XG5cblx0XHRcdGZvciAoY29uc3Qge3VzZXJ9IG9mIGxvZ2V2ZW50c1sncXVlcnknXS5sb2dldmVudHMgYXMge3VzZXI6IHN0cmluZ31bXSkge1xuXHRcdFx0XHR1c2Vyc1t1c2Vycy5sZW5ndGhdID0gdXNlcjtcblx0XHRcdH1cblx0XHR9IGNhdGNoIHt9XG5cblx0XHR1c2VycyA9IHVuaXF1ZUFycmF5KHVzZXJzKTsgLy8gUmVwbGFjZSBTZXQgd2l0aCB1bmlxdWVBcnJheSwgYXZvaWRpbmcgY29yZS1qcyBwb2x5ZmlsbGluZ1xuXG5cdFx0Ly8gR2VuZXJhdGluZyBxdWVyeSBwcm9taXNlc1xuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgdXNlcnMubGVuZ3RoOyBpKyspIHtcblx0XHRcdGNvbnN0IHVzdXNlcnMgPSB1c2Vycy5zcGxpY2UoMCwgMjUpO1xuXHRcdFx0aWYgKCF1c3VzZXJzLmxlbmd0aCkge1xuXHRcdFx0XHRjb250aW51ZTtcblx0XHRcdH1cblxuXHRcdFx0cHJvbWlzZXNbcHJvbWlzZXMubGVuZ3RoXSA9IGFzeW5jICgpOiBQcm9taXNlPHZvaWQ+ID0+IHtcblx0XHRcdFx0Y29uc3QgcmVzcG9uc2UgPSBhd2FpdCBxdWVyeVVzZXJQcm9wcyh1c3VzZXJzKTtcblxuXHRcdFx0XHRmb3IgKGNvbnN0IHtncm91cHMsIG5hbWV9IG9mIHJlc3BvbnNlWydxdWVyeSddLnVzZXJzIGFzIHtncm91cHM6IHN0cmluZ1tdOyBuYW1lOiBzdHJpbmd9W10pIHtcblx0XHRcdFx0XHQvLyByZW1vdmUgYm90c1xuXHRcdFx0XHRcdGlmIChncm91cHMuaW5jbHVkZXMoJ2JvdCcpIHx8IEJMQUNLX0xJU1QuaW5jbHVkZXMobmFtZSkpIHtcblx0XHRcdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdC8vIHJlbW92ZSBsb2dzIHdpdGggbm8gdXNlciBuYW1lc1xuXHRcdFx0XHRcdGlmICghbmFtZSkge1xuXHRcdFx0XHRcdFx0Y29udGludWU7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0aWYgKGdyb3Vwcy5pbmNsdWRlcygnc3Rld2FyZCcpKSB7XG5cdFx0XHRcdFx0XHRzdGV3YXJkc1tzdGV3YXJkcy5sZW5ndGhdID0gbmFtZTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRpZiAoZ3JvdXBzLmluY2x1ZGVzKCdzeXNvcCcpKSB7XG5cdFx0XHRcdFx0XHRzeXNvcHNbc3lzb3BzLmxlbmd0aF0gPSBuYW1lO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdGlmIChncm91cHMuaW5jbHVkZXMoJ3BhdHJvbGxlcicpKSB7XG5cdFx0XHRcdFx0XHRwYXRyb2xsZXJzW3BhdHJvbGxlcnMubGVuZ3RoXSA9IG5hbWU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9O1xuXHRcdH1cblxuXHRcdGZvciAoY29uc3QgcHJvbWlzZSBvZiBwcm9taXNlcykge1xuXHRcdFx0dHJ5IHtcblx0XHRcdFx0YXdhaXQgcHJvbWlzZSgpO1xuXHRcdFx0fSBjYXRjaCB7fVxuXHRcdH1cblx0fVxuXG5cdHJldHVybiB7c3Rld2FyZHMsIHN5c29wcywgcGF0cm9sbGVyc307XG59O1xuXG5leHBvcnQge2dldEFkbWluc307XG4iLCAiaW1wb3J0IHtsb2NhbGl6ZX0gZnJvbSAnZXh0LmdhZGdldC5pMThuJztcblxuY29uc3QgZ2V0STE4bk1lc3NhZ2VzID0gKCkgPT4ge1xuXHRyZXR1cm4ge1xuXHRcdCcgKCQxIG9ubGluZSk6JzogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICcgKCQxIG9ubGluZSk6Jyxcblx0XHRcdGphOiAn77yIJDHkurrjgqrjg7Pjg6njgqTjg7PkuK3vvInvvJonLFxuXHRcdFx0J3poLWhhbnMnOiAn77yIJDHkuKrlnKjnur/vvInvvJonLFxuXHRcdFx0J3poLWhhbnQnOiAn77yIJDHlgIvlnKjnt5rvvInvvJonLFxuXHRcdH0pLFxuXHRcdFBhdHJvbGxlcnM6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnUGF0cm9sbGVycycsXG5cdFx0XHRqYTogJ+W3oeWbnuiAhScsXG5cdFx0XHQnemgtaGFucyc6ICflt6Hmn6XlkZgnLFxuXHRcdFx0J3poLWhhbnQnOiAn5beh5p+l5ZOhJyxcblx0XHR9KSxcblx0XHRTdGV3YXJkczogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdTdGV3YXJkcycsXG5cdFx0XHRqYTogJ+OCueODgeODpeODr+ODvOODiScsXG5cdFx0XHQnemgtaGFucyc6ICfoo4HlhrPlp5TlkZgnLFxuXHRcdFx0J3poLWhhbnQnOiAn6KOB5rG65aeU5ZOhJyxcblx0XHR9KSxcblx0XHQnTmV0d29yayBlcnJvcic6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnTmV0d29yayBlcnJvcicsXG5cdFx0XHRqYTogJ+ODjeODg+ODiOODr+ODvOOCr+OCqOODqeODvCcsXG5cdFx0XHQnemgtaGFucyc6ICfnvZHnu5zlvILluLgnLFxuXHRcdFx0J3poLWhhbnQnOiAn57ay6Lev55Ww5bi4Jyxcblx0XHR9KSxcblx0XHROb09ubGluZTogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdDdXJyZW50bHkgdGhlcmUgYXJlIG5vIGhpZ2ggcHJpdmlsZWdlIHVzZXJzIG9ubGluZScsXG5cdFx0XHRqYTogJ+ePvuWcqOOAgemrmOaoqemZkOWIqeeUqOiAheOBr+OCquODs+ODqeOCpOODs+OBq+OBhOOBvuOBm+OCkycsXG5cdFx0XHQnemgtaGFucyc6ICfnm67liY3msqHmnInnq5nliqHkurrlkZjlnKjnur8nLFxuXHRcdFx0J3poLWhhbnQnOiAn55uu5YmN5rKS5pyJ56uZ5YuZ5Lq65ZOh5Zyo57eaJyxcblx0XHR9KSxcblx0XHRPbmxpbmU6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnT25saW5lIGFkbWlucycsXG5cdFx0XHRqYTogJ+OCquODs+ODqeOCpOODs+OBrumrmOaoqemZkOWIqeeUqOiAhScsXG5cdFx0XHQnemgtaGFucyc6ICflnKjnur/nq5nliqHkurrlkZgnLFxuXHRcdFx0J3poLWhhbnQnOiAn57ea5LiK56uZ5YuZ5Lq65ZOhJyxcblx0XHR9KSxcblx0XHRPbmxpbmVXaXRoaW4zME1pbnV0ZXM6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnSGlnaCBwcml2aWxlZ2UgdXNlcnMgb25saW5lIHdpdGhpbiAzMCBtaW51dGVzOicsXG5cdFx0XHRqYTogJzMw5YiG5Lul5YaF44Gr44Kq44Oz44Op44Kk44Oz44Gn6auY5qip6ZmQ5Yip55So6ICF77yaJyxcblx0XHRcdCd6aC1oYW5zJzogJ+S4i+mdouaYr+acgOi/kTMw5YiG6ZKf5YaF5Zyo57q/55qE56uZ5Yqh5Lq65ZGY77yaJyxcblx0XHRcdCd6aC1oYW50JzogJ+S4i+mdouaYr+acgOi/kTMw5YiG6ZCY5YWn55qE57ea5LiK56uZ5YuZ5Lq65ZOh77yaJyxcblx0XHR9KSxcblx0XHRTeXNPcHM6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnQWRtaW5zJyxcblx0XHRcdGphOiAn566h55CG6ICFJyxcblx0XHRcdCd6aC1oYW5zJzogJ+euoeeQhuWRmCcsXG5cdFx0XHQnemgtaGFudCc6ICfnrqHnkIblk6EnLFxuXHRcdH0pLFxuXHR9O1xufTtcblxuY29uc3QgaTE4bk1lc3NhZ2VzID0gZ2V0STE4bk1lc3NhZ2VzKCk7XG5cbmNvbnN0IGdldE1lc3NhZ2U6IEdldE1lc3NhZ2VzPHR5cGVvZiBpMThuTWVzc2FnZXM+ID0gKGtleSkgPT4ge1xuXHRyZXR1cm4gaTE4bk1lc3NhZ2VzW2tleV0gfHwga2V5O1xufTtcblxuZXhwb3J0IHtnZXRNZXNzYWdlfTtcbiIsICJpbXBvcnQgXCJlc2J1aWxkLWNzcy1tb2R1bGVzLXBsdWdpbi1ucy1jc3M6c3JjL09ubGluZUFkbWlucy9tb2R1bGVzL2NvbXBvbmVudHMvT25saW5lQWRtaW5zLm1vZHVsZS5sZXNzXCI7XG5leHBvcnQgY29uc3Qgc2VjdGlvbiA9IFwiT25saW5lQWRtaW5zLW1vZHVsZV9fc2VjdGlvbl9XUzlJR2FcIjtcbmV4cG9ydCBjb25zdCBzZWN0aW9uTGlzdCA9IFwiT25saW5lQWRtaW5zLW1vZHVsZV9fc2VjdGlvbkxpc3RfV1M5SUdhXCI7XG5leHBvcnQgY29uc3QgdGFsa1BhZ2VMaW5rID0gXCJPbmxpbmVBZG1pbnMtbW9kdWxlX190YWxrUGFnZUxpbmtfV1M5SUdhXCI7XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgXCJzZWN0aW9uXCI6IHNlY3Rpb24sXG4gIFwic2VjdGlvbkxpc3RcIjogc2VjdGlvbkxpc3QsXG4gIFwidGFsa1BhZ2VMaW5rXCI6IHRhbGtQYWdlTGlua1xufTtcbiAgICAgICIsICJpbXBvcnQge3NlY3Rpb24sIHNlY3Rpb25MaXN0LCB0YWxrUGFnZUxpbmt9IGZyb20gJy4vT25saW5lQWRtaW5zLm1vZHVsZS5sZXNzJztcbmltcG9ydCBSZWFjdCBmcm9tICdleHQuZ2FkZ2V0LlJlYWN0JztcbmltcG9ydCB7Z2V0TWVzc2FnZX0gZnJvbSAnLi4vaTE4bic7XG5pbXBvcnQge3Nhbml0aXplfSBmcm9tICcuLi91dGlsL3Nhbml0aXplJztcblxuaW50ZXJmYWNlIFVzZXJMaW5rUHJvcHMge1xuXHR1c2VyTmFtZTogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgR3JvdXBMaXN0UHJvcHMge1xuXHRncm91cE5hbWU6IHN0cmluZztcblx0dXNlck5hbWVzOiBzdHJpbmdbXTtcbn1cblxuaW50ZXJmYWNlIE9ubGluZUFkbWluc0xpc3RQcm9wcyB7XG5cdHN0ZXdhcmRzOiBzdHJpbmdbXTtcblx0c3lzb3BzOiBzdHJpbmdbXTtcblx0cGF0cm9sbGVyczogc3RyaW5nW107XG59XG5cbmNvbnN0IFVzZXJMaW5rID0gKHt1c2VyTmFtZX06IFVzZXJMaW5rUHJvcHMpID0+IChcblx0PGxpPlxuXHRcdDxhIGhyZWY9e213LnV0aWwuZ2V0VXJsKGBVc2VyOiR7c2FuaXRpemUodXNlck5hbWUpfWApfSByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCI+XG5cdFx0XHR7c2FuaXRpemUodXNlck5hbWUpfVxuXHRcdDwvYT5cblx0XHQmbmJzcDtcblx0XHQ8c3BhbiBjbGFzc05hbWU9e3RhbGtQYWdlTGlua30+XG5cdFx0XHTvvIhcblx0XHRcdDxhIGhyZWY9e213LnV0aWwuZ2V0VXJsKGBVc2VyX3RhbGs6JHtzYW5pdGl6ZSh1c2VyTmFtZSl9YCl9IHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIj5cblx0XHRcdFx055WZ6KiAXG5cdFx0XHQ8L2E+XG5cdFx0XHTvvIlcblx0XHQ8L3NwYW4+XG5cdDwvbGk+XG4pO1xuXG5jb25zdCBvbmxpbmVDb3VudFRleHQ6IHN0cmluZyA9IGdldE1lc3NhZ2UoJyAoJDEgb25saW5lKTonKTtcblxuY29uc3QgR3JvdXBMaXN0ID0gKHtncm91cE5hbWUsIHVzZXJOYW1lc306IEdyb3VwTGlzdFByb3BzKSA9PiAoXG5cdDxkaXYgY2xhc3NOYW1lPXtzZWN0aW9ufT5cblx0XHQ8c3Bhbj57Z3JvdXBOYW1lfTwvc3Bhbj5cblx0XHQ8c3Bhbj57b25saW5lQ291bnRUZXh0LnJlcGxhY2UoJyQxJywgU3RyaW5nKHVzZXJOYW1lcy5sZW5ndGgpKX08L3NwYW4+XG5cdFx0PHVsIGNsYXNzTmFtZT17c2VjdGlvbkxpc3R9PlxuXHRcdFx0e3VzZXJOYW1lcy5tYXAoKHVzZXIpID0+IChcblx0XHRcdFx0PFVzZXJMaW5rIGtleT17dXNlcn0gdXNlck5hbWU9e3VzZXJ9IC8+XG5cdFx0XHQpKX1cblx0XHQ8L3VsPlxuXHQ8L2Rpdj5cbik7XG5cbmNvbnN0IExpc3RUaXRsZSA9ICgpID0+IDxwPntnZXRNZXNzYWdlKCdPbmxpbmVXaXRoaW4zME1pbnV0ZXMnKX08L3A+O1xuXG5jb25zdCBPbmxpbmVBZG1pbnNMaXN0ID0gKHtzdGV3YXJkcywgc3lzb3BzLCBwYXRyb2xsZXJzfTogT25saW5lQWRtaW5zTGlzdFByb3BzKSA9PiAoXG5cdDxkaXY+XG5cdFx0PExpc3RUaXRsZSAvPlxuXHRcdHtzdGV3YXJkcy5sZW5ndGggJiYgPEdyb3VwTGlzdCBncm91cE5hbWU9e2dldE1lc3NhZ2UoJ1N0ZXdhcmRzJyl9IHVzZXJOYW1lcz17c3Rld2FyZHN9IC8+fVxuXHRcdHtzeXNvcHMubGVuZ3RoICYmIDxHcm91cExpc3QgZ3JvdXBOYW1lPXtnZXRNZXNzYWdlKCdTeXNPcHMnKX0gdXNlck5hbWVzPXtzeXNvcHN9IC8+fVxuXHRcdHtwYXRyb2xsZXJzLmxlbmd0aCAmJiA8R3JvdXBMaXN0IGdyb3VwTmFtZT17Z2V0TWVzc2FnZSgnUGF0cm9sbGVycycpfSB1c2VyTmFtZXM9e3N5c29wc30gLz59XG5cdDwvZGl2PlxuKTtcblxuY29uc3QgZ2V0T25saW5lQWRtaW5zTGlzdCA9ICh7c3Rld2FyZHMsIHN5c29wcywgcGF0cm9sbGVyc306IE9ubGluZUFkbWluc0xpc3RQcm9wcykgPT4gKFxuXHQ8T25saW5lQWRtaW5zTGlzdCBzdGV3YXJkcz17c3Rld2FyZHN9IHN5c29wcz17c3lzb3BzfSBwYXRyb2xsZXJzPXtwYXRyb2xsZXJzfSAvPlxuKTtcblxuZXhwb3J0IHtnZXRPbmxpbmVBZG1pbnNMaXN0fTtcbiIsICJjb25zdCBzYW5pdGl6ZSA9IChzdHJpbmc6IHN0cmluZykgPT4ge1xuXHRyZXR1cm4gc3RyaW5nXG5cdFx0LnJlcGxhY2UoLyYvZywgJyZhbXA7Jylcblx0XHQucmVwbGFjZSgvPC9nLCAnJmx0OycpXG5cdFx0LnJlcGxhY2UoLz4vZywgJyZndDsnKVxuXHRcdC5yZXBsYWNlKC8nL2csICcmYXBvczsnKVxuXHRcdC5yZXBsYWNlKC9cIi9nLCAnJnF1b3Q7Jyk7XG59O1xuXG5leHBvcnQge3Nhbml0aXplfTtcbiIsICJpbXBvcnQge2dldEFkbWluc30gZnJvbSAnLi91dGlsL2dldEFkbWlucyc7XG5pbXBvcnQge2dldE1lc3NhZ2V9IGZyb20gJy4vaTE4bic7XG5pbXBvcnQge2dldE9ubGluZUFkbWluc0xpc3R9IGZyb20gJy4vY29tcG9uZW50cy9ncm91cExpc3QnO1xuXG5jb25zdCBkb0NsaWNrID0gYXN5bmMgKGV2ZW50OiBKUXVlcnkuQ2xpY2tFdmVudDxIVE1MQW5jaG9yRWxlbWVudD4pOiBQcm9taXNlPHZvaWQ+ID0+IHtcblx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuXHRjb25zdCBub3RpZnkgPSAoZWxlbWVudDogc3RyaW5nIHwgSlF1ZXJ5PEhUTUxFbGVtZW50PiwgdHlwZTogJ2Vycm9yJyB8ICdpbmZvJyB8ICdzdWNjZXNzJyB8ICd3YXJuJyA9ICdpbmZvJykgPT4ge1xuXHRcdHJldHVybiBtdy5ub3RpZnkoZWxlbWVudCwge1xuXHRcdFx0dGFnOiAnb25saW5lQWRtaW5zJyxcblx0XHRcdHR5cGUsXG5cdFx0fSk7XG5cdH07XG5cblx0dHJ5IHtcblx0XHRjb25zdCB7c3Rld2FyZHMsIHN5c29wcywgcGF0cm9sbGVyc30gPSBhd2FpdCBnZXRBZG1pbnMoKTtcblxuXHRcdGlmIChzdGV3YXJkcy5sZW5ndGggKyBzeXNvcHMubGVuZ3RoICsgcGF0cm9sbGVycy5sZW5ndGgpIHtcblx0XHRcdG5vdGlmeSgkKCc8ZGl2PicpLmFwcGVuZChnZXRPbmxpbmVBZG1pbnNMaXN0KHtzdGV3YXJkcywgc3lzb3BzLCBwYXRyb2xsZXJzfSkpKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0bm90aWZ5KGdldE1lc3NhZ2UoJ05vT25saW5lJyksICd3YXJuJyk7XG5cdFx0fVxuXHR9IGNhdGNoIHtcblx0XHRub3RpZnkoZ2V0TWVzc2FnZSgnTmV0d29yayBlcnJvcicpLCAnZXJyb3InKTtcblx0fVxufTtcblxuZXhwb3J0IHtkb0NsaWNrfTtcbiIsICJpbXBvcnQge2RvQ2xpY2t9IGZyb20gJy4vbW9kdWxlcy9kb0NsaWNrJztcbmltcG9ydCB7Z2V0TWVzc2FnZX0gZnJvbSAnLi9tb2R1bGVzL2kxOG4nO1xuXG5jb25zdCBhZGRQb3J0bGV0TGluayA9ICgpOiB2b2lkID0+IHtcblx0Ly8gQ3JlYXRlIHBvcnRsZXQgbGlua1xuXHRjb25zdCBwb3J0bGV0SWQ6ICdwLWNhY3Rpb25zJyB8ICdwLXRiJyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNwLWNhY3Rpb25zJykgPyAncC1jYWN0aW9ucycgOiAncC10Yic7XG5cdGNvbnN0IGVsZW1lbnQ6IEhUTUxMSUVsZW1lbnQgfCBudWxsID0gbXcudXRpbC5hZGRQb3J0bGV0TGluayhwb3J0bGV0SWQsICcjJywgZ2V0TWVzc2FnZSgnT25saW5lJyksICd0LW9ubGluZWFkbWluJyk7XG5cdGlmICghZWxlbWVudCkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdC8vIEJpbmQgY2xpY2sgbGlzdGVuZXJcblx0JChlbGVtZW50KVxuXHRcdC5maW5kKCdhJylcblx0XHQub24oJ2NsaWNrJywgKGV2ZW50KSA9PiB7XG5cdFx0XHR2b2lkIGRvQ2xpY2soZXZlbnQpO1xuXHRcdH0pO1xufTtcblxuJChhZGRQb3J0bGV0TGluayk7XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQyxJQUFBQSxVQUFXO0FBQ1gsSUFBQUMsYUFBYzs7QUNEZixJQUFBQyxvQkFBd0JDLFFBQUEsaUJBQUE7QUFFeEIsSUFBTUMsT0FBQSxHQUFjRixrQkFBQUcsV0FBQSxnQkFBQUMsT0FBa0NOLE9BQU8sQ0FBRTs7QUNEL0QsSUFBTU8scUJBQUEsMkJBQUE7QUFBQSxNQUFBQyxPQUFBQyxrQkFBcUIsV0FBT0MsU0FBaUJDLE9BQWtCO0FBQ3BFLFVBQU1DLFNBQXNDO01BQzNDRjtNQUNBQztNQUNBRSxRQUFRO01BQ1JDLFFBQVE7TUFDUkMsZUFBZTtNQUNmQyxNQUFNO01BQ05DLFFBQVE7TUFDUkMsUUFBUSxDQUFDLFFBQVEsT0FBTztNQUN4QkMsU0FBUztNQUNUQyxTQUFTO01BQ1RDLFFBQVE7SUFDVDtBQUNBLFVBQU1DLFdBQUEsTUFBaUJsQixJQUFJbUIsSUFBSVgsTUFBTTtBQUVyQyxXQUFPVTtFQUNSLENBQUE7QUFBQSxTQUFBLFNBakJNZixvQkFBQWlCLElBQUFDLEtBQUE7QUFBQSxXQUFBakIsS0FBQWtCLE1BQUEsTUFBQUMsU0FBQTtFQUFBO0FBQUEsRUFBQTtBQW1CTixJQUFNQyxpQkFBQSwyQkFBQTtBQUFBLE1BQUFDLFFBQUFwQixrQkFBaUIsV0FBT3FCLFNBQWlCQyxPQUFrQjtBQUNoRSxVQUFNbkIsU0FBa0M7TUFDdkNrQjtNQUNBQztNQUNBbEIsUUFBUTtNQUNSQyxRQUFRO01BQ1JDLGVBQWU7TUFDZkMsTUFBTTtNQUNOZ0IsUUFBUTtNQUNS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RCxDQUFDO0lBQ0Y7QUFFQSxRQUFJO0FBQ0gsWUFBTTtRQUFDdkY7UUFBVUM7UUFBUUM7TUFBVSxJQUFBLE1BQVVKLFVBQVU7QUFFdkQsVUFBSUUsU0FBU3NCLFNBQVNyQixPQUFPcUIsU0FBU3BCLFdBQVdvQixRQUFRO0FBQ3hEK0QsZUFBT0ksRUFBRSxPQUFPLEVBQUVDLE9BQU9WLG9CQUFvQjtVQUFDaEY7VUFBVUM7VUFBUUM7UUFBVSxDQUFDLENBQUMsQ0FBQztNQUM5RSxPQUFPO0FBQ05tRixlQUFPakMsV0FBVyxVQUFVLEdBQUcsTUFBTTtNQUN0QztJQUNELFFBQVE7QUFDUGlDLGFBQU9qQyxXQUFXLGVBQWUsR0FBRyxPQUFPO0lBQzVDO0VBQ0QsQ0FBQTtBQUFBLFNBQUEsU0FyQk02QixTQUFBVSxLQUFBO0FBQUEsV0FBQVQsTUFBQXJHLE1BQUEsTUFBQUMsU0FBQTtFQUFBO0FBQUEsRUFBQTs7QUNETixJQUFNOEcsaUJBQWlCQSxNQUFZO0FBRWxDLFFBQU1DLFlBQW1DQyxTQUFTQyxjQUFjLGFBQWEsSUFBSSxlQUFlO0FBQ2hHLFFBQU1ULFVBQWdDbkYsR0FBR2dFLEtBQUt5QixlQUFlQyxXQUFXLEtBQUt6QyxXQUFXLFFBQVEsR0FBRyxlQUFlO0FBQ2xILE1BQUksQ0FBQ2tDLFNBQVM7QUFDYjtFQUNEO0FBR0FHLElBQUVILE9BQU8sRUFDUFUsS0FBSyxHQUFHLEVBQ1JDLEdBQUcsU0FBVWQsV0FBVTtBQUN2QixTQUFLRixRQUFRRSxLQUFLO0VBQ25CLENBQUM7QUFDSDtBQUVBTSxFQUFFRyxjQUFjOyIsCiAgIm5hbWVzIjogWyJ2ZXJzaW9uIiwgInN0b3JhZ2VLZXkiLCAiaW1wb3J0X2V4dF9nYWRnZXQiLCAicmVxdWlyZSIsICJhcGkiLCAiaW5pdE13QXBpIiwgImNvbmNhdCIsICJxdWVyeVJlY2VudENoYW5nZXMiLCAiX3JlZiIsICJfYXN5bmNUb0dlbmVyYXRvciIsICJyY3N0YXJ0IiwgInJjZW5kIiwgInBhcmFtcyIsICJhY3Rpb24iLCAiZm9ybWF0IiwgImZvcm1hdHZlcnNpb24iLCAibGlzdCIsICJyY3Byb3AiLCAicmNzaG93IiwgInJjbGltaXQiLCAic21heGFnZSIsICJtYXhhZ2UiLCAicmVzcG9uc2UiLCAiZ2V0IiwgIl94IiwgIl94MiIsICJhcHBseSIsICJhcmd1bWVudHMiLCAicXVlcnlMb2dFdmVudHMiLCAiX3JlZjIiLCAibGVzdGFydCIsICJsZWVuZCIsICJsZXByb3AiLCAibGVsaW1pdCIsICJfeDMiLCAiX3g0IiwgInF1ZXJ5VXNlclByb3BzIiwgIl9yZWYzIiwgInVzdXNlcnMiLCAidXNwcm9wIiwgIl94NSIsICJCTEFDS19MSVNUIiwgImltcG9ydF9leHRfZ2FkZ2V0MiIsICJnZXRBZG1pbnMiLCAiX3JlZjQiLCAic3Rld2FyZHMiLCAic3lzb3BzIiwgInBhdHJvbGxlcnMiLCAibXciLCAic3RvcmFnZSIsICJnZXRPYmplY3QiLCAidXNlcnMiLCAicHJvbWlzZXMiLCAidGltZSIsICJEYXRlIiwgInRvSVNPU3RyaW5nIiwgInNldE1pbnV0ZXMiLCAiZ2V0TWludXRlcyIsICJyZWNlbnRjaGFuZ2VzIiwgIl9pdGVyYXRvcjIiLCAiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIiLCAiX3N0ZXAyIiwgInMiLCAibiIsICJkb25lIiwgInVzZXIiLCAidmFsdWUiLCAibGVuZ3RoIiwgImVyciIsICJlIiwgImYiLCAibG9nZXZlbnRzIiwgIl9pdGVyYXRvcjMiLCAiX3N0ZXAzIiwgInVuaXF1ZUFycmF5IiwgImkiLCAic3BsaWNlIiwgIl9pdGVyYXRvcjQiLCAiX3N0ZXA0IiwgImdyb3VwcyIsICJuYW1lIiwgImluY2x1ZGVzIiwgIl9pIiwgIl9wcm9taXNlcyIsICJwcm9taXNlIiwgImltcG9ydF9leHRfZ2FkZ2V0MyIsICJnZXRJMThuTWVzc2FnZXMiLCAibG9jYWxpemUiLCAiZW4iLCAiamEiLCAiUGF0cm9sbGVycyIsICJTdGV3YXJkcyIsICJOb09ubGluZSIsICJPbmxpbmUiLCAiT25saW5lV2l0aGluMzBNaW51dGVzIiwgIlN5c09wcyIsICJpMThuTWVzc2FnZXMiLCAiZ2V0TWVzc2FnZSIsICJrZXkiLCAic2VjdGlvbiIsICJzZWN0aW9uTGlzdCIsICJ0YWxrUGFnZUxpbmsiLCAiaW1wb3J0X2V4dF9nYWRnZXQ0IiwgIl9fdG9FU00iLCAic2FuaXRpemUiLCAic3RyaW5nIiwgInJlcGxhY2UiLCAiVXNlckxpbmsiLCAidXNlck5hbWUiLCAiZGVmYXVsdCIsICJjcmVhdGVFbGVtZW50IiwgImhyZWYiLCAidXRpbCIsICJnZXRVcmwiLCAicmVsIiwgInRhcmdldCIsICJjbGFzc05hbWUiLCAib25saW5lQ291bnRUZXh0IiwgIkdyb3VwTGlzdCIsICJncm91cE5hbWUiLCAidXNlck5hbWVzIiwgIlN0cmluZyIsICJtYXAiLCAiTGlzdFRpdGxlIiwgIk9ubGluZUFkbWluc0xpc3QiLCAiZ2V0T25saW5lQWRtaW5zTGlzdCIsICJkb0NsaWNrIiwgIl9yZWY2IiwgImV2ZW50IiwgInByZXZlbnREZWZhdWx0IiwgIm5vdGlmeSIsICJlbGVtZW50IiwgInR5cGUiLCAidGFnIiwgIiQiLCAiYXBwZW5kIiwgIl94NiIsICJhZGRQb3J0bGV0TGluayIsICJwb3J0bGV0SWQiLCAiZG9jdW1lbnQiLCAicXVlcnlTZWxlY3RvciIsICJmaW5kIiwgIm9uIl0KfQo= +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL09ubGluZUFkbWlucy9vcHRpb25zLmpzb24iLCAic3JjL09ubGluZUFkbWlucy9tb2R1bGVzL3V0aWwvYXBpLnRzIiwgInNyYy9PbmxpbmVBZG1pbnMvbW9kdWxlcy91dGlsL3F1ZXJ5LnRzIiwgInNyYy9PbmxpbmVBZG1pbnMvbW9kdWxlcy9jb25zdGFudC50cyIsICJzcmMvT25saW5lQWRtaW5zL21vZHVsZXMvdXRpbC9nZXRBZG1pbnMudHMiLCAic3JjL09ubGluZUFkbWlucy9tb2R1bGVzL2kxOG4udHMiLCAic3JjL09ubGluZUFkbWlucy9tb2R1bGVzL2NvbXBvbmVudHMvT25saW5lQWRtaW5zLm1vZHVsZS5sZXNzIiwgInNyYy9PbmxpbmVBZG1pbnMvbW9kdWxlcy9jb21wb25lbnRzL2dyb3VwTGlzdC50c3giLCAic3JjL09ubGluZUFkbWlucy9tb2R1bGVzL3V0aWwvc2FuaXRpemUudHMiLCAic3JjL09ubGluZUFkbWlucy9tb2R1bGVzL2RvQ2xpY2sudHMiLCAic3JjL09ubGluZUFkbWlucy9PbmxpbmVBZG1pbnMudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIntcblx0XCJ2ZXJzaW9uXCI6IFwiMi4wXCIsXG5cdFwic3RvcmFnZUtleVwiOiBcImV4dC5nYWRnZXQuT25saW5lQWRtaW5zX2dldEFkbWluc1wiXG59XG4iLCAiaW1wb3J0ICogYXMgT1BUSU9OUyBmcm9tICcuLi8uLi9vcHRpb25zLmpzb24nO1xuaW1wb3J0IHtpbml0TXdBcGl9IGZyb20gJ2V4dC5nYWRnZXQuVXRpbCc7XG5cbmNvbnN0IGFwaTogbXcuQXBpID0gaW5pdE13QXBpKGBPbmxpbmVBZG1pbnMvJHtPUFRJT05TLnZlcnNpb259YCk7XG5cbmV4cG9ydCB7YXBpfTtcbiIsICJpbXBvcnQge2FwaX0gZnJvbSAnLi9hcGknO1xuXG5jb25zdCBxdWVyeVJlY2VudENoYW5nZXMgPSBhc3luYyAocmNzdGFydDogc3RyaW5nLCByY2VuZDogc3RyaW5nKSA9PiB7XG5cdGNvbnN0IHBhcmFtczogQXBpUXVlcnlSZWNlbnRDaGFuZ2VzUGFyYW1zID0ge1xuXHRcdHJjc3RhcnQsXG5cdFx0cmNlbmQsXG5cdFx0YWN0aW9uOiAncXVlcnknLFxuXHRcdGZvcm1hdDogJ2pzb24nLFxuXHRcdGZvcm1hdHZlcnNpb246ICcyJyxcblx0XHRsaXN0OiAncmVjZW50Y2hhbmdlcycsXG5cdFx0cmNwcm9wOiAndXNlcicsXG5cdFx0cmNzaG93OiBbJyFib3QnLCAnIWFub24nXSxcblx0XHRyY2xpbWl0OiA1MDAsXG5cdFx0c21heGFnZTogNjAwLFxuXHRcdG1heGFnZTogNjAwLFxuXHR9O1xuXHRjb25zdCByZXNwb25zZSA9IGF3YWl0IGFwaS5nZXQocGFyYW1zKTtcblxuXHRyZXR1cm4gcmVzcG9uc2U7XG59O1xuXG5jb25zdCBxdWVyeUxvZ0V2ZW50cyA9IGFzeW5jIChsZXN0YXJ0OiBzdHJpbmcsIGxlZW5kOiBzdHJpbmcpID0+IHtcblx0Y29uc3QgcGFyYW1zOiBBcGlRdWVyeUxvZ0V2ZW50c1BhcmFtcyA9IHtcblx0XHRsZXN0YXJ0LFxuXHRcdGxlZW5kLFxuXHRcdGFjdGlvbjogJ3F1ZXJ5Jyxcblx0XHRmb3JtYXQ6ICdqc29uJyxcblx0XHRmb3JtYXR2ZXJzaW9uOiAnMicsXG5cdFx0bGlzdDogJ2xvZ2V2ZW50cycsXG5cdFx0bGVwcm9wOiAndXNlcicsXG5cdFx0bGVsaW1pdDogNTAwLFxuXHRcdHNtYXhhZ2U6IDYwMCxcblx0XHRtYXhhZ2U6IDYwMCxcblx0fTtcblx0Y29uc3QgcmVzcG9uc2UgPSBhd2FpdCBhcGkuZ2V0KHBhcmFtcyk7XG5cblx0cmV0dXJuIHJlc3BvbnNlO1xufTtcblxuY29uc3QgcXVlcnlVc2VyUHJvcHMgPSBhc3luYyAodXN1c2Vyczogc3RyaW5nIHwgc3RyaW5nW10pID0+IHtcblx0Y29uc3QgcGFyYW1zOiBBcGlRdWVyeVVzZXJzUGFyYW1zID0ge1xuXHRcdHVzdXNlcnMsXG5cdFx0YWN0aW9uOiAncXVlcnknLFxuXHRcdGZvcm1hdDogJ2pzb24nLFxuXHRcdGZvcm1hdHZlcnNpb246ICcyJyxcblx0XHRsaXN0OiAndXNlcnMnLFxuXHRcdHVzcHJvcDogJ2dyb3VwcycsXG5cdFx0c21heGFnZTogNjAwLFxuXHRcdG1heGFnZTogNjAwLFxuXHR9O1xuXHRjb25zdCByZXNwb25zZSA9IGF3YWl0IGFwaS5nZXQocGFyYW1zKTtcblxuXHRyZXR1cm4gcmVzcG9uc2U7XG59O1xuXG5leHBvcnQge3F1ZXJ5UmVjZW50Q2hhbmdlcywgcXVlcnlMb2dFdmVudHMsIHF1ZXJ5VXNlclByb3BzfTtcbiIsICJjb25zdCBCTEFDS19MSVNUOiBzdHJpbmdbXSA9IFsn5rul55So6L+H5ruk5ZmoJ107XG5cbmV4cG9ydCB7QkxBQ0tfTElTVH07XG4iLCAiaW1wb3J0ICogYXMgT1BUSU9OUyBmcm9tICcuLi8uLi9vcHRpb25zLmpzb24nO1xuaW1wb3J0IHtxdWVyeUxvZ0V2ZW50cywgcXVlcnlSZWNlbnRDaGFuZ2VzLCBxdWVyeVVzZXJQcm9wc30gZnJvbSAnLi9xdWVyeSc7XG5pbXBvcnQge0JMQUNLX0xJU1R9IGZyb20gJy4uL2NvbnN0YW50JztcbmltcG9ydCB7dW5pcXVlQXJyYXl9IGZyb20gJ2V4dC5nYWRnZXQuVXRpbCc7XG5cbmNvbnN0IGdldEFkbWlucyA9IGFzeW5jICgpID0+IHtcblx0bGV0IHN0ZXdhcmRzOiBzdHJpbmdbXSA9IFtdO1xuXHRsZXQgc3lzb3BzOiBzdHJpbmdbXSA9IFtdO1xuXHRsZXQgcGF0cm9sbGVyczogc3RyaW5nW10gPSBbXTtcblxuXHRpZiAobXcuc3RvcmFnZS5nZXRPYmplY3QoT1BUSU9OUy5zdG9yYWdlS2V5KSkge1xuXHRcdCh7c3Rld2FyZHMsIHN5c29wcywgcGF0cm9sbGVyc30gPSBtdy5zdG9yYWdlLmdldE9iamVjdChPUFRJT05TLnN0b3JhZ2VLZXkpIGFzIHtcblx0XHRcdHN0ZXdhcmRzOiBzdHJpbmdbXTtcblx0XHRcdHN5c29wczogc3RyaW5nW107XG5cdFx0XHRwYXRyb2xsZXJzOiBzdHJpbmdbXTtcblx0XHR9KTtcblx0fSBlbHNlIHtcblx0XHRsZXQgdXNlcnM6IHN0cmluZ1tdID0gW107XG5cdFx0Y29uc3QgcHJvbWlzZXM6ICgoKSA9PiBQcm9taXNlPHZvaWQ+KVtdID0gW107XG5cblx0XHRjb25zdCB0aW1lOiBEYXRlID0gbmV3IERhdGUoKTtcblx0XHRjb25zdCByY3N0YXJ0OiBzdHJpbmcgPSB0aW1lLnRvSVNPU3RyaW5nKCk7XG5cblx0XHQvLyBRdWVyeSB1c2VycyBoYXMgbG9nL2VkaXQgcmVjb3JkIGluIHJlY2VudCAzMCBtaW51dGVzXG5cdFx0dGltZS5zZXRNaW51dGVzKHRpbWUuZ2V0TWludXRlcygpIC0gMzApOyAvLyDmnIDov5Hmm7TmlLkzMOWIhumSn+WGheeahOe8lui+keeUqOaIt1xuXHRcdGNvbnN0IHJjZW5kOiBzdHJpbmcgPSB0aW1lLnRvSVNPU3RyaW5nKCk7XG5cblx0XHR0cnkge1xuXHRcdFx0Y29uc3QgcmVjZW50Y2hhbmdlcyA9IGF3YWl0IHF1ZXJ5UmVjZW50Q2hhbmdlcyhyY3N0YXJ0LCByY2VuZCk7XG5cblx0XHRcdGZvciAoY29uc3Qge3VzZXJ9IG9mIHJlY2VudGNoYW5nZXNbJ3F1ZXJ5J10ucmVjZW50Y2hhbmdlcyBhcyB7dXNlcjogc3RyaW5nfVtdKSB7XG5cdFx0XHRcdHVzZXJzW3VzZXJzLmxlbmd0aF0gPSB1c2VyOyAvLyBSZXBsYWNlIEFycmF5I3B1c2ggdG8gYXZvaWQgY29yZS1qcyBwb2x5ZmlsbGluZ1xuXHRcdFx0fVxuXHRcdH0gY2F0Y2gge31cblxuXHRcdHRyeSB7XG5cdFx0XHRjb25zdCBsb2dldmVudHMgPSBhd2FpdCBxdWVyeUxvZ0V2ZW50cyhyY3N0YXJ0LCByY2VuZCk7XG5cblx0XHRcdGZvciAoY29uc3Qge3VzZXJ9IG9mIGxvZ2V2ZW50c1sncXVlcnknXS5sb2dldmVudHMgYXMge3VzZXI6IHN0cmluZ31bXSkge1xuXHRcdFx0XHR1c2Vyc1t1c2Vycy5sZW5ndGhdID0gdXNlcjtcblx0XHRcdH1cblx0XHR9IGNhdGNoIHt9XG5cblx0XHR1c2VycyA9IHVuaXF1ZUFycmF5KHVzZXJzKTsgLy8gUmVwbGFjZSBTZXQgd2l0aCB1bmlxdWVBcnJheSwgYXZvaWRpbmcgY29yZS1qcyBwb2x5ZmlsbGluZ1xuXG5cdFx0Ly8gR2VuZXJhdGluZyBxdWVyeSBwcm9taXNlc1xuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgdXNlcnMubGVuZ3RoOyBpKyspIHtcblx0XHRcdGNvbnN0IHVzdXNlcnMgPSB1c2Vycy5zcGxpY2UoMCwgMjUpO1xuXHRcdFx0aWYgKCF1c3VzZXJzLmxlbmd0aCkge1xuXHRcdFx0XHRjb250aW51ZTtcblx0XHRcdH1cblxuXHRcdFx0cHJvbWlzZXNbcHJvbWlzZXMubGVuZ3RoXSA9IGFzeW5jICgpOiBQcm9taXNlPHZvaWQ+ID0+IHtcblx0XHRcdFx0Y29uc3QgcmVzcG9uc2UgPSBhd2FpdCBxdWVyeVVzZXJQcm9wcyh1c3VzZXJzKTtcblxuXHRcdFx0XHRmb3IgKGNvbnN0IHtncm91cHMsIG5hbWV9IG9mIHJlc3BvbnNlWydxdWVyeSddLnVzZXJzIGFzIHtncm91cHM6IHN0cmluZ1tdOyBuYW1lOiBzdHJpbmd9W10pIHtcblx0XHRcdFx0XHQvLyByZW1vdmUgYm90c1xuXHRcdFx0XHRcdGlmIChncm91cHMuaW5jbHVkZXMoJ2JvdCcpIHx8IEJMQUNLX0xJU1QuaW5jbHVkZXMobmFtZSkpIHtcblx0XHRcdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdC8vIHJlbW92ZSBsb2dzIHdpdGggbm8gdXNlciBuYW1lc1xuXHRcdFx0XHRcdGlmICghbmFtZSkge1xuXHRcdFx0XHRcdFx0Y29udGludWU7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0aWYgKGdyb3Vwcy5pbmNsdWRlcygnc3Rld2FyZCcpKSB7XG5cdFx0XHRcdFx0XHRzdGV3YXJkc1tzdGV3YXJkcy5sZW5ndGhdID0gbmFtZTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRpZiAoZ3JvdXBzLmluY2x1ZGVzKCdzeXNvcCcpKSB7XG5cdFx0XHRcdFx0XHRzeXNvcHNbc3lzb3BzLmxlbmd0aF0gPSBuYW1lO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdGlmIChncm91cHMuaW5jbHVkZXMoJ3BhdHJvbGxlcicpKSB7XG5cdFx0XHRcdFx0XHRwYXRyb2xsZXJzW3BhdHJvbGxlcnMubGVuZ3RoXSA9IG5hbWU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9O1xuXHRcdH1cblxuXHRcdGZvciAoY29uc3QgcHJvbWlzZSBvZiBwcm9taXNlcykge1xuXHRcdFx0dHJ5IHtcblx0XHRcdFx0YXdhaXQgcHJvbWlzZSgpO1xuXHRcdFx0fSBjYXRjaCB7fVxuXHRcdH1cblx0fVxuXG5cdHJldHVybiB7c3Rld2FyZHMsIHN5c29wcywgcGF0cm9sbGVyc307XG59O1xuXG5leHBvcnQge2dldEFkbWluc307XG4iLCAiaW1wb3J0IHtsb2NhbGl6ZX0gZnJvbSAnZXh0LmdhZGdldC5pMThuJztcblxuY29uc3QgZ2V0STE4bk1lc3NhZ2VzID0gKCkgPT4ge1xuXHRyZXR1cm4ge1xuXHRcdCcgKCQxIG9ubGluZSk6JzogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICcgKCQxIG9ubGluZSk6Jyxcblx0XHRcdGphOiAn77yIJDHkurrjgqrjg7Pjg6njgqTjg7PkuK3vvInvvJonLFxuXHRcdFx0J3poLWhhbnMnOiAn77yIJDHkuKrlnKjnur/vvInvvJonLFxuXHRcdFx0J3poLWhhbnQnOiAn77yIJDHlgIvlnKjnt5rvvInvvJonLFxuXHRcdH0pLFxuXHRcdFBhdHJvbGxlcnM6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnUGF0cm9sbGVycycsXG5cdFx0XHRqYTogJ+W3oeWbnuiAhScsXG5cdFx0XHQnemgtaGFucyc6ICflt6Hmn6XlkZgnLFxuXHRcdFx0J3poLWhhbnQnOiAn5beh5p+l5ZOhJyxcblx0XHR9KSxcblx0XHRTdGV3YXJkczogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdTdGV3YXJkcycsXG5cdFx0XHRqYTogJ+OCueODgeODpeODr+ODvOODiScsXG5cdFx0XHQnemgtaGFucyc6ICfoo4HlhrPlp5TlkZgnLFxuXHRcdFx0J3poLWhhbnQnOiAn6KOB5rG65aeU5ZOhJyxcblx0XHR9KSxcblx0XHQnTmV0d29yayBlcnJvcic6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnTmV0d29yayBlcnJvcicsXG5cdFx0XHRqYTogJ+ODjeODg+ODiOODr+ODvOOCr+OCqOODqeODvCcsXG5cdFx0XHQnemgtaGFucyc6ICfnvZHnu5zlvILluLgnLFxuXHRcdFx0J3poLWhhbnQnOiAn57ay6Lev55Ww5bi4Jyxcblx0XHR9KSxcblx0XHROb09ubGluZTogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdDdXJyZW50bHkgdGhlcmUgYXJlIG5vIGhpZ2ggcHJpdmlsZWdlIHVzZXJzIG9ubGluZScsXG5cdFx0XHRqYTogJ+ePvuWcqOOAgemrmOaoqemZkOWIqeeUqOiAheOBr+OCquODs+ODqeOCpOODs+OBq+OBhOOBvuOBm+OCkycsXG5cdFx0XHQnemgtaGFucyc6ICfnm67liY3msqHmnInnq5nliqHkurrlkZjlnKjnur8nLFxuXHRcdFx0J3poLWhhbnQnOiAn55uu5YmN5rKS5pyJ56uZ5YuZ5Lq65ZOh5Zyo57eaJyxcblx0XHR9KSxcblx0XHRPbmxpbmU6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnT25saW5lIGFkbWlucycsXG5cdFx0XHRqYTogJ+OCquODs+ODqeOCpOODs+OBrumrmOaoqemZkOWIqeeUqOiAhScsXG5cdFx0XHQnemgtaGFucyc6ICflnKjnur/nq5nliqHkurrlkZgnLFxuXHRcdFx0J3poLWhhbnQnOiAn57ea5LiK56uZ5YuZ5Lq65ZOhJyxcblx0XHR9KSxcblx0XHRPbmxpbmVXaXRoaW4zME1pbnV0ZXM6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnSGlnaCBwcml2aWxlZ2UgdXNlcnMgb25saW5lIHdpdGhpbiAzMCBtaW51dGVzOicsXG5cdFx0XHRqYTogJzMw5YiG5Lul5YaF44Gr44Kq44Oz44Op44Kk44Oz44Gn6auY5qip6ZmQ5Yip55So6ICF77yaJyxcblx0XHRcdCd6aC1oYW5zJzogJ+S4i+mdouaYr+acgOi/kTMw5YiG6ZKf5YaF5Zyo57q/55qE56uZ5Yqh5Lq65ZGY77yaJyxcblx0XHRcdCd6aC1oYW50JzogJ+S4i+mdouaYr+acgOi/kTMw5YiG6ZCY5YWn55qE57ea5LiK56uZ5YuZ5Lq65ZOh77yaJyxcblx0XHR9KSxcblx0XHRTeXNPcHM6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnQWRtaW5zJyxcblx0XHRcdGphOiAn566h55CG6ICFJyxcblx0XHRcdCd6aC1oYW5zJzogJ+euoeeQhuWRmCcsXG5cdFx0XHQnemgtaGFudCc6ICfnrqHnkIblk6EnLFxuXHRcdH0pLFxuXHR9O1xufTtcblxuY29uc3QgaTE4bk1lc3NhZ2VzID0gZ2V0STE4bk1lc3NhZ2VzKCk7XG5cbmNvbnN0IGdldE1lc3NhZ2U6IEdldE1lc3NhZ2VzPHR5cGVvZiBpMThuTWVzc2FnZXM+ID0gKGtleSkgPT4ge1xuXHRyZXR1cm4gaTE4bk1lc3NhZ2VzW2tleV0gfHwga2V5O1xufTtcblxuZXhwb3J0IHtnZXRNZXNzYWdlfTtcbiIsICJpbXBvcnQgXCJlc2J1aWxkLWNzcy1tb2R1bGVzLXBsdWdpbi1ucy1jc3M6c3JjL09ubGluZUFkbWlucy9tb2R1bGVzL2NvbXBvbmVudHMvT25saW5lQWRtaW5zLm1vZHVsZS5sZXNzXCI7XG5leHBvcnQgY29uc3Qgc2VjdGlvbiA9IFwiT25saW5lQWRtaW5zLW1vZHVsZV9fc2VjdGlvbl9XUzlJR2FfXzQ5MFwiO1xuZXhwb3J0IGNvbnN0IHNlY3Rpb25MaXN0ID0gXCJPbmxpbmVBZG1pbnMtbW9kdWxlX19zZWN0aW9uTGlzdF9XUzlJR2FfXzQ5MFwiO1xuZXhwb3J0IGNvbnN0IHRhbGtQYWdlTGluayA9IFwiT25saW5lQWRtaW5zLW1vZHVsZV9fdGFsa1BhZ2VMaW5rX1dTOUlHYV9fNDkwXCI7XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgXCJzZWN0aW9uXCI6IHNlY3Rpb24sXG4gIFwic2VjdGlvbkxpc3RcIjogc2VjdGlvbkxpc3QsXG4gIFwidGFsa1BhZ2VMaW5rXCI6IHRhbGtQYWdlTGlua1xufTtcbiAgICAgICIsICJpbXBvcnQge3NlY3Rpb24sIHNlY3Rpb25MaXN0LCB0YWxrUGFnZUxpbmt9IGZyb20gJy4vT25saW5lQWRtaW5zLm1vZHVsZS5sZXNzJztcbmltcG9ydCBSZWFjdCBmcm9tICdleHQuZ2FkZ2V0LkpTWCc7XG5pbXBvcnQge2dldE1lc3NhZ2V9IGZyb20gJy4uL2kxOG4nO1xuaW1wb3J0IHtzYW5pdGl6ZX0gZnJvbSAnLi4vdXRpbC9zYW5pdGl6ZSc7XG5cbmludGVyZmFjZSBVc2VyTGlua1Byb3BzIHtcblx0dXNlck5hbWU6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIEdyb3VwTGlzdFByb3BzIHtcblx0Z3JvdXBOYW1lOiBzdHJpbmc7XG5cdHVzZXJOYW1lczogc3RyaW5nW107XG59XG5cbmludGVyZmFjZSBPbmxpbmVBZG1pbnNMaXN0UHJvcHMge1xuXHRzdGV3YXJkczogc3RyaW5nW107XG5cdHN5c29wczogc3RyaW5nW107XG5cdHBhdHJvbGxlcnM6IHN0cmluZ1tdO1xufVxuXG5jb25zdCBVc2VyTGluayA9ICh7dXNlck5hbWV9OiBVc2VyTGlua1Byb3BzKSA9PiAoXG5cdDxsaT5cblx0XHQ8YSBocmVmPXttdy51dGlsLmdldFVybChgVXNlcjoke3Nhbml0aXplKHVzZXJOYW1lKX1gKX0gcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiIHRhcmdldD1cIl9ibGFua1wiPlxuXHRcdFx0e3Nhbml0aXplKHVzZXJOYW1lKX1cblx0XHQ8L2E+XG5cdFx0Jm5ic3A7XG5cdFx0PHNwYW4gY2xhc3NOYW1lPXt0YWxrUGFnZUxpbmt9PlxuXHRcdFx077yIXG5cdFx0XHQ8YSBocmVmPXttdy51dGlsLmdldFVybChgVXNlcl90YWxrOiR7c2FuaXRpemUodXNlck5hbWUpfWApfSByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCI+XG5cdFx0XHRcdOeVmeiogFxuXHRcdFx0PC9hPlxuXHRcdFx077yJXG5cdFx0PC9zcGFuPlxuXHQ8L2xpPlxuKTtcblxuY29uc3Qgb25saW5lQ291bnRUZXh0OiBzdHJpbmcgPSBnZXRNZXNzYWdlKCcgKCQxIG9ubGluZSk6Jyk7XG5cbmNvbnN0IEdyb3VwTGlzdCA9ICh7Z3JvdXBOYW1lLCB1c2VyTmFtZXN9OiBHcm91cExpc3RQcm9wcykgPT4gKFxuXHQ8ZGl2IGNsYXNzTmFtZT17c2VjdGlvbn0+XG5cdFx0PHNwYW4+e2dyb3VwTmFtZX08L3NwYW4+XG5cdFx0PHNwYW4+e29ubGluZUNvdW50VGV4dC5yZXBsYWNlKCckMScsIFN0cmluZyh1c2VyTmFtZXMubGVuZ3RoKSl9PC9zcGFuPlxuXHRcdDx1bCBjbGFzc05hbWU9e3NlY3Rpb25MaXN0fT5cblx0XHRcdHt1c2VyTmFtZXMubWFwKCh1c2VyKSA9PiAoXG5cdFx0XHRcdDxVc2VyTGluayBrZXk9e3VzZXJ9IHVzZXJOYW1lPXt1c2VyfSAvPlxuXHRcdFx0KSl9XG5cdFx0PC91bD5cblx0PC9kaXY+XG4pO1xuXG5jb25zdCBMaXN0VGl0bGUgPSAoKSA9PiA8cD57Z2V0TWVzc2FnZSgnT25saW5lV2l0aGluMzBNaW51dGVzJyl9PC9wPjtcblxuY29uc3QgT25saW5lQWRtaW5zTGlzdCA9ICh7c3Rld2FyZHMsIHN5c29wcywgcGF0cm9sbGVyc306IE9ubGluZUFkbWluc0xpc3RQcm9wcykgPT4gKFxuXHQ8ZGl2PlxuXHRcdDxMaXN0VGl0bGUgLz5cblx0XHR7c3Rld2FyZHMubGVuZ3RoICYmIDxHcm91cExpc3QgZ3JvdXBOYW1lPXtnZXRNZXNzYWdlKCdTdGV3YXJkcycpfSB1c2VyTmFtZXM9e3N0ZXdhcmRzfSAvPn1cblx0XHR7c3lzb3BzLmxlbmd0aCAmJiA8R3JvdXBMaXN0IGdyb3VwTmFtZT17Z2V0TWVzc2FnZSgnU3lzT3BzJyl9IHVzZXJOYW1lcz17c3lzb3BzfSAvPn1cblx0XHR7cGF0cm9sbGVycy5sZW5ndGggJiYgPEdyb3VwTGlzdCBncm91cE5hbWU9e2dldE1lc3NhZ2UoJ1BhdHJvbGxlcnMnKX0gdXNlck5hbWVzPXtzeXNvcHN9IC8+fVxuXHQ8L2Rpdj5cbik7XG5cbmNvbnN0IGdldE9ubGluZUFkbWluc0xpc3QgPSAoe3N0ZXdhcmRzLCBzeXNvcHMsIHBhdHJvbGxlcnN9OiBPbmxpbmVBZG1pbnNMaXN0UHJvcHMpID0+IChcblx0PE9ubGluZUFkbWluc0xpc3Qgc3Rld2FyZHM9e3N0ZXdhcmRzfSBzeXNvcHM9e3N5c29wc30gcGF0cm9sbGVycz17cGF0cm9sbGVyc30gLz5cbik7XG5cbmV4cG9ydCB7Z2V0T25saW5lQWRtaW5zTGlzdH07XG4iLCAiY29uc3Qgc2FuaXRpemUgPSAoc3RyaW5nOiBzdHJpbmcpID0+IHtcblx0cmV0dXJuIHN0cmluZ1xuXHRcdC5yZXBsYWNlKC8mL2csICcmYW1wOycpXG5cdFx0LnJlcGxhY2UoLzwvZywgJyZsdDsnKVxuXHRcdC5yZXBsYWNlKC8+L2csICcmZ3Q7Jylcblx0XHQucmVwbGFjZSgvJy9nLCAnJmFwb3M7Jylcblx0XHQucmVwbGFjZSgvXCIvZywgJyZxdW90OycpO1xufTtcblxuZXhwb3J0IHtzYW5pdGl6ZX07XG4iLCAiaW1wb3J0IHtnZXRBZG1pbnN9IGZyb20gJy4vdXRpbC9nZXRBZG1pbnMnO1xuaW1wb3J0IHtnZXRNZXNzYWdlfSBmcm9tICcuL2kxOG4nO1xuaW1wb3J0IHtnZXRPbmxpbmVBZG1pbnNMaXN0fSBmcm9tICcuL2NvbXBvbmVudHMvZ3JvdXBMaXN0JztcblxuY29uc3QgZG9DbGljayA9IGFzeW5jIChldmVudDogSlF1ZXJ5LkNsaWNrRXZlbnQ8SFRNTEFuY2hvckVsZW1lbnQ+KTogUHJvbWlzZTx2b2lkPiA9PiB7XG5cdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cblx0Y29uc3Qgbm90aWZ5ID0gKGVsZW1lbnQ6IHN0cmluZyB8IEpRdWVyeTxIVE1MRWxlbWVudD4sIHR5cGU6ICdlcnJvcicgfCAnaW5mbycgfCAnc3VjY2VzcycgfCAnd2FybicgPSAnaW5mbycpID0+IHtcblx0XHRyZXR1cm4gbXcubm90aWZ5KGVsZW1lbnQsIHtcblx0XHRcdHRhZzogJ29ubGluZUFkbWlucycsXG5cdFx0XHR0eXBlLFxuXHRcdH0pO1xuXHR9O1xuXG5cdHRyeSB7XG5cdFx0Y29uc3Qge3N0ZXdhcmRzLCBzeXNvcHMsIHBhdHJvbGxlcnN9ID0gYXdhaXQgZ2V0QWRtaW5zKCk7XG5cblx0XHRpZiAoc3Rld2FyZHMubGVuZ3RoICsgc3lzb3BzLmxlbmd0aCArIHBhdHJvbGxlcnMubGVuZ3RoKSB7XG5cdFx0XHRub3RpZnkoJCgnPGRpdj4nKS5hcHBlbmQoZ2V0T25saW5lQWRtaW5zTGlzdCh7c3Rld2FyZHMsIHN5c29wcywgcGF0cm9sbGVyc30pKSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdG5vdGlmeShnZXRNZXNzYWdlKCdOb09ubGluZScpLCAnd2FybicpO1xuXHRcdH1cblx0fSBjYXRjaCB7XG5cdFx0bm90aWZ5KGdldE1lc3NhZ2UoJ05ldHdvcmsgZXJyb3InKSwgJ2Vycm9yJyk7XG5cdH1cbn07XG5cbmV4cG9ydCB7ZG9DbGlja307XG4iLCAiaW1wb3J0IHtkb0NsaWNrfSBmcm9tICcuL21vZHVsZXMvZG9DbGljayc7XG5pbXBvcnQge2dldE1lc3NhZ2V9IGZyb20gJy4vbW9kdWxlcy9pMThuJztcblxuY29uc3QgYWRkUG9ydGxldExpbmsgPSAoKTogdm9pZCA9PiB7XG5cdC8vIENyZWF0ZSBwb3J0bGV0IGxpbmtcblx0Y29uc3QgcG9ydGxldElkOiAncC1jYWN0aW9ucycgfCAncC10YicgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjcC1jYWN0aW9ucycpID8gJ3AtY2FjdGlvbnMnIDogJ3AtdGInO1xuXHRjb25zdCBlbGVtZW50OiBIVE1MTElFbGVtZW50IHwgbnVsbCA9IG13LnV0aWwuYWRkUG9ydGxldExpbmsocG9ydGxldElkLCAnIycsIGdldE1lc3NhZ2UoJ09ubGluZScpLCAndC1vbmxpbmVhZG1pbicpO1xuXHRpZiAoIWVsZW1lbnQpIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHQvLyBCaW5kIGNsaWNrIGxpc3RlbmVyXG5cdCQoZWxlbWVudClcblx0XHQuZmluZCgnYScpXG5cdFx0Lm9uKCdjbGljaycsIChldmVudCkgPT4ge1xuXHRcdFx0dm9pZCBkb0NsaWNrKGV2ZW50KTtcblx0XHR9KTtcbn07XG5cbiQoYWRkUG9ydGxldExpbmspO1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0MsSUFBQUEsVUFBVztBQUNYLElBQUFDLGFBQWM7O0FDRGYsSUFBQUMsb0JBQXdCQyxRQUFBLGlCQUFBO0FBRXhCLElBQU1DLE9BQUEsR0FBY0Ysa0JBQUFHLFdBQUEsZ0JBQUFDLE9BQWtDTixPQUFPLENBQUU7O0FDRC9ELElBQU1PLHFCQUFBLDJCQUFBO0FBQUEsTUFBQUMsT0FBQUMsa0JBQXFCLFdBQU9DLFNBQWlCQyxPQUFrQjtBQUNwRSxVQUFNQyxTQUFzQztNQUMzQ0Y7TUFDQUM7TUFDQUUsUUFBUTtNQUNSQyxRQUFRO01BQ1JDLGVBQWU7TUFDZkMsTUFBTTtNQUNOQyxRQUFRO01BQ1JDLFFBQVEsQ0FBQyxRQUFRLE9BQU87TUFDeEJDLFNBQVM7TUFDVEMsU0FBUztNQUNUQyxRQUFRO0lBQ1Q7QUFDQSxVQUFNQyxXQUFBLE1BQWlCbEIsSUFBSW1CLElBQUlYLE1BQU07QUFFckMsV0FBT1U7RUFDUixDQUFBO0FBQUEsU0FBQSxTQWpCTWYsb0JBQUFpQixJQUFBQyxLQUFBO0FBQUEsV0FBQWpCLEtBQUFrQixNQUFBLE1BQUFDLFNBQUE7RUFBQTtBQUFBLEVBQUE7QUFtQk4sSUFBTUMsaUJBQUEsMkJBQUE7QUFBQSxNQUFBQyxRQUFBcEIsa0JBQWlCLFdBQU9xQixTQUFpQkMsT0FBa0I7QUFDaEUsVUFBTW5CLFNBQWtDO01BQ3ZDa0I7TUFDQUM7TUFDQWxCLFFBQVE7TUFDUkMsUUFBUTtNQUNSQyxlQUFlO01BQ2ZDLE1BQU07TUFDTmdCLFFBQVE7TUFDUkMsU0FBUztNQUNUYixTQUFTO01BQ1RDLFFBQVE7SUFDVDtBQUNBLFVBQU1DLFdBQUEsTUFBaUJsQixJQUFJbUIsSUFBSVgsTUFBTTtBQUVyQyxXQUFPVTtFQUNSLENBQUE7QUFBQSxTQUFBLFNBaEJNTSxnQkFBQU0sS0FBQUMsS0FBQTtBQUFBLFdBQUFOLE1BQUFILE1BQUEsTUFBQUMsU0FBQTtFQUFBO0FBQUEsRUFBQTtBQWtCTixJQUFNUyxpQkFBQSwyQkFBQTtBQUFBLE1BQUFDLFFBQUE1QixrQkFBaUIsV0FBTzZCLFNBQStCO0FBQzVELFVBQU0xQixTQUE4QjtNQUNuQzBCO01BQ0F6QixRQUFRO01BQ1JDLFFBQVE7TUFDUkMsZUFBZTtNQUNmQyxNQUFNO01BQ051QixRQUFRO01BQ1JuQixTQUFTO01BQ1RDLFFBQVE7SUFDVDtBQUNBLFVBQU1DLFdBQUEsTUFBaUJsQixJQUFJbUIsSUFBSVgsTUFBTTtBQUVyQyxXQUFPVTtFQUNSLENBQUE7QUFBQSxTQUFBLFNBZE1jLGdCQUFBSSxLQUFBO0FBQUEsV0FBQUgsTUFBQVgsTUFBQSxNQUFBQyxTQUFBO0VBQUE7QUFBQSxFQUFBOztBQ3ZDTixJQUFNYyxhQUF1QixDQUFDLE9BQU87O0FDR3JDLElBQUFDLHFCQUEwQnZDLFFBQUEsaUJBQUE7QUFFMUIsSUFBTXdDLFlBQUEsMkJBQUE7QUFBQSxNQUFBQyxRQUFBbkMsa0JBQVksYUFBWTtBQUM3QixRQUFJb0MsV0FBcUIsQ0FBQTtBQUN6QixRQUFJQyxTQUFtQixDQUFBO0FBQ3ZCLFFBQUlDLGFBQXVCLENBQUE7QUFFM0IsUUFBSUMsR0FBR0MsUUFBUUMsVUFBa0JqRCxVQUFVLEdBQUc7QUFDN0MsT0FBQztRQUFDNEM7UUFBVUM7UUFBUUM7TUFBVSxJQUFJQyxHQUFHQyxRQUFRQyxVQUFrQmpELFVBQVU7SUFLMUUsT0FBTztBQUNOLFVBQUlrRCxRQUFrQixDQUFBO0FBQ3RCLFlBQU1DLFdBQW9DLENBQUE7QUFFMUMsWUFBTUMsT0FBYSxvQkFBSUMsS0FBSztBQUM1QixZQUFNNUMsVUFBa0IyQyxLQUFLRSxZQUFZO0FBR3pDRixXQUFLRyxXQUFXSCxLQUFLSSxXQUFXLElBQUksRUFBRTtBQUN0QyxZQUFNOUMsUUFBZ0IwQyxLQUFLRSxZQUFZO0FBRXZDLFVBQUk7QUFDSCxjQUFNRyxnQkFBQSxNQUFzQm5ELG1CQUFtQkcsU0FBU0MsS0FBSztBQUFBLFlBQUFnRCxhQUFBQywyQkFFeENGLGNBQWMsT0FBTyxFQUFFQSxhQUFBLEdBQUFHO0FBQUEsWUFBQTtBQUE1QyxlQUFBRixXQUFBRyxFQUFBLEdBQUEsRUFBQUQsU0FBQUYsV0FBQUksRUFBQSxHQUFBQyxRQUErRTtBQUFBLGtCQUFwRTtjQUFDQztZQUFJLElBQUFKLE9BQUFLO0FBQ2ZmLGtCQUFNQSxNQUFNZ0IsTUFBTSxJQUFJRjtVQUN2QjtRQUFBLFNBQUFHLEtBQUE7QUFBQVQscUJBQUFVLEVBQUFELEdBQUE7UUFBQSxVQUFBO0FBQUFULHFCQUFBVyxFQUFBO1FBQUE7TUFDRCxRQUFRO01BQUM7QUFFVCxVQUFJO0FBQ0gsY0FBTUMsWUFBQSxNQUFrQjNDLGVBQWVsQixTQUFTQyxLQUFLO0FBQUEsWUFBQTZELGFBQUFaLDJCQUVoQ1csVUFBVSxPQUFPLEVBQUVBLFNBQUEsR0FBQUU7QUFBQSxZQUFBO0FBQXhDLGVBQUFELFdBQUFWLEVBQUEsR0FBQSxFQUFBVyxTQUFBRCxXQUFBVCxFQUFBLEdBQUFDLFFBQXVFO0FBQUEsa0JBQTVEO2NBQUNDO1lBQUksSUFBQVEsT0FBQVA7QUFDZmYsa0JBQU1BLE1BQU1nQixNQUFNLElBQUlGO1VBQ3ZCO1FBQUEsU0FBQUcsS0FBQTtBQUFBSSxxQkFBQUgsRUFBQUQsR0FBQTtRQUFBLFVBQUE7QUFBQUkscUJBQUFGLEVBQUE7UUFBQTtNQUNELFFBQVE7TUFBQztBQUVUbkIsZUFBQSxHQUFRVCxtQkFBQWdDLGFBQVl2QixLQUFLO0FBR3pCLGVBQVN3QixJQUFJLEdBQUdBLElBQUl4QixNQUFNZ0IsUUFBUVEsS0FBSztBQUN0QyxjQUFNckMsVUFBVWEsTUFBTXlCLE9BQU8sR0FBRyxFQUFFO0FBQ2xDLFlBQUksQ0FBQ3RDLFFBQVE2QixRQUFRO0FBQ3BCO1FBQ0Q7QUFFQWYsaUJBQVNBLFNBQVNlLE1BQU0sSUFBQTFELGtDQUFJLGFBQTJCO0FBQ3RELGdCQUFNYSxXQUFBLE1BQWlCYyxlQUFlRSxPQUFPO0FBQUEsY0FBQXVDLGFBQUFqQiwyQkFFaEJ0QyxTQUFTLE9BQU8sRUFBRTZCLEtBQUEsR0FBQTJCO0FBQUEsY0FBQTtBQUEvQyxpQkFBQUQsV0FBQWYsRUFBQSxHQUFBLEVBQUFnQixTQUFBRCxXQUFBZCxFQUFBLEdBQUFDLFFBQTRGO0FBQUEsb0JBQWpGO2dCQUFDZTtnQkFBUUM7Y0FBSSxJQUFBRixPQUFBWjtBQUV2QixrQkFBSWEsT0FBT0UsU0FBUyxLQUFLLEtBQUt4QyxXQUFXd0MsU0FBU0QsSUFBSSxHQUFHO0FBQ3hEO2NBQ0Q7QUFHQSxrQkFBSSxDQUFDQSxNQUFNO0FBQ1Y7Y0FDRDtBQUVBLGtCQUFJRCxPQUFPRSxTQUFTLFNBQVMsR0FBRztBQUMvQnBDLHlCQUFTQSxTQUFTc0IsTUFBTSxJQUFJYTtjQUM3QjtBQUVBLGtCQUFJRCxPQUFPRSxTQUFTLE9BQU8sR0FBRztBQUM3Qm5DLHVCQUFPQSxPQUFPcUIsTUFBTSxJQUFJYTtjQUN6QjtBQUVBLGtCQUFJRCxPQUFPRSxTQUFTLFdBQVcsR0FBRztBQUNqQ2xDLDJCQUFXQSxXQUFXb0IsTUFBTSxJQUFJYTtjQUNqQztZQUNEO1VBQUEsU0FBQVosS0FBQTtBQUFBUyx1QkFBQVIsRUFBQUQsR0FBQTtVQUFBLFVBQUE7QUFBQVMsdUJBQUFQLEVBQUE7VUFBQTtRQUNELENBQUE7TUFDRDtBQUVBLGVBQUFZLEtBQUEsR0FBQUMsWUFBc0IvQixVQUFBOEIsS0FBQUMsVUFBQWhCLFFBQUFlLE1BQVU7QUFBaEMsY0FBV0UsVUFBQUQsVUFBQUQsRUFBQTtBQUNWLFlBQUk7QUFDSCxnQkFBTUUsUUFBUTtRQUNmLFFBQVE7UUFBQztNQUNWO0lBQ0Q7QUFFQSxXQUFPO01BQUN2QztNQUFVQztNQUFRQztJQUFVO0VBQ3JDLENBQUE7QUFBQSxTQUFBLFNBcEZNSixhQUFBO0FBQUEsV0FBQUMsTUFBQWxCLE1BQUEsTUFBQUMsU0FBQTtFQUFBO0FBQUEsRUFBQTs7QUNMTixJQUFBMEQscUJBQXVCbEYsUUFBQSxpQkFBQTtBQUV2QixJQUFNbUYsa0JBQWtCQSxNQUFNO0FBQzdCLFNBQU87SUFDTixrQkFBQSxHQUFpQkQsbUJBQUFFLFVBQVM7TUFDekJDLElBQUk7TUFDSkMsSUFBSTtNQUNKLFdBQVc7TUFDWCxXQUFXO0lBQ1osQ0FBQztJQUNEQyxhQUFBLEdBQVlMLG1CQUFBRSxVQUFTO01BQ3BCQyxJQUFJO01BQ0pDLElBQUk7TUFDSixXQUFXO01BQ1gsV0FBVztJQUNaLENBQUM7SUFDREUsV0FBQSxHQUFVTixtQkFBQUUsVUFBUztNQUNsQkMsSUFBSTtNQUNKQyxJQUFJO01BQ0osV0FBVztNQUNYLFdBQVc7SUFDWixDQUFDO0lBQ0Qsa0JBQUEsR0FBaUJKLG1CQUFBRSxVQUFTO01BQ3pCQyxJQUFJO01BQ0pDLElBQUk7TUFDSixXQUFXO01BQ1gsV0FBVztJQUNaLENBQUM7SUFDREcsV0FBQSxHQUFVUCxtQkFBQUUsVUFBUztNQUNsQkMsSUFBSTtNQUNKQyxJQUFJO01BQ0osV0FBVztNQUNYLFdBQVc7SUFDWixDQUFDO0lBQ0RJLFNBQUEsR0FBUVIsbUJBQUFFLFVBQVM7TUFDaEJDLElBQUk7TUFDSkMsSUFBSTtNQUNKLFdBQVc7TUFDWCxXQUFXO0lBQ1osQ0FBQztJQUNESyx3QkFBQSxHQUF1QlQsbUJBQUFFLFVBQVM7TUFDL0JDLElBQUk7TUFDSkMsSUFBSTtNQUNKLFdBQVc7TUFDWCxXQUFXO0lBQ1osQ0FBQztJQUNETSxTQUFBLEdBQVFWLG1CQUFBRSxVQUFTO01BQ2hCQyxJQUFJO01BQ0pDLElBQUk7TUFDSixXQUFXO01BQ1gsV0FBVztJQUNaLENBQUM7RUFDRjtBQUNEO0FBRUEsSUFBTU8sZUFBZVYsZ0JBQWdCO0FBRXJDLElBQU1XLGFBQWdEQyxTQUFRO0FBQzdELFNBQU9GLGFBQWFFLEdBQUcsS0FBS0E7QUFDN0I7O0FDMURPLElBQU1DLFVBQVU7QUFDaEIsSUFBTUMsY0FBYztBQUNwQixJQUFNQyxlQUFlOztBQ0Y1QixJQUFBQyxxQkFBa0JDLFFBQUFwRyxRQUFBLGdCQUFBLEdBQUEsQ0FBQTs7QUNEbEIsSUFBTXFHLFdBQVlDLFlBQW1CO0FBQ3BDLFNBQU9BLE9BQ0xDLFFBQVEsTUFBTSxPQUFPLEVBQ3JCQSxRQUFRLE1BQU0sTUFBTSxFQUNwQkEsUUFBUSxNQUFNLE1BQU0sRUFDcEJBLFFBQVEsTUFBTSxRQUFRLEVBQ3RCQSxRQUFRLE1BQU0sUUFBUTtBQUN6Qjs7QURhQSxJQUFNQyxXQUFXQSxDQUFDO0VBQUNDO0FBQVEsTUFDMUJOLG1DQUFBTyxRQUFBQyxjQUFDLE1BQUEsTUFDQVIsbUNBQUFPLFFBQUFDLGNBQUMsS0FBQTtFQUFFQyxNQUFNL0QsR0FBR2dFLEtBQUtDLE9BQUEsUUFBQTNHLE9BQWVrRyxTQUFTSSxRQUFRLENBQUMsQ0FBRTtFQUFHTSxLQUFJO0VBQXNCQyxRQUFPO0FBQUEsR0FDdEZYLFNBQVNJLFFBQVEsQ0FDbkIsR0FBSSxLQUVKTixtQ0FBQU8sUUFBQUMsY0FBQyxRQUFBO0VBQUtNLFdBQVdmO0FBQUEsR0FBYyxLQUU5QkMsbUNBQUFPLFFBQUFDLGNBQUMsS0FBQTtFQUFFQyxNQUFNL0QsR0FBR2dFLEtBQUtDLE9BQUEsYUFBQTNHLE9BQW9Ca0csU0FBU0ksUUFBUSxDQUFDLENBQUU7RUFBR00sS0FBSTtFQUFzQkMsUUFBTztBQUFBLEdBQVMsSUFFdEcsR0FBSSxHQUVMLENBQ0Q7QUFHRCxJQUFNRSxrQkFBMEJwQixXQUFXLGVBQWU7QUFFMUQsSUFBTXFCLFlBQVlBLENBQUM7RUFBQ0M7RUFBV0M7QUFBUyxNQUN2Q2xCLG1DQUFBTyxRQUFBQyxjQUFDLE9BQUE7RUFBSU0sV0FBV2pCO0FBQUEsR0FDZkcsbUNBQUFPLFFBQUFDLGNBQUMsUUFBQSxNQUFNUyxTQUFVLEdBQ2pCakIsbUNBQUFPLFFBQUFDLGNBQUMsUUFBQSxNQUFNTyxnQkFBZ0JYLFFBQVEsTUFBTWUsT0FBT0QsVUFBVXJELE1BQU0sQ0FBQyxDQUFFLEdBQy9EbUMsbUNBQUFPLFFBQUFDLGNBQUMsTUFBQTtFQUFHTSxXQUFXaEI7QUFBQSxHQUNib0IsVUFBVUUsSUFBS3pELFVBQ2ZxQyxtQ0FBQU8sUUFBQUMsY0FBQ0gsVUFBQTtFQUFTVCxLQUFLakM7RUFBTTJDLFVBQVUzQztBQUFBLENBQU0sQ0FDckMsQ0FDRixDQUNEO0FBR0QsSUFBTTBELFlBQVlBLE1BQU1yQixtQ0FBQU8sUUFBQUMsY0FBQyxLQUFBLE1BQUdiLFdBQVcsdUJBQXVCLENBQUU7QUFFaEUsSUFBTTJCLG1CQUFtQkEsQ0FBQztFQUFDL0U7RUFBVUM7RUFBUUM7QUFBVSxNQUN0RHVELG1DQUFBTyxRQUFBQyxjQUFDLE9BQUEsTUFDQVIsbUNBQUFPLFFBQUFDLGNBQUNhLFdBQUEsSUFBVSxHQUNWOUUsU0FBU3NCLFVBQVVtQyxtQ0FBQU8sUUFBQUMsY0FBQ1EsV0FBQTtFQUFVQyxXQUFXdEIsV0FBVyxVQUFVO0VBQUd1QixXQUFXM0U7QUFBQSxDQUFVLEdBQ3RGQyxPQUFPcUIsVUFBVW1DLG1DQUFBTyxRQUFBQyxjQUFDUSxXQUFBO0VBQVVDLFdBQVd0QixXQUFXLFFBQVE7RUFBR3VCLFdBQVcxRTtBQUFBLENBQVEsR0FDaEZDLFdBQVdvQixVQUFVbUMsbUNBQUFPLFFBQUFDLGNBQUNRLFdBQUE7RUFBVUMsV0FBV3RCLFdBQVcsWUFBWTtFQUFHdUIsV0FBVzFFO0FBQUEsQ0FBUSxDQUMxRjtBQUdELElBQU0rRSxzQkFBc0JBLENBQUM7RUFBQ2hGO0VBQVVDO0VBQVFDO0FBQVUsTUFDekR1RCxtQ0FBQU8sUUFBQUMsY0FBQ2Msa0JBQUE7RUFBaUIvRTtFQUFvQkM7RUFBZ0JDO0FBQUEsQ0FBd0I7O0FFMUQvRSxJQUFNK0UsVUFBQSwyQkFBQTtBQUFBLE1BQUFDLFFBQUF0SCxrQkFBVSxXQUFPdUgsT0FBK0Q7QUFDckZBLFVBQU1DLGVBQWU7QUFFckIsVUFBTUMsU0FBU0EsQ0FBQ0MsU0FBdUNDLE9BQThDLFdBQVc7QUFDL0csYUFBT3BGLEdBQUdrRixPQUFPQyxTQUFTO1FBQ3pCRSxLQUFLO1FBQ0xEO01BQ0QsQ0FBQztJQUNGO0FBRUEsUUFBSTtBQUNILFlBQU07UUFBQ3ZGO1FBQVVDO1FBQVFDO01BQVUsSUFBQSxNQUFVSixVQUFVO0FBRXZELFVBQUlFLFNBQVNzQixTQUFTckIsT0FBT3FCLFNBQVNwQixXQUFXb0IsUUFBUTtBQUN4RCtELGVBQU9JLEVBQUUsT0FBTyxFQUFFQyxPQUFPVixvQkFBb0I7VUFBQ2hGO1VBQVVDO1VBQVFDO1FBQVUsQ0FBQyxDQUFDLENBQUM7TUFDOUUsT0FBTztBQUNObUYsZUFBT2pDLFdBQVcsVUFBVSxHQUFHLE1BQU07TUFDdEM7SUFDRCxRQUFRO0FBQ1BpQyxhQUFPakMsV0FBVyxlQUFlLEdBQUcsT0FBTztJQUM1QztFQUNELENBQUE7QUFBQSxTQUFBLFNBckJNNkIsU0FBQVUsS0FBQTtBQUFBLFdBQUFULE1BQUFyRyxNQUFBLE1BQUFDLFNBQUE7RUFBQTtBQUFBLEVBQUE7O0FDRE4sSUFBTThHLGlCQUFpQkEsTUFBWTtBQUVsQyxRQUFNQyxZQUFtQ0MsU0FBU0MsY0FBYyxhQUFhLElBQUksZUFBZTtBQUNoRyxRQUFNVCxVQUFnQ25GLEdBQUdnRSxLQUFLeUIsZUFBZUMsV0FBVyxLQUFLekMsV0FBVyxRQUFRLEdBQUcsZUFBZTtBQUNsSCxNQUFJLENBQUNrQyxTQUFTO0FBQ2I7RUFDRDtBQUdBRyxJQUFFSCxPQUFPLEVBQ1BVLEtBQUssR0FBRyxFQUNSQyxHQUFHLFNBQVVkLFdBQVU7QUFDdkIsU0FBS0YsUUFBUUUsS0FBSztFQUNuQixDQUFDO0FBQ0g7QUFFQU0sRUFBRUcsY0FBYzsiLAogICJuYW1lcyI6IFsidmVyc2lvbiIsICJzdG9yYWdlS2V5IiwgImltcG9ydF9leHRfZ2FkZ2V0IiwgInJlcXVpcmUiLCAiYXBpIiwgImluaXRNd0FwaSIsICJjb25jYXQiLCAicXVlcnlSZWNlbnRDaGFuZ2VzIiwgIl9yZWYiLCAiX2FzeW5jVG9HZW5lcmF0b3IiLCAicmNzdGFydCIsICJyY2VuZCIsICJwYXJhbXMiLCAiYWN0aW9uIiwgImZvcm1hdCIsICJmb3JtYXR2ZXJzaW9uIiwgImxpc3QiLCAicmNwcm9wIiwgInJjc2hvdyIsICJyY2xpbWl0IiwgInNtYXhhZ2UiLCAibWF4YWdlIiwgInJlc3BvbnNlIiwgImdldCIsICJfeCIsICJfeDIiLCAiYXBwbHkiLCAiYXJndW1lbnRzIiwgInF1ZXJ5TG9nRXZlbnRzIiwgIl9yZWYyIiwgImxlc3RhcnQiLCAibGVlbmQiLCAibGVwcm9wIiwgImxlbGltaXQiLCAiX3gzIiwgIl94NCIsICJxdWVyeVVzZXJQcm9wcyIsICJfcmVmMyIsICJ1c3VzZXJzIiwgInVzcHJvcCIsICJfeDUiLCAiQkxBQ0tfTElTVCIsICJpbXBvcnRfZXh0X2dhZGdldDIiLCAiZ2V0QWRtaW5zIiwgIl9yZWY0IiwgInN0ZXdhcmRzIiwgInN5c29wcyIsICJwYXRyb2xsZXJzIiwgIm13IiwgInN0b3JhZ2UiLCAiZ2V0T2JqZWN0IiwgInVzZXJzIiwgInByb21pc2VzIiwgInRpbWUiLCAiRGF0ZSIsICJ0b0lTT1N0cmluZyIsICJzZXRNaW51dGVzIiwgImdldE1pbnV0ZXMiLCAicmVjZW50Y2hhbmdlcyIsICJfaXRlcmF0b3IyIiwgIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwgIl9zdGVwMiIsICJzIiwgIm4iLCAiZG9uZSIsICJ1c2VyIiwgInZhbHVlIiwgImxlbmd0aCIsICJlcnIiLCAiZSIsICJmIiwgImxvZ2V2ZW50cyIsICJfaXRlcmF0b3IzIiwgIl9zdGVwMyIsICJ1bmlxdWVBcnJheSIsICJpIiwgInNwbGljZSIsICJfaXRlcmF0b3I0IiwgIl9zdGVwNCIsICJncm91cHMiLCAibmFtZSIsICJpbmNsdWRlcyIsICJfaSIsICJfcHJvbWlzZXMiLCAicHJvbWlzZSIsICJpbXBvcnRfZXh0X2dhZGdldDMiLCAiZ2V0STE4bk1lc3NhZ2VzIiwgImxvY2FsaXplIiwgImVuIiwgImphIiwgIlBhdHJvbGxlcnMiLCAiU3Rld2FyZHMiLCAiTm9PbmxpbmUiLCAiT25saW5lIiwgIk9ubGluZVdpdGhpbjMwTWludXRlcyIsICJTeXNPcHMiLCAiaTE4bk1lc3NhZ2VzIiwgImdldE1lc3NhZ2UiLCAia2V5IiwgInNlY3Rpb24iLCAic2VjdGlvbkxpc3QiLCAidGFsa1BhZ2VMaW5rIiwgImltcG9ydF9leHRfZ2FkZ2V0NCIsICJfX3RvRVNNIiwgInNhbml0aXplIiwgInN0cmluZyIsICJyZXBsYWNlIiwgIlVzZXJMaW5rIiwgInVzZXJOYW1lIiwgImRlZmF1bHQiLCAiY3JlYXRlRWxlbWVudCIsICJocmVmIiwgInV0aWwiLCAiZ2V0VXJsIiwgInJlbCIsICJ0YXJnZXQiLCAiY2xhc3NOYW1lIiwgIm9ubGluZUNvdW50VGV4dCIsICJHcm91cExpc3QiLCAiZ3JvdXBOYW1lIiwgInVzZXJOYW1lcyIsICJTdHJpbmciLCAibWFwIiwgIkxpc3RUaXRsZSIsICJPbmxpbmVBZG1pbnNMaXN0IiwgImdldE9ubGluZUFkbWluc0xpc3QiLCAiZG9DbGljayIsICJfcmVmNiIsICJldmVudCIsICJwcmV2ZW50RGVmYXVsdCIsICJub3RpZnkiLCAiZWxlbWVudCIsICJ0eXBlIiwgInRhZyIsICIkIiwgImFwcGVuZCIsICJfeDYiLCAiYWRkUG9ydGxldExpbmsiLCAicG9ydGxldElkIiwgImRvY3VtZW50IiwgInF1ZXJ5U2VsZWN0b3IiLCAiZmluZCIsICJvbiJdCn0K diff --git a/dist/PagePatroller/PagePatroller.js b/dist/PagePatroller/PagePatroller.js index f78ffb6a7..e35d21844 100644 --- a/dist/PagePatroller/PagePatroller.js +++ b/dist/PagePatroller/PagePatroller.js @@ -131,7 +131,7 @@ var elementId = "footer-info-patroller"; var mountPointSelector = "#footer-info,.page-info"; var storageKey = "ext.gadget.PagePatroller_getPatroller-"; //! src/PagePatroller/modules/components/react.tsx -var import_ext_gadget2 = __toESM(require("ext.gadget.React"), 1); +var import_ext_gadget2 = __toESM(require("ext.gadget.JSX"), 1); //! src/PagePatroller/modules/i18n.ts var import_ext_gadget = require("ext.gadget.i18n"); var getI18nMessages = () => { @@ -214,7 +214,7 @@ var ErrorMessage = () => /* @__PURE__ */ import_ext_gadget2.default.createElemen textContent: getMessage("Error occurs when finding patroller") }); //! src/PagePatroller/modules/showPagePatroller.tsx -var import_ext_gadget4 = __toESM(require("ext.gadget.React"), 1); +var import_ext_gadget4 = __toESM(require("ext.gadget.JSX"), 1); //! src/PagePatroller/modules/api.ts var import_ext_gadget3 = require("ext.gadget.Util"); var api = (0, import_ext_gadget3.initMwApi)("PagePatroller/2.0"); @@ -352,4 +352,4 @@ var { /* */ -//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL1BhZ2VQYXRyb2xsZXIvb3B0aW9ucy5qc29uIiwgInNyYy9QYWdlUGF0cm9sbGVyL21vZHVsZXMvY29tcG9uZW50cy9yZWFjdC50c3giLCAic3JjL1BhZ2VQYXRyb2xsZXIvbW9kdWxlcy9pMThuLnRzIiwgInNyYy9QYWdlUGF0cm9sbGVyL21vZHVsZXMvc2hvd1BhZ2VQYXRyb2xsZXIudHN4IiwgInNyYy9QYWdlUGF0cm9sbGVyL21vZHVsZXMvYXBpLnRzIiwgInNyYy9QYWdlUGF0cm9sbGVyL21vZHVsZXMvdXRpbC9nZXRQYXRyb2xsZXIudHMiLCAic3JjL1BhZ2VQYXRyb2xsZXIvUGFnZVBhdHJvbGxlci50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsie1xuXHRcImVsZW1lbnRJZFwiOiBcImZvb3Rlci1pbmZvLXBhdHJvbGxlclwiLFxuXHRcIm1vdW50UG9pbnRTZWxlY3RvclwiOiBcIiNmb290ZXItaW5mbywucGFnZS1pbmZvXCIsXG5cdFwic3RvcmFnZUtleVwiOiBcImV4dC5nYWRnZXQuUGFnZVBhdHJvbGxlcl9nZXRQYXRyb2xsZXItXCIsXG5cdFwidmVyc2lvblwiOiBcIjMuMFwiXG59XG4iLCAiaW1wb3J0ICogYXMgT1BUSU9OUyBmcm9tICcuLi8uLi9vcHRpb25zLmpzb24nO1xuaW1wb3J0IFJlYWN0LCB7UmVhY3RFbGVtZW50fSBmcm9tICdleHQuZ2FkZ2V0LlJlYWN0JztcbmltcG9ydCB7Z2V0TWVzc2FnZX0gZnJvbSAnLi4vaTE4bic7XG5cbmludGVyZmFjZSBGb290ZXJOb3RpY2VQcm9wcyB7XG5cdGlkPzogc3RyaW5nO1xuXHRjaGlsZHJlbj86IFJlYWN0RWxlbWVudCB8IFJlYWN0RWxlbWVudFtdO1xufVxuXG5jb25zdCBGb290ZXJOb3RpY2UgPSAoe2lkLCBjaGlsZHJlbiA9IDw+PC8+fTogRm9vdGVyTm90aWNlUHJvcHMpID0+IHtcblx0Y29uc3Qge3NraW59ID0gbXcuY29uZmlnLmdldCgpO1xuXG5cdHJldHVybiAoXG5cdFx0PD5cblx0XHRcdHtza2luID09PSAnY2l0aXplbicgPyAoXG5cdFx0XHRcdDxzZWN0aW9uXG5cdFx0XHRcdFx0aWQ9e2lkID8/IE9QVElPTlMuZWxlbWVudElkfVxuXHRcdFx0XHRcdGNsYXNzTmFtZT17W09QVElPTlMuZWxlbWVudElkLCAncGFnZS1pbmZvX19pdGVtJywgJ2NpdGl6ZW4tZm9vdGVyX19wYWdlaW5mby1pdGVtJywgJ25vcHJpbnQnXX1cblx0XHRcdFx0PlxuXHRcdFx0XHRcdHtjaGlsZHJlbiA/PyA8PjwvPn1cblx0XHRcdFx0PC9zZWN0aW9uPlxuXHRcdFx0KSA6IFsndmVjdG9yJywgJ3ZlY3Rvci0yMDIyJywgJ2dvbmdiaSddLmluY2x1ZGVzKHNraW4pIHx8IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ3VsI2Zvb3Rlci1pbmZvJykgPyAoXG5cdFx0XHRcdDxsaSBpZD17aWQgPz8gT1BUSU9OUy5lbGVtZW50SWR9IGNsYXNzTmFtZT17W09QVElPTlMuZWxlbWVudElkLCAnbm9wcmludCddfT5cblx0XHRcdFx0XHR7Y2hpbGRyZW4gPz8gPD48Lz59XG5cdFx0XHRcdDwvbGk+XG5cdFx0XHQpIDogKFxuXHRcdFx0XHQ8ZGl2IGlkPXtpZCA/PyBPUFRJT05TLmVsZW1lbnRJZH0gY2xhc3NOYW1lPXtbT1BUSU9OUy5lbGVtZW50SWQsICdub3ByaW50J119PlxuXHRcdFx0XHRcdHtjaGlsZHJlbiA/PyA8PjwvPn1cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHQpfVxuXHRcdDwvPlxuXHQpO1xufTtcblxuY29uc3QgTm90UGF0cm9sbGVkWWV0ID0gKCkgPT4gKFxuXHQ8c3BhbiBpZD1cInBhZ2VfcGF0cm9sbGVyX19ub3QtcGF0cm9sbGVkXCIgdGV4dENvbnRlbnQ9e2dldE1lc3NhZ2UoJ1RoaXMgcGFnZSBoYXMgbm90IGJlZW4gcGF0cm9sbGVkIHlldCcpfSAvPlxuKTtcblxuY29uc3QgTG9hZGluZyA9ICgpID0+IDxzcGFuIGlkPVwicGFnZV9wYXRyb2xsZXJfX2xvYWRpbmdcIiB0ZXh0Q29udGVudD17Z2V0TWVzc2FnZSgnTG9hZGluZy4uLicpfSAvPjtcblxuaW50ZXJmYWNlIFBhdHJvbGxlZFByb3BzIHtcblx0dGltZXN0YW1wPzogc3RyaW5nO1xuXHR1c2VyPzogc3RyaW5nO1xufVxuXG5jb25zdCBQYXRyb2xsZWQgPSAoe3RpbWVzdGFtcCwgdXNlcn06IFBhdHJvbGxlZFByb3BzKSA9PiAoXG5cdDw+XG5cdFx0e3RpbWVzdGFtcCAmJiB1c2VyID8gKFxuXHRcdFx0PHNwYW4gaWQ9XCJwYWdlX3BhdHJvbGxlcl9fcGF0cm9sbGVkLWJ5XCI+XG5cdFx0XHRcdHtnZXRNZXNzYWdlKCdUaGlzIHBhZ2Ugd2FzIHBhdHJvbGxlZCBhdCBieScpLnJlcGxhY2UoJyQxJywgdGltZXN0YW1wKX1cblx0XHRcdFx0PGEgaHJlZj17bXcudXRpbC5nZXRVcmwoYFVzZXI6JHt1c2VyfWApfT57dXNlcn08L2E+XG5cdFx0XHRcdHtnZXRNZXNzYWdlKCdwZXJpb2QnKX1cblx0XHRcdDwvc3Bhbj5cblx0XHQpIDogKFxuXHRcdFx0PHNwYW5cblx0XHRcdFx0aWQ9XCJwYWdlX3BhdHJvbGxlcl9fcGF0cm9sbGVkXCJcblx0XHRcdFx0dGV4dENvbnRlbnQ9e2dldE1lc3NhZ2UoJ1RoaXMgcGFnZSBoYXMgYmVlbiBwYXRyb2xsZWQsIG9yIGhhcyBiZWVuIG1hcmtlZCBhcyBhdXRvLXBhdHJvbGxlZCcpfVxuXHRcdFx0Lz5cblx0XHQpfVxuXHQ8Lz5cbik7XG5cbmNvbnN0IEVycm9yTWVzc2FnZSA9ICgpID0+IChcblx0PHNwYW4gaWQ9XCJwYWdlX3BhdHJvbGxlcl9fZXJyb3JcIiB0ZXh0Q29udGVudD17Z2V0TWVzc2FnZSgnRXJyb3Igb2NjdXJzIHdoZW4gZmluZGluZyBwYXRyb2xsZXInKX0gLz5cbik7XG5cbmV4cG9ydCB7Rm9vdGVyTm90aWNlLCBOb3RQYXRyb2xsZWRZZXQsIExvYWRpbmcsIFBhdHJvbGxlZCwgRXJyb3JNZXNzYWdlfTtcbiIsICJpbXBvcnQge2xvY2FsaXplfSBmcm9tICdleHQuZ2FkZ2V0LmkxOG4nO1xuXG5jb25zdCBnZXRJMThuTWVzc2FnZXMgPSAoKSA9PiB7XG5cdHJldHVybiB7XG5cdFx0J0xvYWRpbmcuLi4nOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ0xvYWRpbmcuLi4nLFxuXHRcdFx0J3poLWhhbnMnOiAn5q2j5Zyo5Yqg6L295q2k6aG16Z2i55qE5beh5p+l6ICF4oCm4oCmJyxcblx0XHRcdCd6aC1oYW50JzogJ+ato+WcqOWKoOi8ieatpOmggemdoueahOW3oeafpeiAheKApuKApicsXG5cdFx0fSksXG5cdFx0J1RoaXMgcGFnZSBoYXMgbm90IGJlZW4gcGF0cm9sbGVkIHlldCc6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnVGhpcyBwYWdlIGhhcyBub3QgYmVlbiBwYXRyb2xsZWQgeWV0LicsXG5cdFx0XHQnemgtaGFucyc6ICfmraTpobXpnaLlsJrmnKrooqvlt6Hmn6XjgIInLFxuXHRcdFx0J3poLWhhbnQnOiAn5q2k6aCB6Z2i5bCa5pyq6KKr5beh5p+l44CCJyxcblx0XHR9KSxcblx0XHQnVGhpcyBwYWdlIHdhcyBwYXRyb2xsZWQgYXQgYnknOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ1RoaXMgcGFnZSB3YXMgcGF0cm9sbGVkIGF0ICQxIGJ5Jyxcblx0XHRcdCd6aC1oYW5zJzogJ+atpOmhtemdouW3oeafpeS6jiQx77yM5beh5p+l6ICF5pivJyxcblx0XHRcdCd6aC1oYW50JzogJ+atpOmggemdouW3oeafpeaWvCQx77yM5beh5p+l6ICF5pivJyxcblx0XHR9KSxcblx0XHQnVGhpcyBwYWdlIGhhcyBiZWVuIHBhdHJvbGxlZCwgb3IgaGFzIGJlZW4gbWFya2VkIGFzIGF1dG8tcGF0cm9sbGVkJzogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdUaGlzIHBhZ2UgaGFzIGJlZW4gcGF0cm9sbGVkLCBvciBoYXMgYmVlbiBtYXJrZWQgYXMgYXV0by1wYXRyb2xsZWQuJyxcblx0XHRcdCd6aC1oYW5zJzogJ+atpOmhtemdouWwmuacquiiq+W3oeafpe+8jOaIluW3suiHquWKqOagh+S4uuW3suW3oeafpeOAgicsXG5cdFx0XHQnemgtaGFudCc6ICfmraTpoIHpnaLlsJrmnKrooqvlt6Hmn6XvvIzmiJblt7Loh6rli5XmqJnniLLlt7Llt6Hmn6XjgIInLFxuXHRcdH0pLFxuXHRcdCdFcnJvciBvY2N1cnMgd2hlbiBmaW5kaW5nIHBhdHJvbGxlcic6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnRXJyb3Igb2NjdXJzIHdoZW4gZmluZGluZyBwYXRyb2xsZXIuJyxcblx0XHRcdCd6aC1oYW5zJzogJ+afpeaJvuW3oeafpeiAheaXtuWHuueOsOmUmeivr+OAgicsXG5cdFx0XHQnemgtaGFudCc6ICfmn6Xmib7lt6Hmn6XogIXmmYLlh7rnj77pjK/oqqTjgIInLFxuXHRcdH0pLFxuXHRcdHBlcmlvZDogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICcuJyxcblx0XHRcdHpoOiAn44CCJyxcblx0XHR9KSxcblx0fTtcbn07XG5jb25zdCBpMThuTWVzc2FnZXMgPSBnZXRJMThuTWVzc2FnZXMoKTtcblxuY29uc3QgZ2V0TWVzc2FnZTogR2V0TWVzc2FnZXM8dHlwZW9mIGkxOG5NZXNzYWdlcz4gPSAoa2V5KSA9PiB7XG5cdHJldHVybiBpMThuTWVzc2FnZXNba2V5XSB8fCBrZXk7XG59O1xuXG5leHBvcnQge2dldE1lc3NhZ2V9O1xuIiwgImltcG9ydCAqIGFzIE9QVElPTlMgZnJvbSAnLi4vb3B0aW9ucy5qc29uJztcbmltcG9ydCB7RXJyb3JNZXNzYWdlLCBGb290ZXJOb3RpY2UsIExvYWRpbmcsIE5vdFBhdHJvbGxlZFlldCwgUGF0cm9sbGVkfSBmcm9tICcuL2NvbXBvbmVudHMvcmVhY3QnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ2V4dC5nYWRnZXQuUmVhY3QnO1xuaW1wb3J0IHtnZXRQYXRyb2xsZXJ9IGZyb20gJy4vdXRpbC9nZXRQYXRyb2xsZXInO1xuXG5jb25zdCBhcHBlbmRGb290ZXJOb3RpY2UgPSAoZWxlbWVudDogRWxlbWVudCkgPT4ge1xuXHRjb25zdCBtb3VudFBvaW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcjxIVE1MRWxlbWVudD4oT1BUSU9OUy5tb3VudFBvaW50U2VsZWN0b3IpO1xuXG5cdGlmIChtb3VudFBvaW50KSB7XG5cdFx0bW91bnRQb2ludC5wcmVwZW5kKGVsZW1lbnQpO1xuXHR9XG59O1xuXG5jb25zdCBzaG93UGFnZVBhdHJvbGxlciA9IGFzeW5jICgpOiBQcm9taXNlPHZvaWQ+ID0+IHtcblx0Y29uc3QgZm9vdGVyRWxlbWVudCA9IDxGb290ZXJOb3RpY2UgLz47XG5cdGFwcGVuZEZvb3Rlck5vdGljZShmb290ZXJFbGVtZW50KTtcblxuXHQvLyBpZiB0aGVyZSBpcyBhIHBhdHJvbCBsaW5rLCB0aGUgcGFnZSBtdXN0IGJlIG5vdCBwYXRyb2xsZWRcblx0aWYgKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5wYXRyb2xsaW5rJykpIHtcblx0XHRmb290ZXJFbGVtZW50LmFwcGVuZCg8Tm90UGF0cm9sbGVkWWV0IC8+KTtcblx0XHRyZXR1cm47XG5cdH1cblxuXHQvLyBMb2FkIHBhdHJvbGxlciBpbmZvXG5cdC8vIGFkZCBgTG9hZGluZy4uLmBcblx0Zm9vdGVyRWxlbWVudC5hcHBlbmQoPExvYWRpbmcgLz4pO1xuXG5cdGNvbnN0IHt3Z1BhZ2VOYW1lfSA9IG13LmNvbmZpZy5nZXQoKTtcblxuXHR0cnkge1xuXHRcdGNvbnN0IGxvZyA9IGF3YWl0IGdldFBhdHJvbGxlcih3Z1BhZ2VOYW1lKTtcblx0XHRjb25zdCB7YWN0aW9uLCB1c2VyLCB0aW1lc3RhbXB9ID0gbG9nO1xuXG5cdFx0aWYgKGFjdGlvbiAmJiB1c2VyICYmIHRpbWVzdGFtcCkge1xuXHRcdFx0Y29uc3QgZGF0ZTogRGF0ZSA9IG5ldyBEYXRlKHRpbWVzdGFtcCk7XG5cblx0XHRcdGlmIChhY3Rpb24gPT09ICdwYXRyb2wnKSB7XG5cdFx0XHRcdGZvb3RlckVsZW1lbnQucmVwbGFjZUNoaWxkcmVuKDxQYXRyb2xsZWQgdGltZXN0YW1wPXtkYXRlLnRvTG9jYWxlU3RyaW5nKCl9IHVzZXI9e3VzZXJ9IC8+KTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGZvb3RlckVsZW1lbnQucmVwbGFjZUNoaWxkcmVuKDxQYXRyb2xsZWQgLz4pO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHRmb290ZXJFbGVtZW50LnJlcGxhY2VDaGlsZHJlbig8UGF0cm9sbGVkIC8+KTtcblx0XHR9XG5cdH0gY2F0Y2ggKGVycm9yOiB1bmtub3duKSB7XG5cdFx0Ly8gcmV0dXJuIGVycm9yKHMpXG5cdFx0Y29uc29sZS5lcnJvcignW1BhZ2VQYXRyb2xsZXJdOicsIGVycm9yKTtcblx0XHRmb290ZXJFbGVtZW50LnJlcGxhY2VDaGlsZHJlbig8RXJyb3JNZXNzYWdlIC8+KTtcblx0fVxufTtcblxuZXhwb3J0IHtzaG93UGFnZVBhdHJvbGxlcn07XG4iLCAiaW1wb3J0IHtpbml0TXdBcGl9IGZyb20gJ2V4dC5nYWRnZXQuVXRpbCc7XG5cbmNvbnN0IGFwaTogbXcuQXBpID0gaW5pdE13QXBpKCdQYWdlUGF0cm9sbGVyLzIuMCcpO1xuXG5leHBvcnQge2FwaX07XG4iLCAiaW1wb3J0ICogYXMgT1BUSU9OUyBmcm9tICcuLi8uLi9vcHRpb25zLmpzb24nO1xuaW1wb3J0IHthcGl9IGZyb20gJy4uL2FwaSc7XG5cbmNvbnN0IGdldFBhdHJvbGxlciA9IGFzeW5jICh3Z1BhZ2VOYW1lOiBzdHJpbmcpID0+IHtcblx0bGV0IGFjdGlvbjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXHRsZXQgdXNlcjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXHRsZXQgdGltZXN0YW1wOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cblx0aWYgKG13LnN0b3JhZ2UuZ2V0T2JqZWN0KE9QVElPTlMuc3RvcmFnZUtleSArIHdnUGFnZU5hbWUpKSB7XG5cdFx0KHthY3Rpb24sIHVzZXIsIHRpbWVzdGFtcH0gPSBtdy5zdG9yYWdlLmdldE9iamVjdChPUFRJT05TLnN0b3JhZ2VLZXkgKyB3Z1BhZ2VOYW1lKSBhcyB7XG5cdFx0XHRhY3Rpb246IHN0cmluZztcblx0XHRcdHVzZXI6IHN0cmluZztcblx0XHRcdHRpbWVzdGFtcDogc3RyaW5nO1xuXHRcdH0pO1xuXHR9IGVsc2Uge1xuXHRcdHRyeSB7XG5cdFx0XHRjb25zdCBwYXJhbXM6IEFwaVF1ZXJ5UmV2aXNpb25zUGFyYW1zICYgQXBpUXVlcnlMb2dFdmVudHNQYXJhbXMgPSB7XG5cdFx0XHRcdGFjdGlvbjogJ3F1ZXJ5Jyxcblx0XHRcdFx0Zm9ybWF0OiAnanNvbicsXG5cdFx0XHRcdGZvcm1hdHZlcnNpb246ICcyJyxcblx0XHRcdFx0cHJvcDogJ3JldmlzaW9ucycsXG5cdFx0XHRcdHRpdGxlczogd2dQYWdlTmFtZSxcblx0XHRcdFx0bGlzdDogJ2xvZ2V2ZW50cycsXG5cdFx0XHRcdGxldHlwZTogJ3BhdHJvbCcsXG5cdFx0XHRcdGxldGl0bGU6IHdnUGFnZU5hbWUsXG5cdFx0XHRcdHJ2cHJvcDogJ3RpbWVzdGFtcCcsXG5cdFx0XHRcdHJ2bGltaXQ6IDEsXG5cdFx0XHRcdHJ2ZGlyOiAnbmV3ZXInLFxuXHRcdFx0XHRzbWF4YWdlOiA2MDAsXG5cdFx0XHRcdG1heGFnZTogNjAwLFxuXHRcdFx0fTtcblx0XHRcdGNvbnN0IHtxdWVyeX0gPSBhd2FpdCBhcGkuZ2V0KHBhcmFtcyk7XG5cblx0XHRcdGlmIChxdWVyeT8ubG9nZXZlbnRzICYmIHF1ZXJ5LmxvZ2V2ZW50cy5sZW5ndGgpIHtcblx0XHRcdFx0Y29uc3QgW2xvZ106IFtcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHR1c2VyOiBzdHJpbmc7XG5cdFx0XHRcdFx0XHR0aW1lc3RhbXA6IHN0cmluZztcblx0XHRcdFx0XHRcdGFjdGlvbjogc3RyaW5nO1xuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdF0gPSBxdWVyeS5sb2dldmVudHMgYXMgW1xuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdHVzZXI6IHN0cmluZztcblx0XHRcdFx0XHRcdHRpbWVzdGFtcDogc3RyaW5nO1xuXHRcdFx0XHRcdFx0YWN0aW9uOiBzdHJpbmc7XG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XTtcblx0XHRcdFx0KHthY3Rpb259ID0gbG9nKTtcblxuXHRcdFx0XHRpZiAoYWN0aW9uID09PSAncGF0cm9sJykge1xuXHRcdFx0XHRcdCh7dXNlciwgdGltZXN0YW1wfSA9IGxvZyk7XG5cblx0XHRcdFx0XHRtdy5zdG9yYWdlLnNldE9iamVjdChPUFRJT05TLnN0b3JhZ2VLZXkgKyB3Z1BhZ2VOYW1lLCB7YWN0aW9uLCB1c2VyLCB0aW1lc3RhbXB9LCA2MCAqIDYwICogMjQgKiAzMCk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuXHRcdFx0Y29uc29sZS5lcnJvcignW1BhZ2VQYXRyb2xsZXJdIEFqYXggZXJyb3IgaW4gYGdldFBhdHJvbGxlcmAgbWV0aG9kOicsIGVycm9yKTtcblx0XHR9XG5cdH1cblxuXHRyZXR1cm4ge2FjdGlvbiwgdXNlciwgdGltZXN0YW1wfTtcbn07XG5cbmV4cG9ydCB7Z2V0UGF0cm9sbGVyfTtcbiIsICJpbXBvcnQge3Nob3dQYWdlUGF0cm9sbGVyfSBmcm9tICcuL21vZHVsZXMvc2hvd1BhZ2VQYXRyb2xsZXInO1xuXG5jb25zdCB7d2dOYW1lc3BhY2VOdW1iZXIsIHdnQXJ0aWNsZUlkLCB3Z0lzTWFpblBhZ2V9ID0gbXcuY29uZmlnLmdldCgpO1xuXG4oZnVuY3Rpb24gKCkge1xuXHRpZiAod2dOYW1lc3BhY2VOdW1iZXIgPCAwKSB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0aWYgKHdnSXNNYWluUGFnZSkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGlmICghKHdnQXJ0aWNsZUlkID4gMCkpIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHR2b2lkIHNob3dQYWdlUGF0cm9sbGVyKCk7XG59KSgpO1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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O0VBQ0Q7QUFFQSxNQUFJRSxjQUFjO0FBQ2pCO0VBQ0Q7QUFFQSxNQUFJLEVBQUVELGNBQWMsSUFBSTtBQUN2QjtFQUNEO0FBRUEsT0FBS1Qsa0JBQWtCO0FBQ3hCLEdBQUc7IiwKICAibmFtZXMiOiBbImVsZW1lbnRJZCIsICJtb3VudFBvaW50U2VsZWN0b3IiLCAic3RvcmFnZUtleSIsICJpbXBvcnRfZXh0X2dhZGdldDIiLCAiX190b0VTTSIsICJyZXF1aXJlIiwgImltcG9ydF9leHRfZ2FkZ2V0IiwgImdldEkxOG5NZXNzYWdlcyIsICJsb2NhbGl6ZSIsICJlbiIsICJwZXJpb2QiLCAiemgiLCAiaTE4bk1lc3NhZ2VzIiwgImdldE1lc3NhZ2UiLCAia2V5IiwgIkZvb3Rlck5vdGljZSIsICJpZCIsICJjaGlsZHJlbiIsICJkZWZhdWx0IiwgImNyZWF0ZUVsZW1lbnQiLCAiRnJhZ21lbnQiLCAic2tpbiIsICJtdyIsICJjb25maWciLCAiZ2V0IiwgImNsYXNzTmFtZSIsICJpbmNsdWRlcyIsICJkb2N1bWVudCIsICJxdWVyeVNlbGVjdG9yIiwgIk5vdFBhdHJvbGxlZFlldCIsICJ0ZXh0Q29udGVudCIsICJMb2FkaW5nIiwgIlBhdHJvbGxlZCIsICJ0aW1lc3RhbXAiLCAidXNlciIsICJyZXBsYWNlIiwgImhyZWYiLCAidXRpbCIsICJnZXRVcmwiLCAiY29uY2F0IiwgIkVycm9yTWVzc2FnZSIsICJpbXBvcnRfZXh0X2dhZGdldDQiLCAiaW1wb3J0X2V4dF9nYWRnZXQzIiwgImFwaSIsICJpbml0TXdBcGkiLCAiZ2V0UGF0cm9sbGVyIiwgIl9yZWYiLCAiX2FzeW5jVG9HZW5lcmF0b3IiLCAid2dQYWdlTmFtZSIsICJhY3Rpb24iLCAic3RvcmFnZSIsICJnZXRPYmplY3QiLCAicGFyYW1zIiwgImZvcm1hdCIsICJmb3JtYXR2ZXJzaW9uIiwgInByb3AiLCAidGl0bGVzIiwgImxpc3QiLCAibGV0eXBlIiwgImxldGl0bGUiLCAicnZwcm9wIiwgInJ2bGltaXQiLCAicnZkaXIiLCAic21heGFnZSIsICJtYXhhZ2UiLCAicXVlcnkiLCAibG9nZXZlbnRzIiwgImxlbmd0aCIsICJsb2ciLCAic2V0T2JqZWN0IiwgImVycm9yIiwgImNvbnNvbGUiLCAiX3giLCAiYXBwbHkiLCAiYXJndW1lbnRzIiwgImFwcGVuZEZvb3Rlck5vdGljZSIsICJlbGVtZW50IiwgIm1vdW50UG9pbnQiLCAicHJlcGVuZCIsICJzaG93UGFnZVBhdHJvbGxlciIsICJfcmVmMiIsICJmb290ZXJFbGVtZW50IiwgImFwcGVuZCIsICJkYXRlIiwgIkRhdGUiLCAicmVwbGFjZUNoaWxkcmVuIiwgInRvTG9jYWxlU3RyaW5nIiwgIndnTmFtZXNwYWNlTnVtYmVyIiwgIndnQXJ0aWNsZUlkIiwgIndnSXNNYWluUGFnZSJdCn0K +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL1BhZ2VQYXRyb2xsZXIvb3B0aW9ucy5qc29uIiwgInNyYy9QYWdlUGF0cm9sbGVyL21vZHVsZXMvY29tcG9uZW50cy9yZWFjdC50c3giLCAic3JjL1BhZ2VQYXRyb2xsZXIvbW9kdWxlcy9pMThuLnRzIiwgInNyYy9QYWdlUGF0cm9sbGVyL21vZHVsZXMvc2hvd1BhZ2VQYXRyb2xsZXIudHN4IiwgInNyYy9QYWdlUGF0cm9sbGVyL21vZHVsZXMvYXBpLnRzIiwgInNyYy9QYWdlUGF0cm9sbGVyL21vZHVsZXMvdXRpbC9nZXRQYXRyb2xsZXIudHMiLCAic3JjL1BhZ2VQYXRyb2xsZXIvUGFnZVBhdHJvbGxlci50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsie1xuXHRcImVsZW1lbnRJZFwiOiBcImZvb3Rlci1pbmZvLXBhdHJvbGxlclwiLFxuXHRcIm1vdW50UG9pbnRTZWxlY3RvclwiOiBcIiNmb290ZXItaW5mbywucGFnZS1pbmZvXCIsXG5cdFwic3RvcmFnZUtleVwiOiBcImV4dC5nYWRnZXQuUGFnZVBhdHJvbGxlcl9nZXRQYXRyb2xsZXItXCIsXG5cdFwidmVyc2lvblwiOiBcIjMuMFwiXG59XG4iLCAiaW1wb3J0ICogYXMgT1BUSU9OUyBmcm9tICcuLi8uLi9vcHRpb25zLmpzb24nO1xuaW1wb3J0IFJlYWN0LCB7UmVhY3RFbGVtZW50fSBmcm9tICdleHQuZ2FkZ2V0LkpTWCc7XG5pbXBvcnQge2dldE1lc3NhZ2V9IGZyb20gJy4uL2kxOG4nO1xuXG5pbnRlcmZhY2UgRm9vdGVyTm90aWNlUHJvcHMge1xuXHRpZD86IHN0cmluZztcblx0Y2hpbGRyZW4/OiBSZWFjdEVsZW1lbnQgfCBSZWFjdEVsZW1lbnRbXTtcbn1cblxuY29uc3QgRm9vdGVyTm90aWNlID0gKHtpZCwgY2hpbGRyZW4gPSA8PjwvPn06IEZvb3Rlck5vdGljZVByb3BzKSA9PiB7XG5cdGNvbnN0IHtza2lufSA9IG13LmNvbmZpZy5nZXQoKTtcblxuXHRyZXR1cm4gKFxuXHRcdDw+XG5cdFx0XHR7c2tpbiA9PT0gJ2NpdGl6ZW4nID8gKFxuXHRcdFx0XHQ8c2VjdGlvblxuXHRcdFx0XHRcdGlkPXtpZCA/PyBPUFRJT05TLmVsZW1lbnRJZH1cblx0XHRcdFx0XHRjbGFzc05hbWU9e1tPUFRJT05TLmVsZW1lbnRJZCwgJ3BhZ2UtaW5mb19faXRlbScsICdjaXRpemVuLWZvb3Rlcl9fcGFnZWluZm8taXRlbScsICdub3ByaW50J119XG5cdFx0XHRcdD5cblx0XHRcdFx0XHR7Y2hpbGRyZW4gPz8gPD48Lz59XG5cdFx0XHRcdDwvc2VjdGlvbj5cblx0XHRcdCkgOiBbJ3ZlY3RvcicsICd2ZWN0b3ItMjAyMicsICdnb25nYmknXS5pbmNsdWRlcyhza2luKSB8fCBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCd1bCNmb290ZXItaW5mbycpID8gKFxuXHRcdFx0XHQ8bGkgaWQ9e2lkID8/IE9QVElPTlMuZWxlbWVudElkfSBjbGFzc05hbWU9e1tPUFRJT05TLmVsZW1lbnRJZCwgJ25vcHJpbnQnXX0+XG5cdFx0XHRcdFx0e2NoaWxkcmVuID8/IDw+PC8+fVxuXHRcdFx0XHQ8L2xpPlxuXHRcdFx0KSA6IChcblx0XHRcdFx0PGRpdiBpZD17aWQgPz8gT1BUSU9OUy5lbGVtZW50SWR9IGNsYXNzTmFtZT17W09QVElPTlMuZWxlbWVudElkLCAnbm9wcmludCddfT5cblx0XHRcdFx0XHR7Y2hpbGRyZW4gPz8gPD48Lz59XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0KX1cblx0XHQ8Lz5cblx0KTtcbn07XG5cbmNvbnN0IE5vdFBhdHJvbGxlZFlldCA9ICgpID0+IChcblx0PHNwYW4gaWQ9XCJwYWdlX3BhdHJvbGxlcl9fbm90LXBhdHJvbGxlZFwiIHRleHRDb250ZW50PXtnZXRNZXNzYWdlKCdUaGlzIHBhZ2UgaGFzIG5vdCBiZWVuIHBhdHJvbGxlZCB5ZXQnKX0gLz5cbik7XG5cbmNvbnN0IExvYWRpbmcgPSAoKSA9PiA8c3BhbiBpZD1cInBhZ2VfcGF0cm9sbGVyX19sb2FkaW5nXCIgdGV4dENvbnRlbnQ9e2dldE1lc3NhZ2UoJ0xvYWRpbmcuLi4nKX0gLz47XG5cbmludGVyZmFjZSBQYXRyb2xsZWRQcm9wcyB7XG5cdHRpbWVzdGFtcD86IHN0cmluZztcblx0dXNlcj86IHN0cmluZztcbn1cblxuY29uc3QgUGF0cm9sbGVkID0gKHt0aW1lc3RhbXAsIHVzZXJ9OiBQYXRyb2xsZWRQcm9wcykgPT4gKFxuXHQ8PlxuXHRcdHt0aW1lc3RhbXAgJiYgdXNlciA/IChcblx0XHRcdDxzcGFuIGlkPVwicGFnZV9wYXRyb2xsZXJfX3BhdHJvbGxlZC1ieVwiPlxuXHRcdFx0XHR7Z2V0TWVzc2FnZSgnVGhpcyBwYWdlIHdhcyBwYXRyb2xsZWQgYXQgYnknKS5yZXBsYWNlKCckMScsIHRpbWVzdGFtcCl9XG5cdFx0XHRcdDxhIGhyZWY9e213LnV0aWwuZ2V0VXJsKGBVc2VyOiR7dXNlcn1gKX0+e3VzZXJ9PC9hPlxuXHRcdFx0XHR7Z2V0TWVzc2FnZSgncGVyaW9kJyl9XG5cdFx0XHQ8L3NwYW4+XG5cdFx0KSA6IChcblx0XHRcdDxzcGFuXG5cdFx0XHRcdGlkPVwicGFnZV9wYXRyb2xsZXJfX3BhdHJvbGxlZFwiXG5cdFx0XHRcdHRleHRDb250ZW50PXtnZXRNZXNzYWdlKCdUaGlzIHBhZ2UgaGFzIGJlZW4gcGF0cm9sbGVkLCBvciBoYXMgYmVlbiBtYXJrZWQgYXMgYXV0by1wYXRyb2xsZWQnKX1cblx0XHRcdC8+XG5cdFx0KX1cblx0PC8+XG4pO1xuXG5jb25zdCBFcnJvck1lc3NhZ2UgPSAoKSA9PiAoXG5cdDxzcGFuIGlkPVwicGFnZV9wYXRyb2xsZXJfX2Vycm9yXCIgdGV4dENvbnRlbnQ9e2dldE1lc3NhZ2UoJ0Vycm9yIG9jY3VycyB3aGVuIGZpbmRpbmcgcGF0cm9sbGVyJyl9IC8+XG4pO1xuXG5leHBvcnQge0Zvb3Rlck5vdGljZSwgTm90UGF0cm9sbGVkWWV0LCBMb2FkaW5nLCBQYXRyb2xsZWQsIEVycm9yTWVzc2FnZX07XG4iLCAiaW1wb3J0IHtsb2NhbGl6ZX0gZnJvbSAnZXh0LmdhZGdldC5pMThuJztcblxuY29uc3QgZ2V0STE4bk1lc3NhZ2VzID0gKCkgPT4ge1xuXHRyZXR1cm4ge1xuXHRcdCdMb2FkaW5nLi4uJzogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdMb2FkaW5nLi4uJyxcblx0XHRcdCd6aC1oYW5zJzogJ+ato+WcqOWKoOi9veatpOmhtemdoueahOW3oeafpeiAheKApuKApicsXG5cdFx0XHQnemgtaGFudCc6ICfmraPlnKjliqDovInmraTpoIHpnaLnmoTlt6Hmn6XogIXigKbigKYnLFxuXHRcdH0pLFxuXHRcdCdUaGlzIHBhZ2UgaGFzIG5vdCBiZWVuIHBhdHJvbGxlZCB5ZXQnOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ1RoaXMgcGFnZSBoYXMgbm90IGJlZW4gcGF0cm9sbGVkIHlldC4nLFxuXHRcdFx0J3poLWhhbnMnOiAn5q2k6aG16Z2i5bCa5pyq6KKr5beh5p+l44CCJyxcblx0XHRcdCd6aC1oYW50JzogJ+atpOmggemdouWwmuacquiiq+W3oeafpeOAgicsXG5cdFx0fSksXG5cdFx0J1RoaXMgcGFnZSB3YXMgcGF0cm9sbGVkIGF0IGJ5JzogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdUaGlzIHBhZ2Ugd2FzIHBhdHJvbGxlZCBhdCAkMSBieScsXG5cdFx0XHQnemgtaGFucyc6ICfmraTpobXpnaLlt6Hmn6Xkuo4kMe+8jOW3oeafpeiAheaYrycsXG5cdFx0XHQnemgtaGFudCc6ICfmraTpoIHpnaLlt6Hmn6XmlrwkMe+8jOW3oeafpeiAheaYrycsXG5cdFx0fSksXG5cdFx0J1RoaXMgcGFnZSBoYXMgYmVlbiBwYXRyb2xsZWQsIG9yIGhhcyBiZWVuIG1hcmtlZCBhcyBhdXRvLXBhdHJvbGxlZCc6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnVGhpcyBwYWdlIGhhcyBiZWVuIHBhdHJvbGxlZCwgb3IgaGFzIGJlZW4gbWFya2VkIGFzIGF1dG8tcGF0cm9sbGVkLicsXG5cdFx0XHQnemgtaGFucyc6ICfmraTpobXpnaLlsJrmnKrooqvlt6Hmn6XvvIzmiJblt7Loh6rliqjmoIfkuLrlt7Llt6Hmn6XjgIInLFxuXHRcdFx0J3poLWhhbnQnOiAn5q2k6aCB6Z2i5bCa5pyq6KKr5beh5p+l77yM5oiW5bey6Ieq5YuV5qiZ54iy5bey5beh5p+l44CCJyxcblx0XHR9KSxcblx0XHQnRXJyb3Igb2NjdXJzIHdoZW4gZmluZGluZyBwYXRyb2xsZXInOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ0Vycm9yIG9jY3VycyB3aGVuIGZpbmRpbmcgcGF0cm9sbGVyLicsXG5cdFx0XHQnemgtaGFucyc6ICfmn6Xmib7lt6Hmn6XogIXml7blh7rnjrDplJnor6/jgIInLFxuXHRcdFx0J3poLWhhbnQnOiAn5p+l5om+5beh5p+l6ICF5pmC5Ye654++6Yyv6Kqk44CCJyxcblx0XHR9KSxcblx0XHRwZXJpb2Q6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnLicsXG5cdFx0XHR6aDogJ+OAgicsXG5cdFx0fSksXG5cdH07XG59O1xuY29uc3QgaTE4bk1lc3NhZ2VzID0gZ2V0STE4bk1lc3NhZ2VzKCk7XG5cbmNvbnN0IGdldE1lc3NhZ2U6IEdldE1lc3NhZ2VzPHR5cGVvZiBpMThuTWVzc2FnZXM+ID0gKGtleSkgPT4ge1xuXHRyZXR1cm4gaTE4bk1lc3NhZ2VzW2tleV0gfHwga2V5O1xufTtcblxuZXhwb3J0IHtnZXRNZXNzYWdlfTtcbiIsICJpbXBvcnQgKiBhcyBPUFRJT05TIGZyb20gJy4uL29wdGlvbnMuanNvbic7XG5pbXBvcnQge0Vycm9yTWVzc2FnZSwgRm9vdGVyTm90aWNlLCBMb2FkaW5nLCBOb3RQYXRyb2xsZWRZZXQsIFBhdHJvbGxlZH0gZnJvbSAnLi9jb21wb25lbnRzL3JlYWN0JztcbmltcG9ydCBSZWFjdCBmcm9tICdleHQuZ2FkZ2V0LkpTWCc7XG5pbXBvcnQge2dldFBhdHJvbGxlcn0gZnJvbSAnLi91dGlsL2dldFBhdHJvbGxlcic7XG5cbmNvbnN0IGFwcGVuZEZvb3Rlck5vdGljZSA9IChlbGVtZW50OiBFbGVtZW50KSA9PiB7XG5cdGNvbnN0IG1vdW50UG9pbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yPEhUTUxFbGVtZW50PihPUFRJT05TLm1vdW50UG9pbnRTZWxlY3Rvcik7XG5cblx0aWYgKG1vdW50UG9pbnQpIHtcblx0XHRtb3VudFBvaW50LnByZXBlbmQoZWxlbWVudCk7XG5cdH1cbn07XG5cbmNvbnN0IHNob3dQYWdlUGF0cm9sbGVyID0gYXN5bmMgKCk6IFByb21pc2U8dm9pZD4gPT4ge1xuXHRjb25zdCBmb290ZXJFbGVtZW50ID0gPEZvb3Rlck5vdGljZSAvPjtcblx0YXBwZW5kRm9vdGVyTm90aWNlKGZvb3RlckVsZW1lbnQpO1xuXG5cdC8vIGlmIHRoZXJlIGlzIGEgcGF0cm9sIGxpbmssIHRoZSBwYWdlIG11c3QgYmUgbm90IHBhdHJvbGxlZFxuXHRpZiAoZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnBhdHJvbGxpbmsnKSkge1xuXHRcdGZvb3RlckVsZW1lbnQuYXBwZW5kKDxOb3RQYXRyb2xsZWRZZXQgLz4pO1xuXHRcdHJldHVybjtcblx0fVxuXG5cdC8vIExvYWQgcGF0cm9sbGVyIGluZm9cblx0Ly8gYWRkIGBMb2FkaW5nLi4uYFxuXHRmb290ZXJFbGVtZW50LmFwcGVuZCg8TG9hZGluZyAvPik7XG5cblx0Y29uc3Qge3dnUGFnZU5hbWV9ID0gbXcuY29uZmlnLmdldCgpO1xuXG5cdHRyeSB7XG5cdFx0Y29uc3QgbG9nID0gYXdhaXQgZ2V0UGF0cm9sbGVyKHdnUGFnZU5hbWUpO1xuXHRcdGNvbnN0IHthY3Rpb24sIHVzZXIsIHRpbWVzdGFtcH0gPSBsb2c7XG5cblx0XHRpZiAoYWN0aW9uICYmIHVzZXIgJiYgdGltZXN0YW1wKSB7XG5cdFx0XHRjb25zdCBkYXRlOiBEYXRlID0gbmV3IERhdGUodGltZXN0YW1wKTtcblxuXHRcdFx0aWYgKGFjdGlvbiA9PT0gJ3BhdHJvbCcpIHtcblx0XHRcdFx0Zm9vdGVyRWxlbWVudC5yZXBsYWNlQ2hpbGRyZW4oPFBhdHJvbGxlZCB0aW1lc3RhbXA9e2RhdGUudG9Mb2NhbGVTdHJpbmcoKX0gdXNlcj17dXNlcn0gLz4pO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Zm9vdGVyRWxlbWVudC5yZXBsYWNlQ2hpbGRyZW4oPFBhdHJvbGxlZCAvPik7XG5cdFx0XHR9XG5cdFx0fSBlbHNlIHtcblx0XHRcdGZvb3RlckVsZW1lbnQucmVwbGFjZUNoaWxkcmVuKDxQYXRyb2xsZWQgLz4pO1xuXHRcdH1cblx0fSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcblx0XHQvLyByZXR1cm4gZXJyb3Iocylcblx0XHRjb25zb2xlLmVycm9yKCdbUGFnZVBhdHJvbGxlcl06JywgZXJyb3IpO1xuXHRcdGZvb3RlckVsZW1lbnQucmVwbGFjZUNoaWxkcmVuKDxFcnJvck1lc3NhZ2UgLz4pO1xuXHR9XG59O1xuXG5leHBvcnQge3Nob3dQYWdlUGF0cm9sbGVyfTtcbiIsICJpbXBvcnQge2luaXRNd0FwaX0gZnJvbSAnZXh0LmdhZGdldC5VdGlsJztcblxuY29uc3QgYXBpOiBtdy5BcGkgPSBpbml0TXdBcGkoJ1BhZ2VQYXRyb2xsZXIvMi4wJyk7XG5cbmV4cG9ydCB7YXBpfTtcbiIsICJpbXBvcnQgKiBhcyBPUFRJT05TIGZyb20gJy4uLy4uL29wdGlvbnMuanNvbic7XG5pbXBvcnQge2FwaX0gZnJvbSAnLi4vYXBpJztcblxuY29uc3QgZ2V0UGF0cm9sbGVyID0gYXN5bmMgKHdnUGFnZU5hbWU6IHN0cmluZykgPT4ge1xuXHRsZXQgYWN0aW9uOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cdGxldCB1c2VyOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cdGxldCB0aW1lc3RhbXA6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuXHRpZiAobXcuc3RvcmFnZS5nZXRPYmplY3QoT1BUSU9OUy5zdG9yYWdlS2V5ICsgd2dQYWdlTmFtZSkpIHtcblx0XHQoe2FjdGlvbiwgdXNlciwgdGltZXN0YW1wfSA9IG13LnN0b3JhZ2UuZ2V0T2JqZWN0KE9QVElPTlMuc3RvcmFnZUtleSArIHdnUGFnZU5hbWUpIGFzIHtcblx0XHRcdGFjdGlvbjogc3RyaW5nO1xuXHRcdFx0dXNlcjogc3RyaW5nO1xuXHRcdFx0dGltZXN0YW1wOiBzdHJpbmc7XG5cdFx0fSk7XG5cdH0gZWxzZSB7XG5cdFx0dHJ5IHtcblx0XHRcdGNvbnN0IHBhcmFtczogQXBpUXVlcnlSZXZpc2lvbnNQYXJhbXMgJiBBcGlRdWVyeUxvZ0V2ZW50c1BhcmFtcyA9IHtcblx0XHRcdFx0YWN0aW9uOiAncXVlcnknLFxuXHRcdFx0XHRmb3JtYXQ6ICdqc29uJyxcblx0XHRcdFx0Zm9ybWF0dmVyc2lvbjogJzInLFxuXHRcdFx0XHRwcm9wOiAncmV2aXNpb25zJyxcblx0XHRcdFx0dGl0bGVzOiB3Z1BhZ2VOYW1lLFxuXHRcdFx0XHRsaXN0OiAnbG9nZXZlbnRzJyxcblx0XHRcdFx0bGV0eXBlOiAncGF0cm9sJyxcblx0XHRcdFx0bGV0aXRsZTogd2dQYWdlTmFtZSxcblx0XHRcdFx0cnZwcm9wOiAndGltZXN0YW1wJyxcblx0XHRcdFx0cnZsaW1pdDogMSxcblx0XHRcdFx0cnZkaXI6ICduZXdlcicsXG5cdFx0XHRcdHNtYXhhZ2U6IDYwMCxcblx0XHRcdFx0bWF4YWdlOiA2MDAsXG5cdFx0XHR9O1xuXHRcdFx0Y29uc3Qge3F1ZXJ5fSA9IGF3YWl0IGFwaS5nZXQocGFyYW1zKTtcblxuXHRcdFx0aWYgKHF1ZXJ5Py5sb2dldmVudHMgJiYgcXVlcnkubG9nZXZlbnRzLmxlbmd0aCkge1xuXHRcdFx0XHRjb25zdCBbbG9nXTogW1xuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdHVzZXI6IHN0cmluZztcblx0XHRcdFx0XHRcdHRpbWVzdGFtcDogc3RyaW5nO1xuXHRcdFx0XHRcdFx0YWN0aW9uOiBzdHJpbmc7XG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XSA9IHF1ZXJ5LmxvZ2V2ZW50cyBhcyBbXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0dXNlcjogc3RyaW5nO1xuXHRcdFx0XHRcdFx0dGltZXN0YW1wOiBzdHJpbmc7XG5cdFx0XHRcdFx0XHRhY3Rpb246IHN0cmluZztcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRdO1xuXHRcdFx0XHQoe2FjdGlvbn0gPSBsb2cpO1xuXG5cdFx0XHRcdGlmIChhY3Rpb24gPT09ICdwYXRyb2wnKSB7XG5cdFx0XHRcdFx0KHt1c2VyLCB0aW1lc3RhbXB9ID0gbG9nKTtcblxuXHRcdFx0XHRcdG13LnN0b3JhZ2Uuc2V0T2JqZWN0KE9QVElPTlMuc3RvcmFnZUtleSArIHdnUGFnZU5hbWUsIHthY3Rpb24sIHVzZXIsIHRpbWVzdGFtcH0sIDYwICogNjAgKiAyNCAqIDMwKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0gY2F0Y2ggKGVycm9yOiB1bmtub3duKSB7XG5cdFx0XHRjb25zb2xlLmVycm9yKCdbUGFnZVBhdHJvbGxlcl0gQWpheCBlcnJvciBpbiBgZ2V0UGF0cm9sbGVyYCBtZXRob2Q6JywgZXJyb3IpO1xuXHRcdH1cblx0fVxuXG5cdHJldHVybiB7YWN0aW9uLCB1c2VyLCB0aW1lc3RhbXB9O1xufTtcblxuZXhwb3J0IHtnZXRQYXRyb2xsZXJ9O1xuIiwgImltcG9ydCB7c2hvd1BhZ2VQYXRyb2xsZXJ9IGZyb20gJy4vbW9kdWxlcy9zaG93UGFnZVBhdHJvbGxlcic7XG5cbmNvbnN0IHt3Z05hbWVzcGFjZU51bWJlciwgd2dBcnRpY2xlSWQsIHdnSXNNYWluUGFnZX0gPSBtdy5jb25maWcuZ2V0KCk7XG5cbihmdW5jdGlvbiAoKSB7XG5cdGlmICh3Z05hbWVzcGFjZU51bWJlciA8IDApIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRpZiAod2dJc01haW5QYWdlKSB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0aWYgKCEod2dBcnRpY2xlSWQgPiAwKSkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdHZvaWQgc2hvd1BhZ2VQYXRyb2xsZXIoKTtcbn0pKCk7XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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RDtBQUVBLE1BQUlFLGNBQWM7QUFDakI7RUFDRDtBQUVBLE1BQUksRUFBRUQsY0FBYyxJQUFJO0FBQ3ZCO0VBQ0Q7QUFFQSxPQUFLVCxrQkFBa0I7QUFDeEIsR0FBRzsiLAogICJuYW1lcyI6IFsiZWxlbWVudElkIiwgIm1vdW50UG9pbnRTZWxlY3RvciIsICJzdG9yYWdlS2V5IiwgImltcG9ydF9leHRfZ2FkZ2V0MiIsICJfX3RvRVNNIiwgInJlcXVpcmUiLCAiaW1wb3J0X2V4dF9nYWRnZXQiLCAiZ2V0STE4bk1lc3NhZ2VzIiwgImxvY2FsaXplIiwgImVuIiwgInBlcmlvZCIsICJ6aCIsICJpMThuTWVzc2FnZXMiLCAiZ2V0TWVzc2FnZSIsICJrZXkiLCAiRm9vdGVyTm90aWNlIiwgImlkIiwgImNoaWxkcmVuIiwgImRlZmF1bHQiLCAiY3JlYXRlRWxlbWVudCIsICJGcmFnbWVudCIsICJza2luIiwgIm13IiwgImNvbmZpZyIsICJnZXQiLCAiY2xhc3NOYW1lIiwgImluY2x1ZGVzIiwgImRvY3VtZW50IiwgInF1ZXJ5U2VsZWN0b3IiLCAiTm90UGF0cm9sbGVkWWV0IiwgInRleHRDb250ZW50IiwgIkxvYWRpbmciLCAiUGF0cm9sbGVkIiwgInRpbWVzdGFtcCIsICJ1c2VyIiwgInJlcGxhY2UiLCAiaHJlZiIsICJ1dGlsIiwgImdldFVybCIsICJjb25jYXQiLCAiRXJyb3JNZXNzYWdlIiwgImltcG9ydF9leHRfZ2FkZ2V0NCIsICJpbXBvcnRfZXh0X2dhZGdldDMiLCAiYXBpIiwgImluaXRNd0FwaSIsICJnZXRQYXRyb2xsZXIiLCAiX3JlZiIsICJfYXN5bmNUb0dlbmVyYXRvciIsICJ3Z1BhZ2VOYW1lIiwgImFjdGlvbiIsICJzdG9yYWdlIiwgImdldE9iamVjdCIsICJwYXJhbXMiLCAiZm9ybWF0IiwgImZvcm1hdHZlcnNpb24iLCAicHJvcCIsICJ0aXRsZXMiLCAibGlzdCIsICJsZXR5cGUiLCAibGV0aXRsZSIsICJydnByb3AiLCAicnZsaW1pdCIsICJydmRpciIsICJzbWF4YWdlIiwgIm1heGFnZSIsICJxdWVyeSIsICJsb2dldmVudHMiLCAibGVuZ3RoIiwgImxvZyIsICJzZXRPYmplY3QiLCAiZXJyb3IiLCAiY29uc29sZSIsICJfeCIsICJhcHBseSIsICJhcmd1bWVudHMiLCAiYXBwZW5kRm9vdGVyTm90aWNlIiwgImVsZW1lbnQiLCAibW91bnRQb2ludCIsICJwcmVwZW5kIiwgInNob3dQYWdlUGF0cm9sbGVyIiwgIl9yZWYyIiwgImZvb3RlckVsZW1lbnQiLCAiYXBwZW5kIiwgImRhdGUiLCAiRGF0ZSIsICJyZXBsYWNlQ2hpbGRyZW4iLCAidG9Mb2NhbGVTdHJpbmciLCAid2dOYW1lc3BhY2VOdW1iZXIiLCAid2dBcnRpY2xlSWQiLCAid2dJc01haW5QYWdlIl0KfQo= diff --git a/dist/QueryContributors/QueryContributors.js b/dist/QueryContributors/QueryContributors.js index 1fc02f6e2..8c8553fd6 100644 --- a/dist/QueryContributors/QueryContributors.js +++ b/dist/QueryContributors/QueryContributors.js @@ -145,7 +145,7 @@ var elementId = "gadget-query_contributors"; var mountPointSelector = "#footer-info,.page-info"; var version = "1.0"; //! src/QueryContributors/modules/components/react.tsx -var import_ext_gadget2 = __toESM(require("ext.gadget.React"), 1); +var import_ext_gadget2 = __toESM(require("ext.gadget.JSX"), 1); //! src/QueryContributors/modules/i18n.ts var import_ext_gadget = require("ext.gadget.i18n"); var getI18nMessages = () => { @@ -210,7 +210,7 @@ var FooterUserList = ({ userNames })); //! src/QueryContributors/modules/appendElement.tsx -var import_ext_gadget3 = __toESM(require("ext.gadget.React"), 1); +var import_ext_gadget3 = __toESM(require("ext.gadget.JSX"), 1); var appendFooterNotice = (element) => { const mountPoint = document.querySelector(mountPointSelector); if (mountPoint) { @@ -346,4 +346,4 @@ var getContributors = /* @__PURE__ */ function() { /* */ -//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL1F1ZXJ5Q29udHJpYnV0b3JzL29wdGlvbnMuanNvbiIsICJzcmMvUXVlcnlDb250cmlidXRvcnMvbW9kdWxlcy9jb21wb25lbnRzL3JlYWN0LnRzeCIsICJzcmMvUXVlcnlDb250cmlidXRvcnMvbW9kdWxlcy9pMThuLnRzIiwgInNyYy9RdWVyeUNvbnRyaWJ1dG9ycy9tb2R1bGVzL3V0aWwvc2FuaXRpemUudHMiLCAic3JjL1F1ZXJ5Q29udHJpYnV0b3JzL21vZHVsZXMvYXBwZW5kRWxlbWVudC50c3giLCAic3JjL1F1ZXJ5Q29udHJpYnV0b3JzL21vZHVsZXMvYXBpLnRzIiwgInNyYy9RdWVyeUNvbnRyaWJ1dG9ycy9tb2R1bGVzL3F1ZXJ5Q29udHJpYnV0b3JzLnRzIiwgInNyYy9RdWVyeUNvbnRyaWJ1dG9ycy9tb2R1bGVzL3V0aWwvZ2V0Q29udHJpYnV0b3JzLnRzIiwgInNyYy9RdWVyeUNvbnRyaWJ1dG9ycy9RdWVyeUNvbnRyaWJ1dG9ycy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsie1xuXHRcImVsZW1lbnRJZFwiOiBcImdhZGdldC1xdWVyeV9jb250cmlidXRvcnNcIixcblx0XCJtb3VudFBvaW50U2VsZWN0b3JcIjogXCIjZm9vdGVyLWluZm8sLnBhZ2UtaW5mb1wiLFxuXHRcInZlcnNpb25cIjogXCIxLjBcIlxufVxuIiwgImltcG9ydCAqIGFzIE9QVElPTlMgZnJvbSAnLi4vLi4vb3B0aW9ucy5qc29uJztcbmltcG9ydCBSZWFjdCwge1JlYWN0RWxlbWVudH0gZnJvbSAnZXh0LmdhZGdldC5SZWFjdCc7XG5pbXBvcnQge2dldE1lc3NhZ2V9IGZyb20gJy4uL2kxOG4nO1xuaW1wb3J0IHtzYW5pdGl6ZX0gZnJvbSAnLi4vdXRpbC9zYW5pdGl6ZSc7XG5cbmludGVyZmFjZSBGb290ZXJOb3RpY2VQcm9wcyB7XG5cdGlkPzogc3RyaW5nO1xuXHRjaGlsZHJlbj86IFJlYWN0RWxlbWVudCB8IFJlYWN0RWxlbWVudFtdO1xufVxuXG5jb25zdCBGb290ZXJOb3RpY2UgPSAoe2lkLCBjaGlsZHJlbiA9IDw+PC8+fTogRm9vdGVyTm90aWNlUHJvcHMpID0+IHtcblx0Y29uc3Qge3NraW59ID0gbXcuY29uZmlnLmdldCgpO1xuXG5cdHJldHVybiAoXG5cdFx0PD5cblx0XHRcdHtza2luID09PSAnY2l0aXplbicgPyAoXG5cdFx0XHRcdDxzZWN0aW9uXG5cdFx0XHRcdFx0aWQ9e2lkID8/IE9QVElPTlMuZWxlbWVudElkfVxuXHRcdFx0XHRcdGNsYXNzTmFtZT17W09QVElPTlMuZWxlbWVudElkLCAncGFnZS1pbmZvX19pdGVtJywgJ2NpdGl6ZW4tZm9vdGVyX19wYWdlaW5mby1pdGVtJywgJ25vcHJpbnQnXX1cblx0XHRcdFx0PlxuXHRcdFx0XHRcdHtjaGlsZHJlbiA/PyA8PjwvPn1cblx0XHRcdFx0PC9zZWN0aW9uPlxuXHRcdFx0KSA6IFsndmVjdG9yJywgJ3ZlY3Rvci0yMDIyJywgJ2dvbmdiaSddLmluY2x1ZGVzKHNraW4pIHx8IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ3VsI2Zvb3Rlci1pbmZvJykgPyAoXG5cdFx0XHRcdDxsaSBpZD17aWQgPz8gT1BUSU9OUy5lbGVtZW50SWR9IGNsYXNzTmFtZT17W09QVElPTlMuZWxlbWVudElkLCAnbm9wcmludCddfT5cblx0XHRcdFx0XHR7Y2hpbGRyZW4gPz8gPD48Lz59XG5cdFx0XHRcdDwvbGk+XG5cdFx0XHQpIDogKFxuXHRcdFx0XHQ8ZGl2IGlkPXtpZCA/PyBPUFRJT05TLmVsZW1lbnRJZH0gY2xhc3NOYW1lPXtbT1BUSU9OUy5lbGVtZW50SWQsICdub3ByaW50J119PlxuXHRcdFx0XHRcdHtjaGlsZHJlbiA/PyA8PjwvPn1cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHQpfVxuXHRcdDwvPlxuXHQpO1xufTtcblxuaW50ZXJmYWNlIFVzZXJMaXN0UHJvcHMge1xuXHR1c2VyTmFtZXM6IHN0cmluZ1tdO1xufVxuXG5jb25zdCBVc2VyTGlzdCA9ICh7dXNlck5hbWVzfTogVXNlckxpc3RQcm9wcykgPT4gKFxuXHQ8PlxuXHRcdDw+e2dldE1lc3NhZ2UoJ0Jhc2VkIG9uIGNvbnRyaWJ1dGlvbnMgb2YnKX08Lz5cblx0XHR7dXNlck5hbWVzLm1hcCgodXNlck5hbWUsIGluZGV4KSA9PiAoXG5cdFx0XHQ8PlxuXHRcdFx0XHQ8YVxuXHRcdFx0XHRcdGhyZWY9e1xuXHRcdFx0XHRcdFx0dXNlck5hbWUuaW5jbHVkZXMoJz4nKVxuXHRcdFx0XHRcdFx0XHQ/IG13LnV0aWwuZ2V0VXJsKGBTcGVjaWFsOkdvVG9JbnRlcldpa2kvJHtzYW5pdGl6ZSh1c2VyTmFtZS5yZXBsYWNlKCc+JywgJzpVc2VyOicpKX1gKVxuXHRcdFx0XHRcdFx0XHQ6IG13LnV0aWwuZ2V0VXJsKGBVc2VyOiR7c2FuaXRpemUodXNlck5hbWUpfWApXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGtleT17dXNlck5hbWV9XG5cdFx0XHRcdD5cblx0XHRcdFx0XHR7dXNlck5hbWV9XG5cdFx0XHRcdDwvYT5cblx0XHRcdFx0PD57aW5kZXggPCB1c2VyTmFtZXMubGVuZ3RoIC0gMSA/IGdldE1lc3NhZ2UoJ1NlcGVyYXRvcicpIDogZ2V0TWVzc2FnZSgnUGVyaW9kJyl9PC8+XG5cdFx0XHQ8Lz5cblx0XHQpKX1cblx0PC8+XG4pO1xuXG5jb25zdCBGb290ZXJVc2VyTGlzdCA9ICh7dXNlck5hbWVzfTogVXNlckxpc3RQcm9wcykgPT4gKFxuXHQ8Rm9vdGVyTm90aWNlPlxuXHRcdDxVc2VyTGlzdCB1c2VyTmFtZXM9e3VzZXJOYW1lc30gLz5cblx0PC9Gb290ZXJOb3RpY2U+XG4pO1xuXG5leHBvcnQge0Zvb3RlclVzZXJMaXN0fTtcbiIsICJpbXBvcnQge2xvY2FsaXplfSBmcm9tICdleHQuZ2FkZ2V0LmkxOG4nO1xuXG5jb25zdCBnZXRJMThuTWVzc2FnZXMgPSAoKSA9PiB7XG5cdHJldHVybiB7XG5cdFx0J0Jhc2VkIG9uIGNvbnRyaWJ1dGlvbnMgb2YnOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ0Jhc2VkIG9uIGNvbnRyaWJ1dGlvbnMgb2YnLFxuXHRcdFx0J3poLWhhbnMnOiAn5Z+65LqO5LiL5YiX55So5oi355qE6LSh54yu77yaJyxcblx0XHRcdCd6aC1oYW50JzogJ+WfuuS6juS4i+WIl+S9v+eUqOiAheeahOiyoueNu++8micsXG5cdFx0fSksXG5cdFx0U2VwZXJhdG9yOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJywgJyxcblx0XHRcdCd6aC1oYW5zJzogJ+OAgScsXG5cdFx0XHQnemgtaGFudCc6ICfjgIEnLFxuXHRcdH0pLFxuXHRcdFBlcmlvZDogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICcuJyxcblx0XHRcdHpoOiAn44CCJyxcblx0XHR9KSxcblx0XHQnT3RoZXIgYW5vbnltb3VzIGNvbnRyaWJ1dG9ycyc6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnb3RoZXIgJDEgYW5vbnltb3VzIGNvbnRyaWJ1dG9yKHMpJyxcblx0XHRcdCd6aC1oYW5zJzogJ+WFtuS7liQx5L2N5Yy/5ZCN6LSh54yu6ICFJyxcblx0XHRcdCd6aC1oYW50JzogJ+WFtuS7liQx5L2N5Yy/5ZCN6LKi54276ICFJyxcblx0XHR9KSxcblx0fTtcbn07XG5cbmNvbnN0IGkxOG5NZXNzYWdlcyA9IGdldEkxOG5NZXNzYWdlcygpO1xuXG5jb25zdCBnZXRNZXNzYWdlOiBHZXRNZXNzYWdlczx0eXBlb2YgaTE4bk1lc3NhZ2VzPiA9IChrZXkpID0+IHtcblx0cmV0dXJuIGkxOG5NZXNzYWdlc1trZXldIHx8IGtleTtcbn07XG5cbmV4cG9ydCB7Z2V0TWVzc2FnZX07XG4iLCAiY29uc3Qgc2FuaXRpemUgPSAoc3RyaW5nOiBzdHJpbmcpID0+IHtcblx0cmV0dXJuIHN0cmluZ1xuXHRcdC5yZXBsYWNlKC8mL2csICcmYW1wOycpXG5cdFx0LnJlcGxhY2UoLzwvZywgJyZsdDsnKVxuXHRcdC5yZXBsYWNlKC8+L2csICcmZ3Q7Jylcblx0XHQucmVwbGFjZSgvJy9nLCAnJmFwb3M7Jylcblx0XHQucmVwbGFjZSgvXCIvZywgJyZxdW90OycpO1xufTtcblxuZXhwb3J0IHtzYW5pdGl6ZX07XG4iLCAiaW1wb3J0ICogYXMgT1BUSU9OUyBmcm9tICcuLi9vcHRpb25zLmpzb24nO1xuaW1wb3J0IHtGb290ZXJVc2VyTGlzdH0gZnJvbSAnLi9jb21wb25lbnRzL3JlYWN0JztcbmltcG9ydCBSZWFjdCBmcm9tICdleHQuZ2FkZ2V0LlJlYWN0JztcblxuY29uc3QgYXBwZW5kRm9vdGVyTm90aWNlID0gKGVsZW1lbnQ6IEVsZW1lbnQpID0+IHtcblx0Y29uc3QgbW91bnRQb2ludCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3I8SFRNTEVsZW1lbnQ+KE9QVElPTlMubW91bnRQb2ludFNlbGVjdG9yKTtcblxuXHRpZiAobW91bnRQb2ludCkge1xuXHRcdG1vdW50UG9pbnQucHJlcGVuZChlbGVtZW50KTtcblx0fVxufTtcblxuY29uc3QgYXBwZW5kRWxlbWVudCA9ICh1c2VyTmFtZXM6IHN0cmluZ1tdKTogdm9pZCA9PiB7XG5cdGlmICghdXNlck5hbWVzIHx8ICF1c2VyTmFtZXMubGVuZ3RoKSB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0YXBwZW5kRm9vdGVyTm90aWNlKDxGb290ZXJVc2VyTGlzdCB1c2VyTmFtZXM9e3VzZXJOYW1lc30gLz4pO1xufTtcblxuZXhwb3J0IHthcHBlbmRFbGVtZW50fTtcbiIsICJpbXBvcnQgKiBhcyBPUFRJT05TIGZyb20gJy4uL29wdGlvbnMuanNvbic7XG5pbXBvcnQge2luaXRNd0FwaX0gZnJvbSAnZXh0LmdhZGdldC5VdGlsJztcblxuY29uc3QgYXBpOiBtdy5BcGkgPSBpbml0TXdBcGkoYFF1ZXJ5Q29udHJpYnV0b3JzLyR7T1BUSU9OUy52ZXJzaW9ufWApO1xuXG5leHBvcnQge2FwaX07XG4iLCAiaW1wb3J0IHthcGl9IGZyb20gJy4vYXBpJztcblxuY29uc3QgcXVlcnlDb250cmlidXRvcnMgPSBhc3luYyAodGl0bGVzOiBzdHJpbmcsIHBjY29udGludWU/OiBzdHJpbmcpID0+IHtcblx0Y29uc3QgcGFyYW1zOiBBcGlRdWVyeUNvbnRyaWJ1dG9yc1BhcmFtcyA9IHtcblx0XHRhY3Rpb246ICdxdWVyeScsXG5cdFx0Zm9ybWF0OiAnanNvbicsXG5cdFx0Zm9ybWF0dmVyc2lvbjogJzInLFxuXHRcdHByb3A6ICdjb250cmlidXRvcnMnLFxuXHRcdHBjZXhjbHVkZWdyb3VwOiBbJ2JvdCddLFxuXHRcdHBjbGltaXQ6IDUwMDAsXG5cdFx0dGl0bGVzLFxuXHRcdHNtYXhhZ2U6IDYwMCxcblx0XHRtYXhhZ2U6IDYwMCxcblx0fTtcblxuXHRpZiAocGNjb250aW51ZSkge1xuXHRcdHBhcmFtcy5wY2NvbnRpbnVlID0gcGNjb250aW51ZTtcblx0fVxuXG5cdGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgYXBpLmdldChwYXJhbXMpO1xuXG5cdHJldHVybiByZXNwb25zZTtcbn07XG5cbmV4cG9ydCB7cXVlcnlDb250cmlidXRvcnN9O1xuIiwgImltcG9ydCB7Z2V0TWVzc2FnZX0gZnJvbSAnLi4vaTE4bic7XG5pbXBvcnQge3F1ZXJ5Q29udHJpYnV0b3JzfSBmcm9tICcuLi9xdWVyeUNvbnRyaWJ1dG9ycyc7XG5pbXBvcnQge3VuaXF1ZUFycmF5fSBmcm9tICdleHQuZ2FkZ2V0LlV0aWwnO1xuXG5jb25zdCBnZXRDb250cmlidXRvcnMgPSBhc3luYyAodGl0bGU6IHN0cmluZykgPT4ge1xuXHRsZXQgcGNsaXN0OiBzdHJpbmdbXSA9IFtdO1xuXHRsZXQgcGNjb250aW51ZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG5cdGNvbnN0IENBQ0hFX0tFWV9QUkVGSVggPSAnZXh0LmdhZGdldC5RdWVyeUNvbnRyaWJ1dG9yc19nZXRDb250cmlidXRvcnMtJztcblxuXHRpZiAobXcuc3RvcmFnZS5nZXRPYmplY3QoQ0FDSEVfS0VZX1BSRUZJWCArIHRpdGxlKSkge1xuXHRcdHBjbGlzdCA9IG13LnN0b3JhZ2UuZ2V0T2JqZWN0KENBQ0hFX0tFWV9QUkVGSVggKyB0aXRsZSkgYXMgc3RyaW5nW107XG5cblx0XHRyZXR1cm4gdW5pcXVlQXJyYXkocGNsaXN0KTtcblx0fVxuXG5cdHdoaWxlICh0cnVlKSB7XG5cdFx0Y29uc3QgZGF0YSA9IGF3YWl0IHF1ZXJ5Q29udHJpYnV0b3JzKHRpdGxlLCBwY2NvbnRpbnVlKTtcblxuXHRcdHRyeSB7XG5cdFx0XHRpZiAoZGF0YVsncXVlcnknXT8ucGFnZXMpIHtcblx0XHRcdFx0Zm9yIChjb25zdCBwYWdlIG9mIGRhdGFbJ3F1ZXJ5J10ucGFnZXMgYXMge1xuXHRcdFx0XHRcdGFub25jb250cmlidXRvcnM6IG51bWJlcjtcblx0XHRcdFx0XHRjb250cmlidXRvcnM6IHt1c2VyaWQ6IG51bWJlcjsgbmFtZTogc3RyaW5nfVtdO1xuXHRcdFx0XHR9W10pIHtcblx0XHRcdFx0XHRpZiAocGFnZT8uY29udHJpYnV0b3JzKSB7XG5cdFx0XHRcdFx0XHRmb3IgKGNvbnN0IGNvbnRyaWJ1dG9yIG9mIHBhZ2UuY29udHJpYnV0b3JzKSB7XG5cdFx0XHRcdFx0XHRcdGlmIChjb250cmlidXRvcj8ubmFtZSkge1xuXHRcdFx0XHRcdFx0XHRcdHBjbGlzdFtwY2xpc3QubGVuZ3RoXSA9IGNvbnRyaWJ1dG9yLm5hbWU7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRpZiAocGFnZT8uYW5vbmNvbnRyaWJ1dG9ycykge1xuXHRcdFx0XHRcdFx0cGNsaXN0W3BjbGlzdC5sZW5ndGhdID0gZ2V0TWVzc2FnZSgnT3RoZXIgYW5vbnltb3VzIGNvbnRyaWJ1dG9ycycpLnJlcGxhY2UoXG5cdFx0XHRcdFx0XHRcdCckMScsXG5cdFx0XHRcdFx0XHRcdGAke3BhZ2UuYW5vbmNvbnRyaWJ1dG9yc31gXG5cdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHR9XG5cblx0XHRcdGlmIChkYXRhWydjb250aW51ZSddPy5wY2NvbnRpbnVlKSB7XG5cdFx0XHRcdCh7cGNjb250aW51ZX0gPSBkYXRhWydjb250aW51ZSddIGFzIHtwY2NvbnRpbnVlOiBzdHJpbmd9KTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0fVxuXHRcdH0gY2F0Y2gge1xuXHRcdFx0YnJlYWs7XG5cdFx0fVxuXHR9XG5cblx0Ly8gQ2FjaGUgZm9yIDEwIG1pbnV0ZXNcblx0bXcuc3RvcmFnZS5zZXRPYmplY3QoQ0FDSEVfS0VZX1BSRUZJWCArIHRpdGxlLCBwY2xpc3QsIDEwICogNjApO1xuXG5cdHJldHVybiB1bmlxdWVBcnJheShwY2xpc3QpO1xufTtcblxuZXhwb3J0IHtnZXRDb250cmlidXRvcnN9O1xuIiwgImltcG9ydCB7YXBwZW5kRWxlbWVudH0gZnJvbSAnLi9tb2R1bGVzL2FwcGVuZEVsZW1lbnQnO1xuaW1wb3J0IHtnZXRDb250cmlidXRvcnN9IGZyb20gJy4vbW9kdWxlcy91dGlsL2dldENvbnRyaWJ1dG9ycyc7XG5cbihhc3luYyBmdW5jdGlvbiBxdWVyeUNvbnRyaWJ1dG9zKCkge1xuXHRjb25zdCB7d2dBY3Rpb24sIHdnQXJ0aWNsZUlkLCB3Z0N1clJldmlzaW9uSWQsIHdnUGFnZU5hbWUsIHdnUmV2aXNpb25JZH0gPSBtdy5jb25maWcuZ2V0KCk7XG5cblx0aWYgKHdnQWN0aW9uICE9PSAndmlldycgfHwgIXdnQXJ0aWNsZUlkIHx8ICF3Z1BhZ2VOYW1lKSB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0aWYgKHdnQ3VyUmV2aXNpb25JZCA+IHdnUmV2aXNpb25JZCkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGNvbnN0IGNvbnRyaWJ1dG9yczogc3RyaW5nW10gPSBhd2FpdCBnZXRDb250cmlidXRvcnMod2dQYWdlTmFtZSk7XG5cblx0YXBwZW5kRWxlbWVudChjb250cmlidXRvcnMpO1xufSkoKTtcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0MsSUFBQUEsWUFBYTtBQUNiLElBQUFDLHFCQUFzQjtBQUN0QixJQUFBQyxVQUFXOztBQ0ZaLElBQUFDLHFCQUFrQ0MsUUFBQUMsUUFBQSxrQkFBQSxHQUFBLENBQUE7O0FDRGxDLElBQUFDLG9CQUF1QkQsUUFBQSxpQkFBQTtBQUV2QixJQUFNRSxrQkFBa0JBLE1BQU07QUFDN0IsU0FBTztJQUNOLDhCQUFBLEdBQTZCRCxrQkFBQUUsVUFBUztNQUNyQ0MsSUFBSTtNQUNKLFdBQVc7TUFDWCxXQUFXO0lBQ1osQ0FBQztJQUNEQyxZQUFBLEdBQVdKLGtCQUFBRSxVQUFTO01BQ25CQyxJQUFJO01BQ0osV0FBVztNQUNYLFdBQVc7SUFDWixDQUFDO0lBQ0RFLFNBQUEsR0FBUUwsa0JBQUFFLFVBQVM7TUFDaEJDLElBQUk7TUFDSkcsSUFBSTtJQUNMLENBQUM7SUFDRCxpQ0FBQSxHQUFnQ04sa0JBQUFFLFVBQVM7TUFDeENDLElBQUk7TUFDSixXQUFXO01BQ1gsV0FBVztJQUNaLENBQUM7RUFDRjtBQUNEO0FBRUEsSUFBTUksZUFBZU4sZ0JBQWdCO0FBRXJDLElBQU1PLGFBQWdEQyxTQUFRO0FBQzdELFNBQU9GLGFBQWFFLEdBQUcsS0FBS0E7QUFDN0I7O0FDOUJBLElBQU1DLFdBQVlDLFlBQW1CO0FBQ3BDLFNBQU9BLE9BQ0xDLFFBQVEsTUFBTSxPQUFPLEVBQ3JCQSxRQUFRLE1BQU0sTUFBTSxFQUNwQkEsUUFBUSxNQUFNLE1BQU0sRUFDcEJBLFFBQVEsTUFBTSxRQUFRLEVBQ3RCQSxRQUFRLE1BQU0sUUFBUTtBQUN6Qjs7QUZHQSxJQUFNQyxlQUFlQSxDQUFDO0VBQUNDO0VBQUlDLFdBQVdsQixtQ0FBQW1CLFFBQUFDLGNBQUFwQixtQkFBQW1CLFFBQUFFLFVBQUEsSUFBRTtBQUFHLE1BQXlCO0FBQ25FLFFBQU07SUFBQ0M7RUFBSSxJQUFJQyxHQUFHQyxPQUFPQyxJQUFJO0FBRTdCLFNBQ0N6QixtQ0FBQW1CLFFBQUFDLGNBQUFwQixtQkFBQW1CLFFBQUFFLFVBQUEsTUFDRUMsU0FBUyxZQUNUdEIsbUNBQUFtQixRQUFBQyxjQUFDLFdBQUE7SUFDQUgsSUFBSUEsT0FBQSxRQUFBQSxPQUFBLFNBQUFBLEtBQWNwQjtJQUNsQjZCLFdBQVcsQ0FBUzdCLFdBQVcsbUJBQW1CLGlDQUFpQyxTQUFTO0VBQUEsR0FFM0ZxQixhQUFBLFFBQUFBLGFBQUEsU0FBQUEsV0FBWWxCLG1DQUFBbUIsUUFBQUMsY0FBQXBCLG1CQUFBbUIsUUFBQUUsVUFBQSxJQUFFLENBQ2hCLElBQ0csQ0FBQyxVQUFVLGVBQWUsUUFBUSxFQUFFTSxTQUFTTCxJQUFJLEtBQUtNLFNBQVNDLGNBQWMsZ0JBQWdCLElBQ2hHN0IsbUNBQUFtQixRQUFBQyxjQUFDLE1BQUE7SUFBR0gsSUFBSUEsT0FBQSxRQUFBQSxPQUFBLFNBQUFBLEtBQWNwQjtJQUFXNkIsV0FBVyxDQUFTN0IsV0FBVyxTQUFTO0VBQUEsR0FDdkVxQixhQUFBLFFBQUFBLGFBQUEsU0FBQUEsV0FBWWxCLG1DQUFBbUIsUUFBQUMsY0FBQXBCLG1CQUFBbUIsUUFBQUUsVUFBQSxJQUFFLENBQ2hCLElBRUFyQixtQ0FBQW1CLFFBQUFDLGNBQUMsT0FBQTtJQUFJSCxJQUFJQSxPQUFBLFFBQUFBLE9BQUEsU0FBQUEsS0FBY3BCO0lBQVc2QixXQUFXLENBQVM3QixXQUFXLFNBQVM7RUFBQSxHQUN4RXFCLGFBQUEsUUFBQUEsYUFBQSxTQUFBQSxXQUFZbEIsbUNBQUFtQixRQUFBQyxjQUFBcEIsbUJBQUFtQixRQUFBRSxVQUFBLElBQUUsQ0FDaEIsQ0FFRjtBQUVGO0FBTUEsSUFBTVMsV0FBV0EsQ0FBQztFQUFDQztBQUFTLE1BQzNCL0IsbUNBQUFtQixRQUFBQyxjQUFBcEIsbUJBQUFtQixRQUFBRSxVQUFBLE1BQ0NyQixtQ0FBQW1CLFFBQUFDLGNBQUFwQixtQkFBQW1CLFFBQUFFLFVBQUEsTUFBR1YsV0FBVywyQkFBMkIsQ0FBRSxHQUMxQ29CLFVBQVVDLElBQUksQ0FBQ0MsVUFBVUMsVUFDekJsQyxtQ0FBQW1CLFFBQUFDLGNBQUFwQixtQkFBQW1CLFFBQUFFLFVBQUEsTUFDQ3JCLG1DQUFBbUIsUUFBQUMsY0FBQyxLQUFBO0VBQ0FlLE1BQ0NGLFNBQVNOLFNBQVMsR0FBRyxJQUNsQkosR0FBR2EsS0FBS0MsT0FBQSx5QkFBQUMsT0FBZ0N6QixTQUFTb0IsU0FBU2xCLFFBQVEsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFFLElBQ25GUSxHQUFHYSxLQUFLQyxPQUFBLFFBQUFDLE9BQWV6QixTQUFTb0IsUUFBUSxDQUFDLENBQUU7RUFFL0NyQixLQUFLcUI7QUFBQSxHQUVKQSxRQUNGLEdBQ0FqQyxtQ0FBQW1CLFFBQUFDLGNBQUFwQixtQkFBQW1CLFFBQUFFLFVBQUEsTUFBR2EsUUFBUUgsVUFBVVEsU0FBUyxJQUFJNUIsV0FBVyxXQUFXLElBQUlBLFdBQVcsUUFBUSxDQUFFLENBQ2xGLENBQ0EsQ0FDRjtBQUdELElBQU02QixpQkFBaUJBLENBQUM7RUFBQ1Q7QUFBUyxNQUNqQy9CLG1DQUFBbUIsUUFBQUMsY0FBQ0osY0FBQSxNQUNBaEIsbUNBQUFtQixRQUFBQyxjQUFDVSxVQUFBO0VBQVNDO0FBQUEsQ0FBc0IsQ0FDakM7O0FHN0RELElBQUFVLHFCQUFrQnhDLFFBQUFDLFFBQUEsa0JBQUEsR0FBQSxDQUFBO0FBRWxCLElBQU13QyxxQkFBc0JDLGFBQXFCO0FBQ2hELFFBQU1DLGFBQWFoQixTQUFTQyxjQUFtQy9CLGtCQUFrQjtBQUVqRixNQUFJOEMsWUFBWTtBQUNmQSxlQUFXQyxRQUFRRixPQUFPO0VBQzNCO0FBQ0Q7QUFFQSxJQUFNRyxnQkFBaUJmLGVBQThCO0FBQ3BELE1BQUksQ0FBQ0EsYUFBYSxDQUFDQSxVQUFVUSxRQUFRO0FBQ3BDO0VBQ0Q7QUFFQUcscUJBQW1CRCxtQ0FBQXRCLFFBQUFDLGNBQUNvQixnQkFBQTtJQUFlVDtFQUFBLENBQXNCLENBQUU7QUFDNUQ7O0FDakJBLElBQUFnQixxQkFBd0I3QyxRQUFBLGlCQUFBO0FBRXhCLElBQU04QyxPQUFBLEdBQWNELG1CQUFBRSxXQUFBLHFCQUFBWCxPQUF1Q3ZDLE9BQU8sQ0FBRTs7QUNEcEUsSUFBTW1ELG9CQUFBLDJCQUFBO0FBQUEsTUFBQUMsT0FBQUMsa0JBQW9CLFdBQU9DLFFBQWdCQyxZQUF3QjtBQUN4RSxVQUFNQyxTQUFxQztNQUMxQ0MsUUFBUTtNQUNSQyxRQUFRO01BQ1JDLGVBQWU7TUFDZkMsTUFBTTtNQUNOQyxnQkFBZ0IsQ0FBQyxLQUFLO01BQ3RCQyxTQUFTO01BQ1RSO01BQ0FTLFNBQVM7TUFDVEMsUUFBUTtJQUNUO0FBRUEsUUFBSVQsWUFBWTtBQUNmQyxhQUFPRCxhQUFhQTtJQUNyQjtBQUVBLFVBQU1VLFdBQUEsTUFBaUJoQixJQUFJdkIsSUFBSThCLE1BQU07QUFFckMsV0FBT1M7RUFDUixDQUFBO0FBQUEsU0FBQSxTQXBCTWQsbUJBQUFlLElBQUFDLEtBQUE7QUFBQSxXQUFBZixLQUFBZ0IsTUFBQSxNQUFBQyxTQUFBO0VBQUE7QUFBQSxFQUFBOztBQ0FOLElBQUFDLHFCQUEwQm5FLFFBQUEsaUJBQUE7QUFFMUIsSUFBTW9FLGtCQUFBLDJCQUFBO0FBQUEsTUFBQUMsUUFBQW5CLGtCQUFrQixXQUFPb0IsT0FBa0I7QUFDaEQsUUFBSUMsU0FBbUIsQ0FBQTtBQUN2QixRQUFJbkI7QUFFSixVQUFNb0IsbUJBQW1CO0FBRXpCLFFBQUluRCxHQUFHb0QsUUFBUUMsVUFBVUYsbUJBQW1CRixLQUFLLEdBQUc7QUFDbkRDLGVBQVNsRCxHQUFHb0QsUUFBUUMsVUFBVUYsbUJBQW1CRixLQUFLO0FBRXRELGNBQUEsR0FBT0gsbUJBQUFRLGFBQVlKLE1BQU07SUFDMUI7QUFFQSxXQUFPLE1BQU07QUFDWixZQUFNSyxPQUFBLE1BQWE1QixrQkFBa0JzQixPQUFPbEIsVUFBVTtBQUV0RCxVQUFJO0FBQUEsWUFBQXlCLGFBQUFDO0FBQ0gsYUFBQUQsY0FBSUQsS0FBSyxPQUFPLE9BQUEsUUFBQUMsZ0JBQUEsVUFBWkEsWUFBZUUsT0FBTztBQUFBLGNBQUFDLGFBQUFDLDJCQUNOTCxLQUFLLE9BQU8sRUFBRUcsS0FBQSxHQUFBRztBQUFBLGNBQUE7QUFBakMsaUJBQUFGLFdBQUFHLEVBQUEsR0FBQSxFQUFBRCxTQUFBRixXQUFBSSxFQUFBLEdBQUFDLFFBR0s7QUFBQSxvQkFITUMsT0FBQUosT0FBQUs7QUFJVixrQkFBSUQsU0FBQSxRQUFBQSxTQUFBLFVBQUFBLEtBQU1FLGNBQWM7QUFBQSxvQkFBQUMsYUFBQVIsMkJBQ0dLLEtBQUtFLFlBQUEsR0FBQUU7QUFBQSxvQkFBQTtBQUEvQix1QkFBQUQsV0FBQU4sRUFBQSxHQUFBLEVBQUFPLFNBQUFELFdBQUFMLEVBQUEsR0FBQUMsUUFBNkM7QUFBQSwwQkFBbENNLGNBQUFELE9BQUFIO0FBQ1Ysd0JBQUlJLGdCQUFBLFFBQUFBLGdCQUFBLFVBQUFBLFlBQWFDLE1BQU07QUFDdEJyQiw2QkFBT0EsT0FBT2xDLE1BQU0sSUFBSXNELFlBQVlDO29CQUNyQztrQkFDRDtnQkFBQSxTQUFBQyxLQUFBO0FBQUFKLDZCQUFBSyxFQUFBRCxHQUFBO2dCQUFBLFVBQUE7QUFBQUosNkJBQUFNLEVBQUE7Z0JBQUE7Y0FDRDtBQUVBLGtCQUFJVCxTQUFBLFFBQUFBLFNBQUEsVUFBQUEsS0FBTVUsa0JBQWtCO0FBQzNCekIsdUJBQU9BLE9BQU9sQyxNQUFNLElBQUk1QixXQUFXLDhCQUE4QixFQUFFSSxRQUNsRSxNQUFBLEdBQUF1QixPQUNHa0QsS0FBS1UsZ0JBQWdCLENBQ3pCO2NBQ0Q7WUFDRDtVQUFBLFNBQUFILEtBQUE7QUFBQWIsdUJBQUFjLEVBQUFELEdBQUE7VUFBQSxVQUFBO0FBQUFiLHVCQUFBZSxFQUFBO1VBQUE7UUFDRCxPQUFPO0FBQ047UUFDRDtBQUVBLGFBQUFqQixpQkFBSUYsS0FBSyxVQUFVLE9BQUEsUUFBQUUsbUJBQUEsVUFBZkEsZUFBa0IxQixZQUFZO0FBQ2pDLFdBQUM7WUFBQ0E7VUFBVSxJQUFJd0IsS0FBSyxVQUFVO1FBQ2hDLE9BQU87QUFDTjtRQUNEO01BQ0QsUUFBUTtBQUNQO01BQ0Q7SUFDRDtBQUdBdkQsT0FBR29ELFFBQVF3QixVQUFVekIsbUJBQW1CRixPQUFPQyxRQUFRLEtBQUssRUFBRTtBQUU5RCxZQUFBLEdBQU9KLG1CQUFBUSxhQUFZSixNQUFNO0VBQzFCLENBQUE7QUFBQSxTQUFBLFNBdERNSCxpQkFBQThCLEtBQUE7QUFBQSxXQUFBN0IsTUFBQUosTUFBQSxNQUFBQyxTQUFBO0VBQUE7QUFBQSxFQUFBOzs7NENDREwsYUFBa0M7QUFDbEMsVUFBTTtNQUFDaUM7TUFBVUM7TUFBYUM7TUFBaUJDO01BQVlDO0lBQVksSUFBSWxGLEdBQUdDLE9BQU9DLElBQUk7QUFFekYsUUFBSTRFLGFBQWEsVUFBVSxDQUFDQyxlQUFlLENBQUNFLFlBQVk7QUFDdkQ7SUFDRDtBQUVBLFFBQUlELGtCQUFrQkUsY0FBYztBQUNuQztJQUNEO0FBRUEsVUFBTWYsZUFBQSxNQUErQnBCLGdCQUFnQmtDLFVBQVU7QUFFL0QxRCxrQkFBYzRDLFlBQVk7RUFDM0IsQ0FBQTtBQUFBLFdBZGdCZ0IsbUJBQUE7QUFBQSxXQUFBQyxrQkFBQXhDLE1BQUEsTUFBQUMsU0FBQTtFQUFBO0FBQUEsU0FBQXNDO0FBQUEsR0FBQSxFQWNiOyIsCiAgIm5hbWVzIjogWyJlbGVtZW50SWQiLCAibW91bnRQb2ludFNlbGVjdG9yIiwgInZlcnNpb24iLCAiaW1wb3J0X2V4dF9nYWRnZXQyIiwgIl9fdG9FU00iLCAicmVxdWlyZSIsICJpbXBvcnRfZXh0X2dhZGdldCIsICJnZXRJMThuTWVzc2FnZXMiLCAibG9jYWxpemUiLCAiZW4iLCAiU2VwZXJhdG9yIiwgIlBlcmlvZCIsICJ6aCIsICJpMThuTWVzc2FnZXMiLCAiZ2V0TWVzc2FnZSIsICJrZXkiLCAic2FuaXRpemUiLCAic3RyaW5nIiwgInJlcGxhY2UiLCAiRm9vdGVyTm90aWNlIiwgImlkIiwgImNoaWxkcmVuIiwgImRlZmF1bHQiLCAiY3JlYXRlRWxlbWVudCIsICJGcmFnbWVudCIsICJza2luIiwgIm13IiwgImNvbmZpZyIsICJnZXQiLCAiY2xhc3NOYW1lIiwgImluY2x1ZGVzIiwgImRvY3VtZW50IiwgInF1ZXJ5U2VsZWN0b3IiLCAiVXNlckxpc3QiLCAidXNlck5hbWVzIiwgIm1hcCIsICJ1c2VyTmFtZSIsICJpbmRleCIsICJocmVmIiwgInV0aWwiLCAiZ2V0VXJsIiwgImNvbmNhdCIsICJsZW5ndGgiLCAiRm9vdGVyVXNlckxpc3QiLCAiaW1wb3J0X2V4dF9nYWRnZXQzIiwgImFwcGVuZEZvb3Rlck5vdGljZSIsICJlbGVtZW50IiwgIm1vdW50UG9pbnQiLCAicHJlcGVuZCIsICJhcHBlbmRFbGVtZW50IiwgImltcG9ydF9leHRfZ2FkZ2V0NCIsICJhcGkiLCAiaW5pdE13QXBpIiwgInF1ZXJ5Q29udHJpYnV0b3JzIiwgIl9yZWYiLCAiX2FzeW5jVG9HZW5lcmF0b3IiLCAidGl0bGVzIiwgInBjY29udGludWUiLCAicGFyYW1zIiwgImFjdGlvbiIsICJmb3JtYXQiLCAiZm9ybWF0dmVyc2lvbiIsICJwcm9wIiwgInBjZXhjbHVkZWdyb3VwIiwgInBjbGltaXQiLCAic21heGFnZSIsICJtYXhhZ2UiLCAicmVzcG9uc2UiLCAiX3giLCAiX3gyIiwgImFwcGx5IiwgImFyZ3VtZW50cyIsICJpbXBvcnRfZXh0X2dhZGdldDUiLCAiZ2V0Q29udHJpYnV0b3JzIiwgIl9yZWYyIiwgInRpdGxlIiwgInBjbGlzdCIsICJDQUNIRV9LRVlfUFJFRklYIiwgInN0b3JhZ2UiLCAiZ2V0T2JqZWN0IiwgInVuaXF1ZUFycmF5IiwgImRhdGEiLCAiX2RhdGEkcXVlcnkiLCAiX2RhdGEkY29udGludWUiLCAicGFnZXMiLCAiX2l0ZXJhdG9yMiIsICJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsICJfc3RlcDIiLCAicyIsICJuIiwgImRvbmUiLCAicGFnZSIsICJ2YWx1ZSIsICJjb250cmlidXRvcnMiLCAiX2l0ZXJhdG9yMyIsICJfc3RlcDMiLCAiY29udHJpYnV0b3IiLCAibmFtZSIsICJlcnIiLCAiZSIsICJmIiwgImFub25jb250cmlidXRvcnMiLCAic2V0T2JqZWN0IiwgIl94MyIsICJ3Z0FjdGlvbiIsICJ3Z0FydGljbGVJZCIsICJ3Z0N1clJldmlzaW9uSWQiLCAid2dQYWdlTmFtZSIsICJ3Z1JldmlzaW9uSWQiLCAicXVlcnlDb250cmlidXRvcyIsICJfcXVlcnlDb250cmlidXRvcyJdCn0K +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL1F1ZXJ5Q29udHJpYnV0b3JzL29wdGlvbnMuanNvbiIsICJzcmMvUXVlcnlDb250cmlidXRvcnMvbW9kdWxlcy9jb21wb25lbnRzL3JlYWN0LnRzeCIsICJzcmMvUXVlcnlDb250cmlidXRvcnMvbW9kdWxlcy9pMThuLnRzIiwgInNyYy9RdWVyeUNvbnRyaWJ1dG9ycy9tb2R1bGVzL3V0aWwvc2FuaXRpemUudHMiLCAic3JjL1F1ZXJ5Q29udHJpYnV0b3JzL21vZHVsZXMvYXBwZW5kRWxlbWVudC50c3giLCAic3JjL1F1ZXJ5Q29udHJpYnV0b3JzL21vZHVsZXMvYXBpLnRzIiwgInNyYy9RdWVyeUNvbnRyaWJ1dG9ycy9tb2R1bGVzL3F1ZXJ5Q29udHJpYnV0b3JzLnRzIiwgInNyYy9RdWVyeUNvbnRyaWJ1dG9ycy9tb2R1bGVzL3V0aWwvZ2V0Q29udHJpYnV0b3JzLnRzIiwgInNyYy9RdWVyeUNvbnRyaWJ1dG9ycy9RdWVyeUNvbnRyaWJ1dG9ycy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsie1xuXHRcImVsZW1lbnRJZFwiOiBcImdhZGdldC1xdWVyeV9jb250cmlidXRvcnNcIixcblx0XCJtb3VudFBvaW50U2VsZWN0b3JcIjogXCIjZm9vdGVyLWluZm8sLnBhZ2UtaW5mb1wiLFxuXHRcInZlcnNpb25cIjogXCIxLjBcIlxufVxuIiwgImltcG9ydCAqIGFzIE9QVElPTlMgZnJvbSAnLi4vLi4vb3B0aW9ucy5qc29uJztcbmltcG9ydCBSZWFjdCwge1JlYWN0RWxlbWVudH0gZnJvbSAnZXh0LmdhZGdldC5KU1gnO1xuaW1wb3J0IHtnZXRNZXNzYWdlfSBmcm9tICcuLi9pMThuJztcbmltcG9ydCB7c2FuaXRpemV9IGZyb20gJy4uL3V0aWwvc2FuaXRpemUnO1xuXG5pbnRlcmZhY2UgRm9vdGVyTm90aWNlUHJvcHMge1xuXHRpZD86IHN0cmluZztcblx0Y2hpbGRyZW4/OiBSZWFjdEVsZW1lbnQgfCBSZWFjdEVsZW1lbnRbXTtcbn1cblxuY29uc3QgRm9vdGVyTm90aWNlID0gKHtpZCwgY2hpbGRyZW4gPSA8PjwvPn06IEZvb3Rlck5vdGljZVByb3BzKSA9PiB7XG5cdGNvbnN0IHtza2lufSA9IG13LmNvbmZpZy5nZXQoKTtcblxuXHRyZXR1cm4gKFxuXHRcdDw+XG5cdFx0XHR7c2tpbiA9PT0gJ2NpdGl6ZW4nID8gKFxuXHRcdFx0XHQ8c2VjdGlvblxuXHRcdFx0XHRcdGlkPXtpZCA/PyBPUFRJT05TLmVsZW1lbnRJZH1cblx0XHRcdFx0XHRjbGFzc05hbWU9e1tPUFRJT05TLmVsZW1lbnRJZCwgJ3BhZ2UtaW5mb19faXRlbScsICdjaXRpemVuLWZvb3Rlcl9fcGFnZWluZm8taXRlbScsICdub3ByaW50J119XG5cdFx0XHRcdD5cblx0XHRcdFx0XHR7Y2hpbGRyZW4gPz8gPD48Lz59XG5cdFx0XHRcdDwvc2VjdGlvbj5cblx0XHRcdCkgOiBbJ3ZlY3RvcicsICd2ZWN0b3ItMjAyMicsICdnb25nYmknXS5pbmNsdWRlcyhza2luKSB8fCBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCd1bCNmb290ZXItaW5mbycpID8gKFxuXHRcdFx0XHQ8bGkgaWQ9e2lkID8/IE9QVElPTlMuZWxlbWVudElkfSBjbGFzc05hbWU9e1tPUFRJT05TLmVsZW1lbnRJZCwgJ25vcHJpbnQnXX0+XG5cdFx0XHRcdFx0e2NoaWxkcmVuID8/IDw+PC8+fVxuXHRcdFx0XHQ8L2xpPlxuXHRcdFx0KSA6IChcblx0XHRcdFx0PGRpdiBpZD17aWQgPz8gT1BUSU9OUy5lbGVtZW50SWR9IGNsYXNzTmFtZT17W09QVElPTlMuZWxlbWVudElkLCAnbm9wcmludCddfT5cblx0XHRcdFx0XHR7Y2hpbGRyZW4gPz8gPD48Lz59XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0KX1cblx0XHQ8Lz5cblx0KTtcbn07XG5cbmludGVyZmFjZSBVc2VyTGlzdFByb3BzIHtcblx0dXNlck5hbWVzOiBzdHJpbmdbXTtcbn1cblxuY29uc3QgVXNlckxpc3QgPSAoe3VzZXJOYW1lc306IFVzZXJMaXN0UHJvcHMpID0+IChcblx0PD5cblx0XHQ8PntnZXRNZXNzYWdlKCdCYXNlZCBvbiBjb250cmlidXRpb25zIG9mJyl9PC8+XG5cdFx0e3VzZXJOYW1lcy5tYXAoKHVzZXJOYW1lLCBpbmRleCkgPT4gKFxuXHRcdFx0PD5cblx0XHRcdFx0PGFcblx0XHRcdFx0XHRocmVmPXtcblx0XHRcdFx0XHRcdHVzZXJOYW1lLmluY2x1ZGVzKCc+Jylcblx0XHRcdFx0XHRcdFx0PyBtdy51dGlsLmdldFVybChgU3BlY2lhbDpHb1RvSW50ZXJXaWtpLyR7c2FuaXRpemUodXNlck5hbWUucmVwbGFjZSgnPicsICc6VXNlcjonKSl9YClcblx0XHRcdFx0XHRcdFx0OiBtdy51dGlsLmdldFVybChgVXNlcjoke3Nhbml0aXplKHVzZXJOYW1lKX1gKVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRrZXk9e3VzZXJOYW1lfVxuXHRcdFx0XHQ+XG5cdFx0XHRcdFx0e3VzZXJOYW1lfVxuXHRcdFx0XHQ8L2E+XG5cdFx0XHRcdDw+e2luZGV4IDwgdXNlck5hbWVzLmxlbmd0aCAtIDEgPyBnZXRNZXNzYWdlKCdTZXBlcmF0b3InKSA6IGdldE1lc3NhZ2UoJ1BlcmlvZCcpfTwvPlxuXHRcdFx0PC8+XG5cdFx0KSl9XG5cdDwvPlxuKTtcblxuY29uc3QgRm9vdGVyVXNlckxpc3QgPSAoe3VzZXJOYW1lc306IFVzZXJMaXN0UHJvcHMpID0+IChcblx0PEZvb3Rlck5vdGljZT5cblx0XHQ8VXNlckxpc3QgdXNlck5hbWVzPXt1c2VyTmFtZXN9IC8+XG5cdDwvRm9vdGVyTm90aWNlPlxuKTtcblxuZXhwb3J0IHtGb290ZXJVc2VyTGlzdH07XG4iLCAiaW1wb3J0IHtsb2NhbGl6ZX0gZnJvbSAnZXh0LmdhZGdldC5pMThuJztcblxuY29uc3QgZ2V0STE4bk1lc3NhZ2VzID0gKCkgPT4ge1xuXHRyZXR1cm4ge1xuXHRcdCdCYXNlZCBvbiBjb250cmlidXRpb25zIG9mJzogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdCYXNlZCBvbiBjb250cmlidXRpb25zIG9mJyxcblx0XHRcdCd6aC1oYW5zJzogJ+WfuuS6juS4i+WIl+eUqOaIt+eahOi0oeeMru+8micsXG5cdFx0XHQnemgtaGFudCc6ICfln7rkuo7kuIvliJfkvb/nlKjogIXnmoTosqLnjbvvvJonLFxuXHRcdH0pLFxuXHRcdFNlcGVyYXRvcjogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICcsICcsXG5cdFx0XHQnemgtaGFucyc6ICfjgIEnLFxuXHRcdFx0J3poLWhhbnQnOiAn44CBJyxcblx0XHR9KSxcblx0XHRQZXJpb2Q6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnLicsXG5cdFx0XHR6aDogJ+OAgicsXG5cdFx0fSksXG5cdFx0J090aGVyIGFub255bW91cyBjb250cmlidXRvcnMnOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ290aGVyICQxIGFub255bW91cyBjb250cmlidXRvcihzKScsXG5cdFx0XHQnemgtaGFucyc6ICflhbbku5YkMeS9jeWMv+WQjei0oeeMruiAhScsXG5cdFx0XHQnemgtaGFudCc6ICflhbbku5YkMeS9jeWMv+WQjeiyoueNu+iAhScsXG5cdFx0fSksXG5cdH07XG59O1xuXG5jb25zdCBpMThuTWVzc2FnZXMgPSBnZXRJMThuTWVzc2FnZXMoKTtcblxuY29uc3QgZ2V0TWVzc2FnZTogR2V0TWVzc2FnZXM8dHlwZW9mIGkxOG5NZXNzYWdlcz4gPSAoa2V5KSA9PiB7XG5cdHJldHVybiBpMThuTWVzc2FnZXNba2V5XSB8fCBrZXk7XG59O1xuXG5leHBvcnQge2dldE1lc3NhZ2V9O1xuIiwgImNvbnN0IHNhbml0aXplID0gKHN0cmluZzogc3RyaW5nKSA9PiB7XG5cdHJldHVybiBzdHJpbmdcblx0XHQucmVwbGFjZSgvJi9nLCAnJmFtcDsnKVxuXHRcdC5yZXBsYWNlKC88L2csICcmbHQ7Jylcblx0XHQucmVwbGFjZSgvPi9nLCAnJmd0OycpXG5cdFx0LnJlcGxhY2UoLycvZywgJyZhcG9zOycpXG5cdFx0LnJlcGxhY2UoL1wiL2csICcmcXVvdDsnKTtcbn07XG5cbmV4cG9ydCB7c2FuaXRpemV9O1xuIiwgImltcG9ydCAqIGFzIE9QVElPTlMgZnJvbSAnLi4vb3B0aW9ucy5qc29uJztcbmltcG9ydCB7Rm9vdGVyVXNlckxpc3R9IGZyb20gJy4vY29tcG9uZW50cy9yZWFjdCc7XG5pbXBvcnQgUmVhY3QgZnJvbSAnZXh0LmdhZGdldC5KU1gnO1xuXG5jb25zdCBhcHBlbmRGb290ZXJOb3RpY2UgPSAoZWxlbWVudDogRWxlbWVudCkgPT4ge1xuXHRjb25zdCBtb3VudFBvaW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcjxIVE1MRWxlbWVudD4oT1BUSU9OUy5tb3VudFBvaW50U2VsZWN0b3IpO1xuXG5cdGlmIChtb3VudFBvaW50KSB7XG5cdFx0bW91bnRQb2ludC5wcmVwZW5kKGVsZW1lbnQpO1xuXHR9XG59O1xuXG5jb25zdCBhcHBlbmRFbGVtZW50ID0gKHVzZXJOYW1lczogc3RyaW5nW10pOiB2b2lkID0+IHtcblx0aWYgKCF1c2VyTmFtZXMgfHwgIXVzZXJOYW1lcy5sZW5ndGgpIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRhcHBlbmRGb290ZXJOb3RpY2UoPEZvb3RlclVzZXJMaXN0IHVzZXJOYW1lcz17dXNlck5hbWVzfSAvPik7XG59O1xuXG5leHBvcnQge2FwcGVuZEVsZW1lbnR9O1xuIiwgImltcG9ydCAqIGFzIE9QVElPTlMgZnJvbSAnLi4vb3B0aW9ucy5qc29uJztcbmltcG9ydCB7aW5pdE13QXBpfSBmcm9tICdleHQuZ2FkZ2V0LlV0aWwnO1xuXG5jb25zdCBhcGk6IG13LkFwaSA9IGluaXRNd0FwaShgUXVlcnlDb250cmlidXRvcnMvJHtPUFRJT05TLnZlcnNpb259YCk7XG5cbmV4cG9ydCB7YXBpfTtcbiIsICJpbXBvcnQge2FwaX0gZnJvbSAnLi9hcGknO1xuXG5jb25zdCBxdWVyeUNvbnRyaWJ1dG9ycyA9IGFzeW5jICh0aXRsZXM6IHN0cmluZywgcGNjb250aW51ZT86IHN0cmluZykgPT4ge1xuXHRjb25zdCBwYXJhbXM6IEFwaVF1ZXJ5Q29udHJpYnV0b3JzUGFyYW1zID0ge1xuXHRcdGFjdGlvbjogJ3F1ZXJ5Jyxcblx0XHRmb3JtYXQ6ICdqc29uJyxcblx0XHRmb3JtYXR2ZXJzaW9uOiAnMicsXG5cdFx0cHJvcDogJ2NvbnRyaWJ1dG9ycycsXG5cdFx0cGNleGNsdWRlZ3JvdXA6IFsnYm90J10sXG5cdFx0cGNsaW1pdDogNTAwMCxcblx0XHR0aXRsZXMsXG5cdFx0c21heGFnZTogNjAwLFxuXHRcdG1heGFnZTogNjAwLFxuXHR9O1xuXG5cdGlmIChwY2NvbnRpbnVlKSB7XG5cdFx0cGFyYW1zLnBjY29udGludWUgPSBwY2NvbnRpbnVlO1xuXHR9XG5cblx0Y29uc3QgcmVzcG9uc2UgPSBhd2FpdCBhcGkuZ2V0KHBhcmFtcyk7XG5cblx0cmV0dXJuIHJlc3BvbnNlO1xufTtcblxuZXhwb3J0IHtxdWVyeUNvbnRyaWJ1dG9yc307XG4iLCAiaW1wb3J0IHtnZXRNZXNzYWdlfSBmcm9tICcuLi9pMThuJztcbmltcG9ydCB7cXVlcnlDb250cmlidXRvcnN9IGZyb20gJy4uL3F1ZXJ5Q29udHJpYnV0b3JzJztcbmltcG9ydCB7dW5pcXVlQXJyYXl9IGZyb20gJ2V4dC5nYWRnZXQuVXRpbCc7XG5cbmNvbnN0IGdldENvbnRyaWJ1dG9ycyA9IGFzeW5jICh0aXRsZTogc3RyaW5nKSA9PiB7XG5cdGxldCBwY2xpc3Q6IHN0cmluZ1tdID0gW107XG5cdGxldCBwY2NvbnRpbnVlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cblx0Y29uc3QgQ0FDSEVfS0VZX1BSRUZJWCA9ICdleHQuZ2FkZ2V0LlF1ZXJ5Q29udHJpYnV0b3JzX2dldENvbnRyaWJ1dG9ycy0nO1xuXG5cdGlmIChtdy5zdG9yYWdlLmdldE9iamVjdChDQUNIRV9LRVlfUFJFRklYICsgdGl0bGUpKSB7XG5cdFx0cGNsaXN0ID0gbXcuc3RvcmFnZS5nZXRPYmplY3QoQ0FDSEVfS0VZX1BSRUZJWCArIHRpdGxlKSBhcyBzdHJpbmdbXTtcblxuXHRcdHJldHVybiB1bmlxdWVBcnJheShwY2xpc3QpO1xuXHR9XG5cblx0d2hpbGUgKHRydWUpIHtcblx0XHRjb25zdCBkYXRhID0gYXdhaXQgcXVlcnlDb250cmlidXRvcnModGl0bGUsIHBjY29udGludWUpO1xuXG5cdFx0dHJ5IHtcblx0XHRcdGlmIChkYXRhWydxdWVyeSddPy5wYWdlcykge1xuXHRcdFx0XHRmb3IgKGNvbnN0IHBhZ2Ugb2YgZGF0YVsncXVlcnknXS5wYWdlcyBhcyB7XG5cdFx0XHRcdFx0YW5vbmNvbnRyaWJ1dG9yczogbnVtYmVyO1xuXHRcdFx0XHRcdGNvbnRyaWJ1dG9yczoge3VzZXJpZDogbnVtYmVyOyBuYW1lOiBzdHJpbmd9W107XG5cdFx0XHRcdH1bXSkge1xuXHRcdFx0XHRcdGlmIChwYWdlPy5jb250cmlidXRvcnMpIHtcblx0XHRcdFx0XHRcdGZvciAoY29uc3QgY29udHJpYnV0b3Igb2YgcGFnZS5jb250cmlidXRvcnMpIHtcblx0XHRcdFx0XHRcdFx0aWYgKGNvbnRyaWJ1dG9yPy5uYW1lKSB7XG5cdFx0XHRcdFx0XHRcdFx0cGNsaXN0W3BjbGlzdC5sZW5ndGhdID0gY29udHJpYnV0b3IubmFtZTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdGlmIChwYWdlPy5hbm9uY29udHJpYnV0b3JzKSB7XG5cdFx0XHRcdFx0XHRwY2xpc3RbcGNsaXN0Lmxlbmd0aF0gPSBnZXRNZXNzYWdlKCdPdGhlciBhbm9ueW1vdXMgY29udHJpYnV0b3JzJykucmVwbGFjZShcblx0XHRcdFx0XHRcdFx0JyQxJyxcblx0XHRcdFx0XHRcdFx0YCR7cGFnZS5hbm9uY29udHJpYnV0b3JzfWBcblx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRicmVhaztcblx0XHRcdH1cblxuXHRcdFx0aWYgKGRhdGFbJ2NvbnRpbnVlJ10/LnBjY29udGludWUpIHtcblx0XHRcdFx0KHtwY2NvbnRpbnVlfSA9IGRhdGFbJ2NvbnRpbnVlJ10gYXMge3BjY29udGludWU6IHN0cmluZ30pO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHR9XG5cdFx0fSBjYXRjaCB7XG5cdFx0XHRicmVhaztcblx0XHR9XG5cdH1cblxuXHQvLyBDYWNoZSBmb3IgMTAgbWludXRlc1xuXHRtdy5zdG9yYWdlLnNldE9iamVjdChDQUNIRV9LRVlfUFJFRklYICsgdGl0bGUsIHBjbGlzdCwgMTAgKiA2MCk7XG5cblx0cmV0dXJuIHVuaXF1ZUFycmF5KHBjbGlzdCk7XG59O1xuXG5leHBvcnQge2dldENvbnRyaWJ1dG9yc307XG4iLCAiaW1wb3J0IHthcHBlbmRFbGVtZW50fSBmcm9tICcuL21vZHVsZXMvYXBwZW5kRWxlbWVudCc7XG5pbXBvcnQge2dldENvbnRyaWJ1dG9yc30gZnJvbSAnLi9tb2R1bGVzL3V0aWwvZ2V0Q29udHJpYnV0b3JzJztcblxuKGFzeW5jIGZ1bmN0aW9uIHF1ZXJ5Q29udHJpYnV0b3MoKSB7XG5cdGNvbnN0IHt3Z0FjdGlvbiwgd2dBcnRpY2xlSWQsIHdnQ3VyUmV2aXNpb25JZCwgd2dQYWdlTmFtZSwgd2dSZXZpc2lvbklkfSA9IG13LmNvbmZpZy5nZXQoKTtcblxuXHRpZiAod2dBY3Rpb24gIT09ICd2aWV3JyB8fCAhd2dBcnRpY2xlSWQgfHwgIXdnUGFnZU5hbWUpIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRpZiAod2dDdXJSZXZpc2lvbklkID4gd2dSZXZpc2lvbklkKSB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0Y29uc3QgY29udHJpYnV0b3JzOiBzdHJpbmdbXSA9IGF3YWl0IGdldENvbnRyaWJ1dG9ycyh3Z1BhZ2VOYW1lKTtcblxuXHRhcHBlbmRFbGVtZW50KGNvbnRyaWJ1dG9ycyk7XG59KSgpO1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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UUFBUXdCLFVBQVV6QixtQkFBbUJGLE9BQU9DLFFBQVEsS0FBSyxFQUFFO0FBRTlELFlBQUEsR0FBT0osbUJBQUFRLGFBQVlKLE1BQU07RUFDMUIsQ0FBQTtBQUFBLFNBQUEsU0F0RE1ILGlCQUFBOEIsS0FBQTtBQUFBLFdBQUE3QixNQUFBSixNQUFBLE1BQUFDLFNBQUE7RUFBQTtBQUFBLEVBQUE7Ozs0Q0NETCxhQUFrQztBQUNsQyxVQUFNO01BQUNpQztNQUFVQztNQUFhQztNQUFpQkM7TUFBWUM7SUFBWSxJQUFJbEYsR0FBR0MsT0FBT0MsSUFBSTtBQUV6RixRQUFJNEUsYUFBYSxVQUFVLENBQUNDLGVBQWUsQ0FBQ0UsWUFBWTtBQUN2RDtJQUNEO0FBRUEsUUFBSUQsa0JBQWtCRSxjQUFjO0FBQ25DO0lBQ0Q7QUFFQSxVQUFNZixlQUFBLE1BQStCcEIsZ0JBQWdCa0MsVUFBVTtBQUUvRDFELGtCQUFjNEMsWUFBWTtFQUMzQixDQUFBO0FBQUEsV0FkZ0JnQixtQkFBQTtBQUFBLFdBQUFDLGtCQUFBeEMsTUFBQSxNQUFBQyxTQUFBO0VBQUE7QUFBQSxTQUFBc0M7QUFBQSxHQUFBLEVBY2I7IiwKICAibmFtZXMiOiBbImVsZW1lbnRJZCIsICJtb3VudFBvaW50U2VsZWN0b3IiLCAidmVyc2lvbiIsICJpbXBvcnRfZXh0X2dhZGdldDIiLCAiX190b0VTTSIsICJyZXF1aXJlIiwgImltcG9ydF9leHRfZ2FkZ2V0IiwgImdldEkxOG5NZXNzYWdlcyIsICJsb2NhbGl6ZSIsICJlbiIsICJTZXBlcmF0b3IiLCAiUGVyaW9kIiwgInpoIiwgImkxOG5NZXNzYWdlcyIsICJnZXRNZXNzYWdlIiwgImtleSIsICJzYW5pdGl6ZSIsICJzdHJpbmciLCAicmVwbGFjZSIsICJGb290ZXJOb3RpY2UiLCAiaWQiLCAiY2hpbGRyZW4iLCAiZGVmYXVsdCIsICJjcmVhdGVFbGVtZW50IiwgIkZyYWdtZW50IiwgInNraW4iLCAibXciLCAiY29uZmlnIiwgImdldCIsICJjbGFzc05hbWUiLCAiaW5jbHVkZXMiLCAiZG9jdW1lbnQiLCAicXVlcnlTZWxlY3RvciIsICJVc2VyTGlzdCIsICJ1c2VyTmFtZXMiLCAibWFwIiwgInVzZXJOYW1lIiwgImluZGV4IiwgImhyZWYiLCAidXRpbCIsICJnZXRVcmwiLCAiY29uY2F0IiwgImxlbmd0aCIsICJGb290ZXJVc2VyTGlzdCIsICJpbXBvcnRfZXh0X2dhZGdldDMiLCAiYXBwZW5kRm9vdGVyTm90aWNlIiwgImVsZW1lbnQiLCAibW91bnRQb2ludCIsICJwcmVwZW5kIiwgImFwcGVuZEVsZW1lbnQiLCAiaW1wb3J0X2V4dF9nYWRnZXQ0IiwgImFwaSIsICJpbml0TXdBcGkiLCAicXVlcnlDb250cmlidXRvcnMiLCAiX3JlZiIsICJfYXN5bmNUb0dlbmVyYXRvciIsICJ0aXRsZXMiLCAicGNjb250aW51ZSIsICJwYXJhbXMiLCAiYWN0aW9uIiwgImZvcm1hdCIsICJmb3JtYXR2ZXJzaW9uIiwgInByb3AiLCAicGNleGNsdWRlZ3JvdXAiLCAicGNsaW1pdCIsICJzbWF4YWdlIiwgIm1heGFnZSIsICJyZXNwb25zZSIsICJfeCIsICJfeDIiLCAiYXBwbHkiLCAiYXJndW1lbnRzIiwgImltcG9ydF9leHRfZ2FkZ2V0NSIsICJnZXRDb250cmlidXRvcnMiLCAiX3JlZjIiLCAidGl0bGUiLCAicGNsaXN0IiwgIkNBQ0hFX0tFWV9QUkVGSVgiLCAic3RvcmFnZSIsICJnZXRPYmplY3QiLCAidW5pcXVlQXJyYXkiLCAiZGF0YSIsICJfZGF0YSRxdWVyeSIsICJfZGF0YSRjb250aW51ZSIsICJwYWdlcyIsICJfaXRlcmF0b3IyIiwgIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwgIl9zdGVwMiIsICJzIiwgIm4iLCAiZG9uZSIsICJwYWdlIiwgInZhbHVlIiwgImNvbnRyaWJ1dG9ycyIsICJfaXRlcmF0b3IzIiwgIl9zdGVwMyIsICJjb250cmlidXRvciIsICJuYW1lIiwgImVyciIsICJlIiwgImYiLCAiYW5vbmNvbnRyaWJ1dG9ycyIsICJzZXRPYmplY3QiLCAiX3gzIiwgIndnQWN0aW9uIiwgIndnQXJ0aWNsZUlkIiwgIndnQ3VyUmV2aXNpb25JZCIsICJ3Z1BhZ2VOYW1lIiwgIndnUmV2aXNpb25JZCIsICJxdWVyeUNvbnRyaWJ1dG9zIiwgIl9xdWVyeUNvbnRyaWJ1dG9zIl0KfQo= diff --git a/dist/QuickPatrol/QuickPatrol.js b/dist/QuickPatrol/QuickPatrol.js index 7346be2aa..4762b0818 100644 --- a/dist/QuickPatrol/QuickPatrol.js +++ b/dist/QuickPatrol/QuickPatrol.js @@ -104,7 +104,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge mod )); //! src/QuickPatrol/modules/patrolPages.tsx -var import_ext_gadget3 = __toESM(require("ext.gadget.React"), 1); +var import_ext_gadget3 = __toESM(require("ext.gadget.JSX"), 1); //! src/QuickPatrol/options.json var version = "2.0"; //! src/QuickPatrol/modules/api.ts @@ -236,4 +236,4 @@ void (0, import_ext_gadget4.getBody)().then(function quickPatrol($body) { /* */ -//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL1F1aWNrUGF0cm9sL21vZHVsZXMvcGF0cm9sUGFnZXMudHN4IiwgInNyYy9RdWlja1BhdHJvbC9vcHRpb25zLmpzb24iLCAic3JjL1F1aWNrUGF0cm9sL21vZHVsZXMvYXBpLnRzIiwgInNyYy9RdWlja1BhdHJvbC9tb2R1bGVzL2kxOG4udHMiLCAic3JjL1F1aWNrUGF0cm9sL1F1aWNrUGF0cm9sLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQgUmVhY3QgZnJvbSAnZXh0LmdhZGdldC5SZWFjdCc7XG5pbXBvcnQge2FwaX0gZnJvbSAnLi9hcGknO1xuaW1wb3J0IHtnZXRNZXNzYWdlfSBmcm9tICcuL2kxOG4nO1xuXG5jb25zdCBwYXRyb2xBbGxQYWdlcyA9ICgkYm9keTogSlF1ZXJ5PEhUTUxCb2R5RWxlbWVudD4pID0+IChcblx0PGRpdj5cblx0XHQ8YVxuXHRcdFx0aWQ9XCJnYWRnZXQtcXVpY2tfcGF0cm9sX19hbGxcIlxuXHRcdFx0b25DbGljaz17KCk6IHZvaWQgPT4ge1xuXHRcdFx0XHRpZiAoIWNvbmZpcm0oZ2V0TWVzc2FnZSgnUGF0cm9sIGFsbCBwYWdlcz8nKSkpIHtcblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH1cblx0XHRcdFx0JGJvZHkuZmluZCgnLm5vdC1wYXRyb2xsZWQgLmdhZGdldC1xdWlja19wYXRyb2xfX3BhdHJvbGJ0bicpLmVhY2goKF9pbmRleCwgZWxlbWVudCk6IHZvaWQgPT4ge1xuXHRcdFx0XHRcdGlmICgkKGVsZW1lbnQpLmNzcygncG9pbnRlci1ldmVudHMnKSAhPT0gJ25vbmUnKSB7XG5cdFx0XHRcdFx0XHRlbGVtZW50LmNsaWNrKCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KTtcblx0XHRcdH19XG5cdFx0PlxuXHRcdFx0e2BbJHtnZXRNZXNzYWdlKCdQYXRyb2wgYWxsIHBhZ2VzJyl9XWB9XG5cdFx0PC9hPlxuXHQ8L2Rpdj5cbik7XG5cbmNvbnN0IHBhdHJvbFNpbmdsZVBhZ2UgPSAoaW5kZXg6IHN0cmluZywgcmV2SWQ6IHN0cmluZykgPT4gKFxuXHQ8YVxuXHRcdGNsYXNzTmFtZT1cImdhZGdldC1xdWlja19wYXRyb2xfX3BhdHJvbGJ0blwiXG5cdFx0aWQ9e2BnYWRnZXQtcXVpY2tfcGF0cm9sX18ke2luZGV4fWB9XG5cdFx0ZGF0YXNldD17e1xuXHRcdFx0YnRuaWQ6IGluZGV4LnRvU3RyaW5nKCksXG5cdFx0XHRyZXZpZDogcmV2SWQsXG5cdFx0fX1cblx0XHRvbkNsaWNrPXsoZXZlbnQpOiB2b2lkID0+IHtcblx0XHRcdGNvbnN0IHtidG5pZCwgcmV2aWR9ID0gZXZlbnQuY3VycmVudFRhcmdldC5kYXRhc2V0O1xuXHRcdFx0Y29uc3QgcGFyYW1zOiBBcGlQYXRyb2xQYXJhbXMgPSB7XG5cdFx0XHRcdGFjdGlvbjogJ3BhdHJvbCcsXG5cdFx0XHRcdGZvcm1hdDogJ2pzb24nLFxuXHRcdFx0XHRyZXZpZDogTnVtYmVyKHJldmlkKSxcblx0XHRcdH07XG5cdFx0XHR2b2lkIGFwaVxuXHRcdFx0XHQucG9zdFdpdGhUb2tlbigncGF0cm9sJywgcGFyYW1zKVxuXHRcdFx0XHQuZG9uZSgoe2Vycm9yfSk6IHZvaWQgPT4ge1xuXHRcdFx0XHRcdGlmIChlcnJvcikge1xuXHRcdFx0XHRcdFx0dm9pZCBtdy5ub3RpZnkoZ2V0TWVzc2FnZSgnQVBJJykgKyBlcnJvclsnaW5mbyddLCB7XG5cdFx0XHRcdFx0XHRcdHRhZzogJ1F1aWNrUGF0cm9sJyxcblx0XHRcdFx0XHRcdFx0dHlwZTogJ2Vycm9yJyxcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdFx0JChgI2dhZGdldC1xdWlja19wYXRyb2xfXyR7YnRuaWR9YCkuY3NzKCdjb2xvcicsICcjZjAwJyk7XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdCQoYCNnYWRnZXQtcXVpY2tfcGF0cm9sX18ke2J0bmlkfWApXG5cdFx0XHRcdFx0XHRcdC5jc3Moe1xuXHRcdFx0XHRcdFx0XHRcdHBvaW50ZXJFdmVudHM6ICdub25lJyxcblx0XHRcdFx0XHRcdFx0XHRjb2xvcjogJyM4ODgnLFxuXHRcdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdFx0XHQudGV4dChnZXRNZXNzYWdlKCdQYXRyb2xsZWQnKSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KVxuXHRcdFx0XHQuZmFpbCgoZXJyb3IpOiB2b2lkID0+IHtcblx0XHRcdFx0XHR2b2lkIG13Lm5vdGlmeShnZXRNZXNzYWdlKCdBSkFYJyksIHtcblx0XHRcdFx0XHRcdHRhZzogJ1F1aWNrUGF0cm9sJyxcblx0XHRcdFx0XHRcdHR5cGU6ICdlcnJvcicsXG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0JChgI2dhZGdldC1xdWlja19wYXRyb2xfXyR7YnRuaWR9YCkuY3NzKCdjb2xvcicsICcjZjAwJyk7XG5cdFx0XHRcdFx0Y29uc29sZS5lcnJvcignW1F1aWNrUGF0cm9sXSBBamF4IGVycm9yOicsIGVycm9yKTtcblx0XHRcdFx0fSk7XG5cdFx0fX1cblx0PlxuXHRcdHtgWyR7Z2V0TWVzc2FnZSgnUGF0cm9sJyl9XWB9XG5cdDwvYT5cbik7XG5cbmV4cG9ydCB7cGF0cm9sQWxsUGFnZXMsIHBhdHJvbFNpbmdsZVBhZ2V9O1xuIiwgIntcblx0XCJ2ZXJzaW9uXCI6IFwiMi4wXCJcbn1cbiIsICJpbXBvcnQgKiBhcyBPUFRJT05TIGZyb20gJy4uL29wdGlvbnMuanNvbic7XG5pbXBvcnQge2luaXRNd0FwaX0gZnJvbSAnZXh0LmdhZGdldC5VdGlsJztcblxuY29uc3QgYXBpOiBtdy5BcGkgPSBpbml0TXdBcGkoYFF1aWNrUGF0cm9sLyR7T1BUSU9OUy52ZXJzaW9ufWApO1xuXG5leHBvcnQge2FwaX07XG4iLCAiaW1wb3J0IHtsb2NhbGl6ZX0gZnJvbSAnZXh0LmdhZGdldC5pMThuJztcblxuY29uc3QgZ2V0STE4bk1lc3NhZ2VzID0gKCkgPT4ge1xuXHRyZXR1cm4ge1xuXHRcdFBhdHJvbDogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdQYXRyb2wnLFxuXHRcdFx0J3poLWhhbnMnOiAn5beh5p+lJyxcblx0XHRcdCd6aC1oYW50JzogJ+W3oeafpScsXG5cdFx0fSksXG5cdFx0J1BhdHJvbCBhbGwgcGFnZXMnOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ1BhdHJvbCBhbGwgcGFnZXMnLFxuXHRcdFx0J3poLWhhbnMnOiAn5beh5p+l5omA5pyJ6aG16Z2i77yfJyxcblx0XHRcdCd6aC1oYW50JzogJ+W3oeafpeWFqOmDqOmggemdou+8nycsXG5cdFx0fSksXG5cdFx0J1BhdHJvbCBhbGwgcGFnZXM/JzogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdQYXRyb2wgYWxsIHBhZ2VzPycsXG5cdFx0XHQnemgtaGFucyc6ICfnoa7lrprlt6Hmn6XmiYDmnInpobXpnaLvvJ8nLFxuXHRcdFx0J3poLWhhbnQnOiAn56K65a6a5beh5p+l5YWo6YOo6aCB6Z2i77yfJyxcblx0XHR9KSxcblx0XHRQYXRyb2xsZWQ6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnUGF0cm9sbGVkJyxcblx0XHRcdCd6aC1oYW5zJzogJ+W3suW3oeafpScsXG5cdFx0XHQnemgtaGFudCc6ICflt7Llt6Hmn6UnLFxuXHRcdH0pLFxuXHRcdEFKQVg6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnQUpBWCBmYWlsdXJlJyxcblx0XHRcdCd6aC1oYW5zJzogJ0FKQVjlpLHotKUnLFxuXHRcdFx0J3poLWhhbnQnOiAnQUpBWOWkseaVlycsXG5cdFx0fSksXG5cdFx0QVBJOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ0FQSSBmYWlsdXJlOiAnLFxuXHRcdFx0J3poLWhhbnMnOiAnQVBJ5aSx6LSl77yaJyxcblx0XHRcdCd6aC1oYW50JzogJ0FQSeWkseaVl++8micsXG5cdFx0fSksXG5cdH07XG59O1xuXG5jb25zdCBpMThuTWVzc2FnZXMgPSBnZXRJMThuTWVzc2FnZXMoKTtcblxuY29uc3QgZ2V0TWVzc2FnZTogR2V0TWVzc2FnZXM8dHlwZW9mIGkxOG5NZXNzYWdlcz4gPSAoa2V5KSA9PiB7XG5cdHJldHVybiBpMThuTWVzc2FnZXNba2V5XSB8fCBrZXk7XG59O1xuXG5leHBvcnQge2dldE1lc3NhZ2V9O1xuIiwgImltcG9ydCB7cGF0cm9sQWxsUGFnZXMsIHBhdHJvbFNpbmdsZVBhZ2V9IGZyb20gJy4vbW9kdWxlcy9wYXRyb2xQYWdlcyc7XG5pbXBvcnQge2dldEJvZHl9IGZyb20gJ2V4dC5nYWRnZXQuVXRpbCc7XG5cbnZvaWQgZ2V0Qm9keSgpLnRoZW4oZnVuY3Rpb24gcXVpY2tQYXRyb2woJGJvZHk6IEpRdWVyeTxIVE1MQm9keUVsZW1lbnQ+KTogdm9pZCB7XG5cdGlmIChtdy5jb25maWcuZ2V0KCd3Z0Nhbm9uaWNhbFNwZWNpYWxQYWdlTmFtZScpICE9PSAnTmV3cGFnZXMnKSB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0LyogUGF0cm9sIHNpbmdsZSBwYWdlICovXG5cdGZvciAoY29uc3QgW2luZGV4LCBlbGVtZW50XSBvZiBPYmplY3QuZW50cmllcygkYm9keS5maW5kKCcubm90LXBhdHJvbGxlZCcpKSkge1xuXHRcdGNvbnN0ICRlbGVtZW50OiBKUXVlcnkgPSAkKGVsZW1lbnQpO1xuXG5cdFx0Y29uc3QgJHRpbWU6IEpRdWVyeSA9ICRlbGVtZW50LmZpbmQoJ2EnKTtcblx0XHRpZiAoISR0aW1lLmxlbmd0aCkge1xuXHRcdFx0Y29udGludWU7XG5cdFx0fVxuXG5cdFx0Y29uc3QgdGltZUhyZWY6IHN0cmluZyB8IHVuZGVmaW5lZCA9ICR0aW1lLmF0dHIoJ2hyZWYnKTtcblx0XHRpZiAoIXRpbWVIcmVmKSB7XG5cdFx0XHRjb250aW51ZTtcblx0XHR9XG5cblx0XHRjb25zdCByZXZJZHM6IFJlZ0V4cE1hdGNoQXJyYXkgfCBudWxsID0gdGltZUhyZWY/Lm1hdGNoKC9vbGRpZD0oWzAtOV0rKS8pO1xuXHRcdGlmICghcmV2SWRzIHx8ICFyZXZJZHNbMV0pIHtcblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblxuXHRcdGVsZW1lbnQuYXBwZW5kKHBhdHJvbFNpbmdsZVBhZ2UoaW5kZXgsIHJldklkc1sxXSkpO1xuXHR9XG5cblx0LyogUGF0cm9sIGFsbCBwYWdlcyAqL1xuXHQkYm9keS5maW5kKCcjbXctY29udGVudC10ZXh0IC5tdy1wYWdlci1ib2R5JykuYXBwZW5kKHBhdHJvbEFsbFBhZ2VzKCRib2R5KSk7XG59KTtcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxxQkFBa0JDLFFBQUFDLFFBQUEsa0JBQUEsR0FBQSxDQUFBOztBQ0NqQixJQUFBQyxVQUFXOztBQ0FaLElBQUFDLG9CQUF3QkYsUUFBQSxpQkFBQTtBQUV4QixJQUFNRyxPQUFBLEdBQWNELGtCQUFBRSxXQUFBLGVBQUFDLE9BQWlDSixPQUFPLENBQUU7O0FDSDlELElBQUFLLHFCQUF1Qk4sUUFBQSxpQkFBQTtBQUV2QixJQUFNTyxrQkFBa0JBLE1BQU07QUFDN0IsU0FBTztJQUNOQyxTQUFBLEdBQVFGLG1CQUFBRyxVQUFTO01BQ2hCQyxJQUFJO01BQ0osV0FBVztNQUNYLFdBQVc7SUFDWixDQUFDO0lBQ0QscUJBQUEsR0FBb0JKLG1CQUFBRyxVQUFTO01BQzVCQyxJQUFJO01BQ0osV0FBVztNQUNYLFdBQVc7SUFDWixDQUFDO0lBQ0Qsc0JBQUEsR0FBcUJKLG1CQUFBRyxVQUFTO01BQzdCQyxJQUFJO01BQ0osV0FBVztNQUNYLFdBQVc7SUFDWixDQUFDO0lBQ0RDLFlBQUEsR0FBV0wsbUJBQUFHLFVBQVM7TUFDbkJDLElBQUk7TUFDSixXQUFXO01BQ1gsV0FBVztJQUNaLENBQUM7SUFDREUsT0FBQSxHQUFNTixtQkFBQUcsVUFBUztNQUNkQyxJQUFJO01BQ0osV0FBVztNQUNYLFdBQVc7SUFDWixDQUFDO0lBQ0RHLE1BQUEsR0FBS1AsbUJBQUFHLFVBQVM7TUFDYkMsSUFBSTtNQUNKLFdBQVc7TUFDWCxXQUFXO0lBQ1osQ0FBQztF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RSxLQUFLLE1BQU07QUFDdEQsUUFBSSxDQUFDRCxVQUFVO0FBQ2Q7SUFDRDtBQUVBLFVBQU1FLFNBQWtDRixhQUFBLFFBQUFBLGFBQUEsU0FBQSxTQUFBQSxTQUFVRyxNQUFNLGdCQUFnQjtBQUN4RSxRQUFJLENBQUNELFVBQVUsQ0FBQ0EsT0FBTyxDQUFDLEdBQUc7QUFDMUI7SUFDRDtBQUVBN0MsWUFBUStDLE9BQU8zQyxpQkFBaUJDLE9BQU93QyxPQUFPLENBQUMsQ0FBQyxDQUFDO0VBQ2xEO0FBR0F0RCxRQUFNTSxLQUFLLGlDQUFpQyxFQUFFa0QsT0FBT3pELGVBQWVDLEtBQUssQ0FBQztBQUMzRSxDQUFDOyIsCiAgIm5hbWVzIjogWyJpbXBvcnRfZXh0X2dhZGdldDMiLCAiX190b0VTTSIsICJyZXF1aXJlIiwgInZlcnNpb24iLCAiaW1wb3J0X2V4dF9nYWRnZXQiLCAiYXBpIiwgImluaXRNd0FwaSIsICJjb25jYXQiLCAiaW1wb3J0X2V4dF9nYWRnZXQyIiwgImdldEkxOG5NZXNzYWdlcyIsICJQYXRyb2wiLCAibG9jYWxpemUiLCAiZW4iLCAiUGF0cm9sbGVkIiwgIkFKQVgiLCAiQVBJIiwgImkxOG5NZXNzYWdlcyIsICJnZXRNZXNzYWdlIiwgImtleSIsICJwYXRyb2xBbGxQYWdlcyIsICIkYm9keSIsICJkZWZhdWx0IiwgImNyZWF0ZUVsZW1lbnQiLCAiaWQiLCAib25DbGljayIsICJjb25maXJtIiwgImZpbmQiLCAiZWFjaCIsICJfaW5kZXgiLCAiZWxlbWVudCIsICIkIiwgImNzcyIsICJjbGljayIsICJwYXRyb2xTaW5nbGVQYWdlIiwgImluZGV4IiwgInJldklkIiwgImNsYXNzTmFtZSIsICJkYXRhc2V0IiwgImJ0bmlkIiwgInRvU3RyaW5nIiwgInJldmlkIiwgImV2ZW50IiwgImN1cnJlbnRUYXJnZXQiLCAicGFyYW1zIiwgImFjdGlvbiIsICJmb3JtYXQiLCAiTnVtYmVyIiwgInBvc3RXaXRoVG9rZW4iLCAiZG9uZSIsICJlcnJvciIsICJtdyIsICJub3RpZnkiLCAidGFnIiwgInR5cGUiLCAicG9pbnRlckV2ZW50cyIsICJjb2xvciIsICJ0ZXh0IiwgImZhaWwiLCAiY29uc29sZSIsICJpbXBvcnRfZXh0X2dhZGdldDQiLCAiZ2V0Qm9keSIsICJ0aGVuIiwgInF1aWNrUGF0cm9sIiwgImNvbmZpZyIsICJnZXQiLCAiX2kiLCAiX09iamVjdCRlbnRyaWVzIiwgIk9iamVjdCIsICJlbnRyaWVzIiwgImxlbmd0aCIsICIkZWxlbWVudCIsICIkdGltZSIsICJ0aW1lSHJlZiIsICJhdHRyIiwgInJldklkcyIsICJtYXRjaCIsICJhcHBlbmQiXQp9Cg== +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL1F1aWNrUGF0cm9sL21vZHVsZXMvcGF0cm9sUGFnZXMudHN4IiwgInNyYy9RdWlja1BhdHJvbC9vcHRpb25zLmpzb24iLCAic3JjL1F1aWNrUGF0cm9sL21vZHVsZXMvYXBpLnRzIiwgInNyYy9RdWlja1BhdHJvbC9tb2R1bGVzL2kxOG4udHMiLCAic3JjL1F1aWNrUGF0cm9sL1F1aWNrUGF0cm9sLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQgUmVhY3QgZnJvbSAnZXh0LmdhZGdldC5KU1gnO1xuaW1wb3J0IHthcGl9IGZyb20gJy4vYXBpJztcbmltcG9ydCB7Z2V0TWVzc2FnZX0gZnJvbSAnLi9pMThuJztcblxuY29uc3QgcGF0cm9sQWxsUGFnZXMgPSAoJGJvZHk6IEpRdWVyeTxIVE1MQm9keUVsZW1lbnQ+KSA9PiAoXG5cdDxkaXY+XG5cdFx0PGFcblx0XHRcdGlkPVwiZ2FkZ2V0LXF1aWNrX3BhdHJvbF9fYWxsXCJcblx0XHRcdG9uQ2xpY2s9eygpOiB2b2lkID0+IHtcblx0XHRcdFx0aWYgKCFjb25maXJtKGdldE1lc3NhZ2UoJ1BhdHJvbCBhbGwgcGFnZXM/JykpKSB7XG5cdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHR9XG5cdFx0XHRcdCRib2R5LmZpbmQoJy5ub3QtcGF0cm9sbGVkIC5nYWRnZXQtcXVpY2tfcGF0cm9sX19wYXRyb2xidG4nKS5lYWNoKChfaW5kZXgsIGVsZW1lbnQpOiB2b2lkID0+IHtcblx0XHRcdFx0XHRpZiAoJChlbGVtZW50KS5jc3MoJ3BvaW50ZXItZXZlbnRzJykgIT09ICdub25lJykge1xuXHRcdFx0XHRcdFx0ZWxlbWVudC5jbGljaygpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSk7XG5cdFx0XHR9fVxuXHRcdD5cblx0XHRcdHtgWyR7Z2V0TWVzc2FnZSgnUGF0cm9sIGFsbCBwYWdlcycpfV1gfVxuXHRcdDwvYT5cblx0PC9kaXY+XG4pO1xuXG5jb25zdCBwYXRyb2xTaW5nbGVQYWdlID0gKGluZGV4OiBzdHJpbmcsIHJldklkOiBzdHJpbmcpID0+IChcblx0PGFcblx0XHRjbGFzc05hbWU9XCJnYWRnZXQtcXVpY2tfcGF0cm9sX19wYXRyb2xidG5cIlxuXHRcdGlkPXtgZ2FkZ2V0LXF1aWNrX3BhdHJvbF9fJHtpbmRleH1gfVxuXHRcdGRhdGFzZXQ9e3tcblx0XHRcdGJ0bmlkOiBpbmRleC50b1N0cmluZygpLFxuXHRcdFx0cmV2aWQ6IHJldklkLFxuXHRcdH19XG5cdFx0b25DbGljaz17KGV2ZW50KTogdm9pZCA9PiB7XG5cdFx0XHRjb25zdCB7YnRuaWQsIHJldmlkfSA9IGV2ZW50LmN1cnJlbnRUYXJnZXQuZGF0YXNldDtcblx0XHRcdGNvbnN0IHBhcmFtczogQXBpUGF0cm9sUGFyYW1zID0ge1xuXHRcdFx0XHRhY3Rpb246ICdwYXRyb2wnLFxuXHRcdFx0XHRmb3JtYXQ6ICdqc29uJyxcblx0XHRcdFx0cmV2aWQ6IE51bWJlcihyZXZpZCksXG5cdFx0XHR9O1xuXHRcdFx0dm9pZCBhcGlcblx0XHRcdFx0LnBvc3RXaXRoVG9rZW4oJ3BhdHJvbCcsIHBhcmFtcylcblx0XHRcdFx0LmRvbmUoKHtlcnJvcn0pOiB2b2lkID0+IHtcblx0XHRcdFx0XHRpZiAoZXJyb3IpIHtcblx0XHRcdFx0XHRcdHZvaWQgbXcubm90aWZ5KGdldE1lc3NhZ2UoJ0FQSScpICsgZXJyb3JbJ2luZm8nXSwge1xuXHRcdFx0XHRcdFx0XHR0YWc6ICdRdWlja1BhdHJvbCcsXG5cdFx0XHRcdFx0XHRcdHR5cGU6ICdlcnJvcicsXG5cdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRcdCQoYCNnYWRnZXQtcXVpY2tfcGF0cm9sX18ke2J0bmlkfWApLmNzcygnY29sb3InLCAnI2YwMCcpO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHQkKGAjZ2FkZ2V0LXF1aWNrX3BhdHJvbF9fJHtidG5pZH1gKVxuXHRcdFx0XHRcdFx0XHQuY3NzKHtcblx0XHRcdFx0XHRcdFx0XHRwb2ludGVyRXZlbnRzOiAnbm9uZScsXG5cdFx0XHRcdFx0XHRcdFx0Y29sb3I6ICcjODg4Jyxcblx0XHRcdFx0XHRcdFx0fSlcblx0XHRcdFx0XHRcdFx0LnRleHQoZ2V0TWVzc2FnZSgnUGF0cm9sbGVkJykpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSlcblx0XHRcdFx0LmZhaWwoKGVycm9yKTogdm9pZCA9PiB7XG5cdFx0XHRcdFx0dm9pZCBtdy5ub3RpZnkoZ2V0TWVzc2FnZSgnQUpBWCcpLCB7XG5cdFx0XHRcdFx0XHR0YWc6ICdRdWlja1BhdHJvbCcsXG5cdFx0XHRcdFx0XHR0eXBlOiAnZXJyb3InLFxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdCQoYCNnYWRnZXQtcXVpY2tfcGF0cm9sX18ke2J0bmlkfWApLmNzcygnY29sb3InLCAnI2YwMCcpO1xuXHRcdFx0XHRcdGNvbnNvbGUuZXJyb3IoJ1tRdWlja1BhdHJvbF0gQWpheCBlcnJvcjonLCBlcnJvcik7XG5cdFx0XHRcdH0pO1xuXHRcdH19XG5cdD5cblx0XHR7YFske2dldE1lc3NhZ2UoJ1BhdHJvbCcpfV1gfVxuXHQ8L2E+XG4pO1xuXG5leHBvcnQge3BhdHJvbEFsbFBhZ2VzLCBwYXRyb2xTaW5nbGVQYWdlfTtcbiIsICJ7XG5cdFwidmVyc2lvblwiOiBcIjIuMFwiXG59XG4iLCAiaW1wb3J0ICogYXMgT1BUSU9OUyBmcm9tICcuLi9vcHRpb25zLmpzb24nO1xuaW1wb3J0IHtpbml0TXdBcGl9IGZyb20gJ2V4dC5nYWRnZXQuVXRpbCc7XG5cbmNvbnN0IGFwaTogbXcuQXBpID0gaW5pdE13QXBpKGBRdWlja1BhdHJvbC8ke09QVElPTlMudmVyc2lvbn1gKTtcblxuZXhwb3J0IHthcGl9O1xuIiwgImltcG9ydCB7bG9jYWxpemV9IGZyb20gJ2V4dC5nYWRnZXQuaTE4bic7XG5cbmNvbnN0IGdldEkxOG5NZXNzYWdlcyA9ICgpID0+IHtcblx0cmV0dXJuIHtcblx0XHRQYXRyb2w6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnUGF0cm9sJyxcblx0XHRcdCd6aC1oYW5zJzogJ+W3oeafpScsXG5cdFx0XHQnemgtaGFudCc6ICflt6Hmn6UnLFxuXHRcdH0pLFxuXHRcdCdQYXRyb2wgYWxsIHBhZ2VzJzogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdQYXRyb2wgYWxsIHBhZ2VzJyxcblx0XHRcdCd6aC1oYW5zJzogJ+W3oeafpeaJgOaciemhtemdou+8nycsXG5cdFx0XHQnemgtaGFudCc6ICflt6Hmn6Xlhajpg6jpoIHpnaLvvJ8nLFxuXHRcdH0pLFxuXHRcdCdQYXRyb2wgYWxsIHBhZ2VzPyc6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnUGF0cm9sIGFsbCBwYWdlcz8nLFxuXHRcdFx0J3poLWhhbnMnOiAn56Gu5a6a5beh5p+l5omA5pyJ6aG16Z2i77yfJyxcblx0XHRcdCd6aC1oYW50JzogJ+eiuuWumuW3oeafpeWFqOmDqOmggemdou+8nycsXG5cdFx0fSksXG5cdFx0UGF0cm9sbGVkOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ1BhdHJvbGxlZCcsXG5cdFx0XHQnemgtaGFucyc6ICflt7Llt6Hmn6UnLFxuXHRcdFx0J3poLWhhbnQnOiAn5bey5beh5p+lJyxcblx0XHR9KSxcblx0XHRBSkFYOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ0FKQVggZmFpbHVyZScsXG5cdFx0XHQnemgtaGFucyc6ICdBSkFY5aSx6LSlJyxcblx0XHRcdCd6aC1oYW50JzogJ0FKQVjlpLHmlZcnLFxuXHRcdH0pLFxuXHRcdEFQSTogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdBUEkgZmFpbHVyZTogJyxcblx0XHRcdCd6aC1oYW5zJzogJ0FQSeWksei0pe+8micsXG5cdFx0XHQnemgtaGFudCc6ICdBUEnlpLHmlZfvvJonLFxuXHRcdH0pLFxuXHR9O1xufTtcblxuY29uc3QgaTE4bk1lc3NhZ2VzID0gZ2V0STE4bk1lc3NhZ2VzKCk7XG5cbmNvbnN0IGdldE1lc3NhZ2U6IEdldE1lc3NhZ2VzPHR5cGVvZiBpMThuTWVzc2FnZXM+ID0gKGtleSkgPT4ge1xuXHRyZXR1cm4gaTE4bk1lc3NhZ2VzW2tleV0gfHwga2V5O1xufTtcblxuZXhwb3J0IHtnZXRNZXNzYWdlfTtcbiIsICJpbXBvcnQge3BhdHJvbEFsbFBhZ2VzLCBwYXRyb2xTaW5nbGVQYWdlfSBmcm9tICcuL21vZHVsZXMvcGF0cm9sUGFnZXMnO1xuaW1wb3J0IHtnZXRCb2R5fSBmcm9tICdleHQuZ2FkZ2V0LlV0aWwnO1xuXG52b2lkIGdldEJvZHkoKS50aGVuKGZ1bmN0aW9uIHF1aWNrUGF0cm9sKCRib2R5OiBKUXVlcnk8SFRNTEJvZHlFbGVtZW50Pik6IHZvaWQge1xuXHRpZiAobXcuY29uZmlnLmdldCgnd2dDYW5vbmljYWxTcGVjaWFsUGFnZU5hbWUnKSAhPT0gJ05ld3BhZ2VzJykge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdC8qIFBhdHJvbCBzaW5nbGUgcGFnZSAqL1xuXHRmb3IgKGNvbnN0IFtpbmRleCwgZWxlbWVudF0gb2YgT2JqZWN0LmVudHJpZXMoJGJvZHkuZmluZCgnLm5vdC1wYXRyb2xsZWQnKSkpIHtcblx0XHRjb25zdCAkZWxlbWVudDogSlF1ZXJ5ID0gJChlbGVtZW50KTtcblxuXHRcdGNvbnN0ICR0aW1lOiBKUXVlcnkgPSAkZWxlbWVudC5maW5kKCdhJyk7XG5cdFx0aWYgKCEkdGltZS5sZW5ndGgpIHtcblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblxuXHRcdGNvbnN0IHRpbWVIcmVmOiBzdHJpbmcgfCB1bmRlZmluZWQgPSAkdGltZS5hdHRyKCdocmVmJyk7XG5cdFx0aWYgKCF0aW1lSHJlZikge1xuXHRcdFx0Y29udGludWU7XG5cdFx0fVxuXG5cdFx0Y29uc3QgcmV2SWRzOiBSZWdFeHBNYXRjaEFycmF5IHwgbnVsbCA9IHRpbWVIcmVmPy5tYXRjaCgvb2xkaWQ9KFswLTldKykvKTtcblx0XHRpZiAoIXJldklkcyB8fCAhcmV2SWRzWzFdKSB7XG5cdFx0XHRjb250aW51ZTtcblx0XHR9XG5cblx0XHRlbGVtZW50LmFwcGVuZChwYXRyb2xTaW5nbGVQYWdlKGluZGV4LCByZXZJZHNbMV0pKTtcblx0fVxuXG5cdC8qIFBhdHJvbCBhbGwgcGFnZXMgKi9cblx0JGJvZHkuZmluZCgnI213LWNvbnRlbnQtdGV4dCAubXctcGFnZXItYm9keScpLmFwcGVuZChwYXRyb2xBbGxQYWdlcygkYm9keSkpO1xufSk7XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsSUFBQUEscUJBQWtCQyxRQUFBQyxRQUFBLGdCQUFBLEdBQUEsQ0FBQTs7QUNDakIsSUFBQUMsVUFBVzs7QUNBWixJQUFBQyxvQkFBd0JGLFFBQUEsaUJBQUE7QUFFeEIsSUFBTUcsT0FBQSxHQUFjRCxrQkFBQUUsV0FBQSxlQUFBQyxPQUFpQ0osT0FBTyxDQUFFOztBQ0g5RCxJQUFBSyxxQkFBdUJOLFFBQUEsaUJBQUE7QUFFdkIsSUFBTU8sa0JBQWtCQSxNQUFNO0FBQzdCLFNBQU87SUFDTkMsU0FBQSxHQUFRRixtQkFBQUcsVUFBUztNQUNoQkMsSUFBSTtNQUNKLFdBQVc7TUFDWCxXQUFXO0lBQ1osQ0FBQztJQUNELHFCQUFBLEdBQW9CSixtQkFBQUcsVUFBUztNQUM1QkMsSUFBSTtNQUNKLFdBQVc7TUFDWCxXQUFXO0lBQ1osQ0FBQztJQUNELHNCQUFBLEdBQXFCSixtQkFBQUcsVUFBUztNQUM3QkMsSUFBSTtNQUNKLFdBQVc7TUFDWCxXQUFXO0lBQ1osQ0FBQztJQUNEQyxZQUFBLEdBQVdMLG1CQUFBRyxVQUFTO01BQ25CQyxJQUFJO01BQ0osV0FBVztNQUNYLFdBQVc7SUFDWixDQUFDO0lBQ0RFLE9BQUEsR0FBTU4sbUJBQUFHLFVBQVM7TUFDZEMsSUFBSTtNQUNKLFdBQVc7TUFDWCxXQUFXO0lBQ1osQ0FBQztJQUNERyxNQUFBLEdBQUtQLG1CQUFBRyxVQUFTO01BQ2JDLElBQUk7TUFDSixXQUFXO01BQ1gsV0FBVztJQUNaLENBQUM7RUFD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S0FBSyxNQUFNO0FBQ3RELFFBQUksQ0FBQ0QsVUFBVTtBQUNkO0lBQ0Q7QUFFQSxVQUFNRSxTQUFrQ0YsYUFBQSxRQUFBQSxhQUFBLFNBQUEsU0FBQUEsU0FBVUcsTUFBTSxnQkFBZ0I7QUFDeEUsUUFBSSxDQUFDRCxVQUFVLENBQUNBLE9BQU8sQ0FBQyxHQUFHO0FBQzFCO0lBQ0Q7QUFFQTdDLFlBQVErQyxPQUFPM0MsaUJBQWlCQyxPQUFPd0MsT0FBTyxDQUFDLENBQUMsQ0FBQztFQUNsRDtBQUdBdEQsUUFBTU0sS0FBSyxpQ0FBaUMsRUFBRWtELE9BQU96RCxlQUFlQyxLQUFLLENBQUM7QUFDM0UsQ0FBQzsiLAogICJuYW1lcyI6IFsiaW1wb3J0X2V4dF9nYWRnZXQzIiwgIl9fdG9FU00iLCAicmVxdWlyZSIsICJ2ZXJzaW9uIiwgImltcG9ydF9leHRfZ2FkZ2V0IiwgImFwaSIsICJpbml0TXdBcGkiLCAiY29uY2F0IiwgImltcG9ydF9leHRfZ2FkZ2V0MiIsICJnZXRJMThuTWVzc2FnZXMiLCAiUGF0cm9sIiwgImxvY2FsaXplIiwgImVuIiwgIlBhdHJvbGxlZCIsICJBSkFYIiwgIkFQSSIsICJpMThuTWVzc2FnZXMiLCAiZ2V0TWVzc2FnZSIsICJrZXkiLCAicGF0cm9sQWxsUGFnZXMiLCAiJGJvZHkiLCAiZGVmYXVsdCIsICJjcmVhdGVFbGVtZW50IiwgImlkIiwgIm9uQ2xpY2siLCAiY29uZmlybSIsICJmaW5kIiwgImVhY2giLCAiX2luZGV4IiwgImVsZW1lbnQiLCAiJCIsICJjc3MiLCAiY2xpY2siLCAicGF0cm9sU2luZ2xlUGFnZSIsICJpbmRleCIsICJyZXZJZCIsICJjbGFzc05hbWUiLCAiZGF0YXNldCIsICJidG5pZCIsICJ0b1N0cmluZyIsICJyZXZpZCIsICJldmVudCIsICJjdXJyZW50VGFyZ2V0IiwgInBhcmFtcyIsICJhY3Rpb24iLCAiZm9ybWF0IiwgIk51bWJlciIsICJwb3N0V2l0aFRva2VuIiwgImRvbmUiLCAiZXJyb3IiLCAibXciLCAibm90aWZ5IiwgInRhZyIsICJ0eXBlIiwgInBvaW50ZXJFdmVudHMiLCAiY29sb3IiLCAidGV4dCIsICJmYWlsIiwgImNvbnNvbGUiLCAiaW1wb3J0X2V4dF9nYWRnZXQ0IiwgImdldEJvZHkiLCAidGhlbiIsICJxdWlja1BhdHJvbCIsICJjb25maWciLCAiZ2V0IiwgIl9pIiwgIl9PYmplY3QkZW50cmllcyIsICJPYmplY3QiLCAiZW50cmllcyIsICJsZW5ndGgiLCAiJGVsZW1lbnQiLCAiJHRpbWUiLCAidGltZUhyZWYiLCAiYXR0ciIsICJyZXZJZHMiLCAibWF0Y2giLCAiYXBwZW5kIl0KfQo= diff --git a/dist/RRD/RRD.css b/dist/RRD/RRD.css index b473f11ea..f4e101f58 100644 --- a/dist/RRD/RRD.css +++ b/dist/RRD/RRD.css @@ -20,11 +20,11 @@ /* */ /* esbuild-css-modules-plugin-ns-css:src/RRD/components/DialogInner.module.less */ -.DialogInner-module__contentWrapper_6TdTVG { +.DialogInner-module__contentWrapper_6TdTVG__490 { float: left; padding: 0 5px; } /* */ -/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiZXNidWlsZC1jc3MtbW9kdWxlcy1wbHVnaW4tbnMtY3NzOnNyYy9SUkQvY29tcG9uZW50cy9EaWFsb2dJbm5lci5tb2R1bGUubGVzcyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyogPHN0ZGluPiAqL1xuLkRpYWxvZ0lubmVyLW1vZHVsZV9fY29udGVudFdyYXBwZXJfNlRkVFZHIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHBhZGRpbmc6IDAgNXB4O1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLENBQUM7QUFDQyxTQUFPO0FBQ1AsV0FBUyxFQUFFO0FBQ2I7IiwKICAibmFtZXMiOiBbXQp9Cg== */ +/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiZXNidWlsZC1jc3MtbW9kdWxlcy1wbHVnaW4tbnMtY3NzOnNyYy9SUkQvY29tcG9uZW50cy9EaWFsb2dJbm5lci5tb2R1bGUubGVzcyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyogPHN0ZGluPiAqL1xuLkRpYWxvZ0lubmVyLW1vZHVsZV9fY29udGVudFdyYXBwZXJfNlRkVFZHX180OTAge1xuICBmbG9hdDogbGVmdDtcbiAgcGFkZGluZzogMCA1cHg7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsQ0FBQztBQUNDLFNBQU87QUFDUCxXQUFTLEVBQUU7QUFDYjsiLAogICJuYW1lcyI6IFtdCn0K */ diff --git a/dist/RRD/RRD.js b/dist/RRD/RRD.js index 9c2dbddc5..df7557e7f 100644 --- a/dist/RRD/RRD.js +++ b/dist/RRD/RRD.js @@ -130,7 +130,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge var rrdPage = "Qiuwen_talk:版本删除提报"; var version = "2.0"; //! src/RRD/components/ReportButton.tsx -var import_ext_gadget = __toESM(require("ext.gadget.React"), 1); +var import_ext_gadget = __toESM(require("ext.gadget.JSX"), 1); //! src/RRD/modules/i18n.ts var getI18nMessages = () => { const { @@ -215,9 +215,9 @@ var updateConfig = () => { config.others = others; }; //! src/RRD/components/DialogInner.tsx -var import_ext_gadget2 = __toESM(require("ext.gadget.React"), 1); +var import_ext_gadget2 = __toESM(require("ext.gadget.JSX"), 1); //! src/RRD/components/DialogInner.module.less -var contentWrapper = "DialogInner-module__contentWrapper_6TdTVG"; +var contentWrapper = "DialogInner-module__contentWrapper_6TdTVG__490"; //! src/RRD/components/DialogInner.tsx var DialogInner = () => /* @__PURE__ */ import_ext_gadget2.default.createElement("div", { id: "rrd__config" @@ -523,4 +523,4 @@ void (0, import_ext_gadget5.getBody)().then(function rrd($body) { /* */ -//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL1JSRC9vcHRpb25zLmpzb24iLCAic3JjL1JSRC9jb21wb25lbnRzL1JlcG9ydEJ1dHRvbi50c3giLCAic3JjL1JSRC9tb2R1bGVzL2kxOG4udHMiLCAic3JjL1JSRC9tb2R1bGVzL2lzU3BlY2lhbExvZy50cyIsICJzcmMvUlJEL1JSRC50cyIsICJzcmMvUlJEL21vZHVsZXMvcnJkQ29uZmlnLnRzIiwgInNyYy9SUkQvY29tcG9uZW50cy9EaWFsb2dJbm5lci50c3giLCAic3JjL1JSRC9jb21wb25lbnRzL0RpYWxvZ0lubmVyLm1vZHVsZS5sZXNzIiwgInNyYy9SUkQvbW9kdWxlcy9sb2FkSWRzLnRzIiwgInNyYy9SUkQvbW9kdWxlcy9hcGkudHMiLCAic3JjL1JSRC9tb2R1bGVzL3N1Ym1pdC50cyIsICJzcmMvUlJEL21vZHVsZXMvc2hvd0RpYWxvZy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsie1xuXHRcInJyZFBhZ2VcIjogXCJRaXV3ZW5fdGFsazrniYjmnKzliKDpmaTmj5DmiqVcIixcblx0XCJ2ZXJzaW9uXCI6IFwiMi4wXCJcbn1cbiIsICJpbXBvcnQgKiBhcyBPUFRJT05TIGZyb20gJy4uL29wdGlvbnMuanNvbic7XG5pbXBvcnQgUmVhY3QgZnJvbSAnZXh0LmdhZGdldC5SZWFjdCc7XG5pbXBvcnQge2dldE1lc3NhZ2V9IGZyb20gJy4uL21vZHVsZXMvaTE4bic7XG5pbXBvcnQge2lzU3BlY2lhbExvZ30gZnJvbSAnLi4vbW9kdWxlcy9pc1NwZWNpYWxMb2cnO1xuXG5pbnRlcmZhY2UgUHJvcHMge1xuXHRvbkNsaWNrOiAoKSA9PiB2b2lkO1xufVxuXG5jb25zdCBSZXBvcnRCdXR0b24gPSAoe29uQ2xpY2t9OiBQcm9wcykgPT4gKFxuXHQ8YnV0dG9uXG5cdFx0dHlwZT17J2J1dHRvbid9XG5cdFx0Y2xhc3NOYW1lPXtbJ3JyZF9fcmVwb3J0JywgJ2NkeC1idXR0b24nLCAnY2R4LWJ1dHRvbi0td2VpZ2h0LXByaW1hcnknXX1cblx0XHR0aXRsZT17Z2V0TWVzc2FnZSgncmVwb3J0QnV0dG9uVGl0bGUnKSArIE9QVElPTlMucnJkUGFnZX1cblx0XHRvbkNsaWNrPXtvbkNsaWNrfVxuXHQ+XG5cdFx0e2lzU3BlY2lhbExvZygpID8gZ2V0TWVzc2FnZSgncmVwb3J0QnV0dG9uTG9nVGV4dCcpIDogZ2V0TWVzc2FnZSgncmVwb3J0QnV0dG9uVGV4dCcpfVxuXHQ8L2J1dHRvbj5cbik7XG5cbmV4cG9ydCBkZWZhdWx0IFJlcG9ydEJ1dHRvbjtcbiIsICJjb25zdCBnZXRJMThuTWVzc2FnZXMgPSAoKSA9PiB7XG5cdGNvbnN0IHt3Z1VMU30gPSB3aW5kb3c7XG5cdHJldHVybiB7XG5cdFx0ZWRpdFN1bW1hcnk6IHdnVUxTKFxuXHRcdFx0J1tbTWVkaWFXaWtpOkdhZGdldC1SUkQuanN85Y2K6Ieq5Yqo5o+Q5oqlXV3kv67orqLniYjmnKzliKDpmaQnLFxuXHRcdFx0J1tbTWVkaWFXaWtpOkdhZGdldC1SUkQuanN85Y2K6Ieq5YuV5o+Q5aCxXV3kv67oqILniYjmnKzliKrpmaQnXG5cdFx0KSxcblx0XHRlcnJOb1JldmlzaW9uUHJvdmlkZWQ6IHdnVUxTKCfmgqjmsqHmnInpgInmi6npnIDpmpDol4/nmoTniYjmnKzvvIEnLCAn5oKo5rKS5pyJ6YG45pOH6ZyA6Zqx6JeP55qE54mI5pys77yBJyksXG5cdFx0ZXJyTm9JdGVtUHJvdmlkZWQ6IHdnVUxTKCfmgqjmsqHmnInpgInmi6npnIDpmpDol4/nmoTpobnnm67vvIEnLCAn5oKo5rKS5pyJ6YG45pOH6ZyA6Zqx6JeP55qE6aCF55uu77yBJyksXG5cdFx0d2Fybk5vUmVhc29uUHJvdmlkZWQ6IHdnVUxTKCfmgqjmsqHmnInovpPlhaXku7vkvZXnkIbnlLHvvIHnoa7lrpropoHnu6fnu63lkJfvvJ8nLCAn5oKo5rKS5pyJ6Ly45YWl5Lu75L2V55CG55Sx77yB56K65a6a6KaB57m857qM5ZeO77yfJyksXG5cdFx0aGlkZUl0ZW1zOiB3Z1VMUygn6ZyA6ZqQ6JeP55qE6aG555uu77yaJywgJ+mcgOmaseiXj+eahOmgheebru+8micpLFxuXHRcdGhpZGVDb250ZW50OiB3Z1VMUygn57yW6L6R5YaF5a65JywgJ+e3qOi8r+WFp+WuuScpLFxuXHRcdGhpZGVMb2c6IHdnVUxTKCfml6Xlv5fnm67moIfkuI7lj4LmlbAnLCAn5pel6KqM55uu5qiZ6IiH5Y+D5pW4JyksXG5cdFx0aGlkZVVzZXJuYW1lOiB3Z1VMUygn57yW6L6R6ICF55So5oi35ZCNL0lQ5Zyw5Z2AJywgJ+e3qOi8r+iAheeUqOaItuWQjS9JUOS9jeWdgCcpLFxuXHRcdGhpZGVTdW1tYXJ5OiB3Z1VMUygn57yW6L6R5pGY6KaBJywgJ+e3qOi8r+aRmOimgScpLFxuXHRcdGhpZGVSZWFzb246IHdnVUxTKCfnkIbmja7vvJonLCAn55CG5pOa77yaJyksXG5cdFx0aGlkZVJlYXNvblJEMTogd2dVTFMoJ1JEMe+8muadoeebruS4reaYjuaYvuS+teeKr+iRl+S9nOadg+eahOWGheWuuScsICdSRDHvvJrmop3nm67kuK3mmI7poa/kvrXniq/okZfkvZzmrIrnmoTlhaflrrknKSxcblx0XHRoaWRlUmVhc29uUkQyOiB3Z1VMUygnUkQy77ya5Lil6YeN5L6u6L6x44CB6LSs5L2O5oiW5pS75Ye75oCn5paH5pysJywgJ1JEMu+8muWatOmHjeS+rui+seOAgeiytuS9juaIluaUu+aTiuaAp+aWh+acrCcpLFxuXHRcdGhpZGVSZWFzb25SRDM6IHdnVUxTKCdSRDPvvJrnuq/nsrnmibDkubHmgKflhoXlrrknLCAn57SU57K55pO+5LqC5oCn5YWn5a65JyksXG5cdFx0aGlkZVJlYXNvblJENDogd2dVTFMoJ1JENO+8muaYjuaYvui/neWPjeazleW+i+azleinhOaIlui/neiDjOWFrOW6j+iJr+S/l+eahOWGheWuuScsICdSRDTvvJrmmI7poa/pgZXlj43ms5Xlvovms5Xopo/miJbpgZXog4zlhazluo/oia/kv5fnmoTlhaflrrknKSxcblx0XHRoaWRlUmVhc29uUkQ1OiB3Z1VMUygnUkQ177ya5YW25LuW5LiN5a6c5YWs5byA55qE54mI5pys5YaF5a65JywgJ1JENe+8muWFtuS7luS4jeWunOWFrOmWi+eahOeJiOacrOWFp+WuuScpLFxuXHRcdGhpZGVSZWFzb25PdGhlcjogd2dVTFMoJ+S7heS9v+eUqOS4i+aWueeahOmZhOWKoOeQhueUsScsICflg4Xkvb/nlKjkuIvmlrnnmoTpmYTliqDnkIbnlLEnKSxcblx0XHRvdGhlclJlYXNvbnM6IHdnVUxTKCfpmYTliqDnkIbnlLHvvIjlj6/pgInvvIzkuI3nlKjnrb7lkI3vvIknLCAn6ZmE5Yqg55CG55Sx77yI5Y+v6YG477yM5LiN55So57C95ZCN77yJJyksXG5cdFx0ZGlhbG9nVGl0bGU6IHdnVUxTKCfmj5DmiqXkv67orqLniYjmnKzliKDpmaQnLCAn5o+Q5aCx5L+u6KiC54mI5pys5Yiq6ZmkJyksXG5cdFx0ZGlhbG9nQnV0dG9uU3VibWl0OiB3Z1VMUygn5o+Q5oqlJywgJ+aPkOWgsScpLFxuXHRcdGRpYWxvZ0J1dHRvbkNhbmNlbDogd2dVTFMoJ+WPlua2iCcsICflj5bmtognKSxcblx0XHRyZXBvcnRCdXR0b25UaXRsZTogd2dVTFMoJ+WwhumAieS4reeahOeJiOacrOaPkOaKpeWIsCcsICflsIfpgbjkuK3nmoTniYjmnKzmj5DloLHliLAnKSxcblx0XHRyZXBvcnRCdXR0b25UZXh0OiB3Z1VMUygn6K+35rGC5Yig6Zmk6KKr6YCJ54mI5pysJywgJ+iri+axguWIqumZpOiiq+mBuOeJiOacrCcpLFxuXHRcdHJlcG9ydEJ1dHRvbkxvZ1RleHQ6IHdnVUxTKCfor7fmsYLliKDpmaTooqvpgInml6Xlv5cnLCAn6KuL5rGC5Yiq6Zmk6KKr6YG45pel6KqMJyksXG5cdH07XG59O1xuXG5jb25zdCBpMThuTWVzc2FnZXMgPSBnZXRJMThuTWVzc2FnZXMoKTtcblxuY29uc3QgZ2V0TWVzc2FnZTogR2V0TWVzc2FnZXM8dHlwZW9mIGkxOG5NZXNzYWdlcz4gPSAoa2V5KSA9PiB7XG5cdHJldHVybiBpMThuTWVzc2FnZXNba2V5XSB8fCBrZXk7XG59O1xuXG5leHBvcnQge2dldE1lc3NhZ2V9O1xuIiwgImNvbnN0IGlzU3BlY2lhbExvZyA9ICgpID0+IHtcblx0Y29uc3Qge3dnQ2Fub25pY2FsU3BlY2lhbFBhZ2VOYW1lfSA9IG13LmNvbmZpZy5nZXQoKTtcblx0cmV0dXJuIHdnQ2Fub25pY2FsU3BlY2lhbFBhZ2VOYW1lID09PSAnTG9nJztcbn07XG5cbmV4cG9ydCB7aXNTcGVjaWFsTG9nfTtcbiIsICJpbXBvcnQgUmVwb3J0QnV0dG9uIGZyb20gJy4vY29tcG9uZW50cy9SZXBvcnRCdXR0b24nO1xuaW1wb3J0IHtnZXRCb2R5fSBmcm9tICdleHQuZ2FkZ2V0LlV0aWwnO1xuaW1wb3J0IHtzaG93RGlhbG9nfSBmcm9tICcuL21vZHVsZXMvc2hvd0RpYWxvZyc7XG5cbnZvaWQgZ2V0Qm9keSgpLnRoZW4oZnVuY3Rpb24gcnJkKCRib2R5OiBKUXVlcnk8SFRNTEJvZHlFbGVtZW50Pik6IHZvaWQge1xuXHRjb25zdCB7d2dBY3Rpb24sIHdnQ2Fub25pY2FsU3BlY2lhbFBhZ2VOYW1lfSA9IG13LmNvbmZpZy5nZXQoKTtcblxuXHRpZiAod2dBY3Rpb24gPT09ICdoaXN0b3J5JyB8fCB3Z0Nhbm9uaWNhbFNwZWNpYWxQYWdlTmFtZSA9PT0gJ0xvZycpIHtcblx0XHRmb3IgKGNvbnN0IGVsZW1lbnQgb2YgJGJvZHkuZmluZChcblx0XHRcdFtcblx0XHRcdFx0Jy5oaXN0b3J5c3VibWl0Lm13LWhpc3RvcnktY29tcGFyZXNlbGVjdGVkdmVyc2lvbnMtYnV0dG9uJyxcblx0XHRcdFx0Jy5lZGl0Y2hhbmdldGFncy1sb2ctc3VibWl0Lm13LWxvZy1lZGl0Y2hhbmdldGFncy1idXR0b24nLFxuXHRcdFx0XS5qb2luKCcsJylcblx0XHQpKSB7XG5cdFx0XHRlbGVtZW50LmFmdGVyKFxuXHRcdFx0XHRSZXBvcnRCdXR0b24oe1xuXHRcdFx0XHRcdG9uQ2xpY2s6ICgpOiB2b2lkID0+IHtcblx0XHRcdFx0XHRcdHNob3dEaWFsb2coJGJvZHkpO1xuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdH0pXG5cdFx0XHQpO1xuXHRcdH1cblx0fVxufSk7XG4iLCAiaW1wb3J0IHR5cGUge1JyZENvbmZpZ30gZnJvbSAnLi90eXBlcyc7XG5cbmNvbnN0IGNvbmZpZzogUnJkQ29uZmlnID0ge1xuXHRjaGVja2JveGVzOiB7fSxcblx0b3RoZXJzOiB7fSxcbn07XG5cbmNvbnN0IHVwZGF0ZUNvbmZpZyA9ICgpOiB2b2lkID0+IHtcblx0Y29uc3QgY2hlY2tCb3hlczogUnJkQ29uZmlnWydjaGVja2JveGVzJ10gPSB7fTtcblxuXHRpZiAoZG9jdW1lbnQucXVlcnlTZWxlY3RvcjxIVE1MSW5wdXRFbGVtZW50PignI3JyZF9faGlkZS1jb250ZW50Jyk/LmNoZWNrZWQpIHtcblx0XHRjaGVja0JveGVzLnJyZEhpZGVDb250ZW50ID0gdHJ1ZTtcblx0fVxuXHRpZiAoZG9jdW1lbnQucXVlcnlTZWxlY3RvcjxIVE1MSW5wdXRFbGVtZW50PignI3JyZF9faGlkZS11c2VybmFtZScpPy5jaGVja2VkKSB7XG5cdFx0Y2hlY2tCb3hlcy5ycmRIaWRlVXNlcm5hbWUgPSB0cnVlO1xuXHR9XG5cdGlmIChkb2N1bWVudC5xdWVyeVNlbGVjdG9yPEhUTUxJbnB1dEVsZW1lbnQ+KCcjcnJkX19oaWRlLXN1bW1hcnknKT8uY2hlY2tlZCkge1xuXHRcdGNoZWNrQm94ZXMucnJkSGlkZVN1bW1hcnkgPSB0cnVlO1xuXHR9XG5cblx0Y29uZmlnLmNoZWNrYm94ZXMgPSBjaGVja0JveGVzO1xuXG5cdGNvbnN0IG90aGVyczogUnJkQ29uZmlnWydvdGhlcnMnXSA9IHt9O1xuXG5cdGNvbnN0IHJlYXNvbklucHV0OiBIVE1MSW5wdXRFbGVtZW50IHwgbnVsbCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3I8SFRNTElucHV0RWxlbWVudD4oJyNycmRfX3JlYXNvbicpO1xuXHRjb25zdCBvdGhlclJlYXNvbnNJbnB1dDogSFRNTElucHV0RWxlbWVudCB8IG51bGwgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yPEhUTUxJbnB1dEVsZW1lbnQ+KCcjcnJkX19vdGhlci1yZWFzb25zJyk7XG5cdGlmIChyZWFzb25JbnB1dCkge1xuXHRcdG90aGVycy5ycmRSZWFzb24gPSByZWFzb25JbnB1dC52YWx1ZTtcblx0fVxuXHRpZiAob3RoZXJSZWFzb25zSW5wdXQpIHtcblx0XHRvdGhlcnMucnJkT3RoZXJSZWFzb25zID0gb3RoZXJSZWFzb25zSW5wdXQudmFsdWU7XG5cdH1cblxuXHRjb25maWcub3RoZXJzID0gb3RoZXJzO1xufTtcblxuZXhwb3J0IHtjb25maWcsIHVwZGF0ZUNvbmZpZ307XG4iLCAiaW1wb3J0IFJlYWN0IGZyb20gJ2V4dC5nYWRnZXQuUmVhY3QnO1xuaW1wb3J0IHtjb250ZW50V3JhcHBlcn0gZnJvbSAnLi9EaWFsb2dJbm5lci5tb2R1bGUubGVzcyc7XG5pbXBvcnQge2dldE1lc3NhZ2V9IGZyb20gJy4uL21vZHVsZXMvaTE4bic7XG5pbXBvcnQge2lzU3BlY2lhbExvZ30gZnJvbSAnLi4vbW9kdWxlcy9pc1NwZWNpYWxMb2cnO1xuXG5jb25zdCBEaWFsb2dJbm5lciA9ICgpID0+IChcblx0PGRpdiBpZD1cInJyZF9fY29uZmlnXCI+XG5cdFx0e2dldE1lc3NhZ2UoJ2hpZGVJdGVtcycpfVxuXHRcdDxiciAvPlxuXHRcdDxkaXYgY2xhc3NOYW1lPXtjb250ZW50V3JhcHBlcn0+XG5cdFx0XHQ8aW5wdXQgbmFtZT1cImNvbnRlbnRcIiBpZD1cInJyZF9faGlkZS1jb250ZW50XCIgdHlwZT1cImNoZWNrYm94XCIgdmFsdWU9XCJjb250ZW50XCIgY2hlY2tlZCAvPlxuXHRcdFx0PGxhYmVsIGh0bWxGb3I9XCJycmRfX2hpZGUtY29udGVudFwiIGlkPVwicnJkLWNvbnRlbnRcIj5cblx0XHRcdFx0e2lzU3BlY2lhbExvZygpID8gZ2V0TWVzc2FnZSgnaGlkZUxvZycpIDogZ2V0TWVzc2FnZSgnaGlkZUNvbnRlbnQnKX1cblx0XHRcdDwvbGFiZWw+XG5cdFx0PC9kaXY+XG5cdFx0PGRpdiBjbGFzc05hbWU9e2NvbnRlbnRXcmFwcGVyfT5cblx0XHRcdDxpbnB1dCBuYW1lPVwidXNlcm5hbWVcIiBpZD1cInJyZF9faGlkZS11c2VybmFtZVwiIHR5cGU9XCJjaGVja2JveFwiIHZhbHVlPVwidXNlcm5hbWVcIiAvPlxuXHRcdFx0PGxhYmVsIGh0bWxGb3I9XCJycmRfX2hpZGUtdXNlcm5hbWVcIiBpZD1cInJyZC11c2VybmFtZVwiPlxuXHRcdFx0XHR7Z2V0TWVzc2FnZSgnaGlkZVVzZXJuYW1lJyl9XG5cdFx0XHQ8L2xhYmVsPlxuXHRcdDwvZGl2PlxuXHRcdDxkaXYgY2xhc3NOYW1lPXtjb250ZW50V3JhcHBlcn0+XG5cdFx0XHQ8aW5wdXQgbmFtZT1cInN1bW1hcnlcIiBpZD1cInJyZF9faGlkZS1zdW1tYXJ5XCIgdHlwZT1cImNoZWNrYm94XCIgdmFsdWU9XCJzdW1tYXJ5XCIgLz5cblx0XHRcdDxsYWJlbCBodG1sRm9yPVwicnJkX19oaWRlLXN1bW1hcnlcIiBpZD1cInJyZC1zdW1tYXJ5XCI+XG5cdFx0XHRcdHtnZXRNZXNzYWdlKCdoaWRlU3VtbWFyeScpfVxuXHRcdFx0PC9sYWJlbD5cblx0XHQ8L2Rpdj5cblx0XHQ8YnIgLz5cblx0XHQ8YnIgLz5cblx0XHR7Z2V0TWVzc2FnZSgnaGlkZVJlYXNvbicpfVxuXHRcdDxiciAvPlxuXHRcdDxzZWxlY3QgbmFtZT1cInJyZF9fcmVhc29uXCIgaWQ9XCJycmRfX3JlYXNvblwiPlxuXHRcdFx0PG9wdGlvbiB2YWx1ZT17Z2V0TWVzc2FnZSgnaGlkZVJlYXNvblJEMScpfT57Z2V0TWVzc2FnZSgnaGlkZVJlYXNvblJEMScpfTwvb3B0aW9uPlxuXHRcdFx0PG9wdGlvbiB2YWx1ZT17Z2V0TWVzc2FnZSgnaGlkZVJlYXNvblJEMicpfT57Z2V0TWVzc2FnZSgnaGlkZVJlYXNvblJEMicpfTwvb3B0aW9uPlxuXHRcdFx0PG9wdGlvbiB2YWx1ZT17Z2V0TWVzc2FnZSgnaGlkZVJlYXNvblJEMycpfT57Z2V0TWVzc2FnZSgnaGlkZVJlYXNvblJEMycpfTwvb3B0aW9uPlxuXHRcdFx0PG9wdGlvbiB2YWx1ZT17Z2V0TWVzc2FnZSgnaGlkZVJlYXNvblJENCcpfT57Z2V0TWVzc2FnZSgnaGlkZVJlYXNvblJENCcpfTwvb3B0aW9uPlxuXHRcdFx0PG9wdGlvbiB2YWx1ZT17Z2V0TWVzc2FnZSgnaGlkZVJlYXNvblJENScpfT57Z2V0TWVzc2FnZSgnaGlkZVJlYXNvblJENScpfTwvb3B0aW9uPlxuXHRcdFx0PG9wdGlvbiB2YWx1ZT1cIlwiPntnZXRNZXNzYWdlKCdoaWRlUmVhc29uT3RoZXInKX08L29wdGlvbj5cblx0XHQ8L3NlbGVjdD5cblx0XHQ8YnIgLz5cblx0XHQ8YnIgLz5cblx0XHR7Z2V0TWVzc2FnZSgnb3RoZXJSZWFzb25zJyl9XG5cdFx0PGJyIC8+XG5cdFx0PHRleHRhcmVhIG5hbWU9XCJvdGhlclJlYXNvbnNcIiBpZD1cInJyZF9fb3RoZXItcmVhc29uc1wiIHJvd3M9ezR9PjwvdGV4dGFyZWE+XG5cdDwvZGl2PlxuKTtcblxuZXhwb3J0IGRlZmF1bHQgRGlhbG9nSW5uZXI7XG4iLCAiaW1wb3J0IFwiZXNidWlsZC1jc3MtbW9kdWxlcy1wbHVnaW4tbnMtY3NzOnNyYy9SUkQvY29tcG9uZW50cy9EaWFsb2dJbm5lci5tb2R1bGUubGVzc1wiO1xuZXhwb3J0IGNvbnN0IGNvbnRlbnRXcmFwcGVyID0gXCJEaWFsb2dJbm5lci1tb2R1bGVfX2NvbnRlbnRXcmFwcGVyXzZUZFRWR1wiO1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIFwiY29udGVudFdyYXBwZXJcIjogY29udGVudFdyYXBwZXJcbn07XG4gICAgICAiLCAiY29uc3QgbG9hZElkcyA9ICgkYm9keTogSlF1ZXJ5PEhUTUxCb2R5RWxlbWVudD4pOiBzdHJpbmdbXSA9PiB7XG5cdGNvbnN0IGlkczogc3RyaW5nW10gPSBbXTtcblxuXHRjb25zdCBib3hlczogSlF1ZXJ5PEhUTUxJbnB1dEVsZW1lbnQ+ID0gJGJvZHkuZmluZCgnaW5wdXQnKTtcblx0Zm9yIChjb25zdCBib3ggb2YgYm94ZXMpIHtcblx0XHRjb25zdCB7Y2hlY2tlZCwgbmFtZSwgdHlwZX0gPSBib3g7XG5cblx0XHRpZiAodHlwZSAhPT0gJ2NoZWNrYm94JyB8fCAhY2hlY2tlZCkge1xuXHRcdFx0Y29udGludWU7XG5cdFx0fVxuXG5cdFx0Y29uc3QgaWRSZWdleDogUmVnRXhwID0gL2lkc1xcWyhcXGQrKV0vO1xuXHRcdGNvbnN0IGlkQXJyYXk6IFJlZ0V4cEV4ZWNBcnJheSB8IG51bGwgPSBpZFJlZ2V4LmV4ZWMobmFtZSk7XG5cdFx0aWYgKGlkQXJyYXk/LlsxXSA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRjb250aW51ZTtcblx0XHR9XG5cblx0XHRbLCBpZHNbaWRzLmxlbmd0aF1dID0gaWRBcnJheTtcblx0fVxuXG5cdHJldHVybiBpZHM7XG59O1xuXG5leHBvcnQge2xvYWRJZHN9O1xuIiwgImltcG9ydCAqIGFzIE9QVElPTlMgZnJvbSAnLi4vb3B0aW9ucy5qc29uJztcbmltcG9ydCB7aW5pdE13QXBpfSBmcm9tICdleHQuZ2FkZ2V0LlV0aWwnO1xuXG5jb25zdCBhcGk6IG13LkFwaSA9IGluaXRNd0FwaShgUlJELyR7T1BUSU9OUy52ZXJzaW9ufWApO1xuXG5leHBvcnQge2FwaX07XG4iLCAiaW1wb3J0ICogYXMgT1BUSU9OUyBmcm9tICcuLi9vcHRpb25zLmpzb24nO1xuaW1wb3J0IHthcGl9IGZyb20gJy4vYXBpJztcbmltcG9ydCB7Z2V0TWVzc2FnZX0gZnJvbSAnLi9pMThuJztcbmltcG9ydCB7dW5pcXVlQXJyYXl9IGZyb20gJ2V4dC5nYWRnZXQuVXRpbCc7XG5cbmNvbnN0IHF1ZXJ5UmV2aXNpb25zID0gYXN5bmMgKHRpdGxlczogc3RyaW5nIHwgc3RyaW5nW10pID0+IHtcblx0Y29uc3QgcGFyYW1zOiBBcGlRdWVyeVJldmlzaW9uc1BhcmFtcyA9IHtcblx0XHR0aXRsZXMsXG5cdFx0YWN0aW9uOiAncXVlcnknLFxuXHRcdGZvcm1hdDogJ2pzb24nLFxuXHRcdGZvcm1hdHZlcnNpb246ICcyJyxcblx0XHRwcm9wOiAncmV2aXNpb25zJyxcblx0XHRydnByb3A6ICdjb250ZW50Jyxcblx0XHRydnNsb3RzOiAnbWFpbicsXG5cdH07XG5cdGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgYXBpLmdldChwYXJhbXMpO1xuXG5cdHJldHVybiByZXNwb25zZTtcbn07XG5cbmNvbnN0IGVkaXQgPSBhc3luYyAodGl0bGU6IHN0cmluZywgdGV4dDogc3RyaW5nLCBzdW1tYXJ5Pzogc3RyaW5nKSA9PiB7XG5cdGNvbnN0IHBhcmFtczogQXBpRWRpdFBhZ2VQYXJhbXMgPSB7XG5cdFx0dGl0bGUsXG5cdFx0dGV4dCxcblx0XHRhY3Rpb246ICdlZGl0Jyxcblx0XHRmb3JtYXQ6ICdqc29uJyxcblx0XHRmb3JtYXR2ZXJzaW9uOiAnMicsXG5cdH07XG5cdGlmIChzdW1tYXJ5KSB7XG5cdFx0cGFyYW1zLnN1bW1hcnkgPSBzdW1tYXJ5O1xuXHR9XG5cdGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgYXBpLnBvc3RXaXRoRWRpdFRva2VuKHBhcmFtcyk7XG5cblx0cmV0dXJuIHJlc3BvbnNlO1xufTtcblxuY29uc3Qgc3VibWl0ID0gYXN5bmMgKGlkczogc3RyaW5nW10sIHRvSGlkZTogc3RyaW5nLCByZWFzb246IHN0cmluZywgb3RoZXJSZWFzb25zOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+ID0+IHtcblx0Y29uc3Qge3dnUGFnZU5hbWV9ID0gbXcuY29uZmlnLmdldCgpO1xuXG5cdGNvbnN0IHJyZEFycjogc3RyaW5nW10gPSBbXG5cdFx0J3t7UmV2ZGVsJyxcblx0XHQnfHN0YXR1cyA9ICcsXG5cdFx0YHxhcnRpY2xlID0gJHt3Z1BhZ2VOYW1lfWAsXG5cdFx0YHxzZXQgPSAke3RvSGlkZX1gLFxuXHRcdGB8cmVhc29uID0gJHtyZWFzb259JHtvdGhlclJlYXNvbnN9YCxcblx0XTtcblxuXHRmb3IgKGNvbnN0IFtpbmRleCwgaWRdIG9mIHVuaXF1ZUFycmF5KGlkcykuZW50cmllcygpKSB7XG5cdFx0Ly8gUmVwbGFjZSBTZXQgd2l0aCB1bmlxdWVBcnJheSwgYXZvaWRpbmcgY29yZS1qcyBwb2x5ZmlsbGluZ1xuXHRcdHJyZEFycltycmRBcnIubGVuZ3RoXSA9IGB8aWQke2luZGV4ICsgMX0gPSAke2lkfWA7XG5cdH1cblx0cnJkQXJyW3JyZEFyci5sZW5ndGhdID0gJ319XFxuLS1+ficuY29uY2F0KCd+ficpO1xuXG5cdHRyeSB7XG5cdFx0Y29uc3QgcmVzcG9uc2UgPSBhd2FpdCBxdWVyeVJldmlzaW9ucyhPUFRJT05TLnJyZFBhZ2UpO1xuXG5cdFx0bGV0IGNvbnRlbnQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcblx0XHRpZiAocmVzcG9uc2VbJ3F1ZXJ5J10/LnBhZ2VzKSB7XG5cdFx0XHRjb250ZW50ID0gcmVzcG9uc2VbJ3F1ZXJ5J10ucGFnZXNbMF0ucmV2aXNpb25zWzBdLnNsb3RzLm1haW4uY29udGVudCBhcyBzdHJpbmc7XG5cdFx0fVxuXG5cdFx0aWYgKGNvbnRlbnQgPT09IHVuZGVmaW5lZCkge1xuXHRcdFx0dm9pZCBtdy5ub3RpZnkoYEVycm9yIHdoZW4gbG9hZGluZyBwYWdlICR7T1BUSU9OUy5ycmRQYWdlfTogbWlzc2luZ2AsIHtcblx0XHRcdFx0dGFnOiAnUlJEJyxcblx0XHRcdFx0dHlwZTogJ2Vycm9yJyxcblx0XHRcdH0pO1xuXG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0dHJ5IHtcblx0XHRcdGNvbnN0IHJlc3VsdCA9IGF3YWl0IGVkaXQoT1BUSU9OUy5ycmRQYWdlLCBgJHtjb250ZW50fVxcblxcbiR7cnJkQXJyLmpvaW4oJ1xcbicpfWAsIGdldE1lc3NhZ2UoJ2VkaXRTdW1tYXJ5JykpO1xuXG5cdFx0XHRpZiAocmVzdWx0WydlZGl0J10/LnJlc3VsdCA9PT0gJ1N1Y2Nlc3MnKSB7XG5cdFx0XHRcdGxvY2F0aW9uLnJlcGxhY2UobXcudXRpbC5nZXRVcmwoT1BUSU9OUy5ycmRQYWdlKSk7XG5cdFx0XHR9IGVsc2UgaWYgKHJlc3VsdFsnZXJyb3InXT8uY29kZSkge1xuXHRcdFx0XHR2b2lkIG13Lm5vdGlmeShgU29tZSBlcnJvcnMgb2NjdXJlZCB3aGlsZSBzYXZpbmcgcGFnZTogJHtyZXN1bHRbJ2Vycm9yJ10uY29kZX1gLCB7XG5cdFx0XHRcdFx0dGFnOiAnUlJEJyxcblx0XHRcdFx0XHR0eXBlOiAnZXJyb3InLFxuXHRcdFx0XHR9KTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHZvaWQgbXcubm90aWZ5KCdTb21lIGVycm9ycyBvY2N1cmVkIHdoaWxlIHNhdmluZyBwYWdlOiB1bmtub3duJywge1xuXHRcdFx0XHRcdHRhZzogJ1JSRCcsXG5cdFx0XHRcdFx0dHlwZTogJ2Vycm9yJyxcblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cdFx0fSBjYXRjaCB7XG5cdFx0XHR2b2lkIG13Lm5vdGlmeShgRXJyb3Igd2hlbiBlZGl0aW5nIHBhZ2UgJHtPUFRJT05TLnJyZFBhZ2V9YCwge3RhZzogJ1JSRCcsIHR5cGU6ICdlcnJvcid9KTtcblx0XHR9XG5cdH0gY2F0Y2gge1xuXHRcdHZvaWQgbXcubm90aWZ5KGBFcnJvciB3aGVuIGxvYWRpbmcgcGFnZSAke09QVElPTlMucnJkUGFnZX1gLCB7dGFnOiAnUlJEJywgdHlwZTogJ2Vycm9yJ30pO1xuXHR9XG59O1xuXG5leHBvcnQge3N1Ym1pdH07XG4iLCAiaW1wb3J0IHtjb25maWcsIHVwZGF0ZUNvbmZpZ30gZnJvbSAnLi9ycmRDb25maWcnO1xuaW1wb3J0IERpYWxvZ0lubmVyIGZyb20gJy4uL2NvbXBvbmVudHMvRGlhbG9nSW5uZXInO1xuaW1wb3J0IFJlYWN0IGZyb20gJ2V4dC5nYWRnZXQuUmVhY3QnO1xuaW1wb3J0IHtnZXRNZXNzYWdlfSBmcm9tICcuL2kxOG4nO1xuaW1wb3J0IHtpc1NwZWNpYWxMb2d9IGZyb20gJy4vaXNTcGVjaWFsTG9nJztcbmltcG9ydCB7bG9hZElkc30gZnJvbSAnLi9sb2FkSWRzJztcbmltcG9ydCB7c3VibWl0fSBmcm9tICcuL3N1Ym1pdCc7XG5cbmxldCAkZGlhbG9nOiBKUXVlcnkgfCB1bmRlZmluZWQ7XG5cbmNvbnN0IHNob3dEaWFsb2cgPSAoJGJvZHk6IEpRdWVyeTxIVE1MQm9keUVsZW1lbnQ+KTogdm9pZCA9PiB7XG5cdGNvbnN0IGlkczogc3RyaW5nW10gPSBsb2FkSWRzKCRib2R5KTtcblx0aWYgKCFpZHMubGVuZ3RoKSB7XG5cdFx0dm9pZCBtdy5ub3RpZnkoZ2V0TWVzc2FnZSgnZXJyTm9SZXZpc2lvblByb3ZpZGVkJyksIHtcblx0XHRcdHRhZzogJ1JSRCcsXG5cdFx0XHR0eXBlOiAnZXJyb3InLFxuXHRcdH0pO1xuXG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0Y29uc3QgZGlhbG9nOiBSZWFjdC5SZWFjdEVsZW1lbnQgPSBEaWFsb2dJbm5lcigpO1xuXHRpZiAoJGRpYWxvZykge1xuXHRcdCRkaWFsb2cuaHRtbChkaWFsb2cpLmRpYWxvZygnb3BlbicpO1xuXG5cdFx0Zm9yIChjb25zdCBbaWQsIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhjb25maWcub3RoZXJzKSkge1xuXHRcdFx0JGJvZHkuZmluZChgIyR7aWR9YCkudmFsKHZhbHVlIGFzIHN0cmluZyk7XG5cdFx0fVxuXHRcdGZvciAoY29uc3QgW2lkLCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoY29uZmlnLmNoZWNrYm94ZXMpKSB7XG5cdFx0XHRpZiAodmFsdWUgPT09IHRydWUpIHtcblx0XHRcdFx0JGJvZHkuZmluZChgIyR7aWR9YCkucHJvcCgnY2hlY2tlZCcsIHRydWUpO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybjtcblx0fVxuXG5cdCRkaWFsb2cgPSAkKGRpYWxvZykuZGlhbG9nKHtcblx0XHR0aXRsZTogZ2V0TWVzc2FnZSgnZGlhbG9nVGl0bGUnKSxcblx0XHRtaW5XaWR0aDogNTE1LFxuXHRcdG1pbkhlaWdodDogMTUwLFxuXHRcdGNsb3NlOiB1cGRhdGVDb25maWcsXG5cdFx0YnV0dG9uczogW1xuXHRcdFx0e1xuXHRcdFx0XHR0ZXh0OiBnZXRNZXNzYWdlKCdkaWFsb2dCdXR0b25TdWJtaXQnKSxcblx0XHRcdFx0Y2xpY2soKTogdm9pZCB7XG5cdFx0XHRcdFx0JCh0aGlzKS5kaWFsb2coJ2Nsb3NlJyk7XG5cblx0XHRcdFx0XHRjb25zdCB7XG5cdFx0XHRcdFx0XHRjaGVja2JveGVzOiB7cnJkSGlkZUNvbnRlbnQsIHJyZEhpZGVVc2VybmFtZSwgcnJkSGlkZVN1bW1hcnl9LFxuXHRcdFx0XHRcdFx0b3RoZXJzOiB7cnJkUmVhc29ufSxcblx0XHRcdFx0XHR9ID0gY29uZmlnO1xuXG5cdFx0XHRcdFx0bGV0IHtycmRPdGhlclJlYXNvbnN9ID0gY29uZmlnLm90aGVycztcblx0XHRcdFx0XHRpZiAocnJkT3RoZXJSZWFzb25zICYmIHJyZFJlYXNvbikge1xuXHRcdFx0XHRcdFx0cnJkT3RoZXJSZWFzb25zID0gYO+8jCR7cnJkT3RoZXJSZWFzb25zfWA7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0Y29uc3QgdG9IaWRlOiBzdHJpbmdbXSA9IFtdO1xuXHRcdFx0XHRcdGlmIChycmRIaWRlQ29udGVudCkge1xuXHRcdFx0XHRcdFx0dG9IaWRlW3RvSGlkZS5sZW5ndGhdID0gaXNTcGVjaWFsTG9nKCkgPyBnZXRNZXNzYWdlKCdoaWRlTG9nJykgOiBnZXRNZXNzYWdlKCdoaWRlQ29udGVudCcpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRpZiAocnJkSGlkZVVzZXJuYW1lKSB7XG5cdFx0XHRcdFx0XHR0b0hpZGVbdG9IaWRlLmxlbmd0aF0gPSBnZXRNZXNzYWdlKCdoaWRlVXNlcm5hbWUnKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0aWYgKHJyZEhpZGVTdW1tYXJ5KSB7XG5cdFx0XHRcdFx0XHR0b0hpZGVbdG9IaWRlLmxlbmd0aF0gPSBnZXRNZXNzYWdlKCdoaWRlU3VtbWFyeScpO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdGlmICghdG9IaWRlLmxlbmd0aCkge1xuXHRcdFx0XHRcdFx0dm9pZCBtdy5ub3RpZnkoZ2V0TWVzc2FnZSgnZXJyTm9JdGVtUHJvdmlkZWQnKSwge1xuXHRcdFx0XHRcdFx0XHR0YWc6ICdSUkQnLFxuXHRcdFx0XHRcdFx0XHR0eXBlOiAnZXJyb3InLFxuXHRcdFx0XHRcdFx0fSk7XG5cblx0XHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRsZXQgY29udDogYm9vbGVhbiA9IHRydWU7XG5cdFx0XHRcdFx0aWYgKCFycmRSZWFzb24gJiYgIXJyZE90aGVyUmVhc29ucykge1xuXHRcdFx0XHRcdFx0Y29udCA9IGNvbmZpcm0oZ2V0TWVzc2FnZSgnd2Fybk5vUmVhc29uUHJvdmlkZWQnKSk7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0aWYgKGNvbnQpIHtcblx0XHRcdFx0XHRcdHZvaWQgc3VibWl0KGlkcywgdG9IaWRlLmpvaW4oJ+OAgScpLCBycmRSZWFzb24gPz8gJycsIHJyZE90aGVyUmVhc29ucyA/PyAnJyk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9LFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0dGV4dDogZ2V0TWVzc2FnZSgnZGlhbG9nQnV0dG9uQ2FuY2VsJyksXG5cdFx0XHRcdGNsaWNrKCk6IHZvaWQge1xuXHRcdFx0XHRcdCQodGhpcykuZGlhbG9nKCdjbG9zZScpO1xuXHRcdFx0XHR9LFxuXHRcdFx0fSxcblx0XHRdLFxuXHR9KTtcbn07XG5cbmV4cG9ydCB7c2hvd0RpYWxvZ307XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQyxJQUFBQSxVQUFXO0FBQ1gsSUFBQUMsVUFBVzs7QUNEWixJQUFBQyxvQkFBa0JDLFFBQUFDLFFBQUEsa0JBQUEsR0FBQSxDQUFBOztBQ0RsQixJQUFNQyxrQkFBa0JBLE1BQU07QUFDN0IsUUFBTTtJQUFDQztFQUFLLElBQUlDO0FBQ2hCLFNBQU87SUFDTkMsYUFBYUYsTUFDWiwyQ0FDQSx5Q0FDRDtJQUNBRyx1QkFB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QUEsU0FBQWUsS0FBQTtBQUFBcUYsaUJBQUFwRixFQUFBRCxHQUFBO0lBQUEsVUFBQTtBQUFBcUYsaUJBQUFuRixFQUFBO0lBQUE7RUFDRDtBQUNELENBQUM7IiwKICAibmFtZXMiOiBbInJyZFBhZ2UiLCAidmVyc2lvbiIsICJpbXBvcnRfZXh0X2dhZGdldCIsICJfX3RvRVNNIiwgInJlcXVpcmUiLCAiZ2V0STE4bk1lc3NhZ2VzIiwgIndnVUxTIiwgIndpbmRvdyIsICJlZGl0U3VtbWFyeSIsICJlcnJOb1JldmlzaW9uUHJvdmlkZWQiLCAiZXJyTm9JdGVtUHJvdmlkZWQiLCAid2Fybk5vUmVhc29uUHJvdmlkZWQiLCAiaGlkZUl0ZW1zIiwgImhpZGVDb250ZW50IiwgImhpZGVMb2ciLCAiaGlkZVVzZXJuYW1lIiwgImhpZGVTdW1tYXJ5IiwgImhpZGVSZWFzb24iLCAiaGlkZVJlYXNvblJEMSIsICJoaWRlUmVhc29uUkQyIiwgImhpZGVSZWFzb25SRDMiLCAiaGlkZVJlYXNvblJENCIsICJoaWRlUmVhc29uUkQ1IiwgImhpZGVSZWFzb25PdGhlciIsICJvdGhlclJlYXNvbnMiLCAiZGlhbG9nVGl0bGUiLCAiZGlhbG9nQnV0dG9uU3VibWl0IiwgImRpYWxvZ0J1dHRvbkNhbmNlbCIsICJyZXBvcnRCdXR0b25UaXRsZSIsICJyZXBvcnRCdXR0b25UZXh0IiwgInJlcG9ydEJ1dHRvbkxvZ1RleHQiLCAiaTE4bk1lc3NhZ2VzIiwgImdldE1lc3NhZ2UiLCAia2V5IiwgImlzU3BlY2lhbExvZyIsICJ3Z0Nhbm9uaWNhbFNwZWNpYWxQYWdlTmFtZSIsICJtdyIsICJjb25maWciLCAiZ2V0IiwgIlJlcG9ydEJ1dHRvbiIsICJvbkNsaWNrIiwgImRlZmF1bHQiLCAiY3JlYXRlRWxlbWVudCIsICJ0eXBlIiwgImNsYXNzTmFtZSIsICJ0aXRsZSIsICJSZXBvcnRCdXR0b25fZGVmYXVsdCIsICJpbXBvcnRfZXh0X2dhZGdldDUiLCAiY2hlY2tib3hlcyIsICJvdGhlcnMiLCAidXBkYXRlQ29uZmlnIiwgIl9kb2N1bWVudCRxdWVyeVNlbGVjdCIsICJfZG9jdW1lbnQkcXVlcnlTZWxlY3QyIiwgIl9kb2N1bWVudCRxdWVyeVNlbGVjdDMiLCAiY2hlY2tCb3hlcyIsICJkb2N1bWVudCIsICJxdWVyeVNlbGVjdG9yIiwgImNoZWNrZWQiLCAicnJkSGlkZUNvbnRlbnQiLCAicnJkSGlkZVVzZXJuYW1lIiwgInJyZEhpZGVTdW1tYXJ5IiwgInJlYXNvbklucHV0IiwgIm90aGVyUmVhc29uc0lucHV0IiwgInJyZFJlYXNvbiIsICJ2YWx1ZSIsICJycmRPdGhlclJlYXNvbnMiLCAiaW1wb3J0X2V4dF9nYWRnZXQyIiwgImNvbnRlbnRXcmFwcGVyIiwgIkRpYWxvZ0lubmVyIiwgImlkIiwgIm5hbWUiLCAiaHRtbEZvciIsICJyb3dzIiwgIkRpYWxvZ0lubmVyX2RlZmF1bHQiLCAibG9hZElkcyIsICIkYm9keSIsICJpZHMiLCAiYm94ZXMiLCAiZmluZCIsICJfaXRlcmF0b3IyIiwgIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwgIl9zdGVwMiIsICJzIiwgIm4iLCAiZG9uZSIsICJib3giLCAiaWRSZWdleCIsICJpZEFycmF5IiwgImV4ZWMiLCAibGVuZ3RoIiwgImVyciIsICJlIiwgImYiLCAiaW1wb3J0X2V4dF9nYWRnZXQzIiwgImFwaSIsICJpbml0TXdBcGkiLCAiY29uY2F0IiwgImltcG9ydF9leHRfZ2FkZ2V0NCIsICJxdWVyeVJldmlzaW9ucyIsICJfcmVmIiwgIl9hc3luY1RvR2VuZXJhdG9yIiwgInRpdGxlcyIsICJwYXJhbXMiLCAiYWN0aW9uIiwgImZvcm1hdCIsICJmb3JtYXR2ZXJzaW9uIiwgInByb3AiLCAicnZwcm9wIiwgInJ2c2xvdHMiLCAicmVzcG9uc2UiLCAiX3giLCAiYXBwbHkiLCAiYXJndW1lbnRzIiwgImVkaXQiLCAiX3JlZjIiLCAidGV4dCIsICJzdW1tYXJ5IiwgInBvc3RXaXRoRWRpdFRva2VuIiwgIl94MiIsICJfeDMiLCAiX3g0IiwgInN1Ym1pdCIsICJfcmVmMyIsICJ0b0hpZGUiLCAicmVhc29uIiwgIndnUGFnZU5hbWUiLCAicnJkQXJyIiwgIl9pdGVyYXRvcjMiLCAidW5pcXVlQXJyYXkiLCAiZW50cmllcyIsICJfc3RlcDMiLCAiaW5kZXgiLCAiX3Jlc3BvbnNlJHF1ZXJ5IiwgImNvbnRlbnQiLCAicGFnZXMiLCAicmV2aXNpb25zIiwgInNsb3RzIiwgIm1haW4iLCAibm90aWZ5IiwgInRhZyIsICJfcmVzdWx0JGVkaXQiLCAiX3Jlc3VsdCRlcnJvciIsICJyZXN1bHQiLCAiam9pbiIsICJsb2NhdGlvbiIsICJyZXBsYWNlIiwgInV0aWwiLCAiZ2V0VXJsIiwgImNvZGUiLCAiX3g1IiwgIl94NiIsICJfeDciLCAiX3g4IiwgIiRkaWFsb2ciLCAic2hvd0RpYWxvZyIsICJkaWFsb2ciLCAiaHRtbCIsICJfaSIsICJfT2JqZWN0JGVudHJpZXMiLCAiT2JqZWN0IiwgInZhbCIsICJfaTIiLCAiX09iamVjdCRlbnRyaWVzMiIsICIkIiwgIm1pbldpZHRoIiwgIm1pbkhlaWdodCIsICJjbG9zZSIsICJidXR0b25zIiwgImNsaWNrIiwgImNvbnQiLCAiY29uZmlybSIsICJnZXRCb2R5IiwgInRoZW4iLCAicnJkIiwgIndnQWN0aW9uIiwgIl9pdGVyYXRvcjQiLCAiX3N0ZXA0IiwgImVsZW1lbnQiLCAiYWZ0ZXIiXQp9Cg== +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL1JSRC9vcHRpb25zLmpzb24iLCAic3JjL1JSRC9jb21wb25lbnRzL1JlcG9ydEJ1dHRvbi50c3giLCAic3JjL1JSRC9tb2R1bGVzL2kxOG4udHMiLCAic3JjL1JSRC9tb2R1bGVzL2lzU3BlY2lhbExvZy50cyIsICJzcmMvUlJEL1JSRC50cyIsICJzcmMvUlJEL21vZHVsZXMvcnJkQ29uZmlnLnRzIiwgInNyYy9SUkQvY29tcG9uZW50cy9EaWFsb2dJbm5lci50c3giLCAic3JjL1JSRC9jb21wb25lbnRzL0RpYWxvZ0lubmVyLm1vZHVsZS5sZXNzIiwgInNyYy9SUkQvbW9kdWxlcy9sb2FkSWRzLnRzIiwgInNyYy9SUkQvbW9kdWxlcy9hcGkudHMiLCAic3JjL1JSRC9tb2R1bGVzL3N1Ym1pdC50cyIsICJzcmMvUlJEL21vZHVsZXMvc2hvd0RpYWxvZy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsie1xuXHRcInJyZFBhZ2VcIjogXCJRaXV3ZW5fdGFsazrniYjmnKzliKDpmaTmj5DmiqVcIixcblx0XCJ2ZXJzaW9uXCI6IFwiMi4wXCJcbn1cbiIsICJpbXBvcnQgKiBhcyBPUFRJT05TIGZyb20gJy4uL29wdGlvbnMuanNvbic7XG5pbXBvcnQgUmVhY3QgZnJvbSAnZXh0LmdhZGdldC5KU1gnO1xuaW1wb3J0IHtnZXRNZXNzYWdlfSBmcm9tICcuLi9tb2R1bGVzL2kxOG4nO1xuaW1wb3J0IHtpc1NwZWNpYWxMb2d9IGZyb20gJy4uL21vZHVsZXMvaXNTcGVjaWFsTG9nJztcblxuaW50ZXJmYWNlIFByb3BzIHtcblx0b25DbGljazogKCkgPT4gdm9pZDtcbn1cblxuY29uc3QgUmVwb3J0QnV0dG9uID0gKHtvbkNsaWNrfTogUHJvcHMpID0+IChcblx0PGJ1dHRvblxuXHRcdHR5cGU9eydidXR0b24nfVxuXHRcdGNsYXNzTmFtZT17WydycmRfX3JlcG9ydCcsICdjZHgtYnV0dG9uJywgJ2NkeC1idXR0b24tLXdlaWdodC1wcmltYXJ5J119XG5cdFx0dGl0bGU9e2dldE1lc3NhZ2UoJ3JlcG9ydEJ1dHRvblRpdGxlJykgKyBPUFRJT05TLnJyZFBhZ2V9XG5cdFx0b25DbGljaz17b25DbGlja31cblx0PlxuXHRcdHtpc1NwZWNpYWxMb2coKSA/IGdldE1lc3NhZ2UoJ3JlcG9ydEJ1dHRvbkxvZ1RleHQnKSA6IGdldE1lc3NhZ2UoJ3JlcG9ydEJ1dHRvblRleHQnKX1cblx0PC9idXR0b24+XG4pO1xuXG5leHBvcnQgZGVmYXVsdCBSZXBvcnRCdXR0b247XG4iLCAiY29uc3QgZ2V0STE4bk1lc3NhZ2VzID0gKCkgPT4ge1xuXHRjb25zdCB7d2dVTFN9ID0gd2luZG93O1xuXHRyZXR1cm4ge1xuXHRcdGVkaXRTdW1tYXJ5OiB3Z1VMUyhcblx0XHRcdCdbW01lZGlhV2lraTpHYWRnZXQtUlJELmpzfOWNiuiHquWKqOaPkOaKpV1d5L+u6K6i54mI5pys5Yig6ZmkJyxcblx0XHRcdCdbW01lZGlhV2lraTpHYWRnZXQtUlJELmpzfOWNiuiHquWLleaPkOWgsV1d5L+u6KiC54mI5pys5Yiq6ZmkJ1xuXHRcdCksXG5cdFx0ZXJyTm9SZXZpc2lvblByb3ZpZGVkOiB3Z1VMUygn5oKo5rKh5pyJ6YCJ5oup6ZyA6ZqQ6JeP55qE54mI5pys77yBJywgJ+aCqOaykuaciemBuOaTh+mcgOmaseiXj+eahOeJiOacrO+8gScpLFxuXHRcdGVyck5vSXRlbVByb3ZpZGVkOiB3Z1VMUygn5oKo5rKh5pyJ6YCJ5oup6ZyA6ZqQ6JeP55qE6aG555uu77yBJywgJ+aCqOaykuaciemBuOaTh+mcgOmaseiXj+eahOmgheebru+8gScpLFxuXHRcdHdhcm5Ob1JlYXNvblByb3ZpZGVkOiB3Z1VMUygn5oKo5rKh5pyJ6L6T5YWl5Lu75L2V55CG55Sx77yB56Gu5a6a6KaB57un57ut5ZCX77yfJywgJ+aCqOaykuaciei8uOWFpeS7u+S9leeQhueUse+8geeiuuWumuimgee5vOe6jOWXju+8nycpLFxuXHRcdGhpZGVJdGVtczogd2dVTFMoJ+mcgOmakOiXj+eahOmhueebru+8micsICfpnIDpmrHol4/nmoTpoIXnm67vvJonKSxcblx0XHRoaWRlQ29udGVudDogd2dVTFMoJ+e8lui+keWGheWuuScsICfnt6jovK/lhaflrrknKSxcblx0XHRoaWRlTG9nOiB3Z1VMUygn5pel5b+X55uu5qCH5LiO5Y+C5pWwJywgJ+aXpeiqjOebruaomeiIh+WPg+aVuCcpLFxuXHRcdGhpZGVVc2VybmFtZTogd2dVTFMoJ+e8lui+keiAheeUqOaIt+WQjS9JUOWcsOWdgCcsICfnt6jovK/ogIXnlKjmiLblkI0vSVDkvY3lnYAnKSxcblx0XHRoaWRlU3VtbWFyeTogd2dVTFMoJ+e8lui+keaRmOimgScsICfnt6jovK/mkZjopoEnKSxcblx0XHRoaWRlUmVhc29uOiB3Z1VMUygn55CG5o2u77yaJywgJ+eQhuaTmu+8micpLFxuXHRcdGhpZGVSZWFzb25SRDE6IHdnVUxTKCdSRDHvvJrmnaHnm67kuK3mmI7mmL7kvrXniq/okZfkvZzmnYPnmoTlhoXlrrknLCAnUkQx77ya5qKd55uu5Lit5piO6aGv5L6154qv6JGX5L2c5qyK55qE5YWn5a65JyksXG5cdFx0aGlkZVJlYXNvblJEMjogd2dVTFMoJ1JEMu+8muS4pemHjeS+rui+seOAgei0rOS9juaIluaUu+WHu+aAp+aWh+acrCcsICdSRDLvvJrlmrTph43kvq7ovrHjgIHosrbkvY7miJbmlLvmk4rmgKfmlofmnKwnKSxcblx0XHRoaWRlUmVhc29uUkQzOiB3Z1VMUygnUkQz77ya57qv57K55omw5Lmx5oCn5YaF5a65JywgJ+e0lOeyueaTvuS6guaAp+WFp+WuuScpLFxuXHRcdGhpZGVSZWFzb25SRDQ6IHdnVUxTKCdSRDTvvJrmmI7mmL7ov53lj43ms5Xlvovms5Xop4TmiJbov53og4zlhazluo/oia/kv5fnmoTlhoXlrrknLCAnUkQ077ya5piO6aGv6YGV5Y+N5rOV5b6L5rOV6KaP5oiW6YGV6IOM5YWs5bqP6Imv5L+X55qE5YWn5a65JyksXG5cdFx0aGlkZVJlYXNvblJENTogd2dVTFMoJ1JENe+8muWFtuS7luS4jeWunOWFrOW8gOeahOeJiOacrOWGheWuuScsICdSRDXvvJrlhbbku5bkuI3lrpzlhazplovnmoTniYjmnKzlhaflrrknKSxcblx0XHRoaWRlUmVhc29uT3RoZXI6IHdnVUxTKCfku4Xkvb/nlKjkuIvmlrnnmoTpmYTliqDnkIbnlLEnLCAn5YOF5L2/55So5LiL5pa555qE6ZmE5Yqg55CG55SxJyksXG5cdFx0b3RoZXJSZWFzb25zOiB3Z1VMUygn6ZmE5Yqg55CG55Sx77yI5Y+v6YCJ77yM5LiN55So562+5ZCN77yJJywgJ+mZhOWKoOeQhueUse+8iOWPr+mBuO+8jOS4jeeUqOewveWQje+8iScpLFxuXHRcdGRpYWxvZ1RpdGxlOiB3Z1VMUygn5o+Q5oql5L+u6K6i54mI5pys5Yig6ZmkJywgJ+aPkOWgseS/ruiogueJiOacrOWIqumZpCcpLFxuXHRcdGRpYWxvZ0J1dHRvblN1Ym1pdDogd2dVTFMoJ+aPkOaKpScsICfmj5DloLEnKSxcblx0XHRkaWFsb2dCdXR0b25DYW5jZWw6IHdnVUxTKCflj5bmtognLCAn5Y+W5raIJyksXG5cdFx0cmVwb3J0QnV0dG9uVGl0bGU6IHdnVUxTKCflsIbpgInkuK3nmoTniYjmnKzmj5DmiqXliLAnLCAn5bCH6YG45Lit55qE54mI5pys5o+Q5aCx5YiwJyksXG5cdFx0cmVwb3J0QnV0dG9uVGV4dDogd2dVTFMoJ+ivt+axguWIoOmZpOiiq+mAieeJiOacrCcsICfoq4vmsYLliKrpmaTooqvpgbjniYjmnKwnKSxcblx0XHRyZXBvcnRCdXR0b25Mb2dUZXh0OiB3Z1VMUygn6K+35rGC5Yig6Zmk6KKr6YCJ5pel5b+XJywgJ+iri+axguWIqumZpOiiq+mBuOaXpeiqjCcpLFxuXHR9O1xufTtcblxuY29uc3QgaTE4bk1lc3NhZ2VzID0gZ2V0STE4bk1lc3NhZ2VzKCk7XG5cbmNvbnN0IGdldE1lc3NhZ2U6IEdldE1lc3NhZ2VzPHR5cGVvZiBpMThuTWVzc2FnZXM+ID0gKGtleSkgPT4ge1xuXHRyZXR1cm4gaTE4bk1lc3NhZ2VzW2tleV0gfHwga2V5O1xufTtcblxuZXhwb3J0IHtnZXRNZXNzYWdlfTtcbiIsICJjb25zdCBpc1NwZWNpYWxMb2cgPSAoKSA9PiB7XG5cdGNvbnN0IHt3Z0Nhbm9uaWNhbFNwZWNpYWxQYWdlTmFtZX0gPSBtdy5jb25maWcuZ2V0KCk7XG5cdHJldHVybiB3Z0Nhbm9uaWNhbFNwZWNpYWxQYWdlTmFtZSA9PT0gJ0xvZyc7XG59O1xuXG5leHBvcnQge2lzU3BlY2lhbExvZ307XG4iLCAiaW1wb3J0IFJlcG9ydEJ1dHRvbiBmcm9tICcuL2NvbXBvbmVudHMvUmVwb3J0QnV0dG9uJztcbmltcG9ydCB7Z2V0Qm9keX0gZnJvbSAnZXh0LmdhZGdldC5VdGlsJztcbmltcG9ydCB7c2hvd0RpYWxvZ30gZnJvbSAnLi9tb2R1bGVzL3Nob3dEaWFsb2cnO1xuXG52b2lkIGdldEJvZHkoKS50aGVuKGZ1bmN0aW9uIHJyZCgkYm9keTogSlF1ZXJ5PEhUTUxCb2R5RWxlbWVudD4pOiB2b2lkIHtcblx0Y29uc3Qge3dnQWN0aW9uLCB3Z0Nhbm9uaWNhbFNwZWNpYWxQYWdlTmFtZX0gPSBtdy5jb25maWcuZ2V0KCk7XG5cblx0aWYgKHdnQWN0aW9uID09PSAnaGlzdG9yeScgfHwgd2dDYW5vbmljYWxTcGVjaWFsUGFnZU5hbWUgPT09ICdMb2cnKSB7XG5cdFx0Zm9yIChjb25zdCBlbGVtZW50IG9mICRib2R5LmZpbmQoXG5cdFx0XHRbXG5cdFx0XHRcdCcuaGlzdG9yeXN1Ym1pdC5tdy1oaXN0b3J5LWNvbXBhcmVzZWxlY3RlZHZlcnNpb25zLWJ1dHRvbicsXG5cdFx0XHRcdCcuZWRpdGNoYW5nZXRhZ3MtbG9nLXN1Ym1pdC5tdy1sb2ctZWRpdGNoYW5nZXRhZ3MtYnV0dG9uJyxcblx0XHRcdF0uam9pbignLCcpXG5cdFx0KSkge1xuXHRcdFx0ZWxlbWVudC5hZnRlcihcblx0XHRcdFx0UmVwb3J0QnV0dG9uKHtcblx0XHRcdFx0XHRvbkNsaWNrOiAoKTogdm9pZCA9PiB7XG5cdFx0XHRcdFx0XHRzaG93RGlhbG9nKCRib2R5KTtcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHR9KVxuXHRcdFx0KTtcblx0XHR9XG5cdH1cbn0pO1xuIiwgImltcG9ydCB0eXBlIHtScmRDb25maWd9IGZyb20gJy4vdHlwZXMnO1xuXG5jb25zdCBjb25maWc6IFJyZENvbmZpZyA9IHtcblx0Y2hlY2tib3hlczoge30sXG5cdG90aGVyczoge30sXG59O1xuXG5jb25zdCB1cGRhdGVDb25maWcgPSAoKTogdm9pZCA9PiB7XG5cdGNvbnN0IGNoZWNrQm94ZXM6IFJyZENvbmZpZ1snY2hlY2tib3hlcyddID0ge307XG5cblx0aWYgKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3I8SFRNTElucHV0RWxlbWVudD4oJyNycmRfX2hpZGUtY29udGVudCcpPy5jaGVja2VkKSB7XG5cdFx0Y2hlY2tCb3hlcy5ycmRIaWRlQ29udGVudCA9IHRydWU7XG5cdH1cblx0aWYgKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3I8SFRNTElucHV0RWxlbWVudD4oJyNycmRfX2hpZGUtdXNlcm5hbWUnKT8uY2hlY2tlZCkge1xuXHRcdGNoZWNrQm94ZXMucnJkSGlkZVVzZXJuYW1lID0gdHJ1ZTtcblx0fVxuXHRpZiAoZG9jdW1lbnQucXVlcnlTZWxlY3RvcjxIVE1MSW5wdXRFbGVtZW50PignI3JyZF9faGlkZS1zdW1tYXJ5Jyk/LmNoZWNrZWQpIHtcblx0XHRjaGVja0JveGVzLnJyZEhpZGVTdW1tYXJ5ID0gdHJ1ZTtcblx0fVxuXG5cdGNvbmZpZy5jaGVja2JveGVzID0gY2hlY2tCb3hlcztcblxuXHRjb25zdCBvdGhlcnM6IFJyZENvbmZpZ1snb3RoZXJzJ10gPSB7fTtcblxuXHRjb25zdCByZWFzb25JbnB1dDogSFRNTElucHV0RWxlbWVudCB8IG51bGwgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yPEhUTUxJbnB1dEVsZW1lbnQ+KCcjcnJkX19yZWFzb24nKTtcblx0Y29uc3Qgb3RoZXJSZWFzb25zSW5wdXQ6IEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcjxIVE1MSW5wdXRFbGVtZW50PignI3JyZF9fb3RoZXItcmVhc29ucycpO1xuXHRpZiAocmVhc29uSW5wdXQpIHtcblx0XHRvdGhlcnMucnJkUmVhc29uID0gcmVhc29uSW5wdXQudmFsdWU7XG5cdH1cblx0aWYgKG90aGVyUmVhc29uc0lucHV0KSB7XG5cdFx0b3RoZXJzLnJyZE90aGVyUmVhc29ucyA9IG90aGVyUmVhc29uc0lucHV0LnZhbHVlO1xuXHR9XG5cblx0Y29uZmlnLm90aGVycyA9IG90aGVycztcbn07XG5cbmV4cG9ydCB7Y29uZmlnLCB1cGRhdGVDb25maWd9O1xuIiwgImltcG9ydCBSZWFjdCBmcm9tICdleHQuZ2FkZ2V0LkpTWCc7XG5pbXBvcnQge2NvbnRlbnRXcmFwcGVyfSBmcm9tICcuL0RpYWxvZ0lubmVyLm1vZHVsZS5sZXNzJztcbmltcG9ydCB7Z2V0TWVzc2FnZX0gZnJvbSAnLi4vbW9kdWxlcy9pMThuJztcbmltcG9ydCB7aXNTcGVjaWFsTG9nfSBmcm9tICcuLi9tb2R1bGVzL2lzU3BlY2lhbExvZyc7XG5cbmNvbnN0IERpYWxvZ0lubmVyID0gKCkgPT4gKFxuXHQ8ZGl2IGlkPVwicnJkX19jb25maWdcIj5cblx0XHR7Z2V0TWVzc2FnZSgnaGlkZUl0ZW1zJyl9XG5cdFx0PGJyIC8+XG5cdFx0PGRpdiBjbGFzc05hbWU9e2NvbnRlbnRXcmFwcGVyfT5cblx0XHRcdDxpbnB1dCBuYW1lPVwiY29udGVudFwiIGlkPVwicnJkX19oaWRlLWNvbnRlbnRcIiB0eXBlPVwiY2hlY2tib3hcIiB2YWx1ZT1cImNvbnRlbnRcIiBjaGVja2VkIC8+XG5cdFx0XHQ8bGFiZWwgaHRtbEZvcj1cInJyZF9faGlkZS1jb250ZW50XCIgaWQ9XCJycmQtY29udGVudFwiPlxuXHRcdFx0XHR7aXNTcGVjaWFsTG9nKCkgPyBnZXRNZXNzYWdlKCdoaWRlTG9nJykgOiBnZXRNZXNzYWdlKCdoaWRlQ29udGVudCcpfVxuXHRcdFx0PC9sYWJlbD5cblx0XHQ8L2Rpdj5cblx0XHQ8ZGl2IGNsYXNzTmFtZT17Y29udGVudFdyYXBwZXJ9PlxuXHRcdFx0PGlucHV0IG5hbWU9XCJ1c2VybmFtZVwiIGlkPVwicnJkX19oaWRlLXVzZXJuYW1lXCIgdHlwZT1cImNoZWNrYm94XCIgdmFsdWU9XCJ1c2VybmFtZVwiIC8+XG5cdFx0XHQ8bGFiZWwgaHRtbEZvcj1cInJyZF9faGlkZS11c2VybmFtZVwiIGlkPVwicnJkLXVzZXJuYW1lXCI+XG5cdFx0XHRcdHtnZXRNZXNzYWdlKCdoaWRlVXNlcm5hbWUnKX1cblx0XHRcdDwvbGFiZWw+XG5cdFx0PC9kaXY+XG5cdFx0PGRpdiBjbGFzc05hbWU9e2NvbnRlbnRXcmFwcGVyfT5cblx0XHRcdDxpbnB1dCBuYW1lPVwic3VtbWFyeVwiIGlkPVwicnJkX19oaWRlLXN1bW1hcnlcIiB0eXBlPVwiY2hlY2tib3hcIiB2YWx1ZT1cInN1bW1hcnlcIiAvPlxuXHRcdFx0PGxhYmVsIGh0bWxGb3I9XCJycmRfX2hpZGUtc3VtbWFyeVwiIGlkPVwicnJkLXN1bW1hcnlcIj5cblx0XHRcdFx0e2dldE1lc3NhZ2UoJ2hpZGVTdW1tYXJ5Jyl9XG5cdFx0XHQ8L2xhYmVsPlxuXHRcdDwvZGl2PlxuXHRcdDxiciAvPlxuXHRcdDxiciAvPlxuXHRcdHtnZXRNZXNzYWdlKCdoaWRlUmVhc29uJyl9XG5cdFx0PGJyIC8+XG5cdFx0PHNlbGVjdCBuYW1lPVwicnJkX19yZWFzb25cIiBpZD1cInJyZF9fcmVhc29uXCI+XG5cdFx0XHQ8b3B0aW9uIHZhbHVlPXtnZXRNZXNzYWdlKCdoaWRlUmVhc29uUkQxJyl9PntnZXRNZXNzYWdlKCdoaWRlUmVhc29uUkQxJyl9PC9vcHRpb24+XG5cdFx0XHQ8b3B0aW9uIHZhbHVlPXtnZXRNZXNzYWdlKCdoaWRlUmVhc29uUkQyJyl9PntnZXRNZXNzYWdlKCdoaWRlUmVhc29uUkQyJyl9PC9vcHRpb24+XG5cdFx0XHQ8b3B0aW9uIHZhbHVlPXtnZXRNZXNzYWdlKCdoaWRlUmVhc29uUkQzJyl9PntnZXRNZXNzYWdlKCdoaWRlUmVhc29uUkQzJyl9PC9vcHRpb24+XG5cdFx0XHQ8b3B0aW9uIHZhbHVlPXtnZXRNZXNzYWdlKCdoaWRlUmVhc29uUkQ0Jyl9PntnZXRNZXNzYWdlKCdoaWRlUmVhc29uUkQ0Jyl9PC9vcHRpb24+XG5cdFx0XHQ8b3B0aW9uIHZhbHVlPXtnZXRNZXNzYWdlKCdoaWRlUmVhc29uUkQ1Jyl9PntnZXRNZXNzYWdlKCdoaWRlUmVhc29uUkQ1Jyl9PC9vcHRpb24+XG5cdFx0XHQ8b3B0aW9uIHZhbHVlPVwiXCI+e2dldE1lc3NhZ2UoJ2hpZGVSZWFzb25PdGhlcicpfTwvb3B0aW9uPlxuXHRcdDwvc2VsZWN0PlxuXHRcdDxiciAvPlxuXHRcdDxiciAvPlxuXHRcdHtnZXRNZXNzYWdlKCdvdGhlclJlYXNvbnMnKX1cblx0XHQ8YnIgLz5cblx0XHQ8dGV4dGFyZWEgbmFtZT1cIm90aGVyUmVhc29uc1wiIGlkPVwicnJkX19vdGhlci1yZWFzb25zXCIgcm93cz17NH0+PC90ZXh0YXJlYT5cblx0PC9kaXY+XG4pO1xuXG5leHBvcnQgZGVmYXVsdCBEaWFsb2dJbm5lcjtcbiIsICJpbXBvcnQgXCJlc2J1aWxkLWNzcy1tb2R1bGVzLXBsdWdpbi1ucy1jc3M6c3JjL1JSRC9jb21wb25lbnRzL0RpYWxvZ0lubmVyLm1vZHVsZS5sZXNzXCI7XG5leHBvcnQgY29uc3QgY29udGVudFdyYXBwZXIgPSBcIkRpYWxvZ0lubmVyLW1vZHVsZV9fY29udGVudFdyYXBwZXJfNlRkVFZHX180OTBcIjtcblxuZXhwb3J0IGRlZmF1bHQge1xuICBcImNvbnRlbnRXcmFwcGVyXCI6IGNvbnRlbnRXcmFwcGVyXG59O1xuICAgICAgIiwgImNvbnN0IGxvYWRJZHMgPSAoJGJvZHk6IEpRdWVyeTxIVE1MQm9keUVsZW1lbnQ+KTogc3RyaW5nW10gPT4ge1xuXHRjb25zdCBpZHM6IHN0cmluZ1tdID0gW107XG5cblx0Y29uc3QgYm94ZXM6IEpRdWVyeTxIVE1MSW5wdXRFbGVtZW50PiA9ICRib2R5LmZpbmQoJ2lucHV0Jyk7XG5cdGZvciAoY29uc3QgYm94IG9mIGJveGVzKSB7XG5cdFx0Y29uc3Qge2NoZWNrZWQsIG5hbWUsIHR5cGV9ID0gYm94O1xuXG5cdFx0aWYgKHR5cGUgIT09ICdjaGVja2JveCcgfHwgIWNoZWNrZWQpIHtcblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblxuXHRcdGNvbnN0IGlkUmVnZXg6IFJlZ0V4cCA9IC9pZHNcXFsoXFxkKyldLztcblx0XHRjb25zdCBpZEFycmF5OiBSZWdFeHBFeGVjQXJyYXkgfCBudWxsID0gaWRSZWdleC5leGVjKG5hbWUpO1xuXHRcdGlmIChpZEFycmF5Py5bMV0gPT09IHVuZGVmaW5lZCkge1xuXHRcdFx0Y29udGludWU7XG5cdFx0fVxuXG5cdFx0WywgaWRzW2lkcy5sZW5ndGhdXSA9IGlkQXJyYXk7XG5cdH1cblxuXHRyZXR1cm4gaWRzO1xufTtcblxuZXhwb3J0IHtsb2FkSWRzfTtcbiIsICJpbXBvcnQgKiBhcyBPUFRJT05TIGZyb20gJy4uL29wdGlvbnMuanNvbic7XG5pbXBvcnQge2luaXRNd0FwaX0gZnJvbSAnZXh0LmdhZGdldC5VdGlsJztcblxuY29uc3QgYXBpOiBtdy5BcGkgPSBpbml0TXdBcGkoYFJSRC8ke09QVElPTlMudmVyc2lvbn1gKTtcblxuZXhwb3J0IHthcGl9O1xuIiwgImltcG9ydCAqIGFzIE9QVElPTlMgZnJvbSAnLi4vb3B0aW9ucy5qc29uJztcbmltcG9ydCB7YXBpfSBmcm9tICcuL2FwaSc7XG5pbXBvcnQge2dldE1lc3NhZ2V9IGZyb20gJy4vaTE4bic7XG5pbXBvcnQge3VuaXF1ZUFycmF5fSBmcm9tICdleHQuZ2FkZ2V0LlV0aWwnO1xuXG5jb25zdCBxdWVyeVJldmlzaW9ucyA9IGFzeW5jICh0aXRsZXM6IHN0cmluZyB8IHN0cmluZ1tdKSA9PiB7XG5cdGNvbnN0IHBhcmFtczogQXBpUXVlcnlSZXZpc2lvbnNQYXJhbXMgPSB7XG5cdFx0dGl0bGVzLFxuXHRcdGFjdGlvbjogJ3F1ZXJ5Jyxcblx0XHRmb3JtYXQ6ICdqc29uJyxcblx0XHRmb3JtYXR2ZXJzaW9uOiAnMicsXG5cdFx0cHJvcDogJ3JldmlzaW9ucycsXG5cdFx0cnZwcm9wOiAnY29udGVudCcsXG5cdFx0cnZzbG90czogJ21haW4nLFxuXHR9O1xuXHRjb25zdCByZXNwb25zZSA9IGF3YWl0IGFwaS5nZXQocGFyYW1zKTtcblxuXHRyZXR1cm4gcmVzcG9uc2U7XG59O1xuXG5jb25zdCBlZGl0ID0gYXN5bmMgKHRpdGxlOiBzdHJpbmcsIHRleHQ6IHN0cmluZywgc3VtbWFyeT86IHN0cmluZykgPT4ge1xuXHRjb25zdCBwYXJhbXM6IEFwaUVkaXRQYWdlUGFyYW1zID0ge1xuXHRcdHRpdGxlLFxuXHRcdHRleHQsXG5cdFx0YWN0aW9uOiAnZWRpdCcsXG5cdFx0Zm9ybWF0OiAnanNvbicsXG5cdFx0Zm9ybWF0dmVyc2lvbjogJzInLFxuXHR9O1xuXHRpZiAoc3VtbWFyeSkge1xuXHRcdHBhcmFtcy5zdW1tYXJ5ID0gc3VtbWFyeTtcblx0fVxuXHRjb25zdCByZXNwb25zZSA9IGF3YWl0IGFwaS5wb3N0V2l0aEVkaXRUb2tlbihwYXJhbXMpO1xuXG5cdHJldHVybiByZXNwb25zZTtcbn07XG5cbmNvbnN0IHN1Ym1pdCA9IGFzeW5jIChpZHM6IHN0cmluZ1tdLCB0b0hpZGU6IHN0cmluZywgcmVhc29uOiBzdHJpbmcsIG90aGVyUmVhc29uczogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiA9PiB7XG5cdGNvbnN0IHt3Z1BhZ2VOYW1lfSA9IG13LmNvbmZpZy5nZXQoKTtcblxuXHRjb25zdCBycmRBcnI6IHN0cmluZ1tdID0gW1xuXHRcdCd7e1JldmRlbCcsXG5cdFx0J3xzdGF0dXMgPSAnLFxuXHRcdGB8YXJ0aWNsZSA9ICR7d2dQYWdlTmFtZX1gLFxuXHRcdGB8c2V0ID0gJHt0b0hpZGV9YCxcblx0XHRgfHJlYXNvbiA9ICR7cmVhc29ufSR7b3RoZXJSZWFzb25zfWAsXG5cdF07XG5cblx0Zm9yIChjb25zdCBbaW5kZXgsIGlkXSBvZiB1bmlxdWVBcnJheShpZHMpLmVudHJpZXMoKSkge1xuXHRcdC8vIFJlcGxhY2UgU2V0IHdpdGggdW5pcXVlQXJyYXksIGF2b2lkaW5nIGNvcmUtanMgcG9seWZpbGxpbmdcblx0XHRycmRBcnJbcnJkQXJyLmxlbmd0aF0gPSBgfGlkJHtpbmRleCArIDF9ID0gJHtpZH1gO1xuXHR9XG5cdHJyZEFycltycmRBcnIubGVuZ3RoXSA9ICd9fVxcbi0tfn4nLmNvbmNhdCgnfn4nKTtcblxuXHR0cnkge1xuXHRcdGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgcXVlcnlSZXZpc2lvbnMoT1BUSU9OUy5ycmRQYWdlKTtcblxuXHRcdGxldCBjb250ZW50OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cdFx0aWYgKHJlc3BvbnNlWydxdWVyeSddPy5wYWdlcykge1xuXHRcdFx0Y29udGVudCA9IHJlc3BvbnNlWydxdWVyeSddLnBhZ2VzWzBdLnJldmlzaW9uc1swXS5zbG90cy5tYWluLmNvbnRlbnQgYXMgc3RyaW5nO1xuXHRcdH1cblxuXHRcdGlmIChjb250ZW50ID09PSB1bmRlZmluZWQpIHtcblx0XHRcdHZvaWQgbXcubm90aWZ5KGBFcnJvciB3aGVuIGxvYWRpbmcgcGFnZSAke09QVElPTlMucnJkUGFnZX06IG1pc3NpbmdgLCB7XG5cdFx0XHRcdHRhZzogJ1JSRCcsXG5cdFx0XHRcdHR5cGU6ICdlcnJvcicsXG5cdFx0XHR9KTtcblxuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdHRyeSB7XG5cdFx0XHRjb25zdCByZXN1bHQgPSBhd2FpdCBlZGl0KE9QVElPTlMucnJkUGFnZSwgYCR7Y29udGVudH1cXG5cXG4ke3JyZEFyci5qb2luKCdcXG4nKX1gLCBnZXRNZXNzYWdlKCdlZGl0U3VtbWFyeScpKTtcblxuXHRcdFx0aWYgKHJlc3VsdFsnZWRpdCddPy5yZXN1bHQgPT09ICdTdWNjZXNzJykge1xuXHRcdFx0XHRsb2NhdGlvbi5yZXBsYWNlKG13LnV0aWwuZ2V0VXJsKE9QVElPTlMucnJkUGFnZSkpO1xuXHRcdFx0fSBlbHNlIGlmIChyZXN1bHRbJ2Vycm9yJ10/LmNvZGUpIHtcblx0XHRcdFx0dm9pZCBtdy5ub3RpZnkoYFNvbWUgZXJyb3JzIG9jY3VyZWQgd2hpbGUgc2F2aW5nIHBhZ2U6ICR7cmVzdWx0WydlcnJvciddLmNvZGV9YCwge1xuXHRcdFx0XHRcdHRhZzogJ1JSRCcsXG5cdFx0XHRcdFx0dHlwZTogJ2Vycm9yJyxcblx0XHRcdFx0fSk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR2b2lkIG13Lm5vdGlmeSgnU29tZSBlcnJvcnMgb2NjdXJlZCB3aGlsZSBzYXZpbmcgcGFnZTogdW5rbm93bicsIHtcblx0XHRcdFx0XHR0YWc6ICdSUkQnLFxuXHRcdFx0XHRcdHR5cGU6ICdlcnJvcicsXG5cdFx0XHRcdH0pO1xuXHRcdFx0fVxuXHRcdH0gY2F0Y2gge1xuXHRcdFx0dm9pZCBtdy5ub3RpZnkoYEVycm9yIHdoZW4gZWRpdGluZyBwYWdlICR7T1BUSU9OUy5ycmRQYWdlfWAsIHt0YWc6ICdSUkQnLCB0eXBlOiAnZXJyb3InfSk7XG5cdFx0fVxuXHR9IGNhdGNoIHtcblx0XHR2b2lkIG13Lm5vdGlmeShgRXJyb3Igd2hlbiBsb2FkaW5nIHBhZ2UgJHtPUFRJT05TLnJyZFBhZ2V9YCwge3RhZzogJ1JSRCcsIHR5cGU6ICdlcnJvcid9KTtcblx0fVxufTtcblxuZXhwb3J0IHtzdWJtaXR9O1xuIiwgImltcG9ydCB7Y29uZmlnLCB1cGRhdGVDb25maWd9IGZyb20gJy4vcnJkQ29uZmlnJztcbmltcG9ydCBEaWFsb2dJbm5lciBmcm9tICcuLi9jb21wb25lbnRzL0RpYWxvZ0lubmVyJztcbmltcG9ydCBSZWFjdCBmcm9tICdleHQuZ2FkZ2V0LkpTWCc7XG5pbXBvcnQge2dldE1lc3NhZ2V9IGZyb20gJy4vaTE4bic7XG5pbXBvcnQge2lzU3BlY2lhbExvZ30gZnJvbSAnLi9pc1NwZWNpYWxMb2cnO1xuaW1wb3J0IHtsb2FkSWRzfSBmcm9tICcuL2xvYWRJZHMnO1xuaW1wb3J0IHtzdWJtaXR9IGZyb20gJy4vc3VibWl0JztcblxubGV0ICRkaWFsb2c6IEpRdWVyeSB8IHVuZGVmaW5lZDtcblxuY29uc3Qgc2hvd0RpYWxvZyA9ICgkYm9keTogSlF1ZXJ5PEhUTUxCb2R5RWxlbWVudD4pOiB2b2lkID0+IHtcblx0Y29uc3QgaWRzOiBzdHJpbmdbXSA9IGxvYWRJZHMoJGJvZHkpO1xuXHRpZiAoIWlkcy5sZW5ndGgpIHtcblx0XHR2b2lkIG13Lm5vdGlmeShnZXRNZXNzYWdlKCdlcnJOb1JldmlzaW9uUHJvdmlkZWQnKSwge1xuXHRcdFx0dGFnOiAnUlJEJyxcblx0XHRcdHR5cGU6ICdlcnJvcicsXG5cdFx0fSk7XG5cblx0XHRyZXR1cm47XG5cdH1cblxuXHRjb25zdCBkaWFsb2c6IFJlYWN0LlJlYWN0RWxlbWVudCA9IERpYWxvZ0lubmVyKCk7XG5cdGlmICgkZGlhbG9nKSB7XG5cdFx0JGRpYWxvZy5odG1sKGRpYWxvZykuZGlhbG9nKCdvcGVuJyk7XG5cblx0XHRmb3IgKGNvbnN0IFtpZCwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKGNvbmZpZy5vdGhlcnMpKSB7XG5cdFx0XHQkYm9keS5maW5kKGAjJHtpZH1gKS52YWwodmFsdWUgYXMgc3RyaW5nKTtcblx0XHR9XG5cdFx0Zm9yIChjb25zdCBbaWQsIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhjb25maWcuY2hlY2tib3hlcykpIHtcblx0XHRcdGlmICh2YWx1ZSA9PT0gdHJ1ZSkge1xuXHRcdFx0XHQkYm9keS5maW5kKGAjJHtpZH1gKS5wcm9wKCdjaGVja2VkJywgdHJ1ZSk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0JGRpYWxvZyA9ICQoZGlhbG9nKS5kaWFsb2coe1xuXHRcdHRpdGxlOiBnZXRNZXNzYWdlKCdkaWFsb2dUaXRsZScpLFxuXHRcdG1pbldpZHRoOiA1MTUsXG5cdFx0bWluSGVpZ2h0OiAxNTAsXG5cdFx0Y2xvc2U6IHVwZGF0ZUNvbmZpZyxcblx0XHRidXR0b25zOiBbXG5cdFx0XHR7XG5cdFx0XHRcdHRleHQ6IGdldE1lc3NhZ2UoJ2RpYWxvZ0J1dHRvblN1Ym1pdCcpLFxuXHRcdFx0XHRjbGljaygpOiB2b2lkIHtcblx0XHRcdFx0XHQkKHRoaXMpLmRpYWxvZygnY2xvc2UnKTtcblxuXHRcdFx0XHRcdGNvbnN0IHtcblx0XHRcdFx0XHRcdGNoZWNrYm94ZXM6IHtycmRIaWRlQ29udGVudCwgcnJkSGlkZVVzZXJuYW1lLCBycmRIaWRlU3VtbWFyeX0sXG5cdFx0XHRcdFx0XHRvdGhlcnM6IHtycmRSZWFzb259LFxuXHRcdFx0XHRcdH0gPSBjb25maWc7XG5cblx0XHRcdFx0XHRsZXQge3JyZE90aGVyUmVhc29uc30gPSBjb25maWcub3RoZXJzO1xuXHRcdFx0XHRcdGlmIChycmRPdGhlclJlYXNvbnMgJiYgcnJkUmVhc29uKSB7XG5cdFx0XHRcdFx0XHRycmRPdGhlclJlYXNvbnMgPSBg77yMJHtycmRPdGhlclJlYXNvbnN9YDtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRjb25zdCB0b0hpZGU6IHN0cmluZ1tdID0gW107XG5cdFx0XHRcdFx0aWYgKHJyZEhpZGVDb250ZW50KSB7XG5cdFx0XHRcdFx0XHR0b0hpZGVbdG9IaWRlLmxlbmd0aF0gPSBpc1NwZWNpYWxMb2coKSA/IGdldE1lc3NhZ2UoJ2hpZGVMb2cnKSA6IGdldE1lc3NhZ2UoJ2hpZGVDb250ZW50Jyk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGlmIChycmRIaWRlVXNlcm5hbWUpIHtcblx0XHRcdFx0XHRcdHRvSGlkZVt0b0hpZGUubGVuZ3RoXSA9IGdldE1lc3NhZ2UoJ2hpZGVVc2VybmFtZScpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRpZiAocnJkSGlkZVN1bW1hcnkpIHtcblx0XHRcdFx0XHRcdHRvSGlkZVt0b0hpZGUubGVuZ3RoXSA9IGdldE1lc3NhZ2UoJ2hpZGVTdW1tYXJ5Jyk7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0aWYgKCF0b0hpZGUubGVuZ3RoKSB7XG5cdFx0XHRcdFx0XHR2b2lkIG13Lm5vdGlmeShnZXRNZXNzYWdlKCdlcnJOb0l0ZW1Qcm92aWRlZCcpLCB7XG5cdFx0XHRcdFx0XHRcdHRhZzogJ1JSRCcsXG5cdFx0XHRcdFx0XHRcdHR5cGU6ICdlcnJvcicsXG5cdFx0XHRcdFx0XHR9KTtcblxuXHRcdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdGxldCBjb250OiBib29sZWFuID0gdHJ1ZTtcblx0XHRcdFx0XHRpZiAoIXJyZFJlYXNvbiAmJiAhcnJkT3RoZXJSZWFzb25zKSB7XG5cdFx0XHRcdFx0XHRjb250ID0gY29uZmlybShnZXRNZXNzYWdlKCd3YXJuTm9SZWFzb25Qcm92aWRlZCcpKTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRpZiAoY29udCkge1xuXHRcdFx0XHRcdFx0dm9pZCBzdWJtaXQoaWRzLCB0b0hpZGUuam9pbign44CBJyksIHJyZFJlYXNvbiA/PyAnJywgcnJkT3RoZXJSZWFzb25zID8/ICcnKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0sXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHR0ZXh0OiBnZXRNZXNzYWdlKCdkaWFsb2dCdXR0b25DYW5jZWwnKSxcblx0XHRcdFx0Y2xpY2soKTogdm9pZCB7XG5cdFx0XHRcdFx0JCh0aGlzKS5kaWFsb2coJ2Nsb3NlJyk7XG5cdFx0XHRcdH0sXG5cdFx0XHR9LFxuXHRcdF0sXG5cdH0pO1xufTtcblxuZXhwb3J0IHtzaG93RGlhbG9nfTtcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNDLElBQUFBLFVBQVc7QUFDWCxJQUFBQyxVQUFXOztBQ0RaLElBQUFDLG9CQUFrQkMsUUFBQUMsUUFBQSxnQkFBQSxHQUFBLENBQUE7O0FDRGxCLElBQU1DLGtCQUFrQkEsTUFBTTtBQUM3QixRQUFNO0lBQUNDO0VBQUssSUFBSUM7QUFDaEIsU0FBTztJQUNOQyxhQUFhRixNQUNaLDJDQUNBLHlDQUNEO0lBQ0FHLHVCQUF1QkgsTUFBTSxnQkFBZ0IsY0FBYztJQUMzREksbUJBQW1CSixNQUFNLGdCQUFnQixjQUFjO0lBQ3ZESyxzQkFBc0JMLE1BQU0scUJBQXFCLG1CQUFtQjtJQUNwRU0sV0FBV04sTUFBTSxXQUFXLFNBQVM7SUFDckNPLGFBQWFQLE1BQU0sUUFBUSxNQUFNO0lBQ2pDUSxTQUFTUixNQUFNLFdBQVcsU0FBUztJQUNuQ1MsY0FBY1QsTUFBTSxlQUFlLGFBQWE7SUFDaERVLGFBQWFWLE1BQU0sUUFBUSxNQUFNO0lBQ2pDVyxZQUFZWCxNQUFNLE9BQU8sS0FBSztJQUM5QlksZUFBZVosTUFBTSxxQkFBcUIsbUJBQW1CO0lBQzdEYSxlQUFlYixNQUFNLHFCQUFxQixtQkFBbUI7SUFDN0RjLGVBQWVkLE1BQU0sZUFBZSxTQUFTO0lBQzdDZSxlQUFlZixNQUFNLDBCQUEwQix3QkFBd0I7SUFDdkVnQixlQUFlaEIsTUFBTSxtQkFBbUIsaUJBQWlCO0lBQ3pEaUIsaUJBQWlCakIsTUFBTSxjQUFjLFlBQVk7SUFDakRrQixjQUFjbEIsTUFBTSxpQkFBaUIsZUFBZTtJQUNwRG1CLGFBQWFuQixNQUFNLFlBQVksVUFBVTtJQUN6Q29CLG9CQUFvQnBCLE1BQU0sTUFBTSxJQUFJO0lBQ3BDcUIsb0JBQW9CckIsTUFBTSxNQUFNLElBQUk7SUFDcENzQixtQkFBbUJ0QixNQUFNLGFBQWEsV0FBVztJQUNqRHVCLGtCQUFrQnZCLE1BQU0sWUFBWSxVQUFVO0lBQzlDd0IscUJBQXFCeEIsTUFBTSxZQUFZLFVBQVU7RUFDbEQ7QUFDRDtBQUVBLElBQU15QixlQUFlMUIsZ0JBQWdCO0FBRXJDLElBQU0yQixhQUFnREMsU0FBUTtBQUM3RCxTQUFPRixhQUFhRSxHQUFHLEtBQUtBO0FBQzdCOztBQ3BDQSxJQUFNQyxlQUFlQSxNQUFNO0FBQzFCLFFBQU07SUFBQ0M7RUFBMEIsSUFBSUMsR0FBR0MsT0FBT0MsSUFBSTtBQUNuRCxTQUFPSCwrQkFBK0I7QUFDdkM7O0FGTUEsSUFBTUksZUFBZUEsQ0FBQztFQUFDQztBQUFPLE1BQzdCdEMsa0NBQUF1QyxRQUFBQyxjQUFDLFVBQUE7RUFDQUMsTUFBTTtFQUNOQyxXQUFXLENBQUMsZUFBZSxjQUFjLDRCQUE0QjtFQUNyRUMsT0FBT2IsV0FBVyxtQkFBbUIsSUFBWWhDO0VBQ2pEd0M7QUFBQSxHQUVDTixhQUFhLElBQUlGLFdBQVcscUJBQXFCLElBQUlBLFdBQVcsa0JBQWtCLENBQ3BGO0FBR0QsSUFBT2MsdUJBQVFQOztBR25CZixJQUFBUSxxQkFBc0IzQyxRQUFBLGlCQUFBOztBQ0N0QixJQUFNaUMsU0FBb0I7RUFDekJXLFlBQVksQ0FBQztFQUNiQyxRQUFRLENBQUM7QUFDVjtBQUVBLElBQU1DLGVBQWVBLE1BQVk7QUFBQSxNQUFBQyx1QkFBQUMsd0JBQUFDO0FBQ2hDLFFBQU1DLGFBQXNDLENBQUM7QUFFN0MsT0FBQUgsd0JBQUlJLFNBQVNDLGNBQWdDLG9CQUFvQixPQUFBLFFBQUFMLDBCQUFBLFVBQTdEQSxzQkFBZ0VNLFNBQVM7QUFDNUVILGVBQVdJLGlCQUFpQjtFQUM3QjtBQUNBLE9BQUFOLHlCQUFJRyxTQUFTQyxjQUFnQyxxQkFBcUIsT0FBQSxRQUFBSiwyQkFBQSxVQUE5REEsdUJBQWlFSyxTQUFTO0FBQzdFSCxlQUFXSyxrQkFBa0I7RUFDOUI7QUFDQSxPQUFBTix5QkFBSUUsU0FBU0MsY0FBZ0Msb0JBQW9CLE9BQUEsUUFBQUgsMkJBQUEsVUFBN0RBLHVCQUFnRUksU0FBUztBQUM1RUgsZUFBV00saUJBQWlCO0VBQzdCO0FBRUF2QixTQUFPVyxhQUFhTTtBQUVwQixRQUFNTCxTQUE4QixDQUFDO0FBRXJDLFFBQU1ZLGNBQXVDTixTQUFTQyxjQUFnQyxjQUFjO0FBQ3BHLFFBQU1NLG9CQUE2Q1AsU0FBU0MsY0FBZ0MscUJBQXFCO0FBQ2pILE1BQUlLLGFBQWE7QUFDaEJaLFdBQU9jLFlBQVlGLFlBQVlHO0VBQ2hDO0FBQ0EsTUFBSUYsbUJBQW1CO0FBQ3RCYixXQUFPZ0Isa0JBQWtCSCxrQkFBa0JFO0VBQzVDO0FBRUEzQixTQUFPWSxTQUFTQTtBQUNqQjs7QUNsQ0EsSUFBQWlCLHFCQUFrQi9ELFFBQUFDLFFBQUEsZ0JBQUEsR0FBQSxDQUFBOztBQ0NYLElBQU0rRCxpQkFBaUI7O0FESTlCLElBQU1DLGNBQWNBLE1BQ25CRixtQ0FBQXpCLFFBQUFDLGNBQUMsT0FBQTtFQUFJMkIsSUFBRztBQUFBLEdBQ05yQyxXQUFXLFdBQVcsR0FDdkJrQyxtQ0FBQXpCLFFBQUFDLGNBQUMsTUFBQSxJQUFHLEdBQ0p3QixtQ0FBQXpCLFFBQUFDLGNBQUMsT0FBQTtFQUFJRSxXQUFXdUI7QUFBQSxHQUNmRCxtQ0FBQXpCLFFBQUFDLGNBQUMsU0FBQTtFQUFNNEIsTUFBSztFQUFVRCxJQUFHO0VBQW9CMUIsTUFBSztFQUFXcUIsT0FBTTtFQUFVUCxTQUFPO0FBQUEsQ0FBQyxHQUNyRlMsbUNBQUF6QixRQUFBQyxjQUFDLFNBQUE7RUFBTTZCLFNBQVE7RUFBb0JGLElBQUc7QUFBQSxHQUNwQ25DLGFBQWEsSUFBSUYsV0FBVyxTQUFTLElBQUlBLFdBQVcsYUFBYSxDQUNuRSxDQUNELEdBQ0FrQyxtQ0FBQXpCLFFBQUFDLGNBQUMsT0FBQTtFQUFJRSxXQUFXdUI7QUFBQSxHQUNmRCxtQ0FBQXpCLFFBQUFDLGNBQUMsU0FBQTtFQUFNNEIsTUFBSztFQUFXRCxJQUFHO0VBQXFCMUIsTUFBSztFQUFXcUIsT0FBTTtBQUFBLENBQVcsR0FDaEZFLG1DQUFBekIsUUFBQUMsY0FBQyxTQUFBO0VBQU02QixTQUFRO0VBQXFCRixJQUFHO0FBQUEsR0FDckNyQyxXQUFXLGNBQWMsQ0FDM0IsQ0FDRCxHQUNBa0MsbUNBQUF6QixRQUFBQyxjQUFDLE9BQUE7RUFBSUUsV0FBV3VCO0FBQUEsR0FDZkQsbUNBQUF6QixRQUFBQyxjQUFDLFNBQUE7RUFBTTRCLE1BQUs7RUFBVUQsSUFBRztFQUFvQjFCLE1BQUs7RUFBV3FCLE9BQU07QUFBQSxDQUFVLEdBQzdFRSxtQ0FBQXpCLFFBQUFDLGNBQUMsU0FBQTtFQUFNNkIsU0FBUTtFQUFvQkYsSUFBRztBQUFBLEdBQ3BDckMsV0FBVyxhQUFhLENBQzFCLENBQ0QsR0FDQWtDLG1DQUFBekIsUUFBQUMsY0FBQyxNQUFBLElBQUcsR0FDSndCLG1DQUFBekIsUUFBQUMsY0FBQyxNQUFBLElBQUcsR0FDSFYsV0FBVyxZQUFZLEdBQ3hCa0MsbUNBQUF6QixRQUFBQyxjQUFDLE1BQUEsSUFBRyxHQUNKd0IsbUNBQUF6QixRQUFBQyxjQUFDLFVBQUE7RUFBTzRCLE1BQUs7RUFBY0QsSUFBRztBQUFBLEdBQzdCSCxtQ0FBQXpCLFFBQUFDLGNBQUMsVUFBQTtFQUFPc0IsT0FBT2hDLFdBQVcsZUFBZTtBQUFBLEdBQUlBLFdBQVcsZUFBZSxDQUFFLEdBQ3pFa0MsbUNBQUF6QixRQUFBQyxjQUFDLFVBQUE7RUFBT3NCLE9BQU9oQyxXQUFXLGVBQWU7QUFBQSxHQUFJQSxXQUFXLGVBQWUsQ0FBRSxHQUN6RWtDLG1DQUFBekIsUUFBQUMsY0FBQyxVQUFBO0VBQU9zQixPQUFPaEMsV0FBVyxlQUFlO0FBQUEsR0FBSUEsV0FBVyxlQUFlLENBQUUsR0FDekVrQyxtQ0FBQXpCLFFBQUFDLGNBQUMsVUFBQTtFQUFPc0IsT0FBT2hDLFdBQVcsZUFBZTtBQUFBLEdBQUlBLFdBQVcsZUFBZSxDQUFFLEdBQ3pFa0MsbUNBQUF6QixRQUFBQyxjQUFDLFVBQUE7RUFBT3NCLE9BQU9oQyxXQUFXLGVBQWU7QUFBQSxHQUFJQSxXQUFXLGVBQWUsQ0FBRSxHQUN6RWtDLG1DQUFBekIsUUFBQUMsY0FBQyxVQUFBO0VBQU9zQixPQUFNO0FBQUEsR0FBSWhDLFdBQVcsaUJBQWlCLENBQUUsQ0FDakQsR0FDQWtDLG1DQUFBekIsUUFBQUMsY0FBQyxNQUFBLElBQUcsR0FDSndCLG1DQUFBekIsUUFBQUMsY0FBQyxNQUFBLElBQUcsR0FDSFYsV0FBVyxjQUFjLEdBQzFCa0MsbUNBQUF6QixRQUFBQyxjQUFDLE1BQUEsSUFBRyxHQUNKd0IsbUNBQUF6QixRQUFBQyxjQUFDLFlBQUE7RUFBUzRCLE1BQUs7RUFBZUQsSUFBRztFQUFxQkcsTUFBTTtBQUFBLENBQUcsQ0FDaEU7QUFHRCxJQUFPQyxzQkFBUUw7O0FFL0NmLElBQU1NLFVBQVdDLFdBQTZDO0FBQzdELFFBQU1DLE1BQWdCLENBQUE7QUFFdEIsUUFBTUMsUUFBa0NGLE1BQU1HLEtBQUssT0FBTztBQUFBLE1BQUFDLGFBQUFDLDJCQUN4Q0gsS0FBQSxHQUFBSTtBQUFBLE1BQUE7QUFBbEIsU0FBQUYsV0FBQUcsRUFBQSxHQUFBLEVBQUFELFNBQUFGLFdBQUFJLEVBQUEsR0FBQUMsUUFBeUI7QUFBQSxZQUFkQyxNQUFBSixPQUFBakI7QUFDVixZQUFNO1FBQUNQO1FBQVNhO1FBQU0zQjtNQUFJLElBQUkwQztBQUU5QixVQUFJMUMsU0FBUyxjQUFjLENBQUNjLFNBQVM7QUFDcEM7TUFDRDtBQUVBLFlBQU02QixVQUFrQjtBQUN4QixZQUFNQyxVQUFrQ0QsUUFBUUUsS0FBS2xCLElBQUk7QUFDekQsV0FBSWlCLFlBQUEsUUFBQUEsWUFBQSxTQUFBLFNBQUFBLFFBQVUsQ0FBQyxPQUFNLFFBQVc7QUFDL0I7TUFDRDtBQUVBLE9BQUEsRUFBR1gsSUFBSUEsSUFBSWEsTUFBTSxDQUFDLElBQUlGO0lBQ3ZCO0VBQUEsU0FBQUcsS0FBQTtBQUFBWCxlQUFBWSxFQUFBRCxHQUFBO0VBQUEsVUFBQTtBQUFBWCxlQUFBYSxFQUFBO0VBQUE7QUFFQSxTQUFPaEI7QUFDUjs7QUNwQkEsSUFBQWlCLHFCQUF3QnpGLFFBQUEsaUJBQUE7QUFFeEIsSUFBTTBGLE9BQUEsR0FBY0QsbUJBQUFFLFdBQUEsT0FBQUMsT0FBeUIvRixPQUFPLENBQUU7O0FDQXRELElBQUFnRyxxQkFBMEI3RixRQUFBLGlCQUFBO0FBRTFCLElBQU04RixpQkFBQSwyQkFBQTtBQUFBLE1BQUFDLE9BQUFDLGtCQUFpQixXQUFPQyxRQUE4QjtBQUMzRCxVQUFNQyxTQUFrQztNQUN2Q0Q7TUFDQUUsUUFBUTtNQUNSQyxRQUFRO01BQ1JDLGVBQWU7TUFDZkMsTUFBTTtNQUNOQyxRQUFRO01BQ1JDLFNBQVM7SUFDVjtBQUNBLFVBQU1DLFdBQUEsTUFBaUJmLElBQUl4RCxJQUFJZ0UsTUFBTTtBQUVyQyxXQUFPTztFQUNSLENBQUE7QUFBQSxTQUFBLFNBYk1YLGdCQUFBWSxJQUFBO0FBQUEsV0FBQVgsS0FBQVksTUFBQSxNQUFBQyxTQUFBO0VBQUE7QUFBQSxFQUFBO0FBZU4sSUFBTUMsT0FBQSwyQkFBQTtBQUFBLE1BQUFDLFFBQUFkLGtCQUFPLFdBQU92RCxPQUFlc0UsTUFBY0MsU0FBcUI7QUFDckUsVUFBTWQsU0FBNEI7TUFDakN6RDtNQUNBc0U7TUFDQVosUUFBUTtNQUNSQyxRQUFRO01BQ1JDLGVBQWU7SUFDaEI7QUFDQSxRQUFJVyxTQUFTO0FBQ1pkLGFBQU9jLFVBQVVBO0lBQ2xCO0FBQ0EsVUFBTVAsV0FBQSxNQUFpQmYsSUFBSXVCLGtCQUFrQmYsTUFBTTtBQUVuRCxXQUFPTztFQUNSLENBQUE7QUFBQSxTQUFBLFNBZE1JLE1BQUFLLEtBQUFDLEtBQUFDLEtBQUE7QUFBQSxXQUFBTixNQUFBSCxNQUFBLE1BQUFDLFNBQUE7RUFBQTtBQUFBLEVBQUE7QUFnQk4sSUFBTVMsU0FBQSwyQkFBQTtBQUFBLE1BQUFDLFFBQUF0QixrQkFBUyxXQUFPeEIsS0FBZStDLFFBQWdCQyxRQUFnQnBHLGNBQXdDO0FBQzVHLFVBQU07TUFBQ3FHO0lBQVUsSUFBSXpGLEdBQUdDLE9BQU9DLElBQUk7QUFFbkMsVUFBTXdGLFNBQW1CLENBQ3hCLFlBQ0EsY0FBQSxjQUFBOUIsT0FDYzZCLFVBQVUsR0FBQSxVQUFBN0IsT0FDZDJCLE1BQU0sR0FBQSxhQUFBM0IsT0FDSDRCLE1BQU0sRUFBQTVCLE9BQUd4RSxZQUFZLENBQUE7QUFDbkMsUUFBQXVHLGFBQUEvQyw0QkFFcUIsR0FBS2lCLG1CQUFBK0IsYUFBWXBELEdBQUcsRUFBRXFELFFBQVEsQ0FBQSxHQUFBQztBQUFBLFFBQUE7QUFBbkQsV0FBQUgsV0FBQTdDLEVBQUEsR0FBQSxFQUFBZ0QsU0FBQUgsV0FBQTVDLEVBQUEsR0FBQUMsUUFBc0Q7QUFBQSxjQUEzQyxDQUFDK0MsT0FBTzlELEVBQUUsSUFBQTZELE9BQUFsRTtBQUVwQjhELGVBQU9BLE9BQU9yQyxNQUFNLElBQUEsTUFBQU8sT0FBVW1DLFFBQVEsR0FBQyxLQUFBLEVBQUFuQyxPQUFNM0IsRUFBRTtNQUNoRDtJQUFBLFNBQUFxQixLQUFBO0FBQUFxQyxpQkFBQXBDLEVBQUFELEdBQUE7SUFBQSxVQUFBO0FBQUFxQyxpQkFBQW5DLEVBQUE7SUFBQTtBQUNBa0MsV0FBT0EsT0FBT3JDLE1BQU0sSUFBSSxXQUFXTyxPQUFPLElBQUk7QUFFOUMsUUFBSTtBQUFBLFVBQUFvQztBQUNILFlBQU12QixXQUFBLE1BQWlCWCxlQUF1QmxHLE9BQU87QUFFckQsVUFBSXFJO0FBQ0osV0FBQUQsa0JBQUl2QixTQUFTLE9BQU8sT0FBQSxRQUFBdUIsb0JBQUEsVUFBaEJBLGdCQUFtQkUsT0FBTztBQUM3QkQsa0JBQVV4QixTQUFTLE9BQU8sRUFBRXlCLE1BQU0sQ0FBQyxFQUFFQyxVQUFVLENBQUMsRUFBRUMsTUFBTUMsS0FBS0o7TUFDOUQ7QUFFQSxVQUFJQSxZQUFZLFFBQVc7QUFDMUIsYUFBS2pHLEdBQUdzRyxPQUFBLDJCQUFBMUMsT0FBMENoRyxTQUFPLFdBQUEsR0FBYTtVQUNyRTJJLEtBQUs7VUFDTGhHLE1BQU07UUFDUCxDQUFDO0FBRUQ7TUFDRDtBQUVBLFVBQUk7QUFBQSxZQUFBaUcsY0FBQUM7QUFDSCxjQUFNQyxTQUFBLE1BQWU3QixLQUFhakgsU0FBQSxHQUFBZ0csT0FBWXFDLFNBQU8sTUFBQSxFQUFBckMsT0FBTzhCLE9BQU9pQixLQUFLLElBQUksQ0FBQyxHQUFJL0csV0FBVyxhQUFhLENBQUM7QUFFMUcsY0FBSTRHLGVBQUFFLE9BQU8sTUFBTSxPQUFBLFFBQUFGLGlCQUFBLFNBQUEsU0FBYkEsYUFBZ0JFLFlBQVcsV0FBVztBQUN6Q0UsbUJBQVNDLFFBQVE3RyxHQUFHOEcsS0FBS0MsT0FBZW5KLE9BQU8sQ0FBQztRQUNqRCxZQUFBNkksZ0JBQVdDLE9BQU8sT0FBTyxPQUFBLFFBQUFELGtCQUFBLFVBQWRBLGNBQWlCTyxNQUFNO0FBQ2pDLGVBQUtoSCxHQUFHc0csT0FBQSwwQ0FBQTFDLE9BQWlEOEMsT0FBTyxPQUFPLEVBQUVNLElBQUksR0FBSTtZQUNoRlQsS0FBSztZQUNMaEcsTUFBTTtVQUNQLENBQUM7UUFDRixPQUFPO0FBQ04sZUFBS1AsR0FBR3NHLE9BQU8sa0RBQWtEO1lBQ2hFQyxLQUFLO1lBQ0xoRyxNQUFNO1VBQ1AsQ0FBQztRQUNGO01BQ0QsUUFBUTtBQUNQLGFBQUtQLEdBQUdzRyxPQUFBLDJCQUFBMUMsT0FBMENoRyxPQUFPLEdBQUk7VUFBQzJJLEtBQUs7VUFBT2hHLE1BQU07UUFBTyxDQUFDO01BQ3pGO0lBQ0QsUUFBUTtBQUNQLFdBQUtQLEdBQUdzRyxPQUFBLDJCQUFBMUMsT0FBMENoRyxPQUFPLEdBQUk7UUFBQzJJLEtBQUs7UUFBT2hHLE1BQU07TUFBTyxDQUFDO0lBQ3pGO0VBQ0QsQ0FBQTtBQUFBLFNBQUEsU0F4RE04RSxRQUFBNEIsS0FBQUMsS0FBQUMsS0FBQUMsS0FBQTtBQUFBLFdBQUE5QixNQUFBWCxNQUFBLE1BQUFDLFNBQUE7RUFBQTtBQUFBLEVBQUE7O0FDNUJOLElBQUl5QztBQUVKLElBQU1DLGFBQWMvRSxXQUF5QztBQUM1RCxRQUFNQyxNQUFnQkYsUUFBUUMsS0FBSztBQUNuQyxNQUFJLENBQUNDLElBQUlhLFFBQVE7QUFDaEIsU0FBS3JELEdBQUdzRyxPQUFPMUcsV0FBVyx1QkFBdUIsR0FBRztNQUNuRDJHLEtBQUs7TUFDTGhHLE1BQU07SUFDUCxDQUFDO0FBRUQ7RUFDRDtBQUVBLFFBQU1nSCxTQUE2QmxGLG9CQUFZO0FBQy9DLE1BQUlnRixTQUFTO0FBQ1pBLFlBQVFHLEtBQUtELE1BQU0sRUFBRUEsT0FBTyxNQUFNO0FBRWxDLGFBQUFFLEtBQUEsR0FBQUMsa0JBQTBCQyxPQUFPOUIsUUFBUTVGLE9BQU9ZLE1BQU0sR0FBQTRHLEtBQUFDLGdCQUFBckUsUUFBQW9FLE1BQUc7QUFBekQsWUFBVyxDQUFDeEYsSUFBSUwsS0FBSyxJQUFBOEYsZ0JBQUFELEVBQUE7QUFDcEJsRixZQUFNRyxLQUFBLElBQUFrQixPQUFTM0IsRUFBRSxDQUFFLEVBQUUyRixJQUFJaEcsS0FBZTtJQUN6QztBQUNBLGFBQUFpRyxNQUFBLEdBQUFDLG1CQUEwQkgsT0FBTzlCLFFBQVE1RixPQUFPVyxVQUFVLEdBQUFpSCxNQUFBQyxpQkFBQXpFLFFBQUF3RSxPQUFHO0FBQTdELFlBQVcsQ0FBQzVGLElBQUlMLEtBQUssSUFBQWtHLGlCQUFBRCxHQUFBO0FBQ3BCLFVBQUlqRyxVQUFVLE1BQU07QUFDbkJXLGNBQU1HLEtBQUEsSUFBQWtCLE9BQVMzQixFQUFFLENBQUUsRUFBRXFDLEtBQUssV0FBVyxJQUFJO01BQzFDO0lBQ0Q7QUFFQTtFQUNEO0FBRUErQyxZQUFVVSxFQUFFUixNQUFNLEVBQUVBLE9BQU87SUFDMUI5RyxPQUFPYixXQUFXLGFBQWE7SUFDL0JvSSxVQUFVO0lBQ1ZDLFdBQVc7SUFDWEMsT0FBT3BIO0lBQ1BxSCxTQUFTLENBQ1I7TUFDQ3BELE1BQU1uRixXQUFXLG9CQUFvQjtNQUNyQ3dJLFFBQWM7QUFDYkwsVUFBRSxJQUFJLEVBQUVSLE9BQU8sT0FBTztBQUV0QixjQUFNO1VBQ0wzRyxZQUFZO1lBQUNVO1lBQWdCQztZQUFpQkM7VUFBYztVQUM1RFgsUUFBUTtZQUFDYztVQUFTO1FBQ25CLElBQUkxQjtBQUVKLFlBQUk7VUFBQzRCO1FBQWUsSUFBSTVCLE9BQU9ZO0FBQy9CLFlBQUlnQixtQkFBbUJGLFdBQVc7QUFDakNFLDRCQUFBLElBQUErQixPQUFzQi9CLGVBQWU7UUFDdEM7QUFFQSxjQUFNMEQsU0FBbUIsQ0FBQTtBQUN6QixZQUFJakUsZ0JBQWdCO0FBQ25CaUUsaUJBQU9BLE9BQU9sQyxNQUFNLElBQUl2RCxhQUFhLElBQUlGLFdBQVcsU0FBUyxJQUFJQSxXQUFXLGFBQWE7UUFDMUY7QUFDQSxZQUFJMkIsaUJBQWlCO0FBQ3BCZ0UsaUJBQU9BLE9BQU9sQyxNQUFNLElBQUl6RCxXQUFXLGNBQWM7UUFDbEQ7QUFDQSxZQUFJNEIsZ0JBQWdCO0FBQ25CK0QsaUJBQU9BLE9BQU9sQyxNQUFNLElBQUl6RCxXQUFXLGFBQWE7UUFDakQ7QUFFQSxZQUFJLENBQUMyRixPQUFPbEMsUUFBUTtBQUNuQixlQUFLckQsR0FBR3NHLE9BQU8xRyxXQUFXLG1CQUFtQixHQUFHO1lBQy9DMkcsS0FBSztZQUNMaEcsTUFBTTtVQUNQLENBQUM7QUFFRDtRQUNEO0FBRUEsWUFBSThILE9BQWdCO0FBQ3BCLFlBQUksQ0FBQzFHLGFBQWEsQ0FBQ0UsaUJBQWlCO0FBQ25Dd0csaUJBQU9DLFFBQVExSSxXQUFXLHNCQUFzQixDQUFDO1FBQ2xEO0FBRUEsWUFBSXlJLE1BQU07QUFDVCxlQUFLaEQsT0FBTzdDLEtBQUsrQyxPQUFPb0IsS0FBSyxHQUFHLEdBQUdoRixjQUFBLFFBQUFBLGNBQUEsU0FBQUEsWUFBYSxJQUFJRSxvQkFBQSxRQUFBQSxvQkFBQSxTQUFBQSxrQkFBbUIsRUFBRTtRQUMxRTtNQUNEO0lBQ0QsR0FDQTtNQUNDa0QsTUFBTW5GLFdBQVcsb0JBQW9CO01BQ3JDd0ksUUFBYztBQUNiTCxVQUFFLElBQUksRUFBRVIsT0FBTyxPQUFPO01BQ3ZCO0lBQ0QsQ0FBQTtFQUVGLENBQUM7QUFDRjs7QVA1RkEsTUFBQSxHQUFLNUcsbUJBQUE0SCxTQUFRLEVBQUVDLEtBQUssU0FBU0MsSUFBSWxHLE9BQXNDO0FBQ3RFLFFBQU07SUFBQ21HO0lBQVUzSTtFQUEwQixJQUFJQyxHQUFHQyxPQUFPQyxJQUFJO0FBRTdELE1BQUl3SSxhQUFhLGFBQWEzSSwrQkFBK0IsT0FBTztBQUFBLFFBQUE0SSxhQUFBL0YsMkJBQzdDTCxNQUFNRyxLQUMzQixDQUNDLDREQUNBLHlEQUFBLEVBQ0NpRSxLQUFLLEdBQUcsQ0FDWCxDQUFBLEdBQUFpQztBQUFBLFFBQUE7QUFMQSxXQUFBRCxXQUFBN0YsRUFBQSxHQUFBLEVBQUE4RixTQUFBRCxXQUFBNUYsRUFBQSxHQUFBQyxRQUtHO0FBQUEsY0FMUTZGLFVBQUFELE9BQUFoSDtBQU1WaUgsZ0JBQVFDLE1BQ1BwSSxxQkFBYTtVQUNaTixTQUFTQSxNQUFZO0FBQ3BCa0gsdUJBQVcvRSxLQUFLO1VBQ2pCO1FBQ0QsQ0FBQyxDQUNGO01BQ0Q7SUFBQSxTQUFBZSxLQUFBO0FBQUFxRixpQkFBQXBGLEVBQUFELEdBQUE7SUFBQSxVQUFBO0FBQUFxRixpQkFBQW5GLEVBQUE7SUFBQTtFQUNEO0FBQ0QsQ0FBQzsiLAogICJuYW1lcyI6IFsicnJkUGFnZSIsICJ2ZXJzaW9uIiwgImltcG9ydF9leHRfZ2FkZ2V0IiwgIl9fdG9FU00iLCAicmVxdWlyZSIsICJnZXRJMThuTWVzc2FnZXMiLCAid2dVTFMiLCAid2luZG93IiwgImVkaXRTdW1tYXJ5IiwgImVyck5vUmV2aXNpb25Qcm92aWRlZCIsICJlcnJOb0l0ZW1Qcm92aWRlZCIsICJ3YXJuTm9SZWFzb25Qcm92aWRlZCIsICJoaWRlSXRlbXMiLCAiaGlkZUNvbnRlbnQiLCAiaGlkZUxvZyIsICJoaWRlVXNlcm5hbWUiLCAiaGlkZVN1bW1hcnkiLCAiaGlkZVJlYXNvbiIsICJoaWRlUmVhc29uUkQxIiwgImhpZGVSZWFzb25SRDIiLCAiaGlkZVJlYXNvblJEMyIsICJoaWRlUmVhc29uUkQ0IiwgImhpZGVSZWFzb25SRDUiLCAiaGlkZVJlYXNvbk90aGVyIiwgIm90aGVyUmVhc29ucyIsICJkaWFsb2dUaXRsZSIsICJkaWFsb2dCdXR0b25TdWJtaXQiLCAiZGlhbG9nQnV0dG9uQ2FuY2VsIiwgInJlcG9ydEJ1dHRvblRpdGxlIiwgInJlcG9ydEJ1dHRvblRleHQiLCAicmVwb3J0QnV0dG9uTG9nVGV4dCIsICJpMThuTWVzc2FnZXMiLCAiZ2V0TWVzc2FnZSIsICJrZXkiLCAiaXNTcGVjaWFsTG9nIiwgIndnQ2Fub25pY2FsU3BlY2lhbFBhZ2VOYW1lIiwgIm13IiwgImNvbmZpZyIsICJnZXQiLCAiUmVwb3J0QnV0dG9uIiwgIm9uQ2xpY2siLCAiZGVmYXVsdCIsICJjcmVhdGVFbGVtZW50IiwgInR5cGUiLCAiY2xhc3NOYW1lIiwgInRpdGxlIiwgIlJlcG9ydEJ1dHRvbl9kZWZhdWx0IiwgImltcG9ydF9leHRfZ2FkZ2V0NSIsICJjaGVja2JveGVzIiwgIm90aGVycyIsICJ1cGRhdGVDb25maWciLCAiX2RvY3VtZW50JHF1ZXJ5U2VsZWN0IiwgIl9kb2N1bWVudCRxdWVyeVNlbGVjdDIiLCAiX2RvY3VtZW50JHF1ZXJ5U2VsZWN0MyIsICJjaGVja0JveGVzIiwgImRvY3VtZW50IiwgInF1ZXJ5U2VsZWN0b3IiLCAiY2hlY2tlZCIsICJycmRIaWRlQ29udGVudCIsICJycmRIaWRlVXNlcm5hbWUiLCAicnJkSGlkZVN1bW1hcnkiLCAicmVhc29uSW5wdXQiLCAib3RoZXJSZWFzb25zSW5wdXQiLCAicnJkUmVhc29uIiwgInZhbHVlIiwgInJyZE90aGVyUmVhc29ucyIsICJpbXBvcnRfZXh0X2dhZGdldDIiLCAiY29udGVudFdyYXBwZXIiLCAiRGlhbG9nSW5uZXIiLCAiaWQiLCAibmFtZSIsICJodG1sRm9yIiwgInJvd3MiLCAiRGlhbG9nSW5uZXJfZGVmYXVsdCIsICJsb2FkSWRzIiwgIiRib2R5IiwgImlkcyIsICJib3hlcyIsICJmaW5kIiwgIl9pdGVyYXRvcjIiLCAiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIiLCAiX3N0ZXAyIiwgInMiLCAibiIsICJkb25lIiwgImJveCIsICJpZFJlZ2V4IiwgImlkQXJyYXkiLCAiZXhlYyIsICJsZW5ndGgiLCAiZXJyIiwgImUiLCAiZiIsICJpbXBvcnRfZXh0X2dhZGdldDMiLCAiYXBpIiwgImluaXRNd0FwaSIsICJjb25jYXQiLCAiaW1wb3J0X2V4dF9nYWRnZXQ0IiwgInF1ZXJ5UmV2aXNpb25zIiwgIl9yZWYiLCAiX2FzeW5jVG9HZW5lcmF0b3IiLCAidGl0bGVzIiwgInBhcmFtcyIsICJhY3Rpb24iLCAiZm9ybWF0IiwgImZvcm1hdHZlcnNpb24iLCAicHJvcCIsICJydnByb3AiLCAicnZzbG90cyIsICJyZXNwb25zZSIsICJfeCIsICJhcHBseSIsICJhcmd1bWVudHMiLCAiZWRpdCIsICJfcmVmMiIsICJ0ZXh0IiwgInN1bW1hcnkiLCAicG9zdFdpdGhFZGl0VG9rZW4iLCAiX3gyIiwgIl94MyIsICJfeDQiLCAic3VibWl0IiwgIl9yZWYzIiwgInRvSGlkZSIsICJyZWFzb24iLCAid2dQYWdlTmFtZSIsICJycmRBcnIiLCAiX2l0ZXJhdG9yMyIsICJ1bmlxdWVBcnJheSIsICJlbnRyaWVzIiwgIl9zdGVwMyIsICJpbmRleCIsICJfcmVzcG9uc2UkcXVlcnkiLCAiY29udGVudCIsICJwYWdlcyIsICJyZXZpc2lvbnMiLCAic2xvdHMiLCAibWFpbiIsICJub3RpZnkiLCAidGFnIiwgIl9yZXN1bHQkZWRpdCIsICJfcmVzdWx0JGVycm9yIiwgInJlc3VsdCIsICJqb2luIiwgImxvY2F0aW9uIiwgInJlcGxhY2UiLCAidXRpbCIsICJnZXRVcmwiLCAiY29kZSIsICJfeDUiLCAiX3g2IiwgIl94NyIsICJfeDgiLCAiJGRpYWxvZyIsICJzaG93RGlhbG9nIiwgImRpYWxvZyIsICJodG1sIiwgIl9pIiwgIl9PYmplY3QkZW50cmllcyIsICJPYmplY3QiLCAidmFsIiwgIl9pMiIsICJfT2JqZWN0JGVudHJpZXMyIiwgIiQiLCAibWluV2lkdGgiLCAibWluSGVpZ2h0IiwgImNsb3NlIiwgImJ1dHRvbnMiLCAiY2xpY2siLCAiY29udCIsICJjb25maXJtIiwgImdldEJvZHkiLCAidGhlbiIsICJycmQiLCAid2dBY3Rpb24iLCAiX2l0ZXJhdG9yNCIsICJfc3RlcDQiLCAiZWxlbWVudCIsICJhZnRlciJdCn0K diff --git a/dist/React/React.js b/dist/React/React.js deleted file mode 100644 index 9db587fbb..000000000 --- a/dist/React/React.js +++ /dev/null @@ -1,870 +0,0 @@ -/** - * SPDX-License-Identifier: BSD-3-Clause - * _addText: '{{Gadget Header|license=BSD|attribution=proteriax}}' - * - * @base {@link https://github.com/alex-kinokon/jsx-dom} - * @source {@link https://git.qiuwen.net.cn/InterfaceAdmin/QiuwenGadgets/src/branch/master/src/React} - * @license BSD-3-Clause {@link https://github.com/alex-kinokon/jsx-dom/blob/master/LICENSE} - */ - -/** - * BSD 3-Clause License - * - * Copyright (c) proteriax - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * 3. Neither the name of the copyright holder nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -/** - * +------------------------------------------------------------+ - * | === WARNING: GLOBAL GADGET FILE === | - * +------------------------------------------------------------+ - * | All changes should be made in the repository, | - * | otherwise they will be lost. | - * +------------------------------------------------------------+ - * | Changes to this page may affect many users. | - * | Please discuss changes by opening an issue before editing. | - * +------------------------------------------------------------+ - */ -/* */ - -(() => { - -"use strict"; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __commonJS = (cb, mod) => function __require() { - return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; -}; - -// node_modules/.pnpm/proxy-polyfill@0.3.2/node_modules/proxy-polyfill/proxy.min.js -var require_proxy_min = __commonJS({ - "node_modules/.pnpm/proxy-polyfill@0.3.2/node_modules/proxy-polyfill/proxy.min.js"() { - (function() { - function n() { - function v() { - return null; - } - function l(a) { - return a ? "object" === typeof a || "function" === typeof a : false; - } - function p(a) { - if (null !== a && !l(a)) throw new TypeError("Object prototype may only be an Object or null: " + a); - } - var q = null, e = Object, w = !!e.create || !({ __proto__: null } instanceof e), A = e.create || (w ? function(a) { - p(a); - return { __proto__: a }; - } : function(a) { - function c() { - } - p(a); - if (null === a) throw new SyntaxError("Native Object.create is required to create objects with null prototype"); - c.prototype = a; - return new c(); - }), B = e.getPrototypeOf || ([].__proto__ === Array.prototype ? function(a) { - a = a.__proto__; - return l(a) ? a : null; - } : v); - var m = function(a, c) { - function k() { - } - if (void 0 === (this && this instanceof m ? this.constructor : void 0)) throw new TypeError("Constructor Proxy requires 'new'"); - if (!l(a) || !l(c)) throw new TypeError("Cannot create proxy with a non-object as target or handler"); - q = function() { - a = null; - k = function(b) { - throw new TypeError("Cannot perform '" + b + "' on a proxy that has been revoked"); - }; - }; - setTimeout(function() { - q = null; - }, 0); - var g = c; - c = { get: null, set: null, apply: null, construct: null }; - for (var h in g) { - if (!(h in c)) throw new TypeError("Proxy polyfill does not support trap '" + h + "'"); - c[h] = g[h]; - } - "function" === typeof g && (c.apply = g.apply.bind(g)); - g = B(a); - var r = false, t = false; - if ("function" === typeof a) { - var f = function() { - var b = this && this.constructor === f, d = Array.prototype.slice.call(arguments); - k(b ? "construct" : "apply"); - return b && c.construct ? c.construct.call(this, a, d) : !b && c.apply ? c.apply(a, this, d) : b ? (d.unshift(a), new (a.bind.apply(a, d))()) : a.apply( - this, - d - ); - }; - r = true; - } else a instanceof Array ? (f = [], t = true) : f = w || null !== g ? A(g) : {}; - var x = c.get ? function(b) { - k("get"); - return c.get(this, b, f); - } : function(b) { - k("get"); - return this[b]; - }, C = c.set ? function(b, d) { - k("set"); - c.set(this, b, d, f); - } : function(b, d) { - k("set"); - this[b] = d; - }, y = {}; - e.getOwnPropertyNames(a).forEach(function(b) { - if (!((r || t) && b in f)) { - var d = e.getOwnPropertyDescriptor(a, b); - e.defineProperty(f, b, { enumerable: !!d.enumerable, get: x.bind(a, b), set: C.bind(a, b) }); - y[b] = true; - } - }); - h = true; - if (r || t) { - var D = e.setPrototypeOf || ([].__proto__ === Array.prototype ? function(b, d) { - p(d); - b.__proto__ = d; - return b; - } : v); - g && D(f, g) || (h = false); - } - if (c.get || !h) for (var u in a) y[u] || e.defineProperty(f, u, { get: x.bind(a, u) }); - e.seal(a); - e.seal(f); - return f; - }; - m.revocable = function(a, c) { - return { proxy: new m(a, c), revoke: q }; - }; - return m; - } - ; - var z = "undefined" !== typeof process && "[object process]" === {}.toString.call(process) || "undefined" !== typeof navigator && "ReactNative" === navigator.product ? global : self; - z.Proxy || (z.Proxy = n(), z.Proxy.revocable = z.Proxy.revocable); - })(); - } -}); - -// dist/React/React.js -require_proxy_min(); -function _createForOfIteratorHelper(r, e) { - var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; - if (!t) { - if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { - t && (r = t); - var n = 0, F = function() { - }; - return { s: F, n: function() { - return n >= r.length ? { done: true } : { done: false, value: r[n++] }; - }, e: function(r2) { - throw r2; - }, f: F }; - } - throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); - } - var o, a = true, u = false; - return { s: function() { - t = t.call(r); - }, n: function() { - var r2 = t.next(); - return a = r2.done, r2; - }, e: function(r2) { - u = true, o = r2; - }, f: function() { - try { - a || null == t.return || t.return(); - } finally { - if (u) throw o; - } - } }; -} -function _unsupportedIterableToArray(r, a) { - if (r) { - if ("string" == typeof r) return _arrayLikeToArray(r, a); - var t = {}.toString.call(r).slice(8, -1); - return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; - } -} -function _arrayLikeToArray(r, a) { - (null == a || a > r.length) && (a = r.length); - for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; - return n; -} -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames2 = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __export = (target, all) => { - for (var name in all) __defProp(target, name, { - get: all[name], - enumerable: true - }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - var _iterator = _createForOfIteratorHelper(__getOwnPropNames2(from)), _step; - try { - for (_iterator.s(); !(_step = _iterator.n()).done; ) { - let key = _step.value; - if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { - get: () => from[key], - enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable - }); - } - } catch (err) { - _iterator.e(err); - } finally { - _iterator.f(); - } - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { - value: true -}), mod); -//! src/React/React.ts -var React_exports = {}; -__export(React_exports, { - Component: () => Component, - Fragment: () => Fragment, - PureComponent: () => Component, - SVGNamespace: () => SVGNamespace, - ShadowRoot: () => ShadowRoot, - StrictMode: () => Fragment, - className: () => className, - createElement: () => createElement, - createFactory: () => createFactory, - createRef: () => createRef, - forwardRef: () => forwardRef, - h: () => createElement, - isRef: () => isRef, - jsx: () => jsx, - jsxs: () => jsx, - memo: () => identity, - preventDefault: () => preventDefault, - stopPropagation: () => stopPropagation, - styled: () => styled, - useCallback: () => identity, - useClassList: () => useClassList, - useImperativeHandle: () => useImperativeHandle, - useMemo: () => useMemo, - useRef: () => createRef, - useText: () => useText -}); -module.exports = __toCommonJS(React_exports); -var keys = Object.keys; -function identity(value) { - return value; -} -function isBoolean(val) { - return typeof val === "boolean"; -} -function isElement(val) { - return val && typeof val.nodeType === "number"; -} -function isString(val) { - return typeof val === "string"; -} -function isNumber(val) { - return typeof val === "number"; -} -function isObject(val) { - return typeof val === "object" ? val !== null : isFunction(val); -} -function isFunction(val) { - return typeof val === "function"; -} -function isComponentClass(Component2) { - return !!(Component2 && Component2.isComponent); -} -function isArrayLike(obj) { - return isObject(obj) && typeof obj.length === "number" && typeof obj.nodeType !== "number"; -} -function forEach(value, fn) { - if (!value) return; - var _iterator2 = _createForOfIteratorHelper(keys(value)), _step2; - try { - for (_iterator2.s(); !(_step2 = _iterator2.n()).done; ) { - const key = _step2.value; - fn(value[key], key); - } - } catch (err) { - _iterator2.e(err); - } finally { - _iterator2.f(); - } -} -function createRef() { - return Object.seal({ - current: null - }); -} -function isRef(maybeRef) { - return isObject(maybeRef) && "current" in maybeRef; -} -var isUnitlessNumber = { - animationIterationCount: 0, - borderImageOutset: 0, - borderImageSlice: 0, - borderImageWidth: 0, - boxFlex: 0, - boxFlexGroup: 0, - boxOrdinalGroup: 0, - columnCount: 0, - columns: 0, - flex: 0, - flexGrow: 0, - flexPositive: 0, - flexShrink: 0, - flexNegative: 0, - flexOrder: 0, - gridArea: 0, - gridRow: 0, - gridRowEnd: 0, - gridRowSpan: 0, - gridRowStart: 0, - gridColumn: 0, - gridColumnEnd: 0, - gridColumnSpan: 0, - gridColumnStart: 0, - fontWeight: 0, - lineClamp: 0, - lineHeight: 0, - opacity: 0, - order: 0, - orphans: 0, - tabSize: 0, - widows: 0, - zIndex: 0, - zoom: 0, - // SVG-related properties - fillOpacity: 0, - floodOpacity: 0, - stopOpacity: 0, - strokeDasharray: 0, - strokeDashoffset: 0, - strokeMiterlimit: 0, - strokeOpacity: 0, - strokeWidth: 0 -}; -function prefixKey(prefix, key) { - return prefix + key.charAt(0).toUpperCase() + key.substring(1); -} -var prefixes = ["Webkit", "ms", "Moz", "O"]; -keys(isUnitlessNumber).forEach((prop) => { - prefixes.forEach((prefix) => { - isUnitlessNumber[prefixKey(prefix, prop)] = 0; - }); -}); -var jsxDomType = Symbol.for("jsx-dom:type"); -var JsxDomType = /* @__PURE__ */ function(JsxDomType2) { - JsxDomType2["ShadowRoot"] = "ShadowRoot"; - return JsxDomType2; -}(JsxDomType || {}); -function ShadowRoot(_ref) { - let { - children, - ref, - ...attr2 - } = _ref; - return { - [jsxDomType]: JsxDomType.ShadowRoot, - ref, - attr: attr2, - children - }; -} -function isShadowRoot(el) { - return el != null && el[jsxDomType] === JsxDomType.ShadowRoot; -} -var SVGNamespace = "http://www.w3.org/2000/svg"; -var XLinkNamespace = "http://www.w3.org/1999/xlink"; -var XMLNamespace = "http://www.w3.org/XML/1998/namespace"; -function isVisibleChild(value) { - return !isBoolean(value) && value != null; -} -function className(value) { - if (Array.isArray(value)) { - return value.map(className).filter(Boolean).join(" "); - } else if (isObject(value)) { - if (Symbol.iterator in value) { - return className(Array.from(value)); - } - return keys(value).filter((k) => value[k]).join(" "); - } else if (isVisibleChild(value)) { - return "" + value; - } else { - return ""; - } -} -var svg = { - animate: 0, - circle: 0, - clipPath: 0, - defs: 0, - desc: 0, - ellipse: 0, - feBlend: 0, - feColorMatrix: 0, - feComponentTransfer: 0, - feComposite: 0, - feConvolveMatrix: 0, - feDiffuseLighting: 0, - feDisplacementMap: 0, - feDistantLight: 0, - feFlood: 0, - feFuncA: 0, - feFuncB: 0, - feFuncG: 0, - feFuncR: 0, - feGaussianBlur: 0, - feImage: 0, - feMerge: 0, - feMergeNode: 0, - feMorphology: 0, - feOffset: 0, - fePointLight: 0, - feSpecularLighting: 0, - feSpotLight: 0, - feTile: 0, - feTurbulence: 0, - filter: 0, - foreignObject: 0, - g: 0, - image: 0, - line: 0, - linearGradient: 0, - marker: 0, - mask: 0, - metadata: 0, - path: 0, - pattern: 0, - polygon: 0, - polyline: 0, - radialGradient: 0, - rect: 0, - stop: 0, - svg: 0, - switch: 0, - symbol: 0, - text: 0, - textPath: 0, - tspan: 0, - use: 0, - view: 0 -}; -var nonPresentationSVGAttributes = /^(a(ll|t|u)|base[FP]|c(al|lipPathU|on)|di|ed|ex|filter[RU]|g(lyphR|r)|ke|l(en|im)|ma(rker[HUW]|s)|n|pat|pr|point[^e]|re[^n]|s[puy]|st[^or]|ta|textL|vi|xC|y|z)/; -function createFactory(tag) { - return createElement.bind(null, tag); -} -function Fragment(attr2) { - const fragment = document.createDocumentFragment(); - appendChild(attr2.children, fragment); - return fragment; -} -var Component = class { - static isComponent = true; - constructor(props) { - this.props = props; - } - render() { - return null; - } -}; -function initComponentClass(Class, attr2, children) { - attr2 = { - ...attr2, - children - }; - const instance = new Class(attr2); - const node = instance.render(); - if ("ref" in attr2) { - attachRef(attr2.ref, instance); - } - return node; -} -function jsx(tag, _ref) { - let { - children, - ...attr2 - } = _ref; - if (!attr2.namespaceURI && svg[tag] === 0) { - attr2 = { - ...attr2, - namespaceURI: SVGNamespace - }; - } - let node; - if (isString(tag)) { - node = attr2.namespaceURI ? document.createElementNS(attr2.namespaceURI, tag) : document.createElement(tag); - attributes(attr2, node); - appendChild(children, node); - if (node instanceof window.HTMLSelectElement && attr2.value != null) { - if (attr2.multiple === true && Array.isArray(attr2.value)) { - const values = attr2.value.map((value) => String(value)); - node.querySelectorAll("option").forEach((option) => option.selected = values.includes(option.value)); - } else { - node.value = attr2.value; - } - } - attachRef(attr2.ref, node); - } else if (isFunction(tag)) { - if (isObject(tag.defaultProps)) { - attr2 = { - ...tag.defaultProps, - ...attr2 - }; - } - node = isComponentClass(tag) ? initComponentClass(tag, attr2, children) : tag({ - ...attr2, - children - }); - } else { - throw new TypeError("Invalid JSX element type: ".concat(tag)); - } - return node; -} -function createElement(tag, attr2) { - for (var _len = arguments.length, children = new Array(_len > 2 ? _len - 2 : 0), _key2 = 2; _key2 < _len; _key2++) { - children[_key2 - 2] = arguments[_key2]; - } - if (isString(attr2) || Array.isArray(attr2)) { - children.unshift(attr2); - attr2 = {}; - } - attr2 = attr2 || {}; - if (attr2.children != null && !children.length) { - ({ - children, - ...attr2 - } = attr2); - } - return jsx(tag, { - ...attr2, - children - }, attr2.key); -} -function attachRef(ref, node) { - if (isRef(ref)) { - ref.current = node; - } else if (isFunction(ref)) { - ref(node); - } -} -function appendChild(child, node) { - if (isArrayLike(child)) { - appendChildren(child, node); - } else if (isString(child) || isNumber(child)) { - appendChildToNode(document.createTextNode(child), node); - } else if (child === null) { - appendChildToNode(document.createComment(""), node); - } else if (isElement(child)) { - appendChildToNode(child, node); - } else if (isShadowRoot(child)) { - const shadowRoot = node.attachShadow(child.attr); - appendChild(child.children, shadowRoot); - attachRef(child.ref, shadowRoot); - } -} -function appendChildren(children, node) { - for (var _i = 0, _arr = [...children]; _i < _arr.length; _i++) { - const child = _arr[_i]; - appendChild(child, node); - } - return node; -} -function appendChildToNode(child, node) { - if (node instanceof window.HTMLTemplateElement) { - node.content.appendChild(child); - } else { - node.appendChild(child); - } -} -function normalizeAttribute(s, separator) { - return s.replace(/[A-Z]/g, (match) => separator + match.toLowerCase()); -} -function style(node, value) { - if (value == null || value === false) ; - else if (Array.isArray(value)) { - value.forEach((v) => style(node, v)); - } else if (isString(value)) { - node.setAttribute("style", value); - } else if (isObject(value)) { - forEach(value, (val, key) => { - if (key.indexOf("-") === 0) { - node.style.setProperty(key, val); - } else if (isNumber(val) && isUnitlessNumber[key] !== 0) { - node.style[key] = val + "px"; - } else { - node.style[key] = val; - } - }); - } -} -function attribute(key, value, node) { - switch (key) { - case "xlinkActuate": - case "xlinkArcrole": - case "xlinkHref": - case "xlinkRole": - case "xlinkShow": - case "xlinkTitle": - case "xlinkType": - attrNS(node, XLinkNamespace, normalizeAttribute(key, ":"), value); - return; - case "xmlnsXlink": - attr(node, normalizeAttribute(key, ":"), value); - return; - case "xmlBase": - case "xmlLang": - case "xmlSpace": - attrNS(node, XMLNamespace, normalizeAttribute(key, ":"), value); - return; - } - switch (key) { - case "htmlFor": - attr(node, "for", value); - return; - case "dataset": - forEach(value, (dataValue, dataKey) => { - if (dataValue != null) { - node.dataset[dataKey] = dataValue; - } - }); - return; - case "innerHTML": - case "innerText": - case "textContent": - if (isVisibleChild(value)) { - node[key] = value; - } - return; - case "dangerouslySetInnerHTML": - if (isObject(value)) { - node.innerHTML = value["__html"]; - } - return; - case "value": - if (value == null || node instanceof window.HTMLSelectElement) { - return; - } else if (node instanceof window.HTMLTextAreaElement) { - node.value = value; - return; - } - break; - case "spellCheck": - node.spellcheck = value; - return; - case "class": - case "className": - if (isFunction(value)) { - value(node); - } else { - attr(node, "class", className(value)); - } - return; - case "ref": - case "namespaceURI": - return; - case "style": - style(node, value); - return; - case "on": - case "onCapture": - forEach(value, (eventHandler, eventName) => { - node.addEventListener(eventName, eventHandler, key === "onCapture"); - }); - return; - } - if (isFunction(value)) { - if (key[0] === "o" && key[1] === "n") { - let attribute2 = key.toLowerCase(); - const useCapture = attribute2.endsWith("capture"); - if (attribute2 === "ondoubleclick") { - attribute2 = "ondblclick"; - } else if (useCapture && attribute2 === "ondoubleclickcapture") { - attribute2 = "ondblclickcapture"; - } - if (!useCapture && node[attribute2] === null) { - node[attribute2] = value; - } else if (useCapture) { - node.addEventListener(attribute2.substring(2, attribute2.length - 7), value, true); - } else { - let eventName; - if (attribute2 in window) { - const standardEventName = attribute2.substring(2); - eventName = standardEventName; - } else { - const customEventName = attribute2[2] + key.slice(3); - eventName = customEventName; - } - node.addEventListener(eventName, value); - } - } - } else if (isObject(value)) { - node[key] = value; - } else if (value === true) { - attr(node, key, ""); - } else if (value !== false && value != null) { - if (node instanceof SVGElement && !nonPresentationSVGAttributes.test(key)) { - attr(node, normalizeAttribute(key, "-"), value); - } else { - attr(node, key, value); - } - } -} -function attr(node, key, value) { - node.setAttribute(key, value); -} -function attrNS(node, namespace, key, value) { - node.setAttributeNS(namespace, key, value); -} -function attributes(attr2, node) { - var _iterator3 = _createForOfIteratorHelper(keys(attr2)), _step3; - try { - for (_iterator3.s(); !(_step3 = _iterator3.n()).done; ) { - const key = _step3.value; - attribute(key, attr2[key], node); - } - } catch (err) { - _iterator3.e(err); - } finally { - _iterator3.f(); - } - return node; -} -function useText(initialValue) { - const text = new Text(); - Object.defineProperty(text, "toString", { - value() { - return this.textContent; - } - }); - function setText(value) { - text.textContent = value; - } - if (initialValue != null) { - setText(initialValue); - } - return [text, setText]; -} -function useClassList(initialValue) { - const div = document.createElement("div"); - if (initialValue != null) { - div.className = className(initialValue); - } - let list = div.classList; - function ClassList(value) { - value.setAttribute("class", list.value); - list = value.classList; - } - Object.defineProperties(ClassList, Object.getOwnPropertyDescriptors({ - get size() { - return list.length; - }, - get value() { - return list.value; - }, - add() { - list.add(...arguments); - }, - remove() { - list.remove(...arguments); - }, - toggle(token, force) { - list.toggle(token, force); - }, - contains(token) { - return list.contains(token); - } - })); - return ClassList; -} -function useMemo(factory) { - return factory(); -} -function forwardRef(render) { - return (_ref) => { - let { - ref, - ...props - } = _ref; - return render(props, ref !== null && ref !== void 0 ? ref : createRef()); - }; -} -function useImperativeHandle(ref, init) { - attachRef(ref, init()); -} -var cache = /* @__PURE__ */ new Map(); -var createStyledComponent = (name) => function(list) { - for (var _len = arguments.length, interpolations = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - interpolations[_key - 1] = arguments[_key]; - } - return (_ref) => { - let { - style: style2, - ...props - } = _ref; - const lastIndex = list.length - 1; - const css = list.slice(0, lastIndex).reduce((p, s, i) => { - const interpolation = interpolations[i]; - const current = typeof interpolation === "function" ? interpolation(props) : interpolation; - return p + s + current; - }, "") + list[lastIndex]; - return createElement(name, { - style: [css, style2], - ...props - }); - }; -}; -var baseStyled = (customComponent) => createStyledComponent(customComponent); -var styled = /* @__PURE__ */ new Proxy(baseStyled, { - get(_, name) { - return setIfAbsent(cache, name, () => createStyledComponent(name)); - } -}); -function setIfAbsent(map, key, getValue) { - if (map.has(key)) { - return map.get(key); - } else { - const value = getValue(key); - map.set(key, value); - return value; - } -} -function preventDefault(event) { - event.preventDefault(); - return event; -} -function stopPropagation(event) { - event.stopPropagation(); - return event; -} - -})(); - -/* */ - -//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsibm9kZV9tb2R1bGVzLy5wbnBtL3Byb3h5LXBvbHlmaWxsQDAuMy4yL25vZGVfbW9kdWxlcy9wcm94eS1wb2x5ZmlsbC9wcm94eS5taW4uanMiLCAic3JjL1JlYWN0L1JlYWN0LnRzIiwgIm5vZGVfbW9kdWxlcy8ucG5wbS9qc3gtZG9tQDguMS42L25vZGVfbW9kdWxlcy9qc3gtZG9tL2luZGV4LmpzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIoZnVuY3Rpb24oKXtmdW5jdGlvbiBuKCl7ZnVuY3Rpb24gdigpe3JldHVybiBudWxsfWZ1bmN0aW9uIGwoYSl7cmV0dXJuIGE/XCJvYmplY3RcIj09PXR5cGVvZiBhfHxcImZ1bmN0aW9uXCI9PT10eXBlb2YgYTohMX1mdW5jdGlvbiBwKGEpe2lmKG51bGwhPT1hJiYhbChhKSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiT2JqZWN0IHByb3RvdHlwZSBtYXkgb25seSBiZSBhbiBPYmplY3Qgb3IgbnVsbDogXCIrYSk7fXZhciBxPW51bGwsZT1PYmplY3Qsdz0hIWUuY3JlYXRlfHwhKHtfX3Byb3RvX186bnVsbH1pbnN0YW5jZW9mIGUpLEE9ZS5jcmVhdGV8fCh3P2Z1bmN0aW9uKGEpe3AoYSk7cmV0dXJue19fcHJvdG9fXzphfX06ZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYygpe31wKGEpO2lmKG51bGw9PT1hKXRocm93IG5ldyBTeW50YXhFcnJvcihcIk5hdGl2ZSBPYmplY3QuY3JlYXRlIGlzIHJlcXVpcmVkIHRvIGNyZWF0ZSBvYmplY3RzIHdpdGggbnVsbCBwcm90b3R5cGVcIik7Yy5wcm90b3R5cGU9YTtyZXR1cm4gbmV3IGN9KSxcbkI9ZS5nZXRQcm90b3R5cGVPZnx8KFtdLl9fcHJvdG9fXz09PUFycmF5LnByb3RvdHlwZT9mdW5jdGlvbihhKXthPWEuX19wcm90b19fO3JldHVybiBsKGEpP2E6bnVsbH06dik7dmFyIG09ZnVuY3Rpb24oYSxjKXtmdW5jdGlvbiBrKCl7fWlmKHZvaWQgMD09PSh0aGlzJiZ0aGlzIGluc3RhbmNlb2YgbT90aGlzLmNvbnN0cnVjdG9yOnZvaWQgMCkpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNvbnN0cnVjdG9yIFByb3h5IHJlcXVpcmVzICduZXcnXCIpO2lmKCFsKGEpfHwhbChjKSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNyZWF0ZSBwcm94eSB3aXRoIGEgbm9uLW9iamVjdCBhcyB0YXJnZXQgb3IgaGFuZGxlclwiKTtxPWZ1bmN0aW9uKCl7YT1udWxsO2s9ZnVuY3Rpb24oYil7dGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBwZXJmb3JtICdcIitiK1wiJyBvbiBhIHByb3h5IHRoYXQgaGFzIGJlZW4gcmV2b2tlZFwiKTt9fTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cT1udWxsfSwwKTt2YXIgZz1cbmM7Yz17Z2V0Om51bGwsc2V0Om51bGwsYXBwbHk6bnVsbCxjb25zdHJ1Y3Q6bnVsbH07Zm9yKHZhciBoIGluIGcpe2lmKCEoaCBpbiBjKSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiUHJveHkgcG9seWZpbGwgZG9lcyBub3Qgc3VwcG9ydCB0cmFwICdcIitoK1wiJ1wiKTtjW2hdPWdbaF19XCJmdW5jdGlvblwiPT09dHlwZW9mIGcmJihjLmFwcGx5PWcuYXBwbHkuYmluZChnKSk7Zz1CKGEpO3ZhciByPSExLHQ9ITE7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGEpe3ZhciBmPWZ1bmN0aW9uKCl7dmFyIGI9dGhpcyYmdGhpcy5jb25zdHJ1Y3Rvcj09PWYsZD1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpO2soYj9cImNvbnN0cnVjdFwiOlwiYXBwbHlcIik7cmV0dXJuIGImJmMuY29uc3RydWN0P2MuY29uc3RydWN0LmNhbGwodGhpcyxhLGQpOiFiJiZjLmFwcGx5P2MuYXBwbHkoYSx0aGlzLGQpOmI/KGQudW5zaGlmdChhKSxuZXcgKGEuYmluZC5hcHBseShhLGQpKSk6YS5hcHBseSh0aGlzLFxuZCl9O3I9ITB9ZWxzZSBhIGluc3RhbmNlb2YgQXJyYXk/KGY9W10sdD0hMCk6Zj13fHxudWxsIT09Zz9BKGcpOnt9O3ZhciB4PWMuZ2V0P2Z1bmN0aW9uKGIpe2soXCJnZXRcIik7cmV0dXJuIGMuZ2V0KHRoaXMsYixmKX06ZnVuY3Rpb24oYil7ayhcImdldFwiKTtyZXR1cm4gdGhpc1tiXX0sQz1jLnNldD9mdW5jdGlvbihiLGQpe2soXCJzZXRcIik7Yy5zZXQodGhpcyxiLGQsZil9OmZ1bmN0aW9uKGIsZCl7ayhcInNldFwiKTt0aGlzW2JdPWR9LHk9e307ZS5nZXRPd25Qcm9wZXJ0eU5hbWVzKGEpLmZvckVhY2goZnVuY3Rpb24oYil7aWYoISgocnx8dCkmJmIgaW4gZikpe3ZhciBkPWUuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGEsYik7ZS5kZWZpbmVQcm9wZXJ0eShmLGIse2VudW1lcmFibGU6ISFkLmVudW1lcmFibGUsZ2V0OnguYmluZChhLGIpLHNldDpDLmJpbmQoYSxiKX0pO3lbYl09ITB9fSk7aD0hMDtpZihyfHx0KXt2YXIgRD1lLnNldFByb3RvdHlwZU9mfHwoW10uX19wcm90b19fPT09XG5BcnJheS5wcm90b3R5cGU/ZnVuY3Rpb24oYixkKXtwKGQpO2IuX19wcm90b19fPWQ7cmV0dXJuIGJ9OnYpO2cmJkQoZixnKXx8KGg9ITEpfWlmKGMuZ2V0fHwhaClmb3IodmFyIHUgaW4gYSl5W3VdfHxlLmRlZmluZVByb3BlcnR5KGYsdSx7Z2V0OnguYmluZChhLHUpfSk7ZS5zZWFsKGEpO2Uuc2VhbChmKTtyZXR1cm4gZn07bS5yZXZvY2FibGU9ZnVuY3Rpb24oYSxjKXtyZXR1cm57cHJveHk6bmV3IG0oYSxjKSxyZXZva2U6cX19O3JldHVybiBtfTt2YXIgej1cInVuZGVmaW5lZFwiIT09dHlwZW9mIHByb2Nlc3MmJlwiW29iamVjdCBwcm9jZXNzXVwiPT09e30udG9TdHJpbmcuY2FsbChwcm9jZXNzKXx8XCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBuYXZpZ2F0b3ImJlwiUmVhY3ROYXRpdmVcIj09PW5hdmlnYXRvci5wcm9kdWN0P2dsb2JhbDpzZWxmO3ouUHJveHl8fCh6LlByb3h5PW4oKSx6LlByb3h5LnJldm9jYWJsZT16LlByb3h5LnJldm9jYWJsZSk7fSkoKTtcbiIsICIvLyDlpoLmnpzkvb/nlKgganN4LWRvbe+8jOWImeWPlua2iOazqOmHiuS7peS4i+ihjCAvIFRvIFVzZSBqc3gtZG9tLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lXG5leHBvcnQgKiBmcm9tICdqc3gtZG9tJztcbiIsICIvKiBlc2xpbnQtZGlzYWJsZSAqL1xuY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzO1xuZnVuY3Rpb24gaWRlbnRpdHkodmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlO1xufVxuZnVuY3Rpb24gaXNCb29sZWFuKHZhbCkge1xuICByZXR1cm4gdHlwZW9mIHZhbCA9PT0gXCJib29sZWFuXCI7XG59XG5mdW5jdGlvbiBpc0VsZW1lbnQodmFsKSB7XG4gIHJldHVybiB2YWwgJiYgdHlwZW9mIHZhbC5ub2RlVHlwZSA9PT0gXCJudW1iZXJcIjtcbn1cbmZ1bmN0aW9uIGlzU3RyaW5nKHZhbCkge1xuICByZXR1cm4gdHlwZW9mIHZhbCA9PT0gXCJzdHJpbmdcIjtcbn1cbmZ1bmN0aW9uIGlzTnVtYmVyKHZhbCkge1xuICByZXR1cm4gdHlwZW9mIHZhbCA9PT0gXCJudW1iZXJcIjtcbn1cbmZ1bmN0aW9uIGlzT2JqZWN0KHZhbCkge1xuICByZXR1cm4gdHlwZW9mIHZhbCA9PT0gXCJvYmplY3RcIiA/IHZhbCAhPT0gbnVsbCA6IGlzRnVuY3Rpb24odmFsKTtcbn1cbmZ1bmN0aW9uIGlzRnVuY3Rpb24odmFsKSB7XG4gIHJldHVybiB0eXBlb2YgdmFsID09PSBcImZ1bmN0aW9uXCI7XG59XG5mdW5jdGlvbiBpc0NvbXBvbmVudENsYXNzKENvbXBvbmVudCkge1xuICByZXR1cm4gISEoQ29tcG9uZW50ICYmIENvbXBvbmVudC5pc0NvbXBvbmVudCk7XG59XG5mdW5jdGlvbiBpc0FycmF5TGlrZShvYmopIHtcbiAgcmV0dXJuIChcbiAgICBpc09iamVjdChvYmopICYmXG4gICAgdHlwZW9mIG9iai5sZW5ndGggPT09IFwibnVtYmVyXCIgJiZcbiAgICB0eXBlb2Ygb2JqLm5vZGVUeXBlICE9PSBcIm51bWJlclwiXG4gICk7XG59XG5mdW5jdGlvbiBmb3JFYWNoKHZhbHVlLCBmbikge1xuICBpZiAoIXZhbHVlKSByZXR1cm47XG4gIGZvciAoY29uc3Qga2V5IG9mIGtleXModmFsdWUpKSB7XG4gICAgZm4odmFsdWVba2V5XSwga2V5KTtcbiAgfVxufVxuXG5mdW5jdGlvbiBjcmVhdGVSZWYoKSB7XG4gIHJldHVybiBPYmplY3Quc2VhbCh7XG4gICAgY3VycmVudDogbnVsbCxcbiAgfSk7XG59XG5mdW5jdGlvbiBpc1JlZihtYXliZVJlZikge1xuICByZXR1cm4gaXNPYmplY3QobWF5YmVSZWYpICYmIFwiY3VycmVudFwiIGluIG1heWJlUmVmO1xufVxuXG4vKipcbiAqIENvcHlyaWdodCAoYykgRmFjZWJvb2ssIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGZvdW5kIG9uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvYmxvYi9iODdhYWJkZmUxYjc0NjFlNzMzMWFiYjM2MDFkOWU2YmIyNzU0NGJjL0xJQ0VOU0VcbiAqL1xuXG4vKipcbiAqIENTUyBwcm9wZXJ0aWVzIHdoaWNoIGFjY2VwdCBudW1iZXJzIGJ1dCBhcmUgbm90IGluIHVuaXRzIG9mIFwicHhcIi5cbiAqL1xuY29uc3QgaXNVbml0bGVzc051bWJlciA9IHtcbiAgYW5pbWF0aW9uSXRlcmF0aW9uQ291bnQ6IDAsXG4gIGJvcmRlckltYWdlT3V0c2V0OiAwLFxuICBib3JkZXJJbWFnZVNsaWNlOiAwLFxuICBib3JkZXJJbWFnZVdpZHRoOiAwLFxuICBib3hGbGV4OiAwLFxuICBib3hGbGV4R3JvdXA6IDAsXG4gIGJveE9yZGluYWxHcm91cDogMCxcbiAgY29sdW1uQ291bnQ6IDAsXG4gIGNvbHVtbnM6IDAsXG4gIGZsZXg6IDAsXG4gIGZsZXhHcm93OiAwLFxuICBmbGV4UG9zaXRpdmU6IDAsXG4gIGZsZXhTaHJpbms6IDAsXG4gIGZsZXhOZWdhdGl2ZTogMCxcbiAgZmxleE9yZGVyOiAwLFxuICBncmlkQXJlYTogMCxcbiAgZ3JpZFJvdzogMCxcbiAgZ3JpZFJvd0VuZDogMCxcbiAgZ3JpZFJvd1NwYW46IDAsXG4gIGdyaWRSb3dTdGFydDogMCxcbiAgZ3JpZENvbHVtbjogMCxcbiAgZ3JpZENvbHVtbkVuZDogMCxcbiAgZ3JpZENvbHVtblNwYW46IDAsXG4gIGdyaWRDb2x1bW5TdGFydDogMCxcbiAgZm9udFdlaWdodDogMCxcbiAgbGluZUNsYW1wOiAwLFxuICBsaW5lSGVpZ2h0OiAwLFxuICBvcGFjaXR5OiAwLFxuICBvcmRlcjogMCxcbiAgb3JwaGFuczogMCxcbiAgdGFiU2l6ZTogMCxcbiAgd2lkb3dzOiAwLFxuICB6SW5kZXg6IDAsXG4gIHpvb206IDAsXG4gIC8vIFNWRy1yZWxhdGVkIHByb3BlcnRpZXNcbiAgZmlsbE9wYWNpdHk6IDAsXG4gIGZsb29kT3BhY2l0eTogMCxcbiAgc3RvcE9wYWNpdHk6IDAsXG4gIHN0cm9rZURhc2hhcnJheTogMCxcbiAgc3Ryb2tlRGFzaG9mZnNldDogMCxcbiAgc3Ryb2tlTWl0ZXJsaW1pdDogMCxcbiAgc3Ryb2tlT3BhY2l0eTogMCxcbiAgc3Ryb2tlV2lkdGg6IDAsXG59O1xuXG4vKipcbiAqIEBwYXJhbSBwcmVmaXggdmVuZG9yLXNwZWNpZmljIHByZWZpeCwgZWc6IFdlYmtpdFxuICogQHBhcmFtIGtleSBzdHlsZSBuYW1lLCBlZzogdHJhbnNpdGlvbkR1cmF0aW9uXG4gKiBAcmV0dXJuIHN0eWxlIG5hbWUgcHJlZml4ZWQgd2l0aCBgcHJlZml4YCwgcHJvcGVybHkgY2FtZWxDYXNlZCwgZWc6XG4gKiBXZWJraXRUcmFuc2l0aW9uRHVyYXRpb25cbiAqL1xuZnVuY3Rpb24gcHJlZml4S2V5KHByZWZpeCwga2V5KSB7XG4gIHJldHVybiBwcmVmaXggKyBrZXkuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBrZXkuc3Vic3RyaW5nKDEpO1xufVxuXG4vKipcbiAqIFN1cHBvcnQgc3R5bGUgbmFtZXMgdGhhdCBtYXkgY29tZSBwYXNzZWQgaW4gcHJlZml4ZWQgYnkgYWRkaW5nIHBlcm11dGF0aW9uc1xuICogb2YgdmVuZG9yIHByZWZpeGVzLlxuICovXG5jb25zdCBwcmVmaXhlcyA9IFtcIldlYmtpdFwiLCBcIm1zXCIsIFwiTW96XCIsIFwiT1wiXTtcbi8vIFVzaW5nIE9iamVjdC5rZXlzIGhlcmUsIG9yIGVsc2UgdGhlIHZhbmlsbGEgZm9yLWluIGxvb3AgbWFrZXMgSUU4IGdvIGludG8gYW5cbi8vIGluZmluaXRlIGxvb3AsIGJlY2F1c2UgaXQgaXRlcmF0ZXMgb3ZlciB0aGUgbmV3bHkgYWRkZWQgcHJvcHMgdG9vLlxua2V5cyhpc1VuaXRsZXNzTnVtYmVyKS5mb3JFYWNoKChwcm9wKSA9PiB7XG4gIHByZWZpeGVzLmZvckVhY2goKHByZWZpeCkgPT4ge1xuICAgIGlzVW5pdGxlc3NOdW1iZXJbcHJlZml4S2V5KHByZWZpeCwgcHJvcCldID0gMDsgLy8gaXNVbml0bGVzc051bWJlcltwcm9wXVxuICB9KTtcbn0pO1xuXG5jb25zdCBqc3hEb21UeXBlID0gU3ltYm9sLmZvcihcImpzeC1kb206dHlwZVwiKTtcbnZhciBKc3hEb21UeXBlID0gLyojX19QVVJFX18qLyAoZnVuY3Rpb24gKEpzeERvbVR5cGUpIHtcbiAgSnN4RG9tVHlwZVtcIlNoYWRvd1Jvb3RcIl0gPSBcIlNoYWRvd1Jvb3RcIjtcbiAgcmV0dXJuIEpzeERvbVR5cGU7XG59KShKc3hEb21UeXBlIHx8IHt9KTtcbmZ1bmN0aW9uIFNoYWRvd1Jvb3QoX3JlZikge1xuICBsZXQgeyBjaGlsZHJlbiwgcmVmLCAuLi5hdHRyIH0gPSBfcmVmO1xuICByZXR1cm4ge1xuICAgIFtqc3hEb21UeXBlXTogSnN4RG9tVHlwZS5TaGFkb3dSb290LFxuICAgIHJlZixcbiAgICBhdHRyLFxuICAgIGNoaWxkcmVuLFxuICB9O1xufVxuZnVuY3Rpb24gaXNTaGFkb3dSb290KGVsKSB7XG4gIHJldHVybiBlbCAhPSBudWxsICYmIGVsW2pzeERvbVR5cGVdID09PSBKc3hEb21UeXBlLlNoYWRvd1Jvb3Q7XG59XG5cbmNvbnN0IFNWR05hbWVzcGFjZSA9IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIjtcbmNvbnN0IFhMaW5rTmFtZXNwYWNlID0gXCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCI7XG5jb25zdCBYTUxOYW1lc3BhY2UgPSBcImh0dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4L25hbWVzcGFjZVwiO1xuXG4vLyBodHRwczovL2ZhY2Vib29rLmdpdGh1Yi5pby9yZWFjdC9kb2NzL2pzeC1pbi1kZXB0aC5odG1sI2Jvb2xlYW5zLW51bGwtYW5kLXVuZGVmaW5lZC1hcmUtaWdub3JlZFxuLy8gRW11bGF0ZSBKU1ggRXhwcmVzc2lvbiBsb2dpYyB0byBpZ25vcmUgY2VydGFpbiB0eXBlIG9mIGNoaWxkcmVuIG9yIGNsYXNzTmFtZS5cbmZ1bmN0aW9uIGlzVmlzaWJsZUNoaWxkKHZhbHVlKSB7XG4gIHJldHVybiAhaXNCb29sZWFuKHZhbHVlKSAmJiB2YWx1ZSAhPSBudWxsO1xufVxuXG4vKipcbiAqIENvbnZlcnQgYSBgdmFsdWVgIHRvIGEgY2xhc3NOYW1lIHN0cmluZy5cbiAqIGB2YWx1ZWAgY2FuIGJlIGEgc3RyaW5nLCBhbiBhcnJheSBvciBhIGBEaWN0aW9uYXJ5PGJvb2xlYW4+YC5cbiAqL1xuZnVuY3Rpb24gY2xhc3NOYW1lKHZhbHVlKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgIHJldHVybiB2YWx1ZS5tYXAoY2xhc3NOYW1lKS5maWx0ZXIoQm9vbGVhbikuam9pbihcIiBcIik7XG4gIH0gZWxzZSBpZiAoaXNPYmplY3QodmFsdWUpKSB7XG4gICAgaWYgKFN5bWJvbC5pdGVyYXRvciBpbiB2YWx1ZSkge1xuICAgICAgcmV0dXJuIGNsYXNzTmFtZShBcnJheS5mcm9tKHZhbHVlKSk7XG4gICAgfVxuICAgIHJldHVybiBrZXlzKHZhbHVlKVxuICAgICAgLmZpbHRlcigoaykgPT4gdmFsdWVba10pXG4gICAgICAuam9pbihcIiBcIik7XG4gIH0gZWxzZSBpZiAoaXNWaXNpYmxlQ2hpbGQodmFsdWUpKSB7XG4gICAgcmV0dXJuIFwiXCIgKyB2YWx1ZTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gXCJcIjtcbiAgfVxufVxuY29uc3Qgc3ZnID0ge1xuICBhbmltYXRlOiAwLFxuICBjaXJjbGU6IDAsXG4gIGNsaXBQYXRoOiAwLFxuICBkZWZzOiAwLFxuICBkZXNjOiAwLFxuICBlbGxpcHNlOiAwLFxuICBmZUJsZW5kOiAwLFxuICBmZUNvbG9yTWF0cml4OiAwLFxuICBmZUNvbXBvbmVudFRyYW5zZmVyOiAwLFxuICBmZUNvbXBvc2l0ZTogMCxcbiAgZmVDb252b2x2ZU1hdHJpeDogMCxcbiAgZmVEaWZmdXNlTGlnaHRpbmc6IDAsXG4gIGZlRGlzcGxhY2VtZW50TWFwOiAwLFxuICBmZURpc3RhbnRMaWdodDogMCxcbiAgZmVGbG9vZDogMCxcbiAgZmVGdW5jQTogMCxcbiAgZmVGdW5jQjogMCxcbiAgZmVGdW5jRzogMCxcbiAgZmVGdW5jUjogMCxcbiAgZmVHYXVzc2lhbkJsdXI6IDAsXG4gIGZlSW1hZ2U6IDAsXG4gIGZlTWVyZ2U6IDAsXG4gIGZlTWVyZ2VOb2RlOiAwLFxuICBmZU1vcnBob2xvZ3k6IDAsXG4gIGZlT2Zmc2V0OiAwLFxuICBmZVBvaW50TGlnaHQ6IDAsXG4gIGZlU3BlY3VsYXJMaWdodGluZzogMCxcbiAgZmVTcG90TGlnaHQ6IDAsXG4gIGZlVGlsZTogMCxcbiAgZmVUdXJidWxlbmNlOiAwLFxuICBmaWx0ZXI6IDAsXG4gIGZvcmVpZ25PYmplY3Q6IDAsXG4gIGc6IDAsXG4gIGltYWdlOiAwLFxuICBsaW5lOiAwLFxuICBsaW5lYXJHcmFkaWVudDogMCxcbiAgbWFya2VyOiAwLFxuICBtYXNrOiAwLFxuICBtZXRhZGF0YTogMCxcbiAgcGF0aDogMCxcbiAgcGF0dGVybjogMCxcbiAgcG9seWdvbjogMCxcbiAgcG9seWxpbmU6IDAsXG4gIHJhZGlhbEdyYWRpZW50OiAwLFxuICByZWN0OiAwLFxuICBzdG9wOiAwLFxuICBzdmc6IDAsXG4gIHN3aXRjaDogMCxcbiAgc3ltYm9sOiAwLFxuICB0ZXh0OiAwLFxuICB0ZXh0UGF0aDogMCxcbiAgdHNwYW46IDAsXG4gIHVzZTogMCxcbiAgdmlldzogMCxcbn07XG5jb25zdCBub25QcmVzZW50YXRpb25TVkdBdHRyaWJ1dGVzID1cbiAgL14oYShsbHx0fHUpfGJhc2VbRlBdfGMoYWx8bGlwUGF0aFV8b24pfGRpfGVkfGV4fGZpbHRlcltSVV18ZyhseXBoUnxyKXxrZXxsKGVufGltKXxtYShya2VyW0hVV118cyl8bnxwYXR8cHJ8cG9pbnRbXmVdfHJlW15uXXxzW3B1eV18c3RbXm9yXXx0YXx0ZXh0THx2aXx4Q3x5fHopLztcbmZ1bmN0aW9uIGNyZWF0ZUZhY3RvcnkodGFnKSB7XG4gIHJldHVybiBjcmVhdGVFbGVtZW50LmJpbmQobnVsbCwgdGFnKTtcbn1cbmZ1bmN0aW9uIEZyYWdtZW50KGF0dHIpIHtcbiAgY29uc3QgZnJhZ21lbnQgPSBkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7XG4gIGFwcGVuZENoaWxkKGF0dHIuY2hpbGRyZW4sIGZyYWdtZW50KTtcbiAgcmV0dXJuIGZyYWdtZW50O1xufVxuY2xhc3MgQ29tcG9uZW50IHtcbiAgc3RhdGljIGlzQ29tcG9uZW50ID0gdHJ1ZTtcbiAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICB0aGlzLnByb3BzID0gcHJvcHM7XG4gIH1cbiAgcmVuZGVyKCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG59XG5mdW5jdGlvbiBpbml0Q29tcG9uZW50Q2xhc3MoQ2xhc3MsIGF0dHIsIGNoaWxkcmVuKSB7XG4gIGF0dHIgPSB7XG4gICAgLi4uYXR0cixcbiAgICBjaGlsZHJlbixcbiAgfTtcbiAgY29uc3QgaW5zdGFuY2UgPSBuZXcgQ2xhc3MoYXR0cik7XG4gIGNvbnN0IG5vZGUgPSBpbnN0YW5jZS5yZW5kZXIoKTtcbiAgaWYgKFwicmVmXCIgaW4gYXR0cikge1xuICAgIGF0dGFjaFJlZihhdHRyLnJlZiwgaW5zdGFuY2UpO1xuICB9XG4gIHJldHVybiBub2RlO1xufVxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG5mdW5jdGlvbiBqc3godGFnLCBfcmVmKSB7XG4gIGxldCB7IGNoaWxkcmVuLCAuLi5hdHRyIH0gPSBfcmVmO1xuICBpZiAoIWF0dHIubmFtZXNwYWNlVVJJICYmIHN2Z1t0YWddID09PSAwKSB7XG4gICAgYXR0ciA9IHtcbiAgICAgIC4uLmF0dHIsXG4gICAgICBuYW1lc3BhY2VVUkk6IFNWR05hbWVzcGFjZSxcbiAgICB9O1xuICB9XG4gIGxldCBub2RlO1xuICBpZiAoaXNTdHJpbmcodGFnKSkge1xuICAgIG5vZGUgPSBhdHRyLm5hbWVzcGFjZVVSSVxuICAgICAgPyBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoYXR0ci5uYW1lc3BhY2VVUkksIHRhZylcbiAgICAgIDogZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0YWcpO1xuICAgIGF0dHJpYnV0ZXMoYXR0ciwgbm9kZSk7XG4gICAgYXBwZW5kQ2hpbGQoY2hpbGRyZW4sIG5vZGUpO1xuXG4gICAgLy8gU2VsZWN0IGBvcHRpb25gIGVsZW1lbnRzIGluIGBzZWxlY3RgXG4gICAgaWYgKG5vZGUgaW5zdGFuY2VvZiB3aW5kb3cuSFRNTFNlbGVjdEVsZW1lbnQgJiYgYXR0ci52YWx1ZSAhPSBudWxsKSB7XG4gICAgICBpZiAoYXR0ci5tdWx0aXBsZSA9PT0gdHJ1ZSAmJiBBcnJheS5pc0FycmF5KGF0dHIudmFsdWUpKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlcyA9IGF0dHIudmFsdWUubWFwKCh2YWx1ZSkgPT4gU3RyaW5nKHZhbHVlKSk7XG4gICAgICAgIG5vZGVcbiAgICAgICAgICAucXVlcnlTZWxlY3RvckFsbChcIm9wdGlvblwiKVxuICAgICAgICAgIC5mb3JFYWNoKFxuICAgICAgICAgICAgKG9wdGlvbikgPT4gKG9wdGlvbi5zZWxlY3RlZCA9IHZhbHVlcy5pbmNsdWRlcyhvcHRpb24udmFsdWUpKSxcbiAgICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbm9kZS52YWx1ZSA9IGF0dHIudmFsdWU7XG4gICAgICB9XG4gICAgfVxuICAgIGF0dGFjaFJlZihhdHRyLnJlZiwgbm9kZSk7XG4gIH0gZWxzZSBpZiAoaXNGdW5jdGlvbih0YWcpKSB7XG4gICAgLy8gQ3VzdG9tIGVsZW1lbnRzLlxuICAgIGlmIChpc09iamVjdCh0YWcuZGVmYXVsdFByb3BzKSkge1xuICAgICAgYXR0ciA9IHtcbiAgICAgICAgLi4udGFnLmRlZmF1bHRQcm9wcyxcbiAgICAgICAgLi4uYXR0cixcbiAgICAgIH07XG4gICAgfVxuICAgIG5vZGUgPSBpc0NvbXBvbmVudENsYXNzKHRhZylcbiAgICAgID8gaW5pdENvbXBvbmVudENsYXNzKHRhZywgYXR0ciwgY2hpbGRyZW4pXG4gICAgICA6IHRhZyh7XG4gICAgICAgICAgLi4uYXR0cixcbiAgICAgICAgICBjaGlsZHJlbixcbiAgICAgICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgSW52YWxpZCBKU1ggZWxlbWVudCB0eXBlOiAke3RhZ31gKTtcbiAgfVxuICByZXR1cm4gbm9kZTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZUVsZW1lbnQodGFnLCBhdHRyKSB7XG4gIGZvciAoXG4gICAgdmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLFxuICAgICAgY2hpbGRyZW4gPSBuZXcgQXJyYXkoX2xlbiA+IDIgPyBfbGVuIC0gMiA6IDApLFxuICAgICAgX2tleTIgPSAyO1xuICAgIF9rZXkyIDwgX2xlbjtcbiAgICBfa2V5MisrXG4gICkge1xuICAgIGNoaWxkcmVuW19rZXkyIC0gMl0gPSBhcmd1bWVudHNbX2tleTJdO1xuICB9XG4gIGlmIChpc1N0cmluZyhhdHRyKSB8fCBBcnJheS5pc0FycmF5KGF0dHIpKSB7XG4gICAgY2hpbGRyZW4udW5zaGlmdChhdHRyKTtcbiAgICBhdHRyID0ge307XG4gIH1cbiAgYXR0ciA9IGF0dHIgfHwge307XG4gIGlmIChhdHRyLmNoaWxkcmVuICE9IG51bGwgJiYgIWNoaWxkcmVuLmxlbmd0aCkge1xuICAgICh7IGNoaWxkcmVuLCAuLi5hdHRyIH0gPSBhdHRyKTtcbiAgfVxuICByZXR1cm4ganN4KFxuICAgIHRhZyxcbiAgICB7XG4gICAgICAuLi5hdHRyLFxuICAgICAgY2hpbGRyZW4sXG4gICAgfSxcbiAgICBhdHRyLmtleSxcbiAgKTtcbn1cbmZ1bmN0aW9uIGF0dGFjaFJlZihyZWYsIG5vZGUpIHtcbiAgaWYgKGlzUmVmKHJlZikpIHtcbiAgICByZWYuY3VycmVudCA9IG5vZGU7XG4gIH0gZWxzZSBpZiAoaXNGdW5jdGlvbihyZWYpKSB7XG4gICAgcmVmKG5vZGUpO1xuICB9XG59XG5mdW5jdGlvbiBhcHBlbmRDaGlsZChjaGlsZCwgbm9kZSkge1xuICBpZiAoaXNBcnJheUxpa2UoY2hpbGQpKSB7XG4gICAgYXBwZW5kQ2hpbGRyZW4oY2hpbGQsIG5vZGUpO1xuICB9IGVsc2UgaWYgKGlzU3RyaW5nKGNoaWxkKSB8fCBpc051bWJlcihjaGlsZCkpIHtcbiAgICBhcHBlbmRDaGlsZFRvTm9kZShkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShjaGlsZCksIG5vZGUpO1xuICB9IGVsc2UgaWYgKGNoaWxkID09PSBudWxsKSB7XG4gICAgYXBwZW5kQ2hpbGRUb05vZGUoZG9jdW1lbnQuY3JlYXRlQ29tbWVudChcIlwiKSwgbm9kZSk7XG4gIH0gZWxzZSBpZiAoaXNFbGVtZW50KGNoaWxkKSkge1xuICAgIGFwcGVuZENoaWxkVG9Ob2RlKGNoaWxkLCBub2RlKTtcbiAgfSBlbHNlIGlmIChpc1NoYWRvd1Jvb3QoY2hpbGQpKSB7XG4gICAgY29uc3Qgc2hhZG93Um9vdCA9IG5vZGUuYXR0YWNoU2hhZG93KGNoaWxkLmF0dHIpO1xuICAgIGFwcGVuZENoaWxkKGNoaWxkLmNoaWxkcmVuLCBzaGFkb3dSb290KTtcbiAgICBhdHRhY2hSZWYoY2hpbGQucmVmLCBzaGFkb3dSb290KTtcbiAgfVxufVxuZnVuY3Rpb24gYXBwZW5kQ2hpbGRyZW4oY2hpbGRyZW4sIG5vZGUpIHtcbiAgZm9yIChjb25zdCBjaGlsZCBvZiBbLi4uY2hpbGRyZW5dKSB7XG4gICAgYXBwZW5kQ2hpbGQoY2hpbGQsIG5vZGUpO1xuICB9XG4gIHJldHVybiBub2RlO1xufVxuZnVuY3Rpb24gYXBwZW5kQ2hpbGRUb05vZGUoY2hpbGQsIG5vZGUpIHtcbiAgaWYgKG5vZGUgaW5zdGFuY2VvZiB3aW5kb3cuSFRNTFRlbXBsYXRlRWxlbWVudCkge1xuICAgIG5vZGUuY29udGVudC5hcHBlbmRDaGlsZChjaGlsZCk7XG4gIH0gZWxzZSB7XG4gICAgbm9kZS5hcHBlbmRDaGlsZChjaGlsZCk7XG4gIH1cbn1cbmZ1bmN0aW9uIG5vcm1hbGl6ZUF0dHJpYnV0ZShzLCBzZXBhcmF0b3IpIHtcbiAgcmV0dXJuIHMucmVwbGFjZSgvW0EtWl0vZywgKG1hdGNoKSA9PiBzZXBhcmF0b3IgKyBtYXRjaC50b0xvd2VyQ2FzZSgpKTtcbn1cbmZ1bmN0aW9uIHN0eWxlKG5vZGUsIHZhbHVlKSB7XG4gIGlmICh2YWx1ZSA9PSBudWxsIHx8IHZhbHVlID09PSBmYWxzZSk7XG4gIGVsc2UgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgdmFsdWUuZm9yRWFjaCgodikgPT4gc3R5bGUobm9kZSwgdikpO1xuICB9IGVsc2UgaWYgKGlzU3RyaW5nKHZhbHVlKSkge1xuICAgIG5vZGUuc2V0QXR0cmlidXRlKFwic3R5bGVcIiwgdmFsdWUpO1xuICB9IGVsc2UgaWYgKGlzT2JqZWN0KHZhbHVlKSkge1xuICAgIGZvckVhY2godmFsdWUsICh2YWwsIGtleSkgPT4ge1xuICAgICAgaWYgKGtleS5pbmRleE9mKFwiLVwiKSA9PT0gMCkge1xuICAgICAgICAvLyBDU1MgY3VzdG9tIHByb3BlcnRpZXMgKHZhcmlhYmxlcykgc3RhcnQgd2l0aCBgLWAgKGUuZy4gYC0tbXktdmFyaWFibGVgKVxuICAgICAgICAvLyBhbmQgbXVzdCBiZSBhc3NpZ25lZCB2aWEgYHNldFByb3BlcnR5YC5cbiAgICAgICAgbm9kZS5zdHlsZS5zZXRQcm9wZXJ0eShrZXksIHZhbCk7XG4gICAgICB9IGVsc2UgaWYgKGlzTnVtYmVyKHZhbCkgJiYgaXNVbml0bGVzc051bWJlcltrZXldICE9PSAwKSB7XG4gICAgICAgIG5vZGUuc3R5bGVba2V5XSA9IHZhbCArIFwicHhcIjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5vZGUuc3R5bGVba2V5XSA9IHZhbDtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuZnVuY3Rpb24gYXR0cmlidXRlKGtleSwgdmFsdWUsIG5vZGUpIHtcbiAgc3dpdGNoIChrZXkpIHtcbiAgICBjYXNlIFwieGxpbmtBY3R1YXRlXCI6XG4gICAgY2FzZSBcInhsaW5rQXJjcm9sZVwiOlxuICAgIGNhc2UgXCJ4bGlua0hyZWZcIjpcbiAgICBjYXNlIFwieGxpbmtSb2xlXCI6XG4gICAgY2FzZSBcInhsaW5rU2hvd1wiOlxuICAgIGNhc2UgXCJ4bGlua1RpdGxlXCI6XG4gICAgY2FzZSBcInhsaW5rVHlwZVwiOlxuICAgICAgYXR0ck5TKG5vZGUsIFhMaW5rTmFtZXNwYWNlLCBub3JtYWxpemVBdHRyaWJ1dGUoa2V5LCBcIjpcIiksIHZhbHVlKTtcbiAgICAgIHJldHVybjtcbiAgICBjYXNlIFwieG1sbnNYbGlua1wiOlxuICAgICAgYXR0cihub2RlLCBub3JtYWxpemVBdHRyaWJ1dGUoa2V5LCBcIjpcIiksIHZhbHVlKTtcbiAgICAgIHJldHVybjtcbiAgICBjYXNlIFwieG1sQmFzZVwiOlxuICAgIGNhc2UgXCJ4bWxMYW5nXCI6XG4gICAgY2FzZSBcInhtbFNwYWNlXCI6XG4gICAgICBhdHRyTlMobm9kZSwgWE1MTmFtZXNwYWNlLCBub3JtYWxpemVBdHRyaWJ1dGUoa2V5LCBcIjpcIiksIHZhbHVlKTtcbiAgICAgIHJldHVybjtcbiAgfVxuICBzd2l0Y2ggKGtleSkge1xuICAgIGNhc2UgXCJodG1sRm9yXCI6XG4gICAgICBhdHRyKG5vZGUsIFwiZm9yXCIsIHZhbHVlKTtcbiAgICAgIHJldHVybjtcbiAgICBjYXNlIFwiZGF0YXNldFwiOlxuICAgICAgZm9yRWFjaCh2YWx1ZSwgKGRhdGFWYWx1ZSwgZGF0YUtleSkgPT4ge1xuICAgICAgICBpZiAoZGF0YVZhbHVlICE9IG51bGwpIHtcbiAgICAgICAgICBub2RlLmRhdGFzZXRbZGF0YUtleV0gPSBkYXRhVmFsdWU7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIGNhc2UgXCJpbm5lckhUTUxcIjpcbiAgICBjYXNlIFwiaW5uZXJUZXh0XCI6XG4gICAgY2FzZSBcInRleHRDb250ZW50XCI6XG4gICAgICBpZiAoaXNWaXNpYmxlQ2hpbGQodmFsdWUpKSB7XG4gICAgICAgIG5vZGVba2V5XSA9IHZhbHVlO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIGNhc2UgXCJkYW5nZXJvdXNseVNldElubmVySFRNTFwiOlxuICAgICAgaWYgKGlzT2JqZWN0KHZhbHVlKSkge1xuICAgICAgICBub2RlLmlubmVySFRNTCA9IHZhbHVlW1wiX19odG1sXCJdO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIGNhc2UgXCJ2YWx1ZVwiOlxuICAgICAgaWYgKHZhbHVlID09IG51bGwgfHwgbm9kZSBpbnN0YW5jZW9mIHdpbmRvdy5IVE1MU2VsZWN0RWxlbWVudCkge1xuICAgICAgICAvLyBza2lwIG51bGxpc2ggdmFsdWVzXG4gICAgICAgIC8vIGZvciBgPHNlbGVjdD5gIGFwcGx5IHZhbHVlIGFmdGVyIGFwcGVuZGluZyBgPG9wdGlvbj5gIGVsZW1lbnRzXG4gICAgICAgIHJldHVybjtcbiAgICAgIH0gZWxzZSBpZiAobm9kZSBpbnN0YW5jZW9mIHdpbmRvdy5IVE1MVGV4dEFyZWFFbGVtZW50KSB7XG4gICAgICAgIG5vZGUudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgLy8gdXNlIGF0dHJpYnV0ZSBmb3Igb3RoZXIgZWxlbWVudHNcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgXCJzcGVsbENoZWNrXCI6XG4gICAgICBub2RlLnNwZWxsY2hlY2sgPSB2YWx1ZTtcbiAgICAgIHJldHVybjtcbiAgICBjYXNlIFwiY2xhc3NcIjpcbiAgICBjYXNlIFwiY2xhc3NOYW1lXCI6XG4gICAgICBpZiAoaXNGdW5jdGlvbih2YWx1ZSkpIHtcbiAgICAgICAgdmFsdWUobm9kZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhdHRyKG5vZGUsIFwiY2xhc3NcIiwgY2xhc3NOYW1lKHZhbHVlKSk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgY2FzZSBcInJlZlwiOlxuICAgIGNhc2UgXCJuYW1lc3BhY2VVUklcIjpcbiAgICAgIHJldHVybjtcbiAgICBjYXNlIFwic3R5bGVcIjpcbiAgICAgIHN0eWxlKG5vZGUsIHZhbHVlKTtcbiAgICAgIHJldHVybjtcbiAgICBjYXNlIFwib25cIjpcbiAgICBjYXNlIFwib25DYXB0dXJlXCI6XG4gICAgICBmb3JFYWNoKHZhbHVlLCAoZXZlbnRIYW5kbGVyLCBldmVudE5hbWUpID0+IHtcbiAgICAgICAgbm9kZS5hZGRFdmVudExpc3RlbmVyKGV2ZW50TmFtZSwgZXZlbnRIYW5kbGVyLCBrZXkgPT09IFwib25DYXB0dXJlXCIpO1xuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgLy8gZmFsbHRocm91Z2hcbiAgfVxuICBpZiAoaXNGdW5jdGlvbih2YWx1ZSkpIHtcbiAgICBpZiAoa2V5WzBdID09PSBcIm9cIiAmJiBrZXlbMV0gPT09IFwiblwiKSB7XG4gICAgICBsZXQgYXR0cmlidXRlID0ga2V5LnRvTG93ZXJDYXNlKCk7XG4gICAgICBjb25zdCB1c2VDYXB0dXJlID0gYXR0cmlidXRlLmVuZHNXaXRoKFwiY2FwdHVyZVwiKTtcbiAgICAgIGlmIChhdHRyaWJ1dGUgPT09IFwib25kb3VibGVjbGlja1wiKSB7XG4gICAgICAgIGF0dHJpYnV0ZSA9IFwib25kYmxjbGlja1wiO1xuICAgICAgfSBlbHNlIGlmICh1c2VDYXB0dXJlICYmIGF0dHJpYnV0ZSA9PT0gXCJvbmRvdWJsZWNsaWNrY2FwdHVyZVwiKSB7XG4gICAgICAgIGF0dHJpYnV0ZSA9IFwib25kYmxjbGlja2NhcHR1cmVcIjtcbiAgICAgIH1cbiAgICAgIGlmICghdXNlQ2FwdHVyZSAmJiBub2RlW2F0dHJpYnV0ZV0gPT09IG51bGwpIHtcbiAgICAgICAgLy8gdXNlIHByb3BlcnR5IHdoZW4gcG9zc2libGUgUFIgIzE3XG4gICAgICAgIG5vZGVbYXR0cmlidXRlXSA9IHZhbHVlO1xuICAgICAgfSBlbHNlIGlmICh1c2VDYXB0dXJlKSB7XG4gICAgICAgIG5vZGUuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICAgICBhdHRyaWJ1dGUuc3Vic3RyaW5nKDIsIGF0dHJpYnV0ZS5sZW5ndGggLSA3KSxcbiAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICB0cnVlLFxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbGV0IGV2ZW50TmFtZTtcbiAgICAgICAgaWYgKGF0dHJpYnV0ZSBpbiB3aW5kb3cpIHtcbiAgICAgICAgICAvLyBzdGFuZGFyZCBldmVudFxuICAgICAgICAgIC8vIHRoZSBKU1ggYXR0cmlidXRlIGNvdWxkIGhhdmUgYmVlbiBcIm9uTW91c2VPdmVyXCIgYW5kIHRoZVxuICAgICAgICAgIC8vIG1lbWJlciBuYW1lIFwib25tb3VzZW92ZXJcIiBpcyBvbiB0aGUgd2luZG93J3MgcHJvdG90eXBlXG4gICAgICAgICAgLy8gc28gbGV0J3MgYWRkIHRoZSBsaXN0ZW5lciBcIm1vdXNlb3ZlclwiLCB3aGljaCBpcyBhbGwgbG93ZXJjYXNlZFxuICAgICAgICAgIGNvbnN0IHN0YW5kYXJkRXZlbnROYW1lID0gYXR0cmlidXRlLnN1YnN0cmluZygyKTtcbiAgICAgICAgICBldmVudE5hbWUgPSBzdGFuZGFyZEV2ZW50TmFtZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBjdXN0b20gZXZlbnRcbiAgICAgICAgICAvLyB0aGUgSlNYIGF0dHJpYnV0ZSBjb3VsZCBoYXZlIGJlZW4gXCJvbk15Q3VzdG9tRXZlbnRcIlxuICAgICAgICAgIC8vIHNvIGxldCdzIHRyaW0gb2ZmIHRoZSBcIm9uXCIgcHJlZml4IGFuZCBsb3dlcmNhc2UgdGhlIGZpcnN0IGNoYXJhY3RlclxuICAgICAgICAgIC8vIGFuZCBhZGQgdGhlIGxpc3RlbmVyIFwibXlDdXN0b21FdmVudFwiXG4gICAgICAgICAgLy8gZXhjZXB0IGZvciB0aGUgZmlyc3QgY2hhcmFjdGVyLCB3ZSBrZWVwIHRoZSBldmVudCBuYW1lIGNhc2VcbiAgICAgICAgICBjb25zdCBjdXN0b21FdmVudE5hbWUgPSBhdHRyaWJ1dGVbMl0gKyBrZXkuc2xpY2UoMyk7XG4gICAgICAgICAgZXZlbnROYW1lID0gY3VzdG9tRXZlbnROYW1lO1xuICAgICAgICB9XG4gICAgICAgIG5vZGUuYWRkRXZlbnRMaXN0ZW5lcihldmVudE5hbWUsIHZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH0gZWxzZSBpZiAoaXNPYmplY3QodmFsdWUpKSB7XG4gICAgbm9kZVtrZXldID0gdmFsdWU7XG4gIH0gZWxzZSBpZiAodmFsdWUgPT09IHRydWUpIHtcbiAgICBhdHRyKG5vZGUsIGtleSwgXCJcIik7XG4gIH0gZWxzZSBpZiAodmFsdWUgIT09IGZhbHNlICYmIHZhbHVlICE9IG51bGwpIHtcbiAgICBpZiAobm9kZSBpbnN0YW5jZW9mIFNWR0VsZW1lbnQgJiYgIW5vblByZXNlbnRhdGlvblNWR0F0dHJpYnV0ZXMudGVzdChrZXkpKSB7XG4gICAgICBhdHRyKG5vZGUsIG5vcm1hbGl6ZUF0dHJpYnV0ZShrZXksIFwiLVwiKSwgdmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBhdHRyKG5vZGUsIGtleSwgdmFsdWUpO1xuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gYXR0cihub2RlLCBrZXksIHZhbHVlKSB7XG4gIG5vZGUuc2V0QXR0cmlidXRlKGtleSwgdmFsdWUpO1xufVxuZnVuY3Rpb24gYXR0ck5TKG5vZGUsIG5hbWVzcGFjZSwga2V5LCB2YWx1ZSkge1xuICBub2RlLnNldEF0dHJpYnV0ZU5TKG5hbWVzcGFjZSwga2V5LCB2YWx1ZSk7XG59XG5mdW5jdGlvbiBhdHRyaWJ1dGVzKGF0dHIsIG5vZGUpIHtcbiAgZm9yIChjb25zdCBrZXkgb2Yga2V5cyhhdHRyKSkge1xuICAgIGF0dHJpYnV0ZShrZXksIGF0dHJba2V5XSwgbm9kZSk7XG4gIH1cbiAgcmV0dXJuIG5vZGU7XG59XG5cbmZ1bmN0aW9uIHVzZVRleHQoaW5pdGlhbFZhbHVlKSB7XG4gIGNvbnN0IHRleHQgPSBuZXcgVGV4dCgpO1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGV4dCwgXCJ0b1N0cmluZ1wiLCB7XG4gICAgdmFsdWUoKSB7XG4gICAgICByZXR1cm4gdGhpcy50ZXh0Q29udGVudDtcbiAgICB9LFxuICB9KTtcbiAgZnVuY3Rpb24gc2V0VGV4dCh2YWx1ZSkge1xuICAgIHRleHQudGV4dENvbnRlbnQgPSB2YWx1ZTtcbiAgfVxuICBpZiAoaW5pdGlhbFZhbHVlICE9IG51bGwpIHtcbiAgICBzZXRUZXh0KGluaXRpYWxWYWx1ZSk7XG4gIH1cbiAgcmV0dXJuIFt0ZXh0LCBzZXRUZXh0XTtcbn1cbmZ1bmN0aW9uIHVzZUNsYXNzTGlzdChpbml0aWFsVmFsdWUpIHtcbiAgY29uc3QgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcbiAgaWYgKGluaXRpYWxWYWx1ZSAhPSBudWxsKSB7XG4gICAgZGl2LmNsYXNzTmFtZSA9IGNsYXNzTmFtZShpbml0aWFsVmFsdWUpO1xuICB9XG4gIGxldCBsaXN0ID0gZGl2LmNsYXNzTGlzdDtcbiAgZnVuY3Rpb24gQ2xhc3NMaXN0KHZhbHVlKSB7XG4gICAgdmFsdWUuc2V0QXR0cmlidXRlKFwiY2xhc3NcIiwgbGlzdC52YWx1ZSk7XG4gICAgbGlzdCA9IHZhbHVlLmNsYXNzTGlzdDtcbiAgfVxuICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhcbiAgICBDbGFzc0xpc3QsXG4gICAgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoe1xuICAgICAgZ2V0IHNpemUoKSB7XG4gICAgICAgIHJldHVybiBsaXN0Lmxlbmd0aDtcbiAgICAgIH0sXG4gICAgICBnZXQgdmFsdWUoKSB7XG4gICAgICAgIHJldHVybiBsaXN0LnZhbHVlO1xuICAgICAgfSxcbiAgICAgIGFkZCgpIHtcbiAgICAgICAgbGlzdC5hZGQoLi4uYXJndW1lbnRzKTtcbiAgICAgIH0sXG4gICAgICByZW1vdmUoKSB7XG4gICAgICAgIGxpc3QucmVtb3ZlKC4uLmFyZ3VtZW50cyk7XG4gICAgICB9LFxuICAgICAgdG9nZ2xlKHRva2VuLCBmb3JjZSkge1xuICAgICAgICBsaXN0LnRvZ2dsZSh0b2tlbiwgZm9yY2UpO1xuICAgICAgfSxcbiAgICAgIGNvbnRhaW5zKHRva2VuKSB7XG4gICAgICAgIHJldHVybiBsaXN0LmNvbnRhaW5zKHRva2VuKTtcbiAgICAgIH0sXG4gICAgfSksXG4gICk7XG4gIHJldHVybiBDbGFzc0xpc3Q7XG59XG5cbmZ1bmN0aW9uIHVzZU1lbW8oZmFjdG9yeSkge1xuICByZXR1cm4gZmFjdG9yeSgpO1xufVxuZnVuY3Rpb24gZm9yd2FyZFJlZihyZW5kZXIpIHtcbiAgcmV0dXJuIChfcmVmKSA9PiB7XG4gICAgbGV0IHsgcmVmLCAuLi5wcm9wcyB9ID0gX3JlZjtcbiAgICByZXR1cm4gcmVuZGVyKHByb3BzLCByZWYgPz8gY3JlYXRlUmVmKCkpO1xuICB9O1xufVxuZnVuY3Rpb24gdXNlSW1wZXJhdGl2ZUhhbmRsZShyZWYsIGluaXQpIHtcbiAgYXR0YWNoUmVmKHJlZiwgaW5pdCgpKTtcbn1cblxuY29uc3QgY2FjaGUgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpO1xuY29uc3QgY3JlYXRlU3R5bGVkQ29tcG9uZW50ID0gKG5hbWUpID0+XG4gIGZ1bmN0aW9uIChsaXN0KSB7XG4gICAgZm9yIChcbiAgICAgIHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCxcbiAgICAgICAgaW50ZXJwb2xhdGlvbnMgPSBuZXcgQXJyYXkoX2xlbiA+IDEgPyBfbGVuIC0gMSA6IDApLFxuICAgICAgICBfa2V5ID0gMTtcbiAgICAgIF9rZXkgPCBfbGVuO1xuICAgICAgX2tleSsrXG4gICAgKSB7XG4gICAgICBpbnRlcnBvbGF0aW9uc1tfa2V5IC0gMV0gPSBhcmd1bWVudHNbX2tleV07XG4gICAgfVxuICAgIHJldHVybiAoX3JlZikgPT4ge1xuICAgICAgbGV0IHsgc3R5bGUsIC4uLnByb3BzIH0gPSBfcmVmO1xuICAgICAgY29uc3QgbGFzdEluZGV4ID0gbGlzdC5sZW5ndGggLSAxO1xuICAgICAgY29uc3QgY3NzID1cbiAgICAgICAgbGlzdC5zbGljZSgwLCBsYXN0SW5kZXgpLnJlZHVjZSgocCwgcywgaSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGludGVycG9sYXRpb24gPSBpbnRlcnBvbGF0aW9uc1tpXTtcbiAgICAgICAgICBjb25zdCBjdXJyZW50ID1cbiAgICAgICAgICAgIHR5cGVvZiBpbnRlcnBvbGF0aW9uID09PSBcImZ1bmN0aW9uXCJcbiAgICAgICAgICAgICAgPyBpbnRlcnBvbGF0aW9uKHByb3BzKVxuICAgICAgICAgICAgICA6IGludGVycG9sYXRpb247XG4gICAgICAgICAgcmV0dXJuIHAgKyBzICsgY3VycmVudDtcbiAgICAgICAgfSwgXCJcIikgKyBsaXN0W2xhc3RJbmRleF07XG4gICAgICByZXR1cm4gY3JlYXRlRWxlbWVudChuYW1lLCB7XG4gICAgICAgIHN0eWxlOiBbY3NzLCBzdHlsZV0sXG4gICAgICAgIC4uLnByb3BzLFxuICAgICAgfSk7XG4gICAgfTtcbiAgfTtcbmNvbnN0IGJhc2VTdHlsZWQgPSAoY3VzdG9tQ29tcG9uZW50KSA9PiBjcmVhdGVTdHlsZWRDb21wb25lbnQoY3VzdG9tQ29tcG9uZW50KTtcbmNvbnN0IHN0eWxlZCA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgUHJveHkoYmFzZVN0eWxlZCwge1xuICBnZXQoXywgbmFtZSkge1xuICAgIHJldHVybiBzZXRJZkFic2VudChjYWNoZSwgbmFtZSwgKCkgPT4gY3JlYXRlU3R5bGVkQ29tcG9uZW50KG5hbWUpKTtcbiAgfSxcbn0pO1xuZnVuY3Rpb24gc2V0SWZBYnNlbnQobWFwLCBrZXksIGdldFZhbHVlKSB7XG4gIGlmIChtYXAuaGFzKGtleSkpIHtcbiAgICByZXR1cm4gbWFwLmdldChrZXkpO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IHZhbHVlID0gZ2V0VmFsdWUoa2V5KTtcbiAgICBtYXAuc2V0KGtleSwgdmFsdWUpO1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxufVxuXG52YXIgaW5kZXggPSB7XG4gIENvbXBvbmVudCxcbiAgUHVyZUNvbXBvbmVudDogQ29tcG9uZW50LFxuICBjcmVhdGVFbGVtZW50LFxuICBGcmFnbWVudCxcbiAgU2hhZG93Um9vdCxcbn07XG5mdW5jdGlvbiBwcmV2ZW50RGVmYXVsdChldmVudCkge1xuICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICByZXR1cm4gZXZlbnQ7XG59XG5mdW5jdGlvbiBzdG9wUHJvcGFnYXRpb24oZXZlbnQpIHtcbiAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gIHJldHVybiBldmVudDtcbn1cblxuZXhwb3J0IHtcbiAgQ29tcG9uZW50LFxuICBGcmFnbWVudCxcbiAgQ29tcG9uZW50IGFzIFB1cmVDb21wb25lbnQsXG4gIFNWR05hbWVzcGFjZSxcbiAgU2hhZG93Um9vdCxcbiAgRnJhZ21lbnQgYXMgU3RyaWN0TW9kZSxcbiAgY2xhc3NOYW1lLFxuICBjcmVhdGVFbGVtZW50LFxuICBjcmVhdGVGYWN0b3J5LFxuICBjcmVhdGVSZWYsXG4gIGluZGV4IGFzIGRlZmF1bHQsXG4gIGZvcndhcmRSZWYsXG4gIGNyZWF0ZUVsZW1lbnQgYXMgaCxcbiAgaXNSZWYsXG4gIGpzeCxcbiAganN4IGFzIGpzeHMsXG4gIGlkZW50aXR5IGFzIG1lbW8sXG4gIHByZXZlbnREZWZhdWx0LFxuICBzdG9wUHJvcGFnYXRpb24sXG4gIHN0eWxlZCxcbiAgaWRlbnRpdHkgYXMgdXNlQ2FsbGJhY2ssXG4gIHVzZUNsYXNzTGlzdCxcbiAgdXNlSW1wZXJhdGl2ZUhhbmRsZSxcbiAgdXNlTWVtbyxcbiAgY3JlYXRlUmVmIGFzIHVzZVJlZixcbiAgdXNlVGV4dCxcbn07XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQSxLQUFDLFdBQVU7QUFBQyxlQUFTLElBQUc7QUFBQyxpQkFBUyxJQUFHO0FBQUMsaUJBQU87QUFBQSxRQUFJO0FBQUMsaUJBQVMsRUFBRSxHQUFFO0FBQUMsaUJBQU8sSUFBRSxhQUFXLE9BQU8sS0FBRyxlQUFhLE9BQU8sSUFBRTtBQUFBLFFBQUU7QUFBQyxpQkFBUyxFQUFFLEdBQUU7QUFBQyxjQUFHLFNBQU8sS0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLE9BQU0sSUFBSSxVQUFVLHFEQUFtRCxDQUFDO0FBQUEsUUFBRTtBQUFDLFlBQUksSUFBRSxNQUFLLElBQUUsUUFBTyxJQUFFLENBQUMsQ0FBQyxFQUFFLFVBQVEsRUFBRSxFQUFDLFdBQVUsS0FBSSxhQUFZLElBQUcsSUFBRSxFQUFFLFdBQVMsSUFBRSxTQUFTLEdBQUU7QUFBQyxZQUFFLENBQUM7QUFBRSxpQkFBTSxFQUFDLFdBQVUsRUFBQztBQUFBLFFBQUMsSUFBRSxTQUFTLEdBQUU7QUFBQyxtQkFBUyxJQUFHO0FBQUEsVUFBQztBQUFDLFlBQUUsQ0FBQztBQUFFLGNBQUcsU0FBTyxFQUFFLE9BQU0sSUFBSSxZQUFZLHdFQUF3RTtBQUFFLFlBQUUsWUFBVTtBQUFFLGlCQUFPLElBQUk7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QUNMLENBQUM7RUFDSDtBQUNGO0FBQ0YsSUFBTXVHLGFBQWNDLHFCQUFvQlosc0JBQXNCWSxlQUFlO0FBQzdFLElBQU16UixTQUF5QixvQkFBSTBSLE1BQU1GLFlBQVk7RUFDbkRHLElBQUlDLEdBQUdkLE1BQU07QUFDWCxXQUFPZSxZQUFZbEIsT0FBT0csTUFBTSxNQUFNRCxzQkFBc0JDLElBQUksQ0FBQztFQUNuRTtBQUNGLENBQUM7QUFDRCxTQUFTZSxZQUFZaEwsS0FBSzFFLEtBQUsyUCxVQUFVO0FBQ3ZDLE1BQUlqTCxJQUFJa0wsSUFBSTVQLEdBQUcsR0FBRztBQUNoQixXQUFPMEUsSUFBSThLLElBQUl4UCxHQUFHO0VBQ3BCLE9BQU87QUFDTCxVQUFNdkIsUUFBUWtSLFNBQVMzUCxHQUFHO0FBQzFCMEUsUUFBSW1MLElBQUk3UCxLQUFLdkIsS0FBSztBQUNsQixXQUFPQTtFQUNUO0FBQ0Y7QUFTQSxTQUFTZCxlQUFlbVMsT0FBTztBQUM3QkEsUUFBTW5TLGVBQWU7QUFDckIsU0FBT21TO0FBQ1Q7QUFDQSxTQUFTbFMsZ0JBQWdCa1MsT0FBTztBQUM5QkEsUUFBTWxTLGdCQUFnQjtBQUN0QixTQUFPa1M7QUFDVDsiLAogICJuYW1lcyI6IFsiUmVhY3RfZXhwb3J0cyIsICJfX2V4cG9ydCIsICJDb21wb25lbnQiLCAiRnJhZ21lbnQiLCAiUHVyZUNvbXBvbmVudCIsICJTVkdOYW1lc3BhY2UiLCAiU2hhZG93Um9vdCIsICJTdHJpY3RNb2RlIiwgImNsYXNzTmFtZSIsICJjcmVhdGVFbGVtZW50IiwgImNyZWF0ZUZhY3RvcnkiLCAiY3JlYXRlUmVmIiwgImZvcndhcmRSZWYiLCAiaCIsICJpc1JlZiIsICJqc3giLCAianN4cyIsICJtZW1vIiwgImlkZW50aXR5IiwgInByZXZlbnREZWZhdWx0IiwgInN0b3BQcm9wYWdhdGlvbiIsICJzdHlsZWQiLCAidXNlQ2FsbGJhY2siLCAidXNlQ2xhc3NMaXN0IiwgInVzZUltcGVyYXRpdmVIYW5kbGUiLCAidXNlTWVtbyIsICJ1c2VSZWYiLCAidXNlVGV4dCIsICJtb2R1bGUiLCAiZXhwb3J0cyIsICJfX3RvQ29tbW9uSlMiLCAia2V5cyIsICJPYmplY3QiLCAidmFsdWUiLCAiaXNCb29sZWFuIiwgInZhbCIsICJpc0VsZW1lbnQiLCAibm9kZVR5cGUiLCAiaXNTdHJpbmciLCAiaXNOdW1iZXIiLCAiaXNPYmplY3QiLCAiaXNGdW5jdGlvbiIsICJpc0NvbXBvbmVudENsYXNzIiwgIkNvbXBvbmVudDIiLCAiaXNDb21wb25lbnQiLCAiaXNBcnJheUxpa2UiLCAib2JqIiwgImxlbmd0aCIsICJmb3JFYWNoIiwgImZuIiwgIl9pdGVyYXRvcjIiLCAiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIiLCAiX3N0ZXAyIiwgInMiLCAibiIsICJkb25lIiwgImtleSIsICJlcnIiLCAiZSIsICJmIiwgInNlYWwiLCAiY3VycmVudCIsICJtYXliZVJlZiIsICJpc1VuaXRsZXNzTnVtYmVyIiwgImFuaW1hdGlvbkl0ZXJhdGlvbkNvdW50IiwgImJvcmRlckltYWdlT3V0c2V0IiwgImJvcmRlckltYWdlU2xpY2UiLCAiYm9yZGVySW1hZ2VXaWR0aCIsICJib3hGbGV4IiwgImJveEZsZXhHcm91cCIsICJib3hPcmRpbmFsR3JvdXAiLCAiY29sdW1uQ291bnQiLCAiY29sdW1ucyIsICJmbGV4IiwgImZsZXhHcm93IiwgImZsZXhQb3NpdGl2ZSIsICJmbGV4U2hyaW5rIiwgImZsZXhOZWdhdGl2ZSIsICJmbGV4T3JkZXIiLCAiZ3JpZEFyZWEiLCAiZ3JpZFJvdyIsICJncmlkUm93RW5kIiwgImdyaWRSb3dTcGFuIiwgImdyaWRSb3dTdGFydCIsICJncmlkQ29sdW1uIiwgImdyaWRDb2x1bW5FbmQiLCAiZ3JpZENvbHVtblNwYW4iLCAiZ3JpZENvbHVtblN0YXJ0IiwgImZvbnRXZWlnaHQiLCAibGluZUNsYW1wIiwgImxpbmVIZWlnaHQiLCAib3BhY2l0eSIsICJvcmRlciIsICJvcnBoYW5zIiwgInRhYlNpemUiLCAid2lkb3dzIiwgInpJbmRleCIsICJ6b29tIiwgImZpbGxPcGFjaXR5IiwgImZsb29kT3BhY2l0eSIsICJzdG9wT3BhY2l0eSIsICJzdHJva2VEYXNoYXJyYXkiLCAic3Ryb2tlRGFzaG9mZnNldCIsICJzdHJva2VNaXRlcmxpbWl0IiwgInN0cm9rZU9wYWNpdHkiLCAic3Ryb2tlV2lkdGgiLCAicHJlZml4S2V5IiwgInByZWZpeCIsICJjaGFyQXQiLCAidG9VcHBlckNhc2UiLCAic3Vic3RyaW5nIiwgInByZWZpeGVzIiwgInByb3AiLCAianN4RG9tVHlwZSIsICJTeW1ib2wiLCAiZm9yIiwgIkpzeERvbVR5cGUiLCAiSnN4RG9tVHlwZTIiLCAiX3JlZiIsICJjaGlsZHJlbiIsICJyZWYiLCAiYXR0cjIiLCAiYXR0ciIsICJpc1NoYWRvd1Jvb3QiLCAiZWwiLCAiWExpbmtOYW1lc3BhY2UiLCAiWE1MTmFtZXNwYWNlIiwgImlzVmlzaWJsZUNoaWxkIiwgIkFycmF5IiwgImlzQXJyYXkiLCAibWFwIiwgImZpbHRlciIsICJCb29sZWFuIiwgImpvaW4iLCAiaXRlcmF0b3IiLCAiZnJvbSIsICJrIiwgInN2ZyIsICJhbmltYXRlIiwgImNpcmNsZSIsICJjbGlwUGF0aCIsICJkZWZzIiwgImRlc2MiLCAiZWxsaXBzZSIsICJmZUJsZW5kIiwgImZlQ29sb3JNYXRyaXgiLCAiZmVDb21wb25lbnRUcmFuc2ZlciIsICJmZUNvbXBvc2l0ZSIsICJmZUNvbnZvbHZlTWF0cml4IiwgImZlRGlmZnVzZUxpZ2h0aW5nIiwgImZlRGlzcGxhY2VtZW50TWFwIiwgImZlRGlzdGFudExpZ2h0IiwgImZlRmxvb2QiLCAiZmVGdW5jQSIsICJmZUZ1bmNCIiwgImZlRnVuY0ciLCAiZmVGdW5jUiIsICJmZUdhdXNzaWFuQmx1ciIsICJmZUltYWdlIiwgImZlTWVyZ2UiLCAiZmVNZXJnZU5vZGUiLCAiZmVNb3JwaG9sb2d5IiwgImZlT2Zmc2V0IiwgImZlUG9pbnRMaWdodCIsICJmZVNwZWN1bGFyTGlnaHRpbmciLCAiZmVTcG90TGlnaHQiLCAiZmVUaWxlIiwgImZlVHVyYnVsZW5jZSIsICJmb3JlaWduT2JqZWN0IiwgImciLCAiaW1hZ2UiLCAibGluZSIsICJsaW5lYXJHcmFkaWVudCIsICJtYXJrZXIiLCAibWFzayIsICJtZXRhZGF0YSIsICJwYXRoIiwgInBhdHRlcm4iLCAicG9seWdvbiIsICJwb2x5bGluZSIsICJyYWRpYWxHcmFkaWVudCIsICJyZWN0IiwgInN0b3AiLCAic3dpdGNoIiwgInN5bWJvbCIsICJ0ZXh0IiwgInRleHRQYXRoIiwgInRzcGFuIiwgInVzZSIsICJ2aWV3IiwgIm5vblByZXNlbnRhdGlvblNWR0F0dHJpYnV0ZXMiLCAidGFnIiwgImJpbmQiLCAiZnJhZ21lbnQiLCAiZG9jdW1lbnQiLCAiY3JlYXRlRG9jdW1lbnRGcmFnbWVudCIsICJhcHBlbmRDaGlsZCIsICJjb25zdHJ1Y3RvciIsICJwcm9wcyIsICJyZW5kZXIiLCAiaW5pdENvbXBvbmVudENsYXNzIiwgIkNsYXNzIiwgImluc3RhbmNlIiwgIm5vZGUiLCAiYXR0YWNoUmVmIiwgIm5hbWVzcGFjZVVSSSIsICJjcmVhdGVFbGVtZW50TlMiLCAiYXR0cmlidXRlcyIsICJ3aW5kb3ciLCAiSFRNTFNlbGVjdEVsZW1lbnQiLCAibXVsdGlwbGUiLCAidmFsdWVzIiwgIlN0cmluZyIsICJxdWVyeVNlbGVjdG9yQWxsIiwgIm9wdGlvbiIsICJzZWxlY3RlZCIsICJpbmNsdWRlcyIsICJkZWZhdWx0UHJvcHMiLCAiVHlwZUVycm9yIiwgImNvbmNhdCIsICJfbGVuIiwgImFyZ3VtZW50cyIsICJfa2V5MiIsICJ1bnNoaWZ0IiwgImNoaWxkIiwgImFwcGVuZENoaWxkcmVuIiwgImFwcGVuZENoaWxkVG9Ob2RlIiwgImNyZWF0ZVRleHROb2RlIiwgImNyZWF0ZUNvbW1lbnQiLCAic2hhZG93Um9vdCIsICJhdHRhY2hTaGFkb3ciLCAiX2kiLCAiX2FyciIsICJIVE1MVGVtcGxhdGVFbGVtZW50IiwgImNvbnRlbnQiLCAibm9ybWFsaXplQXR0cmlidXRlIiwgInNlcGFyYXRvciIsICJyZXBsYWNlIiwgIm1hdGNoIiwgInRvTG93ZXJDYXNlIiwgInN0eWxlIiwgInYiLCAic2V0QXR0cmlidXRlIiwgImluZGV4T2YiLCAic2V0UHJvcGVydHkiLCAiYXR0cmlidXRlIiwgImF0dHJOUyIsICJkYXRhVmFsdWUiLCAiZGF0YUtleSIsICJkYXRhc2V0IiwgImlubmVySFRNTCIsICJIVE1MVGV4dEFyZWFFbGVtZW50IiwgInNwZWxsY2hlY2siLCAiZXZlbnRIYW5kbGVyIiwgImV2ZW50TmFtZSIsICJhZGRFdmVudExpc3RlbmVyIiwgImF0dHJpYnV0ZTIiLCAidXNlQ2FwdHVyZSIsICJlbmRzV2l0aCIsICJzdGFuZGFyZEV2ZW50TmFtZSIsICJjdXN0b21FdmVudE5hbWUiLCAic2xpY2UiLCAiU1ZHRWxlbWVudCIsICJ0ZXN0IiwgIm5hbWVzcGFjZSIsICJzZXRBdHRyaWJ1dGVOUyIsICJfaXRlcmF0b3IzIiwgIl9zdGVwMyIsICJpbml0aWFsVmFsdWUiLCAiVGV4dCIsICJkZWZpbmVQcm9wZXJ0eSIsICJ0ZXh0Q29udGVudCIsICJzZXRUZXh0IiwgImRpdiIsICJsaXN0IiwgImNsYXNzTGlzdCIsICJDbGFzc0xpc3QiLCAiZGVmaW5lUHJvcGVydGllcyIsICJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwgInNpemUiLCAiYWRkIiwgInJlbW92ZSIsICJ0b2dnbGUiLCAidG9rZW4iLCAiZm9yY2UiLCAiY29udGFpbnMiLCAiZmFjdG9yeSIsICJpbml0IiwgImNhY2hlIiwgIk1hcCIsICJjcmVhdGVTdHlsZWRDb21wb25lbnQiLCAibmFtZSIsICJpbnRlcnBvbGF0aW9ucyIsICJfa2V5IiwgInN0eWxlMiIsICJsYXN0SW5kZXgiLCAiY3NzIiwgInJlZHVjZSIsICJwIiwgImkiLCAiaW50ZXJwb2xhdGlvbiIsICJiYXNlU3R5bGVkIiwgImN1c3RvbUNvbXBvbmVudCIsICJQcm94eSIsICJnZXQiLCAiXyIsICJzZXRJZkFic2VudCIsICJnZXRWYWx1ZSIsICJoYXMiLCAic2V0IiwgImV2ZW50Il0KfQo= diff --git a/dist/Report/Report.js b/dist/Report/Report.js index 71d4e08f2..bf8ce15ba 100644 --- a/dist/Report/Report.js +++ b/dist/Report/Report.js @@ -106,7 +106,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge var CLASS_NAME = "gadget-report"; var CLASS_NAME_BUTTON = "".concat(CLASS_NAME, "-button"); //! src/Report/components/ReportButton.tsx -var import_ext_gadget2 = __toESM(require("ext.gadget.React"), 1); +var import_ext_gadget2 = __toESM(require("ext.gadget.JSX"), 1); //! src/Report/modules/i18n.ts var import_ext_gadget = require("ext.gadget.i18n"); var getI18nMessages = () => { @@ -254,4 +254,4 @@ void (0, import_ext_gadget5.getBody)().then(function report($body) { /* */ -//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL1JlcG9ydC9tb2R1bGVzL2NvbnN0YW50LnRzIiwgInNyYy9SZXBvcnQvY29tcG9uZW50cy9SZXBvcnRCdXR0b24udHN4IiwgInNyYy9SZXBvcnQvbW9kdWxlcy9pMThuLnRzIiwgInNyYy9SZXBvcnQvbW9kdWxlcy9hZGRCdXR0b24udHMiLCAic3JjL1JlcG9ydC9tb2R1bGVzL2FkZFBvcnRsZXRMaW5rLnRzIiwgInNyYy9SZXBvcnQvbW9kdWxlcy9maWxsU3BlY2lhbFBhZ2UudHMiLCAic3JjL1JlcG9ydC9SZXBvcnQudHMiLCAic3JjL1JlcG9ydC9tb2R1bGVzL2dldFVSTC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiY29uc3QgQ0xBU1NfTkFNRTogc3RyaW5nID0gJ2dhZGdldC1yZXBvcnQnO1xuY29uc3QgQ0xBU1NfTkFNRV9CVVRUT046IHN0cmluZyA9IGAke0NMQVNTX05BTUV9LWJ1dHRvbmA7XG5cbmV4cG9ydCB7Q0xBU1NfTkFNRV9CVVRUT059O1xuIiwgImltcG9ydCB7Q0xBU1NfTkFNRV9CVVRUT059IGZyb20gJy4uL21vZHVsZXMvY29uc3RhbnQnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ2V4dC5nYWRnZXQuUmVhY3QnO1xuaW1wb3J0IHtnZXRNZXNzYWdlfSBmcm9tICcuLi9tb2R1bGVzL2kxOG4nO1xuXG5jb25zdCBMSU5LX1RJVExFOiBzdHJpbmcgPSBnZXRNZXNzYWdlKCdSZXBvcnQnKTtcblxuY29uc3QgUmVwb3J0QnV0dG9uID0gKFVSTDogc3RyaW5nLCBvbk1vdXNlRW50ZXJMZWF2ZTogKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB2b2lkKSA9PiAoXG5cdDxpbWdcblx0XHRjbGFzc05hbWU9e1tDTEFTU19OQU1FX0JVVFRPTiwgJ25vcHJpbnQnXX1cblx0XHRzcmM9XCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzEnIGhlaWdodD0nMSclM0UlM0Mvc3ZnJTNFXCJcblx0XHR3aWR0aD1cIjMyXCJcblx0XHRoZWlnaHQ9XCIzMlwiXG5cdFx0ZHJhZ2dhYmxlPXtmYWxzZX1cblx0XHRhbHQ9e0xJTktfVElUTEV9XG5cdFx0YXJpYS1sYWJlbD17TElOS19USVRMRX1cblx0XHRvbkNsaWNrPXsoKTogdm9pZCA9PiB7XG5cdFx0XHR3aW5kb3cub3BlbihVUkwsICdfYmxhbmsnLCAnbm9vcGVuZXIsbm9yZWZlcnJlcicpO1xuXHRcdH19XG5cdFx0b25Nb3VzZUVudGVyPXtvbk1vdXNlRW50ZXJMZWF2ZX1cblx0XHRvbk1vdXNlTGVhdmU9e29uTW91c2VFbnRlckxlYXZlfVxuXHQvPlxuKTtcblxuZXhwb3J0IGRlZmF1bHQgUmVwb3J0QnV0dG9uO1xuIiwgImltcG9ydCB7bG9jYWxpemV9IGZyb20gJ2V4dC5nYWRnZXQuaTE4bic7XG5cbmNvbnN0IGdldEkxOG5NZXNzYWdlcyA9ICgpID0+IHtcblx0cmV0dXJuIHtcblx0XHQnOic6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnOiAnLFxuXHRcdFx0amE6ICfvvJonLFxuXHRcdFx0emg6ICfvvJonLFxuXHRcdH0pLFxuXHRcdCcoJzogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICcoJyxcblx0XHRcdGphOiAn77yIJyxcblx0XHRcdHpoOiAn77yIJyxcblx0XHR9KSxcblx0XHQnKSc6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnKScsXG5cdFx0XHRqYTogJ++8iScsXG5cdFx0XHR6aDogJ++8iScsXG5cdFx0fSksXG5cdFx0UmVwb3J0OiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ1JlcG9ydCB0aGlzIHBhZ2UnLFxuXHRcdFx0amE6ICfjgZPjga7jg5rjg7zjgrjjgpLloLHlkYonLFxuXHRcdFx0J3poLWhhbnMnOiAn5oql5ZGK5LiN6Imv5L+h5oGvJyxcblx0XHRcdCd6aC1oYW50JzogJ+WgseWRiuS4jeiJr+izh+ioiicsXG5cdFx0fSksXG5cdFx0UmV2aXNpb246IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnUmV2aXNpb24nLFxuXHRcdFx0amE6ICfniYgnLFxuXHRcdFx0emg6ICfniYjmnKwnLFxuXHRcdH0pLFxuXHR9O1xufTtcblxuY29uc3QgaTE4bk1lc3NhZ2VzID0gZ2V0STE4bk1lc3NhZ2VzKCk7XG5cbmNvbnN0IGdldE1lc3NhZ2U6IEdldE1lc3NhZ2VzPHR5cGVvZiBpMThuTWVzc2FnZXM+ID0gKGtleSkgPT4ge1xuXHRyZXR1cm4gaTE4bk1lc3NhZ2VzW2tleV0gfHwga2V5O1xufTtcblxuZXhwb3J0IHtnZXRNZXNzYWdlfTtcbiIsICJpbXBvcnQgUmVwb3J0QnV0dG9uIGZyb20gJy4uL2NvbXBvbmVudHMvUmVwb3J0QnV0dG9uJztcbmltcG9ydCB7Y2hhbmdlT3BhY2l0eVdoZW5Nb3VzZUVudGVyT3JMZWF2ZX0gZnJvbSAnZXh0LmdhZGdldC5VdGlsJztcbmltcG9ydCB7dGlwcHl9IGZyb20gJ2V4dC5nYWRnZXQuVGlwcHknO1xuXG5jb25zdCBhZGRCdXR0b24gPSAoJGJvZHk6IEpRdWVyeTxIVE1MQm9keUVsZW1lbnQ+LCBVUkw6IHN0cmluZyk6IHZvaWQgPT4ge1xuXHRjb25zdCB7d2dOYW1lc3BhY2VOdW1iZXJ9ID0gbXcuY29uZmlnLmdldCgpO1xuXHRpZiAod2dOYW1lc3BhY2VOdW1iZXIgPCAwKSB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0Y29uc3Qgb25Nb3VzZUVudGVyTW91c2VMZWF2ZSA9IChldmVudDogTW91c2VFdmVudCk6IHZvaWQgPT4ge1xuXHRcdGNoYW5nZU9wYWNpdHlXaGVuTW91c2VFbnRlck9yTGVhdmUoZXZlbnQpO1xuXHR9O1xuXG5cdGNvbnN0IHJlcG9ydEJ1dHRvbiA9IFJlcG9ydEJ1dHRvbihVUkwsIG9uTW91c2VFbnRlck1vdXNlTGVhdmUpO1xuXG5cdHRpcHB5KHJlcG9ydEJ1dHRvbiwge1xuXHRcdGFycm93OiB0cnVlLFxuXHRcdGNvbnRlbnQ6IHJlcG9ydEJ1dHRvbi5nZXRBdHRyaWJ1dGUoJ2FsdCcpIGFzIHN0cmluZyxcblx0XHRwbGFjZW1lbnQ6ICdsZWZ0Jyxcblx0fSk7XG5cblx0JGJvZHkuYXBwZW5kKHJlcG9ydEJ1dHRvbik7XG5cblx0Y29uc3Qgc2Nyb2xsTGlzdGVuZXIgPSAoKTogdm9pZCA9PiB7XG5cdFx0bGV0IGJ1dHRvbkJvdHRvbTogc3RyaW5nO1xuXG5cdFx0aWYgKFxuXHRcdFx0ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3Byb3ZlaXQnKSB8fFxuXHRcdFx0ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmdhZGdldC1jYXRfYV9sb3QtY29udGFpbmVyJykgfHxcblx0XHRcdGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNnYWRnZXQtd29yZF9jb3VudC10aXAnKVxuXHRcdCkge1xuXHRcdFx0YnV0dG9uQm90dG9tID0gJzI1M3B4Jztcblx0XHR9IGVsc2Uge1xuXHRcdFx0YnV0dG9uQm90dG9tID0gJzIxMXB4Jztcblx0XHR9XG5cblx0XHRyZXBvcnRCdXR0b24uc3R5bGUuYm90dG9tID0gYnV0dG9uQm90dG9tO1xuXHR9O1xuXHRjb25zdCBzY3JvbGxMaXN0ZW5lcldpdGhUaHJvdHRsZTogdHlwZW9mIHNjcm9sbExpc3RlbmVyID0gbXcudXRpbC50aHJvdHRsZShzY3JvbGxMaXN0ZW5lciwgMjAwKTtcblxuXHQkKHdpbmRvdykub24oJ3Njcm9sbCBzZWxlY3Rpb25jaGFuZ2UnLCBzY3JvbGxMaXN0ZW5lcldpdGhUaHJvdHRsZSk7XG59O1xuXG5leHBvcnQge2FkZEJ1dHRvbn07XG4iLCAiaW1wb3J0IHtnZXRNZXNzYWdlfSBmcm9tICcuL2kxOG4nO1xuXG5jb25zdCBhZGRQb3J0bGV0TGluayA9IChVUkw6IHN0cmluZyk6IHZvaWQgPT4ge1xuXHRjb25zdCB7d2dOYW1lc3BhY2VOdW1iZXJ9ID0gbXcuY29uZmlnLmdldCgpO1xuXHRpZiAod2dOYW1lc3BhY2VOdW1iZXIgPCAwKSB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0Y29uc3QgbGlua1RpbHRlOiBzdHJpbmcgPSBnZXRNZXNzYWdlKCdSZXBvcnQnKTtcblx0bXcudXRpbC5hZGRQb3J0bGV0TGluaygncC10YicsIFVSTCwgbGlua1RpbHRlLCAndC1yZXBvcnQnLCBsaW5rVGlsdGUpO1xufTtcblxuZXhwb3J0IHthZGRQb3J0bGV0TGlua307XG4iLCAiaW1wb3J0IHtnZXRNZXNzYWdlfSBmcm9tICcuL2kxOG4nO1xuXG5jb25zdCBmaWxsU3BlY2lhbFBhZ2UgPSAoJGJvZHk6IEpRdWVyeTxIVE1MQm9keUVsZW1lbnQ+KTogdm9pZCA9PiB7XG5cdGNvbnN0ICR3cFN1YmplY3RFbGVtZW50OiBKUXVlcnk8SFRNTElucHV0RWxlbWVudD4gPSAkYm9keS5maW5kPEhUTUxJbnB1dEVsZW1lbnQ+KCdpbnB1dFtuYW1lPVwid3BTdWJqZWN0XCJdJyk7XG5cdGlmICghJHdwU3ViamVjdEVsZW1lbnQubGVuZ3RoKSB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0Y29uc3QgaXNCb2R5SGFzQ2xhc3M6IGJvb2xlYW4gPVxuXHRcdCRib2R5Lmhhc0NsYXNzKCdwYWdlLVNwZWNpYWxf6IGU57O7X1JlcG9ydCcpIHx8ICRib2R5Lmhhc0NsYXNzKCdwYWdlLVNwZWNpYWxf6IGU57O7X3JlcG9ydCcpO1xuXHRpZiAoIWlzQm9keUhhc0NsYXNzKSB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0Y29uc3QgJHdwVGl0bGVFbGVtZW50OiBKUXVlcnk8SFRNTElucHV0RWxlbWVudD4gPSAkYm9keS5maW5kPEhUTUxJbnB1dEVsZW1lbnQ+KCdpbnB1dFtuYW1lPVwid3BUaXRsZVwiXScpO1xuXG5cdGNvbnN0IGxpbmtUaWx0ZTogc3RyaW5nID0gZ2V0TWVzc2FnZSgnUmVwb3J0Jyk7XG5cdGNvbnN0IHJlcG9ydFJldmlzaW9uOiBzdHJpbmcgPVxuXHRcdG13LnV0aWwuZ2V0UGFyYW1WYWx1ZSgncmVwb3J0X3JldmlzaW9uJykgfHwgbXcudXRpbC5nZXRQYXJhbVZhbHVlKCdyZXBvcnRyZXZpc2lvbicpIHx8ICcwJztcblx0bGV0IHJlcG9ydFRpdGxlOiBzdHJpbmcgPSBtdy51dGlsLmdldFBhcmFtVmFsdWUoJ3JlcG9ydF90aXRsZScpIHx8IG13LnV0aWwuZ2V0UGFyYW1WYWx1ZSgncmVwb3J0dGl0bGUnKSB8fCAnJztcblx0aWYgKHJlcG9ydFJldmlzaW9uICE9PSAnMCcpIHtcblx0XHRyZXBvcnRUaXRsZSArPSBnZXRNZXNzYWdlKCcoJykgKyBnZXRNZXNzYWdlKCdSZXZpc2lvbicpICsgcmVwb3J0UmV2aXNpb24gKyBnZXRNZXNzYWdlKCcpJyk7XG5cdH1cblxuXHRpZiAocmVwb3J0VGl0bGUpIHtcblx0XHQkd3BTdWJqZWN0RWxlbWVudC52YWwobGlua1RpbHRlICsgZ2V0TWVzc2FnZSgnOicpICsgcmVwb3J0VGl0bGUpO1xuXHRcdCR3cFRpdGxlRWxlbWVudC52YWwocmVwb3J0VGl0bGUpO1xuXHR9IGVsc2Uge1xuXHRcdCR3cFN1YmplY3RFbGVtZW50LnZhbChsaW5rVGlsdGUpO1xuXHR9XG59O1xuXG5leHBvcnQge2ZpbGxTcGVjaWFsUGFnZX07XG4iLCAiaW1wb3J0IHthZGRCdXR0b259IGZyb20gJy4vbW9kdWxlcy9hZGRCdXR0b24nO1xuaW1wb3J0IHthZGRQb3J0bGV0TGlua30gZnJvbSAnLi9tb2R1bGVzL2FkZFBvcnRsZXRMaW5rJztcbmltcG9ydCB7ZmlsbFNwZWNpYWxQYWdlfSBmcm9tICcuL21vZHVsZXMvZmlsbFNwZWNpYWxQYWdlJztcbmltcG9ydCB7Z2V0Qm9keX0gZnJvbSAnZXh0LmdhZGdldC5VdGlsJztcbmltcG9ydCB7Z2V0VVJMfSBmcm9tICcuL21vZHVsZXMvZ2V0VVJMJztcblxudm9pZCBnZXRCb2R5KCkudGhlbihmdW5jdGlvbiByZXBvcnQoJGJvZHk6IEpRdWVyeTxIVE1MQm9keUVsZW1lbnQ+KTogdm9pZCB7XG5cdGNvbnN0IFVSTDogc3RyaW5nID0gZ2V0VVJMKCk7XG5cdGFkZEJ1dHRvbigkYm9keSwgVVJMKTtcblx0YWRkUG9ydGxldExpbmsoVVJMKTtcblx0ZmlsbFNwZWNpYWxQYWdlKCRib2R5KTtcbn0pO1xuIiwgImNvbnN0IGdldFVSTCA9ICgpID0+IHtcblx0Y29uc3Qge3dnQ3VyUmV2aXNpb25JZCwgd2dQYWdlTmFtZSwgd2dSZXZpc2lvbklkfSA9IG13LmNvbmZpZy5nZXQoKTtcblx0Y29uc3QgVVJMOiBzdHJpbmcgPSBtdy51dGlsLmdldFVybCgnU3BlY2lhbDpDb250YWN0L1JlcG9ydCcsIHtcblx0XHRyZXBvcnR0aXRsZTogd2dQYWdlTmFtZSxcblx0XHRyZXBvcnRyZXZpc2lvbjogKHdnUmV2aXNpb25JZCB8fCB3Z0N1clJldmlzaW9uSWQpLnRvU3RyaW5nKCksXG5cdH0pO1xuXG5cdHJldHVybiBVUkw7XG59O1xuXG5leHBvcnQge2dldFVSTH07XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFNQSxhQUFxQjtBQUMzQixJQUFNQyxvQkFBQSxHQUFBQyxPQUErQkYsWUFBVSxTQUFBOztBQ0EvQyxJQUFBRyxxQkFBa0JDLFFBQUFDLFFBQUEsa0JBQUEsR0FBQSxDQUFBOztBQ0RsQixJQUFBQyxvQkFBdUJELFFBQUEsaUJBQUE7QUFFdkIsSUFBTUUsa0JBQWtCQSxNQUFNO0FBQzdCLFNBQU87SUFDTixNQUFBLEdBQUtELGtCQUFBRSxVQUFTO01BQ2JDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO0lBQ0wsQ0FBQztJQUNELE1BQUEsR0FBS0wsa0JBQUFFLFVBQVM7TUFDYkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7SUFDTCxDQUFDO0lBQ0QsTUFBQSxHQUFLTCxrQkFBQUUsVUFBUztNQUNiQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtJQUNMLENBQUM7SUFDREMsU0FBQSxHQUFRTixrQkFBQUUsVUFBUztNQUNoQkMsSUFBSTtNQUNKQyxJQUFJO01BQ0osV0FBVztNQUNYLFdBQVc7SUFDWixDQUFDO0lBQ0RHLFdBQUEsR0FBVVAsa0JBQUFF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QzNHLE1BQUlELG1CQUFtQixLQUFLO0FBQzNCRSxtQkFBZTVELFdBQVcsR0FBRyxJQUFJQSxXQUFXLFVBQVUsSUFBSTBELGlCQUFpQjFELFdBQVcsR0FBRztFQUMxRjtBQUVBLE1BQUk0RCxhQUFhO0FBQ2hCUixzQkFBa0JTLElBQUlYLFlBQVlsRCxXQUFXLEdBQUcsSUFBSTRELFdBQVc7QUFDL0RILG9CQUFnQkksSUFBSUQsV0FBVztFQUNoQyxPQUFPO0FBQ05SLHNCQUFrQlMsSUFBSVgsU0FBUztFQUNoQztBQUNEOztBQzNCQSxJQUFBWSxxQkFBc0J4RSxRQUFBLGlCQUFBOztBQ0h0QixJQUFNeUUsU0FBU0EsTUFBTTtBQUNwQixRQUFNO0lBQUNDO0lBQWlCQztJQUFZQztFQUFZLElBQUl6QyxHQUFHQyxPQUFPQyxJQUFJO0FBQ2xFLFFBQU12QixNQUFjcUIsR0FBR29CLEtBQUtzQixPQUFPLDBCQUEwQjtJQUM1REMsYUFBYUg7SUFDYkksaUJBQWlCSCxnQkFBZ0JGLGlCQUFpQk0sU0FBUztFQUM1RCxDQUFDO0FBRUQsU0FBT2xFO0FBQ1I7O0FERkEsTUFBQSxHQUFLMEQsbUJBQUFTLFNBQVEsRUFBRUMsS0FBSyxTQUFTQyxPQUFPbEQsT0FBc0M7QUFDekUsUUFBTW5CLE1BQWMyRCxPQUFPO0FBQzNCekMsWUFBVUMsT0FBT25CLEdBQUc7QUFDcEI2QyxpQkFBZTdDLEdBQUc7QUFDbEIrQyxrQkFBZ0I1QixLQUFLO0FBQ3RCLENBQUM7IiwKICAibmFtZXMiOiBbIkNMQVNTX05BTUUiLCAiQ0xBU1NfTkFNRV9CVVRUT04iLCAiY29uY2F0IiwgImltcG9ydF9leHRfZ2FkZ2V0MiIsICJfX3RvRVNNIiwgInJlcXVpcmUiLCAiaW1wb3J0X2V4dF9nYWRnZXQiLCAiZ2V0STE4bk1lc3NhZ2VzIiwgImxvY2FsaXplIiwgImVuIiwgImphIiwgInpoIiwgIlJlcG9ydCIsICJSZXZpc2lvbiIsICJpMThuTWVzc2FnZXMiLCAiZ2V0TWVzc2FnZSIsICJrZXkiLCAiTElOS19USVRMRSIsICJSZXBvcnRCdXR0b24iLCAiVVJMIiwgIm9uTW91c2VFbnRlckxlYXZlIiwgImRlZmF1bHQiLCAiY3JlYXRlRWxlbWVudCIsICJjbGFzc05hbWUiLCAic3JjIiwgIndpZHRoIiwgImhlaWdodCIsICJkcmFnZ2FibGUiLCAiYWx0IiwgIm9uQ2xpY2siLCAid2luZG93IiwgIm9wZW4iLCAib25Nb3VzZUVudGVyIiwgIm9uTW91c2VMZWF2ZSIsICJSZXBvcnRCdXR0b25fZGVmYXVsdCIsICJpbXBvcnRfZXh0X2dhZGdldDMiLCAiaW1wb3J0X2V4dF9nYWRnZXQ0IiwgImFkZEJ1dHRvbiIsICIkYm9keSIsICJ3Z05hbWVzcGFjZU51bWJlciIsICJtdyIsICJjb25maWciLCAiZ2V0IiwgIm9uTW91c2VFbnRlck1vdXNlTGVhdmUiLCAiZXZlbnQiLCAiY2hhbmdlT3BhY2l0eVdoZW5Nb3VzZUVudGVyT3JMZWF2ZSIsICJyZXBvcnRCdXR0b24iLCAidGlwcHkiLCAiYXJyb3ciLCAiY29udGVudCIsICJnZXRBdHRyaWJ1dGUiLCAicGxhY2VtZW50IiwgImFwcGVuZCIsICJzY3JvbGxMaXN0ZW5lciIsICJidXR0b25Cb3R0b20iLCAiZG9jdW1lbnQiLCAicXVlcnlTZWxlY3RvciIsICJzdHlsZSIsICJib3R0b20iLCAic2Nyb2xsTGlzdGVuZXJXaXRoVGhyb3R0bGUiLCAidXRpbCIsICJ0aHJvdHRsZSIsICIkIiwgIm9uIiwgImFkZFBvcnRsZXRMaW5rIiwgImxpbmtUaWx0ZSIsICJmaWxsU3BlY2lhbFBhZ2UiLCAiJHdwU3ViamVjdEVsZW1lbnQiLCAiZmluZCIsICJsZW5ndGgiLCAiaXNCb2R5SGFzQ2xhc3MiLCAiaGFzQ2xhc3MiLCAiJHdwVGl0bGVFbGVtZW50IiwgInJlcG9ydFJldmlzaW9uIiwgImdldFBhcmFtVmFsdWUiLCAicmVwb3J0VGl0bGUiLCAidmFsIiwgImltcG9ydF9leHRfZ2FkZ2V0NSIsICJnZXRVUkwiLCAid2dDdXJSZXZpc2lvbklkIiwgIndnUGFnZU5hbWUiLCAid2dSZXZpc2lvbklkIiwgImdldFVybCIsICJyZXBvcnR0aXRsZSIsICJyZXBvcnRyZXZpc2lvbiIsICJ0b1N0cmluZyIsICJnZXRCb2R5IiwgInRoZW4iLCAicmVwb3J0Il0KfQo= +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL1JlcG9ydC9tb2R1bGVzL2NvbnN0YW50LnRzIiwgInNyYy9SZXBvcnQvY29tcG9uZW50cy9SZXBvcnRCdXR0b24udHN4IiwgInNyYy9SZXBvcnQvbW9kdWxlcy9pMThuLnRzIiwgInNyYy9SZXBvcnQvbW9kdWxlcy9hZGRCdXR0b24udHMiLCAic3JjL1JlcG9ydC9tb2R1bGVzL2FkZFBvcnRsZXRMaW5rLnRzIiwgInNyYy9SZXBvcnQvbW9kdWxlcy9maWxsU3BlY2lhbFBhZ2UudHMiLCAic3JjL1JlcG9ydC9SZXBvcnQudHMiLCAic3JjL1JlcG9ydC9tb2R1bGVzL2dldFVSTC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiY29uc3QgQ0xBU1NfTkFNRTogc3RyaW5nID0gJ2dhZGdldC1yZXBvcnQnO1xuY29uc3QgQ0xBU1NfTkFNRV9CVVRUT046IHN0cmluZyA9IGAke0NMQVNTX05BTUV9LWJ1dHRvbmA7XG5cbmV4cG9ydCB7Q0xBU1NfTkFNRV9CVVRUT059O1xuIiwgImltcG9ydCB7Q0xBU1NfTkFNRV9CVVRUT059IGZyb20gJy4uL21vZHVsZXMvY29uc3RhbnQnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ2V4dC5nYWRnZXQuSlNYJztcbmltcG9ydCB7Z2V0TWVzc2FnZX0gZnJvbSAnLi4vbW9kdWxlcy9pMThuJztcblxuY29uc3QgTElOS19USVRMRTogc3RyaW5nID0gZ2V0TWVzc2FnZSgnUmVwb3J0Jyk7XG5cbmNvbnN0IFJlcG9ydEJ1dHRvbiA9IChVUkw6IHN0cmluZywgb25Nb3VzZUVudGVyTGVhdmU6IChldmVudDogTW91c2VFdmVudCkgPT4gdm9pZCkgPT4gKFxuXHQ8aW1nXG5cdFx0Y2xhc3NOYW1lPXtbQ0xBU1NfTkFNRV9CVVRUT04sICdub3ByaW50J119XG5cdFx0c3JjPVwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScxJyBoZWlnaHQ9JzEnJTNFJTNDL3N2ZyUzRVwiXG5cdFx0d2lkdGg9XCIzMlwiXG5cdFx0aGVpZ2h0PVwiMzJcIlxuXHRcdGRyYWdnYWJsZT17ZmFsc2V9XG5cdFx0YWx0PXtMSU5LX1RJVExFfVxuXHRcdGFyaWEtbGFiZWw9e0xJTktfVElUTEV9XG5cdFx0b25DbGljaz17KCk6IHZvaWQgPT4ge1xuXHRcdFx0d2luZG93Lm9wZW4oVVJMLCAnX2JsYW5rJywgJ25vb3BlbmVyLG5vcmVmZXJyZXInKTtcblx0XHR9fVxuXHRcdG9uTW91c2VFbnRlcj17b25Nb3VzZUVudGVyTGVhdmV9XG5cdFx0b25Nb3VzZUxlYXZlPXtvbk1vdXNlRW50ZXJMZWF2ZX1cblx0Lz5cbik7XG5cbmV4cG9ydCBkZWZhdWx0IFJlcG9ydEJ1dHRvbjtcbiIsICJpbXBvcnQge2xvY2FsaXplfSBmcm9tICdleHQuZ2FkZ2V0LmkxOG4nO1xuXG5jb25zdCBnZXRJMThuTWVzc2FnZXMgPSAoKSA9PiB7XG5cdHJldHVybiB7XG5cdFx0JzonOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJzogJyxcblx0XHRcdGphOiAn77yaJyxcblx0XHRcdHpoOiAn77yaJyxcblx0XHR9KSxcblx0XHQnKCc6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnKCcsXG5cdFx0XHRqYTogJ++8iCcsXG5cdFx0XHR6aDogJ++8iCcsXG5cdFx0fSksXG5cdFx0JyknOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJyknLFxuXHRcdFx0amE6ICfvvIknLFxuXHRcdFx0emg6ICfvvIknLFxuXHRcdH0pLFxuXHRcdFJlcG9ydDogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdSZXBvcnQgdGhpcyBwYWdlJyxcblx0XHRcdGphOiAn44GT44Gu44Oa44O844K444KS5aCx5ZGKJyxcblx0XHRcdCd6aC1oYW5zJzogJ+aKpeWRiuS4jeiJr+S/oeaBrycsXG5cdFx0XHQnemgtaGFudCc6ICfloLHlkYrkuI3oia/os4foqIonLFxuXHRcdH0pLFxuXHRcdFJldmlzaW9uOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ1JldmlzaW9uJyxcblx0XHRcdGphOiAn54mIJyxcblx0XHRcdHpoOiAn54mI5pysJyxcblx0XHR9KSxcblx0fTtcbn07XG5cbmNvbnN0IGkxOG5NZXNzYWdlcyA9IGdldEkxOG5NZXNzYWdlcygpO1xuXG5jb25zdCBnZXRNZXNzYWdlOiBHZXRNZXNzYWdlczx0eXBlb2YgaTE4bk1lc3NhZ2VzPiA9IChrZXkpID0+IHtcblx0cmV0dXJuIGkxOG5NZXNzYWdlc1trZXldIHx8IGtleTtcbn07XG5cbmV4cG9ydCB7Z2V0TWVzc2FnZX07XG4iLCAiaW1wb3J0IFJlcG9ydEJ1dHRvbiBmcm9tICcuLi9jb21wb25lbnRzL1JlcG9ydEJ1dHRvbic7XG5pbXBvcnQge2NoYW5nZU9wYWNpdHlXaGVuTW91c2VFbnRlck9yTGVhdmV9IGZyb20gJ2V4dC5nYWRnZXQuVXRpbCc7XG5pbXBvcnQge3RpcHB5fSBmcm9tICdleHQuZ2FkZ2V0LlRpcHB5JztcblxuY29uc3QgYWRkQnV0dG9uID0gKCRib2R5OiBKUXVlcnk8SFRNTEJvZHlFbGVtZW50PiwgVVJMOiBzdHJpbmcpOiB2b2lkID0+IHtcblx0Y29uc3Qge3dnTmFtZXNwYWNlTnVtYmVyfSA9IG13LmNvbmZpZy5nZXQoKTtcblx0aWYgKHdnTmFtZXNwYWNlTnVtYmVyIDwgMCkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGNvbnN0IG9uTW91c2VFbnRlck1vdXNlTGVhdmUgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkID0+IHtcblx0XHRjaGFuZ2VPcGFjaXR5V2hlbk1vdXNlRW50ZXJPckxlYXZlKGV2ZW50KTtcblx0fTtcblxuXHRjb25zdCByZXBvcnRCdXR0b24gPSBSZXBvcnRCdXR0b24oVVJMLCBvbk1vdXNlRW50ZXJNb3VzZUxlYXZlKTtcblxuXHR0aXBweShyZXBvcnRCdXR0b24sIHtcblx0XHRhcnJvdzogdHJ1ZSxcblx0XHRjb250ZW50OiByZXBvcnRCdXR0b24uZ2V0QXR0cmlidXRlKCdhbHQnKSBhcyBzdHJpbmcsXG5cdFx0cGxhY2VtZW50OiAnbGVmdCcsXG5cdH0pO1xuXG5cdCRib2R5LmFwcGVuZChyZXBvcnRCdXR0b24pO1xuXG5cdGNvbnN0IHNjcm9sbExpc3RlbmVyID0gKCk6IHZvaWQgPT4ge1xuXHRcdGxldCBidXR0b25Cb3R0b206IHN0cmluZztcblxuXHRcdGlmIChcblx0XHRcdGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNwcm92ZWl0JykgfHxcblx0XHRcdGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5nYWRnZXQtY2F0X2FfbG90LWNvbnRhaW5lcicpIHx8XG5cdFx0XHRkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjZ2FkZ2V0LXdvcmRfY291bnQtdGlwJylcblx0XHQpIHtcblx0XHRcdGJ1dHRvbkJvdHRvbSA9ICcyNTNweCc7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGJ1dHRvbkJvdHRvbSA9ICcyMTFweCc7XG5cdFx0fVxuXG5cdFx0cmVwb3J0QnV0dG9uLnN0eWxlLmJvdHRvbSA9IGJ1dHRvbkJvdHRvbTtcblx0fTtcblx0Y29uc3Qgc2Nyb2xsTGlzdGVuZXJXaXRoVGhyb3R0bGU6IHR5cGVvZiBzY3JvbGxMaXN0ZW5lciA9IG13LnV0aWwudGhyb3R0bGUoc2Nyb2xsTGlzdGVuZXIsIDIwMCk7XG5cblx0JCh3aW5kb3cpLm9uKCdzY3JvbGwgc2VsZWN0aW9uY2hhbmdlJywgc2Nyb2xsTGlzdGVuZXJXaXRoVGhyb3R0bGUpO1xufTtcblxuZXhwb3J0IHthZGRCdXR0b259O1xuIiwgImltcG9ydCB7Z2V0TWVzc2FnZX0gZnJvbSAnLi9pMThuJztcblxuY29uc3QgYWRkUG9ydGxldExpbmsgPSAoVVJMOiBzdHJpbmcpOiB2b2lkID0+IHtcblx0Y29uc3Qge3dnTmFtZXNwYWNlTnVtYmVyfSA9IG13LmNvbmZpZy5nZXQoKTtcblx0aWYgKHdnTmFtZXNwYWNlTnVtYmVyIDwgMCkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGNvbnN0IGxpbmtUaWx0ZTogc3RyaW5nID0gZ2V0TWVzc2FnZSgnUmVwb3J0Jyk7XG5cdG13LnV0aWwuYWRkUG9ydGxldExpbmsoJ3AtdGInLCBVUkwsIGxpbmtUaWx0ZSwgJ3QtcmVwb3J0JywgbGlua1RpbHRlKTtcbn07XG5cbmV4cG9ydCB7YWRkUG9ydGxldExpbmt9O1xuIiwgImltcG9ydCB7Z2V0TWVzc2FnZX0gZnJvbSAnLi9pMThuJztcblxuY29uc3QgZmlsbFNwZWNpYWxQYWdlID0gKCRib2R5OiBKUXVlcnk8SFRNTEJvZHlFbGVtZW50Pik6IHZvaWQgPT4ge1xuXHRjb25zdCAkd3BTdWJqZWN0RWxlbWVudDogSlF1ZXJ5PEhUTUxJbnB1dEVsZW1lbnQ+ID0gJGJvZHkuZmluZDxIVE1MSW5wdXRFbGVtZW50PignaW5wdXRbbmFtZT1cIndwU3ViamVjdFwiXScpO1xuXHRpZiAoISR3cFN1YmplY3RFbGVtZW50Lmxlbmd0aCkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGNvbnN0IGlzQm9keUhhc0NsYXNzOiBib29sZWFuID1cblx0XHQkYm9keS5oYXNDbGFzcygncGFnZS1TcGVjaWFsX+iBlOezu19SZXBvcnQnKSB8fCAkYm9keS5oYXNDbGFzcygncGFnZS1TcGVjaWFsX+iBlOezu19yZXBvcnQnKTtcblx0aWYgKCFpc0JvZHlIYXNDbGFzcykge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGNvbnN0ICR3cFRpdGxlRWxlbWVudDogSlF1ZXJ5PEhUTUxJbnB1dEVsZW1lbnQ+ID0gJGJvZHkuZmluZDxIVE1MSW5wdXRFbGVtZW50PignaW5wdXRbbmFtZT1cIndwVGl0bGVcIl0nKTtcblxuXHRjb25zdCBsaW5rVGlsdGU6IHN0cmluZyA9IGdldE1lc3NhZ2UoJ1JlcG9ydCcpO1xuXHRjb25zdCByZXBvcnRSZXZpc2lvbjogc3RyaW5nID1cblx0XHRtdy51dGlsLmdldFBhcmFtVmFsdWUoJ3JlcG9ydF9yZXZpc2lvbicpIHx8IG13LnV0aWwuZ2V0UGFyYW1WYWx1ZSgncmVwb3J0cmV2aXNpb24nKSB8fCAnMCc7XG5cdGxldCByZXBvcnRUaXRsZTogc3RyaW5nID0gbXcudXRpbC5nZXRQYXJhbVZhbHVlKCdyZXBvcnRfdGl0bGUnKSB8fCBtdy51dGlsLmdldFBhcmFtVmFsdWUoJ3JlcG9ydHRpdGxlJykgfHwgJyc7XG5cdGlmIChyZXBvcnRSZXZpc2lvbiAhPT0gJzAnKSB7XG5cdFx0cmVwb3J0VGl0bGUgKz0gZ2V0TWVzc2FnZSgnKCcpICsgZ2V0TWVzc2FnZSgnUmV2aXNpb24nKSArIHJlcG9ydFJldmlzaW9uICsgZ2V0TWVzc2FnZSgnKScpO1xuXHR9XG5cblx0aWYgKHJlcG9ydFRpdGxlKSB7XG5cdFx0JHdwU3ViamVjdEVsZW1lbnQudmFsKGxpbmtUaWx0ZSArIGdldE1lc3NhZ2UoJzonKSArIHJlcG9ydFRpdGxlKTtcblx0XHQkd3BUaXRsZUVsZW1lbnQudmFsKHJlcG9ydFRpdGxlKTtcblx0fSBlbHNlIHtcblx0XHQkd3BTdWJqZWN0RWxlbWVudC52YWwobGlua1RpbHRlKTtcblx0fVxufTtcblxuZXhwb3J0IHtmaWxsU3BlY2lhbFBhZ2V9O1xuIiwgImltcG9ydCB7YWRkQnV0dG9ufSBmcm9tICcuL21vZHVsZXMvYWRkQnV0dG9uJztcbmltcG9ydCB7YWRkUG9ydGxldExpbmt9IGZyb20gJy4vbW9kdWxlcy9hZGRQb3J0bGV0TGluayc7XG5pbXBvcnQge2ZpbGxTcGVjaWFsUGFnZX0gZnJvbSAnLi9tb2R1bGVzL2ZpbGxTcGVjaWFsUGFnZSc7XG5pbXBvcnQge2dldEJvZHl9IGZyb20gJ2V4dC5nYWRnZXQuVXRpbCc7XG5pbXBvcnQge2dldFVSTH0gZnJvbSAnLi9tb2R1bGVzL2dldFVSTCc7XG5cbnZvaWQgZ2V0Qm9keSgpLnRoZW4oZnVuY3Rpb24gcmVwb3J0KCRib2R5OiBKUXVlcnk8SFRNTEJvZHlFbGVtZW50Pik6IHZvaWQge1xuXHRjb25zdCBVUkw6IHN0cmluZyA9IGdldFVSTCgpO1xuXHRhZGRCdXR0b24oJGJvZHksIFVSTCk7XG5cdGFkZFBvcnRsZXRMaW5rKFVSTCk7XG5cdGZpbGxTcGVjaWFsUGFnZSgkYm9keSk7XG59KTtcbiIsICJjb25zdCBnZXRVUkwgPSAoKSA9PiB7XG5cdGNvbnN0IHt3Z0N1clJldmlzaW9uSWQsIHdnUGFnZU5hbWUsIHdnUmV2aXNpb25JZH0gPSBtdy5jb25maWcuZ2V0KCk7XG5cdGNvbnN0IFVSTDogc3RyaW5nID0gbXcudXRpbC5nZXRVcmwoJ1NwZWNpYWw6Q29udGFjdC9SZXBvcnQnLCB7XG5cdFx0cmVwb3J0dGl0bGU6IHdnUGFnZU5hbWUsXG5cdFx0cmVwb3J0cmV2aXNpb246ICh3Z1JldmlzaW9uSWQgfHwgd2dDdXJSZXZpc2lvbklkKS50b1N0cmluZygpLFxuXHR9KTtcblxuXHRyZXR1cm4gVVJMO1xufTtcblxuZXhwb3J0IHtnZXRVUkx9O1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsSUFBTUEsYUFBcUI7QUFDM0IsSUFBTUMsb0JBQUEsR0FBQUMsT0FBK0JGLFlBQVUsU0FBQTs7QUNBL0MsSUFBQUcscUJBQWtCQyxRQUFBQyxRQUFBLGdCQUFBLEdBQUEsQ0FBQTs7QUNEbEIsSUFBQUMsb0JBQXVCRCxRQUFBLGlCQUFBO0FBRXZCLElBQU1FLGtCQUFrQkEsTUFBTTtBQUM3QixTQUFPO0lBQ04sTUFBQSxHQUFLRCxrQkFBQUUsVUFBUztNQUNiQyxJQUFJO01BQ0pDLElBQUk7TUFDSkMsSUFBSTtJQUNMLENBQUM7SUFDRCxNQUFBLEdBQUtMLGtCQUFBRSxVQUFTO01BQ2JDLElBQUk7TUFDSkMsSUFBSTtNQUNKQyxJQUFJO0lBQ0wsQ0FBQztJQUNELE1BQUEsR0FBS0wsa0JBQUFFLFVBQVM7TUFDYkMsSUFBSTtNQUNKQyxJQUFJO01BQ0pDLElBQUk7SUFDTCxDQUFDO0lBQ0RDLFNBQUEsR0FBUU4sa0JBQUFFLFVBQVM7TUFDaEJDLElBQUk7TUFDSkMsSUFBSTtNQUNKLFdBQVc7TUFDWCxXQUFXO0lBQ1osQ0FBQztJQUNERyxXQUFBLEdBQVVQLGtCQUFBRSxV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RyxNQUFJRCxtQkFBbUIsS0FBSztBQUMzQkUsbUJBQWU1RCxXQUFXLEdBQUcsSUFBSUEsV0FBVyxVQUFVLElBQUkwRCxpQkFBaUIxRCxXQUFXLEdBQUc7RUFDMUY7QUFFQSxNQUFJNEQsYUFBYTtBQUNoQlIsc0JBQWtCUyxJQUFJWCxZQUFZbEQsV0FBVyxHQUFHLElBQUk0RCxXQUFXO0FBQy9ESCxvQkFBZ0JJLElBQUlELFdBQVc7RUFDaEMsT0FBTztBQUNOUixzQkFBa0JTLElBQUlYLFNBQVM7RUFDaEM7QUFDRDs7QUMzQkEsSUFBQVkscUJBQXNCeEUsUUFBQSxpQkFBQTs7QUNIdEIsSUFBTXlFLFNBQVNBLE1BQU07QUFDcEIsUUFBTTtJQUFDQztJQUFpQkM7SUFBWUM7RUFBWSxJQUFJekMsR0FBR0MsT0FBT0MsSUFBSTtBQUNsRSxRQUFNdkIsTUFBY3FCLEdBQUdvQixLQUFLc0IsT0FBTywwQkFBMEI7SUFDNURDLGFBQWFIO0lBQ2JJLGlCQUFpQkgsZ0JBQWdCRixpQkFBaUJNLFNBQVM7RUFDNUQsQ0FBQztBQUVELFNBQU9sRTtBQUNSOztBREZBLE1BQUEsR0FBSzBELG1CQUFBUyxTQUFRLEVBQUVDLEtBQUssU0FBU0MsT0FBT2xELE9BQXNDO0FBQ3pFLFFBQU1uQixNQUFjMkQsT0FBTztBQUMzQnpDLFlBQVVDLE9BQU9uQixHQUFHO0FBQ3BCNkMsaUJBQWU3QyxHQUFHO0FBQ2xCK0Msa0JBQWdCNUIsS0FBSztBQUN0QixDQUFDOyIsCiAgIm5hbWVzIjogWyJDTEFTU19OQU1FIiwgIkNMQVNTX05BTUVfQlVUVE9OIiwgImNvbmNhdCIsICJpbXBvcnRfZXh0X2dhZGdldDIiLCAiX190b0VTTSIsICJyZXF1aXJlIiwgImltcG9ydF9leHRfZ2FkZ2V0IiwgImdldEkxOG5NZXNzYWdlcyIsICJsb2NhbGl6ZSIsICJlbiIsICJqYSIsICJ6aCIsICJSZXBvcnQiLCAiUmV2aXNpb24iLCAiaTE4bk1lc3NhZ2VzIiwgImdldE1lc3NhZ2UiLCAia2V5IiwgIkxJTktfVElUTEUiLCAiUmVwb3J0QnV0dG9uIiwgIlVSTCIsICJvbk1vdXNlRW50ZXJMZWF2ZSIsICJkZWZhdWx0IiwgImNyZWF0ZUVsZW1lbnQiLCAiY2xhc3NOYW1lIiwgInNyYyIsICJ3aWR0aCIsICJoZWlnaHQiLCAiZHJhZ2dhYmxlIiwgImFsdCIsICJvbkNsaWNrIiwgIndpbmRvdyIsICJvcGVuIiwgIm9uTW91c2VFbnRlciIsICJvbk1vdXNlTGVhdmUiLCAiUmVwb3J0QnV0dG9uX2RlZmF1bHQiLCAiaW1wb3J0X2V4dF9nYWRnZXQzIiwgImltcG9ydF9leHRfZ2FkZ2V0NCIsICJhZGRCdXR0b24iLCAiJGJvZHkiLCAid2dOYW1lc3BhY2VOdW1iZXIiLCAibXciLCAiY29uZmlnIiwgImdldCIsICJvbk1vdXNlRW50ZXJNb3VzZUxlYXZlIiwgImV2ZW50IiwgImNoYW5nZU9wYWNpdHlXaGVuTW91c2VFbnRlck9yTGVhdmUiLCAicmVwb3J0QnV0dG9uIiwgInRpcHB5IiwgImFycm93IiwgImNvbnRlbnQiLCAiZ2V0QXR0cmlidXRlIiwgInBsYWNlbWVudCIsICJhcHBlbmQiLCAic2Nyb2xsTGlzdGVuZXIiLCAiYnV0dG9uQm90dG9tIiwgImRvY3VtZW50IiwgInF1ZXJ5U2VsZWN0b3IiLCAic3R5bGUiLCAiYm90dG9tIiwgInNjcm9sbExpc3RlbmVyV2l0aFRocm90dGxlIiwgInV0aWwiLCAidGhyb3R0bGUiLCAiJCIsICJvbiIsICJhZGRQb3J0bGV0TGluayIsICJsaW5rVGlsdGUiLCAiZmlsbFNwZWNpYWxQYWdlIiwgIiR3cFN1YmplY3RFbGVtZW50IiwgImZpbmQiLCAibGVuZ3RoIiwgImlzQm9keUhhc0NsYXNzIiwgImhhc0NsYXNzIiwgIiR3cFRpdGxlRWxlbWVudCIsICJyZXBvcnRSZXZpc2lvbiIsICJnZXRQYXJhbVZhbHVlIiwgInJlcG9ydFRpdGxlIiwgInZhbCIsICJpbXBvcnRfZXh0X2dhZGdldDUiLCAiZ2V0VVJMIiwgIndnQ3VyUmV2aXNpb25JZCIsICJ3Z1BhZ2VOYW1lIiwgIndnUmV2aXNpb25JZCIsICJnZXRVcmwiLCAicmVwb3J0dGl0bGUiLCAicmVwb3J0cmV2aXNpb24iLCAidG9TdHJpbmciLCAiZ2V0Qm9keSIsICJ0aGVuIiwgInJlcG9ydCJdCn0K diff --git a/dist/ScrollUpButton/ScrollUpButton.js b/dist/ScrollUpButton/ScrollUpButton.js index d3da4d867..80fa24343 100644 --- a/dist/ScrollUpButton/ScrollUpButton.js +++ b/dist/ScrollUpButton/ScrollUpButton.js @@ -127,7 +127,7 @@ var CLASS_NAME = "gadget-scroll_up_button"; var CLASS_NAME_DOWN = "".concat(CLASS_NAME, "-down"); var CLASS_NAME_UP = "".concat(CLASS_NAME, "-up"); //! src/ScrollUpButton/components/scrollButton.tsx -var import_ext_gadget2 = __toESM(require("ext.gadget.React"), 1); +var import_ext_gadget2 = __toESM(require("ext.gadget.JSX"), 1); //! src/ScrollUpButton/modules/i18n.ts var import_ext_gadget = require("ext.gadget.i18n"); var getI18nMessages = () => { @@ -238,4 +238,4 @@ void (0, import_ext_gadget6.getBody)().then(function scrollUpButton($body) { /* */ -//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL1Njcm9sbFVwQnV0dG9uL1Njcm9sbFVwQnV0dG9uLnRzIiwgInNyYy9TY3JvbGxVcEJ1dHRvbi9tb2R1bGVzL2NvbnN0YW50LnRzIiwgInNyYy9TY3JvbGxVcEJ1dHRvbi9jb21wb25lbnRzL3Njcm9sbEJ1dHRvbi50c3giLCAic3JjL1Njcm9sbFVwQnV0dG9uL21vZHVsZXMvaTE4bi50cyIsICJzcmMvU2Nyb2xsVXBCdXR0b24vbW9kdWxlcy9pbnNlcnRFbGVtZW50QW5kTGlzdGVuZXIudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB7Z2V0Qm9keX0gZnJvbSAnZXh0LmdhZGdldC5VdGlsJztcbmltcG9ydCB7aW5zZXJ0RWxlbWVudGFuZExpc3RlbmVyfSBmcm9tICcuL21vZHVsZXMvaW5zZXJ0RWxlbWVudEFuZExpc3RlbmVyJztcblxudm9pZCBnZXRCb2R5KCkudGhlbihmdW5jdGlvbiBzY3JvbGxVcEJ1dHRvbigkYm9keTogSlF1ZXJ5PEhUTUxCb2R5RWxlbWVudD4pOiB2b2lkIHtcblx0aW5zZXJ0RWxlbWVudGFuZExpc3RlbmVyKCRib2R5KTtcbn0pO1xuIiwgImNvbnN0IENMQVNTX05BTUU6IHN0cmluZyA9ICdnYWRnZXQtc2Nyb2xsX3VwX2J1dHRvbic7XG5jb25zdCBDTEFTU19OQU1FX0RPV046IHN0cmluZyA9IGAke0NMQVNTX05BTUV9LWRvd25gO1xuY29uc3QgQ0xBU1NfTkFNRV9VUDogc3RyaW5nID0gYCR7Q0xBU1NfTkFNRX0tdXBgO1xuXG5leHBvcnQge0NMQVNTX05BTUUsIENMQVNTX05BTUVfRE9XTiwgQ0xBU1NfTkFNRV9VUH07XG4iLCAiaW1wb3J0IHtDTEFTU19OQU1FLCBDTEFTU19OQU1FX0RPV04sIENMQVNTX05BTUVfVVB9IGZyb20gJy4uL21vZHVsZXMvY29uc3RhbnQnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ2V4dC5nYWRnZXQuUmVhY3QnO1xuaW1wb3J0IHtnZXRNZXNzYWdlfSBmcm9tICcuLi9tb2R1bGVzL2kxOG4nO1xuaW1wb3J0IHtzY3JvbGxUb3B9IGZyb20gJ2V4dC5nYWRnZXQuVXRpbCc7XG5cbmludGVyZmFjZSBQcm9wcyB7XG5cdGFkZGl0aW9uYWxDbGFzc05hbWU6IHN0cmluZztcblx0YWx0OiBzdHJpbmc7XG5cdGFyaWFMYWJlbDogc3RyaW5nO1xuXHRvbkNsaWNrOiAoZXZlbnQ/OiBNb3VzZUV2ZW50KSA9PiB2b2lkO1xuXHRvbk1vdXNlRW50ZXI6IChldmVudDogTW91c2VFdmVudCkgPT4gdm9pZDtcblx0b25Nb3VzZUxlYXZlOiAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHZvaWQ7XG59XG5cbmZ1bmN0aW9uIFNjcm9sbEJ1dHRvbihwcm9wczogUHJvcHMpIHtcblx0Y29uc3Qge2FkZGl0aW9uYWxDbGFzc05hbWUsIGFsdCwgYXJpYUxhYmVsLCBvbkNsaWNrLCBvbk1vdXNlRW50ZXIsIG9uTW91c2VMZWF2ZX0gPSBwcm9wcztcblxuXHRyZXR1cm4gKFxuXHRcdDxpbWdcblx0XHRcdGNsYXNzTmFtZT17W0NMQVNTX05BTUUsIGFkZGl0aW9uYWxDbGFzc05hbWUsICdub3ByaW50J119XG5cdFx0XHRzcmM9e1wiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScxJyBoZWlnaHQ9JzEnJTNFJTNDL3N2ZyUzRVwifVxuXHRcdFx0d2lkdGg9XCIzMlwiXG5cdFx0XHRoZWlnaHQ9XCIzMlwiXG5cdFx0XHRkcmFnZ2FibGU9e2ZhbHNlfVxuXHRcdFx0YWx0PXthbHR9XG5cdFx0XHRhcmlhLWxhYmVsPXthcmlhTGFiZWx9XG5cdFx0XHRvbkNsaWNrPXtvbkNsaWNrfVxuXHRcdFx0b25Nb3VzZUVudGVyPXtvbk1vdXNlRW50ZXJ9XG5cdFx0XHRvbk1vdXNlTGVhdmU9e29uTW91c2VMZWF2ZX1cblx0XHQvPlxuXHQpO1xufVxuXG5jb25zdCBUT19CT1RUT006IHN0cmluZyA9IGdldE1lc3NhZ2UoJ1RvQm90dG9tJyk7XG5jb25zdCBUT19UT1A6IHN0cmluZyA9IGdldE1lc3NhZ2UoJ1RvVG9wJyk7XG5cbmNvbnN0IFNjcm9sbERvd25CdXR0b24gPSAob25Nb3VzZUVudGVyTW91c2VMZWF2ZTogKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB2b2lkKSA9PiAoXG5cdDxTY3JvbGxCdXR0b25cblx0XHRhZGRpdGlvbmFsQ2xhc3NOYW1lPXtDTEFTU19OQU1FX0RPV059XG5cdFx0YWx0PXtUT19CT1RUT019XG5cdFx0YXJpYUxhYmVsPXtUT19CT1RUT019XG5cdFx0b25DbGljaz17KCk6IHZvaWQgPT4ge1xuXHRcdFx0c2Nyb2xsVG9wKCgkKGRvY3VtZW50KS5oZWlnaHQoKSA/PyAwKSAtICgkKHdpbmRvdykuaGVpZ2h0KCkgPz8gMCkpO1xuXHRcdH19XG5cdFx0b25Nb3VzZUVudGVyPXtvbk1vdXNlRW50ZXJNb3VzZUxlYXZlfVxuXHRcdG9uTW91c2VMZWF2ZT17b25Nb3VzZUVudGVyTW91c2VMZWF2ZX1cblx0Lz5cbik7XG5cbmNvbnN0IFNjcm9sbFVwQnV0dG9uID0gKG9uTW91c2VFbnRlck1vdXNlTGVhdmU6IChldmVudDogTW91c2VFdmVudCkgPT4gdm9pZCkgPT4gKFxuXHQ8U2Nyb2xsQnV0dG9uXG5cdFx0YWRkaXRpb25hbENsYXNzTmFtZT17Q0xBU1NfTkFNRV9VUH1cblx0XHRhbHQ9e1RPX1RPUH1cblx0XHRhcmlhTGFiZWw9e1RPX1RPUH1cblx0XHRvbkNsaWNrPXsoKTogdm9pZCA9PiB7XG5cdFx0XHRzY3JvbGxUb3AoMCk7XG5cdFx0fX1cblx0XHRvbk1vdXNlRW50ZXI9e29uTW91c2VFbnRlck1vdXNlTGVhdmV9XG5cdFx0b25Nb3VzZUxlYXZlPXtvbk1vdXNlRW50ZXJNb3VzZUxlYXZlfVxuXHQvPlxuKTtcblxuZXhwb3J0IHtTY3JvbGxEb3duQnV0dG9uLCBTY3JvbGxVcEJ1dHRvbn07XG4iLCAiaW1wb3J0IHtsb2NhbGl6ZX0gZnJvbSAnZXh0LmdhZGdldC5pMThuJztcblxuY29uc3QgZ2V0STE4bk1lc3NhZ2VzID0gKCkgPT4ge1xuXHRyZXR1cm4ge1xuXHRcdFRvQm90dG9tOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ1Njcm9sbCB0byB0aGUgYm90dG9tJyxcblx0XHRcdCd6aC1oYW5zJzogJ+a7muWKqOiHs+mhteW6lScsXG5cdFx0XHQnemgtaGFudCc6ICfmu77li5Xoh7PpoIHlupUnLFxuXHRcdH0pLFxuXHRcdFRvVG9wOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ0dvIGJhY2sgdG8gdGhlIHRvcCcsXG5cdFx0XHQnemgtaGFucyc6ICfmu5rliqjoh7PpobXpobYnLFxuXHRcdFx0J3poLWhhbnQnOiAn5ru+5YuV6Iez6aCB6aCCJyxcblx0XHR9KSxcblx0fTtcbn07XG5cbmNvbnN0IGkxOG5NZXNzYWdlcyA9IGdldEkxOG5NZXNzYWdlcygpO1xuXG5jb25zdCBnZXRNZXNzYWdlOiBHZXRNZXNzYWdlczx0eXBlb2YgaTE4bk1lc3NhZ2VzPiA9IChrZXkpID0+IHtcblx0cmV0dXJuIGkxOG5NZXNzYWdlc1trZXldIHx8IGtleTtcbn07XG5cbmV4cG9ydCB7Z2V0TWVzc2FnZX07XG4iLCAiaW1wb3J0IHtTY3JvbGxEb3duQnV0dG9uLCBTY3JvbGxVcEJ1dHRvbn0gZnJvbSAnLi4vY29tcG9uZW50cy9zY3JvbGxCdXR0b24nO1xuaW1wb3J0IHtjaGFuZ2VPcGFjaXR5V2hlbk1vdXNlRW50ZXJPckxlYXZlfSBmcm9tICdleHQuZ2FkZ2V0LlV0aWwnO1xuaW1wb3J0IHt0aXBweX0gZnJvbSAnZXh0LmdhZGdldC5UaXBweSc7XG5cbmNvbnN0IGluc2VydEVsZW1lbnRhbmRMaXN0ZW5lciA9ICgkYm9keTogSlF1ZXJ5PEhUTUxCb2R5RWxlbWVudD4pOiB2b2lkID0+IHtcblx0Y29uc3Qgb25Nb3VzZUVudGVyTW91c2VMZWF2ZSA9IChldmVudDogTW91c2VFdmVudCk6IHZvaWQgPT4ge1xuXHRcdGNoYW5nZU9wYWNpdHlXaGVuTW91c2VFbnRlck9yTGVhdmUoZXZlbnQpO1xuXHR9O1xuXG5cdGNvbnN0IHNjcm9sbERvd25CdXR0b24gPSBTY3JvbGxEb3duQnV0dG9uKG9uTW91c2VFbnRlck1vdXNlTGVhdmUpO1xuXHRjb25zdCBzY3JvbGxVcEJ1dHRvbiA9IFNjcm9sbFVwQnV0dG9uKG9uTW91c2VFbnRlck1vdXNlTGVhdmUpO1xuXG5cdGZvciAoY29uc3QgZWxlbWVudCBvZiBbc2Nyb2xsRG93bkJ1dHRvbiwgc2Nyb2xsVXBCdXR0b25dKSB7XG5cdFx0JGJvZHkuYXBwZW5kKGVsZW1lbnQpO1xuXG5cdFx0dGlwcHkoZWxlbWVudCwge1xuXHRcdFx0YXJyb3c6IHRydWUsXG5cdFx0XHRjb250ZW50OiBlbGVtZW50LmdldEF0dHJpYnV0ZSgnYWx0JykgYXMgc3RyaW5nLFxuXHRcdFx0cGxhY2VtZW50OiAnbGVmdCcsXG5cdFx0fSk7XG5cdH1cblxuXHRjb25zdCBzY3JvbGxMaXN0ZW5lciA9ICgpOiB2b2lkID0+IHtcblx0XHRsZXQgZG93bkJ1dHRvbkJ1dHRvbTogc3RyaW5nO1xuXHRcdGxldCB1cEJ1dHRvbkJ1dHRvbTogc3RyaW5nO1xuXG5cdFx0aWYgKFxuXHRcdFx0ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3Byb3ZlaXQnKSB8fFxuXHRcdFx0ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmdhZGdldC1jYXRfYV9sb3QtY29udGFpbmVyJykgfHxcblx0XHRcdGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNnYWRnZXQtd29yZF9jb3VudC10aXAnKVxuXHRcdCkge1xuXHRcdFx0ZG93bkJ1dHRvbkJ1dHRvbSA9ICc4NXB4Jztcblx0XHRcdHVwQnV0dG9uQnV0dG9tID0gJzEyN3B4Jztcblx0XHR9IGVsc2Uge1xuXHRcdFx0ZG93bkJ1dHRvbkJ1dHRvbSA9ICc0NXB4Jztcblx0XHRcdHVwQnV0dG9uQnV0dG9tID0gJzg1cHgnO1xuXHRcdH1cblxuXHRcdHNjcm9sbERvd25CdXR0b24uc3R5bGUuYm90dG9tID0gZG93bkJ1dHRvbkJ1dHRvbTtcblx0XHRzY3JvbGxVcEJ1dHRvbi5zdHlsZS5ib3R0b20gPSB1cEJ1dHRvbkJ1dHRvbTtcblx0fTtcblx0Y29uc3Qgc2Nyb2xsTGlzdGVuZXJXaXRoVGhyb3R0bGU6IHR5cGVvZiBzY3JvbGxMaXN0ZW5lciA9IG13LnV0aWwudGhyb3R0bGUoc2Nyb2xsTGlzdGVuZXIsIDIwMCk7XG5cblx0JCh3aW5kb3cpLm9uKCdzY3JvbGwgc2VsZWN0aW9uY2hhbmdlJywgc2Nyb2xsTGlzdGVuZXJXaXRoVGhyb3R0bGUpO1xufTtcblxuZXhwb3J0IHtpbnNlcnRFbGVtZW50YW5kTGlzdGVuZXJ9O1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsSUFBQUEscUJBQXNCQyxRQUFBLGlCQUFBOztBQ0F0QixJQUFNQyxhQUFxQjtBQUMzQixJQUFNQyxrQkFBQSxHQUFBQyxPQUE2QkYsWUFBVSxPQUFBO0FBQzdDLElBQU1HLGdCQUFBLEdBQUFELE9BQTJCRixZQUFVLEtBQUE7O0FDRDNDLElBQUFJLHFCQUFrQkMsUUFBQU4sUUFBQSxrQkFBQSxHQUFBLENBQUE7O0FDRGxCLElBQUFPLG9CQUF1QlAsUUFBQSxpQkFBQTtBQUV2QixJQUFNUSxrQkFBa0JBLE1BQU07QUFDN0IsU0FBTztJQUNOQyxXQUFBLEdBQVVGLGtCQUFBRyxVQUFTO01BQ2xCQyxJQUFJO01BQ0osV0FBVztNQUNYLFdBQVc7SUFDWixDQUFDO0lBQ0RDLFFBQUEsR0FBT0wsa0JBQUFHLFVBQVM7TUFDZkMsSUFBSTtNQUNKLFdBQVc7TUFDWCxXQUFXO0lBQ1osQ0FBQztFQUNGO0FBQ0Q7QUFFQSxJQUFNRSxlQUFlTCxnQkFBZ0I7QUFFckMsSUFBTU0sYUFBZ0RDLFNBQVE7QUFDN0QsU0FBT0YsYUFBYUUsR0FBRyxLQUFLQTtBQUM3Qjs7QURsQkEsSUFBQUMscUJBQXdCaEIsUUFBQSxpQkFBQTtBQVd4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U1NfTkFNRV9ET1dOIiwgImNvbmNhdCIsICJDTEFTU19OQU1FX1VQIiwgImltcG9ydF9leHRfZ2FkZ2V0MiIsICJfX3RvRVNNIiwgImltcG9ydF9leHRfZ2FkZ2V0IiwgImdldEkxOG5NZXNzYWdlcyIsICJUb0JvdHRvbSIsICJsb2NhbGl6ZSIsICJlbiIsICJUb1RvcCIsICJpMThuTWVzc2FnZXMiLCAiZ2V0TWVzc2FnZSIsICJrZXkiLCAiaW1wb3J0X2V4dF9nYWRnZXQzIiwgIlNjcm9sbEJ1dHRvbiIsICJwcm9wcyIsICJhZGRpdGlvbmFsQ2xhc3NOYW1lIiwgImFsdCIsICJhcmlhTGFiZWwiLCAib25DbGljayIsICJvbk1vdXNlRW50ZXIiLCAib25Nb3VzZUxlYXZlIiwgImRlZmF1bHQiLCAiY3JlYXRlRWxlbWVudCIsICJjbGFzc05hbWUiLCAic3JjIiwgIndpZHRoIiwgImhlaWdodCIsICJkcmFnZ2FibGUiLCAiVE9fQk9UVE9NIiwgIlRPX1RPUCIsICJTY3JvbGxEb3duQnV0dG9uIiwgIm9uTW91c2VFbnRlck1vdXNlTGVhdmUiLCAiXyQkaGVpZ2h0IiwgIl8kJGhlaWdodDIiLCAic2Nyb2xsVG9wIiwgIiQiLCAiZG9jdW1lbnQiLCAid2luZG93IiwgIlNjcm9sbFVwQnV0dG9uIiwgImltcG9ydF9leHRfZ2FkZ2V0NCIsICJpbXBvcnRfZXh0X2dhZGdldDUiLCAiaW5zZXJ0RWxlbWVudGFuZExpc3RlbmVyIiwgIiRib2R5IiwgImV2ZW50IiwgImNoYW5nZU9wYWNpdHlXaGVuTW91c2VFbnRlck9yTGVhdmUiLCAic2Nyb2xsRG93bkJ1dHRvbiIsICJzY3JvbGxVcEJ1dHRvbjIiLCAiX2kiLCAiX2FyciIsICJsZW5ndGgiLCAiZWxlbWVudCIsICJhcHBlbmQiLCAidGlwcHkiLCAiYXJyb3ciLCAiY29udGVudCIsICJnZXRBdHRyaWJ1dGUiLCAicGxhY2VtZW50IiwgInNjcm9sbExpc3RlbmVyIiwgImRvd25CdXR0b25CdXR0b20iLCAidXBCdXR0b25CdXR0b20iLCAicXVlcnlTZWxlY3RvciIsICJzdHlsZSIsICJib3R0b20iLCAic2Nyb2xsTGlzdGVuZXJXaXRoVGhyb3R0bGUiLCAibXciLCAidXRpbCIsICJ0aHJvdHRsZSIsICJvbiIsICJnZXRCb2R5IiwgInRoZW4iLCAic2Nyb2xsVXBCdXR0b24iXQp9Cg== +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL1Njcm9sbFVwQnV0dG9uL1Njcm9sbFVwQnV0dG9uLnRzIiwgInNyYy9TY3JvbGxVcEJ1dHRvbi9tb2R1bGVzL2NvbnN0YW50LnRzIiwgInNyYy9TY3JvbGxVcEJ1dHRvbi9jb21wb25lbnRzL3Njcm9sbEJ1dHRvbi50c3giLCAic3JjL1Njcm9sbFVwQnV0dG9uL21vZHVsZXMvaTE4bi50cyIsICJzcmMvU2Nyb2xsVXBCdXR0b24vbW9kdWxlcy9pbnNlcnRFbGVtZW50QW5kTGlzdGVuZXIudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB7Z2V0Qm9keX0gZnJvbSAnZXh0LmdhZGdldC5VdGlsJztcbmltcG9ydCB7aW5zZXJ0RWxlbWVudGFuZExpc3RlbmVyfSBmcm9tICcuL21vZHVsZXMvaW5zZXJ0RWxlbWVudEFuZExpc3RlbmVyJztcblxudm9pZCBnZXRCb2R5KCkudGhlbihmdW5jdGlvbiBzY3JvbGxVcEJ1dHRvbigkYm9keTogSlF1ZXJ5PEhUTUxCb2R5RWxlbWVudD4pOiB2b2lkIHtcblx0aW5zZXJ0RWxlbWVudGFuZExpc3RlbmVyKCRib2R5KTtcbn0pO1xuIiwgImNvbnN0IENMQVNTX05BTUU6IHN0cmluZyA9ICdnYWRnZXQtc2Nyb2xsX3VwX2J1dHRvbic7XG5jb25zdCBDTEFTU19OQU1FX0RPV046IHN0cmluZyA9IGAke0NMQVNTX05BTUV9LWRvd25gO1xuY29uc3QgQ0xBU1NfTkFNRV9VUDogc3RyaW5nID0gYCR7Q0xBU1NfTkFNRX0tdXBgO1xuXG5leHBvcnQge0NMQVNTX05BTUUsIENMQVNTX05BTUVfRE9XTiwgQ0xBU1NfTkFNRV9VUH07XG4iLCAiaW1wb3J0IHtDTEFTU19OQU1FLCBDTEFTU19OQU1FX0RPV04sIENMQVNTX05BTUVfVVB9IGZyb20gJy4uL21vZHVsZXMvY29uc3RhbnQnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ2V4dC5nYWRnZXQuSlNYJztcbmltcG9ydCB7Z2V0TWVzc2FnZX0gZnJvbSAnLi4vbW9kdWxlcy9pMThuJztcbmltcG9ydCB7c2Nyb2xsVG9wfSBmcm9tICdleHQuZ2FkZ2V0LlV0aWwnO1xuXG5pbnRlcmZhY2UgUHJvcHMge1xuXHRhZGRpdGlvbmFsQ2xhc3NOYW1lOiBzdHJpbmc7XG5cdGFsdDogc3RyaW5nO1xuXHRhcmlhTGFiZWw6IHN0cmluZztcblx0b25DbGljazogKGV2ZW50PzogTW91c2VFdmVudCkgPT4gdm9pZDtcblx0b25Nb3VzZUVudGVyOiAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHZvaWQ7XG5cdG9uTW91c2VMZWF2ZTogKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB2b2lkO1xufVxuXG5mdW5jdGlvbiBTY3JvbGxCdXR0b24ocHJvcHM6IFByb3BzKSB7XG5cdGNvbnN0IHthZGRpdGlvbmFsQ2xhc3NOYW1lLCBhbHQsIGFyaWFMYWJlbCwgb25DbGljaywgb25Nb3VzZUVudGVyLCBvbk1vdXNlTGVhdmV9ID0gcHJvcHM7XG5cblx0cmV0dXJuIChcblx0XHQ8aW1nXG5cdFx0XHRjbGFzc05hbWU9e1tDTEFTU19OQU1FLCBhZGRpdGlvbmFsQ2xhc3NOYW1lLCAnbm9wcmludCddfVxuXHRcdFx0c3JjPXtcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMScgaGVpZ2h0PScxJyUzRSUzQy9zdmclM0VcIn1cblx0XHRcdHdpZHRoPVwiMzJcIlxuXHRcdFx0aGVpZ2h0PVwiMzJcIlxuXHRcdFx0ZHJhZ2dhYmxlPXtmYWxzZX1cblx0XHRcdGFsdD17YWx0fVxuXHRcdFx0YXJpYS1sYWJlbD17YXJpYUxhYmVsfVxuXHRcdFx0b25DbGljaz17b25DbGlja31cblx0XHRcdG9uTW91c2VFbnRlcj17b25Nb3VzZUVudGVyfVxuXHRcdFx0b25Nb3VzZUxlYXZlPXtvbk1vdXNlTGVhdmV9XG5cdFx0Lz5cblx0KTtcbn1cblxuY29uc3QgVE9fQk9UVE9NOiBzdHJpbmcgPSBnZXRNZXNzYWdlKCdUb0JvdHRvbScpO1xuY29uc3QgVE9fVE9QOiBzdHJpbmcgPSBnZXRNZXNzYWdlKCdUb1RvcCcpO1xuXG5jb25zdCBTY3JvbGxEb3duQnV0dG9uID0gKG9uTW91c2VFbnRlck1vdXNlTGVhdmU6IChldmVudDogTW91c2VFdmVudCkgPT4gdm9pZCkgPT4gKFxuXHQ8U2Nyb2xsQnV0dG9uXG5cdFx0YWRkaXRpb25hbENsYXNzTmFtZT17Q0xBU1NfTkFNRV9ET1dOfVxuXHRcdGFsdD17VE9fQk9UVE9NfVxuXHRcdGFyaWFMYWJlbD17VE9fQk9UVE9NfVxuXHRcdG9uQ2xpY2s9eygpOiB2b2lkID0+IHtcblx0XHRcdHNjcm9sbFRvcCgoJChkb2N1bWVudCkuaGVpZ2h0KCkgPz8gMCkgLSAoJCh3aW5kb3cpLmhlaWdodCgpID8/IDApKTtcblx0XHR9fVxuXHRcdG9uTW91c2VFbnRlcj17b25Nb3VzZUVudGVyTW91c2VMZWF2ZX1cblx0XHRvbk1vdXNlTGVhdmU9e29uTW91c2VFbnRlck1vdXNlTGVhdmV9XG5cdC8+XG4pO1xuXG5jb25zdCBTY3JvbGxVcEJ1dHRvbiA9IChvbk1vdXNlRW50ZXJNb3VzZUxlYXZlOiAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHZvaWQpID0+IChcblx0PFNjcm9sbEJ1dHRvblxuXHRcdGFkZGl0aW9uYWxDbGFzc05hbWU9e0NMQVNTX05BTUVfVVB9XG5cdFx0YWx0PXtUT19UT1B9XG5cdFx0YXJpYUxhYmVsPXtUT19UT1B9XG5cdFx0b25DbGljaz17KCk6IHZvaWQgPT4ge1xuXHRcdFx0c2Nyb2xsVG9wKDApO1xuXHRcdH19XG5cdFx0b25Nb3VzZUVudGVyPXtvbk1vdXNlRW50ZXJNb3VzZUxlYXZlfVxuXHRcdG9uTW91c2VMZWF2ZT17b25Nb3VzZUVudGVyTW91c2VMZWF2ZX1cblx0Lz5cbik7XG5cbmV4cG9ydCB7U2Nyb2xsRG93bkJ1dHRvbiwgU2Nyb2xsVXBCdXR0b259O1xuIiwgImltcG9ydCB7bG9jYWxpemV9IGZyb20gJ2V4dC5nYWRnZXQuaTE4bic7XG5cbmNvbnN0IGdldEkxOG5NZXNzYWdlcyA9ICgpID0+IHtcblx0cmV0dXJuIHtcblx0XHRUb0JvdHRvbTogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdTY3JvbGwgdG8gdGhlIGJvdHRvbScsXG5cdFx0XHQnemgtaGFucyc6ICfmu5rliqjoh7PpobXlupUnLFxuXHRcdFx0J3poLWhhbnQnOiAn5ru+5YuV6Iez6aCB5bqVJyxcblx0XHR9KSxcblx0XHRUb1RvcDogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdHbyBiYWNrIHRvIHRoZSB0b3AnLFxuXHRcdFx0J3poLWhhbnMnOiAn5rua5Yqo6Iez6aG16aG2Jyxcblx0XHRcdCd6aC1oYW50JzogJ+a7vuWLleiHs+mggemggicsXG5cdFx0fSksXG5cdH07XG59O1xuXG5jb25zdCBpMThuTWVzc2FnZXMgPSBnZXRJMThuTWVzc2FnZXMoKTtcblxuY29uc3QgZ2V0TWVzc2FnZTogR2V0TWVzc2FnZXM8dHlwZW9mIGkxOG5NZXNzYWdlcz4gPSAoa2V5KSA9PiB7XG5cdHJldHVybiBpMThuTWVzc2FnZXNba2V5XSB8fCBrZXk7XG59O1xuXG5leHBvcnQge2dldE1lc3NhZ2V9O1xuIiwgImltcG9ydCB7U2Nyb2xsRG93bkJ1dHRvbiwgU2Nyb2xsVXBCdXR0b259IGZyb20gJy4uL2NvbXBvbmVudHMvc2Nyb2xsQnV0dG9uJztcbmltcG9ydCB7Y2hhbmdlT3BhY2l0eVdoZW5Nb3VzZUVudGVyT3JMZWF2ZX0gZnJvbSAnZXh0LmdhZGdldC5VdGlsJztcbmltcG9ydCB7dGlwcHl9IGZyb20gJ2V4dC5nYWRnZXQuVGlwcHknO1xuXG5jb25zdCBpbnNlcnRFbGVtZW50YW5kTGlzdGVuZXIgPSAoJGJvZHk6IEpRdWVyeTxIVE1MQm9keUVsZW1lbnQ+KTogdm9pZCA9PiB7XG5cdGNvbnN0IG9uTW91c2VFbnRlck1vdXNlTGVhdmUgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkID0+IHtcblx0XHRjaGFuZ2VPcGFjaXR5V2hlbk1vdXNlRW50ZXJPckxlYXZlKGV2ZW50KTtcblx0fTtcblxuXHRjb25zdCBzY3JvbGxEb3duQnV0dG9uID0gU2Nyb2xsRG93bkJ1dHRvbihvbk1vdXNlRW50ZXJNb3VzZUxlYXZlKTtcblx0Y29uc3Qgc2Nyb2xsVXBCdXR0b24gPSBTY3JvbGxVcEJ1dHRvbihvbk1vdXNlRW50ZXJNb3VzZUxlYXZlKTtcblxuXHRmb3IgKGNvbnN0IGVsZW1lbnQgb2YgW3Njcm9sbERvd25CdXR0b24sIHNjcm9sbFVwQnV0dG9uXSkge1xuXHRcdCRib2R5LmFwcGVuZChlbGVtZW50KTtcblxuXHRcdHRpcHB5KGVsZW1lbnQsIHtcblx0XHRcdGFycm93OiB0cnVlLFxuXHRcdFx0Y29udGVudDogZWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2FsdCcpIGFzIHN0cmluZyxcblx0XHRcdHBsYWNlbWVudDogJ2xlZnQnLFxuXHRcdH0pO1xuXHR9XG5cblx0Y29uc3Qgc2Nyb2xsTGlzdGVuZXIgPSAoKTogdm9pZCA9PiB7XG5cdFx0bGV0IGRvd25CdXR0b25CdXR0b206IHN0cmluZztcblx0XHRsZXQgdXBCdXR0b25CdXR0b206IHN0cmluZztcblxuXHRcdGlmIChcblx0XHRcdGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNwcm92ZWl0JykgfHxcblx0XHRcdGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5nYWRnZXQtY2F0X2FfbG90LWNvbnRhaW5lcicpIHx8XG5cdFx0XHRkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjZ2FkZ2V0LXdvcmRfY291bnQtdGlwJylcblx0XHQpIHtcblx0XHRcdGRvd25CdXR0b25CdXR0b20gPSAnODVweCc7XG5cdFx0XHR1cEJ1dHRvbkJ1dHRvbSA9ICcxMjdweCc7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGRvd25CdXR0b25CdXR0b20gPSAnNDVweCc7XG5cdFx0XHR1cEJ1dHRvbkJ1dHRvbSA9ICc4NXB4Jztcblx0XHR9XG5cblx0XHRzY3JvbGxEb3duQnV0dG9uLnN0eWxlLmJvdHRvbSA9IGRvd25CdXR0b25CdXR0b207XG5cdFx0c2Nyb2xsVXBCdXR0b24uc3R5bGUuYm90dG9tID0gdXBCdXR0b25CdXR0b207XG5cdH07XG5cdGNvbnN0IHNjcm9sbExpc3RlbmVyV2l0aFRocm90dGxlOiB0eXBlb2Ygc2Nyb2xsTGlzdGVuZXIgPSBtdy51dGlsLnRocm90dGxlKHNjcm9sbExpc3RlbmVyLCAyMDApO1xuXG5cdCQod2luZG93KS5vbignc2Nyb2xsIHNlbGVjdGlvbmNoYW5nZScsIHNjcm9sbExpc3RlbmVyV2l0aFRocm90dGxlKTtcbn07XG5cbmV4cG9ydCB7aW5zZXJ0RWxlbWVudGFuZExpc3RlbmVyfTtcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLElBQUFBLHFCQUFzQkMsUUFBQSxpQkFBQTs7QUNBdEIsSUFBTUMsYUFBcUI7QUFDM0IsSUFBTUMsa0JBQUEsR0FBQUMsT0FBNkJGLFlBQVUsT0FBQTtBQUM3QyxJQUFNRyxnQkFBQSxHQUFBRCxPQUEyQkYsWUFBVSxLQUFBOztBQ0QzQyxJQUFBSSxxQkFBa0JDLFFBQUFOLFFBQUEsZ0JBQUEsR0FBQSxDQUFBOztBQ0RsQixJQUFBTyxvQkFBdUJQLFFBQUEsaUJBQUE7QUFFdkIsSUFBTVEsa0JBQWtCQSxNQUFNO0FBQzdCLFNBQU87SUFDTkMsV0FBQSxHQUFVRixrQkFBQUcsVUFBUztNQUNsQkMsSUFBSTtNQUNKLFdBQVc7TUFDWCxXQUFXO0lBQ1osQ0FBQztJQUNEQyxRQUFBLEdBQU9MLGtCQUFBRyxVQUFTO01BQ2ZDLElBQUk7TUFDSixXQUFXO01BQ1gsV0FBVztJQUNaLENBQUM7RUFDRjtBQUNEO0FBRUEsSUFBTUUsZUFBZUwsZ0JBQWdCO0FBRXJDLElBQU1NLGFBQWdEQyxTQUFRO0FBQzdELFNBQU9GLGFBQWFFLEdBQUcsS0FBS0E7QUFDN0I7O0FEbEJBLElBQUFDLHFCQUF3QmhCLFFBQUEsaUJBQUE7QUFXeEIs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X05BTUVfRE9XTiIsICJjb25jYXQiLCAiQ0xBU1NfTkFNRV9VUCIsICJpbXBvcnRfZXh0X2dhZGdldDIiLCAiX190b0VTTSIsICJpbXBvcnRfZXh0X2dhZGdldCIsICJnZXRJMThuTWVzc2FnZXMiLCAiVG9Cb3R0b20iLCAibG9jYWxpemUiLCAiZW4iLCAiVG9Ub3AiLCAiaTE4bk1lc3NhZ2VzIiwgImdldE1lc3NhZ2UiLCAia2V5IiwgImltcG9ydF9leHRfZ2FkZ2V0MyIsICJTY3JvbGxCdXR0b24iLCAicHJvcHMiLCAiYWRkaXRpb25hbENsYXNzTmFtZSIsICJhbHQiLCAiYXJpYUxhYmVsIiwgIm9uQ2xpY2siLCAib25Nb3VzZUVudGVyIiwgIm9uTW91c2VMZWF2ZSIsICJkZWZhdWx0IiwgImNyZWF0ZUVsZW1lbnQiLCAiY2xhc3NOYW1lIiwgInNyYyIsICJ3aWR0aCIsICJoZWlnaHQiLCAiZHJhZ2dhYmxlIiwgIlRPX0JPVFRPTSIsICJUT19UT1AiLCAiU2Nyb2xsRG93bkJ1dHRvbiIsICJvbk1vdXNlRW50ZXJNb3VzZUxlYXZlIiwgIl8kJGhlaWdodCIsICJfJCRoZWlnaHQyIiwgInNjcm9sbFRvcCIsICIkIiwgImRvY3VtZW50IiwgIndpbmRvdyIsICJTY3JvbGxVcEJ1dHRvbiIsICJpbXBvcnRfZXh0X2dhZGdldDQiLCAiaW1wb3J0X2V4dF9nYWRnZXQ1IiwgImluc2VydEVsZW1lbnRhbmRMaXN0ZW5lciIsICIkYm9keSIsICJldmVudCIsICJjaGFuZ2VPcGFjaXR5V2hlbk1vdXNlRW50ZXJPckxlYXZlIiwgInNjcm9sbERvd25CdXR0b24iLCAic2Nyb2xsVXBCdXR0b24yIiwgIl9pIiwgIl9hcnIiLCAibGVuZ3RoIiwgImVsZW1lbnQiLCAiYXBwZW5kIiwgInRpcHB5IiwgImFycm93IiwgImNvbnRlbnQiLCAiZ2V0QXR0cmlidXRlIiwgInBsYWNlbWVudCIsICJzY3JvbGxMaXN0ZW5lciIsICJkb3duQnV0dG9uQnV0dG9tIiwgInVwQnV0dG9uQnV0dG9tIiwgInF1ZXJ5U2VsZWN0b3IiLCAic3R5bGUiLCAiYm90dG9tIiwgInNjcm9sbExpc3RlbmVyV2l0aFRocm90dGxlIiwgIm13IiwgInV0aWwiLCAidGhyb3R0bGUiLCAib24iLCAiZ2V0Qm9keSIsICJ0aGVuIiwgInNjcm9sbFVwQnV0dG9uIl0KfQo= diff --git a/dist/ShortURL/ShortURL.js b/dist/ShortURL/ShortURL.js index 78a90d353..5668cbbca 100644 --- a/dist/ShortURL/ShortURL.js +++ b/dist/ShortURL/ShortURL.js @@ -168,7 +168,7 @@ var getShortDomains = () => { }; //! src/ShortURL/modules/addLink.tsx var import_ext_gadget2 = require("ext.gadget.Clipboard"); -var import_ext_gadget3 = __toESM(require("ext.gadget.React"), 1); +var import_ext_gadget3 = __toESM(require("ext.gadget.JSX"), 1); var import_ext_gadget4 = require("ext.gadget.Util"); //! src/ShortURL/modules/i18n.ts var import_ext_gadget = require("ext.gadget.i18n"); @@ -458,4 +458,4 @@ var processId = (isRevisionPage, { /* */ -//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL1Nob3J0VVJML21vZHVsZXMvdXRpbC9jaGVja1JldmlzaW9uUGFnZS50cyIsICJzcmMvU2hvcnRVUkwvbW9kdWxlcy91dGlsL2dldFNob3J0RG9tYWlucy50cyIsICJzcmMvU2hvcnRVUkwvbW9kdWxlcy9hZGRMaW5rLnRzeCIsICJzcmMvU2hvcnRVUkwvbW9kdWxlcy9pMThuLnRzIiwgInNyYy9TaG9ydFVSTC9tb2R1bGVzL2J1aWxkTGluay50cyIsICJzcmMvU2hvcnRVUkwvb3B0aW9ucy5qc29uIiwgInNyYy9TaG9ydFVSTC9tb2R1bGVzL2FwaS50cyIsICJzcmMvU2hvcnRVUkwvbW9kdWxlcy91dGlsL3F1ZXJ5QXBpLnRzIiwgInNyYy9TaG9ydFVSTC9tb2R1bGVzL2NvbXBhcmVXaXRoUmVtb3RlRGlmZklkLnRzIiwgInNyYy9TaG9ydFVSTC9tb2R1bGVzL3Byb2Nlc3NJZC50cyIsICJzcmMvU2hvcnRVUkwvU2hvcnRVUkwudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImNvbnN0IGNoZWNrUmV2aXNpb25QYWdlID0gKCRjb250ZW50OiBKUXVlcnkpOiBib29sZWFuID0+IHtcblx0cmV0dXJuIChcblx0XHQoJGNvbnRlbnQuZmluZCgnI2NvbnRlbnRTdWIgI213LXJldmlzaW9uLW5hdicpLmxlbmd0aCB8fFxuXHRcdFx0JGNvbnRlbnQuZmluZCgnbWFpbiNjb250ZW50Pi5wcmUtY29udGVudCAjbXctcmV2aXNpb24tbmF2JykubGVuZ3RoKSA+IDBcblx0KTtcbn07XG5cbmV4cG9ydCB7Y2hlY2tSZXZpc2lvblBhZ2V9O1xuIiwgImNvbnN0IGdldFNob3J0RG9tYWlucyA9ICgpOiBzdHJpbmdbXSA9PiB7XG5cdGNvbnN0IHt3Z1dpa2lJRH0gPSBtdy5jb25maWcuZ2V0KCk7XG5cdGxldCBkb21haW5zOiBzdHJpbmdbXSA9IFtdO1xuXG5cdHN3aXRjaCAod2dXaWtpSUQpIHtcblx0XHRjYXNlICd6aHFpdXdlbmJhaWtlJzpcblx0XHRcdGRvbWFpbnMgPSBbJ3F3YmsuY2MnLCAnYmt3ei5jbiddO1xuXHRcdFx0YnJlYWs7XG5cdFx0Y2FzZSAnbGljZW5jZXdpa2knOlxuXHRcdFx0ZG9tYWlucyA9IFsnbC5xd2JrLmNjJywgJ2wuYmt3ei5jbiddO1xuXHRcdFx0YnJlYWs7XG5cdFx0Y2FzZSAnbW5jcWl1d2VuYmFpa2UnOlxuXHRcdFx0ZG9tYWlucyA9IFsnbW5jLnF3YmsuY2MnLCAnbW5jLmJrd3ouY24nXTtcblx0XHRcdGJyZWFrO1xuXHR9XG5cblx0cmV0dXJuIGRvbWFpbnM7XG59O1xuXG5leHBvcnQge2dldFNob3J0RG9tYWluc307XG4iLCAiaW1wb3J0IHtDbGlwYm9hcmR9IGZyb20gJ2V4dC5nYWRnZXQuQ2xpcGJvYXJkJztcbmltcG9ydCBSZWFjdCBmcm9tICdleHQuZ2FkZ2V0LlJlYWN0JztcbmltcG9ydCB7YWRkRXZlbnRMaXN0ZW5lcldpdGhSZW1vdmVyfSBmcm9tICdleHQuZ2FkZ2V0LlV0aWwnO1xuaW1wb3J0IHtnZXRNZXNzYWdlfSBmcm9tICcuL2kxOG4nO1xuaW1wb3J0IHtnZXRTaG9ydERvbWFpbnN9IGZyb20gJy4vdXRpbC9nZXRTaG9ydERvbWFpbnMnO1xuaW1wb3J0IHt0aXBweX0gZnJvbSAnZXh0LmdhZGdldC5UaXBweSc7XG5cbmNvbnN0IHtza2luLCB3Z1VzZXJOYW1lfSA9IG13LmNvbmZpZy5nZXQoKTtcbmNvbnN0IGRvbWFpbnMgPSBnZXRTaG9ydERvbWFpbnMoKTtcblxubGV0IGNsaXBib2FyZEluc3RhbmNlOiBDbGlwYm9hcmRKUyB8IHVuZGVmaW5lZDtcbmxldCBoZWFkZXJMaW5rRXZlbnRMaXN0ZW5lcjogUmV0dXJuVHlwZTx0eXBlb2YgYWRkRXZlbnRMaXN0ZW5lcldpdGhSZW1vdmVyPiA9IHtcblx0cmVtb3ZlOiAoKTogdm9pZCA9PiB7fSxcbn07XG5sZXQgcG9ydGxldExpbmtFdmVudExpc3RlbmVyOiBSZXR1cm5UeXBlPHR5cGVvZiBhZGRFdmVudExpc3RlbmVyV2l0aFJlbW92ZXI+ID0ge1xuXHRyZW1vdmU6ICgpOiB2b2lkID0+IHt9LFxufTtcblxuY29uc3QgYWRkTGluayA9IChsaW5rOiBzdHJpbmcsIHBlcm1hTGluazogc3RyaW5nKTogdm9pZCA9PiB7XG5cdGxldCBwb3J0bGV0TGluazogSFRNTExJRWxlbWVudCB8IG51bGwgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjdC1zaG9ydGxpbmsnKTtcblx0aWYgKCFwb3J0bGV0TGluaykge1xuXHRcdGNvbnN0IHBvcnRsZXRJZDogJ3AtY2FjdGlvbnMnIHwgJ3AtdGInID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3AtY2FjdGlvbnMnKSA/ICdwLWNhY3Rpb25zJyA6ICdwLXRiJztcblx0XHRwb3J0bGV0TGluayA9IG13LnV0aWwuYWRkUG9ydGxldExpbmsoXG5cdFx0XHRwb3J0bGV0SWQsXG5cdFx0XHQnIycsXG5cdFx0XHRnZXRNZXNzYWdlKCdTaGFyZSBVUkwgZm9yIHRoZSBwYWdlJyksXG5cdFx0XHQndC1zaG9ydGxpbmsnLFxuXHRcdFx0Z2V0TWVzc2FnZSgnU2hvdyBVUkwnKVxuXHRcdCk7XG5cdH1cblxuXHRpZiAocG9ydGxldExpbmspIHtcblx0XHRjb25zdCBwb3J0bGV0TGlua0NsaWNrTGlzdGVuZXIgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkID0+IHtcblx0XHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cblx0XHRcdGNvbnN0ICRlbGVtZW50OiBKUXVlcnkgPSAkKCc8ZGl2PicpO1xuXG5cdFx0XHQkZWxlbWVudC5hcHBlbmQoXG5cdFx0XHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWNhbGwsIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnksIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtYXJndW1lbnRcblx0XHRcdFx0bmV3IChtdyBhcyBhbnkpLndpZGdldHMuQ29weVRleHRMYXlvdXQoe1xuXHRcdFx0XHRcdGxhYmVsOiBnZXRNZXNzYWdlKCdQYWdlIFVSTCcpLFxuXHRcdFx0XHRcdHRpdGxlOiBnZXRNZXNzYWdlKCdQYWdlIFVSTCcpLFxuXHRcdFx0XHRcdGFsaWduOiAndG9wJyxcblx0XHRcdFx0XHRjb3B5VGV4dDogbG9jYXRpb24uaHJlZixcblx0XHRcdFx0fSkuJGVsZW1lbnRcblx0XHRcdCk7XG5cblx0XHRcdCRlbGVtZW50LmFwcGVuZChcblx0XHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtYXJndW1lbnQsIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtY2FsbCwgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuXHRcdFx0XHRuZXcgKG13IGFzIGFueSkud2lkZ2V0cy5Db3B5VGV4dExheW91dCh7XG5cdFx0XHRcdFx0bGFiZWw6IGdldE1lc3NhZ2UoJ1Blcm1hbmVudCBVUkwnKSxcblx0XHRcdFx0XHR0aXRsZTogZ2V0TWVzc2FnZSgnUGVybWFuZW50IFVSTCcpLFxuXHRcdFx0XHRcdGFsaWduOiAndG9wJyxcblx0XHRcdFx0XHRjb3B5VGV4dDogYGh0dHBzOi8vJHtsb2NhdGlvbi5ob3N0fSR7cGVybWFMaW5rfWAsXG5cdFx0XHRcdH0pLiRlbGVtZW50XG5cdFx0XHQpO1xuXG5cdFx0XHRpZiAod2dVc2VyTmFtZSkge1xuXHRcdFx0XHRmb3IgKGNvbnN0IFtpLCBkb21haW5dIG9mIGRvbWFpbnMuZW50cmllcygpKSB7XG5cdFx0XHRcdFx0JGVsZW1lbnQuYXBwZW5kKFxuXHRcdFx0XHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtY2FsbCwgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSwgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1hcmd1bWVudFxuXHRcdFx0XHRcdFx0bmV3IChtdyBhcyBhbnkpLndpZGdldHMuQ29weVRleHRMYXlvdXQoe1xuXHRcdFx0XHRcdFx0XHRsYWJlbDogYCR7Z2V0TWVzc2FnZSgnU2hvcnQgVVJMJyl9JHtpICsgMX1gLFxuXHRcdFx0XHRcdFx0XHR0aXRsZTogYCR7Z2V0TWVzc2FnZSgnU2hvcnQgVVJMJyl9JHtpICsgMX1gLFxuXHRcdFx0XHRcdFx0XHRhbGlnbjogJ3RvcCcsXG5cdFx0XHRcdFx0XHRcdGNvcHlUZXh0OiBgaHR0cHM6Ly8ke2RvbWFpbn0ke2xpbmt9YCxcblx0XHRcdFx0XHRcdH0pLiRlbGVtZW50XG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHR2b2lkIE9PLnVpLmFsZXJ0KCRlbGVtZW50LCB7XG5cdFx0XHRcdHNpemU6ICdtZWRpdW0nLFxuXHRcdFx0XHR0aXRsZTogJCgoPGI+e2dldE1lc3NhZ2UoJ1NoYXJlIFVSTCBmb3IgdGhlIHBhZ2UnKX08L2I+KSBhcyBIVE1MRWxlbWVudCksXG5cdFx0XHR9KTtcblx0XHR9O1xuXG5cdFx0cG9ydGxldExpbmtFdmVudExpc3RlbmVyLnJlbW92ZSgpO1xuXHRcdHBvcnRsZXRMaW5rRXZlbnRMaXN0ZW5lciA9IGFkZEV2ZW50TGlzdGVuZXJXaXRoUmVtb3Zlcih7XG5cdFx0XHR0YXJnZXQ6IChwb3J0bGV0TGluay5maXJzdEVsZW1lbnRDaGlsZCA/PyBwb3J0bGV0TGluaykgYXMgSFRNTEVsZW1lbnQsXG5cdFx0XHR0eXBlOiAnY2xpY2snLFxuXHRcdFx0bGlzdGVuZXI6IHBvcnRsZXRMaW5rQ2xpY2tMaXN0ZW5lcixcblx0XHR9KTtcblxuXHRcdGNvbnN0IGlzQ2l0aXplbjogYm9vbGVhbiA9IHNraW4gPT09ICdjaXRpemVuJztcblx0XHRpZiAoaXNDaXRpemVuICYmICEkKHBvcnRsZXRMaW5rKS5maW5kKCcjbXctdWktaWNvbi13aWtpbWVkaWEtc2hvcnRsaW5rJykubGVuZ3RoKSB7XG5cdFx0XHQkKHBvcnRsZXRMaW5rKVxuXHRcdFx0XHQuZmluZCgnYScpXG5cdFx0XHRcdC5wcmVwZW5kKFxuXHRcdFx0XHRcdDxzcGFuXG5cdFx0XHRcdFx0XHRpZD1cIm13LXVpLWljb24td2lraW1lZGlhLXNob3J0bGlua1wiXG5cdFx0XHRcdFx0XHRjbGFzc05hbWU9e1snY2l0aXplbi11aS1pY29uJywgJ213LXVpLWljb24tbGluaycsICdtdy11aS1pY29uLXdpa2ltZWRpYS1saW5rJ119XG5cdFx0XHRcdFx0Lz5cblx0XHRcdFx0KTtcblx0XHR9XG5cdH1cblxuXHRsZXQgaGVhZGVyTGluazogSFRNTEFuY2hvckVsZW1lbnQgfCBudWxsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI213LWluZGljYXRvci1zaG9ydFVSTCBhJyk7XG5cdGlmICghaGVhZGVyTGluaykge1xuXHRcdGhlYWRlckxpbmsgPSAoXG5cdFx0XHQ8YSBhcmlhLWxhYmVsPXt3Z1VzZXJOYW1lID8gZ2V0TWVzc2FnZSgnU2hvcnQgVVJMJykgOiBnZXRNZXNzYWdlKCdTaGFyZSBVUkwgZm9yIHRoZSBwYWdlJyl9IGhyZWY9XCIjXCI+XG5cdFx0XHRcdDxzcGFuIGNsYXNzTmFtZT1cImdhZGdldC1zaG9ydC1saW5rX19pY29uXCI+XG5cdFx0XHRcdFx0e3dnVXNlck5hbWUgPyBnZXRNZXNzYWdlKCdTaG9ydCBVUkwnKSA6IGdldE1lc3NhZ2UoJ1NoYXJlIFVSTCBmb3IgdGhlIHBhZ2UnKX1cblx0XHRcdFx0PC9zcGFuPlxuXHRcdFx0PC9hPlxuXHRcdCkgYXMgSFRNTEFuY2hvckVsZW1lbnQ7XG5cblx0XHR0aXBweShoZWFkZXJMaW5rLCB7XG5cdFx0XHRhcnJvdzogdHJ1ZSxcblx0XHRcdGNvbnRlbnQ6IHdnVXNlck5hbWUgPyBnZXRNZXNzYWdlKCdTaG9ydCBVUkwnKSA6IGdldE1lc3NhZ2UoJ1NoYXJlIFVSTCBmb3IgdGhlIHBhZ2UnKSxcblx0XHRcdHBsYWNlbWVudDogJ2JvdHRvbScsXG5cdFx0fSk7XG5cblx0XHRjb25zdCAkaGVhZGVyRWxlbWVudCA9ICQoXG5cdFx0XHQ8ZGl2IGNsYXNzTmFtZT1cIm13LWluZGljYXRvclwiIGlkPVwibXctaW5kaWNhdG9yLXNob3J0VVJMXCI+XG5cdFx0XHRcdHtoZWFkZXJMaW5rfVxuXHRcdFx0PC9kaXY+XG5cdFx0KSBhcyBKUXVlcnk7XG5cblx0XHQkaGVhZGVyRWxlbWVudC5wcmVwZW5kVG8oJy5tdy1pbmRpY2F0b3JzJyk7XG5cdH1cblxuXHRjb25zdCBmdWxsTGluazogc3RyaW5nID0gd2dVc2VyTmFtZSA/IGBodHRwczovLyR7ZG9tYWluc1swXX0ke2xpbmt9YCA6IGBodHRwczovLyR7bG9jYXRpb24uaG9zdH0ke3Blcm1hTGlua31gO1xuXG5cdGNvbnN0ICRub3RpZnlFbGVtZW50ID0gJChcblx0XHQ8c3Bhbj5cblx0XHRcdHtnZXRNZXNzYWdlKCdVUkwgY29waWVkIHRvIGNsaXBib2FyZCcpfVxuXHRcdFx0PGJyIC8+XG5cdFx0XHQ8YVxuXHRcdFx0XHRocmVmPVwiI1wiXG5cdFx0XHRcdG9uQ2xpY2s9eyhldmVudCk6IHZvaWQgPT4ge1xuXHRcdFx0XHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cdFx0XHRcdFx0ZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cdFx0XHRcdH19XG5cdFx0XHQ+XG5cdFx0XHRcdHtmdWxsTGlua31cblx0XHRcdDwvYT5cblx0XHQ8L3NwYW4+XG5cdCkgYXMgSlF1ZXJ5O1xuXG5cdGNvbnN0IGhlYWRlckxpbmtDbGlja0xpc3RlbmVyID0gKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCA9PiB7XG5cdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuXHRcdHZvaWQgbXcubm90aWZ5KCRub3RpZnlFbGVtZW50LCB7XG5cdFx0XHR0YWc6ICdzaG9ydFVSTCcsXG5cdFx0XHR0eXBlOiAnaW5mbycsXG5cdFx0fSk7XG5cdH07XG5cblx0aGVhZGVyTGlua0V2ZW50TGlzdGVuZXIucmVtb3ZlKCk7XG5cdGhlYWRlckxpbmtFdmVudExpc3RlbmVyID0gYWRkRXZlbnRMaXN0ZW5lcldpdGhSZW1vdmVyKHtcblx0XHR0YXJnZXQ6IGhlYWRlckxpbmssXG5cdFx0dHlwZTogJ2NsaWNrJyxcblx0XHRsaXN0ZW5lcjogaGVhZGVyTGlua0NsaWNrTGlzdGVuZXIsXG5cdH0pO1xuXG5cdGNsaXBib2FyZEluc3RhbmNlPy5kZXN0cm95KCk7XG5cdGNsaXBib2FyZEluc3RhbmNlID0gbmV3IENsaXBib2FyZChoZWFkZXJMaW5rLCB7XG5cdFx0dGV4dDogKCk6IHN0cmluZyA9PiBmdWxsTGluayxcblx0fSk7XG59O1xuXG5leHBvcnQge2FkZExpbmt9O1xuIiwgImltcG9ydCB7bG9jYWxpemV9IGZyb20gJ2V4dC5nYWRnZXQuaTE4bic7XG5cbmNvbnN0IGdldEkxOG5NZXNzYWdlcyA9ICgpID0+IHtcblx0cmV0dXJuIHtcblx0XHQnTmV0d29yayBlcnJvcic6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnTmV0d29yayBlcnJvcicsXG5cdFx0XHRqYTogJ+ODjeODg+ODiOODr+ODvOOCr+OCqOODqeODvCcsXG5cdFx0XHQnemgtaGFucyc6ICfnvZHnu5zlvILluLgnLFxuXHRcdFx0J3poLWhhbnQnOiAn57ay6Lev55Ww5bi4Jyxcblx0XHR9KSxcblx0XHQnUGFnZSBVUkwnOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ1Blcm1hbmVudCBVUkwnLFxuXHRcdFx0J3poLWhhbnMnOiAn6aG16Z2i6ZO+5o6lJyxcblx0XHRcdCd6aC1oYW50JzogJ+mggemdoue2suWdgCcsXG5cdFx0fSksXG5cdFx0J1Blcm1hbmVudCBVUkwnOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ1Blcm1hbmVudCBVUkwnLFxuXHRcdFx0J3poLWhhbnMnOiAn5rC45LmF6ZO+5o6lJyxcblx0XHRcdCd6aC1oYW50JzogJ+awuOS5hee2suWdgCcsXG5cdFx0fSksXG5cdFx0J1NoYXJlIFVSTCBmb3IgdGhlIHBhZ2UnOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ1NoYXJlIFVSTCBmb3IgdGhlIHBhZ2UnLFxuXHRcdFx0J3poLWhhbnMnOiAn5YiG5Lqr5pys6aG16ZO+5o6lJyxcblx0XHRcdCd6aC1oYW50JzogJ+WIhuS6q+acrOmggee2suWdgCcsXG5cdFx0fSksXG5cdFx0J1Nob3J0IFVSTCc6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnU2hvcnQgVVJMJyxcblx0XHRcdCd6aC1oYW5zJzogJ+efremTvuaOpScsXG5cdFx0XHQnemgtaGFudCc6ICfnn63ntrLlnYAnLFxuXHRcdH0pLFxuXHRcdCdTaG93IFVSTCc6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnU2hvdyBVUkwnLFxuXHRcdFx0J3poLWhhbnMnOiAn5pi+56S66K+l6aG16ZO+5o6lJyxcblx0XHRcdCd6aC1oYW50JzogJ+mhr+ekuuipsumggee2suWdgCcsXG5cdFx0fSksXG5cdFx0J1VSTCBjb3BpZWQgdG8gY2xpcGJvYXJkJzogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdUaGUgVVJMIGhhcyBiZWVuIGNvcGllZCB0byBjbGlwYm9hcmQ6Jyxcblx0XHRcdCd6aC1oYW5zJzogJ+W3suWkjeWItuacrOmhtemTvuaOpe+8micsXG5cdFx0XHQnemgtaGFudCc6ICflt7Llvqnoo73mnKzpoIHntrLlnYDvvJonLFxuXHRcdH0pLFxuXHR9O1xufTtcblxuY29uc3QgaTE4bk1lc3NhZ2VzID0gZ2V0STE4bk1lc3NhZ2VzKCk7XG5cbmNvbnN0IGdldE1lc3NhZ2U6IEdldE1lc3NhZ2VzPHR5cGVvZiBpMThuTWVzc2FnZXM+ID0gKGtleSkgPT4ge1xuXHRyZXR1cm4gaTE4bk1lc3NhZ2VzW2tleV0gfHwga2V5O1xufTtcblxuZXhwb3J0IHtnZXRNZXNzYWdlfTtcbiIsICJpbXBvcnQge2FkZExpbmt9IGZyb20gJy4vYWRkTGluayc7XG5cbmNvbnN0IGJ1aWxkTGluayA9IChvbGRJZDogbnVtYmVyIHwgbnVsbCwgZGlmZklkOiBudW1iZXIpOiB2b2lkID0+IHtcblx0bGV0IGxpbms6IHN0cmluZyA9ICcvZCc7XG5cdGxldCBwZXJtYUxpbms6IHN0cmluZyA9ICcvd2lraS9TcGVjaWFsOkRpZmYnO1xuXHRpZiAob2xkSWQpIHtcblx0XHRsaW5rICs9IGAvJHtvbGRJZH1gO1xuXHRcdHBlcm1hTGluayArPSBgLyR7b2xkSWR9YDtcblx0fVxuXHRsaW5rICs9IGAvJHtkaWZmSWR9YDtcblx0cGVybWFMaW5rICs9IGAvJHtkaWZmSWR9YDtcblxuXHRhZGRMaW5rKGxpbmssIHBlcm1hTGluayk7XG59O1xuXG5leHBvcnQge2J1aWxkTGlua307XG4iLCAie1xuXHRcInZlcnNpb25cIjogXCIyLjBcIlxufVxuIiwgImltcG9ydCAqIGFzIE9QVElPTlMgZnJvbSAnLi4vb3B0aW9ucy5qc29uJztcbmltcG9ydCB7aW5pdE13QXBpfSBmcm9tICdleHQuZ2FkZ2V0LlV0aWwnO1xuXG5jb25zdCBhcGk6IG13LkFwaSA9IGluaXRNd0FwaShgU2hvcnRVUkwvJHtPUFRJT05TLnZlcnNpb259YCk7XG5cbmV4cG9ydCB7YXBpfTtcbiIsICJpbXBvcnQge2FwaX0gZnJvbSAnLi4vYXBpJztcbmltcG9ydCB7Z2V0TWVzc2FnZX0gZnJvbSAnLi4vaTE4bic7XG5pbXBvcnQge3RvYXN0aWZ5fSBmcm9tICdleHQuZ2FkZ2V0LlRvYXN0aWZ5JztcblxudHlwZSBDb21wYXJlUmVzcG9uc2UgPSB7XG5cdGNvbXBhcmU/OiB7XG5cdFx0ZnJvbXJldmlkOiBudW1iZXI7XG5cdH07XG59O1xuXG5jb25zdCBwYXJhbWV0ZXJzOiBBcGlDb21wYXJlUGFnZXNQYXJhbXMgPSB7XG5cdGFjdGlvbjogJ2NvbXBhcmUnLFxuXHRmb3JtYXQ6ICdqc29uJyxcblx0Zm9ybWF0dmVyc2lvbjogJzInLFxuXHRwcm9wOiAnaWRzJyxcblx0dG9yZWxhdGl2ZTogJ3ByZXYnLFxuXHRzbWF4YWdlOiA2MDAsXG5cdG1heGFnZTogNjAwLFxufTtcblxuY29uc3QgcXVlcnlBcGkgPSBhc3luYyAoZGlmZklkOiBudW1iZXIpOiBQcm9taXNlPENvbXBhcmVSZXNwb25zZT4gPT4ge1xuXHR0cnkge1xuXHRcdHJldHVybiBhd2FpdCBhcGkuZ2V0KHtcblx0XHRcdC4uLnBhcmFtZXRlcnMsXG5cdFx0XHRmcm9tcmV2OiBkaWZmSWQsXG5cdFx0fSBhcyB0eXBlb2YgcGFyYW1ldGVycyk7XG5cdH0gY2F0Y2ggKGVycm9yOiB1bmtub3duKSB7XG5cdFx0Y29uc29sZS5lcnJvcignW1Nob3J0VVJMXSBBamF4IGVycm9yOicsIGVycm9yKTtcblx0XHR0b2FzdGlmeShcblx0XHRcdHtcblx0XHRcdFx0dGV4dDogZ2V0TWVzc2FnZSgnTmV0d29yayBlcnJvcicpLFxuXHRcdFx0XHRjbG9zZTogdHJ1ZSxcblx0XHRcdFx0ZHVyYXRpb246IC0xLFxuXHRcdFx0fSxcblx0XHRcdCdlcnJvcidcblx0XHQpO1xuXG5cdFx0cmV0dXJuIHt9O1xuXHR9XG59O1xuXG5leHBvcnQge3F1ZXJ5QXBpfTtcbiIsICJpbXBvcnQge2J1aWxkTGlua30gZnJvbSAnLi9idWlsZExpbmsnO1xuaW1wb3J0IHtxdWVyeUFwaX0gZnJvbSAnLi91dGlsL3F1ZXJ5QXBpJztcblxuY29uc3QgY29tcGFyZVdpdGhSZW1vdGVEaWZmSWQgPSBhc3luYyAoZGlmZklkOiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+ID0+IHtcblx0Y29uc3QgcmVzcG9uc2U6IEF3YWl0ZWQ8UmV0dXJuVHlwZTx0eXBlb2YgcXVlcnlBcGk+PiA9IGF3YWl0IHF1ZXJ5QXBpKGRpZmZJZCk7XG5cdGlmIChkaWZmSWQgPT09IG13LmNvbmZpZy5nZXQoJ3dnRGlmZk5ld0lkJykgJiYgcmVzcG9uc2VbJ2NvbXBhcmUnXT8uZnJvbXJldmlkID09PSBtdy5jb25maWcuZ2V0KCd3Z0RpZmZPbGRJZCcpKSB7XG5cdFx0YnVpbGRMaW5rKDAsIGRpZmZJZCk7XG5cdH1cbn07XG5cbmV4cG9ydCB7Y29tcGFyZVdpdGhSZW1vdGVEaWZmSWR9O1xuIiwgImltcG9ydCB7YWRkTGlua30gZnJvbSAnLi9hZGRMaW5rJztcbmltcG9ydCB7YnVpbGRMaW5rfSBmcm9tICcuL2J1aWxkTGluayc7XG5pbXBvcnQge2NvbXBhcmVXaXRoUmVtb3RlRGlmZklkfSBmcm9tICcuL2NvbXBhcmVXaXRoUmVtb3RlRGlmZklkJztcblxuY29uc3QgcHJvY2Vzc0lkID0gKFxuXHRpc1JldmlzaW9uUGFnZTogYm9vbGVhbixcblx0e1xuXHRcdGFydGljbGVJZCxcblx0XHRkaWZmSWQsXG5cdFx0b2xkSWQsXG5cdFx0cmV2aXNpb25JZCxcblx0fToge1xuXHRcdGFydGljbGVJZDogbnVtYmVyO1xuXHRcdGRpZmZJZDogbnVtYmVyIHwgbnVsbDtcblx0XHRvbGRJZDogbnVtYmVyIHwgbnVsbDtcblx0XHRyZXZpc2lvbklkOiBudW1iZXIgfCBudWxsO1xuXHR9XG4pOiB2b2lkID0+IHtcblx0aWYgKGRpZmZJZCkge1xuXHRcdGJ1aWxkTGluayhvbGRJZCwgZGlmZklkKTtcblx0XHRpZiAob2xkSWQpIHtcblx0XHRcdHZvaWQgY29tcGFyZVdpdGhSZW1vdGVEaWZmSWQoZGlmZklkKTtcblx0XHR9XG5cdH0gZWxzZSBpZiAocmV2aXNpb25JZCAmJiBpc1JldmlzaW9uUGFnZSkge1xuXHRcdGFkZExpbmsoYC9wLyR7cmV2aXNpb25JZH1gLCBgL3dpa2kvU3BlY2lhbDpQZXJtYWxpbmsvJHtyZXZpc2lvbklkfWApO1xuXHR9IGVsc2UgaWYgKGFydGljbGVJZCkge1xuXHRcdGFkZExpbmsoYC9jLyR7YXJ0aWNsZUlkfWAsIGAvaW5kZXgucGhwP2N1cmlkPSR7YXJ0aWNsZUlkfWApO1xuXHR9XG59O1xuXG5leHBvcnQge3Byb2Nlc3NJZH07XG4iLCAiaW1wb3J0IHtjaGVja1JldmlzaW9uUGFnZX0gZnJvbSAnLi9tb2R1bGVzL3V0aWwvY2hlY2tSZXZpc2lvblBhZ2UnO1xuaW1wb3J0IHtnZXRTaG9ydERvbWFpbnN9IGZyb20gJy4vbW9kdWxlcy91dGlsL2dldFNob3J0RG9tYWlucyc7XG5pbXBvcnQge3Byb2Nlc3NJZH0gZnJvbSAnLi9tb2R1bGVzL3Byb2Nlc3NJZCc7XG5cbihmdW5jdGlvbiBzaG9ydFVSTCgpIHtcblx0Y29uc3Qge3dnQWN0aW9uLCB3Z0FydGljbGVJZCwgd2dOYW1lc3BhY2VOdW1iZXJ9ID0gbXcuY29uZmlnLmdldCgpO1xuXG5cdGNvbnN0IGRvbWFpbnMgPSBnZXRTaG9ydERvbWFpbnMoKTtcblxuXHRpZiAoIWRvbWFpbnMubGVuZ3RoIHx8IHdnTmFtZXNwYWNlTnVtYmVyIDwgMCkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGlmICh3Z0FjdGlvbiA9PT0gJ3ZpZXcnICYmIHdnQXJ0aWNsZUlkKSB7XG5cdFx0bXcuaG9vaygnd2lraXBhZ2UuY29udGVudCcpLmFkZCgoJGNvbnRlbnQpOiB2b2lkID0+IHtcblx0XHRcdGlmICgkY29udGVudC5hdHRyKCdpZCcpICE9PSAnbXctY29udGVudC10ZXh0Jykge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cblx0XHRcdGNvbnN0IGlzUmV2aXNpb25QYWdlOiBib29sZWFuID0gY2hlY2tSZXZpc2lvblBhZ2UoJGNvbnRlbnQpO1xuXG5cdFx0XHRwcm9jZXNzSWQoaXNSZXZpc2lvblBhZ2UsIHtcblx0XHRcdFx0YXJ0aWNsZUlkOiBtdy5jb25maWcuZ2V0KCd3Z0FydGljbGVJZCcpLFxuXHRcdFx0XHRkaWZmSWQ6IG13LmNvbmZpZy5nZXQoJ3dnRGlmZk5ld0lkJyksXG5cdFx0XHRcdG9sZElkOiBtdy5jb25maWcuZ2V0KCd3Z0RpZmZPbGRJZCcpLFxuXHRcdFx0XHRyZXZpc2lvbklkOiBtdy5jb25maWcuZ2V0KCd3Z1JldmlzaW9uSWQnKSxcblx0XHRcdH0pO1xuXHRcdH0pO1xuXHR9XG59KSgpO1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFNQSxvQkFBcUJDLGNBQThCO0FBQ3hELFVBQ0VBLFNBQVNDLEtBQUssOEJBQThCLEVBQUVDLFVBQzlDRixTQUFTQyxLQUFLLDRDQUE0QyxFQUFFQyxVQUFVO0FBRXpFOztB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ICAibmFtZXMiOiBbImNoZWNrUmV2aXNpb25QYWdlIiwgIiRjb250ZW50IiwgImZpbmQiLCAibGVuZ3RoIiwgImdldFNob3J0RG9tYWlucyIsICJ3Z1dpa2lJRCIsICJtdyIsICJjb25maWciLCAiZ2V0IiwgImRvbWFpbnMyIiwgImltcG9ydF9leHRfZ2FkZ2V0MiIsICJyZXF1aXJlIiwgImltcG9ydF9leHRfZ2FkZ2V0MyIsICJfX3RvRVNNIiwgImltcG9ydF9leHRfZ2FkZ2V0NCIsICJpbXBvcnRfZXh0X2dhZGdldCIsICJnZXRJMThuTWVzc2FnZXMiLCAibG9jYWxpemUiLCAiZW4iLCAiamEiLCAiaTE4bk1lc3NhZ2VzIiwgImdldE1lc3NhZ2UiLCAia2V5IiwgImltcG9ydF9leHRfZ2FkZ2V0NSIsICJza2luIiwgIndnVXNlck5hbWUiLCAiZG9tYWlucyIsICJjbGlwYm9hcmRJbnN0YW5jZSIsICJoZWFkZXJMaW5rRXZlbnRMaXN0ZW5lciIsICJyZW1vdmUiLCAicG9ydGxldExpbmtFdmVudExpc3RlbmVyIiwgImFkZExpbmsiLCAibGluayIsICJwZXJtYUxpbmsiLCAiX2NsaXBib2FyZEluc3RhbmNlIiwgInBvcnRsZXRMaW5rIiwgImRvY3VtZW50IiwgInF1ZXJ5U2VsZWN0b3IiLCAicG9ydGxldElkIiwgInV0aWwiLCAiYWRkUG9ydGxldExpbmsiLCAiX3BvcnRsZXRMaW5rJGZpcnN0RWxlIiwgInBvcnRsZXRMaW5rQ2xpY2tMaXN0ZW5lciIsICJldmVudCIsICJwcmV2ZW50RGVmYXVsdCIsICIkZWxlbWVudCIsICIkIiwgImFwcGVuZCIsICJ3aWRnZXRzIiwgIkNvcHlUZXh0TGF5b3V0IiwgImxhYmVsIiwgInRpdGxlIiwgImFsaWduIiwgImNvcHlUZXh0IiwgImxvY2F0aW9uIiwgImhyZWYiLCAiY29uY2F0IiwgImhvc3QiLCAiX2l0ZXJhdG9yMiIsICJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsICJlbnRyaWVzIiwgIl9zdGVwMiIsICJzIiwgIm4iLCAiZG9uZSIsICJpIiwgImRvbWFpbiIsICJ2YWx1ZSIsICJlcnIiLCAiZSIsICJmIiwgIk9PIiwgInVpIiwgImFsZXJ0IiwgInNpemUiLCAiZGVmYXVsdCIsICJjcmVhdGVFbGVtZW50IiwgImFkZEV2ZW50TGlzdGVuZXJXaXRoUmVtb3ZlciIsICJ0YXJnZXQiLCAiZmlyc3RFbGVtZW50Q2hpbGQiLCAidHlwZSIsICJsaXN0ZW5lciIsICJpc0NpdGl6ZW4iLCAicHJlcGVuZCIsICJpZCIsICJjbGFzc05hbWUiLCAiaGVhZGVyTGluayIsICJ0aXBweSIsICJhcnJvdyIsICJjb250ZW50IiwgInBsYWNlbWVudCIsICIkaGVhZGVyRWxlbWVudCIsICJwcmVwZW5kVG8iLCAiZnVsbExpbmsiLCAiJG5vdGlmeUVsZW1lbnQiLCAib25DbGljayIsICJzdG9wUHJvcGFnYXRpb24iLCAiaGVhZGVyTGlua0NsaWNrTGlzdGVuZXIiLCAibm90aWZ5IiwgInRhZyIsICJkZXN0cm95IiwgIkNsaXBib2FyZCIsICJ0ZXh0IiwgImJ1aWxkTGluayIsICJvbGRJZCIsICJkaWZmSWQiLCAidmVyc2lvbiIsICJpbXBvcnRfZXh0X2dhZGdldDYiLCAiYXBpIiwgImluaXRNd0FwaSIsICJpbXBvcnRfZXh0X2dhZGdldDciLCAicGFyYW1ldGVycyIsICJhY3Rpb24iLCAiZm9ybWF0IiwgImZvcm1hdHZlcnNpb24iLCAicHJvcCIsICJ0b3JlbGF0aXZlIiwgInNtYXhhZ2UiLCAibWF4YWdlIiwgInF1ZXJ5QXBpIiwgIl9yZWYiLCAiX2FzeW5jVG9HZW5lcmF0b3IiLCAiZnJvbXJldiIsICJlcnJvciIsICJjb25zb2xlIiwgInRvYXN0aWZ5IiwgImNsb3NlIiwgImR1cmF0aW9uIiwgIl94IiwgImFwcGx5IiwgImFyZ3VtZW50cyIsICJjb21wYXJlV2l0aFJlbW90ZURpZmZJZCIsICJfcmVmMiIsICJfcmVzcG9uc2UkY29tcGFyZSIsICJyZXNwb25zZSIsICJmcm9tcmV2aWQiLCAiX3gyIiwgInByb2Nlc3NJZCIsICJpc1JldmlzaW9uUGFnZSIsICJhcnRpY2xlSWQiLCAicmV2aXNpb25JZCIsICJzaG9ydFVSTCIsICJ3Z0FjdGlvbiIsICJ3Z0FydGljbGVJZCIsICJ3Z05hbWVzcGFjZU51bWJlciIsICJob29rIiwgImFkZCIsICJhdHRyIl0KfQo= +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL1Nob3J0VVJML21vZHVsZXMvdXRpbC9jaGVja1JldmlzaW9uUGFnZS50cyIsICJzcmMvU2hvcnRVUkwvbW9kdWxlcy91dGlsL2dldFNob3J0RG9tYWlucy50cyIsICJzcmMvU2hvcnRVUkwvbW9kdWxlcy9hZGRMaW5rLnRzeCIsICJzcmMvU2hvcnRVUkwvbW9kdWxlcy9pMThuLnRzIiwgInNyYy9TaG9ydFVSTC9tb2R1bGVzL2J1aWxkTGluay50cyIsICJzcmMvU2hvcnRVUkwvb3B0aW9ucy5qc29uIiwgInNyYy9TaG9ydFVSTC9tb2R1bGVzL2FwaS50cyIsICJzcmMvU2hvcnRVUkwvbW9kdWxlcy91dGlsL3F1ZXJ5QXBpLnRzIiwgInNyYy9TaG9ydFVSTC9tb2R1bGVzL2NvbXBhcmVXaXRoUmVtb3RlRGlmZklkLnRzIiwgInNyYy9TaG9ydFVSTC9tb2R1bGVzL3Byb2Nlc3NJZC50cyIsICJzcmMvU2hvcnRVUkwvU2hvcnRVUkwudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImNvbnN0IGNoZWNrUmV2aXNpb25QYWdlID0gKCRjb250ZW50OiBKUXVlcnkpOiBib29sZWFuID0+IHtcblx0cmV0dXJuIChcblx0XHQoJGNvbnRlbnQuZmluZCgnI2NvbnRlbnRTdWIgI213LXJldmlzaW9uLW5hdicpLmxlbmd0aCB8fFxuXHRcdFx0JGNvbnRlbnQuZmluZCgnbWFpbiNjb250ZW50Pi5wcmUtY29udGVudCAjbXctcmV2aXNpb24tbmF2JykubGVuZ3RoKSA+IDBcblx0KTtcbn07XG5cbmV4cG9ydCB7Y2hlY2tSZXZpc2lvblBhZ2V9O1xuIiwgImNvbnN0IGdldFNob3J0RG9tYWlucyA9ICgpOiBzdHJpbmdbXSA9PiB7XG5cdGNvbnN0IHt3Z1dpa2lJRH0gPSBtdy5jb25maWcuZ2V0KCk7XG5cdGxldCBkb21haW5zOiBzdHJpbmdbXSA9IFtdO1xuXG5cdHN3aXRjaCAod2dXaWtpSUQpIHtcblx0XHRjYXNlICd6aHFpdXdlbmJhaWtlJzpcblx0XHRcdGRvbWFpbnMgPSBbJ3F3YmsuY2MnLCAnYmt3ei5jbiddO1xuXHRcdFx0YnJlYWs7XG5cdFx0Y2FzZSAnbGljZW5jZXdpa2knOlxuXHRcdFx0ZG9tYWlucyA9IFsnbC5xd2JrLmNjJywgJ2wuYmt3ei5jbiddO1xuXHRcdFx0YnJlYWs7XG5cdFx0Y2FzZSAnbW5jcWl1d2VuYmFpa2UnOlxuXHRcdFx0ZG9tYWlucyA9IFsnbW5jLnF3YmsuY2MnLCAnbW5jLmJrd3ouY24nXTtcblx0XHRcdGJyZWFrO1xuXHR9XG5cblx0cmV0dXJuIGRvbWFpbnM7XG59O1xuXG5leHBvcnQge2dldFNob3J0RG9tYWluc307XG4iLCAiaW1wb3J0IHtDbGlwYm9hcmR9IGZyb20gJ2V4dC5nYWRnZXQuQ2xpcGJvYXJkJztcbmltcG9ydCBSZWFjdCBmcm9tICdleHQuZ2FkZ2V0LkpTWCc7XG5pbXBvcnQge2FkZEV2ZW50TGlzdGVuZXJXaXRoUmVtb3Zlcn0gZnJvbSAnZXh0LmdhZGdldC5VdGlsJztcbmltcG9ydCB7Z2V0TWVzc2FnZX0gZnJvbSAnLi9pMThuJztcbmltcG9ydCB7Z2V0U2hvcnREb21haW5zfSBmcm9tICcuL3V0aWwvZ2V0U2hvcnREb21haW5zJztcbmltcG9ydCB7dGlwcHl9IGZyb20gJ2V4dC5nYWRnZXQuVGlwcHknO1xuXG5jb25zdCB7c2tpbiwgd2dVc2VyTmFtZX0gPSBtdy5jb25maWcuZ2V0KCk7XG5jb25zdCBkb21haW5zID0gZ2V0U2hvcnREb21haW5zKCk7XG5cbmxldCBjbGlwYm9hcmRJbnN0YW5jZTogQ2xpcGJvYXJkSlMgfCB1bmRlZmluZWQ7XG5sZXQgaGVhZGVyTGlua0V2ZW50TGlzdGVuZXI6IFJldHVyblR5cGU8dHlwZW9mIGFkZEV2ZW50TGlzdGVuZXJXaXRoUmVtb3Zlcj4gPSB7XG5cdHJlbW92ZTogKCk6IHZvaWQgPT4ge30sXG59O1xubGV0IHBvcnRsZXRMaW5rRXZlbnRMaXN0ZW5lcjogUmV0dXJuVHlwZTx0eXBlb2YgYWRkRXZlbnRMaXN0ZW5lcldpdGhSZW1vdmVyPiA9IHtcblx0cmVtb3ZlOiAoKTogdm9pZCA9PiB7fSxcbn07XG5cbmNvbnN0IGFkZExpbmsgPSAobGluazogc3RyaW5nLCBwZXJtYUxpbms6IHN0cmluZyk6IHZvaWQgPT4ge1xuXHRsZXQgcG9ydGxldExpbms6IEhUTUxMSUVsZW1lbnQgfCBudWxsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3Qtc2hvcnRsaW5rJyk7XG5cdGlmICghcG9ydGxldExpbmspIHtcblx0XHRjb25zdCBwb3J0bGV0SWQ6ICdwLWNhY3Rpb25zJyB8ICdwLXRiJyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNwLWNhY3Rpb25zJykgPyAncC1jYWN0aW9ucycgOiAncC10Yic7XG5cdFx0cG9ydGxldExpbmsgPSBtdy51dGlsLmFkZFBvcnRsZXRMaW5rKFxuXHRcdFx0cG9ydGxldElkLFxuXHRcdFx0JyMnLFxuXHRcdFx0Z2V0TWVzc2FnZSgnU2hhcmUgVVJMIGZvciB0aGUgcGFnZScpLFxuXHRcdFx0J3Qtc2hvcnRsaW5rJyxcblx0XHRcdGdldE1lc3NhZ2UoJ1Nob3cgVVJMJylcblx0XHQpO1xuXHR9XG5cblx0aWYgKHBvcnRsZXRMaW5rKSB7XG5cdFx0Y29uc3QgcG9ydGxldExpbmtDbGlja0xpc3RlbmVyID0gKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCA9PiB7XG5cdFx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG5cdFx0XHRjb25zdCAkZWxlbWVudDogSlF1ZXJ5ID0gJCgnPGRpdj4nKTtcblxuXHRcdFx0JGVsZW1lbnQuYXBwZW5kKFxuXHRcdFx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1jYWxsLCBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55LCBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWFyZ3VtZW50XG5cdFx0XHRcdG5ldyAobXcgYXMgYW55KS53aWRnZXRzLkNvcHlUZXh0TGF5b3V0KHtcblx0XHRcdFx0XHRsYWJlbDogZ2V0TWVzc2FnZSgnUGFnZSBVUkwnKSxcblx0XHRcdFx0XHR0aXRsZTogZ2V0TWVzc2FnZSgnUGFnZSBVUkwnKSxcblx0XHRcdFx0XHRhbGlnbjogJ3RvcCcsXG5cdFx0XHRcdFx0Y29weVRleHQ6IGxvY2F0aW9uLmhyZWYsXG5cdFx0XHRcdH0pLiRlbGVtZW50XG5cdFx0XHQpO1xuXG5cdFx0XHQkZWxlbWVudC5hcHBlbmQoXG5cdFx0XHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWFyZ3VtZW50LCBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWNhbGwsIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcblx0XHRcdFx0bmV3IChtdyBhcyBhbnkpLndpZGdldHMuQ29weVRleHRMYXlvdXQoe1xuXHRcdFx0XHRcdGxhYmVsOiBnZXRNZXNzYWdlKCdQZXJtYW5lbnQgVVJMJyksXG5cdFx0XHRcdFx0dGl0bGU6IGdldE1lc3NhZ2UoJ1Blcm1hbmVudCBVUkwnKSxcblx0XHRcdFx0XHRhbGlnbjogJ3RvcCcsXG5cdFx0XHRcdFx0Y29weVRleHQ6IGBodHRwczovLyR7bG9jYXRpb24uaG9zdH0ke3Blcm1hTGlua31gLFxuXHRcdFx0XHR9KS4kZWxlbWVudFxuXHRcdFx0KTtcblxuXHRcdFx0aWYgKHdnVXNlck5hbWUpIHtcblx0XHRcdFx0Zm9yIChjb25zdCBbaSwgZG9tYWluXSBvZiBkb21haW5zLmVudHJpZXMoKSkge1xuXHRcdFx0XHRcdCRlbGVtZW50LmFwcGVuZChcblx0XHRcdFx0XHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWNhbGwsIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnksIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtYXJndW1lbnRcblx0XHRcdFx0XHRcdG5ldyAobXcgYXMgYW55KS53aWRnZXRzLkNvcHlUZXh0TGF5b3V0KHtcblx0XHRcdFx0XHRcdFx0bGFiZWw6IGAke2dldE1lc3NhZ2UoJ1Nob3J0IFVSTCcpfSR7aSArIDF9YCxcblx0XHRcdFx0XHRcdFx0dGl0bGU6IGAke2dldE1lc3NhZ2UoJ1Nob3J0IFVSTCcpfSR7aSArIDF9YCxcblx0XHRcdFx0XHRcdFx0YWxpZ246ICd0b3AnLFxuXHRcdFx0XHRcdFx0XHRjb3B5VGV4dDogYGh0dHBzOi8vJHtkb21haW59JHtsaW5rfWAsXG5cdFx0XHRcdFx0XHR9KS4kZWxlbWVudFxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0dm9pZCBPTy51aS5hbGVydCgkZWxlbWVudCwge1xuXHRcdFx0XHRzaXplOiAnbWVkaXVtJyxcblx0XHRcdFx0dGl0bGU6ICQoKDxiPntnZXRNZXNzYWdlKCdTaGFyZSBVUkwgZm9yIHRoZSBwYWdlJyl9PC9iPikgYXMgSFRNTEVsZW1lbnQpLFxuXHRcdFx0fSk7XG5cdFx0fTtcblxuXHRcdHBvcnRsZXRMaW5rRXZlbnRMaXN0ZW5lci5yZW1vdmUoKTtcblx0XHRwb3J0bGV0TGlua0V2ZW50TGlzdGVuZXIgPSBhZGRFdmVudExpc3RlbmVyV2l0aFJlbW92ZXIoe1xuXHRcdFx0dGFyZ2V0OiAocG9ydGxldExpbmsuZmlyc3RFbGVtZW50Q2hpbGQgPz8gcG9ydGxldExpbmspIGFzIEhUTUxFbGVtZW50LFxuXHRcdFx0dHlwZTogJ2NsaWNrJyxcblx0XHRcdGxpc3RlbmVyOiBwb3J0bGV0TGlua0NsaWNrTGlzdGVuZXIsXG5cdFx0fSk7XG5cblx0XHRjb25zdCBpc0NpdGl6ZW46IGJvb2xlYW4gPSBza2luID09PSAnY2l0aXplbic7XG5cdFx0aWYgKGlzQ2l0aXplbiAmJiAhJChwb3J0bGV0TGluaykuZmluZCgnI213LXVpLWljb24td2lraW1lZGlhLXNob3J0bGluaycpLmxlbmd0aCkge1xuXHRcdFx0JChwb3J0bGV0TGluaylcblx0XHRcdFx0LmZpbmQoJ2EnKVxuXHRcdFx0XHQucHJlcGVuZChcblx0XHRcdFx0XHQ8c3BhblxuXHRcdFx0XHRcdFx0aWQ9XCJtdy11aS1pY29uLXdpa2ltZWRpYS1zaG9ydGxpbmtcIlxuXHRcdFx0XHRcdFx0Y2xhc3NOYW1lPXtbJ2NpdGl6ZW4tdWktaWNvbicsICdtdy11aS1pY29uLWxpbmsnLCAnbXctdWktaWNvbi13aWtpbWVkaWEtbGluayddfVxuXHRcdFx0XHRcdC8+XG5cdFx0XHRcdCk7XG5cdFx0fVxuXHR9XG5cblx0bGV0IGhlYWRlckxpbms6IEhUTUxBbmNob3JFbGVtZW50IHwgbnVsbCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNtdy1pbmRpY2F0b3Itc2hvcnRVUkwgYScpO1xuXHRpZiAoIWhlYWRlckxpbmspIHtcblx0XHRoZWFkZXJMaW5rID0gKFxuXHRcdFx0PGEgYXJpYS1sYWJlbD17d2dVc2VyTmFtZSA/IGdldE1lc3NhZ2UoJ1Nob3J0IFVSTCcpIDogZ2V0TWVzc2FnZSgnU2hhcmUgVVJMIGZvciB0aGUgcGFnZScpfSBocmVmPVwiI1wiPlxuXHRcdFx0XHQ8c3BhbiBjbGFzc05hbWU9XCJnYWRnZXQtc2hvcnQtbGlua19faWNvblwiPlxuXHRcdFx0XHRcdHt3Z1VzZXJOYW1lID8gZ2V0TWVzc2FnZSgnU2hvcnQgVVJMJykgOiBnZXRNZXNzYWdlKCdTaGFyZSBVUkwgZm9yIHRoZSBwYWdlJyl9XG5cdFx0XHRcdDwvc3Bhbj5cblx0XHRcdDwvYT5cblx0XHQpIGFzIEhUTUxBbmNob3JFbGVtZW50O1xuXG5cdFx0dGlwcHkoaGVhZGVyTGluaywge1xuXHRcdFx0YXJyb3c6IHRydWUsXG5cdFx0XHRjb250ZW50OiB3Z1VzZXJOYW1lID8gZ2V0TWVzc2FnZSgnU2hvcnQgVVJMJykgOiBnZXRNZXNzYWdlKCdTaGFyZSBVUkwgZm9yIHRoZSBwYWdlJyksXG5cdFx0XHRwbGFjZW1lbnQ6ICdib3R0b20nLFxuXHRcdH0pO1xuXG5cdFx0Y29uc3QgJGhlYWRlckVsZW1lbnQgPSAkKFxuXHRcdFx0PGRpdiBjbGFzc05hbWU9XCJtdy1pbmRpY2F0b3JcIiBpZD1cIm13LWluZGljYXRvci1zaG9ydFVSTFwiPlxuXHRcdFx0XHR7aGVhZGVyTGlua31cblx0XHRcdDwvZGl2PlxuXHRcdCkgYXMgSlF1ZXJ5O1xuXG5cdFx0JGhlYWRlckVsZW1lbnQucHJlcGVuZFRvKCcubXctaW5kaWNhdG9ycycpO1xuXHR9XG5cblx0Y29uc3QgZnVsbExpbms6IHN0cmluZyA9IHdnVXNlck5hbWUgPyBgaHR0cHM6Ly8ke2RvbWFpbnNbMF19JHtsaW5rfWAgOiBgaHR0cHM6Ly8ke2xvY2F0aW9uLmhvc3R9JHtwZXJtYUxpbmt9YDtcblxuXHRjb25zdCAkbm90aWZ5RWxlbWVudCA9ICQoXG5cdFx0PHNwYW4+XG5cdFx0XHR7Z2V0TWVzc2FnZSgnVVJMIGNvcGllZCB0byBjbGlwYm9hcmQnKX1cblx0XHRcdDxiciAvPlxuXHRcdFx0PGFcblx0XHRcdFx0aHJlZj1cIiNcIlxuXHRcdFx0XHRvbkNsaWNrPXsoZXZlbnQpOiB2b2lkID0+IHtcblx0XHRcdFx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXHRcdFx0XHRcdGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXHRcdFx0XHR9fVxuXHRcdFx0PlxuXHRcdFx0XHR7ZnVsbExpbmt9XG5cdFx0XHQ8L2E+XG5cdFx0PC9zcGFuPlxuXHQpIGFzIEpRdWVyeTtcblxuXHRjb25zdCBoZWFkZXJMaW5rQ2xpY2tMaXN0ZW5lciA9IChldmVudDogTW91c2VFdmVudCk6IHZvaWQgPT4ge1xuXHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cblx0XHR2b2lkIG13Lm5vdGlmeSgkbm90aWZ5RWxlbWVudCwge1xuXHRcdFx0dGFnOiAnc2hvcnRVUkwnLFxuXHRcdFx0dHlwZTogJ2luZm8nLFxuXHRcdH0pO1xuXHR9O1xuXG5cdGhlYWRlckxpbmtFdmVudExpc3RlbmVyLnJlbW92ZSgpO1xuXHRoZWFkZXJMaW5rRXZlbnRMaXN0ZW5lciA9IGFkZEV2ZW50TGlzdGVuZXJXaXRoUmVtb3Zlcih7XG5cdFx0dGFyZ2V0OiBoZWFkZXJMaW5rLFxuXHRcdHR5cGU6ICdjbGljaycsXG5cdFx0bGlzdGVuZXI6IGhlYWRlckxpbmtDbGlja0xpc3RlbmVyLFxuXHR9KTtcblxuXHRjbGlwYm9hcmRJbnN0YW5jZT8uZGVzdHJveSgpO1xuXHRjbGlwYm9hcmRJbnN0YW5jZSA9IG5ldyBDbGlwYm9hcmQoaGVhZGVyTGluaywge1xuXHRcdHRleHQ6ICgpOiBzdHJpbmcgPT4gZnVsbExpbmssXG5cdH0pO1xufTtcblxuZXhwb3J0IHthZGRMaW5rfTtcbiIsICJpbXBvcnQge2xvY2FsaXplfSBmcm9tICdleHQuZ2FkZ2V0LmkxOG4nO1xuXG5jb25zdCBnZXRJMThuTWVzc2FnZXMgPSAoKSA9PiB7XG5cdHJldHVybiB7XG5cdFx0J05ldHdvcmsgZXJyb3InOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ05ldHdvcmsgZXJyb3InLFxuXHRcdFx0amE6ICfjg43jg4Pjg4jjg6/jg7zjgq/jgqjjg6njg7wnLFxuXHRcdFx0J3poLWhhbnMnOiAn572R57uc5byC5bi4Jyxcblx0XHRcdCd6aC1oYW50JzogJ+e2sui3r+eVsOW4uCcsXG5cdFx0fSksXG5cdFx0J1BhZ2UgVVJMJzogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdQZXJtYW5lbnQgVVJMJyxcblx0XHRcdCd6aC1oYW5zJzogJ+mhtemdoumTvuaOpScsXG5cdFx0XHQnemgtaGFudCc6ICfpoIHpnaLntrLlnYAnLFxuXHRcdH0pLFxuXHRcdCdQZXJtYW5lbnQgVVJMJzogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdQZXJtYW5lbnQgVVJMJyxcblx0XHRcdCd6aC1oYW5zJzogJ+awuOS5hemTvuaOpScsXG5cdFx0XHQnemgtaGFudCc6ICfmsLjkuYXntrLlnYAnLFxuXHRcdH0pLFxuXHRcdCdTaGFyZSBVUkwgZm9yIHRoZSBwYWdlJzogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdTaGFyZSBVUkwgZm9yIHRoZSBwYWdlJyxcblx0XHRcdCd6aC1oYW5zJzogJ+WIhuS6q+acrOmhtemTvuaOpScsXG5cdFx0XHQnemgtaGFudCc6ICfliIbkuqvmnKzpoIHntrLlnYAnLFxuXHRcdH0pLFxuXHRcdCdTaG9ydCBVUkwnOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ1Nob3J0IFVSTCcsXG5cdFx0XHQnemgtaGFucyc6ICfnn63pk77mjqUnLFxuXHRcdFx0J3poLWhhbnQnOiAn55+t57ay5Z2AJyxcblx0XHR9KSxcblx0XHQnU2hvdyBVUkwnOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ1Nob3cgVVJMJyxcblx0XHRcdCd6aC1oYW5zJzogJ+aYvuekuuivpemhtemTvuaOpScsXG5cdFx0XHQnemgtaGFudCc6ICfpoa/npLroqbLpoIHntrLlnYAnLFxuXHRcdH0pLFxuXHRcdCdVUkwgY29waWVkIHRvIGNsaXBib2FyZCc6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnVGhlIFVSTCBoYXMgYmVlbiBjb3BpZWQgdG8gY2xpcGJvYXJkOicsXG5cdFx0XHQnemgtaGFucyc6ICflt7LlpI3liLbmnKzpobXpk77mjqXvvJonLFxuXHRcdFx0J3poLWhhbnQnOiAn5bey5b6p6KO95pys6aCB57ay5Z2A77yaJyxcblx0XHR9KSxcblx0fTtcbn07XG5cbmNvbnN0IGkxOG5NZXNzYWdlcyA9IGdldEkxOG5NZXNzYWdlcygpO1xuXG5jb25zdCBnZXRNZXNzYWdlOiBHZXRNZXNzYWdlczx0eXBlb2YgaTE4bk1lc3NhZ2VzPiA9IChrZXkpID0+IHtcblx0cmV0dXJuIGkxOG5NZXNzYWdlc1trZXldIHx8IGtleTtcbn07XG5cbmV4cG9ydCB7Z2V0TWVzc2FnZX07XG4iLCAiaW1wb3J0IHthZGRMaW5rfSBmcm9tICcuL2FkZExpbmsnO1xuXG5jb25zdCBidWlsZExpbmsgPSAob2xkSWQ6IG51bWJlciB8IG51bGwsIGRpZmZJZDogbnVtYmVyKTogdm9pZCA9PiB7XG5cdGxldCBsaW5rOiBzdHJpbmcgPSAnL2QnO1xuXHRsZXQgcGVybWFMaW5rOiBzdHJpbmcgPSAnL3dpa2kvU3BlY2lhbDpEaWZmJztcblx0aWYgKG9sZElkKSB7XG5cdFx0bGluayArPSBgLyR7b2xkSWR9YDtcblx0XHRwZXJtYUxpbmsgKz0gYC8ke29sZElkfWA7XG5cdH1cblx0bGluayArPSBgLyR7ZGlmZklkfWA7XG5cdHBlcm1hTGluayArPSBgLyR7ZGlmZklkfWA7XG5cblx0YWRkTGluayhsaW5rLCBwZXJtYUxpbmspO1xufTtcblxuZXhwb3J0IHtidWlsZExpbmt9O1xuIiwgIntcblx0XCJ2ZXJzaW9uXCI6IFwiMi4wXCJcbn1cbiIsICJpbXBvcnQgKiBhcyBPUFRJT05TIGZyb20gJy4uL29wdGlvbnMuanNvbic7XG5pbXBvcnQge2luaXRNd0FwaX0gZnJvbSAnZXh0LmdhZGdldC5VdGlsJztcblxuY29uc3QgYXBpOiBtdy5BcGkgPSBpbml0TXdBcGkoYFNob3J0VVJMLyR7T1BUSU9OUy52ZXJzaW9ufWApO1xuXG5leHBvcnQge2FwaX07XG4iLCAiaW1wb3J0IHthcGl9IGZyb20gJy4uL2FwaSc7XG5pbXBvcnQge2dldE1lc3NhZ2V9IGZyb20gJy4uL2kxOG4nO1xuaW1wb3J0IHt0b2FzdGlmeX0gZnJvbSAnZXh0LmdhZGdldC5Ub2FzdGlmeSc7XG5cbnR5cGUgQ29tcGFyZVJlc3BvbnNlID0ge1xuXHRjb21wYXJlPzoge1xuXHRcdGZyb21yZXZpZDogbnVtYmVyO1xuXHR9O1xufTtcblxuY29uc3QgcGFyYW1ldGVyczogQXBpQ29tcGFyZVBhZ2VzUGFyYW1zID0ge1xuXHRhY3Rpb246ICdjb21wYXJlJyxcblx0Zm9ybWF0OiAnanNvbicsXG5cdGZvcm1hdHZlcnNpb246ICcyJyxcblx0cHJvcDogJ2lkcycsXG5cdHRvcmVsYXRpdmU6ICdwcmV2Jyxcblx0c21heGFnZTogNjAwLFxuXHRtYXhhZ2U6IDYwMCxcbn07XG5cbmNvbnN0IHF1ZXJ5QXBpID0gYXN5bmMgKGRpZmZJZDogbnVtYmVyKTogUHJvbWlzZTxDb21wYXJlUmVzcG9uc2U+ID0+IHtcblx0dHJ5IHtcblx0XHRyZXR1cm4gYXdhaXQgYXBpLmdldCh7XG5cdFx0XHQuLi5wYXJhbWV0ZXJzLFxuXHRcdFx0ZnJvbXJldjogZGlmZklkLFxuXHRcdH0gYXMgdHlwZW9mIHBhcmFtZXRlcnMpO1xuXHR9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuXHRcdGNvbnNvbGUuZXJyb3IoJ1tTaG9ydFVSTF0gQWpheCBlcnJvcjonLCBlcnJvcik7XG5cdFx0dG9hc3RpZnkoXG5cdFx0XHR7XG5cdFx0XHRcdHRleHQ6IGdldE1lc3NhZ2UoJ05ldHdvcmsgZXJyb3InKSxcblx0XHRcdFx0Y2xvc2U6IHRydWUsXG5cdFx0XHRcdGR1cmF0aW9uOiAtMSxcblx0XHRcdH0sXG5cdFx0XHQnZXJyb3InXG5cdFx0KTtcblxuXHRcdHJldHVybiB7fTtcblx0fVxufTtcblxuZXhwb3J0IHtxdWVyeUFwaX07XG4iLCAiaW1wb3J0IHtidWlsZExpbmt9IGZyb20gJy4vYnVpbGRMaW5rJztcbmltcG9ydCB7cXVlcnlBcGl9IGZyb20gJy4vdXRpbC9xdWVyeUFwaSc7XG5cbmNvbnN0IGNvbXBhcmVXaXRoUmVtb3RlRGlmZklkID0gYXN5bmMgKGRpZmZJZDogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiA9PiB7XG5cdGNvbnN0IHJlc3BvbnNlOiBBd2FpdGVkPFJldHVyblR5cGU8dHlwZW9mIHF1ZXJ5QXBpPj4gPSBhd2FpdCBxdWVyeUFwaShkaWZmSWQpO1xuXHRpZiAoZGlmZklkID09PSBtdy5jb25maWcuZ2V0KCd3Z0RpZmZOZXdJZCcpICYmIHJlc3BvbnNlWydjb21wYXJlJ10/LmZyb21yZXZpZCA9PT0gbXcuY29uZmlnLmdldCgnd2dEaWZmT2xkSWQnKSkge1xuXHRcdGJ1aWxkTGluaygwLCBkaWZmSWQpO1xuXHR9XG59O1xuXG5leHBvcnQge2NvbXBhcmVXaXRoUmVtb3RlRGlmZklkfTtcbiIsICJpbXBvcnQge2FkZExpbmt9IGZyb20gJy4vYWRkTGluayc7XG5pbXBvcnQge2J1aWxkTGlua30gZnJvbSAnLi9idWlsZExpbmsnO1xuaW1wb3J0IHtjb21wYXJlV2l0aFJlbW90ZURpZmZJZH0gZnJvbSAnLi9jb21wYXJlV2l0aFJlbW90ZURpZmZJZCc7XG5cbmNvbnN0IHByb2Nlc3NJZCA9IChcblx0aXNSZXZpc2lvblBhZ2U6IGJvb2xlYW4sXG5cdHtcblx0XHRhcnRpY2xlSWQsXG5cdFx0ZGlmZklkLFxuXHRcdG9sZElkLFxuXHRcdHJldmlzaW9uSWQsXG5cdH06IHtcblx0XHRhcnRpY2xlSWQ6IG51bWJlcjtcblx0XHRkaWZmSWQ6IG51bWJlciB8IG51bGw7XG5cdFx0b2xkSWQ6IG51bWJlciB8IG51bGw7XG5cdFx0cmV2aXNpb25JZDogbnVtYmVyIHwgbnVsbDtcblx0fVxuKTogdm9pZCA9PiB7XG5cdGlmIChkaWZmSWQpIHtcblx0XHRidWlsZExpbmsob2xkSWQsIGRpZmZJZCk7XG5cdFx0aWYgKG9sZElkKSB7XG5cdFx0XHR2b2lkIGNvbXBhcmVXaXRoUmVtb3RlRGlmZklkKGRpZmZJZCk7XG5cdFx0fVxuXHR9IGVsc2UgaWYgKHJldmlzaW9uSWQgJiYgaXNSZXZpc2lvblBhZ2UpIHtcblx0XHRhZGRMaW5rKGAvcC8ke3JldmlzaW9uSWR9YCwgYC93aWtpL1NwZWNpYWw6UGVybWFsaW5rLyR7cmV2aXNpb25JZH1gKTtcblx0fSBlbHNlIGlmIChhcnRpY2xlSWQpIHtcblx0XHRhZGRMaW5rKGAvYy8ke2FydGljbGVJZH1gLCBgL2luZGV4LnBocD9jdXJpZD0ke2FydGljbGVJZH1gKTtcblx0fVxufTtcblxuZXhwb3J0IHtwcm9jZXNzSWR9O1xuIiwgImltcG9ydCB7Y2hlY2tSZXZpc2lvblBhZ2V9IGZyb20gJy4vbW9kdWxlcy91dGlsL2NoZWNrUmV2aXNpb25QYWdlJztcbmltcG9ydCB7Z2V0U2hvcnREb21haW5zfSBmcm9tICcuL21vZHVsZXMvdXRpbC9nZXRTaG9ydERvbWFpbnMnO1xuaW1wb3J0IHtwcm9jZXNzSWR9IGZyb20gJy4vbW9kdWxlcy9wcm9jZXNzSWQnO1xuXG4oZnVuY3Rpb24gc2hvcnRVUkwoKSB7XG5cdGNvbnN0IHt3Z0FjdGlvbiwgd2dBcnRpY2xlSWQsIHdnTmFtZXNwYWNlTnVtYmVyfSA9IG13LmNvbmZpZy5nZXQoKTtcblxuXHRjb25zdCBkb21haW5zID0gZ2V0U2hvcnREb21haW5zKCk7XG5cblx0aWYgKCFkb21haW5zLmxlbmd0aCB8fCB3Z05hbWVzcGFjZU51bWJlciA8IDApIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRpZiAod2dBY3Rpb24gPT09ICd2aWV3JyAmJiB3Z0FydGljbGVJZCkge1xuXHRcdG13Lmhvb2soJ3dpa2lwYWdlLmNvbnRlbnQnKS5hZGQoKCRjb250ZW50KTogdm9pZCA9PiB7XG5cdFx0XHRpZiAoJGNvbnRlbnQuYXR0cignaWQnKSAhPT0gJ213LWNvbnRlbnQtdGV4dCcpIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXG5cdFx0XHRjb25zdCBpc1JldmlzaW9uUGFnZTogYm9vbGVhbiA9IGNoZWNrUmV2aXNpb25QYWdlKCRjb250ZW50KTtcblxuXHRcdFx0cHJvY2Vzc0lkKGlzUmV2aXNpb25QYWdlLCB7XG5cdFx0XHRcdGFydGljbGVJZDogbXcuY29uZmlnLmdldCgnd2dBcnRpY2xlSWQnKSxcblx0XHRcdFx0ZGlmZklkOiBtdy5jb25maWcuZ2V0KCd3Z0RpZmZOZXdJZCcpLFxuXHRcdFx0XHRvbGRJZDogbXcuY29uZmlnLmdldCgnd2dEaWZmT2xkSWQnKSxcblx0XHRcdFx0cmV2aXNpb25JZDogbXcuY29uZmlnLmdldCgnd2dSZXZpc2lvbklkJyksXG5cdFx0XHR9KTtcblx0XHR9KTtcblx0fVxufSkoKTtcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsSUFBTUEsb0JBQXFCQyxjQUE4QjtBQUN4RCxVQUNFQSxTQUFTQyxLQUFLLDhCQUE4QixFQUFFQyxVQUM5Q0YsU0FBU0MsS0FBSyw0Q0FBNEMsRUFBRUMsVUFBVTtBQUV6RTs7QUNMQSxJQUFNQyxrQkFBa0JBLE1BQWdCO0FBQ3ZDLFFBQU07SUFBQ0M7RUFBUSxJQUFJQyxHQUFHQyxPQUFPQyxJQUFJO0FBQ2pDLE1BQUlDLFdBQW9CLENBQUE7QUFFeEIsVUFBUUosVUFBQTtJQUNQLEtBQUs7QUFDSkksaUJBQVUsQ0FBQyxXQUFXLFNBQVM7QUFDL0I7SUFDRCxLQUFLO0FBQ0pBLGlCQUFVLENBQUMsYUFBYSxXQUFXO0FBQ25DO0lBQ0QsS0FBSztBQUNKQSxpQkFBVSxDQUFDLGVBQWUsYUFBYTtBQUN2QztFQUNGO0FBRUEsU0FBT0E7QUFDUjs7QUNqQkEsSUFBQUMscUJBQXdCQyxRQUFBLHNCQUFBO0FBQ3hCLElBQUFDLHFCQUFrQkMsUUFBQUYsUUFBQSxnQkFBQSxHQUFBLENBQUE7QUFDbEIsSUFBQUcscUJBQTBDSCxRQUFBLGlCQUFBOztBQ0YxQyxJQUFBSSxvQkFBdUJKLFFBQUEsaUJBQUE7QUFFdkIsSUFBTUssa0JBQWtCQSxNQUFNO0FBQzdCLFNBQU87SUFDTixrQkFBQSxHQUFpQkQsa0JBQUFFLFVBQVM7TUFDekJDLElBQUk7TUFDSkMsSUFBSTtNQUNKLFdBQVc7TUFDWCxXQUFXO0lBQ1osQ0FBQztJQUNELGFBQUEsR0FBWUosa0JBQUFFLFVBQVM7TUFDcEJDLElBQUk7TUFDSixXQUFXO01BQ1gsV0FBVztJQUNaLENBQUM7SUFDRCxrQkFBQSxHQUFpQkgsa0JBQUFFLFVBQVM7TUFDekJDLElBQUk7TUFDSixXQUFXO01BQ1gsV0FBVztJQUNaLENBQUM7SUFDRCwyQkFBQSxHQUEwQkgsa0JBQUFFLFVBQVM7TUFDbENDLElBQUk7TUFDSixXQUFXO01BQ1gsV0FBVztJQUNaLENBQUM7SUFDRCxjQUFBLEdBQWFILGtCQUFBRSxVQUFTO01BQ3JCQyxJQUFJO01BQ0osV0FBVztNQUNYLFdBQVc7SUFDWixDQUFDO0lBQ0QsYUFBQSxHQUFZSCxrQkFBQUUsVUFBUztNQUNwQkMsSUFBSTtNQUNKLFdBQVc7TUFDWCxXQUFXO0lBQ1osQ0FBQztJQUNELDRCQUFBLEdBQTJCSCxrQkFBQUUsVUFBUztNQUNuQ0MsSUFBSTtNQUNKLFdBQVc7TUFDWCxXQUFXO0lBQ1osQ0FBQztFQUNGO0FBQ0Q7QUFFQSxJQUFNRSxlQUFlSixnQkFBZ0I7QUFFckMsSUFBTUssYUFBZ0RDLFNBQVE7QUFDN0QsU0FBT0YsYUFBYUUsR0FBRyxLQUFLQTtBQUM3Qjs7QUQxQ0EsSUFBQUMscUJBQW9CWixRQUFBLGtCQUFBO0FBRXBCLElBQU07RUFBQ2E7RUFBTUM7QUFBVSxJQUFJbkIsR0FBR0MsT0FBT0MsSUFBSTtBQUN6QyxJQUFNa0IsVUFBVXRCLGdCQUFnQjtBQUVoQyxJQUFJdUI7QUFDSixJQUFJQywwQkFBMEU7RUFDN0VDLFFBQVFBLE1BQVk7RUFBQztBQUN0QjtBQUNBLElBQUlDLDJCQUEyRTtFQUM5RUQsUUFBUUEsTUFBWTtFQUFDO0FBQ3RCO0FBRUEsSUFBTUUsVUFBVUEsQ0FBQ0MsTUFBY0MsY0FBNEI7QUFBQSxNQUFBQztBQUMxRCxNQUFJQyxjQUFvQ0MsU0FBU0MsY0FBYyxjQUFjO0FBQzdFLE1BQUksQ0FBQ0YsYUFBYTtBQUNqQixVQUFNRyxZQUFtQ0YsU0FBU0MsY0FBYyxhQUFhLElBQUksZUFBZTtBQUNoR0Ysa0JBQWM3QixHQUFHaUMsS0FBS0MsZUFDckJGLFdBQ0EsS0FDQWpCLFdBQVcsd0JBQXdCLEdBQ25DLGVBQ0FBLFdBQVcsVUFBVSxDQUN0QjtFQUNEO0FBRUEsTUFBSWMsYUFBYTtBQUFBLFFBQUFNO0FBQ2hCLFVBQU1DLDJCQUE0QkMsV0FBNEI7QUFDN0RBLFlBQU1DLGVBQWU7QUFFckIsWUFBTUMsV0FBbUJDLEVBQUUsT0FBTztBQUVsQ0QsZUFBU0U7O1FBRVIsSUFBS3pDLEdBQVcwQyxRQUFRQyxlQUFlO1VBQ3RDQyxPQUFPN0IsV0FBVyxVQUFVO1VBQzVCOEIsT0FBTzlCLFdBQVcsVUFBVTtVQUM1QitCLE9BQU87VUFDUEMsVUFBVUMsU0FBU0M7UUFDcEIsQ0FBQyxFQUFFVjtNQUNKO0FBRUFBLGVBQVNFOztRQUVSLElBQUt6QyxHQUFXMEMsUUFBUUMsZUFBZTtVQUN0Q0MsT0FBTzdCLFdBQVcsZUFBZTtVQUNqQzhCLE9BQU85QixXQUFXLGVBQWU7VUFDakMrQixPQUFPO1VBQ1BDLFVBQUEsV0FBQUcsT0FBcUJGLFNBQVNHLElBQUksRUFBQUQsT0FBR3ZCLFNBQVM7UUFDL0MsQ0FBQyxFQUFFWTtNQUNKO0FBRUEsVUFBSXBCLFlBQVk7QUFBQSxZQUFBaUMsYUFBQUMsMkJBQ1dqQyxRQUFRa0MsUUFBUSxDQUFBLEdBQUFDO0FBQUEsWUFBQTtBQUExQyxlQUFBSCxXQUFBSSxFQUFBLEdBQUEsRUFBQUQsU0FBQUgsV0FBQUssRUFBQSxHQUFBQyxRQUE2QztBQUFBLGtCQUFsQyxDQUFDQyxHQUFHQyxNQUFNLElBQUFMLE9BQUFNO0FBQ3BCdEIscUJBQVNFOztjQUVSLElBQUt6QyxHQUFXMEMsUUFBUUMsZUFBZTtnQkFDdENDLE9BQUEsR0FBQU0sT0FBVW5DLFdBQVcsV0FBVyxDQUFDLEVBQUFtQyxPQUFHUyxJQUFJLENBQUM7Z0JBQ3pDZCxPQUFBLEdBQUFLLE9BQVVuQyxXQUFXLFdBQVcsQ0FBQyxFQUFBbUMsT0FBR1MsSUFBSSxDQUFDO2dCQUN6Q2IsT0FBTztnQkFDUEMsVUFBQSxXQUFBRyxPQUFxQlUsTUFBTSxFQUFBVixPQUFHeEIsSUFBSTtjQUNuQyxDQUFDLEVBQUVhO1lBQ0o7VUFDRDtRQUFBLFNBQUF1QixLQUFBO0FBQUFWLHFCQUFBVyxFQUFBRCxHQUFBO1FBQUEsVUFBQTtBQUFBVixxQkFBQVksRUFBQTtRQUFBO01BQ0Q7QUFFQSxXQUFLQyxHQUFHQyxHQUFHQyxNQUFNNUIsVUFBVTtRQUMxQjZCLE1BQU07UUFDTnZCLE9BQU9MLEVBQUdsQyxtQ0FBQStELFFBQUFDLGNBQUMsS0FBQSxNQUFHdkQsV0FBVyx3QkFBd0IsQ0FBRSxDQUFvQjtNQUN4RSxDQUFDO0lBQ0Y7QUFFQVMsNkJBQXlCRCxPQUFPO0FBQ2hDQyxnQ0FBQSxHQUEyQmhCLG1CQUFBK0QsNkJBQTRCO01BQ3REQyxTQUFBckMsd0JBQVNOLFlBQVk0Qyx1QkFBQSxRQUFBdEMsMEJBQUEsU0FBQUEsd0JBQXFCTjtNQUMxQzZDLE1BQU07TUFDTkMsVUFBVXZDO0lBQ1gsQ0FBQztBQUVELFVBQU13QyxZQUFxQjFELFNBQVM7QUFDcEMsUUFBSTBELGFBQWEsQ0FBQ3BDLEVBQUVYLFdBQVcsRUFBRWpDLEtBQUssaUNBQWlDLEVBQUVDLFFBQVE7QUFDaEYyQyxRQUFFWCxXQUFXLEVBQ1hqQyxLQUFLLEdBQUcsRUFDUmlGLFFBQ0F2RSxtQ0FBQStELFFBQUFDLGNBQUMsUUFBQTtRQUNBUSxJQUFHO1FBQ0hDLFdBQVcsQ0FBQyxtQkFBbUIsbUJBQW1CLDJCQUEyQjtNQUFBLENBQzlFLENBQ0Q7SUFDRjtFQUNEO0FBRUEsTUFBSUMsYUFBdUNsRCxTQUFTQyxjQUFjLDBCQUEwQjtBQUM1RixNQUFJLENBQUNpRCxZQUFZO0FBQ2hCQSxpQkFDQzFFLG1DQUFBK0QsUUFBQUMsY0FBQyxLQUFBO01BQUUsY0FBWW5ELGFBQWFKLFdBQVcsV0FBVyxJQUFJQSxXQUFXLHdCQUF3QjtNQUFHa0MsTUFBSztJQUFBLEdBQ2hHM0MsbUNBQUErRCxRQUFBQyxjQUFDLFFBQUE7TUFBS1MsV0FBVTtJQUFBLEdBQ2Q1RCxhQUFhSixXQUFXLFdBQVcsSUFBSUEsV0FBVyx3QkFBd0IsQ0FDNUUsQ0FDRDtBQUdELEtBQUEsR0FBQUUsbUJBQUFnRSxPQUFNRCxZQUFZO01BQ2pCRSxPQUFPO01BQ1BDLFNBQVNoRSxhQUFhSixXQUFXLFdBQVcsSUFBSUEsV0FBVyx3QkFBd0I7TUFDbkZxRSxXQUFXO0lBQ1osQ0FBQztBQUVELFVBQU1DLGlCQUFpQjdDLEVBQ3RCbEMsbUNBQUErRCxRQUFBQyxjQUFDLE9BQUE7TUFBSVMsV0FBVTtNQUFlRCxJQUFHO0lBQUEsR0FDL0JFLFVBQ0YsQ0FDRDtBQUVBSyxtQkFBZUMsVUFBVSxnQkFBZ0I7RUFDMUM7QUFFQSxRQUFNQyxXQUFtQnBFLGFBQUEsV0FBQStCLE9BQXdCOUIsUUFBUSxDQUFDLENBQUMsRUFBQThCLE9BQUd4QixJQUFJLElBQUEsV0FBQXdCLE9BQWdCRixTQUFTRyxJQUFJLEVBQUFELE9BQUd2QixTQUFTO0FBRTNHLFFBQU02RCxpQkFBaUJoRCxFQUN0QmxDLG1DQUFBK0QsUUFBQUMsY0FBQyxRQUFBLE1BQ0N2RCxXQUFXLHlCQUF5QixHQUNyQ1QsbUNBQUErRCxRQUFBQyxjQUFDLE1BQUEsSUFBRyxHQUNKaEUsbUNBQUErRCxRQUFBQyxjQUFDLEtBQUE7SUFDQXJCLE1BQUs7SUFDTHdDLFNBQVVwRCxXQUFnQjtBQUN6QkEsWUFBTUMsZUFBZTtBQUNyQkQsWUFBTXFELGdCQUFnQjtJQUN2QjtFQUFBLEdBRUNILFFBQ0YsQ0FDRCxDQUNEO0FBRUEsUUFBTUksMEJBQTJCdEQsV0FBNEI7QUFDNURBLFVBQU1DLGVBQWU7QUFFckIsU0FBS3RDLEdBQUc0RixPQUFPSixnQkFBZ0I7TUFDOUJLLEtBQUs7TUFDTG5CLE1BQU07SUFDUCxDQUFDO0VBQ0Y7QUFFQXBELDBCQUF3QkMsT0FBTztBQUMvQkQsNkJBQUEsR0FBMEJkLG1CQUFBK0QsNkJBQTRCO0lBQ3JEQyxRQUFRUTtJQUNSTixNQUFNO0lBQ05DLFVBQVVnQjtFQUNYLENBQUM7QUFFRCxHQUFBL0QscUJBQUFQLHVCQUFBLFFBQUFPLHVCQUFBLFVBQUFBLG1CQUFtQmtFLFFBQVE7QUFDM0J6RSxzQkFBb0IsSUFBSWpCLG1CQUFBMkYsVUFBVWYsWUFBWTtJQUM3Q2dCLE1BQU1BLE1BQWNUO0VBQ3JCLENBQUM7QUFDRjs7QUU5SkEsSUFBTVUsWUFBWUEsQ0FBQ0MsT0FBc0JDLFdBQXlCO0FBQ2pFLE1BQUl6RSxPQUFlO0FBQ25CLE1BQUlDLFlBQW9CO0FBQ3hCLE1BQUl1RSxPQUFPO0FBQ1Z4RSxZQUFBLElBQUF3QixPQUFZZ0QsS0FBSztBQUNqQnZFLGlCQUFBLElBQUF1QixPQUFpQmdELEtBQUs7RUFDdkI7QUFDQXhFLFVBQUEsSUFBQXdCLE9BQVlpRCxNQUFNO0FBQ2xCeEUsZUFBQSxJQUFBdUIsT0FBaUJpRCxNQUFNO0FBRXZCMUUsVUFBUUMsTUFBTUMsU0FBUztBQUN4Qjs7QUNaQyxJQUFBeUUsVUFBVzs7QUNBWixJQUFBQyxxQkFBd0JoRyxRQUFBLGlCQUFBO0FBRXhCLElBQU1pRyxPQUFBLEdBQWNELG1CQUFBRSxXQUFBLFlBQUFyRCxPQUE4QmtELE9BQU8sQ0FBRTs7QUNEM0QsSUFBQUkscUJBQXVCbkcsUUFBQSxxQkFBQTtBQVF2QixJQUFNb0csYUFBb0M7RUFDekNDLFFBQVE7RUFDUkMsUUFBUTtFQUNSQyxlQUFlO0VBQ2ZDLE1BQU07RUFDTkMsWUFBWTtFQUNaQyxTQUFTO0VBQ1RDLFFBQVE7QUFDVDtBQUVBLElBQU1DLFdBQUEsMkJBQUE7QUFBQSxNQUFBQyxPQUFBQyxrQkFBVyxXQUFPaEIsUUFBNkM7QUFDcEUsUUFBSTtBQUNILGFBQUEsTUFBYUcsSUFBSXBHLElBQUk7UUFDcEIsR0FBR3VHO1FBQ0hXLFNBQVNqQjtNQUNWLENBQXNCO0lBQ3ZCLFNBQVNrQixPQUFnQjtBQUN4QkMsY0FBUUQsTUFBTSwwQkFBMEJBLEtBQUs7QUFDN0MsT0FBQSxHQUFBYixtQkFBQWUsVUFDQztRQUNDdkIsTUFBTWpGLFdBQVcsZUFBZTtRQUNoQ3lHLE9BQU87UUFDUEMsVUFBVTtNQUNYLEdBQ0EsT0FDRDtBQUVBLGFBQU8sQ0FBQztJQUNUO0VBQ0QsQ0FBQTtBQUFBLFNBQUEsU0FuQk1SLFVBQUFTLElBQUE7QUFBQSxXQUFBUixLQUFBUyxNQUFBLE1BQUFDLFNBQUE7RUFBQTtBQUFBLEVBQUE7O0FDakJOLElBQU1DLDBCQUFBLDJCQUFBO0FBQUEsTUFBQUMsUUFBQVgsa0JBQTBCLFdBQU9oQixRQUFrQztBQUFBLFFBQUE0QjtBQUN4RSxVQUFNQyxXQUFBLE1BQXVEZixTQUFTZCxNQUFNO0FBQzVFLFFBQUlBLFdBQVduRyxHQUFHQyxPQUFPQyxJQUFJLGFBQWEsT0FBSzZILG9CQUFBQyxTQUFTLFNBQVMsT0FBQSxRQUFBRCxzQkFBQSxTQUFBLFNBQWxCQSxrQkFBcUJFLGVBQWNqSSxHQUFHQyxPQUFPQyxJQUFJLGFBQWEsR0FBRztBQUMvRytGLGdCQUFVLEdBQUdFLE1BQU07SUFDcEI7RUFDRCxDQUFBO0FBQUEsU0FBQSxTQUxNMEIseUJBQUFLLEtBQUE7QUFBQSxXQUFBSixNQUFBSCxNQUFBLE1BQUFDLFNBQUE7RUFBQTtBQUFBLEVBQUE7O0FDQ04sSUFBTU8sWUFBWUEsQ0FDakJDLGdCQUNBO0VBQ0NDO0VBQ0FsQztFQUNBRDtFQUNBb0M7QUFDRCxNQU1VO0FBQ1YsTUFBSW5DLFFBQVE7QUFDWEYsY0FBVUMsT0FBT0MsTUFBTTtBQUN2QixRQUFJRCxPQUFPO0FBQ1YsV0FBSzJCLHdCQUF3QjFCLE1BQU07SUFDcEM7RUFDRCxXQUFXbUMsY0FBY0YsZ0JBQWdCO0FBQ3hDM0csWUFBQSxNQUFBeUIsT0FBY29GLFVBQVUsR0FBQSwyQkFBQXBGLE9BQStCb0YsVUFBVSxDQUFFO0VBQ3BFLFdBQVdELFdBQVc7QUFDckI1RyxZQUFBLE1BQUF5QixPQUFjbUYsU0FBUyxHQUFBLG9CQUFBbkYsT0FBd0JtRixTQUFTLENBQUU7RUFDM0Q7QUFDRDs7Q0N4QkMsU0FBU0UsV0FBVztBQUNwQixRQUFNO0lBQUNDO0lBQVVDO0lBQWFDO0VBQWlCLElBQUkxSSxHQUFHQyxPQUFPQyxJQUFJO0FBRWpFLFFBQU1DLFdBQVVMLGdCQUFnQjtBQUVoQyxNQUFJLENBQUNLLFNBQVFOLFVBQVU2SSxvQkFBb0IsR0FBRztBQUM3QztFQUNEO0FBRUEsTUFBSUYsYUFBYSxVQUFVQyxhQUFhO0FBQ3ZDekksT0FBRzJJLEtBQUssa0JBQWtCLEVBQUVDLElBQUtqSixjQUFtQjtBQUNuRCxVQUFJQSxTQUFTa0osS0FBSyxJQUFJLE1BQU0sbUJBQW1CO0FBQzlDO01BQ0Q7QUFFQSxZQUFNVCxpQkFBMEIxSSxrQkFBa0JDLFFBQVE7QUFFMUR3SSxnQkFBVUMsZ0JBQWdCO1FBQ3pCQyxXQUFXckksR0FBR0MsT0FBT0MsSUFBSSxhQUFhO1FBQ3RDaUcsUUFBUW5HLEdBQUdDLE9BQU9DLElBQUksYUFBYTtRQUNuQ2dHLE9BQU9sRyxHQUFHQyxPQUFPQyxJQUFJLGFBQWE7UUFDbENvSSxZQUFZdEksR0FBR0MsT0FBT0MsSUFBSSxjQUFjO01BQ3pDLENBQUM7SUFDRixDQUFDO0VBQ0Y7QUFDRCxHQUFHOyIsCiAgIm5hbWVzIjogWyJjaGVja1JldmlzaW9uUGFnZSIsICIkY29udGVudCIsICJmaW5kIiwgImxlbmd0aCIsICJnZXRTaG9ydERvbWFpbnMiLCAid2dXaWtpSUQiLCAibXciLCAiY29uZmlnIiwgImdldCIsICJkb21haW5zMiIsICJpbXBvcnRfZXh0X2dhZGdldDIiLCAicmVxdWlyZSIsICJpbXBvcnRfZXh0X2dhZGdldDMiLCAiX190b0VTTSIsICJpbXBvcnRfZXh0X2dhZGdldDQiLCAiaW1wb3J0X2V4dF9nYWRnZXQiLCAiZ2V0STE4bk1lc3NhZ2VzIiwgImxvY2FsaXplIiwgImVuIiwgImphIiwgImkxOG5NZXNzYWdlcyIsICJnZXRNZXNzYWdlIiwgImtleSIsICJpbXBvcnRfZXh0X2dhZGdldDUiLCAic2tpbiIsICJ3Z1VzZXJOYW1lIiwgImRvbWFpbnMiLCAiY2xpcGJvYXJkSW5zdGFuY2UiLCAiaGVhZGVyTGlua0V2ZW50TGlzdGVuZXIiLCAicmVtb3ZlIiwgInBvcnRsZXRMaW5rRXZlbnRMaXN0ZW5lciIsICJhZGRMaW5rIiwgImxpbmsiLCAicGVybWFMaW5rIiwgIl9jbGlwYm9hcmRJbnN0YW5jZSIsICJwb3J0bGV0TGluayIsICJkb2N1bWVudCIsICJxdWVyeVNlbGVjdG9yIiwgInBvcnRsZXRJZCIsICJ1dGlsIiwgImFkZFBvcnRsZXRMaW5rIiwgIl9wb3J0bGV0TGluayRmaXJzdEVsZSIsICJwb3J0bGV0TGlua0NsaWNrTGlzdGVuZXIiLCAiZXZlbnQiLCAicHJldmVudERlZmF1bHQiLCAiJGVsZW1lbnQiLCAiJCIsICJhcHBlbmQiLCAid2lkZ2V0cyIsICJDb3B5VGV4dExheW91dCIsICJsYWJlbCIsICJ0aXRsZSIsICJhbGlnbiIsICJjb3B5VGV4dCIsICJsb2NhdGlvbiIsICJocmVmIiwgImNvbmNhdCIsICJob3N0IiwgIl9pdGVyYXRvcjIiLCAiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIiLCAiZW50cmllcyIsICJfc3RlcDIiLCAicyIsICJuIiwgImRvbmUiLCAiaSIsICJkb21haW4iLCAidmFsdWUiLCAiZXJyIiwgImUiLCAiZiIsICJPTyIsICJ1aSIsICJhbGVydCIsICJzaXplIiwgImRlZmF1bHQiLCAiY3JlYXRlRWxlbWVudCIsICJhZGRFdmVudExpc3RlbmVyV2l0aFJlbW92ZXIiLCAidGFyZ2V0IiwgImZpcnN0RWxlbWVudENoaWxkIiwgInR5cGUiLCAibGlzdGVuZXIiLCAiaXNDaXRpemVuIiwgInByZXBlbmQiLCAiaWQiLCAiY2xhc3NOYW1lIiwgImhlYWRlckxpbmsiLCAidGlwcHkiLCAiYXJyb3ciLCAiY29udGVudCIsICJwbGFjZW1lbnQiLCAiJGhlYWRlckVsZW1lbnQiLCAicHJlcGVuZFRvIiwgImZ1bGxMaW5rIiwgIiRub3RpZnlFbGVtZW50IiwgIm9uQ2xpY2siLCAic3RvcFByb3BhZ2F0aW9uIiwgImhlYWRlckxpbmtDbGlja0xpc3RlbmVyIiwgIm5vdGlmeSIsICJ0YWciLCAiZGVzdHJveSIsICJDbGlwYm9hcmQiLCAidGV4dCIsICJidWlsZExpbmsiLCAib2xkSWQiLCAiZGlmZklkIiwgInZlcnNpb24iLCAiaW1wb3J0X2V4dF9nYWRnZXQ2IiwgImFwaSIsICJpbml0TXdBcGkiLCAiaW1wb3J0X2V4dF9nYWRnZXQ3IiwgInBhcmFtZXRlcnMiLCAiYWN0aW9uIiwgImZvcm1hdCIsICJmb3JtYXR2ZXJzaW9uIiwgInByb3AiLCAidG9yZWxhdGl2ZSIsICJzbWF4YWdlIiwgIm1heGFnZSIsICJxdWVyeUFwaSIsICJfcmVmIiwgIl9hc3luY1RvR2VuZXJhdG9yIiwgImZyb21yZXYiLCAiZXJyb3IiLCAiY29uc29sZSIsICJ0b2FzdGlmeSIsICJjbG9zZSIsICJkdXJhdGlvbiIsICJfeCIsICJhcHBseSIsICJhcmd1bWVudHMiLCAiY29tcGFyZVdpdGhSZW1vdGVEaWZmSWQiLCAiX3JlZjIiLCAiX3Jlc3BvbnNlJGNvbXBhcmUiLCAicmVzcG9uc2UiLCAiZnJvbXJldmlkIiwgIl94MiIsICJwcm9jZXNzSWQiLCAiaXNSZXZpc2lvblBhZ2UiLCAiYXJ0aWNsZUlkIiwgInJldmlzaW9uSWQiLCAic2hvcnRVUkwiLCAid2dBY3Rpb24iLCAid2dBcnRpY2xlSWQiLCAid2dOYW1lc3BhY2VOdW1iZXIiLCAiaG9vayIsICJhZGQiLCAiYXR0ciJdCn0K diff --git a/dist/SiteCommon_JS/SiteCommon_JS.js b/dist/SiteCommon_JS/SiteCommon_JS.js index 31a0e3256..156ad9e0a 100644 --- a/dist/SiteCommon_JS/SiteCommon_JS.js +++ b/dist/SiteCommon_JS/SiteCommon_JS.js @@ -132,7 +132,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge mod )); //! src/SiteCommon_JS/modules/core.tsx -var import_ext_gadget2 = __toESM(require("ext.gadget.React"), 1); +var import_ext_gadget2 = __toESM(require("ext.gadget.JSX"), 1); //! src/SiteCommon_JS/modules/i18n.ts var import_ext_gadget = require("ext.gadget.i18n"); var getI18nMessages = () => { @@ -572,4 +572,4 @@ var resizeJQueryUI = ($body) => { /* */ -//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL1NpdGVDb21tb25fSlMvbW9kdWxlcy9jb3JlLnRzeCIsICJzcmMvU2l0ZUNvbW1vbl9KUy9tb2R1bGVzL2kxOG4udHMiLCAic3JjL1NpdGVDb21tb25fSlMvbW9kdWxlcy90aXBweS50cyIsICJzcmMvU2l0ZUNvbW1vbl9KUy9tb2R1bGVzL2RlcHJlY2F0ZWRGdW5jdGlvbnMudHMiLCAic3JjL1NpdGVDb21tb25fSlMvU2l0ZUNvbW1vbl9KUy50cyIsICJzcmMvU2l0ZUNvbW1vbl9KUy9tb2R1bGVzL3Jlc2l6ZUpRdWVyeVVJLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQgUmVhY3QgZnJvbSAnZXh0LmdhZGdldC5SZWFjdCc7XG5pbXBvcnQge2dldE1lc3NhZ2V9IGZyb20gJy4vaTE4bic7XG5pbXBvcnQge3VuaXF1ZUFycmF5fSBmcm9tICdleHQuZ2FkZ2V0LlV0aWwnO1xuXG5jb25zdCB7d2dBY3Rpb24sIHdnQ2Fub25pY2FsU3BlY2lhbFBhZ2VOYW1lLCB3Z05hbWVzcGFjZU51bWJlciwgd2dQYWdlTmFtZSwgd2dTY3JpcHQsIHdnVXNlck5hbWV9ID0gbXcuY29uZmlnLmdldCgpO1xuXG5jb25zdCBsb2FkV2l0aFVSTCA9IGFzeW5jICgpOiBQcm9taXNlPHZvaWQ+ID0+IHtcblx0Y29uc3QgVVJMX1dJVEhfQ1NTOiBzdHJpbmcgfCBudWxsID0gbXcudXRpbC5nZXRQYXJhbVZhbHVlKCd3aXRoQ1NTJyk7XG5cdGNvbnN0IFVSTF9XSVRIX0pTOiBzdHJpbmcgfCBudWxsID0gbXcudXRpbC5nZXRQYXJhbVZhbHVlKCd3aXRoSlMnKTtcblx0Y29uc3QgVVJMX1dJVEhfTU9EVUxFOiBzdHJpbmcgfCBudWxsID0gbXcudXRpbC5nZXRQYXJhbVZhbHVlKCd3aXRoTW9kdWxlJyk7XG5cdC8qKlxuXHQgKiAmd2l0aENTUz0gYW5kICZ3aXRoSlM9IFVSTCBwYXJhbWV0ZXJzXG5cdCAqIEFsbG93IHRvIHRyeSBjdXN0b20gc2NyaXB0cyBmcm9tIE1lZGlhV2lraSBzcGFjZVxuXHQgKiB3aXRob3V0IGVkaXRpbmcgcGVyc29uYWwgLmNzcyBvciAuanMgZmlsZXNcblx0ICovXG5cdGlmIChVUkxfV0lUSF9DU1MgfHwgVVJMX1dJVEhfSlMgfHwgVVJMX1dJVEhfTU9EVUxFKSB7XG5cdFx0aWYgKFVSTF9XSVRIX0NTUyAmJiAvXk1lZGlhV2lraTpbXiMlJjw9Pl0qXFwuY3NzJC8udGVzdChVUkxfV0lUSF9DU1MpKSB7XG5cdFx0XHRtdy5sb2FkZXIubG9hZChcblx0XHRcdFx0bXcudXRpbC5nZXRVcmwoVVJMX1dJVEhfQ1NTLCB7XG5cdFx0XHRcdFx0YWN0aW9uOiAncmF3Jyxcblx0XHRcdFx0XHRjdHlwZTogJ3RleHQvY3NzJyxcblx0XHRcdFx0XHRtYXhhZ2U6ICczNjAwJyxcblx0XHRcdFx0XHRzbWF4YWdlOiAnMzYwMCcsXG5cdFx0XHRcdH0pLFxuXHRcdFx0XHQndGV4dC9jc3MnXG5cdFx0XHQpO1xuXHRcdH1cblx0XHRpZiAoVVJMX1dJVEhfSlMgfHwgVVJMX1dJVEhfTU9EVUxFKSB7XG5cdFx0XHQvLyBAdHMtZXhwZWN0LWVycm9yIFRTNjEzM1xuXHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuXHRcdFx0Y29uc3QgcmVxdWlyZSA9IGF3YWl0IG13LmxvYWRlci51c2luZygnZXh0LmdhZGdldC5TaXRlQ29tbW9uX0pTJyk7XG5cblx0XHRcdGlmIChVUkxfV0lUSF9KUyAmJiAvXk1lZGlhV2lraTpbXiMlJjw9Pl0qXFwuanMkLy50ZXN0KFVSTF9XSVRIX0pTKSkge1xuXHRcdFx0XHRtdy5sb2FkZXIubG9hZChcblx0XHRcdFx0XHRtdy51dGlsLmdldFVybChVUkxfV0lUSF9KUywge1xuXHRcdFx0XHRcdFx0YWN0aW9uOiAncmF3Jyxcblx0XHRcdFx0XHRcdGN0eXBlOiAndGV4dC9qYXZhc2NyaXB0Jyxcblx0XHRcdFx0XHRcdG1heGFnZTogJzM2MDAnLFxuXHRcdFx0XHRcdFx0c21heGFnZTogJzM2MDAnLFxuXHRcdFx0XHRcdH0pXG5cdFx0XHRcdCk7XG5cdFx0XHR9XG5cblx0XHRcdGlmIChVUkxfV0lUSF9NT0RVTEUgJiYgL14oZXh0XFwuKCg/IShleHRcXC58Wyx8XSkpLikqWyx8XT8pKyQvLnRlc3QoVVJMX1dJVEhfTU9EVUxFKSkge1xuXHRcdFx0XHRjb25zdCBtb2R1bGVzID0gdW5pcXVlQXJyYXkoVVJMX1dJVEhfTU9EVUxFLnNwbGl0KC9bLHxdLykpO1xuXHRcdFx0XHRtdy5sb2FkZXIubG9hZChtb2R1bGVzKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblx0LyoqXG5cdCAqIExvYWQgQ1NTIGFuZCBKUyBmaWxlcyB0ZW1wb3JhcmlseSB0aHJvdWdoIFVSTC5cblx0ICogJnVzZT1GaWxlMS5jc3N8RmlsZTIuY3NzfEZpbGUzLmpzXG5cdCAqL1xuXHRjb25zdCBVUkxfVVNFOiBzdHJpbmcgfCBudWxsID0gbXcudXRpbC5nZXRQYXJhbVZhbHVlKCd1c2UnKTtcblx0aWYgKFVSTF9VU0UpIHtcblx0XHRjb25zdCB3Z1VzZXJOYW1lRXhjYXBlZDogc3RyaW5nID0gbXcudXRpbC5lc2NhcGVSZWdFeHAod2dVc2VyTmFtZSA/PyAnJyk7XG5cdFx0Y29uc3QgUkVHRVhfRklMRTogUmVnRXhwID0gbmV3IFJlZ0V4cChcblx0XHRcdGBeKD86TWVkaWFXaWtpOiR7d2dVc2VyTmFtZUV4Y2FwZWQgPyBgfFVzZXI6JHt3Z1VzZXJOYW1lRXhjYXBlZH0vYCA6ICcnfSlbXiY8Pj0lI10qXFxcXC4oanN8Y3NzKSRgXG5cdFx0KTtcblx0XHRjb25zdCBSRUdFWF9FWFQ6IFJlZ0V4cCA9IC9eZXh0XFwuW14sXSskLztcblx0XHRjb25zdCBwYXRoOiBzdHJpbmcgPSB3Z1NjcmlwdDtcblx0XHRjb25zdCB1c2VGaWxlcyA9IFVSTF9VU0Uuc3BsaXQoL1ssfF0vKTtcblx0XHRmb3IgKGNvbnN0IHVzZUZpbGUgb2YgdXNlRmlsZXMpIHtcblx0XHRcdGNvbnN0IG5hbWU6IHN0cmluZyA9IHVzZUZpbGUudG9TdHJpbmcoKS50cmltKCk7XG5cdFx0XHRjb25zdCB3aGF0OiBzdHJpbmdbXSA9IFJFR0VYX0ZJTEUuZXhlYyhuYW1lKSA/PyBbJycsICcnXTtcblx0XHRcdHN3aXRjaCAod2hhdFsxXSkge1xuXHRcdFx0XHRjYXNlICdjc3MnOlxuXHRcdFx0XHRcdG13LmxvYWRlci5sb2FkKGAke3BhdGh9P2FjdGlvbj1yYXcmY3R5cGU9dGV4dC9jc3MmdGl0bGU9JHtlbmNvZGVVUklDb21wb25lbnQobmFtZSl9YCk7XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdGNhc2UgJ2pzJzoge1xuXHRcdFx0XHRcdC8vIEB0cy1leHBlY3QtZXJyb3IgVFM2MTMzXG5cdFx0XHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuXHRcdFx0XHRcdGNvbnN0IHJlcXVpcmUgPSBhd2FpdCBtdy5sb2FkZXIudXNpbmcoJ2V4dC5nYWRnZXQuU2l0ZUNvbW1vbl9KUycpO1xuXHRcdFx0XHRcdG13LmxvYWRlci5sb2FkKGAke3BhdGh9P2FjdGlvbj1yYXcmY3R5cGU9dGV4dC9qYXZhc2NyaXB0JnRpdGxlPSR7ZW5jb2RlVVJJQ29tcG9uZW50KG5hbWUpfWApO1xuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdFx0aWYgKFJFR0VYX0VYVC50ZXN0KG5hbWUpKSB7XG5cdFx0XHRcdFx0XHQvLyBAdHMtZXhwZWN0LWVycm9yIFRTNjEzM1xuXHRcdFx0XHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuXHRcdFx0XHRcdFx0Y29uc3QgcmVxdWlyZSA9IGF3YWl0IG13LmxvYWRlci51c2luZygnZXh0LmdhZGdldC5TaXRlQ29tbW9uX0pTJyk7XG5cdFx0XHRcdFx0XHRtdy5sb2FkZXIubG9hZChuYW1lKTtcblx0XHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59O1xuXG5jb25zdCBoaWdoTGlnaHRSZXYgPSAoJGJvZHk6IEpRdWVyeTxIVE1MQm9keUVsZW1lbnQ+KTogdm9pZCA9PiB7XG5cdC8qKlxuXHQgKiBBZGQgaGlnaGxpZ2h0IHRvIHJldmlzaW9ucyB3aGVuIHVzaW5nIGAmaGlsaWdodD1yZXZpZGAgb3IgYCZoaWdobGlnaHQ9cmV2aWRgXG5cdCAqL1xuXHRjb25zdCBVUkxfSElHSExJR0hUOiBzdHJpbmcgfCBudWxsID0gbXcudXRpbC5nZXRQYXJhbVZhbHVlKCdoaWdobGlnaHQnKTtcblx0Y29uc3QgVVJMX0hJTElHSFQ6IHN0cmluZyB8IG51bGwgPSBtdy51dGlsLmdldFBhcmFtVmFsdWUoJ2hpbGlnaHQnKTtcblx0Y29uc3QgaGlnaGxpZ2h0OiBzdHJpbmcgfCBudWxsID0gVVJMX0hJR0hMSUdIVCA/PyBVUkxfSElMSUdIVDtcblxuXHRpZiAoIWhpZ2hsaWdodCB8fCB3Z0FjdGlvbiAhPT0gJ2hpc3RvcnknKSB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0Zm9yIChjb25zdCB2ZXJzaW9uIG9mIGhpZ2hsaWdodC5zcGxpdCgnLCcpKSB7XG5cdFx0JGJvZHkuZmluZChgaW5wdXRbbmFtZT1vbGRpZF1bdmFsdWU9JHt2ZXJzaW9ufV1gKS5wYXJlbnQoKS5hZGRDbGFzcygnbm90LXBhdHJvbGxlZCcpO1xuXHR9XG59O1xuXG5jb25zdCBhZGRUYXJnZXRCbGFuayA9ICgkYm9keTogSlF1ZXJ5PEhUTUxCb2R5RWxlbWVudD4pOiB2b2lkID0+IHtcblx0LyoqXG5cdCAqIEFkZCB0YXJnZXQ9XCJibGFua1wiIHRvIGV4dGVybmFsIGxpbmtzXG5cdCAqL1xuXHQkYm9keS5maW5kPEhUTUxBbmNob3JFbGVtZW50PignYS5leHRlcm5hbCwgYVtyZWw9XCJtdzpFeHRMaW5rXCJdJykuZmlsdGVyKChfaW5kZXgsIGVsZW1lbnQpOiBib29sZWFuID0+IHtcblx0XHRjb25zdCBsaW5rSHJlZjogc3RyaW5nIHwgdW5kZWZpbmVkID0gJChlbGVtZW50KS5hdHRyKCdocmVmJyk7XG5cdFx0aWYgKGxpbmtIcmVmKSB7XG5cdFx0XHRjb25zdCBocmVmU3BsaXQ6IHN0cmluZ1tdID0gbGlua0hyZWYuc3BsaXQoJy8nKTtcblx0XHRcdGlmIChocmVmU3BsaXQubGVuZ3RoIDwgMyB8fCBocmVmU3BsaXRbMl0gPT09IGxvY2F0aW9uLmhvc3QpIHtcblx0XHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGlmIChlbGVtZW50LmhyZWYuaW5jbHVkZXMoYCR7bG9jYXRpb24ucHJvdG9jb2x9Ly8ke2xvY2F0aW9uLmhvc3RuYW1lfWApKSB7XG5cdFx0XHRlbGVtZW50LnRhcmdldCA9ICdfYmxhbmsnO1xuXHRcdFx0aWYgKCFlbGVtZW50LnJlbC5pbmNsdWRlcygnbm9vcGVuZXInKSkge1xuXHRcdFx0XHRlbGVtZW50LnJlbCArPSAnIG5vb3BlbmVyJztcblx0XHRcdH1cblx0XHRcdGlmICghZWxlbWVudC5yZWwuaW5jbHVkZXMoJ25vcmVmZXJyZXInKSkge1xuXHRcdFx0XHRlbGVtZW50LnJlbCArPSAnIG5vcmVmZXJyZXInO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiB0cnVlO1xuXHR9KTtcbn07XG5cbmNvbnN0IHJlbW92ZVRpdGxlRnJvbVBlcm1hbGluayA9ICgkYm9keTogSlF1ZXJ5PEhUTUxCb2R5RWxlbWVudD4pOiB2b2lkID0+IHtcblx0LyoqXG5cdCAqIFJlbW92ZSB0aXRsZT0qIGZyb20gcGVybWFsaW5rXG5cdCAqL1xuXHRjb25zdCAkcGVybWFMaW5rOiBKUXVlcnkgPSAkYm9keS5maW5kKCcjdC1wZXJtYWxpbmsnKTtcblx0aWYgKCEkcGVybWFMaW5rLmxlbmd0aCkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGNvbnN0ICRwZXJtYUxpbmtGaXJzdENoaWxkOiBKUXVlcnk8SFRNTEFuY2hvckVsZW1lbnQ+ID0gJHBlcm1hTGluay5maW5kPEhUTUxBbmNob3JFbGVtZW50PignOmZpcnN0LWNoaWxkJyk7XG5cblx0Y29uc3QgaHJlZjogc3RyaW5nIHwgdW5kZWZpbmVkID0gJHBlcm1hTGlua0ZpcnN0Q2hpbGQuYXR0cignaHJlZicpPy5yZXBsYWNlKC90aXRsZT1bXiZdKiYvLCAnJyk7XG5cdGlmICghaHJlZikge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdCRwZXJtYUxpbmtGaXJzdENoaWxkLmF0dHIoJ2hyZWYnLCBocmVmKTtcbn07XG5cbmNvbnN0IG9wZW5TZWFyY2hJbk5ld1RhYiA9ICgkYm9keTogSlF1ZXJ5PEhUTUxCb2R5RWxlbWVudD4pOiB2b2lkID0+IHtcblx0LyoqXG5cdCAqIE9wZW4gc2VhcmNoIHJlc3VsdHMgaW4gYSBuZXcgdGFiIG9yIHdpbmRvd1xuXHQgKiB3aGVuIGhvbGRpbmcgZG93biB0aGUgQ3RybCBrZXkgKGJ5IFRpbWVzaGlmdGVyKVxuXHQgKi9cblx0JGJvZHlcblx0XHQuZmluZChbJyNzZWFyY2gnLCAnI3NlYXJjaGJveCcsICcjc2VhcmNoZm9ybScsICcuc2VhcmNoLXR5cGVzJywgJyNzZWFyY2gtdHlwZXMnXS5qb2luKCcsJykpXG5cdFx0Lm9uKCdrZXlkb3duIGtleXVwIG1vdXNlZG93bicsIChldmVudDogSlF1ZXJ5LlRyaWdnZXJlZEV2ZW50PEhUTUxFbGVtZW50Pik6IHZvaWQgPT4ge1xuXHRcdFx0Y29uc3Qge2N0cmxLZXksIG1ldGFLZXksIHRhcmdldH0gPSBldmVudDtcblx0XHRcdCQodGFyZ2V0KS5hdHRyKCd0YXJnZXQnLCAoY3RybEtleSA/PyBtZXRhS2V5KSA/ICdfYmxhbmsnIDogJycpO1xuXHRcdH0pO1xufTtcblxuY29uc3QgdGl0bGVDbGVhblVwID0gKCRib2R5OiBKUXVlcnk8SFRNTEJvZHlFbGVtZW50Pik6IHZvaWQgPT4ge1xuXHQvKipcblx0ICogQ2xlYW51cCB0aXRsZSBmb3IgYWxsIHBhZ2VzXG5cdCAqL1xuXHRjb25zdCBVUkxfRElGRjogc3RyaW5nIHwgbnVsbCA9IG13LnV0aWwuZ2V0UGFyYW1WYWx1ZSgnZGlmZicpO1xuXHRpZiAoVVJMX0RJRkYgfHwgd2dBY3Rpb24gIT09ICd2aWV3JyB8fCAhWzYsIDExOF0uaW5jbHVkZXMod2dOYW1lc3BhY2VOdW1iZXIpKSB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0Y29uc3QgZnVsbFBhZ2VOYW1lOiBzdHJpbmcgPSBuZXcgbXcuVGl0bGUod2dQYWdlTmFtZSkuZ2V0UHJlZml4ZWRUZXh0KCk7XG5cdGNvbnN0ICRmaXJzdEhlYWRpbmc6IEpRdWVyeSA9ICRib2R5LmZpbmQoJy5maXJzdEhlYWRpbmcnKTtcblx0Y29uc3QgZG9jdW1lbnRUaXRsZTogc3RyaW5nID0gZG9jdW1lbnQudGl0bGU7XG5cdGNvbnN0IHBhZ2VUaXRsZTogc3RyaW5nID0gJGZpcnN0SGVhZGluZy50ZXh0KCk7XG5cblx0Y29uc3QgcmVwbGFjZVRpdGxlID0gKHRpdGxlOiBzdHJpbmcpOiBzdHJpbmcgPT4gdGl0bGUucmVwbGFjZShwYWdlVGl0bGUsIGZ1bGxQYWdlTmFtZSk7XG5cblx0ZG9jdW1lbnQudGl0bGUgPSByZXBsYWNlVGl0bGUoZG9jdW1lbnRUaXRsZSk7XG5cdCRmaXJzdEhlYWRpbmcudGV4dChyZXBsYWNlVGl0bGUocGFnZVRpdGxlKSk7XG59O1xuXG5jb25zdCB1bmloYW5Qb3B1cCA9IGFzeW5jICgkYm9keTogSlF1ZXJ5PEhUTUxCb2R5RWxlbWVudD4pOiBQcm9taXNlPHZvaWQ+ID0+IHtcblx0LyoqXG5cdCAqIERpc3BsYXkgdGl0bGU9KC4qKSBvZiA8c3BhbiBjbGFzcz1cImlubGluZS11bmloYW5cIj4gYWZ0ZXIgdGhlbS5cblx0ICogKGJldGEgdGVzdClcblx0ICovXG5cdC8vIERvIG5vdCBkaXNwbGF5IG9uIFNwZWNpYWwgUGFnZXNcblx0aWYgKHdnTmFtZXNwYWNlTnVtYmVyIDwgMCkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGF3YWl0IG13LmxvYWRlci51c2luZygnb29qcy11aS1jb3JlJyk7XG5cblx0Zm9yIChjb25zdCBlbGVtZW50IG9mICRib2R5LmZpbmQoJ2F0dHIsIC5pbmxpbmUtdW5paGFuJykpIHtcblx0XHRjb25zdCAkZWxlbWVudDogSlF1ZXJ5ID0gJChlbGVtZW50KTtcblxuXHRcdGNvbnN0IHRpdGxlOiBzdHJpbmcgfCB1bmRlZmluZWQgPSAkZWxlbWVudC5hdHRyKCd0aXRsZScpO1xuXHRcdGlmICghdGl0bGUpIHtcblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblxuXHRcdGNvbnN0IHBvcHVwOiBPTy51aS5Qb3B1cFdpZGdldCA9IG5ldyBPTy51aS5Qb3B1cFdpZGdldCh7XG5cdFx0XHQkY29udGVudDogJCg8cD57dGl0bGV9PC9wPikgYXMgSlF1ZXJ5LFxuXHRcdFx0bGFiZWw6IGdldE1lc3NhZ2UoJ05vdGUnKSxcblx0XHRcdGFuY2hvcjogdHJ1ZSxcblx0XHRcdGhlYWQ6IHRydWUsXG5cdFx0XHRwYWRkZWQ6IHRydWUsXG5cdFx0fSk7XG5cblx0XHQkYm9keS5hcHBlbmQocG9wdXAuJGVsZW1lbnQpO1xuXG5cdFx0JGVsZW1lbnQub24oJ2NsaWNrJywgKCk6IHZvaWQgPT4ge1xuXHRcdFx0cG9wdXAudG9nZ2xlKCk7XG5cdFx0fSk7XG5cdH1cbn07XG5cbmNvbnN0IGZpeExvY2F0aW9uSGFzaCA9ICgpOiB2b2lkID0+IHtcblx0Lyog5L+u5q2j5oqY5Y+g5ZCO5a6a5L2N5Y+Y5YyWICovXG5cdGlmIChsb2NhdGlvbi5oYXNoKSB7XG5cdFx0bG9jYXRpb24uaHJlZiA9IGxvY2F0aW9uLmhhc2g7XG5cdH1cbn07XG5cbmNvbnN0IGhpZGVOZXdVc2Vyc0xvZyA9ICgkYm9keTogSlF1ZXJ5PEhUTUxCb2R5RWxlbWVudD4pOiB2b2lkID0+IHtcblx0Lyog5Li05pe277ya56aB5q2i55So5oi35p+l55yL55So5oi35Yib5bu65pel5b+XICovXG5cdGlmICh3Z0Nhbm9uaWNhbFNwZWNpYWxQYWdlTmFtZSAhPT0gJ0xvZycpIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRjb25zdCAkbmV3VXNlcnNMb2c6IEpRdWVyeSA9ICRib2R5LmZpbmQoJ2lucHV0W25hbWU9XCJ3cGZpbHRlcnNbXVwiXVt2YWx1ZT1uZXd1c2Vyc10nKTtcblx0JG5ld1VzZXJzTG9nLnByb3Aoe1xuXHRcdGNoZWNrZWQ6IGZhbHNlLFxuXHRcdGRpc2FibGVkOiB0cnVlLFxuXHR9KTtcbn07XG5cbmNvbnN0IHRvZ2dsZUxpbmsgPSAoJGJvZHk6IEpRdWVyeTxIVE1MQm9keUVsZW1lbnQ+KTogdm9pZCA9PiB7XG5cdC8qIOiwg+aVtOaKmOWPoOaMiemSrueahOminOiJsiAqL1xuXHRjb25zdCAkdG9nZ2xlcjogSlF1ZXJ5ID0gJGJvZHkuZmluZCgnLm13LWNvbGxhcHNpYmxlLXRvZ2dsZSwgLmdhZGdldC1jb2xsYXBzaWJsZS10b2dnbGVyJyk7XG5cdGlmICghJHRvZ2dsZXIubGVuZ3RoKSB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0aWYgKCR0b2dnbGVyLnBhcmVudCgpWzBdPy5zdHlsZS5jb2xvcikge1xuXHRcdCR0b2dnbGVyLmZpbmQoJ2EnKS5jc3MoJ2NvbG9yJywgJ2luaGVyaXQnKTtcblx0fVxufTtcblxuZXhwb3J0IHtcblx0bG9hZFdpdGhVUkwsXG5cdGhpZ2hMaWdodFJldixcblx0YWRkVGFyZ2V0QmxhbmssXG5cdHJlbW92ZVRpdGxlRnJvbVBlcm1hbGluayxcblx0b3BlblNlYXJjaEluTmV3VGFiLFxuXHR0aXRsZUNsZWFuVXAsXG5cdHVuaWhhblBvcHVwLFxuXHRmaXhMb2NhdGlvbkhhc2gsXG5cdGhpZGVOZXdVc2Vyc0xvZyxcblx0dG9nZ2xlTGluayxcbn07XG4iLCAiaW1wb3J0IHtsb2NhbGl6ZX0gZnJvbSAnZXh0LmdhZGdldC5pMThuJztcblxuY29uc3QgZ2V0STE4bk1lc3NhZ2VzID0gKCkgPT4ge1xuXHRjb25zdCB7d2dVTFN9ID0gd2luZG93O1xuXHRyZXR1cm4ge1xuXHRcdE5vdGU6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnTm90ZTogJyxcblx0XHRcdCd6aC1oYW5zJzogJ+azqOmHiu+8micsXG5cdFx0XHQnemgtaGFudCc6ICfms6jph4vvvJonLFxuXHRcdH0pLFxuXHRcdE5vUGVybUVycm9yMDogd2dVTFMoXG5cdFx0XHQn5Zug5oqA5pyv5Y6f5Zug77yM5oKo5rKh5pyJ5p2D6ZmQ6K6/6Zeu55u45YWz6aG16Z2i44CC6Iul5pyJ55aR6Zeu77yM6K+35LiO5rGC6Ze755m+56eR6L+Q6JCl6ICF6IGU57O744CCJyxcblx0XHRcdCflm6DmioDooZPljp/lm6DvvIzmgqjmspLmnInmrIrpmZDoqKrllY/nm7jpl5zpoIHpnaLjgILoi6XmnInnlpHllY/vvIzoq4voiIfmsYLogZ7nmb7np5HpgYvnh5/ogIXoga/ns7vjgIInXG5cdFx0KSxcblx0XHROb1Blcm1FcnJvcjE6IHdnVUxTKFxuXHRcdFx0J+aCqOayoeacieadg+mZkOiuv+mXruebuOWFs+mhtemdouOAguiLpeaCqOaYr+i1hOa3see8luiAhe+8jOivt+S4juaxgumXu+eZvuenkeaKgOacr+WboumYn+iBlOezu++8jOS7peiOt+WPluadg+mZkOOAgicsXG5cdFx0XHQn5oKo5rKS5pyJ5qyK6ZmQ6Kiq5ZWP55u46Zec6aCB6Z2i44CC6Iul5oKo5piv6LOH5rex57eo6ICF77yM6KuL6IiH5rGC6IGe55m+56eR5oqA6KGT5ZyY6ZqK6IGv57O777yM5Lul542y5Y+W5qyK6ZmQ44CCJ1xuXHRcdCksXG5cdFx0Tm9QZXJtRXJyb3IyOiB3Z1VMUyhcblx0XHRcdCfmgqjnmoTnvZHnu5znjq/looPlrZjlnKjpo47pmanvvIzor7fnmbvlvZXlkI7nu6fnu63kvb/nlKjjgILoi6XmgqjmsqHmnInmsYLpl7vnmb7np5HotKblj7fvvIzor7fms6jlhozlkI7nmbvlvZXjgIInLFxuXHRcdFx0J+aCqOeahOe2sui3r+eSsOWig+WtmOWcqOmiqOmaqu+8jOiri+eZu+WFpeW+jOe5vOe6jOS9v+eUqOOAguiLpeaCqOaykuacieaxguiBnueZvuenkeizrOiZn++8jOiri+azqOWGiuW+jOeZu+mMhOOAgidcblx0XHQpLFxuXHRcdE5vUGVybUVycm9yMzogd2dVTFMoXG5cdFx0XHQn55u45YWz5Yqf6IO95LuF5ZCR5rOo5YaM55So5oi35byA5pS+77yM6K+355m75b2V5ZCO57un57ut5L2/55So44CC6Iul5oKo5rKh5pyJ5rGC6Ze755m+56eR6LSm5Y+377yM6K+35rOo5YaM5ZCO55m75b2V44CCJyxcblx0XHRcdCfnm7jpl5zlip/og73lg4XlkJHms6jlhornlKjmiLbplovmlL7vvIzoq4vnmbvlhaXlvoznubznuozkvb/nlKjjgILoi6XmgqjmspLmnInmsYLogZ7nmb7np5Hos6zomZ/vvIzoq4vms6jlhorlvoznmbvpjITjgIInXG5cdFx0KSxcblx0XHROb1Blcm1FcnJvcjQ6IHdnVUxTKFxuXHRcdFx0J+aCqOayoeacieadg+mZkOiuv+mXruebuOWFs+mhtemdouOAguiLpeacieeWkemXru+8jOivt+S4juaxgumXu+eZvuenkei/kOiQpeiAheiBlOezu+OAgicsXG5cdFx0XHQn5oKo5rKS5pyJ5qyK6ZmQ6Kiq5ZWP55u46Zec6aCB6Z2i44CC6Iul5pyJ55aR5ZWP77yM6KuL6IiH5rGC6IGe55m+56eR6YGL54ef6ICF6IGv57O744CCJ1xuXHRcdCksXG5cdH07XG59O1xuXG5jb25zdCBpMThuTWVzc2FnZXMgPSBnZXRJMThuTWVzc2FnZXMoKTtcblxuY29uc3QgZ2V0TWVzc2FnZTogR2V0TWVzc2FnZXM8dHlwZW9mIGkxOG5NZXNzYWdlcz4gPSAoa2V5KSA9PiB7XG5cdHJldHVybiBpMThuTWVzc2FnZXNba2V5XSB8fCBrZXk7XG59O1xuXG5leHBvcnQge2dldE1lc3NhZ2V9O1xuIiwgImltcG9ydCB7dGlwcHl9IGZyb20gJ2V4dC5nYWRnZXQuVGlwcHknO1xuXG5jb25zdCBnZXRDb250ZW50ID0gKHJlZmVyZW5jZTogRWxlbWVudCk6IHN0cmluZyA9PiB7XG5cdGNvbnN0IGxhYmVsOiBzdHJpbmcgfCBudWxsID0gcmVmZXJlbmNlLmdldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbCcpO1xuXHRjb25zdCB0aXRsZTogc3RyaW5nIHwgbnVsbCA9IHJlZmVyZW5jZS5nZXRBdHRyaWJ1dGUoJ2FsdCcpID8/IHJlZmVyZW5jZS5nZXRBdHRyaWJ1dGUoJ3RpdGxlJyk7XG5cblx0cmV0dXJuIChsYWJlbCA9PT0gdGl0bGUgPyBsYWJlbCA6IHRpdGxlIHx8IGxhYmVsKSB8fCAocmVmZXJlbmNlLnRleHRDb250ZW50IGFzIHN0cmluZyk7XG59O1xuXG5jb25zdCBvbkNyZWF0ZUNhbGxiYWNrID0gKGluc3RhbmNlOiBSZXR1cm5UeXBlPHR5cGVvZiB0aXBweT5bMF0pOiB2b2lkID0+IHtcblx0Y29uc3Qge3JlZmVyZW5jZX0gPSBpbnN0YW5jZTtcblx0cmVmZXJlbmNlLnNldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbCcsIGdldENvbnRlbnQocmVmZXJlbmNlKSk7XG5cdHJlZmVyZW5jZS5yZW1vdmVBdHRyaWJ1dGUoJ3RpdGxlJyk7XG59O1xuXG5jb25zdCBvblNob3dDYWxsYmFjayA9IChpbnN0YW5jZTogUmV0dXJuVHlwZTx0eXBlb2YgdGlwcHk+WzBdKTogdm9pZCA9PiB7XG5cdG9uQ3JlYXRlQ2FsbGJhY2soaW5zdGFuY2UpO1xuXHRpbnN0YW5jZS5zZXRDb250ZW50KGdldENvbnRlbnQoaW5zdGFuY2UucmVmZXJlbmNlKSk7XG59O1xuXG5jb25zdCB0aXBweUZvckNpdGl6ZW5IZWFkZXIgPSAoJGJvZHk6IEpRdWVyeTxIVE1MQm9keUVsZW1lbnQ+KTogdm9pZCA9PiB7XG5cdGNvbnN0IHtza2lufSA9IG13LmNvbmZpZy5nZXQoKTtcblx0aWYgKHNraW4gIT09ICdjaXRpemVuJykge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGZvciAoY29uc3QgZWxlbWVudCBvZiAkYm9keS5maW5kKFxuXHRcdFtcblx0XHRcdCcuY2l0aXplbi1oZWFkZXIgLmNpdGl6ZW4tZHJvcGRvd24tc3VtbWFyeScsXG5cdFx0XHQnLmNpdGl6ZW4taGVhZGVyIC5jaXRpemVuLWVjaG8tbm90aWZpY2F0aW9uLWJhZGdlJyxcblx0XHRcdCcuY2l0aXplbi1oZWFkZXJfX2xvZ28gYScsXG5cdFx0XHQnLnBhZ2UtYWN0aW9ucz5uYXY+dWw+bGkgYScsXG5cdFx0XHQnLnBhZ2UtYWN0aW9uc19fYnV0dG9uJyxcblx0XHRdLmpvaW4oJywnKVxuXHQpKSB7XG5cdFx0Y29uc3QgJGVsZW1lbnQ6IEpRdWVyeSA9ICQoZWxlbWVudCk7XG5cdFx0bGV0IHRpdGxlOiBzdHJpbmcgfCB1bmRlZmluZWQgPSAkZWxlbWVudC5hdHRyKCd0aXRsZScpO1xuXHRcdGlmICghdGl0bGUpIHtcblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblxuXHRcdHRpdGxlID0gdGl0bGUucmVwbGFjZSgvXFxzKj9cXFsuKz9dJC8sICcnKTtcblxuXHRcdCRlbGVtZW50LmF0dHIoe1xuXHRcdFx0J2FyaWEtbGFiZWwnOiB0aXRsZSxcblx0XHRcdHRpdGxlOiAnJyxcblx0XHR9KTtcblx0XHR0aXBweSgkZWxlbWVudC5nZXQoMCkgYXMgSFRNTEVsZW1lbnQsIHtcblx0XHRcdGFycm93OiB0cnVlLFxuXHRcdFx0Y29udGVudDogdGl0bGUsXG5cdFx0XHRwbGFjZW1lbnQ6ICdib3R0b20nLFxuXHRcdFx0b25DcmVhdGU6IG9uQ3JlYXRlQ2FsbGJhY2ssXG5cdFx0XHRvbkhpZGRlbjogb25DcmVhdGVDYWxsYmFjayxcblx0XHRcdG9uU2hvdzogb25TaG93Q2FsbGJhY2ssXG5cdFx0fSk7XG5cdH1cbn07XG5cbmNvbnN0IHRpcHB5Rm9yRXh0ZW5zaW9uID0gYXN5bmMgKCk6IFByb21pc2U8dm9pZD4gPT4ge1xuXHRjb25zdCB7c2tpbn0gPSBtdy5jb25maWcuZ2V0KCk7XG5cdGlmIChza2luID09PSAndmVjdG9yLTIwMjInKSB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0YXdhaXQgbXcubG9hZGVyLnVzaW5nKCdleHQuQ29sbGFwc2libGVTaWRlYmFyLmpzJyk7XG5cdHRpcHB5KCcjc2lkZWJhckJ1dHRvbicsIHtcblx0XHRhcnJvdzogdHJ1ZSxcblx0XHRjb250ZW50OiBnZXRDb250ZW50LFxuXHRcdHBsYWNlbWVudDogJ2xlZnQnLFxuXHRcdG9uQ3JlYXRlOiBvbkNyZWF0ZUNhbGxiYWNrLFxuXHRcdG9uSGlkZGVuOiBvbkNyZWF0ZUNhbGxiYWNrLFxuXHRcdG9uU2hvdzogb25TaG93Q2FsbGJhY2ssXG5cdH0pO1xuXG5cdGlmIChza2luID09PSAndmVjdG9yJykge1xuXHRcdGF3YWl0IG13LmxvYWRlci51c2luZygnZXh0LkNvbGxhcHNpYmxlU2lkZWJhci52ZWN0b3InKTtcblx0XHR0aXBweSgnI3NpZGViYXJDb2xsYXBzZScsIHtcblx0XHRcdGFycm93OiB0cnVlLFxuXHRcdFx0Y29udGVudDogZ2V0Q29udGVudCxcblx0XHRcdHBsYWNlbWVudDogJ3JpZ2h0Jyxcblx0XHRcdG9uQ3JlYXRlOiBvbkNyZWF0ZUNhbGxiYWNrLFxuXHRcdFx0b25IaWRkZW46IG9uQ3JlYXRlQ2FsbGJhY2ssXG5cdFx0XHRvblNob3c6IG9uU2hvd0NhbGxiYWNrLFxuXHRcdH0pO1xuXHR9XG5cblx0YXdhaXQgbXcubG9hZGVyLnVzaW5nKCdleHQuRGFya01vZGUnKTtcblx0dGlwcHkoJyNkYXJrbW9kZS1idXR0b24nLCB7XG5cdFx0YXJyb3c6IHRydWUsXG5cdFx0Y29udGVudDogZ2V0Q29udGVudCxcblx0XHRwbGFjZW1lbnQ6ICdsZWZ0Jyxcblx0XHRvbkNyZWF0ZTogb25DcmVhdGVDYWxsYmFjayxcblx0XHRvbkhpZGRlbjogb25DcmVhdGVDYWxsYmFjayxcblx0XHRvblNob3c6IG9uU2hvd0NhbGxiYWNrLFxuXHR9KTtcbn07XG5cbmV4cG9ydCB7dGlwcHlGb3JDaXRpemVuSGVhZGVyLCB0aXBweUZvckV4dGVuc2lvbn07XG4iLCAiY29uc3QgZGVwcmVjYXRlZEZ1bmN0aW9ucyA9ICgpOiB2b2lkID0+IHtcblx0LyohXG5cdCAqIG1haW50ZW5hbmNlOiBTb21lIHVzZXIgc2NyaXB0cyBtYXkgYmUgdXNpbmcgdGhlIGZvbGxvd2luZyBkZXByZWNhdGVkIGZ1bmN0aW9ucy5cblx0ICogVGhlc2UgZnVuY3Rpb25zIGFyZSBubyBsb25nZXIgc3VwcG9ydGVkIGFuZCBzaG91bGQgYmUgdXBkYXRlZC5cblx0ICovXG5cdG13LmxvZy5kZXByZWNhdGUoXG5cdFx0d2luZG93LFxuXHRcdCdpbXBvcnRTY3JpcHQnLFxuXHRcdCh0aXRsZTogc3RyaW5nKTogSFRNTFNjcmlwdEVsZW1lbnQgPT4ge1xuXHRcdFx0cmV0dXJuIG13LmxvYWRlci5hZGRTY3JpcHRUYWcoXG5cdFx0XHRcdG13LnV0aWwuZ2V0VXJsKHRpdGxlLCB7XG5cdFx0XHRcdFx0YWN0aW9uOiAncmF3Jyxcblx0XHRcdFx0XHRjdHlwZTogJ3RleHQvamF2YXNjcmlwdCcsXG5cdFx0XHRcdFx0bWF4YWdlOiAnMzYwMCcsXG5cdFx0XHRcdFx0c21heGFnZTogJzM2MDAnLFxuXHRcdFx0XHR9KVxuXHRcdFx0KTtcblx0XHR9LFxuXHRcdCdVc2UgbXcubG9hZGVyLmFkZFNjcmlwdFRhZygpIGluc3RlYWQnXG5cdCk7XG5cblx0bXcubG9nLmRlcHJlY2F0ZShcblx0XHR3aW5kb3csXG5cdFx0J2ltcG9ydFN0eWxlc2hlZXQnLFxuXHRcdCh0aXRsZTogc3RyaW5nKTogSFRNTExpbmtFbGVtZW50ID0+IHtcblx0XHRcdHJldHVybiBtdy5sb2FkZXIuYWRkTGlua1RhZyhcblx0XHRcdFx0bXcudXRpbC5nZXRVcmwodGl0bGUsIHtcblx0XHRcdFx0XHRhY3Rpb246ICdyYXcnLFxuXHRcdFx0XHRcdGN0eXBlOiAndGV4dC9jc3MnLFxuXHRcdFx0XHRcdG1heGFnZTogJzM2MDAnLFxuXHRcdFx0XHRcdHNtYXhhZ2U6ICczNjAwJyxcblx0XHRcdFx0fSksXG5cdFx0XHRcdCd0ZXh0L2Nzcydcblx0XHRcdCk7XG5cdFx0fSxcblx0XHQnVXNlIG13LmxvYWRlci5hZGRMaW5rVGFnKCkgaW5zdGVhZCdcblx0KTtcblxuXHRtdy5sb2cuZGVwcmVjYXRlKFxuXHRcdHdpbmRvdyxcblx0XHQnaW1wb3J0U2NyaXB0VVJJJyxcblx0XHQobW9kdWxlczogc3RyaW5nKTogSFRNTFNjcmlwdEVsZW1lbnQgPT4ge1xuXHRcdFx0cmV0dXJuIG13LmxvYWRlci5hZGRTY3JpcHRUYWcobXcudXRpbC53aWtpVXJsZW5jb2RlKG1vZHVsZXMpKTtcblx0XHR9LFxuXHRcdCdVc2UgbXcubG9hZGVyLmFkZFNjcmlwdFRhZygpIG9yIG13LmxvYWRlci5nZXRTY3JpcHQoKSBpbnN0ZWFkJ1xuXHQpO1xuXG5cdG13LmxvZy5kZXByZWNhdGUoXG5cdFx0d2luZG93LFxuXHRcdCdpbXBvcnRTdHlsZXNoZWV0VVJJJyxcblx0XHQobW9kdWxlczogc3RyaW5nKTogSFRNTExpbmtFbGVtZW50ID0+IHtcblx0XHRcdHJldHVybiBtdy5sb2FkZXIuYWRkTGlua1RhZyhtdy51dGlsLndpa2lVcmxlbmNvZGUobW9kdWxlcyksICd0ZXh0L2NzcycpO1xuXHRcdH0sXG5cdFx0J1VzZSBtdy5sb2FkZXIuYWRkTGlua1RhZygpIGluc3RlYWQnXG5cdCk7XG5cblx0bXcubG9nLmRlcHJlY2F0ZShcblx0XHR3aW5kb3csXG5cdFx0Ly8gQHRzLWV4cGVjdC1lcnJvciBUUzIzNDVcblx0XHQnaW1wb3J0U2NyaXB0Q2FsbGJhY2snLFxuXHRcdCh0aXRsZTogc3RyaW5nLCByZWFkeTogbmV2ZXIpOiB2b2lkID0+IHtcblx0XHRcdHZvaWQgbXcubG9hZGVyXG5cdFx0XHRcdC5nZXRTY3JpcHQoXG5cdFx0XHRcdFx0bXcudXRpbC5nZXRVcmwodGl0bGUsIHtcblx0XHRcdFx0XHRcdGFjdGlvbjogJ3JhdycsXG5cdFx0XHRcdFx0XHRjdHlwZTogJ3RleHQvamF2YXNjcmlwdCcsXG5cdFx0XHRcdFx0XHRtYXhhZ2U6ICczNjAwJyxcblx0XHRcdFx0XHRcdHNtYXhhZ2U6ICczNjAwJyxcblx0XHRcdFx0XHR9KVxuXHRcdFx0XHQpXG5cdFx0XHRcdC50aGVuKHJlYWR5KTtcblx0XHR9LFxuXHRcdCdVc2UgbXcubG9hZGVyLmdldFNjcmlwdCgpIGluc3RlYWQnXG5cdCk7XG5cblx0bXcubG9nLmRlcHJlY2F0ZShcblx0XHR3aW5kb3csXG5cdFx0Ly8gQHRzLWV4cGVjdC1lcnJvciBUUzIzNDVcblx0XHQnaW1wb3J0U2NyaXB0VVJJQ2FsbGJhY2snLFxuXHRcdCh1cmw6IHN0cmluZywgcmVhZHk6IG5ldmVyKTogdm9pZCA9PiB7XG5cdFx0XHR2b2lkIG13LmxvYWRlci5nZXRTY3JpcHQodXJsKS50aGVuKHJlYWR5KTtcblx0XHR9LFxuXHRcdCdVc2UgbXcubG9hZGVyLmdldFNjcmlwdCgpIGluc3RlYWQnXG5cdCk7XG5cdC8qKlxuXHQgKiBtYWludGVuYW5jZTogU29tZSB1c2VyIHNjcmlwdHMgbWF5IGJlIHVzaW5nIHRoZSBmb2xsb3dpbmcgZGVwcmVjYXRlZCBmdW5jdGlvbnMuXG5cdCAqIFRoZXNlIGZ1bmN0aW9ucyBhcmUga2VwdCBmb3IgY29tcGFiaWxpdHkuXG5cdCAqL1xuXHQvLyBtdy5sb2cuZGVwcmVjYXRlKHdpbmRvdywgJ0pTQ29uZmlnJywge30sICdVc2Uge30gaW5zdGVhZCcpO1xuXHQvKipcblx0ICogd2dVKlMgZnVuY3Rpb25zIGhhdmUgYmVlbiBzcGxpdCB0byBhIHNlcGVyYXRlIGdhZGdldCAoZXh0LmdhZGdldC5pMThuKS5cblx0ICovXG59O1xuXG5leHBvcnQge2RlcHJlY2F0ZWRGdW5jdGlvbnN9O1xuIiwgImltcG9ydCB7XG5cdGFkZFRhcmdldEJsYW5rLFxuXHRmaXhMb2NhdGlvbkhhc2gsXG5cdGhpZGVOZXdVc2Vyc0xvZyxcblx0aGlnaExpZ2h0UmV2LFxuXHRsb2FkV2l0aFVSTCxcblx0b3BlblNlYXJjaEluTmV3VGFiLFxuXHRyZW1vdmVUaXRsZUZyb21QZXJtYWxpbmssXG5cdHRpdGxlQ2xlYW5VcCxcblx0dG9nZ2xlTGluayxcblx0dW5paGFuUG9wdXAsXG59IGZyb20gJy4vbW9kdWxlcy9jb3JlJztcbmltcG9ydCB7dGlwcHlGb3JDaXRpemVuSGVhZGVyLCB0aXBweUZvckV4dGVuc2lvbn0gZnJvbSAnLi9tb2R1bGVzL3RpcHB5JztcbmltcG9ydCB7ZGVwcmVjYXRlZEZ1bmN0aW9uc30gZnJvbSAnLi9tb2R1bGVzL2RlcHJlY2F0ZWRGdW5jdGlvbnMnO1xuaW1wb3J0IHtnZXRCb2R5fSBmcm9tICdleHQuZ2FkZ2V0LlV0aWwnO1xuaW1wb3J0IHtyZXNpemVKUXVlcnlVSX0gZnJvbSAnLi9tb2R1bGVzL3Jlc2l6ZUpRdWVyeVVJJztcblxuKGZ1bmN0aW9uIHNpdGVDb21tb24oKTogdm9pZCB7XG5cdGNvbnN0IGNvbmZpZ0tleTogc3RyaW5nID0gJ2dhZGdldC1TaXRlQ29tbW9uX0pTX19Jbml0aWFsaXplZCc7XG5cdGNvbnN0IHtza2lufSA9IG13LmNvbmZpZy5nZXQoKTtcblxuXHQvLyBHdWFyZCBhZ2FpbnN0IGRvdWJsZSBpbmNsdXNpb25zXG5cdGlmIChtdy5jb25maWcuZ2V0KGNvbmZpZ0tleSkpIHtcblx0XHRyZXR1cm47XG5cdH1cblx0Ly8gU2V0IGd1YXJkXG5cdG13LmNvbmZpZy5zZXQoY29uZmlnS2V5LCB0cnVlKTtcblxuXHQvLyBDb3JlIG1vZHVsZXNcblx0dm9pZCBsb2FkV2l0aFVSTCgpO1xuXHRmaXhMb2NhdGlvbkhhc2goKTtcblxuXHR2b2lkIGdldEJvZHkoKS50aGVuKCgkYm9keTogSlF1ZXJ5PEhUTUxCb2R5RWxlbWVudD4pOiB2b2lkID0+IHtcblx0XHQvLyBDb3JlIG1vZHVsZXMgKG5lZWQgJC5yZWFkeSlcblx0XHRoaWdoTGlnaHRSZXYoJGJvZHkpO1xuXHRcdGFkZFRhcmdldEJsYW5rKCRib2R5KTtcblx0XHRyZW1vdmVUaXRsZUZyb21QZXJtYWxpbmsoJGJvZHkpO1xuXHRcdG9wZW5TZWFyY2hJbk5ld1RhYigkYm9keSk7XG5cdFx0dGl0bGVDbGVhblVwKCRib2R5KTtcblx0XHR2b2lkIHVuaWhhblBvcHVwKCRib2R5KTtcblx0XHRoaWRlTmV3VXNlcnNMb2coJGJvZHkpO1xuXHRcdHRvZ2dsZUxpbmsoJGJvZHkpO1xuXHRcdHJlc2l6ZUpRdWVyeVVJKCRib2R5KTtcblxuXHRcdC8vIFRpcHB5LXJlbGF0ZWQgY29kZXMgKG5lZWQgJC5yZWFkeSlcblx0XHRpZiAoc2tpbiA9PT0gJ2NpdGl6ZW4nKSB7XG5cdFx0XHR0aXBweUZvckNpdGl6ZW5IZWFkZXIoJGJvZHkpO1xuXHRcdH1cblx0fSk7XG5cblx0Ly8gRGVwcmVjYXRlZCBmdW5jdGlvbnNcblx0ZGVwcmVjYXRlZEZ1bmN0aW9ucygpO1xuXG5cdC8vIFRpcHB5LXJlbGF0ZWQgY29kZXNcblx0aWYgKCFbJ3ZlY3Rvci0yMDIyJywgJ2NpdGl6ZW4nXS5pbmNsdWRlcyhza2luKSkge1xuXHRcdHZvaWQgdGlwcHlGb3JFeHRlbnNpb24oKTtcblx0fVxufSkoKTtcbiIsICJjb25zdCByZXNpemVKUXVlcnlVSSA9ICgkYm9keTogSlF1ZXJ5PEhUTUxCb2R5RWxlbWVudD4pOiB2b2lkID0+IHtcblx0JCh3aW5kb3cpLm9uKCdyZXNpemUnLCAoKTogdm9pZCA9PiB7XG5cdFx0Y29uc3Qgd2luZG93V2lkdGggPSAkKHdpbmRvdykud2lkdGgoKTtcblx0XHRjb25zdCAkanF1ZXJ5VUlEaWFsb2cgPSAkYm9keS5maW5kKCcudWktZGlhbG9nJyk7XG5cdFx0aWYgKCRqcXVlcnlVSURpYWxvZykge1xuXHRcdFx0JGpxdWVyeVVJRGlhbG9nLmNzcygnbWF4LXdpZHRoJywgYGNhbGMoJHt3aW5kb3dXaWR0aH1weCAtIDJlbSlgKTtcblx0XHR9XG5cdH0pO1xufTtcblxuZXhwb3J0IHtyZXNpemVKUXVlcnlVSX07XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLElBQUFBLHFCQUFrQkMsUUFBQUMsUUFBQSxrQkFBQSxHQUFBLENBQUE7O0FDQWxCLElBQUFDLG9CQUF1QkQsUUFBQSxpQkFBQTtBQUV2QixJQUFNRSxrQkFBa0JBLE1BQU07QUFDN0IsUUFBTTtJQUFDQztFQUFLLElBQUlDO0FBQ2hCLFNBQU87SUFDTkMsT0FBQSxHQUFNSixrQkFBQUssVUFBUztNQUNkQyxJQUFJO01BQ0osV0FBVztNQUNYLFdBQVc7SUFD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akwsS0FBR0MsT0FBT2lMLElBQUlELFdBQVcsSUFBSTtBQUc3QixPQUFLOUssWUFBWTtBQUNqQndILGtCQUFnQjtBQUVoQixRQUFBLEdBQUtnRCxtQkFBQVEsU0FBUSxFQUFFVixLQUFNbkgsV0FBeUM7QUFFN0RELGlCQUFhQyxLQUFLO0FBQ2xCVSxtQkFBZVYsS0FBSztBQUNwQjJCLDZCQUF5QjNCLEtBQUs7QUFDOUJnQyx1QkFBbUJoQyxLQUFLO0FBQ3hCc0MsaUJBQWF0QyxLQUFLO0FBQ2xCLFNBQUtrRCxZQUFZbEQsS0FBSztBQUN0QnVFLG9CQUFnQnZFLEtBQUs7QUFDckI0RSxlQUFXNUUsS0FBSztBQUNoQnNILG1CQUFldEgsS0FBSztBQUdwQixRQUFJK0YsU0FBUyxXQUFXO0FBQ3ZCRCw0QkFBc0I5RixLQUFLO0lBQzVCO0VBQ0QsQ0FBQztBQUdEMkcsc0JBQW9CO0FBR3BCLE1BQUksQ0FBQyxDQUFDLGVBQWUsU0FBUyxFQUFFckYsU0FBU3lFLElBQUksR0FBRztBQUMvQyxTQUFLVSxrQkFBa0I7RUFDeEI7QUFDRCxHQUFHOyIsCiAgIm5hbWVzIjogWyJpbXBvcnRfZXh0X2dhZGdldDIiLCAiX190b0VTTSIsICJyZXF1aXJlIiwgImltcG9ydF9leHRfZ2FkZ2V0IiwgImdldEkxOG5NZXNzYWdlcyIsICJ3Z1VMUyIsICJ3aW5kb3ciLCAiTm90ZSIsICJsb2NhbGl6ZSIsICJlbiIsICJOb1Blcm1FcnJvcjAiLCAiTm9QZXJtRXJyb3IxIiwgIk5vUGVybUVycm9yMiIsICJOb1Blcm1FcnJvcjMiLCAiTm9QZXJtRXJyb3I0IiwgImkxOG5NZXNzYWdlcyIsICJnZXRNZXNzYWdlIiwgImtleSIsICJpbXBvcnRfZXh0X2dhZGdldDMiLCAid2dBY3Rpb24iLCAid2dDYW5vbmljYWxTcGVjaWFsUGFnZU5hbWUiLCAid2dOYW1lc3BhY2VOdW1iZXIiLCAid2dQYWdlTmFtZSIsICJ3Z1NjcmlwdCIsICJ3Z1VzZXJOYW1lIiwgIm13IiwgImNvbmZpZyIsICJnZXQiLCAibG9hZFdpdGhVUkwiLCAiX3JlZiIsICJfYXN5bmNUb0dlbmVyYXRvciIsICJVUkxfV0lUSF9DU1MiLCAidXRpbCIsICJnZXRQYXJhbVZhbHVlIiwgIlVSTF9XSVRIX0pTIiwgIlVSTF9XSVRIX01PRFVMRSIsICJ0ZXN0IiwgImxvYWRlciIsICJsb2FkIiwgImdldFVybCIsICJhY3Rpb24iLCAiY3R5cGUiLCAibWF4YWdlIiwgInNtYXhhZ2UiLCAicmVxdWlyZTIiLCAidXNpbmciLCAibW9kdWxlcyIsICJ1bmlxdWVBcnJheSIsICJzcGxpdCIsICJVUkxfVVNFIiwgIndnVXNlck5hbWVFeGNhcGVkIiwgImVzY2FwZVJlZ0V4cCIsICJSRUdFWF9GSUxFIiwgIlJlZ0V4cCIsICJjb25jYXQiLCAiUkVHRVhfRVhUIiwgInBhdGgiLCAidXNlRmlsZXMiLCAiX2l0ZXJhdG9yMiIsICJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsICJfc3RlcDIiLCAicyIsICJuIiwgImRvbmUiLCAiX1JFR0VYX0ZJTEUkZXhlYyIsICJ1c2VGaWxlIiwgInZhbHVlIiwgIm5hbWUiLCAidG9TdHJpbmciLCAidHJpbSIsICJ3aGF0IiwgImV4ZWMiLCAiZW5jb2RlVVJJQ29tcG9uZW50IiwgImVyciIsICJlIiwgImYiLCAiYXBwbHkiLCAiYXJndW1lbnRzIiwgImhpZ2hMaWdodFJldiIsICIkYm9keSIsICJVUkxfSElHSExJR0hUIiwgIlVSTF9ISUxJR0hUIiwgImhpZ2hsaWdodCIsICJfaXRlcmF0b3IzIiwgIl9zdGVwMyIsICJ2ZXJzaW9uIiwgImZpbmQiLCAicGFyZW50IiwgImFkZENsYXNzIiwgImFkZFRhcmdldEJsYW5rIiwgImZpbHRlciIsICJfaW5kZXgiLCAiZWxlbWVudCIsICJsaW5rSHJlZiIsICIkIiwgImF0dHIiLCAiaHJlZlNwbGl0IiwgImxlbmd0aCIsICJsb2NhdGlvbiIsICJob3N0IiwgImhyZWYiLCAiaW5jbHVkZXMiLCAicHJvdG9jb2wiLCAiaG9zdG5hbWUiLCAidGFyZ2V0IiwgInJlbCIsICJyZW1vdmVUaXRsZUZyb21QZXJtYWxpbmsiLCAiXyRwZXJtYUxpbmtGaXJzdENoaWxkIiwgIiRwZXJtYUxpbmsiLCAiJHBlcm1hTGlua0ZpcnN0Q2hpbGQiLCAicmVwbGFjZSIsICJvcGVuU2VhcmNoSW5OZXdUYWIiLCAiam9pbiIsICJvbiIsICJldmVudCIsICJjdHJsS2V5IiwgIm1ldGFLZXkiLCAidGl0bGVDbGVhblVwIiwgIlVSTF9ESUZGIiwgImZ1bGxQYWdlTmFtZSIsICJUaXRsZSIsICJnZXRQcmVmaXhlZFRleHQiLCAiJGZpcnN0SGVhZGluZyIsICJkb2N1bWVudFRpdGxlIiwgImRvY3VtZW50IiwgInRpdGxlIiwgInBhZ2VUaXRsZSIsICJ0ZXh0IiwgInJlcGxhY2VUaXRsZSIsICJ1bmloYW5Qb3B1cCIsICJfcmVmMiIsICJfaXRlcmF0b3I0IiwgIl9zdGVwNCIsICIkZWxlbWVudCIsICJwb3B1cCIsICJPTyIsICJ1aSIsICJQb3B1cFdpZGdldCIsICIkY29udGVudCIsICJkZWZhdWx0IiwgImNyZWF0ZUVsZW1lbnQiLCAibGFiZWwiLCAiYW5jaG9yIiwgImhlYWQiLCAicGFkZGVkIiwgImFwcGVuZCIsICJ0b2dnbGUiLCAiX3giLCAiZml4TG9jYXRpb25IYXNoIiwgImhhc2giLCAiaGlkZU5ld1VzZXJzTG9nIiwgIiRuZXdVc2Vyc0xvZyIsICJwcm9wIiwgImNoZWNrZWQiLCAiZGlzYWJsZWQiLCAidG9nZ2xlTGluayIsICJfJHRvZ2dsZXIkcGFyZW50JCIsICIkdG9nZ2xlciIsICJzdHlsZSIsICJjb2xvciIsICJjc3MiLCAiaW1wb3J0X2V4dF9nYWRnZXQ0IiwgImdldENvbnRlbnQiLCAicmVmZXJlbmNlIiwgIl9yZWZlcmVuY2UkZ2V0QXR0cmlidSIsICJnZXRBdHRyaWJ1dGUiLCAidGV4dENvbnRlbnQiLCAib25DcmVhdGVDYWxsYmFjayIsICJpbnN0YW5jZSIsICJzZXRBdHRyaWJ1dGUiLCAicmVtb3ZlQXR0cmlidXRlIiwgIm9uU2hvd0NhbGxiYWNrIiwgInNldENvbnRlbnQiLCAidGlwcHlGb3JDaXRpemVuSGVhZGVyIiwgInNraW4iLCAiX2l0ZXJhdG9yNSIsICJfc3RlcDUiLCAidGlwcHkiLCAiYXJyb3ciLCAiY29udGVudCIsICJwbGFjZW1lbnQiLCAib25DcmVhdGUiLCAib25IaWRkZW4iLCAib25TaG93IiwgInRpcHB5Rm9yRXh0ZW5zaW9uIiwgIl9yZWYzIiwgImRlcHJlY2F0ZWRGdW5jdGlvbnMiLCAibG9nIiwgImRlcHJlY2F0ZSIsICJhZGRTY3JpcHRUYWciLCAiYWRkTGlua1RhZyIsICJ3aWtpVXJsZW5jb2RlIiwgInJlYWR5IiwgImdldFNjcmlwdCIsICJ0aGVuIiwgInVybCIsICJpbXBvcnRfZXh0X2dhZGdldDUiLCAicmVzaXplSlF1ZXJ5VUkiLCAid2luZG93V2lkdGgiLCAid2lkdGgiLCAiJGpxdWVyeVVJRGlhbG9nIiwgInNpdGVDb21tb24iLCAiY29uZmlnS2V5IiwgInNldCIsICJnZXRCb2R5Il0KfQo= +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL1NpdGVDb21tb25fSlMvbW9kdWxlcy9jb3JlLnRzeCIsICJzcmMvU2l0ZUNvbW1vbl9KUy9tb2R1bGVzL2kxOG4udHMiLCAic3JjL1NpdGVDb21tb25fSlMvbW9kdWxlcy90aXBweS50cyIsICJzcmMvU2l0ZUNvbW1vbl9KUy9tb2R1bGVzL2RlcHJlY2F0ZWRGdW5jdGlvbnMudHMiLCAic3JjL1NpdGVDb21tb25fSlMvU2l0ZUNvbW1vbl9KUy50cyIsICJzcmMvU2l0ZUNvbW1vbl9KUy9tb2R1bGVzL3Jlc2l6ZUpRdWVyeVVJLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQgUmVhY3QgZnJvbSAnZXh0LmdhZGdldC5KU1gnO1xuaW1wb3J0IHtnZXRNZXNzYWdlfSBmcm9tICcuL2kxOG4nO1xuaW1wb3J0IHt1bmlxdWVBcnJheX0gZnJvbSAnZXh0LmdhZGdldC5VdGlsJztcblxuY29uc3Qge3dnQWN0aW9uLCB3Z0Nhbm9uaWNhbFNwZWNpYWxQYWdlTmFtZSwgd2dOYW1lc3BhY2VOdW1iZXIsIHdnUGFnZU5hbWUsIHdnU2NyaXB0LCB3Z1VzZXJOYW1lfSA9IG13LmNvbmZpZy5nZXQoKTtcblxuY29uc3QgbG9hZFdpdGhVUkwgPSBhc3luYyAoKTogUHJvbWlzZTx2b2lkPiA9PiB7XG5cdGNvbnN0IFVSTF9XSVRIX0NTUzogc3RyaW5nIHwgbnVsbCA9IG13LnV0aWwuZ2V0UGFyYW1WYWx1ZSgnd2l0aENTUycpO1xuXHRjb25zdCBVUkxfV0lUSF9KUzogc3RyaW5nIHwgbnVsbCA9IG13LnV0aWwuZ2V0UGFyYW1WYWx1ZSgnd2l0aEpTJyk7XG5cdGNvbnN0IFVSTF9XSVRIX01PRFVMRTogc3RyaW5nIHwgbnVsbCA9IG13LnV0aWwuZ2V0UGFyYW1WYWx1ZSgnd2l0aE1vZHVsZScpO1xuXHQvKipcblx0ICogJndpdGhDU1M9IGFuZCAmd2l0aEpTPSBVUkwgcGFyYW1ldGVyc1xuXHQgKiBBbGxvdyB0byB0cnkgY3VzdG9tIHNjcmlwdHMgZnJvbSBNZWRpYVdpa2kgc3BhY2Vcblx0ICogd2l0aG91dCBlZGl0aW5nIHBlcnNvbmFsIC5jc3Mgb3IgLmpzIGZpbGVzXG5cdCAqL1xuXHRpZiAoVVJMX1dJVEhfQ1NTIHx8IFVSTF9XSVRIX0pTIHx8IFVSTF9XSVRIX01PRFVMRSkge1xuXHRcdGlmIChVUkxfV0lUSF9DU1MgJiYgL15NZWRpYVdpa2k6W14jJSY8PT5dKlxcLmNzcyQvLnRlc3QoVVJMX1dJVEhfQ1NTKSkge1xuXHRcdFx0bXcubG9hZGVyLmxvYWQoXG5cdFx0XHRcdG13LnV0aWwuZ2V0VXJsKFVSTF9XSVRIX0NTUywge1xuXHRcdFx0XHRcdGFjdGlvbjogJ3JhdycsXG5cdFx0XHRcdFx0Y3R5cGU6ICd0ZXh0L2NzcycsXG5cdFx0XHRcdFx0bWF4YWdlOiAnMzYwMCcsXG5cdFx0XHRcdFx0c21heGFnZTogJzM2MDAnLFxuXHRcdFx0XHR9KSxcblx0XHRcdFx0J3RleHQvY3NzJ1xuXHRcdFx0KTtcblx0XHR9XG5cdFx0aWYgKFVSTF9XSVRIX0pTIHx8IFVSTF9XSVRIX01PRFVMRSkge1xuXHRcdFx0Ly8gQHRzLWV4cGVjdC1lcnJvciBUUzYxMzNcblx0XHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcblx0XHRcdGNvbnN0IHJlcXVpcmUgPSBhd2FpdCBtdy5sb2FkZXIudXNpbmcoJ2V4dC5nYWRnZXQuU2l0ZUNvbW1vbl9KUycpO1xuXG5cdFx0XHRpZiAoVVJMX1dJVEhfSlMgJiYgL15NZWRpYVdpa2k6W14jJSY8PT5dKlxcLmpzJC8udGVzdChVUkxfV0lUSF9KUykpIHtcblx0XHRcdFx0bXcubG9hZGVyLmxvYWQoXG5cdFx0XHRcdFx0bXcudXRpbC5nZXRVcmwoVVJMX1dJVEhfSlMsIHtcblx0XHRcdFx0XHRcdGFjdGlvbjogJ3JhdycsXG5cdFx0XHRcdFx0XHRjdHlwZTogJ3RleHQvamF2YXNjcmlwdCcsXG5cdFx0XHRcdFx0XHRtYXhhZ2U6ICczNjAwJyxcblx0XHRcdFx0XHRcdHNtYXhhZ2U6ICczNjAwJyxcblx0XHRcdFx0XHR9KVxuXHRcdFx0XHQpO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAoVVJMX1dJVEhfTU9EVUxFICYmIC9eKGV4dFxcLigoPyEoZXh0XFwufFssfF0pKS4pKlssfF0/KSskLy50ZXN0KFVSTF9XSVRIX01PRFVMRSkpIHtcblx0XHRcdFx0Y29uc3QgbW9kdWxlcyA9IHVuaXF1ZUFycmF5KFVSTF9XSVRIX01PRFVMRS5zcGxpdCgvWyx8XS8pKTtcblx0XHRcdFx0bXcubG9hZGVyLmxvYWQobW9kdWxlcyk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdC8qKlxuXHQgKiBMb2FkIENTUyBhbmQgSlMgZmlsZXMgdGVtcG9yYXJpbHkgdGhyb3VnaCBVUkwuXG5cdCAqICZ1c2U9RmlsZTEuY3NzfEZpbGUyLmNzc3xGaWxlMy5qc1xuXHQgKi9cblx0Y29uc3QgVVJMX1VTRTogc3RyaW5nIHwgbnVsbCA9IG13LnV0aWwuZ2V0UGFyYW1WYWx1ZSgndXNlJyk7XG5cdGlmIChVUkxfVVNFKSB7XG5cdFx0Y29uc3Qgd2dVc2VyTmFtZUV4Y2FwZWQ6IHN0cmluZyA9IG13LnV0aWwuZXNjYXBlUmVnRXhwKHdnVXNlck5hbWUgPz8gJycpO1xuXHRcdGNvbnN0IFJFR0VYX0ZJTEU6IFJlZ0V4cCA9IG5ldyBSZWdFeHAoXG5cdFx0XHRgXig/Ok1lZGlhV2lraToke3dnVXNlck5hbWVFeGNhcGVkID8gYHxVc2VyOiR7d2dVc2VyTmFtZUV4Y2FwZWR9L2AgOiAnJ30pW14mPD49JSNdKlxcXFwuKGpzfGNzcykkYFxuXHRcdCk7XG5cdFx0Y29uc3QgUkVHRVhfRVhUOiBSZWdFeHAgPSAvXmV4dFxcLlteLF0rJC87XG5cdFx0Y29uc3QgcGF0aDogc3RyaW5nID0gd2dTY3JpcHQ7XG5cdFx0Y29uc3QgdXNlRmlsZXMgPSBVUkxfVVNFLnNwbGl0KC9bLHxdLyk7XG5cdFx0Zm9yIChjb25zdCB1c2VGaWxlIG9mIHVzZUZpbGVzKSB7XG5cdFx0XHRjb25zdCBuYW1lOiBzdHJpbmcgPSB1c2VGaWxlLnRvU3RyaW5nKCkudHJpbSgpO1xuXHRcdFx0Y29uc3Qgd2hhdDogc3RyaW5nW10gPSBSRUdFWF9GSUxFLmV4ZWMobmFtZSkgPz8gWycnLCAnJ107XG5cdFx0XHRzd2l0Y2ggKHdoYXRbMV0pIHtcblx0XHRcdFx0Y2FzZSAnY3NzJzpcblx0XHRcdFx0XHRtdy5sb2FkZXIubG9hZChgJHtwYXRofT9hY3Rpb249cmF3JmN0eXBlPXRleHQvY3NzJnRpdGxlPSR7ZW5jb2RlVVJJQ29tcG9uZW50KG5hbWUpfWApO1xuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRjYXNlICdqcyc6IHtcblx0XHRcdFx0XHQvLyBAdHMtZXhwZWN0LWVycm9yIFRTNjEzM1xuXHRcdFx0XHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcblx0XHRcdFx0XHRjb25zdCByZXF1aXJlID0gYXdhaXQgbXcubG9hZGVyLnVzaW5nKCdleHQuZ2FkZ2V0LlNpdGVDb21tb25fSlMnKTtcblx0XHRcdFx0XHRtdy5sb2FkZXIubG9hZChgJHtwYXRofT9hY3Rpb249cmF3JmN0eXBlPXRleHQvamF2YXNjcmlwdCZ0aXRsZT0ke2VuY29kZVVSSUNvbXBvbmVudChuYW1lKX1gKTtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0fVxuXHRcdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHRcdGlmIChSRUdFWF9FWFQudGVzdChuYW1lKSkge1xuXHRcdFx0XHRcdFx0Ly8gQHRzLWV4cGVjdC1lcnJvciBUUzYxMzNcblx0XHRcdFx0XHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcblx0XHRcdFx0XHRcdGNvbnN0IHJlcXVpcmUgPSBhd2FpdCBtdy5sb2FkZXIudXNpbmcoJ2V4dC5nYWRnZXQuU2l0ZUNvbW1vbl9KUycpO1xuXHRcdFx0XHRcdFx0bXcubG9hZGVyLmxvYWQobmFtZSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxufTtcblxuY29uc3QgaGlnaExpZ2h0UmV2ID0gKCRib2R5OiBKUXVlcnk8SFRNTEJvZHlFbGVtZW50Pik6IHZvaWQgPT4ge1xuXHQvKipcblx0ICogQWRkIGhpZ2hsaWdodCB0byByZXZpc2lvbnMgd2hlbiB1c2luZyBgJmhpbGlnaHQ9cmV2aWRgIG9yIGAmaGlnaGxpZ2h0PXJldmlkYFxuXHQgKi9cblx0Y29uc3QgVVJMX0hJR0hMSUdIVDogc3RyaW5nIHwgbnVsbCA9IG13LnV0aWwuZ2V0UGFyYW1WYWx1ZSgnaGlnaGxpZ2h0Jyk7XG5cdGNvbnN0IFVSTF9ISUxJR0hUOiBzdHJpbmcgfCBudWxsID0gbXcudXRpbC5nZXRQYXJhbVZhbHVlKCdoaWxpZ2h0Jyk7XG5cdGNvbnN0IGhpZ2hsaWdodDogc3RyaW5nIHwgbnVsbCA9IFVSTF9ISUdITElHSFQgPz8gVVJMX0hJTElHSFQ7XG5cblx0aWYgKCFoaWdobGlnaHQgfHwgd2dBY3Rpb24gIT09ICdoaXN0b3J5Jykge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGZvciAoY29uc3QgdmVyc2lvbiBvZiBoaWdobGlnaHQuc3BsaXQoJywnKSkge1xuXHRcdCRib2R5LmZpbmQoYGlucHV0W25hbWU9b2xkaWRdW3ZhbHVlPSR7dmVyc2lvbn1dYCkucGFyZW50KCkuYWRkQ2xhc3MoJ25vdC1wYXRyb2xsZWQnKTtcblx0fVxufTtcblxuY29uc3QgYWRkVGFyZ2V0QmxhbmsgPSAoJGJvZHk6IEpRdWVyeTxIVE1MQm9keUVsZW1lbnQ+KTogdm9pZCA9PiB7XG5cdC8qKlxuXHQgKiBBZGQgdGFyZ2V0PVwiYmxhbmtcIiB0byBleHRlcm5hbCBsaW5rc1xuXHQgKi9cblx0JGJvZHkuZmluZDxIVE1MQW5jaG9yRWxlbWVudD4oJ2EuZXh0ZXJuYWwsIGFbcmVsPVwibXc6RXh0TGlua1wiXScpLmZpbHRlcigoX2luZGV4LCBlbGVtZW50KTogYm9vbGVhbiA9PiB7XG5cdFx0Y29uc3QgbGlua0hyZWY6IHN0cmluZyB8IHVuZGVmaW5lZCA9ICQoZWxlbWVudCkuYXR0cignaHJlZicpO1xuXHRcdGlmIChsaW5rSHJlZikge1xuXHRcdFx0Y29uc3QgaHJlZlNwbGl0OiBzdHJpbmdbXSA9IGxpbmtIcmVmLnNwbGl0KCcvJyk7XG5cdFx0XHRpZiAoaHJlZlNwbGl0Lmxlbmd0aCA8IDMgfHwgaHJlZlNwbGl0WzJdID09PSBsb2NhdGlvbi5ob3N0KSB7XG5cdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRpZiAoZWxlbWVudC5ocmVmLmluY2x1ZGVzKGAke2xvY2F0aW9uLnByb3RvY29sfS8vJHtsb2NhdGlvbi5ob3N0bmFtZX1gKSkge1xuXHRcdFx0ZWxlbWVudC50YXJnZXQgPSAnX2JsYW5rJztcblx0XHRcdGlmICghZWxlbWVudC5yZWwuaW5jbHVkZXMoJ25vb3BlbmVyJykpIHtcblx0XHRcdFx0ZWxlbWVudC5yZWwgKz0gJyBub29wZW5lcic7XG5cdFx0XHR9XG5cdFx0XHRpZiAoIWVsZW1lbnQucmVsLmluY2x1ZGVzKCdub3JlZmVycmVyJykpIHtcblx0XHRcdFx0ZWxlbWVudC5yZWwgKz0gJyBub3JlZmVycmVyJztcblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gdHJ1ZTtcblx0fSk7XG59O1xuXG5jb25zdCByZW1vdmVUaXRsZUZyb21QZXJtYWxpbmsgPSAoJGJvZHk6IEpRdWVyeTxIVE1MQm9keUVsZW1lbnQ+KTogdm9pZCA9PiB7XG5cdC8qKlxuXHQgKiBSZW1vdmUgdGl0bGU9KiBmcm9tIHBlcm1hbGlua1xuXHQgKi9cblx0Y29uc3QgJHBlcm1hTGluazogSlF1ZXJ5ID0gJGJvZHkuZmluZCgnI3QtcGVybWFsaW5rJyk7XG5cdGlmICghJHBlcm1hTGluay5sZW5ndGgpIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRjb25zdCAkcGVybWFMaW5rRmlyc3RDaGlsZDogSlF1ZXJ5PEhUTUxBbmNob3JFbGVtZW50PiA9ICRwZXJtYUxpbmsuZmluZDxIVE1MQW5jaG9yRWxlbWVudD4oJzpmaXJzdC1jaGlsZCcpO1xuXG5cdGNvbnN0IGhyZWY6IHN0cmluZyB8IHVuZGVmaW5lZCA9ICRwZXJtYUxpbmtGaXJzdENoaWxkLmF0dHIoJ2hyZWYnKT8ucmVwbGFjZSgvdGl0bGU9W14mXSomLywgJycpO1xuXHRpZiAoIWhyZWYpIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHQkcGVybWFMaW5rRmlyc3RDaGlsZC5hdHRyKCdocmVmJywgaHJlZik7XG59O1xuXG5jb25zdCBvcGVuU2VhcmNoSW5OZXdUYWIgPSAoJGJvZHk6IEpRdWVyeTxIVE1MQm9keUVsZW1lbnQ+KTogdm9pZCA9PiB7XG5cdC8qKlxuXHQgKiBPcGVuIHNlYXJjaCByZXN1bHRzIGluIGEgbmV3IHRhYiBvciB3aW5kb3dcblx0ICogd2hlbiBob2xkaW5nIGRvd24gdGhlIEN0cmwga2V5IChieSBUaW1lc2hpZnRlcilcblx0ICovXG5cdCRib2R5XG5cdFx0LmZpbmQoWycjc2VhcmNoJywgJyNzZWFyY2hib3gnLCAnI3NlYXJjaGZvcm0nLCAnLnNlYXJjaC10eXBlcycsICcjc2VhcmNoLXR5cGVzJ10uam9pbignLCcpKVxuXHRcdC5vbigna2V5ZG93biBrZXl1cCBtb3VzZWRvd24nLCAoZXZlbnQ6IEpRdWVyeS5UcmlnZ2VyZWRFdmVudDxIVE1MRWxlbWVudD4pOiB2b2lkID0+IHtcblx0XHRcdGNvbnN0IHtjdHJsS2V5LCBtZXRhS2V5LCB0YXJnZXR9ID0gZXZlbnQ7XG5cdFx0XHQkKHRhcmdldCkuYXR0cigndGFyZ2V0JywgKGN0cmxLZXkgPz8gbWV0YUtleSkgPyAnX2JsYW5rJyA6ICcnKTtcblx0XHR9KTtcbn07XG5cbmNvbnN0IHRpdGxlQ2xlYW5VcCA9ICgkYm9keTogSlF1ZXJ5PEhUTUxCb2R5RWxlbWVudD4pOiB2b2lkID0+IHtcblx0LyoqXG5cdCAqIENsZWFudXAgdGl0bGUgZm9yIGFsbCBwYWdlc1xuXHQgKi9cblx0Y29uc3QgVVJMX0RJRkY6IHN0cmluZyB8IG51bGwgPSBtdy51dGlsLmdldFBhcmFtVmFsdWUoJ2RpZmYnKTtcblx0aWYgKFVSTF9ESUZGIHx8IHdnQWN0aW9uICE9PSAndmlldycgfHwgIVs2LCAxMThdLmluY2x1ZGVzKHdnTmFtZXNwYWNlTnVtYmVyKSkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGNvbnN0IGZ1bGxQYWdlTmFtZTogc3RyaW5nID0gbmV3IG13LlRpdGxlKHdnUGFnZU5hbWUpLmdldFByZWZpeGVkVGV4dCgpO1xuXHRjb25zdCAkZmlyc3RIZWFkaW5nOiBKUXVlcnkgPSAkYm9keS5maW5kKCcuZmlyc3RIZWFkaW5nJyk7XG5cdGNvbnN0IGRvY3VtZW50VGl0bGU6IHN0cmluZyA9IGRvY3VtZW50LnRpdGxlO1xuXHRjb25zdCBwYWdlVGl0bGU6IHN0cmluZyA9ICRmaXJzdEhlYWRpbmcudGV4dCgpO1xuXG5cdGNvbnN0IHJlcGxhY2VUaXRsZSA9ICh0aXRsZTogc3RyaW5nKTogc3RyaW5nID0+IHRpdGxlLnJlcGxhY2UocGFnZVRpdGxlLCBmdWxsUGFnZU5hbWUpO1xuXG5cdGRvY3VtZW50LnRpdGxlID0gcmVwbGFjZVRpdGxlKGRvY3VtZW50VGl0bGUpO1xuXHQkZmlyc3RIZWFkaW5nLnRleHQocmVwbGFjZVRpdGxlKHBhZ2VUaXRsZSkpO1xufTtcblxuY29uc3QgdW5paGFuUG9wdXAgPSBhc3luYyAoJGJvZHk6IEpRdWVyeTxIVE1MQm9keUVsZW1lbnQ+KTogUHJvbWlzZTx2b2lkPiA9PiB7XG5cdC8qKlxuXHQgKiBEaXNwbGF5IHRpdGxlPSguKikgb2YgPHNwYW4gY2xhc3M9XCJpbmxpbmUtdW5paGFuXCI+IGFmdGVyIHRoZW0uXG5cdCAqIChiZXRhIHRlc3QpXG5cdCAqL1xuXHQvLyBEbyBub3QgZGlzcGxheSBvbiBTcGVjaWFsIFBhZ2VzXG5cdGlmICh3Z05hbWVzcGFjZU51bWJlciA8IDApIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRhd2FpdCBtdy5sb2FkZXIudXNpbmcoJ29vanMtdWktY29yZScpO1xuXG5cdGZvciAoY29uc3QgZWxlbWVudCBvZiAkYm9keS5maW5kKCdhdHRyLCAuaW5saW5lLXVuaWhhbicpKSB7XG5cdFx0Y29uc3QgJGVsZW1lbnQ6IEpRdWVyeSA9ICQoZWxlbWVudCk7XG5cblx0XHRjb25zdCB0aXRsZTogc3RyaW5nIHwgdW5kZWZpbmVkID0gJGVsZW1lbnQuYXR0cigndGl0bGUnKTtcblx0XHRpZiAoIXRpdGxlKSB7XG5cdFx0XHRjb250aW51ZTtcblx0XHR9XG5cblx0XHRjb25zdCBwb3B1cDogT08udWkuUG9wdXBXaWRnZXQgPSBuZXcgT08udWkuUG9wdXBXaWRnZXQoe1xuXHRcdFx0JGNvbnRlbnQ6ICQoPHA+e3RpdGxlfTwvcD4pIGFzIEpRdWVyeSxcblx0XHRcdGxhYmVsOiBnZXRNZXNzYWdlKCdOb3RlJyksXG5cdFx0XHRhbmNob3I6IHRydWUsXG5cdFx0XHRoZWFkOiB0cnVlLFxuXHRcdFx0cGFkZGVkOiB0cnVlLFxuXHRcdH0pO1xuXG5cdFx0JGJvZHkuYXBwZW5kKHBvcHVwLiRlbGVtZW50KTtcblxuXHRcdCRlbGVtZW50Lm9uKCdjbGljaycsICgpOiB2b2lkID0+IHtcblx0XHRcdHBvcHVwLnRvZ2dsZSgpO1xuXHRcdH0pO1xuXHR9XG59O1xuXG5jb25zdCBmaXhMb2NhdGlvbkhhc2ggPSAoKTogdm9pZCA9PiB7XG5cdC8qIOS/ruato+aKmOWPoOWQjuWumuS9jeWPmOWMliAqL1xuXHRpZiAobG9jYXRpb24uaGFzaCkge1xuXHRcdGxvY2F0aW9uLmhyZWYgPSBsb2NhdGlvbi5oYXNoO1xuXHR9XG59O1xuXG5jb25zdCBoaWRlTmV3VXNlcnNMb2cgPSAoJGJvZHk6IEpRdWVyeTxIVE1MQm9keUVsZW1lbnQ+KTogdm9pZCA9PiB7XG5cdC8qIOS4tOaXtu+8muemgeatoueUqOaIt+afpeeci+eUqOaIt+WIm+W7uuaXpeW/lyAqL1xuXHRpZiAod2dDYW5vbmljYWxTcGVjaWFsUGFnZU5hbWUgIT09ICdMb2cnKSB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0Y29uc3QgJG5ld1VzZXJzTG9nOiBKUXVlcnkgPSAkYm9keS5maW5kKCdpbnB1dFtuYW1lPVwid3BmaWx0ZXJzW11cIl1bdmFsdWU9bmV3dXNlcnNdJyk7XG5cdCRuZXdVc2Vyc0xvZy5wcm9wKHtcblx0XHRjaGVja2VkOiBmYWxzZSxcblx0XHRkaXNhYmxlZDogdHJ1ZSxcblx0fSk7XG59O1xuXG5jb25zdCB0b2dnbGVMaW5rID0gKCRib2R5OiBKUXVlcnk8SFRNTEJvZHlFbGVtZW50Pik6IHZvaWQgPT4ge1xuXHQvKiDosIPmlbTmipjlj6DmjInpkq7nmoTpopzoibIgKi9cblx0Y29uc3QgJHRvZ2dsZXI6IEpRdWVyeSA9ICRib2R5LmZpbmQoJy5tdy1jb2xsYXBzaWJsZS10b2dnbGUsIC5nYWRnZXQtY29sbGFwc2libGUtdG9nZ2xlcicpO1xuXHRpZiAoISR0b2dnbGVyLmxlbmd0aCkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGlmICgkdG9nZ2xlci5wYXJlbnQoKVswXT8uc3R5bGUuY29sb3IpIHtcblx0XHQkdG9nZ2xlci5maW5kKCdhJykuY3NzKCdjb2xvcicsICdpbmhlcml0Jyk7XG5cdH1cbn07XG5cbmV4cG9ydCB7XG5cdGxvYWRXaXRoVVJMLFxuXHRoaWdoTGlnaHRSZXYsXG5cdGFkZFRhcmdldEJsYW5rLFxuXHRyZW1vdmVUaXRsZUZyb21QZXJtYWxpbmssXG5cdG9wZW5TZWFyY2hJbk5ld1RhYixcblx0dGl0bGVDbGVhblVwLFxuXHR1bmloYW5Qb3B1cCxcblx0Zml4TG9jYXRpb25IYXNoLFxuXHRoaWRlTmV3VXNlcnNMb2csXG5cdHRvZ2dsZUxpbmssXG59O1xuIiwgImltcG9ydCB7bG9jYWxpemV9IGZyb20gJ2V4dC5nYWRnZXQuaTE4bic7XG5cbmNvbnN0IGdldEkxOG5NZXNzYWdlcyA9ICgpID0+IHtcblx0Y29uc3Qge3dnVUxTfSA9IHdpbmRvdztcblx0cmV0dXJuIHtcblx0XHROb3RlOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ05vdGU6ICcsXG5cdFx0XHQnemgtaGFucyc6ICfms6jph4rvvJonLFxuXHRcdFx0J3poLWhhbnQnOiAn5rOo6YeL77yaJyxcblx0XHR9KSxcblx0XHROb1Blcm1FcnJvcjA6IHdnVUxTKFxuXHRcdFx0J+WboOaKgOacr+WOn+WboO+8jOaCqOayoeacieadg+mZkOiuv+mXruebuOWFs+mhtemdouOAguiLpeacieeWkemXru+8jOivt+S4juaxgumXu+eZvuenkei/kOiQpeiAheiBlOezu+OAgicsXG5cdFx0XHQn5Zug5oqA6KGT5Y6f5Zug77yM5oKo5rKS5pyJ5qyK6ZmQ6Kiq5ZWP55u46Zec6aCB6Z2i44CC6Iul5pyJ55aR5ZWP77yM6KuL6IiH5rGC6IGe55m+56eR6YGL54ef6ICF6IGv57O744CCJ1xuXHRcdCksXG5cdFx0Tm9QZXJtRXJyb3IxOiB3Z1VMUyhcblx0XHRcdCfmgqjmsqHmnInmnYPpmZDorr/pl67nm7jlhbPpobXpnaLjgILoi6XmgqjmmK/otYTmt7HnvJbogIXvvIzor7fkuI7msYLpl7vnmb7np5HmioDmnK/lm6LpmJ/ogZTns7vvvIzku6Xojrflj5bmnYPpmZDjgIInLFxuXHRcdFx0J+aCqOaykuacieasiumZkOioquWVj+ebuOmXnOmggemdouOAguiLpeaCqOaYr+izh+a3see3qOiAhe+8jOiri+iIh+axguiBnueZvuenkeaKgOihk+WcmOmaiuiBr+ezu++8jOS7peeNsuWPluasiumZkOOAgidcblx0XHQpLFxuXHRcdE5vUGVybUVycm9yMjogd2dVTFMoXG5cdFx0XHQn5oKo55qE572R57uc546v5aKD5a2Y5Zyo6aOO6Zmp77yM6K+355m75b2V5ZCO57un57ut5L2/55So44CC6Iul5oKo5rKh5pyJ5rGC6Ze755m+56eR6LSm5Y+377yM6K+35rOo5YaM5ZCO55m75b2V44CCJyxcblx0XHRcdCfmgqjnmoTntrLot6/nkrDlooPlrZjlnKjpoqjpmqrvvIzoq4vnmbvlhaXlvoznubznuozkvb/nlKjjgILoi6XmgqjmspLmnInmsYLogZ7nmb7np5Hos6zomZ/vvIzoq4vms6jlhorlvoznmbvpjITjgIInXG5cdFx0KSxcblx0XHROb1Blcm1FcnJvcjM6IHdnVUxTKFxuXHRcdFx0J+ebuOWFs+WKn+iDveS7heWQkeazqOWGjOeUqOaIt+W8gOaUvu+8jOivt+eZu+W9leWQjue7p+e7reS9v+eUqOOAguiLpeaCqOayoeacieaxgumXu+eZvuenkei0puWPt++8jOivt+azqOWGjOWQjueZu+W9leOAgicsXG5cdFx0XHQn55u46Zec5Yqf6IO95YOF5ZCR5rOo5YaK55So5oi26ZaL5pS+77yM6KuL55m75YWl5b6M57m857qM5L2/55So44CC6Iul5oKo5rKS5pyJ5rGC6IGe55m+56eR6LOs6Jmf77yM6KuL5rOo5YaK5b6M55m76YyE44CCJ1xuXHRcdCksXG5cdFx0Tm9QZXJtRXJyb3I0OiB3Z1VMUyhcblx0XHRcdCfmgqjmsqHmnInmnYPpmZDorr/pl67nm7jlhbPpobXpnaLjgILoi6XmnInnlpHpl67vvIzor7fkuI7msYLpl7vnmb7np5Hov5DokKXogIXogZTns7vjgIInLFxuXHRcdFx0J+aCqOaykuacieasiumZkOioquWVj+ebuOmXnOmggemdouOAguiLpeacieeWkeWVj++8jOiri+iIh+axguiBnueZvuenkemBi+eHn+iAheiBr+ezu+OAgidcblx0XHQpLFxuXHR9O1xufTtcblxuY29uc3QgaTE4bk1lc3NhZ2VzID0gZ2V0STE4bk1lc3NhZ2VzKCk7XG5cbmNvbnN0IGdldE1lc3NhZ2U6IEdldE1lc3NhZ2VzPHR5cGVvZiBpMThuTWVzc2FnZXM+ID0gKGtleSkgPT4ge1xuXHRyZXR1cm4gaTE4bk1lc3NhZ2VzW2tleV0gfHwga2V5O1xufTtcblxuZXhwb3J0IHtnZXRNZXNzYWdlfTtcbiIsICJpbXBvcnQge3RpcHB5fSBmcm9tICdleHQuZ2FkZ2V0LlRpcHB5JztcblxuY29uc3QgZ2V0Q29udGVudCA9IChyZWZlcmVuY2U6IEVsZW1lbnQpOiBzdHJpbmcgPT4ge1xuXHRjb25zdCBsYWJlbDogc3RyaW5nIHwgbnVsbCA9IHJlZmVyZW5jZS5nZXRBdHRyaWJ1dGUoJ2FyaWEtbGFiZWwnKTtcblx0Y29uc3QgdGl0bGU6IHN0cmluZyB8IG51bGwgPSByZWZlcmVuY2UuZ2V0QXR0cmlidXRlKCdhbHQnKSA/PyByZWZlcmVuY2UuZ2V0QXR0cmlidXRlKCd0aXRsZScpO1xuXG5cdHJldHVybiAobGFiZWwgPT09IHRpdGxlID8gbGFiZWwgOiB0aXRsZSB8fCBsYWJlbCkgfHwgKHJlZmVyZW5jZS50ZXh0Q29udGVudCBhcyBzdHJpbmcpO1xufTtcblxuY29uc3Qgb25DcmVhdGVDYWxsYmFjayA9IChpbnN0YW5jZTogUmV0dXJuVHlwZTx0eXBlb2YgdGlwcHk+WzBdKTogdm9pZCA9PiB7XG5cdGNvbnN0IHtyZWZlcmVuY2V9ID0gaW5zdGFuY2U7XG5cdHJlZmVyZW5jZS5zZXRBdHRyaWJ1dGUoJ2FyaWEtbGFiZWwnLCBnZXRDb250ZW50KHJlZmVyZW5jZSkpO1xuXHRyZWZlcmVuY2UucmVtb3ZlQXR0cmlidXRlKCd0aXRsZScpO1xufTtcblxuY29uc3Qgb25TaG93Q2FsbGJhY2sgPSAoaW5zdGFuY2U6IFJldHVyblR5cGU8dHlwZW9mIHRpcHB5PlswXSk6IHZvaWQgPT4ge1xuXHRvbkNyZWF0ZUNhbGxiYWNrKGluc3RhbmNlKTtcblx0aW5zdGFuY2Uuc2V0Q29udGVudChnZXRDb250ZW50KGluc3RhbmNlLnJlZmVyZW5jZSkpO1xufTtcblxuY29uc3QgdGlwcHlGb3JDaXRpemVuSGVhZGVyID0gKCRib2R5OiBKUXVlcnk8SFRNTEJvZHlFbGVtZW50Pik6IHZvaWQgPT4ge1xuXHRjb25zdCB7c2tpbn0gPSBtdy5jb25maWcuZ2V0KCk7XG5cdGlmIChza2luICE9PSAnY2l0aXplbicpIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRmb3IgKGNvbnN0IGVsZW1lbnQgb2YgJGJvZHkuZmluZChcblx0XHRbXG5cdFx0XHQnLmNpdGl6ZW4taGVhZGVyIC5jaXRpemVuLWRyb3Bkb3duLXN1bW1hcnknLFxuXHRcdFx0Jy5jaXRpemVuLWhlYWRlciAuY2l0aXplbi1lY2hvLW5vdGlmaWNhdGlvbi1iYWRnZScsXG5cdFx0XHQnLmNpdGl6ZW4taGVhZGVyX19sb2dvIGEnLFxuXHRcdFx0Jy5wYWdlLWFjdGlvbnM+bmF2PnVsPmxpIGEnLFxuXHRcdFx0Jy5wYWdlLWFjdGlvbnNfX2J1dHRvbicsXG5cdFx0XS5qb2luKCcsJylcblx0KSkge1xuXHRcdGNvbnN0ICRlbGVtZW50OiBKUXVlcnkgPSAkKGVsZW1lbnQpO1xuXHRcdGxldCB0aXRsZTogc3RyaW5nIHwgdW5kZWZpbmVkID0gJGVsZW1lbnQuYXR0cigndGl0bGUnKTtcblx0XHRpZiAoIXRpdGxlKSB7XG5cdFx0XHRjb250aW51ZTtcblx0XHR9XG5cblx0XHR0aXRsZSA9IHRpdGxlLnJlcGxhY2UoL1xccyo/XFxbLis/XSQvLCAnJyk7XG5cblx0XHQkZWxlbWVudC5hdHRyKHtcblx0XHRcdCdhcmlhLWxhYmVsJzogdGl0bGUsXG5cdFx0XHR0aXRsZTogJycsXG5cdFx0fSk7XG5cdFx0dGlwcHkoJGVsZW1lbnQuZ2V0KDApIGFzIEhUTUxFbGVtZW50LCB7XG5cdFx0XHRhcnJvdzogdHJ1ZSxcblx0XHRcdGNvbnRlbnQ6IHRpdGxlLFxuXHRcdFx0cGxhY2VtZW50OiAnYm90dG9tJyxcblx0XHRcdG9uQ3JlYXRlOiBvbkNyZWF0ZUNhbGxiYWNrLFxuXHRcdFx0b25IaWRkZW46IG9uQ3JlYXRlQ2FsbGJhY2ssXG5cdFx0XHRvblNob3c6IG9uU2hvd0NhbGxiYWNrLFxuXHRcdH0pO1xuXHR9XG59O1xuXG5jb25zdCB0aXBweUZvckV4dGVuc2lvbiA9IGFzeW5jICgpOiBQcm9taXNlPHZvaWQ+ID0+IHtcblx0Y29uc3Qge3NraW59ID0gbXcuY29uZmlnLmdldCgpO1xuXHRpZiAoc2tpbiA9PT0gJ3ZlY3Rvci0yMDIyJykge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGF3YWl0IG13LmxvYWRlci51c2luZygnZXh0LkNvbGxhcHNpYmxlU2lkZWJhci5qcycpO1xuXHR0aXBweSgnI3NpZGViYXJCdXR0b24nLCB7XG5cdFx0YXJyb3c6IHRydWUsXG5cdFx0Y29udGVudDogZ2V0Q29udGVudCxcblx0XHRwbGFjZW1lbnQ6ICdsZWZ0Jyxcblx0XHRvbkNyZWF0ZTogb25DcmVhdGVDYWxsYmFjayxcblx0XHRvbkhpZGRlbjogb25DcmVhdGVDYWxsYmFjayxcblx0XHRvblNob3c6IG9uU2hvd0NhbGxiYWNrLFxuXHR9KTtcblxuXHRpZiAoc2tpbiA9PT0gJ3ZlY3RvcicpIHtcblx0XHRhd2FpdCBtdy5sb2FkZXIudXNpbmcoJ2V4dC5Db2xsYXBzaWJsZVNpZGViYXIudmVjdG9yJyk7XG5cdFx0dGlwcHkoJyNzaWRlYmFyQ29sbGFwc2UnLCB7XG5cdFx0XHRhcnJvdzogdHJ1ZSxcblx0XHRcdGNvbnRlbnQ6IGdldENvbnRlbnQsXG5cdFx0XHRwbGFjZW1lbnQ6ICdyaWdodCcsXG5cdFx0XHRvbkNyZWF0ZTogb25DcmVhdGVDYWxsYmFjayxcblx0XHRcdG9uSGlkZGVuOiBvbkNyZWF0ZUNhbGxiYWNrLFxuXHRcdFx0b25TaG93OiBvblNob3dDYWxsYmFjayxcblx0XHR9KTtcblx0fVxuXG5cdGF3YWl0IG13LmxvYWRlci51c2luZygnZXh0LkRhcmtNb2RlJyk7XG5cdHRpcHB5KCcjZGFya21vZGUtYnV0dG9uJywge1xuXHRcdGFycm93OiB0cnVlLFxuXHRcdGNvbnRlbnQ6IGdldENvbnRlbnQsXG5cdFx0cGxhY2VtZW50OiAnbGVmdCcsXG5cdFx0b25DcmVhdGU6IG9uQ3JlYXRlQ2FsbGJhY2ssXG5cdFx0b25IaWRkZW46IG9uQ3JlYXRlQ2FsbGJhY2ssXG5cdFx0b25TaG93OiBvblNob3dDYWxsYmFjayxcblx0fSk7XG59O1xuXG5leHBvcnQge3RpcHB5Rm9yQ2l0aXplbkhlYWRlciwgdGlwcHlGb3JFeHRlbnNpb259O1xuIiwgImNvbnN0IGRlcHJlY2F0ZWRGdW5jdGlvbnMgPSAoKTogdm9pZCA9PiB7XG5cdC8qIVxuXHQgKiBtYWludGVuYW5jZTogU29tZSB1c2VyIHNjcmlwdHMgbWF5IGJlIHVzaW5nIHRoZSBmb2xsb3dpbmcgZGVwcmVjYXRlZCBmdW5jdGlvbnMuXG5cdCAqIFRoZXNlIGZ1bmN0aW9ucyBhcmUgbm8gbG9uZ2VyIHN1cHBvcnRlZCBhbmQgc2hvdWxkIGJlIHVwZGF0ZWQuXG5cdCAqL1xuXHRtdy5sb2cuZGVwcmVjYXRlKFxuXHRcdHdpbmRvdyxcblx0XHQnaW1wb3J0U2NyaXB0Jyxcblx0XHQodGl0bGU6IHN0cmluZyk6IEhUTUxTY3JpcHRFbGVtZW50ID0+IHtcblx0XHRcdHJldHVybiBtdy5sb2FkZXIuYWRkU2NyaXB0VGFnKFxuXHRcdFx0XHRtdy51dGlsLmdldFVybCh0aXRsZSwge1xuXHRcdFx0XHRcdGFjdGlvbjogJ3JhdycsXG5cdFx0XHRcdFx0Y3R5cGU6ICd0ZXh0L2phdmFzY3JpcHQnLFxuXHRcdFx0XHRcdG1heGFnZTogJzM2MDAnLFxuXHRcdFx0XHRcdHNtYXhhZ2U6ICczNjAwJyxcblx0XHRcdFx0fSlcblx0XHRcdCk7XG5cdFx0fSxcblx0XHQnVXNlIG13LmxvYWRlci5hZGRTY3JpcHRUYWcoKSBpbnN0ZWFkJ1xuXHQpO1xuXG5cdG13LmxvZy5kZXByZWNhdGUoXG5cdFx0d2luZG93LFxuXHRcdCdpbXBvcnRTdHlsZXNoZWV0Jyxcblx0XHQodGl0bGU6IHN0cmluZyk6IEhUTUxMaW5rRWxlbWVudCA9PiB7XG5cdFx0XHRyZXR1cm4gbXcubG9hZGVyLmFkZExpbmtUYWcoXG5cdFx0XHRcdG13LnV0aWwuZ2V0VXJsKHRpdGxlLCB7XG5cdFx0XHRcdFx0YWN0aW9uOiAncmF3Jyxcblx0XHRcdFx0XHRjdHlwZTogJ3RleHQvY3NzJyxcblx0XHRcdFx0XHRtYXhhZ2U6ICczNjAwJyxcblx0XHRcdFx0XHRzbWF4YWdlOiAnMzYwMCcsXG5cdFx0XHRcdH0pLFxuXHRcdFx0XHQndGV4dC9jc3MnXG5cdFx0XHQpO1xuXHRcdH0sXG5cdFx0J1VzZSBtdy5sb2FkZXIuYWRkTGlua1RhZygpIGluc3RlYWQnXG5cdCk7XG5cblx0bXcubG9nLmRlcHJlY2F0ZShcblx0XHR3aW5kb3csXG5cdFx0J2ltcG9ydFNjcmlwdFVSSScsXG5cdFx0KG1vZHVsZXM6IHN0cmluZyk6IEhUTUxTY3JpcHRFbGVtZW50ID0+IHtcblx0XHRcdHJldHVybiBtdy5sb2FkZXIuYWRkU2NyaXB0VGFnKG13LnV0aWwud2lraVVybGVuY29kZShtb2R1bGVzKSk7XG5cdFx0fSxcblx0XHQnVXNlIG13LmxvYWRlci5hZGRTY3JpcHRUYWcoKSBvciBtdy5sb2FkZXIuZ2V0U2NyaXB0KCkgaW5zdGVhZCdcblx0KTtcblxuXHRtdy5sb2cuZGVwcmVjYXRlKFxuXHRcdHdpbmRvdyxcblx0XHQnaW1wb3J0U3R5bGVzaGVldFVSSScsXG5cdFx0KG1vZHVsZXM6IHN0cmluZyk6IEhUTUxMaW5rRWxlbWVudCA9PiB7XG5cdFx0XHRyZXR1cm4gbXcubG9hZGVyLmFkZExpbmtUYWcobXcudXRpbC53aWtpVXJsZW5jb2RlKG1vZHVsZXMpLCAndGV4dC9jc3MnKTtcblx0XHR9LFxuXHRcdCdVc2UgbXcubG9hZGVyLmFkZExpbmtUYWcoKSBpbnN0ZWFkJ1xuXHQpO1xuXG5cdG13LmxvZy5kZXByZWNhdGUoXG5cdFx0d2luZG93LFxuXHRcdC8vIEB0cy1leHBlY3QtZXJyb3IgVFMyMzQ1XG5cdFx0J2ltcG9ydFNjcmlwdENhbGxiYWNrJyxcblx0XHQodGl0bGU6IHN0cmluZywgcmVhZHk6IG5ldmVyKTogdm9pZCA9PiB7XG5cdFx0XHR2b2lkIG13LmxvYWRlclxuXHRcdFx0XHQuZ2V0U2NyaXB0KFxuXHRcdFx0XHRcdG13LnV0aWwuZ2V0VXJsKHRpdGxlLCB7XG5cdFx0XHRcdFx0XHRhY3Rpb246ICdyYXcnLFxuXHRcdFx0XHRcdFx0Y3R5cGU6ICd0ZXh0L2phdmFzY3JpcHQnLFxuXHRcdFx0XHRcdFx0bWF4YWdlOiAnMzYwMCcsXG5cdFx0XHRcdFx0XHRzbWF4YWdlOiAnMzYwMCcsXG5cdFx0XHRcdFx0fSlcblx0XHRcdFx0KVxuXHRcdFx0XHQudGhlbihyZWFkeSk7XG5cdFx0fSxcblx0XHQnVXNlIG13LmxvYWRlci5nZXRTY3JpcHQoKSBpbnN0ZWFkJ1xuXHQpO1xuXG5cdG13LmxvZy5kZXByZWNhdGUoXG5cdFx0d2luZG93LFxuXHRcdC8vIEB0cy1leHBlY3QtZXJyb3IgVFMyMzQ1XG5cdFx0J2ltcG9ydFNjcmlwdFVSSUNhbGxiYWNrJyxcblx0XHQodXJsOiBzdHJpbmcsIHJlYWR5OiBuZXZlcik6IHZvaWQgPT4ge1xuXHRcdFx0dm9pZCBtdy5sb2FkZXIuZ2V0U2NyaXB0KHVybCkudGhlbihyZWFkeSk7XG5cdFx0fSxcblx0XHQnVXNlIG13LmxvYWRlci5nZXRTY3JpcHQoKSBpbnN0ZWFkJ1xuXHQpO1xuXHQvKipcblx0ICogbWFpbnRlbmFuY2U6IFNvbWUgdXNlciBzY3JpcHRzIG1heSBiZSB1c2luZyB0aGUgZm9sbG93aW5nIGRlcHJlY2F0ZWQgZnVuY3Rpb25zLlxuXHQgKiBUaGVzZSBmdW5jdGlvbnMgYXJlIGtlcHQgZm9yIGNvbXBhYmlsaXR5LlxuXHQgKi9cblx0Ly8gbXcubG9nLmRlcHJlY2F0ZSh3aW5kb3csICdKU0NvbmZpZycsIHt9LCAnVXNlIHt9IGluc3RlYWQnKTtcblx0LyoqXG5cdCAqIHdnVSpTIGZ1bmN0aW9ucyBoYXZlIGJlZW4gc3BsaXQgdG8gYSBzZXBlcmF0ZSBnYWRnZXQgKGV4dC5nYWRnZXQuaTE4bikuXG5cdCAqL1xufTtcblxuZXhwb3J0IHtkZXByZWNhdGVkRnVuY3Rpb25zfTtcbiIsICJpbXBvcnQge1xuXHRhZGRUYXJnZXRCbGFuayxcblx0Zml4TG9jYXRpb25IYXNoLFxuXHRoaWRlTmV3VXNlcnNMb2csXG5cdGhpZ2hMaWdodFJldixcblx0bG9hZFdpdGhVUkwsXG5cdG9wZW5TZWFyY2hJbk5ld1RhYixcblx0cmVtb3ZlVGl0bGVGcm9tUGVybWFsaW5rLFxuXHR0aXRsZUNsZWFuVXAsXG5cdHRvZ2dsZUxpbmssXG5cdHVuaWhhblBvcHVwLFxufSBmcm9tICcuL21vZHVsZXMvY29yZSc7XG5pbXBvcnQge3RpcHB5Rm9yQ2l0aXplbkhlYWRlciwgdGlwcHlGb3JFeHRlbnNpb259IGZyb20gJy4vbW9kdWxlcy90aXBweSc7XG5pbXBvcnQge2RlcHJlY2F0ZWRGdW5jdGlvbnN9IGZyb20gJy4vbW9kdWxlcy9kZXByZWNhdGVkRnVuY3Rpb25zJztcbmltcG9ydCB7Z2V0Qm9keX0gZnJvbSAnZXh0LmdhZGdldC5VdGlsJztcbmltcG9ydCB7cmVzaXplSlF1ZXJ5VUl9IGZyb20gJy4vbW9kdWxlcy9yZXNpemVKUXVlcnlVSSc7XG5cbihmdW5jdGlvbiBzaXRlQ29tbW9uKCk6IHZvaWQge1xuXHRjb25zdCBjb25maWdLZXk6IHN0cmluZyA9ICdnYWRnZXQtU2l0ZUNvbW1vbl9KU19fSW5pdGlhbGl6ZWQnO1xuXHRjb25zdCB7c2tpbn0gPSBtdy5jb25maWcuZ2V0KCk7XG5cblx0Ly8gR3VhcmQgYWdhaW5zdCBkb3VibGUgaW5jbHVzaW9uc1xuXHRpZiAobXcuY29uZmlnLmdldChjb25maWdLZXkpKSB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cdC8vIFNldCBndWFyZFxuXHRtdy5jb25maWcuc2V0KGNvbmZpZ0tleSwgdHJ1ZSk7XG5cblx0Ly8gQ29yZSBtb2R1bGVzXG5cdHZvaWQgbG9hZFdpdGhVUkwoKTtcblx0Zml4TG9jYXRpb25IYXNoKCk7XG5cblx0dm9pZCBnZXRCb2R5KCkudGhlbigoJGJvZHk6IEpRdWVyeTxIVE1MQm9keUVsZW1lbnQ+KTogdm9pZCA9PiB7XG5cdFx0Ly8gQ29yZSBtb2R1bGVzIChuZWVkICQucmVhZHkpXG5cdFx0aGlnaExpZ2h0UmV2KCRib2R5KTtcblx0XHRhZGRUYXJnZXRCbGFuaygkYm9keSk7XG5cdFx0cmVtb3ZlVGl0bGVGcm9tUGVybWFsaW5rKCRib2R5KTtcblx0XHRvcGVuU2VhcmNoSW5OZXdUYWIoJGJvZHkpO1xuXHRcdHRpdGxlQ2xlYW5VcCgkYm9keSk7XG5cdFx0dm9pZCB1bmloYW5Qb3B1cCgkYm9keSk7XG5cdFx0aGlkZU5ld1VzZXJzTG9nKCRib2R5KTtcblx0XHR0b2dnbGVMaW5rKCRib2R5KTtcblx0XHRyZXNpemVKUXVlcnlVSSgkYm9keSk7XG5cblx0XHQvLyBUaXBweS1yZWxhdGVkIGNvZGVzIChuZWVkICQucmVhZHkpXG5cdFx0aWYgKHNraW4gPT09ICdjaXRpemVuJykge1xuXHRcdFx0dGlwcHlGb3JDaXRpemVuSGVhZGVyKCRib2R5KTtcblx0XHR9XG5cdH0pO1xuXG5cdC8vIERlcHJlY2F0ZWQgZnVuY3Rpb25zXG5cdGRlcHJlY2F0ZWRGdW5jdGlvbnMoKTtcblxuXHQvLyBUaXBweS1yZWxhdGVkIGNvZGVzXG5cdGlmICghWyd2ZWN0b3ItMjAyMicsICdjaXRpemVuJ10uaW5jbHVkZXMoc2tpbikpIHtcblx0XHR2b2lkIHRpcHB5Rm9yRXh0ZW5zaW9uKCk7XG5cdH1cbn0pKCk7XG4iLCAiY29uc3QgcmVzaXplSlF1ZXJ5VUkgPSAoJGJvZHk6IEpRdWVyeTxIVE1MQm9keUVsZW1lbnQ+KTogdm9pZCA9PiB7XG5cdCQod2luZG93KS5vbigncmVzaXplJywgKCk6IHZvaWQgPT4ge1xuXHRcdGNvbnN0IHdpbmRvd1dpZHRoID0gJCh3aW5kb3cpLndpZHRoKCk7XG5cdFx0Y29uc3QgJGpxdWVyeVVJRGlhbG9nID0gJGJvZHkuZmluZCgnLnVpLWRpYWxvZycpO1xuXHRcdGlmICgkanF1ZXJ5VUlEaWFsb2cpIHtcblx0XHRcdCRqcXVlcnlVSURpYWxvZy5jc3MoJ21heC13aWR0aCcsIGBjYWxjKCR7d2luZG93V2lkdGh9cHggLSAyZW0pYCk7XG5cdFx0fVxuXHR9KTtcbn07XG5cbmV4cG9ydCB7cmVzaXplSlF1ZXJ5VUl9O1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxxQkFBa0JDLFFBQUFDLFFBQUEsZ0JBQUEsR0FBQSxDQUFBOztBQ0FsQixJQUFBQyxvQkFBdUJELFFBQUEsaUJBQUE7QUFFdkIsSUFBTUUsa0JBQWtCQSxNQUFNO0FBQzdCLFFBQU07SUFBQ0M7RUFBSyxJQUFJQztBQUNoQixTQUFPO0lBQ05DLE9BQUEsR0FBTUosa0JBQUFLLFVBQVM7TUFDZEMsSUFBSTtNQUNKLFdBQVc7TUFDWCxXQUFXO0lBQ1os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LEtBQUdDLE9BQU9pTCxJQUFJRCxXQUFXLElBQUk7QUFHN0IsT0FBSzlLLFlBQVk7QUFDakJ3SCxrQkFBZ0I7QUFFaEIsUUFBQSxHQUFLZ0QsbUJBQUFRLFNBQVEsRUFBRVYsS0FBTW5ILFdBQXlDO0FBRTdERCxpQkFBYUMsS0FBSztBQUNsQlUsbUJBQWVWLEtBQUs7QUFDcEIyQiw2QkFBeUIzQixLQUFLO0FBQzlCZ0MsdUJBQW1CaEMsS0FBSztBQUN4QnNDLGlCQUFhdEMsS0FBSztBQUNsQixTQUFLa0QsWUFBWWxELEtBQUs7QUFDdEJ1RSxvQkFBZ0J2RSxLQUFLO0FBQ3JCNEUsZUFBVzVFLEtBQUs7QUFDaEJzSCxtQkFBZXRILEtBQUs7QUFHcEIsUUFBSStGLFNBQVMsV0FBVztBQUN2QkQsNEJBQXNCOUYsS0FBSztJQUM1QjtFQUNELENBQUM7QUFHRDJHLHNCQUFvQjtBQUdwQixNQUFJLENBQUMsQ0FBQyxlQUFlLFNBQVMsRUFBRXJGLFNBQVN5RSxJQUFJLEdBQUc7QUFDL0MsU0FBS1Usa0JBQWtCO0VBQ3hCO0FBQ0QsR0FBRzsiLAogICJuYW1lcyI6IFsiaW1wb3J0X2V4dF9nYWRnZXQyIiwgIl9fdG9FU00iLCAicmVxdWlyZSIsICJpbXBvcnRfZXh0X2dhZGdldCIsICJnZXRJMThuTWVzc2FnZXMiLCAid2dVTFMiLCAid2luZG93IiwgIk5vdGUiLCAibG9jYWxpemUiLCAiZW4iLCAiTm9QZXJtRXJyb3IwIiwgIk5vUGVybUVycm9yMSIsICJOb1Blcm1FcnJvcjIiLCAiTm9QZXJtRXJyb3IzIiwgIk5vUGVybUVycm9yNCIsICJpMThuTWVzc2FnZXMiLCAiZ2V0TWVzc2FnZSIsICJrZXkiLCAiaW1wb3J0X2V4dF9nYWRnZXQzIiwgIndnQWN0aW9uIiwgIndnQ2Fub25pY2FsU3BlY2lhbFBhZ2VOYW1lIiwgIndnTmFtZXNwYWNlTnVtYmVyIiwgIndnUGFnZU5hbWUiLCAid2dTY3JpcHQiLCAid2dVc2VyTmFtZSIsICJtdyIsICJjb25maWciLCAiZ2V0IiwgImxvYWRXaXRoVVJMIiwgIl9yZWYiLCAiX2FzeW5jVG9HZW5lcmF0b3IiLCAiVVJMX1dJVEhfQ1NTIiwgInV0aWwiLCAiZ2V0UGFyYW1WYWx1ZSIsICJVUkxfV0lUSF9KUyIsICJVUkxfV0lUSF9NT0RVTEUiLCAidGVzdCIsICJsb2FkZXIiLCAibG9hZCIsICJnZXRVcmwiLCAiYWN0aW9uIiwgImN0eXBlIiwgIm1heGFnZSIsICJzbWF4YWdlIiwgInJlcXVpcmUyIiwgInVzaW5nIiwgIm1vZHVsZXMiLCAidW5pcXVlQXJyYXkiLCAic3BsaXQiLCAiVVJMX1VTRSIsICJ3Z1VzZXJOYW1lRXhjYXBlZCIsICJlc2NhcGVSZWdFeHAiLCAiUkVHRVhfRklMRSIsICJSZWdFeHAiLCAiY29uY2F0IiwgIlJFR0VYX0VYVCIsICJwYXRoIiwgInVzZUZpbGVzIiwgIl9pdGVyYXRvcjIiLCAiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIiLCAiX3N0ZXAyIiwgInMiLCAibiIsICJkb25lIiwgIl9SRUdFWF9GSUxFJGV4ZWMiLCAidXNlRmlsZSIsICJ2YWx1ZSIsICJuYW1lIiwgInRvU3RyaW5nIiwgInRyaW0iLCAid2hhdCIsICJleGVjIiwgImVuY29kZVVSSUNvbXBvbmVudCIsICJlcnIiLCAiZSIsICJmIiwgImFwcGx5IiwgImFyZ3VtZW50cyIsICJoaWdoTGlnaHRSZXYiLCAiJGJvZHkiLCAiVVJMX0hJR0hMSUdIVCIsICJVUkxfSElMSUdIVCIsICJoaWdobGlnaHQiLCAiX2l0ZXJhdG9yMyIsICJfc3RlcDMiLCAidmVyc2lvbiIsICJmaW5kIiwgInBhcmVudCIsICJhZGRDbGFzcyIsICJhZGRUYXJnZXRCbGFuayIsICJmaWx0ZXIiLCAiX2luZGV4IiwgImVsZW1lbnQiLCAibGlua0hyZWYiLCAiJCIsICJhdHRyIiwgImhyZWZTcGxpdCIsICJsZW5ndGgiLCAibG9jYXRpb24iLCAiaG9zdCIsICJocmVmIiwgImluY2x1ZGVzIiwgInByb3RvY29sIiwgImhvc3RuYW1lIiwgInRhcmdldCIsICJyZWwiLCAicmVtb3ZlVGl0bGVGcm9tUGVybWFsaW5rIiwgIl8kcGVybWFMaW5rRmlyc3RDaGlsZCIsICIkcGVybWFMaW5rIiwgIiRwZXJtYUxpbmtGaXJzdENoaWxkIiwgInJlcGxhY2UiLCAib3BlblNlYXJjaEluTmV3VGFiIiwgImpvaW4iLCAib24iLCAiZXZlbnQiLCAiY3RybEtleSIsICJtZXRhS2V5IiwgInRpdGxlQ2xlYW5VcCIsICJVUkxfRElGRiIsICJmdWxsUGFnZU5hbWUiLCAiVGl0bGUiLCAiZ2V0UHJlZml4ZWRUZXh0IiwgIiRmaXJzdEhlYWRpbmciLCAiZG9jdW1lbnRUaXRsZSIsICJkb2N1bWVudCIsICJ0aXRsZSIsICJwYWdlVGl0bGUiLCAidGV4dCIsICJyZXBsYWNlVGl0bGUiLCAidW5paGFuUG9wdXAiLCAiX3JlZjIiLCAiX2l0ZXJhdG9yNCIsICJfc3RlcDQiLCAiJGVsZW1lbnQiLCAicG9wdXAiLCAiT08iLCAidWkiLCAiUG9wdXBXaWRnZXQiLCAiJGNvbnRlbnQiLCAiZGVmYXVsdCIsICJjcmVhdGVFbGVtZW50IiwgImxhYmVsIiwgImFuY2hvciIsICJoZWFkIiwgInBhZGRlZCIsICJhcHBlbmQiLCAidG9nZ2xlIiwgIl94IiwgImZpeExvY2F0aW9uSGFzaCIsICJoYXNoIiwgImhpZGVOZXdVc2Vyc0xvZyIsICIkbmV3VXNlcnNMb2ciLCAicHJvcCIsICJjaGVja2VkIiwgImRpc2FibGVkIiwgInRvZ2dsZUxpbmsiLCAiXyR0b2dnbGVyJHBhcmVudCQiLCAiJHRvZ2dsZXIiLCAic3R5bGUiLCAiY29sb3IiLCAiY3NzIiwgImltcG9ydF9leHRfZ2FkZ2V0NCIsICJnZXRDb250ZW50IiwgInJlZmVyZW5jZSIsICJfcmVmZXJlbmNlJGdldEF0dHJpYnUiLCAiZ2V0QXR0cmlidXRlIiwgInRleHRDb250ZW50IiwgIm9uQ3JlYXRlQ2FsbGJhY2siLCAiaW5zdGFuY2UiLCAic2V0QXR0cmlidXRlIiwgInJlbW92ZUF0dHJpYnV0ZSIsICJvblNob3dDYWxsYmFjayIsICJzZXRDb250ZW50IiwgInRpcHB5Rm9yQ2l0aXplbkhlYWRlciIsICJza2luIiwgIl9pdGVyYXRvcjUiLCAiX3N0ZXA1IiwgInRpcHB5IiwgImFycm93IiwgImNvbnRlbnQiLCAicGxhY2VtZW50IiwgIm9uQ3JlYXRlIiwgIm9uSGlkZGVuIiwgIm9uU2hvdyIsICJ0aXBweUZvckV4dGVuc2lvbiIsICJfcmVmMyIsICJkZXByZWNhdGVkRnVuY3Rpb25zIiwgImxvZyIsICJkZXByZWNhdGUiLCAiYWRkU2NyaXB0VGFnIiwgImFkZExpbmtUYWciLCAid2lraVVybGVuY29kZSIsICJyZWFkeSIsICJnZXRTY3JpcHQiLCAidGhlbiIsICJ1cmwiLCAiaW1wb3J0X2V4dF9nYWRnZXQ1IiwgInJlc2l6ZUpRdWVyeVVJIiwgIndpbmRvd1dpZHRoIiwgIndpZHRoIiwgIiRqcXVlcnlVSURpYWxvZyIsICJzaXRlQ29tbW9uIiwgImNvbmZpZ0tleSIsICJzZXQiLCAiZ2V0Qm9keSJdCn0K diff --git a/dist/SpecialWikitext/SpecialWikitext.css b/dist/SpecialWikitext/SpecialWikitext.css index 2731c87d2..50ee4dda0 100644 --- a/dist/SpecialWikitext/SpecialWikitext.css +++ b/dist/SpecialWikitext/SpecialWikitext.css @@ -38,7 +38,7 @@ /* */ /* esbuild-css-modules-plugin-ns-css:src/SpecialWikitext/components/SpecialWikitext.module.less */ -.SpecialWikitext-module__preview-loading__inner_0PrDlG { +.SpecialWikitext-module__preview-loading__inner_0PrDlG__490 { background: #f9f9f9; border: 1px solid #aaa; width: 50%; @@ -46,7 +46,7 @@ padding: .5em; font-size: 88%; } -.SpecialWikitext-module__preview-loading__content_0PrDlG { +.SpecialWikitext-module__preview-loading__content_0PrDlG__490 { color: #000; text-align: center; background: #f9f9f9; @@ -55,4 +55,4 @@ /* */ -/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiZXNidWlsZC1jc3MtbW9kdWxlcy1wbHVnaW4tbnMtY3NzOnNyYy9TcGVjaWFsV2lraXRleHQvY29tcG9uZW50cy9TcGVjaWFsV2lraXRleHQubW9kdWxlLmxlc3MiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qIDxzdGRpbj4gKi9cbi5TcGVjaWFsV2lraXRleHQtbW9kdWxlX19wcmV2aWV3LWxvYWRpbmdfX2lubmVyXzBQckRsRyB7XG4gIGJhY2tncm91bmQ6ICNmOWY5Zjk7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNhYWE7XG4gIHdpZHRoOiA1MCU7XG4gIG1hcmdpbjogYXV0bztcbiAgcGFkZGluZzogLjVlbTtcbiAgZm9udC1zaXplOiA4OCU7XG59XG4uU3BlY2lhbFdpa2l0ZXh0LW1vZHVsZV9fcHJldmlldy1sb2FkaW5nX19jb250ZW50XzBQckRsRyB7XG4gIGNvbG9yOiAjMDAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJhY2tncm91bmQ6ICNmOWY5Zjk7XG4gIGZvbnQtc2l6ZTogbGFyZ2VyO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLENBQUM7QUFDQyxjQUFZO0FBQ1osVUFBUSxJQUFJLE1BQU07QUFDbEIsU0FBTztBQUNQLFVBQVE7QUFDUixXQUFTO0FBQ1QsYUFBVztBQUNiO0FBQ0EsQ0FBQztBQUNDLFNBQU87QUFDUCxjQUFZO0FBQ1osY0FBWTtBQUNaLGFBQVc7QUFDYjsiLAogICJuYW1lcyI6IFtdCn0K */ +/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiZXNidWlsZC1jc3MtbW9kdWxlcy1wbHVnaW4tbnMtY3NzOnNyYy9TcGVjaWFsV2lraXRleHQvY29tcG9uZW50cy9TcGVjaWFsV2lraXRleHQubW9kdWxlLmxlc3MiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qIDxzdGRpbj4gKi9cbi5TcGVjaWFsV2lraXRleHQtbW9kdWxlX19wcmV2aWV3LWxvYWRpbmdfX2lubmVyXzBQckRsR19fNDkwIHtcbiAgYmFja2dyb3VuZDogI2Y5ZjlmOTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2FhYTtcbiAgd2lkdGg6IDUwJTtcbiAgbWFyZ2luOiBhdXRvO1xuICBwYWRkaW5nOiAuNWVtO1xuICBmb250LXNpemU6IDg4JTtcbn1cbi5TcGVjaWFsV2lraXRleHQtbW9kdWxlX19wcmV2aWV3LWxvYWRpbmdfX2NvbnRlbnRfMFByRGxHX180OTAge1xuICBjb2xvcjogIzAwMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kOiAjZjlmOWY5O1xuICBmb250LXNpemU6IGxhcmdlcjtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxDQUFDO0FBQ0MsY0FBWTtBQUNaLFVBQVEsSUFBSSxNQUFNO0FBQ2xCLFNBQU87QUFDUCxVQUFRO0FBQ1IsV0FBUztBQUNULGFBQVc7QUFDYjtBQUNBLENBQUM7QUFDQyxTQUFPO0FBQ1AsY0FBWTtBQUNaLGNBQVk7QUFDWixhQUFXO0FBQ2I7IiwKICAibmFtZXMiOiBbXQp9Cg== */ diff --git a/dist/SpecialWikitext/SpecialWikitext.js b/dist/SpecialWikitext/SpecialWikitext.js index e1f265bcd..7671ea086 100644 --- a/dist/SpecialWikitext/SpecialWikitext.js +++ b/dist/SpecialWikitext/SpecialWikitext.js @@ -147,10 +147,10 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge //! src/SpecialWikitext/SpecialWikitext.ts var import_ext_gadget6 = require("ext.gadget.Util"); //! src/SpecialWikitext/components/SpecialWikitext.module.less -var previewLoadingContent = "SpecialWikitext-module__preview-loading__content_0PrDlG"; -var previewLoadingInner = "SpecialWikitext-module__preview-loading__inner_0PrDlG"; +var previewLoadingContent = "SpecialWikitext-module__preview-loading__content_0PrDlG__490"; +var previewLoadingInner = "SpecialWikitext-module__preview-loading__inner_0PrDlG__490"; //! src/SpecialWikitext/components/generateElements.tsx -var import_ext_gadget2 = __toESM(require("ext.gadget.React"), 1); +var import_ext_gadget2 = __toESM(require("ext.gadget.JSX"), 1); //! src/SpecialWikitext/images/Ajax-loader.gif var Ajax_loader_default = "data:image/gif;base64,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"; //! src/SpecialWikitext/images/Alert.png @@ -786,4 +786,4 @@ void (0, import_ext_gadget6.getBody)().then(function specialWikitext($body) { /* */ -//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL1NwZWNpYWxXaWtpdGV4dC9TcGVjaWFsV2lraXRleHQudHMiLCAic3JjL1NwZWNpYWxXaWtpdGV4dC9jb21wb25lbnRzL1NwZWNpYWxXaWtpdGV4dC5tb2R1bGUubGVzcyIsICJzcmMvU3BlY2lhbFdpa2l0ZXh0L2NvbXBvbmVudHMvZ2VuZXJhdGVFbGVtZW50cy50c3giLCAic3JjL1NwZWNpYWxXaWtpdGV4dC9tb2R1bGVzL2kxOG4udHMiLCAic3JjL1NwZWNpYWxXaWtpdGV4dC9tb2R1bGVzL3V0aWwvY2hlY2tFbGVtZW50RXhpc3QudHMiLCAic3JjL1NwZWNpYWxXaWtpdGV4dC9tb2R1bGVzL3V0aWwvYWRkUGFyc2VkV2lraXRleHQudHMiLCAic3JjL1NwZWNpYWxXaWtpdGV4dC9tb2R1bGVzL25vdGljZS50cyIsICJzcmMvU3BlY2lhbFdpa2l0ZXh0L29wdGlvbnMuanNvbiIsICJzcmMvU3BlY2lhbFdpa2l0ZXh0L21vZHVsZXMvbHVhL2x1YUFkZFRleHQudHMiLCAic3JjL1NwZWNpYWxXaWtpdGV4dC9tb2R1bGVzL2x1YS9sdWFHZXRUZXh0LnRzIiwgInNyYy9TcGVjaWFsV2lraXRleHQvbW9kdWxlcy9hcGkudHMiLCAic3JjL1NwZWNpYWxXaWtpdGV4dC9tb2R1bGVzL3V0aWwvZ2V0TGFuZ3VhZ2UudHMiLCAic3JjL1NwZWNpYWxXaWtpdGV4dC9tb2R1bGVzL213L213QWRkVGV4dC50cyIsICJzcmMvU3BlY2lhbFdpa2l0ZXh0L21vZHVsZXMvbHVhL2x1YUNoZWNrLnRzIiwgInNyYy9TcGVjaWFsV2lraXRleHQvbW9kdWxlcy9tdy9td0FwcGx5LnRzIiwgInNyYy9TcGVjaWFsV2lraXRleHQvbW9kdWxlcy91dGlsL2NoZWNrTXdDb25maWcudHMiLCAic3JjL1NwZWNpYWxXaWtpdGV4dC9tb2R1bGVzL3V0aWwvY2hlY2tOZWVkUHJldmlldy50cyIsICJzcmMvU3BlY2lhbFdpa2l0ZXh0L21vZHVsZXMvbXcvbXdBZGRQcmV2aWV3LnRzIiwgInNyYy9TcGVjaWFsV2lraXRleHQvbW9kdWxlcy93aWtpdGV4dFByZXZpZXdUZXN0Y2FzZS50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHtnZXRCb2R5fSBmcm9tICdleHQuZ2FkZ2V0LlV0aWwnO1xuaW1wb3J0IHttd0FkZFByZXZpZXd9IGZyb20gJy4vbW9kdWxlcy9tdy9td0FkZFByZXZpZXcnO1xuaW1wb3J0IHt3aWtpdGV4dFByZXZpZXdUZXN0Y2FzZX0gZnJvbSAnLi9tb2R1bGVzL3dpa2l0ZXh0UHJldmlld1Rlc3RjYXNlJztcblxudm9pZCBnZXRCb2R5KCkudGhlbihmdW5jdGlvbiBzcGVjaWFsV2lraXRleHQoJGJvZHk6IEpRdWVyeTxIVE1MQm9keUVsZW1lbnQ+KTogdm9pZCB7XG5cdC8vIOaJp+ihjOmihOiniFxuXHRtd0FkZFByZXZpZXcoJGJvZHkpO1xuXHQvLyDmo4Dmn6XmtYvor5XmoLfkvotcblx0dm9pZCB3aWtpdGV4dFByZXZpZXdUZXN0Y2FzZSh0cnVlKTtcbn0pO1xuIiwgImltcG9ydCBcImVzYnVpbGQtY3NzLW1vZHVsZXMtcGx1Z2luLW5zLWNzczpzcmMvU3BlY2lhbFdpa2l0ZXh0L2NvbXBvbmVudHMvU3BlY2lhbFdpa2l0ZXh0Lm1vZHVsZS5sZXNzXCI7XG5leHBvcnQgY29uc3QgcHJldmlld0xvYWRpbmdDb250ZW50ID0gXCJTcGVjaWFsV2lraXRleHQtbW9kdWxlX19wcmV2aWV3LWxvYWRpbmdfX2NvbnRlbnRfMFByRGxHXCI7XG5leHBvcnQgY29uc3QgcHJldmlld0xvYWRpbmdJbm5lciA9IFwiU3BlY2lhbFdpa2l0ZXh0LW1vZHVsZV9fcHJldmlldy1sb2FkaW5nX19pbm5lcl8wUHJEbEdcIjtcblxuZXhwb3J0IGRlZmF1bHQge1xuICBcInByZXZpZXdMb2FkaW5nQ29udGVudFwiOiBwcmV2aWV3TG9hZGluZ0NvbnRlbnQsXG4gIFwicHJldmlld0xvYWRpbmdJbm5lclwiOiBwcmV2aWV3TG9hZGluZ0lubmVyXG59O1xuICAgICAgIiwgImltcG9ydCB7cHJldmlld0xvYWRpbmdDb250ZW50LCBwcmV2aWV3TG9hZGluZ0lubmVyfSBmcm9tICcuL1NwZWNpYWxXaWtpdGV4dC5tb2R1bGUubGVzcyc7XG5pbXBvcnQgUmVhY3QgZnJvbSAnZXh0LmdhZGdldC5SZWFjdCc7XG5pbXBvcnQgYWpheExvYWRlciBmcm9tICcuLi9pbWFnZXMvQWpheC1sb2FkZXIuZ2lmJztcbmltcG9ydCBhbGVydCBmcm9tICcuLi9pbWFnZXMvQWxlcnQucG5nJztcbmltcG9ydCB7Z2V0TWVzc2FnZX0gZnJvbSAnLi4vbW9kdWxlcy9pMThuJztcblxuY29uc3QgRmFpbGVkID0gKCkgPT4gKFxuXHQ8PlxuXHRcdDxpbWcgc3JjPXthbGVydH0gZGVjb2Rpbmc9XCJhc3luY1wiIHdpZHRoPVwiMzJcIiBoZWlnaHQ9XCIzMlwiIC8+XG5cdFx0PHNwYW4+Jm5ic3A7e2dldE1lc3NhZ2UoJ0ZhaWxlZCcpfTwvc3Bhbj5cblx0PC8+XG4pO1xuXG5jb25zdCBMb2FkaW5nID0gKCkgPT4gKFxuXHQ8ZGl2IGlkPVwic3BlY2lhbHdpa2l0ZXh0LXByZXZpZXctbG9hZGluZ1wiPlxuXHRcdDxkaXYgY2xhc3NOYW1lPXtbJ3F1b3RlYm94JywgcHJldmlld0xvYWRpbmdJbm5lcl19IGlkPVwic3BlY2lhbHdpa2l0ZXh0LXByZXZpZXctbG9hZGluZ19faW5uZXJcIj5cblx0XHRcdDxkaXYgY2xhc3NOYW1lPXtwcmV2aWV3TG9hZGluZ0NvbnRlbnR9IGlkPVwic3BlY2lhbHdpa2l0ZXh0LXByZXZpZXctbG9hZGluZ19fY29udGVudFwiPlxuXHRcdFx0XHQ8aW1nIHNyYz17YWpheExvYWRlcn0gZGVjb2Rpbmc9XCJhc3luY1wiIHdpZHRoPVwiMzJcIiBoZWlnaHQ9XCIzMlwiIC8+XG5cdFx0XHRcdDxzcGFuPiZuYnNwO3tnZXRNZXNzYWdlKCdMb2FkaW5nJyl9PC9zcGFuPlxuXHRcdFx0PC9kaXY+XG5cdFx0PC9kaXY+XG5cdDwvZGl2PlxuKTtcblxuZXhwb3J0IHtGYWlsZWQsIExvYWRpbmd9O1xuIiwgImltcG9ydCB7bG9jYWxpemV9IGZyb20gJ2V4dC5nYWRnZXQuaTE4bic7XG5cbmNvbnN0IGdldEkxOG5NZXNzYWdlcyA9ICgpID0+IHtcblx0cmV0dXJuIHtcblx0XHRGYWlsZWQ6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnRmFpbGVkIHRvIGxvYWQgcHJldmlldy4nLFxuXHRcdFx0J3poLWhhbnMnOiAn6aKE6KeI5Yqg6L295aSx6LSlJyxcblx0XHRcdCd6aC1oYW50JzogJ+mgkOimvei8ieWFpeWksei0pScsXG5cdFx0fSksXG5cdFx0TG9hZGluZzogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdMb2FkaW5nIHByZXZpZXcuLi4nLFxuXHRcdFx0J3poLWhhbnMnOiAn6aKE6KeI5Yqg6L295Lit4oCm4oCmJyxcblx0XHRcdCd6aC1oYW50JzogJ+mgkOimvei8ieWFpeS4reKApuKApicsXG5cdFx0fSksXG5cdH07XG59O1xuXG5jb25zdCBpMThuTWVzc2FnZXMgPSBnZXRJMThuTWVzc2FnZXMoKTtcblxuY29uc3QgZ2V0TWVzc2FnZTogR2V0TWVzc2FnZXM8dHlwZW9mIGkxOG5NZXNzYWdlcz4gPSAoa2V5KSA9PiB7XG5cdHJldHVybiBpMThuTWVzc2FnZXNba2V5XSB8fCBrZXk7XG59O1xuXG5leHBvcnQge2dldE1lc3NhZ2V9O1xuIiwgImltcG9ydCB7Z2VuZXJhdGVBcnJheX0gZnJvbSAnZXh0LmdhZGdldC5VdGlsJztcblxuLy8g5qOA5p+lc2VsZWN0b3Llr7nlupTnmoRET03lr7nosaHmmK/lkKblrZjlnKhcbmNvbnN0IGNoZWNrRWxlbWVudEV4aXN0ID0gKHNlbGVjdG9yczogc3RyaW5nIHwgc3RyaW5nW10pOiBib29sZWFuID0+IHtcblx0Y29uc3Qgc2VsZWN0b3JBcnJheTogc3RyaW5nW10gPSBnZW5lcmF0ZUFycmF5KHNlbGVjdG9ycyk7XG5cblx0Zm9yIChjb25zdCBzZWxlY3RvciBvZiBzZWxlY3RvckFycmF5KSB7XG5cdFx0aWYgKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Ioc2VsZWN0b3IpKSB7XG5cdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gZmFsc2U7XG59O1xuXG5leHBvcnQge2NoZWNrRWxlbWVudEV4aXN0fTtcbiIsICJpbXBvcnQgUmVhY3QgZnJvbSAnZXh0LmdhZGdldC5SZWFjdCc7XG5pbXBvcnQge2NoZWNrRWxlbWVudEV4aXN0fSBmcm9tICcuL2NoZWNrRWxlbWVudEV4aXN0JztcblxuLy8g5bCG6Kej5p6Q5ZCO55qEd2lraXRleHTliqDlhaXpobXpnaLkuK1cbmNvbnN0IGFkZFBhcnNlZFdpa2l0ZXh0ID0gKHBhcnNlZFdpa2l0ZXh0OiBzdHJpbmcgfCBSZWFjdC5SZWFjdEVsZW1lbnQpOiB2b2lkID0+IHtcblx0Y29uc3QgJGJvZHk6IEpRdWVyeTxIVE1MQm9keUVsZW1lbnQ+ID0gJCgnYm9keScpO1xuXHRjb25zdCAkcGFyc2VkV2lraXRleHQ6IEpRdWVyeSA9ICQoKS5odG1sKHBhcnNlZFdpa2l0ZXh0KTtcblxuXHRpZiAoY2hlY2tFbGVtZW50RXhpc3QoJyNzcGVjaWFsd2lraXRleHQtcHJldmlldy1sb2FkaW5nJykpIHtcblx0XHRjb25zdCAkZWxlbWVudDogSlF1ZXJ5ID0gJGJvZHkuZmluZCgnI3NwZWNpYWx3aWtpdGV4dC1wcmV2aWV3LWxvYWRpbmcnKTtcblx0XHQkZWxlbWVudC5odG1sKHBhcnNlZFdpa2l0ZXh0KTtcblx0XHRtdy5ob29rKCd3aWtpcGFnZS5jb250ZW50JykuZmlyZSgkZWxlbWVudCk7XG5cdH0gZWxzZSBpZiAoY2hlY2tFbGVtZW50RXhpc3QoJy5kaWZmLWN1cnJlbnR2ZXJzaW9uLXRpdGxlJykpIHtcblx0XHQkYm9keS5maW5kKCcuZGlmZi1jdXJyZW50dmVyc2lvbi10aXRsZScpLmFwcGVuZCgkcGFyc2VkV2lraXRleHQpO1xuXHR9IGVsc2UgaWYgKGNoZWNrRWxlbWVudEV4aXN0KCcucHJldmlld25vdGUnKSkge1xuXHRcdCRib2R5LmZpbmQoJy5wcmV2aWV3bm90ZScpLmFwcGVuZCgkcGFyc2VkV2lraXRleHQpO1xuXHR9IGVsc2UgaWYgKGNoZWNrRWxlbWVudEV4aXN0KCcubXctdW5kZWxldGUtcmV2aXNpb24nKSkge1xuXHRcdCRib2R5LmZpbmQoJy5tdy11bmRlbGV0ZS1yZXZpc2lvbicpLmFwcGVuZCgkcGFyc2VkV2lraXRleHQpO1xuXHR9IGVsc2UgaWYgKGNoZWNrRWxlbWVudEV4aXN0KCcjbXctY29udGVudC10ZXh0JykpIHtcblx0XHQkYm9keS5maW5kKCcjbXctY29udGVudC10ZXh0JykuYXBwZW5kKCRwYXJzZWRXaWtpdGV4dCk7XG5cdH1cblxuXHRtdy5ob29rKCd3aWtpcGFnZS5jb250ZW50JykuZmlyZSgkcGFyc2VkV2lraXRleHQpO1xufTtcblxuZXhwb3J0IHthZGRQYXJzZWRXaWtpdGV4dH07XG4iLCAiaW1wb3J0IHtGYWlsZWQsIExvYWRpbmd9IGZyb20gJy4uL2NvbXBvbmVudHMvZ2VuZXJhdGVFbGVtZW50cyc7XG5pbXBvcnQgUmVhY3QgZnJvbSAnZXh0LmdhZGdldC5SZWFjdCc7XG5pbXBvcnQge2FkZFBhcnNlZFdpa2l0ZXh0fSBmcm9tICcuL3V0aWwvYWRkUGFyc2VkV2lraXRleHQnO1xuXG4vLyBbW0ZpbGU6R25vbWUtZGlhbG9nLXdhcm5pbmcyLnN2Z3wzMnB4XV1cbi8vIC17emgtaGFuczrpooTop4jliqDovb3lpLHotKU7emgtaGFudDrpoJDopr3ovInlhaXlpLHotKU7fS1cbmNvbnN0IG5vdGljZUZhaWxFbGVtZW50OiBSZWFjdC5SZWFjdEVsZW1lbnQgPSBGYWlsZWQoKTtcblxuLy8ge3tRdW90ZSBib3ggfHF1b3RlICA9IC17emgtaGFuczrpooTop4jliqDovb3kuK07emgtaGFudDrpoJDopr3ovInlhaXkuK07fS3igKbigKYgfHdpZHRoICA9IDUwJSB8YWxpZ24gID0gY2VudGVyfX1cbmNvbnN0IG5vdGljZUxvYWRpbmdFbGVtZW50OiBSZWFjdC5SZWFjdEVsZW1lbnQgPSBMb2FkaW5nKCk7XG5cbi8vIOaUueWKqERPTeWGheWuuVxuY29uc3QgcmVwbGFjZURPTSA9IChzZWxlY3Rvcjogc3RyaW5nLCBlbGVtZW50PzogUmVhY3QuUmVhY3RFbGVtZW50KTogdm9pZCA9PiB7XG5cdCQoc2VsZWN0b3IpLmh0bWwoZWxlbWVudCA/PyAnJyk7XG59O1xuXG4vLyDliqDlhaXigJxb6L295YWl5LitXeKAneeahOaPkOekulxuY29uc3QgYWRkTG9hZGluZ05vdGljZSA9ICgpOiB2b2lkID0+IHtcblx0YWRkUGFyc2VkV2lraXRleHQobm90aWNlTG9hZGluZ0VsZW1lbnQpO1xufTtcblxuLy8g6L295YWl6ZSZ6K+v55qE5o+Q56S6XG5jb25zdCBsb2FkaW5nRmFpbE5vdGljZSA9ICgpOiB2b2lkID0+IHtcblx0cmVwbGFjZURPTSgnI3NwZWNpYWx3aWtpdGV4dC1wcmV2aWV3LWxvYWRpbmdfX2NvbnRlbnQnLCBub3RpY2VGYWlsRWxlbWVudCk7XG59O1xuXG4vLyDnp7vpmaTigJxb6L295YWl5LitXeKAneeahOaPkOekulxuY29uc3QgcmVtb3ZlTG9hZGluZ05vdGljZSA9ICgpOiB2b2lkID0+IHtcblx0cmVwbGFjZURPTSgnI3NwZWNpYWx3aWtpdGV4dC1wcmV2aWV3LWxvYWRpbmcnKTtcbn07XG5cbmV4cG9ydCB7bm90aWNlTG9hZGluZ0VsZW1lbnQsIGFkZExvYWRpbmdOb3RpY2UsIGxvYWRpbmdGYWlsTm90aWNlLCByZW1vdmVMb2FkaW5nTm90aWNlfTtcbiIsICJ7XG5cdFwidmVyc2lvblwiOiBcIjIuMFwiLFxuXHRcIndpa2lUZXh0S2V5XCI6IFwiX2FkZFRleHRcIlxufVxuIiwgIi8vIOWQiOW5tuWkmuS4qndpa2l0ZXh05a2X56ym5LiyXG5jb25zdCBsdWFBZGRUZXh0ID0gKGlucHV0U3RyaW5nOiBzdHJpbmcsIG5ld1N0cmluZzogc3RyaW5nLCBpc0VzY2FwZTogYm9vbGVhbiA9IGZhbHNlKTogc3RyaW5nID0+IHtcblx0aWYgKG5ld1N0cmluZykge1xuXHRcdGlmIChpbnB1dFN0cmluZykge1xuXHRcdFx0aW5wdXRTdHJpbmcgKz0gJ1xcbic7XG5cdFx0fVxuXG5cdFx0aWYgKGlzRXNjYXBlKSB7XG5cdFx0XHRjb25zdCBbZXNjYXBlU3RyaW5nXSA9IEpTT04ucGFyc2UoXG5cdFx0XHRcdGBbJHtKU09OLnN0cmluZ2lmeShcblx0XHRcdFx0XHQvLyBMdWHkuI3mlK/mjIFcXHXjgIFcXHjovazkuYnlrZfnrKZcblx0XHRcdFx0XHRuZXdTdHJpbmcucmVwbGFjZSgvXFxcXChbdXhdKS9naSwgJyQxJylcblx0XHRcdFx0KS5yZXBsYWNlKC9cXFxcXFxcXC9nLCAnXFxcXCcpfV1gXG5cdFx0XHQpIGFzIFtzdHJpbmddO1xuXHRcdFx0bmV3U3RyaW5nID0gZXNjYXBlU3RyaW5nO1xuXHRcdH1cblxuXHRcdGlucHV0U3RyaW5nICs9IG5ld1N0cmluZztcblx0fVxuXG5cdHJldHVybiBpbnB1dFN0cmluZztcbn07XG5cbmV4cG9ydCB7bHVhQWRkVGV4dH07XG4iLCAiaW1wb3J0ICogYXMgT1BUSU9OUyBmcm9tICcuLi8uLi9vcHRpb25zLmpzb24nO1xuaW1wb3J0IHtsdWFBZGRUZXh0fSBmcm9tICcuL2x1YUFkZFRleHQnO1xuXG4vLyDor7vlj5Z3aWtpdGV4dOWtl+espuS4su+8jOW5tuW/veeVpeazqOmHiuWwvumDqFxuY29uc3QgbHVhR2V0U3RyaW5nID0gKGlucHV0U3RyaW5nOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuXHRjb25zdCB0ZXN0U3RyaW5nRXhlY0FycmF5OiBSZWdFeHBFeGVjQXJyYXkgfCBudWxsID0gL1teXFxuXSpcXCpcXC8vLmV4ZWMoaW5wdXRTdHJpbmcpO1xuXG5cdGxldCB0ZXN0U3RyaW5nOiBzdHJpbmcgPSBpbnB1dFN0cmluZztcblx0aWYgKHRlc3RTdHJpbmdFeGVjQXJyYXkpIHtcblx0XHRbdGVzdFN0cmluZ10gPSB0ZXN0U3RyaW5nRXhlY0FycmF5O1xuXHRcdHRlc3RTdHJpbmcgPSB0ZXN0U3RyaW5nLnNsaWNlKDAsIE1hdGgubWF4KDAsIHRlc3RTdHJpbmcubGVuZ3RoIC0gMikpO1xuXHR9XG5cblx0Y29uc3QgdHJpbUNoZWNrOiBzdHJpbmcgPSB0ZXN0U3RyaW5nLnRyaW0oKTtcblx0Y29uc3QgZmlyc3RDaGFyOiBzdHJpbmcgPSB0cmltQ2hlY2suY2hhckF0KDApO1xuXHRpZiAoZmlyc3RDaGFyID09PSB0cmltQ2hlY2suYXQoLTEpICYmIChmaXJzdENoYXIgPT09IFwiJ1wiIHx8IGZpcnN0Q2hhciA9PT0gJ1wiJykpIHtcblx0XHRyZXR1cm4gdHJpbUNoZWNrLnNsaWNlKDEsIDEgKyB0cmltQ2hlY2subGVuZ3RoIC0gMik7XG5cdH1cblxuXHRyZXR1cm4gdGVzdFN0cmluZy50cmltKCk7XG59O1xuXG4vLyDmjZXojrdDU1PmlofmnKzkuK3nrKblkIhgPHtPUFRJT05TLndpa2lUZXh0S2V5fT4gIHsgY29udGVudO+8mlwiWFhYXCIgfWDmqKHlvI/nmoTlrZfnrKbkuLJcbmNvbnN0IGx1YUdldENvbnRlbnRUZXh0ID0gKGlucHV0U3RyaW5nOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuXHRsZXQgd2lraXRleHQ6IHN0cmluZyA9ICcnO1xuXG5cdHRyeSB7XG5cdFx0aW5wdXRTdHJpbmcucmVwbGFjZShcblx0XHRcdG5ldyBSZWdFeHAoYCR7T1BUSU9OUy53aWtpVGV4dEtleX1cXFxccypcXFxce1teY1xcXFx9XSpjb250ZW50XFxcXHMqOlxcXFxzKlteXFxuXSpgLCAnZycpLFxuXHRcdFx0KHN1YnN0cmluZzogc3RyaW5nKTogc3RyaW5nID0+IHtcblx0XHRcdFx0Y29uc3QgdGVtcFRleHQ6IHN0cmluZyA9ICgvY29udGVudFxccyo6XFxzKlteXFxuXSovLmV4ZWMoc3Vic3RyaW5nKSB8fCBbJ2NvbnRlbnQ6J10pWzBdXG5cdFx0XHRcdFx0LnJlcGxhY2UoL15bXFxzO31dK3xbXFxzO31dKyQvZywgJycpXG5cdFx0XHRcdFx0LnJlcGxhY2UoL1xccypjb250ZW50XFxzKjpcXHMqLywgJycpO1xuXG5cdFx0XHRcdGlmICh3aWtpdGV4dCkge1xuXHRcdFx0XHRcdHdpa2l0ZXh0ICs9ICdcXG4nO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0d2lraXRleHQgKz0gbHVhR2V0U3RyaW5nKHRlbXBUZXh0KTtcblxuXHRcdFx0XHRyZXR1cm4gc3Vic3RyaW5nO1xuXHRcdFx0fVxuXHRcdCk7XG5cdH0gY2F0Y2gge1xuXHRcdHJldHVybiAnJztcblx0fVxuXG5cdHJldHVybiB3aWtpdGV4dC50cmltKCk7XG59O1xuXG4vLyDmjZXojrflrZfnrKbkuLLljJbnmoTlr7nosaHkuK3nrKblkIhgPHtPUFRJT05TLndpa2lUZXh0S2V5fT7vvJ1YWFhg5oiWYDx7T1BUSU9OUy53aWtpVGV4dEtleX0+77yaWFhYYOaooeW8j+eahOWtl+espuS4siAo5rOo6YeK5Lul5YWo6KeS5a2X56ym5Luj5pu/77yM6YG/5YWN6KKr5o2V6I63KVxuY29uc3QgbHVhR2V0T2JqVGV4dCA9IChpbnB1dFN0cmluZzogc3RyaW5nKTogc3RyaW5nID0+IHtcblx0bGV0IHdpa2l0ZXh0OiBzdHJpbmcgPSAnJztcblxuXHR0cnkge1xuXHRcdGlucHV0U3RyaW5nLnJlcGxhY2UoXG5cdFx0XHRuZXcgUmVnRXhwKGAke09QVElPTlMud2lraVRleHRLZXl9XFxcXHMqW1xcXFw9Ol1cXFxccypbXlxcbl0qYCwgJ2cnKSxcblx0XHRcdChzdWJzdHJpbmc6IHN0cmluZyk6IHN0cmluZyA9PiB7XG5cdFx0XHRcdGNvbnN0IHRlbXBUZXh0OiBzdHJpbmcgPSBzdWJzdHJpbmdcblx0XHRcdFx0XHQucmVwbGFjZSgvXltcXHM7fV0rfFtcXHM7fV0rJC9nLCAnJylcblx0XHRcdFx0XHQucmVwbGFjZShuZXcgUmVnRXhwKGAke09QVElPTlMud2lraVRleHRLZXl9XFxcXHMqW1xcXFw9Ol1cXFxccypgKSwgJycpO1xuXG5cdFx0XHRcdGlmICh3aWtpdGV4dCkge1xuXHRcdFx0XHRcdHdpa2l0ZXh0ICs9ICdcXG4nO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0d2lraXRleHQgKz0gbHVhR2V0U3RyaW5nKHRlbXBUZXh0KTtcblxuXHRcdFx0XHRyZXR1cm4gc3Vic3RyaW5nO1xuXHRcdFx0fVxuXHRcdCk7XG5cdH0gY2F0Y2gge1xuXHRcdHJldHVybiAnJztcblx0fVxuXG5cdHJldHVybiB3aWtpdGV4dC50cmltKCk7XG59O1xuXG4vLyDliIbmnpBDU1PkuK3nrKblkIjmnaHku7bnmoR3aWtpdGV4dFxuY29uc3QgbHVhR2V0Q1NTd2lraXRleHQgPSAoaW5wdXRTdHJpbmc6IHN0cmluZyk6IHN0cmluZyA9PiB7XG5cdGxldCB3aWtpdGV4dDogc3RyaW5nID0gJyc7XG5cblx0Y29uc3QgY3NzVGV4dDogc3RyaW5nID1cblx0XHQoaW5wdXRTdHJpbmcgfHwgZG9jdW1lbnQucXVlcnlTZWxlY3RvcjxIVE1MVGV4dEFyZWFFbGVtZW50PigndGV4dGFyZWFbbmFtZT13cFRleHRib3gxXScpPy52YWx1ZSkgPz8gJyc7XG5cdGlmICghY3NzVGV4dC50cmltKCkpIHtcblx0XHRyZXR1cm4gJyc7XG5cdH1cblxuXHQvLyDljLnphY0gPHtPUFRJT05TLndpa2lUZXh0S2V5fT4geyBjb250ZW5077yaXCJYWFhcIiB9IOaooeW8j1xuXHR3aWtpdGV4dCA9IGx1YUFkZFRleHQod2lraXRleHQsIGx1YUdldENvbnRlbnRUZXh0KGNzc1RleHQpLCB0cnVlKTtcblx0Ly8g5Yy56YWNIC8qIDx7T1BUSU9OUy53aWtpVGV4dEtleX0+77yaWFhYICovIOaooeW8j1xuXHR3aWtpdGV4dCA9IGx1YUFkZFRleHQod2lraXRleHQsIGx1YUdldE9ialRleHQoY3NzVGV4dCksIHRydWUpO1xuXG5cdHJldHVybiB3aWtpdGV4dC50cmltKCk7XG59O1xuXG4vLyDliIbmnpBKU09O5Lit56ym5ZCI5p2h5Lu255qEd2lraXRleHRcbmNvbnN0IGx1YUdldEpTT053aWtpdGV4dCA9IChpbnB1dFN0cmluZzogc3RyaW5nKTogc3RyaW5nID0+IHtcblx0bGV0IHdpa2l0ZXh0OiBzdHJpbmcgPSAnJztcblxuXHRjb25zdCBKU09OVGV4dDogc3RyaW5nID1cblx0XHQoaW5wdXRTdHJpbmcgfHwgZG9jdW1lbnQucXVlcnlTZWxlY3RvcjxIVE1MVGV4dEFyZWFFbGVtZW50PigndGV4dGFyZWFbbmFtZT13cFRleHRib3gxXScpPy52YWx1ZSkgPz8gJyc7XG5cdGlmICghSlNPTlRleHQudHJpbSgpKSB7XG5cdFx0cmV0dXJuICcnO1xuXHR9XG5cblx0dHJ5IHtcblx0XHRjb25zdCBqc29uRGF0YSA9IEpTT04ucGFyc2UoSlNPTlRleHQpIGFzIG9iamVjdDtcblx0XHRmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhqc29uRGF0YSkpIHtcblx0XHRcdGlmIChuZXcgUmVnRXhwKE9QVElPTlMud2lraVRleHRLZXkpLnRlc3Qoa2V5KSAmJiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG5cdFx0XHRcdHdpa2l0ZXh0ID0gbHVhQWRkVGV4dCh3aWtpdGV4dCwgdmFsdWUpO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyDoi6XplK7lgLzmmK/lr7nosaFcblx0XHRcdGlmICh0eXBlb2YgdmFsdWUgIT09ICdzdHJpbmcnKSB7XG5cdFx0XHRcdGZvciAoY29uc3QgW2ssIHZdIG9mIE9iamVjdC5lbnRyaWVzKHZhbHVlIGFzIG9iamVjdCkpIHtcblx0XHRcdFx0XHRpZiAobmV3IFJlZ0V4cChPUFRJT05TLndpa2lUZXh0S2V5KS50ZXN0KGspICYmIHR5cGVvZiB2ID09PSAnc3RyaW5nJykge1xuXHRcdFx0XHRcdFx0d2lraXRleHQgPSBsdWFBZGRUZXh0KHdpa2l0ZXh0LCB2KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH0gY2F0Y2gge1xuXHRcdHJldHVybiAnJztcblx0fVxuXG5cdHJldHVybiB3aWtpdGV4dC50cmltKCk7XG59O1xuXG4vLyDliIbmnpBKYXZhU2NyaXB05Lit56ym5ZCI5p2h5Lu255qEd2lraXRleHRcbmNvbnN0IGx1YUdldEpTd2lraXRleHQgPSAoaW5wdXRTdHJpbmc6IHN0cmluZyk6IHN0cmluZyA9PiB7XG5cdGxldCB3aWtpdGV4dDogc3RyaW5nID0gJyc7XG5cblx0Y29uc3QganNUZXh0OiBzdHJpbmcgPVxuXHRcdChpbnB1dFN0cmluZyB8fCBkb2N1bWVudC5xdWVyeVNlbGVjdG9yPEhUTUxUZXh0QXJlYUVsZW1lbnQ+KCd0ZXh0YXJlYVtuYW1lPXdwVGV4dGJveDFdJyk/LnZhbHVlKSA/PyAnJztcblx0aWYgKCFqc1RleHQudHJpbSgpKSB7XG5cdFx0cmV0dXJuICcnO1xuXHR9XG5cblx0d2lraXRleHQgPSBsdWFBZGRUZXh0KHdpa2l0ZXh0LCBsdWFHZXRPYmpUZXh0KGpzVGV4dCksIHRydWUpO1xuXG5cdHJldHVybiB3aWtpdGV4dC50cmltKCk7XG59O1xuXG5leHBvcnQge2x1YUdldENTU3dpa2l0ZXh0LCBsdWFHZXRKU09Od2lraXRleHQsIGx1YUdldEpTd2lraXRleHR9O1xuIiwgImltcG9ydCAqIGFzIE9QVElPTlMgZnJvbSAnLi4vb3B0aW9ucy5qc29uJztcbmltcG9ydCB7aW5pdE13QXBpfSBmcm9tICdleHQuZ2FkZ2V0LlV0aWwnO1xuXG5jb25zdCBhcGk6IG13LkFwaSA9IGluaXRNd0FwaShgU3BlY2lhbFdpa2l0ZXh0LyR7T1BUSU9OUy52ZXJzaW9ufWApO1xuXG5leHBvcnQge2FwaX07XG4iLCAiY29uc3Qge3dnVXNlckxhbmd1YWdlLCB3Z1VzZXJWYXJpYW50fSA9IG13LmNvbmZpZy5nZXQoKTtcblxuY29uc3QgZ2V0TGFuZ3VhZ2UgPSAoKTogc3RyaW5nID0+IHtcblx0Y29uc3QgbGFuZzogc3RyaW5nID0gd2dVc2VyTGFuZ3VhZ2U7XG5cblx0aWYgKGxhbmcuaW5jbHVkZXMoJ3poJykpIHtcblx0XHRyZXR1cm4gd2dVc2VyVmFyaWFudCBhcyBzdHJpbmc7XG5cdH1cblxuXHRyZXR1cm4gbGFuZztcbn07XG5cbmV4cG9ydCB7Z2V0TGFuZ3VhZ2V9O1xuIiwgImltcG9ydCB7bG9hZGluZ0ZhaWxOb3RpY2UsIHJlbW92ZUxvYWRpbmdOb3RpY2V9IGZyb20gJy4uL25vdGljZSc7XG5pbXBvcnQge2FkZFBhcnNlZFdpa2l0ZXh0fSBmcm9tICcuLi91dGlsL2FkZFBhcnNlZFdpa2l0ZXh0JztcbmltcG9ydCB7YXBpfSBmcm9tICcuLi9hcGknO1xuaW1wb3J0IHtnZXRMYW5ndWFnZX0gZnJvbSAnLi4vdXRpbC9nZXRMYW5ndWFnZSc7XG5cbmNvbnN0IHtza2lufSA9IG13LmNvbmZpZy5nZXQoKTtcblxuLy8g5Yqg5YWl6aKE6KeI5YaF5a65XG5jb25zdCBtd0FkZFdpa2lUZXh0ID0gYXN5bmMgKHdpa2l0ZXh0OiBzdHJpbmcsIHBhZ2VOYW1lOiBzdHJpbmcsIGlzUHJldmlldzogYm9vbGVhbik6IFByb21pc2U8dm9pZD4gPT4ge1xuXHRpZiAod2lraXRleHQudHJpbSgpKSB7XG5cdFx0Y29uc3QgcGFyYW1zOiBBcGlQYXJzZVBhcmFtcyA9IHtcblx0XHRcdGFjdGlvbjogJ3BhcnNlJyxcblx0XHRcdGZvcm1hdDogJ2pzb24nLFxuXHRcdFx0Zm9ybWF0dmVyc2lvbjogJzInLFxuXHRcdFx0Ly8g6YG/5YWN5YaF5a656YeN5aSNXG5cdFx0XHR0aXRsZTogcGFnZU5hbWUsXG5cdFx0XHRjb250ZW50bW9kZWw6ICd3aWtpdGV4dCcsXG5cdFx0XHR0ZXh0OiB3aWtpdGV4dCxcblx0XHRcdHByb3A6ICd0ZXh0Jyxcblx0XHRcdHVzZWxhbmc6IGdldExhbmd1YWdlKCksXG5cdFx0XHR1c2Vza2luOiBza2luLFxuXHRcdH07XG5cdFx0aWYgKGlzUHJldmlldykge1xuXHRcdFx0cGFyYW1zLmRpc2FibGVlZGl0c2VjdGlvbiA9IHRydWU7XG5cdFx0XHRwYXJhbXMucHJldmlldyA9IHRydWU7XG5cdFx0fVxuXG5cdFx0dHJ5IHtcblx0XHRcdGNvbnN0IGRhdGEgPSBhd2FpdCBhcGkuZ2V0KHBhcmFtcyk7XG5cdFx0XHRpZiAoIWRhdGE/LlsncGFyc2UnXT8udGV4dCkge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cblx0XHRcdGNvbnN0IHBhcnNlZFdpa2l0ZXh0OiBzdHJpbmcgPSAoZGF0YVsncGFyc2UnXS50ZXh0IGFzIHN0cmluZykudHJpbSgpO1xuXG5cdFx0XHRpZiAocGFyc2VkV2lraXRleHQpIHtcblx0XHRcdFx0YWRkUGFyc2VkV2lraXRleHQocGFyc2VkV2lraXRleHQpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0cmVtb3ZlTG9hZGluZ05vdGljZSgpO1xuXHRcdFx0fVxuXHRcdH0gY2F0Y2gge1xuXHRcdFx0bG9hZGluZ0ZhaWxOb3RpY2UoKTtcblx0XHR9XG5cdH0gZWxzZSB7XG5cdFx0cmVtb3ZlTG9hZGluZ05vdGljZSgpO1xuXHR9XG59O1xuXG4vLyDliqDlhaXpooTop4jnmoRMdWHlhoXlrrlcbmNvbnN0IG13QWRkTHVhVGV4dCA9IGFzeW5jIChcblx0d2lraXRleHQ6IHN0cmluZyxcblx0cGFnZU5hbWU6IHN0cmluZyxcblx0aXNQcmV2aWV3OiBib29sZWFuLFxuXHRjYWxsQmFjaz86IChhcmc6IHN0cmluZykgPT4gSlF1ZXJ5IHwgSFRNTEVsZW1lbnQgfCB2b2lkXG4pID0+IHtcblx0Y29uc3QgdGVtcE1vZHVsZU5hbWU6IHN0cmluZyA9ICdBZGRUZXh0L1RlbXAvTW9kdWxlL0RhdGEubHVhJztcblx0Y29uc3QgbW9kdWxlQ2FsbDoge1xuXHRcdHdpa2l0ZXh0OiBzdHJpbmc7XG5cdFx0cGFnZU5hbWU6IHN0cmluZztcblx0fSA9IHtcblx0XHR3aWtpdGV4dDogJyNpbnZva2U6Jyxcblx0XHQvLyDliIblvIDmnaXvvIzpgb/lhY3ooqvliIbliLBbWzpDYXRlZ29yeTrmnInohJrmnKzplJnor6/nmoTpobXpnaJdXVxuXHRcdHBhZ2VOYW1lOiAnTW9kdWxlOicsXG5cdH07XG5cblx0aWYgKHdpa2l0ZXh0LnRyaW0oKSkge1xuXHRcdHRyeSB7XG5cdFx0XHRjb25zdCBwYXJhbXM6IEFwaVBhcnNlUGFyYW1zID0ge1xuXHRcdFx0XHRhY3Rpb246ICdwYXJzZScsXG5cdFx0XHRcdGZvcm1hdDogJ2pzb24nLFxuXHRcdFx0XHRmb3JtYXR2ZXJzaW9uOiAnMicsXG5cdFx0XHRcdHRpdGxlOiBwYWdlTmFtZSxcblx0XHRcdFx0Y29udGVudG1vZGVsOiAnd2lraXRleHQnLFxuXHRcdFx0XHR0ZW1wbGF0ZXNhbmRib3h0aXRsZTogbW9kdWxlQ2FsbC5wYWdlTmFtZSArIHRlbXBNb2R1bGVOYW1lLFxuXHRcdFx0XHQvLyDliJvlu7rkuLTml7ZMdWEgTW9kdWxlXG5cdFx0XHRcdHRlbXBsYXRlc2FuZGJveHRleHQ6IGByZXR1cm4ge1xuXHRtYWluID0gZnVuY3Rpb24oKVxuXHRcdHhwY2FsbChcblx0XHRcdGZ1bmN0aW9uKClcblx0XHRcdFx0JHt3aWtpdGV4dH1cblx0XHRcdGVuZCxcblx0XHRcdGZ1bmN0aW9uKClcblx0XHRcdGVuZFxuXHRcdClcblx0XHRsb2NhbCBtb2R1bGVXaWtpdGV4dCA9IHBhY2thZ2UubG9hZGVkW1wiTW9kdWxlOk1vZHVsZSB3aWtpdGV4dFwiXVxuXHRcdGlmIG1vZHVsZVdpa2l0ZXh0IHRoZW5cblx0XHRcdGxvY2FsIHdpa2l0ZXh0ID0gbW9kdWxlV2lraXRleHQubWFpbigpXG5cdFx0XHRpZiBtdy50ZXh0LnRyaW0od2lraXRleHQpIH49IFwiXCIgdGhlblxuXHRcdFx0XHRyZXR1cm4gbXcuZ2V0Q3VycmVudEZyYW1lKCk6cHJlcHJvY2Vzcyhtb2R1bGVXaWtpdGV4dC5tYWluKCkpXG5cdFx0XHRlbmRcblx0XHRlbmRcblx0XHRyZXR1cm4gXCJcIlxuXHRlbmRcbn1gLFxuXHRcdFx0XHR0ZW1wbGF0ZXNhbmRib3hjb250ZW50bW9kZWw6ICdTY3JpYnVudG8nLFxuXHRcdFx0XHR0ZW1wbGF0ZXNhbmRib3hjb250ZW50Zm9ybWF0OiAndGV4dC9wbGFpbicsXG5cdFx0XHRcdHRleHQ6IGB7eyR7bW9kdWxlQ2FsbC53aWtpdGV4dH0ke3RlbXBNb2R1bGVOYW1lfXxtYWlufX1gLFxuXHRcdFx0XHRwcm9wOiAndGV4dCcsXG5cdFx0XHRcdHVzZWxhbmc6IGdldExhbmd1YWdlKCksXG5cdFx0XHRcdHVzZXNraW46IHNraW4sXG5cdFx0XHR9O1xuXHRcdFx0aWYgKGlzUHJldmlldykge1xuXHRcdFx0XHRwYXJhbXMucHJldmlldyA9IHRydWU7XG5cdFx0XHRcdHBhcmFtcy5kaXNhYmxlZWRpdHNlY3Rpb24gPSB0cnVlO1xuXHRcdFx0fVxuXG5cdFx0XHRjb25zdCBkYXRhID0gYXdhaXQgYXBpLmdldChwYXJhbXMpO1xuXHRcdFx0aWYgKCFkYXRhPy5bJ3BhcnNlJ10/LnRleHQpIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXG5cdFx0XHRjb25zdCBwYXJzZWRXaWtpdGV4dDogc3RyaW5nID0gKGRhdGFbJ3BhcnNlJ10udGV4dCBhcyBzdHJpbmcpLnRyaW0oKTtcblxuXHRcdFx0aWYgKCFwYXJzZWRXaWtpdGV4dCkge1xuXHRcdFx0XHRyZW1vdmVMb2FkaW5nTm90aWNlKCk7XG5cdFx0XHRcdC8vIOiLpeWcqOi/meS4quS4tOaXtuaooeWdl+S4reWHuumUmeWImeWPlua2iFxuXHRcdFx0fSBlbHNlIGlmICgkKHBhcnNlZFdpa2l0ZXh0KS5maW5kKCcuc2NyaWJ1bnRvLWVycm9yJykudGV4dCgpLnNlYXJjaCh0ZW1wTW9kdWxlTmFtZSkpIHtcblx0XHRcdFx0cmVtb3ZlTG9hZGluZ05vdGljZSgpO1xuXHRcdFx0fSBlbHNlIGlmICh0eXBlb2YgY2FsbEJhY2sgPT09ICdmdW5jdGlvbicpIHtcblx0XHRcdFx0Y2FsbEJhY2socGFyc2VkV2lraXRleHQpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0YWRkUGFyc2VkV2lraXRleHQocGFyc2VkV2lraXRleHQpO1xuXHRcdFx0fVxuXHRcdH0gY2F0Y2gge1xuXHRcdFx0bG9hZGluZ0ZhaWxOb3RpY2UoKTtcblx0XHR9XG5cdH0gZWxzZSB7XG5cdFx0cmVtb3ZlTG9hZGluZ05vdGljZSgpO1xuXHR9XG59O1xuXG5leHBvcnQge213QWRkTHVhVGV4dCwgbXdBZGRXaWtpVGV4dH07XG4iLCAiaW1wb3J0IHtsdWFHZXRDU1N3aWtpdGV4dCwgbHVhR2V0SlNPTndpa2l0ZXh0LCBsdWFHZXRKU3dpa2l0ZXh0fSBmcm9tICcuL2x1YUdldFRleHQnO1xuXG5jb25zdCB7d2dQYWdlQ29udGVudE1vZGVsfSA9IG13LmNvbmZpZy5nZXQoKTtcblxuLy8g5Yik5pat5piv5ZCm5Li6THVhXG5jb25zdCBsdWFDaGVjayA9IChpbnB1dFN0cmluZzogc3RyaW5nID0gJycsIGNvbnRlbnRNb2RlbDogc3RyaW5nID0gd2dQYWdlQ29udGVudE1vZGVsKTogc3RyaW5nID0+IHtcblx0Ly8g5qC55o2u6aG16Z2i5YaF5a655qih5Z6L6YCJ55So6YCC5b2T55qE6Kej5p6Q5qih5byPXG5cdHN3aXRjaCAoY29udGVudE1vZGVsLnRvTG93ZXJDYXNlKCkpIHtcblx0XHRjYXNlICdqc29uJzpcblx0XHRcdHJldHVybiBsdWFHZXRKU09Od2lraXRleHQoaW5wdXRTdHJpbmcpO1xuXHRcdGNhc2UgJ2pzJzpcblx0XHRjYXNlICdqYXZhc2NyaXB0Jzpcblx0XHRjYXNlICd0ZXh0Jzpcblx0XHRcdHJldHVybiBsdWFHZXRKU3dpa2l0ZXh0KGlucHV0U3RyaW5nKTtcblx0XHRjYXNlICdjc3MnOlxuXHRcdGNhc2UgJ3Nhbml0aXplZC1jc3MnOlxuXHRcdFx0cmV0dXJuIGx1YUdldENTU3dpa2l0ZXh0KGlucHV0U3RyaW5nKTtcblx0XHRkZWZhdWx0OlxuXHRcdFx0cmV0dXJuICcnO1xuXHR9XG59O1xuXG5leHBvcnQge2x1YUNoZWNrfTtcbiIsICJpbXBvcnQge2FkZFBhcnNlZFdpa2l0ZXh0fSBmcm9tICcuLi91dGlsL2FkZFBhcnNlZFdpa2l0ZXh0JztcbmltcG9ydCB7YXBpfSBmcm9tICcuLi9hcGknO1xuaW1wb3J0IHtjaGVja0VsZW1lbnRFeGlzdH0gZnJvbSAnLi4vdXRpbC9jaGVja0VsZW1lbnRFeGlzdCc7XG5pbXBvcnQge2dldExhbmd1YWdlfSBmcm9tICcuLi91dGlsL2dldExhbmd1YWdlJztcbmltcG9ydCB7bHVhQ2hlY2t9IGZyb20gJy4uL2x1YS9sdWFDaGVjayc7XG5pbXBvcnQge213QWRkV2lraVRleHR9IGZyb20gJy4vbXdBZGRUZXh0JztcbmltcG9ydCB7cmVtb3ZlTG9hZGluZ05vdGljZX0gZnJvbSAnLi4vbm90aWNlJztcblxuY29uc3Qge3NraW4sIHdnUmV2aXNpb25JZH0gPSBtdy5jb25maWcuZ2V0KCk7XG5cbi8vIOWKoOWFpee8lui+keaPkOekuu+8iOiLpeWtmOWcqO+8iVxuY29uc3QgbXdBcHBseU5vdGljZSA9IGFzeW5jIChjdXJyZW50UGFnZU5hbWU6IHN0cmluZywgcGFnZVN1Yk5hbWU6IHN0cmluZyk6IFByb21pc2U8dm9pZD4gPT4ge1xuXHR0cnkge1xuXHRcdGNvbnN0IHBhcmFtczogQXBpUGFyc2VQYXJhbXMgPSB7XG5cdFx0XHRhY3Rpb246ICdwYXJzZScsXG5cdFx0XHRmb3JtYXQ6ICdqc29uJyxcblx0XHRcdGZvcm1hdHZlcnNpb246ICcyJyxcblx0XHRcdC8vIGdldCB0aGUgb3JpZ2luYWwgd2lraXRleHQgY29udGVudCBvZiBhIHBhZ2Vcblx0XHRcdHRpdGxlOiBjdXJyZW50UGFnZU5hbWUgKyBwYWdlU3ViTmFtZSxcblx0XHRcdHRleHQ6IGB7eyNpbnZva2U6U3BlY2lhbCB3aWtpdGV4dC9UZW1wbGF0ZXxnZXROb3RpY2VzfCR7Y3VycmVudFBhZ2VOYW1lfXwke3BhZ2VTdWJOYW1lfX19YCxcblx0XHRcdHByb3A6ICd0ZXh0Jyxcblx0XHRcdHVzZWxhbmc6IGdldExhbmd1YWdlKCksXG5cdFx0XHR1c2Vza2luOiBza2luLFxuXHRcdFx0c21heGFnZTogNjAwLFxuXHRcdFx0bWF4YWdlOiA2MDAsXG5cdFx0fTtcblxuXHRcdGNvbnN0IGRhdGEgPSBhd2FpdCBhcGkuZ2V0KHBhcmFtcyk7XG5cdFx0aWYgKCFkYXRhPy5bJ3BhcnNlJ10/LnRleHQpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRjb25zdCBodG1sID0gZGF0YVsncGFyc2UnXS50ZXh0IGFzIHN0cmluZztcblx0XHRpZiAoJChodG1sKS50ZXh0KCkudHJpbSgpKSB7XG5cdFx0XHRhZGRQYXJzZWRXaWtpdGV4dChodG1sKTtcblx0XHR9XG5cdH0gY2F0Y2gge31cbn07XG5cbi8vIOS7jumhtemdouW9k+WJjeWOhuWPsueJiOacrOWPluWHuiA8e09QVElPTlMud2lraVRleHRLZXl9PlxuY29uc3QgbXdBcHBseVJldmlzaW9uID0gYXN5bmMgKGN1cnJlbnRQYWdlTmFtZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiA9PiB7XG5cdHRyeSB7XG5cdFx0Y29uc3QgcGFyYW1zOiBBcGlQYXJzZVBhcmFtcyA9IHtcblx0XHRcdGFjdGlvbjogJ3BhcnNlJyxcblx0XHRcdGZvcm1hdDogJ2pzb24nLFxuXHRcdFx0Zm9ybWF0dmVyc2lvbjogJzInLFxuXHRcdFx0Ly8gZ2V0IHRoZSBvcmlnaW5hbCB3aWtpdGV4dCBjb250ZW50IG9mIGEgcGFnZVxuXHRcdFx0b2xkaWQ6IHdnUmV2aXNpb25JZCxcblx0XHRcdHByb3A6ICd3aWtpdGV4dCcsXG5cdFx0XHRzbWF4YWdlOiA2MDAsXG5cdFx0XHRtYXhhZ2U6IDYwMCxcblx0XHR9O1xuXG5cdFx0Y29uc3QgZGF0YSA9IGF3YWl0IGFwaS5nZXQocGFyYW1zKTtcblx0XHRpZiAoIWRhdGE/LlsncGFyc2UnXT8ud2lraXRleHQpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRsZXQgcGFnZUNvbnRlbnQ6IHN0cmluZyA9IGx1YUNoZWNrKChkYXRhWydwYXJzZSddLndpa2l0ZXh0IGFzIHN0cmluZykudHJpbSgpKTtcblx0XHRwYWdlQ29udGVudCA9XG5cdFx0XHQoY2hlY2tFbGVtZW50RXhpc3QoJyNtdy1jbGVhcnlvdXJjYWNoZScpXG5cdFx0XHRcdD8gJ3t7I2ludm9rZTpTcGVjaWFsIHdpa2l0ZXh0L1RlbXBsYXRlfGludHxjbGVhcnlvdXJjYWNoZX19J1xuXHRcdFx0XHQ6ICcnKSArIHBhZ2VDb250ZW50O1xuXG5cdFx0aWYgKHBhZ2VDb250ZW50LnRyaW0oKSkge1xuXHRcdFx0dm9pZCBtd0FkZFdpa2lUZXh0KHBhZ2VDb250ZW50LCBjdXJyZW50UGFnZU5hbWUsIHRydWUpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZW1vdmVMb2FkaW5nTm90aWNlKCk7XG5cdFx0fVxuXHR9IGNhdGNoIHtcblx0XHRyZW1vdmVMb2FkaW5nTm90aWNlKCk7XG5cdH1cbn07XG5cbmV4cG9ydCB7bXdBcHBseU5vdGljZSwgbXdBcHBseVJldmlzaW9ufTtcbiIsICJpbXBvcnQge2dlbmVyYXRlQXJyYXl9IGZyb20gJ2V4dC5nYWRnZXQuVXRpbCc7XG5cbmNvbnN0IGFsbE13Q29uZmlnOiBSZXR1cm5UeXBlPHR5cGVvZiBtdy5jb25maWcuZ2V0PiA9IG13LmNvbmZpZy5nZXQoKTtcblxuLy8g5qOA5p+lTWVkaWFXaWtp55qE6K6+572uXG5jb25zdCBjaGVja013Q29uZmlnID0gKGNvbmZpZ0tleTogc3RyaW5nLCBleHBlY3RDb25maWc6IHN0cmluZyB8IHN0cmluZ1tdKTogYm9vbGVhbiA9PiB7XG5cdGxldCBtd0NvbmZpZzogdW5rbm93biA9IGFsbE13Q29uZmlnW2NvbmZpZ0tleV07XG5cdGlmICghbXdDb25maWcpIHtcblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cblxuXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWJhc2UtdG8tc3RyaW5nXG5cdG13Q29uZmlnID0gU3RyaW5nKG13Q29uZmlnKS50b0xvd2VyQ2FzZSgpLnRyaW0oKTtcblx0aWYgKCFtd0NvbmZpZykge1xuXHRcdHJldHVybiBmYWxzZTtcblx0fVxuXG5cdHJldHVybiBnZW5lcmF0ZUFycmF5KGV4cGVjdENvbmZpZykuaW5jbHVkZXMobXdDb25maWcgYXMgc3RyaW5nKTtcbn07XG5cbmV4cG9ydCB7Y2hlY2tNd0NvbmZpZ307XG4iLCAiaW1wb3J0ICogYXMgT1BUSU9OUyBmcm9tICcuLi8uLi9vcHRpb25zLmpzb24nO1xuXG4vLyDmo4Dmn6XmmK/lkKbmnInpooTop4jnmoTlv4XopoHmgKdcbmNvbnN0IGNoZWNrTmVlZFByZXZpZXcgPSAoKTogYm9vbGVhbiA9PiB7XG5cdHJldHVybiBkb2N1bWVudC5ib2R5LmlubmVySFRNTC5zZWFyY2goT1BUSU9OUy53aWtpVGV4dEtleSkgPiAtMTtcbn07XG5cbmV4cG9ydCB7Y2hlY2tOZWVkUHJldmlld307XG4iLCAiaW1wb3J0IHthZGRMb2FkaW5nTm90aWNlLCBub3RpY2VMb2FkaW5nRWxlbWVudCwgcmVtb3ZlTG9hZGluZ05vdGljZX0gZnJvbSAnLi4vbm90aWNlJztcbmltcG9ydCB7bHVhR2V0Q1NTd2lraXRleHQsIGx1YUdldEpTT053aWtpdGV4dH0gZnJvbSAnLi4vbHVhL2x1YUdldFRleHQnO1xuaW1wb3J0IHttd0FkZEx1YVRleHQsIG13QWRkV2lraVRleHR9IGZyb20gJy4vbXdBZGRUZXh0JztcbmltcG9ydCB7bXdBcHBseU5vdGljZSwgbXdBcHBseVJldmlzaW9ufSBmcm9tICcuL213QXBwbHknO1xuaW1wb3J0IHtjaGVja0VsZW1lbnRFeGlzdH0gZnJvbSAnLi4vdXRpbC9jaGVja0VsZW1lbnRFeGlzdCc7XG5pbXBvcnQge2NoZWNrTXdDb25maWd9IGZyb20gJy4uL3V0aWwvY2hlY2tNd0NvbmZpZyc7XG5pbXBvcnQge2NoZWNrTmVlZFByZXZpZXd9IGZyb20gJy4uL3V0aWwvY2hlY2tOZWVkUHJldmlldyc7XG5pbXBvcnQge2x1YUNoZWNrfSBmcm9tICcuLi9sdWEvbHVhQ2hlY2snO1xuXG5jb25zdCB7d2dDYW5vbmljYWxOYW1lc3BhY2UsIHdnQ2Fub25pY2FsU3BlY2lhbFBhZ2VOYW1lLCB3Z1BhZ2VOYW1lfSA9IG13LmNvbmZpZy5nZXQoKTtcblxuLy8g57uZ6aG16Z2i5re75Yqg6aKE6KeIXG5jb25zdCBtd0FkZFByZXZpZXcgPSAoJGJvZHk6IEpRdWVyeTxIVE1MQm9keUVsZW1lbnQ+KTogdm9pZCA9PiB7XG5cdC8vIOmihOiniOaooeW8j+WPqumAgueUqOS6juS7peS4i+mhtemdouWGheWuueaooeWei1xuXHRpZiAoY2hlY2tNd0NvbmZpZygnd2dQYWdlQ29udGVudE1vZGVsJywgWydqYXZhc2NyaXB0JywgJ2pzJywgJ2pzb24nLCAndGV4dCcsICdjc3MnLCAnc2FuaXRpemVkLWNzcyddKSkge1xuXHRcdC8vIOaooeW8jzHvvJrpobXpnaLpooTop4hcblx0XHRpZiAoY2hlY2tFbGVtZW50RXhpc3QoJy5wcmV2aWV3bm90ZScpKSB7XG5cdFx0XHQvLyDmo4Dmn6XmmK/lkKbkuLrpooTop4jmqKHlvI9cblx0XHRcdC8vIOmihOiniOacieWPr+iDveaYr+WcqOmihOiniOWFtuS7luadoeebrlxuXHRcdFx0Y29uc3QgcGF0aFBhdGg6IHN0cmluZyA9IGRlY29kZVVSSShtdy51dGlsLmdldFVybCh3Z1BhZ2VOYW1lKSkucmVwbGFjZShcblx0XHRcdFx0bmV3IFJlZ0V4cChgXlxcXFwvPyR7bXcudXRpbC5nZXRVcmwoJycpLm1hdGNoKC9bYS16XSsvKT8uWzBdID8/ICcnfVxcXFwvYCksXG5cdFx0XHRcdCcnXG5cdFx0XHQpO1xuXG5cdFx0XHQvLyDoi6XpooTop4jnmoTpobXpnaLlubbpnZ7mnKzouqvvvIzliJnkuI3mmL7npLrpooTop4hcblx0XHRcdGlmIChwYXRoUGF0aCAhPT0gd2dQYWdlTmFtZSkge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cblx0XHRcdGNvbnN0IHdpa2l0ZXh0OiBzdHJpbmcgPSBsdWFDaGVjaygpO1xuXHRcdFx0aWYgKHdpa2l0ZXh0KSB7XG5cdFx0XHRcdC8vIOiLpeino+aekOe7k+aenOmdnuepuuaJjeaUvue9rumihOiniFxuXHRcdFx0XHRhZGRMb2FkaW5nTm90aWNlKCk7IC8vIOaUvue9ruaPkOekuu+8jOaPkOekuuS9v+eUqOiAheetieW+hUFKQVhcblx0XHRcdFx0dm9pZCBtd0FkZFdpa2lUZXh0KHdpa2l0ZXh0LCB3Z1BhZ2VOYW1lLCB0cnVlKTsgLy8g6Iul5Y+W5b6XIF9hZGRUZXh0IOWImeaYvuekuumihOiniFxuXHRcdFx0fVxuXHRcdH0gZWxzZSBpZiAoIWNoZWNrRWxlbWVudEV4aXN0KCcubXctX2FkZFRleHQtY29udGVudCcpICYmIGNoZWNrTXdDb25maWcoJ3dnQWN0aW9uJywgJ3ZpZXcnKSkge1xuXHRcdFx0Ly8g5qih5byPMu+8muS4jeaUr+aMgeaYvuekuueahOeJueauiumhtemdolxuXHRcdFx0Ly8g57uP5p+l77yM5LiN5q2i5piv5qih5p2/5qC35byP77yM5omA5pyJ5pyq5bWM5YWlJyNtdy1jbGVhcnlvdXJjYWNoZSfnmoTpobXpnaLnmobml6Dms5XmraPluLjmmL7npLpcblx0XHRcdGlmICghY2hlY2tOZWVkUHJldmlldygpKSB7XG5cdFx0XHRcdHJldHVybjsgLy8g5rKh5pyJ6aKE6KeI5b+F6KaB5pe277yM55u05o6l5YGc5q2i56iL5bqP77yM5LiN57un57ut5Yik5pat77yM5Lul5o+Q6auY5pWI546HXG5cdFx0XHR9XG5cblx0XHRcdC8vIOiLpeW3suaciSNtdy1jbGVhcnlvdXJjYWNoZeWImeWFiOa4heaOie+8jOWQpuWImeS8muWHuueOsOS4pOS4qk1lZGlhV2lraTpDbGVhcnlvdXJjYWNoZVxuXHRcdFx0JGJvZHkuZmluZCgnI213LWNsZWFyeW91cmNhY2hlJykuaHRtbCgnJyk7XG5cblx0XHRcdGlmICghY2hlY2tFbGVtZW50RXhpc3QoJ3RleHRhcmVhW25hbWU9d3BUZXh0Ym94MV0nKSkge1xuXHRcdFx0XHQvLyDpnZ7nvJbovpHmqKHlvI/miY3miafooYwgKOmihOiniOS9v+eUqOS4iuaWueeahGlm5Yy65Z2XKVxuXHRcdFx0XHRhZGRMb2FkaW5nTm90aWNlKCk7IC8vIOaUvue9ruaPkOekuu+8jOaPkOekuuS9v+eUqOiAheetieW+hUFKQVhcblx0XHRcdFx0dm9pZCBtd0FwcGx5UmV2aXNpb24od2dQYWdlTmFtZSk7IC8vIOS4uuS6huiuqeWOhuWPsueJiOacrOato+W4uOaYvuekuu+8jOS9v+eUqHdnUmV2aXNpb25JZOWPluW+l+WGheWuuVxuXHRcdFx0fVxuXHRcdH0gZWxzZSBpZiAoY2hlY2tFbGVtZW50RXhpc3QoJyNtdy1yZXZpc2lvbi1pbmZvJykgJiYgY2hlY2tNd0NvbmZpZygnd2dBY3Rpb24nLCAndmlldycpKSB7XG5cdFx0XHQvLyDmqKHlvI8z77ya6aG16Z2i5Y6G5Y+y54mI5pys5qOA6KeG77ya5aaC6ZyA5aSN5p+l55qE6aG555uu5Li66aG16Z2i5Y6G5Y+y54mI5pys77yM5pys5bel5YW35o+Q5L6b6aG16Z2i5Y6G5Y+y54mI5pys5YaF5a655pi+56S65pSv5oyBXG5cdFx0XHQvLyDmnInltYzlhaUnI213LWNsZWFyeW91cmNhY2hlJ+eahOmhtemdoueahOWOhuWPsueJiOacrOS8muWPquiDveaYvuekuuacgOaWsOeJiOeahCBfYWRkVGV4dCDlm6DmraTmiafooYzkv67mraNcblx0XHRcdGlmICghY2hlY2tFbGVtZW50RXhpc3QoJ3RleHRhcmVhW25hbWU9d3BUZXh0Ym94MV0nKSkge1xuXHRcdFx0XHQvLyDpnZ7nvJbovpHmqKHlvI/miY3miafooYwgKOmihOiniOS9v+eUqOS4iuaWueeahGlm5Yy65Z2XKVxuXHRcdFx0XHQkYm9keS5maW5kKCcjbXctY2xlYXJ5b3VyY2FjaGUnKS5odG1sKG5vdGljZUxvYWRpbmdFbGVtZW50KTsgLy8g5beu5byC5qih5byP77yI5ZCr5qOA6ZiF5L+u6K6i54mI5pys5Yig6Zmk77yJ55qE5o+S5YWl54K55LiN5ZCMXG5cdFx0XHRcdHZvaWQgbXdBcHBseVJldmlzaW9uKHdnUGFnZU5hbWUpOyAvLyDkuLrkuoborqnnibnlrprniYjmnKzmraPluLjmmL7npLrvvIzkvb/nlKh3Z1JldmlzaW9uSWTlj5blvpflhoXlrrlcblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0cmVtb3ZlTG9hZGluZ05vdGljZSgpO1xuXHRcdH1cblx0fSBlbHNlIGlmIChjaGVja013Q29uZmlnKCd3Z1BhZ2VDb250ZW50TW9kZWwnLCBbJ3NjcmlidW50bycsICdsdWEnXSkpIHtcblx0XHQvLyDmqKHlnZfpooTop4jlip/og71cblx0XHRpZiAoIWNoZWNrTmVlZFByZXZpZXcoKSkge1xuXHRcdFx0cmV0dXJuOyAvLyDmsqHmnInpooTop4jlv4XopoHml7bvvIznm7TmjqXlgZzmraLnqIvluo/vvIzkuI3nu6fnu63liKTmlq3vvIzku6Xmj5Dpq5jmlYjnjodcblx0XHR9XG5cblx0XHRpZiAoXG5cdFx0XHRjaGVja0VsZW1lbnRFeGlzdCgndGV4dGFyZWFbbmFtZT13cFRleHRib3gxXScpICYmXG5cdFx0XHRjaGVja0VsZW1lbnRFeGlzdCgndGFibGUuZGlmZicpICYmXG5cdFx0XHQhY2hlY2tFbGVtZW50RXhpc3QoJy5wcmV2aWV3bm90ZScpICYmXG5cdFx0XHQhY2hlY2tNd0NvbmZpZygnd2dBY3Rpb24nLCAndmlldycpXG5cdFx0KSB7XG5cdFx0XHQkKG5vdGljZUxvYWRpbmdFbGVtZW50KS5pbnNlcnRBZnRlcignI3dpa2lEaWZmJyk7XG5cdFx0XHR2b2lkIG13QWRkTHVhVGV4dChcblx0XHRcdFx0KCRib2R5LmZpbmQoJ3RleHRhcmVhW25hbWU9d3BUZXh0Ym94MV0nKS52YWwoKSBhcyBzdHJpbmcgfCB1bmRlZmluZWQpID8/ICcnLFxuXHRcdFx0XHR3Z1BhZ2VOYW1lLFxuXHRcdFx0XHR0cnVlXG5cdFx0XHQpO1xuXHRcdH1cblx0fSBlbHNlIGlmIChjaGVja0VsZW1lbnRFeGlzdCgnLm13LXVuZGVsZXRlLXJldmlzaW9uJykpIHtcblx0XHQvLyDmqKHlvI8077ya5bey5Yig6aG16Z2i6aKE6KeIXG5cdFx0Ly8g5bey5Yig5YaF5a656aG16Z2i5piv54m55q6K6aG16Z2i77yM5peg5rOV55So5bi46KeE5pa55byP5Yik5pat6aG16Z2i5YaF5a655qih5Z6LXG5cdFx0aWYgKCFjaGVja05lZWRQcmV2aWV3KCkpIHtcblx0XHRcdHJldHVybjsgLy8g5rKh5pyJ6aKE6KeI5b+F6KaB5pe277yM55u05o6l5YGc5q2i56iL5bqP77yM5LiN57un57ut5Yik5pat77yM5Lul5o+Q6auY5pWI546HXG5cdFx0fVxuXG5cdFx0aWYgKGNoZWNrRWxlbWVudEV4aXN0KFsnLm13LWhpZ2hsaWdodCcsICdwcmUnLCAnLm13LWpzb24nXSkpIHtcblx0XHRcdC8vIOehruiupOato+WcqOmihOiniOW3suWIoOWGheWuuVxuXHRcdFx0Y29uc3QgdGV4dGFyZWFDb250ZW50OiBzdHJpbmcgPSAkYm9keS5maW5kKCd0ZXh0YXJlYScpLnZhbCgpID8/ICcnOyAvLyDlsJ3or5Xlj5blvpflt7LliKDlhoXlrrnmupDku6PnoIFcblxuXHRcdFx0bGV0IHdpa2l0ZXh0OiBzdHJpbmcgPSBsdWFHZXRKU09Od2lraXRleHQodGV4dGFyZWFDb250ZW50KTtcblx0XHRcdHdpa2l0ZXh0IHx8PSBsdWFHZXRDU1N3aWtpdGV4dCh0ZXh0YXJlYUNvbnRlbnQpO1xuXG5cdFx0XHRpZiAod2lraXRleHQpIHtcblx0XHRcdFx0Ly8g6Iul5Y+W5b6XIF9hZGRUZXh0IOWImeaYvuekuumihOiniFxuXHRcdFx0XHRhZGRMb2FkaW5nTm90aWNlKCk7XG5cdFx0XHRcdHZvaWQgbXdBZGRXaWtpVGV4dCh3aWtpdGV4dCwgbXcuY29uZmlnLmdldCgnd2dSZWxldmFudFBhZ2VOYW1lJyksIHRydWUpO1xuXHRcdFx0fSBlbHNlIGlmICgvbW9kdWxlWyBfXXdpa2l0ZXh0LipfYWRkdGV4dC9pLnRlc3QoJGJvZHkuZmluZCgnLm13LXBhcnNlci1vdXRwdXQnKS50ZXh0KCkpKSB7XG5cdFx0XHRcdC8vIOWwneivlUx1Yeino+aekFxuXHRcdFx0XHQvLyDmnKzlip/og73nm67liY3mtYvor5XmraPluLjov5DkvZxcblx0XHRcdFx0Ly8g6Iul5ZOq5aSp6aKE6KeI5Y+I5aSx5pWI77yM6K+35Y+W5raI5rOo6YeK5LiL5pa56YKj6KGMXG5cdFx0XHRcdC8vIG13QWRkTHVhVGV4dCh0ZXh0YXJlYUNvbnRlbnQsIG13LmNvbmZpZy5nZXQoXCJ3Z1JlbGV2YW50UGFnZU5hbWVcIiksIHRydWUpO1xuXHRcdFx0fVxuXHRcdH1cblx0fSBlbHNlIGlmICghY2hlY2tFbGVtZW50RXhpc3QoJy5tdy1lZGl0bm90aWNlJykgJiYgY2hlY2tNd0NvbmZpZygnd2dDYW5vbmljYWxOYW1lc3BhY2UnLCAnc3BlY2lhbCcpKSB7XG5cdFx0Ly8g6Iul54m55q6K6aG16Z2i57y65LmP57yW6L6R5o+Q56S677yM5YiZ6KGl5LiK57yW6L6R5o+Q56S6ICjoi6XlrZjlnKgpXG5cdFx0Y29uc3QgcGFnZVN1Yk5hbWU6IHN0cmluZyA9IHdnUGFnZU5hbWUucmVwbGFjZSgvc3BlY2lhbDpbXi9dKy9pLCAnJyk7XG5cdFx0aWYgKHdnQ2Fub25pY2FsU3BlY2lhbFBhZ2VOYW1lKSB7XG5cdFx0XHRjb25zdCBmdWxsUGFnZU5hbWU6IHN0cmluZyA9IGAke3dnQ2Fub25pY2FsTmFtZXNwYWNlfToke3dnQ2Fub25pY2FsU3BlY2lhbFBhZ2VOYW1lfWA7XG5cdFx0XHR2b2lkIG13QXBwbHlOb3RpY2UoZnVsbFBhZ2VOYW1lLCBwYWdlU3ViTmFtZSk7XG5cdFx0fVxuXHR9IGVsc2Uge1xuXHRcdHJlbW92ZUxvYWRpbmdOb3RpY2UoKTsgLy8g6YO95LiN5piv55qE5oOF5Ya15YiZ5LiN5pi+56S66aKE6KeIXG5cdH1cbn07XG5cbmV4cG9ydCB7bXdBZGRQcmV2aWV3fTtcbiIsICJpbXBvcnQge2FwaX0gZnJvbSAnLi9hcGknO1xuaW1wb3J0IHtjaGVja05lZWRQcmV2aWV3fSBmcm9tICcuL3V0aWwvY2hlY2tOZWVkUHJldmlldyc7XG5pbXBvcnQge2x1YUNoZWNrfSBmcm9tICcuL2x1YS9sdWFDaGVjayc7XG5pbXBvcnQge213QWRkTHVhVGV4dH0gZnJvbSAnLi9tdy9td0FkZFRleHQnO1xuaW1wb3J0IHtub3RpY2VMb2FkaW5nRWxlbWVudH0gZnJvbSAnLi9ub3RpY2UnO1xuXG5jb25zdCB7d2dQYWdlTmFtZX0gPSBtdy5jb25maWcuZ2V0KCk7XG5cbi8vIOacrOiEmuacrOeahFRlc3RjYXNlXG5jb25zdCB3aWtpdGV4dFByZXZpZXdUZXN0Y2FzZSA9IGFzeW5jIChpc1ByZXZpZXc6IGJvb2xlYW4pOiBQcm9taXNlPHZvaWQ+ID0+IHtcblx0Ly8g5rKh5pyJ5Y+v6aKE6KeI5YWD57Sg77yM6YCA5Ye644CCXG5cdGlmICghY2hlY2tOZWVkUHJldmlldygpKSB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0Y29uc3QgdGVzdGNhc2VMaXN0OiBOb2RlTGlzdE9mPEhUTUxFbGVtZW50PiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGw8SFRNTEVsZW1lbnQ+KFxuXHRcdCcuc3BlY2lhbC13aWtpdGV4dC1wcmV2aWV3LXRlc3RjYXNlJ1xuXHQpO1xuXHQvLyDoi6XpobXpnaLkuK3msqHmnIlUZXN0Y2FzZe+8jOmAgOWHuuOAglxuXHRpZiAoIXRlc3RjYXNlTGlzdC5sZW5ndGgpIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHQvLyDmlLbpm4bkvY3kuo7pobXpnaLkuK3nmoRUZXN0Y2FzZemihOiniOWFg+e0oFxuXHRjb25zdCB0ZXN0Y2FzZURhdGFMaXN0OiB7XG5cdFx0ZWxlbWVudDogSFRNTEVsZW1lbnQ7XG5cdFx0bGFuZzogc3RyaW5nO1xuXHRcdGNvZGU6IHN0cmluZztcblx0fVtdID0gW107XG5cblx0bGV0IGk6IG51bWJlciA9IDA7XG5cdGZvciAoaSA9IDA7IGkgPCB0ZXN0Y2FzZUxpc3QubGVuZ3RoOyArK2kpIHtcblx0XHRjb25zdCBlbGVtZW50OiBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZCA9IHRlc3RjYXNlTGlzdFtpXTtcblx0XHRpZiAoIWVsZW1lbnQpIHtcblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblxuXHRcdGNvbnN0IGNvZGVFbGVtZW50OiBIVE1MRWxlbWVudCB8IG51bGwgPSBlbGVtZW50LnF1ZXJ5U2VsZWN0b3I8SFRNTEVsZW1lbnQ+KCcubXctaGlnaGxpZ2h0Jyk7XG5cdFx0aWYgKCFjb2RlRWxlbWVudCkge1xuXHRcdFx0Y29udGludWU7XG5cdFx0fVxuXG5cdFx0Y29uc3Qge2NsYXNzTmFtZX0gPSBjb2RlRWxlbWVudDtcblx0XHRpZiAoIWNsYXNzTmFtZSkge1xuXHRcdFx0Y29udGludWU7XG5cdFx0fVxuXG5cdFx0Y29uc3QgWywgY29kZUlkXSA9IC9tdy1oaWdobGlnaHQtbGFuZy0oXFxTKykvLmV4ZWMoY2xhc3NOYW1lKSA/PyBbXTtcblx0XHRjb25zdCB7bGVuZ3RofSA9IHRlc3RjYXNlRGF0YUxpc3Q7XG5cblx0XHRlbGVtZW50LnNldEF0dHJpYnV0ZSgncHJldmlldy1pZCcsIGxlbmd0aC50b1N0cmluZygpKTtcblx0XHR0ZXN0Y2FzZURhdGFMaXN0W2xlbmd0aF0gPSB7XG5cdFx0XHRlbGVtZW50LFxuXHRcdFx0bGFuZzogY29kZUlkPy50b0xvd2VyQ2FzZSgpID8/ICcnLFxuXHRcdFx0Y29kZTogY29kZUVsZW1lbnQudGV4dENvbnRlbnQ/LnRyaW0oKSA/PyAnJyxcblx0XHR9OyAvLyBSZXBsYWNlIEFycmF5I3B1c2ggdG8gYXZvaWQgY29yZS1qcyBwb2x5ZmlsbGluZ1xuXHR9XG5cblx0Ly8g5pW055CG6aG16Z2i5Lit55qEVGVzdGNhc2XpooTop4jlhYPntKDvvIzlubbmlL7nva7igJxb6L295YWl5LitXeKAnea2iOaBr1xuXHRsZXQgcGFja2FnZVdpa2l0ZXh0OiBzdHJpbmcgPSAnJztcblx0Zm9yIChjb25zdCB0ZXN0Y2FzZUl0ZW0gb2YgT2JqZWN0LnZhbHVlcyh0ZXN0Y2FzZURhdGFMaXN0KSkge1xuXHRcdGNvbnN0IHtjb2RlLCBlbGVtZW50LCBsYW5nfSA9IHRlc3RjYXNlSXRlbTtcblxuXHRcdGlmICghY29kZSkge1xuXHRcdFx0Y29udGludWU7XG5cdFx0fVxuXG5cdFx0Y29uc3QgJGVsZW1lbnQ6IEpRdWVyeSA9ICQoZWxlbWVudCk7XG5cblx0XHRpZiAoWydqYXZhc2NyaXB0JywgJ2pzJywgJ2NzcycsICdqc29uJywgJ3RleHQnXS5pbmNsdWRlcyh0ZXN0Y2FzZUl0ZW0ubGFuZykpIHtcblx0XHRcdGNvbnN0IHdpa2l0ZXh0OiBzdHJpbmcgPSBsdWFDaGVjayhjb2RlLCBsYW5nKTtcblx0XHRcdGlmICh3aWtpdGV4dCkge1xuXHRcdFx0XHQvLyDoi6Xop6PmnpDnu5PmnpzpnZ7nqbrmiY3mlL7nva7pooTop4hcblx0XHRcdFx0JGVsZW1lbnQucHJlcGVuZChub3RpY2VMb2FkaW5nRWxlbWVudCk7XG5cdFx0XHRcdHBhY2thZ2VXaWtpdGV4dCArPSBgPGRpdiBjbGFzcz1cInNwZWNpYWwtd2lraXRleHQtcHJldmlldy10ZXN0Y2FzZS0ke2l9XCI+XFxuJHt3aWtpdGV4dH1cXG48L2Rpdj5gO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSBpZiAoWydsdWEnLCAnc2NyaWJ1bnRvJ10uaW5jbHVkZXMobGFuZykpIHtcblx0XHRcdHZvaWQgbXdBZGRMdWFUZXh0KFxuXHRcdFx0XHRjb2RlLFxuXHRcdFx0XHR3Z1BhZ2VOYW1lLFxuXHRcdFx0XHRpc1ByZXZpZXcsXG5cdFx0XHRcdCgoKSA9PiB7XG5cdFx0XHRcdFx0cmV0dXJuICh3aWtpdGV4dDogc3RyaW5nKTogdm9pZCA9PiB7XG5cdFx0XHRcdFx0XHQkZWxlbWVudC5wcmVwZW5kKHdpa2l0ZXh0KTtcblx0XHRcdFx0XHR9O1xuXHRcdFx0XHR9KSgpXG5cdFx0XHQpO1xuXHRcdH1cblx0fVxuXG5cdC8vIOWwhuaVtOeQhuWujOeahFRlc3RjYXNl6aKE6KeI5YWD57Sg57uf5LiA5Y+R6YCBQVBJ6K+35rGC77yM5bm25bCG6L+U5Zue57uT5p6c5YiG5Y+R5Yiw5ZCEVGVzdGNhc2Vcblx0aWYgKHBhY2thZ2VXaWtpdGV4dCkge1xuXHRcdHBhY2thZ2VXaWtpdGV4dCA9IGA8ZGl2IGNsYXNzPVwic3BlY2lhbC13aWtpdGV4dC1wcmV2aWV3LXRlc3RjYXNlLXVuZGVmaW5lZFwiPiR7cGFja2FnZVdpa2l0ZXh0fTwvZGl2PmA7XG5cdFx0dHJ5IHtcblx0XHRcdGNvbnN0IHBhcmFtczogQXBpUGFyc2VQYXJhbXMgPSB7XG5cdFx0XHRcdGFjdGlvbjogJ3BhcnNlJyxcblx0XHRcdFx0Zm9ybWF0OiAnanNvbicsXG5cdFx0XHRcdGZvcm1hdHZlcnNpb246ICcyJyxcblx0XHRcdFx0dGV4dDogcGFja2FnZVdpa2l0ZXh0LFxuXHRcdFx0XHRjb250ZW50bW9kZWw6ICd3aWtpdGV4dCcsXG5cdFx0XHRcdHByb3A6ICd0ZXh0Jyxcblx0XHRcdH07XG5cdFx0XHRpZiAoaXNQcmV2aWV3KSB7XG5cdFx0XHRcdHBhcmFtcy5kaXNhYmxlZWRpdHNlY3Rpb24gPSB0cnVlO1xuXHRcdFx0XHRwYXJhbXMucHJldmlldyA9IHRydWU7XG5cdFx0XHR9XG5cblx0XHRcdGNvbnN0IGRhdGEgPSBhd2FpdCBhcGkuZ2V0KHBhcmFtcyk7XG5cdFx0XHRpZiAoIWRhdGE/LlsncGFyc2UnXT8udGV4dCkge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cblx0XHRcdGNvbnN0IHBhcnNlZFdpa2l0ZXh0OiBzdHJpbmcgPSAoZGF0YVsncGFyc2UnXS50ZXh0IGFzIHN0cmluZykudHJpbSgpO1xuXHRcdFx0aWYgKHBhcnNlZFdpa2l0ZXh0KSB7XG5cdFx0XHRcdGNvbnN0ICRwYXJzZWRFbGVtZW50OiBKUXVlcnkgPSAkKHBhcnNlZFdpa2l0ZXh0KTtcblx0XHRcdFx0Zm9yIChjb25zdCBba2V5LCB0ZXN0Y2FzZUl0ZW1dIG9mIE9iamVjdC5lbnRyaWVzKHRlc3RjYXNlRGF0YUxpc3QpKSB7XG5cdFx0XHRcdFx0Y29uc3Qge2VsZW1lbnQsIGxhbmd9ID0gdGVzdGNhc2VJdGVtO1xuXG5cdFx0XHRcdFx0aWYgKCFbJ2phdmFzY3JpcHQnLCAnanMnLCAndGV4dCcsICdjc3MnLCAnanNvbiddLmluY2x1ZGVzKGxhbmcpKSB7XG5cdFx0XHRcdFx0XHRjb250aW51ZTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRjb25zdCAkZWxlbWVudDogSlF1ZXJ5PEhUTUxFbGVtZW50PiA9ICRwYXJzZWRFbGVtZW50LmZpbmQoXG5cdFx0XHRcdFx0XHRgLnNwZWNpYWwtd2lraXRleHQtcHJldmlldy10ZXN0Y2FzZS11bmRlZmluZWQgPiAuc3BlY2lhbC13aWtpdGV4dC1wcmV2aWV3LXRlc3RjYXNlLSR7a2V5fWBcblx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdGlmICghJGVsZW1lbnQubGVuZ3RoKSB7XG5cdFx0XHRcdFx0XHRjb250aW51ZTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRjb25zdCAkYWRkVGFyZ2V0OiBKUXVlcnkgPSAkKGVsZW1lbnQpLmZpbmQoJyNzcGVjaWFsd2lraXRleHQtcHJldmlldy1sb2FkaW5nJyk7XG5cdFx0XHRcdFx0JGFkZFRhcmdldC5odG1sKCRlbGVtZW50Lmh0bWwoKSk7XG5cdFx0XHRcdFx0bXcuaG9vaygnd2lraXBhZ2UuY29udGVudCcpLmZpcmUoJGFkZFRhcmdldCk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9IGNhdGNoIHt9XG5cdH1cbn07XG5cbmV4cG9ydCB7d2lraXRleHRQcmV2aWV3VGVzdGNhc2V9O1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsSUFBQUEscUJBQXNCQyxRQUFBLGlCQUFBOztBQ0NmLElBQU1DLHdCQUF3QjtBQUM5QixJQUFNQyxzQkFBc0I7O0FDRG5DLElBQUFDLHFCQUFrQkMsUUFBQUosUUFBQSxrQkFBQSxHQUFBLENBQUE7Ozs7OztBQ0RsQixJQUFBSyxvQkFBdUJMLFFBQUEsaUJBQUE7QUFFdkIsSUFBTU0sa0JBQWtCQSxNQUFNO0FBQzdCLFNBQU87SUFDTkMsU0FBQSxHQUFRRixrQkFBQUcsVUFBUztNQUNoQkMsSUFBSTtNQUNKLFdBQVc7TUFDWCxXQUFXO0lBQ1osQ0FBQztJQUNEQyxVQUFBLEdBQVNMLGtCQUFBRyxVQUFTO01BQ2pCQyxJQUFJO01BQ0osV0FBVztNQUNYLFdBQVc7SUFDWixDQUFDO0VBQ0Y7QUFDRDtBQUVBLElBQU1FLGVBQWVMLGdCQUFnQjtBQUVyQyxJQUFNTSxhQUFnREMsU0FBUTtBQUM3RCxTQUFPRixhQUFhRSxHQUFHLEtBQUtBO0FBQzdCOztBRGZBLElBQU1OLFNBQVNBLE1BQ2RKLG1DQUFBVyxRQUFBQyxjQUFBWixtQkFBQVcsUUFBQUUsVUFBQSxNQUNDYixtQ0FBQVcsUUFBQUMsY0FBQyxPQUFBO0VBQUlFLEtBQUtDO0VBQU9DLFVBQVM7RUFBUUMsT0FBTTtFQUFLQyxRQUFPO0FBQUEs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QUcsQ0FDekY7QUFDQSxnQkFBSSxDQUFDb0MsU0FBU2dDLFFBQVE7QUFDckI7WUFDRDtBQUVBLGtCQUFNK0osYUFBcUJsTSxFQUFFWSxPQUFPLEVBQUVSLEtBQUssa0NBQWtDO0FBQzdFOEwsdUJBQVdoTSxLQUFLQyxTQUFTRCxLQUFLLENBQUM7QUFDL0JHLGVBQUdDLEtBQUssa0JBQWtCLEVBQUVDLEtBQUsyTCxVQUFVO1VBQzVDO1FBQ0Q7TUFDRCxRQUFRO01BQUM7SUFDVjtFQUNELENBQUE7QUFBQSxTQUFBLFNBL0hNMUIseUJBQUEyQixNQUFBO0FBQUEsV0FBQTFCLE1BQUFuRSxNQUFBLE1BQUFDLFNBQUE7RUFBQTtBQUFBLEVBQUE7O0FsQkxOLE1BQUEsR0FBS3RKLG1CQUFBbVAsU0FBUSxFQUFFQyxLQUFLLFNBQVNDLGdCQUFnQnZNLE9BQXNDO0FBRWxGMEosZUFBYTFKLEtBQUs7QUFFbEIsT0FBS3lLLHdCQUF3QixJQUFJO0FBQ2xDLENBQUM7IiwKICAibmFtZXMiOiBbImltcG9ydF9leHRfZ2FkZ2V0NiIsICJyZXF1aXJlIiwgInByZXZpZXdMb2FkaW5nQ29udGVudCIsICJwcmV2aWV3TG9hZGluZ0lubmVyIiwgImltcG9ydF9leHRfZ2FkZ2V0MiIsICJfX3RvRVNNIiwgImltcG9ydF9leHRfZ2FkZ2V0IiwgImdldEkxOG5NZXNzYWdlcyIsICJGYWlsZWQiLCAibG9jYWxpemUiLCAiZW4iLCAiTG9hZGluZyIsICJpMThuTWVzc2FnZXMiLCAiZ2V0TWVzc2FnZSIsICJrZXkiLCAiZGVmYXVsdCIsICJjcmVhdGVFbGVtZW50IiwgIkZyYWdtZW50IiwgInNyYyIsICJBbGVydF9kZWZhdWx0IiwgImRlY29kaW5nIiwgIndpZHRoIiwgImhlaWdodCIsICJpZCIsICJjbGFzc05hbWUiLCAiQWpheF9sb2FkZXJfZGVmYXVsdCIsICJpbXBvcnRfZXh0X2dhZGdldDMiLCAiY2hlY2tFbGVtZW50RXhpc3QiLCAic2VsZWN0b3JzIiwgInNlbGVjdG9yQXJyYXkiLCAiZ2VuZXJhdGVBcnJheSIsICJfaXRlcmF0b3IyIiwgIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwgIl9zdGVwMiIsICJzIiwgIm4iLCAiZG9uZSIsICJzZWxlY3RvciIsICJ2YWx1ZSIsICJkb2N1bWVudCIsICJxdWVyeVNlbGVjdG9yIiwgImVyciIsICJlIiwgImYiLCAiYWRkUGFyc2VkV2lraXRleHQiLCAicGFyc2VkV2lraXRleHQiLCAiJGJvZHkiLCAiJCIsICIkcGFyc2VkV2lraXRleHQiLCAiaHRtbCIsICIkZWxlbWVudCIsICJmaW5kIiwgIm13IiwgImhvb2siLCAiZmlyZSIsICJhcHBlbmQiLCAibm90aWNlRmFpbEVsZW1lbnQiLCAibm90aWNlTG9hZGluZ0VsZW1lbnQiLCAicmVwbGFjZURPTSIsICJlbGVtZW50IiwgImFkZExvYWRpbmdOb3RpY2UiLCAibG9hZGluZ0ZhaWxOb3RpY2UiLCAicmVtb3ZlTG9hZGluZ05vdGljZSIsICJ2ZXJzaW9uIiwgIndpa2lUZXh0S2V5IiwgImx1YUFkZFRleHQiLCAiaW5wdXRTdHJpbmciLCAibmV3U3RyaW5nIiwgImlzRXNjYXBlIiwgImVzY2FwZVN0cmluZyIsICJKU09OIiwgInBhcnNlIiwgImNvbmNhdCIsICJzdHJpbmdpZnkiLCAicmVwbGFjZSIsICJsdWFHZXRTdHJpbmciLCAidGVzdFN0cmluZ0V4ZWNBcnJheSIsICJleGVjIiwgInRlc3RTdHJpbmciLCAic2xpY2UiLCAiTWF0aCIsICJtYXgiLCAibGVuZ3RoIiwgInRyaW1DaGVjayIsICJ0cmltIiwgImZpcnN0Q2hhciIsICJjaGFyQXQiLCAiYXQiLCAibHVhR2V0Q29udGVudFRleHQiLCAid2lraXRleHQiLCAiUmVnRXhwIiwgInN1YnN0cmluZyIsICJ0ZW1wVGV4dCIsICJsdWFHZXRPYmpUZXh0IiwgImx1YUdldENTU3dpa2l0ZXh0IiwgIl9yZWYiLCAiX2RvY3VtZW50JHF1ZXJ5U2VsZWN0IiwgImNzc1RleHQiLCAibHVhR2V0SlNPTndpa2l0ZXh0IiwgIl9yZWYyIiwgIl9kb2N1bWVudCRxdWVyeVNlbGVjdDIiLCAiSlNPTlRleHQiLCAianNvbkRhdGEiLCAiX2kiLCAiX09iamVjdCRlbnRyaWVzIiwgIk9iamVjdCIsICJlbnRyaWVzIiwgInRlc3QiLCAiX2kyIiwgIl9PYmplY3QkZW50cmllczIiLCAiayIsICJ2IiwgImx1YUdldEpTd2lraXRleHQiLCAiX3JlZjMiLCAiX2RvY3VtZW50JHF1ZXJ5U2VsZWN0MyIsICJqc1RleHQiLCAiaW1wb3J0X2V4dF9nYWRnZXQ0IiwgImFwaSIsICJpbml0TXdBcGkiLCAid2dVc2VyTGFuZ3VhZ2UiLCAid2dVc2VyVmFyaWFudCIsICJjb25maWciLCAiZ2V0IiwgImdldExhbmd1YWdlIiwgImxhbmciLCAiaW5jbHVkZXMiLCAic2tpbiIsICJtd0FkZFdpa2lUZXh0IiwgIl9yZWY0IiwgIl9hc3luY1RvR2VuZXJhdG9yIiwgInBhZ2VOYW1lIiwgImlzUHJldmlldyIsICJwYXJhbXMiLCAiYWN0aW9uIiwgImZvcm1hdCIsICJmb3JtYXR2ZXJzaW9uIiwgInRpdGxlIiwgImNvbnRlbnRtb2RlbCIsICJ0ZXh0IiwgInByb3AiLCAidXNlbGFuZyIsICJ1c2Vza2luIiwgImRpc2FibGVlZGl0c2VjdGlvbiIsICJwcmV2aWV3IiwgIl9kYXRhJHBhcnNlIiwgImRhdGEiLCAiX3giLCAiX3gyIiwgIl94MyIsICJhcHBseSIsICJhcmd1bWVudHMiLCAibXdBZGRMdWFUZXh0IiwgIl9yZWY1IiwgImNhbGxCYWNrIiwgInRlbXBNb2R1bGVOYW1lIiwgIm1vZHVsZUNhbGwiLCAiX2RhdGEkcGFyc2UyIiwgInRlbXBsYXRlc2FuZGJveHRpdGxlIiwgInRlbXBsYXRlc2FuZGJveHRleHQiLCAidGVtcGxhdGVzYW5kYm94Y29udGVudG1vZGVsIiwgInRlbXBsYXRlc2FuZGJveGNvbnRlbnRmb3JtYXQiLCAic2VhcmNoIiwgIl94NCIsICJfeDUiLCAiX3g2IiwgIl94NyIsICJ3Z1BhZ2VDb250ZW50TW9kZWwiLCAibHVhQ2hlY2siLCAiY29udGVudE1vZGVsIiwgInRvTG93ZXJDYXNlIiwgInNraW4yIiwgIndnUmV2aXNpb25JZCIsICJtd0FwcGx5Tm90aWNlIiwgIl9yZWY2IiwgImN1cnJlbnRQYWdlTmFtZSIsICJwYWdlU3ViTmFtZSIsICJfZGF0YSRwYXJzZTMiLCAic21heGFnZSIsICJtYXhhZ2UiLCAiX3g4IiwgIl94OSIsICJtd0FwcGx5UmV2aXNpb24iLCAiX3JlZjciLCAiX2RhdGEkcGFyc2U0IiwgIm9sZGlkIiwgInBhZ2VDb250ZW50IiwgIl94MTAiLCAiaW1wb3J0X2V4dF9nYWRnZXQ1IiwgImFsbE13Q29uZmlnIiwgImNoZWNrTXdDb25maWciLCAiY29uZmlnS2V5IiwgImV4cGVjdENvbmZpZyIsICJtd0NvbmZpZyIsICJTdHJpbmciLCAiY2hlY2tOZWVkUHJldmlldyIsICJib2R5IiwgImlubmVySFRNTCIsICJ3Z0Nhbm9uaWNhbE5hbWVzcGFjZSIsICJ3Z0Nhbm9uaWNhbFNwZWNpYWxQYWdlTmFtZSIsICJ3Z1BhZ2VOYW1lIiwgIm13QWRkUHJldmlldyIsICJfbXckdXRpbCRnZXRVcmwkbWF0Y2giLCAiX213JHV0aWwkZ2V0VXJsJG1hdGNoMiIsICJwYXRoUGF0aCIsICJkZWNvZGVVUkkiLCAidXRpbCIsICJnZXRVcmwiLCAibWF0Y2giLCAiXyRib2R5JGZpbmQkdmFsIiwgImluc2VydEFmdGVyIiwgInZhbCIsICJfJGJvZHkkZmluZCR2YWwyIiwgInRleHRhcmVhQ29udGVudCIsICJmdWxsUGFnZU5hbWUiLCAid2dQYWdlTmFtZTIiLCAid2lraXRleHRQcmV2aWV3VGVzdGNhc2UiLCAiX3JlZjgiLCAidGVzdGNhc2VMaXN0IiwgInF1ZXJ5U2VsZWN0b3JBbGwiLCAidGVzdGNhc2VEYXRhTGlzdCIsICJpIiwgIl9leGVjIiwgIl9jb2RlSWQkdG9Mb3dlckNhc2UiLCAiX2NvZGVFbGVtZW50JHRleHRDb250IiwgIl9jb2RlRWxlbWVudCR0ZXh0Q29udDIiLCAiY29kZUVsZW1lbnQiLCAiY29kZUlkIiwgInNldEF0dHJpYnV0ZSIsICJ0b1N0cmluZyIsICJjb2RlIiwgInRleHRDb250ZW50IiwgInBhY2thZ2VXaWtpdGV4dCIsICJfaTMiLCAiX09iamVjdCR2YWx1ZXMiLCAidmFsdWVzIiwgInRlc3RjYXNlSXRlbSIsICJwcmVwZW5kIiwgIl9kYXRhJHBhcnNlNSIsICIkcGFyc2VkRWxlbWVudCIsICJfaTQiLCAiX09iamVjdCRlbnRyaWVzMyIsICIkYWRkVGFyZ2V0IiwgIl94MTEiLCAiZ2V0Qm9keSIsICJ0aGVuIiwgInNwZWNpYWxXaWtpdGV4dCJdCn0K +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL1NwZWNpYWxXaWtpdGV4dC9TcGVjaWFsV2lraXRleHQudHMiLCAic3JjL1NwZWNpYWxXaWtpdGV4dC9jb21wb25lbnRzL1NwZWNpYWxXaWtpdGV4dC5tb2R1bGUubGVzcyIsICJzcmMvU3BlY2lhbFdpa2l0ZXh0L2NvbXBvbmVudHMvZ2VuZXJhdGVFbGVtZW50cy50c3giLCAic3JjL1NwZWNpYWxXaWtpdGV4dC9tb2R1bGVzL2kxOG4udHMiLCAic3JjL1NwZWNpYWxXaWtpdGV4dC9tb2R1bGVzL3V0aWwvY2hlY2tFbGVtZW50RXhpc3QudHMiLCAic3JjL1NwZWNpYWxXaWtpdGV4dC9tb2R1bGVzL3V0aWwvYWRkUGFyc2VkV2lraXRleHQudHMiLCAic3JjL1NwZWNpYWxXaWtpdGV4dC9tb2R1bGVzL25vdGljZS50cyIsICJzcmMvU3BlY2lhbFdpa2l0ZXh0L29wdGlvbnMuanNvbiIsICJzcmMvU3BlY2lhbFdpa2l0ZXh0L21vZHVsZXMvbHVhL2x1YUFkZFRleHQudHMiLCAic3JjL1NwZWNpYWxXaWtpdGV4dC9tb2R1bGVzL2x1YS9sdWFHZXRUZXh0LnRzIiwgInNyYy9TcGVjaWFsV2lraXRleHQvbW9kdWxlcy9hcGkudHMiLCAic3JjL1NwZWNpYWxXaWtpdGV4dC9tb2R1bGVzL3V0aWwvZ2V0TGFuZ3VhZ2UudHMiLCAic3JjL1NwZWNpYWxXaWtpdGV4dC9tb2R1bGVzL213L213QWRkVGV4dC50cyIsICJzcmMvU3BlY2lhbFdpa2l0ZXh0L21vZHVsZXMvbHVhL2x1YUNoZWNrLnRzIiwgInNyYy9TcGVjaWFsV2lraXRleHQvbW9kdWxlcy9tdy9td0FwcGx5LnRzIiwgInNyYy9TcGVjaWFsV2lraXRleHQvbW9kdWxlcy91dGlsL2NoZWNrTXdDb25maWcudHMiLCAic3JjL1NwZWNpYWxXaWtpdGV4dC9tb2R1bGVzL3V0aWwvY2hlY2tOZWVkUHJldmlldy50cyIsICJzcmMvU3BlY2lhbFdpa2l0ZXh0L21vZHVsZXMvbXcvbXdBZGRQcmV2aWV3LnRzIiwgInNyYy9TcGVjaWFsV2lraXRleHQvbW9kdWxlcy93aWtpdGV4dFByZXZpZXdUZXN0Y2FzZS50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHtnZXRCb2R5fSBmcm9tICdleHQuZ2FkZ2V0LlV0aWwnO1xuaW1wb3J0IHttd0FkZFByZXZpZXd9IGZyb20gJy4vbW9kdWxlcy9tdy9td0FkZFByZXZpZXcnO1xuaW1wb3J0IHt3aWtpdGV4dFByZXZpZXdUZXN0Y2FzZX0gZnJvbSAnLi9tb2R1bGVzL3dpa2l0ZXh0UHJldmlld1Rlc3RjYXNlJztcblxudm9pZCBnZXRCb2R5KCkudGhlbihmdW5jdGlvbiBzcGVjaWFsV2lraXRleHQoJGJvZHk6IEpRdWVyeTxIVE1MQm9keUVsZW1lbnQ+KTogdm9pZCB7XG5cdC8vIOaJp+ihjOmihOiniFxuXHRtd0FkZFByZXZpZXcoJGJvZHkpO1xuXHQvLyDmo4Dmn6XmtYvor5XmoLfkvotcblx0dm9pZCB3aWtpdGV4dFByZXZpZXdUZXN0Y2FzZSh0cnVlKTtcbn0pO1xuIiwgImltcG9ydCBcImVzYnVpbGQtY3NzLW1vZHVsZXMtcGx1Z2luLW5zLWNzczpzcmMvU3BlY2lhbFdpa2l0ZXh0L2NvbXBvbmVudHMvU3BlY2lhbFdpa2l0ZXh0Lm1vZHVsZS5sZXNzXCI7XG5leHBvcnQgY29uc3QgcHJldmlld0xvYWRpbmdDb250ZW50ID0gXCJTcGVjaWFsV2lraXRleHQtbW9kdWxlX19wcmV2aWV3LWxvYWRpbmdfX2NvbnRlbnRfMFByRGxHX180OTBcIjtcbmV4cG9ydCBjb25zdCBwcmV2aWV3TG9hZGluZ0lubmVyID0gXCJTcGVjaWFsV2lraXRleHQtbW9kdWxlX19wcmV2aWV3LWxvYWRpbmdfX2lubmVyXzBQckRsR19fNDkwXCI7XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgXCJwcmV2aWV3TG9hZGluZ0NvbnRlbnRcIjogcHJldmlld0xvYWRpbmdDb250ZW50LFxuICBcInByZXZpZXdMb2FkaW5nSW5uZXJcIjogcHJldmlld0xvYWRpbmdJbm5lclxufTtcbiAgICAgICIsICJpbXBvcnQge3ByZXZpZXdMb2FkaW5nQ29udGVudCwgcHJldmlld0xvYWRpbmdJbm5lcn0gZnJvbSAnLi9TcGVjaWFsV2lraXRleHQubW9kdWxlLmxlc3MnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ2V4dC5nYWRnZXQuSlNYJztcbmltcG9ydCBhamF4TG9hZGVyIGZyb20gJy4uL2ltYWdlcy9BamF4LWxvYWRlci5naWYnO1xuaW1wb3J0IGFsZXJ0IGZyb20gJy4uL2ltYWdlcy9BbGVydC5wbmcnO1xuaW1wb3J0IHtnZXRNZXNzYWdlfSBmcm9tICcuLi9tb2R1bGVzL2kxOG4nO1xuXG5jb25zdCBGYWlsZWQgPSAoKSA9PiAoXG5cdDw+XG5cdFx0PGltZyBzcmM9e2FsZXJ0fSBkZWNvZGluZz1cImFzeW5jXCIgd2lkdGg9XCIzMlwiIGhlaWdodD1cIjMyXCIgLz5cblx0XHQ8c3Bhbj4mbmJzcDt7Z2V0TWVzc2FnZSgnRmFpbGVkJyl9PC9zcGFuPlxuXHQ8Lz5cbik7XG5cbmNvbnN0IExvYWRpbmcgPSAoKSA9PiAoXG5cdDxkaXYgaWQ9XCJzcGVjaWFsd2lraXRleHQtcHJldmlldy1sb2FkaW5nXCI+XG5cdFx0PGRpdiBjbGFzc05hbWU9e1sncXVvdGVib3gnLCBwcmV2aWV3TG9hZGluZ0lubmVyXX0gaWQ9XCJzcGVjaWFsd2lraXRleHQtcHJldmlldy1sb2FkaW5nX19pbm5lclwiPlxuXHRcdFx0PGRpdiBjbGFzc05hbWU9e3ByZXZpZXdMb2FkaW5nQ29udGVudH0gaWQ9XCJzcGVjaWFsd2lraXRleHQtcHJldmlldy1sb2FkaW5nX19jb250ZW50XCI+XG5cdFx0XHRcdDxpbWcgc3JjPXthamF4TG9hZGVyfSBkZWNvZGluZz1cImFzeW5jXCIgd2lkdGg9XCIzMlwiIGhlaWdodD1cIjMyXCIgLz5cblx0XHRcdFx0PHNwYW4+Jm5ic3A7e2dldE1lc3NhZ2UoJ0xvYWRpbmcnKX08L3NwYW4+XG5cdFx0XHQ8L2Rpdj5cblx0XHQ8L2Rpdj5cblx0PC9kaXY+XG4pO1xuXG5leHBvcnQge0ZhaWxlZCwgTG9hZGluZ307XG4iLCAiaW1wb3J0IHtsb2NhbGl6ZX0gZnJvbSAnZXh0LmdhZGdldC5pMThuJztcblxuY29uc3QgZ2V0STE4bk1lc3NhZ2VzID0gKCkgPT4ge1xuXHRyZXR1cm4ge1xuXHRcdEZhaWxlZDogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdGYWlsZWQgdG8gbG9hZCBwcmV2aWV3LicsXG5cdFx0XHQnemgtaGFucyc6ICfpooTop4jliqDovb3lpLHotKUnLFxuXHRcdFx0J3poLWhhbnQnOiAn6aCQ6Ka96LyJ5YWl5aSx6LSlJyxcblx0XHR9KSxcblx0XHRMb2FkaW5nOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ0xvYWRpbmcgcHJldmlldy4uLicsXG5cdFx0XHQnemgtaGFucyc6ICfpooTop4jliqDovb3kuK3igKbigKYnLFxuXHRcdFx0J3poLWhhbnQnOiAn6aCQ6Ka96LyJ5YWl5Lit4oCm4oCmJyxcblx0XHR9KSxcblx0fTtcbn07XG5cbmNvbnN0IGkxOG5NZXNzYWdlcyA9IGdldEkxOG5NZXNzYWdlcygpO1xuXG5jb25zdCBnZXRNZXNzYWdlOiBHZXRNZXNzYWdlczx0eXBlb2YgaTE4bk1lc3NhZ2VzPiA9IChrZXkpID0+IHtcblx0cmV0dXJuIGkxOG5NZXNzYWdlc1trZXldIHx8IGtleTtcbn07XG5cbmV4cG9ydCB7Z2V0TWVzc2FnZX07XG4iLCAiaW1wb3J0IHtnZW5lcmF0ZUFycmF5fSBmcm9tICdleHQuZ2FkZ2V0LlV0aWwnO1xuXG4vLyDmo4Dmn6VzZWxlY3RvcuWvueW6lOeahERPTeWvueixoeaYr+WQpuWtmOWcqFxuY29uc3QgY2hlY2tFbGVtZW50RXhpc3QgPSAoc2VsZWN0b3JzOiBzdHJpbmcgfCBzdHJpbmdbXSk6IGJvb2xlYW4gPT4ge1xuXHRjb25zdCBzZWxlY3RvckFycmF5OiBzdHJpbmdbXSA9IGdlbmVyYXRlQXJyYXkoc2VsZWN0b3JzKTtcblxuXHRmb3IgKGNvbnN0IHNlbGVjdG9yIG9mIHNlbGVjdG9yQXJyYXkpIHtcblx0XHRpZiAoZG9jdW1lbnQucXVlcnlTZWxlY3RvcihzZWxlY3RvcikpIHtcblx0XHRcdHJldHVybiB0cnVlO1xuXHRcdH1cblx0fVxuXG5cdHJldHVybiBmYWxzZTtcbn07XG5cbmV4cG9ydCB7Y2hlY2tFbGVtZW50RXhpc3R9O1xuIiwgImltcG9ydCBSZWFjdCBmcm9tICdleHQuZ2FkZ2V0LkpTWCc7XG5pbXBvcnQge2NoZWNrRWxlbWVudEV4aXN0fSBmcm9tICcuL2NoZWNrRWxlbWVudEV4aXN0JztcblxuLy8g5bCG6Kej5p6Q5ZCO55qEd2lraXRleHTliqDlhaXpobXpnaLkuK1cbmNvbnN0IGFkZFBhcnNlZFdpa2l0ZXh0ID0gKHBhcnNlZFdpa2l0ZXh0OiBzdHJpbmcgfCBSZWFjdC5SZWFjdEVsZW1lbnQpOiB2b2lkID0+IHtcblx0Y29uc3QgJGJvZHk6IEpRdWVyeTxIVE1MQm9keUVsZW1lbnQ+ID0gJCgnYm9keScpO1xuXHRjb25zdCAkcGFyc2VkV2lraXRleHQ6IEpRdWVyeSA9ICQoKS5odG1sKHBhcnNlZFdpa2l0ZXh0KTtcblxuXHRpZiAoY2hlY2tFbGVtZW50RXhpc3QoJyNzcGVjaWFsd2lraXRleHQtcHJldmlldy1sb2FkaW5nJykpIHtcblx0XHRjb25zdCAkZWxlbWVudDogSlF1ZXJ5ID0gJGJvZHkuZmluZCgnI3NwZWNpYWx3aWtpdGV4dC1wcmV2aWV3LWxvYWRpbmcnKTtcblx0XHQkZWxlbWVudC5odG1sKHBhcnNlZFdpa2l0ZXh0KTtcblx0XHRtdy5ob29rKCd3aWtpcGFnZS5jb250ZW50JykuZmlyZSgkZWxlbWVudCk7XG5cdH0gZWxzZSBpZiAoY2hlY2tFbGVtZW50RXhpc3QoJy5kaWZmLWN1cnJlbnR2ZXJzaW9uLXRpdGxlJykpIHtcblx0XHQkYm9keS5maW5kKCcuZGlmZi1jdXJyZW50dmVyc2lvbi10aXRsZScpLmFwcGVuZCgkcGFyc2VkV2lraXRleHQpO1xuXHR9IGVsc2UgaWYgKGNoZWNrRWxlbWVudEV4aXN0KCcucHJldmlld25vdGUnKSkge1xuXHRcdCRib2R5LmZpbmQoJy5wcmV2aWV3bm90ZScpLmFwcGVuZCgkcGFyc2VkV2lraXRleHQpO1xuXHR9IGVsc2UgaWYgKGNoZWNrRWxlbWVudEV4aXN0KCcubXctdW5kZWxldGUtcmV2aXNpb24nKSkge1xuXHRcdCRib2R5LmZpbmQoJy5tdy11bmRlbGV0ZS1yZXZpc2lvbicpLmFwcGVuZCgkcGFyc2VkV2lraXRleHQpO1xuXHR9IGVsc2UgaWYgKGNoZWNrRWxlbWVudEV4aXN0KCcjbXctY29udGVudC10ZXh0JykpIHtcblx0XHQkYm9keS5maW5kKCcjbXctY29udGVudC10ZXh0JykuYXBwZW5kKCRwYXJzZWRXaWtpdGV4dCk7XG5cdH1cblxuXHRtdy5ob29rKCd3aWtpcGFnZS5jb250ZW50JykuZmlyZSgkcGFyc2VkV2lraXRleHQpO1xufTtcblxuZXhwb3J0IHthZGRQYXJzZWRXaWtpdGV4dH07XG4iLCAiaW1wb3J0IHtGYWlsZWQsIExvYWRpbmd9IGZyb20gJy4uL2NvbXBvbmVudHMvZ2VuZXJhdGVFbGVtZW50cyc7XG5pbXBvcnQgUmVhY3QgZnJvbSAnZXh0LmdhZGdldC5KU1gnO1xuaW1wb3J0IHthZGRQYXJzZWRXaWtpdGV4dH0gZnJvbSAnLi91dGlsL2FkZFBhcnNlZFdpa2l0ZXh0JztcblxuLy8gW1tGaWxlOkdub21lLWRpYWxvZy13YXJuaW5nMi5zdmd8MzJweF1dXG4vLyAte3poLWhhbnM66aKE6KeI5Yqg6L295aSx6LSlO3poLWhhbnQ66aCQ6Ka96LyJ5YWl5aSx6LSlO30tXG5jb25zdCBub3RpY2VGYWlsRWxlbWVudDogUmVhY3QuUmVhY3RFbGVtZW50ID0gRmFpbGVkKCk7XG5cbi8vIHt7UXVvdGUgYm94IHxxdW90ZSAgPSAte3poLWhhbnM66aKE6KeI5Yqg6L295LitO3poLWhhbnQ66aCQ6Ka96LyJ5YWl5LitO30t4oCm4oCmIHx3aWR0aCAgPSA1MCUgfGFsaWduICA9IGNlbnRlcn19XG5jb25zdCBub3RpY2VMb2FkaW5nRWxlbWVudDogUmVhY3QuUmVhY3RFbGVtZW50ID0gTG9hZGluZygpO1xuXG4vLyDmlLnliqhET03lhoXlrrlcbmNvbnN0IHJlcGxhY2VET00gPSAoc2VsZWN0b3I6IHN0cmluZywgZWxlbWVudD86IFJlYWN0LlJlYWN0RWxlbWVudCk6IHZvaWQgPT4ge1xuXHQkKHNlbGVjdG9yKS5odG1sKGVsZW1lbnQgPz8gJycpO1xufTtcblxuLy8g5Yqg5YWl4oCcW+i9veWFpeS4rV3igJ3nmoTmj5DnpLpcbmNvbnN0IGFkZExvYWRpbmdOb3RpY2UgPSAoKTogdm9pZCA9PiB7XG5cdGFkZFBhcnNlZFdpa2l0ZXh0KG5vdGljZUxvYWRpbmdFbGVtZW50KTtcbn07XG5cbi8vIOi9veWFpemUmeivr+eahOaPkOekulxuY29uc3QgbG9hZGluZ0ZhaWxOb3RpY2UgPSAoKTogdm9pZCA9PiB7XG5cdHJlcGxhY2VET00oJyNzcGVjaWFsd2lraXRleHQtcHJldmlldy1sb2FkaW5nX19jb250ZW50Jywgbm90aWNlRmFpbEVsZW1lbnQpO1xufTtcblxuLy8g56e76Zmk4oCcW+i9veWFpeS4rV3igJ3nmoTmj5DnpLpcbmNvbnN0IHJlbW92ZUxvYWRpbmdOb3RpY2UgPSAoKTogdm9pZCA9PiB7XG5cdHJlcGxhY2VET00oJyNzcGVjaWFsd2lraXRleHQtcHJldmlldy1sb2FkaW5nJyk7XG59O1xuXG5leHBvcnQge25vdGljZUxvYWRpbmdFbGVtZW50LCBhZGRMb2FkaW5nTm90aWNlLCBsb2FkaW5nRmFpbE5vdGljZSwgcmVtb3ZlTG9hZGluZ05vdGljZX07XG4iLCAie1xuXHRcInZlcnNpb25cIjogXCIyLjBcIixcblx0XCJ3aWtpVGV4dEtleVwiOiBcIl9hZGRUZXh0XCJcbn1cbiIsICIvLyDlkIjlubblpJrkuKp3aWtpdGV4dOWtl+espuS4slxuY29uc3QgbHVhQWRkVGV4dCA9IChpbnB1dFN0cmluZzogc3RyaW5nLCBuZXdTdHJpbmc6IHN0cmluZywgaXNFc2NhcGU6IGJvb2xlYW4gPSBmYWxzZSk6IHN0cmluZyA9PiB7XG5cdGlmIChuZXdTdHJpbmcpIHtcblx0XHRpZiAoaW5wdXRTdHJpbmcpIHtcblx0XHRcdGlucHV0U3RyaW5nICs9ICdcXG4nO1xuXHRcdH1cblxuXHRcdGlmIChpc0VzY2FwZSkge1xuXHRcdFx0Y29uc3QgW2VzY2FwZVN0cmluZ10gPSBKU09OLnBhcnNlKFxuXHRcdFx0XHRgWyR7SlNPTi5zdHJpbmdpZnkoXG5cdFx0XHRcdFx0Ly8gTHVh5LiN5pSv5oyBXFx144CBXFx46L2s5LmJ5a2X56ymXG5cdFx0XHRcdFx0bmV3U3RyaW5nLnJlcGxhY2UoL1xcXFwoW3V4XSkvZ2ksICckMScpXG5cdFx0XHRcdCkucmVwbGFjZSgvXFxcXFxcXFwvZywgJ1xcXFwnKX1dYFxuXHRcdFx0KSBhcyBbc3RyaW5nXTtcblx0XHRcdG5ld1N0cmluZyA9IGVzY2FwZVN0cmluZztcblx0XHR9XG5cblx0XHRpbnB1dFN0cmluZyArPSBuZXdTdHJpbmc7XG5cdH1cblxuXHRyZXR1cm4gaW5wdXRTdHJpbmc7XG59O1xuXG5leHBvcnQge2x1YUFkZFRleHR9O1xuIiwgImltcG9ydCAqIGFzIE9QVElPTlMgZnJvbSAnLi4vLi4vb3B0aW9ucy5qc29uJztcbmltcG9ydCB7bHVhQWRkVGV4dH0gZnJvbSAnLi9sdWFBZGRUZXh0JztcblxuLy8g6K+75Y+Wd2lraXRleHTlrZfnrKbkuLLvvIzlubblv73nlaXms6jph4rlsL7pg6hcbmNvbnN0IGx1YUdldFN0cmluZyA9IChpbnB1dFN0cmluZzogc3RyaW5nKTogc3RyaW5nID0+IHtcblx0Y29uc3QgdGVzdFN0cmluZ0V4ZWNBcnJheTogUmVnRXhwRXhlY0FycmF5IHwgbnVsbCA9IC9bXlxcbl0qXFwqXFwvLy5leGVjKGlucHV0U3RyaW5nKTtcblxuXHRsZXQgdGVzdFN0cmluZzogc3RyaW5nID0gaW5wdXRTdHJpbmc7XG5cdGlmICh0ZXN0U3RyaW5nRXhlY0FycmF5KSB7XG5cdFx0W3Rlc3RTdHJpbmddID0gdGVzdFN0cmluZ0V4ZWNBcnJheTtcblx0XHR0ZXN0U3RyaW5nID0gdGVzdFN0cmluZy5zbGljZSgwLCBNYXRoLm1heCgwLCB0ZXN0U3RyaW5nLmxlbmd0aCAtIDIpKTtcblx0fVxuXG5cdGNvbnN0IHRyaW1DaGVjazogc3RyaW5nID0gdGVzdFN0cmluZy50cmltKCk7XG5cdGNvbnN0IGZpcnN0Q2hhcjogc3RyaW5nID0gdHJpbUNoZWNrLmNoYXJBdCgwKTtcblx0aWYgKGZpcnN0Q2hhciA9PT0gdHJpbUNoZWNrLmF0KC0xKSAmJiAoZmlyc3RDaGFyID09PSBcIidcIiB8fCBmaXJzdENoYXIgPT09ICdcIicpKSB7XG5cdFx0cmV0dXJuIHRyaW1DaGVjay5zbGljZSgxLCAxICsgdHJpbUNoZWNrLmxlbmd0aCAtIDIpO1xuXHR9XG5cblx0cmV0dXJuIHRlc3RTdHJpbmcudHJpbSgpO1xufTtcblxuLy8g5o2V6I63Q1NT5paH5pys5Lit56ym5ZCIYDx7T1BUSU9OUy53aWtpVGV4dEtleX0+ICB7IGNvbnRlbnTvvJpcIlhYWFwiIH1g5qih5byP55qE5a2X56ym5LiyXG5jb25zdCBsdWFHZXRDb250ZW50VGV4dCA9IChpbnB1dFN0cmluZzogc3RyaW5nKTogc3RyaW5nID0+IHtcblx0bGV0IHdpa2l0ZXh0OiBzdHJpbmcgPSAnJztcblxuXHR0cnkge1xuXHRcdGlucHV0U3RyaW5nLnJlcGxhY2UoXG5cdFx0XHRuZXcgUmVnRXhwKGAke09QVElPTlMud2lraVRleHRLZXl9XFxcXHMqXFxcXHtbXmNcXFxcfV0qY29udGVudFxcXFxzKjpcXFxccypbXlxcbl0qYCwgJ2cnKSxcblx0XHRcdChzdWJzdHJpbmc6IHN0cmluZyk6IHN0cmluZyA9PiB7XG5cdFx0XHRcdGNvbnN0IHRlbXBUZXh0OiBzdHJpbmcgPSAoL2NvbnRlbnRcXHMqOlxccypbXlxcbl0qLy5leGVjKHN1YnN0cmluZykgfHwgWydjb250ZW50OiddKVswXVxuXHRcdFx0XHRcdC5yZXBsYWNlKC9eW1xcczt9XSt8W1xcczt9XSskL2csICcnKVxuXHRcdFx0XHRcdC5yZXBsYWNlKC9cXHMqY29udGVudFxccyo6XFxzKi8sICcnKTtcblxuXHRcdFx0XHRpZiAod2lraXRleHQpIHtcblx0XHRcdFx0XHR3aWtpdGV4dCArPSAnXFxuJztcblx0XHRcdFx0fVxuXG5cdFx0XHRcdHdpa2l0ZXh0ICs9IGx1YUdldFN0cmluZyh0ZW1wVGV4dCk7XG5cblx0XHRcdFx0cmV0dXJuIHN1YnN0cmluZztcblx0XHRcdH1cblx0XHQpO1xuXHR9IGNhdGNoIHtcblx0XHRyZXR1cm4gJyc7XG5cdH1cblxuXHRyZXR1cm4gd2lraXRleHQudHJpbSgpO1xufTtcblxuLy8g5o2V6I635a2X56ym5Liy5YyW55qE5a+56LGh5Lit56ym5ZCIYDx7T1BUSU9OUy53aWtpVGV4dEtleX0+77ydWFhYYOaIlmA8e09QVElPTlMud2lraVRleHRLZXl9Pu+8mlhYWGDmqKHlvI/nmoTlrZfnrKbkuLIgKOazqOmHiuS7peWFqOinkuWtl+espuS7o+abv++8jOmBv+WFjeiiq+aNleiOtylcbmNvbnN0IGx1YUdldE9ialRleHQgPSAoaW5wdXRTdHJpbmc6IHN0cmluZyk6IHN0cmluZyA9PiB7XG5cdGxldCB3aWtpdGV4dDogc3RyaW5nID0gJyc7XG5cblx0dHJ5IHtcblx0XHRpbnB1dFN0cmluZy5yZXBsYWNlKFxuXHRcdFx0bmV3IFJlZ0V4cChgJHtPUFRJT05TLndpa2lUZXh0S2V5fVxcXFxzKltcXFxcPTpdXFxcXHMqW15cXG5dKmAsICdnJyksXG5cdFx0XHQoc3Vic3RyaW5nOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuXHRcdFx0XHRjb25zdCB0ZW1wVGV4dDogc3RyaW5nID0gc3Vic3RyaW5nXG5cdFx0XHRcdFx0LnJlcGxhY2UoL15bXFxzO31dK3xbXFxzO31dKyQvZywgJycpXG5cdFx0XHRcdFx0LnJlcGxhY2UobmV3IFJlZ0V4cChgJHtPUFRJT05TLndpa2lUZXh0S2V5fVxcXFxzKltcXFxcPTpdXFxcXHMqYCksICcnKTtcblxuXHRcdFx0XHRpZiAod2lraXRleHQpIHtcblx0XHRcdFx0XHR3aWtpdGV4dCArPSAnXFxuJztcblx0XHRcdFx0fVxuXG5cdFx0XHRcdHdpa2l0ZXh0ICs9IGx1YUdldFN0cmluZyh0ZW1wVGV4dCk7XG5cblx0XHRcdFx0cmV0dXJuIHN1YnN0cmluZztcblx0XHRcdH1cblx0XHQpO1xuXHR9IGNhdGNoIHtcblx0XHRyZXR1cm4gJyc7XG5cdH1cblxuXHRyZXR1cm4gd2lraXRleHQudHJpbSgpO1xufTtcblxuLy8g5YiG5p6QQ1NT5Lit56ym5ZCI5p2h5Lu255qEd2lraXRleHRcbmNvbnN0IGx1YUdldENTU3dpa2l0ZXh0ID0gKGlucHV0U3RyaW5nOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuXHRsZXQgd2lraXRleHQ6IHN0cmluZyA9ICcnO1xuXG5cdGNvbnN0IGNzc1RleHQ6IHN0cmluZyA9XG5cdFx0KGlucHV0U3RyaW5nIHx8IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3I8SFRNTFRleHRBcmVhRWxlbWVudD4oJ3RleHRhcmVhW25hbWU9d3BUZXh0Ym94MV0nKT8udmFsdWUpID8/ICcnO1xuXHRpZiAoIWNzc1RleHQudHJpbSgpKSB7XG5cdFx0cmV0dXJuICcnO1xuXHR9XG5cblx0Ly8g5Yy56YWNIDx7T1BUSU9OUy53aWtpVGV4dEtleX0+IHsgY29udGVudO+8mlwiWFhYXCIgfSDmqKHlvI9cblx0d2lraXRleHQgPSBsdWFBZGRUZXh0KHdpa2l0ZXh0LCBsdWFHZXRDb250ZW50VGV4dChjc3NUZXh0KSwgdHJ1ZSk7XG5cdC8vIOWMuemFjSAvKiA8e09QVElPTlMud2lraVRleHRLZXl9Pu+8mlhYWCAqLyDmqKHlvI9cblx0d2lraXRleHQgPSBsdWFBZGRUZXh0KHdpa2l0ZXh0LCBsdWFHZXRPYmpUZXh0KGNzc1RleHQpLCB0cnVlKTtcblxuXHRyZXR1cm4gd2lraXRleHQudHJpbSgpO1xufTtcblxuLy8g5YiG5p6QSlNPTuS4reespuWQiOadoeS7tueahHdpa2l0ZXh0XG5jb25zdCBsdWFHZXRKU09Od2lraXRleHQgPSAoaW5wdXRTdHJpbmc6IHN0cmluZyk6IHN0cmluZyA9PiB7XG5cdGxldCB3aWtpdGV4dDogc3RyaW5nID0gJyc7XG5cblx0Y29uc3QgSlNPTlRleHQ6IHN0cmluZyA9XG5cdFx0KGlucHV0U3RyaW5nIHx8IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3I8SFRNTFRleHRBcmVhRWxlbWVudD4oJ3RleHRhcmVhW25hbWU9d3BUZXh0Ym94MV0nKT8udmFsdWUpID8/ICcnO1xuXHRpZiAoIUpTT05UZXh0LnRyaW0oKSkge1xuXHRcdHJldHVybiAnJztcblx0fVxuXG5cdHRyeSB7XG5cdFx0Y29uc3QganNvbkRhdGEgPSBKU09OLnBhcnNlKEpTT05UZXh0KSBhcyBvYmplY3Q7XG5cdFx0Zm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoanNvbkRhdGEpKSB7XG5cdFx0XHRpZiAobmV3IFJlZ0V4cChPUFRJT05TLndpa2lUZXh0S2V5KS50ZXN0KGtleSkgJiYgdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuXHRcdFx0XHR3aWtpdGV4dCA9IGx1YUFkZFRleHQod2lraXRleHQsIHZhbHVlKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8g6Iul6ZSu5YC85piv5a+56LGhXG5cdFx0XHRpZiAodHlwZW9mIHZhbHVlICE9PSAnc3RyaW5nJykge1xuXHRcdFx0XHRmb3IgKGNvbnN0IFtrLCB2XSBvZiBPYmplY3QuZW50cmllcyh2YWx1ZSBhcyBvYmplY3QpKSB7XG5cdFx0XHRcdFx0aWYgKG5ldyBSZWdFeHAoT1BUSU9OUy53aWtpVGV4dEtleSkudGVzdChrKSAmJiB0eXBlb2YgdiA9PT0gJ3N0cmluZycpIHtcblx0XHRcdFx0XHRcdHdpa2l0ZXh0ID0gbHVhQWRkVGV4dCh3aWtpdGV4dCwgdik7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9IGNhdGNoIHtcblx0XHRyZXR1cm4gJyc7XG5cdH1cblxuXHRyZXR1cm4gd2lraXRleHQudHJpbSgpO1xufTtcblxuLy8g5YiG5p6QSmF2YVNjcmlwdOS4reespuWQiOadoeS7tueahHdpa2l0ZXh0XG5jb25zdCBsdWFHZXRKU3dpa2l0ZXh0ID0gKGlucHV0U3RyaW5nOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuXHRsZXQgd2lraXRleHQ6IHN0cmluZyA9ICcnO1xuXG5cdGNvbnN0IGpzVGV4dDogc3RyaW5nID1cblx0XHQoaW5wdXRTdHJpbmcgfHwgZG9jdW1lbnQucXVlcnlTZWxlY3RvcjxIVE1MVGV4dEFyZWFFbGVtZW50PigndGV4dGFyZWFbbmFtZT13cFRleHRib3gxXScpPy52YWx1ZSkgPz8gJyc7XG5cdGlmICghanNUZXh0LnRyaW0oKSkge1xuXHRcdHJldHVybiAnJztcblx0fVxuXG5cdHdpa2l0ZXh0ID0gbHVhQWRkVGV4dCh3aWtpdGV4dCwgbHVhR2V0T2JqVGV4dChqc1RleHQpLCB0cnVlKTtcblxuXHRyZXR1cm4gd2lraXRleHQudHJpbSgpO1xufTtcblxuZXhwb3J0IHtsdWFHZXRDU1N3aWtpdGV4dCwgbHVhR2V0SlNPTndpa2l0ZXh0LCBsdWFHZXRKU3dpa2l0ZXh0fTtcbiIsICJpbXBvcnQgKiBhcyBPUFRJT05TIGZyb20gJy4uL29wdGlvbnMuanNvbic7XG5pbXBvcnQge2luaXRNd0FwaX0gZnJvbSAnZXh0LmdhZGdldC5VdGlsJztcblxuY29uc3QgYXBpOiBtdy5BcGkgPSBpbml0TXdBcGkoYFNwZWNpYWxXaWtpdGV4dC8ke09QVElPTlMudmVyc2lvbn1gKTtcblxuZXhwb3J0IHthcGl9O1xuIiwgImNvbnN0IHt3Z1VzZXJMYW5ndWFnZSwgd2dVc2VyVmFyaWFudH0gPSBtdy5jb25maWcuZ2V0KCk7XG5cbmNvbnN0IGdldExhbmd1YWdlID0gKCk6IHN0cmluZyA9PiB7XG5cdGNvbnN0IGxhbmc6IHN0cmluZyA9IHdnVXNlckxhbmd1YWdlO1xuXG5cdGlmIChsYW5nLmluY2x1ZGVzKCd6aCcpKSB7XG5cdFx0cmV0dXJuIHdnVXNlclZhcmlhbnQgYXMgc3RyaW5nO1xuXHR9XG5cblx0cmV0dXJuIGxhbmc7XG59O1xuXG5leHBvcnQge2dldExhbmd1YWdlfTtcbiIsICJpbXBvcnQge2xvYWRpbmdGYWlsTm90aWNlLCByZW1vdmVMb2FkaW5nTm90aWNlfSBmcm9tICcuLi9ub3RpY2UnO1xuaW1wb3J0IHthZGRQYXJzZWRXaWtpdGV4dH0gZnJvbSAnLi4vdXRpbC9hZGRQYXJzZWRXaWtpdGV4dCc7XG5pbXBvcnQge2FwaX0gZnJvbSAnLi4vYXBpJztcbmltcG9ydCB7Z2V0TGFuZ3VhZ2V9IGZyb20gJy4uL3V0aWwvZ2V0TGFuZ3VhZ2UnO1xuXG5jb25zdCB7c2tpbn0gPSBtdy5jb25maWcuZ2V0KCk7XG5cbi8vIOWKoOWFpemihOiniOWGheWuuVxuY29uc3QgbXdBZGRXaWtpVGV4dCA9IGFzeW5jICh3aWtpdGV4dDogc3RyaW5nLCBwYWdlTmFtZTogc3RyaW5nLCBpc1ByZXZpZXc6IGJvb2xlYW4pOiBQcm9taXNlPHZvaWQ+ID0+IHtcblx0aWYgKHdpa2l0ZXh0LnRyaW0oKSkge1xuXHRcdGNvbnN0IHBhcmFtczogQXBpUGFyc2VQYXJhbXMgPSB7XG5cdFx0XHRhY3Rpb246ICdwYXJzZScsXG5cdFx0XHRmb3JtYXQ6ICdqc29uJyxcblx0XHRcdGZvcm1hdHZlcnNpb246ICcyJyxcblx0XHRcdC8vIOmBv+WFjeWGheWuuemHjeWkjVxuXHRcdFx0dGl0bGU6IHBhZ2VOYW1lLFxuXHRcdFx0Y29udGVudG1vZGVsOiAnd2lraXRleHQnLFxuXHRcdFx0dGV4dDogd2lraXRleHQsXG5cdFx0XHRwcm9wOiAndGV4dCcsXG5cdFx0XHR1c2VsYW5nOiBnZXRMYW5ndWFnZSgpLFxuXHRcdFx0dXNlc2tpbjogc2tpbixcblx0XHR9O1xuXHRcdGlmIChpc1ByZXZpZXcpIHtcblx0XHRcdHBhcmFtcy5kaXNhYmxlZWRpdHNlY3Rpb24gPSB0cnVlO1xuXHRcdFx0cGFyYW1zLnByZXZpZXcgPSB0cnVlO1xuXHRcdH1cblxuXHRcdHRyeSB7XG5cdFx0XHRjb25zdCBkYXRhID0gYXdhaXQgYXBpLmdldChwYXJhbXMpO1xuXHRcdFx0aWYgKCFkYXRhPy5bJ3BhcnNlJ10/LnRleHQpIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXG5cdFx0XHRjb25zdCBwYXJzZWRXaWtpdGV4dDogc3RyaW5nID0gKGRhdGFbJ3BhcnNlJ10udGV4dCBhcyBzdHJpbmcpLnRyaW0oKTtcblxuXHRcdFx0aWYgKHBhcnNlZFdpa2l0ZXh0KSB7XG5cdFx0XHRcdGFkZFBhcnNlZFdpa2l0ZXh0KHBhcnNlZFdpa2l0ZXh0KTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHJlbW92ZUxvYWRpbmdOb3RpY2UoKTtcblx0XHRcdH1cblx0XHR9IGNhdGNoIHtcblx0XHRcdGxvYWRpbmdGYWlsTm90aWNlKCk7XG5cdFx0fVxuXHR9IGVsc2Uge1xuXHRcdHJlbW92ZUxvYWRpbmdOb3RpY2UoKTtcblx0fVxufTtcblxuLy8g5Yqg5YWl6aKE6KeI55qETHVh5YaF5a65XG5jb25zdCBtd0FkZEx1YVRleHQgPSBhc3luYyAoXG5cdHdpa2l0ZXh0OiBzdHJpbmcsXG5cdHBhZ2VOYW1lOiBzdHJpbmcsXG5cdGlzUHJldmlldzogYm9vbGVhbixcblx0Y2FsbEJhY2s/OiAoYXJnOiBzdHJpbmcpID0+IEpRdWVyeSB8IEhUTUxFbGVtZW50IHwgdm9pZFxuKSA9PiB7XG5cdGNvbnN0IHRlbXBNb2R1bGVOYW1lOiBzdHJpbmcgPSAnQWRkVGV4dC9UZW1wL01vZHVsZS9EYXRhLmx1YSc7XG5cdGNvbnN0IG1vZHVsZUNhbGw6IHtcblx0XHR3aWtpdGV4dDogc3RyaW5nO1xuXHRcdHBhZ2VOYW1lOiBzdHJpbmc7XG5cdH0gPSB7XG5cdFx0d2lraXRleHQ6ICcjaW52b2tlOicsXG5cdFx0Ly8g5YiG5byA5p2l77yM6YG/5YWN6KKr5YiG5YiwW1s6Q2F0ZWdvcnk65pyJ6ISa5pys6ZSZ6K+v55qE6aG16Z2iXV1cblx0XHRwYWdlTmFtZTogJ01vZHVsZTonLFxuXHR9O1xuXG5cdGlmICh3aWtpdGV4dC50cmltKCkpIHtcblx0XHR0cnkge1xuXHRcdFx0Y29uc3QgcGFyYW1zOiBBcGlQYXJzZVBhcmFtcyA9IHtcblx0XHRcdFx0YWN0aW9uOiAncGFyc2UnLFxuXHRcdFx0XHRmb3JtYXQ6ICdqc29uJyxcblx0XHRcdFx0Zm9ybWF0dmVyc2lvbjogJzInLFxuXHRcdFx0XHR0aXRsZTogcGFnZU5hbWUsXG5cdFx0XHRcdGNvbnRlbnRtb2RlbDogJ3dpa2l0ZXh0Jyxcblx0XHRcdFx0dGVtcGxhdGVzYW5kYm94dGl0bGU6IG1vZHVsZUNhbGwucGFnZU5hbWUgKyB0ZW1wTW9kdWxlTmFtZSxcblx0XHRcdFx0Ly8g5Yib5bu65Li05pe2THVhIE1vZHVsZVxuXHRcdFx0XHR0ZW1wbGF0ZXNhbmRib3h0ZXh0OiBgcmV0dXJuIHtcblx0bWFpbiA9IGZ1bmN0aW9uKClcblx0XHR4cGNhbGwoXG5cdFx0XHRmdW5jdGlvbigpXG5cdFx0XHRcdCR7d2lraXRleHR9XG5cdFx0XHRlbmQsXG5cdFx0XHRmdW5jdGlvbigpXG5cdFx0XHRlbmRcblx0XHQpXG5cdFx0bG9jYWwgbW9kdWxlV2lraXRleHQgPSBwYWNrYWdlLmxvYWRlZFtcIk1vZHVsZTpNb2R1bGUgd2lraXRleHRcIl1cblx0XHRpZiBtb2R1bGVXaWtpdGV4dCB0aGVuXG5cdFx0XHRsb2NhbCB3aWtpdGV4dCA9IG1vZHVsZVdpa2l0ZXh0Lm1haW4oKVxuXHRcdFx0aWYgbXcudGV4dC50cmltKHdpa2l0ZXh0KSB+PSBcIlwiIHRoZW5cblx0XHRcdFx0cmV0dXJuIG13LmdldEN1cnJlbnRGcmFtZSgpOnByZXByb2Nlc3MobW9kdWxlV2lraXRleHQubWFpbigpKVxuXHRcdFx0ZW5kXG5cdFx0ZW5kXG5cdFx0cmV0dXJuIFwiXCJcblx0ZW5kXG59YCxcblx0XHRcdFx0dGVtcGxhdGVzYW5kYm94Y29udGVudG1vZGVsOiAnU2NyaWJ1bnRvJyxcblx0XHRcdFx0dGVtcGxhdGVzYW5kYm94Y29udGVudGZvcm1hdDogJ3RleHQvcGxhaW4nLFxuXHRcdFx0XHR0ZXh0OiBge3ske21vZHVsZUNhbGwud2lraXRleHR9JHt0ZW1wTW9kdWxlTmFtZX18bWFpbn19YCxcblx0XHRcdFx0cHJvcDogJ3RleHQnLFxuXHRcdFx0XHR1c2VsYW5nOiBnZXRMYW5ndWFnZSgpLFxuXHRcdFx0XHR1c2Vza2luOiBza2luLFxuXHRcdFx0fTtcblx0XHRcdGlmIChpc1ByZXZpZXcpIHtcblx0XHRcdFx0cGFyYW1zLnByZXZpZXcgPSB0cnVlO1xuXHRcdFx0XHRwYXJhbXMuZGlzYWJsZWVkaXRzZWN0aW9uID0gdHJ1ZTtcblx0XHRcdH1cblxuXHRcdFx0Y29uc3QgZGF0YSA9IGF3YWl0IGFwaS5nZXQocGFyYW1zKTtcblx0XHRcdGlmICghZGF0YT8uWydwYXJzZSddPy50ZXh0KSB7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblxuXHRcdFx0Y29uc3QgcGFyc2VkV2lraXRleHQ6IHN0cmluZyA9IChkYXRhWydwYXJzZSddLnRleHQgYXMgc3RyaW5nKS50cmltKCk7XG5cblx0XHRcdGlmICghcGFyc2VkV2lraXRleHQpIHtcblx0XHRcdFx0cmVtb3ZlTG9hZGluZ05vdGljZSgpO1xuXHRcdFx0XHQvLyDoi6XlnKjov5nkuKrkuLTml7bmqKHlnZfkuK3lh7rplJnliJnlj5bmtohcblx0XHRcdH0gZWxzZSBpZiAoJChwYXJzZWRXaWtpdGV4dCkuZmluZCgnLnNjcmlidW50by1lcnJvcicpLnRleHQoKS5zZWFyY2godGVtcE1vZHVsZU5hbWUpKSB7XG5cdFx0XHRcdHJlbW92ZUxvYWRpbmdOb3RpY2UoKTtcblx0XHRcdH0gZWxzZSBpZiAodHlwZW9mIGNhbGxCYWNrID09PSAnZnVuY3Rpb24nKSB7XG5cdFx0XHRcdGNhbGxCYWNrKHBhcnNlZFdpa2l0ZXh0KTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGFkZFBhcnNlZFdpa2l0ZXh0KHBhcnNlZFdpa2l0ZXh0KTtcblx0XHRcdH1cblx0XHR9IGNhdGNoIHtcblx0XHRcdGxvYWRpbmdGYWlsTm90aWNlKCk7XG5cdFx0fVxuXHR9IGVsc2Uge1xuXHRcdHJlbW92ZUxvYWRpbmdOb3RpY2UoKTtcblx0fVxufTtcblxuZXhwb3J0IHttd0FkZEx1YVRleHQsIG13QWRkV2lraVRleHR9O1xuIiwgImltcG9ydCB7bHVhR2V0Q1NTd2lraXRleHQsIGx1YUdldEpTT053aWtpdGV4dCwgbHVhR2V0SlN3aWtpdGV4dH0gZnJvbSAnLi9sdWFHZXRUZXh0JztcblxuY29uc3Qge3dnUGFnZUNvbnRlbnRNb2RlbH0gPSBtdy5jb25maWcuZ2V0KCk7XG5cbi8vIOWIpOaWreaYr+WQpuS4ukx1YVxuY29uc3QgbHVhQ2hlY2sgPSAoaW5wdXRTdHJpbmc6IHN0cmluZyA9ICcnLCBjb250ZW50TW9kZWw6IHN0cmluZyA9IHdnUGFnZUNvbnRlbnRNb2RlbCk6IHN0cmluZyA9PiB7XG5cdC8vIOagueaNrumhtemdouWGheWuueaooeWei+mAieeUqOmAguW9k+eahOino+aekOaooeW8j1xuXHRzd2l0Y2ggKGNvbnRlbnRNb2RlbC50b0xvd2VyQ2FzZSgpKSB7XG5cdFx0Y2FzZSAnanNvbic6XG5cdFx0XHRyZXR1cm4gbHVhR2V0SlNPTndpa2l0ZXh0KGlucHV0U3RyaW5nKTtcblx0XHRjYXNlICdqcyc6XG5cdFx0Y2FzZSAnamF2YXNjcmlwdCc6XG5cdFx0Y2FzZSAndGV4dCc6XG5cdFx0XHRyZXR1cm4gbHVhR2V0SlN3aWtpdGV4dChpbnB1dFN0cmluZyk7XG5cdFx0Y2FzZSAnY3NzJzpcblx0XHRjYXNlICdzYW5pdGl6ZWQtY3NzJzpcblx0XHRcdHJldHVybiBsdWFHZXRDU1N3aWtpdGV4dChpbnB1dFN0cmluZyk7XG5cdFx0ZGVmYXVsdDpcblx0XHRcdHJldHVybiAnJztcblx0fVxufTtcblxuZXhwb3J0IHtsdWFDaGVja307XG4iLCAiaW1wb3J0IHthZGRQYXJzZWRXaWtpdGV4dH0gZnJvbSAnLi4vdXRpbC9hZGRQYXJzZWRXaWtpdGV4dCc7XG5pbXBvcnQge2FwaX0gZnJvbSAnLi4vYXBpJztcbmltcG9ydCB7Y2hlY2tFbGVtZW50RXhpc3R9IGZyb20gJy4uL3V0aWwvY2hlY2tFbGVtZW50RXhpc3QnO1xuaW1wb3J0IHtnZXRMYW5ndWFnZX0gZnJvbSAnLi4vdXRpbC9nZXRMYW5ndWFnZSc7XG5pbXBvcnQge2x1YUNoZWNrfSBmcm9tICcuLi9sdWEvbHVhQ2hlY2snO1xuaW1wb3J0IHttd0FkZFdpa2lUZXh0fSBmcm9tICcuL213QWRkVGV4dCc7XG5pbXBvcnQge3JlbW92ZUxvYWRpbmdOb3RpY2V9IGZyb20gJy4uL25vdGljZSc7XG5cbmNvbnN0IHtza2luLCB3Z1JldmlzaW9uSWR9ID0gbXcuY29uZmlnLmdldCgpO1xuXG4vLyDliqDlhaXnvJbovpHmj5DnpLrvvIjoi6XlrZjlnKjvvIlcbmNvbnN0IG13QXBwbHlOb3RpY2UgPSBhc3luYyAoY3VycmVudFBhZ2VOYW1lOiBzdHJpbmcsIHBhZ2VTdWJOYW1lOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+ID0+IHtcblx0dHJ5IHtcblx0XHRjb25zdCBwYXJhbXM6IEFwaVBhcnNlUGFyYW1zID0ge1xuXHRcdFx0YWN0aW9uOiAncGFyc2UnLFxuXHRcdFx0Zm9ybWF0OiAnanNvbicsXG5cdFx0XHRmb3JtYXR2ZXJzaW9uOiAnMicsXG5cdFx0XHQvLyBnZXQgdGhlIG9yaWdpbmFsIHdpa2l0ZXh0IGNvbnRlbnQgb2YgYSBwYWdlXG5cdFx0XHR0aXRsZTogY3VycmVudFBhZ2VOYW1lICsgcGFnZVN1Yk5hbWUsXG5cdFx0XHR0ZXh0OiBge3sjaW52b2tlOlNwZWNpYWwgd2lraXRleHQvVGVtcGxhdGV8Z2V0Tm90aWNlc3wke2N1cnJlbnRQYWdlTmFtZX18JHtwYWdlU3ViTmFtZX19fWAsXG5cdFx0XHRwcm9wOiAndGV4dCcsXG5cdFx0XHR1c2VsYW5nOiBnZXRMYW5ndWFnZSgpLFxuXHRcdFx0dXNlc2tpbjogc2tpbixcblx0XHRcdHNtYXhhZ2U6IDYwMCxcblx0XHRcdG1heGFnZTogNjAwLFxuXHRcdH07XG5cblx0XHRjb25zdCBkYXRhID0gYXdhaXQgYXBpLmdldChwYXJhbXMpO1xuXHRcdGlmICghZGF0YT8uWydwYXJzZSddPy50ZXh0KSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0Y29uc3QgaHRtbCA9IGRhdGFbJ3BhcnNlJ10udGV4dCBhcyBzdHJpbmc7XG5cdFx0aWYgKCQoaHRtbCkudGV4dCgpLnRyaW0oKSkge1xuXHRcdFx0YWRkUGFyc2VkV2lraXRleHQoaHRtbCk7XG5cdFx0fVxuXHR9IGNhdGNoIHt9XG59O1xuXG4vLyDku47pobXpnaLlvZPliY3ljoblj7LniYjmnKzlj5blh7ogPHtPUFRJT05TLndpa2lUZXh0S2V5fT5cbmNvbnN0IG13QXBwbHlSZXZpc2lvbiA9IGFzeW5jIChjdXJyZW50UGFnZU5hbWU6IHN0cmluZyk6IFByb21pc2U8dm9pZD4gPT4ge1xuXHR0cnkge1xuXHRcdGNvbnN0IHBhcmFtczogQXBpUGFyc2VQYXJhbXMgPSB7XG5cdFx0XHRhY3Rpb246ICdwYXJzZScsXG5cdFx0XHRmb3JtYXQ6ICdqc29uJyxcblx0XHRcdGZvcm1hdHZlcnNpb246ICcyJyxcblx0XHRcdC8vIGdldCB0aGUgb3JpZ2luYWwgd2lraXRleHQgY29udGVudCBvZiBhIHBhZ2Vcblx0XHRcdG9sZGlkOiB3Z1JldmlzaW9uSWQsXG5cdFx0XHRwcm9wOiAnd2lraXRleHQnLFxuXHRcdFx0c21heGFnZTogNjAwLFxuXHRcdFx0bWF4YWdlOiA2MDAsXG5cdFx0fTtcblxuXHRcdGNvbnN0IGRhdGEgPSBhd2FpdCBhcGkuZ2V0KHBhcmFtcyk7XG5cdFx0aWYgKCFkYXRhPy5bJ3BhcnNlJ10/Lndpa2l0ZXh0KSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0bGV0IHBhZ2VDb250ZW50OiBzdHJpbmcgPSBsdWFDaGVjaygoZGF0YVsncGFyc2UnXS53aWtpdGV4dCBhcyBzdHJpbmcpLnRyaW0oKSk7XG5cdFx0cGFnZUNvbnRlbnQgPVxuXHRcdFx0KGNoZWNrRWxlbWVudEV4aXN0KCcjbXctY2xlYXJ5b3VyY2FjaGUnKVxuXHRcdFx0XHQ/ICd7eyNpbnZva2U6U3BlY2lhbCB3aWtpdGV4dC9UZW1wbGF0ZXxpbnR8Y2xlYXJ5b3VyY2FjaGV9fSdcblx0XHRcdFx0OiAnJykgKyBwYWdlQ29udGVudDtcblxuXHRcdGlmIChwYWdlQ29udGVudC50cmltKCkpIHtcblx0XHRcdHZvaWQgbXdBZGRXaWtpVGV4dChwYWdlQ29udGVudCwgY3VycmVudFBhZ2VOYW1lLCB0cnVlKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmVtb3ZlTG9hZGluZ05vdGljZSgpO1xuXHRcdH1cblx0fSBjYXRjaCB7XG5cdFx0cmVtb3ZlTG9hZGluZ05vdGljZSgpO1xuXHR9XG59O1xuXG5leHBvcnQge213QXBwbHlOb3RpY2UsIG13QXBwbHlSZXZpc2lvbn07XG4iLCAiaW1wb3J0IHtnZW5lcmF0ZUFycmF5fSBmcm9tICdleHQuZ2FkZ2V0LlV0aWwnO1xuXG5jb25zdCBhbGxNd0NvbmZpZzogUmV0dXJuVHlwZTx0eXBlb2YgbXcuY29uZmlnLmdldD4gPSBtdy5jb25maWcuZ2V0KCk7XG5cbi8vIOajgOafpU1lZGlhV2lraeeahOiuvue9rlxuY29uc3QgY2hlY2tNd0NvbmZpZyA9IChjb25maWdLZXk6IHN0cmluZywgZXhwZWN0Q29uZmlnOiBzdHJpbmcgfCBzdHJpbmdbXSk6IGJvb2xlYW4gPT4ge1xuXHRsZXQgbXdDb25maWc6IHVua25vd24gPSBhbGxNd0NvbmZpZ1tjb25maWdLZXldO1xuXHRpZiAoIW13Q29uZmlnKSB7XG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG5cblx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1iYXNlLXRvLXN0cmluZ1xuXHRtd0NvbmZpZyA9IFN0cmluZyhtd0NvbmZpZykudG9Mb3dlckNhc2UoKS50cmltKCk7XG5cdGlmICghbXdDb25maWcpIHtcblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cblxuXHRyZXR1cm4gZ2VuZXJhdGVBcnJheShleHBlY3RDb25maWcpLmluY2x1ZGVzKG13Q29uZmlnIGFzIHN0cmluZyk7XG59O1xuXG5leHBvcnQge2NoZWNrTXdDb25maWd9O1xuIiwgImltcG9ydCAqIGFzIE9QVElPTlMgZnJvbSAnLi4vLi4vb3B0aW9ucy5qc29uJztcblxuLy8g5qOA5p+l5piv5ZCm5pyJ6aKE6KeI55qE5b+F6KaB5oCnXG5jb25zdCBjaGVja05lZWRQcmV2aWV3ID0gKCk6IGJvb2xlYW4gPT4ge1xuXHRyZXR1cm4gZG9jdW1lbnQuYm9keS5pbm5lckhUTUwuc2VhcmNoKE9QVElPTlMud2lraVRleHRLZXkpID4gLTE7XG59O1xuXG5leHBvcnQge2NoZWNrTmVlZFByZXZpZXd9O1xuIiwgImltcG9ydCB7YWRkTG9hZGluZ05vdGljZSwgbm90aWNlTG9hZGluZ0VsZW1lbnQsIHJlbW92ZUxvYWRpbmdOb3RpY2V9IGZyb20gJy4uL25vdGljZSc7XG5pbXBvcnQge2x1YUdldENTU3dpa2l0ZXh0LCBsdWFHZXRKU09Od2lraXRleHR9IGZyb20gJy4uL2x1YS9sdWFHZXRUZXh0JztcbmltcG9ydCB7bXdBZGRMdWFUZXh0LCBtd0FkZFdpa2lUZXh0fSBmcm9tICcuL213QWRkVGV4dCc7XG5pbXBvcnQge213QXBwbHlOb3RpY2UsIG13QXBwbHlSZXZpc2lvbn0gZnJvbSAnLi9td0FwcGx5JztcbmltcG9ydCB7Y2hlY2tFbGVtZW50RXhpc3R9IGZyb20gJy4uL3V0aWwvY2hlY2tFbGVtZW50RXhpc3QnO1xuaW1wb3J0IHtjaGVja013Q29uZmlnfSBmcm9tICcuLi91dGlsL2NoZWNrTXdDb25maWcnO1xuaW1wb3J0IHtjaGVja05lZWRQcmV2aWV3fSBmcm9tICcuLi91dGlsL2NoZWNrTmVlZFByZXZpZXcnO1xuaW1wb3J0IHtsdWFDaGVja30gZnJvbSAnLi4vbHVhL2x1YUNoZWNrJztcblxuY29uc3Qge3dnQ2Fub25pY2FsTmFtZXNwYWNlLCB3Z0Nhbm9uaWNhbFNwZWNpYWxQYWdlTmFtZSwgd2dQYWdlTmFtZX0gPSBtdy5jb25maWcuZ2V0KCk7XG5cbi8vIOe7memhtemdoua3u+WKoOmihOiniFxuY29uc3QgbXdBZGRQcmV2aWV3ID0gKCRib2R5OiBKUXVlcnk8SFRNTEJvZHlFbGVtZW50Pik6IHZvaWQgPT4ge1xuXHQvLyDpooTop4jmqKHlvI/lj6rpgILnlKjkuo7ku6XkuIvpobXpnaLlhoXlrrnmqKHlnotcblx0aWYgKGNoZWNrTXdDb25maWcoJ3dnUGFnZUNvbnRlbnRNb2RlbCcsIFsnamF2YXNjcmlwdCcsICdqcycsICdqc29uJywgJ3RleHQnLCAnY3NzJywgJ3Nhbml0aXplZC1jc3MnXSkpIHtcblx0XHQvLyDmqKHlvI8x77ya6aG16Z2i6aKE6KeIXG5cdFx0aWYgKGNoZWNrRWxlbWVudEV4aXN0KCcucHJldmlld25vdGUnKSkge1xuXHRcdFx0Ly8g5qOA5p+l5piv5ZCm5Li66aKE6KeI5qih5byPXG5cdFx0XHQvLyDpooTop4jmnInlj6/og73mmK/lnKjpooTop4jlhbbku5bmnaHnm65cblx0XHRcdGNvbnN0IHBhdGhQYXRoOiBzdHJpbmcgPSBkZWNvZGVVUkkobXcudXRpbC5nZXRVcmwod2dQYWdlTmFtZSkpLnJlcGxhY2UoXG5cdFx0XHRcdG5ldyBSZWdFeHAoYF5cXFxcLz8ke213LnV0aWwuZ2V0VXJsKCcnKS5tYXRjaCgvW2Etel0rLyk/LlswXSA/PyAnJ31cXFxcL2ApLFxuXHRcdFx0XHQnJ1xuXHRcdFx0KTtcblxuXHRcdFx0Ly8g6Iul6aKE6KeI55qE6aG16Z2i5bm26Z2e5pys6Lqr77yM5YiZ5LiN5pi+56S66aKE6KeIXG5cdFx0XHRpZiAocGF0aFBhdGggIT09IHdnUGFnZU5hbWUpIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXG5cdFx0XHRjb25zdCB3aWtpdGV4dDogc3RyaW5nID0gbHVhQ2hlY2soKTtcblx0XHRcdGlmICh3aWtpdGV4dCkge1xuXHRcdFx0XHQvLyDoi6Xop6PmnpDnu5PmnpzpnZ7nqbrmiY3mlL7nva7pooTop4hcblx0XHRcdFx0YWRkTG9hZGluZ05vdGljZSgpOyAvLyDmlL7nva7mj5DnpLrvvIzmj5DnpLrkvb/nlKjogIXnrYnlvoVBSkFYXG5cdFx0XHRcdHZvaWQgbXdBZGRXaWtpVGV4dCh3aWtpdGV4dCwgd2dQYWdlTmFtZSwgdHJ1ZSk7IC8vIOiLpeWPluW+lyBfYWRkVGV4dCDliJnmmL7npLrpooTop4hcblx0XHRcdH1cblx0XHR9IGVsc2UgaWYgKCFjaGVja0VsZW1lbnRFeGlzdCgnLm13LV9hZGRUZXh0LWNvbnRlbnQnKSAmJiBjaGVja013Q29uZmlnKCd3Z0FjdGlvbicsICd2aWV3JykpIHtcblx0XHRcdC8vIOaooeW8jzLvvJrkuI3mlK/mjIHmmL7npLrnmoTnibnmrorpobXpnaJcblx0XHRcdC8vIOe7j+afpe+8jOS4jeatouaYr+aooeadv+agt+W8j++8jOaJgOacieacquW1jOWFpScjbXctY2xlYXJ5b3VyY2FjaGUn55qE6aG16Z2i55qG5peg5rOV5q2j5bi45pi+56S6XG5cdFx0XHRpZiAoIWNoZWNrTmVlZFByZXZpZXcoKSkge1xuXHRcdFx0XHRyZXR1cm47IC8vIOayoeaciemihOiniOW/heimgeaXtu+8jOebtOaOpeWBnOatoueoi+W6j++8jOS4jee7p+e7reWIpOaWre+8jOS7peaPkOmrmOaViOeOh1xuXHRcdFx0fVxuXG5cdFx0XHQvLyDoi6Xlt7LmnIkjbXctY2xlYXJ5b3VyY2FjaGXliJnlhYjmuIXmjonvvIzlkKbliJnkvJrlh7rnjrDkuKTkuKpNZWRpYVdpa2k6Q2xlYXJ5b3VyY2FjaGVcblx0XHRcdCRib2R5LmZpbmQoJyNtdy1jbGVhcnlvdXJjYWNoZScpLmh0bWwoJycpO1xuXG5cdFx0XHRpZiAoIWNoZWNrRWxlbWVudEV4aXN0KCd0ZXh0YXJlYVtuYW1lPXdwVGV4dGJveDFdJykpIHtcblx0XHRcdFx0Ly8g6Z2e57yW6L6R5qih5byP5omN5omn6KGMICjpooTop4jkvb/nlKjkuIrmlrnnmoRpZuWMuuWdlylcblx0XHRcdFx0YWRkTG9hZGluZ05vdGljZSgpOyAvLyDmlL7nva7mj5DnpLrvvIzmj5DnpLrkvb/nlKjogIXnrYnlvoVBSkFYXG5cdFx0XHRcdHZvaWQgbXdBcHBseVJldmlzaW9uKHdnUGFnZU5hbWUpOyAvLyDkuLrkuoborqnljoblj7LniYjmnKzmraPluLjmmL7npLrvvIzkvb/nlKh3Z1JldmlzaW9uSWTlj5blvpflhoXlrrlcblx0XHRcdH1cblx0XHR9IGVsc2UgaWYgKGNoZWNrRWxlbWVudEV4aXN0KCcjbXctcmV2aXNpb24taW5mbycpICYmIGNoZWNrTXdDb25maWcoJ3dnQWN0aW9uJywgJ3ZpZXcnKSkge1xuXHRcdFx0Ly8g5qih5byPM++8mumhtemdouWOhuWPsueJiOacrOajgOinhu+8muWmgumcgOWkjeafpeeahOmhueebruS4uumhtemdouWOhuWPsueJiOacrO+8jOacrOW3peWFt+aPkOS+m+mhtemdouWOhuWPsueJiOacrOWGheWuueaYvuekuuaUr+aMgVxuXHRcdFx0Ly8g5pyJ5bWM5YWlJyNtdy1jbGVhcnlvdXJjYWNoZSfnmoTpobXpnaLnmoTljoblj7LniYjmnKzkvJrlj6rog73mmL7npLrmnIDmlrDniYjnmoQgX2FkZFRleHQg5Zug5q2k5omn6KGM5L+u5q2jXG5cdFx0XHRpZiAoIWNoZWNrRWxlbWVudEV4aXN0KCd0ZXh0YXJlYVtuYW1lPXdwVGV4dGJveDFdJykpIHtcblx0XHRcdFx0Ly8g6Z2e57yW6L6R5qih5byP5omN5omn6KGMICjpooTop4jkvb/nlKjkuIrmlrnnmoRpZuWMuuWdlylcblx0XHRcdFx0JGJvZHkuZmluZCgnI213LWNsZWFyeW91cmNhY2hlJykuaHRtbChub3RpY2VMb2FkaW5nRWxlbWVudCk7IC8vIOW3ruW8guaooeW8j++8iOWQq+ajgOmYheS/ruiuoueJiOacrOWIoOmZpO+8ieeahOaPkuWFpeeCueS4jeWQjFxuXHRcdFx0XHR2b2lkIG13QXBwbHlSZXZpc2lvbih3Z1BhZ2VOYW1lKTsgLy8g5Li65LqG6K6p54m55a6a54mI5pys5q2j5bi45pi+56S677yM5L2/55Sod2dSZXZpc2lvbklk5Y+W5b6X5YaF5a65XG5cdFx0XHR9XG5cdFx0fSBlbHNlIHtcblx0XHRcdHJlbW92ZUxvYWRpbmdOb3RpY2UoKTtcblx0XHR9XG5cdH0gZWxzZSBpZiAoY2hlY2tNd0NvbmZpZygnd2dQYWdlQ29udGVudE1vZGVsJywgWydzY3JpYnVudG8nLCAnbHVhJ10pKSB7XG5cdFx0Ly8g5qih5Z2X6aKE6KeI5Yqf6IO9XG5cdFx0aWYgKCFjaGVja05lZWRQcmV2aWV3KCkpIHtcblx0XHRcdHJldHVybjsgLy8g5rKh5pyJ6aKE6KeI5b+F6KaB5pe277yM55u05o6l5YGc5q2i56iL5bqP77yM5LiN57un57ut5Yik5pat77yM5Lul5o+Q6auY5pWI546HXG5cdFx0fVxuXG5cdFx0aWYgKFxuXHRcdFx0Y2hlY2tFbGVtZW50RXhpc3QoJ3RleHRhcmVhW25hbWU9d3BUZXh0Ym94MV0nKSAmJlxuXHRcdFx0Y2hlY2tFbGVtZW50RXhpc3QoJ3RhYmxlLmRpZmYnKSAmJlxuXHRcdFx0IWNoZWNrRWxlbWVudEV4aXN0KCcucHJldmlld25vdGUnKSAmJlxuXHRcdFx0IWNoZWNrTXdDb25maWcoJ3dnQWN0aW9uJywgJ3ZpZXcnKVxuXHRcdCkge1xuXHRcdFx0JChub3RpY2VMb2FkaW5nRWxlbWVudCkuaW5zZXJ0QWZ0ZXIoJyN3aWtpRGlmZicpO1xuXHRcdFx0dm9pZCBtd0FkZEx1YVRleHQoXG5cdFx0XHRcdCgkYm9keS5maW5kKCd0ZXh0YXJlYVtuYW1lPXdwVGV4dGJveDFdJykudmFsKCkgYXMgc3RyaW5nIHwgdW5kZWZpbmVkKSA/PyAnJyxcblx0XHRcdFx0d2dQYWdlTmFtZSxcblx0XHRcdFx0dHJ1ZVxuXHRcdFx0KTtcblx0XHR9XG5cdH0gZWxzZSBpZiAoY2hlY2tFbGVtZW50RXhpc3QoJy5tdy11bmRlbGV0ZS1yZXZpc2lvbicpKSB7XG5cdFx0Ly8g5qih5byPNO+8muW3suWIoOmhtemdoumihOiniFxuXHRcdC8vIOW3suWIoOWGheWuuemhtemdouaYr+eJueauiumhtemdou+8jOaXoOazleeUqOW4uOinhOaWueW8j+WIpOaWremhtemdouWGheWuueaooeWei1xuXHRcdGlmICghY2hlY2tOZWVkUHJldmlldygpKSB7XG5cdFx0XHRyZXR1cm47IC8vIOayoeaciemihOiniOW/heimgeaXtu+8jOebtOaOpeWBnOatoueoi+W6j++8jOS4jee7p+e7reWIpOaWre+8jOS7peaPkOmrmOaViOeOh1xuXHRcdH1cblxuXHRcdGlmIChjaGVja0VsZW1lbnRFeGlzdChbJy5tdy1oaWdobGlnaHQnLCAncHJlJywgJy5tdy1qc29uJ10pKSB7XG5cdFx0XHQvLyDnoa7orqTmraPlnKjpooTop4jlt7LliKDlhoXlrrlcblx0XHRcdGNvbnN0IHRleHRhcmVhQ29udGVudDogc3RyaW5nID0gJGJvZHkuZmluZCgndGV4dGFyZWEnKS52YWwoKSA/PyAnJzsgLy8g5bCd6K+V5Y+W5b6X5bey5Yig5YaF5a655rqQ5Luj56CBXG5cblx0XHRcdGxldCB3aWtpdGV4dDogc3RyaW5nID0gbHVhR2V0SlNPTndpa2l0ZXh0KHRleHRhcmVhQ29udGVudCk7XG5cdFx0XHR3aWtpdGV4dCB8fD0gbHVhR2V0Q1NTd2lraXRleHQodGV4dGFyZWFDb250ZW50KTtcblxuXHRcdFx0aWYgKHdpa2l0ZXh0KSB7XG5cdFx0XHRcdC8vIOiLpeWPluW+lyBfYWRkVGV4dCDliJnmmL7npLrpooTop4hcblx0XHRcdFx0YWRkTG9hZGluZ05vdGljZSgpO1xuXHRcdFx0XHR2b2lkIG13QWRkV2lraVRleHQod2lraXRleHQsIG13LmNvbmZpZy5nZXQoJ3dnUmVsZXZhbnRQYWdlTmFtZScpLCB0cnVlKTtcblx0XHRcdH0gZWxzZSBpZiAoL21vZHVsZVsgX113aWtpdGV4dC4qX2FkZHRleHQvaS50ZXN0KCRib2R5LmZpbmQoJy5tdy1wYXJzZXItb3V0cHV0JykudGV4dCgpKSkge1xuXHRcdFx0XHQvLyDlsJ3or5VMdWHop6PmnpBcblx0XHRcdFx0Ly8g5pys5Yqf6IO955uu5YmN5rWL6K+V5q2j5bi46L+Q5L2cXG5cdFx0XHRcdC8vIOiLpeWTquWkqemihOiniOWPiOWkseaViO+8jOivt+WPlua2iOazqOmHiuS4i+aWuemCo+ihjFxuXHRcdFx0XHQvLyBtd0FkZEx1YVRleHQodGV4dGFyZWFDb250ZW50LCBtdy5jb25maWcuZ2V0KFwid2dSZWxldmFudFBhZ2VOYW1lXCIpLCB0cnVlKTtcblx0XHRcdH1cblx0XHR9XG5cdH0gZWxzZSBpZiAoIWNoZWNrRWxlbWVudEV4aXN0KCcubXctZWRpdG5vdGljZScpICYmIGNoZWNrTXdDb25maWcoJ3dnQ2Fub25pY2FsTmFtZXNwYWNlJywgJ3NwZWNpYWwnKSkge1xuXHRcdC8vIOiLpeeJueauiumhtemdoue8uuS5j+e8lui+keaPkOekuu+8jOWImeihpeS4iue8lui+keaPkOekuiAo6Iul5a2Y5ZyoKVxuXHRcdGNvbnN0IHBhZ2VTdWJOYW1lOiBzdHJpbmcgPSB3Z1BhZ2VOYW1lLnJlcGxhY2UoL3NwZWNpYWw6W14vXSsvaSwgJycpO1xuXHRcdGlmICh3Z0Nhbm9uaWNhbFNwZWNpYWxQYWdlTmFtZSkge1xuXHRcdFx0Y29uc3QgZnVsbFBhZ2VOYW1lOiBzdHJpbmcgPSBgJHt3Z0Nhbm9uaWNhbE5hbWVzcGFjZX06JHt3Z0Nhbm9uaWNhbFNwZWNpYWxQYWdlTmFtZX1gO1xuXHRcdFx0dm9pZCBtd0FwcGx5Tm90aWNlKGZ1bGxQYWdlTmFtZSwgcGFnZVN1Yk5hbWUpO1xuXHRcdH1cblx0fSBlbHNlIHtcblx0XHRyZW1vdmVMb2FkaW5nTm90aWNlKCk7IC8vIOmDveS4jeaYr+eahOaDheWGteWImeS4jeaYvuekuumihOiniFxuXHR9XG59O1xuXG5leHBvcnQge213QWRkUHJldmlld307XG4iLCAiaW1wb3J0IHthcGl9IGZyb20gJy4vYXBpJztcbmltcG9ydCB7Y2hlY2tOZWVkUHJldmlld30gZnJvbSAnLi91dGlsL2NoZWNrTmVlZFByZXZpZXcnO1xuaW1wb3J0IHtsdWFDaGVja30gZnJvbSAnLi9sdWEvbHVhQ2hlY2snO1xuaW1wb3J0IHttd0FkZEx1YVRleHR9IGZyb20gJy4vbXcvbXdBZGRUZXh0JztcbmltcG9ydCB7bm90aWNlTG9hZGluZ0VsZW1lbnR9IGZyb20gJy4vbm90aWNlJztcblxuY29uc3Qge3dnUGFnZU5hbWV9ID0gbXcuY29uZmlnLmdldCgpO1xuXG4vLyDmnKzohJrmnKznmoRUZXN0Y2FzZVxuY29uc3Qgd2lraXRleHRQcmV2aWV3VGVzdGNhc2UgPSBhc3luYyAoaXNQcmV2aWV3OiBib29sZWFuKTogUHJvbWlzZTx2b2lkPiA9PiB7XG5cdC8vIOayoeacieWPr+mihOiniOWFg+e0oO+8jOmAgOWHuuOAglxuXHRpZiAoIWNoZWNrTmVlZFByZXZpZXcoKSkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGNvbnN0IHRlc3RjYXNlTGlzdDogTm9kZUxpc3RPZjxIVE1MRWxlbWVudD4gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsPEhUTUxFbGVtZW50Pihcblx0XHQnLnNwZWNpYWwtd2lraXRleHQtcHJldmlldy10ZXN0Y2FzZSdcblx0KTtcblx0Ly8g6Iul6aG16Z2i5Lit5rKh5pyJVGVzdGNhc2XvvIzpgIDlh7rjgIJcblx0aWYgKCF0ZXN0Y2FzZUxpc3QubGVuZ3RoKSB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0Ly8g5pS26ZuG5L2N5LqO6aG16Z2i5Lit55qEVGVzdGNhc2XpooTop4jlhYPntKBcblx0Y29uc3QgdGVzdGNhc2VEYXRhTGlzdDoge1xuXHRcdGVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuXHRcdGxhbmc6IHN0cmluZztcblx0XHRjb2RlOiBzdHJpbmc7XG5cdH1bXSA9IFtdO1xuXG5cdGxldCBpOiBudW1iZXIgPSAwO1xuXHRmb3IgKGkgPSAwOyBpIDwgdGVzdGNhc2VMaXN0Lmxlbmd0aDsgKytpKSB7XG5cdFx0Y29uc3QgZWxlbWVudDogSFRNTEVsZW1lbnQgfCB1bmRlZmluZWQgPSB0ZXN0Y2FzZUxpc3RbaV07XG5cdFx0aWYgKCFlbGVtZW50KSB7XG5cdFx0XHRjb250aW51ZTtcblx0XHR9XG5cblx0XHRjb25zdCBjb2RlRWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsID0gZWxlbWVudC5xdWVyeVNlbGVjdG9yPEhUTUxFbGVtZW50PignLm13LWhpZ2hsaWdodCcpO1xuXHRcdGlmICghY29kZUVsZW1lbnQpIHtcblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblxuXHRcdGNvbnN0IHtjbGFzc05hbWV9ID0gY29kZUVsZW1lbnQ7XG5cdFx0aWYgKCFjbGFzc05hbWUpIHtcblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblxuXHRcdGNvbnN0IFssIGNvZGVJZF0gPSAvbXctaGlnaGxpZ2h0LWxhbmctKFxcUyspLy5leGVjKGNsYXNzTmFtZSkgPz8gW107XG5cdFx0Y29uc3Qge2xlbmd0aH0gPSB0ZXN0Y2FzZURhdGFMaXN0O1xuXG5cdFx0ZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3ByZXZpZXctaWQnLCBsZW5ndGgudG9TdHJpbmcoKSk7XG5cdFx0dGVzdGNhc2VEYXRhTGlzdFtsZW5ndGhdID0ge1xuXHRcdFx0ZWxlbWVudCxcblx0XHRcdGxhbmc6IGNvZGVJZD8udG9Mb3dlckNhc2UoKSA/PyAnJyxcblx0XHRcdGNvZGU6IGNvZGVFbGVtZW50LnRleHRDb250ZW50Py50cmltKCkgPz8gJycsXG5cdFx0fTsgLy8gUmVwbGFjZSBBcnJheSNwdXNoIHRvIGF2b2lkIGNvcmUtanMgcG9seWZpbGxpbmdcblx0fVxuXG5cdC8vIOaVtOeQhumhtemdouS4reeahFRlc3RjYXNl6aKE6KeI5YWD57Sg77yM5bm25pS+572u4oCcW+i9veWFpeS4rV3igJ3mtojmga9cblx0bGV0IHBhY2thZ2VXaWtpdGV4dDogc3RyaW5nID0gJyc7XG5cdGZvciAoY29uc3QgdGVzdGNhc2VJdGVtIG9mIE9iamVjdC52YWx1ZXModGVzdGNhc2VEYXRhTGlzdCkpIHtcblx0XHRjb25zdCB7Y29kZSwgZWxlbWVudCwgbGFuZ30gPSB0ZXN0Y2FzZUl0ZW07XG5cblx0XHRpZiAoIWNvZGUpIHtcblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblxuXHRcdGNvbnN0ICRlbGVtZW50OiBKUXVlcnkgPSAkKGVsZW1lbnQpO1xuXG5cdFx0aWYgKFsnamF2YXNjcmlwdCcsICdqcycsICdjc3MnLCAnanNvbicsICd0ZXh0J10uaW5jbHVkZXModGVzdGNhc2VJdGVtLmxhbmcpKSB7XG5cdFx0XHRjb25zdCB3aWtpdGV4dDogc3RyaW5nID0gbHVhQ2hlY2soY29kZSwgbGFuZyk7XG5cdFx0XHRpZiAod2lraXRleHQpIHtcblx0XHRcdFx0Ly8g6Iul6Kej5p6Q57uT5p6c6Z2e56m65omN5pS+572u6aKE6KeIXG5cdFx0XHRcdCRlbGVtZW50LnByZXBlbmQobm90aWNlTG9hZGluZ0VsZW1lbnQpO1xuXHRcdFx0XHRwYWNrYWdlV2lraXRleHQgKz0gYDxkaXYgY2xhc3M9XCJzcGVjaWFsLXdpa2l0ZXh0LXByZXZpZXctdGVzdGNhc2UtJHtpfVwiPlxcbiR7d2lraXRleHR9XFxuPC9kaXY+YDtcblx0XHRcdH1cblx0XHR9IGVsc2UgaWYgKFsnbHVhJywgJ3NjcmlidW50byddLmluY2x1ZGVzKGxhbmcpKSB7XG5cdFx0XHR2b2lkIG13QWRkTHVhVGV4dChcblx0XHRcdFx0Y29kZSxcblx0XHRcdFx0d2dQYWdlTmFtZSxcblx0XHRcdFx0aXNQcmV2aWV3LFxuXHRcdFx0XHQoKCkgPT4ge1xuXHRcdFx0XHRcdHJldHVybiAod2lraXRleHQ6IHN0cmluZyk6IHZvaWQgPT4ge1xuXHRcdFx0XHRcdFx0JGVsZW1lbnQucHJlcGVuZCh3aWtpdGV4dCk7XG5cdFx0XHRcdFx0fTtcblx0XHRcdFx0fSkoKVxuXHRcdFx0KTtcblx0XHR9XG5cdH1cblxuXHQvLyDlsIbmlbTnkIblroznmoRUZXN0Y2FzZemihOiniOWFg+e0oOe7n+S4gOWPkemAgUFQSeivt+axgu+8jOW5tuWwhui/lOWbnue7k+aenOWIhuWPkeWIsOWQhFRlc3RjYXNlXG5cdGlmIChwYWNrYWdlV2lraXRleHQpIHtcblx0XHRwYWNrYWdlV2lraXRleHQgPSBgPGRpdiBjbGFzcz1cInNwZWNpYWwtd2lraXRleHQtcHJldmlldy10ZXN0Y2FzZS11bmRlZmluZWRcIj4ke3BhY2thZ2VXaWtpdGV4dH08L2Rpdj5gO1xuXHRcdHRyeSB7XG5cdFx0XHRjb25zdCBwYXJhbXM6IEFwaVBhcnNlUGFyYW1zID0ge1xuXHRcdFx0XHRhY3Rpb246ICdwYXJzZScsXG5cdFx0XHRcdGZvcm1hdDogJ2pzb24nLFxuXHRcdFx0XHRmb3JtYXR2ZXJzaW9uOiAnMicsXG5cdFx0XHRcdHRleHQ6IHBhY2thZ2VXaWtpdGV4dCxcblx0XHRcdFx0Y29udGVudG1vZGVsOiAnd2lraXRleHQnLFxuXHRcdFx0XHRwcm9wOiAndGV4dCcsXG5cdFx0XHR9O1xuXHRcdFx0aWYgKGlzUHJldmlldykge1xuXHRcdFx0XHRwYXJhbXMuZGlzYWJsZWVkaXRzZWN0aW9uID0gdHJ1ZTtcblx0XHRcdFx0cGFyYW1zLnByZXZpZXcgPSB0cnVlO1xuXHRcdFx0fVxuXG5cdFx0XHRjb25zdCBkYXRhID0gYXdhaXQgYXBpLmdldChwYXJhbXMpO1xuXHRcdFx0aWYgKCFkYXRhPy5bJ3BhcnNlJ10/LnRleHQpIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXG5cdFx0XHRjb25zdCBwYXJzZWRXaWtpdGV4dDogc3RyaW5nID0gKGRhdGFbJ3BhcnNlJ10udGV4dCBhcyBzdHJpbmcpLnRyaW0oKTtcblx0XHRcdGlmIChwYXJzZWRXaWtpdGV4dCkge1xuXHRcdFx0XHRjb25zdCAkcGFyc2VkRWxlbWVudDogSlF1ZXJ5ID0gJChwYXJzZWRXaWtpdGV4dCk7XG5cdFx0XHRcdGZvciAoY29uc3QgW2tleSwgdGVzdGNhc2VJdGVtXSBvZiBPYmplY3QuZW50cmllcyh0ZXN0Y2FzZURhdGFMaXN0KSkge1xuXHRcdFx0XHRcdGNvbnN0IHtlbGVtZW50LCBsYW5nfSA9IHRlc3RjYXNlSXRlbTtcblxuXHRcdFx0XHRcdGlmICghWydqYXZhc2NyaXB0JywgJ2pzJywgJ3RleHQnLCAnY3NzJywgJ2pzb24nXS5pbmNsdWRlcyhsYW5nKSkge1xuXHRcdFx0XHRcdFx0Y29udGludWU7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0Y29uc3QgJGVsZW1lbnQ6IEpRdWVyeTxIVE1MRWxlbWVudD4gPSAkcGFyc2VkRWxlbWVudC5maW5kKFxuXHRcdFx0XHRcdFx0YC5zcGVjaWFsLXdpa2l0ZXh0LXByZXZpZXctdGVzdGNhc2UtdW5kZWZpbmVkID4gLnNwZWNpYWwtd2lraXRleHQtcHJldmlldy10ZXN0Y2FzZS0ke2tleX1gXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRpZiAoISRlbGVtZW50Lmxlbmd0aCkge1xuXHRcdFx0XHRcdFx0Y29udGludWU7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0Y29uc3QgJGFkZFRhcmdldDogSlF1ZXJ5ID0gJChlbGVtZW50KS5maW5kKCcjc3BlY2lhbHdpa2l0ZXh0LXByZXZpZXctbG9hZGluZycpO1xuXHRcdFx0XHRcdCRhZGRUYXJnZXQuaHRtbCgkZWxlbWVudC5odG1sKCkpO1xuXHRcdFx0XHRcdG13Lmhvb2soJ3dpa2lwYWdlLmNvbnRlbnQnKS5maXJlKCRhZGRUYXJnZXQpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSBjYXRjaCB7fVxuXHR9XG59O1xuXG5leHBvcnQge3dpa2l0ZXh0UHJldmlld1Rlc3RjYXNlfTtcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLElBQUFBLHFCQUFzQkMsUUFBQSxpQkFBQTs7QUNDZixJQUFNQyx3QkFBd0I7QUFDOUIsSUFBTUMsc0JBQXNCOztBQ0RuQyxJQUFBQyxxQkFBa0JDLFFBQUFKLFFBQUEsZ0JBQUEsR0FBQSxDQUFBOzs7Ozs7QUNEbEIsSUFBQUssb0JBQXVCTCxRQUFBLGlCQUFBO0FBRXZCLElBQU1NLGtCQUFrQkEsTUFBTTtBQUM3QixTQUFPO0lBQ05DLFNBQUEsR0FBUUYsa0JBQUFHLFVBQVM7TUFDaEJDLElBQUk7TUFDSixXQUFXO01BQ1gsV0FBVztJQUNaLENBQUM7SUFDREMsVUFBQSxHQUFTTCxrQkFBQUcsVUFBUztNQUNqQkMsSUFBSTtNQUNKLFdBQVc7TUFDWCxXQUFXO0lBQ1osQ0FBQztFQUNGO0FBQ0Q7QUFFQSxJQUFNRSxlQUFlTCxnQkFBZ0I7QUFFckMsSUFBTU0sYUFBZ0RDLFNBQVE7QUFDN0QsU0FBT0YsYUFBYUUsR0FBRyxLQUFLQTtBQUM3Qjs7QURmQSxJQUFNTixTQUFTQSxNQUNkSixtQ0FBQVcsUUFBQUMsY0FBQVosbUJBQUFXLFFBQUFFLFVBQUEsTUFDQ2IsbUNBQUFXLFFBQUFDLGNBQUMsT0FBQTtFQUFJRSxLQUFLQztFQUFPQyxVQUFTO0VBQVFDLE9BQU07RUFBS0MsUUFBTztB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RCxHQUFHLENBQ3pGO0FBQ0EsZ0JBQUksQ0FBQ29DLFNBQVNnQyxRQUFRO0FBQ3JCO1lBQ0Q7QUFFQSxrQkFBTStKLGFBQXFCbE0sRUFBRVksT0FBTyxFQUFFUixLQUFLLGtDQUFrQztBQUM3RThMLHVCQUFXaE0sS0FBS0MsU0FBU0QsS0FBSyxDQUFDO0FBQy9CRyxlQUFHQyxLQUFLLGtCQUFrQixFQUFFQyxLQUFLMkwsVUFBVTtVQUM1QztRQUNEO01BQ0QsUUFBUTtNQUFDO0lBQ1Y7RUFDRCxDQUFBO0FBQUEsU0FBQSxTQS9ITTFCLHlCQUFBMkIsTUFBQTtBQUFBLFdBQUExQixNQUFBbkUsTUFBQSxNQUFBQyxTQUFBO0VBQUE7QUFBQSxFQUFBOztBbEJMTixNQUFBLEdBQUt0SixtQkFBQW1QLFNBQVEsRUFBRUMsS0FBSyxTQUFTQyxnQkFBZ0J2TSxPQUFzQztBQUVsRjBKLGVBQWExSixLQUFLO0FBRWxCLE9BQUt5Syx3QkFBd0IsSUFBSTtBQUNsQyxDQUFDOyIsCiAgIm5hbWVzIjogWyJpbXBvcnRfZXh0X2dhZGdldDYiLCAicmVxdWlyZSIsICJwcmV2aWV3TG9hZGluZ0NvbnRlbnQiLCAicHJldmlld0xvYWRpbmdJbm5lciIsICJpbXBvcnRfZXh0X2dhZGdldDIiLCAiX190b0VTTSIsICJpbXBvcnRfZXh0X2dhZGdldCIsICJnZXRJMThuTWVzc2FnZXMiLCAiRmFpbGVkIiwgImxvY2FsaXplIiwgImVuIiwgIkxvYWRpbmciLCAiaTE4bk1lc3NhZ2VzIiwgImdldE1lc3NhZ2UiLCAia2V5IiwgImRlZmF1bHQiLCAiY3JlYXRlRWxlbWVudCIsICJGcmFnbWVudCIsICJzcmMiLCAiQWxlcnRfZGVmYXVsdCIsICJkZWNvZGluZyIsICJ3aWR0aCIsICJoZWlnaHQiLCAiaWQiLCAiY2xhc3NOYW1lIiwgIkFqYXhfbG9hZGVyX2RlZmF1bHQiLCAiaW1wb3J0X2V4dF9nYWRnZXQzIiwgImNoZWNrRWxlbWVudEV4aXN0IiwgInNlbGVjdG9ycyIsICJzZWxlY3RvckFycmF5IiwgImdlbmVyYXRlQXJyYXkiLCAiX2l0ZXJhdG9yMiIsICJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsICJfc3RlcDIiLCAicyIsICJuIiwgImRvbmUiLCAic2VsZWN0b3IiLCAidmFsdWUiLCAiZG9jdW1lbnQiLCAicXVlcnlTZWxlY3RvciIsICJlcnIiLCAiZSIsICJmIiwgImFkZFBhcnNlZFdpa2l0ZXh0IiwgInBhcnNlZFdpa2l0ZXh0IiwgIiRib2R5IiwgIiQiLCAiJHBhcnNlZFdpa2l0ZXh0IiwgImh0bWwiLCAiJGVsZW1lbnQiLCAiZmluZCIsICJtdyIsICJob29rIiwgImZpcmUiLCAiYXBwZW5kIiwgIm5vdGljZUZhaWxFbGVtZW50IiwgIm5vdGljZUxvYWRpbmdFbGVtZW50IiwgInJlcGxhY2VET00iLCAiZWxlbWVudCIsICJhZGRMb2FkaW5nTm90aWNlIiwgImxvYWRpbmdGYWlsTm90aWNlIiwgInJlbW92ZUxvYWRpbmdOb3RpY2UiLCAidmVyc2lvbiIsICJ3aWtpVGV4dEtleSIsICJsdWFBZGRUZXh0IiwgImlucHV0U3RyaW5nIiwgIm5ld1N0cmluZyIsICJpc0VzY2FwZSIsICJlc2NhcGVTdHJpbmciLCAiSlNPTiIsICJwYXJzZSIsICJjb25jYXQiLCAic3RyaW5naWZ5IiwgInJlcGxhY2UiLCAibHVhR2V0U3RyaW5nIiwgInRlc3RTdHJpbmdFeGVjQXJyYXkiLCAiZXhlYyIsICJ0ZXN0U3RyaW5nIiwgInNsaWNlIiwgIk1hdGgiLCAibWF4IiwgImxlbmd0aCIsICJ0cmltQ2hlY2siLCAidHJpbSIsICJmaXJzdENoYXIiLCAiY2hhckF0IiwgImF0IiwgImx1YUdldENvbnRlbnRUZXh0IiwgIndpa2l0ZXh0IiwgIlJlZ0V4cCIsICJzdWJzdHJpbmciLCAidGVtcFRleHQiLCAibHVhR2V0T2JqVGV4dCIsICJsdWFHZXRDU1N3aWtpdGV4dCIsICJfcmVmIiwgIl9kb2N1bWVudCRxdWVyeVNlbGVjdCIsICJjc3NUZXh0IiwgImx1YUdldEpTT053aWtpdGV4dCIsICJfcmVmMiIsICJfZG9jdW1lbnQkcXVlcnlTZWxlY3QyIiwgIkpTT05UZXh0IiwgImpzb25EYXRhIiwgIl9pIiwgIl9PYmplY3QkZW50cmllcyIsICJPYmplY3QiLCAiZW50cmllcyIsICJ0ZXN0IiwgIl9pMiIsICJfT2JqZWN0JGVudHJpZXMyIiwgImsiLCAidiIsICJsdWFHZXRKU3dpa2l0ZXh0IiwgIl9yZWYzIiwgIl9kb2N1bWVudCRxdWVyeVNlbGVjdDMiLCAianNUZXh0IiwgImltcG9ydF9leHRfZ2FkZ2V0NCIsICJhcGkiLCAiaW5pdE13QXBpIiwgIndnVXNlckxhbmd1YWdlIiwgIndnVXNlclZhcmlhbnQiLCAiY29uZmlnIiwgImdldCIsICJnZXRMYW5ndWFnZSIsICJsYW5nIiwgImluY2x1ZGVzIiwgInNraW4iLCAibXdBZGRXaWtpVGV4dCIsICJfcmVmNCIsICJfYXN5bmNUb0dlbmVyYXRvciIsICJwYWdlTmFtZSIsICJpc1ByZXZpZXciLCAicGFyYW1zIiwgImFjdGlvbiIsICJmb3JtYXQiLCAiZm9ybWF0dmVyc2lvbiIsICJ0aXRsZSIsICJjb250ZW50bW9kZWwiLCAidGV4dCIsICJwcm9wIiwgInVzZWxhbmciLCAidXNlc2tpbiIsICJkaXNhYmxlZWRpdHNlY3Rpb24iLCAicHJldmlldyIsICJfZGF0YSRwYXJzZSIsICJkYXRhIiwgIl94IiwgIl94MiIsICJfeDMiLCAiYXBwbHkiLCAiYXJndW1lbnRzIiwgIm13QWRkTHVhVGV4dCIsICJfcmVmNSIsICJjYWxsQmFjayIsICJ0ZW1wTW9kdWxlTmFtZSIsICJtb2R1bGVDYWxsIiwgIl9kYXRhJHBhcnNlMiIsICJ0ZW1wbGF0ZXNhbmRib3h0aXRsZSIsICJ0ZW1wbGF0ZXNhbmRib3h0ZXh0IiwgInRlbXBsYXRlc2FuZGJveGNvbnRlbnRtb2RlbCIsICJ0ZW1wbGF0ZXNhbmRib3hjb250ZW50Zm9ybWF0IiwgInNlYXJjaCIsICJfeDQiLCAiX3g1IiwgIl94NiIsICJfeDciLCAid2dQYWdlQ29udGVudE1vZGVsIiwgImx1YUNoZWNrIiwgImNvbnRlbnRNb2RlbCIsICJ0b0xvd2VyQ2FzZSIsICJza2luMiIsICJ3Z1JldmlzaW9uSWQiLCAibXdBcHBseU5vdGljZSIsICJfcmVmNiIsICJjdXJyZW50UGFnZU5hbWUiLCAicGFnZVN1Yk5hbWUiLCAiX2RhdGEkcGFyc2UzIiwgInNtYXhhZ2UiLCAibWF4YWdlIiwgIl94OCIsICJfeDkiLCAibXdBcHBseVJldmlzaW9uIiwgIl9yZWY3IiwgIl9kYXRhJHBhcnNlNCIsICJvbGRpZCIsICJwYWdlQ29udGVudCIsICJfeDEwIiwgImltcG9ydF9leHRfZ2FkZ2V0NSIsICJhbGxNd0NvbmZpZyIsICJjaGVja013Q29uZmlnIiwgImNvbmZpZ0tleSIsICJleHBlY3RDb25maWciLCAibXdDb25maWciLCAiU3RyaW5nIiwgImNoZWNrTmVlZFByZXZpZXciLCAiYm9keSIsICJpbm5lckhUTUwiLCAid2dDYW5vbmljYWxOYW1lc3BhY2UiLCAid2dDYW5vbmljYWxTcGVjaWFsUGFnZU5hbWUiLCAid2dQYWdlTmFtZSIsICJtd0FkZFByZXZpZXciLCAiX213JHV0aWwkZ2V0VXJsJG1hdGNoIiwgIl9tdyR1dGlsJGdldFVybCRtYXRjaDIiLCAicGF0aFBhdGgiLCAiZGVjb2RlVVJJIiwgInV0aWwiLCAiZ2V0VXJsIiwgIm1hdGNoIiwgIl8kYm9keSRmaW5kJHZhbCIsICJpbnNlcnRBZnRlciIsICJ2YWwiLCAiXyRib2R5JGZpbmQkdmFsMiIsICJ0ZXh0YXJlYUNvbnRlbnQiLCAiZnVsbFBhZ2VOYW1lIiwgIndnUGFnZU5hbWUyIiwgIndpa2l0ZXh0UHJldmlld1Rlc3RjYXNlIiwgIl9yZWY4IiwgInRlc3RjYXNlTGlzdCIsICJxdWVyeVNlbGVjdG9yQWxsIiwgInRlc3RjYXNlRGF0YUxpc3QiLCAiaSIsICJfZXhlYyIsICJfY29kZUlkJHRvTG93ZXJDYXNlIiwgIl9jb2RlRWxlbWVudCR0ZXh0Q29udCIsICJfY29kZUVsZW1lbnQkdGV4dENvbnQyIiwgImNvZGVFbGVtZW50IiwgImNvZGVJZCIsICJzZXRBdHRyaWJ1dGUiLCAidG9TdHJpbmciLCAiY29kZSIsICJ0ZXh0Q29udGVudCIsICJwYWNrYWdlV2lraXRleHQiLCAiX2kzIiwgIl9PYmplY3QkdmFsdWVzIiwgInZhbHVlcyIsICJ0ZXN0Y2FzZUl0ZW0iLCAicHJlcGVuZCIsICJfZGF0YSRwYXJzZTUiLCAiJHBhcnNlZEVsZW1lbnQiLCAiX2k0IiwgIl9PYmplY3QkZW50cmllczMiLCAiJGFkZFRhcmdldCIsICJfeDExIiwgImdldEJvZHkiLCAidGhlbiIsICJzcGVjaWFsV2lraXRleHQiXQp9Cg== diff --git a/dist/StickyTableHeaders/StickyTableHeaders.css b/dist/StickyTableHeaders/StickyTableHeaders.css index fca94f5b7..b93ded4f9 100644 --- a/dist/StickyTableHeaders/StickyTableHeaders.css +++ b/dist/StickyTableHeaders/StickyTableHeaders.css @@ -37,24 +37,24 @@ /* */ /* esbuild-css-modules-plugin-ns-css:src/StickyTableHeaders/StickyTableHeaders.module.less */ -.StickyTableHeaders-module__stickyheader_eOk_LG .StickyTableHeaders-module__thead_eOk_LG { +.StickyTableHeaders-module__stickyheader_eOk_LG__490 .StickyTableHeaders-module__thead_eOk_LG__490 { position: sticky; top: -1px; } -.skin-gongbi :is(.StickyTableHeaders-module__stickyheader_eOk_LG .StickyTableHeaders-module__thead_eOk_LG) { +.skin-gongbi :is(.StickyTableHeaders-module__stickyheader_eOk_LG__490 .StickyTableHeaders-module__thead_eOk_LG__490) { top: calc(3.125rem + 6px); } @media screen and (min-width: 1440px) and (max-width: 1524px), screen and (max-width: 950px) { - .skin-gongbi :is(.StickyTableHeaders-module__stickyheader_eOk_LG .StickyTableHeaders-module__thead_eOk_LG) { + .skin-gongbi :is(.StickyTableHeaders-module__stickyheader_eOk_LG__490 .StickyTableHeaders-module__thead_eOk_LG__490) { top: -1px; } } @media screen and (min-width: 1000px) { - .skin-vector-2022.vector-sticky-header-visible :is(.StickyTableHeaders-module__stickyheader_eOk_LG .StickyTableHeaders-module__thead_eOk_LG) { + .skin-vector-2022.vector-sticky-header-visible :is(.StickyTableHeaders-module__stickyheader_eOk_LG__490 .StickyTableHeaders-module__thead_eOk_LG__490) { top: calc(3.125rem - 1px); } } /* */ -/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiZXNidWlsZC1jc3MtbW9kdWxlcy1wbHVnaW4tbnMtY3NzOnNyYy9TdGlja3lUYWJsZUhlYWRlcnMvU3RpY2t5VGFibGVIZWFkZXJzLm1vZHVsZS5sZXNzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiA8c3RkaW4+ICovXG4uU3RpY2t5VGFibGVIZWFkZXJzLW1vZHVsZV9fc3RpY2t5aGVhZGVyX2VPa19MRyAuU3RpY2t5VGFibGVIZWFkZXJzLW1vZHVsZV9fdGhlYWRfZU9rX0xHIHtcbiAgcG9zaXRpb246IHN0aWNreTtcbiAgdG9wOiAtMXB4O1xufVxuLnNraW4tZ29uZ2JpIDppcyguU3RpY2t5VGFibGVIZWFkZXJzLW1vZHVsZV9fc3RpY2t5aGVhZGVyX2VPa19MRyAuU3RpY2t5VGFibGVIZWFkZXJzLW1vZHVsZV9fdGhlYWRfZU9rX0xHKSB7XG4gIHRvcDogY2FsYygzLjEyNXJlbSArIDZweCk7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxNDQwcHgpIGFuZCAobWF4LXdpZHRoOiAxNTI0cHgpLCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk1MHB4KSB7XG4gIC5za2luLWdvbmdiaSA6aXMoLlN0aWNreVRhYmxlSGVhZGVycy1tb2R1bGVfX3N0aWNreWhlYWRlcl9lT2tfTEcgLlN0aWNreVRhYmxlSGVhZGVycy1tb2R1bGVfX3RoZWFkX2VPa19MRykge1xuICAgIHRvcDogLTFweDtcbiAgfVxufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAwMHB4KSB7XG4gIC5za2luLXZlY3Rvci0yMDIyLnZlY3Rvci1zdGlja3ktaGVhZGVyLXZpc2libGUgOmlzKC5TdGlja3lUYWJsZUhlYWRlcnMtbW9kdWxlX19zdGlja3loZWFkZXJfZU9rX0xHIC5TdGlja3lUYWJsZUhlYWRlcnMtbW9kdWxlX190aGVhZF9lT2tfTEcpIHtcbiAgICB0b3A6IGNhbGMoMy4xMjVyZW0gLSAxcHgpO1xuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxDQUFDLCtDQUErQyxDQUFDO0FBQy9DLFlBQVU7QUFDVixPQUFLO0FBQ1A7QUFDQSxDQUFDLFlBQVksSUFBSSxDQUpoQiwrQ0FJZ0UsQ0FKaEI7QUFLL0MsT0FBSyxLQUFLLFNBQVMsRUFBRTtBQUN2QjtBQUNBLE9BQU8sT0FBTyxJQUFJLENBQUMsU0FBUyxFQUFFLFFBQVEsSUFBSSxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsT0FBTyxJQUFJLENBQUMsU0FBUyxFQUFFO0FBQ3BGLEdBSkQsWUFJYyxJQUFJLENBUmxCLCtDQVFrRSxDQVJsQjtBQVM3QyxTQUFLO0FBQ1A7QUFDRjtBQUNBLE9BQU8sT0FBTyxJQUFJLENBQUMsU0FBUyxFQUFFO0FBQzVCLEdBQUMsZ0JBQWdCLENBQUMsNkJBQTZCLElBQUksQ0FicEQsK0NBYW9HLENBYnBEO0FBYzdDLFNBQUssS0FBSyxTQUFTLEVBQUU7QUFDdkI7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K */ +/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiZXNidWlsZC1jc3MtbW9kdWxlcy1wbHVnaW4tbnMtY3NzOnNyYy9TdGlja3lUYWJsZUhlYWRlcnMvU3RpY2t5VGFibGVIZWFkZXJzLm1vZHVsZS5sZXNzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiA8c3RkaW4+ICovXG4uU3RpY2t5VGFibGVIZWFkZXJzLW1vZHVsZV9fc3RpY2t5aGVhZGVyX2VPa19MR19fNDkwIC5TdGlja3lUYWJsZUhlYWRlcnMtbW9kdWxlX190aGVhZF9lT2tfTEdfXzQ5MCB7XG4gIHBvc2l0aW9uOiBzdGlja3k7XG4gIHRvcDogLTFweDtcbn1cbi5za2luLWdvbmdiaSA6aXMoLlN0aWNreVRhYmxlSGVhZGVycy1tb2R1bGVfX3N0aWNreWhlYWRlcl9lT2tfTEdfXzQ5MCAuU3RpY2t5VGFibGVIZWFkZXJzLW1vZHVsZV9fdGhlYWRfZU9rX0xHX180OTApIHtcbiAgdG9wOiBjYWxjKDMuMTI1cmVtICsgNnB4KTtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDE0NDBweCkgYW5kIChtYXgtd2lkdGg6IDE1MjRweCksIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTUwcHgpIHtcbiAgLnNraW4tZ29uZ2JpIDppcyguU3RpY2t5VGFibGVIZWFkZXJzLW1vZHVsZV9fc3RpY2t5aGVhZGVyX2VPa19MR19fNDkwIC5TdGlja3lUYWJsZUhlYWRlcnMtbW9kdWxlX190aGVhZF9lT2tfTEdfXzQ5MCkge1xuICAgIHRvcDogLTFweDtcbiAgfVxufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAwMHB4KSB7XG4gIC5za2luLXZlY3Rvci0yMDIyLnZlY3Rvci1zdGlja3ktaGVhZGVyLXZpc2libGUgOmlzKC5TdGlja3lUYWJsZUhlYWRlcnMtbW9kdWxlX19zdGlja3loZWFkZXJfZU9rX0xHX180OTAgLlN0aWNreVRhYmxlSGVhZGVycy1tb2R1bGVfX3RoZWFkX2VPa19MR19fNDkwKSB7XG4gICAgdG9wOiBjYWxjKDMuMTI1cmVtIC0gMXB4KTtcbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsQ0FBQyxvREFBb0QsQ0FBQztBQUNwRCxZQUFVO0FBQ1YsT0FBSztBQUNQO0FBQ0EsQ0FBQyxZQUFZLElBQUksQ0FKaEIsb0RBSXFFLENBSmhCO0FBS3BELE9BQUssS0FBSyxTQUFTLEVBQUU7QUFDdkI7QUFDQSxPQUFPLE9BQU8sSUFBSSxDQUFDLFNBQVMsRUFBRSxRQUFRLElBQUksQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLE9BQU8sSUFBSSxDQUFDLFNBQVMsRUFBRTtBQUNwRixHQUpELFlBSWMsSUFBSSxDQVJsQixvREFRdUUsQ0FSbEI7QUFTbEQsU0FBSztBQUNQO0FBQ0Y7QUFDQSxPQUFPLE9BQU8sSUFBSSxDQUFDLFNBQVMsRUFBRTtBQUM1QixHQUFDLGdCQUFnQixDQUFDLDZCQUE2QixJQUFJLENBYnBELG9EQWF5RyxDQWJwRDtBQWNsRCxTQUFLLEtBQUssU0FBUyxFQUFFO0FBQ3ZCO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg== */ diff --git a/dist/StickyTableHeaders/StickyTableHeaders.js b/dist/StickyTableHeaders/StickyTableHeaders.js index 9954a8979..6d9c670d3 100644 --- a/dist/StickyTableHeaders/StickyTableHeaders.js +++ b/dist/StickyTableHeaders/StickyTableHeaders.js @@ -85,8 +85,8 @@ function _arrayLikeToArray(r, a) { return n; } //! src/StickyTableHeaders/StickyTableHeaders.module.less -var stickyheader = "StickyTableHeaders-module__stickyheader_eOk_LG"; -var thead = "StickyTableHeaders-module__thead_eOk_LG"; +var stickyheader = "StickyTableHeaders-module__stickyheader_eOk_LG__490"; +var thead = "StickyTableHeaders-module__thead_eOk_LG__490"; //! src/StickyTableHeaders/StickyTableHeaders.ts var import_ext_gadget = require("ext.gadget.Util"); void (0, import_ext_gadget.getBody)().then(($body) => { @@ -115,4 +115,4 @@ void (0, import_ext_gadget.getBody)().then(($body) => { /* */ -//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL1N0aWNreVRhYmxlSGVhZGVycy9TdGlja3lUYWJsZUhlYWRlcnMubW9kdWxlLmxlc3MiLCAic3JjL1N0aWNreVRhYmxlSGVhZGVycy9TdGlja3lUYWJsZUhlYWRlcnMudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCBcImVzYnVpbGQtY3NzLW1vZHVsZXMtcGx1Z2luLW5zLWNzczpzcmMvU3RpY2t5VGFibGVIZWFkZXJzL1N0aWNreVRhYmxlSGVhZGVycy5tb2R1bGUubGVzc1wiO1xuZXhwb3J0IGNvbnN0IHN0aWNreWhlYWRlciA9IFwiU3RpY2t5VGFibGVIZWFkZXJzLW1vZHVsZV9fc3RpY2t5aGVhZGVyX2VPa19MR1wiO1xuZXhwb3J0IGNvbnN0IHRoZWFkID0gXCJTdGlja3lUYWJsZUhlYWRlcnMtbW9kdWxlX190aGVhZF9lT2tfTEdcIjtcblxuZXhwb3J0IGRlZmF1bHQge1xuICBcInN0aWNreWhlYWRlclwiOiBzdGlja3loZWFkZXIsXG4gIFwidGhlYWRcIjogdGhlYWRcbn07XG4gICAgICAiLCAiLyogZXNsaW50LWRpc2FibGUgbWVkaWF3aWtpL2NsYXNzLWRvYyAqL1xuaW1wb3J0IHtzdGlja3loZWFkZXIsIHRoZWFkfSBmcm9tICcuL1N0aWNreVRhYmxlSGVhZGVycy5tb2R1bGUubGVzcyc7XG5pbXBvcnQge2dldEJvZHl9IGZyb20gJ2V4dC5nYWRnZXQuVXRpbCc7XG5cbnZvaWQgZ2V0Qm9keSgpLnRoZW4oKCRib2R5OiBKUXVlcnk8SFRNTEJvZHlFbGVtZW50Pik6IHZvaWQgPT4ge1xuXHRmb3IgKGNvbnN0IHRhYmxlIG9mICRib2R5LmZpbmQ8SFRNTFRhYmxlRWxlbWVudD4oJy53aWtpdGFibGU6bm90KC5zb3J0YWJsZSknKSkge1xuXHRcdGNvbnN0ICR0YWJsZTogSlF1ZXJ5PEhUTUxUYWJsZUVsZW1lbnQ+ID0gJCh0YWJsZSk7XG5cblx0XHRjb25zdCAkdGhlYWQ6IEpRdWVyeTxIVE1MVGFibGVTZWN0aW9uRWxlbWVudD4gPSAkdGFibGUuZmluZCgndGhlYWQnKTtcblx0XHRjb25zdCAkdHJUaCA9ICR0YWJsZS5maW5kKCd0Ym9keSA+IHRyID4gdGgnKS5wYXJlbnQ8SFRNTFRhYmxlUm93RWxlbWVudD4oKS5lcSgwKTtcblx0XHRjb25zdCAkdHJUZCA9ICR0YWJsZS5maW5kKCd0Ym9keSA+IHRyID4gdGQnKS5wYXJlbnQoKTtcblxuXHRcdGNvbnN0ICR0YXJnZXQ6IEpRdWVyeTxIVE1MVGFibGVTZWN0aW9uRWxlbWVudD4gfCBKUXVlcnk8SFRNTFRhYmxlUm93RWxlbWVudD4gfCBudWxsID0gJHRoZWFkLmxlbmd0aFxuXHRcdFx0PyAkdGhlYWRcblx0XHRcdDogJHRyVGgubGVuZ3RoXG5cdFx0XHRcdD8gJHRyVGhcblx0XHRcdFx0OiBudWxsO1xuXG5cdFx0aWYgKCR0YXJnZXQgJiYgJHRyVGQubGVuZ3RoID49IDUpIHtcblx0XHRcdCR0YWJsZS5hZGRDbGFzcyhzdGlja3loZWFkZXIgYXMgc3RyaW5nKTtcblx0XHRcdCR0YXJnZXQuYWRkQ2xhc3ModGhlYWQgYXMgc3RyaW5nKTtcblx0XHR9XG5cdH1cbn0pO1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ08sSUFBTUEsZUFBZTtBQUNyQixJQUFNQyxRQUFROztBQ0FyQixJQUFBQyxvQkFBc0JDLFFBQUEsaUJBQUE7QUFFdEIsTUFBQSxHQUFLRCxrQkFBQUUsU0FBUSxFQUFFQyxLQUFNQyxXQUF5QztBQUFBLE1BQUFDLFlBQUFDLDJCQUN6Q0YsTUFBTUcsS0FBdUIsMkJBQTJCLENBQUEsR0FBQUM7QUFBQSxNQUFBO0FBQTVFLFNBQUFILFVBQUFJLEVBQUEsR0FBQSxFQUFBRCxRQUFBSCxVQUFBSyxFQUFBLEdBQUFDLFFBQStFO0FBQUEsWUFBcEVDLFFBQUFKLE1BQUFLO0FBQ1YsWUFBTUMsU0FBbUNDLEVBQUVILEtBQUs7QUFFaEQsWUFBTUksU0FBMENGLE9BQU9QLEtBQUssT0FBTztBQUNuRSxZQUFNVSxRQUFRSCxPQUFPUCxLQUFLLGlCQUFpQixFQUFFVyxPQUE0QixFQUFFQyxHQUFHLENBQUM7QUFDL0UsWUFBTUMsUUFBUU4sT0FBT1AsS0FBSyxpQkFBaUIsRUFBRVcsT0FBTztBQUVwRCxZQUFNRyxVQUFnRkwsT0FBT00sU0FDMUZOLFNBQ0FDLE1BQU1LLFNBQ0xMLFFBQ0E7QUFFSixVQUFJSSxXQUFXRCxNQUFNRSxVQUFVLEdBQUc7QUFDakNSLGVBQU9TLFNBQVN6QixZQUFzQjtBQUN0Q3VCLGdCQUFRRSxTQUFTeEIsS0FBZTtNQUNqQztJQUNEO0VBQUEsU0FBQXlCLEtBQUE7QUFBQW5CLGNBQUFvQixFQUFBRCxHQUFBO0VBQUEsVUFBQTtBQUFBbkIsY0FBQXFCLEVBQUE7RUFBQTtBQUNELENBQUM7IiwKICAibmFtZXMiOiBbInN0aWNreWhlYWRlciIsICJ0aGVhZCIsICJpbXBvcnRfZXh0X2dhZGdldCIsICJyZXF1aXJlIiwgImdldEJvZHkiLCAidGhlbiIsICIkYm9keSIsICJfaXRlcmF0b3IiLCAiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIiLCAiZmluZCIsICJfc3RlcCIsICJzIiwgIm4iLCAiZG9uZSIsICJ0YWJsZSIsICJ2YWx1ZSIsICIkdGFibGUiLCAiJCIsICIkdGhlYWQiLCAiJHRyVGgiLCAicGFyZW50IiwgImVxIiwgIiR0clRkIiwgIiR0YXJnZXQiLCAibGVuZ3RoIiwgImFkZENsYXNzIiwgImVyciIsICJlIiwgImYiXQp9Cg== +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL1N0aWNreVRhYmxlSGVhZGVycy9TdGlja3lUYWJsZUhlYWRlcnMubW9kdWxlLmxlc3MiLCAic3JjL1N0aWNreVRhYmxlSGVhZGVycy9TdGlja3lUYWJsZUhlYWRlcnMudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCBcImVzYnVpbGQtY3NzLW1vZHVsZXMtcGx1Z2luLW5zLWNzczpzcmMvU3RpY2t5VGFibGVIZWFkZXJzL1N0aWNreVRhYmxlSGVhZGVycy5tb2R1bGUubGVzc1wiO1xuZXhwb3J0IGNvbnN0IHN0aWNreWhlYWRlciA9IFwiU3RpY2t5VGFibGVIZWFkZXJzLW1vZHVsZV9fc3RpY2t5aGVhZGVyX2VPa19MR19fNDkwXCI7XG5leHBvcnQgY29uc3QgdGhlYWQgPSBcIlN0aWNreVRhYmxlSGVhZGVycy1tb2R1bGVfX3RoZWFkX2VPa19MR19fNDkwXCI7XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgXCJzdGlja3loZWFkZXJcIjogc3RpY2t5aGVhZGVyLFxuICBcInRoZWFkXCI6IHRoZWFkXG59O1xuICAgICAgIiwgIi8qIGVzbGludC1kaXNhYmxlIG1lZGlhd2lraS9jbGFzcy1kb2MgKi9cbmltcG9ydCB7c3RpY2t5aGVhZGVyLCB0aGVhZH0gZnJvbSAnLi9TdGlja3lUYWJsZUhlYWRlcnMubW9kdWxlLmxlc3MnO1xuaW1wb3J0IHtnZXRCb2R5fSBmcm9tICdleHQuZ2FkZ2V0LlV0aWwnO1xuXG52b2lkIGdldEJvZHkoKS50aGVuKCgkYm9keTogSlF1ZXJ5PEhUTUxCb2R5RWxlbWVudD4pOiB2b2lkID0+IHtcblx0Zm9yIChjb25zdCB0YWJsZSBvZiAkYm9keS5maW5kPEhUTUxUYWJsZUVsZW1lbnQ+KCcud2lraXRhYmxlOm5vdCguc29ydGFibGUpJykpIHtcblx0XHRjb25zdCAkdGFibGU6IEpRdWVyeTxIVE1MVGFibGVFbGVtZW50PiA9ICQodGFibGUpO1xuXG5cdFx0Y29uc3QgJHRoZWFkOiBKUXVlcnk8SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ+ID0gJHRhYmxlLmZpbmQoJ3RoZWFkJyk7XG5cdFx0Y29uc3QgJHRyVGggPSAkdGFibGUuZmluZCgndGJvZHkgPiB0ciA+IHRoJykucGFyZW50PEhUTUxUYWJsZVJvd0VsZW1lbnQ+KCkuZXEoMCk7XG5cdFx0Y29uc3QgJHRyVGQgPSAkdGFibGUuZmluZCgndGJvZHkgPiB0ciA+IHRkJykucGFyZW50KCk7XG5cblx0XHRjb25zdCAkdGFyZ2V0OiBKUXVlcnk8SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ+IHwgSlF1ZXJ5PEhUTUxUYWJsZVJvd0VsZW1lbnQ+IHwgbnVsbCA9ICR0aGVhZC5sZW5ndGhcblx0XHRcdD8gJHRoZWFkXG5cdFx0XHQ6ICR0clRoLmxlbmd0aFxuXHRcdFx0XHQ/ICR0clRoXG5cdFx0XHRcdDogbnVsbDtcblxuXHRcdGlmICgkdGFyZ2V0ICYmICR0clRkLmxlbmd0aCA+PSA1KSB7XG5cdFx0XHQkdGFibGUuYWRkQ2xhc3Moc3RpY2t5aGVhZGVyIGFzIHN0cmluZyk7XG5cdFx0XHQkdGFyZ2V0LmFkZENsYXNzKHRoZWFkIGFzIHN0cmluZyk7XG5cdFx0fVxuXHR9XG59KTtcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNPLElBQU1BLGVBQWU7QUFDckIsSUFBTUMsUUFBUTs7QUNBckIsSUFBQUMsb0JBQXNCQyxRQUFBLGlCQUFBO0FBRXRCLE1BQUEsR0FBS0Qsa0JBQUFFLFNBQVEsRUFBRUMsS0FBTUMsV0FBeUM7QUFBQSxNQUFBQyxZQUFBQywyQkFDekNGLE1BQU1HLEtBQXVCLDJCQUEyQixDQUFBLEdBQUFDO0FBQUEsTUFBQTtBQUE1RSxTQUFBSCxVQUFBSSxFQUFBLEdBQUEsRUFBQUQsUUFBQUgsVUFBQUssRUFBQSxHQUFBQyxRQUErRTtBQUFBLFlBQXBFQyxRQUFBSixNQUFBSztBQUNWLFlBQU1DLFNBQW1DQyxFQUFFSCxLQUFLO0FBRWhELFlBQU1JLFNBQTBDRixPQUFPUCxLQUFLLE9BQU87QUFDbkUsWUFBTVUsUUFBUUgsT0FBT1AsS0FBSyxpQkFBaUIsRUFBRVcsT0FBNEIsRUFBRUMsR0FBRyxDQUFDO0FBQy9FLFlBQU1DLFFBQVFOLE9BQU9QLEtBQUssaUJBQWlCLEVBQUVXLE9BQU87QUFFcEQsWUFBTUcsVUFBZ0ZMLE9BQU9NLFNBQzFGTixTQUNBQyxNQUFNSyxTQUNMTCxRQUNBO0FBRUosVUFBSUksV0FBV0QsTUFBTUUsVUFBVSxHQUFHO0FBQ2pDUixlQUFPUyxTQUFTekIsWUFBc0I7QUFDdEN1QixnQkFBUUUsU0FBU3hCLEtBQWU7TUFDakM7SUFDRDtFQUFBLFNBQUF5QixLQUFBO0FBQUFuQixjQUFBb0IsRUFBQUQsR0FBQTtFQUFBLFVBQUE7QUFBQW5CLGNBQUFxQixFQUFBO0VBQUE7QUFDRCxDQUFDOyIsCiAgIm5hbWVzIjogWyJzdGlja3loZWFkZXIiLCAidGhlYWQiLCAiaW1wb3J0X2V4dF9nYWRnZXQiLCAicmVxdWlyZSIsICJnZXRCb2R5IiwgInRoZW4iLCAiJGJvZHkiLCAiX2l0ZXJhdG9yIiwgIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwgImZpbmQiLCAiX3N0ZXAiLCAicyIsICJuIiwgImRvbmUiLCAidGFibGUiLCAidmFsdWUiLCAiJHRhYmxlIiwgIiQiLCAiJHRoZWFkIiwgIiR0clRoIiwgInBhcmVudCIsICJlcSIsICIkdHJUZCIsICIkdGFyZ2V0IiwgImxlbmd0aCIsICJhZGRDbGFzcyIsICJlcnIiLCAiZSIsICJmIl0KfQo= diff --git a/dist/TranslateVariants/TranslateVariants.css b/dist/TranslateVariants/TranslateVariants.css index 9ea1a5157..151ed3a84 100644 --- a/dist/TranslateVariants/TranslateVariants.css +++ b/dist/TranslateVariants/TranslateVariants.css @@ -20,17 +20,17 @@ /* */ /* esbuild-css-modules-plugin-ns-css:src/TranslateVariants/TranslateVariants.module.less */ -.TranslateVariants-module__submitAll_Yvm-lW { +.TranslateVariants-module__submitAll_Yvm-lW__490 { text-align: right; } -.TranslateVariants-module__noChanges_Yvm-lW, -.TranslateVariants-module__publishChanges_Yvm-lW { +.TranslateVariants-module__noChanges_Yvm-lW__490, +.TranslateVariants-module__publishChanges_Yvm-lW__490 { float: right; } -.TranslateVariants-module__warning_Yvm-lW { +.TranslateVariants-module__warning_Yvm-lW__490 { color: red; } /* */ -/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiZXNidWlsZC1jc3MtbW9kdWxlcy1wbHVnaW4tbnMtY3NzOnNyYy9UcmFuc2xhdGVWYXJpYW50cy9UcmFuc2xhdGVWYXJpYW50cy5tb2R1bGUubGVzcyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyogPHN0ZGluPiAqL1xuLlRyYW5zbGF0ZVZhcmlhbnRzLW1vZHVsZV9fc3VibWl0QWxsX1l2bS1sVyB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuLlRyYW5zbGF0ZVZhcmlhbnRzLW1vZHVsZV9fbm9DaGFuZ2VzX1l2bS1sVyxcbi5UcmFuc2xhdGVWYXJpYW50cy1tb2R1bGVfX3B1Ymxpc2hDaGFuZ2VzX1l2bS1sVyB7XG4gIGZsb2F0OiByaWdodDtcbn1cbi5UcmFuc2xhdGVWYXJpYW50cy1tb2R1bGVfX3dhcm5pbmdfWXZtLWxXIHtcbiAgY29sb3I6IHJlZDtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxDQUFDO0FBQ0MsY0FBWTtBQUNkO0FBQ0EsQ0FBQztBQUNELENBQUM7QUFDQyxTQUFPO0FBQ1Q7QUFDQSxDQUFDO0FBQ0MsU0FBTztBQUNUOyIsCiAgIm5hbWVzIjogW10KfQo= */ +/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiZXNidWlsZC1jc3MtbW9kdWxlcy1wbHVnaW4tbnMtY3NzOnNyYy9UcmFuc2xhdGVWYXJpYW50cy9UcmFuc2xhdGVWYXJpYW50cy5tb2R1bGUubGVzcyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyogPHN0ZGluPiAqL1xuLlRyYW5zbGF0ZVZhcmlhbnRzLW1vZHVsZV9fc3VibWl0QWxsX1l2bS1sV19fNDkwIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG4uVHJhbnNsYXRlVmFyaWFudHMtbW9kdWxlX19ub0NoYW5nZXNfWXZtLWxXX180OTAsXG4uVHJhbnNsYXRlVmFyaWFudHMtbW9kdWxlX19wdWJsaXNoQ2hhbmdlc19Zdm0tbFdfXzQ5MCB7XG4gIGZsb2F0OiByaWdodDtcbn1cbi5UcmFuc2xhdGVWYXJpYW50cy1tb2R1bGVfX3dhcm5pbmdfWXZtLWxXX180OTAge1xuICBjb2xvcjogcmVkO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLENBQUM7QUFDQyxjQUFZO0FBQ2Q7QUFDQSxDQUFDO0FBQ0QsQ0FBQztBQUNDLFNBQU87QUFDVDtBQUNBLENBQUM7QUFDQyxTQUFPO0FBQ1Q7IiwKICAibmFtZXMiOiBbXQp9Cg== */ diff --git a/dist/TranslateVariants/TranslateVariants.js b/dist/TranslateVariants/TranslateVariants.js index 84775c798..eaab33c9b 100644 --- a/dist/TranslateVariants/TranslateVariants.js +++ b/dist/TranslateVariants/TranslateVariants.js @@ -110,12 +110,12 @@ var contentID = "TranslateVariants-content"; var translateVariantsSummary = "自动转换变体自[[$1]]([[MediaWiki:Gadget-TranslateVariants.js|TranslateVariants]])"; var version = "2.0"; //! src/TranslateVariants/TranslateVariants.module.less -var noChanges = "TranslateVariants-module__noChanges_Yvm-lW"; -var publishChanges = "TranslateVariants-module__publishChanges_Yvm-lW"; -var submitAll = "TranslateVariants-module__submitAll_Yvm-lW"; -var warning = "TranslateVariants-module__warning_Yvm-lW"; +var noChanges = "TranslateVariants-module__noChanges_Yvm-lW__490"; +var publishChanges = "TranslateVariants-module__publishChanges_Yvm-lW__490"; +var submitAll = "TranslateVariants-module__submitAll_Yvm-lW__490"; +var warning = "TranslateVariants-module__warning_Yvm-lW__490"; //! src/TranslateVariants/modules/translateVariants.tsx -var import_ext_gadget2 = __toESM(require("ext.gadget.React"), 1); +var import_ext_gadget2 = __toESM(require("ext.gadget.JSX"), 1); //! src/TranslateVariants/modules/api.ts var import_ext_gadget = require("ext.gadget.Util"); var api = (0, import_ext_gadget.initMwApi)("TranslateVariants/".concat(version)); @@ -358,4 +358,4 @@ void (0, import_ext_gadget3.getBody)().then(($body) => { /* */ -//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL1RyYW5zbGF0ZVZhcmlhbnRzL1RyYW5zbGF0ZVZhcmlhbnRzLnRzIiwgInNyYy9UcmFuc2xhdGVWYXJpYW50cy9vcHRpb25zLmpzb24iLCAic3JjL1RyYW5zbGF0ZVZhcmlhbnRzL1RyYW5zbGF0ZVZhcmlhbnRzLm1vZHVsZS5sZXNzIiwgInNyYy9UcmFuc2xhdGVWYXJpYW50cy9tb2R1bGVzL3RyYW5zbGF0ZVZhcmlhbnRzLnRzeCIsICJzcmMvVHJhbnNsYXRlVmFyaWFudHMvbW9kdWxlcy9hcGkudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB7Z2V0Qm9keX0gZnJvbSAnZXh0LmdhZGdldC5VdGlsJztcbmltcG9ydCB7dHJhbnNsYXRlVmFyaWFudHN9IGZyb20gJy4vbW9kdWxlcy90cmFuc2xhdGVWYXJpYW50cyc7XG5cbnZvaWQgZ2V0Qm9keSgpLnRoZW4oKCRib2R5OiBKUXVlcnk8SFRNTEJvZHlFbGVtZW50Pik6IHZvaWQgPT4ge1xuXHRjb25zdCB7d2dQYWdlTmFtZX0gPSBtdy5jb25maWcuZ2V0KCk7XG5cdGlmICghL15NZWRpYVdpa2k6W14vXSsoXFwvemgpPyQvLnRlc3Qod2dQYWdlTmFtZSkpIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRjb25zdCBwb3J0bGV0SWQ6ICdwLWNhY3Rpb25zJyB8ICdwLXRiJyA9ICRib2R5LmZpbmQoJyNwLWNhY3Rpb25zJykubGVuZ3RoID8gJ3AtY2FjdGlvbnMnIDogJ3AtdGInO1xuXHRjb25zdCBlbGVtZW50OiBIVE1MTElFbGVtZW50IHwgbnVsbCA9IG13LnV0aWwuYWRkUG9ydGxldExpbmsocG9ydGxldElkLCAnIycsIHdpbmRvdy53Z1VMUygn6L2s5o2i5Y+Y5L2TJywgJ+i9ieaPm+iuiumrlCcpKTtcblxuXHRlbGVtZW50Py5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpOiB2b2lkID0+IHtcblx0XHRlbGVtZW50LnJlbW92ZSgpO1xuXHRcdHRyYW5zbGF0ZVZhcmlhbnRzKHdnUGFnZU5hbWUpO1xuXHR9KTtcbn0pO1xuIiwgIntcblx0XCJjb250ZW50SURcIjogXCJUcmFuc2xhdGVWYXJpYW50cy1jb250ZW50XCIsXG5cdFwidHJhbnNsYXRlVmFyaWFudHNTdW1tYXJ5XCI6IFwi6Ieq5Yqo6L2s5o2i5Y+Y5L2T6IeqW1skMV1d77yIW1tNZWRpYVdpa2k6R2FkZ2V0LVRyYW5zbGF0ZVZhcmlhbnRzLmpzfFRyYW5zbGF0ZVZhcmlhbnRzXV3vvIlcIixcblx0XCJ2ZXJzaW9uXCI6IFwiMi4wXCJcbn1cbiIsICJpbXBvcnQgXCJlc2J1aWxkLWNzcy1tb2R1bGVzLXBsdWdpbi1ucy1jc3M6c3JjL1RyYW5zbGF0ZVZhcmlhbnRzL1RyYW5zbGF0ZVZhcmlhbnRzLm1vZHVsZS5sZXNzXCI7XG5leHBvcnQgY29uc3Qgbm9DaGFuZ2VzID0gXCJUcmFuc2xhdGVWYXJpYW50cy1tb2R1bGVfX25vQ2hhbmdlc19Zdm0tbFdcIjtcbmV4cG9ydCBjb25zdCBwdWJsaXNoQ2hhbmdlcyA9IFwiVHJhbnNsYXRlVmFyaWFudHMtbW9kdWxlX19wdWJsaXNoQ2hhbmdlc19Zdm0tbFdcIjtcbmV4cG9ydCBjb25zdCBzdWJtaXRBbGwgPSBcIlRyYW5zbGF0ZVZhcmlhbnRzLW1vZHVsZV9fc3VibWl0QWxsX1l2bS1sV1wiO1xuZXhwb3J0IGNvbnN0IHdhcm5pbmcgPSBcIlRyYW5zbGF0ZVZhcmlhbnRzLW1vZHVsZV9fd2FybmluZ19Zdm0tbFdcIjtcblxuZXhwb3J0IGRlZmF1bHQge1xuICBcIm5vQ2hhbmdlc1wiOiBub0NoYW5nZXMsXG4gIFwicHVibGlzaENoYW5nZXNcIjogcHVibGlzaENoYW5nZXMsXG4gIFwic3VibWl0QWxsXCI6IHN1Ym1pdEFsbCxcbiAgXCJ3YXJuaW5nXCI6IHdhcm5pbmdcbn07XG4gICAgICAiLCAiaW1wb3J0ICogYXMgT1BUSU9OUyBmcm9tICcuLi9vcHRpb25zLmpzb24nO1xuaW1wb3J0IHtub0NoYW5nZXMsIHB1Ymxpc2hDaGFuZ2VzLCBzdWJtaXRBbGwsIHdhcm5pbmd9IGZyb20gJy4uL1RyYW5zbGF0ZVZhcmlhbnRzLm1vZHVsZS5sZXNzJztcbmltcG9ydCBSZWFjdCBmcm9tICdleHQuZ2FkZ2V0LlJlYWN0JztcbmltcG9ydCB7YXBpfSBmcm9tICcuL2FwaSc7XG5cbnR5cGUgTGFuZ3MgPSAnemgnIHwgJ3poLWhhbnMnIHwgJ3poLWNuJyB8ICd6aC1teScgfCAnemgtc2cnIHwgJ3poLWhhbnQnIHwgJ3poLWhrJyB8ICd6aC1tbycgfCAnemgtdHcnO1xuY29uc3QgbGFuZ3M6IExhbmdzW10gPSBbJ3poJywgJ3poLWhhbnMnLCAnemgtY24nLCAnemgtbXknLCAnemgtc2cnLCAnemgtaGFudCcsICd6aC1oaycsICd6aC1tbycsICd6aC10dyddO1xuY29uc3QgbmFtZU9mTGFuZ3MgPSB7XG5cdHpoOiAn5Y6f5aeLJyxcblx0J3poLWhhbnMnOiAn566A5L2TJyxcblx0J3poLWNuJzogJ+S4reWbveWkp+mZhueugOS9kycsXG5cdCd6aC1teSc6ICfpqazmnaXopb/kuprnroDkvZMnLFxuXHQnemgtc2cnOiAn5paw5Yqg5Z2h566A5L2TJyxcblx0J3poLWhhbnQnOiAn57mB6auUJyxcblx0J3poLWhrJzogJ+S4reWci+mmmea4r+e5gemrlCcsXG5cdCd6aC1tbyc6ICfkuK3lnIvmvrPploDnuYHpq5QnLFxuXHQnemgtdHcnOiAn5Lit5ZyL6Ie654Gj57mB6auUJyxcbn0gYXMgY29uc3Qgc2F0aXNmaWVzIFJlY29yZDxMYW5ncywgc3RyaW5nPjtcblxuY29uc3QgdHJhbnNsYXRlVmFyaWFudHMgPSAod2dQYWdlTmFtZTogc3RyaW5nKTogdm9pZCA9PiB7XG5cdGNvbnN0IHN1bW1hcnk6IHN0cmluZyA9IE9QVElPTlMudHJhbnNsYXRlVmFyaWFudHNTdW1tYXJ5LnJlcGxhY2UoL1xcJDEvZywgd2dQYWdlTmFtZSk7XG5cblx0Y29uc3QgJHdyYXBwZXI6IEpRdWVyeSA9ICgkKDxkaXYgaWQ9XCJUcmFuc2xhdGVWYXJpYW50c1wiIC8+KSBhcyBKUXVlcnkpLnByZXBlbmRUbygnI2JvZHlDb250ZW50Jyk7XG5cblx0Y29uc3QgJHN1Ym1pdEFsbDogSlF1ZXJ5ID0gJChcblx0XHQ8YnV0dG9uIGNsYXNzTmFtZT17WydjZHgtYnV0dG9uJywgJ2NkeC1idXR0b24tLWFjdGlvbi1wcm9ncmVzc2l2ZScsICdjZHgtYnV0dG9uLS13ZWlnaHQtcHJpbWFyeSddfT5cblx0XHRcdHt3aW5kb3cud2dVTFMoJ+WPkeW4g+aJgOacieabtOaUuScsICfnmbzkvYjmiYDmnInorormm7QnKX1cblx0XHQ8L2J1dHRvbj5cblx0KSBhcyBKUXVlcnk7XG5cdCRzdWJtaXRBbGwub24oJ2NsaWNrJywgKCk6IHZvaWQgPT4ge1xuXHRcdGNvbnN0ICRidXR0b25zOiBKUXVlcnkgPSAkd3JhcHBlci5maW5kKGAuJHtwdWJsaXNoQ2hhbmdlc31gKTtcblx0XHRpZiAoISRidXR0b25zLmxlbmd0aCkge1xuXHRcdFx0dm9pZCBtdy5ub3RpZnkod2luZG93LndnVUxTKCfmsqHmnInku7vkvZXlj6/ku6Xlj5HluIPnmoTmm7TmlLknLCAn5rKS5pyJ5Lu75L2V6K6K5pu05Y+v55m85L2IJyksIHtcblx0XHRcdFx0dGFnOiAnVHJhbnNsYXRlVmFyaWFudHMnLFxuXHRcdFx0XHR0eXBlOiAnZXJyb3InLFxuXHRcdFx0fSk7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0aWYgKCFjb25maXJtKHdpbmRvdy53Z1VMUygn5Y+R5biDJDHkuKrmm7TmlLnvvJ8nLCAn55m85L2IJDHlgIvorormm7TvvJ8nKS5yZXBsYWNlKCckMScsIGAkeyRidXR0b25zLmxlbmd0aH1gKSkpIHtcblx0XHRcdHZvaWQgbXcubm90aWZ5KHdpbmRvdy53Z1VMUygn5bey5Y+W5raI5Y+R5biDJywgJ+W3suWPlua2iOeZvOS9iCcpLCB7dGFnOiAnVHJhbnNsYXRlVmFyaWFudHMnLCB0eXBlOiAnd2Fybid9KTtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRmb3IgKGNvbnN0IGJ1dHRvbiBvZiAkYnV0dG9ucykge1xuXHRcdFx0JChidXR0b24pLnRyaWdnZXIoJ2NsaWNrJyk7XG5cdFx0fVxuXHR9KTtcblxuXHQkd3JhcHBlci5hcHBlbmQoXG5cdFx0JCg8ZGl2IGNsYXNzTmFtZT17c3VibWl0QWxsfSAvPikuYXBwZW5kKCRzdWJtaXRBbGwpLFxuXHRcdDxkaXYgY2xhc3NOYW1lPXt3YXJuaW5nfT5cblx0XHRcdHt3aW5kb3cud2dVTFMoXG5cdFx0XHRcdCfmj5DphpLvvJpUcmFuc2xhdGVWYXJpYW50c+W3peWFt+S9v+eUqElU5Y+KTWVkaWFXaWtp6L2s5o2i57uE6L+b6KGM6Ieq5Yqo6L2s5o2i77yM6K+356Gu6K6k6L2s5o2i57uT5p6c5piv5ZCm5q2j56Gu77yBJyxcblx0XHRcdFx0J+aPkOmGku+8mlRyYW5zbGF0ZVZhcmlhbnRz5bel5YW35L2/55SoSVTlj4pNZWRpYVdpa2novYnmj5vntYTpgLLooYzoh6rli5XovYnmj5vvvIzoq4vnorroqo3ovYnmj5vntZDmnpzmmK/lkKbmraPnorrvvIEnXG5cdFx0XHQpfVxuXHRcdDwvZGl2PlxuXHQpO1xuXG5cdGNvbnN0IGRlZmF1bHRMYW5nczogTGFuZ3NbXSA9IFsuLi5sYW5nc107XG5cblx0bGV0IHJ1bkxhbmdzID0gcHJvbXB0KFxuXHRcdHdpbmRvdy53Z1VMUygn6L2s5o2i5Lul5LiL6K+t6KiA77yI5Lul6YCX5Y+36ZqU5byA77yJ77yaJywgJ+i9ieaPm+S7peS4i+iqnuiogO+8iOS7pemAl+iZn+malOmWi++8ie+8micpLFxuXHRcdGRlZmF1bHRMYW5ncy5qb2luKCcsJylcblx0KT8uc3BsaXQoJywnKSBhcyBMYW5nc1tdIHwgbnVsbDtcblx0aWYgKHJ1bkxhbmdzID09PSBudWxsKSB7XG5cdFx0cnVuTGFuZ3MgPSBkZWZhdWx0TGFuZ3M7XG5cdH1cblxuXHRjb25zdCBsYW5nUXVldWU6IExhbmdzW10gPSBydW5MYW5nc1xuXHRcdC5tYXAoKGxhbmc6IExhbmdzKTogTGFuZ3MgPT4gbGFuZy50cmltKCkgYXMgTGFuZ3MpXG5cdFx0LmZpbHRlcigobGFuZzogTGFuZ3MpOiBib29sZWFuID0+IGxhbmdzLmluY2x1ZGVzKGxhbmcpKTtcblxuXHRjb25zdCBwcm9jZXNzID0gKHBhZ2VDb250ZW50OiBzdHJpbmcpOiB2b2lkID0+IHtcblx0XHRpZiAoIWxhbmdRdWV1ZS5sZW5ndGgpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRjb25zdCBsYW5nID0gbGFuZ1F1ZXVlLnNoaWZ0KCkgYXMgTGFuZ3M7XG5cblx0XHRjb25zdCAkZGlmZlRhYmxlOiBKUXVlcnkgPSAkKDxkaXYgaWQ9e2BUcmFuc2xhdGVWYXJpYW50cy1kaWZmLSR7bGFuZ31gfSAvPikgYXMgSlF1ZXJ5O1xuXHRcdCR3cmFwcGVyLmFwcGVuZCgkZGlmZlRhYmxlLCA8aHIgLz4pO1xuXG5cdFx0Y29uc3QgYmFzZVBhZ2VOYW1lOiBzdHJpbmcgPSB3Z1BhZ2VOYW1lLnJlcGxhY2UoL1xcL3poJC8sICcnKTtcblx0XHRjb25zdCB0YXJnZXRUaXRsZTogc3RyaW5nID0gbGFuZyA9PT0gJ3poJyA/IGJhc2VQYWdlTmFtZSA6IGAke2Jhc2VQYWdlTmFtZX0vJHtsYW5nfWA7XG5cblx0XHRsZXQgbmV3UGFnZUNvbnRlbnQ6IHN0cmluZyA9ICcnO1xuXHRcdHZvaWQgYXBpXG5cdFx0XHQucGFyc2UoYHt7Tm90ZVRBfEcxPUlUfEcyPU1lZGlhV2lraX19PGRpdiBpZD1cIiR7T1BUSU9OUy5jb250ZW50SUR9XCI+JHtwYWdlQ29udGVudH08L2Rpdj5gLCB7XG5cdFx0XHRcdGFjdGlvbjogJ3BhcnNlJyxcblx0XHRcdFx0dXNlbGFuZzogbGFuZyxcblx0XHRcdH0pXG5cdFx0XHQudGhlbihcblx0XHRcdFx0KGNvbnRlbnQ6IHN0cmluZykgPT4ge1xuXHRcdFx0XHRcdG5ld1BhZ2VDb250ZW50ID0gJCg8ZGl2IGlubmVySFRNTD17Y29udGVudH0gLz4pXG5cdFx0XHRcdFx0XHQuZmluZChgIyR7T1BUSU9OUy5jb250ZW50SUR9YClcblx0XHRcdFx0XHRcdC50ZXh0KCk7XG5cblx0XHRcdFx0XHRjb25zdCBxdWVyeURpZmZQYXJhbXM6IEFwaVF1ZXJ5UmV2aXNpb25zUGFyYW1zID0ge1xuXHRcdFx0XHRcdFx0YWN0aW9uOiAncXVlcnknLFxuXHRcdFx0XHRcdFx0Zm9ybWF0OiAnanNvbicsXG5cdFx0XHRcdFx0XHRmb3JtYXR2ZXJzaW9uOiAnMicsXG5cdFx0XHRcdFx0XHR0aXRsZXM6IHRhcmdldFRpdGxlLFxuXHRcdFx0XHRcdFx0cHJvcDogJ3JldmlzaW9ucycsXG5cdFx0XHRcdFx0XHRydmRpZmZ0b3RleHQ6IG5ld1BhZ2VDb250ZW50LFxuXHRcdFx0XHRcdH07XG5cblx0XHRcdFx0XHRyZXR1cm4gYXBpLmdldChxdWVyeURpZmZQYXJhbXMpO1xuXHRcdFx0XHR9LFxuXHRcdFx0XHQoZXJyb3IpOiBudWxsID0+IHtcblx0XHRcdFx0XHR2b2lkIG13Lm5vdGlmeShcblx0XHRcdFx0XHRcdHdpbmRvdy53Z1VMUygn6Kej5p6QJDHml7blj5HnlJ/plJnor6/vvJonLCAn6Kej5p6QJDHmmYLnmbznlJ/pjK/oqqTvvJonKS5yZXBsYWNlKCckMScsIGxhbmcpICsgZXJyb3IsXG5cdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdHRhZzogJ1RyYW5zbGF0ZVZhcmlhbnRzJyxcblx0XHRcdFx0XHRcdFx0dHlwZTogJ2Vycm9yJyxcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHQpO1xuXG5cdFx0XHRcdFx0cmV0dXJuIG51bGw7XG5cdFx0XHRcdH1cblx0XHRcdClcblx0XHRcdC50aGVuKFxuXHRcdFx0XHQoZGF0YSkgPT4ge1xuXHRcdFx0XHRcdGlmIChkYXRhID09PSBudWxsKSB7XG5cdFx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0Y29uc3QgJHRvb2wgPSAkKFxuXHRcdFx0XHRcdFx0PGRpdj5cblx0XHRcdFx0XHRcdFx0PGEgaHJlZj17bXcudXRpbC5nZXRVcmwodGFyZ2V0VGl0bGUpfT5cblx0XHRcdFx0XHRcdFx0XHR7bGFuZ33vvIh7bmFtZU9mTGFuZ3NbbGFuZ11977yJXG5cdFx0XHRcdFx0XHRcdDwvYT5cblx0XHRcdFx0XHRcdFx077yIPGEgaHJlZj17bXcudXRpbC5nZXRVcmwodGFyZ2V0VGl0bGUsIHthY3Rpb246ICdlZGl0J30pfT57d2luZG93LndnVUxTKCfnvJYnLCAn57eoJyl9PC9hPu+8iVxuXHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0KSBhcyBKUXVlcnk7XG5cblx0XHRcdFx0XHQkZGlmZlRhYmxlLmFwcGVuZCgkdG9vbCk7XG5cblx0XHRcdFx0XHRjb25zdCBbcGFnZV0gPSBkYXRhWydxdWVyeSddLnBhZ2VzO1xuXHRcdFx0XHRcdGlmIChwYWdlLm1pc3NpbmcpIHtcblx0XHRcdFx0XHRcdGNvbnN0ICRzdWJtaXQgPSAkKFxuXHRcdFx0XHRcdFx0XHQ8YnV0dG9uIGNsYXNzTmFtZT17W3B1Ymxpc2hDaGFuZ2VzLCAnY2R4LWJ1dHRvbiddfT5cblx0XHRcdFx0XHRcdFx0XHR7d2luZG93LndnVUxTKCflj5HluIPpobXpnaInLCAn55m85L2I6aCB6Z2iJyl9XG5cdFx0XHRcdFx0XHRcdDwvYnV0dG9uPlxuXHRcdFx0XHRcdFx0KSBhcyBKUXVlcnk7XG5cdFx0XHRcdFx0XHQkc3VibWl0Lm9uKCdjbGljaycsICgpOiB2b2lkID0+IHtcblx0XHRcdFx0XHRcdFx0JHN1Ym1pdC5yZW1vdmUoKTtcblxuXHRcdFx0XHRcdFx0XHRhcGkuY3JlYXRlKFxuXHRcdFx0XHRcdFx0XHRcdHRhcmdldFRpdGxlLFxuXHRcdFx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XHRcdHN1bW1hcnksXG5cdFx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFx0XHRuZXdQYWdlQ29udGVudFxuXHRcdFx0XHRcdFx0XHQpLnRoZW4oXG5cdFx0XHRcdFx0XHRcdFx0KCk6IHZvaWQgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdFx0dm9pZCBtdy5ub3RpZnkod2luZG93LndnVUxTKCflt7LnvJbovpEgJywgJ+W3sue3qOi8ryAnKSArIHRhcmdldFRpdGxlLCB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHRhZzogJ1RyYW5zbGF0ZVZhcmlhbnRzJyxcblx0XHRcdFx0XHRcdFx0XHRcdFx0dHlwZTogJ3N1Y2Nlc3MnLFxuXHRcdFx0XHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFx0XHQoZXJyb3IpOiB2b2lkID0+IHtcblx0XHRcdFx0XHRcdFx0XHRcdHZvaWQgbXcubm90aWZ5KFxuXHRcdFx0XHRcdFx0XHRcdFx0XHR3aW5kb3cud2dVTFMoJ+e8lui+kScsICfnt6jovK8gJykgK1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHRhcmdldFRpdGxlICtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR3aW5kb3cud2dVTFMoJyDlj5HnlJ/plJnor6/vvJonLCAnIOeZvOeUn+mMr+iqpO+8micpICtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRlcnJvcixcblx0XHRcdFx0XHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHRhZzogJ1RyYW5zbGF0ZVZhcmlhbnRzJyxcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0eXBlOiAnZXJyb3InLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRcdH0pO1xuXG5cdFx0XHRcdFx0XHQkdG9vbC5hcHBlbmQoJHN1Ym1pdCk7XG5cdFx0XHRcdFx0XHQkZGlmZlRhYmxlLmFwcGVuZChcblx0XHRcdFx0XHRcdFx0PHByZVxuXHRcdFx0XHRcdFx0XHRcdGlubmVySFRNTD17bmV3UGFnZUNvbnRlbnQucmVwbGFjZShcblx0XHRcdFx0XHRcdFx0XHRcdC9bJjw+XS9naW0sXG5cdFx0XHRcdFx0XHRcdFx0XHQoc3RyaW5nOiBzdHJpbmcpOiBzdHJpbmcgPT4gYCYjJHtzdHJpbmcuY29kZVBvaW50QXQoMCl9O2Bcblx0XHRcdFx0XHRcdFx0XHQpfVxuXHRcdFx0XHRcdFx0XHQvPlxuXHRcdFx0XHRcdFx0KTtcblxuXHRcdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdGNvbnN0IGRpZmY6IHN0cmluZyA9IHBhZ2UucmV2aXNpb25zWzBdLmRpZmYuYm9keTtcblx0XHRcdFx0XHRpZiAoZGlmZiA9PT0gJycpIHtcblx0XHRcdFx0XHRcdCR0b29sLmFwcGVuZCg8c3BhbiBjbGFzc05hbWU9e25vQ2hhbmdlc30+e3dpbmRvdy53Z1VMUygn5peg5pu05pS5JywgJ+eEoeiuiuabtCcpfTwvc3Bhbj4pO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRjb25zdCAkc3VibWl0ID0gJChcblx0XHRcdFx0XHRcdFx0PGJ1dHRvbiBjbGFzc05hbWU9e1twdWJsaXNoQ2hhbmdlcywgJ2NkeC1idXR0b24nXX0+XG5cdFx0XHRcdFx0XHRcdFx0e3dpbmRvdy53Z1VMUygn5Y+R5biD5pu05pS5JywgJ+eZvOS9iOiuiuabtCcpfVxuXHRcdFx0XHRcdFx0XHQ8L2J1dHRvbj5cblx0XHRcdFx0XHRcdCkgYXMgSlF1ZXJ5O1xuXHRcdFx0XHRcdFx0JHN1Ym1pdC5vbignY2xpY2snLCAoKTogdm9pZCA9PiB7XG5cdFx0XHRcdFx0XHRcdCRzdWJtaXQucmVtb3ZlKCk7XG5cblx0XHRcdFx0XHRcdFx0YXBpLmVkaXQodGFyZ2V0VGl0bGUsICgpID0+ICh7XG5cdFx0XHRcdFx0XHRcdFx0c3VtbWFyeSxcblx0XHRcdFx0XHRcdFx0XHR0ZXh0OiBuZXdQYWdlQ29udGVudCxcblx0XHRcdFx0XHRcdFx0XHRub2NyZWF0ZTogZmFsc2UsXG5cdFx0XHRcdFx0XHRcdH0pKS50aGVuKFxuXHRcdFx0XHRcdFx0XHRcdCgpOiB2b2lkID0+IHtcblx0XHRcdFx0XHRcdFx0XHRcdHZvaWQgbXcubm90aWZ5KHdpbmRvdy53Z1VMUygn5bey57yW6L6RJywgJ+W3sue3qOi8ryAnKSArIHRhcmdldFRpdGxlLCB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHRhZzogJ1RyYW5zbGF0ZVZhcmlhbnRzJyxcblx0XHRcdFx0XHRcdFx0XHRcdFx0dHlwZTogJ3N1Y2Nlc3MnLFxuXHRcdFx0XHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFx0XHQoZXJyb3IpID0+IHtcblx0XHRcdFx0XHRcdFx0XHRcdHZvaWQgbXcubm90aWZ5KFxuXHRcdFx0XHRcdFx0XHRcdFx0XHR3aW5kb3dcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQud2dVTFMoJ+e8lui+kSQx5Y+R55Sf6ZSZ6K+v77yaJywgJ+e3qOi8ryQx55m855Sf6Yyv6Kqk77yaJylcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQucmVwbGFjZSgnJDEnLCB0YXJnZXRUaXRsZSkgKyBlcnJvcixcblx0XHRcdFx0XHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHRhZzogJ1RyYW5zbGF0ZVZhcmlhbnRzJyxcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0eXBlOiAnZXJyb3InLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRcdH0pO1xuXG5cdFx0XHRcdFx0XHQkdG9vbC5hcHBlbmQoJHN1Ym1pdCk7XG5cdFx0XHRcdFx0XHQkZGlmZlRhYmxlLmFwcGVuZChcblx0XHRcdFx0XHRcdFx0JCg8dGFibGUgY2xhc3NOYW1lPVwiZGlmZlwiIGlubmVySFRNTD17ZGlmZn0gLz4pLnByZXBlbmQoXG5cdFx0XHRcdFx0XHRcdFx0PGNvbGdyb3VwPlxuXHRcdFx0XHRcdFx0XHRcdFx0PGNvbCBjbGFzc05hbWU9XCJkaWZmLW1hcmtlclwiIC8+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8Y29sIGNsYXNzTmFtZT1cImRpZmYtY29udGVudFwiIC8+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8Y29sIGNsYXNzTmFtZT1cImRpZmYtbWFya2VyXCIgLz5cblx0XHRcdFx0XHRcdFx0XHRcdDxjb2wgY2xhc3NOYW1lPVwiZGlmZi1jb250ZW50XCIgLz5cblx0XHRcdFx0XHRcdFx0XHQ8L2NvbGdyb3VwPlxuXHRcdFx0XHRcdFx0XHQpXG5cdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSxcblx0XHRcdFx0KGVycm9yKTogdm9pZCA9PiB7XG5cdFx0XHRcdFx0dm9pZCBtdy5ub3RpZnkoXG5cdFx0XHRcdFx0XHR3aW5kb3cud2dVTFMoJ+iOt+WPliQx5beu5byC5pe25Y+R55Sf6ZSZ6K+v77yaJywgJ+WPluW+lyQx5beu55Ww5pmC55m855Sf6Yyv6Kqk77yaJykucmVwbGFjZSgnJDEnLCBsYW5nKSArIGVycm9yLFxuXHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHR0YWc6ICdUcmFuc2xhdGVWYXJpYW50cycsXG5cdFx0XHRcdFx0XHRcdHR5cGU6ICdlcnJvcicsXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0fVxuXHRcdFx0KVxuXHRcdFx0LmFsd2F5cygoKTogdm9pZCA9PiB7XG5cdFx0XHRcdHByb2Nlc3MocGFnZUNvbnRlbnQpO1xuXHRcdFx0fSk7XG5cdH07XG5cblx0Y29uc3QgcXVlcnlDb250ZW50UGFyYW1zID0ge1xuXHRcdGFjdGlvbjogJ3F1ZXJ5Jyxcblx0XHRmb3JtYXQ6ICdqc29uJyxcblx0XHRmb3JtYXR2ZXJzaW9uOiAnMicsXG5cdFx0cHJvcDogJ3JldmlzaW9ucycsXG5cdFx0dGl0bGVzOiB3Z1BhZ2VOYW1lLFxuXHRcdGN1cnRpbWVzdGFtcDogdHJ1ZSxcblx0XHRydnByb3A6IFsnY29udGVudCcsICd0aW1lc3RhbXAnXSxcblx0fSBhcyBjb25zdCBzYXRpc2ZpZXMgQXBpUXVlcnlSZXZpc2lvbnNQYXJhbXM7XG5cblx0dm9pZCBhcGlcblx0XHQuZ2V0KHF1ZXJ5Q29udGVudFBhcmFtcylcblx0XHQudGhlbigoZGF0YSkgPT4ge1xuXHRcdFx0aWYgKCFkYXRhWydxdWVyeSddPy5wYWdlcykge1xuXHRcdFx0XHRyZXR1cm4gJC5EZWZlcnJlZCgpLnJlamVjdCgndW5rbm93bicpO1xuXHRcdFx0fVxuXG5cdFx0XHRjb25zdCBbcGFnZV0gPSBkYXRhWydxdWVyeSddLnBhZ2VzO1xuXG5cdFx0XHRpZiAocGFnZS5pbnZhbGlkKSB7XG5cdFx0XHRcdHJldHVybiAkLkRlZmVycmVkKCkucmVqZWN0KCdpbnZhbGlkdGl0bGUnKTtcblx0XHRcdH1cblx0XHRcdGlmIChwYWdlLm1pc3NpbmcpIHtcblx0XHRcdFx0cmV0dXJuICQuRGVmZXJyZWQoKS5yZWplY3QoJ25vY3JlYXRlLW1pc3NpbmcnKTtcblx0XHRcdH1cblxuXHRcdFx0Y29uc3QgW3tjb250ZW50fV0gPSBwYWdlLnJldmlzaW9ucztcblxuXHRcdFx0cmV0dXJuIGNvbnRlbnQgYXMgc3RyaW5nO1xuXHRcdH0pXG5cdFx0LnRoZW4oKGNvbnRlbnQ6IHN0cmluZyk6IHN0cmluZyA9PiB7XG5cdFx0XHRsZXQgcGFnZUNvbnRlbnQ6IHN0cmluZyA9IGNvbnRlbnQ7XG5cblx0XHRcdHBhZ2VDb250ZW50ID0gcGFnZUNvbnRlbnQucmVwbGFjZShcblx0XHRcdFx0L1tcXHMjJicqOjw+W1xcXV97fH1dL2dpbSxcblx0XHRcdFx0KHN0cmluZzogc3RyaW5nKTogc3RyaW5nID0+IGAmIyR7c3RyaW5nLmNvZGVQb2ludEF0KDApfTtgXG5cdFx0XHQpO1xuXHRcdFx0cGFnZUNvbnRlbnQgPSBwYWdlQ29udGVudC5yZXBsYWNlKFxuXHRcdFx0XHQvKCYjOTE7JiM5MTspKCg/Oig/ISYjMTI0OykoPyEmIzkzOykuKSs/KSgmIzEyNDsoPzooPyEmIzkzOykuKSs/JiM5MzsmIzkzOykvZyxcblx0XHRcdFx0JyQxLXskMn0tJDMnXG5cdFx0XHQpO1xuXHRcdFx0cGFnZUNvbnRlbnQgPSBwYWdlQ29udGVudC5yZXBsYWNlKC8tJiMxMjM7KC4rPykmIzEyNTstL2csIChzdHJpbmc6IHN0cmluZyk6IHN0cmluZyA9PlxuXHRcdFx0XHRzdHJpbmdcblx0XHRcdFx0XHQucmVwbGFjZSgnLSYjMTIzOycsICcteycpXG5cdFx0XHRcdFx0LnJlcGxhY2UoJy0mIzEyMzsnLCAnLXsnKVxuXHRcdFx0XHRcdC5yZXBsYWNlKCcmIzEyNTstJywgJ30tJylcblx0XHRcdFx0XHQucmVwbGFjZSgvJiMxMjQ7L2csICd8Jylcblx0XHRcdFx0XHQucmVwbGFjZSgvJiMzMjsvZywgJyAnKVxuXHRcdFx0XHRcdC5yZXBsYWNlKC8mIzYxOy9nLCAnPScpXG5cdFx0XHRcdFx0LnJlcGxhY2UoLyYjNjI7L2csICc+Jylcblx0XHRcdFx0XHQucmVwbGFjZSgvJiM1ODsvZywgJzonKVxuXHRcdFx0KTtcblxuXHRcdFx0cmV0dXJuIHBhZ2VDb250ZW50O1xuXHRcdH0pXG5cdFx0LnRoZW4oKHBhZ2VDb250ZW50OiBzdHJpbmcpOiB2b2lkID0+IHtcblx0XHRcdHByb2Nlc3MocGFnZUNvbnRlbnQpO1xuXHRcdH0pO1xufTtcblxuZXhwb3J0IHt0cmFuc2xhdGVWYXJpYW50c307XG4iLCAiaW1wb3J0ICogYXMgT1BUSU9OUyBmcm9tICcuLi9vcHRpb25zLmpzb24nO1xuaW1wb3J0IHtpbml0TXdBcGl9IGZyb20gJ2V4dC5nYWRnZXQuVXRpbCc7XG5cbmNvbnN0IGFwaTogbXcuQXBpID0gaW5pdE13QXBpKGBUcmFuc2xhdGVWYXJpYW50cy8ke09QVElPTlMudmVyc2lvbn1gKTtcblxuZXhwb3J0IHthcGl9O1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLElBQUFBLHFCQUFzQkMsUUFBQSxpQkFBQTs7QUNDckIsSUFBQUMsWUFBYTtBQUNiLElBQUFDLDJCQUE0QjtBQUM1QixJQUFBQyxVQUFXOztBQ0ZMLElBQU1DLFlBQVk7QUFDbEIsSUFBTUMsaUJBQWlCO0FBQ3ZCLElBQU1DLFlBQVk7QUFDbEIsSUFBTUMsVUFBVTs7QUNGdkIsSUFBQUMscUJBQWtCQyxRQUFBVCxRQUFBLGtCQUFBLEdBQUEsQ0FBQTs7QUNE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QUdzRCxLQUFLOEIsZUFBZUYsV0FBVyxLQUFLeEYsT0FBT0MsTUFBTSxRQUFRLE1BQU0sQ0FBQztBQUV6R3dGLGNBQUEsUUFBQUEsWUFBQSxVQUFBQSxRQUFTRSxpQkFBaUIsU0FBUyxNQUFZO0FBQzlDRixZQUFRdkIsT0FBTztBQUNmL0Usc0JBQWtCQyxVQUFVO0VBQzdCLENBQUM7QUFDRixDQUFDOyIsCiAgIm5hbWVzIjogWyJpbXBvcnRfZXh0X2dhZGdldDMiLCAicmVxdWlyZSIsICJjb250ZW50SUQiLCAidHJhbnNsYXRlVmFyaWFudHNTdW1tYXJ5IiwgInZlcnNpb24iLCAibm9DaGFuZ2VzIiwgInB1Ymxpc2hDaGFuZ2VzIiwgInN1Ym1pdEFsbCIsICJ3YXJuaW5nIiwgImltcG9ydF9leHRfZ2FkZ2V0MiIsICJfX3RvRVNNIiwgImltcG9ydF9leHRfZ2FkZ2V0IiwgImFwaSIsICJpbml0TXdBcGkiLCAiY29uY2F0IiwgImxhbmdzIiwgIm5hbWVPZkxhbmdzIiwgInpoIiwgInRyYW5zbGF0ZVZhcmlhbnRzIiwgIndnUGFnZU5hbWUiLCAiX3Byb21wdCIsICJzdW1tYXJ5IiwgInJlcGxhY2UiLCAiJHdyYXBwZXIiLCAiJCIsICJkZWZhdWx0IiwgImNyZWF0ZUVsZW1lbnQiLCAiaWQiLCAicHJlcGVuZFRvIiwgIiRzdWJtaXRBbGwiLCAiY2xhc3NOYW1lIiwgIndpbmRvdyIsICJ3Z1VMUyIsICJvbiIsICIkYnV0dG9ucyIsICJmaW5kIiwgImxlbmd0aCIsICJtdyIsICJub3RpZnkiLCAidGFnIiwgInR5cGUiLCAiY29uZmlybSIsICJfaXRlcmF0b3IyIiwgIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwgIl9zdGVwMiIsICJzIiwgIm4iLCAiZG9uZSIsICJidXR0b24iLCAidmFsdWUiLCAidHJpZ2dlciIsICJlcnIiLCAiZSIsICJmIiwgImFwcGVuZCIsICJkZWZhdWx0TGFuZ3MiLCAicnVuTGFuZ3MiLCAicHJvbXB0IiwgImpvaW4iLCAic3BsaXQiLCAibGFuZ1F1ZXVlIiwgIm1hcCIsICJsYW5nIiwgInRyaW0iLCAiZmlsdGVyIiwgImluY2x1ZGVzIiwgInByb2Nlc3MiLCAicGFnZUNvbnRlbnQiLCAic2hpZnQiLCAiJGRpZmZUYWJsZSIsICJiYXNlUGFnZU5hbWUiLCAidGFyZ2V0VGl0bGUiLCAibmV3UGFnZUNvbnRlbnQiLCAicGFyc2UiLCAiYWN0aW9uIiwgInVzZWxhbmciLCAidGhlbiIsICJjb250ZW50IiwgImlubmVySFRNTCIsICJ0ZXh0IiwgInF1ZXJ5RGlmZlBhcmFtcyIsICJmb3JtYXQiLCAiZm9ybWF0dmVyc2lvbiIsICJ0aXRsZXMiLCAicHJvcCIsICJydmRpZmZ0b3RleHQiLCAiZ2V0IiwgImVycm9yIiwgImRhdGEiLCAiJHRvb2wiLCAiaHJlZiIsICJ1dGlsIiwgImdldFVybCIsICJwYWdlIiwgInBhZ2VzIiwgIm1pc3NpbmciLCAiJHN1Ym1pdCIsICJyZW1vdmUiLCAiY3JlYXRlIiwgInN0cmluZyIsICJjb2RlUG9pbnRBdCIsICJkaWZmIiwgInJldmlzaW9ucyIsICJib2R5IiwgImVkaXQiLCAibm9jcmVhdGUiLCAicHJlcGVuZCIsICJhbHdheXMiLCAicXVlcnlDb250ZW50UGFyYW1zIiwgImN1cnRpbWVzdGFtcCIsICJydnByb3AiLCAiX2RhdGEkcXVlcnkiLCAiRGVmZXJyZWQiLCAicmVqZWN0IiwgImludmFsaWQiLCAiZ2V0Qm9keSIsICIkYm9keSIsICJjb25maWciLCAidGVzdCIsICJwb3J0bGV0SWQiLCAiZWxlbWVudCIsICJhZGRQb3J0bGV0TGluayIsICJhZGRFdmVudExpc3RlbmVyIl0KfQo= +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL1RyYW5zbGF0ZVZhcmlhbnRzL1RyYW5zbGF0ZVZhcmlhbnRzLnRzIiwgInNyYy9UcmFuc2xhdGVWYXJpYW50cy9vcHRpb25zLmpzb24iLCAic3JjL1RyYW5zbGF0ZVZhcmlhbnRzL1RyYW5zbGF0ZVZhcmlhbnRzLm1vZHVsZS5sZXNzIiwgInNyYy9UcmFuc2xhdGVWYXJpYW50cy9tb2R1bGVzL3RyYW5zbGF0ZVZhcmlhbnRzLnRzeCIsICJzcmMvVHJhbnNsYXRlVmFyaWFudHMvbW9kdWxlcy9hcGkudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB7Z2V0Qm9keX0gZnJvbSAnZXh0LmdhZGdldC5VdGlsJztcbmltcG9ydCB7dHJhbnNsYXRlVmFyaWFudHN9IGZyb20gJy4vbW9kdWxlcy90cmFuc2xhdGVWYXJpYW50cyc7XG5cbnZvaWQgZ2V0Qm9keSgpLnRoZW4oKCRib2R5OiBKUXVlcnk8SFRNTEJvZHlFbGVtZW50Pik6IHZvaWQgPT4ge1xuXHRjb25zdCB7d2dQYWdlTmFtZX0gPSBtdy5jb25maWcuZ2V0KCk7XG5cdGlmICghL15NZWRpYVdpa2k6W14vXSsoXFwvemgpPyQvLnRlc3Qod2dQYWdlTmFtZSkpIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRjb25zdCBwb3J0bGV0SWQ6ICdwLWNhY3Rpb25zJyB8ICdwLXRiJyA9ICRib2R5LmZpbmQoJyNwLWNhY3Rpb25zJykubGVuZ3RoID8gJ3AtY2FjdGlvbnMnIDogJ3AtdGInO1xuXHRjb25zdCBlbGVtZW50OiBIVE1MTElFbGVtZW50IHwgbnVsbCA9IG13LnV0aWwuYWRkUG9ydGxldExpbmsocG9ydGxldElkLCAnIycsIHdpbmRvdy53Z1VMUygn6L2s5o2i5Y+Y5L2TJywgJ+i9ieaPm+iuiumrlCcpKTtcblxuXHRlbGVtZW50Py5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpOiB2b2lkID0+IHtcblx0XHRlbGVtZW50LnJlbW92ZSgpO1xuXHRcdHRyYW5zbGF0ZVZhcmlhbnRzKHdnUGFnZU5hbWUpO1xuXHR9KTtcbn0pO1xuIiwgIntcblx0XCJjb250ZW50SURcIjogXCJUcmFuc2xhdGVWYXJpYW50cy1jb250ZW50XCIsXG5cdFwidHJhbnNsYXRlVmFyaWFudHNTdW1tYXJ5XCI6IFwi6Ieq5Yqo6L2s5o2i5Y+Y5L2T6IeqW1skMV1d77yIW1tNZWRpYVdpa2k6R2FkZ2V0LVRyYW5zbGF0ZVZhcmlhbnRzLmpzfFRyYW5zbGF0ZVZhcmlhbnRzXV3vvIlcIixcblx0XCJ2ZXJzaW9uXCI6IFwiMi4wXCJcbn1cbiIsICJpbXBvcnQgXCJlc2J1aWxkLWNzcy1tb2R1bGVzLXBsdWdpbi1ucy1jc3M6c3JjL1RyYW5zbGF0ZVZhcmlhbnRzL1RyYW5zbGF0ZVZhcmlhbnRzLm1vZHVsZS5sZXNzXCI7XG5leHBvcnQgY29uc3Qgbm9DaGFuZ2VzID0gXCJUcmFuc2xhdGVWYXJpYW50cy1tb2R1bGVfX25vQ2hhbmdlc19Zdm0tbFdfXzQ5MFwiO1xuZXhwb3J0IGNvbnN0IHB1Ymxpc2hDaGFuZ2VzID0gXCJUcmFuc2xhdGVWYXJpYW50cy1tb2R1bGVfX3B1Ymxpc2hDaGFuZ2VzX1l2bS1sV19fNDkwXCI7XG5leHBvcnQgY29uc3Qgc3VibWl0QWxsID0gXCJUcmFuc2xhdGVWYXJpYW50cy1tb2R1bGVfX3N1Ym1pdEFsbF9Zdm0tbFdfXzQ5MFwiO1xuZXhwb3J0IGNvbnN0IHdhcm5pbmcgPSBcIlRyYW5zbGF0ZVZhcmlhbnRzLW1vZHVsZV9fd2FybmluZ19Zdm0tbFdfXzQ5MFwiO1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIFwibm9DaGFuZ2VzXCI6IG5vQ2hhbmdlcyxcbiAgXCJwdWJsaXNoQ2hhbmdlc1wiOiBwdWJsaXNoQ2hhbmdlcyxcbiAgXCJzdWJtaXRBbGxcIjogc3VibWl0QWxsLFxuICBcIndhcm5pbmdcIjogd2FybmluZ1xufTtcbiAgICAgICIsICJpbXBvcnQgKiBhcyBPUFRJT05TIGZyb20gJy4uL29wdGlvbnMuanNvbic7XG5pbXBvcnQge25vQ2hhbmdlcywgcHVibGlzaENoYW5nZXMsIHN1Ym1pdEFsbCwgd2FybmluZ30gZnJvbSAnLi4vVHJhbnNsYXRlVmFyaWFudHMubW9kdWxlLmxlc3MnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ2V4dC5nYWRnZXQuSlNYJztcbmltcG9ydCB7YXBpfSBmcm9tICcuL2FwaSc7XG5cbnR5cGUgTGFuZ3MgPSAnemgnIHwgJ3poLWhhbnMnIHwgJ3poLWNuJyB8ICd6aC1teScgfCAnemgtc2cnIHwgJ3poLWhhbnQnIHwgJ3poLWhrJyB8ICd6aC1tbycgfCAnemgtdHcnO1xuY29uc3QgbGFuZ3M6IExhbmdzW10gPSBbJ3poJywgJ3poLWhhbnMnLCAnemgtY24nLCAnemgtbXknLCAnemgtc2cnLCAnemgtaGFudCcsICd6aC1oaycsICd6aC1tbycsICd6aC10dyddO1xuY29uc3QgbmFtZU9mTGFuZ3MgPSB7XG5cdHpoOiAn5Y6f5aeLJyxcblx0J3poLWhhbnMnOiAn566A5L2TJyxcblx0J3poLWNuJzogJ+S4reWbveWkp+mZhueugOS9kycsXG5cdCd6aC1teSc6ICfpqazmnaXopb/kuprnroDkvZMnLFxuXHQnemgtc2cnOiAn5paw5Yqg5Z2h566A5L2TJyxcblx0J3poLWhhbnQnOiAn57mB6auUJyxcblx0J3poLWhrJzogJ+S4reWci+mmmea4r+e5gemrlCcsXG5cdCd6aC1tbyc6ICfkuK3lnIvmvrPploDnuYHpq5QnLFxuXHQnemgtdHcnOiAn5Lit5ZyL6Ie654Gj57mB6auUJyxcbn0gYXMgY29uc3Qgc2F0aXNmaWVzIFJlY29yZDxMYW5ncywgc3RyaW5nPjtcblxuY29uc3QgdHJhbnNsYXRlVmFyaWFudHMgPSAod2dQYWdlTmFtZTogc3RyaW5nKTogdm9pZCA9PiB7XG5cdGNvbnN0IHN1bW1hcnk6IHN0cmluZyA9IE9QVElPTlMudHJhbnNsYXRlVmFyaWFudHNTdW1tYXJ5LnJlcGxhY2UoL1xcJDEvZywgd2dQYWdlTmFtZSk7XG5cblx0Y29uc3QgJHdyYXBwZXI6IEpRdWVyeSA9ICgkKDxkaXYgaWQ9XCJUcmFuc2xhdGVWYXJpYW50c1wiIC8+KSBhcyBKUXVlcnkpLnByZXBlbmRUbygnI2JvZHlDb250ZW50Jyk7XG5cblx0Y29uc3QgJHN1Ym1pdEFsbDogSlF1ZXJ5ID0gJChcblx0XHQ8YnV0dG9uIGNsYXNzTmFtZT17WydjZHgtYnV0dG9uJywgJ2NkeC1idXR0b24tLWFjdGlvbi1wcm9ncmVzc2l2ZScsICdjZHgtYnV0dG9uLS13ZWlnaHQtcHJpbWFyeSddfT5cblx0XHRcdHt3aW5kb3cud2dVTFMoJ+WPkeW4g+aJgOacieabtOaUuScsICfnmbzkvYjmiYDmnInorormm7QnKX1cblx0XHQ8L2J1dHRvbj5cblx0KSBhcyBKUXVlcnk7XG5cdCRzdWJtaXRBbGwub24oJ2NsaWNrJywgKCk6IHZvaWQgPT4ge1xuXHRcdGNvbnN0ICRidXR0b25zOiBKUXVlcnkgPSAkd3JhcHBlci5maW5kKGAuJHtwdWJsaXNoQ2hhbmdlc31gKTtcblx0XHRpZiAoISRidXR0b25zLmxlbmd0aCkge1xuXHRcdFx0dm9pZCBtdy5ub3RpZnkod2luZG93LndnVUxTKCfmsqHmnInku7vkvZXlj6/ku6Xlj5HluIPnmoTmm7TmlLknLCAn5rKS5pyJ5Lu75L2V6K6K5pu05Y+v55m85L2IJyksIHtcblx0XHRcdFx0dGFnOiAnVHJhbnNsYXRlVmFyaWFudHMnLFxuXHRcdFx0XHR0eXBlOiAnZXJyb3InLFxuXHRcdFx0fSk7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0aWYgKCFjb25maXJtKHdpbmRvdy53Z1VMUygn5Y+R5biDJDHkuKrmm7TmlLnvvJ8nLCAn55m85L2IJDHlgIvorormm7TvvJ8nKS5yZXBsYWNlKCckMScsIGAkeyRidXR0b25zLmxlbmd0aH1gKSkpIHtcblx0XHRcdHZvaWQgbXcubm90aWZ5KHdpbmRvdy53Z1VMUygn5bey5Y+W5raI5Y+R5biDJywgJ+W3suWPlua2iOeZvOS9iCcpLCB7dGFnOiAnVHJhbnNsYXRlVmFyaWFudHMnLCB0eXBlOiAnd2Fybid9KTtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRmb3IgKGNvbnN0IGJ1dHRvbiBvZiAkYnV0dG9ucykge1xuXHRcdFx0JChidXR0b24pLnRyaWdnZXIoJ2NsaWNrJyk7XG5cdFx0fVxuXHR9KTtcblxuXHQkd3JhcHBlci5hcHBlbmQoXG5cdFx0JCg8ZGl2IGNsYXNzTmFtZT17c3VibWl0QWxsfSAvPikuYXBwZW5kKCRzdWJtaXRBbGwpLFxuXHRcdDxkaXYgY2xhc3NOYW1lPXt3YXJuaW5nfT5cblx0XHRcdHt3aW5kb3cud2dVTFMoXG5cdFx0XHRcdCfmj5DphpLvvJpUcmFuc2xhdGVWYXJpYW50c+W3peWFt+S9v+eUqElU5Y+KTWVkaWFXaWtp6L2s5o2i57uE6L+b6KGM6Ieq5Yqo6L2s5o2i77yM6K+356Gu6K6k6L2s5o2i57uT5p6c5piv5ZCm5q2j56Gu77yBJyxcblx0XHRcdFx0J+aPkOmGku+8mlRyYW5zbGF0ZVZhcmlhbnRz5bel5YW35L2/55SoSVTlj4pNZWRpYVdpa2novYnmj5vntYTpgLLooYzoh6rli5XovYnmj5vvvIzoq4vnorroqo3ovYnmj5vntZDmnpzmmK/lkKbmraPnorrvvIEnXG5cdFx0XHQpfVxuXHRcdDwvZGl2PlxuXHQpO1xuXG5cdGNvbnN0IGRlZmF1bHRMYW5nczogTGFuZ3NbXSA9IFsuLi5sYW5nc107XG5cblx0bGV0IHJ1bkxhbmdzID0gcHJvbXB0KFxuXHRcdHdpbmRvdy53Z1VMUygn6L2s5o2i5Lul5LiL6K+t6KiA77yI5Lul6YCX5Y+36ZqU5byA77yJ77yaJywgJ+i9ieaPm+S7peS4i+iqnuiogO+8iOS7pemAl+iZn+malOmWi++8ie+8micpLFxuXHRcdGRlZmF1bHRMYW5ncy5qb2luKCcsJylcblx0KT8uc3BsaXQoJywnKSBhcyBMYW5nc1tdIHwgbnVsbDtcblx0aWYgKHJ1bkxhbmdzID09PSBudWxsKSB7XG5cdFx0cnVuTGFuZ3MgPSBkZWZhdWx0TGFuZ3M7XG5cdH1cblxuXHRjb25zdCBsYW5nUXVldWU6IExhbmdzW10gPSBydW5MYW5nc1xuXHRcdC5tYXAoKGxhbmc6IExhbmdzKTogTGFuZ3MgPT4gbGFuZy50cmltKCkgYXMgTGFuZ3MpXG5cdFx0LmZpbHRlcigobGFuZzogTGFuZ3MpOiBib29sZWFuID0+IGxhbmdzLmluY2x1ZGVzKGxhbmcpKTtcblxuXHRjb25zdCBwcm9jZXNzID0gKHBhZ2VDb250ZW50OiBzdHJpbmcpOiB2b2lkID0+IHtcblx0XHRpZiAoIWxhbmdRdWV1ZS5sZW5ndGgpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRjb25zdCBsYW5nID0gbGFuZ1F1ZXVlLnNoaWZ0KCkgYXMgTGFuZ3M7XG5cblx0XHRjb25zdCAkZGlmZlRhYmxlOiBKUXVlcnkgPSAkKDxkaXYgaWQ9e2BUcmFuc2xhdGVWYXJpYW50cy1kaWZmLSR7bGFuZ31gfSAvPikgYXMgSlF1ZXJ5O1xuXHRcdCR3cmFwcGVyLmFwcGVuZCgkZGlmZlRhYmxlLCA8aHIgLz4pO1xuXG5cdFx0Y29uc3QgYmFzZVBhZ2VOYW1lOiBzdHJpbmcgPSB3Z1BhZ2VOYW1lLnJlcGxhY2UoL1xcL3poJC8sICcnKTtcblx0XHRjb25zdCB0YXJnZXRUaXRsZTogc3RyaW5nID0gbGFuZyA9PT0gJ3poJyA/IGJhc2VQYWdlTmFtZSA6IGAke2Jhc2VQYWdlTmFtZX0vJHtsYW5nfWA7XG5cblx0XHRsZXQgbmV3UGFnZUNvbnRlbnQ6IHN0cmluZyA9ICcnO1xuXHRcdHZvaWQgYXBpXG5cdFx0XHQucGFyc2UoYHt7Tm90ZVRBfEcxPUlUfEcyPU1lZGlhV2lraX19PGRpdiBpZD1cIiR7T1BUSU9OUy5jb250ZW50SUR9XCI+JHtwYWdlQ29udGVudH08L2Rpdj5gLCB7XG5cdFx0XHRcdGFjdGlvbjogJ3BhcnNlJyxcblx0XHRcdFx0dXNlbGFuZzogbGFuZyxcblx0XHRcdH0pXG5cdFx0XHQudGhlbihcblx0XHRcdFx0KGNvbnRlbnQ6IHN0cmluZykgPT4ge1xuXHRcdFx0XHRcdG5ld1BhZ2VDb250ZW50ID0gJCg8ZGl2IGlubmVySFRNTD17Y29udGVudH0gLz4pXG5cdFx0XHRcdFx0XHQuZmluZChgIyR7T1BUSU9OUy5jb250ZW50SUR9YClcblx0XHRcdFx0XHRcdC50ZXh0KCk7XG5cblx0XHRcdFx0XHRjb25zdCBxdWVyeURpZmZQYXJhbXM6IEFwaVF1ZXJ5UmV2aXNpb25zUGFyYW1zID0ge1xuXHRcdFx0XHRcdFx0YWN0aW9uOiAncXVlcnknLFxuXHRcdFx0XHRcdFx0Zm9ybWF0OiAnanNvbicsXG5cdFx0XHRcdFx0XHRmb3JtYXR2ZXJzaW9uOiAnMicsXG5cdFx0XHRcdFx0XHR0aXRsZXM6IHRhcmdldFRpdGxlLFxuXHRcdFx0XHRcdFx0cHJvcDogJ3JldmlzaW9ucycsXG5cdFx0XHRcdFx0XHRydmRpZmZ0b3RleHQ6IG5ld1BhZ2VDb250ZW50LFxuXHRcdFx0XHRcdH07XG5cblx0XHRcdFx0XHRyZXR1cm4gYXBpLmdldChxdWVyeURpZmZQYXJhbXMpO1xuXHRcdFx0XHR9LFxuXHRcdFx0XHQoZXJyb3IpOiBudWxsID0+IHtcblx0XHRcdFx0XHR2b2lkIG13Lm5vdGlmeShcblx0XHRcdFx0XHRcdHdpbmRvdy53Z1VMUygn6Kej5p6QJDHml7blj5HnlJ/plJnor6/vvJonLCAn6Kej5p6QJDHmmYLnmbznlJ/pjK/oqqTvvJonKS5yZXBsYWNlKCckMScsIGxhbmcpICsgZXJyb3IsXG5cdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdHRhZzogJ1RyYW5zbGF0ZVZhcmlhbnRzJyxcblx0XHRcdFx0XHRcdFx0dHlwZTogJ2Vycm9yJyxcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHQpO1xuXG5cdFx0XHRcdFx0cmV0dXJuIG51bGw7XG5cdFx0XHRcdH1cblx0XHRcdClcblx0XHRcdC50aGVuKFxuXHRcdFx0XHQoZGF0YSkgPT4ge1xuXHRcdFx0XHRcdGlmIChkYXRhID09PSBudWxsKSB7XG5cdFx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0Y29uc3QgJHRvb2wgPSAkKFxuXHRcdFx0XHRcdFx0PGRpdj5cblx0XHRcdFx0XHRcdFx0PGEgaHJlZj17bXcudXRpbC5nZXRVcmwodGFyZ2V0VGl0bGUpfT5cblx0XHRcdFx0XHRcdFx0XHR7bGFuZ33vvIh7bmFtZU9mTGFuZ3NbbGFuZ11977yJXG5cdFx0XHRcdFx0XHRcdDwvYT5cblx0XHRcdFx0XHRcdFx077yIPGEgaHJlZj17bXcudXRpbC5nZXRVcmwodGFyZ2V0VGl0bGUsIHthY3Rpb246ICdlZGl0J30pfT57d2luZG93LndnVUxTKCfnvJYnLCAn57eoJyl9PC9hPu+8iVxuXHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0KSBhcyBKUXVlcnk7XG5cblx0XHRcdFx0XHQkZGlmZlRhYmxlLmFwcGVuZCgkdG9vbCk7XG5cblx0XHRcdFx0XHRjb25zdCBbcGFnZV0gPSBkYXRhWydxdWVyeSddLnBhZ2VzO1xuXHRcdFx0XHRcdGlmIChwYWdlLm1pc3NpbmcpIHtcblx0XHRcdFx0XHRcdGNvbnN0ICRzdWJtaXQgPSAkKFxuXHRcdFx0XHRcdFx0XHQ8YnV0dG9uIGNsYXNzTmFtZT17W3B1Ymxpc2hDaGFuZ2VzLCAnY2R4LWJ1dHRvbiddfT5cblx0XHRcdFx0XHRcdFx0XHR7d2luZG93LndnVUxTKCflj5HluIPpobXpnaInLCAn55m85L2I6aCB6Z2iJyl9XG5cdFx0XHRcdFx0XHRcdDwvYnV0dG9uPlxuXHRcdFx0XHRcdFx0KSBhcyBKUXVlcnk7XG5cdFx0XHRcdFx0XHQkc3VibWl0Lm9uKCdjbGljaycsICgpOiB2b2lkID0+IHtcblx0XHRcdFx0XHRcdFx0JHN1Ym1pdC5yZW1vdmUoKTtcblxuXHRcdFx0XHRcdFx0XHRhcGkuY3JlYXRlKFxuXHRcdFx0XHRcdFx0XHRcdHRhcmdldFRpdGxlLFxuXHRcdFx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XHRcdHN1bW1hcnksXG5cdFx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFx0XHRuZXdQYWdlQ29udGVudFxuXHRcdFx0XHRcdFx0XHQpLnRoZW4oXG5cdFx0XHRcdFx0XHRcdFx0KCk6IHZvaWQgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdFx0dm9pZCBtdy5ub3RpZnkod2luZG93LndnVUxTKCflt7LnvJbovpEgJywgJ+W3sue3qOi8ryAnKSArIHRhcmdldFRpdGxlLCB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHRhZzogJ1RyYW5zbGF0ZVZhcmlhbnRzJyxcblx0XHRcdFx0XHRcdFx0XHRcdFx0dHlwZTogJ3N1Y2Nlc3MnLFxuXHRcdFx0XHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFx0XHQoZXJyb3IpOiB2b2lkID0+IHtcblx0XHRcdFx0XHRcdFx0XHRcdHZvaWQgbXcubm90aWZ5KFxuXHRcdFx0XHRcdFx0XHRcdFx0XHR3aW5kb3cud2dVTFMoJ+e8lui+kScsICfnt6jovK8gJykgK1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHRhcmdldFRpdGxlICtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR3aW5kb3cud2dVTFMoJyDlj5HnlJ/plJnor6/vvJonLCAnIOeZvOeUn+mMr+iqpO+8micpICtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRlcnJvcixcblx0XHRcdFx0XHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHRhZzogJ1RyYW5zbGF0ZVZhcmlhbnRzJyxcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0eXBlOiAnZXJyb3InLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRcdH0pO1xuXG5cdFx0XHRcdFx0XHQkdG9vbC5hcHBlbmQoJHN1Ym1pdCk7XG5cdFx0XHRcdFx0XHQkZGlmZlRhYmxlLmFwcGVuZChcblx0XHRcdFx0XHRcdFx0PHByZVxuXHRcdFx0XHRcdFx0XHRcdGlubmVySFRNTD17bmV3UGFnZUNvbnRlbnQucmVwbGFjZShcblx0XHRcdFx0XHRcdFx0XHRcdC9bJjw+XS9naW0sXG5cdFx0XHRcdFx0XHRcdFx0XHQoc3RyaW5nOiBzdHJpbmcpOiBzdHJpbmcgPT4gYCYjJHtzdHJpbmcuY29kZVBvaW50QXQoMCl9O2Bcblx0XHRcdFx0XHRcdFx0XHQpfVxuXHRcdFx0XHRcdFx0XHQvPlxuXHRcdFx0XHRcdFx0KTtcblxuXHRcdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdGNvbnN0IGRpZmY6IHN0cmluZyA9IHBhZ2UucmV2aXNpb25zWzBdLmRpZmYuYm9keTtcblx0XHRcdFx0XHRpZiAoZGlmZiA9PT0gJycpIHtcblx0XHRcdFx0XHRcdCR0b29sLmFwcGVuZCg8c3BhbiBjbGFzc05hbWU9e25vQ2hhbmdlc30+e3dpbmRvdy53Z1VMUygn5peg5pu05pS5JywgJ+eEoeiuiuabtCcpfTwvc3Bhbj4pO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRjb25zdCAkc3VibWl0ID0gJChcblx0XHRcdFx0XHRcdFx0PGJ1dHRvbiBjbGFzc05hbWU9e1twdWJsaXNoQ2hhbmdlcywgJ2NkeC1idXR0b24nXX0+XG5cdFx0XHRcdFx0XHRcdFx0e3dpbmRvdy53Z1VMUygn5Y+R5biD5pu05pS5JywgJ+eZvOS9iOiuiuabtCcpfVxuXHRcdFx0XHRcdFx0XHQ8L2J1dHRvbj5cblx0XHRcdFx0XHRcdCkgYXMgSlF1ZXJ5O1xuXHRcdFx0XHRcdFx0JHN1Ym1pdC5vbignY2xpY2snLCAoKTogdm9pZCA9PiB7XG5cdFx0XHRcdFx0XHRcdCRzdWJtaXQucmVtb3ZlKCk7XG5cblx0XHRcdFx0XHRcdFx0YXBpLmVkaXQodGFyZ2V0VGl0bGUsICgpID0+ICh7XG5cdFx0XHRcdFx0XHRcdFx0c3VtbWFyeSxcblx0XHRcdFx0XHRcdFx0XHR0ZXh0OiBuZXdQYWdlQ29udGVudCxcblx0XHRcdFx0XHRcdFx0XHRub2NyZWF0ZTogZmFsc2UsXG5cdFx0XHRcdFx0XHRcdH0pKS50aGVuKFxuXHRcdFx0XHRcdFx0XHRcdCgpOiB2b2lkID0+IHtcblx0XHRcdFx0XHRcdFx0XHRcdHZvaWQgbXcubm90aWZ5KHdpbmRvdy53Z1VMUygn5bey57yW6L6RJywgJ+W3sue3qOi8ryAnKSArIHRhcmdldFRpdGxlLCB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHRhZzogJ1RyYW5zbGF0ZVZhcmlhbnRzJyxcblx0XHRcdFx0XHRcdFx0XHRcdFx0dHlwZTogJ3N1Y2Nlc3MnLFxuXHRcdFx0XHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFx0XHQoZXJyb3IpID0+IHtcblx0XHRcdFx0XHRcdFx0XHRcdHZvaWQgbXcubm90aWZ5KFxuXHRcdFx0XHRcdFx0XHRcdFx0XHR3aW5kb3dcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQud2dVTFMoJ+e8lui+kSQx5Y+R55Sf6ZSZ6K+v77yaJywgJ+e3qOi8ryQx55m855Sf6Yyv6Kqk77yaJylcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQucmVwbGFjZSgnJDEnLCB0YXJnZXRUaXRsZSkgKyBlcnJvcixcblx0XHRcdFx0XHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHRhZzogJ1RyYW5zbGF0ZVZhcmlhbnRzJyxcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0eXBlOiAnZXJyb3InLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRcdH0pO1xuXG5cdFx0XHRcdFx0XHQkdG9vbC5hcHBlbmQoJHN1Ym1pdCk7XG5cdFx0XHRcdFx0XHQkZGlmZlRhYmxlLmFwcGVuZChcblx0XHRcdFx0XHRcdFx0JCg8dGFibGUgY2xhc3NOYW1lPVwiZGlmZlwiIGlubmVySFRNTD17ZGlmZn0gLz4pLnByZXBlbmQoXG5cdFx0XHRcdFx0XHRcdFx0PGNvbGdyb3VwPlxuXHRcdFx0XHRcdFx0XHRcdFx0PGNvbCBjbGFzc05hbWU9XCJkaWZmLW1hcmtlclwiIC8+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8Y29sIGNsYXNzTmFtZT1cImRpZmYtY29udGVudFwiIC8+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8Y29sIGNsYXNzTmFtZT1cImRpZmYtbWFya2VyXCIgLz5cblx0XHRcdFx0XHRcdFx0XHRcdDxjb2wgY2xhc3NOYW1lPVwiZGlmZi1jb250ZW50XCIgLz5cblx0XHRcdFx0XHRcdFx0XHQ8L2NvbGdyb3VwPlxuXHRcdFx0XHRcdFx0XHQpXG5cdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSxcblx0XHRcdFx0KGVycm9yKTogdm9pZCA9PiB7XG5cdFx0XHRcdFx0dm9pZCBtdy5ub3RpZnkoXG5cdFx0XHRcdFx0XHR3aW5kb3cud2dVTFMoJ+iOt+WPliQx5beu5byC5pe25Y+R55Sf6ZSZ6K+v77yaJywgJ+WPluW+lyQx5beu55Ww5pmC55m855Sf6Yyv6Kqk77yaJykucmVwbGFjZSgnJDEnLCBsYW5nKSArIGVycm9yLFxuXHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHR0YWc6ICdUcmFuc2xhdGVWYXJpYW50cycsXG5cdFx0XHRcdFx0XHRcdHR5cGU6ICdlcnJvcicsXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0fVxuXHRcdFx0KVxuXHRcdFx0LmFsd2F5cygoKTogdm9pZCA9PiB7XG5cdFx0XHRcdHByb2Nlc3MocGFnZUNvbnRlbnQpO1xuXHRcdFx0fSk7XG5cdH07XG5cblx0Y29uc3QgcXVlcnlDb250ZW50UGFyYW1zID0ge1xuXHRcdGFjdGlvbjogJ3F1ZXJ5Jyxcblx0XHRmb3JtYXQ6ICdqc29uJyxcblx0XHRmb3JtYXR2ZXJzaW9uOiAnMicsXG5cdFx0cHJvcDogJ3JldmlzaW9ucycsXG5cdFx0dGl0bGVzOiB3Z1BhZ2VOYW1lLFxuXHRcdGN1cnRpbWVzdGFtcDogdHJ1ZSxcblx0XHRydnByb3A6IFsnY29udGVudCcsICd0aW1lc3RhbXAnXSxcblx0fSBhcyBjb25zdCBzYXRpc2ZpZXMgQXBpUXVlcnlSZXZpc2lvbnNQYXJhbXM7XG5cblx0dm9pZCBhcGlcblx0XHQuZ2V0KHF1ZXJ5Q29udGVudFBhcmFtcylcblx0XHQudGhlbigoZGF0YSkgPT4ge1xuXHRcdFx0aWYgKCFkYXRhWydxdWVyeSddPy5wYWdlcykge1xuXHRcdFx0XHRyZXR1cm4gJC5EZWZlcnJlZCgpLnJlamVjdCgndW5rbm93bicpO1xuXHRcdFx0fVxuXG5cdFx0XHRjb25zdCBbcGFnZV0gPSBkYXRhWydxdWVyeSddLnBhZ2VzO1xuXG5cdFx0XHRpZiAocGFnZS5pbnZhbGlkKSB7XG5cdFx0XHRcdHJldHVybiAkLkRlZmVycmVkKCkucmVqZWN0KCdpbnZhbGlkdGl0bGUnKTtcblx0XHRcdH1cblx0XHRcdGlmIChwYWdlLm1pc3NpbmcpIHtcblx0XHRcdFx0cmV0dXJuICQuRGVmZXJyZWQoKS5yZWplY3QoJ25vY3JlYXRlLW1pc3NpbmcnKTtcblx0XHRcdH1cblxuXHRcdFx0Y29uc3QgW3tjb250ZW50fV0gPSBwYWdlLnJldmlzaW9ucztcblxuXHRcdFx0cmV0dXJuIGNvbnRlbnQgYXMgc3RyaW5nO1xuXHRcdH0pXG5cdFx0LnRoZW4oKGNvbnRlbnQ6IHN0cmluZyk6IHN0cmluZyA9PiB7XG5cdFx0XHRsZXQgcGFnZUNvbnRlbnQ6IHN0cmluZyA9IGNvbnRlbnQ7XG5cblx0XHRcdHBhZ2VDb250ZW50ID0gcGFnZUNvbnRlbnQucmVwbGFjZShcblx0XHRcdFx0L1tcXHMjJicqOjw+W1xcXV97fH1dL2dpbSxcblx0XHRcdFx0KHN0cmluZzogc3RyaW5nKTogc3RyaW5nID0+IGAmIyR7c3RyaW5nLmNvZGVQb2ludEF0KDApfTtgXG5cdFx0XHQpO1xuXHRcdFx0cGFnZUNvbnRlbnQgPSBwYWdlQ29udGVudC5yZXBsYWNlKFxuXHRcdFx0XHQvKCYjOTE7JiM5MTspKCg/Oig/ISYjMTI0OykoPyEmIzkzOykuKSs/KSgmIzEyNDsoPzooPyEmIzkzOykuKSs/JiM5MzsmIzkzOykvZyxcblx0XHRcdFx0JyQxLXskMn0tJDMnXG5cdFx0XHQpO1xuXHRcdFx0cGFnZUNvbnRlbnQgPSBwYWdlQ29udGVudC5yZXBsYWNlKC8tJiMxMjM7KC4rPykmIzEyNTstL2csIChzdHJpbmc6IHN0cmluZyk6IHN0cmluZyA9PlxuXHRcdFx0XHRzdHJpbmdcblx0XHRcdFx0XHQucmVwbGFjZSgnLSYjMTIzOycsICcteycpXG5cdFx0XHRcdFx0LnJlcGxhY2UoJy0mIzEyMzsnLCAnLXsnKVxuXHRcdFx0XHRcdC5yZXBsYWNlKCcmIzEyNTstJywgJ30tJylcblx0XHRcdFx0XHQucmVwbGFjZSgvJiMxMjQ7L2csICd8Jylcblx0XHRcdFx0XHQucmVwbGFjZSgvJiMzMjsvZywgJyAnKVxuXHRcdFx0XHRcdC5yZXBsYWNlKC8mIzYxOy9nLCAnPScpXG5cdFx0XHRcdFx0LnJlcGxhY2UoLyYjNjI7L2csICc+Jylcblx0XHRcdFx0XHQucmVwbGFjZSgvJiM1ODsvZywgJzonKVxuXHRcdFx0KTtcblxuXHRcdFx0cmV0dXJuIHBhZ2VDb250ZW50O1xuXHRcdH0pXG5cdFx0LnRoZW4oKHBhZ2VDb250ZW50OiBzdHJpbmcpOiB2b2lkID0+IHtcblx0XHRcdHByb2Nlc3MocGFnZUNvbnRlbnQpO1xuXHRcdH0pO1xufTtcblxuZXhwb3J0IHt0cmFuc2xhdGVWYXJpYW50c307XG4iLCAiaW1wb3J0ICogYXMgT1BUSU9OUyBmcm9tICcuLi9vcHRpb25zLmpzb24nO1xuaW1wb3J0IHtpbml0TXdBcGl9IGZyb20gJ2V4dC5nYWRnZXQuVXRpbCc7XG5cbmNvbnN0IGFwaTogbXcuQXBpID0gaW5pdE13QXBpKGBUcmFuc2xhdGVWYXJpYW50cy8ke09QVElPTlMudmVyc2lvbn1gKTtcblxuZXhwb3J0IHthcGl9O1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLElBQUFBLHFCQUFzQkMsUUFBQSxpQkFBQTs7QUNDckIsSUFBQUMsWUFBYTtBQUNiLElBQUFDLDJCQUE0QjtBQUM1QixJQUFBQyxVQUFXOztBQ0ZMLElBQU1DLFlBQVk7QUFDbEIsSUFBTUMsaUJBQWlCO0FBQ3ZCLElBQU1DLFlBQVk7QUFDbEIsSUFBTUMsVUFBVTs7QUNGdkIsSUFBQUMscUJBQWtCQyxRQUFBVCxRQUFBLGdC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LFFBQU1vRixVQUFnQ25GLEdBQUdzRCxLQUFLOEIsZUFBZUYsV0FBVyxLQUFLeEYsT0FBT0MsTUFBTSxRQUFRLE1BQU0sQ0FBQztBQUV6R3dGLGNBQUEsUUFBQUEsWUFBQSxVQUFBQSxRQUFTRSxpQkFBaUIsU0FBUyxNQUFZO0FBQzlDRixZQUFRdkIsT0FBTztBQUNmL0Usc0JBQWtCQyxVQUFVO0VBQzdCLENBQUM7QUFDRixDQUFDOyIsCiAgIm5hbWVzIjogWyJpbXBvcnRfZXh0X2dhZGdldDMiLCAicmVxdWlyZSIsICJjb250ZW50SUQiLCAidHJhbnNsYXRlVmFyaWFudHNTdW1tYXJ5IiwgInZlcnNpb24iLCAibm9DaGFuZ2VzIiwgInB1Ymxpc2hDaGFuZ2VzIiwgInN1Ym1pdEFsbCIsICJ3YXJuaW5nIiwgImltcG9ydF9leHRfZ2FkZ2V0MiIsICJfX3RvRVNNIiwgImltcG9ydF9leHRfZ2FkZ2V0IiwgImFwaSIsICJpbml0TXdBcGkiLCAiY29uY2F0IiwgImxhbmdzIiwgIm5hbWVPZkxhbmdzIiwgInpoIiwgInRyYW5zbGF0ZVZhcmlhbnRzIiwgIndnUGFnZU5hbWUiLCAiX3Byb21wdCIsICJzdW1tYXJ5IiwgInJlcGxhY2UiLCAiJHdyYXBwZXIiLCAiJCIsICJkZWZhdWx0IiwgImNyZWF0ZUVsZW1lbnQiLCAiaWQiLCAicHJlcGVuZFRvIiwgIiRzdWJtaXRBbGwiLCAiY2xhc3NOYW1lIiwgIndpbmRvdyIsICJ3Z1VMUyIsICJvbiIsICIkYnV0dG9ucyIsICJmaW5kIiwgImxlbmd0aCIsICJtdyIsICJub3RpZnkiLCAidGFnIiwgInR5cGUiLCAiY29uZmlybSIsICJfaXRlcmF0b3IyIiwgIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwgIl9zdGVwMiIsICJzIiwgIm4iLCAiZG9uZSIsICJidXR0b24iLCAidmFsdWUiLCAidHJpZ2dlciIsICJlcnIiLCAiZSIsICJmIiwgImFwcGVuZCIsICJkZWZhdWx0TGFuZ3MiLCAicnVuTGFuZ3MiLCAicHJvbXB0IiwgImpvaW4iLCAic3BsaXQiLCAibGFuZ1F1ZXVlIiwgIm1hcCIsICJsYW5nIiwgInRyaW0iLCAiZmlsdGVyIiwgImluY2x1ZGVzIiwgInByb2Nlc3MiLCAicGFnZUNvbnRlbnQiLCAic2hpZnQiLCAiJGRpZmZUYWJsZSIsICJiYXNlUGFnZU5hbWUiLCAidGFyZ2V0VGl0bGUiLCAibmV3UGFnZUNvbnRlbnQiLCAicGFyc2UiLCAiYWN0aW9uIiwgInVzZWxhbmciLCAidGhlbiIsICJjb250ZW50IiwgImlubmVySFRNTCIsICJ0ZXh0IiwgInF1ZXJ5RGlmZlBhcmFtcyIsICJmb3JtYXQiLCAiZm9ybWF0dmVyc2lvbiIsICJ0aXRsZXMiLCAicHJvcCIsICJydmRpZmZ0b3RleHQiLCAiZ2V0IiwgImVycm9yIiwgImRhdGEiLCAiJHRvb2wiLCAiaHJlZiIsICJ1dGlsIiwgImdldFVybCIsICJwYWdlIiwgInBhZ2VzIiwgIm1pc3NpbmciLCAiJHN1Ym1pdCIsICJyZW1vdmUiLCAiY3JlYXRlIiwgInN0cmluZyIsICJjb2RlUG9pbnRBdCIsICJkaWZmIiwgInJldmlzaW9ucyIsICJib2R5IiwgImVkaXQiLCAibm9jcmVhdGUiLCAicHJlcGVuZCIsICJhbHdheXMiLCAicXVlcnlDb250ZW50UGFyYW1zIiwgImN1cnRpbWVzdGFtcCIsICJydnByb3AiLCAiX2RhdGEkcXVlcnkiLCAiRGVmZXJyZWQiLCAicmVqZWN0IiwgImludmFsaWQiLCAiZ2V0Qm9keSIsICIkYm9keSIsICJjb25maWciLCAidGVzdCIsICJwb3J0bGV0SWQiLCAiZWxlbWVudCIsICJhZGRQb3J0bGV0TGluayIsICJhZGRFdmVudExpc3RlbmVyIl0KfQo= diff --git a/dist/Util/Util.js b/dist/Util/Util.js index 68540bd08..ad7e6fd4d 100644 --- a/dist/Util/Util.js +++ b/dist/Util/Util.js @@ -1430,7 +1430,7 @@ var MwUri = class extends URL { } }; //! src/Util/modules/oouiConfirmWithStyle.tsx -var import_ext_gadget = __toESM(require("ext.gadget.React"), 1); +var import_ext_gadget = __toESM(require("ext.gadget.JSX"), 1); var oouiConfirmWithStyle = (message) => OO.ui.confirm($(/* @__PURE__ */ import_ext_gadget.default.createElement("div", { className: "oo-ui-window-foot", style: { @@ -1614,4 +1614,4 @@ var setWpTextbox1Content = ({ /* */ -//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsibm9kZV9tb2R1bGVzLy5wbnBtL2NvcmUtanNAMy40MC4wL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9pcy1jYWxsYWJsZS5qcyIsICJub2RlX21vZHVsZXMvLnBucG0vY29yZS1qc0AzLjQwLjAvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2ZhaWxzLmpzIiwgIm5vZGVfbW9kdWxlcy8ucG5wbS9jb3JlLWpzQDMuNDAuMC9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZGVzY3JpcHRvcnMuanMiLCAibm9kZV9tb2R1bGVzLy5wbnBtL2NvcmUtanNAMy40MC4wL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9nbG9iYWwtdGhpcy5qcyIsICJub2RlX21vZHVsZXMvLnBucG0vY29yZS1qc0AzLjQwLjAvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2lzLW9iamVjdC5qcyIsICJub2RlX21vZHVsZXMvLnBucG0vY29yZS1qc0AzLjQwLjAvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2RvY3VtZW50LWNyZWF0ZS1lbGVtZW50LmpzIiwgIm5vZGVfbW9kdWxlcy8ucG5wbS9jb3JlLWpzQDMuNDAuMC9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaWU4LWRvbS1kZWZpbmUuanMiLCAibm9kZV9tb2R1bGVzLy5wbnBtL2NvcmUtanNAMy40MC4wL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy92OC1wcm90b3R5cGUtZGVmaW5lLWJ1Zy5qcyIsICJub2RlX21vZHVsZXMvLnBucG0vY29yZS1qc0AzLjQwLjAvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2FuLW9iamVjdC5qcyIsICJub2RlX21vZHVsZXMvLnBucG0vY29yZS1qc0AzLjQwLjAvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2Z1bmN0aW9uLWJpbmQtbmF0aXZlLmpzIiwgIm5vZGVfbW9kdWxlcy8ucG5wbS9jb3JlLWpzQDMuNDAuMC9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZnVuY3Rpb24tY2FsbC5qcyIsICJub2RlX21vZHVsZXMvLnBucG0vY29yZS1qc0AzLjQwLjAvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2dldC1idWlsdC1pbi5qcyIsICJub2RlX21vZHVsZXMvLnBucG0vY29yZS1qc0AzLjQwLjAvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2Z1bmN0aW9uLXVuY3VycnktdGhpcy5qcyIsICJub2RlX21vZHVsZXMvLnBucG0vY29yZS1qc0AzLjQwLjAvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL29iamVjdC1pcy1wcm90b3R5cGUtb2YuanMiLCAibm9kZV9tb2R1bGVzLy5wbnBtL2NvcmUtanNAMy40MC4wL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9lbnZpcm9ubWVudC11c2VyLWFnZW50LmpzIiwgIm5vZGVfbW9kdWxlcy8ucG5wbS9jb3JlLWpzQDMuNDAuMC9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZW52aXJvbm1lbnQtdjgtdmVyc2lvbi5qcyIsICJub2RlX21vZHVsZXMvLnBucG0vY29yZS1qc0AzLjQwLjAvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3N5bWJvbC1jb25zdHJ1Y3Rvci1kZXRlY3Rpb24uanMiLCAibm9kZV9tb2R1bGVzLy5wbnBtL2NvcmUtanNAMy40MC4wL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy91c2Utc3ltYm9sLWFzLXVpZC5qcyIsICJub2RlX21vZHVsZXMvLnBucG0vY29yZS1qc0AzLjQwLjAvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2lzLXN5bWJvbC5qcyIsICJub2RlX21vZHVsZXMvLnBucG0vY29yZS1qc0AzLjQwLjAvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3RyeS10by1zdHJpbmcuanMiLCAibm9kZV9tb2R1bGVzLy5wbnBtL2NvcmUtanNAMy40MC4wL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9hLWNhbGxhYmxlLmpzIiwgIm5vZGVfbW9kdWxlcy8ucG5wbS9jb3JlLWpzQDMuNDAuMC9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaXMtbnVsbC1vci11bmRlZmluZWQuanMiLCAibm9kZV9tb2R1bGVzLy5wbnBtL2NvcmUtanNAMy40MC4wL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9nZXQtbWV0aG9kLmpzIiwgIm5vZGVfbW9kdWxlcy8ucG5wbS9jb3JlLWpzQDMuNDAuMC9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvb3JkaW5hcnktdG8tcHJpbWl0aXZlLmpzIiwgIm5vZGVfbW9kdWxlcy8ucG5wbS9jb3JlLWpzQDMuNDAuMC9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaXMtcHVyZS5qcyIsICJub2RlX21vZHVsZXMvLnBucG0vY29yZS1qc0AzLjQwLjAvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2RlZmluZS1nbG9iYWwtcHJvcGVydHkuanMiLCAibm9kZV9tb2R1bGVzLy5wbnBtL2NvcmUtanNAMy40MC4wL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9zaGFyZWQtc3RvcmUuanMiLCAibm9kZV9tb2R1bGVzLy5wbnBtL2NvcmUtanNAMy40MC4wL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9zaGFyZWQuanMiLCAibm9kZV9tb2R1bGVzLy5wbnBtL2NvcmUtanNAMy40MC4wL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9yZXF1aXJlLW9iamVjdC1jb2VyY2libGUuanMiLCAibm9kZV9tb2R1bGVzLy5wbnBtL2NvcmUtanNAMy40MC4wL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy90by1vYmplY3QuanMiLCAibm9kZV9tb2R1bGVzLy5wbnBtL2NvcmUtanNAMy40MC4wL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9oYXMtb3duLXByb3BlcnR5LmpzIiwgIm5vZGVfbW9kdWxlcy8ucG5wbS9jb3JlLWpzQDMuNDAuMC9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvdWlkLmpzIiwgIm5vZGVfbW9kdWxlcy8ucG5wbS9jb3JlLWpzQDMuNDAuMC9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wuanMiLCAibm9kZV9tb2R1bGVzLy5wbnBtL2NvcmUtanNAMy40MC4wL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy90by1wcmltaXRpdmUuanMiLCAibm9kZV9tb2R1bGVzLy5wbnBtL2NvcmUtanNAMy40MC4wL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy90by1wcm9wZXJ0eS1rZXkuanMiLCAibm9kZV9tb2R1bGVzLy5wbnBtL2NvcmUtanNAMy40MC4wL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9vYmplY3QtZGVmaW5lLXByb3BlcnR5LmpzIiwgIm5vZGVfbW9kdWxlcy8ucG5wbS9jb3JlLWpzQDMuNDAuMC9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZnVuY3Rpb24tbmFtZS5qcyIsICJub2RlX21vZHVsZXMvLnBucG0vY29yZS1qc0AzLjQwLjAvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2luc3BlY3Qtc291cmNlLmpzIiwgIm5vZGVfbW9kdWxlcy8ucG5wbS9jb3JlLWpzQDMuNDAuMC9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvd2Vhay1tYXAtYmFzaWMtZGV0ZWN0aW9uLmpzIiwgIm5vZGVfbW9kdWxlcy8ucG5wbS9jb3JlLWpzQDMuNDAuMC9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvY3JlYXRlLXByb3BlcnR5LWRlc2NyaXB0b3IuanMiLCAibm9kZV9tb2R1bGVzLy5wbnBtL2NvcmUtanNAMy40MC4wL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9jcmVhdGUtbm9uLWVudW1lcmFibGUtcHJvcGVydHkuanMiLCAibm9kZV9tb2R1bGVzLy5wbnBtL2NvcmUtanNAMy40MC4wL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9zaGFyZWQta2V5LmpzIiwgIm5vZGVfbW9kdWxlcy8ucG5wbS9jb3JlLWpzQDMuNDAuMC9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaGlkZGVuLWtleXMuanMiLCAibm9kZV9tb2R1bGVzLy5wbnBtL2NvcmUtanNAMy40MC4wL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9pbnRlcm5hbC1zdGF0ZS5qcyIsICJub2RlX21vZHVsZXMvLnBucG0vY29yZS1qc0AzLjQwLjAvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL21ha2UtYnVpbHQtaW4uanMiLCAibm9kZV9tb2R1bGVzLy5wbnBtL2NvcmUtanNAMy40MC4wL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9kZWZpbmUtYnVpbHQtaW4uanMiLCAibm9kZV9tb2R1bGVzLy5wbnBtL2NvcmUtanNAMy40MC4wL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy90by1zdHJpbmctdGFnLXN1cHBvcnQuanMiLCAibm9kZV9tb2R1bGVzLy5wbnBtL2NvcmUtanNAMy40MC4wL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9jbGFzc29mLXJhdy5qcyIsICJub2RlX21vZHVsZXMvLnBucG0vY29yZS1qc0AzLjQwLjAvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2NsYXNzb2YuanMiLCAibm9kZV9tb2R1bGVzLy5wbnBtL2NvcmUtanNAMy40MC4wL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy90by1zdHJpbmcuanMiLCAibm9kZV9tb2R1bGVzLy5wbnBtL2NvcmUtanNAMy40MC4wL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy92YWxpZGF0ZS1hcmd1bWVudHMtbGVuZ3RoLmpzIiwgIm5vZGVfbW9kdWxlcy8ucG5wbS9jb3JlLWpzQDMuNDAuMC9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL3dlYi51cmwtc2VhcmNoLXBhcmFtcy5kZWxldGUuanMiLCAibm9kZV9tb2R1bGVzLy5wbnBtL2NvcmUtanNAMy40MC4wL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvd2ViLnVybC1zZWFyY2gtcGFyYW1zLmhhcy5qcyIsICJub2RlX21vZHVsZXMvLnBucG0vY29yZS1qc0AzLjQwLjAvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2RlZmluZS1idWlsdC1pbi1hY2Nlc3Nvci5qcyIsICJub2RlX21vZHVsZXMvLnBucG0vY29yZS1qc0AzLjQwLjAvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy93ZWIudXJsLXNlYXJjaC1wYXJhbXMuc2l6ZS5qcyIsICJzcmMvVXRpbC9VdGlsLnRzIiwgInNyYy9VdGlsL21vZHVsZXMvYWRkRXZlbnRMaXN0ZW5lcldpdGhSZW1vdmVyLnRzIiwgInNyYy9VdGlsL21vZHVsZXMvY2hhbmdlT3BhY2l0eVdoZW5Nb3VzZUVudGVyT3JMZWF2ZS50cyIsICJzcmMvVXRpbC9tb2R1bGVzL2NoZWNrQTExeUNvbmZpcm1LZXkudHMiLCAic3JjL1V0aWwvbW9kdWxlcy9nZW5lcmF0ZUFycmF5LnRzIiwgInNyYy9VdGlsL21vZHVsZXMvaW5pdE13QXBpLnRzIiwgInNyYy9VdGlsL21vZHVsZXMvdW5pcXVlQXJyYXkudHMiLCAic3JjL1V0aWwvbW9kdWxlcy9jaGVja0RlcGVuZGVuY2llcy50cyIsICJzcmMvVXRpbC9tb2R1bGVzL2RlbGF5LnRzIiwgInNyYy9VdGlsL21vZHVsZXMvZmluZFZhcmlhbnRzLnRzIiwgInNyYy9VdGlsL21vZHVsZXMvZ2VuZXJhdGVTdmdEYXRhVXJsLnRzIiwgInNyYy9VdGlsL21vZHVsZXMvZ2V0Qm9keS50cyIsICJzcmMvVXRpbC9tb2R1bGVzL2lzVmFsaWRLZXkudHMiLCAic3JjL1V0aWwvbW9kdWxlcy9td1VyaS50cyIsICJzcmMvVXRpbC9tb2R1bGVzL29vdWlDb25maXJtV2l0aFN0eWxlLnRzeCIsICJzcmMvVXRpbC9tb2R1bGVzL3F1ZXJ5R2xvYmFsVXNlckdyb3Vwcy50cyIsICJzcmMvVXRpbC9tb2R1bGVzL3F1ZXJ5VXNlckdyb3Vwcy50cyIsICJzcmMvVXRpbC9tb2R1bGVzL3Njcm9sbFRvcC50cyIsICJzcmMvVXRpbC9tb2R1bGVzL3VzZXJJc0luR3JvdXAudHMiLCAic3JjL1V0aWwvbW9kdWxlcy93cFN1bW1hcnlDb250ZW50LnRzIiwgInNyYy9VdGlsL21vZHVsZXMvd3BUZXh0Ym94MUNvbnRlbnQudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIid1c2Ugc3RyaWN0Jztcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtSXNIVE1MRERBLWludGVybmFsLXNsb3RcbnZhciBkb2N1bWVudEFsbCA9IHR5cGVvZiBkb2N1bWVudCA9PSAnb2JqZWN0JyAmJiBkb2N1bWVudC5hbGw7XG5cbi8vIGBJc0NhbGxhYmxlYCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtaXNjYWxsYWJsZVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHVuaWNvcm4vbm8tdHlwZW9mLXVuZGVmaW5lZCAtLSByZXF1aXJlZCBmb3IgdGVzdGluZ1xubW9kdWxlLmV4cG9ydHMgPSB0eXBlb2YgZG9jdW1lbnRBbGwgPT0gJ3VuZGVmaW5lZCcgJiYgZG9jdW1lbnRBbGwgIT09IHVuZGVmaW5lZCA/IGZ1bmN0aW9uIChhcmd1bWVudCkge1xuICByZXR1cm4gdHlwZW9mIGFyZ3VtZW50ID09ICdmdW5jdGlvbicgfHwgYXJndW1lbnQgPT09IGRvY3VtZW50QWxsO1xufSA6IGZ1bmN0aW9uIChhcmd1bWVudCkge1xuICByZXR1cm4gdHlwZW9mIGFyZ3VtZW50ID09ICdmdW5jdGlvbic7XG59O1xuIiwgIid1c2Ugc3RyaWN0Jztcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGV4ZWMpIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gISFleGVjKCk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn07XG4iLCAiJ3VzZSBzdHJpY3QnO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG5cbi8vIERldGVjdCBJRTgncyBpbmNvbXBsZXRlIGRlZmluZVByb3BlcnR5IGltcGxlbWVudGF0aW9uXG5tb2R1bGUuZXhwb3J0cyA9ICFmYWlscyhmdW5jdGlvbiAoKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy9uby1vYmplY3QtZGVmaW5lcHJvcGVydHkgLS0gcmVxdWlyZWQgZm9yIHRlc3RpbmdcbiAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgMSwgeyBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIDc7IH0gfSlbMV0gIT09IDc7XG59KTtcbiIsICIndXNlIHN0cmljdCc7XG52YXIgY2hlY2sgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIGl0ICYmIGl0Lk1hdGggPT09IE1hdGggJiYgaXQ7XG59O1xuXG4vLyBodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qcy9pc3N1ZXMvODYjaXNzdWVjb21tZW50LTExNTc1OTAyOFxubW9kdWxlLmV4cG9ydHMgPVxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tZ2xvYmFsLXRoaXMgLS0gc2FmZVxuICBjaGVjayh0eXBlb2YgZ2xvYmFsVGhpcyA9PSAnb2JqZWN0JyAmJiBnbG9iYWxUaGlzKSB8fFxuICBjaGVjayh0eXBlb2Ygd2luZG93ID09ICdvYmplY3QnICYmIHdpbmRvdykgfHxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXJlc3RyaWN0ZWQtZ2xvYmFscyAtLSBzYWZlXG4gIGNoZWNrKHR5cGVvZiBzZWxmID09ICdvYmplY3QnICYmIHNlbGYpIHx8XG4gIGNoZWNrKHR5cGVvZiBnbG9iYWwgPT0gJ29iamVjdCcgJiYgZ2xvYmFsKSB8fFxuICBjaGVjayh0eXBlb2YgdGhpcyA9PSAnb2JqZWN0JyAmJiB0aGlzKSB8fFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tbmV3LWZ1bmMgLS0gZmFsbGJhY2tcbiAgKGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH0pKCkgfHwgRnVuY3Rpb24oJ3JldHVybiB0aGlzJykoKTtcbiIsICIndXNlIHN0cmljdCc7XG52YXIgaXNDYWxsYWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1jYWxsYWJsZScpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gdHlwZW9mIGl0ID09ICdvYmplY3QnID8gaXQgIT09IG51bGwgOiBpc0NhbGxhYmxlKGl0KTtcbn07XG4iLCAiJ3VzZSBzdHJpY3QnO1xudmFyIGdsb2JhbFRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsLXRoaXMnKTtcbnZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1vYmplY3QnKTtcblxudmFyIGRvY3VtZW50ID0gZ2xvYmFsVGhpcy5kb2N1bWVudDtcbi8vIHR5cGVvZiBkb2N1bWVudC5jcmVhdGVFbGVtZW50IGlzICdvYmplY3QnIGluIG9sZCBJRVxudmFyIEVYSVNUUyA9IGlzT2JqZWN0KGRvY3VtZW50KSAmJiBpc09iamVjdChkb2N1bWVudC5jcmVhdGVFbGVtZW50KTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIEVYSVNUUyA/IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoaXQpIDoge307XG59O1xuIiwgIid1c2Ugc3RyaWN0JztcbnZhciBERVNDUklQVE9SUyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZXNjcmlwdG9ycycpO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG52YXIgY3JlYXRlRWxlbWVudCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kb2N1bWVudC1jcmVhdGUtZWxlbWVudCcpO1xuXG4vLyBUaGFua3MgdG8gSUU4IGZvciBpdHMgZnVubnkgZGVmaW5lUHJvcGVydHlcbm1vZHVsZS5leHBvcnRzID0gIURFU0NSSVBUT1JTICYmICFmYWlscyhmdW5jdGlvbiAoKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy9uby1vYmplY3QtZGVmaW5lcHJvcGVydHkgLS0gcmVxdWlyZWQgZm9yIHRlc3RpbmdcbiAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjcmVhdGVFbGVtZW50KCdkaXYnKSwgJ2EnLCB7XG4gICAgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiA3OyB9XG4gIH0pLmEgIT09IDc7XG59KTtcbiIsICIndXNlIHN0cmljdCc7XG52YXIgREVTQ1JJUFRPUlMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVzY3JpcHRvcnMnKTtcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xuXG4vLyBWOCB+IENocm9tZSAzNi1cbi8vIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC92OC9pc3N1ZXMvZGV0YWlsP2lkPTMzMzRcbm1vZHVsZS5leHBvcnRzID0gREVTQ1JJUFRPUlMgJiYgZmFpbHMoZnVuY3Rpb24gKCkge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tb2JqZWN0LWRlZmluZXByb3BlcnR5IC0tIHJlcXVpcmVkIGZvciB0ZXN0aW5nXG4gIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoZnVuY3Rpb24gKCkgeyAvKiBlbXB0eSAqLyB9LCAncHJvdG90eXBlJywge1xuICAgIHZhbHVlOiA0MixcbiAgICB3cml0YWJsZTogZmFsc2VcbiAgfSkucHJvdG90eXBlICE9PSA0Mjtcbn0pO1xuIiwgIid1c2Ugc3RyaWN0JztcbnZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1vYmplY3QnKTtcblxudmFyICRTdHJpbmcgPSBTdHJpbmc7XG52YXIgJFR5cGVFcnJvciA9IFR5cGVFcnJvcjtcblxuLy8gYEFzc2VydDogVHlwZShhcmd1bWVudCkgaXMgT2JqZWN0YFxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoYXJndW1lbnQpIHtcbiAgaWYgKGlzT2JqZWN0KGFyZ3VtZW50KSkgcmV0dXJuIGFyZ3VtZW50O1xuICB0aHJvdyBuZXcgJFR5cGVFcnJvcigkU3RyaW5nKGFyZ3VtZW50KSArICcgaXMgbm90IGFuIG9iamVjdCcpO1xufTtcbiIsICIndXNlIHN0cmljdCc7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcblxubW9kdWxlLmV4cG9ydHMgPSAhZmFpbHMoZnVuY3Rpb24gKCkge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tZnVuY3Rpb24tcHJvdG90eXBlLWJpbmQgLS0gc2FmZVxuICB2YXIgdGVzdCA9IChmdW5jdGlvbiAoKSB7IC8qIGVtcHR5ICovIH0pLmJpbmQoKTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXByb3RvdHlwZS1idWlsdGlucyAtLSBzYWZlXG4gIHJldHVybiB0eXBlb2YgdGVzdCAhPSAnZnVuY3Rpb24nIHx8IHRlc3QuaGFzT3duUHJvcGVydHkoJ3Byb3RvdHlwZScpO1xufSk7XG4iLCAiJ3VzZSBzdHJpY3QnO1xudmFyIE5BVElWRV9CSU5EID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLWJpbmQtbmF0aXZlJyk7XG5cbnZhciBjYWxsID0gRnVuY3Rpb24ucHJvdG90eXBlLmNhbGw7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tZnVuY3Rpb24tcHJvdG90eXBlLWJpbmQgLS0gc2FmZVxubW9kdWxlLmV4cG9ydHMgPSBOQVRJVkVfQklORCA/IGNhbGwuYmluZChjYWxsKSA6IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIGNhbGwuYXBwbHkoY2FsbCwgYXJndW1lbnRzKTtcbn07XG4iLCAiJ3VzZSBzdHJpY3QnO1xudmFyIGdsb2JhbFRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsLXRoaXMnKTtcbnZhciBpc0NhbGxhYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWNhbGxhYmxlJyk7XG5cbnZhciBhRnVuY3Rpb24gPSBmdW5jdGlvbiAoYXJndW1lbnQpIHtcbiAgcmV0dXJuIGlzQ2FsbGFibGUoYXJndW1lbnQpID8gYXJndW1lbnQgOiB1bmRlZmluZWQ7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChuYW1lc3BhY2UsIG1ldGhvZCkge1xuICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA8IDIgPyBhRnVuY3Rpb24oZ2xvYmFsVGhpc1tuYW1lc3BhY2VdKSA6IGdsb2JhbFRoaXNbbmFtZXNwYWNlXSAmJiBnbG9iYWxUaGlzW25hbWVzcGFjZV1bbWV0aG9kXTtcbn07XG4iLCAiJ3VzZSBzdHJpY3QnO1xudmFyIE5BVElWRV9CSU5EID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLWJpbmQtbmF0aXZlJyk7XG5cbnZhciBGdW5jdGlvblByb3RvdHlwZSA9IEZ1bmN0aW9uLnByb3RvdHlwZTtcbnZhciBjYWxsID0gRnVuY3Rpb25Qcm90b3R5cGUuY2FsbDtcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy9uby1mdW5jdGlvbi1wcm90b3R5cGUtYmluZCAtLSBzYWZlXG52YXIgdW5jdXJyeVRoaXNXaXRoQmluZCA9IE5BVElWRV9CSU5EICYmIEZ1bmN0aW9uUHJvdG90eXBlLmJpbmQuYmluZChjYWxsLCBjYWxsKTtcblxubW9kdWxlLmV4cG9ydHMgPSBOQVRJVkVfQklORCA/IHVuY3VycnlUaGlzV2l0aEJpbmQgOiBmdW5jdGlvbiAoZm4pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gY2FsbC5hcHBseShmbiwgYXJndW1lbnRzKTtcbiAgfTtcbn07XG4iLCAiJ3VzZSBzdHJpY3QnO1xudmFyIHVuY3VycnlUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLXVuY3VycnktdGhpcycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHVuY3VycnlUaGlzKHt9LmlzUHJvdG90eXBlT2YpO1xuIiwgIid1c2Ugc3RyaWN0JztcbnZhciBnbG9iYWxUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbC10aGlzJyk7XG5cbnZhciBuYXZpZ2F0b3IgPSBnbG9iYWxUaGlzLm5hdmlnYXRvcjtcbnZhciB1c2VyQWdlbnQgPSBuYXZpZ2F0b3IgJiYgbmF2aWdhdG9yLnVzZXJBZ2VudDtcblxubW9kdWxlLmV4cG9ydHMgPSB1c2VyQWdlbnQgPyBTdHJpbmcodXNlckFnZW50KSA6ICcnO1xuIiwgIid1c2Ugc3RyaWN0JztcbnZhciBnbG9iYWxUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbC10aGlzJyk7XG52YXIgdXNlckFnZW50ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Vudmlyb25tZW50LXVzZXItYWdlbnQnKTtcblxudmFyIHByb2Nlc3MgPSBnbG9iYWxUaGlzLnByb2Nlc3M7XG52YXIgRGVubyA9IGdsb2JhbFRoaXMuRGVubztcbnZhciB2ZXJzaW9ucyA9IHByb2Nlc3MgJiYgcHJvY2Vzcy52ZXJzaW9ucyB8fCBEZW5vICYmIERlbm8udmVyc2lvbjtcbnZhciB2OCA9IHZlcnNpb25zICYmIHZlcnNpb25zLnY4O1xudmFyIG1hdGNoLCB2ZXJzaW9uO1xuXG5pZiAodjgpIHtcbiAgbWF0Y2ggPSB2OC5zcGxpdCgnLicpO1xuICAvLyBpbiBvbGQgQ2hyb21lLCB2ZXJzaW9ucyBvZiBWOCBpc24ndCBWOCA9IENocm9tZSAvIDEwXG4gIC8vIGJ1dCB0aGVpciBjb3JyZWN0IHZlcnNpb25zIGFyZSBub3QgaW50ZXJlc3RpbmcgZm9yIHVzXG4gIHZlcnNpb24gPSBtYXRjaFswXSA+IDAgJiYgbWF0Y2hbMF0gPCA0ID8gMSA6ICsobWF0Y2hbMF0gKyBtYXRjaFsxXSk7XG59XG5cbi8vIEJyb3dzZXJGUyBOb2RlSlMgYHByb2Nlc3NgIHBvbHlmaWxsIGluY29ycmVjdGx5IHNldCBgLnY4YCB0byBgMC4wYFxuLy8gc28gY2hlY2sgYHVzZXJBZ2VudGAgZXZlbiBpZiBgLnY4YCBleGlzdHMsIGJ1dCAwXG5pZiAoIXZlcnNpb24gJiYgdXNlckFnZW50KSB7XG4gIG1hdGNoID0gdXNlckFnZW50Lm1hdGNoKC9FZGdlXFwvKFxcZCspLyk7XG4gIGlmICghbWF0Y2ggfHwgbWF0Y2hbMV0gPj0gNzQpIHtcbiAgICBtYXRjaCA9IHVzZXJBZ2VudC5tYXRjaCgvQ2hyb21lXFwvKFxcZCspLyk7XG4gICAgaWYgKG1hdGNoKSB2ZXJzaW9uID0gK21hdGNoWzFdO1xuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gdmVyc2lvbjtcbiIsICIndXNlIHN0cmljdCc7XG4vKiBlc2xpbnQtZGlzYWJsZSBlcy9uby1zeW1ib2wgLS0gcmVxdWlyZWQgZm9yIHRlc3RpbmcgKi9cbnZhciBWOF9WRVJTSU9OID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Vudmlyb25tZW50LXY4LXZlcnNpb24nKTtcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xudmFyIGdsb2JhbFRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsLXRoaXMnKTtcblxudmFyICRTdHJpbmcgPSBnbG9iYWxUaGlzLlN0cmluZztcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzL25vLW9iamVjdC1nZXRvd25wcm9wZXJ0eXN5bWJvbHMgLS0gcmVxdWlyZWQgZm9yIHRlc3Rpbmdcbm1vZHVsZS5leHBvcnRzID0gISFPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzICYmICFmYWlscyhmdW5jdGlvbiAoKSB7XG4gIHZhciBzeW1ib2wgPSBTeW1ib2woJ3N5bWJvbCBkZXRlY3Rpb24nKTtcbiAgLy8gQ2hyb21lIDM4IFN5bWJvbCBoYXMgaW5jb3JyZWN0IHRvU3RyaW5nIGNvbnZlcnNpb25cbiAgLy8gYGdldC1vd24tcHJvcGVydHktc3ltYm9sc2AgcG9seWZpbGwgc3ltYm9scyBjb252ZXJ0ZWQgdG8gb2JqZWN0IGFyZSBub3QgU3ltYm9sIGluc3RhbmNlc1xuICAvLyBuYjogRG8gbm90IGNhbGwgYFN0cmluZ2AgZGlyZWN0bHkgdG8gYXZvaWQgdGhpcyBiZWluZyBvcHRpbWl6ZWQgb3V0IHRvIGBzeW1ib2wrJydgIHdoaWNoIHdpbGwsXG4gIC8vIG9mIGNvdXJzZSwgZmFpbC5cbiAgcmV0dXJuICEkU3RyaW5nKHN5bWJvbCkgfHwgIShPYmplY3Qoc3ltYm9sKSBpbnN0YW5jZW9mIFN5bWJvbCkgfHxcbiAgICAvLyBDaHJvbWUgMzgtNDAgc3ltYm9scyBhcmUgbm90IGluaGVyaXRlZCBmcm9tIERPTSBjb2xsZWN0aW9ucyBwcm90b3R5cGVzIHRvIGluc3RhbmNlc1xuICAgICFTeW1ib2wuc2hhbSAmJiBWOF9WRVJTSU9OICYmIFY4X1ZFUlNJT04gPCA0MTtcbn0pO1xuIiwgIid1c2Ugc3RyaWN0Jztcbi8qIGVzbGludC1kaXNhYmxlIGVzL25vLXN5bWJvbCAtLSByZXF1aXJlZCBmb3IgdGVzdGluZyAqL1xudmFyIE5BVElWRV9TWU1CT0wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc3ltYm9sLWNvbnN0cnVjdG9yLWRldGVjdGlvbicpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IE5BVElWRV9TWU1CT0wgJiZcbiAgIVN5bWJvbC5zaGFtICYmXG4gIHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPT0gJ3N5bWJvbCc7XG4iLCAiJ3VzZSBzdHJpY3QnO1xudmFyIGdldEJ1aWx0SW4gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2V0LWJ1aWx0LWluJyk7XG52YXIgaXNDYWxsYWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1jYWxsYWJsZScpO1xudmFyIGlzUHJvdG90eXBlT2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWlzLXByb3RvdHlwZS1vZicpO1xudmFyIFVTRV9TWU1CT0xfQVNfVUlEID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3VzZS1zeW1ib2wtYXMtdWlkJyk7XG5cbnZhciAkT2JqZWN0ID0gT2JqZWN0O1xuXG5tb2R1bGUuZXhwb3J0cyA9IFVTRV9TWU1CT0xfQVNfVUlEID8gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiB0eXBlb2YgaXQgPT0gJ3N5bWJvbCc7XG59IDogZnVuY3Rpb24gKGl0KSB7XG4gIHZhciAkU3ltYm9sID0gZ2V0QnVpbHRJbignU3ltYm9sJyk7XG4gIHJldHVybiBpc0NhbGxhYmxlKCRTeW1ib2wpICYmIGlzUHJvdG90eXBlT2YoJFN5bWJvbC5wcm90b3R5cGUsICRPYmplY3QoaXQpKTtcbn07XG4iLCAiJ3VzZSBzdHJpY3QnO1xudmFyICRTdHJpbmcgPSBTdHJpbmc7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGFyZ3VtZW50KSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuICRTdHJpbmcoYXJndW1lbnQpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJldHVybiAnT2JqZWN0JztcbiAgfVxufTtcbiIsICIndXNlIHN0cmljdCc7XG52YXIgaXNDYWxsYWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1jYWxsYWJsZScpO1xudmFyIHRyeVRvU3RyaW5nID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RyeS10by1zdHJpbmcnKTtcblxudmFyICRUeXBlRXJyb3IgPSBUeXBlRXJyb3I7XG5cbi8vIGBBc3NlcnQ6IElzQ2FsbGFibGUoYXJndW1lbnQpIGlzIHRydWVgXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChhcmd1bWVudCkge1xuICBpZiAoaXNDYWxsYWJsZShhcmd1bWVudCkpIHJldHVybiBhcmd1bWVudDtcbiAgdGhyb3cgbmV3ICRUeXBlRXJyb3IodHJ5VG9TdHJpbmcoYXJndW1lbnQpICsgJyBpcyBub3QgYSBmdW5jdGlvbicpO1xufTtcbiIsICIndXNlIHN0cmljdCc7XG4vLyB3ZSBjYW4ndCB1c2UganVzdCBgaXQgPT0gbnVsbGAgc2luY2Ugb2YgYGRvY3VtZW50LmFsbGAgc3BlY2lhbCBjYXNlXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLUlzSFRNTEREQS1pbnRlcm5hbC1zbG90LWFlY1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIGl0ID09PSBudWxsIHx8IGl0ID09PSB1bmRlZmluZWQ7XG59O1xuIiwgIid1c2Ugc3RyaWN0JztcbnZhciBhQ2FsbGFibGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYS1jYWxsYWJsZScpO1xudmFyIGlzTnVsbE9yVW5kZWZpbmVkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLW51bGwtb3ItdW5kZWZpbmVkJyk7XG5cbi8vIGBHZXRNZXRob2RgIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1nZXRtZXRob2Rcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKFYsIFApIHtcbiAgdmFyIGZ1bmMgPSBWW1BdO1xuICByZXR1cm4gaXNOdWxsT3JVbmRlZmluZWQoZnVuYykgPyB1bmRlZmluZWQgOiBhQ2FsbGFibGUoZnVuYyk7XG59O1xuIiwgIid1c2Ugc3RyaWN0JztcbnZhciBjYWxsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLWNhbGwnKTtcbnZhciBpc0NhbGxhYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWNhbGxhYmxlJyk7XG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtb2JqZWN0Jyk7XG5cbnZhciAkVHlwZUVycm9yID0gVHlwZUVycm9yO1xuXG4vLyBgT3JkaW5hcnlUb1ByaW1pdGl2ZWAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLW9yZGluYXJ5dG9wcmltaXRpdmVcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGlucHV0LCBwcmVmKSB7XG4gIHZhciBmbiwgdmFsO1xuICBpZiAocHJlZiA9PT0gJ3N0cmluZycgJiYgaXNDYWxsYWJsZShmbiA9IGlucHV0LnRvU3RyaW5nKSAmJiAhaXNPYmplY3QodmFsID0gY2FsbChmbiwgaW5wdXQpKSkgcmV0dXJuIHZhbDtcbiAgaWYgKGlzQ2FsbGFibGUoZm4gPSBpbnB1dC52YWx1ZU9mKSAmJiAhaXNPYmplY3QodmFsID0gY2FsbChmbiwgaW5wdXQpKSkgcmV0dXJuIHZhbDtcbiAgaWYgKHByZWYgIT09ICdzdHJpbmcnICYmIGlzQ2FsbGFibGUoZm4gPSBpbnB1dC50b1N0cmluZykgJiYgIWlzT2JqZWN0KHZhbCA9IGNhbGwoZm4sIGlucHV0KSkpIHJldHVybiB2YWw7XG4gIHRocm93IG5ldyAkVHlwZUVycm9yKFwiQ2FuJ3QgY29udmVydCBvYmplY3QgdG8gcHJpbWl0aXZlIHZhbHVlXCIpO1xufTtcbiIsICIndXNlIHN0cmljdCc7XG5tb2R1bGUuZXhwb3J0cyA9IGZhbHNlO1xuIiwgIid1c2Ugc3RyaWN0JztcbnZhciBnbG9iYWxUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbC10aGlzJyk7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy9uby1vYmplY3QtZGVmaW5lcHJvcGVydHkgLS0gc2FmZVxudmFyIGRlZmluZVByb3BlcnR5ID0gT2JqZWN0LmRlZmluZVByb3BlcnR5O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChrZXksIHZhbHVlKSB7XG4gIHRyeSB7XG4gICAgZGVmaW5lUHJvcGVydHkoZ2xvYmFsVGhpcywga2V5LCB7IHZhbHVlOiB2YWx1ZSwgY29uZmlndXJhYmxlOiB0cnVlLCB3cml0YWJsZTogdHJ1ZSB9KTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBnbG9iYWxUaGlzW2tleV0gPSB2YWx1ZTtcbiAgfSByZXR1cm4gdmFsdWU7XG59O1xuIiwgIid1c2Ugc3RyaWN0JztcbnZhciBJU19QVVJFID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLXB1cmUnKTtcbnZhciBnbG9iYWxUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbC10aGlzJyk7XG52YXIgZGVmaW5lR2xvYmFsUHJvcGVydHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVmaW5lLWdsb2JhbC1wcm9wZXJ0eScpO1xuXG52YXIgU0hBUkVEID0gJ19fY29yZS1qc19zaGFyZWRfXyc7XG52YXIgc3RvcmUgPSBtb2R1bGUuZXhwb3J0cyA9IGdsb2JhbFRoaXNbU0hBUkVEXSB8fCBkZWZpbmVHbG9iYWxQcm9wZXJ0eShTSEFSRUQsIHt9KTtcblxuKHN0b3JlLnZlcnNpb25zIHx8IChzdG9yZS52ZXJzaW9ucyA9IFtdKSkucHVzaCh7XG4gIHZlcnNpb246ICczLjQwLjAnLFxuICBtb2RlOiBJU19QVVJFID8gJ3B1cmUnIDogJ2dsb2JhbCcsXG4gIGNvcHlyaWdodDogJ8KpIDIwMTQtMjAyNSBEZW5pcyBQdXNoa2FyZXYgKHpsb2lyb2NrLnJ1KScsXG4gIGxpY2Vuc2U6ICdodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qcy9ibG9iL3YzLjQwLjAvTElDRU5TRScsXG4gIHNvdXJjZTogJ2h0dHBzOi8vZ2l0aHViLmNvbS96bG9pcm9jay9jb3JlLWpzJ1xufSk7XG4iLCAiJ3VzZSBzdHJpY3QnO1xudmFyIHN0b3JlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3NoYXJlZC1zdG9yZScpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChrZXksIHZhbHVlKSB7XG4gIHJldHVybiBzdG9yZVtrZXldIHx8IChzdG9yZVtrZXldID0gdmFsdWUgfHwge30pO1xufTtcbiIsICIndXNlIHN0cmljdCc7XG52YXIgaXNOdWxsT3JVbmRlZmluZWQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtbnVsbC1vci11bmRlZmluZWQnKTtcblxudmFyICRUeXBlRXJyb3IgPSBUeXBlRXJyb3I7XG5cbi8vIGBSZXF1aXJlT2JqZWN0Q29lcmNpYmxlYCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtcmVxdWlyZW9iamVjdGNvZXJjaWJsZVxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgaWYgKGlzTnVsbE9yVW5kZWZpbmVkKGl0KSkgdGhyb3cgbmV3ICRUeXBlRXJyb3IoXCJDYW4ndCBjYWxsIG1ldGhvZCBvbiBcIiArIGl0KTtcbiAgcmV0dXJuIGl0O1xufTtcbiIsICIndXNlIHN0cmljdCc7XG52YXIgcmVxdWlyZU9iamVjdENvZXJjaWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZXF1aXJlLW9iamVjdC1jb2VyY2libGUnKTtcblxudmFyICRPYmplY3QgPSBPYmplY3Q7XG5cbi8vIGBUb09iamVjdGAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXRvb2JqZWN0XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChhcmd1bWVudCkge1xuICByZXR1cm4gJE9iamVjdChyZXF1aXJlT2JqZWN0Q29lcmNpYmxlKGFyZ3VtZW50KSk7XG59O1xuIiwgIid1c2Ugc3RyaWN0JztcbnZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMnKTtcbnZhciB0b09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1vYmplY3QnKTtcblxudmFyIGhhc093blByb3BlcnR5ID0gdW5jdXJyeVRoaXMoe30uaGFzT3duUHJvcGVydHkpO1xuXG4vLyBgSGFzT3duUHJvcGVydHlgIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1oYXNvd25wcm9wZXJ0eVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzL25vLW9iamVjdC1oYXNvd24gLS0gc2FmZVxubW9kdWxlLmV4cG9ydHMgPSBPYmplY3QuaGFzT3duIHx8IGZ1bmN0aW9uIGhhc093bihpdCwga2V5KSB7XG4gIHJldHVybiBoYXNPd25Qcm9wZXJ0eSh0b09iamVjdChpdCksIGtleSk7XG59O1xuIiwgIid1c2Ugc3RyaWN0JztcbnZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMnKTtcblxudmFyIGlkID0gMDtcbnZhciBwb3N0Zml4ID0gTWF0aC5yYW5kb20oKTtcbnZhciB0b1N0cmluZyA9IHVuY3VycnlUaGlzKDEuMC50b1N0cmluZyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGtleSkge1xuICByZXR1cm4gJ1N5bWJvbCgnICsgKGtleSA9PT0gdW5kZWZpbmVkID8gJycgOiBrZXkpICsgJylfJyArIHRvU3RyaW5nKCsraWQgKyBwb3N0Zml4LCAzNik7XG59O1xuIiwgIid1c2Ugc3RyaWN0JztcbnZhciBnbG9iYWxUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbC10aGlzJyk7XG52YXIgc2hhcmVkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3NoYXJlZCcpO1xudmFyIGhhc093biA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9oYXMtb3duLXByb3BlcnR5Jyk7XG52YXIgdWlkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3VpZCcpO1xudmFyIE5BVElWRV9TWU1CT0wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc3ltYm9sLWNvbnN0cnVjdG9yLWRldGVjdGlvbicpO1xudmFyIFVTRV9TWU1CT0xfQVNfVUlEID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3VzZS1zeW1ib2wtYXMtdWlkJyk7XG5cbnZhciBTeW1ib2wgPSBnbG9iYWxUaGlzLlN5bWJvbDtcbnZhciBXZWxsS25vd25TeW1ib2xzU3RvcmUgPSBzaGFyZWQoJ3drcycpO1xudmFyIGNyZWF0ZVdlbGxLbm93blN5bWJvbCA9IFVTRV9TWU1CT0xfQVNfVUlEID8gU3ltYm9sWydmb3InXSB8fCBTeW1ib2wgOiBTeW1ib2wgJiYgU3ltYm9sLndpdGhvdXRTZXR0ZXIgfHwgdWlkO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChuYW1lKSB7XG4gIGlmICghaGFzT3duKFdlbGxLbm93blN5bWJvbHNTdG9yZSwgbmFtZSkpIHtcbiAgICBXZWxsS25vd25TeW1ib2xzU3RvcmVbbmFtZV0gPSBOQVRJVkVfU1lNQk9MICYmIGhhc093bihTeW1ib2wsIG5hbWUpXG4gICAgICA/IFN5bWJvbFtuYW1lXVxuICAgICAgOiBjcmVhdGVXZWxsS25vd25TeW1ib2woJ1N5bWJvbC4nICsgbmFtZSk7XG4gIH0gcmV0dXJuIFdlbGxLbm93blN5bWJvbHNTdG9yZVtuYW1lXTtcbn07XG4iLCAiJ3VzZSBzdHJpY3QnO1xudmFyIGNhbGwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tY2FsbCcpO1xudmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLW9iamVjdCcpO1xudmFyIGlzU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLXN5bWJvbCcpO1xudmFyIGdldE1ldGhvZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nZXQtbWV0aG9kJyk7XG52YXIgb3JkaW5hcnlUb1ByaW1pdGl2ZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vcmRpbmFyeS10by1wcmltaXRpdmUnKTtcbnZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcblxudmFyICRUeXBlRXJyb3IgPSBUeXBlRXJyb3I7XG52YXIgVE9fUFJJTUlUSVZFID0gd2VsbEtub3duU3ltYm9sKCd0b1ByaW1pdGl2ZScpO1xuXG4vLyBgVG9QcmltaXRpdmVgIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy10b3ByaW1pdGl2ZVxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaW5wdXQsIHByZWYpIHtcbiAgaWYgKCFpc09iamVjdChpbnB1dCkgfHwgaXNTeW1ib2woaW5wdXQpKSByZXR1cm4gaW5wdXQ7XG4gIHZhciBleG90aWNUb1ByaW0gPSBnZXRNZXRob2QoaW5wdXQsIFRPX1BSSU1JVElWRSk7XG4gIHZhciByZXN1bHQ7XG4gIGlmIChleG90aWNUb1ByaW0pIHtcbiAgICBpZiAocHJlZiA9PT0gdW5kZWZpbmVkKSBwcmVmID0gJ2RlZmF1bHQnO1xuICAgIHJlc3VsdCA9IGNhbGwoZXhvdGljVG9QcmltLCBpbnB1dCwgcHJlZik7XG4gICAgaWYgKCFpc09iamVjdChyZXN1bHQpIHx8IGlzU3ltYm9sKHJlc3VsdCkpIHJldHVybiByZXN1bHQ7XG4gICAgdGhyb3cgbmV3ICRUeXBlRXJyb3IoXCJDYW4ndCBjb252ZXJ0IG9iamVjdCB0byBwcmltaXRpdmUgdmFsdWVcIik7XG4gIH1cbiAgaWYgKHByZWYgPT09IHVuZGVmaW5lZCkgcHJlZiA9ICdudW1iZXInO1xuICByZXR1cm4gb3JkaW5hcnlUb1ByaW1pdGl2ZShpbnB1dCwgcHJlZik7XG59O1xuIiwgIid1c2Ugc3RyaWN0JztcbnZhciB0b1ByaW1pdGl2ZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1wcmltaXRpdmUnKTtcbnZhciBpc1N5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1zeW1ib2wnKTtcblxuLy8gYFRvUHJvcGVydHlLZXlgIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy10b3Byb3BlcnR5a2V5XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChhcmd1bWVudCkge1xuICB2YXIga2V5ID0gdG9QcmltaXRpdmUoYXJndW1lbnQsICdzdHJpbmcnKTtcbiAgcmV0dXJuIGlzU3ltYm9sKGtleSkgPyBrZXkgOiBrZXkgKyAnJztcbn07XG4iLCAiJ3VzZSBzdHJpY3QnO1xudmFyIERFU0NSSVBUT1JTID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Rlc2NyaXB0b3JzJyk7XG52YXIgSUU4X0RPTV9ERUZJTkUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaWU4LWRvbS1kZWZpbmUnKTtcbnZhciBWOF9QUk9UT1RZUEVfREVGSU5FX0JVRyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy92OC1wcm90b3R5cGUtZGVmaW5lLWJ1ZycpO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLW9iamVjdCcpO1xudmFyIHRvUHJvcGVydHlLZXkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tcHJvcGVydHkta2V5Jyk7XG5cbnZhciAkVHlwZUVycm9yID0gVHlwZUVycm9yO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzL25vLW9iamVjdC1kZWZpbmVwcm9wZXJ0eSAtLSBzYWZlXG52YXIgJGRlZmluZVByb3BlcnR5ID0gT2JqZWN0LmRlZmluZVByb3BlcnR5O1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzL25vLW9iamVjdC1nZXRvd25wcm9wZXJ0eWRlc2NyaXB0b3IgLS0gc2FmZVxudmFyICRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO1xudmFyIEVOVU1FUkFCTEUgPSAnZW51bWVyYWJsZSc7XG52YXIgQ09ORklHVVJBQkxFID0gJ2NvbmZpZ3VyYWJsZSc7XG52YXIgV1JJVEFCTEUgPSAnd3JpdGFibGUnO1xuXG4vLyBgT2JqZWN0LmRlZmluZVByb3BlcnR5YCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtb2JqZWN0LmRlZmluZXByb3BlcnR5XG5leHBvcnRzLmYgPSBERVNDUklQVE9SUyA/IFY4X1BST1RPVFlQRV9ERUZJTkVfQlVHID8gZnVuY3Rpb24gZGVmaW5lUHJvcGVydHkoTywgUCwgQXR0cmlidXRlcykge1xuICBhbk9iamVjdChPKTtcbiAgUCA9IHRvUHJvcGVydHlLZXkoUCk7XG4gIGFuT2JqZWN0KEF0dHJpYnV0ZXMpO1xuICBpZiAodHlwZW9mIE8gPT09ICdmdW5jdGlvbicgJiYgUCA9PT0gJ3Byb3RvdHlwZScgJiYgJ3ZhbHVlJyBpbiBBdHRyaWJ1dGVzICYmIFdSSVRBQkxFIGluIEF0dHJpYnV0ZXMgJiYgIUF0dHJpYnV0ZXNbV1JJVEFCTEVdKSB7XG4gICAgdmFyIGN1cnJlbnQgPSAkZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKE8sIFApO1xuICAgIGlmIChjdXJyZW50ICYmIGN1cnJlbnRbV1JJVEFCTEVdKSB7XG4gICAgICBPW1BdID0gQXR0cmlidXRlcy52YWx1ZTtcbiAgICAgIEF0dHJpYnV0ZXMgPSB7XG4gICAgICAgIGNvbmZpZ3VyYWJsZTogQ09ORklHVVJBQkxFIGluIEF0dHJpYnV0ZXMgPyBBdHRyaWJ1dGVzW0NPTkZJR1VSQUJMRV0gOiBjdXJyZW50W0NPTkZJR1VSQUJMRV0sXG4gICAgICAgIGVudW1lcmFibGU6IEVOVU1FUkFCTEUgaW4gQXR0cmlidXRlcyA/IEF0dHJpYnV0ZXNbRU5VTUVSQUJMRV0gOiBjdXJyZW50W0VOVU1FUkFCTEVdLFxuICAgICAgICB3cml0YWJsZTogZmFsc2VcbiAgICAgIH07XG4gICAgfVxuICB9IHJldHVybiAkZGVmaW5lUHJvcGVydHkoTywgUCwgQXR0cmlidXRlcyk7XG59IDogJGRlZmluZVByb3BlcnR5IDogZnVuY3Rpb24gZGVmaW5lUHJvcGVydHkoTywgUCwgQXR0cmlidXRlcykge1xuICBhbk9iamVjdChPKTtcbiAgUCA9IHRvUHJvcGVydHlLZXkoUCk7XG4gIGFuT2JqZWN0KEF0dHJpYnV0ZXMpO1xuICBpZiAoSUU4X0RPTV9ERUZJTkUpIHRyeSB7XG4gICAgcmV0dXJuICRkZWZpbmVQcm9wZXJ0eShPLCBQLCBBdHRyaWJ1dGVzKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHsgLyogZW1wdHkgKi8gfVxuICBpZiAoJ2dldCcgaW4gQXR0cmlidXRlcyB8fCAnc2V0JyBpbiBBdHRyaWJ1dGVzKSB0aHJvdyBuZXcgJFR5cGVFcnJvcignQWNjZXNzb3JzIG5vdCBzdXBwb3J0ZWQnKTtcbiAgaWYgKCd2YWx1ZScgaW4gQXR0cmlidXRlcykgT1tQXSA9IEF0dHJpYnV0ZXMudmFsdWU7XG4gIHJldHVybiBPO1xufTtcbiIsICIndXNlIHN0cmljdCc7XG52YXIgREVTQ1JJUFRPUlMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVzY3JpcHRvcnMnKTtcbnZhciBoYXNPd24gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaGFzLW93bi1wcm9wZXJ0eScpO1xuXG52YXIgRnVuY3Rpb25Qcm90b3R5cGUgPSBGdW5jdGlvbi5wcm90b3R5cGU7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tb2JqZWN0LWdldG93bnByb3BlcnR5ZGVzY3JpcHRvciAtLSBzYWZlXG52YXIgZ2V0RGVzY3JpcHRvciA9IERFU0NSSVBUT1JTICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7XG5cbnZhciBFWElTVFMgPSBoYXNPd24oRnVuY3Rpb25Qcm90b3R5cGUsICduYW1lJyk7XG4vLyBhZGRpdGlvbmFsIHByb3RlY3Rpb24gZnJvbSBtaW5pZmllZCAvIG1hbmdsZWQgLyBkcm9wcGVkIGZ1bmN0aW9uIG5hbWVzXG52YXIgUFJPUEVSID0gRVhJU1RTICYmIChmdW5jdGlvbiBzb21ldGhpbmcoKSB7IC8qIGVtcHR5ICovIH0pLm5hbWUgPT09ICdzb21ldGhpbmcnO1xudmFyIENPTkZJR1VSQUJMRSA9IEVYSVNUUyAmJiAoIURFU0NSSVBUT1JTIHx8IChERVNDUklQVE9SUyAmJiBnZXREZXNjcmlwdG9yKEZ1bmN0aW9uUHJvdG90eXBlLCAnbmFtZScpLmNvbmZpZ3VyYWJsZSkpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgRVhJU1RTOiBFWElTVFMsXG4gIFBST1BFUjogUFJPUEVSLFxuICBDT05GSUdVUkFCTEU6IENPTkZJR1VSQUJMRVxufTtcbiIsICIndXNlIHN0cmljdCc7XG52YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzJyk7XG52YXIgaXNDYWxsYWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1jYWxsYWJsZScpO1xudmFyIHN0b3JlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3NoYXJlZC1zdG9yZScpO1xuXG52YXIgZnVuY3Rpb25Ub1N0cmluZyA9IHVuY3VycnlUaGlzKEZ1bmN0aW9uLnRvU3RyaW5nKTtcblxuLy8gdGhpcyBoZWxwZXIgYnJva2VuIGluIGBjb3JlLWpzQDMuNC4xLTMuNC40YCwgc28gd2UgY2FuJ3QgdXNlIGBzaGFyZWRgIGhlbHBlclxuaWYgKCFpc0NhbGxhYmxlKHN0b3JlLmluc3BlY3RTb3VyY2UpKSB7XG4gIHN0b3JlLmluc3BlY3RTb3VyY2UgPSBmdW5jdGlvbiAoaXQpIHtcbiAgICByZXR1cm4gZnVuY3Rpb25Ub1N0cmluZyhpdCk7XG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gc3RvcmUuaW5zcGVjdFNvdXJjZTtcbiIsICIndXNlIHN0cmljdCc7XG52YXIgZ2xvYmFsVGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwtdGhpcycpO1xudmFyIGlzQ2FsbGFibGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtY2FsbGFibGUnKTtcblxudmFyIFdlYWtNYXAgPSBnbG9iYWxUaGlzLldlYWtNYXA7XG5cbm1vZHVsZS5leHBvcnRzID0gaXNDYWxsYWJsZShXZWFrTWFwKSAmJiAvbmF0aXZlIGNvZGUvLnRlc3QoU3RyaW5nKFdlYWtNYXApKTtcbiIsICIndXNlIHN0cmljdCc7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChiaXRtYXAsIHZhbHVlKSB7XG4gIHJldHVybiB7XG4gICAgZW51bWVyYWJsZTogIShiaXRtYXAgJiAxKSxcbiAgICBjb25maWd1cmFibGU6ICEoYml0bWFwICYgMiksXG4gICAgd3JpdGFibGU6ICEoYml0bWFwICYgNCksXG4gICAgdmFsdWU6IHZhbHVlXG4gIH07XG59O1xuIiwgIid1c2Ugc3RyaWN0JztcbnZhciBERVNDUklQVE9SUyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZXNjcmlwdG9ycycpO1xudmFyIGRlZmluZVByb3BlcnR5TW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1kZWZpbmUtcHJvcGVydHknKTtcbnZhciBjcmVhdGVQcm9wZXJ0eURlc2NyaXB0b3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY3JlYXRlLXByb3BlcnR5LWRlc2NyaXB0b3InKTtcblxubW9kdWxlLmV4cG9ydHMgPSBERVNDUklQVE9SUyA/IGZ1bmN0aW9uIChvYmplY3QsIGtleSwgdmFsdWUpIHtcbiAgcmV0dXJuIGRlZmluZVByb3BlcnR5TW9kdWxlLmYob2JqZWN0LCBrZXksIGNyZWF0ZVByb3BlcnR5RGVzY3JpcHRvcigxLCB2YWx1ZSkpO1xufSA6IGZ1bmN0aW9uIChvYmplY3QsIGtleSwgdmFsdWUpIHtcbiAgb2JqZWN0W2tleV0gPSB2YWx1ZTtcbiAgcmV0dXJuIG9iamVjdDtcbn07XG4iLCAiJ3VzZSBzdHJpY3QnO1xudmFyIHNoYXJlZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zaGFyZWQnKTtcbnZhciB1aWQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdWlkJyk7XG5cbnZhciBrZXlzID0gc2hhcmVkKCdrZXlzJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGtleSkge1xuICByZXR1cm4ga2V5c1trZXldIHx8IChrZXlzW2tleV0gPSB1aWQoa2V5KSk7XG59O1xuIiwgIid1c2Ugc3RyaWN0Jztcbm1vZHVsZS5leHBvcnRzID0ge307XG4iLCAiJ3VzZSBzdHJpY3QnO1xudmFyIE5BVElWRV9XRUFLX01BUCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWFrLW1hcC1iYXNpYy1kZXRlY3Rpb24nKTtcbnZhciBnbG9iYWxUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbC10aGlzJyk7XG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtb2JqZWN0Jyk7XG52YXIgY3JlYXRlTm9uRW51bWVyYWJsZVByb3BlcnR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NyZWF0ZS1ub24tZW51bWVyYWJsZS1wcm9wZXJ0eScpO1xudmFyIGhhc093biA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9oYXMtb3duLXByb3BlcnR5Jyk7XG52YXIgc2hhcmVkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3NoYXJlZC1zdG9yZScpO1xudmFyIHNoYXJlZEtleSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zaGFyZWQta2V5Jyk7XG52YXIgaGlkZGVuS2V5cyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9oaWRkZW4ta2V5cycpO1xuXG52YXIgT0JKRUNUX0FMUkVBRFlfSU5JVElBTElaRUQgPSAnT2JqZWN0IGFscmVhZHkgaW5pdGlhbGl6ZWQnO1xudmFyIFR5cGVFcnJvciA9IGdsb2JhbFRoaXMuVHlwZUVycm9yO1xudmFyIFdlYWtNYXAgPSBnbG9iYWxUaGlzLldlYWtNYXA7XG52YXIgc2V0LCBnZXQsIGhhcztcblxudmFyIGVuZm9yY2UgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIGhhcyhpdCkgPyBnZXQoaXQpIDogc2V0KGl0LCB7fSk7XG59O1xuXG52YXIgZ2V0dGVyRm9yID0gZnVuY3Rpb24gKFRZUEUpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIChpdCkge1xuICAgIHZhciBzdGF0ZTtcbiAgICBpZiAoIWlzT2JqZWN0KGl0KSB8fCAoc3RhdGUgPSBnZXQoaXQpKS50eXBlICE9PSBUWVBFKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdJbmNvbXBhdGlibGUgcmVjZWl2ZXIsICcgKyBUWVBFICsgJyByZXF1aXJlZCcpO1xuICAgIH0gcmV0dXJuIHN0YXRlO1xuICB9O1xufTtcblxuaWYgKE5BVElWRV9XRUFLX01BUCB8fCBzaGFyZWQuc3RhdGUpIHtcbiAgdmFyIHN0b3JlID0gc2hhcmVkLnN0YXRlIHx8IChzaGFyZWQuc3RhdGUgPSBuZXcgV2Vha01hcCgpKTtcbiAgLyogZXNsaW50LWRpc2FibGUgbm8tc2VsZi1hc3NpZ24gLS0gcHJvdG90eXBlIG1ldGhvZHMgcHJvdGVjdGlvbiAqL1xuICBzdG9yZS5nZXQgPSBzdG9yZS5nZXQ7XG4gIHN0b3JlLmhhcyA9IHN0b3JlLmhhcztcbiAgc3RvcmUuc2V0ID0gc3RvcmUuc2V0O1xuICAvKiBlc2xpbnQtZW5hYmxlIG5vLXNlbGYtYXNzaWduIC0tIHByb3RvdHlwZSBtZXRob2RzIHByb3RlY3Rpb24gKi9cbiAgc2V0ID0gZnVuY3Rpb24gKGl0LCBtZXRhZGF0YSkge1xuICAgIGlmIChzdG9yZS5oYXMoaXQpKSB0aHJvdyBuZXcgVHlwZUVycm9yKE9CSkVDVF9BTFJFQURZX0lOSVRJQUxJWkVEKTtcbiAgICBtZXRhZGF0YS5mYWNhZGUgPSBpdDtcbiAgICBzdG9yZS5zZXQoaXQsIG1ldGFkYXRhKTtcbiAgICByZXR1cm4gbWV0YWRhdGE7XG4gIH07XG4gIGdldCA9IGZ1bmN0aW9uIChpdCkge1xuICAgIHJldHVybiBzdG9yZS5nZXQoaXQpIHx8IHt9O1xuICB9O1xuICBoYXMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgICByZXR1cm4gc3RvcmUuaGFzKGl0KTtcbiAgfTtcbn0gZWxzZSB7XG4gIHZhciBTVEFURSA9IHNoYXJlZEtleSgnc3RhdGUnKTtcbiAgaGlkZGVuS2V5c1tTVEFURV0gPSB0cnVlO1xuICBzZXQgPSBmdW5jdGlvbiAoaXQsIG1ldGFkYXRhKSB7XG4gICAgaWYgKGhhc093bihpdCwgU1RBVEUpKSB0aHJvdyBuZXcgVHlwZUVycm9yKE9CSkVDVF9BTFJFQURZX0lOSVRJQUxJWkVEKTtcbiAgICBtZXRhZGF0YS5mYWNhZGUgPSBpdDtcbiAgICBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkoaXQsIFNUQVRFLCBtZXRhZGF0YSk7XG4gICAgcmV0dXJuIG1ldGFkYXRhO1xuICB9O1xuICBnZXQgPSBmdW5jdGlvbiAoaXQpIHtcbiAgICByZXR1cm4gaGFzT3duKGl0LCBTVEFURSkgPyBpdFtTVEFURV0gOiB7fTtcbiAgfTtcbiAgaGFzID0gZnVuY3Rpb24gKGl0KSB7XG4gICAgcmV0dXJuIGhhc093bihpdCwgU1RBVEUpO1xuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgc2V0OiBzZXQsXG4gIGdldDogZ2V0LFxuICBoYXM6IGhhcyxcbiAgZW5mb3JjZTogZW5mb3JjZSxcbiAgZ2V0dGVyRm9yOiBnZXR0ZXJGb3Jcbn07XG4iLCAiJ3VzZSBzdHJpY3QnO1xudmFyIHVuY3VycnlUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLXVuY3VycnktdGhpcycpO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG52YXIgaXNDYWxsYWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1jYWxsYWJsZScpO1xudmFyIGhhc093biA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9oYXMtb3duLXByb3BlcnR5Jyk7XG52YXIgREVTQ1JJUFRPUlMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVzY3JpcHRvcnMnKTtcbnZhciBDT05GSUdVUkFCTEVfRlVOQ1RJT05fTkFNRSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi1uYW1lJykuQ09ORklHVVJBQkxFO1xudmFyIGluc3BlY3RTb3VyY2UgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaW5zcGVjdC1zb3VyY2UnKTtcbnZhciBJbnRlcm5hbFN0YXRlTW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ludGVybmFsLXN0YXRlJyk7XG5cbnZhciBlbmZvcmNlSW50ZXJuYWxTdGF0ZSA9IEludGVybmFsU3RhdGVNb2R1bGUuZW5mb3JjZTtcbnZhciBnZXRJbnRlcm5hbFN0YXRlID0gSW50ZXJuYWxTdGF0ZU1vZHVsZS5nZXQ7XG52YXIgJFN0cmluZyA9IFN0cmluZztcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy9uby1vYmplY3QtZGVmaW5lcHJvcGVydHkgLS0gc2FmZVxudmFyIGRlZmluZVByb3BlcnR5ID0gT2JqZWN0LmRlZmluZVByb3BlcnR5O1xudmFyIHN0cmluZ1NsaWNlID0gdW5jdXJyeVRoaXMoJycuc2xpY2UpO1xudmFyIHJlcGxhY2UgPSB1bmN1cnJ5VGhpcygnJy5yZXBsYWNlKTtcbnZhciBqb2luID0gdW5jdXJyeVRoaXMoW10uam9pbik7XG5cbnZhciBDT05GSUdVUkFCTEVfTEVOR1RIID0gREVTQ1JJUFRPUlMgJiYgIWZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIGRlZmluZVByb3BlcnR5KGZ1bmN0aW9uICgpIHsgLyogZW1wdHkgKi8gfSwgJ2xlbmd0aCcsIHsgdmFsdWU6IDggfSkubGVuZ3RoICE9PSA4O1xufSk7XG5cbnZhciBURU1QTEFURSA9IFN0cmluZyhTdHJpbmcpLnNwbGl0KCdTdHJpbmcnKTtcblxudmFyIG1ha2VCdWlsdEluID0gbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAodmFsdWUsIG5hbWUsIG9wdGlvbnMpIHtcbiAgaWYgKHN0cmluZ1NsaWNlKCRTdHJpbmcobmFtZSksIDAsIDcpID09PSAnU3ltYm9sKCcpIHtcbiAgICBuYW1lID0gJ1snICsgcmVwbGFjZSgkU3RyaW5nKG5hbWUpLCAvXlN5bWJvbFxcKChbXildKilcXCkuKiQvLCAnJDEnKSArICddJztcbiAgfVxuICBpZiAob3B0aW9ucyAmJiBvcHRpb25zLmdldHRlcikgbmFtZSA9ICdnZXQgJyArIG5hbWU7XG4gIGlmIChvcHRpb25zICYmIG9wdGlvbnMuc2V0dGVyKSBuYW1lID0gJ3NldCAnICsgbmFtZTtcbiAgaWYgKCFoYXNPd24odmFsdWUsICduYW1lJykgfHwgKENPTkZJR1VSQUJMRV9GVU5DVElPTl9OQU1FICYmIHZhbHVlLm5hbWUgIT09IG5hbWUpKSB7XG4gICAgaWYgKERFU0NSSVBUT1JTKSBkZWZpbmVQcm9wZXJ0eSh2YWx1ZSwgJ25hbWUnLCB7IHZhbHVlOiBuYW1lLCBjb25maWd1cmFibGU6IHRydWUgfSk7XG4gICAgZWxzZSB2YWx1ZS5uYW1lID0gbmFtZTtcbiAgfVxuICBpZiAoQ09ORklHVVJBQkxFX0xFTkdUSCAmJiBvcHRpb25zICYmIGhhc093bihvcHRpb25zLCAnYXJpdHknKSAmJiB2YWx1ZS5sZW5ndGggIT09IG9wdGlvbnMuYXJpdHkpIHtcbiAgICBkZWZpbmVQcm9wZXJ0eSh2YWx1ZSwgJ2xlbmd0aCcsIHsgdmFsdWU6IG9wdGlvbnMuYXJpdHkgfSk7XG4gIH1cbiAgdHJ5IHtcbiAgICBpZiAob3B0aW9ucyAmJiBoYXNPd24ob3B0aW9ucywgJ2NvbnN0cnVjdG9yJykgJiYgb3B0aW9ucy5jb25zdHJ1Y3Rvcikge1xuICAgICAgaWYgKERFU0NSSVBUT1JTKSBkZWZpbmVQcm9wZXJ0eSh2YWx1ZSwgJ3Byb3RvdHlwZScsIHsgd3JpdGFibGU6IGZhbHNlIH0pO1xuICAgIC8vIGluIFY4IH4gQ2hyb21lIDUzLCBwcm90b3R5cGVzIG9mIHNvbWUgbWV0aG9kcywgbGlrZSBgQXJyYXkucHJvdG90eXBlLnZhbHVlc2AsIGFyZSBub24td3JpdGFibGVcbiAgICB9IGVsc2UgaWYgKHZhbHVlLnByb3RvdHlwZSkgdmFsdWUucHJvdG90eXBlID0gdW5kZWZpbmVkO1xuICB9IGNhdGNoIChlcnJvcikgeyAvKiBlbXB0eSAqLyB9XG4gIHZhciBzdGF0ZSA9IGVuZm9yY2VJbnRlcm5hbFN0YXRlKHZhbHVlKTtcbiAgaWYgKCFoYXNPd24oc3RhdGUsICdzb3VyY2UnKSkge1xuICAgIHN0YXRlLnNvdXJjZSA9IGpvaW4oVEVNUExBVEUsIHR5cGVvZiBuYW1lID09ICdzdHJpbmcnID8gbmFtZSA6ICcnKTtcbiAgfSByZXR1cm4gdmFsdWU7XG59O1xuXG4vLyBhZGQgZmFrZSBGdW5jdGlvbiN0b1N0cmluZyBmb3IgY29ycmVjdCB3b3JrIHdyYXBwZWQgbWV0aG9kcyAvIGNvbnN0cnVjdG9ycyB3aXRoIG1ldGhvZHMgbGlrZSBMb0Rhc2ggaXNOYXRpdmVcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1leHRlbmQtbmF0aXZlIC0tIHJlcXVpcmVkXG5GdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmcgPSBtYWtlQnVpbHRJbihmdW5jdGlvbiB0b1N0cmluZygpIHtcbiAgcmV0dXJuIGlzQ2FsbGFibGUodGhpcykgJiYgZ2V0SW50ZXJuYWxTdGF0ZSh0aGlzKS5zb3VyY2UgfHwgaW5zcGVjdFNvdXJjZSh0aGlzKTtcbn0sICd0b1N0cmluZycpO1xuIiwgIid1c2Ugc3RyaWN0JztcbnZhciBpc0NhbGxhYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWNhbGxhYmxlJyk7XG52YXIgZGVmaW5lUHJvcGVydHlNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWRlZmluZS1wcm9wZXJ0eScpO1xudmFyIG1ha2VCdWlsdEluID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL21ha2UtYnVpbHQtaW4nKTtcbnZhciBkZWZpbmVHbG9iYWxQcm9wZXJ0eSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZWZpbmUtZ2xvYmFsLXByb3BlcnR5Jyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKE8sIGtleSwgdmFsdWUsIG9wdGlvbnMpIHtcbiAgaWYgKCFvcHRpb25zKSBvcHRpb25zID0ge307XG4gIHZhciBzaW1wbGUgPSBvcHRpb25zLmVudW1lcmFibGU7XG4gIHZhciBuYW1lID0gb3B0aW9ucy5uYW1lICE9PSB1bmRlZmluZWQgPyBvcHRpb25zLm5hbWUgOiBrZXk7XG4gIGlmIChpc0NhbGxhYmxlKHZhbHVlKSkgbWFrZUJ1aWx0SW4odmFsdWUsIG5hbWUsIG9wdGlvbnMpO1xuICBpZiAob3B0aW9ucy5nbG9iYWwpIHtcbiAgICBpZiAoc2ltcGxlKSBPW2tleV0gPSB2YWx1ZTtcbiAgICBlbHNlIGRlZmluZUdsb2JhbFByb3BlcnR5KGtleSwgdmFsdWUpO1xuICB9IGVsc2Uge1xuICAgIHRyeSB7XG4gICAgICBpZiAoIW9wdGlvbnMudW5zYWZlKSBkZWxldGUgT1trZXldO1xuICAgICAgZWxzZSBpZiAoT1trZXldKSBzaW1wbGUgPSB0cnVlO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7IC8qIGVtcHR5ICovIH1cbiAgICBpZiAoc2ltcGxlKSBPW2tleV0gPSB2YWx1ZTtcbiAgICBlbHNlIGRlZmluZVByb3BlcnR5TW9kdWxlLmYoTywga2V5LCB7XG4gICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogIW9wdGlvbnMubm9uQ29uZmlndXJhYmxlLFxuICAgICAgd3JpdGFibGU6ICFvcHRpb25zLm5vbldyaXRhYmxlXG4gICAgfSk7XG4gIH0gcmV0dXJuIE87XG59O1xuIiwgIid1c2Ugc3RyaWN0JztcbnZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcblxudmFyIFRPX1NUUklOR19UQUcgPSB3ZWxsS25vd25TeW1ib2woJ3RvU3RyaW5nVGFnJyk7XG52YXIgdGVzdCA9IHt9O1xuXG50ZXN0W1RPX1NUUklOR19UQUddID0gJ3onO1xuXG5tb2R1bGUuZXhwb3J0cyA9IFN0cmluZyh0ZXN0KSA9PT0gJ1tvYmplY3Qgel0nO1xuIiwgIid1c2Ugc3RyaWN0JztcbnZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMnKTtcblxudmFyIHRvU3RyaW5nID0gdW5jdXJyeVRoaXMoe30udG9TdHJpbmcpO1xudmFyIHN0cmluZ1NsaWNlID0gdW5jdXJyeVRoaXMoJycuc2xpY2UpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gc3RyaW5nU2xpY2UodG9TdHJpbmcoaXQpLCA4LCAtMSk7XG59O1xuIiwgIid1c2Ugc3RyaWN0JztcbnZhciBUT19TVFJJTkdfVEFHX1NVUFBPUlQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tc3RyaW5nLXRhZy1zdXBwb3J0Jyk7XG52YXIgaXNDYWxsYWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1jYWxsYWJsZScpO1xudmFyIGNsYXNzb2ZSYXcgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY2xhc3NvZi1yYXcnKTtcbnZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcblxudmFyIFRPX1NUUklOR19UQUcgPSB3ZWxsS25vd25TeW1ib2woJ3RvU3RyaW5nVGFnJyk7XG52YXIgJE9iamVjdCA9IE9iamVjdDtcblxuLy8gRVMzIHdyb25nIGhlcmVcbnZhciBDT1JSRUNUX0FSR1VNRU5UUyA9IGNsYXNzb2ZSYXcoZnVuY3Rpb24gKCkgeyByZXR1cm4gYXJndW1lbnRzOyB9KCkpID09PSAnQXJndW1lbnRzJztcblxuLy8gZmFsbGJhY2sgZm9yIElFMTEgU2NyaXB0IEFjY2VzcyBEZW5pZWQgZXJyb3JcbnZhciB0cnlHZXQgPSBmdW5jdGlvbiAoaXQsIGtleSkge1xuICB0cnkge1xuICAgIHJldHVybiBpdFtrZXldO1xuICB9IGNhdGNoIChlcnJvcikgeyAvKiBlbXB0eSAqLyB9XG59O1xuXG4vLyBnZXR0aW5nIHRhZyBmcm9tIEVTNisgYE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmdgXG5tb2R1bGUuZXhwb3J0cyA9IFRPX1NUUklOR19UQUdfU1VQUE9SVCA/IGNsYXNzb2ZSYXcgOiBmdW5jdGlvbiAoaXQpIHtcbiAgdmFyIE8sIHRhZywgcmVzdWx0O1xuICByZXR1cm4gaXQgPT09IHVuZGVmaW5lZCA/ICdVbmRlZmluZWQnIDogaXQgPT09IG51bGwgPyAnTnVsbCdcbiAgICAvLyBAQHRvU3RyaW5nVGFnIGNhc2VcbiAgICA6IHR5cGVvZiAodGFnID0gdHJ5R2V0KE8gPSAkT2JqZWN0KGl0KSwgVE9fU1RSSU5HX1RBRykpID09ICdzdHJpbmcnID8gdGFnXG4gICAgLy8gYnVpbHRpblRhZyBjYXNlXG4gICAgOiBDT1JSRUNUX0FSR1VNRU5UUyA/IGNsYXNzb2ZSYXcoTylcbiAgICAvLyBFUzMgYXJndW1lbnRzIGZhbGxiYWNrXG4gICAgOiAocmVzdWx0ID0gY2xhc3NvZlJhdyhPKSkgPT09ICdPYmplY3QnICYmIGlzQ2FsbGFibGUoTy5jYWxsZWUpID8gJ0FyZ3VtZW50cycgOiByZXN1bHQ7XG59O1xuIiwgIid1c2Ugc3RyaWN0JztcbnZhciBjbGFzc29mID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NsYXNzb2YnKTtcblxudmFyICRTdHJpbmcgPSBTdHJpbmc7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGFyZ3VtZW50KSB7XG4gIGlmIChjbGFzc29mKGFyZ3VtZW50KSA9PT0gJ1N5bWJvbCcpIHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjb252ZXJ0IGEgU3ltYm9sIHZhbHVlIHRvIGEgc3RyaW5nJyk7XG4gIHJldHVybiAkU3RyaW5nKGFyZ3VtZW50KTtcbn07XG4iLCAiJ3VzZSBzdHJpY3QnO1xudmFyICRUeXBlRXJyb3IgPSBUeXBlRXJyb3I7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKHBhc3NlZCwgcmVxdWlyZWQpIHtcbiAgaWYgKHBhc3NlZCA8IHJlcXVpcmVkKSB0aHJvdyBuZXcgJFR5cGVFcnJvcignTm90IGVub3VnaCBhcmd1bWVudHMnKTtcbiAgcmV0dXJuIHBhc3NlZDtcbn07XG4iLCAiJ3VzZSBzdHJpY3QnO1xudmFyIGRlZmluZUJ1aWx0SW4gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVmaW5lLWJ1aWx0LWluJyk7XG52YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzJyk7XG52YXIgdG9TdHJpbmcgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tc3RyaW5nJyk7XG52YXIgdmFsaWRhdGVBcmd1bWVudHNMZW5ndGggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdmFsaWRhdGUtYXJndW1lbnRzLWxlbmd0aCcpO1xuXG52YXIgJFVSTFNlYXJjaFBhcmFtcyA9IFVSTFNlYXJjaFBhcmFtcztcbnZhciBVUkxTZWFyY2hQYXJhbXNQcm90b3R5cGUgPSAkVVJMU2VhcmNoUGFyYW1zLnByb3RvdHlwZTtcbnZhciBhcHBlbmQgPSB1bmN1cnJ5VGhpcyhVUkxTZWFyY2hQYXJhbXNQcm90b3R5cGUuYXBwZW5kKTtcbnZhciAkZGVsZXRlID0gdW5jdXJyeVRoaXMoVVJMU2VhcmNoUGFyYW1zUHJvdG90eXBlWydkZWxldGUnXSk7XG52YXIgZm9yRWFjaCA9IHVuY3VycnlUaGlzKFVSTFNlYXJjaFBhcmFtc1Byb3RvdHlwZS5mb3JFYWNoKTtcbnZhciBwdXNoID0gdW5jdXJyeVRoaXMoW10ucHVzaCk7XG52YXIgcGFyYW1zID0gbmV3ICRVUkxTZWFyY2hQYXJhbXMoJ2E9MSZhPTImYj0zJyk7XG5cbnBhcmFtc1snZGVsZXRlJ10oJ2EnLCAxKTtcbi8vIGB1bmRlZmluZWRgIGNhc2UgaXMgYSBDaHJvbWl1bSAxMTcgYnVnXG4vLyBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvdjgvaXNzdWVzL2RldGFpbD9pZD0xNDIyMlxucGFyYW1zWydkZWxldGUnXSgnYicsIHVuZGVmaW5lZCk7XG5cbmlmIChwYXJhbXMgKyAnJyAhPT0gJ2E9MicpIHtcbiAgZGVmaW5lQnVpbHRJbihVUkxTZWFyY2hQYXJhbXNQcm90b3R5cGUsICdkZWxldGUnLCBmdW5jdGlvbiAobmFtZSAvKiAsIHZhbHVlICovKSB7XG4gICAgdmFyIGxlbmd0aCA9IGFyZ3VtZW50cy5sZW5ndGg7XG4gICAgdmFyICR2YWx1ZSA9IGxlbmd0aCA8IDIgPyB1bmRlZmluZWQgOiBhcmd1bWVudHNbMV07XG4gICAgaWYgKGxlbmd0aCAmJiAkdmFsdWUgPT09IHVuZGVmaW5lZCkgcmV0dXJuICRkZWxldGUodGhpcywgbmFtZSk7XG4gICAgdmFyIGVudHJpZXMgPSBbXTtcbiAgICBmb3JFYWNoKHRoaXMsIGZ1bmN0aW9uICh2LCBrKSB7IC8vIGFsc28gdmFsaWRhdGVzIGB0aGlzYFxuICAgICAgcHVzaChlbnRyaWVzLCB7IGtleTogaywgdmFsdWU6IHYgfSk7XG4gICAgfSk7XG4gICAgdmFsaWRhdGVBcmd1bWVudHNMZW5ndGgobGVuZ3RoLCAxKTtcbiAgICB2YXIga2V5ID0gdG9TdHJpbmcobmFtZSk7XG4gICAgdmFyIHZhbHVlID0gdG9TdHJpbmcoJHZhbHVlKTtcbiAgICB2YXIgaW5kZXggPSAwO1xuICAgIHZhciBkaW5kZXggPSAwO1xuICAgIHZhciBmb3VuZCA9IGZhbHNlO1xuICAgIHZhciBlbnRyaWVzTGVuZ3RoID0gZW50cmllcy5sZW5ndGg7XG4gICAgdmFyIGVudHJ5O1xuICAgIHdoaWxlIChpbmRleCA8IGVudHJpZXNMZW5ndGgpIHtcbiAgICAgIGVudHJ5ID0gZW50cmllc1tpbmRleCsrXTtcbiAgICAgIGlmIChmb3VuZCB8fCBlbnRyeS5rZXkgPT09IGtleSkge1xuICAgICAgICBmb3VuZCA9IHRydWU7XG4gICAgICAgICRkZWxldGUodGhpcywgZW50cnkua2V5KTtcbiAgICAgIH0gZWxzZSBkaW5kZXgrKztcbiAgICB9XG4gICAgd2hpbGUgKGRpbmRleCA8IGVudHJpZXNMZW5ndGgpIHtcbiAgICAgIGVudHJ5ID0gZW50cmllc1tkaW5kZXgrK107XG4gICAgICBpZiAoIShlbnRyeS5rZXkgPT09IGtleSAmJiBlbnRyeS52YWx1ZSA9PT0gdmFsdWUpKSBhcHBlbmQodGhpcywgZW50cnkua2V5LCBlbnRyeS52YWx1ZSk7XG4gICAgfVxuICB9LCB7IGVudW1lcmFibGU6IHRydWUsIHVuc2FmZTogdHJ1ZSB9KTtcbn1cbiIsICIndXNlIHN0cmljdCc7XG52YXIgZGVmaW5lQnVpbHRJbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZWZpbmUtYnVpbHQtaW4nKTtcbnZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMnKTtcbnZhciB0b1N0cmluZyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1zdHJpbmcnKTtcbnZhciB2YWxpZGF0ZUFyZ3VtZW50c0xlbmd0aCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy92YWxpZGF0ZS1hcmd1bWVudHMtbGVuZ3RoJyk7XG5cbnZhciAkVVJMU2VhcmNoUGFyYW1zID0gVVJMU2VhcmNoUGFyYW1zO1xudmFyIFVSTFNlYXJjaFBhcmFtc1Byb3RvdHlwZSA9ICRVUkxTZWFyY2hQYXJhbXMucHJvdG90eXBlO1xudmFyIGdldEFsbCA9IHVuY3VycnlUaGlzKFVSTFNlYXJjaFBhcmFtc1Byb3RvdHlwZS5nZXRBbGwpO1xudmFyICRoYXMgPSB1bmN1cnJ5VGhpcyhVUkxTZWFyY2hQYXJhbXNQcm90b3R5cGUuaGFzKTtcbnZhciBwYXJhbXMgPSBuZXcgJFVSTFNlYXJjaFBhcmFtcygnYT0xJyk7XG5cbi8vIGB1bmRlZmluZWRgIGNhc2UgaXMgYSBDaHJvbWl1bSAxMTcgYnVnXG4vLyBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvdjgvaXNzdWVzL2RldGFpbD9pZD0xNDIyMlxuaWYgKHBhcmFtcy5oYXMoJ2EnLCAyKSB8fCAhcGFyYW1zLmhhcygnYScsIHVuZGVmaW5lZCkpIHtcbiAgZGVmaW5lQnVpbHRJbihVUkxTZWFyY2hQYXJhbXNQcm90b3R5cGUsICdoYXMnLCBmdW5jdGlvbiBoYXMobmFtZSAvKiAsIHZhbHVlICovKSB7XG4gICAgdmFyIGxlbmd0aCA9IGFyZ3VtZW50cy5sZW5ndGg7XG4gICAgdmFyICR2YWx1ZSA9IGxlbmd0aCA8IDIgPyB1bmRlZmluZWQgOiBhcmd1bWVudHNbMV07XG4gICAgaWYgKGxlbmd0aCAmJiAkdmFsdWUgPT09IHVuZGVmaW5lZCkgcmV0dXJuICRoYXModGhpcywgbmFtZSk7XG4gICAgdmFyIHZhbHVlcyA9IGdldEFsbCh0aGlzLCBuYW1lKTsgLy8gYWxzbyB2YWxpZGF0ZXMgYHRoaXNgXG4gICAgdmFsaWRhdGVBcmd1bWVudHNMZW5ndGgobGVuZ3RoLCAxKTtcbiAgICB2YXIgdmFsdWUgPSB0b1N0cmluZygkdmFsdWUpO1xuICAgIHZhciBpbmRleCA9IDA7XG4gICAgd2hpbGUgKGluZGV4IDwgdmFsdWVzLmxlbmd0aCkge1xuICAgICAgaWYgKHZhbHVlc1tpbmRleCsrXSA9PT0gdmFsdWUpIHJldHVybiB0cnVlO1xuICAgIH0gcmV0dXJuIGZhbHNlO1xuICB9LCB7IGVudW1lcmFibGU6IHRydWUsIHVuc2FmZTogdHJ1ZSB9KTtcbn1cbiIsICIndXNlIHN0cmljdCc7XG52YXIgbWFrZUJ1aWx0SW4gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvbWFrZS1idWlsdC1pbicpO1xudmFyIGRlZmluZVByb3BlcnR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1kZWZpbmUtcHJvcGVydHknKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAodGFyZ2V0LCBuYW1lLCBkZXNjcmlwdG9yKSB7XG4gIGlmIChkZXNjcmlwdG9yLmdldCkgbWFrZUJ1aWx0SW4oZGVzY3JpcHRvci5nZXQsIG5hbWUsIHsgZ2V0dGVyOiB0cnVlIH0pO1xuICBpZiAoZGVzY3JpcHRvci5zZXQpIG1ha2VCdWlsdEluKGRlc2NyaXB0b3Iuc2V0LCBuYW1lLCB7IHNldHRlcjogdHJ1ZSB9KTtcbiAgcmV0dXJuIGRlZmluZVByb3BlcnR5LmYodGFyZ2V0LCBuYW1lLCBkZXNjcmlwdG9yKTtcbn07XG4iLCAiJ3VzZSBzdHJpY3QnO1xudmFyIERFU0NSSVBUT1JTID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Rlc2NyaXB0b3JzJyk7XG52YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzJyk7XG52YXIgZGVmaW5lQnVpbHRJbkFjY2Vzc29yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2RlZmluZS1idWlsdC1pbi1hY2Nlc3NvcicpO1xuXG52YXIgVVJMU2VhcmNoUGFyYW1zUHJvdG90eXBlID0gVVJMU2VhcmNoUGFyYW1zLnByb3RvdHlwZTtcbnZhciBmb3JFYWNoID0gdW5jdXJyeVRoaXMoVVJMU2VhcmNoUGFyYW1zUHJvdG90eXBlLmZvckVhY2gpO1xuXG4vLyBgVVJMU2VhcmNoUGFyYW1zLnByb3RvdHlwZS5zaXplYCBnZXR0ZXJcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS93aGF0d2cvdXJsL3B1bGwvNzM0XG5pZiAoREVTQ1JJUFRPUlMgJiYgISgnc2l6ZScgaW4gVVJMU2VhcmNoUGFyYW1zUHJvdG90eXBlKSkge1xuICBkZWZpbmVCdWlsdEluQWNjZXNzb3IoVVJMU2VhcmNoUGFyYW1zUHJvdG90eXBlLCAnc2l6ZScsIHtcbiAgICBnZXQ6IGZ1bmN0aW9uIHNpemUoKSB7XG4gICAgICB2YXIgY291bnQgPSAwO1xuICAgICAgZm9yRWFjaCh0aGlzLCBmdW5jdGlvbiAoKSB7IGNvdW50Kys7IH0pO1xuICAgICAgcmV0dXJuIGNvdW50O1xuICAgIH0sXG4gICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgIGVudW1lcmFibGU6IHRydWVcbiAgfSk7XG59XG4iLCAiZXhwb3J0IHthZGRFdmVudExpc3RlbmVyV2l0aFJlbW92ZXJ9IGZyb20gJy4vbW9kdWxlcy9hZGRFdmVudExpc3RlbmVyV2l0aFJlbW92ZXInO1xuZXhwb3J0IHtjaGFuZ2VPcGFjaXR5V2hlbk1vdXNlRW50ZXJPckxlYXZlfSBmcm9tICcuL21vZHVsZXMvY2hhbmdlT3BhY2l0eVdoZW5Nb3VzZUVudGVyT3JMZWF2ZSc7XG5leHBvcnQge2NoZWNrQTExeUNvbmZpcm1LZXl9IGZyb20gJy4vbW9kdWxlcy9jaGVja0ExMXlDb25maXJtS2V5JztcbmV4cG9ydCB7Y2hlY2tEZXBlbmRlbmNpZXN9IGZyb20gJy4vbW9kdWxlcy9jaGVja0RlcGVuZGVuY2llcy50cyc7XG5leHBvcnQge2RlbGF5fSBmcm9tICcuL21vZHVsZXMvZGVsYXknO1xuZXhwb3J0IHtmaW5kVmFyaWFudHN9IGZyb20gJy4vbW9kdWxlcy9maW5kVmFyaWFudHMnO1xuZXhwb3J0IHtnZW5lcmF0ZUFycmF5fSBmcm9tICcuL21vZHVsZXMvZ2VuZXJhdGVBcnJheSc7XG5leHBvcnQge2dlbmVyYXRlU3ZnRGF0YVVybH0gZnJvbSAnLi9tb2R1bGVzL2dlbmVyYXRlU3ZnRGF0YVVybCc7XG5leHBvcnQge2dldEJvZHl9IGZyb20gJy4vbW9kdWxlcy9nZXRCb2R5JztcbmV4cG9ydCB7aW5pdE13QXBpfSBmcm9tICcuL21vZHVsZXMvaW5pdE13QXBpJztcbmV4cG9ydCB7aXNWYWxpZEtleX0gZnJvbSAnLi9tb2R1bGVzL2lzVmFsaWRLZXknO1xuZXhwb3J0IHtNd1VyaX0gZnJvbSAnLi9tb2R1bGVzL213VXJpJztcbmV4cG9ydCB7b291aUNvbmZpcm1XaXRoU3R5bGV9IGZyb20gJy4vbW9kdWxlcy9vb3VpQ29uZmlybVdpdGhTdHlsZSc7XG5leHBvcnQge3F1ZXJ5R2xvYmFsVXNlckdyb3Vwc30gZnJvbSAnLi9tb2R1bGVzL3F1ZXJ5R2xvYmFsVXNlckdyb3Vwcyc7XG5leHBvcnQge3F1ZXJ5VXNlckdyb3Vwc30gZnJvbSAnLi9tb2R1bGVzL3F1ZXJ5VXNlckdyb3Vwcyc7XG5leHBvcnQge3Njcm9sbFRvcH0gZnJvbSAnLi9tb2R1bGVzL3Njcm9sbFRvcCc7XG5leHBvcnQge3VzZXJJc0luR3JvdXB9IGZyb20gJy4vbW9kdWxlcy91c2VySXNJbkdyb3VwJztcbmV4cG9ydCB7dW5pcXVlQXJyYXl9IGZyb20gJy4vbW9kdWxlcy91bmlxdWVBcnJheSc7XG5leHBvcnQge2dldFdwU3VtbWFyeUNvbnRlbnQsIHNldFdwU3VtbWFyeUNvbnRlbnR9IGZyb20gJy4vbW9kdWxlcy93cFN1bW1hcnlDb250ZW50JztcbmV4cG9ydCB7Z2V0V3BUZXh0Ym94MUNvbnRlbnQsIHNldFdwVGV4dGJveDFDb250ZW50fSBmcm9tICcuL21vZHVsZXMvd3BUZXh0Ym94MUNvbnRlbnQnO1xuIiwgInR5cGUgQWRkRXZlbnRMaXN0ZW5lcldpdGhSZW1vdmVyID0gPFxuXHRUYXJnZXQgZXh0ZW5kcyBEb2N1bWVudCB8IEhUTUxFbGVtZW50IHwgRWxlbWVudCB8IE1lZGlhUXVlcnlMaXN0IHwgV2luZG93LFxuXHRUeXBlIGV4dGVuZHMgVGFyZ2V0IGV4dGVuZHMgRG9jdW1lbnRcblx0XHQ/IGtleW9mIERvY3VtZW50RXZlbnRNYXBcblx0XHQ6IFRhcmdldCBleHRlbmRzIEhUTUxFbGVtZW50XG5cdFx0XHQ/IGtleW9mIEhUTUxFbGVtZW50RXZlbnRNYXBcblx0XHRcdDogVGFyZ2V0IGV4dGVuZHMgTWVkaWFRdWVyeUxpc3Rcblx0XHRcdFx0PyBrZXlvZiBNZWRpYVF1ZXJ5TGlzdEV2ZW50TWFwXG5cdFx0XHRcdDogVGFyZ2V0IGV4dGVuZHMgV2luZG93XG5cdFx0XHRcdFx0PyBrZXlvZiBXaW5kb3dFdmVudE1hcFxuXHRcdFx0XHRcdDoga2V5b2YgR2xvYmFsRXZlbnRIYW5kbGVyc0V2ZW50TWFwLFxuXHRMaXN0ZW5lciBleHRlbmRzIFRhcmdldCBleHRlbmRzIERvY3VtZW50XG5cdFx0PyBUeXBlIGV4dGVuZHMga2V5b2YgRG9jdW1lbnRFdmVudE1hcFxuXHRcdFx0PyAodGhpczogVGFyZ2V0LCBldmVudDogRG9jdW1lbnRFdmVudE1hcFtUeXBlXSkgPT4gdW5rbm93blxuXHRcdFx0OiAodGhpczogVGFyZ2V0LCBldmVudDogRXZlbnQpID0+IHVua25vd25cblx0XHQ6IFRhcmdldCBleHRlbmRzIEhUTUxFbGVtZW50XG5cdFx0XHQ/IFR5cGUgZXh0ZW5kcyBrZXlvZiBIVE1MRWxlbWVudEV2ZW50TWFwXG5cdFx0XHRcdD8gKHRoaXM6IFRhcmdldCwgZXZlbnQ6IEhUTUxFbGVtZW50RXZlbnRNYXBbVHlwZV0pID0+IHVua25vd25cblx0XHRcdFx0OiAodGhpczogVGFyZ2V0LCBldmVudDogRXZlbnQpID0+IHVua25vd25cblx0XHRcdDogVGFyZ2V0IGV4dGVuZHMgRWxlbWVudFxuXHRcdFx0XHQ/IFR5cGUgZXh0ZW5kcyBrZXlvZiBFbGVtZW50RXZlbnRNYXBcblx0XHRcdFx0XHQ/ICh0aGlzOiBUYXJnZXQsIGV2ZW50OiBFbGVtZW50RXZlbnRNYXBbVHlwZV0pID0+IHVua25vd25cblx0XHRcdFx0XHQ6ICh0aGlzOiBUYXJnZXQsIGV2ZW50OiBFdmVudCkgPT4gdW5rbm93blxuXHRcdFx0XHQ6IFRhcmdldCBleHRlbmRzIE1lZGlhUXVlcnlMaXN0XG5cdFx0XHRcdFx0PyBUeXBlIGV4dGVuZHMga2V5b2YgTWVkaWFRdWVyeUxpc3RFdmVudE1hcFxuXHRcdFx0XHRcdFx0PyAodGhpczogVGFyZ2V0LCBldmVudDogTWVkaWFRdWVyeUxpc3RFdmVudE1hcFtUeXBlXSkgPT4gdW5rbm93blxuXHRcdFx0XHRcdFx0OiAodGhpczogVGFyZ2V0LCBldmVudDogRXZlbnQpID0+IHVua25vd25cblx0XHRcdFx0XHQ6IFRhcmdldCBleHRlbmRzIFdpbmRvd1xuXHRcdFx0XHRcdFx0PyBUeXBlIGV4dGVuZHMga2V5b2YgV2luZG93RXZlbnRNYXBcblx0XHRcdFx0XHRcdFx0PyAodGhpczogVGFyZ2V0LCBldmVudDogV2luZG93RXZlbnRNYXBbVHlwZV0pID0+IHVua25vd25cblx0XHRcdFx0XHRcdFx0OiAodGhpczogVGFyZ2V0LCBldmVudDogRXZlbnQpID0+IHVua25vd25cblx0XHRcdFx0XHRcdDogKHRoaXM6IFRhcmdldCwgZXZlbnQ6IEV2ZW50KSA9PiB1bmtub3duLFxuPih7XG5cdHRhcmdldCxcblx0dHlwZSxcblx0bGlzdGVuZXIsXG5cdG9wdGlvbnMsXG59OiB7XG5cdHRhcmdldDogVGFyZ2V0O1xuXHR0eXBlOiBUeXBlO1xuXHRsaXN0ZW5lcjogTGlzdGVuZXI7XG5cdG9wdGlvbnM/OiBBZGRFdmVudExpc3RlbmVyT3B0aW9ucztcbn0pID0+IHtcblx0cmVtb3ZlOiAoKSA9PiB2b2lkO1xufTtcblxuY29uc3QgYWRkRXZlbnRMaXN0ZW5lcldpdGhSZW1vdmVyOiBBZGRFdmVudExpc3RlbmVyV2l0aFJlbW92ZXIgPSAoe3RhcmdldCwgdHlwZSwgbGlzdGVuZXIsIG9wdGlvbnMgPSB7fX0pID0+IHtcblx0dGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIodHlwZSwgbGlzdGVuZXIgYXMgRXZlbnRMaXN0ZW5lck9yRXZlbnRMaXN0ZW5lck9iamVjdCwgb3B0aW9ucyk7XG5cdHJldHVybiB7XG5cdFx0cmVtb3ZlOiAoKTogdm9pZCA9PiB7XG5cdFx0XHR0YXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcih0eXBlLCBsaXN0ZW5lciBhcyBFdmVudExpc3RlbmVyT3JFdmVudExpc3RlbmVyT2JqZWN0LCBvcHRpb25zKTtcblx0XHR9LFxuXHR9O1xufTtcblxuZXhwb3J0IHt0eXBlIEFkZEV2ZW50TGlzdGVuZXJXaXRoUmVtb3ZlciwgYWRkRXZlbnRMaXN0ZW5lcldpdGhSZW1vdmVyfTtcbiIsICJ0eXBlIENoYW5nZU9wYWNpdHlXaGVuTW91c2VFbnRlck9yTGVhdmUgPSAoZXZlbnQ6IE1vdXNlRXZlbnQgfCBKUXVlcnkuVHJpZ2dlcmVkRXZlbnQsIG9wYWNpdHk/OiBudW1iZXIpID0+IHZvaWQ7XG5cbmNvbnN0IGNoYW5nZU9wYWNpdHlXaGVuTW91c2VFbnRlck9yTGVhdmU6IENoYW5nZU9wYWNpdHlXaGVuTW91c2VFbnRlck9yTGVhdmUgPSAoZXZlbnQsIG9wYWNpdHkgPSAwLjcpID0+IHtcblx0KGV2ZW50LmN1cnJlbnRUYXJnZXQgYXMgSFRNTEVsZW1lbnQpLnN0eWxlLm9wYWNpdHkgPSBldmVudC50eXBlID09PSAnbW91c2VlbnRlcicgPyAnMScgOiBvcGFjaXR5LnRvU3RyaW5nKCk7XG59O1xuXG5leHBvcnQge3R5cGUgQ2hhbmdlT3BhY2l0eVdoZW5Nb3VzZUVudGVyT3JMZWF2ZSwgY2hhbmdlT3BhY2l0eVdoZW5Nb3VzZUVudGVyT3JMZWF2ZX07XG4iLCAidHlwZSBDaGVja0ExMXlDb25maXJtS2V5ID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50IHwgTW91c2VFdmVudCB8IEpRdWVyeS5DbGlja0V2ZW50IHwgSlF1ZXJ5LktleURvd25FdmVudCkgPT4gYm9vbGVhbjtcblxuY29uc3QgY2hlY2tBMTF5Q29uZmlybUtleTogQ2hlY2tBMTF5Q29uZmlybUtleSA9IChldmVudCk6IGJvb2xlYW4gPT4ge1xuXHRpZiAoWydjbGljaycsICdrZXlkb3duJ10uaW5jbHVkZXMoZXZlbnQudHlwZSkpIHtcblx0XHRpZiAoZXZlbnQudHlwZSA9PT0gJ2tleWRvd24nKSB7XG5cdFx0XHRyZXR1cm4gWydFbnRlcicsICcgJ10uaW5jbHVkZXMoKGV2ZW50IGFzIEtleWJvYXJkRXZlbnQpLmtleSk7XG5cdFx0fVxuXHRcdHJldHVybiB0cnVlO1xuXHR9XG5cdHJldHVybiBmYWxzZTtcbn07XG5cbmV4cG9ydCB7dHlwZSBDaGVja0ExMXlDb25maXJtS2V5LCBjaGVja0ExMXlDb25maXJtS2V5fTtcbiIsICJ0eXBlIEdlbmVyYXRlQXJyYXkgPSB0eXBlb2YgZ2VuZXJhdGVBcnJheTtcblxuZnVuY3Rpb24gZ2VuZXJhdGVBcnJheTxUIGV4dGVuZHMgW10+KC4uLmFyZ3M6IChUIHwgVFtdKVtdKTogVFtdO1xuZnVuY3Rpb24gZ2VuZXJhdGVBcnJheTxUIGV4dGVuZHMgTm9kZUxpc3Q+KC4uLmFyZ3M6IChUIHwgVFtdKVtdKTogTm9kZVtdO1xuZnVuY3Rpb24gZ2VuZXJhdGVBcnJheTxUID0gdW5rbm93bj4oLi4uYXJnczogKFQgfCBUW10pW10pOiBUW107XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZnVuYy1zdHlsZVxuZnVuY3Rpb24gZ2VuZXJhdGVBcnJheTxUPiguLi5hcmdzOiAoVCB8IFRbXSlbXSk6IFRbXSB7XG5cdHJldHVybiBhcmdzLmZsYXRNYXAoKGFyZykgPT4ge1xuXHRcdGlmIChBcnJheS5pc0FycmF5KGFyZykpIHtcblx0XHRcdHJldHVybiBhcmc7XG5cdFx0fVxuXG5cdFx0aWYgKGFyZyBpbnN0YW5jZW9mIE5vZGVMaXN0KSB7XG5cdFx0XHRyZXR1cm4gWy4uLmFyZ10gYXMgVDtcblx0XHR9XG5cblx0XHRyZXR1cm4gW2FyZ107XG5cdH0pO1xufVxuXG5leHBvcnQge3R5cGUgR2VuZXJhdGVBcnJheSwgZ2VuZXJhdGVBcnJheX07XG4iLCAidHlwZSBJbml0TXdBcGkgPSB0eXBlb2YgaW5pdE13QXBpO1xuXG4vKipcbiAqIEByZXF1aXJlcyBtZWRpYXdpa2kuYXBpXG4gKiBAcGFyYW0ge3N0cmluZ30gW3VzZXJBZ2VudF1cbiAqIEBwYXJhbSB7c3RyaW5nfSBbYXBpVXJpXVxuICogQHJldHVybiB7bXcuQXBpfG13LkZvcmVpZ25BcGl9XG4gKi9cbmZ1bmN0aW9uIGluaXRNd0FwaSh1c2VyQWdlbnQ/OiBzdHJpbmcpOiBtdy5BcGk7XG5mdW5jdGlvbiBpbml0TXdBcGkodXNlckFnZW50OiBzdHJpbmcsIGFwaVVyaTogc3RyaW5nKTogbXcuRm9yZWlnbkFwaTtcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBmdW5jLXN0eWxlXG5mdW5jdGlvbiBpbml0TXdBcGkodXNlckFnZW50Pzogc3RyaW5nLCBhcGlVcmk/OiBzdHJpbmcpOiBtdy5BcGkgfCBtdy5Gb3JlaWduQXBpIHtcblx0Y29uc3QgYXBpT3B0aW9ucyA9IHtcblx0XHRhamF4OiB7XG5cdFx0XHRoZWFkZXJzOiB7XG5cdFx0XHRcdCdBcGktVXNlci1BZ2VudCc6IHVzZXJBZ2VudCA/IGBRaXV3ZW4vMS4xICgke3VzZXJBZ2VudH0pYCA6ICdRaXV3ZW4vMS4xJyxcblx0XHRcdH0sXG5cdFx0fSxcblx0fTtcblxuXHRpZiAoYXBpVXJpKSB7XG5cdFx0cmV0dXJuIG5ldyBtdy5Gb3JlaWduQXBpKGFwaVVyaSwgYXBpT3B0aW9ucyk7XG5cdH1cblxuXHRyZXR1cm4gbmV3IG13LkFwaShhcGlPcHRpb25zKTtcbn1cblxuZXhwb3J0IHt0eXBlIEluaXRNd0FwaSwgaW5pdE13QXBpfTtcbiIsICJ0eXBlIFVuaXF1ZUFycmF5ID0gdHlwZW9mIHVuaXF1ZUFycmF5O1xuXG5jb25zdCB1bmlxdWVBcnJheSA9IGZ1bmN0aW9uIHVuaXF1ZUFycmF5PFQ+KGFyZ3M6IFRbXSk6IFRbXSB7XG5cdC8qKiFcblx0ICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IENDLUJZLVNBLTQuMFxuXHQgKlxuXHQgKiBAc291cmNlIHtAbGluayBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy85MjI5NjQ1L3JlbW92ZS1kdXBsaWNhdGUtdmFsdWVzLWZyb20tanMtYXJyYXkvOTIyOTgyfVxuXHQgKiBAbGljZW5zZSBDQy1CWS1TQS00LjBcblx0ICovXG5cdGNvbnN0IHJlc3VsdDogdHlwZW9mIGFyZ3MgPSBbXTtcblx0Zm9yIChjb25zdCBpdGVtIG9mIGFyZ3MpIHtcblx0XHRpZiAoIXJlc3VsdC5pbmNsdWRlcyhpdGVtKSkge1xuXHRcdFx0cmVzdWx0W3Jlc3VsdC5sZW5ndGhdID0gaXRlbTsgLy8gUmVwbGFjZSBBcnJheSNwdXNoIHRvIGF2b2lkIGNvcmUtanMgcG9seWZpbGxpbmdcblx0XHR9XG5cdH1cblx0cmV0dXJuIHJlc3VsdDtcbn07XG5cbmV4cG9ydCB7dHlwZSBVbmlxdWVBcnJheSwgdW5pcXVlQXJyYXl9O1xuIiwgImltcG9ydCB7Z2VuZXJhdGVBcnJheX0gZnJvbSAnLi9nZW5lcmF0ZUFycmF5JztcbmltcG9ydCB7aW5pdE13QXBpfSBmcm9tICcuL2luaXRNd0FwaSc7XG5pbXBvcnQge3VuaXF1ZUFycmF5fSBmcm9tICcuL3VuaXF1ZUFycmF5JztcblxudHlwZSBCb29sZWFuID0gJzAnIHwgJzEnIHwgMCB8IDE7XG50eXBlIENoZWNrRGVwZW5kZW5jaWVzID0gdHlwZW9mIGNoZWNrRGVwZW5kZW5jaWVzO1xuXG5mdW5jdGlvbiBjaGVja0RlcGVuZGVuY2llcyhnYWRnZXROYW1lczogc3RyaW5nIHwgc3RyaW5nW10pOiBQcm9taXNlPHZvaWQ+O1xuZnVuY3Rpb24gY2hlY2tEZXBlbmRlbmNpZXMoZ2FkZ2V0TmFtZXM6IHN0cmluZywgb3B0aW9uOiBCb29sZWFuKTogUHJvbWlzZTx2b2lkPjtcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBmdW5jLXN0eWxlXG5hc3luYyBmdW5jdGlvbiBjaGVja0RlcGVuZGVuY2llcyhnYWRnZXROYW1lczogc3RyaW5nIHwgc3RyaW5nW10sIG9wdGlvbj86IEJvb2xlYW4pOiBQcm9taXNlPHZvaWQ+IHtcblx0Y29uc3QgYXBpOiBtdy5BcGkgPSBpbml0TXdBcGkoJ1V0aWwtQ2hlY2tEZXBlbmRlbmNpZXMnKTtcblx0Y29uc3QgZ2FkZ2V0cyA9IHVuaXF1ZUFycmF5KGdlbmVyYXRlQXJyYXkoZ2FkZ2V0TmFtZXMpKTtcblx0b3B0aW9uIHx8PSAxO1xuXG5cdGZvciAoY29uc3QgZ2FkZ2V0IG9mIGdhZGdldHMpIHtcblx0XHRpZiAoXG5cdFx0XHQob3B0aW9uID09PSAnMCcgJiYgbXcudXNlci5vcHRpb25zLmdldChgZ2FkZ2V0LSR7Z2FkZ2V0fWApKSB8fFxuXHRcdFx0KG9wdGlvbiA9PT0gJzEnICYmICFtdy51c2VyLm9wdGlvbnMuZ2V0KGBnYWRnZXQtJHtnYWRnZXR9YCkpXG5cdFx0KSB7XG5cdFx0XHRhd2FpdCBhcGkucG9zdFdpdGhFZGl0VG9rZW4oe1xuXHRcdFx0XHRhY3Rpb246ICdvcHRpb25zJyxcblx0XHRcdFx0Y2hhbmdlOiBgZ2FkZ2V0LSR7Z2FkZ2V0fT0ke29wdGlvbn1gLFxuXHRcdFx0fSBhcyBBcGlPcHRpb25zUGFyYW1zKTtcblx0XHRcdGF3YWl0IG13LmxvYWRlci51c2luZyhgZXh0LmdhZGdldC4ke2dhZGdldH1gKTtcblx0XHR9XG5cdH1cbn1cblxuZXhwb3J0IHt0eXBlIENoZWNrRGVwZW5kZW5jaWVzLCBjaGVja0RlcGVuZGVuY2llc307XG4iLCAidHlwZSBEZWxheSA9IChtczogbnVtYmVyKSA9PiBQcm9taXNlPHZvaWQ+O1xuXG5jb25zdCBkZWxheTogRGVsYXkgPSAobXMpID0+IHtcblx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiAoKSA9PiB2b2lkKTogdm9pZCA9PiB7XG5cdFx0c2V0VGltZW91dChyZXNvbHZlLCBtcyk7XG5cdH0pO1xufTtcblxuZXhwb3J0IHt0eXBlIERlbGF5LCBkZWxheX07XG4iLCAiaW1wb3J0IHtpbml0TXdBcGl9IGZyb20gJy4vaW5pdE13QXBpJztcbmltcG9ydCB7dW5pcXVlQXJyYXl9IGZyb20gJy4vdW5pcXVlQXJyYXknO1xuXG50eXBlIEZpbmRWYXJpYW50cyA9IHR5cGVvZiBmaW5kVmFyaWFudHM7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBmdW5jLXN0eWxlXG5hc3luYyBmdW5jdGlvbiBmaW5kVmFyaWFudHModGV4dDogc3RyaW5nKSB7XG5cdGNvbnN0IGFwaTogbXcuQXBpID0gaW5pdE13QXBpKCdVdGlsLUZpbmRWYXJpYW50cycpO1xuXG5cdGNvbnN0IFZBUklBTlRTID0gWyd6aC1oYW5zJywgJ3poLWhhbnQnLCAnemgtY24nLCAnemgtaGsnLCAnemgtbW8nLCAnemgtc2cnLCAnemgtbXknLCAnemgtdHcnXTtcblxuXHRjb25zdCBhbGxWYXJpYW50czogc3RyaW5nW10gPSBbXTtcblxuXHRjb25zdCBwYXJhbXM6IEFwaVBhcnNlUGFyYW1zID0ge1xuXHRcdGFjdGlvbjogJ3BhcnNlJyxcblx0XHRjb250ZW50bW9kZWw6ICd3aWtpdGV4dCcsXG5cdFx0Zm9ybWF0OiAnanNvbicsXG5cdFx0Zm9ybWF0dmVyc2lvbjogJzInLFxuXHRcdHByb3A6IFsnZGlzcGxheXRpdGxlJ10sXG5cdFx0dGl0bGU6ICd0ZW1wJyxcblx0XHR0ZXh0LFxuXHR9O1xuXG5cdGZvciAoY29uc3QgdmFyaWFudCBvZiBWQVJJQU5UUykge1xuXHRcdHBhcmFtcy51c2VsYW5nID0gdmFyaWFudDtcblx0XHRwYXJhbXMudmFyaWFudCA9IHZhcmlhbnQ7XG5cdFx0Y29uc3QgcmVzcG9uc2UgPSBhd2FpdCBhcGkucG9zdChwYXJhbXMpO1xuXG5cdFx0Y29uc3QgZGlzcGxheXRpdGxlID0gcmVzcG9uc2U/LlsncXVlcnknXT8uZGlzcGxheXRpdGxlIGFzIHN0cmluZztcblx0XHRjb25zdCB2YXJpYW50RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZhcmlhbnQnKTtcblx0XHR2YXJpYW50RWxlbWVudC5pbm5lckhUTUwgPSBkaXNwbGF5dGl0bGU7XG5cblx0XHRpZiAodmFyaWFudEVsZW1lbnQudGV4dENvbnRlbnQpIHtcblx0XHRcdGFsbFZhcmlhbnRzW2FsbFZhcmlhbnRzLmxlbmd0aF0gPSB2YXJpYW50RWxlbWVudC50ZXh0Q29udGVudDtcblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gdW5pcXVlQXJyYXkoYWxsVmFyaWFudHMpO1xufVxuXG5leHBvcnQge3R5cGUgRmluZFZhcmlhbnRzLCBmaW5kVmFyaWFudHN9O1xuIiwgInR5cGUgR2VuZXJhdGVTdmdEYXRhVXJsID0gKHN2Zzogc3RyaW5nKSA9PiBzdHJpbmc7XG5cbmNvbnN0IGdlbmVyYXRlU3ZnRGF0YVVybDogR2VuZXJhdGVTdmdEYXRhVXJsID0gKHN2ZykgPT4ge1xuXHQvKiohXG5cdCAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcblx0ICpcblx0ICogQHNvdXJjZSBzdmctdG8tZGF0YS11cmkuanMge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9oZXlhbGxhbi9zdmctdG8tZGF0YS11cmkvfVxuXHQgKiBAYXV0aG9yIEFsbGFuIE1vcmVub1xuXHQgKiBAbGljZW5zZSBNSVQge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9oZXlhbGxhbi9zdmctdG8tZGF0YS11cmkvYmxvYi9tYXN0ZXIvTElDRU5TRX1cblx0ICpcblx0ICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuXHQgKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG5cdCAqIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcblx0ICogdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuXHQgKiBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcblx0ICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcblx0ICpcblx0ICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsXG5cdCAqIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG5cdCAqXG5cdCAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcblx0ICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG5cdCAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuXHQgKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG5cdCAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG5cdCAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFXG5cdCAqIFNPRlRXQVJFLlxuXHQgKi9cblx0c3ZnID0gc3ZnLnRyaW0oKTtcblx0Ly8gcmVtb3ZlIHhtbCwgZG9jdHlwZSwgZ2VuZXJhdG9yLi4uXG5cdHN2ZyA9IHN2Zy5zbGljZShzdmcuaW5kZXhPZignPHN2ZycpKTtcblx0Ly8gc29mdCB2YWxpZGF0ZVxuXHRpZiAoIXN2Zy5zdGFydHNXaXRoKCc8c3ZnJykgfHwgIXN2Zy5lbmRzV2l0aCgnc3ZnPicpKSB7XG5cdFx0cmV0dXJuICcnO1xuXHR9XG5cdC8vIGFkZCBuYW1lc3BhY2UgaWYgbmVjZXNzYXJ5XG5cdGlmICghc3ZnLmluY2x1ZGVzKCdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycpKSB7XG5cdFx0c3ZnID0gc3ZnLnJlcGxhY2UoLzxzdmcvZywgXCI8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZydcIik7XG5cdH1cblx0Ly8gcmVtb3ZlIGNvbW1lbnRzXG5cdHN2ZyA9IHN2Zy5yZXBsYWNlKC88IS0tLnsxLH0tLT4vZywgJycpO1xuXHQvLyByZW1vdmUgdW5uZWNlc3NhcnkgYXR0cmlidXRlc1xuXHRzdmcgPSBzdmcucmVwbGFjZSgvdmVyc2lvbj1bXCInXSguezAsfT8pW1wiJ10oPz1bXFxzPl0pL2csICcnKTtcblx0Ly8gcmVwbGFjZSBuZXN0ZWQgcXVvdGVzXG5cdHN2ZyA9IHN2Zy5yZXBsYWNlKC9cIicoLnsxLH0pJ1wiL2csIFwiJyQxJ1wiKTtcblx0Ly8gcmVwbGFjZSBkb3VibGUgcXVvdGVzXG5cdHN2ZyA9IHN2Zy5yZXBsYWNlKC9cIi9nLCBcIidcIik7XG5cdC8vIHJlbW92ZSBlbXB0eSBzcGFjZXMgYmV0d2VlbiB0YWdzXG5cdHN2ZyA9IHN2Zy5yZXBsYWNlKC8+XFxzezEsfTwvZywgJz48Jyk7XG5cdC8vIHJlbW92ZSBkdXBsaWNhdGUgc3BhY2VzXG5cdHN2ZyA9IHN2Zy5yZXBsYWNlKC9cXHN7Mix9L2csICcgJyk7XG5cdC8vIHRyaW0gYWdhaW5cblx0c3ZnID0gc3ZnLnRyaW0oKTtcblx0Ly8gc29mdCB2YWxpZGF0ZSBhZ2FpblxuXHRpZiAoIXN2Zy5zdGFydHNXaXRoKCc8c3ZnJykgfHwgIXN2Zy5lbmRzV2l0aCgnc3ZnPicpKSB7XG5cdFx0cmV0dXJuICcnO1xuXHR9XG5cdC8vIHJlcGxhY2UgYW1wZXJzYW5kXG5cdHN2ZyA9IHN2Zy5yZXBsYWNlKC8mL2csICcmYW1wOycpO1xuXHQvLyBlbmNvZGUgb25seSB1bnNhZmUgc3ltYm9sc1xuXHRzdmcgPSBzdmcucmVwbGFjZSgvWyUjPD4/W1xcXFxcXF1eYHt8fV0vZywgZW5jb2RlVVJJQ29tcG9uZW50KTtcblx0Ly8gYnVpbGQgZGF0YSB1cmlcblx0c3ZnID0gYGRhdGE6aW1hZ2Uvc3ZnK3htbCwke3N2Z31gO1xuXHQvLyBvaywgc2hpcCBpdCFcblx0cmV0dXJuIHN2Zztcbn07XG5cbmV4cG9ydCB7dHlwZSBHZW5lcmF0ZVN2Z0RhdGFVcmwsIGdlbmVyYXRlU3ZnRGF0YVVybH07XG4iLCAidHlwZSBHZXRCb2R5ID0gKCkgPT4gSlF1ZXJ5LlRoZW5hYmxlPEpRdWVyeTxIVE1MQm9keUVsZW1lbnQ+PjtcblxuY29uc3QgZ2V0Qm9keSA9ICgpID0+IHtcblx0cmV0dXJuICQucmVhZHkudGhlbigoKTogSlF1ZXJ5PEhUTUxCb2R5RWxlbWVudD4gPT4ge1xuXHRcdGNvbnN0ICRib2R5OiBKUXVlcnk8SFRNTEJvZHlFbGVtZW50PiA9ICQoJ2JvZHknKTtcblxuXHRcdHJldHVybiAkYm9keTtcblx0fSk7XG59O1xuXG5leHBvcnQge3R5cGUgR2V0Qm9keSwgZ2V0Qm9keX07XG4iLCAidHlwZSBJc1ZhbGlkS2V5ID0gdHlwZW9mIGlzVmFsaWRLZXk7XG5cbmNvbnN0IGlzVmFsaWRLZXkgPSAob2JqZWN0OiBvYmplY3QsIGtleTogc3RyaW5nIHwgbnVtYmVyIHwgc3ltYm9sKToga2V5IGlzIGtleW9mIHR5cGVvZiBvYmplY3QgPT4ge1xuXHRyZXR1cm4ga2V5IGluIG9iamVjdDtcbn07XG5cbmV4cG9ydCB7dHlwZSBJc1ZhbGlkS2V5LCBpc1ZhbGlkS2V5fTtcbiIsICJ0eXBlIENsYXNzTXdVcmkgPSB0eXBlb2YgTXdVcmk7XG5cbmNsYXNzIE13VXJpIGV4dGVuZHMgVVJMIHtcblx0ZXh0ZW5kKG9iamVjdDoge1trZXk6IHN0cmluZ106IHN0cmluZ30pIHtcblx0XHRmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhvYmplY3QpKSB7XG5cdFx0XHR0aGlzLnNlYXJjaFBhcmFtcy5zZXQoa2V5LCB2YWx1ZSk7XG5cdFx0fVxuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cdGdldFJlbGF0aXZlUGF0aCgpIHtcblx0XHRyZXR1cm4gdGhpcy5wYXRobmFtZSArIHRoaXMuc2VhcmNoICsgdGhpcy5oYXNoO1xuXHR9XG59XG5cbmV4cG9ydCB7dHlwZSBDbGFzc013VXJpLCBNd1VyaX07XG4iLCAiaW1wb3J0IFJlYWN0IGZyb20gJ2V4dC5nYWRnZXQuUmVhY3QnO1xuXG50eXBlIE9vdWlDb25maXJtV2l0aFN0eWxlID0gKG1lc3NhZ2U6IHN0cmluZykgPT4gSlF1ZXJ5LlByb21pc2U8Ym9vbGVhbj47XG5cbi8qKlxuICogQHJlcXVpcmVzIG9vanMtdWktd2luZG93c1xuICogQHBhcmFtIHtzdHJpbmd9IFttZXNzYWdlXVxuICogQHJldHVybiB7SlF1ZXJ5LlByb21pc2U8Ym9vbGVhbj59XG4gKi9cbmNvbnN0IG9vdWlDb25maXJtV2l0aFN0eWxlOiBPb3VpQ29uZmlybVdpdGhTdHlsZSA9IChtZXNzYWdlKSA9PlxuXHRPTy51aVxuXHRcdC5jb25maXJtKFxuXHRcdFx0JChcblx0XHRcdFx0PGRpdlxuXHRcdFx0XHRcdGNsYXNzTmFtZT1cIm9vLXVpLXdpbmRvdy1mb290XCJcblx0XHRcdFx0XHRzdHlsZT17e1xuXHRcdFx0XHRcdFx0Ym9yZGVyOiAnLjFyZW0gc29saWQgIzA2NDVhZCcsXG5cdFx0XHRcdFx0XHRkaXNwbGF5OiAnZmxleCcsXG5cdFx0XHRcdFx0XHRqdXN0aWZ5Q29udGVudDogJ3NwYWNlLWV2ZW5seScsXG5cdFx0XHRcdFx0fX1cblx0XHRcdFx0PlxuXHRcdFx0XHRcdDxzcGFuXG5cdFx0XHRcdFx0XHRzdHlsZT17e1xuXHRcdFx0XHRcdFx0XHRmb250U2l6ZTogJzEuMnJlbScsXG5cdFx0XHRcdFx0XHRcdGZvbnRXZWlnaHQ6ICc1MDAnLFxuXHRcdFx0XHRcdFx0XHRsaW5lSGVpZ2h0OiAnMS44Jyxcblx0XHRcdFx0XHRcdFx0cGFkZGluZzogJy40ZW0gMCcsXG5cdFx0XHRcdFx0XHR9fVxuXHRcdFx0XHRcdD5cblx0XHRcdFx0XHRcdHttZXNzYWdlfVxuXHRcdFx0XHRcdDwvc3Bhbj5cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHQpIGFzIEpRdWVyeVxuXHRcdClcblx0XHQudGhlbigoaXNDb25maXJtOiBib29sZWFuKTogYm9vbGVhbiA9PiBpc0NvbmZpcm0pO1xuXG5leHBvcnQge3R5cGUgT291aUNvbmZpcm1XaXRoU3R5bGUsIG9vdWlDb25maXJtV2l0aFN0eWxlfTtcbiIsICJpbXBvcnQge2luaXRNd0FwaX0gZnJvbSAnLi9pbml0TXdBcGknO1xuXG50eXBlIFF1ZXJ5R2xvYmFsVXNlckdyb3VwcyA9IHR5cGVvZiBxdWVyeUdsb2JhbFVzZXJHcm91cHM7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBmdW5jLXN0eWxlXG5hc3luYyBmdW5jdGlvbiBxdWVyeUdsb2JhbFVzZXJHcm91cHMoZ3VpdXNlcjogc3RyaW5nKSB7XG5cdGNvbnN0IGFwaTogbXcuQXBpID0gaW5pdE13QXBpKCdVdGlsLVF1ZXJ5R2xvYmFsVXNlckdyb3VwcycpO1xuXG5cdGNvbnN0IENBQ0hFX0tFWV9QUkVGSVggPSAnZXh0LmdhZGdldC5VdGlsX3F1ZXJ5R2xvYmFsVXNlckdyb3Vwcy0nO1xuXG5cdGxldCBncm91cHM6IHN0cmluZ1tdID0gW107XG5cblx0Ly8gUXVlcnkgZnJvbSBjYWNoZVxuXHQvLyBDaGVjayBpZiB1c2VyIGdyb3VwIGluZm8gaXMgY2FjaGVkIGluIExvY2FsU3RvcmFnZVxuXHQvLyBJZiBjYWNoZWQsIGdldCB0aGVtIGZyb20gTG9jYWxTdG9yYWdlXG5cdGlmIChtdy5zdG9yYWdlLmdldE9iamVjdChDQUNIRV9LRVlfUFJFRklYICsgZ3VpdXNlcikpIHtcblx0XHRncm91cHMgPSBtdy5zdG9yYWdlLmdldE9iamVjdChDQUNIRV9LRVlfUFJFRklYICsgZ3VpdXNlcikgYXMgc3RyaW5nW107XG5cdFx0Ly8gUmVtb3ZlICcqJyBmcm9tIGdyb3Vwc1xuXHRcdGdyb3VwcyA9IGdyb3Vwcy5maWx0ZXIoKGVsZW1lbnQpID0+IHtcblx0XHRcdHJldHVybiBlbGVtZW50ICE9PSAnKic7XG5cdFx0fSk7XG5cdH0gZWxzZSB7XG5cdFx0Ly8gUXVlcnkgZnJvbSB3ZWJcblx0XHQvLyBRdWVyeSBwYXJhbXNcblx0XHRjb25zdCBwYXJhbXMgPSB7XG5cdFx0XHRhY3Rpb246ICdxdWVyeScsXG5cdFx0XHRmb3JtYXQ6ICdqc29uJyxcblx0XHRcdGZvcm1hdHZlcnNpb246ICcyJyxcblx0XHRcdG1ldGE6ICdnbG9iYWx1c2VyaW5mbycsXG5cdFx0XHRndWl1c2VyLFxuXHRcdFx0Z3VpcHJvcDogJ2dyb3VwcycsXG5cdFx0XHRzbWF4YWdlOiA2MDAsXG5cdFx0XHRtYXhhZ2U6IDYwMCxcblx0XHR9O1xuXHRcdGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgYXBpLmdldChwYXJhbXMpO1xuXG5cdFx0Ly8gRGUtY29uc3RydWN0IHRoZSByZXNwb25zZSBvYmplY3Rcblx0XHRjb25zdCBxdWVyeSA9IHJlc3BvbnNlWydxdWVyeSddIGFzIHtcblx0XHRcdGdsb2JhbHVzZXJpbmZvOiB7Z3JvdXBzOiBzdHJpbmdbXTsgbmFtZTogc3RyaW5nfTtcblx0XHR9O1xuXG5cdFx0aWYgKHF1ZXJ5Py5nbG9iYWx1c2VyaW5mbykge1xuXHRcdFx0Z3JvdXBzID0gcXVlcnkuZ2xvYmFsdXNlcmluZm8/Lmdyb3VwcyA/PyBbXTtcblx0XHRcdC8vIFJlbW92ZSAnKicgZnJvbSBncm91cHNcblx0XHRcdGdyb3VwcyA9IGdyb3Vwcy5maWx0ZXIoKGVsZW1lbnQpID0+IHtcblx0XHRcdFx0cmV0dXJuIGVsZW1lbnQgIT09ICcqJztcblx0XHRcdH0pO1xuXHRcdFx0Ly8gQ2FjaGUgZm9yIDEwIG1pbnV0ZXNcblx0XHRcdG13LnN0b3JhZ2Uuc2V0T2JqZWN0KENBQ0hFX0tFWV9QUkVGSVggKyBndWl1c2VyLCBncm91cHMsIDEwICogNjApO1xuXHRcdH1cblx0fVxuXG5cdHJldHVybiB7cXVlcnk6IHtnbG9iYWx1c2VyaW5mbzoge25hbWU6IGd1aXVzZXIsIGdyb3Vwc319fTtcbn1cblxuZXhwb3J0IHt0eXBlIFF1ZXJ5R2xvYmFsVXNlckdyb3VwcywgcXVlcnlHbG9iYWxVc2VyR3JvdXBzfTtcbiIsICJpbXBvcnQge2luaXRNd0FwaX0gZnJvbSAnLi9pbml0TXdBcGknO1xuXG50eXBlIFF1ZXJ5VXNlckdyb3VwcyA9IHR5cGVvZiBxdWVyeVVzZXJHcm91cHM7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBmdW5jLXN0eWxlXG5hc3luYyBmdW5jdGlvbiBxdWVyeVVzZXJHcm91cHModXNlcnM6IHN0cmluZ1tdKSB7XG5cdGNvbnN0IGFwaTogbXcuQXBpID0gaW5pdE13QXBpKCdVdGlsLVF1ZXJ5VXNlckdyb3VwcycpO1xuXG5cdGNvbnN0IENBQ0hFX0tFWV9QUkVGSVggPSAnZXh0LmdhZGdldC5VdGlsX3F1ZXJ5VXNlckdyb3Vwcy0nO1xuXG5cdGNvbnN0IGNhY2hlZFF1ZXJ5VXNlcnM6IHtncm91cHM6IHN0cmluZ1tdOyBuYW1lOiBzdHJpbmd9W10gPSBbXTtcblxuXHQvLyBRdWVyeSBmcm9tIGNhY2hlXG5cdGZvciAoY29uc3QgdXNlciBvZiB1c2Vycykge1xuXHRcdC8vIENoZWNrIGlmIHVzZXIgZ3JvdXAgaW5mbyBpcyBjYWNoZWQgaW4gTG9jYWxTdG9yYWdlXG5cdFx0Ly8gSWYgY2FjaGVkLCBnZXQgdGhlbSBmcm9tIExvY2FsU3RvcmFnZVxuXHRcdGlmIChtdy5zdG9yYWdlLmdldE9iamVjdChDQUNIRV9LRVlfUFJFRklYICsgdXNlcikpIHtcblx0XHRcdGxldCBncm91cHMgPSBtdy5zdG9yYWdlLmdldE9iamVjdChDQUNIRV9LRVlfUFJFRklYICsgdXNlcikgYXMgc3RyaW5nW107XG5cdFx0XHQvLyBSZW1vdmUgJyonIGZyb20gZ3JvdXBzXG5cdFx0XHRncm91cHMgPSBncm91cHMuZmlsdGVyKChlbGVtZW50KSA9PiB7XG5cdFx0XHRcdHJldHVybiBlbGVtZW50ICE9PSAnKic7XG5cdFx0XHR9KTtcblx0XHRcdC8vIFN0b3JlIGludG8gYXJyYXlcblx0XHRcdGNhY2hlZFF1ZXJ5VXNlcnNbY2FjaGVkUXVlcnlVc2Vycy5sZW5ndGhdID0ge25hbWU6IHVzZXIsIGdyb3Vwc307XG5cdFx0fVxuXHR9XG5cblx0Ly8gUXVlcnkgZnJvbSB3ZWJcblx0Y29uc3QgdXN1c2VycyA9IHVzZXJzLmZpbHRlcigodikgPT4ge1xuXHRcdC8vIFJlbW92ZSB1c2VyIHRoYXQgaGF2ZSBjYWNoZWQgdXNlciBncm91cHMgbG9jYWxseVxuXHRcdHJldHVybiAhbXcuc3RvcmFnZS5nZXRPYmplY3QoQ0FDSEVfS0VZX1BSRUZJWCArIHYpO1xuXHR9KTtcblxuXHQvLyBRdWVyeSBwYXJhbXNcblx0Y29uc3QgcGFyYW1zOiBBcGlRdWVyeVVzZXJzUGFyYW1zID0ge1xuXHRcdHVzdXNlcnMsXG5cdFx0YWN0aW9uOiAncXVlcnknLFxuXHRcdGZvcm1hdDogJ2pzb24nLFxuXHRcdGZvcm1hdHZlcnNpb246ICcyJyxcblx0XHRsaXN0OiAndXNlcnMnLFxuXHRcdHVzcHJvcDogJ2dyb3VwcycsXG5cdFx0c21heGFnZTogNjAwLFxuXHRcdG1heGFnZTogNjAwLFxuXHR9O1xuXHRjb25zdCByZXNwb25zZSA9IGF3YWl0IGFwaS5nZXQocGFyYW1zKTtcblxuXHQvLyBEZS1jb25zdHJ1Y3QgdGhlIHJlc3BvbnNlIG9iamVjdFxuXHRjb25zdCBxdWVyeSA9IHJlc3BvbnNlWydxdWVyeSddIGFzIHtcblx0XHR1c2Vyczoge2dyb3Vwczogc3RyaW5nW107IG5hbWU6IHN0cmluZ31bXTtcblx0fTtcblx0Y29uc3QgcXVlcnlVc2VycyA9IFsuLi4ocXVlcnk/LnVzZXJzID8/IFtdKSwgLi4uY2FjaGVkUXVlcnlVc2Vyc107XG5cblx0Zm9yIChjb25zdCB1c2VyIG9mIHF1ZXJ5VXNlcnMpIHtcblx0XHRpZiAodXNlcj8uZ3JvdXBzICYmIHVzZXI/Lm5hbWUpIHtcblx0XHRcdGxldCB7Z3JvdXBzfSA9IHVzZXI7XG5cdFx0XHQvLyBSZW1vdmUgJyonIGZyb20gZ3JvdXBzXG5cdFx0XHRncm91cHMgPSBncm91cHMuZmlsdGVyKChlbGVtZW50KSA9PiB7XG5cdFx0XHRcdHJldHVybiBlbGVtZW50ICE9PSAnKic7XG5cdFx0XHR9KTtcblx0XHRcdC8vIENhY2hlIGZvciAxMCBtaW51dGVzXG5cdFx0XHRtdy5zdG9yYWdlLnNldE9iamVjdChDQUNIRV9LRVlfUFJFRklYICsgdXNlci5uYW1lLCBncm91cHMsIDEwICogNjApO1xuXHRcdH1cblx0fVxuXG5cdHJldHVybiB7cXVlcnk6IHt1c2VyczogcXVlcnlVc2Vyc319O1xufVxuXG5leHBvcnQge3R5cGUgUXVlcnlVc2VyR3JvdXBzLCBxdWVyeVVzZXJHcm91cHN9O1xuIiwgInR5cGUgU2Nyb2xsVG9wID0gKFxuXHR0YXJnZXRIZWlnaHQ6IG51bWJlciB8IHN0cmluZyxcblx0ZWZmZWN0c09wdGlvbnNPckR1cmF0aW9uPzogSlF1ZXJ5LkVmZmVjdHNPcHRpb25zPEhUTUxFbGVtZW50PiB8IG51bWJlciB8ICdmYXN0JyB8ICdzbG93J1xuKSA9PiB2b2lkO1xuXG5jb25zdCBzY3JvbGxUb3A6IFNjcm9sbFRvcCA9ICh0YXJnZXRIZWlnaHQsIGVmZmVjdHNPcHRpb25zT3JEdXJhdGlvbiA9IHt9KSA9PiB7XG5cdGNvbnN0IG9wdGlvbnM6IEpRdWVyeS5FZmZlY3RzT3B0aW9uczxIVE1MRWxlbWVudD4gPVxuXHRcdHR5cGVvZiBlZmZlY3RzT3B0aW9uc09yRHVyYXRpb24gPT09ICdudW1iZXInIHx8IHR5cGVvZiBlZmZlY3RzT3B0aW9uc09yRHVyYXRpb24gPT09ICdzdHJpbmcnXG5cdFx0XHQ/IHtcblx0XHRcdFx0XHRkdXJhdGlvbjogZWZmZWN0c09wdGlvbnNPckR1cmF0aW9uLFxuXHRcdFx0XHRcdGVhc2luZzogJ2xpbmVhcicsXG5cdFx0XHRcdH1cblx0XHRcdDoge1xuXHRcdFx0XHRcdGR1cmF0aW9uOiAnc2xvdycsXG5cdFx0XHRcdFx0ZWFzaW5nOiAnbGluZWFyJyxcblx0XHRcdFx0XHQuLi5lZmZlY3RzT3B0aW9uc09yRHVyYXRpb24sXG5cdFx0XHRcdH07XG5cdCQoZG9jdW1lbnQpLmZpbmQoJ2h0bWwsIGJvZHknKS5hbmltYXRlKFxuXHRcdHtcblx0XHRcdHNjcm9sbFRvcDogdGFyZ2V0SGVpZ2h0LFxuXHRcdH0sXG5cdFx0b3B0aW9uc1xuXHQpO1xufTtcblxuZXhwb3J0IHt0eXBlIFNjcm9sbFRvcCwgc2Nyb2xsVG9wfTtcbiIsICJpbXBvcnQge2dlbmVyYXRlQXJyYXl9IGZyb20gJy4vZ2VuZXJhdGVBcnJheSc7XG5cbnR5cGUgVXNlcklzSW5Hcm91cCA9IHR5cGVvZiB1c2VySXNJbkdyb3VwO1xuXG5jb25zdCB1c2VySXNJbkdyb3VwID0gKGdyb3Vwczogc3RyaW5nIHwgc3RyaW5nW10pID0+IHtcblx0Y29uc3Qge3dnVXNlckdyb3Vwcywgd2dHbG9iYWxHcm91cHN9ID0gbXcuY29uZmlnLmdldCgpO1xuXHRyZXR1cm4gWy4uLih3Z1VzZXJHcm91cHMgfHwgW10pLCAuLi4oKHdnR2xvYmFsR3JvdXBzIGFzIHN0cmluZ1tdKSB8fCBbXSldLnNvbWUoKGVsZW1lbnQ6IHN0cmluZyk6IGJvb2xlYW4gPT4ge1xuXHRcdHJldHVybiBnZW5lcmF0ZUFycmF5KGdyb3VwcykuaW5jbHVkZXMoZWxlbWVudCk7XG5cdH0pO1xufTtcblxuZXhwb3J0IHt0eXBlIFVzZXJJc0luR3JvdXAsIHVzZXJJc0luR3JvdXB9O1xuIiwgInR5cGUgR2V0V3BTdW1tYXJ5Q29udGVudCA9IHR5cGVvZiBnZXRXcFN1bW1hcnlDb250ZW50O1xudHlwZSBTZXRXcFN1bW1hcnlDb250ZW50ID0gdHlwZW9mIHNldFdwU3VtbWFyeUNvbnRlbnQ7XG5cbmNvbnN0IGdldFdwU3VtbWFyeUNvbnRlbnQgPSAoeyRlZGl0Rm9ybX06IHskZWRpdEZvcm06IEpRdWVyeTxIVE1MRWxlbWVudD59KTogc3RyaW5nID0+IHtcblx0cmV0dXJuICRlZGl0Rm9ybS5maW5kPEhUTUxJbnB1dEVsZW1lbnQ+KCcjd3BTdW1tYXJ5Jyk/LnZhbCgpID8/ICcnO1xufTtcblxuY29uc3Qgc2V0V3BTdW1tYXJ5Q29udGVudCA9ICh7JGVkaXRGb3JtLCBjb250ZW50fTogeyRlZGl0Rm9ybTogSlF1ZXJ5PEhUTUxFbGVtZW50PjsgY29udGVudDogc3RyaW5nfSk6IHZvaWQgPT4ge1xuXHQkZWRpdEZvcm0uZmluZDxIVE1MSW5wdXRFbGVtZW50PignI3dwU3VtbWFyeScpLnZhbChjb250ZW50KTtcbn07XG5cbmV4cG9ydCB7Z2V0V3BTdW1tYXJ5Q29udGVudCwgdHlwZSBHZXRXcFN1bW1hcnlDb250ZW50LCBzZXRXcFN1bW1hcnlDb250ZW50LCB0eXBlIFNldFdwU3VtbWFyeUNvbnRlbnR9O1xuIiwgInR5cGUgR2V0V3BUZXh0Ym94MUNvbnRlbnQgPSB0eXBlb2YgZ2V0V3BUZXh0Ym94MUNvbnRlbnQ7XG50eXBlIFNldFdwVGV4dGJveDFDb250ZW50ID0gdHlwZW9mIHNldFdwVGV4dGJveDFDb250ZW50O1xuXG5jb25zdCBnZXRXcFRleHRib3gxQ29udGVudCA9ICh7JGVkaXRGb3JtfTogeyRlZGl0Rm9ybTogSlF1ZXJ5PEhUTUxFbGVtZW50Pn0pOiBzdHJpbmcgPT4ge1xuXHRyZXR1cm4gJGVkaXRGb3JtLmZpbmQ8SFRNTFRleHRBcmVhRWxlbWVudD4oJyN3cFRleHRib3gxJykudGV4dFNlbGVjdGlvbignZ2V0Q29udGVudHMnKSA/PyAnJztcbn07XG5cbmNvbnN0IHNldFdwVGV4dGJveDFDb250ZW50ID0gKHskZWRpdEZvcm0sIGNvbnRlbnR9OiB7JGVkaXRGb3JtOiBKUXVlcnk8SFRNTEVsZW1lbnQ+OyBjb250ZW50OiBzdHJpbmd9KTogdm9pZCA9PiB7XG5cdCRlZGl0Rm9ybS5maW5kPEhUTUxUZXh0QXJlYUVsZW1lbnQ+KCcjd3BUZXh0Ym94MScpLnRleHRTZWxlY3Rpb24oJ3NldENvbnRlbnRzJywgY29udGVudCk7XG59O1xuXG5leHBvcnQge2dldFdwVGV4dGJveDFDb250ZW50LCB0eXBlIEdldFdwVGV4dGJveDFDb250ZW50LCBzZXRXcFRleHRib3gxQ29udGVudCwgdHlwZSBTZXRXcFRleHRib3gxQ29udGVudH07XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUEsb0ZBQUFBLFVBQUFDLFNBQUE7QUFBQTtBQUVB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R0FBSW1ILGdCQUFnQixDQUFBLEdBQUssR0FBS0Msa0JBQStCLENBQUEsQ0FBRyxFQUFFRSxLQUFNbEMsYUFBNkI7QUFDNUcsV0FBTzlKLGNBQWMwSixNQUFNLEVBQUU1SCxTQUFTZ0ksT0FBTztFQUM5QyxDQUFDO0FBQ0Y7O0FDTkEsSUFBTTNKLHNCQUFzQkEsQ0FBQztFQUFDOEw7QUFBUyxNQUFnRDtBQUFBLE1BQUFDLHFCQUFBQztBQUN0RixVQUFBRCx1QkFBQUMsa0JBQU9GLFVBQVVOLEtBQXVCLFlBQVksT0FBQSxRQUFBUSxvQkFBQSxTQUFBLFNBQTdDQSxnQkFBZ0RDLElBQUksT0FBQSxRQUFBRix3QkFBQSxTQUFBQSxzQkFBSztBQUNqRTtBQUVBLElBQU12TCxzQkFBc0JBLENBQUM7RUFBQ3NMO0VBQVdJO0FBQU8sTUFBK0Q7QUFDOUdKLFlBQVVOLEtBQXVCLFlBQVksRUFBRVMsSUFBSUMsT0FBTztBQUMzRDs7QUNOQSxJQUFNak0sdUJBQXVCQSxDQUFDO0VBQUM2TDtBQUFTLE1BQWdEO0FBQUEsTUFBQUs7QUFDdkYsVUFBQUEsd0JBQU9MLFVBQVVOLEtBQTBCLGFBQWEsRUFBRVksY0FBYyxhQUFhLE9BQUEsUUFBQUQsMEJBQUEsU0FBQUEsd0JBQUs7QUFDM0Y7QUFFQSxJQUFNMUwsdUJBQXVCQSxDQUFDO0VBQUNxTDtFQUFXSTtBQUFPLE1BQStEO0FBQy9HSixZQUFVTixLQUEwQixhQUFhLEVBQUVZLGNBQWMsZUFBZUYsT0FBTztBQUN4RjsiLAogICJuYW1lcyI6IFsiZXhwb3J0cyIsICJtb2R1bGUiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiZ2xvYmFsVGhpcyIsICJkb2N1bWVudCIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJnbG9iYWxUaGlzIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImdsb2JhbFRoaXMiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiZ2xvYmFsVGhpcyIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJnbG9iYWxUaGlzIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImdsb2JhbFRoaXMiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiZ2xvYmFsVGhpcyIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJnbG9iYWxUaGlzIiwgIlN5bWJvbCIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImdsb2JhbFRoaXMiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiZ2xvYmFsVGhpcyIsICJUeXBlRXJyb3IiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiVXRpbF9leHBvcnRzIiwgIl9fZXhwb3J0IiwgIk13VXJpIiwgImFkZEV2ZW50TGlzdGVuZXJXaXRoUmVtb3ZlciIsICJjaGFuZ2VPcGFjaXR5V2hlbk1vdXNlRW50ZXJPckxlYXZlIiwgImNoZWNrQTExeUNvbmZpcm1LZXkiLCAiY2hlY2tEZXBlbmRlbmNpZXMiLCAiZGVsYXkiLCAiZmluZFZhcmlhbnRzIiwgImdlbmVyYXRlQXJyYXkiLCAiZ2VuZXJhdGVTdmdEYXRhVXJsIiwgImdldEJvZHkiLCAiZ2V0V3BTdW1tYXJ5Q29udGVudCIsICJnZXRXcFRleHRib3gxQ29udGVudCIsICJpbml0TXdBcGkiLCAiaXNWYWxpZEtleSIsICJvb3VpQ29uZmlybVdpdGhTdHlsZSIsICJxdWVyeUdsb2JhbFVzZXJHcm91cHMiLCAicXVlcnlVc2VyR3JvdXBzIiwgInNjcm9sbFRvcCIsICJzZXRXcFN1bW1hcnlDb250ZW50IiwgInNldFdwVGV4dGJveDFDb250ZW50IiwgInVuaXF1ZUFycmF5IiwgInVzZXJJc0luR3JvdXAiLCAibW9kdWxlIiwgImV4cG9ydHMiLCAiX190b0NvbW1vbkpTIiwgInRhcmdldCIsICJ0eXBlIiwgImxpc3RlbmVyIiwgIm9wdGlvbnMiLCAiYWRkRXZlbnRMaXN0ZW5lciIsICJyZW1vdmUiLCAicmVtb3ZlRXZlbnRMaXN0ZW5lciIsICJldmVudCIsICJvcGFjaXR5IiwgImN1cnJlbnRUYXJnZXQiLCAic3R5bGUiLCAidG9TdHJpbmciLCAiaW5jbHVkZXMiLCAia2V5IiwgImFyZ3MiLCAiZmxhdE1hcCIsICJhcmciLCAiQXJyYXkiLCAiaXNBcnJheSIsICJOb2RlTGlzdCIsICJ1c2VyQWdlbnQiLCAiYXBpVXJpIiwgImFwaU9wdGlvbnMiLCAiYWpheCIsICJoZWFkZXJzIiwgImNvbmNhdCIsICJtdyIsICJGb3JlaWduQXBpIiwgIkFwaSIsICJ1bmlxdWVBcnJheTIiLCAicmVzdWx0IiwgIl9pdGVyYXRvcjIiLCAiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIiLCAiX3N0ZXAyIiwgInMiLCAibiIsICJkb25lIiwgIml0ZW0iLCAidmFsdWUiLCAibGVuZ3RoIiwgImVyciIsICJlIiwgImYiLCAiX3giLCAiX3gyIiwgIl9jaGVja0RlcGVuZGVuY2llcyIsICJhcHBseSIsICJhcmd1bWVudHMiLCAiZ2FkZ2V0TmFtZXMiLCAib3B0aW9uIiwgImFwaSIsICJnYWRnZXRzIiwgIl9pdGVyYXRvcjMiLCAiX3N0ZXAzIiwgImdhZGdldCIsICJ1c2VyIiwgImdldCIsICJwb3N0V2l0aEVkaXRUb2tlbiIsICJhY3Rpb24iLCAiY2hhbmdlIiwgImxvYWRlciIsICJ1c2luZyIsICJtcyIsICJQcm9taXNlIiwgInJlc29sdmUiLCAic2V0VGltZW91dCIsICJfeDMiLCAiX2ZpbmRWYXJpYW50cyIsICJ0ZXh0IiwgIlZBUklBTlRTIiwgImFsbFZhcmlhbnRzIiwgInBhcmFtcyIsICJjb250ZW50bW9kZWwiLCAiZm9ybWF0IiwgImZvcm1hdHZlcnNpb24iLCAicHJvcCIsICJ0aXRsZSIsICJfaTIiLCAiX1ZBUklBTlRTIiwgIl9yZXNwb25zZSRxdWVyeSIsICJ2YXJpYW50IiwgInVzZWxhbmciLCAicmVzcG9uc2UiLCAicG9zdCIsICJkaXNwbGF5dGl0bGUiLCAidmFyaWFudEVsZW1lbnQiLCAiZG9jdW1lbnQiLCAiY3JlYXRlRWxlbWVudCIsICJpbm5lckhUTUwiLCAidGV4dENvbnRlbnQiLCAic3ZnIiwgInRyaW0iLCAic2xpY2UiLCAiaW5kZXhPZiIsICJzdGFydHNXaXRoIiwgImVuZHNXaXRoIiwgInJlcGxhY2UiLCAiZW5jb2RlVVJJQ29tcG9uZW50IiwgIiQiLCAicmVhZHkiLCAidGhlbiIsICIkYm9keSIsICJvYmplY3QiLCAiVVJMIiwgImV4dGVuZCIsICJfaSIsICJfT2JqZWN0JGVudHJpZXMiLCAiT2JqZWN0IiwgImVudHJpZXMiLCAic2VhcmNoUGFyYW1zIiwgInNldCIsICJnZXRSZWxhdGl2ZVBhdGgiLCAicGF0aG5hbWUiLCAic2VhcmNoIiwgImhhc2giLCAiaW1wb3J0X2V4dF9nYWRnZXQiLCAiX190b0VTTSIsICJyZXF1aXJlIiwgIm1lc3NhZ2UiLCAiT08iLCAidWkiLCAiY29uZmlybSIsICJkZWZhdWx0IiwgImNsYXNzTmFtZSIsICJib3JkZXIiLCAiZGlzcGxheSIsICJqdXN0aWZ5Q29udGVudCIsICJmb250U2l6ZSIsICJmb250V2VpZ2h0IiwgImxpbmVIZWlnaHQiLCAicGFkZGluZyIsICJpc0NvbmZpcm0iLCAiX3g0IiwgIl9xdWVyeUdsb2JhbFVzZXJHcm91cHMiLCAiZ3VpdXNlciIsICJDQUNIRV9LRVlfUFJFRklYIiwgImdyb3VwcyIsICJzdG9yYWdlIiwgImdldE9iamVjdCIsICJmaWx0ZXIiLCAiZWxlbWVudCIsICJtZXRhIiwgImd1aXByb3AiLCAic21heGFnZSIsICJtYXhhZ2UiLCAicXVlcnkiLCAiZ2xvYmFsdXNlcmluZm8iLCAiX3F1ZXJ5JGdsb2JhbHVzZXJpbmZvIiwgIl9xdWVyeSRnbG9iYWx1c2VyaW5mbzIiLCAic2V0T2JqZWN0IiwgIm5hbWUiLCAiX3g1IiwgIl9xdWVyeVVzZXJHcm91cHMiLCAidXNlcnMiLCAiX3F1ZXJ5JHVzZXJzIiwgImNhY2hlZFF1ZXJ5VXNlcnMiLCAiX2l0ZXJhdG9yNCIsICJfc3RlcDQiLCAidXN1c2VycyIsICJ2IiwgImxpc3QiLCAidXNwcm9wIiwgInF1ZXJ5VXNlcnMiLCAiX2kzIiwgIl9xdWVyeVVzZXJzIiwgInRhcmdldEhlaWdodCIsICJlZmZlY3RzT3B0aW9uc09yRHVyYXRpb24iLCAiZHVyYXRpb24iLCAiZWFzaW5nIiwgImZpbmQiLCAiYW5pbWF0ZSIsICJ3Z1VzZXJHcm91cHMiLCAid2dHbG9iYWxHcm91cHMiLCAiY29uZmlnIiwgInNvbWUiLCAiJGVkaXRGb3JtIiwgIl8kZWRpdEZvcm0kZmluZCR2YWwiLCAiXyRlZGl0Rm9ybSRmaW5kIiwgInZhbCIsICJjb250ZW50IiwgIl8kZWRpdEZvcm0kZmluZCR0ZXh0UyIsICJ0ZXh0U2VsZWN0aW9uIl0KfQo= +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsibm9kZV9tb2R1bGVzLy5wbnBtL2NvcmUtanNAMy40MC4wL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9pcy1jYWxsYWJsZS5qcyIsICJub2RlX21vZHVsZXMvLnBucG0vY29yZS1qc0AzLjQwLjAvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2ZhaWxzLmpzIiwgIm5vZGVfbW9kdWxlcy8ucG5wbS9jb3JlLWpzQDMuNDAuMC9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZGVzY3JpcHRvcnMuanMiLCAibm9kZV9tb2R1bGVzLy5wbnBtL2NvcmUtanNAMy40MC4wL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9nbG9iYWwtdGhpcy5qcyIsICJub2RlX21vZHVsZXMvLnBucG0vY29yZS1qc0AzLjQwLjAvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2lzLW9iamVjdC5qcyIsICJub2RlX21vZHVsZXMvLnBucG0vY29yZS1qc0AzLjQwLjAvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2RvY3VtZW50LWNyZWF0ZS1lbGVtZW50LmpzIiwgIm5vZGVfbW9kdWxlcy8ucG5wbS9jb3JlLWpzQDMuNDAuMC9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaWU4LWRvbS1kZWZpbmUuanMiLCAibm9kZV9tb2R1bGVzLy5wbnBtL2NvcmUtanNAMy40MC4wL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy92OC1wcm90b3R5cGUtZGVmaW5lLWJ1Zy5qcyIsICJub2RlX21vZHVsZXMvLnBucG0vY29yZS1qc0AzLjQwLjAvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2FuLW9iamVjdC5qcyIsICJub2RlX21vZHVsZXMvLnBucG0vY29yZS1qc0AzLjQwLjAvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2Z1bmN0aW9uLWJpbmQtbmF0aXZlLmpzIiwgIm5vZGVfbW9kdWxlcy8ucG5wbS9jb3JlLWpzQDMuNDAuMC9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZnVuY3Rpb24tY2FsbC5qcyIsICJub2RlX21vZHVsZXMvLnBucG0vY29yZS1qc0AzLjQwLjAvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2dldC1idWlsdC1pbi5qcyIsICJub2RlX21vZHVsZXMvLnBucG0vY29yZS1qc0AzLjQwLjAvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2Z1bmN0aW9uLXVuY3VycnktdGhpcy5qcyIsICJub2RlX21vZHVsZXMvLnBucG0vY29yZS1qc0AzLjQwLjAvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL29iamVjdC1pcy1wcm90b3R5cGUtb2YuanMiLCAibm9kZV9tb2R1bGVzLy5wbnBtL2NvcmUtanNAMy40MC4wL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9lbnZpcm9ubWVudC11c2VyLWFnZW50LmpzIiwgIm5vZGVfbW9kdWxlcy8ucG5wbS9jb3JlLWpzQDMuNDAuMC9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZW52aXJvbm1lbnQtdjgtdmVyc2lvbi5qcyIsICJub2RlX21vZHVsZXMvLnBucG0vY29yZS1qc0AzLjQwLjAvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3N5bWJvbC1jb25zdHJ1Y3Rvci1kZXRlY3Rpb24uanMiLCAibm9kZV9tb2R1bGVzLy5wbnBtL2NvcmUtanNAMy40MC4wL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy91c2Utc3ltYm9sLWFzLXVpZC5qcyIsICJub2RlX21vZHVsZXMvLnBucG0vY29yZS1qc0AzLjQwLjAvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2lzLXN5bWJvbC5qcyIsICJub2RlX21vZHVsZXMvLnBucG0vY29yZS1qc0AzLjQwLjAvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3RyeS10by1zdHJpbmcuanMiLCAibm9kZV9tb2R1bGVzLy5wbnBtL2NvcmUtanNAMy40MC4wL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9hLWNhbGxhYmxlLmpzIiwgIm5vZGVfbW9kdWxlcy8ucG5wbS9jb3JlLWpzQDMuNDAuMC9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaXMtbnVsbC1vci11bmRlZmluZWQuanMiLCAibm9kZV9tb2R1bGVzLy5wbnBtL2NvcmUtanNAMy40MC4wL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9nZXQtbWV0aG9kLmpzIiwgIm5vZGVfbW9kdWxlcy8ucG5wbS9jb3JlLWpzQDMuNDAuMC9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvb3JkaW5hcnktdG8tcHJpbWl0aXZlLmpzIiwgIm5vZGVfbW9kdWxlcy8ucG5wbS9jb3JlLWpzQDMuNDAuMC9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaXMtcHVyZS5qcyIsICJub2RlX21vZHVsZXMvLnBucG0vY29yZS1qc0AzLjQwLjAvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2RlZmluZS1nbG9iYWwtcHJvcGVydHkuanMiLCAibm9kZV9tb2R1bGVzLy5wbnBtL2NvcmUtanNAMy40MC4wL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9zaGFyZWQtc3RvcmUuanMiLCAibm9kZV9tb2R1bGVzLy5wbnBtL2NvcmUtanNAMy40MC4wL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9zaGFyZWQuanMiLCAibm9kZV9tb2R1bGVzLy5wbnBtL2NvcmUtanNAMy40MC4wL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9yZXF1aXJlLW9iamVjdC1jb2VyY2libGUuanMiLCAibm9kZV9tb2R1bGVzLy5wbnBtL2NvcmUtanNAMy40MC4wL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy90by1vYmplY3QuanMiLCAibm9kZV9tb2R1bGVzLy5wbnBtL2NvcmUtanNAMy40MC4wL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9oYXMtb3duLXByb3BlcnR5LmpzIiwgIm5vZGVfbW9kdWxlcy8ucG5wbS9jb3JlLWpzQDMuNDAuMC9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvdWlkLmpzIiwgIm5vZGVfbW9kdWxlcy8ucG5wbS9jb3JlLWpzQDMuNDAuMC9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wuanMiLCAibm9kZV9tb2R1bGVzLy5wbnBtL2NvcmUtanNAMy40MC4wL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy90by1wcmltaXRpdmUuanMiLCAibm9kZV9tb2R1bGVzLy5wbnBtL2NvcmUtanNAMy40MC4wL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy90by1wcm9wZXJ0eS1rZXkuanMiLCAibm9kZV9tb2R1bGVzLy5wbnBtL2NvcmUtanNAMy40MC4wL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9vYmplY3QtZGVmaW5lLXByb3BlcnR5LmpzIiwgIm5vZGVfbW9kdWxlcy8ucG5wbS9jb3JlLWpzQDMuNDAuMC9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZnVuY3Rpb24tbmFtZS5qcyIsICJub2RlX21vZHVsZXMvLnBucG0vY29yZS1qc0AzLjQwLjAvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2luc3BlY3Qtc291cmNlLmpzIiwgIm5vZGVfbW9kdWxlcy8ucG5wbS9jb3JlLWpzQDMuNDAuMC9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvd2Vhay1tYXAtYmFzaWMtZGV0ZWN0aW9uLmpzIiwgIm5vZGVfbW9kdWxlcy8ucG5wbS9jb3JlLWpzQDMuNDAuMC9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvY3JlYXRlLXByb3BlcnR5LWRlc2NyaXB0b3IuanMiLCAibm9kZV9tb2R1bGVzLy5wbnBtL2NvcmUtanNAMy40MC4wL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9jcmVhdGUtbm9uLWVudW1lcmFibGUtcHJvcGVydHkuanMiLCAibm9kZV9tb2R1bGVzLy5wbnBtL2NvcmUtanNAMy40MC4wL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9zaGFyZWQta2V5LmpzIiwgIm5vZGVfbW9kdWxlcy8ucG5wbS9jb3JlLWpzQDMuNDAuMC9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaGlkZGVuLWtleXMuanMiLCAibm9kZV9tb2R1bGVzLy5wbnBtL2NvcmUtanNAMy40MC4wL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9pbnRlcm5hbC1zdGF0ZS5qcyIsICJub2RlX21vZHVsZXMvLnBucG0vY29yZS1qc0AzLjQwLjAvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL21ha2UtYnVpbHQtaW4uanMiLCAibm9kZV9tb2R1bGVzLy5wbnBtL2NvcmUtanNAMy40MC4wL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9kZWZpbmUtYnVpbHQtaW4uanMiLCAibm9kZV9tb2R1bGVzLy5wbnBtL2NvcmUtanNAMy40MC4wL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy90by1zdHJpbmctdGFnLXN1cHBvcnQuanMiLCAibm9kZV9tb2R1bGVzLy5wbnBtL2NvcmUtanNAMy40MC4wL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9jbGFzc29mLXJhdy5qcyIsICJub2RlX21vZHVsZXMvLnBucG0vY29yZS1qc0AzLjQwLjAvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2NsYXNzb2YuanMiLCAibm9kZV9tb2R1bGVzLy5wbnBtL2NvcmUtanNAMy40MC4wL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy90by1zdHJpbmcuanMiLCAibm9kZV9tb2R1bGVzLy5wbnBtL2NvcmUtanNAMy40MC4wL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy92YWxpZGF0ZS1hcmd1bWVudHMtbGVuZ3RoLmpzIiwgIm5vZGVfbW9kdWxlcy8ucG5wbS9jb3JlLWpzQDMuNDAuMC9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL3dlYi51cmwtc2VhcmNoLXBhcmFtcy5kZWxldGUuanMiLCAibm9kZV9tb2R1bGVzLy5wbnBtL2NvcmUtanNAMy40MC4wL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvd2ViLnVybC1zZWFyY2gtcGFyYW1zLmhhcy5qcyIsICJub2RlX21vZHVsZXMvLnBucG0vY29yZS1qc0AzLjQwLjAvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2RlZmluZS1idWlsdC1pbi1hY2Nlc3Nvci5qcyIsICJub2RlX21vZHVsZXMvLnBucG0vY29yZS1qc0AzLjQwLjAvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy93ZWIudXJsLXNlYXJjaC1wYXJhbXMuc2l6ZS5qcyIsICJzcmMvVXRpbC9VdGlsLnRzIiwgInNyYy9VdGlsL21vZHVsZXMvYWRkRXZlbnRMaXN0ZW5lcldpdGhSZW1vdmVyLnRzIiwgInNyYy9VdGlsL21vZHVsZXMvY2hhbmdlT3BhY2l0eVdoZW5Nb3VzZUVudGVyT3JMZWF2ZS50cyIsICJzcmMvVXRpbC9tb2R1bGVzL2NoZWNrQTExeUNvbmZpcm1LZXkudHMiLCAic3JjL1V0aWwvbW9kdWxlcy9nZW5lcmF0ZUFycmF5LnRzIiwgInNyYy9VdGlsL21vZHVsZXMvaW5pdE13QXBpLnRzIiwgInNyYy9VdGlsL21vZHVsZXMvdW5pcXVlQXJyYXkudHMiLCAic3JjL1V0aWwvbW9kdWxlcy9jaGVja0RlcGVuZGVuY2llcy50cyIsICJzcmMvVXRpbC9tb2R1bGVzL2RlbGF5LnRzIiwgInNyYy9VdGlsL21vZHVsZXMvZmluZFZhcmlhbnRzLnRzIiwgInNyYy9VdGlsL21vZHVsZXMvZ2VuZXJhdGVTdmdEYXRhVXJsLnRzIiwgInNyYy9VdGlsL21vZHVsZXMvZ2V0Qm9keS50cyIsICJzcmMvVXRpbC9tb2R1bGVzL2lzVmFsaWRLZXkudHMiLCAic3JjL1V0aWwvbW9kdWxlcy9td1VyaS50cyIsICJzcmMvVXRpbC9tb2R1bGVzL29vdWlDb25maXJtV2l0aFN0eWxlLnRzeCIsICJzcmMvVXRpbC9tb2R1bGVzL3F1ZXJ5R2xvYmFsVXNlckdyb3Vwcy50cyIsICJzcmMvVXRpbC9tb2R1bGVzL3F1ZXJ5VXNlckdyb3Vwcy50cyIsICJzcmMvVXRpbC9tb2R1bGVzL3Njcm9sbFRvcC50cyIsICJzcmMvVXRpbC9tb2R1bGVzL3VzZXJJc0luR3JvdXAudHMiLCAic3JjL1V0aWwvbW9kdWxlcy93cFN1bW1hcnlDb250ZW50LnRzIiwgInNyYy9VdGlsL21vZHVsZXMvd3BUZXh0Ym94MUNvbnRlbnQudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIid1c2Ugc3RyaWN0Jztcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtSXNIVE1MRERBLWludGVybmFsLXNsb3RcbnZhciBkb2N1bWVudEFsbCA9IHR5cGVvZiBkb2N1bWVudCA9PSAnb2JqZWN0JyAmJiBkb2N1bWVudC5hbGw7XG5cbi8vIGBJc0NhbGxhYmxlYCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtaXNjYWxsYWJsZVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHVuaWNvcm4vbm8tdHlwZW9mLXVuZGVmaW5lZCAtLSByZXF1aXJlZCBmb3IgdGVzdGluZ1xubW9kdWxlLmV4cG9ydHMgPSB0eXBlb2YgZG9jdW1lbnRBbGwgPT0gJ3VuZGVmaW5lZCcgJiYgZG9jdW1lbnRBbGwgIT09IHVuZGVmaW5lZCA/IGZ1bmN0aW9uIChhcmd1bWVudCkge1xuICByZXR1cm4gdHlwZW9mIGFyZ3VtZW50ID09ICdmdW5jdGlvbicgfHwgYXJndW1lbnQgPT09IGRvY3VtZW50QWxsO1xufSA6IGZ1bmN0aW9uIChhcmd1bWVudCkge1xuICByZXR1cm4gdHlwZW9mIGFyZ3VtZW50ID09ICdmdW5jdGlvbic7XG59O1xuIiwgIid1c2Ugc3RyaWN0Jztcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGV4ZWMpIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gISFleGVjKCk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn07XG4iLCAiJ3VzZSBzdHJpY3QnO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG5cbi8vIERldGVjdCBJRTgncyBpbmNvbXBsZXRlIGRlZmluZVByb3BlcnR5IGltcGxlbWVudGF0aW9uXG5tb2R1bGUuZXhwb3J0cyA9ICFmYWlscyhmdW5jdGlvbiAoKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy9uby1vYmplY3QtZGVmaW5lcHJvcGVydHkgLS0gcmVxdWlyZWQgZm9yIHRlc3RpbmdcbiAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgMSwgeyBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIDc7IH0gfSlbMV0gIT09IDc7XG59KTtcbiIsICIndXNlIHN0cmljdCc7XG52YXIgY2hlY2sgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIGl0ICYmIGl0Lk1hdGggPT09IE1hdGggJiYgaXQ7XG59O1xuXG4vLyBodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qcy9pc3N1ZXMvODYjaXNzdWVjb21tZW50LTExNTc1OTAyOFxubW9kdWxlLmV4cG9ydHMgPVxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tZ2xvYmFsLXRoaXMgLS0gc2FmZVxuICBjaGVjayh0eXBlb2YgZ2xvYmFsVGhpcyA9PSAnb2JqZWN0JyAmJiBnbG9iYWxUaGlzKSB8fFxuICBjaGVjayh0eXBlb2Ygd2luZG93ID09ICdvYmplY3QnICYmIHdpbmRvdykgfHxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXJlc3RyaWN0ZWQtZ2xvYmFscyAtLSBzYWZlXG4gIGNoZWNrKHR5cGVvZiBzZWxmID09ICdvYmplY3QnICYmIHNlbGYpIHx8XG4gIGNoZWNrKHR5cGVvZiBnbG9iYWwgPT0gJ29iamVjdCcgJiYgZ2xvYmFsKSB8fFxuICBjaGVjayh0eXBlb2YgdGhpcyA9PSAnb2JqZWN0JyAmJiB0aGlzKSB8fFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tbmV3LWZ1bmMgLS0gZmFsbGJhY2tcbiAgKGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH0pKCkgfHwgRnVuY3Rpb24oJ3JldHVybiB0aGlzJykoKTtcbiIsICIndXNlIHN0cmljdCc7XG52YXIgaXNDYWxsYWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1jYWxsYWJsZScpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gdHlwZW9mIGl0ID09ICdvYmplY3QnID8gaXQgIT09IG51bGwgOiBpc0NhbGxhYmxlKGl0KTtcbn07XG4iLCAiJ3VzZSBzdHJpY3QnO1xudmFyIGdsb2JhbFRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsLXRoaXMnKTtcbnZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1vYmplY3QnKTtcblxudmFyIGRvY3VtZW50ID0gZ2xvYmFsVGhpcy5kb2N1bWVudDtcbi8vIHR5cGVvZiBkb2N1bWVudC5jcmVhdGVFbGVtZW50IGlzICdvYmplY3QnIGluIG9sZCBJRVxudmFyIEVYSVNUUyA9IGlzT2JqZWN0KGRvY3VtZW50KSAmJiBpc09iamVjdChkb2N1bWVudC5jcmVhdGVFbGVtZW50KTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIEVYSVNUUyA/IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoaXQpIDoge307XG59O1xuIiwgIid1c2Ugc3RyaWN0JztcbnZhciBERVNDUklQVE9SUyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZXNjcmlwdG9ycycpO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG52YXIgY3JlYXRlRWxlbWVudCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kb2N1bWVudC1jcmVhdGUtZWxlbWVudCcpO1xuXG4vLyBUaGFua3MgdG8gSUU4IGZvciBpdHMgZnVubnkgZGVmaW5lUHJvcGVydHlcbm1vZHVsZS5leHBvcnRzID0gIURFU0NSSVBUT1JTICYmICFmYWlscyhmdW5jdGlvbiAoKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy9uby1vYmplY3QtZGVmaW5lcHJvcGVydHkgLS0gcmVxdWlyZWQgZm9yIHRlc3RpbmdcbiAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjcmVhdGVFbGVtZW50KCdkaXYnKSwgJ2EnLCB7XG4gICAgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiA3OyB9XG4gIH0pLmEgIT09IDc7XG59KTtcbiIsICIndXNlIHN0cmljdCc7XG52YXIgREVTQ1JJUFRPUlMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVzY3JpcHRvcnMnKTtcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xuXG4vLyBWOCB+IENocm9tZSAzNi1cbi8vIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC92OC9pc3N1ZXMvZGV0YWlsP2lkPTMzMzRcbm1vZHVsZS5leHBvcnRzID0gREVTQ1JJUFRPUlMgJiYgZmFpbHMoZnVuY3Rpb24gKCkge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tb2JqZWN0LWRlZmluZXByb3BlcnR5IC0tIHJlcXVpcmVkIGZvciB0ZXN0aW5nXG4gIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoZnVuY3Rpb24gKCkgeyAvKiBlbXB0eSAqLyB9LCAncHJvdG90eXBlJywge1xuICAgIHZhbHVlOiA0MixcbiAgICB3cml0YWJsZTogZmFsc2VcbiAgfSkucHJvdG90eXBlICE9PSA0Mjtcbn0pO1xuIiwgIid1c2Ugc3RyaWN0JztcbnZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1vYmplY3QnKTtcblxudmFyICRTdHJpbmcgPSBTdHJpbmc7XG52YXIgJFR5cGVFcnJvciA9IFR5cGVFcnJvcjtcblxuLy8gYEFzc2VydDogVHlwZShhcmd1bWVudCkgaXMgT2JqZWN0YFxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoYXJndW1lbnQpIHtcbiAgaWYgKGlzT2JqZWN0KGFyZ3VtZW50KSkgcmV0dXJuIGFyZ3VtZW50O1xuICB0aHJvdyBuZXcgJFR5cGVFcnJvcigkU3RyaW5nKGFyZ3VtZW50KSArICcgaXMgbm90IGFuIG9iamVjdCcpO1xufTtcbiIsICIndXNlIHN0cmljdCc7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcblxubW9kdWxlLmV4cG9ydHMgPSAhZmFpbHMoZnVuY3Rpb24gKCkge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tZnVuY3Rpb24tcHJvdG90eXBlLWJpbmQgLS0gc2FmZVxuICB2YXIgdGVzdCA9IChmdW5jdGlvbiAoKSB7IC8qIGVtcHR5ICovIH0pLmJpbmQoKTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXByb3RvdHlwZS1idWlsdGlucyAtLSBzYWZlXG4gIHJldHVybiB0eXBlb2YgdGVzdCAhPSAnZnVuY3Rpb24nIHx8IHRlc3QuaGFzT3duUHJvcGVydHkoJ3Byb3RvdHlwZScpO1xufSk7XG4iLCAiJ3VzZSBzdHJpY3QnO1xudmFyIE5BVElWRV9CSU5EID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLWJpbmQtbmF0aXZlJyk7XG5cbnZhciBjYWxsID0gRnVuY3Rpb24ucHJvdG90eXBlLmNhbGw7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tZnVuY3Rpb24tcHJvdG90eXBlLWJpbmQgLS0gc2FmZVxubW9kdWxlLmV4cG9ydHMgPSBOQVRJVkVfQklORCA/IGNhbGwuYmluZChjYWxsKSA6IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIGNhbGwuYXBwbHkoY2FsbCwgYXJndW1lbnRzKTtcbn07XG4iLCAiJ3VzZSBzdHJpY3QnO1xudmFyIGdsb2JhbFRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsLXRoaXMnKTtcbnZhciBpc0NhbGxhYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWNhbGxhYmxlJyk7XG5cbnZhciBhRnVuY3Rpb24gPSBmdW5jdGlvbiAoYXJndW1lbnQpIHtcbiAgcmV0dXJuIGlzQ2FsbGFibGUoYXJndW1lbnQpID8gYXJndW1lbnQgOiB1bmRlZmluZWQ7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChuYW1lc3BhY2UsIG1ldGhvZCkge1xuICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA8IDIgPyBhRnVuY3Rpb24oZ2xvYmFsVGhpc1tuYW1lc3BhY2VdKSA6IGdsb2JhbFRoaXNbbmFtZXNwYWNlXSAmJiBnbG9iYWxUaGlzW25hbWVzcGFjZV1bbWV0aG9kXTtcbn07XG4iLCAiJ3VzZSBzdHJpY3QnO1xudmFyIE5BVElWRV9CSU5EID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLWJpbmQtbmF0aXZlJyk7XG5cbnZhciBGdW5jdGlvblByb3RvdHlwZSA9IEZ1bmN0aW9uLnByb3RvdHlwZTtcbnZhciBjYWxsID0gRnVuY3Rpb25Qcm90b3R5cGUuY2FsbDtcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy9uby1mdW5jdGlvbi1wcm90b3R5cGUtYmluZCAtLSBzYWZlXG52YXIgdW5jdXJyeVRoaXNXaXRoQmluZCA9IE5BVElWRV9CSU5EICYmIEZ1bmN0aW9uUHJvdG90eXBlLmJpbmQuYmluZChjYWxsLCBjYWxsKTtcblxubW9kdWxlLmV4cG9ydHMgPSBOQVRJVkVfQklORCA/IHVuY3VycnlUaGlzV2l0aEJpbmQgOiBmdW5jdGlvbiAoZm4pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gY2FsbC5hcHBseShmbiwgYXJndW1lbnRzKTtcbiAgfTtcbn07XG4iLCAiJ3VzZSBzdHJpY3QnO1xudmFyIHVuY3VycnlUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLXVuY3VycnktdGhpcycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHVuY3VycnlUaGlzKHt9LmlzUHJvdG90eXBlT2YpO1xuIiwgIid1c2Ugc3RyaWN0JztcbnZhciBnbG9iYWxUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbC10aGlzJyk7XG5cbnZhciBuYXZpZ2F0b3IgPSBnbG9iYWxUaGlzLm5hdmlnYXRvcjtcbnZhciB1c2VyQWdlbnQgPSBuYXZpZ2F0b3IgJiYgbmF2aWdhdG9yLnVzZXJBZ2VudDtcblxubW9kdWxlLmV4cG9ydHMgPSB1c2VyQWdlbnQgPyBTdHJpbmcodXNlckFnZW50KSA6ICcnO1xuIiwgIid1c2Ugc3RyaWN0JztcbnZhciBnbG9iYWxUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbC10aGlzJyk7XG52YXIgdXNlckFnZW50ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Vudmlyb25tZW50LXVzZXItYWdlbnQnKTtcblxudmFyIHByb2Nlc3MgPSBnbG9iYWxUaGlzLnByb2Nlc3M7XG52YXIgRGVubyA9IGdsb2JhbFRoaXMuRGVubztcbnZhciB2ZXJzaW9ucyA9IHByb2Nlc3MgJiYgcHJvY2Vzcy52ZXJzaW9ucyB8fCBEZW5vICYmIERlbm8udmVyc2lvbjtcbnZhciB2OCA9IHZlcnNpb25zICYmIHZlcnNpb25zLnY4O1xudmFyIG1hdGNoLCB2ZXJzaW9uO1xuXG5pZiAodjgpIHtcbiAgbWF0Y2ggPSB2OC5zcGxpdCgnLicpO1xuICAvLyBpbiBvbGQgQ2hyb21lLCB2ZXJzaW9ucyBvZiBWOCBpc24ndCBWOCA9IENocm9tZSAvIDEwXG4gIC8vIGJ1dCB0aGVpciBjb3JyZWN0IHZlcnNpb25zIGFyZSBub3QgaW50ZXJlc3RpbmcgZm9yIHVzXG4gIHZlcnNpb24gPSBtYXRjaFswXSA+IDAgJiYgbWF0Y2hbMF0gPCA0ID8gMSA6ICsobWF0Y2hbMF0gKyBtYXRjaFsxXSk7XG59XG5cbi8vIEJyb3dzZXJGUyBOb2RlSlMgYHByb2Nlc3NgIHBvbHlmaWxsIGluY29ycmVjdGx5IHNldCBgLnY4YCB0byBgMC4wYFxuLy8gc28gY2hlY2sgYHVzZXJBZ2VudGAgZXZlbiBpZiBgLnY4YCBleGlzdHMsIGJ1dCAwXG5pZiAoIXZlcnNpb24gJiYgdXNlckFnZW50KSB7XG4gIG1hdGNoID0gdXNlckFnZW50Lm1hdGNoKC9FZGdlXFwvKFxcZCspLyk7XG4gIGlmICghbWF0Y2ggfHwgbWF0Y2hbMV0gPj0gNzQpIHtcbiAgICBtYXRjaCA9IHVzZXJBZ2VudC5tYXRjaCgvQ2hyb21lXFwvKFxcZCspLyk7XG4gICAgaWYgKG1hdGNoKSB2ZXJzaW9uID0gK21hdGNoWzFdO1xuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gdmVyc2lvbjtcbiIsICIndXNlIHN0cmljdCc7XG4vKiBlc2xpbnQtZGlzYWJsZSBlcy9uby1zeW1ib2wgLS0gcmVxdWlyZWQgZm9yIHRlc3RpbmcgKi9cbnZhciBWOF9WRVJTSU9OID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Vudmlyb25tZW50LXY4LXZlcnNpb24nKTtcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xudmFyIGdsb2JhbFRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsLXRoaXMnKTtcblxudmFyICRTdHJpbmcgPSBnbG9iYWxUaGlzLlN0cmluZztcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzL25vLW9iamVjdC1nZXRvd25wcm9wZXJ0eXN5bWJvbHMgLS0gcmVxdWlyZWQgZm9yIHRlc3Rpbmdcbm1vZHVsZS5leHBvcnRzID0gISFPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzICYmICFmYWlscyhmdW5jdGlvbiAoKSB7XG4gIHZhciBzeW1ib2wgPSBTeW1ib2woJ3N5bWJvbCBkZXRlY3Rpb24nKTtcbiAgLy8gQ2hyb21lIDM4IFN5bWJvbCBoYXMgaW5jb3JyZWN0IHRvU3RyaW5nIGNvbnZlcnNpb25cbiAgLy8gYGdldC1vd24tcHJvcGVydHktc3ltYm9sc2AgcG9seWZpbGwgc3ltYm9scyBjb252ZXJ0ZWQgdG8gb2JqZWN0IGFyZSBub3QgU3ltYm9sIGluc3RhbmNlc1xuICAvLyBuYjogRG8gbm90IGNhbGwgYFN0cmluZ2AgZGlyZWN0bHkgdG8gYXZvaWQgdGhpcyBiZWluZyBvcHRpbWl6ZWQgb3V0IHRvIGBzeW1ib2wrJydgIHdoaWNoIHdpbGwsXG4gIC8vIG9mIGNvdXJzZSwgZmFpbC5cbiAgcmV0dXJuICEkU3RyaW5nKHN5bWJvbCkgfHwgIShPYmplY3Qoc3ltYm9sKSBpbnN0YW5jZW9mIFN5bWJvbCkgfHxcbiAgICAvLyBDaHJvbWUgMzgtNDAgc3ltYm9scyBhcmUgbm90IGluaGVyaXRlZCBmcm9tIERPTSBjb2xsZWN0aW9ucyBwcm90b3R5cGVzIHRvIGluc3RhbmNlc1xuICAgICFTeW1ib2wuc2hhbSAmJiBWOF9WRVJTSU9OICYmIFY4X1ZFUlNJT04gPCA0MTtcbn0pO1xuIiwgIid1c2Ugc3RyaWN0Jztcbi8qIGVzbGludC1kaXNhYmxlIGVzL25vLXN5bWJvbCAtLSByZXF1aXJlZCBmb3IgdGVzdGluZyAqL1xudmFyIE5BVElWRV9TWU1CT0wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc3ltYm9sLWNvbnN0cnVjdG9yLWRldGVjdGlvbicpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IE5BVElWRV9TWU1CT0wgJiZcbiAgIVN5bWJvbC5zaGFtICYmXG4gIHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPT0gJ3N5bWJvbCc7XG4iLCAiJ3VzZSBzdHJpY3QnO1xudmFyIGdldEJ1aWx0SW4gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2V0LWJ1aWx0LWluJyk7XG52YXIgaXNDYWxsYWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1jYWxsYWJsZScpO1xudmFyIGlzUHJvdG90eXBlT2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWlzLXByb3RvdHlwZS1vZicpO1xudmFyIFVTRV9TWU1CT0xfQVNfVUlEID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3VzZS1zeW1ib2wtYXMtdWlkJyk7XG5cbnZhciAkT2JqZWN0ID0gT2JqZWN0O1xuXG5tb2R1bGUuZXhwb3J0cyA9IFVTRV9TWU1CT0xfQVNfVUlEID8gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiB0eXBlb2YgaXQgPT0gJ3N5bWJvbCc7XG59IDogZnVuY3Rpb24gKGl0KSB7XG4gIHZhciAkU3ltYm9sID0gZ2V0QnVpbHRJbignU3ltYm9sJyk7XG4gIHJldHVybiBpc0NhbGxhYmxlKCRTeW1ib2wpICYmIGlzUHJvdG90eXBlT2YoJFN5bWJvbC5wcm90b3R5cGUsICRPYmplY3QoaXQpKTtcbn07XG4iLCAiJ3VzZSBzdHJpY3QnO1xudmFyICRTdHJpbmcgPSBTdHJpbmc7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGFyZ3VtZW50KSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuICRTdHJpbmcoYXJndW1lbnQpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJldHVybiAnT2JqZWN0JztcbiAgfVxufTtcbiIsICIndXNlIHN0cmljdCc7XG52YXIgaXNDYWxsYWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1jYWxsYWJsZScpO1xudmFyIHRyeVRvU3RyaW5nID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RyeS10by1zdHJpbmcnKTtcblxudmFyICRUeXBlRXJyb3IgPSBUeXBlRXJyb3I7XG5cbi8vIGBBc3NlcnQ6IElzQ2FsbGFibGUoYXJndW1lbnQpIGlzIHRydWVgXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChhcmd1bWVudCkge1xuICBpZiAoaXNDYWxsYWJsZShhcmd1bWVudCkpIHJldHVybiBhcmd1bWVudDtcbiAgdGhyb3cgbmV3ICRUeXBlRXJyb3IodHJ5VG9TdHJpbmcoYXJndW1lbnQpICsgJyBpcyBub3QgYSBmdW5jdGlvbicpO1xufTtcbiIsICIndXNlIHN0cmljdCc7XG4vLyB3ZSBjYW4ndCB1c2UganVzdCBgaXQgPT0gbnVsbGAgc2luY2Ugb2YgYGRvY3VtZW50LmFsbGAgc3BlY2lhbCBjYXNlXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLUlzSFRNTEREQS1pbnRlcm5hbC1zbG90LWFlY1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIGl0ID09PSBudWxsIHx8IGl0ID09PSB1bmRlZmluZWQ7XG59O1xuIiwgIid1c2Ugc3RyaWN0JztcbnZhciBhQ2FsbGFibGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYS1jYWxsYWJsZScpO1xudmFyIGlzTnVsbE9yVW5kZWZpbmVkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLW51bGwtb3ItdW5kZWZpbmVkJyk7XG5cbi8vIGBHZXRNZXRob2RgIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1nZXRtZXRob2Rcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKFYsIFApIHtcbiAgdmFyIGZ1bmMgPSBWW1BdO1xuICByZXR1cm4gaXNOdWxsT3JVbmRlZmluZWQoZnVuYykgPyB1bmRlZmluZWQgOiBhQ2FsbGFibGUoZnVuYyk7XG59O1xuIiwgIid1c2Ugc3RyaWN0JztcbnZhciBjYWxsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLWNhbGwnKTtcbnZhciBpc0NhbGxhYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWNhbGxhYmxlJyk7XG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtb2JqZWN0Jyk7XG5cbnZhciAkVHlwZUVycm9yID0gVHlwZUVycm9yO1xuXG4vLyBgT3JkaW5hcnlUb1ByaW1pdGl2ZWAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLW9yZGluYXJ5dG9wcmltaXRpdmVcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGlucHV0LCBwcmVmKSB7XG4gIHZhciBmbiwgdmFsO1xuICBpZiAocHJlZiA9PT0gJ3N0cmluZycgJiYgaXNDYWxsYWJsZShmbiA9IGlucHV0LnRvU3RyaW5nKSAmJiAhaXNPYmplY3QodmFsID0gY2FsbChmbiwgaW5wdXQpKSkgcmV0dXJuIHZhbDtcbiAgaWYgKGlzQ2FsbGFibGUoZm4gPSBpbnB1dC52YWx1ZU9mKSAmJiAhaXNPYmplY3QodmFsID0gY2FsbChmbiwgaW5wdXQpKSkgcmV0dXJuIHZhbDtcbiAgaWYgKHByZWYgIT09ICdzdHJpbmcnICYmIGlzQ2FsbGFibGUoZm4gPSBpbnB1dC50b1N0cmluZykgJiYgIWlzT2JqZWN0KHZhbCA9IGNhbGwoZm4sIGlucHV0KSkpIHJldHVybiB2YWw7XG4gIHRocm93IG5ldyAkVHlwZUVycm9yKFwiQ2FuJ3QgY29udmVydCBvYmplY3QgdG8gcHJpbWl0aXZlIHZhbHVlXCIpO1xufTtcbiIsICIndXNlIHN0cmljdCc7XG5tb2R1bGUuZXhwb3J0cyA9IGZhbHNlO1xuIiwgIid1c2Ugc3RyaWN0JztcbnZhciBnbG9iYWxUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbC10aGlzJyk7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy9uby1vYmplY3QtZGVmaW5lcHJvcGVydHkgLS0gc2FmZVxudmFyIGRlZmluZVByb3BlcnR5ID0gT2JqZWN0LmRlZmluZVByb3BlcnR5O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChrZXksIHZhbHVlKSB7XG4gIHRyeSB7XG4gICAgZGVmaW5lUHJvcGVydHkoZ2xvYmFsVGhpcywga2V5LCB7IHZhbHVlOiB2YWx1ZSwgY29uZmlndXJhYmxlOiB0cnVlLCB3cml0YWJsZTogdHJ1ZSB9KTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBnbG9iYWxUaGlzW2tleV0gPSB2YWx1ZTtcbiAgfSByZXR1cm4gdmFsdWU7XG59O1xuIiwgIid1c2Ugc3RyaWN0JztcbnZhciBJU19QVVJFID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLXB1cmUnKTtcbnZhciBnbG9iYWxUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbC10aGlzJyk7XG52YXIgZGVmaW5lR2xvYmFsUHJvcGVydHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVmaW5lLWdsb2JhbC1wcm9wZXJ0eScpO1xuXG52YXIgU0hBUkVEID0gJ19fY29yZS1qc19zaGFyZWRfXyc7XG52YXIgc3RvcmUgPSBtb2R1bGUuZXhwb3J0cyA9IGdsb2JhbFRoaXNbU0hBUkVEXSB8fCBkZWZpbmVHbG9iYWxQcm9wZXJ0eShTSEFSRUQsIHt9KTtcblxuKHN0b3JlLnZlcnNpb25zIHx8IChzdG9yZS52ZXJzaW9ucyA9IFtdKSkucHVzaCh7XG4gIHZlcnNpb246ICczLjQwLjAnLFxuICBtb2RlOiBJU19QVVJFID8gJ3B1cmUnIDogJ2dsb2JhbCcsXG4gIGNvcHlyaWdodDogJ8KpIDIwMTQtMjAyNSBEZW5pcyBQdXNoa2FyZXYgKHpsb2lyb2NrLnJ1KScsXG4gIGxpY2Vuc2U6ICdodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qcy9ibG9iL3YzLjQwLjAvTElDRU5TRScsXG4gIHNvdXJjZTogJ2h0dHBzOi8vZ2l0aHViLmNvbS96bG9pcm9jay9jb3JlLWpzJ1xufSk7XG4iLCAiJ3VzZSBzdHJpY3QnO1xudmFyIHN0b3JlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3NoYXJlZC1zdG9yZScpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChrZXksIHZhbHVlKSB7XG4gIHJldHVybiBzdG9yZVtrZXldIHx8IChzdG9yZVtrZXldID0gdmFsdWUgfHwge30pO1xufTtcbiIsICIndXNlIHN0cmljdCc7XG52YXIgaXNOdWxsT3JVbmRlZmluZWQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtbnVsbC1vci11bmRlZmluZWQnKTtcblxudmFyICRUeXBlRXJyb3IgPSBUeXBlRXJyb3I7XG5cbi8vIGBSZXF1aXJlT2JqZWN0Q29lcmNpYmxlYCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtcmVxdWlyZW9iamVjdGNvZXJjaWJsZVxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgaWYgKGlzTnVsbE9yVW5kZWZpbmVkKGl0KSkgdGhyb3cgbmV3ICRUeXBlRXJyb3IoXCJDYW4ndCBjYWxsIG1ldGhvZCBvbiBcIiArIGl0KTtcbiAgcmV0dXJuIGl0O1xufTtcbiIsICIndXNlIHN0cmljdCc7XG52YXIgcmVxdWlyZU9iamVjdENvZXJjaWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZXF1aXJlLW9iamVjdC1jb2VyY2libGUnKTtcblxudmFyICRPYmplY3QgPSBPYmplY3Q7XG5cbi8vIGBUb09iamVjdGAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXRvb2JqZWN0XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChhcmd1bWVudCkge1xuICByZXR1cm4gJE9iamVjdChyZXF1aXJlT2JqZWN0Q29lcmNpYmxlKGFyZ3VtZW50KSk7XG59O1xuIiwgIid1c2Ugc3RyaWN0JztcbnZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMnKTtcbnZhciB0b09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1vYmplY3QnKTtcblxudmFyIGhhc093blByb3BlcnR5ID0gdW5jdXJyeVRoaXMoe30uaGFzT3duUHJvcGVydHkpO1xuXG4vLyBgSGFzT3duUHJvcGVydHlgIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1oYXNvd25wcm9wZXJ0eVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzL25vLW9iamVjdC1oYXNvd24gLS0gc2FmZVxubW9kdWxlLmV4cG9ydHMgPSBPYmplY3QuaGFzT3duIHx8IGZ1bmN0aW9uIGhhc093bihpdCwga2V5KSB7XG4gIHJldHVybiBoYXNPd25Qcm9wZXJ0eSh0b09iamVjdChpdCksIGtleSk7XG59O1xuIiwgIid1c2Ugc3RyaWN0JztcbnZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMnKTtcblxudmFyIGlkID0gMDtcbnZhciBwb3N0Zml4ID0gTWF0aC5yYW5kb20oKTtcbnZhciB0b1N0cmluZyA9IHVuY3VycnlUaGlzKDEuMC50b1N0cmluZyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGtleSkge1xuICByZXR1cm4gJ1N5bWJvbCgnICsgKGtleSA9PT0gdW5kZWZpbmVkID8gJycgOiBrZXkpICsgJylfJyArIHRvU3RyaW5nKCsraWQgKyBwb3N0Zml4LCAzNik7XG59O1xuIiwgIid1c2Ugc3RyaWN0JztcbnZhciBnbG9iYWxUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbC10aGlzJyk7XG52YXIgc2hhcmVkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3NoYXJlZCcpO1xudmFyIGhhc093biA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9oYXMtb3duLXByb3BlcnR5Jyk7XG52YXIgdWlkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3VpZCcpO1xudmFyIE5BVElWRV9TWU1CT0wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc3ltYm9sLWNvbnN0cnVjdG9yLWRldGVjdGlvbicpO1xudmFyIFVTRV9TWU1CT0xfQVNfVUlEID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3VzZS1zeW1ib2wtYXMtdWlkJyk7XG5cbnZhciBTeW1ib2wgPSBnbG9iYWxUaGlzLlN5bWJvbDtcbnZhciBXZWxsS25vd25TeW1ib2xzU3RvcmUgPSBzaGFyZWQoJ3drcycpO1xudmFyIGNyZWF0ZVdlbGxLbm93blN5bWJvbCA9IFVTRV9TWU1CT0xfQVNfVUlEID8gU3ltYm9sWydmb3InXSB8fCBTeW1ib2wgOiBTeW1ib2wgJiYgU3ltYm9sLndpdGhvdXRTZXR0ZXIgfHwgdWlkO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChuYW1lKSB7XG4gIGlmICghaGFzT3duKFdlbGxLbm93blN5bWJvbHNTdG9yZSwgbmFtZSkpIHtcbiAgICBXZWxsS25vd25TeW1ib2xzU3RvcmVbbmFtZV0gPSBOQVRJVkVfU1lNQk9MICYmIGhhc093bihTeW1ib2wsIG5hbWUpXG4gICAgICA/IFN5bWJvbFtuYW1lXVxuICAgICAgOiBjcmVhdGVXZWxsS25vd25TeW1ib2woJ1N5bWJvbC4nICsgbmFtZSk7XG4gIH0gcmV0dXJuIFdlbGxLbm93blN5bWJvbHNTdG9yZVtuYW1lXTtcbn07XG4iLCAiJ3VzZSBzdHJpY3QnO1xudmFyIGNhbGwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tY2FsbCcpO1xudmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLW9iamVjdCcpO1xudmFyIGlzU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLXN5bWJvbCcpO1xudmFyIGdldE1ldGhvZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nZXQtbWV0aG9kJyk7XG52YXIgb3JkaW5hcnlUb1ByaW1pdGl2ZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vcmRpbmFyeS10by1wcmltaXRpdmUnKTtcbnZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcblxudmFyICRUeXBlRXJyb3IgPSBUeXBlRXJyb3I7XG52YXIgVE9fUFJJTUlUSVZFID0gd2VsbEtub3duU3ltYm9sKCd0b1ByaW1pdGl2ZScpO1xuXG4vLyBgVG9QcmltaXRpdmVgIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy10b3ByaW1pdGl2ZVxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaW5wdXQsIHByZWYpIHtcbiAgaWYgKCFpc09iamVjdChpbnB1dCkgfHwgaXNTeW1ib2woaW5wdXQpKSByZXR1cm4gaW5wdXQ7XG4gIHZhciBleG90aWNUb1ByaW0gPSBnZXRNZXRob2QoaW5wdXQsIFRPX1BSSU1JVElWRSk7XG4gIHZhciByZXN1bHQ7XG4gIGlmIChleG90aWNUb1ByaW0pIHtcbiAgICBpZiAocHJlZiA9PT0gdW5kZWZpbmVkKSBwcmVmID0gJ2RlZmF1bHQnO1xuICAgIHJlc3VsdCA9IGNhbGwoZXhvdGljVG9QcmltLCBpbnB1dCwgcHJlZik7XG4gICAgaWYgKCFpc09iamVjdChyZXN1bHQpIHx8IGlzU3ltYm9sKHJlc3VsdCkpIHJldHVybiByZXN1bHQ7XG4gICAgdGhyb3cgbmV3ICRUeXBlRXJyb3IoXCJDYW4ndCBjb252ZXJ0IG9iamVjdCB0byBwcmltaXRpdmUgdmFsdWVcIik7XG4gIH1cbiAgaWYgKHByZWYgPT09IHVuZGVmaW5lZCkgcHJlZiA9ICdudW1iZXInO1xuICByZXR1cm4gb3JkaW5hcnlUb1ByaW1pdGl2ZShpbnB1dCwgcHJlZik7XG59O1xuIiwgIid1c2Ugc3RyaWN0JztcbnZhciB0b1ByaW1pdGl2ZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1wcmltaXRpdmUnKTtcbnZhciBpc1N5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1zeW1ib2wnKTtcblxuLy8gYFRvUHJvcGVydHlLZXlgIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy10b3Byb3BlcnR5a2V5XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChhcmd1bWVudCkge1xuICB2YXIga2V5ID0gdG9QcmltaXRpdmUoYXJndW1lbnQsICdzdHJpbmcnKTtcbiAgcmV0dXJuIGlzU3ltYm9sKGtleSkgPyBrZXkgOiBrZXkgKyAnJztcbn07XG4iLCAiJ3VzZSBzdHJpY3QnO1xudmFyIERFU0NSSVBUT1JTID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Rlc2NyaXB0b3JzJyk7XG52YXIgSUU4X0RPTV9ERUZJTkUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaWU4LWRvbS1kZWZpbmUnKTtcbnZhciBWOF9QUk9UT1RZUEVfREVGSU5FX0JVRyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy92OC1wcm90b3R5cGUtZGVmaW5lLWJ1ZycpO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLW9iamVjdCcpO1xudmFyIHRvUHJvcGVydHlLZXkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tcHJvcGVydHkta2V5Jyk7XG5cbnZhciAkVHlwZUVycm9yID0gVHlwZUVycm9yO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzL25vLW9iamVjdC1kZWZpbmVwcm9wZXJ0eSAtLSBzYWZlXG52YXIgJGRlZmluZVByb3BlcnR5ID0gT2JqZWN0LmRlZmluZVByb3BlcnR5O1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzL25vLW9iamVjdC1nZXRvd25wcm9wZXJ0eWRlc2NyaXB0b3IgLS0gc2FmZVxudmFyICRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO1xudmFyIEVOVU1FUkFCTEUgPSAnZW51bWVyYWJsZSc7XG52YXIgQ09ORklHVVJBQkxFID0gJ2NvbmZpZ3VyYWJsZSc7XG52YXIgV1JJVEFCTEUgPSAnd3JpdGFibGUnO1xuXG4vLyBgT2JqZWN0LmRlZmluZVByb3BlcnR5YCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtb2JqZWN0LmRlZmluZXByb3BlcnR5XG5leHBvcnRzLmYgPSBERVNDUklQVE9SUyA/IFY4X1BST1RPVFlQRV9ERUZJTkVfQlVHID8gZnVuY3Rpb24gZGVmaW5lUHJvcGVydHkoTywgUCwgQXR0cmlidXRlcykge1xuICBhbk9iamVjdChPKTtcbiAgUCA9IHRvUHJvcGVydHlLZXkoUCk7XG4gIGFuT2JqZWN0KEF0dHJpYnV0ZXMpO1xuICBpZiAodHlwZW9mIE8gPT09ICdmdW5jdGlvbicgJiYgUCA9PT0gJ3Byb3RvdHlwZScgJiYgJ3ZhbHVlJyBpbiBBdHRyaWJ1dGVzICYmIFdSSVRBQkxFIGluIEF0dHJpYnV0ZXMgJiYgIUF0dHJpYnV0ZXNbV1JJVEFCTEVdKSB7XG4gICAgdmFyIGN1cnJlbnQgPSAkZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKE8sIFApO1xuICAgIGlmIChjdXJyZW50ICYmIGN1cnJlbnRbV1JJVEFCTEVdKSB7XG4gICAgICBPW1BdID0gQXR0cmlidXRlcy52YWx1ZTtcbiAgICAgIEF0dHJpYnV0ZXMgPSB7XG4gICAgICAgIGNvbmZpZ3VyYWJsZTogQ09ORklHVVJBQkxFIGluIEF0dHJpYnV0ZXMgPyBBdHRyaWJ1dGVzW0NPTkZJR1VSQUJMRV0gOiBjdXJyZW50W0NPTkZJR1VSQUJMRV0sXG4gICAgICAgIGVudW1lcmFibGU6IEVOVU1FUkFCTEUgaW4gQXR0cmlidXRlcyA/IEF0dHJpYnV0ZXNbRU5VTUVSQUJMRV0gOiBjdXJyZW50W0VOVU1FUkFCTEVdLFxuICAgICAgICB3cml0YWJsZTogZmFsc2VcbiAgICAgIH07XG4gICAgfVxuICB9IHJldHVybiAkZGVmaW5lUHJvcGVydHkoTywgUCwgQXR0cmlidXRlcyk7XG59IDogJGRlZmluZVByb3BlcnR5IDogZnVuY3Rpb24gZGVmaW5lUHJvcGVydHkoTywgUCwgQXR0cmlidXRlcykge1xuICBhbk9iamVjdChPKTtcbiAgUCA9IHRvUHJvcGVydHlLZXkoUCk7XG4gIGFuT2JqZWN0KEF0dHJpYnV0ZXMpO1xuICBpZiAoSUU4X0RPTV9ERUZJTkUpIHRyeSB7XG4gICAgcmV0dXJuICRkZWZpbmVQcm9wZXJ0eShPLCBQLCBBdHRyaWJ1dGVzKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHsgLyogZW1wdHkgKi8gfVxuICBpZiAoJ2dldCcgaW4gQXR0cmlidXRlcyB8fCAnc2V0JyBpbiBBdHRyaWJ1dGVzKSB0aHJvdyBuZXcgJFR5cGVFcnJvcignQWNjZXNzb3JzIG5vdCBzdXBwb3J0ZWQnKTtcbiAgaWYgKCd2YWx1ZScgaW4gQXR0cmlidXRlcykgT1tQXSA9IEF0dHJpYnV0ZXMudmFsdWU7XG4gIHJldHVybiBPO1xufTtcbiIsICIndXNlIHN0cmljdCc7XG52YXIgREVTQ1JJUFRPUlMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVzY3JpcHRvcnMnKTtcbnZhciBoYXNPd24gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaGFzLW93bi1wcm9wZXJ0eScpO1xuXG52YXIgRnVuY3Rpb25Qcm90b3R5cGUgPSBGdW5jdGlvbi5wcm90b3R5cGU7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tb2JqZWN0LWdldG93bnByb3BlcnR5ZGVzY3JpcHRvciAtLSBzYWZlXG52YXIgZ2V0RGVzY3JpcHRvciA9IERFU0NSSVBUT1JTICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7XG5cbnZhciBFWElTVFMgPSBoYXNPd24oRnVuY3Rpb25Qcm90b3R5cGUsICduYW1lJyk7XG4vLyBhZGRpdGlvbmFsIHByb3RlY3Rpb24gZnJvbSBtaW5pZmllZCAvIG1hbmdsZWQgLyBkcm9wcGVkIGZ1bmN0aW9uIG5hbWVzXG52YXIgUFJPUEVSID0gRVhJU1RTICYmIChmdW5jdGlvbiBzb21ldGhpbmcoKSB7IC8qIGVtcHR5ICovIH0pLm5hbWUgPT09ICdzb21ldGhpbmcnO1xudmFyIENPTkZJR1VSQUJMRSA9IEVYSVNUUyAmJiAoIURFU0NSSVBUT1JTIHx8IChERVNDUklQVE9SUyAmJiBnZXREZXNjcmlwdG9yKEZ1bmN0aW9uUHJvdG90eXBlLCAnbmFtZScpLmNvbmZpZ3VyYWJsZSkpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgRVhJU1RTOiBFWElTVFMsXG4gIFBST1BFUjogUFJPUEVSLFxuICBDT05GSUdVUkFCTEU6IENPTkZJR1VSQUJMRVxufTtcbiIsICIndXNlIHN0cmljdCc7XG52YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzJyk7XG52YXIgaXNDYWxsYWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1jYWxsYWJsZScpO1xudmFyIHN0b3JlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3NoYXJlZC1zdG9yZScpO1xuXG52YXIgZnVuY3Rpb25Ub1N0cmluZyA9IHVuY3VycnlUaGlzKEZ1bmN0aW9uLnRvU3RyaW5nKTtcblxuLy8gdGhpcyBoZWxwZXIgYnJva2VuIGluIGBjb3JlLWpzQDMuNC4xLTMuNC40YCwgc28gd2UgY2FuJ3QgdXNlIGBzaGFyZWRgIGhlbHBlclxuaWYgKCFpc0NhbGxhYmxlKHN0b3JlLmluc3BlY3RTb3VyY2UpKSB7XG4gIHN0b3JlLmluc3BlY3RTb3VyY2UgPSBmdW5jdGlvbiAoaXQpIHtcbiAgICByZXR1cm4gZnVuY3Rpb25Ub1N0cmluZyhpdCk7XG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gc3RvcmUuaW5zcGVjdFNvdXJjZTtcbiIsICIndXNlIHN0cmljdCc7XG52YXIgZ2xvYmFsVGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwtdGhpcycpO1xudmFyIGlzQ2FsbGFibGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtY2FsbGFibGUnKTtcblxudmFyIFdlYWtNYXAgPSBnbG9iYWxUaGlzLldlYWtNYXA7XG5cbm1vZHVsZS5leHBvcnRzID0gaXNDYWxsYWJsZShXZWFrTWFwKSAmJiAvbmF0aXZlIGNvZGUvLnRlc3QoU3RyaW5nKFdlYWtNYXApKTtcbiIsICIndXNlIHN0cmljdCc7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChiaXRtYXAsIHZhbHVlKSB7XG4gIHJldHVybiB7XG4gICAgZW51bWVyYWJsZTogIShiaXRtYXAgJiAxKSxcbiAgICBjb25maWd1cmFibGU6ICEoYml0bWFwICYgMiksXG4gICAgd3JpdGFibGU6ICEoYml0bWFwICYgNCksXG4gICAgdmFsdWU6IHZhbHVlXG4gIH07XG59O1xuIiwgIid1c2Ugc3RyaWN0JztcbnZhciBERVNDUklQVE9SUyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZXNjcmlwdG9ycycpO1xudmFyIGRlZmluZVByb3BlcnR5TW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1kZWZpbmUtcHJvcGVydHknKTtcbnZhciBjcmVhdGVQcm9wZXJ0eURlc2NyaXB0b3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY3JlYXRlLXByb3BlcnR5LWRlc2NyaXB0b3InKTtcblxubW9kdWxlLmV4cG9ydHMgPSBERVNDUklQVE9SUyA/IGZ1bmN0aW9uIChvYmplY3QsIGtleSwgdmFsdWUpIHtcbiAgcmV0dXJuIGRlZmluZVByb3BlcnR5TW9kdWxlLmYob2JqZWN0LCBrZXksIGNyZWF0ZVByb3BlcnR5RGVzY3JpcHRvcigxLCB2YWx1ZSkpO1xufSA6IGZ1bmN0aW9uIChvYmplY3QsIGtleSwgdmFsdWUpIHtcbiAgb2JqZWN0W2tleV0gPSB2YWx1ZTtcbiAgcmV0dXJuIG9iamVjdDtcbn07XG4iLCAiJ3VzZSBzdHJpY3QnO1xudmFyIHNoYXJlZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zaGFyZWQnKTtcbnZhciB1aWQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdWlkJyk7XG5cbnZhciBrZXlzID0gc2hhcmVkKCdrZXlzJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGtleSkge1xuICByZXR1cm4ga2V5c1trZXldIHx8IChrZXlzW2tleV0gPSB1aWQoa2V5KSk7XG59O1xuIiwgIid1c2Ugc3RyaWN0Jztcbm1vZHVsZS5leHBvcnRzID0ge307XG4iLCAiJ3VzZSBzdHJpY3QnO1xudmFyIE5BVElWRV9XRUFLX01BUCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWFrLW1hcC1iYXNpYy1kZXRlY3Rpb24nKTtcbnZhciBnbG9iYWxUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbC10aGlzJyk7XG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtb2JqZWN0Jyk7XG52YXIgY3JlYXRlTm9uRW51bWVyYWJsZVByb3BlcnR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NyZWF0ZS1ub24tZW51bWVyYWJsZS1wcm9wZXJ0eScpO1xudmFyIGhhc093biA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9oYXMtb3duLXByb3BlcnR5Jyk7XG52YXIgc2hhcmVkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3NoYXJlZC1zdG9yZScpO1xudmFyIHNoYXJlZEtleSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zaGFyZWQta2V5Jyk7XG52YXIgaGlkZGVuS2V5cyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9oaWRkZW4ta2V5cycpO1xuXG52YXIgT0JKRUNUX0FMUkVBRFlfSU5JVElBTElaRUQgPSAnT2JqZWN0IGFscmVhZHkgaW5pdGlhbGl6ZWQnO1xudmFyIFR5cGVFcnJvciA9IGdsb2JhbFRoaXMuVHlwZUVycm9yO1xudmFyIFdlYWtNYXAgPSBnbG9iYWxUaGlzLldlYWtNYXA7XG52YXIgc2V0LCBnZXQsIGhhcztcblxudmFyIGVuZm9yY2UgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIGhhcyhpdCkgPyBnZXQoaXQpIDogc2V0KGl0LCB7fSk7XG59O1xuXG52YXIgZ2V0dGVyRm9yID0gZnVuY3Rpb24gKFRZUEUpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIChpdCkge1xuICAgIHZhciBzdGF0ZTtcbiAgICBpZiAoIWlzT2JqZWN0KGl0KSB8fCAoc3RhdGUgPSBnZXQoaXQpKS50eXBlICE9PSBUWVBFKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdJbmNvbXBhdGlibGUgcmVjZWl2ZXIsICcgKyBUWVBFICsgJyByZXF1aXJlZCcpO1xuICAgIH0gcmV0dXJuIHN0YXRlO1xuICB9O1xufTtcblxuaWYgKE5BVElWRV9XRUFLX01BUCB8fCBzaGFyZWQuc3RhdGUpIHtcbiAgdmFyIHN0b3JlID0gc2hhcmVkLnN0YXRlIHx8IChzaGFyZWQuc3RhdGUgPSBuZXcgV2Vha01hcCgpKTtcbiAgLyogZXNsaW50LWRpc2FibGUgbm8tc2VsZi1hc3NpZ24gLS0gcHJvdG90eXBlIG1ldGhvZHMgcHJvdGVjdGlvbiAqL1xuICBzdG9yZS5nZXQgPSBzdG9yZS5nZXQ7XG4gIHN0b3JlLmhhcyA9IHN0b3JlLmhhcztcbiAgc3RvcmUuc2V0ID0gc3RvcmUuc2V0O1xuICAvKiBlc2xpbnQtZW5hYmxlIG5vLXNlbGYtYXNzaWduIC0tIHByb3RvdHlwZSBtZXRob2RzIHByb3RlY3Rpb24gKi9cbiAgc2V0ID0gZnVuY3Rpb24gKGl0LCBtZXRhZGF0YSkge1xuICAgIGlmIChzdG9yZS5oYXMoaXQpKSB0aHJvdyBuZXcgVHlwZUVycm9yKE9CSkVDVF9BTFJFQURZX0lOSVRJQUxJWkVEKTtcbiAgICBtZXRhZGF0YS5mYWNhZGUgPSBpdDtcbiAgICBzdG9yZS5zZXQoaXQsIG1ldGFkYXRhKTtcbiAgICByZXR1cm4gbWV0YWRhdGE7XG4gIH07XG4gIGdldCA9IGZ1bmN0aW9uIChpdCkge1xuICAgIHJldHVybiBzdG9yZS5nZXQoaXQpIHx8IHt9O1xuICB9O1xuICBoYXMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgICByZXR1cm4gc3RvcmUuaGFzKGl0KTtcbiAgfTtcbn0gZWxzZSB7XG4gIHZhciBTVEFURSA9IHNoYXJlZEtleSgnc3RhdGUnKTtcbiAgaGlkZGVuS2V5c1tTVEFURV0gPSB0cnVlO1xuICBzZXQgPSBmdW5jdGlvbiAoaXQsIG1ldGFkYXRhKSB7XG4gICAgaWYgKGhhc093bihpdCwgU1RBVEUpKSB0aHJvdyBuZXcgVHlwZUVycm9yKE9CSkVDVF9BTFJFQURZX0lOSVRJQUxJWkVEKTtcbiAgICBtZXRhZGF0YS5mYWNhZGUgPSBpdDtcbiAgICBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkoaXQsIFNUQVRFLCBtZXRhZGF0YSk7XG4gICAgcmV0dXJuIG1ldGFkYXRhO1xuICB9O1xuICBnZXQgPSBmdW5jdGlvbiAoaXQpIHtcbiAgICByZXR1cm4gaGFzT3duKGl0LCBTVEFURSkgPyBpdFtTVEFURV0gOiB7fTtcbiAgfTtcbiAgaGFzID0gZnVuY3Rpb24gKGl0KSB7XG4gICAgcmV0dXJuIGhhc093bihpdCwgU1RBVEUpO1xuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgc2V0OiBzZXQsXG4gIGdldDogZ2V0LFxuICBoYXM6IGhhcyxcbiAgZW5mb3JjZTogZW5mb3JjZSxcbiAgZ2V0dGVyRm9yOiBnZXR0ZXJGb3Jcbn07XG4iLCAiJ3VzZSBzdHJpY3QnO1xudmFyIHVuY3VycnlUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLXVuY3VycnktdGhpcycpO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG52YXIgaXNDYWxsYWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1jYWxsYWJsZScpO1xudmFyIGhhc093biA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9oYXMtb3duLXByb3BlcnR5Jyk7XG52YXIgREVTQ1JJUFRPUlMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVzY3JpcHRvcnMnKTtcbnZhciBDT05GSUdVUkFCTEVfRlVOQ1RJT05fTkFNRSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi1uYW1lJykuQ09ORklHVVJBQkxFO1xudmFyIGluc3BlY3RTb3VyY2UgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaW5zcGVjdC1zb3VyY2UnKTtcbnZhciBJbnRlcm5hbFN0YXRlTW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ludGVybmFsLXN0YXRlJyk7XG5cbnZhciBlbmZvcmNlSW50ZXJuYWxTdGF0ZSA9IEludGVybmFsU3RhdGVNb2R1bGUuZW5mb3JjZTtcbnZhciBnZXRJbnRlcm5hbFN0YXRlID0gSW50ZXJuYWxTdGF0ZU1vZHVsZS5nZXQ7XG52YXIgJFN0cmluZyA9IFN0cmluZztcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy9uby1vYmplY3QtZGVmaW5lcHJvcGVydHkgLS0gc2FmZVxudmFyIGRlZmluZVByb3BlcnR5ID0gT2JqZWN0LmRlZmluZVByb3BlcnR5O1xudmFyIHN0cmluZ1NsaWNlID0gdW5jdXJyeVRoaXMoJycuc2xpY2UpO1xudmFyIHJlcGxhY2UgPSB1bmN1cnJ5VGhpcygnJy5yZXBsYWNlKTtcbnZhciBqb2luID0gdW5jdXJyeVRoaXMoW10uam9pbik7XG5cbnZhciBDT05GSUdVUkFCTEVfTEVOR1RIID0gREVTQ1JJUFRPUlMgJiYgIWZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIGRlZmluZVByb3BlcnR5KGZ1bmN0aW9uICgpIHsgLyogZW1wdHkgKi8gfSwgJ2xlbmd0aCcsIHsgdmFsdWU6IDggfSkubGVuZ3RoICE9PSA4O1xufSk7XG5cbnZhciBURU1QTEFURSA9IFN0cmluZyhTdHJpbmcpLnNwbGl0KCdTdHJpbmcnKTtcblxudmFyIG1ha2VCdWlsdEluID0gbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAodmFsdWUsIG5hbWUsIG9wdGlvbnMpIHtcbiAgaWYgKHN0cmluZ1NsaWNlKCRTdHJpbmcobmFtZSksIDAsIDcpID09PSAnU3ltYm9sKCcpIHtcbiAgICBuYW1lID0gJ1snICsgcmVwbGFjZSgkU3RyaW5nKG5hbWUpLCAvXlN5bWJvbFxcKChbXildKilcXCkuKiQvLCAnJDEnKSArICddJztcbiAgfVxuICBpZiAob3B0aW9ucyAmJiBvcHRpb25zLmdldHRlcikgbmFtZSA9ICdnZXQgJyArIG5hbWU7XG4gIGlmIChvcHRpb25zICYmIG9wdGlvbnMuc2V0dGVyKSBuYW1lID0gJ3NldCAnICsgbmFtZTtcbiAgaWYgKCFoYXNPd24odmFsdWUsICduYW1lJykgfHwgKENPTkZJR1VSQUJMRV9GVU5DVElPTl9OQU1FICYmIHZhbHVlLm5hbWUgIT09IG5hbWUpKSB7XG4gICAgaWYgKERFU0NSSVBUT1JTKSBkZWZpbmVQcm9wZXJ0eSh2YWx1ZSwgJ25hbWUnLCB7IHZhbHVlOiBuYW1lLCBjb25maWd1cmFibGU6IHRydWUgfSk7XG4gICAgZWxzZSB2YWx1ZS5uYW1lID0gbmFtZTtcbiAgfVxuICBpZiAoQ09ORklHVVJBQkxFX0xFTkdUSCAmJiBvcHRpb25zICYmIGhhc093bihvcHRpb25zLCAnYXJpdHknKSAmJiB2YWx1ZS5sZW5ndGggIT09IG9wdGlvbnMuYXJpdHkpIHtcbiAgICBkZWZpbmVQcm9wZXJ0eSh2YWx1ZSwgJ2xlbmd0aCcsIHsgdmFsdWU6IG9wdGlvbnMuYXJpdHkgfSk7XG4gIH1cbiAgdHJ5IHtcbiAgICBpZiAob3B0aW9ucyAmJiBoYXNPd24ob3B0aW9ucywgJ2NvbnN0cnVjdG9yJykgJiYgb3B0aW9ucy5jb25zdHJ1Y3Rvcikge1xuICAgICAgaWYgKERFU0NSSVBUT1JTKSBkZWZpbmVQcm9wZXJ0eSh2YWx1ZSwgJ3Byb3RvdHlwZScsIHsgd3JpdGFibGU6IGZhbHNlIH0pO1xuICAgIC8vIGluIFY4IH4gQ2hyb21lIDUzLCBwcm90b3R5cGVzIG9mIHNvbWUgbWV0aG9kcywgbGlrZSBgQXJyYXkucHJvdG90eXBlLnZhbHVlc2AsIGFyZSBub24td3JpdGFibGVcbiAgICB9IGVsc2UgaWYgKHZhbHVlLnByb3RvdHlwZSkgdmFsdWUucHJvdG90eXBlID0gdW5kZWZpbmVkO1xuICB9IGNhdGNoIChlcnJvcikgeyAvKiBlbXB0eSAqLyB9XG4gIHZhciBzdGF0ZSA9IGVuZm9yY2VJbnRlcm5hbFN0YXRlKHZhbHVlKTtcbiAgaWYgKCFoYXNPd24oc3RhdGUsICdzb3VyY2UnKSkge1xuICAgIHN0YXRlLnNvdXJjZSA9IGpvaW4oVEVNUExBVEUsIHR5cGVvZiBuYW1lID09ICdzdHJpbmcnID8gbmFtZSA6ICcnKTtcbiAgfSByZXR1cm4gdmFsdWU7XG59O1xuXG4vLyBhZGQgZmFrZSBGdW5jdGlvbiN0b1N0cmluZyBmb3IgY29ycmVjdCB3b3JrIHdyYXBwZWQgbWV0aG9kcyAvIGNvbnN0cnVjdG9ycyB3aXRoIG1ldGhvZHMgbGlrZSBMb0Rhc2ggaXNOYXRpdmVcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1leHRlbmQtbmF0aXZlIC0tIHJlcXVpcmVkXG5GdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmcgPSBtYWtlQnVpbHRJbihmdW5jdGlvbiB0b1N0cmluZygpIHtcbiAgcmV0dXJuIGlzQ2FsbGFibGUodGhpcykgJiYgZ2V0SW50ZXJuYWxTdGF0ZSh0aGlzKS5zb3VyY2UgfHwgaW5zcGVjdFNvdXJjZSh0aGlzKTtcbn0sICd0b1N0cmluZycpO1xuIiwgIid1c2Ugc3RyaWN0JztcbnZhciBpc0NhbGxhYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWNhbGxhYmxlJyk7XG52YXIgZGVmaW5lUHJvcGVydHlNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWRlZmluZS1wcm9wZXJ0eScpO1xudmFyIG1ha2VCdWlsdEluID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL21ha2UtYnVpbHQtaW4nKTtcbnZhciBkZWZpbmVHbG9iYWxQcm9wZXJ0eSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZWZpbmUtZ2xvYmFsLXByb3BlcnR5Jyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKE8sIGtleSwgdmFsdWUsIG9wdGlvbnMpIHtcbiAgaWYgKCFvcHRpb25zKSBvcHRpb25zID0ge307XG4gIHZhciBzaW1wbGUgPSBvcHRpb25zLmVudW1lcmFibGU7XG4gIHZhciBuYW1lID0gb3B0aW9ucy5uYW1lICE9PSB1bmRlZmluZWQgPyBvcHRpb25zLm5hbWUgOiBrZXk7XG4gIGlmIChpc0NhbGxhYmxlKHZhbHVlKSkgbWFrZUJ1aWx0SW4odmFsdWUsIG5hbWUsIG9wdGlvbnMpO1xuICBpZiAob3B0aW9ucy5nbG9iYWwpIHtcbiAgICBpZiAoc2ltcGxlKSBPW2tleV0gPSB2YWx1ZTtcbiAgICBlbHNlIGRlZmluZUdsb2JhbFByb3BlcnR5KGtleSwgdmFsdWUpO1xuICB9IGVsc2Uge1xuICAgIHRyeSB7XG4gICAgICBpZiAoIW9wdGlvbnMudW5zYWZlKSBkZWxldGUgT1trZXldO1xuICAgICAgZWxzZSBpZiAoT1trZXldKSBzaW1wbGUgPSB0cnVlO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7IC8qIGVtcHR5ICovIH1cbiAgICBpZiAoc2ltcGxlKSBPW2tleV0gPSB2YWx1ZTtcbiAgICBlbHNlIGRlZmluZVByb3BlcnR5TW9kdWxlLmYoTywga2V5LCB7XG4gICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogIW9wdGlvbnMubm9uQ29uZmlndXJhYmxlLFxuICAgICAgd3JpdGFibGU6ICFvcHRpb25zLm5vbldyaXRhYmxlXG4gICAgfSk7XG4gIH0gcmV0dXJuIE87XG59O1xuIiwgIid1c2Ugc3RyaWN0JztcbnZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcblxudmFyIFRPX1NUUklOR19UQUcgPSB3ZWxsS25vd25TeW1ib2woJ3RvU3RyaW5nVGFnJyk7XG52YXIgdGVzdCA9IHt9O1xuXG50ZXN0W1RPX1NUUklOR19UQUddID0gJ3onO1xuXG5tb2R1bGUuZXhwb3J0cyA9IFN0cmluZyh0ZXN0KSA9PT0gJ1tvYmplY3Qgel0nO1xuIiwgIid1c2Ugc3RyaWN0JztcbnZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMnKTtcblxudmFyIHRvU3RyaW5nID0gdW5jdXJyeVRoaXMoe30udG9TdHJpbmcpO1xudmFyIHN0cmluZ1NsaWNlID0gdW5jdXJyeVRoaXMoJycuc2xpY2UpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gc3RyaW5nU2xpY2UodG9TdHJpbmcoaXQpLCA4LCAtMSk7XG59O1xuIiwgIid1c2Ugc3RyaWN0JztcbnZhciBUT19TVFJJTkdfVEFHX1NVUFBPUlQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tc3RyaW5nLXRhZy1zdXBwb3J0Jyk7XG52YXIgaXNDYWxsYWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1jYWxsYWJsZScpO1xudmFyIGNsYXNzb2ZSYXcgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY2xhc3NvZi1yYXcnKTtcbnZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcblxudmFyIFRPX1NUUklOR19UQUcgPSB3ZWxsS25vd25TeW1ib2woJ3RvU3RyaW5nVGFnJyk7XG52YXIgJE9iamVjdCA9IE9iamVjdDtcblxuLy8gRVMzIHdyb25nIGhlcmVcbnZhciBDT1JSRUNUX0FSR1VNRU5UUyA9IGNsYXNzb2ZSYXcoZnVuY3Rpb24gKCkgeyByZXR1cm4gYXJndW1lbnRzOyB9KCkpID09PSAnQXJndW1lbnRzJztcblxuLy8gZmFsbGJhY2sgZm9yIElFMTEgU2NyaXB0IEFjY2VzcyBEZW5pZWQgZXJyb3JcbnZhciB0cnlHZXQgPSBmdW5jdGlvbiAoaXQsIGtleSkge1xuICB0cnkge1xuICAgIHJldHVybiBpdFtrZXldO1xuICB9IGNhdGNoIChlcnJvcikgeyAvKiBlbXB0eSAqLyB9XG59O1xuXG4vLyBnZXR0aW5nIHRhZyBmcm9tIEVTNisgYE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmdgXG5tb2R1bGUuZXhwb3J0cyA9IFRPX1NUUklOR19UQUdfU1VQUE9SVCA/IGNsYXNzb2ZSYXcgOiBmdW5jdGlvbiAoaXQpIHtcbiAgdmFyIE8sIHRhZywgcmVzdWx0O1xuICByZXR1cm4gaXQgPT09IHVuZGVmaW5lZCA/ICdVbmRlZmluZWQnIDogaXQgPT09IG51bGwgPyAnTnVsbCdcbiAgICAvLyBAQHRvU3RyaW5nVGFnIGNhc2VcbiAgICA6IHR5cGVvZiAodGFnID0gdHJ5R2V0KE8gPSAkT2JqZWN0KGl0KSwgVE9fU1RSSU5HX1RBRykpID09ICdzdHJpbmcnID8gdGFnXG4gICAgLy8gYnVpbHRpblRhZyBjYXNlXG4gICAgOiBDT1JSRUNUX0FSR1VNRU5UUyA/IGNsYXNzb2ZSYXcoTylcbiAgICAvLyBFUzMgYXJndW1lbnRzIGZhbGxiYWNrXG4gICAgOiAocmVzdWx0ID0gY2xhc3NvZlJhdyhPKSkgPT09ICdPYmplY3QnICYmIGlzQ2FsbGFibGUoTy5jYWxsZWUpID8gJ0FyZ3VtZW50cycgOiByZXN1bHQ7XG59O1xuIiwgIid1c2Ugc3RyaWN0JztcbnZhciBjbGFzc29mID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NsYXNzb2YnKTtcblxudmFyICRTdHJpbmcgPSBTdHJpbmc7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGFyZ3VtZW50KSB7XG4gIGlmIChjbGFzc29mKGFyZ3VtZW50KSA9PT0gJ1N5bWJvbCcpIHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjb252ZXJ0IGEgU3ltYm9sIHZhbHVlIHRvIGEgc3RyaW5nJyk7XG4gIHJldHVybiAkU3RyaW5nKGFyZ3VtZW50KTtcbn07XG4iLCAiJ3VzZSBzdHJpY3QnO1xudmFyICRUeXBlRXJyb3IgPSBUeXBlRXJyb3I7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKHBhc3NlZCwgcmVxdWlyZWQpIHtcbiAgaWYgKHBhc3NlZCA8IHJlcXVpcmVkKSB0aHJvdyBuZXcgJFR5cGVFcnJvcignTm90IGVub3VnaCBhcmd1bWVudHMnKTtcbiAgcmV0dXJuIHBhc3NlZDtcbn07XG4iLCAiJ3VzZSBzdHJpY3QnO1xudmFyIGRlZmluZUJ1aWx0SW4gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVmaW5lLWJ1aWx0LWluJyk7XG52YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzJyk7XG52YXIgdG9TdHJpbmcgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tc3RyaW5nJyk7XG52YXIgdmFsaWRhdGVBcmd1bWVudHNMZW5ndGggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdmFsaWRhdGUtYXJndW1lbnRzLWxlbmd0aCcpO1xuXG52YXIgJFVSTFNlYXJjaFBhcmFtcyA9IFVSTFNlYXJjaFBhcmFtcztcbnZhciBVUkxTZWFyY2hQYXJhbXNQcm90b3R5cGUgPSAkVVJMU2VhcmNoUGFyYW1zLnByb3RvdHlwZTtcbnZhciBhcHBlbmQgPSB1bmN1cnJ5VGhpcyhVUkxTZWFyY2hQYXJhbXNQcm90b3R5cGUuYXBwZW5kKTtcbnZhciAkZGVsZXRlID0gdW5jdXJyeVRoaXMoVVJMU2VhcmNoUGFyYW1zUHJvdG90eXBlWydkZWxldGUnXSk7XG52YXIgZm9yRWFjaCA9IHVuY3VycnlUaGlzKFVSTFNlYXJjaFBhcmFtc1Byb3RvdHlwZS5mb3JFYWNoKTtcbnZhciBwdXNoID0gdW5jdXJyeVRoaXMoW10ucHVzaCk7XG52YXIgcGFyYW1zID0gbmV3ICRVUkxTZWFyY2hQYXJhbXMoJ2E9MSZhPTImYj0zJyk7XG5cbnBhcmFtc1snZGVsZXRlJ10oJ2EnLCAxKTtcbi8vIGB1bmRlZmluZWRgIGNhc2UgaXMgYSBDaHJvbWl1bSAxMTcgYnVnXG4vLyBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvdjgvaXNzdWVzL2RldGFpbD9pZD0xNDIyMlxucGFyYW1zWydkZWxldGUnXSgnYicsIHVuZGVmaW5lZCk7XG5cbmlmIChwYXJhbXMgKyAnJyAhPT0gJ2E9MicpIHtcbiAgZGVmaW5lQnVpbHRJbihVUkxTZWFyY2hQYXJhbXNQcm90b3R5cGUsICdkZWxldGUnLCBmdW5jdGlvbiAobmFtZSAvKiAsIHZhbHVlICovKSB7XG4gICAgdmFyIGxlbmd0aCA9IGFyZ3VtZW50cy5sZW5ndGg7XG4gICAgdmFyICR2YWx1ZSA9IGxlbmd0aCA8IDIgPyB1bmRlZmluZWQgOiBhcmd1bWVudHNbMV07XG4gICAgaWYgKGxlbmd0aCAmJiAkdmFsdWUgPT09IHVuZGVmaW5lZCkgcmV0dXJuICRkZWxldGUodGhpcywgbmFtZSk7XG4gICAgdmFyIGVudHJpZXMgPSBbXTtcbiAgICBmb3JFYWNoKHRoaXMsIGZ1bmN0aW9uICh2LCBrKSB7IC8vIGFsc28gdmFsaWRhdGVzIGB0aGlzYFxuICAgICAgcHVzaChlbnRyaWVzLCB7IGtleTogaywgdmFsdWU6IHYgfSk7XG4gICAgfSk7XG4gICAgdmFsaWRhdGVBcmd1bWVudHNMZW5ndGgobGVuZ3RoLCAxKTtcbiAgICB2YXIga2V5ID0gdG9TdHJpbmcobmFtZSk7XG4gICAgdmFyIHZhbHVlID0gdG9TdHJpbmcoJHZhbHVlKTtcbiAgICB2YXIgaW5kZXggPSAwO1xuICAgIHZhciBkaW5kZXggPSAwO1xuICAgIHZhciBmb3VuZCA9IGZhbHNlO1xuICAgIHZhciBlbnRyaWVzTGVuZ3RoID0gZW50cmllcy5sZW5ndGg7XG4gICAgdmFyIGVudHJ5O1xuICAgIHdoaWxlIChpbmRleCA8IGVudHJpZXNMZW5ndGgpIHtcbiAgICAgIGVudHJ5ID0gZW50cmllc1tpbmRleCsrXTtcbiAgICAgIGlmIChmb3VuZCB8fCBlbnRyeS5rZXkgPT09IGtleSkge1xuICAgICAgICBmb3VuZCA9IHRydWU7XG4gICAgICAgICRkZWxldGUodGhpcywgZW50cnkua2V5KTtcbiAgICAgIH0gZWxzZSBkaW5kZXgrKztcbiAgICB9XG4gICAgd2hpbGUgKGRpbmRleCA8IGVudHJpZXNMZW5ndGgpIHtcbiAgICAgIGVudHJ5ID0gZW50cmllc1tkaW5kZXgrK107XG4gICAgICBpZiAoIShlbnRyeS5rZXkgPT09IGtleSAmJiBlbnRyeS52YWx1ZSA9PT0gdmFsdWUpKSBhcHBlbmQodGhpcywgZW50cnkua2V5LCBlbnRyeS52YWx1ZSk7XG4gICAgfVxuICB9LCB7IGVudW1lcmFibGU6IHRydWUsIHVuc2FmZTogdHJ1ZSB9KTtcbn1cbiIsICIndXNlIHN0cmljdCc7XG52YXIgZGVmaW5lQnVpbHRJbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZWZpbmUtYnVpbHQtaW4nKTtcbnZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMnKTtcbnZhciB0b1N0cmluZyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1zdHJpbmcnKTtcbnZhciB2YWxpZGF0ZUFyZ3VtZW50c0xlbmd0aCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy92YWxpZGF0ZS1hcmd1bWVudHMtbGVuZ3RoJyk7XG5cbnZhciAkVVJMU2VhcmNoUGFyYW1zID0gVVJMU2VhcmNoUGFyYW1zO1xudmFyIFVSTFNlYXJjaFBhcmFtc1Byb3RvdHlwZSA9ICRVUkxTZWFyY2hQYXJhbXMucHJvdG90eXBlO1xudmFyIGdldEFsbCA9IHVuY3VycnlUaGlzKFVSTFNlYXJjaFBhcmFtc1Byb3RvdHlwZS5nZXRBbGwpO1xudmFyICRoYXMgPSB1bmN1cnJ5VGhpcyhVUkxTZWFyY2hQYXJhbXNQcm90b3R5cGUuaGFzKTtcbnZhciBwYXJhbXMgPSBuZXcgJFVSTFNlYXJjaFBhcmFtcygnYT0xJyk7XG5cbi8vIGB1bmRlZmluZWRgIGNhc2UgaXMgYSBDaHJvbWl1bSAxMTcgYnVnXG4vLyBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvdjgvaXNzdWVzL2RldGFpbD9pZD0xNDIyMlxuaWYgKHBhcmFtcy5oYXMoJ2EnLCAyKSB8fCAhcGFyYW1zLmhhcygnYScsIHVuZGVmaW5lZCkpIHtcbiAgZGVmaW5lQnVpbHRJbihVUkxTZWFyY2hQYXJhbXNQcm90b3R5cGUsICdoYXMnLCBmdW5jdGlvbiBoYXMobmFtZSAvKiAsIHZhbHVlICovKSB7XG4gICAgdmFyIGxlbmd0aCA9IGFyZ3VtZW50cy5sZW5ndGg7XG4gICAgdmFyICR2YWx1ZSA9IGxlbmd0aCA8IDIgPyB1bmRlZmluZWQgOiBhcmd1bWVudHNbMV07XG4gICAgaWYgKGxlbmd0aCAmJiAkdmFsdWUgPT09IHVuZGVmaW5lZCkgcmV0dXJuICRoYXModGhpcywgbmFtZSk7XG4gICAgdmFyIHZhbHVlcyA9IGdldEFsbCh0aGlzLCBuYW1lKTsgLy8gYWxzbyB2YWxpZGF0ZXMgYHRoaXNgXG4gICAgdmFsaWRhdGVBcmd1bWVudHNMZW5ndGgobGVuZ3RoLCAxKTtcbiAgICB2YXIgdmFsdWUgPSB0b1N0cmluZygkdmFsdWUpO1xuICAgIHZhciBpbmRleCA9IDA7XG4gICAgd2hpbGUgKGluZGV4IDwgdmFsdWVzLmxlbmd0aCkge1xuICAgICAgaWYgKHZhbHVlc1tpbmRleCsrXSA9PT0gdmFsdWUpIHJldHVybiB0cnVlO1xuICAgIH0gcmV0dXJuIGZhbHNlO1xuICB9LCB7IGVudW1lcmFibGU6IHRydWUsIHVuc2FmZTogdHJ1ZSB9KTtcbn1cbiIsICIndXNlIHN0cmljdCc7XG52YXIgbWFrZUJ1aWx0SW4gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvbWFrZS1idWlsdC1pbicpO1xudmFyIGRlZmluZVByb3BlcnR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1kZWZpbmUtcHJvcGVydHknKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAodGFyZ2V0LCBuYW1lLCBkZXNjcmlwdG9yKSB7XG4gIGlmIChkZXNjcmlwdG9yLmdldCkgbWFrZUJ1aWx0SW4oZGVzY3JpcHRvci5nZXQsIG5hbWUsIHsgZ2V0dGVyOiB0cnVlIH0pO1xuICBpZiAoZGVzY3JpcHRvci5zZXQpIG1ha2VCdWlsdEluKGRlc2NyaXB0b3Iuc2V0LCBuYW1lLCB7IHNldHRlcjogdHJ1ZSB9KTtcbiAgcmV0dXJuIGRlZmluZVByb3BlcnR5LmYodGFyZ2V0LCBuYW1lLCBkZXNjcmlwdG9yKTtcbn07XG4iLCAiJ3VzZSBzdHJpY3QnO1xudmFyIERFU0NSSVBUT1JTID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Rlc2NyaXB0b3JzJyk7XG52YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzJyk7XG52YXIgZGVmaW5lQnVpbHRJbkFjY2Vzc29yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2RlZmluZS1idWlsdC1pbi1hY2Nlc3NvcicpO1xuXG52YXIgVVJMU2VhcmNoUGFyYW1zUHJvdG90eXBlID0gVVJMU2VhcmNoUGFyYW1zLnByb3RvdHlwZTtcbnZhciBmb3JFYWNoID0gdW5jdXJyeVRoaXMoVVJMU2VhcmNoUGFyYW1zUHJvdG90eXBlLmZvckVhY2gpO1xuXG4vLyBgVVJMU2VhcmNoUGFyYW1zLnByb3RvdHlwZS5zaXplYCBnZXR0ZXJcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS93aGF0d2cvdXJsL3B1bGwvNzM0XG5pZiAoREVTQ1JJUFRPUlMgJiYgISgnc2l6ZScgaW4gVVJMU2VhcmNoUGFyYW1zUHJvdG90eXBlKSkge1xuICBkZWZpbmVCdWlsdEluQWNjZXNzb3IoVVJMU2VhcmNoUGFyYW1zUHJvdG90eXBlLCAnc2l6ZScsIHtcbiAgICBnZXQ6IGZ1bmN0aW9uIHNpemUoKSB7XG4gICAgICB2YXIgY291bnQgPSAwO1xuICAgICAgZm9yRWFjaCh0aGlzLCBmdW5jdGlvbiAoKSB7IGNvdW50Kys7IH0pO1xuICAgICAgcmV0dXJuIGNvdW50O1xuICAgIH0sXG4gICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgIGVudW1lcmFibGU6IHRydWVcbiAgfSk7XG59XG4iLCAiZXhwb3J0IHthZGRFdmVudExpc3RlbmVyV2l0aFJlbW92ZXJ9IGZyb20gJy4vbW9kdWxlcy9hZGRFdmVudExpc3RlbmVyV2l0aFJlbW92ZXInO1xuZXhwb3J0IHtjaGFuZ2VPcGFjaXR5V2hlbk1vdXNlRW50ZXJPckxlYXZlfSBmcm9tICcuL21vZHVsZXMvY2hhbmdlT3BhY2l0eVdoZW5Nb3VzZUVudGVyT3JMZWF2ZSc7XG5leHBvcnQge2NoZWNrQTExeUNvbmZpcm1LZXl9IGZyb20gJy4vbW9kdWxlcy9jaGVja0ExMXlDb25maXJtS2V5JztcbmV4cG9ydCB7Y2hlY2tEZXBlbmRlbmNpZXN9IGZyb20gJy4vbW9kdWxlcy9jaGVja0RlcGVuZGVuY2llcy50cyc7XG5leHBvcnQge2RlbGF5fSBmcm9tICcuL21vZHVsZXMvZGVsYXknO1xuZXhwb3J0IHtmaW5kVmFyaWFudHN9IGZyb20gJy4vbW9kdWxlcy9maW5kVmFyaWFudHMnO1xuZXhwb3J0IHtnZW5lcmF0ZUFycmF5fSBmcm9tICcuL21vZHVsZXMvZ2VuZXJhdGVBcnJheSc7XG5leHBvcnQge2dlbmVyYXRlU3ZnRGF0YVVybH0gZnJvbSAnLi9tb2R1bGVzL2dlbmVyYXRlU3ZnRGF0YVVybCc7XG5leHBvcnQge2dldEJvZHl9IGZyb20gJy4vbW9kdWxlcy9nZXRCb2R5JztcbmV4cG9ydCB7aW5pdE13QXBpfSBmcm9tICcuL21vZHVsZXMvaW5pdE13QXBpJztcbmV4cG9ydCB7aXNWYWxpZEtleX0gZnJvbSAnLi9tb2R1bGVzL2lzVmFsaWRLZXknO1xuZXhwb3J0IHtNd1VyaX0gZnJvbSAnLi9tb2R1bGVzL213VXJpJztcbmV4cG9ydCB7b291aUNvbmZpcm1XaXRoU3R5bGV9IGZyb20gJy4vbW9kdWxlcy9vb3VpQ29uZmlybVdpdGhTdHlsZSc7XG5leHBvcnQge3F1ZXJ5R2xvYmFsVXNlckdyb3Vwc30gZnJvbSAnLi9tb2R1bGVzL3F1ZXJ5R2xvYmFsVXNlckdyb3Vwcyc7XG5leHBvcnQge3F1ZXJ5VXNlckdyb3Vwc30gZnJvbSAnLi9tb2R1bGVzL3F1ZXJ5VXNlckdyb3Vwcyc7XG5leHBvcnQge3Njcm9sbFRvcH0gZnJvbSAnLi9tb2R1bGVzL3Njcm9sbFRvcCc7XG5leHBvcnQge3VzZXJJc0luR3JvdXB9IGZyb20gJy4vbW9kdWxlcy91c2VySXNJbkdyb3VwJztcbmV4cG9ydCB7dW5pcXVlQXJyYXl9IGZyb20gJy4vbW9kdWxlcy91bmlxdWVBcnJheSc7XG5leHBvcnQge2dldFdwU3VtbWFyeUNvbnRlbnQsIHNldFdwU3VtbWFyeUNvbnRlbnR9IGZyb20gJy4vbW9kdWxlcy93cFN1bW1hcnlDb250ZW50JztcbmV4cG9ydCB7Z2V0V3BUZXh0Ym94MUNvbnRlbnQsIHNldFdwVGV4dGJveDFDb250ZW50fSBmcm9tICcuL21vZHVsZXMvd3BUZXh0Ym94MUNvbnRlbnQnO1xuIiwgInR5cGUgQWRkRXZlbnRMaXN0ZW5lcldpdGhSZW1vdmVyID0gPFxuXHRUYXJnZXQgZXh0ZW5kcyBEb2N1bWVudCB8IEhUTUxFbGVtZW50IHwgRWxlbWVudCB8IE1lZGlhUXVlcnlMaXN0IHwgV2luZG93LFxuXHRUeXBlIGV4dGVuZHMgVGFyZ2V0IGV4dGVuZHMgRG9jdW1lbnRcblx0XHQ/IGtleW9mIERvY3VtZW50RXZlbnRNYXBcblx0XHQ6IFRhcmdldCBleHRlbmRzIEhUTUxFbGVtZW50XG5cdFx0XHQ/IGtleW9mIEhUTUxFbGVtZW50RXZlbnRNYXBcblx0XHRcdDogVGFyZ2V0IGV4dGVuZHMgTWVkaWFRdWVyeUxpc3Rcblx0XHRcdFx0PyBrZXlvZiBNZWRpYVF1ZXJ5TGlzdEV2ZW50TWFwXG5cdFx0XHRcdDogVGFyZ2V0IGV4dGVuZHMgV2luZG93XG5cdFx0XHRcdFx0PyBrZXlvZiBXaW5kb3dFdmVudE1hcFxuXHRcdFx0XHRcdDoga2V5b2YgR2xvYmFsRXZlbnRIYW5kbGVyc0V2ZW50TWFwLFxuXHRMaXN0ZW5lciBleHRlbmRzIFRhcmdldCBleHRlbmRzIERvY3VtZW50XG5cdFx0PyBUeXBlIGV4dGVuZHMga2V5b2YgRG9jdW1lbnRFdmVudE1hcFxuXHRcdFx0PyAodGhpczogVGFyZ2V0LCBldmVudDogRG9jdW1lbnRFdmVudE1hcFtUeXBlXSkgPT4gdW5rbm93blxuXHRcdFx0OiAodGhpczogVGFyZ2V0LCBldmVudDogRXZlbnQpID0+IHVua25vd25cblx0XHQ6IFRhcmdldCBleHRlbmRzIEhUTUxFbGVtZW50XG5cdFx0XHQ/IFR5cGUgZXh0ZW5kcyBrZXlvZiBIVE1MRWxlbWVudEV2ZW50TWFwXG5cdFx0XHRcdD8gKHRoaXM6IFRhcmdldCwgZXZlbnQ6IEhUTUxFbGVtZW50RXZlbnRNYXBbVHlwZV0pID0+IHVua25vd25cblx0XHRcdFx0OiAodGhpczogVGFyZ2V0LCBldmVudDogRXZlbnQpID0+IHVua25vd25cblx0XHRcdDogVGFyZ2V0IGV4dGVuZHMgRWxlbWVudFxuXHRcdFx0XHQ/IFR5cGUgZXh0ZW5kcyBrZXlvZiBFbGVtZW50RXZlbnRNYXBcblx0XHRcdFx0XHQ/ICh0aGlzOiBUYXJnZXQsIGV2ZW50OiBFbGVtZW50RXZlbnRNYXBbVHlwZV0pID0+IHVua25vd25cblx0XHRcdFx0XHQ6ICh0aGlzOiBUYXJnZXQsIGV2ZW50OiBFdmVudCkgPT4gdW5rbm93blxuXHRcdFx0XHQ6IFRhcmdldCBleHRlbmRzIE1lZGlhUXVlcnlMaXN0XG5cdFx0XHRcdFx0PyBUeXBlIGV4dGVuZHMga2V5b2YgTWVkaWFRdWVyeUxpc3RFdmVudE1hcFxuXHRcdFx0XHRcdFx0PyAodGhpczogVGFyZ2V0LCBldmVudDogTWVkaWFRdWVyeUxpc3RFdmVudE1hcFtUeXBlXSkgPT4gdW5rbm93blxuXHRcdFx0XHRcdFx0OiAodGhpczogVGFyZ2V0LCBldmVudDogRXZlbnQpID0+IHVua25vd25cblx0XHRcdFx0XHQ6IFRhcmdldCBleHRlbmRzIFdpbmRvd1xuXHRcdFx0XHRcdFx0PyBUeXBlIGV4dGVuZHMga2V5b2YgV2luZG93RXZlbnRNYXBcblx0XHRcdFx0XHRcdFx0PyAodGhpczogVGFyZ2V0LCBldmVudDogV2luZG93RXZlbnRNYXBbVHlwZV0pID0+IHVua25vd25cblx0XHRcdFx0XHRcdFx0OiAodGhpczogVGFyZ2V0LCBldmVudDogRXZlbnQpID0+IHVua25vd25cblx0XHRcdFx0XHRcdDogKHRoaXM6IFRhcmdldCwgZXZlbnQ6IEV2ZW50KSA9PiB1bmtub3duLFxuPih7XG5cdHRhcmdldCxcblx0dHlwZSxcblx0bGlzdGVuZXIsXG5cdG9wdGlvbnMsXG59OiB7XG5cdHRhcmdldDogVGFyZ2V0O1xuXHR0eXBlOiBUeXBlO1xuXHRsaXN0ZW5lcjogTGlzdGVuZXI7XG5cdG9wdGlvbnM/OiBBZGRFdmVudExpc3RlbmVyT3B0aW9ucztcbn0pID0+IHtcblx0cmVtb3ZlOiAoKSA9PiB2b2lkO1xufTtcblxuY29uc3QgYWRkRXZlbnRMaXN0ZW5lcldpdGhSZW1vdmVyOiBBZGRFdmVudExpc3RlbmVyV2l0aFJlbW92ZXIgPSAoe3RhcmdldCwgdHlwZSwgbGlzdGVuZXIsIG9wdGlvbnMgPSB7fX0pID0+IHtcblx0dGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIodHlwZSwgbGlzdGVuZXIgYXMgRXZlbnRMaXN0ZW5lck9yRXZlbnRMaXN0ZW5lck9iamVjdCwgb3B0aW9ucyk7XG5cdHJldHVybiB7XG5cdFx0cmVtb3ZlOiAoKTogdm9pZCA9PiB7XG5cdFx0XHR0YXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcih0eXBlLCBsaXN0ZW5lciBhcyBFdmVudExpc3RlbmVyT3JFdmVudExpc3RlbmVyT2JqZWN0LCBvcHRpb25zKTtcblx0XHR9LFxuXHR9O1xufTtcblxuZXhwb3J0IHt0eXBlIEFkZEV2ZW50TGlzdGVuZXJXaXRoUmVtb3ZlciwgYWRkRXZlbnRMaXN0ZW5lcldpdGhSZW1vdmVyfTtcbiIsICJ0eXBlIENoYW5nZU9wYWNpdHlXaGVuTW91c2VFbnRlck9yTGVhdmUgPSAoZXZlbnQ6IE1vdXNlRXZlbnQgfCBKUXVlcnkuVHJpZ2dlcmVkRXZlbnQsIG9wYWNpdHk/OiBudW1iZXIpID0+IHZvaWQ7XG5cbmNvbnN0IGNoYW5nZU9wYWNpdHlXaGVuTW91c2VFbnRlck9yTGVhdmU6IENoYW5nZU9wYWNpdHlXaGVuTW91c2VFbnRlck9yTGVhdmUgPSAoZXZlbnQsIG9wYWNpdHkgPSAwLjcpID0+IHtcblx0KGV2ZW50LmN1cnJlbnRUYXJnZXQgYXMgSFRNTEVsZW1lbnQpLnN0eWxlLm9wYWNpdHkgPSBldmVudC50eXBlID09PSAnbW91c2VlbnRlcicgPyAnMScgOiBvcGFjaXR5LnRvU3RyaW5nKCk7XG59O1xuXG5leHBvcnQge3R5cGUgQ2hhbmdlT3BhY2l0eVdoZW5Nb3VzZUVudGVyT3JMZWF2ZSwgY2hhbmdlT3BhY2l0eVdoZW5Nb3VzZUVudGVyT3JMZWF2ZX07XG4iLCAidHlwZSBDaGVja0ExMXlDb25maXJtS2V5ID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50IHwgTW91c2VFdmVudCB8IEpRdWVyeS5DbGlja0V2ZW50IHwgSlF1ZXJ5LktleURvd25FdmVudCkgPT4gYm9vbGVhbjtcblxuY29uc3QgY2hlY2tBMTF5Q29uZmlybUtleTogQ2hlY2tBMTF5Q29uZmlybUtleSA9IChldmVudCk6IGJvb2xlYW4gPT4ge1xuXHRpZiAoWydjbGljaycsICdrZXlkb3duJ10uaW5jbHVkZXMoZXZlbnQudHlwZSkpIHtcblx0XHRpZiAoZXZlbnQudHlwZSA9PT0gJ2tleWRvd24nKSB7XG5cdFx0XHRyZXR1cm4gWydFbnRlcicsICcgJ10uaW5jbHVkZXMoKGV2ZW50IGFzIEtleWJvYXJkRXZlbnQpLmtleSk7XG5cdFx0fVxuXHRcdHJldHVybiB0cnVlO1xuXHR9XG5cdHJldHVybiBmYWxzZTtcbn07XG5cbmV4cG9ydCB7dHlwZSBDaGVja0ExMXlDb25maXJtS2V5LCBjaGVja0ExMXlDb25maXJtS2V5fTtcbiIsICJ0eXBlIEdlbmVyYXRlQXJyYXkgPSB0eXBlb2YgZ2VuZXJhdGVBcnJheTtcblxuZnVuY3Rpb24gZ2VuZXJhdGVBcnJheTxUIGV4dGVuZHMgW10+KC4uLmFyZ3M6IChUIHwgVFtdKVtdKTogVFtdO1xuZnVuY3Rpb24gZ2VuZXJhdGVBcnJheTxUIGV4dGVuZHMgTm9kZUxpc3Q+KC4uLmFyZ3M6IChUIHwgVFtdKVtdKTogTm9kZVtdO1xuZnVuY3Rpb24gZ2VuZXJhdGVBcnJheTxUID0gdW5rbm93bj4oLi4uYXJnczogKFQgfCBUW10pW10pOiBUW107XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZnVuYy1zdHlsZVxuZnVuY3Rpb24gZ2VuZXJhdGVBcnJheTxUPiguLi5hcmdzOiAoVCB8IFRbXSlbXSk6IFRbXSB7XG5cdHJldHVybiBhcmdzLmZsYXRNYXAoKGFyZykgPT4ge1xuXHRcdGlmIChBcnJheS5pc0FycmF5KGFyZykpIHtcblx0XHRcdHJldHVybiBhcmc7XG5cdFx0fVxuXG5cdFx0aWYgKGFyZyBpbnN0YW5jZW9mIE5vZGVMaXN0KSB7XG5cdFx0XHRyZXR1cm4gWy4uLmFyZ10gYXMgVDtcblx0XHR9XG5cblx0XHRyZXR1cm4gW2FyZ107XG5cdH0pO1xufVxuXG5leHBvcnQge3R5cGUgR2VuZXJhdGVBcnJheSwgZ2VuZXJhdGVBcnJheX07XG4iLCAidHlwZSBJbml0TXdBcGkgPSB0eXBlb2YgaW5pdE13QXBpO1xuXG4vKipcbiAqIEByZXF1aXJlcyBtZWRpYXdpa2kuYXBpXG4gKiBAcGFyYW0ge3N0cmluZ30gW3VzZXJBZ2VudF1cbiAqIEBwYXJhbSB7c3RyaW5nfSBbYXBpVXJpXVxuICogQHJldHVybiB7bXcuQXBpfG13LkZvcmVpZ25BcGl9XG4gKi9cbmZ1bmN0aW9uIGluaXRNd0FwaSh1c2VyQWdlbnQ/OiBzdHJpbmcpOiBtdy5BcGk7XG5mdW5jdGlvbiBpbml0TXdBcGkodXNlckFnZW50OiBzdHJpbmcsIGFwaVVyaTogc3RyaW5nKTogbXcuRm9yZWlnbkFwaTtcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBmdW5jLXN0eWxlXG5mdW5jdGlvbiBpbml0TXdBcGkodXNlckFnZW50Pzogc3RyaW5nLCBhcGlVcmk/OiBzdHJpbmcpOiBtdy5BcGkgfCBtdy5Gb3JlaWduQXBpIHtcblx0Y29uc3QgYXBpT3B0aW9ucyA9IHtcblx0XHRhamF4OiB7XG5cdFx0XHRoZWFkZXJzOiB7XG5cdFx0XHRcdCdBcGktVXNlci1BZ2VudCc6IHVzZXJBZ2VudCA/IGBRaXV3ZW4vMS4xICgke3VzZXJBZ2VudH0pYCA6ICdRaXV3ZW4vMS4xJyxcblx0XHRcdH0sXG5cdFx0fSxcblx0fTtcblxuXHRpZiAoYXBpVXJpKSB7XG5cdFx0cmV0dXJuIG5ldyBtdy5Gb3JlaWduQXBpKGFwaVVyaSwgYXBpT3B0aW9ucyk7XG5cdH1cblxuXHRyZXR1cm4gbmV3IG13LkFwaShhcGlPcHRpb25zKTtcbn1cblxuZXhwb3J0IHt0eXBlIEluaXRNd0FwaSwgaW5pdE13QXBpfTtcbiIsICJ0eXBlIFVuaXF1ZUFycmF5ID0gdHlwZW9mIHVuaXF1ZUFycmF5O1xuXG5jb25zdCB1bmlxdWVBcnJheSA9IGZ1bmN0aW9uIHVuaXF1ZUFycmF5PFQ+KGFyZ3M6IFRbXSk6IFRbXSB7XG5cdC8qKiFcblx0ICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IENDLUJZLVNBLTQuMFxuXHQgKlxuXHQgKiBAc291cmNlIHtAbGluayBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy85MjI5NjQ1L3JlbW92ZS1kdXBsaWNhdGUtdmFsdWVzLWZyb20tanMtYXJyYXkvOTIyOTgyfVxuXHQgKiBAbGljZW5zZSBDQy1CWS1TQS00LjBcblx0ICovXG5cdGNvbnN0IHJlc3VsdDogdHlwZW9mIGFyZ3MgPSBbXTtcblx0Zm9yIChjb25zdCBpdGVtIG9mIGFyZ3MpIHtcblx0XHRpZiAoIXJlc3VsdC5pbmNsdWRlcyhpdGVtKSkge1xuXHRcdFx0cmVzdWx0W3Jlc3VsdC5sZW5ndGhdID0gaXRlbTsgLy8gUmVwbGFjZSBBcnJheSNwdXNoIHRvIGF2b2lkIGNvcmUtanMgcG9seWZpbGxpbmdcblx0XHR9XG5cdH1cblx0cmV0dXJuIHJlc3VsdDtcbn07XG5cbmV4cG9ydCB7dHlwZSBVbmlxdWVBcnJheSwgdW5pcXVlQXJyYXl9O1xuIiwgImltcG9ydCB7Z2VuZXJhdGVBcnJheX0gZnJvbSAnLi9nZW5lcmF0ZUFycmF5JztcbmltcG9ydCB7aW5pdE13QXBpfSBmcm9tICcuL2luaXRNd0FwaSc7XG5pbXBvcnQge3VuaXF1ZUFycmF5fSBmcm9tICcuL3VuaXF1ZUFycmF5JztcblxudHlwZSBCb29sZWFuID0gJzAnIHwgJzEnIHwgMCB8IDE7XG50eXBlIENoZWNrRGVwZW5kZW5jaWVzID0gdHlwZW9mIGNoZWNrRGVwZW5kZW5jaWVzO1xuXG5mdW5jdGlvbiBjaGVja0RlcGVuZGVuY2llcyhnYWRnZXROYW1lczogc3RyaW5nIHwgc3RyaW5nW10pOiBQcm9taXNlPHZvaWQ+O1xuZnVuY3Rpb24gY2hlY2tEZXBlbmRlbmNpZXMoZ2FkZ2V0TmFtZXM6IHN0cmluZywgb3B0aW9uOiBCb29sZWFuKTogUHJvbWlzZTx2b2lkPjtcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBmdW5jLXN0eWxlXG5hc3luYyBmdW5jdGlvbiBjaGVja0RlcGVuZGVuY2llcyhnYWRnZXROYW1lczogc3RyaW5nIHwgc3RyaW5nW10sIG9wdGlvbj86IEJvb2xlYW4pOiBQcm9taXNlPHZvaWQ+IHtcblx0Y29uc3QgYXBpOiBtdy5BcGkgPSBpbml0TXdBcGkoJ1V0aWwtQ2hlY2tEZXBlbmRlbmNpZXMnKTtcblx0Y29uc3QgZ2FkZ2V0cyA9IHVuaXF1ZUFycmF5KGdlbmVyYXRlQXJyYXkoZ2FkZ2V0TmFtZXMpKTtcblx0b3B0aW9uIHx8PSAxO1xuXG5cdGZvciAoY29uc3QgZ2FkZ2V0IG9mIGdhZGdldHMpIHtcblx0XHRpZiAoXG5cdFx0XHQob3B0aW9uID09PSAnMCcgJiYgbXcudXNlci5vcHRpb25zLmdldChgZ2FkZ2V0LSR7Z2FkZ2V0fWApKSB8fFxuXHRcdFx0KG9wdGlvbiA9PT0gJzEnICYmICFtdy51c2VyLm9wdGlvbnMuZ2V0KGBnYWRnZXQtJHtnYWRnZXR9YCkpXG5cdFx0KSB7XG5cdFx0XHRhd2FpdCBhcGkucG9zdFdpdGhFZGl0VG9rZW4oe1xuXHRcdFx0XHRhY3Rpb246ICdvcHRpb25zJyxcblx0XHRcdFx0Y2hhbmdlOiBgZ2FkZ2V0LSR7Z2FkZ2V0fT0ke29wdGlvbn1gLFxuXHRcdFx0fSBhcyBBcGlPcHRpb25zUGFyYW1zKTtcblx0XHRcdGF3YWl0IG13LmxvYWRlci51c2luZyhgZXh0LmdhZGdldC4ke2dhZGdldH1gKTtcblx0XHR9XG5cdH1cbn1cblxuZXhwb3J0IHt0eXBlIENoZWNrRGVwZW5kZW5jaWVzLCBjaGVja0RlcGVuZGVuY2llc307XG4iLCAidHlwZSBEZWxheSA9IChtczogbnVtYmVyKSA9PiBQcm9taXNlPHZvaWQ+O1xuXG5jb25zdCBkZWxheTogRGVsYXkgPSAobXMpID0+IHtcblx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiAoKSA9PiB2b2lkKTogdm9pZCA9PiB7XG5cdFx0c2V0VGltZW91dChyZXNvbHZlLCBtcyk7XG5cdH0pO1xufTtcblxuZXhwb3J0IHt0eXBlIERlbGF5LCBkZWxheX07XG4iLCAiaW1wb3J0IHtpbml0TXdBcGl9IGZyb20gJy4vaW5pdE13QXBpJztcbmltcG9ydCB7dW5pcXVlQXJyYXl9IGZyb20gJy4vdW5pcXVlQXJyYXknO1xuXG50eXBlIEZpbmRWYXJpYW50cyA9IHR5cGVvZiBmaW5kVmFyaWFudHM7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBmdW5jLXN0eWxlXG5hc3luYyBmdW5jdGlvbiBmaW5kVmFyaWFudHModGV4dDogc3RyaW5nKSB7XG5cdGNvbnN0IGFwaTogbXcuQXBpID0gaW5pdE13QXBpKCdVdGlsLUZpbmRWYXJpYW50cycpO1xuXG5cdGNvbnN0IFZBUklBTlRTID0gWyd6aC1oYW5zJywgJ3poLWhhbnQnLCAnemgtY24nLCAnemgtaGsnLCAnemgtbW8nLCAnemgtc2cnLCAnemgtbXknLCAnemgtdHcnXTtcblxuXHRjb25zdCBhbGxWYXJpYW50czogc3RyaW5nW10gPSBbXTtcblxuXHRjb25zdCBwYXJhbXM6IEFwaVBhcnNlUGFyYW1zID0ge1xuXHRcdGFjdGlvbjogJ3BhcnNlJyxcblx0XHRjb250ZW50bW9kZWw6ICd3aWtpdGV4dCcsXG5cdFx0Zm9ybWF0OiAnanNvbicsXG5cdFx0Zm9ybWF0dmVyc2lvbjogJzInLFxuXHRcdHByb3A6IFsnZGlzcGxheXRpdGxlJ10sXG5cdFx0dGl0bGU6ICd0ZW1wJyxcblx0XHR0ZXh0LFxuXHR9O1xuXG5cdGZvciAoY29uc3QgdmFyaWFudCBvZiBWQVJJQU5UUykge1xuXHRcdHBhcmFtcy51c2VsYW5nID0gdmFyaWFudDtcblx0XHRwYXJhbXMudmFyaWFudCA9IHZhcmlhbnQ7XG5cdFx0Y29uc3QgcmVzcG9uc2UgPSBhd2FpdCBhcGkucG9zdChwYXJhbXMpO1xuXG5cdFx0Y29uc3QgZGlzcGxheXRpdGxlID0gcmVzcG9uc2U/LlsncXVlcnknXT8uZGlzcGxheXRpdGxlIGFzIHN0cmluZztcblx0XHRjb25zdCB2YXJpYW50RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZhcmlhbnQnKTtcblx0XHR2YXJpYW50RWxlbWVudC5pbm5lckhUTUwgPSBkaXNwbGF5dGl0bGU7XG5cblx0XHRpZiAodmFyaWFudEVsZW1lbnQudGV4dENvbnRlbnQpIHtcblx0XHRcdGFsbFZhcmlhbnRzW2FsbFZhcmlhbnRzLmxlbmd0aF0gPSB2YXJpYW50RWxlbWVudC50ZXh0Q29udGVudDtcblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gdW5pcXVlQXJyYXkoYWxsVmFyaWFudHMpO1xufVxuXG5leHBvcnQge3R5cGUgRmluZFZhcmlhbnRzLCBmaW5kVmFyaWFudHN9O1xuIiwgInR5cGUgR2VuZXJhdGVTdmdEYXRhVXJsID0gKHN2Zzogc3RyaW5nKSA9PiBzdHJpbmc7XG5cbmNvbnN0IGdlbmVyYXRlU3ZnRGF0YVVybDogR2VuZXJhdGVTdmdEYXRhVXJsID0gKHN2ZykgPT4ge1xuXHQvKiohXG5cdCAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcblx0ICpcblx0ICogQHNvdXJjZSBzdmctdG8tZGF0YS11cmkuanMge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9oZXlhbGxhbi9zdmctdG8tZGF0YS11cmkvfVxuXHQgKiBAYXV0aG9yIEFsbGFuIE1vcmVub1xuXHQgKiBAbGljZW5zZSBNSVQge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9oZXlhbGxhbi9zdmctdG8tZGF0YS11cmkvYmxvYi9tYXN0ZXIvTElDRU5TRX1cblx0ICpcblx0ICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuXHQgKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG5cdCAqIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcblx0ICogdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuXHQgKiBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcblx0ICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcblx0ICpcblx0ICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsXG5cdCAqIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG5cdCAqXG5cdCAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcblx0ICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG5cdCAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuXHQgKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG5cdCAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG5cdCAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFXG5cdCAqIFNPRlRXQVJFLlxuXHQgKi9cblx0c3ZnID0gc3ZnLnRyaW0oKTtcblx0Ly8gcmVtb3ZlIHhtbCwgZG9jdHlwZSwgZ2VuZXJhdG9yLi4uXG5cdHN2ZyA9IHN2Zy5zbGljZShzdmcuaW5kZXhPZignPHN2ZycpKTtcblx0Ly8gc29mdCB2YWxpZGF0ZVxuXHRpZiAoIXN2Zy5zdGFydHNXaXRoKCc8c3ZnJykgfHwgIXN2Zy5lbmRzV2l0aCgnc3ZnPicpKSB7XG5cdFx0cmV0dXJuICcnO1xuXHR9XG5cdC8vIGFkZCBuYW1lc3BhY2UgaWYgbmVjZXNzYXJ5XG5cdGlmICghc3ZnLmluY2x1ZGVzKCdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycpKSB7XG5cdFx0c3ZnID0gc3ZnLnJlcGxhY2UoLzxzdmcvZywgXCI8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZydcIik7XG5cdH1cblx0Ly8gcmVtb3ZlIGNvbW1lbnRzXG5cdHN2ZyA9IHN2Zy5yZXBsYWNlKC88IS0tLnsxLH0tLT4vZywgJycpO1xuXHQvLyByZW1vdmUgdW5uZWNlc3NhcnkgYXR0cmlidXRlc1xuXHRzdmcgPSBzdmcucmVwbGFjZSgvdmVyc2lvbj1bXCInXSguezAsfT8pW1wiJ10oPz1bXFxzPl0pL2csICcnKTtcblx0Ly8gcmVwbGFjZSBuZXN0ZWQgcXVvdGVzXG5cdHN2ZyA9IHN2Zy5yZXBsYWNlKC9cIicoLnsxLH0pJ1wiL2csIFwiJyQxJ1wiKTtcblx0Ly8gcmVwbGFjZSBkb3VibGUgcXVvdGVzXG5cdHN2ZyA9IHN2Zy5yZXBsYWNlKC9cIi9nLCBcIidcIik7XG5cdC8vIHJlbW92ZSBlbXB0eSBzcGFjZXMgYmV0d2VlbiB0YWdzXG5cdHN2ZyA9IHN2Zy5yZXBsYWNlKC8+XFxzezEsfTwvZywgJz48Jyk7XG5cdC8vIHJlbW92ZSBkdXBsaWNhdGUgc3BhY2VzXG5cdHN2ZyA9IHN2Zy5yZXBsYWNlKC9cXHN7Mix9L2csICcgJyk7XG5cdC8vIHRyaW0gYWdhaW5cblx0c3ZnID0gc3ZnLnRyaW0oKTtcblx0Ly8gc29mdCB2YWxpZGF0ZSBhZ2FpblxuXHRpZiAoIXN2Zy5zdGFydHNXaXRoKCc8c3ZnJykgfHwgIXN2Zy5lbmRzV2l0aCgnc3ZnPicpKSB7XG5cdFx0cmV0dXJuICcnO1xuXHR9XG5cdC8vIHJlcGxhY2UgYW1wZXJzYW5kXG5cdHN2ZyA9IHN2Zy5yZXBsYWNlKC8mL2csICcmYW1wOycpO1xuXHQvLyBlbmNvZGUgb25seSB1bnNhZmUgc3ltYm9sc1xuXHRzdmcgPSBzdmcucmVwbGFjZSgvWyUjPD4/W1xcXFxcXF1eYHt8fV0vZywgZW5jb2RlVVJJQ29tcG9uZW50KTtcblx0Ly8gYnVpbGQgZGF0YSB1cmlcblx0c3ZnID0gYGRhdGE6aW1hZ2Uvc3ZnK3htbCwke3N2Z31gO1xuXHQvLyBvaywgc2hpcCBpdCFcblx0cmV0dXJuIHN2Zztcbn07XG5cbmV4cG9ydCB7dHlwZSBHZW5lcmF0ZVN2Z0RhdGFVcmwsIGdlbmVyYXRlU3ZnRGF0YVVybH07XG4iLCAidHlwZSBHZXRCb2R5ID0gKCkgPT4gSlF1ZXJ5LlRoZW5hYmxlPEpRdWVyeTxIVE1MQm9keUVsZW1lbnQ+PjtcblxuY29uc3QgZ2V0Qm9keSA9ICgpID0+IHtcblx0cmV0dXJuICQucmVhZHkudGhlbigoKTogSlF1ZXJ5PEhUTUxCb2R5RWxlbWVudD4gPT4ge1xuXHRcdGNvbnN0ICRib2R5OiBKUXVlcnk8SFRNTEJvZHlFbGVtZW50PiA9ICQoJ2JvZHknKTtcblxuXHRcdHJldHVybiAkYm9keTtcblx0fSk7XG59O1xuXG5leHBvcnQge3R5cGUgR2V0Qm9keSwgZ2V0Qm9keX07XG4iLCAidHlwZSBJc1ZhbGlkS2V5ID0gdHlwZW9mIGlzVmFsaWRLZXk7XG5cbmNvbnN0IGlzVmFsaWRLZXkgPSAob2JqZWN0OiBvYmplY3QsIGtleTogc3RyaW5nIHwgbnVtYmVyIHwgc3ltYm9sKToga2V5IGlzIGtleW9mIHR5cGVvZiBvYmplY3QgPT4ge1xuXHRyZXR1cm4ga2V5IGluIG9iamVjdDtcbn07XG5cbmV4cG9ydCB7dHlwZSBJc1ZhbGlkS2V5LCBpc1ZhbGlkS2V5fTtcbiIsICJ0eXBlIENsYXNzTXdVcmkgPSB0eXBlb2YgTXdVcmk7XG5cbmNsYXNzIE13VXJpIGV4dGVuZHMgVVJMIHtcblx0ZXh0ZW5kKG9iamVjdDoge1trZXk6IHN0cmluZ106IHN0cmluZ30pIHtcblx0XHRmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhvYmplY3QpKSB7XG5cdFx0XHR0aGlzLnNlYXJjaFBhcmFtcy5zZXQoa2V5LCB2YWx1ZSk7XG5cdFx0fVxuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cdGdldFJlbGF0aXZlUGF0aCgpIHtcblx0XHRyZXR1cm4gdGhpcy5wYXRobmFtZSArIHRoaXMuc2VhcmNoICsgdGhpcy5oYXNoO1xuXHR9XG59XG5cbmV4cG9ydCB7dHlwZSBDbGFzc013VXJpLCBNd1VyaX07XG4iLCAiaW1wb3J0IFJlYWN0IGZyb20gJ2V4dC5nYWRnZXQuSlNYJztcblxudHlwZSBPb3VpQ29uZmlybVdpdGhTdHlsZSA9IChtZXNzYWdlOiBzdHJpbmcpID0+IEpRdWVyeS5Qcm9taXNlPGJvb2xlYW4+O1xuXG4vKipcbiAqIEByZXF1aXJlcyBvb2pzLXVpLXdpbmRvd3NcbiAqIEBwYXJhbSB7c3RyaW5nfSBbbWVzc2FnZV1cbiAqIEByZXR1cm4ge0pRdWVyeS5Qcm9taXNlPGJvb2xlYW4+fVxuICovXG5jb25zdCBvb3VpQ29uZmlybVdpdGhTdHlsZTogT291aUNvbmZpcm1XaXRoU3R5bGUgPSAobWVzc2FnZSkgPT5cblx0T08udWlcblx0XHQuY29uZmlybShcblx0XHRcdCQoXG5cdFx0XHRcdDxkaXZcblx0XHRcdFx0XHRjbGFzc05hbWU9XCJvby11aS13aW5kb3ctZm9vdFwiXG5cdFx0XHRcdFx0c3R5bGU9e3tcblx0XHRcdFx0XHRcdGJvcmRlcjogJy4xcmVtIHNvbGlkICMwNjQ1YWQnLFxuXHRcdFx0XHRcdFx0ZGlzcGxheTogJ2ZsZXgnLFxuXHRcdFx0XHRcdFx0anVzdGlmeUNvbnRlbnQ6ICdzcGFjZS1ldmVubHknLFxuXHRcdFx0XHRcdH19XG5cdFx0XHRcdD5cblx0XHRcdFx0XHQ8c3BhblxuXHRcdFx0XHRcdFx0c3R5bGU9e3tcblx0XHRcdFx0XHRcdFx0Zm9udFNpemU6ICcxLjJyZW0nLFxuXHRcdFx0XHRcdFx0XHRmb250V2VpZ2h0OiAnNTAwJyxcblx0XHRcdFx0XHRcdFx0bGluZUhlaWdodDogJzEuOCcsXG5cdFx0XHRcdFx0XHRcdHBhZGRpbmc6ICcuNGVtIDAnLFxuXHRcdFx0XHRcdFx0fX1cblx0XHRcdFx0XHQ+XG5cdFx0XHRcdFx0XHR7bWVzc2FnZX1cblx0XHRcdFx0XHQ8L3NwYW4+XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0KSBhcyBKUXVlcnlcblx0XHQpXG5cdFx0LnRoZW4oKGlzQ29uZmlybTogYm9vbGVhbik6IGJvb2xlYW4gPT4gaXNDb25maXJtKTtcblxuZXhwb3J0IHt0eXBlIE9vdWlDb25maXJtV2l0aFN0eWxlLCBvb3VpQ29uZmlybVdpdGhTdHlsZX07XG4iLCAiaW1wb3J0IHtpbml0TXdBcGl9IGZyb20gJy4vaW5pdE13QXBpJztcblxudHlwZSBRdWVyeUdsb2JhbFVzZXJHcm91cHMgPSB0eXBlb2YgcXVlcnlHbG9iYWxVc2VyR3JvdXBzO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZnVuYy1zdHlsZVxuYXN5bmMgZnVuY3Rpb24gcXVlcnlHbG9iYWxVc2VyR3JvdXBzKGd1aXVzZXI6IHN0cmluZykge1xuXHRjb25zdCBhcGk6IG13LkFwaSA9IGluaXRNd0FwaSgnVXRpbC1RdWVyeUdsb2JhbFVzZXJHcm91cHMnKTtcblxuXHRjb25zdCBDQUNIRV9LRVlfUFJFRklYID0gJ2V4dC5nYWRnZXQuVXRpbF9xdWVyeUdsb2JhbFVzZXJHcm91cHMtJztcblxuXHRsZXQgZ3JvdXBzOiBzdHJpbmdbXSA9IFtdO1xuXG5cdC8vIFF1ZXJ5IGZyb20gY2FjaGVcblx0Ly8gQ2hlY2sgaWYgdXNlciBncm91cCBpbmZvIGlzIGNhY2hlZCBpbiBMb2NhbFN0b3JhZ2Vcblx0Ly8gSWYgY2FjaGVkLCBnZXQgdGhlbSBmcm9tIExvY2FsU3RvcmFnZVxuXHRpZiAobXcuc3RvcmFnZS5nZXRPYmplY3QoQ0FDSEVfS0VZX1BSRUZJWCArIGd1aXVzZXIpKSB7XG5cdFx0Z3JvdXBzID0gbXcuc3RvcmFnZS5nZXRPYmplY3QoQ0FDSEVfS0VZX1BSRUZJWCArIGd1aXVzZXIpIGFzIHN0cmluZ1tdO1xuXHRcdC8vIFJlbW92ZSAnKicgZnJvbSBncm91cHNcblx0XHRncm91cHMgPSBncm91cHMuZmlsdGVyKChlbGVtZW50KSA9PiB7XG5cdFx0XHRyZXR1cm4gZWxlbWVudCAhPT0gJyonO1xuXHRcdH0pO1xuXHR9IGVsc2Uge1xuXHRcdC8vIFF1ZXJ5IGZyb20gd2ViXG5cdFx0Ly8gUXVlcnkgcGFyYW1zXG5cdFx0Y29uc3QgcGFyYW1zID0ge1xuXHRcdFx0YWN0aW9uOiAncXVlcnknLFxuXHRcdFx0Zm9ybWF0OiAnanNvbicsXG5cdFx0XHRmb3JtYXR2ZXJzaW9uOiAnMicsXG5cdFx0XHRtZXRhOiAnZ2xvYmFsdXNlcmluZm8nLFxuXHRcdFx0Z3VpdXNlcixcblx0XHRcdGd1aXByb3A6ICdncm91cHMnLFxuXHRcdFx0c21heGFnZTogNjAwLFxuXHRcdFx0bWF4YWdlOiA2MDAsXG5cdFx0fTtcblx0XHRjb25zdCByZXNwb25zZSA9IGF3YWl0IGFwaS5nZXQocGFyYW1zKTtcblxuXHRcdC8vIERlLWNvbnN0cnVjdCB0aGUgcmVzcG9uc2Ugb2JqZWN0XG5cdFx0Y29uc3QgcXVlcnkgPSByZXNwb25zZVsncXVlcnknXSBhcyB7XG5cdFx0XHRnbG9iYWx1c2VyaW5mbzoge2dyb3Vwczogc3RyaW5nW107IG5hbWU6IHN0cmluZ307XG5cdFx0fTtcblxuXHRcdGlmIChxdWVyeT8uZ2xvYmFsdXNlcmluZm8pIHtcblx0XHRcdGdyb3VwcyA9IHF1ZXJ5Lmdsb2JhbHVzZXJpbmZvPy5ncm91cHMgPz8gW107XG5cdFx0XHQvLyBSZW1vdmUgJyonIGZyb20gZ3JvdXBzXG5cdFx0XHRncm91cHMgPSBncm91cHMuZmlsdGVyKChlbGVtZW50KSA9PiB7XG5cdFx0XHRcdHJldHVybiBlbGVtZW50ICE9PSAnKic7XG5cdFx0XHR9KTtcblx0XHRcdC8vIENhY2hlIGZvciAxMCBtaW51dGVzXG5cdFx0XHRtdy5zdG9yYWdlLnNldE9iamVjdChDQUNIRV9LRVlfUFJFRklYICsgZ3VpdXNlciwgZ3JvdXBzLCAxMCAqIDYwKTtcblx0XHR9XG5cdH1cblxuXHRyZXR1cm4ge3F1ZXJ5OiB7Z2xvYmFsdXNlcmluZm86IHtuYW1lOiBndWl1c2VyLCBncm91cHN9fX07XG59XG5cbmV4cG9ydCB7dHlwZSBRdWVyeUdsb2JhbFVzZXJHcm91cHMsIHF1ZXJ5R2xvYmFsVXNlckdyb3Vwc307XG4iLCAiaW1wb3J0IHtpbml0TXdBcGl9IGZyb20gJy4vaW5pdE13QXBpJztcblxudHlwZSBRdWVyeVVzZXJHcm91cHMgPSB0eXBlb2YgcXVlcnlVc2VyR3JvdXBzO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZnVuYy1zdHlsZVxuYXN5bmMgZnVuY3Rpb24gcXVlcnlVc2VyR3JvdXBzKHVzZXJzOiBzdHJpbmdbXSkge1xuXHRjb25zdCBhcGk6IG13LkFwaSA9IGluaXRNd0FwaSgnVXRpbC1RdWVyeVVzZXJHcm91cHMnKTtcblxuXHRjb25zdCBDQUNIRV9LRVlfUFJFRklYID0gJ2V4dC5nYWRnZXQuVXRpbF9xdWVyeVVzZXJHcm91cHMtJztcblxuXHRjb25zdCBjYWNoZWRRdWVyeVVzZXJzOiB7Z3JvdXBzOiBzdHJpbmdbXTsgbmFtZTogc3RyaW5nfVtdID0gW107XG5cblx0Ly8gUXVlcnkgZnJvbSBjYWNoZVxuXHRmb3IgKGNvbnN0IHVzZXIgb2YgdXNlcnMpIHtcblx0XHQvLyBDaGVjayBpZiB1c2VyIGdyb3VwIGluZm8gaXMgY2FjaGVkIGluIExvY2FsU3RvcmFnZVxuXHRcdC8vIElmIGNhY2hlZCwgZ2V0IHRoZW0gZnJvbSBMb2NhbFN0b3JhZ2Vcblx0XHRpZiAobXcuc3RvcmFnZS5nZXRPYmplY3QoQ0FDSEVfS0VZX1BSRUZJWCArIHVzZXIpKSB7XG5cdFx0XHRsZXQgZ3JvdXBzID0gbXcuc3RvcmFnZS5nZXRPYmplY3QoQ0FDSEVfS0VZX1BSRUZJWCArIHVzZXIpIGFzIHN0cmluZ1tdO1xuXHRcdFx0Ly8gUmVtb3ZlICcqJyBmcm9tIGdyb3Vwc1xuXHRcdFx0Z3JvdXBzID0gZ3JvdXBzLmZpbHRlcigoZWxlbWVudCkgPT4ge1xuXHRcdFx0XHRyZXR1cm4gZWxlbWVudCAhPT0gJyonO1xuXHRcdFx0fSk7XG5cdFx0XHQvLyBTdG9yZSBpbnRvIGFycmF5XG5cdFx0XHRjYWNoZWRRdWVyeVVzZXJzW2NhY2hlZFF1ZXJ5VXNlcnMubGVuZ3RoXSA9IHtuYW1lOiB1c2VyLCBncm91cHN9O1xuXHRcdH1cblx0fVxuXG5cdC8vIFF1ZXJ5IGZyb20gd2ViXG5cdGNvbnN0IHVzdXNlcnMgPSB1c2Vycy5maWx0ZXIoKHYpID0+IHtcblx0XHQvLyBSZW1vdmUgdXNlciB0aGF0IGhhdmUgY2FjaGVkIHVzZXIgZ3JvdXBzIGxvY2FsbHlcblx0XHRyZXR1cm4gIW13LnN0b3JhZ2UuZ2V0T2JqZWN0KENBQ0hFX0tFWV9QUkVGSVggKyB2KTtcblx0fSk7XG5cblx0Ly8gUXVlcnkgcGFyYW1zXG5cdGNvbnN0IHBhcmFtczogQXBpUXVlcnlVc2Vyc1BhcmFtcyA9IHtcblx0XHR1c3VzZXJzLFxuXHRcdGFjdGlvbjogJ3F1ZXJ5Jyxcblx0XHRmb3JtYXQ6ICdqc29uJyxcblx0XHRmb3JtYXR2ZXJzaW9uOiAnMicsXG5cdFx0bGlzdDogJ3VzZXJzJyxcblx0XHR1c3Byb3A6ICdncm91cHMnLFxuXHRcdHNtYXhhZ2U6IDYwMCxcblx0XHRtYXhhZ2U6IDYwMCxcblx0fTtcblx0Y29uc3QgcmVzcG9uc2UgPSBhd2FpdCBhcGkuZ2V0KHBhcmFtcyk7XG5cblx0Ly8gRGUtY29uc3RydWN0IHRoZSByZXNwb25zZSBvYmplY3Rcblx0Y29uc3QgcXVlcnkgPSByZXNwb25zZVsncXVlcnknXSBhcyB7XG5cdFx0dXNlcnM6IHtncm91cHM6IHN0cmluZ1tdOyBuYW1lOiBzdHJpbmd9W107XG5cdH07XG5cdGNvbnN0IHF1ZXJ5VXNlcnMgPSBbLi4uKHF1ZXJ5Py51c2VycyA/PyBbXSksIC4uLmNhY2hlZFF1ZXJ5VXNlcnNdO1xuXG5cdGZvciAoY29uc3QgdXNlciBvZiBxdWVyeVVzZXJzKSB7XG5cdFx0aWYgKHVzZXI/Lmdyb3VwcyAmJiB1c2VyPy5uYW1lKSB7XG5cdFx0XHRsZXQge2dyb3Vwc30gPSB1c2VyO1xuXHRcdFx0Ly8gUmVtb3ZlICcqJyBmcm9tIGdyb3Vwc1xuXHRcdFx0Z3JvdXBzID0gZ3JvdXBzLmZpbHRlcigoZWxlbWVudCkgPT4ge1xuXHRcdFx0XHRyZXR1cm4gZWxlbWVudCAhPT0gJyonO1xuXHRcdFx0fSk7XG5cdFx0XHQvLyBDYWNoZSBmb3IgMTAgbWludXRlc1xuXHRcdFx0bXcuc3RvcmFnZS5zZXRPYmplY3QoQ0FDSEVfS0VZX1BSRUZJWCArIHVzZXIubmFtZSwgZ3JvdXBzLCAxMCAqIDYwKTtcblx0XHR9XG5cdH1cblxuXHRyZXR1cm4ge3F1ZXJ5OiB7dXNlcnM6IHF1ZXJ5VXNlcnN9fTtcbn1cblxuZXhwb3J0IHt0eXBlIFF1ZXJ5VXNlckdyb3VwcywgcXVlcnlVc2VyR3JvdXBzfTtcbiIsICJ0eXBlIFNjcm9sbFRvcCA9IChcblx0dGFyZ2V0SGVpZ2h0OiBudW1iZXIgfCBzdHJpbmcsXG5cdGVmZmVjdHNPcHRpb25zT3JEdXJhdGlvbj86IEpRdWVyeS5FZmZlY3RzT3B0aW9uczxIVE1MRWxlbWVudD4gfCBudW1iZXIgfCAnZmFzdCcgfCAnc2xvdydcbikgPT4gdm9pZDtcblxuY29uc3Qgc2Nyb2xsVG9wOiBTY3JvbGxUb3AgPSAodGFyZ2V0SGVpZ2h0LCBlZmZlY3RzT3B0aW9uc09yRHVyYXRpb24gPSB7fSkgPT4ge1xuXHRjb25zdCBvcHRpb25zOiBKUXVlcnkuRWZmZWN0c09wdGlvbnM8SFRNTEVsZW1lbnQ+ID1cblx0XHR0eXBlb2YgZWZmZWN0c09wdGlvbnNPckR1cmF0aW9uID09PSAnbnVtYmVyJyB8fCB0eXBlb2YgZWZmZWN0c09wdGlvbnNPckR1cmF0aW9uID09PSAnc3RyaW5nJ1xuXHRcdFx0PyB7XG5cdFx0XHRcdFx0ZHVyYXRpb246IGVmZmVjdHNPcHRpb25zT3JEdXJhdGlvbixcblx0XHRcdFx0XHRlYXNpbmc6ICdsaW5lYXInLFxuXHRcdFx0XHR9XG5cdFx0XHQ6IHtcblx0XHRcdFx0XHRkdXJhdGlvbjogJ3Nsb3cnLFxuXHRcdFx0XHRcdGVhc2luZzogJ2xpbmVhcicsXG5cdFx0XHRcdFx0Li4uZWZmZWN0c09wdGlvbnNPckR1cmF0aW9uLFxuXHRcdFx0XHR9O1xuXHQkKGRvY3VtZW50KS5maW5kKCdodG1sLCBib2R5JykuYW5pbWF0ZShcblx0XHR7XG5cdFx0XHRzY3JvbGxUb3A6IHRhcmdldEhlaWdodCxcblx0XHR9LFxuXHRcdG9wdGlvbnNcblx0KTtcbn07XG5cbmV4cG9ydCB7dHlwZSBTY3JvbGxUb3AsIHNjcm9sbFRvcH07XG4iLCAiaW1wb3J0IHtnZW5lcmF0ZUFycmF5fSBmcm9tICcuL2dlbmVyYXRlQXJyYXknO1xuXG50eXBlIFVzZXJJc0luR3JvdXAgPSB0eXBlb2YgdXNlcklzSW5Hcm91cDtcblxuY29uc3QgdXNlcklzSW5Hcm91cCA9IChncm91cHM6IHN0cmluZyB8IHN0cmluZ1tdKSA9PiB7XG5cdGNvbnN0IHt3Z1VzZXJHcm91cHMsIHdnR2xvYmFsR3JvdXBzfSA9IG13LmNvbmZpZy5nZXQoKTtcblx0cmV0dXJuIFsuLi4od2dVc2VyR3JvdXBzIHx8IFtdKSwgLi4uKCh3Z0dsb2JhbEdyb3VwcyBhcyBzdHJpbmdbXSkgfHwgW10pXS5zb21lKChlbGVtZW50OiBzdHJpbmcpOiBib29sZWFuID0+IHtcblx0XHRyZXR1cm4gZ2VuZXJhdGVBcnJheShncm91cHMpLmluY2x1ZGVzKGVsZW1lbnQpO1xuXHR9KTtcbn07XG5cbmV4cG9ydCB7dHlwZSBVc2VySXNJbkdyb3VwLCB1c2VySXNJbkdyb3VwfTtcbiIsICJ0eXBlIEdldFdwU3VtbWFyeUNvbnRlbnQgPSB0eXBlb2YgZ2V0V3BTdW1tYXJ5Q29udGVudDtcbnR5cGUgU2V0V3BTdW1tYXJ5Q29udGVudCA9IHR5cGVvZiBzZXRXcFN1bW1hcnlDb250ZW50O1xuXG5jb25zdCBnZXRXcFN1bW1hcnlDb250ZW50ID0gKHskZWRpdEZvcm19OiB7JGVkaXRGb3JtOiBKUXVlcnk8SFRNTEVsZW1lbnQ+fSk6IHN0cmluZyA9PiB7XG5cdHJldHVybiAkZWRpdEZvcm0uZmluZDxIVE1MSW5wdXRFbGVtZW50PignI3dwU3VtbWFyeScpPy52YWwoKSA/PyAnJztcbn07XG5cbmNvbnN0IHNldFdwU3VtbWFyeUNvbnRlbnQgPSAoeyRlZGl0Rm9ybSwgY29udGVudH06IHskZWRpdEZvcm06IEpRdWVyeTxIVE1MRWxlbWVudD47IGNvbnRlbnQ6IHN0cmluZ30pOiB2b2lkID0+IHtcblx0JGVkaXRGb3JtLmZpbmQ8SFRNTElucHV0RWxlbWVudD4oJyN3cFN1bW1hcnknKS52YWwoY29udGVudCk7XG59O1xuXG5leHBvcnQge2dldFdwU3VtbWFyeUNvbnRlbnQsIHR5cGUgR2V0V3BTdW1tYXJ5Q29udGVudCwgc2V0V3BTdW1tYXJ5Q29udGVudCwgdHlwZSBTZXRXcFN1bW1hcnlDb250ZW50fTtcbiIsICJ0eXBlIEdldFdwVGV4dGJveDFDb250ZW50ID0gdHlwZW9mIGdldFdwVGV4dGJveDFDb250ZW50O1xudHlwZSBTZXRXcFRleHRib3gxQ29udGVudCA9IHR5cGVvZiBzZXRXcFRleHRib3gxQ29udGVudDtcblxuY29uc3QgZ2V0V3BUZXh0Ym94MUNvbnRlbnQgPSAoeyRlZGl0Rm9ybX06IHskZWRpdEZvcm06IEpRdWVyeTxIVE1MRWxlbWVudD59KTogc3RyaW5nID0+IHtcblx0cmV0dXJuICRlZGl0Rm9ybS5maW5kPEhUTUxUZXh0QXJlYUVsZW1lbnQ+KCcjd3BUZXh0Ym94MScpLnRleHRTZWxlY3Rpb24oJ2dldENvbnRlbnRzJykgPz8gJyc7XG59O1xuXG5jb25zdCBzZXRXcFRleHRib3gxQ29udGVudCA9ICh7JGVkaXRGb3JtLCBjb250ZW50fTogeyRlZGl0Rm9ybTogSlF1ZXJ5PEhUTUxFbGVtZW50PjsgY29udGVudDogc3RyaW5nfSk6IHZvaWQgPT4ge1xuXHQkZWRpdEZvcm0uZmluZDxIVE1MVGV4dEFyZWFFbGVtZW50PignI3dwVGV4dGJveDEnKS50ZXh0U2VsZWN0aW9uKCdzZXRDb250ZW50cycsIGNvbnRlbnQpO1xufTtcblxuZXhwb3J0IHtnZXRXcFRleHRib3gxQ29udGVudCwgdHlwZSBHZXRXcFRleHRib3gxQ29udGVudCwgc2V0V3BUZXh0Ym94MUNvbnRlbnQsIHR5cGUgU2V0V3BUZXh0Ym94MUNvbnRlbnR9O1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBLG9GQUFBQSxVQUFBQyxTQUFBO0FBQUE7QUFFQSxRQUFJLGNBQWMsT0FBTyxZQUFZLFlBQVksU0FBUztBQUsxRCxJQUFBQSxRQUFPLFVBQVUsT0FBTyxlQUFlLGVBQWUsZ0JBQWdCLFNBQVksU0FBVSxVQUFVO0FBQ3BHLGFBQU8sT0FBTyxZQUFZLGNBQWMsYUFBYTtBQUFBLElBQ3ZELElBQUksU0FBVSxVQUFVO0FBQ3RCLGFBQU8sT0FBTyxZQUFZO0FBQUEsSUFDNUI7QUFBQTtBQUFBOzs7QUNYQTtBQUFBLDhFQUFBQyxVQUFBQyxTQUFBO0FBQUE7QUFDQSxJQUFBQSxRQUFPLFVBQVUsU0FBVSxNQUFNO0FBQy9CLFVBQUk7QUFDRixlQUFPLENBQUMsQ0FBQyxLQUFLO0FBQUEsTUFDaEIsU0FBUyxPQUFPO0FBQ2QsZUFBTztBQUFBLE1BQ1Q7QUFBQSxJQUNGO0FBQUE7QUFBQTs7O0FDUEE7QUFBQSxvRkFBQUMsVUFBQUMsU0FBQTtBQUFBO0FBQ0EsUUFBSSxRQUFRO0FBR1osSUFBQUEsUUFBTyxVQUFVLENBQUMsTUFBTSxXQUFZO0FBRWxDLGFBQU8sT0FBTyxlQUFlLENBQUMsR0FBRyxHQUFHLEVBQUUsS0FBSyxXQUFZO0FBQUUsZUFBTztBQUFBLE1BQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNO0FBQUEsSUFDakYsQ0FBQztBQUFBO0FBQUE7OztBQ1BEO0FBQUEsb0ZBQUFDLFVBQUFDLFNBQUE7QUFBQTtBQUNBLFFBQUksUUFBUSxTQUFVLElBQUk7QUFDeEIsYUFBTyxNQUFNLEdBQUcsU0FBUyxRQUFRO0FBQUEsSUFDbkM7QUFHQSxJQUFBQSxRQUFPO0FBQUEsSUFFTCxNQUFNLE9BQU8sY0FBYyxZQUFZLFVBQVUsS0FDakQsTUFBTSxPQUFPLFVBQVUsWUFBWSxNQUFNO0FBQUEsSUFFekMsTUFBTSxPQUFPLFFBQVEsWUFBWSxJQUFJLEtBQ3JDLE1BQU0sT0FBTyxVQUFVLFlBQVksTUFBTSxLQUN6QyxNQUFNLE9BQU9ELFlBQVEsWUFBWUEsUUFBSTtBQUFBLElBRXBDLDJCQUFZO0FBQUUsYUFBTztBQUFBLElBQU0sRUFBRyxLQUFLLFNBQVMsYUFBYSxFQUFFO0FBQUE7QUFBQTs7O0FDZjlEO0FBQUEsa0ZBQUFFLFVBQUFDLFNBQUE7QUFBQTtBQUNBLFFBQUksYUFBYTtBQUVqQixJQUFBQSxRQUFPLFVBQVUsU0FBVSxJQUFJO0FBQzdCLGFBQU8sT0FBTyxNQUFNLFdBQVcsT0FBTyxPQUFPLFdBQVcsRUFBRTtBQUFBLElBQzVEO0FBQUE7QUFBQTs7O0FDTEE7QUFBQSxnR0FBQUMsVUFBQUMsU0FBQTtBQUFBO0FBQ0EsUUFBSUMsY0FBYTtBQUNqQixRQUFJLFdBQVc7QUFFZixRQUFJQyxZQUFXRCxZQUFXO0FBRTFCLFFBQUksU0FBUyxTQUFTQyxTQUFRLEtBQUssU0FBU0EsVUFBUyxhQUFhO0FBRWxFLElBQUFGLFFBQU8sVUFBVSxTQUFVLElBQUk7QUFDN0IsYUFBTyxTQUFTRSxVQUFTLGNBQWMsRUFBRSxJQUFJLENBQUM7QUFBQSxJQUNoRDtBQUFBO0FBQUE7OztBQ1ZBO0FBQUEsdUZBQUFDLFVBQUFDLFNBQUE7QUFBQTtBQUNBLFFBQUksY0FBYztBQUNsQixRQUFJLFFBQVE7QUFDWixRQUFJLGdCQUFnQjtBQUdwQixJQUFBQSxRQUFPLFVBQVUsQ0FBQyxlQUFlLENBQUMsTUFBTSxXQUFZO0FBRWxELGFBQU8sT0FBTyxlQUFlLGNBQWMsS0FBSyxHQUFHLEtBQUs7QUFBQSxRQUN0RCxLQUFLLFdBQVk7QUFBRSxpQkFBTztBQUFBLFFBQUc7QUFBQSxNQUMvQixDQUFDLEVBQUUsTUFBTTtBQUFBLElBQ1gsQ0FBQztBQUFBO0FBQUE7OztBQ1hEO0FBQUEsZ0dBQUFDLFVBQUFDLFNBQUE7QUFBQTtBQUNBLFFBQUksY0FBYztBQUNsQixRQUFJLFFBQVE7QUFJWixJQUFBQSxRQUFPLFVBQVUsZUFBZSxNQUFNLFdBQVk7QUFFaEQsYUFBTyxPQUFPLGVBQWUsV0FBWTtBQUFBLE1BQWMsR0FBRyxhQUFhO0FBQUEsUUFDckUsT0FBTztBQUFBLFFBQ1AsVUFBVTtBQUFBLE1BQ1osQ0FBQyxFQUFFLGNBQWM7QUFBQSxJQUNuQixDQUFDO0FBQUE7QUFBQTs7O0FDWkQ7QUFBQSxrRkFBQUMsVUFBQUMsU0FBQTtBQUFBO0FBQ0EsUUFBSSxXQUFXO0FBRWYsUUFBSSxVQUFVO0FBQ2QsUUFBSSxhQUFhO0FBR2pCLElBQUFBLFFBQU8sVUFBVSxTQUFVLFVBQVU7QUFDbkMsVUFBSSxTQUFTLFFBQVEsRUFBRyxRQUFPO0FBQy9CLFlBQU0sSUFBSSxXQUFXLFFBQVEsUUFBUSxJQUFJLG1CQUFtQjtBQUFBLElBQzlEO0FBQUE7QUFBQTs7O0FDVkE7QUFBQSw2RkFBQUMsVUFBQUMsU0FBQTtBQUFBO0FBQ0EsUUFBSSxRQUFRO0FBRVosSUFBQUEsUUFBTyxVQUFVLENBQUMsTUFBTSxXQUFZO0FBRWxDLFVBQUksT0FBUSxXQUFZO0FBQUEsTUFBYyxFQUFHLEtBQUs7QUFFOUMsYUFBTyxPQUFPLFFBQVEsY0FBYyxLQUFLLGVBQWUsV0FBVztBQUFBLElBQ3JFLENBQUM7QUFBQTtBQUFBOzs7QUNSRDtBQUFBLHNGQUFBQyxVQUFBQyxTQUFBO0FBQUE7QUFDQSxRQUFJLGNBQWM7QUFFbEIsUUFBSSxPQUFPLFNBQVMsVUFBVTtBQUU5QixJQUFBQSxRQUFPLFVBQVUsY0FBYyxLQUFLLEtBQUssSUFBSSxJQUFJLFdBQVk7QUFDM0QsYUFBTyxLQUFLLE1BQU0sTUFBTSxTQUFTO0FBQUEsSUFDbkM7QUFBQTtBQUFBOzs7QUNQQTtBQUFBLHFGQUFBQyxVQUFBQyxTQUFBO0FBQUE7QUFDQSxRQUFJQyxjQUFhO0FBQ2pCLFFBQUksYUFBYTtBQUVqQixRQUFJLFlBQVksU0FBVSxVQUFVO0FBQ2xDLGFBQU8sV0FBVyxRQUFRLElBQUksV0FBVztBQUFBLElBQzNDO0FBRUEsSUFBQUQsUUFBTyxVQUFVLFNBQVUsV0FBVyxRQUFRO0FBQzVDLGFBQU8sVUFBVSxTQUFTLElBQUksVUFBVUMsWUFBVyxTQUFTLENBQUMsSUFBSUEsWUFBVyxTQUFTLEtBQUtBLFlBQVcsU0FBUyxFQUFFLE1BQU07QUFBQSxJQUN4SDtBQUFBO0FBQUE7OztBQ1ZBO0FBQUEsOEZBQUFDLFVBQUFDLFNBQUE7QUFBQTtBQUNBLFFBQUksY0FBYztBQUVsQixRQUFJLG9CQUFvQixTQUFTO0FBQ2pDLFFBQUksT0FBTyxrQkFBa0I7QUFFN0IsUUFBSSxzQkFBc0IsZUFBZSxrQkFBa0IsS0FBSyxLQUFLLE1BQU0sSUFBSTtBQUUvRSxJQUFBQSxRQUFPLFVBQVUsY0FBYyxzQkFBc0IsU0FBVSxJQUFJO0FBQ2pFLGFBQU8sV0FBWTtBQUNqQixlQUFPLEtBQUssTUFBTSxJQUFJLFNBQVM7QUFBQSxNQUNqQztBQUFBLElBQ0Y7QUFBQTtBQUFBOzs7QUNaQTtBQUFBLCtGQUFBQyxVQUFBQyxTQUFBO0FBQUE7QUFDQSxRQUFJLGNBQWM7QUFFbEIsSUFBQUEsUUFBTyxVQUFVLFlBQVksQ0FBQyxFQUFFLGFBQWE7QUFBQTtBQUFBOzs7QUNIN0M7QUFBQSwrRkFBQUMsVUFBQUMsU0FBQTtBQUFBO0FBQ0EsUUFBSUMsY0FBYTtBQUVqQixRQUFJLFlBQVlBLFlBQVc7QUFDM0IsUUFBSSxZQUFZLGFBQWEsVUFBVTtBQUV2QyxJQUFBRCxRQUFPLFVBQVUsWUFBWSxPQUFPLFNBQVMsSUFBSTtBQUFBO0FBQUE7OztBQ05qRDtBQUFBLCtGQUFBRSxVQUFBQyxTQUFBO0FBQUE7QUFDQSxRQUFJQyxjQUFhO0FBQ2pCLFFBQUksWUFBWTtBQUVoQixRQUFJLFVBQVVBLFlBQVc7QUFDekIsUUFBSSxPQUFPQSxZQUFXO0FBQ3RCLFFBQUksV0FBVyxXQUFXLFFBQVEsWUFBWSxRQUFRLEtBQUs7QUFDM0QsUUFBSSxLQUFLLFlBQVksU0FBUztBQUM5QixRQUFJO0FBQUosUUFBVztBQUVYLFFBQUksSUFBSTtBQUNOLGNBQVEsR0FBRyxNQUFNLEdBQUc7QUFHcEIsZ0JBQVUsTUFBTSxDQUFDLElBQUksS0FBSyxNQUFNLENBQUMsSUFBSSxJQUFJLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxNQUFNLENBQUM7QUFBQSxJQUNuRTtBQUlBLFFBQUksQ0FBQyxXQUFXLFdBQVc7QUFDekIsY0FBUSxVQUFVLE1BQU0sYUFBYTtBQUNyQyxVQUFJLENBQUMsU0FBUyxNQUFNLENBQUMsS0FBSyxJQUFJO0FBQzVCLGdCQUFRLFVBQVUsTUFBTSxlQUFlO0FBQ3ZDLFlBQUksTUFBTyxXQUFVLENBQUMsTUFBTSxDQUFDO0FBQUEsTUFDL0I7QUFBQSxJQUNGO0FBRUEsSUFBQUQsUUFBTyxVQUFVO0FBQUE7QUFBQTs7O0FDM0JqQjtBQUFBLHFHQUFBRSxVQUFBQyxTQUFBO0FBQUE7QUFFQSxRQUFJLGFBQWE7QUFDakIsUUFBSSxRQUFRO0FBQ1osUUFBSUMsY0FBYTtBQUVqQixRQUFJLFVBQVVBLFlBQVc7QUFHekIsSUFBQUQsUUFBTyxVQUFVLENBQUMsQ0FBQyxPQUFPLHlCQUF5QixDQUFDLE1BQU0sV0FBWTtBQUNwRSxVQUFJLFNBQVMsT0FBTyxrQkFBa0I7QUFLdEMsYUFBTyxDQUFDLFFBQVEsTUFBTSxLQUFLLEVBQUUsT0FBTyxNQUFNLGFBQWE7QUFBQSxNQUVyRCxDQUFDLE9BQU8sUUFBUSxjQUFjLGFBQWE7QUFBQSxJQUMvQyxDQUFDO0FBQUE7QUFBQTs7O0FDbEJEO0FBQUEsMEZBQUFFLFVBQUFDLFNBQUE7QUFBQTtBQUVBLFFBQUksZ0JBQWdCO0FBRXBCLElBQUFBLFFBQU8sVUFBVSxpQkFDZixDQUFDLE9BQU8sUUFDUixPQUFPLE9BQU8sWUFBWTtBQUFBO0FBQUE7OztBQ041QjtBQUFBLGtGQUFBQyxVQUFBQyxTQUFBO0FBQUE7QUFDQSxRQUFJLGFBQWE7QUFDakIsUUFBSSxhQUFhO0FBQ2pCLFFBQUksZ0JBQWdCO0FBQ3BCLFFBQUksb0JBQW9CO0FBRXhCLFFBQUksVUFBVTtBQUVkLElBQUFBLFFBQU8sVUFBVSxvQkFBb0IsU0FBVSxJQUFJO0FBQ2pELGFBQU8sT0FBTyxNQUFNO0FBQUEsSUFDdEIsSUFBSSxTQUFVLElBQUk7QUFDaEIsVUFBSSxVQUFVLFdBQVcsUUFBUTtBQUNqQyxhQUFPLFdBQVcsT0FBTyxLQUFLLGNBQWMsUUFBUSxXQUFXLFFBQVEsRUFBRSxDQUFDO0FBQUEsSUFDNUU7QUFBQTtBQUFBOzs7QUNiQTtBQUFBLHNGQUFBQyxVQUFBQyxTQUFBO0FBQUE7QUFDQSxRQUFJLFVBQVU7QUFFZCxJQUFBQSxRQUFPLFVBQVUsU0FBVSxVQUFVO0FBQ25DLFVBQUk7QUFDRixlQUFPLFFBQVEsUUFBUTtBQUFBLE1BQ3pCLFNBQVMsT0FBTztBQUNkLGVBQU87QUFBQSxNQUNUO0FBQUEsSUFDRjtBQUFBO0FBQUE7OztBQ1RBO0FBQUEsbUZBQUFDLFVBQUFDLFNBQUE7QUFBQTtBQUNBLFFBQUksYUFBYTtBQUNqQixRQUFJLGNBQWM7QUFFbEIsUUFBSSxhQUFhO0FBR2pCLElBQUFBLFFBQU8sVUFBVSxTQUFVLFVBQVU7QUFDbkMsVUFBSSxXQUFXLFFBQVEsRUFBRyxRQUFPO0FBQ2pDLFlBQU0sSUFBSSxXQUFXLFlBQVksUUFBUSxJQUFJLG9CQUFvQjtBQUFBLElBQ25FO0FBQUE7QUFBQTs7O0FDVkE7QUFBQSw2RkFBQUMsVUFBQUMsU0FBQTtBQUFBO0FBR0EsSUFBQUEsUUFBTyxVQUFVLFNBQVUsSUFBSTtBQUM3QixhQUFPLE9BQU8sUUFBUSxPQUFPO0FBQUEsSUFDL0I7QUFBQTtBQUFBOzs7QUNMQTtBQUFBLG1GQUFBQyxVQUFBQyxTQUFBO0FBQUE7QUFDQSxRQUFJLFlBQVk7QUFDaEIsUUFBSSxvQkFBb0I7QUFJeEIsSUFBQUEsUUFBTyxVQUFVLFNBQVUsR0FBRyxHQUFHO0FBQy9CLFVBQUksT0FBTyxFQUFFLENBQUM7QUFDZCxhQUFPLGtCQUFrQixJQUFJLElBQUksU0FBWSxVQUFVLElBQUk7QUFBQSxJQUM3RDtBQUFBO0FBQUE7OztBQ1RBO0FBQUEsOEZBQUFDLFVBQUFDLFNBQUE7QUFBQTtBQUNBLFFBQUksT0FBTztBQUNYLFFBQUksYUFBYTtBQUNqQixRQUFJLFdBQVc7QUFFZixRQUFJLGFBQWE7QUFJakIsSUFBQUEsUUFBTyxVQUFVLFNBQVUsT0FBTyxNQUFNO0FBQ3RDLFVBQUksSUFBSTtBQUNSLFVBQUksU0FBUyxZQUFZLFdBQVcsS0FBSyxNQUFNLFFBQVEsS0FBSyxDQUFDLFNBQVMsTUFBTSxLQUFLLElBQUksS0FBSyxDQUFDLEVBQUcsUUFBTztBQUNyRyxVQUFJLFdBQVcsS0FBSyxNQUFNLE9BQU8sS0FBSyxDQUFDLFNBQVMsTUFBTSxLQUFLLElBQUksS0FBSyxDQUFDLEVBQUcsUUFBTztBQUMvRSxVQUFJLFNBQVMsWUFBWSxXQUFXLEtBQUssTUFBTSxRQUFRLEtBQUssQ0FBQyxTQUFTLE1BQU0sS0FBSyxJQUFJLEtBQUssQ0FBQyxFQUFHLFFBQU87QUFDckcsWUFBTSxJQUFJLFdBQVcseUNBQXlDO0FBQUEsSUFDaEU7QUFBQTtBQUFBOzs7QUNmQTtBQUFBLGdGQUFBQyxVQUFBQyxTQUFBO0FBQUE7QUFDQSxJQUFBQSxRQUFPLFVBQVU7QUFBQTtBQUFBOzs7QUNEakI7QUFBQSwrRkFBQUMsVUFBQUMsU0FBQTtBQUFBO0FBQ0EsUUFBSUMsY0FBYTtBQUdqQixRQUFJLGlCQUFpQixPQUFPO0FBRTVCLElBQUFELFFBQU8sVUFBVSxTQUFVLEtBQUssT0FBTztBQUNyQyxVQUFJO0FBQ0YsdUJBQWVDLGFBQVksS0FBSyxFQUFFLE9BQWMsY0FBYyxNQUFNLFVBQVUsS0FBSyxDQUFDO0FBQUEsTUFDdEYsU0FBUyxPQUFPO0FBQ2QsUUFBQUEsWUFBVyxHQUFHLElBQUk7QUFBQSxNQUNwQjtBQUFFLGFBQU87QUFBQSxJQUNYO0FBQUE7QUFBQTs7O0FDWkE7QUFBQSxxRkFBQUMsVUFBQUMsU0FBQTtBQUFBO0FBQ0EsUUFBSSxVQUFVO0FBQ2QsUUFBSUMsY0FBYTtBQUNqQixRQUFJLHVCQUF1QjtBQUUzQixRQUFJLFNBQVM7QUFDYixRQUFJLFFBQVFELFFBQU8sVUFBVUMsWUFBVyxNQUFNLEtBQUsscUJBQXFCLFFBQVEsQ0FBQyxDQUFDO0FBRWxGLEtBQUMsTUFBTSxhQUFhLE1BQU0sV0FBVyxDQUFDLElBQUksS0FBSztBQUFBLE1BQzdDLFNBQVM7QUFBQSxNQUNULE1BQU0sVUFBVSxTQUFTO0FBQUEsTUFDekIsV0FBVztBQUFBLE1BQ1gsU0FBUztBQUFBLE1BQ1QsUUFBUTtBQUFBLElBQ1YsQ0FBQztBQUFBO0FBQUE7OztBQ2REO0FBQUEsK0VBQUFDLFVBQUFDLFNBQUE7QUFBQTtBQUNBLFFBQUksUUFBUTtBQUVaLElBQUFBLFFBQU8sVUFBVSxTQUFVLEtBQUssT0FBTztBQUNyQyxhQUFPLE1BQU0sR0FBRyxNQUFNLE1BQU0sR0FBRyxJQUFJLFNBQVMsQ0FBQztBQUFBLElBQy9DO0FBQUE7QUFBQTs7O0FDTEE7QUFBQSxpR0FBQUMsVUFBQUMsU0FBQTtBQUFBO0FBQ0EsUUFBSSxvQkFBb0I7QUFFeEIsUUFBSSxhQUFhO0FBSWpCLElBQUFBLFFBQU8sVUFBVSxTQUFVLElBQUk7QUFDN0IsVUFBSSxrQkFBa0IsRUFBRSxFQUFHLE9BQU0sSUFBSSxXQUFXLDBCQUEwQixFQUFFO0FBQzVFLGFBQU87QUFBQSxJQUNUO0FBQUE7QUFBQTs7O0FDVkE7QUFBQSxrRkFBQUMsVUFBQUMsU0FBQTtBQUFBO0FBQ0EsUUFBSSx5QkFBeUI7QUFFN0IsUUFBSSxVQUFVO0FBSWQsSUFBQUEsUUFBTyxVQUFVLFNBQVUsVUFBVTtBQUNuQyxhQUFPLFFBQVEsdUJBQXVCLFFBQVEsQ0FBQztBQUFBLElBQ2pEO0FBQUE7QUFBQTs7O0FDVEE7QUFBQSx5RkFBQUMsVUFBQUMsU0FBQTtBQUFBO0FBQ0EsUUFBSSxjQUFjO0FBQ2xCLFFBQUksV0FBVztBQUVmLFFBQUksaUJBQWlCLFlBQVksQ0FBQyxFQUFFLGNBQWM7QUFLbEQsSUFBQUEsUUFBTyxVQUFVLE9BQU8sVUFBVSxTQUFTLE9BQU8sSUFBSSxLQUFLO0FBQ3pELGFBQU8sZUFBZSxTQUFTLEVBQUUsR0FBRyxHQUFHO0FBQUEsSUFDekM7QUFBQTtBQUFBOzs7QUNYQTtBQUFBLDRFQUFBQyxVQUFBQyxTQUFBO0FBQUE7QUFDQSxRQUFJLGNBQWM7QUFFbEIsUUFBSSxLQUFLO0FBQ1QsUUFBSSxVQUFVLEtBQUssT0FBTztBQUMxQixRQUFJLFdBQVcsWUFBWSxHQUFJLFFBQVE7QUFFdkMsSUFBQUEsUUFBTyxVQUFVLFNBQVUsS0FBSztBQUM5QixhQUFPLGFBQWEsUUFBUSxTQUFZLEtBQUssT0FBTyxPQUFPLFNBQVMsRUFBRSxLQUFLLFNBQVMsRUFBRTtBQUFBLElBQ3hGO0FBQUE7QUFBQTs7O0FDVEE7QUFBQSwwRkFBQUMsVUFBQUMsU0FBQTtBQUFBO0FBQ0EsUUFBSUMsY0FBYTtBQUNqQixRQUFJLFNBQVM7QUFDYixRQUFJLFNBQVM7QUFDYixRQUFJLE1BQU07QUFDVixRQUFJLGdCQUFnQjtBQUNwQixRQUFJLG9CQUFvQjtBQUV4QixRQUFJQyxVQUFTRCxZQUFXO0FBQ3hCLFFBQUksd0JBQXdCLE9BQU8sS0FBSztBQUN4QyxRQUFJLHdCQUF3QixvQkFBb0JDLFFBQU8sS0FBSyxLQUFLQSxVQUFTQSxXQUFVQSxRQUFPLGlCQUFpQjtBQUU1RyxJQUFBRixRQUFPLFVBQVUsU0FBVSxNQUFNO0FBQy9CLFVBQUksQ0FBQyxPQUFPLHVCQUF1QixJQUFJLEdBQUc7QUFDeEMsOEJBQXNCLElBQUksSUFBSSxpQkFBaUIsT0FBT0UsU0FBUSxJQUFJLElBQzlEQSxRQUFPLElBQUksSUFDWCxzQkFBc0IsWUFBWSxJQUFJO0FBQUEsTUFDNUM7QUFBRSxhQUFPLHNCQUFzQixJQUFJO0FBQUEsSUFDckM7QUFBQTtBQUFBOzs7QUNsQkE7QUFBQSxxRkFBQUMsVUFBQUMsU0FBQTtBQUFBO0FBQ0EsUUFBSSxPQUFPO0FBQ1gsUUFBSSxXQUFXO0FBQ2YsUUFBSSxXQUFXO0FBQ2YsUUFBSSxZQUFZO0FBQ2hCLFFBQUksc0JBQXNCO0FBQzFCLFFBQUksa0JBQWtCO0FBRXRCLFFBQUksYUFBYTtBQUNqQixRQUFJLGVBQWUsZ0JBQWdCLGFBQWE7QUFJaEQsSUFBQUEsUUFBTyxVQUFVLFNBQVUsT0FBTyxNQUFNO0FBQ3RDLFVBQUksQ0FBQyxTQUFTLEtBQUssS0FBSyxTQUFTLEtBQUssRUFBRyxRQUFPO0FBQ2hELFVBQUksZUFBZSxVQUFVLE9BQU8sWUFBWTtBQUNoRCxVQUFJO0FBQ0osVUFBSSxjQUFjO0FBQ2hCLFlBQUksU0FBUyxPQUFXLFFBQU87QUFDL0IsaUJBQVMsS0FBSyxjQUFjLE9BQU8sSUFBSTtBQUN2QyxZQUFJLENBQUMsU0FBUyxNQUFNLEtBQUssU0FBUyxNQUFNLEVBQUcsUUFBTztBQUNsRCxjQUFNLElBQUksV0FBVyx5Q0FBeUM7QUFBQSxNQUNoRTtBQUNBLFVBQUksU0FBUyxPQUFXLFFBQU87QUFDL0IsYUFBTyxvQkFBb0IsT0FBTyxJQUFJO0FBQUEsSUFDeEM7QUFBQTtBQUFBOzs7QUN6QkE7QUFBQSx3RkFBQUMsVUFBQUMsU0FBQTtBQUFBO0FBQ0EsUUFBSSxjQUFjO0FBQ2xCLFFBQUksV0FBVztBQUlmLElBQUFBLFFBQU8sVUFBVSxTQUFVLFVBQVU7QUFDbkMsVUFBSSxNQUFNLFlBQVksVUFBVSxRQUFRO0FBQ3hDLGFBQU8sU0FBUyxHQUFHLElBQUksTUFBTSxNQUFNO0FBQUEsSUFDckM7QUFBQTtBQUFBOzs7QUNUQTtBQUFBLCtGQUFBQyxVQUFBO0FBQUE7QUFDQSxRQUFJLGNBQWM7QUFDbEIsUUFBSSxpQkFBaUI7QUFDckIsUUFBSSwwQkFBMEI7QUFDOUIsUUFBSSxXQUFXO0FBQ2YsUUFBSSxnQkFBZ0I7QUFFcEIsUUFBSSxhQUFhO0FBRWpCLFFBQUksa0JBQWtCLE9BQU87QUFFN0IsUUFBSSw0QkFBNEIsT0FBTztBQUN2QyxRQUFJLGFBQWE7QUFDakIsUUFBSSxlQUFlO0FBQ25CLFFBQUksV0FBVztBQUlmLElBQUFBLFNBQVEsSUFBSSxjQUFjLDBCQUEwQixTQUFTLGVBQWUsR0FBRyxHQUFHLFlBQVk7QUFDNUYsZUFBUyxDQUFDO0FBQ1YsVUFBSSxjQUFjLENBQUM7QUFDbkIsZUFBUyxVQUFVO0FBQ25CLFVBQUksT0FBTyxNQUFNLGNBQWMsTUFBTSxlQUFlLFdBQVcsY0FBYyxZQUFZLGNBQWMsQ0FBQyxXQUFXLFFBQVEsR0FBRztBQUM1SCxZQUFJLFVBQVUsMEJBQTBCLEdBQUcsQ0FBQztBQUM1QyxZQUFJLFdBQVcsUUFBUSxRQUFRLEdBQUc7QUFDaEMsWUFBRSxDQUFDLElBQUksV0FBVztBQUNsQix1QkFBYTtBQUFBLFlBQ1gsY0FBYyxnQkFBZ0IsYUFBYSxXQUFXLFlBQVksSUFBSSxRQUFRLFlBQVk7QUFBQSxZQUMxRixZQUFZLGNBQWMsYUFBYSxXQUFXLFVBQVUsSUFBSSxRQUFRLFVBQVU7QUFBQSxZQUNsRixVQUFVO0FBQUEsVUFDWjtBQUFBLFFBQ0Y7QUFBQSxNQUNGO0FBQUUsYUFBTyxnQkFBZ0IsR0FBRyxHQUFHLFVBQVU7QUFBQSxJQUMzQyxJQUFJLGtCQUFrQixTQUFTLGVBQWUsR0FBRyxHQUFHLFlBQVk7QUFDOUQsZUFBUyxDQUFDO0FBQ1YsVUFBSSxjQUFjLENBQUM7QUFDbkIsZUFBUyxVQUFVO0FBQ25CLFVBQUksZUFBZ0IsS0FBSTtBQUN0QixlQUFPLGdCQUFnQixHQUFHLEdBQUcsVUFBVTtBQUFBLE1BQ3pDLFNBQVMsT0FBTztBQUFBLE1BQWM7QUFDOUIsVUFBSSxTQUFTLGNBQWMsU0FBUyxXQUFZLE9BQU0sSUFBSSxXQUFXLHlCQUF5QjtBQUM5RixVQUFJLFdBQVcsV0FBWSxHQUFFLENBQUMsSUFBSSxXQUFXO0FBQzdDLGFBQU87QUFBQSxJQUNUO0FBQUE7QUFBQTs7O0FDM0NBO0FBQUEsc0ZBQUFDLFVBQUFDLFNBQUE7QUFBQTtBQUNBLFFBQUksY0FBYztBQUNsQixRQUFJLFNBQVM7QUFFYixRQUFJLG9CQUFvQixTQUFTO0FBRWpDLFFBQUksZ0JBQWdCLGVBQWUsT0FBTztBQUUxQyxRQUFJLFNBQVMsT0FBTyxtQkFBbUIsTUFBTTtBQUU3QyxRQUFJLFNBQVMsVUFBVyxTQUFTLFlBQVk7QUFBQSxJQUFjLEVBQUcsU0FBUztBQUN2RSxRQUFJLGVBQWUsV0FBVyxDQUFDLGVBQWdCLGVBQWUsY0FBYyxtQkFBbUIsTUFBTSxFQUFFO0FBRXZHLElBQUFBLFFBQU8sVUFBVTtBQUFBLE1BQ2Y7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLElBQ0Y7QUFBQTtBQUFBOzs7QUNqQkE7QUFBQSx1RkFBQUMsVUFBQUMsU0FBQTtBQUFBO0FBQ0EsUUFBSSxjQUFjO0FBQ2xCLFFBQUksYUFBYTtBQUNqQixRQUFJLFFBQVE7QUFFWixRQUFJLG1CQUFtQixZQUFZLFNBQVMsUUFBUTtBQUdwRCxRQUFJLENBQUMsV0FBVyxNQUFNLGFBQWEsR0FBRztBQUNwQyxZQUFNLGdCQUFnQixTQUFVLElBQUk7QUFDbEMsZUFBTyxpQkFBaUIsRUFBRTtBQUFBLE1BQzVCO0FBQUEsSUFDRjtBQUVBLElBQUFBLFFBQU8sVUFBVSxNQUFNO0FBQUE7QUFBQTs7O0FDZHZCO0FBQUEsaUdBQUFDLFVBQUFDLFNBQUE7QUFBQTtBQUNBLFFBQUlDLGNBQWE7QUFDakIsUUFBSSxhQUFhO0FBRWpCLFFBQUksVUFBVUEsWUFBVztBQUV6QixJQUFBRCxRQUFPLFVBQVUsV0FBVyxPQUFPLEtBQUssY0FBYyxLQUFLLE9BQU8sT0FBTyxDQUFDO0FBQUE7QUFBQTs7O0FDTjFFO0FBQUEsbUdBQUFFLFVBQUFDLFNBQUE7QUFBQTtBQUNBLElBQUFBLFFBQU8sVUFBVSxTQUFVLFFBQVEsT0FBTztBQUN4QyxhQUFPO0FBQUEsUUFDTCxZQUFZLEVBQUUsU0FBUztBQUFBLFFBQ3ZCLGNBQWMsRUFBRSxTQUFTO0FBQUEsUUFDekIsVUFBVSxFQUFFLFNBQVM7QUFBQSxRQUNyQjtBQUFBLE1BQ0Y7QUFBQSxJQUNGO0FBQUE7QUFBQTs7O0FDUkE7QUFBQSx1R0FBQUMsVUFBQUMsU0FBQTtBQUFBO0FBQ0EsUUFBSSxjQUFjO0FBQ2xCLFFBQUksdUJBQXVCO0FBQzNCLFFBQUksMkJBQTJCO0FBRS9CLElBQUFBLFFBQU8sVUFBVSxjQUFjLFNBQVUsUUFBUSxLQUFLLE9BQU87QUFDM0QsYUFBTyxxQkFBcUIsRUFBRSxRQUFRLEtBQUsseUJBQXlCLEdBQUcsS0FBSyxDQUFDO0FBQUEsSUFDL0UsSUFBSSxTQUFVLFFBQVEsS0FBSyxPQUFPO0FBQ2hDLGFBQU8sR0FBRyxJQUFJO0FBQ2QsYUFBTztBQUFBLElBQ1Q7QUFBQTtBQUFBOzs7QUNWQTtBQUFBLG1GQUFBQyxVQUFBQyxTQUFBO0FBQUE7QUFDQSxRQUFJLFNBQVM7QUFDYixRQUFJLE1BQU07QUFFVixRQUFJLE9BQU8sT0FBTyxNQUFNO0FBRXhCLElBQUFBLFFBQU8sVUFBVSxTQUFVLEtBQUs7QUFDOUIsYUFBTyxLQUFLLEdBQUcsTUFBTSxLQUFLLEdBQUcsSUFBSSxJQUFJLEdBQUc7QUFBQSxJQUMxQztBQUFBO0FBQUE7OztBQ1JBO0FBQUEsb0ZBQUFDLFVBQUFDLFNBQUE7QUFBQTtBQUNBLElBQUFBLFFBQU8sVUFBVSxDQUFDO0FBQUE7QUFBQTs7O0FDRGxCO0FBQUEsdUZBQUFDLFVBQUFDLFNBQUE7QUFBQTtBQUNBLFFBQUksa0JBQWtCO0FBQ3RCLFFBQUlDLGNBQWE7QUFDakIsUUFBSSxXQUFXO0FBQ2YsUUFBSSw4QkFBOEI7QUFDbEMsUUFBSSxTQUFTO0FBQ2IsUUFBSSxTQUFTO0FBQ2IsUUFBSSxZQUFZO0FBQ2hCLFFBQUksYUFBYTtBQUVqQixRQUFJLDZCQUE2QjtBQUNqQyxRQUFJQyxhQUFZRCxZQUFXO0FBQzNCLFFBQUksVUFBVUEsWUFBVztBQUN6QixRQUFJO0FBQUosUUFBUztBQUFULFFBQWM7QUFFZCxRQUFJLFVBQVUsU0FBVSxJQUFJO0FBQzFCLGFBQU8sSUFBSSxFQUFFLElBQUksSUFBSSxFQUFFLElBQUksSUFBSSxJQUFJLENBQUMsQ0FBQztBQUFBLElBQ3ZDO0FBRUEsUUFBSSxZQUFZLFNBQVUsTUFBTTtBQUM5QixhQUFPLFNBQVUsSUFBSTtBQUNuQixZQUFJO0FBQ0osWUFBSSxDQUFDLFNBQVMsRUFBRSxNQUFNLFFBQVEsSUFBSSxFQUFFLEdBQUcsU0FBUyxNQUFNO0FBQ3BELGdCQUFNLElBQUlDLFdBQVUsNEJBQTRCLE9BQU8sV0FBVztBQUFBLFFBQ3BFO0FBQUUsZUFBTztBQUFBLE1BQ1g7QUFBQSxJQUNGO0FBRUEsUUFBSSxtQkFBbUIsT0FBTyxPQUFPO0FBQy9CLGNBQVEsT0FBTyxVQUFVLE9BQU8sUUFBUSxJQUFJLFFBQVE7QUFFeEQsWUFBTSxNQUFNLE1BQU07QUFDbEIsWUFBTSxNQUFNLE1BQU07QUFDbEIsWUFBTSxNQUFNLE1BQU07QUFFbEIsWUFBTSxTQUFVLElBQUksVUFBVTtBQUM1QixZQUFJLE1BQU0sSUFBSSxFQUFFLEVBQUcsT0FBTSxJQUFJQSxXQUFVLDBCQUEwQjtBQUNqRSxpQkFBUyxTQUFTO0FBQ2xCLGNBQU0sSUFBSSxJQUFJLFFBQVE7QUFDdEIsZUFBTztBQUFBLE1BQ1Q7QUFDQSxZQUFNLFNBQVUsSUFBSTtBQUNsQixlQUFPLE1BQU0sSUFBSSxFQUFFLEtBQUssQ0FBQztBQUFBLE1BQzNCO0FBQ0EsWUFBTSxTQUFVLElBQUk7QUFDbEIsZUFBTyxNQUFNLElBQUksRUFBRTtBQUFBLE1BQ3JCO0FBQUEsSUFDRixPQUFPO0FBQ0QsY0FBUSxVQUFVLE9BQU87QUFDN0IsaUJBQVcsS0FBSyxJQUFJO0FBQ3BCLFlBQU0sU0FBVSxJQUFJLFVBQVU7QUFDNUIsWUFBSSxPQUFPLElBQUksS0FBSyxFQUFHLE9BQU0sSUFBSUEsV0FBVSwwQkFBMEI7QUFDckUsaUJBQVMsU0FBUztBQUNsQixvQ0FBNEIsSUFBSSxPQUFPLFFBQVE7QUFDL0MsZUFBTztBQUFBLE1BQ1Q7QUFDQSxZQUFNLFNBQVUsSUFBSTtBQUNsQixlQUFPLE9BQU8sSUFBSSxLQUFLLElBQUksR0FBRyxLQUFLLElBQUksQ0FBQztBQUFBLE1BQzFDO0FBQ0EsWUFBTSxTQUFVLElBQUk7QUFDbEIsZUFBTyxPQUFPLElBQUksS0FBSztBQUFBLE1BQ3pCO0FBQUEsSUFDRjtBQWpDTTtBQW1CQTtBQWdCTixJQUFBRixRQUFPLFVBQVU7QUFBQSxNQUNmO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLElBQ0Y7QUFBQTtBQUFBOzs7QUN0RUE7QUFBQSxzRkFBQUcsVUFBQUMsU0FBQTtBQUFBO0FBQ0EsUUFBSSxjQUFjO0FBQ2xCLFFBQUksUUFBUTtBQUNaLFFBQUksYUFBYTtBQUNqQixRQUFJLFNBQVM7QUFDYixRQUFJLGNBQWM7QUFDbEIsUUFBSSw2QkFBNkIsd0JBQXNDO0FBQ3ZFLFFBQUksZ0JBQWdCO0FBQ3BCLFFBQUksc0JBQXNCO0FBRTFCLFFBQUksdUJBQXVCLG9CQUFvQjtBQUMvQyxRQUFJLG1CQUFtQixvQkFBb0I7QUFDM0MsUUFBSSxVQUFVO0FBRWQsUUFBSSxpQkFBaUIsT0FBTztBQUM1QixRQUFJLGNBQWMsWUFBWSxHQUFHLEtBQUs7QUFDdEMsUUFBSSxVQUFVLFlBQVksR0FBRyxPQUFPO0FBQ3BDLFFBQUksT0FBTyxZQUFZLENBQUMsRUFBRSxJQUFJO0FBRTlCLFFBQUksc0JBQXNCLGVBQWUsQ0FBQyxNQUFNLFdBQVk7QUFDMUQsYUFBTyxlQUFlLFdBQVk7QUFBQSxNQUFjLEdBQUcsVUFBVSxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsV0FBVztBQUFBLElBQ3hGLENBQUM7QUFFRCxRQUFJLFdBQVcsT0FBTyxNQUFNLEVBQUUsTUFBTSxRQUFRO0FBRTVDLFFBQUksY0FBY0EsUUFBTyxVQUFVLFNBQVUsT0FBTyxNQUFNLFNBQVM7QUFDakUsVUFBSSxZQUFZLFFBQVEsSUFBSSxHQUFHLEdBQUcsQ0FBQyxNQUFNLFdBQVc7QUFDbEQsZUFBTyxNQUFNLFFBQVEsUUFBUSxJQUFJLEdBQUcseUJBQXlCLElBQUksSUFBSTtBQUFBLE1BQ3ZFO0FBQ0EsVUFBSSxXQUFXLFFBQVEsT0FBUSxRQUFPLFNBQVM7QUFDL0MsVUFBSSxXQUFXLFFBQVEsT0FBUSxRQUFPLFNBQVM7QUFDL0MsVUFBSSxDQUFDLE9BQU8sT0FBTyxNQUFNLEtBQU0sOEJBQThCLE1BQU0sU0FBUyxNQUFPO0FBQ2pGLFlBQUksWUFBYSxnQkFBZSxPQUFPLFFBQVEsRUFBRSxPQUFPLE1BQU0sY0FBYyxLQUFLLENBQUM7QUFBQSxZQUM3RSxPQUFNLE9BQU87QUFBQSxNQUNwQjtBQUNBLFVBQUksdUJBQXVCLFdBQVcsT0FBTyxTQUFTLE9BQU8sS0FBSyxNQUFNLFdBQVcsUUFBUSxPQUFPO0FBQ2hHLHVCQUFlLE9BQU8sVUFBVSxFQUFFLE9BQU8sUUFBUSxNQUFNLENBQUM7QUFBQSxNQUMxRDtBQUNBLFVBQUk7QUFDRixZQUFJLFdBQVcsT0FBTyxTQUFTLGFBQWEsS0FBSyxRQUFRLGFBQWE7QUFDcEUsY0FBSSxZQUFhLGdCQUFlLE9BQU8sYUFBYSxFQUFFLFVBQVUsTUFBTSxDQUFDO0FBQUEsUUFFekUsV0FBVyxNQUFNLFVBQVcsT0FBTSxZQUFZO0FBQUEsTUFDaEQsU0FBUyxPQUFPO0FBQUEsTUFBYztBQUM5QixVQUFJLFFBQVEscUJBQXFCLEtBQUs7QUFDdEMsVUFBSSxDQUFDLE9BQU8sT0FBTyxRQUFRLEdBQUc7QUFDNUIsY0FBTSxTQUFTLEtBQUssVUFBVSxPQUFPLFFBQVEsV0FBVyxPQUFPLEVBQUU7QUFBQSxNQUNuRTtBQUFFLGFBQU87QUFBQSxJQUNYO0FBSUEsYUFBUyxVQUFVLFdBQVcsWUFBWSxTQUFTLFdBQVc7QUFDNUQsYUFBTyxXQUFXLElBQUksS0FBSyxpQkFBaUIsSUFBSSxFQUFFLFVBQVUsY0FBYyxJQUFJO0FBQUEsSUFDaEYsR0FBRyxVQUFVO0FBQUE7QUFBQTs7O0FDdERiO0FBQUEsd0ZBQUFDLFVBQUFDLFNBQUE7QUFBQTtBQUNBLFFBQUksYUFBYTtBQUNqQixRQUFJLHVCQUF1QjtBQUMzQixRQUFJLGNBQWM7QUFDbEIsUUFBSSx1QkFBdUI7QUFFM0IsSUFBQUEsUUFBTyxVQUFVLFNBQVUsR0FBRyxLQUFLLE9BQU8sU0FBUztBQUNqRCxVQUFJLENBQUMsUUFBUyxXQUFVLENBQUM7QUFDekIsVUFBSSxTQUFTLFFBQVE7QUFDckIsVUFBSSxPQUFPLFFBQVEsU0FBUyxTQUFZLFFBQVEsT0FBTztBQUN2RCxVQUFJLFdBQVcsS0FBSyxFQUFHLGFBQVksT0FBTyxNQUFNLE9BQU87QUFDdkQsVUFBSSxRQUFRLFFBQVE7QUFDbEIsWUFBSSxPQUFRLEdBQUUsR0FBRyxJQUFJO0FBQUEsWUFDaEIsc0JBQXFCLEtBQUssS0FBSztBQUFBLE1BQ3RDLE9BQU87QUFDTCxZQUFJO0FBQ0YsY0FBSSxDQUFDLFFBQVEsT0FBUSxRQUFPLEVBQUUsR0FBRztBQUFBLG1CQUN4QixFQUFFLEdBQUcsRUFBRyxVQUFTO0FBQUEsUUFDNUIsU0FBUyxPQUFPO0FBQUEsUUFBYztBQUM5QixZQUFJLE9BQVEsR0FBRSxHQUFHLElBQUk7QUFBQSxZQUNoQixzQkFBcUIsRUFBRSxHQUFHLEtBQUs7QUFBQSxVQUNsQztBQUFBLFVBQ0EsWUFBWTtBQUFBLFVBQ1osY0FBYyxDQUFDLFFBQVE7QUFBQSxVQUN2QixVQUFVLENBQUMsUUFBUTtBQUFBLFFBQ3JCLENBQUM7QUFBQSxNQUNIO0FBQUUsYUFBTztBQUFBLElBQ1g7QUFBQTtBQUFBOzs7QUMzQkE7QUFBQSw4RkFBQUMsVUFBQUMsU0FBQTtBQUFBO0FBQ0EsUUFBSSxrQkFBa0I7QUFFdEIsUUFBSSxnQkFBZ0IsZ0JBQWdCLGFBQWE7QUFDakQsUUFBSSxPQUFPLENBQUM7QUFFWixTQUFLLGFBQWEsSUFBSTtBQUV0QixJQUFBQSxRQUFPLFVBQVUsT0FBTyxJQUFJLE1BQU07QUFBQTtBQUFBOzs7QUNSbEM7QUFBQSxvRkFBQUMsVUFBQUMsU0FBQTtBQUFBO0FBQ0EsUUFBSSxjQUFjO0FBRWxCLFFBQUksV0FBVyxZQUFZLENBQUMsRUFBRSxRQUFRO0FBQ3RDLFFBQUksY0FBYyxZQUFZLEdBQUcsS0FBSztBQUV0QyxJQUFBQSxRQUFPLFVBQVUsU0FBVSxJQUFJO0FBQzdCLGFBQU8sWUFBWSxTQUFTLEVBQUUsR0FBRyxHQUFHLEVBQUU7QUFBQSxJQUN4QztBQUFBO0FBQUE7OztBQ1JBO0FBQUEsZ0ZBQUFDLFVBQUFDLFNBQUE7QUFBQTtBQUNBLFFBQUksd0JBQXdCO0FBQzVCLFFBQUksYUFBYTtBQUNqQixRQUFJLGFBQWE7QUFDakIsUUFBSSxrQkFBa0I7QUFFdEIsUUFBSSxnQkFBZ0IsZ0JBQWdCLGFBQWE7QUFDakQsUUFBSSxVQUFVO0FBR2QsUUFBSSxvQkFBb0IsV0FBVywyQkFBWTtBQUFFLGFBQU87QUFBQSxJQUFXLEVBQUUsQ0FBQyxNQUFNO0FBRzVFLFFBQUksU0FBUyxTQUFVLElBQUksS0FBSztBQUM5QixVQUFJO0FBQ0YsZUFBTyxHQUFHLEdBQUc7QUFBQSxNQUNmLFNBQVMsT0FBTztBQUFBLE1BQWM7QUFBQSxJQUNoQztBQUdBLElBQUFBLFFBQU8sVUFBVSx3QkFBd0IsYUFBYSxTQUFVLElBQUk7QUFDbEUsVUFBSSxHQUFHLEtBQUs7QUFDWixhQUFPLE9BQU8sU0FBWSxjQUFjLE9BQU8sT0FBTyxTQUVsRCxRQUFRLE1BQU0sT0FBTyxJQUFJLFFBQVEsRUFBRSxHQUFHLGFBQWEsTUFBTSxXQUFXLE1BRXBFLG9CQUFvQixXQUFXLENBQUMsS0FFL0IsU0FBUyxXQUFXLENBQUMsT0FBTyxZQUFZLFdBQVcsRUFBRSxNQUFNLElBQUksY0FBYztBQUFBLElBQ3BGO0FBQUE7QUFBQTs7O0FDN0JBO0FBQUEsa0ZBQUFDLFVBQUFDLFNBQUE7QUFBQTtBQUNBLFFBQUksVUFBVTtBQUVkLFFBQUksVUFBVTtBQUVkLElBQUFBLFFBQU8sVUFBVSxTQUFVLFVBQVU7QUFDbkMsVUFBSSxRQUFRLFFBQVEsTUFBTSxTQUFVLE9BQU0sSUFBSSxVQUFVLDJDQUEyQztBQUNuRyxhQUFPLFFBQVEsUUFBUTtBQUFBLElBQ3pCO0FBQUE7QUFBQTs7O0FDUkE7QUFBQSxrR0FBQUMsVUFBQUMsU0FBQTtBQUFBO0FBQ0EsUUFBSSxhQUFhO0FBRWpCLElBQUFBLFFBQU8sVUFBVSxTQUFVLFFBQVEsVUFBVTtBQUMzQyxVQUFJLFNBQVMsU0FBVSxPQUFNLElBQUksV0FBVyxzQkFBc0I7QUFDbEUsYUFBTztBQUFBLElBQ1Q7QUFBQTtBQUFBOzs7QUNOQTtBQUFBO0FBQUE7QUFDQSxRQUFJLGdCQUFnQjtBQUNwQixRQUFJLGNBQWM7QUFDbEIsUUFBSSxXQUFXO0FBQ2YsUUFBSSwwQkFBMEI7QUFFOUIsUUFBSSxtQkFBbUI7QUFDdkIsUUFBSSwyQkFBMkIsaUJBQWlCO0FBQ2hELFFBQUksU0FBUyxZQUFZLHlCQUF5QixNQUFNO0FBQ3hELFFBQUksVUFBVSxZQUFZLHlCQUF5QixRQUFRLENBQUM7QUFDNUQsUUFBSSxVQUFVLFlBQVkseUJBQXlCLE9BQU87QUFDMUQsUUFBSSxPQUFPLFlBQVksQ0FBQyxFQUFFLElBQUk7QUFDOUIsUUFBSSxTQUFTLElBQUksaUJBQWlCLGFBQWE7QUFFL0MsV0FBTyxRQUFRLEVBQUUsS0FBSyxDQUFDO0FBR3ZCLFdBQU8sUUFBUSxFQUFFLEtBQUssTUFBUztBQUUvQixRQUFJLFNBQVMsT0FBTyxPQUFPO0FBQ3pCLG9CQUFjLDBCQUEwQixVQUFVLFNBQVUsTUFBb0I7QUFDOUUsWUFBSSxTQUFTLFVBQVU7QUFDdkIsWUFBSSxTQUFTLFNBQVMsSUFBSSxTQUFZLFVBQVUsQ0FBQztBQUNqRCxZQUFJLFVBQVUsV0FBVyxPQUFXLFFBQU8sUUFBUSxNQUFNLElBQUk7QUFDN0QsWUFBSSxVQUFVLENBQUM7QUFDZixnQkFBUSxNQUFNLFNBQVUsR0FBRyxHQUFHO0FBQzVCLGVBQUssU0FBUyxFQUFFLEtBQUssR0FBRyxPQUFPLEVBQUUsQ0FBQztBQUFBLFFBQ3BDLENBQUM7QUFDRCxnQ0FBd0IsUUFBUSxDQUFDO0FBQ2pDLFlBQUksTUFBTSxTQUFTLElBQUk7QUFDdkIsWUFBSSxRQUFRLFNBQVMsTUFBTTtBQUMzQixZQUFJLFFBQVE7QUFDWixZQUFJLFNBQVM7QUFDYixZQUFJLFFBQVE7QUFDWixZQUFJLGdCQUFnQixRQUFRO0FBQzVCLFlBQUk7QUFDSixlQUFPLFFBQVEsZUFBZTtBQUM1QixrQkFBUSxRQUFRLE9BQU87QUFDdkIsY0FBSSxTQUFTLE1BQU0sUUFBUSxLQUFLO0FBQzlCLG9CQUFRO0FBQ1Isb0JBQVEsTUFBTSxNQUFNLEdBQUc7QUFBQSxVQUN6QixNQUFPO0FBQUEsUUFDVDtBQUNBLGVBQU8sU0FBUyxlQUFlO0FBQzdCLGtCQUFRLFFBQVEsUUFBUTtBQUN4QixjQUFJLEVBQUUsTUFBTSxRQUFRLE9BQU8sTUFBTSxVQUFVLE9BQVEsUUFBTyxNQUFNLE1BQU0sS0FBSyxNQUFNLEtBQUs7QUFBQSxRQUN4RjtBQUFBLE1BQ0YsR0FBRyxFQUFFLFlBQVksTUFBTSxRQUFRLEtBQUssQ0FBQztBQUFBLElBQ3ZDO0FBQUE7QUFBQTs7O0FDaERBO0FBQUE7QUFBQTtBQUNBLFFBQUksZ0JBQWdCO0FBQ3BCLFFBQUksY0FBYztBQUNsQixRQUFJLFdBQVc7QUFDZixRQUFJLDBCQUEwQjtBQUU5QixRQUFJLG1CQUFtQjtBQUN2QixRQUFJLDJCQUEyQixpQkFBaUI7QUFDaEQsUUFBSSxTQUFTLFlBQVkseUJBQXlCLE1BQU07QUFDeEQsUUFBSSxPQUFPLFlBQVkseUJBQXlCLEdBQUc7QUFDbkQsUUFBSSxTQUFTLElBQUksaUJBQWlCLEtBQUs7QUFJdkMsUUFBSSxPQUFPLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksS0FBSyxNQUFTLEdBQUc7QUFDckQsb0JBQWMsMEJBQTBCLE9BQU8sU0FBUyxJQUFJLE1BQW9CO0FBQzlFLFlBQUksU0FBUyxVQUFVO0FBQ3ZCLFlBQUksU0FBUyxTQUFTLElBQUksU0FBWSxVQUFVLENBQUM7QUFDakQsWUFBSSxVQUFVLFdBQVcsT0FBVyxRQUFPLEtBQUssTUFBTSxJQUFJO0FBQzFELFlBQUksU0FBUyxPQUFPLE1BQU0sSUFBSTtBQUM5QixnQ0FBd0IsUUFBUSxDQUFDO0FBQ2pDLFlBQUksUUFBUSxTQUFTLE1BQU07QUFDM0IsWUFBSSxRQUFRO0FBQ1osZUFBTyxRQUFRLE9BQU8sUUFBUTtBQUM1QixjQUFJLE9BQU8sT0FBTyxNQUFNLE1BQU8sUUFBTztBQUFBLFFBQ3hDO0FBQUUsZUFBTztBQUFBLE1BQ1gsR0FBRyxFQUFFLFlBQVksTUFBTSxRQUFRLEtBQUssQ0FBQztBQUFBLElBQ3ZDO0FBQUE7QUFBQTs7O0FDM0JBO0FBQUEsaUdBQUFDLFVBQUFDLFNBQUE7QUFBQTtBQUNBLFFBQUksY0FBYztBQUNsQixRQUFJLGlCQUFpQjtBQUVyQixJQUFBQSxRQUFPLFVBQVUsU0FBVSxRQUFRLE1BQU0sWUFBWTtBQUNuRCxVQUFJLFdBQVcsSUFBSyxhQUFZLFdBQVcsS0FBSyxNQUFNLEVBQUUsUUFBUSxLQUFLLENBQUM7QUFDdEUsVUFBSSxXQUFXLElBQUssYUFBWSxXQUFXLEtBQUssTUFBTSxFQUFFLFFBQVEsS0FBSyxDQUFDO0FBQ3RFLGFBQU8sZUFBZSxFQUFFLFFBQVEsTUFBTSxVQUFVO0FBQUEsSUFDbEQ7QUFBQTtBQUFBOzs7QUNSQTtBQUFBO0FBQUE7QUFDQSxRQUFJLGNBQWM7QUFDbEIsUUFBSSxjQUFjO0FBQ2xCLFFBQUksd0JBQXdCO0FBRTVCLFFBQUksMkJBQTJCLGdCQUFnQjtBQUMvQyxRQUFJLFVBQVUsWUFBWSx5QkFBeUIsT0FBTztBQUkxRCxRQUFJLGVBQWUsRUFBRSxVQUFVLDJCQUEyQjtBQUN4RCw0QkFBc0IsMEJBQTBCLFFBQVE7QUFBQSxRQUN0RCxLQUFLLFNBQVMsT0FBTztBQUNuQixjQUFJLFFBQVE7QUFDWixrQkFBUSxNQUFNLFdBQVk7QUFBRTtBQUFBLFVBQVMsQ0FBQztBQUN0QyxpQkFBTztBQUFBLFFBQ1Q7QUFBQSxRQUNBLGNBQWM7QUFBQSxRQUNkLFlBQVk7QUFBQSxNQUNkLENBQUM7QUFBQSxJQUNIO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3BCQSxJQUFBQyxlQUFBLENBQUE7QUFBQUMsU0FBQUQsY0FBQTtFQUFBRSxPQUFBQSxNQUFBQTtFQUFBQyw2QkFBQUEsTUFBQUE7RUFBQUMsb0NBQUFBLE1BQUFBO0VBQUFDLHFCQUFBQSxNQUFBQTtFQUFBQyxtQkFBQUEsTUFBQUE7RUFBQUMsT0FBQUEsTUFBQUE7RUFBQUMsY0FBQUEsTUFBQUE7RUFBQUMsZUFBQUEsTUFBQUE7RUFBQUMsb0JBQUFBLE1BQUFBO0VBQUFDLFNBQUFBLE1BQUFBO0VBQUFDLHFCQUFBQSxNQUFBQTtFQUFBQyxzQkFBQUEsTUFBQUE7RUFBQUMsV0FBQUEsTUFBQUE7RUFBQUMsWUFBQUEsTUFBQUE7RUFBQUMsc0JBQUFBLE1BQUFBO0VBQUFDLHVCQUFBQSxNQUFBQTtFQUFBQyxpQkFBQUEsTUFBQUE7RUFBQUMsV0FBQUEsTUFBQUE7RUFBQUMscUJBQUFBLE1BQUFBO0VBQUFDLHNCQUFBQSxNQUFBQTtFQUFBQyxhQUFBQSxNQUFBQTtFQUFBQyxlQUFBQSxNQUFBQTtBQUFBLENBQUE7QUFBQUMsT0FBQUMsVUFBQUMsYUFBQTFCLFlBQUE7O0FDOENBLElBQU1HLDhCQUEyREEsQ0FBQztFQUFDd0I7RUFBUUM7RUFBTUM7RUFBVUMsVUFBVSxDQUFDO0FBQUMsTUFBTTtBQUM1R0gsU0FBT0ksaUJBQWlCSCxNQUFNQyxVQUFnREMsT0FBTztBQUNyRixTQUFPO0lBQ05FLFFBQVFBLE1BQVk7QUFDbkJMLGFBQU9NLG9CQUFvQkwsTUFBTUMsVUFBZ0RDLE9BQU87SUFDekY7RUFDRDtBQUNEOztBQ25EQSxJQUFNMUIscUNBQXlFQSxDQUFDOEIsT0FBT0MsVUFBVSxRQUFRO0FBQ3ZHRCxRQUFNRSxjQUE4QkMsTUFBTUYsVUFBVUQsTUFBTU4sU0FBUyxlQUFlLE1BQU1PLFFBQVFHLFNBQVM7QUFDM0c7O0FDRkEsSUFBTWpDLHNCQUE0QzZCLFdBQW1CO0FBQ3BFLE1BQUksQ0FBQyxTQUFTLFNBQVMsRUFBRUssU0FBU0wsTUFBTU4sSUFBSSxHQUFHO0FBQzlDLFFBQUlNLE1BQU1OLFNBQVMsV0FBVztBQUM3QixhQUFPLENBQUMsU0FBUyxHQUFHLEVBQUVXLFNBQVVMLE1BQXdCTSxHQUFHO0lBQzVEO0FBQ0EsV0FBTztFQUNSO0FBQ0EsU0FBTztBQUNSOztBQ0pBLFNBQVMvQixpQkFBb0JnQyxNQUF3QjtBQUNwRCxTQUFPQSxLQUFLQyxRQUFTQyxTQUFRO0FBQzVCLFFBQUlDLE1BQU1DLFFBQVFGLEdBQUcsR0FBRztBQUN2QixhQUFPQTtJQUNSO0FBRUEsUUFBSUEsZUFBZUcsVUFBVTtBQUM1QixhQUFPLENBQUMsR0FBR0gsR0FBRztJQUNmO0FBRUEsV0FBTyxDQUFDQSxHQUFHO0VBQ1osQ0FBQztBQUNGOztBQ1BBLFNBQVM3QixVQUFVaUMsV0FBb0JDLFFBQXlDO0FBQy9FLFFBQU1DLGFBQWE7SUFDbEJDLE1BQU07TUFDTEMsU0FBUztRQUNSLGtCQUFrQkosWUFBQSxlQUFBSyxPQUEyQkwsV0FBUyxHQUFBLElBQU07TUFDN0Q7SUFDRDtFQUNEO0FBRUEsTUFBSUMsUUFBUTtBQUNYLFdBQU8sSUFBSUssR0FBR0MsV0FBV04sUUFBUUMsVUFBVTtFQUM1QztBQUVBLFNBQU8sSUFBSUksR0FBR0UsSUFBSU4sVUFBVTtBQUM3Qjs7QUN2QkEsSUFBTTNCLGNBQWMsU0FBU2tDLGFBQWVmLE1BQWdCO0VBQzNEOzs7Ozs7QUFNQSxRQUFNZ0IsU0FBc0IsQ0FBQTtBQUFDLE1BQUFDLGFBQUFDLDJCQUNWbEIsSUFBQSxHQUFBbUI7QUFBQSxNQUFBO0FBQW5CLFNBQUFGLFdBQUFHLEVBQUEsR0FBQSxFQUFBRCxTQUFBRixXQUFBSSxFQUFBLEdBQUFDLFFBQXlCO0FBQUEsWUFBZEMsT0FBQUosT0FBQUs7QUFDVixVQUFJLENBQUNSLE9BQU9sQixTQUFTeUIsSUFBSSxHQUFHO0FBQzNCUCxlQUFPQSxPQUFPUyxNQUFNLElBQUlGO01BQ3pCO0lBQ0Q7RUFBQSxTQUFBRyxLQUFBO0FBQUFULGVBQUFVLEVBQUFELEdBQUE7RUFBQSxVQUFBO0FBQUFULGVBQUFXLEVBQUE7RUFBQTtBQUNBLFNBQU9aO0FBQ1I7O1NDTmVuRCxrQkFBQWdFLElBQUFDLEtBQUE7QUFBQSxTQUFBQyxtQkFBQUMsTUFBQSxNQUFBQyxTQUFBO0FBQUE7QUFBQTs7eUNBQWYsV0FBaUNDLGFBQWdDQyxRQUFpQztBQUNqRyxVQUFNQyxNQUFjL0QsVUFBVSx3QkFBd0I7QUFDdEQsVUFBTWdFLFVBQVV4RCxZQUFZYixjQUFja0UsV0FBVyxDQUFDO0FBQ3REQyxlQUFBQSxTQUFXO0FBQUEsUUFBQUcsYUFBQXBCLDJCQUVVbUIsT0FBQSxHQUFBRTtBQUFBLFFBQUE7QUFBckIsV0FBQUQsV0FBQWxCLEVBQUEsR0FBQSxFQUFBbUIsU0FBQUQsV0FBQWpCLEVBQUEsR0FBQUMsUUFBOEI7QUFBQSxjQUFuQmtCLFNBQUFELE9BQUFmO0FBQ1YsWUFDRVcsV0FBVyxPQUFPdkIsR0FBRzZCLEtBQUtwRCxRQUFRcUQsSUFBQSxVQUFBL0IsT0FBYzZCLE1BQU0sQ0FBRSxLQUN4REwsV0FBVyxPQUFPLENBQUN2QixHQUFHNkIsS0FBS3BELFFBQVFxRCxJQUFBLFVBQUEvQixPQUFjNkIsTUFBTSxDQUFFLEdBQ3pEO0FBQ0QsZ0JBQU1KLElBQUlPLGtCQUFrQjtZQUMzQkMsUUFBUTtZQUNSQyxRQUFBLFVBQUFsQyxPQUFrQjZCLFFBQU0sR0FBQSxFQUFBN0IsT0FBSXdCLE1BQU07VUFDbkMsQ0FBcUI7QUFDckIsZ0JBQU12QixHQUFHa0MsT0FBT0MsTUFBQSxjQUFBcEMsT0FBb0I2QixNQUFNLENBQUU7UUFDN0M7TUFDRDtJQUFBLFNBQUFkLEtBQUE7QUFBQVksaUJBQUFYLEVBQUFELEdBQUE7SUFBQSxVQUFBO0FBQUFZLGlCQUFBVixFQUFBO0lBQUE7RUFDRCxDQUFBO0FBQUEsU0FBQUcsbUJBQUFDLE1BQUEsTUFBQUMsU0FBQTtBQUFBO0FDekJBLElBQU1uRSxRQUFnQmtGLFFBQU87QUFDNUIsU0FBTyxJQUFJQyxRQUFTQyxhQUE4QjtBQUNqREMsZUFBV0QsU0FBU0YsRUFBRTtFQUN2QixDQUFDO0FBQ0Y7O1NDQWVqRixhQUFBcUYsS0FBQTtBQUFBLFNBQUFDLGNBQUFyQixNQUFBLE1BQUFDLFNBQUE7QUFBQTtBQUFBOztvQ0FBZixXQUE0QnFCLE1BQWM7QUFDekMsVUFBTWxCLE1BQWMvRCxVQUFVLG1CQUFtQjtBQUVqRCxVQUFNa0YsV0FBVyxDQUFDLFdBQVcsV0FBVyxTQUFTLFNBQVMsU0FBUyxTQUFTLFNBQVMsT0FBTztBQUU1RixVQUFNQyxjQUF3QixDQUFBO0FBRTlCLFVBQU1DLFNBQXlCO01BQzlCYixRQUFRO01BQ1JjLGNBQWM7TUFDZEMsUUFBUTtNQUNSQyxlQUFlO01BQ2ZDLE1BQU0sQ0FBQyxjQUFjO01BQ3JCQyxPQUFPO01BQ1BSO0lBQ0Q7QUFFQSxhQUFBUyxNQUFBLEdBQUFDLFlBQXNCVCxVQUFBUSxNQUFBQyxVQUFBdkMsUUFBQXNDLE9BQVU7QUFBQSxVQUFBRTtBQUFoQyxZQUFXQyxVQUFBRixVQUFBRCxHQUFBO0FBQ1ZOLGFBQU9VLFVBQVVEO0FBQ2pCVCxhQUFPUyxVQUFVQTtBQUNqQixZQUFNRSxXQUFBLE1BQWlCaEMsSUFBSWlDLEtBQUtaLE1BQU07QUFFdEMsWUFBTWEsZUFBZUYsYUFBQSxRQUFBQSxhQUFBLFdBQUFILGtCQUFBRyxTQUFXLE9BQU8sT0FBQSxRQUFBSCxvQkFBQSxTQUFBLFNBQWxCQSxnQkFBcUJLO0FBQzFDLFlBQU1DLGlCQUFpQkMsU0FBU0MsY0FBYyxTQUFTO0FBQ3ZERixxQkFBZUcsWUFBWUo7QUFFM0IsVUFBSUMsZUFBZUksYUFBYTtBQUMvQm5CLG9CQUFZQSxZQUFZL0IsTUFBTSxJQUFJOEMsZUFBZUk7TUFDbEQ7SUFDRDtBQUVBLFdBQU85RixZQUFZMkUsV0FBVztFQUMvQixDQUFBO0FBQUEsU0FBQUgsY0FBQXJCLE1BQUEsTUFBQUMsU0FBQTtBQUFBO0FDcENBLElBQU1oRSxxQkFBMEMyRyxTQUFRO0VBQ3ZEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBeUJBQSxRQUFNQSxJQUFJQyxLQUFLO0FBRWZELFFBQU1BLElBQUlFLE1BQU1GLElBQUlHLFFBQVEsTUFBTSxDQUFDO0FBRW5DLE1BQUksQ0FBQ0gsSUFBSUksV0FBVyxNQUFNLEtBQUssQ0FBQ0osSUFBSUssU0FBUyxNQUFNLEdBQUc7QUFDckQsV0FBTztFQUNSO0FBRUEsTUFBSSxDQUFDTCxJQUFJOUUsU0FBUyw0QkFBNEIsR0FBRztBQUNoRDhFLFVBQU1BLElBQUlNLFFBQVEsU0FBUyx5Q0FBeUM7RUFDckU7QUFFQU4sUUFBTUEsSUFBSU0sUUFBUSxpQkFBaUIsRUFBRTtBQUVyQ04sUUFBTUEsSUFBSU0sUUFBUSxzQ0FBc0MsRUFBRTtBQUUxRE4sUUFBTUEsSUFBSU0sUUFBUSxnQkFBZ0IsTUFBTTtBQUV4Q04sUUFBTUEsSUFBSU0sUUFBUSxNQUFNLEdBQUc7QUFFM0JOLFFBQU1BLElBQUlNLFFBQVEsYUFBYSxJQUFJO0FBRW5DTixRQUFNQSxJQUFJTSxRQUFRLFdBQVcsR0FBRztBQUVoQ04sUUFBTUEsSUFBSUMsS0FBSztBQUVmLE1BQUksQ0FBQ0QsSUFBSUksV0FBVyxNQUFNLEtBQUssQ0FBQ0osSUFBSUssU0FBUyxNQUFNLEdBQUc7QUFDckQsV0FBTztFQUNSO0FBRUFMLFFBQU1BLElBQUlNLFFBQVEsTUFBTSxPQUFPO0FBRS9CTixRQUFNQSxJQUFJTSxRQUFRLHNCQUFzQkMsa0JBQWtCO0FBRTFEUCxRQUFBLHNCQUFBakUsT0FBNEJpRSxHQUFHO0FBRS9CLFNBQU9BO0FBQ1I7O0FDL0RBLElBQU0xRyxVQUFVQSxNQUFNO0FBQ3JCLFNBQU9rSCxFQUFFQyxNQUFNQyxLQUFLLE1BQStCO0FBQ2xELFVBQU1DLFFBQWlDSCxFQUFFLE1BQU07QUFFL0MsV0FBT0c7RUFDUixDQUFDO0FBQ0Y7O0FDTkEsSUFBTWpILGFBQWFBLENBQUNrSCxRQUFnQnpGLFFBQThEO0FBQ2pHLFNBQU9BLE9BQU95RjtBQUNmOztBQ0ZBLElBQU0vSCxRQUFOLGNBQW9CZ0ksSUFBSTtFQUN2QkMsT0FBT0YsUUFBaUM7QUFDdkMsYUFBQUcsS0FBQSxHQUFBQyxrQkFBMkJDLE9BQU9DLFFBQVFOLE1BQU0sR0FBQUcsS0FBQUMsZ0JBQUFuRSxRQUFBa0UsTUFBRztBQUFuRCxZQUFXLENBQUM1RixLQUFLeUIsS0FBSyxJQUFBb0UsZ0JBQUFELEVBQUE7QUFDckIsV0FBS0ksYUFBYUMsSUFBSWpHLEtBQUt5QixLQUFLO0lBQ2pDO0FBQ0EsV0FBTztFQUNSO0VBQ0F5RSxrQkFBa0I7QUFDakIsV0FBTyxLQUFLQyxXQUFXLEtBQUtDLFNBQVMsS0FBS0M7RUFDM0M7QUFDRDs7QUNaQSxJQUFBQyxvQkFBa0JDLFFBQUFDLFFBQUEsZ0JBQUEsR0FBQSxDQUFBO0FBU2xCLElBQU1oSSx1QkFBOENpSSxhQUNuREMsR0FBR0MsR0FDREMsUUFDQXZCLEVBQ0NpQixrQ0FBQU8sUUFBQW5DLGNBQUMsT0FBQTtFQUNBb0MsV0FBVTtFQUNWakgsT0FBTztJQUNOa0gsUUFBUTtJQUNSQyxTQUFTO0lBQ1RDLGdCQUFnQjtFQUNqQjtBQUFBLEdBRUFYLGtDQUFBTyxRQUFBbkMsY0FBQyxRQUFBO0VBQ0E3RSxPQUFPO0lBQ05xSCxVQUFVO0lBQ1ZDLFlBQVk7SUFDWkMsWUFBWTtJQUNaQyxTQUFTO0VBQ1Y7QUFBQSxHQUVDWixPQUNGLENBQ0QsQ0FDRCxDQUNELEVBQ0NsQixLQUFNK0IsZUFBZ0NBLFNBQVM7O1NDN0JuQzdJLHNCQUFBOEksS0FBQTtBQUFBLFNBQUFDLHVCQUFBdkYsTUFBQSxNQUFBQyxTQUFBO0FBQUE7QUFBQTs7NkNBQWYsV0FBcUN1RixTQUFpQjtBQUNyRCxVQUFNcEYsTUFBYy9ELFVBQVUsNEJBQTRCO0FBRTFELFVBQU1vSixtQkFBbUI7QUFFekIsUUFBSUMsU0FBbUIsQ0FBQTtBQUt2QixRQUFJOUcsR0FBRytHLFFBQVFDLFVBQVVILG1CQUFtQkQsT0FBTyxHQUFHO0FBQ3JERSxlQUFTOUcsR0FBRytHLFFBQVFDLFVBQVVILG1CQUFtQkQsT0FBTztBQUV4REUsZUFBU0EsT0FBT0csT0FBUUMsYUFBWTtBQUNuQyxlQUFPQSxZQUFZO01BQ3BCLENBQUM7SUFDRixPQUFPO0FBR04sWUFBTXJFLFNBQVM7UUFDZGIsUUFBUTtRQUNSZSxRQUFRO1FBQ1JDLGVBQWU7UUFDZm1FLE1BQU07UUFDTlA7UUFDQVEsU0FBUztRQUNUQyxTQUFTO1FBQ1RDLFFBQVE7TUFDVDtBQUNBLFlBQU05RCxXQUFBLE1BQWlCaEMsSUFBSU0sSUFBSWUsTUFBTTtBQUdyQyxZQUFNMEUsUUFBUS9ELFNBQVMsT0FBTztBQUk5QixVQUFJK0QsVUFBQSxRQUFBQSxVQUFBLFVBQUFBLE1BQU9DLGdCQUFnQjtBQUFBLFlBQUFDLHVCQUFBQztBQUMxQlosa0JBQUFXLHlCQUFBQyx5QkFBU0gsTUFBTUMsb0JBQUEsUUFBQUUsMkJBQUEsU0FBQSxTQUFOQSx1QkFBc0JaLFlBQUEsUUFBQVcsMEJBQUEsU0FBQUEsd0JBQVUsQ0FBQTtBQUV6Q1gsaUJBQVNBLE9BQU9HLE9BQVFDLGFBQVk7QUFDbkMsaUJBQU9BLFlBQVk7UUFDcEIsQ0FBQztBQUVEbEgsV0FBRytHLFFBQVFZLFVBQVVkLG1CQUFtQkQsU0FBU0UsUUFBUSxLQUFLLEVBQUU7TUFDakU7SUFDRDtBQUVBLFdBQU87TUFBQ1MsT0FBTztRQUFDQyxnQkFBZ0I7VUFBQ0ksTUFBTWhCO1VBQVNFO1FBQU07TUFBQztJQUFDO0VBQ3pELENBQUE7QUFBQSxTQUFBSCx1QkFBQXZGLE1BQUEsTUFBQUMsU0FBQTtBQUFBO0FBQUEsU0NoRGV4RCxnQkFBQWdLLEtBQUE7QUFBQSxTQUFBQyxpQkFBQTFHLE1BQUEsTUFBQUMsU0FBQTtBQUFBO0FBQUE7O3VDQUFmLFdBQStCMEcsT0FBaUI7QUFBQSxRQUFBQztBQUMvQyxVQUFNeEcsTUFBYy9ELFVBQVUsc0JBQXNCO0FBRXBELFVBQU1vSixtQkFBbUI7QUFFekIsVUFBTW9CLG1CQUF1RCxDQUFBO0FBQUMsUUFBQUMsYUFBQTVILDJCQUczQ3lILEtBQUEsR0FBQUk7QUFBQSxRQUFBO0FBQW5CLFdBQUFELFdBQUExSCxFQUFBLEdBQUEsRUFBQTJILFNBQUFELFdBQUF6SCxFQUFBLEdBQUFDLFFBQTBCO0FBQUEsY0FBZm1CLE9BQUFzRyxPQUFBdkg7QUFHVixZQUFJWixHQUFHK0csUUFBUUMsVUFBVUgsbUJBQW1CaEYsSUFBSSxHQUFHO0FBQ2xELGNBQUlpRixTQUFTOUcsR0FBRytHLFFBQVFDLFVBQVVILG1CQUFtQmhGLElBQUk7QUFFekRpRixtQkFBU0EsT0FBT0csT0FBUUMsYUFBWTtBQUNuQyxtQkFBT0EsWUFBWTtVQUNwQixDQUFDO0FBRURlLDJCQUFpQkEsaUJBQWlCcEgsTUFBTSxJQUFJO1lBQUMrRyxNQUFNL0Y7WUFBTWlGO1VBQU07UUFDaEU7TUFDRDtJQUFBLFNBQUFoRyxLQUFBO0FBQUFvSCxpQkFBQW5ILEVBQUFELEdBQUE7SUFBQSxVQUFBO0FBQUFvSCxpQkFBQWxILEVBQUE7SUFBQTtBQUdBLFVBQU1vSCxVQUFVTCxNQUFNZCxPQUFRb0IsT0FBTTtBQUVuQyxhQUFPLENBQUNySSxHQUFHK0csUUFBUUMsVUFBVUgsbUJBQW1Cd0IsQ0FBQztJQUNsRCxDQUFDO0FBR0QsVUFBTXhGLFNBQThCO01BQ25DdUY7TUFDQXBHLFFBQVE7TUFDUmUsUUFBUTtNQUNSQyxlQUFlO01BQ2ZzRixNQUFNO01BQ05DLFFBQVE7TUFDUmxCLFNBQVM7TUFDVEMsUUFBUTtJQUNUO0FBQ0EsVUFBTTlELFdBQUEsTUFBaUJoQyxJQUFJTSxJQUFJZSxNQUFNO0FBR3JDLFVBQU0wRSxRQUFRL0QsU0FBUyxPQUFPO0FBRzlCLFVBQU1nRixhQUFhLENBQUMsSUFBQVIsZUFBSVQsVUFBQSxRQUFBQSxVQUFBLFNBQUEsU0FBQUEsTUFBT1EsV0FBQSxRQUFBQyxpQkFBQSxTQUFBQSxlQUFTLENBQUEsR0FBSyxHQUFHQyxnQkFBZ0I7QUFFaEUsYUFBQVEsTUFBQSxHQUFBQyxjQUFtQkYsWUFBQUMsTUFBQUMsWUFBQTdILFFBQUE0SCxPQUFZO0FBQS9CLFlBQVc1RyxPQUFBNkcsWUFBQUQsR0FBQTtBQUNWLFVBQUk1RyxTQUFBLFFBQUFBLFNBQUEsVUFBQUEsS0FBTWlGLFVBQVVqRixTQUFBLFFBQUFBLFNBQUEsVUFBQUEsS0FBTStGLE1BQU07QUFDL0IsWUFBSTtVQUFDZDtRQUFNLElBQUlqRjtBQUVmaUYsaUJBQVNBLE9BQU9HLE9BQVFDLGFBQVk7QUFDbkMsaUJBQU9BLFlBQVk7UUFDcEIsQ0FBQztBQUVEbEgsV0FBRytHLFFBQVFZLFVBQVVkLG1CQUFtQmhGLEtBQUsrRixNQUFNZCxRQUFRLEtBQUssRUFBRTtNQUNuRTtJQUNEO0FBRUEsV0FBTztNQUFDUyxPQUFPO1FBQUNRLE9BQU9TO01BQVU7SUFBQztFQUNuQyxDQUFBO0FBQUEsU0FBQVYsaUJBQUExRyxNQUFBLE1BQUFDLFNBQUE7QUFBQTtBQzVEQSxJQUFNdkQsWUFBdUJBLENBQUM2SyxjQUFjQywyQkFBMkIsQ0FBQyxNQUFNO0FBQzdFLFFBQU1uSyxVQUNMLE9BQU9tSyw2QkFBNkIsWUFBWSxPQUFPQSw2QkFBNkIsV0FDakY7SUFDQUMsVUFBVUQ7SUFDVkUsUUFBUTtFQUNULElBQ0M7SUFDQUQsVUFBVTtJQUNWQyxRQUFRO0lBQ1IsR0FBR0Y7RUFDSjtBQUNIcEUsSUFBRVosUUFBUSxFQUFFbUYsS0FBSyxZQUFZLEVBQUVDLFFBQzlCO0lBQ0NsTCxXQUFXNks7RUFDWixHQUNBbEssT0FDRDtBQUNEOztBQ25CQSxJQUFNUCxnQkFBaUI0SSxZQUE4QjtBQUNwRCxRQUFNO0lBQUNtQztJQUFjQztFQUFjLElBQUlsSixHQUFHbUosT0FBT3JILElBQUk7QUFDckQsU0FBTyxDQUFDLEdBQUltSCxnQkFBZ0IsQ0FBQSxHQUFLLEdBQUtDLGtCQUErQixDQUFBLENBQUcsRUFBRUUsS0FBTWxDLGFBQTZCO0FBQzVHLFdBQU85SixjQUFjMEosTUFBTSxFQUFFNUgsU0FBU2dJLE9BQU87RUFDOUMsQ0FBQztBQUNGOztBQ05BLElBQU0zSixzQkFBc0JBLENBQUM7RUFBQzhMO0FBQVMsTUFBZ0Q7QUFBQSxNQUFBQyxxQkFBQUM7QUFDdEYsVUFBQUQsdUJBQUFDLGtCQUFPRixVQUFVTixLQUF1QixZQUFZLE9BQUEsUUFBQVEsb0JBQUEsU0FBQSxTQUE3Q0EsZ0JBQWdEQyxJQUFJLE9BQUEsUUFBQUYsd0JBQUEsU0FBQUEsc0JBQUs7QUFDakU7QUFFQSxJQUFNdkwsc0JBQXNCQSxDQUFDO0VBQUNzTDtFQUFXSTtBQUFPLE1BQStEO0FBQzlHSixZQUFVTixLQUF1QixZQUFZLEVBQUVTLElBQUlDLE9BQU87QUFDM0Q7O0FDTkEsSUFBTWpNLHVCQUF1QkEsQ0FBQztFQUFDNkw7QUFBUyxNQUFnRDtBQUFBLE1BQUFLO0FBQ3ZGLFVBQUFBLHdCQUFPTCxVQUFVTixLQUEwQixhQUFhLEVBQUVZLGNBQWMsYUFBYSxPQUFBLFFBQUFELDBCQUFBLFNBQUFBLHdCQUFLO0FBQzNGO0FBRUEsSUFBTTFMLHVCQUF1QkEsQ0FBQztFQUFDcUw7RUFBV0k7QUFBTyxNQUErRDtBQUMvR0osWUFBVU4sS0FBMEIsYUFBYSxFQUFFWSxjQUFjLGVBQWVGLE9BQU87QUFDeEY7IiwKICAibmFtZXMiOiBbImV4cG9ydHMiLCAibW9kdWxlIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImdsb2JhbFRoaXMiLCAiZG9jdW1lbnQiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiZ2xvYmFsVGhpcyIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJnbG9iYWxUaGlzIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImdsb2JhbFRoaXMiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiZ2xvYmFsVGhpcyIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJnbG9iYWxUaGlzIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImdsb2JhbFRoaXMiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiZ2xvYmFsVGhpcyIsICJTeW1ib2wiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiZXhwb3J0cyIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJnbG9iYWxUaGlzIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImdsb2JhbFRoaXMiLCAiVHlwZUVycm9yIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgIlV0aWxfZXhwb3J0cyIsICJfX2V4cG9ydCIsICJNd1VyaSIsICJhZGRFdmVudExpc3RlbmVyV2l0aFJlbW92ZXIiLCAiY2hhbmdlT3BhY2l0eVdoZW5Nb3VzZUVudGVyT3JMZWF2ZSIsICJjaGVja0ExMXlDb25maXJtS2V5IiwgImNoZWNrRGVwZW5kZW5jaWVzIiwgImRlbGF5IiwgImZpbmRWYXJpYW50cyIsICJnZW5lcmF0ZUFycmF5IiwgImdlbmVyYXRlU3ZnRGF0YVVybCIsICJnZXRCb2R5IiwgImdldFdwU3VtbWFyeUNvbnRlbnQiLCAiZ2V0V3BUZXh0Ym94MUNvbnRlbnQiLCAiaW5pdE13QXBpIiwgImlzVmFsaWRLZXkiLCAib291aUNvbmZpcm1XaXRoU3R5bGUiLCAicXVlcnlHbG9iYWxVc2VyR3JvdXBzIiwgInF1ZXJ5VXNlckdyb3VwcyIsICJzY3JvbGxUb3AiLCAic2V0V3BTdW1tYXJ5Q29udGVudCIsICJzZXRXcFRleHRib3gxQ29udGVudCIsICJ1bmlxdWVBcnJheSIsICJ1c2VySXNJbkdyb3VwIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIl9fdG9Db21tb25KUyIsICJ0YXJnZXQiLCAidHlwZSIsICJsaXN0ZW5lciIsICJvcHRpb25zIiwgImFkZEV2ZW50TGlzdGVuZXIiLCAicmVtb3ZlIiwgInJlbW92ZUV2ZW50TGlzdGVuZXIiLCAiZXZlbnQiLCAib3BhY2l0eSIsICJjdXJyZW50VGFyZ2V0IiwgInN0eWxlIiwgInRvU3RyaW5nIiwgImluY2x1ZGVzIiwgImtleSIsICJhcmdzIiwgImZsYXRNYXAiLCAiYXJnIiwgIkFycmF5IiwgImlzQXJyYXkiLCAiTm9kZUxpc3QiLCAidXNlckFnZW50IiwgImFwaVVyaSIsICJhcGlPcHRpb25zIiwgImFqYXgiLCAiaGVhZGVycyIsICJjb25jYXQiLCAibXciLCAiRm9yZWlnbkFwaSIsICJBcGkiLCAidW5pcXVlQXJyYXkyIiwgInJlc3VsdCIsICJfaXRlcmF0b3IyIiwgIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwgIl9zdGVwMiIsICJzIiwgIm4iLCAiZG9uZSIsICJpdGVtIiwgInZhbHVlIiwgImxlbmd0aCIsICJlcnIiLCAiZSIsICJmIiwgIl94IiwgIl94MiIsICJfY2hlY2tEZXBlbmRlbmNpZXMiLCAiYXBwbHkiLCAiYXJndW1lbnRzIiwgImdhZGdldE5hbWVzIiwgIm9wdGlvbiIsICJhcGkiLCAiZ2FkZ2V0cyIsICJfaXRlcmF0b3IzIiwgIl9zdGVwMyIsICJnYWRnZXQiLCAidXNlciIsICJnZXQiLCAicG9zdFdpdGhFZGl0VG9rZW4iLCAiYWN0aW9uIiwgImNoYW5nZSIsICJsb2FkZXIiLCAidXNpbmciLCAibXMiLCAiUHJvbWlzZSIsICJyZXNvbHZlIiwgInNldFRpbWVvdXQiLCAiX3gzIiwgIl9maW5kVmFyaWFudHMiLCAidGV4dCIsICJWQVJJQU5UUyIsICJhbGxWYXJpYW50cyIsICJwYXJhbXMiLCAiY29udGVudG1vZGVsIiwgImZvcm1hdCIsICJmb3JtYXR2ZXJzaW9uIiwgInByb3AiLCAidGl0bGUiLCAiX2kyIiwgIl9WQVJJQU5UUyIsICJfcmVzcG9uc2UkcXVlcnkiLCAidmFyaWFudCIsICJ1c2VsYW5nIiwgInJlc3BvbnNlIiwgInBvc3QiLCAiZGlzcGxheXRpdGxlIiwgInZhcmlhbnRFbGVtZW50IiwgImRvY3VtZW50IiwgImNyZWF0ZUVsZW1lbnQiLCAiaW5uZXJIVE1MIiwgInRleHRDb250ZW50IiwgInN2ZyIsICJ0cmltIiwgInNsaWNlIiwgImluZGV4T2YiLCAic3RhcnRzV2l0aCIsICJlbmRzV2l0aCIsICJyZXBsYWNlIiwgImVuY29kZVVSSUNvbXBvbmVudCIsICIkIiwgInJlYWR5IiwgInRoZW4iLCAiJGJvZHkiLCAib2JqZWN0IiwgIlVSTCIsICJleHRlbmQiLCAiX2kiLCAiX09iamVjdCRlbnRyaWVzIiwgIk9iamVjdCIsICJlbnRyaWVzIiwgInNlYXJjaFBhcmFtcyIsICJzZXQiLCAiZ2V0UmVsYXRpdmVQYXRoIiwgInBhdGhuYW1lIiwgInNlYXJjaCIsICJoYXNoIiwgImltcG9ydF9leHRfZ2FkZ2V0IiwgIl9fdG9FU00iLCAicmVxdWlyZSIsICJtZXNzYWdlIiwgIk9PIiwgInVpIiwgImNvbmZpcm0iLCAiZGVmYXVsdCIsICJjbGFzc05hbWUiLCAiYm9yZGVyIiwgImRpc3BsYXkiLCAianVzdGlmeUNvbnRlbnQiLCAiZm9udFNpemUiLCAiZm9udFdlaWdodCIsICJsaW5lSGVpZ2h0IiwgInBhZGRpbmciLCAiaXNDb25maXJtIiwgIl94NCIsICJfcXVlcnlHbG9iYWxVc2VyR3JvdXBzIiwgImd1aXVzZXIiLCAiQ0FDSEVfS0VZX1BSRUZJWCIsICJncm91cHMiLCAic3RvcmFnZSIsICJnZXRPYmplY3QiLCAiZmlsdGVyIiwgImVsZW1lbnQiLCAibWV0YSIsICJndWlwcm9wIiwgInNtYXhhZ2UiLCAibWF4YWdlIiwgInF1ZXJ5IiwgImdsb2JhbHVzZXJpbmZvIiwgIl9xdWVyeSRnbG9iYWx1c2VyaW5mbyIsICJfcXVlcnkkZ2xvYmFsdXNlcmluZm8yIiwgInNldE9iamVjdCIsICJuYW1lIiwgIl94NSIsICJfcXVlcnlVc2VyR3JvdXBzIiwgInVzZXJzIiwgIl9xdWVyeSR1c2VycyIsICJjYWNoZWRRdWVyeVVzZXJzIiwgIl9pdGVyYXRvcjQiLCAiX3N0ZXA0IiwgInVzdXNlcnMiLCAidiIsICJsaXN0IiwgInVzcHJvcCIsICJxdWVyeVVzZXJzIiwgIl9pMyIsICJfcXVlcnlVc2VycyIsICJ0YXJnZXRIZWlnaHQiLCAiZWZmZWN0c09wdGlvbnNPckR1cmF0aW9uIiwgImR1cmF0aW9uIiwgImVhc2luZyIsICJmaW5kIiwgImFuaW1hdGUiLCAid2dVc2VyR3JvdXBzIiwgIndnR2xvYmFsR3JvdXBzIiwgImNvbmZpZyIsICJzb21lIiwgIiRlZGl0Rm9ybSIsICJfJGVkaXRGb3JtJGZpbmQkdmFsIiwgIl8kZWRpdEZvcm0kZmluZCIsICJ2YWwiLCAiY29udGVudCIsICJfJGVkaXRGb3JtJGZpbmQkdGV4dFMiLCAidGV4dFNlbGVjdGlvbiJdCn0K diff --git a/dist/VariantAllyDialog/VariantAllyDialog.js b/dist/VariantAllyDialog/VariantAllyDialog.js index 4aa0c9895..9c665d927 100644 --- a/dist/VariantAllyDialog/VariantAllyDialog.js +++ b/dist/VariantAllyDialog/VariantAllyDialog.js @@ -61,8 +61,7 @@ var VAIcon_default = /* @__PURE__ */ (0, import_vue.defineComponent)({ }, size: { type: Number, - required: true, - default: 20 + required: true } }, setup(__props, { @@ -82,50 +81,12 @@ var _hoisted_1 = ["width", "height"]; var _hoisted_2 = { key: 0 }; -var _hoisted_3 = /* @__PURE__ */ (0, import_vue2.createElementVNode)( - "path", - { - d: "M20 18h-1.44a.61.61 0 01-.4-.12.81.81 0 01-.23-.31L17 15h-5l-1 2.54a.77.77 0 01-.22.3.59.59 0 01-.4.14H9l4.55-11.47h1.89zm-3.53-4.31L14.89 9.5a11.62 11.62 0 01-.39-1.24q-.09.37-.19.69l-.19.56-1.58 4.19zm-6.3-1.58a13.43 13.43 0 01-2.91-1.41 11.46 11.46 0 002.81-5.37H12V4H7.31a4 4 0 00-.2-.56C6.87 2.79 6.6 2 6.6 2l-1.47.5s.4.89.6 1.5H0v1.33h2.15A11.23 11.23 0 005 10.7a17.19 17.19 0 01-5 2.1q.56.82.87 1.38a23.28 23.28 0 005.22-2.51 15.64 15.64 0 003.56 1.77zM3.63 5.33h4.91a8.11 8.11 0 01-2.45 4.45 9.11 9.11 0 01-2.46-4.45z" - }, - null, - -1 - /* HOISTED */ -); -var _hoisted_4 = { +var _hoisted_3 = { key: 1 }; -var _hoisted_5 = /* @__PURE__ */ (0, import_vue2.createElementVNode)( - "path", - { - d: "m4.34 2.93 12.73 12.73-1.41 1.41L2.93 4.35z" - }, - null, - -1 - /* HOISTED */ -); -var _hoisted_6 = /* @__PURE__ */ (0, import_vue2.createElementVNode)( - "path", - { - d: "M17.07 4.34 4.34 17.07l-1.41-1.41L15.66 2.93z" - }, - null, - -1 - /* HOISTED */ -); -var _hoisted_7 = [_hoisted_5, _hoisted_6]; -var _hoisted_8 = { +var _hoisted_4 = { key: 2 }; -var _hoisted_9 = /* @__PURE__ */ (0, import_vue2.createElementVNode)( - "path", - { - d: "M8.59 3.42 14.17 9H2v2h12.17l-5.58 5.59L10 18l8-8-8-8z" - }, - null, - -1 - /* HOISTED */ -); -var _hoisted_10 = [_hoisted_9]; function render(_ctx, _cache, $props, $setup, $data, $options) { return (0, import_vue2.openBlock)(), (0, import_vue2.createElementBlock)("svg", { class: "va-icon-button__icon", @@ -135,7 +96,39 @@ function render(_ctx, _cache, $props, $setup, $data, $options) { height: $props.size, viewBox: "0 0 20 20", "aria-hidden": "true" - }, [$props.icon === "lang" ? ((0, import_vue2.openBlock)(), (0, import_vue2.createElementBlock)("g", _hoisted_2, [(0, import_vue2.createCommentVNode)(" eslint-disable "), _hoisted_3, (0, import_vue2.createCommentVNode)(" eslint-enable ")])) : $props.icon === "close" ? ((0, import_vue2.openBlock)(), (0, import_vue2.createElementBlock)("g", _hoisted_4, [..._hoisted_7])) : ((0, import_vue2.openBlock)(), (0, import_vue2.createElementBlock)("g", _hoisted_8, [..._hoisted_10]))], 8, _hoisted_1); + }, [$props.icon === "lang" ? ((0, import_vue2.openBlock)(), (0, import_vue2.createElementBlock)("g", _hoisted_2, [(0, import_vue2.createCommentVNode)(" eslint-disable "), _cache[0] || (_cache[0] = (0, import_vue2.createElementVNode)( + "path", + { + d: "M20 18h-1.44a.61.61 0 01-.4-.12.81.81 0 01-.23-.31L17 15h-5l-1 2.54a.77.77 0 01-.22.3.59.59 0 01-.4.14H9l4.55-11.47h1.89zm-3.53-4.31L14.89 9.5a11.62 11.62 0 01-.39-1.24q-.09.37-.19.69l-.19.56-1.58 4.19zm-6.3-1.58a13.43 13.43 0 01-2.91-1.41 11.46 11.46 0 002.81-5.37H12V4H7.31a4 4 0 00-.2-.56C6.87 2.79 6.6 2 6.6 2l-1.47.5s.4.89.6 1.5H0v1.33h2.15A11.23 11.23 0 005 10.7a17.19 17.19 0 01-5 2.1q.56.82.87 1.38a23.28 23.28 0 005.22-2.51 15.64 15.64 0 003.56 1.77zM3.63 5.33h4.91a8.11 8.11 0 01-2.45 4.45 9.11 9.11 0 01-2.46-4.45z" + }, + null, + -1 + /* HOISTED */ + )), (0, import_vue2.createCommentVNode)(" eslint-enable ")])) : $props.icon === "close" ? ((0, import_vue2.openBlock)(), (0, import_vue2.createElementBlock)("g", _hoisted_3, _cache[1] || (_cache[1] = [(0, import_vue2.createElementVNode)( + "path", + { + d: "m4.34 2.93 12.73 12.73-1.41 1.41L2.93 4.35z" + }, + null, + -1 + /* HOISTED */ + ), (0, import_vue2.createElementVNode)( + "path", + { + d: "M17.07 4.34 4.34 17.07l-1.41-1.41L15.66 2.93z" + }, + null, + -1 + /* HOISTED */ + )]))) : ((0, import_vue2.openBlock)(), (0, import_vue2.createElementBlock)("g", _hoisted_4, _cache[2] || (_cache[2] = [(0, import_vue2.createElementVNode)( + "path", + { + d: "M8.59 3.42 14.17 9H2v2h12.17l-5.58 5.59L10 18l8-8-8-8z" + }, + null, + -1 + /* HOISTED */ + )])))], 8, _hoisted_1); } //! src/VariantAllyDialog/components/VAIcon.vue VAIcon_default.render = render; @@ -145,11 +138,11 @@ var VAButton_default = /* @__PURE__ */ (0, import_vue3.defineComponent)({ __name: "VAButton", props: { icon: { - type: null, + type: String, required: false }, indicator: { - type: null, + type: String, required: false }, action: { @@ -194,7 +187,8 @@ function render2(_ctx, _cache, $props, $setup, $data, $options) { [$props.icon !== void 0 ? ((0, import_vue4.openBlock)(), (0, import_vue4.createBlock)($setup["VAIcon"], { key: 0, class: "va-button__icon", - icon: $props.icon + icon: $props.icon, + size: 20 }, null, 8, ["icon"])) : (0, import_vue4.createCommentVNode)("v-if", true), _ctx.$slots["default"] ? ((0, import_vue4.openBlock)(), (0, import_vue4.createElementBlock)("span", _hoisted_12, [(0, import_vue4.renderSlot)(_ctx.$slots, "default", {}, void 0, true)])) : (0, import_vue4.createCommentVNode)("v-if", true), $props.indicator !== void 0 ? ((0, import_vue4.openBlock)(), (0, import_vue4.createBlock)($setup["VAIcon"], { key: 2, class: "va-button__indicator", @@ -457,25 +451,17 @@ var VAVariantPrompt_default = /* @__PURE__ */ (0, import_vue11.defineComponent)( } }); var import_vue13 = require("vue"); -var _withScopeId = (n) => ((0, import_vue13.pushScopeId)("data-v-5a44cc75"), n = n(), (0, import_vue13.popScopeId)(), n); var _hoisted_13 = ["lang", "aria-labelledby", "aria-describedby"]; var _hoisted_22 = ["id"]; -var _hoisted_32 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ (0, import_vue13.createElementVNode)( - "br", - null, - null, - -1 - /* HOISTED */ -)); -var _hoisted_42 = ["lang"]; -var _hoisted_52 = ["id"]; -var _hoisted_62 = { +var _hoisted_32 = ["lang"]; +var _hoisted_42 = ["id"]; +var _hoisted_5 = { class: "va-variant-prompt__options" }; -var _hoisted_72 = { +var _hoisted_6 = { class: "va-variant-prompt__footer" }; -var _hoisted_82 = { +var _hoisted_7 = { class: "va-para va-para--subtle" }; function render4(_ctx, _cache, $props, $setup, $data, $options) { @@ -507,18 +493,24 @@ function render4(_ctx, _cache, $props, $setup, $data, $options) { (0, import_vue13.toDisplayString)($setup.useI18n($setup.isVariantNarrowed ? "vp.header.alt" : "vp.header")), 1 /* TEXT */ - ), _hoisted_32, (0, import_vue13.createVNode)($setup["VAFadeTransition"], null, { + ), _cache[1] || (_cache[1] = (0, import_vue13.createElementVNode)( + "br", + null, + null, + -1 + /* HOISTED */ + )), (0, import_vue13.createVNode)($setup["VAFadeTransition"], null, { default: (0, import_vue13.withCtx)(() => [!$setup.isVariantNarrowed ? ((0, import_vue13.openBlock)(), (0, import_vue13.createElementBlock)("span", { key: $setup.shuffledVariant, lang: "zh-".concat($setup.shuffledVariant), class: "va-variant-prompt__title__variant" - }, (0, import_vue13.toDisplayString)($setup.messages.variants[$setup.shuffledVariant]), 9, _hoisted_42)) : (0, import_vue13.createCommentVNode)("v-if", true)]), + }, (0, import_vue13.toDisplayString)($setup.messages.variants[$setup.shuffledVariant]), 9, _hoisted_32)) : (0, import_vue13.createCommentVNode)("v-if", true)]), _: 1 /* STABLE */ })], 8, _hoisted_22), (0, import_vue13.createElementVNode)("p", { id: $setup.descId, class: "va-variant-prompt__desc va-para" - }, (0, import_vue13.toDisplayString)($setup.useI18n($setup.isVariantNarrowed ? "vp.main.alt" : "vp.main")), 9, _hoisted_52), (0, import_vue13.createElementVNode)("div", _hoisted_62, [(0, import_vue13.createCommentVNode)(" inferredVariant is non-null, guarded by isVariantNarrowed "), ((0, import_vue13.openBlock)(true), (0, import_vue13.createElementBlock)( + }, (0, import_vue13.toDisplayString)($setup.useI18n($setup.isVariantNarrowed ? "vp.main.alt" : "vp.main")), 9, _hoisted_42), (0, import_vue13.createElementVNode)("div", _hoisted_5, [(0, import_vue13.createCommentVNode)(" inferredVariant is non-null, guarded by isVariantNarrowed "), ((0, import_vue13.openBlock)(true), (0, import_vue13.createElementBlock)( import_vue13.Fragment, null, (0, import_vue13.renderList)($setup.isVariantNarrowed && $setup.inferredVariant !== null ? [$setup.inferredVariant] : $setup.VALID_VARIANTS, (variant) => { @@ -561,9 +553,9 @@ function render4(_ctx, _cache, $props, $setup, $data, $options) { )]), _: 1 /* STABLE */ - }, 8, ["disabled"])) : (0, import_vue13.createCommentVNode)("v-if", true)]), (0, import_vue13.createElementVNode)("footer", _hoisted_72, [(0, import_vue13.createElementVNode)( + }, 8, ["disabled"])) : (0, import_vue13.createCommentVNode)("v-if", true)]), (0, import_vue13.createElementVNode)("footer", _hoisted_6, [(0, import_vue13.createElementVNode)( "p", - _hoisted_82, + _hoisted_7, (0, import_vue13.toDisplayString)($setup.useI18n("vp.main.ext")), 1 /* TEXT */ @@ -705,11 +697,11 @@ var _hoisted_33 = ["id"]; var _hoisted_43 = { class: "va-variant-prompt-mobile__main" }; -var _hoisted_53 = ["value", "lang"]; -var _hoisted_63 = { +var _hoisted_52 = ["value", "lang"]; +var _hoisted_62 = { class: "va-variant-prompt-mobile__footer" }; -var _hoisted_73 = { +var _hoisted_72 = { class: "va-para va-para--subtle" }; function render6(_ctx, _cache, $props, $setup, $data, $options) { @@ -752,7 +744,7 @@ function render6(_ctx, _cache, $props, $setup, $data, $options) { key: variant, value: variant, lang: variant - }, (0, import_vue18.toDisplayString)($setup.messages.variants[variant]), 9, _hoisted_53); + }, (0, import_vue18.toDisplayString)($setup.messages.variants[variant]), 9, _hoisted_52); }), 128 /* KEYED_FRAGMENT */ @@ -773,9 +765,9 @@ function render6(_ctx, _cache, $props, $setup, $data, $options) { )]), _: 1 /* STABLE */ - }, 8, ["disabled"])]), (0, import_vue18.createElementVNode)("footer", _hoisted_63, [(0, import_vue18.createElementVNode)( + }, 8, ["disabled"])]), (0, import_vue18.createElementVNode)("footer", _hoisted_62, [(0, import_vue18.createElementVNode)( "p", - _hoisted_73, + _hoisted_72, (0, import_vue18.toDisplayString)($setup.useI18n("vp.main.ext")), 1 /* TEXT */ @@ -874,4 +866,4 @@ document.body.append(root); /* */ -//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL1ZhcmlhbnRBbGx5RGlhbG9nL1ZhcmlhbnRBbGx5RGlhbG9nLnRzIiwgImRpc3QvVmFyaWFudEFsbHlEaWFsb2cvc3JjL1ZhcmlhbnRBbGx5RGlhbG9nL0FwcC52dWUiLCAiZGlzdC9WYXJpYW50QWxseURpYWxvZy9zcmMvVmFyaWFudEFsbHlEaWFsb2cvY29tcG9uZW50cy9WQVZhcmlhbnRQcm9tcHQudnVlIiwgImRpc3QvVmFyaWFudEFsbHlEaWFsb2cvc2ZjLXRlbXBsYXRlOkQ6L0dpdFJlcG9zaXRvcnkvUWl1d2VuR2FkZ2V0cy9zcmMvVmFyaWFudEFsbHlEaWFsb2cvY29tcG9uZW50cy9WQUljb24udnVlP3R5cGU9dGVtcGxhdGUiLCAic3JjL1ZhcmlhbnRBbGx5RGlhbG9nL2NvbXBvbmVudHMvVkFJY29uLnZ1ZSIsICJkaXN0L1ZhcmlhbnRBbGx5RGlhbG9nL3NmYy10ZW1wbGF0ZTpEOi9HaXRSZXBvc2l0b3J5L1FpdXdlbkdhZGdldHMvc3JjL1ZhcmlhbnRBbGx5RGlhbG9nL2NvbXBvbmVudHMvVkFCdXR0b24udnVlP3R5cGU9dGVtcGxhdGUiLCAic3JjL1ZhcmlhbnRBbGx5RGlhbG9nL2NvbXBvbmVudHMvVkFCdXR0b24udnVlIiwgImRpc3QvVmFyaWFudEFsbHlEaWFsb2cvc2ZjLXRlbXBsYXRlOkQ6L0dpdFJlcG9zaXRvcnkvUWl1d2VuR2FkZ2V0cy9zcmMvVmFyaWFudEFsbHlEaWFsb2cvY29tcG9uZW50cy9WQUZhZGVUcmFuc2l0aW9uLnZ1ZT90eXBlPXRlbXBsYXRlIiwgInNyYy9WYXJpYW50QWxseURpYWxvZy9jb21wb25lbnRzL1ZBRmFkZVRyYW5zaXRpb24udnVlIiwgInNyYy9WYXJpYW50QWxseURpYWxvZy9jb21wb3NhYmxlcy91c2VJMThuLnRzIiwgInNyYy9WYXJpYW50QWxseURpYWxvZy9tZXNzYWdlcy5qc29uIiwgInNyYy9WYXJpYW50QWxseURpYWxvZy9tb2R1bGVzL3V0aWxzLnRzIiwgInNyYy9WYXJpYW50QWxseURpYWxvZy9jb21wb3NhYmxlcy91c2VVbmlxdWVJZC50cyIsICJzcmMvVmFyaWFudEFsbHlEaWFsb2cvY29tcG9zYWJsZXMvdXNlU2h1ZmZsZWRWYXJpYW50LnRzIiwgInNyYy9WYXJpYW50QWxseURpYWxvZy9jb21wb3NhYmxlcy91c2VNb2RlbFdyYXBwZXIudHMiLCAic3JjL1ZhcmlhbnRBbGx5RGlhbG9nL2NvbXBvc2FibGVzL3VzZURlZmF1bHQudHMiLCAiZGlzdC9WYXJpYW50QWxseURpYWxvZy9zZmMtdGVtcGxhdGU6RDovR2l0UmVwb3NpdG9yeS9RaXV3ZW5HYWRnZXRzL3NyYy9WYXJpYW50QWxseURpYWxvZy9jb21wb25lbnRzL1ZBVmFyaWFudFByb21wdC52dWU/dHlwZT10ZW1wbGF0ZSIsICJzcmMvVmFyaWFudEFsbHlEaWFsb2cvY29tcG9uZW50cy9WQVZhcmlhbnRQcm9tcHQudnVlIiwgImRpc3QvVmFyaWFudEFsbHlEaWFsb2cvc3JjL1ZhcmlhbnRBbGx5RGlhbG9nL2NvbXBvbmVudHMvVkFWYXJpYW50UHJvbXB0TW9iaWxlLnZ1ZSIsICJkaXN0L1ZhcmlhbnRBbGx5RGlhbG9nL3NmYy10ZW1wbGF0ZTpEOi9HaXRSZXBvc2l0b3J5L1FpdXdlbkdhZGdldHMvc3JjL1ZhcmlhbnRBbGx5RGlhbG9nL2NvbXBvbmVudHMvVkFTZWxlY3QudnVlP3R5cGU9dGVtcGxhdGUiLCAic3JjL1ZhcmlhbnRBbGx5RGlhbG9nL2NvbXBvbmVudHMvVkFTZWxlY3QudnVlIiwgImRpc3QvVmFyaWFudEFsbHlEaWFsb2cvc2ZjLXRlbXBsYXRlOkQ6L0dpdFJlcG9zaXRvcnkvUWl1d2VuR2FkZ2V0cy9zcmMvVmFyaWFudEFsbHlEaWFsb2cvY29tcG9uZW50cy9WQVZhcmlhbnRQcm9tcHRNb2JpbGUudnVlP3R5cGU9dGVtcGxhdGUiLCAic3JjL1ZhcmlhbnRBbGx5RGlhbG9nL2NvbXBvbmVudHMvVkFWYXJpYW50UHJvbXB0TW9iaWxlLnZ1ZSIsICJkaXN0L1ZhcmlhbnRBbGx5RGlhbG9nL3NmYy10ZW1wbGF0ZTpEOi9HaXRSZXBvc2l0b3J5L1FpdXdlbkdhZGdldHMvc3JjL1ZhcmlhbnRBbGx5RGlhbG9nL0FwcC52dWU/dHlwZT10ZW1wbGF0ZSIsICJzcmMvVmFyaWFudEFsbHlEaWFsb2cvQXBwLnZ1ZSJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHtjcmVhdGVBcHB9IGZyb20gJ3Z1ZSc7XG5pbXBvcnQgQXBwIGZyb20gJy4vQXBwLnZ1ZSc7XG5cbmNvbnN0IHJvb3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbmRvY3VtZW50LmJvZHkuYXBwZW5kKHJvb3QpO1xuY3JlYXRlQXBwKEFwcCkubW91bnQocm9vdCk7XG4iLCAiPHNjcmlwdCBzZXR1cCBsYW5nPVwidHNcIj5cbmltcG9ydCB7cmVmfSBmcm9tICd2dWUnO1xuaW1wb3J0IHtzZXRMb2NhbFZhcmlhbnQsIHJlZGlyZWN0LCBWYWxpZFZhcmlhbnQsIHNldE9wdE91dH0gZnJvbSAnZXh0LmdhZGdldC5WYXJpYW50QWxseSc7XG5pbXBvcnQgVkFWYXJpYW50UHJvbXB0IGZyb20gJy4vY29tcG9uZW50cy9WQVZhcmlhbnRQcm9tcHQudnVlJztcbmltcG9ydCBWQVZhcmlhbnRQcm9tcHRNb2JpbGUgZnJvbSAnLi9jb21wb25lbnRzL1ZBVmFyaWFudFByb21wdE1vYmlsZS52dWUnO1xuaW1wb3J0IHtnZXRNb3VudFBvaW50LCBpc01vYmlsZURldmljZX0gZnJvbSAnLi9tb2R1bGVzL3V0aWxzJztcblxuY29uc3QgaXNPcGVuID0gcmVmKHRydWUpO1xuY29uc3QgaXNEaXNhYmxlZCA9IHJlZihmYWxzZSk7XG5jb25zdCBpc01vYmlsZSA9IGlzTW9iaWxlRGV2aWNlKCk7XG5jb25zdCBkZXNrdG9wTW91bnRQb2ludCA9IGdldE1vdW50UG9pbnQoKTtcblxuZnVuY3Rpb24gc2V0VmFyaWFudCh2YXJpYW50OiBWYWxpZFZhcmlhbnQpIHtcblx0c2V0TG9jYWxWYXJpYW50KHZhcmlhbnQpO1xuXHRyZWRpcmVjdCh2YXJpYW50LCB7Zm9yY2VkOiB0cnVlfSk7XG59XG5cbi8vIEJyb3dzZXIgc3VwcG9ydDogaU9TIFNhZmFyaSA8IDE1XG4vLyBXb3JrIGFyb3VuZCBTYWZhcmkgZmlyaW5nIHNjcm9sbCBldmVudCBhdCB1bmV4cGVjdGVkIGNvbmRpdGlvbnMgKGUuZy4gcG9wcGluZyB1cCBTZWxlY3QpXG5hZGRFdmVudExpc3RlbmVyKGlzTW9iaWxlID8gJ3RvdWNobW92ZScgOiAnc2Nyb2xsJywgKCkgPT4ge1xuXHRpZiAoIWlzRGlzYWJsZWQudmFsdWUpIHtcblx0XHRpc09wZW4udmFsdWUgPSBmYWxzZTtcblx0fVxufSk7XG5cbmZ1bmN0aW9uIG9uT3B0T3V0KCkge1xuXHRzZXRPcHRPdXQoKTtcbn1cbjwvc2NyaXB0PlxuXG48dGVtcGxhdGU+XG5cdDxUZWxlcG9ydCA6dG89XCJkZXNrdG9wTW91bnRQb2ludFwiPlxuXHRcdDxWQVZhcmlhbnRQcm9tcHRcblx0XHRcdHYtaWY9XCIhaXNNb2JpbGVcIlxuXHRcdFx0di1tb2RlbDpvcGVuPVwiaXNPcGVuXCJcblx0XHRcdHYtbW9kZWw6ZGlzYWJsZWQ9XCJpc0Rpc2FibGVkXCJcblx0XHRcdDphdXRvLWNsb3NlPVwiZmFsc2VcIlxuXHRcdFx0QG9wdG91dD1cIm9uT3B0T3V0XCJcblx0XHRcdEBzZWxlY3Q9XCJzZXRWYXJpYW50XCJcblx0XHQvPlxuXHQ8L1RlbGVwb3J0PlxuXG5cdDwhLS0gVGVsZXBvcnQgdG8gYm9keSBiZWNhdXNlIHRoZXkgYXJlIGFsd2F5cyBmbG9hdGVkIGF0IGJvdHRvbSAtLT5cblx0PFRlbGVwb3J0IHRvPVwiYm9keVwiPlxuXHRcdDxWQVZhcmlhbnRQcm9tcHRNb2JpbGVcblx0XHRcdHYtaWY9XCJpc01vYmlsZVwiXG5cdFx0XHR2LW1vZGVsOm9wZW49XCJpc09wZW5cIlxuXHRcdFx0di1tb2RlbDpkaXNhYmxlZD1cImlzRGlzYWJsZWRcIlxuXHRcdFx0QG9wdG91dD1cIm9uT3B0T3V0XCJcblx0XHRcdEBzZWxlY3Q9XCJzZXRWYXJpYW50XCJcblx0XHQvPlxuXHQ8L1RlbGVwb3J0PlxuPC90ZW1wbGF0ZT5cblxuPHN0eWxlIGxhbmc9XCJsZXNzXCI+XG5AaW1wb3J0IChyZWZlcmVuY2UpICcuL3N0eWxlcy90b2tlbnMubGVzcyc7XG5cbi52YS12YXJpYW50LXByb21wdCB7XG5cdC8vIFZlY3RvciAyMDIyIHNwZWNpZmljIGFkanVzdG1lbnRzXG5cdC5za2luLXZlY3Rvci0yMDIyICYge1xuXHRcdC8vIENhbGN1bGF0ZWQgZnJvbSBWZWN0b3IgMjAyMiBzb3VyY2UgY29kZVxuXHRcdEB2ZWN0b3ItMjAyMi1oZWFkZXItaGVpZ2h0OiA1MHB4ICsgMiAqIDhweDtcblx0XHRtYXgtaGVpZ2h0OiBjYWxjKDEwMCUgLSBAc3BhY2luZy12ZXJ0aWNhbC1kaWFsb2cgLSBAdmVjdG9yLTIwMjItaGVhZGVyLWhlaWdodCk7XG5cblx0XHQudmVjdG9yLXRvYy1hdmFpbGFibGUudmVjdG9yLWZlYXR1cmUtdG9jLXBpbm5lZC1jbGllbnRwcmVmLTEgJixcblx0XHQudmVjdG9yLWZlYXR1cmUtbWFpbi1tZW51LXBpbm5lZC1lbmFibGVkICYge1xuXHRcdFx0QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAwMHB4KSBhbmQgKG1heC13aWR0aDogMTIwMHB4KSB7XG5cdFx0XHRcdGxlZnQ6IHVuc2V0O1xuXG5cdFx0XHRcdC8vIENhbGN1bGF0ZWQgZnJvbSBWZWN0b3IgMjAyMiBzb3VyY2UgY29kZVxuXHRcdFx0XHQvLyBJbiB0aGlzIHdpZHRoIHRoaXMgcHJvbXB0IHdpbGwgbm90IG9ic2N1cmUgYXJ0aWNsZSBjb250ZW50XG5cdFx0XHRcdEB2ZWN0b3ItMjAyMi1sZWZ0LXBhZGRpbmc6IDIuNzVlbTtcblx0XHRcdFx0bWFyZ2luLWxlZnQ6IC0oQHZlY3Rvci0yMDIyLWxlZnQtcGFkZGluZyAvIDMgKiAyKTtcblx0XHRcdFx0bWF4LXdpZHRoOiBjYWxjKDEyLjI1ZW0gKyAzNnB4KTtcblx0XHRcdFx0cGFkZGluZzogQHNwYWNpbmctMTAwO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMDBweCkge1xuXHRcdFx0QHZlY3Rvci0yMDIyLWxlZnQtcGFkZGluZzogMy4yNWVtO1xuXHRcdFx0bGVmdDogdW5zZXQ7XG5cdFx0XHRtYXJnaW4tbGVmdDogLShAdmVjdG9yLTIwMjItbGVmdC1wYWRkaW5nIC8gMyAqIDIpO1xuXHRcdFx0bWF4LXdpZHRoOiBjYWxjKDE1Ljc1ZW0gKyAzNnB4KTtcblx0XHR9XG5cdH1cbn1cbjwvc3R5bGU+XG4uL21vZHVsZXMvdXRpbHNcbiIsICI8c2NyaXB0IHNldHVwIGxhbmc9XCJ0c1wiPlxuaW1wb3J0IHtyZWYsIHdhdGNofSBmcm9tICd2dWUnO1xuaW1wb3J0IHt0eXBlIFZhbGlkVmFyaWFudH0gZnJvbSAnZXh0LmdhZGdldC5WYXJpYW50QWxseSc7XG5pbXBvcnQgVkFCdXR0b24gZnJvbSAnLi9WQUJ1dHRvbi52dWUnO1xuaW1wb3J0IFZBRmFkZVRyYW5zaXRpb24gZnJvbSAnLi9WQUZhZGVUcmFuc2l0aW9uLnZ1ZSc7XG5pbXBvcnQgdXNlSTE4biwge2kxOG5WYXJpYW50fSBmcm9tICcuLi9jb21wb3NhYmxlcy91c2VJMThuJztcbmltcG9ydCB1c2VVbmlxdWVJZCBmcm9tICcuLi9jb21wb3NhYmxlcy91c2VVbmlxdWVJZCc7XG5pbXBvcnQgdXNlU2h1ZmZsZWRWYXJpYW50IGZyb20gJy4uL2NvbXBvc2FibGVzL3VzZVNodWZmbGVkVmFyaWFudCc7XG5pbXBvcnQge1ZBTElEX1ZBUklBTlRTLCBpbmZlcnJlZFZhcmlhbnR9IGZyb20gJy4uL21vZHVsZXMvdXRpbHMnO1xuaW1wb3J0IG1lc3NhZ2VzIGZyb20gJy4uL21lc3NhZ2VzLmpzb24nO1xuaW1wb3J0IHVzZU1vZGVsV3JhcHBlciBmcm9tICcuLi9jb21wb3NhYmxlcy91c2VNb2RlbFdyYXBwZXInO1xuaW1wb3J0IHVzZURlZmF1bHQgZnJvbSAnLi4vY29tcG9zYWJsZXMvdXNlRGVmYXVsdCc7XG5cbmNvbnN0IHByb3BzID0gd2l0aERlZmF1bHRzKFxuXHRkZWZpbmVQcm9wczx7XG5cdFx0b3BlbjogYm9vbGVhbjtcblx0XHRkaXNhYmxlZD86IGJvb2xlYW47XG5cdFx0YXV0b0Nsb3NlPzogYm9vbGVhbjtcblx0fT4oKSxcblx0e1xuXHRcdGRpc2FibGVkOiBmYWxzZSxcblx0XHRhdXRvQ2xvc2U6IGZhbHNlLFxuXHR9XG4pO1xuY29uc3QgZW1pdCA9IGRlZmluZUVtaXRzPHtcblx0KGU6ICd1cGRhdGU6b3BlbicsIHZhbHVlOiBib29sZWFuKTogdm9pZDtcblx0KGU6ICd1cGRhdGU6ZGlzYWJsZWQnLCB2YWx1ZTogYm9vbGVhbik6IHZvaWQ7XG5cdChlOiAnc2VsZWN0JywgdmFyaWFudDogVmFsaWRWYXJpYW50KTogdm9pZDtcblx0KGU6ICdvcHRvdXQnKTogdm9pZDtcbn0+KCk7XG5cbmNvbnN0IHByb21wdCA9IHJlZjxIVE1MRWxlbWVudCB8IG51bGw+KG51bGwpO1xuY29uc3QgdGl0bGVJZCA9IHVzZVVuaXF1ZUlkKCk7XG5jb25zdCBkZXNjSWQgPSB1c2VVbmlxdWVJZCgpO1xuY29uc3QgaXNPcGVuID0gdXNlTW9kZWxXcmFwcGVyKHByb3BzLCBlbWl0LCAnb3BlbicpO1xuY29uc3QgaXNEaXNhYmxlZCA9IHVzZU1vZGVsV3JhcHBlcihwcm9wcywgZW1pdCwgJ2Rpc2FibGVkJyk7XG5jb25zdCBpc1ZhcmlhbnROYXJyb3dlZCA9IHVzZURlZmF1bHQoKCkgPT4gaW5mZXJyZWRWYXJpYW50LnZhbHVlICE9PSBudWxsKTtcbmNvbnN0IHNodWZmbGVkVmFyaWFudCA9IHVzZVNodWZmbGVkVmFyaWFudChpc1ZhcmlhbnROYXJyb3dlZCk7XG5cbmZ1bmN0aW9uIG9wdE91dEFuZENsb3NlKCkge1xuXHRlbWl0KCdvcHRvdXQnKTtcblx0aXNPcGVuLnZhbHVlID0gZmFsc2U7XG59XG5cbmZ1bmN0aW9uIHNlbGVjdCh2YXJpYW50OiBWYWxpZFZhcmlhbnQpIHtcblx0aXNEaXNhYmxlZC52YWx1ZSA9IHRydWU7XG5cdGVtaXQoJ3NlbGVjdCcsIHZhcmlhbnQpO1xufVxuXG53YXRjaChwcm9tcHQsICgpID0+IHtcblx0Y29uc3QgZWxlbWVudCA9IHByb21wdC52YWx1ZTtcblx0aWYgKGVsZW1lbnQgIT09IG51bGwpIHtcblx0XHRlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCAoZXYpID0+IHtcblx0XHRcdC8vIERvIG5vdCBkaXNtaXNzIGlmIGFueSBidXR0b24gaXMgcHJlc3NlZCBvciB0aGUgcHJvbXB0IGlzIGRpc2FibGVkXG5cdFx0XHRpZiAoZXYuYnV0dG9ucyA9PT0gMCAmJiBwcm9wcy5hdXRvQ2xvc2UgJiYgIXByb3BzLmRpc2FibGVkKSB7XG5cdFx0XHRcdGlzT3Blbi52YWx1ZSA9IGZhbHNlO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG59KTtcbjwvc2NyaXB0PlxuXG48dGVtcGxhdGU+XG5cdDxUcmFuc2l0aW9uIG5hbWU9XCJ2YS12YXJpYW50LXByb21wdFwiIGFwcGVhcj5cblx0XHQ8ZGl2XG5cdFx0XHR2LWlmPVwib3BlblwiXG5cdFx0XHRyZWY9XCJwcm9tcHRcIlxuXHRcdFx0Omxhbmc9XCJgemgtJHtpMThuVmFyaWFudH1gXCJcblx0XHRcdGNsYXNzPVwidmEtdmFyaWFudC1wcm9tcHRcIlxuXHRcdFx0cm9sZT1cImRpYWxvZ1wiXG5cdFx0XHRhcmlhLW1vZGFsPVwiZmFsc2VcIlxuXHRcdFx0OmFyaWEtbGFiZWxsZWRieT1cInRpdGxlSWRcIlxuXHRcdFx0OmFyaWEtZGVzY3JpYmVkYnk9XCJkZXNjSWRcIlxuXHRcdD5cblx0XHRcdDxWQUJ1dHRvblxuXHRcdFx0XHRjbGFzcz1cInZhLXZhcmlhbnQtcHJvbXB0X19jbG9zZVwiXG5cdFx0XHRcdHdlaWdodD1cInF1aWV0XCJcblx0XHRcdFx0aWNvbj1cImNsb3NlXCJcblx0XHRcdFx0OnRpdGxlPVwidXNlSTE4bignY2xvc2UnKVwiXG5cdFx0XHRcdDphcmlhLWxhYmVsPVwidXNlSTE4bignY2xvc2UnKVwiXG5cdFx0XHRcdDpkaXNhYmxlZD1cImRpc2FibGVkXCJcblx0XHRcdFx0QGNsaWNrPVwib3B0T3V0QW5kQ2xvc2VcIlxuXHRcdFx0Lz5cblx0XHRcdDxoMiA6aWQ9XCJ0aXRsZUlkXCIgY2xhc3M9XCJ2YS12YXJpYW50LXByb21wdF9fdGl0bGUgdmEtdGl0bGVcIj5cblx0XHRcdFx0e3sgdXNlSTE4bihpc1ZhcmlhbnROYXJyb3dlZCA/ICd2cC5oZWFkZXIuYWx0JyA6ICd2cC5oZWFkZXInKSB9fTxiciAvPlxuXHRcdFx0XHQ8VkFGYWRlVHJhbnNpdGlvbj5cblx0XHRcdFx0XHQ8c3BhblxuXHRcdFx0XHRcdFx0di1pZj1cIiFpc1ZhcmlhbnROYXJyb3dlZFwiXG5cdFx0XHRcdFx0XHQ6a2V5PVwic2h1ZmZsZWRWYXJpYW50XCJcblx0XHRcdFx0XHRcdDpsYW5nPVwiYHpoLSR7c2h1ZmZsZWRWYXJpYW50fWBcIlxuXHRcdFx0XHRcdFx0Y2xhc3M9XCJ2YS12YXJpYW50LXByb21wdF9fdGl0bGVfX3ZhcmlhbnRcIlxuXHRcdFx0XHRcdFx0Pnt7IG1lc3NhZ2VzLnZhcmlhbnRzW3NodWZmbGVkVmFyaWFudF0gfX08L3NwYW5cblx0XHRcdFx0XHQ+XG5cdFx0XHRcdDwvVkFGYWRlVHJhbnNpdGlvbj5cblx0XHRcdDwvaDI+XG5cdFx0XHQ8cCA6aWQ9XCJkZXNjSWRcIiBjbGFzcz1cInZhLXZhcmlhbnQtcHJvbXB0X19kZXNjIHZhLXBhcmFcIj5cblx0XHRcdFx0e3sgdXNlSTE4bihpc1ZhcmlhbnROYXJyb3dlZCA/ICd2cC5tYWluLmFsdCcgOiAndnAubWFpbicpIH19XG5cdFx0XHQ8L3A+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwidmEtdmFyaWFudC1wcm9tcHRfX29wdGlvbnNcIj5cblx0XHRcdFx0PCEtLSBpbmZlcnJlZFZhcmlhbnQgaXMgbm9uLW51bGwsIGd1YXJkZWQgYnkgaXNWYXJpYW50TmFycm93ZWQgLS0+XG5cdFx0XHRcdDxWQUJ1dHRvblxuXHRcdFx0XHRcdHYtZm9yPVwidmFyaWFudCBpbiBpc1ZhcmlhbnROYXJyb3dlZCAmJiBpbmZlcnJlZFZhcmlhbnQgIT09IG51bGxcblx0XHRcdFx0XHRcdD8gW2luZmVycmVkVmFyaWFudF1cblx0XHRcdFx0XHRcdDogVkFMSURfVkFSSUFOVFNcIlxuXHRcdFx0XHRcdDprZXk9XCJ2YXJpYW50XCJcblx0XHRcdFx0XHRjbGFzcz1cInZhLXZhcmlhbnQtcHJvbXB0X19vcHRpb25zX19idXR0b25cIlxuXHRcdFx0XHRcdDpjbGFzcz1cInsndmEtdmFyaWFudC1wcm9tcHRfX29wdGlvbnNfX2J1dHRvbi0tcHJpbWFyeSc6IGlzVmFyaWFudE5hcnJvd2VkfVwiXG5cdFx0XHRcdFx0aW5kaWNhdG9yPVwiYXJyb3dOZXh0XCJcblx0XHRcdFx0XHR3ZWlnaHQ9XCJxdWlldFwiXG5cdFx0XHRcdFx0YWN0aW9uPVwicHJvZ3Jlc3NpdmVcIlxuXHRcdFx0XHRcdDpsYW5nPVwidmFyaWFudFwiXG5cdFx0XHRcdFx0OmRpc2FibGVkPVwiZGlzYWJsZWRcIlxuXHRcdFx0XHRcdEBjbGljaz1cInNlbGVjdCh2YXJpYW50KVwiXG5cdFx0XHRcdD5cblx0XHRcdFx0XHR7eyBtZXNzYWdlcy52YXJpYW50c1t2YXJpYW50XSB9fVxuXHRcdFx0XHQ8L1ZBQnV0dG9uPlxuXHRcdFx0XHQ8VkFCdXR0b25cblx0XHRcdFx0XHR2LWlmPVwiaXNWYXJpYW50TmFycm93ZWRcIlxuXHRcdFx0XHRcdGNsYXNzPVwidmEtdmFyaWFudC1wcm9tcHRfX29wdGlvbnNfX2J1dHRvblwiXG5cdFx0XHRcdFx0aW5kaWNhdG9yPVwiYXJyb3dOZXh0XCJcblx0XHRcdFx0XHR3ZWlnaHQ9XCJxdWlldFwiXG5cdFx0XHRcdFx0YWN0aW9uPVwicHJvZ3Jlc3NpdmVcIlxuXHRcdFx0XHRcdDpkaXNhYmxlZD1cImRpc2FibGVkXCJcblx0XHRcdFx0XHRAY2xpY2s9XCJpc1ZhcmlhbnROYXJyb3dlZCA9IGZhbHNlXCJcblx0XHRcdFx0PlxuXHRcdFx0XHRcdHt7IHVzZUkxOG4oJ3ZwLmJ1dHRvbi5vdGhlcicpIH19XG5cdFx0XHRcdDwvVkFCdXR0b24+XG5cdFx0XHQ8L2Rpdj5cblx0XHRcdDxmb290ZXIgY2xhc3M9XCJ2YS12YXJpYW50LXByb21wdF9fZm9vdGVyXCI+XG5cdFx0XHRcdDxwIGNsYXNzPVwidmEtcGFyYSB2YS1wYXJhLS1zdWJ0bGVcIj5cblx0XHRcdFx0XHR7eyB1c2VJMThuKCd2cC5tYWluLmV4dCcpIH19XG5cdFx0XHRcdDwvcD5cblx0XHRcdDwvZm9vdGVyPlxuXHRcdDwvZGl2PlxuXHQ8L1RyYW5zaXRpb24+XG48L3RlbXBsYXRlPlxuXG48c3R5bGUgc2NvcGVkIGxhbmc9XCJsZXNzXCI+XG5AaW1wb3J0IChyZWZlcmVuY2UpICcuLi9zdHlsZXMvbWl4aW5zLmxlc3MnO1xuQGltcG9ydCAocmVmZXJlbmNlKSAnLi4vc3R5bGVzL3Rva2Vucy5sZXNzJztcblxuLnZhLXRpdGxlIHtcblx0Ym9yZGVyOiAwOyAvLyBSZXNldFxuXHRwYWRkaW5nOiAwOyAvLyBSZXNldFxuXHRvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xuXG5cdGZvbnQtc2l6ZTogQGZvbnQtc2l6ZS14eC1sYXJnZTtcblx0Zm9udC13ZWlnaHQ6IEBmb250LXdlaWdodC1ib2xkO1xuXHRtYXJnaW46IEBzcGFjaW5nLTUwIEBzcGFjaW5nLTA7XG5cdGNvbG9yOiBAY29sb3ItYmFzZTtcbn1cblxuLnZhLXBhcmEge1xuXHRvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xuXHRtYXJnaW4tdG9wOiBAc3BhY2luZy01MDtcblx0bWFyZ2luLWJvdHRvbTogQHNwYWNpbmctNTA7XG5cdGNvbG9yOiBAY29sb3ItYmFzZTtcblxuXHQmLS1zdWJ0bGUge1xuXHRcdGNvbG9yOiBAY29sb3Itc3VidGxlO1xuXHRcdGZvbnQtc2l6ZTogQGZvbnQtc2l6ZS14LXNtYWxsO1xuXHRcdG1hcmdpbi1ib3R0b206IEBzcGFjaW5nLTM1O1xuXHR9XG59XG5cbi52YS12YXJpYW50LXByb21wdCB7XG5cdGJveC1zaXppbmc6IEBib3gtc2l6aW5nLWJhc2U7XG5cdHotaW5kZXg6IEB6LWluZGV4LW92ZXJsYXk7XG5cdHBhZGRpbmc6IEBzcGFjaW5nLTEwMCBAc3BhY2luZy0xNTA7XG5cdHBvc2l0aW9uOiBmaXhlZDtcblx0bGVmdDogQHNwYWNpbmctaG9yaXpvbnRhbC1kaWFsb2c7XG5cdGJvdHRvbTogQHNwYWNpbmctdmVydGljYWwtZGlhbG9nO1xuXHR3aWR0aDogY2FsYygxMDAlIC0gQHNwYWNpbmctaG9yaXpvbnRhbC1kaWFsb2cgKiAyKTtcblx0bWF4LXdpZHRoOiAxOGVtO1xuXHRtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMmVtKTtcblxuXHRvdmVyZmxvdzogYXV0bztcblx0b3ZlcnNjcm9sbC1iZWhhdmlvcjogbm9uZTtcblx0YmFja2dyb3VuZC1jb2xvcjogQGJhY2tncm91bmQtY29sb3ItYmFzZTtcblx0Ym9yZGVyOiBAYm9yZGVyLWJhc2U7XG5cdGJvcmRlci1yYWRpdXM6IEBib3JkZXItcmFkaXVzLWJhc2U7XG5cdGJveC1zaGFkb3c6IEBib3gtc2hhZG93LWRyb3AtbWVkaXVtO1xuXHRmb250LWZhbWlseTogQGZvbnQtZmFtaWx5LXN5c3RlbS1zYW5zO1xuXHRmb250LXNpemU6IDFyZW07IC8vIFJlc2V0XG5cdGxpbmUtaGVpZ2h0OiBub3JtYWw7IC8vIFJlc2V0XG5cblx0Jl9fY2xvc2Uge1xuXHRcdHBhZGRpbmc6IEBzcGFjaW5nLXNob3J0aGFuZC1idXR0b24taWNvbi1vbmx5O1xuXHRcdGZsb2F0OiByaWdodDtcblx0XHRtYXJnaW4tdG9wOiBAc3BhY2luZy01MDtcblx0XHRtYXJnaW4tcmlnaHQ6IC0oQHNwYWNpbmctaG9yaXpvbnRhbC1idXR0b24taWNvbi1vbmx5ICsgMXB4KTtcblx0fVxuXG5cdCZfX3RpdGxlIHtcblx0XHQmX192YXJpYW50IHtcblx0XHRcdGNvbG9yOiBAY29sb3ItcHJvZ3Jlc3NpdmU7XG5cdFx0fVxuXHR9XG5cblx0Jl9fb3B0aW9ucyB7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0bWFyZ2luOiBAc3BhY2luZy03NSBAc3BhY2luZy0wO1xuXG5cdFx0Ym9yZGVyOiAxcHggc29saWQgQGJvcmRlci1jb2xvci1iYXNlO1xuXHRcdGJvcmRlci1yYWRpdXM6IEBib3JkZXItcmFkaXVzLWJhc2U7XG5cblx0XHQmX19idXR0b24ge1xuXHRcdFx0Zm9udC1zaXplOiBAZm9udC1zaXplLXNtYWxsO1xuXHRcdFx0Y29sb3I6IEBjb2xvci1iYXNlO1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogQGJhY2tncm91bmQtY29sb3ItaW50ZXJhY3RpdmUtc3VidGxlO1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogMDtcblxuXHRcdFx0Ji0tcHJpbWFyeSB7XG5cdFx0XHRcdGNvbG9yOiBAY29sb3ItcHJvZ3Jlc3NpdmU7XG5cdFx0XHR9XG5cblx0XHRcdCY6aG92ZXIsXG5cdFx0XHQmOmFjdGl2ZSB7XG5cdFx0XHRcdGJvcmRlci1jb2xvcjogQGJvcmRlci1jb2xvci10cmFuc3BhcmVudDtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLyogUHJvbXB0IHRyYW5zaXRpb24gZWZmZWN0ICovXG4udmEtdmFyaWFudC1wcm9tcHQtZW50ZXItYWN0aXZlLFxuLnZhLXZhcmlhbnQtcHJvbXB0LWxlYXZlLWFjdGl2ZSB7XG5cdHRyYW5zaXRpb24tcHJvcGVydHk6IEB0cmFuc2l0aW9uLXByb3BlcnR5LWZhZGU7XG5cdHRyYW5zaXRpb24tZHVyYXRpb246IEB0cmFuc2l0aW9uLWR1cmF0aW9uLW1lZGl1bTtcblx0dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IEB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbi1zeXN0ZW07XG59XG5cbi52YS12YXJpYW50LXByb21wdC1lbnRlci1mcm9tLFxuLnZhLXZhcmlhbnQtcHJvbXB0LWxlYXZlLXRvIHtcblx0b3BhY2l0eTogMDtcbn1cbjwvc3R5bGU+XG4iLCAiaW1wb3J0IHsgY3JlYXRlQ29tbWVudFZOb2RlIGFzIF9jcmVhdGVDb21tZW50Vk5vZGUsIGNyZWF0ZUVsZW1lbnRWTm9kZSBhcyBfY3JlYXRlRWxlbWVudFZOb2RlLCBvcGVuQmxvY2sgYXMgX29wZW5CbG9jaywgY3JlYXRlRWxlbWVudEJsb2NrIGFzIF9jcmVhdGVFbGVtZW50QmxvY2sgfSBmcm9tIFwidnVlXCJcblxuY29uc3QgX2hvaXN0ZWRfMSA9IFtcIndpZHRoXCIsIFwiaGVpZ2h0XCJdXG5jb25zdCBfaG9pc3RlZF8yID0geyBrZXk6IDAgfVxuY29uc3QgX2hvaXN0ZWRfMyA9IC8qI19fUFVSRV9fKi9fY3JlYXRlRWxlbWVudFZOb2RlKFwicGF0aFwiLCB7IGQ6IFwiTTIwIDE4aC0xLjQ0YS42MS42MSAwIDAxLS40LS4xMi44MS44MSAwIDAxLS4yMy0uMzFMMTcgMTVoLTVsLTEgMi41NGEuNzcuNzcgMCAwMS0uMjIuMy41OS41OSAwIDAxLS40LjE0SDlsNC41NS0xMS40N2gxLjg5em0tMy41My00LjMxTDE0Ljg5IDkuNWExMS42MiAxMS42MiAwIDAxLS4zOS0xLjI0cS0uMDkuMzctLjE5LjY5bC0uMTkuNTYtMS41OCA0LjE5em0tNi4zLTEuNThhMTMuNDMgMTMuNDMgMCAwMS0yLjkxLTEuNDEgMTEuNDYgMTEuNDYgMCAwMDIuODEtNS4zN0gxMlY0SDcuMzFhNCA0IDAgMDAtLjItLjU2QzYuODcgMi43OSA2LjYgMiA2LjYgMmwtMS40Ny41cy40Ljg5LjYgMS41SDB2MS4zM2gyLjE1QTExLjIzIDExLjIzIDAgMDA1IDEwLjdhMTcuMTkgMTcuMTkgMCAwMS01IDIuMXEuNTYuODIuODcgMS4zOGEyMy4yOCAyMy4yOCAwIDAwNS4yMi0yLjUxIDE1LjY0IDE1LjY0IDAgMDAzLjU2IDEuNzd6TTMuNjMgNS4zM2g0LjkxYTguMTEgOC4xMSAwIDAxLTIuNDUgNC40NSA5LjExIDkuMTEgMCAwMS0yLjQ2LTQuNDV6XCIgfSwgbnVsbCwgLTEgLyogSE9JU1RFRCAqLylcbmNvbnN0IF9ob2lzdGVkXzQgPSB7IGtleTogMSB9XG5jb25zdCBfaG9pc3RlZF81ID0gLyojX19QVVJFX18qL19jcmVhdGVFbGVtZW50Vk5vZGUoXCJwYXRoXCIsIHsgZDogXCJtNC4zNCAyLjkzIDEyLjczIDEyLjczLTEuNDEgMS40MUwyLjkzIDQuMzV6XCIgfSwgbnVsbCwgLTEgLyogSE9JU1RFRCAqLylcbmNvbnN0IF9ob2lzdGVkXzYgPSAvKiNfX1BVUkVfXyovX2NyZWF0ZUVsZW1lbnRWTm9kZShcInBhdGhcIiwgeyBkOiBcIk0xNy4wNyA0LjM0IDQuMzQgMTcuMDdsLTEuNDEtMS40MUwxNS42NiAyLjkzelwiIH0sIG51bGwsIC0xIC8qIEhPSVNURUQgKi8pXG5jb25zdCBfaG9pc3RlZF83ID0gW1xuICBfaG9pc3RlZF81LFxuICBfaG9pc3RlZF82XG5dXG5jb25zdCBfaG9pc3RlZF84ID0geyBrZXk6IDIgfVxuY29uc3QgX2hvaXN0ZWRfOSA9IC8qI19fUFVSRV9fKi9fY3JlYXRlRWxlbWVudFZOb2RlKFwicGF0aFwiLCB7IGQ6IFwiTTguNTkgMy40MiAxNC4xNyA5SDJ2MmgxMi4xN2wtNS41OCA1LjU5TDEwIDE4bDgtOC04LTh6XCIgfSwgbnVsbCwgLTEgLyogSE9JU1RFRCAqLylcbmNvbnN0IF9ob2lzdGVkXzEwID0gW1xuICBfaG9pc3RlZF85XG5dXG5cbmV4cG9ydCBmdW5jdGlvbiByZW5kZXIoX2N0eCwgX2NhY2hlLCAkcHJvcHMsICRzZXR1cCwgJGRhdGEsICRvcHRpb25zKSB7XG4gIHJldHVybiAoX29wZW5CbG9jaygpLCBfY3JlYXRlRWxlbWVudEJsb2NrKFwic3ZnXCIsIHtcbiAgICBjbGFzczogXCJ2YS1pY29uLWJ1dHRvbl9faWNvblwiLFxuICAgIHhtbG5zOiBcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsXG4gICAgXCJ4bWxuczp4bGlua1wiOiBcImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIixcbiAgICB3aWR0aDogJHByb3BzLnNpemUsXG4gICAgaGVpZ2h0OiAkcHJvcHMuc2l6ZSxcbiAgICB2aWV3Qm94OiBcIjAgMCAyMCAyMFwiLFxuICAgIFwiYXJpYS1oaWRkZW5cIjogXCJ0cnVlXCJcbiAgfSwgW1xuICAgICgkcHJvcHMuaWNvbiA9PT0gJ2xhbmcnKVxuICAgICAgPyAoX29wZW5CbG9jaygpLCBfY3JlYXRlRWxlbWVudEJsb2NrKFwiZ1wiLCBfaG9pc3RlZF8yLCBbXG4gICAgICAgICAgX2NyZWF0ZUNvbW1lbnRWTm9kZShcIiBlc2xpbnQtZGlzYWJsZSBcIiksXG4gICAgICAgICAgX2hvaXN0ZWRfMyxcbiAgICAgICAgICBfY3JlYXRlQ29tbWVudFZOb2RlKFwiIGVzbGludC1lbmFibGUgXCIpXG4gICAgICAgIF0pKVxuICAgICAgOiAoJHByb3BzLmljb24gPT09ICdjbG9zZScpXG4gICAgICAgID8gKF9vcGVuQmxvY2soKSwgX2NyZWF0ZUVsZW1lbnRCbG9jayhcImdcIiwgX2hvaXN0ZWRfNCwgWy4uLl9ob2lzdGVkXzddKSlcbiAgICAgICAgOiAoX29wZW5CbG9jaygpLCBfY3JlYXRlRWxlbWVudEJsb2NrKFwiZ1wiLCBfaG9pc3RlZF84LCBbLi4uX2hvaXN0ZWRfMTBdKSlcbiAgXSwgOCAvKiBQUk9QUyAqLywgX2hvaXN0ZWRfMSkpXG59IiwgImltcG9ydCBzY3JpcHQgZnJvbSBcIkQ6XFxcXEdpdFJlcG9zaXRvcnlcXFxcUWl1d2VuR2FkZ2V0c1xcXFxzcmNcXFxcVmFyaWFudEFsbHlEaWFsb2dcXFxcY29tcG9uZW50c1xcXFxWQUljb24udnVlP3R5cGU9c2NyaXB0XCI7aW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIkQ6XFxcXEdpdFJlcG9zaXRvcnlcXFxcUWl1d2VuR2FkZ2V0c1xcXFxzcmNcXFxcVmFyaWFudEFsbHlEaWFsb2dcXFxcY29tcG9uZW50c1xcXFxWQUljb24udnVlP3R5cGU9dGVtcGxhdGVcIjsgc2NyaXB0LnJlbmRlciA9IHJlbmRlcjtzY3JpcHQuX19maWxlID0gXCJzcmNcXFxcVmFyaWFudEFsbHlEaWFsb2dcXFxcY29tcG9uZW50c1xcXFxWQUljb24udnVlXCI7ZXhwb3J0IGRlZmF1bHQgc2NyaXB0OyIsICJpbXBvcnQgeyBvcGVuQmxvY2sgYXMgX29wZW5CbG9jaywgY3JlYXRlQmxvY2sgYXMgX2NyZWF0ZUJsb2NrLCBjcmVhdGVDb21tZW50Vk5vZGUgYXMgX2NyZWF0ZUNvbW1lbnRWTm9kZSwgcmVuZGVyU2xvdCBhcyBfcmVuZGVyU2xvdCwgY3JlYXRlRWxlbWVudEJsb2NrIGFzIF9jcmVhdGVFbGVtZW50QmxvY2ssIG5vcm1hbGl6ZUNsYXNzIGFzIF9ub3JtYWxpemVDbGFzcywgcHVzaFNjb3BlSWQgYXMgX3B1c2hTY29wZUlkLCBwb3BTY29wZUlkIGFzIF9wb3BTY29wZUlkIH0gZnJvbSBcInZ1ZVwiXG5cbmNvbnN0IF93aXRoU2NvcGVJZCA9IG4gPT4gKF9wdXNoU2NvcGVJZChcImRhdGEtdi1iYjc3MzRiMVwiKSxuPW4oKSxfcG9wU2NvcGVJZCgpLG4pXG5jb25zdCBfaG9pc3RlZF8xID0ge1xuICBrZXk6IDEsXG4gIGNsYXNzOiBcInZhLWJ1dHRvbl9fdGV4dFwiXG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZW5kZXIoX2N0eCwgX2NhY2hlLCAkcHJvcHMsICRzZXR1cCwgJGRhdGEsICRvcHRpb25zKSB7XG4gIHJldHVybiAoX29wZW5CbG9jaygpLCBfY3JlYXRlRWxlbWVudEJsb2NrKFwiYnV0dG9uXCIsIHtcbiAgICBjbGFzczogX25vcm1hbGl6ZUNsYXNzKFtcInZhLWJ1dHRvblwiLCB7XG5cdFx0XHQndmEtYnV0dG9uLS1hY3Rpb24tcHJvZ3Jlc3NpdmUnOiAkcHJvcHMuYWN0aW9uID09PSAncHJvZ3Jlc3NpdmUnLFxuXHRcdFx0J3ZhLWJ1dHRvbi0td2VpZ2h0LXF1aWV0JzogJHByb3BzLndlaWdodCA9PT0gJ3F1aWV0Jyxcblx0XHR9XSksXG4gICAgb25DbGljazogX2NhY2hlWzBdIHx8IChfY2FjaGVbMF0gPSAkZXZlbnQgPT4gKF9jdHguJGVtaXQoJ2NsaWNrJykpKVxuICB9LCBbXG4gICAgKCRwcm9wcy5pY29uICE9PSB1bmRlZmluZWQpXG4gICAgICA/IChfb3BlbkJsb2NrKCksIF9jcmVhdGVCbG9jaygkc2V0dXBbXCJWQUljb25cIl0sIHtcbiAgICAgICAgICBrZXk6IDAsXG4gICAgICAgICAgY2xhc3M6IFwidmEtYnV0dG9uX19pY29uXCIsXG4gICAgICAgICAgaWNvbjogJHByb3BzLmljb25cbiAgICAgICAgfSwgbnVsbCwgOCAvKiBQUk9QUyAqLywgW1wiaWNvblwiXSkpXG4gICAgICA6IF9jcmVhdGVDb21tZW50Vk5vZGUoXCJ2LWlmXCIsIHRydWUpLFxuICAgIChfY3R4LiRzbG90c1snZGVmYXVsdCddKVxuICAgICAgPyAoX29wZW5CbG9jaygpLCBfY3JlYXRlRWxlbWVudEJsb2NrKFwic3BhblwiLCBfaG9pc3RlZF8xLCBbXG4gICAgICAgICAgX3JlbmRlclNsb3QoX2N0eC4kc2xvdHMsIFwiZGVmYXVsdFwiLCB7fSwgdW5kZWZpbmVkLCB0cnVlKVxuICAgICAgICBdKSlcbiAgICAgIDogX2NyZWF0ZUNvbW1lbnRWTm9kZShcInYtaWZcIiwgdHJ1ZSksXG4gICAgKCRwcm9wcy5pbmRpY2F0b3IgIT09IHVuZGVmaW5lZClcbiAgICAgID8gKF9vcGVuQmxvY2soKSwgX2NyZWF0ZUJsb2NrKCRzZXR1cFtcIlZBSWNvblwiXSwge1xuICAgICAgICAgIGtleTogMixcbiAgICAgICAgICBjbGFzczogXCJ2YS1idXR0b25fX2luZGljYXRvclwiLFxuICAgICAgICAgIGljb246ICRwcm9wcy5pbmRpY2F0b3IsXG4gICAgICAgICAgc2l6ZTogMTZcbiAgICAgICAgfSwgbnVsbCwgOCAvKiBQUk9QUyAqLywgW1wiaWNvblwiXSkpXG4gICAgICA6IF9jcmVhdGVDb21tZW50Vk5vZGUoXCJ2LWlmXCIsIHRydWUpXG4gIF0sIDIgLyogQ0xBU1MgKi8pKVxufSIsICJpbXBvcnQgc2NyaXB0IGZyb20gXCJEOlxcXFxHaXRSZXBvc2l0b3J5XFxcXFFpdXdlbkdhZGdldHNcXFxcc3JjXFxcXFZhcmlhbnRBbGx5RGlhbG9nXFxcXGNvbXBvbmVudHNcXFxcVkFCdXR0b24udnVlP3R5cGU9c2NyaXB0XCI7aW1wb3J0IFwiRDpcXFxcR2l0UmVwb3NpdG9yeVxcXFxRaXV3ZW5HYWRnZXRzXFxcXHNyY1xcXFxWYXJpYW50QWxseURpYWxvZ1xcXFxjb21wb25lbnRzXFxcXFZBQnV0dG9uLnZ1ZT90eXBlPXN0eWxlJmluZGV4PTBcIjtpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiRDpcXFxcR2l0UmVwb3NpdG9yeVxcXFxRaXV3ZW5HYWRnZXRzXFxcXHNyY1xcXFxWYXJpYW50QWxseURpYWxvZ1xcXFxjb21wb25lbnRzXFxcXFZBQnV0dG9uLnZ1ZT90eXBlPXRlbXBsYXRlXCI7IHNjcmlwdC5yZW5kZXIgPSByZW5kZXI7c2NyaXB0Ll9fZmlsZSA9IFwic3JjXFxcXFZhcmlhbnRBbGx5RGlhbG9nXFxcXGNvbXBvbmVudHNcXFxcVkFCdXR0b24udnVlXCI7c2NyaXB0Ll9fc2NvcGVJZCA9IFwiZGF0YS12LWJiNzczNGIxXCI7ZXhwb3J0IGRlZmF1bHQgc2NyaXB0OyIsICJpbXBvcnQgeyByZW5kZXJTbG90IGFzIF9yZW5kZXJTbG90LCBUcmFuc2l0aW9uIGFzIF9UcmFuc2l0aW9uLCB3aXRoQ3R4IGFzIF93aXRoQ3R4LCBvcGVuQmxvY2sgYXMgX29wZW5CbG9jaywgY3JlYXRlQmxvY2sgYXMgX2NyZWF0ZUJsb2NrIH0gZnJvbSBcInZ1ZVwiXG5cbmV4cG9ydCBmdW5jdGlvbiByZW5kZXIoX2N0eCwgX2NhY2hlKSB7XG4gIHJldHVybiAoX29wZW5CbG9jaygpLCBfY3JlYXRlQmxvY2soX1RyYW5zaXRpb24sIHtcbiAgICBuYW1lOiBcInZhLWZhZGVcIixcbiAgICBtb2RlOiBcIm91dC1pblwiXG4gIH0sIHtcbiAgICBkZWZhdWx0OiBfd2l0aEN0eCgoKSA9PiBbXG4gICAgICBfcmVuZGVyU2xvdChfY3R4LiRzbG90cywgXCJkZWZhdWx0XCIsIHt9LCB1bmRlZmluZWQsIHRydWUpXG4gICAgXSksXG4gICAgXzogMyAvKiBGT1JXQVJERUQgKi9cbiAgfSkpXG59IiwgImNvbnN0IHNjcmlwdCA9IHt9O2ltcG9ydCBcIkQ6XFxcXEdpdFJlcG9zaXRvcnlcXFxcUWl1d2VuR2FkZ2V0c1xcXFxzcmNcXFxcVmFyaWFudEFsbHlEaWFsb2dcXFxcY29tcG9uZW50c1xcXFxWQUZhZGVUcmFuc2l0aW9uLnZ1ZT90eXBlPXN0eWxlJmluZGV4PTBcIjtpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiRDpcXFxcR2l0UmVwb3NpdG9yeVxcXFxRaXV3ZW5HYWRnZXRzXFxcXHNyY1xcXFxWYXJpYW50QWxseURpYWxvZ1xcXFxjb21wb25lbnRzXFxcXFZBRmFkZVRyYW5zaXRpb24udnVlP3R5cGU9dGVtcGxhdGVcIjsgc2NyaXB0LnJlbmRlciA9IHJlbmRlcjtzY3JpcHQuX19maWxlID0gXCJzcmNcXFxcVmFyaWFudEFsbHlEaWFsb2dcXFxcY29tcG9uZW50c1xcXFxWQUZhZGVUcmFuc2l0aW9uLnZ1ZVwiO3NjcmlwdC5fX3Njb3BlSWQgPSBcImRhdGEtdi1iYjljNTc1MVwiO2V4cG9ydCBkZWZhdWx0IHNjcmlwdDsiLCAiaW1wb3J0IHtjb21wdXRlZH0gZnJvbSAndnVlJztcbmltcG9ydCBtZXNzYWdlcyBmcm9tICcuLi9tZXNzYWdlcy5qc29uJztcbmltcG9ydCB7d2dVc2VyVmFyaWFudH0gZnJvbSAnLi4vbW9kdWxlcy91dGlscyc7XG5cbi8vIEludGVyZmFjZSB2YXJpYW50IG9mIHZhcmlhbnQgcHJvbXB0XG5jb25zdCBpMThuVmFyaWFudCA9IGNvbXB1dGVkKCgpID0+IHtcblx0aWYgKHdnVXNlclZhcmlhbnQudmFsdWUgPT09ICd6aCcpIHtcblx0XHQvLyBObyBjb252ZXJzaW9uOiB1c2UgcmFuZG9tbHkgc2VsZWN0ZWQgdmFyaWFudFxuXHRcdHJldHVybiBNYXRoLnJhbmRvbSgpID4gMC41ID8gJ2hhbnMnIDogJ2hhbnQnO1xuXHR9XG5cdGlmIChbJ3poLWhhbnQnLCAnemgtdHcnLCAnemgtaGsnLCAnemgtbW8nXS5pbmNsdWRlcyh3Z1VzZXJWYXJpYW50LnZhbHVlKSkge1xuXHRcdHJldHVybiAnaGFudCc7XG5cdH1cblxuXHRyZXR1cm4gJ2hhbnMnO1xufSk7XG5cbmZ1bmN0aW9uIHVzZUkxOG4oa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuXHRjb25zdCBjdXJyZW50TXNnc0dyb3VwOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0gbWVzc2FnZXNbaTE4blZhcmlhbnQudmFsdWVdO1xuXHRyZXR1cm4gY3VycmVudE1zZ3NHcm91cFtrZXldID8/IGtleTtcbn1cblxuZXhwb3J0IHt1c2VJMThuIGFzIGRlZmF1bHQsIGkxOG5WYXJpYW50fTtcbiIsICJ7XG5cdFwidmFyaWFudHNcIjoge1xuXHRcdFwiemgtY25cIjogXCLkuK3lm73lpKfpmYbnroDkvZNcIixcblx0XHRcInpoLXNnXCI6IFwi5paw5Yqg5Z2h566A5L2TXCIsXG5cdFx0XCJ6aC1teVwiOiBcIumprOadpeilv+S6mueugOS9k1wiLFxuXHRcdFwiemgtaGtcIjogXCLkuK3lnIvpppnmuK/nuYHpq5RcIixcblx0XHRcInpoLW1vXCI6IFwi5Lit5ZyL5r6z6ZaA57mB6auUXCIsXG5cdFx0XCJ6aC10d1wiOiBcIuS4reWci+iHuueBo+e5gemrlFwiXG5cdH0sXG5cdFwiaGFuc1wiOiB7XG5cdFx0XCJzcGFjZVwiOiBcIlwiLFxuXHRcdFwiY2xvc2VcIjogXCLlhbPpl61cIixcblx0XHRcInZwLmhlYWRlclwiOiBcIuaIkeS7rOaUr+aMgVwiLFxuXHRcdFwidnAuaGVhZGVyLmFsdFwiOiBcIuiusOS9j+atpOWPmOS9k++8n1wiLFxuXHRcdFwidnAubWFpblwiOiBcIumAieWPluWGheWuueeahOivreiogOWPmOS9k1wiLFxuXHRcdFwidnAubWFpbi5hbHRcIjogXCLku6XlkI7pg73kvb/nlKjmraTlj5jkvZPlkYjnjrDlhoXlrrlcIixcblx0XHRcInZwLm1haW4uZXh0XCI6IFwi5L+d5a2Y5oKo5YGP5aW955qE5Lit5paH6K+t6KiA5Y+Y5L2T77yM5Lul6YG/5YWN5pi+56S6566A57mB5re35p2C55qE5YaF5a6577yM5o+Q5L6b5pyA5L2z55qE6ZiF6K+75L2T6aqM44CCXCIsXG5cdFx0XCJ2cC5idXR0b24ub2tcIjogXCLnoa7lrppcIixcblx0XHRcInZwLmJ1dHRvbi5vdGhlclwiOiBcIuWFtuS7llwiXG5cdH0sXG5cdFwiaGFudFwiOiB7XG5cdFx0XCJzcGFjZVwiOiBcIlwiLFxuXHRcdFwiY2xvc2VcIjogXCLpl5zplolcIixcblx0XHRcInZwLmhlYWRlclwiOiBcIuaIkeWAkeaUr+aPtFwiLFxuXHRcdFwidnAuaGVhZGVyLmFsdFwiOiBcIuiomOS9j+atpOiuiumrlO+8n1wiLFxuXHRcdFwidnAubWFpblwiOiBcIumBuOWPluWFp+WuueeahOiqnuiogOiuiumrlFwiLFxuXHRcdFwidnAubWFpbi5hbHRcIjogXCLku6Xlvozpg73kvb/nlKjmraTororpq5TlkYjnj77lhaflrrlcIixcblx0XHRcInZwLm1haW4uZXh0XCI6IFwi5YSy5a2Y5oKo5YGP5aW955qE5Lit5paH6Kqe6KiA6K6K6auU77yM5Lul6YG/5YWN6aGv56S657Ch57mB5re36Zuc55qE5YWn5a6577yM5o+Q5L6b5pyA5L2z55qE6Zax6K6A6auU6amX44CCXCIsXG5cdFx0XCJ2cC5idXR0b24ub2tcIjogXCLnorrlrppcIixcblx0XHRcInZwLmJ1dHRvbi5vdGhlclwiOiBcIuWFtuS7llwiXG5cdH1cbn1cbiIsICJpbXBvcnQge3R5cGUgVmFsaWRWYXJpYW50fSBmcm9tICdleHQuZ2FkZ2V0LlZhcmlhbnRBbGx5JztcbmltcG9ydCB7Y29tcHV0ZWQsIHJlZn0gZnJvbSAndnVlJztcblxuY29uc3QgVkFMSURfVkFSSUFOVFMgPSBbJ3poLWNuJywgJ3poLXNnJywgJ3poLW15JywgJ3poLXR3JywgJ3poLWhrJywgJ3poLW1vJ10gYXMgY29uc3Q7XG5cbi8vIFdyYXAgd2dVc2VyVmFyaWFudCBpbiBhIHJlZiBmb3IgZGVidWdnaW5nIHB1cnBvc2VzLlxuLy8gSXQgaGFzIG5vIHJlYWN0aXZpdHkgaW4gcHJvZHVjdGlvbi4gKGNoYW5nZXMgdG8gd2dVc2VyVmFyaWFudCB3aWxsIG5vdCBiZSByZWZsZWN0ZWQpXG4vLyB3Z1VzZXJWYXJpYW50IGNhbiBiZSBudWxsLCBzbyBmYWxscyBiYWNrIHRvIGFuIGVtcHR5IHN0cmluZy5cbmNvbnN0IHdnVXNlclZhcmlhbnQgPSByZWYobXcuY29uZmlnLmdldCgnd2dVc2VyVmFyaWFudCcpID8/ICcnKTtcblxuZnVuY3Rpb24gaXNNb2JpbGVEZXZpY2UoKTogYm9vbGVhbiB7XG5cdC8vIEJyb3dzZXIgc3VwcG9ydDpcblx0Ly8gQ2hyb21pdW0gb24gc29tZSBBbmRyb2lkIGRldmljZSAoZS5nLiBTYW1zdW5nKSBoYXMgXCIoaG92ZXI6IGhvdmVyKVwiIHNldFxuXHQvLyBTbyBjaGVjayBwb2ludGVyIHRvZ2V0aGVyXG5cdHJldHVybiBtYXRjaE1lZGlhKCcoaG92ZXI6IG5vbmUpLCAocG9pbnRlcjogY29hcnNlKScpLm1hdGNoZXM7XG59XG5cbmZ1bmN0aW9uIGdldE1vdW50UG9pbnQoKTogRWxlbWVudCB7XG5cdHN3aXRjaCAobXcuY29uZmlnLmdldCgnc2tpbicpKSB7XG5cdFx0Y2FzZSAndmVjdG9yLTIwMjInOlxuXHRcdFx0cmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5tdy1wYWdlLWNvbnRhaW5lcicpWzBdID8/IGRvY3VtZW50LmJvZHk7XG5cdFx0Y2FzZSAnZ29uZ2JpJzpcblx0XHRcdHJldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjbXctY29udGVudC1ibG9jaycpID8/IGRvY3VtZW50LmJvZHk7XG5cdFx0ZGVmYXVsdDpcblx0XHRcdHJldHVybiBkb2N1bWVudC5ib2R5O1xuXHR9XG59XG5cbmNvbnN0IGluZmVycmVkVmFyaWFudCA9IGNvbXB1dGVkKCgpID0+IHtcblx0aWYgKChWQUxJRF9WQVJJQU5UUyBhcyBSZWFkb25seUFycmF5PHN0cmluZz4pLmluY2x1ZGVzKHdnVXNlclZhcmlhbnQudmFsdWUpKSB7XG5cdFx0cmV0dXJuIHdnVXNlclZhcmlhbnQudmFsdWUgYXMgVmFsaWRWYXJpYW50O1xuXHR9XG5cdHJldHVybiBudWxsO1xufSk7XG5cbi8qKlxuICogU2h1ZmZsZSBiZXR3ZWVuIGFsbCB2YWxpZCB2YXJpYW50cy5cbiAqXG4gKiBAcGFyYW0gbGFzdCBsYXN0IHNodWZmbGVkIHZhcmlhbnQsIHVzZWQgdG8gcHJldmVudCBkdXBsaWNhdGlvbnNcbiAqIEByZXR1cm5zIHNodWZmbGVkIHZhcmlhbnRcbiAqL1xuZnVuY3Rpb24gc2h1ZmZsZVZhcmlhbnQobGFzdD86IFZhbGlkVmFyaWFudCk6IFZhbGlkVmFyaWFudCB7XG5cdGNvbnN0IHRhcmdldEFycmF5ID0gWy4uLlZBTElEX1ZBUklBTlRTXS5maWx0ZXIoKGkpID0+IHtcblx0XHRyZXR1cm4gaSAhPT0gbGFzdDtcblx0fSk7XG5cdGNvbnN0IHJhbmRvbUluZGV4ID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogdGFyZ2V0QXJyYXkubGVuZ3RoKTtcblx0cmV0dXJuIHRhcmdldEFycmF5W3JhbmRvbUluZGV4XSE7XG59XG5cbmV4cG9ydCB7VkFMSURfVkFSSUFOVFMsIHdnVXNlclZhcmlhbnQsIGlzTW9iaWxlRGV2aWNlLCBnZXRNb3VudFBvaW50LCBpbmZlcnJlZFZhcmlhbnQsIHNodWZmbGVWYXJpYW50fTtcbiIsICJsZXQgY291bnRlciA9IDA7XG5cbi8qKlxuICogUmV0dXJuIGEgdW5pcXVlIGVsZW1lbnQgSUQgb24gZWFjaCBjYWxsLlxuICpcbiAqIEByZXR1cm5zIGlkXG4gKi9cbmZ1bmN0aW9uIHVzZVVuaXF1ZUlkKCk6IHN0cmluZyB7XG5cdHJldHVybiBgdmEtJHtjb3VudGVyKyt9YDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgdXNlVW5pcXVlSWQ7XG4iLCAiaW1wb3J0IHtSZWYsIHJlZiwgd2F0Y2h9IGZyb20gJ3Z1ZSc7XG5pbXBvcnQge3R5cGUgVmFsaWRWYXJpYW50fSBmcm9tICdleHQuZ2FkZ2V0LlZhcmlhbnRBbGx5JztcbmltcG9ydCB7aW5mZXJyZWRWYXJpYW50LCBzaHVmZmxlVmFyaWFudH0gZnJvbSAnLi4vbW9kdWxlcy91dGlscyc7XG5cbmNvbnN0IElOVEVSVkFMID0gMyAqIDEwMDA7XG5cbi8qKlxuICogUmV0dXJuIGEgcmVmIHdoaWNoIHNodWZmbGUgYmV0d2VlbiBhbGwgcG9zc2libGUgdmFyaWFudHMuXG4gKlxuICogQHBhcmFtIGlzRnJlZXplZCBzaG91bGQgc2h1ZmZsaW5nIHBhdXNlIG9yIG5vdFxuICovXG5mdW5jdGlvbiB1c2VTaHVmZmxlZFZhcmlhbnQoaXNGcmVlemVkOiBSZWY8Ym9vbGVhbj4pOiBSZWY8VmFsaWRWYXJpYW50PiB7XG5cdGNvbnN0IHJlc3VsdCA9IHJlZjxWYWxpZFZhcmlhbnQ+KHNodWZmbGVWYXJpYW50KCkpO1xuXHRsZXQgaWQ6IG51bWJlcjtcblxuXHR3YXRjaChcblx0XHRpc0ZyZWV6ZWQsXG5cdFx0KG5ld1ZhbHVlKSA9PiB7XG5cdFx0XHRpZiAobmV3VmFsdWUpIHtcblx0XHRcdFx0Y2xlYXJJbnRlcnZhbChpZCk7XG5cdFx0XHRcdC8vIEF0dGVtcHQgdG8gZnJlZXplIGF0IGluZmVycmVkIHZhcmlhbnQgYXQgYSBiZXN0IGVmZm9ydFxuXHRcdFx0XHQvLyBUaGlzIHNob3VsZCBiZSBtb3N0IGNhc2VzXG5cdFx0XHRcdHJlc3VsdC52YWx1ZSA9IGluZmVycmVkVmFyaWFudC52YWx1ZSA/PyBzaHVmZmxlVmFyaWFudCgpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0aWQgPSB3aW5kb3cuc2V0SW50ZXJ2YWwoKCkgPT4ge1xuXHRcdFx0XHRcdHJlc3VsdC52YWx1ZSA9IHNodWZmbGVWYXJpYW50KHJlc3VsdC52YWx1ZSk7XG5cdFx0XHRcdH0sIElOVEVSVkFMKTtcblx0XHRcdH1cblx0XHR9LFxuXHRcdHtpbW1lZGlhdGU6IHRydWV9XG5cdCk7XG5cblx0cmV0dXJuIHJlc3VsdDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgdXNlU2h1ZmZsZWRWYXJpYW50O1xuIiwgImltcG9ydCB7V3JpdGFibGVDb21wdXRlZFJlZiwgY29tcHV0ZWR9IGZyb20gJ3Z1ZSc7XG5cbi8qKlxuICogUmV0dXJuIGEgY29tcHV0ZWQgcHJvcGVydHkgdGhhdCByZXR1cm5zIHRoZSBjb3JyZXNwb25kaW5nIHByb3AgdmFsdWUgd2hlbiBpcyBhY2Nlc3NlZFxuICogYW5kIGZpcmVzIGFuIGV2ZW50IHdoZW4gaXMgc2V0LiBVc2VkIHdpdGggdi1tb2RlbC5cbiAqXG4gKiBAcGFyYW0gcHJvcHMgcHJvcHMgZmllbGQgb2YgYSBjb21wb25lbnRcbiAqIEBwYXJhbSBlbWl0IGVtaXQgZnVuY3Rpb24gb2YgYSBjb21wb25lbnRcbiAqIEBwYXJhbSBuYW1lIG5hbWUgb2YgdGhlIHByb3BcbiAqIEByZXR1cm4gd3JhcHBlZCBjb21wdXRlciBwcm9wZXJ0eVxuICovXG5mdW5jdGlvbiB1c2VNb2RlbFdyYXBwZXI8VCBleHRlbmRzIHN0cmluZywgUCBleHRlbmRzIFJlY29yZDxULCB1bmtub3duPj4oXG5cdHByb3BzOiBQLFxuXHRlbWl0OiAoZXZlbnQ6IGB1cGRhdGU6JHtUfWAsIHZhbHVlOiBQW1RdKSA9PiB2b2lkLFxuXHRuYW1lOiBUID0gJ21vZGVsVmFsdWUnIGFzIFRcbik6IFdyaXRhYmxlQ29tcHV0ZWRSZWY8UFtUXT4ge1xuXHRyZXR1cm4gY29tcHV0ZWQoe1xuXHRcdGdldCgpIHtcblx0XHRcdHJldHVybiBwcm9wc1tuYW1lXTtcblx0XHR9LFxuXHRcdHNldCh2YWx1ZSkge1xuXHRcdFx0ZW1pdChgdXBkYXRlOiR7bmFtZX1gLCB2YWx1ZSk7XG5cdFx0fSxcblx0fSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHVzZU1vZGVsV3JhcHBlcjtcbiIsICJpbXBvcnQge1JlZiwgV2F0Y2hTb3VyY2UsIGNvbXB1dGVkLCBzaGFsbG93UmVmLCB3YXRjaH0gZnJvbSAndnVlJztcblxuLyoqXG4gKiBDcmVhdGUgYSByZWYgdGhhdCwgY2FuIGJlIGluZGVwZW5kZW50bHkgdXBkYXRlZCwgYnV0IHdoZW4gaXRzIGRlZmF1bHRcbiAqIHZhbHVlIGNoYW5nZXMsIGl0IGlzIHJlc3RvcmVkIHRvIGl0cyAobmV3KSBkZWZhdWx0IHZhbHVlLlxuICpcbiAqIFVzZWQgZm9yIGRlYnVnZ2luZy5cbiAqL1xuZnVuY3Rpb24gdXNlRGVmYXVsdDxUPihkZWZhdWx0VmFsdWU6IFdhdGNoU291cmNlPFQ+KTogUmVmPFQ+IHtcblx0Y29uc3QgcmVhbFJlZiA9IHNoYWxsb3dSZWY8VD4odHlwZW9mIGRlZmF1bHRWYWx1ZSA9PT0gJ2Z1bmN0aW9uJyA/IGRlZmF1bHRWYWx1ZSgpIDogZGVmYXVsdFZhbHVlLnZhbHVlKTtcblxuXHR3YXRjaChcblx0XHRkZWZhdWx0VmFsdWUsXG5cdFx0KG5ld1ZhbHVlKSA9PiB7XG5cdFx0XHRyZWFsUmVmLnZhbHVlID0gbmV3VmFsdWU7XG5cdFx0fSxcblx0XHR7ZGVlcDogdHJ1ZX1cblx0KTtcblxuXHRyZXR1cm4gY29tcHV0ZWQoe1xuXHRcdGdldCgpIHtcblx0XHRcdHJldHVybiByZWFsUmVmLnZhbHVlO1xuXHRcdH0sXG5cdFx0c2V0KG5ld1ZhbHVlKSB7XG5cdFx0XHRyZWFsUmVmLnZhbHVlID0gbmV3VmFsdWU7XG5cdFx0fSxcblx0fSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHVzZURlZmF1bHQ7XG4iLCAiaW1wb3J0IHsgY3JlYXRlVk5vZGUgYXMgX2NyZWF0ZVZOb2RlLCB0b0Rpc3BsYXlTdHJpbmcgYXMgX3RvRGlzcGxheVN0cmluZywgY3JlYXRlRWxlbWVudFZOb2RlIGFzIF9jcmVhdGVFbGVtZW50Vk5vZGUsIG9wZW5CbG9jayBhcyBfb3BlbkJsb2NrLCBjcmVhdGVFbGVtZW50QmxvY2sgYXMgX2NyZWF0ZUVsZW1lbnRCbG9jaywgY3JlYXRlQ29tbWVudFZOb2RlIGFzIF9jcmVhdGVDb21tZW50Vk5vZGUsIHdpdGhDdHggYXMgX3dpdGhDdHgsIGNyZWF0ZVRleHRWTm9kZSBhcyBfY3JlYXRlVGV4dFZOb2RlLCByZW5kZXJMaXN0IGFzIF9yZW5kZXJMaXN0LCBGcmFnbWVudCBhcyBfRnJhZ21lbnQsIG5vcm1hbGl6ZUNsYXNzIGFzIF9ub3JtYWxpemVDbGFzcywgY3JlYXRlQmxvY2sgYXMgX2NyZWF0ZUJsb2NrLCBUcmFuc2l0aW9uIGFzIF9UcmFuc2l0aW9uLCBwdXNoU2NvcGVJZCBhcyBfcHVzaFNjb3BlSWQsIHBvcFNjb3BlSWQgYXMgX3BvcFNjb3BlSWQgfSBmcm9tIFwidnVlXCJcblxuY29uc3QgX3dpdGhTY29wZUlkID0gbiA9PiAoX3B1c2hTY29wZUlkKFwiZGF0YS12LTVhNDRjYzc1XCIpLG49bigpLF9wb3BTY29wZUlkKCksbilcbmNvbnN0IF9ob2lzdGVkXzEgPSBbXCJsYW5nXCIsIFwiYXJpYS1sYWJlbGxlZGJ5XCIsIFwiYXJpYS1kZXNjcmliZWRieVwiXVxuY29uc3QgX2hvaXN0ZWRfMiA9IFtcImlkXCJdXG5jb25zdCBfaG9pc3RlZF8zID0gLyojX19QVVJFX18qLyBfd2l0aFNjb3BlSWQoKCkgPT4gLyojX19QVVJFX18qL19jcmVhdGVFbGVtZW50Vk5vZGUoXCJiclwiLCBudWxsLCBudWxsLCAtMSAvKiBIT0lTVEVEICovKSlcbmNvbnN0IF9ob2lzdGVkXzQgPSBbXCJsYW5nXCJdXG5jb25zdCBfaG9pc3RlZF81ID0gW1wiaWRcIl1cbmNvbnN0IF9ob2lzdGVkXzYgPSB7IGNsYXNzOiBcInZhLXZhcmlhbnQtcHJvbXB0X19vcHRpb25zXCIgfVxuY29uc3QgX2hvaXN0ZWRfNyA9IHsgY2xhc3M6IFwidmEtdmFyaWFudC1wcm9tcHRfX2Zvb3RlclwiIH1cbmNvbnN0IF9ob2lzdGVkXzggPSB7IGNsYXNzOiBcInZhLXBhcmEgdmEtcGFyYS0tc3VidGxlXCIgfVxuXG5leHBvcnQgZnVuY3Rpb24gcmVuZGVyKF9jdHgsIF9jYWNoZSwgJHByb3BzLCAkc2V0dXAsICRkYXRhLCAkb3B0aW9ucykge1xuICByZXR1cm4gKF9vcGVuQmxvY2soKSwgX2NyZWF0ZUJsb2NrKF9UcmFuc2l0aW9uLCB7XG4gICAgbmFtZTogXCJ2YS12YXJpYW50LXByb21wdFwiLFxuICAgIGFwcGVhcjogXCJcIlxuICB9LCB7XG4gICAgZGVmYXVsdDogX3dpdGhDdHgoKCkgPT4gW1xuICAgICAgKCRwcm9wcy5vcGVuKVxuICAgICAgICA/IChfb3BlbkJsb2NrKCksIF9jcmVhdGVFbGVtZW50QmxvY2soXCJkaXZcIiwge1xuICAgICAgICAgICAga2V5OiAwLFxuICAgICAgICAgICAgcmVmOiBcInByb21wdFwiLFxuICAgICAgICAgICAgbGFuZzogYHpoLSR7JHNldHVwLmkxOG5WYXJpYW50fWAsXG4gICAgICAgICAgICBjbGFzczogXCJ2YS12YXJpYW50LXByb21wdFwiLFxuICAgICAgICAgICAgcm9sZTogXCJkaWFsb2dcIixcbiAgICAgICAgICAgIFwiYXJpYS1tb2RhbFwiOiBcImZhbHNlXCIsXG4gICAgICAgICAgICBcImFyaWEtbGFiZWxsZWRieVwiOiAkc2V0dXAudGl0bGVJZCxcbiAgICAgICAgICAgIFwiYXJpYS1kZXNjcmliZWRieVwiOiAkc2V0dXAuZGVzY0lkXG4gICAgICAgICAgfSwgW1xuICAgICAgICAgICAgX2NyZWF0ZVZOb2RlKCRzZXR1cFtcIlZBQnV0dG9uXCJdLCB7XG4gICAgICAgICAgICAgIGNsYXNzOiBcInZhLXZhcmlhbnQtcHJvbXB0X19jbG9zZVwiLFxuICAgICAgICAgICAgICB3ZWlnaHQ6IFwicXVpZXRcIixcbiAgICAgICAgICAgICAgaWNvbjogXCJjbG9zZVwiLFxuICAgICAgICAgICAgICB0aXRsZTogJHNldHVwLnVzZUkxOG4oJ2Nsb3NlJyksXG4gICAgICAgICAgICAgIFwiYXJpYS1sYWJlbFwiOiAkc2V0dXAudXNlSTE4bignY2xvc2UnKSxcbiAgICAgICAgICAgICAgZGlzYWJsZWQ6ICRwcm9wcy5kaXNhYmxlZCxcbiAgICAgICAgICAgICAgb25DbGljazogJHNldHVwLm9wdE91dEFuZENsb3NlXG4gICAgICAgICAgICB9LCBudWxsLCA4IC8qIFBST1BTICovLCBbXCJ0aXRsZVwiLCBcImFyaWEtbGFiZWxcIiwgXCJkaXNhYmxlZFwiXSksXG4gICAgICAgICAgICBfY3JlYXRlRWxlbWVudFZOb2RlKFwiaDJcIiwge1xuICAgICAgICAgICAgICBpZDogJHNldHVwLnRpdGxlSWQsXG4gICAgICAgICAgICAgIGNsYXNzOiBcInZhLXZhcmlhbnQtcHJvbXB0X190aXRsZSB2YS10aXRsZVwiXG4gICAgICAgICAgICB9LCBbXG4gICAgICAgICAgICAgIF9jcmVhdGVUZXh0Vk5vZGUoX3RvRGlzcGxheVN0cmluZygkc2V0dXAudXNlSTE4bigkc2V0dXAuaXNWYXJpYW50TmFycm93ZWQgPyAndnAuaGVhZGVyLmFsdCcgOiAndnAuaGVhZGVyJykpLCAxIC8qIFRFWFQgKi8pLFxuICAgICAgICAgICAgICBfaG9pc3RlZF8zLFxuICAgICAgICAgICAgICBfY3JlYXRlVk5vZGUoJHNldHVwW1wiVkFGYWRlVHJhbnNpdGlvblwiXSwgbnVsbCwge1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IF93aXRoQ3R4KCgpID0+IFtcbiAgICAgICAgICAgICAgICAgICghJHNldHVwLmlzVmFyaWFudE5hcnJvd2VkKVxuICAgICAgICAgICAgICAgICAgICA/IChfb3BlbkJsb2NrKCksIF9jcmVhdGVFbGVtZW50QmxvY2soXCJzcGFuXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleTogJHNldHVwLnNodWZmbGVkVmFyaWFudCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhbmc6IGB6aC0keyRzZXR1cC5zaHVmZmxlZFZhcmlhbnR9YCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiBcInZhLXZhcmlhbnQtcHJvbXB0X190aXRsZV9fdmFyaWFudFwiXG4gICAgICAgICAgICAgICAgICAgICAgfSwgX3RvRGlzcGxheVN0cmluZygkc2V0dXAubWVzc2FnZXMudmFyaWFudHNbJHNldHVwLnNodWZmbGVkVmFyaWFudF0pLCA5IC8qIFRFWFQsIFBST1BTICovLCBfaG9pc3RlZF80KSlcbiAgICAgICAgICAgICAgICAgICAgOiBfY3JlYXRlQ29tbWVudFZOb2RlKFwidi1pZlwiLCB0cnVlKVxuICAgICAgICAgICAgICAgIF0pLFxuICAgICAgICAgICAgICAgIF86IDEgLyogU1RBQkxFICovXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICBdLCA4IC8qIFBST1BTICovLCBfaG9pc3RlZF8yKSxcbiAgICAgICAgICAgIF9jcmVhdGVFbGVtZW50Vk5vZGUoXCJwXCIsIHtcbiAgICAgICAgICAgICAgaWQ6ICRzZXR1cC5kZXNjSWQsXG4gICAgICAgICAgICAgIGNsYXNzOiBcInZhLXZhcmlhbnQtcHJvbXB0X19kZXNjIHZhLXBhcmFcIlxuICAgICAgICAgICAgfSwgX3RvRGlzcGxheVN0cmluZygkc2V0dXAudXNlSTE4bigkc2V0dXAuaXNWYXJpYW50TmFycm93ZWQgPyAndnAubWFpbi5hbHQnIDogJ3ZwLm1haW4nKSksIDkgLyogVEVYVCwgUFJPUFMgKi8sIF9ob2lzdGVkXzUpLFxuICAgICAgICAgICAgX2NyZWF0ZUVsZW1lbnRWTm9kZShcImRpdlwiLCBfaG9pc3RlZF82LCBbXG4gICAgICAgICAgICAgIF9jcmVhdGVDb21tZW50Vk5vZGUoXCIgaW5mZXJyZWRWYXJpYW50IGlzIG5vbi1udWxsLCBndWFyZGVkIGJ5IGlzVmFyaWFudE5hcnJvd2VkIFwiKSxcbiAgICAgICAgICAgICAgKF9vcGVuQmxvY2sodHJ1ZSksIF9jcmVhdGVFbGVtZW50QmxvY2soX0ZyYWdtZW50LCBudWxsLCBfcmVuZGVyTGlzdCgkc2V0dXAuaXNWYXJpYW50TmFycm93ZWQgJiYgJHNldHVwLmluZmVycmVkVmFyaWFudCAhPT0gbnVsbFxuXHRcdFx0XHRcdFx0PyBbJHNldHVwLmluZmVycmVkVmFyaWFudF1cblx0XHRcdFx0XHRcdDogJHNldHVwLlZBTElEX1ZBUklBTlRTLCAodmFyaWFudCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiAoX29wZW5CbG9jaygpLCBfY3JlYXRlQmxvY2soJHNldHVwW1wiVkFCdXR0b25cIl0sIHtcbiAgICAgICAgICAgICAgICAgIGtleTogdmFyaWFudCxcbiAgICAgICAgICAgICAgICAgIGNsYXNzOiBfbm9ybWFsaXplQ2xhc3MoW1widmEtdmFyaWFudC1wcm9tcHRfX29wdGlvbnNfX2J1dHRvblwiLCB7J3ZhLXZhcmlhbnQtcHJvbXB0X19vcHRpb25zX19idXR0b24tLXByaW1hcnknOiAkc2V0dXAuaXNWYXJpYW50TmFycm93ZWR9XSksXG4gICAgICAgICAgICAgICAgICBpbmRpY2F0b3I6IFwiYXJyb3dOZXh0XCIsXG4gICAgICAgICAgICAgICAgICB3ZWlnaHQ6IFwicXVpZXRcIixcbiAgICAgICAgICAgICAgICAgIGFjdGlvbjogXCJwcm9ncmVzc2l2ZVwiLFxuICAgICAgICAgICAgICAgICAgbGFuZzogdmFyaWFudCxcbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkOiAkcHJvcHMuZGlzYWJsZWQsXG4gICAgICAgICAgICAgICAgICBvbkNsaWNrOiAkZXZlbnQgPT4gKCRzZXR1cC5zZWxlY3QodmFyaWFudCkpXG4gICAgICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgICAgZGVmYXVsdDogX3dpdGhDdHgoKCkgPT4gW1xuICAgICAgICAgICAgICAgICAgICBfY3JlYXRlVGV4dFZOb2RlKF90b0Rpc3BsYXlTdHJpbmcoJHNldHVwLm1lc3NhZ2VzLnZhcmlhbnRzW3ZhcmlhbnRdKSwgMSAvKiBURVhUICovKVxuICAgICAgICAgICAgICAgICAgXSksXG4gICAgICAgICAgICAgICAgICBfOiAyIC8qIERZTkFNSUMgKi9cbiAgICAgICAgICAgICAgICB9LCAxMDMyIC8qIFBST1BTLCBEWU5BTUlDX1NMT1RTICovLCBbXCJjbGFzc1wiLCBcImxhbmdcIiwgXCJkaXNhYmxlZFwiLCBcIm9uQ2xpY2tcIl0pKVxuICAgICAgICAgICAgICB9KSwgMTI4IC8qIEtFWUVEX0ZSQUdNRU5UICovKSksXG4gICAgICAgICAgICAgICgkc2V0dXAuaXNWYXJpYW50TmFycm93ZWQpXG4gICAgICAgICAgICAgICAgPyAoX29wZW5CbG9jaygpLCBfY3JlYXRlQmxvY2soJHNldHVwW1wiVkFCdXR0b25cIl0sIHtcbiAgICAgICAgICAgICAgICAgICAga2V5OiAwLFxuICAgICAgICAgICAgICAgICAgICBjbGFzczogXCJ2YS12YXJpYW50LXByb21wdF9fb3B0aW9uc19fYnV0dG9uXCIsXG4gICAgICAgICAgICAgICAgICAgIGluZGljYXRvcjogXCJhcnJvd05leHRcIixcbiAgICAgICAgICAgICAgICAgICAgd2VpZ2h0OiBcInF1aWV0XCIsXG4gICAgICAgICAgICAgICAgICAgIGFjdGlvbjogXCJwcm9ncmVzc2l2ZVwiLFxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZDogJHByb3BzLmRpc2FibGVkLFxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOiBfY2FjaGVbMF0gfHwgKF9jYWNoZVswXSA9ICRldmVudCA9PiAoJHNldHVwLmlzVmFyaWFudE5hcnJvd2VkID0gZmFsc2UpKVxuICAgICAgICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OiBfd2l0aEN0eCgoKSA9PiBbXG4gICAgICAgICAgICAgICAgICAgICAgX2NyZWF0ZVRleHRWTm9kZShfdG9EaXNwbGF5U3RyaW5nKCRzZXR1cC51c2VJMThuKCd2cC5idXR0b24ub3RoZXInKSksIDEgLyogVEVYVCAqLylcbiAgICAgICAgICAgICAgICAgICAgXSksXG4gICAgICAgICAgICAgICAgICAgIF86IDEgLyogU1RBQkxFICovXG4gICAgICAgICAgICAgICAgICB9LCA4IC8qIFBST1BTICovLCBbXCJkaXNhYmxlZFwiXSkpXG4gICAgICAgICAgICAgICAgOiBfY3JlYXRlQ29tbWVudFZOb2RlKFwidi1pZlwiLCB0cnVlKVxuICAgICAgICAgICAgXSksXG4gICAgICAgICAgICBfY3JlYXRlRWxlbWVudFZOb2RlKFwiZm9vdGVyXCIsIF9ob2lzdGVkXzcsIFtcbiAgICAgICAgICAgICAgX2NyZWF0ZUVsZW1lbnRWTm9kZShcInBcIiwgX2hvaXN0ZWRfOCwgX3RvRGlzcGxheVN0cmluZygkc2V0dXAudXNlSTE4bigndnAubWFpbi5leHQnKSksIDEgLyogVEVYVCAqLylcbiAgICAgICAgICAgIF0pXG4gICAgICAgICAgXSwgOCAvKiBQUk9QUyAqLywgX2hvaXN0ZWRfMSkpXG4gICAgICAgIDogX2NyZWF0ZUNvbW1lbnRWTm9kZShcInYtaWZcIiwgdHJ1ZSlcbiAgICBdKSxcbiAgICBfOiAxIC8qIFNUQUJMRSAqL1xuICB9KSlcbn0iLCAiaW1wb3J0IHNjcmlwdCBmcm9tIFwiRDpcXFxcR2l0UmVwb3NpdG9yeVxcXFxRaXV3ZW5HYWRnZXRzXFxcXHNyY1xcXFxWYXJpYW50QWxseURpYWxvZ1xcXFxjb21wb25lbnRzXFxcXFZBVmFyaWFudFByb21wdC52dWU/dHlwZT1zY3JpcHRcIjtpbXBvcnQgXCJEOlxcXFxHaXRSZXBvc2l0b3J5XFxcXFFpdXdlbkdhZGdldHNcXFxcc3JjXFxcXFZhcmlhbnRBbGx5RGlhbG9nXFxcXGNvbXBvbmVudHNcXFxcVkFWYXJpYW50UHJvbXB0LnZ1ZT90eXBlPXN0eWxlJmluZGV4PTBcIjtpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiRDpcXFxcR2l0UmVwb3NpdG9yeVxcXFxRaXV3ZW5HYWRnZXRzXFxcXHNyY1xcXFxWYXJpYW50QWxseURpYWxvZ1xcXFxjb21wb25lbnRzXFxcXFZBVmFyaWFudFByb21wdC52dWU/dHlwZT10ZW1wbGF0ZVwiOyBzY3JpcHQucmVuZGVyID0gcmVuZGVyO3NjcmlwdC5fX2ZpbGUgPSBcInNyY1xcXFxWYXJpYW50QWxseURpYWxvZ1xcXFxjb21wb25lbnRzXFxcXFZBVmFyaWFudFByb21wdC52dWVcIjtzY3JpcHQuX19zY29wZUlkID0gXCJkYXRhLXYtNWE0NGNjNzVcIjtleHBvcnQgZGVmYXVsdCBzY3JpcHQ7IiwgIjxzY3JpcHQgc2V0dXAgbGFuZz1cInRzXCI+XG5pbXBvcnQge3JlZn0gZnJvbSAndnVlJztcbmltcG9ydCB7dHlwZSBWYWxpZFZhcmlhbnR9IGZyb20gJ2V4dC5nYWRnZXQuVmFyaWFudEFsbHknO1xuaW1wb3J0IFZBQnV0dG9uIGZyb20gJy4vVkFCdXR0b24udnVlJztcbmltcG9ydCBWQVNlbGVjdCBmcm9tICcuL1ZBU2VsZWN0LnZ1ZSc7XG5pbXBvcnQgdXNlSTE4biwge2kxOG5WYXJpYW50fSBmcm9tICcuLi9jb21wb3NhYmxlcy91c2VJMThuJztcbmltcG9ydCB1c2VVbmlxdWVJZCBmcm9tICcuLi9jb21wb3NhYmxlcy91c2VVbmlxdWVJZCc7XG5pbXBvcnQge1ZBTElEX1ZBUklBTlRTLCBpbmZlcnJlZFZhcmlhbnQsIHNodWZmbGVWYXJpYW50fSBmcm9tICcuLi9tb2R1bGVzL3V0aWxzJztcbmltcG9ydCBtZXNzYWdlcyBmcm9tICcuLi9tZXNzYWdlcy5qc29uJztcbmltcG9ydCB1c2VNb2RlbFdyYXBwZXIgZnJvbSAnLi4vY29tcG9zYWJsZXMvdXNlTW9kZWxXcmFwcGVyJztcbmltcG9ydCB1c2VEZWZhdWx0IGZyb20gJy4uL2NvbXBvc2FibGVzL3VzZURlZmF1bHQnO1xuXG5jb25zdCBwcm9wcyA9IHdpdGhEZWZhdWx0cyhcblx0ZGVmaW5lUHJvcHM8e1xuXHRcdG9wZW46IGJvb2xlYW47XG5cdFx0ZGlzYWJsZWQ/OiBib29sZWFuO1xuXHR9PigpLFxuXHR7XG5cdFx0ZGlzYWJsZWQ6IGZhbHNlLFxuXHR9XG4pO1xuY29uc3QgZW1pdCA9IGRlZmluZUVtaXRzPHtcblx0KGU6ICd1cGRhdGU6b3BlbicsIHZhbHVlOiBib29sZWFuKTogdm9pZDtcblx0KGU6ICd1cGRhdGU6ZGlzYWJsZWQnLCB2YWx1ZTogYm9vbGVhbik6IHZvaWQ7XG5cdChlOiAnc2VsZWN0JywgdmFyaWFudDogVmFsaWRWYXJpYW50KTogdm9pZDtcblx0KGU6ICdvcHRvdXQnKTogdm9pZDtcbn0+KCk7XG5cbmNvbnN0IHByb21wdCA9IHJlZjxIVE1MRWxlbWVudCB8IG51bGw+KG51bGwpO1xuY29uc3QgdGl0bGVJZCA9IHVzZVVuaXF1ZUlkKCk7XG5jb25zdCBzZWxlY3RlZFZhcmlhbnQgPSB1c2VEZWZhdWx0KCgpID0+IGluZmVycmVkVmFyaWFudC52YWx1ZSA/PyBzaHVmZmxlVmFyaWFudCgpKTtcbmNvbnN0IGlzT3BlbiA9IHVzZU1vZGVsV3JhcHBlcihwcm9wcywgZW1pdCwgJ29wZW4nKTtcbmNvbnN0IGlzRGlzYWJsZWQgPSB1c2VNb2RlbFdyYXBwZXIocHJvcHMsIGVtaXQsICdkaXNhYmxlZCcpO1xuXG5mdW5jdGlvbiBvcHRPdXRBbmRDbG9zZSgpIHtcblx0ZW1pdCgnb3B0b3V0Jyk7XG5cdGlzT3Blbi52YWx1ZSA9IGZhbHNlO1xufVxuXG5mdW5jdGlvbiBzZWxlY3QodmFyaWFudDogVmFsaWRWYXJpYW50KSB7XG5cdGlzRGlzYWJsZWQudmFsdWUgPSB0cnVlO1xuXHRlbWl0KCdzZWxlY3QnLCB2YXJpYW50KTtcbn1cbjwvc2NyaXB0PlxuXG48dGVtcGxhdGU+XG5cdDxUcmFuc2l0aW9uIG5hbWU9XCJ2YS12YXJpYW50LXByb21wdC1tb2JpbGVcIiBhcHBlYXI+XG5cdFx0PGRpdlxuXHRcdFx0di1pZj1cIm9wZW5cIlxuXHRcdFx0cmVmPVwicHJvbXB0XCJcblx0XHRcdDpsYW5nPVwiYHpoLSR7aTE4blZhcmlhbnR9YFwiXG5cdFx0XHRjbGFzcz1cInZhLXZhcmlhbnQtcHJvbXB0LW1vYmlsZVwiXG5cdFx0XHRyb2xlPVwiZGlhbG9nXCJcblx0XHRcdGFyaWEtbW9kYWw9XCJmYWxzZVwiXG5cdFx0XHQ6YXJpYS1sYWJlbGxlZGJ5PVwidGl0bGVJZFwiXG5cdFx0PlxuXHRcdFx0PGRpdiBjbGFzcz1cInZhLXZhcmlhbnQtcHJvbXB0LW1vYmlsZV9faGVhZGVyXCI+XG5cdFx0XHRcdDxoMiA6aWQ9XCJ0aXRsZUlkXCIgY2xhc3M9XCJ2YS12YXJpYW50LXByb21wdC1tb2JpbGVfX2hlYWRlcl9fdGl0bGUgdmEtdGl0bGVcIj5cblx0XHRcdFx0XHR7eyB1c2VJMThuKCd2cC5tYWluJykgfX1cblx0XHRcdFx0PC9oMj5cblx0XHRcdFx0PFZBQnV0dG9uXG5cdFx0XHRcdFx0Y2xhc3M9XCJ2YS12YXJpYW50LXByb21wdC1tb2JpbGVfX2hlYWRlcl9fY2xvc2VcIlxuXHRcdFx0XHRcdHdlaWdodD1cInF1aWV0XCJcblx0XHRcdFx0XHRpY29uPVwiY2xvc2VcIlxuXHRcdFx0XHRcdDp0aXRsZT1cInVzZUkxOG4oJ2Nsb3NlJylcIlxuXHRcdFx0XHRcdDphcmlhLWxhYmVsPVwidXNlSTE4bignY2xvc2UnKVwiXG5cdFx0XHRcdFx0OmRpc2FibGVkPVwiZGlzYWJsZWRcIlxuXHRcdFx0XHRcdEBjbGljaz1cIm9wdE91dEFuZENsb3NlXCJcblx0XHRcdFx0Lz5cblx0XHRcdDwvZGl2PlxuXHRcdFx0PGRpdiBjbGFzcz1cInZhLXZhcmlhbnQtcHJvbXB0LW1vYmlsZV9fbWFpblwiPlxuXHRcdFx0XHQ8VkFTZWxlY3Rcblx0XHRcdFx0XHR2LW1vZGVsPVwic2VsZWN0ZWRWYXJpYW50XCJcblx0XHRcdFx0XHRjbGFzcz1cInZhLXZhcmlhbnQtcHJvbXB0LW1vYmlsZV9fbWFpbl9fc2VsZWN0XCJcblx0XHRcdFx0XHQ6bGFuZz1cInNlbGVjdGVkVmFyaWFudFwiXG5cdFx0XHRcdFx0OmRpc2FibGVkPVwiZGlzYWJsZWRcIlxuXHRcdFx0XHRcdDphcmlhLWxhYmVsbGVkYnk9XCJ0aXRsZUlkXCJcblx0XHRcdFx0PlxuXHRcdFx0XHRcdDxvcHRpb24gdi1mb3I9XCJ2YXJpYW50IGluIFZBTElEX1ZBUklBTlRTXCIgOmtleT1cInZhcmlhbnRcIiA6dmFsdWU9XCJ2YXJpYW50XCIgOmxhbmc9XCJ2YXJpYW50XCI+XG5cdFx0XHRcdFx0XHR7eyBtZXNzYWdlcy52YXJpYW50c1t2YXJpYW50XSB9fVxuXHRcdFx0XHRcdDwvb3B0aW9uPlxuXHRcdFx0XHQ8L1ZBU2VsZWN0PlxuXHRcdFx0XHQ8VkFCdXR0b25cblx0XHRcdFx0XHRjbGFzcz1cInZhLXZhcmlhbnQtcHJvbXB0LW1vYmlsZV9fbWFpbl9fYWN0aW9uXCJcblx0XHRcdFx0XHRhY3Rpb249XCJwcm9ncmVzc2l2ZVwiXG5cdFx0XHRcdFx0aWNvbj1cImFycm93TmV4dFwiXG5cdFx0XHRcdFx0OmRpc2FibGVkPVwiZGlzYWJsZWRcIlxuXHRcdFx0XHRcdEBjbGljaz1cInNlbGVjdChzZWxlY3RlZFZhcmlhbnQpXCJcblx0XHRcdFx0XHQ+e3sgdXNlSTE4bigndnAuYnV0dG9uLm9rJykgfX08L1ZBQnV0dG9uXG5cdFx0XHRcdD5cblx0XHRcdDwvZGl2PlxuXHRcdFx0PGZvb3RlciBjbGFzcz1cInZhLXZhcmlhbnQtcHJvbXB0LW1vYmlsZV9fZm9vdGVyXCI+XG5cdFx0XHRcdDxwIGNsYXNzPVwidmEtcGFyYSB2YS1wYXJhLS1zdWJ0bGVcIj5cblx0XHRcdFx0XHR7eyB1c2VJMThuKCd2cC5tYWluLmV4dCcpIH19XG5cdFx0XHRcdDwvcD5cblx0XHRcdDwvZm9vdGVyPlxuXHRcdDwvZGl2PlxuXHQ8L1RyYW5zaXRpb24+XG48L3RlbXBsYXRlPlxuXG48c3R5bGUgc2NvcGVkIGxhbmc9XCJsZXNzXCI+XG5AaW1wb3J0IChyZWZlcmVuY2UpICcuLi9zdHlsZXMvbWl4aW5zLmxlc3MnO1xuQGltcG9ydCAocmVmZXJlbmNlKSAnLi4vc3R5bGVzL3Rva2Vucy5sZXNzJztcblxuLnZhLXRpdGxlIHtcblx0Ym9yZGVyOiAwOyAvLyBSZXNldFxuXHRwYWRkaW5nOiAwOyAvLyBSZXNldFxuXHRvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xuXG5cdGZvbnQtc2l6ZTogQGZvbnQtc2l6ZS14eC1sYXJnZTtcblx0Zm9udC13ZWlnaHQ6IEBmb250LXdlaWdodC1ib2xkO1xuXHRtYXJnaW46IEBzcGFjaW5nLTUwIEBzcGFjaW5nLTA7XG5cdGNvbG9yOiBAY29sb3ItYmFzZTtcbn1cblxuLnZhLXBhcmEge1xuXHRvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xuXHRtYXJnaW4tdG9wOiBAc3BhY2luZy01MDtcblx0Y29sb3I6IEBjb2xvci1iYXNlO1xuXG5cdCYtLXN1YnRsZSB7XG5cdFx0Y29sb3I6IEBjb2xvci1zdWJ0bGU7XG5cdFx0Zm9udC1zaXplOiBAZm9udC1zaXplLXgtc21hbGw7XG5cdFx0bWFyZ2luLWJvdHRvbTogQHNwYWNpbmctMzU7XG5cdH1cbn1cblxuLnZhLXZhcmlhbnQtcHJvbXB0LW1vYmlsZSB7XG5cdGJveC1zaXppbmc6IEBib3gtc2l6aW5nLWJhc2U7XG5cdHotaW5kZXg6IEB6LWluZGV4LW92ZXJsYXk7XG5cdHBhZGRpbmc6IEBzcGFjaW5nLTUwIEBzcGFjaW5nLTEwMDtcblx0cG9zaXRpb246IGZpeGVkO1xuXHRsZWZ0OiBAc3BhY2luZy0wO1xuXHRyaWdodDogQHNwYWNpbmctMDtcblx0Ym90dG9tOiBAc3BhY2luZy0wO1xuXHRtYXJnaW46IEBzcGFjaW5nLTAgYXV0bztcblx0d2lkdGg6IDEwMCU7XG5cdG1heC13aWR0aDogNjAwcHg7XG5cdG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAyZW0pO1xuXG5cdG92ZXJmbG93OiBhdXRvO1xuXHRvdmVyc2Nyb2xsLWJlaGF2aW9yOiBub25lO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiBAYmFja2dyb3VuZC1jb2xvci1iYXNlO1xuXHRib3JkZXI6IEBib3JkZXItYmFzZTtcblx0Ym9yZGVyLXJhZGl1czogQGJvcmRlci1yYWRpdXMtYmFzZTtcblx0Ym94LXNoYWRvdzogQGJveC1zaGFkb3ctZHJvcC1tZWRpdW07XG5cdGZvbnQtZmFtaWx5OiBAZm9udC1mYW1pbHktc3lzdGVtLXNhbnM7XG5cdGZvbnQtc2l6ZTogMXJlbTsgLy8gUmVzZXRcblx0bGluZS1oZWlnaHQ6IG5vcm1hbDsgLy8gUmVzZXRcblxuXHQmX19oZWFkZXIge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblxuXHRcdCZfX3RpdGxlIHtcblx0XHRcdGZsZXg6IDE7XG5cdFx0XHRmb250LXNpemU6IEBmb250LXNpemUtbWVkaXVtO1xuXHRcdH1cblxuXHRcdCZfX2Nsb3NlIHtcblx0XHRcdHBhZGRpbmc6IEBzcGFjaW5nLXNob3J0aGFuZC1idXR0b24taWNvbi1vbmx5O1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiAtKEBzcGFjaW5nLWhvcml6b250YWwtYnV0dG9uLWljb24tb25seSArIDFweCk7XG5cdFx0fVxuXHR9XG5cblx0Jl9fbWFpbiB7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRtYXJnaW4tdG9wOiBAc3BhY2luZy0yNTtcblxuXHRcdCZfX3NlbGVjdCB7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IEBzcGFjaW5nLTc1O1xuXHRcdFx0ZmxleDogMTtcblx0XHR9XG5cblx0XHQmX19hY3Rpb24ge1xuXHRcdFx0ZmxleC1zaHJpbms6IDA7XG5cdFx0fVxuXHR9XG5cblx0Jl9fY2xvc2Uge1xuXHRcdHBhZGRpbmc6IEBzcGFjaW5nLXNob3J0aGFuZC1idXR0b24taWNvbi1vbmx5O1xuXHRcdGZsb2F0OiByaWdodDtcblx0XHRtYXJnaW4tcmlnaHQ6IC0oQHNwYWNpbmctaG9yaXpvbnRhbC1idXR0b24taWNvbi1vbmx5ICsgMXB4KTtcblx0fVxufVxuXG4vKiBQcm9tcHQgdHJhbnNpdGlvbiBlZmZlY3QgKi9cbi52YS12YXJpYW50LXByb21wdC1tb2JpbGUtZW50ZXItYWN0aXZlLFxuLnZhLXZhcmlhbnQtcHJvbXB0LW1vYmlsZS1sZWF2ZS1hY3RpdmUge1xuXHR0cmFuc2l0aW9uLXByb3BlcnR5OiBAdHJhbnNpdGlvbi1wcm9wZXJ0eS1sYXlvdXQ7XG5cdHRyYW5zaXRpb24tZHVyYXRpb246IEB0cmFuc2l0aW9uLWR1cmF0aW9uLW1lZGl1bTtcblx0dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IEB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbi1zeXN0ZW07XG59XG5cbi52YS12YXJpYW50LXByb21wdC1tb2JpbGUtZW50ZXItZnJvbSxcbi52YS12YXJpYW50LXByb21wdC1tb2JpbGUtbGVhdmUtdG8ge1xuXHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAwJSk7XG59XG48L3N0eWxlPlxuLi4vbW9kdWxlcy91dGlsc1xuIiwgImltcG9ydCB7IHJlbmRlclNsb3QgYXMgX3JlbmRlclNsb3QsIHZNb2RlbFNlbGVjdCBhcyBfdk1vZGVsU2VsZWN0LCB3aXRoRGlyZWN0aXZlcyBhcyBfd2l0aERpcmVjdGl2ZXMsIG9wZW5CbG9jayBhcyBfb3BlbkJsb2NrLCBjcmVhdGVFbGVtZW50QmxvY2sgYXMgX2NyZWF0ZUVsZW1lbnRCbG9jayB9IGZyb20gXCJ2dWVcIlxuXG5leHBvcnQgZnVuY3Rpb24gcmVuZGVyKF9jdHgsIF9jYWNoZSwgJHByb3BzLCAkc2V0dXAsICRkYXRhLCAkb3B0aW9ucykge1xuICByZXR1cm4gX3dpdGhEaXJlY3RpdmVzKChfb3BlbkJsb2NrKCksIF9jcmVhdGVFbGVtZW50QmxvY2soXCJzZWxlY3RcIiwge1xuICAgIFwib25VcGRhdGU6bW9kZWxWYWx1ZVwiOiBfY2FjaGVbMF0gfHwgKF9jYWNoZVswXSA9ICRldmVudCA9PiAoKCRzZXR1cC5tb2RlbFZhbHVlKSA9ICRldmVudCkpLFxuICAgIGNsYXNzOiBcInZhLXNlbGVjdFwiXG4gIH0sIFtcbiAgICBfcmVuZGVyU2xvdChfY3R4LiRzbG90cywgXCJkZWZhdWx0XCIsIHt9LCB1bmRlZmluZWQsIHRydWUpXG4gIF0sIDUxMiAvKiBORUVEX1BBVENIICovKSksIFtcbiAgICBbX3ZNb2RlbFNlbGVjdCwgJHNldHVwLm1vZGVsVmFsdWVdXG4gIF0pXG59IiwgImltcG9ydCBzY3JpcHQgZnJvbSBcIkQ6XFxcXEdpdFJlcG9zaXRvcnlcXFxcUWl1d2VuR2FkZ2V0c1xcXFxzcmNcXFxcVmFyaWFudEFsbHlEaWFsb2dcXFxcY29tcG9uZW50c1xcXFxWQVNlbGVjdC52dWU/dHlwZT1zY3JpcHRcIjtpbXBvcnQgXCJEOlxcXFxHaXRSZXBvc2l0b3J5XFxcXFFpdXdlbkdhZGdldHNcXFxcc3JjXFxcXFZhcmlhbnRBbGx5RGlhbG9nXFxcXGNvbXBvbmVudHNcXFxcVkFTZWxlY3QudnVlP3R5cGU9c3R5bGUmaW5kZXg9MFwiO2ltcG9ydCB7IHJlbmRlciB9IGZyb20gXCJEOlxcXFxHaXRSZXBvc2l0b3J5XFxcXFFpdXdlbkdhZGdldHNcXFxcc3JjXFxcXFZhcmlhbnRBbGx5RGlhbG9nXFxcXGNvbXBvbmVudHNcXFxcVkFTZWxlY3QudnVlP3R5cGU9dGVtcGxhdGVcIjsgc2NyaXB0LnJlbmRlciA9IHJlbmRlcjtzY3JpcHQuX19maWxlID0gXCJzcmNcXFxcVmFyaWFudEFsbHlEaWFsb2dcXFxcY29tcG9uZW50c1xcXFxWQVNlbGVjdC52dWVcIjtzY3JpcHQuX19zY29wZUlkID0gXCJkYXRhLXYtYzliNDY0NjBcIjtleHBvcnQgZGVmYXVsdCBzY3JpcHQ7IiwgImltcG9ydCB7IHRvRGlzcGxheVN0cmluZyBhcyBfdG9EaXNwbGF5U3RyaW5nLCBjcmVhdGVFbGVtZW50Vk5vZGUgYXMgX2NyZWF0ZUVsZW1lbnRWTm9kZSwgY3JlYXRlVk5vZGUgYXMgX2NyZWF0ZVZOb2RlLCByZW5kZXJMaXN0IGFzIF9yZW5kZXJMaXN0LCBGcmFnbWVudCBhcyBfRnJhZ21lbnQsIG9wZW5CbG9jayBhcyBfb3BlbkJsb2NrLCBjcmVhdGVFbGVtZW50QmxvY2sgYXMgX2NyZWF0ZUVsZW1lbnRCbG9jaywgd2l0aEN0eCBhcyBfd2l0aEN0eCwgY3JlYXRlVGV4dFZOb2RlIGFzIF9jcmVhdGVUZXh0Vk5vZGUsIGNyZWF0ZUNvbW1lbnRWTm9kZSBhcyBfY3JlYXRlQ29tbWVudFZOb2RlLCBUcmFuc2l0aW9uIGFzIF9UcmFuc2l0aW9uLCBjcmVhdGVCbG9jayBhcyBfY3JlYXRlQmxvY2ssIHB1c2hTY29wZUlkIGFzIF9wdXNoU2NvcGVJZCwgcG9wU2NvcGVJZCBhcyBfcG9wU2NvcGVJZCB9IGZyb20gXCJ2dWVcIlxuXG5jb25zdCBfd2l0aFNjb3BlSWQgPSBuID0+IChfcHVzaFNjb3BlSWQoXCJkYXRhLXYtNWNjNzg2NWJcIiksbj1uKCksX3BvcFNjb3BlSWQoKSxuKVxuY29uc3QgX2hvaXN0ZWRfMSA9IFtcImxhbmdcIiwgXCJhcmlhLWxhYmVsbGVkYnlcIl1cbmNvbnN0IF9ob2lzdGVkXzIgPSB7IGNsYXNzOiBcInZhLXZhcmlhbnQtcHJvbXB0LW1vYmlsZV9faGVhZGVyXCIgfVxuY29uc3QgX2hvaXN0ZWRfMyA9IFtcImlkXCJdXG5jb25zdCBfaG9pc3RlZF80ID0geyBjbGFzczogXCJ2YS12YXJpYW50LXByb21wdC1tb2JpbGVfX21haW5cIiB9XG5jb25zdCBfaG9pc3RlZF81ID0gW1widmFsdWVcIiwgXCJsYW5nXCJdXG5jb25zdCBfaG9pc3RlZF82ID0geyBjbGFzczogXCJ2YS12YXJpYW50LXByb21wdC1tb2JpbGVfX2Zvb3RlclwiIH1cbmNvbnN0IF9ob2lzdGVkXzcgPSB7IGNsYXNzOiBcInZhLXBhcmEgdmEtcGFyYS0tc3VidGxlXCIgfVxuXG5leHBvcnQgZnVuY3Rpb24gcmVuZGVyKF9jdHgsIF9jYWNoZSwgJHByb3BzLCAkc2V0dXAsICRkYXRhLCAkb3B0aW9ucykge1xuICByZXR1cm4gKF9vcGVuQmxvY2soKSwgX2NyZWF0ZUJsb2NrKF9UcmFuc2l0aW9uLCB7XG4gICAgbmFtZTogXCJ2YS12YXJpYW50LXByb21wdC1tb2JpbGVcIixcbiAgICBhcHBlYXI6IFwiXCJcbiAgfSwge1xuICAgIGRlZmF1bHQ6IF93aXRoQ3R4KCgpID0+IFtcbiAgICAgICgkcHJvcHMub3BlbilcbiAgICAgICAgPyAoX29wZW5CbG9jaygpLCBfY3JlYXRlRWxlbWVudEJsb2NrKFwiZGl2XCIsIHtcbiAgICAgICAgICAgIGtleTogMCxcbiAgICAgICAgICAgIHJlZjogXCJwcm9tcHRcIixcbiAgICAgICAgICAgIGxhbmc6IGB6aC0keyRzZXR1cC5pMThuVmFyaWFudH1gLFxuICAgICAgICAgICAgY2xhc3M6IFwidmEtdmFyaWFudC1wcm9tcHQtbW9iaWxlXCIsXG4gICAgICAgICAgICByb2xlOiBcImRpYWxvZ1wiLFxuICAgICAgICAgICAgXCJhcmlhLW1vZGFsXCI6IFwiZmFsc2VcIixcbiAgICAgICAgICAgIFwiYXJpYS1sYWJlbGxlZGJ5XCI6ICRzZXR1cC50aXRsZUlkXG4gICAgICAgICAgfSwgW1xuICAgICAgICAgICAgX2NyZWF0ZUVsZW1lbnRWTm9kZShcImRpdlwiLCBfaG9pc3RlZF8yLCBbXG4gICAgICAgICAgICAgIF9jcmVhdGVFbGVtZW50Vk5vZGUoXCJoMlwiLCB7XG4gICAgICAgICAgICAgICAgaWQ6ICRzZXR1cC50aXRsZUlkLFxuICAgICAgICAgICAgICAgIGNsYXNzOiBcInZhLXZhcmlhbnQtcHJvbXB0LW1vYmlsZV9faGVhZGVyX190aXRsZSB2YS10aXRsZVwiXG4gICAgICAgICAgICAgIH0sIF90b0Rpc3BsYXlTdHJpbmcoJHNldHVwLnVzZUkxOG4oJ3ZwLm1haW4nKSksIDkgLyogVEVYVCwgUFJPUFMgKi8sIF9ob2lzdGVkXzMpLFxuICAgICAgICAgICAgICBfY3JlYXRlVk5vZGUoJHNldHVwW1wiVkFCdXR0b25cIl0sIHtcbiAgICAgICAgICAgICAgICBjbGFzczogXCJ2YS12YXJpYW50LXByb21wdC1tb2JpbGVfX2hlYWRlcl9fY2xvc2VcIixcbiAgICAgICAgICAgICAgICB3ZWlnaHQ6IFwicXVpZXRcIixcbiAgICAgICAgICAgICAgICBpY29uOiBcImNsb3NlXCIsXG4gICAgICAgICAgICAgICAgdGl0bGU6ICRzZXR1cC51c2VJMThuKCdjbG9zZScpLFxuICAgICAgICAgICAgICAgIFwiYXJpYS1sYWJlbFwiOiAkc2V0dXAudXNlSTE4bignY2xvc2UnKSxcbiAgICAgICAgICAgICAgICBkaXNhYmxlZDogJHByb3BzLmRpc2FibGVkLFxuICAgICAgICAgICAgICAgIG9uQ2xpY2s6ICRzZXR1cC5vcHRPdXRBbmRDbG9zZVxuICAgICAgICAgICAgICB9LCBudWxsLCA4IC8qIFBST1BTICovLCBbXCJ0aXRsZVwiLCBcImFyaWEtbGFiZWxcIiwgXCJkaXNhYmxlZFwiXSlcbiAgICAgICAgICAgIF0pLFxuICAgICAgICAgICAgX2NyZWF0ZUVsZW1lbnRWTm9kZShcImRpdlwiLCBfaG9pc3RlZF80LCBbXG4gICAgICAgICAgICAgIF9jcmVhdGVWTm9kZSgkc2V0dXBbXCJWQVNlbGVjdFwiXSwge1xuICAgICAgICAgICAgICAgIG1vZGVsVmFsdWU6ICRzZXR1cC5zZWxlY3RlZFZhcmlhbnQsXG4gICAgICAgICAgICAgICAgXCJvblVwZGF0ZTptb2RlbFZhbHVlXCI6IF9jYWNoZVswXSB8fCAoX2NhY2hlWzBdID0gJGV2ZW50ID0+ICgoJHNldHVwLnNlbGVjdGVkVmFyaWFudCkgPSAkZXZlbnQpKSxcbiAgICAgICAgICAgICAgICBjbGFzczogXCJ2YS12YXJpYW50LXByb21wdC1tb2JpbGVfX21haW5fX3NlbGVjdFwiLFxuICAgICAgICAgICAgICAgIGxhbmc6ICRzZXR1cC5zZWxlY3RlZFZhcmlhbnQsXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ6ICRwcm9wcy5kaXNhYmxlZCxcbiAgICAgICAgICAgICAgICBcImFyaWEtbGFiZWxsZWRieVwiOiAkc2V0dXAudGl0bGVJZFxuICAgICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDogX3dpdGhDdHgoKCkgPT4gW1xuICAgICAgICAgICAgICAgICAgKF9vcGVuQmxvY2sodHJ1ZSksIF9jcmVhdGVFbGVtZW50QmxvY2soX0ZyYWdtZW50LCBudWxsLCBfcmVuZGVyTGlzdCgkc2V0dXAuVkFMSURfVkFSSUFOVFMsICh2YXJpYW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoX29wZW5CbG9jaygpLCBfY3JlYXRlRWxlbWVudEJsb2NrKFwib3B0aW9uXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICBrZXk6IHZhcmlhbnQsXG4gICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHZhcmlhbnQsXG4gICAgICAgICAgICAgICAgICAgICAgbGFuZzogdmFyaWFudFxuICAgICAgICAgICAgICAgICAgICB9LCBfdG9EaXNwbGF5U3RyaW5nKCRzZXR1cC5tZXNzYWdlcy52YXJpYW50c1t2YXJpYW50XSksIDkgLyogVEVYVCwgUFJPUFMgKi8sIF9ob2lzdGVkXzUpKVxuICAgICAgICAgICAgICAgICAgfSksIDEyOCAvKiBLRVlFRF9GUkFHTUVOVCAqLykpXG4gICAgICAgICAgICAgICAgXSksXG4gICAgICAgICAgICAgICAgXzogMSAvKiBTVEFCTEUgKi9cbiAgICAgICAgICAgICAgfSwgOCAvKiBQUk9QUyAqLywgW1wibW9kZWxWYWx1ZVwiLCBcImxhbmdcIiwgXCJkaXNhYmxlZFwiLCBcImFyaWEtbGFiZWxsZWRieVwiXSksXG4gICAgICAgICAgICAgIF9jcmVhdGVWTm9kZSgkc2V0dXBbXCJWQUJ1dHRvblwiXSwge1xuICAgICAgICAgICAgICAgIGNsYXNzOiBcInZhLXZhcmlhbnQtcHJvbXB0LW1vYmlsZV9fbWFpbl9fYWN0aW9uXCIsXG4gICAgICAgICAgICAgICAgYWN0aW9uOiBcInByb2dyZXNzaXZlXCIsXG4gICAgICAgICAgICAgICAgaWNvbjogXCJhcnJvd05leHRcIixcbiAgICAgICAgICAgICAgICBkaXNhYmxlZDogJHByb3BzLmRpc2FibGVkLFxuICAgICAgICAgICAgICAgIG9uQ2xpY2s6IF9jYWNoZVsxXSB8fCAoX2NhY2hlWzFdID0gJGV2ZW50ID0+ICgkc2V0dXAuc2VsZWN0KCRzZXR1cC5zZWxlY3RlZFZhcmlhbnQpKSlcbiAgICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IF93aXRoQ3R4KCgpID0+IFtcbiAgICAgICAgICAgICAgICAgIF9jcmVhdGVUZXh0Vk5vZGUoX3RvRGlzcGxheVN0cmluZygkc2V0dXAudXNlSTE4bigndnAuYnV0dG9uLm9rJykpLCAxIC8qIFRFWFQgKi8pXG4gICAgICAgICAgICAgICAgXSksXG4gICAgICAgICAgICAgICAgXzogMSAvKiBTVEFCTEUgKi9cbiAgICAgICAgICAgICAgfSwgOCAvKiBQUk9QUyAqLywgW1wiZGlzYWJsZWRcIl0pXG4gICAgICAgICAgICBdKSxcbiAgICAgICAgICAgIF9jcmVhdGVFbGVtZW50Vk5vZGUoXCJmb290ZXJcIiwgX2hvaXN0ZWRfNiwgW1xuICAgICAgICAgICAgICBfY3JlYXRlRWxlbWVudFZOb2RlKFwicFwiLCBfaG9pc3RlZF83LCBfdG9EaXNwbGF5U3RyaW5nKCRzZXR1cC51c2VJMThuKCd2cC5tYWluLmV4dCcpKSwgMSAvKiBURVhUICovKVxuICAgICAgICAgICAgXSlcbiAgICAgICAgICBdLCA4IC8qIFBST1BTICovLCBfaG9pc3RlZF8xKSlcbiAgICAgICAgOiBfY3JlYXRlQ29tbWVudFZOb2RlKFwidi1pZlwiLCB0cnVlKVxuICAgIF0pLFxuICAgIF86IDEgLyogU1RBQkxFICovXG4gIH0pKVxufSIsICJpbXBvcnQgc2NyaXB0IGZyb20gXCJEOlxcXFxHaXRSZXBvc2l0b3J5XFxcXFFpdXdlbkdhZGdldHNcXFxcc3JjXFxcXFZhcmlhbnRBbGx5RGlhbG9nXFxcXGNvbXBvbmVudHNcXFxcVkFWYXJpYW50UHJvbXB0TW9iaWxlLnZ1ZT90eXBlPXNjcmlwdFwiO2ltcG9ydCBcIkQ6XFxcXEdpdFJlcG9zaXRvcnlcXFxcUWl1d2VuR2FkZ2V0c1xcXFxzcmNcXFxcVmFyaWFudEFsbHlEaWFsb2dcXFxcY29tcG9uZW50c1xcXFxWQVZhcmlhbnRQcm9tcHRNb2JpbGUudnVlP3R5cGU9c3R5bGUmaW5kZXg9MFwiO2ltcG9ydCB7IHJlbmRlciB9IGZyb20gXCJEOlxcXFxHaXRSZXBvc2l0b3J5XFxcXFFpdXdlbkdhZGdldHNcXFxcc3JjXFxcXFZhcmlhbnRBbGx5RGlhbG9nXFxcXGNvbXBvbmVudHNcXFxcVkFWYXJpYW50UHJvbXB0TW9iaWxlLnZ1ZT90eXBlPXRlbXBsYXRlXCI7IHNjcmlwdC5yZW5kZXIgPSByZW5kZXI7c2NyaXB0Ll9fZmlsZSA9IFwic3JjXFxcXFZhcmlhbnRBbGx5RGlhbG9nXFxcXGNvbXBvbmVudHNcXFxcVkFWYXJpYW50UHJvbXB0TW9iaWxlLnZ1ZVwiO3NjcmlwdC5fX3Njb3BlSWQgPSBcImRhdGEtdi01Y2M3ODY1YlwiO2V4cG9ydCBkZWZhdWx0IHNjcmlwdDsiLCAiaW1wb3J0IHsgb3BlbkJsb2NrIGFzIF9vcGVuQmxvY2ssIGNyZWF0ZUJsb2NrIGFzIF9jcmVhdGVCbG9jaywgY3JlYXRlQ29tbWVudFZOb2RlIGFzIF9jcmVhdGVDb21tZW50Vk5vZGUsIFRlbGVwb3J0IGFzIF9UZWxlcG9ydCwgRnJhZ21lbnQgYXMgX0ZyYWdtZW50LCBjcmVhdGVFbGVtZW50QmxvY2sgYXMgX2NyZWF0ZUVsZW1lbnRCbG9jayB9IGZyb20gXCJ2dWVcIlxuXG5leHBvcnQgZnVuY3Rpb24gcmVuZGVyKF9jdHgsIF9jYWNoZSwgJHByb3BzLCAkc2V0dXAsICRkYXRhLCAkb3B0aW9ucykge1xuICByZXR1cm4gKF9vcGVuQmxvY2soKSwgX2NyZWF0ZUVsZW1lbnRCbG9jayhfRnJhZ21lbnQsIG51bGwsIFtcbiAgICAoX29wZW5CbG9jaygpLCBfY3JlYXRlQmxvY2soX1RlbGVwb3J0LCB7IHRvOiAkc2V0dXAuZGVza3RvcE1vdW50UG9pbnQgfSwgW1xuICAgICAgKCEkc2V0dXAuaXNNb2JpbGUpXG4gICAgICAgID8gKF9vcGVuQmxvY2soKSwgX2NyZWF0ZUJsb2NrKCRzZXR1cFtcIlZBVmFyaWFudFByb21wdFwiXSwge1xuICAgICAgICAgICAga2V5OiAwLFxuICAgICAgICAgICAgb3BlbjogJHNldHVwLmlzT3BlbixcbiAgICAgICAgICAgIFwib25VcGRhdGU6b3BlblwiOiBfY2FjaGVbMF0gfHwgKF9jYWNoZVswXSA9ICRldmVudCA9PiAoKCRzZXR1cC5pc09wZW4pID0gJGV2ZW50KSksXG4gICAgICAgICAgICBkaXNhYmxlZDogJHNldHVwLmlzRGlzYWJsZWQsXG4gICAgICAgICAgICBcIm9uVXBkYXRlOmRpc2FibGVkXCI6IF9jYWNoZVsxXSB8fCAoX2NhY2hlWzFdID0gJGV2ZW50ID0+ICgoJHNldHVwLmlzRGlzYWJsZWQpID0gJGV2ZW50KSksXG4gICAgICAgICAgICBcImF1dG8tY2xvc2VcIjogZmFsc2UsXG4gICAgICAgICAgICBvbk9wdG91dDogJHNldHVwLm9uT3B0T3V0LFxuICAgICAgICAgICAgb25TZWxlY3Q6ICRzZXR1cC5zZXRWYXJpYW50XG4gICAgICAgICAgfSwgbnVsbCwgOCAvKiBQUk9QUyAqLywgW1wib3BlblwiLCBcImRpc2FibGVkXCJdKSlcbiAgICAgICAgOiBfY3JlYXRlQ29tbWVudFZOb2RlKFwidi1pZlwiLCB0cnVlKVxuICAgIF0sIDggLyogUFJPUFMgKi8sIFtcInRvXCJdKSksXG4gICAgX2NyZWF0ZUNvbW1lbnRWTm9kZShcIiBUZWxlcG9ydCB0byBib2R5IGJlY2F1c2UgdGhleSBhcmUgYWx3YXlzIGZsb2F0ZWQgYXQgYm90dG9tIFwiKSxcbiAgICAoX29wZW5CbG9jaygpLCBfY3JlYXRlQmxvY2soX1RlbGVwb3J0LCB7IHRvOiBcImJvZHlcIiB9LCBbXG4gICAgICAoJHNldHVwLmlzTW9iaWxlKVxuICAgICAgICA/IChfb3BlbkJsb2NrKCksIF9jcmVhdGVCbG9jaygkc2V0dXBbXCJWQVZhcmlhbnRQcm9tcHRNb2JpbGVcIl0sIHtcbiAgICAgICAgICAgIGtleTogMCxcbiAgICAgICAgICAgIG9wZW46ICRzZXR1cC5pc09wZW4sXG4gICAgICAgICAgICBcIm9uVXBkYXRlOm9wZW5cIjogX2NhY2hlWzJdIHx8IChfY2FjaGVbMl0gPSAkZXZlbnQgPT4gKCgkc2V0dXAuaXNPcGVuKSA9ICRldmVudCkpLFxuICAgICAgICAgICAgZGlzYWJsZWQ6ICRzZXR1cC5pc0Rpc2FibGVkLFxuICAgICAgICAgICAgXCJvblVwZGF0ZTpkaXNhYmxlZFwiOiBfY2FjaGVbM10gfHwgKF9jYWNoZVszXSA9ICRldmVudCA9PiAoKCRzZXR1cC5pc0Rpc2FibGVkKSA9ICRldmVudCkpLFxuICAgICAgICAgICAgb25PcHRvdXQ6ICRzZXR1cC5vbk9wdE91dCxcbiAgICAgICAgICAgIG9uU2VsZWN0OiAkc2V0dXAuc2V0VmFyaWFudFxuICAgICAgICAgIH0sIG51bGwsIDggLyogUFJPUFMgKi8sIFtcIm9wZW5cIiwgXCJkaXNhYmxlZFwiXSkpXG4gICAgICAgIDogX2NyZWF0ZUNvbW1lbnRWTm9kZShcInYtaWZcIiwgdHJ1ZSlcbiAgICBdKSlcbiAgXSwgNjQgLyogU1RBQkxFX0ZSQUdNRU5UICovKSlcbn0iLCAiaW1wb3J0IHNjcmlwdCBmcm9tIFwiRDpcXFxcR2l0UmVwb3NpdG9yeVxcXFxRaXV3ZW5HYWRnZXRzXFxcXHNyY1xcXFxWYXJpYW50QWxseURpYWxvZ1xcXFxBcHAudnVlP3R5cGU9c2NyaXB0XCI7aW1wb3J0IFwiRDpcXFxcR2l0UmVwb3NpdG9yeVxcXFxRaXV3ZW5HYWRnZXRzXFxcXHNyY1xcXFxWYXJpYW50QWxseURpYWxvZ1xcXFxBcHAudnVlP3R5cGU9c3R5bGUmaW5kZXg9MFwiO2ltcG9ydCB7IHJlbmRlciB9IGZyb20gXCJEOlxcXFxHaXRSZXBvc2l0b3J5XFxcXFFpdXdlbkdhZGdldHNcXFxcc3JjXFxcXFZhcmlhbnRBbGx5RGlhbG9nXFxcXEFwcC52dWU/dHlwZT10ZW1wbGF0ZVwiOyBzY3JpcHQucmVuZGVyID0gcmVuZGVyO3NjcmlwdC5fX2ZpbGUgPSBcInNyY1xcXFxWYXJpYW50QWxseURpYWxvZ1xcXFxBcHAudnVlXCI7ZXhwb3J0IGRlZmF1bHQgc2NyaXB0OyJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxlQUF3QkMsUUFBQSxLQUFBOztBQ0N4QixJQUFBQyxlQUFrQkQsUUFBQSxLQUFBO0FBQ2xCLElBQUFFLG9CQUFpRUYsUUFBQSx3QkFBQTs7QUNEakUsSUFBQUcsZUFBeUJILFFBQUEsS0FBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ0R6QixJQUFBSSxjQUF5S0osUUFBQSxLQUFBO0FBRXpLLElBQU1LLGFBQWEsQ0FBQyxTQUFTLFFBQVE7QUFDckMsSUFBTUMsYUFBYTtFQUFFQyxLQUFLO0FBQUU7QUFDNUIsSUFBTUMsYUFBMEIsb0JBQUFKLFlBQUFLO0VBQW9CO0VBQVE7SUFBRUMsR0FBRztFQUFnaEI7RUFBRztFQUFNOztBQUFnQjtBQUMxbUIsSUFBTUMsYUFBYTtFQUFFSixLQUFLO0FBQUU7QUFDNUIsSUFBTUssYUFBMEIsb0JBQUFSLFlBQUFLO0VBQW9CO0VBQVE7SUFBRUMsR0FBRztFQUE4QztFQUFHO0VBQU07O0FBQWdCO0FBQ3hJLElBQU1HLGFBQTBCLG9CQUFBVCxZQUFBSztFQUFvQjtFQUFRO0lBQUVDLEdBQUc7RUFBZ0Q7RUFBRztFQUFNOztBQUFnQjtBQUMxSSxJQUFNSSxhQUFhLENBQ2pCRixZQUNBQyxVQUFBO0FBRUYsSUFBTUUsYUFBYTtFQUFFUixLQUFLO0FBQUU7QUFDNUIsSUFBTVMsYUFBMEIsb0JBQUFaLFlBQUFLO0VBQW9CO0VBQVE7SUFBRUMsR0FBRztFQUF5RDtFQUFHO0VBQU07O0FBQWdCO0FBQ25KLElBQU1PLGNBQWMsQ0FDbEJELFVBQUE7QUFHSyxTQUFTRSxPQUFPQyxNQUFNQyxRQUFRQyxRQUFRQyxRQUFRQyxPQUFPQyxVQUFVO0FBQ3BFLFVBQUEsR0FBUXBCLFlBQUFxQixXQUFXLElBQUEsR0FBR3JCLFlBQUFzQixvQkFBb0IsT0FBTztJQUMvQ0MsT0FBTztJQUNQQyxPQUFPO0lBQ1AsZUFBZTtJQUNmQyxPQUFPUixPQUFPUztJQUNkQyxRQUFRVixPQUFPUztJQUNmRSxTQUFTO0lBQ1QsZUFBZTtFQUNqQixHQUFHLENBQ0FYLE9BQU9ZLFNBQVMsV0FBQSxHQUNaN0IsWUFBQXFCLFdBQVcsSUFBQSxHQUFHckIsWUFBQXNCLG9CQUFvQixLQUFLcEIsWUFBWSxFQUFBLEdBQ2xERixZQUFBOEIsb0JBQW9CLGtCQUFrQixHQUN0QzFCLGFBQUEsR0FDQUosWUFBQThCLG9CQUFvQixpQkFBaUIsQ0FBQSxDQUN0QyxLQUNBYixPQUFPWSxTQUFTLFlBQUEsR0FDZDdCLFlBQUFxQixXQUFXLElBQUEsR0FBR3JCLFlBQUFzQixvQkFBb0IsS0FBS2YsWUFBWSxDQUFDLEdBQUdHLFVBQVUsQ0FBQyxPQUFBLEdBQ2xFVixZQUFBcUIsV0FBVyxJQUFBLEdBQUdyQixZQUFBc0Isb0JBQW9CLEtBQUtYLFlBQVksQ0FBQyxHQUFHRSxXQUFXLENBQUMsRUFBQSxHQUN6RSxHQUFlWixVQUFVO0FBQzlCOztBQ3RDMk84QixlQUFPakIsU0FBU0E7QUFBT2lCLGVBQU9DLFNBQVM7QUFBaUQsSUFBT0Msa0JBQVFGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBbFYsSUFBQUcsY0FBaVJ0QyxRQUFBLEtBQUE7QUFHalIsSUFBTXVDLGNBQWE7RUFDakJoQyxLQUFLO0VBQ0xvQixPQUFPO0FBQ1Q7QUFFTyxTQUFTYSxRQUFPckIsTUFBTUMsUUFBUUMsUUFBUUMsUUFBUUMsT0FBT0MsVUFBVTtBQUNwRSxVQUFBLEdBQVFjLFlBQUFiLFdBQVcsSUFBQSxHQUFHYSxZQUFBWjtJQUFvQjtJQUFVO01BQ2xEQyxRQUFBLEdBQU9XLFlBQUFHLGdCQUFnQixDQUFDLGFBQWE7UUFDdEMsaUNBQWlDcEIsT0FBT3FCLFdBQVc7UUFDbkQsMkJBQTJCckIsT0FBT3NCLFdBQVc7TUFDOUMsQ0FBQyxDQUFDO01BQ0FDLFNBQVN4QixPQUFPLENBQUMsTUFBTUEsT0FBTyxDQUFDLElBQUl5QixZQUFXMUIsS0FBSzJCLE1BQU0sT0FBTztJQUNsRTtJQUFHLENBQ0F6QixPQUFPWSxTQUFTLFdBQUEsR0FDWkssWUFBQWIsV0FBVyxJQUFBLEdBQUdhLFlBQUFTLGFBQWF6QixPQUFPLFFBQVEsR0FBRztNQUM1Q2YsS0FBSztNQUNMb0IsT0FBTztNQUNQTSxNQUFNWixPQUFPWTtJQUNmLEdBQUcsTUFBTSxHQUFlLENBQUMsTUFBTSxDQUFDLE1BQUEsR0FDaENLLFlBQUFKLG9CQUFvQixRQUFRLElBQUksR0FDbkNmLEtBQUs2QixPQUFPLFNBQVMsTUFBQSxHQUNqQlYsWUFBQWIsV0FBVyxJQUFBLEdBQUdhLFlBQUFaLG9CQUFvQixRQUFRYSxhQUFZLEVBQUEsR0FDckRELFlBQUFXLFlBQVk5QixLQUFLNkIsUUFBUSxXQUFXLENBQUMsR0FBRyxRQUFXLElBQUksQ0FBQSxDQUN4RCxNQUFBLEdBQ0RWLFlBQUFKLG9CQUFvQixRQUFRLElBQUksR0FDbkNiLE9BQU82QixjQUFjLFdBQUEsR0FDakJaLFlBQUFiLFdBQVcsSUFBQSxHQUFHYSxZQUFBUyxhQUFhekIsT0FBTyxRQUFRLEdBQUc7TUFDNUNmLEtBQUs7TUFDTG9CLE9BQU87TUFDUE0sTUFBTVosT0FBTzZCO01BQ2JwQixNQUFNO0lBQ1IsR0FBRyxNQUFNLEdBQWUsQ0FBQyxNQUFNLENBQUMsTUFBQSxHQUNoQ1EsWUFBQUosb0JBQW9CLFFBQVEsSUFBSSxDQUFBO0lBQ25DOztFQUFhO0FBQ2xCOztBQ3JDOFZpQixpQkFBT2pDLFNBQVNzQjtBQUFPVyxpQkFBT2YsU0FBUztBQUFtRGUsaUJBQU9DLFlBQVk7QUFBa0IsSUFBT0Msb0JBQVFGO0FDQTVlLElBQUFHLGNBQWdKdEQsUUFBQSxLQUFBO0FBRXpJLFNBQVN1RCxRQUFPcEMsTUFBTUMsUUFBUTtBQUNuQyxVQUFBLEdBQVFrQyxZQUFBN0IsV0FBVyxJQUFBLEdBQUc2QixZQUFBUCxhQUFhTyxZQUFBRSxZQUFhO0lBQzlDQyxNQUFNO0lBQ05DLE1BQU07RUFDUixHQUFHO0lBQ0RDLFVBQUEsR0FBU0wsWUFBQU0sU0FBUyxNQUFNLEVBQUEsR0FDdEJOLFlBQUFMLFlBQVk5QixLQUFLNkIsUUFBUSxXQUFXLENBQUMsR0FBRyxRQUFXLElBQUksQ0FBQSxDQUN4RDtJQUNEYSxHQUFHOztFQUNMLENBQUM7QUFDSDs7QUNaQSxJQUFNQyxTQUFTLENBQUM7QUFBNFBBLE9BQU81QyxTQUFTcUM7QUFBT08sT0FBTzFCLFNBQVM7QUFBMkQwQixPQUFPVixZQUFZO0FBQWtCLElBQU9XLDJCQUFRRDs7QUNBbGEsSUFBQUUsY0FBdUJoRSxRQUFBLEtBQUE7O0FDQXZCLElBQUFpRSxtQkFBQTtFQUNDQyxVQUFZO0lBQ1gsU0FBUztJQUNULFNBQVM7SUFDVCxTQUFTO0lBQ1QsU0FBUztJQUNULFNBQVM7SUFDVCxTQUFTO0VBQ1Y7RUFDQUMsTUFBUTtJQUNQQyxPQUFTO0lBQ1RDLE9BQVM7SUFDVCxhQUFhO0lBQ2IsaUJBQWlCO0lBQ2pCLFdBQVc7SUFDWCxlQUFlO0lBQ2YsZUFBZTtJQUNmLGdCQUFnQjtJQUNoQixtQkFBbUI7RUFDcEI7RUFDQUMsTUFBUTtJQUNQRixPQUFTO0lBQ1RDLE9BQVM7SUFDVCxhQUFhO0lBQ2IsaUJBQWlCO0lBQ2pCLFdBQVc7SUFDWCxlQUFlO0lBQ2YsZUFBZTtJQUNmLGdCQUFnQjtJQUNoQixtQkFBbUI7RUFDcEI7QUFDRDs7QUM5QkEsSUFBQUUsY0FBNEJ2RSxRQUFBLEtBQUE7QUFFNUIsSUFBTXdFLGlCQUFpQixDQUFDLFNBQVMsU0FBUyxTQUFTLFNBQVMsU0FBUyxPQUFPO0FBSzVFLElBQU1DLGlCQUFBLEdBQWdCRixZQUFBRyxNQUFBQyxpQkFBSUMsR0FBR0MsT0FBT0MsSUFBSSxlQUFlLE9BQUEsUUFBQUgsbUJBQUEsU0FBQUEsaUJBQUssRUFBRTtBQUU5RCxTQUFTSSxpQkFBMEI7QUFJbEMsU0FBT0MsV0FBVyxrQ0FBa0MsRUFBRUM7QUFDdkQ7QUFFQSxTQUFTQyxnQkFBeUI7QUFBQSxNQUFBQyx1QkFBQUM7QUFDakMsVUFBUVIsR0FBR0MsT0FBT0MsSUFBSSxNQUFNLEdBQUE7SUFDM0IsS0FBSztBQUNKLGNBQUFLLHdCQUFPRSxTQUFTQyxpQkFBaUIsb0JBQW9CLEVBQUUsQ0FBQyxPQUFBLFFBQUFILDBCQUFBLFNBQUFBLHdCQUFLRSxTQUFTRTtJQUN2RSxLQUFLO0FBQ0osY0FBQUgseUJBQU9DLFNBQVNHLGNBQWMsbUJBQW1CLE9BQUEsUUFBQUosMkJBQUEsU0FBQUEseUJBQUtDLFNBQVNFO0lBQ2hFO0FBQ0MsYUFBT0YsU0FBU0U7RUFDbEI7QUFDRDtBQUVBLElBQU1FLG1CQUFBLEdBQWtCbEIsWUFBQW1CLFVBQVMsTUFBTTtBQUN0QyxNQUFLbEIsZUFBeUNtQixTQUFTbEIsY0FBY21CLEtBQUssR0FBRztBQUM1RSxXQUFPbkIsY0FBY21CO0VBQ3RCO0FBQ0EsU0FBTztBQUNSLENBQUM7QUFRRCxTQUFTQyxlQUFlQyxNQUFtQztBQUMxRCxRQUFNQyxjQUFjLENBQUMsR0FBR3ZCLGNBQWMsRUFBRXdCLE9BQVFDLE9BQU07QUFDckQsV0FBT0EsTUFBTUg7RUFDZCxDQUFDO0FBQ0QsUUFBTUksY0FBY0MsS0FBS0MsTUFBTUQsS0FBS0UsT0FBTyxJQUFJTixZQUFZTyxNQUFNO0FBQ2pFLFNBQU9QLFlBQVlHLFdBQVc7QUFDL0I7O0FGMUNBLElBQU1LLGVBQUEsR0FBY3ZDLFlBQUEwQixVQUFTLE1BQU07QUFDbEMsTUFBSWpCLGNBQWNtQixVQUFVLE1BQU07QUFFakMsV0FBT08sS0FBS0UsT0FBTyxJQUFJLE1BQU0sU0FBUztFQUN2QztBQUNBLE1BQUksQ0FBQyxXQUFXLFNBQVMsU0FBUyxPQUFPLEVBQUVWLFNBQVNsQixjQUFjbUIsS0FBSyxHQUFHO0FBQ3pFLFdBQU87RUFDUjtBQUVBLFNBQU87QUFDUixDQUFDO0FBRUQsU0FBU1ksUUFBUWpHLEtBQXFCO0FBQUEsTUFBQWtHO0FBQ3JDLFFBQU1DLG1CQUEyQ3pDLGlCQUFTc0MsWUFBWVgsS0FBSztBQUMzRSxVQUFBYSx3QkFBT0MsaUJBQWlCbkcsR0FBRyxPQUFBLFFBQUFrRywwQkFBQSxTQUFBQSx3QkFBS2xHO0FBQ2pDOztBR3BCQSxJQUFJb0csVUFBVTtBQU9kLFNBQVNDLGNBQXNCO0FBQzlCLFNBQUEsTUFBQUMsT0FBYUYsU0FBUztBQUN2QjtBQUVBLElBQU9HLHNCQUFRRjs7QUNYZixJQUFBRyxjQUE4Qi9HLFFBQUEsS0FBQTtBQUk5QixJQUFNZ0gsV0FBVyxJQUFJO0FBT3JCLFNBQVNDLG1CQUFtQkMsV0FBNEM7QUFDdkUsUUFBTUMsVUFBQSxHQUFTSixZQUFBckMsS0FBa0JtQixlQUFlLENBQUM7QUFDakQsTUFBSXVCO0FBRUosR0FBQSxHQUFBTCxZQUFBTSxPQUNDSCxXQUNDSSxjQUFhO0FBQ2IsUUFBSUEsVUFBVTtBQUFBLFVBQUFDO0FBQ2JDLG9CQUFjSixFQUFFO0FBR2hCRCxhQUFPdkIsU0FBQTJCLHdCQUFROUIsZ0JBQWdCRyxXQUFBLFFBQUEyQiwwQkFBQSxTQUFBQSx3QkFBUzFCLGVBQWU7SUFDeEQsT0FBTztBQUNOdUIsV0FBS0ssT0FBT0MsWUFBWSxNQUFNO0FBQzdCUCxlQUFPdkIsUUFBUUMsZUFBZXNCLE9BQU92QixLQUFLO01BQzNDLEdBQUdvQixRQUFRO0lBQ1o7RUFDRCxHQUNBO0lBQUNXLFdBQVc7RUFBSSxDQUNqQjtBQUVBLFNBQU9SO0FBQ1I7QUFFQSxJQUFPUyw2QkFBUVg7O0FDbkNmLElBQUFZLGNBQTRDN0gsUUFBQSxLQUFBO0FBVzVDLFNBQVM4SCxnQkFDUkMsT0FDQUMsTUFDQXZFLE9BQVUsY0FDa0I7QUFDNUIsVUFBQSxHQUFPb0UsWUFBQW5DLFVBQVM7SUFDZlosTUFBTTtBQUNMLGFBQU9pRCxNQUFNdEUsSUFBSTtJQUNsQjtJQUNBd0UsSUFBSXJDLE9BQU87QUFDVm9DLFdBQUEsVUFBQW5CLE9BQWVwRCxJQUFJLEdBQUltQyxLQUFLO0lBQzdCO0VBQ0QsQ0FBQztBQUNGO0FBRUEsSUFBT3NDLDBCQUFRSjs7QUMxQmYsSUFBQUssZUFBNERuSSxRQUFBLEtBQUE7QUFRNUQsU0FBU29JLFdBQWNDLGNBQXNDO0FBQzVELFFBQU1DLFdBQUEsR0FBVUgsYUFBQUksWUFBYyxPQUFPRixpQkFBaUIsYUFBYUEsYUFBYSxJQUFJQSxhQUFhekMsS0FBSztBQUV0RyxHQUFBLEdBQUF1QyxhQUFBZCxPQUNDZ0IsY0FDQ2YsY0FBYTtBQUNiZ0IsWUFBUTFDLFFBQVEwQjtFQUNqQixHQUNBO0lBQUNrQixNQUFNO0VBQUksQ0FDWjtBQUVBLFVBQUEsR0FBT0wsYUFBQXpDLFVBQVM7SUFDZlosTUFBTTtBQUNMLGFBQU93RCxRQUFRMUM7SUFDaEI7SUFDQXFDLElBQUlYLFVBQVU7QUFDYmdCLGNBQVExQyxRQUFRMEI7SUFDakI7RUFDRCxDQUFDO0FBQ0Y7QUFFQSxJQUFPbUIscUJBQVFMOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FiaEJmLFVBQU1MLFFBQVFXO0FBV2QsVUFBTVYsT0FBT1c7QUFPYixVQUFNQyxVQUFBLEdBQVN6SSxhQUFBdUUsS0FBd0IsSUFBSTtBQUMzQyxVQUFNbUUsVUFBVS9CLG9CQUFZO0FBQzVCLFVBQU1nQyxTQUFTaEMsb0JBQVk7QUFDM0IsVUFBTWlDLFNBQVNiLHdCQUFnQkgsT0FBT0MsTUFBTSxNQUFNO0FBQ2xELFVBQU1nQixhQUFhZCx3QkFBZ0JILE9BQU9DLE1BQU0sVUFBVTtBQUMxRCxVQUFNaUIsb0JBQW9CUixtQkFBVyxNQUFNaEQsZ0JBQWdCRyxVQUFVLElBQUk7QUFDekUsVUFBTXNELGtCQUFrQnRCLDJCQUFtQnFCLGlCQUFpQjtBQUU1RCxhQUFTRSxpQkFBaUI7QUFDekJuQixXQUFLLFFBQVE7QUFDYmUsYUFBT25ELFFBQVE7SUFDaEI7QUFFQSxhQUFTd0QsT0FBT0MsU0FBdUI7QUFDdENMLGlCQUFXcEQsUUFBUTtBQUNuQm9DLFdBQUssVUFBVXFCLE9BQU87SUFDdkI7QUFFQSxLQUFBLEdBQUFsSixhQUFBa0gsT0FBTXVCLFFBQVEsTUFBTTtBQUNuQixZQUFNVSxVQUFVVixPQUFPaEQ7QUFDdkIsVUFBSTBELFlBQVksTUFBTTtBQUNyQkEsZ0JBQVFDLGlCQUFpQixjQUFlQyxRQUFPO0FBRTlDLGNBQUlBLEdBQUdDLFlBQVksS0FBSzFCLE1BQU0yQixhQUFhLENBQUMzQixNQUFNNEIsVUFBVTtBQUMzRFosbUJBQU9uRCxRQUFRO1VBQ2hCO1FBQ0QsQ0FBQztNQUNGO0lBQ0QsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QWMzREQsSUFBQWdFLGVBQTBlNUosUUFBQSxLQUFBO0FBRTFlLElBQU02SixlQUFlQyxTQUFBLEdBQU1GLGFBQUFHLGFBQWEsaUJBQWlCLEdBQUVELElBQUVBLEVBQUUsSUFBQSxHQUFFRixhQUFBSSxZQUFZLEdBQUVGO0FBQy9FLElBQU1HLGNBQWEsQ0FBQyxRQUFRLG1CQUFtQixrQkFBa0I7QUFDakUsSUFBTUMsY0FBYSxDQUFDLElBQUk7QUFDeEIsSUFBTUMsY0FBMkJOLDZCQUFhLE1BQW1CLG9CQUFBRCxhQUFBbko7RUFBb0I7RUFBTTtFQUFNO0VBQU07O0FBQWdCLENBQUM7QUFDeEgsSUFBTTJKLGNBQWEsQ0FBQyxNQUFNO0FBQzFCLElBQU1DLGNBQWEsQ0FBQyxJQUFJO0FBQ3hCLElBQU1DLGNBQWE7RUFBRTNJLE9BQU87QUFBNkI7QUFDekQsSUFBTTRJLGNBQWE7RUFBRTVJLE9BQU87QUFBNEI7QUFDeEQsSUFBTTZJLGNBQWE7RUFBRTdJLE9BQU87QUFBMEI7QUFFL0MsU0FBUzhJLFFBQU90SixNQUFNQyxRQUFRQyxRQUFRQyxRQUFRQyxPQUFPQyxVQUFVO0FBQ3BFLFVBQUEsR0FBUW9JLGFBQUFuSSxXQUFXLElBQUEsR0FBR21JLGFBQUE3RyxhQUFhNkcsYUFBQXBHLFlBQWE7SUFDOUNDLE1BQU07SUFDTmlILFFBQVE7RUFDVixHQUFHO0lBQ0QvRyxVQUFBLEdBQVNpRyxhQUFBaEcsU0FBUyxNQUFNLENBQ3JCdkMsT0FBT3NKLFNBQUEsR0FDSGYsYUFBQW5JLFdBQVcsSUFBQSxHQUFHbUksYUFBQWxJLG9CQUFvQixPQUFPO01BQ3hDbkIsS0FBSztNQUNMbUUsS0FBSztNQUNMa0csTUFBQSxNQUFBL0QsT0FBWXZGLE9BQU9pRixXQUFXO01BQzlCNUUsT0FBTztNQUNQa0osTUFBTTtNQUNOLGNBQWM7TUFDZCxtQkFBbUJ2SixPQUFPdUg7TUFDMUIsb0JBQW9CdkgsT0FBT3dIO0lBQzdCLEdBQUcsRUFBQSxHQUNEYyxhQUFBa0IsYUFBYXhKLE9BQU8sVUFBVSxHQUFHO01BQy9CSyxPQUFPO01BQ1BnQixRQUFRO01BQ1JWLE1BQU07TUFDTjhJLE9BQU96SixPQUFPa0YsUUFBUSxPQUFPO01BQzdCLGNBQWNsRixPQUFPa0YsUUFBUSxPQUFPO01BQ3BDbUQsVUFBVXRJLE9BQU9zSTtNQUNqQi9HLFNBQVN0QixPQUFPNkg7SUFDbEIsR0FBRyxNQUFNLEdBQWUsQ0FBQyxTQUFTLGNBQWMsVUFBVSxDQUFDLElBQUEsR0FDM0RTLGFBQUFuSixvQkFBb0IsTUFBTTtNQUN4QjJHLElBQUk5RixPQUFPdUg7TUFDWGxILE9BQU87SUFDVCxHQUFHLEVBQUEsR0FDRGlJLGFBQUFvQjtPQUFBLEdBQWlCcEIsYUFBQXFCLGlCQUFpQjNKLE9BQU9rRixRQUFRbEYsT0FBTzJILG9CQUFvQixrQkFBa0IsV0FBVyxDQUFDO01BQUc7O0lBQVksR0FDekhrQixjQUFBLEdBQ0FQLGFBQUFrQixhQUFheEosT0FBTyxrQkFBa0IsR0FBRyxNQUFNO01BQzdDcUMsVUFBQSxHQUFTaUcsYUFBQWhHLFNBQVMsTUFBTSxDQUNyQixDQUFDdEMsT0FBTzJILHNCQUFBLEdBQ0pXLGFBQUFuSSxXQUFXLElBQUEsR0FBR21JLGFBQUFsSSxvQkFBb0IsUUFBUTtRQUN6Q25CLEtBQUtlLE9BQU80SDtRQUNaMEIsTUFBQSxNQUFBL0QsT0FBWXZGLE9BQU80SCxlQUFlO1FBQ2xDdkgsT0FBTztNQUNULElBQUEsR0FBR2lJLGFBQUFxQixpQkFBaUIzSixPQUFPNEosU0FBU2hILFNBQVM1QyxPQUFPNEgsZUFBZSxDQUFDLEdBQUcsR0FBcUJrQixXQUFVLE1BQUEsR0FDdEdSLGFBQUExSCxvQkFBb0IsUUFBUSxJQUFJLENBQUEsQ0FDckM7TUFDRDJCLEdBQUc7O0lBQ0wsQ0FBQyxDQUFBLEdBQ0EsR0FBZXFHLFdBQVUsSUFBQSxHQUM1Qk4sYUFBQW5KLG9CQUFvQixLQUFLO01BQ3ZCMkcsSUFBSTlGLE9BQU93SDtNQUNYbkgsT0FBTztJQUNULElBQUEsR0FBR2lJLGFBQUFxQixpQkFBaUIzSixPQUFPa0YsUUFBUWxGLE9BQU8ySCxvQkFBb0IsZ0JBQWdCLFNBQVMsQ0FBQyxHQUFHLEdBQXFCb0IsV0FBVSxJQUFBLEdBQzFIVCxhQUFBbkosb0JBQW9CLE9BQU82SixhQUFZLEVBQUEsR0FDckNWLGFBQUExSCxvQkFBb0IsNkRBQTZELEtBQUEsR0FDaEYwSCxhQUFBbkksV0FBVyxJQUFJLElBQUEsR0FBR21JLGFBQUFsSTtNQUFvQmtJLGFBQUF1QjtNQUFXO09BQUEsR0FBTXZCLGFBQUF3QixZQUFZOUosT0FBTzJILHFCQUFxQjNILE9BQU9tRSxvQkFBb0IsT0FDakksQ0FBQ25FLE9BQU9tRSxlQUFlLElBQ3ZCbkUsT0FBT2tELGdCQUFpQjZFLGFBQVk7QUFDNUIsZ0JBQUEsR0FBUU8sYUFBQW5JLFdBQVcsSUFBQSxHQUFHbUksYUFBQTdHLGFBQWF6QixPQUFPLFVBQVUsR0FBRztVQUNyRGYsS0FBSzhJO1VBQ0wxSCxRQUFBLEdBQU9pSSxhQUFBbkgsZ0JBQWdCLENBQUMsc0NBQXNDO1lBQUMsK0NBQStDbkIsT0FBTzJIO1VBQWlCLENBQUMsQ0FBQztVQUN4SS9GLFdBQVc7VUFDWFAsUUFBUTtVQUNSRCxRQUFRO1VBQ1JrSSxNQUFNdkI7VUFDTk0sVUFBVXRJLE9BQU9zSTtVQUNqQi9HLFNBQVNDLFlBQVd2QixPQUFPOEgsT0FBT0MsT0FBTztRQUMzQyxHQUFHO1VBQ0QxRixVQUFBLEdBQVNpRyxhQUFBaEcsU0FBUyxNQUFNLEVBQUEsR0FDdEJnRyxhQUFBb0I7YUFBQSxHQUFpQnBCLGFBQUFxQixpQkFBaUIzSixPQUFPNEosU0FBU2hILFNBQVNtRixPQUFPLENBQUM7WUFBRzs7VUFBWSxDQUFBLENBQ25GO1VBQ0R4RixHQUFHOztRQUNMLEdBQUcsTUFBaUMsQ0FBQyxTQUFTLFFBQVEsWUFBWSxTQUFTLENBQUM7TUFDOUUsQ0FBQztNQUFHOztJQUF3QixJQUMzQnZDLE9BQU8ySCxzQkFBQSxHQUNIVyxhQUFBbkksV0FBVyxJQUFBLEdBQUdtSSxhQUFBN0csYUFBYXpCLE9BQU8sVUFBVSxHQUFHO01BQzlDZixLQUFLO01BQ0xvQixPQUFPO01BQ1B1QixXQUFXO01BQ1hQLFFBQVE7TUFDUkQsUUFBUTtNQUNSaUgsVUFBVXRJLE9BQU9zSTtNQUNqQi9HLFNBQVN4QixPQUFPLENBQUMsTUFBTUEsT0FBTyxDQUFDLElBQUl5QixZQUFXdkIsT0FBTzJILG9CQUFvQjtJQUMzRSxHQUFHO01BQ0R0RixVQUFBLEdBQVNpRyxhQUFBaEcsU0FBUyxNQUFNLEVBQUEsR0FDdEJnRyxhQUFBb0I7U0FBQSxHQUFpQnBCLGFBQUFxQixpQkFBaUIzSixPQUFPa0YsUUFBUSxpQkFBaUIsQ0FBQztRQUFHOztNQUFZLENBQUEsQ0FDbkY7TUFDRDNDLEdBQUc7O0lBQ0wsR0FBRyxHQUFlLENBQUMsVUFBVSxDQUFDLE1BQUEsR0FDOUIrRixhQUFBMUgsb0JBQW9CLFFBQVEsSUFBSSxDQUFBLENBQ3JDLElBQUEsR0FDRDBILGFBQUFuSixvQkFBb0IsVUFBVThKLGFBQVksRUFBQSxHQUN4Q1gsYUFBQW5KO01BQW9CO01BQUsrSjtPQUFBLEdBQVlaLGFBQUFxQixpQkFBaUIzSixPQUFPa0YsUUFBUSxhQUFhLENBQUM7TUFBRzs7SUFBWSxDQUFBLENBQ25HLENBQUEsR0FDQSxHQUFleUQsV0FBVSxNQUFBLEdBQzVCTCxhQUFBMUgsb0JBQW9CLFFBQVEsSUFBSSxDQUFBLENBQ3JDO0lBQ0QyQixHQUFHOztFQUNMLENBQUM7QUFDSDs7QUMzR21Yd0gsd0JBQU9uSyxTQUFTdUo7QUFBT1ksd0JBQU9qSixTQUFTO0FBQTBEaUosd0JBQU9qSSxZQUFZO0FBQWtCLElBQU9rSSwyQkFBUUQ7O0FDQ3hnQixJQUFBRSxlQUFrQnZMLFFBQUEsS0FBQTs7Ozs7Ozs7Ozs7Ozs7OztBQ0VsQixVQUFNK0gsUUFBUVc7QUFHZCxVQUFNVixPQUFPVztBQUliLFVBQU02QyxhQUFhdEQsd0JBQWdCSCxPQUFPQyxJQUFJOzs7Ozs7Ozs7Ozs7O0FBVjlDLElBQUF5RCxlQUFnTHpMLFFBQUEsS0FBQTtBQUV6SyxTQUFTMEwsUUFBT3ZLLE1BQU1DLFFBQVFDLFFBQVFDLFFBQVFDLE9BQU9DLFVBQVU7QUFDcEUsVUFBQSxHQUFPaUssYUFBQUUsa0JBQUEsR0FBaUJGLGFBQUFoSyxXQUFXLElBQUEsR0FBR2dLLGFBQUEvSjtJQUFvQjtJQUFVO01BQ2xFLHVCQUF1Qk4sT0FBTyxDQUFDLE1BQU1BLE9BQU8sQ0FBQyxJQUFJeUIsWUFBWXZCLE9BQU9rSyxhQUFjM0k7TUFDbEZsQixPQUFPO0lBQ1Q7SUFBRyxFQUFBLEdBQ0Q4SixhQUFBeEksWUFBWTlCLEtBQUs2QixRQUFRLFdBQVcsQ0FBQyxHQUFHLFFBQVcsSUFBSSxDQUFBO0lBQ3REOztFQUFvQixJQUFJLENBQ3pCLENBQUN5SSxhQUFBRyxjQUFldEssT0FBT2tLLFVBQVUsQ0FBQSxDQUNsQztBQUNIOztBQ1g4VkssaUJBQU8zSyxTQUFTd0s7QUFBT0csaUJBQU96SixTQUFTO0FBQW1EeUosaUJBQU96SSxZQUFZO0FBQWtCLElBQU8wSSxvQkFBUUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FGWTVlLFVBQU05RCxRQUFRVztBQVNkLFVBQU1WLE9BQU9XO0FBT2IsVUFBTUMsVUFBQSxHQUFTMkMsYUFBQTdHLEtBQXdCLElBQUk7QUFDM0MsVUFBTW1FLFVBQVUvQixvQkFBWTtBQUM1QixVQUFNaUYsa0JBQWtCdEQsbUJBQVcsTUFBQTtBQUFBLFVBQUF1RDtBQUFBLGNBQUFBLHlCQUFNdkcsZ0JBQWdCRyxXQUFBLFFBQUFvRywyQkFBQSxTQUFBQSx5QkFBU25HLGVBQWU7SUFBQyxDQUFBO0FBQ2xGLFVBQU1rRCxTQUFTYix3QkFBZ0JILE9BQU9DLE1BQU0sTUFBTTtBQUNsRCxVQUFNZ0IsYUFBYWQsd0JBQWdCSCxPQUFPQyxNQUFNLFVBQVU7QUFFMUQsYUFBU21CLGlCQUFpQjtBQUN6Qm5CLFdBQUssUUFBUTtBQUNiZSxhQUFPbkQsUUFBUTtJQUNoQjtBQUVBLGFBQVN3RCxPQUFPQyxTQUF1QjtBQUN0Q0wsaUJBQVdwRCxRQUFRO0FBQ25Cb0MsV0FBSyxVQUFVcUIsT0FBTztJQUN2Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FHMUNBLElBQUE0QyxlQUF1Y2pNLFFBQUEsS0FBQTtBQUd2YyxJQUFNa00sY0FBYSxDQUFDLFFBQVEsaUJBQWlCO0FBQzdDLElBQU1DLGNBQWE7RUFBRXhLLE9BQU87QUFBbUM7QUFDL0QsSUFBTXlLLGNBQWEsQ0FBQyxJQUFJO0FBQ3hCLElBQU1DLGNBQWE7RUFBRTFLLE9BQU87QUFBaUM7QUFDN0QsSUFBTTJLLGNBQWEsQ0FBQyxTQUFTLE1BQU07QUFDbkMsSUFBTUMsY0FBYTtFQUFFNUssT0FBTztBQUFtQztBQUMvRCxJQUFNNkssY0FBYTtFQUFFN0ssT0FBTztBQUEwQjtBQUUvQyxTQUFTOEssUUFBT3RMLE1BQU1DLFFBQVFDLFFBQVFDLFFBQVFDLE9BQU9DLFVBQVU7QUFDcEUsVUFBQSxHQUFReUssYUFBQXhLLFdBQVcsSUFBQSxHQUFHd0ssYUFBQWxKLGFBQWFrSixhQUFBekksWUFBYTtJQUM5Q0MsTUFBTTtJQUNOaUgsUUFBUTtFQUNWLEdBQUc7SUFDRC9HLFVBQUEsR0FBU3NJLGFBQUFySSxTQUFTLE1BQU0sQ0FDckJ2QyxPQUFPc0osU0FBQSxHQUNIc0IsYUFBQXhLLFdBQVcsSUFBQSxHQUFHd0ssYUFBQXZLLG9CQUFvQixPQUFPO01BQ3hDbkIsS0FBSztNQUNMbUUsS0FBSztNQUNMa0csTUFBQSxNQUFBL0QsT0FBWXZGLE9BQU9pRixXQUFXO01BQzlCNUUsT0FBTztNQUNQa0osTUFBTTtNQUNOLGNBQWM7TUFDZCxtQkFBbUJ2SixPQUFPdUg7SUFDNUIsR0FBRyxFQUFBLEdBQ0RvRCxhQUFBeEwsb0JBQW9CLE9BQU8wTCxhQUFZLEVBQUEsR0FDckNGLGFBQUF4TCxvQkFBb0IsTUFBTTtNQUN4QjJHLElBQUk5RixPQUFPdUg7TUFDWGxILE9BQU87SUFDVCxJQUFBLEdBQUdzSyxhQUFBaEIsaUJBQWlCM0osT0FBT2tGLFFBQVEsU0FBUyxDQUFDLEdBQUcsR0FBcUI0RixXQUFVLElBQUEsR0FDL0VILGFBQUFuQixhQUFheEosT0FBTyxVQUFVLEdBQUc7TUFDL0JLLE9BQU87TUFDUGdCLFFBQVE7TUFDUlYsTUFBTTtNQUNOOEksT0FBT3pKLE9BQU9rRixRQUFRLE9BQU87TUFDN0IsY0FBY2xGLE9BQU9rRixRQUFRLE9BQU87TUFDcENtRCxVQUFVdEksT0FBT3NJO01BQ2pCL0csU0FBU3RCLE9BQU82SDtJQUNsQixHQUFHLE1BQU0sR0FBZSxDQUFDLFNBQVMsY0FBYyxVQUFVLENBQUMsQ0FBQSxDQUM1RCxJQUFBLEdBQ0Q4QyxhQUFBeEwsb0JBQW9CLE9BQU80TCxhQUFZLEVBQUEsR0FDckNKLGFBQUFuQixhQUFheEosT0FBTyxVQUFVLEdBQUc7TUFDL0JrSyxZQUFZbEssT0FBT3lLO01BQ25CLHVCQUF1QjNLLE9BQU8sQ0FBQyxNQUFNQSxPQUFPLENBQUMsSUFBSXlCLFlBQVl2QixPQUFPeUssa0JBQW1CbEo7TUFDdkZsQixPQUFPO01BQ1BpSixNQUFNdEosT0FBT3lLO01BQ2JwQyxVQUFVdEksT0FBT3NJO01BQ2pCLG1CQUFtQnJJLE9BQU91SDtJQUM1QixHQUFHO01BQ0RsRixVQUFBLEdBQVNzSSxhQUFBckksU0FBUyxNQUFNLEdBQUEsR0FDckJxSSxhQUFBeEssV0FBVyxJQUFJLElBQUEsR0FBR3dLLGFBQUF2SztRQUFvQnVLLGFBQUFkO1FBQVc7U0FBQSxHQUFNYyxhQUFBYixZQUFZOUosT0FBT2tELGdCQUFpQjZFLGFBQVk7QUFDdEcsa0JBQUEsR0FBUTRDLGFBQUF4SyxXQUFXLElBQUEsR0FBR3dLLGFBQUF2SyxvQkFBb0IsVUFBVTtZQUNsRG5CLEtBQUs4STtZQUNMekQsT0FBT3lEO1lBQ1B1QixNQUFNdkI7VUFDUixJQUFBLEdBQUc0QyxhQUFBaEIsaUJBQWlCM0osT0FBTzRKLFNBQVNoSCxTQUFTbUYsT0FBTyxDQUFDLEdBQUcsR0FBcUJpRCxXQUFVO1FBQ3pGLENBQUM7UUFBRzs7TUFBd0IsRUFBQSxDQUM3QjtNQUNEekksR0FBRzs7SUFDTCxHQUFHLEdBQWUsQ0FBQyxjQUFjLFFBQVEsWUFBWSxpQkFBaUIsQ0FBQyxJQUFBLEdBQ3ZFb0ksYUFBQW5CLGFBQWF4SixPQUFPLFVBQVUsR0FBRztNQUMvQkssT0FBTztNQUNQZSxRQUFRO01BQ1JULE1BQU07TUFDTjBILFVBQVV0SSxPQUFPc0k7TUFDakIvRyxTQUFTeEIsT0FBTyxDQUFDLE1BQU1BLE9BQU8sQ0FBQyxJQUFJeUIsWUFBV3ZCLE9BQU84SCxPQUFPOUgsT0FBT3lLLGVBQWU7SUFDcEYsR0FBRztNQUNEcEksVUFBQSxHQUFTc0ksYUFBQXJJLFNBQVMsTUFBTSxFQUFBLEdBQ3RCcUksYUFBQWpCO1NBQUEsR0FBaUJpQixhQUFBaEIsaUJBQWlCM0osT0FBT2tGLFFBQVEsY0FBYyxDQUFDO1FBQUc7O01BQVksQ0FBQSxDQUNoRjtNQUNEM0MsR0FBRzs7SUFDTCxHQUFHLEdBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQSxDQUMvQixJQUFBLEdBQ0RvSSxhQUFBeEwsb0JBQW9CLFVBQVU4TCxhQUFZLEVBQUEsR0FDeENOLGFBQUF4TDtNQUFvQjtNQUFLK0w7T0FBQSxHQUFZUCxhQUFBaEIsaUJBQWlCM0osT0FBT2tGLFFBQVEsYUFBYSxDQUFDO01BQUc7O0lBQVksQ0FBQSxDQUNuRyxDQUFBLEdBQ0EsR0FBZTBGLFdBQVUsTUFBQSxHQUM1QkQsYUFBQS9KLG9CQUFvQixRQUFRLElBQUksQ0FBQSxDQUNyQztJQUNEMkIsR0FBRzs7RUFDTCxDQUFDO0FBQ0g7O0FDbkZxWTZJLDhCQUFPeEwsU0FBU3VMO0FBQU9DLDhCQUFPdEssU0FBUztBQUFnRXNLLDhCQUFPdEosWUFBWTtBQUFrQixJQUFPdUosaUNBQVFEOzs7Ozs7O0FyQk9oaUIsVUFBTTNELFVBQUEsR0FBUzlJLGFBQUF5RSxLQUFJLElBQUk7QUFDdkIsVUFBTXNFLGNBQUEsR0FBYS9JLGFBQUF5RSxLQUFJLEtBQUs7QUFDNUIsVUFBTWtJLFdBQVc3SCxlQUFlO0FBQ2hDLFVBQU04SCxvQkFBb0IzSCxjQUFjO0FBRXhDLGFBQVM0SCxXQUFXekQsU0FBdUI7QUFDMUMsT0FBQSxHQUFBbkosa0JBQUE2TSxpQkFBZ0IxRCxPQUFPO0FBQ3ZCLE9BQUEsR0FBQW5KLGtCQUFBOE0sVUFBUzNELFNBQVM7UUFBQzRELFFBQVE7TUFBSSxDQUFDO0lBQ2pDO0FBSUExRCxxQkFBaUJxRCxXQUFXLGNBQWMsVUFBVSxNQUFNO0FBQ3pELFVBQUksQ0FBQzVELFdBQVdwRCxPQUFPO0FBQ3RCbUQsZUFBT25ELFFBQVE7TUFDaEI7SUFDRCxDQUFDO0FBRUQsYUFBU3NILFdBQVc7QUFDbkIsT0FBQSxHQUFBaE4sa0JBQUFpTixXQUFVO0lBQ1g7Ozs7Ozs7Ozs7Ozs7Ozs7OztBc0IzQkEsSUFBQUMsZUFBeU1wTixRQUFBLEtBQUE7QUFFbE0sU0FBU3FOLFFBQU9sTSxNQUFNQyxRQUFRQyxRQUFRQyxRQUFRQyxPQUFPQyxVQUFVO0FBQ3BFLFVBQUEsR0FBUTRMLGFBQUEzTCxXQUFXLElBQUEsR0FBRzJMLGFBQUExTDtJQUFvQjBMLGFBQUFqQztJQUFXO0lBQU0sR0FBQSxHQUN4RGlDLGFBQUEzTCxXQUFXLElBQUEsR0FBRzJMLGFBQUFySyxhQUFhcUssYUFBQUUsVUFBVztNQUFFQyxJQUFJak0sT0FBT3VMO0lBQWtCLEdBQUcsQ0FDdEUsQ0FBQ3ZMLE9BQU9zTCxhQUFBLEdBQ0pRLGFBQUEzTCxXQUFXLElBQUEsR0FBRzJMLGFBQUFySyxhQUFhekIsT0FBTyxpQkFBaUIsR0FBRztNQUNyRGYsS0FBSztNQUNMb0ssTUFBTXJKLE9BQU95SDtNQUNiLGlCQUFpQjNILE9BQU8sQ0FBQyxNQUFNQSxPQUFPLENBQUMsSUFBSXlCLFlBQVl2QixPQUFPeUgsU0FBVWxHO01BQ3hFOEcsVUFBVXJJLE9BQU8wSDtNQUNqQixxQkFBcUI1SCxPQUFPLENBQUMsTUFBTUEsT0FBTyxDQUFDLElBQUl5QixZQUFZdkIsT0FBTzBILGFBQWNuRztNQUNoRixjQUFjO01BQ2QySyxVQUFVbE0sT0FBTzRMO01BQ2pCTyxVQUFVbk0sT0FBT3dMO0lBQ25CLEdBQUcsTUFBTSxHQUFlLENBQUMsUUFBUSxVQUFVLENBQUMsTUFBQSxHQUM1Q00sYUFBQWxMLG9CQUFvQixRQUFRLElBQUksQ0FBQSxHQUNuQyxHQUFlLENBQUMsSUFBSSxDQUFDLEtBQUEsR0FDeEJrTCxhQUFBbEwsb0JBQW9CLDhEQUE4RCxLQUFBLEdBQ2pGa0wsYUFBQTNMLFdBQVcsSUFBQSxHQUFHMkwsYUFBQXJLLGFBQWFxSyxhQUFBRSxVQUFXO01BQUVDLElBQUk7SUFBTyxHQUFHLENBQ3BEak0sT0FBT3NMLGFBQUEsR0FDSFEsYUFBQTNMLFdBQVcsSUFBQSxHQUFHMkwsYUFBQXJLLGFBQWF6QixPQUFPLHVCQUF1QixHQUFHO01BQzNEZixLQUFLO01BQ0xvSyxNQUFNckosT0FBT3lIO01BQ2IsaUJBQWlCM0gsT0FBTyxDQUFDLE1BQU1BLE9BQU8sQ0FBQyxJQUFJeUIsWUFBWXZCLE9BQU95SCxTQUFVbEc7TUFDeEU4RyxVQUFVckksT0FBTzBIO01BQ2pCLHFCQUFxQjVILE9BQU8sQ0FBQyxNQUFNQSxPQUFPLENBQUMsSUFBSXlCLFlBQVl2QixPQUFPMEgsYUFBY25HO01BQ2hGMkssVUFBVWxNLE9BQU80TDtNQUNqQk8sVUFBVW5NLE9BQU93TDtJQUNuQixHQUFHLE1BQU0sR0FBZSxDQUFDLFFBQVEsVUFBVSxDQUFDLE1BQUEsR0FDNUNNLGFBQUFsTCxvQkFBb0IsUUFBUSxJQUFJLENBQUEsQ0FDckMsRUFBQTtJQUNBOztFQUF3QjtBQUM3Qjs7QUNqQzJTd0wsWUFBT3hNLFNBQVNtTTtBQUFPSyxZQUFPdEwsU0FBUztBQUFrQyxJQUFPdUwsZUFBUUQ7O0F4QkduWSxJQUFNRSxPQUFPdkksU0FBU3dJLGNBQWMsS0FBSztBQUN6Q3hJLFNBQVNFLEtBQUt1SSxPQUFPRixJQUFJO0NBQUEsR0FDekI3TixhQUFBZ08sV0FBVUosWUFBRyxFQUFFSyxNQUFNSixJQUFJOyIsCiAgIm5hbWVzIjogWyJpbXBvcnRfdnVlMjIiLCAicmVxdWlyZSIsICJpbXBvcnRfdnVlMjAiLCAiaW1wb3J0X2V4dF9nYWRnZXQiLCAiaW1wb3J0X3Z1ZTEyIiwgImltcG9ydF92dWUyIiwgIl9ob2lzdGVkXzEiLCAiX2hvaXN0ZWRfMiIsICJrZXkiLCAiX2hvaXN0ZWRfMyIsICJjcmVhdGVFbGVtZW50Vk5vZGUiLCAiZCIsICJfaG9pc3RlZF80IiwgIl9ob2lzdGVkXzUiLCAiX2hvaXN0ZWRfNiIsICJfaG9pc3RlZF83IiwgIl9ob2lzdGVkXzgiLCAiX2hvaXN0ZWRfOSIsICJfaG9pc3RlZF8xMCIsICJyZW5kZXIiLCAiX2N0eCIsICJfY2FjaGUiLCAiJHByb3BzIiwgIiRzZXR1cCIsICIkZGF0YSIsICIkb3B0aW9ucyIsICJvcGVuQmxvY2siLCAiY3JlYXRlRWxlbWVudEJsb2NrIiwgImNsYXNzIiwgInhtbG5zIiwgIndpZHRoIiwgInNpemUiLCAiaGVpZ2h0IiwgInZpZXdCb3giLCAiaWNvbiIsICJjcmVhdGVDb21tZW50Vk5vZGUiLCAiVkFJY29uX2RlZmF1bHQiLCAiX19maWxlIiwgIlZBSWNvbl9kZWZhdWx0MiIsICJpbXBvcnRfdnVlNCIsICJfaG9pc3RlZF8xMiIsICJyZW5kZXIyIiwgIm5vcm1hbGl6ZUNsYXNzIiwgImFjdGlvbiIsICJ3ZWlnaHQiLCAib25DbGljayIsICIkZXZlbnQiLCAiJGVtaXQiLCAiY3JlYXRlQmxvY2siLCAiJHNsb3RzIiwgInJlbmRlclNsb3QiLCAiaW5kaWNhdG9yIiwgIlZBQnV0dG9uX2RlZmF1bHQiLCAiX19zY29wZUlkIiwgIlZBQnV0dG9uX2RlZmF1bHQyIiwgImltcG9ydF92dWU1IiwgInJlbmRlcjMiLCAiVHJhbnNpdGlvbiIsICJuYW1lIiwgIm1vZGUiLCAiZGVmYXVsdCIsICJ3aXRoQ3R4IiwgIl8iLCAic2NyaXB0IiwgIlZBRmFkZVRyYW5zaXRpb25fZGVmYXVsdCIsICJpbXBvcnRfdnVlNyIsICJtZXNzYWdlc19kZWZhdWx0IiwgInZhcmlhbnRzIiwgImhhbnMiLCAic3BhY2UiLCAiY2xvc2UiLCAiaGFudCIsICJpbXBvcnRfdnVlNiIsICJWQUxJRF9WQVJJQU5UUyIsICJ3Z1VzZXJWYXJpYW50IiwgInJlZiIsICJfbXckY29uZmlnJGdldCIsICJtdyIsICJjb25maWciLCAiZ2V0IiwgImlzTW9iaWxlRGV2aWNlIiwgIm1hdGNoTWVkaWEiLCAibWF0Y2hlcyIsICJnZXRNb3VudFBvaW50IiwgIl9kb2N1bWVudCRxdWVyeVNlbGVjdCIsICJfZG9jdW1lbnQkcXVlcnlTZWxlY3QyIiwgImRvY3VtZW50IiwgInF1ZXJ5U2VsZWN0b3JBbGwiLCAiYm9keSIsICJxdWVyeVNlbGVjdG9yIiwgImluZmVycmVkVmFyaWFudCIsICJjb21wdXRlZCIsICJpbmNsdWRlcyIsICJ2YWx1ZSIsICJzaHVmZmxlVmFyaWFudCIsICJsYXN0IiwgInRhcmdldEFycmF5IiwgImZpbHRlciIsICJpIiwgInJhbmRvbUluZGV4IiwgIk1hdGgiLCAiZmxvb3IiLCAicmFuZG9tIiwgImxlbmd0aCIsICJpMThuVmFyaWFudCIsICJ1c2VJMThuIiwgIl9jdXJyZW50TXNnc0dyb3VwJGtleSIsICJjdXJyZW50TXNnc0dyb3VwIiwgImNvdW50ZXIiLCAidXNlVW5pcXVlSWQiLCAiY29uY2F0IiwgInVzZVVuaXF1ZUlkX2RlZmF1bHQiLCAiaW1wb3J0X3Z1ZTgiLCAiSU5URVJWQUwiLCAidXNlU2h1ZmZsZWRWYXJpYW50IiwgImlzRnJlZXplZCIsICJyZXN1bHQiLCAiaWQiLCAid2F0Y2giLCAibmV3VmFsdWUiLCAiX2luZmVycmVkVmFyaWFudCR2YWx1IiwgImNsZWFySW50ZXJ2YWwiLCAid2luZG93IiwgInNldEludGVydmFsIiwgImltbWVkaWF0ZSIsICJ1c2VTaHVmZmxlZFZhcmlhbnRfZGVmYXVsdCIsICJpbXBvcnRfdnVlOSIsICJ1c2VNb2RlbFdyYXBwZXIiLCAicHJvcHMiLCAiZW1pdCIsICJzZXQiLCAidXNlTW9kZWxXcmFwcGVyX2RlZmF1bHQiLCAiaW1wb3J0X3Z1ZTEwIiwgInVzZURlZmF1bHQiLCAiZGVmYXVsdFZhbHVlIiwgInJlYWxSZWYiLCAic2hhbGxvd1JlZiIsICJkZWVwIiwgInVzZURlZmF1bHRfZGVmYXVsdCIsICJfX3Byb3BzIiwgIl9fZW1pdCIsICJwcm9tcHQiLCAidGl0bGVJZCIsICJkZXNjSWQiLCAiaXNPcGVuIiwgImlzRGlzYWJsZWQiLCAiaXNWYXJpYW50TmFycm93ZWQiLCAic2h1ZmZsZWRWYXJpYW50IiwgIm9wdE91dEFuZENsb3NlIiwgInNlbGVjdCIsICJ2YXJpYW50IiwgImVsZW1lbnQiLCAiYWRkRXZlbnRMaXN0ZW5lciIsICJldiIsICJidXR0b25zIiwgImF1dG9DbG9zZSIsICJkaXNhYmxlZCIsICJpbXBvcnRfdnVlMTMiLCAiX3dpdGhTY29wZUlkIiwgIm4iLCAicHVzaFNjb3BlSWQiLCAicG9wU2NvcGVJZCIsICJfaG9pc3RlZF8xMyIsICJfaG9pc3RlZF8yMiIsICJfaG9pc3RlZF8zMiIsICJfaG9pc3RlZF80MiIsICJfaG9pc3RlZF81MiIsICJfaG9pc3RlZF82MiIsICJfaG9pc3RlZF83MiIsICJfaG9pc3RlZF84MiIsICJyZW5kZXI0IiwgImFwcGVhciIsICJvcGVuIiwgImxhbmciLCAicm9sZSIsICJjcmVhdGVWTm9kZSIsICJ0aXRsZSIsICJjcmVhdGVUZXh0Vk5vZGUiLCAidG9EaXNwbGF5U3RyaW5nIiwgIm1lc3NhZ2VzIiwgIkZyYWdtZW50IiwgInJlbmRlckxpc3QiLCAiVkFWYXJpYW50UHJvbXB0X2RlZmF1bHQiLCAiVkFWYXJpYW50UHJvbXB0X2RlZmF1bHQyIiwgImltcG9ydF92dWUxNyIsICJtb2RlbFZhbHVlIiwgImltcG9ydF92dWUxNSIsICJyZW5kZXI1IiwgIndpdGhEaXJlY3RpdmVzIiwgInZNb2RlbFNlbGVjdCIsICJWQVNlbGVjdF9kZWZhdWx0IiwgIlZBU2VsZWN0X2RlZmF1bHQyIiwgInNlbGVjdGVkVmFyaWFudCIsICJfaW5mZXJyZWRWYXJpYW50JHZhbHUyIiwgImltcG9ydF92dWUxOCIsICJfaG9pc3RlZF8xNCIsICJfaG9pc3RlZF8yMyIsICJfaG9pc3RlZF8zMyIsICJfaG9pc3RlZF80MyIsICJfaG9pc3RlZF81MyIsICJfaG9pc3RlZF82MyIsICJfaG9pc3RlZF83MyIsICJyZW5kZXI2IiwgIlZBVmFyaWFudFByb21wdE1vYmlsZV9kZWZhdWx0IiwgIlZBVmFyaWFudFByb21wdE1vYmlsZV9kZWZhdWx0MiIsICJpc01vYmlsZSIsICJkZXNrdG9wTW91bnRQb2ludCIsICJzZXRWYXJpYW50IiwgInNldExvY2FsVmFyaWFudCIsICJyZWRpcmVjdCIsICJmb3JjZWQiLCAib25PcHRPdXQiLCAic2V0T3B0T3V0IiwgImltcG9ydF92dWUyMSIsICJyZW5kZXI3IiwgIlRlbGVwb3J0IiwgInRvIiwgIm9uT3B0b3V0IiwgIm9uU2VsZWN0IiwgIkFwcF9kZWZhdWx0IiwgIkFwcF9kZWZhdWx0MiIsICJyb290IiwgImNyZWF0ZUVsZW1lbnQiLCAiYXBwZW5kIiwgImNyZWF0ZUFwcCIsICJtb3VudCJdCn0K +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL1ZhcmlhbnRBbGx5RGlhbG9nL1ZhcmlhbnRBbGx5RGlhbG9nLnRzIiwgImRpc3QvVmFyaWFudEFsbHlEaWFsb2cvc3JjL1ZhcmlhbnRBbGx5RGlhbG9nL0FwcC52dWUiLCAiZGlzdC9WYXJpYW50QWxseURpYWxvZy9zcmMvVmFyaWFudEFsbHlEaWFsb2cvY29tcG9uZW50cy9WQVZhcmlhbnRQcm9tcHQudnVlIiwgImRpc3QvVmFyaWFudEFsbHlEaWFsb2cvc2ZjLXRlbXBsYXRlOkQ6L0dpdFJlcG9zaXRvcnkvUWl1d2VuR2FkZ2V0cy9zcmMvVmFyaWFudEFsbHlEaWFsb2cvY29tcG9uZW50cy9WQUljb24udnVlP3R5cGU9dGVtcGxhdGUiLCAic3JjL1ZhcmlhbnRBbGx5RGlhbG9nL2NvbXBvbmVudHMvVkFJY29uLnZ1ZSIsICJkaXN0L1ZhcmlhbnRBbGx5RGlhbG9nL3NmYy10ZW1wbGF0ZTpEOi9HaXRSZXBvc2l0b3J5L1FpdXdlbkdhZGdldHMvc3JjL1ZhcmlhbnRBbGx5RGlhbG9nL2NvbXBvbmVudHMvVkFCdXR0b24udnVlP3R5cGU9dGVtcGxhdGUiLCAic3JjL1ZhcmlhbnRBbGx5RGlhbG9nL2NvbXBvbmVudHMvVkFCdXR0b24udnVlIiwgImRpc3QvVmFyaWFudEFsbHlEaWFsb2cvc2ZjLXRlbXBsYXRlOkQ6L0dpdFJlcG9zaXRvcnkvUWl1d2VuR2FkZ2V0cy9zcmMvVmFyaWFudEFsbHlEaWFsb2cvY29tcG9uZW50cy9WQUZhZGVUcmFuc2l0aW9uLnZ1ZT90eXBlPXRlbXBsYXRlIiwgInNyYy9WYXJpYW50QWxseURpYWxvZy9jb21wb25lbnRzL1ZBRmFkZVRyYW5zaXRpb24udnVlIiwgInNyYy9WYXJpYW50QWxseURpYWxvZy9jb21wb3NhYmxlcy91c2VJMThuLnRzIiwgInNyYy9WYXJpYW50QWxseURpYWxvZy9tZXNzYWdlcy5qc29uIiwgInNyYy9WYXJpYW50QWxseURpYWxvZy9tb2R1bGVzL3V0aWxzLnRzIiwgInNyYy9WYXJpYW50QWxseURpYWxvZy9jb21wb3NhYmxlcy91c2VVbmlxdWVJZC50cyIsICJzcmMvVmFyaWFudEFsbHlEaWFsb2cvY29tcG9zYWJsZXMvdXNlU2h1ZmZsZWRWYXJpYW50LnRzIiwgInNyYy9WYXJpYW50QWxseURpYWxvZy9jb21wb3NhYmxlcy91c2VNb2RlbFdyYXBwZXIudHMiLCAic3JjL1ZhcmlhbnRBbGx5RGlhbG9nL2NvbXBvc2FibGVzL3VzZURlZmF1bHQudHMiLCAiZGlzdC9WYXJpYW50QWxseURpYWxvZy9zZmMtdGVtcGxhdGU6RDovR2l0UmVwb3NpdG9yeS9RaXV3ZW5HYWRnZXRzL3NyYy9WYXJpYW50QWxseURpYWxvZy9jb21wb25lbnRzL1ZBVmFyaWFudFByb21wdC52dWU/dHlwZT10ZW1wbGF0ZSIsICJzcmMvVmFyaWFudEFsbHlEaWFsb2cvY29tcG9uZW50cy9WQVZhcmlhbnRQcm9tcHQudnVlIiwgImRpc3QvVmFyaWFudEFsbHlEaWFsb2cvc3JjL1ZhcmlhbnRBbGx5RGlhbG9nL2NvbXBvbmVudHMvVkFWYXJpYW50UHJvbXB0TW9iaWxlLnZ1ZSIsICJkaXN0L1ZhcmlhbnRBbGx5RGlhbG9nL3NmYy10ZW1wbGF0ZTpEOi9HaXRSZXBvc2l0b3J5L1FpdXdlbkdhZGdldHMvc3JjL1ZhcmlhbnRBbGx5RGlhbG9nL2NvbXBvbmVudHMvVkFTZWxlY3QudnVlP3R5cGU9dGVtcGxhdGUiLCAic3JjL1ZhcmlhbnRBbGx5RGlhbG9nL2NvbXBvbmVudHMvVkFTZWxlY3QudnVlIiwgImRpc3QvVmFyaWFudEFsbHlEaWFsb2cvc2ZjLXRlbXBsYXRlOkQ6L0dpdFJlcG9zaXRvcnkvUWl1d2VuR2FkZ2V0cy9zcmMvVmFyaWFudEFsbHlEaWFsb2cvY29tcG9uZW50cy9WQVZhcmlhbnRQcm9tcHRNb2JpbGUudnVlP3R5cGU9dGVtcGxhdGUiLCAic3JjL1ZhcmlhbnRBbGx5RGlhbG9nL2NvbXBvbmVudHMvVkFWYXJpYW50UHJvbXB0TW9iaWxlLnZ1ZSIsICJkaXN0L1ZhcmlhbnRBbGx5RGlhbG9nL3NmYy10ZW1wbGF0ZTpEOi9HaXRSZXBvc2l0b3J5L1FpdXdlbkdhZGdldHMvc3JjL1ZhcmlhbnRBbGx5RGlhbG9nL0FwcC52dWU/dHlwZT10ZW1wbGF0ZSIsICJzcmMvVmFyaWFudEFsbHlEaWFsb2cvQXBwLnZ1ZSJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHtjcmVhdGVBcHB9IGZyb20gJ3Z1ZSc7XG5pbXBvcnQgQXBwIGZyb20gJy4vQXBwLnZ1ZSc7XG5cbmNvbnN0IHJvb3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbmRvY3VtZW50LmJvZHkuYXBwZW5kKHJvb3QpO1xuY3JlYXRlQXBwKEFwcCkubW91bnQocm9vdCk7XG4iLCAiPHNjcmlwdCBzZXR1cCBsYW5nPVwidHNcIj5cbmltcG9ydCB7cmVmfSBmcm9tICd2dWUnO1xuaW1wb3J0IHtzZXRMb2NhbFZhcmlhbnQsIHJlZGlyZWN0LCBWYWxpZFZhcmlhbnQsIHNldE9wdE91dH0gZnJvbSAnZXh0LmdhZGdldC5WYXJpYW50QWxseSc7XG5pbXBvcnQgVkFWYXJpYW50UHJvbXB0IGZyb20gJy4vY29tcG9uZW50cy9WQVZhcmlhbnRQcm9tcHQudnVlJztcbmltcG9ydCBWQVZhcmlhbnRQcm9tcHRNb2JpbGUgZnJvbSAnLi9jb21wb25lbnRzL1ZBVmFyaWFudFByb21wdE1vYmlsZS52dWUnO1xuaW1wb3J0IHtnZXRNb3VudFBvaW50LCBpc01vYmlsZURldmljZX0gZnJvbSAnLi9tb2R1bGVzL3V0aWxzJztcblxuY29uc3QgaXNPcGVuID0gcmVmKHRydWUpO1xuY29uc3QgaXNEaXNhYmxlZCA9IHJlZihmYWxzZSk7XG5jb25zdCBpc01vYmlsZSA9IGlzTW9iaWxlRGV2aWNlKCk7XG5jb25zdCBkZXNrdG9wTW91bnRQb2ludCA9IGdldE1vdW50UG9pbnQoKTtcblxuZnVuY3Rpb24gc2V0VmFyaWFudCh2YXJpYW50OiBWYWxpZFZhcmlhbnQpIHtcblx0c2V0TG9jYWxWYXJpYW50KHZhcmlhbnQpO1xuXHRyZWRpcmVjdCh2YXJpYW50LCB7Zm9yY2VkOiB0cnVlfSk7XG59XG5cbi8vIEJyb3dzZXIgc3VwcG9ydDogaU9TIFNhZmFyaSA8IDE1XG4vLyBXb3JrIGFyb3VuZCBTYWZhcmkgZmlyaW5nIHNjcm9sbCBldmVudCBhdCB1bmV4cGVjdGVkIGNvbmRpdGlvbnMgKGUuZy4gcG9wcGluZyB1cCBTZWxlY3QpXG5hZGRFdmVudExpc3RlbmVyKGlzTW9iaWxlID8gJ3RvdWNobW92ZScgOiAnc2Nyb2xsJywgKCkgPT4ge1xuXHRpZiAoIWlzRGlzYWJsZWQudmFsdWUpIHtcblx0XHRpc09wZW4udmFsdWUgPSBmYWxzZTtcblx0fVxufSk7XG5cbmZ1bmN0aW9uIG9uT3B0T3V0KCkge1xuXHRzZXRPcHRPdXQoKTtcbn1cbjwvc2NyaXB0PlxuXG48dGVtcGxhdGU+XG5cdDxUZWxlcG9ydCA6dG89XCJkZXNrdG9wTW91bnRQb2ludFwiPlxuXHRcdDxWQVZhcmlhbnRQcm9tcHRcblx0XHRcdHYtaWY9XCIhaXNNb2JpbGVcIlxuXHRcdFx0di1tb2RlbDpvcGVuPVwiaXNPcGVuXCJcblx0XHRcdHYtbW9kZWw6ZGlzYWJsZWQ9XCJpc0Rpc2FibGVkXCJcblx0XHRcdDphdXRvLWNsb3NlPVwiZmFsc2VcIlxuXHRcdFx0QG9wdG91dD1cIm9uT3B0T3V0XCJcblx0XHRcdEBzZWxlY3Q9XCJzZXRWYXJpYW50XCJcblx0XHQvPlxuXHQ8L1RlbGVwb3J0PlxuXG5cdDwhLS0gVGVsZXBvcnQgdG8gYm9keSBiZWNhdXNlIHRoZXkgYXJlIGFsd2F5cyBmbG9hdGVkIGF0IGJvdHRvbSAtLT5cblx0PFRlbGVwb3J0IHRvPVwiYm9keVwiPlxuXHRcdDxWQVZhcmlhbnRQcm9tcHRNb2JpbGVcblx0XHRcdHYtaWY9XCJpc01vYmlsZVwiXG5cdFx0XHR2LW1vZGVsOm9wZW49XCJpc09wZW5cIlxuXHRcdFx0di1tb2RlbDpkaXNhYmxlZD1cImlzRGlzYWJsZWRcIlxuXHRcdFx0QG9wdG91dD1cIm9uT3B0T3V0XCJcblx0XHRcdEBzZWxlY3Q9XCJzZXRWYXJpYW50XCJcblx0XHQvPlxuXHQ8L1RlbGVwb3J0PlxuPC90ZW1wbGF0ZT5cblxuPHN0eWxlIGxhbmc9XCJsZXNzXCI+XG5AaW1wb3J0IChyZWZlcmVuY2UpICcuL3N0eWxlcy90b2tlbnMubGVzcyc7XG5cbi52YS12YXJpYW50LXByb21wdCB7XG5cdC8vIFZlY3RvciAyMDIyIHNwZWNpZmljIGFkanVzdG1lbnRzXG5cdC5za2luLXZlY3Rvci0yMDIyICYge1xuXHRcdC8vIENhbGN1bGF0ZWQgZnJvbSBWZWN0b3IgMjAyMiBzb3VyY2UgY29kZVxuXHRcdEB2ZWN0b3ItMjAyMi1oZWFkZXItaGVpZ2h0OiA1MHB4ICsgMiAqIDhweDtcblx0XHRtYXgtaGVpZ2h0OiBjYWxjKDEwMCUgLSBAc3BhY2luZy12ZXJ0aWNhbC1kaWFsb2cgLSBAdmVjdG9yLTIwMjItaGVhZGVyLWhlaWdodCk7XG5cblx0XHQudmVjdG9yLXRvYy1hdmFpbGFibGUudmVjdG9yLWZlYXR1cmUtdG9jLXBpbm5lZC1jbGllbnRwcmVmLTEgJixcblx0XHQudmVjdG9yLWZlYXR1cmUtbWFpbi1tZW51LXBpbm5lZC1lbmFibGVkICYge1xuXHRcdFx0QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAwMHB4KSBhbmQgKG1heC13aWR0aDogMTIwMHB4KSB7XG5cdFx0XHRcdGxlZnQ6IHVuc2V0O1xuXG5cdFx0XHRcdC8vIENhbGN1bGF0ZWQgZnJvbSBWZWN0b3IgMjAyMiBzb3VyY2UgY29kZVxuXHRcdFx0XHQvLyBJbiB0aGlzIHdpZHRoIHRoaXMgcHJvbXB0IHdpbGwgbm90IG9ic2N1cmUgYXJ0aWNsZSBjb250ZW50XG5cdFx0XHRcdEB2ZWN0b3ItMjAyMi1sZWZ0LXBhZGRpbmc6IDIuNzVlbTtcblx0XHRcdFx0bWFyZ2luLWxlZnQ6IC0oQHZlY3Rvci0yMDIyLWxlZnQtcGFkZGluZyAvIDMgKiAyKTtcblx0XHRcdFx0bWF4LXdpZHRoOiBjYWxjKDEyLjI1ZW0gKyAzNnB4KTtcblx0XHRcdFx0cGFkZGluZzogQHNwYWNpbmctMTAwO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMDBweCkge1xuXHRcdFx0QHZlY3Rvci0yMDIyLWxlZnQtcGFkZGluZzogMy4yNWVtO1xuXHRcdFx0bGVmdDogdW5zZXQ7XG5cdFx0XHRtYXJnaW4tbGVmdDogLShAdmVjdG9yLTIwMjItbGVmdC1wYWRkaW5nIC8gMyAqIDIpO1xuXHRcdFx0bWF4LXdpZHRoOiBjYWxjKDE1Ljc1ZW0gKyAzNnB4KTtcblx0XHR9XG5cdH1cbn1cbjwvc3R5bGU+XG4uL21vZHVsZXMvdXRpbHNcbiIsICI8c2NyaXB0IHNldHVwIGxhbmc9XCJ0c1wiPlxuaW1wb3J0IHtyZWYsIHdhdGNofSBmcm9tICd2dWUnO1xuaW1wb3J0IHt0eXBlIFZhbGlkVmFyaWFudH0gZnJvbSAnZXh0LmdhZGdldC5WYXJpYW50QWxseSc7XG5pbXBvcnQgVkFCdXR0b24gZnJvbSAnLi9WQUJ1dHRvbi52dWUnO1xuaW1wb3J0IFZBRmFkZVRyYW5zaXRpb24gZnJvbSAnLi9WQUZhZGVUcmFuc2l0aW9uLnZ1ZSc7XG5pbXBvcnQgdXNlSTE4biwge2kxOG5WYXJpYW50fSBmcm9tICcuLi9jb21wb3NhYmxlcy91c2VJMThuJztcbmltcG9ydCB1c2VVbmlxdWVJZCBmcm9tICcuLi9jb21wb3NhYmxlcy91c2VVbmlxdWVJZCc7XG5pbXBvcnQgdXNlU2h1ZmZsZWRWYXJpYW50IGZyb20gJy4uL2NvbXBvc2FibGVzL3VzZVNodWZmbGVkVmFyaWFudCc7XG5pbXBvcnQge1ZBTElEX1ZBUklBTlRTLCBpbmZlcnJlZFZhcmlhbnR9IGZyb20gJy4uL21vZHVsZXMvdXRpbHMnO1xuaW1wb3J0IG1lc3NhZ2VzIGZyb20gJy4uL21lc3NhZ2VzLmpzb24nO1xuaW1wb3J0IHVzZU1vZGVsV3JhcHBlciBmcm9tICcuLi9jb21wb3NhYmxlcy91c2VNb2RlbFdyYXBwZXInO1xuaW1wb3J0IHVzZURlZmF1bHQgZnJvbSAnLi4vY29tcG9zYWJsZXMvdXNlRGVmYXVsdCc7XG5cbmNvbnN0IHByb3BzID0gd2l0aERlZmF1bHRzKFxuXHRkZWZpbmVQcm9wczx7XG5cdFx0b3BlbjogYm9vbGVhbjtcblx0XHRkaXNhYmxlZD86IGJvb2xlYW47XG5cdFx0YXV0b0Nsb3NlPzogYm9vbGVhbjtcblx0fT4oKSxcblx0e1xuXHRcdGRpc2FibGVkOiBmYWxzZSxcblx0XHRhdXRvQ2xvc2U6IGZhbHNlLFxuXHR9XG4pO1xuY29uc3QgZW1pdCA9IGRlZmluZUVtaXRzPHtcblx0KGU6ICd1cGRhdGU6b3BlbicsIHZhbHVlOiBib29sZWFuKTogdm9pZDtcblx0KGU6ICd1cGRhdGU6ZGlzYWJsZWQnLCB2YWx1ZTogYm9vbGVhbik6IHZvaWQ7XG5cdChlOiAnc2VsZWN0JywgdmFyaWFudDogVmFsaWRWYXJpYW50KTogdm9pZDtcblx0KGU6ICdvcHRvdXQnKTogdm9pZDtcbn0+KCk7XG5cbmNvbnN0IHByb21wdCA9IHJlZjxIVE1MRWxlbWVudCB8IG51bGw+KG51bGwpO1xuY29uc3QgdGl0bGVJZCA9IHVzZVVuaXF1ZUlkKCk7XG5jb25zdCBkZXNjSWQgPSB1c2VVbmlxdWVJZCgpO1xuY29uc3QgaXNPcGVuID0gdXNlTW9kZWxXcmFwcGVyKHByb3BzLCBlbWl0LCAnb3BlbicpO1xuY29uc3QgaXNEaXNhYmxlZCA9IHVzZU1vZGVsV3JhcHBlcihwcm9wcywgZW1pdCwgJ2Rpc2FibGVkJyk7XG5jb25zdCBpc1ZhcmlhbnROYXJyb3dlZCA9IHVzZURlZmF1bHQoKCkgPT4gaW5mZXJyZWRWYXJpYW50LnZhbHVlICE9PSBudWxsKTtcbmNvbnN0IHNodWZmbGVkVmFyaWFudCA9IHVzZVNodWZmbGVkVmFyaWFudChpc1ZhcmlhbnROYXJyb3dlZCk7XG5cbmZ1bmN0aW9uIG9wdE91dEFuZENsb3NlKCkge1xuXHRlbWl0KCdvcHRvdXQnKTtcblx0aXNPcGVuLnZhbHVlID0gZmFsc2U7XG59XG5cbmZ1bmN0aW9uIHNlbGVjdCh2YXJpYW50OiBWYWxpZFZhcmlhbnQpIHtcblx0aXNEaXNhYmxlZC52YWx1ZSA9IHRydWU7XG5cdGVtaXQoJ3NlbGVjdCcsIHZhcmlhbnQpO1xufVxuXG53YXRjaChwcm9tcHQsICgpID0+IHtcblx0Y29uc3QgZWxlbWVudCA9IHByb21wdC52YWx1ZTtcblx0aWYgKGVsZW1lbnQgIT09IG51bGwpIHtcblx0XHRlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCAoZXYpID0+IHtcblx0XHRcdC8vIERvIG5vdCBkaXNtaXNzIGlmIGFueSBidXR0b24gaXMgcHJlc3NlZCBvciB0aGUgcHJvbXB0IGlzIGRpc2FibGVkXG5cdFx0XHRpZiAoZXYuYnV0dG9ucyA9PT0gMCAmJiBwcm9wcy5hdXRvQ2xvc2UgJiYgIXByb3BzLmRpc2FibGVkKSB7XG5cdFx0XHRcdGlzT3Blbi52YWx1ZSA9IGZhbHNlO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG59KTtcbjwvc2NyaXB0PlxuXG48dGVtcGxhdGU+XG5cdDxUcmFuc2l0aW9uIG5hbWU9XCJ2YS12YXJpYW50LXByb21wdFwiIGFwcGVhcj5cblx0XHQ8ZGl2XG5cdFx0XHR2LWlmPVwib3BlblwiXG5cdFx0XHRyZWY9XCJwcm9tcHRcIlxuXHRcdFx0Omxhbmc9XCJgemgtJHtpMThuVmFyaWFudH1gXCJcblx0XHRcdGNsYXNzPVwidmEtdmFyaWFudC1wcm9tcHRcIlxuXHRcdFx0cm9sZT1cImRpYWxvZ1wiXG5cdFx0XHRhcmlhLW1vZGFsPVwiZmFsc2VcIlxuXHRcdFx0OmFyaWEtbGFiZWxsZWRieT1cInRpdGxlSWRcIlxuXHRcdFx0OmFyaWEtZGVzY3JpYmVkYnk9XCJkZXNjSWRcIlxuXHRcdD5cblx0XHRcdDxWQUJ1dHRvblxuXHRcdFx0XHRjbGFzcz1cInZhLXZhcmlhbnQtcHJvbXB0X19jbG9zZVwiXG5cdFx0XHRcdHdlaWdodD1cInF1aWV0XCJcblx0XHRcdFx0aWNvbj1cImNsb3NlXCJcblx0XHRcdFx0OnRpdGxlPVwidXNlSTE4bignY2xvc2UnKVwiXG5cdFx0XHRcdDphcmlhLWxhYmVsPVwidXNlSTE4bignY2xvc2UnKVwiXG5cdFx0XHRcdDpkaXNhYmxlZD1cImRpc2FibGVkXCJcblx0XHRcdFx0QGNsaWNrPVwib3B0T3V0QW5kQ2xvc2VcIlxuXHRcdFx0Lz5cblx0XHRcdDxoMiA6aWQ9XCJ0aXRsZUlkXCIgY2xhc3M9XCJ2YS12YXJpYW50LXByb21wdF9fdGl0bGUgdmEtdGl0bGVcIj5cblx0XHRcdFx0e3sgdXNlSTE4bihpc1ZhcmlhbnROYXJyb3dlZCA/ICd2cC5oZWFkZXIuYWx0JyA6ICd2cC5oZWFkZXInKSB9fTxiciAvPlxuXHRcdFx0XHQ8VkFGYWRlVHJhbnNpdGlvbj5cblx0XHRcdFx0XHQ8c3BhblxuXHRcdFx0XHRcdFx0di1pZj1cIiFpc1ZhcmlhbnROYXJyb3dlZFwiXG5cdFx0XHRcdFx0XHQ6a2V5PVwic2h1ZmZsZWRWYXJpYW50XCJcblx0XHRcdFx0XHRcdDpsYW5nPVwiYHpoLSR7c2h1ZmZsZWRWYXJpYW50fWBcIlxuXHRcdFx0XHRcdFx0Y2xhc3M9XCJ2YS12YXJpYW50LXByb21wdF9fdGl0bGVfX3ZhcmlhbnRcIlxuXHRcdFx0XHRcdFx0Pnt7IG1lc3NhZ2VzLnZhcmlhbnRzW3NodWZmbGVkVmFyaWFudF0gfX08L3NwYW5cblx0XHRcdFx0XHQ+XG5cdFx0XHRcdDwvVkFGYWRlVHJhbnNpdGlvbj5cblx0XHRcdDwvaDI+XG5cdFx0XHQ8cCA6aWQ9XCJkZXNjSWRcIiBjbGFzcz1cInZhLXZhcmlhbnQtcHJvbXB0X19kZXNjIHZhLXBhcmFcIj5cblx0XHRcdFx0e3sgdXNlSTE4bihpc1ZhcmlhbnROYXJyb3dlZCA/ICd2cC5tYWluLmFsdCcgOiAndnAubWFpbicpIH19XG5cdFx0XHQ8L3A+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwidmEtdmFyaWFudC1wcm9tcHRfX29wdGlvbnNcIj5cblx0XHRcdFx0PCEtLSBpbmZlcnJlZFZhcmlhbnQgaXMgbm9uLW51bGwsIGd1YXJkZWQgYnkgaXNWYXJpYW50TmFycm93ZWQgLS0+XG5cdFx0XHRcdDxWQUJ1dHRvblxuXHRcdFx0XHRcdHYtZm9yPVwidmFyaWFudCBpbiBpc1ZhcmlhbnROYXJyb3dlZCAmJiBpbmZlcnJlZFZhcmlhbnQgIT09IG51bGxcblx0XHRcdFx0XHRcdD8gW2luZmVycmVkVmFyaWFudF1cblx0XHRcdFx0XHRcdDogVkFMSURfVkFSSUFOVFNcIlxuXHRcdFx0XHRcdDprZXk9XCJ2YXJpYW50XCJcblx0XHRcdFx0XHRjbGFzcz1cInZhLXZhcmlhbnQtcHJvbXB0X19vcHRpb25zX19idXR0b25cIlxuXHRcdFx0XHRcdDpjbGFzcz1cInsndmEtdmFyaWFudC1wcm9tcHRfX29wdGlvbnNfX2J1dHRvbi0tcHJpbWFyeSc6IGlzVmFyaWFudE5hcnJvd2VkfVwiXG5cdFx0XHRcdFx0aW5kaWNhdG9yPVwiYXJyb3dOZXh0XCJcblx0XHRcdFx0XHR3ZWlnaHQ9XCJxdWlldFwiXG5cdFx0XHRcdFx0YWN0aW9uPVwicHJvZ3Jlc3NpdmVcIlxuXHRcdFx0XHRcdDpsYW5nPVwidmFyaWFudFwiXG5cdFx0XHRcdFx0OmRpc2FibGVkPVwiZGlzYWJsZWRcIlxuXHRcdFx0XHRcdEBjbGljaz1cInNlbGVjdCh2YXJpYW50KVwiXG5cdFx0XHRcdD5cblx0XHRcdFx0XHR7eyBtZXNzYWdlcy52YXJpYW50c1t2YXJpYW50XSB9fVxuXHRcdFx0XHQ8L1ZBQnV0dG9uPlxuXHRcdFx0XHQ8VkFCdXR0b25cblx0XHRcdFx0XHR2LWlmPVwiaXNWYXJpYW50TmFycm93ZWRcIlxuXHRcdFx0XHRcdGNsYXNzPVwidmEtdmFyaWFudC1wcm9tcHRfX29wdGlvbnNfX2J1dHRvblwiXG5cdFx0XHRcdFx0aW5kaWNhdG9yPVwiYXJyb3dOZXh0XCJcblx0XHRcdFx0XHR3ZWlnaHQ9XCJxdWlldFwiXG5cdFx0XHRcdFx0YWN0aW9uPVwicHJvZ3Jlc3NpdmVcIlxuXHRcdFx0XHRcdDpkaXNhYmxlZD1cImRpc2FibGVkXCJcblx0XHRcdFx0XHRAY2xpY2s9XCJpc1ZhcmlhbnROYXJyb3dlZCA9IGZhbHNlXCJcblx0XHRcdFx0PlxuXHRcdFx0XHRcdHt7IHVzZUkxOG4oJ3ZwLmJ1dHRvbi5vdGhlcicpIH19XG5cdFx0XHRcdDwvVkFCdXR0b24+XG5cdFx0XHQ8L2Rpdj5cblx0XHRcdDxmb290ZXIgY2xhc3M9XCJ2YS12YXJpYW50LXByb21wdF9fZm9vdGVyXCI+XG5cdFx0XHRcdDxwIGNsYXNzPVwidmEtcGFyYSB2YS1wYXJhLS1zdWJ0bGVcIj5cblx0XHRcdFx0XHR7eyB1c2VJMThuKCd2cC5tYWluLmV4dCcpIH19XG5cdFx0XHRcdDwvcD5cblx0XHRcdDwvZm9vdGVyPlxuXHRcdDwvZGl2PlxuXHQ8L1RyYW5zaXRpb24+XG48L3RlbXBsYXRlPlxuXG48c3R5bGUgc2NvcGVkIGxhbmc9XCJsZXNzXCI+XG5AaW1wb3J0IChyZWZlcmVuY2UpICcuLi9zdHlsZXMvbWl4aW5zLmxlc3MnO1xuQGltcG9ydCAocmVmZXJlbmNlKSAnLi4vc3R5bGVzL3Rva2Vucy5sZXNzJztcblxuLnZhLXRpdGxlIHtcblx0Ym9yZGVyOiAwOyAvLyBSZXNldFxuXHRwYWRkaW5nOiAwOyAvLyBSZXNldFxuXHRvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xuXG5cdGZvbnQtc2l6ZTogQGZvbnQtc2l6ZS14eC1sYXJnZTtcblx0Zm9udC13ZWlnaHQ6IEBmb250LXdlaWdodC1ib2xkO1xuXHRtYXJnaW46IEBzcGFjaW5nLTUwIEBzcGFjaW5nLTA7XG5cdGNvbG9yOiBAY29sb3ItYmFzZTtcbn1cblxuLnZhLXBhcmEge1xuXHRvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xuXHRtYXJnaW4tdG9wOiBAc3BhY2luZy01MDtcblx0bWFyZ2luLWJvdHRvbTogQHNwYWNpbmctNTA7XG5cdGNvbG9yOiBAY29sb3ItYmFzZTtcblxuXHQmLS1zdWJ0bGUge1xuXHRcdGNvbG9yOiBAY29sb3Itc3VidGxlO1xuXHRcdGZvbnQtc2l6ZTogQGZvbnQtc2l6ZS14LXNtYWxsO1xuXHRcdG1hcmdpbi1ib3R0b206IEBzcGFjaW5nLTM1O1xuXHR9XG59XG5cbi52YS12YXJpYW50LXByb21wdCB7XG5cdGJveC1zaXppbmc6IEBib3gtc2l6aW5nLWJhc2U7XG5cdHotaW5kZXg6IEB6LWluZGV4LW92ZXJsYXk7XG5cdHBhZGRpbmc6IEBzcGFjaW5nLTEwMCBAc3BhY2luZy0xNTA7XG5cdHBvc2l0aW9uOiBmaXhlZDtcblx0bGVmdDogQHNwYWNpbmctaG9yaXpvbnRhbC1kaWFsb2c7XG5cdGJvdHRvbTogQHNwYWNpbmctdmVydGljYWwtZGlhbG9nO1xuXHR3aWR0aDogY2FsYygxMDAlIC0gQHNwYWNpbmctaG9yaXpvbnRhbC1kaWFsb2cgKiAyKTtcblx0bWF4LXdpZHRoOiAxOGVtO1xuXHRtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMmVtKTtcblxuXHRvdmVyZmxvdzogYXV0bztcblx0b3ZlcnNjcm9sbC1iZWhhdmlvcjogbm9uZTtcblx0YmFja2dyb3VuZC1jb2xvcjogQGJhY2tncm91bmQtY29sb3ItYmFzZTtcblx0Ym9yZGVyOiBAYm9yZGVyLWJhc2U7XG5cdGJvcmRlci1yYWRpdXM6IEBib3JkZXItcmFkaXVzLWJhc2U7XG5cdGJveC1zaGFkb3c6IEBib3gtc2hhZG93LWRyb3AtbWVkaXVtO1xuXHRmb250LWZhbWlseTogQGZvbnQtZmFtaWx5LXN5c3RlbS1zYW5zO1xuXHRmb250LXNpemU6IDFyZW07IC8vIFJlc2V0XG5cdGxpbmUtaGVpZ2h0OiBub3JtYWw7IC8vIFJlc2V0XG5cblx0Jl9fY2xvc2Uge1xuXHRcdHBhZGRpbmc6IEBzcGFjaW5nLXNob3J0aGFuZC1idXR0b24taWNvbi1vbmx5O1xuXHRcdGZsb2F0OiByaWdodDtcblx0XHRtYXJnaW4tdG9wOiBAc3BhY2luZy01MDtcblx0XHRtYXJnaW4tcmlnaHQ6IC0oQHNwYWNpbmctaG9yaXpvbnRhbC1idXR0b24taWNvbi1vbmx5ICsgMXB4KTtcblx0fVxuXG5cdCZfX3RpdGxlIHtcblx0XHQmX192YXJpYW50IHtcblx0XHRcdGNvbG9yOiBAY29sb3ItcHJvZ3Jlc3NpdmU7XG5cdFx0fVxuXHR9XG5cblx0Jl9fb3B0aW9ucyB7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0bWFyZ2luOiBAc3BhY2luZy03NSBAc3BhY2luZy0wO1xuXG5cdFx0Ym9yZGVyOiAxcHggc29saWQgQGJvcmRlci1jb2xvci1iYXNlO1xuXHRcdGJvcmRlci1yYWRpdXM6IEBib3JkZXItcmFkaXVzLWJhc2U7XG5cblx0XHQmX19idXR0b24ge1xuXHRcdFx0Zm9udC1zaXplOiBAZm9udC1zaXplLXNtYWxsO1xuXHRcdFx0Y29sb3I6IEBjb2xvci1iYXNlO1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogQGJhY2tncm91bmQtY29sb3ItaW50ZXJhY3RpdmUtc3VidGxlO1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogMDtcblxuXHRcdFx0Ji0tcHJpbWFyeSB7XG5cdFx0XHRcdGNvbG9yOiBAY29sb3ItcHJvZ3Jlc3NpdmU7XG5cdFx0XHR9XG5cblx0XHRcdCY6aG92ZXIsXG5cdFx0XHQmOmFjdGl2ZSB7XG5cdFx0XHRcdGJvcmRlci1jb2xvcjogQGJvcmRlci1jb2xvci10cmFuc3BhcmVudDtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLyogUHJvbXB0IHRyYW5zaXRpb24gZWZmZWN0ICovXG4udmEtdmFyaWFudC1wcm9tcHQtZW50ZXItYWN0aXZlLFxuLnZhLXZhcmlhbnQtcHJvbXB0LWxlYXZlLWFjdGl2ZSB7XG5cdHRyYW5zaXRpb24tcHJvcGVydHk6IEB0cmFuc2l0aW9uLXByb3BlcnR5LWZhZGU7XG5cdHRyYW5zaXRpb24tZHVyYXRpb246IEB0cmFuc2l0aW9uLWR1cmF0aW9uLW1lZGl1bTtcblx0dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IEB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbi1zeXN0ZW07XG59XG5cbi52YS12YXJpYW50LXByb21wdC1lbnRlci1mcm9tLFxuLnZhLXZhcmlhbnQtcHJvbXB0LWxlYXZlLXRvIHtcblx0b3BhY2l0eTogMDtcbn1cbjwvc3R5bGU+XG4iLCAiaW1wb3J0IHsgY3JlYXRlQ29tbWVudFZOb2RlIGFzIF9jcmVhdGVDb21tZW50Vk5vZGUsIGNyZWF0ZUVsZW1lbnRWTm9kZSBhcyBfY3JlYXRlRWxlbWVudFZOb2RlLCBvcGVuQmxvY2sgYXMgX29wZW5CbG9jaywgY3JlYXRlRWxlbWVudEJsb2NrIGFzIF9jcmVhdGVFbGVtZW50QmxvY2sgfSBmcm9tIFwidnVlXCJcblxuY29uc3QgX2hvaXN0ZWRfMSA9IFtcIndpZHRoXCIsIFwiaGVpZ2h0XCJdXG5jb25zdCBfaG9pc3RlZF8yID0geyBrZXk6IDAgfVxuY29uc3QgX2hvaXN0ZWRfMyA9IHsga2V5OiAxIH1cbmNvbnN0IF9ob2lzdGVkXzQgPSB7IGtleTogMiB9XG5cbmV4cG9ydCBmdW5jdGlvbiByZW5kZXIoX2N0eCwgX2NhY2hlLCAkcHJvcHMsICRzZXR1cCwgJGRhdGEsICRvcHRpb25zKSB7XG4gIHJldHVybiAoX29wZW5CbG9jaygpLCBfY3JlYXRlRWxlbWVudEJsb2NrKFwic3ZnXCIsIHtcbiAgICBjbGFzczogXCJ2YS1pY29uLWJ1dHRvbl9faWNvblwiLFxuICAgIHhtbG5zOiBcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsXG4gICAgXCJ4bWxuczp4bGlua1wiOiBcImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIixcbiAgICB3aWR0aDogJHByb3BzLnNpemUsXG4gICAgaGVpZ2h0OiAkcHJvcHMuc2l6ZSxcbiAgICB2aWV3Qm94OiBcIjAgMCAyMCAyMFwiLFxuICAgIFwiYXJpYS1oaWRkZW5cIjogXCJ0cnVlXCJcbiAgfSwgW1xuICAgICgkcHJvcHMuaWNvbiA9PT0gJ2xhbmcnKVxuICAgICAgPyAoX29wZW5CbG9jaygpLCBfY3JlYXRlRWxlbWVudEJsb2NrKFwiZ1wiLCBfaG9pc3RlZF8yLCBbXG4gICAgICAgICAgX2NyZWF0ZUNvbW1lbnRWTm9kZShcIiBlc2xpbnQtZGlzYWJsZSBcIiksXG4gICAgICAgICAgX2NhY2hlWzBdIHx8IChfY2FjaGVbMF0gPSBfY3JlYXRlRWxlbWVudFZOb2RlKFwicGF0aFwiLCB7IGQ6IFwiTTIwIDE4aC0xLjQ0YS42MS42MSAwIDAxLS40LS4xMi44MS44MSAwIDAxLS4yMy0uMzFMMTcgMTVoLTVsLTEgMi41NGEuNzcuNzcgMCAwMS0uMjIuMy41OS41OSAwIDAxLS40LjE0SDlsNC41NS0xMS40N2gxLjg5em0tMy41My00LjMxTDE0Ljg5IDkuNWExMS42MiAxMS42MiAwIDAxLS4zOS0xLjI0cS0uMDkuMzctLjE5LjY5bC0uMTkuNTYtMS41OCA0LjE5em0tNi4zLTEuNThhMTMuNDMgMTMuNDMgMCAwMS0yLjkxLTEuNDEgMTEuNDYgMTEuNDYgMCAwMDIuODEtNS4zN0gxMlY0SDcuMzFhNCA0IDAgMDAtLjItLjU2QzYuODcgMi43OSA2LjYgMiA2LjYgMmwtMS40Ny41cy40Ljg5LjYgMS41SDB2MS4zM2gyLjE1QTExLjIzIDExLjIzIDAgMDA1IDEwLjdhMTcuMTkgMTcuMTkgMCAwMS01IDIuMXEuNTYuODIuODcgMS4zOGEyMy4yOCAyMy4yOCAwIDAwNS4yMi0yLjUxIDE1LjY0IDE1LjY0IDAgMDAzLjU2IDEuNzd6TTMuNjMgNS4zM2g0LjkxYTguMTEgOC4xMSAwIDAxLTIuNDUgNC40NSA5LjExIDkuMTEgMCAwMS0yLjQ2LTQuNDV6XCIgfSwgbnVsbCwgLTEgLyogSE9JU1RFRCAqLykpLFxuICAgICAgICAgIF9jcmVhdGVDb21tZW50Vk5vZGUoXCIgZXNsaW50LWVuYWJsZSBcIilcbiAgICAgICAgXSkpXG4gICAgICA6ICgkcHJvcHMuaWNvbiA9PT0gJ2Nsb3NlJylcbiAgICAgICAgPyAoX29wZW5CbG9jaygpLCBfY3JlYXRlRWxlbWVudEJsb2NrKFwiZ1wiLCBfaG9pc3RlZF8zLCBfY2FjaGVbMV0gfHwgKF9jYWNoZVsxXSA9IFtcbiAgICAgICAgICAgIF9jcmVhdGVFbGVtZW50Vk5vZGUoXCJwYXRoXCIsIHsgZDogXCJtNC4zNCAyLjkzIDEyLjczIDEyLjczLTEuNDEgMS40MUwyLjkzIDQuMzV6XCIgfSwgbnVsbCwgLTEgLyogSE9JU1RFRCAqLyksXG4gICAgICAgICAgICBfY3JlYXRlRWxlbWVudFZOb2RlKFwicGF0aFwiLCB7IGQ6IFwiTTE3LjA3IDQuMzQgNC4zNCAxNy4wN2wtMS40MS0xLjQxTDE1LjY2IDIuOTN6XCIgfSwgbnVsbCwgLTEgLyogSE9JU1RFRCAqLylcbiAgICAgICAgICBdKSkpXG4gICAgICAgIDogKF9vcGVuQmxvY2soKSwgX2NyZWF0ZUVsZW1lbnRCbG9jayhcImdcIiwgX2hvaXN0ZWRfNCwgX2NhY2hlWzJdIHx8IChfY2FjaGVbMl0gPSBbXG4gICAgICAgICAgICBfY3JlYXRlRWxlbWVudFZOb2RlKFwicGF0aFwiLCB7IGQ6IFwiTTguNTkgMy40MiAxNC4xNyA5SDJ2MmgxMi4xN2wtNS41OCA1LjU5TDEwIDE4bDgtOC04LTh6XCIgfSwgbnVsbCwgLTEgLyogSE9JU1RFRCAqLylcbiAgICAgICAgICBdKSkpXG4gIF0sIDggLyogUFJPUFMgKi8sIF9ob2lzdGVkXzEpKVxufSIsICJpbXBvcnQgc2NyaXB0IGZyb20gXCJEOlxcXFxHaXRSZXBvc2l0b3J5XFxcXFFpdXdlbkdhZGdldHNcXFxcc3JjXFxcXFZhcmlhbnRBbGx5RGlhbG9nXFxcXGNvbXBvbmVudHNcXFxcVkFJY29uLnZ1ZT90eXBlPXNjcmlwdFwiO2ltcG9ydCB7IHJlbmRlciB9IGZyb20gXCJEOlxcXFxHaXRSZXBvc2l0b3J5XFxcXFFpdXdlbkdhZGdldHNcXFxcc3JjXFxcXFZhcmlhbnRBbGx5RGlhbG9nXFxcXGNvbXBvbmVudHNcXFxcVkFJY29uLnZ1ZT90eXBlPXRlbXBsYXRlXCI7IHNjcmlwdC5yZW5kZXIgPSByZW5kZXI7c2NyaXB0Ll9fZmlsZSA9IFwic3JjXFxcXFZhcmlhbnRBbGx5RGlhbG9nXFxcXGNvbXBvbmVudHNcXFxcVkFJY29uLnZ1ZVwiO2V4cG9ydCBkZWZhdWx0IHNjcmlwdDsiLCAiaW1wb3J0IHsgb3BlbkJsb2NrIGFzIF9vcGVuQmxvY2ssIGNyZWF0ZUJsb2NrIGFzIF9jcmVhdGVCbG9jaywgY3JlYXRlQ29tbWVudFZOb2RlIGFzIF9jcmVhdGVDb21tZW50Vk5vZGUsIHJlbmRlclNsb3QgYXMgX3JlbmRlclNsb3QsIGNyZWF0ZUVsZW1lbnRCbG9jayBhcyBfY3JlYXRlRWxlbWVudEJsb2NrLCBub3JtYWxpemVDbGFzcyBhcyBfbm9ybWFsaXplQ2xhc3MgfSBmcm9tIFwidnVlXCJcblxuY29uc3QgX2hvaXN0ZWRfMSA9IHtcbiAga2V5OiAxLFxuICBjbGFzczogXCJ2YS1idXR0b25fX3RleHRcIlxufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVuZGVyKF9jdHgsIF9jYWNoZSwgJHByb3BzLCAkc2V0dXAsICRkYXRhLCAkb3B0aW9ucykge1xuICByZXR1cm4gKF9vcGVuQmxvY2soKSwgX2NyZWF0ZUVsZW1lbnRCbG9jayhcImJ1dHRvblwiLCB7XG4gICAgY2xhc3M6IF9ub3JtYWxpemVDbGFzcyhbXCJ2YS1idXR0b25cIiwge1xuXHRcdFx0J3ZhLWJ1dHRvbi0tYWN0aW9uLXByb2dyZXNzaXZlJzogJHByb3BzLmFjdGlvbiA9PT0gJ3Byb2dyZXNzaXZlJyxcblx0XHRcdCd2YS1idXR0b24tLXdlaWdodC1xdWlldCc6ICRwcm9wcy53ZWlnaHQgPT09ICdxdWlldCcsXG5cdFx0fV0pLFxuICAgIG9uQ2xpY2s6IF9jYWNoZVswXSB8fCAoX2NhY2hlWzBdID0gJGV2ZW50ID0+IChfY3R4LiRlbWl0KCdjbGljaycpKSlcbiAgfSwgW1xuICAgICgkcHJvcHMuaWNvbiAhPT0gdW5kZWZpbmVkKVxuICAgICAgPyAoX29wZW5CbG9jaygpLCBfY3JlYXRlQmxvY2soJHNldHVwW1wiVkFJY29uXCJdLCB7XG4gICAgICAgICAga2V5OiAwLFxuICAgICAgICAgIGNsYXNzOiBcInZhLWJ1dHRvbl9faWNvblwiLFxuICAgICAgICAgIGljb246ICRwcm9wcy5pY29uLFxuICAgICAgICAgIHNpemU6IDIwXG4gICAgICAgIH0sIG51bGwsIDggLyogUFJPUFMgKi8sIFtcImljb25cIl0pKVxuICAgICAgOiBfY3JlYXRlQ29tbWVudFZOb2RlKFwidi1pZlwiLCB0cnVlKSxcbiAgICAoX2N0eC4kc2xvdHNbJ2RlZmF1bHQnXSlcbiAgICAgID8gKF9vcGVuQmxvY2soKSwgX2NyZWF0ZUVsZW1lbnRCbG9jayhcInNwYW5cIiwgX2hvaXN0ZWRfMSwgW1xuICAgICAgICAgIF9yZW5kZXJTbG90KF9jdHguJHNsb3RzLCBcImRlZmF1bHRcIiwge30sIHVuZGVmaW5lZCwgdHJ1ZSlcbiAgICAgICAgXSkpXG4gICAgICA6IF9jcmVhdGVDb21tZW50Vk5vZGUoXCJ2LWlmXCIsIHRydWUpLFxuICAgICgkcHJvcHMuaW5kaWNhdG9yICE9PSB1bmRlZmluZWQpXG4gICAgICA/IChfb3BlbkJsb2NrKCksIF9jcmVhdGVCbG9jaygkc2V0dXBbXCJWQUljb25cIl0sIHtcbiAgICAgICAgICBrZXk6IDIsXG4gICAgICAgICAgY2xhc3M6IFwidmEtYnV0dG9uX19pbmRpY2F0b3JcIixcbiAgICAgICAgICBpY29uOiAkcHJvcHMuaW5kaWNhdG9yLFxuICAgICAgICAgIHNpemU6IDE2XG4gICAgICAgIH0sIG51bGwsIDggLyogUFJPUFMgKi8sIFtcImljb25cIl0pKVxuICAgICAgOiBfY3JlYXRlQ29tbWVudFZOb2RlKFwidi1pZlwiLCB0cnVlKVxuICBdLCAyIC8qIENMQVNTICovKSlcbn0iLCAiaW1wb3J0IHNjcmlwdCBmcm9tIFwiRDpcXFxcR2l0UmVwb3NpdG9yeVxcXFxRaXV3ZW5HYWRnZXRzXFxcXHNyY1xcXFxWYXJpYW50QWxseURpYWxvZ1xcXFxjb21wb25lbnRzXFxcXFZBQnV0dG9uLnZ1ZT90eXBlPXNjcmlwdFwiO2ltcG9ydCBcIkQ6XFxcXEdpdFJlcG9zaXRvcnlcXFxcUWl1d2VuR2FkZ2V0c1xcXFxzcmNcXFxcVmFyaWFudEFsbHlEaWFsb2dcXFxcY29tcG9uZW50c1xcXFxWQUJ1dHRvbi52dWU/dHlwZT1zdHlsZSZpbmRleD0wXCI7aW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIkQ6XFxcXEdpdFJlcG9zaXRvcnlcXFxcUWl1d2VuR2FkZ2V0c1xcXFxzcmNcXFxcVmFyaWFudEFsbHlEaWFsb2dcXFxcY29tcG9uZW50c1xcXFxWQUJ1dHRvbi52dWU/dHlwZT10ZW1wbGF0ZVwiOyBzY3JpcHQucmVuZGVyID0gcmVuZGVyO3NjcmlwdC5fX2ZpbGUgPSBcInNyY1xcXFxWYXJpYW50QWxseURpYWxvZ1xcXFxjb21wb25lbnRzXFxcXFZBQnV0dG9uLnZ1ZVwiO3NjcmlwdC5fX3Njb3BlSWQgPSBcImRhdGEtdi1iYjc3MzRiMVwiO2V4cG9ydCBkZWZhdWx0IHNjcmlwdDsiLCAiaW1wb3J0IHsgcmVuZGVyU2xvdCBhcyBfcmVuZGVyU2xvdCwgVHJhbnNpdGlvbiBhcyBfVHJhbnNpdGlvbiwgd2l0aEN0eCBhcyBfd2l0aEN0eCwgb3BlbkJsb2NrIGFzIF9vcGVuQmxvY2ssIGNyZWF0ZUJsb2NrIGFzIF9jcmVhdGVCbG9jayB9IGZyb20gXCJ2dWVcIlxuXG5leHBvcnQgZnVuY3Rpb24gcmVuZGVyKF9jdHgsIF9jYWNoZSkge1xuICByZXR1cm4gKF9vcGVuQmxvY2soKSwgX2NyZWF0ZUJsb2NrKF9UcmFuc2l0aW9uLCB7XG4gICAgbmFtZTogXCJ2YS1mYWRlXCIsXG4gICAgbW9kZTogXCJvdXQtaW5cIlxuICB9LCB7XG4gICAgZGVmYXVsdDogX3dpdGhDdHgoKCkgPT4gW1xuICAgICAgX3JlbmRlclNsb3QoX2N0eC4kc2xvdHMsIFwiZGVmYXVsdFwiLCB7fSwgdW5kZWZpbmVkLCB0cnVlKVxuICAgIF0pLFxuICAgIF86IDMgLyogRk9SV0FSREVEICovXG4gIH0pKVxufSIsICJjb25zdCBzY3JpcHQgPSB7fTtpbXBvcnQgXCJEOlxcXFxHaXRSZXBvc2l0b3J5XFxcXFFpdXdlbkdhZGdldHNcXFxcc3JjXFxcXFZhcmlhbnRBbGx5RGlhbG9nXFxcXGNvbXBvbmVudHNcXFxcVkFGYWRlVHJhbnNpdGlvbi52dWU/dHlwZT1zdHlsZSZpbmRleD0wXCI7aW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIkQ6XFxcXEdpdFJlcG9zaXRvcnlcXFxcUWl1d2VuR2FkZ2V0c1xcXFxzcmNcXFxcVmFyaWFudEFsbHlEaWFsb2dcXFxcY29tcG9uZW50c1xcXFxWQUZhZGVUcmFuc2l0aW9uLnZ1ZT90eXBlPXRlbXBsYXRlXCI7IHNjcmlwdC5yZW5kZXIgPSByZW5kZXI7c2NyaXB0Ll9fZmlsZSA9IFwic3JjXFxcXFZhcmlhbnRBbGx5RGlhbG9nXFxcXGNvbXBvbmVudHNcXFxcVkFGYWRlVHJhbnNpdGlvbi52dWVcIjtzY3JpcHQuX19zY29wZUlkID0gXCJkYXRhLXYtYmI5YzU3NTFcIjtleHBvcnQgZGVmYXVsdCBzY3JpcHQ7IiwgImltcG9ydCB7Y29tcHV0ZWR9IGZyb20gJ3Z1ZSc7XG5pbXBvcnQgbWVzc2FnZXMgZnJvbSAnLi4vbWVzc2FnZXMuanNvbic7XG5pbXBvcnQge3dnVXNlclZhcmlhbnR9IGZyb20gJy4uL21vZHVsZXMvdXRpbHMnO1xuXG4vLyBJbnRlcmZhY2UgdmFyaWFudCBvZiB2YXJpYW50IHByb21wdFxuY29uc3QgaTE4blZhcmlhbnQgPSBjb21wdXRlZCgoKSA9PiB7XG5cdGlmICh3Z1VzZXJWYXJpYW50LnZhbHVlID09PSAnemgnKSB7XG5cdFx0Ly8gTm8gY29udmVyc2lvbjogdXNlIHJhbmRvbWx5IHNlbGVjdGVkIHZhcmlhbnRcblx0XHRyZXR1cm4gTWF0aC5yYW5kb20oKSA+IDAuNSA/ICdoYW5zJyA6ICdoYW50Jztcblx0fVxuXHRpZiAoWyd6aC1oYW50JywgJ3poLXR3JywgJ3poLWhrJywgJ3poLW1vJ10uaW5jbHVkZXMod2dVc2VyVmFyaWFudC52YWx1ZSkpIHtcblx0XHRyZXR1cm4gJ2hhbnQnO1xuXHR9XG5cblx0cmV0dXJuICdoYW5zJztcbn0pO1xuXG5mdW5jdGlvbiB1c2VJMThuKGtleTogc3RyaW5nKTogc3RyaW5nIHtcblx0Y29uc3QgY3VycmVudE1zZ3NHcm91cDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IG1lc3NhZ2VzW2kxOG5WYXJpYW50LnZhbHVlXTtcblx0cmV0dXJuIGN1cnJlbnRNc2dzR3JvdXBba2V5XSA/PyBrZXk7XG59XG5cbmV4cG9ydCB7dXNlSTE4biBhcyBkZWZhdWx0LCBpMThuVmFyaWFudH07XG4iLCAie1xuXHRcInZhcmlhbnRzXCI6IHtcblx0XHRcInpoLWNuXCI6IFwi5Lit5Zu95aSn6ZmG566A5L2TXCIsXG5cdFx0XCJ6aC1zZ1wiOiBcIuaWsOWKoOWdoeeugOS9k1wiLFxuXHRcdFwiemgtbXlcIjogXCLpqazmnaXopb/kuprnroDkvZNcIixcblx0XHRcInpoLWhrXCI6IFwi5Lit5ZyL6aaZ5riv57mB6auUXCIsXG5cdFx0XCJ6aC1tb1wiOiBcIuS4reWci+a+s+mWgOe5gemrlFwiLFxuXHRcdFwiemgtdHdcIjogXCLkuK3lnIvoh7rngaPnuYHpq5RcIlxuXHR9LFxuXHRcImhhbnNcIjoge1xuXHRcdFwic3BhY2VcIjogXCJcIixcblx0XHRcImNsb3NlXCI6IFwi5YWz6ZetXCIsXG5cdFx0XCJ2cC5oZWFkZXJcIjogXCLmiJHku6zmlK/mjIFcIixcblx0XHRcInZwLmhlYWRlci5hbHRcIjogXCLorrDkvY/mraTlj5jkvZPvvJ9cIixcblx0XHRcInZwLm1haW5cIjogXCLpgInlj5blhoXlrrnnmoTor63oqIDlj5jkvZNcIixcblx0XHRcInZwLm1haW4uYWx0XCI6IFwi5Lul5ZCO6YO95L2/55So5q2k5Y+Y5L2T5ZGI546w5YaF5a65XCIsXG5cdFx0XCJ2cC5tYWluLmV4dFwiOiBcIuS/neWtmOaCqOWBj+WlveeahOS4reaWh+ivreiogOWPmOS9k++8jOS7pemBv+WFjeaYvuekuueugOe5gea3t+adgueahOWGheWuue+8jOaPkOS+m+acgOS9s+eahOmYheivu+S9k+mqjOOAglwiLFxuXHRcdFwidnAuYnV0dG9uLm9rXCI6IFwi56Gu5a6aXCIsXG5cdFx0XCJ2cC5idXR0b24ub3RoZXJcIjogXCLlhbbku5ZcIlxuXHR9LFxuXHRcImhhbnRcIjoge1xuXHRcdFwic3BhY2VcIjogXCJcIixcblx0XHRcImNsb3NlXCI6IFwi6Zec6ZaJXCIsXG5cdFx0XCJ2cC5oZWFkZXJcIjogXCLmiJHlgJHmlK/mj7RcIixcblx0XHRcInZwLmhlYWRlci5hbHRcIjogXCLoqJjkvY/mraTororpq5TvvJ9cIixcblx0XHRcInZwLm1haW5cIjogXCLpgbjlj5blhaflrrnnmoToqp7oqIDororpq5RcIixcblx0XHRcInZwLm1haW4uYWx0XCI6IFwi5Lul5b6M6YO95L2/55So5q2k6K6K6auU5ZGI54++5YWn5a65XCIsXG5cdFx0XCJ2cC5tYWluLmV4dFwiOiBcIuWEsuWtmOaCqOWBj+WlveeahOS4reaWh+iqnuiogOiuiumrlO+8jOS7pemBv+WFjemhr+ekuuewoee5gea3t+mbnOeahOWFp+Wuue+8jOaPkOS+m+acgOS9s+eahOmWseiugOmrlOmpl+OAglwiLFxuXHRcdFwidnAuYnV0dG9uLm9rXCI6IFwi56K65a6aXCIsXG5cdFx0XCJ2cC5idXR0b24ub3RoZXJcIjogXCLlhbbku5ZcIlxuXHR9XG59XG4iLCAiaW1wb3J0IHt0eXBlIFZhbGlkVmFyaWFudH0gZnJvbSAnZXh0LmdhZGdldC5WYXJpYW50QWxseSc7XG5pbXBvcnQge2NvbXB1dGVkLCByZWZ9IGZyb20gJ3Z1ZSc7XG5cbmNvbnN0IFZBTElEX1ZBUklBTlRTID0gWyd6aC1jbicsICd6aC1zZycsICd6aC1teScsICd6aC10dycsICd6aC1oaycsICd6aC1tbyddIGFzIGNvbnN0O1xuXG4vLyBXcmFwIHdnVXNlclZhcmlhbnQgaW4gYSByZWYgZm9yIGRlYnVnZ2luZyBwdXJwb3Nlcy5cbi8vIEl0IGhhcyBubyByZWFjdGl2aXR5IGluIHByb2R1Y3Rpb24uIChjaGFuZ2VzIHRvIHdnVXNlclZhcmlhbnQgd2lsbCBub3QgYmUgcmVmbGVjdGVkKVxuLy8gd2dVc2VyVmFyaWFudCBjYW4gYmUgbnVsbCwgc28gZmFsbHMgYmFjayB0byBhbiBlbXB0eSBzdHJpbmcuXG5jb25zdCB3Z1VzZXJWYXJpYW50ID0gcmVmKG13LmNvbmZpZy5nZXQoJ3dnVXNlclZhcmlhbnQnKSA/PyAnJyk7XG5cbmZ1bmN0aW9uIGlzTW9iaWxlRGV2aWNlKCk6IGJvb2xlYW4ge1xuXHQvLyBCcm93c2VyIHN1cHBvcnQ6XG5cdC8vIENocm9taXVtIG9uIHNvbWUgQW5kcm9pZCBkZXZpY2UgKGUuZy4gU2Ftc3VuZykgaGFzIFwiKGhvdmVyOiBob3ZlcilcIiBzZXRcblx0Ly8gU28gY2hlY2sgcG9pbnRlciB0b2dldGhlclxuXHRyZXR1cm4gbWF0Y2hNZWRpYSgnKGhvdmVyOiBub25lKSwgKHBvaW50ZXI6IGNvYXJzZSknKS5tYXRjaGVzO1xufVxuXG5mdW5jdGlvbiBnZXRNb3VudFBvaW50KCk6IEVsZW1lbnQge1xuXHRzd2l0Y2ggKG13LmNvbmZpZy5nZXQoJ3NraW4nKSkge1xuXHRcdGNhc2UgJ3ZlY3Rvci0yMDIyJzpcblx0XHRcdHJldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcubXctcGFnZS1jb250YWluZXInKVswXSA/PyBkb2N1bWVudC5ib2R5O1xuXHRcdGNhc2UgJ2dvbmdiaSc6XG5cdFx0XHRyZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI213LWNvbnRlbnQtYmxvY2snKSA/PyBkb2N1bWVudC5ib2R5O1xuXHRcdGRlZmF1bHQ6XG5cdFx0XHRyZXR1cm4gZG9jdW1lbnQuYm9keTtcblx0fVxufVxuXG5jb25zdCBpbmZlcnJlZFZhcmlhbnQgPSBjb21wdXRlZCgoKSA9PiB7XG5cdGlmICgoVkFMSURfVkFSSUFOVFMgYXMgUmVhZG9ubHlBcnJheTxzdHJpbmc+KS5pbmNsdWRlcyh3Z1VzZXJWYXJpYW50LnZhbHVlKSkge1xuXHRcdHJldHVybiB3Z1VzZXJWYXJpYW50LnZhbHVlIGFzIFZhbGlkVmFyaWFudDtcblx0fVxuXHRyZXR1cm4gbnVsbDtcbn0pO1xuXG4vKipcbiAqIFNodWZmbGUgYmV0d2VlbiBhbGwgdmFsaWQgdmFyaWFudHMuXG4gKlxuICogQHBhcmFtIGxhc3QgbGFzdCBzaHVmZmxlZCB2YXJpYW50LCB1c2VkIHRvIHByZXZlbnQgZHVwbGljYXRpb25zXG4gKiBAcmV0dXJucyBzaHVmZmxlZCB2YXJpYW50XG4gKi9cbmZ1bmN0aW9uIHNodWZmbGVWYXJpYW50KGxhc3Q/OiBWYWxpZFZhcmlhbnQpOiBWYWxpZFZhcmlhbnQge1xuXHRjb25zdCB0YXJnZXRBcnJheSA9IFsuLi5WQUxJRF9WQVJJQU5UU10uZmlsdGVyKChpKSA9PiB7XG5cdFx0cmV0dXJuIGkgIT09IGxhc3Q7XG5cdH0pO1xuXHRjb25zdCByYW5kb21JbmRleCA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIHRhcmdldEFycmF5Lmxlbmd0aCk7XG5cdHJldHVybiB0YXJnZXRBcnJheVtyYW5kb21JbmRleF0hO1xufVxuXG5leHBvcnQge1ZBTElEX1ZBUklBTlRTLCB3Z1VzZXJWYXJpYW50LCBpc01vYmlsZURldmljZSwgZ2V0TW91bnRQb2ludCwgaW5mZXJyZWRWYXJpYW50LCBzaHVmZmxlVmFyaWFudH07XG4iLCAibGV0IGNvdW50ZXIgPSAwO1xuXG4vKipcbiAqIFJldHVybiBhIHVuaXF1ZSBlbGVtZW50IElEIG9uIGVhY2ggY2FsbC5cbiAqXG4gKiBAcmV0dXJucyBpZFxuICovXG5mdW5jdGlvbiB1c2VVbmlxdWVJZCgpOiBzdHJpbmcge1xuXHRyZXR1cm4gYHZhLSR7Y291bnRlcisrfWA7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHVzZVVuaXF1ZUlkO1xuIiwgImltcG9ydCB7UmVmLCByZWYsIHdhdGNofSBmcm9tICd2dWUnO1xuaW1wb3J0IHt0eXBlIFZhbGlkVmFyaWFudH0gZnJvbSAnZXh0LmdhZGdldC5WYXJpYW50QWxseSc7XG5pbXBvcnQge2luZmVycmVkVmFyaWFudCwgc2h1ZmZsZVZhcmlhbnR9IGZyb20gJy4uL21vZHVsZXMvdXRpbHMnO1xuXG5jb25zdCBJTlRFUlZBTCA9IDMgKiAxMDAwO1xuXG4vKipcbiAqIFJldHVybiBhIHJlZiB3aGljaCBzaHVmZmxlIGJldHdlZW4gYWxsIHBvc3NpYmxlIHZhcmlhbnRzLlxuICpcbiAqIEBwYXJhbSBpc0ZyZWV6ZWQgc2hvdWxkIHNodWZmbGluZyBwYXVzZSBvciBub3RcbiAqL1xuZnVuY3Rpb24gdXNlU2h1ZmZsZWRWYXJpYW50KGlzRnJlZXplZDogUmVmPGJvb2xlYW4+KTogUmVmPFZhbGlkVmFyaWFudD4ge1xuXHRjb25zdCByZXN1bHQgPSByZWY8VmFsaWRWYXJpYW50PihzaHVmZmxlVmFyaWFudCgpKTtcblx0bGV0IGlkOiBudW1iZXI7XG5cblx0d2F0Y2goXG5cdFx0aXNGcmVlemVkLFxuXHRcdChuZXdWYWx1ZSkgPT4ge1xuXHRcdFx0aWYgKG5ld1ZhbHVlKSB7XG5cdFx0XHRcdGNsZWFySW50ZXJ2YWwoaWQpO1xuXHRcdFx0XHQvLyBBdHRlbXB0IHRvIGZyZWV6ZSBhdCBpbmZlcnJlZCB2YXJpYW50IGF0IGEgYmVzdCBlZmZvcnRcblx0XHRcdFx0Ly8gVGhpcyBzaG91bGQgYmUgbW9zdCBjYXNlc1xuXHRcdFx0XHRyZXN1bHQudmFsdWUgPSBpbmZlcnJlZFZhcmlhbnQudmFsdWUgPz8gc2h1ZmZsZVZhcmlhbnQoKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGlkID0gd2luZG93LnNldEludGVydmFsKCgpID0+IHtcblx0XHRcdFx0XHRyZXN1bHQudmFsdWUgPSBzaHVmZmxlVmFyaWFudChyZXN1bHQudmFsdWUpO1xuXHRcdFx0XHR9LCBJTlRFUlZBTCk7XG5cdFx0XHR9XG5cdFx0fSxcblx0XHR7aW1tZWRpYXRlOiB0cnVlfVxuXHQpO1xuXG5cdHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHVzZVNodWZmbGVkVmFyaWFudDtcbiIsICJpbXBvcnQge1dyaXRhYmxlQ29tcHV0ZWRSZWYsIGNvbXB1dGVkfSBmcm9tICd2dWUnO1xuXG4vKipcbiAqIFJldHVybiBhIGNvbXB1dGVkIHByb3BlcnR5IHRoYXQgcmV0dXJucyB0aGUgY29ycmVzcG9uZGluZyBwcm9wIHZhbHVlIHdoZW4gaXMgYWNjZXNzZWRcbiAqIGFuZCBmaXJlcyBhbiBldmVudCB3aGVuIGlzIHNldC4gVXNlZCB3aXRoIHYtbW9kZWwuXG4gKlxuICogQHBhcmFtIHByb3BzIHByb3BzIGZpZWxkIG9mIGEgY29tcG9uZW50XG4gKiBAcGFyYW0gZW1pdCBlbWl0IGZ1bmN0aW9uIG9mIGEgY29tcG9uZW50XG4gKiBAcGFyYW0gbmFtZSBuYW1lIG9mIHRoZSBwcm9wXG4gKiBAcmV0dXJuIHdyYXBwZWQgY29tcHV0ZXIgcHJvcGVydHlcbiAqL1xuZnVuY3Rpb24gdXNlTW9kZWxXcmFwcGVyPFQgZXh0ZW5kcyBzdHJpbmcsIFAgZXh0ZW5kcyBSZWNvcmQ8VCwgdW5rbm93bj4+KFxuXHRwcm9wczogUCxcblx0ZW1pdDogKGV2ZW50OiBgdXBkYXRlOiR7VH1gLCB2YWx1ZTogUFtUXSkgPT4gdm9pZCxcblx0bmFtZTogVCA9ICdtb2RlbFZhbHVlJyBhcyBUXG4pOiBXcml0YWJsZUNvbXB1dGVkUmVmPFBbVF0+IHtcblx0cmV0dXJuIGNvbXB1dGVkKHtcblx0XHRnZXQoKSB7XG5cdFx0XHRyZXR1cm4gcHJvcHNbbmFtZV07XG5cdFx0fSxcblx0XHRzZXQodmFsdWUpIHtcblx0XHRcdGVtaXQoYHVwZGF0ZToke25hbWV9YCwgdmFsdWUpO1xuXHRcdH0sXG5cdH0pO1xufVxuXG5leHBvcnQgZGVmYXVsdCB1c2VNb2RlbFdyYXBwZXI7XG4iLCAiaW1wb3J0IHtSZWYsIFdhdGNoU291cmNlLCBjb21wdXRlZCwgc2hhbGxvd1JlZiwgd2F0Y2h9IGZyb20gJ3Z1ZSc7XG5cbi8qKlxuICogQ3JlYXRlIGEgcmVmIHRoYXQsIGNhbiBiZSBpbmRlcGVuZGVudGx5IHVwZGF0ZWQsIGJ1dCB3aGVuIGl0cyBkZWZhdWx0XG4gKiB2YWx1ZSBjaGFuZ2VzLCBpdCBpcyByZXN0b3JlZCB0byBpdHMgKG5ldykgZGVmYXVsdCB2YWx1ZS5cbiAqXG4gKiBVc2VkIGZvciBkZWJ1Z2dpbmcuXG4gKi9cbmZ1bmN0aW9uIHVzZURlZmF1bHQ8VD4oZGVmYXVsdFZhbHVlOiBXYXRjaFNvdXJjZTxUPik6IFJlZjxUPiB7XG5cdGNvbnN0IHJlYWxSZWYgPSBzaGFsbG93UmVmPFQ+KHR5cGVvZiBkZWZhdWx0VmFsdWUgPT09ICdmdW5jdGlvbicgPyBkZWZhdWx0VmFsdWUoKSA6IGRlZmF1bHRWYWx1ZS52YWx1ZSk7XG5cblx0d2F0Y2goXG5cdFx0ZGVmYXVsdFZhbHVlLFxuXHRcdChuZXdWYWx1ZSkgPT4ge1xuXHRcdFx0cmVhbFJlZi52YWx1ZSA9IG5ld1ZhbHVlO1xuXHRcdH0sXG5cdFx0e2RlZXA6IHRydWV9XG5cdCk7XG5cblx0cmV0dXJuIGNvbXB1dGVkKHtcblx0XHRnZXQoKSB7XG5cdFx0XHRyZXR1cm4gcmVhbFJlZi52YWx1ZTtcblx0XHR9LFxuXHRcdHNldChuZXdWYWx1ZSkge1xuXHRcdFx0cmVhbFJlZi52YWx1ZSA9IG5ld1ZhbHVlO1xuXHRcdH0sXG5cdH0pO1xufVxuXG5leHBvcnQgZGVmYXVsdCB1c2VEZWZhdWx0O1xuIiwgImltcG9ydCB7IGNyZWF0ZVZOb2RlIGFzIF9jcmVhdGVWTm9kZSwgdG9EaXNwbGF5U3RyaW5nIGFzIF90b0Rpc3BsYXlTdHJpbmcsIGNyZWF0ZUVsZW1lbnRWTm9kZSBhcyBfY3JlYXRlRWxlbWVudFZOb2RlLCBvcGVuQmxvY2sgYXMgX29wZW5CbG9jaywgY3JlYXRlRWxlbWVudEJsb2NrIGFzIF9jcmVhdGVFbGVtZW50QmxvY2ssIGNyZWF0ZUNvbW1lbnRWTm9kZSBhcyBfY3JlYXRlQ29tbWVudFZOb2RlLCB3aXRoQ3R4IGFzIF93aXRoQ3R4LCBjcmVhdGVUZXh0Vk5vZGUgYXMgX2NyZWF0ZVRleHRWTm9kZSwgcmVuZGVyTGlzdCBhcyBfcmVuZGVyTGlzdCwgRnJhZ21lbnQgYXMgX0ZyYWdtZW50LCBub3JtYWxpemVDbGFzcyBhcyBfbm9ybWFsaXplQ2xhc3MsIGNyZWF0ZUJsb2NrIGFzIF9jcmVhdGVCbG9jaywgVHJhbnNpdGlvbiBhcyBfVHJhbnNpdGlvbiB9IGZyb20gXCJ2dWVcIlxuXG5jb25zdCBfaG9pc3RlZF8xID0gW1wibGFuZ1wiLCBcImFyaWEtbGFiZWxsZWRieVwiLCBcImFyaWEtZGVzY3JpYmVkYnlcIl1cbmNvbnN0IF9ob2lzdGVkXzIgPSBbXCJpZFwiXVxuY29uc3QgX2hvaXN0ZWRfMyA9IFtcImxhbmdcIl1cbmNvbnN0IF9ob2lzdGVkXzQgPSBbXCJpZFwiXVxuY29uc3QgX2hvaXN0ZWRfNSA9IHsgY2xhc3M6IFwidmEtdmFyaWFudC1wcm9tcHRfX29wdGlvbnNcIiB9XG5jb25zdCBfaG9pc3RlZF82ID0geyBjbGFzczogXCJ2YS12YXJpYW50LXByb21wdF9fZm9vdGVyXCIgfVxuY29uc3QgX2hvaXN0ZWRfNyA9IHsgY2xhc3M6IFwidmEtcGFyYSB2YS1wYXJhLS1zdWJ0bGVcIiB9XG5cbmV4cG9ydCBmdW5jdGlvbiByZW5kZXIoX2N0eCwgX2NhY2hlLCAkcHJvcHMsICRzZXR1cCwgJGRhdGEsICRvcHRpb25zKSB7XG4gIHJldHVybiAoX29wZW5CbG9jaygpLCBfY3JlYXRlQmxvY2soX1RyYW5zaXRpb24sIHtcbiAgICBuYW1lOiBcInZhLXZhcmlhbnQtcHJvbXB0XCIsXG4gICAgYXBwZWFyOiBcIlwiXG4gIH0sIHtcbiAgICBkZWZhdWx0OiBfd2l0aEN0eCgoKSA9PiBbXG4gICAgICAoJHByb3BzLm9wZW4pXG4gICAgICAgID8gKF9vcGVuQmxvY2soKSwgX2NyZWF0ZUVsZW1lbnRCbG9jayhcImRpdlwiLCB7XG4gICAgICAgICAgICBrZXk6IDAsXG4gICAgICAgICAgICByZWY6IFwicHJvbXB0XCIsXG4gICAgICAgICAgICBsYW5nOiBgemgtJHskc2V0dXAuaTE4blZhcmlhbnR9YCxcbiAgICAgICAgICAgIGNsYXNzOiBcInZhLXZhcmlhbnQtcHJvbXB0XCIsXG4gICAgICAgICAgICByb2xlOiBcImRpYWxvZ1wiLFxuICAgICAgICAgICAgXCJhcmlhLW1vZGFsXCI6IFwiZmFsc2VcIixcbiAgICAgICAgICAgIFwiYXJpYS1sYWJlbGxlZGJ5XCI6ICRzZXR1cC50aXRsZUlkLFxuICAgICAgICAgICAgXCJhcmlhLWRlc2NyaWJlZGJ5XCI6ICRzZXR1cC5kZXNjSWRcbiAgICAgICAgICB9LCBbXG4gICAgICAgICAgICBfY3JlYXRlVk5vZGUoJHNldHVwW1wiVkFCdXR0b25cIl0sIHtcbiAgICAgICAgICAgICAgY2xhc3M6IFwidmEtdmFyaWFudC1wcm9tcHRfX2Nsb3NlXCIsXG4gICAgICAgICAgICAgIHdlaWdodDogXCJxdWlldFwiLFxuICAgICAgICAgICAgICBpY29uOiBcImNsb3NlXCIsXG4gICAgICAgICAgICAgIHRpdGxlOiAkc2V0dXAudXNlSTE4bignY2xvc2UnKSxcbiAgICAgICAgICAgICAgXCJhcmlhLWxhYmVsXCI6ICRzZXR1cC51c2VJMThuKCdjbG9zZScpLFxuICAgICAgICAgICAgICBkaXNhYmxlZDogJHByb3BzLmRpc2FibGVkLFxuICAgICAgICAgICAgICBvbkNsaWNrOiAkc2V0dXAub3B0T3V0QW5kQ2xvc2VcbiAgICAgICAgICAgIH0sIG51bGwsIDggLyogUFJPUFMgKi8sIFtcInRpdGxlXCIsIFwiYXJpYS1sYWJlbFwiLCBcImRpc2FibGVkXCJdKSxcbiAgICAgICAgICAgIF9jcmVhdGVFbGVtZW50Vk5vZGUoXCJoMlwiLCB7XG4gICAgICAgICAgICAgIGlkOiAkc2V0dXAudGl0bGVJZCxcbiAgICAgICAgICAgICAgY2xhc3M6IFwidmEtdmFyaWFudC1wcm9tcHRfX3RpdGxlIHZhLXRpdGxlXCJcbiAgICAgICAgICAgIH0sIFtcbiAgICAgICAgICAgICAgX2NyZWF0ZVRleHRWTm9kZShfdG9EaXNwbGF5U3RyaW5nKCRzZXR1cC51c2VJMThuKCRzZXR1cC5pc1ZhcmlhbnROYXJyb3dlZCA/ICd2cC5oZWFkZXIuYWx0JyA6ICd2cC5oZWFkZXInKSksIDEgLyogVEVYVCAqLyksXG4gICAgICAgICAgICAgIF9jYWNoZVsxXSB8fCAoX2NhY2hlWzFdID0gX2NyZWF0ZUVsZW1lbnRWTm9kZShcImJyXCIsIG51bGwsIG51bGwsIC0xIC8qIEhPSVNURUQgKi8pKSxcbiAgICAgICAgICAgICAgX2NyZWF0ZVZOb2RlKCRzZXR1cFtcIlZBRmFkZVRyYW5zaXRpb25cIl0sIG51bGwsIHtcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiBfd2l0aEN0eCgoKSA9PiBbXG4gICAgICAgICAgICAgICAgICAoISRzZXR1cC5pc1ZhcmlhbnROYXJyb3dlZClcbiAgICAgICAgICAgICAgICAgICAgPyAoX29wZW5CbG9jaygpLCBfY3JlYXRlRWxlbWVudEJsb2NrKFwic3BhblwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBrZXk6ICRzZXR1cC5zaHVmZmxlZFZhcmlhbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICBsYW5nOiBgemgtJHskc2V0dXAuc2h1ZmZsZWRWYXJpYW50fWAsXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogXCJ2YS12YXJpYW50LXByb21wdF9fdGl0bGVfX3ZhcmlhbnRcIlxuICAgICAgICAgICAgICAgICAgICAgIH0sIF90b0Rpc3BsYXlTdHJpbmcoJHNldHVwLm1lc3NhZ2VzLnZhcmlhbnRzWyRzZXR1cC5zaHVmZmxlZFZhcmlhbnRdKSwgOSAvKiBURVhULCBQUk9QUyAqLywgX2hvaXN0ZWRfMykpXG4gICAgICAgICAgICAgICAgICAgIDogX2NyZWF0ZUNvbW1lbnRWTm9kZShcInYtaWZcIiwgdHJ1ZSlcbiAgICAgICAgICAgICAgICBdKSxcbiAgICAgICAgICAgICAgICBfOiAxIC8qIFNUQUJMRSAqL1xuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgXSwgOCAvKiBQUk9QUyAqLywgX2hvaXN0ZWRfMiksXG4gICAgICAgICAgICBfY3JlYXRlRWxlbWVudFZOb2RlKFwicFwiLCB7XG4gICAgICAgICAgICAgIGlkOiAkc2V0dXAuZGVzY0lkLFxuICAgICAgICAgICAgICBjbGFzczogXCJ2YS12YXJpYW50LXByb21wdF9fZGVzYyB2YS1wYXJhXCJcbiAgICAgICAgICAgIH0sIF90b0Rpc3BsYXlTdHJpbmcoJHNldHVwLnVzZUkxOG4oJHNldHVwLmlzVmFyaWFudE5hcnJvd2VkID8gJ3ZwLm1haW4uYWx0JyA6ICd2cC5tYWluJykpLCA5IC8qIFRFWFQsIFBST1BTICovLCBfaG9pc3RlZF80KSxcbiAgICAgICAgICAgIF9jcmVhdGVFbGVtZW50Vk5vZGUoXCJkaXZcIiwgX2hvaXN0ZWRfNSwgW1xuICAgICAgICAgICAgICBfY3JlYXRlQ29tbWVudFZOb2RlKFwiIGluZmVycmVkVmFyaWFudCBpcyBub24tbnVsbCwgZ3VhcmRlZCBieSBpc1ZhcmlhbnROYXJyb3dlZCBcIiksXG4gICAgICAgICAgICAgIChfb3BlbkJsb2NrKHRydWUpLCBfY3JlYXRlRWxlbWVudEJsb2NrKF9GcmFnbWVudCwgbnVsbCwgX3JlbmRlckxpc3QoJHNldHVwLmlzVmFyaWFudE5hcnJvd2VkICYmICRzZXR1cC5pbmZlcnJlZFZhcmlhbnQgIT09IG51bGxcblx0XHRcdFx0XHRcdD8gWyRzZXR1cC5pbmZlcnJlZFZhcmlhbnRdXG5cdFx0XHRcdFx0XHQ6ICRzZXR1cC5WQUxJRF9WQVJJQU5UUywgKHZhcmlhbnQpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKF9vcGVuQmxvY2soKSwgX2NyZWF0ZUJsb2NrKCRzZXR1cFtcIlZBQnV0dG9uXCJdLCB7XG4gICAgICAgICAgICAgICAgICBrZXk6IHZhcmlhbnQsXG4gICAgICAgICAgICAgICAgICBjbGFzczogX25vcm1hbGl6ZUNsYXNzKFtcInZhLXZhcmlhbnQtcHJvbXB0X19vcHRpb25zX19idXR0b25cIiwgeyd2YS12YXJpYW50LXByb21wdF9fb3B0aW9uc19fYnV0dG9uLS1wcmltYXJ5JzogJHNldHVwLmlzVmFyaWFudE5hcnJvd2VkfV0pLFxuICAgICAgICAgICAgICAgICAgaW5kaWNhdG9yOiBcImFycm93TmV4dFwiLFxuICAgICAgICAgICAgICAgICAgd2VpZ2h0OiBcInF1aWV0XCIsXG4gICAgICAgICAgICAgICAgICBhY3Rpb246IFwicHJvZ3Jlc3NpdmVcIixcbiAgICAgICAgICAgICAgICAgIGxhbmc6IHZhcmlhbnQsXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZDogJHByb3BzLmRpc2FibGVkLFxuICAgICAgICAgICAgICAgICAgb25DbGljazogJGV2ZW50ID0+ICgkc2V0dXAuc2VsZWN0KHZhcmlhbnQpKVxuICAgICAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IF93aXRoQ3R4KCgpID0+IFtcbiAgICAgICAgICAgICAgICAgICAgX2NyZWF0ZVRleHRWTm9kZShfdG9EaXNwbGF5U3RyaW5nKCRzZXR1cC5tZXNzYWdlcy52YXJpYW50c1t2YXJpYW50XSksIDEgLyogVEVYVCAqLylcbiAgICAgICAgICAgICAgICAgIF0pLFxuICAgICAgICAgICAgICAgICAgXzogMiAvKiBEWU5BTUlDICovXG4gICAgICAgICAgICAgICAgfSwgMTAzMiAvKiBQUk9QUywgRFlOQU1JQ19TTE9UUyAqLywgW1wiY2xhc3NcIiwgXCJsYW5nXCIsIFwiZGlzYWJsZWRcIiwgXCJvbkNsaWNrXCJdKSlcbiAgICAgICAgICAgICAgfSksIDEyOCAvKiBLRVlFRF9GUkFHTUVOVCAqLykpLFxuICAgICAgICAgICAgICAoJHNldHVwLmlzVmFyaWFudE5hcnJvd2VkKVxuICAgICAgICAgICAgICAgID8gKF9vcGVuQmxvY2soKSwgX2NyZWF0ZUJsb2NrKCRzZXR1cFtcIlZBQnV0dG9uXCJdLCB7XG4gICAgICAgICAgICAgICAgICAgIGtleTogMCxcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M6IFwidmEtdmFyaWFudC1wcm9tcHRfX29wdGlvbnNfX2J1dHRvblwiLFxuICAgICAgICAgICAgICAgICAgICBpbmRpY2F0b3I6IFwiYXJyb3dOZXh0XCIsXG4gICAgICAgICAgICAgICAgICAgIHdlaWdodDogXCJxdWlldFwiLFxuICAgICAgICAgICAgICAgICAgICBhY3Rpb246IFwicHJvZ3Jlc3NpdmVcIixcbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ6ICRwcm9wcy5kaXNhYmxlZCxcbiAgICAgICAgICAgICAgICAgICAgb25DbGljazogX2NhY2hlWzBdIHx8IChfY2FjaGVbMF0gPSAkZXZlbnQgPT4gKCRzZXR1cC5pc1ZhcmlhbnROYXJyb3dlZCA9IGZhbHNlKSlcbiAgICAgICAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDogX3dpdGhDdHgoKCkgPT4gW1xuICAgICAgICAgICAgICAgICAgICAgIF9jcmVhdGVUZXh0Vk5vZGUoX3RvRGlzcGxheVN0cmluZygkc2V0dXAudXNlSTE4bigndnAuYnV0dG9uLm90aGVyJykpLCAxIC8qIFRFWFQgKi8pXG4gICAgICAgICAgICAgICAgICAgIF0pLFxuICAgICAgICAgICAgICAgICAgICBfOiAxIC8qIFNUQUJMRSAqL1xuICAgICAgICAgICAgICAgICAgfSwgOCAvKiBQUk9QUyAqLywgW1wiZGlzYWJsZWRcIl0pKVxuICAgICAgICAgICAgICAgIDogX2NyZWF0ZUNvbW1lbnRWTm9kZShcInYtaWZcIiwgdHJ1ZSlcbiAgICAgICAgICAgIF0pLFxuICAgICAgICAgICAgX2NyZWF0ZUVsZW1lbnRWTm9kZShcImZvb3RlclwiLCBfaG9pc3RlZF82LCBbXG4gICAgICAgICAgICAgIF9jcmVhdGVFbGVtZW50Vk5vZGUoXCJwXCIsIF9ob2lzdGVkXzcsIF90b0Rpc3BsYXlTdHJpbmcoJHNldHVwLnVzZUkxOG4oJ3ZwLm1haW4uZXh0JykpLCAxIC8qIFRFWFQgKi8pXG4gICAgICAgICAgICBdKVxuICAgICAgICAgIF0sIDggLyogUFJPUFMgKi8sIF9ob2lzdGVkXzEpKVxuICAgICAgICA6IF9jcmVhdGVDb21tZW50Vk5vZGUoXCJ2LWlmXCIsIHRydWUpXG4gICAgXSksXG4gICAgXzogMSAvKiBTVEFCTEUgKi9cbiAgfSkpXG59IiwgImltcG9ydCBzY3JpcHQgZnJvbSBcIkQ6XFxcXEdpdFJlcG9zaXRvcnlcXFxcUWl1d2VuR2FkZ2V0c1xcXFxzcmNcXFxcVmFyaWFudEFsbHlEaWFsb2dcXFxcY29tcG9uZW50c1xcXFxWQVZhcmlhbnRQcm9tcHQudnVlP3R5cGU9c2NyaXB0XCI7aW1wb3J0IFwiRDpcXFxcR2l0UmVwb3NpdG9yeVxcXFxRaXV3ZW5HYWRnZXRzXFxcXHNyY1xcXFxWYXJpYW50QWxseURpYWxvZ1xcXFxjb21wb25lbnRzXFxcXFZBVmFyaWFudFByb21wdC52dWU/dHlwZT1zdHlsZSZpbmRleD0wXCI7aW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcIkQ6XFxcXEdpdFJlcG9zaXRvcnlcXFxcUWl1d2VuR2FkZ2V0c1xcXFxzcmNcXFxcVmFyaWFudEFsbHlEaWFsb2dcXFxcY29tcG9uZW50c1xcXFxWQVZhcmlhbnRQcm9tcHQudnVlP3R5cGU9dGVtcGxhdGVcIjsgc2NyaXB0LnJlbmRlciA9IHJlbmRlcjtzY3JpcHQuX19maWxlID0gXCJzcmNcXFxcVmFyaWFudEFsbHlEaWFsb2dcXFxcY29tcG9uZW50c1xcXFxWQVZhcmlhbnRQcm9tcHQudnVlXCI7c2NyaXB0Ll9fc2NvcGVJZCA9IFwiZGF0YS12LTVhNDRjYzc1XCI7ZXhwb3J0IGRlZmF1bHQgc2NyaXB0OyIsICI8c2NyaXB0IHNldHVwIGxhbmc9XCJ0c1wiPlxuaW1wb3J0IHtyZWZ9IGZyb20gJ3Z1ZSc7XG5pbXBvcnQge3R5cGUgVmFsaWRWYXJpYW50fSBmcm9tICdleHQuZ2FkZ2V0LlZhcmlhbnRBbGx5JztcbmltcG9ydCBWQUJ1dHRvbiBmcm9tICcuL1ZBQnV0dG9uLnZ1ZSc7XG5pbXBvcnQgVkFTZWxlY3QgZnJvbSAnLi9WQVNlbGVjdC52dWUnO1xuaW1wb3J0IHVzZUkxOG4sIHtpMThuVmFyaWFudH0gZnJvbSAnLi4vY29tcG9zYWJsZXMvdXNlSTE4bic7XG5pbXBvcnQgdXNlVW5pcXVlSWQgZnJvbSAnLi4vY29tcG9zYWJsZXMvdXNlVW5pcXVlSWQnO1xuaW1wb3J0IHtWQUxJRF9WQVJJQU5UUywgaW5mZXJyZWRWYXJpYW50LCBzaHVmZmxlVmFyaWFudH0gZnJvbSAnLi4vbW9kdWxlcy91dGlscyc7XG5pbXBvcnQgbWVzc2FnZXMgZnJvbSAnLi4vbWVzc2FnZXMuanNvbic7XG5pbXBvcnQgdXNlTW9kZWxXcmFwcGVyIGZyb20gJy4uL2NvbXBvc2FibGVzL3VzZU1vZGVsV3JhcHBlcic7XG5pbXBvcnQgdXNlRGVmYXVsdCBmcm9tICcuLi9jb21wb3NhYmxlcy91c2VEZWZhdWx0JztcblxuY29uc3QgcHJvcHMgPSB3aXRoRGVmYXVsdHMoXG5cdGRlZmluZVByb3BzPHtcblx0XHRvcGVuOiBib29sZWFuO1xuXHRcdGRpc2FibGVkPzogYm9vbGVhbjtcblx0fT4oKSxcblx0e1xuXHRcdGRpc2FibGVkOiBmYWxzZSxcblx0fVxuKTtcbmNvbnN0IGVtaXQgPSBkZWZpbmVFbWl0czx7XG5cdChlOiAndXBkYXRlOm9wZW4nLCB2YWx1ZTogYm9vbGVhbik6IHZvaWQ7XG5cdChlOiAndXBkYXRlOmRpc2FibGVkJywgdmFsdWU6IGJvb2xlYW4pOiB2b2lkO1xuXHQoZTogJ3NlbGVjdCcsIHZhcmlhbnQ6IFZhbGlkVmFyaWFudCk6IHZvaWQ7XG5cdChlOiAnb3B0b3V0Jyk6IHZvaWQ7XG59PigpO1xuXG5jb25zdCBwcm9tcHQgPSByZWY8SFRNTEVsZW1lbnQgfCBudWxsPihudWxsKTtcbmNvbnN0IHRpdGxlSWQgPSB1c2VVbmlxdWVJZCgpO1xuY29uc3Qgc2VsZWN0ZWRWYXJpYW50ID0gdXNlRGVmYXVsdCgoKSA9PiBpbmZlcnJlZFZhcmlhbnQudmFsdWUgPz8gc2h1ZmZsZVZhcmlhbnQoKSk7XG5jb25zdCBpc09wZW4gPSB1c2VNb2RlbFdyYXBwZXIocHJvcHMsIGVtaXQsICdvcGVuJyk7XG5jb25zdCBpc0Rpc2FibGVkID0gdXNlTW9kZWxXcmFwcGVyKHByb3BzLCBlbWl0LCAnZGlzYWJsZWQnKTtcblxuZnVuY3Rpb24gb3B0T3V0QW5kQ2xvc2UoKSB7XG5cdGVtaXQoJ29wdG91dCcpO1xuXHRpc09wZW4udmFsdWUgPSBmYWxzZTtcbn1cblxuZnVuY3Rpb24gc2VsZWN0KHZhcmlhbnQ6IFZhbGlkVmFyaWFudCkge1xuXHRpc0Rpc2FibGVkLnZhbHVlID0gdHJ1ZTtcblx0ZW1pdCgnc2VsZWN0JywgdmFyaWFudCk7XG59XG48L3NjcmlwdD5cblxuPHRlbXBsYXRlPlxuXHQ8VHJhbnNpdGlvbiBuYW1lPVwidmEtdmFyaWFudC1wcm9tcHQtbW9iaWxlXCIgYXBwZWFyPlxuXHRcdDxkaXZcblx0XHRcdHYtaWY9XCJvcGVuXCJcblx0XHRcdHJlZj1cInByb21wdFwiXG5cdFx0XHQ6bGFuZz1cImB6aC0ke2kxOG5WYXJpYW50fWBcIlxuXHRcdFx0Y2xhc3M9XCJ2YS12YXJpYW50LXByb21wdC1tb2JpbGVcIlxuXHRcdFx0cm9sZT1cImRpYWxvZ1wiXG5cdFx0XHRhcmlhLW1vZGFsPVwiZmFsc2VcIlxuXHRcdFx0OmFyaWEtbGFiZWxsZWRieT1cInRpdGxlSWRcIlxuXHRcdD5cblx0XHRcdDxkaXYgY2xhc3M9XCJ2YS12YXJpYW50LXByb21wdC1tb2JpbGVfX2hlYWRlclwiPlxuXHRcdFx0XHQ8aDIgOmlkPVwidGl0bGVJZFwiIGNsYXNzPVwidmEtdmFyaWFudC1wcm9tcHQtbW9iaWxlX19oZWFkZXJfX3RpdGxlIHZhLXRpdGxlXCI+XG5cdFx0XHRcdFx0e3sgdXNlSTE4bigndnAubWFpbicpIH19XG5cdFx0XHRcdDwvaDI+XG5cdFx0XHRcdDxWQUJ1dHRvblxuXHRcdFx0XHRcdGNsYXNzPVwidmEtdmFyaWFudC1wcm9tcHQtbW9iaWxlX19oZWFkZXJfX2Nsb3NlXCJcblx0XHRcdFx0XHR3ZWlnaHQ9XCJxdWlldFwiXG5cdFx0XHRcdFx0aWNvbj1cImNsb3NlXCJcblx0XHRcdFx0XHQ6dGl0bGU9XCJ1c2VJMThuKCdjbG9zZScpXCJcblx0XHRcdFx0XHQ6YXJpYS1sYWJlbD1cInVzZUkxOG4oJ2Nsb3NlJylcIlxuXHRcdFx0XHRcdDpkaXNhYmxlZD1cImRpc2FibGVkXCJcblx0XHRcdFx0XHRAY2xpY2s9XCJvcHRPdXRBbmRDbG9zZVwiXG5cdFx0XHRcdC8+XG5cdFx0XHQ8L2Rpdj5cblx0XHRcdDxkaXYgY2xhc3M9XCJ2YS12YXJpYW50LXByb21wdC1tb2JpbGVfX21haW5cIj5cblx0XHRcdFx0PFZBU2VsZWN0XG5cdFx0XHRcdFx0di1tb2RlbD1cInNlbGVjdGVkVmFyaWFudFwiXG5cdFx0XHRcdFx0Y2xhc3M9XCJ2YS12YXJpYW50LXByb21wdC1tb2JpbGVfX21haW5fX3NlbGVjdFwiXG5cdFx0XHRcdFx0Omxhbmc9XCJzZWxlY3RlZFZhcmlhbnRcIlxuXHRcdFx0XHRcdDpkaXNhYmxlZD1cImRpc2FibGVkXCJcblx0XHRcdFx0XHQ6YXJpYS1sYWJlbGxlZGJ5PVwidGl0bGVJZFwiXG5cdFx0XHRcdD5cblx0XHRcdFx0XHQ8b3B0aW9uIHYtZm9yPVwidmFyaWFudCBpbiBWQUxJRF9WQVJJQU5UU1wiIDprZXk9XCJ2YXJpYW50XCIgOnZhbHVlPVwidmFyaWFudFwiIDpsYW5nPVwidmFyaWFudFwiPlxuXHRcdFx0XHRcdFx0e3sgbWVzc2FnZXMudmFyaWFudHNbdmFyaWFudF0gfX1cblx0XHRcdFx0XHQ8L29wdGlvbj5cblx0XHRcdFx0PC9WQVNlbGVjdD5cblx0XHRcdFx0PFZBQnV0dG9uXG5cdFx0XHRcdFx0Y2xhc3M9XCJ2YS12YXJpYW50LXByb21wdC1tb2JpbGVfX21haW5fX2FjdGlvblwiXG5cdFx0XHRcdFx0YWN0aW9uPVwicHJvZ3Jlc3NpdmVcIlxuXHRcdFx0XHRcdGljb249XCJhcnJvd05leHRcIlxuXHRcdFx0XHRcdDpkaXNhYmxlZD1cImRpc2FibGVkXCJcblx0XHRcdFx0XHRAY2xpY2s9XCJzZWxlY3Qoc2VsZWN0ZWRWYXJpYW50KVwiXG5cdFx0XHRcdFx0Pnt7IHVzZUkxOG4oJ3ZwLmJ1dHRvbi5vaycpIH19PC9WQUJ1dHRvblxuXHRcdFx0XHQ+XG5cdFx0XHQ8L2Rpdj5cblx0XHRcdDxmb290ZXIgY2xhc3M9XCJ2YS12YXJpYW50LXByb21wdC1tb2JpbGVfX2Zvb3RlclwiPlxuXHRcdFx0XHQ8cCBjbGFzcz1cInZhLXBhcmEgdmEtcGFyYS0tc3VidGxlXCI+XG5cdFx0XHRcdFx0e3sgdXNlSTE4bigndnAubWFpbi5leHQnKSB9fVxuXHRcdFx0XHQ8L3A+XG5cdFx0XHQ8L2Zvb3Rlcj5cblx0XHQ8L2Rpdj5cblx0PC9UcmFuc2l0aW9uPlxuPC90ZW1wbGF0ZT5cblxuPHN0eWxlIHNjb3BlZCBsYW5nPVwibGVzc1wiPlxuQGltcG9ydCAocmVmZXJlbmNlKSAnLi4vc3R5bGVzL21peGlucy5sZXNzJztcbkBpbXBvcnQgKHJlZmVyZW5jZSkgJy4uL3N0eWxlcy90b2tlbnMubGVzcyc7XG5cbi52YS10aXRsZSB7XG5cdGJvcmRlcjogMDsgLy8gUmVzZXRcblx0cGFkZGluZzogMDsgLy8gUmVzZXRcblx0b3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcblxuXHRmb250LXNpemU6IEBmb250LXNpemUteHgtbGFyZ2U7XG5cdGZvbnQtd2VpZ2h0OiBAZm9udC13ZWlnaHQtYm9sZDtcblx0bWFyZ2luOiBAc3BhY2luZy01MCBAc3BhY2luZy0wO1xuXHRjb2xvcjogQGNvbG9yLWJhc2U7XG59XG5cbi52YS1wYXJhIHtcblx0b3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcblx0bWFyZ2luLXRvcDogQHNwYWNpbmctNTA7XG5cdGNvbG9yOiBAY29sb3ItYmFzZTtcblxuXHQmLS1zdWJ0bGUge1xuXHRcdGNvbG9yOiBAY29sb3Itc3VidGxlO1xuXHRcdGZvbnQtc2l6ZTogQGZvbnQtc2l6ZS14LXNtYWxsO1xuXHRcdG1hcmdpbi1ib3R0b206IEBzcGFjaW5nLTM1O1xuXHR9XG59XG5cbi52YS12YXJpYW50LXByb21wdC1tb2JpbGUge1xuXHRib3gtc2l6aW5nOiBAYm94LXNpemluZy1iYXNlO1xuXHR6LWluZGV4OiBAei1pbmRleC1vdmVybGF5O1xuXHRwYWRkaW5nOiBAc3BhY2luZy01MCBAc3BhY2luZy0xMDA7XG5cdHBvc2l0aW9uOiBmaXhlZDtcblx0bGVmdDogQHNwYWNpbmctMDtcblx0cmlnaHQ6IEBzcGFjaW5nLTA7XG5cdGJvdHRvbTogQHNwYWNpbmctMDtcblx0bWFyZ2luOiBAc3BhY2luZy0wIGF1dG87XG5cdHdpZHRoOiAxMDAlO1xuXHRtYXgtd2lkdGg6IDYwMHB4O1xuXHRtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMmVtKTtcblxuXHRvdmVyZmxvdzogYXV0bztcblx0b3ZlcnNjcm9sbC1iZWhhdmlvcjogbm9uZTtcblx0YmFja2dyb3VuZC1jb2xvcjogQGJhY2tncm91bmQtY29sb3ItYmFzZTtcblx0Ym9yZGVyOiBAYm9yZGVyLWJhc2U7XG5cdGJvcmRlci1yYWRpdXM6IEBib3JkZXItcmFkaXVzLWJhc2U7XG5cdGJveC1zaGFkb3c6IEBib3gtc2hhZG93LWRyb3AtbWVkaXVtO1xuXHRmb250LWZhbWlseTogQGZvbnQtZmFtaWx5LXN5c3RlbS1zYW5zO1xuXHRmb250LXNpemU6IDFyZW07IC8vIFJlc2V0XG5cdGxpbmUtaGVpZ2h0OiBub3JtYWw7IC8vIFJlc2V0XG5cblx0Jl9faGVhZGVyIHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cblx0XHQmX190aXRsZSB7XG5cdFx0XHRmbGV4OiAxO1xuXHRcdFx0Zm9udC1zaXplOiBAZm9udC1zaXplLW1lZGl1bTtcblx0XHR9XG5cblx0XHQmX19jbG9zZSB7XG5cdFx0XHRwYWRkaW5nOiBAc3BhY2luZy1zaG9ydGhhbmQtYnV0dG9uLWljb24tb25seTtcblx0XHRcdG1hcmdpbi1yaWdodDogLShAc3BhY2luZy1ob3Jpem9udGFsLWJ1dHRvbi1pY29uLW9ubHkgKyAxcHgpO1xuXHRcdH1cblx0fVxuXG5cdCZfX21haW4ge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0bWFyZ2luLXRvcDogQHNwYWNpbmctMjU7XG5cblx0XHQmX19zZWxlY3Qge1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiBAc3BhY2luZy03NTtcblx0XHRcdGZsZXg6IDE7XG5cdFx0fVxuXG5cdFx0Jl9fYWN0aW9uIHtcblx0XHRcdGZsZXgtc2hyaW5rOiAwO1xuXHRcdH1cblx0fVxuXG5cdCZfX2Nsb3NlIHtcblx0XHRwYWRkaW5nOiBAc3BhY2luZy1zaG9ydGhhbmQtYnV0dG9uLWljb24tb25seTtcblx0XHRmbG9hdDogcmlnaHQ7XG5cdFx0bWFyZ2luLXJpZ2h0OiAtKEBzcGFjaW5nLWhvcml6b250YWwtYnV0dG9uLWljb24tb25seSArIDFweCk7XG5cdH1cbn1cblxuLyogUHJvbXB0IHRyYW5zaXRpb24gZWZmZWN0ICovXG4udmEtdmFyaWFudC1wcm9tcHQtbW9iaWxlLWVudGVyLWFjdGl2ZSxcbi52YS12YXJpYW50LXByb21wdC1tb2JpbGUtbGVhdmUtYWN0aXZlIHtcblx0dHJhbnNpdGlvbi1wcm9wZXJ0eTogQHRyYW5zaXRpb24tcHJvcGVydHktbGF5b3V0O1xuXHR0cmFuc2l0aW9uLWR1cmF0aW9uOiBAdHJhbnNpdGlvbi1kdXJhdGlvbi1tZWRpdW07XG5cdHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBAdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24tc3lzdGVtO1xufVxuXG4udmEtdmFyaWFudC1wcm9tcHQtbW9iaWxlLWVudGVyLWZyb20sXG4udmEtdmFyaWFudC1wcm9tcHQtbW9iaWxlLWxlYXZlLXRvIHtcblx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMCUpO1xufVxuPC9zdHlsZT5cbi4uL21vZHVsZXMvdXRpbHNcbiIsICJpbXBvcnQgeyByZW5kZXJTbG90IGFzIF9yZW5kZXJTbG90LCB2TW9kZWxTZWxlY3QgYXMgX3ZNb2RlbFNlbGVjdCwgd2l0aERpcmVjdGl2ZXMgYXMgX3dpdGhEaXJlY3RpdmVzLCBvcGVuQmxvY2sgYXMgX29wZW5CbG9jaywgY3JlYXRlRWxlbWVudEJsb2NrIGFzIF9jcmVhdGVFbGVtZW50QmxvY2sgfSBmcm9tIFwidnVlXCJcblxuZXhwb3J0IGZ1bmN0aW9uIHJlbmRlcihfY3R4LCBfY2FjaGUsICRwcm9wcywgJHNldHVwLCAkZGF0YSwgJG9wdGlvbnMpIHtcbiAgcmV0dXJuIF93aXRoRGlyZWN0aXZlcygoX29wZW5CbG9jaygpLCBfY3JlYXRlRWxlbWVudEJsb2NrKFwic2VsZWN0XCIsIHtcbiAgICBcIm9uVXBkYXRlOm1vZGVsVmFsdWVcIjogX2NhY2hlWzBdIHx8IChfY2FjaGVbMF0gPSAkZXZlbnQgPT4gKCgkc2V0dXAubW9kZWxWYWx1ZSkgPSAkZXZlbnQpKSxcbiAgICBjbGFzczogXCJ2YS1zZWxlY3RcIlxuICB9LCBbXG4gICAgX3JlbmRlclNsb3QoX2N0eC4kc2xvdHMsIFwiZGVmYXVsdFwiLCB7fSwgdW5kZWZpbmVkLCB0cnVlKVxuICBdLCA1MTIgLyogTkVFRF9QQVRDSCAqLykpLCBbXG4gICAgW192TW9kZWxTZWxlY3QsICRzZXR1cC5tb2RlbFZhbHVlXVxuICBdKVxufSIsICJpbXBvcnQgc2NyaXB0IGZyb20gXCJEOlxcXFxHaXRSZXBvc2l0b3J5XFxcXFFpdXdlbkdhZGdldHNcXFxcc3JjXFxcXFZhcmlhbnRBbGx5RGlhbG9nXFxcXGNvbXBvbmVudHNcXFxcVkFTZWxlY3QudnVlP3R5cGU9c2NyaXB0XCI7aW1wb3J0IFwiRDpcXFxcR2l0UmVwb3NpdG9yeVxcXFxRaXV3ZW5HYWRnZXRzXFxcXHNyY1xcXFxWYXJpYW50QWxseURpYWxvZ1xcXFxjb21wb25lbnRzXFxcXFZBU2VsZWN0LnZ1ZT90eXBlPXN0eWxlJmluZGV4PTBcIjtpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiRDpcXFxcR2l0UmVwb3NpdG9yeVxcXFxRaXV3ZW5HYWRnZXRzXFxcXHNyY1xcXFxWYXJpYW50QWxseURpYWxvZ1xcXFxjb21wb25lbnRzXFxcXFZBU2VsZWN0LnZ1ZT90eXBlPXRlbXBsYXRlXCI7IHNjcmlwdC5yZW5kZXIgPSByZW5kZXI7c2NyaXB0Ll9fZmlsZSA9IFwic3JjXFxcXFZhcmlhbnRBbGx5RGlhbG9nXFxcXGNvbXBvbmVudHNcXFxcVkFTZWxlY3QudnVlXCI7c2NyaXB0Ll9fc2NvcGVJZCA9IFwiZGF0YS12LWM5YjQ2NDYwXCI7ZXhwb3J0IGRlZmF1bHQgc2NyaXB0OyIsICJpbXBvcnQgeyB0b0Rpc3BsYXlTdHJpbmcgYXMgX3RvRGlzcGxheVN0cmluZywgY3JlYXRlRWxlbWVudFZOb2RlIGFzIF9jcmVhdGVFbGVtZW50Vk5vZGUsIGNyZWF0ZVZOb2RlIGFzIF9jcmVhdGVWTm9kZSwgcmVuZGVyTGlzdCBhcyBfcmVuZGVyTGlzdCwgRnJhZ21lbnQgYXMgX0ZyYWdtZW50LCBvcGVuQmxvY2sgYXMgX29wZW5CbG9jaywgY3JlYXRlRWxlbWVudEJsb2NrIGFzIF9jcmVhdGVFbGVtZW50QmxvY2ssIHdpdGhDdHggYXMgX3dpdGhDdHgsIGNyZWF0ZVRleHRWTm9kZSBhcyBfY3JlYXRlVGV4dFZOb2RlLCBjcmVhdGVDb21tZW50Vk5vZGUgYXMgX2NyZWF0ZUNvbW1lbnRWTm9kZSwgVHJhbnNpdGlvbiBhcyBfVHJhbnNpdGlvbiwgY3JlYXRlQmxvY2sgYXMgX2NyZWF0ZUJsb2NrIH0gZnJvbSBcInZ1ZVwiXG5cbmNvbnN0IF9ob2lzdGVkXzEgPSBbXCJsYW5nXCIsIFwiYXJpYS1sYWJlbGxlZGJ5XCJdXG5jb25zdCBfaG9pc3RlZF8yID0geyBjbGFzczogXCJ2YS12YXJpYW50LXByb21wdC1tb2JpbGVfX2hlYWRlclwiIH1cbmNvbnN0IF9ob2lzdGVkXzMgPSBbXCJpZFwiXVxuY29uc3QgX2hvaXN0ZWRfNCA9IHsgY2xhc3M6IFwidmEtdmFyaWFudC1wcm9tcHQtbW9iaWxlX19tYWluXCIgfVxuY29uc3QgX2hvaXN0ZWRfNSA9IFtcInZhbHVlXCIsIFwibGFuZ1wiXVxuY29uc3QgX2hvaXN0ZWRfNiA9IHsgY2xhc3M6IFwidmEtdmFyaWFudC1wcm9tcHQtbW9iaWxlX19mb290ZXJcIiB9XG5jb25zdCBfaG9pc3RlZF83ID0geyBjbGFzczogXCJ2YS1wYXJhIHZhLXBhcmEtLXN1YnRsZVwiIH1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlbmRlcihfY3R4LCBfY2FjaGUsICRwcm9wcywgJHNldHVwLCAkZGF0YSwgJG9wdGlvbnMpIHtcbiAgcmV0dXJuIChfb3BlbkJsb2NrKCksIF9jcmVhdGVCbG9jayhfVHJhbnNpdGlvbiwge1xuICAgIG5hbWU6IFwidmEtdmFyaWFudC1wcm9tcHQtbW9iaWxlXCIsXG4gICAgYXBwZWFyOiBcIlwiXG4gIH0sIHtcbiAgICBkZWZhdWx0OiBfd2l0aEN0eCgoKSA9PiBbXG4gICAgICAoJHByb3BzLm9wZW4pXG4gICAgICAgID8gKF9vcGVuQmxvY2soKSwgX2NyZWF0ZUVsZW1lbnRCbG9jayhcImRpdlwiLCB7XG4gICAgICAgICAgICBrZXk6IDAsXG4gICAgICAgICAgICByZWY6IFwicHJvbXB0XCIsXG4gICAgICAgICAgICBsYW5nOiBgemgtJHskc2V0dXAuaTE4blZhcmlhbnR9YCxcbiAgICAgICAgICAgIGNsYXNzOiBcInZhLXZhcmlhbnQtcHJvbXB0LW1vYmlsZVwiLFxuICAgICAgICAgICAgcm9sZTogXCJkaWFsb2dcIixcbiAgICAgICAgICAgIFwiYXJpYS1tb2RhbFwiOiBcImZhbHNlXCIsXG4gICAgICAgICAgICBcImFyaWEtbGFiZWxsZWRieVwiOiAkc2V0dXAudGl0bGVJZFxuICAgICAgICAgIH0sIFtcbiAgICAgICAgICAgIF9jcmVhdGVFbGVtZW50Vk5vZGUoXCJkaXZcIiwgX2hvaXN0ZWRfMiwgW1xuICAgICAgICAgICAgICBfY3JlYXRlRWxlbWVudFZOb2RlKFwiaDJcIiwge1xuICAgICAgICAgICAgICAgIGlkOiAkc2V0dXAudGl0bGVJZCxcbiAgICAgICAgICAgICAgICBjbGFzczogXCJ2YS12YXJpYW50LXByb21wdC1tb2JpbGVfX2hlYWRlcl9fdGl0bGUgdmEtdGl0bGVcIlxuICAgICAgICAgICAgICB9LCBfdG9EaXNwbGF5U3RyaW5nKCRzZXR1cC51c2VJMThuKCd2cC5tYWluJykpLCA5IC8qIFRFWFQsIFBST1BTICovLCBfaG9pc3RlZF8zKSxcbiAgICAgICAgICAgICAgX2NyZWF0ZVZOb2RlKCRzZXR1cFtcIlZBQnV0dG9uXCJdLCB7XG4gICAgICAgICAgICAgICAgY2xhc3M6IFwidmEtdmFyaWFudC1wcm9tcHQtbW9iaWxlX19oZWFkZXJfX2Nsb3NlXCIsXG4gICAgICAgICAgICAgICAgd2VpZ2h0OiBcInF1aWV0XCIsXG4gICAgICAgICAgICAgICAgaWNvbjogXCJjbG9zZVwiLFxuICAgICAgICAgICAgICAgIHRpdGxlOiAkc2V0dXAudXNlSTE4bignY2xvc2UnKSxcbiAgICAgICAgICAgICAgICBcImFyaWEtbGFiZWxcIjogJHNldHVwLnVzZUkxOG4oJ2Nsb3NlJyksXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ6ICRwcm9wcy5kaXNhYmxlZCxcbiAgICAgICAgICAgICAgICBvbkNsaWNrOiAkc2V0dXAub3B0T3V0QW5kQ2xvc2VcbiAgICAgICAgICAgICAgfSwgbnVsbCwgOCAvKiBQUk9QUyAqLywgW1widGl0bGVcIiwgXCJhcmlhLWxhYmVsXCIsIFwiZGlzYWJsZWRcIl0pXG4gICAgICAgICAgICBdKSxcbiAgICAgICAgICAgIF9jcmVhdGVFbGVtZW50Vk5vZGUoXCJkaXZcIiwgX2hvaXN0ZWRfNCwgW1xuICAgICAgICAgICAgICBfY3JlYXRlVk5vZGUoJHNldHVwW1wiVkFTZWxlY3RcIl0sIHtcbiAgICAgICAgICAgICAgICBtb2RlbFZhbHVlOiAkc2V0dXAuc2VsZWN0ZWRWYXJpYW50LFxuICAgICAgICAgICAgICAgIFwib25VcGRhdGU6bW9kZWxWYWx1ZVwiOiBfY2FjaGVbMF0gfHwgKF9jYWNoZVswXSA9ICRldmVudCA9PiAoKCRzZXR1cC5zZWxlY3RlZFZhcmlhbnQpID0gJGV2ZW50KSksXG4gICAgICAgICAgICAgICAgY2xhc3M6IFwidmEtdmFyaWFudC1wcm9tcHQtbW9iaWxlX19tYWluX19zZWxlY3RcIixcbiAgICAgICAgICAgICAgICBsYW5nOiAkc2V0dXAuc2VsZWN0ZWRWYXJpYW50LFxuICAgICAgICAgICAgICAgIGRpc2FibGVkOiAkcHJvcHMuZGlzYWJsZWQsXG4gICAgICAgICAgICAgICAgXCJhcmlhLWxhYmVsbGVkYnlcIjogJHNldHVwLnRpdGxlSWRcbiAgICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IF93aXRoQ3R4KCgpID0+IFtcbiAgICAgICAgICAgICAgICAgIChfb3BlbkJsb2NrKHRydWUpLCBfY3JlYXRlRWxlbWVudEJsb2NrKF9GcmFnbWVudCwgbnVsbCwgX3JlbmRlckxpc3QoJHNldHVwLlZBTElEX1ZBUklBTlRTLCAodmFyaWFudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKF9vcGVuQmxvY2soKSwgX2NyZWF0ZUVsZW1lbnRCbG9jayhcIm9wdGlvblwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAga2V5OiB2YXJpYW50LFxuICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiB2YXJpYW50LFxuICAgICAgICAgICAgICAgICAgICAgIGxhbmc6IHZhcmlhbnRcbiAgICAgICAgICAgICAgICAgICAgfSwgX3RvRGlzcGxheVN0cmluZygkc2V0dXAubWVzc2FnZXMudmFyaWFudHNbdmFyaWFudF0pLCA5IC8qIFRFWFQsIFBST1BTICovLCBfaG9pc3RlZF81KSlcbiAgICAgICAgICAgICAgICAgIH0pLCAxMjggLyogS0VZRURfRlJBR01FTlQgKi8pKVxuICAgICAgICAgICAgICAgIF0pLFxuICAgICAgICAgICAgICAgIF86IDEgLyogU1RBQkxFICovXG4gICAgICAgICAgICAgIH0sIDggLyogUFJPUFMgKi8sIFtcIm1vZGVsVmFsdWVcIiwgXCJsYW5nXCIsIFwiZGlzYWJsZWRcIiwgXCJhcmlhLWxhYmVsbGVkYnlcIl0pLFxuICAgICAgICAgICAgICBfY3JlYXRlVk5vZGUoJHNldHVwW1wiVkFCdXR0b25cIl0sIHtcbiAgICAgICAgICAgICAgICBjbGFzczogXCJ2YS12YXJpYW50LXByb21wdC1tb2JpbGVfX21haW5fX2FjdGlvblwiLFxuICAgICAgICAgICAgICAgIGFjdGlvbjogXCJwcm9ncmVzc2l2ZVwiLFxuICAgICAgICAgICAgICAgIGljb246IFwiYXJyb3dOZXh0XCIsXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ6ICRwcm9wcy5kaXNhYmxlZCxcbiAgICAgICAgICAgICAgICBvbkNsaWNrOiBfY2FjaGVbMV0gfHwgKF9jYWNoZVsxXSA9ICRldmVudCA9PiAoJHNldHVwLnNlbGVjdCgkc2V0dXAuc2VsZWN0ZWRWYXJpYW50KSkpXG4gICAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiBfd2l0aEN0eCgoKSA9PiBbXG4gICAgICAgICAgICAgICAgICBfY3JlYXRlVGV4dFZOb2RlKF90b0Rpc3BsYXlTdHJpbmcoJHNldHVwLnVzZUkxOG4oJ3ZwLmJ1dHRvbi5vaycpKSwgMSAvKiBURVhUICovKVxuICAgICAgICAgICAgICAgIF0pLFxuICAgICAgICAgICAgICAgIF86IDEgLyogU1RBQkxFICovXG4gICAgICAgICAgICAgIH0sIDggLyogUFJPUFMgKi8sIFtcImRpc2FibGVkXCJdKVxuICAgICAgICAgICAgXSksXG4gICAgICAgICAgICBfY3JlYXRlRWxlbWVudFZOb2RlKFwiZm9vdGVyXCIsIF9ob2lzdGVkXzYsIFtcbiAgICAgICAgICAgICAgX2NyZWF0ZUVsZW1lbnRWTm9kZShcInBcIiwgX2hvaXN0ZWRfNywgX3RvRGlzcGxheVN0cmluZygkc2V0dXAudXNlSTE4bigndnAubWFpbi5leHQnKSksIDEgLyogVEVYVCAqLylcbiAgICAgICAgICAgIF0pXG4gICAgICAgICAgXSwgOCAvKiBQUk9QUyAqLywgX2hvaXN0ZWRfMSkpXG4gICAgICAgIDogX2NyZWF0ZUNvbW1lbnRWTm9kZShcInYtaWZcIiwgdHJ1ZSlcbiAgICBdKSxcbiAgICBfOiAxIC8qIFNUQUJMRSAqL1xuICB9KSlcbn0iLCAiaW1wb3J0IHNjcmlwdCBmcm9tIFwiRDpcXFxcR2l0UmVwb3NpdG9yeVxcXFxRaXV3ZW5HYWRnZXRzXFxcXHNyY1xcXFxWYXJpYW50QWxseURpYWxvZ1xcXFxjb21wb25lbnRzXFxcXFZBVmFyaWFudFByb21wdE1vYmlsZS52dWU/dHlwZT1zY3JpcHRcIjtpbXBvcnQgXCJEOlxcXFxHaXRSZXBvc2l0b3J5XFxcXFFpdXdlbkdhZGdldHNcXFxcc3JjXFxcXFZhcmlhbnRBbGx5RGlhbG9nXFxcXGNvbXBvbmVudHNcXFxcVkFWYXJpYW50UHJvbXB0TW9iaWxlLnZ1ZT90eXBlPXN0eWxlJmluZGV4PTBcIjtpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiRDpcXFxcR2l0UmVwb3NpdG9yeVxcXFxRaXV3ZW5HYWRnZXRzXFxcXHNyY1xcXFxWYXJpYW50QWxseURpYWxvZ1xcXFxjb21wb25lbnRzXFxcXFZBVmFyaWFudFByb21wdE1vYmlsZS52dWU/dHlwZT10ZW1wbGF0ZVwiOyBzY3JpcHQucmVuZGVyID0gcmVuZGVyO3NjcmlwdC5fX2ZpbGUgPSBcInNyY1xcXFxWYXJpYW50QWxseURpYWxvZ1xcXFxjb21wb25lbnRzXFxcXFZBVmFyaWFudFByb21wdE1vYmlsZS52dWVcIjtzY3JpcHQuX19zY29wZUlkID0gXCJkYXRhLXYtNWNjNzg2NWJcIjtleHBvcnQgZGVmYXVsdCBzY3JpcHQ7IiwgImltcG9ydCB7IG9wZW5CbG9jayBhcyBfb3BlbkJsb2NrLCBjcmVhdGVCbG9jayBhcyBfY3JlYXRlQmxvY2ssIGNyZWF0ZUNvbW1lbnRWTm9kZSBhcyBfY3JlYXRlQ29tbWVudFZOb2RlLCBUZWxlcG9ydCBhcyBfVGVsZXBvcnQsIEZyYWdtZW50IGFzIF9GcmFnbWVudCwgY3JlYXRlRWxlbWVudEJsb2NrIGFzIF9jcmVhdGVFbGVtZW50QmxvY2sgfSBmcm9tIFwidnVlXCJcblxuZXhwb3J0IGZ1bmN0aW9uIHJlbmRlcihfY3R4LCBfY2FjaGUsICRwcm9wcywgJHNldHVwLCAkZGF0YSwgJG9wdGlvbnMpIHtcbiAgcmV0dXJuIChfb3BlbkJsb2NrKCksIF9jcmVhdGVFbGVtZW50QmxvY2soX0ZyYWdtZW50LCBudWxsLCBbXG4gICAgKF9vcGVuQmxvY2soKSwgX2NyZWF0ZUJsb2NrKF9UZWxlcG9ydCwgeyB0bzogJHNldHVwLmRlc2t0b3BNb3VudFBvaW50IH0sIFtcbiAgICAgICghJHNldHVwLmlzTW9iaWxlKVxuICAgICAgICA/IChfb3BlbkJsb2NrKCksIF9jcmVhdGVCbG9jaygkc2V0dXBbXCJWQVZhcmlhbnRQcm9tcHRcIl0sIHtcbiAgICAgICAgICAgIGtleTogMCxcbiAgICAgICAgICAgIG9wZW46ICRzZXR1cC5pc09wZW4sXG4gICAgICAgICAgICBcIm9uVXBkYXRlOm9wZW5cIjogX2NhY2hlWzBdIHx8IChfY2FjaGVbMF0gPSAkZXZlbnQgPT4gKCgkc2V0dXAuaXNPcGVuKSA9ICRldmVudCkpLFxuICAgICAgICAgICAgZGlzYWJsZWQ6ICRzZXR1cC5pc0Rpc2FibGVkLFxuICAgICAgICAgICAgXCJvblVwZGF0ZTpkaXNhYmxlZFwiOiBfY2FjaGVbMV0gfHwgKF9jYWNoZVsxXSA9ICRldmVudCA9PiAoKCRzZXR1cC5pc0Rpc2FibGVkKSA9ICRldmVudCkpLFxuICAgICAgICAgICAgXCJhdXRvLWNsb3NlXCI6IGZhbHNlLFxuICAgICAgICAgICAgb25PcHRvdXQ6ICRzZXR1cC5vbk9wdE91dCxcbiAgICAgICAgICAgIG9uU2VsZWN0OiAkc2V0dXAuc2V0VmFyaWFudFxuICAgICAgICAgIH0sIG51bGwsIDggLyogUFJPUFMgKi8sIFtcIm9wZW5cIiwgXCJkaXNhYmxlZFwiXSkpXG4gICAgICAgIDogX2NyZWF0ZUNvbW1lbnRWTm9kZShcInYtaWZcIiwgdHJ1ZSlcbiAgICBdLCA4IC8qIFBST1BTICovLCBbXCJ0b1wiXSkpLFxuICAgIF9jcmVhdGVDb21tZW50Vk5vZGUoXCIgVGVsZXBvcnQgdG8gYm9keSBiZWNhdXNlIHRoZXkgYXJlIGFsd2F5cyBmbG9hdGVkIGF0IGJvdHRvbSBcIiksXG4gICAgKF9vcGVuQmxvY2soKSwgX2NyZWF0ZUJsb2NrKF9UZWxlcG9ydCwgeyB0bzogXCJib2R5XCIgfSwgW1xuICAgICAgKCRzZXR1cC5pc01vYmlsZSlcbiAgICAgICAgPyAoX29wZW5CbG9jaygpLCBfY3JlYXRlQmxvY2soJHNldHVwW1wiVkFWYXJpYW50UHJvbXB0TW9iaWxlXCJdLCB7XG4gICAgICAgICAgICBrZXk6IDAsXG4gICAgICAgICAgICBvcGVuOiAkc2V0dXAuaXNPcGVuLFxuICAgICAgICAgICAgXCJvblVwZGF0ZTpvcGVuXCI6IF9jYWNoZVsyXSB8fCAoX2NhY2hlWzJdID0gJGV2ZW50ID0+ICgoJHNldHVwLmlzT3BlbikgPSAkZXZlbnQpKSxcbiAgICAgICAgICAgIGRpc2FibGVkOiAkc2V0dXAuaXNEaXNhYmxlZCxcbiAgICAgICAgICAgIFwib25VcGRhdGU6ZGlzYWJsZWRcIjogX2NhY2hlWzNdIHx8IChfY2FjaGVbM10gPSAkZXZlbnQgPT4gKCgkc2V0dXAuaXNEaXNhYmxlZCkgPSAkZXZlbnQpKSxcbiAgICAgICAgICAgIG9uT3B0b3V0OiAkc2V0dXAub25PcHRPdXQsXG4gICAgICAgICAgICBvblNlbGVjdDogJHNldHVwLnNldFZhcmlhbnRcbiAgICAgICAgICB9LCBudWxsLCA4IC8qIFBST1BTICovLCBbXCJvcGVuXCIsIFwiZGlzYWJsZWRcIl0pKVxuICAgICAgICA6IF9jcmVhdGVDb21tZW50Vk5vZGUoXCJ2LWlmXCIsIHRydWUpXG4gICAgXSkpXG4gIF0sIDY0IC8qIFNUQUJMRV9GUkFHTUVOVCAqLykpXG59IiwgImltcG9ydCBzY3JpcHQgZnJvbSBcIkQ6XFxcXEdpdFJlcG9zaXRvcnlcXFxcUWl1d2VuR2FkZ2V0c1xcXFxzcmNcXFxcVmFyaWFudEFsbHlEaWFsb2dcXFxcQXBwLnZ1ZT90eXBlPXNjcmlwdFwiO2ltcG9ydCBcIkQ6XFxcXEdpdFJlcG9zaXRvcnlcXFxcUWl1d2VuR2FkZ2V0c1xcXFxzcmNcXFxcVmFyaWFudEFsbHlEaWFsb2dcXFxcQXBwLnZ1ZT90eXBlPXN0eWxlJmluZGV4PTBcIjtpbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiRDpcXFxcR2l0UmVwb3NpdG9yeVxcXFxRaXV3ZW5HYWRnZXRzXFxcXHNyY1xcXFxWYXJpYW50QWxseURpYWxvZ1xcXFxBcHAudnVlP3R5cGU9dGVtcGxhdGVcIjsgc2NyaXB0LnJlbmRlciA9IHJlbmRlcjtzY3JpcHQuX19maWxlID0gXCJzcmNcXFxcVmFyaWFudEFsbHlEaWFsb2dcXFxcQXBwLnZ1ZVwiO2V4cG9ydCBkZWZhdWx0IHNjcmlwdDsiXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsSUFBQUEsZUFBd0JDLFFBQUEsS0FBQTs7QUNDeEIsSUFBQUMsZUFBa0JELFFBQUEsS0FBQTtBQUNsQixJQUFBRSxvQkFBaUVGLFFBQUEsd0JBQUE7O0FDRGpFLElBQUFHLGVBQXlCSCxRQUFBLEtBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ0R6QixJQUFBSSxjQUF5S0osUUFBQSxLQUFBO0FBRXpLLElBQU1LLGFBQWEsQ0FB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MkIsWUFBWXpCLE9BQU80SCxhQUFjbkc7TUFDaEZzSyxVQUFVL0wsT0FBT3lMO01BQ2pCTyxVQUFVaE0sT0FBT3FMO0lBQ25CLEdBQUcsTUFBTSxHQUFlLENBQUMsUUFBUSxVQUFVLENBQUMsTUFBQSxHQUM1Q00sYUFBQS9LLG9CQUFvQixRQUFRLElBQUksQ0FBQSxDQUNyQyxFQUFBO0lBQ0E7O0VBQXdCO0FBQzdCOztBQ2pDMlNxTCxZQUFPck0sU0FBU2dNO0FBQU9LLFlBQU9qTCxTQUFTO0FBQWtDLElBQU9rTCxlQUFRRDs7QXhCR25ZLElBQU1FLE9BQU9sSSxTQUFTbUksY0FBYyxLQUFLO0FBQ3pDbkksU0FBU0UsS0FBS2tJLE9BQU9GLElBQUk7Q0FBQSxHQUN6QmxOLGFBQUFxTixXQUFVSixZQUFHLEVBQUVLLE1BQU1KLElBQUk7IiwKICAibmFtZXMiOiBbImltcG9ydF92dWUyMiIsICJyZXF1aXJlIiwgImltcG9ydF92dWUyMCIsICJpbXBvcnRfZXh0X2dhZGdldCIsICJpbXBvcnRfdnVlMTIiLCAiaW1wb3J0X3Z1ZTIiLCAiX2hvaXN0ZWRfMSIsICJfaG9pc3RlZF8yIiwgImtleSIsICJfaG9pc3RlZF8zIiwgIl9ob2lzdGVkXzQiLCAicmVuZGVyIiwgIl9jdHgiLCAiX2NhY2hlIiwgIiRwcm9wcyIsICIkc2V0dXAiLCAiJGRhdGEiLCAiJG9wdGlvbnMiLCAib3BlbkJsb2NrIiwgImNyZWF0ZUVsZW1lbnRCbG9jayIsICJjbGFzcyIsICJ4bWxucyIsICJ3aWR0aCIsICJzaXplIiwgImhlaWdodCIsICJ2aWV3Qm94IiwgImljb24iLCAiY3JlYXRlQ29tbWVudFZOb2RlIiwgImNyZWF0ZUVsZW1lbnRWTm9kZSIsICJkIiwgIlZBSWNvbl9kZWZhdWx0IiwgIl9fZmlsZSIsICJWQUljb25fZGVmYXVsdDIiLCAiaW1wb3J0X3Z1ZTQiLCAiX2hvaXN0ZWRfMTIiLCAicmVuZGVyMiIsICJub3JtYWxpemVDbGFzcyIsICJhY3Rpb24iLCAid2VpZ2h0IiwgIm9uQ2xpY2siLCAiJGV2ZW50IiwgIiRlbWl0IiwgImNyZWF0ZUJsb2NrIiwgIiRzbG90cyIsICJyZW5kZXJTbG90IiwgImluZGljYXRvciIsICJWQUJ1dHRvbl9kZWZhdWx0IiwgIl9fc2NvcGVJZCIsICJWQUJ1dHRvbl9kZWZhdWx0MiIsICJpbXBvcnRfdnVlNSIsICJyZW5kZXIzIiwgIlRyYW5zaXRpb24iLCAibmFtZSIsICJtb2RlIiwgImRlZmF1bHQiLCAid2l0aEN0eCIsICJfIiwgInNjcmlwdCIsICJWQUZhZGVUcmFuc2l0aW9uX2RlZmF1bHQiLCAiaW1wb3J0X3Z1ZTciLCAibWVzc2FnZXNfZGVmYXVsdCIsICJ2YXJpYW50cyIsICJoYW5zIiwgInNwYWNlIiwgImNsb3NlIiwgImhhbnQiLCAiaW1wb3J0X3Z1ZTYiLCAiVkFMSURfVkFSSUFOVFMiLCAid2dVc2VyVmFyaWFudCIsICJyZWYiLCAiX213JGNvbmZpZyRnZXQiLCAibXciLCAiY29uZmlnIiwgImdldCIsICJpc01vYmlsZURldmljZSIsICJtYXRjaE1lZGlhIiwgIm1hdGNoZXMiLCAiZ2V0TW91bnRQb2ludCIsICJfZG9jdW1lbnQkcXVlcnlTZWxlY3QiLCAiX2RvY3VtZW50JHF1ZXJ5U2VsZWN0MiIsICJkb2N1bWVudCIsICJxdWVyeVNlbGVjdG9yQWxsIiwgImJvZHkiLCAicXVlcnlTZWxlY3RvciIsICJpbmZlcnJlZFZhcmlhbnQiLCAiY29tcHV0ZWQiLCAiaW5jbHVkZXMiLCAidmFsdWUiLCAic2h1ZmZsZVZhcmlhbnQiLCAibGFzdCIsICJ0YXJnZXRBcnJheSIsICJmaWx0ZXIiLCAiaSIsICJyYW5kb21JbmRleCIsICJNYXRoIiwgImZsb29yIiwgInJhbmRvbSIsICJsZW5ndGgiLCAiaTE4blZhcmlhbnQiLCAidXNlSTE4biIsICJfY3VycmVudE1zZ3NHcm91cCRrZXkiLCAiY3VycmVudE1zZ3NHcm91cCIsICJjb3VudGVyIiwgInVzZVVuaXF1ZUlkIiwgImNvbmNhdCIsICJ1c2VVbmlxdWVJZF9kZWZhdWx0IiwgImltcG9ydF92dWU4IiwgIklOVEVSVkFMIiwgInVzZVNodWZmbGVkVmFyaWFudCIsICJpc0ZyZWV6ZWQiLCAicmVzdWx0IiwgImlkIiwgIndhdGNoIiwgIm5ld1ZhbHVlIiwgIl9pbmZlcnJlZFZhcmlhbnQkdmFsdSIsICJjbGVhckludGVydmFsIiwgIndpbmRvdyIsICJzZXRJbnRlcnZhbCIsICJpbW1lZGlhdGUiLCAidXNlU2h1ZmZsZWRWYXJpYW50X2RlZmF1bHQiLCAiaW1wb3J0X3Z1ZTkiLCAidXNlTW9kZWxXcmFwcGVyIiwgInByb3BzIiwgImVtaXQiLCAic2V0IiwgInVzZU1vZGVsV3JhcHBlcl9kZWZhdWx0IiwgImltcG9ydF92dWUxMCIsICJ1c2VEZWZhdWx0IiwgImRlZmF1bHRWYWx1ZSIsICJyZWFsUmVmIiwgInNoYWxsb3dSZWYiLCAiZGVlcCIsICJ1c2VEZWZhdWx0X2RlZmF1bHQiLCAiX19wcm9wcyIsICJfX2VtaXQiLCAicHJvbXB0IiwgInRpdGxlSWQiLCAiZGVzY0lkIiwgImlzT3BlbiIsICJpc0Rpc2FibGVkIiwgImlzVmFyaWFudE5hcnJvd2VkIiwgInNodWZmbGVkVmFyaWFudCIsICJvcHRPdXRBbmRDbG9zZSIsICJzZWxlY3QiLCAidmFyaWFudCIsICJlbGVtZW50IiwgImFkZEV2ZW50TGlzdGVuZXIiLCAiZXYiLCAiYnV0dG9ucyIsICJhdXRvQ2xvc2UiLCAiZGlzYWJsZWQiLCAiaW1wb3J0X3Z1ZTEzIiwgIl9ob2lzdGVkXzEzIiwgIl9ob2lzdGVkXzIyIiwgIl9ob2lzdGVkXzMyIiwgIl9ob2lzdGVkXzQyIiwgIl9ob2lzdGVkXzUiLCAiX2hvaXN0ZWRfNiIsICJfaG9pc3RlZF83IiwgInJlbmRlcjQiLCAiYXBwZWFyIiwgIm9wZW4iLCAibGFuZyIsICJyb2xlIiwgImNyZWF0ZVZOb2RlIiwgInRpdGxlIiwgImNyZWF0ZVRleHRWTm9kZSIsICJ0b0Rpc3BsYXlTdHJpbmciLCAibWVzc2FnZXMiLCAiRnJhZ21lbnQiLCAicmVuZGVyTGlzdCIsICJWQVZhcmlhbnRQcm9tcHRfZGVmYXVsdCIsICJWQVZhcmlhbnRQcm9tcHRfZGVmYXVsdDIiLCAiaW1wb3J0X3Z1ZTE3IiwgIm1vZGVsVmFsdWUiLCAiaW1wb3J0X3Z1ZTE1IiwgInJlbmRlcjUiLCAid2l0aERpcmVjdGl2ZXMiLCAidk1vZGVsU2VsZWN0IiwgIlZBU2VsZWN0X2RlZmF1bHQiLCAiVkFTZWxlY3RfZGVmYXVsdDIiLCAic2VsZWN0ZWRWYXJpYW50IiwgIl9pbmZlcnJlZFZhcmlhbnQkdmFsdTIiLCAiaW1wb3J0X3Z1ZTE4IiwgIl9ob2lzdGVkXzE0IiwgIl9ob2lzdGVkXzIzIiwgIl9ob2lzdGVkXzMzIiwgIl9ob2lzdGVkXzQzIiwgIl9ob2lzdGVkXzUyIiwgIl9ob2lzdGVkXzYyIiwgIl9ob2lzdGVkXzcyIiwgInJlbmRlcjYiLCAiVkFWYXJpYW50UHJvbXB0TW9iaWxlX2RlZmF1bHQiLCAiVkFWYXJpYW50UHJvbXB0TW9iaWxlX2RlZmF1bHQyIiwgImlzTW9iaWxlIiwgImRlc2t0b3BNb3VudFBvaW50IiwgInNldFZhcmlhbnQiLCAic2V0TG9jYWxWYXJpYW50IiwgInJlZGlyZWN0IiwgImZvcmNlZCIsICJvbk9wdE91dCIsICJzZXRPcHRPdXQiLCAiaW1wb3J0X3Z1ZTIxIiwgInJlbmRlcjciLCAiVGVsZXBvcnQiLCAidG8iLCAib25PcHRvdXQiLCAib25TZWxlY3QiLCAiQXBwX2RlZmF1bHQiLCAiQXBwX2RlZmF1bHQyIiwgInJvb3QiLCAiY3JlYXRlRWxlbWVudCIsICJhcHBlbmQiLCAiY3JlYXRlQXBwIiwgIm1vdW50Il0KfQo= diff --git a/dist/WhoIsActive/WhoIsActive.js b/dist/WhoIsActive/WhoIsActive.js index e096a1ec9..8fe25241b 100644 --- a/dist/WhoIsActive/WhoIsActive.js +++ b/dist/WhoIsActive/WhoIsActive.js @@ -140,7 +140,7 @@ var appendFooterNotice = (element) => { } }; //! src/WhoIsActive/modules/util/getLastActiveMarker.tsx -var import_ext_gadget2 = __toESM(require("ext.gadget.React"), 1); +var import_ext_gadget2 = __toESM(require("ext.gadget.JSX"), 1); //! src/WhoIsActive/modules/i18n.ts var import_ext_gadget = require("ext.gadget.i18n"); var getI18nMessages = () => { @@ -454,4 +454,4 @@ var whoIsActiveUserPage = () => { /* */ -//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL0dlb0xvY2F0aW9uL21vZHVsZXMvY29uc3RhbnQudHMiLCAic3JjL1dob0lzQWN0aXZlL29wdGlvbnMuanNvbiIsICJzcmMvV2hvSXNBY3RpdmUvbW9kdWxlcy91dGlsL2FwcGVuZEZvb3Rlck5vdGljZS50cyIsICJzcmMvV2hvSXNBY3RpdmUvbW9kdWxlcy91dGlsL2dldExhc3RBY3RpdmVNYXJrZXIudHN4IiwgInNyYy9XaG9Jc0FjdGl2ZS9tb2R1bGVzL2kxOG4udHMiLCAic3JjL1dob0lzQWN0aXZlL21vZHVsZXMvdXRpbC9hcGkudHMiLCAic3JjL1dob0lzQWN0aXZlL21vZHVsZXMvdXRpbC9nZXRUaW1lc3RhbXAudHMiLCAic3JjL1dob0lzQWN0aXZlL21vZHVsZXMvdXRpbC9hcHBlbmRNYXJrZXIudHMiLCAic3JjL1dob0lzQWN0aXZlL21vZHVsZXMvdXRpbC9nZXRVc2VyTGlua3MudHMiLCAic3JjL1dob0lzQWN0aXZlL21vZHVsZXMvY29yZS50cyIsICJzcmMvV2hvSXNBY3RpdmUvV2hvSXNBY3RpdmUudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImNvbnN0IFNZU1RFTV9TQ1JJUFRfTElTVDogc3RyaW5nW10gPSBbXG5cdCfmu6XnlKjov4fmu6TlmagnLFxuXHQn5rGC6Ze757yW6ICFJyxcblx0J+axgumXu+eZvuenkeekvuWMuicsXG5cdCdFeGFtcGxlJyxcblx0J0V4dGVybmFsIGNvbnRyaWJ1dG9ycycsXG5cdCdNYWludGVuYW5jZSBzY3JpcHQnLFxuXHQnTWVkaWFXaWtpIGRlZmF1bHQnLFxuXHQnTWVkaWFXaWtpIG1lc3NhZ2UgZGVsaXZlcnknLFxuXHQnTmV3IHVzZXIgcGFnZScsXG5dO1xuY29uc3QgV0VCTUFTVEVSX0xJU1Q6IHN0cmluZ1tdID0gWydRaXVXZW4nLCAnUWl1V2VuIGZvciBBY2NvdW50cycsICdRaXV3ZW5Tb2NpYWxNZWRpYSddO1xuXG5leHBvcnQge1NZU1RFTV9TQ1JJUFRfTElTVCwgV0VCTUFTVEVSX0xJU1R9O1xuIiwgIntcblx0XCJtb3VudFBvaW50U2VsZWN0b3JcIjogXCIjZm9vdGVyLWluZm8sLnBhZ2UtaW5mb1wiLFxuXHRcInN0b3JhZ2VLZXlcIjogXCJleHQuZ2FkZ2V0Lldob0lzQWN0aXZlX3dob0lzQWN0aXZlLVwiLFxuXHRcInZlcnNpb25cIjogXCIyLjFcIlxufVxuIiwgImltcG9ydCAqIGFzIE9QVElPTlMgZnJvbSAnLi4vLi4vb3B0aW9ucy5qc29uJztcblxuY29uc3QgYXBwZW5kRm9vdGVyTm90aWNlID0gKGVsZW1lbnQ6IEVsZW1lbnQpID0+IHtcblx0Y29uc3QgbW91bnRQb2ludCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3I8SFRNTEVsZW1lbnQ+KE9QVElPTlMubW91bnRQb2ludFNlbGVjdG9yKTtcblxuXHRpZiAobW91bnRQb2ludCkge1xuXHRcdG1vdW50UG9pbnQucHJlcGVuZChlbGVtZW50KTtcblx0fVxufTtcblxuZXhwb3J0IHthcHBlbmRGb290ZXJOb3RpY2V9O1xuIiwgImltcG9ydCBSZWFjdCBmcm9tICdleHQuZ2FkZ2V0LlJlYWN0JztcbmltcG9ydCB7Z2V0TWVzc2FnZX0gZnJvbSAnLi4vaTE4bic7XG5cbnR5cGUgVGltZVNwYW4gPSAnVGhpc1dlZWsnIHwgJ1RoaXNNb250aCcgfCAnVGhpc1NlYXNvbicgfCAnVGhpc1NlbWl5ZWFyJyB8ICdUaGlzWWVhcicgfCAnT3ZlckFZZWFyJztcblxuZnVuY3Rpb24gV3JhcHBlcihwcm9wczoge3RpbWVTcGFuOiBUaW1lU3BhbjsgaW5uZXJFbGVtZW50OiBSZWFjdC5SZWFjdEVsZW1lbnR9KSB7XG5cdGNvbnN0IHt0aW1lU3BhbiwgaW5uZXJFbGVtZW50fSA9IHByb3BzO1xuXG5cdGNvbnN0IGNsYXNzTmFtZTogc3RyaW5nW10gPSBbJ2dhZGdldC13aG9pc2FjdGl2ZScsIGBnYWRnZXQtd2hvaXNhY3RpdmVfXyR7dGltZVNwYW59YF07XG5cdGNvbnN0IHtza2lufSA9IG13LmNvbmZpZy5nZXQoKTtcblxuXHRpZiAoc2tpbiA9PT0gJ2NpdGl6ZW4nKSB7XG5cdFx0cmV0dXJuIChcblx0XHRcdDxzZWN0aW9uIGNsYXNzTmFtZT17Wy4uLmNsYXNzTmFtZSwgJ3BhZ2UtaW5mb19faXRlbScsICdjaXRpemVuLWZvb3Rlcl9fcGFnZWluZm8taXRlbScsICdub3ByaW50J119PlxuXHRcdFx0XHR7aW5uZXJFbGVtZW50fVxuXHRcdFx0PC9zZWN0aW9uPlxuXHRcdCk7XG5cdH0gZWxzZSBpZiAoWydnb25nYmknLCAndmVjdG9yJywgJ3ZlY3Rvci0yMDIyJ10uaW5jbHVkZXMoc2tpbikgfHwgZG9jdW1lbnQucXVlcnlTZWxlY3RvcigndWwjZm9vdGVyLWluZm8nKSkge1xuXHRcdHJldHVybiA8bGkgY2xhc3NOYW1lPXtbY2xhc3NOYW1lLCAnbm9wcmludCddfT57aW5uZXJFbGVtZW50fTwvbGk+O1xuXHR9XG5cblx0cmV0dXJuIDxkaXYgY2xhc3NOYW1lPXtbY2xhc3NOYW1lLCAnbm9wcmludCddfT57aW5uZXJFbGVtZW50fTwvZGl2Pjtcbn1cblxuZnVuY3Rpb24gVGFnKHByb3BzOiB7dGltZVNwYW46IFRpbWVTcGFuOyBpbmRpY2F0b3I6IGJvb2xlYW59KSB7XG5cdGNvbnN0IHt0aW1lU3BhbiwgaW5kaWNhdG9yfSA9IHByb3BzO1xuXG5cdGNvbnN0IGljb25DbGFzc05hbWU6IHN0cmluZ1tdID0gWydnYWRnZXQtd2hvaXNhY3RpdmVfX2ljb24nLCBgZ2FkZ2V0LXdob2lzYWN0aXZlX19pY29uX18ke3RpbWVTcGFufWBdO1xuXHRjb25zdCB0ZXh0Q2xhc3NOYW1lOiBzdHJpbmdbXSA9IFtcblx0XHQnZ2FkZ2V0LXdob2lzYWN0aXZlX190ZXh0Jyxcblx0XHRpbmRpY2F0b3IgPT09IHRydWUgPyAnLCBnYWRnZXQtd2hvaXNhY3RpdmVfX25vdGV4dCcgOiAnJyxcblx0XTtcblxuXHRyZXR1cm4gKFxuXHRcdDw+XG5cdFx0XHQ8c3BhbiBjbGFzc05hbWU9e2ljb25DbGFzc05hbWV9IHRpdGxlPXtnZXRNZXNzYWdlKHRpbWVTcGFuKX0gLz5cblx0XHRcdDxzcGFuIGNsYXNzTmFtZT17dGV4dENsYXNzTmFtZX0+e2dldE1lc3NhZ2UodGltZVNwYW4pID8/ICcnfTwvc3Bhbj5cblx0XHQ8Lz5cblx0KTtcbn1cblxuY29uc3QgZ2V0TGFzdEFjdGl2ZU1hcmtlciA9ICh0aW1lc3RhbXA6IHN0cmluZywgaW5kaWNhdG9yOiBib29sZWFuKTogUmVhY3QuUmVhY3RFbGVtZW50ID0+IHtcblx0Y29uc3QgZGF0ZTogbnVtYmVyID0gRGF0ZS5wYXJzZSh0aW1lc3RhbXApO1xuXHRjb25zdCBub3c6IG51bWJlciA9IERhdGUubm93KCk7XG5cdGNvbnN0IGRpZmY6IG51bWJlciA9IE1hdGguZmxvb3IoKG5vdyAtIGRhdGUpIC8gKDEwMDAgKiA2MCAqIDYwICogMjQpKTtcblxuXHRsZXQgdGltZVNwYW46IFRpbWVTcGFuID0gJ1RoaXNXZWVrJztcblx0aWYgKGRpZmYgPiAzNjUpIHtcblx0XHR0aW1lU3BhbiA9ICdPdmVyQVllYXInO1xuXHR9IGVsc2UgaWYgKGRpZmYgPiAxODMpIHtcblx0XHR0aW1lU3BhbiA9ICdUaGlzWWVhcic7XG5cdH0gZWxzZSBpZiAoZGlmZiA+IDkyKSB7XG5cdFx0dGltZVNwYW4gPSAnVGhpc1NlbWl5ZWFyJztcblx0fSBlbHNlIGlmIChkaWZmID4gMzEpIHtcblx0XHR0aW1lU3BhbiA9ICdUaGlzU2Vhc29uJztcblx0fSBlbHNlIGlmIChkaWZmID4gNykge1xuXHRcdHRpbWVTcGFuID0gJ1RoaXNNb250aCc7XG5cdH1cblxuXHRyZXR1cm4gPFdyYXBwZXIgdGltZVNwYW49e3RpbWVTcGFufSBpbm5lckVsZW1lbnQ9ezxUYWcgdGltZVNwYW49e3RpbWVTcGFufSBpbmRpY2F0b3I9e2luZGljYXRvcn0gLz59IC8+O1xufTtcblxuZXhwb3J0IHR5cGUge1RpbWVTcGFufTtcbmV4cG9ydCB7Z2V0TGFzdEFjdGl2ZU1hcmtlcn07XG4iLCAiaW1wb3J0IHR5cGUge1RpbWVTcGFufSBmcm9tICcuL3V0aWwvZ2V0TGFzdEFjdGl2ZU1hcmtlcic7XG5pbXBvcnQge2xvY2FsaXplfSBmcm9tICdleHQuZ2FkZ2V0LmkxOG4nO1xuXG5jb25zdCBnZXRJMThuTWVzc2FnZXMgPSAoKSA9PiB7XG5cdHJldHVybiB7XG5cdFx0T3ZlckFZZWFyOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ0VkaXRlZCBvdmVyIGEgeWVhciBhZ28nLFxuXHRcdFx0J3poLWhhbnMnOiAn5LiA5bm05pyq5pyJ57yW6L6RJyxcblx0XHRcdCd6aC1oYW50JzogJ+S4gOW5tOacquaciee3qOi8rycsXG5cdFx0fSksXG5cdFx0VGhpc1dlZWs6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnRWRpdGVkIHRoaXMgd2VlaycsXG5cdFx0XHQnemgtaGFucyc6ICfkuIDlkajlhoXmnInnvJbovpEnLFxuXHRcdFx0J3poLWhhbnQnOiAn5LiA5ZGo5YWn5pyJ57eo6LyvJyxcblx0XHR9KSxcblx0XHRUaGlzTW9udGg6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnRWRpdGVkIHRoaXMgbW9udGgnLFxuXHRcdFx0J3poLWhhbnMnOiAn5LiA5pyI5YaF5pyJ57yW6L6RJyxcblx0XHRcdCd6aC1oYW50JzogJ+S4gOaciOWFp+aciee3qOi8rycsXG5cdFx0fSksXG5cdFx0VGhpc1NlYXNvbjogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdFZGl0ZWQgaW4gMyBtb250aHMnLFxuXHRcdFx0J3poLWhhbnMnOiAn5LiJ5pyI5YaF5pyJ57yW6L6RJyxcblx0XHRcdCd6aC1oYW50JzogJ+S4ieaciOWFp+aciee3qOi8rycsXG5cdFx0fSksXG5cdFx0VGhpc1NlbWl5ZWFyOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ0VkaXRlZCBpbiBoYWxmIGEgeWVhcicsXG5cdFx0XHQnemgtaGFucyc6ICfljYrlubTlhoXmnInnvJbovpEnLFxuXHRcdFx0J3poLWhhbnQnOiAn5Y2K5bm05YWn5pyJ57eo6LyvJyxcblx0XHR9KSxcblx0XHRUaGlzWWVhcjogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdFZGl0ZWQgdGhpcyB5ZWFyJyxcblx0XHRcdCd6aC1oYW5zJzogJ+S4gOW5tOWGheaciee8lui+kScsXG5cdFx0XHQnemgtaGFudCc6ICfkuIDlubTlhafmnInnt6jovK8nLFxuXHRcdH0pLFxuXHR9IHNhdGlzZmllcyBSZWNvcmQ8VGltZVNwYW4sIHN0cmluZz4gJiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xufTtcblxuY29uc3QgaTE4bk1lc3NhZ2VzID0gZ2V0STE4bk1lc3NhZ2VzKCk7XG5cbmNvbnN0IGdldE1lc3NhZ2U6IEdldE1lc3NhZ2VzPHR5cGVvZiBpMThuTWVzc2FnZXM+ID0gKGtleSkgPT4ge1xuXHRyZXR1cm4gaTE4bk1lc3NhZ2VzW2tleV0gfHwga2V5O1xufTtcblxuZXhwb3J0IHtnZXRNZXNzYWdlfTtcbiIsICJpbXBvcnQgKiBhcyBPUFRJT05TIGZyb20gJy4uLy4uL29wdGlvbnMuanNvbic7XG5pbXBvcnQge2luaXRNd0FwaX0gZnJvbSAnZXh0LmdhZGdldC5VdGlsJztcblxuY29uc3QgYXBpOiBtdy5BcGkgPSBpbml0TXdBcGkoYFdob0lzQWN0aXZlLyR7T1BUSU9OUy52ZXJzaW9ufWApO1xuXG5leHBvcnQge2FwaX07XG4iLCAiaW1wb3J0ICogYXMgT1BUSU9OUyBmcm9tICcuLi8uLi9vcHRpb25zLmpzb24nO1xuaW1wb3J0IHtMb2dldmVudHMsIFVzZXJjb250cmlic30gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHthcGl9IGZyb20gJy4vYXBpJztcblxuY29uc3QgZ2V0VXNlckNvbnRyaWJzVGltZXN0YW1wID0gYXN5bmMgKHVjdXNlcjogc3RyaW5nKSA9PiB7XG5cdGxldCB0aW1lc3RhbXA6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuXHR0cnkge1xuXHRcdGNvbnN0IHBhcmFtczogQXBpUXVlcnlVc2VyQ29udHJpYnNQYXJhbXMgPSB7XG5cdFx0XHRhY3Rpb246ICdxdWVyeScsXG5cdFx0XHRmb3JtYXQ6ICdqc29uJyxcblx0XHRcdGxpc3Q6ICd1c2VyY29udHJpYnMnLFxuXHRcdFx0dWNsaW1pdDogMSxcblx0XHRcdHNtYXhhZ2U6IDYwMCxcblx0XHRcdG1heGFnZTogNjAwLFxuXHRcdFx0dWN1c2VyLFxuXHRcdH07XG5cblx0XHRjb25zdCByZXN1bHQgPSBhd2FpdCBhcGkuZ2V0KHBhcmFtcyk7XG5cblx0XHRjb25zdCB7dXNlcmNvbnRyaWJzfSA9IHJlc3VsdFsncXVlcnknXSBhcyBVc2VyY29udHJpYnM7XG5cdFx0aWYgKHVzZXJjb250cmlicy5sZW5ndGgpIHtcblx0XHRcdCh7dGltZXN0YW1wfSA9IHVzZXJjb250cmlic1swXSEpO1xuXHRcdH1cblx0fSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcblx0XHRjb25zb2xlLmVycm9yKCdbV2hvSXNBY3RpdmVdIEFqYXggZXJyb3I6JywgZXJyb3IpO1xuXHR9XG5cblx0cmV0dXJuIHRpbWVzdGFtcDtcbn07XG5cbmNvbnN0IGdldExvZ0V2ZW50c1RpbWVzdGFtcCA9IGFzeW5jIChsZXVzZXI6IHN0cmluZykgPT4ge1xuXHRsZXQgdGltZXN0YW1wOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cblx0dHJ5IHtcblx0XHRjb25zdCBwYXJhbXM6IEFwaVF1ZXJ5TG9nRXZlbnRzUGFyYW1zID0ge1xuXHRcdFx0bGV1c2VyLFxuXHRcdFx0YWN0aW9uOiAncXVlcnknLFxuXHRcdFx0Zm9ybWF0OiAnanNvbicsXG5cdFx0XHRmb3JtYXR2ZXJzaW9uOiAnMicsXG5cdFx0XHRsaXN0OiAnbG9nZXZlbnRzJyxcblx0XHRcdGxlbGltaXQ6IDEsXG5cdFx0XHRsZXByb3A6ICd0aW1lc3RhbXAnLFxuXHRcdFx0c21heGFnZTogNjAwLFxuXHRcdFx0bWF4YWdlOiA2MDAsXG5cdFx0fTtcblxuXHRcdGNvbnN0IHJlc3VsdCA9IGF3YWl0IGFwaS5nZXQocGFyYW1zKTtcblxuXHRcdGNvbnN0IHtsb2dldmVudHN9ID0gcmVzdWx0WydxdWVyeSddIGFzIExvZ2V2ZW50cztcblx0XHRpZiAobG9nZXZlbnRzLmxlbmd0aCkge1xuXHRcdFx0KHt0aW1lc3RhbXB9ID0gbG9nZXZlbnRzWzBdISk7XG5cdFx0fVxuXHR9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuXHRcdGNvbnNvbGUuZXJyb3IoJ1tXaG9Jc0FjdGl2ZV0gQWpheCBlcnJvcjonLCBlcnJvcik7XG5cdH1cblxuXHRyZXR1cm4gdGltZXN0YW1wO1xufTtcblxuY29uc3QgZ2V0VGltZXN0YW1wID0gYXN5bmMgKHVzZXJuYW1lOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4gPT4ge1xuXHRsZXQgdGltZXN0YW1wOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cblx0aWYgKG13LnN0b3JhZ2UuZ2V0T2JqZWN0KE9QVElPTlMuc3RvcmFnZUtleSArIHVzZXJuYW1lKSkge1xuXHRcdHRpbWVzdGFtcCA9IG13LnN0b3JhZ2UuZ2V0T2JqZWN0KE9QVElPTlMuc3RvcmFnZUtleSArIHVzZXJuYW1lKSBhcyBzdHJpbmc7XG5cdH0gZWxzZSB7XG5cdFx0Y29uc3QgdWNUaW1lc3RhbXAgPSBhd2FpdCBnZXRVc2VyQ29udHJpYnNUaW1lc3RhbXAodXNlcm5hbWUpO1xuXHRcdGNvbnN0IGxlVGltZXN0YW1wID0gYXdhaXQgZ2V0TG9nRXZlbnRzVGltZXN0YW1wKHVzZXJuYW1lKTtcblxuXHRcdGlmICh1Y1RpbWVzdGFtcCB8fCBsZVRpbWVzdGFtcCkge1xuXHRcdFx0aWYgKHVjVGltZXN0YW1wICYmIGxlVGltZXN0YW1wKSB7XG5cdFx0XHRcdHRpbWVzdGFtcCA9XG5cdFx0XHRcdFx0TnVtYmVyLnBhcnNlSW50KHVjVGltZXN0YW1wLCAxMCkgPiBOdW1iZXIucGFyc2VJbnQobGVUaW1lc3RhbXAsIDEwKSA/IHVjVGltZXN0YW1wIDogbGVUaW1lc3RhbXA7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR0aW1lc3RhbXAgPSB1Y1RpbWVzdGFtcCB8fCBsZVRpbWVzdGFtcDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRpZiAodGltZXN0YW1wKSB7XG5cdFx0Ly8gQ2FjaGUgZm9yIDEwIG1pbnV0ZXNcblx0XHRtdy5zdG9yYWdlLnNldE9iamVjdChPUFRJT05TLnN0b3JhZ2VLZXkgKyB1c2VybmFtZSwgdGltZXN0YW1wLCAxMCAqIDYwKTtcblx0fVxuXG5cdHJldHVybiB0aW1lc3RhbXA7XG59O1xuXG5leHBvcnQge2dldFRpbWVzdGFtcH07XG4iLCAiaW1wb3J0IHtTWVNURU1fU0NSSVBUX0xJU1R9IGZyb20gJy4uL2NvbnN0YW50JztcbmltcG9ydCB7YXBwZW5kRm9vdGVyTm90aWNlfSBmcm9tICcuL2FwcGVuZEZvb3Rlck5vdGljZSc7XG5pbXBvcnQge2dldExhc3RBY3RpdmVNYXJrZXJ9IGZyb20gJy4vZ2V0TGFzdEFjdGl2ZU1hcmtlcic7XG5pbXBvcnQge2dldFRpbWVzdGFtcH0gZnJvbSAnLi9nZXRUaW1lc3RhbXAnO1xuXG5jb25zdCBhcHBlbmRNYXJrZXJUb1VzZXJMaW5rcyA9IGFzeW5jICh7dXNlck5hbWUsICRlbGVtZW50c306IHt1c2VyTmFtZTogc3RyaW5nOyAkZWxlbWVudHM6IEpRdWVyeVtdfSkgPT4ge1xuXHQvLyBSZXBsYWNlIFNldCB3aXRoIHVuaXF1ZUFycmF5LCBhdm9pZGluZyBjb3JlLWpzIHBvbHlmaWxsaW5nXG5cdGlmIChTWVNURU1fU0NSSVBUX0xJU1QuaW5jbHVkZXModXNlck5hbWUpKSB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0Y29uc3QgdGltZXN0YW1wID0gYXdhaXQgZ2V0VGltZXN0YW1wKHVzZXJOYW1lKTtcblxuXHRpZiAoIXRpbWVzdGFtcCkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGZvciAoY29uc3QgJGVsZW1lbnQgb2YgJGVsZW1lbnRzKSB7XG5cdFx0JChnZXRMYXN0QWN0aXZlTWFya2VyKHRpbWVzdGFtcCwgdHJ1ZSkpLmluc2VydEFmdGVyKCRlbGVtZW50KTtcblx0fVxufTtcblxuY29uc3QgYXBwZW5kTWFya2VyVG9Vc2VyUGFnZSA9IGFzeW5jICh1c2VyTmFtZTogc3RyaW5nKSA9PiB7XG5cdGlmIChTWVNURU1fU0NSSVBUX0xJU1QuaW5jbHVkZXModXNlck5hbWUpKSB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0Y29uc3QgdGltZXN0YW1wID0gYXdhaXQgZ2V0VGltZXN0YW1wKHVzZXJOYW1lKTtcblxuXHRpZiAoIXRpbWVzdGFtcCkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGFwcGVuZEZvb3Rlck5vdGljZShnZXRMYXN0QWN0aXZlTWFya2VyKHRpbWVzdGFtcCwgZmFsc2UpKTtcbn07XG5cbmV4cG9ydCB7YXBwZW5kTWFya2VyVG9Vc2VyTGlua3MsIGFwcGVuZE1hcmtlclRvVXNlclBhZ2V9O1xuIiwgImNvbnN0IGdldFVzZXJMaW5rcyA9ICgkY29udGVudDogSlF1ZXJ5KSA9PiB7XG5cdGNvbnN0IHVzZXJMaW5rczogUmVjb3JkPHN0cmluZywgSlF1ZXJ5PEhUTUxBbmNob3JFbGVtZW50PltdPiA9IHt9O1xuXG5cdGNvbnN0IHt3Z0Zvcm1hdHRlZE5hbWVzcGFjZXN9ID0gbXcuY29uZmlnLmdldCgpO1xuXG5cdGNvbnN0IHsyOiBsb2NhbGl6ZWRVc2VyTmFtZXNwYWNlfSA9IHdnRm9ybWF0dGVkTmFtZXNwYWNlcztcblx0Zm9yIChjb25zdCBlbGVtZW50IG9mICRjb250ZW50LmZpbmQ8SFRNTEFuY2hvckVsZW1lbnQ+KFxuXHRcdFtcblx0XHRcdCdhW3RpdGxlXj1cIlVzZXI6XCJdOm5vdCgubXctY2hhbmdlc2xpc3QtZGF0ZSk6bm90KFtocmVmKj1cInVuZG9cIl0pJyxcblx0XHRcdGBhW3RpdGxlXj1cIiR7bG9jYWxpemVkVXNlck5hbWVzcGFjZX06XCJdOm5vdCgubXctY2hhbmdlc2xpc3QtZGF0ZSk6bm90KFtocmVmKj1cInVuZG9cIl0pYCxcblx0XHRdLmpvaW4oJywnKVxuXHQpKSB7XG5cdFx0Y29uc3QgJGVsZW1lbnQ6IEpRdWVyeTxIVE1MQW5jaG9yRWxlbWVudD4gPSAkKGVsZW1lbnQpO1xuXG5cdFx0Y29uc3QgdXNlclJlZ2V4OiBSZWdFeHAgPSBuZXcgUmVnRXhwKGAoKFVzZXIpfCgke2xvY2FsaXplZFVzZXJOYW1lc3BhY2V9KSk6KC4qPykoPz0mfCQpYCk7XG5cdFx0Y29uc3QgdXNlck5hbWVNYXRjaEFycmF5OiBSZWdFeHBNYXRjaEFycmF5IHwgbnVsbCA9IGRlY29kZVVSSSgkZWxlbWVudC5hdHRyKCdocmVmJykgPz8gJycpLm1hdGNoKHVzZXJSZWdleCk7XG5cdFx0aWYgKCF1c2VyTmFtZU1hdGNoQXJyYXkpIHtcblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblxuXHRcdGxldCBbdXNlck5hbWVdID0gdXNlck5hbWVNYXRjaEFycmF5O1xuXHRcdHVzZXJOYW1lID0gdXNlck5hbWUucmVwbGFjZShuZXcgUmVnRXhwKGBeKChVc2VyKXwoJHtsb2NhbGl6ZWRVc2VyTmFtZXNwYWNlfSkpOmAsICdpJyksICcnKTtcblx0XHRjb25zdCBpbmRleDogbnVtYmVyID0gdXNlck5hbWUuaW5kZXhPZignLycpO1xuXHRcdGlmIChpbmRleCA9PT0gLTEpIHtcblx0XHRcdHVzZXJMaW5rc1t1c2VyTmFtZV0gPz89IFtdO1xuXHRcdFx0KHVzZXJMaW5rc1t1c2VyTmFtZV0gYXMgKHR5cGVvZiB1c2VyTGlua3MpW2tleW9mIHR5cGVvZiB1c2VyTGlua3NdKVtcblx0XHRcdFx0KHVzZXJMaW5rc1t1c2VyTmFtZV0gYXMgKHR5cGVvZiB1c2VyTGlua3MpW2tleW9mIHR5cGVvZiB1c2VyTGlua3NdKS5sZW5ndGhcblx0XHRcdF0gPSAkZWxlbWVudDtcblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gdXNlckxpbmtzO1xufTtcblxuZXhwb3J0IHtnZXRVc2VyTGlua3N9O1xuIiwgImltcG9ydCB7YXBwZW5kTWFya2VyVG9Vc2VyTGlua3MsIGFwcGVuZE1hcmtlclRvVXNlclBhZ2V9IGZyb20gJy4vdXRpbC9hcHBlbmRNYXJrZXInO1xuaW1wb3J0IHtnZXRVc2VyTGlua3N9IGZyb20gJy4vdXRpbC9nZXRVc2VyTGlua3MnO1xuXG5jb25zdCB3aG9Jc0FjdGl2ZVVzZXJMaW5rcyA9ICgkY29udGVudDogSlF1ZXJ5PEhUTUxFbGVtZW50Pik6IHZvaWQgPT4ge1xuXHRjb25zdCB1c2VyTGlua3MgPSBnZXRVc2VyTGlua3MoJGNvbnRlbnQpO1xuXG5cdGZvciAoY29uc3QgW3VzZXJOYW1lLCAkZWxlbWVudHNdIG9mIE9iamVjdC5lbnRyaWVzKHVzZXJMaW5rcykpIHtcblx0XHR2b2lkIGFwcGVuZE1hcmtlclRvVXNlckxpbmtzKHt1c2VyTmFtZSwgJGVsZW1lbnRzfSk7XG5cdH1cbn07XG5cbmNvbnN0IHdob0lzQWN0aXZlVXNlclBhZ2UgPSAoKTogdm9pZCA9PiB7XG5cdGNvbnN0IHt3Z0FjdGlvbiwgd2dOYW1lc3BhY2VOdW1iZXIsIHdnUGFnZU5hbWUsIHdnUmVsZXZhbnRVc2VyTmFtZX0gPSBtdy5jb25maWcuZ2V0KCk7XG5cblx0aWYgKCF3Z1JlbGV2YW50VXNlck5hbWUgfHwgd2dOYW1lc3BhY2VOdW1iZXIgIT09IDIgfHwgd2dBY3Rpb24gIT09ICd2aWV3Jykge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGNvbnN0IHJlbGV2YW50VXNlclBhZ2VOYW1lOiBzdHJpbmcgPSBuZXcgbXcuVGl0bGUod2dSZWxldmFudFVzZXJOYW1lLCAyKS50b1RleHQoKTtcblx0Y29uc3QgcGFnZU5hbWU6IHN0cmluZyA9IG5ldyBtdy5UaXRsZSh3Z1BhZ2VOYW1lKS50b1RleHQoKTtcblx0aWYgKHJlbGV2YW50VXNlclBhZ2VOYW1lICE9PSBwYWdlTmFtZSkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdHZvaWQgYXBwZW5kTWFya2VyVG9Vc2VyUGFnZSh3Z1JlbGV2YW50VXNlck5hbWUpO1xufTtcblxuZXhwb3J0IHt3aG9Jc0FjdGl2ZVVzZXJMaW5rcywgd2hvSXNBY3RpdmVVc2VyUGFnZX07XG4iLCAiaW1wb3J0IHt3aG9Jc0FjdGl2ZVVzZXJMaW5rcywgd2hvSXNBY3RpdmVVc2VyUGFnZX0gZnJvbSAnLi9tb2R1bGVzL2NvcmUnO1xuXG4oZnVuY3Rpb24gd2hvSXNBY3RpdmVMb2FkKCkge1xuXHRtdy5ob29rKCd3aWtpcGFnZS5jb250ZW50JykuYWRkKHdob0lzQWN0aXZlVXNlckxpbmtzKTtcblx0dm9pZCB3aG9Jc0FjdGl2ZVVzZXJQYWdlKCk7XG59KSgpO1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsSUFBTUEscUJBQStCLENBQ3BDLFNBQ0EsUUFDQSxVQUNBLFdBQ0EseUJBQ0Esc0JBQ0EscUJBQ0EsOEJBQ0EsZUFBQTs7QUNSQSxJQUFBQyxxQkFBc0I7QUFDdEIsSUFBQUMsYUFBYztBQUNkLElBQUFDLFVBQVc7O0FDRFosSUFBTUMscUJBQXNCQyxhQUFxQjtBQUNoRCxRQUFNQyxhQUFhQyxTQUFTQyxjQUFtQ1Asa0JBQWtCO0FBRWpGLE1BQUlLLFlBQVk7QUFDZkEsZUFBV0csUUFBUUosT0FBTztFQUMzQjtBQUNEOztBQ1JBLElBQUFLLHFCQUFrQkMsUUFBQUMsUUFBQSxrQkFBQSxHQUFBLENBQUE7O0FDQ2xCLElBQUFDLG9CQUF1QkQsUUFBQSxpQkFBQTtBQUV2QixJQUFNRSxrQkFBa0JBLE1BQU07QUFDN0IsU0FBTztJQUNOQyxZQUFBLEdBQVdGLGtCQUFBRyxVQUFTO01BQ25CQyxJQUFJO01BQ0osV0FBVztNQUNYLFdBQVc7SUFDWixDQUFDO0lBQ0RDLFdBQUEsR0FBVUwsa0JBQUFHLFVBQVM7TUFDbEJDLElBQUk7TUFDSixXQUFXO01BQ1gsV0FBVztJQUNaLENBQUM7SUFDREUsWUFBQSxHQUFXTixrQkFBQUcsVUFBUztNQUNuQkMsSUFBSTtNQUNKLFdBQVc7TUFDWCxXQUFXO0lBQ1osQ0FBQztJQUNERyxhQUFBLEdBQVlQLGtCQUFBRyxVQUFTO01BQ3BCQyxJQUFJO01BQ0osV0FBVztNQUNYLFdBQVc7SUFDWixDQUFDO0lBQ0RJLGVBQUEsR0FBY1Isa0JBQUFHLFVBQVM7TUFDdEJDLElBQUk7TUFDSixX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QUFDOUIsU0FBSzNDLHdCQUF3QjtNQUFDRTtNQUFVQztJQUFTLENBQUM7RUFDbkQ7QUFDRDtBQUVBLElBQU00QyxzQkFBc0JBLE1BQVk7QUFDdkMsUUFBTTtJQUFDQztJQUFVQztJQUFtQkM7SUFBWUM7RUFBa0IsSUFBSWxILEdBQUdDLE9BQU9DLElBQUk7QUFFcEYsTUFBSSxDQUFDZ0gsc0JBQXNCRixzQkFBc0IsS0FBS0QsYUFBYSxRQUFRO0FBQzFFO0VBQ0Q7QUFFQSxRQUFNSSx1QkFBK0IsSUFBSW5ILEdBQUdvSCxNQUFNRixvQkFBb0IsQ0FBQyxFQUFFRyxPQUFPO0FBQ2hGLFFBQU1DLFdBQW1CLElBQUl0SCxHQUFHb0gsTUFBTUgsVUFBVSxFQUFFSSxPQUFPO0FBQ3pELE1BQUlGLHlCQUF5QkcsVUFBVTtBQUN0QztFQUNEO0FBRUEsT0FBS3JDLHVCQUF1QmlDLGtCQUFrQjtBQUMvQzs7Q0N2QkMsU0FBU0ssa0JBQWtCO0FBQzNCdkgsS0FBR3dILEtBQUssa0JBQWtCLEVBQUVDLElBQUloQixvQkFBb0I7QUFDcEQsT0FBS0ssb0JBQW9CO0FBQzFCLEdBQUc7IiwKICAibmFtZXMiOiBbIlNZU1RFTV9TQ1JJUFRfTElTVCIsICJtb3VudFBvaW50U2VsZWN0b3IiLCAic3RvcmFnZUtleSIsICJ2ZXJzaW9uIiwgImFwcGVuZEZvb3Rlck5vdGljZSIsICJlbGVtZW50IiwgIm1vdW50UG9pbnQiLCAiZG9jdW1lbnQiLCAicXVlcnlTZWxlY3RvciIsICJwcmVwZW5kIiwgImltcG9ydF9leHRfZ2FkZ2V0MiIsICJfX3RvRVNNIiwgInJlcXVpcmUiLCAiaW1wb3J0X2V4dF9nYWRnZXQiLCAiZ2V0STE4bk1lc3NhZ2VzIiwgIk92ZXJBWWVhciIsICJsb2NhbGl6ZSIsICJlbiIsICJUaGlzV2VlayIsICJUaGlzTW9udGgiLCAiVGhpc1NlYXNvbiIsICJUaGlzU2VtaXllYXIiLCAiVGhpc1llYXIiLCAiaTE4bk1lc3NhZ2VzIiwgImdldE1lc3NhZ2UiLCAia2V5IiwgIldyYXBwZXIiLCAicHJvcHMiLCAidGltZVNwYW4iLCAiaW5uZXJFbGVtZW50IiwgImNsYXNzTmFtZSIsICJjb25jYXQiLCAic2tpbiIsICJtdyIsICJjb25maWciLCAiZ2V0IiwgImRlZmF1bHQiLCAiY3JlYXRlRWxlbWVudCIsICJpbmNsdWRlcyIsICJUYWciLCAiX2dldE1lc3NhZ2UiLCAiaW5kaWNhdG9yIiwgImljb25DbGFzc05hbWUiLCAidGV4dENsYXNzTmFtZSIsICJGcmFnbWVudCIsICJ0aXRsZSIsICJnZXRMYXN0QWN0aXZlTWFya2VyIiwgInRpbWVzdGFtcCIsICJkYXRlIiwgIkRhdGUiLCAicGFyc2UiLCAibm93IiwgImRpZmYiLCAiTWF0aCIsICJmbG9vciIsICJpbXBvcnRfZXh0X2dhZGdldDMiLCAiYXBpIiwgImluaXRNd0FwaSIsICJnZXRVc2VyQ29udHJpYnNUaW1lc3RhbXAiLCAiX3JlZiIsICJfYXN5bmNUb0dlbmVyYXRvciIsICJ1Y3VzZXIiLCAicGFyYW1zIiwgImFjdGlvbiIsICJmb3JtYXQiLCAibGlzdCIsICJ1Y2xpbWl0IiwgInNtYXhhZ2UiLCAibWF4YWdlIiwgInJlc3VsdCIsICJ1c2VyY29udHJpYnMiLCAibGVuZ3RoIiwgImVycm9yIiwgImNvbnNvbGUiLCAiX3giLCAiYXBwbHkiLCAiYXJndW1lbnRzIiwgImdldExvZ0V2ZW50c1RpbWVzdGFtcCIsICJfcmVmMiIsICJsZXVzZXIiLCAiZm9ybWF0dmVyc2lvbiIsICJsZWxpbWl0IiwgImxlcHJvcCIsICJsb2dldmVudHMiLCAiX3gyIiwgImdldFRpbWVzdGFtcCIsICJfcmVmMyIsICJ1c2VybmFtZSIsICJzdG9yYWdlIiwgImdldE9iamVjdCIsICJ1Y1RpbWVzdGFtcCIsICJsZVRpbWVzdGFtcCIsICJOdW1iZXIiLCAicGFyc2VJbnQiLCAic2V0T2JqZWN0IiwgIl94MyIsICJhcHBlbmRNYXJrZXJUb1VzZXJMaW5rcyIsICJfcmVmNCIsICJ1c2VyTmFtZSIsICIkZWxlbWVudHMiLCAiX2l0ZXJhdG9yMiIsICJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsICJfc3RlcDIiLCAicyIsICJuIiwgImRvbmUiLCAiJGVsZW1lbnQiLCAidmFsdWUiLCAiJCIsICJpbnNlcnRBZnRlciIsICJlcnIiLCAiZSIsICJmIiwgIl94NCIsICJhcHBlbmRNYXJrZXJUb1VzZXJQYWdlIiwgIl9yZWY1IiwgIl94NSIsICJnZXRVc2VyTGlua3MiLCAiJGNvbnRlbnQiLCAidXNlckxpbmtzIiwgIndnRm9ybWF0dGVkTmFtZXNwYWNlcyIsICJsb2NhbGl6ZWRVc2VyTmFtZXNwYWNlIiwgIl9pdGVyYXRvcjMiLCAiZmluZCIsICJqb2luIiwgIl9zdGVwMyIsICJfJGVsZW1lbnQkYXR0ciIsICJ1c2VyUmVnZXgiLCAiUmVnRXhwIiwgInVzZXJOYW1lTWF0Y2hBcnJheSIsICJkZWNvZGVVUkkiLCAiYXR0ciIsICJtYXRjaCIsICJyZXBsYWNlIiwgImluZGV4IiwgImluZGV4T2YiLCAiX3VzZXJOYW1lIiwgIl91c2VyTGlua3MkX3VzZXJOYW1lIiwgIndob0lzQWN0aXZlVXNlckxpbmtzIiwgIl9pIiwgIl9PYmplY3QkZW50cmllcyIsICJPYmplY3QiLCAiZW50cmllcyIsICJ3aG9Jc0FjdGl2ZVVzZXJQYWdlIiwgIndnQWN0aW9uIiwgIndnTmFtZXNwYWNlTnVtYmVyIiwgIndnUGFnZU5hbWUiLCAid2dSZWxldmFudFVzZXJOYW1lIiwgInJlbGV2YW50VXNlclBhZ2VOYW1lIiwgIlRpdGxlIiwgInRvVGV4dCIsICJwYWdlTmFtZSIsICJ3aG9Jc0FjdGl2ZUxvYWQiLCAiaG9vayIsICJhZGQiXQp9Cg== +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL0dlb0xvY2F0aW9uL21vZHVsZXMvY29uc3RhbnQudHMiLCAic3JjL1dob0lzQWN0aXZlL29wdGlvbnMuanNvbiIsICJzcmMvV2hvSXNBY3RpdmUvbW9kdWxlcy91dGlsL2FwcGVuZEZvb3Rlck5vdGljZS50cyIsICJzcmMvV2hvSXNBY3RpdmUvbW9kdWxlcy91dGlsL2dldExhc3RBY3RpdmVNYXJrZXIudHN4IiwgInNyYy9XaG9Jc0FjdGl2ZS9tb2R1bGVzL2kxOG4udHMiLCAic3JjL1dob0lzQWN0aXZlL21vZHVsZXMvdXRpbC9hcGkudHMiLCAic3JjL1dob0lzQWN0aXZlL21vZHVsZXMvdXRpbC9nZXRUaW1lc3RhbXAudHMiLCAic3JjL1dob0lzQWN0aXZlL21vZHVsZXMvdXRpbC9hcHBlbmRNYXJrZXIudHMiLCAic3JjL1dob0lzQWN0aXZlL21vZHVsZXMvdXRpbC9nZXRVc2VyTGlua3MudHMiLCAic3JjL1dob0lzQWN0aXZlL21vZHVsZXMvY29yZS50cyIsICJzcmMvV2hvSXNBY3RpdmUvV2hvSXNBY3RpdmUudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImNvbnN0IFNZU1RFTV9TQ1JJUFRfTElTVDogc3RyaW5nW10gPSBbXG5cdCfmu6XnlKjov4fmu6TlmagnLFxuXHQn5rGC6Ze757yW6ICFJyxcblx0J+axgumXu+eZvuenkeekvuWMuicsXG5cdCdFeGFtcGxlJyxcblx0J0V4dGVybmFsIGNvbnRyaWJ1dG9ycycsXG5cdCdNYWludGVuYW5jZSBzY3JpcHQnLFxuXHQnTWVkaWFXaWtpIGRlZmF1bHQnLFxuXHQnTWVkaWFXaWtpIG1lc3NhZ2UgZGVsaXZlcnknLFxuXHQnTmV3IHVzZXIgcGFnZScsXG5dO1xuY29uc3QgV0VCTUFTVEVSX0xJU1Q6IHN0cmluZ1tdID0gWydRaXVXZW4nLCAnUWl1V2VuIGZvciBBY2NvdW50cycsICdRaXV3ZW5Tb2NpYWxNZWRpYSddO1xuXG5leHBvcnQge1NZU1RFTV9TQ1JJUFRfTElTVCwgV0VCTUFTVEVSX0xJU1R9O1xuIiwgIntcblx0XCJtb3VudFBvaW50U2VsZWN0b3JcIjogXCIjZm9vdGVyLWluZm8sLnBhZ2UtaW5mb1wiLFxuXHRcInN0b3JhZ2VLZXlcIjogXCJleHQuZ2FkZ2V0Lldob0lzQWN0aXZlX3dob0lzQWN0aXZlLVwiLFxuXHRcInZlcnNpb25cIjogXCIyLjFcIlxufVxuIiwgImltcG9ydCAqIGFzIE9QVElPTlMgZnJvbSAnLi4vLi4vb3B0aW9ucy5qc29uJztcblxuY29uc3QgYXBwZW5kRm9vdGVyTm90aWNlID0gKGVsZW1lbnQ6IEVsZW1lbnQpID0+IHtcblx0Y29uc3QgbW91bnRQb2ludCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3I8SFRNTEVsZW1lbnQ+KE9QVElPTlMubW91bnRQb2ludFNlbGVjdG9yKTtcblxuXHRpZiAobW91bnRQb2ludCkge1xuXHRcdG1vdW50UG9pbnQucHJlcGVuZChlbGVtZW50KTtcblx0fVxufTtcblxuZXhwb3J0IHthcHBlbmRGb290ZXJOb3RpY2V9O1xuIiwgImltcG9ydCBSZWFjdCBmcm9tICdleHQuZ2FkZ2V0LkpTWCc7XG5pbXBvcnQge2dldE1lc3NhZ2V9IGZyb20gJy4uL2kxOG4nO1xuXG50eXBlIFRpbWVTcGFuID0gJ1RoaXNXZWVrJyB8ICdUaGlzTW9udGgnIHwgJ1RoaXNTZWFzb24nIHwgJ1RoaXNTZW1peWVhcicgfCAnVGhpc1llYXInIHwgJ092ZXJBWWVhcic7XG5cbmZ1bmN0aW9uIFdyYXBwZXIocHJvcHM6IHt0aW1lU3BhbjogVGltZVNwYW47IGlubmVyRWxlbWVudDogUmVhY3QuUmVhY3RFbGVtZW50fSkge1xuXHRjb25zdCB7dGltZVNwYW4sIGlubmVyRWxlbWVudH0gPSBwcm9wcztcblxuXHRjb25zdCBjbGFzc05hbWU6IHN0cmluZ1tdID0gWydnYWRnZXQtd2hvaXNhY3RpdmUnLCBgZ2FkZ2V0LXdob2lzYWN0aXZlX18ke3RpbWVTcGFufWBdO1xuXHRjb25zdCB7c2tpbn0gPSBtdy5jb25maWcuZ2V0KCk7XG5cblx0aWYgKHNraW4gPT09ICdjaXRpemVuJykge1xuXHRcdHJldHVybiAoXG5cdFx0XHQ8c2VjdGlvbiBjbGFzc05hbWU9e1suLi5jbGFzc05hbWUsICdwYWdlLWluZm9fX2l0ZW0nLCAnY2l0aXplbi1mb290ZXJfX3BhZ2VpbmZvLWl0ZW0nLCAnbm9wcmludCddfT5cblx0XHRcdFx0e2lubmVyRWxlbWVudH1cblx0XHRcdDwvc2VjdGlvbj5cblx0XHQpO1xuXHR9IGVsc2UgaWYgKFsnZ29uZ2JpJywgJ3ZlY3RvcicsICd2ZWN0b3ItMjAyMiddLmluY2x1ZGVzKHNraW4pIHx8IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ3VsI2Zvb3Rlci1pbmZvJykpIHtcblx0XHRyZXR1cm4gPGxpIGNsYXNzTmFtZT17W2NsYXNzTmFtZSwgJ25vcHJpbnQnXX0+e2lubmVyRWxlbWVudH08L2xpPjtcblx0fVxuXG5cdHJldHVybiA8ZGl2IGNsYXNzTmFtZT17W2NsYXNzTmFtZSwgJ25vcHJpbnQnXX0+e2lubmVyRWxlbWVudH08L2Rpdj47XG59XG5cbmZ1bmN0aW9uIFRhZyhwcm9wczoge3RpbWVTcGFuOiBUaW1lU3BhbjsgaW5kaWNhdG9yOiBib29sZWFufSkge1xuXHRjb25zdCB7dGltZVNwYW4sIGluZGljYXRvcn0gPSBwcm9wcztcblxuXHRjb25zdCBpY29uQ2xhc3NOYW1lOiBzdHJpbmdbXSA9IFsnZ2FkZ2V0LXdob2lzYWN0aXZlX19pY29uJywgYGdhZGdldC13aG9pc2FjdGl2ZV9faWNvbl9fJHt0aW1lU3Bhbn1gXTtcblx0Y29uc3QgdGV4dENsYXNzTmFtZTogc3RyaW5nW10gPSBbXG5cdFx0J2dhZGdldC13aG9pc2FjdGl2ZV9fdGV4dCcsXG5cdFx0aW5kaWNhdG9yID09PSB0cnVlID8gJywgZ2FkZ2V0LXdob2lzYWN0aXZlX19ub3RleHQnIDogJycsXG5cdF07XG5cblx0cmV0dXJuIChcblx0XHQ8PlxuXHRcdFx0PHNwYW4gY2xhc3NOYW1lPXtpY29uQ2xhc3NOYW1lfSB0aXRsZT17Z2V0TWVzc2FnZSh0aW1lU3Bhbil9IC8+XG5cdFx0XHQ8c3BhbiBjbGFzc05hbWU9e3RleHRDbGFzc05hbWV9PntnZXRNZXNzYWdlKHRpbWVTcGFuKSA/PyAnJ308L3NwYW4+XG5cdFx0PC8+XG5cdCk7XG59XG5cbmNvbnN0IGdldExhc3RBY3RpdmVNYXJrZXIgPSAodGltZXN0YW1wOiBzdHJpbmcsIGluZGljYXRvcjogYm9vbGVhbik6IFJlYWN0LlJlYWN0RWxlbWVudCA9PiB7XG5cdGNvbnN0IGRhdGU6IG51bWJlciA9IERhdGUucGFyc2UodGltZXN0YW1wKTtcblx0Y29uc3Qgbm93OiBudW1iZXIgPSBEYXRlLm5vdygpO1xuXHRjb25zdCBkaWZmOiBudW1iZXIgPSBNYXRoLmZsb29yKChub3cgLSBkYXRlKSAvICgxMDAwICogNjAgKiA2MCAqIDI0KSk7XG5cblx0bGV0IHRpbWVTcGFuOiBUaW1lU3BhbiA9ICdUaGlzV2Vlayc7XG5cdGlmIChkaWZmID4gMzY1KSB7XG5cdFx0dGltZVNwYW4gPSAnT3ZlckFZZWFyJztcblx0fSBlbHNlIGlmIChkaWZmID4gMTgzKSB7XG5cdFx0dGltZVNwYW4gPSAnVGhpc1llYXInO1xuXHR9IGVsc2UgaWYgKGRpZmYgPiA5Mikge1xuXHRcdHRpbWVTcGFuID0gJ1RoaXNTZW1peWVhcic7XG5cdH0gZWxzZSBpZiAoZGlmZiA+IDMxKSB7XG5cdFx0dGltZVNwYW4gPSAnVGhpc1NlYXNvbic7XG5cdH0gZWxzZSBpZiAoZGlmZiA+IDcpIHtcblx0XHR0aW1lU3BhbiA9ICdUaGlzTW9udGgnO1xuXHR9XG5cblx0cmV0dXJuIDxXcmFwcGVyIHRpbWVTcGFuPXt0aW1lU3Bhbn0gaW5uZXJFbGVtZW50PXs8VGFnIHRpbWVTcGFuPXt0aW1lU3Bhbn0gaW5kaWNhdG9yPXtpbmRpY2F0b3J9IC8+fSAvPjtcbn07XG5cbmV4cG9ydCB0eXBlIHtUaW1lU3Bhbn07XG5leHBvcnQge2dldExhc3RBY3RpdmVNYXJrZXJ9O1xuIiwgImltcG9ydCB0eXBlIHtUaW1lU3Bhbn0gZnJvbSAnLi91dGlsL2dldExhc3RBY3RpdmVNYXJrZXInO1xuaW1wb3J0IHtsb2NhbGl6ZX0gZnJvbSAnZXh0LmdhZGdldC5pMThuJztcblxuY29uc3QgZ2V0STE4bk1lc3NhZ2VzID0gKCkgPT4ge1xuXHRyZXR1cm4ge1xuXHRcdE92ZXJBWWVhcjogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdFZGl0ZWQgb3ZlciBhIHllYXIgYWdvJyxcblx0XHRcdCd6aC1oYW5zJzogJ+S4gOW5tOacquaciee8lui+kScsXG5cdFx0XHQnemgtaGFudCc6ICfkuIDlubTmnKrmnInnt6jovK8nLFxuXHRcdH0pLFxuXHRcdFRoaXNXZWVrOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ0VkaXRlZCB0aGlzIHdlZWsnLFxuXHRcdFx0J3poLWhhbnMnOiAn5LiA5ZGo5YaF5pyJ57yW6L6RJyxcblx0XHRcdCd6aC1oYW50JzogJ+S4gOWRqOWFp+aciee3qOi8rycsXG5cdFx0fSksXG5cdFx0VGhpc01vbnRoOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ0VkaXRlZCB0aGlzIG1vbnRoJyxcblx0XHRcdCd6aC1oYW5zJzogJ+S4gOaciOWGheaciee8lui+kScsXG5cdFx0XHQnemgtaGFudCc6ICfkuIDmnIjlhafmnInnt6jovK8nLFxuXHRcdH0pLFxuXHRcdFRoaXNTZWFzb246IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnRWRpdGVkIGluIDMgbW9udGhzJyxcblx0XHRcdCd6aC1oYW5zJzogJ+S4ieaciOWGheaciee8lui+kScsXG5cdFx0XHQnemgtaGFudCc6ICfkuInmnIjlhafmnInnt6jovK8nLFxuXHRcdH0pLFxuXHRcdFRoaXNTZW1peWVhcjogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdFZGl0ZWQgaW4gaGFsZiBhIHllYXInLFxuXHRcdFx0J3poLWhhbnMnOiAn5Y2K5bm05YaF5pyJ57yW6L6RJyxcblx0XHRcdCd6aC1oYW50JzogJ+WNiuW5tOWFp+aciee3qOi8rycsXG5cdFx0fSksXG5cdFx0VGhpc1llYXI6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnRWRpdGVkIHRoaXMgeWVhcicsXG5cdFx0XHQnemgtaGFucyc6ICfkuIDlubTlhoXmnInnvJbovpEnLFxuXHRcdFx0J3poLWhhbnQnOiAn5LiA5bm05YWn5pyJ57eo6LyvJyxcblx0XHR9KSxcblx0fSBzYXRpc2ZpZXMgUmVjb3JkPFRpbWVTcGFuLCBzdHJpbmc+ICYgUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbn07XG5cbmNvbnN0IGkxOG5NZXNzYWdlcyA9IGdldEkxOG5NZXNzYWdlcygpO1xuXG5jb25zdCBnZXRNZXNzYWdlOiBHZXRNZXNzYWdlczx0eXBlb2YgaTE4bk1lc3NhZ2VzPiA9IChrZXkpID0+IHtcblx0cmV0dXJuIGkxOG5NZXNzYWdlc1trZXldIHx8IGtleTtcbn07XG5cbmV4cG9ydCB7Z2V0TWVzc2FnZX07XG4iLCAiaW1wb3J0ICogYXMgT1BUSU9OUyBmcm9tICcuLi8uLi9vcHRpb25zLmpzb24nO1xuaW1wb3J0IHtpbml0TXdBcGl9IGZyb20gJ2V4dC5nYWRnZXQuVXRpbCc7XG5cbmNvbnN0IGFwaTogbXcuQXBpID0gaW5pdE13QXBpKGBXaG9Jc0FjdGl2ZS8ke09QVElPTlMudmVyc2lvbn1gKTtcblxuZXhwb3J0IHthcGl9O1xuIiwgImltcG9ydCAqIGFzIE9QVElPTlMgZnJvbSAnLi4vLi4vb3B0aW9ucy5qc29uJztcbmltcG9ydCB7TG9nZXZlbnRzLCBVc2VyY29udHJpYnN9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7YXBpfSBmcm9tICcuL2FwaSc7XG5cbmNvbnN0IGdldFVzZXJDb250cmlic1RpbWVzdGFtcCA9IGFzeW5jICh1Y3VzZXI6IHN0cmluZykgPT4ge1xuXHRsZXQgdGltZXN0YW1wOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cblx0dHJ5IHtcblx0XHRjb25zdCBwYXJhbXM6IEFwaVF1ZXJ5VXNlckNvbnRyaWJzUGFyYW1zID0ge1xuXHRcdFx0YWN0aW9uOiAncXVlcnknLFxuXHRcdFx0Zm9ybWF0OiAnanNvbicsXG5cdFx0XHRsaXN0OiAndXNlcmNvbnRyaWJzJyxcblx0XHRcdHVjbGltaXQ6IDEsXG5cdFx0XHRzbWF4YWdlOiA2MDAsXG5cdFx0XHRtYXhhZ2U6IDYwMCxcblx0XHRcdHVjdXNlcixcblx0XHR9O1xuXG5cdFx0Y29uc3QgcmVzdWx0ID0gYXdhaXQgYXBpLmdldChwYXJhbXMpO1xuXG5cdFx0Y29uc3Qge3VzZXJjb250cmlic30gPSByZXN1bHRbJ3F1ZXJ5J10gYXMgVXNlcmNvbnRyaWJzO1xuXHRcdGlmICh1c2VyY29udHJpYnMubGVuZ3RoKSB7XG5cdFx0XHQoe3RpbWVzdGFtcH0gPSB1c2VyY29udHJpYnNbMF0hKTtcblx0XHR9XG5cdH0gY2F0Y2ggKGVycm9yOiB1bmtub3duKSB7XG5cdFx0Y29uc29sZS5lcnJvcignW1dob0lzQWN0aXZlXSBBamF4IGVycm9yOicsIGVycm9yKTtcblx0fVxuXG5cdHJldHVybiB0aW1lc3RhbXA7XG59O1xuXG5jb25zdCBnZXRMb2dFdmVudHNUaW1lc3RhbXAgPSBhc3luYyAobGV1c2VyOiBzdHJpbmcpID0+IHtcblx0bGV0IHRpbWVzdGFtcDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG5cdHRyeSB7XG5cdFx0Y29uc3QgcGFyYW1zOiBBcGlRdWVyeUxvZ0V2ZW50c1BhcmFtcyA9IHtcblx0XHRcdGxldXNlcixcblx0XHRcdGFjdGlvbjogJ3F1ZXJ5Jyxcblx0XHRcdGZvcm1hdDogJ2pzb24nLFxuXHRcdFx0Zm9ybWF0dmVyc2lvbjogJzInLFxuXHRcdFx0bGlzdDogJ2xvZ2V2ZW50cycsXG5cdFx0XHRsZWxpbWl0OiAxLFxuXHRcdFx0bGVwcm9wOiAndGltZXN0YW1wJyxcblx0XHRcdHNtYXhhZ2U6IDYwMCxcblx0XHRcdG1heGFnZTogNjAwLFxuXHRcdH07XG5cblx0XHRjb25zdCByZXN1bHQgPSBhd2FpdCBhcGkuZ2V0KHBhcmFtcyk7XG5cblx0XHRjb25zdCB7bG9nZXZlbnRzfSA9IHJlc3VsdFsncXVlcnknXSBhcyBMb2dldmVudHM7XG5cdFx0aWYgKGxvZ2V2ZW50cy5sZW5ndGgpIHtcblx0XHRcdCh7dGltZXN0YW1wfSA9IGxvZ2V2ZW50c1swXSEpO1xuXHRcdH1cblx0fSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcblx0XHRjb25zb2xlLmVycm9yKCdbV2hvSXNBY3RpdmVdIEFqYXggZXJyb3I6JywgZXJyb3IpO1xuXHR9XG5cblx0cmV0dXJuIHRpbWVzdGFtcDtcbn07XG5cbmNvbnN0IGdldFRpbWVzdGFtcCA9IGFzeW5jICh1c2VybmFtZTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+ID0+IHtcblx0bGV0IHRpbWVzdGFtcDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG5cdGlmIChtdy5zdG9yYWdlLmdldE9iamVjdChPUFRJT05TLnN0b3JhZ2VLZXkgKyB1c2VybmFtZSkpIHtcblx0XHR0aW1lc3RhbXAgPSBtdy5zdG9yYWdlLmdldE9iamVjdChPUFRJT05TLnN0b3JhZ2VLZXkgKyB1c2VybmFtZSkgYXMgc3RyaW5nO1xuXHR9IGVsc2Uge1xuXHRcdGNvbnN0IHVjVGltZXN0YW1wID0gYXdhaXQgZ2V0VXNlckNvbnRyaWJzVGltZXN0YW1wKHVzZXJuYW1lKTtcblx0XHRjb25zdCBsZVRpbWVzdGFtcCA9IGF3YWl0IGdldExvZ0V2ZW50c1RpbWVzdGFtcCh1c2VybmFtZSk7XG5cblx0XHRpZiAodWNUaW1lc3RhbXAgfHwgbGVUaW1lc3RhbXApIHtcblx0XHRcdGlmICh1Y1RpbWVzdGFtcCAmJiBsZVRpbWVzdGFtcCkge1xuXHRcdFx0XHR0aW1lc3RhbXAgPVxuXHRcdFx0XHRcdE51bWJlci5wYXJzZUludCh1Y1RpbWVzdGFtcCwgMTApID4gTnVtYmVyLnBhcnNlSW50KGxlVGltZXN0YW1wLCAxMCkgPyB1Y1RpbWVzdGFtcCA6IGxlVGltZXN0YW1wO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dGltZXN0YW1wID0gdWNUaW1lc3RhbXAgfHwgbGVUaW1lc3RhbXA7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0aWYgKHRpbWVzdGFtcCkge1xuXHRcdC8vIENhY2hlIGZvciAxMCBtaW51dGVzXG5cdFx0bXcuc3RvcmFnZS5zZXRPYmplY3QoT1BUSU9OUy5zdG9yYWdlS2V5ICsgdXNlcm5hbWUsIHRpbWVzdGFtcCwgMTAgKiA2MCk7XG5cdH1cblxuXHRyZXR1cm4gdGltZXN0YW1wO1xufTtcblxuZXhwb3J0IHtnZXRUaW1lc3RhbXB9O1xuIiwgImltcG9ydCB7U1lTVEVNX1NDUklQVF9MSVNUfSBmcm9tICcuLi9jb25zdGFudCc7XG5pbXBvcnQge2FwcGVuZEZvb3Rlck5vdGljZX0gZnJvbSAnLi9hcHBlbmRGb290ZXJOb3RpY2UnO1xuaW1wb3J0IHtnZXRMYXN0QWN0aXZlTWFya2VyfSBmcm9tICcuL2dldExhc3RBY3RpdmVNYXJrZXInO1xuaW1wb3J0IHtnZXRUaW1lc3RhbXB9IGZyb20gJy4vZ2V0VGltZXN0YW1wJztcblxuY29uc3QgYXBwZW5kTWFya2VyVG9Vc2VyTGlua3MgPSBhc3luYyAoe3VzZXJOYW1lLCAkZWxlbWVudHN9OiB7dXNlck5hbWU6IHN0cmluZzsgJGVsZW1lbnRzOiBKUXVlcnlbXX0pID0+IHtcblx0Ly8gUmVwbGFjZSBTZXQgd2l0aCB1bmlxdWVBcnJheSwgYXZvaWRpbmcgY29yZS1qcyBwb2x5ZmlsbGluZ1xuXHRpZiAoU1lTVEVNX1NDUklQVF9MSVNULmluY2x1ZGVzKHVzZXJOYW1lKSkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGNvbnN0IHRpbWVzdGFtcCA9IGF3YWl0IGdldFRpbWVzdGFtcCh1c2VyTmFtZSk7XG5cblx0aWYgKCF0aW1lc3RhbXApIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRmb3IgKGNvbnN0ICRlbGVtZW50IG9mICRlbGVtZW50cykge1xuXHRcdCQoZ2V0TGFzdEFjdGl2ZU1hcmtlcih0aW1lc3RhbXAsIHRydWUpKS5pbnNlcnRBZnRlcigkZWxlbWVudCk7XG5cdH1cbn07XG5cbmNvbnN0IGFwcGVuZE1hcmtlclRvVXNlclBhZ2UgPSBhc3luYyAodXNlck5hbWU6IHN0cmluZykgPT4ge1xuXHRpZiAoU1lTVEVNX1NDUklQVF9MSVNULmluY2x1ZGVzKHVzZXJOYW1lKSkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGNvbnN0IHRpbWVzdGFtcCA9IGF3YWl0IGdldFRpbWVzdGFtcCh1c2VyTmFtZSk7XG5cblx0aWYgKCF0aW1lc3RhbXApIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRhcHBlbmRGb290ZXJOb3RpY2UoZ2V0TGFzdEFjdGl2ZU1hcmtlcih0aW1lc3RhbXAsIGZhbHNlKSk7XG59O1xuXG5leHBvcnQge2FwcGVuZE1hcmtlclRvVXNlckxpbmtzLCBhcHBlbmRNYXJrZXJUb1VzZXJQYWdlfTtcbiIsICJjb25zdCBnZXRVc2VyTGlua3MgPSAoJGNvbnRlbnQ6IEpRdWVyeSkgPT4ge1xuXHRjb25zdCB1c2VyTGlua3M6IFJlY29yZDxzdHJpbmcsIEpRdWVyeTxIVE1MQW5jaG9yRWxlbWVudD5bXT4gPSB7fTtcblxuXHRjb25zdCB7d2dGb3JtYXR0ZWROYW1lc3BhY2VzfSA9IG13LmNvbmZpZy5nZXQoKTtcblxuXHRjb25zdCB7MjogbG9jYWxpemVkVXNlck5hbWVzcGFjZX0gPSB3Z0Zvcm1hdHRlZE5hbWVzcGFjZXM7XG5cdGZvciAoY29uc3QgZWxlbWVudCBvZiAkY29udGVudC5maW5kPEhUTUxBbmNob3JFbGVtZW50Pihcblx0XHRbXG5cdFx0XHQnYVt0aXRsZV49XCJVc2VyOlwiXTpub3QoLm13LWNoYW5nZXNsaXN0LWRhdGUpOm5vdChbaHJlZio9XCJ1bmRvXCJdKScsXG5cdFx0XHRgYVt0aXRsZV49XCIke2xvY2FsaXplZFVzZXJOYW1lc3BhY2V9OlwiXTpub3QoLm13LWNoYW5nZXNsaXN0LWRhdGUpOm5vdChbaHJlZio9XCJ1bmRvXCJdKWAsXG5cdFx0XS5qb2luKCcsJylcblx0KSkge1xuXHRcdGNvbnN0ICRlbGVtZW50OiBKUXVlcnk8SFRNTEFuY2hvckVsZW1lbnQ+ID0gJChlbGVtZW50KTtcblxuXHRcdGNvbnN0IHVzZXJSZWdleDogUmVnRXhwID0gbmV3IFJlZ0V4cChgKChVc2VyKXwoJHtsb2NhbGl6ZWRVc2VyTmFtZXNwYWNlfSkpOiguKj8pKD89JnwkKWApO1xuXHRcdGNvbnN0IHVzZXJOYW1lTWF0Y2hBcnJheTogUmVnRXhwTWF0Y2hBcnJheSB8IG51bGwgPSBkZWNvZGVVUkkoJGVsZW1lbnQuYXR0cignaHJlZicpID8/ICcnKS5tYXRjaCh1c2VyUmVnZXgpO1xuXHRcdGlmICghdXNlck5hbWVNYXRjaEFycmF5KSB7XG5cdFx0XHRjb250aW51ZTtcblx0XHR9XG5cblx0XHRsZXQgW3VzZXJOYW1lXSA9IHVzZXJOYW1lTWF0Y2hBcnJheTtcblx0XHR1c2VyTmFtZSA9IHVzZXJOYW1lLnJlcGxhY2UobmV3IFJlZ0V4cChgXigoVXNlcil8KCR7bG9jYWxpemVkVXNlck5hbWVzcGFjZX0pKTpgLCAnaScpLCAnJyk7XG5cdFx0Y29uc3QgaW5kZXg6IG51bWJlciA9IHVzZXJOYW1lLmluZGV4T2YoJy8nKTtcblx0XHRpZiAoaW5kZXggPT09IC0xKSB7XG5cdFx0XHR1c2VyTGlua3NbdXNlck5hbWVdID8/PSBbXTtcblx0XHRcdCh1c2VyTGlua3NbdXNlck5hbWVdIGFzICh0eXBlb2YgdXNlckxpbmtzKVtrZXlvZiB0eXBlb2YgdXNlckxpbmtzXSlbXG5cdFx0XHRcdCh1c2VyTGlua3NbdXNlck5hbWVdIGFzICh0eXBlb2YgdXNlckxpbmtzKVtrZXlvZiB0eXBlb2YgdXNlckxpbmtzXSkubGVuZ3RoXG5cdFx0XHRdID0gJGVsZW1lbnQ7XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIHVzZXJMaW5rcztcbn07XG5cbmV4cG9ydCB7Z2V0VXNlckxpbmtzfTtcbiIsICJpbXBvcnQge2FwcGVuZE1hcmtlclRvVXNlckxpbmtzLCBhcHBlbmRNYXJrZXJUb1VzZXJQYWdlfSBmcm9tICcuL3V0aWwvYXBwZW5kTWFya2VyJztcbmltcG9ydCB7Z2V0VXNlckxpbmtzfSBmcm9tICcuL3V0aWwvZ2V0VXNlckxpbmtzJztcblxuY29uc3Qgd2hvSXNBY3RpdmVVc2VyTGlua3MgPSAoJGNvbnRlbnQ6IEpRdWVyeTxIVE1MRWxlbWVudD4pOiB2b2lkID0+IHtcblx0Y29uc3QgdXNlckxpbmtzID0gZ2V0VXNlckxpbmtzKCRjb250ZW50KTtcblxuXHRmb3IgKGNvbnN0IFt1c2VyTmFtZSwgJGVsZW1lbnRzXSBvZiBPYmplY3QuZW50cmllcyh1c2VyTGlua3MpKSB7XG5cdFx0dm9pZCBhcHBlbmRNYXJrZXJUb1VzZXJMaW5rcyh7dXNlck5hbWUsICRlbGVtZW50c30pO1xuXHR9XG59O1xuXG5jb25zdCB3aG9Jc0FjdGl2ZVVzZXJQYWdlID0gKCk6IHZvaWQgPT4ge1xuXHRjb25zdCB7d2dBY3Rpb24sIHdnTmFtZXNwYWNlTnVtYmVyLCB3Z1BhZ2VOYW1lLCB3Z1JlbGV2YW50VXNlck5hbWV9ID0gbXcuY29uZmlnLmdldCgpO1xuXG5cdGlmICghd2dSZWxldmFudFVzZXJOYW1lIHx8IHdnTmFtZXNwYWNlTnVtYmVyICE9PSAyIHx8IHdnQWN0aW9uICE9PSAndmlldycpIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRjb25zdCByZWxldmFudFVzZXJQYWdlTmFtZTogc3RyaW5nID0gbmV3IG13LlRpdGxlKHdnUmVsZXZhbnRVc2VyTmFtZSwgMikudG9UZXh0KCk7XG5cdGNvbnN0IHBhZ2VOYW1lOiBzdHJpbmcgPSBuZXcgbXcuVGl0bGUod2dQYWdlTmFtZSkudG9UZXh0KCk7XG5cdGlmIChyZWxldmFudFVzZXJQYWdlTmFtZSAhPT0gcGFnZU5hbWUpIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHR2b2lkIGFwcGVuZE1hcmtlclRvVXNlclBhZ2Uod2dSZWxldmFudFVzZXJOYW1lKTtcbn07XG5cbmV4cG9ydCB7d2hvSXNBY3RpdmVVc2VyTGlua3MsIHdob0lzQWN0aXZlVXNlclBhZ2V9O1xuIiwgImltcG9ydCB7d2hvSXNBY3RpdmVVc2VyTGlua3MsIHdob0lzQWN0aXZlVXNlclBhZ2V9IGZyb20gJy4vbW9kdWxlcy9jb3JlJztcblxuKGZ1bmN0aW9uIHdob0lzQWN0aXZlTG9hZCgpIHtcblx0bXcuaG9vaygnd2lraXBhZ2UuY29udGVudCcpLmFkZCh3aG9Jc0FjdGl2ZVVzZXJMaW5rcyk7XG5cdHZvaWQgd2hvSXNBY3RpdmVVc2VyUGFnZSgpO1xufSkoKTtcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLElBQU1BLHFCQUErQixDQUNwQyxTQUNBLFFBQ0EsVUFDQSxXQUNBLHlCQUNBLHNCQUNBLHFCQUNBLDhCQUNBLGVBQUE7O0FDUkEsSUFBQUMscUJBQXNCO0FBQ3RCLElBQUFDLGFBQWM7QUFDZCxJQUFBQyxVQUFXOztBQ0RaLElBQU1DLHFCQUFzQkMsYUFBcUI7QUFDaEQsUUFBTUMsYUFBYUMsU0FBU0MsY0FBbUNQLGtCQUFrQjtBQUVqRixNQUFJSyxZQUFZO0FBQ2ZBLGVBQVdHLFFBQVFKLE9BQU87RUFDM0I7QUFDRDs7QUNSQSxJQUFBSyxxQkFBa0JDLFFBQUFDLFFBQUEsZ0JBQUEsR0FBQSxDQUFBOztBQ0NsQixJQUFBQyxvQkFBdUJELFFBQUEsaUJBQUE7QUFFdkIsSUFBTUUsa0JBQWtCQSxNQUFNO0FBQzdCLFNBQU87SUFDTkMsWUFBQSxHQUFXRixrQkFBQUcsVUFBUztNQUNuQkMsSUFBSTtNQUNKLFdBQVc7TUFDWCxXQUFXO0lBQ1osQ0FBQztJQUNEQyxXQUFBLEdBQVVMLGtCQUFBRyxVQUFTO01BQ2xCQyxJQUFJO01BQ0osV0FBVztNQUNYLFdBQVc7SUFDWixDQUFDO0lBQ0RFLFlBQUEsR0FBV04sa0JBQUFHLFVBQVM7TUFDbkJDLElBQUk7TUFDSixXQUFXO01BQ1gsV0FBVztJQUNaLENBQUM7SUFDREcsYUFBQSxHQUFZUCxrQkFBQUcsVUFBUztNQUNwQkMsSUFBSTtNQUNKLFdBQVc7TUFDWCxXQUFXO0lBQ1osQ0FBQztJQUNESSxlQUFBLEdBQWNSLGtCQUFBRyxVQUFTO01BQ3RCQyxJQUFJO01BQ0osV0FB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QzlCLFNBQUszQyx3QkFBd0I7TUFBQ0U7TUFBVUM7SUFBUyxDQUFDO0VBQ25EO0FBQ0Q7QUFFQSxJQUFNNEMsc0JBQXNCQSxNQUFZO0FBQ3ZDLFFBQU07SUFBQ0M7SUFBVUM7SUFBbUJDO0lBQVlDO0VBQWtCLElBQUlsSCxHQUFHQyxPQUFPQyxJQUFJO0FBRXBGLE1BQUksQ0FBQ2dILHNCQUFzQkYsc0JBQXNCLEtBQUtELGFBQWEsUUFBUTtBQUMxRTtFQUNEO0FBRUEsUUFBTUksdUJBQStCLElBQUluSCxHQUFHb0gsTUFBTUYsb0JBQW9CLENBQUMsRUFBRUcsT0FBTztBQUNoRixRQUFNQyxXQUFtQixJQUFJdEgsR0FBR29ILE1BQU1ILFVBQVUsRUFBRUksT0FBTztBQUN6RCxNQUFJRix5QkFBeUJHLFVBQVU7QUFDdEM7RUFDRDtBQUVBLE9BQUtyQyx1QkFBdUJpQyxrQkFBa0I7QUFDL0M7O0NDdkJDLFNBQVNLLGtCQUFrQjtBQUMzQnZILEtBQUd3SCxLQUFLLGtCQUFrQixFQUFFQyxJQUFJaEIsb0JBQW9CO0FBQ3BELE9BQUtLLG9CQUFvQjtBQUMxQixHQUFHOyIsCiAgIm5hbWVzIjogWyJTWVNURU1fU0NSSVBUX0xJU1QiLCAibW91bnRQb2ludFNlbGVjdG9yIiwgInN0b3JhZ2VLZXkiLCAidmVyc2lvbiIsICJhcHBlbmRGb290ZXJOb3RpY2UiLCAiZWxlbWVudCIsICJtb3VudFBvaW50IiwgImRvY3VtZW50IiwgInF1ZXJ5U2VsZWN0b3IiLCAicHJlcGVuZCIsICJpbXBvcnRfZXh0X2dhZGdldDIiLCAiX190b0VTTSIsICJyZXF1aXJlIiwgImltcG9ydF9leHRfZ2FkZ2V0IiwgImdldEkxOG5NZXNzYWdlcyIsICJPdmVyQVllYXIiLCAibG9jYWxpemUiLCAiZW4iLCAiVGhpc1dlZWsiLCAiVGhpc01vbnRoIiwgIlRoaXNTZWFzb24iLCAiVGhpc1NlbWl5ZWFyIiwgIlRoaXNZZWFyIiwgImkxOG5NZXNzYWdlcyIsICJnZXRNZXNzYWdlIiwgImtleSIsICJXcmFwcGVyIiwgInByb3BzIiwgInRpbWVTcGFuIiwgImlubmVyRWxlbWVudCIsICJjbGFzc05hbWUiLCAiY29uY2F0IiwgInNraW4iLCAibXciLCAiY29uZmlnIiwgImdldCIsICJkZWZhdWx0IiwgImNyZWF0ZUVsZW1lbnQiLCAiaW5jbHVkZXMiLCAiVGFnIiwgIl9nZXRNZXNzYWdlIiwgImluZGljYXRvciIsICJpY29uQ2xhc3NOYW1lIiwgInRleHRDbGFzc05hbWUiLCAiRnJhZ21lbnQiLCAidGl0bGUiLCAiZ2V0TGFzdEFjdGl2ZU1hcmtlciIsICJ0aW1lc3RhbXAiLCAiZGF0ZSIsICJEYXRlIiwgInBhcnNlIiwgIm5vdyIsICJkaWZmIiwgIk1hdGgiLCAiZmxvb3IiLCAiaW1wb3J0X2V4dF9nYWRnZXQzIiwgImFwaSIsICJpbml0TXdBcGkiLCAiZ2V0VXNlckNvbnRyaWJzVGltZXN0YW1wIiwgIl9yZWYiLCAiX2FzeW5jVG9HZW5lcmF0b3IiLCAidWN1c2VyIiwgInBhcmFtcyIsICJhY3Rpb24iLCAiZm9ybWF0IiwgImxpc3QiLCAidWNsaW1pdCIsICJzbWF4YWdlIiwgIm1heGFnZSIsICJyZXN1bHQiLCAidXNlcmNvbnRyaWJzIiwgImxlbmd0aCIsICJlcnJvciIsICJjb25zb2xlIiwgIl94IiwgImFwcGx5IiwgImFyZ3VtZW50cyIsICJnZXRMb2dFdmVudHNUaW1lc3RhbXAiLCAiX3JlZjIiLCAibGV1c2VyIiwgImZvcm1hdHZlcnNpb24iLCAibGVsaW1pdCIsICJsZXByb3AiLCAibG9nZXZlbnRzIiwgIl94MiIsICJnZXRUaW1lc3RhbXAiLCAiX3JlZjMiLCAidXNlcm5hbWUiLCAic3RvcmFnZSIsICJnZXRPYmplY3QiLCAidWNUaW1lc3RhbXAiLCAibGVUaW1lc3RhbXAiLCAiTnVtYmVyIiwgInBhcnNlSW50IiwgInNldE9iamVjdCIsICJfeDMiLCAiYXBwZW5kTWFya2VyVG9Vc2VyTGlua3MiLCAiX3JlZjQiLCAidXNlck5hbWUiLCAiJGVsZW1lbnRzIiwgIl9pdGVyYXRvcjIiLCAiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIiLCAiX3N0ZXAyIiwgInMiLCAibiIsICJkb25lIiwgIiRlbGVtZW50IiwgInZhbHVlIiwgIiQiLCAiaW5zZXJ0QWZ0ZXIiLCAiZXJyIiwgImUiLCAiZiIsICJfeDQiLCAiYXBwZW5kTWFya2VyVG9Vc2VyUGFnZSIsICJfcmVmNSIsICJfeDUiLCAiZ2V0VXNlckxpbmtzIiwgIiRjb250ZW50IiwgInVzZXJMaW5rcyIsICJ3Z0Zvcm1hdHRlZE5hbWVzcGFjZXMiLCAibG9jYWxpemVkVXNlck5hbWVzcGFjZSIsICJfaXRlcmF0b3IzIiwgImZpbmQiLCAiam9pbiIsICJfc3RlcDMiLCAiXyRlbGVtZW50JGF0dHIiLCAidXNlclJlZ2V4IiwgIlJlZ0V4cCIsICJ1c2VyTmFtZU1hdGNoQXJyYXkiLCAiZGVjb2RlVVJJIiwgImF0dHIiLCAibWF0Y2giLCAicmVwbGFjZSIsICJpbmRleCIsICJpbmRleE9mIiwgIl91c2VyTmFtZSIsICJfdXNlckxpbmtzJF91c2VyTmFtZSIsICJ3aG9Jc0FjdGl2ZVVzZXJMaW5rcyIsICJfaSIsICJfT2JqZWN0JGVudHJpZXMiLCAiT2JqZWN0IiwgImVudHJpZXMiLCAid2hvSXNBY3RpdmVVc2VyUGFnZSIsICJ3Z0FjdGlvbiIsICJ3Z05hbWVzcGFjZU51bWJlciIsICJ3Z1BhZ2VOYW1lIiwgIndnUmVsZXZhbnRVc2VyTmFtZSIsICJyZWxldmFudFVzZXJQYWdlTmFtZSIsICJUaXRsZSIsICJ0b1RleHQiLCAicGFnZU5hbWUiLCAid2hvSXNBY3RpdmVMb2FkIiwgImhvb2siLCAiYWRkIl0KfQo= diff --git a/dist/WordCount/WordCount.css b/dist/WordCount/WordCount.css index e92e0a124..aec4b4403 100644 --- a/dist/WordCount/WordCount.css +++ b/dist/WordCount/WordCount.css @@ -20,17 +20,17 @@ /* */ /* esbuild-css-modules-plugin-ns-css:src/WordCount/components/WordCount.module.less */ -.WordCount-module__tip_HBDn5a { +.WordCount-module__tip_HBDn5a__490 { margin: 4px; padding: 6px; position: fixed; bottom: 0; right: 0; } -.ve-activated .WordCount-module__tip_HBDn5a { +.ve-activated .WordCount-module__tip_HBDn5a__490 { display: none !important; } /* */ -/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiZXNidWlsZC1jc3MtbW9kdWxlcy1wbHVnaW4tbnMtY3NzOnNyYy9Xb3JkQ291bnQvY29tcG9uZW50cy9Xb3JkQ291bnQubW9kdWxlLmxlc3MiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qIDxzdGRpbj4gKi9cbi5Xb3JkQ291bnQtbW9kdWxlX190aXBfSEJEbjVhIHtcbiAgbWFyZ2luOiA0cHg7XG4gIHBhZGRpbmc6IDZweDtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBib3R0b206IDA7XG4gIHJpZ2h0OiAwO1xufVxuLnZlLWFjdGl2YXRlZCAuV29yZENvdW50LW1vZHVsZV9fdGlwX0hCRG41YSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxDQUFDO0FBQ0MsVUFBUTtBQUNSLFdBQVM7QUFDVCxZQUFVO0FBQ1YsVUFBUTtBQUNSLFNBQU87QUFDVDtBQUNBLENBQUMsYUFBYSxDQVBiO0FBUUMsV0FBUztBQUNYOyIsCiAgIm5hbWVzIjogW10KfQo= */ +/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiZXNidWlsZC1jc3MtbW9kdWxlcy1wbHVnaW4tbnMtY3NzOnNyYy9Xb3JkQ291bnQvY29tcG9uZW50cy9Xb3JkQ291bnQubW9kdWxlLmxlc3MiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qIDxzdGRpbj4gKi9cbi5Xb3JkQ291bnQtbW9kdWxlX190aXBfSEJEbjVhX180OTAge1xuICBtYXJnaW46IDRweDtcbiAgcGFkZGluZzogNnB4O1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGJvdHRvbTogMDtcbiAgcmlnaHQ6IDA7XG59XG4udmUtYWN0aXZhdGVkIC5Xb3JkQ291bnQtbW9kdWxlX190aXBfSEJEbjVhX180OTAge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsQ0FBQztBQUNDLFVBQVE7QUFDUixXQUFTO0FBQ1QsWUFBVTtBQUNWLFVBQVE7QUFDUixTQUFPO0FBQ1Q7QUFDQSxDQUFDLGFBQWEsQ0FQYjtBQVFDLFdBQVM7QUFDWDsiLAogICJuYW1lcyI6IFtdCn0K */ diff --git a/dist/WordCount/WordCount.js b/dist/WordCount/WordCount.js index a408b2fc0..7b2e94181 100644 --- a/dist/WordCount/WordCount.js +++ b/dist/WordCount/WordCount.js @@ -104,7 +104,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge mod )); //! src/WordCount/modules/wordCount.tsx -var import_ext_gadget3 = __toESM(require("ext.gadget.React"), 1); +var import_ext_gadget3 = __toESM(require("ext.gadget.JSX"), 1); //! src/WordCount/modules/util/countLength.ts var countLength = (text) => { return text.length; @@ -161,9 +161,9 @@ var getUTF8CountByTextLength = (text) => { return "".concat(countByte(text)).concat(getMessage("byte(s) in UTF-8 encoding")); }; //! src/WordCount/components/WordCount.tsx -var import_ext_gadget2 = __toESM(require("ext.gadget.React"), 1); +var import_ext_gadget2 = __toESM(require("ext.gadget.JSX"), 1); //! src/WordCount/components/WordCount.module.less -var tip = "WordCount-module__tip_HBDn5a"; +var tip = "WordCount-module__tip_HBDn5a__490"; //! src/WordCount/components/WordCount.tsx var WordCount = ({ text @@ -212,4 +212,4 @@ void (0, import_ext_gadget4.getBody)().then(addListener); /* */ -//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL1dvcmRDb3VudC9tb2R1bGVzL3dvcmRDb3VudC50c3giLCAic3JjL1dvcmRDb3VudC9tb2R1bGVzL3V0aWwvY291bnRMZW5ndGgudHMiLCAic3JjL1dvcmRDb3VudC9tb2R1bGVzL3V0aWwvY291bnRCeXRlLnRzIiwgInNyYy9Xb3JkQ291bnQvbW9kdWxlcy91dGlsL2NvdW50Q0pLLnRzIiwgInNyYy9Xb3JkQ291bnQvbW9kdWxlcy9pMThuLnRzIiwgInNyYy9Xb3JkQ291bnQvbW9kdWxlcy9nZXRDb3VudC50cyIsICJzcmMvV29yZENvdW50L2NvbXBvbmVudHMvV29yZENvdW50LnRzeCIsICJzcmMvV29yZENvdW50L2NvbXBvbmVudHMvV29yZENvdW50Lm1vZHVsZS5sZXNzIiwgInNyYy9Xb3JkQ291bnQvbW9kdWxlcy9hZGRMaXN0ZW5lci50cyIsICJzcmMvV29yZENvdW50L1dvcmRDb3VudC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IFJlYWN0IGZyb20gJ2V4dC5nYWRnZXQuUmVhY3QnO1xuaW1wb3J0IFdvcmRDb3VudCBmcm9tICcuLi9jb21wb25lbnRzL1dvcmRDb3VudCc7XG5pbXBvcnQge3RpcH0gZnJvbSAnLi4vY29tcG9uZW50cy9Xb3JkQ291bnQubW9kdWxlLmxlc3MnO1xuXG5jb25zdCB3b3JkQ291bnQgPSAoJGJvZHk6IEpRdWVyeTxIVE1MQm9keUVsZW1lbnQ+KTogdm9pZCA9PiB7XG5cdCRib2R5LmZpbmQoYC4ke3RpcH1gKS5yZW1vdmUoKTtcblxuXHRjb25zdCB0ZXh0OiBzdHJpbmcgfCB1bmRlZmluZWQgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk/LnRvU3RyaW5nKCk7XG5cdGlmICghdGV4dCkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGNvbnN0ICRlbGVtZW50ID0gJCg8V29yZENvdW50IHRleHQ9e3RleHR9IC8+KTtcblxuXHQkZWxlbWVudC5hcHBlbmRUbygkYm9keSk7XG5cblx0c2V0VGltZW91dCgoKTogdm9pZCA9PiB7XG5cdFx0JGVsZW1lbnQuZmFkZU91dCgnc2xvdycsICgpOiB2b2lkID0+IHtcblx0XHRcdCRlbGVtZW50LnJlbW92ZSgpO1xuXHRcdH0pO1xuXHR9LCA1ICogMTAwMCk7XG59O1xuXG5leHBvcnQge3dvcmRDb3VudH07XG4iLCAiY29uc3QgY291bnRMZW5ndGggPSAodGV4dDogc3RyaW5nKTogbnVtYmVyID0+IHtcblx0cmV0dXJuIHRleHQubGVuZ3RoO1xufTtcblxuZXhwb3J0IHtjb3VudExlbmd0aH07XG4iLCAiaW1wb3J0IHtjb3VudExlbmd0aH0gZnJvbSAnLi9jb3VudExlbmd0aCc7XG5cbmNvbnN0IGNvdW50Qnl0ZSA9ICh0ZXh0OiBzdHJpbmcpOiBudW1iZXIgPT4ge1xuXHRyZXR1cm4gY291bnRMZW5ndGgoXG5cdFx0dGV4dFxuXHRcdFx0LnJlcGxhY2UoL1tcXHUwMDAwLVxcdTAwN0ZdL2csICcuJylcblx0XHRcdC5yZXBsYWNlKC9bXFx1MDA4MC1cXHUwN0ZGXFx1RDgwMC1cXHVERkZGXS9nLCAnLi4nKVxuXHRcdFx0LnJlcGxhY2UoL1tcXHUwODAwLVxcdUQ3RkZcXHVFMDAwLVxcdUZGRkZdL2csICcuLi4nKVxuXHQpO1xufTtcblxuZXhwb3J0IHtjb3VudEJ5dGV9O1xuIiwgImltcG9ydCB7Y291bnRMZW5ndGh9IGZyb20gJy4vY291bnRMZW5ndGgnO1xuXG5jb25zdCBjb3VudENKSyA9ICh0ZXh0OiBzdHJpbmcpOiBudW1iZXIgPT4ge1xuXHRyZXR1cm4gY291bnRMZW5ndGgoXG5cdFx0dGV4dFxuXHRcdFx0LnJlcGxhY2UoL1xcLi9nLCAnJylcblx0XHRcdC5yZXBsYWNlKFxuXHRcdFx0XHQvW1xcdTJFODAtXFx1MkU5OVxcdTJFOUItXFx1MkVGM1xcdTJGMDAtXFx1MkZENVxcdTMwMDVcXHUzMDA3XFx1MzAyMS1cXHUzMDI5XFx1MzAzOC1cXHUzMDNCXFx1MzQwMC1cXHU0REI1XFx1NEUwMC1cXHU5RkNDXFx1RjkwMC1cXHVGQTZEXFx1RkE3MC1cXHVGQUQ5XXxbXFx1RDg0MC1cXHVEODY4XVtcXHVEQzAwLVxcdURGRkZdfFxcdUQ4NjlbXFx1REMwMC1cXHVERUQ2XFx1REYwMC1cXHVERkZGXXxbXFx1RDg2QS1cXHVEODZDXVtcXHVEQzAwLVxcdURGRkZdfFxcdUQ4NkRbXFx1REMwMC1cXHVERjM0XFx1REY0MC1cXHVERkZGXXxcXHVEODZFW1xcdURDMDAtXFx1REMxRF18XFx1RDg3RVtcXHVEQzAwLVxcdURFMURdL2csXG5cdFx0XHRcdCcuJ1xuXHRcdFx0KVxuXHRcdFx0LnJlcGxhY2UoL1teLl0vZywgJycpXG5cdCk7XG59O1xuXG5leHBvcnQge2NvdW50Q0pLfTtcbiIsICJpbXBvcnQge2xvY2FsaXplfSBmcm9tICdleHQuZ2FkZ2V0LmkxOG4nO1xuXG5jb25zdCBnZXRJMThuTWVzc2FnZXMgPSAoKSA9PiB7XG5cdHJldHVybiB7XG5cdFx0J2NoYXJhY3RlcihzKSc6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnIGNoYXJhY3RlcihzKScsXG5cdFx0XHQnemgtaGFucyc6ICflrZfnrKYnLFxuXHRcdFx0J3poLWhhbnQnOiAn5a2X5YWDJyxcblx0XHR9KSxcblx0XHQnKCc6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnICgnLFxuXHRcdFx0emg6ICfvvIgnLFxuXHRcdH0pLFxuXHRcdCcpJzogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICcpICcsXG5cdFx0XHR6aDogJ++8iScsXG5cdFx0fSksXG5cdFx0Q0pLOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJyBDSksnLFxuXHRcdFx0J3poLWhhbnMnOiAn5LiqQ0pL5a2X56ymJyxcblx0XHRcdCd6aC1oYW50JzogJ+S4qkNKS+Wtl+WFgycsXG5cdFx0fSksXG5cdFx0J2J5dGUocykgaW4gVVRGLTggZW5jb2RpbmcnOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJ2J5dGUocykgaW4gVVRGLTggZW5jb2RpbmcnLFxuXHRcdFx0J3poLWhhbnMnOiAn5a2X6IqC77yIVVRGLTjnvJbnoIHvvIknLFxuXHRcdFx0J3poLWhhbnQnOiAn5L2N5YWD57WE77yIVVRGLTjnt6jnorzvvIknLFxuXHRcdH0pLFxuXHR9O1xufTtcbmNvbnN0IGkxOG5NZXNzYWdlcyA9IGdldEkxOG5NZXNzYWdlcygpO1xuXG5jb25zdCBnZXRNZXNzYWdlOiBHZXRNZXNzYWdlczx0eXBlb2YgaTE4bk1lc3NhZ2VzPiA9IChrZXkpID0+IHtcblx0cmV0dXJuIGkxOG5NZXNzYWdlc1trZXldIHx8IGtleTtcbn07XG5cbmV4cG9ydCB7Z2V0TWVzc2FnZX07XG4iLCAiaW1wb3J0IHtjb3VudEJ5dGV9IGZyb20gJy4vdXRpbC9jb3VudEJ5dGUnO1xuaW1wb3J0IHtjb3VudENKS30gZnJvbSAnLi91dGlsL2NvdW50Q0pLJztcbmltcG9ydCB7Y291bnRMZW5ndGh9IGZyb20gJy4vdXRpbC9jb3VudExlbmd0aCc7XG5pbXBvcnQge2dldE1lc3NhZ2V9IGZyb20gJy4vaTE4bic7XG5cbmNvbnN0IGdldENvdW50QnlUZXh0TGVuZ3RoID0gKHRleHQ6IHN0cmluZyk6IHN0cmluZyA9PiB7XG5cdHJldHVybiBgJHtjb3VudExlbmd0aCh0ZXh0KX0ke2dldE1lc3NhZ2UoJ2NoYXJhY3RlcihzKScpfWA7XG59O1xuXG5jb25zdCBnZXRDSktDb3VudEJ5VGV4dExlbmd0aCA9ICh0ZXh0OiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuXHRyZXR1cm4gYCR7Z2V0TWVzc2FnZSgnKCcpfSR7Y291bnRDSksodGV4dCl9JHtnZXRNZXNzYWdlKCdDSksnKX0ke2dldE1lc3NhZ2UoJyknKX1gO1xufTtcblxuY29uc3QgZ2V0VVRGOENvdW50QnlUZXh0TGVuZ3RoID0gKHRleHQ6IHN0cmluZyk6IHN0cmluZyA9PiB7XG5cdHJldHVybiBgJHtjb3VudEJ5dGUodGV4dCl9JHtnZXRNZXNzYWdlKCdieXRlKHMpIGluIFVURi04IGVuY29kaW5nJyl9YDtcbn07XG5cbmV4cG9ydCB7Z2V0Q291bnRCeVRleHRMZW5ndGgsIGdldENKS0NvdW50QnlUZXh0TGVuZ3RoLCBnZXRVVEY4Q291bnRCeVRleHRMZW5ndGh9O1xuIiwgImltcG9ydCB7Z2V0Q0pLQ291bnRCeVRleHRMZW5ndGgsIGdldENvdW50QnlUZXh0TGVuZ3RoLCBnZXRVVEY4Q291bnRCeVRleHRMZW5ndGh9IGZyb20gJy4uL21vZHVsZXMvZ2V0Q291bnQnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ2V4dC5nYWRnZXQuUmVhY3QnO1xuaW1wb3J0IHt0aXB9IGZyb20gJy4vV29yZENvdW50Lm1vZHVsZS5sZXNzJztcblxuaW50ZXJmYWNlIFByb3BzIHtcblx0dGV4dDogc3RyaW5nO1xufVxuXG5jb25zdCBXb3JkQ291bnQgPSAoe3RleHR9OiBQcm9wcykgPT4gKFxuXHQ8ZGl2IGNsYXNzTmFtZT17W3RpcCwgJ25vcHJpbnQnLCAndWktc3RhdGUtaGlnaGxpZ2h0JywgJ3VpLWNvcm5lci1hbGwnXX0gaWQ9XCJnYWRnZXQtd29yZF9jb3VudC10aXBcIj5cblx0XHR7Z2V0Q291bnRCeVRleHRMZW5ndGgodGV4dCl9XG5cdFx0e2dldENKS0NvdW50QnlUZXh0TGVuZ3RoKHRleHQpfVxuXHRcdDxiciAvPlxuXHRcdHtnZXRVVEY4Q291bnRCeVRleHRMZW5ndGgodGV4dCl9XG5cdDwvZGl2PlxuKTtcblxuZXhwb3J0IGRlZmF1bHQgV29yZENvdW50O1xuIiwgImltcG9ydCBcImVzYnVpbGQtY3NzLW1vZHVsZXMtcGx1Z2luLW5zLWNzczpzcmMvV29yZENvdW50L2NvbXBvbmVudHMvV29yZENvdW50Lm1vZHVsZS5sZXNzXCI7XG5leHBvcnQgY29uc3QgdGlwID0gXCJXb3JkQ291bnQtbW9kdWxlX190aXBfSEJEbjVhXCI7XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgXCJ0aXBcIjogdGlwXG59O1xuICAgICAgIiwgImltcG9ydCB7d29yZENvdW50fSBmcm9tICcuL3dvcmRDb3VudCc7XG5cbmNvbnN0IGFkZExpc3RlbmVyID0gKCRib2R5OiBKUXVlcnk8SFRNTEJvZHlFbGVtZW50Pik6IHZvaWQgPT4ge1xuXHRpZiAoJ29udG91Y2hzdGFydCcgaW4gZG9jdW1lbnQpIHtcblx0XHQkYm9keS5vbigndG91Y2hzdGFydCB0b3VjaGVuZCcsIHtwYXNzaXZlOiB0cnVlfSwgKCk6IHZvaWQgPT4ge1xuXHRcdFx0d29yZENvdW50KCRib2R5KTtcblx0XHR9KTtcblx0fSBlbHNlIHtcblx0XHQkYm9keS5vbignbW91c2V1cCBrZXl1cCcsICgpOiB2b2lkID0+IHtcblx0XHRcdHdvcmRDb3VudCgkYm9keSk7XG5cdFx0fSk7XG5cdH1cbn07XG5cbmV4cG9ydCB7YWRkTGlzdGVuZXJ9O1xuIiwgImltcG9ydCB7YWRkTGlzdGVuZXJ9IGZyb20gJy4vbW9kdWxlcy9hZGRMaXN0ZW5lcic7XG5pbXBvcnQge2dldEJvZHl9IGZyb20gJ2V4dC5nYWRnZXQuVXRpbCc7XG5cbnZvaWQgZ2V0Qm9keSgpLnRoZW4oYWRkTGlzdGVuZXIpO1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLElBQUFBLHFCQUFrQkMsUUFBQUMsUUFBQSxrQkFBQSxHQUFBLENBQUE7O0FDQWxCLElBQU1DLGNBQWVDLFVBQXlCO0FBQzdDLFNBQU9BLEtBQUtDO0FBQ2I7O0FDQUEsSUFBTUMsWUFBYUYsVUFBeUI7QUFDM0MsU0FBT0QsWUFDTkMsS0FDRUcsUUFBUSxvQkFBb0IsR0FBRyxFQUMvQkEsUUFBUSxpQ0FBaUMsSUFBSSxFQUM3Q0EsUUFBUSxpQ0FBaUMsS0FBSyxDQUNqRDtBQUNEOztBQ1BBLElBQU1DLFdBQVlKLFVBQXlCO0FBQzFDLFNBQU9ELFlBQ05DLEtBQ0VHLFFBQVEsT0FBTyxFQUFFLEVBQ2pCQSxRQUNBLHdUQUNBLEdBQ0QsRUFDQ0EsUUFBUSxTQUFTLEVBQUUsQ0FDdEI7QUFDRDs7QUNaQSxJQUFBRSxvQkFBdUJQLFFBQUEsaUJBQUE7QUFFdkIsSUFBTVEsa0JBQWtCQSxNQUFNO0FB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WyJpbXBvcnRfZXh0X2dhZGdldDMiLCAiX190b0VTTSIsICJyZXF1aXJlIiwgImNvdW50TGVuZ3RoIiwgInRleHQiLCAibGVuZ3RoIiwgImNvdW50Qnl0ZSIsICJyZXBsYWNlIiwgImNvdW50Q0pLIiwgImltcG9ydF9leHRfZ2FkZ2V0IiwgImdldEkxOG5NZXNzYWdlcyIsICJsb2NhbGl6ZSIsICJlbiIsICJ6aCIsICJDSksiLCAiaTE4bk1lc3NhZ2VzIiwgImdldE1lc3NhZ2UiLCAia2V5IiwgImdldENvdW50QnlUZXh0TGVuZ3RoIiwgImNvbmNhdCIsICJnZXRDSktDb3VudEJ5VGV4dExlbmd0aCIsICJnZXRVVEY4Q291bnRCeVRleHRMZW5ndGgiLCAiaW1wb3J0X2V4dF9nYWRnZXQyIiwgInRpcCIsICJXb3JkQ291bnQiLCAiZGVmYXVsdCIsICJjcmVhdGVFbGVtZW50IiwgImNsYXNzTmFtZSIsICJpZCIsICJXb3JkQ291bnRfZGVmYXVsdCIsICJ3b3JkQ291bnQiLCAiJGJvZHkiLCAiX3dpbmRvdyRnZXRTZWxlY3Rpb24iLCAiZmluZCIsICJyZW1vdmUiLCAid2luZG93IiwgImdldFNlbGVjdGlvbiIsICJ0b1N0cmluZyIsICIkZWxlbWVudCIsICIkIiwgImFwcGVuZFRvIiwgInNldFRpbWVvdXQiLCAiZmFkZU91dCIsICJhZGRMaXN0ZW5lciIsICJkb2N1bWVudCIsICJvbiIsICJwYXNzaXZlIiwgImltcG9ydF9leHRfZ2FkZ2V0NCIsICJnZXRCb2R5IiwgInRoZW4iXQp9Cg== +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL1dvcmRDb3VudC9tb2R1bGVzL3dvcmRDb3VudC50c3giLCAic3JjL1dvcmRDb3VudC9tb2R1bGVzL3V0aWwvY291bnRMZW5ndGgudHMiLCAic3JjL1dvcmRDb3VudC9tb2R1bGVzL3V0aWwvY291bnRCeXRlLnRzIiwgInNyYy9Xb3JkQ291bnQvbW9kdWxlcy91dGlsL2NvdW50Q0pLLnRzIiwgInNyYy9Xb3JkQ291bnQvbW9kdWxlcy9pMThuLnRzIiwgInNyYy9Xb3JkQ291bnQvbW9kdWxlcy9nZXRDb3VudC50cyIsICJzcmMvV29yZENvdW50L2NvbXBvbmVudHMvV29yZENvdW50LnRzeCIsICJzcmMvV29yZENvdW50L2NvbXBvbmVudHMvV29yZENvdW50Lm1vZHVsZS5sZXNzIiwgInNyYy9Xb3JkQ291bnQvbW9kdWxlcy9hZGRMaXN0ZW5lci50cyIsICJzcmMvV29yZENvdW50L1dvcmRDb3VudC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IFJlYWN0IGZyb20gJ2V4dC5nYWRnZXQuSlNYJztcbmltcG9ydCBXb3JkQ291bnQgZnJvbSAnLi4vY29tcG9uZW50cy9Xb3JkQ291bnQnO1xuaW1wb3J0IHt0aXB9IGZyb20gJy4uL2NvbXBvbmVudHMvV29yZENvdW50Lm1vZHVsZS5sZXNzJztcblxuY29uc3Qgd29yZENvdW50ID0gKCRib2R5OiBKUXVlcnk8SFRNTEJvZHlFbGVtZW50Pik6IHZvaWQgPT4ge1xuXHQkYm9keS5maW5kKGAuJHt0aXB9YCkucmVtb3ZlKCk7XG5cblx0Y29uc3QgdGV4dDogc3RyaW5nIHwgdW5kZWZpbmVkID0gd2luZG93LmdldFNlbGVjdGlvbigpPy50b1N0cmluZygpO1xuXHRpZiAoIXRleHQpIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRjb25zdCAkZWxlbWVudCA9ICQoPFdvcmRDb3VudCB0ZXh0PXt0ZXh0fSAvPik7XG5cblx0JGVsZW1lbnQuYXBwZW5kVG8oJGJvZHkpO1xuXG5cdHNldFRpbWVvdXQoKCk6IHZvaWQgPT4ge1xuXHRcdCRlbGVtZW50LmZhZGVPdXQoJ3Nsb3cnLCAoKTogdm9pZCA9PiB7XG5cdFx0XHQkZWxlbWVudC5yZW1vdmUoKTtcblx0XHR9KTtcblx0fSwgNSAqIDEwMDApO1xufTtcblxuZXhwb3J0IHt3b3JkQ291bnR9O1xuIiwgImNvbnN0IGNvdW50TGVuZ3RoID0gKHRleHQ6IHN0cmluZyk6IG51bWJlciA9PiB7XG5cdHJldHVybiB0ZXh0Lmxlbmd0aDtcbn07XG5cbmV4cG9ydCB7Y291bnRMZW5ndGh9O1xuIiwgImltcG9ydCB7Y291bnRMZW5ndGh9IGZyb20gJy4vY291bnRMZW5ndGgnO1xuXG5jb25zdCBjb3VudEJ5dGUgPSAodGV4dDogc3RyaW5nKTogbnVtYmVyID0+IHtcblx0cmV0dXJuIGNvdW50TGVuZ3RoKFxuXHRcdHRleHRcblx0XHRcdC5yZXBsYWNlKC9bXFx1MDAwMC1cXHUwMDdGXS9nLCAnLicpXG5cdFx0XHQucmVwbGFjZSgvW1xcdTAwODAtXFx1MDdGRlxcdUQ4MDAtXFx1REZGRl0vZywgJy4uJylcblx0XHRcdC5yZXBsYWNlKC9bXFx1MDgwMC1cXHVEN0ZGXFx1RTAwMC1cXHVGRkZGXS9nLCAnLi4uJylcblx0KTtcbn07XG5cbmV4cG9ydCB7Y291bnRCeXRlfTtcbiIsICJpbXBvcnQge2NvdW50TGVuZ3RofSBmcm9tICcuL2NvdW50TGVuZ3RoJztcblxuY29uc3QgY291bnRDSksgPSAodGV4dDogc3RyaW5nKTogbnVtYmVyID0+IHtcblx0cmV0dXJuIGNvdW50TGVuZ3RoKFxuXHRcdHRleHRcblx0XHRcdC5yZXBsYWNlKC9cXC4vZywgJycpXG5cdFx0XHQucmVwbGFjZShcblx0XHRcdFx0L1tcXHUyRTgwLVxcdTJFOTlcXHUyRTlCLVxcdTJFRjNcXHUyRjAwLVxcdTJGRDVcXHUzMDA1XFx1MzAwN1xcdTMwMjEtXFx1MzAyOVxcdTMwMzgtXFx1MzAzQlxcdTM0MDAtXFx1NERCNVxcdTRFMDAtXFx1OUZDQ1xcdUY5MDAtXFx1RkE2RFxcdUZBNzAtXFx1RkFEOV18W1xcdUQ4NDAtXFx1RDg2OF1bXFx1REMwMC1cXHVERkZGXXxcXHVEODY5W1xcdURDMDAtXFx1REVENlxcdURGMDAtXFx1REZGRl18W1xcdUQ4NkEtXFx1RDg2Q11bXFx1REMwMC1cXHVERkZGXXxcXHVEODZEW1xcdURDMDAtXFx1REYzNFxcdURGNDAtXFx1REZGRl18XFx1RDg2RVtcXHVEQzAwLVxcdURDMURdfFxcdUQ4N0VbXFx1REMwMC1cXHVERTFEXS9nLFxuXHRcdFx0XHQnLidcblx0XHRcdClcblx0XHRcdC5yZXBsYWNlKC9bXi5dL2csICcnKVxuXHQpO1xufTtcblxuZXhwb3J0IHtjb3VudENKS307XG4iLCAiaW1wb3J0IHtsb2NhbGl6ZX0gZnJvbSAnZXh0LmdhZGdldC5pMThuJztcblxuY29uc3QgZ2V0STE4bk1lc3NhZ2VzID0gKCkgPT4ge1xuXHRyZXR1cm4ge1xuXHRcdCdjaGFyYWN0ZXIocyknOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJyBjaGFyYWN0ZXIocyknLFxuXHRcdFx0J3poLWhhbnMnOiAn5a2X56ymJyxcblx0XHRcdCd6aC1oYW50JzogJ+Wtl+WFgycsXG5cdFx0fSksXG5cdFx0JygnOiBsb2NhbGl6ZSh7XG5cdFx0XHRlbjogJyAoJyxcblx0XHRcdHpoOiAn77yIJyxcblx0XHR9KSxcblx0XHQnKSc6IGxvY2FsaXplKHtcblx0XHRcdGVuOiAnKSAnLFxuXHRcdFx0emg6ICfvvIknLFxuXHRcdH0pLFxuXHRcdENKSzogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICcgQ0pLJyxcblx0XHRcdCd6aC1oYW5zJzogJ+S4qkNKS+Wtl+espicsXG5cdFx0XHQnemgtaGFudCc6ICfkuKpDSkvlrZflhYMnLFxuXHRcdH0pLFxuXHRcdCdieXRlKHMpIGluIFVURi04IGVuY29kaW5nJzogbG9jYWxpemUoe1xuXHRcdFx0ZW46ICdieXRlKHMpIGluIFVURi04IGVuY29kaW5nJyxcblx0XHRcdCd6aC1oYW5zJzogJ+Wtl+iKgu+8iFVURi0457yW56CB77yJJyxcblx0XHRcdCd6aC1oYW50JzogJ+S9jeWFg+e1hO+8iFVURi0457eo56K877yJJyxcblx0XHR9KSxcblx0fTtcbn07XG5jb25zdCBpMThuTWVzc2FnZXMgPSBnZXRJMThuTWVzc2FnZXMoKTtcblxuY29uc3QgZ2V0TWVzc2FnZTogR2V0TWVzc2FnZXM8dHlwZW9mIGkxOG5NZXNzYWdlcz4gPSAoa2V5KSA9PiB7XG5cdHJldHVybiBpMThuTWVzc2FnZXNba2V5XSB8fCBrZXk7XG59O1xuXG5leHBvcnQge2dldE1lc3NhZ2V9O1xuIiwgImltcG9ydCB7Y291bnRCeXRlfSBmcm9tICcuL3V0aWwvY291bnRCeXRlJztcbmltcG9ydCB7Y291bnRDSkt9IGZyb20gJy4vdXRpbC9jb3VudENKSyc7XG5pbXBvcnQge2NvdW50TGVuZ3RofSBmcm9tICcuL3V0aWwvY291bnRMZW5ndGgnO1xuaW1wb3J0IHtnZXRNZXNzYWdlfSBmcm9tICcuL2kxOG4nO1xuXG5jb25zdCBnZXRDb3VudEJ5VGV4dExlbmd0aCA9ICh0ZXh0OiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuXHRyZXR1cm4gYCR7Y291bnRMZW5ndGgodGV4dCl9JHtnZXRNZXNzYWdlKCdjaGFyYWN0ZXIocyknKX1gO1xufTtcblxuY29uc3QgZ2V0Q0pLQ291bnRCeVRleHRMZW5ndGggPSAodGV4dDogc3RyaW5nKTogc3RyaW5nID0+IHtcblx0cmV0dXJuIGAke2dldE1lc3NhZ2UoJygnKX0ke2NvdW50Q0pLKHRleHQpfSR7Z2V0TWVzc2FnZSgnQ0pLJyl9JHtnZXRNZXNzYWdlKCcpJyl9YDtcbn07XG5cbmNvbnN0IGdldFVURjhDb3VudEJ5VGV4dExlbmd0aCA9ICh0ZXh0OiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuXHRyZXR1cm4gYCR7Y291bnRCeXRlKHRleHQpfSR7Z2V0TWVzc2FnZSgnYnl0ZShzKSBpbiBVVEYtOCBlbmNvZGluZycpfWA7XG59O1xuXG5leHBvcnQge2dldENvdW50QnlUZXh0TGVuZ3RoLCBnZXRDSktDb3VudEJ5VGV4dExlbmd0aCwgZ2V0VVRGOENvdW50QnlUZXh0TGVuZ3RofTtcbiIsICJpbXBvcnQge2dldENKS0NvdW50QnlUZXh0TGVuZ3RoLCBnZXRDb3VudEJ5VGV4dExlbmd0aCwgZ2V0VVRGOENvdW50QnlUZXh0TGVuZ3RofSBmcm9tICcuLi9tb2R1bGVzL2dldENvdW50JztcbmltcG9ydCBSZWFjdCBmcm9tICdleHQuZ2FkZ2V0LkpTWCc7XG5pbXBvcnQge3RpcH0gZnJvbSAnLi9Xb3JkQ291bnQubW9kdWxlLmxlc3MnO1xuXG5pbnRlcmZhY2UgUHJvcHMge1xuXHR0ZXh0OiBzdHJpbmc7XG59XG5cbmNvbnN0IFdvcmRDb3VudCA9ICh7dGV4dH06IFByb3BzKSA9PiAoXG5cdDxkaXYgY2xhc3NOYW1lPXtbdGlwLCAnbm9wcmludCcsICd1aS1zdGF0ZS1oaWdobGlnaHQnLCAndWktY29ybmVyLWFsbCddfSBpZD1cImdhZGdldC13b3JkX2NvdW50LXRpcFwiPlxuXHRcdHtnZXRDb3VudEJ5VGV4dExlbmd0aCh0ZXh0KX1cblx0XHR7Z2V0Q0pLQ291bnRCeVRleHRMZW5ndGgodGV4dCl9XG5cdFx0PGJyIC8+XG5cdFx0e2dldFVURjhDb3VudEJ5VGV4dExlbmd0aCh0ZXh0KX1cblx0PC9kaXY+XG4pO1xuXG5leHBvcnQgZGVmYXVsdCBXb3JkQ291bnQ7XG4iLCAiaW1wb3J0IFwiZXNidWlsZC1jc3MtbW9kdWxlcy1wbHVnaW4tbnMtY3NzOnNyYy9Xb3JkQ291bnQvY29tcG9uZW50cy9Xb3JkQ291bnQubW9kdWxlLmxlc3NcIjtcbmV4cG9ydCBjb25zdCB0aXAgPSBcIldvcmRDb3VudC1tb2R1bGVfX3RpcF9IQkRuNWFfXzQ5MFwiO1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIFwidGlwXCI6IHRpcFxufTtcbiAgICAgICIsICJpbXBvcnQge3dvcmRDb3VudH0gZnJvbSAnLi93b3JkQ291bnQnO1xuXG5jb25zdCBhZGRMaXN0ZW5lciA9ICgkYm9keTogSlF1ZXJ5PEhUTUxCb2R5RWxlbWVudD4pOiB2b2lkID0+IHtcblx0aWYgKCdvbnRvdWNoc3RhcnQnIGluIGRvY3VtZW50KSB7XG5cdFx0JGJvZHkub24oJ3RvdWNoc3RhcnQgdG91Y2hlbmQnLCB7cGFzc2l2ZTogdHJ1ZX0sICgpOiB2b2lkID0+IHtcblx0XHRcdHdvcmRDb3VudCgkYm9keSk7XG5cdFx0fSk7XG5cdH0gZWxzZSB7XG5cdFx0JGJvZHkub24oJ21vdXNldXAga2V5dXAnLCAoKTogdm9pZCA9PiB7XG5cdFx0XHR3b3JkQ291bnQoJGJvZHkpO1xuXHRcdH0pO1xuXHR9XG59O1xuXG5leHBvcnQge2FkZExpc3RlbmVyfTtcbiIsICJpbXBvcnQge2FkZExpc3RlbmVyfSBmcm9tICcuL21vZHVsZXMvYWRkTGlzdGVuZXInO1xuaW1wb3J0IHtnZXRCb2R5fSBmcm9tICdleHQuZ2FkZ2V0LlV0aWwnO1xuXG52b2lkIGdldEJvZHkoKS50aGVuKGFkZExpc3RlbmVyKTtcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxxQkFBa0JDLFFBQUFDLFFBQUEsZ0JBQUEsR0FBQSxDQUFBOztBQ0FsQixJQUFNQyxjQUFlQyxVQUF5QjtBQUM3QyxTQUFPQSxLQUFLQztBQUNiOztBQ0FBLElBQU1DLFlBQWFGLFVBQXlCO0FBQzNDLFNBQU9ELFlBQ05DLEtBQ0VHLFFBQVEsb0JBQW9CLEdBQUcsRUFDL0JBLFFBQVEsaUNBQWlDLElBQUksRUFDN0NBLFFBQVEsaUNBQWlDLEtBQUssQ0FDakQ7QUFDRDs7QUNQQSxJQUFNQyxXQUFZSixVQUF5QjtBQUMxQyxTQUFPRCxZQUNOQyxLQUNFRyxRQUFRLE9BQU8sRUFBRSxFQUNqQkEsUUFDQSx3VEFDQSxHQUNELEVBQ0NBLFFBQVEsU0FBUyxFQUFFLENBQ3RCO0FBQ0Q7O0FDWkEsSUFBQUUsb0JBQXVCUCxRQUFBLGlCQUFBO0FBRXZCLElBQU1RLGtCQUFrQkEsTUFBTTtB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IFsiaW1wb3J0X2V4dF9nYWRnZXQzIiwgIl9fdG9FU00iLCAicmVxdWlyZSIsICJjb3VudExlbmd0aCIsICJ0ZXh0IiwgImxlbmd0aCIsICJjb3VudEJ5dGUiLCAicmVwbGFjZSIsICJjb3VudENKSyIsICJpbXBvcnRfZXh0X2dhZGdldCIsICJnZXRJMThuTWVzc2FnZXMiLCAibG9jYWxpemUiLCAiZW4iLCAiemgiLCAiQ0pLIiwgImkxOG5NZXNzYWdlcyIsICJnZXRNZXNzYWdlIiwgImtleSIsICJnZXRDb3VudEJ5VGV4dExlbmd0aCIsICJjb25jYXQiLCAiZ2V0Q0pLQ291bnRCeVRleHRMZW5ndGgiLCAiZ2V0VVRGOENvdW50QnlUZXh0TGVuZ3RoIiwgImltcG9ydF9leHRfZ2FkZ2V0MiIsICJ0aXAiLCAiV29yZENvdW50IiwgImRlZmF1bHQiLCAiY3JlYXRlRWxlbWVudCIsICJjbGFzc05hbWUiLCAiaWQiLCAiV29yZENvdW50X2RlZmF1bHQiLCAid29yZENvdW50IiwgIiRib2R5IiwgIl93aW5kb3ckZ2V0U2VsZWN0aW9uIiwgImZpbmQiLCAicmVtb3ZlIiwgIndpbmRvdyIsICJnZXRTZWxlY3Rpb24iLCAidG9TdHJpbmciLCAiJGVsZW1lbnQiLCAiJCIsICJhcHBlbmRUbyIsICJzZXRUaW1lb3V0IiwgImZhZGVPdXQiLCAiYWRkTGlzdGVuZXIiLCAiZG9jdW1lbnQiLCAib24iLCAicGFzc2l2ZSIsICJpbXBvcnRfZXh0X2dhZGdldDQiLCAiZ2V0Qm9keSIsICJ0aGVuIl0KfQo= diff --git a/dist/definition.txt b/dist/definition.txt index 0ffce37e7..7aadbc594 100644 --- a/dist/definition.txt +++ b/dist/definition.txt @@ -22,7 +22,7 @@ * NavboxCSS[ResourceLoader|default|hidden|requiresES6]|NavboxCSS.css * NospzGothic[ResourceLoader|default|requiresES6]|NospzGothic.css * OneSideMenu[ResourceLoader|skins=gongbi|requiresES6]|OneSideMenu.css -* QueryContributors[ResourceLoader|dependencies=ext.gadget.i18n,ext.gadget.React,ext.gadget.Util,mediawiki.api,mediawiki.util|requiresES6]|QueryContributors.js +* QueryContributors[ResourceLoader|dependencies=ext.gadget.i18n,ext.gadget.JSX,ext.gadget.Util,mediawiki.api,mediawiki.util|requiresES6]|QueryContributors.js * ResponsiveContent[ResourceLoader|actions=view|requiresES6]|ResponsiveContent.css * StickyTableHeaders[ResourceLoader|dependencies=ext.gadget.Util|skins=gongbi,vector,vector-2022|requiresES6]|StickyTableHeaders.js|StickyTableHeaders.css * TOC3-gongbi[ResourceLoader|skins=gongbi|requiresES6]|TOC3-gongbi.css @@ -32,71 +32,71 @@ == browser == * AddSectionPlus[ResourceLoader|dependencies=ext.gadget.Util|rights=edit|requiresES6]|AddSectionPlus.js|AddSectionPlus.css -* AjaxLogin[ResourceLoader|default|dependencies=ext.gadget.FilterAlteredClicks,ext.gadget.i18n,ext.gadget.React,ext.gadget.Toastify,ext.gadget.Util,mediawiki.api,mediawiki.util,oojs-ui-core,oojs-ui-windows,oojs-ui.styles.icons-interactions,oojs-ui.styles.icons-user|hidden|requiresES6]|AjaxLogin.js +* AjaxLogin[ResourceLoader|default|dependencies=ext.gadget.FilterAlteredClicks,ext.gadget.i18n,ext.gadget.JSX,ext.gadget.Toastify,ext.gadget.Util,mediawiki.api,mediawiki.util,oojs-ui-core,oojs-ui-windows,oojs-ui.styles.icons-interactions,oojs-ui.styles.icons-user|hidden|requiresES6]|AjaxLogin.js * AutoLink[ResourceLoader|dependencies=ext.gadget.Util,mediawiki.util|requiresES6]|AutoLink.js -* CodeLinks[ResourceLoader|default|dependencies=ext.gadget.React,ext.gadget.Util,mediawiki.util|rights=edit|requiresES6]|CodeLinks.js +* CodeLinks[ResourceLoader|default|dependencies=ext.gadget.JSX,ext.gadget.Util,mediawiki.util|rights=edit|requiresES6]|CodeLinks.js * CopyCodeBlock[ResourceLoader|actions=view|default|dependencies=ext.gadget.Clipboard,ext.gadget.i18n,ext.gadget.Tippy,ext.gadget.Toastify,mediawiki.util,oojs-ui-core,oojs-ui.styles.icons-editing-advanced|requiresES6]|CopyCodeBlock.js|CopyCodeBlock.css * DidYouMean[ResourceLoader|default|dependencies=ext.gadget.i18n,ext.gadget.Toastify,ext.gadget.Util,mediawiki.Title|requiresES6]|DidYouMean.js * DiffLink[ResourceLoader|dependencies=ext.gadget.i18n,ext.gadget.Toastify,ext.gadget.Util,mediawiki.api,mediawiki.util,mediawiki.widgets,oojs-ui-windows|requiresES6]|DiffLink.js -* EnhancedSpecialSearch[ResourceLoader|default|dependencies=ext.gadget.i18n,ext.gadget.React,ext.gadget.Util|requiresES6]|EnhancedSpecialSearch.js +* EnhancedSpecialSearch[ResourceLoader|default|dependencies=ext.gadget.i18n,ext.gadget.JSX,ext.gadget.Util|requiresES6]|EnhancedSpecialSearch.js * FloatTOC[ResourceLoader|actions=view|dependencies=ext.gadget.FilterAlteredClicks,ext.gadget.i18n,ext.gadget.Util,mediawiki.notification,mediawiki.storage,oojs-ui.styles.icons-editing-citation,oojs-ui.styles.icons-interactions,oojs-ui.styles.icons-movement|skins=citizen,vector|requiresES6]|FloatTOC.js|FloatTOC.css * FullwidthSearchFix[ResourceLoader|default|dependencies=ext.gadget.i18n,ext.gadget.Toastify,ext.gadget.Util,mediawiki.util|requiresES6]|FullwidthSearchFix.js * HideLongSummaries[ResourceLoader|dependencies=ext.gadget.i18n,ext.gadget.Util|requiresES6]|HideLongSummaries.js -* LinkSpacing[ResourceLoader|default|dependencies=ext.gadget.React|requiresES6]|LinkSpacing.js|LinkSpacing.css +* LinkSpacing[ResourceLoader|default|dependencies=ext.gadget.JSX|requiresES6]|LinkSpacing.js|LinkSpacing.css * PurgePageCache[ResourceLoader|dependencies=ext.gadget.i18n,ext.gadget.Toastify,ext.gadget.Util,mediawiki.api,mediawiki.util|rights=edit|requiresES6]|PurgePageCache.js -* ScrollUpButton[ResourceLoader|default|dependencies=ext.gadget.i18n,ext.gadget.React,ext.gadget.Tippy,ext.gadget.Util|peers=ScrollUpButton-pagestyles|requiresES6]|ScrollUpButton.js +* ScrollUpButton[ResourceLoader|default|dependencies=ext.gadget.i18n,ext.gadget.JSX,ext.gadget.Tippy,ext.gadget.Util|peers=ScrollUpButton-pagestyles|requiresES6]|ScrollUpButton.js * ScrollUpButton-pagestyles[ResourceLoader|hidden|requiresES6]|ScrollUpButton-pagestyles.css * SearchShortcuts[ResourceLoader|dependencies=ext.gadget.Util|requiresES6]|SearchShortcuts.js -* ShortURL[ResourceLoader|dependencies=ext.gadget.Clipboard,ext.gadget.i18n,ext.gadget.React,ext.gadget.Tippy,ext.gadget.Toastify,ext.gadget.Util,mediawiki.api,mediawiki.util,mediawiki.widgets,oojs-ui-windows,oojs-ui.styles.icons-editing-core|peers=ShortURL-pagestyles|requiresES6]|ShortURL.js +* ShortURL[ResourceLoader|dependencies=ext.gadget.Clipboard,ext.gadget.i18n,ext.gadget.JSX,ext.gadget.Tippy,ext.gadget.Toastify,ext.gadget.Util,mediawiki.api,mediawiki.util,mediawiki.widgets,oojs-ui-windows,oojs-ui.styles.icons-editing-core|peers=ShortURL-pagestyles|requiresES6]|ShortURL.js * ShortURL-pagestyles[ResourceLoader|hidden|requiresES6]|ShortURL-pagestyles.css * SmoothTOC[ResourceLoader|default|dependencies=ext.gadget.Util|skins=gongbi,vector,vector-2022|requiresES6]|SmoothTOC.js * TextSpacing[ResourceLoader|dependencies=ext.gadget.Util|requiresES6]|TextSpacing.js|TextSpacing.css * UTCLiveClock[ResourceLoader|dependencies=ext.gadget.i18n,ext.gadget.PurgePageCache,ext.gadget.Toastify,ext.gadget.Util,mediawiki.api,mediawiki.util|requiresES6]|UTCLiveClock.js|UTCLiveClock.css -* WordCount[ResourceLoader|actions=view|dependencies=ext.gadget.i18n,ext.gadget.React,ext.gadget.Util|requiresES6]|WordCount.js|WordCount.css +* WordCount[ResourceLoader|actions=view|dependencies=ext.gadget.i18n,ext.gadget.JSX,ext.gadget.Util|requiresES6]|WordCount.js|WordCount.css == compatibility == -* AccessKeyCheatsheet[ResourceLoader|dependencies=ext.gadget.i18n,ext.gadget.React,ext.gadget.Util,oojs-ui-windows|requiresES6]|AccessKeyCheatsheet.js -* AdvancedSiteNotices[ResourceLoader|actions=view|default|dependencies=ext.gadget.i18n,ext.gadget.React,ext.gadget.Tippy,ext.gadget.Util,mediawiki.api,mediawiki.storage|peers=AdvancedSiteNotices-pagestyles|requiresES6]|AdvancedSiteNotices.js +* AccessKeyCheatsheet[ResourceLoader|dependencies=ext.gadget.i18n,ext.gadget.JSX,ext.gadget.Util,oojs-ui-windows|requiresES6]|AccessKeyCheatsheet.js +* AdvancedSiteNotices[ResourceLoader|actions=view|default|dependencies=ext.gadget.i18n,ext.gadget.JSX,ext.gadget.Tippy,ext.gadget.Util,mediawiki.api,mediawiki.storage|peers=AdvancedSiteNotices-pagestyles|requiresES6]|AdvancedSiteNotices.js * AdvancedSiteNotices-pagestyles[ResourceLoader|hidden|requiresES6]|AdvancedSiteNotices-pagestyles.css * ChineseDays[ResourceLoader|hidden|requiresES6]|ChineseDays.js * Clipboard[ResourceLoader|hidden|requiresES6]|Clipboard.js -* Collapsible[ResourceLoader|default|dependencies=ext.gadget.i18n,ext.gadget.React,ext.gadget.Util|hidden|peers=NavFrame-pagestyles|requiresES6]|Collapsible.js|Collapsible.css +* Collapsible[ResourceLoader|default|dependencies=ext.gadget.i18n,ext.gadget.JSX,ext.gadget.Util|hidden|peers=NavFrame-pagestyles|requiresES6]|Collapsible.js|Collapsible.css * ConfirmLogout[ResourceLoader|default|dependencies=ext.gadget.FilterAlteredClicks,ext.gadget.i18n,ext.gadget.Toastify,ext.gadget.Util,mediawiki.api,mediawiki.util,oojs-ui-windows|rights=edit|requiresES6]|ConfirmLogout.js -* CookieWarning[ResourceLoader|default|dependencies=ext.gadget.i18n,ext.gadget.React,ext.gadget.Util,mediawiki.storage,mediawiki.util|requiresES6]|CookieWarning.js|CookieWarning.css +* CookieWarning[ResourceLoader|default|dependencies=ext.gadget.i18n,ext.gadget.JSX,ext.gadget.Util,mediawiki.storage,mediawiki.util|requiresES6]|CookieWarning.js|CookieWarning.css * FilterAlteredClicks[ResourceLoader|hidden|requiresES6]|FilterAlteredClicks.js * Geo[ResourceLoader|dependencies=mediawiki.storage|hidden|requiresES6]|Geo.js * GeoLocation[ResourceLoader|dependencies=ext.gadget.Geo,ext.gadget.i18n,ext.gadget.Util,mediawiki.api|requiresES6]|GeoLocation.js -* GeoLocationReader[ResourceLoader|default|dependencies=ext.gadget.i18n,ext.gadget.MarkRights,ext.gadget.React,ext.gadget.Util,mediawiki.api,mediawiki.Title|namespaces=2|peers=GeoLocationReader-pagestyles|rights=edit|requiresES6]|GeoLocationReader.js +* GeoLocationReader[ResourceLoader|default|dependencies=ext.gadget.i18n,ext.gadget.JSX,ext.gadget.MarkRights,ext.gadget.Util,mediawiki.api,mediawiki.Title|namespaces=2|peers=GeoLocationReader-pagestyles|rights=edit|requiresES6]|GeoLocationReader.js * GeoLocationReader-pagestyles[ResourceLoader|hidden|requiresES6]|GeoLocationReader-pagestyles.css -* HistoryDisclaimer[ResourceLoader|default|dependencies=ext.gadget.React|hidden|requiresES6]|HistoryDisclaimer.js|HistoryDisclaimer.css +* HistoryDisclaimer[ResourceLoader|default|dependencies=ext.gadget.JSX|hidden|requiresES6]|HistoryDisclaimer.js|HistoryDisclaimer.css * i18n[ResourceLoader|dependencies=ext.gadget.Util|hidden|requiresES6]|i18n.js +* JSX[ResourceLoader|hidden|requiresES6]|JSX.js * MemorialDay[ResourceLoader|default|dependencies=ext.gadget.MemorialDay-settings,ext.gadget.Util|hidden|requiresES6]|MemorialDay.js|MemorialDay.css * MemorialDay-settings[ResourceLoader|hidden|requiresES6]|MemorialDay-settings.js * morebits[ResourceLoader|dependencies=ext.gadget.select2,ext.gadget.Util,jquery.ui,mediawiki.Title,mediawiki.user,mediawiki.util|hidden|requiresES6]|morebits.js|morebits.css * NavFrame-pagestyles[ResourceLoader|hidden|requiresES6]|NavFrame-pagestyles.css -* NoteTA[ResourceLoader|default|dependencies=ext.gadget.i18n,ext.gadget.React,ext.gadget.Util,jquery.makeCollapsible,mediawiki.api,oojs-ui-core,oojs-ui-windows|hidden|peers=NoteTA-pagestyles|requiresES6]|NoteTA.js +* NoteTA[ResourceLoader|default|dependencies=ext.gadget.i18n,ext.gadget.JSX,ext.gadget.Util,jquery.makeCollapsible,mediawiki.api,oojs-ui-core,oojs-ui-windows|hidden|peers=NoteTA-pagestyles|requiresES6]|NoteTA.js * NoteTA-pagestyles[ResourceLoader|hidden|requiresES6]|NoteTA-pagestyles.css * PrintOptions[ResourceLoader|dependencies=ext.gadget.i18n,ext.gadget.Util,mediawiki.util,oojs-ui-core,oojs-ui-widgets,oojs-ui-windows|requiresES6]|PrintOptions.js -* React[ResourceLoader|hidden|requiresES6]|React.js * select2[ResourceLoader|dependencies=jquery|hidden|requiresES6]|select2.js|select2.css * SiteCommon[ResourceLoader|default|hidden|requiresES6]|SiteCommon.css * SiteCommon_Filepage[ResourceLoader|default|hidden|requiresES6]|SiteCommon_Filepage.css -* SiteCommon_JS[ResourceLoader|default|dependencies=ext.gadget.i18n,ext.gadget.React,ext.gadget.Tippy,ext.gadget.Util,mediawiki.Title,mediawiki.util|hidden|peers=SiteCommon|requiresES6]|SiteCommon_JS.js -* SpecialWikitext[ResourceLoader|default|dependencies=ext.gadget.i18n,ext.gadget.React,ext.gadget.Util,mediawiki.api,mediawiki.util|hidden|requiresES6]|SpecialWikitext.js|SpecialWikitext.css +* SiteCommon_JS[ResourceLoader|default|dependencies=ext.gadget.i18n,ext.gadget.JSX,ext.gadget.Tippy,ext.gadget.Util,mediawiki.Title,mediawiki.util|hidden|peers=SiteCommon|requiresES6]|SiteCommon_JS.js +* SpecialWikitext[ResourceLoader|default|dependencies=ext.gadget.i18n,ext.gadget.JSX,ext.gadget.Util,mediawiki.api,mediawiki.util|hidden|requiresES6]|SpecialWikitext.js|SpecialWikitext.css * Switcher[ResourceLoader|default|dependencies=ext.gadget.i18n,ext.gadget.Util|hidden|requiresES6]|Switcher.js * Tippy[ResourceLoader|hidden|requiresES6]|Tippy.js|Tippy.css * Toastify[ResourceLoader|hidden|requiresES6]|Toastify.js|Toastify.css -* Util[ResourceLoader|dependencies=ext.gadget.React,jquery.textSelection,mediawiki.storage|hidden|requiresES6]|Util.js +* Util[ResourceLoader|dependencies=ext.gadget.JSX,jquery.textSelection,mediawiki.storage|hidden|requiresES6]|Util.js == edit == -* Cat-a-lot[ResourceLoader|actions=view|dependencies=ext.gadget.React,ext.gadget.Util,jquery.ui,mediawiki.jqueryMsg,mediawiki.util|peers=Cat-a-lot-pagestyles|rights=skipcaptcha|requiresES6]|Cat-a-lot.js +* Cat-a-lot[ResourceLoader|actions=view|dependencies=ext.gadget.JSX,ext.gadget.Util,jquery.ui,mediawiki.jqueryMsg,mediawiki.util|peers=Cat-a-lot-pagestyles|rights=skipcaptcha|requiresES6]|Cat-a-lot.js * Cat-a-lot-pagestyles[ResourceLoader|hidden|requiresES6]|Cat-a-lot-pagestyles.css * DefaultSummaries[ResourceLoader|default|dependencies=ext.gadget.i18n,ext.gadget.Util,oojs-ui-core|rights=edit|requiresES6]|DefaultSummaries.js * DisamAssist[ResourceLoader|dependencies=ext.gadget.Util,mediawiki.api,mediawiki.Title|rights=skipcaptcha|requiresES6]|DisamAssist.js|DisamAssist.css * DisambigLinks[ResourceLoader|requiresES6]|DisambigLinks.css -* EasyArchive[ResourceLoader|actions=view|dependencies=ext.gadget.i18n,ext.gadget.React,ext.gadget.Toastify,ext.gadget.Util,mediawiki.Title|rights=skipcaptcha|requiresES6]|EasyArchive.js|EasyArchive.css +* EasyArchive[ResourceLoader|actions=view|dependencies=ext.gadget.i18n,ext.gadget.JSX,ext.gadget.Toastify,ext.gadget.Util,mediawiki.Title|rights=skipcaptcha|requiresES6]|EasyArchive.js|EasyArchive.css * Edit0[ResourceLoader|actions=view|dependencies=ext.gadget.i18n,ext.gadget.Util|rights=edit|requiresES6]|Edit0.js|Edit0.css -* EditConflict[ResourceLoader|actions=edit|default|dependencies=ext.gadget.i18n,ext.gadget.React,ext.gadget.Toastify,ext.gadget.Util,mediawiki.api|rights=edit|requiresES6]|EditConflict.js +* EditConflict[ResourceLoader|actions=edit|default|dependencies=ext.gadget.i18n,ext.gadget.JSX,ext.gadget.Toastify,ext.gadget.Util,mediawiki.api|rights=edit|requiresES6]|EditConflict.js * EditCount[ResourceLoader|rights=edit|skins=gongbi,vector,vector-2022|requiresES6]|EditCount.js * EditForm[ResourceLoader|hidden|rights=edit|requiresES6]|EditForm.css * Editform_AiAssisted[ResourceLoader|default|dependencies=ext.gadget.i18n,ext.gadget.Util,mediawiki.util,oojs-ui-core|rights=edit|requiresES6]|Editform_AiAssisted.js @@ -132,24 +132,24 @@ * BanPage[ResourceLoader|default|dependencies=ext.gadget.i18n,ext.gadget.Toastify,ext.gadget.Util,mediawiki.api,mediawiki.util|rights=skipcaptcha|requiresES6]|BanPage.js * HRTProtectLink[ResourceLoader|dependencies=ext.gadget.i18n,ext.gadget.Util,mediawiki.util|rights=protect|requiresES6]|HRTProtectLink.js * ListUsersLastActive[ResourceLoader|dependencies=ext.gadget.i18n,ext.gadget.Util,mediawiki.api|rights=protect|requiresES6]|ListUsersLastActive.js -* LogFilter[ResourceLoader|dependencies=ext.gadget.React,ext.gadget.Util,mediawiki.util|rights=edit|requiresES6]|LogFilter.js|LogFilter.css +* LogFilter[ResourceLoader|dependencies=ext.gadget.JSX,ext.gadget.Util,mediawiki.util|rights=edit|requiresES6]|LogFilter.js|LogFilter.css * MarkBlocked[ResourceLoader|dependencies=ext.gadget.i18n,ext.gadget.Util,mediawiki.api,mediawiki.util|requiresES6]|MarkBlocked.js|MarkBlocked.css * MarkRights[ResourceLoader|dependencies=ext.gadget.i18n,ext.gadget.Util,mediawiki.api,mediawiki.util|peers=MarkRights-pagestyles|requiresES6]|MarkRights.js * MarkRights-pagestyles[ResourceLoader|hidden|requiresES6]|MarkRights-pagestyles.css -* MarkRights-Userpage[ResourceLoader|dependencies=ext.gadget.i18n,ext.gadget.MarkRights,ext.gadget.React,ext.gadget.Util,mediawiki.api,mediawiki.Title|peers=MarkRights-Userpage-pagestyles|requiresES6]|MarkRights-Userpage.js +* MarkRights-Userpage[ResourceLoader|dependencies=ext.gadget.i18n,ext.gadget.JSX,ext.gadget.MarkRights,ext.gadget.Util,mediawiki.api,mediawiki.Title|peers=MarkRights-Userpage-pagestyles|requiresES6]|MarkRights-Userpage.js * MarkRights-Userpage-pagestyles[ResourceLoader|hidden|requiresES6]|MarkRights-Userpage-pagestyles.css -* OnlineAdmins[ResourceLoader|dependencies=ext.gadget.i18n,ext.gadget.React,ext.gadget.Util,mediawiki.api,mediawiki.util|requiresES6]|OnlineAdmins.js|OnlineAdmins.css -* PagePatroller[ResourceLoader|default|dependencies=ext.gadget.i18n,ext.gadget.React,ext.gadget.Util,mediawiki.api,mediawiki.util|rights=autopatrol,patrol|requiresES6]|PagePatroller.js -* QuickPatrol[ResourceLoader|dependencies=ext.gadget.i18n,ext.gadget.React,ext.gadget.Util,mediawiki.api,mediawiki.util|rights=patrol|requiresES6]|QuickPatrol.js -* Report[ResourceLoader|default|dependencies=ext.gadget.i18n,ext.gadget.React,ext.gadget.Tippy,ext.gadget.Util,mediawiki.util|peers=Report-pagestyles|requiresES6]|Report.js +* OnlineAdmins[ResourceLoader|dependencies=ext.gadget.i18n,ext.gadget.JSX,ext.gadget.Util,mediawiki.api,mediawiki.util|requiresES6]|OnlineAdmins.js|OnlineAdmins.css +* PagePatroller[ResourceLoader|default|dependencies=ext.gadget.i18n,ext.gadget.JSX,ext.gadget.Util,mediawiki.api,mediawiki.util|rights=autopatrol,patrol|requiresES6]|PagePatroller.js +* QuickPatrol[ResourceLoader|dependencies=ext.gadget.i18n,ext.gadget.JSX,ext.gadget.Util,mediawiki.api,mediawiki.util|rights=patrol|requiresES6]|QuickPatrol.js +* Report[ResourceLoader|default|dependencies=ext.gadget.i18n,ext.gadget.JSX,ext.gadget.Tippy,ext.gadget.Util,mediawiki.util|peers=Report-pagestyles|requiresES6]|Report.js * Report-pagestyles[ResourceLoader|hidden|requiresES6]|Report-pagestyles.css * RightTopicons[ResourceLoader|requiresES6]|RightTopicons.js * RollbackSummary[ResourceLoader|default|dependencies=ext.gadget.FilterAlteredClicks,ext.gadget.i18n,mediawiki.util|rights=rollback|requiresES6]|RollbackSummary.js -* RRD[ResourceLoader|dependencies=ext.gadget.i18n,ext.gadget.React,ext.gadget.Util,jquery.ui,mediawiki.api,mediawiki.util|rights=skipcaptcha|requiresES6]|RRD.js|RRD.css -* TranslateVariants[ResourceLoader|dependencies=ext.gadget.i18n,ext.gadget.React,ext.gadget.Util,mediawiki.api,mediawiki.diff.styles,mediawiki.util|rights=editinterface|requiresES6]|TranslateVariants.js|TranslateVariants.css +* RRD[ResourceLoader|dependencies=ext.gadget.i18n,ext.gadget.JSX,ext.gadget.Util,jquery.ui,mediawiki.api,mediawiki.util|rights=skipcaptcha|requiresES6]|RRD.js|RRD.css +* TranslateVariants[ResourceLoader|dependencies=ext.gadget.i18n,ext.gadget.JSX,ext.gadget.Util,mediawiki.api,mediawiki.diff.styles,mediawiki.util|rights=editinterface|requiresES6]|TranslateVariants.js|TranslateVariants.css * Twinkle[ResourceLoader|dependencies=ext.gadget.i18n,ext.gadget.morebits,ext.gadget.select2,ext.gadget.Util,mediawiki.api,mediawiki.language|rights=skipcaptcha|requiresES6]|Twinkle.js|Twinkle.css * UserRightsManager[ResourceLoader|dependencies=ext.gadget.i18n,ext.gadget.morebits,ext.gadget.Util,mediawiki.api,mediawiki.widgets.expiry,mediawiki.widgets.SelectWithInputWidget,oojs|rights=protect|requiresES6]|UserRightsManager.js -* WhoIsActive[ResourceLoader|dependencies=ext.gadget.i18n,ext.gadget.React,ext.gadget.Util,mediawiki.api,mediawiki.Title,mediawiki.util|peers=WhoIsActive-pagestyles|requiresES6]|WhoIsActive.js +* WhoIsActive[ResourceLoader|dependencies=ext.gadget.i18n,ext.gadget.JSX,ext.gadget.Util,mediawiki.api,mediawiki.Title,mediawiki.util|peers=WhoIsActive-pagestyles|requiresES6]|WhoIsActive.js * WhoIsActive-pagestyles[ResourceLoader|hidden|requiresES6]|WhoIsActive-pagestyles.css == usergroup == diff --git a/docs/how-to-use-jsx-and-tsx-with-jsxdom.md b/docs/how-to-use-jsx-and-tsx-with-jsxdom.md index b010e5324..472e954d7 100644 --- a/docs/how-to-use-jsx-and-tsx-with-jsxdom.md +++ b/docs/how-to-use-jsx-and-tsx-with-jsxdom.md @@ -33,31 +33,31 @@ document.body.append( #### 目标 MediaWiki 的版本不低于 1.38
The target MediaWiki version is at least 1.38 -1. 根据实际情况修改`src/React`文件夹中的以下文件
According to actual needs, modify some files in the `src/React` folder +1. 根据实际情况修改`src/JSX`文件夹中的以下文件
According to actual needs, modify some files in the `src/JSX` folder - - `React.ts` + - `JSX.ts` - `modules/global.d.ts` - `definition.json`(将`enable`属性改为`true`)/ (change `enable` property to `true`) -2. 在小工具对应的`definition.json`中,将`ext.gadget.React`添加为依赖项(`dependencies`)
In the corresponding `definition.json` of the gadget, add the `ext.gadget.React` as a dependency +2. 在小工具对应的`definition.json`中,将`ext.gadget.JSX`添加为依赖项(`dependencies`)
In the corresponding `definition.json` of the gadget, add the `ext.gadget.JSX` as a dependency ```jsonc { - "dependencies": ["ext.gadget.React"], + "dependencies": ["ext.gadget.JSX"], // Other properties... } ``` -3. 在 JSX 或 TSX 中,使用`import`导入`ext.gadget.React`
In the place where you need to use `jsx-dom`, import it using `import` +3. 在 JSX 或 TSX 中,使用`import`导入`ext.gadget.JSX`
In the place where you need to use `jsx-dom`, import it using `import` ```ts -import React from 'ext.gadget.React'; +import React from 'ext.gadget.JSX'; ``` 现在,你可以使用 JSX 或 TSX 语法来创建 DOM 元素,并使用样式化组件来创建组件。
Now you can use JSX or TSX syntax to create DOM elements and use styled components to create components. ```tsx -import React, {styled} from 'ext.gadget.React'; +import React, {styled} from 'ext.gadget.JSX'; const Header = styled.h2` font-size: 1.5em; diff --git a/docs/how-to-use-vue.md b/docs/how-to-use-vue.md index fd88164d2..09944d93c 100644 --- a/docs/how-to-use-vue.md +++ b/docs/how-to-use-vue.md @@ -55,6 +55,8 @@ createMwApp(App).mount(root); #### 特别说明
Notes +- Vue 组件中需要临时将 TypeScript 的版本从“使用工作区版本”切换至“使用 VS Code 的版本”
In the Vue component, you need to temporarily switch the TypeScript version from "Use Workspace Version" to "Use VSCode's Version" + - https://code.visualstudio.com/docs/typescript/typescript-compiling#_using-newer-typescript-versions - `vue`和`pinia`已经内置在仓库中,无需额外安装
`vue` and `pinia` are already built into the repository, no need to install - `@wikimedia/codex`等其他 Vue 相关的组件包需要额外按需安装
Other Vue-related components need to be installed separately - Vue 组件中可以使用 Less 样式语法和 Pug 模板语法
Vue components can use Less style syntax and Pug template syntax diff --git a/package.json b/package.json index fc4117416..f2c3ba301 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "awesome-gadgets", - "version": "4.8.7", + "version": "4.9.0", "description": "Storage, management, compilation, and automatic deployment of MediaWiki gadgets.", "private": true, "type": "module", @@ -77,7 +77,7 @@ "@types/eslint": "^8.56.12", "@types/jquery": "^3.5.32", "@types/jqueryui": "^1.12.23", - "@types/less": "^3.0.7", + "@types/less": "^3.0.8", "@types/minimist": "^1.2.5", "@types/node": "^22.13.0", "@types/oojs": "^7.0.7", @@ -87,7 +87,7 @@ "@typescript-eslint/parser": "^8.22.0", "@vue/eslint-config-prettier": "^9.0.0", "@vue/eslint-config-typescript": "^13.0.0", - "@vue/language-plugin-pug": "2.0.19", + "@vue/language-plugin-pug": "^2.2.0", "alpha-sort": "^5.0.0", "broadcastchannel-polyfill": "^1.0.1", "browserslist": "^4.24.4", @@ -95,9 +95,9 @@ "chalk": "^5.4.1", "core-js": "^3.40.0", "esbuild": "^0.24.2", - "esbuild-css-modules-plugin": "3.1.2", + "esbuild-css-modules-plugin": "^3.1.4", "esbuild-plugin-less": "^1.3.14", - "esbuild-plugin-vue3": "0.4.1", + "esbuild-plugin-vue3": "^0.4.2", "esbuild-postcss": "^0.0.4", "eslint": "^8.57.1", "eslint-config-prettier": "^10.0.1", @@ -118,7 +118,7 @@ "mwn": "^2.0.4", "only-allow": "^1.2.1", "p-queue": "^8.1.0", - "pinia": "2.2.4", + "pinia": "^2.3.1", "postcss": "^8.5.1", "postcss-import": "^16.1.0", "postcss-load-config": "^6.0.1", @@ -128,7 +128,7 @@ "proxy-polyfill": "^0.3.2", "pug": "^3.0.3", "rimraf": "^6.0.1", - "stylelint": "16.12.0", + "stylelint": "^16.14.1", "stylelint-config-css-modules": "^4.4.0", "stylelint-config-wikimedia": "^0.18.0", "tsx": "^4.19.2", @@ -136,18 +136,14 @@ "typescript": "^5.7.3", "typescript-plugin-css-modules": "^5.1.0", "unorm": "^1.6.0", - "vue": "3.3.9", + "vue": "^3.5.13", "vue-eslint-parser": "^9.4.3", - "vue-tsc": "2.0.19" + "vue-tsc": "^2.2.0" }, "pnpm": { "overrides": { "@types/oojs-ui": "latest", "@typescript-eslint/utils": "$@typescript-eslint/eslint-plugin", - "@vue/compiler-core": "$vue", - "@vue/compiler-dom": "$vue", - "@vue/compiler-sfc": "$vue", - "@vue/shared": "$vue", "browserslist-config-wikimedia": "latest", "emoji-regex": "latest", "eslint-config-wikimedia": "$eslint-config-wikimedia", @@ -157,11 +153,11 @@ "stylelint-config-wikimedia": "$stylelint-config-wikimedia" }, "patchedDependencies": { - "alpha-sort@5.0.0": "patches/alpha-sort@5.0.0.patch", - "esbuild-css-modules-plugin@3.1.2": "patches/esbuild-css-modules-plugin@3.1.2.patch", - "eslint-config-wikimedia@0.28.2": "patches/eslint-config-wikimedia@0.28.2.patch", - "eslint-plugin-no-jquery@3.1.0": "patches/eslint-plugin-no-jquery@3.1.0.patch", - "types-mediawiki@1.9.1": "patches/types-mediawiki@1.9.1.patch" + "alpha-sort": "patches/alpha-sort.patch", + "esbuild-css-modules-plugin": "patches/esbuild-css-modules-plugin.patch", + "eslint-config-wikimedia": "patches/eslint-config-wikimedia.patch", + "eslint-plugin-no-jquery": "patches/eslint-plugin-no-jquery.patch", + "types-mediawiki": "patches/types-mediawiki.patch" } } } diff --git a/patches/alpha-sort@5.0.0.patch b/patches/alpha-sort.patch similarity index 100% rename from patches/alpha-sort@5.0.0.patch rename to patches/alpha-sort.patch diff --git a/patches/esbuild-css-modules-plugin.patch b/patches/esbuild-css-modules-plugin.patch new file mode 100644 index 000000000..a36d8eb96 --- /dev/null +++ b/patches/esbuild-css-modules-plugin.patch @@ -0,0 +1,13 @@ +diff --git a/lib/css.helper.js b/lib/css.helper.js +index f527b34d8d8e900633cf0863f29f30d375c70727..ec91e2e355bcc13a305fa74b30d4f6536abc6434 100644 +--- a/lib/css.helper.js ++++ b/lib/css.helper.js +@@ -271,7 +271,7 @@ ${uniqNames.map(([o, l]) => ` "${o}": ${l}`).join(',\n')} + filename: fullpath, + cssModules: { + dashedIdents: options?.dashedIndents, +- pattern: options?.pattern ?? `${opt?.prefix ?? ''}__[local]_[hash]__${opt?.suffix ?? ''}` ++ pattern: options?.pattern ?? `${opt?.prefix ? `${opt.prefix}__` : ''}[local]_[hash]${opt?.suffix ? `__${opt.suffix}` : ''}` + }, + drafts: { + customMedia: true, diff --git a/patches/esbuild-css-modules-plugin@3.1.2.patch b/patches/esbuild-css-modules-plugin@3.1.2.patch deleted file mode 100644 index 49774fdb9..000000000 --- a/patches/esbuild-css-modules-plugin@3.1.2.patch +++ /dev/null @@ -1,39 +0,0 @@ -diff --git a/index.d.ts b/index.d.ts -index f471fcb1b5446e04e357519a71ea26a356d080a2..7e39c042f7e48aadc3beda470a25c73815037550 100644 ---- a/index.d.ts -+++ b/index.d.ts -@@ -97,13 +97,13 @@ declare interface BuildOptions - * @default "camelCaseOnly" - */ - localsConvention?: 'camelCase' | 'pascalCase' | 'camelCaseOnly' | 'pascalCaseOnly'; -- /** -+ /** - * Features that should always be compiled, even when supported by targets. - * @see https://lightningcss.dev/transpilation.html#feature-flags - */ - featuresInclude?: BundleOptions['include']; - /** -- * Features that should never be compiled, even when unsupported by targets. -+ * Features that should never be compiled, even when unsupported by targets. - * @see https://lightningcss.dev/transpilation.html#feature-flags - */ - featuresExclude?: BundleOptions['exclude']; -@@ -155,4 +155,4 @@ declare namespace CssModulesPlugin { - } - } - --export = CssModulesPlugin; -+export default CssModulesPlugin; -diff --git a/lib/css.helper.js b/lib/css.helper.js -index f527b34d8d8e900633cf0863f29f30d375c70727..5ffbe08e99b42d3d32f74747098719dc832e7615 100644 ---- a/lib/css.helper.js -+++ b/lib/css.helper.js -@@ -271,7 +271,7 @@ ${uniqNames.map(([o, l]) => ` "${o}": ${l}`).join(',\n')} - filename: fullpath, - cssModules: { - dashedIdents: options?.dashedIndents, -- pattern: options?.pattern ?? `${opt?.prefix ?? ''}__[local]_[hash]__${opt?.suffix ?? ''}` -+ pattern: options?.pattern ?? `${opt?.prefix ?? ''}__[local]_[hash]` - }, - drafts: { - customMedia: true, diff --git a/patches/eslint-config-wikimedia@0.28.2.patch b/patches/eslint-config-wikimedia.patch similarity index 100% rename from patches/eslint-config-wikimedia@0.28.2.patch rename to patches/eslint-config-wikimedia.patch diff --git a/patches/eslint-plugin-no-jquery@3.1.0.patch b/patches/eslint-plugin-no-jquery.patch similarity index 100% rename from patches/eslint-plugin-no-jquery@3.1.0.patch rename to patches/eslint-plugin-no-jquery.patch diff --git a/patches/types-mediawiki@1.9.1.patch b/patches/types-mediawiki.patch similarity index 100% rename from patches/types-mediawiki@1.9.1.patch rename to patches/types-mediawiki.patch diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0688aa26a..b6a32af6d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,10 +7,6 @@ settings: overrides: '@types/oojs-ui': latest '@typescript-eslint/utils': ^8.22.0 - '@vue/compiler-core': 3.3.9 - '@vue/compiler-dom': 3.3.9 - '@vue/compiler-sfc': 3.3.9 - '@vue/shared': 3.3.9 browserslist-config-wikimedia: latest emoji-regex: latest eslint-config-wikimedia: ^0.28.2 @@ -20,21 +16,21 @@ overrides: stylelint-config-wikimedia: ^0.18.0 patchedDependencies: - alpha-sort@5.0.0: + alpha-sort: hash: soz2x3l6v7xocle4w7vguzc5ha - path: patches/alpha-sort@5.0.0.patch - esbuild-css-modules-plugin@3.1.2: - hash: lqqqhncujf5ztq67wxplcoxzsm - path: patches/esbuild-css-modules-plugin@3.1.2.patch - eslint-config-wikimedia@0.28.2: + path: patches/alpha-sort.patch + esbuild-css-modules-plugin: + hash: naix6jn47epfc4wru5wtuz5k5i + path: patches/esbuild-css-modules-plugin.patch + eslint-config-wikimedia: hash: iaiepfmd777wt5zivqax6j6mj4 - path: patches/eslint-config-wikimedia@0.28.2.patch - eslint-plugin-no-jquery@3.1.0: + path: patches/eslint-config-wikimedia.patch + eslint-plugin-no-jquery: hash: j5tec5l4ch3r5tyouixtzytkrm - path: patches/eslint-plugin-no-jquery@3.1.0.patch - types-mediawiki@1.9.1: + path: patches/eslint-plugin-no-jquery.patch + types-mediawiki: hash: vq7dw26e2dx4lkf63ka2w3gisu - path: patches/types-mediawiki@1.9.1.patch + path: patches/types-mediawiki.patch importers: @@ -126,8 +122,8 @@ importers: specifier: ^1.12.23 version: 1.12.23 '@types/less': - specifier: ^3.0.7 - version: 3.0.7 + specifier: ^3.0.8 + version: 3.0.8 '@types/minimist': specifier: ^1.2.5 version: 1.2.5 @@ -156,8 +152,8 @@ importers: specifier: ^13.0.0 version: 13.0.0(eslint-plugin-vue@9.32.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.7.3) '@vue/language-plugin-pug': - specifier: 2.0.19 - version: 2.0.19 + specifier: ^2.2.0 + version: 2.2.0 alpha-sort: specifier: ^5.0.0 version: 5.0.0(patch_hash=soz2x3l6v7xocle4w7vguzc5ha) @@ -180,14 +176,14 @@ importers: specifier: ^0.24.2 version: 0.24.2 esbuild-css-modules-plugin: - specifier: 3.1.2 - version: 3.1.2(patch_hash=lqqqhncujf5ztq67wxplcoxzsm)(esbuild@0.24.2) + specifier: ^3.1.4 + version: 3.1.4(patch_hash=naix6jn47epfc4wru5wtuz5k5i)(esbuild@0.24.2) esbuild-plugin-less: specifier: ^1.3.14 version: 1.3.14(esbuild@0.24.2) esbuild-plugin-vue3: - specifier: 0.4.1 - version: 0.4.1(pug@3.0.3)(sass@1.83.4) + specifier: ^0.4.2 + version: 0.4.2(pug@3.0.3)(sass@1.83.4)(vue@3.5.13(typescript@5.7.3)) esbuild-postcss: specifier: ^0.0.4 version: 0.0.4(esbuild@0.24.2)(postcss@8.5.1) @@ -249,8 +245,8 @@ importers: specifier: ^8.1.0 version: 8.1.0 pinia: - specifier: 2.2.4 - version: 2.2.4(typescript@5.7.3)(vue@3.3.9(typescript@5.7.3)) + specifier: ^2.3.1 + version: 2.3.1(typescript@5.7.3)(vue@3.5.13(typescript@5.7.3)) postcss: specifier: ^8.5.1 version: 8.5.1 @@ -279,11 +275,11 @@ importers: specifier: ^6.0.1 version: 6.0.1 stylelint: - specifier: 16.12.0 - version: 16.12.0(typescript@5.7.3) + specifier: ^16.14.1 + version: 16.14.1(typescript@5.7.3) stylelint-config-css-modules: specifier: ^4.4.0 - version: 4.4.0(stylelint@16.12.0(typescript@5.7.3)) + version: 4.4.0(stylelint@16.14.1(typescript@5.7.3)) stylelint-config-wikimedia: specifier: ^0.18.0 version: 0.18.0(postcss-less@6.0.0(postcss@8.5.1))(typescript@5.7.3) @@ -303,14 +299,14 @@ importers: specifier: ^1.6.0 version: 1.6.0 vue: - specifier: 3.3.9 - version: 3.3.9(typescript@5.7.3) + specifier: ^3.5.13 + version: 3.5.13(typescript@5.7.3) vue-eslint-parser: specifier: ^9.4.3 version: 9.4.3(eslint@8.57.1) vue-tsc: - specifier: 2.0.19 - version: 2.0.19(typescript@5.7.3) + specifier: ^2.2.0 + version: 2.2.0(typescript@5.7.3) packages: @@ -1495,9 +1491,6 @@ packages: resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} - '@johnsoncodehk/vscode-html-languageservice@5.2.0-34a5462': - resolution: {integrity: sha512-etqLfpSJ5zaw76KUNF603be6d6QsiQPmaHr9FKEp4zhLZJzWCCMH6Icak7MtLUFLZLMpL761mZNImi/joBo1ZA==} - '@jridgewell/gen-mapping@0.3.8': resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} engines: {node: '>=6.0.0'} @@ -1516,6 +1509,9 @@ packages: '@jridgewell/trace-mapping@0.3.25': resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + '@keyv/serialize@1.0.2': + resolution: {integrity: sha512-+E/LyaAeuABniD/RvUezWVXKpeuvwLEA9//nE9952zBaOdBd2mQ3pPoM8cUe2X6IcMByfuSLzmYqnYshG60+HQ==} + '@lezer/common@1.2.3': resolution: {integrity: sha512-w7ojc8ejBqr2REPsWxJjrMFsA/ysDCFICn8zEOR9mrqzOu2amhITYuLD8ag6XZf0CFXDrhKqw7+tW8cX66NaDA==} @@ -1578,42 +1574,36 @@ packages: engines: {node: '>= 10.0.0'} cpu: [arm] os: [linux] - libc: [glibc] '@parcel/watcher-linux-arm-musl@2.5.1': resolution: {integrity: sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==} engines: {node: '>= 10.0.0'} cpu: [arm] os: [linux] - libc: [musl] '@parcel/watcher-linux-arm64-glibc@2.5.1': resolution: {integrity: sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [linux] - libc: [glibc] '@parcel/watcher-linux-arm64-musl@2.5.1': resolution: {integrity: sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [linux] - libc: [musl] '@parcel/watcher-linux-x64-glibc@2.5.1': resolution: {integrity: sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [linux] - libc: [glibc] '@parcel/watcher-linux-x64-musl@2.5.1': resolution: {integrity: sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [linux] - libc: [musl] '@parcel/watcher-win32-arm64@2.5.1': resolution: {integrity: sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==} @@ -1696,8 +1686,8 @@ packages: '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - '@types/less@3.0.7': - resolution: {integrity: sha512-+SD1DrM8EwJsilPFSR1IMMGWOTg5sO1waewoJ1k3BHCvU07zQThy8t2wTfxvHz//R0uK3koAUl9WbWwal0H+YA==} + '@types/less@3.0.8': + resolution: {integrity: sha512-Gjm4+H9noDJgu5EdT3rUw5MhPBag46fiOy27BefvWkNL8mlZnKnCaVVVTLKj6RYXed9b62CPKnPav9govyQDzA==} '@types/minimatch@3.0.5': resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==} @@ -1840,17 +1830,17 @@ packages: '@ungap/structured-clone@1.3.0': resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} - '@volar/language-core@2.2.5': - resolution: {integrity: sha512-2htyAuxRrAgETmFeUhT4XLELk3LiEcqoW/B8YUXMF6BrGWLMwIR09MFaZYvrA2UhbdAeSyeQ726HaWSWkexUcQ==} + '@volar/language-core@2.4.11': + resolution: {integrity: sha512-lN2C1+ByfW9/JRPpqScuZt/4OrUUse57GLI6TbLgTIqBVemdl1wNcZ1qYGEo2+Gw8coYLgCy7SuKqn6IrQcQgg==} - '@volar/language-service@2.2.5': - resolution: {integrity: sha512-a97e/0uCe+uSu23F4zvgvldqJtZe6jugQeEHWjTfhgOEO8+Be0t5CZNNVItQqmPyAsD8eElg0S/cP6uxvCmCSQ==} + '@volar/language-service@2.4.11': + resolution: {integrity: sha512-KIb6g8gjUkS2LzAJ9bJCLIjfsJjeRtmXlu7b2pDFGD3fNqdbC53cCAKzgWDs64xtQVKYBU13DLWbtSNFtGuMLQ==} - '@volar/source-map@2.2.5': - resolution: {integrity: sha512-wrOEIiZNf4E+PWB0AxyM4tfhkfldPsb3bxg8N6FHrxJH2ohar7aGu48e98bp3pR9HUA7P/pR9VrLmkTrgCCnWQ==} + '@volar/source-map@2.4.11': + resolution: {integrity: sha512-ZQpmafIGvaZMn/8iuvCFGrW3smeqkq/IIh9F1SdSx9aUl0J4Iurzd6/FhmjNO5g2ejF3rT45dKskgXWiofqlZQ==} - '@volar/typescript@2.2.5': - resolution: {integrity: sha512-eSV/n75+ppfEVugMC/salZsI44nXDPAyL6+iTYCNLtiLHGJsnMv9GwiDMujrvAUj/aLQyqRJgYtXRoxop2clCw==} + '@volar/typescript@2.4.11': + resolution: {integrity: sha512-2DT+Tdh88Spp5PyPbqhyoYavYCPDsqbHLFwcUI9K1NlY1YgUJvujGdrqUp0zWxnW7KWNTr3xSpMuv2WnaTKDAw==} '@vscode/l10n@0.0.18': resolution: {integrity: sha512-KYSIHVmslkaCDyw013pphY+d7x1qV8IZupYfeIfzNA+nsaWHbn5uPuQRvdRFsa9zFzGeudPuoGoZ1Op4jrJXIQ==} @@ -1858,15 +1848,30 @@ packages: '@vue/compiler-core@3.3.9': resolution: {integrity: sha512-+/Lf68Vr/nFBA6ol4xOtJrW+BQWv3QWKfRwGSm70jtXwfhZNF4R/eRgyVJYoxFRhdCTk/F6g99BP0ffPgZihfQ==} + '@vue/compiler-core@3.5.13': + resolution: {integrity: sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==} + '@vue/compiler-dom@3.3.9': resolution: {integrity: sha512-nfWubTtLXuT4iBeDSZ5J3m218MjOy42Vp2pmKVuBKo2/BLcrFUX8nCSr/bKRFiJ32R8qbdnnnBgRn9AdU5v0Sg==} + '@vue/compiler-dom@3.5.13': + resolution: {integrity: sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==} + '@vue/compiler-sfc@3.3.9': resolution: {integrity: sha512-wy0CNc8z4ihoDzjASCOCsQuzW0A/HP27+0MDSSICMjVIFzk/rFViezkR3dzH+miS2NDEz8ywMdbjO5ylhOLI2A==} + '@vue/compiler-sfc@3.5.13': + resolution: {integrity: sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==} + '@vue/compiler-ssr@3.3.9': resolution: {integrity: sha512-NO5oobAw78R0G4SODY5A502MGnDNiDjf6qvhn7zD7TJGc8XDeIEw4fg6JU705jZ/YhuokBKz0A5a/FL/XZU73g==} + '@vue/compiler-ssr@3.5.13': + resolution: {integrity: sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==} + + '@vue/compiler-vue2@2.7.16': + resolution: {integrity: sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==} + '@vue/devtools-api@6.6.4': resolution: {integrity: sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==} @@ -1887,16 +1892,16 @@ packages: typescript: optional: true - '@vue/language-core@2.0.19': - resolution: {integrity: sha512-A9EGOnvb51jOvnCYoRLnMP+CcoPlbZVxI9gZXE/y2GksRWM6j/PrLEIC++pnosWTN08tFpJgxhSS//E9v/Sg+Q==} + '@vue/language-core@2.2.0': + resolution: {integrity: sha512-O1ZZFaaBGkKbsRfnVH1ifOK1/1BUkyK+3SQsfnh6PmMmD4qJcTU8godCeA96jjDRTL6zgnK7YzCHfaUlH2r0Mw==} peerDependencies: typescript: '*' peerDependenciesMeta: typescript: optional: true - '@vue/language-plugin-pug@2.0.19': - resolution: {integrity: sha512-Ee++xWL6/w9ImcYms5++lK5NXv4jxsTC6dtJgsNRYJh4jC3judGK4yEa7vryXaP/DaBxsCD1ihwi/CMUkTHuzg==} + '@vue/language-plugin-pug@2.2.0': + resolution: {integrity: sha512-DcE08ZGP64aSUUA6iTE65cN1C2bsdlAFOaWEV33Yfdov6XRpScjzY42IRayTUHo4oJkcvbCJiHNr3RiW1XXgRw==} '@vue/reactivity-transform@3.3.9': resolution: {integrity: sha512-HnUFm7Ry6dFa4Lp63DAxTixUp8opMtQr6RxQCpDI1vlh12rkGIeYqMvJtK+IKyEfEOa2I9oCkD1mmsPdaGpdVg==} @@ -1904,20 +1909,37 @@ packages: '@vue/reactivity@3.3.9': resolution: {integrity: sha512-VmpIqlNp+aYDg2X0xQhJqHx9YguOmz2UxuUJDckBdQCNkipJvfk9yA75woLWElCa0Jtyec3lAAt49GO0izsphw==} + '@vue/reactivity@3.5.13': + resolution: {integrity: sha512-NaCwtw8o48B9I6L1zl2p41OHo/2Z4wqYGGIK1Khu5T7yxrn+ATOixn/Udn2m+6kZKB/J7cuT9DbWWhRxqixACg==} + '@vue/runtime-core@3.3.9': resolution: {integrity: sha512-xxaG9KvPm3GTRuM4ZyU8Tc+pMVzcu6eeoSRQJ9IE7NmCcClW6z4B3Ij6L4EDl80sxe/arTtQ6YmgiO4UZqRc+w==} + '@vue/runtime-core@3.5.13': + resolution: {integrity: sha512-Fj4YRQ3Az0WTZw1sFe+QDb0aXCerigEpw418pw1HBUKFtnQHWzwojaukAs2X/c9DQz4MQ4bsXTGlcpGxU/RCIw==} + '@vue/runtime-dom@3.3.9': resolution: {integrity: sha512-e7LIfcxYSWbV6BK1wQv9qJyxprC75EvSqF/kQKe6bdZEDNValzeRXEVgiX7AHI6hZ59HA4h7WT5CGvm69vzJTQ==} + '@vue/runtime-dom@3.5.13': + resolution: {integrity: sha512-dLaj94s93NYLqjLiyFzVs9X6dWhTdAlEAciC3Moq7gzAc13VJUdCnjjRurNM6uTLFATRHexHCTu/Xp3eW6yoog==} + '@vue/server-renderer@3.3.9': resolution: {integrity: sha512-w0zT/s5l3Oa3ZjtLW88eO4uV6AQFqU8X5GOgzq7SkQQu6vVr+8tfm+OI2kDBplS/W/XgCBuFXiPw6T5EdwXP0A==} peerDependencies: vue: 3.3.9 + '@vue/server-renderer@3.5.13': + resolution: {integrity: sha512-wAi4IRJV/2SAW3htkTlB+dHeRmpTiVIK1OGLWV1yeStVSebSQQOwGwIq0D3ZIoBj2C2qpgz5+vX9iEBkTdk5YA==} + peerDependencies: + vue: 3.5.13 + '@vue/shared@3.3.9': resolution: {integrity: sha512-ZE0VTIR0LmYgeyhurPTpy4KzKsuDyQbMSdM49eKkMnT5X4VfFBLysMzjIZhLEFQYjjOVVfbvUDHckwjDFiO2eA==} + '@vue/shared@3.5.13': + resolution: {integrity: sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==} + JSONStream@1.3.5: resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} hasBin: true @@ -1947,6 +1969,9 @@ packages: ajv@8.17.1: resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} + alien-signals@0.4.14: + resolution: {integrity: sha512-itUAVzhczTmP2U5yX67xVpsbbOiquusbWVyA9N+sy6+r6YVbFkahXvNCeEPWEOMhwDYwbVbGHFkVL03N9I5g+Q==} + alpha-sort@5.0.0: resolution: {integrity: sha512-ObQ58fJyEEYr7n91itdT/N4LYmg6H/HehNHIvsTL9byMLYf3acJaLpvc+/KnvNDQVX5LmACETJAtWLXA9GUTmw==} engines: {node: '>=12'} @@ -2096,6 +2121,9 @@ packages: balanced-match@2.0.0: resolution: {integrity: sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==} + base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + boolbase@1.0.0: resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} @@ -2120,10 +2148,16 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true + buffer@6.0.3: + resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} + builtin-modules@3.3.0: resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} engines: {node: '>=6'} + cacheable@1.8.8: + resolution: {integrity: sha512-OE1/jlarWxROUIpd0qGBSKFLkNsotY8pt4GeiVErUYh/NUeTNrT+SBksUgllQv4m6a0W/VZsLuiHb88maavqEw==} + call-bind-apply-helpers@1.0.1: resolution: {integrity: sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==} engines: {node: '>= 0.4'} @@ -2230,9 +2264,6 @@ packages: compare-func@2.0.0: resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} - computeds@0.0.1: - resolution: {integrity: sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==} - concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} @@ -2527,9 +2558,9 @@ packages: cpu: [arm64] os: [android] - esbuild-css-modules-plugin@3.1.2: - resolution: {integrity: sha512-XRpRuRT3m1Pk456djTvrq1AOEj+OB8sa8PdGN/Yha6eL8Im0TIYPq0CELgQU6DDKkHlYET++3sXZVjiF/kcgQw==} - engines: {node: '>= 16.20.0'} + esbuild-css-modules-plugin@3.1.4: + resolution: {integrity: sha512-/WrLny7XhGQlPQt8KD4Z37p5DRAHvZr2sqoxBO2ue1jzpqsREpexkTDhlnBmOM2c590u6Mmwf9Ylkvs82FSu/A==} + engines: {node: '>= 20'} peerDependencies: esbuild: '*' @@ -2622,13 +2653,14 @@ packages: peerDependencies: esbuild: '>=0.14.0 <0.25.0' - esbuild-plugin-vue3@0.4.1: - resolution: {integrity: sha512-BasNZeGtgyka61mF2Qv+72zIge+VLciCh21ibN40YgR7ywJiI13aY4hv8rOkmzCCo0c73p/drG8PBtgYAysyZQ==} + esbuild-plugin-vue3@0.4.2: + resolution: {integrity: sha512-edaghOAJY+26uIJVywkT0cyUxWu/oi2+dGe2KePyHAJ9y6hAB4fqNnY5SFpZY9G6knERZo4Nykp/YOcKML06rA==} peerDependencies: cheerio: ^1.0.0-rc.10 html-minifier: ^4.0.0 pug: ^3.0.2 sass: ^1.35.2 + vue: ^3.4.15 peerDependenciesMeta: cheerio: optional: true @@ -2919,6 +2951,9 @@ packages: fastq@1.19.0: resolution: {integrity: sha512-7SFSRCNjBQIZH/xZR3iy5iQYR8aGBE0h3VG6/cwlbrpdciNYBMotQav8c1XI3HjHH+NikUpP53nPdlZSdWmFzA==} + file-entry-cache@10.0.6: + resolution: {integrity: sha512-0wvv16mVo9nN0Md3k7DMjgAPKG/TY4F/gYMBVb/wMThFRJvzrpaqBFqF6km9wf8QfYTN+mNg5aeaBLfy8k35uA==} + file-entry-cache@6.0.1: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} @@ -2954,6 +2989,9 @@ packages: resolution: {integrity: sha512-JrqFmyUl2PnPi1OvLyTVHnQvwQ0S+e6lGSwu8OkAZlSaNIZciTY2H/cOOROxsBA1m/LZNHDsqAgDZt6akWcjsQ==} engines: {node: '>=18'} + flat-cache@6.1.6: + resolution: {integrity: sha512-F+CKgSwp0pzLx67u+Zy1aCueVWFAHWbXepvXlZ+bWVTaASbm5SyCnSJ80Fp1ePEmS57wU+Bf6cx6525qtMZ4lQ==} + flatted@3.3.2: resolution: {integrity: sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==} @@ -3139,6 +3177,9 @@ packages: resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} hasBin: true + hookified@1.7.0: + resolution: {integrity: sha512-XQdMjqC1AyeOzfs+17cnIk7Wdfu1hh2JtcyNfBf5u9jHrT3iZUlGHxLTntFBuk5lwkqJ6l3+daeQdHK5yByHVA==} + hosted-git-info@2.8.9: resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} @@ -3168,6 +3209,9 @@ packages: peerDependencies: postcss: ^8.1.0 + ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + ignore@5.3.2: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} @@ -3176,6 +3220,10 @@ packages: resolution: {integrity: sha512-InwqeHHN2XpumIkMvpl/DCJVrAHgCsG5+cn1XlnLWGwtZBm8QJfSusItfrwx81CTp5agNZqpKU2J/ccC5nGT4A==} engines: {node: '>= 4'} + ignore@7.0.3: + resolution: {integrity: sha512-bAH5jbK/F3T3Jls4I0SO1hmPR0dKU0a7+SY6n1yzRtG54FLO8d6w/nxLFX2Nb7dBu6cCWXPaAME6cYqFUMmuCA==} + engines: {node: '>= 4'} + image-size@0.5.5: resolution: {integrity: sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==} engines: {node: '>=0.10.0'} @@ -3446,6 +3494,9 @@ packages: keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + keyv@5.2.3: + resolution: {integrity: sha512-AGKecUfzrowabUv0bH1RIR5Vf7w+l4S3xtQAypKaUpTdIR1EbrAcTxHCrpo9Q+IWeUlFE2palRtgIQcgm+PQJw==} + kind-of@6.0.3: resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} engines: {node: '>=0.10.0'} @@ -3505,28 +3556,24 @@ packages: engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] - libc: [glibc] lightningcss-linux-arm64-musl@1.29.1: resolution: {integrity: sha512-UKMFrG4rL/uHNgelBsDwJcBqVpzNJbzsKkbI3Ja5fg00sgQnHw/VrzUTEc4jhZ+AN2BvQYz/tkHu4vt1kLuJyw==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] - libc: [musl] lightningcss-linux-x64-gnu@1.29.1: resolution: {integrity: sha512-u1S+xdODy/eEtjADqirA774y3jLcm8RPtYztwReEXoZKdzgsHYPl0s5V52Tst+GKzqjebkULT86XMSxejzfISw==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] - libc: [glibc] lightningcss-linux-x64-musl@1.29.1: resolution: {integrity: sha512-L0Tx0DtaNUTzXv0lbGCLB/c/qEADanHbu4QdcNOXLIe1i8i22rZRpbT3gpWYsCh9aSL9zFujY/WmEXIatWvXbw==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] - libc: [musl] lightningcss-win32-arm64-msvc@1.29.1: resolution: {integrity: sha512-QoOVnkIEFfbW4xPi+dpdft/zAKmgLgsRHfJalEPYuJDOWf7cLQzYg0DEh8/sn737FaeMJxHZRc1oBreiwZCjog==} @@ -3940,15 +3987,12 @@ packages: resolution: {integrity: sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==} engines: {node: '>=10'} - pinia@2.2.4: - resolution: {integrity: sha512-K7ZhpMY9iJ9ShTC0cR2+PnxdQRuwVIsXDO/WIEV/RnMC/vmSoKDTKW/exNQYPI+4ij10UjXqdNiEHwn47McANQ==} + pinia@2.3.1: + resolution: {integrity: sha512-khUlZSwt9xXCaTbbxFYBKDc/bWAGWJjOgvxETwkTN7KRm66EeT1ZdZj6i2ceh9sP2Pzqsbc704r2yngBrxBVug==} peerDependencies: - '@vue/composition-api': ^1.4.0 typescript: '>=4.4.4' - vue: ^2.6.14 || ^3.3.0 + vue: ^2.7.0 || ^3.5.11 peerDependenciesMeta: - '@vue/composition-api': - optional: true typescript: optional: true @@ -4670,6 +4714,11 @@ packages: engines: {node: '>=18.12.0'} hasBin: true + stylelint@16.14.1: + resolution: {integrity: sha512-oqCL7AC3786oTax35T/nuLL8p2C3k/8rHKAooezrPGRvUX0wX+qqs5kMWh5YYT4PHQgVDobHT4tw55WgpYG6Sw==} + engines: {node: '>=18.12.0'} + hasBin: true + stylus@0.62.0: resolution: {integrity: sha512-v3YCf31atbwJQIMtPNX8hcQ+okD4NQaTuKGUWfII8eaqn+3otrbttGL1zSMZAAtiPsBztQnujVBugg/cXFUpyg==} hasBin: true @@ -4882,16 +4931,19 @@ packages: resolution: {integrity: sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==} engines: {node: '>=0.10.0'} - volar-service-html@0.0.45: - resolution: {integrity: sha512-tLTJqfy1v5C4nmeAsfekFIKPl4r4qDMyL0L9MWywr/EApZzPCsbeUGxCqdzxSMC2q7PMCfX2i167txDo+J0LVA==} + volar-service-html@0.0.62: + resolution: {integrity: sha512-Zw01aJsZRh4GTGUjveyfEzEqpULQUdQH79KNEiKVYHZyuGtdBRYCHlrus1sueSNMxwwkuF5WnOHfvBzafs8yyQ==} peerDependencies: - '@volar/language-service': ~2.2.3 + '@volar/language-service': ~2.4.0 peerDependenciesMeta: '@volar/language-service': optional: true - volar-service-pug@0.0.45: - resolution: {integrity: sha512-Xr45hVTMzt6NI2xgA69+Evzmes6pePqR2X4wl6io76M70M3W+QDbvHH3u8+5QrvVvbQGY0HledQcT29bCWRADQ==} + volar-service-pug@0.0.62: + resolution: {integrity: sha512-C0/O8uGnRfijWKE0zFXxJ/o7BbLebzretsEaiMkvBDIxm5oe7HRDzQr6CgknV/WVgiohZ74v+0CwBPl2YmcPUQ==} + + vscode-html-languageservice@5.3.1: + resolution: {integrity: sha512-ysUh4hFeW/WOWz/TO9gm08xigiSsV/FOAZ+DolgJfeLftna54YdmZ4A+lIn46RbdO3/Qv5QHTn1ZGqmrXQhZyA==} vscode-jsonrpc@8.2.0: resolution: {integrity: sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==} @@ -4926,14 +4978,11 @@ packages: peerDependencies: eslint: '>=6.0.0' - vue-template-compiler@2.7.16: - resolution: {integrity: sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==} - - vue-tsc@2.0.19: - resolution: {integrity: sha512-JWay5Zt2/871iodGF72cELIbcAoPyhJxq56mPPh+M2K7IwI688FMrFKc/+DvB05wDWEuCPexQJ6L10zSwzzapg==} + vue-tsc@2.2.0: + resolution: {integrity: sha512-gtmM1sUuJ8aSb0KoAFmK9yMxb8TxjewmxqTJ1aKphD5Cbu0rULFY6+UQT51zW7SpUcenfPUuflKyVwyx9Qdnxg==} hasBin: true peerDependencies: - typescript: '*' + typescript: '>=5.0.0' vue@3.3.9: resolution: {integrity: sha512-sy5sLCTR8m6tvUk1/ijri3Yqzgpdsmxgj6n6yl7GXXCXqVbmW2RCXe9atE4cEI6Iv7L89v5f35fZRRr5dChP9w==} @@ -4943,6 +4992,14 @@ packages: typescript: optional: true + vue@3.5.13: + resolution: {integrity: sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + w3c-keyname@2.2.8: resolution: {integrity: sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==} @@ -6312,13 +6369,6 @@ snapshots: wrap-ansi: 8.1.0 wrap-ansi-cjs: wrap-ansi@7.0.0 - '@johnsoncodehk/vscode-html-languageservice@5.2.0-34a5462': - dependencies: - '@vscode/l10n': 0.0.18 - vscode-languageserver-textdocument: 1.0.12 - vscode-languageserver-types: 3.17.5 - vscode-uri: 3.0.8 - '@jridgewell/gen-mapping@0.3.8': dependencies: '@jridgewell/set-array': 1.2.1 @@ -6336,6 +6386,10 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 + '@keyv/serialize@1.0.2': + dependencies: + buffer: 6.0.3 + '@lezer/common@1.2.3': {} '@lezer/highlight@1.2.1': @@ -6507,7 +6561,7 @@ snapshots: '@types/json-schema@7.0.15': {} - '@types/less@3.0.7': {} + '@types/less@3.0.8': {} '@types/minimatch@3.0.5': {} @@ -6696,25 +6750,24 @@ snapshots: '@ungap/structured-clone@1.3.0': {} - '@volar/language-core@2.2.5': + '@volar/language-core@2.4.11': dependencies: - '@volar/source-map': 2.2.5 + '@volar/source-map': 2.4.11 - '@volar/language-service@2.2.5': + '@volar/language-service@2.4.11': dependencies: - '@volar/language-core': 2.2.5 + '@volar/language-core': 2.4.11 vscode-languageserver-protocol: 3.17.5 vscode-languageserver-textdocument: 1.0.12 vscode-uri: 3.0.8 - '@volar/source-map@2.2.5': - dependencies: - muggle-string: 0.4.1 + '@volar/source-map@2.4.11': {} - '@volar/typescript@2.2.5': + '@volar/typescript@2.4.11': dependencies: - '@volar/language-core': 2.2.5 + '@volar/language-core': 2.4.11 path-browserify: 1.0.1 + vscode-uri: 3.0.8 '@vscode/l10n@0.0.18': {} @@ -6725,11 +6778,24 @@ snapshots: estree-walker: 2.0.2 source-map-js: 1.2.1 + '@vue/compiler-core@3.5.13': + dependencies: + '@babel/parser': 7.26.7 + '@vue/shared': 3.5.13 + entities: 4.5.0 + estree-walker: 2.0.2 + source-map-js: 1.2.1 + '@vue/compiler-dom@3.3.9': dependencies: '@vue/compiler-core': 3.3.9 '@vue/shared': 3.3.9 + '@vue/compiler-dom@3.5.13': + dependencies: + '@vue/compiler-core': 3.5.13 + '@vue/shared': 3.5.13 + '@vue/compiler-sfc@3.3.9': dependencies: '@babel/parser': 7.26.7 @@ -6743,11 +6809,33 @@ snapshots: postcss: 8.5.1 source-map-js: 1.2.1 + '@vue/compiler-sfc@3.5.13': + dependencies: + '@babel/parser': 7.26.7 + '@vue/compiler-core': 3.5.13 + '@vue/compiler-dom': 3.5.13 + '@vue/compiler-ssr': 3.5.13 + '@vue/shared': 3.5.13 + estree-walker: 2.0.2 + magic-string: 0.30.17 + postcss: 8.5.1 + source-map-js: 1.2.1 + '@vue/compiler-ssr@3.3.9': dependencies: '@vue/compiler-dom': 3.3.9 '@vue/shared': 3.3.9 + '@vue/compiler-ssr@3.5.13': + dependencies: + '@vue/compiler-dom': 3.5.13 + '@vue/shared': 3.5.13 + + '@vue/compiler-vue2@2.7.16': + dependencies: + de-indent: 1.0.2 + he: 1.2.0 + '@vue/devtools-api@6.6.4': {} '@vue/eslint-config-prettier@9.0.0(@types/eslint@8.56.12)(eslint@8.57.1)(prettier@3.4.2)': @@ -6771,22 +6859,23 @@ snapshots: transitivePeerDependencies: - supports-color - '@vue/language-core@2.0.19(typescript@5.7.3)': + '@vue/language-core@2.2.0(typescript@5.7.3)': dependencies: - '@volar/language-core': 2.2.5 - '@vue/compiler-dom': 3.3.9 - '@vue/shared': 3.3.9 - computeds: 0.0.1 + '@volar/language-core': 2.4.11 + '@vue/compiler-dom': 3.5.13 + '@vue/compiler-vue2': 2.7.16 + '@vue/shared': 3.5.13 + alien-signals: 0.4.14 minimatch: 9.0.5 + muggle-string: 0.4.1 path-browserify: 1.0.1 - vue-template-compiler: 2.7.16 optionalDependencies: typescript: 5.7.3 - '@vue/language-plugin-pug@2.0.19': + '@vue/language-plugin-pug@2.2.0': dependencies: - '@volar/source-map': 2.2.5 - volar-service-pug: 0.0.45 + '@volar/source-map': 2.4.11 + volar-service-pug: 0.0.62 '@vue/reactivity-transform@3.3.9': dependencies: @@ -6800,25 +6889,49 @@ snapshots: dependencies: '@vue/shared': 3.3.9 + '@vue/reactivity@3.5.13': + dependencies: + '@vue/shared': 3.5.13 + '@vue/runtime-core@3.3.9': dependencies: '@vue/reactivity': 3.3.9 '@vue/shared': 3.3.9 + '@vue/runtime-core@3.5.13': + dependencies: + '@vue/reactivity': 3.5.13 + '@vue/shared': 3.5.13 + '@vue/runtime-dom@3.3.9': dependencies: '@vue/runtime-core': 3.3.9 '@vue/shared': 3.3.9 csstype: 3.1.3 + '@vue/runtime-dom@3.5.13': + dependencies: + '@vue/reactivity': 3.5.13 + '@vue/runtime-core': 3.5.13 + '@vue/shared': 3.5.13 + csstype: 3.1.3 + '@vue/server-renderer@3.3.9(vue@3.3.9(typescript@5.7.3))': dependencies: '@vue/compiler-ssr': 3.3.9 '@vue/shared': 3.3.9 vue: 3.3.9(typescript@5.7.3) + '@vue/server-renderer@3.5.13(vue@3.5.13(typescript@5.7.3))': + dependencies: + '@vue/compiler-ssr': 3.5.13 + '@vue/shared': 3.5.13 + vue: 3.5.13(typescript@5.7.3) + '@vue/shared@3.3.9': {} + '@vue/shared@3.5.13': {} + JSONStream@1.3.5: dependencies: jsonparse: 1.3.1 @@ -6851,6 +6964,8 @@ snapshots: json-schema-traverse: 1.0.0 require-from-string: 2.0.2 + alien-signals@0.4.14: {} + alpha-sort@5.0.0(patch_hash=soz2x3l6v7xocle4w7vguzc5ha): {} ansi-escapes@4.3.2: @@ -7012,6 +7127,8 @@ snapshots: balanced-match@2.0.0: {} + base64-js@1.5.1: {} + boolbase@1.0.0: {} brace-expansion@1.1.11: @@ -7038,8 +7155,18 @@ snapshots: node-releases: 2.0.19 update-browserslist-db: 1.1.2(browserslist@4.24.4) + buffer@6.0.3: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + builtin-modules@3.3.0: {} + cacheable@1.8.8: + dependencies: + hookified: 1.7.0 + keyv: 5.2.3 + call-bind-apply-helpers@1.0.1: dependencies: es-errors: 1.3.0 @@ -7149,8 +7276,6 @@ snapshots: array-ify: 1.0.0 dot-prop: 5.3.0 - computeds@0.0.1: {} - concat-map@0.0.1: {} constantinople@4.0.1: @@ -7511,7 +7636,7 @@ snapshots: esbuild-android-arm64@0.14.54: optional: true - esbuild-css-modules-plugin@3.1.2(patch_hash=lqqqhncujf5ztq67wxplcoxzsm)(esbuild@0.24.2): + esbuild-css-modules-plugin@3.1.4(patch_hash=naix6jn47epfc4wru5wtuz5k5i)(esbuild@0.24.2): dependencies: esbuild: 0.24.2 lightningcss: 1.29.1 @@ -7561,16 +7686,15 @@ snapshots: esbuild-plugin-less@1.3.14(esbuild@0.24.2): dependencies: - '@types/less': 3.0.7 + '@types/less': 3.0.8 esbuild: 0.24.2 less: 4.2.2 - esbuild-plugin-vue3@0.4.1(pug@3.0.3)(sass@1.83.4): + esbuild-plugin-vue3@0.4.2(pug@3.0.3)(sass@1.83.4)(vue@3.5.13(typescript@5.7.3)): dependencies: - '@vue/compiler-core': 3.3.9 - '@vue/compiler-sfc': 3.3.9 esbuild: 0.14.54 typescript: 4.9.5 + vue: 3.5.13(typescript@5.7.3) optionalDependencies: pug: 3.0.3 sass: 1.83.4 @@ -8014,6 +8138,10 @@ snapshots: dependencies: reusify: 1.0.4 + file-entry-cache@10.0.6: + dependencies: + flat-cache: 6.1.6 + file-entry-cache@6.0.1: dependencies: flat-cache: 3.2.0 @@ -8055,6 +8183,12 @@ snapshots: flatted: 3.3.2 keyv: 4.5.4 + flat-cache@6.1.6: + dependencies: + cacheable: 1.8.8 + flatted: 3.3.2 + hookified: 1.7.0 + flatted@3.3.2: {} follow-redirects@1.15.9: {} @@ -8253,6 +8387,8 @@ snapshots: he@1.2.0: {} + hookified@1.7.0: {} + hosted-git-info@2.8.9: {} html-tags@3.3.1: {} @@ -8277,10 +8413,14 @@ snapshots: dependencies: postcss: 8.5.1 + ieee754@1.2.1: {} + ignore@5.3.2: {} ignore@6.0.2: {} + ignore@7.0.3: {} + image-size@0.5.5: optional: true @@ -8523,6 +8663,10 @@ snapshots: dependencies: json-buffer: 3.0.1 + keyv@5.2.3: + dependencies: + '@keyv/serialize': 1.0.2 + kind-of@6.0.3: {} kleur@3.0.3: {} @@ -8961,13 +9105,15 @@ snapshots: pify@5.0.0: {} - pinia@2.2.4(typescript@5.7.3)(vue@3.3.9(typescript@5.7.3)): + pinia@2.3.1(typescript@5.7.3)(vue@3.5.13(typescript@5.7.3)): dependencies: '@vue/devtools-api': 6.6.4 - vue: 3.3.9(typescript@5.7.3) - vue-demi: 0.14.10(vue@3.3.9(typescript@5.7.3)) + vue: 3.5.13(typescript@5.7.3) + vue-demi: 0.14.10(vue@3.5.13(typescript@5.7.3)) optionalDependencies: typescript: 5.7.3 + transitivePeerDependencies: + - '@vue/composition-api' pluralize@8.0.0: {} @@ -9765,11 +9911,11 @@ snapshots: style-search@0.1.0: {} - stylelint-config-css-modules@4.4.0(stylelint@16.12.0(typescript@5.7.3)): + stylelint-config-css-modules@4.4.0(stylelint@16.14.1(typescript@5.7.3)): dependencies: - stylelint: 16.12.0(typescript@5.7.3) + stylelint: 16.14.1(typescript@5.7.3) optionalDependencies: - stylelint-scss: 6.11.0(stylelint@16.12.0(typescript@5.7.3)) + stylelint-scss: 6.11.0(stylelint@16.14.1(typescript@5.7.3)) stylelint-config-recommended@14.0.1(stylelint@16.12.0(typescript@5.7.3)): dependencies: @@ -9795,7 +9941,7 @@ snapshots: postcss: 8.5.1 stylelint: 16.12.0(typescript@5.7.3) - stylelint-scss@6.11.0(stylelint@16.12.0(typescript@5.7.3)): + stylelint-scss@6.11.0(stylelint@16.14.1(typescript@5.7.3)): dependencies: css-tree: 3.1.0 is-plain-object: 5.0.0 @@ -9805,7 +9951,7 @@ snapshots: postcss-resolve-nested-selector: 0.1.6 postcss-selector-parser: 7.0.0 postcss-value-parser: 4.2.0 - stylelint: 16.12.0(typescript@5.7.3) + stylelint: 16.14.1(typescript@5.7.3) optional: true stylelint@16.12.0(typescript@5.7.3): @@ -9852,6 +9998,50 @@ snapshots: - supports-color - typescript + stylelint@16.14.1(typescript@5.7.3): + dependencies: + '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) + '@csstools/css-tokenizer': 3.0.3 + '@csstools/media-query-list-parser': 4.0.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.0.0) + '@dual-bundle/import-meta-resolve': 4.1.0 + balanced-match: 2.0.0 + colord: 2.9.3 + cosmiconfig: 9.0.0(typescript@5.7.3) + css-functions-list: 3.2.3 + css-tree: 3.1.0 + debug: 4.4.0 + fast-glob: 3.3.3 + fastest-levenshtein: 1.0.16 + file-entry-cache: 10.0.6 + global-modules: 2.0.0 + globby: 11.1.0 + globjoin: 0.1.4 + html-tags: 3.3.1 + ignore: 7.0.3 + imurmurhash: 0.1.4 + is-plain-object: 5.0.0 + known-css-properties: 0.35.0 + mathml-tag-names: 2.1.3 + meow: 13.2.0 + micromatch: 4.0.8 + normalize-path: 3.0.0 + picocolors: 1.1.1 + postcss: 8.5.1 + postcss-resolve-nested-selector: 0.1.6 + postcss-safe-parser: 7.0.1(postcss@8.5.1) + postcss-selector-parser: 7.0.0 + postcss-value-parser: 4.2.0 + resolve-from: 5.0.0 + string-width: 4.2.3 + supports-hyperlinks: 3.2.0 + svg-tags: 1.0.0 + table: 6.9.0 + write-file-atomic: 5.0.1 + transitivePeerDependencies: + - supports-color + - typescript + stylus@0.62.0: dependencies: '@adobe/css-tools': 4.3.3 @@ -10086,23 +10276,31 @@ snapshots: void-elements@3.1.0: {} - volar-service-html@0.0.45(@volar/language-service@2.2.5): + volar-service-html@0.0.62(@volar/language-service@2.4.11): dependencies: - vscode-html-languageservice: '@johnsoncodehk/vscode-html-languageservice@5.2.0-34a5462' + vscode-html-languageservice: 5.3.1 vscode-languageserver-textdocument: 1.0.12 vscode-uri: 3.0.8 optionalDependencies: - '@volar/language-service': 2.2.5 + '@volar/language-service': 2.4.11 - volar-service-pug@0.0.45: + volar-service-pug@0.0.62: dependencies: - '@volar/language-service': 2.2.5 + '@volar/language-service': 2.4.11 + muggle-string: 0.4.1 pug-lexer: 5.0.1 pug-parser: 6.0.0 - volar-service-html: 0.0.45(@volar/language-service@2.2.5) - vscode-html-languageservice: '@johnsoncodehk/vscode-html-languageservice@5.2.0-34a5462' + volar-service-html: 0.0.62(@volar/language-service@2.4.11) + vscode-html-languageservice: 5.3.1 vscode-languageserver-textdocument: 1.0.12 + vscode-html-languageservice@5.3.1: + dependencies: + '@vscode/l10n': 0.0.18 + vscode-languageserver-textdocument: 1.0.12 + vscode-languageserver-types: 3.17.5 + vscode-uri: 3.0.8 + vscode-jsonrpc@8.2.0: {} vscode-languageserver-protocol@3.17.5: @@ -10116,9 +10314,9 @@ snapshots: vscode-uri@3.0.8: {} - vue-demi@0.14.10(vue@3.3.9(typescript@5.7.3)): + vue-demi@0.14.10(vue@3.5.13(typescript@5.7.3)): dependencies: - vue: 3.3.9(typescript@5.7.3) + vue: 3.5.13(typescript@5.7.3) vue-eslint-parser@9.4.3(eslint@8.57.1): dependencies: @@ -10133,16 +10331,10 @@ snapshots: transitivePeerDependencies: - supports-color - vue-template-compiler@2.7.16: - dependencies: - de-indent: 1.0.2 - he: 1.2.0 - - vue-tsc@2.0.19(typescript@5.7.3): + vue-tsc@2.2.0(typescript@5.7.3): dependencies: - '@volar/typescript': 2.2.5 - '@vue/language-core': 2.0.19(typescript@5.7.3) - semver: 7.7.0 + '@volar/typescript': 2.4.11 + '@vue/language-core': 2.2.0(typescript@5.7.3) typescript: 5.7.3 vue@3.3.9(typescript@5.7.3): @@ -10155,6 +10347,16 @@ snapshots: optionalDependencies: typescript: 5.7.3 + vue@3.5.13(typescript@5.7.3): + dependencies: + '@vue/compiler-dom': 3.5.13 + '@vue/compiler-sfc': 3.5.13 + '@vue/runtime-dom': 3.5.13 + '@vue/server-renderer': 3.5.13(vue@3.5.13(typescript@5.7.3)) + '@vue/shared': 3.5.13 + optionalDependencies: + typescript: 5.7.3 + w3c-keyname@2.2.8: {} webidl-conversions@7.0.0: {} diff --git a/src/AccessKeyCheatsheet/definition.json b/src/AccessKeyCheatsheet/definition.json index 9795cd6fd..e2717f43f 100644 --- a/src/AccessKeyCheatsheet/definition.json +++ b/src/AccessKeyCheatsheet/definition.json @@ -3,5 +3,5 @@ "description": " 键盘快捷键提示({{keypress|Alt}} + {{keypress|Shift}} + {{keypress|?}})", "section": "compatibility", "excludeSites": ["loginwiki"], - "dependencies": ["ext.gadget.i18n", "ext.gadget.React", "ext.gadget.Util", "oojs-ui-windows"] + "dependencies": ["ext.gadget.i18n", "ext.gadget.JSX", "ext.gadget.Util", "oojs-ui-windows"] } diff --git a/src/AccessKeyCheatsheet/modules/util/generateElements.tsx b/src/AccessKeyCheatsheet/modules/util/generateElements.tsx index 1e8ba12fe..9dbbb1dea 100644 --- a/src/AccessKeyCheatsheet/modules/util/generateElements.tsx +++ b/src/AccessKeyCheatsheet/modules/util/generateElements.tsx @@ -1,4 +1,4 @@ -import React from 'ext.gadget.React'; +import React from 'ext.gadget.JSX'; import {getMessage} from '../i18n'; const generateElements = ( diff --git a/src/AdvancedSiteNotices/definition.json b/src/AdvancedSiteNotices/definition.json index 1b1274a50..b1a3c9c8a 100644 --- a/src/AdvancedSiteNotices/definition.json +++ b/src/AdvancedSiteNotices/definition.json @@ -7,7 +7,7 @@ "default": true, "dependencies": [ "ext.gadget.i18n", - "ext.gadget.React", + "ext.gadget.JSX", "ext.gadget.Tippy", "ext.gadget.Util", "mediawiki.api", diff --git a/src/AdvancedSiteNotices/modules/loadRemoteNotices.tsx b/src/AdvancedSiteNotices/modules/loadRemoteNotices.tsx index 93e37587a..90d66e772 100644 --- a/src/AdvancedSiteNotices/modules/loadRemoteNotices.tsx +++ b/src/AdvancedSiteNotices/modules/loadRemoteNotices.tsx @@ -1,5 +1,5 @@ import {type RemoteNotices, queryApi} from './util/queryApi'; -import React from 'ext.gadget.React'; +import React from 'ext.gadget.JSX'; type ApiResponse = { parse: { diff --git a/src/AdvancedSiteNotices/modules/showNotice.tsx b/src/AdvancedSiteNotices/modules/showNotice.tsx index 9116dd794..d0793e7d3 100644 --- a/src/AdvancedSiteNotices/modules/showNotice.tsx +++ b/src/AdvancedSiteNotices/modules/showNotice.tsx @@ -1,6 +1,6 @@ import * as OPTIONS from '../options.json'; import {CLASS_NAME_DISMISS, CLASS_NAME_NOTICE_CONTENT} from './constant'; -import React from 'ext.gadget.React'; +import React from 'ext.gadget.JSX'; import {type RemoteNotices} from './util/queryApi'; import {generateArea} from './util/generateArea'; import {getMessage} from './i18n'; diff --git a/src/AdvancedSiteNotices/modules/util/generateArea.tsx b/src/AdvancedSiteNotices/modules/util/generateArea.tsx index f55a626af..b2f26d44e 100644 --- a/src/AdvancedSiteNotices/modules/util/generateArea.tsx +++ b/src/AdvancedSiteNotices/modules/util/generateArea.tsx @@ -5,7 +5,7 @@ import { CLASS_NAME_NOTICE_CONTENT, CLASS_NAME_TITLE, } from '../constant'; -import React from 'ext.gadget.React'; +import React from 'ext.gadget.JSX'; import {getMessage} from '../i18n'; const generateArea = (): JQuery => { diff --git a/src/AjaxLogin/definition.json b/src/AjaxLogin/definition.json index 6537160d1..256d15fb2 100644 --- a/src/AjaxLogin/definition.json +++ b/src/AjaxLogin/definition.json @@ -7,7 +7,7 @@ "dependencies": [ "ext.gadget.FilterAlteredClicks", "ext.gadget.i18n", - "ext.gadget.React", + "ext.gadget.JSX", "ext.gadget.Toastify", "ext.gadget.Util", "mediawiki.api", diff --git a/src/AjaxLogin/modules/core.tsx b/src/AjaxLogin/modules/core.tsx index 3a9f4bc82..ebe5c491d 100644 --- a/src/AjaxLogin/modules/core.tsx +++ b/src/AjaxLogin/modules/core.tsx @@ -1,5 +1,5 @@ import {type ClientLoginParams, api} from './api'; -import React from 'ext.gadget.React'; +import React from 'ext.gadget.JSX'; import {checkValid} from './util/checkValid'; import {generateElements} from './util/generateElements'; import {getMessage} from './i18n'; diff --git a/src/AjaxLogin/modules/util/checkValid.tsx b/src/AjaxLogin/modules/util/checkValid.tsx index f24686296..0672a506a 100644 --- a/src/AjaxLogin/modules/util/checkValid.tsx +++ b/src/AjaxLogin/modules/util/checkValid.tsx @@ -1,4 +1,4 @@ -import React from 'ext.gadget.React'; +import React from 'ext.gadget.JSX'; import {getMessage} from '../i18n'; import {oouiConfirm} from './oouiConfirm'; import {toastify} from 'ext.gadget.Toastify'; diff --git a/src/AjaxLogin/modules/util/generateElements.tsx b/src/AjaxLogin/modules/util/generateElements.tsx index 592505fe9..3f24a6886 100644 --- a/src/AjaxLogin/modules/util/generateElements.tsx +++ b/src/AjaxLogin/modules/util/generateElements.tsx @@ -1,4 +1,4 @@ -import React from 'ext.gadget.React'; +import React from 'ext.gadget.JSX'; import {getMessage} from '../i18n'; const generateElements = (isAgreeTos: boolean) => { diff --git a/src/AjaxLogin/modules/util/oouiPrompt.tsx b/src/AjaxLogin/modules/util/oouiPrompt.tsx index 9ffa7fff9..6bdab93c8 100644 --- a/src/AjaxLogin/modules/util/oouiPrompt.tsx +++ b/src/AjaxLogin/modules/util/oouiPrompt.tsx @@ -1,4 +1,4 @@ -import React from 'ext.gadget.React'; +import React from 'ext.gadget.JSX'; import {getMessage} from '../i18n'; import {removeWindowResizeHandler} from './removeWindowResizeHandler'; import {windowManager} from '../initWindowManager'; diff --git a/src/Cat-a-lot/definition.json b/src/Cat-a-lot/definition.json index e68e2756c..cd8d405d3 100644 --- a/src/Cat-a-lot/definition.json +++ b/src/Cat-a-lot/definition.json @@ -4,7 +4,7 @@ "section": "edit", "excludeSites": ["loginwiki"], "actions": ["view"], - "dependencies": ["ext.gadget.React", "ext.gadget.Util", "jquery.ui", "mediawiki.jqueryMsg", "mediawiki.util"], + "dependencies": ["ext.gadget.JSX", "ext.gadget.Util", "jquery.ui", "mediawiki.jqueryMsg", "mediawiki.util"], "peers": ["Cat-a-lot-pagestyles"], "rights": ["skipcaptcha"] } diff --git a/src/Cat-a-lot/modules/core.tsx b/src/Cat-a-lot/modules/core.tsx index 40b3cca61..9dd466bb0 100644 --- a/src/Cat-a-lot/modules/core.tsx +++ b/src/Cat-a-lot/modules/core.tsx @@ -26,7 +26,7 @@ import { import {DEFAULT_MESSAGES, setMessages} from './messages'; import type {MessageKey, Setting} from './types'; import {getBody, uniqueArray} from 'ext.gadget.Util'; -import React from 'ext.gadget.React'; +import React from 'ext.gadget.JSX'; import {api} from './api'; const {wgCanonicalSpecialPageName, wgFormattedNamespaces, wgNamespaceIds, wgNamespaceNumber, wgTitle} = mw.config.get(); diff --git a/src/CodeLinks/definition.json b/src/CodeLinks/definition.json index 89b5588b0..c29eb4f17 100644 --- a/src/CodeLinks/definition.json +++ b/src/CodeLinks/definition.json @@ -4,6 +4,6 @@ "section": "browser", "excludeSites": ["loginwiki"], "default": true, - "dependencies": ["ext.gadget.React", "ext.gadget.Util", "mediawiki.util"], + "dependencies": ["ext.gadget.JSX", "ext.gadget.Util", "mediawiki.util"], "rights": ["edit"] } diff --git a/src/CodeLinks/modules/addLink.tsx b/src/CodeLinks/modules/addLink.tsx index d21678ca1..9a8520f41 100644 --- a/src/CodeLinks/modules/addLink.tsx +++ b/src/CodeLinks/modules/addLink.tsx @@ -1,4 +1,4 @@ -import React from 'ext.gadget.React'; +import React from 'ext.gadget.JSX'; const addLink = (element: Element, targetTitle: string): void => { if (!(element instanceof Element)) { diff --git a/src/CodeLinks/modules/processComment.tsx b/src/CodeLinks/modules/processComment.tsx index 148350a1e..e62cf4979 100644 --- a/src/CodeLinks/modules/processComment.tsx +++ b/src/CodeLinks/modules/processComment.tsx @@ -1,5 +1,5 @@ import {REGEX_URL} from './constant'; -import React from 'ext.gadget.React'; +import React from 'ext.gadget.JSX'; const processComment = (element: Element): void => { const {firstChild} = element; diff --git a/src/Collapsible/definition.json b/src/Collapsible/definition.json index 34999da3c..79c8f03c3 100644 --- a/src/Collapsible/definition.json +++ b/src/Collapsible/definition.json @@ -4,7 +4,7 @@ "section": "compatibility", "excludeSites": ["loginwiki"], "default": true, - "dependencies": ["ext.gadget.i18n", "ext.gadget.React", "ext.gadget.Util"], + "dependencies": ["ext.gadget.i18n", "ext.gadget.JSX", "ext.gadget.Util"], "hidden": true, "peers": ["NavFrame-pagestyles"] } diff --git a/src/Collapsible/modules/util/generateTogglerElement.tsx b/src/Collapsible/modules/util/generateTogglerElement.tsx index 6c78b9608..740dfadfd 100644 --- a/src/Collapsible/modules/util/generateTogglerElement.tsx +++ b/src/Collapsible/modules/util/generateTogglerElement.tsx @@ -1,4 +1,4 @@ -import React from 'ext.gadget.React'; +import React from 'ext.gadget.JSX'; import {toggler} from './Collapsible.module.less'; const generateTogglerElement = ($collapsible: JQuery, hideText: string, showText: string): JQuery => { diff --git a/src/CookieWarning/components/AgreeButton.tsx b/src/CookieWarning/components/AgreeButton.tsx index 2f972be92..16031efcc 100644 --- a/src/CookieWarning/components/AgreeButton.tsx +++ b/src/CookieWarning/components/AgreeButton.tsx @@ -1,4 +1,4 @@ -import React from 'ext.gadget.React'; +import React from 'ext.gadget.JSX'; import {getMessage} from '../modules/i18n'; interface Props { diff --git a/src/CookieWarning/components/ConsentNotice.tsx b/src/CookieWarning/components/ConsentNotice.tsx index dde6c6809..7be9d8574 100644 --- a/src/CookieWarning/components/ConsentNotice.tsx +++ b/src/CookieWarning/components/ConsentNotice.tsx @@ -1,4 +1,4 @@ -import React from 'ext.gadget.React'; +import React from 'ext.gadget.JSX'; import {getMessage} from '../modules/i18n'; const ConsentNotice = () => ( diff --git a/src/CookieWarning/components/RootElement.tsx b/src/CookieWarning/components/RootElement.tsx index d6b5092b2..430aa12ed 100644 --- a/src/CookieWarning/components/RootElement.tsx +++ b/src/CookieWarning/components/RootElement.tsx @@ -1,6 +1,6 @@ import AgreeButton from './AgreeButton'; import ConsentNotice from './ConsentNotice'; -import React from 'ext.gadget.React'; +import React from 'ext.gadget.JSX'; import {warning} from './CookieWarning.module.less'; interface Props { diff --git a/src/CookieWarning/definition.json b/src/CookieWarning/definition.json index c8de310a6..a89ac0ebc 100644 --- a/src/CookieWarning/definition.json +++ b/src/CookieWarning/definition.json @@ -3,5 +3,5 @@ "description": "D Cookie警示 请求用户同意《个人信息保护方针》", "section": "compatibility", "default": true, - "dependencies": ["ext.gadget.i18n", "ext.gadget.React", "ext.gadget.Util", "mediawiki.storage", "mediawiki.util"] + "dependencies": ["ext.gadget.i18n", "ext.gadget.JSX", "ext.gadget.Util", "mediawiki.storage", "mediawiki.util"] } diff --git a/src/EasyArchive/EasyArchive.tsx b/src/EasyArchive/EasyArchive.tsx index 379c031c4..f8378474c 100644 --- a/src/EasyArchive/EasyArchive.tsx +++ b/src/EasyArchive/EasyArchive.tsx @@ -1,6 +1,6 @@ import {ArcLocNotAllowed, Enabled, InBlackList, NoArcLoc, NotAllowed} from './modules/components/react'; import {getSettings, ifArcLocNotAllowed, isInBlacklist, isNotAllowed, isNotSupported} from './modules/util/getSettings'; -import React from 'ext.gadget.React'; +import React from 'ext.gadget.JSX'; import {addLinks} from './modules/addLinks'; import {appendFooterNotice} from './modules/appendFooterNotice'; diff --git a/src/EasyArchive/definition.json b/src/EasyArchive/definition.json index 1d7811bdf..1c0d65538 100644 --- a/src/EasyArchive/definition.json +++ b/src/EasyArchive/definition.json @@ -4,12 +4,6 @@ "section": "edit", "excludeSites": ["loginwiki"], "actions": ["view"], - "dependencies": [ - "ext.gadget.i18n", - "ext.gadget.React", - "ext.gadget.Toastify", - "ext.gadget.Util", - "mediawiki.Title" - ], + "dependencies": ["ext.gadget.i18n", "ext.gadget.JSX", "ext.gadget.Toastify", "ext.gadget.Util", "mediawiki.Title"], "rights": ["skipcaptcha"] } diff --git a/src/EasyArchive/modules/addLinks.tsx b/src/EasyArchive/modules/addLinks.tsx index aadcbfbaf..0ecdd35c5 100644 --- a/src/EasyArchive/modules/addLinks.tsx +++ b/src/EasyArchive/modules/addLinks.tsx @@ -1,6 +1,6 @@ import {ArchiveAndDeleteSectionLink} from './components/sectionLink'; import {EditConflictNotice} from './components/react'; -import React from 'ext.gadget.React'; +import React from 'ext.gadget.JSX'; import {getSections} from './util/getSection'; import {refresh} from './util/refreshPage'; import {toastify} from 'ext.gadget.Toastify'; diff --git a/src/EasyArchive/modules/components/react.tsx b/src/EasyArchive/modules/components/react.tsx index b11a03b57..7def286e8 100644 --- a/src/EasyArchive/modules/components/react.tsx +++ b/src/EasyArchive/modules/components/react.tsx @@ -1,5 +1,5 @@ import * as OPTIONS from '../../options.json'; -import React, {ReactElement} from 'ext.gadget.React'; +import React, {ReactElement} from 'ext.gadget.JSX'; import {footerNotice, sectionIdSpan} from './EasyArchive.module.less'; import {getMessage} from '../i18n'; import {sanitize} from '../util/sanitize'; diff --git a/src/EasyArchive/modules/components/sectionLink.tsx b/src/EasyArchive/modules/components/sectionLink.tsx index 0e26ba380..f5557dbc3 100644 --- a/src/EasyArchive/modules/components/sectionLink.tsx +++ b/src/EasyArchive/modules/components/sectionLink.tsx @@ -1,6 +1,6 @@ import {OnClick, Pipe, SectionID} from './react'; import {archiveOnClick, removeOnClick} from '../util/onClick'; -import React from 'ext.gadget.React'; +import React from 'ext.gadget.JSX'; import {getMessage} from '../i18n'; interface ArchiveSectionLinkProps { diff --git a/src/EasyArchive/modules/util/onClick.tsx b/src/EasyArchive/modules/util/onClick.tsx index 1ed8434a3..48e3b7b09 100644 --- a/src/EasyArchive/modules/util/onClick.tsx +++ b/src/EasyArchive/modules/util/onClick.tsx @@ -1,6 +1,6 @@ import {archiveSection, removeSection} from './editSection'; import {getArchivedMessage, getArchivingMessage, getDeletedMessage, getDeletingMessage} from './getMessage'; -import React from 'ext.gadget.React'; +import React from 'ext.gadget.JSX'; import {getMessage} from '../i18n'; import {refresh} from './refreshPage'; import {toastify} from 'ext.gadget.Toastify'; diff --git a/src/EditConflict/definition.json b/src/EditConflict/definition.json index 755da6e38..d38c69bcf 100644 --- a/src/EditConflict/definition.json +++ b/src/EditConflict/definition.json @@ -4,6 +4,6 @@ "section": "edit", "actions": ["edit"], "default": true, - "dependencies": ["ext.gadget.i18n", "ext.gadget.React", "ext.gadget.Toastify", "ext.gadget.Util", "mediawiki.api"], + "dependencies": ["ext.gadget.i18n", "ext.gadget.JSX", "ext.gadget.Toastify", "ext.gadget.Util", "mediawiki.api"], "rights": ["edit"] } diff --git a/src/EditConflict/modules/noticeMessage.tsx b/src/EditConflict/modules/noticeMessage.tsx index 4952d54e1..78ef11a68 100644 --- a/src/EditConflict/modules/noticeMessage.tsx +++ b/src/EditConflict/modules/noticeMessage.tsx @@ -1,4 +1,4 @@ -import React from 'ext.gadget.React'; +import React from 'ext.gadget.JSX'; import {getMessage} from './i18n'; const locationReload = () => { diff --git a/src/Editform_AiAssisted/Editform_AiAssisted.ts b/src/Editform_AiAssisted/Editform_AiAssisted.ts index 6b0c84ed7..eb0e2789e 100644 --- a/src/Editform_AiAssisted/Editform_AiAssisted.ts +++ b/src/Editform_AiAssisted/Editform_AiAssisted.ts @@ -14,6 +14,6 @@ void getBody().then(function editForm($body: JQuery): void { }); mw.hook('ve.saveDialog.stateChanged').add((): void => { - processVisualEditor($body); + processVisualEditor(); }); }); diff --git a/src/EnhancedSpecialSearch/components/SelectElement.tsx b/src/EnhancedSpecialSearch/components/SelectElement.tsx index e901187f5..d52bcbb6b 100644 --- a/src/EnhancedSpecialSearch/components/SelectElement.tsx +++ b/src/EnhancedSpecialSearch/components/SelectElement.tsx @@ -1,5 +1,5 @@ import * as OPTIONS from '../options.json'; -import React from 'ext.gadget.React'; +import React from 'ext.gadget.JSX'; import {getMessage} from '../modules/i18n'; import {getOptionData} from '../modules/getOptionData'; diff --git a/src/EnhancedSpecialSearch/definition.json b/src/EnhancedSpecialSearch/definition.json index 2b1aaa8ed..63627d485 100644 --- a/src/EnhancedSpecialSearch/definition.json +++ b/src/EnhancedSpecialSearch/definition.json @@ -4,5 +4,5 @@ "section": "browser", "excludeSites": ["loginwiki", "testwiki"], "default": true, - "dependencies": ["ext.gadget.i18n", "ext.gadget.React", "ext.gadget.Util"] + "dependencies": ["ext.gadget.i18n", "ext.gadget.JSX", "ext.gadget.Util"] } diff --git a/src/EnhancedSpecialSearch/modules/util/openPage.tsx b/src/EnhancedSpecialSearch/modules/util/openPage.tsx index e61f95742..484f5cce9 100644 --- a/src/EnhancedSpecialSearch/modules/util/openPage.tsx +++ b/src/EnhancedSpecialSearch/modules/util/openPage.tsx @@ -1,4 +1,4 @@ -import React from 'ext.gadget.React'; +import React from 'ext.gadget.JSX'; const openPage = (url: string): void => { const element = () as HTMLAnchorElement; diff --git a/src/GeoLocationReader/definition.json b/src/GeoLocationReader/definition.json index 7664bfcad..c03705e0e 100644 --- a/src/GeoLocationReader/definition.json +++ b/src/GeoLocationReader/definition.json @@ -6,8 +6,8 @@ "default": true, "dependencies": [ "ext.gadget.i18n", + "ext.gadget.JSX", "ext.gadget.MarkRights", - "ext.gadget.React", "ext.gadget.Util", "mediawiki.api", "mediawiki.Title" diff --git a/src/GeoLocationReader/modules/components/react.tsx b/src/GeoLocationReader/modules/components/react.tsx index 171c61f45..becd4215b 100644 --- a/src/GeoLocationReader/modules/components/react.tsx +++ b/src/GeoLocationReader/modules/components/react.tsx @@ -1,5 +1,5 @@ import {CLASS_NAME, CLASS_NAME_ICON, CLASS_NAME_TEXT} from '../constant'; -import React, {ReactElement} from 'ext.gadget.React'; +import React, {ReactElement} from 'ext.gadget.JSX'; import {getMessage} from '../i18n'; interface FooterNoticeProps { diff --git a/src/GeoLocationReader/modules/util/appendIcon.tsx b/src/GeoLocationReader/modules/util/appendIcon.tsx index 758c61761..360505fc8 100644 --- a/src/GeoLocationReader/modules/util/appendIcon.tsx +++ b/src/GeoLocationReader/modules/util/appendIcon.tsx @@ -1,6 +1,6 @@ import * as OPTIONS from '../../options.json'; import {FooterIcon, type FooterIconProps} from '../components/react'; -import React from 'ext.gadget.React'; +import React from 'ext.gadget.JSX'; const appendFooterNotice = (element: Element) => { const mountPoint = document.querySelector(OPTIONS.mountPointSelector); diff --git a/src/HistoryDisclaimer/definition.json b/src/HistoryDisclaimer/definition.json index de5cc7b39..934dfbc1d 100644 --- a/src/HistoryDisclaimer/definition.json +++ b/src/HistoryDisclaimer/definition.json @@ -3,6 +3,6 @@ "description": "D 历史版本免责声明", "section": "compatibility", "default": true, - "dependencies": ["ext.gadget.React"], + "dependencies": ["ext.gadget.JSX"], "hidden": true } diff --git a/src/HistoryDisclaimer/modules/getBackground.tsx b/src/HistoryDisclaimer/modules/getBackground.tsx index 01a4d7c35..3be277f9e 100644 --- a/src/HistoryDisclaimer/modules/getBackground.tsx +++ b/src/HistoryDisclaimer/modules/getBackground.tsx @@ -1,4 +1,4 @@ -import React from 'ext.gadget.React'; +import React from 'ext.gadget.JSX'; import {disclaimer} from '../HistoryDisclaimer.module.less'; const Background = () =>
; diff --git a/src/React/React.ts b/src/JSX/JSX.ts similarity index 100% rename from src/React/React.ts rename to src/JSX/JSX.ts diff --git a/src/React/LICENSE b/src/JSX/LICENSE similarity index 100% rename from src/React/LICENSE rename to src/JSX/LICENSE diff --git a/src/React/definition.json b/src/JSX/definition.json similarity index 100% rename from src/React/definition.json rename to src/JSX/definition.json diff --git a/src/React/modules/global.d.ts b/src/JSX/modules/global.d.ts similarity index 77% rename from src/React/modules/global.d.ts rename to src/JSX/modules/global.d.ts index 64eb28823..5b66f0a6b 100644 --- a/src/React/modules/global.d.ts +++ b/src/JSX/modules/global.d.ts @@ -1,4 +1,4 @@ -declare module 'ext.gadget.React' { +declare module 'ext.gadget.JSX' { // 如果使用 jsx-dom,则取消注释以下行 / To Use jsx-dom, uncomment the following line export * from 'jsx-dom'; } diff --git a/src/LinkSpacing/definition.json b/src/LinkSpacing/definition.json index daf17e47d..40c5d6f23 100644 --- a/src/LinkSpacing/definition.json +++ b/src/LinkSpacing/definition.json @@ -3,5 +3,5 @@ "description": "D 为条目内连续的链接插入间隔", "section": "browser", "default": true, - "dependencies": ["ext.gadget.React"] + "dependencies": ["ext.gadget.JSX"] } diff --git a/src/LinkSpacing/util/LinkSpace.tsx b/src/LinkSpacing/util/LinkSpace.tsx index fe1e5e6d1..adfe42874 100644 --- a/src/LinkSpacing/util/LinkSpace.tsx +++ b/src/LinkSpacing/util/LinkSpace.tsx @@ -1,4 +1,4 @@ -import React from 'ext.gadget.React'; +import React from 'ext.gadget.JSX'; import {linkSpace} from './LinkSpacing.module.less'; const LinkSpace = () => ; diff --git a/src/LogFilter/definition.json b/src/LogFilter/definition.json index b7a435616..77337ae4c 100644 --- a/src/LogFilter/definition.json +++ b/src/LogFilter/definition.json @@ -2,6 +2,6 @@ "enable": true, "description": " 基于正则表达式的[[Special:日志|日志]]过滤", "section": "sysop", - "dependencies": ["ext.gadget.React", "ext.gadget.Util", "mediawiki.util"], + "dependencies": ["ext.gadget.JSX", "ext.gadget.Util", "mediawiki.util"], "rights": ["edit"] } diff --git a/src/LogFilter/modules/core.tsx b/src/LogFilter/modules/core.tsx index 55db0aa27..da90f6c5d 100644 --- a/src/LogFilter/modules/core.tsx +++ b/src/LogFilter/modules/core.tsx @@ -1,5 +1,5 @@ import {MESSAGES} from './messages'; -import React from 'ext.gadget.React'; +import React from 'ext.gadget.JSX'; import {rightsFilter} from '../LogFilter.module.less'; const URL_LIFILTER: string | null = mw.util.getParamValue('lifilter'); diff --git a/src/MarkRights-Userpage/components/react.tsx b/src/MarkRights-Userpage/components/react.tsx index 930d09b16..f9d1d654e 100644 --- a/src/MarkRights-Userpage/components/react.tsx +++ b/src/MarkRights-Userpage/components/react.tsx @@ -1,4 +1,4 @@ -import React, {ReactElement} from 'ext.gadget.React'; +import React, {ReactElement} from 'ext.gadget.JSX'; import type {UserRights} from '~/MarkRights/modules/types'; interface FooterNoticeProps { diff --git a/src/MarkRights-Userpage/definition.json b/src/MarkRights-Userpage/definition.json index 0734e20fb..671aeb5a7 100644 --- a/src/MarkRights-Userpage/definition.json +++ b/src/MarkRights-Userpage/definition.json @@ -5,8 +5,8 @@ "excludeSites": ["loginwiki"], "dependencies": [ "ext.gadget.i18n", + "ext.gadget.JSX", "ext.gadget.MarkRights", - "ext.gadget.React", "ext.gadget.Util", "mediawiki.api", "mediawiki.Title" diff --git a/src/MarkRights-Userpage/modules/appendIcon.tsx b/src/MarkRights-Userpage/modules/appendIcon.tsx index 18264b269..e809dd889 100644 --- a/src/MarkRights-Userpage/modules/appendIcon.tsx +++ b/src/MarkRights-Userpage/modules/appendIcon.tsx @@ -1,6 +1,6 @@ import * as OPTIONS from '../options.json'; import {FooterIcon, type IndicatorProps} from '../components/react'; -import React from 'ext.gadget.React'; +import React from 'ext.gadget.JSX'; const appendFooterNotice = (element: Element) => { const mountPoint = document.querySelector(OPTIONS.mountPointSelector); diff --git a/src/NoteTA/definition.json b/src/NoteTA/definition.json index eef2c1313..d2dc82c41 100644 --- a/src/NoteTA/definition.json +++ b/src/NoteTA/definition.json @@ -6,7 +6,7 @@ "default": true, "dependencies": [ "ext.gadget.i18n", - "ext.gadget.React", + "ext.gadget.JSX", "ext.gadget.Util", "jquery.makeCollapsible", "mediawiki.api", diff --git a/src/NoteTA/modules/util/ApiRetryFailError.tsx b/src/NoteTA/modules/util/ApiRetryFailError.tsx index 537ef5fed..199460576 100644 --- a/src/NoteTA/modules/util/ApiRetryFailError.tsx +++ b/src/NoteTA/modules/util/ApiRetryFailError.tsx @@ -1,4 +1,4 @@ -import React from 'ext.gadget.React'; +import React from 'ext.gadget.JSX'; import {getMessage} from '../i18n'; class ApiRetryFailError extends Error { diff --git a/src/NoteTA/modules/util/generatePortletLink.tsx b/src/NoteTA/modules/util/generatePortletLink.tsx index 70affc00b..48117fb8b 100644 --- a/src/NoteTA/modules/util/generatePortletLink.tsx +++ b/src/NoteTA/modules/util/generatePortletLink.tsx @@ -1,5 +1,5 @@ import * as OPTIONS from '../../options.json'; -import React from 'ext.gadget.React'; +import React from 'ext.gadget.JSX'; import {portletId} from '../initGlobalMethods'; const generatePortletLink = (hash: string): JQuery | undefined => { diff --git a/src/NoteTA/modules/viewer.tsx b/src/NoteTA/modules/viewer.tsx index 4d74d5374..b24f16121 100644 --- a/src/NoteTA/modules/viewer.tsx +++ b/src/NoteTA/modules/viewer.tsx @@ -1,7 +1,7 @@ import * as OPTIONS from '../options.json'; import {type ApiParseResponse, type ApiResponse, parseWikitext} from './parseWikitext'; import {ApiRetryFailError} from './util/ApiRetryFailError'; -import React from 'ext.gadget.React'; +import React from 'ext.gadget.JSX'; import {assert} from './util/assert'; import {getMessage} from './i18n'; import {viewerMap} from './initViewMap'; diff --git a/src/OnlineAdmins/definition.json b/src/OnlineAdmins/definition.json index a5bc5b35c..66cf62bf2 100644 --- a/src/OnlineAdmins/definition.json +++ b/src/OnlineAdmins/definition.json @@ -3,5 +3,5 @@ "description": " 查看站务人员在线情况", "section": "sysop", "excludeSites": ["loginwiki"], - "dependencies": ["ext.gadget.i18n", "ext.gadget.React", "ext.gadget.Util", "mediawiki.api", "mediawiki.util"] + "dependencies": ["ext.gadget.i18n", "ext.gadget.JSX", "ext.gadget.Util", "mediawiki.api", "mediawiki.util"] } diff --git a/src/OnlineAdmins/modules/components/groupList.tsx b/src/OnlineAdmins/modules/components/groupList.tsx index d4a3d309f..59b9ecae8 100644 --- a/src/OnlineAdmins/modules/components/groupList.tsx +++ b/src/OnlineAdmins/modules/components/groupList.tsx @@ -1,5 +1,5 @@ import {section, sectionList, talkPageLink} from './OnlineAdmins.module.less'; -import React from 'ext.gadget.React'; +import React from 'ext.gadget.JSX'; import {getMessage} from '../i18n'; import {sanitize} from '../util/sanitize'; diff --git a/src/PagePatroller/definition.json b/src/PagePatroller/definition.json index 79b9e6cd2..89f1274c4 100644 --- a/src/PagePatroller/definition.json +++ b/src/PagePatroller/definition.json @@ -4,6 +4,6 @@ "section": "sysop", "excludeSites": ["loginwiki"], "default": true, - "dependencies": ["ext.gadget.i18n", "ext.gadget.React", "ext.gadget.Util", "mediawiki.api", "mediawiki.util"], + "dependencies": ["ext.gadget.i18n", "ext.gadget.JSX", "ext.gadget.Util", "mediawiki.api", "mediawiki.util"], "rights": ["autopatrol", "patrol"] } diff --git a/src/PagePatroller/modules/components/react.tsx b/src/PagePatroller/modules/components/react.tsx index 2b5c6f673..2ca1571c9 100644 --- a/src/PagePatroller/modules/components/react.tsx +++ b/src/PagePatroller/modules/components/react.tsx @@ -1,5 +1,5 @@ import * as OPTIONS from '../../options.json'; -import React, {ReactElement} from 'ext.gadget.React'; +import React, {ReactElement} from 'ext.gadget.JSX'; import {getMessage} from '../i18n'; interface FooterNoticeProps { diff --git a/src/PagePatroller/modules/showPagePatroller.tsx b/src/PagePatroller/modules/showPagePatroller.tsx index 31f3dc038..75fbd8a1d 100644 --- a/src/PagePatroller/modules/showPagePatroller.tsx +++ b/src/PagePatroller/modules/showPagePatroller.tsx @@ -1,6 +1,6 @@ import * as OPTIONS from '../options.json'; import {ErrorMessage, FooterNotice, Loading, NotPatrolledYet, Patrolled} from './components/react'; -import React from 'ext.gadget.React'; +import React from 'ext.gadget.JSX'; import {getPatroller} from './util/getPatroller'; const appendFooterNotice = (element: Element) => { diff --git a/src/QueryContributors/definition.json b/src/QueryContributors/definition.json index c6b1833f1..de386ee71 100644 --- a/src/QueryContributors/definition.json +++ b/src/QueryContributors/definition.json @@ -3,5 +3,5 @@ "description": " 查阅页面贡献者", "section": "appear", "excludeSites": ["loginwiki"], - "dependencies": ["ext.gadget.i18n", "ext.gadget.React", "ext.gadget.Util", "mediawiki.api", "mediawiki.util"] + "dependencies": ["ext.gadget.i18n", "ext.gadget.JSX", "ext.gadget.Util", "mediawiki.api", "mediawiki.util"] } diff --git a/src/QueryContributors/modules/appendElement.tsx b/src/QueryContributors/modules/appendElement.tsx index 92d818aa0..93e81b7a2 100644 --- a/src/QueryContributors/modules/appendElement.tsx +++ b/src/QueryContributors/modules/appendElement.tsx @@ -1,6 +1,6 @@ import * as OPTIONS from '../options.json'; import {FooterUserList} from './components/react'; -import React from 'ext.gadget.React'; +import React from 'ext.gadget.JSX'; const appendFooterNotice = (element: Element) => { const mountPoint = document.querySelector(OPTIONS.mountPointSelector); diff --git a/src/QueryContributors/modules/components/react.tsx b/src/QueryContributors/modules/components/react.tsx index 3f586cee6..545aa94ec 100644 --- a/src/QueryContributors/modules/components/react.tsx +++ b/src/QueryContributors/modules/components/react.tsx @@ -1,5 +1,5 @@ import * as OPTIONS from '../../options.json'; -import React, {ReactElement} from 'ext.gadget.React'; +import React, {ReactElement} from 'ext.gadget.JSX'; import {getMessage} from '../i18n'; import {sanitize} from '../util/sanitize'; diff --git a/src/QuickPatrol/definition.json b/src/QuickPatrol/definition.json index 7531f3da6..752d87da4 100644 --- a/src/QuickPatrol/definition.json +++ b/src/QuickPatrol/definition.json @@ -3,6 +3,6 @@ "description": " 在“[[Special:最新页面|新页面]]”界面中快速巡查页面", "section": "sysop", "excludeSites": ["loginwiki"], - "dependencies": ["ext.gadget.i18n", "ext.gadget.React", "ext.gadget.Util", "mediawiki.api", "mediawiki.util"], + "dependencies": ["ext.gadget.i18n", "ext.gadget.JSX", "ext.gadget.Util", "mediawiki.api", "mediawiki.util"], "rights": ["patrol"] } diff --git a/src/QuickPatrol/modules/patrolPages.tsx b/src/QuickPatrol/modules/patrolPages.tsx index 65f0c0d8c..31effeff7 100644 --- a/src/QuickPatrol/modules/patrolPages.tsx +++ b/src/QuickPatrol/modules/patrolPages.tsx @@ -1,4 +1,4 @@ -import React from 'ext.gadget.React'; +import React from 'ext.gadget.JSX'; import {api} from './api'; import {getMessage} from './i18n'; diff --git a/src/RRD/components/DialogInner.tsx b/src/RRD/components/DialogInner.tsx index 6b686cefc..1b6ae7894 100644 --- a/src/RRD/components/DialogInner.tsx +++ b/src/RRD/components/DialogInner.tsx @@ -1,4 +1,4 @@ -import React from 'ext.gadget.React'; +import React from 'ext.gadget.JSX'; import {contentWrapper} from './DialogInner.module.less'; import {getMessage} from '../modules/i18n'; import {isSpecialLog} from '../modules/isSpecialLog'; diff --git a/src/RRD/components/ReportButton.tsx b/src/RRD/components/ReportButton.tsx index 4723b558d..5be3a24d5 100644 --- a/src/RRD/components/ReportButton.tsx +++ b/src/RRD/components/ReportButton.tsx @@ -1,5 +1,5 @@ import * as OPTIONS from '../options.json'; -import React from 'ext.gadget.React'; +import React from 'ext.gadget.JSX'; import {getMessage} from '../modules/i18n'; import {isSpecialLog} from '../modules/isSpecialLog'; diff --git a/src/RRD/definition.json b/src/RRD/definition.json index d37b93fe4..196fa85ae 100644 --- a/src/RRD/definition.json +++ b/src/RRD/definition.json @@ -5,7 +5,7 @@ "excludeSites": ["loginwiki"], "dependencies": [ "ext.gadget.i18n", - "ext.gadget.React", + "ext.gadget.JSX", "ext.gadget.Util", "jquery.ui", "mediawiki.api", diff --git a/src/RRD/modules/showDialog.ts b/src/RRD/modules/showDialog.ts index 630fb0e45..79306c4cf 100644 --- a/src/RRD/modules/showDialog.ts +++ b/src/RRD/modules/showDialog.ts @@ -1,6 +1,6 @@ import {config, updateConfig} from './rrdConfig'; import DialogInner from '../components/DialogInner'; -import React from 'ext.gadget.React'; +import React from 'ext.gadget.JSX'; import {getMessage} from './i18n'; import {isSpecialLog} from './isSpecialLog'; import {loadIds} from './loadIds'; diff --git a/src/Report/components/ReportButton.tsx b/src/Report/components/ReportButton.tsx index 0d4ff6e8c..fb401982b 100644 --- a/src/Report/components/ReportButton.tsx +++ b/src/Report/components/ReportButton.tsx @@ -1,5 +1,5 @@ import {CLASS_NAME_BUTTON} from '../modules/constant'; -import React from 'ext.gadget.React'; +import React from 'ext.gadget.JSX'; import {getMessage} from '../modules/i18n'; const LINK_TITLE: string = getMessage('Report'); diff --git a/src/Report/definition.json b/src/Report/definition.json index 255e6bfcc..a73eb705d 100644 --- a/src/Report/definition.json +++ b/src/Report/definition.json @@ -4,6 +4,6 @@ "section": "sysop", "excludeSites": ["licencewiki", "loginwiki", "mncqiuwenbaike", "testwiki"], "default": true, - "dependencies": ["ext.gadget.i18n", "ext.gadget.React", "ext.gadget.Tippy", "ext.gadget.Util", "mediawiki.util"], + "dependencies": ["ext.gadget.i18n", "ext.gadget.JSX", "ext.gadget.Tippy", "ext.gadget.Util", "mediawiki.util"], "peers": ["Report-pagestyles"] } diff --git a/src/ScrollUpButton/components/scrollButton.tsx b/src/ScrollUpButton/components/scrollButton.tsx index 738f3bfb5..ad4d5bc3e 100644 --- a/src/ScrollUpButton/components/scrollButton.tsx +++ b/src/ScrollUpButton/components/scrollButton.tsx @@ -1,5 +1,5 @@ import {CLASS_NAME, CLASS_NAME_DOWN, CLASS_NAME_UP} from '../modules/constant'; -import React from 'ext.gadget.React'; +import React from 'ext.gadget.JSX'; import {getMessage} from '../modules/i18n'; import {scrollTop} from 'ext.gadget.Util'; diff --git a/src/ScrollUpButton/definition.json b/src/ScrollUpButton/definition.json index 43ebc5e5b..c7f183d21 100644 --- a/src/ScrollUpButton/definition.json +++ b/src/ScrollUpButton/definition.json @@ -3,6 +3,6 @@ "description": "D 在页面右下角添加页顶、页底跳转按钮", "section": "browser", "default": true, - "dependencies": ["ext.gadget.i18n", "ext.gadget.React", "ext.gadget.Tippy", "ext.gadget.Util"], + "dependencies": ["ext.gadget.i18n", "ext.gadget.JSX", "ext.gadget.Tippy", "ext.gadget.Util"], "peers": ["ScrollUpButton-pagestyles"] } diff --git a/src/ShortURL/definition.json b/src/ShortURL/definition.json index 425718bb4..1118d46fe 100644 --- a/src/ShortURL/definition.json +++ b/src/ShortURL/definition.json @@ -6,7 +6,7 @@ "dependencies": [ "ext.gadget.Clipboard", "ext.gadget.i18n", - "ext.gadget.React", + "ext.gadget.JSX", "ext.gadget.Tippy", "ext.gadget.Toastify", "ext.gadget.Util", diff --git a/src/ShortURL/modules/addLink.tsx b/src/ShortURL/modules/addLink.tsx index ff888259a..410acf46f 100644 --- a/src/ShortURL/modules/addLink.tsx +++ b/src/ShortURL/modules/addLink.tsx @@ -1,5 +1,5 @@ import {Clipboard} from 'ext.gadget.Clipboard'; -import React from 'ext.gadget.React'; +import React from 'ext.gadget.JSX'; import {addEventListenerWithRemover} from 'ext.gadget.Util'; import {getMessage} from './i18n'; import {getShortDomains} from './util/getShortDomains'; diff --git a/src/SiteCommon_JS/definition.json b/src/SiteCommon_JS/definition.json index 245d8f548..75859d46b 100644 --- a/src/SiteCommon_JS/definition.json +++ b/src/SiteCommon_JS/definition.json @@ -5,7 +5,7 @@ "default": true, "dependencies": [ "ext.gadget.i18n", - "ext.gadget.React", + "ext.gadget.JSX", "ext.gadget.Tippy", "ext.gadget.Util", "mediawiki.Title", diff --git a/src/SiteCommon_JS/modules/core.tsx b/src/SiteCommon_JS/modules/core.tsx index 9f9584f2b..c285356c5 100644 --- a/src/SiteCommon_JS/modules/core.tsx +++ b/src/SiteCommon_JS/modules/core.tsx @@ -1,4 +1,4 @@ -import React from 'ext.gadget.React'; +import React from 'ext.gadget.JSX'; import {getMessage} from './i18n'; import {uniqueArray} from 'ext.gadget.Util'; diff --git a/src/SpecialWikitext/components/generateElements.tsx b/src/SpecialWikitext/components/generateElements.tsx index d3d3b6e7f..7bf3f5155 100644 --- a/src/SpecialWikitext/components/generateElements.tsx +++ b/src/SpecialWikitext/components/generateElements.tsx @@ -1,5 +1,5 @@ import {previewLoadingContent, previewLoadingInner} from './SpecialWikitext.module.less'; -import React from 'ext.gadget.React'; +import React from 'ext.gadget.JSX'; import ajaxLoader from '../images/Ajax-loader.gif'; import alert from '../images/Alert.png'; import {getMessage} from '../modules/i18n'; diff --git a/src/SpecialWikitext/definition.json b/src/SpecialWikitext/definition.json index a756bca9b..b207d6fa7 100644 --- a/src/SpecialWikitext/definition.json +++ b/src/SpecialWikitext/definition.json @@ -4,6 +4,6 @@ "section": "compatibility", "excludeSites": ["loginwiki"], "default": true, - "dependencies": ["ext.gadget.i18n", "ext.gadget.React", "ext.gadget.Util", "mediawiki.api", "mediawiki.util"], + "dependencies": ["ext.gadget.i18n", "ext.gadget.JSX", "ext.gadget.Util", "mediawiki.api", "mediawiki.util"], "hidden": true } diff --git a/src/SpecialWikitext/modules/notice.ts b/src/SpecialWikitext/modules/notice.ts index d38d8c79e..22a1121cc 100644 --- a/src/SpecialWikitext/modules/notice.ts +++ b/src/SpecialWikitext/modules/notice.ts @@ -1,5 +1,5 @@ import {Failed, Loading} from '../components/generateElements'; -import React from 'ext.gadget.React'; +import React from 'ext.gadget.JSX'; import {addParsedWikitext} from './util/addParsedWikitext'; // [[File:Gnome-dialog-warning2.svg|32px]] diff --git a/src/SpecialWikitext/modules/util/addParsedWikitext.ts b/src/SpecialWikitext/modules/util/addParsedWikitext.ts index c9891e6ca..c57c2aa67 100644 --- a/src/SpecialWikitext/modules/util/addParsedWikitext.ts +++ b/src/SpecialWikitext/modules/util/addParsedWikitext.ts @@ -1,4 +1,4 @@ -import React from 'ext.gadget.React'; +import React from 'ext.gadget.JSX'; import {checkElementExist} from './checkElementExist'; // 将解析后的wikitext加入页面中 diff --git a/src/TranslateVariants/definition.json b/src/TranslateVariants/definition.json index e872a6507..583595217 100644 --- a/src/TranslateVariants/definition.json +++ b/src/TranslateVariants/definition.json @@ -4,7 +4,7 @@ "section": "sysop", "dependencies": [ "ext.gadget.i18n", - "ext.gadget.React", + "ext.gadget.JSX", "ext.gadget.Util", "mediawiki.api", "mediawiki.diff.styles", diff --git a/src/TranslateVariants/modules/translateVariants.tsx b/src/TranslateVariants/modules/translateVariants.tsx index 9c6f51f7e..b4741094b 100644 --- a/src/TranslateVariants/modules/translateVariants.tsx +++ b/src/TranslateVariants/modules/translateVariants.tsx @@ -1,6 +1,6 @@ import * as OPTIONS from '../options.json'; import {noChanges, publishChanges, submitAll, warning} from '../TranslateVariants.module.less'; -import React from 'ext.gadget.React'; +import React from 'ext.gadget.JSX'; import {api} from './api'; type Langs = 'zh' | 'zh-hans' | 'zh-cn' | 'zh-my' | 'zh-sg' | 'zh-hant' | 'zh-hk' | 'zh-mo' | 'zh-tw'; diff --git a/src/Util/definition.json b/src/Util/definition.json index f72ef62e6..4e28b2bd2 100644 --- a/src/Util/definition.json +++ b/src/Util/definition.json @@ -2,6 +2,6 @@ "enable": true, "description": " 工具函数库", "section": "compatibility", - "dependencies": ["ext.gadget.React", "jquery.textSelection", "mediawiki.storage"], + "dependencies": ["ext.gadget.JSX", "jquery.textSelection", "mediawiki.storage"], "hidden": true } diff --git a/src/Util/modules/oouiConfirmWithStyle.tsx b/src/Util/modules/oouiConfirmWithStyle.tsx index 10b51aa35..a0cf1dda2 100644 --- a/src/Util/modules/oouiConfirmWithStyle.tsx +++ b/src/Util/modules/oouiConfirmWithStyle.tsx @@ -1,4 +1,4 @@ -import React from 'ext.gadget.React'; +import React from 'ext.gadget.JSX'; type OouiConfirmWithStyle = (message: string) => JQuery.Promise; diff --git a/src/VariantAllyDialog/components/VAButton.vue b/src/VariantAllyDialog/components/VAButton.vue index ea3318c22..4d794d724 100644 --- a/src/VariantAllyDialog/components/VAButton.vue +++ b/src/VariantAllyDialog/components/VAButton.vue @@ -20,7 +20,7 @@ defineProps<{ }" @click="$emit('click')" > - + diff --git a/src/VariantAllyDialog/components/VAIcon.vue b/src/VariantAllyDialog/components/VAIcon.vue index caaf3408a..efec83b23 100644 --- a/src/VariantAllyDialog/components/VAIcon.vue +++ b/src/VariantAllyDialog/components/VAIcon.vue @@ -6,9 +6,7 @@ withDefaults( icon: Icon; size: number; }>(), - { - size: 20, - } + {} ); export type {Icon}; diff --git a/src/WhoIsActive/definition.json b/src/WhoIsActive/definition.json index 62bdd4c98..0ff0a60cb 100644 --- a/src/WhoIsActive/definition.json +++ b/src/WhoIsActive/definition.json @@ -5,7 +5,7 @@ "excludeSites": ["loginwiki"], "dependencies": [ "ext.gadget.i18n", - "ext.gadget.React", + "ext.gadget.JSX", "ext.gadget.Util", "mediawiki.api", "mediawiki.Title", diff --git a/src/WhoIsActive/modules/util/getLastActiveMarker.tsx b/src/WhoIsActive/modules/util/getLastActiveMarker.tsx index 797d47040..ce0e378c7 100644 --- a/src/WhoIsActive/modules/util/getLastActiveMarker.tsx +++ b/src/WhoIsActive/modules/util/getLastActiveMarker.tsx @@ -1,4 +1,4 @@ -import React from 'ext.gadget.React'; +import React from 'ext.gadget.JSX'; import {getMessage} from '../i18n'; type TimeSpan = 'ThisWeek' | 'ThisMonth' | 'ThisSeason' | 'ThisSemiyear' | 'ThisYear' | 'OverAYear'; diff --git a/src/WordCount/components/WordCount.tsx b/src/WordCount/components/WordCount.tsx index dd662be28..73e81cbd6 100644 --- a/src/WordCount/components/WordCount.tsx +++ b/src/WordCount/components/WordCount.tsx @@ -1,5 +1,5 @@ import {getCJKCountByTextLength, getCountByTextLength, getUTF8CountByTextLength} from '../modules/getCount'; -import React from 'ext.gadget.React'; +import React from 'ext.gadget.JSX'; import {tip} from './WordCount.module.less'; interface Props { diff --git a/src/WordCount/definition.json b/src/WordCount/definition.json index eaa7b4ee4..162534488 100644 --- a/src/WordCount/definition.json +++ b/src/WordCount/definition.json @@ -4,5 +4,5 @@ "section": "browser", "excludeSites": ["loginwiki"], "actions": ["view"], - "dependencies": ["ext.gadget.i18n", "ext.gadget.React", "ext.gadget.Util"] + "dependencies": ["ext.gadget.i18n", "ext.gadget.JSX", "ext.gadget.Util"] } diff --git a/src/WordCount/modules/wordCount.tsx b/src/WordCount/modules/wordCount.tsx index fcb23fdd3..ad5211e34 100644 --- a/src/WordCount/modules/wordCount.tsx +++ b/src/WordCount/modules/wordCount.tsx @@ -1,4 +1,4 @@ -import React from 'ext.gadget.React'; +import React from 'ext.gadget.JSX'; import WordCount from '../components/WordCount'; import {tip} from '../components/WordCount.module.less'; diff --git a/src/global.d.ts b/src/global.d.ts index e7cdd4fd6..42ccaed5f 100644 --- a/src/global.d.ts +++ b/src/global.d.ts @@ -22,10 +22,3 @@ declare module '*.jpg'; declare module '*.jpeg'; declare module '*.png'; declare module '*.svg'; - -declare module '*.vue' { - import type {DefineComponent} from 'vue'; - // eslint-disable-next-line @typescript-eslint/no-empty-object-type, @typescript-eslint/no-explicit-any - const component: DefineComponent<{}, {}, any>; - export default component; -}