@dignite-ng/expand.cms 2.0.0-rc.7 → 2.0.0-rc.8

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.
@@ -118,7 +118,7 @@ export class SectionsComponent {
118
118
  provide: EXTENSIONS_IDENTIFIER,
119
119
  useValue: ECmsComponent.Sections,
120
120
  },
121
- ], ngImport: i0, template: "<abp-page [title]=\"'Cms::Sections' | abpLocalization\" [toolbar]=\"true\">\n <div class=\"sections-page\">\n <div class=\"card \" >\n <div class=\"card-body px-2 py-sm-2 border-bottom\">\n <div class=\"row align-items-end\">\n <div class=\"mb-3 col-3\">\n <label class=\"form-label\">{{'Cms::IsActive' | abpLocalization}}\uFF1A</label>\n <select class=\"form-select col-auto\" [(ngModel)]=\"filters.isActive\" (change)=\"siteIdChange()\">\n <option [value]=\"\"></option>\n <option [value]=\"true\">{{'AbpUi::Yes'|abpLocalization}}</option>\n <option [value]=\"false\">{{'AbpUi::No'|abpLocalization}}</option>\n </select>\n </div>\n <div class=\"mb-3 col-3\">\n <label class=\"form-label\">{{'AbpUi::Search' | abpLocalization}}\uFF1A</label>\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"filters.filter\"\n [placeholder]=\"'AbpUi::Search' | abpLocalization\" />\n </div>\n <div class=\"mb-3 col-4\">\n <button class=\"btn btn-primary px-3\" type=\"button\" id=\"button-addon2\" (click)=\"list.get()\">\n <i class=\"fa fa-search\"></i>\n </button>\n </div>\n </div> \n </div>\n </div>\n <div class=\"card mb-0\">\n <div class=\"card-body p-0\">\n <div class=\"table-responsive table-fixed-header\">\n <ngx-datatable class=\"material \" [rows]=\"data.items\" [list]=\"list\"\n [columnMode]=\"ColumnMode.force\" [headerHeight]=\"50\" [footerHeight]=\"50\" rowHeight=\"auto\"\n [virtualization]=\"false\" [externalPaging]=\"true\" [count]=\"data.totalCount\" [scrollbarH]=\"true\">\n <ngx-datatable-column [name]=\"'Cms::DisplayName' | abpLocalization\" prop=\"displayName\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{ value }}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::Name' | abpLocalization\" prop=\"name\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{ value }}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::SectionType' | abpLocalization\" prop=\"type\" [width]=\"80\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{('Cms::Enum:SectionType:'+_SectionType[value]) | abpLocalization}}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::IsDefault' | abpLocalization\" prop=\"isDefault\" [width]=\"60\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n <i class=\"fas fa-check text-success\" *ngIf=\"value\"></i>\n <i class=\"fas fa-times text-danger\" *ngIf=\"!value\"></i>\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::IsActive' | abpLocalization\" prop=\"isActive\" [width]=\"60\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n <i class=\"fas fa-check text-success\" *ngIf=\"value\"></i>\n <i class=\"fas fa-times text-danger\" *ngIf=\"!value\"></i>\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::EntryType' | abpLocalization\" prop=\"SiteId\" [width]=\"100\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n <div ngbDropdown container=\"body\">\n <button type=\"button\" class=\"btn btn-link\" ngbDropdownToggle id=\"dropdownBasic1\">\n {{'Cms::EntryType' | abpLocalization}}\n </button>\n <div ngbDropdownMenu aria-labelledby=\"dropdownBasic1\">\n <ng-container *ngFor=\"let item of row.entryTypes;let i =index\">\n <li ngbDropdownItem\n class=\"d-flex align-items-center justify-content-between\" [routerLink]=\"'/cms/admin/sections/'+row.id+'/entry-types/'+item.id+'/edit'\"\n >{{item.displayName}}\n <button class=\"btn btn-light btn-sm p-0\"\n (click.stop)=\"deleteEntryType(item)\"><i class=\"fas fa-trash p-sm-1\"\n style=\"font-size: 12px;\" role=\"button\"></i></button>\n </li>\n </ng-container>\n <li ngbDropdownItem [routerLink]=\"'/cms/admin/sections/'+row.id+'/entry-types/create'\"><i\n class=\"fas fa-plus-circle me-2\"></i>{{'Cms::New' |\n abpLocalization}}</li>\n </div>\n </div>\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::CreationTime' | abpLocalization\" prop=\"creationTime\" [minWidth]=\"190\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{ value | date : 'yyyy/MM/dd hh:mm:ss' }}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [sortable]=\"false\" [name]=\"'AbpUi::Actions' | abpLocalization\" [frozenLeft]=\"true\" [width]=\"110\" [maxWidth]=\"110\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n <div ngbDropdown container=\"body\">\n <button type=\"button\" class=\"btn btn-primary btn-sm\" ngbDropdownToggle>\n <i class=\"me-1 fa fa-cog\"></i> {{'AbpUi::Actions' | abpLocalization}}\n </button>\n <div ngbDropdownMenu>\n <button ngbDropdownItem (click)=\"editSectionBtn(row)\">{{'AbpUi::Edit' |\n abpLocalization}}</button>\n <button ngbDropdownItem (click)=\"deletefield(row)\">{{'AbpUi::Delete' |\n abpLocalization}}</button>\n </div>\n </div>\n </ng-template>\n </ngx-datatable-column>\n </ngx-datatable>\n </div>\n </div>\n </div>\n </div>\n</abp-page>\n<cms-create-or-edit-sections-modal (visibleChange)=\"visibleChange($event)\" [formEntity]=\"formEntity\" [visible]=\"isVisibleOpen\"></cms-create-or-edit-sections-modal>\n<!-- <abp-modal [(visible)]=\"visibleOpen\" [busy]=\"modalBusy\" (visibleChange)=\"VisibleChange($event)\">\n <ng-template #abpHeader>\n <h3>{{selected?('AbpUi::Edit' | abpLocalization):('Cms::New' | abpLocalization)}}</h3>\n </ng-template>\n <ng-template #abpBody>\n <ng-template #loaderRef>\n <div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\" aria-hidden=\"true\"></i></div>\n </ng-template>\n <ng-container *ngIf=\"createOrEditForm; else loaderRef\">\n <form class=\"sites-modal-form\" [formGroup]=\"createOrEditForm\" (keydown.enter)=\"$event.preventDefault()\" [class]=\"{'was-validated':formValidation}\" (submit)=\"createOrEditSave()\">\n <button type=\"submit\" #createOrEditModalSubmitBtn style=\"display: none\"></button>\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'Cms::EntryType' | abpLocalization}}</label>\n <div>\n <ng-container *ngFor=\"let item of _sectionTypeOptions;let i =index\">\n <div class=\"form-check form-check-inline\">\n <input class=\"form-check-input\" type=\"radio\" [value]=\"item.value\"\n (change)=\"radiochange()\" formControlName=\"type\" id=\"flexRadioDefault{{i}}\">\n <label class=\"form-check-label\" for=\"flexRadioDefault{{i}}\">\n {{ 'Cms::Enum:SectionType:'+item.key | abpLocalization }}\n </label>\n </div>\n </ng-container>\n </div>\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'Cms::DisplayName' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"displayName\"\n (blur)=\"disPlayNameInputBlur($event)\" placeholder=\"\" />\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'Cms::Name' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"name\" placeholder=\"\" />\n <div class=\"text-danger invalid-feedback\" *ngIf=\"nameInput.errors?.repetition\">\n {{nameInput.errors?.repetition}}\n </div>\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'Cms::Route' | abpLocalization}} </label>\n <input type=\"text\" class=\"form-control\" formControlName=\"route\" placeholder=\"\" />\n <div class=\"text-danger invalid-feedback\" *ngIf=\"routeInput.errors?.repetition\">\n {{routeInput.errors?.repetition}}\n </div>\n <small class=\"form-text text-muted d-block\">\n {{'Cms::RouteTips' | abpLocalization}}<br>\n &nbsp;&nbsp;blog<br>\n &nbsp;&nbsp;{{'blog/{slug}'}}<br>\n &nbsp;&nbsp;{{'blog/{publishTime:yyyy}/{publishTime:MM}/{slug}'}}\n </small>\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'Cms::Template' | abpLocalization}} </label>\n <input type=\"text\" class=\"form-control\" formControlName=\"template\" placeholder=\"\" />\n <small class=\"form-text text-muted d-block\">\n {{\"Cms::TemplateTips\" | abpLocalization}}\n </small>\n </div>\n <div class=\"mb-3\">\n <div class=\"form-check form-check-inline\">\n <input class=\"form-check-input\" type=\"checkbox\" value=\"true\" formControlName=\"isDefault\"\n id=\"isDefault\" />\n <label class=\"form-check-label\" for=\"isDefault\"> {{'Cms::Default' | abpLocalization}} </label>\n </div>\n </div>\n <div class=\"mb-3\">\n <div class=\"form-check form-check-inline\">\n <input class=\"form-check-input\" type=\"checkbox\" value=\"true\" formControlName=\"isActive\"\n id=\"isActive\" />\n <label class=\"form-check-label\" for=\"isActive\"> {{'Cms::IsActive' | abpLocalization}}</label>\n </div>\n </div>\n </form>\n </ng-container>\n </ng-template>\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>{{'AbpUi::Close' | abpLocalization}}</button>\n <abp-button iconClass=\"fa fa-check\" (click)=\"createOrEditModalSubmitBtn.nativeElement.click()\">{{'AbpUi::Save' |\n abpLocalization}}</abp-button>\n </ng-template>\n</abp-modal> -->", styles: ["::ng-deep .sections-page .dignite_page{background:transparent}::ng-deep .sections-page .list-group-flush>.list-group-item:first-child{border-top-width:var(--bs-list-group-border-width)}::ng-deep .sections-page .card-header input{flex:2 1 auto}::ng-deep .sections-page .card-header .form-select{padding:.475rem 3.75rem .475rem 1.25rem}::ng-deep .sites-modal-form .form-control{padding:.4rem 1.25rem}\n"], dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.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: i4.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i7.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i1.StopPropagationDirective, selector: "[click.stop]", outputs: ["click.stop"] }, { kind: "component", type: i8.DatatableComponent, selector: "ngx-datatable", inputs: ["targetMarkerTemplate", "rows", "groupRowsBy", "groupedRows", "columns", "selected", "scrollbarV", "scrollbarH", "rowHeight", "columnMode", "headerHeight", "footerHeight", "externalPaging", "externalSorting", "limit", "count", "offset", "loadingIndicator", "selectionType", "reorderable", "swapColumns", "sortType", "sorts", "cssClasses", "messages", "rowClass", "selectCheck", "displayCheck", "groupExpansionDefault", "trackByProp", "selectAllRowsOnPage", "virtualization", "treeFromRelation", "treeToRelation", "summaryRow", "summaryHeight", "summaryPosition", "rowIdentity"], outputs: ["scroll", "activate", "select", "sort", "page", "reorder", "resize", "tableContextmenu", "treeAction"] }, { kind: "directive", type: i8.DataTableColumnDirective, selector: "ngx-datatable-column", inputs: ["name", "prop", "frozenLeft", "frozenRight", "flexGrow", "resizeable", "comparator", "pipe", "sortable", "draggable", "canAutoResize", "minWidth", "width", "maxWidth", "checkboxable", "headerCheckboxable", "headerClass", "cellClass", "isTreeColumn", "treeLevelIndent", "summaryFunc", "summaryTemplate", "cellTemplate", "headerTemplate", "treeToggleTemplate"] }, { kind: "directive", type: i8.DataTableColumnCellDirective, selector: "[ngx-datatable-cell-template]" }, { kind: "directive", type: i3.NgxDatatableListDirective, selector: "ngx-datatable[list]", inputs: ["list"], exportAs: ["ngxDatatableList"] }, { kind: "directive", type: i9.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "popperOptions", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i9.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: i9.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "directive", type: i9.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["tabindex", "disabled"] }, { kind: "directive", type: i9.NgbDropdownButtonItem, selector: "button[ngbDropdownItem]" }, { kind: "component", type: i10.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "component", type: i11.CreateOrEditSectionsModalComponent, selector: "cms-create-or-edit-sections-modal", inputs: ["visible", "formEntity"], outputs: ["visibleChange"] }, { kind: "pipe", type: i6.DatePipe, name: "date" }, { kind: "pipe", type: i1.LocalizationPipe, name: "abpLocalization" }] }); }
121
+ ], ngImport: i0, template: "<abp-page [title]=\"'Cms::Sections' | abpLocalization\" [toolbar]=\"true\">\n <div class=\"sections-page\">\n <div class=\"card \" >\n <div class=\"card-body px-2 py-sm-2 border-bottom\">\n <div class=\"row align-items-end\">\n <div class=\"mb-3 col-3\">\n <label class=\"form-label\">{{'Cms::IsActive' | abpLocalization}}\uFF1A</label>\n <select class=\"form-select col-auto\" [(ngModel)]=\"filters.isActive\" (change)=\"siteIdChange()\">\n <option [value]=\"\"></option>\n <option [value]=\"true\">{{'AbpUi::Yes'|abpLocalization}}</option>\n <option [value]=\"false\">{{'AbpUi::No'|abpLocalization}}</option>\n </select>\n </div>\n <div class=\"mb-3 col-3\">\n <label class=\"form-label\">{{'AbpUi::Search' | abpLocalization}}\uFF1A</label>\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"filters.filter\"\n [placeholder]=\"'AbpUi::Search' | abpLocalization\" />\n </div>\n <div class=\"mb-3 col-4\">\n <button class=\"btn btn-primary px-3\" type=\"button\" id=\"button-addon2\" (click)=\"list.get()\">\n <i class=\"fa fa-search\"></i>\n </button>\n </div>\n </div> \n </div>\n </div>\n <div class=\"card mb-0\">\n <div class=\"card-body p-0\">\n <div class=\"table-responsive table-fixed-header\">\n <ngx-datatable class=\"material \" [rows]=\"data.items\" [list]=\"list\"\n [columnMode]=\"ColumnMode.force\" [headerHeight]=\"50\" [footerHeight]=\"50\" rowHeight=\"auto\"\n [virtualization]=\"false\" [externalPaging]=\"true\" [count]=\"data.totalCount\" [scrollbarH]=\"true\">\n <ngx-datatable-column [name]=\"'Cms::DisplayName' | abpLocalization\" prop=\"displayName\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{ value }}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::Name' | abpLocalization\" prop=\"name\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{ value }}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::SectionType' | abpLocalization\" prop=\"type\" [width]=\"80\" [sortable]=\"false\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{('Cms::Enum:SectionType:'+_SectionType[value]) | abpLocalization}}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::IsDefault' | abpLocalization\" prop=\"isDefault\" [width]=\"60\" [sortable]=\"false\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n <i class=\"fas fa-check text-success\" *ngIf=\"value\"></i>\n <i class=\"fas fa-times text-danger\" *ngIf=\"!value\"></i>\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::IsActive' | abpLocalization\" prop=\"isActive\" [width]=\"60\" [sortable]=\"false\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n <i class=\"fas fa-check text-success\" *ngIf=\"value\"></i>\n <i class=\"fas fa-times text-danger\" *ngIf=\"!value\"></i>\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::EntryType' | abpLocalization\" prop=\"SiteId\" [width]=\"100\" [sortable]=\"false\"> \n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n <div ngbDropdown container=\"body\">\n <button type=\"button\" class=\"btn btn-link\" ngbDropdownToggle id=\"dropdownBasic1\">\n {{'Cms::EntryType' | abpLocalization}}\n </button>\n <div ngbDropdownMenu aria-labelledby=\"dropdownBasic1\">\n <ng-container *ngFor=\"let item of row.entryTypes;let i =index\">\n <li ngbDropdownItem\n class=\"d-flex align-items-center justify-content-between\" [routerLink]=\"'/cms/admin/sections/'+row.id+'/entry-types/'+item.id+'/edit'\"\n >{{item.displayName}}\n <button class=\"btn btn-light btn-sm p-0\"\n (click.stop)=\"deleteEntryType(item)\"><i class=\"fas fa-trash p-sm-1\"\n style=\"font-size: 12px;\" role=\"button\"></i></button>\n </li>\n </ng-container>\n <li ngbDropdownItem [routerLink]=\"'/cms/admin/sections/'+row.id+'/entry-types/create'\"><i\n class=\"fas fa-plus-circle me-2\"></i>{{'Cms::New' |\n abpLocalization}}</li>\n </div>\n </div>\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::CreationTime' | abpLocalization\" prop=\"creationTime\" [minWidth]=\"190\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{ value | date : 'yyyy/MM/dd hh:mm:ss' }}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [sortable]=\"false\" [name]=\"'AbpUi::Actions' | abpLocalization\" [frozenLeft]=\"true\" [width]=\"110\" [maxWidth]=\"110\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n <div ngbDropdown container=\"body\">\n <button type=\"button\" class=\"btn btn-primary btn-sm\" ngbDropdownToggle>\n <i class=\"me-1 fa fa-cog\"></i> {{'AbpUi::Actions' | abpLocalization}}\n </button>\n <div ngbDropdownMenu>\n <button ngbDropdownItem (click)=\"editSectionBtn(row)\">{{'AbpUi::Edit' |\n abpLocalization}}</button>\n <button ngbDropdownItem (click)=\"deletefield(row)\">{{'AbpUi::Delete' |\n abpLocalization}}</button>\n </div>\n </div>\n </ng-template>\n </ngx-datatable-column>\n </ngx-datatable>\n </div>\n </div>\n </div>\n </div>\n</abp-page>\n<cms-create-or-edit-sections-modal (visibleChange)=\"visibleChange($event)\" [formEntity]=\"formEntity\" [visible]=\"isVisibleOpen\"></cms-create-or-edit-sections-modal>\n<!-- <abp-modal [(visible)]=\"visibleOpen\" [busy]=\"modalBusy\" (visibleChange)=\"VisibleChange($event)\">\n <ng-template #abpHeader>\n <h3>{{selected?('AbpUi::Edit' | abpLocalization):('Cms::New' | abpLocalization)}}</h3>\n </ng-template>\n <ng-template #abpBody>\n <ng-template #loaderRef>\n <div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\" aria-hidden=\"true\"></i></div>\n </ng-template>\n <ng-container *ngIf=\"createOrEditForm; else loaderRef\">\n <form class=\"sites-modal-form\" [formGroup]=\"createOrEditForm\" (keydown.enter)=\"$event.preventDefault()\" [class]=\"{'was-validated':formValidation}\" (submit)=\"createOrEditSave()\">\n <button type=\"submit\" #createOrEditModalSubmitBtn style=\"display: none\"></button>\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'Cms::EntryType' | abpLocalization}}</label>\n <div>\n <ng-container *ngFor=\"let item of _sectionTypeOptions;let i =index\">\n <div class=\"form-check form-check-inline\">\n <input class=\"form-check-input\" type=\"radio\" [value]=\"item.value\"\n (change)=\"radiochange()\" formControlName=\"type\" id=\"flexRadioDefault{{i}}\">\n <label class=\"form-check-label\" for=\"flexRadioDefault{{i}}\">\n {{ 'Cms::Enum:SectionType:'+item.key | abpLocalization }}\n </label>\n </div>\n </ng-container>\n </div>\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'Cms::DisplayName' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"displayName\"\n (blur)=\"disPlayNameInputBlur($event)\" placeholder=\"\" />\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'Cms::Name' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"name\" placeholder=\"\" />\n <div class=\"text-danger invalid-feedback\" *ngIf=\"nameInput.errors?.repetition\">\n {{nameInput.errors?.repetition}}\n </div>\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'Cms::Route' | abpLocalization}} </label>\n <input type=\"text\" class=\"form-control\" formControlName=\"route\" placeholder=\"\" />\n <div class=\"text-danger invalid-feedback\" *ngIf=\"routeInput.errors?.repetition\">\n {{routeInput.errors?.repetition}}\n </div>\n <small class=\"form-text text-muted d-block\">\n {{'Cms::RouteTips' | abpLocalization}}<br>\n &nbsp;&nbsp;blog<br>\n &nbsp;&nbsp;{{'blog/{slug}'}}<br>\n &nbsp;&nbsp;{{'blog/{publishTime:yyyy}/{publishTime:MM}/{slug}'}}\n </small>\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'Cms::Template' | abpLocalization}} </label>\n <input type=\"text\" class=\"form-control\" formControlName=\"template\" placeholder=\"\" />\n <small class=\"form-text text-muted d-block\">\n {{\"Cms::TemplateTips\" | abpLocalization}}\n </small>\n </div>\n <div class=\"mb-3\">\n <div class=\"form-check form-check-inline\">\n <input class=\"form-check-input\" type=\"checkbox\" value=\"true\" formControlName=\"isDefault\"\n id=\"isDefault\" />\n <label class=\"form-check-label\" for=\"isDefault\"> {{'Cms::Default' | abpLocalization}} </label>\n </div>\n </div>\n <div class=\"mb-3\">\n <div class=\"form-check form-check-inline\">\n <input class=\"form-check-input\" type=\"checkbox\" value=\"true\" formControlName=\"isActive\"\n id=\"isActive\" />\n <label class=\"form-check-label\" for=\"isActive\"> {{'Cms::IsActive' | abpLocalization}}</label>\n </div>\n </div>\n </form>\n </ng-container>\n </ng-template>\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>{{'AbpUi::Close' | abpLocalization}}</button>\n <abp-button iconClass=\"fa fa-check\" (click)=\"createOrEditModalSubmitBtn.nativeElement.click()\">{{'AbpUi::Save' |\n abpLocalization}}</abp-button>\n </ng-template>\n</abp-modal> -->", styles: ["::ng-deep .sections-page .dignite_page{background:transparent}::ng-deep .sections-page .list-group-flush>.list-group-item:first-child{border-top-width:var(--bs-list-group-border-width)}::ng-deep .sections-page .card-header input{flex:2 1 auto}::ng-deep .sections-page .card-header .form-select{padding:.475rem 3.75rem .475rem 1.25rem}::ng-deep .sites-modal-form .form-control{padding:.4rem 1.25rem}\n"], dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.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: i4.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i7.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i1.StopPropagationDirective, selector: "[click.stop]", outputs: ["click.stop"] }, { kind: "component", type: i8.DatatableComponent, selector: "ngx-datatable", inputs: ["targetMarkerTemplate", "rows", "groupRowsBy", "groupedRows", "columns", "selected", "scrollbarV", "scrollbarH", "rowHeight", "columnMode", "headerHeight", "footerHeight", "externalPaging", "externalSorting", "limit", "count", "offset", "loadingIndicator", "selectionType", "reorderable", "swapColumns", "sortType", "sorts", "cssClasses", "messages", "rowClass", "selectCheck", "displayCheck", "groupExpansionDefault", "trackByProp", "selectAllRowsOnPage", "virtualization", "treeFromRelation", "treeToRelation", "summaryRow", "summaryHeight", "summaryPosition", "rowIdentity"], outputs: ["scroll", "activate", "select", "sort", "page", "reorder", "resize", "tableContextmenu", "treeAction"] }, { kind: "directive", type: i8.DataTableColumnDirective, selector: "ngx-datatable-column", inputs: ["name", "prop", "frozenLeft", "frozenRight", "flexGrow", "resizeable", "comparator", "pipe", "sortable", "draggable", "canAutoResize", "minWidth", "width", "maxWidth", "checkboxable", "headerCheckboxable", "headerClass", "cellClass", "isTreeColumn", "treeLevelIndent", "summaryFunc", "summaryTemplate", "cellTemplate", "headerTemplate", "treeToggleTemplate"] }, { kind: "directive", type: i8.DataTableColumnCellDirective, selector: "[ngx-datatable-cell-template]" }, { kind: "directive", type: i3.NgxDatatableListDirective, selector: "ngx-datatable[list]", inputs: ["list"], exportAs: ["ngxDatatableList"] }, { kind: "directive", type: i9.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "popperOptions", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i9.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: i9.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "directive", type: i9.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["tabindex", "disabled"] }, { kind: "directive", type: i9.NgbDropdownButtonItem, selector: "button[ngbDropdownItem]" }, { kind: "component", type: i10.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "component", type: i11.CreateOrEditSectionsModalComponent, selector: "cms-create-or-edit-sections-modal", inputs: ["visible", "formEntity"], outputs: ["visibleChange"] }, { kind: "pipe", type: i6.DatePipe, name: "date" }, { kind: "pipe", type: i1.LocalizationPipe, name: "abpLocalization" }] }); }
122
122
  }
