qms-angular 2.0.6 → 2.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -201,7 +201,7 @@ export class QMSPaginatorComponent {
201
201
  provide: MAT_SELECT_CONFIG,
202
202
  useValue: { overlayPanelClass: 'customCDKpanel' },
203
203
  },
204
- ], ngImport: i0, template: "<div class=\"qms-paginator-outer-container\" [class.size-small]='size == sizeSmall' [class.d-none]='numHidden > length'>\n <div class=\"mat-paginator-container\" *ngIf='size != sizeMobile'>\n <div class=\"qms-total-result\" [class.mr-b-size-small]='size == sizeSmall'>\n <span>{{LANG.RESULTS}}: {{length}}</span>\n </div>\n <div class=\"qms-paginator-page-size\" *ngIf='size != sizeSmall'>\n <div class=\"qms-pagesize-label\">{{LANG.ROW_PER_PAGE}}:</div>\n <mat-form-field qms-form qms-select-input class=\"qms-form-page-size\" appearance=\"fill\">\n <mat-select [panelClass]=\"overlayClass\" [value]=\"pageSize\"\n (selectionChange)=\"_changePageSize($event.value)\" qms-select disableOptionCentering>\n <mat-option *ngFor=\"let item of pageSizeOptions\" [value]=\"item\">\n {{ item }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n <div class=\"qms-paginator-page-size\" *ngIf='size != sizeMedium && size != sizeSmall'>\n <div class=\"qms-pagesize-label \">{{LANG.JUM_TO_PAGE}}:</div>\n\n <mat-form-field qms-form qms-select-input class=\"qms-form-page-size qms-form-select-page-size\"\n appearance=\"fill\">\n <mat-select [panelClass]=\"overlayClass\" [value]=\"pageIndex\"\n (selectionChange)=\"_changePageNumber($event.value)\" qms-select disableOptionCentering>\n <mat-option *ngFor=\"let item of numberOfPages\" [value]=\"item\">\n {{ item }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n <div class=\"qms-paginator-range-actions\">\n <ul class=\"nav-list-pagination\">\n <li class=\"nav-item\">\n <button qms-btn-icon color=\"light\" (click)='previousPage()' [disabled]='minPage == pageIndex'>\n <mat-icon>chevron_left</mat-icon>\n </button>\n </li>\n <ng-container *ngFor='let item of displayNumberOfPages'>\n <li class=\"nav-item\"> <span *ngIf='item == \"...\"' class=\"qms-3d\">{{item}}</span></li>\n <li class=\"nav-item\">\n <button *ngIf='item != \"...\"' qms-btn-icon color=\"light\" [class.selected]='pageIndex == item'\n [disabled]='pageIndex == item' (click)='changePage(item)'>\n {{item}}\n </button>\n </li>\n </ng-container>\n <li class=\"nav-item\">\n <button qms-btn-icon color=\"light\" (click)='nextPage()' [disabled]='maxpage == pageIndex'>\n <mat-icon>chevron_right</mat-icon>\n </button>\n </li>\n </ul>\n </div>\n </div>\n\n <div class=\"mat-paginator-container-mobile\" *ngIf='size == sizeMobile'>\n <div class=\"mat-paginator-container\" *ngIf='size == sizeMobile'>\n <div class=\"qms-paginator-range-actions\">\n <ul class=\"nav-list-pagination\">\n <li class=\"nav-item\">\n <button qms-btn-icon color=\"light\" (click)='previousPage()' [disabled]='minPage == pageIndex'>\n <mat-icon>chevron_left</mat-icon>\n </button>\n </li>\n <ng-container *ngFor='let item of displayNumberOfPages'>\n <li class=\"nav-item\"> <span *ngIf='item == \"...\"' class=\"qms-3d\">{{item}}</span></li>\n <li class=\"nav-item\">\n <button *ngIf='item != \"...\"' qms-btn-icon color=\"light\"\n [class.selected]='pageIndex == item' [disabled]='pageIndex == item'\n (click)='changePage(item)'>\n {{item}}\n </button>\n </li>\n </ng-container>\n <li class=\"nav-item\">\n <button qms-btn-icon color=\"light\" (click)='nextPage()' [disabled]='maxpage == pageIndex'>\n <mat-icon>chevron_right</mat-icon>\n </button>\n </li>\n </ul>\n </div>\n </div>\n <div class=\"qms-total-result\">\n <span>{{LANG.RESULTS}}: {{length}}</span>\n </div>\n <div style=\"display: flex;\">\n <div class=\"qms-paginator-page-size\" *ngIf='size != sizeSmall'>\n <div class=\"qms-pagesize-label\">{{LANG.ROW_PER_PAGE}}:</div>\n <mat-form-field qms-form qms-select-input class=\"qms-form-page-size\" appearance=\"fill\">\n <mat-select [panelClass]=\"overlayClass\" [value]=\"pageSize\"\n (selectionChange)=\"_changePageSize($event.value)\" qms-select>\n <mat-option *ngFor=\"let item of pageSizeOptions\" [value]=\"item\">\n {{ item }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n <div class=\"qms-paginator-page-size\" *ngIf='size != sizeMedium && size != sizeSmall'>\n <div class=\"qms-pagesize-label \">{{LANG.JUM_TO_PAGE}}:</div>\n <mat-form-field qms-form qms-select-input class=\"qms-form-page-size qms-form-select-page-size\"\n appearance=\"fill\">\n <mat-select [panelClass]=\"overlayClass\" [value]=\"pageIndex\"\n (selectionChange)=\"_changePageNumber($event.value)\" qms-select>\n <mat-option *ngFor=\"let item of numberOfPages\" [value]=\"item\">\n {{ item }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n </div>\n\n </div>\n\n</div>", styles: ["::ng-deep .customCDKpanel{transform:none!important}::ng-deep .qms-paginator{display:block}::ng-deep .qms-paginator .qms-paginator-outer-container{display:flex}::ng-deep .qms-paginator .mat-paginator-container{display:flex;align-items:center;justify-content:flex-end;padding:0 8px;flex-wrap:wrap-reverse;width:100%}::ng-deep .qms-paginator .mat-paginator-container .qms-btn-icon{width:40px;height:40px;line-height:40px}::ng-deep .qms-paginator .mat-paginator-container .mat-mdc-select .mat-select-arrow{margin-top:20px}::ng-deep .qms-paginator .mat-paginator-container .qms-total-result{margin-right:24px;margin-bottom:21px}::ng-deep .qms-paginator .mat-paginator-container .qms-total-result span{font-family:Open Sans;font-weight:400;font-size:14px;line-height:22px;color:#0009}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-page-size{margin-right:24px;display:flex;align-items:baseline}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-page-size .qms-pagesize-label{font-weight:400;font-size:14px;line-height:22px;color:#323232;font-family:Open Sans;font-style:normal;margin-right:8px}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-page-size .qms-form-page-size .mat-mdc-text-field-wrapper{width:70px}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-page-size .qms-form-select-page-size .mat-mdc-text-field-wrapper{width:60px;padding-left:9px;padding-right:5px}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-page-size .jump-page .mat-form-field-wrapper{width:55px}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-page-size .mat-form-field-flex{height:40px}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-page-size .mat-form-field-flex .mat-form-field-infix{padding-top:4px;border-top:0px;padding-bottom:0;height:25px}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-range-actions{display:flex;align-items:center;margin-bottom:15px}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-range-actions .selected{background-color:#e5eefb;color:#1954a9}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-range-actions .qms-3d{font-weight:600;font-size:14px;line-height:22px;color:#323232}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-range-actions button:not(.qms-btn-disabled) .qms-btn-icon-wrapper{color:#323232}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-range-actions .nav-list-pagination{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:0;margin:0;list-style:none}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-range-actions .nav-list-pagination .nav-item button.qms-btn-icon{line-height:1.43;letter-spacing:.01071em;border-radius:20px;text-align:center;box-sizing:border-box;min-width:40px;width:unset;height:40px;padding:0 5px}::ng-deep .qms-paginator .mat-paginator-container-mobile .mat-mdc-select .mat-select-arrow{margin-top:20px}::ng-deep .qms-paginator .mat-paginator-container-mobile .qms-total-result{margin-bottom:16px}::ng-deep .qms-paginator .mat-paginator-container-mobile .qms-total-result span{font-family:Open Sans;font-style:normal;font-weight:400;font-size:12px;line-height:16px;color:#0009}::ng-deep .qms-paginator .mat-paginator-container-mobile .mat-paginator-container{justify-content:flex-start}::ng-deep .qms-paginator .mat-paginator-container-mobile .qms-paginator-page-size{margin-right:24px;display:flex;align-items:baseline}::ng-deep .qms-paginator .mat-paginator-container-mobile .qms-paginator-page-size .qms-pagesize-label{font-weight:400;font-size:12px;line-height:22px;color:#323232;font-family:Open Sans;font-style:normal;margin-right:8px}::ng-deep .qms-paginator .mat-paginator-container-mobile .qms-paginator-page-size .qms-form-page-size .mat-mdc-text-field-wrapper{width:70px}::ng-deep .qms-paginator .mat-paginator-container-mobile .qms-paginator-page-size .qms-form-select-page-size .mat-mdc-text-field-wrapper{width:60px;padding-left:9px;padding-right:5px}::ng-deep .qms-paginator .mat-paginator-container-mobile .qms-paginator-page-size .jump-page .mat-form-field-wrapper .mat-form-field-flex{width:55px}::ng-deep .qms-paginator .mat-paginator-container-mobile .qms-paginator-page-size .mat-form-field-flex{height:40px}::ng-deep .qms-paginator .mat-paginator-container-mobile .qms-paginator-page-size .mat-form-field-flex .mat-form-field-infix{padding-top:4px;border-top:0px;padding-bottom:0;height:25px}::ng-deep .qms-paginator .size-small .mat-mdc-paginator-container{justify-content:flex-start}::ng-deep .qms-paginator .mr-b-size-small{margin-bottom:17px!important}::ng-deep div.mat-mdc-select-panel{min-width:fit-content!important}\n"], 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: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "component", type: i5.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i6.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i7.QMSFormFieldDirective, selector: "[qms-form]" }, { kind: "component", type: i8.QMSButtonIcon, selector: "button[qms-btn-icon]", inputs: ["disabled", "color", "active"], exportAs: ["qmsButtonIcon"] }] }); }
204
+ ], ngImport: i0, template: "<div class=\"qms-paginator-outer-container\" [class.size-small]='size == sizeSmall' [class.d-none]='numHidden > length'>\n <div class=\"mat-paginator-container\" *ngIf='size != sizeMobile'>\n <div class=\"qms-total-result\" [class.mr-b-size-small]='size == sizeSmall'>\n <span>{{LANG.RESULTS}}: {{length}}</span>\n </div>\n <div class=\"qms-paginator-page-size\" *ngIf='size != sizeSmall'>\n <div class=\"qms-pagesize-label\">{{LANG.ROW_PER_PAGE}}:</div>\n <mat-form-field qms-form qms-select-input class=\"qms-form-page-size\" appearance=\"fill\">\n <mat-select [panelClass]=\"overlayClass\" [value]=\"pageSize\"\n (selectionChange)=\"_changePageSize($event.value)\" qms-select disableOptionCentering>\n <mat-option *ngFor=\"let item of pageSizeOptions\" [value]=\"item\">\n {{ item }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n <div class=\"qms-paginator-page-size\" *ngIf='size != sizeMedium && size != sizeSmall'>\n <div class=\"qms-pagesize-label \">{{LANG.JUM_TO_PAGE}}:</div>\n\n <mat-form-field qms-form qms-select-input class=\"qms-form-page-size qms-form-select-page-size\"\n appearance=\"fill\">\n <mat-select [panelClass]=\"overlayClass\" [value]=\"pageIndex\"\n (selectionChange)=\"_changePageNumber($event.value)\" qms-select disableOptionCentering>\n <mat-option *ngFor=\"let item of numberOfPages\" [value]=\"item\">\n {{ item }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n <div class=\"qms-paginator-range-actions\">\n <ul class=\"nav-list-pagination\">\n <li class=\"nav-item\">\n <button aria-label=\"Previous page\" qms-btn-icon color=\"light\" (click)='previousPage()'\n [disabled]='minPage == pageIndex'>\n <mat-icon>chevron_left</mat-icon>\n </button>\n </li>\n <ng-container *ngFor='let item of displayNumberOfPages'>\n <li class=\"nav-item\"> <span *ngIf='item == \"...\"' class=\"qms-3d\">{{item}}</span></li>\n <li class=\"nav-item\">\n <button *ngIf='item != \"...\"' qms-btn-icon color=\"light\" [class.selected]='pageIndex == item'\n [disabled]='pageIndex == item' (click)='changePage(item)'>\n {{item}}\n </button>\n </li>\n </ng-container>\n <li class=\"nav-item\">\n <button aria-label=\"Next page\" qms-btn-icon color=\"light\" (click)='nextPage()'\n [disabled]='maxpage == pageIndex'>\n <mat-icon>chevron_right</mat-icon>\n </button>\n </li>\n </ul>\n </div>\n </div>\n\n <div class=\"mat-paginator-container-mobile\" *ngIf='size == sizeMobile'>\n <div class=\"mat-paginator-container\" *ngIf='size == sizeMobile'>\n <div class=\"qms-paginator-range-actions\">\n <ul class=\"nav-list-pagination\">\n <li class=\"nav-item\">\n <button aria-label=\"Previous page\" qms-btn-icon color=\"light\" (click)='previousPage()'\n [disabled]='minPage == pageIndex'>\n <mat-icon>chevron_left</mat-icon>\n </button>\n </li>\n <ng-container *ngFor='let item of displayNumberOfPages'>\n <li class=\"nav-item\"> <span *ngIf='item == \"...\"' class=\"qms-3d\">{{item}}</span></li>\n <li class=\"nav-item\">\n <button *ngIf='item != \"...\"' qms-btn-icon color=\"light\"\n [class.selected]='pageIndex == item' [disabled]='pageIndex == item'\n (click)='changePage(item)'>\n {{item}}\n </button>\n </li>\n </ng-container>\n <li class=\"nav-item\">\n <button aria-label=\"Next page\" qms-btn-icon color=\"light\" (click)='nextPage()'\n [disabled]='maxpage == pageIndex'>\n <mat-icon>chevron_right</mat-icon>\n </button>\n </li>\n </ul>\n </div>\n </div>\n <div class=\"qms-total-result\">\n <span>{{LANG.RESULTS}}: {{length}}</span>\n </div>\n <div style=\"display: flex;\">\n <div class=\"qms-paginator-page-size\" *ngIf='size != sizeSmall'>\n <div class=\"qms-pagesize-label\">{{LANG.ROW_PER_PAGE}}:</div>\n <mat-form-field qms-form qms-select-input class=\"qms-form-page-size\" appearance=\"fill\">\n <mat-select [panelClass]=\"overlayClass\" [value]=\"pageSize\"\n (selectionChange)=\"_changePageSize($event.value)\" qms-select>\n <mat-option *ngFor=\"let item of pageSizeOptions\" [value]=\"item\">\n {{ item }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n <div class=\"qms-paginator-page-size\" *ngIf='size != sizeMedium && size != sizeSmall'>\n <div class=\"qms-pagesize-label \">{{LANG.JUM_TO_PAGE}}:</div>\n <mat-form-field qms-form qms-select-input class=\"qms-form-page-size qms-form-select-page-size\"\n appearance=\"fill\">\n <mat-select [panelClass]=\"overlayClass\" [value]=\"pageIndex\"\n (selectionChange)=\"_changePageNumber($event.value)\" qms-select>\n <mat-option *ngFor=\"let item of numberOfPages\" [value]=\"item\">\n {{ item }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n </div>\n\n </div>\n\n</div>", styles: ["::ng-deep .customCDKpanel{transform:none!important}::ng-deep .qms-paginator{display:block}::ng-deep .qms-paginator .qms-paginator-outer-container{display:flex}::ng-deep .qms-paginator .mat-paginator-container{display:flex;align-items:center;justify-content:flex-end;padding:0 8px;flex-wrap:wrap-reverse;width:100%}::ng-deep .qms-paginator .mat-paginator-container .qms-btn-icon{width:40px;height:40px;line-height:40px}::ng-deep .qms-paginator .mat-paginator-container .mat-mdc-select .mat-select-arrow{margin-top:20px}::ng-deep .qms-paginator .mat-paginator-container .qms-total-result{margin-right:24px;margin-bottom:21px}::ng-deep .qms-paginator .mat-paginator-container .qms-total-result span{font-family:Open Sans;font-weight:400;font-size:14px;line-height:22px;color:#0009}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-page-size{margin-right:24px;display:flex;align-items:baseline}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-page-size .qms-pagesize-label{font-weight:400;font-size:14px;line-height:22px;color:#323232;font-family:Open Sans;font-style:normal;margin-right:8px}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-page-size .qms-form-page-size .mat-mdc-text-field-wrapper{width:70px}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-page-size .qms-form-select-page-size .mat-mdc-text-field-wrapper{width:60px;padding-left:9px;padding-right:5px}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-page-size .jump-page .mat-form-field-wrapper{width:55px}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-page-size .mat-form-field-flex{height:40px}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-page-size .mat-form-field-flex .mat-form-field-infix{padding-top:4px;border-top:0px;padding-bottom:0;height:25px}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-range-actions{display:flex;align-items:center;margin-bottom:15px}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-range-actions .selected{background-color:#e5eefb;color:#1954a9}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-range-actions .qms-3d{font-weight:600;font-size:14px;line-height:22px;color:#323232}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-range-actions button:not(.qms-btn-disabled) .qms-btn-icon-wrapper{color:#323232}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-range-actions .nav-list-pagination{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:0;margin:0;list-style:none}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-range-actions .nav-list-pagination .nav-item button.qms-btn-icon{line-height:1.43;letter-spacing:.01071em;border-radius:20px;text-align:center;box-sizing:border-box;min-width:40px;width:unset;height:40px;padding:0 5px}::ng-deep .qms-paginator .mat-paginator-container-mobile .mat-mdc-select .mat-select-arrow{margin-top:20px}::ng-deep .qms-paginator .mat-paginator-container-mobile .qms-total-result{margin-bottom:16px}::ng-deep .qms-paginator .mat-paginator-container-mobile .qms-total-result span{font-family:Open Sans;font-style:normal;font-weight:400;font-size:12px;line-height:16px;color:#0009}::ng-deep .qms-paginator .mat-paginator-container-mobile .mat-paginator-container{justify-content:flex-start}::ng-deep .qms-paginator .mat-paginator-container-mobile .qms-paginator-page-size{margin-right:24px;display:flex;align-items:baseline}::ng-deep .qms-paginator .mat-paginator-container-mobile .qms-paginator-page-size .qms-pagesize-label{font-weight:400;font-size:12px;line-height:22px;color:#323232;font-family:Open Sans;font-style:normal;margin-right:8px}::ng-deep .qms-paginator .mat-paginator-container-mobile .qms-paginator-page-size .qms-form-page-size .mat-mdc-text-field-wrapper{width:70px}::ng-deep .qms-paginator .mat-paginator-container-mobile .qms-paginator-page-size .qms-form-select-page-size .mat-mdc-text-field-wrapper{width:60px;padding-left:9px;padding-right:5px}::ng-deep .qms-paginator .mat-paginator-container-mobile .qms-paginator-page-size .jump-page .mat-form-field-wrapper .mat-form-field-flex{width:55px}::ng-deep .qms-paginator .mat-paginator-container-mobile .qms-paginator-page-size .mat-form-field-flex{height:40px}::ng-deep .qms-paginator .mat-paginator-container-mobile .qms-paginator-page-size .mat-form-field-flex .mat-form-field-infix{padding-top:4px;border-top:0px;padding-bottom:0;height:25px}::ng-deep .qms-paginator .size-small .mat-mdc-paginator-container{justify-content:flex-start}::ng-deep .qms-paginator .mr-b-size-small{margin-bottom:17px!important}::ng-deep div.mat-mdc-select-panel{min-width:fit-content!important}\n"], 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: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "component", type: i5.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i6.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i7.QMSFormFieldDirective, selector: "[qms-form]" }, { kind: "component", type: i8.QMSButtonIcon, selector: "button[qms-btn-icon]", inputs: ["disabled", "color", "active"], exportAs: ["qmsButtonIcon"] }] }); }
205
205
  }
