@ethlete/cdk 3.16.1 → 3.18.0
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.
- package/CHANGELOG.md +12 -0
- package/esm2022/lib/components/bracket/components/bracket/bracket.component.mjs +7 -7
- package/esm2022/lib/components/bracket/utils/bracket.utils.mjs +15 -11
- package/esm2022/lib/components/{filter-overlay → filter/filter-overlay}/components/filter-overlay-page-outlet/filter-overlay-page-outlet.component.mjs +1 -1
- package/esm2022/lib/components/filter/filter-overlay/components/filter-overlay-page-outlet/public-api.mjs +2 -0
- package/esm2022/lib/components/filter/filter-overlay/components/index.mjs +2 -0
- package/esm2022/lib/components/filter/filter-overlay/components/public-api.mjs +2 -0
- package/esm2022/lib/components/filter/filter-overlay/constants/filter-overlay.constants.mjs +3 -0
- package/esm2022/lib/components/filter/filter-overlay/constants/index.mjs +2 -0
- package/esm2022/lib/components/filter/filter-overlay/constants/public-api.mjs +2 -0
- package/esm2022/lib/components/filter/filter-overlay/directives/filter-overlay-back-or-close/filter-overlay-back-or-close.directive.mjs +45 -0
- package/esm2022/lib/components/filter/filter-overlay/directives/filter-overlay-back-or-close/public-api.mjs +2 -0
- package/esm2022/lib/components/filter/filter-overlay/directives/filter-overlay-link/filter-overlay-link.directive.mjs +46 -0
- package/esm2022/lib/components/filter/filter-overlay/directives/filter-overlay-link/public-api.mjs +2 -0
- package/esm2022/lib/components/filter/filter-overlay/directives/filter-overlay-reset/filter-overlay-reset.directive.mjs +45 -0
- package/esm2022/lib/components/filter/filter-overlay/directives/filter-overlay-reset/public-api.mjs +2 -0
- package/esm2022/lib/components/filter/filter-overlay/directives/filter-overlay-submit/filter-overlay-submit.directive.mjs +45 -0
- package/esm2022/lib/components/filter/filter-overlay/directives/filter-overlay-submit/public-api.mjs +2 -0
- package/esm2022/lib/components/filter/filter-overlay/directives/index.mjs +2 -0
- package/esm2022/lib/components/filter/filter-overlay/directives/public-api.mjs +5 -0
- package/esm2022/lib/components/filter/filter-overlay/filter-overlay.imports.mjs +14 -0
- package/esm2022/lib/components/filter/filter-overlay/public-api.mjs +8 -0
- package/esm2022/lib/components/filter/filter-overlay/services/filter-overlay.service.mjs +37 -0
- package/esm2022/lib/components/filter/filter-overlay/services/index.mjs +2 -0
- package/esm2022/lib/components/filter/filter-overlay/services/public-api.mjs +2 -0
- package/esm2022/lib/components/filter/filter-overlay/types/filter-overlay-config.types.mjs +2 -0
- package/esm2022/lib/components/filter/filter-overlay/types/index.mjs +2 -0
- package/esm2022/lib/components/filter/filter-overlay/types/public-api.mjs +2 -0
- package/esm2022/lib/components/filter/filter-overlay/utils/filter-overlay-ref.mjs +60 -0
- package/esm2022/lib/components/filter/filter-overlay/utils/index.mjs +2 -0
- package/esm2022/lib/components/filter/filter-overlay/utils/public-api.mjs +2 -0
- package/esm2022/lib/components/filter/public-api.mjs +3 -0
- package/esm2022/lib/components/filter/rich-filter/components/index.mjs +2 -0
- package/esm2022/lib/components/filter/rich-filter/components/public-api.mjs +2 -0
- package/esm2022/lib/components/filter/rich-filter/components/rich-filter-host/public-api.mjs +2 -0
- package/esm2022/lib/components/filter/rich-filter/components/rich-filter-host/rich-filter-host.component.mjs +66 -0
- package/esm2022/lib/components/filter/rich-filter/directives/index.mjs +2 -0
- package/esm2022/lib/components/filter/rich-filter/directives/public-api.mjs +5 -0
- package/esm2022/lib/components/filter/rich-filter/directives/rich-filter-button/public-api.mjs +2 -0
- package/esm2022/lib/components/filter/rich-filter/directives/rich-filter-button/rich-filter-button.directive.mjs +32 -0
- package/esm2022/lib/components/filter/rich-filter/directives/rich-filter-button-slot/public-api.mjs +2 -0
- package/esm2022/lib/components/filter/rich-filter/directives/rich-filter-button-slot/rich-filter-button-slot.directive.mjs +32 -0
- package/esm2022/lib/components/filter/rich-filter/directives/rich-filter-content/public-api.mjs +2 -0
- package/esm2022/lib/components/filter/rich-filter/directives/rich-filter-content/rich-filter-content.directive.mjs +32 -0
- package/esm2022/lib/components/filter/rich-filter/directives/rich-filter-top/public-api.mjs +2 -0
- package/esm2022/lib/components/filter/rich-filter/directives/rich-filter-top/rich-filter-top.directive.mjs +29 -0
- package/esm2022/lib/components/filter/rich-filter/public-api.mjs +4 -0
- package/esm2022/lib/components/filter/rich-filter/rich-filter.imports.mjs +10 -0
- package/esm2022/lib/components/forms/components/slider/components/slider/slider.component.mjs +3 -3
- package/esm2022/lib/components/masonry/components/masonry/masonry.component.mjs +10 -7
- package/esm2022/lib/components/overlay/components/bottom-sheet/services/bottom-sheet-base.service.mjs +2 -2
- package/esm2022/lib/components/overlay/components/dialog/services/dialog-base.service.mjs +3 -3
- package/esm2022/lib/components/overlay/components/menu/menu-aim.mjs +1 -1
- package/esm2022/lib/components/overlay/components/overlay/services/overlay.service.mjs +4 -4
- package/esm2022/lib/components/pagination/services/pagination-head.service.mjs +3 -3
- package/esm2022/lib/components/public-api.mjs +2 -2
- package/esm2022/lib/components/query-error/components/query-error/query-error.component.mjs +3 -3
- package/esm2022/lib/components/query-error/directives/query-error/query-error.directive.mjs +1 -1
- package/esm2022/lib/components/sort/partials/sort/sort.directive.mjs +1 -1
- package/esm2022/lib/services/swipe-handler.service.mjs +1 -1
- package/fesm2022/ethlete-cdk.mjs +225 -39
- package/fesm2022/ethlete-cdk.mjs.map +1 -1
- package/lib/components/bracket/utils/bracket.utils.d.ts +1 -1
- package/lib/components/{filter-overlay → filter/filter-overlay}/components/filter-overlay-page-outlet/filter-overlay-page-outlet.component.d.ts +1 -1
- package/lib/components/{filter-overlay → filter/filter-overlay}/constants/filter-overlay.constants.d.ts +1 -1
- package/lib/components/{filter-overlay → filter/filter-overlay}/directives/filter-overlay-back-or-close/filter-overlay-back-or-close.directive.d.ts +1 -1
- package/lib/components/{filter-overlay → filter/filter-overlay}/directives/filter-overlay-link/filter-overlay-link.directive.d.ts +1 -1
- package/lib/components/{filter-overlay → filter/filter-overlay}/directives/filter-overlay-reset/filter-overlay-reset.directive.d.ts +1 -1
- package/lib/components/{filter-overlay → filter/filter-overlay}/directives/filter-overlay-submit/filter-overlay-submit.directive.d.ts +1 -1
- package/lib/components/{filter-overlay → filter/filter-overlay}/services/filter-overlay.service.d.ts +2 -2
- package/lib/components/{filter-overlay → filter/filter-overlay}/types/filter-overlay-config.types.d.ts +4 -1
- package/lib/components/{filter-overlay → filter/filter-overlay}/utils/filter-overlay-ref.d.ts +5 -5
- package/lib/components/filter/public-api.d.ts +2 -0
- package/lib/components/filter/rich-filter/components/index.d.ts +1 -0
- package/lib/components/filter/rich-filter/components/public-api.d.ts +1 -0
- package/lib/components/filter/rich-filter/components/rich-filter-host/public-api.d.ts +1 -0
- package/lib/components/filter/rich-filter/components/rich-filter-host/rich-filter-host.component.d.ts +23 -0
- package/lib/components/filter/rich-filter/directives/index.d.ts +1 -0
- package/lib/components/filter/rich-filter/directives/public-api.d.ts +4 -0
- package/lib/components/filter/rich-filter/directives/rich-filter-button/public-api.d.ts +1 -0
- package/lib/components/filter/rich-filter/directives/rich-filter-button/rich-filter-button.directive.d.ts +8 -0
- package/lib/components/filter/rich-filter/directives/rich-filter-button-slot/public-api.d.ts +1 -0
- package/lib/components/filter/rich-filter/directives/rich-filter-button-slot/rich-filter-button-slot.directive.d.ts +10 -0
- package/lib/components/filter/rich-filter/directives/rich-filter-content/public-api.d.ts +1 -0
- package/lib/components/filter/rich-filter/directives/rich-filter-content/rich-filter-content.directive.d.ts +10 -0
- package/lib/components/filter/rich-filter/directives/rich-filter-top/public-api.d.ts +1 -0
- package/lib/components/filter/rich-filter/directives/rich-filter-top/rich-filter-top.directive.d.ts +8 -0
- package/lib/components/filter/rich-filter/public-api.d.ts +3 -0
- package/lib/components/filter/rich-filter/rich-filter.imports.d.ts +3 -0
- package/lib/components/public-api.d.ts +1 -1
- package/package.json +5 -3
- package/esm2022/lib/components/filter-overlay/components/filter-overlay-page-outlet/public-api.mjs +0 -2
- package/esm2022/lib/components/filter-overlay/components/index.mjs +0 -2
- package/esm2022/lib/components/filter-overlay/components/public-api.mjs +0 -2
- package/esm2022/lib/components/filter-overlay/constants/filter-overlay.constants.mjs +0 -3
- package/esm2022/lib/components/filter-overlay/constants/index.mjs +0 -2
- package/esm2022/lib/components/filter-overlay/constants/public-api.mjs +0 -2
- package/esm2022/lib/components/filter-overlay/directives/filter-overlay-back-or-close/filter-overlay-back-or-close.directive.mjs +0 -45
- package/esm2022/lib/components/filter-overlay/directives/filter-overlay-back-or-close/public-api.mjs +0 -2
- package/esm2022/lib/components/filter-overlay/directives/filter-overlay-link/filter-overlay-link.directive.mjs +0 -46
- package/esm2022/lib/components/filter-overlay/directives/filter-overlay-link/public-api.mjs +0 -2
- package/esm2022/lib/components/filter-overlay/directives/filter-overlay-reset/filter-overlay-reset.directive.mjs +0 -45
- package/esm2022/lib/components/filter-overlay/directives/filter-overlay-reset/public-api.mjs +0 -2
- package/esm2022/lib/components/filter-overlay/directives/filter-overlay-submit/filter-overlay-submit.directive.mjs +0 -45
- package/esm2022/lib/components/filter-overlay/directives/filter-overlay-submit/public-api.mjs +0 -2
- package/esm2022/lib/components/filter-overlay/directives/index.mjs +0 -2
- package/esm2022/lib/components/filter-overlay/directives/public-api.mjs +0 -5
- package/esm2022/lib/components/filter-overlay/filter-overlay.imports.mjs +0 -14
- package/esm2022/lib/components/filter-overlay/public-api.mjs +0 -8
- package/esm2022/lib/components/filter-overlay/services/filter-overlay.service.mjs +0 -37
- package/esm2022/lib/components/filter-overlay/services/index.mjs +0 -2
- package/esm2022/lib/components/filter-overlay/services/public-api.mjs +0 -2
- package/esm2022/lib/components/filter-overlay/types/filter-overlay-config.types.mjs +0 -2
- package/esm2022/lib/components/filter-overlay/types/index.mjs +0 -2
- package/esm2022/lib/components/filter-overlay/types/public-api.mjs +0 -2
- package/esm2022/lib/components/filter-overlay/utils/filter-overlay-ref.mjs +0 -61
- package/esm2022/lib/components/filter-overlay/utils/index.mjs +0 -2
- package/esm2022/lib/components/filter-overlay/utils/public-api.mjs +0 -2
- /package/lib/components/{filter-overlay → filter/filter-overlay}/components/filter-overlay-page-outlet/public-api.d.ts +0 -0
- /package/lib/components/{filter-overlay → filter/filter-overlay}/components/index.d.ts +0 -0
- /package/lib/components/{filter-overlay → filter/filter-overlay}/components/public-api.d.ts +0 -0
- /package/lib/components/{filter-overlay → filter/filter-overlay}/constants/index.d.ts +0 -0
- /package/lib/components/{filter-overlay → filter/filter-overlay}/constants/public-api.d.ts +0 -0
- /package/lib/components/{filter-overlay → filter/filter-overlay}/directives/filter-overlay-back-or-close/public-api.d.ts +0 -0
- /package/lib/components/{filter-overlay → filter/filter-overlay}/directives/filter-overlay-link/public-api.d.ts +0 -0
- /package/lib/components/{filter-overlay → filter/filter-overlay}/directives/filter-overlay-reset/public-api.d.ts +0 -0
- /package/lib/components/{filter-overlay → filter/filter-overlay}/directives/filter-overlay-submit/public-api.d.ts +0 -0
- /package/lib/components/{filter-overlay → filter/filter-overlay}/directives/index.d.ts +0 -0
- /package/lib/components/{filter-overlay → filter/filter-overlay}/directives/public-api.d.ts +0 -0
- /package/lib/components/{filter-overlay → filter/filter-overlay}/filter-overlay.imports.d.ts +0 -0
- /package/lib/components/{filter-overlay → filter/filter-overlay}/public-api.d.ts +0 -0
- /package/lib/components/{filter-overlay → filter/filter-overlay}/services/index.d.ts +0 -0
- /package/lib/components/{filter-overlay → filter/filter-overlay}/services/public-api.d.ts +0 -0
- /package/lib/components/{filter-overlay → filter/filter-overlay}/types/index.d.ts +0 -0
- /package/lib/components/{filter-overlay → filter/filter-overlay}/types/public-api.d.ts +0 -0
- /package/lib/components/{filter-overlay → filter/filter-overlay}/utils/index.d.ts +0 -0
- /package/lib/components/{filter-overlay → filter/filter-overlay}/utils/public-api.d.ts +0 -0
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Directive, InjectionToken, inject } from '@angular/core';
|
|
2
|
+
import { ObserveVisibilityDirective } from '@ethlete/core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@ethlete/core";
|
|
5
|
+
export const RICH_FILTER_BUTTON_SLOT_TOKEN = new InjectionToken('RICH_FILTER_BUTTON_SLOT_TOKEN');
|
|
6
|
+
export class RichFilterButtonSlotDirective {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.visibilityObserver = inject(ObserveVisibilityDirective);
|
|
9
|
+
}
|
|
10
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: RichFilterButtonSlotDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
11
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.5", type: RichFilterButtonSlotDirective, isStandalone: true, selector: "et-rich-filter-button-slot", providers: [
|
|
12
|
+
{
|
|
13
|
+
provide: RICH_FILTER_BUTTON_SLOT_TOKEN,
|
|
14
|
+
useExisting: RichFilterButtonSlotDirective,
|
|
15
|
+
},
|
|
16
|
+
], hostDirectives: [{ directive: i1.ObserveVisibilityDirective }], ngImport: i0 }); }
|
|
17
|
+
}
|
|
18
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: RichFilterButtonSlotDirective, decorators: [{
|
|
19
|
+
type: Directive,
|
|
20
|
+
args: [{
|
|
21
|
+
selector: 'et-rich-filter-button-slot',
|
|
22
|
+
standalone: true,
|
|
23
|
+
providers: [
|
|
24
|
+
{
|
|
25
|
+
provide: RICH_FILTER_BUTTON_SLOT_TOKEN,
|
|
26
|
+
useExisting: RichFilterButtonSlotDirective,
|
|
27
|
+
},
|
|
28
|
+
],
|
|
29
|
+
hostDirectives: [ObserveVisibilityDirective],
|
|
30
|
+
}]
|
|
31
|
+
}] });
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmljaC1maWx0ZXItYnV0dG9uLXNsb3QuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi9jb21wb25lbnRzL2ZpbHRlci9yaWNoLWZpbHRlci9kaXJlY3RpdmVzL3JpY2gtZmlsdGVyLWJ1dHRvbi1zbG90L3JpY2gtZmlsdGVyLWJ1dHRvbi1zbG90LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFFM0QsTUFBTSxDQUFDLE1BQU0sNkJBQTZCLEdBQUcsSUFBSSxjQUFjLENBQzdELCtCQUErQixDQUNoQyxDQUFDO0FBYUYsTUFBTSxPQUFPLDZCQUE2QjtJQVgxQztRQVlXLHVCQUFrQixHQUFHLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0tBQ2xFOzhHQUZZLDZCQUE2QjtrR0FBN0IsNkJBQTZCLHlFQVI3QjtZQUNUO2dCQUNFLE9BQU8sRUFBRSw2QkFBNkI7Z0JBQ3RDLFdBQVcsRUFBRSw2QkFBNkI7YUFDM0M7U0FDRjs7MkZBR1UsNkJBQTZCO2tCQVh6QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSw0QkFBNEI7b0JBQ3RDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLDZCQUE2Qjs0QkFDdEMsV0FBVywrQkFBK0I7eUJBQzNDO3FCQUNGO29CQUNELGNBQWMsRUFBRSxDQUFDLDBCQUEwQixDQUFDO2lCQUM3QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5qZWN0aW9uVG9rZW4sIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2ZVZpc2liaWxpdHlEaXJlY3RpdmUgfSBmcm9tICdAZXRobGV0ZS9jb3JlJztcblxuZXhwb3J0IGNvbnN0IFJJQ0hfRklMVEVSX0JVVFRPTl9TTE9UX1RPS0VOID0gbmV3IEluamVjdGlvblRva2VuPFJpY2hGaWx0ZXJCdXR0b25TbG90RGlyZWN0aXZlPihcbiAgJ1JJQ0hfRklMVEVSX0JVVFRPTl9TTE9UX1RPS0VOJyxcbik7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ2V0LXJpY2gtZmlsdGVyLWJ1dHRvbi1zbG90JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogUklDSF9GSUxURVJfQlVUVE9OX1NMT1RfVE9LRU4sXG4gICAgICB1c2VFeGlzdGluZzogUmljaEZpbHRlckJ1dHRvblNsb3REaXJlY3RpdmUsXG4gICAgfSxcbiAgXSxcbiAgaG9zdERpcmVjdGl2ZXM6IFtPYnNlcnZlVmlzaWJpbGl0eURpcmVjdGl2ZV0sXG59KVxuZXhwb3J0IGNsYXNzIFJpY2hGaWx0ZXJCdXR0b25TbG90RGlyZWN0aXZlIHtcbiAgcmVhZG9ubHkgdmlzaWJpbGl0eU9ic2VydmVyID0gaW5qZWN0KE9ic2VydmVWaXNpYmlsaXR5RGlyZWN0aXZlKTtcbn1cbiJdfQ==
|
package/esm2022/lib/components/filter/rich-filter/directives/rich-filter-content/public-api.mjs
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './rich-filter-content.directive';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3NyYy9saWIvY29tcG9uZW50cy9maWx0ZXIvcmljaC1maWx0ZXIvZGlyZWN0aXZlcy9yaWNoLWZpbHRlci1jb250ZW50L3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpQ0FBaUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcmljaC1maWx0ZXItY29udGVudC5kaXJlY3RpdmUnO1xuIl19
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Directive, InjectionToken, inject } from '@angular/core';
|
|
2
|
+
import { ObserveVisibilityDirective } from '@ethlete/core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@ethlete/core";
|
|
5
|
+
export const RICH_FILTER_CONTENT_TOKEN = new InjectionToken('RICH_FILTER_CONTENT_TOKEN');
|
|
6
|
+
export class RichFilterContentDirective {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.visibilityObserver = inject(ObserveVisibilityDirective);
|
|
9
|
+
}
|
|
10
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: RichFilterContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
11
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.5", type: RichFilterContentDirective, isStandalone: true, selector: "[etRichFilterContent]", providers: [
|
|
12
|
+
{
|
|
13
|
+
provide: RICH_FILTER_CONTENT_TOKEN,
|
|
14
|
+
useExisting: RichFilterContentDirective,
|
|
15
|
+
},
|
|
16
|
+
], hostDirectives: [{ directive: i1.ObserveVisibilityDirective }], ngImport: i0 }); }
|
|
17
|
+
}
|
|
18
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: RichFilterContentDirective, decorators: [{
|
|
19
|
+
type: Directive,
|
|
20
|
+
args: [{
|
|
21
|
+
selector: '[etRichFilterContent]',
|
|
22
|
+
standalone: true,
|
|
23
|
+
providers: [
|
|
24
|
+
{
|
|
25
|
+
provide: RICH_FILTER_CONTENT_TOKEN,
|
|
26
|
+
useExisting: RichFilterContentDirective,
|
|
27
|
+
},
|
|
28
|
+
],
|
|
29
|
+
hostDirectives: [ObserveVisibilityDirective],
|
|
30
|
+
}]
|
|
31
|
+
}] });
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmljaC1maWx0ZXItY29udGVudC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL2NvbXBvbmVudHMvZmlsdGVyL3JpY2gtZmlsdGVyL2RpcmVjdGl2ZXMvcmljaC1maWx0ZXItY29udGVudC9yaWNoLWZpbHRlci1jb250ZW50LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFFM0QsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsSUFBSSxjQUFjLENBQTZCLDJCQUEyQixDQUFDLENBQUM7QUFhckgsTUFBTSxPQUFPLDBCQUEwQjtJQVh2QztRQVlXLHVCQUFrQixHQUFHLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0tBQ2xFOzhHQUZZLDBCQUEwQjtrR0FBMUIsMEJBQTBCLG9FQVIxQjtZQUNUO2dCQUNFLE9BQU8sRUFBRSx5QkFBeUI7Z0JBQ2xDLFdBQVcsRUFBRSwwQkFBMEI7YUFDeEM7U0FDRjs7MkZBR1UsMEJBQTBCO2tCQVh0QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx1QkFBdUI7b0JBQ2pDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLHlCQUF5Qjs0QkFDbEMsV0FBVyw0QkFBNEI7eUJBQ3hDO3FCQUNGO29CQUNELGNBQWMsRUFBRSxDQUFDLDBCQUEwQixDQUFDO2lCQUM3QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5qZWN0aW9uVG9rZW4sIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2ZVZpc2liaWxpdHlEaXJlY3RpdmUgfSBmcm9tICdAZXRobGV0ZS9jb3JlJztcblxuZXhwb3J0IGNvbnN0IFJJQ0hfRklMVEVSX0NPTlRFTlRfVE9LRU4gPSBuZXcgSW5qZWN0aW9uVG9rZW48UmljaEZpbHRlckNvbnRlbnREaXJlY3RpdmU+KCdSSUNIX0ZJTFRFUl9DT05URU5UX1RPS0VOJyk7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tldFJpY2hGaWx0ZXJDb250ZW50XScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IFJJQ0hfRklMVEVSX0NPTlRFTlRfVE9LRU4sXG4gICAgICB1c2VFeGlzdGluZzogUmljaEZpbHRlckNvbnRlbnREaXJlY3RpdmUsXG4gICAgfSxcbiAgXSxcbiAgaG9zdERpcmVjdGl2ZXM6IFtPYnNlcnZlVmlzaWJpbGl0eURpcmVjdGl2ZV0sXG59KVxuZXhwb3J0IGNsYXNzIFJpY2hGaWx0ZXJDb250ZW50RGlyZWN0aXZlIHtcbiAgcmVhZG9ubHkgdmlzaWJpbGl0eU9ic2VydmVyID0gaW5qZWN0KE9ic2VydmVWaXNpYmlsaXR5RGlyZWN0aXZlKTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './rich-filter-top.directive';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3NyYy9saWIvY29tcG9uZW50cy9maWx0ZXIvcmljaC1maWx0ZXIvZGlyZWN0aXZlcy9yaWNoLWZpbHRlci10b3AvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDZCQUE2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9yaWNoLWZpbHRlci10b3AuZGlyZWN0aXZlJztcbiJdfQ==
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Directive, ElementRef, InjectionToken, inject } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export const RICH_FILTER_TOP_TOKEN = new InjectionToken('RICH_FILTER_TOP_TOKEN');
|
|
4
|
+
export class RichFilterTopDirective {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.elementRef = inject(ElementRef);
|
|
7
|
+
}
|
|
8
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: RichFilterTopDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
9
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.5", type: RichFilterTopDirective, isStandalone: true, selector: "[etRichFilterTop]", providers: [
|
|
10
|
+
{
|
|
11
|
+
provide: RICH_FILTER_TOP_TOKEN,
|
|
12
|
+
useExisting: RichFilterTopDirective,
|
|
13
|
+
},
|
|
14
|
+
], ngImport: i0 }); }
|
|
15
|
+
}
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: RichFilterTopDirective, decorators: [{
|
|
17
|
+
type: Directive,
|
|
18
|
+
args: [{
|
|
19
|
+
selector: '[etRichFilterTop]',
|
|
20
|
+
standalone: true,
|
|
21
|
+
providers: [
|
|
22
|
+
{
|
|
23
|
+
provide: RICH_FILTER_TOP_TOKEN,
|
|
24
|
+
useExisting: RichFilterTopDirective,
|
|
25
|
+
},
|
|
26
|
+
],
|
|
27
|
+
}]
|
|
28
|
+
}] });
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmljaC1maWx0ZXItdG9wLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3NyYy9saWIvY29tcG9uZW50cy9maWx0ZXIvcmljaC1maWx0ZXIvZGlyZWN0aXZlcy9yaWNoLWZpbHRlci10b3AvcmljaC1maWx0ZXItdG9wLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUU5RSxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLGNBQWMsQ0FBeUIsdUJBQXVCLENBQUMsQ0FBQztBQVl6RyxNQUFNLE9BQU8sc0JBQXNCO0lBVm5DO1FBV1csZUFBVSxHQUFHLE1BQU0sQ0FBMEIsVUFBVSxDQUFDLENBQUM7S0FDbkU7OEdBRlksc0JBQXNCO2tHQUF0QixzQkFBc0IsZ0VBUHRCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLHFCQUFxQjtnQkFDOUIsV0FBVyxFQUFFLHNCQUFzQjthQUNwQztTQUNGOzsyRkFFVSxzQkFBc0I7a0JBVmxDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUscUJBQXFCOzRCQUM5QixXQUFXLHdCQUF3Qjt5QkFDcEM7cUJBQ0Y7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEluamVjdGlvblRva2VuLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGNvbnN0IFJJQ0hfRklMVEVSX1RPUF9UT0tFTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxSaWNoRmlsdGVyVG9wRGlyZWN0aXZlPignUklDSF9GSUxURVJfVE9QX1RPS0VOJyk7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tldFJpY2hGaWx0ZXJUb3BdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogUklDSF9GSUxURVJfVE9QX1RPS0VOLFxuICAgICAgdXNlRXhpc3Rpbmc6IFJpY2hGaWx0ZXJUb3BEaXJlY3RpdmUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgUmljaEZpbHRlclRvcERpcmVjdGl2ZSB7XG4gIHJlYWRvbmx5IGVsZW1lbnRSZWYgPSBpbmplY3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KEVsZW1lbnRSZWYpO1xufVxuIl19
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export * from './components/public-api';
|
|
2
|
+
export * from './directives/public-api';
|
|
3
|
+
export * from './rich-filter.imports';
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3NyYy9saWIvY29tcG9uZW50cy9maWx0ZXIvcmljaC1maWx0ZXIvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyx1QkFBdUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vcmljaC1maWx0ZXIuaW1wb3J0cyc7XG4iXX0=
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { RichFilterHostComponent } from './components';
|
|
2
|
+
import { RichFilterButtonDirective, RichFilterButtonSlotDirective, RichFilterContentDirective, RichFilterTopDirective, } from './directives';
|
|
3
|
+
export const RichFilterImports = [
|
|
4
|
+
RichFilterHostComponent,
|
|
5
|
+
RichFilterButtonDirective,
|
|
6
|
+
RichFilterButtonSlotDirective,
|
|
7
|
+
RichFilterContentDirective,
|
|
8
|
+
RichFilterTopDirective,
|
|
9
|
+
];
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmljaC1maWx0ZXIuaW1wb3J0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3NyYy9saWIvY29tcG9uZW50cy9maWx0ZXIvcmljaC1maWx0ZXIvcmljaC1maWx0ZXIuaW1wb3J0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDdkQsT0FBTyxFQUNMLHlCQUF5QixFQUN6Qiw2QkFBNkIsRUFDN0IsMEJBQTBCLEVBQzFCLHNCQUFzQixHQUN2QixNQUFNLGNBQWMsQ0FBQztBQUV0QixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRztJQUMvQix1QkFBdUI7SUFDdkIseUJBQXlCO0lBQ3pCLDZCQUE2QjtJQUM3QiwwQkFBMEI7SUFDMUIsc0JBQXNCO0NBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJpY2hGaWx0ZXJIb3N0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzJztcbmltcG9ydCB7XG4gIFJpY2hGaWx0ZXJCdXR0b25EaXJlY3RpdmUsXG4gIFJpY2hGaWx0ZXJCdXR0b25TbG90RGlyZWN0aXZlLFxuICBSaWNoRmlsdGVyQ29udGVudERpcmVjdGl2ZSxcbiAgUmljaEZpbHRlclRvcERpcmVjdGl2ZSxcbn0gZnJvbSAnLi9kaXJlY3RpdmVzJztcblxuZXhwb3J0IGNvbnN0IFJpY2hGaWx0ZXJJbXBvcnRzID0gW1xuICBSaWNoRmlsdGVySG9zdENvbXBvbmVudCxcbiAgUmljaEZpbHRlckJ1dHRvbkRpcmVjdGl2ZSxcbiAgUmljaEZpbHRlckJ1dHRvblNsb3REaXJlY3RpdmUsXG4gIFJpY2hGaWx0ZXJDb250ZW50RGlyZWN0aXZlLFxuICBSaWNoRmlsdGVyVG9wRGlyZWN0aXZlLFxuXSBhcyBjb25zdDtcbiJdfQ==
|
package/esm2022/lib/components/forms/components/slider/components/slider/slider.component.mjs
CHANGED
|
@@ -31,10 +31,10 @@ const getPointerPositionOnPage = (event, id) => {
|
|
|
31
31
|
let point;
|
|
32
32
|
if (isTouchEvent(event)) {
|
|
33
33
|
if (typeof id === 'number') {
|
|
34
|
-
point = findMatchingTouch(event.touches, id) || findMatchingTouch(event.changedTouches, id);
|
|
34
|
+
point = findMatchingTouch(event.touches, id) || findMatchingTouch(event.changedTouches, id) || null;
|
|
35
35
|
}
|
|
36
36
|
else {
|
|
37
|
-
point = event.touches[0] || event.changedTouches[0];
|
|
37
|
+
point = event.touches[0] || event.changedTouches[0] || null;
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
40
|
else {
|
|
@@ -351,4 +351,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImpor
|
|
|
351
351
|
type: Input,
|
|
352
352
|
args: [{ transform: booleanAttribute }]
|
|
353
353
|
}] } });
|
|
354
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3NyYy9saWIvY29tcG9uZW50cy9mb3Jtcy9jb21wb25lbnRzL3NsaWRlci9jb21wb25lbnRzL3NsaWRlci9zbGlkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm1zL2NvbXBvbmVudHMvc2xpZGVyL2NvbXBvbmVudHMvc2xpZGVyL3NsaWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUQsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLEtBQUssRUFFTCxpQkFBaUIsRUFDakIsZ0JBQWdCLEVBQ2hCLE1BQU0sRUFDTixlQUFlLEdBQ2hCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEVBQ0wsZUFBZSxFQUNmLGFBQWEsRUFDYixNQUFNLEVBQ04sU0FBUyxFQUNULEdBQUcsRUFDSCxLQUFLLEVBQ0wsRUFBRSxFQUNGLFNBQVMsRUFDVCxTQUFTLEVBQ1QsSUFBSSxFQUNKLFNBQVMsRUFDVCxHQUFHLEVBQ0gsY0FBYyxHQUNmLE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQkFBc0IsQ0FB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OzJGQUc1QixlQUFlO2tCQWYzQixTQUFTOytCQUNFLFdBQVcsY0FHVCxJQUFJLG1CQUNDLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksUUFDL0I7d0JBQ0osS0FBSyxFQUFFLFdBQVc7d0JBQ2xCLElBQUksRUFBRSxRQUFRO3dCQUNkLE1BQU0sRUFBRSxXQUFXO3FCQUNwQixXQUNRLENBQUMsWUFBWSxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsa0JBQ3hCLENBQUMsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7OEJBbUJyRSxHQUFHO3NCQUROLEtBQUs7Z0JBVUYsR0FBRztzQkFETixLQUFLO2dCQVVGLElBQUk7c0JBRFAsS0FBSztnQkFVRixRQUFRO3NCQURYLEtBQUs7Z0JBVUYsUUFBUTtzQkFEWCxLQUFLO2dCQVVGLGtCQUFrQjtzQkFEckIsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGlvbmFsaXR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2JpZGknO1xuaW1wb3J0IHsgQXN5bmNQaXBlLCBET0NVTUVOVCwgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgaW5qZWN0LFxuICBudW1iZXJBdHRyaWJ1dGUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTGV0RGlyZWN0aXZlLCBjbGFtcCwgY3JlYXRlRGVzdHJveSwgY3JlYXRlUmVhY3RpdmVCaW5kaW5ncyB9IGZyb20gJ0BldGhsZXRlL2NvcmUnO1xuaW1wb3J0IHtcbiAgQmVoYXZpb3JTdWJqZWN0LFxuICBjb21iaW5lTGF0ZXN0LFxuICBmaWx0ZXIsXG4gIGZyb21FdmVudCxcbiAgbWFwLFxuICBtZXJnZSxcbiAgb2YsXG4gIHN0YXJ0V2l0aCxcbiAgc3dpdGNoTWFwLFxuICB0YWtlLFxuICB0YWtlVW50aWwsXG4gIHRhcCxcbiAgd2l0aExhdGVzdEZyb20sXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSU5QVVRfVE9LRU4sIElucHV0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBGb3JtRmllbGRTdGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcyc7XG5cbmNvbnN0IGlzVG91Y2hFdmVudCA9IChldmVudDogRXZlbnQpOiBldmVudCBpcyBUb3VjaEV2ZW50ID0+IHtcbiAgcmV0dXJuIGV2ZW50LnR5cGVbMF0gPT09ICd0Jztcbn07XG5cbmNvbnN0IGdldFRvdWNoSWRGb3JTbGlkZXIgPSAoZXZlbnQ6IFRvdWNoRXZlbnQsIHNsaWRlcjogSFRNTEVsZW1lbnQpID0+IHtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBldmVudC50b3VjaGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudG91Y2hlc1tpXS50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICBpZiAoc2xpZGVyID09PSB0YXJnZXQgfHwgc2xpZGVyLmNvbnRhaW5zKHRhcmdldCkpIHtcbiAgICAgIHJldHVybiBldmVudC50b3VjaGVzW2ldLmlkZW50aWZpZXI7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59O1xuXG5jb25zdCBmaW5kTWF0Y2hpbmdUb3VjaCA9ICh0b3VjaGVzOiBUb3VjaExpc3QsIGlkOiBudW1iZXIpID0+IHtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCB0b3VjaGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKHRvdWNoZXNbaV0uaWRlbnRpZmllciA9PT0gaWQpIHtcbiAgICAgIHJldHVybiB0b3VjaGVzW2ldO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBudWxsO1xufTtcblxuY29uc3QgZ2V0UG9pbnRlclBvc2l0aW9uT25QYWdlID0gKGV2ZW50OiBNb3VzZUV2ZW50IHwgVG91Y2hFdmVudCwgaWQ6IG51bWJlciB8IG51bGwpID0+IHtcbiAgbGV0IHBvaW50OiB7IGNsaWVudFg6IG51bWJlcjsgY2xpZW50WTogbnVtYmVyIH0gfCBudWxsO1xuXG4gIGlmIChpc1RvdWNoRXZlbnQoZXZlbnQpKSB7XG4gICAgaWYgKHR5cGVvZiBpZCA9PT0gJ251bWJlcicpIHtcbiAgICAgIHBvaW50ID0gZmluZE1hdGNoaW5nVG91Y2goZXZlbnQudG91Y2hlcywgaWQpIHx8IGZpbmRNYXRjaGluZ1RvdWNoKGV2ZW50LmNoYW5nZWRUb3VjaGVzLCBpZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHBvaW50ID0gZXZlbnQudG91Y2hlc1swXSB8fCBldmVudC5jaGFuZ2VkVG91Y2hlc1swXTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgcG9pbnQgPSBldmVudDtcbiAgfVxuXG4gIHJldHVybiBwb2ludCA/IHsgeDogcG9pbnQuY2xpZW50WCwgeTogcG9pbnQuY2xpZW50WSB9IDogbnVsbDtcbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2V0LXNsaWRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9zbGlkZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zbGlkZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ2V0LXNsaWRlcicsXG4gICAgcm9sZTogJ3NsaWRlcicsXG4gICAgJ1tpZF0nOiAnX2lucHV0LmlkJyxcbiAgfSxcbiAgaW1wb3J0czogW0xldERpcmVjdGl2ZSwgQXN5bmNQaXBlLCBOZ0lmXSxcbiAgaG9zdERpcmVjdGl2ZXM6IFt7IGRpcmVjdGl2ZTogSW5wdXREaXJlY3RpdmUsIGlucHV0czogWydhdXRvY29tcGxldGUnXSB9XSxcbn0pXG5leHBvcnQgY2xhc3MgU2xpZGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfZWxlbWVudFJlZiA9IGluamVjdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oRWxlbWVudFJlZik7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2RpclNlcnZpY2UgPSBpbmplY3QoRGlyZWN0aW9uYWxpdHkpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9kb2N1bWVudCA9IGluamVjdChET0NVTUVOVCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3kkID0gY3JlYXRlRGVzdHJveSgpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX21vdXNlRG93biQgPSBmcm9tRXZlbnQ8TW91c2VFdmVudD4odGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnbW91c2Vkb3duJywgeyBwYXNzaXZlOiBmYWxzZSB9KTtcbiAgcHJpdmF0ZSByZWFkb25seSBfdG91Y2hTdGFydCQgPSBmcm9tRXZlbnQ8VG91Y2hFdmVudD4odGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAndG91Y2hzdGFydCcsIHtcbiAgICBwYXNzaXZlOiBmYWxzZSxcbiAgfSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2tleURvd24kID0gZnJvbUV2ZW50PEtleWJvYXJkRXZlbnQ+KHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2tleWRvd24nLCB7IHBhc3NpdmU6IGZhbHNlIH0pO1xuICBwcml2YXRlIHJlYWRvbmx5IF9rZXlVcCQgPSBmcm9tRXZlbnQ8S2V5Ym9hcmRFdmVudD4odGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAna2V5dXAnLCB7IHBhc3NpdmU6IGZhbHNlIH0pO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2lucHV0ID0gaW5qZWN0PElucHV0RGlyZWN0aXZlPG51bWJlcj4+KElOUFVUX1RPS0VOKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZm9ybUZpZWxkU3RhdGVTZXJ2aWNlID0gaW5qZWN0KEZvcm1GaWVsZFN0YXRlU2VydmljZSk7XG5cbiAgQElucHV0KClcbiAgZ2V0IG1pbigpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9taW4kLnZhbHVlO1xuICB9XG4gIHNldCBtaW4odmFsdWU6IHVua25vd24pIHtcbiAgICB0aGlzLl9taW4kLm5leHQobnVtYmVyQXR0cmlidXRlKHZhbHVlLCAwKSk7XG4gIH1cbiAgcHJpdmF0ZSBfbWluJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoMCk7XG5cbiAgQElucHV0KClcbiAgZ2V0IG1heCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9tYXgkLnZhbHVlO1xuICB9XG4gIHNldCBtYXgodmFsdWU6IHVua25vd24pIHtcbiAgICB0aGlzLl9tYXgkLm5leHQobnVtYmVyQXR0cmlidXRlKHZhbHVlLCAxMDApKTtcbiAgfVxuICBwcml2YXRlIF9tYXgkID0gbmV3IEJlaGF2aW9yU3ViamVjdCgxMDApO1xuXG4gIEBJbnB1dCgpXG4gIGdldCBzdGVwKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3N0ZXAkLnZhbHVlO1xuICB9XG4gIHNldCBzdGVwKHZhbHVlOiB1bmtub3duKSB7XG4gICAgdGhpcy5fc3RlcCQubmV4dChudW1iZXJBdHRyaWJ1dGUodmFsdWUsIDEpKTtcbiAgfVxuICBwcml2YXRlIF9zdGVwJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoMSk7XG5cbiAgQElucHV0KClcbiAgZ2V0IHZlcnRpY2FsKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl92ZXJ0aWNhbCQudmFsdWU7XG4gIH1cbiAgc2V0IHZlcnRpY2FsKHZhbHVlOiB1bmtub3duKSB7XG4gICAgdGhpcy5fdmVydGljYWwkLm5leHQoYm9vbGVhbkF0dHJpYnV0ZSh2YWx1ZSkpO1xuICB9XG4gIHByaXZhdGUgX3ZlcnRpY2FsJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuXG4gIEBJbnB1dCgpXG4gIGdldCBpbnZlcnRlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5faW52ZXJ0ZWQkLnZhbHVlO1xuICB9XG4gIHNldCBpbnZlcnRlZCh2YWx1ZTogdW5rbm93bikge1xuICAgIHRoaXMuX2ludmVydGVkJC5uZXh0KGJvb2xlYW5BdHRyaWJ1dGUodmFsdWUpKTtcbiAgfVxuICBwcml2YXRlIF9pbnZlcnRlZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcblxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgZ2V0IHJlbmRlclZhbHVlVG9vbHRpcCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fcmVuZGVyVmFsdWVUb29sdGlwJC52YWx1ZTtcbiAgfVxuICBzZXQgcmVuZGVyVmFsdWVUb29sdGlwKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fcmVuZGVyVmFsdWVUb29sdGlwJC5uZXh0KHZhbHVlKTtcbiAgfVxuICBwcml2YXRlIF9yZW5kZXJWYWx1ZVRvb2x0aXAkID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfZGlyJCA9IHRoaXMuX2RpclNlcnZpY2UuY2hhbmdlLnBpcGUoc3RhcnRXaXRoKHRoaXMuX2RpclNlcnZpY2UudmFsdWUpKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF92YWx1ZSQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLl9pbnB1dC52YWx1ZSQsIHRoaXMuX21pbiQsIHRoaXMuX21heCRdKS5waXBlKFxuICAgIG1hcCgoW3ZhbHVlLCBtaW4sIG1heF0pID0+IGNsYW1wKHZhbHVlID8/IDAsIG1pbiwgbWF4KSksXG4gICk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfcm91bmRUb0RlY2ltYWwkID0gdGhpcy5fc3RlcCQucGlwZShcbiAgICBtYXAoKHN0ZXApID0+IHtcbiAgICAgIGNvbnN0IHN0ZXBTdHJpbmcgPSBzdGVwLnRvU3RyaW5nKCk7XG5cbiAgICAgIHJldHVybiBzdGVwU3RyaW5nLmluY2x1ZGVzKCcuJykgPyBzdGVwU3RyaW5nLnNwbGl0KCcuJylbMV0ubGVuZ3RoIDogMDtcbiAgICB9KSxcbiAgKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9wZXJjZW50JCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuX3ZhbHVlJCwgdGhpcy5fbWluJCwgdGhpcy5fbWF4JF0pLnBpcGUoXG4gICAgbWFwKChbdmFsdWUsIG1pbiwgbWF4XSkgPT4gKHZhbHVlIC0gbWluKSAvIChtYXggLSBtaW4pKSxcbiAgKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfc2hvdWxkSW52ZXJ0QXhpcyQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLl92ZXJ0aWNhbCQsIHRoaXMuX2ludmVydGVkJF0pLnBpcGUoXG4gICAgbWFwKChbdmVydGljYWwsIGludmVydGVkXSkgPT4gKHZlcnRpY2FsID8gIWludmVydGVkIDogaW52ZXJ0ZWQpKSxcbiAgKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfc2hvdWxkSW52ZXJ0TW91c2VDb29yZHMkID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5fdmVydGljYWwkLFxuICAgIHRoaXMuX3Nob3VsZEludmVydEF4aXMkLFxuICAgIHRoaXMuX2RpciQsXG4gIF0pLnBpcGUoXG4gICAgbWFwKChbdmVydGljYWwsIHNob3VsZEludmVydEF4aXMsIGRpcl0pID0+IChkaXIgPT09ICdydGwnICYmICF2ZXJ0aWNhbCA/ICFzaG91bGRJbnZlcnRBeGlzIDogc2hvdWxkSW52ZXJ0QXhpcykpLFxuICApO1xuICBwcml2YXRlIHJlYWRvbmx5IF9zbGlkZXJEaW1lbnNpb25zJCA9IG5ldyBCZWhhdmlvclN1YmplY3QodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdmFsdWVUZXh0JCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuX3ZhbHVlJCwgdGhpcy5fcm91bmRUb0RlY2ltYWwkXSkucGlwZShcbiAgICBtYXAoKFt2YWx1ZSwgcm91bmRUb0RlY2ltYWxdKSA9PiB2YWx1ZS50b0ZpeGVkKHJvdW5kVG9EZWNpbWFsKSksXG4gICk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHRyYWNrQmFja2dyb3VuZFN0eWxlcyQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLl9wZXJjZW50JCwgdGhpcy5fdmVydGljYWwkXSkucGlwZShcbiAgICBtYXAoKFtwZXJjZW50LCB2ZXJ0aWNhbF0pID0+IHtcbiAgICAgIGNvbnN0IHNjYWxlID0gdmVydGljYWwgPyBgMSwgJHsxIC0gcGVyY2VudH0sIDFgIDogYCR7MSAtIHBlcmNlbnR9LCAxLCAxYDtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdHJhbnNmb3JtOiBgc2NhbGUzZCgke3NjYWxlfSlgLFxuICAgICAgfTtcbiAgICB9KSxcbiAgKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdHJhY2tGaWxsU3R5bGVzJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuX3BlcmNlbnQkLCB0aGlzLl92ZXJ0aWNhbCRdKS5waXBlKFxuICAgIG1hcCgoW3BlcmNlbnQsIHZlcnRpY2FsXSkgPT4ge1xuICAgICAgY29uc3Qgc2NhbGUgPSB2ZXJ0aWNhbCA/IGAxLCAke3BlcmNlbnR9LCAxYCA6IGAke3BlcmNlbnR9LCAxLCAxYDtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdHJhbnNmb3JtOiBgc2NhbGUzZCgke3NjYWxlfSlgLFxuICAgICAgICBkaXNwbGF5OiBwZXJjZW50ID09PSAwID8gJ25vbmUnIDogJycsXG4gICAgICB9O1xuICAgIH0pLFxuICApO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSB0aHVtYkNvbnRhaW5lclN0eWxlcyQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLl9wZXJjZW50JCxcbiAgICB0aGlzLl9zaG91bGRJbnZlcnRNb3VzZUNvb3JkcyQsXG4gICAgdGhpcy5fdmVydGljYWwkLFxuICAgIHRoaXMuX2RpciQsXG4gIF0pLnBpcGUoXG4gICAgbWFwKChbcGVyY2VudCwgc2hvdWxkSW52ZXJ0TW91c2VDb29yZHMsIHZlcnRpY2FsLCBkaXJdKSA9PiB7XG4gICAgICBjb25zdCBheGlzID0gdmVydGljYWwgPyAnWScgOiAnWCc7XG4gICAgICBjb25zdCBpbnZlcnRPZmZzZXQgPSBkaXIgPT09ICdydGwnICYmICF2ZXJ0aWNhbCA/ICFzaG91bGRJbnZlcnRNb3VzZUNvb3JkcyA6IHNob3VsZEludmVydE1vdXNlQ29vcmRzO1xuICAgICAgY29uc3Qgb2Zmc2V0ID0gKGludmVydE9mZnNldCA/IHBlcmNlbnQgOiAxIC0gcGVyY2VudCkgKiAxMDA7XG4gICAgICBjb25zdCBzaWduID0gdmVydGljYWwgPyAnLScgOiBkaXIgPT09ICdydGwnID8gJycgOiAnLSc7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHRyYW5zZm9ybTogYHRyYW5zbGF0ZSR7YXhpc30oJHtzaWdufSR7b2Zmc2V0fSUpYCxcbiAgICAgIH07XG4gICAgfSksXG4gICk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGlzU2xpZGluZ1ZpYSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PCdrZXlib2FyZCcgfCAncG9pbnRlcicgfCBudWxsPihudWxsKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGRpc2FibGVBbmltYXRpb25zJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdG91Y2hJZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlciB8IG51bGw+KG51bGwpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbGFzdFBvaW50ZXJFdmVudCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50IHwgbnVsbD4obnVsbCk7XG5cbiAgcmVhZG9ubHkgX2JpbmRpbmdzID0gY3JlYXRlUmVhY3RpdmVCaW5kaW5ncyhcbiAgICB7XG4gICAgICBhdHRyaWJ1dGU6ICdhcmlhLW9yaWVudGF0aW9uJyxcbiAgICAgIG9ic2VydmFibGU6IHRoaXMuX3ZlcnRpY2FsJC5waXBlKFxuICAgICAgICBtYXAoKHZlcnRpY2FsKSA9PiAoe1xuICAgICAgICAgIHJlbmRlcjogdHJ1ZSxcbiAgICAgICAgICB2YWx1ZTogdmVydGljYWwgPyAndmVydGljYWwnIDogJ2hvcml6b250YWwnLFxuICAgICAgICB9KSksXG4gICAgICApLFxuICAgIH0sXG4gICAge1xuICAgICAgYXR0cmlidXRlOiAnYXJpYS1kaXNhYmxlZCcsXG4gICAgICBvYnNlcnZhYmxlOiB0aGlzLl9pbnB1dC5kaXNhYmxlZCQsXG4gICAgfSxcbiAgICB7XG4gICAgICBhdHRyaWJ1dGU6ICdhcmlhLXZhbHVlbm93JyxcbiAgICAgIG9ic2VydmFibGU6IHRoaXMuX3ZhbHVlJC5waXBlKG1hcCgodmFsdWUpID0+ICh7IHJlbmRlcjogdHJ1ZSwgdmFsdWUgfSkpKSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGF0dHJpYnV0ZTogJ2FyaWEtdmFsdWVtaW4nLFxuICAgICAgb2JzZXJ2YWJsZTogdGhpcy5fbWluJC5waXBlKG1hcCgodmFsdWUpID0+ICh7IHJlbmRlcjogdHJ1ZSwgdmFsdWUgfSkpKSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGF0dHJpYnV0ZTogJ2FyaWEtdmFsdWVtYXgnLFxuICAgICAgb2JzZXJ2YWJsZTogdGhpcy5fbWF4JC5waXBlKG1hcCgodmFsdWUpID0+ICh7IHJlbmRlcjogdHJ1ZSwgdmFsdWUgfSkpKSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGF0dHJpYnV0ZTogJ2FyaWEtdmFsdWV0ZXh0JyxcbiAgICAgIG9ic2VydmFibGU6IHRoaXMudmFsdWVUZXh0JC5waXBlKG1hcCgodmFsdWUpID0+ICh7IHJlbmRlcjogdHJ1ZSwgdmFsdWUgfSkpKSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGF0dHJpYnV0ZTogJ3RhYmluZGV4JyxcbiAgICAgIG9ic2VydmFibGU6IHRoaXMuX2lucHV0LmRpc2FibGVkJC5waXBlKG1hcCgoZGlzYWJsZWQpID0+ICh7IHJlbmRlcjogdHJ1ZSwgdmFsdWU6IGRpc2FibGVkID8gLTEgOiAwIH0pKSksXG4gICAgfSxcbiAgICB7XG4gICAgICBhdHRyaWJ1dGU6ICdjbGFzcy5ldC1zbGlkZXItLWlzLXNsaWRpbmcnLFxuICAgICAgb2JzZXJ2YWJsZTogdGhpcy5pc1NsaWRpbmdWaWEkLnBpcGUobWFwKChpc1NsaWRpbmdWaWEpID0+ICEhaXNTbGlkaW5nVmlhKSksXG4gICAgfSxcbiAgICB7XG4gICAgICBhdHRyaWJ1dGU6ICdjbGFzcy5ldC1zbGlkZXItLWludmVydGVkJyxcbiAgICAgIG9ic2VydmFibGU6IHRoaXMuX2ludmVydGVkJCxcbiAgICB9LFxuICAgIHtcbiAgICAgIGF0dHJpYnV0ZTogJ2NsYXNzLmV0LXNsaWRlci0tZGlzYWJsZS1hbmltYXRpb25zJyxcbiAgICAgIG9ic2VydmFibGU6IHRoaXMuZGlzYWJsZUFuaW1hdGlvbnMkLFxuICAgIH0sXG4gICAge1xuICAgICAgYXR0cmlidXRlOiAnYXJpYS1sYWJlbGVkYnknLFxuICAgICAgb2JzZXJ2YWJsZTogdGhpcy5fZm9ybUZpZWxkU3RhdGVTZXJ2aWNlLmxhYmVsSWQkLnBpcGUoXG4gICAgICAgIG1hcCgobGFiZWxJZCkgPT4gKHsgcmVuZGVyOiAhIWxhYmVsSWQsIHZhbHVlOiBsYWJlbElkID8/ICcnIH0pKSxcbiAgICAgICksXG4gICAgfSxcbiAgICB7XG4gICAgICBhdHRyaWJ1dGU6ICdhcmlhLWRlc2NyaWJlZGJ5JyxcbiAgICAgIG9ic2VydmFibGU6IHRoaXMuX2Zvcm1GaWVsZFN0YXRlU2VydmljZS5kZXNjcmliZWRCeSQucGlwZShcbiAgICAgICAgbWFwKChkZXNjcmliZWRCeSkgPT4gKHsgcmVuZGVyOiAhIWRlc2NyaWJlZEJ5LCB2YWx1ZTogZGVzY3JpYmVkQnkgPz8gJycgfSkpLFxuICAgICAgKSxcbiAgICB9LFxuICApO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIG1lcmdlKHRoaXMuX21vdXNlRG93biQsIHRoaXMuX3RvdWNoU3RhcnQkKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigoZXZlbnQpID0+IHtcbiAgICAgICAgICBjb25zdCBpc0Rpc2FibGVkID0gdGhpcy5faW5wdXQuZGlzYWJsZWQ7XG4gICAgICAgICAgY29uc3QgaXNTbGlkaW5nID0gISF0aGlzLmlzU2xpZGluZ1ZpYSQudmFsdWU7XG4gICAgICAgICAgY29uc3QgaXNJbnZhbGlkTW91c2VCdXR0b24gPSAhaXNUb3VjaEV2ZW50KGV2ZW50KSAmJiBldmVudC5idXR0b24gIT09IDA7XG5cbiAgICAgICAgICByZXR1cm4gIWlzRGlzYWJsZWQgJiYgIWlzU2xpZGluZyAmJiAhaXNJbnZhbGlkTW91c2VCdXR0b247XG4gICAgICAgIH0pLFxuICAgICAgICBzd2l0Y2hNYXAoKGV2ZW50KSA9PlxuICAgICAgICAgIGNvbWJpbmVMYXRlc3QoW29mKGV2ZW50KSwgdGhpcy5fZnJlc2hTbGlkZXJEaW1lbnNpb25zKCksIHRoaXMuX3Nob3VsZEludmVydE1vdXNlQ29vcmRzJF0pLnBpcGUoXG4gICAgICAgICAgICB0YXAoKFtldmVudCwgc2xpZGVyRGltZW5zaW9ucywgc2hvdWxkSW52ZXJ0TW91c2VDb29yZHNdKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuXG4gICAgICAgICAgICAgIHRoaXMuX2luaXRpYWxpemVTbGlkZShldmVudCwgc2xpZGVyRGltZW5zaW9ucywgc2hvdWxkSW52ZXJ0TW91c2VDb29yZHMpO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgKSxcbiAgICAgICAgKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcblxuICAgIHRoaXMuX2tleURvd24kXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKChldmVudCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGlzRGlzYWJsZWQgPSB0aGlzLl9pbnB1dC5kaXNhYmxlZDtcbiAgICAgICAgICBjb25zdCBpc1NsaWRpbmcgPSB0aGlzLmlzU2xpZGluZ1ZpYSQudmFsdWUgJiYgdGhpcy5pc1NsaWRpbmdWaWEkLnZhbHVlICE9PSAna2V5Ym9hcmQnO1xuICAgICAgICAgIGNvbnN0IGlzTW9kaWZpZXJQcmVzc2VkID0gZXZlbnQuYWx0S2V5IHx8IGV2ZW50LmN0cmxLZXkgfHwgZXZlbnQubWV0YUtleSB8fCBldmVudC5zaGlmdEtleSB8fCBldmVudC5tZXRhS2V5O1xuXG4gICAgICAgICAgcmV0dXJuICFpc0Rpc2FibGVkICYmICFpc1NsaWRpbmcgJiYgIWlzTW9kaWZpZXJQcmVzc2VkO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgICAgd2l0aExhdGVzdEZyb20odGhpcy5fZGlyJCksXG4gICAgICAgIHRhcCgoW2V2ZW50LCBkaXJdKSA9PiB0aGlzLl91cGRhdGVTbGlkZXJWaWFLZXlib2FyZChldmVudCwgZGlyKSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG5cbiAgICB0aGlzLl9rZXlVcCRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgICBmaWx0ZXIoKCkgPT4gdGhpcy5pc1NsaWRpbmdWaWEkLnZhbHVlID09PSAna2V5Ym9hcmQnKSxcbiAgICAgICAgdGFwKCgpID0+IHRoaXMuaXNTbGlkaW5nVmlhJC5uZXh0KG51bGwpKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcblxuICAgIGZyb21FdmVudCh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdibHVyJylcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuX2lucHV0Ll9tYXJrQXNUb3VjaGVkKCk7XG4gICAgICAgICAgdGhpcy5faW5wdXQuX3NldFNob3VsZERpc3BsYXlFcnJvcih0cnVlKTtcbiAgICAgICAgfSksXG4gICAgICAgIHRha2UoMSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIF9pbml0aWFsaXplU2xpZGUoXG4gICAgZXZlbnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50LFxuICAgIHNsaWRlckRpbWVuc2lvbnM6IERPTVJlY3QsXG4gICAgc2hvdWxkSW52ZXJ0TW91c2VDb29yZHM6IGJvb2xlYW4sXG4gICkge1xuICAgIGlmIChpc1RvdWNoRXZlbnQoZXZlbnQpKSB7XG4gICAgICB0aGlzLnRvdWNoSWQkLm5leHQoZ2V0VG91Y2hJZEZvclNsaWRlcihldmVudCwgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KSk7XG4gICAgfVxuXG4gICAgY29uc3QgcG9pbnRlclBvc2l0aW9uID0gZ2V0UG9pbnRlclBvc2l0aW9uT25QYWdlKGV2ZW50LCB0aGlzLnRvdWNoSWQkLnZhbHVlKTtcblxuICAgIGlmICghcG9pbnRlclBvc2l0aW9uKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5pc1NsaWRpbmdWaWEkLm5leHQoJ3BvaW50ZXInKTtcblxuICAgIHRoaXMuX2JpbmRHbG9iYWxFdmVudHMoZXZlbnQpO1xuICAgIHRoaXMuX3VwZGF0ZVZhbHVlRnJvbVBvc2l0aW9uKHBvaW50ZXJQb3NpdGlvbiwgc2xpZGVyRGltZW5zaW9ucywgc2hvdWxkSW52ZXJ0TW91c2VDb29yZHMpO1xuICAgIHRoaXMuX2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5jdXJzb3IgPSAnZ3JhYmJpbmcnO1xuXG4gICAgaWYgKGV2ZW50LmNhbmNlbGFibGUpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfYmluZEdsb2JhbEV2ZW50cyhldmVudDogTW91c2VFdmVudCB8IFRvdWNoRXZlbnQpIHtcbiAgICBjb25zdCBpc1RvdWNoID0gaXNUb3VjaEV2ZW50KGV2ZW50KTtcbiAgICBjb25zdCBtb3ZlRXZlbnROYW1lID0gaXNUb3VjaCA/ICd0b3VjaG1vdmUnIDogJ21vdXNlbW92ZSc7XG4gICAgY29uc3QgZW5kRXZlbnROYW1lID0gaXNUb3VjaCA/ICd0b3VjaGVuZCcgOiAnbW91c2V1cCc7XG5cbiAgICBjb25zdCBldmVudENvbmZpZyA9IHsgcGFzc2l2ZTogZmFsc2UgfTtcblxuICAgIGNvbnN0IHBvaW50ZXJVcCQgPSBmcm9tRXZlbnQ8TW91c2VFdmVudCB8IFRvdWNoRXZlbnQ+KHdpbmRvdywgZW5kRXZlbnROYW1lLCBldmVudENvbmZpZyk7XG4gICAgY29uc3QgdG91Y2hDYW5jZWwkID0gZnJvbUV2ZW50PFRvdWNoRXZlbnQ+KHdpbmRvdywgJ3RvdWNoY2FuY2VsJywgZXZlbnRDb25maWcpO1xuICAgIGNvbnN0IHdpbmRvd0JsdXIkID0gZnJvbUV2ZW50PEZvY3VzRXZlbnQ+KHdpbmRvdywgJ2JsdXInKTtcblxuICAgIGNvbnN0IHNsaWRlRW5kJCA9IG1lcmdlKHBvaW50ZXJVcCQsIHRvdWNoQ2FuY2VsJCwgd2luZG93Qmx1ciQpO1xuXG4gICAgZnJvbUV2ZW50PE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50Pih3aW5kb3csIG1vdmVFdmVudE5hbWUsIGV2ZW50Q29uZmlnKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbChzbGlkZUVuZCQpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLl9zbGlkZXJEaW1lbnNpb25zJCwgdGhpcy5fc2hvdWxkSW52ZXJ0TW91c2VDb29yZHMkKSxcbiAgICAgICAgdGFwKChbZXZlbnQsIHNsaWRlckRpbWVuc2lvbnMsIHNob3VsZEludmVydE1vdXNlQ29vcmRzXSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHBvaW50ZXJQb3NpdGlvbiA9IGdldFBvaW50ZXJQb3NpdGlvbk9uUGFnZShldmVudCwgdGhpcy50b3VjaElkJC52YWx1ZSk7XG5cbiAgICAgICAgICBpZiAoIXBvaW50ZXJQb3NpdGlvbikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICghdGhpcy5kaXNhYmxlQW5pbWF0aW9ucyQudmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZUFuaW1hdGlvbnMkLm5leHQodHJ1ZSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGhpcy5fdXBkYXRlVmFsdWVGcm9tUG9zaXRpb24ocG9pbnRlclBvc2l0aW9uLCBzbGlkZXJEaW1lbnNpb25zLCBzaG91bGRJbnZlcnRNb3VzZUNvb3Jkcyk7XG4gICAgICAgIH0pLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgc2xpZGVFbmQkXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgdGFwKChldmVudCkgPT4ge1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgdGhpcy5pc1NsaWRpbmdWaWEkLm5leHQobnVsbCk7XG4gICAgICAgICAgdGhpcy50b3VjaElkJC5uZXh0KG51bGwpO1xuICAgICAgICAgIHRoaXMuX2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5jdXJzb3IgPSAnJztcbiAgICAgICAgICB0aGlzLmRpc2FibGVBbmltYXRpb25zJC5uZXh0KGZhbHNlKTtcbiAgICAgICAgfSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVWYWx1ZUZyb21Qb3NpdGlvbiA9IChcbiAgICBwb3M6IHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfSxcbiAgICBzbGlkZXJEaW1lbnNpb25zOiBET01SZWN0LFxuICAgIHNob3VsZEludmVydE1vdXNlQ29vcmRzOiBib29sZWFuLFxuICApID0+IHtcbiAgICBjb25zdCBvZmZzZXQgPSB0aGlzLnZlcnRpY2FsID8gc2xpZGVyRGltZW5zaW9ucy50b3AgOiBzbGlkZXJEaW1lbnNpb25zLmxlZnQ7XG4gICAgY29uc3Qgc2l6ZSA9IHRoaXMudmVydGljYWwgPyBzbGlkZXJEaW1lbnNpb25zLmhlaWdodCA6IHNsaWRlckRpbWVuc2lvbnMud2lkdGg7XG4gICAgY29uc3QgcG9zQ29tcG9uZW50ID0gdGhpcy52ZXJ0aWNhbCA/IHBvcy55IDogcG9zLng7XG5cbiAgICBsZXQgcGVyY2VudCA9IGNsYW1wKChwb3NDb21wb25lbnQgLSBvZmZzZXQpIC8gc2l6ZSwgMCwgMSk7XG5cbiAgICBpZiAoc2hvdWxkSW52ZXJ0TW91c2VDb29yZHMpIHtcbiAgICAgIHBlcmNlbnQgPSAxIC0gcGVyY2VudDtcbiAgICB9XG5cbiAgICBpZiAocGVyY2VudCA9PT0gMCkge1xuICAgICAgdGhpcy5faW5wdXQuX3VwZGF0ZVZhbHVlKHRoaXMubWluKTtcbiAgICB9IGVsc2UgaWYgKHBlcmNlbnQgPT09IDEpIHtcbiAgICAgIHRoaXMuX2lucHV0Ll91cGRhdGVWYWx1ZSh0aGlzLm1heCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGV4YWN0VmFsdWUgPSBwZXJjZW50ICogKHRoaXMubWF4IC0gdGhpcy5taW4pICsgdGhpcy5taW47XG4gICAgICBjb25zdCBjbG9zZXN0VmFsdWUgPSBNYXRoLnJvdW5kKChleGFjdFZhbHVlIC0gdGhpcy5taW4pIC8gdGhpcy5zdGVwKSAqIHRoaXMuc3RlcCArIHRoaXMubWluO1xuICAgICAgdGhpcy5faW5wdXQuX3VwZGF0ZVZhbHVlKGNsYW1wKGNsb3Nlc3RWYWx1ZSwgdGhpcy5taW4sIHRoaXMubWF4KSk7XG4gICAgfVxuXG4gICAgdGhpcy5faW5wdXQuX21hcmtBc1RvdWNoZWQoKTtcbiAgICB0aGlzLl9pbnB1dC5fc2V0U2hvdWxkRGlzcGxheUVycm9yKHRydWUpO1xuICB9O1xuXG4gIHByaXZhdGUgX3VwZGF0ZVNsaWRlclZpYUtleWJvYXJkKGV2ZW50OiBLZXlib2FyZEV2ZW50LCBkaXI6IHN0cmluZykge1xuICAgIHN3aXRjaCAoZXZlbnQua2V5KSB7XG4gICAgICBjYXNlICdQYWdlVXAnOlxuICAgICAgICB0aGlzLl91cGRhdGVTbGlkZXJWYWx1ZUJ5KDEwKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdQYWdlRG93bic6XG4gICAgICAgIHRoaXMuX3VwZGF0ZVNsaWRlclZhbHVlQnkoLTEwKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdFbmQnOlxuICAgICAgICB0aGlzLl9pbnB1dC5fdXBkYXRlVmFsdWUodGhpcy5tYXgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0hvbWUnOlxuICAgICAgICB0aGlzLl9pbnB1dC5fdXBkYXRlVmFsdWUodGhpcy5taW4pO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0Fycm93TGVmdCc6XG4gICAgICAgIHRoaXMuX3VwZGF0ZVNsaWRlclZhbHVlQnkoZGlyID09PSAncnRsJyA/IDEgOiAtMSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnQXJyb3dVcCc6XG4gICAgICAgIHRoaXMuX3VwZGF0ZVNsaWRlclZhbHVlQnkoMSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnQXJyb3dSaWdodCc6XG4gICAgICAgIHRoaXMuX3VwZGF0ZVNsaWRlclZhbHVlQnkoZGlyID09PSAncnRsJyA/IC0xIDogMSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnQXJyb3dEb3duJzpcbiAgICAgICAgdGhpcy5fdXBkYXRlU2xpZGVyVmFsdWVCeSgtMSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy5pc1NsaWRpbmdWaWEkLm5leHQoJ2tleWJvYXJkJyk7XG5cbiAgICB0aGlzLl9pbnB1dC5fbWFya0FzVG91Y2hlZCgpO1xuICAgIHRoaXMuX2lucHV0Ll9zZXRTaG91bGREaXNwbGF5RXJyb3IodHJ1ZSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF91cGRhdGVTbGlkZXJWYWx1ZUJ5KG9mZnNldDogbnVtYmVyKSB7XG4gICAgY29uc3QgY3VycmVudFZhbHVlID0gdGhpcy5faW5wdXQudmFsdWUgfHwgMDtcbiAgICBjb25zdCB2YWx1ZSA9IGNsYW1wKGN1cnJlbnRWYWx1ZSArIHRoaXMuc3RlcCAqIG9mZnNldCwgdGhpcy5taW4sIHRoaXMubWF4KTtcblxuICAgIHRoaXMuX2lucHV0Ll91cGRhdGVWYWx1ZSh2YWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIF9mcmVzaFNsaWRlckRpbWVuc2lvbnMoKSB7XG4gICAgdGhpcy5fc2xpZGVyRGltZW5zaW9ucyQubmV4dCh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkpO1xuXG4gICAgcmV0dXJuIHRoaXMuX3NsaWRlckRpbWVuc2lvbnMkO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZXQtc2xpZGVyLXRyYWNrLWNvbnRhaW5lclwiPlxuICA8ZGl2XG4gICAgKm5nSWY9XCJ0cmFja0JhY2tncm91bmRTdHlsZXMkIHwgYXN5bmMgYXMgdHJhY2tCYWNrZ3JvdW5kU3R5bGVzXCJcbiAgICBbc3R5bGUudHJhbnNmb3JtXT1cInRyYWNrQmFja2dyb3VuZFN0eWxlcy50cmFuc2Zvcm1cIlxuICAgIGNsYXNzPVwiZXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmRcIlxuICA+PC9kaXY+XG4gIDxkaXZcbiAgICAqbmdJZj1cInRyYWNrRmlsbFN0eWxlcyQgfCBhc3luYyBhcyB0cmFja0ZpbGxTdHlsZXNcIlxuICAgIFtzdHlsZS50cmFuc2Zvcm1dPVwidHJhY2tGaWxsU3R5bGVzLnRyYW5zZm9ybVwiXG4gICAgW3N0eWxlLmRpc3BsYXldPVwidHJhY2tGaWxsU3R5bGVzLmRpc3BsYXlcIlxuICAgIGNsYXNzPVwiZXQtc2xpZGVyLXRyYWNrLWZpbGxcIlxuICA+PC9kaXY+XG48L2Rpdj5cblxuPGRpdlxuICAqbmdJZj1cInRodW1iQ29udGFpbmVyU3R5bGVzJCB8IGFzeW5jIGFzIHRodW1iQ29udGFpbmVyU3R5bGVzXCJcbiAgW3N0eWxlLnRyYW5zZm9ybV09XCJ0aHVtYkNvbnRhaW5lclN0eWxlcy50cmFuc2Zvcm1cIlxuICBjbGFzcz1cImV0LXNsaWRlci10aHVtYi1jb250YWluZXJcIlxuPlxuICA8ZGl2IGNsYXNzPVwiZXQtc2xpZGVyLXRodW1iXCI+XG4gICAgPGRpdiAqbmdJZj1cInJlbmRlclZhbHVlVG9vbHRpcFwiIGNsYXNzPVwiZXQtc2xpZGVyLXZhbHVlLXRvb2x0aXBcIj57eyB2YWx1ZVRleHQkIHwgYXN5bmMgfX08L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
354
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3NyYy9saWIvY29tcG9uZW50cy9mb3Jtcy9jb21wb25lbnRzL3NsaWRlci9jb21wb25lbnRzL3NsaWRlci9zbGlkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm1zL2NvbXBvbmVudHMvc2xpZGVyL2NvbXBvbmVudHMvc2xpZGVyL3NsaWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUQsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLEtBQUssRUFFTCxpQkFBaUIsRUFDakIsZ0JBQWdCLEVBQ2hCLE1BQU0sRUFDTixlQUFlLEdBQ2hCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEVBQ0wsZUFBZSxFQUNmLGFBQWEsRUFDYixNQUFNLEVBQ04sU0FBUyxFQUNULEdBQUcsRUFDSCxLQUFLLEVBQ0wsRUFBRSxFQUNGLFNBQVMsRUFDVCxTQUFTLEVBQ1QsSUFBSSxFQUNKLFNBQVMsRUFDVCxHQUFHLEVBQ0gsY0FBYyxHQUNmLE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQkFBc0IsQ0FB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RDBCLFNBQVMsOENBQUUsSUFBSTs7MkZBRzVCLGVBQWU7a0JBZjNCLFNBQVM7K0JBQ0UsV0FBVyxjQUdULElBQUksbUJBQ0MsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxRQUMvQjt3QkFDSixLQUFLLEVBQUUsV0FBVzt3QkFDbEIsSUFBSSxFQUFFLFFBQVE7d0JBQ2QsTUFBTSxFQUFFLFdBQVc7cUJBQ3BCLFdBQ1EsQ0FBQyxZQUFZLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxrQkFDeEIsQ0FBQyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQzs4QkFtQnJFLEdBQUc7c0JBRE4sS0FBSztnQkFVRixHQUFHO3NCQUROLEtBQUs7Z0JBVUYsSUFBSTtzQkFEUCxLQUFLO2dCQVVGLFFBQVE7c0JBRFgsS0FBSztnQkFVRixRQUFRO3NCQURYLEtBQUs7Z0JBVUYsa0JBQWtCO3NCQURyQixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aW9uYWxpdHkgfSBmcm9tICdAYW5ndWxhci9jZGsvYmlkaSc7XG5pbXBvcnQgeyBBc3luY1BpcGUsIERPQ1VNRU5ULCBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBib29sZWFuQXR0cmlidXRlLFxuICBpbmplY3QsXG4gIG51bWJlckF0dHJpYnV0ZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMZXREaXJlY3RpdmUsIGNsYW1wLCBjcmVhdGVEZXN0cm95LCBjcmVhdGVSZWFjdGl2ZUJpbmRpbmdzIH0gZnJvbSAnQGV0aGxldGUvY29yZSc7XG5pbXBvcnQge1xuICBCZWhhdmlvclN1YmplY3QsXG4gIGNvbWJpbmVMYXRlc3QsXG4gIGZpbHRlcixcbiAgZnJvbUV2ZW50LFxuICBtYXAsXG4gIG1lcmdlLFxuICBvZixcbiAgc3RhcnRXaXRoLFxuICBzd2l0Y2hNYXAsXG4gIHRha2UsXG4gIHRha2VVbnRpbCxcbiAgdGFwLFxuICB3aXRoTGF0ZXN0RnJvbSxcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJTlBVVF9UT0tFTiwgSW5wdXREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi8uLi9kaXJlY3RpdmVzJztcbmltcG9ydCB7IEZvcm1GaWVsZFN0YXRlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzJztcblxuY29uc3QgaXNUb3VjaEV2ZW50ID0gKGV2ZW50OiBFdmVudCk6IGV2ZW50IGlzIFRvdWNoRXZlbnQgPT4ge1xuICByZXR1cm4gZXZlbnQudHlwZVswXSA9PT0gJ3QnO1xufTtcblxuY29uc3QgZ2V0VG91Y2hJZEZvclNsaWRlciA9IChldmVudDogVG91Y2hFdmVudCwgc2xpZGVyOiBIVE1MRWxlbWVudCkgPT4ge1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGV2ZW50LnRvdWNoZXMubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC50b3VjaGVzW2ldIS50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICBpZiAoc2xpZGVyID09PSB0YXJnZXQgfHwgc2xpZGVyLmNvbnRhaW5zKHRhcmdldCkpIHtcbiAgICAgIHJldHVybiBldmVudC50b3VjaGVzW2ldIS5pZGVudGlmaWVyO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBudWxsO1xufTtcblxuY29uc3QgZmluZE1hdGNoaW5nVG91Y2ggPSAodG91Y2hlczogVG91Y2hMaXN0LCBpZDogbnVtYmVyKSA9PiB7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgdG91Y2hlcy5sZW5ndGg7IGkrKykge1xuICAgIGlmICh0b3VjaGVzW2ldIS5pZGVudGlmaWVyID09PSBpZCkge1xuICAgICAgcmV0dXJuIHRvdWNoZXNbaV07XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59O1xuXG5jb25zdCBnZXRQb2ludGVyUG9zaXRpb25PblBhZ2UgPSAoZXZlbnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50LCBpZDogbnVtYmVyIHwgbnVsbCkgPT4ge1xuICBsZXQgcG9pbnQ6IHsgY2xpZW50WDogbnVtYmVyOyBjbGllbnRZOiBudW1iZXIgfSB8IG51bGw7XG5cbiAgaWYgKGlzVG91Y2hFdmVudChldmVudCkpIHtcbiAgICBpZiAodHlwZW9mIGlkID09PSAnbnVtYmVyJykge1xuICAgICAgcG9pbnQgPSBmaW5kTWF0Y2hpbmdUb3VjaChldmVudC50b3VjaGVzLCBpZCkgfHwgZmluZE1hdGNoaW5nVG91Y2goZXZlbnQuY2hhbmdlZFRvdWNoZXMsIGlkKSB8fCBudWxsO1xuICAgIH0gZWxzZSB7XG4gICAgICBwb2ludCA9IGV2ZW50LnRvdWNoZXNbMF0gfHwgZXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0gfHwgbnVsbDtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgcG9pbnQgPSBldmVudDtcbiAgfVxuXG4gIHJldHVybiBwb2ludCA/IHsgeDogcG9pbnQuY2xpZW50WCwgeTogcG9pbnQuY2xpZW50WSB9IDogbnVsbDtcbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2V0LXNsaWRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9zbGlkZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zbGlkZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ2V0LXNsaWRlcicsXG4gICAgcm9sZTogJ3NsaWRlcicsXG4gICAgJ1tpZF0nOiAnX2lucHV0LmlkJyxcbiAgfSxcbiAgaW1wb3J0czogW0xldERpcmVjdGl2ZSwgQXN5bmNQaXBlLCBOZ0lmXSxcbiAgaG9zdERpcmVjdGl2ZXM6IFt7IGRpcmVjdGl2ZTogSW5wdXREaXJlY3RpdmUsIGlucHV0czogWydhdXRvY29tcGxldGUnXSB9XSxcbn0pXG5leHBvcnQgY2xhc3MgU2xpZGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfZWxlbWVudFJlZiA9IGluamVjdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oRWxlbWVudFJlZik7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2RpclNlcnZpY2UgPSBpbmplY3QoRGlyZWN0aW9uYWxpdHkpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9kb2N1bWVudCA9IGluamVjdChET0NVTUVOVCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3kkID0gY3JlYXRlRGVzdHJveSgpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX21vdXNlRG93biQgPSBmcm9tRXZlbnQ8TW91c2VFdmVudD4odGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnbW91c2Vkb3duJywgeyBwYXNzaXZlOiBmYWxzZSB9KTtcbiAgcHJpdmF0ZSByZWFkb25seSBfdG91Y2hTdGFydCQgPSBmcm9tRXZlbnQ8VG91Y2hFdmVudD4odGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAndG91Y2hzdGFydCcsIHtcbiAgICBwYXNzaXZlOiBmYWxzZSxcbiAgfSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2tleURvd24kID0gZnJvbUV2ZW50PEtleWJvYXJkRXZlbnQ+KHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2tleWRvd24nLCB7IHBhc3NpdmU6IGZhbHNlIH0pO1xuICBwcml2YXRlIHJlYWRvbmx5IF9rZXlVcCQgPSBmcm9tRXZlbnQ8S2V5Ym9hcmRFdmVudD4odGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAna2V5dXAnLCB7IHBhc3NpdmU6IGZhbHNlIH0pO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2lucHV0ID0gaW5qZWN0PElucHV0RGlyZWN0aXZlPG51bWJlcj4+KElOUFVUX1RPS0VOKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZm9ybUZpZWxkU3RhdGVTZXJ2aWNlID0gaW5qZWN0KEZvcm1GaWVsZFN0YXRlU2VydmljZSk7XG5cbiAgQElucHV0KClcbiAgZ2V0IG1pbigpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9taW4kLnZhbHVlO1xuICB9XG4gIHNldCBtaW4odmFsdWU6IHVua25vd24pIHtcbiAgICB0aGlzLl9taW4kLm5leHQobnVtYmVyQXR0cmlidXRlKHZhbHVlLCAwKSk7XG4gIH1cbiAgcHJpdmF0ZSBfbWluJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoMCk7XG5cbiAgQElucHV0KClcbiAgZ2V0IG1heCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9tYXgkLnZhbHVlO1xuICB9XG4gIHNldCBtYXgodmFsdWU6IHVua25vd24pIHtcbiAgICB0aGlzLl9tYXgkLm5leHQobnVtYmVyQXR0cmlidXRlKHZhbHVlLCAxMDApKTtcbiAgfVxuICBwcml2YXRlIF9tYXgkID0gbmV3IEJlaGF2aW9yU3ViamVjdCgxMDApO1xuXG4gIEBJbnB1dCgpXG4gIGdldCBzdGVwKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3N0ZXAkLnZhbHVlO1xuICB9XG4gIHNldCBzdGVwKHZhbHVlOiB1bmtub3duKSB7XG4gICAgdGhpcy5fc3RlcCQubmV4dChudW1iZXJBdHRyaWJ1dGUodmFsdWUsIDEpKTtcbiAgfVxuICBwcml2YXRlIF9zdGVwJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoMSk7XG5cbiAgQElucHV0KClcbiAgZ2V0IHZlcnRpY2FsKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl92ZXJ0aWNhbCQudmFsdWU7XG4gIH1cbiAgc2V0IHZlcnRpY2FsKHZhbHVlOiB1bmtub3duKSB7XG4gICAgdGhpcy5fdmVydGljYWwkLm5leHQoYm9vbGVhbkF0dHJpYnV0ZSh2YWx1ZSkpO1xuICB9XG4gIHByaXZhdGUgX3ZlcnRpY2FsJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuXG4gIEBJbnB1dCgpXG4gIGdldCBpbnZlcnRlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5faW52ZXJ0ZWQkLnZhbHVlO1xuICB9XG4gIHNldCBpbnZlcnRlZCh2YWx1ZTogdW5rbm93bikge1xuICAgIHRoaXMuX2ludmVydGVkJC5uZXh0KGJvb2xlYW5BdHRyaWJ1dGUodmFsdWUpKTtcbiAgfVxuICBwcml2YXRlIF9pbnZlcnRlZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcblxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgZ2V0IHJlbmRlclZhbHVlVG9vbHRpcCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fcmVuZGVyVmFsdWVUb29sdGlwJC52YWx1ZTtcbiAgfVxuICBzZXQgcmVuZGVyVmFsdWVUb29sdGlwKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fcmVuZGVyVmFsdWVUb29sdGlwJC5uZXh0KHZhbHVlKTtcbiAgfVxuICBwcml2YXRlIF9yZW5kZXJWYWx1ZVRvb2x0aXAkID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfZGlyJCA9IHRoaXMuX2RpclNlcnZpY2UuY2hhbmdlLnBpcGUoc3RhcnRXaXRoKHRoaXMuX2RpclNlcnZpY2UudmFsdWUpKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF92YWx1ZSQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLl9pbnB1dC52YWx1ZSQsIHRoaXMuX21pbiQsIHRoaXMuX21heCRdKS5waXBlKFxuICAgIG1hcCgoW3ZhbHVlLCBtaW4sIG1heF0pID0+IGNsYW1wKHZhbHVlID8/IDAsIG1pbiwgbWF4KSksXG4gICk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfcm91bmRUb0RlY2ltYWwkID0gdGhpcy5fc3RlcCQucGlwZShcbiAgICBtYXAoKHN0ZXApID0+IHtcbiAgICAgIGNvbnN0IHN0ZXBTdHJpbmcgPSBzdGVwLnRvU3RyaW5nKCk7XG5cbiAgICAgIHJldHVybiBzdGVwU3RyaW5nLmluY2x1ZGVzKCcuJykgPyBzdGVwU3RyaW5nLnNwbGl0KCcuJylbMV0hLmxlbmd0aCA6IDA7XG4gICAgfSksXG4gICk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfcGVyY2VudCQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLl92YWx1ZSQsIHRoaXMuX21pbiQsIHRoaXMuX21heCRdKS5waXBlKFxuICAgIG1hcCgoW3ZhbHVlLCBtaW4sIG1heF0pID0+ICh2YWx1ZSAtIG1pbikgLyAobWF4IC0gbWluKSksXG4gICk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3Nob3VsZEludmVydEF4aXMkID0gY29tYmluZUxhdGVzdChbdGhpcy5fdmVydGljYWwkLCB0aGlzLl9pbnZlcnRlZCRdKS5waXBlKFxuICAgIG1hcCgoW3ZlcnRpY2FsLCBpbnZlcnRlZF0pID0+ICh2ZXJ0aWNhbCA/ICFpbnZlcnRlZCA6IGludmVydGVkKSksXG4gICk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3Nob3VsZEludmVydE1vdXNlQ29vcmRzJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMuX3ZlcnRpY2FsJCxcbiAgICB0aGlzLl9zaG91bGRJbnZlcnRBeGlzJCxcbiAgICB0aGlzLl9kaXIkLFxuICBdKS5waXBlKFxuICAgIG1hcCgoW3ZlcnRpY2FsLCBzaG91bGRJbnZlcnRBeGlzLCBkaXJdKSA9PiAoZGlyID09PSAncnRsJyAmJiAhdmVydGljYWwgPyAhc2hvdWxkSW52ZXJ0QXhpcyA6IHNob3VsZEludmVydEF4aXMpKSxcbiAgKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfc2xpZGVyRGltZW5zaW9ucyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHZhbHVlVGV4dCQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLl92YWx1ZSQsIHRoaXMuX3JvdW5kVG9EZWNpbWFsJF0pLnBpcGUoXG4gICAgbWFwKChbdmFsdWUsIHJvdW5kVG9EZWNpbWFsXSkgPT4gdmFsdWUudG9GaXhlZChyb3VuZFRvRGVjaW1hbCkpLFxuICApO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSB0cmFja0JhY2tncm91bmRTdHlsZXMkID0gY29tYmluZUxhdGVzdChbdGhpcy5fcGVyY2VudCQsIHRoaXMuX3ZlcnRpY2FsJF0pLnBpcGUoXG4gICAgbWFwKChbcGVyY2VudCwgdmVydGljYWxdKSA9PiB7XG4gICAgICBjb25zdCBzY2FsZSA9IHZlcnRpY2FsID8gYDEsICR7MSAtIHBlcmNlbnR9LCAxYCA6IGAkezEgLSBwZXJjZW50fSwgMSwgMWA7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHRyYW5zZm9ybTogYHNjYWxlM2QoJHtzY2FsZX0pYCxcbiAgICAgIH07XG4gICAgfSksXG4gICk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHRyYWNrRmlsbFN0eWxlcyQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLl9wZXJjZW50JCwgdGhpcy5fdmVydGljYWwkXSkucGlwZShcbiAgICBtYXAoKFtwZXJjZW50LCB2ZXJ0aWNhbF0pID0+IHtcbiAgICAgIGNvbnN0IHNjYWxlID0gdmVydGljYWwgPyBgMSwgJHtwZXJjZW50fSwgMWAgOiBgJHtwZXJjZW50fSwgMSwgMWA7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHRyYW5zZm9ybTogYHNjYWxlM2QoJHtzY2FsZX0pYCxcbiAgICAgICAgZGlzcGxheTogcGVyY2VudCA9PT0gMCA/ICdub25lJyA6ICcnLFxuICAgICAgfTtcbiAgICB9KSxcbiAgKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdGh1bWJDb250YWluZXJTdHlsZXMkID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5fcGVyY2VudCQsXG4gICAgdGhpcy5fc2hvdWxkSW52ZXJ0TW91c2VDb29yZHMkLFxuICAgIHRoaXMuX3ZlcnRpY2FsJCxcbiAgICB0aGlzLl9kaXIkLFxuICBdKS5waXBlKFxuICAgIG1hcCgoW3BlcmNlbnQsIHNob3VsZEludmVydE1vdXNlQ29vcmRzLCB2ZXJ0aWNhbCwgZGlyXSkgPT4ge1xuICAgICAgY29uc3QgYXhpcyA9IHZlcnRpY2FsID8gJ1knIDogJ1gnO1xuICAgICAgY29uc3QgaW52ZXJ0T2Zmc2V0ID0gZGlyID09PSAncnRsJyAmJiAhdmVydGljYWwgPyAhc2hvdWxkSW52ZXJ0TW91c2VDb29yZHMgOiBzaG91bGRJbnZlcnRNb3VzZUNvb3JkcztcbiAgICAgIGNvbnN0IG9mZnNldCA9IChpbnZlcnRPZmZzZXQgPyBwZXJjZW50IDogMSAtIHBlcmNlbnQpICogMTAwO1xuICAgICAgY29uc3Qgc2lnbiA9IHZlcnRpY2FsID8gJy0nIDogZGlyID09PSAncnRsJyA/ICcnIDogJy0nO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICB0cmFuc2Zvcm06IGB0cmFuc2xhdGUke2F4aXN9KCR7c2lnbn0ke29mZnNldH0lKWAsXG4gICAgICB9O1xuICAgIH0pLFxuICApO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBpc1NsaWRpbmdWaWEkID0gbmV3IEJlaGF2aW9yU3ViamVjdDwna2V5Ym9hcmQnIHwgJ3BvaW50ZXInIHwgbnVsbD4obnVsbCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBkaXNhYmxlQW5pbWF0aW9ucyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHRvdWNoSWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXIgfCBudWxsPihudWxsKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGxhc3RQb2ludGVyRXZlbnQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNb3VzZUV2ZW50IHwgVG91Y2hFdmVudCB8IG51bGw+KG51bGwpO1xuXG4gIHJlYWRvbmx5IF9iaW5kaW5ncyA9IGNyZWF0ZVJlYWN0aXZlQmluZGluZ3MoXG4gICAge1xuICAgICAgYXR0cmlidXRlOiAnYXJpYS1vcmllbnRhdGlvbicsXG4gICAgICBvYnNlcnZhYmxlOiB0aGlzLl92ZXJ0aWNhbCQucGlwZShcbiAgICAgICAgbWFwKCh2ZXJ0aWNhbCkgPT4gKHtcbiAgICAgICAgICByZW5kZXI6IHRydWUsXG4gICAgICAgICAgdmFsdWU6IHZlcnRpY2FsID8gJ3ZlcnRpY2FsJyA6ICdob3Jpem9udGFsJyxcbiAgICAgICAgfSkpLFxuICAgICAgKSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGF0dHJpYnV0ZTogJ2FyaWEtZGlzYWJsZWQnLFxuICAgICAgb2JzZXJ2YWJsZTogdGhpcy5faW5wdXQuZGlzYWJsZWQkLFxuICAgIH0sXG4gICAge1xuICAgICAgYXR0cmlidXRlOiAnYXJpYS12YWx1ZW5vdycsXG4gICAgICBvYnNlcnZhYmxlOiB0aGlzLl92YWx1ZSQucGlwZShtYXAoKHZhbHVlKSA9PiAoeyByZW5kZXI6IHRydWUsIHZhbHVlIH0pKSksXG4gICAgfSxcbiAgICB7XG4gICAgICBhdHRyaWJ1dGU6ICdhcmlhLXZhbHVlbWluJyxcbiAgICAgIG9ic2VydmFibGU6IHRoaXMuX21pbiQucGlwZShtYXAoKHZhbHVlKSA9PiAoeyByZW5kZXI6IHRydWUsIHZhbHVlIH0pKSksXG4gICAgfSxcbiAgICB7XG4gICAgICBhdHRyaWJ1dGU6ICdhcmlhLXZhbHVlbWF4JyxcbiAgICAgIG9ic2VydmFibGU6IHRoaXMuX21heCQucGlwZShtYXAoKHZhbHVlKSA9PiAoeyByZW5kZXI6IHRydWUsIHZhbHVlIH0pKSksXG4gICAgfSxcbiAgICB7XG4gICAgICBhdHRyaWJ1dGU6ICdhcmlhLXZhbHVldGV4dCcsXG4gICAgICBvYnNlcnZhYmxlOiB0aGlzLnZhbHVlVGV4dCQucGlwZShtYXAoKHZhbHVlKSA9PiAoeyByZW5kZXI6IHRydWUsIHZhbHVlIH0pKSksXG4gICAgfSxcbiAgICB7XG4gICAgICBhdHRyaWJ1dGU6ICd0YWJpbmRleCcsXG4gICAgICBvYnNlcnZhYmxlOiB0aGlzLl9pbnB1dC5kaXNhYmxlZCQucGlwZShtYXAoKGRpc2FibGVkKSA9PiAoeyByZW5kZXI6IHRydWUsIHZhbHVlOiBkaXNhYmxlZCA/IC0xIDogMCB9KSkpLFxuICAgIH0sXG4gICAge1xuICAgICAgYXR0cmlidXRlOiAnY2xhc3MuZXQtc2xpZGVyLS1pcy1zbGlkaW5nJyxcbiAgICAgIG9ic2VydmFibGU6IHRoaXMuaXNTbGlkaW5nVmlhJC5waXBlKG1hcCgoaXNTbGlkaW5nVmlhKSA9PiAhIWlzU2xpZGluZ1ZpYSkpLFxuICAgIH0sXG4gICAge1xuICAgICAgYXR0cmlidXRlOiAnY2xhc3MuZXQtc2xpZGVyLS1pbnZlcnRlZCcsXG4gICAgICBvYnNlcnZhYmxlOiB0aGlzLl9pbnZlcnRlZCQsXG4gICAgfSxcbiAgICB7XG4gICAgICBhdHRyaWJ1dGU6ICdjbGFzcy5ldC1zbGlkZXItLWRpc2FibGUtYW5pbWF0aW9ucycsXG4gICAgICBvYnNlcnZhYmxlOiB0aGlzLmRpc2FibGVBbmltYXRpb25zJCxcbiAgICB9LFxuICAgIHtcbiAgICAgIGF0dHJpYnV0ZTogJ2FyaWEtbGFiZWxlZGJ5JyxcbiAgICAgIG9ic2VydmFibGU6IHRoaXMuX2Zvcm1GaWVsZFN0YXRlU2VydmljZS5sYWJlbElkJC5waXBlKFxuICAgICAgICBtYXAoKGxhYmVsSWQpID0+ICh7IHJlbmRlcjogISFsYWJlbElkLCB2YWx1ZTogbGFiZWxJZCA/PyAnJyB9KSksXG4gICAgICApLFxuICAgIH0sXG4gICAge1xuICAgICAgYXR0cmlidXRlOiAnYXJpYS1kZXNjcmliZWRieScsXG4gICAgICBvYnNlcnZhYmxlOiB0aGlzLl9mb3JtRmllbGRTdGF0ZVNlcnZpY2UuZGVzY3JpYmVkQnkkLnBpcGUoXG4gICAgICAgIG1hcCgoZGVzY3JpYmVkQnkpID0+ICh7IHJlbmRlcjogISFkZXNjcmliZWRCeSwgdmFsdWU6IGRlc2NyaWJlZEJ5ID8/ICcnIH0pKSxcbiAgICAgICksXG4gICAgfSxcbiAgKTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBtZXJnZSh0aGlzLl9tb3VzZURvd24kLCB0aGlzLl90b3VjaFN0YXJ0JClcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgY29uc3QgaXNEaXNhYmxlZCA9IHRoaXMuX2lucHV0LmRpc2FibGVkO1xuICAgICAgICAgIGNvbnN0IGlzU2xpZGluZyA9ICEhdGhpcy5pc1NsaWRpbmdWaWEkLnZhbHVlO1xuICAgICAgICAgIGNvbnN0IGlzSW52YWxpZE1vdXNlQnV0dG9uID0gIWlzVG91Y2hFdmVudChldmVudCkgJiYgZXZlbnQuYnV0dG9uICE9PSAwO1xuXG4gICAgICAgICAgcmV0dXJuICFpc0Rpc2FibGVkICYmICFpc1NsaWRpbmcgJiYgIWlzSW52YWxpZE1vdXNlQnV0dG9uO1xuICAgICAgICB9KSxcbiAgICAgICAgc3dpdGNoTWFwKChldmVudCkgPT5cbiAgICAgICAgICBjb21iaW5lTGF0ZXN0KFtvZihldmVudCksIHRoaXMuX2ZyZXNoU2xpZGVyRGltZW5zaW9ucygpLCB0aGlzLl9zaG91bGRJbnZlcnRNb3VzZUNvb3JkcyRdKS5waXBlKFxuICAgICAgICAgICAgdGFwKChbZXZlbnQsIHNsaWRlckRpbWVuc2lvbnMsIHNob3VsZEludmVydE1vdXNlQ29vcmRzXSkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcblxuICAgICAgICAgICAgICB0aGlzLl9pbml0aWFsaXplU2xpZGUoZXZlbnQsIHNsaWRlckRpbWVuc2lvbnMsIHNob3VsZEludmVydE1vdXNlQ29vcmRzKTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICksXG4gICAgICAgICksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG5cbiAgICB0aGlzLl9rZXlEb3duJFxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigoZXZlbnQpID0+IHtcbiAgICAgICAgICBjb25zdCBpc0Rpc2FibGVkID0gdGhpcy5faW5wdXQuZGlzYWJsZWQ7XG4gICAgICAgICAgY29uc3QgaXNTbGlkaW5nID0gdGhpcy5pc1NsaWRpbmdWaWEkLnZhbHVlICYmIHRoaXMuaXNTbGlkaW5nVmlhJC52YWx1ZSAhPT0gJ2tleWJvYXJkJztcbiAgICAgICAgICBjb25zdCBpc01vZGlmaWVyUHJlc3NlZCA9IGV2ZW50LmFsdEtleSB8fCBldmVudC5jdHJsS2V5IHx8IGV2ZW50Lm1ldGFLZXkgfHwgZXZlbnQuc2hpZnRLZXkgfHwgZXZlbnQubWV0YUtleTtcblxuICAgICAgICAgIHJldHVybiAhaXNEaXNhYmxlZCAmJiAhaXNTbGlkaW5nICYmICFpc01vZGlmaWVyUHJlc3NlZDtcbiAgICAgICAgfSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICAgIHdpdGhMYXRlc3RGcm9tKHRoaXMuX2RpciQpLFxuICAgICAgICB0YXAoKFtldmVudCwgZGlyXSkgPT4gdGhpcy5fdXBkYXRlU2xpZGVyVmlhS2V5Ym9hcmQoZXZlbnQsIGRpcikpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgdGhpcy5fa2V5VXAkXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgICAgZmlsdGVyKCgpID0+IHRoaXMuaXNTbGlkaW5nVmlhJC52YWx1ZSA9PT0gJ2tleWJvYXJkJyksXG4gICAgICAgIHRhcCgoKSA9PiB0aGlzLmlzU2xpZGluZ1ZpYSQubmV4dChudWxsKSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG5cbiAgICBmcm9tRXZlbnQodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnYmx1cicpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICB0aGlzLl9pbnB1dC5fbWFya0FzVG91Y2hlZCgpO1xuICAgICAgICAgIHRoaXMuX2lucHV0Ll9zZXRTaG91bGREaXNwbGF5RXJyb3IodHJ1ZSk7XG4gICAgICAgIH0pLFxuICAgICAgICB0YWtlKDEpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaW5pdGlhbGl6ZVNsaWRlKFxuICAgIGV2ZW50OiBNb3VzZUV2ZW50IHwgVG91Y2hFdmVudCxcbiAgICBzbGlkZXJEaW1lbnNpb25zOiBET01SZWN0LFxuICAgIHNob3VsZEludmVydE1vdXNlQ29vcmRzOiBib29sZWFuLFxuICApIHtcbiAgICBpZiAoaXNUb3VjaEV2ZW50KGV2ZW50KSkge1xuICAgICAgdGhpcy50b3VjaElkJC5uZXh0KGdldFRvdWNoSWRGb3JTbGlkZXIoZXZlbnQsIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCkpO1xuICAgIH1cblxuICAgIGNvbnN0IHBvaW50ZXJQb3NpdGlvbiA9IGdldFBvaW50ZXJQb3NpdGlvbk9uUGFnZShldmVudCwgdGhpcy50b3VjaElkJC52YWx1ZSk7XG5cbiAgICBpZiAoIXBvaW50ZXJQb3NpdGlvbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuaXNTbGlkaW5nVmlhJC5uZXh0KCdwb2ludGVyJyk7XG5cbiAgICB0aGlzLl9iaW5kR2xvYmFsRXZlbnRzKGV2ZW50KTtcbiAgICB0aGlzLl91cGRhdGVWYWx1ZUZyb21Qb3NpdGlvbihwb2ludGVyUG9zaXRpb24sIHNsaWRlckRpbWVuc2lvbnMsIHNob3VsZEludmVydE1vdXNlQ29vcmRzKTtcbiAgICB0aGlzLl9kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuY3Vyc29yID0gJ2dyYWJiaW5nJztcblxuICAgIGlmIChldmVudC5jYW5jZWxhYmxlKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2JpbmRHbG9iYWxFdmVudHMoZXZlbnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50KSB7XG4gICAgY29uc3QgaXNUb3VjaCA9IGlzVG91Y2hFdmVudChldmVudCk7XG4gICAgY29uc3QgbW92ZUV2ZW50TmFtZSA9IGlzVG91Y2ggPyAndG91Y2htb3ZlJyA6ICdtb3VzZW1vdmUnO1xuICAgIGNvbnN0IGVuZEV2ZW50TmFtZSA9IGlzVG91Y2ggPyAndG91Y2hlbmQnIDogJ21vdXNldXAnO1xuXG4gICAgY29uc3QgZXZlbnRDb25maWcgPSB7IHBhc3NpdmU6IGZhbHNlIH07XG5cbiAgICBjb25zdCBwb2ludGVyVXAkID0gZnJvbUV2ZW50PE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50Pih3aW5kb3csIGVuZEV2ZW50TmFtZSwgZXZlbnRDb25maWcpO1xuICAgIGNvbnN0IHRvdWNoQ2FuY2VsJCA9IGZyb21FdmVudDxUb3VjaEV2ZW50Pih3aW5kb3csICd0b3VjaGNhbmNlbCcsIGV2ZW50Q29uZmlnKTtcbiAgICBjb25zdCB3aW5kb3dCbHVyJCA9IGZyb21FdmVudDxGb2N1c0V2ZW50Pih3aW5kb3csICdibHVyJyk7XG5cbiAgICBjb25zdCBzbGlkZUVuZCQgPSBtZXJnZShwb2ludGVyVXAkLCB0b3VjaENhbmNlbCQsIHdpbmRvd0JsdXIkKTtcblxuICAgIGZyb21FdmVudDxNb3VzZUV2ZW50IHwgVG91Y2hFdmVudD4od2luZG93LCBtb3ZlRXZlbnROYW1lLCBldmVudENvbmZpZylcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwoc2xpZGVFbmQkKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgICAgd2l0aExhdGVzdEZyb20odGhpcy5fc2xpZGVyRGltZW5zaW9ucyQsIHRoaXMuX3Nob3VsZEludmVydE1vdXNlQ29vcmRzJCksXG4gICAgICAgIHRhcCgoW2V2ZW50LCBzbGlkZXJEaW1lbnNpb25zLCBzaG91bGRJbnZlcnRNb3VzZUNvb3Jkc10pID0+IHtcbiAgICAgICAgICBjb25zdCBwb2ludGVyUG9zaXRpb24gPSBnZXRQb2ludGVyUG9zaXRpb25PblBhZ2UoZXZlbnQsIHRoaXMudG91Y2hJZCQudmFsdWUpO1xuXG4gICAgICAgICAgaWYgKCFwb2ludGVyUG9zaXRpb24pIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoIXRoaXMuZGlzYWJsZUFuaW1hdGlvbnMkLnZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmRpc2FibGVBbmltYXRpb25zJC5uZXh0KHRydWUpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHRoaXMuX3VwZGF0ZVZhbHVlRnJvbVBvc2l0aW9uKHBvaW50ZXJQb3NpdGlvbiwgc2xpZGVyRGltZW5zaW9ucywgc2hvdWxkSW52ZXJ0TW91c2VDb29yZHMpO1xuICAgICAgICB9KSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcblxuICAgIHNsaWRlRW5kJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICAgIHRha2UoMSksXG4gICAgICAgIHRhcCgoZXZlbnQpID0+IHtcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIHRoaXMuaXNTbGlkaW5nVmlhJC5uZXh0KG51bGwpO1xuICAgICAgICAgIHRoaXMudG91Y2hJZCQubmV4dChudWxsKTtcbiAgICAgICAgICB0aGlzLl9kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuY3Vyc29yID0gJyc7XG4gICAgICAgICAgdGhpcy5kaXNhYmxlQW5pbWF0aW9ucyQubmV4dChmYWxzZSk7XG4gICAgICAgIH0pLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlVmFsdWVGcm9tUG9zaXRpb24gPSAoXG4gICAgcG9zOiB7IHg6IG51bWJlcjsgeTogbnVtYmVyIH0sXG4gICAgc2xpZGVyRGltZW5zaW9uczogRE9NUmVjdCxcbiAgICBzaG91bGRJbnZlcnRNb3VzZUNvb3JkczogYm9vbGVhbixcbiAgKSA9PiB7XG4gICAgY29uc3Qgb2Zmc2V0ID0gdGhpcy52ZXJ0aWNhbCA/IHNsaWRlckRpbWVuc2lvbnMudG9wIDogc2xpZGVyRGltZW5zaW9ucy5sZWZ0O1xuICAgIGNvbnN0IHNpemUgPSB0aGlzLnZlcnRpY2FsID8gc2xpZGVyRGltZW5zaW9ucy5oZWlnaHQgOiBzbGlkZXJEaW1lbnNpb25zLndpZHRoO1xuICAgIGNvbnN0IHBvc0NvbXBvbmVudCA9IHRoaXMudmVydGljYWwgPyBwb3MueSA6IHBvcy54O1xuXG4gICAgbGV0IHBlcmNlbnQgPSBjbGFtcCgocG9zQ29tcG9uZW50IC0gb2Zmc2V0KSAvIHNpemUsIDAsIDEpO1xuXG4gICAgaWYgKHNob3VsZEludmVydE1vdXNlQ29vcmRzKSB7XG4gICAgICBwZXJjZW50ID0gMSAtIHBlcmNlbnQ7XG4gICAgfVxuXG4gICAgaWYgKHBlcmNlbnQgPT09IDApIHtcbiAgICAgIHRoaXMuX2lucHV0Ll91cGRhdGVWYWx1ZSh0aGlzLm1pbik7XG4gICAgfSBlbHNlIGlmIChwZXJjZW50ID09PSAxKSB7XG4gICAgICB0aGlzLl9pbnB1dC5fdXBkYXRlVmFsdWUodGhpcy5tYXgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBleGFjdFZhbHVlID0gcGVyY2VudCAqICh0aGlzLm1heCAtIHRoaXMubWluKSArIHRoaXMubWluO1xuICAgICAgY29uc3QgY2xvc2VzdFZhbHVlID0gTWF0aC5yb3VuZCgoZXhhY3RWYWx1ZSAtIHRoaXMubWluKSAvIHRoaXMuc3RlcCkgKiB0aGlzLnN0ZXAgKyB0aGlzLm1pbjtcbiAgICAgIHRoaXMuX2lucHV0Ll91cGRhdGVWYWx1ZShjbGFtcChjbG9zZXN0VmFsdWUsIHRoaXMubWluLCB0aGlzLm1heCkpO1xuICAgIH1cblxuICAgIHRoaXMuX2lucHV0Ll9tYXJrQXNUb3VjaGVkKCk7XG4gICAgdGhpcy5faW5wdXQuX3NldFNob3VsZERpc3BsYXlFcnJvcih0cnVlKTtcbiAgfTtcblxuICBwcml2YXRlIF91cGRhdGVTbGlkZXJWaWFLZXlib2FyZChldmVudDogS2V5Ym9hcmRFdmVudCwgZGlyOiBzdHJpbmcpIHtcbiAgICBzd2l0Y2ggKGV2ZW50LmtleSkge1xuICAgICAgY2FzZSAnUGFnZVVwJzpcbiAgICAgICAgdGhpcy5fdXBkYXRlU2xpZGVyVmFsdWVCeSgxMCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnUGFnZURvd24nOlxuICAgICAgICB0aGlzLl91cGRhdGVTbGlkZXJWYWx1ZUJ5KC0xMCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnRW5kJzpcbiAgICAgICAgdGhpcy5faW5wdXQuX3VwZGF0ZVZhbHVlKHRoaXMubWF4KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdIb21lJzpcbiAgICAgICAgdGhpcy5faW5wdXQuX3VwZGF0ZVZhbHVlKHRoaXMubWluKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdBcnJvd0xlZnQnOlxuICAgICAgICB0aGlzLl91cGRhdGVTbGlkZXJWYWx1ZUJ5KGRpciA9PT0gJ3J0bCcgPyAxIDogLTEpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0Fycm93VXAnOlxuICAgICAgICB0aGlzLl91cGRhdGVTbGlkZXJWYWx1ZUJ5KDEpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0Fycm93UmlnaHQnOlxuICAgICAgICB0aGlzLl91cGRhdGVTbGlkZXJWYWx1ZUJ5KGRpciA9PT0gJ3J0bCcgPyAtMSA6IDEpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0Fycm93RG93bic6XG4gICAgICAgIHRoaXMuX3VwZGF0ZVNsaWRlclZhbHVlQnkoLTEpO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMuaXNTbGlkaW5nVmlhJC5uZXh0KCdrZXlib2FyZCcpO1xuXG4gICAgdGhpcy5faW5wdXQuX21hcmtBc1RvdWNoZWQoKTtcbiAgICB0aGlzLl9pbnB1dC5fc2V0U2hvdWxkRGlzcGxheUVycm9yKHRydWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBfdXBkYXRlU2xpZGVyVmFsdWVCeShvZmZzZXQ6IG51bWJlcikge1xuICAgIGNvbnN0IGN1cnJlbnRWYWx1ZSA9IHRoaXMuX2lucHV0LnZhbHVlIHx8IDA7XG4gICAgY29uc3QgdmFsdWUgPSBjbGFtcChjdXJyZW50VmFsdWUgKyB0aGlzLnN0ZXAgKiBvZmZzZXQsIHRoaXMubWluLCB0aGlzLm1heCk7XG5cbiAgICB0aGlzLl9pbnB1dC5fdXBkYXRlVmFsdWUodmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZnJlc2hTbGlkZXJEaW1lbnNpb25zKCkge1xuICAgIHRoaXMuX3NsaWRlckRpbWVuc2lvbnMkLm5leHQodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpKTtcblxuICAgIHJldHVybiB0aGlzLl9zbGlkZXJEaW1lbnNpb25zJDtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImV0LXNsaWRlci10cmFjay1jb250YWluZXJcIj5cbiAgPGRpdlxuICAgICpuZ0lmPVwidHJhY2tCYWNrZ3JvdW5kU3R5bGVzJCB8IGFzeW5jIGFzIHRyYWNrQmFja2dyb3VuZFN0eWxlc1wiXG4gICAgW3N0eWxlLnRyYW5zZm9ybV09XCJ0cmFja0JhY2tncm91bmRTdHlsZXMudHJhbnNmb3JtXCJcbiAgICBjbGFzcz1cImV0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5kXCJcbiAgPjwvZGl2PlxuICA8ZGl2XG4gICAgKm5nSWY9XCJ0cmFja0ZpbGxTdHlsZXMkIHwgYXN5bmMgYXMgdHJhY2tGaWxsU3R5bGVzXCJcbiAgICBbc3R5bGUudHJhbnNmb3JtXT1cInRyYWNrRmlsbFN0eWxlcy50cmFuc2Zvcm1cIlxuICAgIFtzdHlsZS5kaXNwbGF5XT1cInRyYWNrRmlsbFN0eWxlcy5kaXNwbGF5XCJcbiAgICBjbGFzcz1cImV0LXNsaWRlci10cmFjay1maWxsXCJcbiAgPjwvZGl2PlxuPC9kaXY+XG5cbjxkaXZcbiAgKm5nSWY9XCJ0aHVtYkNvbnRhaW5lclN0eWxlcyQgfCBhc3luYyBhcyB0aHVtYkNvbnRhaW5lclN0eWxlc1wiXG4gIFtzdHlsZS50cmFuc2Zvcm1dPVwidGh1bWJDb250YWluZXJTdHlsZXMudHJhbnNmb3JtXCJcbiAgY2xhc3M9XCJldC1zbGlkZXItdGh1bWItY29udGFpbmVyXCJcbj5cbiAgPGRpdiBjbGFzcz1cImV0LXNsaWRlci10aHVtYlwiPlxuICAgIDxkaXYgKm5nSWY9XCJyZW5kZXJWYWx1ZVRvb2x0aXBcIiBjbGFzcz1cImV0LXNsaWRlci12YWx1ZS10b29sdGlwXCI+e3sgdmFsdWVUZXh0JCB8IGFzeW5jIH19PC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -34,11 +34,11 @@ export class MasonryComponent {
|
|
|
34
34
|
isInitialized: false,
|
|
35
35
|
};
|
|
36
36
|
this._getLowestColumn = (columnHeights) => {
|
|
37
|
-
let lowestColumnHeight = columnHeights[0][0];
|
|
37
|
+
let lowestColumnHeight = columnHeights[0]?.[0] ?? 0;
|
|
38
38
|
let lowestColumnIndex = 0;
|
|
39
39
|
for (let i = 0; i < columnHeights.length; i++) {
|
|
40
|
-
const columnHeight = columnHeights[i][0];
|
|
41
|
-
if (columnHeight < lowestColumnHeight) {
|
|
40
|
+
const columnHeight = columnHeights[i]?.[0];
|
|
41
|
+
if (columnHeight !== undefined && columnHeight < lowestColumnHeight) {
|
|
42
42
|
lowestColumnHeight = columnHeight;
|
|
43
43
|
lowestColumnIndex = i;
|
|
44
44
|
}
|
|
@@ -46,11 +46,11 @@ export class MasonryComponent {
|
|
|
46
46
|
return { lowestColumnHeight, lowestColumnIndex };
|
|
47
47
|
};
|
|
48
48
|
this._getHighestColumn = (columnHeights) => {
|
|
49
|
-
let highestColumnHeight = columnHeights[0][0];
|
|
49
|
+
let highestColumnHeight = columnHeights[0]?.[0] ?? 0;
|
|
50
50
|
let highestColumnIndex = 0;
|
|
51
51
|
for (let i = 0; i < columnHeights.length; i++) {
|
|
52
|
-
const columnHeight = columnHeights[i][0];
|
|
53
|
-
if (columnHeight >= highestColumnHeight) {
|
|
52
|
+
const columnHeight = columnHeights[i]?.[0];
|
|
53
|
+
if (columnHeight !== undefined && columnHeight >= highestColumnHeight) {
|
|
54
54
|
highestColumnHeight = columnHeight;
|
|
55
55
|
highestColumnIndex = i;
|
|
56
56
|
}
|
|
@@ -151,6 +151,9 @@ export class MasonryComponent {
|
|
|
151
151
|
const state = this._state;
|
|
152
152
|
for (let itemIndex = fromIndex; itemIndex < items.length; itemIndex++) {
|
|
153
153
|
const item = items[itemIndex];
|
|
154
|
+
if (!item) {
|
|
155
|
+
continue;
|
|
156
|
+
}
|
|
154
157
|
const initialItemDimensions = item.initialDimensions;
|
|
155
158
|
const updatedDimensions = item.dimensions;
|
|
156
159
|
if (!initialItemDimensions || !updatedDimensions) {
|
|
@@ -200,4 +203,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImpor
|
|
|
200
203
|
}], initialized: [{
|
|
201
204
|
type: Output
|
|
202
205
|
}] } });
|
|
203
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFzb25yeS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL2NvbXBvbmVudHMvbWFzb25yeS9jb21wb25lbnRzL21hc29ucnkvbWFzb25yeS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsZUFBZSxFQUNmLFVBQVUsRUFDVixZQUFZLEVBQ1osVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ0wsZUFBZSxFQUNmLE1BQU0sRUFDTixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLGFBQWEsRUFDYixzQkFBc0IsRUFDdEIsZUFBZSxFQUNmLHNCQUFzQixFQUN0QixjQUFjLEdBQ2YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3JILE9BQU8sRUFBRSxrQkFBa0IsRUFBd0IsTUFBTSxnQkFBZ0IsQ0FBQzs7QUE2QjFFLE1BQU0sT0FBTyxnQkFBZ0I7SUFmN0I7UUFnQm1CLGNBQVMsR0FBRyxhQUFhLEVBQUUsQ0FBQztRQUM1QixnQkFBVyxHQUFHLE1BQU0sQ0FBMEIsVUFBVSxDQUFDLENBQUM7UUFDMUQsZUFBVSxHQUFHLE1BQU0sQ0FBQyxlQUFlLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQVlsRSxpQkFBWSxHQUFHLElBQUksZUFBZSxDQUFTLEdBQUcsQ0FBQyxDQUFDO1FBU2hELFVBQUssR0FBRyxJQUFJLGVBQWUsQ0FBUyxFQUFFLENBQUMsQ0FBQztRQUd2QyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFF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QyxDQUFDO0lBQzlCLENBQUM7SUFFTyxrQkFBa0I7UUFDeEIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQ2hFLENBQUM7SUFFTyxlQUFlLENBQUMsS0FBYTtRQUNuQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLDJCQUEyQixFQUFFLEdBQUcsS0FBSyxJQUFJLENBQUMsQ0FBQztJQUM5RixDQUFDOzhHQXJOVSxnQkFBZ0I7a0dBQWhCLGdCQUFnQixpU0FLTyxrQkFBa0Isb0RBbEIxQzs7O0dBR1QsK1RBUVMsc0JBQXNCOzsyRkFFckIsZ0JBQWdCO2tCQWY1QixTQUFTOytCQUNFLFlBQVksWUFDWjs7O0dBR1QsY0FFVyxJQUFJLG1CQUNDLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksUUFDL0I7d0JBQ0osS0FBSyxFQUFFLFlBQVk7cUJBQ3BCLFdBQ1EsQ0FBQyxzQkFBc0IsQ0FBQzs4QkFRaEIsTUFBTTtzQkFEdEIsZUFBZTt1QkFBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsa0JBQWtCLENBQUMsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUU7Z0JBSXhFLFVBQVU7c0JBRGIsS0FBSztnQkFVRixHQUFHO3NCQUROLEtBQUs7Z0JBVUcsWUFBWTtzQkFEcEIsTUFBTTtnQkFJRSxXQUFXO3NCQURuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIGZvcndhcmRSZWYsXG4gIGluamVjdCxcbiAgSW5wdXQsXG4gIG51bWJlckF0dHJpYnV0ZSxcbiAgT3V0cHV0LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBjcmVhdGVEZXN0cm95LFxuICBjcmVhdGVSZWFjdGl2ZUJpbmRpbmdzLFxuICBERUxBWUFCTEVfVE9LRU4sXG4gIE9ic2VydmVSZXNpemVEaXJlY3RpdmUsXG4gIFR5cGVkUXVlcnlMaXN0LFxufSBmcm9tICdAZXRobGV0ZS9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgZGVib3VuY2VUaW1lLCBvZiwgc3RhcnRXaXRoLCBzd2l0Y2hNYXAsIHRha2VVbnRpbCwgdGFwLCB0aW1lciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTUFTT05SWV9JVEVNX1RPS0VOLCBNYXNvbnJ5SXRlbUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3BhcnRpYWxzJztcblxudHlwZSBNYXNvbnJ5U3RhdGUgPSB7XG4gIHByZWZlcnJlZENvbHVtbldpZHRoOiBudW1iZXI7XG4gIGNvbHVtbldpZHRoOiBudW1iZXI7XG4gIGNvbHVtbnM6IG51bWJlcjtcbiAgZ3JpZFJvd0VsSGVpZ2h0czogbnVtYmVyW11bXTtcbiAgaG9zdEhlaWdodDogbnVtYmVyO1xuICBob3N0RGltZW5zaW9uczogRE9NUmVjdCB8IG51bGw7XG4gIGdhcDogbnVtYmVyO1xuICBpc0luaXRpYWxpemVkOiBib29sZWFuO1xuICBpdGVtQ291bnQ6IG51bWJlcjtcbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2V0LW1hc29ucnknLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgKGV0T2JzZXJ2ZVJlc2l6ZSk9XCJzZXRSZXNpemVFdmVudCgpXCI+PC9kaXY+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2V0TWFzb25yeUl0ZW1dLCBldC1tYXNvbnJ5LWl0ZW0sIG5nLWNvbnRhaW5lclwiIC8+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL21hc29ucnkuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ2V0LW1hc29ucnknLFxuICB9LFxuICBpbXBvcnRzOiBbT2JzZXJ2ZVJlc2l6ZURpcmVjdGl2ZV0sXG59KVxuZXhwb3J0IGNsYXNzIE1hc29ucnlDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSQgPSBjcmVhdGVEZXN0cm95KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2VsZW1lbnRSZWYgPSBpbmplY3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KEVsZW1lbnRSZWYpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9kZWxheWFibGUgPSBpbmplY3QoREVMQVlBQkxFX1RPS0VOLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oZm9yd2FyZFJlZigoKSA9PiBNQVNPTlJZX0lURU1fVE9LRU4pLCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pXG4gIHByaXZhdGUgcmVhZG9ubHkgX2l0ZW1zPzogVHlwZWRRdWVyeUxpc3Q8TWFzb25yeUl0ZW1Db21wb25lbnQ+O1xuXG4gIEBJbnB1dCgpXG4gIGdldCBjb2x1bVdpZHRoKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbHVtV2lkdGgkLmdldFZhbHVlKCkgfHwgMjUwO1xuICB9XG4gIHNldCBjb2x1bVdpZHRoKHZhbHVlOiB1bmtub3duKSB7XG4gICAgdGhpcy5fY29sdW1XaWR0aCQubmV4dChudW1iZXJBdHRyaWJ1dGUodmFsdWUsIDI1MCkpO1xuICB9XG4gIHByaXZhdGUgX2NvbHVtV2lkdGgkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDI1MCk7XG5cbiAgQElucHV0KClcbiAgZ2V0IGdhcCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9nYXAkLmdldFZhbHVlKCkgfHwgMDtcbiAgfVxuICBzZXQgZ2FwKHZhbHVlOiB1bmtub3duKSB7XG4gICAgdGhpcy5fZ2FwJC5uZXh0KG51bWJlckF0dHJpYnV0ZSh2YWx1ZSwgMTYpKTtcbiAgfVxuICBwcml2YXRlIF9nYXAkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDE2KTtcblxuICBAT3V0cHV0KClcbiAgcmVhZG9ubHkgaW5pdGlhbGl6aW5nID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKVxuICByZWFkb25seSBpbml0aWFsaXplZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9kaWRSZXNpemUkID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2RpZEluaXRpYWxpemUkID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2hpZGVPdmVyZmxvdyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcblxuICByZWFkb25seSBfYmluZGluZ3MgPSBjcmVhdGVSZWFjdGl2ZUJpbmRpbmdzKFxuICAgIHtcbiAgICAgIGF0dHJpYnV0ZTogJ2NsYXNzLmV0LW1hc29ucnktLWluaXRpYWxpemVkJyxcbiAgICAgIG9ic2VydmFibGU6IHRoaXMuX2RpZEluaXRpYWxpemUkLFxuICAgIH0sXG4gICAge1xuICAgICAgYXR0cmlidXRlOiAnY2xhc3MuZXQtbWFzb25yeS0taGlkZS1vdmVyZmxvdycsXG4gICAgICBvYnNlcnZhYmxlOiB0aGlzLl9oaWRlT3ZlcmZsb3ckLFxuICAgIH0sXG4gICk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfc3RhdGU6IE1hc29ucnlTdGF0ZSA9IHtcbiAgICBwcmVmZXJyZWRDb2x1bW5XaWR0aDogMCxcbiAgICBjb2x1bW5XaWR0aDogMCxcbiAgICBjb2x1bW5zOiAwLFxuICAgIGdyaWRSb3dFbEhlaWdodHM6IFtdLFxuICAgIGhvc3RIZWlnaHQ6IDAsXG4gICAgaG9zdERpbWVuc2lvbnM6IG51bGwsXG4gICAgZ2FwOiAwLFxuICAgIGl0ZW1Db3VudDogMCxcbiAgICBpc0luaXRpYWxpemVkOiBmYWxzZSxcbiAgfTtcblxuICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9pdGVtcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX2RlbGF5YWJsZT8uZW5hYmxlRGVsYXllZCgpO1xuXG4gICAgY29tYmluZUxhdGVzdChbdGhpcy5faXRlbXMuY2hhbmdlcy5waXBlKHN0YXJ0V2l0aCh0aGlzLl9pdGVtcykpLCB0aGlzLl9kaWRSZXNpemUkLCB0aGlzLl9jb2x1bVdpZHRoJCwgdGhpcy5fZ2FwJF0pXG4gICAgICAucGlwZShcbiAgICAgICAgZGVib3VuY2VUaW1lKDEpLFxuICAgICAgICB0YXAoKFssIGRpZFJlc2l6ZSwgY29sV2lkdGgsIGdhcF0pID0+IHtcbiAgICAgICAgICBpZiAoZGlkUmVzaXplKSB7XG4gICAgICAgICAgICB0aGlzLl9kaWRSZXNpemUkLm5leHQoZmFsc2UpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IGlzQ29tcGxldGVJbnZhbGlkID1cbiAgICAgICAgICAgIGRpZFJlc2l6ZSB8fCBjb2xXaWR0aCAhPT0gdGhpcy5fc3RhdGUucHJlZmVycmVkQ29sdW1uV2lkdGggfHwgZ2FwICE9PSB0aGlzLl9zdGF0ZS5nYXA7XG5cbiAgICAgICAgICB0aGlzLmludmFsaWRhdGUoeyBwYXJ0aWFsOiAhaXNDb21wbGV0ZUludmFsaWQgfSk7XG4gICAgICAgIH0pLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgdGhpcy5fZGlkUmVzaXplJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgoKSA9PiB0aGlzLl9oaWRlT3ZlcmZsb3ckLm5leHQodHJ1ZSkpLFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGltZXIoMTUwKSksXG4gICAgICAgIHRhcCgoKSA9PiB0aGlzLl9oaWRlT3ZlcmZsb3ckLm5leHQoZmFsc2UpKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcblxuICAgIHRoaXMuX2l0ZW1zLmNoYW5nZXNcbiAgICAgIC5waXBlKFxuICAgICAgICBzdGFydFdpdGgodGhpcy5faXRlbXMpLFxuICAgICAgICBzd2l0Y2hNYXAoKGl0ZW1zKSA9PlxuICAgICAgICAgIGl0ZW1zLmxlbmd0aFxuICAgICAgICAgICAgPyBjb21iaW5lTGF0ZXN0KFxuICAgICAgICAgICAgICAgIGl0ZW1zXG4gICAgICAgICAgICAgICAgICAudG9BcnJheSgpXG4gICAgICAgICAgICAgICAgICAuZmlsdGVyKChpKTogaSBpcyBNYXNvbnJ5SXRlbUNvbXBvbmVudCA9PiAhIWkpXG4gICAgICAgICAgICAgICAgICAubWFwKChpKSA9PiBpLmlzUG9zaXRpb25lZCQpLFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICA6IG9mKFtdKSxcbiAgICAgICAgKSxcbiAgICAgICAgc3dpdGNoTWFwKChwb3NpdGlvbmVkKSA9PiB7XG4gICAgICAgICAgY29uc3QgYWxsUG9zaXRpb25lZCA9IHBvc2l0aW9uZWQuZXZlcnkoKGkpID0+IGkpO1xuXG4gICAgICAgICAgaWYgKCFhbGxQb3NpdGlvbmVkKSB7XG4gICAgICAgICAgICB0aGlzLl9kaWRJbml0aWFsaXplJC5uZXh0KGFsbFBvc2l0aW9uZWQpO1xuICAgICAgICAgICAgdGhpcy5pbml0aWFsaXppbmcuZW1pdCgpO1xuICAgICAgICAgICAgdGhpcy5fZGVsYXlhYmxlPy5lbmFibGVEZWxheWVkKCk7XG4gICAgICAgICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHRpbWVyKDEwMCkucGlwZShcbiAgICAgICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuX2RpZEluaXRpYWxpemUkLm5leHQodHJ1ZSk7XG4gICAgICAgICAgICAgIHRoaXMuX2RlbGF5YWJsZT8uZGlzYWJsZURlbGF5ZWQoKTtcbiAgICAgICAgICAgICAgdGhpcy5pbml0aWFsaXplZC5lbWl0KCk7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICApO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIGludmFsaWRhdGUoY29uZmlnPzogeyBwYXJ0aWFsPzogYm9vbGVhbiB9KSB7XG4gICAgY29uc3QgaXRlbUxpc3QgPSB0aGlzLl9pdGVtcztcbiAgICBjb25zdCBzdGF0ZSA9IHRoaXMuX3N0YXRlO1xuXG4gICAgaWYgKCFpdGVtTGlzdCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGl0ZW1zID0gaXRlbUxpc3QudG9BcnJheSgpLmZpbHRlcigoaSk6IGkgaXMgTWFzb25yeUl0ZW1Db21wb25lbnQgPT4gISFpKTtcblxuICAgIGlmICghY29uZmlnPy5wYXJ0aWFsIHx8ICFzdGF0ZS5pc0luaXRpYWxpemVkKSB7XG4gICAgICBzdGF0ZS5wcmVmZXJyZWRDb2x1bW5XaWR0aCA9IHRoaXMuY29sdW1XaWR0aDtcbiAgICAgIHN0YXRlLmhvc3REaW1lbnNpb25zID0gdGhpcy5fZ2V0SG9zdERpbWVuc2lvbnMoKTtcbiAgICAgIHN0YXRlLmNvbHVtbnMgPSBNYXRoLmZsb29yKHN0YXRlLmhvc3REaW1lbnNpb25zLndpZHRoIC8gdGhpcy5jb2x1bVdpZHRoKTtcbiAgICAgIHN0YXRlLmdhcCA9IHRoaXMuZ2FwO1xuICAgICAgc3RhdGUuaXRlbUNvdW50ID0gaXRlbXMubGVuZ3RoO1xuICAgICAgc3RhdGUuY29sdW1uV2lkdGggPSAoc3RhdGUuaG9zdERpbWVuc2lvbnMud2lkdGggLSAoc3RhdGUuY29sdW1ucyAtIDEpICogc3RhdGUuZ2FwKSAvIHN0YXRlLmNvbHVtbnM7XG4gICAgICB0aGlzLl9zZXRDb2x1bW5XaWR0aChzdGF0ZS5jb2x1bW5XaWR0aCk7XG5cbiAgICAgIC8qKlxuICAgICAgICogRGF0YSBzdHJ1Y3R1cmU6XG4gICAgICAgKiBbXG4gICAgICAgKiAgW2N1cnJlbnRUb3RhbEhlaWdodE9mQ29sLCBpdGVtSGVpZ2h0LCBpdGVtSGVpZ2h0LCBpdGVtSGVpZ2h0XSxcbiAgICAgICAqICBbY3VycmVudFRvdGFsSGVpZ2h0T2ZDb2wsIGl0ZW1IZWlnaHQsIGl0ZW1IZWlnaHQsIGl0ZW1IZWlnaHRdLFxuICAgICAgICogXVxuICAgICAgICovXG4gICAgICBzdGF0ZS5ncmlkUm93RWxIZWlnaHRzID0gQXJyYXkuZnJvbSh7IGxlbmd0aDogc3RhdGUuY29sdW1ucyB9KS5tYXAoKCkgPT4gWzBdKTtcblxuICAgICAgdGhpcy5fcGFpbnRNYXNvbnJ5KDAsIGl0ZW1zKTtcblxuICAgICAgc3RhdGUuaXNJbml0aWFsaXplZCA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGZyb21JbmRleCA9IGl0ZW1zLmZpbmRJbmRleCgoaXRlbSkgPT4gIWl0ZW0uaXNQb3NpdGlvbmVkKTtcblxuICAgICAgLy8gaXRlbSBjb3VudCAyMCBmcm9tSW5kZXggMjAgKyAxIC0+IDIxID0+IHBhcnRpYWwgaW52YWxpZGF0aW9uXG4gICAgICBpZiAoZnJvbUluZGV4ICsgMSA+IHN0YXRlLml0ZW1Db3VudCkge1xuICAgICAgICBzdGF0ZS5pdGVtQ291bnQgPSBpdGVtcy5sZW5ndGg7XG4gICAgICAgIHRoaXMuX3BhaW50TWFzb25yeShmcm9tSW5kZXgsIGl0ZW1zKTtcblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIC8vIGRvIGEgZnVsbCBpbnZhbGlkYXRpb24gdGhlIGZyb21JbmRleCBpcyBub3QgdGhlIGZpcnN0IG5ldyBpdGVtXG4gICAgICB0aGlzLmludmFsaWRhdGUoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9wYWludE1hc29ucnkoZnJvbUluZGV4ID0gMCwgaXRlbXM6IE1hc29ucnlJdGVtQ29tcG9uZW50W10pIHtcbiAgICBjb25zdCBzdGF0ZSA9IHRoaXMuX3N0YXRlO1xuXG4gICAgZm9yIChsZXQgaXRlbUluZGV4ID0gZnJvbUluZGV4OyBpdGVtSW5kZXggPCBpdGVtcy5sZW5ndGg7IGl0ZW1JbmRleCsrKSB7XG4gICAgICBjb25zdCBpdGVtID0gaXRlbXNbaXRlbUluZGV4XTtcblxuICAgICAgY29uc3QgaW5pdGlhbEl0ZW1EaW1lbnNpb25zID0gaXRlbS5pbml0aWFsRGltZW5zaW9ucztcbiAgICAgIGNvbnN0IHVwZGF0ZWREaW1lbnNpb25zID0gaXRlbS5kaW1lbnNpb25zO1xuXG4gICAgICBpZiAoIWluaXRpYWxJdGVtRGltZW5zaW9ucyB8fCAhdXBkYXRlZERpbWVuc2lvbnMpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHsgbG93ZXN0Q29sdW1uSGVpZ2h0LCBsb3dlc3RDb2x1bW5JbmRleCB9ID0gdGhpcy5fZ2V0TG93ZXN0Q29sdW1uKHN0YXRlLmdyaWRSb3dFbEhlaWdodHMpO1xuXG4gICAgICBjb25zdCB4ID0gc3RhdGUuY29sdW1uV2lkdGggKiBsb3dlc3RDb2x1bW5JbmRleCArIGxvd2VzdENvbHVtbkluZGV4ICogc3RhdGUuZ2FwO1xuXG4gICAgICBpdGVtLnNldFBvc2l0aW9uKHgsIGxvd2VzdENvbHVtbkhlaWdodCwgdXBkYXRlZERpbWVuc2lvbnMuaGVpZ2h0KTtcblxuICAgICAgc3RhdGUuZ3JpZFJvd0VsSGVpZ2h0c1tsb3dlc3RDb2x1bW5JbmRleF0ucHVzaCh1cGRhdGVkRGltZW5zaW9ucy5oZWlnaHQpO1xuICAgICAgc3RhdGUuZ3JpZFJvd0VsSGVpZ2h0c1tsb3dlc3RDb2x1bW5JbmRleF1bMF0gKz0gdXBkYXRlZERpbWVuc2lvbnMuaGVpZ2h0ICsgc3RhdGUuZ2FwO1xuICAgIH1cblxuICAgIHN0YXRlLmhvc3RIZWlnaHQgPSB0aGlzLl9nZXRIaWdoZXN0Q29sdW1uKHN0YXRlLmdyaWRSb3dFbEhlaWdodHMpLmhpZ2hlc3RDb2x1bW5IZWlnaHQgLSBzdGF0ZS5nYXA7XG5cbiAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJ2hlaWdodCcsIGAke3N0YXRlLmhvc3RIZWlnaHR9cHhgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZXRSZXNpemVFdmVudCgpIHtcbiAgICB0aGlzLl9kaWRSZXNpemUkLm5leHQodHJ1ZSk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRIb3N0RGltZW5zaW9ucygpIHtcbiAgICByZXR1cm4gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2V0Q29sdW1uV2lkdGgod2lkdGg6IG51bWJlcikge1xuICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1ldC1tYXNvbnJ5LWNvbHVtbi13aWR0aCcsIGAke3dpZHRofXB4YCk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRMb3dlc3RDb2x1bW4gPSAoY29sdW1uSGVpZ2h0czogbnVtYmVyW11bXSkgPT4ge1xuICAgIGxldCBsb3dlc3RDb2x1bW5IZWlnaHQgPSBjb2x1bW5IZWlnaHRzWzBdWzBdO1xuICAgIGxldCBsb3dlc3RDb2x1bW5JbmRleCA9IDA7XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvbHVtbkhlaWdodHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGNvbHVtbkhlaWdodCA9IGNvbHVtbkhlaWdodHNbaV1bMF07XG5cbiAgICAgIGlmIChjb2x1bW5IZWlnaHQgPCBsb3dlc3RDb2x1bW5IZWlnaHQpIHtcbiAgICAgICAgbG93ZXN0Q29sdW1uSGVpZ2h0ID0gY29sdW1uSGVpZ2h0O1xuICAgICAgICBsb3dlc3RDb2x1bW5JbmRleCA9IGk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgbG93ZXN0Q29sdW1uSGVpZ2h0LCBsb3dlc3RDb2x1bW5JbmRleCB9O1xuICB9O1xuXG4gIHByaXZhdGUgX2dldEhpZ2hlc3RDb2x1bW4gPSAoY29sdW1uSGVpZ2h0czogbnVtYmVyW11bXSkgPT4ge1xuICAgIGxldCBoaWdoZXN0Q29sdW1uSGVpZ2h0ID0gY29sdW1uSGVpZ2h0c1swXVswXTtcbiAgICBsZXQgaGlnaGVzdENvbHVtbkluZGV4ID0gMDtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY29sdW1uSGVpZ2h0cy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgY29sdW1uSGVpZ2h0ID0gY29sdW1uSGVpZ2h0c1tpXVswXTtcblxuICAgICAgaWYgKGNvbHVtbkhlaWdodCA+PSBoaWdoZXN0Q29sdW1uSGVpZ2h0KSB7XG4gICAgICAgIGhpZ2hlc3RDb2x1bW5IZWlnaHQgPSBjb2x1bW5IZWlnaHQ7XG4gICAgICAgIGhpZ2hlc3RDb2x1bW5JbmRleCA9IGk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgaGlnaGVzdENvbHVtbkhlaWdodCwgaGlnaGVzdENvbHVtbkluZGV4IH07XG4gIH07XG59XG4iXX0=
|
|
206
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFzb25yeS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL2NvbXBvbmVudHMvbWFzb25yeS9jb21wb25lbnRzL21hc29ucnkvbWFzb25yeS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsZUFBZSxFQUNmLFVBQVUsRUFDVixZQUFZLEVBQ1osVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ0wsZUFBZSxFQUNmLE1BQU0sRUFDTixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLGFBQWEsRUFDYixzQkFBc0IsRUFDdEIsZUFBZSxFQUNmLHNCQUFzQixFQUN0QixjQUFjLEdBQ2YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3JILE9BQU8sRUFBRSxrQkFBa0IsRUFBd0IsTUFBTSxnQkFBZ0IsQ0FBQzs7QUE2QjFFLE1BQU0sT0FBTyxnQkFBZ0I7SUFmN0I7UUFnQm1CLGNBQVMsR0FBRyxhQUFhLEVBQUUsQ0FBQztRQUM1QixnQkFBVyxHQUFHLE1BQU0sQ0FBMEIsVUFBVSxDQUFDLENBQUM7UUFDMUQsZUFBVSxHQUFHLE1BQU0sQ0FBQyxlQUFlLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQVlsRSxpQkFBWSxHQUFHLElBQUksZUFBZSxDQUFTLEdBQUcsQ0FBQyxDQUFDO1FBU2hELFVBQUssR0FBRyxJQUFJLGVBQWUsQ0FBUyxFQUFFLENBQUMsQ0FBQztRQUd2QyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFF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LFdBQVcsQ0FBQyxRQUFRLEVBQUUsR0FBRyxLQUFLLENBQUMsVUFBVSxJQUFJLENBQUMsQ0FBQztJQUN0RixDQUFDO0lBRVMsY0FBYztRQUN0QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRU8sa0JBQWtCO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQztJQUNoRSxDQUFDO0lBRU8sZUFBZSxDQUFDLEtBQWE7UUFDbkMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQywyQkFBMkIsRUFBRSxHQUFHLEtBQUssSUFBSSxDQUFDLENBQUM7SUFDOUYsQ0FBQzs4R0F6TlUsZ0JBQWdCO2tHQUFoQixnQkFBZ0IsaVNBS08sa0JBQWtCLG9EQWxCMUM7OztHQUdULCtUQVFTLHNCQUFzQjs7MkZBRXJCLGdCQUFnQjtrQkFmNUIsU0FBUzsrQkFDRSxZQUFZLFlBQ1o7OztHQUdULGNBRVcsSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CO3dCQUNKLEtBQUssRUFBRSxZQUFZO3FCQUNwQixXQUNRLENBQUMsc0JBQXNCLENBQUM7OEJBUWhCLE1BQU07c0JBRHRCLGVBQWU7dUJBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFO2dCQUl4RSxVQUFVO3NCQURiLEtBQUs7Z0JBVUYsR0FBRztzQkFETixLQUFLO2dCQVVHLFlBQVk7c0JBRHBCLE1BQU07Z0JBSUUsV0FBVztzQkFEbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBmb3J3YXJkUmVmLFxuICBpbmplY3QsXG4gIElucHV0LFxuICBudW1iZXJBdHRyaWJ1dGUsXG4gIE91dHB1dCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgY3JlYXRlRGVzdHJveSxcbiAgY3JlYXRlUmVhY3RpdmVCaW5kaW5ncyxcbiAgREVMQVlBQkxFX1RPS0VOLFxuICBPYnNlcnZlUmVzaXplRGlyZWN0aXZlLFxuICBUeXBlZFF1ZXJ5TGlzdCxcbn0gZnJvbSAnQGV0aGxldGUvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGRlYm91bmNlVGltZSwgb2YsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCB0YWtlVW50aWwsIHRhcCwgdGltZXIgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE1BU09OUllfSVRFTV9UT0tFTiwgTWFzb25yeUl0ZW1Db21wb25lbnQgfSBmcm9tICcuLi8uLi9wYXJ0aWFscyc7XG5cbnR5cGUgTWFzb25yeVN0YXRlID0ge1xuICBwcmVmZXJyZWRDb2x1bW5XaWR0aDogbnVtYmVyO1xuICBjb2x1bW5XaWR0aDogbnVtYmVyO1xuICBjb2x1bW5zOiBudW1iZXI7XG4gIGdyaWRSb3dFbEhlaWdodHM6IG51bWJlcltdW107XG4gIGhvc3RIZWlnaHQ6IG51bWJlcjtcbiAgaG9zdERpbWVuc2lvbnM6IERPTVJlY3QgfCBudWxsO1xuICBnYXA6IG51bWJlcjtcbiAgaXNJbml0aWFsaXplZDogYm9vbGVhbjtcbiAgaXRlbUNvdW50OiBudW1iZXI7XG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdldC1tYXNvbnJ5JyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IChldE9ic2VydmVSZXNpemUpPVwic2V0UmVzaXplRXZlbnQoKVwiPjwvZGl2PlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltldE1hc29ucnlJdGVtXSwgZXQtbWFzb25yeS1pdGVtLCBuZy1jb250YWluZXJcIiAvPlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9tYXNvbnJ5LmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdldC1tYXNvbnJ5JyxcbiAgfSxcbiAgaW1wb3J0czogW09ic2VydmVSZXNpemVEaXJlY3RpdmVdLFxufSlcbmV4cG9ydCBjbGFzcyBNYXNvbnJ5Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3kkID0gY3JlYXRlRGVzdHJveSgpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9lbGVtZW50UmVmID0gaW5qZWN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PihFbGVtZW50UmVmKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVsYXlhYmxlID0gaW5qZWN0KERFTEFZQUJMRV9UT0tFTiwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICBAQ29udGVudENoaWxkcmVuKGZvcndhcmRSZWYoKCkgPT4gTUFTT05SWV9JVEVNX1RPS0VOKSwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICBwcml2YXRlIHJlYWRvbmx5IF9pdGVtcz86IFR5cGVkUXVlcnlMaXN0PE1hc29ucnlJdGVtQ29tcG9uZW50PjtcblxuICBASW5wdXQoKVxuICBnZXQgY29sdW1XaWR0aCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9jb2x1bVdpZHRoJC5nZXRWYWx1ZSgpIHx8IDI1MDtcbiAgfVxuICBzZXQgY29sdW1XaWR0aCh2YWx1ZTogdW5rbm93bikge1xuICAgIHRoaXMuX2NvbHVtV2lkdGgkLm5leHQobnVtYmVyQXR0cmlidXRlKHZhbHVlLCAyNTApKTtcbiAgfVxuICBwcml2YXRlIF9jb2x1bVdpZHRoJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigyNTApO1xuXG4gIEBJbnB1dCgpXG4gIGdldCBnYXAoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fZ2FwJC5nZXRWYWx1ZSgpIHx8IDA7XG4gIH1cbiAgc2V0IGdhcCh2YWx1ZTogdW5rbm93bikge1xuICAgIHRoaXMuX2dhcCQubmV4dChudW1iZXJBdHRyaWJ1dGUodmFsdWUsIDE2KSk7XG4gIH1cbiAgcHJpdmF0ZSBfZ2FwJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigxNik7XG5cbiAgQE91dHB1dCgpXG4gIHJlYWRvbmx5IGluaXRpYWxpemluZyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAT3V0cHV0KClcbiAgcmVhZG9ubHkgaW5pdGlhbGl6ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfZGlkUmVzaXplJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9kaWRJbml0aWFsaXplJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9oaWRlT3ZlcmZsb3ckID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG5cbiAgcmVhZG9ubHkgX2JpbmRpbmdzID0gY3JlYXRlUmVhY3RpdmVCaW5kaW5ncyhcbiAgICB7XG4gICAgICBhdHRyaWJ1dGU6ICdjbGFzcy5ldC1tYXNvbnJ5LS1pbml0aWFsaXplZCcsXG4gICAgICBvYnNlcnZhYmxlOiB0aGlzLl9kaWRJbml0aWFsaXplJCxcbiAgICB9LFxuICAgIHtcbiAgICAgIGF0dHJpYnV0ZTogJ2NsYXNzLmV0LW1hc29ucnktLWhpZGUtb3ZlcmZsb3cnLFxuICAgICAgb2JzZXJ2YWJsZTogdGhpcy5faGlkZU92ZXJmbG93JCxcbiAgICB9LFxuICApO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3N0YXRlOiBNYXNvbnJ5U3RhdGUgPSB7XG4gICAgcHJlZmVycmVkQ29sdW1uV2lkdGg6IDAsXG4gICAgY29sdW1uV2lkdGg6IDAsXG4gICAgY29sdW1uczogMCxcbiAgICBncmlkUm93RWxIZWlnaHRzOiBbXSxcbiAgICBob3N0SGVpZ2h0OiAwLFxuICAgIGhvc3REaW1lbnNpb25zOiBudWxsLFxuICAgIGdhcDogMCxcbiAgICBpdGVtQ291bnQ6IDAsXG4gICAgaXNJbml0aWFsaXplZDogZmFsc2UsXG4gIH07XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5faXRlbXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9kZWxheWFibGU/LmVuYWJsZURlbGF5ZWQoKTtcblxuICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMuX2l0ZW1zLmNoYW5nZXMucGlwZShzdGFydFdpdGgodGhpcy5faXRlbXMpKSwgdGhpcy5fZGlkUmVzaXplJCwgdGhpcy5fY29sdW1XaWR0aCQsIHRoaXMuX2dhcCRdKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGRlYm91bmNlVGltZSgxKSxcbiAgICAgICAgdGFwKChbLCBkaWRSZXNpemUsIGNvbFdpZHRoLCBnYXBdKSA9PiB7XG4gICAgICAgICAgaWYgKGRpZFJlc2l6ZSkge1xuICAgICAgICAgICAgdGhpcy5fZGlkUmVzaXplJC5uZXh0KGZhbHNlKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBpc0NvbXBsZXRlSW52YWxpZCA9XG4gICAgICAgICAgICBkaWRSZXNpemUgfHwgY29sV2lkdGggIT09IHRoaXMuX3N0YXRlLnByZWZlcnJlZENvbHVtbldpZHRoIHx8IGdhcCAhPT0gdGhpcy5fc3RhdGUuZ2FwO1xuXG4gICAgICAgICAgdGhpcy5pbnZhbGlkYXRlKHsgcGFydGlhbDogIWlzQ29tcGxldGVJbnZhbGlkIH0pO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcblxuICAgIHRoaXMuX2RpZFJlc2l6ZSRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoKCkgPT4gdGhpcy5faGlkZU92ZXJmbG93JC5uZXh0KHRydWUpKSxcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IHRpbWVyKDE1MCkpLFxuICAgICAgICB0YXAoKCkgPT4gdGhpcy5faGlkZU92ZXJmbG93JC5uZXh0KGZhbHNlKSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG5cbiAgICB0aGlzLl9pdGVtcy5jaGFuZ2VzXG4gICAgICAucGlwZShcbiAgICAgICAgc3RhcnRXaXRoKHRoaXMuX2l0ZW1zKSxcbiAgICAgICAgc3dpdGNoTWFwKChpdGVtcykgPT5cbiAgICAgICAgICBpdGVtcy5sZW5ndGhcbiAgICAgICAgICAgID8gY29tYmluZUxhdGVzdChcbiAgICAgICAgICAgICAgICBpdGVtc1xuICAgICAgICAgICAgICAgICAgLnRvQXJyYXkoKVxuICAgICAgICAgICAgICAgICAgLmZpbHRlcigoaSk6IGkgaXMgTWFzb25yeUl0ZW1Db21wb25lbnQgPT4gISFpKVxuICAgICAgICAgICAgICAgICAgLm1hcCgoaSkgPT4gaS5pc1Bvc2l0aW9uZWQkKSxcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgOiBvZihbXSksXG4gICAgICAgICksXG4gICAgICAgIHN3aXRjaE1hcCgocG9zaXRpb25lZCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGFsbFBvc2l0aW9uZWQgPSBwb3NpdGlvbmVkLmV2ZXJ5KChpKSA9PiBpKTtcblxuICAgICAgICAgIGlmICghYWxsUG9zaXRpb25lZCkge1xuICAgICAgICAgICAgdGhpcy5fZGlkSW5pdGlhbGl6ZSQubmV4dChhbGxQb3NpdGlvbmVkKTtcbiAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6aW5nLmVtaXQoKTtcbiAgICAgICAgICAgIHRoaXMuX2RlbGF5YWJsZT8uZW5hYmxlRGVsYXllZCgpO1xuICAgICAgICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB0aW1lcigxMDApLnBpcGUoXG4gICAgICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLl9kaWRJbml0aWFsaXplJC5uZXh0KHRydWUpO1xuICAgICAgICAgICAgICB0aGlzLl9kZWxheWFibGU/LmRpc2FibGVEZWxheWVkKCk7XG4gICAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQuZW1pdCgpO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgKTtcbiAgICAgICAgfSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBpbnZhbGlkYXRlKGNvbmZpZz86IHsgcGFydGlhbD86IGJvb2xlYW4gfSkge1xuICAgIGNvbnN0IGl0ZW1MaXN0ID0gdGhpcy5faXRlbXM7XG4gICAgY29uc3Qgc3RhdGUgPSB0aGlzLl9zdGF0ZTtcblxuICAgIGlmICghaXRlbUxpc3QpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBpdGVtcyA9IGl0ZW1MaXN0LnRvQXJyYXkoKS5maWx0ZXIoKGkpOiBpIGlzIE1hc29ucnlJdGVtQ29tcG9uZW50ID0+ICEhaSk7XG5cbiAgICBpZiAoIWNvbmZpZz8ucGFydGlhbCB8fCAhc3RhdGUuaXNJbml0aWFsaXplZCkge1xuICAgICAgc3RhdGUucHJlZmVycmVkQ29sdW1uV2lkdGggPSB0aGlzLmNvbHVtV2lkdGg7XG4gICAgICBzdGF0ZS5ob3N0RGltZW5zaW9ucyA9IHRoaXMuX2dldEhvc3REaW1lbnNpb25zKCk7XG4gICAgICBzdGF0ZS5jb2x1bW5zID0gTWF0aC5mbG9vcihzdGF0ZS5ob3N0RGltZW5zaW9ucy53aWR0aCAvIHRoaXMuY29sdW1XaWR0aCk7XG4gICAgICBzdGF0ZS5nYXAgPSB0aGlzLmdhcDtcbiAgICAgIHN0YXRlLml0ZW1Db3VudCA9IGl0ZW1zLmxlbmd0aDtcbiAgICAgIHN0YXRlLmNvbHVtbldpZHRoID0gKHN0YXRlLmhvc3REaW1lbnNpb25zLndpZHRoIC0gKHN0YXRlLmNvbHVtbnMgLSAxKSAqIHN0YXRlLmdhcCkgLyBzdGF0ZS5jb2x1bW5zO1xuICAgICAgdGhpcy5fc2V0Q29sdW1uV2lkdGgoc3RhdGUuY29sdW1uV2lkdGgpO1xuXG4gICAgICAvKipcbiAgICAgICAqIERhdGEgc3RydWN0dXJlOlxuICAgICAgICogW1xuICAgICAgICogIFtjdXJyZW50VG90YWxIZWlnaHRPZkNvbCwgaXRlbUhlaWdodCwgaXRlbUhlaWdodCwgaXRlbUhlaWdodF0sXG4gICAgICAgKiAgW2N1cnJlbnRUb3RhbEhlaWdodE9mQ29sLCBpdGVtSGVpZ2h0LCBpdGVtSGVpZ2h0LCBpdGVtSGVpZ2h0XSxcbiAgICAgICAqIF1cbiAgICAgICAqL1xuICAgICAgc3RhdGUuZ3JpZFJvd0VsSGVpZ2h0cyA9IEFycmF5LmZyb20oeyBsZW5ndGg6IHN0YXRlLmNvbHVtbnMgfSkubWFwKCgpID0+IFswXSk7XG5cbiAgICAgIHRoaXMuX3BhaW50TWFzb25yeSgwLCBpdGVtcyk7XG5cbiAgICAgIHN0YXRlLmlzSW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBmcm9tSW5kZXggPSBpdGVtcy5maW5kSW5kZXgoKGl0ZW0pID0+ICFpdGVtLmlzUG9zaXRpb25lZCk7XG5cbiAgICAgIC8vIGl0ZW0gY291bnQgMjAgZnJvbUluZGV4IDIwICsgMSAtPiAyMSA9PiBwYXJ0aWFsIGludmFsaWRhdGlvblxuICAgICAgaWYgKGZyb21JbmRleCArIDEgPiBzdGF0ZS5pdGVtQ291bnQpIHtcbiAgICAgICAgc3RhdGUuaXRlbUNvdW50ID0gaXRlbXMubGVuZ3RoO1xuICAgICAgICB0aGlzLl9wYWludE1hc29ucnkoZnJvbUluZGV4LCBpdGVtcyk7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICAvLyBkbyBhIGZ1bGwgaW52YWxpZGF0aW9uIHRoZSBmcm9tSW5kZXggaXMgbm90IHRoZSBmaXJzdCBuZXcgaXRlbVxuICAgICAgdGhpcy5pbnZhbGlkYXRlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfcGFpbnRNYXNvbnJ5KGZyb21JbmRleCA9IDAsIGl0ZW1zOiBNYXNvbnJ5SXRlbUNvbXBvbmVudFtdKSB7XG4gICAgY29uc3Qgc3RhdGUgPSB0aGlzLl9zdGF0ZTtcblxuICAgIGZvciAobGV0IGl0ZW1JbmRleCA9IGZyb21JbmRleDsgaXRlbUluZGV4IDwgaXRlbXMubGVuZ3RoOyBpdGVtSW5kZXgrKykge1xuICAgICAgY29uc3QgaXRlbSA9IGl0ZW1zW2l0ZW1JbmRleF07XG5cbiAgICAgIGlmICghaXRlbSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgaW5pdGlhbEl0ZW1EaW1lbnNpb25zID0gaXRlbS5pbml0aWFsRGltZW5zaW9ucztcbiAgICAgIGNvbnN0IHVwZGF0ZWREaW1lbnNpb25zID0gaXRlbS5kaW1lbnNpb25zO1xuXG4gICAgICBpZiAoIWluaXRpYWxJdGVtRGltZW5zaW9ucyB8fCAhdXBkYXRlZERpbWVuc2lvbnMpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHsgbG93ZXN0Q29sdW1uSGVpZ2h0LCBsb3dlc3RDb2x1bW5JbmRleCB9ID0gdGhpcy5fZ2V0TG93ZXN0Q29sdW1uKHN0YXRlLmdyaWRSb3dFbEhlaWdodHMpO1xuXG4gICAgICBjb25zdCB4ID0gc3RhdGUuY29sdW1uV2lkdGggKiBsb3dlc3RDb2x1bW5JbmRleCArIGxvd2VzdENvbHVtbkluZGV4ICogc3RhdGUuZ2FwO1xuXG4gICAgICBpdGVtLnNldFBvc2l0aW9uKHgsIGxvd2VzdENvbHVtbkhlaWdodCwgdXBkYXRlZERpbWVuc2lvbnMuaGVpZ2h0KTtcblxuICAgICAgc3RhdGUuZ3JpZFJvd0VsSGVpZ2h0c1tsb3dlc3RDb2x1bW5JbmRleF0hLnB1c2godXBkYXRlZERpbWVuc2lvbnMuaGVpZ2h0KTtcbiAgICAgIHN0YXRlLmdyaWRSb3dFbEhlaWdodHNbbG93ZXN0Q29sdW1uSW5kZXhdIVswXSArPSB1cGRhdGVkRGltZW5zaW9ucy5oZWlnaHQgKyBzdGF0ZS5nYXA7XG4gICAgfVxuXG4gICAgc3RhdGUuaG9zdEhlaWdodCA9IHRoaXMuX2dldEhpZ2hlc3RDb2x1bW4oc3RhdGUuZ3JpZFJvd0VsSGVpZ2h0cykuaGlnaGVzdENvbHVtbkhlaWdodCAtIHN0YXRlLmdhcDtcblxuICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnaGVpZ2h0JywgYCR7c3RhdGUuaG9zdEhlaWdodH1weGApO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNldFJlc2l6ZUV2ZW50KCkge1xuICAgIHRoaXMuX2RpZFJlc2l6ZSQubmV4dCh0cnVlKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldEhvc3REaW1lbnNpb25zKCkge1xuICAgIHJldHVybiB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gIH1cblxuICBwcml2YXRlIF9zZXRDb2x1bW5XaWR0aCh3aWR0aDogbnVtYmVyKSB7XG4gICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWV0LW1hc29ucnktY29sdW1uLXdpZHRoJywgYCR7d2lkdGh9cHhgKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldExvd2VzdENvbHVtbiA9IChjb2x1bW5IZWlnaHRzOiBudW1iZXJbXVtdKSA9PiB7XG4gICAgbGV0IGxvd2VzdENvbHVtbkhlaWdodCA9IGNvbHVtbkhlaWdodHNbMF0/LlswXSA/PyAwO1xuICAgIGxldCBsb3dlc3RDb2x1bW5JbmRleCA9IDA7XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvbHVtbkhlaWdodHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGNvbHVtbkhlaWdodCA9IGNvbHVtbkhlaWdodHNbaV0/LlswXTtcblxuICAgICAgaWYgKGNvbHVtbkhlaWdodCAhPT0gdW5kZWZpbmVkICYmIGNvbHVtbkhlaWdodCA8IGxvd2VzdENvbHVtbkhlaWdodCkge1xuICAgICAgICBsb3dlc3RDb2x1bW5IZWlnaHQgPSBjb2x1bW5IZWlnaHQ7XG4gICAgICAgIGxvd2VzdENvbHVtbkluZGV4ID0gaTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4geyBsb3dlc3RDb2x1bW5IZWlnaHQsIGxvd2VzdENvbHVtbkluZGV4IH07XG4gIH07XG5cbiAgcHJpdmF0ZSBfZ2V0SGlnaGVzdENvbHVtbiA9IChjb2x1bW5IZWlnaHRzOiBudW1iZXJbXVtdKSA9PiB7XG4gICAgbGV0IGhpZ2hlc3RDb2x1bW5IZWlnaHQgPSBjb2x1bW5IZWlnaHRzWzBdPy5bMF0gPz8gMDtcbiAgICBsZXQgaGlnaGVzdENvbHVtbkluZGV4ID0gMDtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY29sdW1uSGVpZ2h0cy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgY29sdW1uSGVpZ2h0ID0gY29sdW1uSGVpZ2h0c1tpXT8uWzBdO1xuXG4gICAgICBpZiAoY29sdW1uSGVpZ2h0ICE9PSB1bmRlZmluZWQgJiYgY29sdW1uSGVpZ2h0ID49IGhpZ2hlc3RDb2x1bW5IZWlnaHQpIHtcbiAgICAgICAgaGlnaGVzdENvbHVtbkhlaWdodCA9IGNvbHVtbkhlaWdodDtcbiAgICAgICAgaGlnaGVzdENvbHVtbkluZGV4ID0gaTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4geyBoaWdoZXN0Q29sdW1uSGVpZ2h0LCBoaWdoZXN0Q29sdW1uSW5kZXggfTtcbiAgfTtcbn1cbiJdfQ==
|
|
@@ -102,7 +102,7 @@ export class BottomSheetServiceBase {
|
|
|
102
102
|
_closeBottomSheets(bottomSheets) {
|
|
103
103
|
let i = bottomSheets.length;
|
|
104
104
|
while (i--) {
|
|
105
|
-
bottomSheets[i]
|
|
105
|
+
bottomSheets[i]?.close();
|
|
106
106
|
}
|
|
107
107
|
}
|
|
108
108
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: BottomSheetServiceBase, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive }); }
|
|
@@ -111,4 +111,4 @@ export class BottomSheetServiceBase {
|
|
|
111
111
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: BottomSheetServiceBase, decorators: [{
|
|
112
112
|
type: Directive
|
|
113
113
|
}], ctorParameters: function () { return [{ type: i1.Overlay }, { type: i0.Injector }, { type: undefined }, { type: undefined }, { type: undefined }, { type: i0.Type }, { type: i0.Type }, { type: i0.InjectionToken }]; } });
|
|
114
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm90dG9tLXNoZWV0LWJhc2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3NyYy9saWIvY29tcG9uZW50cy9vdmVybGF5L2NvbXBvbmVudHMvYm90dG9tLXNoZWV0L3NlcnZpY2VzL2JvdHRvbS1zaGVldC1iYXNlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sSUFBSSxTQUFTLEVBQUUsWUFBWSxJQUFJLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzNGLE9BQU8sRUFBaUIsT0FBTyxFQUFrQixNQUFNLHNCQUFzQixDQUFDO0FBQzlFLE9BQU8sRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBMEIsSUFBSSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xHLE9BQU8sRUFBYyxPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFHbkQsT0FBTyxFQUFrQix1QkFBdUIsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7O0FBRW5FLElBQUksUUFBUSxHQUFHLENBQUMsQ0FBQztBQUdqQixNQUFNLE9BQWdCLHNCQUFzQjtJQVkxQyxJQUFJLGdCQUFnQjtRQUNsQixPQUFPLElBQUksQ0FBQyx5QkFBeUI7WUFDbkMsQ0FBQyxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxnQkFBZ0I7WUFDakQsQ0FBQyxDQUFDLElBQUksQ0FBQyw0QkFBNEIsQ0FBQztJQUN4QyxDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMseUJBQXlCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQztJQUNwSCxDQUFDO0lB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QUMsRUFBRTtnQkFDZCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFFdkMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUU7b0JBQ2pDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO2lCQUNsQzthQUNGO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLGNBQWUsQ0FBQztRQUV2QiwyREFBMkQ7SUFDN0QsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELGtCQUFrQixDQUFDLEVBQVU7UUFDM0IsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1FBQzNELElBQUksQ0FBQywwQkFBMEIsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUMzQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUVPLGtCQUFrQixDQUFDLFlBQThCO1FBQ3ZELElBQUksQ0FBQyxHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUM7UUFFNUIsT0FBTyxDQUFDLEVBQUUsRUFBRTtZQUNWLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUN6QjtJQUNILENBQUM7OEdBMUltQixzQkFBc0I7a0dBQXRCLHNCQUFzQjs7MkZBQXRCLHNCQUFzQjtrQkFEM0MsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpYWxvZyBhcyBDZGtEaWFsb2csIERpYWxvZ0NvbmZpZyBhcyBDZGtEaWFsb2dDb25maWcgfSBmcm9tICdAYW5ndWxhci9jZGsvZGlhbG9nJztcbmltcG9ydCB7IENvbXBvbmVudFR5cGUsIE92ZXJsYXksIFNjcm9sbFN0cmF0ZWd5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBJbmplY3Rpb25Ub2tlbiwgSW5qZWN0b3IsIE9uRGVzdHJveSwgVGVtcGxhdGVSZWYsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIGRlZmVyLCBzdGFydFdpdGggfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEJPVFRPTV9TSEVFVF9DT05GSUcgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgQm90dG9tU2hlZXRDb250YWluZXJCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vcGFydGlhbHMnO1xuaW1wb3J0IHsgQm90dG9tU2hlZXRDb25maWcgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBCb3R0b21TaGVldFJlZiwgY3JlYXRlQm90dG9tU2hlZXRDb25maWcgfSBmcm9tICcuLi91dGlscyc7XG5cbmxldCB1bmlxdWVJZCA9IDA7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJvdHRvbVNoZWV0U2VydmljZUJhc2U8QyBleHRlbmRzIEJvdHRvbVNoZWV0Q29udGFpbmVyQmFzZUNvbXBvbmVudD4gaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHJlYWRvbmx5IF9vcGVuQm90dG9tU2hlZXRzQXRUaGlzTGV2ZWw6IEJvdHRvbVNoZWV0UmVmW10gPSBbXTtcbiAgcHJpdmF0ZSByZWFkb25seSBfYWZ0ZXJBbGxDbG9zZWRBdFRoaXNMZXZlbCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2FmdGVyT3BlbmVkQXRUaGlzTGV2ZWwgPSBuZXcgU3ViamVjdDxCb3R0b21TaGVldFJlZj4oKTtcbiAgcHJpdmF0ZSBfc2Nyb2xsU3RyYXRlZ3k6ICgpID0+IFNjcm9sbFN0cmF0ZWd5O1xuICBwcm90ZWN0ZWQgX2lkUHJlZml4ID0gJ2V0LWJvdHRvbS1zaGVldC0nO1xuICBwcml2YXRlIF9kaWFsb2c6IENka0RpYWxvZztcblxuICByZWFkb25seSBhZnRlckFsbENsb3NlZDogT2JzZXJ2YWJsZTx2b2lkPiA9IGRlZmVyKCgpID0+XG4gICAgdGhpcy5vcGVuQm90dG9tU2hlZXRzLmxlbmd0aCA/IHRoaXMuX2dldEFmdGVyQWxsQ2xvc2VkKCkgOiB0aGlzLl9nZXRBZnRlckFsbENsb3NlZCgpLnBpcGUoc3RhcnRXaXRoKHVuZGVmaW5lZCkpLFxuICApIGFzIE9ic2VydmFibGU8dm9pZD47XG5cbiAgZ2V0IG9wZW5Cb3R0b21TaGVldHMoKTogQm90dG9tU2hlZXRSZWZbXSB7XG4gICAgcmV0dXJuIHRoaXMuX3BhcmVudEJvdHRvbVNoZWV0U2VydmljZVxuICAgICAgPyB0aGlzLl9wYXJlbnRCb3R0b21TaGVldFNlcnZpY2Uub3BlbkJvdHRvbVNoZWV0c1xuICAgICAgOiB0aGlzLl9vcGVuQm90dG9tU2hlZXRzQXRUaGlzTGV2ZWw7XG4gIH1cblxuICBnZXQgYWZ0ZXJPcGVuZWQoKTogU3ViamVjdDxCb3R0b21TaGVldFJlZj4ge1xuICAgIHJldHVybiB0aGlzLl9wYXJlbnRCb3R0b21TaGVldFNlcnZpY2UgPyB0aGlzLl9wYXJlbnRCb3R0b21TaGVldFNlcnZpY2UuYWZ0ZXJPcGVuZWQgOiB0aGlzLl9hZnRlck9wZW5lZEF0VGhpc0xldmVsO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0QWZ0ZXJBbGxDbG9zZWQoKTogU3ViamVjdDx2b2lkPiB7XG4gICAgY29uc3QgcGFyZW50ID0gdGhpcy5fcGFyZW50Qm90dG9tU2hlZXRTZXJ2aWNlO1xuICAgIHJldHVybiBwYXJlbnQgPyBwYXJlbnQuX2dldEFmdGVyQWxsQ2xvc2VkKCkgOiB0aGlzLl9hZnRlckFsbENsb3NlZEF0VGhpc0xldmVsO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfb3ZlcmxheTogT3ZlcmxheSxcbiAgICBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJpdmF0ZSBfZGVmYXVsdE9wdGlvbnM6IEJvdHRvbVNoZWV0Q29uZmlnIHwgdW5kZWZpbmVkLFxuICAgIHByaXZhdGUgX3BhcmVudEJvdHRvbVNoZWV0U2VydmljZTogQm90dG9tU2hlZXRTZXJ2aWNlQmFzZTxDPiB8IHVuZGVmaW5lZCxcbiAgICBzY3JvbGxTdHJhdGVneTogKCkgPT4gU2Nyb2xsU3RyYXRlZ3ksXG4gICAgcHJpdmF0ZSBfYm90dG9tU2hlZXRSZWZDb25zdHJ1Y3RvcjogVHlwZTxCb3R0b21TaGVldFJlZj4sXG4gICAgcHJpdmF0ZSBfYm90dG9tU2hlZXRDb250YWluZXJUeXBlOiBUeXBlPEM+LFxuICAgIHByaXZhdGUgX2JvdHRvbVNoZWV0RGF0YVRva2VuOiBJbmplY3Rpb25Ub2tlbjx1bmtub3duPixcbiAgKSB7XG4gICAgdGhpcy5fc2Nyb2xsU3RyYXRlZ3kgPSBzY3JvbGxTdHJhdGVneTtcbiAgICB0aGlzLl9kaWFsb2cgPSBpbmplY3Rvci5nZXQoQ2RrRGlhbG9nKTtcbiAgfVxuXG4gIG9wZW48VCwgRCA9IHVua25vd24sIFIgPSB1bmtub3duPihjb21wb25lbnQ6IENvbXBvbmVudFR5cGU8VD4sIGNvbmZpZz86IEJvdHRvbVNoZWV0Q29uZmlnPEQ+KTogQm90dG9tU2hlZXRSZWY8VCwgUj47XG5cbiAgb3BlbjxULCBEID0gdW5rbm93biwgUiA9IHVua25vd24+KHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxUPiwgY29uZmlnPzogQm90dG9tU2hlZXRDb25maWc8RD4pOiBCb3R0b21TaGVldFJlZjxULCBSPjtcblxuICBvcGVuPFQsIEQgPSB1bmtub3duLCBSID0gdW5rbm93bj4oXG4gICAgdGVtcGxhdGU6IENvbXBvbmVudFR5cGU8VD4gfCBUZW1wbGF0ZVJlZjxUPixcbiAgICBjb25maWc/OiBCb3R0b21TaGVldENvbmZpZzxEPixcbiAgKTogQm90dG9tU2hlZXRSZWY8VCwgUj47XG5cbiAgb3BlbjxULCBEID0gdW5rbm93biwgUiA9IHVua25vd24+KFxuICAgIGNvbXBvbmVudE9yVGVtcGxhdGVSZWY6IENvbXBvbmVudFR5cGU8VD4gfCBUZW1wbGF0ZVJlZjxUPixcbiAgICBjb25maWc/OiBCb3R0b21TaGVldENvbmZpZzxEPixcbiAgKTogQm90dG9tU2hlZXRSZWY8VCwgUj4ge1xuICAgIGxldCBib3R0b21TaGVldFJlZjogQm90dG9tU2hlZXRSZWY8VCwgUj47XG4gICAgY29uZmlnID0gY3JlYXRlQm90dG9tU2hlZXRDb25maWc8RD4odGhpcy5fZGVmYXVsdE9wdGlvbnMgYXMgQm90dG9tU2hlZXRDb25maWc8RD4sIGNvbmZpZyk7XG4gICAgY29uZmlnLmlkID0gY29uZmlnLmlkIHx8IGAke3RoaXMuX2lkUHJlZml4fSR7dW5pcXVlSWQrK31gO1xuICAgIGNvbmZpZy5zY3JvbGxTdHJhdGVneSA9IGNvbmZpZy5zY3JvbGxTdHJhdGVneSB8fCB0aGlzLl9zY3JvbGxTdHJhdGVneSgpO1xuXG4gICAgY29uc3QgY2RrUmVmID0gdGhpcy5fZGlhbG9nLm9wZW48UiwgRCwgVD4oY29tcG9uZW50T3JUZW1wbGF0ZVJlZiwge1xuICAgICAgLi4uY29uZmlnLFxuICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgIG1heFdpZHRoOiAnNjQwcHgnLFxuICAgICAgbWF4SGVpZ2h0OiAnY2FsYygxMDAlIC0gNzJweCknLFxuICAgICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgICBwb3NpdGlvblN0cmF0ZWd5OiB0aGlzLl9vdmVybGF5LnBvc2l0aW9uKCkuZ2xvYmFsKCkuY2VudGVySG9yaXpvbnRhbGx5KCkuYm90dG9tKCcwJyksXG4gICAgICBkaXNhYmxlQ2xvc2U6IHRydWUsXG4gICAgICBjbG9zZU9uRGVzdHJveTogZmFsc2UsXG4gICAgICBjb250YWluZXI6IHtcbiAgICAgICAgdHlwZTogdGhpcy5fYm90dG9tU2hlZXRDb250YWluZXJUeXBlLFxuICAgICAgICBwcm92aWRlcnM6ICgpID0+IFtcbiAgICAgICAgICB7IHByb3ZpZGU6IEJPVFRPTV9TSEVFVF9DT05GSUcsIHVzZVZhbHVlOiBjb25maWcgfSxcbiAgICAgICAgICB7IHByb3ZpZGU6IENka0RpYWxvZ0NvbmZpZywgdXNlVmFsdWU6IGNvbmZpZyB9LFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICAgIHRlbXBsYXRlQ29udGV4dDogKCkgPT4gKHsgZGlhbG9nUmVmOiBib3R0b21TaGVldFJlZiB9KSxcbiAgICAgIHByb3ZpZGVyczogKHJlZiwgY2RrQ29uZmlnLCBjb250YWluZXIpID0+IHtcbiAgICAgICAgaWYgKGNvbmZpZz8ub3ZlcmxheUNsYXNzKSB7XG4gICAgICAgICAgY29uc3Qgb3ZlcmxheVJlZkNsYXNzZXMgPSBBcnJheS5pc0FycmF5KGNvbmZpZy5vdmVybGF5Q2xhc3MpXG4gICAgICAgICAgICA/IGNvbmZpZy5vdmVybGF5Q2xhc3Muam9pbignICcpXG4gICAgICAgICAgICA6IGNvbmZpZy5vdmVybGF5Q2xhc3M7XG5cbiAgICAgICAgICByZWYub3ZlcmxheVJlZi5ob3N0RWxlbWVudC5jbGFzc0xpc3QuYWRkKG92ZXJsYXlSZWZDbGFzc2VzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGJvdHRvbVNoZWV0UmVmID0gbmV3IHRoaXMuX2JvdHRvbVNoZWV0UmVmQ29uc3RydWN0b3IocmVmLCBjb25maWcsIGNvbnRhaW5lcik7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgeyBwcm92aWRlOiB0aGlzLl9ib3R0b21TaGVldENvbnRhaW5lclR5cGUsIHVzZVZhbHVlOiBjb250YWluZXIgfSxcbiAgICAgICAgICB7IHByb3ZpZGU6IHRoaXMuX2JvdHRvbVNoZWV0RGF0YVRva2VuLCB1c2VWYWx1ZTogY2RrQ29uZmlnLmRhdGEgfSxcbiAgICAgICAgICB7IHByb3ZpZGU6IHRoaXMuX2JvdHRvbVNoZWV0UmVmQ29uc3RydWN0b3IsIHVzZVZhbHVlOiBib3R0b21TaGVldFJlZiB9LFxuICAgICAgICBdO1xuICAgICAgfSxcbiAgICB9KTtcblxuICAgIC8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1ub24tbnVsbC1hc3NlcnRpb24qL1xuXG4gICAgYm90dG9tU2hlZXRSZWYhLmNvbXBvbmVudEluc3RhbmNlID0gY2RrUmVmLmNvbXBvbmVudEluc3RhbmNlITtcblxuICAgIHRoaXMub3BlbkJvdHRvbVNoZWV0cy5wdXNoKGJvdHRvbVNoZWV0UmVmISk7XG4gICAgdGhpcy5hZnRlck9wZW5lZC5uZXh0KGJvdHRvbVNoZWV0UmVmISk7XG5cbiAgICBib3R0b21TaGVldFJlZiEuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgY29uc3QgaW5kZXggPSB0aGlzLm9wZW5Cb3R0b21TaGVldHMuaW5kZXhPZihib3R0b21TaGVldFJlZik7XG5cbiAgICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICAgIHRoaXMub3BlbkJvdHRvbVNoZWV0cy5zcGxpY2UoaW5kZXgsIDEpO1xuXG4gICAgICAgIGlmICghdGhpcy5vcGVuQm90dG9tU2hlZXRzLmxlbmd0aCkge1xuICAgICAgICAgIHRoaXMuX2dldEFmdGVyQWxsQ2xvc2VkKCkubmV4dCgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gYm90dG9tU2hlZXRSZWYhO1xuXG4gICAgLyogZXNsaW50LWVuYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbm9uLW51bGwtYXNzZXJ0aW9uKi9cbiAgfVxuXG4gIGNsb3NlQWxsKCk6IHZvaWQge1xuICAgIHRoaXMuX2Nsb3NlQm90dG9tU2hlZXRzKHRoaXMub3BlbkJvdHRvbVNoZWV0cyk7XG4gIH1cblxuICBnZXRCb3R0b21TaGVldEJ5SWQoaWQ6IHN0cmluZyk6IEJvdHRvbVNoZWV0UmVmIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5vcGVuQm90dG9tU2hlZXRzLmZpbmQoKGJvdHRvbVNoZWV0KSA9PiBib3R0b21TaGVldC5pZCA9PT0gaWQpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fY2xvc2VCb3R0b21TaGVldHModGhpcy5fb3BlbkJvdHRvbVNoZWV0c0F0VGhpc0xldmVsKTtcbiAgICB0aGlzLl9hZnRlckFsbENsb3NlZEF0VGhpc0xldmVsLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fYWZ0ZXJPcGVuZWRBdFRoaXNMZXZlbC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2xvc2VCb3R0b21TaGVldHMoYm90dG9tU2hlZXRzOiBCb3R0b21TaGVldFJlZltdKSB7XG4gICAgbGV0IGkgPSBib3R0b21TaGVldHMubGVuZ3RoO1xuXG4gICAgd2hpbGUgKGktLSkge1xuICAgICAgYm90dG9tU2hlZXRzW2ldLmNsb3NlKCk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
114
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm90dG9tLXNoZWV0LWJhc2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3NyYy9saWIvY29tcG9uZW50cy9vdmVybGF5L2NvbXBvbmVudHMvYm90dG9tLXNoZWV0L3NlcnZpY2VzL2JvdHRvbS1zaGVldC1iYXNlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sSUFBSSxTQUFTLEVBQUUsWUFBWSxJQUFJLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzNGLE9BQU8sRUFBaUIsT0FBTyxFQUFrQixNQUFNLHNCQUFzQixDQUFDO0FBQzlFLE9BQU8sRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBMEIsSUFBSSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xHLE9BQU8sRUFBYyxPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFHbkQsT0FBTyxFQUFrQix1QkFBdUIsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7O0FBRW5FLElBQUksUUFBUSxHQUFHLENBQUMsQ0FBQztBQUdqQixNQUFNLE9BQWdCLHNCQUFzQjtJQVkxQyxJQUFJLGdCQUFnQjtRQUNsQixPQUFPLElBQUksQ0FBQyx5QkFBeUI7WUFDbkMsQ0FBQyxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxnQkFBZ0I7WUFDakQsQ0FBQyxDQUFDLElBQUksQ0FBQyw0QkFBNEIsQ0FBQztJQUN4QyxDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMseUJBQXlCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQztJQUNwSCxDQUFDO0lB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QUMsRUFBRTtnQkFDZCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFFdkMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUU7b0JBQ2pDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO2lCQUNsQzthQUNGO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLGNBQWUsQ0FBQztRQUV2QiwyREFBMkQ7SUFDN0QsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELGtCQUFrQixDQUFDLEVBQVU7UUFDM0IsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1FBQzNELElBQUksQ0FBQywwQkFBMEIsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUMzQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUVPLGtCQUFrQixDQUFDLFlBQThCO1FBQ3ZELElBQUksQ0FBQyxHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUM7UUFFNUIsT0FBTyxDQUFDLEVBQUUsRUFBRTtZQUNWLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQztTQUMxQjtJQUNILENBQUM7OEdBMUltQixzQkFBc0I7a0dBQXRCLHNCQUFzQjs7MkZBQXRCLHNCQUFzQjtrQkFEM0MsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpYWxvZyBhcyBDZGtEaWFsb2csIERpYWxvZ0NvbmZpZyBhcyBDZGtEaWFsb2dDb25maWcgfSBmcm9tICdAYW5ndWxhci9jZGsvZGlhbG9nJztcbmltcG9ydCB7IENvbXBvbmVudFR5cGUsIE92ZXJsYXksIFNjcm9sbFN0cmF0ZWd5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBJbmplY3Rpb25Ub2tlbiwgSW5qZWN0b3IsIE9uRGVzdHJveSwgVGVtcGxhdGVSZWYsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIGRlZmVyLCBzdGFydFdpdGggfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEJPVFRPTV9TSEVFVF9DT05GSUcgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgQm90dG9tU2hlZXRDb250YWluZXJCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vcGFydGlhbHMnO1xuaW1wb3J0IHsgQm90dG9tU2hlZXRDb25maWcgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBCb3R0b21TaGVldFJlZiwgY3JlYXRlQm90dG9tU2hlZXRDb25maWcgfSBmcm9tICcuLi91dGlscyc7XG5cbmxldCB1bmlxdWVJZCA9IDA7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJvdHRvbVNoZWV0U2VydmljZUJhc2U8QyBleHRlbmRzIEJvdHRvbVNoZWV0Q29udGFpbmVyQmFzZUNvbXBvbmVudD4gaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHJlYWRvbmx5IF9vcGVuQm90dG9tU2hlZXRzQXRUaGlzTGV2ZWw6IEJvdHRvbVNoZWV0UmVmW10gPSBbXTtcbiAgcHJpdmF0ZSByZWFkb25seSBfYWZ0ZXJBbGxDbG9zZWRBdFRoaXNMZXZlbCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2FmdGVyT3BlbmVkQXRUaGlzTGV2ZWwgPSBuZXcgU3ViamVjdDxCb3R0b21TaGVldFJlZj4oKTtcbiAgcHJpdmF0ZSBfc2Nyb2xsU3RyYXRlZ3k6ICgpID0+IFNjcm9sbFN0cmF0ZWd5O1xuICBwcm90ZWN0ZWQgX2lkUHJlZml4ID0gJ2V0LWJvdHRvbS1zaGVldC0nO1xuICBwcml2YXRlIF9kaWFsb2c6IENka0RpYWxvZztcblxuICByZWFkb25seSBhZnRlckFsbENsb3NlZDogT2JzZXJ2YWJsZTx2b2lkPiA9IGRlZmVyKCgpID0+XG4gICAgdGhpcy5vcGVuQm90dG9tU2hlZXRzLmxlbmd0aCA/IHRoaXMuX2dldEFmdGVyQWxsQ2xvc2VkKCkgOiB0aGlzLl9nZXRBZnRlckFsbENsb3NlZCgpLnBpcGUoc3RhcnRXaXRoKHVuZGVmaW5lZCkpLFxuICApIGFzIE9ic2VydmFibGU8dm9pZD47XG5cbiAgZ2V0IG9wZW5Cb3R0b21TaGVldHMoKTogQm90dG9tU2hlZXRSZWZbXSB7XG4gICAgcmV0dXJuIHRoaXMuX3BhcmVudEJvdHRvbVNoZWV0U2VydmljZVxuICAgICAgPyB0aGlzLl9wYXJlbnRCb3R0b21TaGVldFNlcnZpY2Uub3BlbkJvdHRvbVNoZWV0c1xuICAgICAgOiB0aGlzLl9vcGVuQm90dG9tU2hlZXRzQXRUaGlzTGV2ZWw7XG4gIH1cblxuICBnZXQgYWZ0ZXJPcGVuZWQoKTogU3ViamVjdDxCb3R0b21TaGVldFJlZj4ge1xuICAgIHJldHVybiB0aGlzLl9wYXJlbnRCb3R0b21TaGVldFNlcnZpY2UgPyB0aGlzLl9wYXJlbnRCb3R0b21TaGVldFNlcnZpY2UuYWZ0ZXJPcGVuZWQgOiB0aGlzLl9hZnRlck9wZW5lZEF0VGhpc0xldmVsO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0QWZ0ZXJBbGxDbG9zZWQoKTogU3ViamVjdDx2b2lkPiB7XG4gICAgY29uc3QgcGFyZW50ID0gdGhpcy5fcGFyZW50Qm90dG9tU2hlZXRTZXJ2aWNlO1xuICAgIHJldHVybiBwYXJlbnQgPyBwYXJlbnQuX2dldEFmdGVyQWxsQ2xvc2VkKCkgOiB0aGlzLl9hZnRlckFsbENsb3NlZEF0VGhpc0xldmVsO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfb3ZlcmxheTogT3ZlcmxheSxcbiAgICBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJpdmF0ZSBfZGVmYXVsdE9wdGlvbnM6IEJvdHRvbVNoZWV0Q29uZmlnIHwgdW5kZWZpbmVkLFxuICAgIHByaXZhdGUgX3BhcmVudEJvdHRvbVNoZWV0U2VydmljZTogQm90dG9tU2hlZXRTZXJ2aWNlQmFzZTxDPiB8IHVuZGVmaW5lZCxcbiAgICBzY3JvbGxTdHJhdGVneTogKCkgPT4gU2Nyb2xsU3RyYXRlZ3ksXG4gICAgcHJpdmF0ZSBfYm90dG9tU2hlZXRSZWZDb25zdHJ1Y3RvcjogVHlwZTxCb3R0b21TaGVldFJlZj4sXG4gICAgcHJpdmF0ZSBfYm90dG9tU2hlZXRDb250YWluZXJUeXBlOiBUeXBlPEM+LFxuICAgIHByaXZhdGUgX2JvdHRvbVNoZWV0RGF0YVRva2VuOiBJbmplY3Rpb25Ub2tlbjx1bmtub3duPixcbiAgKSB7XG4gICAgdGhpcy5fc2Nyb2xsU3RyYXRlZ3kgPSBzY3JvbGxTdHJhdGVneTtcbiAgICB0aGlzLl9kaWFsb2cgPSBpbmplY3Rvci5nZXQoQ2RrRGlhbG9nKTtcbiAgfVxuXG4gIG9wZW48VCwgRCA9IHVua25vd24sIFIgPSB1bmtub3duPihjb21wb25lbnQ6IENvbXBvbmVudFR5cGU8VD4sIGNvbmZpZz86IEJvdHRvbVNoZWV0Q29uZmlnPEQ+KTogQm90dG9tU2hlZXRSZWY8VCwgUj47XG5cbiAgb3BlbjxULCBEID0gdW5rbm93biwgUiA9IHVua25vd24+KHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxUPiwgY29uZmlnPzogQm90dG9tU2hlZXRDb25maWc8RD4pOiBCb3R0b21TaGVldFJlZjxULCBSPjtcblxuICBvcGVuPFQsIEQgPSB1bmtub3duLCBSID0gdW5rbm93bj4oXG4gICAgdGVtcGxhdGU6IENvbXBvbmVudFR5cGU8VD4gfCBUZW1wbGF0ZVJlZjxUPixcbiAgICBjb25maWc/OiBCb3R0b21TaGVldENvbmZpZzxEPixcbiAgKTogQm90dG9tU2hlZXRSZWY8VCwgUj47XG5cbiAgb3BlbjxULCBEID0gdW5rbm93biwgUiA9IHVua25vd24+KFxuICAgIGNvbXBvbmVudE9yVGVtcGxhdGVSZWY6IENvbXBvbmVudFR5cGU8VD4gfCBUZW1wbGF0ZVJlZjxUPixcbiAgICBjb25maWc/OiBCb3R0b21TaGVldENvbmZpZzxEPixcbiAgKTogQm90dG9tU2hlZXRSZWY8VCwgUj4ge1xuICAgIGxldCBib3R0b21TaGVldFJlZjogQm90dG9tU2hlZXRSZWY8VCwgUj47XG4gICAgY29uZmlnID0gY3JlYXRlQm90dG9tU2hlZXRDb25maWc8RD4odGhpcy5fZGVmYXVsdE9wdGlvbnMgYXMgQm90dG9tU2hlZXRDb25maWc8RD4sIGNvbmZpZyk7XG4gICAgY29uZmlnLmlkID0gY29uZmlnLmlkIHx8IGAke3RoaXMuX2lkUHJlZml4fSR7dW5pcXVlSWQrK31gO1xuICAgIGNvbmZpZy5zY3JvbGxTdHJhdGVneSA9IGNvbmZpZy5zY3JvbGxTdHJhdGVneSB8fCB0aGlzLl9zY3JvbGxTdHJhdGVneSgpO1xuXG4gICAgY29uc3QgY2RrUmVmID0gdGhpcy5fZGlhbG9nLm9wZW48UiwgRCwgVD4oY29tcG9uZW50T3JUZW1wbGF0ZVJlZiwge1xuICAgICAgLi4uY29uZmlnLFxuICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgIG1heFdpZHRoOiAnNjQwcHgnLFxuICAgICAgbWF4SGVpZ2h0OiAnY2FsYygxMDAlIC0gNzJweCknLFxuICAgICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgICBwb3NpdGlvblN0cmF0ZWd5OiB0aGlzLl9vdmVybGF5LnBvc2l0aW9uKCkuZ2xvYmFsKCkuY2VudGVySG9yaXpvbnRhbGx5KCkuYm90dG9tKCcwJyksXG4gICAgICBkaXNhYmxlQ2xvc2U6IHRydWUsXG4gICAgICBjbG9zZU9uRGVzdHJveTogZmFsc2UsXG4gICAgICBjb250YWluZXI6IHtcbiAgICAgICAgdHlwZTogdGhpcy5fYm90dG9tU2hlZXRDb250YWluZXJUeXBlLFxuICAgICAgICBwcm92aWRlcnM6ICgpID0+IFtcbiAgICAgICAgICB7IHByb3ZpZGU6IEJPVFRPTV9TSEVFVF9DT05GSUcsIHVzZVZhbHVlOiBjb25maWcgfSxcbiAgICAgICAgICB7IHByb3ZpZGU6IENka0RpYWxvZ0NvbmZpZywgdXNlVmFsdWU6IGNvbmZpZyB9LFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICAgIHRlbXBsYXRlQ29udGV4dDogKCkgPT4gKHsgZGlhbG9nUmVmOiBib3R0b21TaGVldFJlZiB9KSxcbiAgICAgIHByb3ZpZGVyczogKHJlZiwgY2RrQ29uZmlnLCBjb250YWluZXIpID0+IHtcbiAgICAgICAgaWYgKGNvbmZpZz8ub3ZlcmxheUNsYXNzKSB7XG4gICAgICAgICAgY29uc3Qgb3ZlcmxheVJlZkNsYXNzZXMgPSBBcnJheS5pc0FycmF5KGNvbmZpZy5vdmVybGF5Q2xhc3MpXG4gICAgICAgICAgICA/IGNvbmZpZy5vdmVybGF5Q2xhc3Muam9pbignICcpXG4gICAgICAgICAgICA6IGNvbmZpZy5vdmVybGF5Q2xhc3M7XG5cbiAgICAgICAgICByZWYub3ZlcmxheVJlZi5ob3N0RWxlbWVudC5jbGFzc0xpc3QuYWRkKG92ZXJsYXlSZWZDbGFzc2VzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGJvdHRvbVNoZWV0UmVmID0gbmV3IHRoaXMuX2JvdHRvbVNoZWV0UmVmQ29uc3RydWN0b3IocmVmLCBjb25maWcsIGNvbnRhaW5lcik7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgeyBwcm92aWRlOiB0aGlzLl9ib3R0b21TaGVldENvbnRhaW5lclR5cGUsIHVzZVZhbHVlOiBjb250YWluZXIgfSxcbiAgICAgICAgICB7IHByb3ZpZGU6IHRoaXMuX2JvdHRvbVNoZWV0RGF0YVRva2VuLCB1c2VWYWx1ZTogY2RrQ29uZmlnLmRhdGEgfSxcbiAgICAgICAgICB7IHByb3ZpZGU6IHRoaXMuX2JvdHRvbVNoZWV0UmVmQ29uc3RydWN0b3IsIHVzZVZhbHVlOiBib3R0b21TaGVldFJlZiB9LFxuICAgICAgICBdO1xuICAgICAgfSxcbiAgICB9KTtcblxuICAgIC8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1ub24tbnVsbC1hc3NlcnRpb24qL1xuXG4gICAgYm90dG9tU2hlZXRSZWYhLmNvbXBvbmVudEluc3RhbmNlID0gY2RrUmVmLmNvbXBvbmVudEluc3RhbmNlITtcblxuICAgIHRoaXMub3BlbkJvdHRvbVNoZWV0cy5wdXNoKGJvdHRvbVNoZWV0UmVmISk7XG4gICAgdGhpcy5hZnRlck9wZW5lZC5uZXh0KGJvdHRvbVNoZWV0UmVmISk7XG5cbiAgICBib3R0b21TaGVldFJlZiEuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgY29uc3QgaW5kZXggPSB0aGlzLm9wZW5Cb3R0b21TaGVldHMuaW5kZXhPZihib3R0b21TaGVldFJlZik7XG5cbiAgICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICAgIHRoaXMub3BlbkJvdHRvbVNoZWV0cy5zcGxpY2UoaW5kZXgsIDEpO1xuXG4gICAgICAgIGlmICghdGhpcy5vcGVuQm90dG9tU2hlZXRzLmxlbmd0aCkge1xuICAgICAgICAgIHRoaXMuX2dldEFmdGVyQWxsQ2xvc2VkKCkubmV4dCgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gYm90dG9tU2hlZXRSZWYhO1xuXG4gICAgLyogZXNsaW50LWVuYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbm9uLW51bGwtYXNzZXJ0aW9uKi9cbiAgfVxuXG4gIGNsb3NlQWxsKCk6IHZvaWQge1xuICAgIHRoaXMuX2Nsb3NlQm90dG9tU2hlZXRzKHRoaXMub3BlbkJvdHRvbVNoZWV0cyk7XG4gIH1cblxuICBnZXRCb3R0b21TaGVldEJ5SWQoaWQ6IHN0cmluZyk6IEJvdHRvbVNoZWV0UmVmIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5vcGVuQm90dG9tU2hlZXRzLmZpbmQoKGJvdHRvbVNoZWV0KSA9PiBib3R0b21TaGVldC5pZCA9PT0gaWQpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fY2xvc2VCb3R0b21TaGVldHModGhpcy5fb3BlbkJvdHRvbVNoZWV0c0F0VGhpc0xldmVsKTtcbiAgICB0aGlzLl9hZnRlckFsbENsb3NlZEF0VGhpc0xldmVsLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fYWZ0ZXJPcGVuZWRBdFRoaXNMZXZlbC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2xvc2VCb3R0b21TaGVldHMoYm90dG9tU2hlZXRzOiBCb3R0b21TaGVldFJlZltdKSB7XG4gICAgbGV0IGkgPSBib3R0b21TaGVldHMubGVuZ3RoO1xuXG4gICAgd2hpbGUgKGktLSkge1xuICAgICAgYm90dG9tU2hlZXRzW2ldPy5jbG9zZSgpO1xuICAgIH1cbiAgfVxufVxuIl19
|