@mintplayer/ng-bootstrap 15.20.3 → 15.20.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/calendar/src/calendar.component.d.ts +2 -0
  2. package/carousel/src/carousel/carousel.component.d.ts +2 -0
  3. package/carousel/src/carousel-image/carousel-image.directive.d.ts +3 -1
  4. package/esm2020/calendar/src/calendar.component.mjs +9 -3
  5. package/esm2020/carousel/src/carousel/carousel.component.mjs +7 -3
  6. package/esm2020/carousel/src/carousel-image/carousel-image.directive.mjs +7 -4
  7. package/esm2020/file-upload/src/component/file-upload.component.mjs +7 -4
  8. package/esm2020/file-upload/src/file-upload.mjs +1 -1
  9. package/esm2020/multiselect/src/component/multiselect.component.mjs +8 -3
  10. package/esm2020/multiselect/src/directives/button-template/button-template.directive.mjs +1 -1
  11. package/esm2020/multiselect/src/directives/footer-template/footer-template.directive.mjs +1 -1
  12. package/esm2020/multiselect/src/directives/header-template/header-template.directive.mjs +1 -1
  13. package/esm2020/pagination/src/component/pagination/pagination.component.mjs +6 -3
  14. package/esm2020/rating/src/component/rating.component.mjs +6 -3
  15. package/esm2020/scheduler/src/components/resource-group-presenter/resource-group-presenter.component.mjs +1 -1
  16. package/esm2020/scheduler/src/components/scheduler/scheduler.component.mjs +2 -1
  17. package/fesm2015/mintplayer-ng-bootstrap-calendar.mjs +8 -2
  18. package/fesm2015/mintplayer-ng-bootstrap-calendar.mjs.map +1 -1
  19. package/fesm2015/mintplayer-ng-bootstrap-carousel.mjs +10 -5
  20. package/fesm2015/mintplayer-ng-bootstrap-carousel.mjs.map +1 -1
  21. package/fesm2015/mintplayer-ng-bootstrap-file-upload.mjs +6 -3
  22. package/fesm2015/mintplayer-ng-bootstrap-file-upload.mjs.map +1 -1
  23. package/fesm2015/mintplayer-ng-bootstrap-multiselect.mjs +7 -2
  24. package/fesm2015/mintplayer-ng-bootstrap-multiselect.mjs.map +1 -1
  25. package/fesm2015/mintplayer-ng-bootstrap-pagination.mjs +5 -2
  26. package/fesm2015/mintplayer-ng-bootstrap-pagination.mjs.map +1 -1
  27. package/fesm2015/mintplayer-ng-bootstrap-rating.mjs +5 -2
  28. package/fesm2015/mintplayer-ng-bootstrap-rating.mjs.map +1 -1
  29. package/fesm2015/mintplayer-ng-bootstrap-scheduler.mjs +1 -0
  30. package/fesm2015/mintplayer-ng-bootstrap-scheduler.mjs.map +1 -1
  31. package/fesm2020/mintplayer-ng-bootstrap-calendar.mjs +8 -2
  32. package/fesm2020/mintplayer-ng-bootstrap-calendar.mjs.map +1 -1
  33. package/fesm2020/mintplayer-ng-bootstrap-carousel.mjs +10 -5
  34. package/fesm2020/mintplayer-ng-bootstrap-carousel.mjs.map +1 -1
  35. package/fesm2020/mintplayer-ng-bootstrap-file-upload.mjs +6 -3
  36. package/fesm2020/mintplayer-ng-bootstrap-file-upload.mjs.map +1 -1
  37. package/fesm2020/mintplayer-ng-bootstrap-multiselect.mjs +7 -2
  38. package/fesm2020/mintplayer-ng-bootstrap-multiselect.mjs.map +1 -1
  39. package/fesm2020/mintplayer-ng-bootstrap-pagination.mjs +5 -2
  40. package/fesm2020/mintplayer-ng-bootstrap-pagination.mjs.map +1 -1
  41. package/fesm2020/mintplayer-ng-bootstrap-rating.mjs +5 -2
  42. package/fesm2020/mintplayer-ng-bootstrap-rating.mjs.map +1 -1
  43. package/fesm2020/mintplayer-ng-bootstrap-scheduler.mjs +1 -0
  44. package/fesm2020/mintplayer-ng-bootstrap-scheduler.mjs.map +1 -1
  45. package/file-upload/src/component/file-upload.component.d.ts +1 -0
  46. package/file-upload/src/file-upload.d.ts +1 -0
  47. package/multiselect/src/component/multiselect.component.d.ts +9 -7
  48. package/multiselect/src/directives/button-template/button-template.directive.d.ts +4 -4
  49. package/multiselect/src/directives/footer-template/footer-template.directive.d.ts +4 -4
  50. package/multiselect/src/directives/header-template/header-template.directive.d.ts +4 -4
  51. package/package.json +1 -1
  52. package/pagination/src/component/pagination/pagination.component.d.ts +1 -0
  53. package/rating/src/component/rating.component.d.ts +1 -0
  54. package/scheduler/src/components/scheduler/scheduler.component.d.ts +1 -0
@@ -15,4 +15,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
15
15
  selector: '[bsFooterTemplate]'
16
16
  }]
17
17
  }], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i1.BsMultiselectComponent }]; } });
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9vdGVyLXRlbXBsYXRlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1ib290c3RyYXAvbXVsdGlzZWxlY3Qvc3JjL2RpcmVjdGl2ZXMvZm9vdGVyLXRlbXBsYXRlL2Zvb3Rlci10ZW1wbGF0ZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7OztBQUsvRSxNQUFNLE9BQU8seUJBQXlCO0lBRXBDLFlBQVksUUFBMEIsRUFBRSxXQUFtQztRQUN6RSxXQUFXLENBQUMsY0FBYyxHQUFHLFFBQVEsQ0FBQztJQUN4QyxDQUFDOztzSEFKVSx5QkFBeUI7MEdBQXpCLHlCQUF5QjsyRkFBekIseUJBQXlCO2tCQUhyQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxvQkFBb0I7aUJBQy9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQnNNdWx0aXNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudC9tdWx0aXNlbGVjdC5jb21wb25lbnQnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbYnNGb290ZXJUZW1wbGF0ZV0nXG59KVxuZXhwb3J0IGNsYXNzIEJzRm9vdGVyVGVtcGxhdGVEaXJlY3RpdmUge1xuXG4gIGNvbnN0cnVjdG9yKHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+LCBtdWx0aXNlbGVjdDogQnNNdWx0aXNlbGVjdENvbXBvbmVudCkge1xuICAgIG11bHRpc2VsZWN0LmZvb3RlclRlbXBsYXRlID0gdGVtcGxhdGU7XG4gIH1cblxufVxuIl19
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9vdGVyLXRlbXBsYXRlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1ib290c3RyYXAvbXVsdGlzZWxlY3Qvc3JjL2RpcmVjdGl2ZXMvZm9vdGVyLXRlbXBsYXRlL2Zvb3Rlci10ZW1wbGF0ZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7OztBQUsvRSxNQUFNLE9BQU8seUJBQXlCO0lBRXBDLFlBQVksUUFBMEIsRUFBRSxXQUFzQztRQUM1RSxXQUFXLENBQUMsY0FBYyxHQUFHLFFBQVEsQ0FBQztJQUN4QyxDQUFDOztzSEFKVSx5QkFBeUI7MEdBQXpCLHlCQUF5QjsyRkFBekIseUJBQXlCO2tCQUhyQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxvQkFBb0I7aUJBQy9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQnNNdWx0aXNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudC9tdWx0aXNlbGVjdC5jb21wb25lbnQnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbYnNGb290ZXJUZW1wbGF0ZV0nXG59KVxuZXhwb3J0IGNsYXNzIEJzRm9vdGVyVGVtcGxhdGVEaXJlY3RpdmU8VD4ge1xuXG4gIGNvbnN0cnVjdG9yKHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+LCBtdWx0aXNlbGVjdDogQnNNdWx0aXNlbGVjdENvbXBvbmVudDxUPikge1xuICAgIG11bHRpc2VsZWN0LmZvb3RlclRlbXBsYXRlID0gdGVtcGxhdGU7XG4gIH1cblxufVxuIl19
@@ -15,4 +15,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
15
15
  selector: '[bsHeaderTemplate]'
16
16
  }]
17
17
  }], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i1.BsMultiselectComponent }]; } });
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLXRlbXBsYXRlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1ib290c3RyYXAvbXVsdGlzZWxlY3Qvc3JjL2RpcmVjdGl2ZXMvaGVhZGVyLXRlbXBsYXRlL2hlYWRlci10ZW1wbGF0ZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7OztBQUsvRSxNQUFNLE9BQU8seUJBQXlCO0lBRXBDLFlBQVksUUFBMEIsRUFBRSxXQUFtQztRQUN6RSxXQUFXLENBQUMsY0FBYyxHQUFHLFFBQVEsQ0FBQztJQUN4QyxDQUFDOztzSEFKVSx5QkFBeUI7MEdBQXpCLHlCQUF5QjsyRkFBekIseUJBQXlCO2tCQUhyQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxvQkFBb0I7aUJBQy9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQnNNdWx0aXNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudC9tdWx0aXNlbGVjdC5jb21wb25lbnQnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbYnNIZWFkZXJUZW1wbGF0ZV0nXG59KVxuZXhwb3J0IGNsYXNzIEJzSGVhZGVyVGVtcGxhdGVEaXJlY3RpdmUge1xuXG4gIGNvbnN0cnVjdG9yKHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+LCBtdWx0aXNlbGVjdDogQnNNdWx0aXNlbGVjdENvbXBvbmVudCkge1xuICAgIG11bHRpc2VsZWN0LmhlYWRlclRlbXBsYXRlID0gdGVtcGxhdGU7XG4gIH1cblxufVxuIl19
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLXRlbXBsYXRlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1ib290c3RyYXAvbXVsdGlzZWxlY3Qvc3JjL2RpcmVjdGl2ZXMvaGVhZGVyLXRlbXBsYXRlL2hlYWRlci10ZW1wbGF0ZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7OztBQUsvRSxNQUFNLE9BQU8seUJBQXlCO0lBRXBDLFlBQVksUUFBMEIsRUFBRSxXQUFzQztRQUM1RSxXQUFXLENBQUMsY0FBYyxHQUFHLFFBQVEsQ0FBQztJQUN4QyxDQUFDOztzSEFKVSx5QkFBeUI7MEdBQXpCLHlCQUF5QjsyRkFBekIseUJBQXlCO2tCQUhyQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxvQkFBb0I7aUJBQy9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQnNNdWx0aXNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudC9tdWx0aXNlbGVjdC5jb21wb25lbnQnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbYnNIZWFkZXJUZW1wbGF0ZV0nXG59KVxuZXhwb3J0IGNsYXNzIEJzSGVhZGVyVGVtcGxhdGVEaXJlY3RpdmU8VD4ge1xuXG4gIGNvbnN0cnVjdG9yKHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+LCBtdWx0aXNlbGVjdDogQnNNdWx0aXNlbGVjdENvbXBvbmVudDxUPikge1xuICAgIG11bHRpc2VsZWN0LmhlYWRlclRlbXBsYXRlID0gdGVtcGxhdGU7XG4gIH1cblxufVxuIl19
@@ -176,12 +176,15 @@ export class BsPaginationComponent {
176
176
  }
177
177
  return false;
178
178
  }
179
+ trackByPageNumber(index, page) {
180
+ return page;
181
+ }
179
182
  }
180
183
  BsPaginationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: BsPaginationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