206
206
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: QMSPaginatorComponent, decorators: [{
207
207
  type: Component,
@@ -212,7 +212,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
212
212
  provide: MAT_SELECT_CONFIG,
213
213
  useValue: { overlayPanelClass: 'customCDKpanel' },
214
214
  },
215
- ], template: "<div class=\"qms-paginator-outer-container\" [class.size-small]='size == sizeSmall' [class.d-none]='numHidden > length'>\n <div class=\"mat-paginator-container\" *ngIf='size != sizeMobile'>\n <div class=\"qms-total-result\" [class.mr-b-size-small]='size == sizeSmall'>\n <span>{{LANG.RESULTS}}: {{length}}</span>\n </div>\n <div class=\"qms-paginator-page-size\" *ngIf='size != sizeSmall'>\n <div class=\"qms-pagesize-label\">{{LANG.ROW_PER_PAGE}}:</div>\n <mat-form-field qms-form qms-select-input class=\"qms-form-page-size\" appearance=\"fill\">\n <mat-select [panelClass]=\"overlayClass\" [value]=\"pageSize\"\n (selectionChange)=\"_changePageSize($event.value)\" qms-select disableOptionCentering>\n <mat-option *ngFor=\"let item of pageSizeOptions\" [value]=\"item\">\n {{ item }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n <div class=\"qms-paginator-page-size\" *ngIf='size != sizeMedium && size != sizeSmall'>\n <div class=\"qms-pagesize-label \">{{LANG.JUM_TO_PAGE}}:</div>\n\n <mat-form-field qms-form qms-select-input class=\"qms-form-page-size qms-form-select-page-size\"\n appearance=\"fill\">\n <mat-select [panelClass]=\"overlayClass\" [value]=\"pageIndex\"\n (selectionChange)=\"_changePageNumber($event.value)\" qms-select disableOptionCentering>\n <mat-option *ngFor=\"let item of numberOfPages\" [value]=\"item\">\n {{ item }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n <div class=\"qms-paginator-range-actions\">\n <ul class=\"nav-list-pagination\">\n <li class=\"nav-item\">\n <button qms-btn-icon color=\"light\" (click)='previousPage()' [disabled]='minPage == pageIndex'>\n <mat-icon>chevron_left</mat-icon>\n </button>\n </li>\n <ng-container *ngFor='let item of displayNumberOfPages'>\n <li class=\"nav-item\"> <span *ngIf='item == \"...\"' class=\"qms-3d\">{{item}}</span></li>\n <li class=\"nav-item\">\n <button *ngIf='item != \"...\"' qms-btn-icon color=\"light\" [class.selected]='pageIndex == item'\n [disabled]='pageIndex == item' (click)='changePage(item)'>\n {{item}}\n </button>\n </li>\n </ng-container>\n <li class=\"nav-item\">\n <button qms-btn-icon color=\"light\" (click)='nextPage()' [disabled]='maxpage == pageIndex'>\n <mat-icon>chevron_right</mat-icon>\n </button>\n </li>\n </ul>\n </div>\n </div>\n\n <div class=\"mat-paginator-container-mobile\" *ngIf='size == sizeMobile'>\n <div class=\"mat-paginator-container\" *ngIf='size == sizeMobile'>\n <div class=\"qms-paginator-range-actions\">\n <ul class=\"nav-list-pagination\">\n <li class=\"nav-item\">\n <button qms-btn-icon color=\"light\" (click)='previousPage()' [disabled]='minPage == pageIndex'>\n <mat-icon>chevron_left</mat-icon>\n </button>\n </li>\n <ng-container *ngFor='let item of displayNumberOfPages'>\n <li class=\"nav-item\"> <span *ngIf='item == \"...\"' class=\"qms-3d\">{{item}}</span></li>\n <li class=\"nav-item\">\n <button *ngIf='item != \"...\"' qms-btn-icon color=\"light\"\n [class.selected]='pageIndex == item' [disabled]='pageIndex == item'\n (click)='changePage(item)'>\n {{item}}\n </button>\n </li>\n </ng-container>\n <li class=\"nav-item\">\n <button qms-btn-icon color=\"light\" (click)='nextPage()' [disabled]='maxpage == pageIndex'>\n <mat-icon>chevron_right</mat-icon>\n </button>\n </li>\n </ul>\n </div>\n </div>\n <div class=\"qms-total-result\">\n <span>{{LANG.RESULTS}}: {{length}}</span>\n </div>\n <div style=\"display: flex;\">\n <div class=\"qms-paginator-page-size\" *ngIf='size != sizeSmall'>\n <div class=\"qms-pagesize-label\">{{LANG.ROW_PER_PAGE}}:</div>\n <mat-form-field qms-form qms-select-input class=\"qms-form-page-size\" appearance=\"fill\">\n <mat-select [panelClass]=\"overlayClass\" [value]=\"pageSize\"\n (selectionChange)=\"_changePageSize($event.value)\" qms-select>\n <mat-option *ngFor=\"let item of pageSizeOptions\" [value]=\"item\">\n {{ item }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n <div class=\"qms-paginator-page-size\" *ngIf='size != sizeMedium && size != sizeSmall'>\n <div class=\"qms-pagesize-label \">{{LANG.JUM_TO_PAGE}}:</div>\n <mat-form-field qms-form qms-select-input class=\"qms-form-page-size qms-form-select-page-size\"\n appearance=\"fill\">\n <mat-select [panelClass]=\"overlayClass\" [value]=\"pageIndex\"\n (selectionChange)=\"_changePageNumber($event.value)\" qms-select>\n <mat-option *ngFor=\"let item of numberOfPages\" [value]=\"item\">\n {{ item }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n </div>\n\n </div>\n\n</div>", styles: ["::ng-deep .customCDKpanel{transform:none!important}::ng-deep .qms-paginator{display:block}::ng-deep .qms-paginator .qms-paginator-outer-container{display:flex}::ng-deep .qms-paginator .mat-paginator-container{display:flex;align-items:center;justify-content:flex-end;padding:0 8px;flex-wrap:wrap-reverse;width:100%}::ng-deep .qms-paginator .mat-paginator-container .qms-btn-icon{width:40px;height:40px;line-height:40px}::ng-deep .qms-paginator .mat-paginator-container .mat-mdc-select .mat-select-arrow{margin-top:20px}::ng-deep .qms-paginator .mat-paginator-container .qms-total-result{margin-right:24px;margin-bottom:21px}::ng-deep .qms-paginator .mat-paginator-container .qms-total-result span{font-family:Open Sans;font-weight:400;font-size:14px;line-height:22px;color:#0009}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-page-size{margin-right:24px;display:flex;align-items:baseline}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-page-size .qms-pagesize-label{font-weight:400;font-size:14px;line-height:22px;color:#323232;font-family:Open Sans;font-style:normal;margin-right:8px}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-page-size .qms-form-page-size .mat-mdc-text-field-wrapper{width:70px}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-page-size .qms-form-select-page-size .mat-mdc-text-field-wrapper{width:60px;padding-left:9px;padding-right:5px}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-page-size .jump-page .mat-form-field-wrapper{width:55px}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-page-size .mat-form-field-flex{height:40px}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-page-size .mat-form-field-flex .mat-form-field-infix{padding-top:4px;border-top:0px;padding-bottom:0;height:25px}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-range-actions{display:flex;align-items:center;margin-bottom:15px}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-range-actions .selected{background-color:#e5eefb;color:#1954a9}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-range-actions .qms-3d{font-weight:600;font-size:14px;line-height:22px;color:#323232}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-range-actions button:not(.qms-btn-disabled) .qms-btn-icon-wrapper{color:#323232}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-range-actions .nav-list-pagination{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:0;margin:0;list-style:none}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-range-actions .nav-list-pagination .nav-item button.qms-btn-icon{line-height:1.43;letter-spacing:.01071em;border-radius:20px;text-align:center;box-sizing:border-box;min-width:40px;width:unset;height:40px;padding:0 5px}::ng-deep .qms-paginator .mat-paginator-container-mobile .mat-mdc-select .mat-select-arrow{margin-top:20px}::ng-deep .qms-paginator .mat-paginator-container-mobile .qms-total-result{margin-bottom:16px}::ng-deep .qms-paginator .mat-paginator-container-mobile .qms-total-result span{font-family:Open Sans;font-style:normal;font-weight:400;font-size:12px;line-height:16px;color:#0009}::ng-deep .qms-paginator .mat-paginator-container-mobile .mat-paginator-container{justify-content:flex-start}::ng-deep .qms-paginator .mat-paginator-container-mobile .qms-paginator-page-size{margin-right:24px;display:flex;align-items:baseline}::ng-deep .qms-paginator .mat-paginator-container-mobile .qms-paginator-page-size .qms-pagesize-label{font-weight:400;font-size:12px;line-height:22px;color:#323232;font-family:Open Sans;font-style:normal;margin-right:8px}::ng-deep .qms-paginator .mat-paginator-container-mobile .qms-paginator-page-size .qms-form-page-size .mat-mdc-text-field-wrapper{width:70px}::ng-deep .qms-paginator .mat-paginator-container-mobile .qms-paginator-page-size .qms-form-select-page-size .mat-mdc-text-field-wrapper{width:60px;padding-left:9px;padding-right:5px}::ng-deep .qms-paginator .mat-paginator-container-mobile .qms-paginator-page-size .jump-page .mat-form-field-wrapper .mat-form-field-flex{width:55px}::ng-deep .qms-paginator .mat-paginator-container-mobile .qms-paginator-page-size .mat-form-field-flex{height:40px}::ng-deep .qms-paginator .mat-paginator-container-mobile .qms-paginator-page-size .mat-form-field-flex .mat-form-field-infix{padding-top:4px;border-top:0px;padding-bottom:0;height:25px}::ng-deep .qms-paginator .size-small .mat-mdc-paginator-container{justify-content:flex-start}::ng-deep .qms-paginator .mr-b-size-small{margin-bottom:17px!important}::ng-deep div.mat-mdc-select-panel{min-width:fit-content!important}\n"] }]
215
+ ], template: "<div class=\"qms-paginator-outer-container\" [class.size-small]='size == sizeSmall' [class.d-none]='numHidden > length'>\n <div class=\"mat-paginator-container\" *ngIf='size != sizeMobile'>\n <div class=\"qms-total-result\" [class.mr-b-size-small]='size == sizeSmall'>\n <span>{{LANG.RESULTS}}: {{length}}</span>\n </div>\n <div class=\"qms-paginator-page-size\" *ngIf='size != sizeSmall'>\n <div class=\"qms-pagesize-label\">{{LANG.ROW_PER_PAGE}}:</div>\n <mat-form-field qms-form qms-select-input class=\"qms-form-page-size\" appearance=\"fill\">\n <mat-select [panelClass]=\"overlayClass\" [value]=\"pageSize\"\n (selectionChange)=\"_changePageSize($event.value)\" qms-select disableOptionCentering>\n <mat-option *ngFor=\"let item of pageSizeOptions\" [value]=\"item\">\n {{ item }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n <div class=\"qms-paginator-page-size\" *ngIf='size != sizeMedium && size != sizeSmall'>\n <div class=\"qms-pagesize-label \">{{LANG.JUM_TO_PAGE}}:</div>\n\n <mat-form-field qms-form qms-select-input class=\"qms-form-page-size qms-form-select-page-size\"\n appearance=\"fill\">\n <mat-select [panelClass]=\"overlayClass\" [value]=\"pageIndex\"\n (selectionChange)=\"_changePageNumber($event.value)\" qms-select disableOptionCentering>\n <mat-option *ngFor=\"let item of numberOfPages\" [value]=\"item\">\n {{ item }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n <div class=\"qms-paginator-range-actions\">\n <ul class=\"nav-list-pagination\">\n <li class=\"nav-item\">\n <button aria-label=\"Previous page\" qms-btn-icon color=\"light\" (click)='previousPage()'\n [disabled]='minPage == pageIndex'>\n <mat-icon>chevron_left</mat-icon>\n </button>\n </li>\n <ng-container *ngFor='let item of displayNumberOfPages'>\n <li class=\"nav-item\"> <span *ngIf='item == \"...\"' class=\"qms-3d\">{{item}}</span></li>\n <li class=\"nav-item\">\n <button *ngIf='item != \"...\"' qms-btn-icon color=\"light\" [class.selected]='pageIndex == item'\n [disabled]='pageIndex == item' (click)='changePage(item)'>\n {{item}}\n </button>\n </li>\n </ng-container>\n <li class=\"nav-item\">\n <button aria-label=\"Next page\" qms-btn-icon color=\"light\" (click)='nextPage()'\n [disabled]='maxpage == pageIndex'>\n <mat-icon>chevron_right</mat-icon>\n </button>\n </li>\n </ul>\n </div>\n </div>\n\n <div class=\"mat-paginator-container-mobile\" *ngIf='size == sizeMobile'>\n <div class=\"mat-paginator-container\" *ngIf='size == sizeMobile'>\n <div class=\"qms-paginator-range-actions\">\n <ul class=\"nav-list-pagination\">\n <li class=\"nav-item\">\n <button aria-label=\"Previous page\" qms-btn-icon color=\"light\" (click)='previousPage()'\n [disabled]='minPage == pageIndex'>\n <mat-icon>chevron_left</mat-icon>\n </button>\n </li>\n <ng-container *ngFor='let item of displayNumberOfPages'>\n <li class=\"nav-item\"> <span *ngIf='item == \"...\"' class=\"qms-3d\">{{item}}</span></li>\n <li class=\"nav-item\">\n <button *ngIf='item != \"...\"' qms-btn-icon color=\"light\"\n [class.selected]='pageIndex == item' [disabled]='pageIndex == item'\n (click)='changePage(item)'>\n {{item}}\n </button>\n </li>\n </ng-container>\n <li class=\"nav-item\">\n <button aria-label=\"Next page\" qms-btn-icon color=\"light\" (click)='nextPage()'\n [disabled]='maxpage == pageIndex'>\n <mat-icon>chevron_right</mat-icon>\n </button>\n </li>\n </ul>\n </div>\n </div>\n <div class=\"qms-total-result\">\n <span>{{LANG.RESULTS}}: {{length}}</span>\n </div>\n <div style=\"display: flex;\">\n <div class=\"qms-paginator-page-size\" *ngIf='size != sizeSmall'>\n <div class=\"qms-pagesize-label\">{{LANG.ROW_PER_PAGE}}:</div>\n <mat-form-field qms-form qms-select-input class=\"qms-form-page-size\" appearance=\"fill\">\n <mat-select [panelClass]=\"overlayClass\" [value]=\"pageSize\"\n (selectionChange)=\"_changePageSize($event.value)\" qms-select>\n <mat-option *ngFor=\"let item of pageSizeOptions\" [value]=\"item\">\n {{ item }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n <div class=\"qms-paginator-page-size\" *ngIf='size != sizeMedium && size != sizeSmall'>\n <div class=\"qms-pagesize-label \">{{LANG.JUM_TO_PAGE}}:</div>\n <mat-form-field qms-form qms-select-input class=\"qms-form-page-size qms-form-select-page-size\"\n appearance=\"fill\">\n <mat-select [panelClass]=\"overlayClass\" [value]=\"pageIndex\"\n (selectionChange)=\"_changePageNumber($event.value)\" qms-select>\n <mat-option *ngFor=\"let item of numberOfPages\" [value]=\"item\">\n {{ item }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n </div>\n\n </div>\n\n</div>", styles: ["::ng-deep .customCDKpanel{transform:none!important}::ng-deep .qms-paginator{display:block}::ng-deep .qms-paginator .qms-paginator-outer-container{display:flex}::ng-deep .qms-paginator .mat-paginator-container{display:flex;align-items:center;justify-content:flex-end;padding:0 8px;flex-wrap:wrap-reverse;width:100%}::ng-deep .qms-paginator .mat-paginator-container .qms-btn-icon{width:40px;height:40px;line-height:40px}::ng-deep .qms-paginator .mat-paginator-container .mat-mdc-select .mat-select-arrow{margin-top:20px}::ng-deep .qms-paginator .mat-paginator-container .qms-total-result{margin-right:24px;margin-bottom:21px}::ng-deep .qms-paginator .mat-paginator-container .qms-total-result span{font-family:Open Sans;font-weight:400;font-size:14px;line-height:22px;color:#0009}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-page-size{margin-right:24px;display:flex;align-items:baseline}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-page-size .qms-pagesize-label{font-weight:400;font-size:14px;line-height:22px;color:#323232;font-family:Open Sans;font-style:normal;margin-right:8px}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-page-size .qms-form-page-size .mat-mdc-text-field-wrapper{width:70px}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-page-size .qms-form-select-page-size .mat-mdc-text-field-wrapper{width:60px;padding-left:9px;padding-right:5px}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-page-size .jump-page .mat-form-field-wrapper{width:55px}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-page-size .mat-form-field-flex{height:40px}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-page-size .mat-form-field-flex .mat-form-field-infix{padding-top:4px;border-top:0px;padding-bottom:0;height:25px}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-range-actions{display:flex;align-items:center;margin-bottom:15px}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-range-actions .selected{background-color:#e5eefb;color:#1954a9}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-range-actions .qms-3d{font-weight:600;font-size:14px;line-height:22px;color:#323232}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-range-actions button:not(.qms-btn-disabled) .qms-btn-icon-wrapper{color:#323232}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-range-actions .nav-list-pagination{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:0;margin:0;list-style:none}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-range-actions .nav-list-pagination .nav-item button.qms-btn-icon{line-height:1.43;letter-spacing:.01071em;border-radius:20px;text-align:center;box-sizing:border-box;min-width:40px;width:unset;height:40px;padding:0 5px}::ng-deep .qms-paginator .mat-paginator-container-mobile .mat-mdc-select .mat-select-arrow{margin-top:20px}::ng-deep .qms-paginator .mat-paginator-container-mobile .qms-total-result{margin-bottom:16px}::ng-deep .qms-paginator .mat-paginator-container-mobile .qms-total-result span{font-family:Open Sans;font-style:normal;font-weight:400;font-size:12px;line-height:16px;color:#0009}::ng-deep .qms-paginator .mat-paginator-container-mobile .mat-paginator-container{justify-content:flex-start}::ng-deep .qms-paginator .mat-paginator-container-mobile .qms-paginator-page-size{margin-right:24px;display:flex;align-items:baseline}::ng-deep .qms-paginator .mat-paginator-container-mobile .qms-paginator-page-size .qms-pagesize-label{font-weight:400;font-size:12px;line-height:22px;color:#323232;font-family:Open Sans;font-style:normal;margin-right:8px}::ng-deep .qms-paginator .mat-paginator-container-mobile .qms-paginator-page-size .qms-form-page-size .mat-mdc-text-field-wrapper{width:70px}::ng-deep .qms-paginator .mat-paginator-container-mobile .qms-paginator-page-size .qms-form-select-page-size .mat-mdc-text-field-wrapper{width:60px;padding-left:9px;padding-right:5px}::ng-deep .qms-paginator .mat-paginator-container-mobile .qms-paginator-page-size .jump-page .mat-form-field-wrapper .mat-form-field-flex{width:55px}::ng-deep .qms-paginator .mat-paginator-container-mobile .qms-paginator-page-size .mat-form-field-flex{height:40px}::ng-deep .qms-paginator .mat-paginator-container-mobile .qms-paginator-page-size .mat-form-field-flex .mat-form-field-infix{padding-top:4px;border-top:0px;padding-bottom:0;height:25px}::ng-deep .qms-paginator .size-small .mat-mdc-paginator-container{justify-content:flex-start}::ng-deep .qms-paginator .mr-b-size-small{margin-bottom:17px!important}::ng-deep div.mat-mdc-select-panel{min-width:fit-content!important}\n"] }]
216
216
  }], ctorParameters: () => [{ type: i1.TranslateLibraryService }], propDecorators: { numHidden: [{
217
217
  type: Input
218
218
  }], size: [{
@@ -231,4 +231,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
231
231
  type: Input,
232
232
  args: ['overlayPanelClass']
233
233
  }] } });
