@dignite-ng/expand.cms 0.0.55 → 0.0.57

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.
Files changed (44) hide show
  1. package/config/components/domains/domains.component.d.ts +2 -1
  2. package/config/components/site-language/site-language.component.d.ts +1 -0
  3. package/esm2022/config/components/domains/domains.component.mjs +13 -5
  4. package/esm2022/config/components/site-language/site-language.component.mjs +9 -2
  5. package/esm2022/lib/cms-routing.module.mjs +1 -1
  6. package/esm2022/lib/cms.module.mjs +6 -3
  7. package/esm2022/lib/components/admin/entries/create-or-edit-entries.component.mjs +145 -227
  8. package/esm2022/lib/components/admin/entries/create-or-update-entry-input-base.mjs +4 -11
  9. package/esm2022/lib/components/admin/entries/create.component.mjs +80 -57
  10. package/esm2022/lib/components/admin/entries/edit.component.mjs +78 -53
  11. package/esm2022/lib/components/admin/entries/entries.component.mjs +6 -1
  12. package/esm2022/lib/components/admin/fields/create-field.component.mjs +12 -3
  13. package/esm2022/lib/components/admin/fields/create-or-edit-field.component.mjs +12 -6
  14. package/esm2022/lib/components/admin/fields/edit-field.component.mjs +9 -5
  15. package/esm2022/lib/components/admin/sections/entry-types/create-or-edit.component.mjs +30 -15
  16. package/esm2022/lib/components/admin/sections/sections.component.mjs +13 -6
  17. package/esm2022/lib/components/dynamic-form/entry/entry-config.component.mjs +14 -12
  18. package/esm2022/lib/components/dynamic-form/entry/entry-control.component.mjs +9 -13
  19. package/esm2022/lib/components/dynamic-form/matrix/matrix-config.component.mjs +15 -17
  20. package/esm2022/lib/components/dynamic-form/matrix/matrix-control.component.mjs +18 -22
  21. package/esm2022/lib/components/dynamic-form/table/table-config.component.mjs +3 -3
  22. package/esm2022/lib/components/dynamic-form/table/table-control.component.mjs +3 -3
  23. package/esm2022/lib/constants/styles.mjs +2 -4
  24. package/esm2022/lib/resolvers/page-default-toolbar-actions.mjs +1 -1
  25. package/esm2022/lib/resolvers/table-default-entity-props.mjs +1 -2
  26. package/fesm2022/dignite-ng-expand.cms-config.mjs +19 -5
  27. package/fesm2022/dignite-ng-expand.cms-config.mjs.map +1 -1
  28. package/fesm2022/dignite-ng-expand.cms.mjs +414 -424
  29. package/fesm2022/dignite-ng-expand.cms.mjs.map +1 -1
  30. package/lib/cms.module.d.ts +2 -1
  31. package/lib/components/admin/entries/create-or-edit-entries.component.d.ts +34 -69
  32. package/lib/components/admin/entries/create-or-update-entry-input-base.d.ts +3 -3
  33. package/lib/components/admin/entries/create.component.d.ts +26 -23
  34. package/lib/components/admin/entries/edit.component.d.ts +29 -23
  35. package/lib/components/admin/entries/entries.component.d.ts +1 -0
  36. package/lib/components/admin/fields/create-field.component.d.ts +1 -1
  37. package/lib/components/admin/fields/edit-field.component.d.ts +1 -1
  38. package/lib/components/admin/sections/entry-types/create-or-edit.component.d.ts +10 -9
  39. package/lib/components/admin/sections/sections.component.d.ts +2 -1
  40. package/lib/components/dynamic-form/entry/entry-config.component.d.ts +4 -4
  41. package/lib/components/dynamic-form/matrix/matrix-config.component.d.ts +4 -4
  42. package/lib/components/dynamic-form/matrix/matrix-control.component.d.ts +5 -5
  43. package/lib/constants/styles.d.ts +1 -1
  44. package/package.json +1 -1
@@ -148,6 +148,11 @@ export class EntriesComponent {
148
148
  queryParams: { cultureName: this.filters.culture, sectionId: this.filters.sectionId, entryTypeId: this.entryTypeList[0].id }
149
149
  });
150
150
  }
151
+ createCopyEntriesBtn() {
152
+ this.router.navigate(['/cms/admin/entries/create-copy'], {
153
+ queryParams: { cultureName: this.filters.culture, sectionId: this.filters.sectionId, entryTypeId: this.entryTypeList[0].id }
154
+ });
155
+ }
151
156
  hookToQuery() {
152
157
  const getData = (query) => this._EntryAdminService.getList({
153
158
  ...query,
@@ -195,4 +200,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImpor
195
200
  },
196
201
  ], template: "<abp-page [title]=\"'Cms::Entries' | abpLocalization\" [toolbar]=\"true\">\r\n <abp-page-toolbar-container *ngIf=\"entryTypeList.length < 1\" class=\"col \"></abp-page-toolbar-container>\r\n <abp-page-toolbar-container *ngIf=\"entryTypeList.length > 1\" class=\"col \">\r\n <div class=\"row justify-content-end mx-0 gap-2\" *abpPermission=\"'CmsAdmin.Entry.Create'\">\r\n <div class=\"col-auto px-0 pt-0\">\r\n <div ngbDropdown class=\"d-inline-block\">\r\n <button type=\"button\" class=\"btn btn-primary btn-sm ms-2\" id=\"dropdownBasic1\" ngbDropdownToggle>\r\n <i class=\"fa fa-plus pe-1\" aria-hidden=\"true\"></i>{{'Cms::New' | abpLocalization}}\r\n </button>\r\n <div ngbDropdownMenu aria-labelledby=\"dropdownBasic1\">\r\n <ng-container *ngFor=\"let item of entryTypeList\">\r\n <button ngbDropdownItem [routerLink]=\"['/cms/admin/entries/create']\"\r\n [queryParams]=\"{cultureName: filters.culture,sectionId:filters.sectionId,entryTypeId:item.id}\">{{item.displayName}}</button>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n <div id=\"sites-page\" class=\"sites-page\">\r\n <div class=\"card\">\r\n <div class=\"card-body px-2 py-sm-2 border-bottom\" [formGroup]=\"filtersForm\">\r\n <div class=\"row align-items-end\">\r\n <div class=\"mb-3 col-3\">\r\n <label class=\"form-label\">{{'Cms::Sections' | abpLocalization}}\uFF1A</label>\r\n <select class=\"form-select col-auto\" formControlName=\"sectionId\" (change)=\"sectionIdChange()\">\r\n <ng-container *ngFor=\"let item of SiteOfSectionList\">\r\n <option [value]=\"item.id\">{{item.displayName}}</option>\r\n </ng-container>\r\n </select>\r\n </div>\r\n <div class=\"mb-3 col-3\">\r\n <label class=\"form-label\">{{'AbpUi::Languages' | abpLocalization}}\uFF1A</label>\r\n <select class=\"form-select col-auto\" formControlName=\"culture\" (change)=\"cultureChange()\">\r\n <ng-container *ngFor=\"let item of sectionLanguagesList\">\r\n <option [value]=\"item.cultureName\">{{item.displayName}}</option>\r\n </ng-container>\r\n </select>\r\n </div>\r\n \r\n <div class=\"mb-3 col-3\">\r\n <label class=\"form-label\">{{'AbpUi::Search' | abpLocalization}}\uFF1A</label>\r\n <input type=\"text\" class=\"form-control\" formControlName=\"filter\"\r\n [placeholder]=\"'AbpUi::Search' | abpLocalization\" />\r\n </div>\r\n <div class=\"mb-3 col-3\">\r\n <button class=\"btn btn-primary px-3\" type=\"button\" id=\"button-addon2\" (click)=\"resetData()\">\r\n <i class=\"fa fa-search\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card mb-0\">\r\n <div class=\"card-body p-0\">\r\n <div class=\"table-responsive table-fixed-header\">\r\n <ngx-datatable class=\"material \" [rows]=\"data.items\" [list]=\"list\"\r\n [columnMode]=\"ColumnMode.force\" [headerHeight]=\"50\" [footerHeight]=\"50\" rowHeight=\"auto\"\r\n [virtualization]=\"false\" [externalPaging]=\"true\" [count]=\"data.totalCount\" [scrollbarH]=\"true\">\r\n <ngx-datatable-column [name]=\"'Cms::Title' | abpLocalization\" prop=\"title\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n {{ value }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [name]=\"'Cms::EntryType' | abpLocalization\" prop=\"entryTypeId\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n <ng-container *ngFor=\"let item of entryTypeList\">\r\n <ng-container *ngIf=\"item.id === value\">{{item.displayName}}</ng-container>\r\n </ng-container>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [name]=\"'Cms::Slug' | abpLocalization\" prop=\"slug\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n {{ value }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [name]=\"'Cms::Status' | abpLocalization\" prop=\"status\" [width]=\"80\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n <ng-container *ngFor=\"let item of _entryStatusOptions\">\r\n <ng-container *ngIf=\"item.value=== value\">{{ 'Cms::Enum:EntryStatus:'+item.key |\r\n abpLocalization }}</ng-container>\r\n </ng-container>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [name]=\"'Cms::PublishTime' | abpLocalization\" prop=\"publishTime\" [width]=\"190\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n {{value | date: 'YYYY/MM/dd HH:mm:s' }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [sortable]=\"false\" [name]=\"'AbpUi::Actions' | abpLocalization\"\r\n [frozenLeft]=\"true\" [width]=\"110\" [maxWidth]=\"110\" >\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n <div ngbDropdown container=\"body\">\r\n <button type=\"button\" class=\"btn btn-primary btn-sm\" ngbDropdownToggle>\r\n <i class=\"me-1 fa fa-cog\"></i> {{'AbpUi::Actions' | abpLocalization}}\r\n </button>\r\n <div ngbDropdownMenu>\r\n <button ngbDropdownItem\r\n routerLink=\"/cms/admin/entries/{{row.id}}/edit\">{{'AbpUi::Edit' |\r\n abpLocalization}}</button>\r\n <button ngbDropdownItem (click)=\"deletefield(row)\">{{'AbpUi::Delete' |\r\n abpLocalization}}</button>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n </ngx-datatable>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</abp-page>", styles: ["::ng-deep .sites-page .dignite_page{background:transparent}::ng-deep .sites-page .list-group-flush>.list-group-item:first-child{border-top-width:var(--bs-list-group-border-width)}::ng-deep .sites-page .card-header input{flex:2 1 auto}::ng-deep .sites-page .card-header .form-select{padding:.475rem 3.75rem .475rem 1.25rem}::ng-deep .sites-page .morentr{border:2px solid transparent}::ng-deep .sites-page .borderdrag{border:2px solid var(--ck-color-selector-column-resizer-hover)!important}::ng-deep .sites-page .borderdragtd{background-color:var(--ck-color-selector-column-resizer-hover)!important}::ng-deep .sites-page .testtr{border-color:transparent}::ng-deep .sites-page .testtr td{padding:2px}::ng-deep .sites-page .testtr:hover{background-color:transparent}.cdk-drag-preview{display:table;box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.example-box:last-child{border:0}.example-list.cdk-drop-list-dragging .example-box:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}::ng-deep .sites-modal-form .form-control{padding:.4rem 1.25rem}\n"] }]
197
202
  }], ctorParameters: () => [{ type: i1.EntryAdminService }, { type: i2.SectionAdminService }, { type: i3.ToasterService }, { type: i3.ConfirmationService }, { type: i4.ConfigStateService }, { type: i5.Router }, { type: i4.LocalizationService }] });