181
- BsPaginationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: BsPaginationComponent, selector: "bs-pagination", inputs: { selectedPageNumber: "selectedPageNumber", numberOfBoxes: "numberOfBoxes", pageNumbers: "pageNumbers", showArrows: "showArrows", size: "size" }, outputs: { selectedPageNumberChange: "selectedPageNumberChange" }, ngImport: i0, template: "<ul class=\"pagination\">\n <li class=\"page-item\" *ngIf=\"showArrows$ | async\">\n <a class=\"page-link\" href=\"\" (click)=\"onPrevious()\" [class.disabled]=\"isFirstPage$ | async\" aria-label=\"Previous\">\n <span aria-hidden=\"true\">&laquo;</span>\n <span class=\"visually-hidden\">Previous</span>\n </a>\n </li>\n <li *ngFor=\"let pageNumber of (shownPageNumbers$ | async)\" class=\"page-item\">\n <a class=\"page-link\" href=\"\" (click)=\"onSelectPage($event, pageNumber.page)\"\n [ngClass]=\"{ 'active': pageNumber.selected }\" *ngIf=\"pageNumber.page != '...'\">\n {{ pageNumber.page }}\n <span class=\"visually-hidden\" *ngIf=\"pageNumber.selected\">(current)</span>\n </a>\n </li>\n <li class=\"page-item\" *ngIf=\"showArrows$ | async\">\n <a class=\"page-link\" href=\"\" (click)=\"onNext()\" [class.disabled]=\"isLastPage$ | async\" aria-label=\"Next\">\n <span aria-hidden=\"true\">&raquo;</span>\n <span class=\"visually-hidden\">Next</span>\n </a>\n </li>\n</ul>", styles: [":host ::ng-deep .pagination{--bs-pagination-padding-x: .75rem;--bs-pagination-padding-y: .375rem;--bs-pagination-font-size: 1rem;--bs-pagination-color: var(--bs-link-color);--bs-pagination-bg: #fff;--bs-pagination-border-width: 1px;--bs-pagination-border-color: #dee2e6;--bs-pagination-border-radius: .375rem;--bs-pagination-hover-color: var(--bs-link-hover-color);--bs-pagination-hover-bg: #e9ecef;--bs-pagination-hover-border-color: #dee2e6;--bs-pagination-focus-color: var(--bs-link-hover-color);--bs-pagination-focus-bg: #e9ecef;--bs-pagination-focus-box-shadow: 0 0 0 .25rem rgba(13, 110, 253, .25);--bs-pagination-active-color: #fff;--bs-pagination-active-bg: #0d6efd;--bs-pagination-active-border-color: #0d6efd;--bs-pagination-disabled-color: #6c757d;--bs-pagination-disabled-bg: #fff;--bs-pagination-disabled-border-color: #dee2e6;display:flex;padding-left:0;list-style:none}:host ::ng-deep .page-link{position:relative;display:block;padding:var(--bs-pagination-padding-y) var(--bs-pagination-padding-x);font-size:var(--bs-pagination-font-size);color:var(--bs-pagination-color);text-decoration:none;background-color:var(--bs-pagination-bg);border:var(--bs-pagination-border-width) solid var(--bs-pagination-border-color);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){:host ::ng-deep .page-link{transition:none}}:host ::ng-deep .page-link:hover{z-index:2;color:var(--bs-pagination-hover-color);background-color:var(--bs-pagination-hover-bg);border-color:var(--bs-pagination-hover-border-color)}:host ::ng-deep .page-link:focus{z-index:3;color:var(--bs-pagination-focus-color);background-color:var(--bs-pagination-focus-bg);outline:0;box-shadow:var(--bs-pagination-focus-box-shadow)}:host ::ng-deep .page-link.active,.active>:host ::ng-deep .page-link{z-index:3;color:var(--bs-pagination-active-color);background-color:var(--bs-pagination-active-bg);border-color:var(--bs-pagination-active-border-color)}:host ::ng-deep .page-link.disabled,.disabled>:host ::ng-deep .page-link{color:var(--bs-pagination-disabled-color);pointer-events:none;background-color:var(--bs-pagination-disabled-bg);border-color:var(--bs-pagination-disabled-border-color)}:host ::ng-deep .page-item:not(:first-child) .page-link{margin-left:-1px}:host ::ng-deep .page-item:first-child .page-link{border-top-left-radius:var(--bs-pagination-border-radius);border-bottom-left-radius:var(--bs-pagination-border-radius)}:host ::ng-deep .page-item:last-child .page-link{border-top-right-radius:var(--bs-pagination-border-radius);border-bottom-right-radius:var(--bs-pagination-border-radius)}:host ::ng-deep .pagination-lg{--bs-pagination-padding-x: 1.5rem;--bs-pagination-padding-y: .75rem;--bs-pagination-font-size: 1.25rem;--bs-pagination-border-radius: .5rem}:host ::ng-deep .pagination-sm{--bs-pagination-padding-x: .5rem;--bs-pagination-padding-y: .25rem;--bs-pagination-font-size: .875rem;--bs-pagination-border-radius: .25rem}:host{display:inline-block}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
184
+ BsPaginationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: BsPaginationComponent, selector: "bs-pagination", inputs: { selectedPageNumber: "selectedPageNumber", numberOfBoxes: "numberOfBoxes", pageNumbers: "pageNumbers", showArrows: "showArrows", size: "size" }, outputs: { selectedPageNumberChange: "selectedPageNumberChange" }, ngImport: i0, template: "<ul class=\"pagination\">\n <li class=\"page-item\" *ngIf=\"showArrows$ | async\">\n <a class=\"page-link\" href=\"\" (click)=\"onPrevious()\" [class.disabled]=\"isFirstPage$ | async\" aria-label=\"Previous\">\n <span aria-hidden=\"true\">&laquo;</span>\n <span class=\"visually-hidden\">Previous</span>\n </a>\n </li>\n <li *ngFor=\"let pageNumber of (shownPageNumbers$ | async); trackBy: trackByPageNumber\" class=\"page-item\">\n <a class=\"page-link\" href=\"\" (click)=\"onSelectPage($event, pageNumber.page)\"\n [ngClass]=\"{ 'active': pageNumber.selected }\" *ngIf=\"pageNumber.page != '...'\">\n {{ pageNumber.page }}\n <span class=\"visually-hidden\" *ngIf=\"pageNumber.selected\">(current)</span>\n </a>\n </li>\n <li class=\"page-item\" *ngIf=\"showArrows$ | async\">\n <a class=\"page-link\" href=\"\" (click)=\"onNext()\" [class.disabled]=\"isLastPage$ | async\" aria-label=\"Next\">\n <span aria-hidden=\"true\">&raquo;</span>\n <span class=\"visually-hidden\">Next</span>\n </a>\n </li>\n</ul>", styles: [":host ::ng-deep .pagination{--bs-pagination-padding-x: .75rem;--bs-pagination-padding-y: .375rem;--bs-pagination-font-size: 1rem;--bs-pagination-color: var(--bs-link-color);--bs-pagination-bg: #fff;--bs-pagination-border-width: 1px;--bs-pagination-border-color: #dee2e6;--bs-pagination-border-radius: .375rem;--bs-pagination-hover-color: var(--bs-link-hover-color);--bs-pagination-hover-bg: #e9ecef;--bs-pagination-hover-border-color: #dee2e6;--bs-pagination-focus-color: var(--bs-link-hover-color);--bs-pagination-focus-bg: #e9ecef;--bs-pagination-focus-box-shadow: 0 0 0 .25rem rgba(13, 110, 253, .25);--bs-pagination-active-color: #fff;--bs-pagination-active-bg: #0d6efd;--bs-pagination-active-border-color: #0d6efd;--bs-pagination-disabled-color: #6c757d;--bs-pagination-disabled-bg: #fff;--bs-pagination-disabled-border-color: #dee2e6;display:flex;padding-left:0;list-style:none}:host ::ng-deep .page-link{position:relative;display:block;padding:var(--bs-pagination-padding-y) var(--bs-pagination-padding-x);font-size:var(--bs-pagination-font-size);color:var(--bs-pagination-color);text-decoration:none;background-color:var(--bs-pagination-bg);border:var(--bs-pagination-border-width) solid var(--bs-pagination-border-color);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){:host ::ng-deep .page-link{transition:none}}:host ::ng-deep .page-link:hover{z-index:2;color:var(--bs-pagination-hover-color);background-color:var(--bs-pagination-hover-bg);border-color:var(--bs-pagination-hover-border-color)}:host ::ng-deep .page-link:focus{z-index:3;color:var(--bs-pagination-focus-color);background-color:var(--bs-pagination-focus-bg);outline:0;box-shadow:var(--bs-pagination-focus-box-shadow)}:host ::ng-deep .page-link.active,.active>:host ::ng-deep .page-link{z-index:3;color:var(--bs-pagination-active-color);background-color:var(--bs-pagination-active-bg);border-color:var(--bs-pagination-active-border-color)}:host ::ng-deep .page-link.disabled,.disabled>:host ::ng-deep .page-link{color:var(--bs-pagination-disabled-color);pointer-events:none;background-color:var(--bs-pagination-disabled-bg);border-color:var(--bs-pagination-disabled-border-color)}:host ::ng-deep .page-item:not(:first-child) .page-link{margin-left:-1px}:host ::ng-deep .page-item:first-child .page-link{border-top-left-radius:var(--bs-pagination-border-radius);border-bottom-left-radius:var(--bs-pagination-border-radius)}:host ::ng-deep .page-item:last-child .page-link{border-top-right-radius:var(--bs-pagination-border-radius);border-bottom-right-radius:var(--bs-pagination-border-radius)}:host ::ng-deep .pagination-lg{--bs-pagination-padding-x: 1.5rem;--bs-pagination-padding-y: .75rem;--bs-pagination-font-size: 1.25rem;--bs-pagination-border-radius: .5rem}:host ::ng-deep .pagination-sm{--bs-pagination-padding-x: .5rem;--bs-pagination-padding-y: .25rem;--bs-pagination-font-size: .875rem;--bs-pagination-border-radius: .25rem}:host{display:inline-block}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
182
185
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: BsPaginationComponent, decorators: [{
183
186
  type: Component,
184
- args: [{ selector: 'bs-pagination', template: "<ul class=\"pagination\">\n <li class=\"page-item\" *ngIf=\"showArrows$ | async\">\n <a class=\"page-link\" href=\"\" (click)=\"onPrevious()\" [class.disabled]=\"isFirstPage$ | async\" aria-label=\"Previous\">\n <span aria-hidden=\"true\">&laquo;</span>\n <span class=\"visually-hidden\">Previous</span>\n </a>\n </li>\n <li *ngFor=\"let pageNumber of (shownPageNumbers$ | async)\" class=\"page-item\">\n <a class=\"page-link\" href=\"\" (click)=\"onSelectPage($event, pageNumber.page)\"\n [ngClass]=\"{ 'active': pageNumber.selected }\" *ngIf=\"pageNumber.page != '...'\">\n {{ pageNumber.page }}\n <span class=\"visually-hidden\" *ngIf=\"pageNumber.selected\">(current)</span>\n </a>\n </li>\n <li class=\"page-item\" *ngIf=\"showArrows$ | async\">\n <a class=\"page-link\" href=\"\" (click)=\"onNext()\" [class.disabled]=\"isLastPage$ | async\" aria-label=\"Next\">\n <span aria-hidden=\"true\">&raquo;</span>\n <span class=\"visually-hidden\">Next</span>\n </a>\n </li>\n</ul>", styles: [":host ::ng-deep .pagination{--bs-pagination-padding-x: .75rem;--bs-pagination-padding-y: .375rem;--bs-pagination-font-size: 1rem;--bs-pagination-color: var(--bs-link-color);--bs-pagination-bg: #fff;--bs-pagination-border-width: 1px;--bs-pagination-border-color: #dee2e6;--bs-pagination-border-radius: .375rem;--bs-pagination-hover-color: var(--bs-link-hover-color);--bs-pagination-hover-bg: #e9ecef;--bs-pagination-hover-border-color: #dee2e6;--bs-pagination-focus-color: var(--bs-link-hover-color);--bs-pagination-focus-bg: #e9ecef;--bs-pagination-focus-box-shadow: 0 0 0 .25rem rgba(13, 110, 253, .25);--bs-pagination-active-color: #fff;--bs-pagination-active-bg: #0d6efd;--bs-pagination-active-border-color: #0d6efd;--bs-pagination-disabled-color: #6c757d;--bs-pagination-disabled-bg: #fff;--bs-pagination-disabled-border-color: #dee2e6;display:flex;padding-left:0;list-style:none}:host ::ng-deep .page-link{position:relative;display:block;padding:var(--bs-pagination-padding-y) var(--bs-pagination-padding-x);font-size:var(--bs-pagination-font-size);color:var(--bs-pagination-color);text-decoration:none;background-color:var(--bs-pagination-bg);border:var(--bs-pagination-border-width) solid var(--bs-pagination-border-color);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){:host ::ng-deep .page-link{transition:none}}:host ::ng-deep .page-link:hover{z-index:2;color:var(--bs-pagination-hover-color);background-color:var(--bs-pagination-hover-bg);border-color:var(--bs-pagination-hover-border-color)}:host ::ng-deep .page-link:focus{z-index:3;color:var(--bs-pagination-focus-color);background-color:var(--bs-pagination-focus-bg);outline:0;box-shadow:var(--bs-pagination-focus-box-shadow)}:host ::ng-deep .page-link.active,.active>:host ::ng-deep .page-link{z-index:3;color:var(--bs-pagination-active-color);background-color:var(--bs-pagination-active-bg);border-color:var(--bs-pagination-active-border-color)}:host ::ng-deep .page-link.disabled,.disabled>:host ::ng-deep .page-link{color:var(--bs-pagination-disabled-color);pointer-events:none;background-color:var(--bs-pagination-disabled-bg);border-color:var(--bs-pagination-disabled-border-color)}:host ::ng-deep .page-item:not(:first-child) .page-link{margin-left:-1px}:host ::ng-deep .page-item:first-child .page-link{border-top-left-radius:var(--bs-pagination-border-radius);border-bottom-left-radius:var(--bs-pagination-border-radius)}:host ::ng-deep .page-item:last-child .page-link{border-top-right-radius:var(--bs-pagination-border-radius);border-bottom-right-radius:var(--bs-pagination-border-radius)}:host ::ng-deep .pagination-lg{--bs-pagination-padding-x: 1.5rem;--bs-pagination-padding-y: .75rem;--bs-pagination-font-size: 1.25rem;--bs-pagination-border-radius: .5rem}:host ::ng-deep .pagination-sm{--bs-pagination-padding-x: .5rem;--bs-pagination-padding-y: .25rem;--bs-pagination-font-size: .875rem;--bs-pagination-border-radius: .25rem}:host{display:inline-block}\n"] }]
187
+ args: [{ selector: 'bs-pagination', template: "<ul class=\"pagination\">\n <li class=\"page-item\" *ngIf=\"showArrows$ | async\">\n <a class=\"page-link\" href=\"\" (click)=\"onPrevious()\" [class.disabled]=\"isFirstPage$ | async\" aria-label=\"Previous\">\n <span aria-hidden=\"true\">&laquo;</span>\n <span class=\"visually-hidden\">Previous</span>\n </a>\n </li>\n <li *ngFor=\"let pageNumber of (shownPageNumbers$ | async); trackBy: trackByPageNumber\" class=\"page-item\">\n <a class=\"page-link\" href=\"\" (click)=\"onSelectPage($event, pageNumber.page)\"\n [ngClass]=\"{ 'active': pageNumber.selected }\" *ngIf=\"pageNumber.page != '...'\">\n {{ pageNumber.page }}\n <span class=\"visually-hidden\" *ngIf=\"pageNumber.selected\">(current)</span>\n </a>\n </li>\n <li class=\"page-item\" *ngIf=\"showArrows$ | async\">\n <a class=\"page-link\" href=\"\" (click)=\"onNext()\" [class.disabled]=\"isLastPage$ | async\" aria-label=\"Next\">\n <span aria-hidden=\"true\">&raquo;</span>\n <span class=\"visually-hidden\">Next</span>\n </a>\n </li>\n</ul>", styles: [":host ::ng-deep .pagination{--bs-pagination-padding-x: .75rem;--bs-pagination-padding-y: .375rem;--bs-pagination-font-size: 1rem;--bs-pagination-color: var(--bs-link-color);--bs-pagination-bg: #fff;--bs-pagination-border-width: 1px;--bs-pagination-border-color: #dee2e6;--bs-pagination-border-radius: .375rem;--bs-pagination-hover-color: var(--bs-link-hover-color);--bs-pagination-hover-bg: #e9ecef;--bs-pagination-hover-border-color: #dee2e6;--bs-pagination-focus-color: var(--bs-link-hover-color);--bs-pagination-focus-bg: #e9ecef;--bs-pagination-focus-box-shadow: 0 0 0 .25rem rgba(13, 110, 253, .25);--bs-pagination-active-color: #fff;--bs-pagination-active-bg: #0d6efd;--bs-pagination-active-border-color: #0d6efd;--bs-pagination-disabled-color: #6c757d;--bs-pagination-disabled-bg: #fff;--bs-pagination-disabled-border-color: #dee2e6;display:flex;padding-left:0;list-style:none}:host ::ng-deep .page-link{position:relative;display:block;padding:var(--bs-pagination-padding-y) var(--bs-pagination-padding-x);font-size:var(--bs-pagination-font-size);color:var(--bs-pagination-color);text-decoration:none;background-color:var(--bs-pagination-bg);border:var(--bs-pagination-border-width) solid var(--bs-pagination-border-color);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){:host ::ng-deep .page-link{transition:none}}:host ::ng-deep .page-link:hover{z-index:2;color:var(--bs-pagination-hover-color);background-color:var(--bs-pagination-hover-bg);border-color:var(--bs-pagination-hover-border-color)}:host ::ng-deep .page-link:focus{z-index:3;color:var(--bs-pagination-focus-color);background-color:var(--bs-pagination-focus-bg);outline:0;box-shadow:var(--bs-pagination-focus-box-shadow)}:host ::ng-deep .page-link.active,.active>:host ::ng-deep .page-link{z-index:3;color:var(--bs-pagination-active-color);background-color:var(--bs-pagination-active-bg);border-color:var(--bs-pagination-active-border-color)}:host ::ng-deep .page-link.disabled,.disabled>:host ::ng-deep .page-link{color:var(--bs-pagination-disabled-color);pointer-events:none;background-color:var(--bs-pagination-disabled-bg);border-color:var(--bs-pagination-disabled-border-color)}:host ::ng-deep .page-item:not(:first-child) .page-link{margin-left:-1px}:host ::ng-deep .page-item:first-child .page-link{border-top-left-radius:var(--bs-pagination-border-radius);border-bottom-left-radius:var(--bs-pagination-border-radius)}:host ::ng-deep .page-item:last-child .page-link{border-top-right-radius:var(--bs-pagination-border-radius);border-bottom-right-radius:var(--bs-pagination-border-radius)}:host ::ng-deep .pagination-lg{--bs-pagination-padding-x: 1.5rem;--bs-pagination-padding-y: .75rem;--bs-pagination-font-size: 1.25rem;--bs-pagination-border-radius: .5rem}:host ::ng-deep .pagination-sm{--bs-pagination-padding-x: .5rem;--bs-pagination-padding-y: .25rem;--bs-pagination-font-size: .875rem;--bs-pagination-border-radius: .25rem}:host{display:inline-block}\n"] }]
185
188
  }], ctorParameters: function () { return []; }, propDecorators: { selectedPageNumberChange: [{
186
189
  type: Output
187
190
  }], selectedPageNumber: [{
@@ -195,4 +198,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
195
198
  }], size: [{
196
199
  type: Input
197
200
  }] } });