234
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicW1zLXBhZ2luYXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9xbXMtYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvcW1zLXBhZ2luYXRvci9xbXMtcGFnaW5hdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Ftcy1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9xbXMtcGFnaW5hdG9yL3Ftcy1wYWdpbmF0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQWMsWUFBWSxFQUFnQixLQUFLLEVBQW9CLE1BQU0sRUFBbUIsTUFBTSxlQUFlLENBQUM7QUFDbkosT0FBTyxFQUNILG9CQUFvQixHQUV2QixNQUFNLHVCQUF1QixDQUFDO0FBRy9CLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzdELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7O0FBRTNDLE1BQU0saUJBQWlCLEdBQUcsRUFBRSxDQUFDO0FBUTdCLE1BQU0sQ0FBTixJQUFZLGNBS1g7QUFMRCxXQUFZLGNBQWM7SUFDdEIsaUNBQWUsQ0FBQTtJQUNmLG1DQUFpQixDQUFBO0lBQ2pCLGlDQUFlLENBQUE7SUFDZixtQ0FBaUIsQ0FBQTtBQUNyQixDQUFDLEVBTFcsY0FBYyxLQUFkLGNBQWMsUUFLekI7QUFlRCxNQUFNLE9BQU8scUJBQXFCO0lBUzlCLElBQ0ksZUFBZTtRQUNmLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQ2pDLENBQUM7SUFDRCxJQUFJLGVBQWUsQ0FBQyxLQUFlO1FBQy9CLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFHRCxJQUNJLFFBQVE7UUFDUixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDMUIsQ0FBQztJQUNELElBQUksUUFBUSxDQUFDLEtBQWE7UUFDdEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzFELElBQUksQ0FBQywrQkFBK0IsRUFBRSxDQUFDO0lBQzNDLENBQUM7SUFHRCxJQUNJLE1BQU07UUFDTixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDeEIsQ0FBQztJQUNELElBQUksTUFBTSxDQUFDLEtBQWE7UUFDcEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBR0QsSUFDSSxTQUFTO1FBQ1QsT0FBTyxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBQ0QsSUFBSSxTQUFTLENBQUMsS0FBYTtRQUN2QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUN6QyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3hGLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUV4RixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBYUQsSUFDSSxZQUFZLENBQUMsS0FBd0I7UUFDckMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQztJQUNwQyxDQUFDO0lBQ0QsSUFBSSxZQUFZO1FBQ1osTUFBTSxZQUFZLEdBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3BELElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLFFBQVE7WUFDN0MsT0FBTyxDQUFDLEdBQUcsWUFBWSxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3RELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUM7WUFDdEMsT0FBTyxDQUFDLEdBQUcsWUFBWSxFQUFFLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDekQsT0FBTyxZQUFZLENBQUM7SUFDeEIsQ0FBQztJQUVELFlBQW9CLEtBQThCO1FBQTlCLFVBQUssR0FBTCxLQUFLLENBQXlCO1FBekVsRCxlQUFVLEdBQVcsUUFBUSxDQUFDO1FBQzlCLGNBQVMsR0FBVyxPQUFPLENBQUM7UUFDNUIsY0FBUyxHQUFXLE9BQU8sQ0FBQztRQUM1QixlQUFVLEdBQVcsUUFBUSxDQUFDO1FBR3JCLGNBQVMsR0FBVyxFQUFFLENBQUM7UUFDdkIsU0FBSSxHQUFXLGNBQWMsQ0FBQyxLQUFLLENBQUM7UUFRckMscUJBQWdCLEdBQWEsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztRQVU5QyxjQUFTLEdBQVcsRUFBRSxDQUFDO1FBVXZCLFlBQU8sR0FBRyxDQUFDLENBQUM7UUFhcEIsZUFBVSxHQUFHLENBQUMsQ0FBQztRQUVJLFNBQUksR0FBNEIsSUFBSSxZQUFZLEVBQWEsQ0FBQztRQUNqRixzQkFBaUIsR0FBWSxDQUFDLENBQUM7UUFDL0Isa0JBQWEsR0FBYSxFQUFFLENBQUM7UUFDN0IseUJBQW9CLEdBQWEsRUFBRSxDQUFDO1FBR3BDLGdCQUFXLEdBQVksSUFBSSxDQUFDO1FBQzVCLGtCQUFhLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQWdCa0IsQ0FBQztJQUN2RCxRQUFRO1FBQ0osTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNqRixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEdBQUcsSUFBSSxXQUFXLENBQUMsQ0FBQztRQUM3RCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO0lBQzdCLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFTywrQkFBK0I7UUFDbkMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsU0FBUztnQkFDVixJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDO1FBQ3ZGLENBQUM7SUFDTCxDQUFDO0lBRUQsZ0JBQWdCO1FBQ1osSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNqQixPQUFPO1FBQ1gsQ0FBQztRQUNELElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ3hCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDM0QsS0FBSyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxJQUFJLFNBQVMsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQzlDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25DLENBQUM7UUFDRCxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQztRQUNqQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pFLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFRCwwQkFBMEI7UUFDdEIsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNqQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUN0RSxPQUFPO1FBQ1gsQ0FBQztRQUNELElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ3RFLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMzRixDQUFDO0lBQ0QsVUFBVSxDQUFDLElBQVk7UUFDbkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN0RyxDQUFDO0lBRUQsVUFBVSxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ1gsSUFBSSxPQUFPLEdBQUcsQ0FBQyxDQUFDO1FBQ2hCLElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQztRQUNiLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNkLElBQUksT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNyRCxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsQ0FBQzthQUFNLElBQUksT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3ZDLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDZCxDQUFDO2FBQU0sSUFBSSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDdkMsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNkLENBQUM7UUFHRCxJQUFJLElBQUksR0FBRyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQzNCLElBQUksS0FBSyxHQUFHLE9BQU8sR0FBRyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ2hDLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNmLElBQUksYUFBYSxHQUFHLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsQ0FBQztRQUVOLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsR0FBRyxLQUFLLEVBQUUsQ0FBQztnQkFDaEQsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNsQixDQUFDO1FBQ0wsQ0FBQztRQUVELEtBQUssSUFBSSxDQUFDLElBQUksS0FBSyxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDSixJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7b0JBQ2QsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDOUIsQ0FBQztZQUNMLENBQUM7WUFDRCxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3RCLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDVixDQUFDO1FBRUQsT0FBTyxhQUFhLENBQUM7SUFDekIsQ0FBQztJQUNELFFBQVE7UUFDSixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUN4QyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFFNUMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzNGLENBQUM7SUFDRCxZQUFZO1FBQ1IsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDeEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBRTVDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMzRixDQUFDO0lBRUQsZUFBZSxDQUFDLFFBQWdCO1FBQzVCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUNuRCxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7UUFFMUMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGlCQUFpQixDQUFDO1FBQzNDLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFFekIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsaUJBQWlCLENBQUMsVUFBa0I7UUFDaEMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDeEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxVQUFVLENBQUM7UUFDNUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRU8sY0FBYyxDQUFDLGlCQUF5QjtRQUM1QyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztZQUNYLGlCQUFpQjtZQUNqQixTQUFTLEVBQUUsSUFBSSxDQUFDLFVBQVU7WUFDMUIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtTQUN0QixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLENBQUM7K0dBN01RLHFCQUFxQjttR0FBckIscUJBQXFCLHlUQVBuQjtZQUNQO2dCQUNJLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFFBQVEsRUFBRSxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFO2FBQ3BEO1NBQ0osMEJDckNMLGdvTUFnSE07OzRGRHpFTyxxQkFBcUI7a0JBZGpDLFNBQVM7K0JBQ0ksZUFBZSxRQUduQjt3QkFDRixPQUFPLEVBQUUsZUFBZTtxQkFDM0IsYUFDVTt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixRQUFRLEVBQUUsRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRTt5QkFDcEQ7cUJBQ0o7NEZBU1EsU0FBUztzQkFBakIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBRUYsZUFBZTtzQkFEbEIsS0FBSztnQkFVRixRQUFRO3NCQURYLEtBQUs7Z0JBV0YsTUFBTTtzQkFEVCxLQUFLO2dCQVdGLFNBQVM7c0JBRFosS0FBSztnQkFhYSxJQUFJO3NCQUF0QixNQUFNO2dCQVdILFlBQVk7c0JBRGYsS0FBSzt1QkFBQyxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSG9zdCwgSW5qZWN0LCBJbnB1dCwgT25Jbml0LCBPcHRpb25hbCwgT3V0cHV0LCBTZWxmLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgY29lcmNlTnVtYmVyUHJvcGVydHksXG4gICAgTnVtYmVySW5wdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBQYWdlRXZlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wYWdpbmF0b3InO1xuaW1wb3J0IHsgVHJhbnNsYXRlTGlicmFyeVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvdHJhbnNsYXRpb24tcmVnaXN0cnkuc2VydmljZVwiO1xuaW1wb3J0IHsgTUFUX1NFTEVDVF9DT05GSUcgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5jb25zdCBERUZBVUxUX1BBR0VfU0laRSA9IDUwO1xuXG5leHBvcnQgaW50ZXJmYWNlIFFNU1BhZ2luYXRpb25PcHRpb24ge1xuICAgIHBhZ2VTaXplPzogbnVtYmVyO1xuICAgIHBhZ2VTaXplT3B0aW9ucz86IG51bWJlcltdO1xuICAgIGxlbmd0aDogbnVtYmVyO1xufVxuXG5leHBvcnQgZW51bSBQYWdpbmF0aW9uU2l6ZSB7XG4gICAgc21hbGwgPSAnc21hbGwnLFxuICAgIG1lZGl1bSA9ICdtZWRpdW0nLFxuICAgIGxhcmdlID0gJ2xhcmdlJyxcbiAgICBtb2JpbGUgPSAnbW9iaWxlJ1xufVxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdxbXMtcGFnaW5hdG9yJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcW1zLXBhZ2luYXRvci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vcW1zLXBhZ2luYXRvci5jb21wb25lbnQuc2NzcyddLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ2NsYXNzJzogJ3Ftcy1wYWdpbmF0b3InXG4gICAgfSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTUFUX1NFTEVDVF9DT05GSUcsXG4gICAgICAgICAgICB1c2VWYWx1ZTogeyBvdmVybGF5UGFuZWxDbGFzczogJ2N1c3RvbUNES3BhbmVsJyB9LFxuICAgICAgICB9LFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIFFNU1BhZ2luYXRvckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgc2l6ZU1lZGl1bTogc3RyaW5nID0gJ21lZGl1bSc7XG4gICAgc2l6ZVNtYWxsOiBzdHJpbmcgPSAnc21hbGwnO1xuICAgIHNpemVMYXJnZTogc3RyaW5nID0gJ2xhcmdlJztcbiAgICBzaXplTW9iaWxlOiBzdHJpbmcgPSAnbW9iaWxlJztcbiAgICBMQU5HOiBhbnk7XG5cbiAgICBASW5wdXQoKSBudW1IaWRkZW46IG51bWJlciA9IDEwO1xuICAgIEBJbnB1dCgpIHNpemU6IHN0cmluZyA9IFBhZ2luYXRpb25TaXplLmxhcmdlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IHBhZ2VTaXplT3B0aW9ucygpOiBudW1iZXJbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wYWdlU2l6ZU9wdGlvbnM7XG4gICAgfVxuICAgIHNldCBwYWdlU2l6ZU9wdGlvbnModmFsdWU6IG51bWJlcltdKSB7XG4gICAgICAgIHRoaXMuX3BhZ2VTaXplT3B0aW9ucyA9ICh2YWx1ZSB8fCBbXSkubWFwKHAgPT4gY29lcmNlTnVtYmVyUHJvcGVydHkocCkpO1xuICAgIH1cbiAgICBwcml2YXRlIF9wYWdlU2l6ZU9wdGlvbnM6IG51bWJlcltdID0gWzUsIDEwLCAyNSwgMTAwXTtcblxuICAgIEBJbnB1dCgpXG4gICAgZ2V0IHBhZ2VTaXplKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wYWdlU2l6ZTtcbiAgICB9XG4gICAgc2V0IHBhZ2VTaXplKHZhbHVlOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5fcGFnZVNpemUgPSBNYXRoLm1heChjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2YWx1ZSksIDApO1xuICAgICAgICB0aGlzLl91cGRhdGVEaXNwbGF5ZWRQYWdlU2l6ZU9wdGlvbnMoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfcGFnZVNpemU6IG51bWJlciA9IDEwO1xuXG4gICAgQElucHV0KClcbiAgICBnZXQgbGVuZ3RoKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl9sZW5ndGg7XG4gICAgfVxuICAgIHNldCBsZW5ndGgodmFsdWU6IG51bWJlcikge1xuICAgICAgICB0aGlzLl9sZW5ndGggPSBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2YWx1ZSk7XG4gICAgICAgIHRoaXMuZ2V0TnVtYmVyT2ZQYWdlcygpO1xuICAgIH1cbiAgICBwcml2YXRlIF9sZW5ndGggPSAwO1xuXG4gICAgQElucHV0KClcbiAgICBnZXQgcGFnZUluZGV4KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wYWdlSW5kZXggKyAxO1xuICAgIH1cbiAgICBzZXQgcGFnZUluZGV4KHZhbHVlOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5wcmV2aW91c1BhZ2VJbmRleCA9IHRoaXMuX3BhZ2VJbmRleDtcbiAgICAgICAgdGhpcy5fcGFnZUluZGV4ID0gTWF0aC5tYXgoY29lcmNlTnVtYmVyUHJvcGVydHkodmFsdWUgLSAodGhpcy5pc0ZpcnN0TG9hZCA/IDAgOiAxKSksIDApO1xuICAgICAgICB0aGlzLmRpc3BsYXlOdW1iZXJPZlBhZ2VzID0gdGhpcy5wYWdpbmF0aW9uKHRoaXMuX3BhZ2VJbmRleCwgdGhpcy5udW1iZXJPZlBhZ2VzLmxlbmd0aCk7XG5cbiAgICAgICAgdGhpcy5nZXROdW1iZXJPZlBhZ2VzKCk7XG4gICAgfVxuICAgIF9wYWdlSW5kZXggPSAwO1xuXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IHBhZ2U6IEV2ZW50RW1pdHRlcjxQYWdlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxQYWdlRXZlbnQ+KCk7XG4gICAgcHJldmlvdXNQYWdlSW5kZXg/OiBudW1iZXIgPSAwO1xuICAgIG51bWJlck9mUGFnZXM6IG51bWJlcltdID0gW107XG4gICAgZGlzcGxheU51bWJlck9mUGFnZXM6IHN0cmluZ1tdID0gW107XG4gICAgbWluUGFnZTogbnVtYmVyO1xuICAgIG1heHBhZ2U6IG51bWJlcjtcbiAgICBpc0ZpcnN0TG9hZDogYm9vbGVhbiA9IHRydWU7XG4gICAgbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBwcml2YXRlIF9vdmVybGF5UGFuZWxDbGFzczogc3RyaW5nW10gfCBzdHJpbmc7XG4gICAgQElucHV0KCdvdmVybGF5UGFuZWxDbGFzcycpXG4gICAgc2V0IG92ZXJsYXlDbGFzcyh2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10pIHtcbiAgICAgICAgdGhpcy5fb3ZlcmxheVBhbmVsQ2xhc3MgPSB2YWx1ZTtcbiAgICB9XG4gICAgZ2V0IG92ZXJsYXlDbGFzcygpOiBzdHJpbmdbXSB8IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRDbGFzczogc3RyaW5nW10gPSBbJ3Ftcy1zZWxlY3QtcGFuZWwnXTtcbiAgICAgICAgaWYgKHR5cGVvZiAodGhpcy5fb3ZlcmxheVBhbmVsQ2xhc3MpID09PSAnc3RyaW5nJylcbiAgICAgICAgICAgIHJldHVybiBbLi4uZGVmYXVsdENsYXNzLCB0aGlzLl9vdmVybGF5UGFuZWxDbGFzc107XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMuX292ZXJsYXlQYW5lbENsYXNzKSlcbiAgICAgICAgICAgIHJldHVybiBbLi4uZGVmYXVsdENsYXNzLCAuLi50aGlzLl9vdmVybGF5UGFuZWxDbGFzc107XG4gICAgICAgIHJldHVybiBkZWZhdWx0Q2xhc3M7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSB0cmFuczogVHJhbnNsYXRlTGlicmFyeVNlcnZpY2UpIHsgfVxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBjb25zdCBsYW5nRGVmYXVsdCA9ICdlbic7XG4gICAgICAgIHRoaXMudHJhbnMuZ2V0TGFuZ3VhZ2VTdWJqZWN0JC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xuICAgICAgICAgICAgdGhpcy5MQU5HID0gdGhpcy50cmFucy5nZXRPYmplY3RMYW5nKHJlcyB8fCBsYW5nRGVmYXVsdCk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmdldE51bWJlck9mUGFnZXMoKTtcbiAgICAgICAgdGhpcy5pc0ZpcnN0TG9hZCA9IGZhbHNlO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLm5nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgICAgICB0aGlzLm5nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF91cGRhdGVEaXNwbGF5ZWRQYWdlU2l6ZU9wdGlvbnMoKSB7XG4gICAgICAgIGlmICghdGhpcy5wYWdlU2l6ZSkge1xuICAgICAgICAgICAgdGhpcy5fcGFnZVNpemUgPVxuICAgICAgICAgICAgICAgIHRoaXMucGFnZVNpemVPcHRpb25zLmxlbmd0aCAhPSAwID8gdGhpcy5wYWdlU2l6ZU9wdGlvbnNbMF0gOiBERUZBVUxUX1BBR0VfU0laRTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldE51bWJlck9mUGFnZXMoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5wYWdlU2l6ZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubnVtYmVyT2ZQYWdlcyA9IFtdO1xuICAgICAgICBjb25zdCBBcnJsZW5ndGggPSBNYXRoLmNlaWwodGhpcy5fbGVuZ3RoIC8gdGhpcy5fcGFnZVNpemUpO1xuICAgICAgICBmb3IgKGxldCBpbmRleCA9IDE7IGluZGV4IDw9IEFycmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICAgICAgdGhpcy5udW1iZXJPZlBhZ2VzLnB1c2goaW5kZXgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubWluUGFnZSA9IDE7XG4gICAgICAgIHRoaXMubWF4cGFnZSA9IHRoaXMubnVtYmVyT2ZQYWdlcy5sZW5ndGggPyB0aGlzLm51bWJlck9mUGFnZXMubGVuZ3RoIDogMTtcbiAgICAgICAgdGhpcy5yZW5kZXJEaXNwbGF5TnVtYmVyT2ZwYWdlcygpO1xuICAgIH1cblxuICAgIHJlbmRlckRpc3BsYXlOdW1iZXJPZnBhZ2VzKCkge1xuICAgICAgICBpZiAodGhpcy5udW1iZXJPZlBhZ2VzLmxlbmd0aCA8PSA1KSB7XG4gICAgICAgICAgICB0aGlzLmRpc3BsYXlOdW1iZXJPZlBhZ2VzID0gdGhpcy5udW1iZXJPZlBhZ2VzLm1hcCh4ID0+IHgudG9TdHJpbmcoKSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5kaXNwbGF5TnVtYmVyT2ZQYWdlcyA9IHRoaXMubnVtYmVyT2ZQYWdlcy5tYXAoeCA9PiB4LnRvU3RyaW5nKCkpO1xuICAgICAgICB0aGlzLmRpc3BsYXlOdW1iZXJPZlBhZ2VzID0gdGhpcy5wYWdpbmF0aW9uKHRoaXMucGFnZUluZGV4LCB0aGlzLm51bWJlck9mUGFnZXMubGVuZ3RoKTtcbiAgICB9XG4gICAgY2hhbmdlUGFnZShwYWdlOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wYWdlSW5kZXggPSBwYWdlO1xuICAgICAgICB0aGlzLl9lbWl0UGFnZUV2ZW50KHRoaXMucHJldmlvdXNQYWdlSW5kZXgpO1xuICAgICAgICB0aGlzLmRpc3BsYXlOdW1iZXJPZlBhZ2VzID0gdGhpcy5wYWdpbmF0aW9uKHBhcnNlSW50KHBhZ2UudG9TdHJpbmcoKSksIHRoaXMubnVtYmVyT2ZQYWdlcy5sZW5ndGgpO1xuICAgIH1cblxuICAgIHBhZ2luYXRpb24oYywgbSkge1xuICAgICAgICBsZXQgY3VycmVudCA9IGM7XG4gICAgICAgIGxldCBsYXN0ID0gbTtcbiAgICAgICAgbGV0IGRlbHRhID0gMTtcbiAgICAgICAgaWYgKGN1cnJlbnQgPT0gdGhpcy5taW5QYWdlIHx8IGN1cnJlbnQgPT0gdGhpcy5tYXhwYWdlKSB7XG4gICAgICAgICAgICBkZWx0YSA9IDM7XG4gICAgICAgIH0gZWxzZSBpZiAoY3VycmVudCA9PSAodGhpcy5taW5QYWdlICsgMSkpIHtcbiAgICAgICAgICAgIGRlbHRhID0gMjtcbiAgICAgICAgfSBlbHNlIGlmIChjdXJyZW50ID09ICh0aGlzLm1heHBhZ2UgLSAxKSkge1xuICAgICAgICAgICAgZGVsdGEgPSAyO1xuICAgICAgICB9XG5cblxuICAgICAgICBsZXQgbGVmdCA9IGN1cnJlbnQgLSBkZWx0YTtcbiAgICAgICAgbGV0IHJpZ2h0ID0gY3VycmVudCArIGRlbHRhICsgMTtcbiAgICAgICAgbGV0IHJhbmdlID0gW107XG4gICAgICAgIGxldCByYW5nZVdpdGhEb3RzID0gW107XG4gICAgICAgIGxldCBsO1xuXG4gICAgICAgIGZvciAobGV0IGkgPSAxOyBpIDw9IGxhc3Q7IGkrKykge1xuICAgICAgICAgICAgaWYgKGkgPT0gMSB8fCBpID09IGxhc3QgfHwgaSA+PSBsZWZ0ICYmIGkgPCByaWdodCkge1xuICAgICAgICAgICAgICAgIHJhbmdlLnB1c2goaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGxldCBpIG9mIHJhbmdlKSB7XG4gICAgICAgICAgICBpZiAobCkge1xuICAgICAgICAgICAgICAgIGlmIChpIC0gbCAhPT0gMSkge1xuICAgICAgICAgICAgICAgICAgICByYW5nZVdpdGhEb3RzLnB1c2goJy4uLicpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJhbmdlV2l0aERvdHMucHVzaChpKTtcbiAgICAgICAgICAgIGwgPSBpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJhbmdlV2l0aERvdHM7XG4gICAgfVxuICAgIG5leHRQYWdlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnByZXZpb3VzUGFnZUluZGV4ID0gdGhpcy5wYWdlSW5kZXg7XG4gICAgICAgIHRoaXMucGFnZUluZGV4ID0gdGhpcy5wYWdlSW5kZXggKyAxO1xuICAgICAgICB0aGlzLl9lbWl0UGFnZUV2ZW50KHRoaXMucHJldmlvdXNQYWdlSW5kZXgpO1xuXG4gICAgICAgIHRoaXMuZGlzcGxheU51bWJlck9mUGFnZXMgPSB0aGlzLnBhZ2luYXRpb24odGhpcy5wYWdlSW5kZXgsIHRoaXMubnVtYmVyT2ZQYWdlcy5sZW5ndGgpO1xuICAgIH1cbiAgICBwcmV2aW91c1BhZ2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucHJldmlvdXNQYWdlSW5kZXggPSB0aGlzLnBhZ2VJbmRleDtcbiAgICAgICAgdGhpcy5wYWdlSW5kZXggPSB0aGlzLnBhZ2VJbmRleCAtIDE7XG4gICAgICAgIHRoaXMuX2VtaXRQYWdlRXZlbnQodGhpcy5wcmV2aW91c1BhZ2VJbmRleCk7XG5cbiAgICAgICAgdGhpcy5kaXNwbGF5TnVtYmVyT2ZQYWdlcyA9IHRoaXMucGFnaW5hdGlvbih0aGlzLnBhZ2VJbmRleCwgdGhpcy5udW1iZXJPZlBhZ2VzLmxlbmd0aCk7XG4gICAgfVxuXG4gICAgX2NoYW5nZVBhZ2VTaXplKHBhZ2VTaXplOiBudW1iZXIpIHtcbiAgICAgICAgY29uc3Qgc3RhcnRJbmRleCA9IHRoaXMuX3BhZ2VJbmRleCAqIHRoaXMucGFnZVNpemU7XG4gICAgICAgIGNvbnN0IHByZXZpb3VzUGFnZUluZGV4ID0gdGhpcy5fcGFnZUluZGV4O1xuXG4gICAgICAgIHRoaXMucHJldmlvdXNQYWdlSW5kZXggPSBwcmV2aW91c1BhZ2VJbmRleDtcbiAgICAgICAgdGhpcy5wYWdlSW5kZXggPSAoTWF0aC5mbG9vcihzdGFydEluZGV4IC8gcGFnZVNpemUpIHx8IDApICsgMTtcbiAgICAgICAgdGhpcy5wYWdlU2l6ZSA9IHBhZ2VTaXplO1xuXG4gICAgICAgIHRoaXMuX2VtaXRQYWdlRXZlbnQodGhpcy5wcmV2aW91c1BhZ2VJbmRleCk7XG4gICAgICAgIHRoaXMuZ2V0TnVtYmVyT2ZQYWdlcygpO1xuICAgIH1cblxuICAgIF9jaGFuZ2VQYWdlTnVtYmVyKHBhZ2VOdW1iZXI6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLnByZXZpb3VzUGFnZUluZGV4ID0gdGhpcy5wYWdlSW5kZXg7XG4gICAgICAgIHRoaXMucGFnZUluZGV4ID0gcGFnZU51bWJlcjtcbiAgICAgICAgdGhpcy5fZW1pdFBhZ2VFdmVudCh0aGlzLnByZXZpb3VzUGFnZUluZGV4KTtcbiAgICAgICAgdGhpcy5nZXROdW1iZXJPZlBhZ2VzKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZW1pdFBhZ2VFdmVudChwcmV2aW91c1BhZ2VJbmRleDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMucGFnZS5lbWl0KHtcbiAgICAgICAgICAgIHByZXZpb3VzUGFnZUluZGV4LFxuICAgICAgICAgICAgcGFnZUluZGV4OiB0aGlzLl9wYWdlSW5kZXgsXG4gICAgICAgICAgICBwYWdlU2l6ZTogdGhpcy5wYWdlU2l6ZSxcbiAgICAgICAgICAgIGxlbmd0aDogdGhpcy5sZW5ndGgsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpIHtcbiAgICB9XG59XG5cbiIsIjxkaXYgY2xhc3M9XCJxbXMtcGFnaW5hdG9yLW91dGVyLWNvbnRhaW5lclwiIFtjbGFzcy5zaXplLXNtYWxsXT0nc2l6ZSA9PSBzaXplU21hbGwnIFtjbGFzcy5kLW5vbmVdPSdudW1IaWRkZW4gPiBsZW5ndGgnPlxuICAgIDxkaXYgY2xhc3M9XCJtYXQtcGFnaW5hdG9yLWNvbnRhaW5lclwiICpuZ0lmPSdzaXplICE9IHNpemVNb2JpbGUnPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicW1zLXRvdGFsLXJlc3VsdFwiIFtjbGFzcy5tci1iLXNpemUtc21hbGxdPSdzaXplID09IHNpemVTbWFsbCc+XG4gICAgICAgICAgICA8c3Bhbj57e0xBTkcuUkVTVUxUU319OiB7e2xlbmd0aH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInFtcy1wYWdpbmF0b3ItcGFnZS1zaXplXCIgKm5nSWY9J3NpemUgIT0gc2l6ZVNtYWxsJz5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJxbXMtcGFnZXNpemUtbGFiZWxcIj57e0xBTkcuUk9XX1BFUl9QQUdFfX06PC9kaXY+XG4gICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgcW1zLWZvcm0gcW1zLXNlbGVjdC1pbnB1dCBjbGFzcz1cInFtcy1mb3JtLXBhZ2Utc2l6ZVwiIGFwcGVhcmFuY2U9XCJmaWxsXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1zZWxlY3QgW3BhbmVsQ2xhc3NdPVwib3ZlcmxheUNsYXNzXCIgW3ZhbHVlXT1cInBhZ2VTaXplXCJcbiAgICAgICAgICAgICAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJfY2hhbmdlUGFnZVNpemUoJGV2ZW50LnZhbHVlKVwiIHFtcy1zZWxlY3QgZGlzYWJsZU9wdGlvbkNlbnRlcmluZz5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGl0ZW0gb2YgcGFnZVNpemVPcHRpb25zXCIgW3ZhbHVlXT1cIml0ZW1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0gfX1cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwicW1zLXBhZ2luYXRvci1wYWdlLXNpemVcIiAqbmdJZj0nc2l6ZSAhPSBzaXplTWVkaXVtICYmIHNpemUgIT0gc2l6ZVNtYWxsJz5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJxbXMtcGFnZXNpemUtbGFiZWwgXCI+e3tMQU5HLkpVTV9UT19QQUdFfX06PC9kaXY+XG5cbiAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBxbXMtZm9ybSBxbXMtc2VsZWN0LWlucHV0IGNsYXNzPVwicW1zLWZvcm0tcGFnZS1zaXplIHFtcy1mb3JtLXNlbGVjdC1wYWdlLXNpemVcIlxuICAgICAgICAgICAgICAgIGFwcGVhcmFuY2U9XCJmaWxsXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1zZWxlY3QgW3BhbmVsQ2xhc3NdPVwib3ZlcmxheUNsYXNzXCIgW3ZhbHVlXT1cInBhZ2VJbmRleFwiXG4gICAgICAgICAgICAgICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwiX2NoYW5nZVBhZ2VOdW1iZXIoJGV2ZW50LnZhbHVlKVwiIHFtcy1zZWxlY3QgZGlzYWJsZU9wdGlvbkNlbnRlcmluZz5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGl0ZW0gb2YgbnVtYmVyT2ZQYWdlc1wiIFt2YWx1ZV09XCJpdGVtXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtIH19XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInFtcy1wYWdpbmF0b3ItcmFuZ2UtYWN0aW9uc1wiPlxuICAgICAgICAgICAgPHVsIGNsYXNzPVwibmF2LWxpc3QtcGFnaW5hdGlvblwiPlxuICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cIm5hdi1pdGVtXCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gcW1zLWJ0bi1pY29uIGNvbG9yPVwibGlnaHRcIiAoY2xpY2spPSdwcmV2aW91c1BhZ2UoKScgW2Rpc2FibGVkXT0nbWluUGFnZSA9PSBwYWdlSW5kZXgnPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPmNoZXZyb25fbGVmdDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9J2xldCBpdGVtIG9mIGRpc3BsYXlOdW1iZXJPZlBhZ2VzJz5cbiAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwibmF2LWl0ZW1cIj4gPHNwYW4gKm5nSWY9J2l0ZW0gPT0gXCIuLi5cIicgY2xhc3M9XCJxbXMtM2RcIj57e2l0ZW19fTwvc3Bhbj48L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJuYXYtaXRlbVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj0naXRlbSAhPSBcIi4uLlwiJyBxbXMtYnRuLWljb24gY29sb3I9XCJsaWdodFwiIFtjbGFzcy5zZWxlY3RlZF09J3BhZ2VJbmRleCA9PSBpdGVtJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09J3BhZ2VJbmRleCA9PSBpdGVtJyAoY2xpY2spPSdjaGFuZ2VQYWdlKGl0ZW0pJz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2l0ZW19fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwibmF2LWl0ZW1cIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBxbXMtYnRuLWljb24gY29sb3I9XCJsaWdodFwiIChjbGljayk9J25leHRQYWdlKCknIFtkaXNhYmxlZF09J21heHBhZ2UgPT0gcGFnZUluZGV4Jz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5jaGV2cm9uX3JpZ2h0PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIDwvdWw+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cIm1hdC1wYWdpbmF0b3ItY29udGFpbmVyLW1vYmlsZVwiICpuZ0lmPSdzaXplID09IHNpemVNb2JpbGUnPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWF0LXBhZ2luYXRvci1jb250YWluZXJcIiAqbmdJZj0nc2l6ZSA9PSBzaXplTW9iaWxlJz5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJxbXMtcGFnaW5hdG9yLXJhbmdlLWFjdGlvbnNcIj5cbiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJuYXYtbGlzdC1wYWdpbmF0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cIm5hdi1pdGVtXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHFtcy1idG4taWNvbiBjb2xvcj1cImxpZ2h0XCIgKGNsaWNrKT0ncHJldmlvdXNQYWdlKCknIFtkaXNhYmxlZF09J21pblBhZ2UgPT0gcGFnZUluZGV4Jz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+Y2hldnJvbl9sZWZ0PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj0nbGV0IGl0ZW0gb2YgZGlzcGxheU51bWJlck9mUGFnZXMnPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwibmF2LWl0ZW1cIj4gPHNwYW4gKm5nSWY9J2l0ZW0gPT0gXCIuLi5cIicgY2xhc3M9XCJxbXMtM2RcIj57e2l0ZW19fTwvc3Bhbj48L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwibmF2LWl0ZW1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPSdpdGVtICE9IFwiLi4uXCInIHFtcy1idG4taWNvbiBjb2xvcj1cImxpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLnNlbGVjdGVkXT0ncGFnZUluZGV4ID09IGl0ZW0nIFtkaXNhYmxlZF09J3BhZ2VJbmRleCA9PSBpdGVtJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPSdjaGFuZ2VQYWdlKGl0ZW0pJz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tpdGVtfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJuYXYtaXRlbVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBxbXMtYnRuLWljb24gY29sb3I9XCJsaWdodFwiIChjbGljayk9J25leHRQYWdlKCknIFtkaXNhYmxlZF09J21heHBhZ2UgPT0gcGFnZUluZGV4Jz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+Y2hldnJvbl9yaWdodDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwicW1zLXRvdGFsLXJlc3VsdFwiPlxuICAgICAgICAgICAgPHNwYW4+e3tMQU5HLlJFU1VMVFN9fToge3tsZW5ndGh9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4O1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInFtcy1wYWdpbmF0b3ItcGFnZS1zaXplXCIgKm5nSWY9J3NpemUgIT0gc2l6ZVNtYWxsJz5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicW1zLXBhZ2VzaXplLWxhYmVsXCI+e3tMQU5HLlJPV19QRVJfUEFHRX19OjwvZGl2PlxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBxbXMtZm9ybSBxbXMtc2VsZWN0LWlucHV0IGNsYXNzPVwicW1zLWZvcm0tcGFnZS1zaXplXCIgYXBwZWFyYW5jZT1cImZpbGxcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1zZWxlY3QgW3BhbmVsQ2xhc3NdPVwib3ZlcmxheUNsYXNzXCIgW3ZhbHVlXT1cInBhZ2VTaXplXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwiX2NoYW5nZVBhZ2VTaXplKCRldmVudC52YWx1ZSlcIiBxbXMtc2VsZWN0PlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGl0ZW0gb2YgcGFnZVNpemVPcHRpb25zXCIgW3ZhbHVlXT1cIml0ZW1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicW1zLXBhZ2luYXRvci1wYWdlLXNpemVcIiAqbmdJZj0nc2l6ZSAhPSBzaXplTWVkaXVtICYmIHNpemUgIT0gc2l6ZVNtYWxsJz5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicW1zLXBhZ2VzaXplLWxhYmVsIFwiPnt7TEFORy5KVU1fVE9fUEFHRX19OjwvZGl2PlxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBxbXMtZm9ybSBxbXMtc2VsZWN0LWlucHV0IGNsYXNzPVwicW1zLWZvcm0tcGFnZS1zaXplIHFtcy1mb3JtLXNlbGVjdC1wYWdlLXNpemVcIlxuICAgICAgICAgICAgICAgICAgICBhcHBlYXJhbmNlPVwiZmlsbFwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LXNlbGVjdCBbcGFuZWxDbGFzc109XCJvdmVybGF5Q2xhc3NcIiBbdmFsdWVdPVwicGFnZUluZGV4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwiX2NoYW5nZVBhZ2VOdW1iZXIoJGV2ZW50LnZhbHVlKVwiIHFtcy1zZWxlY3Q+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBudW1iZXJPZlBhZ2VzXCIgW3ZhbHVlXT1cIml0ZW1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgPC9kaXY+XG5cbjwvZGl2PiJdfQ==
234
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicW1zLXBhZ2luYXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9xbXMtYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvcW1zLXBhZ2luYXRvci9xbXMtcGFnaW5hdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Ftcy1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9xbXMtcGFnaW5hdG9yL3Ftcy1wYWdpbmF0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQWMsWUFBWSxFQUFnQixLQUFLLEVBQW9CLE1BQU0sRUFBbUIsTUFBTSxlQUFlLENBQUM7QUFDbkosT0FBTyxFQUNILG9CQUFvQixHQUV2QixNQUFNLHVCQUF1QixDQUFDO0FBRy9CLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzdELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7O0FBRTNDLE1BQU0saUJBQWlCLEdBQUcsRUFBRSxDQUFDO0FBUTdCLE1BQU0sQ0FBTixJQUFZLGNBS1g7QUFMRCxXQUFZLGNBQWM7SUFDdEIsaUNBQWUsQ0FBQTtJQUNmLG1DQUFpQixDQUFBO0lBQ2pCLGlDQUFlLENBQUE7SUFDZixtQ0FBaUIsQ0FBQTtBQUNyQixDQUFDLEVBTFcsY0FBYyxLQUFkLGNBQWMsUUFLekI7QUFlRCxNQUFNLE9BQU8scUJBQXFCO0lBUzlCLElBQ0ksZUFBZTtRQUNmLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQ2pDLENBQUM7SUFDRCxJQUFJLGVBQWUsQ0FBQyxLQUFlO1FBQy9CLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFHRCxJQUNJLFFBQVE7UUFDUixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDMUIsQ0FBQztJQUNELElBQUksUUFBUSxDQUFDLEtBQWE7UUFDdEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzFELElBQUksQ0FBQywrQkFBK0IsRUFBRSxDQUFDO0lBQzNDLENBQUM7SUFHRCxJQUNJLE1BQU07UUFDTixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDeEIsQ0FBQztJQUNELElBQUksTUFBTSxDQUFDLEtBQWE7UUFDcEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBR0QsSUFDSSxTQUFTO1FBQ1QsT0FBTyxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBQ0QsSUFBSSxTQUFTLENBQUMsS0FBYTtRQUN2QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUN6QyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3hGLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUV4RixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBYUQsSUFDSSxZQUFZLENBQUMsS0FBd0I7UUFDckMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQztJQUNwQyxDQUFDO0lBQ0QsSUFBSSxZQUFZO1FBQ1osTUFBTSxZQUFZLEdBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3BELElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLFFBQVE7WUFDN0MsT0FBTyxDQUFDLEdBQUcsWUFBWSxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3RELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUM7WUFDdEMsT0FBTyxDQUFDLEdBQUcsWUFBWSxFQUFFLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDekQsT0FBTyxZQUFZLENBQUM7SUFDeEIsQ0FBQztJQUVELFlBQW9CLEtBQThCO1FBQTlCLFVBQUssR0FBTCxLQUFLLENBQXlCO1FBekVsRCxlQUFVLEdBQVcsUUFBUSxDQUFDO1FBQzlCLGNBQVMsR0FBVyxPQUFPLENBQUM7UUFDNUIsY0FBUyxHQUFXLE9BQU8sQ0FBQztRQUM1QixlQUFVLEdBQVcsUUFBUSxDQUFDO1FBR3JCLGNBQVMsR0FBVyxFQUFFLENBQUM7UUFDdkIsU0FBSSxHQUFXLGNBQWMsQ0FBQyxLQUFLLENBQUM7UUFRckMscUJBQWdCLEdBQWEsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztRQVU5QyxjQUFTLEdBQVcsRUFBRSxDQUFDO1FBVXZCLFlBQU8sR0FBRyxDQUFDLENBQUM7UUFhcEIsZUFBVSxHQUFHLENBQUMsQ0FBQztRQUVJLFNBQUksR0FBNEIsSUFBSSxZQUFZLEVBQWEsQ0FBQztRQUNqRixzQkFBaUIsR0FBWSxDQUFDLENBQUM7UUFDL0Isa0JBQWEsR0FBYSxFQUFFLENBQUM7UUFDN0IseUJBQW9CLEdBQWEsRUFBRSxDQUFDO1FBR3BDLGdCQUFXLEdBQVksSUFBSSxDQUFDO1FBQzVCLGtCQUFhLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQWdCa0IsQ0FBQztJQUN2RCxRQUFRO1FBQ0osTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNqRixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEdBQUcsSUFBSSxXQUFXLENBQUMsQ0FBQztRQUM3RCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO0lBQzdCLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFTywrQkFBK0I7UUFDbkMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsU0FBUztnQkFDVixJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDO1FBQ3ZGLENBQUM7SUFDTCxDQUFDO0lBRUQsZ0JBQWdCO1FBQ1osSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNqQixPQUFPO1FBQ1gsQ0FBQztRQUNELElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ3hCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDM0QsS0FBSyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxJQUFJLFNBQVMsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQzlDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25DLENBQUM7UUFDRCxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQztRQUNqQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pFLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFRCwwQkFBMEI7UUFDdEIsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNqQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUN0RSxPQUFPO1FBQ1gsQ0FBQztRQUNELElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ3RFLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMzRixDQUFDO0lBQ0QsVUFBVSxDQUFDLElBQVk7UUFDbkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN0RyxDQUFDO0lBRUQsVUFBVSxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ1gsSUFBSSxPQUFPLEdBQUcsQ0FBQyxDQUFDO1FBQ2hCLElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQztRQUNiLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNkLElBQUksT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNyRCxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsQ0FBQzthQUFNLElBQUksT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3ZDLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDZCxDQUFDO2FBQU0sSUFBSSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDdkMsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNkLENBQUM7UUFHRCxJQUFJLElBQUksR0FBRyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQzNCLElBQUksS0FBSyxHQUFHLE9BQU8sR0FBRyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ2hDLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNmLElBQUksYUFBYSxHQUFHLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsQ0FBQztRQUVOLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsR0FBRyxLQUFLLEVBQUUsQ0FBQztnQkFDaEQsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNsQixDQUFDO1FBQ0wsQ0FBQztRQUVELEtBQUssSUFBSSxDQUFDLElBQUksS0FBSyxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDSixJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7b0JBQ2QsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDOUIsQ0FBQztZQUNMLENBQUM7WUFDRCxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3RCLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDVixDQUFDO1FBRUQsT0FBTyxhQUFhLENBQUM7SUFDekIsQ0FBQztJQUNELFFBQVE7UUFDSixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUN4QyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFFNUMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzNGLENBQUM7SUFDRCxZQUFZO1FBQ1IsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDeEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBRTVDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMzRixDQUFDO0lBRUQsZUFBZSxDQUFDLFFBQWdCO1FBQzVCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUNuRCxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7UUFFMUMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGlCQUFpQixDQUFDO1FBQzNDLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFFekIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsaUJBQWlCLENBQUMsVUFBa0I7UUFDaEMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDeEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxVQUFVLENBQUM7UUFDNUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRU8sY0FBYyxDQUFDLGlCQUF5QjtRQUM1QyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztZQUNYLGlCQUFpQjtZQUNqQixTQUFTLEVBQUUsSUFBSSxDQUFDLFVBQVU7WUFDMUIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtTQUN0QixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLENBQUM7K0dBN01RLHFCQUFxQjttR0FBckIscUJBQXFCLHlUQVBuQjtZQUNQO2dCQUNJLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFFBQVEsRUFBRSxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFO2FBQ3BEO1NBQ0osMEJDckNMLHcxTUFvSE07OzRGRDdFTyxxQkFBcUI7a0JBZGpDLFNBQVM7K0JBQ0ksZUFBZSxRQUduQjt3QkFDRixPQUFPLEVBQUUsZUFBZTtxQkFDM0IsYUFDVTt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixRQUFRLEVBQUUsRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRTt5QkFDcEQ7cUJBQ0o7NEZBU1EsU0FBUztzQkFBakIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBRUYsZUFBZTtzQkFEbEIsS0FBSztnQkFVRixRQUFRO3NCQURYLEtBQUs7Z0JBV0YsTUFBTTtzQkFEVCxLQUFLO2dCQVdGLFNBQVM7c0JBRFosS0FBSztnQkFhYSxJQUFJO3NCQUF0QixNQUFNO2dCQVdILFlBQVk7c0JBRGYsS0FBSzt1QkFBQyxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSG9zdCwgSW5qZWN0LCBJbnB1dCwgT25Jbml0LCBPcHRpb25hbCwgT3V0cHV0LCBTZWxmLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgY29lcmNlTnVtYmVyUHJvcGVydHksXG4gICAgTnVtYmVySW5wdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBQYWdlRXZlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wYWdpbmF0b3InO1xuaW1wb3J0IHsgVHJhbnNsYXRlTGlicmFyeVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvdHJhbnNsYXRpb24tcmVnaXN0cnkuc2VydmljZVwiO1xuaW1wb3J0IHsgTUFUX1NFTEVDVF9DT05GSUcgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5jb25zdCBERUZBVUxUX1BBR0VfU0laRSA9IDUwO1xuXG5leHBvcnQgaW50ZXJmYWNlIFFNU1BhZ2luYXRpb25PcHRpb24ge1xuICAgIHBhZ2VTaXplPzogbnVtYmVyO1xuICAgIHBhZ2VTaXplT3B0aW9ucz86IG51bWJlcltdO1xuICAgIGxlbmd0aDogbnVtYmVyO1xufVxuXG5leHBvcnQgZW51bSBQYWdpbmF0aW9uU2l6ZSB7XG4gICAgc21hbGwgPSAnc21hbGwnLFxuICAgIG1lZGl1bSA9ICdtZWRpdW0nLFxuICAgIGxhcmdlID0gJ2xhcmdlJyxcbiAgICBtb2JpbGUgPSAnbW9iaWxlJ1xufVxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdxbXMtcGFnaW5hdG9yJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcW1zLXBhZ2luYXRvci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vcW1zLXBhZ2luYXRvci5jb21wb25lbnQuc2NzcyddLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ2NsYXNzJzogJ3Ftcy1wYWdpbmF0b3InXG4gICAgfSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTUFUX1NFTEVDVF9DT05GSUcsXG4gICAgICAgICAgICB1c2VWYWx1ZTogeyBvdmVybGF5UGFuZWxDbGFzczogJ2N1c3RvbUNES3BhbmVsJyB9LFxuICAgICAgICB9LFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIFFNU1BhZ2luYXRvckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgc2l6ZU1lZGl1bTogc3RyaW5nID0gJ21lZGl1bSc7XG4gICAgc2l6ZVNtYWxsOiBzdHJpbmcgPSAnc21hbGwnO1xuICAgIHNpemVMYXJnZTogc3RyaW5nID0gJ2xhcmdlJztcbiAgICBzaXplTW9iaWxlOiBzdHJpbmcgPSAnbW9iaWxlJztcbiAgICBMQU5HOiBhbnk7XG5cbiAgICBASW5wdXQoKSBudW1IaWRkZW46IG51bWJlciA9IDEwO1xuICAgIEBJbnB1dCgpIHNpemU6IHN0cmluZyA9IFBhZ2luYXRpb25TaXplLmxhcmdlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IHBhZ2VTaXplT3B0aW9ucygpOiBudW1iZXJbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wYWdlU2l6ZU9wdGlvbnM7XG4gICAgfVxuICAgIHNldCBwYWdlU2l6ZU9wdGlvbnModmFsdWU6IG51bWJlcltdKSB7XG4gICAgICAgIHRoaXMuX3BhZ2VTaXplT3B0aW9ucyA9ICh2YWx1ZSB8fCBbXSkubWFwKHAgPT4gY29lcmNlTnVtYmVyUHJvcGVydHkocCkpO1xuICAgIH1cbiAgICBwcml2YXRlIF9wYWdlU2l6ZU9wdGlvbnM6IG51bWJlcltdID0gWzUsIDEwLCAyNSwgMTAwXTtcblxuICAgIEBJbnB1dCgpXG4gICAgZ2V0IHBhZ2VTaXplKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wYWdlU2l6ZTtcbiAgICB9XG4gICAgc2V0IHBhZ2VTaXplKHZhbHVlOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5fcGFnZVNpemUgPSBNYXRoLm1heChjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2YWx1ZSksIDApO1xuICAgICAgICB0aGlzLl91cGRhdGVEaXNwbGF5ZWRQYWdlU2l6ZU9wdGlvbnMoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfcGFnZVNpemU6IG51bWJlciA9IDEwO1xuXG4gICAgQElucHV0KClcbiAgICBnZXQgbGVuZ3RoKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl9sZW5ndGg7XG4gICAgfVxuICAgIHNldCBsZW5ndGgodmFsdWU6IG51bWJlcikge1xuICAgICAgICB0aGlzLl9sZW5ndGggPSBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2YWx1ZSk7XG4gICAgICAgIHRoaXMuZ2V0TnVtYmVyT2ZQYWdlcygpO1xuICAgIH1cbiAgICBwcml2YXRlIF9sZW5ndGggPSAwO1xuXG4gICAgQElucHV0KClcbiAgICBnZXQgcGFnZUluZGV4KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wYWdlSW5kZXggKyAxO1xuICAgIH1cbiAgICBzZXQgcGFnZUluZGV4KHZhbHVlOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5wcmV2aW91c1BhZ2VJbmRleCA9IHRoaXMuX3BhZ2VJbmRleDtcbiAgICAgICAgdGhpcy5fcGFnZUluZGV4ID0gTWF0aC5tYXgoY29lcmNlTnVtYmVyUHJvcGVydHkodmFsdWUgLSAodGhpcy5pc0ZpcnN0TG9hZCA/IDAgOiAxKSksIDApO1xuICAgICAgICB0aGlzLmRpc3BsYXlOdW1iZXJPZlBhZ2VzID0gdGhpcy5wYWdpbmF0aW9uKHRoaXMuX3BhZ2VJbmRleCwgdGhpcy5udW1iZXJPZlBhZ2VzLmxlbmd0aCk7XG5cbiAgICAgICAgdGhpcy5nZXROdW1iZXJPZlBhZ2VzKCk7XG4gICAgfVxuICAgIF9wYWdlSW5kZXggPSAwO1xuXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IHBhZ2U6IEV2ZW50RW1pdHRlcjxQYWdlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxQYWdlRXZlbnQ+KCk7XG4gICAgcHJldmlvdXNQYWdlSW5kZXg/OiBudW1iZXIgPSAwO1xuICAgIG51bWJlck9mUGFnZXM6IG51bWJlcltdID0gW107XG4gICAgZGlzcGxheU51bWJlck9mUGFnZXM6IHN0cmluZ1tdID0gW107XG4gICAgbWluUGFnZTogbnVtYmVyO1xuICAgIG1heHBhZ2U6IG51bWJlcjtcbiAgICBpc0ZpcnN0TG9hZDogYm9vbGVhbiA9IHRydWU7XG4gICAgbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBwcml2YXRlIF9vdmVybGF5UGFuZWxDbGFzczogc3RyaW5nW10gfCBzdHJpbmc7XG4gICAgQElucHV0KCdvdmVybGF5UGFuZWxDbGFzcycpXG4gICAgc2V0IG92ZXJsYXlDbGFzcyh2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10pIHtcbiAgICAgICAgdGhpcy5fb3ZlcmxheVBhbmVsQ2xhc3MgPSB2YWx1ZTtcbiAgICB9XG4gICAgZ2V0IG92ZXJsYXlDbGFzcygpOiBzdHJpbmdbXSB8IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRDbGFzczogc3RyaW5nW10gPSBbJ3Ftcy1zZWxlY3QtcGFuZWwnXTtcbiAgICAgICAgaWYgKHR5cGVvZiAodGhpcy5fb3ZlcmxheVBhbmVsQ2xhc3MpID09PSAnc3RyaW5nJylcbiAgICAgICAgICAgIHJldHVybiBbLi4uZGVmYXVsdENsYXNzLCB0aGlzLl9vdmVybGF5UGFuZWxDbGFzc107XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMuX292ZXJsYXlQYW5lbENsYXNzKSlcbiAgICAgICAgICAgIHJldHVybiBbLi4uZGVmYXVsdENsYXNzLCAuLi50aGlzLl9vdmVybGF5UGFuZWxDbGFzc107XG4gICAgICAgIHJldHVybiBkZWZhdWx0Q2xhc3M7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSB0cmFuczogVHJhbnNsYXRlTGlicmFyeVNlcnZpY2UpIHsgfVxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBjb25zdCBsYW5nRGVmYXVsdCA9ICdlbic7XG4gICAgICAgIHRoaXMudHJhbnMuZ2V0TGFuZ3VhZ2VTdWJqZWN0JC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xuICAgICAgICAgICAgdGhpcy5MQU5HID0gdGhpcy50cmFucy5nZXRPYmplY3RMYW5nKHJlcyB8fCBsYW5nRGVmYXVsdCk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmdldE51bWJlck9mUGFnZXMoKTtcbiAgICAgICAgdGhpcy5pc0ZpcnN0TG9hZCA9IGZhbHNlO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLm5nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgICAgICB0aGlzLm5nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF91cGRhdGVEaXNwbGF5ZWRQYWdlU2l6ZU9wdGlvbnMoKSB7XG4gICAgICAgIGlmICghdGhpcy5wYWdlU2l6ZSkge1xuICAgICAgICAgICAgdGhpcy5fcGFnZVNpemUgPVxuICAgICAgICAgICAgICAgIHRoaXMucGFnZVNpemVPcHRpb25zLmxlbmd0aCAhPSAwID8gdGhpcy5wYWdlU2l6ZU9wdGlvbnNbMF0gOiBERUZBVUxUX1BBR0VfU0laRTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldE51bWJlck9mUGFnZXMoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5wYWdlU2l6ZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubnVtYmVyT2ZQYWdlcyA9IFtdO1xuICAgICAgICBjb25zdCBBcnJsZW5ndGggPSBNYXRoLmNlaWwodGhpcy5fbGVuZ3RoIC8gdGhpcy5fcGFnZVNpemUpO1xuICAgICAgICBmb3IgKGxldCBpbmRleCA9IDE7IGluZGV4IDw9IEFycmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICAgICAgdGhpcy5udW1iZXJPZlBhZ2VzLnB1c2goaW5kZXgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubWluUGFnZSA9IDE7XG4gICAgICAgIHRoaXMubWF4cGFnZSA9IHRoaXMubnVtYmVyT2ZQYWdlcy5sZW5ndGggPyB0aGlzLm51bWJlck9mUGFnZXMubGVuZ3RoIDogMTtcbiAgICAgICAgdGhpcy5yZW5kZXJEaXNwbGF5TnVtYmVyT2ZwYWdlcygpO1xuICAgIH1cblxuICAgIHJlbmRlckRpc3BsYXlOdW1iZXJPZnBhZ2VzKCkge1xuICAgICAgICBpZiAodGhpcy5udW1iZXJPZlBhZ2VzLmxlbmd0aCA8PSA1KSB7XG4gICAgICAgICAgICB0aGlzLmRpc3BsYXlOdW1iZXJPZlBhZ2VzID0gdGhpcy5udW1iZXJPZlBhZ2VzLm1hcCh4ID0+IHgudG9TdHJpbmcoKSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5kaXNwbGF5TnVtYmVyT2ZQYWdlcyA9IHRoaXMubnVtYmVyT2ZQYWdlcy5tYXAoeCA9PiB4LnRvU3RyaW5nKCkpO1xuICAgICAgICB0aGlzLmRpc3BsYXlOdW1iZXJPZlBhZ2VzID0gdGhpcy5wYWdpbmF0aW9uKHRoaXMucGFnZUluZGV4LCB0aGlzLm51bWJlck9mUGFnZXMubGVuZ3RoKTtcbiAgICB9XG4gICAgY2hhbmdlUGFnZShwYWdlOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wYWdlSW5kZXggPSBwYWdlO1xuICAgICAgICB0aGlzLl9lbWl0UGFnZUV2ZW50KHRoaXMucHJldmlvdXNQYWdlSW5kZXgpO1xuICAgICAgICB0aGlzLmRpc3BsYXlOdW1iZXJPZlBhZ2VzID0gdGhpcy5wYWdpbmF0aW9uKHBhcnNlSW50KHBhZ2UudG9TdHJpbmcoKSksIHRoaXMubnVtYmVyT2ZQYWdlcy5sZW5ndGgpO1xuICAgIH1cblxuICAgIHBhZ2luYXRpb24oYywgbSkge1xuICAgICAgICBsZXQgY3VycmVudCA9IGM7XG4gICAgICAgIGxldCBsYXN0ID0gbTtcbiAgICAgICAgbGV0IGRlbHRhID0gMTtcbiAgICAgICAgaWYgKGN1cnJlbnQgPT0gdGhpcy5taW5QYWdlIHx8IGN1cnJlbnQgPT0gdGhpcy5tYXhwYWdlKSB7XG4gICAgICAgICAgICBkZWx0YSA9IDM7XG4gICAgICAgIH0gZWxzZSBpZiAoY3VycmVudCA9PSAodGhpcy5taW5QYWdlICsgMSkpIHtcbiAgICAgICAgICAgIGRlbHRhID0gMjtcbiAgICAgICAgfSBlbHNlIGlmIChjdXJyZW50ID09ICh0aGlzLm1heHBhZ2UgLSAxKSkge1xuICAgICAgICAgICAgZGVsdGEgPSAyO1xuICAgICAgICB9XG5cblxuICAgICAgICBsZXQgbGVmdCA9IGN1cnJlbnQgLSBkZWx0YTtcbiAgICAgICAgbGV0IHJpZ2h0ID0gY3VycmVudCArIGRlbHRhICsgMTtcbiAgICAgICAgbGV0IHJhbmdlID0gW107XG4gICAgICAgIGxldCByYW5nZVdpdGhEb3RzID0gW107XG4gICAgICAgIGxldCBsO1xuXG4gICAgICAgIGZvciAobGV0IGkgPSAxOyBpIDw9IGxhc3Q7IGkrKykge1xuICAgICAgICAgICAgaWYgKGkgPT0gMSB8fCBpID09IGxhc3QgfHwgaSA+PSBsZWZ0ICYmIGkgPCByaWdodCkge1xuICAgICAgICAgICAgICAgIHJhbmdlLnB1c2goaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGxldCBpIG9mIHJhbmdlKSB7XG4gICAgICAgICAgICBpZiAobCkge1xuICAgICAgICAgICAgICAgIGlmIChpIC0gbCAhPT0gMSkge1xuICAgICAgICAgICAgICAgICAgICByYW5nZVdpdGhEb3RzLnB1c2goJy4uLicpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJhbmdlV2l0aERvdHMucHVzaChpKTtcbiAgICAgICAgICAgIGwgPSBpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJhbmdlV2l0aERvdHM7XG4gICAgfVxuICAgIG5leHRQYWdlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnByZXZpb3VzUGFnZUluZGV4ID0gdGhpcy5wYWdlSW5kZXg7XG4gICAgICAgIHRoaXMucGFnZUluZGV4ID0gdGhpcy5wYWdlSW5kZXggKyAxO1xuICAgICAgICB0aGlzLl9lbWl0UGFnZUV2ZW50KHRoaXMucHJldmlvdXNQYWdlSW5kZXgpO1xuXG4gICAgICAgIHRoaXMuZGlzcGxheU51bWJlck9mUGFnZXMgPSB0aGlzLnBhZ2luYXRpb24odGhpcy5wYWdlSW5kZXgsIHRoaXMubnVtYmVyT2ZQYWdlcy5sZW5ndGgpO1xuICAgIH1cbiAgICBwcmV2aW91c1BhZ2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucHJldmlvdXNQYWdlSW5kZXggPSB0aGlzLnBhZ2VJbmRleDtcbiAgICAgICAgdGhpcy5wYWdlSW5kZXggPSB0aGlzLnBhZ2VJbmRleCAtIDE7XG4gICAgICAgIHRoaXMuX2VtaXRQYWdlRXZlbnQodGhpcy5wcmV2aW91c1BhZ2VJbmRleCk7XG5cbiAgICAgICAgdGhpcy5kaXNwbGF5TnVtYmVyT2ZQYWdlcyA9IHRoaXMucGFnaW5hdGlvbih0aGlzLnBhZ2VJbmRleCwgdGhpcy5udW1iZXJPZlBhZ2VzLmxlbmd0aCk7XG4gICAgfVxuXG4gICAgX2NoYW5nZVBhZ2VTaXplKHBhZ2VTaXplOiBudW1iZXIpIHtcbiAgICAgICAgY29uc3Qgc3RhcnRJbmRleCA9IHRoaXMuX3BhZ2VJbmRleCAqIHRoaXMucGFnZVNpemU7XG4gICAgICAgIGNvbnN0IHByZXZpb3VzUGFnZUluZGV4ID0gdGhpcy5fcGFnZUluZGV4O1xuXG4gICAgICAgIHRoaXMucHJldmlvdXNQYWdlSW5kZXggPSBwcmV2aW91c1BhZ2VJbmRleDtcbiAgICAgICAgdGhpcy5wYWdlSW5kZXggPSAoTWF0aC5mbG9vcihzdGFydEluZGV4IC8gcGFnZVNpemUpIHx8IDApICsgMTtcbiAgICAgICAgdGhpcy5wYWdlU2l6ZSA9IHBhZ2VTaXplO1xuXG4gICAgICAgIHRoaXMuX2VtaXRQYWdlRXZlbnQodGhpcy5wcmV2aW91c1BhZ2VJbmRleCk7XG4gICAgICAgIHRoaXMuZ2V0TnVtYmVyT2ZQYWdlcygpO1xuICAgIH1cblxuICAgIF9jaGFuZ2VQYWdlTnVtYmVyKHBhZ2VOdW1iZXI6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLnByZXZpb3VzUGFnZUluZGV4ID0gdGhpcy5wYWdlSW5kZXg7XG4gICAgICAgIHRoaXMucGFnZUluZGV4ID0gcGFnZU51bWJlcjtcbiAgICAgICAgdGhpcy5fZW1pdFBhZ2VFdmVudCh0aGlzLnByZXZpb3VzUGFnZUluZGV4KTtcbiAgICAgICAgdGhpcy5nZXROdW1iZXJPZlBhZ2VzKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZW1pdFBhZ2VFdmVudChwcmV2aW91c1BhZ2VJbmRleDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMucGFnZS5lbWl0KHtcbiAgICAgICAgICAgIHByZXZpb3VzUGFnZUluZGV4LFxuICAgICAgICAgICAgcGFnZUluZGV4OiB0aGlzLl9wYWdlSW5kZXgsXG4gICAgICAgICAgICBwYWdlU2l6ZTogdGhpcy5wYWdlU2l6ZSxcbiAgICAgICAgICAgIGxlbmd0aDogdGhpcy5sZW5ndGgsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpIHtcbiAgICB9XG59XG5cbiIsIjxkaXYgY2xhc3M9XCJxbXMtcGFnaW5hdG9yLW91dGVyLWNvbnRhaW5lclwiIFtjbGFzcy5zaXplLXNtYWxsXT0nc2l6ZSA9PSBzaXplU21hbGwnIFtjbGFzcy5kLW5vbmVdPSdudW1IaWRkZW4gPiBsZW5ndGgnPlxuICAgIDxkaXYgY2xhc3M9XCJtYXQtcGFnaW5hdG9yLWNvbnRhaW5lclwiICpuZ0lmPSdzaXplICE9IHNpemVNb2JpbGUnPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicW1zLXRvdGFsLXJlc3VsdFwiIFtjbGFzcy5tci1iLXNpemUtc21hbGxdPSdzaXplID09IHNpemVTbWFsbCc+XG4gICAgICAgICAgICA8c3Bhbj57e0xBTkcuUkVTVUxUU319OiB7e2xlbmd0aH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInFtcy1wYWdpbmF0b3ItcGFnZS1zaXplXCIgKm5nSWY9J3NpemUgIT0gc2l6ZVNtYWxsJz5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJxbXMtcGFnZXNpemUtbGFiZWxcIj57e0xBTkcuUk9XX1BFUl9QQUdFfX06PC9kaXY+XG4gICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgcW1zLWZvcm0gcW1zLXNlbGVjdC1pbnB1dCBjbGFzcz1cInFtcy1mb3JtLXBhZ2Utc2l6ZVwiIGFwcGVhcmFuY2U9XCJmaWxsXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1zZWxlY3QgW3BhbmVsQ2xhc3NdPVwib3ZlcmxheUNsYXNzXCIgW3ZhbHVlXT1cInBhZ2VTaXplXCJcbiAgICAgICAgICAgICAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJfY2hhbmdlUGFnZVNpemUoJGV2ZW50LnZhbHVlKVwiIHFtcy1zZWxlY3QgZGlzYWJsZU9wdGlvbkNlbnRlcmluZz5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGl0ZW0gb2YgcGFnZVNpemVPcHRpb25zXCIgW3ZhbHVlXT1cIml0ZW1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0gfX1cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwicW1zLXBhZ2luYXRvci1wYWdlLXNpemVcIiAqbmdJZj0nc2l6ZSAhPSBzaXplTWVkaXVtICYmIHNpemUgIT0gc2l6ZVNtYWxsJz5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJxbXMtcGFnZXNpemUtbGFiZWwgXCI+e3tMQU5HLkpVTV9UT19QQUdFfX06PC9kaXY+XG5cbiAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBxbXMtZm9ybSBxbXMtc2VsZWN0LWlucHV0IGNsYXNzPVwicW1zLWZvcm0tcGFnZS1zaXplIHFtcy1mb3JtLXNlbGVjdC1wYWdlLXNpemVcIlxuICAgICAgICAgICAgICAgIGFwcGVhcmFuY2U9XCJmaWxsXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1zZWxlY3QgW3BhbmVsQ2xhc3NdPVwib3ZlcmxheUNsYXNzXCIgW3ZhbHVlXT1cInBhZ2VJbmRleFwiXG4gICAgICAgICAgICAgICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwiX2NoYW5nZVBhZ2VOdW1iZXIoJGV2ZW50LnZhbHVlKVwiIHFtcy1zZWxlY3QgZGlzYWJsZU9wdGlvbkNlbnRlcmluZz5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGl0ZW0gb2YgbnVtYmVyT2ZQYWdlc1wiIFt2YWx1ZV09XCJpdGVtXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtIH19XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInFtcy1wYWdpbmF0b3ItcmFuZ2UtYWN0aW9uc1wiPlxuICAgICAgICAgICAgPHVsIGNsYXNzPVwibmF2LWxpc3QtcGFnaW5hdGlvblwiPlxuICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cIm5hdi1pdGVtXCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gYXJpYS1sYWJlbD1cIlByZXZpb3VzIHBhZ2VcIiBxbXMtYnRuLWljb24gY29sb3I9XCJsaWdodFwiIChjbGljayk9J3ByZXZpb3VzUGFnZSgpJ1xuICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT0nbWluUGFnZSA9PSBwYWdlSW5kZXgnPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPmNoZXZyb25fbGVmdDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9J2xldCBpdGVtIG9mIGRpc3BsYXlOdW1iZXJPZlBhZ2VzJz5cbiAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwibmF2LWl0ZW1cIj4gPHNwYW4gKm5nSWY9J2l0ZW0gPT0gXCIuLi5cIicgY2xhc3M9XCJxbXMtM2RcIj57e2l0ZW19fTwvc3Bhbj48L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJuYXYtaXRlbVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj0naXRlbSAhPSBcIi4uLlwiJyBxbXMtYnRuLWljb24gY29sb3I9XCJsaWdodFwiIFtjbGFzcy5zZWxlY3RlZF09J3BhZ2VJbmRleCA9PSBpdGVtJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09J3BhZ2VJbmRleCA9PSBpdGVtJyAoY2xpY2spPSdjaGFuZ2VQYWdlKGl0ZW0pJz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2l0ZW19fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwibmF2LWl0ZW1cIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBhcmlhLWxhYmVsPVwiTmV4dCBwYWdlXCIgcW1zLWJ0bi1pY29uIGNvbG9yPVwibGlnaHRcIiAoY2xpY2spPSduZXh0UGFnZSgpJ1xuICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT0nbWF4cGFnZSA9PSBwYWdlSW5kZXgnPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPmNoZXZyb25fcmlnaHQ8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgPC91bD5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwibWF0LXBhZ2luYXRvci1jb250YWluZXItbW9iaWxlXCIgKm5nSWY9J3NpemUgPT0gc2l6ZU1vYmlsZSc+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYXQtcGFnaW5hdG9yLWNvbnRhaW5lclwiICpuZ0lmPSdzaXplID09IHNpemVNb2JpbGUnPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInFtcy1wYWdpbmF0b3ItcmFuZ2UtYWN0aW9uc1wiPlxuICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cIm5hdi1saXN0LXBhZ2luYXRpb25cIj5cbiAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwibmF2LWl0ZW1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gYXJpYS1sYWJlbD1cIlByZXZpb3VzIHBhZ2VcIiBxbXMtYnRuLWljb24gY29sb3I9XCJsaWdodFwiIChjbGljayk9J3ByZXZpb3VzUGFnZSgpJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09J21pblBhZ2UgPT0gcGFnZUluZGV4Jz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+Y2hldnJvbl9sZWZ0PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj0nbGV0IGl0ZW0gb2YgZGlzcGxheU51bWJlck9mUGFnZXMnPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwibmF2LWl0ZW1cIj4gPHNwYW4gKm5nSWY9J2l0ZW0gPT0gXCIuLi5cIicgY2xhc3M9XCJxbXMtM2RcIj57e2l0ZW19fTwvc3Bhbj48L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwibmF2LWl0ZW1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPSdpdGVtICE9IFwiLi4uXCInIHFtcy1idG4taWNvbiBjb2xvcj1cImxpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLnNlbGVjdGVkXT0ncGFnZUluZGV4ID09IGl0ZW0nIFtkaXNhYmxlZF09J3BhZ2VJbmRleCA9PSBpdGVtJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPSdjaGFuZ2VQYWdlKGl0ZW0pJz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tpdGVtfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJuYXYtaXRlbVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBhcmlhLWxhYmVsPVwiTmV4dCBwYWdlXCIgcW1zLWJ0bi1pY29uIGNvbG9yPVwibGlnaHRcIiAoY2xpY2spPSduZXh0UGFnZSgpJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09J21heHBhZ2UgPT0gcGFnZUluZGV4Jz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+Y2hldnJvbl9yaWdodDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwicW1zLXRvdGFsLXJlc3VsdFwiPlxuICAgICAgICAgICAgPHNwYW4+e3tMQU5HLlJFU1VMVFN9fToge3tsZW5ndGh9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4O1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInFtcy1wYWdpbmF0b3ItcGFnZS1zaXplXCIgKm5nSWY9J3NpemUgIT0gc2l6ZVNtYWxsJz5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicW1zLXBhZ2VzaXplLWxhYmVsXCI+e3tMQU5HLlJPV19QRVJfUEFHRX19OjwvZGl2PlxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBxbXMtZm9ybSBxbXMtc2VsZWN0LWlucHV0IGNsYXNzPVwicW1zLWZvcm0tcGFnZS1zaXplXCIgYXBwZWFyYW5jZT1cImZpbGxcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1zZWxlY3QgW3BhbmVsQ2xhc3NdPVwib3ZlcmxheUNsYXNzXCIgW3ZhbHVlXT1cInBhZ2VTaXplXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwiX2NoYW5nZVBhZ2VTaXplKCRldmVudC52YWx1ZSlcIiBxbXMtc2VsZWN0PlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGl0ZW0gb2YgcGFnZVNpemVPcHRpb25zXCIgW3ZhbHVlXT1cIml0ZW1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicW1zLXBhZ2luYXRvci1wYWdlLXNpemVcIiAqbmdJZj0nc2l6ZSAhPSBzaXplTWVkaXVtICYmIHNpemUgIT0gc2l6ZVNtYWxsJz5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicW1zLXBhZ2VzaXplLWxhYmVsIFwiPnt7TEFORy5KVU1fVE9fUEFHRX19OjwvZGl2PlxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBxbXMtZm9ybSBxbXMtc2VsZWN0LWlucHV0IGNsYXNzPVwicW1zLWZvcm0tcGFnZS1zaXplIHFtcy1mb3JtLXNlbGVjdC1wYWdlLXNpemVcIlxuICAgICAgICAgICAgICAgICAgICBhcHBlYXJhbmNlPVwiZmlsbFwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LXNlbGVjdCBbcGFuZWxDbGFzc109XCJvdmVybGF5Q2xhc3NcIiBbdmFsdWVdPVwicGFnZUluZGV4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwiX2NoYW5nZVBhZ2VOdW1iZXIoJGV2ZW50LnZhbHVlKVwiIHFtcy1zZWxlY3Q+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBudW1iZXJPZlBhZ2VzXCIgW3ZhbHVlXT1cIml0ZW1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgPC9kaXY+XG5cbjwvZGl2PiJdfQ==
@@ -19,11 +19,11 @@ export class QmsStepperComponent {
19
19
  this.selectionChangeEvent.emit(this.currentStep);
20
20
  }