123
123
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: SectionsComponent, decorators: [{
124
124
  type: Component,
@@ -133,6 +133,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImpor
133
133
  provide: EXTENSIONS_IDENTIFIER,
134
134
  useValue: ECmsComponent.Sections,
135
135
  },
136
- ], template: "<abp-page [title]=\"'Cms::Sections' | abpLocalization\" [toolbar]=\"true\">\n <div class=\"sections-page\">\n <div class=\"card \" >\n <div class=\"card-body px-2 py-sm-2 border-bottom\">\n <div class=\"row align-items-end\">\n <div class=\"mb-3 col-3\">\n <label class=\"form-label\">{{'Cms::IsActive' | abpLocalization}}\uFF1A</label>\n <select class=\"form-select col-auto\" [(ngModel)]=\"filters.isActive\" (change)=\"siteIdChange()\">\n <option [value]=\"\"></option>\n <option [value]=\"true\">{{'AbpUi::Yes'|abpLocalization}}</option>\n <option [value]=\"false\">{{'AbpUi::No'|abpLocalization}}</option>\n </select>\n </div>\n <div class=\"mb-3 col-3\">\n <label class=\"form-label\">{{'AbpUi::Search' | abpLocalization}}\uFF1A</label>\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"filters.filter\"\n [placeholder]=\"'AbpUi::Search' | abpLocalization\" />\n </div>\n <div class=\"mb-3 col-4\">\n <button class=\"btn btn-primary px-3\" type=\"button\" id=\"button-addon2\" (click)=\"list.get()\">\n <i class=\"fa fa-search\"></i>\n </button>\n </div>\n </div> \n </div>\n </div>\n <div class=\"card mb-0\">\n <div class=\"card-body p-0\">\n <div class=\"table-responsive table-fixed-header\">\n <ngx-datatable class=\"material \" [rows]=\"data.items\" [list]=\"list\"\n [columnMode]=\"ColumnMode.force\" [headerHeight]=\"50\" [footerHeight]=\"50\" rowHeight=\"auto\"\n [virtualization]=\"false\" [externalPaging]=\"true\" [count]=\"data.totalCount\" [scrollbarH]=\"true\">\n <ngx-datatable-column [name]=\"'Cms::DisplayName' | abpLocalization\" prop=\"displayName\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{ value }}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::Name' | abpLocalization\" prop=\"name\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{ value }}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::SectionType' | abpLocalization\" prop=\"type\" [width]=\"80\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{('Cms::Enum:SectionType:'+_SectionType[value]) | abpLocalization}}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::IsDefault' | abpLocalization\" prop=\"isDefault\" [width]=\"60\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n <i class=\"fas fa-check text-success\" *ngIf=\"value\"></i>\n <i class=\"fas fa-times text-danger\" *ngIf=\"!value\"></i>\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::IsActive' | abpLocalization\" prop=\"isActive\" [width]=\"60\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n <i class=\"fas fa-check text-success\" *ngIf=\"value\"></i>\n <i class=\"fas fa-times text-danger\" *ngIf=\"!value\"></i>\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::EntryType' | abpLocalization\" prop=\"SiteId\" [width]=\"100\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n <div ngbDropdown container=\"body\">\n <button type=\"button\" class=\"btn btn-link\" ngbDropdownToggle id=\"dropdownBasic1\">\n {{'Cms::EntryType' | abpLocalization}}\n </button>\n <div ngbDropdownMenu aria-labelledby=\"dropdownBasic1\">\n <ng-container *ngFor=\"let item of row.entryTypes;let i =index\">\n <li ngbDropdownItem\n class=\"d-flex align-items-center justify-content-between\" [routerLink]=\"'/cms/admin/sections/'+row.id+'/entry-types/'+item.id+'/edit'\"\n >{{item.displayName}}\n <button class=\"btn btn-light btn-sm p-0\"\n (click.stop)=\"deleteEntryType(item)\"><i class=\"fas fa-trash p-sm-1\"\n style=\"font-size: 12px;\" role=\"button\"></i></button>\n </li>\n </ng-container>\n <li ngbDropdownItem [routerLink]=\"'/cms/admin/sections/'+row.id+'/entry-types/create'\"><i\n class=\"fas fa-plus-circle me-2\"></i>{{'Cms::New' |\n abpLocalization}}</li>\n </div>\n </div>\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::CreationTime' | abpLocalization\" prop=\"creationTime\" [minWidth]=\"190\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{ value | date : 'yyyy/MM/dd hh:mm:ss' }}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [sortable]=\"false\" [name]=\"'AbpUi::Actions' | abpLocalization\" [frozenLeft]=\"true\" [width]=\"110\" [maxWidth]=\"110\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n <div ngbDropdown container=\"body\">\n <button type=\"button\" class=\"btn btn-primary btn-sm\" ngbDropdownToggle>\n <i class=\"me-1 fa fa-cog\"></i> {{'AbpUi::Actions' | abpLocalization}}\n </button>\n <div ngbDropdownMenu>\n <button ngbDropdownItem (click)=\"editSectionBtn(row)\">{{'AbpUi::Edit' |\n abpLocalization}}</button>\n <button ngbDropdownItem (click)=\"deletefield(row)\">{{'AbpUi::Delete' |\n abpLocalization}}</button>\n </div>\n </div>\n </ng-template>\n </ngx-datatable-column>\n </ngx-datatable>\n </div>\n </div>\n </div>\n </div>\n</abp-page>\n<cms-create-or-edit-sections-modal (visibleChange)=\"visibleChange($event)\" [formEntity]=\"formEntity\" [visible]=\"isVisibleOpen\"></cms-create-or-edit-sections-modal>\n<!-- <abp-modal [(visible)]=\"visibleOpen\" [busy]=\"modalBusy\" (visibleChange)=\"VisibleChange($event)\">\n <ng-template #abpHeader>\n <h3>{{selected?('AbpUi::Edit' | abpLocalization):('Cms::New' | abpLocalization)}}</h3>\n </ng-template>\n <ng-template #abpBody>\n <ng-template #loaderRef>\n <div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\" aria-hidden=\"true\"></i></div>\n </ng-template>\n <ng-container *ngIf=\"createOrEditForm; else loaderRef\">\n <form class=\"sites-modal-form\" [formGroup]=\"createOrEditForm\" (keydown.enter)=\"$event.preventDefault()\" [class]=\"{'was-validated':formValidation}\" (submit)=\"createOrEditSave()\">\n <button type=\"submit\" #createOrEditModalSubmitBtn style=\"display: none\"></button>\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'Cms::EntryType' | abpLocalization}}</label>\n <div>\n <ng-container *ngFor=\"let item of _sectionTypeOptions;let i =index\">\n <div class=\"form-check form-check-inline\">\n <input class=\"form-check-input\" type=\"radio\" [value]=\"item.value\"\n (change)=\"radiochange()\" formControlName=\"type\" id=\"flexRadioDefault{{i}}\">\n <label class=\"form-check-label\" for=\"flexRadioDefault{{i}}\">\n {{ 'Cms::Enum:SectionType:'+item.key | abpLocalization }}\n </label>\n </div>\n </ng-container>\n </div>\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'Cms::DisplayName' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"displayName\"\n (blur)=\"disPlayNameInputBlur($event)\" placeholder=\"\" />\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'Cms::Name' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"name\" placeholder=\"\" />\n <div class=\"text-danger invalid-feedback\" *ngIf=\"nameInput.errors?.repetition\">\n {{nameInput.errors?.repetition}}\n </div>\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'Cms::Route' | abpLocalization}} </label>\n <input type=\"text\" class=\"form-control\" formControlName=\"route\" placeholder=\"\" />\n <div class=\"text-danger invalid-feedback\" *ngIf=\"routeInput.errors?.repetition\">\n {{routeInput.errors?.repetition}}\n </div>\n <small class=\"form-text text-muted d-block\">\n {{'Cms::RouteTips' | abpLocalization}}<br>\n &nbsp;&nbsp;blog<br>\n &nbsp;&nbsp;{{'blog/{slug}'}}<br>\n &nbsp;&nbsp;{{'blog/{publishTime:yyyy}/{publishTime:MM}/{slug}'}}\n </small>\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'Cms::Template' | abpLocalization}} </label>\n <input type=\"text\" class=\"form-control\" formControlName=\"template\" placeholder=\"\" />\n <small class=\"form-text text-muted d-block\">\n {{\"Cms::TemplateTips\" | abpLocalization}}\n </small>\n </div>\n <div class=\"mb-3\">\n <div class=\"form-check form-check-inline\">\n <input class=\"form-check-input\" type=\"checkbox\" value=\"true\" formControlName=\"isDefault\"\n id=\"isDefault\" />\n <label class=\"form-check-label\" for=\"isDefault\"> {{'Cms::Default' | abpLocalization}} </label>\n </div>\n </div>\n <div class=\"mb-3\">\n <div class=\"form-check form-check-inline\">\n <input class=\"form-check-input\" type=\"checkbox\" value=\"true\" formControlName=\"isActive\"\n id=\"isActive\" />\n <label class=\"form-check-label\" for=\"isActive\"> {{'Cms::IsActive' | abpLocalization}}</label>\n </div>\n </div>\n </form>\n </ng-container>\n </ng-template>\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>{{'AbpUi::Close' | abpLocalization}}</button>\n <abp-button iconClass=\"fa fa-check\" (click)=\"createOrEditModalSubmitBtn.nativeElement.click()\">{{'AbpUi::Save' |\n abpLocalization}}</abp-button>\n </ng-template>\n</abp-modal> -->", styles: ["::ng-deep .sections-page .dignite_page{background:transparent}::ng-deep .sections-page .list-group-flush>.list-group-item:first-child{border-top-width:var(--bs-list-group-border-width)}::ng-deep .sections-page .card-header input{flex:2 1 auto}::ng-deep .sections-page .card-header .form-select{padding:.475rem 3.75rem .475rem 1.25rem}::ng-deep .sites-modal-form .form-control{padding:.4rem 1.25rem}\n"] }]
136
+ ], template: "<abp-page [title]=\"'Cms::Sections' | abpLocalization\" [toolbar]=\"true\">\n <div class=\"sections-page\">\n <div class=\"card \" >\n <div class=\"card-body px-2 py-sm-2 border-bottom\">\n <div class=\"row align-items-end\">\n <div class=\"mb-3 col-3\">\n <label class=\"form-label\">{{'Cms::IsActive' | abpLocalization}}\uFF1A</label>\n <select class=\"form-select col-auto\" [(ngModel)]=\"filters.isActive\" (change)=\"siteIdChange()\">\n <option [value]=\"\"></option>\n <option [value]=\"true\">{{'AbpUi::Yes'|abpLocalization}}</option>\n <option [value]=\"false\">{{'AbpUi::No'|abpLocalization}}</option>\n </select>\n </div>\n <div class=\"mb-3 col-3\">\n <label class=\"form-label\">{{'AbpUi::Search' | abpLocalization}}\uFF1A</label>\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"filters.filter\"\n [placeholder]=\"'AbpUi::Search' | abpLocalization\" />\n </div>\n <div class=\"mb-3 col-4\">\n <button class=\"btn btn-primary px-3\" type=\"button\" id=\"button-addon2\" (click)=\"list.get()\">\n <i class=\"fa fa-search\"></i>\n </button>\n </div>\n </div> \n </div>\n </div>\n <div class=\"card mb-0\">\n <div class=\"card-body p-0\">\n <div class=\"table-responsive table-fixed-header\">\n <ngx-datatable class=\"material \" [rows]=\"data.items\" [list]=\"list\"\n [columnMode]=\"ColumnMode.force\" [headerHeight]=\"50\" [footerHeight]=\"50\" rowHeight=\"auto\"\n [virtualization]=\"false\" [externalPaging]=\"true\" [count]=\"data.totalCount\" [scrollbarH]=\"true\">\n <ngx-datatable-column [name]=\"'Cms::DisplayName' | abpLocalization\" prop=\"displayName\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{ value }}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::Name' | abpLocalization\" prop=\"name\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{ value }}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::SectionType' | abpLocalization\" prop=\"type\" [width]=\"80\" [sortable]=\"false\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{('Cms::Enum:SectionType:'+_SectionType[value]) | abpLocalization}}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::IsDefault' | abpLocalization\" prop=\"isDefault\" [width]=\"60\" [sortable]=\"false\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n <i class=\"fas fa-check text-success\" *ngIf=\"value\"></i>\n <i class=\"fas fa-times text-danger\" *ngIf=\"!value\"></i>\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::IsActive' | abpLocalization\" prop=\"isActive\" [width]=\"60\" [sortable]=\"false\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n <i class=\"fas fa-check text-success\" *ngIf=\"value\"></i>\n <i class=\"fas fa-times text-danger\" *ngIf=\"!value\"></i>\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::EntryType' | abpLocalization\" prop=\"SiteId\" [width]=\"100\" [sortable]=\"false\"> \n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n <div ngbDropdown container=\"body\">\n <button type=\"button\" class=\"btn btn-link\" ngbDropdownToggle id=\"dropdownBasic1\">\n {{'Cms::EntryType' | abpLocalization}}\n </button>\n <div ngbDropdownMenu aria-labelledby=\"dropdownBasic1\">\n <ng-container *ngFor=\"let item of row.entryTypes;let i =index\">\n <li ngbDropdownItem\n class=\"d-flex align-items-center justify-content-between\" [routerLink]=\"'/cms/admin/sections/'+row.id+'/entry-types/'+item.id+'/edit'\"\n >{{item.displayName}}\n <button class=\"btn btn-light btn-sm p-0\"\n (click.stop)=\"deleteEntryType(item)\"><i class=\"fas fa-trash p-sm-1\"\n style=\"font-size: 12px;\" role=\"button\"></i></button>\n </li>\n </ng-container>\n <li ngbDropdownItem [routerLink]=\"'/cms/admin/sections/'+row.id+'/entry-types/create'\"><i\n class=\"fas fa-plus-circle me-2\"></i>{{'Cms::New' |\n abpLocalization}}</li>\n </div>\n </div>\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::CreationTime' | abpLocalization\" prop=\"creationTime\" [minWidth]=\"190\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{ value | date : 'yyyy/MM/dd hh:mm:ss' }}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [sortable]=\"false\" [name]=\"'AbpUi::Actions' | abpLocalization\" [frozenLeft]=\"true\" [width]=\"110\" [maxWidth]=\"110\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n <div ngbDropdown container=\"body\">\n <button type=\"button\" class=\"btn btn-primary btn-sm\" ngbDropdownToggle>\n <i class=\"me-1 fa fa-cog\"></i> {{'AbpUi::Actions' | abpLocalization}}\n </button>\n <div ngbDropdownMenu>\n <button ngbDropdownItem (click)=\"editSectionBtn(row)\">{{'AbpUi::Edit' |\n abpLocalization}}</button>\n <button ngbDropdownItem (click)=\"deletefield(row)\">{{'AbpUi::Delete' |\n abpLocalization}}</button>\n </div>\n </div>\n </ng-template>\n </ngx-datatable-column>\n </ngx-datatable>\n </div>\n </div>\n </div>\n </div>\n</abp-page>\n<cms-create-or-edit-sections-modal (visibleChange)=\"visibleChange($event)\" [formEntity]=\"formEntity\" [visible]=\"isVisibleOpen\"></cms-create-or-edit-sections-modal>\n<!-- <abp-modal [(visible)]=\"visibleOpen\" [busy]=\"modalBusy\" (visibleChange)=\"VisibleChange($event)\">\n <ng-template #abpHeader>\n <h3>{{selected?('AbpUi::Edit' | abpLocalization):('Cms::New' | abpLocalization)}}</h3>\n </ng-template>\n <ng-template #abpBody>\n <ng-template #loaderRef>\n <div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\" aria-hidden=\"true\"></i></div>\n </ng-template>\n <ng-container *ngIf=\"createOrEditForm; else loaderRef\">\n <form class=\"sites-modal-form\" [formGroup]=\"createOrEditForm\" (keydown.enter)=\"$event.preventDefault()\" [class]=\"{'was-validated':formValidation}\" (submit)=\"createOrEditSave()\">\n <button type=\"submit\" #createOrEditModalSubmitBtn style=\"display: none\"></button>\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'Cms::EntryType' | abpLocalization}}</label>\n <div>\n <ng-container *ngFor=\"let item of _sectionTypeOptions;let i =index\">\n <div class=\"form-check form-check-inline\">\n <input class=\"form-check-input\" type=\"radio\" [value]=\"item.value\"\n (change)=\"radiochange()\" formControlName=\"type\" id=\"flexRadioDefault{{i}}\">\n <label class=\"form-check-label\" for=\"flexRadioDefault{{i}}\">\n {{ 'Cms::Enum:SectionType:'+item.key | abpLocalization }}\n </label>\n </div>\n </ng-container>\n </div>\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'Cms::DisplayName' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"displayName\"\n (blur)=\"disPlayNameInputBlur($event)\" placeholder=\"\" />\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'Cms::Name' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"name\" placeholder=\"\" />\n <div class=\"text-danger invalid-feedback\" *ngIf=\"nameInput.errors?.repetition\">\n {{nameInput.errors?.repetition}}\n </div>\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'Cms::Route' | abpLocalization}} </label>\n <input type=\"text\" class=\"form-control\" formControlName=\"route\" placeholder=\"\" />\n <div class=\"text-danger invalid-feedback\" *ngIf=\"routeInput.errors?.repetition\">\n {{routeInput.errors?.repetition}}\n </div>\n <small class=\"form-text text-muted d-block\">\n {{'Cms::RouteTips' | abpLocalization}}<br>\n &nbsp;&nbsp;blog<br>\n &nbsp;&nbsp;{{'blog/{slug}'}}<br>\n &nbsp;&nbsp;{{'blog/{publishTime:yyyy}/{publishTime:MM}/{slug}'}}\n </small>\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'Cms::Template' | abpLocalization}} </label>\n <input type=\"text\" class=\"form-control\" formControlName=\"template\" placeholder=\"\" />\n <small class=\"form-text text-muted d-block\">\n {{\"Cms::TemplateTips\" | abpLocalization}}\n </small>\n </div>\n <div class=\"mb-3\">\n <div class=\"form-check form-check-inline\">\n <input class=\"form-check-input\" type=\"checkbox\" value=\"true\" formControlName=\"isDefault\"\n id=\"isDefault\" />\n <label class=\"form-check-label\" for=\"isDefault\"> {{'Cms::Default' | abpLocalization}} </label>\n </div>\n </div>\n <div class=\"mb-3\">\n <div class=\"form-check form-check-inline\">\n <input class=\"form-check-input\" type=\"checkbox\" value=\"true\" formControlName=\"isActive\"\n id=\"isActive\" />\n <label class=\"form-check-label\" for=\"isActive\"> {{'Cms::IsActive' | abpLocalization}}</label>\n </div>\n </div>\n </form>\n </ng-container>\n </ng-template>\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>{{'AbpUi::Close' | abpLocalization}}</button>\n <abp-button iconClass=\"fa fa-check\" (click)=\"createOrEditModalSubmitBtn.nativeElement.click()\">{{'AbpUi::Save' |\n abpLocalization}}</abp-button>\n </ng-template>\n</abp-modal> -->", styles: ["::ng-deep .sections-page .dignite_page{background:transparent}::ng-deep .sections-page .list-group-flush>.list-group-item:first-child{border-top-width:var(--bs-list-group-border-width)}::ng-deep .sections-page .card-header input{flex:2 1 auto}::ng-deep .sections-page .card-header .form-select{padding:.475rem 3.75rem .475rem 1.25rem}::ng-deep .sites-modal-form .form-control{padding:.4rem 1.25rem}\n"] }]
137
137
  }], ctorParameters: () => [{ type: i1.ListService }, { type: i2.SectionAdminService }, { type: i3.ToasterService }, { type: i3.ConfirmationService }, { type: i4.FormBuilder }, { type: i2.EntryTypeAdminService }, { type: i1.LocalizationService }, { type: i5.CmsApiService }] });