198
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL3BhZ2luYXRpb24vc3JjL2NvbXBvbmVudC9wYWdpbmF0aW9uL3BhZ2luYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9taW50cGxheWVyLW5nLWJvb3RzdHJhcC9wYWdpbmF0aW9uL3NyYy9jb21wb25lbnQvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFjLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7OztBQVEzRixNQUFNLE9BQU8scUJBQXFCO0lBQ2hDO1FBNkdBLHdCQUF3QjtRQUN4QixpQkFBWSxHQUFHLElBQUksZUFBZSxDQUFXLEVBQUUsQ0FBQyxDQUFDO1FBR2pELHVCQUF1QjtRQUN2Qix3QkFBbUIsR0FBRyxJQUFJLGVBQWUsQ0FBUyxDQUFDLENBQUMsQ0FBQztRQUNyRCx1QkFBdUI7UUFDdkIsbUJBQWMsR0FBRyxJQUFJLGVBQWUsQ0FBUyxDQUFDLENBQUMsQ0FBQztRQUNoRCxvQ0FBb0M7UUFDcEMsZ0JBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBVSxJQUFJLENBQUMsQ0FBQztRQUNqRCx3QkFBd0I7UUFDeEIsVUFBSyxHQUFHLElBQUksZUFBZSxDQUFPLFFBQVEsQ0FBQyxDQUFDO1FBZTVDLDRCQUE0QjtRQUNYLDZCQUF3QixHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUF2SXJFLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUVoQyxJQUFJLENBQUMsMkJBQTJCLEdBQUcsYUFBYSxDQUFDO1lBQy9DLElBQUksQ0FBQyxjQUFjO1lBQ25CLElBQUksQ0FBQyxZQUFZO1lBQ2pCLElBQUksQ0FBQyxXQUFXO1NBQ2pCLENBQUM7YUFDQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUNoQyxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUUsV0FBVyxFQUFFLFVBQVUsQ0FBQyxFQUFFLEVBQUU7WUFDL0MsSUFBSSxhQUFhLElBQUksQ0FBQyxFQUFFO2dCQUN0QixPQUFPLFdBQVcsQ0FBQyxNQUFNLENBQUM7YUFDM0I7aUJBQU0sSUFBSSxDQUFDLFVBQVUsRUFBRTtnQkFDdEIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDcEQ7aUJBQU0sSUFBSSxhQUFhLElBQUksQ0FBQyxFQUFFO2dCQUM3QixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUN4QztpQkFBTTtnQkFDTCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxHQUFHLENBQUMsRUFBRSxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDeEQ7UUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFDO1FBRUosSUFBSSxDQUFDLGVBQWUsR0FBRyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxJQUFJLENBQUMsMkJBQTJCLENBQUMsQ0FBQzthQUNsSCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsa0JBQWtCLEVBQUUsMEJBQTBCLENBQUMsRUFBRSxFQUFFO1lBQzFFLE1BQU0sS0FBSyxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FBQztZQUN0RCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLDBCQUEwQixHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQzFELE9BQU8sS0FBSyxHQUFHLE1BQU0sQ0FBQztRQUN4QixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRU4sSUFBSSxDQUFDLGdCQUFnQixHQUFHLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixFQUFFLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO2FBQ25ILElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxrQkFBa0IsRUFBRSwwQkFBMEIsQ0FBQyxFQUFFLEVBQUU7WUFDMUUsTUFBTSxLQUFLLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1lBQ3RELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsMEJBQTBCLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDMUQsT0FBTyxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLEdBQUcsTUFBTSxDQUFDO1FBQy9DLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFTixJQUFJLENBQUMsaUJBQWlCLEdBQUcsYUFBYSxDQUFDO1lBQ3JDLElBQUksQ0FBQyxZQUFZO1lBQ2pCLElBQUksQ0FBQyxtQkFBbUI7WUFDeEIsSUFBSSxDQUFDLDJCQUEyQjtZQUNoQyxJQUFJLENBQUMsZUFBZTtZQUNwQixJQUFJLENBQUMsZ0JBQWdCO1NBQ3RCLENBQUM7YUFDQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUNoQyxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsa0JBQWtCLEVBQUUsMEJBQTBCLEVBQUUsY0FBYyxFQUFFLGVBQWUsQ0FBQyxFQUFFLEVBQUU7WUFDckcsd0VBQXdFO1lBQ3hFLCtCQUErQjtZQUMvQixpQ0FBaUM7WUFFakMsNkJBQTZCO1lBQzdCLCtCQUErQjtZQUUvQixTQUFTO1lBRVQsb0RBQW9EO1lBRXBELElBQUksVUFBVSxHQUFHLENBQUMsQ0FBQztZQUNuQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsMEJBQTBCLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDOUQsSUFBSSxXQUFXLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLEdBQUcsSUFBSSxFQUFFO2dCQUNsRCxVQUFVLEdBQUcsQ0FBQyxDQUFDO2FBQ2hCO2lCQUFNLElBQ0wsV0FBVyxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQztnQkFDdkMsV0FBVyxDQUFDLE1BQU0sR0FBRyxJQUFJLEVBQ3pCO2dCQUNBLFVBQVUsR0FBRyxXQUFXLENBQUMsTUFBTSxHQUFHLDBCQUEwQixDQUFDO2FBQzlEO2lCQUFNO2dCQUNMLFVBQVUsR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLEdBQUcsSUFBSSxDQUFDO2FBQzdEO1lBRUQsT0FBTyxDQUFDLEdBQUcsS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7aUJBQ2pELEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLFVBQVUsQ0FBQztpQkFDMUIsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQSxDQUFtQjtnQkFDNUIsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUM7Z0JBQ3BCLFFBQVEsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLEtBQUssa0JBQWtCO2FBQ2hELENBQUEsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUVKLElBQUksQ0FBQyxZQUFZLEdBQUcsYUFBYSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxZQUFZO1lBQ2pCLElBQUksQ0FBQyxtQkFBbUI7U0FDekIsQ0FBQzthQUNDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQ2hDLElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxrQkFBa0IsQ0FBQyxFQUFFLEVBQUU7WUFDeEMsT0FBTyxXQUFXLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZELENBQUMsQ0FBQyxDQUNILENBQUM7UUFFSixJQUFJLENBQUMsV0FBVyxHQUFHLGFBQWEsQ0FBQztZQUMvQixJQUFJLENBQUMsWUFBWTtZQUNqQixJQUFJLENBQUMsbUJBQW1CO1NBQ3pCLENBQUM7YUFDQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUNoQyxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsa0JBQWtCLENBQUMsRUFBRSxFQUFFO1lBQ3hDLE9BQU8sQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLEtBQUssV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUM5RSxDQUFDLENBQUMsQ0FDSCxDQUFDO1FBRUosSUFBSSxDQUFDLG1CQUFtQjthQUNyQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUNoQyxTQUFTLENBQUMsQ0FBQyxrQkFBa0IsRUFBRSxFQUFFO1lBQ2hDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUN6RCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUE4QkQsSUFBYSxrQkFBa0IsQ0FBQyxLQUFhO1FBQzNDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUNELElBQUksa0JBQWtCO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQztJQUN4QyxDQUFDO0lBQ0QsWUFBWTtJQUVaLHVCQUF1QjtJQUN2QixJQUFhLGFBQWEsQ0FBQyxLQUFhO1FBQ3RDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFDRCxJQUFJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDO0lBQ25DLENBQUM7SUFDRCxZQUFZO0lBRVoscUJBQXFCO0lBQ3JCLElBQWEsV0FBVyxDQUFDLEtBQWU7UUFDdEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUNELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUM7SUFDakMsQ0FBQztJQUNELFlBQVk7SUFFWixvQkFBb0I7SUFDcEIsSUFBYSxVQUFVLENBQUMsS0FBYztRQUNwQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBQ0QsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztJQUNoQyxDQUFDO0lBQ0QsWUFBWTtJQUVaLGNBQWM7SUFDZCxJQUFhLElBQUksQ0FBQyxLQUFXO1FBQzNCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFDRCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO0lBQzFCLENBQUM7SUFDRCxZQUFZO0lBRVosV0FBVztRQUNULElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxZQUFZLENBQUMsS0FBaUIsRUFBRSxJQUFZO1FBQzFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEMsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsVUFBVTtRQUNSLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ2hFLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRTtZQUNiLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQzdDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDekM7YUFBTTtZQUNMLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3BEO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsTUFBTTtRQUNKLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ2hFLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRTtZQUNiLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzlFO2FBQU0sSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQzlDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUM1RDthQUFNO1lBQ0wsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDOUU7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7O2tIQXBOVSxxQkFBcUI7c0dBQXJCLHFCQUFxQixrUkNWbEMsNmxDQW9CSzsyRkRWUSxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0UsZUFBZTswRUE2SVIsd0JBQXdCO3NCQUF4QyxNQUFNO2dCQUNNLGtCQUFrQjtzQkFBOUIsS0FBSztnQkFTTyxhQUFhO3NCQUF6QixLQUFLO2dCQVNPLFdBQVc7c0JBQXZCLEtBQUs7Z0JBU08sVUFBVTtzQkFBdEIsS0FBSztnQkFTTyxJQUFJO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2l6ZSB9IGZyb20gJ0BtaW50cGxheWVyL25nLWJvb3RzdHJhcCc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIG1hcCwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBQYWdlV2l0aFNlbGVjdGlvbiB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvcGFnZS13aXRoLXNlbGVjdGlvbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JzLXBhZ2luYXRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vcGFnaW5hdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3BhZ2luYXRpb24uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQnNQYWdpbmF0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5kZXN0cm95ZWQkID0gbmV3IFN1YmplY3QoKTtcblxuICAgIHRoaXMudmlzaWJsZU51bWJlck9mTnVtYmVyQm94ZXMkID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLm51bWJlck9mQm94ZXMkLFxuICAgICAgdGhpcy5wYWdlTnVtYmVycyQsXG4gICAgICB0aGlzLnNob3dBcnJvd3MkLFxuICAgIF0pXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKFtudW1iZXJPZkJveGVzLCBwYWdlTnVtYmVycywgc2hvd0Fycm93c10pID0+IHtcbiAgICAgICAgICBpZiAobnVtYmVyT2ZCb3hlcyA8PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gcGFnZU51bWJlcnMubGVuZ3RoO1xuICAgICAgICAgIH0gZWxzZSBpZiAoIXNob3dBcnJvd3MpIHtcbiAgICAgICAgICAgIHJldHVybiBNYXRoLm1pbihudW1iZXJPZkJveGVzLCBwYWdlTnVtYmVycy5sZW5ndGgpO1xuICAgICAgICAgIH0gZWxzZSBpZiAobnVtYmVyT2ZCb3hlcyA8PSAyKSB7XG4gICAgICAgICAgICByZXR1cm4gTWF0aC5taW4oMSwgcGFnZU51bWJlcnMubGVuZ3RoKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIE1hdGgubWluKG51bWJlck9mQm94ZXMgLSAyLCBwYWdlTnVtYmVycy5sZW5ndGgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICk7XG5cbiAgICB0aGlzLmlzTGVmdE92ZXJmbG93JCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMucGFnZU51bWJlcnMkLCB0aGlzLnNlbGVjdGVkUGFnZU51bWJlciQsIHRoaXMudmlzaWJsZU51bWJlck9mTnVtYmVyQm94ZXMkXSlcbiAgICAgIC5waXBlKG1hcCgoW3BhZ2VOdW1iZXJzLCBzZWxlY3RlZFBhZ2VOdW1iZXIsIHZpc2libGVOdW1iZXJPZk51bWJlckJveGVzXSkgPT4ge1xuICAgICAgICBjb25zdCBpbmRleCA9IHBhZ2VOdW1iZXJzLmluZGV4T2Yoc2VsZWN0ZWRQYWdlTnVtYmVyKTtcbiAgICAgICAgY29uc3QgbWlkZGxlID0gTWF0aC5mbG9vcih2aXNpYmxlTnVtYmVyT2ZOdW1iZXJCb3hlcyAvIDIpO1xuICAgICAgICByZXR1cm4gaW5kZXggPiBtaWRkbGU7XG4gICAgICB9KSk7XG5cbiAgICB0aGlzLmlzUmlnaHRPdmVyZmxvdyQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLnBhZ2VOdW1iZXJzJCwgdGhpcy5zZWxlY3RlZFBhZ2VOdW1iZXIkLCB0aGlzLnZpc2libGVOdW1iZXJPZk51bWJlckJveGVzJF0pXG4gICAgICAucGlwZShtYXAoKFtwYWdlTnVtYmVycywgc2VsZWN0ZWRQYWdlTnVtYmVyLCB2aXNpYmxlTnVtYmVyT2ZOdW1iZXJCb3hlc10pID0+IHtcbiAgICAgICAgY29uc3QgaW5kZXggPSBwYWdlTnVtYmVycy5pbmRleE9mKHNlbGVjdGVkUGFnZU51bWJlcik7XG4gICAgICAgIGNvbnN0IG1pZGRsZSA9IE1hdGguZmxvb3IodmlzaWJsZU51bWJlck9mTnVtYmVyQm94ZXMgLyAyKTtcbiAgICAgICAgcmV0dXJuIChwYWdlTnVtYmVycy5sZW5ndGggLSBpbmRleCkgPCBtaWRkbGU7XG4gICAgICB9KSk7XG5cbiAgICB0aGlzLnNob3duUGFnZU51bWJlcnMkID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLnBhZ2VOdW1iZXJzJCxcbiAgICAgIHRoaXMuc2VsZWN0ZWRQYWdlTnVtYmVyJCxcbiAgICAgIHRoaXMudmlzaWJsZU51bWJlck9mTnVtYmVyQm94ZXMkLFxuICAgICAgdGhpcy5pc0xlZnRPdmVyZmxvdyQsXG4gICAgICB0aGlzLmlzUmlnaHRPdmVyZmxvdyRcbiAgICBdKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCkpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChbcGFnZU51bWJlcnMsIHNlbGVjdGVkUGFnZU51bWJlciwgdmlzaWJsZU51bWJlck9mTnVtYmVyQm94ZXMsIGlzTGVmdE92ZXJmbG93LCBpc1JpZ2h0T3ZlcmZsb3ddKSA9PiB7XG4gICAgICAgICAgLy8gY29uc3QgYm94ZXNUb1JlbW92ZSA9IHBhZ2VOdW1iZXJzLmxlbmd0aCAtIHZpc2libGVOdW1iZXJPZk51bWJlckJveGVzXG4gICAgICAgICAgLy8gICArIChpc0xlZnRPdmVyZmxvdyA/IDEgOiAwKVxuICAgICAgICAgIC8vICAgKyAoaXNSaWdodE92ZXJmbG93ID8gMSA6IDApO1xuXG4gICAgICAgICAgLy8gbGV0IHJlc3VsdDogbnVtYmVyW10gPSBbXTtcbiAgICAgICAgICAvLyByZXN1bHQucHVzaChwYWdlTnVtYmVyc1swXSk7XG5cbiAgICAgICAgICAvLyAvLyAuLi5cblxuICAgICAgICAgIC8vIHJlc3VsdC5wdXNoKHBhZ2VOdW1iZXJzW3BhZ2VOdW1iZXJzLmxlbmd0aCAtIDFdKTtcblxuICAgICAgICAgIGxldCBzdGFydEluZGV4ID0gMDtcbiAgICAgICAgICBjb25zdCBoYWxmID0gTWF0aC5yb3VuZCgodmlzaWJsZU51bWJlck9mTnVtYmVyQm94ZXMgLSAxKSAvIDIpO1xuICAgICAgICAgIGlmIChwYWdlTnVtYmVycy5pbmRleE9mKHNlbGVjdGVkUGFnZU51bWJlcikgPCBoYWxmKSB7XG4gICAgICAgICAgICBzdGFydEluZGV4ID0gMDtcbiAgICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgcGFnZU51bWJlcnMuaW5kZXhPZihzZWxlY3RlZFBhZ2VOdW1iZXIpID49XG4gICAgICAgICAgICBwYWdlTnVtYmVycy5sZW5ndGggLSBoYWxmXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBzdGFydEluZGV4ID0gcGFnZU51bWJlcnMubGVuZ3RoIC0gdmlzaWJsZU51bWJlck9mTnVtYmVyQm94ZXM7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHN0YXJ0SW5kZXggPSBwYWdlTnVtYmVycy5pbmRleE9mKHNlbGVjdGVkUGFnZU51bWJlcikgLSBoYWxmO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBbLi4uQXJyYXkodmlzaWJsZU51bWJlck9mTnVtYmVyQm94ZXMpLmtleXMoKV1cbiAgICAgICAgICAgIC5tYXAoKHApID0+IHAgKyBzdGFydEluZGV4KVxuICAgICAgICAgICAgLm1hcCgocCkgPT48UGFnZVdpdGhTZWxlY3Rpb24+e1xuICAgICAgICAgICAgICBwYWdlOiBwYWdlTnVtYmVyc1twXSxcbiAgICAgICAgICAgICAgc2VsZWN0ZWQ6IHBhZ2VOdW1iZXJzW3BdID09PSBzZWxlY3RlZFBhZ2VOdW1iZXIsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSlcbiAgICAgICk7XG5cbiAgICB0aGlzLmlzRmlyc3RQYWdlJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5wYWdlTnVtYmVycyQsXG4gICAgICB0aGlzLnNlbGVjdGVkUGFnZU51bWJlciQsXG4gICAgXSlcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoW3BhZ2VOdW1iZXJzLCBzZWxlY3RlZFBhZ2VOdW1iZXJdKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHBhZ2VOdW1iZXJzLmluZGV4T2Yoc2VsZWN0ZWRQYWdlTnVtYmVyKSA9PT0gMDtcbiAgICAgICAgfSlcbiAgICAgICk7XG5cbiAgICB0aGlzLmlzTGFzdFBhZ2UkID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLnBhZ2VOdW1iZXJzJCxcbiAgICAgIHRoaXMuc2VsZWN0ZWRQYWdlTnVtYmVyJCxcbiAgICBdKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCkpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChbcGFnZU51bWJlcnMsIHNlbGVjdGVkUGFnZU51bWJlcl0pID0+IHtcbiAgICAgICAgICByZXR1cm4gKHBhZ2VOdW1iZXJzLmluZGV4T2Yoc2VsZWN0ZWRQYWdlTnVtYmVyKSA9PT0gcGFnZU51bWJlcnMubGVuZ3RoIC0gMSk7XG4gICAgICAgIH0pXG4gICAgICApO1xuXG4gICAgdGhpcy5zZWxlY3RlZFBhZ2VOdW1iZXIkXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSlcbiAgICAgIC5zdWJzY3JpYmUoKHNlbGVjdGVkUGFnZU51bWJlcikgPT4ge1xuICAgICAgICB0aGlzLnNlbGVjdGVkUGFnZU51bWJlckNoYW5nZS5lbWl0KHNlbGVjdGVkUGFnZU51bWJlcik7XG4gICAgICB9KTtcbiAgfVxuXG4gIC8qKiBBbGwgcGFnZSBudW1iZXJzLiAqL1xuICBwYWdlTnVtYmVycyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcltdPihbXSk7XG4gIC8qKiBQYWdlIG51bWJlcnMgdG8gYmUgZGlzcGxheWVkIHRvIHRoZSB1c2VyLiAqL1xuICBzaG93blBhZ2VOdW1iZXJzJDogT2JzZXJ2YWJsZTxQYWdlV2l0aFNlbGVjdGlvbltdPjtcbiAgLyoqIFNlbGVjdGVkIG51bWJlci4gKi9cbiAgc2VsZWN0ZWRQYWdlTnVtYmVyJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigxKTtcbiAgLyoqIE51bWJlciBvZiBib3hlcy4gKi9cbiAgbnVtYmVyT2ZCb3hlcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oMCk7XG4gIC8qKiBEaXNwbGF5IHByZXZpb3VzL25leHQgYXJyb3dzLiAqL1xuICBzaG93QXJyb3dzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odHJ1ZSk7XG4gIC8qKiBQYWdlIG51bWJlciBzaXplLiAqL1xuICBzaXplJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8U2l6ZT4oJ21lZGl1bScpO1xuXG4gIC8qKiBJbmRpY2F0ZXMgaWYgZmlyc3QgdmFsdWUgaXMgc2VsZWN0ZWQuICovXG4gIGlzRmlyc3RQYWdlJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgLyoqIEluZGljYXRlcyBpZiBsYXN0IHZhbHVlIGlzIHNlbGVjdGVkLiAqL1xuICBpc0xhc3RQYWdlJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgLyoqIFRoZSBudW1iZXIgb2YgYm94ZXMgKGV4Y2x1ZGluZyBhcnJvd3MpIHRoYXQncyBiZWluZyBzaG93biBvbiB0aGUgcGFnaW5hdGlvbiBjb21wb25lbnQuICovXG4gIHZpc2libGVOdW1iZXJPZk51bWJlckJveGVzJDogT2JzZXJ2YWJsZTxudW1iZXI+O1xuICAvKiogSW5kaWNhdGVzIHdoZXRoZXIgdGhlcmUgYXJlIHRvbyBtYW55IG51bWJlcnMgdG8gdGhlIGxlZnQtaGFuZCBzaWRlIG9mIHRoZSBjdXJyZW50IHBhZ2UuICovXG4gIGlzTGVmdE92ZXJmbG93JDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgLyoqIEluZGljYXRlcyB3aGV0aGVyIHRoZXJlIGFyZSB0b28gbWFueSBudW1iZXJzIHRvIHRoZSByaWdodC1oYW5kIHNpZGUgb2YgdGhlIGN1cnJlbnQgcGFnZS4gKi9cbiAgaXNSaWdodE92ZXJmbG93JDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgLyoqIE1vbml0b3IgT25EZXN0cm95ZWQgaG9vay4gKi9cbiAgcHJpdmF0ZSBkZXN0cm95ZWQkOiBTdWJqZWN0PGFueT47XG5cbiAgLy8jcmVnaW9uIFNlbGVjdGVkUGFnZU51bWJlclxuICBAT3V0cHV0KCkgcHVibGljIHNlbGVjdGVkUGFnZU51bWJlckNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuICBASW5wdXQoKSBzZXQgc2VsZWN0ZWRQYWdlTnVtYmVyKHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLnNlbGVjdGVkUGFnZU51bWJlciQubmV4dCh2YWx1ZSk7XG4gIH1cbiAgZ2V0IHNlbGVjdGVkUGFnZU51bWJlcigpIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZFBhZ2VOdW1iZXIkLnZhbHVlO1xuICB9XG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBOdW1iZXJPZkJveGVzXG4gIEBJbnB1dCgpIHNldCBudW1iZXJPZkJveGVzKHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLm51bWJlck9mQm94ZXMkLm5leHQodmFsdWUpO1xuICB9XG4gIGdldCBudW1iZXJPZkJveGVzKCkge1xuICAgIHJldHVybiB0aGlzLm51bWJlck9mQm94ZXMkLnZhbHVlO1xuICB9XG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBQYWdlTnVtYmVyc1xuICBASW5wdXQoKSBzZXQgcGFnZU51bWJlcnModmFsdWU6IG51bWJlcltdKSB7XG4gICAgdGhpcy5wYWdlTnVtYmVycyQubmV4dCh2YWx1ZSk7XG4gIH1cbiAgZ2V0IHBhZ2VOdW1iZXJzKCkge1xuICAgIHJldHVybiB0aGlzLnBhZ2VOdW1iZXJzJC52YWx1ZTtcbiAgfVxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gU2hvd0Fycm93c1xuICBASW5wdXQoKSBzZXQgc2hvd0Fycm93cyh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuc2hvd0Fycm93cyQubmV4dCh2YWx1ZSk7XG4gIH1cbiAgZ2V0IHNob3dBcnJvd3MoKSB7XG4gICAgcmV0dXJuIHRoaXMuc2hvd0Fycm93cyQudmFsdWU7XG4gIH1cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIFNpemVcbiAgQElucHV0KCkgc2V0IHNpemUodmFsdWU6IFNpemUpIHtcbiAgICB0aGlzLnNpemUkLm5leHQodmFsdWUpO1xuICB9XG4gIGdldCBzaXplKCkge1xuICAgIHJldHVybiB0aGlzLnNpemUkLnZhbHVlO1xuICB9XG4gIC8vI2VuZHJlZ2lvblxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuZGVzdHJveWVkJC5uZXh0KHRydWUpO1xuICB9XG5cbiAgb25TZWxlY3RQYWdlKGV2ZW50OiBNb3VzZUV2ZW50LCBwYWdlOiBudW1iZXIpIHtcbiAgICB0aGlzLnNlbGVjdGVkUGFnZU51bWJlciQubmV4dChwYWdlKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBvblByZXZpb3VzKCkge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5wYWdlTnVtYmVycy5pbmRleE9mKHRoaXMuc2VsZWN0ZWRQYWdlTnVtYmVyKTtcbiAgICBpZiAoaW5kZXggPiAwKSB7XG4gICAgICBjb25zdCBuZXdWYWx1ZSA9IHRoaXMucGFnZU51bWJlcnNbaW5kZXggLSAxXTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRQYWdlTnVtYmVyJC5uZXh0KG5ld1ZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3RlZFBhZ2VOdW1iZXIkLm5leHQodGhpcy5wYWdlTnVtYmVyc1swXSk7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIG9uTmV4dCgpIHtcbiAgICBjb25zdCBpbmRleCA9IHRoaXMucGFnZU51bWJlcnMuaW5kZXhPZih0aGlzLnNlbGVjdGVkUGFnZU51bWJlcik7XG4gICAgaWYgKGluZGV4IDwgMCkge1xuICAgICAgdGhpcy5zZWxlY3RlZFBhZ2VOdW1iZXIkLm5leHQodGhpcy5wYWdlTnVtYmVyc1t0aGlzLnBhZ2VOdW1iZXJzLmxlbmd0aCAtIDFdKTtcbiAgICB9IGVsc2UgaWYgKGluZGV4IDwgdGhpcy5wYWdlTnVtYmVycy5sZW5ndGggLSAxKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkUGFnZU51bWJlciQubmV4dCh0aGlzLnBhZ2VOdW1iZXJzW2luZGV4ICsgMV0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdGVkUGFnZU51bWJlciQubmV4dCh0aGlzLnBhZ2VOdW1iZXJzW3RoaXMucGFnZU51bWJlcnMubGVuZ3RoIC0gMV0pO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiIsIjx1bCBjbGFzcz1cInBhZ2luYXRpb25cIj5cbiAgICA8bGkgY2xhc3M9XCJwYWdlLWl0ZW1cIiAqbmdJZj1cInNob3dBcnJvd3MkIHwgYXN5bmNcIj5cbiAgICAgICAgPGEgY2xhc3M9XCJwYWdlLWxpbmtcIiBocmVmPVwiXCIgKGNsaWNrKT1cIm9uUHJldmlvdXMoKVwiIFtjbGFzcy5kaXNhYmxlZF09XCJpc0ZpcnN0UGFnZSQgfCBhc3luY1wiIGFyaWEtbGFiZWw9XCJQcmV2aW91c1wiPlxuICAgICAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCI+JmxhcXVvOzwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmlzdWFsbHktaGlkZGVuXCI+UHJldmlvdXM8L3NwYW4+XG4gICAgICAgIDwvYT5cbiAgICA8L2xpPlxuICAgIDxsaSAqbmdGb3I9XCJsZXQgcGFnZU51bWJlciBvZiAoc2hvd25QYWdlTnVtYmVycyQgfCBhc3luYylcIiBjbGFzcz1cInBhZ2UtaXRlbVwiPlxuICAgICAgICA8YSBjbGFzcz1cInBhZ2UtbGlua1wiIGhyZWY9XCJcIiAoY2xpY2spPVwib25TZWxlY3RQYWdlKCRldmVudCwgcGFnZU51bWJlci5wYWdlKVwiXG4gICAgICAgICAgW25nQ2xhc3NdPVwieyAnYWN0aXZlJzogcGFnZU51bWJlci5zZWxlY3RlZCB9XCIgKm5nSWY9XCJwYWdlTnVtYmVyLnBhZ2UgIT0gJy4uLidcIj5cbiAgICAgICAgICAgIHt7IHBhZ2VOdW1iZXIucGFnZSB9fVxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2aXN1YWxseS1oaWRkZW5cIiAqbmdJZj1cInBhZ2VOdW1iZXIuc2VsZWN0ZWRcIj4oY3VycmVudCk8L3NwYW4+XG4gICAgICAgIDwvYT5cbiAgICA8L2xpPlxuICAgIDxsaSBjbGFzcz1cInBhZ2UtaXRlbVwiICpuZ0lmPVwic2hvd0Fycm93cyQgfCBhc3luY1wiPlxuICAgICAgICA8YSBjbGFzcz1cInBhZ2UtbGlua1wiIGhyZWY9XCJcIiAoY2xpY2spPVwib25OZXh0KClcIiBbY2xhc3MuZGlzYWJsZWRdPVwiaXNMYXN0UGFnZSQgfCBhc3luY1wiIGFyaWEtbGFiZWw9XCJOZXh0XCI+XG4gICAgICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj4mcmFxdW87PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2aXN1YWxseS1oaWRkZW5cIj5OZXh0PC9zcGFuPlxuICAgICAgICA8L2E+XG4gICAgPC9saT5cbjwvdWw+Il19
201
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL3BhZ2luYXRpb24vc3JjL2NvbXBvbmVudC9wYWdpbmF0aW9uL3BhZ2luYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9taW50cGxheWVyLW5nLWJvb3RzdHJhcC9wYWdpbmF0aW9uL3NyYy9jb21wb25lbnQvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFjLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7OztBQVEzRixNQUFNLE9BQU8scUJBQXFCO0lBQ2hDO1FBNkdBLHdCQUF3QjtRQUN4QixpQkFBWSxHQUFHLElBQUksZUFBZSxDQUFXLEVBQUUsQ0FBQyxDQUFDO1FBR2pELHVCQUF1QjtRQUN2Qix3QkFBbUIsR0FBRyxJQUFJLGVBQWUsQ0FBUyxDQUFDLENBQUMsQ0FBQztRQUNyRCx1QkFBdUI7UUFDdkIsbUJBQWMsR0FBRyxJQUFJLGVBQWUsQ0FBUyxDQUFDLENBQUMsQ0FBQztRQUNoRCxvQ0FBb0M7UUFDcEMsZ0JBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBVSxJQUFJLENBQUMsQ0FBQztRQUNqRCx3QkFBd0I7UUFDeEIsVUFBSyxHQUFHLElBQUksZUFBZSxDQUFPLFFBQVEsQ0FBQyxDQUFDO1FBZTVDLDRCQUE0QjtRQUNYLDZCQUF3QixHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUF2SXJFLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxPQUFPLEVB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MkZEVlEscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLGVBQWU7MEVBNklSLHdCQUF3QjtzQkFBeEMsTUFBTTtnQkFDTSxrQkFBa0I7c0JBQTlCLEtBQUs7Z0JBU08sYUFBYTtzQkFBekIsS0FBSztnQkFTTyxXQUFXO3NCQUF2QixLQUFLO2dCQVNPLFVBQVU7c0JBQXRCLEtBQUs7Z0JBU08sSUFBSTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNpemUgfSBmcm9tICdAbWludHBsYXllci9uZy1ib290c3RyYXAnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBtYXAsIE9ic2VydmFibGUsIFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUGFnZVdpdGhTZWxlY3Rpb24gfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3BhZ2Utd2l0aC1zZWxlY3Rpb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdicy1wYWdpbmF0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BhZ2luYXRpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wYWdpbmF0aW9uLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEJzUGFnaW5hdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuZGVzdHJveWVkJCA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgICB0aGlzLnZpc2libGVOdW1iZXJPZk51bWJlckJveGVzJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5udW1iZXJPZkJveGVzJCxcbiAgICAgIHRoaXMucGFnZU51bWJlcnMkLFxuICAgICAgdGhpcy5zaG93QXJyb3dzJCxcbiAgICBdKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCkpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChbbnVtYmVyT2ZCb3hlcywgcGFnZU51bWJlcnMsIHNob3dBcnJvd3NdKSA9PiB7XG4gICAgICAgICAgaWYgKG51bWJlck9mQm94ZXMgPD0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIHBhZ2VOdW1iZXJzLmxlbmd0aDtcbiAgICAgICAgICB9IGVsc2UgaWYgKCFzaG93QXJyb3dzKSB7XG4gICAgICAgICAgICByZXR1cm4gTWF0aC5taW4obnVtYmVyT2ZCb3hlcywgcGFnZU51bWJlcnMubGVuZ3RoKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKG51bWJlck9mQm94ZXMgPD0gMikge1xuICAgICAgICAgICAgcmV0dXJuIE1hdGgubWluKDEsIHBhZ2VOdW1iZXJzLmxlbmd0aCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBNYXRoLm1pbihudW1iZXJPZkJveGVzIC0gMiwgcGFnZU51bWJlcnMubGVuZ3RoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICApO1xuXG4gICAgdGhpcy5pc0xlZnRPdmVyZmxvdyQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLnBhZ2VOdW1iZXJzJCwgdGhpcy5zZWxlY3RlZFBhZ2VOdW1iZXIkLCB0aGlzLnZpc2libGVOdW1iZXJPZk51bWJlckJveGVzJF0pXG4gICAgICAucGlwZShtYXAoKFtwYWdlTnVtYmVycywgc2VsZWN0ZWRQYWdlTnVtYmVyLCB2aXNpYmxlTnVtYmVyT2ZOdW1iZXJCb3hlc10pID0+IHtcbiAgICAgICAgY29uc3QgaW5kZXggPSBwYWdlTnVtYmVycy5pbmRleE9mKHNlbGVjdGVkUGFnZU51bWJlcik7XG4gICAgICAgIGNvbnN0IG1pZGRsZSA9IE1hdGguZmxvb3IodmlzaWJsZU51bWJlck9mTnVtYmVyQm94ZXMgLyAyKTtcbiAgICAgICAgcmV0dXJuIGluZGV4ID4gbWlkZGxlO1xuICAgICAgfSkpO1xuXG4gICAgdGhpcy5pc1JpZ2h0T3ZlcmZsb3ckID0gY29tYmluZUxhdGVzdChbdGhpcy5wYWdlTnVtYmVycyQsIHRoaXMuc2VsZWN0ZWRQYWdlTnVtYmVyJCwgdGhpcy52aXNpYmxlTnVtYmVyT2ZOdW1iZXJCb3hlcyRdKVxuICAgICAgLnBpcGUobWFwKChbcGFnZU51bWJlcnMsIHNlbGVjdGVkUGFnZU51bWJlciwgdmlzaWJsZU51bWJlck9mTnVtYmVyQm94ZXNdKSA9PiB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gcGFnZU51bWJlcnMuaW5kZXhPZihzZWxlY3RlZFBhZ2VOdW1iZXIpO1xuICAgICAgICBjb25zdCBtaWRkbGUgPSBNYXRoLmZsb29yKHZpc2libGVOdW1iZXJPZk51bWJlckJveGVzIC8gMik7XG4gICAgICAgIHJldHVybiAocGFnZU51bWJlcnMubGVuZ3RoIC0gaW5kZXgpIDwgbWlkZGxlO1xuICAgICAgfSkpO1xuXG4gICAgdGhpcy5zaG93blBhZ2VOdW1iZXJzJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5wYWdlTnVtYmVycyQsXG4gICAgICB0aGlzLnNlbGVjdGVkUGFnZU51bWJlciQsXG4gICAgICB0aGlzLnZpc2libGVOdW1iZXJPZk51bWJlckJveGVzJCxcbiAgICAgIHRoaXMuaXNMZWZ0T3ZlcmZsb3ckLFxuICAgICAgdGhpcy5pc1JpZ2h0T3ZlcmZsb3ckXG4gICAgXSlcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoW3BhZ2VOdW1iZXJzLCBzZWxlY3RlZFBhZ2VOdW1iZXIsIHZpc2libGVOdW1iZXJPZk51bWJlckJveGVzLCBpc0xlZnRPdmVyZmxvdywgaXNSaWdodE92ZXJmbG93XSkgPT4ge1xuICAgICAgICAgIC8vIGNvbnN0IGJveGVzVG9SZW1vdmUgPSBwYWdlTnVtYmVycy5sZW5ndGggLSB2aXNpYmxlTnVtYmVyT2ZOdW1iZXJCb3hlc1xuICAgICAgICAgIC8vICAgKyAoaXNMZWZ0T3ZlcmZsb3cgPyAxIDogMClcbiAgICAgICAgICAvLyAgICsgKGlzUmlnaHRPdmVyZmxvdyA/IDEgOiAwKTtcblxuICAgICAgICAgIC8vIGxldCByZXN1bHQ6IG51bWJlcltdID0gW107XG4gICAgICAgICAgLy8gcmVzdWx0LnB1c2gocGFnZU51bWJlcnNbMF0pO1xuXG4gICAgICAgICAgLy8gLy8gLi4uXG5cbiAgICAgICAgICAvLyByZXN1bHQucHVzaChwYWdlTnVtYmVyc1twYWdlTnVtYmVycy5sZW5ndGggLSAxXSk7XG5cbiAgICAgICAgICBsZXQgc3RhcnRJbmRleCA9IDA7XG4gICAgICAgICAgY29uc3QgaGFsZiA9IE1hdGgucm91bmQoKHZpc2libGVOdW1iZXJPZk51bWJlckJveGVzIC0gMSkgLyAyKTtcbiAgICAgICAgICBpZiAocGFnZU51bWJlcnMuaW5kZXhPZihzZWxlY3RlZFBhZ2VOdW1iZXIpIDwgaGFsZikge1xuICAgICAgICAgICAgc3RhcnRJbmRleCA9IDA7XG4gICAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgIHBhZ2VOdW1iZXJzLmluZGV4T2Yoc2VsZWN0ZWRQYWdlTnVtYmVyKSA+PVxuICAgICAgICAgICAgcGFnZU51bWJlcnMubGVuZ3RoIC0gaGFsZlxuICAgICAgICAgICkge1xuICAgICAgICAgICAgc3RhcnRJbmRleCA9IHBhZ2VOdW1iZXJzLmxlbmd0aCAtIHZpc2libGVOdW1iZXJPZk51bWJlckJveGVzO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzdGFydEluZGV4ID0gcGFnZU51bWJlcnMuaW5kZXhPZihzZWxlY3RlZFBhZ2VOdW1iZXIpIC0gaGFsZjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gWy4uLkFycmF5KHZpc2libGVOdW1iZXJPZk51bWJlckJveGVzKS5rZXlzKCldXG4gICAgICAgICAgICAubWFwKChwKSA9PiBwICsgc3RhcnRJbmRleClcbiAgICAgICAgICAgIC5tYXAoKHApID0+PFBhZ2VXaXRoU2VsZWN0aW9uPntcbiAgICAgICAgICAgICAgcGFnZTogcGFnZU51bWJlcnNbcF0sXG4gICAgICAgICAgICAgIHNlbGVjdGVkOiBwYWdlTnVtYmVyc1twXSA9PT0gc2VsZWN0ZWRQYWdlTnVtYmVyLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pXG4gICAgICApO1xuXG4gICAgdGhpcy5pc0ZpcnN0UGFnZSQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMucGFnZU51bWJlcnMkLFxuICAgICAgdGhpcy5zZWxlY3RlZFBhZ2VOdW1iZXIkLFxuICAgIF0pXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKFtwYWdlTnVtYmVycywgc2VsZWN0ZWRQYWdlTnVtYmVyXSkgPT4ge1xuICAgICAgICAgIHJldHVybiBwYWdlTnVtYmVycy5pbmRleE9mKHNlbGVjdGVkUGFnZU51bWJlcikgPT09IDA7XG4gICAgICAgIH0pXG4gICAgICApO1xuXG4gICAgdGhpcy5pc0xhc3RQYWdlJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5wYWdlTnVtYmVycyQsXG4gICAgICB0aGlzLnNlbGVjdGVkUGFnZU51bWJlciQsXG4gICAgXSlcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoW3BhZ2VOdW1iZXJzLCBzZWxlY3RlZFBhZ2VOdW1iZXJdKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIChwYWdlTnVtYmVycy5pbmRleE9mKHNlbGVjdGVkUGFnZU51bWJlcikgPT09IHBhZ2VOdW1iZXJzLmxlbmd0aCAtIDEpO1xuICAgICAgICB9KVxuICAgICAgKTtcblxuICAgIHRoaXMuc2VsZWN0ZWRQYWdlTnVtYmVyJFxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCkpXG4gICAgICAuc3Vic2NyaWJlKChzZWxlY3RlZFBhZ2VOdW1iZXIpID0+IHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFBhZ2VOdW1iZXJDaGFuZ2UuZW1pdChzZWxlY3RlZFBhZ2VOdW1iZXIpO1xuICAgICAgfSk7XG4gIH1cblxuICAvKiogQWxsIHBhZ2UgbnVtYmVycy4gKi9cbiAgcGFnZU51bWJlcnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXJbXT4oW10pO1xuICAvKiogUGFnZSBudW1iZXJzIHRvIGJlIGRpc3BsYXllZCB0byB0aGUgdXNlci4gKi9cbiAgc2hvd25QYWdlTnVtYmVycyQ6IE9ic2VydmFibGU8UGFnZVdpdGhTZWxlY3Rpb25bXT47XG4gIC8qKiBTZWxlY3RlZCBudW1iZXIuICovXG4gIHNlbGVjdGVkUGFnZU51bWJlciQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oMSk7XG4gIC8qKiBOdW1iZXIgb2YgYm94ZXMuICovXG4gIG51bWJlck9mQm94ZXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDApO1xuICAvKiogRGlzcGxheSBwcmV2aW91cy9uZXh0IGFycm93cy4gKi9cbiAgc2hvd0Fycm93cyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpO1xuICAvKiogUGFnZSBudW1iZXIgc2l6ZS4gKi9cbiAgc2l6ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFNpemU+KCdtZWRpdW0nKTtcblxuICAvKiogSW5kaWNhdGVzIGlmIGZpcnN0IHZhbHVlIGlzIHNlbGVjdGVkLiAqL1xuICBpc0ZpcnN0UGFnZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIC8qKiBJbmRpY2F0ZXMgaWYgbGFzdCB2YWx1ZSBpcyBzZWxlY3RlZC4gKi9cbiAgaXNMYXN0UGFnZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIC8qKiBUaGUgbnVtYmVyIG9mIGJveGVzIChleGNsdWRpbmcgYXJyb3dzKSB0aGF0J3MgYmVpbmcgc2hvd24gb24gdGhlIHBhZ2luYXRpb24gY29tcG9uZW50LiAqL1xuICB2aXNpYmxlTnVtYmVyT2ZOdW1iZXJCb3hlcyQ6IE9ic2VydmFibGU8bnVtYmVyPjtcbiAgLyoqIEluZGljYXRlcyB3aGV0aGVyIHRoZXJlIGFyZSB0b28gbWFueSBudW1iZXJzIHRvIHRoZSBsZWZ0LWhhbmQgc2lkZSBvZiB0aGUgY3VycmVudCBwYWdlLiAqL1xuICBpc0xlZnRPdmVyZmxvdyQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIC8qKiBJbmRpY2F0ZXMgd2hldGhlciB0aGVyZSBhcmUgdG9vIG1hbnkgbnVtYmVycyB0byB0aGUgcmlnaHQtaGFuZCBzaWRlIG9mIHRoZSBjdXJyZW50IHBhZ2UuICovXG4gIGlzUmlnaHRPdmVyZmxvdyQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIC8qKiBNb25pdG9yIE9uRGVzdHJveWVkIGhvb2suICovXG4gIHByaXZhdGUgZGVzdHJveWVkJDogU3ViamVjdDxhbnk+O1xuXG4gIC8vI3JlZ2lvbiBTZWxlY3RlZFBhZ2VOdW1iZXJcbiAgQE91dHB1dCgpIHB1YmxpYyBzZWxlY3RlZFBhZ2VOdW1iZXJDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcbiAgQElucHV0KCkgc2V0IHNlbGVjdGVkUGFnZU51bWJlcih2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5zZWxlY3RlZFBhZ2VOdW1iZXIkLm5leHQodmFsdWUpO1xuICB9XG4gIGdldCBzZWxlY3RlZFBhZ2VOdW1iZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRQYWdlTnVtYmVyJC52YWx1ZTtcbiAgfVxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gTnVtYmVyT2ZCb3hlc1xuICBASW5wdXQoKSBzZXQgbnVtYmVyT2ZCb3hlcyh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5udW1iZXJPZkJveGVzJC5uZXh0KHZhbHVlKTtcbiAgfVxuICBnZXQgbnVtYmVyT2ZCb3hlcygpIHtcbiAgICByZXR1cm4gdGhpcy5udW1iZXJPZkJveGVzJC52YWx1ZTtcbiAgfVxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gUGFnZU51bWJlcnNcbiAgQElucHV0KCkgc2V0IHBhZ2VOdW1iZXJzKHZhbHVlOiBudW1iZXJbXSkge1xuICAgIHRoaXMucGFnZU51bWJlcnMkLm5leHQodmFsdWUpO1xuICB9XG4gIGdldCBwYWdlTnVtYmVycygpIHtcbiAgICByZXR1cm4gdGhpcy5wYWdlTnVtYmVycyQudmFsdWU7XG4gIH1cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIFNob3dBcnJvd3NcbiAgQElucHV0KCkgc2V0IHNob3dBcnJvd3ModmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnNob3dBcnJvd3MkLm5leHQodmFsdWUpO1xuICB9XG4gIGdldCBzaG93QXJyb3dzKCkge1xuICAgIHJldHVybiB0aGlzLnNob3dBcnJvd3MkLnZhbHVlO1xuICB9XG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBTaXplXG4gIEBJbnB1dCgpIHNldCBzaXplKHZhbHVlOiBTaXplKSB7XG4gICAgdGhpcy5zaXplJC5uZXh0KHZhbHVlKTtcbiAgfVxuICBnZXQgc2l6ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5zaXplJC52YWx1ZTtcbiAgfVxuICAvLyNlbmRyZWdpb25cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3llZCQubmV4dCh0cnVlKTtcbiAgfVxuXG4gIG9uU2VsZWN0UGFnZShldmVudDogTW91c2VFdmVudCwgcGFnZTogbnVtYmVyKSB7XG4gICAgdGhpcy5zZWxlY3RlZFBhZ2VOdW1iZXIkLm5leHQocGFnZSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgb25QcmV2aW91cygpIHtcbiAgICBjb25zdCBpbmRleCA9IHRoaXMucGFnZU51bWJlcnMuaW5kZXhPZih0aGlzLnNlbGVjdGVkUGFnZU51bWJlcik7XG4gICAgaWYgKGluZGV4ID4gMCkge1xuICAgICAgY29uc3QgbmV3VmFsdWUgPSB0aGlzLnBhZ2VOdW1iZXJzW2luZGV4IC0gMV07XG4gICAgICB0aGlzLnNlbGVjdGVkUGFnZU51bWJlciQubmV4dChuZXdWYWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRQYWdlTnVtYmVyJC5uZXh0KHRoaXMucGFnZU51bWJlcnNbMF0pO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBvbk5leHQoKSB7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLnBhZ2VOdW1iZXJzLmluZGV4T2YodGhpcy5zZWxlY3RlZFBhZ2VOdW1iZXIpO1xuICAgIGlmIChpbmRleCA8IDApIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRQYWdlTnVtYmVyJC5uZXh0KHRoaXMucGFnZU51bWJlcnNbdGhpcy5wYWdlTnVtYmVycy5sZW5ndGggLSAxXSk7XG4gICAgfSBlbHNlIGlmIChpbmRleCA8IHRoaXMucGFnZU51bWJlcnMubGVuZ3RoIC0gMSkge1xuICAgICAgdGhpcy5zZWxlY3RlZFBhZ2VOdW1iZXIkLm5leHQodGhpcy5wYWdlTnVtYmVyc1tpbmRleCArIDFdKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3RlZFBhZ2VOdW1iZXIkLm5leHQodGhpcy5wYWdlTnVtYmVyc1t0aGlzLnBhZ2VOdW1iZXJzLmxlbmd0aCAtIDFdKTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgdHJhY2tCeVBhZ2VOdW1iZXIoaW5kZXg6IG51bWJlciwgcGFnZTogUGFnZVdpdGhTZWxlY3Rpb24pIHtcbiAgICByZXR1cm4gcGFnZTtcbiAgfVxufVxuIiwiPHVsIGNsYXNzPVwicGFnaW5hdGlvblwiPlxuICAgIDxsaSBjbGFzcz1cInBhZ2UtaXRlbVwiICpuZ0lmPVwic2hvd0Fycm93cyQgfCBhc3luY1wiPlxuICAgICAgICA8YSBjbGFzcz1cInBhZ2UtbGlua1wiIGhyZWY9XCJcIiAoY2xpY2spPVwib25QcmV2aW91cygpXCIgW2NsYXNzLmRpc2FibGVkXT1cImlzRmlyc3RQYWdlJCB8IGFzeW5jXCIgYXJpYS1sYWJlbD1cIlByZXZpb3VzXCI+XG4gICAgICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj4mbGFxdW87PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2aXN1YWxseS1oaWRkZW5cIj5QcmV2aW91czwvc3Bhbj5cbiAgICAgICAgPC9hPlxuICAgIDwvbGk+XG4gICAgPGxpICpuZ0Zvcj1cImxldCBwYWdlTnVtYmVyIG9mIChzaG93blBhZ2VOdW1iZXJzJCB8IGFzeW5jKTsgdHJhY2tCeTogdHJhY2tCeVBhZ2VOdW1iZXJcIiBjbGFzcz1cInBhZ2UtaXRlbVwiPlxuICAgICAgICA8YSBjbGFzcz1cInBhZ2UtbGlua1wiIGhyZWY9XCJcIiAoY2xpY2spPVwib25TZWxlY3RQYWdlKCRldmVudCwgcGFnZU51bWJlci5wYWdlKVwiXG4gICAgICAgICAgW25nQ2xhc3NdPVwieyAnYWN0aXZlJzogcGFnZU51bWJlci5zZWxlY3RlZCB9XCIgKm5nSWY9XCJwYWdlTnVtYmVyLnBhZ2UgIT0gJy4uLidcIj5cbiAgICAgICAgICAgIHt7IHBhZ2VOdW1iZXIucGFnZSB9fVxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2aXN1YWxseS1oaWRkZW5cIiAqbmdJZj1cInBhZ2VOdW1iZXIuc2VsZWN0ZWRcIj4oY3VycmVudCk8L3NwYW4+XG4gICAgICAgIDwvYT5cbiAgICA8L2xpPlxuICAgIDxsaSBjbGFzcz1cInBhZ2UtaXRlbVwiICpuZ0lmPVwic2hvd0Fycm93cyQgfCBhc3luY1wiPlxuICAgICAgICA8YSBjbGFzcz1cInBhZ2UtbGlua1wiIGhyZWY9XCJcIiAoY2xpY2spPVwib25OZXh0KClcIiBbY2xhc3MuZGlzYWJsZWRdPVwiaXNMYXN0UGFnZSQgfCBhc3luY1wiIGFyaWEtbGFiZWw9XCJOZXh0XCI+XG4gICAgICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj4mcmFxdW87PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2aXN1YWxseS1oaWRkZW5cIj5OZXh0PC9zcGFuPlxuICAgICAgICA8L2E+XG4gICAgPC9saT5cbjwvdWw+Il19
@@ -48,15 +48,18 @@ export class BsRatingComponent {
48
48
  selectValue(index) {
49
49
  this.value = index + 1;
50
50
  }
51
+ trackByStar(index, star) {
52
+ return index;
53
+ }
51
54
  onMouseLeave() {
52
55
  this.previewValue$.next(null);
53
56
  }
54
57
  }