21
21
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: QmsStepperComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
22
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: QmsStepperComponent, selector: "app-qms-stepper", inputs: { steps: "steps", width: "width", height: "height", isHorizontal: "isHorizontal", currentStep: "currentStep", labelPosition: "labelPosition" }, outputs: { selectionChangeEvent: "selectionChangeEvent" }, viewQueries: [{ propertyName: "stepper", first: true, predicate: ["stepper"], descendants: true }], ngImport: i0, template: "<div class=\"qms-stepper-container\">\n <div *ngIf=\"isHorizontal\">\n <mat-horizontal-stepper [style.width.px]=\"width\" labelPosition=\"{{labelPosition}}\" #stepper\n (selectionChange)=\"changeStep($event.selectedIndex)\" class=\"overflow-auto\" [selectedIndex]=\"currentStep\">\n <mat-step *ngFor=\"let step of steps; let i = index;\" [completed]=\"false\"\n [aria-labelledby]=\"step.disabled ? 'disabled' : 'step-item'\">\n <ng-template matStepLabel>\n <span tabindex=\"0\" (keydown.enter)=\"changeStep(i)\" class=\"title-step\" \n [ngClass]=\"{ 'is-deleted-field': step.isDeleted }\"\n >{{step.name}}<span *ngIf=\"step.isMandatory && !step.isDeleted\" class=\"is-mandatory-field\"> *</span></span>\n </ng-template>\n <ng-template matStepContent>\n </ng-template>\n </mat-step>\n <ng-template matStepperIcon=\"edit\">\n {{stepper.selectedIndex + 1}}\n </ng-template>\n </mat-horizontal-stepper>\n </div>\n <div *ngIf=\"!isHorizontal\">\n <mat-vertical-stepper [style.height.px]=\"height\" #stepper (selectionChange)=\"changeStep($event.selectedIndex)\"\n [selectedIndex]=\"currentStep\" class=\"overflow-auto\">\n <mat-step *ngFor=\"let step of steps; let i = index;\" [completed]=\"false\"\n [aria-labelledby]=\"step.disabled ? 'disabled' : 'step-item'\">\n <ng-template matStepLabel>\n <span tabindex=\"0\" (keydown.enter)=\"changeStep(i)\" class=\"title-step\"\n [ngClass]=\"{ 'is-deleted-field': step.isDeleted }\"\n >{{step.name}}<span *ngIf=\"step.isMandatory && !step.isDeleted\" class=\"is-mandatory-field\"> *</span></span>\n </ng-template>\n <ng-template matStepContent>\n </ng-template>\n </mat-step>\n <ng-template matStepperIcon=\"edit\">\n <span>{{stepper.selectedIndex + 1}}</span>\n </ng-template>\n </mat-vertical-stepper>\n </div>\n</div>", styles: [".qms-stepper-container ::ng-deep .mat-step-header[aria-labelledby=step-item]{height:22px!important;padding:8px 12px;left:0;top:0;border-radius:4px;color:#fff}.qms-stepper-container ::ng-deep .mat-step-header[aria-labelledby=step-item].mat-horizontal-stepper-header{min-width:fit-content}.qms-stepper-container ::ng-deep .mat-step-header[aria-labelledby=step-item].mat-vertical-stepper-header{width:156px}.qms-stepper-container ::ng-deep .mat-step-header .mat-step-icon{background:#0009;margin-right:14px}.qms-stepper-container ::ng-deep .mat-step-header .mat-step-icon-selected{background-color:#1954a9!important;color:#fff}.qms-stepper-container ::ng-deep .mat-step-header[aria-selected=true] .title-step{font-weight:600!important;outline:none!important;-webkit-font-smoothing:antialiased!important}.qms-stepper-container ::ng-deep mat-step-header:active{background:#e5eefb}.qms-stepper-container ::ng-deep mat-step-header:active mat-step-label{color:#fff}.qms-stepper-container ::ng-deep mat-step-header:active mat-step-icon{color:#323232;background:#0009}.qms-stepper-container ::ng-deep mat-step-header .mat-ripple-element{background-color:#e5eefb4d}.qms-stepper-container ::ng-deep mat-step-header:hover{background:#f2f7fd}.qms-stepper-container ::ng-deep mat-step-header:hover mat-step-label{color:#fff}.qms-stepper-container ::ng-deep mat-step-header:hover mat-step-icon{color:#323232;background:#0009}.qms-stepper-container ::ng-deep .mat-step-header[aria-labelledby=disabled]{pointer-events:none!important;cursor:not-allowed;opacity:.6;height:22px!important;width:156px;left:0;top:0;border-radius:4px;padding:8px 12px}.qms-stepper-container ::ng-deep mat-step-header:focus{border:2px solid rgb(25,84,169)}.qms-stepper-container ::ng-deep mat-step-header:focus mat-step-label{color:#fff}.qms-stepper-container ::ng-deep mat-step-header:focus mat-step-icon{color:#323232;background:#0009}.qms-stepper-container ::ng-deep mat-step-header.mat-step-header.cdk-keyboard-focused,.qms-stepper-container ::ng-deep mat-step-header.mat-step-header.cdk-program-focused{border:3px solid rgb(25,84,169);background:#fff}.qms-stepper-container ::ng-deep mat-step-header:focus:not(:focus-visible){border:none}.qms-stepper-container ::ng-deep .mat-step-header[aria-labelledby=active]{pointer-events:none!important;cursor:not-allowed;opacity:.6}.qms-stepper-container .title-step{font-family:Open Sans;font-size:14px;font-style:normal;font-weight:400;letter-spacing:0px;text-align:center;color:#323232;outline:none!important}.qms-stepper-container ::ng-deep .mat-step-icon{width:24px;height:24px}.qms-stepper-container ::ng-deep .mat-step-icon .mat-step-icon-content{font-family:Open Sans;font-size:14px;font-style:normal;font-weight:400;letter-spacing:0px;text-align:center;color:#fff;padding-top:1px}.qms-stepper-container ::ng-deep .mat-stepper-vertical-line:before{border-left-width:0;border-right-width:0}.qms-stepper-container ::ng-deep .mat-stepper-vertical-line{margin-left:23px;background:#0000001f;height:30px;width:1px}.qms-stepper-container ::ng-deep .mat-stepper-horizontal-line{height:1px;width:22px!important;left:0;top:18px;border-radius:0;margin:8px;background:#0000001f;max-width:22px!important}.qms-stepper-container .is-mandatory-field{color:#002e68!important}.qms-stepper-container .is-deleted-field{color:#ef1d34!important}\n"], dependencies: [{ kind: "component", type: i1.MatStep, selector: "mat-step", inputs: ["color"], exportAs: ["matStep"] }, { kind: "directive", type: i1.MatStepLabel, selector: "[matStepLabel]" }, { kind: "component", type: i1.MatStepper, selector: "mat-stepper, mat-vertical-stepper, mat-horizontal-stepper, [matStepper]", inputs: ["disableRipple", "color", "labelPosition", "headerPosition", "animationDuration"], outputs: ["animationDone"], exportAs: ["matStepper", "matVerticalStepper", "matHorizontalStepper"] }, { kind: "directive", type: i1.MatStepperIcon, selector: "ng-template[matStepperIcon]", inputs: ["matStepperIcon"] }, { kind: "directive", type: i1.MatStepContent, selector: "ng-template[matStepContent]" }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
22
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: QmsStepperComponent, selector: "app-qms-stepper", inputs: { steps: "steps", width: "width", height: "height", isHorizontal: "isHorizontal", currentStep: "currentStep", labelPosition: "labelPosition" }, outputs: { selectionChangeEvent: "selectionChangeEvent" }, viewQueries: [{ propertyName: "stepper", first: true, predicate: ["stepper"], descendants: true }], ngImport: i0, template: "<div class=\"qms-stepper-container\">\n <div *ngIf=\"isHorizontal\">\n <mat-horizontal-stepper [style.width.px]=\"width\" labelPosition=\"{{labelPosition}}\" #stepper\n (selectionChange)=\"changeStep($event.selectedIndex)\" class=\"overflow-auto\" [selectedIndex]=\"currentStep\">\n <mat-step *ngFor=\"let step of steps; let i = index;\" [completed]=\"false\"\n [aria-labelledby]=\"step.disabled ? 'disabled' : 'step-item'\">\n <ng-template matStepLabel>\n <span tabindex=\"0\" (keydown.enter)=\"changeStep(i)\" class=\"title-step\"\n [ngClass]=\"{ 'is-deleted-field': step.isDeleted }\">{{step.name}}<span\n *ngIf=\"step.isMandatory && !step.isDeleted\" class=\"is-mandatory-field\"> *</span></span>\n </ng-template>\n <ng-template matStepContent>\n </ng-template>\n </mat-step>\n <ng-template matStepperIcon=\"edit\">\n {{stepper.selectedIndex + 1}}\n </ng-template>\n </mat-horizontal-stepper>\n </div>\n <div *ngIf=\"!isHorizontal\">\n <mat-vertical-stepper [style.height.px]=\"height\" #stepper (selectionChange)=\"changeStep($event.selectedIndex)\"\n [selectedIndex]=\"currentStep\" class=\"overflow-auto\">\n <mat-step *ngFor=\"let step of steps; let i = index;\" [completed]=\"false\"\n [aria-label]=\"step.disabled ? 'disabled' : 'step-item'\">\n <ng-template matStepLabel>\n <span tabindex=\"0\" (keydown.enter)=\"changeStep(i)\" class=\"title-step\"\n [ngClass]=\"{ 'is-deleted-field': step.isDeleted }\">{{step.name}}<span\n *ngIf=\"step.isMandatory && !step.isDeleted\" class=\"is-mandatory-field\"> *</span></span>\n </ng-template>\n <ng-template matStepContent>\n </ng-template>\n </mat-step>\n <ng-template matStepperIcon=\"edit\">\n <span>{{stepper.selectedIndex + 1}}</span>\n </ng-template>\n </mat-vertical-stepper>\n </div>\n</div>", styles: [".qms-stepper-container ::ng-deep .mat-step-header[aria-labelledby=step-item]{height:22px!important;padding:8px 12px;left:0;top:0;border-radius:4px;color:#fff}.qms-stepper-container ::ng-deep .mat-step-header[aria-labelledby=step-item].mat-horizontal-stepper-header{min-width:fit-content}.qms-stepper-container ::ng-deep .mat-step-header[aria-labelledby=step-item].mat-vertical-stepper-header{width:156px}.qms-stepper-container ::ng-deep .mat-step-header .mat-step-icon{background:#0009;margin-right:14px}.qms-stepper-container ::ng-deep .mat-step-header .mat-step-icon-selected{background-color:#1954a9!important;color:#fff}.qms-stepper-container ::ng-deep .mat-step-header[aria-selected=true] .title-step{font-weight:600!important;outline:none!important;-webkit-font-smoothing:antialiased!important}.qms-stepper-container ::ng-deep mat-step-header:active{background:#e5eefb}.qms-stepper-container ::ng-deep mat-step-header:active mat-step-label{color:#fff}.qms-stepper-container ::ng-deep mat-step-header:active mat-step-icon{color:#323232;background:#0009}.qms-stepper-container ::ng-deep mat-step-header .mat-ripple-element{background-color:#e5eefb4d}.qms-stepper-container ::ng-deep mat-step-header:hover{background:#f2f7fd}.qms-stepper-container ::ng-deep mat-step-header:hover mat-step-label{color:#fff}.qms-stepper-container ::ng-deep mat-step-header:hover mat-step-icon{color:#323232;background:#0009}.qms-stepper-container ::ng-deep .mat-step-header[aria-labelledby=disabled]{pointer-events:none!important;cursor:not-allowed;opacity:.6;height:22px!important;width:156px;left:0;top:0;border-radius:4px;padding:8px 12px}.qms-stepper-container ::ng-deep mat-step-header:focus{border:2px solid rgb(25,84,169)}.qms-stepper-container ::ng-deep mat-step-header:focus mat-step-label{color:#fff}.qms-stepper-container ::ng-deep mat-step-header:focus mat-step-icon{color:#323232;background:#0009}.qms-stepper-container ::ng-deep mat-step-header.mat-step-header.cdk-keyboard-focused,.qms-stepper-container ::ng-deep mat-step-header.mat-step-header.cdk-program-focused{border:3px solid rgb(25,84,169);background:#fff}.qms-stepper-container ::ng-deep mat-step-header:focus:not(:focus-visible){border:none}.qms-stepper-container ::ng-deep .mat-step-header[aria-labelledby=active]{pointer-events:none!important;cursor:not-allowed;opacity:.6}.qms-stepper-container .title-step{font-family:Open Sans;font-size:14px;font-style:normal;font-weight:400;letter-spacing:0px;text-align:center;color:#323232;outline:none!important}.qms-stepper-container ::ng-deep .mat-step-icon{width:24px;height:24px}.qms-stepper-container ::ng-deep .mat-step-icon .mat-step-icon-content{font-family:Open Sans;font-size:14px;font-style:normal;font-weight:400;letter-spacing:0px;text-align:center;color:#fff;padding-top:1px}.qms-stepper-container ::ng-deep .mat-stepper-vertical-line:before{border-left-width:0;border-right-width:0}.qms-stepper-container ::ng-deep .mat-stepper-vertical-line{margin-left:23px;background:#0000001f;height:30px;width:1px}.qms-stepper-container ::ng-deep .mat-stepper-horizontal-line{height:1px;width:22px!important;left:0;top:18px;border-radius:0;margin:8px;background:#0000001f;max-width:22px!important}.qms-stepper-container .is-mandatory-field{color:#002e68!important}.qms-stepper-container .is-deleted-field{color:#ef1d34!important}\n"], dependencies: [{ kind: "component", type: i1.MatStep, selector: "mat-step", inputs: ["color"], exportAs: ["matStep"] }, { kind: "directive", type: i1.MatStepLabel, selector: "[matStepLabel]" }, { kind: "component", type: i1.MatStepper, selector: "mat-stepper, mat-vertical-stepper, mat-horizontal-stepper, [matStepper]", inputs: ["disableRipple", "color", "labelPosition", "headerPosition", "animationDuration"], outputs: ["animationDone"], exportAs: ["matStepper", "matVerticalStepper", "matHorizontalStepper"] }, { kind: "directive", type: i1.MatStepperIcon, selector: "ng-template[matStepperIcon]", inputs: ["matStepperIcon"] }, { kind: "directive", type: i1.MatStepContent, selector: "ng-template[matStepContent]" }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
23
23
  }
24
24
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: QmsStepperComponent, decorators: [{
25
25
  type: Component,
26
- args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'app-qms-stepper', template: "<div class=\"qms-stepper-container\">\n <div *ngIf=\"isHorizontal\">\n <mat-horizontal-stepper [style.width.px]=\"width\" labelPosition=\"{{labelPosition}}\" #stepper\n (selectionChange)=\"changeStep($event.selectedIndex)\" class=\"overflow-auto\" [selectedIndex]=\"currentStep\">\n <mat-step *ngFor=\"let step of steps; let i = index;\" [completed]=\"false\"\n [aria-labelledby]=\"step.disabled ? 'disabled' : 'step-item'\">\n <ng-template matStepLabel>\n <span tabindex=\"0\" (keydown.enter)=\"changeStep(i)\" class=\"title-step\" \n [ngClass]=\"{ 'is-deleted-field': step.isDeleted }\"\n >{{step.name}}<span *ngIf=\"step.isMandatory && !step.isDeleted\" class=\"is-mandatory-field\"> *</span></span>\n </ng-template>\n <ng-template matStepContent>\n </ng-template>\n </mat-step>\n <ng-template matStepperIcon=\"edit\">\n {{stepper.selectedIndex + 1}}\n </ng-template>\n </mat-horizontal-stepper>\n </div>\n <div *ngIf=\"!isHorizontal\">\n <mat-vertical-stepper [style.height.px]=\"height\" #stepper (selectionChange)=\"changeStep($event.selectedIndex)\"\n [selectedIndex]=\"currentStep\" class=\"overflow-auto\">\n <mat-step *ngFor=\"let step of steps; let i = index;\" [completed]=\"false\"\n [aria-labelledby]=\"step.disabled ? 'disabled' : 'step-item'\">\n <ng-template matStepLabel>\n <span tabindex=\"0\" (keydown.enter)=\"changeStep(i)\" class=\"title-step\"\n [ngClass]=\"{ 'is-deleted-field': step.isDeleted }\"\n >{{step.name}}<span *ngIf=\"step.isMandatory && !step.isDeleted\" class=\"is-mandatory-field\"> *</span></span>\n </ng-template>\n <ng-template matStepContent>\n </ng-template>\n </mat-step>\n <ng-template matStepperIcon=\"edit\">\n <span>{{stepper.selectedIndex + 1}}</span>\n </ng-template>\n </mat-vertical-stepper>\n </div>\n</div>", styles: [".qms-stepper-container ::ng-deep .mat-step-header[aria-labelledby=step-item]{height:22px!important;padding:8px 12px;left:0;top:0;border-radius:4px;color:#fff}.qms-stepper-container ::ng-deep .mat-step-header[aria-labelledby=step-item].mat-horizontal-stepper-header{min-width:fit-content}.qms-stepper-container ::ng-deep .mat-step-header[aria-labelledby=step-item].mat-vertical-stepper-header{width:156px}.qms-stepper-container ::ng-deep .mat-step-header .mat-step-icon{background:#0009;margin-right:14px}.qms-stepper-container ::ng-deep .mat-step-header .mat-step-icon-selected{background-color:#1954a9!important;color:#fff}.qms-stepper-container ::ng-deep .mat-step-header[aria-selected=true] .title-step{font-weight:600!important;outline:none!important;-webkit-font-smoothing:antialiased!important}.qms-stepper-container ::ng-deep mat-step-header:active{background:#e5eefb}.qms-stepper-container ::ng-deep mat-step-header:active mat-step-label{color:#fff}.qms-stepper-container ::ng-deep mat-step-header:active mat-step-icon{color:#323232;background:#0009}.qms-stepper-container ::ng-deep mat-step-header .mat-ripple-element{background-color:#e5eefb4d}.qms-stepper-container ::ng-deep mat-step-header:hover{background:#f2f7fd}.qms-stepper-container ::ng-deep mat-step-header:hover mat-step-label{color:#fff}.qms-stepper-container ::ng-deep mat-step-header:hover mat-step-icon{color:#323232;background:#0009}.qms-stepper-container ::ng-deep .mat-step-header[aria-labelledby=disabled]{pointer-events:none!important;cursor:not-allowed;opacity:.6;height:22px!important;width:156px;left:0;top:0;border-radius:4px;padding:8px 12px}.qms-stepper-container ::ng-deep mat-step-header:focus{border:2px solid rgb(25,84,169)}.qms-stepper-container ::ng-deep mat-step-header:focus mat-step-label{color:#fff}.qms-stepper-container ::ng-deep mat-step-header:focus mat-step-icon{color:#323232;background:#0009}.qms-stepper-container ::ng-deep mat-step-header.mat-step-header.cdk-keyboard-focused,.qms-stepper-container ::ng-deep mat-step-header.mat-step-header.cdk-program-focused{border:3px solid rgb(25,84,169);background:#fff}.qms-stepper-container ::ng-deep mat-step-header:focus:not(:focus-visible){border:none}.qms-stepper-container ::ng-deep .mat-step-header[aria-labelledby=active]{pointer-events:none!important;cursor:not-allowed;opacity:.6}.qms-stepper-container .title-step{font-family:Open Sans;font-size:14px;font-style:normal;font-weight:400;letter-spacing:0px;text-align:center;color:#323232;outline:none!important}.qms-stepper-container ::ng-deep .mat-step-icon{width:24px;height:24px}.qms-stepper-container ::ng-deep .mat-step-icon .mat-step-icon-content{font-family:Open Sans;font-size:14px;font-style:normal;font-weight:400;letter-spacing:0px;text-align:center;color:#fff;padding-top:1px}.qms-stepper-container ::ng-deep .mat-stepper-vertical-line:before{border-left-width:0;border-right-width:0}.qms-stepper-container ::ng-deep .mat-stepper-vertical-line{margin-left:23px;background:#0000001f;height:30px;width:1px}.qms-stepper-container ::ng-deep .mat-stepper-horizontal-line{height:1px;width:22px!important;left:0;top:18px;border-radius:0;margin:8px;background:#0000001f;max-width:22px!important}.qms-stepper-container .is-mandatory-field{color:#002e68!important}.qms-stepper-container .is-deleted-field{color:#ef1d34!important}\n"] }]
26
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'app-qms-stepper', template: "<div class=\"qms-stepper-container\">\n <div *ngIf=\"isHorizontal\">\n <mat-horizontal-stepper [style.width.px]=\"width\" labelPosition=\"{{labelPosition}}\" #stepper\n (selectionChange)=\"changeStep($event.selectedIndex)\" class=\"overflow-auto\" [selectedIndex]=\"currentStep\">\n <mat-step *ngFor=\"let step of steps; let i = index;\" [completed]=\"false\"\n [aria-labelledby]=\"step.disabled ? 'disabled' : 'step-item'\">\n <ng-template matStepLabel>\n <span tabindex=\"0\" (keydown.enter)=\"changeStep(i)\" class=\"title-step\"\n [ngClass]=\"{ 'is-deleted-field': step.isDeleted }\">{{step.name}}<span\n *ngIf=\"step.isMandatory && !step.isDeleted\" class=\"is-mandatory-field\"> *</span></span>\n </ng-template>\n <ng-template matStepContent>\n </ng-template>\n </mat-step>\n <ng-template matStepperIcon=\"edit\">\n {{stepper.selectedIndex + 1}}\n </ng-template>\n </mat-horizontal-stepper>\n </div>\n <div *ngIf=\"!isHorizontal\">\n <mat-vertical-stepper [style.height.px]=\"height\" #stepper (selectionChange)=\"changeStep($event.selectedIndex)\"\n [selectedIndex]=\"currentStep\" class=\"overflow-auto\">\n <mat-step *ngFor=\"let step of steps; let i = index;\" [completed]=\"false\"\n [aria-label]=\"step.disabled ? 'disabled' : 'step-item'\">\n <ng-template matStepLabel>\n <span tabindex=\"0\" (keydown.enter)=\"changeStep(i)\" class=\"title-step\"\n [ngClass]=\"{ 'is-deleted-field': step.isDeleted }\">{{step.name}}<span\n *ngIf=\"step.isMandatory && !step.isDeleted\" class=\"is-mandatory-field\"> *</span></span>\n </ng-template>\n <ng-template matStepContent>\n </ng-template>\n </mat-step>\n <ng-template matStepperIcon=\"edit\">\n <span>{{stepper.selectedIndex + 1}}</span>\n </ng-template>\n </mat-vertical-stepper>\n </div>\n</div>", styles: [".qms-stepper-container ::ng-deep .mat-step-header[aria-labelledby=step-item]{height:22px!important;padding:8px 12px;left:0;top:0;border-radius:4px;color:#fff}.qms-stepper-container ::ng-deep .mat-step-header[aria-labelledby=step-item].mat-horizontal-stepper-header{min-width:fit-content}.qms-stepper-container ::ng-deep .mat-step-header[aria-labelledby=step-item].mat-vertical-stepper-header{width:156px}.qms-stepper-container ::ng-deep .mat-step-header .mat-step-icon{background:#0009;margin-right:14px}.qms-stepper-container ::ng-deep .mat-step-header .mat-step-icon-selected{background-color:#1954a9!important;color:#fff}.qms-stepper-container ::ng-deep .mat-step-header[aria-selected=true] .title-step{font-weight:600!important;outline:none!important;-webkit-font-smoothing:antialiased!important}.qms-stepper-container ::ng-deep mat-step-header:active{background:#e5eefb}.qms-stepper-container ::ng-deep mat-step-header:active mat-step-label{color:#fff}.qms-stepper-container ::ng-deep mat-step-header:active mat-step-icon{color:#323232;background:#0009}.qms-stepper-container ::ng-deep mat-step-header .mat-ripple-element{background-color:#e5eefb4d}.qms-stepper-container ::ng-deep mat-step-header:hover{background:#f2f7fd}.qms-stepper-container ::ng-deep mat-step-header:hover mat-step-label{color:#fff}.qms-stepper-container ::ng-deep mat-step-header:hover mat-step-icon{color:#323232;background:#0009}.qms-stepper-container ::ng-deep .mat-step-header[aria-labelledby=disabled]{pointer-events:none!important;cursor:not-allowed;opacity:.6;height:22px!important;width:156px;left:0;top:0;border-radius:4px;padding:8px 12px}.qms-stepper-container ::ng-deep mat-step-header:focus{border:2px solid rgb(25,84,169)}.qms-stepper-container ::ng-deep mat-step-header:focus mat-step-label{color:#fff}.qms-stepper-container ::ng-deep mat-step-header:focus mat-step-icon{color:#323232;background:#0009}.qms-stepper-container ::ng-deep mat-step-header.mat-step-header.cdk-keyboard-focused,.qms-stepper-container ::ng-deep mat-step-header.mat-step-header.cdk-program-focused{border:3px solid rgb(25,84,169);background:#fff}.qms-stepper-container ::ng-deep mat-step-header:focus:not(:focus-visible){border:none}.qms-stepper-container ::ng-deep .mat-step-header[aria-labelledby=active]{pointer-events:none!important;cursor:not-allowed;opacity:.6}.qms-stepper-container .title-step{font-family:Open Sans;font-size:14px;font-style:normal;font-weight:400;letter-spacing:0px;text-align:center;color:#323232;outline:none!important}.qms-stepper-container ::ng-deep .mat-step-icon{width:24px;height:24px}.qms-stepper-container ::ng-deep .mat-step-icon .mat-step-icon-content{font-family:Open Sans;font-size:14px;font-style:normal;font-weight:400;letter-spacing:0px;text-align:center;color:#fff;padding-top:1px}.qms-stepper-container ::ng-deep .mat-stepper-vertical-line:before{border-left-width:0;border-right-width:0}.qms-stepper-container ::ng-deep .mat-stepper-vertical-line{margin-left:23px;background:#0000001f;height:30px;width:1px}.qms-stepper-container ::ng-deep .mat-stepper-horizontal-line{height:1px;width:22px!important;left:0;top:18px;border-radius:0;margin:8px;background:#0000001f;max-width:22px!important}.qms-stepper-container .is-mandatory-field{color:#002e68!important}.qms-stepper-container .is-deleted-field{color:#ef1d34!important}\n"] }]
27
27
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { stepper: [{
28
28
  type: ViewChild,
29
29
  args: ['stepper', { static: false }]
@@ -42,4 +42,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
42
42
  }], selectionChangeEvent: [{
43
43
  type: Output
44
44
  }] } });
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicW1zLXN0ZXBwZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcW1zLWFuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL3Ftcy1zdGVwcGVyL3Ftcy1zdGVwcGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Ftcy1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9xbXMtc3RlcHBlci9xbXMtc3RlcHBlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxzRUFBc0U7QUFDdEUsT0FBTyxFQUFxQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBUXRJLE1BQU0sT0FBTyxtQkFBbUI7SUFVOUIsWUFBb0IsY0FBaUM7UUFBakMsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBUjVDLFVBQUssR0FBZ0IsRUFBRSxDQUFDO1FBR3hCLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLGdCQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ2hCLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLHlCQUFvQixHQUF5QixJQUFJLFlBQVksRUFBRSxDQUFDO0lBRzFFLENBQUM7SUFDRCxRQUFRO0lBQ1IsQ0FBQztJQUVELFVBQVUsQ0FBQyxhQUFxQjtRQUM5QixJQUFJLENBQUMsV0FBVyxHQUFHLGFBQWEsQ0FBQztRQUNqQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNuRCxDQUFDOytHQWxCVSxtQkFBbUI7bUdBQW5CLG1CQUFtQiw4V0NUaEMsOHFFQXFDTTs7NEZENUJPLG1CQUFtQjtrQkFOL0IsU0FBUztzQ0FDUyx1QkFBdUIsQ0FBQyxNQUFNLFlBQ3JDLGlCQUFpQjtzRkFLYyxPQUFPO3NCQUEvQyxTQUFTO3VCQUFDLFNBQVMsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBQzlCLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNJLG9CQUFvQjtzQkFBN0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9leHBsaWNpdC1tb2R1bGUtYm91bmRhcnktdHlwZXMgKi9cbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdGVwTW9kZWwgfSBmcm9tICcuL21vZGVscy9xbXMtc3RlcHBlci5tb2RlbCc7XG5AQ29tcG9uZW50KHtcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHNlbGVjdG9yOiAnYXBwLXFtcy1zdGVwcGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Ftcy1zdGVwcGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcW1zLXN0ZXBwZXIuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBRbXNTdGVwcGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQFZpZXdDaGlsZCgnc3RlcHBlcicsIHsgc3RhdGljOiBmYWxzZSB9KSBzdGVwcGVyO1xuICBASW5wdXQoKSBzdGVwczogU3RlcE1vZGVsW10gPSBbXTtcbiAgQElucHV0KCkgd2lkdGg6IG51bWJlcjtcbiAgQElucHV0KCkgaGVpZ2h0OiBudW1iZXI7XG4gIEBJbnB1dCgpIGlzSG9yaXpvbnRhbCA9IGZhbHNlO1xuICBASW5wdXQoKSBjdXJyZW50U3RlcCA9IDA7XG4gIEBJbnB1dCgpIGxhYmVsUG9zaXRpb24gPSAnZW5kJztcbiAgQE91dHB1dCgpIHNlbGVjdGlvbkNoYW5nZUV2ZW50OiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICB9XG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICB9XG5cbiAgY2hhbmdlU3RlcChzZWxlY3RlZEluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLmN1cnJlbnRTdGVwID0gc2VsZWN0ZWRJbmRleDtcbiAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZUV2ZW50LmVtaXQodGhpcy5jdXJyZW50U3RlcCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJxbXMtc3RlcHBlci1jb250YWluZXJcIj5cbiAgICA8ZGl2ICpuZ0lmPVwiaXNIb3Jpem9udGFsXCI+XG4gICAgICAgIDxtYXQtaG9yaXpvbnRhbC1zdGVwcGVyIFtzdHlsZS53aWR0aC5weF09XCJ3aWR0aFwiIGxhYmVsUG9zaXRpb249XCJ7e2xhYmVsUG9zaXRpb259fVwiICNzdGVwcGVyXG4gICAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cImNoYW5nZVN0ZXAoJGV2ZW50LnNlbGVjdGVkSW5kZXgpXCIgY2xhc3M9XCJvdmVyZmxvdy1hdXRvXCIgW3NlbGVjdGVkSW5kZXhdPVwiY3VycmVudFN0ZXBcIj5cbiAgICAgICAgICAgIDxtYXQtc3RlcCAqbmdGb3I9XCJsZXQgc3RlcCBvZiBzdGVwczsgbGV0IGkgPSBpbmRleDtcIiBbY29tcGxldGVkXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICBbYXJpYS1sYWJlbGxlZGJ5XT1cInN0ZXAuZGlzYWJsZWQgPyAnZGlzYWJsZWQnIDogJ3N0ZXAtaXRlbSdcIj5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbWF0U3RlcExhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiB0YWJpbmRleD1cIjBcIiAoa2V5ZG93bi5lbnRlcik9XCJjaGFuZ2VTdGVwKGkpXCIgY2xhc3M9XCJ0aXRsZS1zdGVwXCIgXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdpcy1kZWxldGVkLWZpZWxkJzogc3RlcC5pc0RlbGV0ZWQgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+e3tzdGVwLm5hbWV9fTxzcGFuICpuZ0lmPVwic3RlcC5pc01hbmRhdG9yeSAmJiAhc3RlcC5pc0RlbGV0ZWRcIiBjbGFzcz1cImlzLW1hbmRhdG9yeS1maWVsZFwiPiAqPC9zcGFuPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBtYXRTdGVwQ29udGVudD5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9tYXQtc3RlcD5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBtYXRTdGVwcGVySWNvbj1cImVkaXRcIj5cbiAgICAgICAgICAgICAgICB7e3N0ZXBwZXIuc2VsZWN0ZWRJbmRleCArIDF9fVxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9tYXQtaG9yaXpvbnRhbC1zdGVwcGVyPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCIhaXNIb3Jpem9udGFsXCI+XG4gICAgICAgIDxtYXQtdmVydGljYWwtc3RlcHBlciBbc3R5bGUuaGVpZ2h0LnB4XT1cImhlaWdodFwiICNzdGVwcGVyIChzZWxlY3Rpb25DaGFuZ2UpPVwiY2hhbmdlU3RlcCgkZXZlbnQuc2VsZWN0ZWRJbmRleClcIlxuICAgICAgICAgICAgW3NlbGVjdGVkSW5kZXhdPVwiY3VycmVudFN0ZXBcIiBjbGFzcz1cIm92ZXJmbG93LWF1dG9cIj5cbiAgICAgICAgICAgIDxtYXQtc3RlcCAqbmdGb3I9XCJsZXQgc3RlcCBvZiBzdGVwczsgbGV0IGkgPSBpbmRleDtcIiBbY29tcGxldGVkXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICBbYXJpYS1sYWJlbGxlZGJ5XT1cInN0ZXAuZGlzYWJsZWQgPyAnZGlzYWJsZWQnIDogJ3N0ZXAtaXRlbSdcIj5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbWF0U3RlcExhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiB0YWJpbmRleD1cIjBcIiAoa2V5ZG93bi5lbnRlcik9XCJjaGFuZ2VTdGVwKGkpXCIgY2xhc3M9XCJ0aXRsZS1zdGVwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2lzLWRlbGV0ZWQtZmllbGQnOiBzdGVwLmlzRGVsZXRlZCB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgID57e3N0ZXAubmFtZX19PHNwYW4gKm5nSWY9XCJzdGVwLmlzTWFuZGF0b3J5ICYmICFzdGVwLmlzRGVsZXRlZFwiIGNsYXNzPVwiaXMtbWFuZGF0b3J5LWZpZWxkXCI+ICo8L3NwYW4+PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIG1hdFN0ZXBDb250ZW50PlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L21hdC1zdGVwPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIG1hdFN0ZXBwZXJJY29uPVwiZWRpdFwiPlxuICAgICAgICAgICAgICAgIDxzcGFuPnt7c3RlcHBlci5zZWxlY3RlZEluZGV4ICsgMX19PC9zcGFuPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9tYXQtdmVydGljYWwtc3RlcHBlcj5cbiAgICA8L2Rpdj5cbjwvZGl2PiJdfQ==
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicW1zLXN0ZXBwZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcW1zLWFuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL3Ftcy1zdGVwcGVyL3Ftcy1zdGVwcGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Ftcy1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9xbXMtc3RlcHBlci9xbXMtc3RlcHBlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxzRUFBc0U7QUFDdEUsT0FBTyxFQUFxQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBUXRJLE1BQU0sT0FBTyxtQkFBbUI7SUFVOUIsWUFBb0IsY0FBaUM7UUFBakMsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBUjVDLFVBQUssR0FBZ0IsRUFBRSxDQUFDO1FBR3hCLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLGdCQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ2hCLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLHlCQUFvQixHQUF5QixJQUFJLFlBQVksRUFBRSxDQUFDO0lBRzFFLENBQUM7SUFDRCxRQUFRO0lBQ1IsQ0FBQztJQUVELFVBQVUsQ0FBQyxhQUFxQjtRQUM5QixJQUFJLENBQUMsV0FBVyxHQUFHLGFBQWEsQ0FBQztRQUNqQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNuRCxDQUFDOytHQWxCVSxtQkFBbUI7bUdBQW5CLG1CQUFtQiw4V0NUaEMsOHFFQXFDTTs7NEZENUJPLG1CQUFtQjtrQkFOL0IsU0FBUztzQ0FDUyx1QkFBdUIsQ0FBQyxNQUFNLFlBQ3JDLGlCQUFpQjtzRkFLYyxPQUFPO3NCQUEvQyxTQUFTO3VCQUFDLFNBQVMsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBQzlCLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNJLG9CQUFvQjtzQkFBN0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9leHBsaWNpdC1tb2R1bGUtYm91bmRhcnktdHlwZXMgKi9cbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdGVwTW9kZWwgfSBmcm9tICcuL21vZGVscy9xbXMtc3RlcHBlci5tb2RlbCc7XG5AQ29tcG9uZW50KHtcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHNlbGVjdG9yOiAnYXBwLXFtcy1zdGVwcGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Ftcy1zdGVwcGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcW1zLXN0ZXBwZXIuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBRbXNTdGVwcGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQFZpZXdDaGlsZCgnc3RlcHBlcicsIHsgc3RhdGljOiBmYWxzZSB9KSBzdGVwcGVyO1xuICBASW5wdXQoKSBzdGVwczogU3RlcE1vZGVsW10gPSBbXTtcbiAgQElucHV0KCkgd2lkdGg6IG51bWJlcjtcbiAgQElucHV0KCkgaGVpZ2h0OiBudW1iZXI7XG4gIEBJbnB1dCgpIGlzSG9yaXpvbnRhbCA9IGZhbHNlO1xuICBASW5wdXQoKSBjdXJyZW50U3RlcCA9IDA7XG4gIEBJbnB1dCgpIGxhYmVsUG9zaXRpb24gPSAnZW5kJztcbiAgQE91dHB1dCgpIHNlbGVjdGlvbkNoYW5nZUV2ZW50OiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICB9XG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICB9XG5cbiAgY2hhbmdlU3RlcChzZWxlY3RlZEluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLmN1cnJlbnRTdGVwID0gc2VsZWN0ZWRJbmRleDtcbiAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZUV2ZW50LmVtaXQodGhpcy5jdXJyZW50U3RlcCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJxbXMtc3RlcHBlci1jb250YWluZXJcIj5cbiAgICA8ZGl2ICpuZ0lmPVwiaXNIb3Jpem9udGFsXCI+XG4gICAgICAgIDxtYXQtaG9yaXpvbnRhbC1zdGVwcGVyIFtzdHlsZS53aWR0aC5weF09XCJ3aWR0aFwiIGxhYmVsUG9zaXRpb249XCJ7e2xhYmVsUG9zaXRpb259fVwiICNzdGVwcGVyXG4gICAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cImNoYW5nZVN0ZXAoJGV2ZW50LnNlbGVjdGVkSW5kZXgpXCIgY2xhc3M9XCJvdmVyZmxvdy1hdXRvXCIgW3NlbGVjdGVkSW5kZXhdPVwiY3VycmVudFN0ZXBcIj5cbiAgICAgICAgICAgIDxtYXQtc3RlcCAqbmdGb3I9XCJsZXQgc3RlcCBvZiBzdGVwczsgbGV0IGkgPSBpbmRleDtcIiBbY29tcGxldGVkXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICBbYXJpYS1sYWJlbGxlZGJ5XT1cInN0ZXAuZGlzYWJsZWQgPyAnZGlzYWJsZWQnIDogJ3N0ZXAtaXRlbSdcIj5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbWF0U3RlcExhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiB0YWJpbmRleD1cIjBcIiAoa2V5ZG93bi5lbnRlcik9XCJjaGFuZ2VTdGVwKGkpXCIgY2xhc3M9XCJ0aXRsZS1zdGVwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2lzLWRlbGV0ZWQtZmllbGQnOiBzdGVwLmlzRGVsZXRlZCB9XCI+e3tzdGVwLm5hbWV9fTxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzdGVwLmlzTWFuZGF0b3J5ICYmICFzdGVwLmlzRGVsZXRlZFwiIGNsYXNzPVwiaXMtbWFuZGF0b3J5LWZpZWxkXCI+ICo8L3NwYW4+PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIG1hdFN0ZXBDb250ZW50PlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L21hdC1zdGVwPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIG1hdFN0ZXBwZXJJY29uPVwiZWRpdFwiPlxuICAgICAgICAgICAgICAgIHt7c3RlcHBlci5zZWxlY3RlZEluZGV4ICsgMX19XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L21hdC1ob3Jpem9udGFsLXN0ZXBwZXI+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cIiFpc0hvcml6b250YWxcIj5cbiAgICAgICAgPG1hdC12ZXJ0aWNhbC1zdGVwcGVyIFtzdHlsZS5oZWlnaHQucHhdPVwiaGVpZ2h0XCIgI3N0ZXBwZXIgKHNlbGVjdGlvbkNoYW5nZSk9XCJjaGFuZ2VTdGVwKCRldmVudC5zZWxlY3RlZEluZGV4KVwiXG4gICAgICAgICAgICBbc2VsZWN0ZWRJbmRleF09XCJjdXJyZW50U3RlcFwiIGNsYXNzPVwib3ZlcmZsb3ctYXV0b1wiPlxuICAgICAgICAgICAgPG1hdC1zdGVwICpuZ0Zvcj1cImxldCBzdGVwIG9mIHN0ZXBzOyBsZXQgaSA9IGluZGV4O1wiIFtjb21wbGV0ZWRdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgIFthcmlhLWxhYmVsXT1cInN0ZXAuZGlzYWJsZWQgPyAnZGlzYWJsZWQnIDogJ3N0ZXAtaXRlbSdcIj5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbWF0U3RlcExhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiB0YWJpbmRleD1cIjBcIiAoa2V5ZG93bi5lbnRlcik9XCJjaGFuZ2VTdGVwKGkpXCIgY2xhc3M9XCJ0aXRsZS1zdGVwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2lzLWRlbGV0ZWQtZmllbGQnOiBzdGVwLmlzRGVsZXRlZCB9XCI+e3tzdGVwLm5hbWV9fTxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzdGVwLmlzTWFuZGF0b3J5ICYmICFzdGVwLmlzRGVsZXRlZFwiIGNsYXNzPVwiaXMtbWFuZGF0b3J5LWZpZWxkXCI+ICo8L3NwYW4+PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIG1hdFN0ZXBDb250ZW50PlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L21hdC1zdGVwPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIG1hdFN0ZXBwZXJJY29uPVwiZWRpdFwiPlxuICAgICAgICAgICAgICAgIDxzcGFuPnt7c3RlcHBlci5zZWxlY3RlZEluZGV4ICsgMX19PC9zcGFuPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9tYXQtdmVydGljYWwtc3RlcHBlcj5cbiAgICA8L2Rpdj5cbjwvZGl2PiJdfQ==