198
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50cmllcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvc3JjL2xpYi9jb21wb25lbnRzL2FkbWluL2VudHJpZXMvZW50cmllcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvc3JjL2xpYi9jb21wb25lbnRzL2FkbWluL2VudHJpZXMvZW50cmllcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsV0FBVyxFQUFFLHdCQUF3QixFQUFFLGtCQUFrQixFQUE0QyxNQUFNLGNBQWMsQ0FBQztBQUVuSSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUUsV0FBVyxFQUFhLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBR3JELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7Ozs7Ozs7O0FBbUI1RCxNQUFNLE9BQU8sZ0JBQWdCO0lBRTNCLFlBQ1Usa0JBQXFDLEVBQ3JDLG9CQUF5QyxFQUN6QyxPQUF1QixFQUN2QixZQUFpQyxFQUNqQyxXQUErQixFQUMvQixNQUFjLEVBQ2Qsb0JBQXlDO1FBTnpDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7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bnQiOlsiXG5pbXBvcnQgeyBFWFRFTlNJT05TX0lERU5USUZJRVIgfSBmcm9tIFwiQGFicC9uZy5jb21wb25lbnRzL2V4dGVuc2libGVcIjtcbmltcG9ydCB7IExpc3RTZXJ2aWNlLCBMSVNUX1FVRVJZX0RFQk9VTkNFX1RJTUUsIENvbmZpZ1N0YXRlU2VydmljZSwgTG9jYWxpemF0aW9uU2VydmljZSwgUGFnZWRSZXN1bHREdG8sIEFCUCB9IGZyb20gXCJAYWJwL25nLmNvcmVcIjtcbmltcG9ydCB7IFRvYXN0ZXJTZXJ2aWNlLCBDb25maXJtYXRpb25TZXJ2aWNlLCBDb25maXJtYXRpb24gfSBmcm9tIFwiQGFicC9uZy50aGVtZS5zaGFyZWRcIjtcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBpbmplY3QgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xuaW1wb3J0IHsgQ29sdW1uTW9kZSB9IGZyb20gXCJAc3dpbWxhbmUvbmd4LWRhdGF0YWJsZVwiO1xuaW1wb3J0IHsgRW50cnlBZG1pblNlcnZpY2UsIEVudHJ5RHRvLCBHZXRFbnRyaWVzSW5wdXQgfSBmcm9tIFwiLi4vLi4vLi4vcHJveHkvYWRtaW4vZW50cmllc1wiO1xuaW1wb3J0IHsgU2VjdGlvbkFkbWluU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi9wcm94eS9hZG1pbi9zZWN0aW9uc1wiO1xuaW1wb3J0IHsgU2l0ZVNldHRpbmdzQWRtaW5TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL3Byb3h5L2FkbWluL3NldHRpbmdzXCI7XG5pbXBvcnQgeyBlbnRyeVN0YXR1c09wdGlvbnMgfSBmcm9tIFwiLi4vLi4vLi4vcHJveHkvZW50cmllc1wiO1xuaW1wb3J0IHsgZmluYWxpemUgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgRUNtc0NvbXBvbmVudCB9IGZyb20gXCIuLi8uLi8uLi9lbnVtc1wiO1xuaW1wb3J0IHsgVXBkYXRlTGlzdFNlcnZpY2UgfSBmcm9tIFwiQGRpZ25pdGUtbmcvZXhwYW5kLmNvcmVcIjtcblxuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Ntcy1lbnRyaWVzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2VudHJpZXMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9lbnRyaWVzLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIExpc3RTZXJ2aWNlLFxuICAgIC8vIFByb3ZpZGUgdGhpcyB0b2tlbiBpZiB5b3Ugd2FudCBhIGRpZmZlcmVudCBkZWJvdW5jZSB0aW1lLlxuICAgIC8vIERlZmF1bHQgaXMgMzAwLiBDYW5ub3QgYmUgMC4gQW55IHZhbHVlIGJlbG93IDEwMCBpcyBub3QgcmVjb21tZW5kZWQuXG4gICAgeyBwcm92aWRlOiBMSVNUX1FVRVJZX0RFQk9VTkNFX1RJTUUsIHVzZVZhbHVlOiA1MDAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBFWFRFTlNJT05TX0lERU5USUZJRVIsXG4gICAgICB1c2VWYWx1ZTogRUNtc0NvbXBvbmVudC5FbnRyaWVzLFxuICAgIH0sXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRW50cmllc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfRW50cnlBZG1pblNlcnZpY2U6IEVudHJ5QWRtaW5TZXJ2aWNlLFxuICAgIHByaXZhdGUgX1NlY3Rpb25BZG1pblNlcnZpY2U6IFNlY3Rpb25BZG1pblNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0b2FzdGVyOiBUb2FzdGVyU2VydmljZSxcbiAgICBwcml2YXRlIGNvbmZpcm1hdGlvbjogQ29uZmlybWF0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIGNvbmZpZ1N0YXRlOiBDb25maWdTdGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIF9Mb2NhbGl6YXRpb25TZXJ2aWNlOiBMb2NhbGl6YXRpb25TZXJ2aWNlLFxuICApIHtcbiAgfVxuXG4gIHByaXZhdGUgZmIgPSBpbmplY3QoRm9ybUJ1aWxkZXIpXG4gIHByaXZhdGUgX1VwZGF0ZUxpc3RTZXJ2aWNlID0gaW5qZWN0KFVwZGF0ZUxpc3RTZXJ2aWNlKVxuICBwdWJsaWMgcmVhZG9ubHkgbGlzdCA9IGluamVjdChMaXN0U2VydmljZSlcblxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZ2V0UGFnZURhdGUoKVxuICAgIHRoaXMuX1VwZGF0ZUxpc3RTZXJ2aWNlLnVwZGF0ZUxpc3RFdmVudC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5saXN0LmdldCgpXG4gICAgfSk7XG4gIH1cblxuICAvKirnq5nngrnliJfooaggKi9cbiAgLy8gc2l0ZUxpc3Q6IGFueVthbnldID0gW11cbiAgLyoq6YCJ5oup55qE56uZ54K5aWQgKi9cbiAgLy8gc2l0ZUlkOiBzdHJpbmcgPSAnJ1xuICAvKirnq5nngrnkuIvnmoTniYjlnZcgKi9cbiAgU2l0ZU9mU2VjdGlvbkxpc3Q6IGFueVthbnldID0gW11cblxuXG4gIC8qKueJiOWdl+S4i+eahOivreiogOWIl+ihqCAqL1xuICBzZWN0aW9uTGFuZ3VhZ2VzTGlzdDogYW55W2FueV0gPSBbXVxuICAvKirniYjlnZfkuIvnmoTmnaHnm67nsbvlnovliJfooaggKi9cbiAgZW50cnlUeXBlTGlzdDogYW55W2FueV0gPSBbXVxuICAvKirnirbmgIHnvJbnoIEgKi9cbiAgX2VudHJ5U3RhdHVzT3B0aW9ucyA9IGVudHJ5U3RhdHVzT3B0aW9uc1xuXG4gIC8qKuiOt+WPlumhtemdouaVsOaNriAqL1xuICBhc3luYyBnZXRQYWdlRGF0ZSgpIHtcbiAgICBhd2FpdCB0aGlzLmdldFNpdGVPZlNlY3Rpb25MaXN0KClcbiAgICBhd2FpdCB0aGlzLmdldFNlY3Rpb25MYW5ndWFnZXNMaXN0KClcbiAgICB0aGlzLmZpbHRlcnMgPSB0aGlzLmZpbHRlcnNGb3JtLnZhbHVlXG4gICAgdGhpcy5ob29rVG9RdWVyeSgpXG4gIH1cblxuXG4gIC8qKuWIh+aNouadv+WdlyAqL1xuICBhc3luYyBzZWN0aW9uSWRDaGFuZ2UoKSB7XG4gICAgdGhpcy5nZXRTZWN0aW9uT2ZFbnRyeVR5cGUoKVxuICAgIGF3YWl0IHRoaXMuZ2V0U2VjdGlvbkxhbmd1YWdlc0xpc3QoKVxuICAgIHRoaXMucmVzZXREYXRhKClcbiAgfVxuICAvKirliIfmjaLor63oqIAgKi9cbiAgYXN5bmMgY3VsdHVyZUNoYW5nZSgpIHtcbiAgICB0aGlzLnJlc2V0RGF0YSgpXG4gIH1cblxuXG4gIC8qKuiOt+WPluermeeCueS4i+eahOeJiOWdlyAqL1xuICBnZXRTaXRlT2ZTZWN0aW9uTGlzdCgpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdHMpID0+IHtcbiAgICAgIHRoaXMuX1NlY3Rpb25BZG1pblNlcnZpY2UuZ2V0TGlzdCh7XG4gICAgICAgIG1heFJlc3VsdENvdW50OiAxMDAwLFxuICAgICAgfSkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgIHRoaXMuU2l0ZU9mU2VjdGlvbkxpc3QgPSByZXMuaXRlbXNcbiAgICAgICAgdGhpcy5maWx0ZXJzRm9ybS5nZXQoJ3NlY3Rpb25JZCcpLnBhdGNoVmFsdWUocmVzLml0ZW1zWzBdPy5pZCB8fCAnJylcbiAgICAgICAgdGhpcy5nZXRTZWN0aW9uT2ZFbnRyeVR5cGUoKVxuICAgICAgICByZXNvbHZlKHJlcy5pdGVtcylcbiAgICAgIH0pXG4gICAgfSlcbiAgfVxuXG4gIC8qKuiOt+WPlueJiOWdl+S4i+eahOadoeebruexu+WeiyAqL1xuICBnZXRTZWN0aW9uT2ZFbnRyeVR5cGUoKSB7XG4gICAgbGV0IHNlY3Rpb25JZCA9IHRoaXMuZmlsdGVyc0Zvcm0uZ2V0KCdzZWN0aW9uSWQnKS52YWx1ZVxuICAgIHRoaXMuZW50cnlUeXBlTGlzdCA9IHRoaXMuU2l0ZU9mU2VjdGlvbkxpc3QuZmluZChlbCA9PiBlbC5pZCA9PSBzZWN0aW9uSWQpPy5lbnRyeVR5cGVzIHx8IFtdXG4gIH1cblxuICBwcml2YXRlIGNvbmZpZyA9IGluamVjdChDb25maWdTdGF0ZVNlcnZpY2UpXG4gIHByaXZhdGUgX1NpdGVTZXR0aW5nc0FkbWluU2VydmljZSA9IGluamVjdChTaXRlU2V0dGluZ3NBZG1pblNlcnZpY2UpXG4gIC8qKuiOt+WPlueJiOWdl+S4i+eahOivreiogOWIl+ihqCAqL1xuICBnZXRTZWN0aW9uTGFuZ3VhZ2VzTGlzdCgpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoYXN5bmMgKHJlc29sdmUsIHJlamVjdHMpID0+IHtcbiAgICAgIC8v6I635Y+W5omA5pyJ6K+t6KiAICovXG4gICAgICBsZXQgbGFuZ3VhZ2VzU3lzdGVtID0gdGhpcy5jb25maWdTdGF0ZS5nZXREZWVwKCdsb2NhbGl6YXRpb24ubGFuZ3VhZ2VzJylcbiAgICAgIC8v6I635Y+W57O757uf6buY6K6k6K+t6KiAICovXG4gICAgICBsZXQgRGVmYXVsdExhbmd1YWdlID0gdGhpcy5jb25maWcuZ2V0U2V0dGluZyhcIkFicC5Mb2NhbGl6YXRpb24uRGVmYXVsdExhbmd1YWdlXCIpO1xuICAgICAgY29uc3QgY29uZmlnQ21zU2l0ZUxhbmd1YWdlcyA9IHRoaXMuY29uZmlnLmdldFNldHRpbmcoXCJDbXMuU2l0ZS5MYW5ndWFnZXNcIilcbiAgICAgIGlmKCFjb25maWdDbXNTaXRlTGFuZ3VhZ2VzKXtcbiAgICAgICAgYXdhaXQgdGhpcy5nZXRTaXRlU2V0dGluZ3NMYW5ndWFnZXMoKVxuICAgICAgfVxuICAgICAgY29uc3QgTGFuZ3VhZ2VzU2l0ZSA9IChjb25maWdDbXNTaXRlTGFuZ3VhZ2VzID8gY29uZmlnQ21zU2l0ZUxhbmd1YWdlcy5zcGxpdCgnLCcpIDogJycpIHx8IHRoaXMuU2l0ZVNldHRpbmdzQWRtaW5MYW5ndWFnZXNcbiAgICAgIGxldCBMYW5ndWFnZXNBcnJheSA9IGxhbmd1YWdlc1N5c3RlbS5maWx0ZXIoZWwgPT4gTGFuZ3VhZ2VzU2l0ZS5pbmNsdWRlcyhlbC5jdWx0dXJlTmFtZSkpXG4gICAgICAvL+iOt+WPluW9k+WJjemAieaLqeeahOivreiogFxuICAgICAgbGV0IG5vd2N1bHR1cmUgPSB0aGlzLmZpbHRlcnNGb3JtLmdldCgnY3VsdHVyZScpLnZhbHVlXG4gICAgICAvL+W9k+WJjemAieaLqeeahOivreiogO+8jOaYr+WQpuWcqOeJiOWdl+eahOeahOivreiogOWIl+ihqOS4rVxuICAgICAgbGV0IGlzZXhpc3QgPSBMYW5ndWFnZXNBcnJheS5maW5kKGVsID0+IGVsLmN1bHR1cmVOYW1lID09IG5vd2N1bHR1cmUpXG4gICAgICB0aGlzLmZpbHRlcnNGb3JtLmdldCgnY3VsdHVyZScpLnBhdGNoVmFsdWUobm93Y3VsdHVyZSA/IGlzZXhpc3QgPyBub3djdWx0dXJlIDogRGVmYXVsdExhbmd1YWdlIDogRGVmYXVsdExhbmd1YWdlKVxuICAgICAgdGhpcy5zZWN0aW9uTGFuZ3VhZ2VzTGlzdCA9IExhbmd1YWdlc0FycmF5XG4gICAgICByZXNvbHZlKExhbmd1YWdlc0FycmF5KVxuICAgIH0pXG4gIH1cblxuICAvKirnq5nngrnorr7nva7or63oqIAgKi9cbiAgU2l0ZVNldHRpbmdzQWRtaW5MYW5ndWFnZXM6IGFueVtdID0gW11cbiAgLyoqXG4gICAqIOiOt+WPluermeeCueiuvue9ruivreiogFxuICAgKi9cbiAgZ2V0U2l0ZVNldHRpbmdzTGFuZ3VhZ2VzKCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0cykgPT4ge1xuICAgICAgdGhpcy5fU2l0ZVNldHRpbmdzQWRtaW5TZXJ2aWNlLmdldEFsbExhbmd1YWdlcygpLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICB0aGlzLlNpdGVTZXR0aW5nc0FkbWluTGFuZ3VhZ2VzID0gcmVzXG4gICAgICAgIHJlc29sdmUocmVzKVxuICAgICAgfSlcbiAgICB9KVxuICB9XG5cblxuXG4gIHJlc2V0RGF0YSgpIHtcbiAgICB0aGlzLmZpbHRlcnMgPSB0aGlzLmZpbHRlcnNGb3JtLnZhbHVlXG4gICAgdGhpcy5saXN0LnBhZ2UgPSAwXG4gICAgdGhpcy5kYXRhLml0ZW1zID0gW11cbiAgICB0aGlzLmxpc3QuZ2V0KClcbiAgfVxuXG4gIC8qKuaWsOWini3ljZXkuKogKi9cbiAgY3JlYXRlRW50cmllc0J0bigpIHtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9jbXMvYWRtaW4vZW50cmllcy9jcmVhdGUnXSwge1xuICAgICAgcXVlcnlQYXJhbXM6IHsgY3VsdHVyZU5hbWU6IHRoaXMuZmlsdGVycy5jdWx0dXJlLCBzZWN0aW9uSWQ6IHRoaXMuZmlsdGVycy5zZWN0aW9uSWQsIGVudHJ5VHlwZUlkOiB0aGlzLmVudHJ5VHlwZUxpc3RbMF0uaWQgfVxuICAgIH0pXG4gIH1cblxuICAvKirliJfooajnm7jlhbMgKi9cbiAgQ29sdW1uTW9kZSA9IENvbHVtbk1vZGU7XG4gIGRhdGE6IFBhZ2VkUmVzdWx0RHRvPEVudHJ5RHRvPiA9IHtcbiAgICBpdGVtczogW10sXG4gICAgdG90YWxDb3VudDogMCxcbiAgfTtcblxuICBmaWx0ZXJzID0ge30gYXMgR2V0RW50cmllc0lucHV0O1xuICBmaWx0ZXJzRm9ybTogRm9ybUdyb3VwID0gdGhpcy5mYi5ncm91cCh7XG4gICAgc2l0ZUlkOiBbJyddLFxuICAgIHNlY3Rpb25JZDogWycnXSxcbiAgICBjdWx0dXJlOiBbJyddLFxuICAgIGZpbHRlcjogWycnXSxcbiAgfSlcblxuICBob29rVG9RdWVyeSgpIHtcblxuICAgIGNvbnN0IGdldERhdGEgPSAocXVlcnk6IEFCUC5QYWdlUXVlcnlQYXJhbXMpID0+IHRoaXMuX0VudHJ5QWRtaW5TZXJ2aWNlLmdldExpc3Qoe1xuICAgICAgLi4ucXVlcnksXG4gICAgICAuLi50aGlzLmZpbHRlcnMsXG4gICAgfSk7XG4gICAgY29uc3Qgc2V0RGF0YSA9IChsaXN0OiBQYWdlZFJlc3VsdER0bzxFbnRyeUR0bz4pID0+IHtcbiAgICAgIHRoaXMuZGF0YSA9IGxpc3RcbiAgICB9O1xuICAgIHRoaXMubGlzdC5ob29rVG9RdWVyeShnZXREYXRhKS5zdWJzY3JpYmUoc2V0RGF0YSk7XG4gIH1cblxuXG4gIC8qKuWIoOmZpOadoeebriAqL1xuICBkZWxldGVmaWVsZChyb3c6IGFueSkge1xuICAgIHRoaXMuY29uZmlybWF0aW9uLndhcm4oXG4gICAgICByb3cuZGlzcGxheU5hbWUsXG4gICAgICB0aGlzLl9Mb2NhbGl6YXRpb25TZXJ2aWNlLmluc3RhbnQoYEFicFVpOjpJdGVtV2lsbEJlRGVsZXRlZE1lc3NhZ2VgKSxcbiAgICApLnN1YnNjcmliZSgoc3RhdHVzOiBDb25maXJtYXRpb24uU3RhdHVzKSA9PiB7XG4gICAgICBpZiAoc3RhdHVzID09ICdjb25maXJtJykge1xuICAgICAgICB0aGlzLl9FbnRyeUFkbWluU2VydmljZS5kZWxldGUocm93LmlkKS5waXBlKGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgfSkpLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICAgIHRoaXMudG9hc3Rlci5zdWNjZXNzKHRoaXMuX0xvY2FsaXphdGlvblNlcnZpY2UuaW5zdGFudChgQWJwVWk6OkRlbGV0ZWRTdWNjZXNzZnVsbHlgKSk7XG4gICAgICAgICAgdGhpcy5saXN0LmdldCgpXG4gICAgICAgIH0pXG4gICAgICB9XG5cbiAgICB9KTtcbiAgfVxuXG5cbn1cbiIsIjxhYnAtcGFnZSBbdGl0bGVdPVwiJ0Ntczo6RW50cmllcycgfCBhYnBMb2NhbGl6YXRpb25cIiBbdG9vbGJhcl09XCJ0cnVlXCI+XHJcbiAgICA8YWJwLXBhZ2UtdG9vbGJhci1jb250YWluZXIgKm5nSWY9XCJlbnRyeVR5cGVMaXN0Lmxlbmd0aCA8IDFcIiBjbGFzcz1cImNvbCBcIj48L2FicC1wYWdlLXRvb2xiYXItY29udGFpbmVyPlxyXG4gICAgPGFicC1wYWdlLXRvb2xiYXItY29udGFpbmVyICpuZ0lmPVwiZW50cnlUeXBlTGlzdC5sZW5ndGggPiAxXCIgY2xhc3M9XCJjb2wgXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBqdXN0aWZ5LWNvbnRlbnQtZW5kIG14LTAgZ2FwLTJcIiAqYWJwUGVybWlzc2lvbj1cIidDbXNBZG1pbi5FbnRyeS5DcmVhdGUnXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtYXV0byBweC0wIHB0LTBcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgbmdiRHJvcGRvd24gY2xhc3M9XCJkLWlubGluZS1ibG9ja1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zbSBtcy0yXCIgaWQ9XCJkcm9wZG93bkJhc2ljMVwiIG5nYkRyb3Bkb3duVG9nZ2xlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXBsdXMgcGUtMVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT57eydDbXM6Ok5ldycgfCBhYnBMb2NhbGl6YXRpb259fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgbmdiRHJvcGRvd25NZW51IGFyaWEtbGFiZWxsZWRieT1cImRyb3Bkb3duQmFzaWMxXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZW50cnlUeXBlTGlzdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBuZ2JEcm9wZG93bkl0ZW0gW3JvdXRlckxpbmtdPVwiWycvY21zL2FkbWluL2VudHJpZXMvY3JlYXRlJ11cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtxdWVyeVBhcmFtc109XCJ7Y3VsdHVyZU5hbWU6IGZpbHRlcnMuY3VsdHVyZSxzZWN0aW9uSWQ6ZmlsdGVycy5zZWN0aW9uSWQsZW50cnlUeXBlSWQ6aXRlbS5pZH1cIj57e2l0ZW0uZGlzcGxheU5hbWV9fTwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvYWJwLXBhZ2UtdG9vbGJhci1jb250YWluZXI+XHJcblxyXG4gICAgPGRpdiBpZD1cInNpdGVzLXBhZ2VcIiBjbGFzcz1cInNpdGVzLXBhZ2VcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHB4LTIgcHktc20tMiBib3JkZXItYm90dG9tXCIgW2Zvcm1Hcm91cF09XCJmaWx0ZXJzRm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBhbGlnbi1pdGVtcy1lbmRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItMyBjb2wtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCI+e3snQ21zOjpTZWN0aW9ucycgfCBhYnBMb2NhbGl6YXRpb259fe+8mjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLXNlbGVjdCBjb2wtYXV0b1wiIGZvcm1Db250cm9sTmFtZT1cInNlY3Rpb25JZFwiIChjaGFuZ2UpPVwic2VjdGlvbklkQ2hhbmdlKClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgU2l0ZU9mU2VjdGlvbkxpc3RcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIFt2YWx1ZV09XCJpdGVtLmlkXCI+e3tpdGVtLmRpc3BsYXlOYW1lfX08L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItMyBjb2wtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCI+e3snQWJwVWk6Okxhbmd1YWdlcycgfCBhYnBMb2NhbGl6YXRpb259fe+8mjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLXNlbGVjdCBjb2wtYXV0b1wiIGZvcm1Db250cm9sTmFtZT1cImN1bHR1cmVcIiAoY2hhbmdlKT1cImN1bHR1cmVDaGFuZ2UoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBzZWN0aW9uTGFuZ3VhZ2VzTGlzdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gW3ZhbHVlXT1cIml0ZW0uY3VsdHVyZU5hbWVcIj57e2l0ZW0uZGlzcGxheU5hbWV9fTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTMgY29sLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiPnt7J0FicFVpOjpTZWFyY2gnIHwgYWJwTG9jYWxpemF0aW9ufX3vvJo8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cImZpbHRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInQWJwVWk6OlNlYXJjaCcgfCBhYnBMb2NhbGl6YXRpb25cIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zIGNvbC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgcHgtM1wiIHR5cGU9XCJidXR0b25cIiBpZD1cImJ1dHRvbi1hZGRvbjJcIiAoY2xpY2spPVwicmVzZXREYXRhKClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtc2VhcmNoXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZCBtYi0wXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgcC0wXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtcmVzcG9uc2l2ZSB0YWJsZS1maXhlZC1oZWFkZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmd4LWRhdGF0YWJsZSBjbGFzcz1cIm1hdGVyaWFsIFwiIFtyb3dzXT1cImRhdGEuaXRlbXNcIiBbbGlzdF09XCJsaXN0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2NvbHVtbk1vZGVdPVwiQ29sdW1uTW9kZS5mb3JjZVwiIFtoZWFkZXJIZWlnaHRdPVwiNTBcIiBbZm9vdGVySGVpZ2h0XT1cIjUwXCIgcm93SGVpZ2h0PVwiYXV0b1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt2aXJ0dWFsaXphdGlvbl09XCJmYWxzZVwiIFtleHRlcm5hbFBhZ2luZ109XCJ0cnVlXCIgW2NvdW50XT1cImRhdGEudG90YWxDb3VudFwiIFtzY3JvbGxiYXJIXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uIFtuYW1lXT1cIidDbXM6OlRpdGxlJyB8IGFicExvY2FsaXphdGlvblwiIHByb3A9XCJ0aXRsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBsZXQtdmFsdWU9XCJ2YWx1ZVwiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyB2YWx1ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uIFtuYW1lXT1cIidDbXM6OkVudHJ5VHlwZScgfCBhYnBMb2NhbGl6YXRpb25cIiBwcm9wPVwiZW50cnlUeXBlSWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbGV0LXZhbHVlPVwidmFsdWVcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBlbnRyeVR5cGVMaXN0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLmlkID09PSB2YWx1ZVwiPnt7aXRlbS5kaXNwbGF5TmFtZX19PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW4gW25hbWVdPVwiJ0Ntczo6U2x1ZycgfCBhYnBMb2NhbGl6YXRpb25cIiBwcm9wPVwic2x1Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBsZXQtdmFsdWU9XCJ2YWx1ZVwiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyB2YWx1ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uIFtuYW1lXT1cIidDbXM6OlN0YXR1cycgfCBhYnBMb2NhbGl6YXRpb25cIiBwcm9wPVwic3RhdHVzXCIgW3dpZHRoXT1cIjgwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIGxldC12YWx1ZT1cInZhbHVlXCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgX2VudHJ5U3RhdHVzT3B0aW9uc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS52YWx1ZT09PSB2YWx1ZVwiPnt7ICdDbXM6OkVudW06RW50cnlTdGF0dXM6JytpdGVtLmtleSB8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhYnBMb2NhbGl6YXRpb24gfX08L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtbiBbbmFtZV09XCInQ21zOjpQdWJsaXNoVGltZScgfCBhYnBMb2NhbGl6YXRpb25cIiBwcm9wPVwicHVibGlzaFRpbWVcIiBbd2lkdGhdPVwiMTkwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIGxldC12YWx1ZT1cInZhbHVlXCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7dmFsdWUgfCBkYXRlOiAnWVlZWS9NTS9kZCBISDptbTpzJyB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uIFtzb3J0YWJsZV09XCJmYWxzZVwiICBbbmFtZV09XCInQWJwVWk6OkFjdGlvbnMnIHwgYWJwTG9jYWxpemF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtmcm96ZW5MZWZ0XT1cInRydWVcIiBbd2lkdGhdPVwiMTEwXCIgW21heFdpZHRoXT1cIjExMFwiID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbGV0LXZhbHVlPVwidmFsdWVcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBuZ2JEcm9wZG93biBjb250YWluZXI9XCJib2R5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zbVwiIG5nYkRyb3Bkb3duVG9nZ2xlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJtZS0xIGZhIGZhLWNvZ1wiPjwvaT4ge3snQWJwVWk6OkFjdGlvbnMnIHwgYWJwTG9jYWxpemF0aW9ufX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgbmdiRHJvcGRvd25NZW51PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBuZ2JEcm9wZG93bkl0ZW1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3V0ZXJMaW5rPVwiL2Ntcy9hZG1pbi9lbnRyaWVzL3t7cm93LmlkfX0vZWRpdFwiPnt7J0FicFVpOjpFZGl0JyB8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWJwTG9jYWxpemF0aW9ufX08L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gbmdiRHJvcGRvd25JdGVtIChjbGljayk9XCJkZWxldGVmaWVsZChyb3cpXCI+e3snQWJwVWk6OkRlbGV0ZScgfFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFicExvY2FsaXphdGlvbn19PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuICAgICAgICAgICAgICAgICAgICA8L25neC1kYXRhdGFibGU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9hYnAtcGFnZT4iXX0=
203
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50cmllcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvc3JjL2xpYi9jb21wb25lbnRzL2FkbWluL2VudHJpZXMvZW50cmllcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvc3JjL2xpYi9jb21wb25lbnRzL2FkbWluL2VudHJpZXMvZW50cmllcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsV0FBVyxFQUFFLHdCQUF3QixFQUFFLGtCQUFrQixFQUE0QyxNQUFNLGNBQWMsQ0FBQztBQUVuSSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUUsV0FBVyxFQUFhLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBR3JELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7Ozs7Ozs7O0FBbUI1RCxNQUFNLE9BQU8sZ0JBQWdCO0lBRTNCLFlBQ1Usa0JBQXFDLEVBQ3JDLG9CQUF5QyxFQUN6QyxPQUF1QixFQUN2QixZQUFpQyxFQUNqQyxXQUErQixFQUMvQixNQUFjLEVBQ2Qsb0JBQXlDO1FBTnpDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7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TzthQUNoQztTQUNGLDBCQy9CSCwwdVBBZ0hXOzsyRkQvRUUsZ0JBQWdCO2tCQWY1QixTQUFTOytCQUNFLGFBQWEsYUFHWjt3QkFDVCxXQUFXO3dCQUNYLDREQUE0RDt3QkFDNUQsdUVBQXVFO3dCQUN2RSxFQUFFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFO3dCQUNwRDs0QkFDRSxPQUFPLEVBQUUscUJBQXFCOzRCQUM5QixRQUFRLEVBQUUsYUFBYSxDQUFDLE9BQU87eUJBQ2hDO3FCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiXG5pbXBvcnQgeyBFWFRFTlNJT05TX0lERU5USUZJRVIgfSBmcm9tIFwiQGFicC9uZy5jb21wb25lbnRzL2V4dGVuc2libGVcIjtcbmltcG9ydCB7IExpc3RTZXJ2aWNlLCBMSVNUX1FVRVJZX0RFQk9VTkNFX1RJTUUsIENvbmZpZ1N0YXRlU2VydmljZSwgTG9jYWxpemF0aW9uU2VydmljZSwgUGFnZWRSZXN1bHREdG8sIEFCUCB9IGZyb20gXCJAYWJwL25nLmNvcmVcIjtcbmltcG9ydCB7IFRvYXN0ZXJTZXJ2aWNlLCBDb25maXJtYXRpb25TZXJ2aWNlLCBDb25maXJtYXRpb24gfSBmcm9tIFwiQGFicC9uZy50aGVtZS5zaGFyZWRcIjtcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBpbmplY3QgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xuaW1wb3J0IHsgQ29sdW1uTW9kZSB9IGZyb20gXCJAc3dpbWxhbmUvbmd4LWRhdGF0YWJsZVwiO1xuaW1wb3J0IHsgRW50cnlBZG1pblNlcnZpY2UsIEVudHJ5RHRvLCBHZXRFbnRyaWVzSW5wdXQgfSBmcm9tIFwiLi4vLi4vLi4vcHJveHkvYWRtaW4vZW50cmllc1wiO1xuaW1wb3J0IHsgU2VjdGlvbkFkbWluU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi9wcm94eS9hZG1pbi9zZWN0aW9uc1wiO1xuaW1wb3J0IHsgU2l0ZVNldHRpbmdzQWRtaW5TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL3Byb3h5L2FkbWluL3NldHRpbmdzXCI7XG5pbXBvcnQgeyBlbnRyeVN0YXR1c09wdGlvbnMgfSBmcm9tIFwiLi4vLi4vLi4vcHJveHkvZW50cmllc1wiO1xuaW1wb3J0IHsgZmluYWxpemUgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgRUNtc0NvbXBvbmVudCB9IGZyb20gXCIuLi8uLi8uLi9lbnVtc1wiO1xuaW1wb3J0IHsgVXBkYXRlTGlzdFNlcnZpY2UgfSBmcm9tIFwiQGRpZ25pdGUtbmcvZXhwYW5kLmNvcmVcIjtcblxuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Ntcy1lbnRyaWVzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2VudHJpZXMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9lbnRyaWVzLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIExpc3RTZXJ2aWNlLFxuICAgIC8vIFByb3ZpZGUgdGhpcyB0b2tlbiBpZiB5b3Ugd2FudCBhIGRpZmZlcmVudCBkZWJvdW5jZSB0aW1lLlxuICAgIC8vIERlZmF1bHQgaXMgMzAwLiBDYW5ub3QgYmUgMC4gQW55IHZhbHVlIGJlbG93IDEwMCBpcyBub3QgcmVjb21tZW5kZWQuXG4gICAgeyBwcm92aWRlOiBMSVNUX1FVRVJZX0RFQk9VTkNFX1RJTUUsIHVzZVZhbHVlOiA1MDAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBFWFRFTlNJT05TX0lERU5USUZJRVIsXG4gICAgICB1c2VWYWx1ZTogRUNtc0NvbXBvbmVudC5FbnRyaWVzLFxuICAgIH0sXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRW50cmllc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfRW50cnlBZG1pblNlcnZpY2U6IEVudHJ5QWRtaW5TZXJ2aWNlLFxuICAgIHByaXZhdGUgX1NlY3Rpb25BZG1pblNlcnZpY2U6IFNlY3Rpb25BZG1pblNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0b2FzdGVyOiBUb2FzdGVyU2VydmljZSxcbiAgICBwcml2YXRlIGNvbmZpcm1hdGlvbjogQ29uZmlybWF0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIGNvbmZpZ1N0YXRlOiBDb25maWdTdGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIF9Mb2NhbGl6YXRpb25TZXJ2aWNlOiBMb2NhbGl6YXRpb25TZXJ2aWNlLFxuICApIHtcbiAgfVxuXG4gIHByaXZhdGUgZmIgPSBpbmplY3QoRm9ybUJ1aWxkZXIpXG4gIHByaXZhdGUgX1VwZGF0ZUxpc3RTZXJ2aWNlID0gaW5qZWN0KFVwZGF0ZUxpc3RTZXJ2aWNlKVxuICBwdWJsaWMgcmVhZG9ubHkgbGlzdCA9IGluamVjdChMaXN0U2VydmljZSlcblxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZ2V0UGFnZURhdGUoKVxuICAgIHRoaXMuX1VwZGF0ZUxpc3RTZXJ2aWNlLnVwZGF0ZUxpc3RFdmVudC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5saXN0LmdldCgpXG4gICAgfSk7XG4gIH1cblxuICAvKirnq5nngrnliJfooaggKi9cbiAgLy8gc2l0ZUxpc3Q6IGFueVthbnldID0gW11cbiAgLyoq6YCJ5oup55qE56uZ54K5aWQgKi9cbiAgLy8gc2l0ZUlkOiBzdHJpbmcgPSAnJ1xuICAvKirnq5nngrnkuIvnmoTniYjlnZcgKi9cbiAgU2l0ZU9mU2VjdGlvbkxpc3Q6IGFueVthbnldID0gW11cblxuXG4gIC8qKueJiOWdl+S4i+eahOivreiogOWIl+ihqCAqL1xuICBzZWN0aW9uTGFuZ3VhZ2VzTGlzdDogYW55W2FueV0gPSBbXVxuICAvKirniYjlnZfkuIvnmoTmnaHnm67nsbvlnovliJfooaggKi9cbiAgZW50cnlUeXBlTGlzdDogYW55W2FueV0gPSBbXVxuICAvKirnirbmgIHnvJbnoIEgKi9cbiAgX2VudHJ5U3RhdHVzT3B0aW9ucyA9IGVudHJ5U3RhdHVzT3B0aW9uc1xuXG4gIC8qKuiOt+WPlumhtemdouaVsOaNriAqL1xuICBhc3luYyBnZXRQYWdlRGF0ZSgpIHtcbiAgICBhd2FpdCB0aGlzLmdldFNpdGVPZlNlY3Rpb25MaXN0KClcbiAgICBhd2FpdCB0aGlzLmdldFNlY3Rpb25MYW5ndWFnZXNMaXN0KClcbiAgICB0aGlzLmZpbHRlcnMgPSB0aGlzLmZpbHRlcnNGb3JtLnZhbHVlXG4gICAgdGhpcy5ob29rVG9RdWVyeSgpXG4gIH1cblxuXG4gIC8qKuWIh+aNouadv+WdlyAqL1xuICBhc3luYyBzZWN0aW9uSWRDaGFuZ2UoKSB7XG4gICAgdGhpcy5nZXRTZWN0aW9uT2ZFbnRyeVR5cGUoKVxuICAgIGF3YWl0IHRoaXMuZ2V0U2VjdGlvbkxhbmd1YWdlc0xpc3QoKVxuICAgIHRoaXMucmVzZXREYXRhKClcbiAgfVxuICAvKirliIfmjaLor63oqIAgKi9cbiAgYXN5bmMgY3VsdHVyZUNoYW5nZSgpIHtcbiAgICB0aGlzLnJlc2V0RGF0YSgpXG4gIH1cblxuXG4gIC8qKuiOt+WPluermeeCueS4i+eahOeJiOWdlyAqL1xuICBnZXRTaXRlT2ZTZWN0aW9uTGlzdCgpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdHMpID0+IHtcbiAgICAgIHRoaXMuX1NlY3Rpb25BZG1pblNlcnZpY2UuZ2V0TGlzdCh7XG4gICAgICAgIG1heFJlc3VsdENvdW50OiAxMDAwLFxuICAgICAgfSkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgIHRoaXMuU2l0ZU9mU2VjdGlvbkxpc3QgPSByZXMuaXRlbXNcbiAgICAgICAgdGhpcy5maWx0ZXJzRm9ybS5nZXQoJ3NlY3Rpb25JZCcpLnBhdGNoVmFsdWUocmVzLml0ZW1zWzBdPy5pZCB8fCAnJylcbiAgICAgICAgdGhpcy5nZXRTZWN0aW9uT2ZFbnRyeVR5cGUoKVxuICAgICAgICByZXNvbHZlKHJlcy5pdGVtcylcbiAgICAgIH0pXG4gICAgfSlcbiAgfVxuXG4gIC8qKuiOt+WPlueJiOWdl+S4i+eahOadoeebruexu+WeiyAqL1xuICBnZXRTZWN0aW9uT2ZFbnRyeVR5cGUoKSB7XG4gICAgbGV0IHNlY3Rpb25JZCA9IHRoaXMuZmlsdGVyc0Zvcm0uZ2V0KCdzZWN0aW9uSWQnKS52YWx1ZVxuICAgIHRoaXMuZW50cnlUeXBlTGlzdCA9IHRoaXMuU2l0ZU9mU2VjdGlvbkxpc3QuZmluZChlbCA9PiBlbC5pZCA9PSBzZWN0aW9uSWQpPy5lbnRyeVR5cGVzIHx8IFtdXG4gIH1cblxuICBwcml2YXRlIGNvbmZpZyA9IGluamVjdChDb25maWdTdGF0ZVNlcnZpY2UpXG4gIHByaXZhdGUgX1NpdGVTZXR0aW5nc0FkbWluU2VydmljZSA9IGluamVjdChTaXRlU2V0dGluZ3NBZG1pblNlcnZpY2UpXG4gIC8qKuiOt+WPlueJiOWdl+S4i+eahOivreiogOWIl+ihqCAqL1xuICBnZXRTZWN0aW9uTGFuZ3VhZ2VzTGlzdCgpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoYXN5bmMgKHJlc29sdmUsIHJlamVjdHMpID0+IHtcbiAgICAgIC8v6I635Y+W5omA5pyJ6K+t6KiAICovXG4gICAgICBsZXQgbGFuZ3VhZ2VzU3lzdGVtID0gdGhpcy5jb25maWdTdGF0ZS5nZXREZWVwKCdsb2NhbGl6YXRpb24ubGFuZ3VhZ2VzJylcbiAgICAgIC8v6I635Y+W57O757uf6buY6K6k6K+t6KiAICovXG4gICAgICBsZXQgRGVmYXVsdExhbmd1YWdlID0gdGhpcy5jb25maWcuZ2V0U2V0dGluZyhcIkFicC5Mb2NhbGl6YXRpb24uRGVmYXVsdExhbmd1YWdlXCIpO1xuICAgICAgY29uc3QgY29uZmlnQ21zU2l0ZUxhbmd1YWdlcyA9IHRoaXMuY29uZmlnLmdldFNldHRpbmcoXCJDbXMuU2l0ZS5MYW5ndWFnZXNcIilcbiAgICAgIGlmKCFjb25maWdDbXNTaXRlTGFuZ3VhZ2VzKXtcbiAgICAgICAgYXdhaXQgdGhpcy5nZXRTaXRlU2V0dGluZ3NMYW5ndWFnZXMoKVxuICAgICAgfVxuICAgICAgY29uc3QgTGFuZ3VhZ2VzU2l0ZSA9IChjb25maWdDbXNTaXRlTGFuZ3VhZ2VzID8gY29uZmlnQ21zU2l0ZUxhbmd1YWdlcy5zcGxpdCgnLCcpIDogJycpIHx8IHRoaXMuU2l0ZVNldHRpbmdzQWRtaW5MYW5ndWFnZXNcbiAgICAgIGxldCBMYW5ndWFnZXNBcnJheSA9IGxhbmd1YWdlc1N5c3RlbS5maWx0ZXIoZWwgPT4gTGFuZ3VhZ2VzU2l0ZS5pbmNsdWRlcyhlbC5jdWx0dXJlTmFtZSkpXG4gICAgICAvL+iOt+WPluW9k+WJjemAieaLqeeahOivreiogFxuICAgICAgbGV0IG5vd2N1bHR1cmUgPSB0aGlzLmZpbHRlcnNGb3JtLmdldCgnY3VsdHVyZScpLnZhbHVlXG4gICAgICAvL+W9k+WJjemAieaLqeeahOivreiogO+8jOaYr+WQpuWcqOeJiOWdl+eahOeahOivreiogOWIl+ihqOS4rVxuICAgICAgbGV0IGlzZXhpc3QgPSBMYW5ndWFnZXNBcnJheS5maW5kKGVsID0+IGVsLmN1bHR1cmVOYW1lID09IG5vd2N1bHR1cmUpXG4gICAgICB0aGlzLmZpbHRlcnNGb3JtLmdldCgnY3VsdHVyZScpLnBhdGNoVmFsdWUobm93Y3VsdHVyZSA/IGlzZXhpc3QgPyBub3djdWx0dXJlIDogRGVmYXVsdExhbmd1YWdlIDogRGVmYXVsdExhbmd1YWdlKVxuICAgICAgdGhpcy5zZWN0aW9uTGFuZ3VhZ2VzTGlzdCA9IExhbmd1YWdlc0FycmF5XG4gICAgICByZXNvbHZlKExhbmd1YWdlc0FycmF5KVxuICAgIH0pXG4gIH1cblxuICAvKirnq5nngrnorr7nva7or63oqIAgKi9cbiAgU2l0ZVNldHRpbmdzQWRtaW5MYW5ndWFnZXM6IGFueVtdID0gW11cbiAgLyoqXG4gICAqIOiOt+WPluermeeCueiuvue9ruivreiogFxuICAgKi9cbiAgZ2V0U2l0ZVNldHRpbmdzTGFuZ3VhZ2VzKCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0cykgPT4ge1xuICAgICAgdGhpcy5fU2l0ZVNldHRpbmdzQWRtaW5TZXJ2aWNlLmdldEFsbExhbmd1YWdlcygpLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICB0aGlzLlNpdGVTZXR0aW5nc0FkbWluTGFuZ3VhZ2VzID0gcmVzXG4gICAgICAgIHJlc29sdmUocmVzKVxuICAgICAgfSlcbiAgICB9KVxuICB9XG5cblxuXG4gIHJlc2V0RGF0YSgpIHtcbiAgICB0aGlzLmZpbHRlcnMgPSB0aGlzLmZpbHRlcnNGb3JtLnZhbHVlXG4gICAgdGhpcy5saXN0LnBhZ2UgPSAwXG4gICAgdGhpcy5kYXRhLml0ZW1zID0gW11cbiAgICB0aGlzLmxpc3QuZ2V0KClcbiAgfVxuXG4gIC8qKuaWsOWini3ljZXkuKogKi9cbiAgY3JlYXRlRW50cmllc0J0bigpIHtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9jbXMvYWRtaW4vZW50cmllcy9jcmVhdGUnXSwge1xuICAgICAgcXVlcnlQYXJhbXM6IHsgY3VsdHVyZU5hbWU6IHRoaXMuZmlsdGVycy5jdWx0dXJlLCBzZWN0aW9uSWQ6IHRoaXMuZmlsdGVycy5zZWN0aW9uSWQsIGVudHJ5VHlwZUlkOiB0aGlzLmVudHJ5VHlwZUxpc3RbMF0uaWQgfVxuICAgIH0pXG4gIH1cbiAgY3JlYXRlQ29weUVudHJpZXNCdG4oKSB7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvY21zL2FkbWluL2VudHJpZXMvY3JlYXRlLWNvcHknXSwge1xuICAgICAgcXVlcnlQYXJhbXM6IHsgY3VsdHVyZU5hbWU6IHRoaXMuZmlsdGVycy5jdWx0dXJlLCBzZWN0aW9uSWQ6IHRoaXMuZmlsdGVycy5zZWN0aW9uSWQsIGVudHJ5VHlwZUlkOiB0aGlzLmVudHJ5VHlwZUxpc3RbMF0uaWQgfVxuICAgIH0pXG4gIH1cblxuICAvKirliJfooajnm7jlhbMgKi9cbiAgQ29sdW1uTW9kZSA9IENvbHVtbk1vZGU7XG4gIGRhdGE6IFBhZ2VkUmVzdWx0RHRvPEVudHJ5RHRvPiA9IHtcbiAgICBpdGVtczogW10sXG4gICAgdG90YWxDb3VudDogMCxcbiAgfTtcblxuICBmaWx0ZXJzID0ge30gYXMgR2V0RW50cmllc0lucHV0O1xuICBmaWx0ZXJzRm9ybTogRm9ybUdyb3VwID0gdGhpcy5mYi5ncm91cCh7XG4gICAgc2l0ZUlkOiBbJyddLFxuICAgIHNlY3Rpb25JZDogWycnXSxcbiAgICBjdWx0dXJlOiBbJyddLFxuICAgIGZpbHRlcjogWycnXSxcbiAgfSlcblxuICBob29rVG9RdWVyeSgpIHtcblxuICAgIGNvbnN0IGdldERhdGEgPSAocXVlcnk6IEFCUC5QYWdlUXVlcnlQYXJhbXMpID0+IHRoaXMuX0VudHJ5QWRtaW5TZXJ2aWNlLmdldExpc3Qoe1xuICAgICAgLi4ucXVlcnksXG4gICAgICAuLi50aGlzLmZpbHRlcnMsXG4gICAgfSk7XG4gICAgY29uc3Qgc2V0RGF0YSA9IChsaXN0OiBQYWdlZFJlc3VsdER0bzxFbnRyeUR0bz4pID0+IHtcbiAgICAgIHRoaXMuZGF0YSA9IGxpc3RcbiAgICB9O1xuICAgIHRoaXMubGlzdC5ob29rVG9RdWVyeShnZXREYXRhKS5zdWJzY3JpYmUoc2V0RGF0YSk7XG4gIH1cblxuXG4gIC8qKuWIoOmZpOadoeebriAqL1xuICBkZWxldGVmaWVsZChyb3c6IGFueSkge1xuICAgIHRoaXMuY29uZmlybWF0aW9uLndhcm4oXG4gICAgICByb3cuZGlzcGxheU5hbWUsXG4gICAgICB0aGlzLl9Mb2NhbGl6YXRpb25TZXJ2aWNlLmluc3RhbnQoYEFicFVpOjpJdGVtV2lsbEJlRGVsZXRlZE1lc3NhZ2VgKSxcbiAgICApLnN1YnNjcmliZSgoc3RhdHVzOiBDb25maXJtYXRpb24uU3RhdHVzKSA9PiB7XG4gICAgICBpZiAoc3RhdHVzID09ICdjb25maXJtJykge1xuICAgICAgICB0aGlzLl9FbnRyeUFkbWluU2VydmljZS5kZWxldGUocm93LmlkKS5waXBlKGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgfSkpLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICAgIHRoaXMudG9hc3Rlci5zdWNjZXNzKHRoaXMuX0xvY2FsaXphdGlvblNlcnZpY2UuaW5zdGFudChgQWJwVWk6OkRlbGV0ZWRTdWNjZXNzZnVsbHlgKSk7XG4gICAgICAgICAgdGhpcy5saXN0LmdldCgpXG4gICAgICAgIH0pXG4gICAgICB9XG5cbiAgICB9KTtcbiAgfVxuXG5cbn1cbiIsIjxhYnAtcGFnZSBbdGl0bGVdPVwiJ0Ntczo6RW50cmllcycgfCBhYnBMb2NhbGl6YXRpb25cIiBbdG9vbGJhcl09XCJ0cnVlXCI+XHJcbiAgICA8YWJwLXBhZ2UtdG9vbGJhci1jb250YWluZXIgKm5nSWY9XCJlbnRyeVR5cGVMaXN0Lmxlbmd0aCA8IDFcIiBjbGFzcz1cImNvbCBcIj48L2FicC1wYWdlLXRvb2xiYXItY29udGFpbmVyPlxyXG4gICAgPGFicC1wYWdlLXRvb2xiYXItY29udGFpbmVyICpuZ0lmPVwiZW50cnlUeXBlTGlzdC5sZW5ndGggPiAxXCIgY2xhc3M9XCJjb2wgXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBqdXN0aWZ5LWNvbnRlbnQtZW5kIG14LTAgZ2FwLTJcIiAqYWJwUGVybWlzc2lvbj1cIidDbXNBZG1pbi5FbnRyeS5DcmVhdGUnXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtYXV0byBweC0wIHB0LTBcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgbmdiRHJvcGRvd24gY2xhc3M9XCJkLWlubGluZS1ibG9ja1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zbSBtcy0yXCIgaWQ9XCJkcm9wZG93bkJhc2ljMVwiIG5nYkRyb3Bkb3duVG9nZ2xlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXBsdXMgcGUtMVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT57eydDbXM6Ok5ldycgfCBhYnBMb2NhbGl6YXRpb259fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgbmdiRHJvcGRvd25NZW51IGFyaWEtbGFiZWxsZWRieT1cImRyb3Bkb3duQmFzaWMxXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZW50cnlUeXBlTGlzdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBuZ2JEcm9wZG93bkl0ZW0gW3JvdXRlckxpbmtdPVwiWycvY21zL2FkbWluL2VudHJpZXMvY3JlYXRlJ11cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtxdWVyeVBhcmFtc109XCJ7Y3VsdHVyZU5hbWU6IGZpbHRlcnMuY3VsdHVyZSxzZWN0aW9uSWQ6ZmlsdGVycy5zZWN0aW9uSWQsZW50cnlUeXBlSWQ6aXRlbS5pZH1cIj57e2l0ZW0uZGlzcGxheU5hbWV9fTwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvYWJwLXBhZ2UtdG9vbGJhci1jb250YWluZXI+XHJcblxyXG4gICAgPGRpdiBpZD1cInNpdGVzLXBhZ2VcIiBjbGFzcz1cInNpdGVzLXBhZ2VcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHB4LTIgcHktc20tMiBib3JkZXItYm90dG9tXCIgW2Zvcm1Hcm91cF09XCJmaWx0ZXJzRm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBhbGlnbi1pdGVtcy1lbmRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItMyBjb2wtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCI+e3snQ21zOjpTZWN0aW9ucycgfCBhYnBMb2NhbGl6YXRpb259fe+8mjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLXNlbGVjdCBjb2wtYXV0b1wiIGZvcm1Db250cm9sTmFtZT1cInNlY3Rpb25JZFwiIChjaGFuZ2UpPVwic2VjdGlvbklkQ2hhbmdlKClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgU2l0ZU9mU2VjdGlvbkxpc3RcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIFt2YWx1ZV09XCJpdGVtLmlkXCI+e3tpdGVtLmRpc3BsYXlOYW1lfX08L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItMyBjb2wtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCI+e3snQWJwVWk6Okxhbmd1YWdlcycgfCBhYnBMb2NhbGl6YXRpb259fe+8mjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLXNlbGVjdCBjb2wtYXV0b1wiIGZvcm1Db250cm9sTmFtZT1cImN1bHR1cmVcIiAoY2hhbmdlKT1cImN1bHR1cmVDaGFuZ2UoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBzZWN0aW9uTGFuZ3VhZ2VzTGlzdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gW3ZhbHVlXT1cIml0ZW0uY3VsdHVyZU5hbWVcIj57e2l0ZW0uZGlzcGxheU5hbWV9fTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTMgY29sLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiPnt7J0FicFVpOjpTZWFyY2gnIHwgYWJwTG9jYWxpemF0aW9ufX3vvJo8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cImZpbHRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInQWJwVWk6OlNlYXJjaCcgfCBhYnBMb2NhbGl6YXRpb25cIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zIGNvbC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgcHgtM1wiIHR5cGU9XCJidXR0b25cIiBpZD1cImJ1dHRvbi1hZGRvbjJcIiAoY2xpY2spPVwicmVzZXREYXRhKClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtc2VhcmNoXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZCBtYi0wXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgcC0wXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtcmVzcG9uc2l2ZSB0YWJsZS1maXhlZC1oZWFkZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmd4LWRhdGF0YWJsZSBjbGFzcz1cIm1hdGVyaWFsIFwiIFtyb3dzXT1cImRhdGEuaXRlbXNcIiBbbGlzdF09XCJsaXN0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2NvbHVtbk1vZGVdPVwiQ29sdW1uTW9kZS5mb3JjZVwiIFtoZWFkZXJIZWlnaHRdPVwiNTBcIiBbZm9vdGVySGVpZ2h0XT1cIjUwXCIgcm93SGVpZ2h0PVwiYXV0b1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt2aXJ0dWFsaXphdGlvbl09XCJmYWxzZVwiIFtleHRlcm5hbFBhZ2luZ109XCJ0cnVlXCIgW2NvdW50XT1cImRhdGEudG90YWxDb3VudFwiIFtzY3JvbGxiYXJIXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uIFtuYW1lXT1cIidDbXM6OlRpdGxlJyB8IGFicExvY2FsaXphdGlvblwiIHByb3A9XCJ0aXRsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBsZXQtdmFsdWU9XCJ2YWx1ZVwiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyB2YWx1ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uIFtuYW1lXT1cIidDbXM6OkVudHJ5VHlwZScgfCBhYnBMb2NhbGl6YXRpb25cIiBwcm9wPVwiZW50cnlUeXBlSWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbGV0LXZhbHVlPVwidmFsdWVcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBlbnRyeVR5cGVMaXN0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLmlkID09PSB2YWx1ZVwiPnt7aXRlbS5kaXNwbGF5TmFtZX19PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW4gW25hbWVdPVwiJ0Ntczo6U2x1ZycgfCBhYnBMb2NhbGl6YXRpb25cIiBwcm9wPVwic2x1Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBsZXQtdmFsdWU9XCJ2YWx1ZVwiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyB2YWx1ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uIFtuYW1lXT1cIidDbXM6OlN0YXR1cycgfCBhYnBMb2NhbGl6YXRpb25cIiBwcm9wPVwic3RhdHVzXCIgW3dpZHRoXT1cIjgwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIGxldC12YWx1ZT1cInZhbHVlXCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgX2VudHJ5U3RhdHVzT3B0aW9uc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS52YWx1ZT09PSB2YWx1ZVwiPnt7ICdDbXM6OkVudW06RW50cnlTdGF0dXM6JytpdGVtLmtleSB8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhYnBMb2NhbGl6YXRpb24gfX08L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtbiBbbmFtZV09XCInQ21zOjpQdWJsaXNoVGltZScgfCBhYnBMb2NhbGl6YXRpb25cIiBwcm9wPVwicHVibGlzaFRpbWVcIiBbd2lkdGhdPVwiMTkwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIGxldC12YWx1ZT1cInZhbHVlXCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7dmFsdWUgfCBkYXRlOiAnWVlZWS9NTS9kZCBISDptbTpzJyB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uIFtzb3J0YWJsZV09XCJmYWxzZVwiICBbbmFtZV09XCInQWJwVWk6OkFjdGlvbnMnIHwgYWJwTG9jYWxpemF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtmcm96ZW5MZWZ0XT1cInRydWVcIiBbd2lkdGhdPVwiMTEwXCIgW21heFdpZHRoXT1cIjExMFwiID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbGV0LXZhbHVlPVwidmFsdWVcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBuZ2JEcm9wZG93biBjb250YWluZXI9XCJib2R5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zbVwiIG5nYkRyb3Bkb3duVG9nZ2xlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJtZS0xIGZhIGZhLWNvZ1wiPjwvaT4ge3snQWJwVWk6OkFjdGlvbnMnIHwgYWJwTG9jYWxpemF0aW9ufX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgbmdiRHJvcGRvd25NZW51PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBuZ2JEcm9wZG93bkl0ZW1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3V0ZXJMaW5rPVwiL2Ntcy9hZG1pbi9lbnRyaWVzL3t7cm93LmlkfX0vZWRpdFwiPnt7J0FicFVpOjpFZGl0JyB8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWJwTG9jYWxpemF0aW9ufX08L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gbmdiRHJvcGRvd25JdGVtIChjbGljayk9XCJkZWxldGVmaWVsZChyb3cpXCI+e3snQWJwVWk6OkRlbGV0ZScgfFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFicExvY2FsaXphdGlvbn19PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuICAgICAgICAgICAgICAgICAgICA8L25neC1kYXRhdGFibGU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9hYnAtcGFnZT4iXX0=
@@ -4,6 +4,7 @@ import { ECmsComponent } from '../../../enums';
4
4
  import { UpdateListService } from '@dignite-ng/expand.core';