138
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21zL3NyYy9saWIvY29tcG9uZW50cy9hZG1pbi9zZWN0aW9ucy9zZWN0aW9ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvc3JjL2xpYi9jb21wb25lbnRzL2FkbWluL3NlY3Rpb25zL3NlY3Rpb25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3RFLE9BQU8sRUFFTCx3QkFBd0IsRUFDeEIsV0FBVyxHQUdaLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFBRSxTQUFTLEVBQVksTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQU8vQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUU1RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDckQsT0FBTyxFQUFFLFFBQVEsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUM1QyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUd6RixPQUFPLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUNBQXFDLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFtQnRGLE1BQU0sT0FBTyxpQkFBaUI7SUFDNUIsWUFDa0IsSUFBaUIsRUFDekIsb0JBQXlDLEVBQ3pDLE9BQXVCLEVBQ3ZCLFlBQWlDLEVBQ2pDLEVBQWUsRUFDaEIsc0JBQTZDLEVBQzdDLG9CQUF5QyxFQUN6QyxjQUE2QjtRQVBwQixTQUFJLEdBQUosSUFBSSxDQUFhO1FBQ3pCLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBcUI7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QUFDOzhHQTNGVSxpQkFBaUI7a0dBQWpCLGlCQUFpQix1Q0FiakI7WUFDVCxhQUFhO1lBQ2IsV0FBVztZQUNYLGFBQWE7WUFDYiw0REFBNEQ7WUFDNUQsdUVBQXVFO1lBQ3ZFLEVBQUUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUU7WUFDcEQ7Z0JBQ0UsT0FBTyxFQUFFLHFCQUFxQjtnQkFDOUIsUUFBUSxFQUFFLGFBQWEsQ0FBQyxRQUFRO2FBQ2pDO1NBQ0YsMEJDeENILHUrWkE0TGdCOzsyRkRsSkgsaUJBQWlCO2tCQWpCN0IsU0FBUzsrQkFDRSxjQUFjLGFBR2I7d0JBQ1QsYUFBYTt3QkFDYixXQUFXO3dCQUNYLGFBQWE7d0JBQ2IsNERBQTREO3dCQUM1RCx1RUFBdUU7d0JBQ3ZFLEVBQUUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUU7d0JBQ3BEOzRCQUNFLE9BQU8sRUFBRSxxQkFBcUI7NEJBQzlCLFFBQVEsRUFBRSxhQUFhLENBQUMsUUFBUTt5QkFDakM7cUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFWFRFTlNJT05TX0lERU5USUZJRVIgfSBmcm9tICdAYWJwL25nLmNvbXBvbmVudHMvZXh0ZW5zaWJsZSc7XG5pbXBvcnQge1xuICBBQlAsXG4gIExJU1RfUVVFUllfREVCT1VOQ0VfVElNRSxcbiAgTGlzdFNlcnZpY2UsXG4gIExvY2FsaXphdGlvblNlcnZpY2UsXG4gIFBhZ2VkUmVzdWx0RHRvLFxufSBmcm9tICdAYWJwL25nLmNvcmUnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCAgT25Jbml0LCAgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFQ21zQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vZW51bXMnO1xuaW1wb3J0IHsgVG9hc3RlclNlcnZpY2UsIENvbmZpcm1hdGlvblNlcnZpY2UsIENvbmZpcm1hdGlvbiB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcbmltcG9ydCB7XG4gIEZvcm1CdWlsZGVyLFxuICBGb3JtR3JvdXAsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENtc0FwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBVcGRhdGVMaXN0U2VydmljZSB9IGZyb20gJ0BkaWduaXRlLW5nL2V4cGFuZC5jb3JlJztcblxuaW1wb3J0IHsgQ29sdW1uTW9kZSB9IGZyb20gJ0Bzd2ltbGFuZS9uZ3gtZGF0YXRhYmxlJztcbmltcG9ydCB7IGZpbmFsaXplLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDcmVhdGVPclVwZGF0ZVNlY3Rpb25zSW5wdXRCYXNlIH0gZnJvbSAnLi9jcmVhdGUtb3ItdXBkYXRlLXNlY3Rpb25zLWlucHV0LWJhc2UnO1xuaW1wb3J0IHsgVmFsaWRhdG9yc1NlcnZpY2UgfSBmcm9tICdAZGlnbml0ZS1uZy9leHBhbmQuY29yZSc7XG5pbXBvcnQgeyBFbnRyeVR5cGVBZG1pblNlcnZpY2UsIEdldFNlY3Rpb25zSW5wdXQsIFNlY3Rpb25BZG1pblNlcnZpY2UsIFNlY3Rpb25EdG8gfSBmcm9tICcuLi8uLi8uLi9wcm94eS9kaWduaXRlL2Ntcy9hZG1pbi9zZWN0aW9ucyc7XG5pbXBvcnQgeyBTZWN0aW9uVHlwZSwgc2VjdGlvblR5cGVPcHRpb25zIH0gZnJvbSAnLi4vLi4vLi4vcHJveHkvZGlnbml0ZS9jbXMvc2VjdGlvbnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjbXMtc2VjdGlvbnMnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VjdGlvbnMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZWN0aW9ucy5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICAvLyBbUmVxdWlyZWRdXG4gICAgTGlzdFNlcnZpY2UsXG4gICAgLy8gW09wdGlvbmFsXVxuICAgIC8vIFByb3ZpZGUgdGhpcyB0b2tlbiBpZiB5b3Ugd2FudCBhIGRpZmZlcmVudCBkZWJvdW5jZSB0aW1lLlxuICAgIC8vIERlZmF1bHQgaXMgMzAwLiBDYW5ub3QgYmUgMC4gQW55IHZhbHVlIGJlbG93IDEwMCBpcyBub3QgcmVjb21tZW5kZWQuXG4gICAgeyBwcm92aWRlOiBMSVNUX1FVRVJZX0RFQk9VTkNFX1RJTUUsIHVzZVZhbHVlOiA1MDAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBFWFRFTlNJT05TX0lERU5USUZJRVIsXG4gICAgICB1c2VWYWx1ZTogRUNtc0NvbXBvbmVudC5TZWN0aW9ucyxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTZWN0aW9uc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSBsaXN0OiBMaXN0U2VydmljZSxcbiAgICBwcml2YXRlIF9TZWN0aW9uQWRtaW5TZXJ2aWNlOiBTZWN0aW9uQWRtaW5TZXJ2aWNlLFxuICAgIHByaXZhdGUgdG9hc3RlcjogVG9hc3RlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb25maXJtYXRpb246IENvbmZpcm1hdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHVibGljIF9FbnRyeVR5cGVBZG1pblNlcnZpY2U6IEVudHJ5VHlwZUFkbWluU2VydmljZSxcbiAgICBwdWJsaWMgX0xvY2FsaXphdGlvblNlcnZpY2U6IExvY2FsaXphdGlvblNlcnZpY2UsXG4gICAgcHVibGljIF9DbXNBcGlTZXJ2aWNlOiBDbXNBcGlTZXJ2aWNlXG4gICkge31cbiAgcHJpdmF0ZSBfVXBkYXRlTGlzdFNlcnZpY2UgPSBpbmplY3QoVXBkYXRlTGlzdFNlcnZpY2UpO1xuICBzaXRlTGlzdDogYW55W10gPSBbXTtcbiAgX1NlY3Rpb25UeXBlID0gU2VjdGlvblR5cGU7XG4gIF9zZWN0aW9uVHlwZU9wdGlvbnMgPSBzZWN0aW9uVHlwZU9wdGlvbnM7XG4gIENvbHVtbk1vZGUgPSBDb2x1bW5Nb2RlO1xuICBkYXRhOiBQYWdlZFJlc3VsdER0bzxTZWN0aW9uRHRvPiA9IHsgaXRlbXM6IFtdLCB0b3RhbENvdW50OiAwIH07XG4gIGZpbHRlcnMgPSB7fSBhcyBHZXRTZWN0aW9uc0lucHV0O1xuICBob29rVG9RdWVyeSgpIHtcbiAgICBjb25zdCBnZXREYXRhID0gKHF1ZXJ5OiBBQlAuUGFnZVF1ZXJ5UGFyYW1zKSA9PlxuICAgICAgdGhpcy5fU2VjdGlvbkFkbWluU2VydmljZS5nZXRMaXN0KHsgLi4ucXVlcnksIC4uLnRoaXMuZmlsdGVycyB9KTtcbiAgICBjb25zdCBzZXREYXRhID0gKGxpc3Q6IFBhZ2VkUmVzdWx0RHRvPFNlY3Rpb25EdG8+KSA9PiAodGhpcy5kYXRhID0gbGlzdCk7XG4gICAgdGhpcy5saXN0Lmhvb2tUb1F1ZXJ5KGdldERhdGEpLnN1YnNjcmliZShzZXREYXRhKTtcbiAgfVxuICBhc3luYyBuZ09uSW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmhvb2tUb1F1ZXJ5KCk7XG4gICAgdGhpcy5fVXBkYXRlTGlzdFNlcnZpY2UudXBkYXRlTGlzdEV2ZW50LnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmxpc3QuZ2V0KCk7XG4gICAgfSk7XG4gIH1cbiAgc2l0ZUlkQ2hhbmdlKCkge1xuICAgIHRoaXMubGlzdC5wYWdlID0gMDtcbiAgICB0aGlzLmxpc3QuZ2V0KCk7XG4gIH1cblxuICAvKirooajljZUgKi9cbiAgZm9ybUVudGl0eTogRm9ybUdyb3VwIHwgdW5kZWZpbmVkO1xuICAvKirlvLnnqpfnirbmgIEgKi9cbiAgaXNWaXNpYmxlT3BlbjogYm9vbGVhbiA9IGZhbHNlO1xuICAvKirlvLnnqpflm57osIMgKi9cbiAgdmlzaWJsZUNoYW5nZShldmVudCkge1xuICAgIHRoaXMuaXNWaXNpYmxlT3BlbiA9IGV2ZW50O1xuICAgIGlmICghZXZlbnQpIHtcbiAgICAgIHRoaXMuZm9ybUVudGl0eSA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cbiAgLyoq5Yib5bu6ICovXG4gIGNyZWF0ZUJ0bigpIHtcbiAgICB0aGlzLmZvcm1FbnRpdHkgPSB0aGlzLmZiLmdyb3VwKG5ldyBDcmVhdGVPclVwZGF0ZVNlY3Rpb25zSW5wdXRCYXNlKCkpO1xuICAgIHRoaXMuaXNWaXNpYmxlT3BlbiA9IHRydWU7XG4gIH1cbiAgLyoq57yW6L6RICovXG4gIGVkaXRTZWN0aW9uQnRuKGl0ZW0pIHtcbiAgICB0aGlzLmZvcm1FbnRpdHkgPSB0aGlzLmZiLmdyb3VwKG5ldyBDcmVhdGVPclVwZGF0ZVNlY3Rpb25zSW5wdXRCYXNlKCkpO1xuICAgIHRoaXMuZm9ybUVudGl0eS5wYXRjaFZhbHVlKHtcbiAgICAgIC4uLml0ZW0sXG4gICAgfSk7XG4gICAgdGhpcy5pc1Zpc2libGVPcGVuID0gdHJ1ZTtcbiAgfVxuXG4gIC8qKuWIoOmZpOadv+WdlyAqL1xuICBkZWxldGVmaWVsZChyb3cpIHtcbiAgICB0aGlzLmNvbmZpcm1hdGlvblxuICAgICAgLndhcm4ocm93LmRpc3BsYXlOYW1lLCB0aGlzLl9Mb2NhbGl6YXRpb25TZXJ2aWNlLmluc3RhbnQoYEFicFVpOjpJdGVtV2lsbEJlRGVsZXRlZE1lc3NhZ2VgKSlcbiAgICAgIC5zdWJzY3JpYmUoKHN0YXR1czogQ29uZmlybWF0aW9uLlN0YXR1cykgPT4ge1xuICAgICAgICBpZiAoc3RhdHVzID09ICdjb25maXJtJykge1xuICAgICAgICAgIHRoaXMuX1NlY3Rpb25BZG1pblNlcnZpY2VcbiAgICAgICAgICAgIC5kZWxldGUocm93LmlkKVxuICAgICAgICAgICAgLnBpcGUoZmluYWxpemUoKCkgPT4ge30pKVxuICAgICAgICAgICAgLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnRvYXN0ZXIuc3VjY2Vzcyh0aGlzLl9Mb2NhbGl6YXRpb25TZXJ2aWNlLmluc3RhbnQoYEFicFVpOjpEZWxldGVkU3VjY2Vzc2Z1bGx5YCkpO1xuICAgICAgICAgICAgICB0aGlzLmxpc3QuZ2V0KCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cbiAgLyoq5Yig6Zmk5p2h55uu57G75Z6LICovXG4gICAgZGVsZXRlRW50cnlUeXBlKHJvdykge1xuICAgIHRoaXMuY29uZmlybWF0aW9uXG4gICAgICAud2Fybihyb3cuZGlzcGxheU5hbWUsIHRoaXMuX0xvY2FsaXphdGlvblNlcnZpY2UuaW5zdGFudChgQWJwVWk6Okl0ZW1XaWxsQmVEZWxldGVkTWVzc2FnZWApKVxuICAgICAgLnN1YnNjcmliZSgoc3RhdHVzOiBDb25maXJtYXRpb24uU3RhdHVzKSA9PiB7XG4gICAgICAgIGlmIChzdGF0dXMgPT0gJ2NvbmZpcm0nKSB7XG4gICAgICAgICAgdGhpcy5fRW50cnlUeXBlQWRtaW5TZXJ2aWNlXG4gICAgICAgICAgICAuZGVsZXRlKHJvdy5pZClcbiAgICAgICAgICAgIC5waXBlKGZpbmFsaXplKCgpID0+IHt9KSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICAgICAgdGhpcy50b2FzdGVyLnN1Y2Nlc3ModGhpcy5fTG9jYWxpemF0aW9uU2VydmljZS5pbnN0YW50KGBBYnBVaTo6RGVsZXRlZFN1Y2Nlc3NmdWxseWApKTtcbiAgICAgICAgICAgICAgdGhpcy5saXN0LmdldCgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbn1cbiIsIjxhYnAtcGFnZSBbdGl0bGVdPVwiJ0Ntczo6U2VjdGlvbnMnIHwgYWJwTG9jYWxpemF0aW9uXCIgW3Rvb2xiYXJdPVwidHJ1ZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9ucy1wYWdlXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkIFwiID5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgcHgtMiBweS1zbS0yIGJvcmRlci1ib3R0b21cIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGFsaWduLWl0ZW1zLWVuZFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItMyBjb2wtM1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiPnt7J0Ntczo6SXNBY3RpdmUnIHwgYWJwTG9jYWxpemF0aW9ufX3vvJo8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tc2VsZWN0IGNvbC1hdXRvXCIgWyhuZ01vZGVsKV09XCJmaWx0ZXJzLmlzQWN0aXZlXCIgKGNoYW5nZSk9XCJzaXRlSWRDaGFuZ2UoKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gW3ZhbHVlXT1cIlwiPjwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gW3ZhbHVlXT1cInRydWVcIj57eydBYnBVaTo6WWVzJ3xhYnBMb2NhbGl6YXRpb259fTwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gW3ZhbHVlXT1cImZhbHNlXCI+e3snQWJwVWk6Ok5vJ3xhYnBMb2NhbGl6YXRpb259fTwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItMyBjb2wtM1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiPnt7J0FicFVpOjpTZWFyY2gnIHwgYWJwTG9jYWxpemF0aW9ufX3vvJo8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBbKG5nTW9kZWwpXT1cImZpbHRlcnMuZmlsdGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInQWJwVWk6OlNlYXJjaCcgfCBhYnBMb2NhbGl6YXRpb25cIiAvPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTMgY29sLTRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgcHgtM1wiIHR5cGU9XCJidXR0b25cIiBpZD1cImJ1dHRvbi1hZGRvbjJcIiAoY2xpY2spPVwibGlzdC5nZXQoKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtc2VhcmNoXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PiBcbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgbWItMFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBwLTBcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtcmVzcG9uc2l2ZSB0YWJsZS1maXhlZC1oZWFkZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5neC1kYXRhdGFibGUgY2xhc3M9XCJtYXRlcmlhbCBcIiBbcm93c109XCJkYXRhLml0ZW1zXCIgW2xpc3RdPVwibGlzdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY29sdW1uTW9kZV09XCJDb2x1bW5Nb2RlLmZvcmNlXCIgW2hlYWRlckhlaWdodF09XCI1MFwiIFtmb290ZXJIZWlnaHRdPVwiNTBcIiByb3dIZWlnaHQ9XCJhdXRvXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt2aXJ0dWFsaXphdGlvbl09XCJmYWxzZVwiIFtleHRlcm5hbFBhZ2luZ109XCJ0cnVlXCIgW2NvdW50XT1cImRhdGEudG90YWxDb3VudFwiIFtzY3JvbGxiYXJIXT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtbiBbbmFtZV09XCInQ21zOjpEaXNwbGF5TmFtZScgfCBhYnBMb2NhbGl6YXRpb25cIiBwcm9wPVwiZGlzcGxheU5hbWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIGxldC12YWx1ZT1cInZhbHVlXCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyB2YWx1ZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uIFtuYW1lXT1cIidDbXM6Ok5hbWUnIHwgYWJwTG9jYWxpemF0aW9uXCIgcHJvcD1cIm5hbWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIGxldC12YWx1ZT1cInZhbHVlXCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyB2YWx1ZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uIFtuYW1lXT1cIidDbXM6OlNlY3Rpb25UeXBlJyB8IGFicExvY2FsaXphdGlvblwiIHByb3A9XCJ0eXBlXCIgW3dpZHRoXT1cIjgwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBsZXQtdmFsdWU9XCJ2YWx1ZVwiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3soJ0Ntczo6RW51bTpTZWN0aW9uVHlwZTonK19TZWN0aW9uVHlwZVt2YWx1ZV0pIHwgYWJwTG9jYWxpemF0aW9ufX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtbiBbbmFtZV09XCInQ21zOjpJc0RlZmF1bHQnIHwgYWJwTG9jYWxpemF0aW9uXCIgcHJvcD1cImlzRGVmYXVsdFwiIFt3aWR0aF09XCI2MFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbGV0LXZhbHVlPVwidmFsdWVcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLWNoZWNrIHRleHQtc3VjY2Vzc1wiICpuZ0lmPVwidmFsdWVcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLXRpbWVzIHRleHQtZGFuZ2VyXCIgKm5nSWY9XCIhdmFsdWVcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW4gW25hbWVdPVwiJ0Ntczo6SXNBY3RpdmUnIHwgYWJwTG9jYWxpemF0aW9uXCIgcHJvcD1cImlzQWN0aXZlXCIgW3dpZHRoXT1cIjYwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBsZXQtdmFsdWU9XCJ2YWx1ZVwiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtY2hlY2sgdGV4dC1zdWNjZXNzXCIgKm5nSWY9XCJ2YWx1ZVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtdGltZXMgdGV4dC1kYW5nZXJcIiAqbmdJZj1cIiF2YWx1ZVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtbiBbbmFtZV09XCInQ21zOjpFbnRyeVR5cGUnIHwgYWJwTG9jYWxpemF0aW9uXCIgcHJvcD1cIlNpdGVJZFwiIFt3aWR0aF09XCIxMDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIGxldC12YWx1ZT1cInZhbHVlXCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IG5nYkRyb3Bkb3duIGNvbnRhaW5lcj1cImJvZHlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1saW5rXCIgbmdiRHJvcGRvd25Ub2dnbGUgaWQ9XCJkcm9wZG93bkJhc2ljMVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7J0Ntczo6RW50cnlUeXBlJyB8IGFicExvY2FsaXphdGlvbn19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgbmdiRHJvcGRvd25NZW51IGFyaWEtbGFiZWxsZWRieT1cImRyb3Bkb3duQmFzaWMxXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiByb3cuZW50cnlUeXBlcztsZXQgaSA9aW5kZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIG5nYkRyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCIgW3JvdXRlckxpbmtdPVwiJy9jbXMvYWRtaW4vc2VjdGlvbnMvJytyb3cuaWQrJy9lbnRyeS10eXBlcy8nK2l0ZW0uaWQrJy9lZGl0J1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+e3tpdGVtLmRpc3BsYXlOYW1lfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLWxpZ2h0IGJ0bi1zbSBwLTBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljay5zdG9wKT1cImRlbGV0ZUVudHJ5VHlwZShpdGVtKVwiPjxpIGNsYXNzPVwiZmFzIGZhLXRyYXNoIHAtc20tMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwiZm9udC1zaXplOiAxMnB4O1wiIHJvbGU9XCJidXR0b25cIj48L2k+PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIG5nYkRyb3Bkb3duSXRlbSBbcm91dGVyTGlua109XCInL2Ntcy9hZG1pbi9zZWN0aW9ucy8nK3Jvdy5pZCsnL2VudHJ5LXR5cGVzL2NyZWF0ZSdcIj48aVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmYXMgZmEtcGx1cy1jaXJjbGUgbWUtMlwiPjwvaT57eydDbXM6Ok5ldycgfFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhYnBMb2NhbGl6YXRpb259fTwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW4gW25hbWVdPVwiJ0Ntczo6Q3JlYXRpb25UaW1lJyB8IGFicExvY2FsaXphdGlvblwiIHByb3A9XCJjcmVhdGlvblRpbWVcIiBbbWluV2lkdGhdPVwiMTkwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBsZXQtdmFsdWU9XCJ2YWx1ZVwiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgdmFsdWUgfCBkYXRlIDogJ3l5eXkvTU0vZGQgaGg6bW06c3MnIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW4gW3NvcnRhYmxlXT1cImZhbHNlXCIgIFtuYW1lXT1cIidBYnBVaTo6QWN0aW9ucycgfCBhYnBMb2NhbGl6YXRpb25cIiAgIFtmcm96ZW5MZWZ0XT1cInRydWVcIiBbd2lkdGhdPVwiMTEwXCIgW21heFdpZHRoXT1cIjExMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbGV0LXZhbHVlPVwidmFsdWVcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgbmdiRHJvcGRvd24gY29udGFpbmVyPVwiYm9keVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtXCIgbmdiRHJvcGRvd25Ub2dnbGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJtZS0xIGZhIGZhLWNvZ1wiPjwvaT4ge3snQWJwVWk6OkFjdGlvbnMnIHwgYWJwTG9jYWxpemF0aW9ufX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBuZ2JEcm9wZG93bk1lbnU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBuZ2JEcm9wZG93bkl0ZW0gKGNsaWNrKT1cImVkaXRTZWN0aW9uQnRuKHJvdylcIj57eydBYnBVaTo6RWRpdCcgfFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhYnBMb2NhbGl6YXRpb259fTwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gbmdiRHJvcGRvd25JdGVtIChjbGljayk9XCJkZWxldGVmaWVsZChyb3cpXCI+e3snQWJwVWk6OkRlbGV0ZScgfFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhYnBMb2NhbGl6YXRpb259fTwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxuICAgICAgICAgICAgICAgICAgICA8L25neC1kYXRhdGFibGU+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2FicC1wYWdlPlxuPGNtcy1jcmVhdGUtb3ItZWRpdC1zZWN0aW9ucy1tb2RhbCAgKHZpc2libGVDaGFuZ2UpPVwidmlzaWJsZUNoYW5nZSgkZXZlbnQpXCIgW2Zvcm1FbnRpdHldPVwiZm9ybUVudGl0eVwiIFt2aXNpYmxlXT1cImlzVmlzaWJsZU9wZW5cIj48L2Ntcy1jcmVhdGUtb3ItZWRpdC1zZWN0aW9ucy1tb2RhbD5cbjwhLS0gPGFicC1tb2RhbCBbKHZpc2libGUpXT1cInZpc2libGVPcGVuXCIgW2J1c3ldPVwibW9kYWxCdXN5XCIgKHZpc2libGVDaGFuZ2UpPVwiVmlzaWJsZUNoYW5nZSgkZXZlbnQpXCI+XG4gICAgPG5nLXRlbXBsYXRlICNhYnBIZWFkZXI+XG4gICAgICAgIDxoMz57e3NlbGVjdGVkPygnQWJwVWk6OkVkaXQnIHwgYWJwTG9jYWxpemF0aW9uKTooJ0Ntczo6TmV3JyB8IGFicExvY2FsaXphdGlvbil9fTwvaDM+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgI2FicEJvZHk+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjbG9hZGVyUmVmPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyXCI+PGkgY2xhc3M9XCJmYSBmYS1wdWxzZSBmYS1zcGlubmVyXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPjwvZGl2PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY3JlYXRlT3JFZGl0Rm9ybTsgZWxzZSBsb2FkZXJSZWZcIj5cbiAgICAgICAgICAgIDxmb3JtIGNsYXNzPVwic2l0ZXMtbW9kYWwtZm9ybVwiIFtmb3JtR3JvdXBdPVwiY3JlYXRlT3JFZGl0Rm9ybVwiIChrZXlkb3duLmVudGVyKT1cIiRldmVudC5wcmV2ZW50RGVmYXVsdCgpXCIgW2NsYXNzXT1cInsnd2FzLXZhbGlkYXRlZCc6Zm9ybVZhbGlkYXRpb259XCIgIChzdWJtaXQpPVwiY3JlYXRlT3JFZGl0U2F2ZSgpXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgI2NyZWF0ZU9yRWRpdE1vZGFsU3VibWl0QnRuIHN0eWxlPVwiZGlzcGxheTogbm9uZVwiPjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIj57eydDbXM6OkVudHJ5VHlwZScgfCBhYnBMb2NhbGl6YXRpb259fTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIF9zZWN0aW9uVHlwZU9wdGlvbnM7bGV0IGkgPWluZGV4XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1jaGVjay1pbmxpbmVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIHR5cGU9XCJyYWRpb1wiIFt2YWx1ZV09XCJpdGVtLnZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwicmFkaW9jaGFuZ2UoKVwiIGZvcm1Db250cm9sTmFtZT1cInR5cGVcIiBpZD1cImZsZXhSYWRpb0RlZmF1bHR7e2l9fVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCIgZm9yPVwiZmxleFJhZGlvRGVmYXVsdHt7aX19XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAnQ21zOjpFbnVtOlNlY3Rpb25UeXBlOicraXRlbS5rZXkgfCBhYnBMb2NhbGl6YXRpb24gfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCI+e3snQ21zOjpEaXNwbGF5TmFtZScgfCBhYnBMb2NhbGl6YXRpb259fTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwiZGlzcGxheU5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGJsdXIpPVwiZGlzUGxheU5hbWVJbnB1dEJsdXIoJGV2ZW50KVwiIHBsYWNlaG9sZGVyPVwiXCIgLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCI+e3snQ21zOjpOYW1lJyB8IGFicExvY2FsaXphdGlvbn19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJuYW1lXCIgcGxhY2Vob2xkZXI9XCJcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1kYW5nZXIgaW52YWxpZC1mZWVkYmFja1wiICpuZ0lmPVwibmFtZUlucHV0LmVycm9ycz8ucmVwZXRpdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3tuYW1lSW5wdXQuZXJyb3JzPy5yZXBldGl0aW9ufX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiPnt7J0Ntczo6Um91dGUnIHwgYWJwTG9jYWxpemF0aW9ufX0gPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJyb3V0ZVwiIHBsYWNlaG9sZGVyPVwiXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZGFuZ2VyIGludmFsaWQtZmVlZGJhY2tcIiAqbmdJZj1cInJvdXRlSW5wdXQuZXJyb3JzPy5yZXBldGl0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7e3JvdXRlSW5wdXQuZXJyb3JzPy5yZXBldGl0aW9ufX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxzbWFsbCBjbGFzcz1cImZvcm0tdGV4dCB0ZXh0LW11dGVkIGQtYmxvY2tcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7J0Ntczo6Um91dGVUaXBzJyB8IGFicExvY2FsaXphdGlvbn19PGJyPlxuICAgICAgICAgICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7YmxvZzxicj5cbiAgICAgICAgICAgICAgICAgICAgICAgICZuYnNwOyZuYnNwO3t7J2Jsb2cve3NsdWd9J319PGJyPlxuICAgICAgICAgICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7e3snYmxvZy97cHVibGlzaFRpbWU6eXl5eX0ve3B1Ymxpc2hUaW1lOk1NfS97c2x1Z30nfX1cbiAgICAgICAgICAgICAgICAgICAgPC9zbWFsbD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCI+e3snQ21zOjpUZW1wbGF0ZScgfCBhYnBMb2NhbGl6YXRpb259fSA8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cInRlbXBsYXRlXCIgcGxhY2Vob2xkZXI9XCJcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8c21hbGwgY2xhc3M9XCJmb3JtLXRleHQgdGV4dC1tdXRlZCBkLWJsb2NrXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7e1wiQ21zOjpUZW1wbGF0ZVRpcHNcIiB8IGFicExvY2FsaXphdGlvbn19XG4gICAgICAgICAgICAgICAgICAgIDwvc21hbGw+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1jaGVjay1pbmxpbmVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiB0eXBlPVwiY2hlY2tib3hcIiB2YWx1ZT1cInRydWVcIiBmb3JtQ29udHJvbE5hbWU9XCJpc0RlZmF1bHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiaXNEZWZhdWx0XCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIiBmb3I9XCJpc0RlZmF1bHRcIj4ge3snQ21zOjpEZWZhdWx0JyB8IGFicExvY2FsaXphdGlvbn19IDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tY2hlY2staW5saW5lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgdHlwZT1cImNoZWNrYm94XCIgdmFsdWU9XCJ0cnVlXCIgZm9ybUNvbnRyb2xOYW1lPVwiaXNBY3RpdmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiaXNBY3RpdmVcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiIGZvcj1cImlzQWN0aXZlXCI+IHt7J0Ntczo6SXNBY3RpdmUnIHwgYWJwTG9jYWxpemF0aW9ufX08L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZm9ybT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgI2FicEZvb3Rlcj5cbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeVwiIGFicENsb3NlPnt7J0FicFVpOjpDbG9zZScgfCBhYnBMb2NhbGl6YXRpb259fTwvYnV0dG9uPlxuICAgICAgICA8YWJwLWJ1dHRvbiBpY29uQ2xhc3M9XCJmYSBmYS1jaGVja1wiIChjbGljayk9XCJjcmVhdGVPckVkaXRNb2RhbFN1Ym1pdEJ0bi5uYXRpdmVFbGVtZW50LmNsaWNrKClcIj57eydBYnBVaTo6U2F2ZScgfFxuICAgICAgICAgICAgYWJwTG9jYWxpemF0aW9ufX08L2FicC1idXR0b24+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvYWJwLW1vZGFsPiAtLT4iXX0=
138
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21zL3NyYy9saWIvY29tcG9uZW50cy9hZG1pbi9zZWN0aW9ucy9zZWN0aW9ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvc3JjL2xpYi9jb21wb25lbnRzL2FkbWluL3NlY3Rpb25zL3NlY3Rpb25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3RFLE9BQU8sRUFFTCx3QkFBd0IsRUFDeEIsV0FBVyxHQUdaLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFBRSxTQUFTLEVBQVksTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQU8vQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUU1RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDckQsT0FBTyxFQUFFLFFBQVEsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUM1QyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUd6RixPQUFPLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUNBQXFDLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFtQnRGLE1BQU0sT0FBTyxpQkFBaUI7SUFDNUIsWUFDa0IsSUFBaUIsRUFDekIsb0JBQXlDLEVBQ3pDLE9BQXVCLEVBQ3ZCLFlBQWlDLEVBQ2pDLEVBQWUsRUFDaEIsc0JBQTZDLEVBQzdDLG9CQUF5QyxFQUN6QyxjQUE2QjtRQVBwQixTQUFJLEdBQUosSUFBSSxDQUFhO1FBQ3pCLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBcUI7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QUFDOzhHQTNGVSxpQkFBaUI7a0dBQWpCLGlCQUFpQix1Q0FiakI7WUFDVCxhQUFhO1lBQ2IsV0FBVztZQUNYLGFBQWE7WUFDYiw0REFBNEQ7WUFDNUQsdUVBQXVFO1lBQ3ZFLEVBQUUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUU7WUFDcEQ7Z0JBQ0UsT0FBTyxFQUFFLHFCQUFxQjtnQkFDOUIsUUFBUSxFQUFFLGFBQWEsQ0FBQyxRQUFRO2FBQ2pDO1NBQ0YsMEJDeENILGdrYUE0TGdCOzsyRkRsSkgsaUJBQWlCO2tCQWpCN0IsU0FBUzsrQkFDRSxjQUFjLGFBR2I7d0JBQ1QsYUFBYTt3QkFDYixXQUFXO3dCQUNYLGFBQWE7d0JBQ2IsNERBQTREO3dCQUM1RCx1RUFBdUU7d0JBQ3ZFLEVBQUUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUU7d0JBQ3BEOzRCQUNFLE9BQU8sRUFBRSxxQkFBcUI7NEJBQzlCLFFBQVEsRUFBRSxhQUFhLENBQUMsUUFBUTt5QkFDakM7cUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFWFRFTlNJT05TX0lERU5USUZJRVIgfSBmcm9tICdAYWJwL25nLmNvbXBvbmVudHMvZXh0ZW5zaWJsZSc7XG5pbXBvcnQge1xuICBBQlAsXG4gIExJU1RfUVVFUllfREVCT1VOQ0VfVElNRSxcbiAgTGlzdFNlcnZpY2UsXG4gIExvY2FsaXphdGlvblNlcnZpY2UsXG4gIFBhZ2VkUmVzdWx0RHRvLFxufSBmcm9tICdAYWJwL25nLmNvcmUnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCAgT25Jbml0LCAgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFQ21zQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vZW51bXMnO1xuaW1wb3J0IHsgVG9hc3RlclNlcnZpY2UsIENvbmZpcm1hdGlvblNlcnZpY2UsIENvbmZpcm1hdGlvbiB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcbmltcG9ydCB7XG4gIEZvcm1CdWlsZGVyLFxuICBGb3JtR3JvdXAsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENtc0FwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBVcGRhdGVMaXN0U2VydmljZSB9IGZyb20gJ0BkaWduaXRlLW5nL2V4cGFuZC5jb3JlJztcblxuaW1wb3J0IHsgQ29sdW1uTW9kZSB9IGZyb20gJ0Bzd2ltbGFuZS9uZ3gtZGF0YXRhYmxlJztcbmltcG9ydCB7IGZpbmFsaXplLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDcmVhdGVPclVwZGF0ZVNlY3Rpb25zSW5wdXRCYXNlIH0gZnJvbSAnLi9jcmVhdGUtb3ItdXBkYXRlLXNlY3Rpb25zLWlucHV0LWJhc2UnO1xuaW1wb3J0IHsgVmFsaWRhdG9yc1NlcnZpY2UgfSBmcm9tICdAZGlnbml0ZS1uZy9leHBhbmQuY29yZSc7XG5pbXBvcnQgeyBFbnRyeVR5cGVBZG1pblNlcnZpY2UsIEdldFNlY3Rpb25zSW5wdXQsIFNlY3Rpb25BZG1pblNlcnZpY2UsIFNlY3Rpb25EdG8gfSBmcm9tICcuLi8uLi8uLi9wcm94eS9kaWduaXRlL2Ntcy9hZG1pbi9zZWN0aW9ucyc7XG5pbXBvcnQgeyBTZWN0aW9uVHlwZSwgc2VjdGlvblR5cGVPcHRpb25zIH0gZnJvbSAnLi4vLi4vLi4vcHJveHkvZGlnbml0ZS9jbXMvc2VjdGlvbnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjbXMtc2VjdGlvbnMnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VjdGlvbnMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZWN0aW9ucy5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICAvLyBbUmVxdWlyZWRdXG4gICAgTGlzdFNlcnZpY2UsXG4gICAgLy8gW09wdGlvbmFsXVxuICAgIC8vIFByb3ZpZGUgdGhpcyB0b2tlbiBpZiB5b3Ugd2FudCBhIGRpZmZlcmVudCBkZWJvdW5jZSB0aW1lLlxuICAgIC8vIERlZmF1bHQgaXMgMzAwLiBDYW5ub3QgYmUgMC4gQW55IHZhbHVlIGJlbG93IDEwMCBpcyBub3QgcmVjb21tZW5kZWQuXG4gICAgeyBwcm92aWRlOiBMSVNUX1FVRVJZX0RFQk9VTkNFX1RJTUUsIHVzZVZhbHVlOiA1MDAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBFWFRFTlNJT05TX0lERU5USUZJRVIsXG4gICAgICB1c2VWYWx1ZTogRUNtc0NvbXBvbmVudC5TZWN0aW9ucyxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTZWN0aW9uc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSBsaXN0OiBMaXN0U2VydmljZSxcbiAgICBwcml2YXRlIF9TZWN0aW9uQWRtaW5TZXJ2aWNlOiBTZWN0aW9uQWRtaW5TZXJ2aWNlLFxuICAgIHByaXZhdGUgdG9hc3RlcjogVG9hc3RlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb25maXJtYXRpb246IENvbmZpcm1hdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHVibGljIF9FbnRyeVR5cGVBZG1pblNlcnZpY2U6IEVudHJ5VHlwZUFkbWluU2VydmljZSxcbiAgICBwdWJsaWMgX0xvY2FsaXphdGlvblNlcnZpY2U6IExvY2FsaXphdGlvblNlcnZpY2UsXG4gICAgcHVibGljIF9DbXNBcGlTZXJ2aWNlOiBDbXNBcGlTZXJ2aWNlXG4gICkge31cbiAgcHJpdmF0ZSBfVXBkYXRlTGlzdFNlcnZpY2UgPSBpbmplY3QoVXBkYXRlTGlzdFNlcnZpY2UpO1xuICBzaXRlTGlzdDogYW55W10gPSBbXTtcbiAgX1NlY3Rpb25UeXBlID0gU2VjdGlvblR5cGU7XG4gIF9zZWN0aW9uVHlwZU9wdGlvbnMgPSBzZWN0aW9uVHlwZU9wdGlvbnM7XG4gIENvbHVtbk1vZGUgPSBDb2x1bW5Nb2RlO1xuICBkYXRhOiBQYWdlZFJlc3VsdER0bzxTZWN0aW9uRHRvPiA9IHsgaXRlbXM6IFtdLCB0b3RhbENvdW50OiAwIH07XG4gIGZpbHRlcnMgPSB7fSBhcyBHZXRTZWN0aW9uc0lucHV0O1xuICBob29rVG9RdWVyeSgpIHtcbiAgICBjb25zdCBnZXREYXRhID0gKHF1ZXJ5OiBBQlAuUGFnZVF1ZXJ5UGFyYW1zKSA9PlxuICAgICAgdGhpcy5fU2VjdGlvbkFkbWluU2VydmljZS5nZXRMaXN0KHsgLi4ucXVlcnksIC4uLnRoaXMuZmlsdGVycyB9KTtcbiAgICBjb25zdCBzZXREYXRhID0gKGxpc3Q6IFBhZ2VkUmVzdWx0RHRvPFNlY3Rpb25EdG8+KSA9PiAodGhpcy5kYXRhID0gbGlzdCk7XG4gICAgdGhpcy5saXN0Lmhvb2tUb1F1ZXJ5KGdldERhdGEpLnN1YnNjcmliZShzZXREYXRhKTtcbiAgfVxuICBhc3luYyBuZ09uSW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmhvb2tUb1F1ZXJ5KCk7XG4gICAgdGhpcy5fVXBkYXRlTGlzdFNlcnZpY2UudXBkYXRlTGlzdEV2ZW50LnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmxpc3QuZ2V0KCk7XG4gICAgfSk7XG4gIH1cbiAgc2l0ZUlkQ2hhbmdlKCkge1xuICAgIHRoaXMubGlzdC5wYWdlID0gMDtcbiAgICB0aGlzLmxpc3QuZ2V0KCk7XG4gIH1cblxuICAvKirooajljZUgKi9cbiAgZm9ybUVudGl0eTogRm9ybUdyb3VwIHwgdW5kZWZpbmVkO1xuICAvKirlvLnnqpfnirbmgIEgKi9cbiAgaXNWaXNpYmxlT3BlbjogYm9vbGVhbiA9IGZhbHNlO1xuICAvKirlvLnnqpflm57osIMgKi9cbiAgdmlzaWJsZUNoYW5nZShldmVudCkge1xuICAgIHRoaXMuaXNWaXNpYmxlT3BlbiA9IGV2ZW50O1xuICAgIGlmICghZXZlbnQpIHtcbiAgICAgIHRoaXMuZm9ybUVudGl0eSA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cbiAgLyoq5Yib5bu6ICovXG4gIGNyZWF0ZUJ0bigpIHtcbiAgICB0aGlzLmZvcm1FbnRpdHkgPSB0aGlzLmZiLmdyb3VwKG5ldyBDcmVhdGVPclVwZGF0ZVNlY3Rpb25zSW5wdXRCYXNlKCkpO1xuICAgIHRoaXMuaXNWaXNpYmxlT3BlbiA9IHRydWU7XG4gIH1cbiAgLyoq57yW6L6RICovXG4gIGVkaXRTZWN0aW9uQnRuKGl0ZW0pIHtcbiAgICB0aGlzLmZvcm1FbnRpdHkgPSB0aGlzLmZiLmdyb3VwKG5ldyBDcmVhdGVPclVwZGF0ZVNlY3Rpb25zSW5wdXRCYXNlKCkpO1xuICAgIHRoaXMuZm9ybUVudGl0eS5wYXRjaFZhbHVlKHtcbiAgICAgIC4uLml0ZW0sXG4gICAgfSk7XG4gICAgdGhpcy5pc1Zpc2libGVPcGVuID0gdHJ1ZTtcbiAgfVxuXG4gIC8qKuWIoOmZpOadv+WdlyAqL1xuICBkZWxldGVmaWVsZChyb3cpIHtcbiAgICB0aGlzLmNvbmZpcm1hdGlvblxuICAgICAgLndhcm4ocm93LmRpc3BsYXlOYW1lLCB0aGlzLl9Mb2NhbGl6YXRpb25TZXJ2aWNlLmluc3RhbnQoYEFicFVpOjpJdGVtV2lsbEJlRGVsZXRlZE1lc3NhZ2VgKSlcbiAgICAgIC5zdWJzY3JpYmUoKHN0YXR1czogQ29uZmlybWF0aW9uLlN0YXR1cykgPT4ge1xuICAgICAgICBpZiAoc3RhdHVzID09ICdjb25maXJtJykge1xuICAgICAgICAgIHRoaXMuX1NlY3Rpb25BZG1pblNlcnZpY2VcbiAgICAgICAgICAgIC5kZWxldGUocm93LmlkKVxuICAgICAgICAgICAgLnBpcGUoZmluYWxpemUoKCkgPT4ge30pKVxuICAgICAgICAgICAgLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnRvYXN0ZXIuc3VjY2Vzcyh0aGlzLl9Mb2NhbGl6YXRpb25TZXJ2aWNlLmluc3RhbnQoYEFicFVpOjpEZWxldGVkU3VjY2Vzc2Z1bGx5YCkpO1xuICAgICAgICAgICAgICB0aGlzLmxpc3QuZ2V0KCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cbiAgLyoq5Yig6Zmk5p2h55uu57G75Z6LICovXG4gICAgZGVsZXRlRW50cnlUeXBlKHJvdykge1xuICAgIHRoaXMuY29uZmlybWF0aW9uXG4gICAgICAud2Fybihyb3cuZGlzcGxheU5hbWUsIHRoaXMuX0xvY2FsaXphdGlvblNlcnZpY2UuaW5zdGFudChgQWJwVWk6Okl0ZW1XaWxsQmVEZWxldGVkTWVzc2FnZWApKVxuICAgICAgLnN1YnNjcmliZSgoc3RhdHVzOiBDb25maXJtYXRpb24uU3RhdHVzKSA9PiB7XG4gICAgICAgIGlmIChzdGF0dXMgPT0gJ2NvbmZpcm0nKSB7XG4gICAgICAgICAgdGhpcy5fRW50cnlUeXBlQWRtaW5TZXJ2aWNlXG4gICAgICAgICAgICAuZGVsZXRlKHJvdy5pZClcbiAgICAgICAgICAgIC5waXBlKGZpbmFsaXplKCgpID0+IHt9KSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICAgICAgdGhpcy50b2FzdGVyLnN1Y2Nlc3ModGhpcy5fTG9jYWxpemF0aW9uU2VydmljZS5pbnN0YW50KGBBYnBVaTo6RGVsZXRlZFN1Y2Nlc3NmdWxseWApKTtcbiAgICAgICAgICAgICAgdGhpcy5saXN0LmdldCgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbn1cbiIsIjxhYnAtcGFnZSBbdGl0bGVdPVwiJ0Ntczo6U2VjdGlvbnMnIHwgYWJwTG9jYWxpemF0aW9uXCIgW3Rvb2xiYXJdPVwidHJ1ZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9ucy1wYWdlXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkIFwiID5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgcHgtMiBweS1zbS0yIGJvcmRlci1ib3R0b21cIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGFsaWduLWl0ZW1zLWVuZFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItMyBjb2wtM1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiPnt7J0Ntczo6SXNBY3RpdmUnIHwgYWJwTG9jYWxpemF0aW9ufX3vvJo8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tc2VsZWN0IGNvbC1hdXRvXCIgWyhuZ01vZGVsKV09XCJmaWx0ZXJzLmlzQWN0aXZlXCIgKGNoYW5nZSk9XCJzaXRlSWRDaGFuZ2UoKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gW3ZhbHVlXT1cIlwiPjwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gW3ZhbHVlXT1cInRydWVcIj57eydBYnBVaTo6WWVzJ3xhYnBMb2NhbGl6YXRpb259fTwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gW3ZhbHVlXT1cImZhbHNlXCI+e3snQWJwVWk6Ok5vJ3xhYnBMb2NhbGl6YXRpb259fTwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItMyBjb2wtM1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiPnt7J0FicFVpOjpTZWFyY2gnIHwgYWJwTG9jYWxpemF0aW9ufX3vvJo8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBbKG5nTW9kZWwpXT1cImZpbHRlcnMuZmlsdGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInQWJwVWk6OlNlYXJjaCcgfCBhYnBMb2NhbGl6YXRpb25cIiAvPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTMgY29sLTRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgcHgtM1wiIHR5cGU9XCJidXR0b25cIiBpZD1cImJ1dHRvbi1hZGRvbjJcIiAoY2xpY2spPVwibGlzdC5nZXQoKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtc2VhcmNoXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PiBcbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgbWItMFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBwLTBcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtcmVzcG9uc2l2ZSB0YWJsZS1maXhlZC1oZWFkZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5neC1kYXRhdGFibGUgY2xhc3M9XCJtYXRlcmlhbCBcIiBbcm93c109XCJkYXRhLml0ZW1zXCIgW2xpc3RdPVwibGlzdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY29sdW1uTW9kZV09XCJDb2x1bW5Nb2RlLmZvcmNlXCIgW2hlYWRlckhlaWdodF09XCI1MFwiIFtmb290ZXJIZWlnaHRdPVwiNTBcIiByb3dIZWlnaHQ9XCJhdXRvXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt2aXJ0dWFsaXphdGlvbl09XCJmYWxzZVwiIFtleHRlcm5hbFBhZ2luZ109XCJ0cnVlXCIgW2NvdW50XT1cImRhdGEudG90YWxDb3VudFwiIFtzY3JvbGxiYXJIXT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtbiBbbmFtZV09XCInQ21zOjpEaXNwbGF5TmFtZScgfCBhYnBMb2NhbGl6YXRpb25cIiBwcm9wPVwiZGlzcGxheU5hbWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIGxldC12YWx1ZT1cInZhbHVlXCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyB2YWx1ZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uIFtuYW1lXT1cIidDbXM6Ok5hbWUnIHwgYWJwTG9jYWxpemF0aW9uXCIgcHJvcD1cIm5hbWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIGxldC12YWx1ZT1cInZhbHVlXCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyB2YWx1ZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uIFtuYW1lXT1cIidDbXM6OlNlY3Rpb25UeXBlJyB8IGFicExvY2FsaXphdGlvblwiIHByb3A9XCJ0eXBlXCIgW3dpZHRoXT1cIjgwXCIgIFtzb3J0YWJsZV09XCJmYWxzZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbGV0LXZhbHVlPVwidmFsdWVcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7KCdDbXM6OkVudW06U2VjdGlvblR5cGU6JytfU2VjdGlvblR5cGVbdmFsdWVdKSB8IGFicExvY2FsaXphdGlvbn19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW4gW25hbWVdPVwiJ0Ntczo6SXNEZWZhdWx0JyB8IGFicExvY2FsaXphdGlvblwiIHByb3A9XCJpc0RlZmF1bHRcIiBbd2lkdGhdPVwiNjBcIiAgW3NvcnRhYmxlXT1cImZhbHNlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBsZXQtdmFsdWU9XCJ2YWx1ZVwiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtY2hlY2sgdGV4dC1zdWNjZXNzXCIgKm5nSWY9XCJ2YWx1ZVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtdGltZXMgdGV4dC1kYW5nZXJcIiAqbmdJZj1cIiF2YWx1ZVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtbiBbbmFtZV09XCInQ21zOjpJc0FjdGl2ZScgfCBhYnBMb2NhbGl6YXRpb25cIiBwcm9wPVwiaXNBY3RpdmVcIiBbd2lkdGhdPVwiNjBcIiAgW3NvcnRhYmxlXT1cImZhbHNlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBsZXQtdmFsdWU9XCJ2YWx1ZVwiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtY2hlY2sgdGV4dC1zdWNjZXNzXCIgKm5nSWY9XCJ2YWx1ZVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtdGltZXMgdGV4dC1kYW5nZXJcIiAqbmdJZj1cIiF2YWx1ZVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtbiBbbmFtZV09XCInQ21zOjpFbnRyeVR5cGUnIHwgYWJwTG9jYWxpemF0aW9uXCIgcHJvcD1cIlNpdGVJZFwiIFt3aWR0aF09XCIxMDBcIiAgW3NvcnRhYmxlXT1cImZhbHNlXCI+IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbGV0LXZhbHVlPVwidmFsdWVcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgbmdiRHJvcGRvd24gY29udGFpbmVyPVwiYm9keVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLWxpbmtcIiBuZ2JEcm9wZG93blRvZ2dsZSBpZD1cImRyb3Bkb3duQmFzaWMxXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3snQ21zOjpFbnRyeVR5cGUnIHwgYWJwTG9jYWxpemF0aW9ufX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBuZ2JEcm9wZG93bk1lbnUgYXJpYS1sYWJlbGxlZGJ5PVwiZHJvcGRvd25CYXNpYzFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIHJvdy5lbnRyeVR5cGVzO2xldCBpID1pbmRleFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgbmdiRHJvcGRvd25JdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW5cIiBbcm91dGVyTGlua109XCInL2Ntcy9hZG1pbi9zZWN0aW9ucy8nK3Jvdy5pZCsnL2VudHJ5LXR5cGVzLycraXRlbS5pZCsnL2VkaXQnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID57e2l0ZW0uZGlzcGxheU5hbWV9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tbGlnaHQgYnRuLXNtIHAtMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrLnN0b3ApPVwiZGVsZXRlRW50cnlUeXBlKGl0ZW0pXCI+PGkgY2xhc3M9XCJmYXMgZmEtdHJhc2ggcC1zbS0xXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJmb250LXNpemU6IDEycHg7XCIgcm9sZT1cImJ1dHRvblwiPjwvaT48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgbmdiRHJvcGRvd25JdGVtIFtyb3V0ZXJMaW5rXT1cIicvY21zL2FkbWluL3NlY3Rpb25zLycrcm93LmlkKycvZW50cnktdHlwZXMvY3JlYXRlJ1wiPjxpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZhcyBmYS1wbHVzLWNpcmNsZSBtZS0yXCI+PC9pPnt7J0Ntczo6TmV3JyB8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFicExvY2FsaXphdGlvbn19PC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtbiBbbmFtZV09XCInQ21zOjpDcmVhdGlvblRpbWUnIHwgYWJwTG9jYWxpemF0aW9uXCIgcHJvcD1cImNyZWF0aW9uVGltZVwiIFttaW5XaWR0aF09XCIxOTBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIGxldC12YWx1ZT1cInZhbHVlXCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyB2YWx1ZSB8IGRhdGUgOiAneXl5eS9NTS9kZCBoaDptbTpzcycgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtbiBbc29ydGFibGVdPVwiZmFsc2VcIiAgW25hbWVdPVwiJ0FicFVpOjpBY3Rpb25zJyB8IGFicExvY2FsaXphdGlvblwiICAgW2Zyb3plbkxlZnRdPVwidHJ1ZVwiIFt3aWR0aF09XCIxMTBcIiBbbWF4V2lkdGhdPVwiMTEwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBsZXQtdmFsdWU9XCJ2YWx1ZVwiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBuZ2JEcm9wZG93biBjb250YWluZXI9XCJib2R5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBidG4tc21cIiBuZ2JEcm9wZG93blRvZ2dsZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cIm1lLTEgZmEgZmEtY29nXCI+PC9pPiB7eydBYnBVaTo6QWN0aW9ucycgfCBhYnBMb2NhbGl6YXRpb259fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IG5nYkRyb3Bkb3duTWVudT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG5nYkRyb3Bkb3duSXRlbSAoY2xpY2spPVwiZWRpdFNlY3Rpb25CdG4ocm93KVwiPnt7J0FicFVpOjpFZGl0JyB8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFicExvY2FsaXphdGlvbn19PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBuZ2JEcm9wZG93bkl0ZW0gKGNsaWNrKT1cImRlbGV0ZWZpZWxkKHJvdylcIj57eydBYnBVaTo6RGVsZXRlJyB8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFicExvY2FsaXphdGlvbn19PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XG4gICAgICAgICAgICAgICAgICAgIDwvbmd4LWRhdGF0YWJsZT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvYWJwLXBhZ2U+XG48Y21zLWNyZWF0ZS1vci1lZGl0LXNlY3Rpb25zLW1vZGFsICAodmlzaWJsZUNoYW5nZSk9XCJ2aXNpYmxlQ2hhbmdlKCRldmVudClcIiBbZm9ybUVudGl0eV09XCJmb3JtRW50aXR5XCIgW3Zpc2libGVdPVwiaXNWaXNpYmxlT3BlblwiPjwvY21zLWNyZWF0ZS1vci1lZGl0LXNlY3Rpb25zLW1vZGFsPlxuPCEtLSA8YWJwLW1vZGFsIFsodmlzaWJsZSldPVwidmlzaWJsZU9wZW5cIiBbYnVzeV09XCJtb2RhbEJ1c3lcIiAodmlzaWJsZUNoYW5nZSk9XCJWaXNpYmxlQ2hhbmdlKCRldmVudClcIj5cbiAgICA8bmctdGVtcGxhdGUgI2FicEhlYWRlcj5cbiAgICAgICAgPGgzPnt7c2VsZWN0ZWQ/KCdBYnBVaTo6RWRpdCcgfCBhYnBMb2NhbGl6YXRpb24pOignQ21zOjpOZXcnIHwgYWJwTG9jYWxpemF0aW9uKX19PC9oMz5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSAjYWJwQm9keT5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNsb2FkZXJSZWY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXJcIj48aSBjbGFzcz1cImZhIGZhLXB1bHNlIGZhLXNwaW5uZXJcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+PC9kaXY+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjcmVhdGVPckVkaXRGb3JtOyBlbHNlIGxvYWRlclJlZlwiPlxuICAgICAgICAgICAgPGZvcm0gY2xhc3M9XCJzaXRlcy1tb2RhbC1mb3JtXCIgW2Zvcm1Hcm91cF09XCJjcmVhdGVPckVkaXRGb3JtXCIgKGtleWRvd24uZW50ZXIpPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIiBbY2xhc3NdPVwieyd3YXMtdmFsaWRhdGVkJzpmb3JtVmFsaWRhdGlvbn1cIiAgKHN1Ym1pdCk9XCJjcmVhdGVPckVkaXRTYXZlKClcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiAjY3JlYXRlT3JFZGl0TW9kYWxTdWJtaXRCdG4gc3R5bGU9XCJkaXNwbGF5OiBub25lXCI+PC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiPnt7J0Ntczo6RW50cnlUeXBlJyB8IGFicExvY2FsaXphdGlvbn19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgX3NlY3Rpb25UeXBlT3B0aW9ucztsZXQgaSA9aW5kZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLWNoZWNrLWlubGluZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgdHlwZT1cInJhZGlvXCIgW3ZhbHVlXT1cIml0ZW0udmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJyYWRpb2NoYW5nZSgpXCIgZm9ybUNvbnRyb2xOYW1lPVwidHlwZVwiIGlkPVwiZmxleFJhZGlvRGVmYXVsdHt7aX19XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIiBmb3I9XCJmbGV4UmFkaW9EZWZhdWx0e3tpfX1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdDbXM6OkVudW06U2VjdGlvblR5cGU6JytpdGVtLmtleSB8IGFicExvY2FsaXphdGlvbiB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIj57eydDbXM6OkRpc3BsYXlOYW1lJyB8IGFicExvY2FsaXphdGlvbn19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJkaXNwbGF5TmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoYmx1cik9XCJkaXNQbGF5TmFtZUlucHV0Qmx1cigkZXZlbnQpXCIgcGxhY2Vob2xkZXI9XCJcIiAvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIj57eydDbXM6Ok5hbWUnIHwgYWJwTG9jYWxpemF0aW9ufX08L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cIm5hbWVcIiBwbGFjZWhvbGRlcj1cIlwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWRhbmdlciBpbnZhbGlkLWZlZWRiYWNrXCIgKm5nSWY9XCJuYW1lSW5wdXQuZXJyb3JzPy5yZXBldGl0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7e25hbWVJbnB1dC5lcnJvcnM/LnJlcGV0aXRpb259fVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCI+e3snQ21zOjpSb3V0ZScgfCBhYnBMb2NhbGl6YXRpb259fSA8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cInJvdXRlXCIgcGxhY2Vob2xkZXI9XCJcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1kYW5nZXIgaW52YWxpZC1mZWVkYmFja1wiICpuZ0lmPVwicm91dGVJbnB1dC5lcnJvcnM/LnJlcGV0aXRpb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7cm91dGVJbnB1dC5lcnJvcnM/LnJlcGV0aXRpb259fVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPHNtYWxsIGNsYXNzPVwiZm9ybS10ZXh0IHRleHQtbXV0ZWQgZC1ibG9ja1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3snQ21zOjpSb3V0ZVRpcHMnIHwgYWJwTG9jYWxpemF0aW9ufX08YnI+XG4gICAgICAgICAgICAgICAgICAgICAgICAmbmJzcDsmbmJzcDtibG9nPGJyPlxuICAgICAgICAgICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7e3snYmxvZy97c2x1Z30nfX08YnI+XG4gICAgICAgICAgICAgICAgICAgICAgICAmbmJzcDsmbmJzcDt7eydibG9nL3twdWJsaXNoVGltZTp5eXl5fS97cHVibGlzaFRpbWU6TU19L3tzbHVnfSd9fVxuICAgICAgICAgICAgICAgICAgICA8L3NtYWxsPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIj57eydDbXM6OlRlbXBsYXRlJyB8IGFicExvY2FsaXphdGlvbn19IDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwidGVtcGxhdGVcIiBwbGFjZWhvbGRlcj1cIlwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDxzbWFsbCBjbGFzcz1cImZvcm0tdGV4dCB0ZXh0LW11dGVkIGQtYmxvY2tcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7XCJDbXM6OlRlbXBsYXRlVGlwc1wiIHwgYWJwTG9jYWxpemF0aW9ufX1cbiAgICAgICAgICAgICAgICAgICAgPC9zbWFsbD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLWNoZWNrLWlubGluZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIHR5cGU9XCJjaGVja2JveFwiIHZhbHVlPVwidHJ1ZVwiIGZvcm1Db250cm9sTmFtZT1cImlzRGVmYXVsdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJpc0RlZmF1bHRcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiIGZvcj1cImlzRGVmYXVsdFwiPiB7eydDbXM6OkRlZmF1bHQnIHwgYWJwTG9jYWxpemF0aW9ufX0gPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1jaGVjay1pbmxpbmVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiB0eXBlPVwiY2hlY2tib3hcIiB2YWx1ZT1cInRydWVcIiBmb3JtQ29udHJvbE5hbWU9XCJpc0FjdGl2ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJpc0FjdGl2ZVwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCIgZm9yPVwiaXNBY3RpdmVcIj4ge3snQ21zOjpJc0FjdGl2ZScgfCBhYnBMb2NhbGl6YXRpb259fTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9mb3JtPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSAjYWJwRm9vdGVyPlxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5XCIgYWJwQ2xvc2U+e3snQWJwVWk6OkNsb3NlJyB8IGFicExvY2FsaXphdGlvbn19PC9idXR0b24+XG4gICAgICAgIDxhYnAtYnV0dG9uIGljb25DbGFzcz1cImZhIGZhLWNoZWNrXCIgKGNsaWNrKT1cImNyZWF0ZU9yRWRpdE1vZGFsU3VibWl0QnRuLm5hdGl2ZUVsZW1lbnQuY2xpY2soKVwiPnt7J0FicFVpOjpTYXZlJyB8XG4gICAgICAgICAgICBhYnBMb2NhbGl6YXRpb259fTwvYWJwLWJ1dHRvbj5cbiAgICA8L25nLXRlbXBsYXRlPlxuPC9hYnAtbW9kYWw+IC0tPiJdfQ==
@@ -74,11 +74,11 @@ export class MatrixControlComponent {
74
74
  this.fieldNameControl.removeAt(index);
75
75
  }