55
58
  BsRatingComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: BsRatingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
56
- BsRatingComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: BsRatingComponent, selector: "bs-rating", inputs: { maximum: "maximum", value: "value" }, outputs: { valueChange: "valueChange", starsChange: "starsChange" }, host: { listeners: { "mouseleave": "onMouseLeave()" } }, ngImport: i0, template: "<span class=\"cursor-pointer\" *ngFor=\"let star of (stars$ | async), let i = index\" (mouseenter)=\"hoverValue(i)\" (click)=\"selectValue(i)\">\n {{ star ? '&#9733;' : '&#9734;' }}\n</span>", styles: [""], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
59
+ BsRatingComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: BsRatingComponent, selector: "bs-rating", inputs: { maximum: "maximum", value: "value" }, outputs: { valueChange: "valueChange", starsChange: "starsChange" }, host: { listeners: { "mouseleave": "onMouseLeave()" } }, ngImport: i0, template: "<span class=\"cursor-pointer\" *ngFor=\"let star of (stars$ | async), let i = index; trackBy: trackByStar\" (mouseenter)=\"hoverValue(i)\" (click)=\"selectValue(i)\">\n {{ star ? '&#9733;' : '&#9734;' }}\n</span>", styles: [""], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
57
60
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: BsRatingComponent, decorators: [{
58
61
  type: Component,
59
- args: [{ selector: 'bs-rating', template: "<span class=\"cursor-pointer\" *ngFor=\"let star of (stars$ | async), let i = index\" (mouseenter)=\"hoverValue(i)\" (click)=\"selectValue(i)\">\n {{ star ? '&#9733;' : '&#9734;' }}\n</span>" }]
62
+ args: [{ selector: 'bs-rating', template: "<span class=\"cursor-pointer\" *ngFor=\"let star of (stars$ | async), let i = index; trackBy: trackByStar\" (mouseenter)=\"hoverValue(i)\" (click)=\"selectValue(i)\">\n {{ star ? '&#9733;' : '&#9734;' }}\n</span>" }]
60
63
  }], ctorParameters: function () { return []; }, propDecorators: { maximum: [{
61
64
  type: Input
62
65
  }], valueChange: [{
@@ -69,4 +72,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
69
72
  type: HostListener,
70
73
  args: ['mouseleave']
71
74
  }] } });
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmF0aW5nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1ib290c3RyYXAvcmF0aW5nL3NyYy9jb21wb25lbnQvcmF0aW5nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1ib290c3RyYXAvcmF0aW5nL3NyYy9jb21wb25lbnQvcmF0aW5nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RyxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQWMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7O0FBTzNGLE1BQU0sT0FBTyxpQkFBaUI7SUFFNUI7UUFrQkEsZUFBVSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFDM0IsYUFBUSxHQUFHLElBQUksZUFBZSxDQUFTLENBQUMsQ0FBQyxDQUFDO1FBQzFDLFdBQU0sR0FBRyxJQUFJLGVBQWUsQ0FBUyxDQUFDLENBQUMsQ0FBQztRQUN4QyxrQkFBYSxHQUFHLElBQUksZUFBZSxDQUFnQixJQUFJLENBQUMsQ0FBQztRQU96RCxZQUFZO1FBRVosZUFBZTtRQUNFLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUN6QyxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUEvQnhELElBQUksQ0FBQyxNQUFNLEdBQUcsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUMxRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsWUFBWSxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUU7WUFDM0MsTUFBTSxDQUFDLEdBQUcsWUFBWSxJQUFJLEtBQUssQ0FBQztZQUNoQyxPQUFPO2dCQUNMLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQztnQkFDdEMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQzthQUNsRCxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVOLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQzdDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQ2hDLFNBQVMsQ0FBQyxDQUFDLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUU7WUFDbkMsTUFBTSxDQUFDLEdBQUcsWUFBWSxJQUFJLEtBQUssQ0FBQztZQUNoQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFRRCxpQkFBaUI7SUFDakIsSUFBb0IsT0FBTyxDQUFDLEtBQWE7UUFDdkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQU1ELElBQVcsS0FBSztRQUNkLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFDM0IsQ0FBQztJQUNELElBQW9CLEtBQUssQ0FBQyxLQUFhO1FBQ3JDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFDRCxZQUFZO0lBRVosV0FBVztRQUNULElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBYTtRQUN0QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUNELFdBQVcsQ0FBQyxLQUFhO1FBQ3ZCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRTJCLFlBQVk7UUFDdEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEMsQ0FBQzs7OEdBekRVLGlCQUFpQjtrR0FBakIsaUJBQWlCLCtOQ1I5QixtTUFFTzsyRkRNTSxpQkFBaUI7a0JBTDdCLFNBQVM7K0JBQ0UsV0FBVzswRUErQkQsT0FBTztzQkFBMUIsS0FBSztnQkFNVyxXQUFXO3NCQUEzQixNQUFNO2dCQUNVLFdBQVc7c0JBQTNCLE1BQU07Z0JBSWEsS0FBSztzQkFBeEIsS0FBSztnQkFpQnNCLFlBQVk7c0JBQXZDLFlBQVk7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIG1hcCwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JzLXJhdGluZycsXG4gIHRlbXBsYXRlVXJsOiAnLi9yYXRpbmcuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9yYXRpbmcuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBCc1JhdGluZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5zdGFycyQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLm1heGltdW0kLCB0aGlzLnByZXZpZXdWYWx1ZSQsIHRoaXMudmFsdWUkXSlcbiAgICAgIC5waXBlKG1hcCgoW21heGltdW0sIHByZXZpZXdWYWx1ZSwgdmFsdWVdKSA9PiB7XG4gICAgICAgIGNvbnN0IHYgPSBwcmV2aWV3VmFsdWUgPz8gdmFsdWU7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgLi4uWy4uLkFycmF5KHYpLmtleXMoKV0ubWFwKGkgPT4gdHJ1ZSksXG4gICAgICAgICAgLi4uWy4uLkFycmF5KG1heGltdW0gLSB2KS5rZXlzKCldLm1hcChpID0+IGZhbHNlKVxuICAgICAgICBdO1xuICAgICAgfSkpO1xuXG4gICAgY29tYmluZUxhdGVzdChbdGhpcy5wcmV2aWV3VmFsdWUkLCB0aGlzLnZhbHVlJF0pXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSlcbiAgICAgIC5zdWJzY3JpYmUoKFtwcmV2aWV3VmFsdWUsIHZhbHVlXSkgPT4ge1xuICAgICAgICBjb25zdCB2ID0gcHJldmlld1ZhbHVlID8/IHZhbHVlO1xuICAgICAgICB0aGlzLnN0YXJzQ2hhbmdlLmVtaXQodik7XG4gICAgICB9KTtcbiAgfVxuXG4gIGRlc3Ryb3llZCQgPSBuZXcgU3ViamVjdCgpO1xuICBtYXhpbXVtJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPig1KTtcbiAgdmFsdWUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDMpO1xuICBwcmV2aWV3VmFsdWUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXIgfCBudWxsPihudWxsKTtcbiAgc3RhcnMkOiBPYnNlcnZhYmxlPGJvb2xlYW5bXT47XG5cbiAgLy8jcmVnaW9uIE1heGltdW1cbiAgQElucHV0KCkgcHVibGljIHNldCBtYXhpbXVtKHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLm1heGltdW0kLm5leHQodmFsdWUpO1xuICB9XG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBWYWx1ZVxuICBAT3V0cHV0KCkgcHVibGljIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgc3RhcnNDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcbiAgcHVibGljIGdldCB2YWx1ZSgpIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZSQudmFsdWU7XG4gIH1cbiAgQElucHV0KCkgcHVibGljIHNldCB2YWx1ZSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy52YWx1ZSQubmV4dCh2YWx1ZSk7XG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHZhbHVlKTtcbiAgfVxuICAvLyNlbmRyZWdpb25cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3llZCQubmV4dCh0cnVlKTtcbiAgfVxuXG4gIGhvdmVyVmFsdWUoaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMucHJldmlld1ZhbHVlJC5uZXh0KGluZGV4ICsgMSk7XG4gIH1cbiAgc2VsZWN0VmFsdWUoaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMudmFsdWUgPSBpbmRleCArIDE7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdtb3VzZWxlYXZlJykgb25Nb3VzZUxlYXZlKCkge1xuICAgIHRoaXMucHJldmlld1ZhbHVlJC5uZXh0KG51bGwpO1xuICB9XG59XG4iLCI8c3BhbiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgKm5nRm9yPVwibGV0IHN0YXIgb2YgKHN0YXJzJCB8IGFzeW5jKSwgbGV0IGkgPSBpbmRleFwiIChtb3VzZWVudGVyKT1cImhvdmVyVmFsdWUoaSlcIiAoY2xpY2spPVwic2VsZWN0VmFsdWUoaSlcIj5cbiAgICB7eyBzdGFyID8gJyYjOTczMzsnIDogJyYjOTczNDsnIH19XG48L3NwYW4+Il19
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmF0aW5nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1ib290c3RyYXAvcmF0aW5nL3NyYy9jb21wb25lbnQvcmF0aW5nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1ib290c3RyYXAvcmF0aW5nL3NyYy9jb21wb25lbnQvcmF0aW5nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RyxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQWMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7O0FBTzNGLE1BQU0sT0FBTyxpQkFBaUI7SUFFNUI7UUFrQkEsZUFBVSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFDM0IsYUFBUSxHQUFHLElBQUksZUFBZSxDQUFTLENBQUMsQ0FBQyxDQUFDO1FBQzFDLFdBQU0sR0FBRyxJQUFJLGVBQWUsQ0FBUyxDQUFDLENBQUMsQ0FBQztRQUN4QyxrQkFBYSxHQUFHLElBQUksZUFBZSxDQUFnQixJQUFJLENBQUMsQ0FBQztRQU96RCxZQUFZO1FBRVosZUFBZTtRQUNFLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUN6QyxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUEvQnhELElBQUksQ0FBQyxNQUFNLEdBQUcsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUMxRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsWUFBWSxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUU7WUFDM0MsTUFBTSxDQUFDLEdBQUcsWUFBWSxJQUFJLEtBQUssQ0FBQztZQUNoQyxPQUFPO2dCQUNMLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQztnQkFDdEMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQzthQUNsRCxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVOLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQzdDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQ2hDLFNBQVMsQ0FBQyxDQUFDLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUU7WUFDbkMsTUFBTSxDQUFDLEdBQUcsWUFBWSxJQUFJLEtBQUssQ0FBQztZQUNoQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFRRCxpQkFBaUI7SUFDakIsSUFBb0IsT0FBTyxDQUFDLEtBQWE7UUFDdkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQU1ELElBQVcsS0FBSztRQUNkLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFDM0IsQ0FBQztJQUNELElBQW9CLEtBQUssQ0FBQyxLQUFhO1FBQ3JDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFDRCxZQUFZO0lBRVosV0FBVztRQUNULElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBYTtRQUN0QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUNELFdBQVcsQ0FBQyxLQUFhO1FBQ3ZCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQWEsRUFBRSxJQUFhO1FBQ3RDLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUUyQixZQUFZO1FBQ3RDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hDLENBQUM7OzhHQTdEVSxpQkFBaUI7a0dBQWpCLGlCQUFpQiwrTkNSOUIseU5BRU87MkZETU0saUJBQWlCO2tCQUw3QixTQUFTOytCQUNFLFdBQVc7MEVBK0JELE9BQU87c0JBQTFCLEtBQUs7Z0JBTVcsV0FBVztzQkFBM0IsTUFBTTtnQkFDVSxXQUFXO3NCQUEzQixNQUFNO2dCQUlhLEtBQUs7c0JBQXhCLEtBQUs7Z0JBcUJzQixZQUFZO3NCQUF2QyxZQUFZO3VCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBtYXAsIE9ic2VydmFibGUsIFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdicy1yYXRpbmcnLFxuICB0ZW1wbGF0ZVVybDogJy4vcmF0aW5nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcmF0aW5nLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQnNSYXRpbmdDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuc3RhcnMkID0gY29tYmluZUxhdGVzdChbdGhpcy5tYXhpbXVtJCwgdGhpcy5wcmV2aWV3VmFsdWUkLCB0aGlzLnZhbHVlJF0pXG4gICAgICAucGlwZShtYXAoKFttYXhpbXVtLCBwcmV2aWV3VmFsdWUsIHZhbHVlXSkgPT4ge1xuICAgICAgICBjb25zdCB2ID0gcHJldmlld1ZhbHVlID8/IHZhbHVlO1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgIC4uLlsuLi5BcnJheSh2KS5rZXlzKCldLm1hcChpID0+IHRydWUpLFxuICAgICAgICAgIC4uLlsuLi5BcnJheShtYXhpbXVtIC0gdikua2V5cygpXS5tYXAoaSA9PiBmYWxzZSlcbiAgICAgICAgXTtcbiAgICAgIH0pKTtcblxuICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMucHJldmlld1ZhbHVlJCwgdGhpcy52YWx1ZSRdKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCkpXG4gICAgICAuc3Vic2NyaWJlKChbcHJldmlld1ZhbHVlLCB2YWx1ZV0pID0+IHtcbiAgICAgICAgY29uc3QgdiA9IHByZXZpZXdWYWx1ZSA/PyB2YWx1ZTtcbiAgICAgICAgdGhpcy5zdGFyc0NoYW5nZS5lbWl0KHYpO1xuICAgICAgfSk7XG4gIH1cblxuICBkZXN0cm95ZWQkID0gbmV3IFN1YmplY3QoKTtcbiAgbWF4aW11bSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oNSk7XG4gIHZhbHVlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigzKTtcbiAgcHJldmlld1ZhbHVlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyIHwgbnVsbD4obnVsbCk7XG4gIHN0YXJzJDogT2JzZXJ2YWJsZTxib29sZWFuW10+O1xuXG4gIC8vI3JlZ2lvbiBNYXhpbXVtXG4gIEBJbnB1dCgpIHB1YmxpYyBzZXQgbWF4aW11bSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5tYXhpbXVtJC5uZXh0KHZhbHVlKTtcbiAgfVxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gVmFsdWVcbiAgQE91dHB1dCgpIHB1YmxpYyB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuICBAT3V0cHV0KCkgcHVibGljIHN0YXJzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG4gIHB1YmxpYyBnZXQgdmFsdWUoKSB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWUkLnZhbHVlO1xuICB9XG4gIEBJbnB1dCgpIHB1YmxpYyBzZXQgdmFsdWUodmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMudmFsdWUkLm5leHQodmFsdWUpO1xuICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gIH1cbiAgLy8jZW5kcmVnaW9uXG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5kZXN0cm95ZWQkLm5leHQodHJ1ZSk7XG4gIH1cblxuICBob3ZlclZhbHVlKGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLnByZXZpZXdWYWx1ZSQubmV4dChpbmRleCArIDEpO1xuICB9XG4gIHNlbGVjdFZhbHVlKGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLnZhbHVlID0gaW5kZXggKyAxO1xuICB9XG5cbiAgdHJhY2tCeVN0YXIoaW5kZXg6IG51bWJlciwgc3RhcjogYm9vbGVhbikge1xuICAgIHJldHVybiBpbmRleDtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlbGVhdmUnKSBvbk1vdXNlTGVhdmUoKSB7XG4gICAgdGhpcy5wcmV2aWV3VmFsdWUkLm5leHQobnVsbCk7XG4gIH1cbn1cbiIsIjxzcGFuIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAqbmdGb3I9XCJsZXQgc3RhciBvZiAoc3RhcnMkIHwgYXN5bmMpLCBsZXQgaSA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5U3RhclwiIChtb3VzZWVudGVyKT1cImhvdmVyVmFsdWUoaSlcIiAoY2xpY2spPVwic2VsZWN0VmFsdWUoaSlcIj5cbiAgICB7eyBzdGFyID8gJyYjOTczMzsnIDogJyYjOTczNDsnIH19XG48L3NwYW4+Il19
@@ -82,4 +82,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
82
82
  }], isExpanded: [{
83
83
  type: Input
84
84
  }] } });