5
5
  import { CreateOrUpdateFieldInputBase } from './create-or-update-field-input-base';
6
6
  import { ValidatorsService } from '@dignite-ng/expand.core';
7
+ import { finalize } from 'rxjs';
7
8
  import * as i0 from "@angular/core";
8
9
  import * as i1 from "@angular/forms";
9
10
  import * as i2 from "../../../proxy/admin/fields";
@@ -39,6 +40,8 @@ export class CreateFieldComponent {
39
40
  }
40
41
  /**触发提交按钮 */
41
42
  submitclickBtn() {
43
+ if (this.isSubmit)
44
+ return;
42
45
  this.isSubmit = true;
43
46
  this.submitclick.nativeElement.click();
44
47
  }
@@ -48,10 +51,16 @@ export class CreateFieldComponent {
48
51
  // if (!this.isSubmit) return;
49
52
  this.formValidation = this._ValidatorsService.getFormValidationStatus(this.newEntity);
50
53
  if (this._ValidatorsService.isCheckForm(this.formValidation, 'Cms'))
51
- return;
54
+ return this.isSubmit = false;
55
+ ;
52
56
  if (!this.newEntity.valid)
53
57
  return;
54
- this._FieldAdminService.create(input).subscribe(res => {
58
+ this._FieldAdminService
59
+ .create(input)
60
+ .pipe(finalize(() => {
61
+ this.isSubmit = false;
62
+ }))
63
+ .subscribe(res => {
55
64
  this.toaster.success(this._LocalizationService.instant(`AbpUi::SavedSuccessfully`));
56
65
  this._location.back();
57
66
  this._UpdateListService.updateList();
@@ -77,4 +86,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImpor
77
86
  type: ViewChild,
78
87
  args: ['submitclick', { static: true }]
79
88
  }] } });
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Ntcy9zcmMvbGliL2NvbXBvbmVudHMvYWRtaW4vZmllbGRzL2NyZWF0ZS1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvc3JjL2xpYi9jb21wb25lbnRzL2FkbWluL2ZpZWxkcy9jcmVhdGUtZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFJdEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFjLE1BQU0sZUFBZSxDQUFDO0FBSXpFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNuRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7Ozs7Ozs7QUFjNUQsTUFBTSxPQUFPLG9CQUFvQjtJQUUvQixZQUNVLEVBQWUsRUFDaEIsa0JBQXFDLEVBQ3BDLE9BQXVCLEVBQ3hCLFNBQW1CLEVBQ25CLG9CQUF5QyxFQUN6QyxjQUE2QjtRQUw1QixPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQ2hCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7UUFDcEMsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFDeEIsY0FBUyxHQUFULFNBQVMsQ0FBVTtRQUNuQix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXFCO1FBQ3pDLG1CQUFjLEdBQWQsY0FBYyxDQUFlO1FBRzlCLHVCQUFrQixHQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO1FBbUJwRCxhQUFRLEdBQVMsS0FBSyxDQUFDO1FBRWYsdUJBQWtCLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDdkQ7Ozs7V0FJRztRQUNILG1CQUFjLEdBQVEsRUFBRSxDQUFDO0lBNUJyQixDQUFDO0lBU0wsUUFBUTtRQUNOLGlHQUFpRztRQUNqRyx1Q0FBdUM7UUFDdkMsSUFBSSxDQUFDLFNBQVMsR0FBRSxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLDRCQUE0QixFQUFFLENBQUMsQ0FBQTtJQUNuRSxDQUFDO0lBRUQsWUFBWTtJQUNaLGNBQWM7UUFDWixJQUFJLENBQUMsUUFBUSxHQUFDLElBQUksQ0FBQztRQUNuQixJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQTtJQUN4QyxDQUFDO0lBV0QsVUFBVTtJQUNWLElBQUk7UUFDRixJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQTtRQUNoQyw4QkFBOEI7UUFDOUIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3RGLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFDLEtBQUssQ0FBQztZQUFFLE9BQU87UUFFM0UsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSztZQUFFLE9BQU07UUFDakMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDcEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQywwQkFBMEIsQ0FBQyxDQUFDLENBQUM7WUFDbEYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsa0JBQWtCLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDekMsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDOzhHQXJEVSxvQkFBb0I7a0dBQXBCLG9CQUFvQiwyQ0FQcEI7WUFDVDtnQkFDRSxPQUFPLEVBQUUscUJBQXFCO2dCQUM5QixRQUFRLEVBQUUsYUFBYSxDQUFDLFlBQVk7YUFDckM7U0FDRixvSkN4QkgsOG1CQVdPOzsyRkRlTSxvQkFBb0I7a0JBWGhDLFNBQVM7K0JBQ0Usa0JBQWtCLGFBR2pCO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxxQkFBcUI7NEJBQzlCLFFBQVEsRUFBRSxhQUFhLENBQUMsWUFBWTt5QkFDckM7cUJBQ0Y7a09BbUIyQyxXQUFXO3NCQUF0RCxTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCB7IEVYVEVOU0lPTlNfSURFTlRJRklFUiB9IGZyb20gJ0BhYnAvbmcuY29tcG9uZW50cy9leHRlbnNpYmxlJztcbmltcG9ydCB7IExvY2FsaXphdGlvblNlcnZpY2UgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xuaW1wb3J0IHsgVG9hc3RlclNlcnZpY2UgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XG5pbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCwgVmlld0NoaWxkLCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRmllbGRBZG1pblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9wcm94eS9hZG1pbi9maWVsZHMnO1xuaW1wb3J0IHsgQ21zQXBpU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IEVDbXNDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9lbnVtcyc7XG5pbXBvcnQgeyBVcGRhdGVMaXN0U2VydmljZSB9IGZyb20gJ0BkaWduaXRlLW5nL2V4cGFuZC5jb3JlJztcbmltcG9ydCB7IENyZWF0ZU9yVXBkYXRlRmllbGRJbnB1dEJhc2UgfSBmcm9tICcuL2NyZWF0ZS1vci11cGRhdGUtZmllbGQtaW5wdXQtYmFzZSc7XG5pbXBvcnQgeyBWYWxpZGF0b3JzU2VydmljZSB9IGZyb20gJ0BkaWduaXRlLW5nL2V4cGFuZC5jb3JlJztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjbXMtY3JlYXRlLWZpZWxkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NyZWF0ZS1maWVsZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NyZWF0ZS1maWVsZC5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBFWFRFTlNJT05TX0lERU5USUZJRVIsXG4gICAgICB1c2VWYWx1ZTogRUNtc0NvbXBvbmVudC5GaWVsZHNDcmVhdGUsXG4gICAgfSxcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBDcmVhdGVGaWVsZENvbXBvbmVudCB7XG4gIFxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcbiAgICBwdWJsaWMgX0ZpZWxkQWRtaW5TZXJ2aWNlOiBGaWVsZEFkbWluU2VydmljZSxcbiAgICBwcml2YXRlIHRvYXN0ZXI6IFRvYXN0ZXJTZXJ2aWNlLFxuICAgIHB1YmxpYyBfbG9jYXRpb246IExvY2F0aW9uLFxuICAgIHB1YmxpYyBfTG9jYWxpemF0aW9uU2VydmljZTogTG9jYWxpemF0aW9uU2VydmljZSxcbiAgICBwdWJsaWMgX0Ntc0FwaVNlcnZpY2U6IENtc0FwaVNlcnZpY2UsXG4gICBcbiAgKSB7IH1cbiAgcHJpdmF0ZSBfVXBkYXRlTGlzdFNlcnZpY2U9aW5qZWN0KFVwZGF0ZUxpc3RTZXJ2aWNlKVxuIFxuICAvKirooajljZXlrp7kvZMgKi9cbiAgbmV3RW50aXR5OiBGb3JtR3JvdXAgfCB1bmRlZmluZWQgXG5cbiAgLyoq6I635Y+W5o+Q5Lqk5oyJ6ZKu5pu/6Lqr77yM55So5LqO55yf5a6e6Kem5Y+R6KGo5Y2V5o+Q5LqkICovXG4gIEBWaWV3Q2hpbGQoJ3N1Ym1pdGNsaWNrJywgeyBzdGF0aWM6IHRydWUgfSkgc3VibWl0Y2xpY2s6IEVsZW1lbnRSZWY7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy9DYWxsZWQgYWZ0ZXIgdGhlIGNvbnN0cnVjdG9yLCBpbml0aWFsaXppbmcgaW5wdXQgcHJvcGVydGllcywgYW5kIHRoZSBmaXJzdCBjYWxsIHRvIG5nT25DaGFuZ2VzLlxuICAgIC8vQWRkICdpbXBsZW1lbnRzIE9uSW5pdCcgdG8gdGhlIGNsYXNzLlxuICAgIHRoaXMubmV3RW50aXR5PSB0aGlzLmZiLmdyb3VwKG5ldyBDcmVhdGVPclVwZGF0ZUZpZWxkSW5wdXRCYXNlKCkpXG4gIH1cblxuICAvKirop6blj5Hmj5DkuqTmjInpkq4gKi9cbiAgc3VibWl0Y2xpY2tCdG4oKXtcbiAgICB0aGlzLmlzU3VibWl0PXRydWU7XG4gICAgdGhpcy5zdWJtaXRjbGljay5uYXRpdmVFbGVtZW50LmNsaWNrKClcbiAgfVxuICBpc1N1Ym1pdDpib29sZWFuPWZhbHNlO1xuXG4gIHByaXZhdGUgX1ZhbGlkYXRvcnNTZXJ2aWNlID0gaW5qZWN0KFZhbGlkYXRvcnNTZXJ2aWNlKTtcbiAgLyoq6KGo5Y2V6aqM6K+B54q25oCBXG4gICAqIHtcbiAgICogIHRpdGxlOnRydWUsXG4gICAqIH1cbiAgICovXG4gIGZvcm1WYWxpZGF0aW9uOiBhbnkgPSAnJztcblxuICAvKirkv53lrZjooajljZUgKi9cbiAgc2F2ZSgpIHtcbiAgICBsZXQgaW5wdXQgPSB0aGlzLm5ld0VudGl0eS52YWx1ZVxuICAgIC8vIGlmICghdGhpcy5pc1N1Ym1pdCkgcmV0dXJuO1xuICAgIHRoaXMuZm9ybVZhbGlkYXRpb24gPSB0aGlzLl9WYWxpZGF0b3JzU2VydmljZS5nZXRGb3JtVmFsaWRhdGlvblN0YXR1cyh0aGlzLm5ld0VudGl0eSk7XG4gICAgaWYgKHRoaXMuX1ZhbGlkYXRvcnNTZXJ2aWNlLmlzQ2hlY2tGb3JtKHRoaXMuZm9ybVZhbGlkYXRpb24sJ0NtcycpKSByZXR1cm47XG5cbiAgICBpZiAoIXRoaXMubmV3RW50aXR5LnZhbGlkKSByZXR1cm5cbiAgICB0aGlzLl9GaWVsZEFkbWluU2VydmljZS5jcmVhdGUoaW5wdXQpLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgdGhpcy50b2FzdGVyLnN1Y2Nlc3ModGhpcy5fTG9jYWxpemF0aW9uU2VydmljZS5pbnN0YW50KGBBYnBVaTo6U2F2ZWRTdWNjZXNzZnVsbHlgKSk7XG4gICAgICAgIHRoaXMuX2xvY2F0aW9uLmJhY2soKTtcbiAgICAgICAgdGhpcy5fVXBkYXRlTGlzdFNlcnZpY2UudXBkYXRlTGlzdCgpO1xuICAgIH0pXG4gIH1cblxufVxuIiwiPGZvcm0gIFtmb3JtR3JvdXBdPVwibmV3RW50aXR5XCIgKGtleWRvd24uZW50ZXIpPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIiBbY2xhc3NdPVwieyd3YXMtdmFsaWRhdGVkJzpmb3JtVmFsaWRhdGlvbn1cIiAoc3VibWl0KT1cInNhdmUoKVwiPlxuICAgIDxhYnAtcGFnZSBbdGl0bGVdPVwiJ0Ntczo6Q3JlYXRlRmllbGQnIHwgYWJwTG9jYWxpemF0aW9uXCIgW3Rvb2xiYXJdPVwidHJ1ZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3JlYXRlLWZpZWxkLXBhZ2VcIj5cbiAgICAgICAgICAgIDxidXR0b24gZm9ybS10eXBlPVwic3VibWl0XCIgc3R5bGU9XCJkaXNwbGF5OiBub25lO1wiICNzdWJtaXRjbGljaz48L2J1dHRvbj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keVwiPlxuICAgICAgICAgICAgICAgICAgICA8Y21zLWNyZWF0ZS1vci1lZGl0LWZpZWxkIFtFbnRpdHldPVwibmV3RW50aXR5XCI+PC9jbXMtY3JlYXRlLW9yLWVkaXQtZmllbGQ+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9hYnAtcGFnZT5cbjwvZm9ybT4iXX0=
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Ntcy9zcmMvbGliL2NvbXBvbmVudHMvYWRtaW4vZmllbGRzL2NyZWF0ZS1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvc3JjL2xpYi9jb21wb25lbnRzL2FkbWluL2ZpZWxkcy9jcmVhdGUtZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFJdEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFjLE1BQU0sZUFBZSxDQUFDO0FBSXpFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNuRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7OztBQWFoQyxNQUFNLE9BQU8sb0JBQW9CO0lBQy9CLFlBQ1UsRUFBZSxFQUNoQixrQkFBcUMsRUFDcEMsT0FBdUIsRUFDeEIsU0FBbUIsRUFDbkIsb0JBQXlDLEVBQ3pDLGNBQTZCO1FBTDVCLE9BQUUsR0FBRixFQUFFLENBQWE7UUFDaEIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQjtRQUNwQyxZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUN4QixjQUFTLEdBQVQsU0FBUyxDQUFVO1FBQ25CLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBcUI7UUFDekMsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFFOUIsdUJBQWtCLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFvQnZELGFBQVEsR0FBWSxLQUFLLENBQUM7UUFFbEIsdUJBQWtCLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDdkQ7Ozs7V0FJRztRQUNILG1CQUFjLEdBQVEsRUFBRSxDQUFDO0lBN0J0QixDQUFDO0lBU0osUUFBUTtRQUNOLGlHQUFpRztRQUNqRyx1Q0FBdUM7UUFDdkMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLDRCQUE0QixFQUFFLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQsWUFBWTtJQUNaLGNBQWM7UUFDWixJQUFJLElBQUksQ0FBQyxRQUFRO1lBQUUsT0FBTztRQUMxQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUNyQixJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBV0QsVUFBVTtJQUNWLElBQUk7UUFDRixJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztRQUNqQyw4QkFBOEI7UUFDOUIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3RGLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLEtBQUssQ0FBQztZQUFFLE9BQVEsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFBQSxDQUFDO1FBRXBHLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUs7WUFBRSxPQUFPO1FBQ2xDLElBQUksQ0FBQyxrQkFBa0I7YUFDcEIsTUFBTSxDQUFDLEtBQUssQ0FBQzthQUNiLElBQUksQ0FDSCxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDeEIsQ0FBQyxDQUFDLENBQ0g7YUFDQSxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDZixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLDBCQUEwQixDQUFDLENBQUMsQ0FBQztZQUNwRixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUN2QyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7OEdBM0RVLG9CQUFvQjtrR0FBcEIsb0JBQW9CLDJDQVBwQjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxxQkFBcUI7Z0JBQzlCLFFBQVEsRUFBRSxhQUFhLENBQUMsWUFBWTthQUNyQztTQUNGLG9KQ3ZCSCw4bUJBV087OzJGRGNNLG9CQUFvQjtrQkFYaEMsU0FBUzsrQkFDRSxrQkFBa0IsYUFHakI7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLHFCQUFxQjs0QkFDOUIsUUFBUSxFQUFFLGFBQWEsQ0FBQyxZQUFZO3lCQUNyQztxQkFDRjtrT0FpQjJDLFdBQVc7c0JBQXRELFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVYVEVOU0lPTlNfSURFTlRJRklFUiB9IGZyb20gJ0BhYnAvbmcuY29tcG9uZW50cy9leHRlbnNpYmxlJztcbmltcG9ydCB7IExvY2FsaXphdGlvblNlcnZpY2UgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xuaW1wb3J0IHsgVG9hc3RlclNlcnZpY2UgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XG5pbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCwgVmlld0NoaWxkLCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRmllbGRBZG1pblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9wcm94eS9hZG1pbi9maWVsZHMnO1xuaW1wb3J0IHsgQ21zQXBpU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IEVDbXNDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9lbnVtcyc7XG5pbXBvcnQgeyBVcGRhdGVMaXN0U2VydmljZSB9IGZyb20gJ0BkaWduaXRlLW5nL2V4cGFuZC5jb3JlJztcbmltcG9ydCB7IENyZWF0ZU9yVXBkYXRlRmllbGRJbnB1dEJhc2UgfSBmcm9tICcuL2NyZWF0ZS1vci11cGRhdGUtZmllbGQtaW5wdXQtYmFzZSc7XG5pbXBvcnQgeyBWYWxpZGF0b3JzU2VydmljZSB9IGZyb20gJ0BkaWduaXRlLW5nL2V4cGFuZC5jb3JlJztcbmltcG9ydCB7IGZpbmFsaXplIH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Ntcy1jcmVhdGUtZmllbGQnLFxuICB0ZW1wbGF0ZVVybDogJy4vY3JlYXRlLWZpZWxkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY3JlYXRlLWZpZWxkLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IEVYVEVOU0lPTlNfSURFTlRJRklFUixcbiAgICAgIHVzZVZhbHVlOiBFQ21zQ29tcG9uZW50LkZpZWxkc0NyZWF0ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBDcmVhdGVGaWVsZENvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxuICAgIHB1YmxpYyBfRmllbGRBZG1pblNlcnZpY2U6IEZpZWxkQWRtaW5TZXJ2aWNlLFxuICAgIHByaXZhdGUgdG9hc3RlcjogVG9hc3RlclNlcnZpY2UsXG4gICAgcHVibGljIF9sb2NhdGlvbjogTG9jYXRpb24sXG4gICAgcHVibGljIF9Mb2NhbGl6YXRpb25TZXJ2aWNlOiBMb2NhbGl6YXRpb25TZXJ2aWNlLFxuICAgIHB1YmxpYyBfQ21zQXBpU2VydmljZTogQ21zQXBpU2VydmljZVxuICApIHt9XG4gIHByaXZhdGUgX1VwZGF0ZUxpc3RTZXJ2aWNlID0gaW5qZWN0KFVwZGF0ZUxpc3RTZXJ2aWNlKTtcblxuICAvKirooajljZXlrp7kvZMgKi9cbiAgbmV3RW50aXR5OiBGb3JtR3JvdXAgfCB1bmRlZmluZWQ7XG5cbiAgLyoq6I635Y+W5o+Q5Lqk5oyJ6ZKu5pu/6Lqr77yM55So5LqO55yf5a6e6Kem5Y+R6KGo5Y2V5o+Q5LqkICovXG4gIEBWaWV3Q2hpbGQoJ3N1Ym1pdGNsaWNrJywgeyBzdGF0aWM6IHRydWUgfSkgc3VibWl0Y2xpY2s6IEVsZW1lbnRSZWY7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy9DYWxsZWQgYWZ0ZXIgdGhlIGNvbnN0cnVjdG9yLCBpbml0aWFsaXppbmcgaW5wdXQgcHJvcGVydGllcywgYW5kIHRoZSBmaXJzdCBjYWxsIHRvIG5nT25DaGFuZ2VzLlxuICAgIC8vQWRkICdpbXBsZW1lbnRzIE9uSW5pdCcgdG8gdGhlIGNsYXNzLlxuICAgIHRoaXMubmV3RW50aXR5ID0gdGhpcy5mYi5ncm91cChuZXcgQ3JlYXRlT3JVcGRhdGVGaWVsZElucHV0QmFzZSgpKTtcbiAgfVxuXG4gIC8qKuinpuWPkeaPkOS6pOaMiemSriAqL1xuICBzdWJtaXRjbGlja0J0bigpIHtcbiAgICBpZiAodGhpcy5pc1N1Ym1pdCkgcmV0dXJuO1xuICAgIHRoaXMuaXNTdWJtaXQgPSB0cnVlO1xuICAgIHRoaXMuc3VibWl0Y2xpY2submF0aXZlRWxlbWVudC5jbGljaygpO1xuICB9XG4gIGlzU3VibWl0OiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfVmFsaWRhdG9yc1NlcnZpY2UgPSBpbmplY3QoVmFsaWRhdG9yc1NlcnZpY2UpO1xuICAvKirooajljZXpqozor4HnirbmgIFcbiAgICoge1xuICAgKiAgdGl0bGU6dHJ1ZSxcbiAgICogfVxuICAgKi9cbiAgZm9ybVZhbGlkYXRpb246IGFueSA9ICcnO1xuXG4gIC8qKuS/neWtmOihqOWNlSAqL1xuICBzYXZlKCkge1xuICAgIGxldCBpbnB1dCA9IHRoaXMubmV3RW50aXR5LnZhbHVlO1xuICAgIC8vIGlmICghdGhpcy5pc1N1Ym1pdCkgcmV0dXJuO1xuICAgIHRoaXMuZm9ybVZhbGlkYXRpb24gPSB0aGlzLl9WYWxpZGF0b3JzU2VydmljZS5nZXRGb3JtVmFsaWRhdGlvblN0YXR1cyh0aGlzLm5ld0VudGl0eSk7XG4gICAgaWYgKHRoaXMuX1ZhbGlkYXRvcnNTZXJ2aWNlLmlzQ2hlY2tGb3JtKHRoaXMuZm9ybVZhbGlkYXRpb24sICdDbXMnKSkgcmV0dXJuICB0aGlzLmlzU3VibWl0ID0gZmFsc2U7O1xuXG4gICAgaWYgKCF0aGlzLm5ld0VudGl0eS52YWxpZCkgcmV0dXJuO1xuICAgIHRoaXMuX0ZpZWxkQWRtaW5TZXJ2aWNlXG4gICAgICAuY3JlYXRlKGlucHV0KVxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmlzU3VibWl0ID0gZmFsc2U7XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgIHRoaXMudG9hc3Rlci5zdWNjZXNzKHRoaXMuX0xvY2FsaXphdGlvblNlcnZpY2UuaW5zdGFudChgQWJwVWk6OlNhdmVkU3VjY2Vzc2Z1bGx5YCkpO1xuICAgICAgICB0aGlzLl9sb2NhdGlvbi5iYWNrKCk7XG4gICAgICAgIHRoaXMuX1VwZGF0ZUxpc3RTZXJ2aWNlLnVwZGF0ZUxpc3QoKTtcbiAgICAgIH0pO1xuICB9XG59XG4iLCI8Zm9ybSAgW2Zvcm1Hcm91cF09XCJuZXdFbnRpdHlcIiAoa2V5ZG93bi5lbnRlcik9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKVwiIFtjbGFzc109XCJ7J3dhcy12YWxpZGF0ZWQnOmZvcm1WYWxpZGF0aW9ufVwiIChzdWJtaXQpPVwic2F2ZSgpXCI+XG4gICAgPGFicC1wYWdlIFt0aXRsZV09XCInQ21zOjpDcmVhdGVGaWVsZCcgfCBhYnBMb2NhbGl6YXRpb25cIiBbdG9vbGJhcl09XCJ0cnVlXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjcmVhdGUtZmllbGQtcGFnZVwiPlxuICAgICAgICAgICAgPGJ1dHRvbiBmb3JtLXR5cGU9XCJzdWJtaXRcIiBzdHlsZT1cImRpc3BsYXk6IG5vbmU7XCIgI3N1Ym1pdGNsaWNrPjwvYnV0dG9uPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmRcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5XCI+XG4gICAgICAgICAgICAgICAgICAgIDxjbXMtY3JlYXRlLW9yLWVkaXQtZmllbGQgW0VudGl0eV09XCJuZXdFbnRpdHlcIj48L2Ntcy1jcmVhdGUtb3ItZWRpdC1maWVsZD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2FicC1wYWdlPlxuPC9mb3JtPiJdfQ==
@@ -1,5 +1,5 @@
1
1
  import { Component, Input, ViewChild, ViewContainerRef } from '@angular/core';