76
76
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: MatrixControlComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
77
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.5", type: MatrixControlComponent, selector: "df-matrix-control", inputs: { fields: "fields", parentFiledName: "parentFiledName", selected: "selected", culture: "culture", entity: "entity" }, viewQueries: [{ propertyName: "submitclick", first: true, predicate: ["submitclick"], descendants: true, static: true }], ngImport: i0, template: "<form [formGroup]=\"_entity\">\n <div formGroupName=\"extraProperties\">\n <div class=\"mb-3\">\n <label class=\"form-label\" *ngIf=\"_fields.displayName\">{{ _fields.displayName }}</label>\n <div class=\"border p-2 rounded-2\">\n <div [formArrayName]=\"_fields.field.name\">\n <ng-container *ngFor=\"let item of fieldNameControl.controls;let i=index\">\n <div class=\"card mb-3 border \" [formGroupName]=\"i\">\n <div class=\"card-header d-flex align-items-center justify-content-between border-bottom pt-1\">\n <div>{{item.value.displayName}}</div>\n <button class=\"btn btn-sm btn-light p-0\" (click.stop)=\"deleteMatrixControl(i,item)\"><i\n class=\"fas fa-trash p-2\"></i></button>\n </div>\n <div class=\"card-body\">\n <ng-container *ngFor=\"let el of MatrixBlockTypesList;let il =index\">\n <ng-container *ngIf=\"el.name===item.value.matrixBlockTypeName\">\n <ng-container *ngFor=\"let elf of el.fields; let fi=index\">\n <ng-container *ngIf=\"item&&elf&&_culture\">\n <df-dynamic \n [fields]=\"{ field: elf,displayName:elf.displayName }\"\n [selected]=\"_selected ? _selected[i]?_selected[i][_parentFiledName][elf.name]:'': ''\"\n [parentFiledName]=\"'extraProperties'\" [culture]=\"_culture\" [entity]=\"item\"></df-dynamic>\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </div>\n </ng-container>\n </div>\n <div class=\"btn-group\" role=\"group\" aria-label=\"Basic example\">\n <ng-container *ngFor=\"let item of MatrixBlockTypesList;let i =index\">\n <button type=\"button\" class=\"btn btn-primary btn-sm\" (click.stop)=\"addMatrixControl(item)\"><i\n class=\"fas fa-plus me-1\"></i>{{item.displayName}}</button>\n </ng-container>\n </div>\n <small class=\"form-text text-muted d-block\" *ngIf=\"_fields.field.description\">{{_fields.field.description}}</small>\n </div>\n </div>\n </div>\n <button type=\"submit\" style=\"display: none\" #submitclick></button>\n</form>", styles: [""], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "directive", type: i3.StopPropagationDirective, selector: "[click.stop]", outputs: ["click.stop"] }, { kind: "directive", type: i4.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "component", type: i5.DynamicComponent, selector: "df-dynamic", inputs: ["selected", "type", "culture", "parentFiledName", "fields", "entity"] }] }); }
77
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.5", type: MatrixControlComponent, selector: "df-matrix-control", inputs: { fields: "fields", parentFiledName: "parentFiledName", selected: "selected", culture: "culture", entity: "entity" }, viewQueries: [{ propertyName: "submitclick", first: true, predicate: ["submitclick"], descendants: true, static: true }], ngImport: i0, template: "<form [formGroup]=\"_entity\">\n <div formGroupName=\"extraProperties\"> \n <div class=\"mb-3\">\n <label class=\"form-label\" *ngIf=\"_fields.displayName\">{{ _fields.displayName }}</label>\n <div [class]=\"fieldNameControl?.controls?.length>0?'border p-2 rounded-2':''\">\n <div [formArrayName]=\"_fields.field.name\">\n <ng-container *ngFor=\"let item of fieldNameControl.controls;let i=index\">\n <div class=\"card mb-3 border \" [formGroupName]=\"i\">\n <div class=\"card-header d-flex align-items-center justify-content-between border-bottom pt-1\">\n <div>{{item.value.displayName}}</div>\n <button class=\"btn btn-sm btn-light p-0\" (click.stop)=\"deleteMatrixControl(i,item)\"><i\n class=\"fas fa-trash p-2\"></i></button>\n </div>\n <div class=\"card-body\">\n <ng-container *ngFor=\"let el of MatrixBlockTypesList;let il =index\">\n <ng-container *ngIf=\"el.name===item.value.matrixBlockTypeName\">\n <ng-container *ngFor=\"let elf of el.fields; let fi=index\">\n <ng-container *ngIf=\"item&&elf&&_culture\">\n <df-dynamic \n [fields]=\"{ field: elf,displayName:elf.displayName }\"\n [selected]=\"_selected ? _selected[i]?_selected[i][_parentFiledName][elf.name]:'': ''\"\n [parentFiledName]=\"'extraProperties'\" [culture]=\"_culture\" [entity]=\"item\"></df-dynamic>\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </div>\n </ng-container>\n </div>\n <div class=\"btn-group\" role=\"group\" aria-label=\"Basic example\">\n <ng-container *ngFor=\"let item of MatrixBlockTypesList;let i =index\">\n <button type=\"button\" class=\"btn btn-primary btn-sm\" (click.stop)=\"addMatrixControl(item)\"><i\n class=\"fas fa-plus me-1\"></i>{{item.displayName}}</button>\n </ng-container>\n </div>\n <small class=\"form-text text-muted d-block\" *ngIf=\"_fields.field.description\">{{_fields.field.description}}</small>\n </div>\n </div>\n </div>\n <button type=\"submit\" style=\"display: none\" #submitclick></button>\n</form>", styles: [""], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "directive", type: i3.StopPropagationDirective, selector: "[click.stop]", outputs: ["click.stop"] }, { kind: "directive", type: i4.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "component", type: i5.DynamicComponent, selector: "df-dynamic", inputs: ["selected", "type", "culture", "parentFiledName", "fields", "entity"] }] }); }
78
78
  }