85
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UtZ3JvdXAtcHJlc2VudGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1ib290c3RyYXAvc2NoZWR1bGVyL3NyYy9jb21wb25lbnRzL3Jlc291cmNlLWdyb3VwLXByZXNlbnRlci9yZXNvdXJjZS1ncm91cC1wcmVzZW50ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9taW50cGxheWVyLW5nLWJvb3RzdHJhcC9zY2hlZHVsZXIvc3JjL2NvbXBvbmVudHMvcmVzb3VyY2UtZ3JvdXAtcHJlc2VudGVyL3Jlc291cmNlLWdyb3VwLXByZXNlbnRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQWMsT0FBTyxFQUFFLElBQUksRUFBYSxNQUFNLE1BQU0sQ0FBQzs7OztBQVkxRixNQUFNLE9BQU8sK0JBQStCO0lBRTFDO1FBMkJTLFVBQUssR0FBRyxDQUFDLENBQUM7UUFDbkIscUJBQWdCLEdBQUcsSUFBSSxlQUFlLENBQWtDLElBQUksQ0FBQyxDQUFDO1FBQzlFLGVBQVUsR0FBRyxJQUFJLGVBQWUsQ0FBNEIsRUFBRSxDQUFDLENBQUM7UUFDaEUsZ0JBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUdsRCxlQUFVLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQWhDekIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsZ0JBQWdCO2FBQy9CLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxlQUFlLEVBQUUsRUFBRTtZQUM1QixJQUFJLENBQUMsZUFBZSxFQUFFO2dCQUNwQixPQUFPLElBQUksQ0FBQzthQUNiO2lCQUFNLElBQUksVUFBVSxJQUFJLGVBQWUsRUFBRTtnQkFDeEMsT0FBd0I7b0JBQ3RCLFFBQVEsRUFBRSxJQUFJO29CQUNkLGFBQWEsRUFBRSxlQUFlO2lCQUMvQixDQUFDO2FBQ0g7aUJBQU07Z0JBQ0wsT0FBd0I7b0JBQ3RCLFFBQVEsRUFBRSxlQUFlO29CQUN6QixhQUFhLEVBQUUsSUFBSTtpQkFDcEIsQ0FBQzthQUNIO1FBQ0gsQ0FBQyxDQUFDLENBQUM7YUFDRixJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUM7YUFDcEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQWtCLGVBQWUsQ0FBQyxDQUFDLENBQUM7UUFFcEUsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVTthQUM1QixJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsU0FBUzthQUM3QixHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQzthQUN0QyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUM1QyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBVUQseUJBQXlCO0lBQ3pCLElBQVcsZUFBZTtRQUN4QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7SUFDckMsQ0FBQztJQUNELElBQW9CLGFBQWEsQ0FBQyxLQUFzQztRQUN0RSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFDRCxZQUFZO0lBRVosbUJBQW1CO0lBQ25CLElBQVcsU0FBUztRQUNsQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDO0lBQy9CLENBQUM7SUFDRCxJQUFvQixTQUFTLENBQUMsS0FBZ0M7UUFDNUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUNELFlBQVk7SUFFWixvQkFBb0I7SUFDcEIsSUFBVyxVQUFVO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7SUFDaEMsQ0FBQztJQUNELElBQW9CLFVBQVUsQ0FBQyxLQUFjO1FBQzNDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFDRCxZQUFZO0lBRVosY0FBYztRQUNaLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFO1lBQ3RELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDckMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdCLENBQUM7OzRIQXhFVSwrQkFBK0I7Z0hBQS9CLCtCQUErQixpTENiNUMsc2dFQXNDZSxnZUR6QkYsK0JBQStCOzJGQUEvQiwrQkFBK0I7a0JBTjNDLFNBQVM7K0JBQ0UsNkJBQTZCOzBFQWtDOUIsS0FBSztzQkFBYixLQUFLO2dCQVljLGFBQWE7c0JBQWhDLEtBQUs7Z0JBU2MsU0FBUztzQkFBNUIsS0FBSztnQkFTYyxVQUFVO3NCQUE3QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGZpbHRlciwgbWFwLCBPYnNlcnZhYmxlLCBTdWJqZWN0LCB0YWtlLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFJlc291cmNlLCBSZXNvdXJjZUdyb3VwIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBSZXNvdXJjZU9yR3JvdXAgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3Jlc291cmNlLW9yLWdyb3VwJztcbmltcG9ydCB7IFNjaGVkdWxlclN0YW1wV2l0aFNsb3RzIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9zY2hlZHVsZXItc3RhbXAtd2l0aC1zbG90cyc7XG5pbXBvcnQgeyBUaW1lU2xvdCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvdGltZS1zbG90JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYnMtcmVzb3VyY2UtZ3JvdXAtcHJlc2VudGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Jlc291cmNlLWdyb3VwLXByZXNlbnRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Jlc291cmNlLWdyb3VwLXByZXNlbnRlci5jb21wb25lbnQuc2NzcyddLFxuICBcbn0pXG5leHBvcnQgY2xhc3MgUmVzb3VyY2VHcm91cFByZXNlbnRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIFxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmRhdGEkID0gdGhpcy5yZXNvdXJjZU9yR3JvdXAkXG4gICAgICAucGlwZShtYXAoKHJlc291cmNlT3JHcm91cCkgPT4ge1xuICAgICAgICBpZiAoIXJlc291cmNlT3JHcm91cCkge1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9IGVsc2UgaWYgKCdjaGlsZHJlbicgaW4gcmVzb3VyY2VPckdyb3VwKSB7XG4gICAgICAgICAgcmV0dXJuIDxSZXNvdXJjZU9yR3JvdXA+e1xuICAgICAgICAgICAgcmVzb3VyY2U6IG51bGwsXG4gICAgICAgICAgICByZXNvdXJjZUdyb3VwOiByZXNvdXJjZU9yR3JvdXBcbiAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiA8UmVzb3VyY2VPckdyb3VwPntcbiAgICAgICAgICAgIHJlc291cmNlOiByZXNvdXJjZU9yR3JvdXAsXG4gICAgICAgICAgICByZXNvdXJjZUdyb3VwOiBudWxsXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgfSkpXG4gICAgICAucGlwZShmaWx0ZXIoKHJlc291cmNlT3JHcm91cCkgPT4gISFyZXNvdXJjZU9yR3JvdXApKVxuICAgICAgLnBpcGUobWFwKChyZXNvdXJjZU9yR3JvdXApID0+IDxSZXNvdXJjZU9yR3JvdXA+cmVzb3VyY2VPckdyb3VwKSk7XG5cbiAgICB0aGlzLmNvbFNwYW4kID0gdGhpcy50aW1lU2xvdHMkXG4gICAgICAucGlwZShtYXAodGltZVNsb3RzID0+IHRpbWVTbG90c1xuICAgICAgICAubWFwKHRpbWVzbG90ID0+IHRpbWVzbG90LnNsb3RzLmxlbmd0aClcbiAgICAgICAgLnJlZHVjZSgoc3VtLCBjdXJyZW50KSA9PiBzdW0gKyBjdXJyZW50LCAwKVxuICAgICAgKSk7XG4gIH1cblxuICBASW5wdXQoKSBsZXZlbCA9IDA7XG4gIHJlc291cmNlT3JHcm91cCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFJlc291cmNlIHwgUmVzb3VyY2VHcm91cCB8IG51bGw+KG51bGwpO1xuICB0aW1lU2xvdHMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxTY2hlZHVsZXJTdGFtcFdpdGhTbG90c1tdPihbXSk7XG4gIGlzRXhwYW5kZWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIGRhdGEkOiBPYnNlcnZhYmxlPFJlc291cmNlT3JHcm91cD47XG4gIGNvbFNwYW4kOiBPYnNlcnZhYmxlPG51bWJlcj47XG4gIGRlc3Ryb3llZCQgPSBuZXcgU3ViamVjdCgpO1xuXG4gIC8vI3JlZ2lvbiByZXNvdXJjZU9yR3JvdXBcbiAgcHVibGljIGdldCByZXNvdXJjZU9yR3JvdXAoKSB7XG4gICAgcmV0dXJuIHRoaXMucmVzb3VyY2VPckdyb3VwJC52YWx1ZTtcbiAgfVxuICBASW5wdXQoKSBwdWJsaWMgc2V0IHJlc291cmNlR3JvdXAodmFsdWU6IFJlc291cmNlIHwgUmVzb3VyY2VHcm91cCB8IG51bGwpIHtcbiAgICB0aGlzLnJlc291cmNlT3JHcm91cCQubmV4dCh2YWx1ZSk7XG4gIH1cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIHRpbWVTbG90c1xuICBwdWJsaWMgZ2V0IHRpbWVTbG90cygpIHtcbiAgICByZXR1cm4gdGhpcy50aW1lU2xvdHMkLnZhbHVlO1xuICB9XG4gIEBJbnB1dCgpIHB1YmxpYyBzZXQgdGltZVNsb3RzKHZhbHVlOiBTY2hlZHVsZXJTdGFtcFdpdGhTbG90c1tdKSB7XG4gICAgdGhpcy50aW1lU2xvdHMkLm5leHQodmFsdWUpO1xuICB9XG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBpc0V4cGFuZGVkXG4gIHB1YmxpYyBnZXQgaXNFeHBhbmRlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5pc0V4cGFuZGVkJC52YWx1ZTtcbiAgfVxuICBASW5wdXQoKSBwdWJsaWMgc2V0IGlzRXhwYW5kZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmlzRXhwYW5kZWQkLm5leHQodmFsdWUpO1xuICB9XG4gIC8vI2VuZHJlZ2lvblxuXG4gIHRvZ2dsZUV4cGFuZGVkKCkge1xuICAgIHRoaXMuaXNFeHBhbmRlZCQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKGlzRXhwYW5kZWQpID0+IHtcbiAgICAgIHRoaXMuaXNFeHBhbmRlZCQubmV4dCghaXNFeHBhbmRlZCk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3llZCQubmV4dCh0cnVlKTtcbiAgfVxuXG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiKGRhdGEkIHwgYXN5bmMpIGFzIGRhdGFcIj5cblxuICAgIDwhLS0gRGF0YSBpcyBhIHJlc291cmNlIGdyb3VwIC0tPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkYXRhLnJlc291cmNlR3JvdXBcIj5cbiAgICAgICAgPCEtLSBIZWFkZXIgLS0+XG4gICAgICAgIDx0ciBjbGFzcz1cInAtMCBjdXJzb3ItcG9pbnRlclwiICpuZ0lmPVwiKHRpbWVTbG90cyQgfCBhc3luYykgYXMgdGltZVNsb3RzXCIgW3RpdGxlXT1cImRhdGEucmVzb3VyY2VHcm91cC5kZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihjb2xTcGFuJCB8IGFzeW5jKSBhcyBjb2xzcGFuXCI+XG4gICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicC0yIGN1cnNvci1wb2ludGVyXCIgW2NvbFNwYW5dPVwiY29sc3BhbiArIDFcIiAoY2xpY2spPVwidG9nZ2xlRXhwYW5kZWQoKVwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInAtMiBhbGlnbi1taWRkbGUgcG9zaXRpb24tc3RpY2t5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnMtaWNvbiBbaWNvbl09XCInY2hldnJvbi1kb3duJ1wiIFtzdHlsZS5wYWRkaW5nLWxlZnQucHhdPVwibGV2ZWwgKiAyMFwiICpuZ0lmPVwiaXNFeHBhbmRlZCQgfCBhc3luY1wiPjwvYnMtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxicy1pY29uIFtpY29uXT1cIidjaGV2cm9uLXJpZ2h0J1wiIFtzdHlsZS5wYWRkaW5nLWxlZnQucHhdPVwibGV2ZWwgKiAyMFwiICpuZ0lmPVwiKGlzRXhwYW5kZWQkIHwgYXN5bmMpID09PSBmYWxzZVwiPjwvYnMtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGRhdGEucmVzb3VyY2VHcm91cC5kZXNjcmlwdGlvbiB9fVxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L3RyPlxuXG4gICAgICAgIDwhLS0gU3ViZ3JvdXBzIG9yIHJlc291cmNlcyAtLT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzRXhwYW5kZWQkIHwgYXN5bmNcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIodGltZVNsb3RzJCB8IGFzeW5jKSBhcyB0aW1lU2xvdHNcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjaGlsZCBvZiBkYXRhLnJlc291cmNlR3JvdXAuY2hpbGRyZW5cIj5cbiAgICAgICAgICAgICAgICAgICAgPGJzLXJlc291cmNlLWdyb3VwLXByZXNlbnRlciBbcmVzb3VyY2VHcm91cF09XCJjaGlsZFwiIFt0aW1lU2xvdHNdPVwidGltZVNsb3RzXCIgW2xldmVsXT1cImxldmVsICsgMVwiPjwvYnMtcmVzb3VyY2UtZ3JvdXAtcHJlc2VudGVyPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPCEtLSBEYXRhIGlzIGEgcmVzb3VyY2UgLS0+XG4gICAgPHRyICpuZ0lmPVwiZGF0YS5yZXNvdXJjZVwiIGNsYXNzPVwicC0wIGJvcmRlcmVkXCIgW3RpdGxlXT1cImRhdGEucmVzb3VyY2UuZGVzY3JpcHRpb25cIj5cbiAgICAgICAgPHRkIGNsYXNzPVwicC0wIGJnLXdoaXRlXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC0yXCI+e3sgZGF0YS5yZXNvdXJjZS5kZXNjcmlwdGlvbiB9fTwvZGl2PlxuICAgICAgICA8L3RkPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzbG90cyBvZiAodGltZVNsb3RzJCB8IGFzeW5jKVwiPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwiYmctd2hpdGUgYm9yZGVyLTFcIiAqbmdGb3I9XCJsZXQgc2xvdCBvZiBzbG90cy5zbG90c1wiPlxuICAgICAgICAgICAgICAgIDwhLS0ge3sgc2xvdC5zdGFydCB8IGRhdGU6ICdkZC9NTS95eXl5IEhIOm1tOnNzJyB9fSAtLT5cbiAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvdHI+XG48L25nLWNvbnRhaW5lcj4iXX0=
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UtZ3JvdXAtcHJlc2VudGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1ib290c3RyYXAvc2NoZWR1bGVyL3NyYy9jb21wb25lbnRzL3Jlc291cmNlLWdyb3VwLXByZXNlbnRlci9yZXNvdXJjZS1ncm91cC1wcmVzZW50ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9taW50cGxheWVyLW5nLWJvb3RzdHJhcC9zY2hlZHVsZXIvc3JjL2NvbXBvbmVudHMvcmVzb3VyY2UtZ3JvdXAtcHJlc2VudGVyL3Jlc291cmNlLWdyb3VwLXByZXNlbnRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQWMsT0FBTyxFQUFFLElBQUksRUFBYSxNQUFNLE1BQU0sQ0FBQzs7OztBQVcxRixNQUFNLE9BQU8sK0JBQStCO0lBRTFDO1FBMkJTLFVBQUssR0FBRyxDQUFDLENBQUM7UUFDbkIscUJBQWdCLEdBQUcsSUFBSSxlQUFlLENBQWtDLElBQUksQ0FBQyxDQUFDO1FBQzlFLGVBQVUsR0FBRyxJQUFJLGVBQWUsQ0FBNEIsRUFBRSxDQUFDLENBQUM7UUFDaEUsZ0JBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUdsRCxlQUFVLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQWhDekIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsZ0JBQWdCO2FBQy9CLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxlQUFlLEVBQUUsRUFBRTtZQUM1QixJQUFJLENBQUMsZUFBZSxFQUFFO2dCQUNwQixPQUFPLElBQUksQ0FBQzthQUNiO2lCQUFNLElBQUksVUFBVSxJQUFJLGVBQWUsRUFBRTtnQkFDeEMsT0FBd0I7b0JBQ3RCLFFBQVEsRUFBRSxJQUFJO29CQUNkLGFBQWEsRUFBRSxlQUFlO2lCQUMvQixDQUFDO2FBQ0g7aUJBQU07Z0JBQ0wsT0FBd0I7b0JBQ3RCLFFBQVEsRUFBRSxlQUFlO29CQUN6QixhQUFhLEVBQUUsSUFBSTtpQkFDcEIsQ0FBQzthQUNIO1FBQ0gsQ0FBQyxDQUFDLENBQUM7YUFDRixJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUM7YUFDcEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQWtCLGVBQWUsQ0FBQyxDQUFDLENBQUM7UUFFcEUsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVTthQUM1QixJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsU0FBUzthQUM3QixHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQzthQUN0QyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUM1QyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBVUQseUJBQXlCO0lBQ3pCLElBQVcsZUFBZTtRQUN4QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7SUFDckMsQ0FBQztJQUNELElBQW9CLGFBQWEsQ0FBQyxLQUFzQztRQUN0RSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFDRCxZQUFZO0lBRVosbUJBQW1CO0lBQ25CLElBQVcsU0FBUztRQUNsQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDO0lBQy9CLENBQUM7SUFDRCxJQUFvQixTQUFTLENBQUMsS0FBZ0M7UUFDNUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUNELFlBQVk7SUFFWixvQkFBb0I7SUFDcEIsSUFBVyxVQUFVO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7SUFDaEMsQ0FBQztJQUNELElBQW9CLFVBQVUsQ0FBQyxLQUFjO1FBQzNDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFDRCxZQUFZO0lBRVosY0FBYztRQUNaLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFO1lBQ3RELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDckMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdCLENBQUM7OzRIQXhFVSwrQkFBK0I7Z0hBQS9CLCtCQUErQixpTENaNUMsc2dFQXNDZSxnZUQxQkYsK0JBQStCOzJGQUEvQiwrQkFBK0I7a0JBTjNDLFNBQVM7K0JBQ0UsNkJBQTZCOzBFQWtDOUIsS0FBSztzQkFBYixLQUFLO2dCQVljLGFBQWE7c0JBQWhDLEtBQUs7Z0JBU2MsU0FBUztzQkFBNUIsS0FBSztnQkFTYyxVQUFVO3NCQUE3QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGZpbHRlciwgbWFwLCBPYnNlcnZhYmxlLCBTdWJqZWN0LCB0YWtlLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFJlc291cmNlLCBSZXNvdXJjZUdyb3VwIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBSZXNvdXJjZU9yR3JvdXAgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3Jlc291cmNlLW9yLWdyb3VwJztcbmltcG9ydCB7IFNjaGVkdWxlclN0YW1wV2l0aFNsb3RzIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9zY2hlZHVsZXItc3RhbXAtd2l0aC1zbG90cyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JzLXJlc291cmNlLWdyb3VwLXByZXNlbnRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZXNvdXJjZS1ncm91cC1wcmVzZW50ZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9yZXNvdXJjZS1ncm91cC1wcmVzZW50ZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgXG59KVxuZXhwb3J0IGNsYXNzIFJlc291cmNlR3JvdXBQcmVzZW50ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5kYXRhJCA9IHRoaXMucmVzb3VyY2VPckdyb3VwJFxuICAgICAgLnBpcGUobWFwKChyZXNvdXJjZU9yR3JvdXApID0+IHtcbiAgICAgICAgaWYgKCFyZXNvdXJjZU9yR3JvdXApIHtcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfSBlbHNlIGlmICgnY2hpbGRyZW4nIGluIHJlc291cmNlT3JHcm91cCkge1xuICAgICAgICAgIHJldHVybiA8UmVzb3VyY2VPckdyb3VwPntcbiAgICAgICAgICAgIHJlc291cmNlOiBudWxsLFxuICAgICAgICAgICAgcmVzb3VyY2VHcm91cDogcmVzb3VyY2VPckdyb3VwXG4gICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gPFJlc291cmNlT3JHcm91cD57XG4gICAgICAgICAgICByZXNvdXJjZTogcmVzb3VyY2VPckdyb3VwLFxuICAgICAgICAgICAgcmVzb3VyY2VHcm91cDogbnVsbFxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgIH0pKVxuICAgICAgLnBpcGUoZmlsdGVyKChyZXNvdXJjZU9yR3JvdXApID0+ICEhcmVzb3VyY2VPckdyb3VwKSlcbiAgICAgIC5waXBlKG1hcCgocmVzb3VyY2VPckdyb3VwKSA9PiA8UmVzb3VyY2VPckdyb3VwPnJlc291cmNlT3JHcm91cCkpO1xuXG4gICAgdGhpcy5jb2xTcGFuJCA9IHRoaXMudGltZVNsb3RzJFxuICAgICAgLnBpcGUobWFwKHRpbWVTbG90cyA9PiB0aW1lU2xvdHNcbiAgICAgICAgLm1hcCh0aW1lc2xvdCA9PiB0aW1lc2xvdC5zbG90cy5sZW5ndGgpXG4gICAgICAgIC5yZWR1Y2UoKHN1bSwgY3VycmVudCkgPT4gc3VtICsgY3VycmVudCwgMClcbiAgICAgICkpO1xuICB9XG5cbiAgQElucHV0KCkgbGV2ZWwgPSAwO1xuICByZXNvdXJjZU9yR3JvdXAkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxSZXNvdXJjZSB8IFJlc291cmNlR3JvdXAgfCBudWxsPihudWxsKTtcbiAgdGltZVNsb3RzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8U2NoZWR1bGVyU3RhbXBXaXRoU2xvdHNbXT4oW10pO1xuICBpc0V4cGFuZGVkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICBkYXRhJDogT2JzZXJ2YWJsZTxSZXNvdXJjZU9yR3JvdXA+O1xuICBjb2xTcGFuJDogT2JzZXJ2YWJsZTxudW1iZXI+O1xuICBkZXN0cm95ZWQkID0gbmV3IFN1YmplY3QoKTtcblxuICAvLyNyZWdpb24gcmVzb3VyY2VPckdyb3VwXG4gIHB1YmxpYyBnZXQgcmVzb3VyY2VPckdyb3VwKCkge1xuICAgIHJldHVybiB0aGlzLnJlc291cmNlT3JHcm91cCQudmFsdWU7XG4gIH1cbiAgQElucHV0KCkgcHVibGljIHNldCByZXNvdXJjZUdyb3VwKHZhbHVlOiBSZXNvdXJjZSB8IFJlc291cmNlR3JvdXAgfCBudWxsKSB7XG4gICAgdGhpcy5yZXNvdXJjZU9yR3JvdXAkLm5leHQodmFsdWUpO1xuICB9XG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiB0aW1lU2xvdHNcbiAgcHVibGljIGdldCB0aW1lU2xvdHMoKSB7XG4gICAgcmV0dXJuIHRoaXMudGltZVNsb3RzJC52YWx1ZTtcbiAgfVxuICBASW5wdXQoKSBwdWJsaWMgc2V0IHRpbWVTbG90cyh2YWx1ZTogU2NoZWR1bGVyU3RhbXBXaXRoU2xvdHNbXSkge1xuICAgIHRoaXMudGltZVNsb3RzJC5uZXh0KHZhbHVlKTtcbiAgfVxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gaXNFeHBhbmRlZFxuICBwdWJsaWMgZ2V0IGlzRXhwYW5kZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNFeHBhbmRlZCQudmFsdWU7XG4gIH1cbiAgQElucHV0KCkgcHVibGljIHNldCBpc0V4cGFuZGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5pc0V4cGFuZGVkJC5uZXh0KHZhbHVlKTtcbiAgfVxuICAvLyNlbmRyZWdpb25cblxuICB0b2dnbGVFeHBhbmRlZCgpIHtcbiAgICB0aGlzLmlzRXhwYW5kZWQkLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKChpc0V4cGFuZGVkKSA9PiB7XG4gICAgICB0aGlzLmlzRXhwYW5kZWQkLm5leHQoIWlzRXhwYW5kZWQpO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5kZXN0cm95ZWQkLm5leHQodHJ1ZSk7XG4gIH1cblxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIihkYXRhJCB8IGFzeW5jKSBhcyBkYXRhXCI+XG5cbiAgICA8IS0tIERhdGEgaXMgYSByZXNvdXJjZSBncm91cCAtLT5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGF0YS5yZXNvdXJjZUdyb3VwXCI+XG4gICAgICAgIDwhLS0gSGVhZGVyIC0tPlxuICAgICAgICA8dHIgY2xhc3M9XCJwLTAgY3Vyc29yLXBvaW50ZXJcIiAqbmdJZj1cIih0aW1lU2xvdHMkIHwgYXN5bmMpIGFzIHRpbWVTbG90c1wiIFt0aXRsZV09XCJkYXRhLnJlc291cmNlR3JvdXAuZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIoY29sU3BhbiQgfCBhc3luYykgYXMgY29sc3BhblwiPlxuICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInAtMiBjdXJzb3ItcG9pbnRlclwiIFtjb2xTcGFuXT1cImNvbHNwYW4gKyAxXCIgKGNsaWNrKT1cInRvZ2dsZUV4cGFuZGVkKClcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwLTIgYWxpZ24tbWlkZGxlIHBvc2l0aW9uLXN0aWNreVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJzLWljb24gW2ljb25dPVwiJ2NoZXZyb24tZG93bidcIiBbc3R5bGUucGFkZGluZy1sZWZ0LnB4XT1cImxldmVsICogMjBcIiAqbmdJZj1cImlzRXhwYW5kZWQkIHwgYXN5bmNcIj48L2JzLWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnMtaWNvbiBbaWNvbl09XCInY2hldnJvbi1yaWdodCdcIiBbc3R5bGUucGFkZGluZy1sZWZ0LnB4XT1cImxldmVsICogMjBcIiAqbmdJZj1cIihpc0V4cGFuZGVkJCB8IGFzeW5jKSA9PT0gZmFsc2VcIj48L2JzLWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBkYXRhLnJlc291cmNlR3JvdXAuZGVzY3JpcHRpb24gfX1cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC90cj5cblxuICAgICAgICA8IS0tIFN1Ymdyb3VwcyBvciByZXNvdXJjZXMgLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0V4cGFuZGVkJCB8IGFzeW5jXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiKHRpbWVTbG90cyQgfCBhc3luYykgYXMgdGltZVNsb3RzXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY2hpbGQgb2YgZGF0YS5yZXNvdXJjZUdyb3VwLmNoaWxkcmVuXCI+XG4gICAgICAgICAgICAgICAgICAgIDxicy1yZXNvdXJjZS1ncm91cC1wcmVzZW50ZXIgW3Jlc291cmNlR3JvdXBdPVwiY2hpbGRcIiBbdGltZVNsb3RzXT1cInRpbWVTbG90c1wiIFtsZXZlbF09XCJsZXZlbCArIDFcIj48L2JzLXJlc291cmNlLWdyb3VwLXByZXNlbnRlcj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDwhLS0gRGF0YSBpcyBhIHJlc291cmNlIC0tPlxuICAgIDx0ciAqbmdJZj1cImRhdGEucmVzb3VyY2VcIiBjbGFzcz1cInAtMCBib3JkZXJlZFwiIFt0aXRsZV09XCJkYXRhLnJlc291cmNlLmRlc2NyaXB0aW9uXCI+XG4gICAgICAgIDx0ZCBjbGFzcz1cInAtMCBiZy13aGl0ZVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtMlwiPnt7IGRhdGEucmVzb3VyY2UuZGVzY3JpcHRpb24gfX08L2Rpdj5cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgc2xvdHMgb2YgKHRpbWVTbG90cyQgfCBhc3luYylcIj5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cImJnLXdoaXRlIGJvcmRlci0xXCIgKm5nRm9yPVwibGV0IHNsb3Qgb2Ygc2xvdHMuc2xvdHNcIj5cbiAgICAgICAgICAgICAgICA8IS0tIHt7IHNsb3Quc3RhcnQgfCBkYXRlOiAnZGQvTU0veXl5eSBISDptbTpzcycgfX0gLS0+XG4gICAgICAgICAgICA8L3RkPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L3RyPlxuPC9uZy1jb250YWluZXI+Il19