2
- import { FormControl, Validators } from '@angular/forms';
2
+ import { FormControl, Validators, } from '@angular/forms';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "../../../services/field-abstracts.service";
5
5
  import * as i2 from "../../../services/cms-api.service";
@@ -48,7 +48,7 @@ export class CreateOrEditFieldComponent {
48
48
  this._Entity.setControl('name', new FormControl(this.nameInput.value || '', {
49
49
  validators: Validators.required,
50
50
  asyncValidators: [this.repetitionAsyncValidator()],
51
- updateOn: 'change'
51
+ updateOn: 'change',
52
52
  }));
53
53
  setTimeout(() => {
54
54
  this.submitclick.nativeElement.click();
@@ -82,7 +82,9 @@ export class CreateOrEditFieldComponent {
82
82
  }
83
83
  this._FieldAdminService.nameExists(ctrl.value).subscribe(res => {
84
84
  if (res) {
85
- resolve({ repetition: this._LocalizationService.instant(`Cms::FieldName{0}AlreadyExist`, ctrl.value) });
85
+ resolve({
86
+ repetition: this._LocalizationService.instant(`Cms::FieldName{0}AlreadyExist`, ctrl.value),
87
+ });
86
88
  }
87
89
  else {
88
90
  resolve(null);
@@ -92,14 +94,18 @@ export class CreateOrEditFieldComponent {
92
94
  };
93
95
  }
94
96
  formControlNameChange(event) {
97
+ // let value = event.target.value;
98
+ // // this.formControlName.reset();
99
+ // this.formControlName.patchValue('');
100
+ // this.formControlName.patchValue(value);
95
101
  // this._selected='';
96
102
  }
97
103
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: CreateOrEditFieldComponent, deps: [{ token: i1.FieldAbstractsService }, { token: i2.CmsApiService }, { token: i3.FieldAdminService }, { token: i4.LocalizationService }], target: i0.ɵɵFactoryTarget.Component }); }
98
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.5", type: CreateOrEditFieldComponent, selector: "cms-create-or-edit-field", inputs: { Entity: "Entity", selected: "selected" }, viewQueries: [{ propertyName: "FormDynamicRef", first: true, predicate: ["FormDynamicRef"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "submitclick", first: true, predicate: ["submitclick"], descendants: true, static: true }], ngImport: i0, template: "<form [formGroup]=\"_Entity\">\n <button type=\"submit\" style=\"display: none;\" #submitclick></button>\n <div class=\"mb-3\">\n <label class=\"form-label\" for=\"groupId\">{{'Cms::FieldGroup' | abpLocalization}}</label>\n <select class=\"form-select\" formControlName=\"groupId\">\n <option value=\"\">{{'Cms::OptionalGrouping' | abpLocalization}}</option>\n <ng-container *ngFor=\"let item of _FieldAbstractsService.fieldGroupList\">\n <option [value]=\"item.id\">{{item.name}}</option>\n </ng-container>\n </select>\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\" for=\"displayName\">{{'DigniteAbpForms::FieldDisplayName' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"displayName\" required (blur)=\"disPlayNameInputBlur($event)\">\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\" for=\"name\">{{'DigniteAbpForms::FieldName' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"name\" (input)=\"nameInputBlur($event)\">\n <div class=\"text-danger invalid-feedback\" *ngIf=\"nameInput.errors?.repetition\">\n {{nameInput.errors?.repetition}}\n </div>\n <div class=\"form-text\">{{'DigniteAbpForms::FieldNameHelpText' | abpLocalization}}</div>\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\" for=\"description\">{{'Cms::Description' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"description\">\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\" for=\"formControlName\">{{'Cms::FieldType' | abpLocalization}}</label>\n <select class=\"form-select\" formControlName=\"formControlName\" (change)=\"formControlNameChange($event)\">\n <ng-container *ngFor=\"let item of _FieldAbstractsService.fromControlList;let i =index\">\n <option [value]=\"item.name\">{{item.displayName}}</option>\n </ng-container>\n </select>\n </div>\n <ng-container *ngIf=\"_Entity.value.formControlName&&_Entity\"> \n <df-dynamic [type]=\"_Entity.value.formControlName\" [entity]=\"_Entity\" [selected]=\"_selected\"></df-dynamic>\n </ng-container>\n \n</form>", styles: [""], dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i6.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i6.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i6.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i6.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i7.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "directive", type: i7.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { kind: "component", type: i8.DynamicComponent, selector: "df-dynamic", inputs: ["selected", "type", "entity", "culture", "parentFiledName", "fields"] }, { kind: "pipe", type: i4.LocalizationPipe, name: "abpLocalization" }] }); }
104
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.5", type: CreateOrEditFieldComponent, selector: "cms-create-or-edit-field", inputs: { Entity: "Entity", selected: "selected" }, viewQueries: [{ propertyName: "FormDynamicRef", first: true, predicate: ["FormDynamicRef"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "submitclick", first: true, predicate: ["submitclick"], descendants: true, static: true }], ngImport: i0, template: "<form [formGroup]=\"_Entity\">\n <button type=\"submit\" style=\"display: none;\" #submitclick></button>\n <div class=\"mb-3\">\n <label class=\"form-label\" for=\"groupId\">{{'Cms::FieldGroup' | abpLocalization}}</label>\n <select class=\"form-select\" formControlName=\"groupId\">\n <option value=\"\">{{'Cms::OptionalGrouping' | abpLocalization}}</option>\n <ng-container *ngFor=\"let item of _FieldAbstractsService.fieldGroupList\">\n <option [value]=\"item.id\">{{item.name}}</option>\n </ng-container>\n </select>\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\" for=\"displayName\">{{'DigniteAbpForms::FieldDisplayName' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"displayName\" required (blur)=\"disPlayNameInputBlur($event)\">\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\" for=\"name\">{{'DigniteAbpForms::FieldName' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"name\" (input)=\"nameInputBlur($event)\">\n <div class=\"text-danger invalid-feedback\" *ngIf=\"nameInput.errors?.repetition\">\n {{nameInput.errors?.repetition}}\n </div>\n <small class=\"form-text text-muted\">{{'DigniteAbpForms::FieldNameHelpText' | abpLocalization}}</small>\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\" for=\"description\">{{'Cms::Description' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"description\">\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\" for=\"formControlName\">{{'Cms::FieldType' | abpLocalization}}</label>\n <select class=\"form-select\" formControlName=\"formControlName\" (change)=\"formControlNameChange($event)\">\n <ng-container *ngFor=\"let item of _FieldAbstractsService.fromControlList;let i =index\">\n <option [value]=\"item.name\">{{item.displayName}}</option>\n </ng-container>\n </select>\n </div>\n <ng-container *ngIf=\"_Entity.value.formControlName&&_Entity\"> \n <df-dynamic [type]=\"_Entity.value.formControlName\" [selected]=\"_selected\" [entity]=\"_Entity\" ></df-dynamic>\n </ng-container>\n</form>", styles: [""], dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i6.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i6.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i6.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i6.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i7.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "directive", type: i7.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { kind: "component", type: i8.DynamicComponent, selector: "df-dynamic", inputs: ["selected", "type", "culture", "parentFiledName", "fields", "entity"] }, { kind: "pipe", type: i4.LocalizationPipe, name: "abpLocalization" }] }); }
99
105
  }
