nsc-react-component 2.14.29 → 2.14.30

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.
@@ -235,7 +235,7 @@ const withCustomUpload = Component => {
235
235
  } = this.props;
236
236
  const names = file.name.split(".");
237
237
  const suffix = names[names.length - 1];
238
- if (allowFileSuffix.indexOf(suffix) > -1) {
238
+ if (allowFileSuffix.indexOf(suffix) > -1 || allowFileSuffix.indexOf(suffix.toLowerCase()) > -1 || allowFileSuffix.indexOf(suffix.toUperrcase()) > -1) {
239
239
  return true;
240
240
  }
241
241
  return false;
@@ -444,4 +444,4 @@ const NscUpload = withCustomUpload(_Upload);
444
444
  const NscUploadDragger = withCustomUpload(_Upload.Dragger);
445
445
  NscUpload.Dragger = NscUploadDragger;
446
446
  export default NscUpload;
447
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsImZpbGUiLCJtZXNzYWdlIiwib21pdCIsImdldExlc3MiLCJzdHlsZXMiLCJjbHMiLCJGaWxlSWNvbiIsIkRlbGV0ZU91dGxpbmVkIiwiRG93bmxvYWRPdXRsaW5lZCIsIkV5ZU91dGxpbmVkIiwidXBsb2FkIiwiZG93bmxvYWQiLCJwcmV2aWV3RG9jdW1lbnQiLCJwcmV2aWV3SW1hZ2UiLCJ3aXRoQ3VzdG9tVXBsb2FkIiwiQ29tcG9uZW50IiwiUHVyZUNvbXBvbmVudCIsImNvbnN0cnVjdG9yIiwiYXJndW1lbnRzIiwiX2RlZmluZVByb3BlcnR5IiwiZmlsZUxpc3QiLCJ2aWV3SWQiLCJmaWxlTGlzdFN0b3JlIiwiZmlsZU5hbWVzIiwib3B0aW9ucyIsIm9uQ29tcGxldGUiLCJvblByb2Nlc3MiLCJzbGljZVNpemUiLCJuZXdWZXJzaW9uIiwicHJvcHMiLCJvblByb2dyZXNzIiwidG90YWxQcm9ncmVzcyIsInBlcmNlbnQiLCJyZXMiLCJwYXJ0U2l6ZSIsInJlcXVlc3RDb25maWciLCJ1cGxvYWRJbmdTaXplIiwiZmlsZUlkIiwiSW1nUmVzIiwiY29kZSIsImRhdGEiLCJhdHRhY2hJZCIsIm9uU3VjY2VzcyIsImxpc3RUeXBlIiwib25FcnJvciIsInVwbG9hZEluZ0xpc3QiLCJwdXNoIiwic3RhdHVzIiwidXJsIiwiZSIsImNvbXBvbmVudERpZE1vdW50IiwiY29udmVydEZpbGVMaXN0IiwibGlzdCIsIm5ld0ZpbGVMaXN0Iiwib2xkTGlzdCIsInNldFN0YXRlIiwiaSIsImxlbmd0aCIsIml0ZW0iLCJ0ZW1wIiwiX29iamVjdFNwcmVhZCIsIm5hbWUiLCJmaWxlTmFtZSIsInR5cGUiLCJzaXplIiwiY29tcG9uZW50RGlkVXBkYXRlIiwicHJlUHJvcHMiLCJwcmVTdGF0ZSIsIkpTT04iLCJzdHJpbmdpZnkiLCJzdGF0ZSIsImdldEZpbGVMaXN0Iiwic2V0RmlsZUxpc3QiLCJiZWZvcmVVcGxvYWQiLCJvZmlsZUxpc3QiLCJtYXhTaXplIiwiYWxsb3dGaWxlU3VmZml4IiwiY2hlY2tTYW1lRmlsZSIsIm1heENvdW50Iiwic2hvd1VwbG9hZExpc3QiLCJwcm9wc0xpc3QiLCJvbkxpc3RDaGFuZ2UiLCJjaGVja0ZpbGVUeXBlIiwiZXJyb3IiLCJjb25jYXQiLCJjaGVja0xpc3QiLCJtYXAiLCJpbmRleE9mIiwibmV3TGlzdCIsInVpZCIsInNwbGljZSIsInVwbG9hZFNpemUiLCJuYW1lcyIsInNwbGl0Iiwic3VmZml4IiwiX3JlZiIsIm5ld0ZpbGUiLCJmaWxlcyIsImluZGV4Iiwid2luZG93IiwibG9jYWxTdG9yYWdlIiwiZ2V0SXRlbSIsInByZWZpeCIsIm9uRGVsZXRlIiwicmVuZGVyIiwiZmlsZUNhcmQiLCJzaG93RG93bmxvYWRJY29uIiwic2hvd1ByZXZpZXdJY29uIiwic2hvd1JlbW92ZUljb24iLCJkb3dubG9hZEljb24iLCJyZW1vdmVJY29uIiwicHJldmlld0ljb24iLCJuZXdwcm9wcyIsImRlZmF1bHRQcm9wcyIsImN1c3RvbVJlcXVlc3QiLCJiaW5kIiwibXVsdGlwbGUiLCJpdGVtUmVuZGVyIiwib3JpZ2luTm9kZSIsImN1cnJGaWxlTGlzdCIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJvbkNsaWNrIiwib25QcmV2aWV3Iiwic3R5bGUiLCJjdXJzb3IiLCJvbkRvd25sb2FkIiwib25SZW1vdmUiLCJ3aWR0aCIsIkZyYWdtZW50IiwiX2V4dGVuZHMiLCJOc2NVcGxvYWQiLCJfVXBsb2FkIiwiTnNjVXBsb2FkRHJhZ2dlciIsIkRyYWdnZXIiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9iYXNlL3VwbG9hZC9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7IFVwbG9hZCwgVXBsb2FkUHJvcHMgfSBmcm9tIFwiYW50ZFwiO1xyXG5pbXBvcnQgZmlsZSBmcm9tIFwibnNjLWZpbGVcIjtcclxuaW1wb3J0IG1lc3NhZ2UgZnJvbSBcIi4uL21lc3NhZ2VcIjtcclxuaW1wb3J0IG9taXQgZnJvbSBcIm9taXQuanNcIjtcclxuaW1wb3J0IHsgZ2V0TGVzcyB9IGZyb20gXCIuLi8uLi91dGlsc1wiO1xyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL2luZGV4Lmxlc3NcIjtcclxuaW1wb3J0IGNscyBmcm9tIFwiY2xhc3NuYW1lc1wiO1xyXG5pbXBvcnQgRmlsZUljb24gZnJvbSBcIi4uL2NvbW1vbi9GaWxlSWNvblwiO1xyXG5pbXBvcnQge1xyXG4gIERlbGV0ZU91dGxpbmVkLFxyXG4gIERvd25sb2FkT3V0bGluZWQsXHJcbiAgRXllT3V0bGluZWQsXHJcbn0gZnJvbSBcIkBhbnQtZGVzaWduL2ljb25zXCI7XHJcbmNvbnN0IHsgdXBsb2FkLCBkb3dubG9hZCwgcHJldmlld0RvY3VtZW50LCBwcmV2aWV3SW1hZ2UgfSA9IGZpbGU7XHJcblxyXG5pbnRlcmZhY2UgSVVwbG9hZFByb3BzIGV4dGVuZHMgVXBsb2FkUHJvcHMge1xyXG4gIHNsaWNlU2l6ZT86IG51bWJlcjtcclxuICBtYXhTaXplPzogbnVtYmVyIHwgYm9vbGVhbjtcclxuICBvblByb2Nlc3M/OiAocHJvY2VzcykgPT4gdm9pZDtcclxuICBvbkNvbXBsZXRlPzogKHsgZmlsZSwgZmlsZUlkLCBzdGF0dXMgfSkgPT4gdm9pZDtcclxuICBhbGxvd0ZpbGVTdWZmaXg/OiBBcnJheTxTdHJpbmc+OyAvL+WFgeiuuOS4iuS8oOaJqeWxleWQjSzkuI3luKYuXHJcbiAgdXNlRGVmYXVsdExpc3Q/OiBib29sZWFuOyAvL+aYr+WQpuS9v+eUqOm7mOiupOeahGZpbGVMaXN0XHJcbiAgZmlsZUNhcmQ/OiBib29sZWFuO1xyXG4gIG9uTGlzdENoYW5nZT86IGFueTtcclxuICBjaGVja1NhbWVGaWxlPzogYm9vbGVhbjtcclxuICByZXF1ZXN0Q29uZmlnPzogYW55O1xyXG4gIG5ld1ZlcnNpb24/OiBib29sZWFuO1xyXG4gIFtwcm9wc05hbWU6IHN0cmluZ106IGFueTtcclxufVxyXG5jb25zdCB3aXRoQ3VzdG9tVXBsb2FkID0gKENvbXBvbmVudCkgPT4ge1xyXG4gIC8vIOi/lOWbnuS4gOS4quexu+e7hOS7tlxyXG4gIHJldHVybiBjbGFzcyBleHRlbmRzIFJlYWN0LlB1cmVDb21wb25lbnQ8SVVwbG9hZFByb3BzLCBhbnk+IHtcclxuICAgIHN0YXRlID0ge1xyXG4gICAgICBmaWxlTGlzdDogW10sXHJcbiAgICAgIHZpZXdJZDogXCJcIixcclxuICAgICAgZmlsZUxpc3RTdG9yZTogW10sXHJcbiAgICAgIGZpbGVOYW1lczogW10sXHJcbiAgICB9O1xyXG4gICAgdXBsb2FkSW5nU2l6ZSA9IDA7XHJcbiAgICB1cGxvYWRTaXplID0gMDtcclxuICAgIHVwbG9hZEluZ0xpc3QgPSBbXTtcclxuICAgIHByZXZpZXdVcmwgPSB7fTtcclxuICAgIGNvbXBvbmVudERpZE1vdW50KCkge1xyXG4gICAgICBpZiAodGhpcy5wcm9wcy5maWxlTGlzdCkge1xyXG4gICAgICAgIHRoaXMuY29udmVydEZpbGVMaXN0KHRoaXMucHJvcHMuZmlsZUxpc3QpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBjb252ZXJ0RmlsZUxpc3QobGlzdD86IEFycmF5PE9iamVjdD4pIHtcclxuICAgICAgY29uc3QgeyBmaWxlTGlzdCwgbGlzdFR5cGUgfSA9IHRoaXMucHJvcHM7XHJcbiAgICAgIGNvbnN0IG5ld0ZpbGVMaXN0ID0gW107XHJcbiAgICAgIGxldCBvbGRMaXN0ID0gbGlzdCA/IGxpc3QgOiBmaWxlTGlzdDtcclxuICAgICAgdGhpcy5zZXRTdGF0ZShcclxuICAgICAgICB7XHJcbiAgICAgICAgICBmaWxlTGlzdFN0b3JlOiBbLi4uZmlsZUxpc3RdLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgYXN5bmMgKCkgPT4ge1xyXG4gICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBvbGRMaXN0Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGxldCBpdGVtOiBhbnkgPSBvbGRMaXN0W2ldO1xyXG4gICAgICAgICAgICBsZXQgdGVtcCA9IHtcclxuICAgICAgICAgICAgICAuLi5pdGVtLFxyXG4gICAgICAgICAgICAgIHN0YXR1czogaXRlbS5zdGF0dXMsXHJcbiAgICAgICAgICAgICAgbmFtZTogaXRlbS5uYW1lIHx8IGl0ZW0uZmlsZU5hbWUsXHJcbiAgICAgICAgICAgICAgdHlwZTogaXRlbS50eXBlLFxyXG4gICAgICAgICAgICAgIHNpemU6IGl0ZW0uc2l6ZSxcclxuICAgICAgICAgICAgICB1cmw6IGl0ZW0udXJsLFxyXG4gICAgICAgICAgICB9IGFzIGFueTtcclxuICAgICAgICAgICAgaWYgKGxpc3RUeXBlID09IFwicGljdHVyZS1jYXJkXCIgJiYgIWl0ZW0udXJsICYmIGl0ZW0uZmlsZUlkKSB7XHJcbiAgICAgICAgICAgICAgbGV0IHJlczogYW55ID0gYXdhaXQgcHJldmlld0ltYWdlKFxyXG4gICAgICAgICAgICAgICAgaXRlbS5maWxlSWQsXHJcbiAgICAgICAgICAgICAgICB0aGlzLnByb3BzLnJlcXVlc3RDb25maWdcclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgIGlmIChyZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgICAgICAgIHRlbXAudXJsID0gcmVzLmRhdGE7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIG5ld0ZpbGVMaXN0LnB1c2godGVtcCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgZmlsZUxpc3Q6IFsuLi5uZXdGaWxlTGlzdF0sXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBjb21wb25lbnREaWRVcGRhdGUocHJlUHJvcHMsIHByZVN0YXRlKSB7XHJcbiAgICAgIGlmICh0aGlzLnByb3BzLmZpbGVMaXN0KSB7XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgSlNPTi5zdHJpbmdpZnkodGhpcy5wcm9wcy5maWxlTGlzdCkgIT09XHJcbiAgICAgICAgICBKU09OLnN0cmluZ2lmeSh0aGlzLnN0YXRlLmZpbGVMaXN0U3RvcmUpXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICB0aGlzLmNvbnZlcnRGaWxlTGlzdCh0aGlzLnByb3BzLmZpbGVMaXN0KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGdldEZpbGVMaXN0KCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5zdGF0ZS5maWxlTGlzdDtcclxuICAgIH1cclxuICAgIHNldEZpbGVMaXN0KGZpbGVMaXN0OiBBcnJheTxPYmplY3Q+KSB7XHJcbiAgICAgIHRoaXMuY29udmVydEZpbGVMaXN0KGZpbGVMaXN0KTtcclxuICAgIH1cclxuICAgIGFzeW5jIGJlZm9yZVVwbG9hZChmaWxlLCBvZmlsZUxpc3QpIHtcclxuICAgICAgbGV0IHtcclxuICAgICAgICBtYXhTaXplID0gMTAwLFxyXG4gICAgICAgIGFsbG93RmlsZVN1ZmZpeCxcclxuICAgICAgICBjaGVja1NhbWVGaWxlID0gdHJ1ZSxcclxuICAgICAgICBtYXhDb3VudCxcclxuICAgICAgICBzaG93VXBsb2FkTGlzdCxcclxuICAgICAgICBmaWxlTGlzdDogcHJvcHNMaXN0LFxyXG4gICAgICAgIG9uTGlzdENoYW5nZSxcclxuICAgICAgfSA9IHRoaXMucHJvcHM7XHJcbiAgICAgIGxldCB7IGZpbGVMaXN0LCBmaWxlTGlzdFN0b3JlIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgICBsZXQgc2l6ZTogbnVtYmVyO1xyXG4gICAgICBpZiAoYWxsb3dGaWxlU3VmZml4ICYmICF0aGlzLmNoZWNrRmlsZVR5cGUoZmlsZSkpIHtcclxuICAgICAgICBtZXNzYWdlLmVycm9yKFxyXG4gICAgICAgICAgYCR7ZmlsZS5uYW1lfeaWh+S7tuexu+Wei+S4jeWFgeiuuOS4iuS8oO+8jOivt+S4iuS8oOWQjue8gOS4uiR7YWxsb3dGaWxlU3VmZml4feeahOexu+Wei+aWh+S7tu+8gWBcclxuICAgICAgICApO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAobWF4U2l6ZSAhPT0gZmFsc2UpIHtcclxuICAgICAgICBpZiAobWF4U2l6ZSA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgbWF4U2l6ZSA9IDEwMDtcclxuICAgICAgICB9XHJcbiAgICAgICAgc2l6ZSA9IG1heFNpemUgKiAxMDI0ICogMTAyNDtcclxuICAgICAgICBpZiAoc2l6ZSA8IGZpbGUuc2l6ZSkge1xyXG4gICAgICAgICAgbWVzc2FnZS5lcnJvcihgJHtmaWxlLm5hbWV95paH5Lu25aSn5bCP6LaF6L+HJHttYXhTaXplfU3vvIzor7fph43mlrDkuIrkvKDvvIFgKTtcclxuICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgbGV0IGZpbGVOYW1lcyA9IFtdO1xyXG4gICAgICBpZiAoY2hlY2tTYW1lRmlsZSkge1xyXG4gICAgICAgIGNvbnN0IGNoZWNrTGlzdCA9IHRoaXMucHJvcHMuZmlsZUxpc3QgPyBmaWxlTGlzdFN0b3JlIDogZmlsZUxpc3Q7XHJcbiAgICAgICAgY2hlY2tMaXN0Lm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICAgICAgZmlsZU5hbWVzLnB1c2goaXRlbS5uYW1lIHx8IGl0ZW0uZmlsZU5hbWUpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGlmIChmaWxlTmFtZXMuaW5kZXhPZihmaWxlLm5hbWUpID4gLTEgJiYgc2hvd1VwbG9hZExpc3QgIT09IGZhbHNlKSB7XHJcbiAgICAgICAgICBtZXNzYWdlLmVycm9yKGDmlofku7Yke2ZpbGUubmFtZX3lt7LlnKjkuIrkvKDliJfooajkuK3vvIzor7fph43mlrDpgInmi6nmlofku7bvvIFgKTtcclxuICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICh0aGlzLnByb3BzLmJlZm9yZVVwbG9hZCkge1xyXG4gICAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMucHJvcHMuYmVmb3JlVXBsb2FkKGZpbGUsIG9maWxlTGlzdCk7XHJcbiAgICAgICAgaWYgKHJlcyA9PT0gZmFsc2UpIHtcclxuICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgbmV3TGlzdCA9IFsuLi5maWxlTGlzdF07XHJcbiAgICAgIG9maWxlTGlzdC5tYXAoYXN5bmMgKGl0ZW0pID0+IHtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICAhKFxyXG4gICAgICAgICAgICAoYWxsb3dGaWxlU3VmZml4ICYmICF0aGlzLmNoZWNrRmlsZVR5cGUoaXRlbSkpIHx8XHJcbiAgICAgICAgICAgIHNpemUgPCBpdGVtLnNpemUgfHxcclxuICAgICAgICAgICAgKGNoZWNrU2FtZUZpbGUgJiYgZmlsZU5hbWVzLmluZGV4T2YoaXRlbS5uYW1lKSA+IC0xKVxyXG4gICAgICAgICAgKVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgY29uc3QgdGVtcCA9IHtcclxuICAgICAgICAgICAgZmlsZU5hbWU6IGl0ZW0ubmFtZSxcclxuICAgICAgICAgICAgcGVyY2VudDogMCxcclxuICAgICAgICAgICAgc3RhdHVzOiBcInVwbG9hZGluZ1wiLFxyXG4gICAgICAgICAgICB1aWQ6IGl0ZW0udWlkLFxyXG4gICAgICAgICAgICBuYW1lOiBpdGVtLm5hbWUsXHJcbiAgICAgICAgICAgIHR5cGU6IGl0ZW0udHlwZSxcclxuICAgICAgICAgICAgc2l6ZTogaXRlbS5zaXplLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICAgIG5ld0xpc3QucHVzaCh0ZW1wKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgaWYgKG1heENvdW50ICYmIG5ld0xpc3QubGVuZ3RoID4gbWF4Q291bnQpIHtcclxuICAgICAgICBsZXQgbGVuZ3RoID0gbmV3TGlzdC5sZW5ndGggLSBtYXhDb3VudDtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICBuZXdMaXN0LnNwbGljZSgwLCAxKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5zZXRTdGF0ZSh7IGZpbGVMaXN0OiBuZXdMaXN0IH0sKCk9PntcclxuICAgICAgICBvbkxpc3RDaGFuZ2UgJiYgb25MaXN0Q2hhbmdlKG5ld0xpc3QpO1xyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy51cGxvYWRTaXplID0gb2ZpbGVMaXN0Lmxlbmd0aDtcclxuICAgIH1cclxuICAgIGNoZWNrRmlsZVR5cGUoZmlsZSkge1xyXG4gICAgICBjb25zdCB7IGFsbG93RmlsZVN1ZmZpeCB9ID0gdGhpcy5wcm9wcztcclxuICAgICAgY29uc3QgbmFtZXMgPSBmaWxlLm5hbWUuc3BsaXQoXCIuXCIpO1xyXG4gICAgICBjb25zdCBzdWZmaXggPSBuYW1lc1tuYW1lcy5sZW5ndGggLSAxXTtcclxuICAgICAgaWYgKGFsbG93RmlsZVN1ZmZpeC5pbmRleE9mKHN1ZmZpeCkgPiAtMSkge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIG9uUHJvY2Vzcyh7IHBlcmNlbnQsIGZpbGUgfTogYW55KSB7XHJcbiAgICAgIGNvbnN0IHsgZmlsZUxpc3QgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICAgIGNvbnN0IHsgb25MaXN0Q2hhbmdlIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgICBjb25zdCBuZXdMaXN0OiBhbnkgPSBbXTtcclxuICAgICAgZmlsZUxpc3QubWFwKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICBjb25zdCBuZXdGaWxlID0geyAuLi5pdGVtIH07XHJcbiAgICAgICAgaWYgKGZpbGUudWlkID09IGl0ZW0udWlkKSB7XHJcbiAgICAgICAgICBuZXdGaWxlLnBlcmNlbnQgPSBwZXJjZW50O1xyXG4gICAgICAgIH1cclxuICAgICAgICBuZXdMaXN0LnB1c2gobmV3RmlsZSk7XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICBmaWxlTGlzdDogbmV3TGlzdCxcclxuICAgICAgfSwoKT0+e1xyXG4gICAgICAgIG9uTGlzdENoYW5nZSAmJiBvbkxpc3RDaGFuZ2UoZmlsZUxpc3QpO1xyXG4gICAgICB9KTtcclxuICAgXHJcbiAgICB9XHJcbiAgICBhc3luYyBvbkNvbXBsZXRlKGZpbGVzKSB7XHJcbiAgICAgIHRoaXMudXBsb2FkSW5nU2l6ZSA9IDA7XHJcbiAgICAgIHRoaXMudXBsb2FkU2l6ZSA9IDA7XHJcbiAgICAgIHRoaXMudXBsb2FkSW5nTGlzdCA9IFtdO1xyXG4gICAgICBjb25zdCB7IGZpbGVMaXN0IH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgICBjb25zdCB7IG5ld1ZlcnNpb24gPSB0cnVlLCByZXF1ZXN0Q29uZmlnID0ge30gfSA9IHRoaXMucHJvcHM7XHJcbiAgICAgIGNvbnN0IG5ld0xpc3Q6IGFueSA9IFtdO1xyXG4gICAgICBmaWxlTGlzdC5tYXAoYXN5bmMgKGl0ZW06IGFueSwgaW5kZXgpID0+IHtcclxuICAgICAgICBjb25zdCBuZXdGaWxlID0geyAuLi5pdGVtIH07XHJcbiAgICAgICAgZmlsZXMubWFwKGFzeW5jIChmaWxlKSA9PiB7XHJcbiAgICAgICAgICBpZiAoZmlsZS5maWxlLnVpZCA9PSBpdGVtLnVpZCkge1xyXG4gICAgICAgICAgICBuZXdGaWxlLnN0YXR1cyA9IGZpbGUuc3RhdHVzID09IFwic3VjY2Vzc1wiID8gXCJkb25lXCIgOiBmaWxlLnN0YXR1cztcclxuICAgICAgICAgICAgbmV3RmlsZS5maWxlSWQgPSBmaWxlLmZpbGVJZDtcclxuICAgICAgICAgICAgbmV3RmlsZS51cmwgPSBmaWxlLnVybDtcclxuICAgICAgICAgICAgaWYgKCFuZXdWZXJzaW9uKSB7XHJcbiAgICAgICAgICAgICAgbGV0IHVybCA9IGAvanF1aWNrLXJlc291cmNlL29zcy9lbmRwb2ludC9kb3dubG9hZC1maWxlcz9hdHRhY2hJZD0ke1xyXG4gICAgICAgICAgICAgICAgZmlsZS5maWxlSWRcclxuICAgICAgICAgICAgICB9Jl90cGs9JHt3aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJ0b2tlblwiKX1gO1xyXG4gICAgICAgICAgICAgIG5ld0ZpbGUudXJsID0gcmVxdWVzdENvbmZpZy5wcmVmaXhcclxuICAgICAgICAgICAgICAgID8gcmVxdWVzdENvbmZpZy5wcmVmaXggKyB1cmxcclxuICAgICAgICAgICAgICAgIDogXCIvYXBpXCIgKyB1cmw7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICBuZXdMaXN0LnB1c2gobmV3RmlsZSk7XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICBmaWxlTGlzdDogWy4uLm5ld0xpc3RdLFxyXG4gICAgICB9LCgpPT57XHJcbiAgICAgICAgY29uc3QgeyBvbkxpc3RDaGFuZ2UgfSA9IHRoaXMucHJvcHM7XHJcbiAgICAgICAgb25MaXN0Q2hhbmdlICYmIG9uTGlzdENoYW5nZShuZXdMaXN0KTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBjdXN0b21SZXF1ZXN0ID0gYXN5bmMgKG9wdGlvbnMpID0+IHtcclxuICAgICAgY29uc3QgZmlsZSA9IG9wdGlvbnMuZmlsZTtcclxuICAgICAgY29uc3Qge1xyXG4gICAgICAgIG9uQ29tcGxldGUsXHJcbiAgICAgICAgb25Qcm9jZXNzLFxyXG4gICAgICAgIHNsaWNlU2l6ZSxcclxuICAgICAgICBuZXdWZXJzaW9uID0gdHJ1ZSxcclxuICAgICAgfSA9IHRoaXMucHJvcHM7XHJcbiAgICAgIGNvbnN0IG9uUHJvZ3Jlc3MgPSAodG90YWxQcm9ncmVzczogYW55KSA9PiB7XHJcbiAgICAgICAgb3B0aW9ucy5vblByb2dyZXNzKHsgcGVyY2VudDogdG90YWxQcm9ncmVzcyB9LCBmaWxlKTtcclxuICAgICAgICB0aGlzLm9uUHJvY2Vzcyh7IHBlcmNlbnQ6IHRvdGFsUHJvZ3Jlc3MsIGZpbGU6IGZpbGUgfSk7XHJcbiAgICAgICAgb25Qcm9jZXNzICYmIG9uUHJvY2Vzcyh7IHBlcmNlbnQ6IHRvdGFsUHJvZ3Jlc3MsIGZpbGU6IGZpbGUgfSk7XHJcbiAgICAgIH07XHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgY29uc3QgcmVzOiBhbnkgPSBhd2FpdCB1cGxvYWQoXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGZpbGU6IGZpbGUsXHJcbiAgICAgICAgICAgIG9uUHJvZ3Jlc3M6IG9uUHJvZ3Jlc3MsXHJcbiAgICAgICAgICAgIHBhcnRTaXplOiBzbGljZVNpemUsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgdGhpcy5wcm9wcy5yZXF1ZXN0Q29uZmlnXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLnVwbG9hZEluZ1NpemUgPSB0aGlzLnVwbG9hZEluZ1NpemUgKyAxO1xyXG4gICAgICAgIGxldCBmaWxlSWQgPSBudWxsO1xyXG4gICAgICAgIGxldCBJbWdSZXMgPSBudWxsO1xyXG4gICAgICAgIGlmIChyZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgIGZpbGVJZCA9IHJlcy5kYXRhLmF0dGFjaElkO1xyXG4gICAgICAgICAgb3B0aW9ucy5vblN1Y2Nlc3MoKTtcclxuICAgICAgICAgIGlmICh0aGlzLnByb3BzLmxpc3RUeXBlID09IFwicGljdHVyZS1jYXJkXCIgJiYgbmV3VmVyc2lvbikge1xyXG4gICAgICAgICAgICBJbWdSZXMgPSBhd2FpdCBwcmV2aWV3SW1hZ2UoZmlsZUlkLCB0aGlzLnByb3BzLnJlcXVlc3RDb25maWcpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBvcHRpb25zLm9uRXJyb3IoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy51cGxvYWRJbmdMaXN0LnB1c2goe1xyXG4gICAgICAgICAgZmlsZTogb3B0aW9ucy5maWxlLFxyXG4gICAgICAgICAgZmlsZUlkOiBmaWxlSWQsXHJcbiAgICAgICAgICBzdGF0dXM6IHJlcy5jb2RlID09IDIwMCA/IFwic3VjY2Vzc1wiIDogXCJlcnJvclwiLFxyXG4gICAgICAgICAgdXJsOiBJbWdSZXMgPyBJbWdSZXMuZGF0YSA6IG51bGwsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coJ2N1c3RvbVJlcXVlc3QtdXBsb2FkU2l6ZScsdGhpcy51cGxvYWRTaXplKVxyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdjdXN0b21SZXF1ZXN0LXVwbG9hZEluZ1NpemUnLHRoaXMudXBsb2FkSW5nU2l6ZSlcclxuICAgICAgICAvLyBpZiAodGhpcy51cGxvYWRTaXplID09IHRoaXMudXBsb2FkSW5nU2l6ZSkge1xyXG4gICAgICAgICAgdGhpcy5vbkNvbXBsZXRlKHRoaXMudXBsb2FkSW5nTGlzdCk7XHJcbiAgICAgICAgLy8gfVxyXG4gICAgICAgIG9uQ29tcGxldGUgJiZcclxuICAgICAgICAgIG9uQ29tcGxldGUoe1xyXG4gICAgICAgICAgICBmaWxlOiBvcHRpb25zLmZpbGUsXHJcbiAgICAgICAgICAgIGZpbGVJZDogZmlsZUlkLFxyXG4gICAgICAgICAgICBzdGF0dXM6IHJlcy5jb2RlID09IDIwMCA/IFwic3VjY2Vzc1wiIDogXCJlcnJvclwiLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAvLyBpZiAodGhpcy51cGxvYWRTaXplID09IHRoaXMudXBsb2FkSW5nU2l6ZSkge1xyXG4gICAgICAgICAgdGhpcy5vbkNvbXBsZXRlKHRoaXMudXBsb2FkSW5nTGlzdCk7XHJcbiAgICAgICAgICBvcHRpb25zLm9uRXJyb3IoKTtcclxuICAgICAgICAvLyB9XHJcbiAgICAgICBcclxuICAgICAgICBvbkNvbXBsZXRlICYmXHJcbiAgICAgICAgICBvbkNvbXBsZXRlKHsgZmlsZTogb3B0aW9ucy5maWxlLCBmaWxlSWQ6IFwiXCIsIHN0YXR1czogXCJlcnJvclwiIH0pO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gICAgb25EZWxldGUoZmlsZSkge1xyXG4gICAgICBjb25zdCB7IGZpbGVMaXN0IH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgICBjb25zdCB7IG9uTGlzdENoYW5nZSB9ID0gdGhpcy5wcm9wcztcclxuICAgICAgY29uc3QgbmV3TGlzdDogYW55ID0gW107XHJcbiAgICAgIGZpbGVMaXN0Lm1hcCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgLy/pgJrov4fmlofku7blkI3liKTmlq3vvIzkuIrkvKDmmK/mlofku7blkI3mmK/llK/kuIDnmoRcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICBpdGVtLm5hbWUgIT09IGZpbGUubmFtZSB8fFxyXG4gICAgICAgICAgaXRlbS5maWxlSWQgIT09IGZpbGUuZmlsZUlkIHx8XHJcbiAgICAgICAgICBpdGVtLnVpZCAhPT0gZmlsZS51aWRcclxuICAgICAgICApIHtcclxuICAgICAgICAgIG5ld0xpc3QucHVzaChpdGVtKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICBmaWxlTGlzdDogbmV3TGlzdCxcclxuICAgICAgfSwoKT0+e1xyXG4gICAgICAgIG9uTGlzdENoYW5nZSAmJiBvbkxpc3RDaGFuZ2UobmV3TGlzdCk7XHJcbiAgICAgIH0pO1xyXG4gICAgIFxyXG4gICAgfVxyXG4gICAgcmVuZGVyKCk6IFJlYWN0LlJlYWN0Tm9kZSB7XHJcbiAgICAgIGxldCB7XHJcbiAgICAgICAgZmlsZUxpc3QsXHJcbiAgICAgICAgZmlsZUNhcmQsXHJcbiAgICAgICAgc2hvd1VwbG9hZExpc3QgPSB7XHJcbiAgICAgICAgICBzaG93RG93bmxvYWRJY29uOiB0cnVlLFxyXG4gICAgICAgICAgc2hvd1ByZXZpZXdJY29uOiBmYWxzZSxcclxuICAgICAgICAgIHNob3dSZW1vdmVJY29uOiB0cnVlLFxyXG4gICAgICAgICAgZG93bmxvYWRJY29uOiBudWxsLFxyXG4gICAgICAgICAgcmVtb3ZlSWNvbjogbnVsbCxcclxuICAgICAgICAgIHByZXZpZXdJY29uOiBudWxsLFxyXG4gICAgICAgIH0gYXMgYW55LFxyXG4gICAgICAgIHJlcXVlc3RDb25maWcgPSB7fSxcclxuICAgICAgfSA9IHRoaXMucHJvcHM7XHJcbiAgICAgIGNvbnN0IG5ld3Byb3BzID0gb21pdCh0aGlzLnByb3BzLCBbXHJcbiAgICAgICAgXCJzbGljZVNpemVcIixcclxuICAgICAgICBcIm1heFNpemVcIixcclxuICAgICAgICBcIm9uQ29tcGxldGVcIixcclxuICAgICAgICBcIm9uUHJvY2Vzc1wiLFxyXG4gICAgICAgIFwiYWxsb3dGaWxlU3VmZml4XCIsXHJcbiAgICAgICAgXCJ1c2VEZWZhdWx0TGlzdFwiLFxyXG4gICAgICAgIFwiZmlsZUNhcmRcIixcclxuICAgICAgICBcIm9uTGlzdENoYW5nZVwiLFxyXG4gICAgICAgIFwibmV3VmVyc2lvblwiLFxyXG4gICAgICAgIFwicmVxdWVzdENvbmZpZ1wiLFxyXG4gICAgICBdKTtcclxuICAgICAgbGV0IGRlZmF1bHRQcm9wcyA9IHtcclxuICAgICAgICBjdXN0b21SZXF1ZXN0OiB0aGlzLmN1c3RvbVJlcXVlc3QuYmluZCh0aGlzKSxcclxuICAgICAgICBtdWx0aXBsZTogdHJ1ZSxcclxuICAgICAgfSBhcyBJVXBsb2FkUHJvcHM7XHJcbiAgICAgIGlmIChmaWxlQ2FyZCkge1xyXG4gICAgICAgIGRlZmF1bHRQcm9wcyA9IHtcclxuICAgICAgICAgIC4uLmRlZmF1bHRQcm9wcyxcclxuICAgICAgICAgIGl0ZW1SZW5kZXI6IChvcmlnaW5Ob2RlLCBmaWxlOiBhbnksIGN1cnJGaWxlTGlzdCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBuYW1lID0gZmlsZS5uYW1lIHx8IGZpbGUuZmlsZU5hbWU7XHJcbiAgICAgICAgICAgIGNvbnN0IG5hbWVzID0gbmFtZT8uc3BsaXQoXCIuXCIpO1xyXG4gICAgICAgICAgICBjb25zdCBzdWZmaXggPSBuYW1lcyA/IG5hbWVzW25hbWVzLmxlbmd0aCAtIDFdIDogXCJcIjtcclxuICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiZmlsZS1pdGVtXCIpfT5cclxuICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbHMoZ2V0TGVzcyhzdHlsZXMsIFwiY29udGVudFwiKSwge1xyXG4gICAgICAgICAgICAgICAgICAgIFtnZXRMZXNzKHN0eWxlcywgXCJjb250ZW50X2Vycm9yXCIpXTogZmlsZS5zdGF0dXMgPT0gXCJlcnJvclwiLFxyXG4gICAgICAgICAgICAgICAgICB9KX1cclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcIm1hcmstcGljdHVyZVwiKX0+XHJcbiAgICAgICAgICAgICAgICAgICAgPEZpbGVJY29uIHN1ZmZpeD17c3VmZml4fSBmaWxlSWQ9e2ZpbGUuZmlsZUlkfSAvPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcIm5hbWVcIil9PlxyXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlLm5hbWUgfHwgZmlsZS5maWxlTmFtZX1cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJpY29uXCIpfT5cclxuICAgICAgICAgICAgICAgICAgICB7c2hvd1VwbG9hZExpc3Quc2hvd1ByZXZpZXdJY29uICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAoZmlsZS5zdGF0dXMgPT0gXCJkb25lXCJ8fCBmaWxlLmZpbGVJZCkgJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMub25QcmV2aWV3KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHMub25QcmV2aWV3KGZpbGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlld0RvY3VtZW50KGZpbGUuZmlsZUlkLCByZXF1ZXN0Q29uZmlnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IGN1cnNvcjogXCJwb2ludGVyXCIgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHtzaG93VXBsb2FkTGlzdC5kb3dubG9hZEljb24gPyAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93VXBsb2FkTGlzdC5kb3dubG9hZEljb25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEV5ZU91dGxpbmVkIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgIHtzaG93VXBsb2FkTGlzdC5zaG93RG93bmxvYWRJY29uICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAoZmlsZS5zdGF0dXMgPT0gXCJkb25lXCJ8fCBmaWxlLmZpbGVJZCkgJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMub25Eb3dubG9hZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLm9uRG93bmxvYWQoZmlsZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3dubG9hZChmaWxlLmZpbGVJZCwgdHJ1ZSwgcmVxdWVzdENvbmZpZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17eyBjdXJzb3I6IFwicG9pbnRlclwiIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICB7c2hvd1VwbG9hZExpc3QuZG93bmxvYWRJY29uID8gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd1VwbG9hZExpc3QuZG93bmxvYWRJY29uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxEb3dubG9hZE91dGxpbmVkIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgIHtzaG93VXBsb2FkTGlzdC5zaG93UmVtb3ZlSWNvbiAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5vblJlbW92ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5vblJlbW92ZShmaWxlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vbkRlbGV0ZShmaWxlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IGN1cnNvcjogXCJwb2ludGVyXCIgfX1cclxuICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3Nob3dVcGxvYWRMaXN0LmRvd25sb2FkSWNvbiA/IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93VXBsb2FkTGlzdC5kb3dubG9hZEljb25cclxuICAgICAgICAgICAgICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8RGVsZXRlT3V0bGluZWQgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7ZmlsZS5zdGF0dXMgPT0gXCJ1cGxvYWRpbmdcIiAmJiAoXHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJwcm9jZXNzXCIpfT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcInBlcmNlbnRcIil9XHJcbiAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17eyB3aWR0aDogZmlsZS5wZXJjZW50ICsgXCIlXCIgfX1cclxuICAgICAgICAgICAgICAgICAgICA+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBkZWZhdWx0UHJvcHMgPSB7XHJcbiAgICAgICAgICAuLi5kZWZhdWx0UHJvcHMsXHJcbiAgICAgICAgICBvbkRvd25sb2FkOiAoZmlsZTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnByb3BzLm9uRG93bmxvYWQpIHtcclxuICAgICAgICAgICAgICB0aGlzLnByb3BzLm9uRG93bmxvYWQoZmlsZSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgZG93bmxvYWQoZmlsZS5maWxlSWQsIHRydWUsIHJlcXVlc3RDb25maWcpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgb25SZW1vdmU6IChmaWxlKSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnByb3BzLm9uUmVtb3ZlKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5wcm9wcy5vblJlbW92ZShmaWxlKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLm9uRGVsZXRlKGZpbGUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgb25QcmV2aWV3OiAoZmlsZTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnByb3BzLm9uUHJldmlldykge1xyXG4gICAgICAgICAgICAgIHRoaXMucHJvcHMub25QcmV2aWV3KGZpbGUpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIGlmIChmaWxlPy5maWxlSWQpIHtcclxuICAgICAgICAgICAgICAgIHByZXZpZXdEb2N1bWVudChmaWxlLmZpbGVJZCwgcmVxdWVzdENvbmZpZyk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgc2hvd1VwbG9hZExpc3Q6IHsgLi4uc2hvd1VwbG9hZExpc3QgfSxcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiAoXHJcbiAgICAgICAgPD5cclxuICAgICAgICAgIDxDb21wb25lbnRcclxuICAgICAgICAgICAgey4uLmRlZmF1bHRQcm9wc31cclxuICAgICAgICAgICAgey4uLm5ld3Byb3BzfVxyXG4gICAgICAgICAgICBiZWZvcmVVcGxvYWQ9e3RoaXMuYmVmb3JlVXBsb2FkLmJpbmQodGhpcyl9XHJcbiAgICAgICAgICAgIGZpbGVMaXN0PXt0aGlzLnN0YXRlLmZpbGVMaXN0fVxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8Lz5cclxuICAgICAgKTtcclxuICAgIH1cclxuICB9O1xyXG59O1xyXG5cclxuY29uc3QgTnNjVXBsb2FkOiBhbnkgPSB3aXRoQ3VzdG9tVXBsb2FkKFVwbG9hZCk7XHJcbi8vIC8vIOS9v+eUqCB3aXRoQ3VzdG9tVXBsb2FkIOWwgeijhSBVcGxvYWQuRHJhZ2dlciDnu4Tku7ZcclxuY29uc3QgTnNjVXBsb2FkRHJhZ2dlciA9IHdpdGhDdXN0b21VcGxvYWQoVXBsb2FkLkRyYWdnZXIpO1xyXG5Oc2NVcGxvYWQuRHJhZ2dlciA9IE5zY1VwbG9hZERyYWdnZXI7XHJcbmV4cG9ydCBkZWZhdWx0IE5zY1VwbG9hZDtcclxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLE9BQU8sS0FBS0EsS0FBSyxNQUFNLE9B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
447
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsImZpbGUiLCJtZXNzYWdlIiwib21pdCIsImdldExlc3MiLCJzdHlsZXMiLCJjbHMiLCJGaWxlSWNvbiIsIkRlbGV0ZU91dGxpbmVkIiwiRG93bmxvYWRPdXRsaW5lZCIsIkV5ZU91dGxpbmVkIiwidXBsb2FkIiwiZG93bmxvYWQiLCJwcmV2aWV3RG9jdW1lbnQiLCJwcmV2aWV3SW1hZ2UiLCJ3aXRoQ3VzdG9tVXBsb2FkIiwiQ29tcG9uZW50IiwiUHVyZUNvbXBvbmVudCIsImNvbnN0cnVjdG9yIiwiYXJndW1lbnRzIiwiX2RlZmluZVByb3BlcnR5IiwiZmlsZUxpc3QiLCJ2aWV3SWQiLCJmaWxlTGlzdFN0b3JlIiwiZmlsZU5hbWVzIiwib3B0aW9ucyIsIm9uQ29tcGxldGUiLCJvblByb2Nlc3MiLCJzbGljZVNpemUiLCJuZXdWZXJzaW9uIiwicHJvcHMiLCJvblByb2dyZXNzIiwidG90YWxQcm9ncmVzcyIsInBlcmNlbnQiLCJyZXMiLCJwYXJ0U2l6ZSIsInJlcXVlc3RDb25maWciLCJ1cGxvYWRJbmdTaXplIiwiZmlsZUlkIiwiSW1nUmVzIiwiY29kZSIsImRhdGEiLCJhdHRhY2hJZCIsIm9uU3VjY2VzcyIsImxpc3RUeXBlIiwib25FcnJvciIsInVwbG9hZEluZ0xpc3QiLCJwdXNoIiwic3RhdHVzIiwidXJsIiwiZSIsImNvbXBvbmVudERpZE1vdW50IiwiY29udmVydEZpbGVMaXN0IiwibGlzdCIsIm5ld0ZpbGVMaXN0Iiwib2xkTGlzdCIsInNldFN0YXRlIiwiaSIsImxlbmd0aCIsIml0ZW0iLCJ0ZW1wIiwiX29iamVjdFNwcmVhZCIsIm5hbWUiLCJmaWxlTmFtZSIsInR5cGUiLCJzaXplIiwiY29tcG9uZW50RGlkVXBkYXRlIiwicHJlUHJvcHMiLCJwcmVTdGF0ZSIsIkpTT04iLCJzdHJpbmdpZnkiLCJzdGF0ZSIsImdldEZpbGVMaXN0Iiwic2V0RmlsZUxpc3QiLCJiZWZvcmVVcGxvYWQiLCJvZmlsZUxpc3QiLCJtYXhTaXplIiwiYWxsb3dGaWxlU3VmZml4IiwiY2hlY2tTYW1lRmlsZSIsIm1heENvdW50Iiwic2hvd1VwbG9hZExpc3QiLCJwcm9wc0xpc3QiLCJvbkxpc3RDaGFuZ2UiLCJjaGVja0ZpbGVUeXBlIiwiZXJyb3IiLCJjb25jYXQiLCJjaGVja0xpc3QiLCJtYXAiLCJpbmRleE9mIiwibmV3TGlzdCIsInVpZCIsInNwbGljZSIsInVwbG9hZFNpemUiLCJuYW1lcyIsInNwbGl0Iiwic3VmZml4IiwidG9Mb3dlckNhc2UiLCJ0b1VwZXJyY2FzZSIsIl9yZWYiLCJuZXdGaWxlIiwiZmlsZXMiLCJpbmRleCIsIndpbmRvdyIsImxvY2FsU3RvcmFnZSIsImdldEl0ZW0iLCJwcmVmaXgiLCJvbkRlbGV0ZSIsInJlbmRlciIsImZpbGVDYXJkIiwic2hvd0Rvd25sb2FkSWNvbiIsInNob3dQcmV2aWV3SWNvbiIsInNob3dSZW1vdmVJY29uIiwiZG93bmxvYWRJY29uIiwicmVtb3ZlSWNvbiIsInByZXZpZXdJY29uIiwibmV3cHJvcHMiLCJkZWZhdWx0UHJvcHMiLCJjdXN0b21SZXF1ZXN0IiwiYmluZCIsIm11bHRpcGxlIiwiaXRlbVJlbmRlciIsIm9yaWdpbk5vZGUiLCJjdXJyRmlsZUxpc3QiLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NOYW1lIiwib25DbGljayIsIm9uUHJldmlldyIsInN0eWxlIiwiY3Vyc29yIiwib25Eb3dubG9hZCIsIm9uUmVtb3ZlIiwid2lkdGgiLCJGcmFnbWVudCIsIl9leHRlbmRzIiwiTnNjVXBsb2FkIiwiX1VwbG9hZCIsIk5zY1VwbG9hZERyYWdnZXIiLCJEcmFnZ2VyIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYmFzZS91cGxvYWQvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyBVcGxvYWQsIFVwbG9hZFByb3BzIH0gZnJvbSBcImFudGRcIjtcclxuaW1wb3J0IGZpbGUgZnJvbSBcIm5zYy1maWxlXCI7XHJcbmltcG9ydCBtZXNzYWdlIGZyb20gXCIuLi9tZXNzYWdlXCI7XHJcbmltcG9ydCBvbWl0IGZyb20gXCJvbWl0LmpzXCI7XHJcbmltcG9ydCB7IGdldExlc3MgfSBmcm9tIFwiLi4vLi4vdXRpbHNcIjtcclxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9pbmRleC5sZXNzXCI7XHJcbmltcG9ydCBjbHMgZnJvbSBcImNsYXNzbmFtZXNcIjtcclxuaW1wb3J0IEZpbGVJY29uIGZyb20gXCIuLi9jb21tb24vRmlsZUljb25cIjtcclxuaW1wb3J0IHtcclxuICBEZWxldGVPdXRsaW5lZCxcclxuICBEb3dubG9hZE91dGxpbmVkLFxyXG4gIEV5ZU91dGxpbmVkLFxyXG59IGZyb20gXCJAYW50LWRlc2lnbi9pY29uc1wiO1xyXG5jb25zdCB7IHVwbG9hZCwgZG93bmxvYWQsIHByZXZpZXdEb2N1bWVudCwgcHJldmlld0ltYWdlIH0gPSBmaWxlO1xyXG5cclxuaW50ZXJmYWNlIElVcGxvYWRQcm9wcyBleHRlbmRzIFVwbG9hZFByb3BzIHtcclxuICBzbGljZVNpemU/OiBudW1iZXI7XHJcbiAgbWF4U2l6ZT86IG51bWJlciB8IGJvb2xlYW47XHJcbiAgb25Qcm9jZXNzPzogKHByb2Nlc3MpID0+IHZvaWQ7XHJcbiAgb25Db21wbGV0ZT86ICh7IGZpbGUsIGZpbGVJZCwgc3RhdHVzIH0pID0+IHZvaWQ7XHJcbiAgYWxsb3dGaWxlU3VmZml4PzogQXJyYXk8U3RyaW5nPjsgLy/lhYHorrjkuIrkvKDmianlsZXlkI0s5LiN5bimLlxyXG4gIHVzZURlZmF1bHRMaXN0PzogYm9vbGVhbjsgLy/mmK/lkKbkvb/nlKjpu5jorqTnmoRmaWxlTGlzdFxyXG4gIGZpbGVDYXJkPzogYm9vbGVhbjtcclxuICBvbkxpc3RDaGFuZ2U/OiBhbnk7XHJcbiAgY2hlY2tTYW1lRmlsZT86IGJvb2xlYW47XHJcbiAgcmVxdWVzdENvbmZpZz86IGFueTtcclxuICBuZXdWZXJzaW9uPzogYm9vbGVhbjtcclxuICBbcHJvcHNOYW1lOiBzdHJpbmddOiBhbnk7XHJcbn1cclxuY29uc3Qgd2l0aEN1c3RvbVVwbG9hZCA9IChDb21wb25lbnQpID0+IHtcclxuICAvLyDov5Tlm57kuIDkuKrnsbvnu4Tku7ZcclxuICByZXR1cm4gY2xhc3MgZXh0ZW5kcyBSZWFjdC5QdXJlQ29tcG9uZW50PElVcGxvYWRQcm9wcywgYW55PiB7XHJcbiAgICBzdGF0ZSA9IHtcclxuICAgICAgZmlsZUxpc3Q6IFtdLFxyXG4gICAgICB2aWV3SWQ6IFwiXCIsXHJcbiAgICAgIGZpbGVMaXN0U3RvcmU6IFtdLFxyXG4gICAgICBmaWxlTmFtZXM6IFtdLFxyXG4gICAgfTtcclxuICAgIHVwbG9hZEluZ1NpemUgPSAwO1xyXG4gICAgdXBsb2FkU2l6ZSA9IDA7XHJcbiAgICB1cGxvYWRJbmdMaXN0ID0gW107XHJcbiAgICBwcmV2aWV3VXJsID0ge307XHJcbiAgICBjb21wb25lbnREaWRNb3VudCgpIHtcclxuICAgICAgaWYgKHRoaXMucHJvcHMuZmlsZUxpc3QpIHtcclxuICAgICAgICB0aGlzLmNvbnZlcnRGaWxlTGlzdCh0aGlzLnByb3BzLmZpbGVMaXN0KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgY29udmVydEZpbGVMaXN0KGxpc3Q/OiBBcnJheTxPYmplY3Q+KSB7XHJcbiAgICAgIGNvbnN0IHsgZmlsZUxpc3QsIGxpc3RUeXBlIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgICBjb25zdCBuZXdGaWxlTGlzdCA9IFtdO1xyXG4gICAgICBsZXQgb2xkTGlzdCA9IGxpc3QgPyBsaXN0IDogZmlsZUxpc3Q7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgZmlsZUxpc3RTdG9yZTogWy4uLmZpbGVMaXN0XSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIGFzeW5jICgpID0+IHtcclxuICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgb2xkTGlzdC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBsZXQgaXRlbTogYW55ID0gb2xkTGlzdFtpXTtcclxuICAgICAgICAgICAgbGV0IHRlbXAgPSB7XHJcbiAgICAgICAgICAgICAgLi4uaXRlbSxcclxuICAgICAgICAgICAgICBzdGF0dXM6IGl0ZW0uc3RhdHVzLFxyXG4gICAgICAgICAgICAgIG5hbWU6IGl0ZW0ubmFtZSB8fCBpdGVtLmZpbGVOYW1lLFxyXG4gICAgICAgICAgICAgIHR5cGU6IGl0ZW0udHlwZSxcclxuICAgICAgICAgICAgICBzaXplOiBpdGVtLnNpemUsXHJcbiAgICAgICAgICAgICAgdXJsOiBpdGVtLnVybCxcclxuICAgICAgICAgICAgfSBhcyBhbnk7XHJcbiAgICAgICAgICAgIGlmIChsaXN0VHlwZSA9PSBcInBpY3R1cmUtY2FyZFwiICYmICFpdGVtLnVybCAmJiBpdGVtLmZpbGVJZCkge1xyXG4gICAgICAgICAgICAgIGxldCByZXM6IGFueSA9IGF3YWl0IHByZXZpZXdJbWFnZShcclxuICAgICAgICAgICAgICAgIGl0ZW0uZmlsZUlkLFxyXG4gICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5yZXF1ZXN0Q29uZmlnXHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICBpZiAocmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgICB0ZW1wLnVybCA9IHJlcy5kYXRhO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBuZXdGaWxlTGlzdC5wdXNoKHRlbXApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgIGZpbGVMaXN0OiBbLi4ubmV3RmlsZUxpc3RdLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgY29tcG9uZW50RGlkVXBkYXRlKHByZVByb3BzLCBwcmVTdGF0ZSkge1xyXG4gICAgICBpZiAodGhpcy5wcm9wcy5maWxlTGlzdCkge1xyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgIEpTT04uc3RyaW5naWZ5KHRoaXMucHJvcHMuZmlsZUxpc3QpICE9PVxyXG4gICAgICAgICAgSlNPTi5zdHJpbmdpZnkodGhpcy5zdGF0ZS5maWxlTGlzdFN0b3JlKVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgdGhpcy5jb252ZXJ0RmlsZUxpc3QodGhpcy5wcm9wcy5maWxlTGlzdCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBnZXRGaWxlTGlzdCgpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuc3RhdGUuZmlsZUxpc3Q7XHJcbiAgICB9XHJcbiAgICBzZXRGaWxlTGlzdChmaWxlTGlzdDogQXJyYXk8T2JqZWN0Pikge1xyXG4gICAgICB0aGlzLmNvbnZlcnRGaWxlTGlzdChmaWxlTGlzdCk7XHJcbiAgICB9XHJcbiAgICBhc3luYyBiZWZvcmVVcGxvYWQoZmlsZSwgb2ZpbGVMaXN0KSB7XHJcbiAgICAgIGxldCB7XHJcbiAgICAgICAgbWF4U2l6ZSA9IDEwMCxcclxuICAgICAgICBhbGxvd0ZpbGVTdWZmaXgsXHJcbiAgICAgICAgY2hlY2tTYW1lRmlsZSA9IHRydWUsXHJcbiAgICAgICAgbWF4Q291bnQsXHJcbiAgICAgICAgc2hvd1VwbG9hZExpc3QsXHJcbiAgICAgICAgZmlsZUxpc3Q6IHByb3BzTGlzdCxcclxuICAgICAgICBvbkxpc3RDaGFuZ2UsXHJcbiAgICAgIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgICBsZXQgeyBmaWxlTGlzdCwgZmlsZUxpc3RTdG9yZSB9ID0gdGhpcy5zdGF0ZTtcclxuICAgICAgbGV0IHNpemU6IG51bWJlcjtcclxuICAgICAgaWYgKGFsbG93RmlsZVN1ZmZpeCAmJiAhdGhpcy5jaGVja0ZpbGVUeXBlKGZpbGUpKSB7XHJcbiAgICAgICAgbWVzc2FnZS5lcnJvcihcclxuICAgICAgICAgIGAke2ZpbGUubmFtZX3mlofku7bnsbvlnovkuI3lhYHorrjkuIrkvKDvvIzor7fkuIrkvKDlkI7nvIDkuLoke2FsbG93RmlsZVN1ZmZpeH3nmoTnsbvlnovmlofku7bvvIFgXHJcbiAgICAgICAgKTtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKG1heFNpemUgIT09IGZhbHNlKSB7XHJcbiAgICAgICAgaWYgKG1heFNpemUgPT09IHRydWUpIHtcclxuICAgICAgICAgIG1heFNpemUgPSAxMDA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHNpemUgPSBtYXhTaXplICogMTAyNCAqIDEwMjQ7XHJcbiAgICAgICAgaWYgKHNpemUgPCBmaWxlLnNpemUpIHtcclxuICAgICAgICAgIG1lc3NhZ2UuZXJyb3IoYCR7ZmlsZS5uYW1lfeaWh+S7tuWkp+Wwj+i2hei/hyR7bWF4U2l6ZX1N77yM6K+36YeN5paw5LiK5Lyg77yBYCk7XHJcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGxldCBmaWxlTmFtZXMgPSBbXTtcclxuICAgICAgaWYgKGNoZWNrU2FtZUZpbGUpIHtcclxuICAgICAgICBjb25zdCBjaGVja0xpc3QgPSB0aGlzLnByb3BzLmZpbGVMaXN0ID8gZmlsZUxpc3RTdG9yZSA6IGZpbGVMaXN0O1xyXG4gICAgICAgIGNoZWNrTGlzdC5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgICAgIGZpbGVOYW1lcy5wdXNoKGl0ZW0ubmFtZSB8fCBpdGVtLmZpbGVOYW1lKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBpZiAoZmlsZU5hbWVzLmluZGV4T2YoZmlsZS5uYW1lKSA+IC0xICYmIHNob3dVcGxvYWRMaXN0ICE9PSBmYWxzZSkge1xyXG4gICAgICAgICAgbWVzc2FnZS5lcnJvcihg5paH5Lu2JHtmaWxlLm5hbWV95bey5Zyo5LiK5Lyg5YiX6KGo5Lit77yM6K+36YeN5paw6YCJ5oup5paH5Lu277yBYCk7XHJcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAodGhpcy5wcm9wcy5iZWZvcmVVcGxvYWQpIHtcclxuICAgICAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLnByb3BzLmJlZm9yZVVwbG9hZChmaWxlLCBvZmlsZUxpc3QpO1xyXG4gICAgICAgIGlmIChyZXMgPT09IGZhbHNlKSB7XHJcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IG5ld0xpc3QgPSBbLi4uZmlsZUxpc3RdO1xyXG4gICAgICBvZmlsZUxpc3QubWFwKGFzeW5jIChpdGVtKSA9PiB7XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgIShcclxuICAgICAgICAgICAgKGFsbG93RmlsZVN1ZmZpeCAmJiAhdGhpcy5jaGVja0ZpbGVUeXBlKGl0ZW0pKSB8fFxyXG4gICAgICAgICAgICBzaXplIDwgaXRlbS5zaXplIHx8XHJcbiAgICAgICAgICAgIChjaGVja1NhbWVGaWxlICYmIGZpbGVOYW1lcy5pbmRleE9mKGl0ZW0ubmFtZSkgPiAtMSlcclxuICAgICAgICAgIClcclxuICAgICAgICApIHtcclxuICAgICAgICAgIGNvbnN0IHRlbXAgPSB7XHJcbiAgICAgICAgICAgIGZpbGVOYW1lOiBpdGVtLm5hbWUsXHJcbiAgICAgICAgICAgIHBlcmNlbnQ6IDAsXHJcbiAgICAgICAgICAgIHN0YXR1czogXCJ1cGxvYWRpbmdcIixcclxuICAgICAgICAgICAgdWlkOiBpdGVtLnVpZCxcclxuICAgICAgICAgICAgbmFtZTogaXRlbS5uYW1lLFxyXG4gICAgICAgICAgICB0eXBlOiBpdGVtLnR5cGUsXHJcbiAgICAgICAgICAgIHNpemU6IGl0ZW0uc2l6ZSxcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgICBuZXdMaXN0LnB1c2godGVtcCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIGlmIChtYXhDb3VudCAmJiBuZXdMaXN0Lmxlbmd0aCA+IG1heENvdW50KSB7XHJcbiAgICAgICAgbGV0IGxlbmd0aCA9IG5ld0xpc3QubGVuZ3RoIC0gbWF4Q291bnQ7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgbmV3TGlzdC5zcGxpY2UoMCwgMSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoeyBmaWxlTGlzdDogbmV3TGlzdCB9LCAoKSA9PiB7XHJcbiAgICAgICAgb25MaXN0Q2hhbmdlICYmIG9uTGlzdENoYW5nZShuZXdMaXN0KTtcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMudXBsb2FkU2l6ZSA9IG9maWxlTGlzdC5sZW5ndGg7XHJcbiAgICB9XHJcbiAgICBjaGVja0ZpbGVUeXBlKGZpbGUpIHtcclxuICAgICAgY29uc3QgeyBhbGxvd0ZpbGVTdWZmaXggfSA9IHRoaXMucHJvcHM7XHJcbiAgICAgIGNvbnN0IG5hbWVzID0gZmlsZS5uYW1lLnNwbGl0KFwiLlwiKTtcclxuICAgICAgY29uc3Qgc3VmZml4ID0gbmFtZXNbbmFtZXMubGVuZ3RoIC0gMV07XHJcbiAgICAgIGlmIChhbGxvd0ZpbGVTdWZmaXguaW5kZXhPZihzdWZmaXgpID4gLTEgfHwgYWxsb3dGaWxlU3VmZml4LmluZGV4T2Yoc3VmZml4LnRvTG93ZXJDYXNlKCkpID4gLTEgfHwgYWxsb3dGaWxlU3VmZml4LmluZGV4T2Yoc3VmZml4LnRvVXBlcnJjYXNlKCkpID4gLTEpIHtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBvblByb2Nlc3MoeyBwZXJjZW50LCBmaWxlIH06IGFueSkge1xyXG4gICAgICBjb25zdCB7IGZpbGVMaXN0IH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgICBjb25zdCB7IG9uTGlzdENoYW5nZSB9ID0gdGhpcy5wcm9wcztcclxuICAgICAgY29uc3QgbmV3TGlzdDogYW55ID0gW107XHJcbiAgICAgIGZpbGVMaXN0Lm1hcCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgY29uc3QgbmV3RmlsZSA9IHsgLi4uaXRlbSB9O1xyXG4gICAgICAgIGlmIChmaWxlLnVpZCA9PSBpdGVtLnVpZCkge1xyXG4gICAgICAgICAgbmV3RmlsZS5wZXJjZW50ID0gcGVyY2VudDtcclxuICAgICAgICB9XHJcbiAgICAgICAgbmV3TGlzdC5wdXNoKG5ld0ZpbGUpO1xyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgZmlsZUxpc3Q6IG5ld0xpc3QsXHJcbiAgICAgIH0sICgpID0+IHtcclxuICAgICAgICBvbkxpc3RDaGFuZ2UgJiYgb25MaXN0Q2hhbmdlKGZpbGVMaXN0KTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgfVxyXG4gICAgYXN5bmMgb25Db21wbGV0ZShmaWxlcykge1xyXG4gICAgICB0aGlzLnVwbG9hZEluZ1NpemUgPSAwO1xyXG4gICAgICB0aGlzLnVwbG9hZFNpemUgPSAwO1xyXG4gICAgICB0aGlzLnVwbG9hZEluZ0xpc3QgPSBbXTtcclxuICAgICAgY29uc3QgeyBmaWxlTGlzdCB9ID0gdGhpcy5zdGF0ZTtcclxuICAgICAgY29uc3QgeyBuZXdWZXJzaW9uID0gdHJ1ZSwgcmVxdWVzdENvbmZpZyA9IHt9IH0gPSB0aGlzLnByb3BzO1xyXG4gICAgICBjb25zdCBuZXdMaXN0OiBhbnkgPSBbXTtcclxuICAgICAgZmlsZUxpc3QubWFwKGFzeW5jIChpdGVtOiBhbnksIGluZGV4KSA9PiB7XHJcbiAgICAgICAgY29uc3QgbmV3RmlsZSA9IHsgLi4uaXRlbSB9O1xyXG4gICAgICAgIGZpbGVzLm1hcChhc3luYyAoZmlsZSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGZpbGUuZmlsZS51aWQgPT0gaXRlbS51aWQpIHtcclxuICAgICAgICAgICAgbmV3RmlsZS5zdGF0dXMgPSBmaWxlLnN0YXR1cyA9PSBcInN1Y2Nlc3NcIiA/IFwiZG9uZVwiIDogZmlsZS5zdGF0dXM7XHJcbiAgICAgICAgICAgIG5ld0ZpbGUuZmlsZUlkID0gZmlsZS5maWxlSWQ7XHJcbiAgICAgICAgICAgIG5ld0ZpbGUudXJsID0gZmlsZS51cmw7XHJcbiAgICAgICAgICAgIGlmICghbmV3VmVyc2lvbikge1xyXG4gICAgICAgICAgICAgIGxldCB1cmwgPSBgL2pxdWljay1yZXNvdXJjZS9vc3MvZW5kcG9pbnQvZG93bmxvYWQtZmlsZXM/YXR0YWNoSWQ9JHtmaWxlLmZpbGVJZFxyXG4gICAgICAgICAgICAgICAgfSZfdHBrPSR7d2luZG93LmxvY2FsU3RvcmFnZS5nZXRJdGVtKFwidG9rZW5cIil9YDtcclxuICAgICAgICAgICAgICBuZXdGaWxlLnVybCA9IHJlcXVlc3RDb25maWcucHJlZml4XHJcbiAgICAgICAgICAgICAgICA/IHJlcXVlc3RDb25maWcucHJlZml4ICsgdXJsXHJcbiAgICAgICAgICAgICAgICA6IFwiL2FwaVwiICsgdXJsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgbmV3TGlzdC5wdXNoKG5ld0ZpbGUpO1xyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgZmlsZUxpc3Q6IFsuLi5uZXdMaXN0XSxcclxuICAgICAgfSwgKCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHsgb25MaXN0Q2hhbmdlIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgICAgIG9uTGlzdENoYW5nZSAmJiBvbkxpc3RDaGFuZ2UobmV3TGlzdCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgY3VzdG9tUmVxdWVzdCA9IGFzeW5jIChvcHRpb25zKSA9PiB7XHJcbiAgICAgIGNvbnN0IGZpbGUgPSBvcHRpb25zLmZpbGU7XHJcbiAgICAgIGNvbnN0IHtcclxuICAgICAgICBvbkNvbXBsZXRlLFxyXG4gICAgICAgIG9uUHJvY2VzcyxcclxuICAgICAgICBzbGljZVNpemUsXHJcbiAgICAgICAgbmV3VmVyc2lvbiA9IHRydWUsXHJcbiAgICAgIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgICBjb25zdCBvblByb2dyZXNzID0gKHRvdGFsUHJvZ3Jlc3M6IGFueSkgPT4ge1xyXG4gICAgICAgIG9wdGlvbnMub25Qcm9ncmVzcyh7IHBlcmNlbnQ6IHRvdGFsUHJvZ3Jlc3MgfSwgZmlsZSk7XHJcbiAgICAgICAgdGhpcy5vblByb2Nlc3MoeyBwZXJjZW50OiB0b3RhbFByb2dyZXNzLCBmaWxlOiBmaWxlIH0pO1xyXG4gICAgICAgIG9uUHJvY2VzcyAmJiBvblByb2Nlc3MoeyBwZXJjZW50OiB0b3RhbFByb2dyZXNzLCBmaWxlOiBmaWxlIH0pO1xyXG4gICAgICB9O1xyXG4gICAgICB0cnkge1xyXG4gICAgICAgIGNvbnN0IHJlczogYW55ID0gYXdhaXQgdXBsb2FkKFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBmaWxlOiBmaWxlLFxyXG4gICAgICAgICAgICBvblByb2dyZXNzOiBvblByb2dyZXNzLFxyXG4gICAgICAgICAgICBwYXJ0U2l6ZTogc2xpY2VTaXplLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHRoaXMucHJvcHMucmVxdWVzdENvbmZpZ1xyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy51cGxvYWRJbmdTaXplID0gdGhpcy51cGxvYWRJbmdTaXplICsgMTtcclxuICAgICAgICBsZXQgZmlsZUlkID0gbnVsbDtcclxuICAgICAgICBsZXQgSW1nUmVzID0gbnVsbDtcclxuICAgICAgICBpZiAocmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICBmaWxlSWQgPSByZXMuZGF0YS5hdHRhY2hJZDtcclxuICAgICAgICAgIG9wdGlvbnMub25TdWNjZXNzKCk7XHJcbiAgICAgICAgICBpZiAodGhpcy5wcm9wcy5saXN0VHlwZSA9PSBcInBpY3R1cmUtY2FyZFwiICYmIG5ld1ZlcnNpb24pIHtcclxuICAgICAgICAgICAgSW1nUmVzID0gYXdhaXQgcHJldmlld0ltYWdlKGZpbGVJZCwgdGhpcy5wcm9wcy5yZXF1ZXN0Q29uZmlnKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgb3B0aW9ucy5vbkVycm9yKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMudXBsb2FkSW5nTGlzdC5wdXNoKHtcclxuICAgICAgICAgIGZpbGU6IG9wdGlvbnMuZmlsZSxcclxuICAgICAgICAgIGZpbGVJZDogZmlsZUlkLFxyXG4gICAgICAgICAgc3RhdHVzOiByZXMuY29kZSA9PSAyMDAgPyBcInN1Y2Nlc3NcIiA6IFwiZXJyb3JcIixcclxuICAgICAgICAgIHVybDogSW1nUmVzID8gSW1nUmVzLmRhdGEgOiBudWxsLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdjdXN0b21SZXF1ZXN0LXVwbG9hZFNpemUnLHRoaXMudXBsb2FkU2l6ZSlcclxuICAgICAgICAvLyBjb25zb2xlLmxvZygnY3VzdG9tUmVxdWVzdC11cGxvYWRJbmdTaXplJyx0aGlzLnVwbG9hZEluZ1NpemUpXHJcbiAgICAgICAgLy8gaWYgKHRoaXMudXBsb2FkU2l6ZSA9PSB0aGlzLnVwbG9hZEluZ1NpemUpIHtcclxuICAgICAgICB0aGlzLm9uQ29tcGxldGUodGhpcy51cGxvYWRJbmdMaXN0KTtcclxuICAgICAgICAvLyB9XHJcbiAgICAgICAgb25Db21wbGV0ZSAmJlxyXG4gICAgICAgICAgb25Db21wbGV0ZSh7XHJcbiAgICAgICAgICAgIGZpbGU6IG9wdGlvbnMuZmlsZSxcclxuICAgICAgICAgICAgZmlsZUlkOiBmaWxlSWQsXHJcbiAgICAgICAgICAgIHN0YXR1czogcmVzLmNvZGUgPT0gMjAwID8gXCJzdWNjZXNzXCIgOiBcImVycm9yXCIsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgIC8vIGlmICh0aGlzLnVwbG9hZFNpemUgPT0gdGhpcy51cGxvYWRJbmdTaXplKSB7XHJcbiAgICAgICAgdGhpcy5vbkNvbXBsZXRlKHRoaXMudXBsb2FkSW5nTGlzdCk7XHJcbiAgICAgICAgb3B0aW9ucy5vbkVycm9yKCk7XHJcbiAgICAgICAgLy8gfVxyXG5cclxuICAgICAgICBvbkNvbXBsZXRlICYmXHJcbiAgICAgICAgICBvbkNvbXBsZXRlKHsgZmlsZTogb3B0aW9ucy5maWxlLCBmaWxlSWQ6IFwiXCIsIHN0YXR1czogXCJlcnJvclwiIH0pO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gICAgb25EZWxldGUoZmlsZSkge1xyXG4gICAgICBjb25zdCB7IGZpbGVMaXN0IH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgICBjb25zdCB7IG9uTGlzdENoYW5nZSB9ID0gdGhpcy5wcm9wcztcclxuICAgICAgY29uc3QgbmV3TGlzdDogYW55ID0gW107XHJcbiAgICAgIGZpbGVMaXN0Lm1hcCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgLy/pgJrov4fmlofku7blkI3liKTmlq3vvIzkuIrkvKDmmK/mlofku7blkI3mmK/llK/kuIDnmoRcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICBpdGVtLm5hbWUgIT09IGZpbGUubmFtZSB8fFxyXG4gICAgICAgICAgaXRlbS5maWxlSWQgIT09IGZpbGUuZmlsZUlkIHx8XHJcbiAgICAgICAgICBpdGVtLnVpZCAhPT0gZmlsZS51aWRcclxuICAgICAgICApIHtcclxuICAgICAgICAgIG5ld0xpc3QucHVzaChpdGVtKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICBmaWxlTGlzdDogbmV3TGlzdCxcclxuICAgICAgfSwgKCkgPT4ge1xyXG4gICAgICAgIG9uTGlzdENoYW5nZSAmJiBvbkxpc3RDaGFuZ2UobmV3TGlzdCk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIH1cclxuICAgIHJlbmRlcigpOiBSZWFjdC5SZWFjdE5vZGUge1xyXG4gICAgICBsZXQge1xyXG4gICAgICAgIGZpbGVMaXN0LFxyXG4gICAgICAgIGZpbGVDYXJkLFxyXG4gICAgICAgIHNob3dVcGxvYWRMaXN0ID0ge1xyXG4gICAgICAgICAgc2hvd0Rvd25sb2FkSWNvbjogdHJ1ZSxcclxuICAgICAgICAgIHNob3dQcmV2aWV3SWNvbjogZmFsc2UsXHJcbiAgICAgICAgICBzaG93UmVtb3ZlSWNvbjogdHJ1ZSxcclxuICAgICAgICAgIGRvd25sb2FkSWNvbjogbnVsbCxcclxuICAgICAgICAgIHJlbW92ZUljb246IG51bGwsXHJcbiAgICAgICAgICBwcmV2aWV3SWNvbjogbnVsbCxcclxuICAgICAgICB9IGFzIGFueSxcclxuICAgICAgICByZXF1ZXN0Q29uZmlnID0ge30sXHJcbiAgICAgIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgICBjb25zdCBuZXdwcm9wcyA9IG9taXQodGhpcy5wcm9wcywgW1xyXG4gICAgICAgIFwic2xpY2VTaXplXCIsXHJcbiAgICAgICAgXCJtYXhTaXplXCIsXHJcbiAgICAgICAgXCJvbkNvbXBsZXRlXCIsXHJcbiAgICAgICAgXCJvblByb2Nlc3NcIixcclxuICAgICAgICBcImFsbG93RmlsZVN1ZmZpeFwiLFxyXG4gICAgICAgIFwidXNlRGVmYXVsdExpc3RcIixcclxuICAgICAgICBcImZpbGVDYXJkXCIsXHJcbiAgICAgICAgXCJvbkxpc3RDaGFuZ2VcIixcclxuICAgICAgICBcIm5ld1ZlcnNpb25cIixcclxuICAgICAgICBcInJlcXVlc3RDb25maWdcIixcclxuICAgICAgXSk7XHJcbiAgICAgIGxldCBkZWZhdWx0UHJvcHMgPSB7XHJcbiAgICAgICAgY3VzdG9tUmVxdWVzdDogdGhpcy5jdXN0b21SZXF1ZXN0LmJpbmQodGhpcyksXHJcbiAgICAgICAgbXVsdGlwbGU6IHRydWUsXHJcbiAgICAgIH0gYXMgSVVwbG9hZFByb3BzO1xyXG4gICAgICBpZiAoZmlsZUNhcmQpIHtcclxuICAgICAgICBkZWZhdWx0UHJvcHMgPSB7XHJcbiAgICAgICAgICAuLi5kZWZhdWx0UHJvcHMsXHJcbiAgICAgICAgICBpdGVtUmVuZGVyOiAob3JpZ2luTm9kZSwgZmlsZTogYW55LCBjdXJyRmlsZUxpc3QpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgbmFtZSA9IGZpbGUubmFtZSB8fCBmaWxlLmZpbGVOYW1lO1xyXG4gICAgICAgICAgICBjb25zdCBuYW1lcyA9IG5hbWU/LnNwbGl0KFwiLlwiKTtcclxuICAgICAgICAgICAgY29uc3Qgc3VmZml4ID0gbmFtZXMgPyBuYW1lc1tuYW1lcy5sZW5ndGggLSAxXSA6IFwiXCI7XHJcbiAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImZpbGUtaXRlbVwiKX0+XHJcbiAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xzKGdldExlc3Moc3R5bGVzLCBcImNvbnRlbnRcIiksIHtcclxuICAgICAgICAgICAgICAgICAgICBbZ2V0TGVzcyhzdHlsZXMsIFwiY29udGVudF9lcnJvclwiKV06IGZpbGUuc3RhdHVzID09IFwiZXJyb3JcIixcclxuICAgICAgICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJtYXJrLXBpY3R1cmVcIil9PlxyXG4gICAgICAgICAgICAgICAgICAgIDxGaWxlSWNvbiBzdWZmaXg9e3N1ZmZpeH0gZmlsZUlkPXtmaWxlLmZpbGVJZH0gLz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJuYW1lXCIpfT5cclxuICAgICAgICAgICAgICAgICAgICB7ZmlsZS5uYW1lIHx8IGZpbGUuZmlsZU5hbWV9XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiaWNvblwiKX0+XHJcbiAgICAgICAgICAgICAgICAgICAge3Nob3dVcGxvYWRMaXN0LnNob3dQcmV2aWV3SWNvbiAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgKGZpbGUuc3RhdHVzID09IFwiZG9uZVwiIHx8IGZpbGUuZmlsZUlkKSAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5vblByZXZpZXcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5vblByZXZpZXcoZmlsZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2aWV3RG9jdW1lbnQoZmlsZS5maWxlSWQsIHJlcXVlc3RDb25maWcpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgY3Vyc29yOiBcInBvaW50ZXJcIiB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAge3Nob3dVcGxvYWRMaXN0LmRvd25sb2FkSWNvbiA/IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3dVcGxvYWRMaXN0LmRvd25sb2FkSWNvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8RXllT3V0bGluZWQgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgICAge3Nob3dVcGxvYWRMaXN0LnNob3dEb3dubG9hZEljb24gJiZcclxuICAgICAgICAgICAgICAgICAgICAgIChmaWxlLnN0YXR1cyA9PSBcImRvbmVcIiB8fCBmaWxlLmZpbGVJZCkgJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMub25Eb3dubG9hZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLm9uRG93bmxvYWQoZmlsZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3dubG9hZChmaWxlLmZpbGVJZCwgdHJ1ZSwgcmVxdWVzdENvbmZpZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17eyBjdXJzb3I6IFwicG9pbnRlclwiIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICB7c2hvd1VwbG9hZExpc3QuZG93bmxvYWRJY29uID8gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd1VwbG9hZExpc3QuZG93bmxvYWRJY29uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxEb3dubG9hZE91dGxpbmVkIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgIHtzaG93VXBsb2FkTGlzdC5zaG93UmVtb3ZlSWNvbiAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5vblJlbW92ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5vblJlbW92ZShmaWxlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vbkRlbGV0ZShmaWxlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IGN1cnNvcjogXCJwb2ludGVyXCIgfX1cclxuICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3Nob3dVcGxvYWRMaXN0LmRvd25sb2FkSWNvbiA/IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93VXBsb2FkTGlzdC5kb3dubG9hZEljb25cclxuICAgICAgICAgICAgICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8RGVsZXRlT3V0bGluZWQgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7ZmlsZS5zdGF0dXMgPT0gXCJ1cGxvYWRpbmdcIiAmJiAoXHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJwcm9jZXNzXCIpfT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcInBlcmNlbnRcIil9XHJcbiAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17eyB3aWR0aDogZmlsZS5wZXJjZW50ICsgXCIlXCIgfX1cclxuICAgICAgICAgICAgICAgICAgICA+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBkZWZhdWx0UHJvcHMgPSB7XHJcbiAgICAgICAgICAuLi5kZWZhdWx0UHJvcHMsXHJcbiAgICAgICAgICBvbkRvd25sb2FkOiAoZmlsZTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnByb3BzLm9uRG93bmxvYWQpIHtcclxuICAgICAgICAgICAgICB0aGlzLnByb3BzLm9uRG93bmxvYWQoZmlsZSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgZG93bmxvYWQoZmlsZS5maWxlSWQsIHRydWUsIHJlcXVlc3RDb25maWcpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgb25SZW1vdmU6IChmaWxlKSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnByb3BzLm9uUmVtb3ZlKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5wcm9wcy5vblJlbW92ZShmaWxlKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLm9uRGVsZXRlKGZpbGUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgb25QcmV2aWV3OiAoZmlsZTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnByb3BzLm9uUHJldmlldykge1xyXG4gICAgICAgICAgICAgIHRoaXMucHJvcHMub25QcmV2aWV3KGZpbGUpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIGlmIChmaWxlPy5maWxlSWQpIHtcclxuICAgICAgICAgICAgICAgIHByZXZpZXdEb2N1bWVudChmaWxlLmZpbGVJZCwgcmVxdWVzdENvbmZpZyk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgc2hvd1VwbG9hZExpc3Q6IHsgLi4uc2hvd1VwbG9hZExpc3QgfSxcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiAoXHJcbiAgICAgICAgPD5cclxuICAgICAgICAgIDxDb21wb25lbnRcclxuICAgICAgICAgICAgey4uLmRlZmF1bHRQcm9wc31cclxuICAgICAgICAgICAgey4uLm5ld3Byb3BzfVxyXG4gICAgICAgICAgICBiZWZvcmVVcGxvYWQ9e3RoaXMuYmVmb3JlVXBsb2FkLmJpbmQodGhpcyl9XHJcbiAgICAgICAgICAgIGZpbGVMaXN0PXt0aGlzLnN0YXRlLmZpbGVMaXN0fVxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8Lz5cclxuICAgICAgKTtcclxuICAgIH1cclxuICB9O1xyXG59O1xyXG5cclxuY29uc3QgTnNjVXBsb2FkOiBhbnkgPSB3aXRoQ3VzdG9tVXBsb2FkKFVwbG9hZCk7XHJcbi8vIC8vIOS9v+eUqCB3aXRoQ3VzdG9tVXBsb2FkIOWwgeijhSBVcGxvYWQuRHJhZ2dlciDnu4Tku7ZcclxuY29uc3QgTnNjVXBsb2FkRHJhZ2dlciA9IHdpdGhDdXN0b21VcGxvYWQoVXBsb2FkLkRyYWdnZXIpO1xyXG5Oc2NVcGxvYWQuRHJhZ2dlciA9IE5zY1VwbG9hZERyYWdnZXI7XHJcbmV4cG9ydCBkZWZhdWx0IE5zY1VwbG9hZDtcclxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLE9BQU8sS0FBS0EsS0FBSyxNQUFNLE9BQU87QUFFOUIsT0FBT0MsSUFBSSxNQUFNLFVBQVU7QUFDM0IsT0FBT0MsT0FBTyxNQUFNLFlBQVk7QUFDaEMsT0FBT0MsSUFBSSxNQUFNLFNBQVM7QUFDMUIsU0FBU0MsT0FBTyxRQUFRLGFBQWE7QUFDckMsT0FBT0MsTUFBTSxNQUFNLGNBQWM7QUFDakMsT0FBT0MsR0FBRyxNQUFNLFlBQVk7QUFDNUIsT0FBT0MsUUFBUSxNQUFNLG9CQUFvQjtBQUN6QyxTQUNFQyxjQUFjLEVBQ2RDLGdCQUFnQixFQUNoQkMsV0FBVyxRQUNOLG1CQUFtQjtBQUMxQixNQUFNO0VBQUVDLE1BQU07RUFBRUMsUUFBUTtFQUFFQyxlQUFlO0VBQUVDO0FBQWEsQ0FBQyxHQUFHYixJQUFJO0FBZ0JoRSxNQUFNYyxnQkFBZ0IsR0FBSUMsU0FBUyxJQUFLO0VBQ3RDO0VBQ0EsT0FBTyxjQUFjaEIsS0FBSyxDQUFDaUIsYUFBYSxDQUFvQjtJQUFBQyxZQUFBO01BQUEsU0FBQUMsU0FBQTtNQUFBQyxlQUFBLGdCQUNsRDtRQUNOQyxRQUFRLEVBQUUsRUFBRTtRQUNaQyxNQUFNLEVBQUUsRUFBRTtRQUNWQyxhQUFhLEVBQUUsRUFBRTtRQUNqQkMsU0FBUyxFQUFFO01BQ2IsQ0FBQztNQUFBSixlQUFBLHdCQUNlLENBQUM7TUFBQUEsZUFBQSxxQkFDSixDQUFDO01BQUFBLGVBQUEsd0JBQ0UsRUFBRTtNQUFBQSxlQUFBLHFCQUNMLENBQUMsQ0FBQztNQUFBQSxlQUFBLHdCQW9NQyxNQUFPSyxPQUFPLElBQUs7UUFDakMsTUFBTXhCLElBQUksR0FBR3dCLE9BQU8sQ0FBQ3hCLElBQUk7UUFDekIsTUFBTTtVQUNKeUIsVUFBVTtVQUNWQyxTQUFTO1VBQ1RDLFNBQVM7VUFDVEMsVUFBVSxHQUFHO1FBQ2YsQ0FBQyxHQUFHLElBQUksQ0FBQ0MsS0FBSztRQUNkLE1BQU1DLFVBQVUsR0FBSUMsYUFBa0IsSUFBSztVQUN6Q1AsT0FBTyxDQUFDTSxVQUFVLENBQUM7WUFBRUUsT0FBTyxFQUFFRDtVQUFjLENBQUMsRUFBRS9CLElBQUksQ0FBQztVQUNwRCxJQUFJLENBQUMwQixTQUFTLENBQUM7WUFBRU0sT0FBTyxFQUFFRCxhQUFhO1lBQUUvQixJQUFJLEVBQUVBO1VBQUssQ0FBQyxDQUFDO1VBQ3REMEIsU0FBUyxJQUFJQSxTQUFTLENBQUM7WUFBRU0sT0FBTyxFQUFFRCxhQUFhO1lBQUUvQixJQUFJLEVBQUVBO1VBQUssQ0FBQyxDQUFDO1FBQ2hFLENBQUM7UUFDRCxJQUFJO1VBQ0YsTUFBTWlDLEdBQVEsR0FBRyxNQUFNdkIsTUFBTSxDQUMzQjtZQUNFVixJQUFJLEVBQUVBLElBQUk7WUFDVjhCLFVBQVUsRUFBRUEsVUFBVTtZQUN0QkksUUFBUSxFQUFFUDtVQUNaLENBQUMsRUFDRCxJQUFJLENBQUNFLEtBQUssQ0FBQ00sYUFDYixDQUFDO1VBQ0QsSUFBSSxDQUFDQyxhQUFhLEdBQUcsSUFBSSxDQUFDQSxhQUFhLEdBQUcsQ0FBQztVQUMzQyxJQUFJQyxNQUFNLEdBQUcsSUFBSTtVQUNqQixJQUFJQyxNQUFNLEdBQUcsSUFBSTtVQUNqQixJQUFJTCxHQUFHLENBQUNNLElBQUksSUFBSSxHQUFHLEVBQUU7WUFDbkJGLE1BQU0sR0FBR0osR0FBRyxDQUFDTyxJQUFJLENBQUNDLFFBQVE7WUFDMUJqQixPQUFPLENBQUNrQixTQUFTLENBQUMsQ0FBQztZQUNuQixJQUFJLElBQUksQ0FBQ2IsS0FBSyxDQUFDYyxRQUFRLElBQUksY0FBYyxJQUFJZixVQUFVLEVBQUU7Y0FDdkRVLE1BQU0sR0FBRyxNQUFNekIsWUFBWSxDQUFDd0IsTUFBTSxFQUFFLElBQUksQ0FBQ1IsS0FBSyxDQUFDTSxhQUFhLENBQUM7WUFDL0Q7VUFDRixDQUFDLE1BQU07WUFDTFgsT0FBTyxDQUFDb0IsT0FBTyxDQUFDLENBQUM7VUFDbkI7VUFDQSxJQUFJLENBQUNDLGFBQWEsQ0FBQ0MsSUFBSSxDQUFDO1lBQ3RCOUMsSUFBSSxFQUFFd0IsT0FBTyxDQUFDeEIsSUFBSTtZQUNsQnFDLE1BQU0sRUFBRUEsTUFBTTtZQUNkVSxNQUFNLEVBQUVkLEdBQUcsQ0FBQ00sSUFBSSxJQUFJLEdBQUcsR0FBRyxTQUFTLEdBQUcsT0FBTztZQUM3Q1MsR0FBRyxFQUFFVixNQUFNLEdBQUdBLE1BQU0sQ0FBQ0UsSUFBSSxHQUFHO1VBQzlCLENBQUMsQ0FBQztVQUNGO1VBQ0E7VUFDQTtVQUNBLElBQUksQ0FBQ2YsVUFBVSxDQUFDLElBQUksQ0FBQ29CLGFBQWEsQ0FBQztVQUNuQztVQUNBcEIsVUFBVSxJQUNSQSxVQUFVLENBQUM7WUFDVHpCLElBQUksRUFBRXdCLE9BQU8sQ0FBQ3hCLElBQUk7WUFDbEJxQyxNQUFNLEVBQUVBLE1BQU07WUFDZFUsTUFBTSxFQUFFZCxHQUFHLENBQUNNLElBQUksSUFBSSxHQUFHLEdBQUcsU0FBUyxHQUFHO1VBQ3hDLENBQUMsQ0FBQztRQUNOLENBQUMsQ0FBQyxPQUFPVSxDQUFDLEVBQUU7VUFDVjtVQUNBLElBQUksQ0FBQ3hCLFVBQVUsQ0FBQyxJQUFJLENBQUNvQixhQUFhLENBQUM7VUFDbkNyQixPQUFPLENBQUNvQixPQUFPLENBQUMsQ0FBQztVQUNqQjs7VUFFQW5CLFVBQVUsSUFDUkEsVUFBVSxDQUFDO1lBQUV6QixJQUFJLEVBQUV3QixPQUFPLENBQUN4QixJQUFJO1lBQUVxQyxNQUFNLEVBQUUsRUFBRTtZQUFFVSxNQUFNLEVBQUU7VUFBUSxDQUFDLENBQUM7UUFDbkU7TUFDRixDQUFDO0lBQUE7SUEvUERHLGlCQUFpQkEsQ0FBQSxFQUFHO01BQ2xCLElBQUksSUFBSSxDQUFDckIsS0FBSyxDQUFDVCxRQUFRLEVBQUU7UUFDdkIsSUFBSSxDQUFDK0IsZUFBZSxDQUFDLElBQUksQ0FBQ3RCLEtBQUssQ0FBQ1QsUUFBUSxDQUFDO01BQzNDO0lBQ0Y7SUFDQStCLGVBQWVBLENBQUNDLElBQW9CLEVBQUU7TUFDcEMsTUFBTTtRQUFFaEMsUUFBUTtRQUFFdUI7TUFBUyxDQUFDLEdBQUcsSUFBSSxDQUFDZCxLQUFLO01BQ3pDLE1BQU13QixXQUFXLEdBQUcsRUFBRTtNQUN0QixJQUFJQyxPQUFPLEdBQUdGLElBQUksR0FBR0EsSUFBSSxHQUFHaEMsUUFBUTtNQUNwQyxJQUFJLENBQUNtQyxRQUFRLENBQ1g7UUFDRWpDLGFBQWEsRUFBRSxDQUFDLEdBQUdGLFFBQVE7TUFDN0IsQ0FBQyxFQUNELFlBQVk7UUFDVixLQUFLLElBQUlvQyxDQUFDLEdBQUcsQ0FBQyxFQUFFQSxDQUFDLEdBQUdGLE9BQU8sQ0FBQ0csTUFBTSxFQUFFRCxDQUFDLEVBQUUsRUFBRTtVQUN2QyxJQUFJRSxJQUFTLEdBQUdKLE9BQU8sQ0FBQ0UsQ0FBQyxDQUFDO1VBQzFCLElBQUlHLElBQUksR0FBQUMsYUFBQSxDQUFBQSxhQUFBLEtBQ0hGLElBQUk7WUFDUFgsTUFBTSxFQUFFVyxJQUFJLENBQUNYLE1BQU07WUFDbkJjLElBQUksRUFBRUgsSUFBSSxDQUFDRyxJQUFJLElBQUlILElBQUksQ0FBQ0ksUUFBUTtZQUNoQ0MsSUFBSSxFQUFFTCxJQUFJLENBQUNLLElBQUk7WUFDZkMsSUFBSSxFQUFFTixJQUFJLENBQUNNLElBQUk7WUFDZmhCLEdBQUcsRUFBRVUsSUFBSSxDQUFDVjtVQUFHLEVBQ1A7VUFDUixJQUFJTCxRQUFRLElBQUksY0FBYyxJQUFJLENBQUNlLElBQUksQ0FBQ1YsR0FBRyxJQUFJVSxJQUFJLENBQUNyQixNQUFNLEVBQUU7WUFDMUQsSUFBSUosR0FBUSxHQUFHLE1BQU1wQixZQUFZLENBQy9CNkMsSUFBSSxDQUFDckIsTUFBTSxFQUNYLElBQUksQ0FBQ1IsS0FBSyxDQUFDTSxhQUNiLENBQUM7WUFDRCxJQUFJRixHQUFHLENBQUNNLElBQUksSUFBSSxHQUFHLEVBQUU7Y0FDbkJvQixJQUFJLENBQUNYLEdBQUcsR0FBR2YsR0FBRyxDQUFDTyxJQUFJO1lBQ3JCO1VBQ0Y7VUFDQWEsV0FBVyxDQUFDUCxJQUFJLENBQUNhLElBQUksQ0FBQztRQUN4QjtRQUNBLElBQUksQ0FBQ0osUUFBUSxDQUFDO1VBQ1puQyxRQUFRLEVBQUUsQ0FBQyxHQUFHaUMsV0FBVztRQUMzQixDQUFDLENBQUM7TUFDSixDQUNGLENBQUM7SUFDSDtJQUNBWSxrQkFBa0JBLENBQUNDLFFBQVEsRUFBRUMsUUFBUSxFQUFFO01BQ3JDLElBQUksSUFBSSxDQUFDdEMsS0FBSyxDQUFDVCxRQUFRLEVBQUU7UUFDdkIsSUFDRWdELElBQUksQ0FBQ0MsU0FBUyxDQUFDLElBQUksQ0FBQ3hDLEtBQUssQ0FBQ1QsUUFBUSxDQUFDLEtBQ25DZ0QsSUFBSSxDQUFDQyxTQUFTLENBQUMsSUFBSSxDQUFDQyxLQUFLLENBQUNoRCxhQUFhLENBQUMsRUFDeEM7VUFDQSxJQUFJLENBQUM2QixlQUFlLENBQUMsSUFBSSxDQUFDdEIsS0FBSyxDQUFDVCxRQUFRLENBQUM7UUFDM0M7TUFDRjtJQUNGO0lBQ0FtRCxXQUFXQSxDQUFBLEVBQUc7TUFDWixPQUFPLElBQUksQ0FBQ0QsS0FBSyxDQUFDbEQsUUFBUTtJQUM1QjtJQUNBb0QsV0FBV0EsQ0FBQ3BELFFBQXVCLEVBQUU7TUFDbkMsSUFBSSxDQUFDK0IsZUFBZSxDQUFDL0IsUUFBUSxDQUFDO0lBQ2hDO0lBQ0EsTUFBTXFELFlBQVlBLENBQUN6RSxJQUFJLEVBQUUwRSxTQUFTLEVBQUU7TUFDbEMsSUFBSTtRQUNGQyxPQUFPLEdBQUcsR0FBRztRQUNiQyxlQUFlO1FBQ2ZDLGFBQWEsR0FBRyxJQUFJO1FBQ3BCQyxRQUFRO1FBQ1JDLGNBQWM7UUFDZDNELFFBQVEsRUFBRTRELFNBQVM7UUFDbkJDO01BQ0YsQ0FBQyxHQUFHLElBQUksQ0FBQ3BELEtBQUs7TUFDZCxJQUFJO1FBQUVULFFBQVE7UUFBRUU7TUFBYyxDQUFDLEdBQUcsSUFBSSxDQUFDZ0QsS0FBSztNQUM1QyxJQUFJTixJQUFZO01BQ2hCLElBQUlZLGVBQWUsSUFBSSxDQUFDLElBQUksQ0FBQ00sYUFBYSxDQUFDbEYsSUFBSSxDQUFDLEVBQUU7UUFDaERDLE9BQU8sQ0FBQ2tGLEtBQUssSUFBQUMsTUFBQSxDQUNScEYsSUFBSSxDQUFDNkQsSUFBSSxzR0FBQXVCLE1BQUEsQ0FBbUJSLGVBQWUseUNBQ2hELENBQUM7UUFDRCxPQUFPLEtBQUs7TUFDZDtNQUNBLElBQUlELE9BQU8sS0FBSyxLQUFLLEVBQUU7UUFDckIsSUFBSUEsT0FBTyxLQUFLLElBQUksRUFBRTtVQUNwQkEsT0FBTyxHQUFHLEdBQUc7UUFDZjtRQUNBWCxJQUFJLEdBQUdXLE9BQU8sR0FBRyxJQUFJLEdBQUcsSUFBSTtRQUM1QixJQUFJWCxJQUFJLEdBQUdoRSxJQUFJLENBQUNnRSxJQUFJLEVBQUU7VUFDcEIvRCxPQUFPLENBQUNrRixLQUFLLElBQUFDLE1BQUEsQ0FBSXBGLElBQUksQ0FBQzZELElBQUksMENBQUF1QixNQUFBLENBQVNULE9BQU8sZ0RBQVUsQ0FBQztVQUNyRCxPQUFPLEtBQUs7UUFDZDtNQUNGO01BQ0EsSUFBSXBELFNBQVMsR0FBRyxFQUFFO01BQ2xCLElBQUlzRCxhQUFhLEVBQUU7UUFDakIsTUFBTVEsU0FBUyxHQUFHLElBQUksQ0FBQ3hELEtBQUssQ0FBQ1QsUUFBUSxHQUFHRSxhQUFhLEdBQUdGLFFBQVE7UUFDaEVpRSxTQUFTLENBQUNDLEdBQUcsQ0FBRTVCLElBQUksSUFBSztVQUN0Qm5DLFNBQVMsQ0FBQ3VCLElBQUksQ0FBQ1ksSUFBSSxDQUFDRyxJQUFJLElBQUlILElBQUksQ0FBQ0ksUUFBUSxDQUFDO1FBQzVDLENBQUMsQ0FBQztRQUNGLElBQUl2QyxTQUFTLENBQUNnRSxPQUFPLENBQUN2RixJQUFJLENBQUM2RCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSWtCLGNBQWMsS0FBSyxLQUFLLEVBQUU7VUFDakU5RSxPQUFPLENBQUNrRixLQUFLLGdCQUFBQyxNQUFBLENBQU1wRixJQUFJLENBQUM2RCxJQUFJLHFHQUFrQixDQUFDO1VBQy9DLE9BQU8sS0FBSztRQUNkO01BQ0Y7TUFFQSxJQUFJLElBQUksQ0FBQ2hDLEtBQUssQ0FBQzRDLFlBQVksRUFBRTtRQUMzQixNQUFNeEMsR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDSixLQUFLLENBQUM0QyxZQUFZLENBQUN6RSxJQUFJLEVBQUUwRSxTQUFTLENBQUM7UUFDMUQsSUFBSXpDLEdBQUcsS0FBSyxLQUFLLEVBQUU7VUFDakIsT0FBTyxLQUFLO1FBQ2Q7TUFDRjtNQUNBLE1BQU11RCxPQUFPLEdBQUcsQ0FBQyxHQUFHcEUsUUFBUSxDQUFDO01BQzdCc0QsU0FBUyxDQUFDWSxHQUFHLENBQUMsTUFBTzVCLElBQUksSUFBSztRQUM1QixJQUNFLEVBQ0drQixlQUFlLElBQUksQ0FBQyxJQUFJLENBQUNNLGFBQWEsQ0FBQ3hCLElBQUksQ0FBQyxJQUM3Q00sSUFBSSxHQUFHTixJQUFJLENBQUNNLElBQUksSUFDZmEsYUFBYSxJQUFJdEQsU0FBUyxDQUFDZ0UsT0FBTyxDQUFDN0IsSUFBSSxDQUFDRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUUsQ0FDckQsRUFDRDtVQUNBLE1BQU1GLElBQUksR0FBRztZQUNYRyxRQUFRLEVBQUVKLElBQUksQ0FBQ0csSUFBSTtZQUNuQjdCLE9BQU8sRUFBRSxDQUFDO1lBQ1ZlLE1BQU0sRUFBRSxXQUFXO1lBQ25CMEMsR0FBRyxFQUFFL0IsSUFBSSxDQUFDK0IsR0FBRztZQUNiNUIsSUFBSSxFQUFFSCxJQUFJLENBQUNHLElBQUk7WUFDZkUsSUFBSSxFQUFFTCxJQUFJLENBQUNLLElBQUk7WUFDZkMsSUFBSSxFQUFFTixJQUFJLENBQUNNO1VBQ2IsQ0FBQztVQUNEd0IsT0FBTyxDQUFDMUMsSUFBSSxDQUFDYSxJQUFJLENBQUM7UUFDcEI7TUFDRixDQUFDLENBQUM7TUFFRixJQUFJbUIsUUFBUSxJQUFJVSxPQUFPLENBQUMvQixNQUFNLEdBQUdxQixRQUFRLEVBQUU7UUFDekMsSUFBSXJCLE1BQU0sR0FBRytCLE9BQU8sQ0FBQy9CLE1BQU0sR0FBR3FCLFFBQVE7UUFDdEMsS0FBSyxJQUFJdEIsQ0FBQyxHQUFHLENBQUMsRUFBRUEsQ0FBQyxHQUFHQyxNQUFNLEVBQUVELENBQUMsRUFBRSxFQUFFO1VBQy9CZ0MsT0FBTyxDQUFDRSxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN0QjtNQUNGO01BQ0EsSUFBSSxDQUFDbkMsUUFBUSxDQUFDO1FBQUVuQyxRQUFRLEVBQUVvRTtNQUFRLENBQUMsRUFBRSxNQUFNO1FBQ3pDUCxZQUFZLElBQUlBLFlBQVksQ0FBQ08sT0FBTyxDQUFDO01BQ3ZDLENBQUMsQ0FBQztNQUNGLElBQUksQ0FBQ0csVUFBVSxHQUFHakIsU0FBUyxDQUFDakIsTUFBTTtJQUNwQztJQUNBeUIsYUFBYUEsQ0FBQ2xGLElBQUksRUFBRTtNQUNsQixNQUFNO1FBQUU0RTtNQUFnQixDQUFDLEdBQUcsSUFBSSxDQUFDL0MsS0FBSztNQUN0QyxNQUFNK0QsS0FBSyxHQUFHNUYsSUFBSSxDQUFDNkQsSUFBSSxDQUFDZ0MsS0FBSyxDQUFDLEdBQUcsQ0FBQztNQUNsQyxNQUFNQyxNQUFNLEdBQUdGLEtBQUssQ0FBQ0EsS0FBSyxDQUFDbkMsTUFBTSxHQUFHLENBQUMsQ0FBQztNQUN0QyxJQUFJbUIsZUFBZSxDQUFDVyxPQUFPLENBQUNPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJbEIsZUFBZSxDQUFDVyxPQUFPLENBQUNPLE1BQU0sQ0FBQ0MsV0FBVyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJbkIsZUFBZSxDQUFDVyxPQUFPLENBQUNPLE1BQU0sQ0FBQ0UsV0FBVyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO1FBQ3BKLE9BQU8sSUFBSTtNQUNiO01BQ0EsT0FBTyxLQUFLO0lBQ2Q7SUFDQXRFLFNBQVNBLENBQUF1RSxJQUFBLEVBQXlCO01BQUEsSUFBeEI7UUFBRWpFLE9BQU87UUFBRWhDO01BQVUsQ0FBQyxHQUFBaUcsSUFBQTtNQUM5QixNQUFNO1FBQUU3RTtNQUFTLENBQUMsR0FBRyxJQUFJLENBQUNrRCxLQUFLO01BQy9CLE1BQU07UUFBRVc7TUFBYSxDQUFDLEdBQUcsSUFBSSxDQUFDcEQsS0FBSztNQUNuQyxNQUFNMkQsT0FBWSxHQUFHLEVBQUU7TUFDdkJwRSxRQUFRLENBQUNrRSxHQUFHLENBQUU1QixJQUFTLElBQUs7UUFDMUIsTUFBTXdDLE9BQU8sR0FBQXRDLGFBQUEsS0FBUUYsSUFBSSxDQUFFO1FBQzNCLElBQUkxRCxJQUFJLENBQUN5RixHQUFHLElBQUkvQixJQUFJLENBQUMrQixHQUFHLEVBQUU7VUFDeEJTLE9BQU8sQ0FBQ2xFLE9BQU8sR0FBR0EsT0FBTztRQUMzQjtRQUNBd0QsT0FBTyxDQUFDMUMsSUFBSSxDQUFDb0QsT0FBTyxDQUFDO01BQ3ZCLENBQUMsQ0FBQztNQUNGLElBQUksQ0FBQzNDLFFBQVEsQ0FBQztRQUNabkMsUUFBUSxFQUFFb0U7TUFDWixDQUFDLEVBQUUsTUFBTTtRQUNQUCxZQUFZLElBQUlBLFlBQVksQ0FBQzdELFFBQVEsQ0FBQztNQUN4QyxDQUFDLENBQUM7SUFFSjtJQUNBLE1BQU1LLFVBQVVBLENBQUMwRSxLQUFLLEVBQUU7TUFDdEIsSUFBSSxDQUFDL0QsYUFBYSxHQUFHLENBQUM7TUFDdEIsSUFBSSxDQUFDdUQsVUFBVSxHQUFHLENBQUM7TUFDbkIsSUFBSSxDQUFDOUMsYUFBYSxHQUFHLEVBQUU7TUFDdkIsTUFBTTtRQUFFekI7TUFBUyxDQUFDLEdBQUcsSUFBSSxDQUFDa0QsS0FBSztNQUMvQixNQUFNO1FBQUUxQyxVQUFVLEdBQUcsSUFBSTtRQUFFTyxhQUFhLEdBQUcsQ0FBQztNQUFFLENBQUMsR0FBRyxJQUFJLENBQUNOLEtBQUs7TUFDNUQsTUFBTTJELE9BQVksR0FBRyxFQUFFO01BQ3ZCcEUsUUFBUSxDQUFDa0UsR0FBRyxDQUFDLE9BQU81QixJQUFTLEVBQUUwQyxLQUFLLEtBQUs7UUFDdkMsTUFBTUYsT0FBTyxHQUFBdEMsYUFBQSxLQUFRRixJQUFJLENBQUU7UUFDM0J5QyxLQUFLLENBQUNiLEdBQUcsQ0FBQyxNQUFPdEYsSUFBSSxJQUFLO1VBQ3hCLElBQUlBLElBQUksQ0FBQ0EsSUFBSSxDQUFDeUYsR0FBRyxJQUFJL0IsSUFBSSxDQUFDK0IsR0FBRyxFQUFFO1lBQzdCUyxPQUFPLENBQUNuRCxNQUFNLEdBQUcvQyxJQUFJLENBQUMrQyxNQUFNLElBQUksU0FBUyxHQUFHLE1BQU0sR0FBRy9DLElBQUksQ0FBQytDLE1BQU07WUFDaEVtRCxPQUFPLENBQUM3RCxNQUFNLEdBQUdyQyxJQUFJLENBQUNxQyxNQUFNO1lBQzVCNkQsT0FBTyxDQUFDbEQsR0FBRyxHQUFHaEQsSUFBSSxDQUFDZ0QsR0FBRztZQUN0QixJQUFJLENBQUNwQixVQUFVLEVBQUU7Y0FDZixJQUFJb0IsR0FBRyw0REFBQW9DLE1BQUEsQ0FBNERwRixJQUFJLENBQUNxQyxNQUFNLFlBQUErQyxNQUFBLENBQ25FaUIsTUFBTSxDQUFDQyxZQUFZLENBQUNDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBRTtjQUNqREwsT0FBTyxDQUFDbEQsR0FBRyxHQUFHYixhQUFhLENBQUNxRSxNQUFNLEdBQzlCckUsYUFBYSxDQUFDcUUsTUFBTSxHQUFHeEQsR0FBRyxHQUMxQixNQUFNLEdBQUdBLEdBQUc7WUFDbEI7VUFDRjtRQUNGLENBQUMsQ0FBQztRQUNGd0MsT0FBTyxDQUFDMUMsSUFBSSxDQUFDb0QsT0FBTyxDQUFDO01BQ3ZCLENBQUMsQ0FBQztNQUNGLElBQUksQ0FBQzNDLFFBQVEsQ0FBQztRQUNabkMsUUFBUSxFQUFFLENBQUMsR0FBR29FLE9BQU87TUFDdkIsQ0FBQyxFQUFFLE1BQU07UUFDUCxNQUFNO1VBQUVQO1FBQWEsQ0FBQyxHQUFHLElBQUksQ0FBQ3BELEtBQUs7UUFDbkNvRCxZQUFZLElBQUlBLFlBQVksQ0FBQ08sT0FBTyxDQUFDO01BQ3ZDLENBQUMsQ0FBQztJQUNKO0lBOERBaUIsUUFBUUEsQ0FBQ3pHLElBQUksRUFBRTtNQUNiLE1BQU07UUFBRW9CO01BQVMsQ0FBQyxHQUFHLElBQUksQ0FBQ2tELEtBQUs7TUFDL0IsTUFBTTtRQUFFVztNQUFhLENBQUMsR0FBRyxJQUFJLENBQUNwRCxLQUFLO01BQ25DLE1BQU0yRCxPQUFZLEdBQUcsRUFBRTtNQUN2QnBFLFFBQVEsQ0FBQ2tFLEdBQUcsQ0FBRTVCLElBQVMsSUFBSztRQUMxQjtRQUNBLElBQ0VBLElBQUksQ0FBQ0csSUFBSSxLQUFLN0QsSUFBSSxDQUFDNkQsSUFBSSxJQUN2QkgsSUFBSSxDQUFDckIsTUFBTSxLQUFLckMsSUFBSSxDQUFDcUMsTUFBTSxJQUMzQnFCLElBQUksQ0FBQytCLEdBQUcsS0FBS3pGLElBQUksQ0FBQ3lGLEdBQUcsRUFDckI7VUFDQUQsT0FBTyxDQUFDMUMsSUFBSSxDQUFDWSxJQUFJLENBQUM7UUFDcEI7TUFDRixDQUFDLENBQUM7TUFDRixJQUFJLENBQUNILFFBQVEsQ0FBQztRQUNabkMsUUFBUSxFQUFFb0U7TUFDWixDQUFDLEVBQUUsTUFBTTtRQUNQUCxZQUFZLElBQUlBLFlBQVksQ0FBQ08sT0FBTyxDQUFDO01BQ3ZDLENBQUMsQ0FBQztJQUVKO0lBQ0FrQixNQUFNQSxDQUFBLEVBQW9CO01BQ3hCLElBQUk7UUFDRnRGLFFBQVE7UUFDUnVGLFFBQVE7UUFDUjVCLGNBQWMsR0FBRztVQUNmNkIsZ0JBQWdCLEVBQUUsSUFBSTtVQUN0QkMsZUFBZSxFQUFFLEtBQUs7VUFDdEJDLGNBQWMsRUFBRSxJQUFJO1VBQ3BCQyxZQUFZLEVBQUUsSUFBSTtVQUNsQkMsVUFBVSxFQUFFLElBQUk7VUFDaEJDLFdBQVcsRUFBRTtRQUNmLENBQVE7UUFDUjlFLGFBQWEsR0FBRyxDQUFDO01BQ25CLENBQUMsR0FBRyxJQUFJLENBQUNOLEtBQUs7TUFDZCxNQUFNcUYsUUFBUSxHQUFHaEgsSUFBSSxDQUFDLElBQUksQ0FBQzJCLEtBQUssRUFBRSxDQUNoQyxXQUFXLEVBQ1gsU0FBUyxFQUNULFlBQVksRUFDWixXQUFXLEVBQ1gsaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUNoQixVQUFVLEVBQ1YsY0FBYyxFQUNkLFlBQVksRUFDWixlQUFlLENBQ2hCLENBQUM7TUFDRixJQUFJc0YsWUFBWSxHQUFHO1FBQ2pCQyxhQUFhLEVBQUUsSUFBSSxDQUFDQSxhQUFhLENBQUNDLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDNUNDLFFBQVEsRUFBRTtNQUNaLENBQWlCO01BQ2pCLElBQUlYLFFBQVEsRUFBRTtRQUNaUSxZQUFZLEdBQUF2RCxhQUFBLENBQUFBLGFBQUEsS0FDUHVELFlBQVk7VUFDZkksVUFBVSxFQUFFQSxDQUFDQyxVQUFVLEVBQUV4SCxJQUFTLEVBQUV5SCxZQUFZLEtBQUs7WUFDbkQsTUFBTTVELElBQUksR0FBRzdELElBQUksQ0FBQzZELElBQUksSUFBSTdELElBQUksQ0FBQzhELFFBQVE7WUFDdkMsTUFBTThCLEtBQUssR0FBRy9CLElBQUksYUFBSkEsSUFBSSx1QkFBSkEsSUFBSSxDQUFFZ0MsS0FBSyxDQUFDLEdBQUcsQ0FBQztZQUM5QixNQUFNQyxNQUFNLEdBQUdGLEtBQUssR0FBR0EsS0FBSyxDQUFDQSxLQUFLLENBQUNuQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRTtZQUNuRCxvQkFDRTFELEtBQUEsQ0FBQTJILGFBQUE7Y0FBS0MsU0FBUyxFQUFFeEgsT0FBTyxDQUFDQyxNQUFNLEVBQUUsV0FBVztZQUFFLGdCQUMzQ0wsS0FBQSxDQUFBMkgsYUFBQTtjQUNFQyxTQUFTLEVBQUV0SCxHQUFHLENBQUNGLE9BQU8sQ0FBQ0MsTUFBTSxFQUFFLFNBQVMsQ0FBQyxFQUFFO2dCQUN6QyxDQUFDRCxPQUFPLENBQUNDLE1BQU0sRUFBRSxlQUFlLENBQUMsR0FBR0osSUFBSSxDQUFDK0MsTUFBTSxJQUFJO2NBQ3JELENBQUM7WUFBRSxnQkFFSGhELEtBQUEsQ0FBQTJILGFBQUE7Y0FBS0MsU0FBUyxFQUFFeEgsT0FBTyxDQUFDQyxNQUFNLEVBQUUsY0FBYztZQUFFLGdCQUM5Q0wsS0FBQSxDQUFBMkgsYUFBQSxDQUFDcEgsUUFBUTtjQUFDd0YsTUFBTSxFQUFFQSxNQUFPO2NBQUN6RCxNQUFNLEVBQUVyQyxJQUFJLENBQUNxQztZQUFPLENBQUUsQ0FDN0MsQ0FBQyxlQUNOdEMsS0FBQSxDQUFBMkgsYUFBQTtjQUFLQyxTQUFTLEVBQUV4SCxPQUFPLENBQUNDLE1BQU0sRUFBRSxNQUFNO1lBQUUsR0FDckNKLElBQUksQ0FBQzZELElBQUksSUFBSTdELElBQUksQ0FBQzhELFFBQ2hCLENBQUMsZUFDTi9ELEtBQUEsQ0FBQTJILGFBQUE7Y0FBS0MsU0FBUyxFQUFFeEgsT0FBTyxDQUFDQyxNQUFNLEVBQUUsTUFBTTtZQUFFLEdBQ3JDMkUsY0FBYyxDQUFDOEIsZUFBZSxLQUM1QjdHLElBQUksQ0FBQytDLE1BQU0sSUFBSSxNQUFNLElBQUkvQyxJQUFJLENBQUNxQyxNQUFNLENBQUMsaUJBQ3BDdEMsS0FBQSxDQUFBMkgsYUFBQTtjQUNFRSxPQUFPLEVBQUVBLENBQUEsS0FBTTtnQkFDYixJQUFJLElBQUksQ0FBQy9GLEtBQUssQ0FBQ2dHLFNBQVMsRUFBRTtrQkFDeEIsSUFBSSxDQUFDaEcsS0FBSyxDQUFDZ0csU0FBUyxDQUFDN0gsSUFBSSxDQUFDO2dCQUM1QixDQUFDLE1BQU07a0JBQ0xZLGVBQWUsQ0FBQ1osSUFBSSxDQUFDcUMsTUFBTSxFQUFFRixhQUFhLENBQUM7Z0JBQzdDO2NBQ0YsQ0FBRTtjQUNGMkYsS0FBSyxFQUFFO2dCQUFFQyxNQUFNLEVBQUU7Y0FBVTtZQUFFLEdBRTVCaEQsY0FBYyxDQUFDZ0MsWUFBWSxHQUMxQmhDLGNBQWMsQ0FBQ2dDLFlBQVksZ0JBRTNCaEgsS0FBQSxDQUFBMkgsYUFBQSxDQUFDakgsV0FBVyxNQUFFLENBRWIsQ0FDTixFQUNGc0UsY0FBYyxDQUFDNkIsZ0JBQWdCLEtBQzdCNUcsSUFBSSxDQUFDK0MsTUFBTSxJQUFJLE1BQU0sSUFBSS9DLElBQUksQ0FBQ3FDLE1BQU0sQ0FBQyxpQkFDcEN0QyxLQUFBLENBQUEySCxhQUFBO2NBQ0VFLE9BQU8sRUFBRUEsQ0FBQSxLQUFNO2dCQUNiLElBQUksSUFBSSxDQUFDL0YsS0FBSyxDQUFDbUcsVUFBVSxFQUFFO2tCQUN6QixJQUFJLENBQUNuRyxLQUFLLENBQUNtRyxVQUFVLENBQUNoSSxJQUFJLENBQUM7Z0JBQzdCLENBQUMsTUFBTTtrQkFDTFcsUUFBUSxDQUFDWCxJQUFJLENBQUNxQyxNQUFNLEVBQUUsSUFBSSxFQUFFRixhQUFhLENBQUM7Z0JBQzVDO2NBQ0YsQ0FBRTtjQUNGMkYsS0FBSyxFQUFFO2dCQUFFQyxNQUFNLEVBQUU7Y0FBVTtZQUFFLEdBRTVCaEQsY0FBYyxDQUFDZ0MsWUFBWSxHQUMxQmhDLGNBQWMsQ0FBQ2dDLFlBQVksZ0JBRTNCaEgsS0FBQSxDQUFBMkgsYUFBQSxDQUFDbEgsZ0JBQWdCLE1BQUUsQ0FFbEIsQ0FDTixFQUNGdUUsY0FBYyxDQUFDK0IsY0FBYyxpQkFDNUIvRyxLQUFBLENBQUEySCxhQUFBO2NBQ0VFLE9BQU8sRUFBRUEsQ0FBQSxLQUFNO2dCQUNiLElBQUksSUFBSSxDQUFDL0YsS0FBSyxDQUFDb0csUUFBUSxFQUFFO2tCQUN2QixJQUFJLENBQUNwRyxLQUFLLENBQUNvRyxRQUFRLENBQUNqSSxJQUFJLENBQUM7Z0JBQzNCLENBQUMsTUFBTTtrQkFDTCxJQUFJLENBQUN5RyxRQUFRLENBQUN6RyxJQUFJLENBQUM7Z0JBQ3JCO2NBQ0YsQ0FBRTtjQUNGOEgsS0FBSyxFQUFFO2dCQUFFQyxNQUFNLEVBQUU7Y0FBVTtZQUFFLEdBRTVCaEQsY0FBYyxDQUFDZ0MsWUFBWSxHQUMxQmhDLGNBQWMsQ0FBQ2dDLFlBQVksZ0JBRTNCaEgsS0FBQSxDQUFBMkgsYUFBQSxDQUFDbkgsY0FBYyxNQUFFLENBRWhCLENBRUosQ0FDRixDQUFDLEVBQ0xQLElBQUksQ0FBQytDLE1BQU0sSUFBSSxXQUFXLGlCQUN6QmhELEtBQUEsQ0FBQTJILGFBQUE7Y0FBS0MsU0FBUyxFQUFFeEgsT0FBTyxDQUFDQyxNQUFNLEVBQUUsU0FBUztZQUFFLGdCQUN6Q0wsS0FBQSxDQUFBMkgsYUFBQTtjQUNFQyxTQUFTLEVBQUV4SCxPQUFPLENBQUNDLE1BQU0sRUFBRSxTQUFTLENBQUU7Y0FDdEMwSCxLQUFLLEVBQUU7Z0JBQUVJLEtBQUssRUFBRWxJLElBQUksQ0FBQ2dDLE9BQU8sR0FBRztjQUFJO1lBQUUsQ0FDakMsQ0FDSCxDQUVKLENBQUM7VUFFVjtRQUFDLEVBQ0Y7TUFDSCxDQUFDLE1BQU07UUFDTG1GLFlBQVksR0FBQXZELGFBQUEsQ0FBQUEsYUFBQSxLQUNQdUQsWUFBWTtVQUNmYSxVQUFVLEVBQUdoSSxJQUFTLElBQUs7WUFDekIsSUFBSSxJQUFJLENBQUM2QixLQUFLLENBQUNtRyxVQUFVLEVBQUU7Y0FDekIsSUFBSSxDQUFDbkcsS0FBSyxDQUFDbUcsVUFBVSxDQUFDaEksSUFBSSxDQUFDO1lBQzdCLENBQUMsTUFBTTtjQUNMVyxRQUFRLENBQUNYLElBQUksQ0FBQ3FDLE1BQU0sRUFBRSxJQUFJLEVBQUVGLGFBQWEsQ0FBQztZQUM1QztVQUNGLENBQUM7VUFDRDhGLFFBQVEsRUFBR2pJLElBQUksSUFBSztZQUNsQixJQUFJLElBQUksQ0FBQzZCLEtBQUssQ0FBQ29HLFFBQVEsRUFBRTtjQUN2QixJQUFJLENBQUNwRyxLQUFLLENBQUNvRyxRQUFRLENBQUNqSSxJQUFJLENBQUM7WUFDM0IsQ0FBQyxNQUFNO2NBQ0wsSUFBSSxDQUFDeUcsUUFBUSxDQUFDekcsSUFBSSxDQUFDO1lBQ3JCO1VBQ0YsQ0FBQztVQUNENkgsU0FBUyxFQUFHN0gsSUFBUyxJQUFLO1lBQ3hCLElBQUksSUFBSSxDQUFDNkIsS0FBSyxDQUFDZ0csU0FBUyxFQUFFO2NBQ3hCLElBQUksQ0FBQ2hHLEtBQUssQ0FBQ2dHLFNBQVMsQ0FBQzdILElBQUksQ0FBQztZQUM1QixDQUFDLE1BQU07Y0FDTCxJQUFJQSxJQUFJLGFBQUpBLElBQUksZUFBSkEsSUFBSSxDQUFFcUMsTUFBTSxFQUFFO2dCQUNoQnpCLGVBQWUsQ0FBQ1osSUFBSSxDQUFDcUMsTUFBTSxFQUFFRixhQUFhLENBQUM7Y0FDN0M7WUFDRjtVQUNGLENBQUM7VUFDRDRDLGNBQWMsRUFBQW5CLGFBQUEsS0FBT21CLGNBQWM7UUFBRSxFQUN0QztNQUNIO01BQ0Esb0JBQ0VoRixLQUFBLENBQUEySCxhQUFBLENBQUEzSCxLQUFBLENBQUFvSSxRQUFBLHFCQUNFcEksS0FBQSxDQUFBMkgsYUFBQSxDQUFDM0csU0FBUyxFQUFBcUgsUUFBQSxLQUNKakIsWUFBWSxFQUNaRCxRQUFRO1FBQ1p6QyxZQUFZLEVBQUUsSUFBSSxDQUFDQSxZQUFZLENBQUM0QyxJQUFJLENBQUMsSUFBSSxDQUFFO1FBQzNDakcsUUFBUSxFQUFFLElBQUksQ0FBQ2tELEtBQUssQ0FBQ2xEO01BQVMsRUFDL0IsQ0FDRCxDQUFDO0lBRVA7RUFDRixDQUFDO0FBQ0gsQ0FBQztBQUVELE1BQU1pSCxTQUFjLEdBQUd2SCxnQkFBZ0IsQ0FBQXdILE9BQU8sQ0FBQztBQUMvQztBQUNBLE1BQU1DLGdCQUFnQixHQUFHekgsZ0JBQWdCLENBQUN3SCxPQUFBLENBQU9FLE9BQU8sQ0FBQztBQUN6REgsU0FBUyxDQUFDRyxPQUFPLEdBQUdELGdCQUFnQjtBQUNwQyxlQUFlRixTQUFTIiwiaWdub3JlTGlzdCI6W119
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","file","message","omit","getLess","styles","cls","FileIcon","DeleteOutlined","DownloadOutlined","EyeOutlined","upload","download","previewDocument","previewImage","withCustomUpload","Component","PureComponent","constructor","arguments","_defineProperty","fileList","viewId","fileListStore","fileNames","options","onComplete","onProcess","sliceSize","newVersion","props","onProgress","totalProgress","percent","res","partSize","requestConfig","uploadIngSize","fileId","ImgRes","code","data","attachId","onSuccess","listType","onError","uploadIngList","push","status","url","e","componentDidMount","convertFileList","list","newFileList","oldList","setState","i","length","item","temp","_objectSpread","name","fileName","type","size","componentDidUpdate","preProps","preState","JSON","stringify","state","getFileList","setFileList","beforeUpload","ofileList","maxSize","allowFileSuffix","checkSameFile","maxCount","showUploadList","propsList","onListChange","checkFileType","error","concat","checkList","map","indexOf","newList","uid","splice","uploadSize","names","split","suffix","_ref","newFile","files","index","window","localStorage","getItem","prefix","onDelete","render","fileCard","showDownloadIcon","showPreviewIcon","showRemoveIcon","downloadIcon","removeIcon","previewIcon","newprops","defaultProps","customRequest","bind","multiple","itemRender","originNode","currFileList","createElement","className","onClick","onPreview","style","cursor","onDownload","onRemove","width","Fragment","_extends","NscUpload","_Upload","NscUploadDragger","Dragger"],"sources":["../../../src/components/base/upload/index.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport { Upload, UploadProps } from \"antd\";\r\nimport file from \"nsc-file\";\r\nimport message from \"../message\";\r\nimport omit from \"omit.js\";\r\nimport { getLess } from \"../../utils\";\r\nimport styles from \"./index.less\";\r\nimport cls from \"classnames\";\r\nimport FileIcon from \"../common/FileIcon\";\r\nimport {\r\n DeleteOutlined,\r\n DownloadOutlined,\r\n EyeOutlined,\r\n} from \"@ant-design/icons\";\r\nconst { upload, download, previewDocument, previewImage } = file;\r\n\r\ninterface IUploadProps extends UploadProps {\r\n sliceSize?: number;\r\n maxSize?: number | boolean;\r\n onProcess?: (process) => void;\r\n onComplete?: ({ file, fileId, status }) => void;\r\n allowFileSuffix?: Array<String>; //允许上传扩展名,不带.\r\n useDefaultList?: boolean; //是否使用默认的fileList\r\n fileCard?: boolean;\r\n onListChange?: any;\r\n checkSameFile?: boolean;\r\n requestConfig?: any;\r\n newVersion?: boolean;\r\n [propsName: string]: any;\r\n}\r\nconst withCustomUpload = (Component) => {\r\n // 返回一个类组件\r\n return class extends React.PureComponent<IUploadProps, any> {\r\n state = {\r\n fileList: [],\r\n viewId: \"\",\r\n fileListStore: [],\r\n fileNames: [],\r\n };\r\n uploadIngSize = 0;\r\n uploadSize = 0;\r\n uploadIngList = [];\r\n previewUrl = {};\r\n componentDidMount() {\r\n if (this.props.fileList) {\r\n this.convertFileList(this.props.fileList);\r\n }\r\n }\r\n convertFileList(list?: Array<Object>) {\r\n const { fileList, listType } = this.props;\r\n const newFileList = [];\r\n let oldList = list ? list : fileList;\r\n this.setState(\r\n {\r\n fileListStore: [...fileList],\r\n },\r\n async () => {\r\n for (let i = 0; i < oldList.length; i++) {\r\n let item: any = oldList[i];\r\n let temp = {\r\n ...item,\r\n status: item.status,\r\n name: item.name || item.fileName,\r\n type: item.type,\r\n size: item.size,\r\n url: item.url,\r\n } as any;\r\n if (listType == \"picture-card\" && !item.url && item.fileId) {\r\n let res: any = await previewImage(\r\n item.fileId,\r\n this.props.requestConfig\r\n );\r\n if (res.code == 200) {\r\n temp.url = res.data;\r\n }\r\n }\r\n newFileList.push(temp);\r\n }\r\n this.setState({\r\n fileList: [...newFileList],\r\n });\r\n }\r\n );\r\n }\r\n componentDidUpdate(preProps, preState) {\r\n if (this.props.fileList) {\r\n if (\r\n JSON.stringify(this.props.fileList) !==\r\n JSON.stringify(this.state.fileListStore)\r\n ) {\r\n this.convertFileList(this.props.fileList);\r\n }\r\n }\r\n }\r\n getFileList() {\r\n return this.state.fileList;\r\n }\r\n setFileList(fileList: Array<Object>) {\r\n this.convertFileList(fileList);\r\n }\r\n async beforeUpload(file, ofileList) {\r\n let {\r\n maxSize = 100,\r\n allowFileSuffix,\r\n checkSameFile = true,\r\n maxCount,\r\n showUploadList,\r\n fileList: propsList,\r\n onListChange,\r\n } = this.props;\r\n let { fileList, fileListStore } = this.state;\r\n let size: number;\r\n if (allowFileSuffix && !this.checkFileType(file)) {\r\n message.error(\r\n `${file.name}文件类型不允许上传,请上传后缀为${allowFileSuffix}的类型文件!`\r\n );\r\n return false;\r\n }\r\n if (maxSize !== false) {\r\n if (maxSize === true) {\r\n maxSize = 100;\r\n }\r\n size = maxSize * 1024 * 1024;\r\n if (size < file.size) {\r\n message.error(`${file.name}文件大小超过${maxSize}M,请重新上传!`);\r\n return false;\r\n }\r\n }\r\n let fileNames = [];\r\n if (checkSameFile) {\r\n const checkList = this.props.fileList ? fileListStore : fileList;\r\n checkList.map((item) => {\r\n fileNames.push(item.name || item.fileName);\r\n });\r\n if (fileNames.indexOf(file.name) > -1 && showUploadList !== false) {\r\n message.error(`文件${file.name}已在上传列表中,请重新选择文件!`);\r\n return false;\r\n }\r\n }\r\n\r\n if (this.props.beforeUpload) {\r\n const res = await this.props.beforeUpload(file, ofileList);\r\n if (res === false) {\r\n return false;\r\n }\r\n }\r\n const newList = [...fileList];\r\n ofileList.map(async (item) => {\r\n if (\r\n !(\r\n (allowFileSuffix && !this.checkFileType(item)) ||\r\n size < item.size ||\r\n (checkSameFile && fileNames.indexOf(item.name) > -1)\r\n )\r\n ) {\r\n const temp = {\r\n fileName: item.name,\r\n percent: 0,\r\n status: \"uploading\",\r\n uid: item.uid,\r\n name: item.name,\r\n type: item.type,\r\n size: item.size,\r\n };\r\n newList.push(temp);\r\n }\r\n });\r\n\r\n if (maxCount && newList.length > maxCount) {\r\n let length = newList.length - maxCount;\r\n for (let i = 0; i < length; i++) {\r\n newList.splice(0, 1);\r\n }\r\n }\r\n this.setState({ fileList: newList },()=>{\r\n onListChange && onListChange(newList);\r\n });\r\n this.uploadSize = ofileList.length;\r\n }\r\n checkFileType(file) {\r\n const { allowFileSuffix } = this.props;\r\n const names = file.name.split(\".\");\r\n const suffix = names[names.length - 1];\r\n if (allowFileSuffix.indexOf(suffix) > -1) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n onProcess({ percent, file }: any) {\r\n const { fileList } = this.state;\r\n const { onListChange } = this.props;\r\n const newList: any = [];\r\n fileList.map((item: any) => {\r\n const newFile = { ...item };\r\n if (file.uid == item.uid) {\r\n newFile.percent = percent;\r\n }\r\n newList.push(newFile);\r\n });\r\n this.setState({\r\n fileList: newList,\r\n },()=>{\r\n onListChange && onListChange(fileList);\r\n });\r\n \r\n }\r\n async onComplete(files) {\r\n this.uploadIngSize = 0;\r\n this.uploadSize = 0;\r\n this.uploadIngList = [];\r\n const { fileList } = this.state;\r\n const { newVersion = true, requestConfig = {} } = this.props;\r\n const newList: any = [];\r\n fileList.map(async (item: any, index) => {\r\n const newFile = { ...item };\r\n files.map(async (file) => {\r\n if (file.file.uid == item.uid) {\r\n newFile.status = file.status == \"success\" ? \"done\" : file.status;\r\n newFile.fileId = file.fileId;\r\n newFile.url = file.url;\r\n if (!newVersion) {\r\n let url = `/jquick-resource/oss/endpoint/download-files?attachId=${\r\n file.fileId\r\n }&_tpk=${window.localStorage.getItem(\"token\")}`;\r\n newFile.url = requestConfig.prefix\r\n ? requestConfig.prefix + url\r\n : \"/api\" + url;\r\n }\r\n }\r\n });\r\n newList.push(newFile);\r\n });\r\n this.setState({\r\n fileList: [...newList],\r\n },()=>{\r\n const { onListChange } = this.props;\r\n onListChange && onListChange(newList);\r\n });\r\n }\r\n customRequest = async (options) => {\r\n const file = options.file;\r\n const {\r\n onComplete,\r\n onProcess,\r\n sliceSize,\r\n newVersion = true,\r\n } = this.props;\r\n const onProgress = (totalProgress: any) => {\r\n options.onProgress({ percent: totalProgress }, file);\r\n this.onProcess({ percent: totalProgress, file: file });\r\n onProcess && onProcess({ percent: totalProgress, file: file });\r\n };\r\n try {\r\n const res: any = await upload(\r\n {\r\n file: file,\r\n onProgress: onProgress,\r\n partSize: sliceSize,\r\n },\r\n this.props.requestConfig\r\n );\r\n this.uploadIngSize = this.uploadIngSize + 1;\r\n let fileId = null;\r\n let ImgRes = null;\r\n if (res.code == 200) {\r\n fileId = res.data.attachId;\r\n options.onSuccess();\r\n if (this.props.listType == \"picture-card\" && newVersion) {\r\n ImgRes = await previewImage(fileId, this.props.requestConfig);\r\n }\r\n } else {\r\n options.onError();\r\n }\r\n this.uploadIngList.push({\r\n file: options.file,\r\n fileId: fileId,\r\n status: res.code == 200 ? \"success\" : \"error\",\r\n url: ImgRes ? ImgRes.data : null,\r\n });\r\n // console.log('customRequest-uploadSize',this.uploadSize)\r\n // console.log('customRequest-uploadIngSize',this.uploadIngSize)\r\n // if (this.uploadSize == this.uploadIngSize) {\r\n this.onComplete(this.uploadIngList);\r\n // }\r\n onComplete &&\r\n onComplete({\r\n file: options.file,\r\n fileId: fileId,\r\n status: res.code == 200 ? \"success\" : \"error\",\r\n });\r\n } catch (e) {\r\n // if (this.uploadSize == this.uploadIngSize) {\r\n this.onComplete(this.uploadIngList);\r\n options.onError();\r\n // }\r\n \r\n onComplete &&\r\n onComplete({ file: options.file, fileId: \"\", status: \"error\" });\r\n }\r\n };\r\n onDelete(file) {\r\n const { fileList } = this.state;\r\n const { onListChange } = this.props;\r\n const newList: any = [];\r\n fileList.map((item: any) => {\r\n //通过文件名判断,上传是文件名是唯一的\r\n if (\r\n item.name !== file.name ||\r\n item.fileId !== file.fileId ||\r\n item.uid !== file.uid\r\n ) {\r\n newList.push(item);\r\n }\r\n });\r\n this.setState({\r\n fileList: newList,\r\n },()=>{\r\n onListChange && onListChange(newList);\r\n });\r\n \r\n }\r\n render(): React.ReactNode {\r\n let {\r\n fileList,\r\n fileCard,\r\n showUploadList = {\r\n showDownloadIcon: true,\r\n showPreviewIcon: false,\r\n showRemoveIcon: true,\r\n downloadIcon: null,\r\n removeIcon: null,\r\n previewIcon: null,\r\n } as any,\r\n requestConfig = {},\r\n } = this.props;\r\n const newprops = omit(this.props, [\r\n \"sliceSize\",\r\n \"maxSize\",\r\n \"onComplete\",\r\n \"onProcess\",\r\n \"allowFileSuffix\",\r\n \"useDefaultList\",\r\n \"fileCard\",\r\n \"onListChange\",\r\n \"newVersion\",\r\n \"requestConfig\",\r\n ]);\r\n let defaultProps = {\r\n customRequest: this.customRequest.bind(this),\r\n multiple: true,\r\n } as IUploadProps;\r\n if (fileCard) {\r\n defaultProps = {\r\n ...defaultProps,\r\n itemRender: (originNode, file: any, currFileList) => {\r\n const name = file.name || file.fileName;\r\n const names = name?.split(\".\");\r\n const suffix = names ? names[names.length - 1] : \"\";\r\n return (\r\n <div className={getLess(styles, \"file-item\")}>\r\n <div\r\n className={cls(getLess(styles, \"content\"), {\r\n [getLess(styles, \"content_error\")]: file.status == \"error\",\r\n })}\r\n >\r\n <div className={getLess(styles, \"mark-picture\")}>\r\n <FileIcon suffix={suffix} fileId={file.fileId} />\r\n </div>\r\n <div className={getLess(styles, \"name\")}>\r\n {file.name || file.fileName}\r\n </div>\r\n <div className={getLess(styles, \"icon\")}>\r\n {showUploadList.showPreviewIcon &&\r\n (file.status == \"done\"|| file.fileId) && (\r\n <div\r\n onClick={() => {\r\n if (this.props.onPreview) {\r\n this.props.onPreview(file);\r\n } else {\r\n previewDocument(file.fileId, requestConfig);\r\n }\r\n }}\r\n style={{ cursor: \"pointer\" }}\r\n >\r\n {showUploadList.downloadIcon ? (\r\n showUploadList.downloadIcon\r\n ) : (\r\n <EyeOutlined />\r\n )}\r\n </div>\r\n )}\r\n {showUploadList.showDownloadIcon &&\r\n (file.status == \"done\"|| file.fileId) && (\r\n <div\r\n onClick={() => {\r\n if (this.props.onDownload) {\r\n this.props.onDownload(file);\r\n } else {\r\n download(file.fileId, true, requestConfig);\r\n }\r\n }}\r\n style={{ cursor: \"pointer\" }}\r\n >\r\n {showUploadList.downloadIcon ? (\r\n showUploadList.downloadIcon\r\n ) : (\r\n <DownloadOutlined />\r\n )}\r\n </div>\r\n )}\r\n {showUploadList.showRemoveIcon && (\r\n <div\r\n onClick={() => {\r\n if (this.props.onRemove) {\r\n this.props.onRemove(file);\r\n } else {\r\n this.onDelete(file);\r\n }\r\n }}\r\n style={{ cursor: \"pointer\" }}\r\n >\r\n {showUploadList.downloadIcon ? (\r\n showUploadList.downloadIcon\r\n ) : (\r\n <DeleteOutlined />\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n {file.status == \"uploading\" && (\r\n <div className={getLess(styles, \"process\")}>\r\n <div\r\n className={getLess(styles, \"percent\")}\r\n style={{ width: file.percent + \"%\" }}\r\n ></div>\r\n </div>\r\n )}\r\n </div>\r\n );\r\n },\r\n };\r\n } else {\r\n defaultProps = {\r\n ...defaultProps,\r\n onDownload: (file: any) => {\r\n if (this.props.onDownload) {\r\n this.props.onDownload(file);\r\n } else {\r\n download(file.fileId, true, requestConfig);\r\n }\r\n },\r\n onRemove: (file) => {\r\n if (this.props.onRemove) {\r\n this.props.onRemove(file);\r\n } else {\r\n this.onDelete(file);\r\n }\r\n },\r\n onPreview: (file: any) => {\r\n if (this.props.onPreview) {\r\n this.props.onPreview(file);\r\n } else {\r\n if (file?.fileId) {\r\n previewDocument(file.fileId, requestConfig);\r\n }\r\n }\r\n },\r\n showUploadList: { ...showUploadList },\r\n };\r\n }\r\n return (\r\n <>\r\n <Component\r\n {...defaultProps}\r\n {...newprops}\r\n beforeUpload={this.beforeUpload.bind(this)}\r\n fileList={this.state.fileList}\r\n />\r\n </>\r\n );\r\n }\r\n };\r\n};\r\n\r\nconst NscUpload: any = withCustomUpload(Upload);\r\n// // 使用 withCustomUpload 封装 Upload.Dragger 组件\r\nconst NscUploadDragger = withCustomUpload(Upload.Dragger);\r\nNscUpload.Dragger = NscUploadDragger;\r\nexport default NscUpload;\r\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","file","message","omit","getLess","styles","cls","FileIcon","DeleteOutlined","DownloadOutlined","EyeOutlined","upload","download","previewDocument","previewImage","withCustomUpload","Component","PureComponent","constructor","arguments","_defineProperty","fileList","viewId","fileListStore","fileNames","options","onComplete","onProcess","sliceSize","newVersion","props","onProgress","totalProgress","percent","res","partSize","requestConfig","uploadIngSize","fileId","ImgRes","code","data","attachId","onSuccess","listType","onError","uploadIngList","push","status","url","e","componentDidMount","convertFileList","list","newFileList","oldList","setState","i","length","item","temp","_objectSpread","name","fileName","type","size","componentDidUpdate","preProps","preState","JSON","stringify","state","getFileList","setFileList","beforeUpload","ofileList","maxSize","allowFileSuffix","checkSameFile","maxCount","showUploadList","propsList","onListChange","checkFileType","error","concat","checkList","map","indexOf","newList","uid","splice","uploadSize","names","split","suffix","toLowerCase","toUperrcase","_ref","newFile","files","index","window","localStorage","getItem","prefix","onDelete","render","fileCard","showDownloadIcon","showPreviewIcon","showRemoveIcon","downloadIcon","removeIcon","previewIcon","newprops","defaultProps","customRequest","bind","multiple","itemRender","originNode","currFileList","createElement","className","onClick","onPreview","style","cursor","onDownload","onRemove","width","Fragment","_extends","NscUpload","_Upload","NscUploadDragger","Dragger"],"sources":["../../../src/components/base/upload/index.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport { Upload, UploadProps } from \"antd\";\r\nimport file from \"nsc-file\";\r\nimport message from \"../message\";\r\nimport omit from \"omit.js\";\r\nimport { getLess } from \"../../utils\";\r\nimport styles from \"./index.less\";\r\nimport cls from \"classnames\";\r\nimport FileIcon from \"../common/FileIcon\";\r\nimport {\r\n DeleteOutlined,\r\n DownloadOutlined,\r\n EyeOutlined,\r\n} from \"@ant-design/icons\";\r\nconst { upload, download, previewDocument, previewImage } = file;\r\n\r\ninterface IUploadProps extends UploadProps {\r\n sliceSize?: number;\r\n maxSize?: number | boolean;\r\n onProcess?: (process) => void;\r\n onComplete?: ({ file, fileId, status }) => void;\r\n allowFileSuffix?: Array<String>; //允许上传扩展名,不带.\r\n useDefaultList?: boolean; //是否使用默认的fileList\r\n fileCard?: boolean;\r\n onListChange?: any;\r\n checkSameFile?: boolean;\r\n requestConfig?: any;\r\n newVersion?: boolean;\r\n [propsName: string]: any;\r\n}\r\nconst withCustomUpload = (Component) => {\r\n // 返回一个类组件\r\n return class extends React.PureComponent<IUploadProps, any> {\r\n state = {\r\n fileList: [],\r\n viewId: \"\",\r\n fileListStore: [],\r\n fileNames: [],\r\n };\r\n uploadIngSize = 0;\r\n uploadSize = 0;\r\n uploadIngList = [];\r\n previewUrl = {};\r\n componentDidMount() {\r\n if (this.props.fileList) {\r\n this.convertFileList(this.props.fileList);\r\n }\r\n }\r\n convertFileList(list?: Array<Object>) {\r\n const { fileList, listType } = this.props;\r\n const newFileList = [];\r\n let oldList = list ? list : fileList;\r\n this.setState(\r\n {\r\n fileListStore: [...fileList],\r\n },\r\n async () => {\r\n for (let i = 0; i < oldList.length; i++) {\r\n let item: any = oldList[i];\r\n let temp = {\r\n ...item,\r\n status: item.status,\r\n name: item.name || item.fileName,\r\n type: item.type,\r\n size: item.size,\r\n url: item.url,\r\n } as any;\r\n if (listType == \"picture-card\" && !item.url && item.fileId) {\r\n let res: any = await previewImage(\r\n item.fileId,\r\n this.props.requestConfig\r\n );\r\n if (res.code == 200) {\r\n temp.url = res.data;\r\n }\r\n }\r\n newFileList.push(temp);\r\n }\r\n this.setState({\r\n fileList: [...newFileList],\r\n });\r\n }\r\n );\r\n }\r\n componentDidUpdate(preProps, preState) {\r\n if (this.props.fileList) {\r\n if (\r\n JSON.stringify(this.props.fileList) !==\r\n JSON.stringify(this.state.fileListStore)\r\n ) {\r\n this.convertFileList(this.props.fileList);\r\n }\r\n }\r\n }\r\n getFileList() {\r\n return this.state.fileList;\r\n }\r\n setFileList(fileList: Array<Object>) {\r\n this.convertFileList(fileList);\r\n }\r\n async beforeUpload(file, ofileList) {\r\n let {\r\n maxSize = 100,\r\n allowFileSuffix,\r\n checkSameFile = true,\r\n maxCount,\r\n showUploadList,\r\n fileList: propsList,\r\n onListChange,\r\n } = this.props;\r\n let { fileList, fileListStore } = this.state;\r\n let size: number;\r\n if (allowFileSuffix && !this.checkFileType(file)) {\r\n message.error(\r\n `${file.name}文件类型不允许上传,请上传后缀为${allowFileSuffix}的类型文件!`\r\n );\r\n return false;\r\n }\r\n if (maxSize !== false) {\r\n if (maxSize === true) {\r\n maxSize = 100;\r\n }\r\n size = maxSize * 1024 * 1024;\r\n if (size < file.size) {\r\n message.error(`${file.name}文件大小超过${maxSize}M,请重新上传!`);\r\n return false;\r\n }\r\n }\r\n let fileNames = [];\r\n if (checkSameFile) {\r\n const checkList = this.props.fileList ? fileListStore : fileList;\r\n checkList.map((item) => {\r\n fileNames.push(item.name || item.fileName);\r\n });\r\n if (fileNames.indexOf(file.name) > -1 && showUploadList !== false) {\r\n message.error(`文件${file.name}已在上传列表中,请重新选择文件!`);\r\n return false;\r\n }\r\n }\r\n\r\n if (this.props.beforeUpload) {\r\n const res = await this.props.beforeUpload(file, ofileList);\r\n if (res === false) {\r\n return false;\r\n }\r\n }\r\n const newList = [...fileList];\r\n ofileList.map(async (item) => {\r\n if (\r\n !(\r\n (allowFileSuffix && !this.checkFileType(item)) ||\r\n size < item.size ||\r\n (checkSameFile && fileNames.indexOf(item.name) > -1)\r\n )\r\n ) {\r\n const temp = {\r\n fileName: item.name,\r\n percent: 0,\r\n status: \"uploading\",\r\n uid: item.uid,\r\n name: item.name,\r\n type: item.type,\r\n size: item.size,\r\n };\r\n newList.push(temp);\r\n }\r\n });\r\n\r\n if (maxCount && newList.length > maxCount) {\r\n let length = newList.length - maxCount;\r\n for (let i = 0; i < length; i++) {\r\n newList.splice(0, 1);\r\n }\r\n }\r\n this.setState({ fileList: newList }, () => {\r\n onListChange && onListChange(newList);\r\n });\r\n this.uploadSize = ofileList.length;\r\n }\r\n checkFileType(file) {\r\n const { allowFileSuffix } = this.props;\r\n const names = file.name.split(\".\");\r\n const suffix = names[names.length - 1];\r\n if (allowFileSuffix.indexOf(suffix) > -1 || allowFileSuffix.indexOf(suffix.toLowerCase()) > -1 || allowFileSuffix.indexOf(suffix.toUperrcase()) > -1) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n onProcess({ percent, file }: any) {\r\n const { fileList } = this.state;\r\n const { onListChange } = this.props;\r\n const newList: any = [];\r\n fileList.map((item: any) => {\r\n const newFile = { ...item };\r\n if (file.uid == item.uid) {\r\n newFile.percent = percent;\r\n }\r\n newList.push(newFile);\r\n });\r\n this.setState({\r\n fileList: newList,\r\n }, () => {\r\n onListChange && onListChange(fileList);\r\n });\r\n\r\n }\r\n async onComplete(files) {\r\n this.uploadIngSize = 0;\r\n this.uploadSize = 0;\r\n this.uploadIngList = [];\r\n const { fileList } = this.state;\r\n const { newVersion = true, requestConfig = {} } = this.props;\r\n const newList: any = [];\r\n fileList.map(async (item: any, index) => {\r\n const newFile = { ...item };\r\n files.map(async (file) => {\r\n if (file.file.uid == item.uid) {\r\n newFile.status = file.status == \"success\" ? \"done\" : file.status;\r\n newFile.fileId = file.fileId;\r\n newFile.url = file.url;\r\n if (!newVersion) {\r\n let url = `/jquick-resource/oss/endpoint/download-files?attachId=${file.fileId\r\n }&_tpk=${window.localStorage.getItem(\"token\")}`;\r\n newFile.url = requestConfig.prefix\r\n ? requestConfig.prefix + url\r\n : \"/api\" + url;\r\n }\r\n }\r\n });\r\n newList.push(newFile);\r\n });\r\n this.setState({\r\n fileList: [...newList],\r\n }, () => {\r\n const { onListChange } = this.props;\r\n onListChange && onListChange(newList);\r\n });\r\n }\r\n customRequest = async (options) => {\r\n const file = options.file;\r\n const {\r\n onComplete,\r\n onProcess,\r\n sliceSize,\r\n newVersion = true,\r\n } = this.props;\r\n const onProgress = (totalProgress: any) => {\r\n options.onProgress({ percent: totalProgress }, file);\r\n this.onProcess({ percent: totalProgress, file: file });\r\n onProcess && onProcess({ percent: totalProgress, file: file });\r\n };\r\n try {\r\n const res: any = await upload(\r\n {\r\n file: file,\r\n onProgress: onProgress,\r\n partSize: sliceSize,\r\n },\r\n this.props.requestConfig\r\n );\r\n this.uploadIngSize = this.uploadIngSize + 1;\r\n let fileId = null;\r\n let ImgRes = null;\r\n if (res.code == 200) {\r\n fileId = res.data.attachId;\r\n options.onSuccess();\r\n if (this.props.listType == \"picture-card\" && newVersion) {\r\n ImgRes = await previewImage(fileId, this.props.requestConfig);\r\n }\r\n } else {\r\n options.onError();\r\n }\r\n this.uploadIngList.push({\r\n file: options.file,\r\n fileId: fileId,\r\n status: res.code == 200 ? \"success\" : \"error\",\r\n url: ImgRes ? ImgRes.data : null,\r\n });\r\n // console.log('customRequest-uploadSize',this.uploadSize)\r\n // console.log('customRequest-uploadIngSize',this.uploadIngSize)\r\n // if (this.uploadSize == this.uploadIngSize) {\r\n this.onComplete(this.uploadIngList);\r\n // }\r\n onComplete &&\r\n onComplete({\r\n file: options.file,\r\n fileId: fileId,\r\n status: res.code == 200 ? \"success\" : \"error\",\r\n });\r\n } catch (e) {\r\n // if (this.uploadSize == this.uploadIngSize) {\r\n this.onComplete(this.uploadIngList);\r\n options.onError();\r\n // }\r\n\r\n onComplete &&\r\n onComplete({ file: options.file, fileId: \"\", status: \"error\" });\r\n }\r\n };\r\n onDelete(file) {\r\n const { fileList } = this.state;\r\n const { onListChange } = this.props;\r\n const newList: any = [];\r\n fileList.map((item: any) => {\r\n //通过文件名判断,上传是文件名是唯一的\r\n if (\r\n item.name !== file.name ||\r\n item.fileId !== file.fileId ||\r\n item.uid !== file.uid\r\n ) {\r\n newList.push(item);\r\n }\r\n });\r\n this.setState({\r\n fileList: newList,\r\n }, () => {\r\n onListChange && onListChange(newList);\r\n });\r\n\r\n }\r\n render(): React.ReactNode {\r\n let {\r\n fileList,\r\n fileCard,\r\n showUploadList = {\r\n showDownloadIcon: true,\r\n showPreviewIcon: false,\r\n showRemoveIcon: true,\r\n downloadIcon: null,\r\n removeIcon: null,\r\n previewIcon: null,\r\n } as any,\r\n requestConfig = {},\r\n } = this.props;\r\n const newprops = omit(this.props, [\r\n \"sliceSize\",\r\n \"maxSize\",\r\n \"onComplete\",\r\n \"onProcess\",\r\n \"allowFileSuffix\",\r\n \"useDefaultList\",\r\n \"fileCard\",\r\n \"onListChange\",\r\n \"newVersion\",\r\n \"requestConfig\",\r\n ]);\r\n let defaultProps = {\r\n customRequest: this.customRequest.bind(this),\r\n multiple: true,\r\n } as IUploadProps;\r\n if (fileCard) {\r\n defaultProps = {\r\n ...defaultProps,\r\n itemRender: (originNode, file: any, currFileList) => {\r\n const name = file.name || file.fileName;\r\n const names = name?.split(\".\");\r\n const suffix = names ? names[names.length - 1] : \"\";\r\n return (\r\n <div className={getLess(styles, \"file-item\")}>\r\n <div\r\n className={cls(getLess(styles, \"content\"), {\r\n [getLess(styles, \"content_error\")]: file.status == \"error\",\r\n })}\r\n >\r\n <div className={getLess(styles, \"mark-picture\")}>\r\n <FileIcon suffix={suffix} fileId={file.fileId} />\r\n </div>\r\n <div className={getLess(styles, \"name\")}>\r\n {file.name || file.fileName}\r\n </div>\r\n <div className={getLess(styles, \"icon\")}>\r\n {showUploadList.showPreviewIcon &&\r\n (file.status == \"done\" || file.fileId) && (\r\n <div\r\n onClick={() => {\r\n if (this.props.onPreview) {\r\n this.props.onPreview(file);\r\n } else {\r\n previewDocument(file.fileId, requestConfig);\r\n }\r\n }}\r\n style={{ cursor: \"pointer\" }}\r\n >\r\n {showUploadList.downloadIcon ? (\r\n showUploadList.downloadIcon\r\n ) : (\r\n <EyeOutlined />\r\n )}\r\n </div>\r\n )}\r\n {showUploadList.showDownloadIcon &&\r\n (file.status == \"done\" || file.fileId) && (\r\n <div\r\n onClick={() => {\r\n if (this.props.onDownload) {\r\n this.props.onDownload(file);\r\n } else {\r\n download(file.fileId, true, requestConfig);\r\n }\r\n }}\r\n style={{ cursor: \"pointer\" }}\r\n >\r\n {showUploadList.downloadIcon ? (\r\n showUploadList.downloadIcon\r\n ) : (\r\n <DownloadOutlined />\r\n )}\r\n </div>\r\n )}\r\n {showUploadList.showRemoveIcon && (\r\n <div\r\n onClick={() => {\r\n if (this.props.onRemove) {\r\n this.props.onRemove(file);\r\n } else {\r\n this.onDelete(file);\r\n }\r\n }}\r\n style={{ cursor: \"pointer\" }}\r\n >\r\n {showUploadList.downloadIcon ? (\r\n showUploadList.downloadIcon\r\n ) : (\r\n <DeleteOutlined />\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n {file.status == \"uploading\" && (\r\n <div className={getLess(styles, \"process\")}>\r\n <div\r\n className={getLess(styles, \"percent\")}\r\n style={{ width: file.percent + \"%\" }}\r\n ></div>\r\n </div>\r\n )}\r\n </div>\r\n );\r\n },\r\n };\r\n } else {\r\n defaultProps = {\r\n ...defaultProps,\r\n onDownload: (file: any) => {\r\n if (this.props.onDownload) {\r\n this.props.onDownload(file);\r\n } else {\r\n download(file.fileId, true, requestConfig);\r\n }\r\n },\r\n onRemove: (file) => {\r\n if (this.props.onRemove) {\r\n this.props.onRemove(file);\r\n } else {\r\n this.onDelete(file);\r\n }\r\n },\r\n onPreview: (file: any) => {\r\n if (this.props.onPreview) {\r\n this.props.onPreview(file);\r\n } else {\r\n if (file?.fileId) {\r\n previewDocument(file.fileId, requestConfig);\r\n }\r\n }\r\n },\r\n showUploadList: { ...showUploadList },\r\n };\r\n }\r\n return (\r\n <>\r\n <Component\r\n {...defaultProps}\r\n {...newprops}\r\n beforeUpload={this.beforeUpload.bind(this)}\r\n fileList={this.state.fileList}\r\n />\r\n </>\r\n );\r\n }\r\n };\r\n};\r\n\r\nconst NscUpload: any = withCustomUpload(Upload);\r\n// // 使用 withCustomUpload 封装 Upload.Dragger 组件\r\nconst NscUploadDragger = withCustomUpload(Upload.Dragger);\r\nNscUpload.Dragger = NscUploadDragger;\r\nexport default NscUpload;\r\n"],"mappings":"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","ignoreList":[]}
@@ -18,7 +18,7 @@ declare class EditorForm extends PureComponent<any> {
18
18
  setLoading(loading: boolean): void;
19
19
  setFieldsValue(values: any): void;
20
20
  getFieldsValue(): any;
21
- doSubmit(data: any, label: any): void;
21
+ doSubmit(formdata: any, label: any): void;
22
22
  onSubmit(): void;
23
23
  valueChange({ type, dictName }: {
24
24
  type: any;
@@ -1,6 +1,9 @@
1
+ const _excluded = ["data"];
1
2
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
3
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
4
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
5
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
6
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
4
7
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
5
8
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
6
9
  function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
@@ -104,21 +107,24 @@ class EditorForm extends PureComponent {
104
107
  var _this$formRef$current6;
105
108
  return (_this$formRef$current6 = this.formRef.current) === null || _this$formRef$current6 === void 0 ? void 0 : _this$formRef$current6.getFieldsValue();
106
109
  }
107
- doSubmit(data, label) {
110
+ doSubmit(formdata, label) {
108
111
  var _this$formRef$current7;
109
112
  const {
110
113
  submitUrl,
111
114
  submitParams,
112
115
  callBack
113
116
  } = this.props;
117
+ const {
118
+ data = {}
119
+ } = submitParams,
120
+ otherParams = _objectWithoutProperties(submitParams, _excluded);
114
121
  if (!submitUrl) {
115
122
  throw new Error("url不能为空!");
116
123
  }
117
- (_this$formRef$current7 = this.formRef.current) === null || _this$formRef$current7 === void 0 || _this$formRef$current7.onSubmit(submitUrl, {
118
- data: _objectSpread({}, data),
119
- noUndefined: label == "编辑",
120
- submitParams
121
- }, res => {
124
+ (_this$formRef$current7 = this.formRef.current) === null || _this$formRef$current7 === void 0 || _this$formRef$current7.onSubmit(submitUrl, _objectSpread({
125
+ data: _objectSpread(_objectSpread({}, formdata), data),
126
+ noUndefined: label == "编辑"
127
+ }, otherParams), res => {
122
128
  const {
123
129
  code
124
130
  } = res;
@@ -137,10 +143,7 @@ class EditorForm extends PureComponent {
137
143
  onSubmit() {
138
144
  var _this$formRef$current8, _this$formRef$current9;
139
145
  const {
140
- submitUrl = "",
141
- submitParams = {},
142
- onSubmit,
143
- callBack
146
+ onSubmit
144
147
  } = this.props;
145
148
  const {
146
149
  label,
@@ -322,4 +325,4 @@ class EditorForm extends PureComponent {
322
325
  }
323
326
  }
324
327
  export default EditorForm;
325
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIlB1cmVDb21wb25lbnQiLCJGb3JtIiwiZ2V0TGVzcyIsImdldE5vZGUiLCJtZXNzYWdlIiwiQ29sIiwiUm93IiwiaXNFbXB0eU9iaiIsIm1vbWVudCIsInN0eWxlcyIsImxvZGFzaCIsIkJ1dHRvbiIsIlVwbG9hZCIsIkVkaXRvckZvcm0iLCJjb25zdHJ1Y3RvciIsImFyZ3VtZW50cyIsIl9kZWZpbmVQcm9wZXJ0eSIsImNyZWF0ZVJlZiIsImxvYWRpbmciLCJsYWJlbCIsImVkaXRvckZsYWciLCJ2YWx1ZSIsImRpY3ROYW1lcyIsImZpbGVMaXN0Iiwic2hvdyIsIm9yZ1ZhbHVlIiwiZWRpdG9yZmxhZyIsImxlbmd0aCIsInVuZGVmaW5lZCIsInNldFN0YXRlIiwiX3RoaXMkZm9ybVJlZiRjdXJyZW50IiwiY2xvbmVEZWVwIiwiZGF0ZUZvcm1hdCIsImtleSIsIm9sZGRhdGEiLCJBcnJheSIsImlzQXJyYXkiLCJmb3JtUmVmIiwiY3VycmVudCIsInNob3dGb3JtIiwiX3RoaXMkZm9ybVJlZiRjdXJyZW50MiIsInByb3BzIiwiZGVmYXVsdFZhbHVlIiwiaGlkZSIsIl90aGlzJGZvcm1SZWYkY3VycmVudDMiLCJvbkhpZGVGb3JtIiwiaGlkZUZvcm0iLCJfdGhpcyRmb3JtUmVmJGN1cnJlbnQ0Iiwic2V0TG9hZGluZyIsInNldEZpZWxkc1ZhbHVlIiwidmFsdWVzIiwiX3RoaXMkZm9ybVJlZiRjdXJyZW50NSIsImdldEZpZWxkc1ZhbHVlIiwiX3RoaXMkZm9ybVJlZiRjdXJyZW50NiIsImRvU3VibWl0IiwiZGF0YSIsIl90aGlzJGZvcm1SZWYkY3VycmVudDciLCJzdWJtaXRVcmwiLCJzdWJtaXRQYXJhbXMiLCJjYWxsQmFjayIsIkVycm9yIiwib25TdWJtaXQiLCJfb2JqZWN0U3ByZWFkIiwibm9VbmRlZmluZWQiLCJyZXMiLCJjb2RlIiwic3VjY2VzcyIsIl90aGlzJGZvcm1SZWYkY3VycmVudDgiLCJfdGhpcyRmb3JtUmVmJGN1cnJlbnQ5Iiwic3RhdGUiLCJmb3JtVmFsdWUiLCJ2YWxpZCIsInZhbGlkYXRlRmllbGRzIiwidGhlbiIsImRhdGVWYWx1ZUZvcm1hdCIsImZvcm1hdCIsImlkIiwiY2F0Y2giLCJlcnJvckluZm8iLCJ2YWx1ZUNoYW5nZSIsIl9yZWYiLCJ2YWx1ZU9wdGlvbiIsInR5cGUiLCJkaWN0TmFtZSIsIm5ld05hbWVzIiwib25DaGFuZ2UiLCJyZW5kZXIiLCJmb3JtUHJvcHMiLCJvdGhlclByb3BzIiwibW9kYWxQcm9wcyIsInRpdGxlIiwib25PayIsImJpbmQiLCJvbkNhbmNlbCIsIm9rQnV0dG9uUHJvcHMiLCJjZW50ZXJlZCIsIndpZHRoIiwibmV3VmFsaWQiLCJkcmF3ZXJQcm9wcyIsIm9uQ2xvc2UiLCJmb290ZXIiLCJjcmVhdGVFbGVtZW50IiwiX2V4dGVuZHMiLCJyZWYiLCJzaG93TW9kZWwiLCJmb3JtVHlwZSIsImxhYmVsQ29sIiwiZmxleCIsIndyYXBwZXJDb2wiLCJvblZhbHVlc0NoYW5nZSIsImNoYW5nZWRWYWx1ZXMiLCJhbGxWYWx1ZXMiLCJvbkZvcm1DaGFuZ2UiLCJjaGFuZ2VWYWxpZCIsImNsYXNzTmFtZSIsImd1dHRlciIsIm1hcCIsIml0ZW0iLCJpbmRleCIsIml0ZW1Qcm9wcyIsInZhbHVlRm9ybWF0IiwibmFtZSIsImFsbG93Q2hhcnMiLCJwbGFjZWhvbGRlciIsImNvbmNhdCIsInNob3dDb3VudCIsImRpc2FibGVkIiwicnVsZXMiLCJwdXNoIiwic3BhbiIsIkl0ZW0iLCJjb21wb25lbnROYW1lIiwib25MaXN0Q2hhbmdlIiwibGlzdCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3BhZ2UvQmFzZVBhZ2UvRm9ybS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IFB1cmVDb21wb25lbnQgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IEZvcm0gZnJvbSBcIi4uLy4uL2Jhc2UvZm9ybVwiO1xyXG5pbXBvcnQgeyBnZXRMZXNzLCBnZXROb2RlIH0gZnJvbSBcIi4uLy4uL3V0aWxzXCI7XHJcbmltcG9ydCBtZXNzYWdlIGZyb20gXCIuLi8uLi9iYXNlL21lc3NhZ2VcIjtcclxuaW1wb3J0IENvbCBmcm9tIFwiLi4vLi4vYmFzZS9ncmlkL0NvbFwiO1xyXG5pbXBvcnQgUm93IGZyb20gXCIuLi8uLi9iYXNlL2dyaWQvUm93XCI7XHJcbmltcG9ydCB7IGlzRW1wdHlPYmogfSBmcm9tIFwiQGJqLW5zYy9mdW5jdGlvbnNcIjtcclxuaW1wb3J0IG1vbWVudCBmcm9tIFwibW9tZW50XCI7XHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vaW5kZXgubW9kdWxlLmxlc3NcIjtcclxuaW1wb3J0IHV0aWxzIGZyb20gXCIuLi8uLi91dGlsc1wiO1xyXG5pbXBvcnQgbG9kYXNoIGZyb20gXCJsb2Rhc2hcIjtcclxuaW1wb3J0IEJ1dHRvbiBmcm9tIFwiLi4vLi4vYmFzZS9idXR0b25cIjtcclxuaW1wb3J0IFVwbG9hZCBmcm9tICcuLi8uLi9iYXNlL3VwbG9hZCdcclxuY2xhc3MgRWRpdG9yRm9ybSBleHRlbmRzIFB1cmVDb21wb25lbnQ8YW55PiB7XHJcbiAgZm9ybVJlZiA9IFJlYWN0LmNyZWF0ZVJlZjxhbnk+KCk7XHJcbiAgc3RhdGUgPSB7XHJcbiAgICBsb2FkaW5nOiBmYWxzZSxcclxuICAgIGxhYmVsOiBcIlwiLFxyXG4gICAgZWRpdG9yRmxhZzogdHJ1ZSxcclxuICAgIHZhbHVlOiB7fSBhcyBhbnksXHJcbiAgICBkaWN0TmFtZXM6IHt9IGFzIGFueSxcclxuICAgIGZpbGVMaXN0OiB7fSBhcyBhbnlcclxuICB9O1xyXG4gIHZhbGlkOiBhbnkgPSBbXTtcclxuICBkYXRlVmFsdWVGb3JtYXQgPSB7fSBhcyBhbnk7XHJcbiAgZGF0ZUZvcm1hdCA9IHt9IGFzIGFueTtcclxuICAvL+ihqOWNleaYvuekulxyXG4gIHNob3cob3JnVmFsdWU/OiBhbnksIGVkaXRvcmZsYWcgPSBcImFkZFwiKSB7XHJcbiAgICBsZXQgbGFiZWwgPSBcIuaWsOWinlwiO1xyXG4gICAgaWYgKG9yZ1ZhbHVlICYmIGVkaXRvcmZsYWcgPT0gXCJlZGl0b3JcIikge1xyXG4gICAgICBsYWJlbCA9IFwi57yW6L6RXCI7XHJcbiAgICB9IGVsc2UgaWYgKG9yZ1ZhbHVlICYmIGVkaXRvcmZsYWcgPT0gXCJkZXRhaWxcIikge1xyXG4gICAgICBsYWJlbCA9IFwi5p+l55yLXCI7XHJcbiAgICB9XHJcbiAgICBpZiAob3JnVmFsdWUpIHtcclxuICAgICAgdGhpcy5zZXRTdGF0ZShcclxuICAgICAgICB7XHJcbiAgICAgICAgICBsYWJlbDogbGFiZWwsXHJcbiAgICAgICAgICB2YWx1ZTogb3JnVmFsdWUsXHJcbiAgICAgICAgfSxcclxuICAgICAgICAoKSA9PiB7XHJcbiAgICAgICAgICBsZXQgdmFsdWUgPSBsb2Rhc2guY2xvbmVEZWVwKG9yZ1ZhbHVlKTtcclxuICAgICAgICAgIGlmICghaXNFbXB0eU9iaih0aGlzLmRhdGVGb3JtYXQpKSB7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGtleSBpbiB0aGlzLmRhdGVGb3JtYXQpIHtcclxuICAgICAgICAgICAgICBsZXQgb2xkZGF0YSA9IHZhbHVlW2tleV07XHJcbiAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkob2xkZGF0YSkpIHtcclxuICAgICAgICAgICAgICAgIHZhbHVlW2tleV0gPSBbXHJcbiAgICAgICAgICAgICAgICAgIG1vbWVudChvbGRkYXRhWzBdLCB0aGlzLmRhdGVGb3JtYXRba2V5XSksXHJcbiAgICAgICAgICAgICAgICAgIG1vbWVudChvbGRkYXRhWzFdLCB0aGlzLmRhdGVGb3JtYXRba2V5XSksXHJcbiAgICAgICAgICAgICAgICBdO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB2YWx1ZVtrZXldID0gbW9tZW50KG9sZGRhdGEsIHRoaXMuZGF0ZUZvcm1hdFtrZXldKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuZm9ybVJlZi5jdXJyZW50Py5zaG93Rm9ybSh2YWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZXRTdGF0ZShcclxuICAgICAgICB7XHJcbiAgICAgICAgICBsYWJlbDogbGFiZWwsXHJcbiAgICAgICAgfSxcclxuICAgICAgICAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmZvcm1SZWYuY3VycmVudD8uc2hvd0Zvcm0odGhpcy5wcm9wcy5kZWZhdWx0VmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcbiAgaGlkZShoaWRlID0gdHJ1ZSkge1xyXG4gICAgY29uc3QgeyBvbkhpZGVGb3JtIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgaWYgKG9uSGlkZUZvcm0pIHtcclxuICAgICAgb25IaWRlRm9ybSAmJiBvbkhpZGVGb3JtKCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0U3RhdGUoeyBsb2FkaW5nOiBmYWxzZSB9KTtcclxuICAgIGhpZGUgJiYgdGhpcy5mb3JtUmVmLmN1cnJlbnQ/LmhpZGVGb3JtKCk7XHJcbiAgfVxyXG4gIGhpZGVGb3JtKCkge1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7IGxvYWRpbmc6IGZhbHNlIH0pO1xyXG4gICAgdGhpcy5mb3JtUmVmLmN1cnJlbnQ/LmhpZGVGb3JtKCk7XHJcbiAgfVxyXG4gIHNldExvYWRpbmcobG9hZGluZzogYm9vbGVhbikge1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7IGxvYWRpbmc6IGxvYWRpbmcgfSk7XHJcbiAgfVxyXG4gIHNldEZpZWxkc1ZhbHVlKHZhbHVlcykge1xyXG4gICAgdGhpcy5mb3JtUmVmLmN1cnJlbnQ/LnNldEZpZWxkc1ZhbHVlKHZhbHVlcyk7XHJcbiAgfVxyXG4gIGdldEZpZWxkc1ZhbHVlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZm9ybVJlZi5jdXJyZW50Py5nZXRGaWVsZHNWYWx1ZSgpO1xyXG4gIH1cclxuICBkb1N1Ym1pdChkYXRhLCBsYWJlbCkge1xyXG4gICAgY29uc3QgeyBzdWJtaXRVcmwsIHN1Ym1pdFBhcmFtcywgY2FsbEJhY2sgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBpZiAoIXN1Ym1pdFVybCkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJ1cmzkuI3og73kuLrnqbrvvIFcIik7XHJcbiAgICB9XHJcbiAgICB0aGlzLmZvcm1SZWYuY3VycmVudD8ub25TdWJtaXQoXHJcbiAgICAgIHN1Ym1pdFVybCxcclxuICAgICAge1xyXG4gICAgICAgIGRhdGE6IHsgLi4uZGF0YSB9LFxyXG4gICAgICAgIG5vVW5kZWZpbmVkOiBsYWJlbCA9PSBcIue8lui+kVwiLFxyXG4gICAgICAgIHN1Ym1pdFBhcmFtcyxcclxuICAgICAgfSxcclxuICAgICAgKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgY29uc3QgeyBjb2RlIH0gPSByZXM7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGxvYWRpbmc6IGZhbHNlIH0pO1xyXG4gICAgICAgIGlmIChjb2RlID09PSAyMDApIHtcclxuICAgICAgICAgIG1lc3NhZ2Uuc3VjY2VzcyhsYWJlbCArIFwi5oiQ5YqfXCIpO1xyXG4gICAgICAgICAgdGhpcy5oaWRlKHRydWUpO1xyXG4gICAgICAgICAgY2FsbEJhY2sgJiYgY2FsbEJhY2soKTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5oaWRlKGZhbHNlKTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcbiAgb25TdWJtaXQoKSB7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIHN1Ym1pdFVybCA9IFwiXCIsXHJcbiAgICAgIHN1Ym1pdFBhcmFtcyA9IHt9LFxyXG4gICAgICBvblN1Ym1pdCxcclxuICAgICAgY2FsbEJhY2ssXHJcbiAgICB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHsgbGFiZWwsIHZhbHVlLCBkaWN0TmFtZXMgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBjb25zdCBmb3JtVmFsdWUgPSB0aGlzLmZvcm1SZWYuY3VycmVudD8uZ2V0RmllbGRzVmFsdWUoKTtcclxuICAgIGxldCB2YWxpZCA9IHRoaXMudmFsaWQ7XHJcbiAgICB0aGlzLmZvcm1SZWYuY3VycmVudFxyXG4gICAgICA/LnZhbGlkYXRlRmllbGRzKHZhbGlkKVxyXG4gICAgICAudGhlbigoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGxvYWRpbmc6IHRydWUgfSk7XHJcbiAgICAgICAgbGV0IGRhdGEgPSB7IC4uLmZvcm1WYWx1ZSwgLi4uZGljdE5hbWVzIH07XHJcbiAgICAgICAgaWYgKCFpc0VtcHR5T2JqKHRoaXMuZGF0ZVZhbHVlRm9ybWF0KSkge1xyXG4gICAgICAgICAgZm9yIChsZXQga2V5IGluIHRoaXMuZGF0ZVZhbHVlRm9ybWF0KSB7XHJcbiAgICAgICAgICAgIGxldCBvbGRkYXRhID0gZGF0YVtrZXldO1xyXG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShvbGRkYXRhKSkge1xyXG4gICAgICAgICAgICAgIGRhdGFba2V5XSA9IFtcclxuICAgICAgICAgICAgICAgIG1vbWVudChvbGRkYXRhWzBdKS5mb3JtYXQodGhpcy5kYXRlVmFsdWVGb3JtYXRba2V5XSksXHJcbiAgICAgICAgICAgICAgICBtb21lbnQob2xkZGF0YVsxXSkuZm9ybWF0KHRoaXMuZGF0ZVZhbHVlRm9ybWF0W2tleV0pLFxyXG4gICAgICAgICAgICAgIF07XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgZGF0YVtrZXldID0gbW9tZW50KG9sZGRhdGEpLmZvcm1hdCh0aGlzLmRhdGVWYWx1ZUZvcm1hdFtrZXldKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGxhYmVsID09IFwi57yW6L6RXCIpIHtcclxuICAgICAgICAgIGRhdGEgPSB7IC4uLmRhdGEsIGlkOiB2YWx1ZT8uaWQgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG9uU3VibWl0KSB7XHJcbiAgICAgICAgICBvblN1Ym1pdCAmJiBvblN1Ym1pdChkYXRhLCBsYWJlbCk7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZG9TdWJtaXQoZGF0YSwgbGFiZWwpXHJcbiAgICAgIH0pXHJcbiAgICAgIC5jYXRjaCgoZXJyb3JJbmZvOiBhbnkpID0+IHsgfSk7XHJcbiAgfVxyXG4gIHZhbHVlQ2hhbmdlKHsgdHlwZSwgZGljdE5hbWUgfSwgcHJvcHMsIHZhbHVlLCB2YWx1ZU9wdGlvbiwgZGF0YSkge1xyXG4gICAgaWYgKHZhbHVlT3B0aW9uKSB7XHJcbiAgICAgIGlmIChkaWN0TmFtZSkge1xyXG4gICAgICAgIGNvbnN0IHsgZGljdE5hbWVzIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgICAgIGNvbnN0IG5ld05hbWVzID0geyAuLi5kaWN0TmFtZXMgfSBhcyBhbnk7XHJcbiAgICAgICAgbmV3TmFtZXNbZGljdE5hbWVdID0gdmFsdWVPcHRpb24ubGFiZWw7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICBkaWN0TmFtZXM6IG5ld05hbWVzLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAocHJvcHMub25DaGFuZ2UpIHtcclxuICAgICAgcHJvcHMub25DaGFuZ2UodmFsdWUsIHZhbHVlT3B0aW9uLCBkYXRhKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlbmRlcigpIHtcclxuICAgIGNvbnN0IHsgZm9ybVByb3BzID0gW10sIG90aGVyUHJvcHMgPSB7fSB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHsgbG9hZGluZywgbGFiZWwgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBsZXQgbW9kYWxQcm9wcyA9IHtcclxuICAgICAgdGl0bGU6IGxhYmVsLFxyXG4gICAgICBvbk9rOiB0aGlzLm9uU3VibWl0LmJpbmQodGhpcyksXHJcbiAgICAgIG9uQ2FuY2VsOiB0aGlzLmhpZGUuYmluZCh0aGlzKSxcclxuICAgICAgb2tCdXR0b25Qcm9wczogeyBsb2FkaW5nOiBsb2FkaW5nIH0sXHJcbiAgICAgIGNlbnRlcmVkOiB0cnVlLFxyXG4gICAgICB3aWR0aDogXCI1MHZ3XCIsXHJcbiAgICB9IGFzIGFueTtcclxuXHJcbiAgICBjb25zdCBuZXdWYWxpZDogYW55W10gPSBbXTtcclxuICAgIGxldCBkcmF3ZXJQcm9wcyA9IHtcclxuICAgICAgdGl0bGU6IGxhYmVsLFxyXG4gICAgICBvbk9rOiB0aGlzLm9uU3VibWl0LmJpbmQodGhpcyksXHJcbiAgICAgIG9uQ2xvc2U6IHRoaXMuaGlkZS5iaW5kKHRoaXMpLFxyXG4gICAgICB3aWR0aDogXCI1MHZ3XCIsXHJcbiAgICB9IGFzIGFueTtcclxuICAgIGlmIChsYWJlbCA9PSBcIuafpeeci1wiKSB7XHJcbiAgICAgIG1vZGFsUHJvcHMuZm9vdGVyID0gbnVsbDtcclxuICAgICAgZHJhd2VyUHJvcHMuZm9vdGVyID0gbnVsbDtcclxuICAgIH1cclxuICAgIHRoaXMuZGF0ZVZhbHVlRm9ybWF0ID0ge307XHJcbiAgICB0aGlzLmRhdGVGb3JtYXQgPSB7fTtcclxuXHJcbiAgICByZXR1cm4gKFxyXG4gICAgICA8Rm9ybVxyXG4gICAgICAgIHJlZj17dGhpcy5mb3JtUmVmfVxyXG4gICAgICAgIHNob3dNb2RlbD17dGhpcy5wcm9wcy5mb3JtVHlwZX1cclxuICAgICAgICBtb2RhbFByb3BzPXt7IC4uLm1vZGFsUHJvcHMgfX1cclxuICAgICAgICBkcmF3ZXJQcm9wcz17eyAuLi5kcmF3ZXJQcm9wcyB9fVxyXG4gICAgICAgIGxhYmVsQ29sPXt7IGZsZXg6IFwiMTAwcHhcIiB9fVxyXG4gICAgICAgIHdyYXBwZXJDb2w9e3sgZmxleDogXCIxNXZ3XCIgfX1cclxuICAgICAgICBvblZhbHVlc0NoYW5nZT17KGNoYW5nZWRWYWx1ZXMsIGFsbFZhbHVlcykgPT4ge1xyXG4gICAgICAgICAgY29uc3QgeyBvbkZvcm1DaGFuZ2UgfSA9IHRoaXMucHJvcHM7XHJcbiAgICAgICAgICBvbkZvcm1DaGFuZ2UgJiYgb25Gb3JtQ2hhbmdlKGNoYW5nZWRWYWx1ZXMsIGFsbFZhbHVlcyk7XHJcbiAgICAgICAgfX1cclxuICAgICAgICBjaGFuZ2VWYWxpZD17dGhpcy5wcm9wcy5jaGFuZ2VWYWxpZH1cclxuICAgICAgICB7Li4ub3RoZXJQcm9wc31cclxuICAgICAgPlxyXG4gICAgICAgIHsvKiA8ZGl2PiAqL31cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiZm9ybVwiKX0+XHJcbiAgICAgICAgICA8Um93IGd1dHRlcj17MjR9PlxyXG4gICAgICAgICAgICB7Zm9ybVByb3BzLm1hcCgoaXRlbTogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgICAgICAgY29uc3QgaXRlbVByb3BzID0gaXRlbS5wcm9wcyB8fCB7fTtcclxuICAgICAgICAgICAgICBpZiAoaXRlbVByb3BzLnZhbHVlRm9ybWF0KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGVWYWx1ZUZvcm1hdFtpdGVtLm5hbWVdID0gaXRlbVByb3BzLnZhbHVlRm9ybWF0O1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBpZiAoaXRlbVByb3BzLmZvcm1hdCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5kYXRlRm9ybWF0W2l0ZW0ubmFtZV0gPSBpdGVtUHJvcHMuZm9ybWF0O1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBsZXQgYWxsb3dDaGFycyA9IGl0ZW0ucHJvcHMuYWxsb3dDaGFycyB8fCBmYWxzZTtcclxuICAgICAgICAgICAgICBsZXQgcHJvcHMgPSB7XHJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogYOivt+i+k+WFpSR7aXRlbS5sYWJlbH1gLFxyXG5cclxuICAgICAgICAgICAgICAgIC4uLml0ZW0ucHJvcHMsXHJcbiAgICAgICAgICAgICAgICBvbkNoYW5nZTogdGhpcy52YWx1ZUNoYW5nZS5iaW5kKFxyXG4gICAgICAgICAgICAgICAgICB0aGlzLFxyXG4gICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogaXRlbS50eXBlLFxyXG4gICAgICAgICAgICAgICAgICAgIGRpY3ROYW1lOiBpdGVtLmRpY3ROYW1lLFxyXG4gICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICB7IC4uLml0ZW0ucHJvcHMgfVxyXG4gICAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgIGlmICghaXRlbS50eXBlIHx8IGl0ZW0udHlwZSA9PSBcIklucHV0XCIpIHtcclxuICAgICAgICAgICAgICAgIHByb3BzLmFsbG93Q2hhcnMgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgcHJvcHMuc2hvd0NvdW50ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgZGVsZXRlIHByb3BzLnZhbHVlRm9ybWF0O1xyXG4gICAgICAgICAgICAgIGRlbGV0ZSBwcm9wcy5mb3JtYXQ7XHJcbiAgICAgICAgICAgICAgaWYgKGxhYmVsID09IFwi5p+l55yLXCIpIHtcclxuICAgICAgICAgICAgICAgIHByb3BzLmRpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgIGlmIChpdGVtLnJ1bGVzICYmIGl0ZW0ucnVsZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgbmV3VmFsaWQucHVzaChpdGVtLm5hbWUpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBpZiAoaW5kZXggKyAxID09PSBmb3JtUHJvcHMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnZhbGlkID0gbmV3VmFsaWQ7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGlmIChpdGVtLnR5cGUgIT09ICdVcGxvYWQnKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgICAgICA8Q29sIHNwYW49e2l0ZW0uc3BhbiB8fCAxMn0ga2V5PXtpbmRleH0+XHJcbiAgICAgICAgICAgICAgICAgICAgPEZvcm0uSXRlbVxyXG4gICAgICAgICAgICAgICAgICAgICAgbGFiZWw9e2l0ZW0ubGFiZWx9XHJcbiAgICAgICAgICAgICAgICAgICAgICBuYW1lPXtpdGVtLm5hbWV9XHJcbiAgICAgICAgICAgICAgICAgICAgICBydWxlcz17aXRlbS5ydWxlc31cclxuICAgICAgICAgICAgICAgICAgICAgIGFsbG93Q2hhcnM9e2FsbG93Q2hhcnN9XHJcbiAgICAgICAgICAgICAgICAgICAgICBjb21wb25lbnROYW1lPXtpdGVtLnR5cGUgPyBpdGVtLnR5cGUgOiBcIklucHV0XCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAge2dldE5vZGUoaXRlbS50eXBlLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLnByb3BzLFxyXG4gICAgICAgICAgICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XHJcbiAgICAgICAgICAgICAgICAgIDwvQ29sPlxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgICAgPENvbCBzcGFuPXtpdGVtLnNwYW4gfHwgMTJ9IGtleT17aW5kZXh9PlxyXG4gICAgICAgICAgICAgICAgICAgIDxGb3JtLkl0ZW1cclxuICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPXtpdGVtLmxhYmVsfVxyXG4gICAgICAgICAgICAgICAgICAgICAgbmFtZT17aXRlbS5uYW1lfVxyXG4gICAgICAgICAgICAgICAgICAgICAgcnVsZXM9e2l0ZW0ucnVsZXN9XHJcbiAgICAgICAgICAgICAgICAgICAgICBhbGxvd0NoYXJzPXthbGxvd0NoYXJzfVxyXG4gICAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50TmFtZT17aXRlbS50eXBlID8gaXRlbS50eXBlIDogXCJJbnB1dFwifVxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgIDxVcGxvYWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsZUxpc3Q9e3RoaXMuc3RhdGUuZmlsZUxpc3RbaXRlbS5uYW1lXSB8fCBbXX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgb25MaXN0Q2hhbmdlPXsobGlzdCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgZmlsZUxpc3QgfSA9IHRoaXMuc3RhdGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVMaXN0OiB7IC4uLmZpbGVMaXN0LCBbaXRlbS5uYW1lXTogbGlzdCB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgey4uLnByb3BzfT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPEJ1dHRvbj7kuIrkvKDmlofku7Y8L0J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvVXBsb2FkPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxyXG4gICAgICAgICAgICAgICAgICA8L0NvbD5cclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KX1cclxuICAgICAgICAgIDwvUm93PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L0Zvcm0+XHJcbiAgICApO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgRWRpdG9yRm9ybTtcclxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxPQUFPQSxLQUFLLElBQUlDLGFBQWEsUUFBUSxPQUFPO0FBQzVDLE9BQU9DLElBQUksTUFBTSxpQkFBaUI7QUFDbEMsU0FBU0MsT0FBTyxFQUFFQyxPQUFPLFFBQVEsYUFBYTtBQUM5QyxPQUFPQyxPQUFPLE1BQU0sb0JBQW9CO0FBQ3hDLE9BQU9DLEdBQUcsTUFBTSxxQkFBcUI7QUFDckMsT0FBT0MsR0FBRyxNQUFNLHFCQUFxQjtBQUNyQyxTQUFTQyxVQUFVLFFBQVEsbUJBQW1CO0FBQzlDLE9BQU9DLE1BQU0sTUFBTSxRQUFRO0FBQzNCLE9BQU9DLE1BQU0sTUFBTSxxQkFBcUI7QUFFeEMsT0FBT0MsTUFBTSxNQUFNLFFBQVE7QUFDM0IsT0FBT0MsTUFBTSxNQUFNLG1CQUFtQjtBQUN0QyxPQUFPQyxNQUFNLE1BQU0sbUJBQW1CO0FBQ3RDLE1BQU1DLFVBQVUsU0FBU2IsYUFBYSxDQUFNO0VBQUFjLFlBQUE7SUFBQSxTQUFBQyxTQUFBO0lBQUFDLGVBQUEsK0JBQ2hDakIsS0FBSyxDQUFDa0IsU0FBUyxDQUFNLENBQUM7SUFBQUQsZUFBQSxnQkFDeEI7TUFDTkUsT0FBTyxFQUFFLEtBQUs7TUFDZEMsS0FBSyxFQUFFLEVBQUU7TUFDVEMsVUFBVSxFQUFFLElBQUk7TUFDaEJDLEtBQUssRUFBRSxDQUFDLENBQVE7TUFDaEJDLFNBQVMsRUFBRSxDQUFDLENBQVE7TUFDcEJDLFFBQVEsRUFBRSxDQUFDO0lBQ2IsQ0FBQztJQUFBUCxlQUFBLGdCQUNZLEVBQUU7SUFBQUEsZUFBQSwwQkFDRyxDQUFDLENBQUM7SUFBQUEsZUFBQSxxQkFDUCxDQUFDLENBQUM7RUFBQTtFQUNmO0VBQ0FRLElBQUlBLENBQUNDLFFBQWMsRUFBc0I7SUFBQSxJQUFwQkMsVUFBVSxHQUFBWCxTQUFBLENBQUFZLE1BQUEsUUFBQVosU0FBQSxRQUFBYSxTQUFBLEdB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
328
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIlB1cmVDb21wb25lbnQiLCJGb3JtIiwiZ2V0TGVzcyIsImdldE5vZGUiLCJtZXNzYWdlIiwiQ29sIiwiUm93IiwiaXNFbXB0eU9iaiIsIm1vbWVudCIsInN0eWxlcyIsImxvZGFzaCIsIkJ1dHRvbiIsIlVwbG9hZCIsIkVkaXRvckZvcm0iLCJjb25zdHJ1Y3RvciIsImFyZ3VtZW50cyIsIl9kZWZpbmVQcm9wZXJ0eSIsImNyZWF0ZVJlZiIsImxvYWRpbmciLCJsYWJlbCIsImVkaXRvckZsYWciLCJ2YWx1ZSIsImRpY3ROYW1lcyIsImZpbGVMaXN0Iiwic2hvdyIsIm9yZ1ZhbHVlIiwiZWRpdG9yZmxhZyIsImxlbmd0aCIsInVuZGVmaW5lZCIsInNldFN0YXRlIiwiX3RoaXMkZm9ybVJlZiRjdXJyZW50IiwiY2xvbmVEZWVwIiwiZGF0ZUZvcm1hdCIsImtleSIsIm9sZGRhdGEiLCJBcnJheSIsImlzQXJyYXkiLCJmb3JtUmVmIiwiY3VycmVudCIsInNob3dGb3JtIiwiX3RoaXMkZm9ybVJlZiRjdXJyZW50MiIsInByb3BzIiwiZGVmYXVsdFZhbHVlIiwiaGlkZSIsIl90aGlzJGZvcm1SZWYkY3VycmVudDMiLCJvbkhpZGVGb3JtIiwiaGlkZUZvcm0iLCJfdGhpcyRmb3JtUmVmJGN1cnJlbnQ0Iiwic2V0TG9hZGluZyIsInNldEZpZWxkc1ZhbHVlIiwidmFsdWVzIiwiX3RoaXMkZm9ybVJlZiRjdXJyZW50NSIsImdldEZpZWxkc1ZhbHVlIiwiX3RoaXMkZm9ybVJlZiRjdXJyZW50NiIsImRvU3VibWl0IiwiZm9ybWRhdGEiLCJfdGhpcyRmb3JtUmVmJGN1cnJlbnQ3Iiwic3VibWl0VXJsIiwic3VibWl0UGFyYW1zIiwiY2FsbEJhY2siLCJkYXRhIiwib3RoZXJQYXJhbXMiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMiLCJfZXhjbHVkZWQiLCJFcnJvciIsIm9uU3VibWl0IiwiX29iamVjdFNwcmVhZCIsIm5vVW5kZWZpbmVkIiwicmVzIiwiY29kZSIsInN1Y2Nlc3MiLCJfdGhpcyRmb3JtUmVmJGN1cnJlbnQ4IiwiX3RoaXMkZm9ybVJlZiRjdXJyZW50OSIsInN0YXRlIiwiZm9ybVZhbHVlIiwidmFsaWQiLCJ2YWxpZGF0ZUZpZWxkcyIsInRoZW4iLCJkYXRlVmFsdWVGb3JtYXQiLCJmb3JtYXQiLCJpZCIsImNhdGNoIiwiZXJyb3JJbmZvIiwidmFsdWVDaGFuZ2UiLCJfcmVmIiwidmFsdWVPcHRpb24iLCJ0eXBlIiwiZGljdE5hbWUiLCJuZXdOYW1lcyIsIm9uQ2hhbmdlIiwicmVuZGVyIiwiZm9ybVByb3BzIiwib3RoZXJQcm9wcyIsIm1vZGFsUHJvcHMiLCJ0aXRsZSIsIm9uT2siLCJiaW5kIiwib25DYW5jZWwiLCJva0J1dHRvblByb3BzIiwiY2VudGVyZWQiLCJ3aWR0aCIsIm5ld1ZhbGlkIiwiZHJhd2VyUHJvcHMiLCJvbkNsb3NlIiwiZm9vdGVyIiwiY3JlYXRlRWxlbWVudCIsIl9leHRlbmRzIiwicmVmIiwic2hvd01vZGVsIiwiZm9ybVR5cGUiLCJsYWJlbENvbCIsImZsZXgiLCJ3cmFwcGVyQ29sIiwib25WYWx1ZXNDaGFuZ2UiLCJjaGFuZ2VkVmFsdWVzIiwiYWxsVmFsdWVzIiwib25Gb3JtQ2hhbmdlIiwiY2hhbmdlVmFsaWQiLCJjbGFzc05hbWUiLCJndXR0ZXIiLCJtYXAiLCJpdGVtIiwiaW5kZXgiLCJpdGVtUHJvcHMiLCJ2YWx1ZUZvcm1hdCIsIm5hbWUiLCJhbGxvd0NoYXJzIiwicGxhY2Vob2xkZXIiLCJjb25jYXQiLCJzaG93Q291bnQiLCJkaXNhYmxlZCIsInJ1bGVzIiwicHVzaCIsInNwYW4iLCJJdGVtIiwiY29tcG9uZW50TmFtZSIsIm9uTGlzdENoYW5nZSIsImxpc3QiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9wYWdlL0Jhc2VQYWdlL0Zvcm0udHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBQdXJlQ29tcG9uZW50IH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBGb3JtIGZyb20gXCIuLi8uLi9iYXNlL2Zvcm1cIjtcclxuaW1wb3J0IHsgZ2V0TGVzcywgZ2V0Tm9kZSB9IGZyb20gXCIuLi8uLi91dGlsc1wiO1xyXG5pbXBvcnQgbWVzc2FnZSBmcm9tIFwiLi4vLi4vYmFzZS9tZXNzYWdlXCI7XHJcbmltcG9ydCBDb2wgZnJvbSBcIi4uLy4uL2Jhc2UvZ3JpZC9Db2xcIjtcclxuaW1wb3J0IFJvdyBmcm9tIFwiLi4vLi4vYmFzZS9ncmlkL1Jvd1wiO1xyXG5pbXBvcnQgeyBpc0VtcHR5T2JqIH0gZnJvbSBcIkBiai1uc2MvZnVuY3Rpb25zXCI7XHJcbmltcG9ydCBtb21lbnQgZnJvbSBcIm1vbWVudFwiO1xyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL2luZGV4Lm1vZHVsZS5sZXNzXCI7XHJcbmltcG9ydCB1dGlscyBmcm9tIFwiLi4vLi4vdXRpbHNcIjtcclxuaW1wb3J0IGxvZGFzaCBmcm9tIFwibG9kYXNoXCI7XHJcbmltcG9ydCBCdXR0b24gZnJvbSBcIi4uLy4uL2Jhc2UvYnV0dG9uXCI7XHJcbmltcG9ydCBVcGxvYWQgZnJvbSAnLi4vLi4vYmFzZS91cGxvYWQnXHJcbmNsYXNzIEVkaXRvckZvcm0gZXh0ZW5kcyBQdXJlQ29tcG9uZW50PGFueT4ge1xyXG4gIGZvcm1SZWYgPSBSZWFjdC5jcmVhdGVSZWY8YW55PigpO1xyXG4gIHN0YXRlID0ge1xyXG4gICAgbG9hZGluZzogZmFsc2UsXHJcbiAgICBsYWJlbDogXCJcIixcclxuICAgIGVkaXRvckZsYWc6IHRydWUsXHJcbiAgICB2YWx1ZToge30gYXMgYW55LFxyXG4gICAgZGljdE5hbWVzOiB7fSBhcyBhbnksXHJcbiAgICBmaWxlTGlzdDoge30gYXMgYW55XHJcbiAgfTtcclxuICB2YWxpZDogYW55ID0gW107XHJcbiAgZGF0ZVZhbHVlRm9ybWF0ID0ge30gYXMgYW55O1xyXG4gIGRhdGVGb3JtYXQgPSB7fSBhcyBhbnk7XHJcbiAgLy/ooajljZXmmL7npLpcclxuICBzaG93KG9yZ1ZhbHVlPzogYW55LCBlZGl0b3JmbGFnID0gXCJhZGRcIikge1xyXG4gICAgbGV0IGxhYmVsID0gXCLmlrDlop5cIjtcclxuICAgIGlmIChvcmdWYWx1ZSAmJiBlZGl0b3JmbGFnID09IFwiZWRpdG9yXCIpIHtcclxuICAgICAgbGFiZWwgPSBcIue8lui+kVwiO1xyXG4gICAgfSBlbHNlIGlmIChvcmdWYWx1ZSAmJiBlZGl0b3JmbGFnID09IFwiZGV0YWlsXCIpIHtcclxuICAgICAgbGFiZWwgPSBcIuafpeeci1wiO1xyXG4gICAgfVxyXG4gICAgaWYgKG9yZ1ZhbHVlKSB7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgbGFiZWw6IGxhYmVsLFxyXG4gICAgICAgICAgdmFsdWU6IG9yZ1ZhbHVlLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgbGV0IHZhbHVlID0gbG9kYXNoLmNsb25lRGVlcChvcmdWYWx1ZSk7XHJcbiAgICAgICAgICBpZiAoIWlzRW1wdHlPYmoodGhpcy5kYXRlRm9ybWF0KSkge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBrZXkgaW4gdGhpcy5kYXRlRm9ybWF0KSB7XHJcbiAgICAgICAgICAgICAgbGV0IG9sZGRhdGEgPSB2YWx1ZVtrZXldO1xyXG4gICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KG9sZGRhdGEpKSB7XHJcbiAgICAgICAgICAgICAgICB2YWx1ZVtrZXldID0gW1xyXG4gICAgICAgICAgICAgICAgICBtb21lbnQob2xkZGF0YVswXSwgdGhpcy5kYXRlRm9ybWF0W2tleV0pLFxyXG4gICAgICAgICAgICAgICAgICBtb21lbnQob2xkZGF0YVsxXSwgdGhpcy5kYXRlRm9ybWF0W2tleV0pLFxyXG4gICAgICAgICAgICAgICAgXTtcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdmFsdWVba2V5XSA9IG1vbWVudChvbGRkYXRhLCB0aGlzLmRhdGVGb3JtYXRba2V5XSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLmZvcm1SZWYuY3VycmVudD8uc2hvd0Zvcm0odmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgbGFiZWw6IGxhYmVsLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5mb3JtUmVmLmN1cnJlbnQ/LnNob3dGb3JtKHRoaXMucHJvcHMuZGVmYXVsdFZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGhpZGUoaGlkZSA9IHRydWUpIHtcclxuICAgIGNvbnN0IHsgb25IaWRlRm9ybSB9ID0gdGhpcy5wcm9wcztcclxuICAgIGlmIChvbkhpZGVGb3JtKSB7XHJcbiAgICAgIG9uSGlkZUZvcm0gJiYgb25IaWRlRm9ybSgpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnNldFN0YXRlKHsgbG9hZGluZzogZmFsc2UgfSk7XHJcbiAgICBoaWRlICYmIHRoaXMuZm9ybVJlZi5jdXJyZW50Py5oaWRlRm9ybSgpO1xyXG4gIH1cclxuICBoaWRlRm9ybSgpIHtcclxuICAgIHRoaXMuc2V0U3RhdGUoeyBsb2FkaW5nOiBmYWxzZSB9KTtcclxuICAgIHRoaXMuZm9ybVJlZi5jdXJyZW50Py5oaWRlRm9ybSgpO1xyXG4gIH1cclxuICBzZXRMb2FkaW5nKGxvYWRpbmc6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuc2V0U3RhdGUoeyBsb2FkaW5nOiBsb2FkaW5nIH0pO1xyXG4gIH1cclxuICBzZXRGaWVsZHNWYWx1ZSh2YWx1ZXMpIHtcclxuICAgIHRoaXMuZm9ybVJlZi5jdXJyZW50Py5zZXRGaWVsZHNWYWx1ZSh2YWx1ZXMpO1xyXG4gIH1cclxuICBnZXRGaWVsZHNWYWx1ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm1SZWYuY3VycmVudD8uZ2V0RmllbGRzVmFsdWUoKTtcclxuICB9XHJcbiAgZG9TdWJtaXQoZm9ybWRhdGEsIGxhYmVsKSB7XHJcbiAgICBjb25zdCB7IHN1Ym1pdFVybCwgc3VibWl0UGFyYW1zLCBjYWxsQmFjayB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHsgZGF0YSA9IHt9LCAuLi5vdGhlclBhcmFtcyB9ID0gc3VibWl0UGFyYW1zXHJcbiAgICBpZiAoIXN1Ym1pdFVybCkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJ1cmzkuI3og73kuLrnqbrvvIFcIik7XHJcbiAgICB9XHJcbiAgICB0aGlzLmZvcm1SZWYuY3VycmVudD8ub25TdWJtaXQoXHJcbiAgICAgIHN1Ym1pdFVybCxcclxuICAgICAge1xyXG4gICAgICAgIGRhdGE6IHsgLi4uZm9ybWRhdGEsIC4uLmRhdGEgfSxcclxuICAgICAgICBub1VuZGVmaW5lZDogbGFiZWwgPT0gXCLnvJbovpFcIixcclxuICAgICAgICAuLi5vdGhlclBhcmFtcyxcclxuICAgICAgfSxcclxuICAgICAgKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgY29uc3QgeyBjb2RlIH0gPSByZXM7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGxvYWRpbmc6IGZhbHNlIH0pO1xyXG4gICAgICAgIGlmIChjb2RlID09PSAyMDApIHtcclxuICAgICAgICAgIG1lc3NhZ2Uuc3VjY2VzcyhsYWJlbCArIFwi5oiQ5YqfXCIpO1xyXG4gICAgICAgICAgdGhpcy5oaWRlKHRydWUpO1xyXG4gICAgICAgICAgY2FsbEJhY2sgJiYgY2FsbEJhY2soKTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5oaWRlKGZhbHNlKTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcbiAgb25TdWJtaXQoKSB7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIG9uU3VibWl0LFxyXG4gICAgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7IGxhYmVsLCB2YWx1ZSwgZGljdE5hbWVzIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgZm9ybVZhbHVlID0gdGhpcy5mb3JtUmVmLmN1cnJlbnQ/LmdldEZpZWxkc1ZhbHVlKCk7XHJcbiAgICBsZXQgdmFsaWQgPSB0aGlzLnZhbGlkO1xyXG4gICAgdGhpcy5mb3JtUmVmLmN1cnJlbnRcclxuICAgICAgPy52YWxpZGF0ZUZpZWxkcyh2YWxpZClcclxuICAgICAgLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBsb2FkaW5nOiB0cnVlIH0pO1xyXG4gICAgICAgIGxldCBkYXRhID0geyAuLi5mb3JtVmFsdWUsIC4uLmRpY3ROYW1lcyB9O1xyXG4gICAgICAgIGlmICghaXNFbXB0eU9iaih0aGlzLmRhdGVWYWx1ZUZvcm1hdCkpIHtcclxuICAgICAgICAgIGZvciAobGV0IGtleSBpbiB0aGlzLmRhdGVWYWx1ZUZvcm1hdCkge1xyXG4gICAgICAgICAgICBsZXQgb2xkZGF0YSA9IGRhdGFba2V5XTtcclxuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkob2xkZGF0YSkpIHtcclxuICAgICAgICAgICAgICBkYXRhW2tleV0gPSBbXHJcbiAgICAgICAgICAgICAgICBtb21lbnQob2xkZGF0YVswXSkuZm9ybWF0KHRoaXMuZGF0ZVZhbHVlRm9ybWF0W2tleV0pLFxyXG4gICAgICAgICAgICAgICAgbW9tZW50KG9sZGRhdGFbMV0pLmZvcm1hdCh0aGlzLmRhdGVWYWx1ZUZvcm1hdFtrZXldKSxcclxuICAgICAgICAgICAgICBdO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIGRhdGFba2V5XSA9IG1vbWVudChvbGRkYXRhKS5mb3JtYXQodGhpcy5kYXRlVmFsdWVGb3JtYXRba2V5XSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChsYWJlbCA9PSBcIue8lui+kVwiKSB7XHJcbiAgICAgICAgICBkYXRhID0geyAuLi5kYXRhLCBpZDogdmFsdWU/LmlkIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChvblN1Ym1pdCkge1xyXG4gICAgICAgICAgb25TdWJtaXQgJiYgb25TdWJtaXQoZGF0YSwgbGFiZWwpO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmRvU3VibWl0KGRhdGEsIGxhYmVsKVxyXG4gICAgICB9KVxyXG4gICAgICAuY2F0Y2goKGVycm9ySW5mbzogYW55KSA9PiB7IH0pO1xyXG4gIH1cclxuICB2YWx1ZUNoYW5nZSh7IHR5cGUsIGRpY3ROYW1lIH0sIHByb3BzLCB2YWx1ZSwgdmFsdWVPcHRpb24sIGRhdGEpIHtcclxuICAgIGlmICh2YWx1ZU9wdGlvbikge1xyXG4gICAgICBpZiAoZGljdE5hbWUpIHtcclxuICAgICAgICBjb25zdCB7IGRpY3ROYW1lcyB9ID0gdGhpcy5zdGF0ZTtcclxuICAgICAgICBjb25zdCBuZXdOYW1lcyA9IHsgLi4uZGljdE5hbWVzIH0gYXMgYW55O1xyXG4gICAgICAgIG5ld05hbWVzW2RpY3ROYW1lXSA9IHZhbHVlT3B0aW9uLmxhYmVsO1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgZGljdE5hbWVzOiBuZXdOYW1lcyxcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKHByb3BzLm9uQ2hhbmdlKSB7XHJcbiAgICAgIHByb3BzLm9uQ2hhbmdlKHZhbHVlLCB2YWx1ZU9wdGlvbiwgZGF0YSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZW5kZXIoKSB7XHJcbiAgICBjb25zdCB7IGZvcm1Qcm9wcyA9IFtdLCBvdGhlclByb3BzID0ge30gfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7IGxvYWRpbmcsIGxhYmVsIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgbGV0IG1vZGFsUHJvcHMgPSB7XHJcbiAgICAgIHRpdGxlOiBsYWJlbCxcclxuICAgICAgb25PazogdGhpcy5vblN1Ym1pdC5iaW5kKHRoaXMpLFxyXG4gICAgICBvbkNhbmNlbDogdGhpcy5oaWRlLmJpbmQodGhpcyksXHJcbiAgICAgIG9rQnV0dG9uUHJvcHM6IHsgbG9hZGluZzogbG9hZGluZyB9LFxyXG4gICAgICBjZW50ZXJlZDogdHJ1ZSxcclxuICAgICAgd2lkdGg6IFwiNTB2d1wiLFxyXG4gICAgfSBhcyBhbnk7XHJcblxyXG4gICAgY29uc3QgbmV3VmFsaWQ6IGFueVtdID0gW107XHJcbiAgICBsZXQgZHJhd2VyUHJvcHMgPSB7XHJcbiAgICAgIHRpdGxlOiBsYWJlbCxcclxuICAgICAgb25PazogdGhpcy5vblN1Ym1pdC5iaW5kKHRoaXMpLFxyXG4gICAgICBvbkNsb3NlOiB0aGlzLmhpZGUuYmluZCh0aGlzKSxcclxuICAgICAgd2lkdGg6IFwiNTB2d1wiLFxyXG4gICAgfSBhcyBhbnk7XHJcbiAgICBpZiAobGFiZWwgPT0gXCLmn6XnnItcIikge1xyXG4gICAgICBtb2RhbFByb3BzLmZvb3RlciA9IG51bGw7XHJcbiAgICAgIGRyYXdlclByb3BzLmZvb3RlciA9IG51bGw7XHJcbiAgICB9XHJcbiAgICB0aGlzLmRhdGVWYWx1ZUZvcm1hdCA9IHt9O1xyXG4gICAgdGhpcy5kYXRlRm9ybWF0ID0ge307XHJcblxyXG4gICAgcmV0dXJuIChcclxuICAgICAgPEZvcm1cclxuICAgICAgICByZWY9e3RoaXMuZm9ybVJlZn1cclxuICAgICAgICBzaG93TW9kZWw9e3RoaXMucHJvcHMuZm9ybVR5cGV9XHJcbiAgICAgICAgbW9kYWxQcm9wcz17eyAuLi5tb2RhbFByb3BzIH19XHJcbiAgICAgICAgZHJhd2VyUHJvcHM9e3sgLi4uZHJhd2VyUHJvcHMgfX1cclxuICAgICAgICBsYWJlbENvbD17eyBmbGV4OiBcIjEwMHB4XCIgfX1cclxuICAgICAgICB3cmFwcGVyQ29sPXt7IGZsZXg6IFwiMTV2d1wiIH19XHJcbiAgICAgICAgb25WYWx1ZXNDaGFuZ2U9eyhjaGFuZ2VkVmFsdWVzLCBhbGxWYWx1ZXMpID0+IHtcclxuICAgICAgICAgIGNvbnN0IHsgb25Gb3JtQ2hhbmdlIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgICAgICAgb25Gb3JtQ2hhbmdlICYmIG9uRm9ybUNoYW5nZShjaGFuZ2VkVmFsdWVzLCBhbGxWYWx1ZXMpO1xyXG4gICAgICAgIH19XHJcbiAgICAgICAgY2hhbmdlVmFsaWQ9e3RoaXMucHJvcHMuY2hhbmdlVmFsaWR9XHJcbiAgICAgICAgey4uLm90aGVyUHJvcHN9XHJcbiAgICAgID5cclxuICAgICAgICB7LyogPGRpdj4gKi99XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImZvcm1cIil9PlxyXG4gICAgICAgICAgPFJvdyBndXR0ZXI9ezI0fT5cclxuICAgICAgICAgICAge2Zvcm1Qcm9wcy5tYXAoKGl0ZW06IGFueSwgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGl0ZW1Qcm9wcyA9IGl0ZW0ucHJvcHMgfHwge307XHJcbiAgICAgICAgICAgICAgaWYgKGl0ZW1Qcm9wcy52YWx1ZUZvcm1hdCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5kYXRlVmFsdWVGb3JtYXRbaXRlbS5uYW1lXSA9IGl0ZW1Qcm9wcy52YWx1ZUZvcm1hdDtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgaWYgKGl0ZW1Qcm9wcy5mb3JtYXQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZGF0ZUZvcm1hdFtpdGVtLm5hbWVdID0gaXRlbVByb3BzLmZvcm1hdDtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgbGV0IGFsbG93Q2hhcnMgPSBpdGVtLnByb3BzLmFsbG93Q2hhcnMgfHwgZmFsc2U7XHJcbiAgICAgICAgICAgICAgbGV0IHByb3BzID0ge1xyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6IGDor7fovpPlhaUke2l0ZW0ubGFiZWx9YCxcclxuXHJcbiAgICAgICAgICAgICAgICAuLi5pdGVtLnByb3BzLFxyXG4gICAgICAgICAgICAgICAgb25DaGFuZ2U6IHRoaXMudmFsdWVDaGFuZ2UuYmluZChcclxuICAgICAgICAgICAgICAgICAgdGhpcyxcclxuICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IGl0ZW0udHlwZSxcclxuICAgICAgICAgICAgICAgICAgICBkaWN0TmFtZTogaXRlbS5kaWN0TmFtZSxcclxuICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgeyAuLi5pdGVtLnByb3BzIH1cclxuICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICBpZiAoIWl0ZW0udHlwZSB8fCBpdGVtLnR5cGUgPT0gXCJJbnB1dFwiKSB7XHJcbiAgICAgICAgICAgICAgICBwcm9wcy5hbGxvd0NoYXJzID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIHByb3BzLnNob3dDb3VudCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGRlbGV0ZSBwcm9wcy52YWx1ZUZvcm1hdDtcclxuICAgICAgICAgICAgICBkZWxldGUgcHJvcHMuZm9ybWF0O1xyXG4gICAgICAgICAgICAgIGlmIChsYWJlbCA9PSBcIuafpeeci1wiKSB7XHJcbiAgICAgICAgICAgICAgICBwcm9wcy5kaXNhYmxlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICBpZiAoaXRlbS5ydWxlcyAmJiBpdGVtLnJ1bGVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgIG5ld1ZhbGlkLnB1c2goaXRlbS5uYW1lKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgaWYgKGluZGV4ICsgMSA9PT0gZm9ybVByb3BzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy52YWxpZCA9IG5ld1ZhbGlkO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBpZiAoaXRlbS50eXBlICE9PSAnVXBsb2FkJykge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgICAgPENvbCBzcGFuPXtpdGVtLnNwYW4gfHwgMTJ9IGtleT17aW5kZXh9PlxyXG4gICAgICAgICAgICAgICAgICAgIDxGb3JtLkl0ZW1cclxuICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPXtpdGVtLmxhYmVsfVxyXG4gICAgICAgICAgICAgICAgICAgICAgbmFtZT17aXRlbS5uYW1lfVxyXG4gICAgICAgICAgICAgICAgICAgICAgcnVsZXM9e2l0ZW0ucnVsZXN9XHJcbiAgICAgICAgICAgICAgICAgICAgICBhbGxvd0NoYXJzPXthbGxvd0NoYXJzfVxyXG4gICAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50TmFtZT17aXRlbS50eXBlID8gaXRlbS50eXBlIDogXCJJbnB1dFwifVxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgIHtnZXROb2RlKGl0ZW0udHlwZSwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5wcm9wcyxcclxuICAgICAgICAgICAgICAgICAgICAgIH0pfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxyXG4gICAgICAgICAgICAgICAgICA8L0NvbD5cclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgICAgIDxDb2wgc3Bhbj17aXRlbS5zcGFuIHx8IDEyfSBrZXk9e2luZGV4fT5cclxuICAgICAgICAgICAgICAgICAgICA8Rm9ybS5JdGVtXHJcbiAgICAgICAgICAgICAgICAgICAgICBsYWJlbD17aXRlbS5sYWJlbH1cclxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2l0ZW0ubmFtZX1cclxuICAgICAgICAgICAgICAgICAgICAgIHJ1bGVzPXtpdGVtLnJ1bGVzfVxyXG4gICAgICAgICAgICAgICAgICAgICAgYWxsb3dDaGFycz17YWxsb3dDaGFyc31cclxuICAgICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudE5hbWU9e2l0ZW0udHlwZSA/IGl0ZW0udHlwZSA6IFwiSW5wdXRcIn1cclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8VXBsb2FkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVMaXN0PXt0aGlzLnN0YXRlLmZpbGVMaXN0W2l0ZW0ubmFtZV0gfHwgW119XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uTGlzdENoYW5nZT17KGxpc3QpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB7IGZpbGVMaXN0IH0gPSB0aGlzLnN0YXRlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlTGlzdDogeyAuLi5maWxlTGlzdCwgW2l0ZW0ubmFtZV06IGxpc3QgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHsuLi5wcm9wc30+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxCdXR0b24+5LiK5Lyg5paH5Lu2PC9CdXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L1VwbG9hZD5cclxuICAgICAgICAgICAgICAgICAgICA8L0Zvcm0uSXRlbT5cclxuICAgICAgICAgICAgICAgICAgPC9Db2w+XHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICA8L1Jvdz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9Gb3JtPlxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IEVkaXRvckZvcm07XHJcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBT0EsS0FBSyxJQUFJQyxhQUFhLFFBQVEsT0FBTztBQUM1QyxPQUFPQyxJQUFJLE1BQU0saUJBQWlCO0FBQ2xDLFNBQVNDLE9BQU8sRUFBRUMsT0FBTyxRQUFRLGFBQWE7QUFDOUMsT0FBT0MsT0FBTyxNQUFNLG9CQUFvQjtBQUN4QyxPQUFPQyxHQUFHLE1BQU0scUJBQXFCO0FBQ3JDLE9BQU9DLEdBQUcsTUFBTSxxQkFBcUI7QUFDckMsU0FBU0MsVUFBVSxRQUFRLG1CQUFtQjtBQUM5QyxPQUFPQyxNQUFNLE1BQU0sUUFBUTtBQUMzQixPQUFPQyxNQUFNLE1BQU0scUJBQXFCO0FBRXhDLE9BQU9DLE1BQU0sTUFBTSxRQUFRO0FBQzNCLE9BQU9DLE1BQU0sTUFBTSxtQkFBbUI7QUFDdEMsT0FBT0MsTUFBTSxNQUFNLG1CQUFtQjtBQUN0QyxNQUFNQyxVQUFVLFNBQVNiLGFBQWEsQ0FBTTtFQUFBYyxZQUFBO0lBQUEsU0FBQUMsU0FBQTtJQUFBQyxlQUFBLCtCQUNoQ2pCLEtBQUssQ0FBQ2tCLFNBQVMsQ0FBTSxDQUFDO0lBQUFELGVBQUEsZ0JBQ3hCO01BQ05FLE9BQU8sRUFBRSxLQUFLO01BQ2RDLEtBQUssRUFBRSxFQUFFO01BQ1RDLFVBQVUsRUFBRSxJQUFJO01BQ2hCQyxLQUFLLEVBQUUsQ0FBQyxDQUFRO01BQ2hCQyxTQUFTLEVBQUUsQ0FBQyxDQUFRO01BQ3BCQyxRQUFRLEVBQUUsQ0FBQztJQUNiLENBQUM7SUFBQVAsZUFBQSxnQkFDWSxFQUFFO0lBQUFBLGVBQUEsMEJBQ0csQ0FBQyxDQUFDO0lBQUFBLGVBQUEscUJBQ1AsQ0FBQyxDQUFDO0VBQUE7RUFDZjtFQUNBUSxJQUFJQSxDQUFDQyxRQUFj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QUVKLElBQUksQ0FBQ0ksSUFBSztVQUNoQk0sS0FBSyxFQUFFVixJQUFJLENBQUNVLEtBQU07VUFDbEJMLFVBQVUsRUFBRUEsVUFBVztVQUN2QlMsYUFBYSxFQUFFZCxJQUFJLENBQUNuQyxJQUFJLEdBQUdtQyxJQUFJLENBQUNuQyxJQUFJLEdBQUc7UUFBUSxHQUU5Q25GLE9BQU8sQ0FBQ3NILElBQUksQ0FBQ25DLElBQUksRUFBQXBCLGFBQUEsS0FDYnpCLEtBQUssQ0FDVCxDQUNRLENBQ1IsQ0FBQztNQUVWLENBQUMsTUFBTTtRQUNMLG9CQUNFMUMsS0FBQSxDQUFBMEcsYUFBQSxDQUFDcEcsR0FBRztVQUFDZ0ksSUFBSSxFQUFFWixJQUFJLENBQUNZLElBQUksSUFBSSxFQUFHO1VBQUNwRyxHQUFHLEVBQUV5RjtRQUFNLGdCQUNyQzNILEtBQUEsQ0FBQTBHLGFBQUEsQ0FBQ3hHLElBQUksQ0FBQ3FJLElBQUk7VUFDUm5ILEtBQUssRUFBRXNHLElBQUksQ0FBQ3RHLEtBQU07VUFDbEIwRyxJQUFJLEVBQUVKLElBQUksQ0FBQ0ksSUFBSztVQUNoQk0sS0FBSyxFQUFFVixJQUFJLENBQUNVLEtBQU07VUFDbEJMLFVBQVUsRUFBRUEsVUFBVztVQUN2QlMsYUFBYSxFQUFFZCxJQUFJLENBQUNuQyxJQUFJLEdBQUdtQyxJQUFJLENBQUNuQyxJQUFJLEdBQUc7UUFBUSxnQkFFL0N2RixLQUFBLENBQUEwRyxhQUFBLENBQUM3RixNQUFNLEVBQUE4RixRQUFBO1VBQ0xuRixRQUFRLEVBQUUsSUFBSSxDQUFDa0QsS0FBSyxDQUFDbEQsUUFBUSxDQUFDa0csSUFBSSxDQUFDSSxJQUFJLENBQUMsSUFBSSxFQUFHO1VBQy9DVyxZQUFZLEVBQUdDLElBQUksSUFBSztZQUN0QixNQUFNO2NBQUVsSDtZQUFTLENBQUMsR0FBRyxJQUFJLENBQUNrRCxLQUFLO1lBQy9CLElBQUksQ0FBQzVDLFFBQVEsQ0FBQztjQUNaTixRQUFRLEVBQUEyQyxhQUFBLENBQUFBLGFBQUEsS0FBTzNDLFFBQVE7Z0JBQUUsQ0FBQ2tHLElBQUksQ0FBQ0ksSUFBSSxHQUFHWTtjQUFJO1lBQzVDLENBQUMsQ0FBQztVQUNKO1FBQUUsR0FDRWhHLEtBQUssZ0JBQ1QxQyxLQUFBLENBQUEwRyxhQUFBLENBQUM5RixNQUFNLFFBQUMsMEJBQVksQ0FDZCxDQUNDLENBQ1IsQ0FBQztNQUVWO0lBQ0YsQ0FBQyxDQUNFLENBQ0YsQ0FDRCxDQUFDO0VBRVg7QUFDRjtBQUVBLGVBQWVFLFVBQVUiLCJpZ25vcmVMaXN0IjpbXX0=