nsc-react-component 4.3.6 → 4.3.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -561,10 +561,17 @@ class FormPage extends PureComponent {
561
561
  var _child$props;
562
562
  if ((child === null || child === void 0 || (_child$props = child.props) === null || _child$props === void 0 ? void 0 : _child$props.pageType) == "formPane") {
563
563
  typeof item == "object" && selfPanes.push(child);
564
+ } else {
565
+ typeof item == "object" && selfButtons.push(child);
564
566
  }
565
567
  });
566
568
  } else {
567
- typeof item == "object" && selfButtons.push(item);
569
+ var _item$props6;
570
+ if ((item === null || item === void 0 || (_item$props6 = item.props) === null || _item$props6 === void 0 ? void 0 : _item$props6.pageType) == "formPane") {
571
+ typeof item == "object" && selfPanes.push(item);
572
+ } else {
573
+ typeof item == "object" && selfButtons.push(item);
574
+ }
568
575
  }
569
576
  });
570
577
  } else if (children) {
@@ -700,4 +707,4 @@ class FormPage extends PureComponent {
700
707
  }
701
708
  }
702
709
  export default FormPage;
703
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIlB1cmVDb21wb25lbnQiLCJGb3JtIiwiZ2V0Tm9kZSIsIm1lc3NhZ2UiLCJDb2wiLCJSb3ciLCJpc0VtcHR5T2JqIiwiZ2V0TG9jYWxTdG9yZSIsImRheWpzIiwibG9kYXNoIiwiQnV0dG9uIiwiVXBsb2FkIiwiY2xzIiwiTnNjUmVxdWVzdCIsImNvbnZlcnRTdHJpbmdUb09iaiIsIkZvcm1QYWdlIiwiY29uc3RydWN0b3IiLCJhcmd1bWVudHMiLCJfZGVmaW5lUHJvcGVydHkiLCJjcmVhdGVSZWYiLCJsb2FkaW5nIiwibGFiZWwiLCJwcm9wcyIsImVkaXRUeXBlIiwiZWRpdG9yRmxhZyIsInZhbHVlIiwiZGljdE5hbWVzIiwiZmlsZUxpc3QiLCJ3aWR0aCIsImVkaXRJZCIsImV2IiwiZGF0YSIsIkpTT04iLCJwYXJzZSIsIl90aGlzIiwiZXZlbnRUeXBlIiwicGF5bG9hZCIsImNsb3NlIiwic2V0U3RhdGUiLCJjb21wb25lbnREaWRNb3VudCIsIndpbmRvdyIsImFkZEV2ZW50TGlzdGVuZXIiLCJsaXN0ZW5NZXNzYWdlIiwiZm9ybVR5cGUiLCJyZXF1ZXN0T2JqZWN0IiwiZGV0YWlsVXJsIiwiZ2V0IiwicGFyYW1zIiwiaWQiLCJzdGF0ZSIsInhzc0ZpbHRlciIsImF1dG9QcmVmaXgiLCJ0aGVuIiwicmVzIiwiY29kZSIsIl90aGlzJGZvcm1SZWYkY3VycmVudCIsImZvcm1SZWYiLCJjdXJyZW50Iiwic2V0RmllbGRzVmFsdWUiLCJfb2JqZWN0U3ByZWFkIiwiZGVmYXVsdFZhbHVlIiwiX3RoaXMkZm9ybVJlZiRjdXJyZW50MiIsImNvbnZlcnREZWZhdWx0VmFsdWUiLCJjb21wb25lbnRXaWxsVW5tb3VudCIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJVdGlscyIsImZ1bmNzIiwicGFnZVJlZiIsInJlZnMiLCJyZWZMaXN0Iiwic2hvdyIsIm9yZ1ZhbHVlIiwiZWRpdG9yZmxhZyIsImxlbmd0aCIsInVuZGVmaW5lZCIsImNhbGxCYWNrIiwiX3RoaXMkZm9ybVJlZiRjdXJyZW50MyIsImNvbnZlcnRWYWx1ZSIsInNob3dGb3JtIiwiYWZ0ZXJSZW5kZXIiLCJfdGhpcyRmb3JtUmVmJGN1cnJlbnQ0IiwiaGlkZSIsIl90aGlzJGZvcm1SZWYkY3VycmVudDUiLCJvbkhpZGVGb3JtIiwiaGlkZUZvcm0iLCJfdGhpcyRmb3JtUmVmJGN1cnJlbnQ2Iiwic2V0TG9hZGluZyIsInNldEVkaXRUeXBlIiwidHlwZSIsInNldEVkaXRJZCIsImdldEZvcm1WYWx1ZSIsIl90aGlzJGZvcm1SZWYkY3VycmVudDciLCJmb3JtVmFsdWUiLCJnZXRGaWVsZHNWYWx1ZSIsImNsb25lRGVlcCIsImZpbGVGb3JtYXQiLCJuZXdGaWxlTGlzdCIsIm1hcCIsIml0ZW0iLCJnZXRGaWxlTGlzdCIsInN1Ym1pdEZsYWciLCJlcnJvciIsImRhdGVWYWx1ZUZvcm1hdCIsImtleSIsIm9sZGRhdGEiLCJBcnJheSIsImlzQXJyYXkiLCJmb3JtYXQiLCJyYW5nZXJEYXRlIiwiZGF0ZUZvcm1hdCIsImUiLCJuZXdEYXRhIiwic3RyaW5naWZ5IiwidmFsdWVzIiwiZm9yRWFjaCIsImZpbGVLZXkiLCJ2YWx1ZTEiLCJ2YWx1ZTIiLCJzZXRGb3JtVmFsdWUiLCJfdGhpcyRmb3JtUmVmJGN1cnJlbnQ4IiwibmV3VmFsdWUiLCJkb1N1Ym1pdCIsImZvcm1kYXRhIiwiX3RoaXMkZm9ybVJlZiRjdXJyZW50OSIsInN1Ym1pdFVybCIsInN1Ym1pdFBhcmFtcyIsInJlcXVlc3RDb25maWciLCJhZGRVcmwiLCJlZGl0b3JVcmwiLCJhZGRQYXJhbXMiLCJlZGl0b3JQYXJhbXMiLCJ1cmwiLCJmdW5jIiwiRnVuY3Rpb24iLCJjb252ZXJQYXJhbXMiLCJjb25zb2xlIiwib3RoZXJQYXJhbXMiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMiLCJfZXhjbHVkZWQiLCJvblN1Ym1pdCIsIm5vVW5kZWZpbmVkIiwibXNnIiwic3VjY2VzcyIsInNldFRpbWVvdXQiLCJvYmoiLCJmaWxlSWQiLCJmaWxlTmFtZSIsInN0YXR1cyIsInB1c2giLCJfdGhpcyRmb3JtUmVmJGN1cnJlbnQxMCIsInZhbGlkIiwidmFsaWRhdGVGaWVsZHMiLCJyZXR1cm5EYXRhIiwiY2F0Y2giLCJlcnJvckluZm8iLCJ2YWx1ZUNoYW5nZSIsIl9yZWYiLCJ2YWx1ZU9wdGlvbiIsImRpY3ROYW1lIiwibmV3TmFtZXMiLCJvbkNoYW5nZSIsImV2ZW50T3B0aW9uIiwidmFsdWVTdHIiLCJzZWxmRnVuYyIsInJlbmRlckZvcm0iLCJmb3JtcyIsIm5ld1ZhbGlkIiwiY3JlYXRlRWxlbWVudCIsImd1dHRlciIsImluZGV4IiwiX2l0ZW0kcHJvcHMiLCJpdGVtUHJvcHMiLCJ2YWx1ZUZvcm1hdCIsIm5hbWUiLCJzcGxpdCIsImFsbG93Q2hhcnMiLCJwbGFjZWhvbGRlciIsImNvbmNhdCIsImJpbmQiLCJkYXRhVHlwZSIsImRpc2FibGVkIiwicnVsZXMiLCJyZXF1aXJlZCIsIml0ZW1SZWYiLCJfaXRlbSRwcm9wczIiLCJzcGFuIiwic3R5bGUiLCJkaXNwbGF5IiwiSXRlbSIsImNvbXBvbmVudE5hbWUiLCJub1N0eWxlIiwiZm9ybVJlbmRlciIsInJlZiIsIl9pdGVtJHByb3BzMyIsIl9pdGVtJHByb3BzNCIsIl9pdGVtJHByb3BzNSIsIl9leHRlbmRzIiwib25MaXN0Q2hhbmdlIiwibGlzdCIsInNob3dVcGxvYWRMaXN0Iiwic2hvd0Rvd25sb2FkSWNvbiIsInNob3dSZW1vdmVJY29uIiwiY2hpbGRyZW4iLCJyZW5kZXIiLCJmb290ZXIiLCJ0aXRsZSIsIm1vZGFsUHJvcHMiLCJkZWZhdWx0TW9kYWxQcm9wcyIsImRyYXdlclByb3BzIiwiZGVmYXVsdERyYXdlclByb3BzIiwic2VsZkJ1dHRvbnMiLCJzZWxmUGFuZXMiLCJjaGlsZCIsIl9jaGlsZCRwcm9wcyIsInBhZ2VUeXBlIiwib25PayIsIm9uQ2FuY2VsIiwib2tCdXR0b25Qcm9wcyIsImNlbnRlcmVkIiwiZm9vdGVyQnV0dG9uIiwib25DbG9zZSIsIm5ld0Zvcm1zT2JqIiwiZm9ybUdyb3VwcyIsIm90aGVyR3J1cHMiLCJzaG93Rm9ybXMiLCJncm91cE5hbWUiLCJpbmRleE9mIiwiZ3JvdXBGb3JtcyIsImZvcm0iLCJQYW5lV2l0aG91dFBhZ2VUeXBlIiwiUGFuZSIsImNsZWFuUHJvcHMiLCJfZXhjbHVkZWQyIiwic2hvd01vZGVsIiwib25WYWx1ZXNDaGFuZ2UiLCJjaGFuZ2VkVmFsdWVzIiwiYWxsVmFsdWVzIiwib25Gb3JtQ2hhbmdlIiwiY2hhbmdlVmFsaWQiLCJjbGFzc05hbWUiLCJPYmplY3QiLCJrZXlzIiwiZm9vdGVyQ2xhc3NOYW1lIiwiY2FuY2VsQnV0dG9uUHJvcHMiLCJvbkNsaWNrIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvcGFnZS9Gb3JtUGFnZS9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IFB1cmVDb21wb25lbnQsIFJlYWN0Tm9kZSB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgRm9ybSBmcm9tIFwiLi4vLi4vYmFzZS9mb3JtXCI7XHJcbmltcG9ydCB7IGdldExlc3MsIGdldE5vZGUgfSBmcm9tIFwiLi4vLi4vdXRpbHNcIjtcclxuaW1wb3J0IG1lc3NhZ2UgZnJvbSBcIi4uLy4uL2Jhc2UvbWVzc2FnZVwiO1xyXG5pbXBvcnQgQ29sIGZyb20gXCIuLi8uLi9iYXNlL2dyaWQvQ29sXCI7XHJcbmltcG9ydCBSb3cgZnJvbSBcIi4uLy4uL2Jhc2UvZ3JpZC9Sb3dcIjtcclxuaW1wb3J0IHsgaXNFbXB0eU9iaiwgZ2V0TG9jYWxTdG9yZSB9IGZyb20gXCJAYmotbnNjL2Z1bmN0aW9uc1wiO1xyXG5pbXBvcnQgZGF5anMgZnJvbSBcImRheWpzXCI7XHJcbmltcG9ydCBcIi4vaW5kZXgubW9kdWxlLmxlc3NcIjtcclxuaW1wb3J0IGxvZGFzaCBmcm9tIFwibG9kYXNoXCI7XHJcbmltcG9ydCBCdXR0b24gZnJvbSBcIi4uLy4uL2Jhc2UvYnV0dG9uXCI7XHJcbmltcG9ydCBVcGxvYWQgZnJvbSBcIi4uLy4uL2Jhc2UvdXBsb2FkXCI7XHJcbmltcG9ydCBjbHMgZnJvbSBcImNsYXNzbmFtZXNcIjtcclxuaW1wb3J0IHsgSUZvcm1Qcm9wcyB9IGZyb20gXCJzcmMvY29tcG9uZW50cy9iYXNlL2Zvcm0vRm9ybVwiO1xyXG5pbXBvcnQgTnNjUmVxdWVzdCBmcm9tIFwibnNjLXJlcXVlc3RcIjtcclxuaW1wb3J0IG9taXQgZnJvbSBcIm9taXQuanNcIjtcclxuaW1wb3J0IENvbXBvdW5kZWRTcGFjZSBmcm9tIFwiYW50ZC9lcy9zcGFjZVwiO1xyXG5pbXBvcnQgeyBjb252ZXJ0U3RyaW5nVG9PYmogfSBmcm9tIFwiLi4vU2V0dGluZ1V0aWwvdXRpbHNcIjtcclxuZXhwb3J0IGludGVyZmFjZSBGb3JtUGFnZVByb3BzIHtcclxuICBmb3Jtcz86IEFycmF5PGFueT47IC8v5piv5ZCm5pi+56S65pON5L2c5YiXXHJcbiAgc3VibWl0VXJsPzogc3RyaW5nO1xyXG4gIG9uU3VibWl0PzogKHZhbHVlPzogYW55LCBsYWJlbD86IGFueSkgPT4gdm9pZDtcclxuICBmb290ZXJDbGFzc05hbWU/OiBhbnk7XHJcbiAgb2tCdXR0b25Qcm9wcz86IGFueTtcclxuICBjYW5jZWxCdXR0b25Qcm9wcz86IGFueTtcclxuICBmb290ZXI/OiBSZWFjdE5vZGUgfCBib29sZWFuO1xyXG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xyXG4gIG9uRm9ybUNoYW5nZT86ICh2YWx1ZT86IGFueSwgYWxsVmFsdWU/OiBhbnkpID0+IHZvaWQ7XHJcbiAgc3VibWl0UGFyYW1zPzogYW55OyAvL+a3u+WKoOWPguaVsO+8jOm7mOiupG1vdGhvZDpwb3N077yMIOWPguaVsOmAmui/h2RhdGHkvKDpgJJcclxuICBmdW5jcz86IGFueTtcclxuICBwcm9wcz86IElGb3JtUHJvcHM7XHJcbiAgcmVxdWVzdE9iamVjdD86IHtcclxuICAgIGFkZFVybD86IHN0cmluZztcclxuICAgIGVkaXRvclVybD86IHN0cmluZztcclxuICAgIGFkZFBhcmFtcz86IGFueTtcclxuICAgIGVkaXRvclBhcmFtcz86IGFueTtcclxuICAgIGRldGFpbFVybD86IHN0cmluZztcclxuICB9O1xyXG4gIHJlcXVlc3RDb25maWc/OiBhbnk7XHJcbiAgZm9vdGVyV2lkdGg/OiBib29sZWFuO1xyXG4gIGVkaXRUeXBlPzogXCLmlrDlop5cIiB8IFwi57yW6L6RXCIgfCBcIuafpeeci1wiO1xyXG4gIHRpdGxlPzogc3RyaW5nO1xyXG4gIGVkaXRJZD86IHN0cmluZztcclxuICBtb2RhbFByb3BzPzogYW55O1xyXG4gIGRyYXdlclByb3BzPzogYW55O1xyXG4gIFtwcm9wc05hbWU6IHN0cmluZ106IGFueTtcclxufVxyXG5jbGFzcyBGb3JtUGFnZSBleHRlbmRzIFB1cmVDb21wb25lbnQ8Rm9ybVBhZ2VQcm9wcywgYW55PiB7XHJcbiAgZm9ybVJlZiA9IFJlYWN0LmNyZWF0ZVJlZjxhbnk+KCk7XHJcbiAgc3RhdGUgPSB7XHJcbiAgICBsb2FkaW5nOiBmYWxzZSxcclxuICAgIGxhYmVsOiB0aGlzLnByb3BzLmVkaXRUeXBlIHx8IFwiXCIsXHJcbiAgICBlZGl0b3JGbGFnOiB0cnVlLFxyXG4gICAgdmFsdWU6IHt9IGFzIGFueSxcclxuICAgIGRpY3ROYW1lczoge30gYXMgYW55LFxyXG4gICAgZmlsZUxpc3Q6IHt9IGFzIGFueSxcclxuICAgIHdpZHRoOiBnZXRMb2NhbFN0b3JlKFwibnNjLWhvbWUtbWVudUNvbGxzYXBlXCIpIHx8IGZhbHNlLFxyXG4gICAgZWRpdElkOiB0aGlzLnByb3BzLmVkaXRJZCB8fCBcIlwiLFxyXG4gIH07XHJcbiAgdmFsaWQ6IGFueSA9IFtdO1xyXG4gIGRhdGVWYWx1ZUZvcm1hdCA9IHt9IGFzIGFueTtcclxuICBkYXRlRm9ybWF0ID0ge30gYXMgYW55O1xyXG4gIGZpbGVGb3JtYXQgPSBbXSBhcyBhbnk7XHJcbiAgcmFuZ2VyRGF0ZSA9IHt9IGFzIGFueTtcclxuICByZWZMaXN0ID0ge30gYXMgYW55O1xyXG4gIHN1Ym1pdEZsYWcgPSB0cnVlO1xyXG4gIGNvbXBvbmVudERpZE1vdW50KCk6IHZvaWQge1xyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsIHRoaXMubGlzdGVuTWVzc2FnZSk7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIGZvcm1UeXBlID0gXCJwYWdlXCIsXHJcbiAgICAgIHJlcXVlc3RPYmplY3QgPSB7fSxcclxuICAgICAgZWRpdFR5cGUgPSBcIuaWsOWinlwiLFxyXG4gICAgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBpZiAoZm9ybVR5cGUgPT0gXCJwYWdlXCIpIHtcclxuICAgICAgaWYgKHJlcXVlc3RPYmplY3QuZGV0YWlsVXJsICYmIGVkaXRUeXBlICE9PSBcIuaWsOWinlwiKSB7XHJcbiAgICAgICAgTnNjUmVxdWVzdC5nZXQocmVxdWVzdE9iamVjdC5kZXRhaWxVcmwsIHtcclxuICAgICAgICAgIHBhcmFtczogeyBpZDogdGhpcy5zdGF0ZS5lZGl0SWQgfSxcclxuICAgICAgICAgIHhzc0ZpbHRlcjogZmFsc2UsXHJcbiAgICAgICAgICBhdXRvUHJlZml4OiB0cnVlLFxyXG4gICAgICAgIH0pLnRoZW4oKHJlcykgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICB0aGlzLmZvcm1SZWYuY3VycmVudD8uc2V0RmllbGRzVmFsdWUoeyAuLi5yZXMuZGF0YSB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIGlmIChlZGl0VHlwZSA9PSBcIuaWsOWinlwiKSB7XHJcbiAgICAgICAgaWYgKHRoaXMucHJvcHMuZGVmYXVsdFZhbHVlKSB7XHJcbiAgICAgICAgICBsZXQgZGVmYXVsdFZhbHVlID0gdGhpcy5jb252ZXJ0RGVmYXVsdFZhbHVlKCk7XHJcbiAgICAgICAgICB0aGlzLmZvcm1SZWYuY3VycmVudD8uc2V0RmllbGRzVmFsdWUoZGVmYXVsdFZhbHVlIHx8IHt9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgY29tcG9uZW50V2lsbFVubW91bnQoKSB7XHJcbiAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1lc3NhZ2VcIiwgdGhpcy5saXN0ZW5NZXNzYWdlKTtcclxuICB9XHJcbiAgbGlzdGVuTWVzc2FnZSA9IChldikgPT4ge1xyXG4gICAgY29uc3QgZGF0YSA9IHR5cGVvZiBldi5kYXRhID09PSBcInN0cmluZ1wiID8gSlNPTi5wYXJzZShldi5kYXRhKSA6IGV2LmRhdGE7XHJcbiAgICBsZXQgX3RoaXMgPSB0aGlzO1xyXG4gICAgaWYgKGRhdGEuZXZlbnRUeXBlID09IFwibWVudUNvbGxzYXBlXCIpIHtcclxuICAgICAgY29uc3QgeyBwYXlsb2FkIH0gPSBkYXRhO1xyXG4gICAgICBpZiAocGF5bG9hZC5jbG9zZSA9PT0gdHJ1ZSB8fCBwYXlsb2FkLmNsb3NlID09PSBmYWxzZSkge1xyXG4gICAgICAgIF90aGlzLnNldFN0YXRlKHsgd2lkdGg6IHBheWxvYWQuY2xvc2UgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9O1xyXG4gIGNvbnZlcnREZWZhdWx0VmFsdWUoKSB7XHJcbiAgICBjb25zdCB7IGRlZmF1bHRWYWx1ZSB9ID0gdGhpcy5wcm9wcztcclxuICAgIHJldHVybiBjb252ZXJ0U3RyaW5nVG9PYmooZGVmYXVsdFZhbHVlLCB0aGlzLnByb3BzLlV0aWxzIHx8IHt9LCB7XHJcbiAgICAgIGZ1bmNzOiB0aGlzLnByb3BzLmZ1bmNzLFxyXG4gICAgICBwYWdlUmVmOiB0aGlzLnByb3BzLnBhZ2VSZWYsXHJcbiAgICAgIGZvcm1SZWY6IHRoaXMuZm9ybVJlZixcclxuICAgICAgcmVmczogdGhpcy5yZWZMaXN0LFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIC8v6KGo5Y2V5pi+56S6XHJcbiAgc2hvdyhvcmdWYWx1ZT86IGFueSwgZWRpdG9yZmxhZyA9IFwiYWRkXCIsIGNhbGxCYWNrPzogYW55KSB7XHJcbiAgICBsZXQgbGFiZWwgPSBcIuaWsOWinlwiO1xyXG4gICAgaWYgKG9yZ1ZhbHVlICYmIGVkaXRvcmZsYWcgPT0gXCJlZGl0b3JcIikge1xyXG4gICAgICBsYWJlbCA9IFwi57yW6L6RXCI7XHJcbiAgICB9IGVsc2UgaWYgKG9yZ1ZhbHVlICYmIChlZGl0b3JmbGFnID09IFwiZGV0YWlsXCIgfHwgZWRpdG9yZmxhZyA9PSBcInNlYXJjaFwiKSkge1xyXG4gICAgICBsYWJlbCA9IFwi5p+l55yLXCI7XHJcbiAgICB9XHJcbiAgICBpZiAob3JnVmFsdWUpIHtcclxuICAgICAgdGhpcy5zZXRTdGF0ZShcclxuICAgICAgICB7XHJcbiAgICAgICAgICBsYWJlbDogbGFiZWwsXHJcbiAgICAgICAgICB2YWx1ZTogb3JnVmFsdWUsXHJcbiAgICAgICAgICBlZGl0SWQ6IG9yZ1ZhbHVlLmlkLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgbGV0IHZhbHVlID0gdGhpcy5jb252ZXJ0VmFsdWUob3JnVmFsdWUsIGxhYmVsKTtcclxuICAgICAgICAgIC8v5aSE55CG5paH5Lu25pWw5o2uXHJcbiAgICAgICAgICB0aGlzLmZvcm1SZWYuY3VycmVudD8uc2hvd0Zvcm0odmFsdWUsIHtcclxuICAgICAgICAgICAgYWZ0ZXJSZW5kZXI6ICgpID0+IHtcclxuICAgICAgICAgICAgICBjYWxsQmFjayAmJiBjYWxsQmFjaygpO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZXRTdGF0ZShcclxuICAgICAgICB7XHJcbiAgICAgICAgICBsYWJlbDogbGFiZWwsXHJcbiAgICAgICAgfSxcclxuICAgICAgICAoKSA9PiB7XHJcbiAgICAgICAgICBsZXQgZGVmYXVsdFZhbHVlID0gdGhpcy5wcm9wcy5kZWZhdWx0VmFsdWVcclxuICAgICAgICAgICAgPyB0aGlzLmNvbnZlcnREZWZhdWx0VmFsdWUoKVxyXG4gICAgICAgICAgICA6IHt9O1xyXG4gICAgICAgICAgdGhpcy5mb3JtUmVmLmN1cnJlbnQ/LnNob3dGb3JtKGRlZmF1bHRWYWx1ZSB8fCB7fSwge1xyXG4gICAgICAgICAgICBhZnRlclJlbmRlcjogKCkgPT4ge1xyXG4gICAgICAgICAgICAgIGNhbGxCYWNrICYmIGNhbGxCYWNrKCk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGhpZGUoaGlkZSA9IHRydWUpIHtcclxuICAgIGNvbnN0IHsgb25IaWRlRm9ybSB9ID0gdGhpcy5wcm9wcztcclxuICAgIGlmIChvbkhpZGVGb3JtKSB7XHJcbiAgICAgIG9uSGlkZUZvcm0gJiYgb25IaWRlRm9ybSgpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnNldFN0YXRlKHsgbG9hZGluZzogZmFsc2UsIGZpbGVMaXN0OiB7fSB9KTtcclxuICAgIGhpZGUgJiYgdGhpcy5mb3JtUmVmLmN1cnJlbnQ/LmhpZGVGb3JtKCk7XHJcbiAgfVxyXG4gIGhpZGVGb3JtKCkge1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7IGxvYWRpbmc6IGZhbHNlLCBmaWxlTGlzdDoge30gfSk7XHJcbiAgICB0aGlzLmZvcm1SZWYuY3VycmVudD8uaGlkZUZvcm0oKTtcclxuICB9XHJcbiAgc2hvd0Zvcm0ob3JnVmFsdWU/OiBhbnksIGVkaXRvcmZsYWcgPSBcImFkZFwiLCBjYWxsQmFjaz86IGFueSkge1xyXG4gICAgdGhpcy5zaG93KG9yZ1ZhbHVlLCBlZGl0b3JmbGFnLCBjYWxsQmFjayk7XHJcbiAgfVxyXG4gIHNldExvYWRpbmcobG9hZGluZzogYm9vbGVhbikge1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7IGxvYWRpbmc6IGxvYWRpbmcgfSk7XHJcbiAgfVxyXG4gIHNldEVkaXRUeXBlKHR5cGUpIHtcclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBsYWJlbDogdHlwZSxcclxuICAgIH0pO1xyXG4gIH1cclxuICBzZXRFZGl0SWQoaWQpIHtcclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBlZGl0SWQ6IGlkLFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGdldEZvcm1WYWx1ZSgpIHtcclxuICAgIGNvbnN0IHsgbGFiZWwsIHZhbHVlLCBkaWN0TmFtZXMsIGZpbGVMaXN0IH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgZm9ybVZhbHVlID0gdGhpcy5mb3JtUmVmLmN1cnJlbnQ/LmdldEZpZWxkc1ZhbHVlKCk7XHJcbiAgICBsZXQgZGF0YSA9IGxvZGFzaC5jbG9uZURlZXAoeyAuLi5mb3JtVmFsdWUsIC4uLmRpY3ROYW1lcyB9KTtcclxuICAgIGlmICh0aGlzLmZpbGVGb3JtYXQubGVuZ3RoID4gMCkge1xyXG4gICAgICBsZXQgbmV3RmlsZUxpc3QgPSB7fSBhcyBhbnk7XHJcbiAgICAgIHRoaXMuZmlsZUZvcm1hdC5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgICBpZiAoZmlsZUxpc3RbaXRlbV0ubGVuZ3RoID09IDApIHtcclxuICAgICAgICAgIG5ld0ZpbGVMaXN0W2l0ZW1dID0gbnVsbDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgbmV3RmlsZUxpc3RbaXRlbV0gPSB0aGlzLmdldEZpbGVMaXN0KGZpbGVMaXN0W2l0ZW1dIHx8IFtdKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBkYXRhID0geyAuLi5kYXRhLCAuLi5uZXdGaWxlTGlzdCB9O1xyXG4gICAgfVxyXG4gICAgaWYgKCF0aGlzLnN1Ym1pdEZsYWcpIHtcclxuICAgICAgbWVzc2FnZS5lcnJvcihcIuivt+etieW+heaJgOacieaWh+S7tuS4iuS8oOWujOaIkO+8gVwiKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKCFpc0VtcHR5T2JqKHRoaXMuZGF0ZVZhbHVlRm9ybWF0KSkge1xyXG4gICAgICBmb3IgKGxldCBrZXkgaW4gdGhpcy5kYXRlVmFsdWVGb3JtYXQpIHtcclxuICAgICAgICBsZXQgb2xkZGF0YSA9IGRhdGFba2V5XTtcclxuICAgICAgICBpZiAob2xkZGF0YSkge1xyXG4gICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkob2xkZGF0YSkpIHtcclxuICAgICAgICAgICAgZGF0YVtrZXldID0gW1xyXG4gICAgICAgICAgICAgIGRheWpzKG9sZGRhdGFbMF0pLmZvcm1hdCh0aGlzLmRhdGVWYWx1ZUZvcm1hdFtrZXldKSxcclxuICAgICAgICAgICAgICBkYXlqcyhvbGRkYXRhWzFdKS5mb3JtYXQodGhpcy5kYXRlVmFsdWVGb3JtYXRba2V5XSksXHJcbiAgICAgICAgICAgIF07XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnJhbmdlckRhdGVba2V5XSkge1xyXG4gICAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICBkYXRhW3RoaXMucmFuZ2VyRGF0ZVtrZXldWzBdXSA9IGRheWpzKG9sZGRhdGFbMF0pLmZvcm1hdChcclxuICAgICAgICAgICAgICAgICAgdGhpcy5kYXRlRm9ybWF0W2tleV1cclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICBkYXRhW3RoaXMucmFuZ2VyRGF0ZVtrZXldWzFdXSA9IGRheWpzKG9sZGRhdGFbMV0pLmZvcm1hdChcclxuICAgICAgICAgICAgICAgICAgdGhpcy5kYXRlRm9ybWF0W2tleV1cclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICBkZWxldGUgZGF0YVtrZXldO1xyXG4gICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHt9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGRhdGFba2V5XSA9IGRheWpzKG9sZGRhdGEpLmZvcm1hdCh0aGlzLmRhdGVWYWx1ZUZvcm1hdFtrZXldKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChsYWJlbCA9PSBcIue8lui+kVwiKSB7XHJcbiAgICAgIGRhdGEgPSB7IC4uLmRhdGEsIGlkOiB2YWx1ZT8uaWQgfHwgdGhpcy5zdGF0ZS5lZGl0SWQgfTtcclxuICAgIH1cclxuICAgIGxldCBuZXdEYXRhID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShkYXRhKSk7XHJcbiAgICByZXR1cm4gbmV3RGF0YTtcclxuICB9XHJcbiAgY29udmVydFZhbHVlKHZhbHVlLCB0eXBlKSB7XHJcbiAgICBsZXQgdmFsdWVzID0gbG9kYXNoLmNsb25lRGVlcCh2YWx1ZSk7XHJcbiAgICBpZiAodGhpcy5maWxlRm9ybWF0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgbGV0IGZpbGVMaXN0ID0ge30gYXMgYW55O1xyXG4gICAgICB0aGlzLmZpbGVGb3JtYXQuZm9yRWFjaCgoZmlsZUtleSkgPT4ge1xyXG4gICAgICAgIGxldCBvbGRkYXRhID0gdmFsdWVzW2ZpbGVLZXldO1xyXG4gICAgICAgIGlmIChvbGRkYXRhICYmIEFycmF5LmlzQXJyYXkob2xkZGF0YSkpIHtcclxuICAgICAgICAgIGZpbGVMaXN0W2ZpbGVLZXldID0gdGhpcy5nZXRGaWxlTGlzdChvbGRkYXRhIHx8IFtdLCB0eXBlKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgZmlsZUxpc3RbZmlsZUtleV0gPSBbXTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLnNldFN0YXRlKHsgZmlsZUxpc3Q6IGZpbGVMaXN0IH0pO1xyXG4gICAgfVxyXG4gICAgLy/lpITnkIbml6XmnJ/moLzlvI/mlbDmja5cclxuICAgIGlmICghaXNFbXB0eU9iaih0aGlzLmRhdGVGb3JtYXQpKSB7XHJcbiAgICAgIGZvciAobGV0IGtleSBpbiB0aGlzLmRhdGVGb3JtYXQpIHtcclxuICAgICAgICBsZXQgb2xkZGF0YSA9IHZhbHVlc1trZXldO1xyXG4gICAgICAgIGlmIChvbGRkYXRhKSB7XHJcbiAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShvbGRkYXRhKSkge1xyXG4gICAgICAgICAgICB2YWx1ZXNba2V5XSA9IFtcclxuICAgICAgICAgICAgICBkYXlqcyhvbGRkYXRhWzBdLCB0aGlzLmRhdGVGb3JtYXRba2V5XSksXHJcbiAgICAgICAgICAgICAgZGF5anMob2xkZGF0YVsxXSwgdGhpcy5kYXRlRm9ybWF0W2tleV0pLFxyXG4gICAgICAgICAgICBdO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdmFsdWVzW2tleV0gPSBkYXlqcyhvbGRkYXRhLCB0aGlzLmRhdGVGb3JtYXRba2V5XSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGlmICh0aGlzLnJhbmdlckRhdGVba2V5XSkge1xyXG4gICAgICAgICAgICBsZXQgdmFsdWUxID0gdmFsdWVzW3RoaXMucmFuZ2VyRGF0ZVtrZXldWzBdXTtcclxuICAgICAgICAgICAgbGV0IHZhbHVlMiA9IHZhbHVlc1t0aGlzLnJhbmdlckRhdGVba2V5XVsxXV07XHJcbiAgICAgICAgICAgIGlmICh2YWx1ZTEgJiYgdmFsdWUyKSB7XHJcbiAgICAgICAgICAgICAgdmFsdWVzW2tleV0gPSBbXHJcbiAgICAgICAgICAgICAgICBkYXlqcyh2YWx1ZTEsIHRoaXMuZGF0ZUZvcm1hdFtrZXldKSxcclxuICAgICAgICAgICAgICAgIGRheWpzKHZhbHVlMiwgdGhpcy5kYXRlRm9ybWF0W2tleV0pLFxyXG4gICAgICAgICAgICAgIF07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB2YWx1ZXM7XHJcbiAgfVxyXG4gIHNldEZvcm1WYWx1ZSh2YWx1ZSwgdHlwZSA9IFwi5p+l55yLXCIpIHtcclxuICAgIGNvbnN0IG5ld1ZhbHVlID0gdGhpcy5jb252ZXJ0VmFsdWUodmFsdWUsIHR5cGUpO1xyXG4gICAgdGhpcy5mb3JtUmVmLmN1cnJlbnQ/LnNldEZpZWxkc1ZhbHVlKG5ld1ZhbHVlKTtcclxuICB9XHJcbiAgZG9TdWJtaXQoZm9ybWRhdGEsIGxhYmVsKSB7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIHN1Ym1pdFVybCxcclxuICAgICAgc3VibWl0UGFyYW1zID0ge30sXHJcbiAgICAgIGNhbGxCYWNrLFxyXG4gICAgICByZXF1ZXN0T2JqZWN0ID0ge30sXHJcbiAgICAgIHJlcXVlc3RDb25maWcgPSB7fSxcclxuICAgIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgeyBhZGRVcmwsIGVkaXRvclVybCwgYWRkUGFyYW1zLCBlZGl0b3JQYXJhbXMgfSA9IHJlcXVlc3RPYmplY3Q7XHJcbiAgICBsZXQgdXJsID0gc3VibWl0VXJsO1xyXG4gICAgbGV0IHBhcmFtczogYW55ID0ge307XHJcbiAgICBpZiAoIWxhYmVsIHx8IGxhYmVsID09IFwi5paw5aKeXCIpIHtcclxuICAgICAgdXJsID0gYWRkVXJsID8gYWRkVXJsIDogc3VibWl0VXJsO1xyXG4gICAgICBpZiAoYWRkUGFyYW1zICYmIHR5cGVvZiBhZGRQYXJhbXMgPT0gXCJzdHJpbmdcIikge1xyXG4gICAgICAgIGNvbnN0IFV0aWxzID0gdGhpcy5wcm9wcy5VdGlscyB8fCB7fTtcclxuICAgICAgICBsZXQgZnVuYyA9IG5ldyBGdW5jdGlvbihcIlV0aWxzXCIsIGFkZFBhcmFtcyk7XHJcbiAgICAgICAgbGV0IGNvbnZlclBhcmFtcyA9IGZ1bmMoVXRpbHMpO1xyXG4gICAgICAgIHBhcmFtcyA9IGNvbnZlclBhcmFtcztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBwYXJhbXMgPSBhZGRQYXJhbXMgPyBhZGRQYXJhbXMgOiBzdWJtaXRQYXJhbXM7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAobGFiZWwgPT0gXCLnvJbovpFcIikge1xyXG4gICAgICB1cmwgPSBlZGl0b3JVcmwgPyBlZGl0b3JVcmwgOiBzdWJtaXRVcmw7XHJcbiAgICAgIGlmIChlZGl0b3JQYXJhbXMgJiYgdHlwZW9mIGVkaXRvclBhcmFtcyA9PSBcInN0cmluZ1wiKSB7XHJcbiAgICAgICAgY29uc3QgVXRpbHMgPSB0aGlzLnByb3BzLlV0aWxzIHx8IHt9O1xyXG4gICAgICAgIGxldCBmdW5jID0gbmV3IEZ1bmN0aW9uKFwiVXRpbHNcIiwgZWRpdG9yUGFyYW1zKTtcclxuICAgICAgICBsZXQgY29udmVyUGFyYW1zID0gZnVuYyhVdGlscyk7XHJcbiAgICAgICAgcGFyYW1zID0gY29udmVyUGFyYW1zO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHBhcmFtcyA9IGVkaXRvclBhcmFtcyA/IGVkaXRvclBhcmFtcyA6IHN1Ym1pdFBhcmFtcztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKCF1cmwpIHtcclxuICAgICAgY29uc29sZS5lcnJvcihcIumFjee9rlVybOS4jeiDveS4uuepuu+8gVwiKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgeyBkYXRhID0ge30sIC4uLm90aGVyUGFyYW1zIH0gPSBwYXJhbXM7XHJcbiAgICB0aGlzLmZvcm1SZWYuY3VycmVudD8ub25TdWJtaXQoXHJcbiAgICAgIHVybCxcclxuICAgICAge1xyXG4gICAgICAgIGRhdGE6IHsgLi4uZm9ybWRhdGEsIC4uLmRhdGEgfSxcclxuICAgICAgICBub1VuZGVmaW5lZDogbGFiZWwgPT0gXCLnvJbovpFcIixcclxuICAgICAgICAuLi5yZXF1ZXN0Q29uZmlnLFxyXG4gICAgICAgIC4uLm90aGVyUGFyYW1zLFxyXG4gICAgICB9LFxyXG4gICAgICAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBjb25zdCB7IGNvZGUsIG1zZyB9ID0gcmVzO1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBsb2FkaW5nOiBmYWxzZSB9KTtcclxuICAgICAgICBpZiAoY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICBtZXNzYWdlLnN1Y2Nlc3MobGFiZWwgKyBcIuaIkOWKn1wiKTtcclxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmhpZGUodHJ1ZSk7XHJcbiAgICAgICAgICAgIGNhbGxCYWNrICYmIGNhbGxCYWNrKCk7XHJcbiAgICAgICAgICB9LCA1MDApO1xyXG5cclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG4gIGdldEZpbGVMaXN0KGRhdGEsIGxhYmVsID0gXCLmlrDlop5cIikge1xyXG4gICAgdGhpcy5zdWJtaXRGbGFnID0gdHJ1ZTtcclxuICAgIGxldCBmaWxlTGlzdCA9IFtdIGFzIGFueTtcclxuICAgIGlmIChkYXRhICYmIGRhdGEubGVuZ3RoID4gMCkge1xyXG4gICAgICBkYXRhLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICAgIGxldCBvYmogPSB7XHJcbiAgICAgICAgICBmaWxlSWQ6IGl0ZW0uZmlsZUlkLFxyXG4gICAgICAgICAgZmlsZU5hbWU6IGl0ZW0uZmlsZU5hbWUsXHJcbiAgICAgICAgfSBhcyBhbnk7XHJcbiAgICAgICAgaWYgKGxhYmVsID09IFwi5p+l55yLXCIpIHtcclxuICAgICAgICAgIG9iai5zdGF0dXMgPSBcImRvbmVcIjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGxhYmVsICE9PSBcIuafpeeci1wiICYmIGl0ZW0uc3RhdHVzICE9PSBcImRvbmVcIikge1xyXG4gICAgICAgICAgdGhpcy5zdWJtaXRGbGFnID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZpbGVMaXN0LnB1c2gob2JqKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmlsZUxpc3Q7XHJcbiAgfVxyXG5cclxuICBvblN1Ym1pdCgpIHtcclxuICAgIGNvbnN0IHsgb25TdWJtaXQgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7IGxhYmVsLCB2YWx1ZSwgZGljdE5hbWVzLCBmaWxlTGlzdCB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGxldCB2YWxpZCA9IHRoaXMudmFsaWQ7XHJcbiAgICB0aGlzLmZvcm1SZWYuY3VycmVudFxyXG4gICAgICA/LnZhbGlkYXRlRmllbGRzKClcclxuICAgICAgLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgIGxldCBkYXRhID0gdGhpcy5nZXRGb3JtVmFsdWUoKTtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHsgbG9hZGluZzogdHJ1ZSB9KTtcclxuICAgICAgICBpZiAob25TdWJtaXQpIHtcclxuICAgICAgICAgIGxldCByZXR1cm5EYXRhID0gbG9kYXNoLmNsb25lRGVlcChkYXRhKTtcclxuICAgICAgICAgIG9uU3VibWl0ICYmIG9uU3VibWl0KHJldHVybkRhdGEsIGxhYmVsKTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5kb1N1Ym1pdChkYXRhLCBsYWJlbCk7XHJcbiAgICAgIH0pXHJcbiAgICAgIC5jYXRjaCgoZXJyb3JJbmZvOiBhbnkpID0+IHt9KTtcclxuICB9XHJcbiAgdmFsdWVDaGFuZ2UoeyB0eXBlLCBkaWN0TmFtZSB9LCBwcm9wcywgdmFsdWUsIHZhbHVlT3B0aW9uLCBkYXRhKSB7XHJcbiAgICBpZiAodmFsdWVPcHRpb24pIHtcclxuICAgICAgaWYgKGRpY3ROYW1lKSB7XHJcbiAgICAgICAgY29uc3QgeyBkaWN0TmFtZXMgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICAgICAgY29uc3QgbmV3TmFtZXMgPSB7IC4uLmRpY3ROYW1lcyB9IGFzIGFueTtcclxuICAgICAgICBuZXdOYW1lc1tkaWN0TmFtZV0gPSB2YWx1ZU9wdGlvbi5sYWJlbDtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgIGRpY3ROYW1lczogbmV3TmFtZXMsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChwcm9wcy5vbkNoYW5nZSkge1xyXG4gICAgICBpZiAodHlwZW9mIHByb3BzLm9uQ2hhbmdlID09IFwiZnVuY3Rpb25cIikge1xyXG4gICAgICAgIHByb3BzLm9uQ2hhbmdlKHZhbHVlLCB2YWx1ZU9wdGlvbiwgZGF0YSk7XHJcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHByb3BzLm9uQ2hhbmdlID09IFwic3RyaW5nXCIpIHtcclxuICAgICAgICBjb25zdCBldmVudE9wdGlvbiA9IHtcclxuICAgICAgICAgIHZhbHVlLFxyXG4gICAgICAgICAgZGF0YSxcclxuICAgICAgICAgIGZvcm1SZWY6IHRoaXMuZm9ybVJlZixcclxuICAgICAgICAgIGZ1bmNzOiB0aGlzLnByb3BzLmZ1bmNzIHx8IHt9LFxyXG4gICAgICAgICAgcmVmczogdGhpcy5yZWZMaXN0LFxyXG4gICAgICAgICAgcGFnZVJlZjogdGhpcy5wcm9wcy5wYWdlUmVmLFxyXG4gICAgICAgIH0gYXMgYW55O1xyXG4gICAgICAgIGNvbnN0IFV0aWxzID0gdGhpcy5wcm9wcy5VdGlscyB8fCB7fTtcclxuICAgICAgICBpZiAodHlwZSA9PSBcIlNlbGVjdFwiKSB7XHJcbiAgICAgICAgICBldmVudE9wdGlvbi52YWx1ZU9wdGlvbiA9IHZhbHVlT3B0aW9uO1xyXG4gICAgICAgICAgZXZlbnRPcHRpb24uZGF0YSA9IGRhdGE7XHJcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlID09IFwiRGF0ZVBpY2tlclwiIHx8IHR5cGUgPT0gXCJSYW5nZVBpY2tlclwiKSB7XHJcbiAgICAgICAgICBldmVudE9wdGlvbi52YWx1ZVN0ciA9IHZhbHVlT3B0aW9uO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBzZWxmRnVuYyA9IG5ldyBGdW5jdGlvbihcImV2ZW50T3B0aW9uXCIsIFwiVXRpbHNcIiwgcHJvcHMub25DaGFuZ2UpO1xyXG4gICAgICAgIHNlbGZGdW5jKGV2ZW50T3B0aW9uLCBVdGlscyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlbmRlckZvcm0oZm9ybXMsIGxhYmVsKSB7XHJcbiAgICBjb25zdCBuZXdWYWxpZDogYW55W10gPSBbXTtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIDxSb3cgZ3V0dGVyPXsyNH0+XHJcbiAgICAgICAge2Zvcm1zLm1hcCgoaXRlbTogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBpdGVtUHJvcHMgPSBpdGVtLnByb3BzIHx8IHt9O1xyXG4gICAgICAgICAgaWYgKGl0ZW1Qcm9wcy5mb3JtYXQgfHwgaXRlbVByb3BzLnZhbHVlRm9ybWF0KSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGF0ZVZhbHVlRm9ybWF0W2l0ZW0ubmFtZV0gPVxyXG4gICAgICAgICAgICAgIGl0ZW1Qcm9wcy5mb3JtYXQgfHwgaXRlbVByb3BzLnZhbHVlRm9ybWF0O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKGl0ZW1Qcm9wcy5mb3JtYXQpIHtcclxuICAgICAgICAgICAgdGhpcy5kYXRlRm9ybWF0W2l0ZW0ubmFtZV0gPSBpdGVtUHJvcHMuZm9ybWF0O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKGl0ZW0udHlwZSA9PSBcIlJhbmdlUGlja2VyXCIgJiYgaXRlbS5uYW1lLnNwbGl0KFwiLFwiKS5sZW5ndGggPiAxKSB7XHJcbiAgICAgICAgICAgIHRoaXMucmFuZ2VyRGF0ZVtpdGVtLm5hbWVdID0gaXRlbS5uYW1lLnNwbGl0KFwiLFwiKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGxldCBhbGxvd0NoYXJzID0gaXRlbS5wcm9wcz8uYWxsb3dDaGFycyB8fCBmYWxzZTtcclxuICAgICAgICAgIGxldCBwcm9wcyA9IHtcclxuICAgICAgICAgICAgcGxhY2Vob2xkZXI6IGDor7fovpPlhaUke2l0ZW0ubGFiZWx9YCxcclxuICAgICAgICAgICAgLi4uaXRlbS5wcm9wcyxcclxuICAgICAgICAgICAgb25DaGFuZ2U6IHRoaXMudmFsdWVDaGFuZ2UuYmluZChcclxuICAgICAgICAgICAgICB0aGlzLFxyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHR5cGU6IGl0ZW0udHlwZSxcclxuICAgICAgICAgICAgICAgIGRpY3ROYW1lOiBpdGVtLmRpY3ROYW1lLFxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgeyAuLi5pdGVtLnByb3BzIH1cclxuICAgICAgICAgICAgKSxcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgICBpZiAoIWl0ZW0udHlwZSB8fCBpdGVtLnR5cGUgPT0gXCJJbnB1dFwiKSB7XHJcbiAgICAgICAgICAgIHByb3BzLmFsbG93Q2hhcnMgPSB0cnVlOyAvL2Zvcm0uaXRlbSDkvb/nlKhpbnB1dOe7hOS7tmFsbG93Q2hhcnPlv4Xpobvpu5jorqR0cnVlLOS4jeeEtui+k+WFpeeJueauiuWtl+espuaLv+WIsOeahOWAvOS4jeWvuVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZGVsZXRlIHByb3BzLnZhbHVlRm9ybWF0O1xyXG4gICAgICAgICAgZGVsZXRlIHByb3BzLmZvcm1hdDtcclxuICAgICAgICAgIGRlbGV0ZSBwcm9wcy5kYXRhVHlwZTtcclxuICAgICAgICAgIGlmIChsYWJlbCA9PSBcIuafpeeci1wiKSB7XHJcbiAgICAgICAgICAgIHByb3BzLmRpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgcHJvcHMucGxhY2Vob2xkZXIgPSBcIlwiO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKChpdGVtLnJ1bGVzICYmIGl0ZW0ucnVsZXMubGVuZ3RoID4gMCkgfHwgaXRlbS5yZXF1aXJlZCA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICBuZXdWYWxpZC5wdXNoKGl0ZW0ubmFtZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoaW5kZXggKyAxID09PSBmb3Jtcy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgdGhpcy52YWxpZCA9IG5ld1ZhbGlkO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgY29uc3QgaXRlbVJlZjogYW55ID0gUmVhY3QuY3JlYXRlUmVmPGFueT4oKTtcclxuICAgICAgICAgIHRoaXMucmVmTGlzdFtpdGVtLm5hbWVdID0gaXRlbVJlZjtcclxuICAgICAgICAgIGlmIChpdGVtLnR5cGUgIT09IFwiVXBsb2FkXCIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICA8Q29sXHJcbiAgICAgICAgICAgICAgICBzcGFuPXtpdGVtLnNwYW4gfHwgMTJ9XHJcbiAgICAgICAgICAgICAgICBrZXk9e2luZGV4fVxyXG4gICAgICAgICAgICAgICAgc3R5bGU9e3sgZGlzcGxheTogaXRlbS5oaWRlID8gXCJub25lXCIgOiBcImJsb2NrXCIgfX1cclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8Rm9ybS5JdGVtXHJcbiAgICAgICAgICAgICAgICAgIGxhYmVsPXtpdGVtLmxhYmVsfVxyXG4gICAgICAgICAgICAgICAgICBuYW1lPXtpdGVtLm5hbWV9XHJcbiAgICAgICAgICAgICAgICAgIHJ1bGVzPXtpdGVtLnJ1bGVzfVxyXG4gICAgICAgICAgICAgICAgICBhbGxvd0NoYXJzPXthbGxvd0NoYXJzfVxyXG4gICAgICAgICAgICAgICAgICBjb21wb25lbnROYW1lPXtpdGVtLnR5cGUgPyBpdGVtLnR5cGUgOiBcIklucHV0XCJ9XHJcbiAgICAgICAgICAgICAgICAgIHJlcXVpcmVkPXtpdGVtLnJlcXVpcmVkfVxyXG4gICAgICAgICAgICAgICAgICB0eXBlPXtpdGVtLnByb3BzPy50eXBlfVxyXG4gICAgICAgICAgICAgICAgICBub1N0eWxlPXtpdGVtLm5vU3R5bGUgfHwgZmFsc2V9XHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIHtpdGVtLmZvcm1SZW5kZXJcclxuICAgICAgICAgICAgICAgICAgICA/IGl0ZW0uZm9ybVJlbmRlcihwcm9wcylcclxuICAgICAgICAgICAgICAgICAgICA6IGdldE5vZGUoaXRlbS50eXBlLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZjogaXRlbVJlZixcclxuICAgICAgICAgICAgICAgICAgICAgICAgLi4ucHJvcHMsXHJcbiAgICAgICAgICAgICAgICAgICAgICB9KX1cclxuICAgICAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxyXG4gICAgICAgICAgICAgIDwvQ29sPlxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5maWxlRm9ybWF0LnB1c2goaXRlbS5uYW1lKTtcclxuICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICA8Q29sXHJcbiAgICAgICAgICAgICAgICBzcGFuPXtpdGVtLnNwYW4gfHwgMTJ9XHJcbiAgICAgICAgICAgICAgICBrZXk9e2luZGV4fVxyXG4gICAgICAgICAgICAgICAgc3R5bGU9e3sgZGlzcGxheTogaXRlbS5oaWRlID8gXCJub25lXCIgOiBcImJsb2NrXCIgfX1cclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8Rm9ybS5JdGVtXHJcbiAgICAgICAgICAgICAgICAgIGxhYmVsPXtpdGVtLmxhYmVsfVxyXG4gICAgICAgICAgICAgICAgICBuYW1lPXtpdGVtLm5hbWV9XHJcbiAgICAgICAgICAgICAgICAgIHJ1bGVzPXtpdGVtLnJ1bGVzfVxyXG4gICAgICAgICAgICAgICAgICBhbGxvd0NoYXJzPXthbGxvd0NoYXJzfVxyXG4gICAgICAgICAgICAgICAgICB0eXBlPXtpdGVtLnByb3BzPy50eXBlfVxyXG4gICAgICAgICAgICAgICAgICByZXF1aXJlZD17aXRlbS5yZXF1aXJlZH1cclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgPFVwbG9hZFxyXG4gICAgICAgICAgICAgICAgICAgIGZpbGVMaXN0PXt0aGlzLnN0YXRlLmZpbGVMaXN0W2l0ZW0ubmFtZV0gfHwgW119XHJcbiAgICAgICAgICAgICAgICAgICAgb25MaXN0Q2hhbmdlPXsobGlzdCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBmaWxlTGlzdCB9ID0gdGhpcy5zdGF0ZTtcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxlTGlzdDogeyAuLi5maWxlTGlzdCwgW2l0ZW0ubmFtZV06IGxpc3QgfSxcclxuICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgc2hvd1VwbG9hZExpc3Q9e3tcclxuICAgICAgICAgICAgICAgICAgICAgIHNob3dEb3dubG9hZEljb246IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICBzaG93UmVtb3ZlSWNvbjogbGFiZWwgIT09IFwi5p+l55yLXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICByZWY9e2l0ZW1SZWZ9XHJcbiAgICAgICAgICAgICAgICAgICAgey4uLnByb3BzfVxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAge2l0ZW0ucHJvcHM/LmNoaWxkcmVuXHJcbiAgICAgICAgICAgICAgICAgICAgICA/IGl0ZW0ucHJvcHM/LmNoaWxkcmVuXHJcbiAgICAgICAgICAgICAgICAgICAgICA6IGxhYmVsICE9PSBcIuafpeeci1wiICYmIDxCdXR0b24+5LiK5Lyg5paH5Lu2PC9CdXR0b24+fVxyXG4gICAgICAgICAgICAgICAgICA8L1VwbG9hZD5cclxuICAgICAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxyXG4gICAgICAgICAgICAgIDwvQ29sPlxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pfVxyXG4gICAgICA8L1Jvdz5cclxuICAgICk7XHJcbiAgfVxyXG4gIHJlbmRlcigpIHtcclxuICAgIGNvbnN0IHtcclxuICAgICAgZm9ybXMgPSBbXSxcclxuICAgICAgcHJvcHMgPSB7fSxcclxuICAgICAgZm9vdGVyID0gdHJ1ZSxcclxuICAgICAgY2hpbGRyZW4sXHJcbiAgICAgIGZvcm1UeXBlID0gXCJwYWdlXCIsXHJcbiAgICAgIHRpdGxlID0gXCJcIixcclxuICAgICAgbW9kYWxQcm9wczogZGVmYXVsdE1vZGFsUHJvcHMgPSB7fSxcclxuICAgICAgZHJhd2VyUHJvcHM6IGRlZmF1bHREcmF3ZXJQcm9wcyxcclxuICAgIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgeyBsb2FkaW5nLCBsYWJlbCB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGxldCBzZWxmQnV0dG9ucyA9IFtdIGFzIGFueTtcclxuICAgIGxldCBzZWxmUGFuZXMgPSBbXSBhcyBhbnk7XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheShjaGlsZHJlbikpIHtcclxuICAgICAgY2hpbGRyZW4ubWFwKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShpdGVtKSkge1xyXG4gICAgICAgICAgaXRlbS5tYXAoKGNoaWxkKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChjaGlsZD8ucHJvcHM/LnBhZ2VUeXBlID09IFwiZm9ybVBhbmVcIikge1xyXG4gICAgICAgICAgICAgIHR5cGVvZiBpdGVtID09IFwib2JqZWN0XCIgJiYgc2VsZlBhbmVzLnB1c2goY2hpbGQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdHlwZW9mIGl0ZW0gPT0gXCJvYmplY3RcIiAmJiBzZWxmQnV0dG9ucy5wdXNoKGl0ZW0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2UgaWYgKGNoaWxkcmVuKSB7XHJcbiAgICAgIGNvbnN0IHsgcHJvcHMgfTogYW55ID0gY2hpbGRyZW47XHJcbiAgICAgIGlmIChwcm9wcz8ucGFnZVR5cGUgPT0gXCJmb3JtUGFuZVwiKSB7XHJcbiAgICAgICAgdHlwZW9mIGNoaWxkcmVuID09IFwib2JqZWN0XCIgJiYgc2VsZlBhbmVzLnB1c2goY2hpbGRyZW4pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHR5cGVvZiBjaGlsZHJlbiA9PSBcIm9iamVjdFwiICYmIHNlbGZCdXR0b25zLnB1c2goY2hpbGRyZW4pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBsZXQgbW9kYWxQcm9wcyA9IHtcclxuICAgICAgdGl0bGU6IGxhYmVsICsgdGl0bGUsXHJcbiAgICAgIG9uT2s6IHRoaXMub25TdWJtaXQuYmluZCh0aGlzKSxcclxuICAgICAgb25DYW5jZWw6IHRoaXMuaGlkZS5iaW5kKHRoaXMpLFxyXG4gICAgICBva0J1dHRvblByb3BzOiB7IGxvYWRpbmc6IGxvYWRpbmcgfSxcclxuICAgICAgY2VudGVyZWQ6IHRydWUsXHJcbiAgICAgIHdpZHRoOiBcIjUwdndcIixcclxuICAgICAgZm9vdGVyQnV0dG9uOiBzZWxmQnV0dG9ucyxcclxuICAgICAgLi4uZGVmYXVsdE1vZGFsUHJvcHMsXHJcbiAgICB9IGFzIGFueTtcclxuXHJcbiAgICBsZXQgZHJhd2VyUHJvcHMgPSB7XHJcbiAgICAgIG9uT2s6IHRoaXMub25TdWJtaXQuYmluZCh0aGlzKSxcclxuICAgICAgb25DbG9zZTogdGhpcy5oaWRlLmJpbmQodGhpcyksXHJcbiAgICAgIHdpZHRoOiBcIjUwdndcIixcclxuICAgICAgZm9vdGVyQnV0dG9uOiBzZWxmQnV0dG9ucyxcclxuICAgICAgLi4uZGVmYXVsdERyYXdlclByb3BzLFxyXG4gICAgfSBhcyBhbnk7XHJcbiAgICBpZiAobGFiZWwgPT0gXCLmn6XnnItcIikge1xyXG4gICAgICBtb2RhbFByb3BzLmZvb3RlciA9IG51bGw7XHJcbiAgICAgIGRyYXdlclByb3BzLmZvb3RlciA9IG51bGw7XHJcbiAgICB9XHJcbiAgICB0aGlzLmRhdGVWYWx1ZUZvcm1hdCA9IHt9O1xyXG4gICAgdGhpcy5kYXRlRm9ybWF0ID0ge307XHJcbiAgICB0aGlzLmZpbGVGb3JtYXQgPSBbXTtcclxuICAgIGxldCBuZXdGb3Jtc09iaiA9IHt9IGFzIGFueTtcclxuICAgIGxldCBmb3JtR3JvdXBzID0gW10gYXMgYW55O1xyXG4gICAgbGV0IG90aGVyR3J1cHMgPSBbXSBhcyBhbnk7XHJcbiAgICBsZXQgc2hvd0Zvcm1zID0gW10gYXMgYW55O1xyXG4gICAgLy/lpITnkIbooajljZXmlbDmja5cclxuICAgIGZvcm1zLm1hcCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgIGlmIChpdGVtLnNob3cgIT09IGZhbHNlKSB7XHJcbiAgICAgICAgc2hvd0Zvcm1zLnB1c2goaXRlbSk7XHJcbiAgICAgICAgaWYgKGl0ZW0uZ3JvdXBOYW1lICYmIGZvcm1Hcm91cHMuaW5kZXhPZihpdGVtLmdyb3VwTmFtZSkgPCAwKSB7XHJcbiAgICAgICAgICBmb3JtR3JvdXBzLnB1c2goaXRlbS5ncm91cE5hbWUpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoIWl0ZW0uZ3JvdXBOYW1lKSB7XHJcbiAgICAgICAgICBvdGhlckdydXBzLnB1c2goaXRlbSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIGlmIChmb3JtR3JvdXBzLmxlbmd0aCA+IDApIHtcclxuICAgICAgZm9ybUdyb3Vwcy5tYXAoKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgIGxldCBncm91cEZvcm1zID0gW10gYXMgYW55O1xyXG4gICAgICAgIHNob3dGb3Jtcy5tYXAoKGZvcm06IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGZvcm0uZ3JvdXBOYW1lID09IGl0ZW0pIHtcclxuICAgICAgICAgICAgZ3JvdXBGb3Jtcy5wdXNoKGZvcm0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIG5ld0Zvcm1zT2JqW2l0ZW1dID0gZ3JvdXBGb3JtcztcclxuICAgICAgfSk7XHJcbiAgICAgIGlmIChvdGhlckdydXBzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICBuZXdGb3Jtc09ialtcIm5vR3JvdXBOYW1lXCJdID0gb3RoZXJHcnVwcztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgY29uc3QgUGFuZVdpdGhvdXRQYWdlVHlwZSA9IChQYW5lLCBwcm9wcykgPT4ge1xyXG4gICAgICBjb25zdCB7IHBhZ2VUeXBlLCAuLi5jbGVhblByb3BzIH0gPSBwcm9wcztcclxuICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoUGFuZS50eXBlLCBjbGVhblByb3BzKTtcclxuICAgIH07XHJcbiAgICAvL+iHquWumuS5ieaMiemSrlxyXG4gICAgcmV0dXJuIChcclxuICAgICAgPEZvcm1cclxuICAgICAgICByZWY9e3RoaXMuZm9ybVJlZn1cclxuICAgICAgICBzaG93TW9kZWw9e3RoaXMucHJvcHMuZm9ybVR5cGUgPT0gXCJwYWdlXCIgPyBudWxsIDogdGhpcy5wcm9wcy5mb3JtVHlwZX1cclxuICAgICAgICBtb2RhbFByb3BzPXt7IC4uLm1vZGFsUHJvcHMgfX1cclxuICAgICAgICBkcmF3ZXJQcm9wcz17eyAuLi5kcmF3ZXJQcm9wcyB9fVxyXG4gICAgICAgIC8vIGxhYmVsQ29sPXt7IGZsZXg6IFwiMTAwcHhcIiB9fVxyXG4gICAgICAgIC8vIHdyYXBwZXJDb2w9e3sgZmxleDogXCIxNXZ3XCIgfX1cclxuICAgICAgICBvblZhbHVlc0NoYW5nZT17KGNoYW5nZWRWYWx1ZXMsIGFsbFZhbHVlcykgPT4ge1xyXG4gICAgICAgICAgY29uc3QgeyBvbkZvcm1DaGFuZ2UgfSA9IHRoaXMucHJvcHM7XHJcbiAgICAgICAgICBvbkZvcm1DaGFuZ2UgJiYgb25Gb3JtQ2hhbmdlKGNoYW5nZWRWYWx1ZXMsIGFsbFZhbHVlcyk7XHJcbiAgICAgICAgfX1cclxuICAgICAgICBjaGFuZ2VWYWxpZD17dGhpcy5wcm9wcy5jaGFuZ2VWYWxpZH1cclxuICAgICAgICB7Li4ucHJvcHN9XHJcbiAgICAgID5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm5zYy1mb3JtLXBhZ2VcIj5cclxuICAgICAgICAgIHtmb3JtR3JvdXBzLmxlbmd0aCA9PSAwID8gKFxyXG4gICAgICAgICAgICB0aGlzLnByb3BzLmZvcm1UeXBlICE9PSBcInBhZ2VcIiA/IChcclxuICAgICAgICAgICAgICB0aGlzLnJlbmRlckZvcm0oc2hvd0Zvcm1zLCBsYWJlbClcclxuICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm5zYy1mb3JtLXBhbmVcIj5cclxuICAgICAgICAgICAgICAgIHt0aGlzLnJlbmRlckZvcm0oc2hvd0Zvcm1zLCBsYWJlbCl9XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgIE9iamVjdC5rZXlzKG5ld0Zvcm1zT2JqKS5tYXAoKGtleSkgPT4ge1xyXG4gICAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGtleT17a2V5fSBjbGFzc05hbWU9XCJuc2MtZm9ybS1wYW5lXCI+XHJcbiAgICAgICAgICAgICAgICAgIHtrZXkgIT0gXCJub0dyb3VwTmFtZVwiICYmIChcclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm5zYy1mb3JtLXRpdGxlXCI+e2tleX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJuc2MtZm9ybS1jb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3RoaXMucmVuZGVyRm9ybShuZXdGb3Jtc09ialtrZXldLCBsYWJlbCl9XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICl9XHJcblxyXG4gICAgICAgICAge3NlbGZQYW5lcy5sZW5ndGggPiAwICYmXHJcbiAgICAgICAgICAgIHNlbGZQYW5lcy5tYXAoKFBhbmUsIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibnNjLWZvcm0tcGFuZVwiIGtleT17aW5kZXh9PlxyXG4gICAgICAgICAgICAgICAgICB7UGFuZVdpdGhvdXRQYWdlVHlwZShQYW5lLCB7IC4uLlBhbmUucHJvcHMgfSl9XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9KX1cclxuICAgICAgICAgIHtmb3JtVHlwZSA9PT0gXCJwYWdlXCIgJiYgZm9vdGVyID09IHRydWUgJiYgKFxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbHMoXHJcbiAgICAgICAgICAgICAgICB0aGlzLnByb3BzLmZvb3RlckNsYXNzTmFtZSxcclxuICAgICAgICAgICAgICAgIFwibnNjLWZvcm0tcGFnZS1mb290ZXJcIixcclxuICAgICAgICAgICAgICAgIFt0aGlzLnN0YXRlLndpZHRoID8gXCJuc2MtZm9ybS1wYWdlLWZvb3Rlci13aWR0aFwiIDogXCJcIl1cclxuICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPEJ1dHRvblxyXG4gICAgICAgICAgICAgICAgey4uLnRoaXMucHJvcHMuY2FuY2VsQnV0dG9uUHJvcHN9XHJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnByb3BzLm9uQ2FuY2VsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5vbkNhbmNlbCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgbG9hZGluZzogZmFsc2UgfSk7XHJcbiAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIOWPlua2iFxyXG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICAgICAgICAgIDxCdXR0b25cclxuICAgICAgICAgICAgICAgIHR5cGU9XCJwcmltYXJ5XCJcclxuICAgICAgICAgICAgICAgIHsuLi50aGlzLnByb3BzLm9rQnV0dG9uUHJvcHN9XHJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMub25TdWJtaXQoKTtcclxuICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICBsb2FkaW5nPXt0aGlzLnN0YXRlLmxvYWRpbmd9XHJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e1wibnNjLWZvcm0tcGFnZS1mb290ZXItYnRuXCJ9XHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAg5L+d5a2YXHJcbiAgICAgICAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICAgICAgICAge3NlbGZCdXR0b25zLm1hcCgoaXRlbTogYW55LCBpbmRleDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17XCJuc2MtZm9ybS1wYWdlLWZvb3Rlci1idG5cIn0ga2V5PXtpbmRleH0+XHJcbiAgICAgICAgICAgICAgICAgICAge2l0ZW19XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICB9KX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICApfVxyXG4gICAgICAgICAge2Zvcm1UeXBlID09PSBcInBhZ2VcIiAmJiBmb290ZXIgIT09IHRydWUgJiYgdGhpcy5wcm9wcy5mb290ZXJ9XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvRm9ybT5cclxuICAgICk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBGb3JtUGFnZTtcclxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUEsT0FBT0EsS0FBSyxJQUFJQyxhQUFhLFFBQW1CLE9BQU87QUFDdkQsT0FBT0MsSUFBSSxNQUFNLGlCQUFpQjtBQUNsQyxTQUFrQkMsT0FBTyxRQUFRLGFBQWE7QUFDOUMsT0FBT0MsT0FBTyxNQUFNLG9CQUFvQjtBQUN4QyxPQUFPQyxHQUFHLE1BQU0scUJBQXFCO0FBQ3JDLE9BQU9DLEdBQUcsTUFBTSxxQkFBcUI7QUFDckMsU0FBU0MsVUFBVSxFQUFFQyxhQUFhLFFBQVEsbUJBQW1CO0FBQzdELE9BQU9DLEtBQUssTUFBTSxPQUFPO0FBQ3pCLE9BQU8scUJBQXFCO0FBQzVCLE9BQU9DLE1BQU0sTUFBTSxRQUFRO0FBQzNCLE9BQU9DLE1BQU0sTUFBTSxtQkFBbUI7QUFDdEMsT0FBT0MsTUFBTSxNQUFNLG1CQUFtQjtBQUN0QyxPQUFPQyxHQUFHLE1BQU0sWUFBWTtBQUU1QixPQUFPQyxVQUFVLE1BQU0sYUFBYTtBQUdwQyxTQUFTQyxrQkFBa0IsUUFBUSxzQkFBc0I7QUE4QnpELE1BQU1DLFFBQVEsU0FBU2YsYUFBYSxDQUFxQjtFQUFBZ0IsWUFBQTtJQUFBLFNBQUFDLFNBQUE7SUFBQUMsZUFBQSwrQkFDN0NuQixLQUFLLENBQUNvQixTQUFTLENBQU0sQ0FBQztJQUFBRCxlQUFBLGdCQUN4QjtNQUNORSxPQUFPLEVBQUUsS0FBSztNQUNkQyxLQUFLLEVBQUUsSUFBSSxDQUFDQyxLQUFLLENBQUNDLFFBQVEsSUFBSSxFQUFFO01BQ2hDQyxVQUFVLEVBQUUsSUFBSTtNQUNoQkMsS0FBSyxFQUFFLENBQUMsQ0FBUTtNQUNoQkMsU0FBUyxFQUFFLENBQUMsQ0FBUTtNQUNwQkMsUUFBUSxFQUFFLENBQUMsQ0FBUTtNQUNuQkMsS0FBSyxFQUFFckIsYUFBYSxDQUFDLHVCQUF1QixDQUFDLElBQUksS0FBSztNQUN0RHNCLE1BQU0sRUFBRSxJQUFJLENBQUNQLEtBQUssQ0FBQ08sTUFBTSxJQUFJO0lBQy9CLENBQUM7SUFBQVgsZUFBQSxnQkFDWSxFQUFFO0lBQUFBLGVBQUEsMEJBQ0csQ0FBQyxDQUFDO0lBQUFBLGVBQUEscUJBQ1AsQ0FBQyxDQUFDO0lBQUFBLGVBQUEscUJBQ0YsRUFBRTtJQUFBQSxlQUFBLHFCQUNGLENBQUMsQ0FBQztJQUFBQSxlQUFBLGtCQUNMLENBQUMsQ0FBQztJQUFBQSxlQUFBLHFCQUNDLElBQUk7SUFBQUEsZUFBQSx3QkE4QkFZLEVBQUUsSUFBSztNQUN0QixNQUFNQyxJQUFJLEdBQUcsT0FBT0QsRUFBRSxDQUFDQyxJQUFJLEtBQUssUUFBUSxHQUFHQyxJQUFJLENBQUNDLEtBQUssQ0FBQ0gsRUFBRSxDQUFDQyxJQUFJLENBQUMsR0FBR0QsRUFBRSxDQUFDQyxJQUFJO01BQ3hFLElBQUlHLEtBQUssR0FBRyxJQUFJO01BQ2hCLElBQUlILElBQUksQ0FBQ0ksU0FBUyxJQUFJLGNBQWMsRUFBRTtRQUNwQyxNQUFNO1VBQUVDO1FBQVEsQ0FBQyxHQUFHTCxJQUFJO1FBQ3hCLElBQUlLLE9BQU8sQ0FBQ0MsS0FBSyxLQUFLLElBQUksSUFBSUQsT0FBTyxDQUFDQyxLQUFLLEtBQUssS0FBSyxFQUFFO1VBQ3JESCxLQUFLLENBQUNJLFFBQVEsQ0FBQztZQUFFVixLQUFLLEVBQUVRLE9BQU8sQ0FBQ0M7VUFBTSxDQUFDLENBQUM7UUFDMUM7TUFDRjtJQUNGLENBQUM7RUFBQTtFQXRDREUsaUJBQWlCQSxDQUFBLEVBQVM7SUFDeEJDLE1BQU0sQ0FBQ0MsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQ0MsYUFBYSxDQUFDO0lBQ3RELE1BQU07TUFDSkMsUUFBUSxHQUFHLE1BQU07TUFDakJDLGFBQWEsR0FBRyxDQUFDLENBQUM7TUFDbEJyQixRQUFRLEdBQUc7SUFDYixDQUFDLEdBQUcsSUFBSSxDQUFDRCxLQUFLO0lBQ2QsSUFBSXFCLFFBQVEsSUFBSSxNQUFNLEVBQUU7TUFDdEIsSUFBSUMsYUFBYSxDQUFDQyxTQUFTLElBQUl0QixRQUFRLEtBQUssSUFBSSxFQUFFO1FBQ2hEVixVQUFVLENBQUNpQyxHQUFHLENBQUNGLGFBQWEsQ0FBQ0MsU0FBUyxFQUFFO1VBQ3RDRSxNQUFNLEVBQUU7WUFBRUMsRUFBRSxFQUFFLElBQUksQ0FBQ0MsS0FBSyxDQUFDcEI7VUFBTyxDQUFDO1VBQ2pDcUIsU0FBUyxFQUFFLEtBQUs7VUFDaEJDLFVBQVUsRUFBRTtRQUNkLENBQUMsQ0FBQyxDQUFDQyxJQUFJLENBQUVDLEdBQUcsSUFBSztVQUNmLElBQUlBLEdBQUcsQ0FBQ0MsSUFBSSxJQUFJLEdBQUcsRUFBRTtZQUFBLElBQUFDLHFCQUFBO1lBQ25CLENBQUFBLHFCQUFBLE9BQUksQ0FBQ0MsT0FBTyxDQUFDQyxPQUFPLGNBQUFGLHFCQUFBLGVBQXBCQSxxQkFBQSxDQUFzQkcsY0FBYyxDQUFBQyxhQUFBLEtBQU1OLEdBQUcsQ0FBQ3RCLElBQUksQ0FBRSxDQUFDO1VBQ3ZEO1FBQ0YsQ0FBQyxDQUFDO01BQ0osQ0FBQyxNQUFNLElBQUlSLFFBQVEsSUFBSSxJQUFJLEVBQUU7UUFDM0IsSUFBSSxJQUFJLENBQUNELEtBQUssQ0FBQ3NDLFlBQVksRUFBRTtVQUFBLElBQUFDLHNCQUFBO1VBQzNCLElBQUlELFlBQVksR0FBRyxJQUFJLENBQUNFLG1CQUFtQixDQUFDLENBQUM7VUFDN0MsQ0FBQUQsc0JBQUEsT0FBSSxDQUFDTCxPQUFPLENBQUNDLE9BQU8sY0FBQUksc0JBQUEsZUFBcEJBLHNCQUFBLENBQXNCSCxjQUFjLENBQUNFLFlBQVksSUFBSSxDQUFDLENBQUMsQ0FBQztRQUMxRDtNQUNGO0lBQ0Y7RUFDRjtFQUNBRyxvQkFBb0JBLENBQUEsRUFBRztJQUNyQnZCLE1BQU0sQ0FBQ3dCLG1CQUFtQixDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUN0QixhQUFhLENBQUM7RUFDM0Q7RUFXQW9CLG1CQUFtQkEsQ0FBQSxFQUFHO0lBQ3BCLE1BQU07TUFBRUY7SUFBYSxDQUFDLEdBQUcsSUFBSSxDQUFDdEMsS0FBSztJQUNuQyxPQUFPUixrQkFBa0IsQ0FBQzhDLFlBQVksRUFBRSxJQUFJLENBQUN0QyxLQUFLLENBQUMyQyxLQUFLLElBQUksQ0FBQyxDQUFDLEVBQUU7TUFDOURDLEtBQUssRUFBRSxJQUFJLENBQUM1QyxLQUFLLENBQUM0QyxLQUFLO01BQ3ZCQyxPQUFPLEVBQUUsSUFBSSxDQUFDN0MsS0FBSyxDQUFDNkMsT0FBTztNQUMzQlgsT0FBTyxFQUFFLElBQUksQ0FBQ0EsT0FBTztNQUNyQlksSUFBSSxFQUFFLElBQUksQ0FBQ0M7SUFDYixDQUFDLENBQUM7RUFDSjtFQUNBO0VBQ0FDLElBQUlBLENBQUNDLFFBQWMsRUFBc0M7SUFBQSxJQUFwQ0MsVUFBVSxHQUFBdkQsU0FBQSxDQUFBd0QsTUFBQSxRQUFBeEQsU0FBQSxRQUFBeUQsU0FBQSxHQUFBekQsU0FBQSxNQUFHLEtBQUs7SUFBQSxJQUFFMEQsUUFBYyxHQUFBMUQsU0FBQSxDQUFBd0QsTUFBQSxPQUFBeEQsU0FBQSxNQUFBeUQsU0FBQTtJQUNyRCxJQUFJckQsS0FBSyxHQUFHLElBQUk7SUFDaEIsSUFBSWtELFFBQVEsSUFBSUMsVUFBVSxJQUFJLFFBQVEsRUFBRTtNQUN0Q25ELEtBQUssR0FBRyxJQUFJO0lBQ2QsQ0FBQyxNQUFNLElBQUlrRCxRQUFRLEtBQUtDLFVBQVUsSUFBSSxRQUFRLElBQUlBLFVBQVUsSUFBSSxRQUFRLENBQUMsRUFBRTtNQUN6RW5ELEtBQUssR0FBRyxJQUFJO0lBQ2Q7SUFDQSxJQUFJa0QsUUFBUSxFQUFFO01BQ1osSUFBSSxDQUFDakMsUUFBUSxDQUNYO1FBQ0VqQixLQUFLLEVBQUVBLEtBQUs7UUFDWkksS0FBSyxFQUFFOEMsUUFBUTtRQUNmMUMsTUFBTSxFQUFFMEMsUUFBUSxDQUFDdkI7TUFDbkIsQ0FBQyxFQUNELE1BQU07UUFBQSxJQUFBNEIsc0JBQUE7UUFDSixJQUFJbkQsS0FBSyxHQUFHLElBQUksQ0FBQ29ELFlBQVksQ0FBQ04sUUFBUSxFQUFFbEQsS0FBSyxDQUFDO1FBQzlDO1FBQ0EsQ0FBQXVELHNCQUFBLE9BQUksQ0FBQ3BCLE9BQU8sQ0FBQ0MsT0FBTyxjQUFBbUIsc0JBQUEsZUFBcEJBLHNCQUFBLENBQXNCRSxRQUFRLENBQUNyRCxLQUFLLEVBQUU7VUFDcENzRCxXQUFXLEVBQUVBLENBQUEsS0FBTTtZQUNqQkosUUFBUSxJQUFJQSxRQUFRLENBQUMsQ0FBQztVQUN4QjtRQUNGLENBQUMsQ0FBQztNQUNKLENBQ0YsQ0FBQztJQUNILENBQUMsTUFBTTtNQUNMLElBQUksQ0FBQ3JDLFFBQVEsQ0FDWDtRQUNFakIsS0FBSyxFQUFFQTtNQUNULENBQUMsRUFDRCxNQUFNO1FBQUEsSUFBQTJELHNCQUFBO1FBQ0osSUFBSXBCLFlBQVksR0FBRyxJQUFJLENBQUN0QyxLQUFLLENBQUNzQyxZQUFZLEdBQ3RDLElBQUksQ0FBQ0UsbUJBQW1CLENBQUMsQ0FBQyxHQUMxQixDQUFDLENBQUM7UUFDTixDQUFBa0Isc0JBQUEsT0FBSSxDQUFDeEIsT0FBTyxDQUFDQyxPQUFPLGNBQUF1QixzQkFBQSxlQUFwQkEsc0JBQUEsQ0FBc0JGLFFBQVEsQ0FBQ2xCLFlBQVksSUFBSSxDQUFDLENBQUMsRUFBRTtVQUNqRG1CLFdBQVcsRUFBRUEsQ0FBQSxLQUFNO1lBQ2pCSixRQUFRLElBQUlBLFFBQVEsQ0FBQyxDQUFDO1VBQ3hCO1FBQ0YsQ0FBQyxDQUFDO01BQ0osQ0FDRixDQUFDO0lBQ0g7RUFDRjtFQUNBTSxJQUFJQSxDQUFBLEVBQWM7SUFBQSxJQUFBQyxzQkFBQTtJQUFBLElBQWJELElBQUksR0FBQWhFLFNBQUEsQ0FBQXdELE1BQUEsUUFBQXhELFNBQUEsUUFBQXlELFNBQUEsR0FBQXpELFNBQUEsTUFBRyxJQUFJO0lBQ2QsTUFBTTtNQUFFa0U7SUFBVyxDQUFDLEdBQUcsSUFBSSxDQUFDN0QsS0FBSztJQUNqQyxJQUFJNkQsVUFBVSxFQUFFO01BQ2RBLFVBQVUsSUFBSUEsVUFBVSxDQUFDLENBQUM7TUFDMUI7SUFDRjtJQUNBLElBQUksQ0FBQzdDLFFBQVEsQ0FBQztNQUFFbEIsT0FBTyxFQUFFLEtBQUs7TUFBRU8sUUFBUSxFQUFFLENBQUM7SUFBRSxDQUFDLENBQUM7SUFDL0NzRCxJQUFJLE1BQUFDLHNCQUFBLEdBQUksSUFBSSxDQUFDMUIsT0FBTyxDQUFDQyxPQUFPLGNBQUF5QixzQkFBQSx1QkFBcEJBLHNCQUFBLENBQXNCRSxRQUFRLENBQUMsQ0FBQztFQUMxQztFQUNBQSxRQUFRQSxDQUFBLEVBQUc7SUFBQSxJQUFBQyxzQkFBQTtJQUNULElBQUksQ0FBQy9DLFFBQVEsQ0FBQztNQUFFbEIsT0FBTyxFQUFFLEtBQUs7TUFBRU8sUUFBUSxFQUFFLENBQUM7SUFBRSxDQUFDLENBQUM7SUFDL0MsQ0FBQTBELHNCQUFBLE9BQUksQ0FBQzdCLE9BQU8sQ0FBQ0MsT0FBTyxjQUFBNEIsc0JBQUEsZUFBcEJBLHNCQUFBLENBQXNCRCxRQUFRLENBQUMsQ0FBQztFQUNsQztFQUNBTixRQUFRQSxDQUFDUCxRQUFjLEVBQXNDO0lBQUEsSUFBcENDLFVBQVUsR0FBQXZELFNBQUEsQ0FBQXdELE1BQUEsUUFBQXhELFNBQUEsUUFBQXlELFNBQUEsR0FBQXpELFNBQUEsTUFBRyxLQUFLO0lBQUEsSUFBRTBELFFBQWMsR0FBQTFELFNBQUEsQ0FBQXdELE1BQUEsT0FBQXhELFNBQUEsTUFBQXlELFNBQUE7SUFDekQsSUFBSSxDQUFDSixJQUFJLENBQUNDLFFBQVEsRUFBRUMsVUFBVSxFQUFFRyxRQUFRLENBQUM7RUFDM0M7RUFDQVcsVUFBVUEsQ0FBQ2xFLE9BQWdCLEVBQUU7SUFDM0IsSUFBSSxDQUFDa0IsUUFBUSxDQUFDO01BQUVsQixPQUFPLEVBQUVBO0lBQVEsQ0FBQyxDQUFDO0VBQ3JDO0VBQ0FtRSxXQUFXQSxDQUFDQyxJQUFJLEVBQUU7SUFDaEIsSUFBSSxDQUFDbEQsUUFBUSxDQUFDO01BQ1pqQixLQUFLLEVBQUVtRTtJQUNULENBQUMsQ0FBQztFQUNKO0VBQ0FDLFNBQVNBLENBQUN6QyxFQUFFLEVBQUU7SUFDWixJQUFJLENBQUNWLFFBQVEsQ0FBQztNQUNaVCxNQUFNLEVBQUVtQjtJQUNWLENBQUMsQ0FBQztFQUNKO0VBQ0EwQyxZQUFZQSxDQUFBLEVBQUc7SUFBQSxJQUFBQyxzQkFBQTtJQUNiLE1BQU07TUFBRXRFLEtBQUs7TUFBRUksS0FBSztNQUFFQyxTQUFTO01BQUVDO0lBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQ3NCLEtBQUs7SUFDeEQsTUFBTTJDLFNBQVMsSUFBQUQsc0JBQUEsR0FBRyxJQUFJLENBQUNuQyxPQUFPLENBQUNDLE9BQU8sY0FBQWtDLHNCQUFBLHVCQUFwQkEsc0JBQUEsQ0FBc0JFLGNBQWMsQ0FBQyxDQUFDO0lBQ3hELElBQUk5RCxJQUFJLEdBQUd0QixNQUFNLENBQUNxRixTQUFTLENBQUFuQyxhQUFBLENBQUFBLGFBQUEsS0FBTWlDLFNBQVMsR0FBS2xFLFNBQVMsQ0FBRSxDQUFDO0lBQzNELElBQUksSUFBSSxDQUFDcUUsVUFBVSxDQUFDdEIsTUFBTSxHQUFHLENBQUMsRUFBRTtNQUM5QixJQUFJdUIsV0FBVyxHQUFHLENBQUMsQ0FBUTtNQUMzQixJQUFJLENBQUNELFVBQVUsQ0FBQ0UsR0FBRyxDQUFFQyxJQUFJLElBQUs7UUFDNUIsSUFBSXZFLFFBQVEsQ0FBQ3VFLElBQUksQ0FBQyxDQUFDekIsTUFBTSxJQUFJLENBQUMsRUFBRTtVQUM5QnVCLFdBQVcsQ0FBQ0UsSUFBSSxDQUFDLEdBQUcsSUFBSTtRQUMxQixDQUFDLE1BQU07VUFDTEYsV0FBVyxDQUFDRSxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUNDLFdBQVcsQ0FBQ3hFLFFBQVEsQ0FBQ3VFLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM1RDtNQUNGLENBQUMsQ0FBQztNQUNGbkUsSUFBSSxHQUFBNEIsYUFBQSxDQUFBQSxhQUFBLEtBQVE1QixJQUFJLEdBQUtpRSxXQUFXLENBQUU7SUFDcEM7SUFDQSxJQUFJLENBQUMsSUFBSSxDQUFDSSxVQUFVLEVBQUU7TUFDcEJqRyxPQUFPLENBQUNrRyxLQUFLLENBQUMsY0FBYyxDQUFDO01BQzdCO0lBQ0Y7SUFDQSxJQUFJLENBQUMvRixVQUFVLENBQUMsSUFBSSxDQUFDZ0csZUFBZSxDQUFDLEVBQUU7TUFDckMsS0FBSyxJQUFJQyxHQUFHLElBQUksSUFBSSxDQUFDRCxlQUFlLEVBQUU7UUFDcEMsSUFBSUUsT0FBTyxHQUFHekUsSUFBSSxDQUFDd0UsR0FBRyxDQUFDO1FBQ3ZCLElBQUlDLE9BQU8sRUFBRTtVQUNYLElBQUlDLEtBQUssQ0FBQ0MsT0FBTyxDQUFDRixPQUFPLENBQUMsRUFBRTtZQUMxQnpFLElBQUksQ0FBQ3dFLEdBQUcsQ0FBQyxHQUFHLENBQ1YvRixLQUFLLENBQUNnRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQ0csTUFBTSxDQUFDLElBQUksQ0FBQ0wsZUFBZSxDQUFDQyxHQUFHLENBQUMsQ0FBQyxFQUNuRC9GLEtBQUssQ0FBQ2dHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDRyxNQUFNLENBQUMsSUFBSSxDQUFDTCxlQUFlLENBQUNDLEdBQUcsQ0FBQyxDQUFDLENBQ3BEO1lBQ0QsSUFBSSxJQUFJLENBQUNLLFVBQVUsQ0FBQ0wsR0FBRyxDQUFDLEVBQUU7Y0FDeEIsSUFBSTtnQkFDRnhFLElBQUksQ0FBQyxJQUFJLENBQUM2RSxVQUFVLENBQUNMLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcvRixLQUFLLENBQUNnRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQ0csTUFBTSxDQUN0RCxJQUFJLENBQUNFLFVBQVUsQ0FBQ04sR0FBRyxDQUNyQixDQUFDO2dCQUNEeEUsSUFBSSxDQUFDLElBQUksQ0FBQzZFLFVBQVUsQ0FBQ0wsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRy9GLEtBQUssQ0FBQ2dHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDRyxNQUFNLENBQ3RELElBQUksQ0FBQ0UsVUFBVSxDQUFDTixHQUFHLENBQ3JCLENBQUM7Z0JBQ0QsT0FBT3hFLElBQUksQ0FBQ3dFLEdBQUcsQ0FBQztjQUNsQixDQUFDLENBQUMsT0FBT08sQ0FBQyxFQUFFLENBQUM7WUFDZjtVQUNGLENBQUMsTUFBTTtZQUNML0UsSUFBSSxDQUFDd0UsR0FBRyxDQUFDLEdBQUcvRixLQUFLLENBQUNnRyxPQUFPLENBQUMsQ0FBQ0csTUFBTSxDQUFDLElBQUksQ0FBQ0wsZUFBZSxDQUFDQyxHQUFHLENBQUMsQ0FBQztVQUM5RDtRQUNGO01BQ0Y7SUFDRjtJQUNBLElBQUlsRixLQUFLLElBQUksSUFBSSxFQUFFO01BQ2pCVSxJQUFJLEdBQUE0QixhQUFBLENBQUFBLGFBQUEsS0FBUTVCLElBQUk7UUFBRWlCLEVBQUUsRUFBRSxDQUFBdkIsS0FBSyxhQUFMQSxLQUFLLHVCQUFMQSxLQUFLLENBQUV1QixFQUFFLEtBQUksSUFBSSxDQUFDQyxLQUFLLENBQUNwQjtNQUFNLEVBQUU7SUFDeEQ7SUFDQSxJQUFJa0YsT0FBTyxHQUFHL0UsSUFBSSxDQUFDQyxLQUFLLENBQUNELElBQUksQ0FBQ2dGLFNBQVMsQ0FBQ2pGLElBQUksQ0FBQyxDQUFDO0lBQzlDLE9BQU9nRixPQUFPO0VBQ2hCO0VBQ0FsQyxZQUFZQSxDQUFDcEQsS0FBSyxFQUFFK0QsSUFBSSxFQUFFO0lBQ3hCLElBQUl5QixNQUFNLEdBQUd4RyxNQUFNLENBQUNxRixTQUFTLENBQUNyRSxLQUFLLENBQUM7SUFDcEMsSUFBSSxJQUFJLENBQUNzRSxVQUFVLENBQUN0QixNQUFNLEdBQUcsQ0FBQyxFQUFFO01BQzlCLElBQUk5QyxRQUFRLEdBQUcsQ0FBQyxDQUFRO01BQ3hCLElBQUksQ0FBQ29FLFVBQVUsQ0FBQ21CLE9BQU8sQ0FBRUMsT0FBTyxJQUFLO1FBQ25DLElBQUlYLE9BQU8sR0FBR1MsTUFBTSxDQUFDRSxPQUFPLENBQUM7UUFDN0IsSUFBSVgsT0FBTyxJQUFJQyxLQUFLLENBQUNDLE9BQU8sQ0FBQ0YsT0FBTyxDQUFDLEVBQUU7VUFDckM3RSxRQUFRLENBQUN3RixPQUFPLENBQUMsR0FBRyxJQUFJLENBQUNoQixXQUFXLENBQUNLLE9BQU8sSUFBSSxFQUFFLEVBQUVoQixJQUFJLENBQUM7UUFDM0QsQ0FBQyxNQUFNO1VBQ0w3RCxRQUFRLENBQUN3RixPQUFPLENBQUMsR0FBRyxFQUFFO1FBQ3hCO01BQ0YsQ0FBQyxDQUFDO01BQ0YsSUFBSSxDQUFDN0UsUUFBUSxDQUFDO1FBQUVYLFFBQVEsRUFBRUE7TUFBUyxDQUFDLENBQUM7SUFDdkM7SUFDQTtJQUNBLElBQUksQ0FBQ3JCLFVBQVUsQ0FBQyxJQUFJLENBQUN1RyxVQUFVLENBQUMsRUFBRTtNQUNoQyxLQUFLLElBQUlOLEdBQUcsSUFBSSxJQUFJLENBQUNNLFVBQVUsRUFBRTtRQUMvQixJQUFJTCxPQUFPLEdBQUdTLE1BQU0sQ0FBQ1YsR0FBRyxDQUFDO1FBQ3pCLElBQUlDLE9BQU8sRUFBRTtVQUNYLElBQUlDLEtBQUssQ0FBQ0MsT0FBTyxDQUFDRixPQUFPLENBQUMsRUFBRTtZQUMxQlMsTUFBTSxDQUFDVixHQUFHLENBQUMsR0FBRyxDQUNaL0YsS0FBSyxDQUFDZ0csT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQ0ssVUFBVSxDQUFDTixHQUFHLENBQUMsQ0FBQyxFQUN2Qy9GLEtBQUssQ0FBQ2dHLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUNLLFVBQVUsQ0FBQ04sR0FBRyxDQUFDLENBQUMsQ0FDeEM7VUFDSCxDQUFDLE1BQU07WUFDTFUsTUFBTSxDQUFDVixHQUFHLENBQUMsR0FBRy9GLEtBQUssQ0FBQ2dHLE9BQU8sRUFBRSxJQUFJLENBQUNLLFVBQVUsQ0FBQ04sR0FBRyxDQUFDLENBQUM7VUFDcEQ7UUFDRixDQUFDLE1BQU07VUFDTCxJQUFJLElBQUksQ0FBQ0ssVUFBVSxDQUFDTCxHQUFHLENBQUMsRUFBRTtZQUN4QixJQUFJYSxNQUFNLEdBQUdILE1BQU0sQ0FBQyxJQUFJLENBQUNMLFVBQVUsQ0FBQ0wsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDNUMsSUFBSWMsTUFBTSxHQUFHSixNQUFNLENBQUMsSUFBSSxDQUFDTCxVQUFVLENBQUNMLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzVDLElBQUlhLE1BQU0sSUFBSUMsTUFBTSxFQUFFO2NBQ3BCSixNQUFNLENBQUNWLEdBQUcsQ0FBQyxHQUFHLENBQ1ovRixLQUFLLENBQUM0RyxNQUFNLEVBQUUsSUFBSSxDQUFDUCxVQUFVLENBQUNOLEdBQUcsQ0FBQyxDQUFDLEVBQ25DL0YsS0FBSyxDQUFDNkcsTUFBTSxFQUFFLElBQUksQ0FBQ1IsVUFBVSxDQUFDTixHQUFHLENBQUMsQ0FBQyxDQUNwQztZQUNIO1VBQ0Y7UUFDRjtNQUNGO0lBQ0Y7SUFDQSxPQUFPVSxNQUFNO0VBQ2Y7RUFDQUssWUFBWUEsQ0FBQzdGLEtBQUssRUFBZTtJQUFBLElBQUE4RixzQkFBQTtJQUFBLElBQWIvQixJQUFJLEdBQUF2RSxTQUFBLENBQUF3RCxNQUFBLFFBQUF4RCxTQUFBLFFBQUF5RCxTQUFBLEdBQUF6RCxTQUFBLE1BQUcsSUFBSTtJQUM3QixNQUFNdUcsUUFBUSxHQUFHLElBQUksQ0FBQzNDLFlBQVksQ0FBQ3BELEtBQUssRUFBRStELElBQUksQ0FBQztJQUMvQyxDQUFBK0Isc0JBQUEsT0FBSSxDQUFDL0QsT0FBTyxDQUFDQyxPQUFPLGNBQUE4RCxzQkFBQSxlQUFwQkEsc0JBQUEsQ0FBc0I3RCxjQUFjLENBQUM4RCxRQUFRLENBQUM7RUFDaEQ7RUFDQUMsUUFBUUEsQ0FBQ0MsUUFBUSxFQUFFckcsS0FBSyxFQUFFO0lBQUEsSUFBQXNHLHNCQUFBO0lBQ3hCLE1BQU07TUFDSkMsU0FBUztNQUNUQyxZQUFZLEdBQUcsQ0FBQyxDQUFDO01BQ2pCbEQsUUFBUTtNQUNSL0IsYUFBYSxHQUFHLENBQUMsQ0FBQztNQUNsQmtGLGFBQWEsR0FBRyxDQUFDO0lBQ25CLENBQUMsR0FBRyxJQUFJLENBQUN4RyxLQUFLO0lBQ2QsTUFBTTtNQUFFeUcsTUFBTTtNQUFFQyxTQUFTO01BQUVDLFNBQVM7TUFBRUM7SUFBYSxDQUFDLEdBQUd0RixhQUFhO0lBQ3BFLElBQUl1RixHQUFHLEdBQUdQLFNBQVM7SUFDbkIsSUFBSTdFLE1BQVcsR0FBRyxDQUFDLENBQUM7SUFDcEIsSUFBSSxDQUFDMUIsS0FBSyxJQUFJQSxLQUFLLElBQUksSUFBSSxFQUFFO01BQzNCOEcsR0FBRyxHQUFHSixNQUFNLEdBQUdBLE1BQU0sR0FBR0gsU0FBUztNQUNqQyxJQUFJSyxTQUFTLElBQUksT0FBT0EsU0FBUyxJQUFJLFFBQVEsRUFBRTtRQUM3QyxNQUFNaEUsS0FBSyxHQUFHLElBQUksQ0FBQzNDLEtBQUssQ0FBQzJDLEtBQUssSUFBSSxDQUFDLENBQUM7UUFDcEMsSUFBSW1FLElBQUksR0FBRyxJQUFJQyxRQUFRLENBQUMsT0FBTyxFQUFFSixTQUFTLENBQUM7UUFDM0MsSUFBSUssWUFBWSxHQUFHRixJQUFJLENBQUNuRSxLQUFLLENBQUM7UUFDOUJsQixNQUFNLEdBQUd1RixZQUFZO01BQ3ZCLENBQUMsTUFBTTtRQUNMdkYsTUFBTSxHQUFHa0YsU0FBUyxHQUFHQSxTQUFTLEdBQUdKLFlBQVk7TUFDL0M7SUFDRixDQUFDLE1BQU0sSUFBSXhHLEtBQUssSUFBSSxJQUFJLEVBQUU7TUFDeEI4RyxHQUFHLEdBQUdILFNBQVMsR0FBR0EsU0FBUyxHQUFHSixTQUFTO01BQ3ZDLElBQUlNLFlBQVksSUFBSSxPQUFPQSxZQUFZLElBQUksUUFBUSxFQUFFO1FBQ25ELE1BQU1qRSxLQUFLLEdBQUcsSUFBSSxDQUFDM0MsS0FBSyxDQUFDMkMsS0FBSyxJQUFJLENBQUMsQ0FBQztRQUNwQyxJQUFJbUUsSUFBSSxHQUFHLElBQUlDLFFBQVEsQ0FBQyxPQUFPLEVBQUVILFlBQVksQ0FBQztRQUM5QyxJQUFJSSxZQUFZLEdBQUdGLElBQUksQ0FBQ25FLEtBQUssQ0FBQztRQUM5QmxCLE1BQU0sR0FBR3VGLFlBQVk7TUFDdkIsQ0FBQyxNQUFNO1FBQ0x2RixNQUFNLEdBQUdtRixZQUFZLEdBQUdBLFlBQVksR0FBR0wsWUFBWTtNQUNyRDtJQUNGO0lBQ0EsSUFBSSxDQUFDTSxHQUFHLEVBQUU7TUFDUkksT0FBTyxDQUFDbEMsS0FBSyxDQUFDLFlBQVksQ0FBQztNQUMzQjtJQUNGO0lBQ0EsTUFBTTtRQUFFdEUsSUFBSSxHQUFHLENBQUM7TUFBa0IsQ0FBQyxHQUFHZ0IsTUFBTTtNQUF0QnlGLFdBQVcsR0FBQUMsd0JBQUEsQ0FBSzFGLE1BQU0sRUFBQTJGLFNBQUE7SUFDNUMsQ0FBQWYsc0JBQUEsT0FBSSxDQUFDbkUsT0FBTyxDQUFDQyxPQUFPLGNBQUFrRSxzQkFBQSxlQUFwQkEsc0JBQUEsQ0FBc0JnQixRQUFRLENBQzVCUixHQUFHLEVBQUF4RSxhQUFBLENBQUFBLGFBQUE7TUFFRDVCLElBQUksRUFBQTRCLGFBQUEsQ0FBQUEsYUFBQSxLQUFPK0QsUUFBUSxHQUFLM0YsSUFBSSxDQUFFO01BQzlCNkcsV0FBVyxFQUFFdkgsS0FBSyxJQUFJO0lBQUksR0FDdkJ5RyxhQUFhLEdBQ2JVLFdBQVcsR0FFZm5GLEdBQVEsSUFBSztNQUNaLE1BQU07UUFBRUMsSUFBSTtRQUFFdUY7TUFBSSxDQUFDLEdBQUd4RixHQUFHO01BQ3pCLElBQUksQ0FBQ2YsUUFBUSxDQUFDO1FBQUVsQixPQUFPLEVBQUU7TUFBTSxDQUFDLENBQUM7TUFDakMsSUFBSWtDLElBQUksS0FBSyxHQUFHLEVBQUU7UUFDaEJuRCxPQUFPLENBQUMySSxPQUFPLENBQUN6SCxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQzdCMEgsVUFBVSxDQUFDLE1BQU07VUFDZixJQUFJLENBQUM5RCxJQUFJLENBQUMsSUFBSSxDQUFDO1VBQ2ZOLFFBQVEsSUFBSUEsUUFBUSxDQUFDLENBQUM7UUFDeEIsQ0FBQyxFQUFFLEdBQUcsQ0FBQztRQUVQO01BQ0Y7SUFDRixDQUNGLENBQUM7RUFDSDtFQUNBd0IsV0FBV0EsQ0FBQ3BFLElBQUksRUFBZ0I7SUFBQSxJQUFkVixLQUFLLEdBQUFKLFNBQUEsQ0FBQXdELE1BQUEsUUFBQXhELFNBQUEsUUFBQXlELFNBQUEsR0FBQXpELFNBQUEsTUFBRyxJQUFJO0lBQzVCLElBQUksQ0FBQ21GLFVBQVUsR0FBRyxJQUFJO0lBQ3RCLElBQUl6RSxRQUFRLEdBQUcsRUFBUztJQUN4QixJQUFJSSxJQUFJLElBQUlBLElBQUksQ0FBQzBDLE1BQU0sR0FBRyxDQUFDLEVBQUU7TUFDM0IxQyxJQUFJLENBQUNrRSxHQUFHLENBQUVDLElBQUksSUFBSztRQUNqQixJQUFJOEMsR0FBRyxHQUFHO1VBQ1JDLE1BQU0sRUFBRS9DLElBQUksQ0FBQytDLE1BQU07VUFDbkJDLFFBQVEsRUFBRWhELElBQUksQ0FBQ2dEO1FBQ2pCLENBQVE7UUFDUixJQUFJN0gsS0FBSyxJQUFJLElBQUksRUFBRTtVQUNqQjJILEdBQUcsQ0FBQ0csTUFBTSxHQUFHLE1BQU07UUFDckI7UUFDQSxJQUFJOUgsS0FBSyxLQUFLLElBQUksSUFBSTZFLElBQUksQ0FBQ2lELE1BQU0sS0FBSyxNQUFNLEVBQUU7VUFDNUMsSUFBSSxDQUFDL0MsVUFBVSxHQUFHLEtBQUs7UUFDekI7UUFDQXpFLFFBQVEsQ0FBQ3lILElBQUksQ0FBQ0osR0FBRyxDQUFDO01BQ3BCLENBQUMsQ0FBQztJQUNKO0lBQ0EsT0FBT3JILFFBQVE7RUFDakI7RUFFQWdILFFBQVFBLENBQUEsRUFBRztJQUFBLElBQUFVLHVCQUFBO0lBQ1QsTUFBTTtNQUFFVjtJQUFTLENBQUMsR0FBRyxJQUFJLENBQUNySCxLQUFLO0lBQy9CLE1BQU07TUFBRUQsS0FBSztNQUFFSSxLQUFLO01BQUVDLFNBQVM7TUFBRUM7SUFBUyxDQUFDLEdBQUcsSUFBSSxDQUFDc0IsS0FBSztJQUN4RCxJQUFJcUcsS0FBSyxHQUFHLElBQUksQ0FBQ0EsS0FBSztJQUN0QixDQUFBRCx1QkFBQSxPQUFJLENBQUM3RixPQUFPLENBQUNDLE9BQU8sY0FBQTRGLHVCQUFBLGVBQXBCQSx1QkFBQSxDQUNJRSxjQUFjLENBQUMsQ0FBQyxDQUNqQm5HLElBQUksQ0FBQyxNQUFNO01BQ1YsSUFBSXJCLElBQUksR0FBRyxJQUFJLENBQUMyRCxZQUFZLENBQUMsQ0FBQztNQUM5QixJQUFJLENBQUNwRCxRQUFRLENBQUM7UUFBRWxCLE9BQU8sRUFBRTtNQUFLLENBQUMsQ0FBQztNQUNoQyxJQUFJdUgsUUFBUSxFQUFFO1FBQ1osSUFBSWEsVUFBVSxHQUFHL0ksTUFBTSxDQUFDcUYsU0FBUyxDQUFDL0QsSUFBSSxDQUFDO1FBQ3ZDNEcsUUFBUSxJQUFJQSxRQUFRLENBQUNhLFVBQVUsRUFBRW5JLEtBQUssQ0FBQztRQUN2QztNQUNGO01BQ0EsSUFBSSxDQUFDb0csUUFBUSxDQUFDMUYsSUFBSSxFQUFFVixLQUFLLENBQUM7SUFDNUIsQ0FBQyxDQUFDLENBQ0RvSSxLQUFLLENBQUVDLFNBQWMsSUFBSyxDQUFDLENBQUMsQ0FBQztFQUNsQztFQUNBQyxXQUFXQSxDQUFBQyxJQUFBLEVBQXFCdEksS0FBSyxFQUFFRyxLQUFLLEVBQUVvSSxXQUFXLEVBQUU5SCxJQUFJLEVBQUU7SUFBQSxJQUFyRDtNQUFFeUQsSUFBSTtNQUFFc0U7SUFBUyxDQUFDLEdBQUFGLElBQUE7SUFDNUIsSUFBSUMsV0FBVyxFQUFFO01BQ2YsSUFBSUMsUUFBUSxFQUFFO1FBQ1osTUFBTTtVQUFFcEk7UUFBVSxDQUFDLEdBQUcsSUFBSSxDQUFDdUIsS0FBSztRQUNoQyxNQUFNOEcsUUFBUSxHQUFBcEcsYUFBQSxLQUFRakMsU0FBUyxDQUFTO1FBQ3hDcUksUUFBUSxDQUFDRCxRQUFRLENBQUMsR0FBR0QsV0FBVyxDQUFDeEksS0FBSztRQUN0QyxJQUFJLENBQUNpQixRQUFRLENBQUM7VUFDWlosU0FBUyxFQUFFcUk7UUFDYixDQUFDLENBQUM7TUFDSjtJQUNGO0lBQ0EsSUFBSXpJLEtBQUssQ0FBQzBJLFFBQVEsRUFBRTtNQUNsQixJQUFJLE9BQU8xSSxLQUFLLENBQUMwSSxRQUFRLElBQUksVUFBVSxFQUFFO1FBQ3ZDMUksS0FBSyxDQUFDMEksUUFBUSxDQUFDdkksS0FBSyxFQUFFb0ksV0FBVyxFQUFFOUgsSUFBSSxDQUFDO01BQzFDLENBQUMsTUFBTSxJQUFJLE9BQU9ULEtBQUssQ0FBQzBJLFFBQVEsSUFBSSxRQUFRLEVBQUU7UUFDNUMsTUFBTUMsV0FBVyxHQUFHO1VBQ2xCeEksS0FBSztVQUNMTSxJQUFJO1VBQ0p5QixPQUFPLEVBQUUsSUFBSSxDQUFDQSxPQUFPO1VBQ3JCVSxLQUFLLEVBQUUsSUFBSSxDQUFDNUMsS0FBSyxDQUFDNEMsS0FBSyxJQUFJLENBQUMsQ0FBQztVQUM3QkUsSUFBSSxFQUFFLElBQUksQ0FBQ0MsT0FBTztVQUNsQkYsT0FBTyxFQUFFLElBQUksQ0FBQzdDLEtBQUssQ0FBQzZDO1FBQ3RCLENBQVE7UUFDUixNQUFNRixLQUFLLEdBQUcsSUFBSSxDQUFDM0MsS0FBSyxDQUFDMkMsS0FBSyxJQUFJLENBQUMsQ0FBQztRQUNwQyxJQUFJdUIsSUFBSSxJQUFJLFFBQVEsRUFBRTtVQUNwQnlFLFdBQVcsQ0FBQ0osV0FBVyxHQUFHQSxXQUFXO1VBQ3JDSSxXQUFXLENBQUNsSSxJQUFJLEdBQUdBLElBQUk7UUFDekIsQ0FBQyxNQUFNLElBQUl5RCxJQUFJLElBQUksWUFBWSxJQUFJQSxJQUFJLElBQUksYUFBYSxFQUFFO1VBQ3hEeUUsV0FBVyxDQUFDQyxRQUFRLEdBQUdMLFdBQVc7UUFDcEM7UUFDQSxNQUFNTSxRQUFRLEdBQUcsSUFBSTlCLFFBQVEsQ0FBQyxhQUFhLEVBQUUsT0FBTyxFQUFFL0csS0FBSyxDQUFDMEksUUFBUSxDQUFDO1FBQ3JFRyxRQUFRLENBQUNGLFdBQVcsRUFBRWhHLEtBQUssQ0FBQztNQUM5QjtJQUNGO0VBQ0Y7RUFFQW1HLFVBQVVBLENBQUNDLEtBQUssRUFBRWhKLEtBQUssRUFBRTtJQUN2QixNQUFNaUosUUFBZSxHQUFHLEVBQUU7SUFDMUIsb0JBQ0V2SyxLQUFBLENBQUF3SyxhQUFBLENBQUNsSyxHQUFHO01BQUNtSyxNQUFNLEVBQUU7SUFBRyxHQUNiSCxLQUFLLENBQUNwRSxHQUFHLENBQUMsQ0FBQ0MsSUFBUyxFQUFFdUUsS0FBYSxLQUFLO01BQUEsSUFBQUMsV0FBQTtNQUN2QyxNQUFNQyxTQUFTLEdBQUd6RSxJQUFJLENBQUM1RSxLQUFLLElBQUksQ0FBQyxDQUFDO01BQ2xDLElBQUlxSixTQUFTLENBQUNoRSxNQUFNLElBQUlnRSxTQUFTLENBQUNDLFdBQVcsRUFBRTtRQUM3QyxJQUFJLENBQUN0RSxlQUFlLENBQUNKLElBQUksQ0FBQzJFLElBQUksQ0FBQyxHQUM3QkYsU0FBUyxDQUFDaEUsTUFBTSxJQUFJZ0UsU0FBUyxDQUFDQyxXQUFXO01BQzdDO01BQ0EsSUFBSUQsU0FBUyxDQUFDaEUsTUFBTSxFQUFFO1FBQ3BCLElBQUksQ0FBQ0UsVUFBVSxDQUFDWCxJQUFJLENBQUMyRSxJQUFJLENBQUMsR0FBR0YsU0FBUyxDQUFDaEUsTUFBTTtNQUMvQztNQUNBLElBQUlULElBQUksQ0FBQ1YsSUFBSSxJQUFJLGFBQWEsSUFBSVUsSUFBSSxDQUFDMkUsSUFBSSxDQUFDQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUNyRyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1FBQ2pFLElBQUksQ0FBQ21DLFVBQVUsQ0FBQ1YsSUFBSSxDQUFDMkUsSUFBSSxDQUFDLEdBQUczRSxJQUFJLENBQUMyRSxJQUFJLENBQUNDLEtBQUssQ0FBQyxHQUFHLENBQUM7TUFDbkQ7TUFDQSxJQUFJQyxVQUFVLEdBQUcsRUFBQUwsV0FBQSxHQUFBeEUsSUFBSSxDQUFDNUUsS0FBSyxjQUFBb0osV0FBQSx1QkFBVkEsV0FBQSxDQUFZSyxVQUFVLEtBQUksS0FBSztNQUNoRCxJQUFJekosS0FBSyxHQUFBcUMsYUFBQSxDQUFBQSxhQUFBO1FBQ1BxSCxXQUFXLHVCQUFBQyxNQUFBLENBQVEvRSxJQUFJLENBQUM3RSxLQUFLO01BQUUsR0FDNUI2RSxJQUFJLENBQUM1RSxLQUFLO1FBQ2IwSSxRQUFRLEVBQUUsSUFBSSxDQUFDTCxXQUFXLENBQUN1QixJQUFJLENBQzdCLElBQUksRUFDSjtVQUNFMUYsSUFBSSxFQUFFVSxJQUFJLENBQUNWLElBQUk7VUFDZnNFLFFBQVEsRUFBRTVELElBQUksQ0FBQzREO1FBQ2pCLENBQUMsRUFBQW5HLGFBQUEsS0FDSXVDLElBQUksQ0FBQzVFLEtBQUssQ0FDakI7TUFBQyxFQUNGO01BQ0QsSUFBSSxDQUFDNEUsSUFBSSxDQUFDVixJQUFJLElBQUlVLElBQUksQ0FBQ1YsSUFBSSxJQUFJLE9BQU8sRUFBRTtRQUN0Q2xFLEtBQUssQ0FBQ3lKLFVBQVUsR0FBRyxJQUFJLENBQUMsQ0FBQztNQUMzQjtNQUNBLE9BQU96SixLQUFLLENBQUNzSixXQUFXO01BQ3hCLE9BQU90SixLQUFLLENBQUNxRixNQUFNO01BQ25CLE9BQU9yRixLQUFLLENBQUM2SixRQUFRO01BQ3JCLElBQUk5SixLQUFLLElBQUksSUFBSSxFQUFFO1FBQ2pCQyxLQUFLLENBQUM4SixRQUFRLEdBQUcsSUFBSTtRQUNyQjlKLEtBQUssQ0FBQzBKLFdBQVcsR0FBRyxFQUFFO01BQ3hCO01BQ0EsSUFBSzlFLElBQUksQ0FBQ21GLEtBQUssSUFBSW5GLElBQUksQ0FBQ21GLEtBQUssQ0FBQzVHLE1BQU0sR0FBRyxDQUFDLElBQUt5QixJQUFJLENBQUNvRixRQUFRLEtBQUssSUFBSSxFQUFFO1FBQ25FaEIsUUFBUSxDQUFDbEIsSUFBSSxDQUFDbEQsSUFBSSxDQUFDMkUsSUFBSSxDQUFDO01BQzFCO01BQ0EsSUFBSUosS0FBSyxHQUFHLENBQUMsS0FBS0osS0FBSyxDQUFDNUYsTUFBTSxFQUFFO1FBQzlCLElBQUksQ0FBQzZFLEtBQUssR0FBR2dCLFFBQVE7TUFDdkI7TUFDQSxNQUFNaUIsT0FBWSxnQkFBR3hMLEtBQUssQ0FBQ29CLFNBQVMsQ0FBTSxDQUFDO01BQzNDLElBQUksQ0FBQ2tELE9BQU8sQ0FBQzZCLElBQUksQ0FBQzJFLElBQUksQ0FBQyxHQUFHVSxPQUFPO01BQ2pDLElBQUlyRixJQUFJLENBQUNWLElBQUksS0FBSyxRQUFRLEVBQUU7UUFBQSxJQUFBZ0csWUFBQTtRQUMxQixvQkFDRXpMLEtBQUEsQ0FBQXdLLGFBQUEsQ0FBQ25LLEdBQUc7VUFDRnFMLElBQUksRUFBRXZGLElBQUksQ0FBQ3VGLElBQUksSUFBSSxFQUFHO1VBQ3RCbEYsR0FBRyxFQUFFa0UsS0FBTTtVQUNYaUIsS0FBSyxFQUFFO1lBQUVDLE9BQU8sRUFBRXpGLElBQUksQ0FBQ2pCLElBQUksR0FBRyxNQUFNLEdBQUc7VUFBUTtRQUFFLGdCQUVqRGxGLEtBQUEsQ0FBQXdLLGFBQUEsQ0FBQ3RLLElBQUksQ0FBQzJMLElBQUk7VUFDUnZLLEtBQUssRUFBRTZFLElBQUksQ0FBQzdFLEtBQU07VUFDbEJ3SixJQUFJLEVBQUUzRSxJQUFJLENBQUMyRSxJQUFLO1VBQ2hCUSxLQUFLLEVBQUVuRixJQUFJLENBQUNtRixLQUFNO1VBQ2xCTixVQUFVLEVBQUVBLFVBQVc7VUFDdkJjLGFBQWEsRUFBRTNGLElBQUksQ0FBQ1YsSUFBSSxHQUFHVSxJQUFJLENBQUNWLElBQUksR0FBRyxPQUFRO1VBQy9DOEYsUUFBUSxFQUFFcEYsSUFBSSxDQUFDb0YsUUFBUztVQUN4QjlGLElBQUksR0FBQWdHLFlBQUEsR0FBRXRGLElBQUksQ0FBQzVFLEtBQUssY0FBQWtLLFlBQUEsdUJBQVZBLFlBQUEsQ0FBWWhHLElBQUs7VUFDdkJzRyxPQUFPLEVBQUU1RixJQUFJLENBQUM0RixPQUFPLElBQUk7UUFBTSxHQUU5QjVGLElBQUksQ0FBQzZGLFVBQVUsR0FDWjdGLElBQUksQ0FBQzZGLFVBQVUsQ0FBQ3pLLEtBQUssQ0FBQyxHQUN0QnBCLE9BQU8sQ0FBQ2dHLElBQUksQ0FBQ1YsSUFBSSxFQUFBN0IsYUFBQTtVQUNmcUksR0FBRyxFQUFFVDtRQUFPLEdBQ1RqSyxLQUFLLENBQ1QsQ0FDSSxDQUNSLENBQUM7TUFFVixDQUFDLE1BQU07UUFBQSxJQUFBMkssWUFBQSxFQUFBQyxZQUFBLEVBQUFDLFlBQUE7UUFDTCxJQUFJLENBQUNwRyxVQUFVLENBQUNxRCxJQUFJLENBQUNsRCxJQUFJLENBQUMyRSxJQUFJLENBQUM7UUFDL0Isb0JBQ0U5SyxLQUFBLENBQUF3SyxhQUFBLENBQUNuSyxHQUFHO1VBQ0ZxTCxJQUFJLEVBQUV2RixJQUFJLENBQUN1RixJQUFJLElBQUksRUFBRztVQUN0QmxGLEdBQUcsRUFBRWtFLEtBQU07VUFDWGlCLEtBQUssRUFBRTtZQUFFQyxPQUFPLEVBQUV6RixJQUFJLENBQUNqQixJQUFJLEdBQUcsTUFBTSxHQUFHO1VBQVE7UUFBRSxnQkFFakRsRixLQUFBLENBQUF3SyxhQUFBLENBQUN0SyxJQUFJLENBQUMyTCxJQUFJO1VBQ1J2SyxLQUFLLEVBQUU2RSxJQUFJLENBQUM3RSxLQUFNO1VBQ2xCd0osSUFBSSxFQUFFM0UsSUFBSSxDQUFDMkUsSUFBSztVQUNoQlEsS0FBSyxFQUFFbkYsSUFBSSxDQUFDbUYsS0FBTTtVQUNsQk4sVUFBVSxFQUFFQSxVQUFXO1VBQ3ZCdkYsSUFBSSxHQUFBeUcsWUFBQSxHQUFFL0YsSUFBSSxDQUFDNUUsS0FBSyxjQUFBMkssWUFBQSx1QkFBVkEsWUFBQSxDQUFZekcsSUFBSztVQUN2QjhGLFFBQVEsRUFBRXBGLElBQUksQ0FBQ29GO1FBQVMsZ0JBRXhCdkwsS0FBQSxDQUFBd0ssYUFBQSxDQUFDNUosTUFBTSxFQUFBeUwsUUFBQTtVQUNMekssUUFBUSxFQUFFLElBQUksQ0FBQ3NCLEtBQUssQ0FBQ3RCLFFBQVEsQ0FBQ3VFLElBQUksQ0FBQzJFLElBQUksQ0FBQyxJQUFJLEVBQUc7VUFDL0N3QixZQUFZLEVBQUdDLElBQUksSUFBSztZQUN0QixNQUFNO2NBQUUzSztZQUFTLENBQUMsR0FBRyxJQUFJLENBQUNzQixLQUFLO1lBQy9CLElBQUksQ0FBQ1gsUUFBUSxDQUFDO2NBQ1pYLFFBQVEsRUFBQWdDLGFBQUEsQ0FBQUEsYUFBQSxLQUFPaEMsUUFBUTtnQkFBRSxDQUFDdUUsSUFBSSxDQUFDMkUsSUFBSSxHQUFHeUI7Y0FBSTtZQUM1QyxDQUFDLENBQUM7VUFDSixDQUFFO1VBQ0ZDLGNBQWMsRUFBRTtZQUNkQyxnQkFBZ0IsRUFBRSxJQUFJO1lBQ3RCQyxjQUFjLEVBQUVwTCxLQUFLLEtBQUs7VUFDNUIsQ0FBRTtVQUNGMkssR0FBRyxFQUFFVDtRQUFRLEdBQ1RqSyxLQUFLLEdBRVIsQ0FBQTRLLFlBQUEsR0FBQWhHLElBQUksQ0FBQzVFLEtBQUssY0FBQTRLLFlBQUEsZUFBVkEsWUFBQSxDQUFZUSxRQUFRLElBQUFQLFlBQUEsR0FDakJqRyxJQUFJLENBQUM1RSxLQUFLLGNBQUE2SyxZQUFBLHVCQUFWQSxZQUFBLENBQVlPLFFBQVEsR0FDcEJyTCxLQUFLLEtBQUssSUFBSSxpQkFBSXRCLEtBQUEsQ0FBQXdLLGFBQUEsQ0FBQzdKLE1BQU0sUUFBQywwQkFBWSxDQUNwQyxDQUNDLENBQ1IsQ0FBQztNQUVWO0lBQ0YsQ0FBQyxDQUNFLENBQUM7RUFFVjtFQUNBaU0sTUFBTUEsQ0FBQSxFQUFHO0lBQ1AsTUFBTTtNQUNKdEMsS0FBSyxHQUFHLEVBQUU7TUFDVi9JLEtBQUssR0FBRyxDQUFDLENBQUM7TUFDVnNMLE1BQU0sR0FBRyxJQUFJO01BQ2JGLFFBQVE7TUFDUi9KLFFBQVEsR0FBRyxNQUFNO01BQ2pCa0ssS0FBSyxHQUFHLEVBQUU7TUFDVkMsVUFBVSxFQUFFQyxpQkFBaUIsR0FBRyxDQUFDLENBQUM7TUFDbENDLFdBQVcsRUFBRUM7SUFDZixDQUFDLEdBQUcsSUFBSSxDQUFDM0wsS0FBSztJQUNkLE1BQU07TUFBRUYsT0FBTztNQUFFQztJQUFNLENBQUMsR0FBRyxJQUFJLENBQUM0QixLQUFLO0lBQ3JDLElBQUlpSyxXQUFXLEdBQUcsRUFBUztJQUMzQixJQUFJQyxTQUFTLEdBQUcsRUFBUztJQUN6QixJQUFJMUcsS0FBSyxDQUFDQyxPQUFPLENBQUNnRyxRQUFRLENBQUMsRUFBRTtNQUMzQkEsUUFBUSxDQUFDekcsR0FBRyxDQUFFQyxJQUFTLElBQUs7UUFDMUIsSUFBSU8sS0FBSyxDQUFDQyxPQUFPLENBQUNSLElBQUksQ0FBQyxFQUFFO1VBQ3ZCQSxJQUFJLENBQUNELEdBQUcsQ0FBRW1ILEtBQUssSUFBSztZQUFBLElBQUFDLFlBQUE7WUFDbEIsSUFBSSxDQUFBRCxLQUFLLGFBQUxBLEtBQUssZ0JBQUFDLFlBQUEsR0FBTEQsS0FBSyxDQUFFOUwsS0FBSyxjQUFBK0wsWUFBQSx1QkFBWkEsWUFBQSxDQUFjQyxRQUFRLEtBQUksVUFBVSxFQUFFO2NBQ3hDLE9BQU9wSCxJQUFJLElBQUksUUFBUSxJQUFJaUgsU0FBUyxDQUFDL0QsSUFBSSxDQUFDZ0UsS0FBSyxDQUFDO1lBQ2xEO1VBQ0YsQ0FBQyxDQUFDO1FBQ0osQ0FBQyxNQUFNO1VBQ0wsT0FBT2xILElBQUksSUFBSSxRQUFRLElBQUlnSCxXQUFXLENBQUM5RCxJQUFJLENBQUNsRCxJQUFJLENBQUM7UUFDbkQ7TUFDRixDQUFDLENBQUM7SUFDSixDQUFDLE1BQU0sSUFBSXdHLFFBQVEsRUFBRTtNQUNuQixNQUFNO1FBQUVwTDtNQUFXLENBQUMsR0FBR29MLFFBQVE7TUFDL0IsSUFBSSxDQUFBcEwsS0FBSyxhQUFMQSxLQUFLLHVCQUFMQSxLQUFLLENBQUVnTSxRQUFRLEtBQUksVUFBVSxFQUFFO1FBQ2pDLE9BQU9aLFFBQVEsSUFBSSxRQUFRLElBQUlTLFNBQVMsQ0FBQy9ELElBQUksQ0FBQ3NELFFBQVEsQ0FBQztNQUN6RCxDQUFDLE1BQU07UUFDTCxPQUFPQSxRQUFRLElBQUksUUFBUSxJQUFJUSxXQUFXLENBQUM5RCxJQUFJLENBQUNzRCxRQUFRLENBQUM7TUFDM0Q7SUFDRjtJQUNBLElBQUlJLFVBQVUsR0FBQW5KLGFBQUE7TUFDWmtKLEtBQUssRUFBRXhMLEtBQUssR0FBR3dMLEtBQUs7TUFDcEJVLElBQUksRUFBRSxJQUFJLENBQUM1RSxRQUFRLENBQUN1QyxJQUFJLENBQUMsSUFBSSxDQUFDO01BQzlCc0MsUUFBUSxFQUFFLElBQUksQ0FBQ3ZJLElBQUksQ0FBQ2lHLElBQUksQ0FBQyxJQUFJLENBQUM7TUFDOUJ1QyxhQUFhLEVBQUU7UUFBRXJNLE9BQU8sRUFBRUE7TUFBUSxDQUFDO01BQ25Dc00sUUFBUSxFQUFFLElBQUk7TUFDZDlMLEtBQUssRUFBRSxNQUFNO01BQ2IrTCxZQUFZLEVBQUVUO0lBQVcsR0FDdEJILGlCQUFpQixDQUNkO0lBRVIsSUFBSUMsV0FBVyxHQUFBckosYUFBQTtNQUNiNEosSUFBSSxFQUFFLElBQUksQ0FBQzVFLFFBQVEsQ0FBQ3VDLElBQUksQ0FBQyxJQUFJLENBQUM7TUFDOUIwQyxPQUFPLEVBQUUsSUFBSSxDQUFDM0ksSUFBSSxDQUFDaUcsSUFBSSxDQUFDLElBQUksQ0FBQztNQUM3QnRKLEtBQUssRUFBRSxNQUFNO01BQ2IrTCxZQUFZLEVBQUVUO0lBQVcsR0FDdEJELGtCQUFrQixDQUNmO0lBQ1IsSUFBSTVMLEtBQUssSUFBSSxJQUFJLEVBQUU7TUFDakJ5TCxVQUFVLENBQUNGLE1BQU0sR0FBRyxJQUFJO01BQ3hCSSxXQUFXLENBQUNKLE1BQU0sR0FBRyxJQUFJO0lBQzNCO0lBQ0EsSUFBSSxDQUFDdEcsZUFBZSxHQUFHLENBQUMsQ0FBQztJQUN6QixJQUFJLENBQUNPLFVBQVUsR0FBRyxDQUFDLENBQUM7SUFDcEIsSUFBSSxDQUFDZCxVQUFVLEdBQUcsRUFBRTtJQUNwQixJQUFJOEgsV0FBVyxHQUFHLENBQUMsQ0FBUTtJQUMzQixJQUFJQyxVQUFVLEdBQUcsRUFBUztJQUMxQixJQUFJQyxVQUFVLEdBQUcsRUFBUztJQUMxQixJQUFJQyxTQUFTLEdBQUcsRUFBUztJQUN6QjtJQUNBM0QsS0FBSyxDQUFDcEUsR0FBRyxDQUFFQyxJQUFTLElBQUs7TUFDdkIsSUFBSUEsSUFBSSxDQUFDNUIsSUFBSSxLQUFLLEtBQUssRUFBRTtRQUN2QjBKLFNBQVMsQ0FBQzVFLElBQUksQ0FBQ2xELElBQUksQ0FBQztRQUNwQixJQUFJQSxJQUFJLENBQUMrSCxTQUFTLElBQUlILFVBQVUsQ0FBQ0ksT0FBTyxDQUFDaEksSUFBSSxDQUFDK0gsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1VBQzVESCxVQUFVLENBQUMxRSxJQUFJLENBQUNsRCxJQUFJLENBQUMrSCxTQUFTLENBQUM7UUFDakMsQ0FBQyxNQUFNLElBQUksQ0FBQy9ILElBQUksQ0FBQytILFNBQVMsRUFBRTtVQUMxQkYsVUFBVSxDQUFDM0UsSUFBSSxDQUFDbEQsSUFBSSxDQUFDO1FBQ3ZCO01BQ0Y7SUFDRixDQUFDLENBQUM7SUFDRixJQUFJNEgsVUFBVSxDQUFDckosTUFBTSxHQUFHLENBQUMsRUFBRTtNQUN6QnFKLFVBQVUsQ0FBQzdILEdBQUcsQ0FBRUMsSUFBUyxJQUFLO1FBQzVCLElBQUlpSSxVQUFVLEdBQUcsRUFBUztRQUMxQkgsU0FBUyxDQUFDL0gsR0FBRyxDQUFFbUksSUFBUyxJQUFLO1VBQzNCLElBQUlBLElBQUksQ0FBQ0gsU0FBUyxJQUFJL0gsSUFBSSxFQUFFO1lBQzFCaUksVUFBVSxDQUFDL0UsSUFBSSxDQUFDZ0YsSUFBSSxDQUFDO1VBQ3ZCO1FBQ0YsQ0FBQyxDQUFDO1FBQ0ZQLFdBQVcsQ0FBQzNILElBQUksQ0FBQyxHQUFHaUksVUFBVTtNQUNoQyxDQUFDLENBQUM7TUFDRixJQUFJSixVQUFVLENBQUN0SixNQUFNLEdBQUcsQ0FBQyxFQUFFO1FBQ3pCb0osV0FBVyxDQUFDLGFBQWEsQ0FBQyxHQUFHRSxVQUFVO01BQ3pDO0lBQ0Y7SUFDQSxNQUFNTSxtQkFBbUIsR0FBR0EsQ0FBQ0MsSUFBSSxFQUFFaE4sS0FBSyxLQUFLO01BQzNDLE1BQU07VUFBRWdNO1FBQXdCLENBQUMsR0FBR2hNLEtBQUs7UUFBcEJpTixVQUFVLEdBQUE5Rix3QkFBQSxDQUFLbkgsS0FBSyxFQUFBa04sVUFBQTtNQUN6QyxvQkFBT3pPLEtBQUssQ0FBQ3dLLGFBQWEsQ0FBQytELElBQUksQ0FBQzlJLElBQUksRUFBRStJLFVBQVUsQ0FBQztJQUNuRCxDQUFDO0lBQ0Q7SUFDQSxvQkFDRXhPLEtBQUEsQ0FBQXdLLGFBQUEsQ0FBQ3RLLElBQUksRUFBQW1NLFFBQUE7TUFDSEosR0FBRyxFQUFFLElBQUksQ0FBQ3hJLE9BQVE7TUFDbEJpTCxTQUFTLEVBQUUsSUFBSSxDQUFDbk4sS0FBSyxDQUFDcUIsUUFBUSxJQUFJLE1BQU0sR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDckIsS0FBSyxDQUFDcUIsUUFBUztNQUN0RW1LLFVBQVUsRUFBQW5KLGFBQUEsS0FBT21KLFVBQVUsQ0FBRztNQUM5QkUsV0FBVyxFQUFBckosYUFBQSxLQUFPcUosV0FBVztNQUM3QjtNQUNBO01BQUE7TUFDQTBCLGNBQWMsRUFBRUEsQ0FBQ0MsYUFBYSxFQUFFQyxTQUFTLEtBQUs7UUFDNUMsTUFBTTtVQUFFQztRQUFhLENBQUMsR0FBRyxJQUFJLENBQUN2TixLQUFLO1FBQ25DdU4sWUFBWSxJQUFJQSxZQUFZLENBQUNGLGFBQWEsRUFBRUMsU0FBUyxDQUFDO01BQ3hELENBQUU7TUFDRkUsV0FBVyxFQUFFLElBQUksQ0FBQ3hOLEtBQUssQ0FBQ3dOO0lBQVksR0FDaEN4TixLQUFLLGdCQUVUdkIsS0FBQSxDQUFBd0ssYUFBQTtNQUFLd0UsU0FBUyxFQUFDO0lBQWUsR0FDM0JqQixVQUFVLENBQUNySixNQUFNLElBQUksQ0FBQyxHQUNyQixJQUFJLENBQUNuRCxLQUFLLENBQUNxQixRQUFRLEtBQUssTUFBTSxHQUM1QixJQUFJLENBQUN5SCxVQUFVLENBQUM0RCxTQUFTLEVBQUUzTSxLQUFLLENBQUMsZ0JBRWpDdEIsS0FBQSxDQUFBd0ssYUFBQTtNQUFLd0UsU0FBUyxFQUFDO0lBQWUsR0FDM0IsSUFBSSxDQUFDM0UsVUFBVSxDQUFDNEQsU0FBUyxFQUFFM00sS0FBSyxDQUM5QixDQUNOLEdBRUQyTixNQUFNLENBQUNDLElBQUksQ0FBQ3BCLFdBQVcsQ0FBQyxDQUFDNUgsR0FBRyxDQUFFTSxHQUFHLElBQUs7TUFDcEMsb0JBQ0V4RyxLQUFBLENBQUF3SyxhQUFBO1FBQUtoRSxHQUFHLEVBQUVBLEdBQUk7UUFBQ3dJLFNBQVMsRUFBQztNQUFlLEdBQ3JDeEksR0FBRyxJQUFJLGFBQWEsaUJBQ25CeEcsS0FBQSxDQUFBd0ssYUFBQTtRQUFLd0UsU0FBUyxFQUFDO01BQWdCLEdBQUV4SSxHQUFTLENBQzNDLGVBQ0R4RyxLQUFBLENBQUF3SyxhQUFBO1FBQUt3RSxTQUFTLEVBQUM7TUFBa0IsR0FDOUIsSUFBSSxDQUFDM0UsVUFBVSxDQUFDeUQsV0FBVyxDQUFDdEgsR0FBRyxDQUFDLEVBQUVsRixLQUFLLENBQ3JDLENBQ0YsQ0FBQztJQUVWLENBQUMsQ0FDRixFQUVBOEwsU0FBUyxDQUFDMUksTUFBTSxHQUFHLENBQUMsSUFDbkIwSSxTQUFTLENBQUNsSCxHQUFHLENBQUMsQ0FBQ3FJLElBQUksRUFBRTdELEtBQUssS0FBSztNQUM3QixvQkFDRTFLLEtBQUEsQ0FBQXdLLGFBQUE7UUFBS3dFLFNBQVMsRUFBQyxlQUFlO1FBQUN4SSxHQUFHLEVBQUVrRTtNQUFNLEdBQ3ZDNEQsbUJBQW1CLENBQUNDLElBQUksRUFBQTNLLGFBQUEsS0FBTzJLLElBQUksQ0FBQ2hOLEtBQUssQ0FBRSxDQUN6QyxDQUFDO0lBRVYsQ0FBQyxDQUFDLEVBQ0hxQixRQUFRLEtBQUssTUFBTSxJQUFJaUssTUFBTSxJQUFJLElBQUksaUJBQ3BDN00sS0FBQSxDQUFBd0ssYUFBQTtNQUNFd0UsU0FBUyxFQUFFbk8sR0FBRyxDQUNaLElBQUksQ0FBQ1UsS0FBSyxDQUFDNE4sZUFBZSxFQUMxQixzQkFBc0IsRUFDdEIsQ0FBQyxJQUFJLENBQUNqTSxLQUFLLENBQUNyQixLQUFLLEdBQUcsNEJBQTRCLEdBQUcsRUFBRSxDQUN2RDtJQUFFLGdCQUVGN0IsS0FBQSxDQUFBd0ssYUFBQSxDQUFDN0osTUFBTSxFQUFBMEwsUUFBQSxLQUNELElBQUksQ0FBQzlLLEtBQUssQ0FBQzZOLGlCQUFpQjtNQUNoQ0MsT0FBTyxFQUFFQSxDQUFBLEtBQU07UUFDYixJQUFJLElBQUksQ0FBQzlOLEtBQUssQ0FBQ2tNLFFBQVEsRUFBRTtVQUN2QixJQUFJLENBQUNsTSxLQUFLLENBQUNrTSxRQUFRLENBQUMsQ0FBQztVQUNyQjtRQUNGO1FBQ0EsSUFBSSxDQUFDbEwsUUFBUSxDQUFDO1VBQUVsQixPQUFPLEVBQUU7UUFBTSxDQUFDLENBQUM7TUFDbkM7SUFBRSxJQUNILGNBRU8sQ0FBQyxlQUNUckIsS0FBQSxDQUFBd0ssYUFBQSxDQUFDN0osTUFBTSxFQUFBMEwsUUFBQTtNQUNMNUcsSUFBSSxFQUFDO0lBQVMsR0FDVixJQUFJLENBQUNsRSxLQUFLLENBQUNtTSxhQUFhO01BQzVCMkIsT0FBTyxFQUFFQSxDQUFBLEtBQU07UUFDYixJQUFJLENBQUN6RyxRQUFRLENBQUMsQ0FBQztNQUNqQixDQUFFO01BQ0Z2SCxPQUFPLEVBQUUsSUFBSSxDQUFDNkIsS0FBSyxDQUFDN0IsT0FBUTtNQUM1QjJOLFNBQVMsRUFBRTtJQUEyQixJQUN2QyxjQUVPLENBQUMsRUFDUjdCLFdBQVcsQ0FBQ2pILEdBQUcsQ0FBQyxDQUFDQyxJQUFTLEVBQUV1RSxLQUFVLEtBQUs7TUFDMUMsb0JBQ0UxSyxLQUFBLENBQUF3SyxhQUFBO1FBQUt3RSxTQUFTLEVBQUUsMEJBQTJCO1FBQUN4SSxHQUFHLEVBQUVrRTtNQUFNLEdBQ3BEdkUsSUFDRSxDQUFDO0lBRVYsQ0FBQyxDQUNFLENBQ04sRUFDQXZELFFBQVEsS0FBSyxNQUFNLElBQUlpSyxNQUFNLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQ3RMLEtBQUssQ0FBQ3NMLE1BQ25ELENBQ0QsQ0FBQztFQUVYO0FBQ0Y7QUFFQSxlQUFlN0wsUUFBUSJ9
710
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIlB1cmVDb21wb25lbnQiLCJGb3JtIiwiZ2V0Tm9kZSIsIm1lc3NhZ2UiLCJDb2wiLCJSb3ciLCJpc0VtcHR5T2JqIiwiZ2V0TG9jYWxTdG9yZSIsImRheWpzIiwibG9kYXNoIiwiQnV0dG9uIiwiVXBsb2FkIiwiY2xzIiwiTnNjUmVxdWVzdCIsImNvbnZlcnRTdHJpbmdUb09iaiIsIkZvcm1QYWdlIiwiY29uc3RydWN0b3IiLCJhcmd1bWVudHMiLCJfZGVmaW5lUHJvcGVydHkiLCJjcmVhdGVSZWYiLCJsb2FkaW5nIiwibGFiZWwiLCJwcm9wcyIsImVkaXRUeXBlIiwiZWRpdG9yRmxhZyIsInZhbHVlIiwiZGljdE5hbWVzIiwiZmlsZUxpc3QiLCJ3aWR0aCIsImVkaXRJZCIsImV2IiwiZGF0YSIsIkpTT04iLCJwYXJzZSIsIl90aGlzIiwiZXZlbnRUeXBlIiwicGF5bG9hZCIsImNsb3NlIiwic2V0U3RhdGUiLCJjb21wb25lbnREaWRNb3VudCIsIndpbmRvdyIsImFkZEV2ZW50TGlzdGVuZXIiLCJsaXN0ZW5NZXNzYWdlIiwiZm9ybVR5cGUiLCJyZXF1ZXN0T2JqZWN0IiwiZGV0YWlsVXJsIiwiZ2V0IiwicGFyYW1zIiwiaWQiLCJzdGF0ZSIsInhzc0ZpbHRlciIsImF1dG9QcmVmaXgiLCJ0aGVuIiwicmVzIiwiY29kZSIsIl90aGlzJGZvcm1SZWYkY3VycmVudCIsImZvcm1SZWYiLCJjdXJyZW50Iiwic2V0RmllbGRzVmFsdWUiLCJfb2JqZWN0U3ByZWFkIiwiZGVmYXVsdFZhbHVlIiwiX3RoaXMkZm9ybVJlZiRjdXJyZW50MiIsImNvbnZlcnREZWZhdWx0VmFsdWUiLCJjb21wb25lbnRXaWxsVW5tb3VudCIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJVdGlscyIsImZ1bmNzIiwicGFnZVJlZiIsInJlZnMiLCJyZWZMaXN0Iiwic2hvdyIsIm9yZ1ZhbHVlIiwiZWRpdG9yZmxhZyIsImxlbmd0aCIsInVuZGVmaW5lZCIsImNhbGxCYWNrIiwiX3RoaXMkZm9ybVJlZiRjdXJyZW50MyIsImNvbnZlcnRWYWx1ZSIsInNob3dGb3JtIiwiYWZ0ZXJSZW5kZXIiLCJfdGhpcyRmb3JtUmVmJGN1cnJlbnQ0IiwiaGlkZSIsIl90aGlzJGZvcm1SZWYkY3VycmVudDUiLCJvbkhpZGVGb3JtIiwiaGlkZUZvcm0iLCJfdGhpcyRmb3JtUmVmJGN1cnJlbnQ2Iiwic2V0TG9hZGluZyIsInNldEVkaXRUeXBlIiwidHlwZSIsInNldEVkaXRJZCIsImdldEZvcm1WYWx1ZSIsIl90aGlzJGZvcm1SZWYkY3VycmVudDciLCJmb3JtVmFsdWUiLCJnZXRGaWVsZHNWYWx1ZSIsImNsb25lRGVlcCIsImZpbGVGb3JtYXQiLCJuZXdGaWxlTGlzdCIsIm1hcCIsIml0ZW0iLCJnZXRGaWxlTGlzdCIsInN1Ym1pdEZsYWciLCJlcnJvciIsImRhdGVWYWx1ZUZvcm1hdCIsImtleSIsIm9sZGRhdGEiLCJBcnJheSIsImlzQXJyYXkiLCJmb3JtYXQiLCJyYW5nZXJEYXRlIiwiZGF0ZUZvcm1hdCIsImUiLCJuZXdEYXRhIiwic3RyaW5naWZ5IiwidmFsdWVzIiwiZm9yRWFjaCIsImZpbGVLZXkiLCJ2YWx1ZTEiLCJ2YWx1ZTIiLCJzZXRGb3JtVmFsdWUiLCJfdGhpcyRmb3JtUmVmJGN1cnJlbnQ4IiwibmV3VmFsdWUiLCJkb1N1Ym1pdCIsImZvcm1kYXRhIiwiX3RoaXMkZm9ybVJlZiRjdXJyZW50OSIsInN1Ym1pdFVybCIsInN1Ym1pdFBhcmFtcyIsInJlcXVlc3RDb25maWciLCJhZGRVcmwiLCJlZGl0b3JVcmwiLCJhZGRQYXJhbXMiLCJlZGl0b3JQYXJhbXMiLCJ1cmwiLCJmdW5jIiwiRnVuY3Rpb24iLCJjb252ZXJQYXJhbXMiLCJjb25zb2xlIiwib3RoZXJQYXJhbXMiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMiLCJfZXhjbHVkZWQiLCJvblN1Ym1pdCIsIm5vVW5kZWZpbmVkIiwibXNnIiwic3VjY2VzcyIsInNldFRpbWVvdXQiLCJvYmoiLCJmaWxlSWQiLCJmaWxlTmFtZSIsInN0YXR1cyIsInB1c2giLCJfdGhpcyRmb3JtUmVmJGN1cnJlbnQxMCIsInZhbGlkIiwidmFsaWRhdGVGaWVsZHMiLCJyZXR1cm5EYXRhIiwiY2F0Y2giLCJlcnJvckluZm8iLCJ2YWx1ZUNoYW5nZSIsIl9yZWYiLCJ2YWx1ZU9wdGlvbiIsImRpY3ROYW1lIiwibmV3TmFtZXMiLCJvbkNoYW5nZSIsImV2ZW50T3B0aW9uIiwidmFsdWVTdHIiLCJzZWxmRnVuYyIsInJlbmRlckZvcm0iLCJmb3JtcyIsIm5ld1ZhbGlkIiwiY3JlYXRlRWxlbWVudCIsImd1dHRlciIsImluZGV4IiwiX2l0ZW0kcHJvcHMiLCJpdGVtUHJvcHMiLCJ2YWx1ZUZvcm1hdCIsIm5hbWUiLCJzcGxpdCIsImFsbG93Q2hhcnMiLCJwbGFjZWhvbGRlciIsImNvbmNhdCIsImJpbmQiLCJkYXRhVHlwZSIsImRpc2FibGVkIiwicnVsZXMiLCJyZXF1aXJlZCIsIml0ZW1SZWYiLCJfaXRlbSRwcm9wczIiLCJzcGFuIiwic3R5bGUiLCJkaXNwbGF5IiwiSXRlbSIsImNvbXBvbmVudE5hbWUiLCJub1N0eWxlIiwiZm9ybVJlbmRlciIsInJlZiIsIl9pdGVtJHByb3BzMyIsIl9pdGVtJHByb3BzNCIsIl9pdGVtJHByb3BzNSIsIl9leHRlbmRzIiwib25MaXN0Q2hhbmdlIiwibGlzdCIsInNob3dVcGxvYWRMaXN0Iiwic2hvd0Rvd25sb2FkSWNvbiIsInNob3dSZW1vdmVJY29uIiwiY2hpbGRyZW4iLCJyZW5kZXIiLCJmb290ZXIiLCJ0aXRsZSIsIm1vZGFsUHJvcHMiLCJkZWZhdWx0TW9kYWxQcm9wcyIsImRyYXdlclByb3BzIiwiZGVmYXVsdERyYXdlclByb3BzIiwic2VsZkJ1dHRvbnMiLCJzZWxmUGFuZXMiLCJjaGlsZCIsIl9jaGlsZCRwcm9wcyIsInBhZ2VUeXBlIiwiX2l0ZW0kcHJvcHM2Iiwib25PayIsIm9uQ2FuY2VsIiwib2tCdXR0b25Qcm9wcyIsImNlbnRlcmVkIiwiZm9vdGVyQnV0dG9uIiwib25DbG9zZSIsIm5ld0Zvcm1zT2JqIiwiZm9ybUdyb3VwcyIsIm90aGVyR3J1cHMiLCJzaG93Rm9ybXMiLCJncm91cE5hbWUiLCJpbmRleE9mIiwiZ3JvdXBGb3JtcyIsImZvcm0iLCJQYW5lV2l0aG91dFBhZ2VUeXBlIiwiUGFuZSIsImNsZWFuUHJvcHMiLCJfZXhjbHVkZWQyIiwic2hvd01vZGVsIiwib25WYWx1ZXNDaGFuZ2UiLCJjaGFuZ2VkVmFsdWVzIiwiYWxsVmFsdWVzIiwib25Gb3JtQ2hhbmdlIiwiY2hhbmdlVmFsaWQiLCJjbGFzc05hbWUiLCJPYmplY3QiLCJrZXlzIiwiZm9vdGVyQ2xhc3NOYW1lIiwiY2FuY2VsQnV0dG9uUHJvcHMiLCJvbkNsaWNrIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvcGFnZS9Gb3JtUGFnZS9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IFB1cmVDb21wb25lbnQsIFJlYWN0Tm9kZSB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgRm9ybSBmcm9tIFwiLi4vLi4vYmFzZS9mb3JtXCI7XHJcbmltcG9ydCB7IGdldExlc3MsIGdldE5vZGUgfSBmcm9tIFwiLi4vLi4vdXRpbHNcIjtcclxuaW1wb3J0IG1lc3NhZ2UgZnJvbSBcIi4uLy4uL2Jhc2UvbWVzc2FnZVwiO1xyXG5pbXBvcnQgQ29sIGZyb20gXCIuLi8uLi9iYXNlL2dyaWQvQ29sXCI7XHJcbmltcG9ydCBSb3cgZnJvbSBcIi4uLy4uL2Jhc2UvZ3JpZC9Sb3dcIjtcclxuaW1wb3J0IHsgaXNFbXB0eU9iaiwgZ2V0TG9jYWxTdG9yZSB9IGZyb20gXCJAYmotbnNjL2Z1bmN0aW9uc1wiO1xyXG5pbXBvcnQgZGF5anMgZnJvbSBcImRheWpzXCI7XHJcbmltcG9ydCBcIi4vaW5kZXgubW9kdWxlLmxlc3NcIjtcclxuaW1wb3J0IGxvZGFzaCBmcm9tIFwibG9kYXNoXCI7XHJcbmltcG9ydCBCdXR0b24gZnJvbSBcIi4uLy4uL2Jhc2UvYnV0dG9uXCI7XHJcbmltcG9ydCBVcGxvYWQgZnJvbSBcIi4uLy4uL2Jhc2UvdXBsb2FkXCI7XHJcbmltcG9ydCBjbHMgZnJvbSBcImNsYXNzbmFtZXNcIjtcclxuaW1wb3J0IHsgSUZvcm1Qcm9wcyB9IGZyb20gXCJzcmMvY29tcG9uZW50cy9iYXNlL2Zvcm0vRm9ybVwiO1xyXG5pbXBvcnQgTnNjUmVxdWVzdCBmcm9tIFwibnNjLXJlcXVlc3RcIjtcclxuaW1wb3J0IG9taXQgZnJvbSBcIm9taXQuanNcIjtcclxuaW1wb3J0IENvbXBvdW5kZWRTcGFjZSBmcm9tIFwiYW50ZC9lcy9zcGFjZVwiO1xyXG5pbXBvcnQgeyBjb252ZXJ0U3RyaW5nVG9PYmogfSBmcm9tIFwiLi4vU2V0dGluZ1V0aWwvdXRpbHNcIjtcclxuZXhwb3J0IGludGVyZmFjZSBGb3JtUGFnZVByb3BzIHtcclxuICBmb3Jtcz86IEFycmF5PGFueT47IC8v5piv5ZCm5pi+56S65pON5L2c5YiXXHJcbiAgc3VibWl0VXJsPzogc3RyaW5nO1xyXG4gIG9uU3VibWl0PzogKHZhbHVlPzogYW55LCBsYWJlbD86IGFueSkgPT4gdm9pZDtcclxuICBmb290ZXJDbGFzc05hbWU/OiBhbnk7XHJcbiAgb2tCdXR0b25Qcm9wcz86IGFueTtcclxuICBjYW5jZWxCdXR0b25Qcm9wcz86IGFueTtcclxuICBmb290ZXI/OiBSZWFjdE5vZGUgfCBib29sZWFuO1xyXG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xyXG4gIG9uRm9ybUNoYW5nZT86ICh2YWx1ZT86IGFueSwgYWxsVmFsdWU/OiBhbnkpID0+IHZvaWQ7XHJcbiAgc3VibWl0UGFyYW1zPzogYW55OyAvL+a3u+WKoOWPguaVsO+8jOm7mOiupG1vdGhvZDpwb3N077yMIOWPguaVsOmAmui/h2RhdGHkvKDpgJJcclxuICBmdW5jcz86IGFueTtcclxuICBwcm9wcz86IElGb3JtUHJvcHM7XHJcbiAgcmVxdWVzdE9iamVjdD86IHtcclxuICAgIGFkZFVybD86IHN0cmluZztcclxuICAgIGVkaXRvclVybD86IHN0cmluZztcclxuICAgIGFkZFBhcmFtcz86IGFueTtcclxuICAgIGVkaXRvclBhcmFtcz86IGFueTtcclxuICAgIGRldGFpbFVybD86IHN0cmluZztcclxuICB9O1xyXG4gIHJlcXVlc3RDb25maWc/OiBhbnk7XHJcbiAgZm9vdGVyV2lkdGg/OiBib29sZWFuO1xyXG4gIGVkaXRUeXBlPzogXCLmlrDlop5cIiB8IFwi57yW6L6RXCIgfCBcIuafpeeci1wiO1xyXG4gIHRpdGxlPzogc3RyaW5nO1xyXG4gIGVkaXRJZD86IHN0cmluZztcclxuICBtb2RhbFByb3BzPzogYW55O1xyXG4gIGRyYXdlclByb3BzPzogYW55O1xyXG4gIFtwcm9wc05hbWU6IHN0cmluZ106IGFueTtcclxufVxyXG5jbGFzcyBGb3JtUGFnZSBleHRlbmRzIFB1cmVDb21wb25lbnQ8Rm9ybVBhZ2VQcm9wcywgYW55PiB7XHJcbiAgZm9ybVJlZiA9IFJlYWN0LmNyZWF0ZVJlZjxhbnk+KCk7XHJcbiAgc3RhdGUgPSB7XHJcbiAgICBsb2FkaW5nOiBmYWxzZSxcclxuICAgIGxhYmVsOiB0aGlzLnByb3BzLmVkaXRUeXBlIHx8IFwiXCIsXHJcbiAgICBlZGl0b3JGbGFnOiB0cnVlLFxyXG4gICAgdmFsdWU6IHt9IGFzIGFueSxcclxuICAgIGRpY3ROYW1lczoge30gYXMgYW55LFxyXG4gICAgZmlsZUxpc3Q6IHt9IGFzIGFueSxcclxuICAgIHdpZHRoOiBnZXRMb2NhbFN0b3JlKFwibnNjLWhvbWUtbWVudUNvbGxzYXBlXCIpIHx8IGZhbHNlLFxyXG4gICAgZWRpdElkOiB0aGlzLnByb3BzLmVkaXRJZCB8fCBcIlwiLFxyXG4gIH07XHJcbiAgdmFsaWQ6IGFueSA9IFtdO1xyXG4gIGRhdGVWYWx1ZUZvcm1hdCA9IHt9IGFzIGFueTtcclxuICBkYXRlRm9ybWF0ID0ge30gYXMgYW55O1xyXG4gIGZpbGVGb3JtYXQgPSBbXSBhcyBhbnk7XHJcbiAgcmFuZ2VyRGF0ZSA9IHt9IGFzIGFueTtcclxuICByZWZMaXN0ID0ge30gYXMgYW55O1xyXG4gIHN1Ym1pdEZsYWcgPSB0cnVlO1xyXG4gIGNvbXBvbmVudERpZE1vdW50KCk6IHZvaWQge1xyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsIHRoaXMubGlzdGVuTWVzc2FnZSk7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIGZvcm1UeXBlID0gXCJwYWdlXCIsXHJcbiAgICAgIHJlcXVlc3RPYmplY3QgPSB7fSxcclxuICAgICAgZWRpdFR5cGUgPSBcIuaWsOWinlwiLFxyXG4gICAgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBpZiAoZm9ybVR5cGUgPT0gXCJwYWdlXCIpIHtcclxuICAgICAgaWYgKHJlcXVlc3RPYmplY3QuZGV0YWlsVXJsICYmIGVkaXRUeXBlICE9PSBcIuaWsOWinlwiKSB7XHJcbiAgICAgICAgTnNjUmVxdWVzdC5nZXQocmVxdWVzdE9iamVjdC5kZXRhaWxVcmwsIHtcclxuICAgICAgICAgIHBhcmFtczogeyBpZDogdGhpcy5zdGF0ZS5lZGl0SWQgfSxcclxuICAgICAgICAgIHhzc0ZpbHRlcjogZmFsc2UsXHJcbiAgICAgICAgICBhdXRvUHJlZml4OiB0cnVlLFxyXG4gICAgICAgIH0pLnRoZW4oKHJlcykgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICB0aGlzLmZvcm1SZWYuY3VycmVudD8uc2V0RmllbGRzVmFsdWUoeyAuLi5yZXMuZGF0YSB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIGlmIChlZGl0VHlwZSA9PSBcIuaWsOWinlwiKSB7XHJcbiAgICAgICAgaWYgKHRoaXMucHJvcHMuZGVmYXVsdFZhbHVlKSB7XHJcbiAgICAgICAgICBsZXQgZGVmYXVsdFZhbHVlID0gdGhpcy5jb252ZXJ0RGVmYXVsdFZhbHVlKCk7XHJcbiAgICAgICAgICB0aGlzLmZvcm1SZWYuY3VycmVudD8uc2V0RmllbGRzVmFsdWUoZGVmYXVsdFZhbHVlIHx8IHt9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgY29tcG9uZW50V2lsbFVubW91bnQoKSB7XHJcbiAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1lc3NhZ2VcIiwgdGhpcy5saXN0ZW5NZXNzYWdlKTtcclxuICB9XHJcbiAgbGlzdGVuTWVzc2FnZSA9IChldikgPT4ge1xyXG4gICAgY29uc3QgZGF0YSA9IHR5cGVvZiBldi5kYXRhID09PSBcInN0cmluZ1wiID8gSlNPTi5wYXJzZShldi5kYXRhKSA6IGV2LmRhdGE7XHJcbiAgICBsZXQgX3RoaXMgPSB0aGlzO1xyXG4gICAgaWYgKGRhdGEuZXZlbnRUeXBlID09IFwibWVudUNvbGxzYXBlXCIpIHtcclxuICAgICAgY29uc3QgeyBwYXlsb2FkIH0gPSBkYXRhO1xyXG4gICAgICBpZiAocGF5bG9hZC5jbG9zZSA9PT0gdHJ1ZSB8fCBwYXlsb2FkLmNsb3NlID09PSBmYWxzZSkge1xyXG4gICAgICAgIF90aGlzLnNldFN0YXRlKHsgd2lkdGg6IHBheWxvYWQuY2xvc2UgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9O1xyXG4gIGNvbnZlcnREZWZhdWx0VmFsdWUoKSB7XHJcbiAgICBjb25zdCB7IGRlZmF1bHRWYWx1ZSB9ID0gdGhpcy5wcm9wcztcclxuICAgIHJldHVybiBjb252ZXJ0U3RyaW5nVG9PYmooZGVmYXVsdFZhbHVlLCB0aGlzLnByb3BzLlV0aWxzIHx8IHt9LCB7XHJcbiAgICAgIGZ1bmNzOiB0aGlzLnByb3BzLmZ1bmNzLFxyXG4gICAgICBwYWdlUmVmOiB0aGlzLnByb3BzLnBhZ2VSZWYsXHJcbiAgICAgIGZvcm1SZWY6IHRoaXMuZm9ybVJlZixcclxuICAgICAgcmVmczogdGhpcy5yZWZMaXN0LFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIC8v6KGo5Y2V5pi+56S6XHJcbiAgc2hvdyhvcmdWYWx1ZT86IGFueSwgZWRpdG9yZmxhZyA9IFwiYWRkXCIsIGNhbGxCYWNrPzogYW55KSB7XHJcbiAgICBsZXQgbGFiZWwgPSBcIuaWsOWinlwiO1xyXG4gICAgaWYgKG9yZ1ZhbHVlICYmIGVkaXRvcmZsYWcgPT0gXCJlZGl0b3JcIikge1xyXG4gICAgICBsYWJlbCA9IFwi57yW6L6RXCI7XHJcbiAgICB9IGVsc2UgaWYgKG9yZ1ZhbHVlICYmIChlZGl0b3JmbGFnID09IFwiZGV0YWlsXCIgfHwgZWRpdG9yZmxhZyA9PSBcInNlYXJjaFwiKSkge1xyXG4gICAgICBsYWJlbCA9IFwi5p+l55yLXCI7XHJcbiAgICB9XHJcbiAgICBpZiAob3JnVmFsdWUpIHtcclxuICAgICAgdGhpcy5zZXRTdGF0ZShcclxuICAgICAgICB7XHJcbiAgICAgICAgICBsYWJlbDogbGFiZWwsXHJcbiAgICAgICAgICB2YWx1ZTogb3JnVmFsdWUsXHJcbiAgICAgICAgICBlZGl0SWQ6IG9yZ1ZhbHVlLmlkLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgbGV0IHZhbHVlID0gdGhpcy5jb252ZXJ0VmFsdWUob3JnVmFsdWUsIGxhYmVsKTtcclxuICAgICAgICAgIC8v5aSE55CG5paH5Lu25pWw5o2uXHJcbiAgICAgICAgICB0aGlzLmZvcm1SZWYuY3VycmVudD8uc2hvd0Zvcm0odmFsdWUsIHtcclxuICAgICAgICAgICAgYWZ0ZXJSZW5kZXI6ICgpID0+IHtcclxuICAgICAgICAgICAgICBjYWxsQmFjayAmJiBjYWxsQmFjaygpO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZXRTdGF0ZShcclxuICAgICAgICB7XHJcbiAgICAgICAgICBsYWJlbDogbGFiZWwsXHJcbiAgICAgICAgfSxcclxuICAgICAgICAoKSA9PiB7XHJcbiAgICAgICAgICBsZXQgZGVmYXVsdFZhbHVlID0gdGhpcy5wcm9wcy5kZWZhdWx0VmFsdWVcclxuICAgICAgICAgICAgPyB0aGlzLmNvbnZlcnREZWZhdWx0VmFsdWUoKVxyXG4gICAgICAgICAgICA6IHt9O1xyXG4gICAgICAgICAgdGhpcy5mb3JtUmVmLmN1cnJlbnQ/LnNob3dGb3JtKGRlZmF1bHRWYWx1ZSB8fCB7fSwge1xyXG4gICAgICAgICAgICBhZnRlclJlbmRlcjogKCkgPT4ge1xyXG4gICAgICAgICAgICAgIGNhbGxCYWNrICYmIGNhbGxCYWNrKCk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGhpZGUoaGlkZSA9IHRydWUpIHtcclxuICAgIGNvbnN0IHsgb25IaWRlRm9ybSB9ID0gdGhpcy5wcm9wcztcclxuICAgIGlmIChvbkhpZGVGb3JtKSB7XHJcbiAgICAgIG9uSGlkZUZvcm0gJiYgb25IaWRlRm9ybSgpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnNldFN0YXRlKHsgbG9hZGluZzogZmFsc2UsIGZpbGVMaXN0OiB7fSB9KTtcclxuICAgIGhpZGUgJiYgdGhpcy5mb3JtUmVmLmN1cnJlbnQ/LmhpZGVGb3JtKCk7XHJcbiAgfVxyXG4gIGhpZGVGb3JtKCkge1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7IGxvYWRpbmc6IGZhbHNlLCBmaWxlTGlzdDoge30gfSk7XHJcbiAgICB0aGlzLmZvcm1SZWYuY3VycmVudD8uaGlkZUZvcm0oKTtcclxuICB9XHJcbiAgc2hvd0Zvcm0ob3JnVmFsdWU/OiBhbnksIGVkaXRvcmZsYWcgPSBcImFkZFwiLCBjYWxsQmFjaz86IGFueSkge1xyXG4gICAgdGhpcy5zaG93KG9yZ1ZhbHVlLCBlZGl0b3JmbGFnLCBjYWxsQmFjayk7XHJcbiAgfVxyXG4gIHNldExvYWRpbmcobG9hZGluZzogYm9vbGVhbikge1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7IGxvYWRpbmc6IGxvYWRpbmcgfSk7XHJcbiAgfVxyXG4gIHNldEVkaXRUeXBlKHR5cGUpIHtcclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBsYWJlbDogdHlwZSxcclxuICAgIH0pO1xyXG4gIH1cclxuICBzZXRFZGl0SWQoaWQpIHtcclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBlZGl0SWQ6IGlkLFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGdldEZvcm1WYWx1ZSgpIHtcclxuICAgIGNvbnN0IHsgbGFiZWwsIHZhbHVlLCBkaWN0TmFtZXMsIGZpbGVMaXN0IH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgZm9ybVZhbHVlID0gdGhpcy5mb3JtUmVmLmN1cnJlbnQ/LmdldEZpZWxkc1ZhbHVlKCk7XHJcbiAgICBsZXQgZGF0YSA9IGxvZGFzaC5jbG9uZURlZXAoeyAuLi5mb3JtVmFsdWUsIC4uLmRpY3ROYW1lcyB9KTtcclxuICAgIGlmICh0aGlzLmZpbGVGb3JtYXQubGVuZ3RoID4gMCkge1xyXG4gICAgICBsZXQgbmV3RmlsZUxpc3QgPSB7fSBhcyBhbnk7XHJcbiAgICAgIHRoaXMuZmlsZUZvcm1hdC5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgICBpZiAoZmlsZUxpc3RbaXRlbV0ubGVuZ3RoID09IDApIHtcclxuICAgICAgICAgIG5ld0ZpbGVMaXN0W2l0ZW1dID0gbnVsbDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgbmV3RmlsZUxpc3RbaXRlbV0gPSB0aGlzLmdldEZpbGVMaXN0KGZpbGVMaXN0W2l0ZW1dIHx8IFtdKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBkYXRhID0geyAuLi5kYXRhLCAuLi5uZXdGaWxlTGlzdCB9O1xyXG4gICAgfVxyXG4gICAgaWYgKCF0aGlzLnN1Ym1pdEZsYWcpIHtcclxuICAgICAgbWVzc2FnZS5lcnJvcihcIuivt+etieW+heaJgOacieaWh+S7tuS4iuS8oOWujOaIkO+8gVwiKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKCFpc0VtcHR5T2JqKHRoaXMuZGF0ZVZhbHVlRm9ybWF0KSkge1xyXG4gICAgICBmb3IgKGxldCBrZXkgaW4gdGhpcy5kYXRlVmFsdWVGb3JtYXQpIHtcclxuICAgICAgICBsZXQgb2xkZGF0YSA9IGRhdGFba2V5XTtcclxuICAgICAgICBpZiAob2xkZGF0YSkge1xyXG4gICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkob2xkZGF0YSkpIHtcclxuICAgICAgICAgICAgZGF0YVtrZXldID0gW1xyXG4gICAgICAgICAgICAgIGRheWpzKG9sZGRhdGFbMF0pLmZvcm1hdCh0aGlzLmRhdGVWYWx1ZUZvcm1hdFtrZXldKSxcclxuICAgICAgICAgICAgICBkYXlqcyhvbGRkYXRhWzFdKS5mb3JtYXQodGhpcy5kYXRlVmFsdWVGb3JtYXRba2V5XSksXHJcbiAgICAgICAgICAgIF07XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnJhbmdlckRhdGVba2V5XSkge1xyXG4gICAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICBkYXRhW3RoaXMucmFuZ2VyRGF0ZVtrZXldWzBdXSA9IGRheWpzKG9sZGRhdGFbMF0pLmZvcm1hdChcclxuICAgICAgICAgICAgICAgICAgdGhpcy5kYXRlRm9ybWF0W2tleV1cclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICBkYXRhW3RoaXMucmFuZ2VyRGF0ZVtrZXldWzFdXSA9IGRheWpzKG9sZGRhdGFbMV0pLmZvcm1hdChcclxuICAgICAgICAgICAgICAgICAgdGhpcy5kYXRlRm9ybWF0W2tleV1cclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICBkZWxldGUgZGF0YVtrZXldO1xyXG4gICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHt9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGRhdGFba2V5XSA9IGRheWpzKG9sZGRhdGEpLmZvcm1hdCh0aGlzLmRhdGVWYWx1ZUZvcm1hdFtrZXldKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChsYWJlbCA9PSBcIue8lui+kVwiKSB7XHJcbiAgICAgIGRhdGEgPSB7IC4uLmRhdGEsIGlkOiB2YWx1ZT8uaWQgfHwgdGhpcy5zdGF0ZS5lZGl0SWQgfTtcclxuICAgIH1cclxuICAgIGxldCBuZXdEYXRhID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShkYXRhKSk7XHJcbiAgICByZXR1cm4gbmV3RGF0YTtcclxuICB9XHJcbiAgY29udmVydFZhbHVlKHZhbHVlLCB0eXBlKSB7XHJcbiAgICBsZXQgdmFsdWVzID0gbG9kYXNoLmNsb25lRGVlcCh2YWx1ZSk7XHJcbiAgICBpZiAodGhpcy5maWxlRm9ybWF0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgbGV0IGZpbGVMaXN0ID0ge30gYXMgYW55O1xyXG4gICAgICB0aGlzLmZpbGVGb3JtYXQuZm9yRWFjaCgoZmlsZUtleSkgPT4ge1xyXG4gICAgICAgIGxldCBvbGRkYXRhID0gdmFsdWVzW2ZpbGVLZXldO1xyXG4gICAgICAgIGlmIChvbGRkYXRhICYmIEFycmF5LmlzQXJyYXkob2xkZGF0YSkpIHtcclxuICAgICAgICAgIGZpbGVMaXN0W2ZpbGVLZXldID0gdGhpcy5nZXRGaWxlTGlzdChvbGRkYXRhIHx8IFtdLCB0eXBlKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgZmlsZUxpc3RbZmlsZUtleV0gPSBbXTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLnNldFN0YXRlKHsgZmlsZUxpc3Q6IGZpbGVMaXN0IH0pO1xyXG4gICAgfVxyXG4gICAgLy/lpITnkIbml6XmnJ/moLzlvI/mlbDmja5cclxuICAgIGlmICghaXNFbXB0eU9iaih0aGlzLmRhdGVGb3JtYXQpKSB7XHJcbiAgICAgIGZvciAobGV0IGtleSBpbiB0aGlzLmRhdGVGb3JtYXQpIHtcclxuICAgICAgICBsZXQgb2xkZGF0YSA9IHZhbHVlc1trZXldO1xyXG4gICAgICAgIGlmIChvbGRkYXRhKSB7XHJcbiAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShvbGRkYXRhKSkge1xyXG4gICAgICAgICAgICB2YWx1ZXNba2V5XSA9IFtcclxuICAgICAgICAgICAgICBkYXlqcyhvbGRkYXRhWzBdLCB0aGlzLmRhdGVGb3JtYXRba2V5XSksXHJcbiAgICAgICAgICAgICAgZGF5anMob2xkZGF0YVsxXSwgdGhpcy5kYXRlRm9ybWF0W2tleV0pLFxyXG4gICAgICAgICAgICBdO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdmFsdWVzW2tleV0gPSBkYXlqcyhvbGRkYXRhLCB0aGlzLmRhdGVGb3JtYXRba2V5XSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGlmICh0aGlzLnJhbmdlckRhdGVba2V5XSkge1xyXG4gICAgICAgICAgICBsZXQgdmFsdWUxID0gdmFsdWVzW3RoaXMucmFuZ2VyRGF0ZVtrZXldWzBdXTtcclxuICAgICAgICAgICAgbGV0IHZhbHVlMiA9IHZhbHVlc1t0aGlzLnJhbmdlckRhdGVba2V5XVsxXV07XHJcbiAgICAgICAgICAgIGlmICh2YWx1ZTEgJiYgdmFsdWUyKSB7XHJcbiAgICAgICAgICAgICAgdmFsdWVzW2tleV0gPSBbXHJcbiAgICAgICAgICAgICAgICBkYXlqcyh2YWx1ZTEsIHRoaXMuZGF0ZUZvcm1hdFtrZXldKSxcclxuICAgICAgICAgICAgICAgIGRheWpzKHZhbHVlMiwgdGhpcy5kYXRlRm9ybWF0W2tleV0pLFxyXG4gICAgICAgICAgICAgIF07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB2YWx1ZXM7XHJcbiAgfVxyXG4gIHNldEZvcm1WYWx1ZSh2YWx1ZSwgdHlwZSA9IFwi5p+l55yLXCIpIHtcclxuICAgIGNvbnN0IG5ld1ZhbHVlID0gdGhpcy5jb252ZXJ0VmFsdWUodmFsdWUsIHR5cGUpO1xyXG4gICAgdGhpcy5mb3JtUmVmLmN1cnJlbnQ/LnNldEZpZWxkc1ZhbHVlKG5ld1ZhbHVlKTtcclxuICB9XHJcbiAgZG9TdWJtaXQoZm9ybWRhdGEsIGxhYmVsKSB7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIHN1Ym1pdFVybCxcclxuICAgICAgc3VibWl0UGFyYW1zID0ge30sXHJcbiAgICAgIGNhbGxCYWNrLFxyXG4gICAgICByZXF1ZXN0T2JqZWN0ID0ge30sXHJcbiAgICAgIHJlcXVlc3RDb25maWcgPSB7fSxcclxuICAgIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgeyBhZGRVcmwsIGVkaXRvclVybCwgYWRkUGFyYW1zLCBlZGl0b3JQYXJhbXMgfSA9IHJlcXVlc3RPYmplY3Q7XHJcbiAgICBsZXQgdXJsID0gc3VibWl0VXJsO1xyXG4gICAgbGV0IHBhcmFtczogYW55ID0ge307XHJcbiAgICBpZiAoIWxhYmVsIHx8IGxhYmVsID09IFwi5paw5aKeXCIpIHtcclxuICAgICAgdXJsID0gYWRkVXJsID8gYWRkVXJsIDogc3VibWl0VXJsO1xyXG4gICAgICBpZiAoYWRkUGFyYW1zICYmIHR5cGVvZiBhZGRQYXJhbXMgPT0gXCJzdHJpbmdcIikge1xyXG4gICAgICAgIGNvbnN0IFV0aWxzID0gdGhpcy5wcm9wcy5VdGlscyB8fCB7fTtcclxuICAgICAgICBsZXQgZnVuYyA9IG5ldyBGdW5jdGlvbihcIlV0aWxzXCIsIGFkZFBhcmFtcyk7XHJcbiAgICAgICAgbGV0IGNvbnZlclBhcmFtcyA9IGZ1bmMoVXRpbHMpO1xyXG4gICAgICAgIHBhcmFtcyA9IGNvbnZlclBhcmFtcztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBwYXJhbXMgPSBhZGRQYXJhbXMgPyBhZGRQYXJhbXMgOiBzdWJtaXRQYXJhbXM7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAobGFiZWwgPT0gXCLnvJbovpFcIikge1xyXG4gICAgICB1cmwgPSBlZGl0b3JVcmwgPyBlZGl0b3JVcmwgOiBzdWJtaXRVcmw7XHJcbiAgICAgIGlmIChlZGl0b3JQYXJhbXMgJiYgdHlwZW9mIGVkaXRvclBhcmFtcyA9PSBcInN0cmluZ1wiKSB7XHJcbiAgICAgICAgY29uc3QgVXRpbHMgPSB0aGlzLnByb3BzLlV0aWxzIHx8IHt9O1xyXG4gICAgICAgIGxldCBmdW5jID0gbmV3IEZ1bmN0aW9uKFwiVXRpbHNcIiwgZWRpdG9yUGFyYW1zKTtcclxuICAgICAgICBsZXQgY29udmVyUGFyYW1zID0gZnVuYyhVdGlscyk7XHJcbiAgICAgICAgcGFyYW1zID0gY29udmVyUGFyYW1zO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHBhcmFtcyA9IGVkaXRvclBhcmFtcyA/IGVkaXRvclBhcmFtcyA6IHN1Ym1pdFBhcmFtcztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKCF1cmwpIHtcclxuICAgICAgY29uc29sZS5lcnJvcihcIumFjee9rlVybOS4jeiDveS4uuepuu+8gVwiKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgeyBkYXRhID0ge30sIC4uLm90aGVyUGFyYW1zIH0gPSBwYXJhbXM7XHJcbiAgICB0aGlzLmZvcm1SZWYuY3VycmVudD8ub25TdWJtaXQoXHJcbiAgICAgIHVybCxcclxuICAgICAge1xyXG4gICAgICAgIGRhdGE6IHsgLi4uZm9ybWRhdGEsIC4uLmRhdGEgfSxcclxuICAgICAgICBub1VuZGVmaW5lZDogbGFiZWwgPT0gXCLnvJbovpFcIixcclxuICAgICAgICAuLi5yZXF1ZXN0Q29uZmlnLFxyXG4gICAgICAgIC4uLm90aGVyUGFyYW1zLFxyXG4gICAgICB9LFxyXG4gICAgICAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBjb25zdCB7IGNvZGUsIG1zZyB9ID0gcmVzO1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBsb2FkaW5nOiBmYWxzZSB9KTtcclxuICAgICAgICBpZiAoY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICBtZXNzYWdlLnN1Y2Nlc3MobGFiZWwgKyBcIuaIkOWKn1wiKTtcclxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmhpZGUodHJ1ZSk7XHJcbiAgICAgICAgICAgIGNhbGxCYWNrICYmIGNhbGxCYWNrKCk7XHJcbiAgICAgICAgICB9LCA1MDApO1xyXG5cclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG4gIGdldEZpbGVMaXN0KGRhdGEsIGxhYmVsID0gXCLmlrDlop5cIikge1xyXG4gICAgdGhpcy5zdWJtaXRGbGFnID0gdHJ1ZTtcclxuICAgIGxldCBmaWxlTGlzdCA9IFtdIGFzIGFueTtcclxuICAgIGlmIChkYXRhICYmIGRhdGEubGVuZ3RoID4gMCkge1xyXG4gICAgICBkYXRhLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICAgIGxldCBvYmogPSB7XHJcbiAgICAgICAgICBmaWxlSWQ6IGl0ZW0uZmlsZUlkLFxyXG4gICAgICAgICAgZmlsZU5hbWU6IGl0ZW0uZmlsZU5hbWUsXHJcbiAgICAgICAgfSBhcyBhbnk7XHJcbiAgICAgICAgaWYgKGxhYmVsID09IFwi5p+l55yLXCIpIHtcclxuICAgICAgICAgIG9iai5zdGF0dXMgPSBcImRvbmVcIjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGxhYmVsICE9PSBcIuafpeeci1wiICYmIGl0ZW0uc3RhdHVzICE9PSBcImRvbmVcIikge1xyXG4gICAgICAgICAgdGhpcy5zdWJtaXRGbGFnID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZpbGVMaXN0LnB1c2gob2JqKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmlsZUxpc3Q7XHJcbiAgfVxyXG5cclxuICBvblN1Ym1pdCgpIHtcclxuICAgIGNvbnN0IHsgb25TdWJtaXQgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7IGxhYmVsLCB2YWx1ZSwgZGljdE5hbWVzLCBmaWxlTGlzdCB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGxldCB2YWxpZCA9IHRoaXMudmFsaWQ7XHJcbiAgICB0aGlzLmZvcm1SZWYuY3VycmVudFxyXG4gICAgICA/LnZhbGlkYXRlRmllbGRzKClcclxuICAgICAgLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgIGxldCBkYXRhID0gdGhpcy5nZXRGb3JtVmFsdWUoKTtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHsgbG9hZGluZzogdHJ1ZSB9KTtcclxuICAgICAgICBpZiAob25TdWJtaXQpIHtcclxuICAgICAgICAgIGxldCByZXR1cm5EYXRhID0gbG9kYXNoLmNsb25lRGVlcChkYXRhKTtcclxuICAgICAgICAgIG9uU3VibWl0ICYmIG9uU3VibWl0KHJldHVybkRhdGEsIGxhYmVsKTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5kb1N1Ym1pdChkYXRhLCBsYWJlbCk7XHJcbiAgICAgIH0pXHJcbiAgICAgIC5jYXRjaCgoZXJyb3JJbmZvOiBhbnkpID0+IHt9KTtcclxuICB9XHJcbiAgdmFsdWVDaGFuZ2UoeyB0eXBlLCBkaWN0TmFtZSB9LCBwcm9wcywgdmFsdWUsIHZhbHVlT3B0aW9uLCBkYXRhKSB7XHJcbiAgICBpZiAodmFsdWVPcHRpb24pIHtcclxuICAgICAgaWYgKGRpY3ROYW1lKSB7XHJcbiAgICAgICAgY29uc3QgeyBkaWN0TmFtZXMgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICAgICAgY29uc3QgbmV3TmFtZXMgPSB7IC4uLmRpY3ROYW1lcyB9IGFzIGFueTtcclxuICAgICAgICBuZXdOYW1lc1tkaWN0TmFtZV0gPSB2YWx1ZU9wdGlvbi5sYWJlbDtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgIGRpY3ROYW1lczogbmV3TmFtZXMsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChwcm9wcy5vbkNoYW5nZSkge1xyXG4gICAgICBpZiAodHlwZW9mIHByb3BzLm9uQ2hhbmdlID09IFwiZnVuY3Rpb25cIikge1xyXG4gICAgICAgIHByb3BzLm9uQ2hhbmdlKHZhbHVlLCB2YWx1ZU9wdGlvbiwgZGF0YSk7XHJcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHByb3BzLm9uQ2hhbmdlID09IFwic3RyaW5nXCIpIHtcclxuICAgICAgICBjb25zdCBldmVudE9wdGlvbiA9IHtcclxuICAgICAgICAgIHZhbHVlLFxyXG4gICAgICAgICAgZGF0YSxcclxuICAgICAgICAgIGZvcm1SZWY6IHRoaXMuZm9ybVJlZixcclxuICAgICAgICAgIGZ1bmNzOiB0aGlzLnByb3BzLmZ1bmNzIHx8IHt9LFxyXG4gICAgICAgICAgcmVmczogdGhpcy5yZWZMaXN0LFxyXG4gICAgICAgICAgcGFnZVJlZjogdGhpcy5wcm9wcy5wYWdlUmVmLFxyXG4gICAgICAgIH0gYXMgYW55O1xyXG4gICAgICAgIGNvbnN0IFV0aWxzID0gdGhpcy5wcm9wcy5VdGlscyB8fCB7fTtcclxuICAgICAgICBpZiAodHlwZSA9PSBcIlNlbGVjdFwiKSB7XHJcbiAgICAgICAgICBldmVudE9wdGlvbi52YWx1ZU9wdGlvbiA9IHZhbHVlT3B0aW9uO1xyXG4gICAgICAgICAgZXZlbnRPcHRpb24uZGF0YSA9IGRhdGE7XHJcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlID09IFwiRGF0ZVBpY2tlclwiIHx8IHR5cGUgPT0gXCJSYW5nZVBpY2tlclwiKSB7XHJcbiAgICAgICAgICBldmVudE9wdGlvbi52YWx1ZVN0ciA9IHZhbHVlT3B0aW9uO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBzZWxmRnVuYyA9IG5ldyBGdW5jdGlvbihcImV2ZW50T3B0aW9uXCIsIFwiVXRpbHNcIiwgcHJvcHMub25DaGFuZ2UpO1xyXG4gICAgICAgIHNlbGZGdW5jKGV2ZW50T3B0aW9uLCBVdGlscyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlbmRlckZvcm0oZm9ybXMsIGxhYmVsKSB7XHJcbiAgICBjb25zdCBuZXdWYWxpZDogYW55W10gPSBbXTtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIDxSb3cgZ3V0dGVyPXsyNH0+XHJcbiAgICAgICAge2Zvcm1zLm1hcCgoaXRlbTogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBpdGVtUHJvcHMgPSBpdGVtLnByb3BzIHx8IHt9O1xyXG4gICAgICAgICAgaWYgKGl0ZW1Qcm9wcy5mb3JtYXQgfHwgaXRlbVByb3BzLnZhbHVlRm9ybWF0KSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGF0ZVZhbHVlRm9ybWF0W2l0ZW0ubmFtZV0gPVxyXG4gICAgICAgICAgICAgIGl0ZW1Qcm9wcy5mb3JtYXQgfHwgaXRlbVByb3BzLnZhbHVlRm9ybWF0O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKGl0ZW1Qcm9wcy5mb3JtYXQpIHtcclxuICAgICAgICAgICAgdGhpcy5kYXRlRm9ybWF0W2l0ZW0ubmFtZV0gPSBpdGVtUHJvcHMuZm9ybWF0O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKGl0ZW0udHlwZSA9PSBcIlJhbmdlUGlja2VyXCIgJiYgaXRlbS5uYW1lLnNwbGl0KFwiLFwiKS5sZW5ndGggPiAxKSB7XHJcbiAgICAgICAgICAgIHRoaXMucmFuZ2VyRGF0ZVtpdGVtLm5hbWVdID0gaXRlbS5uYW1lLnNwbGl0KFwiLFwiKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGxldCBhbGxvd0NoYXJzID0gaXRlbS5wcm9wcz8uYWxsb3dDaGFycyB8fCBmYWxzZTtcclxuICAgICAgICAgIGxldCBwcm9wcyA9IHtcclxuICAgICAgICAgICAgcGxhY2Vob2xkZXI6IGDor7fovpPlhaUke2l0ZW0ubGFiZWx9YCxcclxuICAgICAgICAgICAgLi4uaXRlbS5wcm9wcyxcclxuICAgICAgICAgICAgb25DaGFuZ2U6IHRoaXMudmFsdWVDaGFuZ2UuYmluZChcclxuICAgICAgICAgICAgICB0aGlzLFxyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHR5cGU6IGl0ZW0udHlwZSxcclxuICAgICAgICAgICAgICAgIGRpY3ROYW1lOiBpdGVtLmRpY3ROYW1lLFxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgeyAuLi5pdGVtLnByb3BzIH1cclxuICAgICAgICAgICAgKSxcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgICBpZiAoIWl0ZW0udHlwZSB8fCBpdGVtLnR5cGUgPT0gXCJJbnB1dFwiKSB7XHJcbiAgICAgICAgICAgIHByb3BzLmFsbG93Q2hhcnMgPSB0cnVlOyAvL2Zvcm0uaXRlbSDkvb/nlKhpbnB1dOe7hOS7tmFsbG93Q2hhcnPlv4Xpobvpu5jorqR0cnVlLOS4jeeEtui+k+WFpeeJueauiuWtl+espuaLv+WIsOeahOWAvOS4jeWvuVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZGVsZXRlIHByb3BzLnZhbHVlRm9ybWF0O1xyXG4gICAgICAgICAgZGVsZXRlIHByb3BzLmZvcm1hdDtcclxuICAgICAgICAgIGRlbGV0ZSBwcm9wcy5kYXRhVHlwZTtcclxuICAgICAgICAgIGlmIChsYWJlbCA9PSBcIuafpeeci1wiKSB7XHJcbiAgICAgICAgICAgIHByb3BzLmRpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgcHJvcHMucGxhY2Vob2xkZXIgPSBcIlwiO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKChpdGVtLnJ1bGVzICYmIGl0ZW0ucnVsZXMubGVuZ3RoID4gMCkgfHwgaXRlbS5yZXF1aXJlZCA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICBuZXdWYWxpZC5wdXNoKGl0ZW0ubmFtZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoaW5kZXggKyAxID09PSBmb3Jtcy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgdGhpcy52YWxpZCA9IG5ld1ZhbGlkO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgY29uc3QgaXRlbVJlZjogYW55ID0gUmVhY3QuY3JlYXRlUmVmPGFueT4oKTtcclxuICAgICAgICAgIHRoaXMucmVmTGlzdFtpdGVtLm5hbWVdID0gaXRlbVJlZjtcclxuICAgICAgICAgIGlmIChpdGVtLnR5cGUgIT09IFwiVXBsb2FkXCIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICA8Q29sXHJcbiAgICAgICAgICAgICAgICBzcGFuPXtpdGVtLnNwYW4gfHwgMTJ9XHJcbiAgICAgICAgICAgICAgICBrZXk9e2luZGV4fVxyXG4gICAgICAgICAgICAgICAgc3R5bGU9e3sgZGlzcGxheTogaXRlbS5oaWRlID8gXCJub25lXCIgOiBcImJsb2NrXCIgfX1cclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8Rm9ybS5JdGVtXHJcbiAgICAgICAgICAgICAgICAgIGxhYmVsPXtpdGVtLmxhYmVsfVxyXG4gICAgICAgICAgICAgICAgICBuYW1lPXtpdGVtLm5hbWV9XHJcbiAgICAgICAgICAgICAgICAgIHJ1bGVzPXtpdGVtLnJ1bGVzfVxyXG4gICAgICAgICAgICAgICAgICBhbGxvd0NoYXJzPXthbGxvd0NoYXJzfVxyXG4gICAgICAgICAgICAgICAgICBjb21wb25lbnROYW1lPXtpdGVtLnR5cGUgPyBpdGVtLnR5cGUgOiBcIklucHV0XCJ9XHJcbiAgICAgICAgICAgICAgICAgIHJlcXVpcmVkPXtpdGVtLnJlcXVpcmVkfVxyXG4gICAgICAgICAgICAgICAgICB0eXBlPXtpdGVtLnByb3BzPy50eXBlfVxyXG4gICAgICAgICAgICAgICAgICBub1N0eWxlPXtpdGVtLm5vU3R5bGUgfHwgZmFsc2V9XHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIHtpdGVtLmZvcm1SZW5kZXJcclxuICAgICAgICAgICAgICAgICAgICA/IGl0ZW0uZm9ybVJlbmRlcihwcm9wcylcclxuICAgICAgICAgICAgICAgICAgICA6IGdldE5vZGUoaXRlbS50eXBlLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZjogaXRlbVJlZixcclxuICAgICAgICAgICAgICAgICAgICAgICAgLi4ucHJvcHMsXHJcbiAgICAgICAgICAgICAgICAgICAgICB9KX1cclxuICAgICAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxyXG4gICAgICAgICAgICAgIDwvQ29sPlxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5maWxlRm9ybWF0LnB1c2goaXRlbS5uYW1lKTtcclxuICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICA8Q29sXHJcbiAgICAgICAgICAgICAgICBzcGFuPXtpdGVtLnNwYW4gfHwgMTJ9XHJcbiAgICAgICAgICAgICAgICBrZXk9e2luZGV4fVxyXG4gICAgICAgICAgICAgICAgc3R5bGU9e3sgZGlzcGxheTogaXRlbS5oaWRlID8gXCJub25lXCIgOiBcImJsb2NrXCIgfX1cclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8Rm9ybS5JdGVtXHJcbiAgICAgICAgICAgICAgICAgIGxhYmVsPXtpdGVtLmxhYmVsfVxyXG4gICAgICAgICAgICAgICAgICBuYW1lPXtpdGVtLm5hbWV9XHJcbiAgICAgICAgICAgICAgICAgIHJ1bGVzPXtpdGVtLnJ1bGVzfVxyXG4gICAgICAgICAgICAgICAgICBhbGxvd0NoYXJzPXthbGxvd0NoYXJzfVxyXG4gICAgICAgICAgICAgICAgICB0eXBlPXtpdGVtLnByb3BzPy50eXBlfVxyXG4gICAgICAgICAgICAgICAgICByZXF1aXJlZD17aXRlbS5yZXF1aXJlZH1cclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgPFVwbG9hZFxyXG4gICAgICAgICAgICAgICAgICAgIGZpbGVMaXN0PXt0aGlzLnN0YXRlLmZpbGVMaXN0W2l0ZW0ubmFtZV0gfHwgW119XHJcbiAgICAgICAgICAgICAgICAgICAgb25MaXN0Q2hhbmdlPXsobGlzdCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBmaWxlTGlzdCB9ID0gdGhpcy5zdGF0ZTtcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxlTGlzdDogeyAuLi5maWxlTGlzdCwgW2l0ZW0ubmFtZV06IGxpc3QgfSxcclxuICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgc2hvd1VwbG9hZExpc3Q9e3tcclxuICAgICAgICAgICAgICAgICAgICAgIHNob3dEb3dubG9hZEljb246IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICBzaG93UmVtb3ZlSWNvbjogbGFiZWwgIT09IFwi5p+l55yLXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICByZWY9e2l0ZW1SZWZ9XHJcbiAgICAgICAgICAgICAgICAgICAgey4uLnByb3BzfVxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAge2l0ZW0ucHJvcHM/LmNoaWxkcmVuXHJcbiAgICAgICAgICAgICAgICAgICAgICA/IGl0ZW0ucHJvcHM/LmNoaWxkcmVuXHJcbiAgICAgICAgICAgICAgICAgICAgICA6IGxhYmVsICE9PSBcIuafpeeci1wiICYmIDxCdXR0b24+5LiK5Lyg5paH5Lu2PC9CdXR0b24+fVxyXG4gICAgICAgICAgICAgICAgICA8L1VwbG9hZD5cclxuICAgICAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxyXG4gICAgICAgICAgICAgIDwvQ29sPlxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pfVxyXG4gICAgICA8L1Jvdz5cclxuICAgICk7XHJcbiAgfVxyXG4gIHJlbmRlcigpIHtcclxuICAgIGNvbnN0IHtcclxuICAgICAgZm9ybXMgPSBbXSxcclxuICAgICAgcHJvcHMgPSB7fSxcclxuICAgICAgZm9vdGVyID0gdHJ1ZSxcclxuICAgICAgY2hpbGRyZW4sXHJcbiAgICAgIGZvcm1UeXBlID0gXCJwYWdlXCIsXHJcbiAgICAgIHRpdGxlID0gXCJcIixcclxuICAgICAgbW9kYWxQcm9wczogZGVmYXVsdE1vZGFsUHJvcHMgPSB7fSxcclxuICAgICAgZHJhd2VyUHJvcHM6IGRlZmF1bHREcmF3ZXJQcm9wcyxcclxuICAgIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgeyBsb2FkaW5nLCBsYWJlbCB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGxldCBzZWxmQnV0dG9ucyA9IFtdIGFzIGFueTtcclxuICAgIGxldCBzZWxmUGFuZXMgPSBbXSBhcyBhbnk7XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheShjaGlsZHJlbikpIHtcclxuICAgICAgY2hpbGRyZW4ubWFwKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShpdGVtKSkge1xyXG4gICAgICAgICAgaXRlbS5tYXAoKGNoaWxkKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChjaGlsZD8ucHJvcHM/LnBhZ2VUeXBlID09IFwiZm9ybVBhbmVcIikge1xyXG4gICAgICAgICAgICAgIHR5cGVvZiBpdGVtID09IFwib2JqZWN0XCIgJiYgc2VsZlBhbmVzLnB1c2goY2hpbGQpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHR5cGVvZiBpdGVtID09IFwib2JqZWN0XCIgJiYgc2VsZkJ1dHRvbnMucHVzaChjaGlsZCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBpZiAoaXRlbT8ucHJvcHM/LnBhZ2VUeXBlID09IFwiZm9ybVBhbmVcIikge1xyXG4gICAgICAgICAgICB0eXBlb2YgaXRlbSA9PSBcIm9iamVjdFwiICYmIHNlbGZQYW5lcy5wdXNoKGl0ZW0pO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdHlwZW9mIGl0ZW0gPT0gXCJvYmplY3RcIiAmJiBzZWxmQnV0dG9ucy5wdXNoKGl0ZW0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2UgaWYgKGNoaWxkcmVuKSB7XHJcbiAgICAgIGNvbnN0IHsgcHJvcHMgfTogYW55ID0gY2hpbGRyZW47XHJcbiAgICAgIGlmIChwcm9wcz8ucGFnZVR5cGUgPT0gXCJmb3JtUGFuZVwiKSB7XHJcbiAgICAgICAgdHlwZW9mIGNoaWxkcmVuID09IFwib2JqZWN0XCIgJiYgc2VsZlBhbmVzLnB1c2goY2hpbGRyZW4pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHR5cGVvZiBjaGlsZHJlbiA9PSBcIm9iamVjdFwiICYmIHNlbGZCdXR0b25zLnB1c2goY2hpbGRyZW4pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBsZXQgbW9kYWxQcm9wcyA9IHtcclxuICAgICAgdGl0bGU6IGxhYmVsICsgdGl0bGUsXHJcbiAgICAgIG9uT2s6IHRoaXMub25TdWJtaXQuYmluZCh0aGlzKSxcclxuICAgICAgb25DYW5jZWw6IHRoaXMuaGlkZS5iaW5kKHRoaXMpLFxyXG4gICAgICBva0J1dHRvblByb3BzOiB7IGxvYWRpbmc6IGxvYWRpbmcgfSxcclxuICAgICAgY2VudGVyZWQ6IHRydWUsXHJcbiAgICAgIHdpZHRoOiBcIjUwdndcIixcclxuICAgICAgZm9vdGVyQnV0dG9uOiBzZWxmQnV0dG9ucyxcclxuICAgICAgLi4uZGVmYXVsdE1vZGFsUHJvcHMsXHJcbiAgICB9IGFzIGFueTtcclxuXHJcbiAgICBsZXQgZHJhd2VyUHJvcHMgPSB7XHJcbiAgICAgIG9uT2s6IHRoaXMub25TdWJtaXQuYmluZCh0aGlzKSxcclxuICAgICAgb25DbG9zZTogdGhpcy5oaWRlLmJpbmQodGhpcyksXHJcbiAgICAgIHdpZHRoOiBcIjUwdndcIixcclxuICAgICAgZm9vdGVyQnV0dG9uOiBzZWxmQnV0dG9ucyxcclxuICAgICAgLi4uZGVmYXVsdERyYXdlclByb3BzLFxyXG4gICAgfSBhcyBhbnk7XHJcbiAgICBpZiAobGFiZWwgPT0gXCLmn6XnnItcIikge1xyXG4gICAgICBtb2RhbFByb3BzLmZvb3RlciA9IG51bGw7XHJcbiAgICAgIGRyYXdlclByb3BzLmZvb3RlciA9IG51bGw7XHJcbiAgICB9XHJcbiAgICB0aGlzLmRhdGVWYWx1ZUZvcm1hdCA9IHt9O1xyXG4gICAgdGhpcy5kYXRlRm9ybWF0ID0ge307XHJcbiAgICB0aGlzLmZpbGVGb3JtYXQgPSBbXTtcclxuICAgIGxldCBuZXdGb3Jtc09iaiA9IHt9IGFzIGFueTtcclxuICAgIGxldCBmb3JtR3JvdXBzID0gW10gYXMgYW55O1xyXG4gICAgbGV0IG90aGVyR3J1cHMgPSBbXSBhcyBhbnk7XHJcbiAgICBsZXQgc2hvd0Zvcm1zID0gW10gYXMgYW55O1xyXG4gICAgLy/lpITnkIbooajljZXmlbDmja5cclxuICAgIGZvcm1zLm1hcCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgIGlmIChpdGVtLnNob3cgIT09IGZhbHNlKSB7XHJcbiAgICAgICAgc2hvd0Zvcm1zLnB1c2goaXRlbSk7XHJcbiAgICAgICAgaWYgKGl0ZW0uZ3JvdXBOYW1lICYmIGZvcm1Hcm91cHMuaW5kZXhPZihpdGVtLmdyb3VwTmFtZSkgPCAwKSB7XHJcbiAgICAgICAgICBmb3JtR3JvdXBzLnB1c2goaXRlbS5ncm91cE5hbWUpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoIWl0ZW0uZ3JvdXBOYW1lKSB7XHJcbiAgICAgICAgICBvdGhlckdydXBzLnB1c2goaXRlbSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIGlmIChmb3JtR3JvdXBzLmxlbmd0aCA+IDApIHtcclxuICAgICAgZm9ybUdyb3Vwcy5tYXAoKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgIGxldCBncm91cEZvcm1zID0gW10gYXMgYW55O1xyXG4gICAgICAgIHNob3dGb3Jtcy5tYXAoKGZvcm06IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGZvcm0uZ3JvdXBOYW1lID09IGl0ZW0pIHtcclxuICAgICAgICAgICAgZ3JvdXBGb3Jtcy5wdXNoKGZvcm0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIG5ld0Zvcm1zT2JqW2l0ZW1dID0gZ3JvdXBGb3JtcztcclxuICAgICAgfSk7XHJcbiAgICAgIGlmIChvdGhlckdydXBzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICBuZXdGb3Jtc09ialtcIm5vR3JvdXBOYW1lXCJdID0gb3RoZXJHcnVwcztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgY29uc3QgUGFuZVdpdGhvdXRQYWdlVHlwZSA9IChQYW5lLCBwcm9wcykgPT4ge1xyXG4gICAgICBjb25zdCB7IHBhZ2VUeXBlLCAuLi5jbGVhblByb3BzIH0gPSBwcm9wcztcclxuICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoUGFuZS50eXBlLCBjbGVhblByb3BzKTtcclxuICAgIH07XHJcbiAgICAvL+iHquWumuS5ieaMiemSrlxyXG4gICAgcmV0dXJuIChcclxuICAgICAgPEZvcm1cclxuICAgICAgICByZWY9e3RoaXMuZm9ybVJlZn1cclxuICAgICAgICBzaG93TW9kZWw9e3RoaXMucHJvcHMuZm9ybVR5cGUgPT0gXCJwYWdlXCIgPyBudWxsIDogdGhpcy5wcm9wcy5mb3JtVHlwZX1cclxuICAgICAgICBtb2RhbFByb3BzPXt7IC4uLm1vZGFsUHJvcHMgfX1cclxuICAgICAgICBkcmF3ZXJQcm9wcz17eyAuLi5kcmF3ZXJQcm9wcyB9fVxyXG4gICAgICAgIC8vIGxhYmVsQ29sPXt7IGZsZXg6IFwiMTAwcHhcIiB9fVxyXG4gICAgICAgIC8vIHdyYXBwZXJDb2w9e3sgZmxleDogXCIxNXZ3XCIgfX1cclxuICAgICAgICBvblZhbHVlc0NoYW5nZT17KGNoYW5nZWRWYWx1ZXMsIGFsbFZhbHVlcykgPT4ge1xyXG4gICAgICAgICAgY29uc3QgeyBvbkZvcm1DaGFuZ2UgfSA9IHRoaXMucHJvcHM7XHJcbiAgICAgICAgICBvbkZvcm1DaGFuZ2UgJiYgb25Gb3JtQ2hhbmdlKGNoYW5nZWRWYWx1ZXMsIGFsbFZhbHVlcyk7XHJcbiAgICAgICAgfX1cclxuICAgICAgICBjaGFuZ2VWYWxpZD17dGhpcy5wcm9wcy5jaGFuZ2VWYWxpZH1cclxuICAgICAgICB7Li4ucHJvcHN9XHJcbiAgICAgID5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm5zYy1mb3JtLXBhZ2VcIj5cclxuICAgICAgICAgIHtmb3JtR3JvdXBzLmxlbmd0aCA9PSAwID8gKFxyXG4gICAgICAgICAgICB0aGlzLnByb3BzLmZvcm1UeXBlICE9PSBcInBhZ2VcIiA/IChcclxuICAgICAgICAgICAgICB0aGlzLnJlbmRlckZvcm0oc2hvd0Zvcm1zLCBsYWJlbClcclxuICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm5zYy1mb3JtLXBhbmVcIj5cclxuICAgICAgICAgICAgICAgIHt0aGlzLnJlbmRlckZvcm0oc2hvd0Zvcm1zLCBsYWJlbCl9XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgIE9iamVjdC5rZXlzKG5ld0Zvcm1zT2JqKS5tYXAoKGtleSkgPT4ge1xyXG4gICAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGtleT17a2V5fSBjbGFzc05hbWU9XCJuc2MtZm9ybS1wYW5lXCI+XHJcbiAgICAgICAgICAgICAgICAgIHtrZXkgIT0gXCJub0dyb3VwTmFtZVwiICYmIChcclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm5zYy1mb3JtLXRpdGxlXCI+e2tleX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJuc2MtZm9ybS1jb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3RoaXMucmVuZGVyRm9ybShuZXdGb3Jtc09ialtrZXldLCBsYWJlbCl9XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICl9XHJcblxyXG4gICAgICAgICAge3NlbGZQYW5lcy5sZW5ndGggPiAwICYmXHJcbiAgICAgICAgICAgIHNlbGZQYW5lcy5tYXAoKFBhbmUsIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibnNjLWZvcm0tcGFuZVwiIGtleT17aW5kZXh9PlxyXG4gICAgICAgICAgICAgICAgICB7UGFuZVdpdGhvdXRQYWdlVHlwZShQYW5lLCB7IC4uLlBhbmUucHJvcHMgfSl9XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9KX1cclxuICAgICAgICAgIHtmb3JtVHlwZSA9PT0gXCJwYWdlXCIgJiYgZm9vdGVyID09IHRydWUgJiYgKFxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbHMoXHJcbiAgICAgICAgICAgICAgICB0aGlzLnByb3BzLmZvb3RlckNsYXNzTmFtZSxcclxuICAgICAgICAgICAgICAgIFwibnNjLWZvcm0tcGFnZS1mb290ZXJcIixcclxuICAgICAgICAgICAgICAgIFt0aGlzLnN0YXRlLndpZHRoID8gXCJuc2MtZm9ybS1wYWdlLWZvb3Rlci13aWR0aFwiIDogXCJcIl1cclxuICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPEJ1dHRvblxyXG4gICAgICAgICAgICAgICAgey4uLnRoaXMucHJvcHMuY2FuY2VsQnV0dG9uUHJvcHN9XHJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnByb3BzLm9uQ2FuY2VsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5vbkNhbmNlbCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgbG9hZGluZzogZmFsc2UgfSk7XHJcbiAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIOWPlua2iFxyXG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICAgICAgICAgIDxCdXR0b25cclxuICAgICAgICAgICAgICAgIHR5cGU9XCJwcmltYXJ5XCJcclxuICAgICAgICAgICAgICAgIHsuLi50aGlzLnByb3BzLm9rQnV0dG9uUHJvcHN9XHJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMub25TdWJtaXQoKTtcclxuICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICBsb2FkaW5nPXt0aGlzLnN0YXRlLmxvYWRpbmd9XHJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e1wibnNjLWZvcm0tcGFnZS1mb290ZXItYnRuXCJ9XHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAg5L+d5a2YXHJcbiAgICAgICAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICAgICAgICAge3NlbGZCdXR0b25zLm1hcCgoaXRlbTogYW55LCBpbmRleDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17XCJuc2MtZm9ybS1wYWdlLWZvb3Rlci1idG5cIn0ga2V5PXtpbmRleH0+XHJcbiAgICAgICAgICAgICAgICAgICAge2l0ZW19XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICB9KX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICApfVxyXG4gICAgICAgICAge2Zvcm1UeXBlID09PSBcInBhZ2VcIiAmJiBmb290ZXIgIT09IHRydWUgJiYgdGhpcy5wcm9wcy5mb290ZXJ9XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvRm9ybT5cclxuICAgICk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBGb3JtUGFnZTtcclxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUEsT0FBT0EsS0FBSyxJQUFJQyxhQUFhLFFBQW1CLE9BQU87QUFDdkQsT0FBT0MsSUFBSSxNQUFNLGlCQUFpQjtBQUNsQyxTQUFrQkMsT0FBTyxRQUFRLGFBQWE7QUFDOUMsT0FBT0MsT0FBTyxNQUFNLG9CQUFvQjtBQUN4QyxPQUFPQyxHQUFHLE1BQU0scUJBQXFCO0FBQ3JDLE9BQU9DLEdBQUcsTUFBTSxxQkFBcUI7QUFDckMsU0FBU0MsVUFBVSxFQUFFQyxhQUFhLFFBQVEsbUJBQW1CO0FBQzdELE9BQU9DLEtBQUssTUFBTSxPQUFPO0FBQ3pCLE9BQU8scUJBQXFCO0FBQzVCLE9BQU9DLE1BQU0sTUFBTSxRQUFRO0FBQzNCLE9BQU9DLE1BQU0sTUFBTSxtQkFBbUI7QUFDdEMsT0FBT0MsTUFBTSxNQUFNLG1CQUFtQjtBQUN0QyxPQUFPQyxHQUFHLE1BQU0sWUFBWTtBQUU1QixPQUFPQyxVQUFVLE1BQU0sYUFBYTtBQUdwQyxTQUFTQyxrQkFBa0IsUUFBUSxzQkFBc0I7QUE4QnpELE1BQU1DLFFBQVEsU0FBU2YsYUFBYSxDQUFxQjtFQUFBZ0IsWUFBQTtJQUFBLFNBQUFDLFNBQUE7SUFBQUMsZUFBQSwrQkFDN0NuQixLQUFLLENBQUNvQixTQUFTLENBQU0sQ0FBQztJQUFBRCxlQUFBLGdCQUN4QjtNQUNORSxPQUFPLEVBQUUsS0FBSztNQUNkQyxLQUFLLEVBQUUsSUFBSSxDQUFDQyxLQUFLLENBQUNDLFFBQVEsSUFBSSxFQUFFO01BQ2hDQyxVQUFVLEVBQUUsSUFBSTtNQUNoQkMsS0FBSyxFQUFFLENBQUMsQ0FBUTtNQUNoQkMsU0FBUyxFQUFFLENBQUMsQ0FBUTtNQUNwQkMsUUFBUSxFQUFFLENBQUMsQ0FBUTtNQUNuQkMsS0FBSyxFQUFFckIsYUFBYSxDQUFDLHVCQUF1QixDQUFDLElBQUksS0FBSztNQUN0RHNCLE1BQU0sRUFBRSxJQUFJLENBQUNQLEtBQUssQ0FBQ08sTUFBTSxJQUFJO0lBQy9CLENBQUM7SUFBQVgsZUFBQSxnQkFDWSxFQUFFO0lBQUFBLGVBQUEsMEJBQ0csQ0FBQyxDQUFDO0lBQUFBLGVBQUEscUJBQ1AsQ0FBQyxDQUFDO0lBQUFBLGVBQUEscUJBQ0YsRUFBRTtJQUFBQSxlQUFBLHFCQUNGLENBQUMsQ0FBQztJQUFBQSxlQUFBLGtCQUNMLENBQUMsQ0FBQztJQUFBQSxlQUFBLHFCQUNDLElBQUk7SUFBQUEsZUFBQSx3QkE4QkFZLEVBQUUsSUFBSztNQUN0QixNQUFNQyxJQUFJLEdBQUcsT0FBT0QsRUFBRSxDQUFDQyxJQUFJLEtBQUssUUFBUSxHQUFHQyxJQUFJLENBQUNDLEtBQUssQ0FBQ0gsRUFBRSxDQUFDQyxJQUFJLENBQUMsR0FBR0QsRUFBRSxDQUFDQyxJQUFJO01BQ3hFLElBQUlHLEtBQUssR0FBRyxJQUFJO01BQ2hCLElBQUlILElBQUksQ0FBQ0ksU0FBUyxJQUFJLGNBQWMsRUFBRTtRQUNwQyxNQUFNO1VBQUVDO1FBQVEsQ0FBQyxHQUFHTCxJQUFJO1FBQ3hCLElBQUlLLE9BQU8sQ0FBQ0MsS0FBSyxLQUFLLElBQUksSUFBSUQsT0FBTyxDQUFDQyxLQUFLLEtBQUssS0FBSyxFQUFFO1VBQ3JESCxLQUFLLENBQUNJLFFBQVEsQ0FBQztZQUFFVixLQUFLLEVBQUVRLE9BQU8sQ0FBQ0M7VUFBTSxDQUFDLENBQUM7UUFDMUM7TUFDRjtJQUNGLENBQUM7RUFBQTtFQXRDREUsaUJBQWlCQSxDQUFBLEVBQVM7SUFDeEJDLE1BQU0sQ0FBQ0MsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQ0MsYUFBYSxDQUFDO0lBQ3RELE1BQU07TUFDSkMsUUFBUSxHQUFHLE1BQU07TUFDakJDLGFBQWEsR0FBRyxDQUFDLENBQUM7TUFDbEJyQixRQUFRLEdBQUc7SUFDYixDQUFDLEdBQUcsSUFBSSxDQUFDRCxLQUFLO0lBQ2QsSUFBSXFCLFFBQVEsSUFBSSxNQUFNLEVBQUU7TUFDdEIsSUFBSUMsYUFBYSxDQUFDQyxTQUFTLElBQUl0QixRQUFRLEtBQUssSUFBSSxFQUFFO1FBQ2hEVixVQUFVLENBQUNpQyxHQUFHLENBQUNGLGFBQWEsQ0FBQ0MsU0FBUyxFQUFFO1VBQ3RDRSxNQUFNLEVBQUU7WUFBRUMsRUFBRSxFQUFFLElBQUksQ0FBQ0MsS0FBSyxDQUFDcEI7VUFBTyxDQUFDO1VBQ2pDcUIsU0FBUyxFQUFFLEtBQUs7VUFDaEJDLFVBQVUsRUFBRTtRQUNkLENBQUMsQ0FBQyxDQUFDQyxJQUFJLENBQUVDLEdBQUcsSUFBSztVQUNmLElBQUlBLEdBQUcsQ0FBQ0MsSUFBSSxJQUFJLEdBQUcsRUFBRTtZQUFBLElBQUFDLHFCQUFBO1lBQ25CLENBQUFBLHFCQUFBLE9BQUksQ0FBQ0MsT0FBTyxDQUFDQyxPQUFPLGNBQUFGLHFCQUFBLGVBQXBCQSxxQkFBQSxDQUFzQkcsY0FBYyxDQUFBQyxhQUFBLEtBQU1OLEdBQUcsQ0FBQ3RCLElBQUksQ0FBRSxDQUFDO1VBQ3ZEO1FBQ0YsQ0FBQyxDQUFDO01BQ0osQ0FBQyxNQUFNLElBQUlSLFFBQVEsSUFBSSxJQUFJLEVBQUU7UUFDM0IsSUFBSSxJQUFJLENBQUNELEtBQUssQ0FBQ3NDLFlBQVksRUFBRTtVQUFBLElBQUFDLHNCQUFBO1VBQzNCLElBQUlELFlBQVksR0FBRyxJQUFJLENBQUNFLG1CQUFtQixDQUFDLENBQUM7VUFDN0MsQ0FBQUQsc0JBQUEsT0FBSSxDQUFDTCxPQUFPLENBQUNDLE9BQU8sY0FBQUksc0JBQUEsZUFBcEJBLHNCQUFBLENBQXNCSCxjQUFjLENBQUNFLFlBQVksSUFBSSxDQUFDLENBQUMsQ0FBQztRQUMxRDtNQUNGO0lBQ0Y7RUFDRjtFQUNBRyxvQkFBb0JBLENBQUEsRUFBRztJQUNyQnZCLE1BQU0sQ0FBQ3dCLG1CQUFtQixDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUN0QixhQUFhLENBQUM7RUFDM0Q7RUFXQW9CLG1CQUFtQkEsQ0FBQSxFQUFHO0lBQ3BCLE1BQU07TUFBRUY7SUFBYSxDQUFDLEdBQUcsSUFBSSxDQUFDdEMsS0FBSztJQUNuQyxPQUFPUixrQkFBa0IsQ0FBQzhDLFlBQVksRUFBRSxJQUFJLENBQUN0QyxLQUFLLENBQUMyQyxLQUFLLElBQUksQ0FBQyxDQUFDLEVBQUU7TUFDOURDLEtBQUssRUFBRSxJQUFJLENBQUM1QyxLQUFLLENBQUM0QyxLQUFLO01BQ3ZCQyxPQUFPLEVBQUUsSUFBSSxDQUFDN0MsS0FBSyxDQUFDNkMsT0FBTztNQUMzQlgsT0FBTyxFQUFFLElBQUksQ0FBQ0EsT0FBTztNQUNyQlksSUFBSSxFQUFFLElBQUksQ0FBQ0M7SUFDYixDQUFDLENBQUM7RUFDSjtFQUNBO0VBQ0FDLElBQUlBLENBQUNDLFFBQWMsRUFBc0M7SUFBQSxJQUFwQ0MsVUFBVSxHQUFBdkQsU0FBQSxDQUFBd0QsTUFBQSxRQUFBeEQsU0FBQSxRQUFBeUQsU0FBQSxHQUFBekQsU0FBQSxNQUFHLEtBQUs7SUFBQSxJQUFFMEQsUUFBYyxHQUFBMUQsU0FBQSxDQUFBd0QsTUFBQSxPQUFBeEQsU0FBQSxNQUFBeUQsU0FBQTtJQUNyRCxJQUFJckQsS0FBSyxHQUFHLElBQUk7SUFDaEIsSUFBSWtELFFBQVEsSUFBSUMsVUFBVSxJQUFJLFFBQVEsRUFBRTtNQUN0Q25ELEtBQUssR0FBRyxJQUFJO0lBQ2QsQ0FBQyxNQUFNLElBQUlrRCxRQUFRLEtBQUtDLFVBQVUsSUFBSSxRQUFRLElBQUlBLFVBQVUsSUFBSSxRQUFRLENBQUMsRUFBRTtNQUN6RW5ELEtBQUssR0FBRyxJQUFJO0lBQ2Q7SUFDQSxJQUFJa0QsUUFBUSxFQUFFO01BQ1osSUFBSSxDQUFDakMsUUFBUSxDQUNYO1FBQ0VqQixLQUFLLEVBQUVBLEtBQUs7UUFDWkksS0FBSyxFQUFFOEMsUUFBUTtRQUNmMUMsTUFBTSxFQUFFMEMsUUFBUSxDQUFDdkI7TUFDbkIsQ0FBQyxFQUNELE1BQU07UUFBQSxJQUFBNEIsc0JBQUE7UUFDSixJQUFJbkQsS0FBSyxHQUFHLElBQUksQ0FBQ29ELFlBQVksQ0FBQ04sUUFBUSxFQUFFbEQsS0FBSyxDQUFDO1FBQzlDO1FBQ0EsQ0FBQXVELHNCQUFBLE9BQUksQ0FBQ3BCLE9BQU8sQ0FBQ0MsT0FBTyxjQUFBbUIsc0JBQUEsZUFBcEJBLHNCQUFBLENBQXNCRSxRQUFRLENBQUNyRCxLQUFLLEVBQUU7VUFDcENzRCxXQUFXLEVBQUVBLENBQUEsS0FBTTtZQUNqQkosUUFBUSxJQUFJQSxRQUFRLENBQUMsQ0FBQztVQUN4QjtRQUNGLENBQUMsQ0FBQztNQUNKLENBQ0YsQ0FBQztJQUNILENBQUMsTUFBTTtNQUNMLElBQUksQ0FBQ3JDLFFBQVEsQ0FDWDtRQUNFakIsS0FBSyxFQUFFQTtNQUNULENBQUMsRUFDRCxNQUFNO1FBQUEsSUFBQTJELHNCQUFBO1FBQ0osSUFBSXBCLFlBQVksR0FBRyxJQUFJLENBQUN0QyxLQUFLLENBQUNzQyxZQUFZLEdBQ3RDLElBQUksQ0FBQ0UsbUJBQW1CLENBQUMsQ0FBQyxHQUMxQixDQUFDLENBQUM7UUFDTixDQUFBa0Isc0JBQUEsT0FBSSxDQUFDeEIsT0FBTyxDQUFDQyxPQUFPLGNBQUF1QixzQkFBQSxlQUFwQkEsc0JBQUEsQ0FBc0JGLFFBQVEsQ0FBQ2xCLFlBQVksSUFBSSxDQUFDLENBQUMsRUFBRTtVQUNqRG1CLFdBQVcsRUFBRUEsQ0FBQSxLQUFNO1lBQ2pCSixRQUFRLElBQUlBLFFBQVEsQ0FBQyxDQUFDO1VBQ3hCO1FBQ0YsQ0FBQyxDQUFDO01BQ0osQ0FDRixDQUFDO0lBQ0g7RUFDRjtFQUNBTSxJQUFJQSxDQUFBLEVBQWM7SUFBQSxJQUFBQyxzQkFBQTtJQUFBLElBQWJELElBQUksR0FBQWhFLFNBQUEsQ0FBQXdELE1BQUEsUUFBQXhELFNBQUEsUUFBQXlELFNBQUEsR0FBQXpELFNBQUEsTUFBRyxJQUFJO0lBQ2QsTUFBTTtNQUFFa0U7SUFBVyxDQUFDLEdBQUcsSUFBSSxDQUFDN0QsS0FBSztJQUNqQyxJQUFJNkQsVUFBVSxFQUFFO01BQ2RBLFVBQVUsSUFBSUEsVUFBVSxDQUFDLENBQUM7TUFDMUI7SUFDRjtJQUNBLElBQUksQ0FBQzdDLFFBQVEsQ0FBQztNQUFFbEIsT0FBTyxFQUFFLEtBQUs7TUFBRU8sUUFBUSxFQUFFLENBQUM7SUFBRSxDQUFDLENBQUM7SUFDL0NzRCxJQUFJLE1BQUFDLHNCQUFBLEdBQUksSUFBSSxDQUFDMUIsT0FBTyxDQUFDQyxPQUFPLGNBQUF5QixzQkFBQSx1QkFBcEJBLHNCQUFBLENBQXNCRSxRQUFRLENBQUMsQ0FBQztFQUMxQztFQUNBQSxRQUFRQSxDQUFBLEVBQUc7SUFBQSxJQUFBQyxzQkFBQTtJQUNULElBQUksQ0FBQy9DLFFBQVEsQ0FBQztNQUFFbEIsT0FBTyxFQUFFLEtBQUs7TUFBRU8sUUFBUSxFQUFFLENBQUM7SUFBRSxDQUFDLENBQUM7SUFDL0MsQ0FBQTBELHNCQUFBLE9BQUksQ0FBQzdCLE9BQU8sQ0FBQ0MsT0FBTyxjQUFBNEIsc0JBQUEsZUFBcEJBLHNCQUFBLENBQXNCRCxRQUFRLENBQUMsQ0FBQztFQUNsQztFQUNBTixRQUFRQSxDQUFDUCxRQUFjLEVBQXNDO0lBQUEsSUFBcENDLFVBQVUsR0FBQXZELFNBQUEsQ0FBQXdELE1BQUEsUUFBQXhELFNBQUEsUUFBQXlELFNBQUEsR0FBQXpELFNBQUEsTUFBRyxLQUFLO0lBQUEsSUFBRTBELFFBQWMsR0FBQTFELFNBQUEsQ0FBQXdELE1BQUEsT0FBQXhELFNBQUEsTUFBQXlELFNBQUE7SUFDekQsSUFBSSxDQUFDSixJQUFJLENBQUNDLFFBQVEsRUFBRUMsVUFBVSxFQUFFRyxRQUFRLENBQUM7RUFDM0M7RUFDQVcsVUFBVUEsQ0FBQ2xFLE9BQWdCLEVBQUU7SUFDM0IsSUFBSSxDQUFDa0IsUUFBUSxDQUFDO01BQUVsQixPQUFPLEVBQUVBO0lBQVEsQ0FBQyxDQUFDO0VBQ3JDO0VBQ0FtRSxXQUFXQSxDQUFDQyxJQUFJLEVBQUU7SUFDaEIsSUFBSSxDQUFDbEQsUUFBUSxDQUFDO01BQ1pqQixLQUFLLEVBQUVtRTtJQUNULENBQUMsQ0FBQztFQUNKO0VBQ0FDLFNBQVNBLENBQUN6QyxFQUFFLEVBQUU7SUFDWixJQUFJLENBQUNWLFFBQVEsQ0FBQztNQUNaVCxNQUFNLEVBQUVtQjtJQUNWLENBQUMsQ0FBQztFQUNKO0VBQ0EwQyxZQUFZQSxDQUFBLEVBQUc7SUFBQSxJQUFBQyxzQkFBQTtJQUNiLE1BQU07TUFBRXRFLEtBQUs7TUFBRUksS0FBSztNQUFFQyxTQUFTO01BQUVDO0lBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQ3NCLEtBQUs7SUFDeEQsTUFBTTJDLFNBQVMsSUFBQUQsc0JBQUEsR0FBRyxJQUFJLENBQUNuQyxPQUFPLENBQUNDLE9BQU8sY0FBQWtDLHNCQUFBLHVCQUFwQkEsc0JBQUEsQ0FBc0JFLGNBQWMsQ0FBQyxDQUFDO0lBQ3hELElBQUk5RCxJQUFJLEdBQUd0QixNQUFNLENBQUNxRixTQUFTLENBQUFuQyxhQUFBLENBQUFBLGFBQUEsS0FBTWlDLFNBQVMsR0FBS2xFLFNBQVMsQ0FBRSxDQUFDO0lBQzNELElBQUksSUFBSSxDQUFDcUUsVUFBVSxDQUFDdEIsTUFBTSxHQUFHLENBQUMsRUFBRTtNQUM5QixJQUFJdUIsV0FBVyxHQUFHLENBQUMsQ0FBUTtNQUMzQixJQUFJLENBQUNELFVBQVUsQ0FBQ0UsR0FBRyxDQUFFQyxJQUFJLElBQUs7UUFDNUIsSUFBSXZFLFFBQVEsQ0FBQ3VFLElBQUksQ0FBQyxDQUFDekIsTUFBTSxJQUFJLENBQUMsRUFBRTtVQUM5QnVCLFdBQVcsQ0FBQ0UsSUFBSSxDQUFDLEdBQUcsSUFBSTtRQUMxQixDQUFDLE1BQU07VUFDTEYsV0FBVyxDQUFDRSxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUNDLFdBQVcsQ0FBQ3hFLFFBQVEsQ0FBQ3VFLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM1RDtNQUNGLENBQUMsQ0FBQztNQUNGbkUsSUFBSSxHQUFBNEIsYUFBQSxDQUFBQSxhQUFBLEtBQVE1QixJQUFJLEdBQUtpRSxXQUFXLENBQUU7SUFDcEM7SUFDQSxJQUFJLENBQUMsSUFBSSxDQUFDSSxVQUFVLEVBQUU7TUFDcEJqRyxPQUFPLENBQUNrRyxLQUFLLENBQUMsY0FBYyxDQUFDO01BQzdCO0lBQ0Y7SUFDQSxJQUFJLENBQUMvRixVQUFVLENBQUMsSUFBSSxDQUFDZ0csZUFBZSxDQUFDLEVBQUU7TUFDckMsS0FBSyxJQUFJQyxHQUFHLElBQUksSUFBSSxDQUFDRCxlQUFlLEVBQUU7UUFDcEMsSUFBSUUsT0FBTyxHQUFHekUsSUFBSSxDQUFDd0UsR0FBRyxDQUFDO1FBQ3ZCLElBQUlDLE9BQU8sRUFBRTtVQUNYLElBQUlDLEtBQUssQ0FBQ0MsT0FBTyxDQUFDRixPQUFPLENBQUMsRUFBRTtZQUMxQnpFLElBQUksQ0FBQ3dFLEdBQUcsQ0FBQyxHQUFHLENBQ1YvRixLQUFLLENBQUNnRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQ0csTUFBTSxDQUFDLElBQUksQ0FBQ0wsZUFBZSxDQUFDQyxHQUFHLENBQUMsQ0FBQyxFQUNuRC9GLEtBQUssQ0FBQ2dHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDRyxNQUFNLENBQUMsSUFBSSxDQUFDTCxlQUFlLENBQUNDLEdBQUcsQ0FBQyxDQUFDLENBQ3BEO1lBQ0QsSUFBSSxJQUFJLENBQUNLLFVBQVUsQ0FBQ0wsR0FBRyxDQUFDLEVBQUU7Y0FDeEIsSUFBSTtnQkFDRnhFLElBQUksQ0FBQyxJQUFJLENBQUM2RSxVQUFVLENBQUNMLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcvRixLQUFLLENBQUNnRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQ0csTUFBTSxDQUN0RCxJQUFJLENBQUNFLFVBQVUsQ0FBQ04sR0FBRyxDQUNyQixDQUFDO2dCQUNEeEUsSUFBSSxDQUFDLElBQUksQ0FBQzZFLFVBQVUsQ0FBQ0wsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRy9GLEtBQUssQ0FBQ2dHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDRyxNQUFNLENBQ3RELElBQUksQ0FBQ0UsVUFBVSxDQUFDTixHQUFHLENBQ3JCLENBQUM7Z0JBQ0QsT0FBT3hFLElBQUksQ0FBQ3dFLEdBQUcsQ0FBQztjQUNsQixDQUFDLENBQUMsT0FBT08sQ0FBQyxFQUFFLENBQUM7WUFDZjtVQUNGLENBQUMsTUFBTTtZQUNML0UsSUFBSSxDQUFDd0UsR0FBRyxDQUFDLEdBQUcvRixLQUFLLENBQUNnRyxPQUFPLENBQUMsQ0FBQ0csTUFBTSxDQUFDLElBQUksQ0FBQ0wsZUFBZSxDQUFDQyxHQUFHLENBQUMsQ0FBQztVQUM5RDtRQUNGO01BQ0Y7SUFDRjtJQUNBLElBQUlsRixLQUFLLElBQUksSUFBSSxFQUFFO01BQ2pCVSxJQUFJLEdBQUE0QixhQUFBLENBQUFBLGFBQUEsS0FBUTVCLElBQUk7UUFBRWlCLEVBQUUsRUFBRSxDQUFBdkIsS0FBSyxhQUFMQSxLQUFLLHVCQUFMQSxLQUFLLENBQUV1QixFQUFFLEtBQUksSUFBSSxDQUFDQyxLQUFLLENBQUNwQjtNQUFNLEVBQUU7SUFDeEQ7SUFDQSxJQUFJa0YsT0FBTyxHQUFHL0UsSUFBSSxDQUFDQyxLQUFLLENBQUNELElBQUksQ0FBQ2dGLFNBQVMsQ0FBQ2pGLElBQUksQ0FBQyxDQUFDO0lBQzlDLE9BQU9nRixPQUFPO0VBQ2hCO0VBQ0FsQyxZQUFZQSxDQUFDcEQsS0FBSyxFQUFFK0QsSUFBSSxFQUFFO0lBQ3hCLElBQUl5QixNQUFNLEdBQUd4RyxNQUFNLENBQUNxRixTQUFTLENBQUNyRSxLQUFLLENBQUM7SUFDcEMsSUFBSSxJQUFJLENBQUNzRSxVQUFVLENBQUN0QixNQUFNLEdBQUcsQ0FBQyxFQUFFO01BQzlCLElBQUk5QyxRQUFRLEdBQUcsQ0FBQyxDQUFRO01BQ3hCLElBQUksQ0FBQ29FLFVBQVUsQ0FBQ21CLE9BQU8sQ0FBRUMsT0FBTyxJQUFLO1FBQ25DLElBQUlYLE9BQU8sR0FBR1MsTUFBTSxDQUFDRSxPQUFPLENBQUM7UUFDN0IsSUFBSVgsT0FBTyxJQUFJQyxLQUFLLENBQUNDLE9BQU8sQ0FBQ0YsT0FBTyxDQUFDLEVBQUU7VUFDckM3RSxRQUFRLENBQUN3RixPQUFPLENBQUMsR0FBRyxJQUFJLENBQUNoQixXQUFXLENBQUNLLE9BQU8sSUFBSSxFQUFFLEVBQUVoQixJQUFJLENBQUM7UUFDM0QsQ0FBQyxNQUFNO1VBQ0w3RCxRQUFRLENBQUN3RixPQUFPLENBQUMsR0FBRyxFQUFFO1FBQ3hCO01BQ0YsQ0FBQyxDQUFDO01BQ0YsSUFBSSxDQUFDN0UsUUFBUSxDQUFDO1FBQUVYLFFBQVEsRUFBRUE7TUFBUyxDQUFDLENBQUM7SUFDdkM7SUFDQTtJQUNBLElBQUksQ0FBQ3JCLFVBQVUsQ0FBQyxJQUFJLENBQUN1RyxVQUFVLENBQUMsRUFBRTtNQUNoQyxLQUFLLElBQUlOLEdBQUcsSUFBSSxJQUFJLENBQUNNLFVBQVUsRUFBRTtRQUMvQixJQUFJTCxPQUFPLEdBQUdTLE1BQU0sQ0FBQ1YsR0FBRyxDQUFDO1FBQ3pCLElBQUlDLE9BQU8sRUFBRTtVQUNYLElBQUlDLEtBQUssQ0FBQ0MsT0FBTyxDQUFDRixPQUFPLENBQUMsRUFBRTtZQUMxQlMsTUFBTSxDQUFDVixHQUFHLENBQUMsR0FBRyxDQUNaL0YsS0FBSyxDQUFDZ0csT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQ0ssVUFBVSxDQUFDTixHQUFHLENBQUMsQ0FBQyxFQUN2Qy9GLEtBQUssQ0FBQ2dHLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUNLLFVBQVUsQ0FBQ04sR0FBRyxDQUFDLENBQUMsQ0FDeEM7VUFDSCxDQUFDLE1BQU07WUFDTFUsTUFBTSxDQUFDVixHQUFHLENBQUMsR0FBRy9GLEtBQUssQ0FBQ2dHLE9BQU8sRUFBRSxJQUFJLENBQUNLLFVBQVUsQ0FBQ04sR0FBRyxDQUFDLENBQUM7VUFDcEQ7UUFDRixDQUFDLE1BQU07VUFDTCxJQUFJLElBQUksQ0FBQ0ssVUFBVSxDQUFDTCxHQUFHLENBQUMsRUFBRTtZQUN4QixJQUFJYSxNQUFNLEdBQUdILE1BQU0sQ0FBQyxJQUFJLENBQUNMLFVBQVUsQ0FBQ0wsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDNUMsSUFBSWMsTUFBTSxHQUFHSixNQUFNLENBQUMsSUFBSSxDQUFDTCxVQUFVLENBQUNMLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzVDLElBQUlhLE1BQU0sSUFBSUMsTUFBTSxFQUFFO2NBQ3BCSixNQUFNLENBQUNWLEdBQUcsQ0FBQyxHQUFHLENBQ1ovRixLQUFLLENBQUM0RyxNQUFNLEVBQUUsSUFBSSxDQUFDUCxVQUFVLENBQUNOLEdBQUcsQ0FBQyxDQUFDLEVBQ25DL0YsS0FBSyxDQUFDNkcsTUFBTSxFQUFFLElBQUksQ0FBQ1IsVUFBVSxDQUFDTixHQUFHLENBQUMsQ0FBQyxDQUNwQztZQUNIO1VBQ0Y7UUFDRjtNQUNGO0lBQ0Y7SUFDQSxPQUFPVSxNQUFNO0VBQ2Y7RUFDQUssWUFBWUEsQ0FBQzdGLEtBQUssRUFBZTtJQUFBLElBQUE4RixzQkFBQTtJQUFBLElBQWIvQixJQUFJLEdBQUF2RSxTQUFBLENBQUF3RCxNQUFBLFFBQUF4RCxTQUFBLFFBQUF5RCxTQUFBLEdBQUF6RCxTQUFBLE1BQUcsSUFBSTtJQUM3QixNQUFNdUcsUUFBUSxHQUFHLElBQUksQ0FBQzNDLFlBQVksQ0FBQ3BELEtBQUssRUFBRStELElBQUksQ0FBQztJQUMvQyxDQUFBK0Isc0JBQUEsT0FBSSxDQUFDL0QsT0FBTyxDQUFDQyxPQUFPLGNBQUE4RCxzQkFBQSxlQUFwQkEsc0JBQUEsQ0FBc0I3RCxjQUFjLENBQUM4RCxRQUFRLENBQUM7RUFDaEQ7RUFDQUMsUUFBUUEsQ0FBQ0MsUUFBUSxFQUFFckcsS0FBSyxFQUFFO0lBQUEsSUFBQXNHLHNCQUFBO0lBQ3hCLE1BQU07TUFDSkMsU0FBUztNQUNUQyxZQUFZLEdBQUcsQ0FBQyxDQUFDO01BQ2pCbEQsUUFBUTtNQUNSL0IsYUFBYSxHQUFHLENBQUMsQ0FBQztNQUNsQmtGLGFBQWEsR0FBRyxDQUFDO0lBQ25CLENBQUMsR0FBRyxJQUFJLENBQUN4RyxLQUFLO0lBQ2QsTUFBTTtNQUFFeUcsTUFBTTtNQUFFQyxTQUFTO01BQUVDLFNBQVM7TUFBRUM7SUFBYSxDQUFDLEdBQUd0RixhQUFhO0lBQ3BFLElBQUl1RixHQUFHLEdBQUdQLFNBQVM7SUFDbkIsSUFBSTdFLE1BQVcsR0FBRyxDQUFDLENBQUM7SUFDcEIsSUFBSSxDQUFDMUIsS0FBSyxJQUFJQSxLQUFLLElBQUksSUFBSSxFQUFFO01BQzNCOEcsR0FBRyxHQUFHSixNQUFNLEdBQUdBLE1BQU0sR0FBR0gsU0FBUztNQUNqQyxJQUFJSyxTQUFTLElBQUksT0FBT0EsU0FBUyxJQUFJLFFBQVEsRUFBRTtRQUM3QyxNQUFNaEUsS0FBSyxHQUFHLElBQUksQ0FBQzNDLEtBQUssQ0FBQzJDLEtBQUssSUFBSSxDQUFDLENBQUM7UUFDcEMsSUFBSW1FLElBQUksR0FBRyxJQUFJQyxRQUFRLENBQUMsT0FBTyxFQUFFSixTQUFTLENBQUM7UUFDM0MsSUFBSUssWUFBWSxHQUFHRixJQUFJLENBQUNuRSxLQUFLLENBQUM7UUFDOUJsQixNQUFNLEdBQUd1RixZQUFZO01BQ3ZCLENBQUMsTUFBTTtRQUNMdkYsTUFBTSxHQUFHa0YsU0FBUyxHQUFHQSxTQUFTLEdBQUdKLFlBQVk7TUFDL0M7SUFDRixDQUFDLE1BQU0sSUFBSXhHLEtBQUssSUFBSSxJQUFJLEVBQUU7TUFDeEI4RyxHQUFHLEdBQUdILFNBQVMsR0FBR0EsU0FBUyxHQUFHSixTQUFTO01BQ3ZDLElBQUlNLFlBQVksSUFBSSxPQUFPQSxZQUFZLElBQUksUUFBUSxFQUFFO1FBQ25ELE1BQU1qRSxLQUFLLEdBQUcsSUFBSSxDQUFDM0MsS0FBSyxDQUFDMkMsS0FBSyxJQUFJLENBQUMsQ0FBQztRQUNwQyxJQUFJbUUsSUFBSSxHQUFHLElBQUlDLFFBQVEsQ0FBQyxPQUFPLEVBQUVILFlBQVksQ0FBQztRQUM5QyxJQUFJSSxZQUFZLEdBQUdGLElBQUksQ0FBQ25FLEtBQUssQ0FBQztRQUM5QmxCLE1BQU0sR0FBR3VGLFlBQVk7TUFDdkIsQ0FBQyxNQUFNO1FBQ0x2RixNQUFNLEdBQUdtRixZQUFZLEdBQUdBLFlBQVksR0FBR0wsWUFBWTtNQUNyRDtJQUNGO0lBQ0EsSUFBSSxDQUFDTSxHQUFHLEVBQUU7TUFDUkksT0FBTyxDQUFDbEMsS0FBSyxDQUFDLFlBQVksQ0FBQztNQUMzQjtJQUNGO0lBQ0EsTUFBTTtRQUFFdEUsSUFBSSxHQUFHLENBQUM7TUFBa0IsQ0FBQyxHQUFHZ0IsTUFBTTtNQUF0QnlGLFdBQVcsR0FBQUMsd0JBQUEsQ0FBSzFGLE1BQU0sRUFBQTJGLFNBQUE7SUFDNUMsQ0FBQWYsc0JBQUEsT0FBSSxDQUFDbkUsT0FBTyxDQUFDQyxPQUFPLGNBQUFrRSxzQkFBQSxlQUFwQkEsc0JBQUEsQ0FBc0JnQixRQUFRLENBQzVCUixHQUFHLEVBQUF4RSxhQUFBLENBQUFBLGFBQUE7TUFFRDVCLElBQUksRUFBQTRCLGFBQUEsQ0FBQUEsYUFBQSxLQUFPK0QsUUFBUSxHQUFLM0YsSUFBSSxDQUFFO01BQzlCNkcsV0FBVyxFQUFFdkgsS0FBSyxJQUFJO0lBQUksR0FDdkJ5RyxhQUFhLEdBQ2JVLFdBQVcsR0FFZm5GLEdBQVEsSUFBSztNQUNaLE1BQU07UUFBRUMsSUFBSTtRQUFFdUY7TUFBSSxDQUFDLEdBQUd4RixHQUFHO01BQ3pCLElBQUksQ0FBQ2YsUUFBUSxDQUFDO1FBQUVsQixPQUFPLEVBQUU7TUFBTSxDQUFDLENBQUM7TUFDakMsSUFBSWtDLElBQUksS0FBSyxHQUFHLEVBQUU7UUFDaEJuRCxPQUFPLENBQUMySSxPQUFPLENBQUN6SCxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQzdCMEgsVUFBVSxDQUFDLE1BQU07VUFDZixJQUFJLENBQUM5RCxJQUFJLENBQUMsSUFBSSxDQUFDO1VBQ2ZOLFFBQVEsSUFBSUEsUUFBUSxDQUFDLENBQUM7UUFDeEIsQ0FBQyxFQUFFLEdBQUcsQ0FBQztRQUVQO01BQ0Y7SUFDRixDQUNGLENBQUM7RUFDSDtFQUNBd0IsV0FBV0EsQ0FBQ3BFLElBQUksRUFBZ0I7SUFBQSxJQUFkVixLQUFLLEdBQUFKLFNBQUEsQ0FBQXdELE1BQUEsUUFBQXhELFNBQUEsUUFBQXlELFNBQUEsR0FBQXpELFNBQUEsTUFBRyxJQUFJO0lBQzVCLElBQUksQ0FBQ21GLFVBQVUsR0FBRyxJQUFJO0lBQ3RCLElBQUl6RSxRQUFRLEdBQUcsRUFBUztJQUN4QixJQUFJSSxJQUFJLElBQUlBLElBQUksQ0FBQzBDLE1BQU0sR0FBRyxDQUFDLEVBQUU7TUFDM0IxQyxJQUFJLENBQUNrRSxHQUFHLENBQUVDLElBQUksSUFBSztRQUNqQixJQUFJOEMsR0FBRyxHQUFHO1VBQ1JDLE1BQU0sRUFBRS9DLElBQUksQ0FBQytDLE1BQU07VUFDbkJDLFFBQVEsRUFBRWhELElBQUksQ0FBQ2dEO1FBQ2pCLENBQVE7UUFDUixJQUFJN0gsS0FBSyxJQUFJLElBQUksRUFBRTtVQUNqQjJILEdBQUcsQ0FBQ0csTUFBTSxHQUFHLE1BQU07UUFDckI7UUFDQSxJQUFJOUgsS0FBSyxLQUFLLElBQUksSUFBSTZFLElBQUksQ0FBQ2lELE1BQU0sS0FBSyxNQUFNLEVBQUU7VUFDNUMsSUFBSSxDQUFDL0MsVUFBVSxHQUFHLEtBQUs7UUFDekI7UUFDQXpFLFFBQVEsQ0FBQ3lILElBQUksQ0FBQ0osR0FBRyxDQUFDO01BQ3BCLENBQUMsQ0FBQztJQUNKO0lBQ0EsT0FBT3JILFFBQVE7RUFDakI7RUFFQWdILFFBQVFBLENBQUEsRUFBRztJQUFBLElBQUFVLHVCQUFBO0lBQ1QsTUFBTTtNQUFFVjtJQUFTLENBQUMsR0FBRyxJQUFJLENBQUNySCxLQUFLO0lBQy9CLE1BQU07TUFBRUQsS0FBSztNQUFFSSxLQUFLO01BQUVDLFNBQVM7TUFBRUM7SUFBUyxDQUFDLEdBQUcsSUFBSSxDQUFDc0IsS0FBSztJQUN4RCxJQUFJcUcsS0FBSyxHQUFHLElBQUksQ0FBQ0EsS0FBSztJQUN0QixDQUFBRCx1QkFBQSxPQUFJLENBQUM3RixPQUFPLENBQUNDLE9BQU8sY0FBQTRGLHVCQUFBLGVBQXBCQSx1QkFBQSxDQUNJRSxjQUFjLENBQUMsQ0FBQyxDQUNqQm5HLElBQUksQ0FBQyxNQUFNO01BQ1YsSUFBSXJCLElBQUksR0FBRyxJQUFJLENBQUMyRCxZQUFZLENBQUMsQ0FBQztNQUM5QixJQUFJLENBQUNwRCxRQUFRLENBQUM7UUFBRWxCLE9BQU8sRUFBRTtNQUFLLENBQUMsQ0FBQztNQUNoQyxJQUFJdUgsUUFBUSxFQUFFO1FBQ1osSUFBSWEsVUFBVSxHQUFHL0ksTUFBTSxDQUFDcUYsU0FBUyxDQUFDL0QsSUFBSSxDQUFDO1FBQ3ZDNEcsUUFBUSxJQUFJQSxRQUFRLENBQUNhLFVBQVUsRUFBRW5JLEtBQUssQ0FBQztRQUN2QztNQUNGO01BQ0EsSUFBSSxDQUFDb0csUUFBUSxDQUFDMUYsSUFBSSxFQUFFVixLQUFLLENBQUM7SUFDNUIsQ0FBQyxDQUFDLENBQ0RvSSxLQUFLLENBQUVDLFNBQWMsSUFBSyxDQUFDLENBQUMsQ0FBQztFQUNsQztFQUNBQyxXQUFXQSxDQUFBQyxJQUFBLEVBQXFCdEksS0FBSyxFQUFFRyxLQUFLLEVBQUVvSSxXQUFXLEVBQUU5SCxJQUFJLEVBQUU7SUFBQSxJQUFyRDtNQUFFeUQsSUFBSTtNQUFFc0U7SUFBUyxDQUFDLEdBQUFGLElBQUE7SUFDNUIsSUFBSUMsV0FBVyxFQUFFO01BQ2YsSUFBSUMsUUFBUSxFQUFFO1FBQ1osTUFBTTtVQUFFcEk7UUFBVSxDQUFDLEdBQUcsSUFBSSxDQUFDdUIsS0FBSztRQUNoQyxNQUFNOEcsUUFBUSxHQUFBcEcsYUFBQSxLQUFRakMsU0FBUyxDQUFTO1FBQ3hDcUksUUFBUSxDQUFDRCxRQUFRLENBQUMsR0FBR0QsV0FBVyxDQUFDeEksS0FBSztRQUN0QyxJQUFJLENBQUNpQixRQUFRLENBQUM7VUFDWlosU0FBUyxFQUFFcUk7UUFDYixDQUFDLENBQUM7TUFDSjtJQUNGO0lBQ0EsSUFBSXpJLEtBQUssQ0FBQzBJLFFBQVEsRUFBRTtNQUNsQixJQUFJLE9BQU8xSSxLQUFLLENBQUMwSSxRQUFRLElBQUksVUFBVSxFQUFFO1FBQ3ZDMUksS0FBSyxDQUFDMEksUUFBUSxDQUFDdkksS0FBSyxFQUFFb0ksV0FBVyxFQUFFOUgsSUFBSSxDQUFDO01BQzFDLENBQUMsTUFBTSxJQUFJLE9BQU9ULEtBQUssQ0FBQzBJLFFBQVEsSUFBSSxRQUFRLEVBQUU7UUFDNUMsTUFBTUMsV0FBVyxHQUFHO1VBQ2xCeEksS0FBSztVQUNMTSxJQUFJO1VBQ0p5QixPQUFPLEVBQUUsSUFBSSxDQUFDQSxPQUFPO1VBQ3JCVSxLQUFLLEVBQUUsSUFBSSxDQUFDNUMsS0FBSyxDQUFDNEMsS0FBSyxJQUFJLENBQUMsQ0FBQztVQUM3QkUsSUFBSSxFQUFFLElBQUksQ0FBQ0MsT0FBTztVQUNsQkYsT0FBTyxFQUFFLElBQUksQ0FBQzdDLEtBQUssQ0FBQzZDO1FBQ3RCLENBQVE7UUFDUixNQUFNRixLQUFLLEdBQUcsSUFBSSxDQUFDM0MsS0FBSyxDQUFDMkMsS0FBSyxJQUFJLENBQUMsQ0FBQztRQUNwQyxJQUFJdUIsSUFBSSxJQUFJLFFBQVEsRUFBRTtVQUNwQnlFLFdBQVcsQ0FBQ0osV0FBVyxHQUFHQSxXQUFXO1VBQ3JDSSxXQUFXLENBQUNsSSxJQUFJLEdBQUdBLElBQUk7UUFDekIsQ0FBQyxNQUFNLElBQUl5RCxJQUFJLElBQUksWUFBWSxJQUFJQSxJQUFJLElBQUksYUFBYSxFQUFFO1VBQ3hEeUUsV0FBVyxDQUFDQyxRQUFRLEdBQUdMLFdBQVc7UUFDcEM7UUFDQSxNQUFNTSxRQUFRLEdBQUcsSUFBSTlCLFFBQVEsQ0FBQyxhQUFhLEVBQUUsT0FBTyxFQUFFL0csS0FBSyxDQUFDMEksUUFBUSxDQUFDO1FBQ3JFRyxRQUFRLENBQUNGLFdBQVcsRUFBRWhHLEtBQUssQ0FBQztNQUM5QjtJQUNGO0VBQ0Y7RUFFQW1HLFVBQVVBLENBQUNDLEtBQUssRUFBRWhKLEtBQUssRUFBRTtJQUN2QixNQUFNaUosUUFBZSxHQUFHLEVBQUU7SUFDMUIsb0JBQ0V2SyxLQUFBLENBQUF3SyxhQUFBLENBQUNsSyxHQUFHO01BQUNtSyxNQUFNLEVBQUU7SUFBRyxHQUNiSCxLQUFLLENBQUNwRSxHQUFHLENBQUMsQ0FBQ0MsSUFBUyxFQUFFdUUsS0FBYSxLQUFLO01BQUEsSUFBQUMsV0FBQTtNQUN2QyxNQUFNQyxTQUFTLEdBQUd6RSxJQUFJLENBQUM1RSxLQUFLLElBQUksQ0FBQyxDQUFDO01BQ2xDLElBQUlxSixTQUFTLENBQUNoRSxNQUFNLElBQUlnRSxTQUFTLENBQUNDLFdBQVcsRUFBRTtRQUM3QyxJQUFJLENBQUN0RSxlQUFlLENBQUNKLElBQUksQ0FBQzJFLElBQUksQ0FBQyxHQUM3QkYsU0FBUyxDQUFDaEUsTUFBTSxJQUFJZ0UsU0FBUyxDQUFDQyxXQUFXO01BQzdDO01BQ0EsSUFBSUQsU0FBUyxDQUFDaEUsTUFBTSxFQUFFO1FBQ3BCLElBQUksQ0FBQ0UsVUFBVSxDQUFDWCxJQUFJLENBQUMyRSxJQUFJLENBQUMsR0FBR0YsU0FBUyxDQUFDaEUsTUFBTTtNQUMvQztNQUNBLElBQUlULElBQUksQ0FBQ1YsSUFBSSxJQUFJLGFBQWEsSUFBSVUsSUFBSSxDQUFDMkUsSUFBSSxDQUFDQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUNyRyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1FBQ2pFLElBQUksQ0FBQ21DLFVBQVUsQ0FBQ1YsSUFBSSxDQUFDMkUsSUFBSSxDQUFDLEdBQUczRSxJQUFJLENBQUMyRSxJQUFJLENBQUNDLEtBQUssQ0FBQyxHQUFHLENBQUM7TUFDbkQ7TUFDQSxJQUFJQyxVQUFVLEdBQUcsRUFBQUwsV0FBQSxHQUFBeEUsSUFBSSxDQUFDNUUsS0FBSyxjQUFBb0osV0FBQSx1QkFBVkEsV0FBQSxDQUFZSyxVQUFVLEtBQUksS0FBSztNQUNoRCxJQUFJekosS0FBSyxHQUFBcUMsYUFBQSxDQUFBQSxhQUFBO1FBQ1BxSCxXQUFXLHVCQUFBQyxNQUFBLENBQVEvRSxJQUFJLENBQUM3RSxLQUFLO01BQUUsR0FDNUI2RSxJQUFJLENBQUM1RSxLQUFLO1FBQ2IwSSxRQUFRLEVBQUUsSUFBSSxDQUFDTCxXQUFXLENBQUN1QixJQUFJLENBQzdCLElBQUksRUFDSjtVQUNFMUYsSUFBSSxFQUFFVSxJQUFJLENBQUNWLElBQUk7VUFDZnNFLFFBQVEsRUFBRTVELElBQUksQ0FBQzREO1FBQ2pCLENBQUMsRUFBQW5HLGFBQUEsS0FDSXVDLElBQUksQ0FBQzVFLEtBQUssQ0FDakI7TUFBQyxFQUNGO01BQ0QsSUFBSSxDQUFDNEUsSUFBSSxDQUFDVixJQUFJLElBQUlVLElBQUksQ0FBQ1YsSUFBSSxJQUFJLE9BQU8sRUFBRTtRQUN0Q2xFLEtBQUssQ0FBQ3lKLFVBQVUsR0FBRyxJQUFJLENBQUMsQ0FBQztNQUMzQjtNQUNBLE9BQU96SixLQUFLLENBQUNzSixXQUFXO01BQ3hCLE9BQU90SixLQUFLLENBQUNxRixNQUFNO01BQ25CLE9BQU9yRixLQUFLLENBQUM2SixRQUFRO01BQ3JCLElBQUk5SixLQUFLLElBQUksSUFBSSxFQUFFO1FBQ2pCQyxLQUFLLENBQUM4SixRQUFRLEdBQUcsSUFBSTtRQUNyQjlKLEtBQUssQ0FBQzBKLFdBQVcsR0FBRyxFQUFFO01BQ3hCO01BQ0EsSUFBSzlFLElBQUksQ0FBQ21GLEtBQUssSUFBSW5GLElBQUksQ0FBQ21GLEtBQUssQ0FBQzVHLE1BQU0sR0FBRyxDQUFDLElBQUt5QixJQUFJLENBQUNvRixRQUFRLEtBQUssSUFBSSxFQUFFO1FBQ25FaEIsUUFBUSxDQUFDbEIsSUFBSSxDQUFDbEQsSUFBSSxDQUFDMkUsSUFBSSxDQUFDO01BQzFCO01BQ0EsSUFBSUosS0FBSyxHQUFHLENBQUMsS0FBS0osS0FBSyxDQUFDNUYsTUFBTSxFQUFFO1FBQzlCLElBQUksQ0FBQzZFLEtBQUssR0FBR2dCLFFBQVE7TUFDdkI7TUFDQSxNQUFNaUIsT0FBWSxnQkFBR3hMLEtBQUssQ0FBQ29CLFNBQVMsQ0FBTSxDQUFDO01BQzNDLElBQUksQ0FBQ2tELE9BQU8sQ0FBQzZCLElBQUksQ0FBQzJFLElBQUksQ0FBQyxHQUFHVSxPQUFPO01BQ2pDLElBQUlyRixJQUFJLENBQUNWLElBQUksS0FBSyxRQUFRLEVBQUU7UUFBQSxJQUFBZ0csWUFBQTtRQUMxQixvQkFDRXpMLEtBQUEsQ0FBQXdLLGFBQUEsQ0FBQ25LLEdBQUc7VUFDRnFMLElBQUksRUFBRXZGLElBQUksQ0FBQ3VGLElBQUksSUFBSSxFQUFHO1VBQ3RCbEYsR0FBRyxFQUFFa0UsS0FBTTtVQUNYaUIsS0FBSyxFQUFFO1lBQUVDLE9BQU8sRUFBRXpGLElBQUksQ0FBQ2pCLElBQUksR0FBRyxNQUFNLEdBQUc7VUFBUTtRQUFFLGdCQUVqRGxGLEtBQUEsQ0FBQXdLLGFBQUEsQ0FBQ3RLLElBQUksQ0FBQzJMLElBQUk7VUFDUnZLLEtBQUssRUFBRTZFLElBQUksQ0FBQzdFLEtBQU07VUFDbEJ3SixJQUFJLEVBQUUzRSxJQUFJLENBQUMyRSxJQUFLO1VBQ2hCUSxLQUFLLEVBQUVuRixJQUFJLENBQUNtRixLQUFNO1VBQ2xCTixVQUFVLEVBQUVBLFVBQVc7VUFDdkJjLGFBQWEsRUFBRTNGLElBQUksQ0FBQ1YsSUFBSSxHQUFHVSxJQUFJLENBQUNWLElBQUksR0FBRyxPQUFRO1VBQy9DOEYsUUFBUSxFQUFFcEYsSUFBSSxDQUFDb0YsUUFBUztVQUN4QjlGLElBQUksR0FBQWdHLFlBQUEsR0FBRXRGLElBQUksQ0FBQzVFLEtBQUssY0FBQWtLLFlBQUEsdUJBQVZBLFlBQUEsQ0FBWWhHLElBQUs7VUFDdkJzRyxPQUFPLEVBQUU1RixJQUFJLENBQUM0RixPQUFPLElBQUk7UUFBTSxHQUU5QjVGLElBQUksQ0FBQzZGLFVBQVUsR0FDWjdGLElBQUksQ0FBQzZGLFVBQVUsQ0FBQ3pLLEtBQUssQ0FBQyxHQUN0QnBCLE9BQU8sQ0FBQ2dHLElBQUksQ0FBQ1YsSUFBSSxFQUFBN0IsYUFBQTtVQUNmcUksR0FBRyxFQUFFVDtRQUFPLEdBQ1RqSyxLQUFLLENBQ1QsQ0FDSSxDQUNSLENBQUM7TUFFVixDQUFDLE1BQU07UUFBQSxJQUFBMkssWUFBQSxFQUFBQyxZQUFBLEVBQUFDLFlBQUE7UUFDTCxJQUFJLENBQUNwRyxVQUFVLENBQUNxRCxJQUFJLENBQUNsRCxJQUFJLENBQUMyRSxJQUFJLENBQUM7UUFDL0Isb0JBQ0U5SyxLQUFBLENBQUF3SyxhQUFBLENBQUNuSyxHQUFHO1VBQ0ZxTCxJQUFJLEVBQUV2RixJQUFJLENBQUN1RixJQUFJLElBQUksRUFBRztVQUN0QmxGLEdBQUcsRUFBRWtFLEtBQU07VUFDWGlCLEtBQUssRUFBRTtZQUFFQyxPQUFPLEVBQUV6RixJQUFJLENBQUNqQixJQUFJLEdBQUcsTUFBTSxHQUFHO1VBQVE7UUFBRSxnQkFFakRsRixLQUFBLENBQUF3SyxhQUFBLENBQUN0SyxJQUFJLENBQUMyTCxJQUFJO1VBQ1J2SyxLQUFLLEVBQUU2RSxJQUFJLENBQUM3RSxLQUFNO1VBQ2xCd0osSUFBSSxFQUFFM0UsSUFBSSxDQUFDMkUsSUFBSztVQUNoQlEsS0FBSyxFQUFFbkYsSUFBSSxDQUFDbUYsS0FBTTtVQUNsQk4sVUFBVSxFQUFFQSxVQUFXO1VBQ3ZCdkYsSUFBSSxHQUFBeUcsWUFBQSxHQUFFL0YsSUFBSSxDQUFDNUUsS0FBSyxjQUFBMkssWUFBQSx1QkFBVkEsWUFBQSxDQUFZekcsSUFBSztVQUN2QjhGLFFBQVEsRUFBRXBGLElBQUksQ0FBQ29GO1FBQVMsZ0JBRXhCdkwsS0FBQSxDQUFBd0ssYUFBQSxDQUFDNUosTUFBTSxFQUFBeUwsUUFBQTtVQUNMekssUUFBUSxFQUFFLElBQUksQ0FBQ3NCLEtBQUssQ0FBQ3RCLFFBQVEsQ0FBQ3VFLElBQUksQ0FBQzJFLElBQUksQ0FBQyxJQUFJLEVBQUc7VUFDL0N3QixZQUFZLEVBQUdDLElBQUksSUFBSztZQUN0QixNQUFNO2NBQUUzSztZQUFTLENBQUMsR0FBRyxJQUFJLENBQUNzQixLQUFLO1lBQy9CLElBQUksQ0FBQ1gsUUFBUSxDQUFDO2NBQ1pYLFFBQVEsRUFBQWdDLGFBQUEsQ0FBQUEsYUFBQSxLQUFPaEMsUUFBUTtnQkFBRSxDQUFDdUUsSUFBSSxDQUFDMkUsSUFBSSxHQUFHeUI7Y0FBSTtZQUM1QyxDQUFDLENBQUM7VUFDSixDQUFFO1VBQ0ZDLGNBQWMsRUFBRTtZQUNkQyxnQkFBZ0IsRUFBRSxJQUFJO1lBQ3RCQyxjQUFjLEVBQUVwTCxLQUFLLEtBQUs7VUFDNUIsQ0FBRTtVQUNGMkssR0FBRyxFQUFFVDtRQUFRLEdBQ1RqSyxLQUFLLEdBRVIsQ0FBQTRLLFlBQUEsR0FBQWhHLElBQUksQ0FBQzVFLEtBQUssY0FBQTRLLFlBQUEsZUFBVkEsWUFBQSxDQUFZUSxRQUFRLElBQUFQLFlBQUEsR0FDakJqRyxJQUFJLENBQUM1RSxLQUFLLGNBQUE2SyxZQUFBLHVCQUFWQSxZQUFBLENBQVlPLFFBQVEsR0FDcEJyTCxLQUFLLEtBQUssSUFBSSxpQkFBSXRCLEtBQUEsQ0FBQXdLLGFBQUEsQ0FBQzdKLE1BQU0sUUFBQywwQkFBWSxDQUNwQyxDQUNDLENBQ1IsQ0FBQztNQUVWO0lBQ0YsQ0FBQyxDQUNFLENBQUM7RUFFVjtFQUNBaU0sTUFBTUEsQ0FBQSxFQUFHO0lBQ1AsTUFBTTtNQUNKdEMsS0FBSyxHQUFHLEVBQUU7TUFDVi9JLEtBQUssR0FBRyxDQUFDLENBQUM7TUFDVnNMLE1BQU0sR0FBRyxJQUFJO01BQ2JGLFFBQVE7TUFDUi9KLFFBQVEsR0FBRyxNQUFNO01BQ2pCa0ssS0FBSyxHQUFHLEVBQUU7TUFDVkMsVUFBVSxFQUFFQyxpQkFBaUIsR0FBRyxDQUFDLENBQUM7TUFDbENDLFdBQVcsRUFBRUM7SUFDZixDQUFDLEdBQUcsSUFBSSxDQUFDM0wsS0FBSztJQUNkLE1BQU07TUFBRUYsT0FBTztNQUFFQztJQUFNLENBQUMsR0FBRyxJQUFJLENBQUM0QixLQUFLO0lBQ3JDLElBQUlpSyxXQUFXLEdBQUcsRUFBUztJQUMzQixJQUFJQyxTQUFTLEdBQUcsRUFBUztJQUN6QixJQUFJMUcsS0FBSyxDQUFDQyxPQUFPLENBQUNnRyxRQUFRLENBQUMsRUFBRTtNQUMzQkEsUUFBUSxDQUFDekcsR0FBRyxDQUFFQyxJQUFTLElBQUs7UUFDMUIsSUFBSU8sS0FBSyxDQUFDQyxPQUFPLENBQUNSLElBQUksQ0FBQyxFQUFFO1VBQ3ZCQSxJQUFJLENBQUNELEdBQUcsQ0FBRW1ILEtBQUssSUFBSztZQUFBLElBQUFDLFlBQUE7WUFDbEIsSUFBSSxDQUFBRCxLQUFLLGFBQUxBLEtBQUssZ0JBQUFDLFlBQUEsR0FBTEQsS0FBSyxDQUFFOUwsS0FBSyxjQUFBK0wsWUFBQSx1QkFBWkEsWUFBQSxDQUFjQyxRQUFRLEtBQUksVUFBVSxFQUFFO2NBQ3hDLE9BQU9wSCxJQUFJLElBQUksUUFBUSxJQUFJaUgsU0FBUyxDQUFDL0QsSUFBSSxDQUFDZ0UsS0FBSyxDQUFDO1lBQ2xELENBQUMsTUFBTTtjQUNMLE9BQU9sSCxJQUFJLElBQUksUUFBUSxJQUFJZ0gsV0FBVyxDQUFDOUQsSUFBSSxDQUFDZ0UsS0FBSyxDQUFDO1lBQ3BEO1VBQ0YsQ0FBQyxDQUFDO1FBQ0osQ0FBQyxNQUFNO1VBQUEsSUFBQUcsWUFBQTtVQUNMLElBQUksQ0FBQXJILElBQUksYUFBSkEsSUFBSSxnQkFBQXFILFlBQUEsR0FBSnJILElBQUksQ0FBRTVFLEtBQUssY0FBQWlNLFlBQUEsdUJBQVhBLFlBQUEsQ0FBYUQsUUFBUSxLQUFJLFVBQVUsRUFBRTtZQUN2QyxPQUFPcEgsSUFBSSxJQUFJLFFBQVEsSUFBSWlILFNBQVMsQ0FBQy9ELElBQUksQ0FBQ2xELElBQUksQ0FBQztVQUNqRCxDQUFDLE1BQU07WUFDTCxPQUFPQSxJQUFJLElBQUksUUFBUSxJQUFJZ0gsV0FBVyxDQUFDOUQsSUFBSSxDQUFDbEQsSUFBSSxDQUFDO1VBQ25EO1FBQ0Y7TUFDRixDQUFDLENBQUM7SUFDSixDQUFDLE1BQU0sSUFBSXdHLFFBQVEsRUFBRTtNQUNuQixNQUFNO1FBQUVwTDtNQUFXLENBQUMsR0FBR29MLFFBQVE7TUFDL0IsSUFBSSxDQUFBcEwsS0FBSyxhQUFMQSxLQUFLLHVCQUFMQSxLQUFLLENBQUVnTSxRQUFRLEtBQUksVUFBVSxFQUFFO1FBQ2pDLE9BQU9aLFFBQVEsSUFBSSxRQUFRLElBQUlTLFNBQVMsQ0FBQy9ELElBQUksQ0FBQ3NELFFBQVEsQ0FBQztNQUN6RCxDQUFDLE1BQU07UUFDTCxPQUFPQSxRQUFRLElBQUksUUFBUSxJQUFJUSxXQUFXLENBQUM5RCxJQUFJLENBQUNzRCxRQUFRLENBQUM7TUFDM0Q7SUFDRjtJQUNBLElBQUlJLFVBQVUsR0FBQW5KLGFBQUE7TUFDWmtKLEtBQUssRUFBRXhMLEtBQUssR0FBR3dMLEtBQUs7TUFDcEJXLElBQUksRUFBRSxJQUFJLENBQUM3RSxRQUFRLENBQUN1QyxJQUFJLENBQUMsSUFBSSxDQUFDO01BQzlCdUMsUUFBUSxFQUFFLElBQUksQ0FBQ3hJLElBQUksQ0FBQ2lHLElBQUksQ0FBQyxJQUFJLENBQUM7TUFDOUJ3QyxhQUFhLEVBQUU7UUFBRXRNLE9BQU8sRUFBRUE7TUFBUSxDQUFDO01BQ25DdU0sUUFBUSxFQUFFLElBQUk7TUFDZC9MLEtBQUssRUFBRSxNQUFNO01BQ2JnTSxZQUFZLEVBQUVWO0lBQVcsR0FDdEJILGlCQUFpQixDQUNkO0lBRVIsSUFBSUMsV0FBVyxHQUFBckosYUFBQTtNQUNiNkosSUFBSSxFQUFFLElBQUksQ0FBQzdFLFFBQVEsQ0FBQ3VDLElBQUksQ0FBQyxJQUFJLENBQUM7TUFDOUIyQyxPQUFPLEVBQUUsSUFBSSxDQUFDNUksSUFBSSxDQUFDaUcsSUFBSSxDQUFDLElBQUksQ0FBQztNQUM3QnRKLEtBQUssRUFBRSxNQUFNO01BQ2JnTSxZQUFZLEVBQUVWO0lBQVcsR0FDdEJELGtCQUFrQixDQUNmO0lBQ1IsSUFBSTVMLEtBQUssSUFBSSxJQUFJLEVBQUU7TUFDakJ5TCxVQUFVLENBQUNGLE1BQU0sR0FBRyxJQUFJO01BQ3hCSSxXQUFXLENBQUNKLE1BQU0sR0FBRyxJQUFJO0lBQzNCO0lBQ0EsSUFBSSxDQUFDdEcsZUFBZSxHQUFHLENBQUMsQ0FBQztJQUN6QixJQUFJLENBQUNPLFVBQVUsR0FBRyxDQUFDLENBQUM7SUFDcEIsSUFBSSxDQUFDZCxVQUFVLEdBQUcsRUFBRTtJQUNwQixJQUFJK0gsV0FBVyxHQUFHLENBQUMsQ0FBUTtJQUMzQixJQUFJQyxVQUFVLEdBQUcsRUFBUztJQUMxQixJQUFJQyxVQUFVLEdBQUcsRUFBUztJQUMxQixJQUFJQyxTQUFTLEdBQUcsRUFBUztJQUN6QjtJQUNBNUQsS0FBSyxDQUFDcEUsR0FBRyxDQUFFQyxJQUFTLElBQUs7TUFDdkIsSUFBSUEsSUFBSSxDQUFDNUIsSUFBSSxLQUFLLEtBQUssRUFBRTtRQUN2QjJKLFNBQVMsQ0FBQzdFLElBQUksQ0FBQ2xELElBQUksQ0FBQztRQUNwQixJQUFJQSxJQUFJLENBQUNnSSxTQUFTLElBQUlILFVBQVUsQ0FBQ0ksT0FBTyxDQUFDakksSUFBSSxDQUFDZ0ksU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1VBQzVESCxVQUFVLENBQUMzRSxJQUFJLENBQUNsRCxJQUFJLENBQUNnSSxTQUFTLENBQUM7UUFDakMsQ0FBQyxNQUFNLElBQUksQ0FBQ2hJLElBQUksQ0FBQ2dJLFNBQVMsRUFBRTtVQUMxQkYsVUFBVSxDQUFDNUUsSUFBSSxDQUFDbEQsSUFBSSxDQUFDO1FBQ3ZCO01BQ0Y7SUFDRixDQUFDLENBQUM7SUFDRixJQUFJNkgsVUFBVSxDQUFDdEosTUFBTSxHQUFHLENBQUMsRUFBRTtNQUN6QnNKLFVBQVUsQ0FBQzlILEdBQUcsQ0FBRUMsSUFBUyxJQUFLO1FBQzVCLElBQUlrSSxVQUFVLEdBQUcsRUFBUztRQUMxQkgsU0FBUyxDQUFDaEksR0FBRyxDQUFFb0ksSUFBUyxJQUFLO1VBQzNCLElBQUlBLElBQUksQ0FBQ0gsU0FBUyxJQUFJaEksSUFBSSxFQUFFO1lBQzFCa0ksVUFBVSxDQUFDaEYsSUFBSSxDQUFDaUYsSUFBSSxDQUFDO1VBQ3ZCO1FBQ0YsQ0FBQyxDQUFDO1FBQ0ZQLFdBQVcsQ0FBQzVILElBQUksQ0FBQyxHQUFHa0ksVUFBVTtNQUNoQyxDQUFDLENBQUM7TUFDRixJQUFJSixVQUFVLENBQUN2SixNQUFNLEdBQUcsQ0FBQyxFQUFFO1FBQ3pCcUosV0FBVyxDQUFDLGFBQWEsQ0FBQyxHQUFHRSxVQUFVO01BQ3pDO0lBQ0Y7SUFDQSxNQUFNTSxtQkFBbUIsR0FBR0EsQ0FBQ0MsSUFBSSxFQUFFak4sS0FBSyxLQUFLO01BQzNDLE1BQU07VUFBRWdNO1FBQXdCLENBQUMsR0FBR2hNLEtBQUs7UUFBcEJrTixVQUFVLEdBQUEvRix3QkFBQSxDQUFLbkgsS0FBSyxFQUFBbU4sVUFBQTtNQUN6QyxvQkFBTzFPLEtBQUssQ0FBQ3dLLGFBQWEsQ0FBQ2dFLElBQUksQ0FBQy9JLElBQUksRUFBRWdKLFVBQVUsQ0FBQztJQUNuRCxDQUFDO0lBQ0Q7SUFDQSxvQkFDRXpPLEtBQUEsQ0FBQXdLLGFBQUEsQ0FBQ3RLLElBQUksRUFBQW1NLFFBQUE7TUFDSEosR0FBRyxFQUFFLElBQUksQ0FBQ3hJLE9BQVE7TUFDbEJrTCxTQUFTLEVBQUUsSUFBSSxDQUFDcE4sS0FBSyxDQUFDcUIsUUFBUSxJQUFJLE1BQU0sR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDckIsS0FBSyxDQUFDcUIsUUFBUztNQUN0RW1LLFVBQVUsRUFBQW5KLGFBQUEsS0FBT21KLFVBQVUsQ0FBRztNQUM5QkUsV0FBVyxFQUFBckosYUFBQSxLQUFPcUosV0FBVztNQUM3QjtNQUNBO01BQUE7TUFDQTJCLGNBQWMsRUFBRUEsQ0FBQ0MsYUFBYSxFQUFFQyxTQUFTLEtBQUs7UUFDNUMsTUFBTTtVQUFFQztRQUFhLENBQUMsR0FBRyxJQUFJLENBQUN4TixLQUFLO1FBQ25Dd04sWUFBWSxJQUFJQSxZQUFZLENBQUNGLGFBQWEsRUFBRUMsU0FBUyxDQUFDO01BQ3hELENBQUU7TUFDRkUsV0FBVyxFQUFFLElBQUksQ0FBQ3pOLEtBQUssQ0FBQ3lOO0lBQVksR0FDaEN6TixLQUFLLGdCQUVUdkIsS0FBQSxDQUFBd0ssYUFBQTtNQUFLeUUsU0FBUyxFQUFDO0lBQWUsR0FDM0JqQixVQUFVLENBQUN0SixNQUFNLElBQUksQ0FBQyxHQUNyQixJQUFJLENBQUNuRCxLQUFLLENBQUNxQixRQUFRLEtBQUssTUFBTSxHQUM1QixJQUFJLENBQUN5SCxVQUFVLENBQUM2RCxTQUFTLEVBQUU1TSxLQUFLLENBQUMsZ0JBRWpDdEIsS0FBQSxDQUFBd0ssYUFBQTtNQUFLeUUsU0FBUyxFQUFDO0lBQWUsR0FDM0IsSUFBSSxDQUFDNUUsVUFBVSxDQUFDNkQsU0FBUyxFQUFFNU0sS0FBSyxDQUM5QixDQUNOLEdBRUQ0TixNQUFNLENBQUNDLElBQUksQ0FBQ3BCLFdBQVcsQ0FBQyxDQUFDN0gsR0FBRyxDQUFFTSxHQUFHLElBQUs7TUFDcEMsb0JBQ0V4RyxLQUFBLENBQUF3SyxhQUFBO1FBQUtoRSxHQUFHLEVBQUVBLEdBQUk7UUFBQ3lJLFNBQVMsRUFBQztNQUFlLEdBQ3JDekksR0FBRyxJQUFJLGFBQWEsaUJBQ25CeEcsS0FBQSxDQUFBd0ssYUFBQTtRQUFLeUUsU0FBUyxFQUFDO01BQWdCLEdBQUV6SSxHQUFTLENBQzNDLGVBQ0R4RyxLQUFBLENBQUF3SyxhQUFBO1FBQUt5RSxTQUFTLEVBQUM7TUFBa0IsR0FDOUIsSUFBSSxDQUFDNUUsVUFBVSxDQUFDMEQsV0FBVyxDQUFDdkgsR0FBRyxDQUFDLEVBQUVsRixLQUFLLENBQ3JDLENBQ0YsQ0FBQztJQUVWLENBQUMsQ0FDRixFQUVBOEwsU0FBUyxDQUFDMUksTUFBTSxHQUFHLENBQUMsSUFDbkIwSSxTQUFTLENBQUNsSCxHQUFHLENBQUMsQ0FBQ3NJLElBQUksRUFBRTlELEtBQUssS0FBSztNQUM3QixvQkFDRTFLLEtBQUEsQ0FBQXdLLGFBQUE7UUFBS3lFLFNBQVMsRUFBQyxlQUFlO1FBQUN6SSxHQUFHLEVBQUVrRTtNQUFNLEdBQ3ZDNkQsbUJBQW1CLENBQUNDLElBQUksRUFBQTVLLGFBQUEsS0FBTzRLLElBQUksQ0FBQ2pOLEtBQUssQ0FBRSxDQUN6QyxDQUFDO0lBRVYsQ0FBQyxDQUFDLEVBQ0hxQixRQUFRLEtBQUssTUFBTSxJQUFJaUssTUFBTSxJQUFJLElBQUksaUJBQ3BDN00sS0FBQSxDQUFBd0ssYUFBQTtNQUNFeUUsU0FBUyxFQUFFcE8sR0FBRyxDQUNaLElBQUksQ0FBQ1UsS0FBSyxDQUFDNk4sZUFBZSxFQUMxQixzQkFBc0IsRUFDdEIsQ0FBQyxJQUFJLENBQUNsTSxLQUFLLENBQUNyQixLQUFLLEdBQUcsNEJBQTRCLEdBQUcsRUFBRSxDQUN2RDtJQUFFLGdCQUVGN0IsS0FBQSxDQUFBd0ssYUFBQSxDQUFDN0osTUFBTSxFQUFBMEwsUUFBQSxLQUNELElBQUksQ0FBQzlLLEtBQUssQ0FBQzhOLGlCQUFpQjtNQUNoQ0MsT0FBTyxFQUFFQSxDQUFBLEtBQU07UUFDYixJQUFJLElBQUksQ0FBQy9OLEtBQUssQ0FBQ21NLFFBQVEsRUFBRTtVQUN2QixJQUFJLENBQUNuTSxLQUFLLENBQUNtTSxRQUFRLENBQUMsQ0FBQztVQUNyQjtRQUNGO1FBQ0EsSUFBSSxDQUFDbkwsUUFBUSxDQUFDO1VBQUVsQixPQUFPLEVBQUU7UUFBTSxDQUFDLENBQUM7TUFDbkM7SUFBRSxJQUNILGNBRU8sQ0FBQyxlQUNUckIsS0FBQSxDQUFBd0ssYUFBQSxDQUFDN0osTUFBTSxFQUFBMEwsUUFBQTtNQUNMNUcsSUFBSSxFQUFDO0lBQVMsR0FDVixJQUFJLENBQUNsRSxLQUFLLENBQUNvTSxhQUFhO01BQzVCMkIsT0FBTyxFQUFFQSxDQUFBLEtBQU07UUFDYixJQUFJLENBQUMxRyxRQUFRLENBQUMsQ0FBQztNQUNqQixDQUFFO01BQ0Z2SCxPQUFPLEVBQUUsSUFBSSxDQUFDNkIsS0FBSyxDQUFDN0IsT0FBUTtNQUM1QjROLFNBQVMsRUFBRTtJQUEyQixJQUN2QyxjQUVPLENBQUMsRUFDUjlCLFdBQVcsQ0FBQ2pILEdBQUcsQ0FBQyxDQUFDQyxJQUFTLEVBQUV1RSxLQUFVLEtBQUs7TUFDMUMsb0JBQ0UxSyxLQUFBLENBQUF3SyxhQUFBO1FBQUt5RSxTQUFTLEVBQUUsMEJBQTJCO1FBQUN6SSxHQUFHLEVBQUVrRTtNQUFNLEdBQ3BEdkUsSUFDRSxDQUFDO0lBRVYsQ0FBQyxDQUNFLENBQ04sRUFDQXZELFFBQVEsS0FBSyxNQUFNLElBQUlpSyxNQUFNLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQ3RMLEtBQUssQ0FBQ3NMLE1BQ25ELENBQ0QsQ0FBQztFQUVYO0FBQ0Y7QUFFQSxlQUFlN0wsUUFBUSJ9