100
106
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: CreateOrEditFieldComponent, decorators: [{
101
107
  type: Component,
102
- args: [{ selector: 'cms-create-or-edit-field', template: "<form [formGroup]=\"_Entity\">\n <button type=\"submit\" style=\"display: none;\" #submitclick></button>\n <div class=\"mb-3\">\n <label class=\"form-label\" for=\"groupId\">{{'Cms::FieldGroup' | abpLocalization}}</label>\n <select class=\"form-select\" formControlName=\"groupId\">\n <option value=\"\">{{'Cms::OptionalGrouping' | abpLocalization}}</option>\n <ng-container *ngFor=\"let item of _FieldAbstractsService.fieldGroupList\">\n <option [value]=\"item.id\">{{item.name}}</option>\n </ng-container>\n </select>\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\" for=\"displayName\">{{'DigniteAbpForms::FieldDisplayName' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"displayName\" required (blur)=\"disPlayNameInputBlur($event)\">\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\" for=\"name\">{{'DigniteAbpForms::FieldName' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"name\" (input)=\"nameInputBlur($event)\">\n <div class=\"text-danger invalid-feedback\" *ngIf=\"nameInput.errors?.repetition\">\n {{nameInput.errors?.repetition}}\n </div>\n <div class=\"form-text\">{{'DigniteAbpForms::FieldNameHelpText' | abpLocalization}}</div>\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\" for=\"description\">{{'Cms::Description' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"description\">\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\" for=\"formControlName\">{{'Cms::FieldType' | abpLocalization}}</label>\n <select class=\"form-select\" formControlName=\"formControlName\" (change)=\"formControlNameChange($event)\">\n <ng-container *ngFor=\"let item of _FieldAbstractsService.fromControlList;let i =index\">\n <option [value]=\"item.name\">{{item.displayName}}</option>\n </ng-container>\n </select>\n </div>\n <ng-container *ngIf=\"_Entity.value.formControlName&&_Entity\"> \n <df-dynamic [type]=\"_Entity.value.formControlName\" [entity]=\"_Entity\" [selected]=\"_selected\"></df-dynamic>\n </ng-container>\n \n</form>" }]
108
+ args: [{ selector: 'cms-create-or-edit-field', template: "<form [formGroup]=\"_Entity\">\n <button type=\"submit\" style=\"display: none;\" #submitclick></button>\n <div class=\"mb-3\">\n <label class=\"form-label\" for=\"groupId\">{{'Cms::FieldGroup' | abpLocalization}}</label>\n <select class=\"form-select\" formControlName=\"groupId\">\n <option value=\"\">{{'Cms::OptionalGrouping' | abpLocalization}}</option>\n <ng-container *ngFor=\"let item of _FieldAbstractsService.fieldGroupList\">\n <option [value]=\"item.id\">{{item.name}}</option>\n </ng-container>\n </select>\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\" for=\"displayName\">{{'DigniteAbpForms::FieldDisplayName' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"displayName\" required (blur)=\"disPlayNameInputBlur($event)\">\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\" for=\"name\">{{'DigniteAbpForms::FieldName' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"name\" (input)=\"nameInputBlur($event)\">\n <div class=\"text-danger invalid-feedback\" *ngIf=\"nameInput.errors?.repetition\">\n {{nameInput.errors?.repetition}}\n </div>\n <small class=\"form-text text-muted\">{{'DigniteAbpForms::FieldNameHelpText' | abpLocalization}}</small>\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\" for=\"description\">{{'Cms::Description' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"description\">\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\" for=\"formControlName\">{{'Cms::FieldType' | abpLocalization}}</label>\n <select class=\"form-select\" formControlName=\"formControlName\" (change)=\"formControlNameChange($event)\">\n <ng-container *ngFor=\"let item of _FieldAbstractsService.fromControlList;let i =index\">\n <option [value]=\"item.name\">{{item.displayName}}</option>\n </ng-container>\n </select>\n </div>\n <ng-container *ngIf=\"_Entity.value.formControlName&&_Entity\"> \n <df-dynamic [type]=\"_Entity.value.formControlName\" [selected]=\"_selected\" [entity]=\"_Entity\" ></df-dynamic>\n </ng-container>\n</form>" }]
103
109
  }], ctorParameters: () => [{ type: i1.FieldAbstractsService }, { type: i2.CmsApiService }, { type: i3.FieldAdminService }, { type: i4.LocalizationService }], propDecorators: { FormDynamicRef: [{
104
110
  type: ViewChild,
105
111
  args: ['FormDynamicRef', { read: ViewContainerRef, static: true }]
@@ -111,4 +117,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImpor
111
117
  }], selected: [{
112
118
  type: Input
113
119
  }] } });