79
79
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: MatrixControlComponent, decorators: [{
80
80
  type: Component,
81
- args: [{ selector: 'df-matrix-control', template: "<form [formGroup]=\"_entity\">\n <div formGroupName=\"extraProperties\">\n <div class=\"mb-3\">\n <label class=\"form-label\" *ngIf=\"_fields.displayName\">{{ _fields.displayName }}</label>\n <div class=\"border p-2 rounded-2\">\n <div [formArrayName]=\"_fields.field.name\">\n <ng-container *ngFor=\"let item of fieldNameControl.controls;let i=index\">\n <div class=\"card mb-3 border \" [formGroupName]=\"i\">\n <div class=\"card-header d-flex align-items-center justify-content-between border-bottom pt-1\">\n <div>{{item.value.displayName}}</div>\n <button class=\"btn btn-sm btn-light p-0\" (click.stop)=\"deleteMatrixControl(i,item)\"><i\n class=\"fas fa-trash p-2\"></i></button>\n </div>\n <div class=\"card-body\">\n <ng-container *ngFor=\"let el of MatrixBlockTypesList;let il =index\">\n <ng-container *ngIf=\"el.name===item.value.matrixBlockTypeName\">\n <ng-container *ngFor=\"let elf of el.fields; let fi=index\">\n <ng-container *ngIf=\"item&&elf&&_culture\">\n <df-dynamic \n [fields]=\"{ field: elf,displayName:elf.displayName }\"\n [selected]=\"_selected ? _selected[i]?_selected[i][_parentFiledName][elf.name]:'': ''\"\n [parentFiledName]=\"'extraProperties'\" [culture]=\"_culture\" [entity]=\"item\"></df-dynamic>\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </div>\n </ng-container>\n </div>\n <div class=\"btn-group\" role=\"group\" aria-label=\"Basic example\">\n <ng-container *ngFor=\"let item of MatrixBlockTypesList;let i =index\">\n <button type=\"button\" class=\"btn btn-primary btn-sm\" (click.stop)=\"addMatrixControl(item)\"><i\n class=\"fas fa-plus me-1\"></i>{{item.displayName}}</button>\n </ng-container>\n </div>\n <small class=\"form-text text-muted d-block\" *ngIf=\"_fields.field.description\">{{_fields.field.description}}</small>\n </div>\n </div>\n </div>\n <button type=\"submit\" style=\"display: none\" #submitclick></button>\n</form>" }]
81
+ args: [{ selector: 'df-matrix-control', template: "<form [formGroup]=\"_entity\">\n <div formGroupName=\"extraProperties\"> \n <div class=\"mb-3\">\n <label class=\"form-label\" *ngIf=\"_fields.displayName\">{{ _fields.displayName }}</label>\n <div [class]=\"fieldNameControl?.controls?.length>0?'border p-2 rounded-2':''\">\n <div [formArrayName]=\"_fields.field.name\">\n <ng-container *ngFor=\"let item of fieldNameControl.controls;let i=index\">\n <div class=\"card mb-3 border \" [formGroupName]=\"i\">\n <div class=\"card-header d-flex align-items-center justify-content-between border-bottom pt-1\">\n <div>{{item.value.displayName}}</div>\n <button class=\"btn btn-sm btn-light p-0\" (click.stop)=\"deleteMatrixControl(i,item)\"><i\n class=\"fas fa-trash p-2\"></i></button>\n </div>\n <div class=\"card-body\">\n <ng-container *ngFor=\"let el of MatrixBlockTypesList;let il =index\">\n <ng-container *ngIf=\"el.name===item.value.matrixBlockTypeName\">\n <ng-container *ngFor=\"let elf of el.fields; let fi=index\">\n <ng-container *ngIf=\"item&&elf&&_culture\">\n <df-dynamic \n [fields]=\"{ field: elf,displayName:elf.displayName }\"\n [selected]=\"_selected ? _selected[i]?_selected[i][_parentFiledName][elf.name]:'': ''\"\n [parentFiledName]=\"'extraProperties'\" [culture]=\"_culture\" [entity]=\"item\"></df-dynamic>\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </div>\n </ng-container>\n </div>\n <div class=\"btn-group\" role=\"group\" aria-label=\"Basic example\">\n <ng-container *ngFor=\"let item of MatrixBlockTypesList;let i =index\">\n <button type=\"button\" class=\"btn btn-primary btn-sm\" (click.stop)=\"addMatrixControl(item)\"><i\n class=\"fas fa-plus me-1\"></i>{{item.displayName}}</button>\n </ng-container>\n </div>\n <small class=\"form-text text-muted d-block\" *ngIf=\"_fields.field.description\">{{_fields.field.description}}</small>\n </div>\n </div>\n </div>\n <button type=\"submit\" style=\"display: none\" #submitclick></button>\n</form>" }]
82
82
  }], ctorParameters: () => [{ type: i1.FormBuilder }], propDecorators: { fields: [{
83
83
  type: Input
84
84
  }], parentFiledName: [{
@@ -93,4 +93,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImpor
93
93
  type: ViewChild,
94
94
  args: ['submitclick', { static: true }]
95
95
  }] } });
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0cml4LWNvbnRyb2wuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21zL3NyYy9saWIvY29tcG9uZW50cy9keW5hbWljLWZvcm0vbWF0cml4L21hdHJpeC1jb250cm9sLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Ntcy9zcmMvbGliL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL21hdHJpeC9tYXRyaXgtY29udHJvbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBYyxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRyxPQUFPLEVBQTBCLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7OztBQU9oRixNQUFNLE9BQU8sc0JBQXNCO0lBQ2pDLFlBQW9CLEVBQWU7UUFBZixPQUFFLEdBQUYsRUFBRSxDQUFhO1FBRW5DLFlBQVk7UUFDWixZQUFPLEdBQVEsRUFBRSxDQUFDO1FBdUNWLFFBQUcsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQW9DeEMsVUFBVTtRQUNWLHlCQUFvQixHQUFVLEVBQUUsQ0FBQztJQS9FSyxDQUFDO0lBSXZDLElBQ1csTUFBTSxDQUFDLENBQU07UUFDdEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUM7SUFDbkIsQ0FBQztJQUlELElBQ1csZUFBZSxDQUFDLENBQU07UUFDL0IsSUFBSSxDQUFDLGdCQUFnQixHQUFHLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBR0QsSUFDVyxRQUFRLENBQUMsQ0FBTTtRQUN4QixJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBR0QsSUFDVyxPQUFPLENBQUMsQ0FB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O2tHQUF0QixzQkFBc0IsaVRDVG5DLHMzRkF5Q087OzJGRGhDTSxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0UsbUJBQW1CO2dGQVVsQixNQUFNO3NCQURoQixLQUFLO2dCQVFLLGVBQWU7c0JBRHpCLEtBQUs7Z0JBT0ssUUFBUTtzQkFEbEIsS0FBSztnQkFPSyxPQUFPO3NCQURqQixLQUFLO2dCQU9LLE1BQU07c0JBRGhCLEtBQUs7Z0JBUXNDLFdBQVc7c0JBQXRELFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3IgKi9cbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIGluamVjdCwgSW5wdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUFycmF5LCBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGYtbWF0cml4LWNvbnRyb2wnLFxuICB0ZW1wbGF0ZVVybDogJy4vbWF0cml4LWNvbnRyb2wuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tYXRyaXgtY29udHJvbC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBNYXRyaXhDb250cm9sQ29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIpIHt9XG5cbiAgLyoq5a2X5q616YWN572u5YiX6KGoICovXG4gIF9maWVsZHM6IGFueSA9ICcnO1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGZpZWxkcyh2OiBhbnkpIHtcbiAgICB0aGlzLl9maWVsZHMgPSB2O1xuICB9XG5cbiAgLyoq54i257qn5a2X5q615ZCN56ew77yM55So5LqO5Li66KGo5Y2V6K6+572u5o6n5Lu26LWL5YC8ICovXG4gIF9wYXJlbnRGaWxlZE5hbWU6IGFueTtcbiAgQElucHV0KClcbiAgcHVibGljIHNldCBwYXJlbnRGaWxlZE5hbWUodjogYW55KSB7XG4gICAgdGhpcy5fcGFyZW50RmlsZWROYW1lID0gdjtcbiAgfVxuICAvKirniLbnuqflrZfmrrXlkI3np7DvvIznlKjkuo7kuLrooajljZXorr7nva7mjqfku7botYvlgLwgKi9cbiAgX3NlbGVjdGVkOiBhbnk7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgc2VsZWN0ZWQodjogYW55KSB7XG4gICAgdGhpcy5fc2VsZWN0ZWQgPSB2O1xuICB9XG4gIC8qKuivreiogCAqL1xuICBfY3VsdHVyZTogYW55O1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGN1bHR1cmUodjogYW55KSB7XG4gICAgdGhpcy5fY3VsdHVyZSA9IHY7XG4gIH1cbiAgLyoq6KGo5Y2V5a6e5L2TICovXG4gIF9lbnRpdHk6IEZvcm1Hcm91cCB8IHVuZGVmaW5lZDtcbiAgQElucHV0KClcbiAgcHVibGljIHNldCBlbnRpdHkodjogYW55KSB7XG4gICAgdGhpcy5fZW50aXR5ID0gdjtcbiAgICBpZiAodikge1xuICAgICAgdGhpcy5kYXRhTG9hZGVkKCk7XG4gICAgfVxuICB9XG5cbiAgQFZpZXdDaGlsZCgnc3VibWl0Y2xpY2snLCB7IHN0YXRpYzogdHJ1ZSB9KSBzdWJtaXRjbGljazogRWxlbWVudFJlZjtcblxuICAvKiog6I635Y+W54i257qn5a2X5q615Luj6KGo55qE6KGo5Y2V57uEKi9cbiAgZXh0cmFQcm9wZXJ0aWVzOiBGb3JtR3JvdXAgfCB1bmRlZmluZWQ7XG5cbiAgcHJpdmF0ZSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICAvKirmlbDmja7liqDovb3lrozmiJAgKi9cbiAgYXN5bmMgZGF0YUxvYWRlZCgpIHtcbiAgICBpZiAodGhpcy5fZmllbGRzICYmIHRoaXMuX2VudGl0eSAmJiB0aGlzLl9wYXJlbnRGaWxlZE5hbWUpIHtcbiAgICAgIHRoaXMuZXh0cmFQcm9wZXJ0aWVzID0gdGhpcy5fZW50aXR5LmdldCh0aGlzLl9wYXJlbnRGaWxlZE5hbWUpIGFzIEZvcm1Hcm91cDtcbiAgICAgIGF3YWl0IHRoaXMuQWZ0ZXJJbml0KCk7XG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7IC8vIOaJi+WKqOinpuWPkeWPmOabtOajgOa1i1xuICAgICAgdGhpcy5zdWJtaXRjbGljaz8ubmF0aXZlRWxlbWVudD8uY2xpY2soKTtcbiAgICAgIGlmICh0aGlzLl9zZWxlY3RlZCkgdGhpcy5maWVsZE5hbWVDb250cm9sLnBhdGNoVmFsdWUodGhpcy5fc2VsZWN0ZWQpO1xuICAgICAgdGhpcy5fc2VsZWN0ZWQ9Jyc7XG4gICAgICBcbiAgICB9XG4gIH1cbiBcbiAgZm9ybUNvbmZpZ3VyYXRpb246IGFueTtcbiAgLyoq6I635Y+W6KGo5qC85a2X5q615Luj6KGo55qE5o6n5Lu2ICovXG4gIGZpZWxkTmFtZUNvbnRyb2w6IEZvcm1BcnJheSB8IHVuZGVmaW5lZDtcblxuICBBZnRlckluaXQoKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3RzKSA9PiB7XG4gICAgICBsZXQgZm9ybUNvbmZpZ3VyYXRpb24gPSB0aGlzLl9maWVsZHMuZmllbGQuZm9ybUNvbmZpZ3VyYXRpb247XG4gICAgICBsZXQgbmV3QXJyYXlHcm91cCA9IHRoaXMuZmIuYXJyYXkoW10pO1xuICAgICAgdGhpcy5leHRyYVByb3BlcnRpZXMuc2V0Q29udHJvbCh0aGlzLl9maWVsZHMuZmllbGQubmFtZSwgbmV3QXJyYXlHcm91cCk7XG4gICAgICB0aGlzLmZpZWxkTmFtZUNvbnRyb2wgPSB0aGlzLmV4dHJhUHJvcGVydGllcy5nZXQodGhpcy5fZmllbGRzLmZpZWxkLm5hbWUpIGFzIEZvcm1BcnJheTtcbiAgICAgIGlmICh0aGlzLl9zZWxlY3RlZCkge1xuICAgICAgICB0aGlzLl9zZWxlY3RlZC5mb3JFYWNoKGVsID0+IHtcbiAgICAgICAgICB0aGlzLmFkZE1hdHJpeENvbnRyb2woXG4gICAgICAgICAgICBmb3JtQ29uZmlndXJhdGlvbi5NYXRyaXhCbG9ja1R5cGVzLmZpbmQoaXRlbSA9PiBpdGVtLm5hbWUgPT0gZWwubWF0cml4QmxvY2tUeXBlTmFtZSlcbiAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHRoaXMuTWF0cml4QmxvY2tUeXBlc0xpc3QgPSBmb3JtQ29uZmlndXJhdGlvbi5NYXRyaXhCbG9ja1R5cGVzO1xuICAgICAgcmVzb2x2ZSh0cnVlKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKuefqemYteWIl+ihqCAqL1xuICBNYXRyaXhCbG9ja1R5cGVzTGlzdDogYW55W10gPSBbXTtcblxuICAvKirlop7liqDmjIflrprnn6npmLXmjqfku7bpobkgKi9cbiAgYWRkTWF0cml4Q29udHJvbChpdGVtKSB7XG4gICAgdGhpcy5maWVsZE5hbWVDb250cm9sLnB1c2goXG4gICAgICBuZXcgRm9ybUdyb3VwKHtcbiAgICAgICAgZXh0cmFQcm9wZXJ0aWVzOiBuZXcgRm9ybUdyb3VwKHt9KSxcbiAgICAgICAgbWF0cml4QmxvY2tUeXBlTmFtZTogbmV3IEZvcm1Db250cm9sKGl0ZW0ubmFtZSksXG4gICAgICAgIGRpc3BsYXlOYW1lOiBuZXcgRm9ybUNvbnRyb2woaXRlbS5kaXNwbGF5TmFtZSksXG4gICAgICB9KVxuICAgICk7XG4gIH1cbiAgLyoq5Yig6Zmk55+p6Zi15o6n5Lu2ICovXG4gIGRlbGV0ZU1hdHJpeENvbnRyb2woaW5kZXgsIGl0ZW0pIHtcbiAgICB0aGlzLmZpZWxkTmFtZUNvbnRyb2wucmVtb3ZlQXQoaW5kZXgpO1xuICB9XG59XG4iLCI8Zm9ybSBbZm9ybUdyb3VwXT1cIl9lbnRpdHlcIj5cbiAgICA8ZGl2IGZvcm1Hcm91cE5hbWU9XCJleHRyYVByb3BlcnRpZXNcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiAqbmdJZj1cIl9maWVsZHMuZGlzcGxheU5hbWVcIj57eyBfZmllbGRzLmRpc3BsYXlOYW1lIH19PC9sYWJlbD5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXIgcC0yIHJvdW5kZWQtMlwiPlxuICAgICAgICAgICAgICAgIDxkaXYgW2Zvcm1BcnJheU5hbWVdPVwiX2ZpZWxkcy5maWVsZC5uYW1lXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZmllbGROYW1lQ29udHJvbC5jb250cm9scztsZXQgaT1pbmRleFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgbWItMyBib3JkZXIgXCIgW2Zvcm1Hcm91cE5hbWVdPVwiaVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlciBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGJvcmRlci1ib3R0b20gcHQtMVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2Pnt7aXRlbS52YWx1ZS5kaXNwbGF5TmFtZX19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1saWdodCBwLTBcIiAoY2xpY2suc3RvcCk9XCJkZWxldGVNYXRyaXhDb250cm9sKGksaXRlbSlcIj48aVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmFzIGZhLXRyYXNoIHAtMlwiPjwvaT48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGVsIG9mIE1hdHJpeEJsb2NrVHlwZXNMaXN0O2xldCBpbCA9aW5kZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJlbC5uYW1lPT09aXRlbS52YWx1ZS5tYXRyaXhCbG9ja1R5cGVOYW1lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZWxmIG9mIGVsLmZpZWxkczsgbGV0IGZpPWluZGV4XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtJiZlbGYmJl9jdWx0dXJlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGYtZHluYW1pYyBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmllbGRzXT1cInsgZmllbGQ6IGVsZixkaXNwbGF5TmFtZTplbGYuZGlzcGxheU5hbWUgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGVkXT1cIl9zZWxlY3RlZCA/IF9zZWxlY3RlZFtpXT9fc2VsZWN0ZWRbaV1bX3BhcmVudEZpbGVkTmFtZV1bZWxmLm5hbWVdOicnOiAnJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BhcmVudEZpbGVkTmFtZV09XCInZXh0cmFQcm9wZXJ0aWVzJ1wiIFtjdWx0dXJlXT1cIl9jdWx0dXJlXCIgW2VudGl0eV09XCJpdGVtXCI+PC9kZi1keW5hbWljPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnRuLWdyb3VwXCIgcm9sZT1cImdyb3VwXCIgYXJpYS1sYWJlbD1cIkJhc2ljIGV4YW1wbGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBNYXRyaXhCbG9ja1R5cGVzTGlzdDtsZXQgaSA9aW5kZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zbVwiIChjbGljay5zdG9wKT1cImFkZE1hdHJpeENvbnRyb2woaXRlbSlcIj48aVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZhcyBmYS1wbHVzIG1lLTFcIj48L2k+e3tpdGVtLmRpc3BsYXlOYW1lfX08L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPHNtYWxsIGNsYXNzPVwiZm9ybS10ZXh0IHRleHQtbXV0ZWQgZC1ibG9ja1wiICpuZ0lmPVwiX2ZpZWxkcy5maWVsZC5kZXNjcmlwdGlvblwiPnt7X2ZpZWxkcy5maWVsZC5kZXNjcmlwdGlvbn19PC9zbWFsbD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBzdHlsZT1cImRpc3BsYXk6IG5vbmVcIiAjc3VibWl0Y2xpY2s+PC9idXR0b24+XG48L2Zvcm0+Il19
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0cml4LWNvbnRyb2wuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21zL3NyYy9saWIvY29tcG9uZW50cy9keW5hbWljLWZvcm0vbWF0cml4L21hdHJpeC1jb250cm9sLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Ntcy9zcmMvbGliL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL21hdHJpeC9tYXRyaXgtY29udHJvbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBYyxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRyxPQUFPLEVBQTBCLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7OztBQU9oRixNQUFNLE9BQU8sc0JBQXNCO0lBQ2pDLFlBQW9CLEVBQWU7UUFBZixPQUFFLEdBQUYsRUFBRSxDQUFhO1FBRW5DLFlBQVk7UUFDWixZQUFPLEdBQVEsRUFBRSxDQUFDO1FBdUNWLFFBQUcsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQW9DeEMsVUFBVTtRQUNWLHlCQUFvQixHQUFVLEVBQUUsQ0FBQztJQS9FSyxDQUFDO0lBSXZDLElBQ1csTUFBTSxDQUFDLENBQU07UUFDdEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUM7SUFDbkIsQ0FBQztJQUlELElBQ1csZUFBZSxDQUFDLENBQU07UUFDL0IsSUFBSSxDQUFDLGdCQUFnQixHQUFHLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBR0QsSUFDVyxRQUFRLENBQUMsQ0FBTTtRQUN4QixJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBR0QsSUFDVyxPQUFPLENBQUMsQ0FB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O2tHQUF0QixzQkFBc0IsaVRDVG5DLHE2RkF5Q087OzJGRGhDTSxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0UsbUJBQW1CO2dGQVVsQixNQUFNO3NCQURoQixLQUFLO2dCQVFLLGVBQWU7c0JBRHpCLEtBQUs7Z0JBT0ssUUFBUTtzQkFEbEIsS0FBSztnQkFPSyxPQUFPO3NCQURqQixLQUFLO2dCQU9LLE1BQU07c0JBRGhCLEtBQUs7Z0JBUXNDLFdBQVc7c0JBQXRELFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3IgKi9cbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIGluamVjdCwgSW5wdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUFycmF5LCBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGYtbWF0cml4LWNvbnRyb2wnLFxuICB0ZW1wbGF0ZVVybDogJy4vbWF0cml4LWNvbnRyb2wuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tYXRyaXgtY29udHJvbC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBNYXRyaXhDb250cm9sQ29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIpIHt9XG5cbiAgLyoq5a2X5q616YWN572u5YiX6KGoICovXG4gIF9maWVsZHM6IGFueSA9ICcnO1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGZpZWxkcyh2OiBhbnkpIHtcbiAgICB0aGlzLl9maWVsZHMgPSB2O1xuICB9XG5cbiAgLyoq54i257qn5a2X5q615ZCN56ew77yM55So5LqO5Li66KGo5Y2V6K6+572u5o6n5Lu26LWL5YC8ICovXG4gIF9wYXJlbnRGaWxlZE5hbWU6IGFueTtcbiAgQElucHV0KClcbiAgcHVibGljIHNldCBwYXJlbnRGaWxlZE5hbWUodjogYW55KSB7XG4gICAgdGhpcy5fcGFyZW50RmlsZWROYW1lID0gdjtcbiAgfVxuICAvKirniLbnuqflrZfmrrXlkI3np7DvvIznlKjkuo7kuLrooajljZXorr7nva7mjqfku7botYvlgLwgKi9cbiAgX3NlbGVjdGVkOiBhbnk7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgc2VsZWN0ZWQodjogYW55KSB7XG4gICAgdGhpcy5fc2VsZWN0ZWQgPSB2O1xuICB9XG4gIC8qKuivreiogCAqL1xuICBfY3VsdHVyZTogYW55O1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGN1bHR1cmUodjogYW55KSB7XG4gICAgdGhpcy5fY3VsdHVyZSA9IHY7XG4gIH1cbiAgLyoq6KGo5Y2V5a6e5L2TICovXG4gIF9lbnRpdHk6IEZvcm1Hcm91cCB8IHVuZGVmaW5lZDtcbiAgQElucHV0KClcbiAgcHVibGljIHNldCBlbnRpdHkodjogYW55KSB7XG4gICAgdGhpcy5fZW50aXR5ID0gdjtcbiAgICBpZiAodikge1xuICAgICAgdGhpcy5kYXRhTG9hZGVkKCk7XG4gICAgfVxuICB9XG5cbiAgQFZpZXdDaGlsZCgnc3VibWl0Y2xpY2snLCB7IHN0YXRpYzogdHJ1ZSB9KSBzdWJtaXRjbGljazogRWxlbWVudFJlZjtcblxuICAvKiog6I635Y+W54i257qn5a2X5q615Luj6KGo55qE6KGo5Y2V57uEKi9cbiAgZXh0cmFQcm9wZXJ0aWVzOiBGb3JtR3JvdXAgfCB1bmRlZmluZWQ7XG5cbiAgcHJpdmF0ZSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICAvKirmlbDmja7liqDovb3lrozmiJAgKi9cbiAgYXN5bmMgZGF0YUxvYWRlZCgpIHtcbiAgICBpZiAodGhpcy5fZmllbGRzICYmIHRoaXMuX2VudGl0eSAmJiB0aGlzLl9wYXJlbnRGaWxlZE5hbWUpIHtcbiAgICAgIHRoaXMuZXh0cmFQcm9wZXJ0aWVzID0gdGhpcy5fZW50aXR5LmdldCh0aGlzLl9wYXJlbnRGaWxlZE5hbWUpIGFzIEZvcm1Hcm91cDtcbiAgICAgIGF3YWl0IHRoaXMuQWZ0ZXJJbml0KCk7XG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7IC8vIOaJi+WKqOinpuWPkeWPmOabtOajgOa1i1xuICAgICAgdGhpcy5zdWJtaXRjbGljaz8ubmF0aXZlRWxlbWVudD8uY2xpY2soKTtcbiAgICAgIGlmICh0aGlzLl9zZWxlY3RlZCkgdGhpcy5maWVsZE5hbWVDb250cm9sLnBhdGNoVmFsdWUodGhpcy5fc2VsZWN0ZWQpO1xuICAgICAgdGhpcy5fc2VsZWN0ZWQ9Jyc7XG4gICAgICBcbiAgICB9XG4gIH1cbiBcbiAgZm9ybUNvbmZpZ3VyYXRpb246IGFueTtcbiAgLyoq6I635Y+W6KGo5qC85a2X5q615Luj6KGo55qE5o6n5Lu2ICovXG4gIGZpZWxkTmFtZUNvbnRyb2w6IEZvcm1BcnJheSB8IHVuZGVmaW5lZDtcblxuICBBZnRlckluaXQoKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3RzKSA9PiB7XG4gICAgICBsZXQgZm9ybUNvbmZpZ3VyYXRpb24gPSB0aGlzLl9maWVsZHMuZmllbGQuZm9ybUNvbmZpZ3VyYXRpb247XG4gICAgICBsZXQgbmV3QXJyYXlHcm91cCA9IHRoaXMuZmIuYXJyYXkoW10pO1xuICAgICAgdGhpcy5leHRyYVByb3BlcnRpZXMuc2V0Q29udHJvbCh0aGlzLl9maWVsZHMuZmllbGQubmFtZSwgbmV3QXJyYXlHcm91cCk7XG4gICAgICB0aGlzLmZpZWxkTmFtZUNvbnRyb2wgPSB0aGlzLmV4dHJhUHJvcGVydGllcy5nZXQodGhpcy5fZmllbGRzLmZpZWxkLm5hbWUpIGFzIEZvcm1BcnJheTtcbiAgICAgIGlmICh0aGlzLl9zZWxlY3RlZCkge1xuICAgICAgICB0aGlzLl9zZWxlY3RlZC5mb3JFYWNoKGVsID0+IHtcbiAgICAgICAgICB0aGlzLmFkZE1hdHJpeENvbnRyb2woXG4gICAgICAgICAgICBmb3JtQ29uZmlndXJhdGlvbi5NYXRyaXhCbG9ja1R5cGVzLmZpbmQoaXRlbSA9PiBpdGVtLm5hbWUgPT0gZWwubWF0cml4QmxvY2tUeXBlTmFtZSlcbiAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHRoaXMuTWF0cml4QmxvY2tUeXBlc0xpc3QgPSBmb3JtQ29uZmlndXJhdGlvbi5NYXRyaXhCbG9ja1R5cGVzO1xuICAgICAgcmVzb2x2ZSh0cnVlKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKuefqemYteWIl+ihqCAqL1xuICBNYXRyaXhCbG9ja1R5cGVzTGlzdDogYW55W10gPSBbXTtcblxuICAvKirlop7liqDmjIflrprnn6npmLXmjqfku7bpobkgKi9cbiAgYWRkTWF0cml4Q29udHJvbChpdGVtKSB7XG4gICAgdGhpcy5maWVsZE5hbWVDb250cm9sLnB1c2goXG4gICAgICBuZXcgRm9ybUdyb3VwKHtcbiAgICAgICAgZXh0cmFQcm9wZXJ0aWVzOiBuZXcgRm9ybUdyb3VwKHt9KSxcbiAgICAgICAgbWF0cml4QmxvY2tUeXBlTmFtZTogbmV3IEZvcm1Db250cm9sKGl0ZW0ubmFtZSksXG4gICAgICAgIGRpc3BsYXlOYW1lOiBuZXcgRm9ybUNvbnRyb2woaXRlbS5kaXNwbGF5TmFtZSksXG4gICAgICB9KVxuICAgICk7XG4gIH1cbiAgLyoq5Yig6Zmk55+p6Zi15o6n5Lu2ICovXG4gIGRlbGV0ZU1hdHJpeENvbnRyb2woaW5kZXgsIGl0ZW0pIHtcbiAgICB0aGlzLmZpZWxkTmFtZUNvbnRyb2wucmVtb3ZlQXQoaW5kZXgpO1xuICB9XG59XG4iLCI8Zm9ybSBbZm9ybUdyb3VwXT1cIl9lbnRpdHlcIj5cbiAgICA8ZGl2IGZvcm1Hcm91cE5hbWU9XCJleHRyYVByb3BlcnRpZXNcIj4gICBcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiAqbmdJZj1cIl9maWVsZHMuZGlzcGxheU5hbWVcIj57eyBfZmllbGRzLmRpc3BsYXlOYW1lIH19PC9sYWJlbD5cbiAgICAgICAgICAgIDxkaXYgW2NsYXNzXT1cImZpZWxkTmFtZUNvbnRyb2w/LmNvbnRyb2xzPy5sZW5ndGg+MD8nYm9yZGVyIHAtMiByb3VuZGVkLTInOicnXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBbZm9ybUFycmF5TmFtZV09XCJfZmllbGRzLmZpZWxkLm5hbWVcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBmaWVsZE5hbWVDb250cm9sLmNvbnRyb2xzO2xldCBpPWluZGV4XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZCBtYi0zIGJvcmRlciBcIiBbZm9ybUdyb3VwTmFtZV09XCJpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW4gYm9yZGVyLWJvdHRvbSBwdC0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+e3tpdGVtLnZhbHVlLmRpc3BsYXlOYW1lfX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tc20gYnRuLWxpZ2h0IHAtMFwiIChjbGljay5zdG9wKT1cImRlbGV0ZU1hdHJpeENvbnRyb2woaSxpdGVtKVwiPjxpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmYXMgZmEtdHJhc2ggcC0yXCI+PC9pPjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZWwgb2YgTWF0cml4QmxvY2tUeXBlc0xpc3Q7bGV0IGlsID1pbmRleFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImVsLm5hbWU9PT1pdGVtLnZhbHVlLm1hdHJpeEJsb2NrVHlwZU5hbWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBlbGYgb2YgZWwuZmllbGRzOyBsZXQgZmk9aW5kZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0mJmVsZiYmX2N1bHR1cmVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZi1keW5hbWljIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmaWVsZHNdPVwieyBmaWVsZDogZWxmLGRpc3BsYXlOYW1lOmVsZi5kaXNwbGF5TmFtZSB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2VsZWN0ZWRdPVwiX3NlbGVjdGVkID8gX3NlbGVjdGVkW2ldP19zZWxlY3RlZFtpXVtfcGFyZW50RmlsZWROYW1lXVtlbGYubmFtZV06Jyc6ICcnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGFyZW50RmlsZWROYW1lXT1cIidleHRyYVByb3BlcnRpZXMnXCIgW2N1bHR1cmVdPVwiX2N1bHR1cmVcIiBbZW50aXR5XT1cIml0ZW1cIj48L2RmLWR5bmFtaWM+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJidG4tZ3JvdXBcIiByb2xlPVwiZ3JvdXBcIiBhcmlhLWxhYmVsPVwiQmFzaWMgZXhhbXBsZVwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIE1hdHJpeEJsb2NrVHlwZXNMaXN0O2xldCBpID1pbmRleFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtXCIgKGNsaWNrLnN0b3ApPVwiYWRkTWF0cml4Q29udHJvbChpdGVtKVwiPjxpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmFzIGZhLXBsdXMgbWUtMVwiPjwvaT57e2l0ZW0uZGlzcGxheU5hbWV9fTwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8c21hbGwgY2xhc3M9XCJmb3JtLXRleHQgdGV4dC1tdXRlZCBkLWJsb2NrXCIgKm5nSWY9XCJfZmllbGRzLmZpZWxkLmRlc2NyaXB0aW9uXCI+e3tfZmllbGRzLmZpZWxkLmRlc2NyaXB0aW9ufX08L3NtYWxsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIHN0eWxlPVwiZGlzcGxheTogbm9uZVwiICNzdWJtaXRjbGljaz48L2J1dHRvbj5cbjwvZm9ybT4iXX0=
@@ -19,13 +19,13 @@ export const Fields_Entity_Props = EntityProp.createMany([
19
19
  type: "string" /* ePropType.String */,
20
20
  name: 'formControlName',
21
21
  displayName: 'Cms::FormControlName',
22
- sortable: true,
22
+ sortable: false,
23
23
  },
24
24
  {
25
25
  type: "string" /* ePropType.String */,
26
26
  name: 'groupName',
27
27
  displayName: 'Cms::Group',
28
- sortable: true,
28
+ sortable: false,
29
29
  },
30
30
  {
31
31
  type: "datetime" /* ePropType.DateTime */,
@@ -50,4 +50,4 @@ export const Fields_Entity_Props = EntityProp.createMany([
50
50
  // },
51
51
  // },
52
52
  // ]);
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtZGVmYXVsdC1lbnRpdHktcHJvcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvc3JjL2xpYi9yZXNvbHZlcnMvdGFibGUtZGVmYXVsdC1lbnRpdHktcHJvcHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLCtCQUErQixDQUFDO0FBSXRFOztFQUVFO0FBQ0YsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsVUFBVSxDQUFDLFVBQVUsQ0FBTTtJQUMxRDtRQUNJLElBQUksaUNBQWtCO1FBQ3RCLElBQUksRUFBRSxhQUFhO1FBQ25CLFdBQVcsRUFBRSxrQkFBa0I7UUFDL0IsUUFBUSxFQUFFLElBQUk7S0FDakI7SUFDRDtRQUNJLElBQUksaUNBQWtCO1FBQ3RCLElBQUksRUFBRSxNQUFNO1FBQ1osV0FBVyxFQUFFLFdBQVc7UUFDeEIsUUFBUSxFQUFFLElBQUk7S0FDakI7SUFDRDtRQUNJLElBQUksaUNBQWtCO1FBQ3RCLElBQUksRUFBRSxpQkFBaUI7UUFDdkIsV0FBVyxFQUFFLHNCQUFzQjtRQUNuQyxRQUFRLEVBQUUsSUFBSTtLQUNqQjtJQUNEO1FBQ0ksSUFBSSxpQ0FBa0I7UUFDdEIsSUFBSSxFQUFFLFdBQVc7UUFDakIsV0FBVyxFQUFFLFlBQVk7UUFDekIsUUFBUSxFQUFFLElBQUk7S0FDakI7SUFDRDtRQUNJLElBQUkscUNBQW9CO1FBQ3hCLElBQUksRUFBRSxjQUFjO1FBQ3BCLFdBQVcsRUFBRSxtQkFBbUI7UUFDaEMsUUFBUSxFQUFFLElBQUk7S0FDakI7Q0FDSixDQUFDLENBQUE7QUFNRixrQkFBa0I7QUFDbEIsa0VBQWtFO0FBQ2xFLFFBQVE7QUFDUixrQ0FBa0M7QUFDbEMsNEJBQTRCO0FBQzVCLGtEQUFrRDtBQUNsRCwwQkFBMEI7QUFDMUIsNkNBQTZDO0FBQzdDLHVKQUF1SjtBQUN2SixpQ0FBaUM7QUFDakMsZ0JBQWdCO0FBQ2hCLDRCQUE0QjtBQUM1Qix5Q0FBeUM7QUFFekMsYUFBYTtBQUNiLFNBQVM7QUFFVCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW50aXR5UHJvcCwgZVByb3BUeXBlIH0gZnJvbSAnQGFicC9uZy5jb21wb25lbnRzL2V4dGVuc2libGUnO1xyXG5cclxuXHJcblxyXG4vKipcclxuICAgIFtFQ21zQ29tcG9uZW50LkZpZWxkc106IEZpZWxkc19FbnRpdHlfUHJvcHMsXHJcbiovXHJcbmV4cG9ydCBjb25zdCBGaWVsZHNfRW50aXR5X1Byb3BzID0gRW50aXR5UHJvcC5jcmVhdGVNYW55PGFueT4oW1xyXG4gICAge1xyXG4gICAgICAgIHR5cGU6IGVQcm9wVHlwZS5TdHJpbmcsXHJcbiAgICAgICAgbmFtZTogJ2Rpc3BsYXlOYW1lJyxcclxuICAgICAgICBkaXNwbGF5TmFtZTogJ0Ntczo6RGlzcGxheU5hbWUnLFxyXG4gICAgICAgIHNvcnRhYmxlOiB0cnVlLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICB0eXBlOiBlUHJvcFR5cGUuU3RyaW5nLFxyXG4gICAgICAgIG5hbWU6ICduYW1lJyxcclxuICAgICAgICBkaXNwbGF5TmFtZTogJ0Ntczo6TmFtZScsXHJcbiAgICAgICAgc29ydGFibGU6IHRydWUsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIHR5cGU6IGVQcm9wVHlwZS5TdHJpbmcsXHJcbiAgICAgICAgbmFtZTogJ2Zvcm1Db250cm9sTmFtZScsXHJcbiAgICAgICAgZGlzcGxheU5hbWU6ICdDbXM6OkZvcm1Db250cm9sTmFtZScsXHJcbiAgICAgICAgc29ydGFibGU6IHRydWUsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIHR5cGU6IGVQcm9wVHlwZS5TdHJpbmcsXHJcbiAgICAgICAgbmFtZTogJ2dyb3VwTmFtZScsXHJcbiAgICAgICAgZGlzcGxheU5hbWU6ICdDbXM6Okdyb3VwJyxcclxuICAgICAgICBzb3J0YWJsZTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgdHlwZTogZVByb3BUeXBlLkRhdGVUaW1lLFxyXG4gICAgICAgIG5hbWU6ICdjcmVhdGlvblRpbWUnLFxyXG4gICAgICAgIGRpc3BsYXlOYW1lOiAnQ21zOjpDcmVhdGlvblRpbWUnLFxyXG4gICAgICAgIHNvcnRhYmxlOiB0cnVlLFxyXG4gICAgfSxcclxuXSlcclxuXHJcblxyXG5cclxuXHJcblxyXG4vLyBQYWdlTmFtZS5HdWlkZXNcclxuLy8gZXhwb3J0IGNvbnN0IEd1aWRlc19FbnRpdHlfUHJvcHMgPSBFbnRpdHlQcm9wLmNyZWF0ZU1hbnk8YW55PihbXHJcbi8vICAgICB7XHJcbi8vICAgICAgICAgdHlwZTogZVByb3BUeXBlLlN0cmluZyxcclxuLy8gICAgICAgICBuYW1lOiAnZnVsbE5hbWUnLFxyXG4vLyAgICAgICAgIGRpc3BsYXlOYW1lOiAnQWJwVGVuYW50TWFuYWdlbWVudDo65YWo56ewJyxcclxuLy8gICAgICAgICBzb3J0YWJsZTogdHJ1ZSxcclxuLy8gICAgICAgICAvLyB2YWx1ZVJlc29sdmVyOiAoZGF0YTogYW55KSA9PiB7XHJcbi8vICAgICAgICAgLy8gICAgIGxldCBzc3MgPSBgPGEgaHJlZj1cIi9ndWlkZXMvJHtkYXRhLnJlY29yZC5pZH1cIiBjbGFzcz1cInVuZGVybGluZS1hbmltYXRlXCIgdGl0bGU9XCIke2RhdGEucmVjb3JkLmZ1bGxOYW1lfVwiPiR7ZGF0YS5yZWNvcmQuZnVsbE5hbWV9PC9hPmBcclxuLy8gICAgICAgICAvLyAgICAgcmV0dXJuIG9mKHNzcyk7XHJcbi8vICAgICAgICAgLy8gfSxcclxuLy8gICAgICAgICBhY3Rpb246IGRhdGEgPT4ge1xyXG4vLyAgICAgICAgICAgICAvL0VudHJpZXNDb21wb25lbnTlr7nlupTnmoTlt6XlhbfmoI/pobXpnaJcclxuXHJcbi8vICAgICAgICAgfSxcclxuLy8gICAgIH0sXHJcblxyXG4vLyBdKTtcclxuIl19
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtZGVmYXVsdC1lbnRpdHktcHJvcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvc3JjL2xpYi9yZXNvbHZlcnMvdGFibGUtZGVmYXVsdC1lbnRpdHktcHJvcHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLCtCQUErQixDQUFDO0FBSXRFOztFQUVFO0FBQ0YsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsVUFBVSxDQUFDLFVBQVUsQ0FBTTtJQUMxRDtRQUNJLElBQUksaUNBQWtCO1FBQ3RCLElBQUksRUFBRSxhQUFhO1FBQ25CLFdBQVcsRUFBRSxrQkFBa0I7UUFDL0IsUUFBUSxFQUFFLElBQUk7S0FDakI7SUFDRDtRQUNJLElBQUksaUNBQWtCO1FBQ3RCLElBQUksRUFBRSxNQUFNO1FBQ1osV0FBVyxFQUFFLFdBQVc7UUFDeEIsUUFBUSxFQUFFLElBQUk7S0FDakI7SUFDRDtRQUNJLElBQUksaUNBQWtCO1FBQ3RCLElBQUksRUFBRSxpQkFBaUI7UUFDdkIsV0FBVyxFQUFFLHNCQUFzQjtRQUNuQyxRQUFRLEVBQUUsS0FBSztLQUNsQjtJQUNEO1FBQ0ksSUFBSSxpQ0FBa0I7UUFDdEIsSUFBSSxFQUFFLFdBQVc7UUFDakIsV0FBVyxFQUFFLFlBQVk7UUFDekIsUUFBUSxFQUFFLEtBQUs7S0FDbEI7SUFDRDtRQUNJLElBQUkscUNBQW9CO1FBQ3hCLElBQUksRUFBRSxjQUFjO1FBQ3BCLFdBQVcsRUFBRSxtQkFBbUI7UUFDaEMsUUFBUSxFQUFFLElBQUk7S0FDakI7Q0FDSixDQUFDLENBQUE7QUFNRixrQkFBa0I7QUFDbEIsa0VBQWtFO0FBQ2xFLFFBQVE7QUFDUixrQ0FBa0M7QUFDbEMsNEJBQTRCO0FBQzVCLGtEQUFrRDtBQUNsRCwwQkFBMEI7QUFDMUIsNkNBQTZDO0FBQzdDLHVKQUF1SjtBQUN2SixpQ0FBaUM7QUFDakMsZ0JBQWdCO0FBQ2hCLDRCQUE0QjtBQUM1Qix5Q0FBeUM7QUFFekMsYUFBYTtBQUNiLFNBQVM7QUFFVCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW50aXR5UHJvcCwgZVByb3BUeXBlIH0gZnJvbSAnQGFicC9uZy5jb21wb25lbnRzL2V4dGVuc2libGUnO1xyXG5cclxuXHJcblxyXG4vKipcclxuICAgIFtFQ21zQ29tcG9uZW50LkZpZWxkc106IEZpZWxkc19FbnRpdHlfUHJvcHMsXHJcbiovXHJcbmV4cG9ydCBjb25zdCBGaWVsZHNfRW50aXR5X1Byb3BzID0gRW50aXR5UHJvcC5jcmVhdGVNYW55PGFueT4oW1xyXG4gICAge1xyXG4gICAgICAgIHR5cGU6IGVQcm9wVHlwZS5TdHJpbmcsXHJcbiAgICAgICAgbmFtZTogJ2Rpc3BsYXlOYW1lJyxcclxuICAgICAgICBkaXNwbGF5TmFtZTogJ0Ntczo6RGlzcGxheU5hbWUnLFxyXG4gICAgICAgIHNvcnRhYmxlOiB0cnVlLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICB0eXBlOiBlUHJvcFR5cGUuU3RyaW5nLFxyXG4gICAgICAgIG5hbWU6ICduYW1lJyxcclxuICAgICAgICBkaXNwbGF5TmFtZTogJ0Ntczo6TmFtZScsXHJcbiAgICAgICAgc29ydGFibGU6IHRydWUsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIHR5cGU6IGVQcm9wVHlwZS5TdHJpbmcsXHJcbiAgICAgICAgbmFtZTogJ2Zvcm1Db250cm9sTmFtZScsXHJcbiAgICAgICAgZGlzcGxheU5hbWU6ICdDbXM6OkZvcm1Db250cm9sTmFtZScsXHJcbiAgICAgICAgc29ydGFibGU6IGZhbHNlLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICB0eXBlOiBlUHJvcFR5cGUuU3RyaW5nLFxyXG4gICAgICAgIG5hbWU6ICdncm91cE5hbWUnLFxyXG4gICAgICAgIGRpc3BsYXlOYW1lOiAnQ21zOjpHcm91cCcsXHJcbiAgICAgICAgc29ydGFibGU6IGZhbHNlLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICB0eXBlOiBlUHJvcFR5cGUuRGF0ZVRpbWUsXHJcbiAgICAgICAgbmFtZTogJ2NyZWF0aW9uVGltZScsXHJcbiAgICAgICAgZGlzcGxheU5hbWU6ICdDbXM6OkNyZWF0aW9uVGltZScsXHJcbiAgICAgICAgc29ydGFibGU6IHRydWUsXHJcbiAgICB9LFxyXG5dKVxyXG5cclxuXHJcblxyXG5cclxuXHJcbi8vIFBhZ2VOYW1lLkd1aWRlc1xyXG4vLyBleHBvcnQgY29uc3QgR3VpZGVzX0VudGl0eV9Qcm9wcyA9IEVudGl0eVByb3AuY3JlYXRlTWFueTxhbnk+KFtcclxuLy8gICAgIHtcclxuLy8gICAgICAgICB0eXBlOiBlUHJvcFR5cGUuU3RyaW5nLFxyXG4vLyAgICAgICAgIG5hbWU6ICdmdWxsTmFtZScsXHJcbi8vICAgICAgICAgZGlzcGxheU5hbWU6ICdBYnBUZW5hbnRNYW5hZ2VtZW50Ojrlhajnp7AnLFxyXG4vLyAgICAgICAgIHNvcnRhYmxlOiB0cnVlLFxyXG4vLyAgICAgICAgIC8vIHZhbHVlUmVzb2x2ZXI6IChkYXRhOiBhbnkpID0+IHtcclxuLy8gICAgICAgICAvLyAgICAgbGV0IHNzcyA9IGA8YSBocmVmPVwiL2d1aWRlcy8ke2RhdGEucmVjb3JkLmlkfVwiIGNsYXNzPVwidW5kZXJsaW5lLWFuaW1hdGVcIiB0aXRsZT1cIiR7ZGF0YS5yZWNvcmQuZnVsbE5hbWV9XCI+JHtkYXRhLnJlY29yZC5mdWxsTmFtZX08L2E+YFxyXG4vLyAgICAgICAgIC8vICAgICByZXR1cm4gb2Yoc3NzKTtcclxuLy8gICAgICAgICAvLyB9LFxyXG4vLyAgICAgICAgIGFjdGlvbjogZGF0YSA9PiB7XHJcbi8vICAgICAgICAgICAgIC8vRW50cmllc0NvbXBvbmVudOWvueW6lOeahOW3peWFt+agj+mhtemdolxyXG5cclxuLy8gICAgICAgICB9LFxyXG4vLyAgICAgfSxcclxuXHJcbi8vIF0pO1xyXG4iXX0=