114
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW9yLWVkaXQtZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21zL3NyYy9saWIvY29tcG9uZW50cy9hZG1pbi9maWVsZHMvY3JlYXRlLW9yLWVkaXQtZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21zL3NyYy9saWIvY29tcG9uZW50cy9hZG1pbi9maWVsZHMvY3JlYXRlLW9yLWVkaXQtZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFGLE9BQU8sRUFBbUIsV0FBVyxFQUErQixVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7OztBQVV2RyxNQUFNLE9BQU8sMEJBQTBCO0lBUXJDLFlBQ1Msc0JBQTZDLEVBQzVDLGNBQTZCLEVBQzdCLGtCQUFxQyxFQUNyQyxvQkFBeUM7UUFIMUMsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF1QjtRQUM1QyxtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUM3Qix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1CO1FBQ3JDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBcUI7UUFHakQsSUFBSSxJQUFJLENBQUMsc0JBQXNCLENBQUMsY0FBYyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUMzRCxJQUFJLENBQUMsc0JBQXNCLENBQUMsaUJBQWlCLEVBQUUsQ0FBQTtRQUNqRCxDQUFDO0lBQ0gsQ0FBQztJQUdELElBQ1csTUFBTSxDQUFDLENBQXdCO1FBQ3hDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDTixJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQztZQUNqQixJQUFJLENBQUMsVUFBVSxFQUFFLENB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QyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7b0JBQzdELElBQUksR0FBRyxFQUFFLENBQUM7d0JBQ1IsT0FBTyxDQUFDLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsK0JBQStCLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztvQkFDMUcsQ0FBQzt5QkFBTSxDQUFDO3dCQUNOLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDaEIsQ0FBQztnQkFDSCxDQUFDLENBQUMsQ0FBQTtZQUNKLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUdELHFCQUFxQixDQUFDLEtBQUs7UUFDekIscUJBQXFCO0lBQ3ZCLENBQUM7OEdBM0dVLDBCQUEwQjtrR0FBMUIsMEJBQTBCLGlOQUdBLGdCQUFnQixzSkNmdkQsZzBFQXVDTzs7MkZEM0JNLDBCQUEwQjtrQkFMdEMsU0FBUzsrQkFDRSwwQkFBMEI7d0xBT21DLGNBQWM7c0JBQXBGLFNBQVM7dUJBQUMsZ0JBQWdCLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFHekIsV0FBVztzQkFBdEQsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQWdCL0IsTUFBTTtzQkFEaEIsS0FBSztnQkFjSyxRQUFRO3NCQURsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgVmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGaWVsZEFic3RyYWN0c1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9maWVsZC1hYnN0cmFjdHMuc2VydmljZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFZhbGlkYXRpb25FcnJvcnMsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDbXNBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvY21zLWFwaS5zZXJ2aWNlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZpZWxkQWRtaW5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vcHJveHkvYWRtaW4vZmllbGRzJztcbmltcG9ydCB7IExvY2FsaXphdGlvblNlcnZpY2UgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY21zLWNyZWF0ZS1vci1lZGl0LWZpZWxkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NyZWF0ZS1vci1lZGl0LWZpZWxkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY3JlYXRlLW9yLWVkaXQtZmllbGQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBDcmVhdGVPckVkaXRGaWVsZENvbXBvbmVudCB7XG5cbiAgLyoq6KGo5Y2V5o6n5Lu25qih5p2/LeWKqOaAgeihqOWNlemFjee9rue7hOS7tiAqL1xuICBAVmlld0NoaWxkKCdGb3JtRHluYW1pY1JlZicsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiwgc3RhdGljOiB0cnVlIH0pIEZvcm1EeW5hbWljUmVmOiBWaWV3Q29udGFpbmVyUmVmO1xuXG4gIC8qKuiOt+WPluaPkOS6pOaMiemSruabv+i6q++8jOeUqOS6juecn+WunuinpuWPkeihqOWNleaPkOS6pCAqL1xuICBAVmlld0NoaWxkKCdzdWJtaXRjbGljaycsIHsgc3RhdGljOiB0cnVlIH0pIHN1Ym1pdGNsaWNrOiBFbGVtZW50UmVmO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBfRmllbGRBYnN0cmFjdHNTZXJ2aWNlOiBGaWVsZEFic3RyYWN0c1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBfQ21zQXBpU2VydmljZTogQ21zQXBpU2VydmljZSxcbiAgICBwcml2YXRlIF9GaWVsZEFkbWluU2VydmljZTogRmllbGRBZG1pblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBfTG9jYWxpemF0aW9uU2VydmljZTogTG9jYWxpemF0aW9uU2VydmljZSxcblxuICApIHtcbiAgICBpZiAodGhpcy5fRmllbGRBYnN0cmFjdHNTZXJ2aWNlLmZpZWxkR3JvdXBMaXN0Lmxlbmd0aCA9PSAwKSB7XG4gICAgICB0aGlzLl9GaWVsZEFic3RyYWN0c1NlcnZpY2UuZ2V0ZmllbGRHcm91cExpc3QoKVxuICAgIH1cbiAgfVxuICAvKirooajljZXlrp7kvZMgKi9cbiAgX0VudGl0eTogRm9ybUdyb3VwIHwgdW5kZWZpbmVkXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgRW50aXR5KHY6IEZvcm1Hcm91cCB8IHVuZGVmaW5lZCkge1xuICAgIGlmICh2KSB7XG4gICAgICB0aGlzLl9FbnRpdHkgPSB2O1xuICAgICAgdGhpcy5kYXRhTG9hZGVkKCk7XG4gICAgfVxuICB9XG4gIGdldCBmb3JtQ29udHJvbE5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX0VudGl0eS5nZXQoJ2Zvcm1Db250cm9sTmFtZScpXG4gIH1cbiAgLyoq6YCJ5oup55qE6KGo5Y2V5L+h5oGvICovXG4gIF9zZWxlY3RlZF9jb3B5OiBhbnlcbiAgX3NlbGVjdGVkOiBhbnlcbiAgQElucHV0KClcbiAgcHVibGljIHNldCBzZWxlY3RlZCh2OiBhbnkpIHtcbiAgICBpZiAodikge1xuICAgICAgdGhpcy5fc2VsZWN0ZWQgPSB2IHx8ICcnO1xuICAgICAgdGhpcy5fc2VsZWN0ZWRfY29weSA9IHZcbiAgICAgIC8vIHRoaXMuZGF0YUxvYWRlZCgpXG4gICAgfVxuICB9XG5cblxuICBhc3luYyBkYXRhTG9hZGVkKCkge1xuICAgIGlmICh0aGlzLl9GaWVsZEFic3RyYWN0c1NlcnZpY2UuZnJvbUNvbnRyb2xMaXN0Lmxlbmd0aCA9PSAwKSB7XG4gICAgICBhd2FpdCB0aGlzLl9GaWVsZEFic3RyYWN0c1NlcnZpY2UuZ2V0RnJvbUNvbnRyb2xMaXN0KClcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fRW50aXR5KSB7XG4gICAgICBpZiAoIXRoaXMuZm9ybUNvbnRyb2xOYW1lLnZhbHVlKSB7XG4gICAgICAgIHRoaXMuX0VudGl0eS5wYXRjaFZhbHVlKHtcbiAgICAgICAgICBmb3JtQ29udHJvbE5hbWU6IHRoaXMuX0ZpZWxkQWJzdHJhY3RzU2VydmljZS5mcm9tQ29udHJvbExpc3RbMF0/Lm5hbWUsXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgICB0aGlzLl9FbnRpdHkuc2V0Q29udHJvbCgnbmFtZScsIG5ldyBGb3JtQ29udHJvbCh0aGlzLm5hbWVJbnB1dC52YWx1ZSB8fCAnJywge1xuICAgICAgICB2YWxpZGF0b3JzOiBWYWxpZGF0b3JzLnJlcXVpcmVkLFxuICAgICAgICBhc3luY1ZhbGlkYXRvcnM6IFt0aGlzLnJlcGV0aXRpb25Bc3luY1ZhbGlkYXRvcigpXSxcbiAgICAgICAgdXBkYXRlT246ICdjaGFuZ2UnXG4gICAgICB9KSlcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLnN1Ym1pdGNsaWNrLm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcbiAgICAgIH0sIDApXG4gICAgfVxuICB9XG5cblxuICAvKipuYW1l6KGo5Y2V5o6n5Lu2ICovXG4gIGdldCBuYW1lSW5wdXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX0VudGl0eS5nZXQoJ25hbWUnKVxuICB9XG5cbiAgbmFtZUlucHV0Qmx1cihldmVudCkge1xuICAgIGxldCB2YWx1ZSA9IGV2ZW50LnRhcmdldC52YWx1ZVxuICAgIHRoaXMubmFtZUlucHV0LnBhdGNoVmFsdWUodmFsdWUpXG4gIH1cblxuICAvKirlrZfmrrXmoIfnrb5pbnB1dOWkseWOu+agh+eCueeUn+aIkOWtl+auteWQjeWtlyAqL1xuICBkaXNQbGF5TmFtZUlucHV0Qmx1cihldmVudCkge1xuICAgIGxldCB2YWx1ZSA9IGV2ZW50LnRhcmdldC52YWx1ZVxuICAgIGxldCBwaW55aW4gPSB0aGlzLl9DbXNBcGlTZXJ2aWNlLmNoaW5lc2VUb1Bpbnlpbih2YWx1ZSlcbiAgICBsZXQgbmFtZUlucHV0ID0gdGhpcy5uYW1lSW5wdXRcbiAgICBpZiAobmFtZUlucHV0LnZhbHVlKSByZXR1cm5cbiAgICBuYW1lSW5wdXQucGF0Y2hWYWx1ZShwaW55aW4pXG4gIH1cbiAgLyoq5a6a5LmJ5byC5q2l6aqM6K+B5pa55rOVICovXG4gIHJlcGV0aXRpb25Bc3luY1ZhbGlkYXRvcigpIHtcbiAgICByZXR1cm4gKGN0cmw6IEFic3RyYWN0Q29udHJvbCk6IFByb21pc2U8VmFsaWRhdGlvbkVycm9ycyB8IG51bGw+IHwgT2JzZXJ2YWJsZTxWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbD4gPT4ge1xuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4ge1xuICAgICAgICBpZiAoY3RybC52YWx1ZSA9PSB0aGlzLl9zZWxlY3RlZD8ubmFtZSB8fCAhY3RybC52YWx1ZSkge1xuICAgICAgICAgIHJlc29sdmUobnVsbCk7XG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fRmllbGRBZG1pblNlcnZpY2UubmFtZUV4aXN0cyhjdHJsLnZhbHVlKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICBpZiAocmVzKSB7XG4gICAgICAgICAgICByZXNvbHZlKHsgcmVwZXRpdGlvbjogdGhpcy5fTG9jYWxpemF0aW9uU2VydmljZS5pbnN0YW50KGBDbXM6OkZpZWxkTmFtZXswfUFscmVhZHlFeGlzdGAsIGN0cmwudmFsdWUpIH0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXNvbHZlKG51bGwpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH0pO1xuICAgIH07XG4gIH1cblxuXG4gIGZvcm1Db250cm9sTmFtZUNoYW5nZShldmVudCkge1xuICAgIC8vIHRoaXMuX3NlbGVjdGVkPScnO1xuICB9XG5cbn1cbiIsIjxmb3JtIFtmb3JtR3JvdXBdPVwiX0VudGl0eVwiPlxuICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIHN0eWxlPVwiZGlzcGxheTogbm9uZTtcIiAjc3VibWl0Y2xpY2s+PC9idXR0b24+XG4gICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImdyb3VwSWRcIj57eydDbXM6OkZpZWxkR3JvdXAnIHwgYWJwTG9jYWxpemF0aW9ufX08L2xhYmVsPlxuICAgICAgICA8c2VsZWN0IGNsYXNzPVwiZm9ybS1zZWxlY3RcIiBmb3JtQ29udHJvbE5hbWU9XCJncm91cElkXCI+XG4gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiXCI+e3snQ21zOjpPcHRpb25hbEdyb3VwaW5nJyB8IGFicExvY2FsaXphdGlvbn19PC9vcHRpb24+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIF9GaWVsZEFic3RyYWN0c1NlcnZpY2UuZmllbGRHcm91cExpc3RcIj5cbiAgICAgICAgICAgICAgICA8b3B0aW9uIFt2YWx1ZV09XCJpdGVtLmlkXCI+e3tpdGVtLm5hbWV9fTwvb3B0aW9uPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvc2VsZWN0PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJkaXNwbGF5TmFtZVwiPnt7J0RpZ25pdGVBYnBGb3Jtczo6RmllbGREaXNwbGF5TmFtZScgfCBhYnBMb2NhbGl6YXRpb259fTwvbGFiZWw+XG4gICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwiZGlzcGxheU5hbWVcIiByZXF1aXJlZCAoYmx1cik9XCJkaXNQbGF5TmFtZUlucHV0Qmx1cigkZXZlbnQpXCI+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cIm5hbWVcIj57eydEaWduaXRlQWJwRm9ybXM6OkZpZWxkTmFtZScgfCBhYnBMb2NhbGl6YXRpb259fTwvbGFiZWw+XG4gICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiIChpbnB1dCk9XCJuYW1lSW5wdXRCbHVyKCRldmVudClcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZGFuZ2VyIGludmFsaWQtZmVlZGJhY2tcIiAqbmdJZj1cIm5hbWVJbnB1dC5lcnJvcnM/LnJlcGV0aXRpb25cIj5cbiAgICAgICAgICAgIHt7bmFtZUlucHV0LmVycm9ycz8ucmVwZXRpdGlvbn19XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS10ZXh0XCI+e3snRGlnbml0ZUFicEZvcm1zOjpGaWVsZE5hbWVIZWxwVGV4dCcgfCBhYnBMb2NhbGl6YXRpb259fTwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJkZXNjcmlwdGlvblwiPnt7J0Ntczo6RGVzY3JpcHRpb24nIHwgYWJwTG9jYWxpemF0aW9ufX08L2xhYmVsPlxuICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cImRlc2NyaXB0aW9uXCI+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImZvcm1Db250cm9sTmFtZVwiPnt7J0Ntczo6RmllbGRUeXBlJyB8IGFicExvY2FsaXphdGlvbn19PC9sYWJlbD5cbiAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tc2VsZWN0XCIgZm9ybUNvbnRyb2xOYW1lPVwiZm9ybUNvbnRyb2xOYW1lXCIgKGNoYW5nZSk9XCJmb3JtQ29udHJvbE5hbWVDaGFuZ2UoJGV2ZW50KVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBfRmllbGRBYnN0cmFjdHNTZXJ2aWNlLmZyb21Db250cm9sTGlzdDtsZXQgaSA9aW5kZXhcIj5cbiAgICAgICAgICAgICAgICA8b3B0aW9uIFt2YWx1ZV09XCJpdGVtLm5hbWVcIj57e2l0ZW0uZGlzcGxheU5hbWV9fTwvb3B0aW9uPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvc2VsZWN0PlxuICAgIDwvZGl2PlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJfRW50aXR5LnZhbHVlLmZvcm1Db250cm9sTmFtZSYmX0VudGl0eVwiPiBcbiAgICAgICAgPGRmLWR5bmFtaWMgW3R5cGVdPVwiX0VudGl0eS52YWx1ZS5mb3JtQ29udHJvbE5hbWVcIiBbZW50aXR5XT1cIl9FbnRpdHlcIiBbc2VsZWN0ZWRdPVwiX3NlbGVjdGVkXCI+PC9kZi1keW5hbWljPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgXG48L2Zvcm0+Il19
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW9yLWVkaXQtZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21zL3NyYy9saWIvY29tcG9uZW50cy9hZG1pbi9maWVsZHMvY3JlYXRlLW9yLWVkaXQtZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21zL3NyYy9saWIvY29tcG9uZW50cy9hZG1pbi9maWVsZHMvY3JlYXRlLW9yLWVkaXQtZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFGLE9BQU8sRUFFTCxXQUFXLEVBR1gsVUFBVSxHQUNYLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7QUFVeEIsTUFBTSxPQUFPLDBCQUEwQjtJQVFyQyxZQUNTLHNCQUE2QyxFQUM1QyxjQUE2QixFQUM3QixrQkFBcUMsRUFDckMsb0JBQXlDO1FBSDFDLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBdUI7UUFDNUMsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFDN0IsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQjtRQUNyQyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXFCO1FBRWpELElBQUksSUFBSSxDQUFDLHNCQUFzQixDQUFDLGNBQWMsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDM0QsSUFBSSxDQUFDLHNCQUFzQixDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDbEQsQ0FBQztJQUNILENBQUM7SUFHRCxJQUNXLE1BQU0sQ0FBQyxDQUF3QjtRQUN4QyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ04sSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUM7WUFDakIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFD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LFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRTtvQkFDN0QsSUFBSSxHQUFHLEVBQUUsQ0FBQzt3QkFDUixPQUFPLENBQUM7NEJBQ04sVUFBVSxFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQzNDLCtCQUErQixFQUMvQixJQUFJLENBQUMsS0FBSyxDQUNYO3lCQUNGLENBQUMsQ0FBQztvQkFDTCxDQUFDO3lCQUFNLENBQUM7d0JBQ04sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUNoQixDQUFDO2dCQUNILENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQscUJBQXFCLENBQUMsS0FBSztRQUN6QixrQ0FBa0M7UUFDbEMsbUNBQW1DO1FBQ25DLHVDQUF1QztRQUN2QywwQ0FBMEM7UUFDMUMscUJBQXFCO0lBQ3ZCLENBQUM7OEdBckhVLDBCQUEwQjtrR0FBMUIsMEJBQTBCLGlOQUVBLGdCQUFnQixzSkNwQnZELDIwRUFzQ087OzJGRHBCTSwwQkFBMEI7a0JBTHRDLFNBQVM7K0JBQ0UsMEJBQTBCO3dMQU9wQyxjQUFjO3NCQURiLFNBQVM7dUJBQUMsZ0JBQWdCLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJekIsV0FBVztzQkFBdEQsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQWUvQixNQUFNO3NCQURoQixLQUFLO2dCQWNLLFFBQVE7c0JBRGxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBWaWV3Q2hpbGQsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZpZWxkQWJzdHJhY3RzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2ZpZWxkLWFic3RyYWN0cy5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgRm9ybUNvbnRyb2wsXG4gIEZvcm1Hcm91cCxcbiAgVmFsaWRhdGlvbkVycm9ycyxcbiAgVmFsaWRhdG9ycyxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ21zQXBpU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Ntcy1hcGkuc2VydmljZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGaWVsZEFkbWluU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Byb3h5L2FkbWluL2ZpZWxkcyc7XG5pbXBvcnQgeyBMb2NhbGl6YXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Ntcy1jcmVhdGUtb3ItZWRpdC1maWVsZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jcmVhdGUtb3ItZWRpdC1maWVsZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NyZWF0ZS1vci1lZGl0LWZpZWxkLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIENyZWF0ZU9yRWRpdEZpZWxkQ29tcG9uZW50IHtcbiAgLyoq6KGo5Y2V5o6n5Lu25qih5p2/LeWKqOaAgeihqOWNlemFjee9rue7hOS7tiAqL1xuICBAVmlld0NoaWxkKCdGb3JtRHluYW1pY1JlZicsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiwgc3RhdGljOiB0cnVlIH0pXG4gIEZvcm1EeW5hbWljUmVmOiBWaWV3Q29udGFpbmVyUmVmO1xuXG4gIC8qKuiOt+WPluaPkOS6pOaMiemSruabv+i6q++8jOeUqOS6juecn+WunuinpuWPkeihqOWNleaPkOS6pCAqL1xuICBAVmlld0NoaWxkKCdzdWJtaXRjbGljaycsIHsgc3RhdGljOiB0cnVlIH0pIHN1Ym1pdGNsaWNrOiBFbGVtZW50UmVmO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBfRmllbGRBYnN0cmFjdHNTZXJ2aWNlOiBGaWVsZEFic3RyYWN0c1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBfQ21zQXBpU2VydmljZTogQ21zQXBpU2VydmljZSxcbiAgICBwcml2YXRlIF9GaWVsZEFkbWluU2VydmljZTogRmllbGRBZG1pblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBfTG9jYWxpemF0aW9uU2VydmljZTogTG9jYWxpemF0aW9uU2VydmljZVxuICApIHtcbiAgICBpZiAodGhpcy5fRmllbGRBYnN0cmFjdHNTZXJ2aWNlLmZpZWxkR3JvdXBMaXN0Lmxlbmd0aCA9PSAwKSB7XG4gICAgICB0aGlzLl9GaWVsZEFic3RyYWN0c1NlcnZpY2UuZ2V0ZmllbGRHcm91cExpc3QoKTtcbiAgICB9XG4gIH1cbiAgLyoq6KGo5Y2V5a6e5L2TICovXG4gIF9FbnRpdHk6IEZvcm1Hcm91cCB8IHVuZGVmaW5lZDtcbiAgQElucHV0KClcbiAgcHVibGljIHNldCBFbnRpdHkodjogRm9ybUdyb3VwIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKHYpIHtcbiAgICAgIHRoaXMuX0VudGl0eSA9IHY7XG4gICAgICB0aGlzLmRhdGFMb2FkZWQoKTtcbiAgICB9XG4gIH1cbiAgZ2V0IGZvcm1Db250cm9sTmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fRW50aXR5LmdldCgnZm9ybUNvbnRyb2xOYW1lJyk7XG4gIH1cbiAgLyoq6YCJ5oup55qE6KGo5Y2V5L+h5oGvICovXG4gIF9zZWxlY3RlZF9jb3B5OiBhbnk7XG4gIF9zZWxlY3RlZDogYW55O1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHNlbGVjdGVkKHY6IGFueSkge1xuICAgIGlmICh2KSB7XG4gICAgICB0aGlzLl9zZWxlY3RlZCA9IHYgfHwgJyc7XG4gICAgICB0aGlzLl9zZWxlY3RlZF9jb3B5ID0gdjtcbiAgICAgIC8vIHRoaXMuZGF0YUxvYWRlZCgpXG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZGF0YUxvYWRlZCgpIHtcbiAgICBpZiAodGhpcy5fRmllbGRBYnN0cmFjdHNTZXJ2aWNlLmZyb21Db250cm9sTGlzdC5sZW5ndGggPT0gMCkge1xuICAgICAgYXdhaXQgdGhpcy5fRmllbGRBYnN0cmFjdHNTZXJ2aWNlLmdldEZyb21Db250cm9sTGlzdCgpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9FbnRpdHkpIHtcbiAgICAgIGlmICghdGhpcy5mb3JtQ29udHJvbE5hbWUudmFsdWUpIHtcbiAgICAgICAgdGhpcy5fRW50aXR5LnBhdGNoVmFsdWUoe1xuICAgICAgICAgIGZvcm1Db250cm9sTmFtZTogdGhpcy5fRmllbGRBYnN0cmFjdHNTZXJ2aWNlLmZyb21Db250cm9sTGlzdFswXT8ubmFtZSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICB0aGlzLl9FbnRpdHkuc2V0Q29udHJvbChcbiAgICAgICAgJ25hbWUnLFxuICAgICAgICBuZXcgRm9ybUNvbnRyb2wodGhpcy5uYW1lSW5wdXQudmFsdWUgfHwgJycsIHtcbiAgICAgICAgICB2YWxpZGF0b3JzOiBWYWxpZGF0b3JzLnJlcXVpcmVkLFxuICAgICAgICAgIGFzeW5jVmFsaWRhdG9yczogW3RoaXMucmVwZXRpdGlvbkFzeW5jVmFsaWRhdG9yKCldLFxuICAgICAgICAgIHVwZGF0ZU9uOiAnY2hhbmdlJyxcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5zdWJtaXRjbGljay5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XG4gICAgICB9LCAwKTtcbiAgICB9XG4gIH1cblxuICAvKipuYW1l6KGo5Y2V5o6n5Lu2ICovXG4gIGdldCBuYW1lSW5wdXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX0VudGl0eS5nZXQoJ25hbWUnKTtcbiAgfVxuXG4gIG5hbWVJbnB1dEJsdXIoZXZlbnQpIHtcbiAgICBsZXQgdmFsdWUgPSBldmVudC50YXJnZXQudmFsdWU7XG4gICAgdGhpcy5uYW1lSW5wdXQucGF0Y2hWYWx1ZSh2YWx1ZSk7XG4gIH1cblxuICAvKirlrZfmrrXmoIfnrb5pbnB1dOWkseWOu+agh+eCueeUn+aIkOWtl+auteWQjeWtlyAqL1xuICBkaXNQbGF5TmFtZUlucHV0Qmx1cihldmVudCkge1xuICAgIGxldCB2YWx1ZSA9IGV2ZW50LnRhcmdldC52YWx1ZTtcbiAgICBsZXQgcGlueWluID0gdGhpcy5fQ21zQXBpU2VydmljZS5jaGluZXNlVG9QaW55aW4odmFsdWUpO1xuICAgIGxldCBuYW1lSW5wdXQgPSB0aGlzLm5hbWVJbnB1dDtcbiAgICBpZiAobmFtZUlucHV0LnZhbHVlKSByZXR1cm47XG4gICAgbmFtZUlucHV0LnBhdGNoVmFsdWUocGlueWluKTtcbiAgfVxuICAvKirlrprkuYnlvILmraXpqozor4Hmlrnms5UgKi9cbiAgcmVwZXRpdGlvbkFzeW5jVmFsaWRhdG9yKCkge1xuICAgIHJldHVybiAoXG4gICAgICBjdHJsOiBBYnN0cmFjdENvbnRyb2xcbiAgICApOiBQcm9taXNlPFZhbGlkYXRpb25FcnJvcnMgfCBudWxsPiB8IE9ic2VydmFibGU8VmFsaWRhdGlvbkVycm9ycyB8IG51bGw+ID0+IHtcbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHtcbiAgICAgICAgaWYgKGN0cmwudmFsdWUgPT0gdGhpcy5fc2VsZWN0ZWQ/Lm5hbWUgfHwgIWN0cmwudmFsdWUpIHtcbiAgICAgICAgICByZXNvbHZlKG51bGwpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9GaWVsZEFkbWluU2VydmljZS5uYW1lRXhpc3RzKGN0cmwudmFsdWUpLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICAgIGlmIChyZXMpIHtcbiAgICAgICAgICAgIHJlc29sdmUoe1xuICAgICAgICAgICAgICByZXBldGl0aW9uOiB0aGlzLl9Mb2NhbGl6YXRpb25TZXJ2aWNlLmluc3RhbnQoXG4gICAgICAgICAgICAgICAgYENtczo6RmllbGROYW1lezB9QWxyZWFkeUV4aXN0YCxcbiAgICAgICAgICAgICAgICBjdHJsLnZhbHVlXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzb2x2ZShudWxsKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfTtcbiAgfVxuXG4gIGZvcm1Db250cm9sTmFtZUNoYW5nZShldmVudCkge1xuICAgIC8vIGxldCB2YWx1ZSA9IGV2ZW50LnRhcmdldC52YWx1ZTtcbiAgICAvLyAvLyB0aGlzLmZvcm1Db250cm9sTmFtZS5yZXNldCgpO1xuICAgIC8vIHRoaXMuZm9ybUNvbnRyb2xOYW1lLnBhdGNoVmFsdWUoJycpO1xuICAgIC8vIHRoaXMuZm9ybUNvbnRyb2xOYW1lLnBhdGNoVmFsdWUodmFsdWUpO1xuICAgIC8vIHRoaXMuX3NlbGVjdGVkPScnO1xuICB9XG59XG4iLCI8Zm9ybSBbZm9ybUdyb3VwXT1cIl9FbnRpdHlcIj5cbiAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBzdHlsZT1cImRpc3BsYXk6IG5vbmU7XCIgI3N1Ym1pdGNsaWNrPjwvYnV0dG9uPlxuICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJncm91cElkXCI+e3snQ21zOjpGaWVsZEdyb3VwJyB8IGFicExvY2FsaXphdGlvbn19PC9sYWJlbD5cbiAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tc2VsZWN0XCIgZm9ybUNvbnRyb2xOYW1lPVwiZ3JvdXBJZFwiPlxuICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIlwiPnt7J0Ntczo6T3B0aW9uYWxHcm91cGluZycgfCBhYnBMb2NhbGl6YXRpb259fTwvb3B0aW9uPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBfRmllbGRBYnN0cmFjdHNTZXJ2aWNlLmZpZWxkR3JvdXBMaXN0XCI+XG4gICAgICAgICAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwiaXRlbS5pZFwiPnt7aXRlbS5uYW1lfX08L29wdGlvbj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L3NlbGVjdD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiZGlzcGxheU5hbWVcIj57eydEaWduaXRlQWJwRm9ybXM6OkZpZWxkRGlzcGxheU5hbWUnIHwgYWJwTG9jYWxpemF0aW9ufX08L2xhYmVsPlxuICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cImRpc3BsYXlOYW1lXCIgcmVxdWlyZWQgKGJsdXIpPVwiZGlzUGxheU5hbWVJbnB1dEJsdXIoJGV2ZW50KVwiPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJuYW1lXCI+e3snRGlnbml0ZUFicEZvcm1zOjpGaWVsZE5hbWUnIHwgYWJwTG9jYWxpemF0aW9ufX08L2xhYmVsPlxuICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cIm5hbWVcIiAoaW5wdXQpPVwibmFtZUlucHV0Qmx1cigkZXZlbnQpXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWRhbmdlciBpbnZhbGlkLWZlZWRiYWNrXCIgKm5nSWY9XCJuYW1lSW5wdXQuZXJyb3JzPy5yZXBldGl0aW9uXCI+XG4gICAgICAgICAgICB7e25hbWVJbnB1dC5lcnJvcnM/LnJlcGV0aXRpb259fVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHNtYWxsIGNsYXNzPVwiZm9ybS10ZXh0IHRleHQtbXV0ZWRcIj57eydEaWduaXRlQWJwRm9ybXM6OkZpZWxkTmFtZUhlbHBUZXh0JyB8IGFicExvY2FsaXphdGlvbn19PC9zbWFsbD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiZGVzY3JpcHRpb25cIj57eydDbXM6OkRlc2NyaXB0aW9uJyB8IGFicExvY2FsaXphdGlvbn19PC9sYWJlbD5cbiAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJkZXNjcmlwdGlvblwiPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJmb3JtQ29udHJvbE5hbWVcIj57eydDbXM6OkZpZWxkVHlwZScgfCBhYnBMb2NhbGl6YXRpb259fTwvbGFiZWw+XG4gICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLXNlbGVjdFwiIGZvcm1Db250cm9sTmFtZT1cImZvcm1Db250cm9sTmFtZVwiIChjaGFuZ2UpPVwiZm9ybUNvbnRyb2xOYW1lQ2hhbmdlKCRldmVudClcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgX0ZpZWxkQWJzdHJhY3RzU2VydmljZS5mcm9tQ29udHJvbExpc3Q7bGV0IGkgPWluZGV4XCI+XG4gICAgICAgICAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwiaXRlbS5uYW1lXCI+e3tpdGVtLmRpc3BsYXlOYW1lfX08L29wdGlvbj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L3NlbGVjdD5cbiAgICA8L2Rpdj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiX0VudGl0eS52YWx1ZS5mb3JtQ29udHJvbE5hbWUmJl9FbnRpdHlcIj4gXG4gICAgICAgIDxkZi1keW5hbWljIFt0eXBlXT1cIl9FbnRpdHkudmFsdWUuZm9ybUNvbnRyb2xOYW1lXCIgW3NlbGVjdGVkXT1cIl9zZWxlY3RlZFwiIFtlbnRpdHldPVwiX0VudGl0eVwiID48L2RmLWR5bmFtaWM+XG4gICAgPC9uZy1jb250YWluZXI+XG48L2Zvcm0+Il19
@@ -4,6 +4,7 @@ import { ECmsComponent } from '../../../enums';
4
4
  import { UpdateListService } from '@dignite-ng/expand.core';
5
5
  import { CreateOrUpdateFieldInputBase } from './create-or-update-field-input-base';
6
6
  import { ValidatorsService } from '@dignite-ng/expand.core';
7
+ import { finalize } from 'rxjs';
7
8
  import * as i0 from "@angular/core";
8
9
  import * as i1 from "@angular/forms";
9
10
  import * as i2 from "../../../services";
@@ -61,20 +62,23 @@ export class EditFieldComponent {
61
62
  }
62
63
  /**触发提交按钮 */
63
64
  submitclickBtn() {
65
+ if (this.isSubmit)
66
+ return;
64
67
  this.isSubmit = true;
65
68
  this.submitclick.nativeElement.click();
66
69
  }
67
70
  /**保存表单 */
68
71
  save() {
69
72
  let input = this.newEntity.value;
70
- if (!this.isSubmit)
71
- return;
72
73
  this.formValidation = this._ValidatorsService.getFormValidationStatus(this.newEntity);
73
74
  if (this._ValidatorsService.isCheckForm(this.formValidation, 'Cms'))
74
- return;
75
+ return this.isSubmit = false;
76
+ ;
75
77
  if (!this.newEntity.valid)
76
78
  return;
77
- this._FieldAdminService.update(this.fieldId, input).subscribe(res => {
79
+ this._FieldAdminService.update(this.fieldId, input).pipe(finalize(() => {
80
+ this.isSubmit = false;
81
+ })).subscribe(res => {
78
82
  this.toaster.success(this._LocalizationService.instant(`AbpUi::SavedSuccessfully`));
79
83
  this._location.back();
80
84
  this._UpdateListService.updateList();
@@ -100,4 +104,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImpor
100
104
  type: ViewChild,
101
105
  args: ['submitclick', { static: true }]
102
106
  }] } });
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvc3JjL2xpYi9jb21wb25lbnRzL2FkbWluL2ZpZWxkcy9lZGl0LWZpZWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Ntcy9zcmMvbGliL2NvbXBvbmVudHMvYWRtaW4vZmllbGRzL2VkaXQtZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFJdEUsT0FBTyxFQUFFLFNBQVMsRUFBVSxTQUFTLEVBQWMsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBS2pGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNuRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7Ozs7Ozs7O0FBYTVELE1BQU0sT0FBTyxrQkFBa0I7SUFDN0IsWUFDVSxFQUFlLEVBQ2hCLHNCQUE2QyxFQUM3QyxrQkFBcUMsRUFDcEMsS0FBcUIsRUFDckIsT0FBdUIsRUFDeEIsU0FBbUIsRUFDbkIsb0JBQXlDLEVBQ3pDLGNBQTZCO1FBUDVCLE9BQUUsR0FBRixFQUFFLENBQWE7UUFDaEIsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF1QjtRQUM3Qyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1CO1FBQ3BDLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQ3hCLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFDbkIseUJBQW9CLEdBQXBCLG9CQUFvQixD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QWtCLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDdkMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzhHQTVFVSxrQkFBa0I7a0dBQWxCLGtCQUFrQix5Q0FQbEI7WUFDVDtnQkFDRSxPQUFPLEVBQUUscUJBQXFCO2dCQUM5QixRQUFRLEVBQUUsYUFBYSxDQUFDLFVBQVU7YUFDbkM7U0FDRixvSkN2Qkgsc3hCQWFPOzsyRkRZTSxrQkFBa0I7a0JBWDlCLFNBQVM7K0JBQ0UsZ0JBQWdCLGFBR2Y7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLHFCQUFxQjs0QkFDOUIsUUFBUSxFQUFFLGFBQWEsQ0FBQyxVQUFVO3lCQUNuQztxQkFDRjttU0FrQzJDLFdBQVc7c0JBQXRELFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVYVEVOU0lPTlNfSURFTlRJRklFUiB9IGZyb20gJ0BhYnAvbmcuY29tcG9uZW50cy9leHRlbnNpYmxlJztcbmltcG9ydCB7IExvY2FsaXphdGlvblNlcnZpY2UgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xuaW1wb3J0IHsgVG9hc3RlclNlcnZpY2UgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XG5pbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgVmlld0NoaWxkLCBFbGVtZW50UmVmLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBGaWVsZEFkbWluU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Byb3h5L2FkbWluL2ZpZWxkcyc7XG5pbXBvcnQgeyBGaWVsZEFic3RyYWN0c1NlcnZpY2UsIENtc0FwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBFQ21zQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vZW51bXMnO1xuaW1wb3J0IHsgVXBkYXRlTGlzdFNlcnZpY2UgfSBmcm9tICdAZGlnbml0ZS1uZy9leHBhbmQuY29yZSc7XG5pbXBvcnQgeyBDcmVhdGVPclVwZGF0ZUZpZWxkSW5wdXRCYXNlIH0gZnJvbSAnLi9jcmVhdGUtb3ItdXBkYXRlLWZpZWxkLWlucHV0LWJhc2UnO1xuaW1wb3J0IHsgVmFsaWRhdG9yc1NlcnZpY2UgfSBmcm9tICdAZGlnbml0ZS1uZy9leHBhbmQuY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Ntcy1lZGl0LWZpZWxkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2VkaXQtZmllbGQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9lZGl0LWZpZWxkLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IEVYVEVOU0lPTlNfSURFTlRJRklFUixcbiAgICAgIHVzZVZhbHVlOiBFQ21zQ29tcG9uZW50LkZpZWxkc0VkaXQsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRWRpdEZpZWxkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHVibGljIF9GaWVsZEFic3RyYWN0c1NlcnZpY2U6IEZpZWxkQWJzdHJhY3RzU2VydmljZSxcbiAgICBwdWJsaWMgX0ZpZWxkQWRtaW5TZXJ2aWNlOiBGaWVsZEFkbWluU2VydmljZSxcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHRvYXN0ZXI6IFRvYXN0ZXJTZXJ2aWNlLFxuICAgIHB1YmxpYyBfbG9jYXRpb246IExvY2F0aW9uLFxuICAgIHB1YmxpYyBfTG9jYWxpemF0aW9uU2VydmljZTogTG9jYWxpemF0aW9uU2VydmljZSxcbiAgICBwdWJsaWMgX0Ntc0FwaVNlcnZpY2U6IENtc0FwaVNlcnZpY2VcbiAgKSB7fVxuICBwcml2YXRlIF9VcGRhdGVMaXN0U2VydmljZSA9IGluamVjdChVcGRhdGVMaXN0U2VydmljZSk7XG4gIHByaXZhdGUgX1ZhbGlkYXRvcnNTZXJ2aWNlID0gaW5qZWN0KFZhbGlkYXRvcnNTZXJ2aWNlKTtcbiAgLyoq6KGo5Y2V5a6e5L2TICovXG4gIG5ld0VudGl0eTogRm9ybUdyb3VwIHwgdW5kZWZpbmVkO1xuXG4gIC8qKuWtl+autWlkICovXG4gIGZpZWxkSWQ6IHN0cmluZyA9ICcnO1xuXG4gIC8qKuWtl+auteivpuaDhSAqL1xuICBmaWVsZERldGFpbHM6IGFueTtcblxuXG4gIGlzU3VibWl0OiBib29sZWFuID0gZmFsc2U7XG4gIC8qKuihqOWNlemqjOivgeeKtuaAgVxuICAgKiB7XG4gICAqICB0aXRsZTp0cnVlLFxuICAgKiB9XG4gICAqL1xuICBmb3JtVmFsaWRhdGlvbjogYW55ID0gJyc7XG5cbiAgLyoq6I635Y+W5o+Q5Lqk5oyJ6ZKu5pu/6Lqr77yM55So5LqO55yf5a6e6Kem5Y+R6KGo5Y2V5o+Q5LqkICovXG4gIEBWaWV3Q2hpbGQoJ3N1Ym1pdGNsaWNrJywgeyBzdGF0aWM6IHRydWUgfSkgc3VibWl0Y2xpY2s6IEVsZW1lbnRSZWY7XG5cbiAgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgX2ZpZWxkSWQgPSB0aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtcy5pZDtcbiAgICBpZiAoX2ZpZWxkSWQpIHtcbiAgICAgIHRoaXMuZmllbGRJZCA9IF9maWVsZElkO1xuICAgICAgdGhpcy5uZXdFbnRpdHkgPSB0aGlzLmZiLmdyb3VwKG5ldyBDcmVhdGVPclVwZGF0ZUZpZWxkSW5wdXRCYXNlKCkpO1xuICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoW3RoaXMuX0ZpZWxkQWJzdHJhY3RzU2VydmljZS5nZXRGcm9tQ29udHJvbExpc3QoKSwgdGhpcy5nZXRGaWVsZEVkaXQoKV0pO1xuICAgICAgdGhpcy5uZXdFbnRpdHkucGF0Y2hWYWx1ZSh7XG4gICAgICAgIC4uLnRoaXMuZmllbGREZXRhaWxzLFxuICAgICAgICBmb3JtQ29uZmlndXJhdGlvbjogdGhpcy5maWVsZERldGFpbHMuZm9ybUNvbmZpZ3VyYXRpb24sXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKirojrflj5blrZfmrrXor6bmg4UgKi9cbiAgZ2V0RmllbGRFZGl0KCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0aGlzLl9GaWVsZEFkbWluU2VydmljZS5nZXQodGhpcy5maWVsZElkKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgcmVzLmdyb3VwSWQgPSByZXMuZ3JvdXBJZCA/IHJlcy5ncm91cElkIDogJyc7XG4gICAgICAgIHRoaXMuZmllbGREZXRhaWxzID0gcmVzO1xuICAgICAgICByZXNvbHZlKHJlcyk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKuinpuWPkeaPkOS6pOaMiemSriAqL1xuICBzdWJtaXRjbGlja0J0bigpIHtcbiAgICB0aGlzLmlzU3VibWl0ID0gdHJ1ZTtcbiAgICB0aGlzLnN1Ym1pdGNsaWNrLm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcbiAgfVxuXG4gIC8qKuS/neWtmOihqOWNlSAqL1xuICBzYXZlKCkge1xuICAgIGxldCBpbnB1dCA9IHRoaXMubmV3RW50aXR5LnZhbHVlO1xuICAgIGlmICghdGhpcy5pc1N1Ym1pdCkgcmV0dXJuO1xuICAgIHRoaXMuZm9ybVZhbGlkYXRpb24gPSB0aGlzLl9WYWxpZGF0b3JzU2VydmljZS5nZXRGb3JtVmFsaWRhdGlvblN0YXR1cyh0aGlzLm5ld0VudGl0eSk7XG4gICAgaWYgKHRoaXMuX1ZhbGlkYXRvcnNTZXJ2aWNlLmlzQ2hlY2tGb3JtKHRoaXMuZm9ybVZhbGlkYXRpb24sJ0NtcycpKSByZXR1cm47XG4gICAgaWYgKCF0aGlzLm5ld0VudGl0eS52YWxpZCkgcmV0dXJuO1xuICAgIHRoaXMuX0ZpZWxkQWRtaW5TZXJ2aWNlLnVwZGF0ZSh0aGlzLmZpZWxkSWQsIGlucHV0KS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgIHRoaXMudG9hc3Rlci5zdWNjZXNzKHRoaXMuX0xvY2FsaXphdGlvblNlcnZpY2UuaW5zdGFudChgQWJwVWk6OlNhdmVkU3VjY2Vzc2Z1bGx5YCkpO1xuICAgICAgdGhpcy5fbG9jYXRpb24uYmFjaygpO1xuICAgICAgdGhpcy5fVXBkYXRlTGlzdFNlcnZpY2UudXBkYXRlTGlzdCgpO1xuICAgIH0pO1xuICB9XG59XG4iLCI8Zm9ybSBjbGFzcz1cInJvdyBnLTMgbmVlZHMtdmFsaWRhdGlvblwiIFtmb3JtR3JvdXBdPVwibmV3RW50aXR5XCIgKGtleWRvd24uZW50ZXIpPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIiBbY2xhc3NdPVwieyd3YXMtdmFsaWRhdGVkJzpmb3JtVmFsaWRhdGlvbn1cIiAoc3VibWl0KT1cInNhdmUoKVwiPlxuICAgIDxhYnAtcGFnZSBbdGl0bGVdPVwiJ0Ntczo6RWRpdEZpZWxkJyB8IGFicExvY2FsaXphdGlvblwiIFt0b29sYmFyXT1cInRydWVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNyZWF0ZS1maWVsZC1wYWdlXCI+XG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBzdHlsZT1cImRpc3BsYXk6IG5vbmU7XCIgI3N1Ym1pdGNsaWNrPjwvYnV0dG9uPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmRcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5XCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJuZXdFbnRpdHkmJmZpZWxkRGV0YWlsc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGNtcy1jcmVhdGUtb3ItZWRpdC1maWVsZCAgW3NlbGVjdGVkXT1cImZpZWxkRGV0YWlsc1wiICBbRW50aXR5XT1cIm5ld0VudGl0eVwiPjwvY21zLWNyZWF0ZS1vci1lZGl0LWZpZWxkPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2FicC1wYWdlPlxuPC9mb3JtPiJdfQ==
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvc3JjL2xpYi9jb21wb25lbnRzL2FkbWluL2ZpZWxkcy9lZGl0LWZpZWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Ntcy9zcmMvbGliL2NvbXBvbmVudHMvYWRtaW4vZmllbGRzL2VkaXQtZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFJdEUsT0FBTyxFQUFFLFNBQVMsRUFBVSxTQUFTLEVBQWMsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBS2pGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNuRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7Ozs7QUFhaEMsTUFBTSxPQUFPLGtCQUFrQjtJQUM3QixZQUNVLEVBQWUsRUFDaEIsc0JBQTZDLEVBQzdDLGtCQUFxQyxFQUNwQyxLQUFxQixFQUNyQixPQUF1QixFQUN4QixTQUFtQixFQUNuQixvQkFBeUMsRUFDekMsY0FBNkI7UUFQNUIsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNoQiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXVCO1FBQzdDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7UUFDcEMsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFDeEIsY0FBUyxH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QUMsR0FBRyxDQUFDLEVBQUU7WUFDbEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQywwQkFBMEIsQ0FBQyxDQUFDLENBQUM7WUFDcEYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsa0JBQWtCLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDdkMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzhHQTlFVSxrQkFBa0I7a0dBQWxCLGtCQUFrQix5Q0FQbEI7WUFDVDtnQkFDRSxPQUFPLEVBQUUscUJBQXFCO2dCQUM5QixRQUFRLEVBQUUsYUFBYSxDQUFDLFVBQVU7YUFDbkM7U0FDRixvSkN4Qkgsc3hCQWFPOzsyRkRhTSxrQkFBa0I7a0JBWDlCLFNBQVM7K0JBQ0UsZ0JBQWdCLGFBR2Y7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLHFCQUFxQjs0QkFDOUIsUUFBUSxFQUFFLGFBQWEsQ0FBQyxVQUFVO3lCQUNuQztxQkFDRjttU0FrQzJDLFdBQVc7c0JBQXRELFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVYVEVOU0lPTlNfSURFTlRJRklFUiB9IGZyb20gJ0BhYnAvbmcuY29tcG9uZW50cy9leHRlbnNpYmxlJztcbmltcG9ydCB7IExvY2FsaXphdGlvblNlcnZpY2UgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xuaW1wb3J0IHsgVG9hc3RlclNlcnZpY2UgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XG5pbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgVmlld0NoaWxkLCBFbGVtZW50UmVmLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBGaWVsZEFkbWluU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Byb3h5L2FkbWluL2ZpZWxkcyc7XG5pbXBvcnQgeyBGaWVsZEFic3RyYWN0c1NlcnZpY2UsIENtc0FwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBFQ21zQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vZW51bXMnO1xuaW1wb3J0IHsgVXBkYXRlTGlzdFNlcnZpY2UgfSBmcm9tICdAZGlnbml0ZS1uZy9leHBhbmQuY29yZSc7XG5pbXBvcnQgeyBDcmVhdGVPclVwZGF0ZUZpZWxkSW5wdXRCYXNlIH0gZnJvbSAnLi9jcmVhdGUtb3ItdXBkYXRlLWZpZWxkLWlucHV0LWJhc2UnO1xuaW1wb3J0IHsgVmFsaWRhdG9yc1NlcnZpY2UgfSBmcm9tICdAZGlnbml0ZS1uZy9leHBhbmQuY29yZSc7XG5pbXBvcnQgeyBmaW5hbGl6ZSB9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjbXMtZWRpdC1maWVsZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9lZGl0LWZpZWxkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZWRpdC1maWVsZC5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBFWFRFTlNJT05TX0lERU5USUZJRVIsXG4gICAgICB1c2VWYWx1ZTogRUNtc0NvbXBvbmVudC5GaWVsZHNFZGl0LFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEVkaXRGaWVsZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxuICAgIHB1YmxpYyBfRmllbGRBYnN0cmFjdHNTZXJ2aWNlOiBGaWVsZEFic3RyYWN0c1NlcnZpY2UsXG4gICAgcHVibGljIF9GaWVsZEFkbWluU2VydmljZTogRmllbGRBZG1pblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSB0b2FzdGVyOiBUb2FzdGVyU2VydmljZSxcbiAgICBwdWJsaWMgX2xvY2F0aW9uOiBMb2NhdGlvbixcbiAgICBwdWJsaWMgX0xvY2FsaXphdGlvblNlcnZpY2U6IExvY2FsaXphdGlvblNlcnZpY2UsXG4gICAgcHVibGljIF9DbXNBcGlTZXJ2aWNlOiBDbXNBcGlTZXJ2aWNlXG4gICkge31cbiAgcHJpdmF0ZSBfVXBkYXRlTGlzdFNlcnZpY2UgPSBpbmplY3QoVXBkYXRlTGlzdFNlcnZpY2UpO1xuICBwcml2YXRlIF9WYWxpZGF0b3JzU2VydmljZSA9IGluamVjdChWYWxpZGF0b3JzU2VydmljZSk7XG4gIC8qKuihqOWNleWunuS9kyAqL1xuICBuZXdFbnRpdHk6IEZvcm1Hcm91cCB8IHVuZGVmaW5lZDtcblxuICAvKirlrZfmrrVpZCAqL1xuICBmaWVsZElkOiBzdHJpbmcgPSAnJztcblxuICAvKirlrZfmrrXor6bmg4UgKi9cbiAgZmllbGREZXRhaWxzOiBhbnk7XG5cblxuICBpc1N1Ym1pdDogYm9vbGVhbiA9IGZhbHNlO1xuICAvKirooajljZXpqozor4HnirbmgIFcbiAgICoge1xuICAgKiAgdGl0bGU6dHJ1ZSxcbiAgICogfVxuICAgKi9cbiAgZm9ybVZhbGlkYXRpb246IGFueSA9ICcnO1xuXG4gIC8qKuiOt+WPluaPkOS6pOaMiemSruabv+i6q++8jOeUqOS6juecn+WunuinpuWPkeihqOWNleaPkOS6pCAqL1xuICBAVmlld0NoaWxkKCdzdWJtaXRjbGljaycsIHsgc3RhdGljOiB0cnVlIH0pIHN1Ym1pdGNsaWNrOiBFbGVtZW50UmVmO1xuXG4gIGFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IF9maWVsZElkID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXMuaWQ7XG4gICAgaWYgKF9maWVsZElkKSB7XG4gICAgICB0aGlzLmZpZWxkSWQgPSBfZmllbGRJZDtcbiAgICAgIHRoaXMubmV3RW50aXR5ID0gdGhpcy5mYi5ncm91cChuZXcgQ3JlYXRlT3JVcGRhdGVGaWVsZElucHV0QmFzZSgpKTtcbiAgICAgIGF3YWl0IFByb21pc2UuYWxsKFt0aGlzLl9GaWVsZEFic3RyYWN0c1NlcnZpY2UuZ2V0RnJvbUNvbnRyb2xMaXN0KCksIHRoaXMuZ2V0RmllbGRFZGl0KCldKTtcbiAgICAgIHRoaXMubmV3RW50aXR5LnBhdGNoVmFsdWUoe1xuICAgICAgICAuLi50aGlzLmZpZWxkRGV0YWlscyxcbiAgICAgICAgZm9ybUNvbmZpZ3VyYXRpb246IHRoaXMuZmllbGREZXRhaWxzLmZvcm1Db25maWd1cmF0aW9uLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoq6I635Y+W5a2X5q616K+m5oOFICovXG4gIGdldEZpZWxkRWRpdCgpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdGhpcy5fRmllbGRBZG1pblNlcnZpY2UuZ2V0KHRoaXMuZmllbGRJZCkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgIHJlcy5ncm91cElkID0gcmVzLmdyb3VwSWQgPyByZXMuZ3JvdXBJZCA6ICcnO1xuICAgICAgICB0aGlzLmZpZWxkRGV0YWlscyA9IHJlcztcbiAgICAgICAgcmVzb2x2ZShyZXMpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICAvKirop6blj5Hmj5DkuqTmjInpkq4gKi9cbiAgc3VibWl0Y2xpY2tCdG4oKSB7XG4gICAgaWYgKHRoaXMuaXNTdWJtaXQpIHJldHVybjtcbiAgICB0aGlzLmlzU3VibWl0ID0gdHJ1ZTtcbiAgICB0aGlzLnN1Ym1pdGNsaWNrLm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcbiAgfVxuXG4gIC8qKuS/neWtmOihqOWNlSAqL1xuICBzYXZlKCkge1xuICAgIGxldCBpbnB1dCA9IHRoaXMubmV3RW50aXR5LnZhbHVlO1xuICAgIHRoaXMuZm9ybVZhbGlkYXRpb24gPSB0aGlzLl9WYWxpZGF0b3JzU2VydmljZS5nZXRGb3JtVmFsaWRhdGlvblN0YXR1cyh0aGlzLm5ld0VudGl0eSk7XG4gICAgaWYgKHRoaXMuX1ZhbGlkYXRvcnNTZXJ2aWNlLmlzQ2hlY2tGb3JtKHRoaXMuZm9ybVZhbGlkYXRpb24sJ0NtcycpKSByZXR1cm4gIHRoaXMuaXNTdWJtaXQgPSBmYWxzZTs7XG4gICAgaWYgKCF0aGlzLm5ld0VudGl0eS52YWxpZCkgcmV0dXJuO1xuICAgIHRoaXMuX0ZpZWxkQWRtaW5TZXJ2aWNlLnVwZGF0ZSh0aGlzLmZpZWxkSWQsIGlucHV0KS5waXBlKGZpbmFsaXplKCgpID0+IHtcbiAgICAgIHRoaXMuaXNTdWJtaXQgPSBmYWxzZTtcbiAgICB9KSkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICB0aGlzLnRvYXN0ZXIuc3VjY2Vzcyh0aGlzLl9Mb2NhbGl6YXRpb25TZXJ2aWNlLmluc3RhbnQoYEFicFVpOjpTYXZlZFN1Y2Nlc3NmdWxseWApKTtcbiAgICAgIHRoaXMuX2xvY2F0aW9uLmJhY2soKTtcbiAgICAgIHRoaXMuX1VwZGF0ZUxpc3RTZXJ2aWNlLnVwZGF0ZUxpc3QoKTtcbiAgICB9KTtcbiAgfVxufVxuIiwiPGZvcm0gY2xhc3M9XCJyb3cgZy0zIG5lZWRzLXZhbGlkYXRpb25cIiBbZm9ybUdyb3VwXT1cIm5ld0VudGl0eVwiIChrZXlkb3duLmVudGVyKT1cIiRldmVudC5wcmV2ZW50RGVmYXVsdCgpXCIgW2NsYXNzXT1cInsnd2FzLXZhbGlkYXRlZCc6Zm9ybVZhbGlkYXRpb259XCIgKHN1Ym1pdCk9XCJzYXZlKClcIj5cbiAgICA8YWJwLXBhZ2UgW3RpdGxlXT1cIidDbXM6OkVkaXRGaWVsZCcgfCBhYnBMb2NhbGl6YXRpb25cIiBbdG9vbGJhcl09XCJ0cnVlXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjcmVhdGUtZmllbGQtcGFnZVwiPlxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgc3R5bGU9XCJkaXNwbGF5OiBub25lO1wiICNzdWJtaXRjbGljaz48L2J1dHRvbj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keVwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibmV3RW50aXR5JiZmaWVsZERldGFpbHNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxjbXMtY3JlYXRlLW9yLWVkaXQtZmllbGQgIFtzZWxlY3RlZF09XCJmaWVsZERldGFpbHNcIiAgW0VudGl0eV09XCJuZXdFbnRpdHlcIj48L2Ntcy1jcmVhdGUtb3ItZWRpdC1maWVsZD5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9hYnAtcGFnZT5cbjwvZm9ybT4iXX0=