@one-paragon/angular-utilities 1.2.3 → 1.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -24
- package/esm2022/action-state/action-state-spinner/action-state-spinner.component.mjs +3 -3
- package/esm2022/action-state/action-state-ui/action-state-ui.module.mjs +1 -1
- package/esm2022/action-state/index.mjs +1 -1
- package/esm2022/action-state/ngrx-ext/ngrx-ext.module.mjs +1 -1
- package/esm2022/action-state/ngrx.mjs +1 -1
- package/esm2022/http-request-state/directives/index.mjs +1 -1
- package/esm2022/http-request-state/index.mjs +1 -1
- package/esm2022/http-request-state/rxjs/getRequestorBody.mjs +1 -1
- package/esm2022/http-request-state/rxjs/getRequestorState.mjs +1 -1
- package/esm2022/http-request-state/rxjs/index.mjs +1 -1
- package/esm2022/ngrx/actionable-selector.mjs +1 -1
- package/esm2022/public-api.mjs +1 -1
- package/esm2022/rxjs/defaultShareReplay.mjs +1 -1
- package/esm2022/rxjs/index.mjs +1 -1
- package/esm2022/rxjs/mapError.mjs +1 -1
- package/esm2022/rxjs/rxjs-operators.mjs +1 -1
- package/esm2022/rxjs/subjectifier.mjs +1 -1
- package/esm2022/rxjs/subscriber.directive.mjs +1 -1
- package/esm2022/table-builder/classes/DefaultSettings.mjs +1 -1
- package/esm2022/table-builder/classes/MatTableObservableDataSource.mjs +1 -1
- package/esm2022/table-builder/classes/TableBuilderConfig.mjs +1 -1
- package/esm2022/table-builder/classes/TableBuilderDataSource.mjs +1 -1
- package/esm2022/table-builder/classes/TableState.mjs +1 -1
- package/esm2022/table-builder/classes/display-col.mjs +1 -1
- package/esm2022/table-builder/classes/filter-info.mjs +1 -1
- package/esm2022/table-builder/classes/table-builder-general-settings.mjs +1 -1
- package/esm2022/table-builder/classes/table-builder.mjs +1 -1
- package/esm2022/table-builder/classes/table-store.mjs +1 -1
- package/esm2022/table-builder/components/column-builder/column-builder.component.mjs +3 -3
- package/esm2022/table-builder/components/column-builder/column-helpers.mjs +1 -1
- package/esm2022/table-builder/components/date-filter/date-filter.component.mjs +3 -3
- package/esm2022/table-builder/components/date-time-filter/date-time-filter.component.mjs +3 -3
- package/esm2022/table-builder/components/filter/filter.component.mjs +3 -3
- package/esm2022/table-builder/components/filter/in-list/in-list-filter.component.mjs +19 -19
- package/esm2022/table-builder/components/gen-col-displayer/gen-col-displayer.component.mjs +3 -3
- package/esm2022/table-builder/components/generic-table/generic-table.component.mjs +3 -3
- package/esm2022/table-builder/components/generic-table/paginator.component.mjs +25 -25
- package/esm2022/table-builder/components/group-by-list/group-by-list.component.mjs +3 -3
- package/esm2022/table-builder/components/in-filter/in-filter.component.mjs +3 -3
- package/esm2022/table-builder/components/index.mjs +1 -1
- package/esm2022/table-builder/components/initialization-component/initialization-component.mjs +3 -3
- package/esm2022/table-builder/components/link-column.component.mjs +31 -31
- package/esm2022/table-builder/components/number-filter/number-filter.component.mjs +3 -3
- package/esm2022/table-builder/components/profiles-menu/profiles-menu.component.mjs +3 -3
- package/esm2022/table-builder/components/scroll-strategy.mjs +1 -1
- package/esm2022/table-builder/components/sort-menu/sort-menu.component-store.mjs +1 -1
- package/esm2022/table-builder/components/sort-menu/sort-menu.component.mjs +3 -3
- package/esm2022/table-builder/components/table-container/table-container-imports.mjs +1 -1
- package/esm2022/table-builder/components/table-container/table-container.helpers/data-state.helpers.mjs +1 -1
- package/esm2022/table-builder/components/table-container/table-container.helpers/filter-state.helpers.mjs +1 -1
- package/esm2022/table-builder/components/table-container/table-container.helpers/groupBy.helpers.mjs +1 -1
- package/esm2022/table-builder/components/table-container/table-container.helpers/sort-state.helpers.mjs +1 -1
- package/esm2022/table-builder/components/table-container/table-container.mjs +3 -3
- package/esm2022/table-builder/components/table-container/tableProps.mjs +1 -1
- package/esm2022/table-builder/components/table-container/virtual-scroll-container.mjs +9 -9
- package/esm2022/table-builder/components/table-container-filter/filter-list/filter-list.component.mjs +3 -3
- package/esm2022/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.mjs +3 -3
- package/esm2022/table-builder/components/table-container-filter/table-wrapper-filter-store.mjs +1 -1
- package/esm2022/table-builder/directives/custom-cell-directive.mjs +1 -1
- package/esm2022/table-builder/directives/index.mjs +1 -1
- package/esm2022/table-builder/directives/multi-sort.directive.mjs +1 -1
- package/esm2022/table-builder/directives/resize-column.directive.mjs +1 -1
- package/esm2022/table-builder/directives/table-wrapper.directive.mjs +1 -1
- package/esm2022/table-builder/directives/tb-filter.directive.mjs +1 -1
- package/esm2022/table-builder/enums/filterTypes.mjs +1 -1
- package/esm2022/table-builder/functions/boolean-filter-function.mjs +1 -1
- package/esm2022/table-builder/functions/date-filter-function.mjs +1 -1
- package/esm2022/table-builder/functions/download-data.mjs +1 -1
- package/esm2022/table-builder/functions/null-filter-function.mjs +1 -1
- package/esm2022/table-builder/functions/number-filter-function.mjs +1 -1
- package/esm2022/table-builder/functions/sort-data-function.mjs +1 -1
- package/esm2022/table-builder/functions/string-filter-function.mjs +1 -1
- package/esm2022/table-builder/interfaces/ColumnInfo.mjs +1 -1
- package/esm2022/table-builder/interfaces/report-def.mjs +1 -1
- package/esm2022/table-builder/ngrx/tableBuilderStateStore.mjs +1 -1
- package/esm2022/table-builder/pipes/column-total.pipe.mjs +1 -1
- package/esm2022/table-builder/pipes/format-filter-type.pipe.mjs +1 -1
- package/esm2022/table-builder/pipes/format-filter-value.pipe.mjs +1 -1
- package/esm2022/table-builder/services/export-to-csv.service.mjs +1 -1
- package/esm2022/table-builder/services/link-creator.service.mjs +1 -1
- package/esm2022/table-builder/services/table-template-service.mjs +1 -1
- package/esm2022/table-builder/services/transform-creator.mjs +1 -1
- package/esm2022/table-builder/table-builder.module.mjs +1 -1
- package/esm2022/utilities/array-helpers.mjs +1 -1
- package/esm2022/utilities/directives/auto-focus.directive.mjs +1 -1
- package/esm2022/utilities/directives/clickEmitterDirective.mjs +1 -1
- package/esm2022/utilities/directives/clickSubject.mjs +1 -1
- package/esm2022/utilities/directives/conditional-classes.directive.mjs +1 -1
- package/esm2022/utilities/directives/dialog-service.mjs +1 -1
- package/esm2022/utilities/directives/dialog.mjs +1 -1
- package/esm2022/utilities/directives/mat-toggle-group-directive.mjs +1 -1
- package/esm2022/utilities/directives/prevent-enter.directive.mjs +1 -1
- package/esm2022/utilities/directives/stop-propagation.directive.mjs +1 -1
- package/esm2022/utilities/directives/trim-whitespace.directive.mjs +1 -1
- package/esm2022/utilities/index.mjs +1 -1
- package/esm2022/utilities/module.mjs +1 -1
- package/esm2022/utilities/pipes/function.pipe.mjs +1 -1
- package/esm2022/utilities/pipes/phone.pipe.mjs +1 -1
- package/esm2022/utilities/pipes/space-case.pipes.mjs +1 -1
- package/fesm2022/one-paragon-angular-utilities.mjs +112 -112
- package/fesm2022/one-paragon-angular-utilities.mjs.map +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
- package/table-builder/components/table-container/table-container-imports.d.ts +1 -1
|
@@ -96,4 +96,4 @@ export class VirtualScrollOptions {
|
|
|
96
96
|
*/
|
|
97
97
|
maxViewPortHeight = undefined;
|
|
98
98
|
}
|
|
99
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtYnVpbGRlci1nZW5lcmFsLXNldHRpbmdzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL3RhYmxlLWJ1aWxkZXIvY2xhc3Nlcy90YWJsZS1idWlsZGVyLWdlbmVyYWwtc2V0dGluZ3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUUvQixNQUFNLE9BQU8sb0JBQW9CO0lBQy9CLFlBQVksUUFBZ0M7UUFDMUMsSUFBRyxRQUFRLEVBQUMsQ0FBQztZQUNYLEtBQUssQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUNwRCxLQUFLLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDcEQsS0FBSyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxRQUFRLENBQUMsb0JBQW9CLENBQUMsQ0FBQztZQUNoRSxLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDbEQsSUFBRyxRQUFRLENBQUMsYUFBYSxFQUFFLGdCQUFnQixFQUFDLENBQUM7Z0JBQzNDLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLG9CQUFvQixFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUM7Z0JBQ3pJLElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLEdBQUcsRUFBRSxHQUFHLElBQUksb0JBQW9CLEVBQUUsRUFBRSxHQUFHLFFBQVEsRUFBRSxDQUFBO1lBQ3RGLENBQUM7UUFDSCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLEVBQUUsUUFB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QWMsQ0FBQyxZQUFZLENBQUM7UUFDaEUsQ0FBQztJQUNILENBQUM7SUFDRCxVQUFVLEdBQUcsSUFBSSxDQUFBO0lBQ2pCLFVBQVUsR0FBRyxJQUFJLENBQUE7SUFDakIsa0JBQWtCLEdBQUcsSUFBSSxDQUFBO0lBQ3pCLFFBQVEsR0FBRyxJQUFJLENBQUE7SUFDZiw0QkFBNEIsR0FBRyxJQUFJLENBQUM7SUFDcEMsVUFBVSxHQUFHLElBQUksQ0FBQTtJQUNqQix1QkFBdUIsR0FBRyxJQUFJLENBQUM7SUFDL0IsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO0lBQ3hCLFlBQVksR0FBRyxJQUFJLENBQUM7SUFDcEIsZ0JBQWdCLEdBQWdELElBQUksQ0FBQztJQUNyRSw0QkFBNEIsR0FBRyxLQUFLLENBQUM7SUFDckMsU0FBUyxDQUErQjtJQUN4QyxZQUFZLEdBQXFCLFNBQVMsQ0FBQztDQUM1QztBQUVELE1BQU0sT0FBTyxvQkFBb0I7SUFDL0IsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO0lBQ3hCLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDZixnQkFBZ0IsR0FBRyxJQUFJLENBQUM7SUFDeEIsWUFBWSxHQUFHLEVBQUUsQ0FBQztJQUNsQixtQkFBbUIsR0FBRyxJQUFJLENBQUM7SUFDM0Isb0JBQW9CLEdBQUcsRUFBRSxDQUFDO0lBQzFCOztPQUVHO0lBQ0gsaUJBQWlCLEdBQXVCLFNBQVMsQ0FBQztDQUNuRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdG9yIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IG1lcmdlIH0gZnJvbSBcImxvZGFzaFwiO1xuXG5leHBvcnQgY2xhc3MgR2VuZXJhbFRhYmxlU2V0dGluZ3Mge1xuICBjb25zdHJ1Y3RvcihzZXR0aW5ncz8gOiBUYWJsZUJ1aWxkZXJTZXR0aW5ncyl7XG4gICAgaWYoc2V0dGluZ3Mpe1xuICAgICAgbWVyZ2UodGhpcy5oZWFkZXJTZXR0aW5ncywgc2V0dGluZ3MuaGVhZGVyU2V0dGluZ3MpO1xuICAgICAgbWVyZ2UodGhpcy5mb290ZXJTZXR0aW5ncywgc2V0dGluZ3MuZm9vdGVyU2V0dGluZ3MpO1xuICAgICAgbWVyZ2UodGhpcy5jb2x1bW5IZWFkZXJTZXR0aW5ncywgc2V0dGluZ3MuY29sdW1uSGVhZGVyU2V0dGluZ3MpO1xuICAgICAgbWVyZ2UodGhpcy50YWJsZVNldHRpbmdzLCBzZXR0aW5ncy50YWJsZVNldHRpbmdzKTtcbiAgICAgIGlmKHNldHRpbmdzLnRhYmxlU2V0dGluZ3M/LnVzZVZpcnR1YWxTY3JvbGwpe1xuICAgICAgICBjb25zdCBjdXJyVmlydCA9IHNldHRpbmdzLnRhYmxlU2V0dGluZ3MudXNlVmlydHVhbFNjcm9sbCA9PT0gdHJ1ZSA/IG5ldyBWaXJ0dWFsU2Nyb2xsT3B0aW9ucygpIDogc2V0dGluZ3MudGFibGVTZXR0aW5ncy51c2VWaXJ0dWFsU2Nyb2xsO1xuICAgICAgICB0aGlzLnRhYmxlU2V0dGluZ3MudXNlVmlydHVhbFNjcm9sbCA9IHsgLi4ubmV3IFZpcnR1YWxTY3JvbGxPcHRpb25zKCksIC4uLmN1cnJWaXJ0IH1cbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5pbmplY3RvciA9IHNldHRpbmdzPy5pbmplY3RvcjtcbiAgfVxuICBoZWFkZXJTZXR0aW5ncyA9IG5ldyBUYWJsZVdyYXBwZXJIZWFkZXJTZXR0aW5ncygpO1xuICBmb290ZXJTZXR0aW5ncyA9IG5ldyBUYWJsZVdyYXBwZXJGb290ZXJTZXR0aW5ncygpO1xuICBjb2x1bW5IZWFkZXJTZXR0aW5ncyA9IG5ldyBUYWJsZUNvbHVtbkhlYWRlclNldHRpbmdzKCk7XG4gIHRhYmxlU2V0dGluZ3MgPSBuZXcgVGFibGVTZXR0aW5ncygpO1xuICBpbmplY3Rvcj8gOiBJbmplY3Rvcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUYWJsZUJ1aWxkZXJTZXR0aW5ncyB7XG4gIGhlYWRlclNldHRpbmdzPyA6IFBhcnRpYWw8VGFibGVXcmFwcGVySGVhZGVyU2V0dGluZ3M+O1xuICBmb290ZXJTZXR0aW5ncz8gOiBQYXJ0aWFsPFRhYmxlV3JhcHBlckZvb3RlclNldHRpbmdzPjtcbiAgY29sdW1uSGVhZGVyU2V0dGluZ3M/IDogUGFydGlhbDxUYWJsZUNvbHVtbkhlYWRlclNldHRpbmdzPjtcbiAgdGFibGVTZXR0aW5ncz8gOiBQYXJ0aWFsPFRhYmxlU2V0dGluZ3M+O1xuICBpbmplY3Rvcj8gOiBJbmplY3Rvcjtcbn1cblxuZXhwb3J0IGNsYXNzIFRhYmxlV3JhcHBlckhlYWRlclNldHRpbmdzIHtcbiAgaGlkZUV4cG9ydCA9IGZhbHNlXG4gIGhpZGVGaWx0ZXIgPSBmYWxzZVxuICBoaWRlQ29sdW1uU2V0dGluZ3MgPSBmYWxzZVxuICBoaWRlSGVhZGVyID0gZmFsc2VcbiAgaGlkZVNvcnQgPSBmYWxzZVxuICBjb2xsYXBzZSA9IGZhbHNlXG4gIHNob3dUaXRsZVdoZW5Db2xsYXBzZWQgPSB0cnVlO1xuICBoZWFkZXJIZWlnaHQ6IHN0cmluZyB8IG51bWJlciB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGNsYXNzIFRhYmxlV3JhcHBlckZvb3RlclNldHRpbmdzIHtcbiAgY29sbGFwc2UgPSBmYWxzZVxufVxuXG5leHBvcnQgY2xhc3MgVGFibGVDb2x1bW5IZWFkZXJTZXR0aW5ncyB7XG4gIG5vRmlsdGVycyA9IGZhbHNlO1xuICBub0hlYWRlciA9IGZhbHNlO1xufVxuXG5leHBvcnQgY2xhc3MgVGFibGVTZXR0aW5ncyB7XG4gIHVzZVBhZ2luYXRvciA9IHRydWU7XG4gIHVzZVZpcnR1YWxTY3JvbGw6IHRydWUgfCBQYXJ0aWFsPFZpcnR1YWxTY3JvbGxPcHRpb25zPiB8IG51bGwgPSBudWxsO1xuICBpbmNsdWRlQWxsSW5QYWdpbmF0b3JPcHRpb25zID0gZmFsc2U7XG4gIHJvd0hlaWdodDogc3RyaW5nIHwgbnVtYmVyIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgY2xhc3MgUGVyc2lzdGVkVGFibGVTZXR0aW5ncyB7XG4gIGNvbnN0cnVjdG9yKHRhYmxlU2V0dGluZ3M/IDpHZW5lcmFsVGFibGVTZXR0aW5ncyB8IFBlcnNpc3RlZFRhYmxlU2V0dGluZ3Mpe1xuICAgIGlmICh0YWJsZVNldHRpbmdzKXtcbiAgICAgIHRoaXMuY29sbGFwc2VIZWFkZXIgPSAodGFibGVTZXR0aW5ncyBhcyBHZW5lcmFsVGFibGVTZXR0aW5ncykuaGVhZGVyU2V0dGluZ3M/LmNvbGxhcHNlID8/ICh0YWJsZVNldHRpbmdzIGFzIFBlcnNpc3RlZFRhYmxlU2V0dGluZ3MpLmNvbGxhcHNlSGVhZGVyO1xuICAgICAgdGhpcy5jb2xsYXBzZUZvb3RlciA9ICh0YWJsZVNldHRpbmdzIGFzIEdlbmVyYWxUYWJsZVNldHRpbmdzKS5mb290ZXJTZXR0aW5ncz8uY29sbGFwc2UgPz8gKHRhYmxlU2V0dGluZ3MgYXMgUGVyc2lzdGVkVGFibGVTZXR0aW5ncykuY29sbGFwc2VGb290ZXI7XG4gICAgfVxuICB9XG4gIGNvbGxhcHNlSGVhZGVyID0gZmFsc2U7XG4gIGNvbGxhcHNlRm9vdGVyID0gZmFsc2U7XG59XG5cbmV4cG9ydCBjbGFzcyBOb3RQZXJzaXN0ZWRUYWJsZVNldHRpbmdzIHtcbiAgY29uc3RydWN0b3IodGFibGVTZXR0aW5ncz8gOkdlbmVyYWxUYWJsZVNldHRpbmdzKXtcbiAgICBpZih0YWJsZVNldHRpbmdzKXtcbiAgICAgIHRoaXMuaGlkZUV4cG9ydCA9IHRhYmxlU2V0dGluZ3MuaGVhZGVyU2V0dGluZ3MuaGlkZUV4cG9ydDtcbiAgICAgIHRoaXMuaGlkZUNvbHVtblNldHRpbmdzID0gdGFibGVTZXR0aW5ncy5oZWFkZXJTZXR0aW5ncy5oaWRlQ29sdW1uU2V0dGluZ3M7XG4gICAgICB0aGlzLmhpZGVGaWx0ZXIgPSB0YWJsZVNldHRpbmdzLmhlYWRlclNldHRpbmdzLmhpZGVGaWx0ZXI7XG4gICAgICB0aGlzLmhpZGVTb3J0ID0gdGFibGVTZXR0aW5ncy5oZWFkZXJTZXR0aW5ncy5oaWRlU29ydDtcbiAgICAgIHRoaXMuc2hvd1RpdGxlV2hlbkhlYWRlckNvbGxhcHNlZCA9IHRhYmxlU2V0dGluZ3MuaGVhZGVyU2V0dGluZ3Muc2hvd1RpdGxlV2hlbkNvbGxhcHNlZDtcbiAgICAgIHRoaXMuaGlkZUhlYWRlciA9IHRhYmxlU2V0dGluZ3MuaGVhZGVyU2V0dGluZ3MuaGlkZUhlYWRlcjtcbiAgICAgIHRoaXMuaGlkZUNvbHVtbkhlYWRlckZpbHRlcnMgPSB0YWJsZVNldHRpbmdzLmNvbHVtbkhlYWRlclNldHRpbmdzLm5vRmlsdGVycztcbiAgICAgIHRoaXMuaGlkZUNvbHVtbkhlYWRlciA9IHRhYmxlU2V0dGluZ3MuY29sdW1uSGVhZGVyU2V0dGluZ3Mubm9IZWFkZXI7XG4gICAgICB0aGlzLnVzZVBhZ2luYXRvciA9IHRhYmxlU2V0dGluZ3MudGFibGVTZXR0aW5ncy51c2VQYWdpbmF0b3I7XG4gICAgICB0aGlzLnVzZVZpcnR1YWxTY3JvbGwgPSB0YWJsZVNldHRpbmdzLnRhYmxlU2V0dGluZ3MudXNlVmlydHVhbFNjcm9sbDtcbiAgICAgIHRoaXMuaW5jbHVkZUFsbEluUGFnaW5hdG9yT3B0aW9ucyA9IHRhYmxlU2V0dGluZ3MudGFibGVTZXR0aW5ncy5pbmNsdWRlQWxsSW5QYWdpbmF0b3JPcHRpb25zO1xuICAgICAgdGhpcy5yb3dIZWlnaHQgPSB0YWJsZVNldHRpbmdzLnRhYmxlU2V0dGluZ3Mucm93SGVpZ2h0O1xuICAgICAgdGhpcy5oZWFkZXJIZWlnaHQgPSB0YWJsZVNldHRpbmdzLmhlYWRlclNldHRpbmdzLmhlYWRlckhlaWdodDtcbiAgICB9XG4gIH1cbiAgaGlkZUV4cG9ydCA9IHRydWVcbiAgaGlkZUZpbHRlciA9IHRydWVcbiAgaGlkZUNvbHVtblNldHRpbmdzID0gdHJ1ZVxuICBoaWRlU29ydCA9IHRydWVcbiAgc2hvd1RpdGxlV2hlbkhlYWRlckNvbGxhcHNlZCA9IHRydWU7XG4gIGhpZGVIZWFkZXIgPSB0cnVlXG4gIGhpZGVDb2x1bW5IZWFkZXJGaWx0ZXJzID0gdHJ1ZTtcbiAgaGlkZUNvbHVtbkhlYWRlciA9IHRydWU7XG4gIHVzZVBhZ2luYXRvciA9IHRydWU7XG4gIHVzZVZpcnR1YWxTY3JvbGw6IHRydWUgfCBQYXJ0aWFsPFZpcnR1YWxTY3JvbGxPcHRpb25zPiB8IG51bGwgPSBudWxsO1xuICBpbmNsdWRlQWxsSW5QYWdpbmF0b3JPcHRpb25zID0gZmFsc2U7XG4gIHJvd0hlaWdodD86IHN0cmluZyB8IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgaGVhZGVySGVpZ2h0Pzogc3RyaW5nIHwgbnVtYmVyID0gdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgY2xhc3MgVmlydHVhbFNjcm9sbE9wdGlvbnMge1xuICB2aXJ0dWFsQXNEZWZhdWx0ID0gdHJ1ZTtcbiAgcm93SGVpZ2h0ID0gNDg7XG4gIGVuZm9yY2VSb3dIZWlnaHQgPSB0cnVlO1xuICBoZWFkZXJIZWlnaHQgPSA1NjtcbiAgZW5mb3JjZUhlYWRlckhlaWdodCA9IHRydWU7XG4gIGFtb3VudE9mVmlzaWJsZUl0ZW1zID0gMTA7XG4gIC8qKlxuICAgKiBUaGlzIHdpbGwgd2luIG92ZXIgYGFtb3VudE9mVmlzaWJsZUl0ZW1zYFxuICAgKi9cbiAgbWF4Vmlld1BvcnRIZWlnaHQ6IG51bWJlciB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbn1cbiJdfQ==
|
|
99
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtYnVpbGRlci1nZW5lcmFsLXNldHRpbmdzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL3RhYmxlLWJ1aWxkZXIvY2xhc3Nlcy90YWJsZS1idWlsZGVyLWdlbmVyYWwtc2V0dGluZ3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUUvQixNQUFNLE9BQU8sb0JBQW9CO0lBQy9CLFlBQVksUUFBZ0M7UUFDMUMsSUFBRyxRQUFRLEVBQUMsQ0FBQztZQUNYLEtBQUssQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUNwRCxLQUFLLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDcEQsS0FBSyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxRQUFRLENBQUMsb0JBQW9CLENBQUMsQ0FBQztZQUNoRSxLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDbEQsSUFBRyxRQUFRLENBQUMsYUFBYSxFQUFFLGdCQUFnQixFQUFDLENBQUM7Z0JBQzNDLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLG9CQUFvQixFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUM7Z0JBQ3pJLElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLEdBQUcsRUFBRSxHQUFHLElBQUksb0JBQW9CLEVBQUUsRUFBRSxHQUFHLFFBQVEsRUFBRSxDQUFBO1lBQ3RGLENBQUM7UUFDSCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLEVBQUUsUUFB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QWMsQ0FBQyxZQUFZLENBQUM7UUFDaEUsQ0FBQztJQUNILENBQUM7SUFDRCxVQUFVLEdBQUcsSUFBSSxDQUFBO0lBQ2pCLFVBQVUsR0FBRyxJQUFJLENBQUE7SUFDakIsa0JBQWtCLEdBQUcsSUFBSSxDQUFBO0lBQ3pCLFFBQVEsR0FBRyxJQUFJLENBQUE7SUFDZiw0QkFBNEIsR0FBRyxJQUFJLENBQUM7SUFDcEMsVUFBVSxHQUFHLElBQUksQ0FBQTtJQUNqQix1QkFBdUIsR0FBRyxJQUFJLENBQUM7SUFDL0IsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO0lBQ3hCLFlBQVksR0FBRyxJQUFJLENBQUM7SUFDcEIsZ0JBQWdCLEdBQWdELElBQUksQ0FBQztJQUNyRSw0QkFBNEIsR0FBRyxLQUFLLENBQUM7SUFDckMsU0FBUyxDQUErQjtJQUN4QyxZQUFZLEdBQXFCLFNBQVMsQ0FBQztDQUM1QztBQUVELE1BQU0sT0FBTyxvQkFBb0I7SUFDL0IsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO0lBQ3hCLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDZixnQkFBZ0IsR0FBRyxJQUFJLENBQUM7SUFDeEIsWUFBWSxHQUFHLEVBQUUsQ0FBQztJQUNsQixtQkFBbUIsR0FBRyxJQUFJLENBQUM7SUFDM0Isb0JBQW9CLEdBQUcsRUFBRSxDQUFDO0lBQzFCOztPQUVHO0lBQ0gsaUJBQWlCLEdBQXVCLFNBQVMsQ0FBQztDQUNuRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdG9yIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgbWVyZ2UgfSBmcm9tIFwibG9kYXNoXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgR2VuZXJhbFRhYmxlU2V0dGluZ3Mge1xyXG4gIGNvbnN0cnVjdG9yKHNldHRpbmdzPyA6IFRhYmxlQnVpbGRlclNldHRpbmdzKXtcclxuICAgIGlmKHNldHRpbmdzKXtcclxuICAgICAgbWVyZ2UodGhpcy5oZWFkZXJTZXR0aW5ncywgc2V0dGluZ3MuaGVhZGVyU2V0dGluZ3MpO1xyXG4gICAgICBtZXJnZSh0aGlzLmZvb3RlclNldHRpbmdzLCBzZXR0aW5ncy5mb290ZXJTZXR0aW5ncyk7XHJcbiAgICAgIG1lcmdlKHRoaXMuY29sdW1uSGVhZGVyU2V0dGluZ3MsIHNldHRpbmdzLmNvbHVtbkhlYWRlclNldHRpbmdzKTtcclxuICAgICAgbWVyZ2UodGhpcy50YWJsZVNldHRpbmdzLCBzZXR0aW5ncy50YWJsZVNldHRpbmdzKTtcclxuICAgICAgaWYoc2V0dGluZ3MudGFibGVTZXR0aW5ncz8udXNlVmlydHVhbFNjcm9sbCl7XHJcbiAgICAgICAgY29uc3QgY3VyclZpcnQgPSBzZXR0aW5ncy50YWJsZVNldHRpbmdzLnVzZVZpcnR1YWxTY3JvbGwgPT09IHRydWUgPyBuZXcgVmlydHVhbFNjcm9sbE9wdGlvbnMoKSA6IHNldHRpbmdzLnRhYmxlU2V0dGluZ3MudXNlVmlydHVhbFNjcm9sbDtcclxuICAgICAgICB0aGlzLnRhYmxlU2V0dGluZ3MudXNlVmlydHVhbFNjcm9sbCA9IHsgLi4ubmV3IFZpcnR1YWxTY3JvbGxPcHRpb25zKCksIC4uLmN1cnJWaXJ0IH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5pbmplY3RvciA9IHNldHRpbmdzPy5pbmplY3RvcjtcclxuICB9XHJcbiAgaGVhZGVyU2V0dGluZ3MgPSBuZXcgVGFibGVXcmFwcGVySGVhZGVyU2V0dGluZ3MoKTtcclxuICBmb290ZXJTZXR0aW5ncyA9IG5ldyBUYWJsZVdyYXBwZXJGb290ZXJTZXR0aW5ncygpO1xyXG4gIGNvbHVtbkhlYWRlclNldHRpbmdzID0gbmV3IFRhYmxlQ29sdW1uSGVhZGVyU2V0dGluZ3MoKTtcclxuICB0YWJsZVNldHRpbmdzID0gbmV3IFRhYmxlU2V0dGluZ3MoKTtcclxuICBpbmplY3Rvcj8gOiBJbmplY3RvcjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBUYWJsZUJ1aWxkZXJTZXR0aW5ncyB7XHJcbiAgaGVhZGVyU2V0dGluZ3M/IDogUGFydGlhbDxUYWJsZVdyYXBwZXJIZWFkZXJTZXR0aW5ncz47XHJcbiAgZm9vdGVyU2V0dGluZ3M/IDogUGFydGlhbDxUYWJsZVdyYXBwZXJGb290ZXJTZXR0aW5ncz47XHJcbiAgY29sdW1uSGVhZGVyU2V0dGluZ3M/IDogUGFydGlhbDxUYWJsZUNvbHVtbkhlYWRlclNldHRpbmdzPjtcclxuICB0YWJsZVNldHRpbmdzPyA6IFBhcnRpYWw8VGFibGVTZXR0aW5ncz47XHJcbiAgaW5qZWN0b3I/IDogSW5qZWN0b3I7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBUYWJsZVdyYXBwZXJIZWFkZXJTZXR0aW5ncyB7XHJcbiAgaGlkZUV4cG9ydCA9IGZhbHNlXHJcbiAgaGlkZUZpbHRlciA9IGZhbHNlXHJcbiAgaGlkZUNvbHVtblNldHRpbmdzID0gZmFsc2VcclxuICBoaWRlSGVhZGVyID0gZmFsc2VcclxuICBoaWRlU29ydCA9IGZhbHNlXHJcbiAgY29sbGFwc2UgPSBmYWxzZVxyXG4gIHNob3dUaXRsZVdoZW5Db2xsYXBzZWQgPSB0cnVlO1xyXG4gIGhlYWRlckhlaWdodDogc3RyaW5nIHwgbnVtYmVyIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgVGFibGVXcmFwcGVyRm9vdGVyU2V0dGluZ3Mge1xyXG4gIGNvbGxhcHNlID0gZmFsc2VcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFRhYmxlQ29sdW1uSGVhZGVyU2V0dGluZ3Mge1xyXG4gIG5vRmlsdGVycyA9IGZhbHNlO1xyXG4gIG5vSGVhZGVyID0gZmFsc2U7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBUYWJsZVNldHRpbmdzIHtcclxuICB1c2VQYWdpbmF0b3IgPSB0cnVlO1xyXG4gIHVzZVZpcnR1YWxTY3JvbGw6IHRydWUgfCBQYXJ0aWFsPFZpcnR1YWxTY3JvbGxPcHRpb25zPiB8IG51bGwgPSBudWxsO1xyXG4gIGluY2x1ZGVBbGxJblBhZ2luYXRvck9wdGlvbnMgPSBmYWxzZTtcclxuICByb3dIZWlnaHQ6IHN0cmluZyB8IG51bWJlciB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFBlcnNpc3RlZFRhYmxlU2V0dGluZ3Mge1xyXG4gIGNvbnN0cnVjdG9yKHRhYmxlU2V0dGluZ3M/IDpHZW5lcmFsVGFibGVTZXR0aW5ncyB8IFBlcnNpc3RlZFRhYmxlU2V0dGluZ3Mpe1xyXG4gICAgaWYgKHRhYmxlU2V0dGluZ3Mpe1xyXG4gICAgICB0aGlzLmNvbGxhcHNlSGVhZGVyID0gKHRhYmxlU2V0dGluZ3MgYXMgR2VuZXJhbFRhYmxlU2V0dGluZ3MpLmhlYWRlclNldHRpbmdzPy5jb2xsYXBzZSA/PyAodGFibGVTZXR0aW5ncyBhcyBQZXJzaXN0ZWRUYWJsZVNldHRpbmdzKS5jb2xsYXBzZUhlYWRlcjtcclxuICAgICAgdGhpcy5jb2xsYXBzZUZvb3RlciA9ICh0YWJsZVNldHRpbmdzIGFzIEdlbmVyYWxUYWJsZVNldHRpbmdzKS5mb290ZXJTZXR0aW5ncz8uY29sbGFwc2UgPz8gKHRhYmxlU2V0dGluZ3MgYXMgUGVyc2lzdGVkVGFibGVTZXR0aW5ncykuY29sbGFwc2VGb290ZXI7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGNvbGxhcHNlSGVhZGVyID0gZmFsc2U7XHJcbiAgY29sbGFwc2VGb290ZXIgPSBmYWxzZTtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIE5vdFBlcnNpc3RlZFRhYmxlU2V0dGluZ3Mge1xyXG4gIGNvbnN0cnVjdG9yKHRhYmxlU2V0dGluZ3M/IDpHZW5lcmFsVGFibGVTZXR0aW5ncyl7XHJcbiAgICBpZih0YWJsZVNldHRpbmdzKXtcclxuICAgICAgdGhpcy5oaWRlRXhwb3J0ID0gdGFibGVTZXR0aW5ncy5oZWFkZXJTZXR0aW5ncy5oaWRlRXhwb3J0O1xyXG4gICAgICB0aGlzLmhpZGVDb2x1bW5TZXR0aW5ncyA9IHRhYmxlU2V0dGluZ3MuaGVhZGVyU2V0dGluZ3MuaGlkZUNvbHVtblNldHRpbmdzO1xyXG4gICAgICB0aGlzLmhpZGVGaWx0ZXIgPSB0YWJsZVNldHRpbmdzLmhlYWRlclNldHRpbmdzLmhpZGVGaWx0ZXI7XHJcbiAgICAgIHRoaXMuaGlkZVNvcnQgPSB0YWJsZVNldHRpbmdzLmhlYWRlclNldHRpbmdzLmhpZGVTb3J0O1xyXG4gICAgICB0aGlzLnNob3dUaXRsZVdoZW5IZWFkZXJDb2xsYXBzZWQgPSB0YWJsZVNldHRpbmdzLmhlYWRlclNldHRpbmdzLnNob3dUaXRsZVdoZW5Db2xsYXBzZWQ7XHJcbiAgICAgIHRoaXMuaGlkZUhlYWRlciA9IHRhYmxlU2V0dGluZ3MuaGVhZGVyU2V0dGluZ3MuaGlkZUhlYWRlcjtcclxuICAgICAgdGhpcy5oaWRlQ29sdW1uSGVhZGVyRmlsdGVycyA9IHRhYmxlU2V0dGluZ3MuY29sdW1uSGVhZGVyU2V0dGluZ3Mubm9GaWx0ZXJzO1xyXG4gICAgICB0aGlzLmhpZGVDb2x1bW5IZWFkZXIgPSB0YWJsZVNldHRpbmdzLmNvbHVtbkhlYWRlclNldHRpbmdzLm5vSGVhZGVyO1xyXG4gICAgICB0aGlzLnVzZVBhZ2luYXRvciA9IHRhYmxlU2V0dGluZ3MudGFibGVTZXR0aW5ncy51c2VQYWdpbmF0b3I7XHJcbiAgICAgIHRoaXMudXNlVmlydHVhbFNjcm9sbCA9IHRhYmxlU2V0dGluZ3MudGFibGVTZXR0aW5ncy51c2VWaXJ0dWFsU2Nyb2xsO1xyXG4gICAgICB0aGlzLmluY2x1ZGVBbGxJblBhZ2luYXRvck9wdGlvbnMgPSB0YWJsZVNldHRpbmdzLnRhYmxlU2V0dGluZ3MuaW5jbHVkZUFsbEluUGFnaW5hdG9yT3B0aW9ucztcclxuICAgICAgdGhpcy5yb3dIZWlnaHQgPSB0YWJsZVNldHRpbmdzLnRhYmxlU2V0dGluZ3Mucm93SGVpZ2h0O1xyXG4gICAgICB0aGlzLmhlYWRlckhlaWdodCA9IHRhYmxlU2V0dGluZ3MuaGVhZGVyU2V0dGluZ3MuaGVhZGVySGVpZ2h0O1xyXG4gICAgfVxyXG4gIH1cclxuICBoaWRlRXhwb3J0ID0gdHJ1ZVxyXG4gIGhpZGVGaWx0ZXIgPSB0cnVlXHJcbiAgaGlkZUNvbHVtblNldHRpbmdzID0gdHJ1ZVxyXG4gIGhpZGVTb3J0ID0gdHJ1ZVxyXG4gIHNob3dUaXRsZVdoZW5IZWFkZXJDb2xsYXBzZWQgPSB0cnVlO1xyXG4gIGhpZGVIZWFkZXIgPSB0cnVlXHJcbiAgaGlkZUNvbHVtbkhlYWRlckZpbHRlcnMgPSB0cnVlO1xyXG4gIGhpZGVDb2x1bW5IZWFkZXIgPSB0cnVlO1xyXG4gIHVzZVBhZ2luYXRvciA9IHRydWU7XHJcbiAgdXNlVmlydHVhbFNjcm9sbDogdHJ1ZSB8IFBhcnRpYWw8VmlydHVhbFNjcm9sbE9wdGlvbnM+IHwgbnVsbCA9IG51bGw7XHJcbiAgaW5jbHVkZUFsbEluUGFnaW5hdG9yT3B0aW9ucyA9IGZhbHNlO1xyXG4gIHJvd0hlaWdodD86IHN0cmluZyB8IG51bWJlciB8IHVuZGVmaW5lZDtcclxuICBoZWFkZXJIZWlnaHQ/OiBzdHJpbmcgfCBudW1iZXIgPSB1bmRlZmluZWQ7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBWaXJ0dWFsU2Nyb2xsT3B0aW9ucyB7XHJcbiAgdmlydHVhbEFzRGVmYXVsdCA9IHRydWU7XHJcbiAgcm93SGVpZ2h0ID0gNDg7XHJcbiAgZW5mb3JjZVJvd0hlaWdodCA9IHRydWU7XHJcbiAgaGVhZGVySGVpZ2h0ID0gNTY7XHJcbiAgZW5mb3JjZUhlYWRlckhlaWdodCA9IHRydWU7XHJcbiAgYW1vdW50T2ZWaXNpYmxlSXRlbXMgPSAxMDtcclxuICAvKipcclxuICAgKiBUaGlzIHdpbGwgd2luIG92ZXIgYGFtb3VudE9mVmlzaWJsZUl0ZW1zYFxyXG4gICAqL1xyXG4gIG1heFZpZXdQb3J0SGVpZ2h0OiBudW1iZXIgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XHJcbn1cclxuIl19
|
|
@@ -74,4 +74,4 @@ export const CreateTableBuilder = (reportDef$) => {
|
|
|
74
74
|
reportDef$ = reportDef$.pipe(defaultShareReplay());
|
|
75
75
|
return new TableBuilder(reportDef$.pipe(map(r => r.data)), reportDef$.pipe(map(r => r.metaData)));
|
|
76
76
|
};
|
|
77
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtYnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdXRpbGl0aWVzL3NyYy90YWJsZS1idWlsZGVyL2NsYXNzZXMvdGFibGUtYnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwRCxPQUFPLEVBQVksU0FBUyxFQUFhLE1BQU0sMEJBQTBCLENBQUM7QUFDMUUsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLG9CQUFvQixFQUF3QixNQUFNLGtDQUFrQyxDQUFDO0FBQzlGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNoRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEVBQTBFLENBQUM7QUFDM0csT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMEVBQTBFLENBQUM7QUFDOUcsT0FBTyxFQUFFLFFBQVEsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFMUQsTUFBTSxPQUFPLFlBQVk7SUFFdkIsU0FBUyxDQUE0QjtJQUNyQyxLQUFLLENBQWtCO0lBQ3ZCLFFBQVEsQ0FBb0M7SUFFNUMsWUFDRSxJQUEyQixFQUMzQixRQUE4QyxFQUM5QyxXQUFtRCxJQUFJLG9CQUFvQixFQUFFO1FBRTdFLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLDBCQUEwQixDQUFDLFFBQVEsQ0FBQzthQUN0RCxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLGtCQUFrQixFQUFFLENBQUMsQ0FBQztRQUUzRSxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQzthQUN0RCxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO1FBRTlCLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDLENBQUM7WUFDekIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFDM0UsQ0FBQztnQkFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxHQUFHLENBQUUsQ0FBQyxDQUFBLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFFLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO0lBQ3pGLENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FDeEIsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDLENBQUMsRUFDakMsU0FBUyxDQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQ25DLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRTtZQUNoQixPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQzNCLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDOUIsT0FBTyxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBO2dCQUM3QyxPQUFPLE9BQU8sQ0FBQztZQUNqQixDQUFDLENBQUMsQ0FBQTtRQUNKLENBQUMsQ0FBRSxDQUNKLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVELGNBQWMsQ0FBQyxHQUFRO1FBQ3JCLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDO2FBQzVCLEdBQUcsQ0FBRSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDWixHQUFHO1lBQ0gsU0FBUyxFQUFFLFNBQVMsQ0FBQyxPQUFPO1lBQzVCLEtBQUssRUFBRSxDQUFDLENBQUM7U0FDVixDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7SUFFRCxrQkFBa0IsQ0FBSSxHQUF3QixFQUFFLFFBQTBDO1FBQ3hGLElBQUcsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUFDLENBQUM7WUFDcEIsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDO2FBQU0sSUFBRyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUMsQ0FBQztZQUN2QixPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUNqQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN2QixPQUFPLFlBQVksQ0FBQyxHQUFHLEVBQUUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUE7WUFDcEQsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUNMLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakIsQ0FBQztJQUNILENBQUM7SUFFRCwwQkFBMEIsQ0FBQyxRQUFnRDtRQUN6RSxJQUFHLFlBQVksQ0FBQyxRQUFRLENBQUMsRUFBQyxDQUFDO1lBQ3pCLE9BQU8sUUFBUSxDQUFDO1FBQ2xCLENBQUM7YUFBTSxJQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBQyxDQUFDO1lBQzVCLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUNoQyxPQUFPLFlBQVksQ0FBQyxRQUFRLEVBQUUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUNuRSxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3RCLENBQUM7SUFDSCxDQUFDO0lBRUQsY0FBYyxDQUFDLENBQXVCO1FBQ3BDLElBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFDLENBQUM7WUFDZCxNQUFNLElBQUksS0FBSyxDQUFDLGtFQUFrRSxDQUFDLENBQUM7UUFDdEYsQ0FBQztJQUNILENBQUM7Q0FDRjtBQUVELE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLENBQUMsVUFBaUMsRUFBaUIsRUFBRTtJQUNyRixVQUFVLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUM7SUFDbkQsT0FBTyxJQUFJLFlBQVksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBRSxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUUsR0FBRyxDQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFFLENBQUMsQ0FBQztBQUMxRyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc09ic2VydmFibGUsIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IE1ldGFEYXRhLCBGaWVsZFR5cGUsIFJlcG9ydERlZiB9IGZyb20gJy4uL2ludGVyZmFjZXMvcmVwb3J0LWRlZic7XHJcbmltcG9ydCB7IGZpcnN0LCBtYXAsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgR2VuZXJhbFRhYmxlU2V0dGluZ3MsIFRhYmxlQnVpbGRlclNldHRpbmdzIH0gZnJvbSAnLi90YWJsZS1idWlsZGVyLWdlbmVyYWwtc2V0dGluZ3MnO1xyXG5pbXBvcnQgeyBkZWZhdWx0U2hhcmVSZXBsYXkgfSBmcm9tICcuLi8uLi9yeGpzJztcclxuaW1wb3J0IHsgaW5pdEluZGV4U3ltYm9sIH0gZnJvbSAnLi4vY29tcG9uZW50cy90YWJsZS1jb250YWluZXIvdGFibGUtY29udGFpbmVyLmhlbHBlcnMvc29ydC1zdGF0ZS5oZWxwZXJzJztcclxuaW1wb3J0IHsgY3JlYXRlRGF0YUNsZWFuZXJzIH0gZnJvbSAnLi4vY29tcG9uZW50cy90YWJsZS1jb250YWluZXIvdGFibGUtY29udGFpbmVyLmhlbHBlcnMvZGF0YS1zdGF0ZS5oZWxwZXJzJztcclxuaW1wb3J0IHsgaXNTaWduYWwsIFNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyB0b09ic2VydmFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XHJcblxyXG5leHBvcnQgY2xhc3MgVGFibGVCdWlsZGVyPFQgPSBhbnk+IHtcclxuXHJcbiAgbWV0YURhdGEkOiBPYnNlcnZhYmxlPE1ldGFEYXRhPFQ+W10+O1xyXG4gIGRhdGEkOiBPYnNlcnZhYmxlPFRbXT47XHJcbiAgc2V0dGluZ3MgOiBPYnNlcnZhYmxlPEdlbmVyYWxUYWJsZVNldHRpbmdzPjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBkYXRhOiBUYWJsZUJ1aWxkZXJBcmdzPFRbXT4sIFxyXG4gICAgbWV0YURhdGE/OiBUYWJsZUJ1aWxkZXJBcmdzPE1ldGFEYXRhPFQsYW55PltdPixcclxuICAgIHNldHRpbmdzOiBUYWJsZUJ1aWxkZXJBcmdzPFRhYmxlQnVpbGRlclNldHRpbmdzPiA9IG5ldyBHZW5lcmFsVGFibGVTZXR0aW5ncygpXHJcbiAgKSB7XHJcbiAgICB0aGlzLnNldHRpbmdzID0gdGhpcy5jb2VyY2VTZXR0aW5nc1RvT2JzZXJ2YWJsZShzZXR0aW5ncylcclxuICAgICAgLnBpcGUobWFwKHNldHQgPT4gbmV3IEdlbmVyYWxUYWJsZVNldHRpbmdzKHNldHQpKSwgZGVmYXVsdFNoYXJlUmVwbGF5KCkpO1xyXG5cclxuICAgIHRoaXMuZGF0YSQgPSB0aGlzLmNvZXJjZVRvT2JzZXJ2YWJsZShkYXRhLCB0aGlzLnNldHRpbmdzKVxyXG4gICAgICAucGlwZShkZWZhdWx0U2hhcmVSZXBsYXkoKSk7XHJcblxyXG4gICAgdGhpcy5tZXRhRGF0YSQgPSBtZXRhRGF0YSA/XHJcbiAgICAgIHRoaXMuY29lcmNlVG9PYnNlcnZhYmxlKG1ldGFEYXRhLCB0aGlzLnNldHRpbmdzKS5waXBlKGRlZmF1bHRTaGFyZVJlcGxheSgpKSBcclxuICAgICAgOlxyXG4gICAgICB0aGlzLmRhdGEkLnBpcGUoZmlyc3QoKSwgbWFwKCBkPT4gdGhpcy5jcmVhdGVNZXRhRGF0YShkWzBdKSApLCBkZWZhdWx0U2hhcmVSZXBsYXkoKSk7XHJcbiAgfVxyXG5cclxuICBnZXREYXRhJCgpOiBPYnNlcnZhYmxlPGFueVtdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5tZXRhRGF0YSQucGlwZShcclxuICAgICAgbWFwKG1kID0+IGNyZWF0ZURhdGFDbGVhbmVycyhtZCkpLFxyXG4gICAgICBzd2l0Y2hNYXAoIGNsZWFuZXIgPT4gdGhpcy5kYXRhJC5waXBlKFxyXG4gICAgICAgIG1hcCgoZGF0YXMsIGlpKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gZGF0YXMubWFwKChkYXRhLCBpKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGNsZWFuZWQgPSBjbGVhbmVyKGRhdGEpO1xyXG4gICAgICAgICAgICBjbGVhbmVkW2luaXRJbmRleFN5bWJvbF0gPSBpICogKChpaSAlIDIpICsgMSlcclxuICAgICAgICAgICAgcmV0dXJuIGNsZWFuZWQ7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIH0gKSxcclxuICAgICAgKSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBjcmVhdGVNZXRhRGF0YShvYmo6IGFueSk6IE1ldGFEYXRhIFtdIHtcclxuICAgIHJldHVybiBPYmplY3Qua2V5cyhvYmogPz8ge30pXHJcbiAgICAubWFwKCBrZXkgPT4gKHtcclxuICAgICAga2V5LFxyXG4gICAgICBmaWVsZFR5cGU6IEZpZWxkVHlwZS5Vbmtub3duLFxyXG4gICAgICBvcmRlcjogLTFcclxuICAgIH0pKTtcclxuICB9XHJcblxyXG4gIGNvZXJjZVRvT2JzZXJ2YWJsZTxUPihhcmc6IFRhYmxlQnVpbGRlckFyZ3M8VD4sIHNldHRpbmdzOiBPYnNlcnZhYmxlPFRhYmxlQnVpbGRlclNldHRpbmdzPil7XHJcbiAgICBpZihpc09ic2VydmFibGUoYXJnKSl7XHJcbiAgICAgIHJldHVybiBhcmc7XHJcbiAgICB9IGVsc2UgaWYoaXNTaWduYWwoYXJnKSl7XHJcbiAgICAgIHJldHVybiBzZXR0aW5ncy5waXBlKHN3aXRjaE1hcChzID0+IHtcclxuICAgICAgICB0aGlzLmFzc2VydEluamVjdG9yKHMpO1xyXG4gICAgICAgIHJldHVybiB0b09ic2VydmFibGUoYXJnLCB7IGluamVjdG9yOiBzLmluamVjdG9yIH0pXHJcbiAgICAgIH0pKVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIG9mKGFyZyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb2VyY2VTZXR0aW5nc1RvT2JzZXJ2YWJsZShzZXR0aW5nczogVGFibGVCdWlsZGVyQXJnczxUYWJsZUJ1aWxkZXJTZXR0aW5ncz4pe1xyXG4gICAgaWYoaXNPYnNlcnZhYmxlKHNldHRpbmdzKSl7XHJcbiAgICAgIHJldHVybiBzZXR0aW5ncztcclxuICAgIH0gZWxzZSBpZihpc1NpZ25hbChzZXR0aW5ncykpe1xyXG4gICAgICB0aGlzLmFzc2VydEluamVjdG9yKHNldHRpbmdzKCkpO1xyXG4gICAgICByZXR1cm4gdG9PYnNlcnZhYmxlKHNldHRpbmdzLCB7IGluamVjdG9yOiBzZXR0aW5ncygpLmluamVjdG9yIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIG9mKHNldHRpbmdzKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFzc2VydEluamVjdG9yKHM6IFRhYmxlQnVpbGRlclNldHRpbmdzKXtcclxuICAgIGlmKCFzLmluamVjdG9yKXtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbmplY3RvciBtdXN0IGJlIHByb3ZpZGVkIHdoZW4gcGFzc2luZyBhIHNpZ25hbCB0byB0YWJsZSBidWlsZGVyJyk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY29uc3QgQ3JlYXRlVGFibGVCdWlsZGVyID0gKHJlcG9ydERlZiQ6IE9ic2VydmFibGU8UmVwb3J0RGVmPiApOiBUYWJsZUJ1aWxkZXIgPT4ge1xyXG4gIHJlcG9ydERlZiQgPSByZXBvcnREZWYkLnBpcGUoZGVmYXVsdFNoYXJlUmVwbGF5KCkpO1xyXG4gIHJldHVybiBuZXcgVGFibGVCdWlsZGVyKHJlcG9ydERlZiQucGlwZShtYXAoIHIgPT4gci5kYXRhKSApLCByZXBvcnREZWYkLnBpcGUoIG1hcCAoIHIgPT4gci5tZXRhRGF0YSkgKSk7XHJcbn07XHJcblxyXG50eXBlIFRhYmxlQnVpbGRlckFyZ3M8VD4gPSBUIHwgT2JzZXJ2YWJsZTxUPiB8IFNpZ25hbDxUPjsgXHJcbiJdfQ==
|
|
@@ -359,4 +359,4 @@ export const orderMetaData = (state) => {
|
|
|
359
359
|
:
|
|
360
360
|
Object.values(state.metaData).sort((a, b) => a.order - b.order);
|
|
361
361
|
};
|
|
362
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtc3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jbGFzc2VzL3RhYmxlLXN0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLE1BQU0sMEJBQTBCLENBQUM7QUFDeEUsT0FBTyxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFbEMsT0FBTyxFQUFFLGlCQUFpQixFQUFlLG1CQUFtQixFQUFFLFlBQVksRUFBbUMsTUFBTSxjQUFjLENBQUM7QUFDbEksT0FBTyxFQUFFLFVBQVUsRUFBYSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9ELE9BQU8sRUFBNEIsY0FBYyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUc7QUFFekQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQzdFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzlELE9BQU8sRUFBd0IseUJBQXlCLEVBQUUsc0JBQXNCLEVBQXdCLE1BQU0sa0NBQWtDLENBQUM7QUFDakosT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDeEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENB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UUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFO1lBQ3pDLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM5QyxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDOUMsSUFBRyxNQUFNLElBQUksSUFBSSxJQUFJLE1BQU0sSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDcEMsT0FBTyxDQUFDLENBQUM7WUFDWCxDQUFDO1lBQ0QsSUFBRyxNQUFNLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ2xCLE9BQU8sQ0FBQyxDQUFDO1lBQ1gsQ0FBQztZQUNELElBQUcsTUFBTSxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUNsQixPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQ1osQ0FBQztZQUNELE9BQU8sS0FBSyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUN4RSxDQUFDLENBQUM7UUFDRCxDQUFDO1lBQ0QsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQU0sR0FBRyxDQUFDLENBQUMsS0FBTSxDQUFDLENBQUE7QUFDbEUsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmllbGRUeXBlLCBNZXRhRGF0YSwgU29ydERlZiB9IGZyb20gJy4uL2ludGVyZmFjZXMvcmVwb3J0LWRlZic7XG5pbXBvcnQgeyB2NCBhcyB1dWlkIH0gZnJvbSAndXVpZCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWZhdWx0VGFibGVTdGF0ZSwgR3JvdXBlZERhdGEsIEluaXRpYWxpemF0aW9uU3RhdGUsIGtleXNUb0RlbGV0ZSwgUGVyc2lzdGVkVGFibGVTdGF0ZSwgVGFibGVTdGF0ZSB9IGZyb20gJy4vVGFibGVTdGF0ZSc7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBQcmVkaWNhdGUsIGNvbXB1dGVkLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRhYmxlQnVpbGRlckNvbmZpZ1Rva2VuIH0gZnJvbSAnLi9UYWJsZUJ1aWxkZXJDb25maWcnO1xuaW1wb3J0IHsgQ3VzdG9tRmlsdGVyLCBGaWx0ZXJJbmZvLCBpc0N1c3RvbUZpbHRlciwgaXNGaWx0ZXJJbmZvIH0gZnJvbSAnLi9maWx0ZXItaW5mbyc7XG5pbXBvcnQgeyBTb3J0LCBTb3J0RGlyZWN0aW9uIH0gIGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnIDtcbmltcG9ydCB7IENvbXBvbmVudFN0b3JlIH0gZnJvbSAnQG5ncngvY29tcG9uZW50LXN0b3JlJyAgO1xuaW1wb3J0IHsgRGljdGlvbmFyeSB9IGZyb20gJy4uL2ludGVyZmFjZXMvZGljdGlvbmFyeSc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCBsYXN0LCBtYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuaW1wb3J0IHsgbW92ZUl0ZW1JbkFycmF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5pbXBvcnQgeyBub3ROdWxsLCBvbmNlV2hlbiB9IGZyb20gJy4uLy4uL3J4anMvcnhqcy1vcGVyYXRvcnMnO1xuaW1wb3J0IHsgR2VuZXJhbFRhYmxlU2V0dGluZ3MsIE5vdFBlcnNpc3RlZFRhYmxlU2V0dGluZ3MsIFBlcnNpc3RlZFRhYmxlU2V0dGluZ3MsIFZpcnR1YWxTY3JvbGxPcHRpb25zIH0gZnJvbSAnLi90YWJsZS1idWlsZGVyLWdlbmVyYWwtc2V0dGluZ3MnO1xuaW1wb3J0IHsgcmVwbGFjZUluQXJyYXlXaXRoQ2xvbmUgfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvYXJyYXktaGVscGVycyc7XG5pbXBvcnQgeyBpc0RpZmZlcmVudCB9IGZyb20gJy4uL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgdG9PYnNlcnZhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuXG5leHBvcnQgZnVuY3Rpb24gc3RhdGVJcyhpbml0aWFsaXphdGlvblN0YXRlOiBJbml0aWFsaXphdGlvblN0YXRlKSB7XG4gIHJldHVybiAoc3RhdGU6IFRhYmxlU3RhdGUpID0+IHN0YXRlLmluaXRpYWxpemF0aW9uU3RhdGUgPT09IGluaXRpYWxpemF0aW9uU3RhdGU7XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBUYWJsZVN0b3JlIGV4dGVuZHMgQ29tcG9uZW50U3RvcmU8VGFibGVTdGF0ZT4ge1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgY29uc3QgY29uZmlnID0gaW5qZWN0KFRhYmxlQnVpbGRlckNvbmZpZ1Rva2VuKTtcblxuICAgc3VwZXIoIHsgLi4uZGVmYXVsdFRhYmxlU3RhdGUsIC4uLmNvbmZpZy5kZWZhdWx0VGFibGVTdGF0ZX0pO1xuICB9XG5cbiAgc2VsZWN0U3RhdGVSZWFkeSA9IHRoaXMuc2VsZWN0KHN0YXRlID0+IHN0YXRlLmluaXRpYWxpemF0aW9uU3RhdGUpLnBpcGUoZmlsdGVyKGkgPT4gaSA9PT0gSW5pdGlhbGl6YXRpb25TdGF0ZS5SZWFkeSkpO1xuICBnZXRTYXZhYmxlU3RhdGUoKSA6IE9ic2VydmFibGU8UGVyc2lzdGVkVGFibGVTdGF0ZT4ge1xuICAgIHJldHVybiAgdGhpcy5zdGF0ZSQucGlwZShcbiAgICAgIG1hcCggcyA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLm1hcFNhdmVhYmxlU3RhdGUocyk7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgZ2V0U2F2YWJsZVN0YXRlU2lnbmFsID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHN0YXRlID0gdGhpcy5zdGF0ZSgpO1xuICAgIHJldHVybiB0aGlzLm1hcFNhdmVhYmxlU3RhdGUoc3RhdGUpO1xuICB9KVxuICBwcml2YXRlIG1hcFNhdmVhYmxlU3RhdGUgPSAoczogUGVyc2lzdGVkVGFibGVTdGF0ZSkgPT4ge1xuICAgIGNvbnN0IHNhdmFibGVTdGF0ZSA9IHsuLi5zfSBhcyBQYXJ0aWFsPFRhYmxlU3RhdGU+O1xuICAgIGtleXNUb0RlbGV0ZS5mb3JFYWNoKGtleSA9PiBkZWxldGUgc2F2YWJsZVN0YXRlW2tleV0pO1xuICAgIHJldHVybiBzYXZhYmxlU3RhdGUgYXMgUGVyc2lzdGVkVGFibGVTdGF0ZTtcbiAgfVxuXG4gIG9uID0gPFY+KHNyY09ic2VydmFibGU6IE9ic2VydmFibGU8Vj4sIGZ1bmM6IChvYmo6IFYpID0+IHZvaWQpID0+IHtcbiAgICB0aGlzLmVmZmVjdCgoKSA9PiBzcmNPYnNlcnZhYmxlLnBpcGUoXG4gICAgICB0YXAoZnVuYylcbiAgICApKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIG9uTGFzdChjYWxsYmFjazogKHN0YXRlOiBUYWJsZVN0YXRlKSA9PiB2b2lkICkge1xuICAgIHRoaXMub24odGhpcy5zdGF0ZSQucGlwZShsYXN0KCkpLGNhbGxiYWNrKTtcbiAgfVxuXG4gIHJlYWRvbmx5IG1ldGFEYXRhJCA9IHRoaXMuc2VsZWN0KCBzdGF0ZSA9PiBzdGF0ZS5tZXRhRGF0YSk7XG5cbiAgbWV0YURhdGFBcnJheSA9IHRoaXMuc2VsZWN0U2lnbmFsKFxuICAgIHRoaXMuc3RhdGUsXG4gICAgb3JkZXJNZXRhRGF0YVxuICApXG4gIHJlYWRvbmx5IG1ldGFEYXRhQXJyYXkkID0gdGhpcy5zZWxlY3QoXG4gICAgdGhpcy5zdGF0ZSQsXG4gICAgb3JkZXJNZXRhRGF0YVxuICApO1xuXG4gIGdldE1ldGFEYXRhJCA9IChrZXk6IHN0cmluZykgOiBPYnNlcnZhYmxlPE1ldGFEYXRhPiA9PiB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0KCBzdGF0ZSA9PiBzdGF0ZS5tZXRhRGF0YVtrZXldICApLnBpcGUoXG4gICAgICB0YXAobWV0YSA9PiB7aWYoIW1ldGEpY29uc29sZS53YXJuKGBNZXRhIGRhdGEgd2l0aCBrZXkgJHtrZXl9IG5vdCBmb3VuZGApfSksXG4gICAgICBub3ROdWxsKCkpXG4gIH1cblxuICBnZXRVc2VyRGVmaW5lZFdpZHRoJCA9IChrZXk6c3RyaW5nKSA9PiB0aGlzLnNlbGVjdChzdGF0ZSA9PiBzdGF0ZS51c2VyRGVmaW5lZC53aWR0aHNba2V5XSk7XG4gIGdldFVzZXJEZWZpbmVkV2lkdGggPSAoa2V5OnN0cmluZykgPT4gdGhpcy5zZWxlY3RTaWduYWwoc3RhdGUgPT4gc3RhdGUudXNlckRlZmluZWQud2lkdGhzW2tleV0pO1xuICBnZXRVc2VyRGVmaW5lZFdpZHRocyQgPSB0aGlzLnNlbGVjdChzdGF0ZSA9PiBzdGF0ZS51c2VyRGVmaW5lZC53aWR0aHMpO1xuICBnZXRVc2VyRGVmaW5lZFdpZHRocyA9IHRoaXMuc2VsZWN0U2lnbmFsKHN0YXRlID0+IHN0YXRlLnVzZXJEZWZpbmVkLndpZHRocyk7XG4gIHRhYmxlU2V0dGluZ3NNaW5XaWR0aCA9IHRoaXMuc2VsZWN0U2lnbmFsKHN0YXRlID0+IHN0YXRlLm1pbkNvbHVtbldpZHRoKTtcbiAgcmVhZG9ubHkgZGlzcGxheWVkQ29sdW1ucyQgPSB0aGlzLnNlbGVjdChvcmRlcmVkVmlzaWJsZUNvbHVtbnMpO1xuXG5cbiAgcmVhZG9ubHkgcmVzZXRTdGF0ZSA9IHRoaXMudXBkYXRlcigoc3RhdGUpID0+IHtcbiAgICBjb25zdCBzb3J0ZWQgPSB0aGlzLmNyZWF0ZVByZVNvcnQoc3RhdGUubWV0YURhdGEpO1xuICAgIHJldHVybiAoey4uLnN0YXRlLCBoaWRkZW5LZXlzOiBbXSwgc29ydGVkLCBmaWx0ZXJzOiB7fSAsIGdyb3VwQnk6IFtdLCAgdXNlckRlZmluZWQ6IHsgd2lkdGhzOiB7fSwgb3JkZXI6IHt9LCB0YWJsZToge30gfSB9KTtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgc2hvd0NvbHVtbiA9IHRoaXMudXBkYXRlcigoc3RhdGUsIGtleTogc3RyaW5nKSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIGhpZGRlbktleXM6IHN0YXRlLmhpZGRlbktleXMuZmlsdGVyKCBrID0+IGsgIT09IGtleSksXG4gIH0pKTtcblxuICByZWFkb25seSBoaWRlQ29sdW1uID0gdGhpcy51cGRhdGVyKChzdGF0ZSwga2V5OiBzdHJpbmcpID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgaGlkZGVuS2V5czogWy4uLnN0YXRlLmhpZGRlbktleXMuZmlsdGVyKCBrID0+IGsgIT09IGtleSksIGtleV0sXG4gIH0pKTtcblxuICByZWFkb25seSBzZXRIaWRkZW5Db2x1bW5zID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgZGlzcGxheUNvbHM6IHtrZXk6IHN0cmluZywgdmlzaWJsZTogYm9vbGVhbn1bXSkgPT4ge1xuICAgIHJldHVybiAoey4uLnN0YXRlLCBoaWRkZW5LZXlzOiBkaXNwbGF5Q29scy5maWx0ZXIoZCA9PiAhZC52aXNpYmxlKS5tYXAoZCA9PiBkLmtleSl9KVxuICB9KTtcblxuXG4gIHNldFVzZXJEZWZpbmVkV2lkdGggPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLGNvbFdpZHRoczp7a2V5OiBzdHJpbmcsIHdpZHRoSW5QaXhlbDpudW1iZXJ9W10pID0+IHtcbiAgICBjb25zdCB1c2VyRGVmaW5lZFdpZHRocyA9IHsuLi5zdGF0ZS51c2VyRGVmaW5lZC53aWR0aHN9O1xuICAgIGNvbFdpZHRocy5mb3JFYWNoKGN3ID0+IHtcbiAgICAgIHVzZXJEZWZpbmVkV2lkdGhzW2N3LmtleV0gPSBjdy53aWR0aEluUGl4ZWw7XG4gICAgfSk7XG4gICAgcmV0dXJuIHsuLi5zdGF0ZSwgdXNlckRlZmluZWQ6IHsuLi5zdGF0ZS51c2VyRGVmaW5lZCwgd2lkdGhzOnVzZXJEZWZpbmVkV2lkdGhzfX07XG4gIH0pO1xuXG4gIHNldFVzZXJEZWZpbmVkT3JkZXIgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLG1vdmVkOiB7IG5ld09yZGVyOiBudW1iZXIsIG9sZE9yZGVyOiBudW1iZXIgfSk9PntcbiAgICBjb25zdCB7IG5ld09yZGVyLCBvbGRPcmRlciB9ID0gbW92ZWQ7XG4gICAgY29uc3QgbWRzQXJyID0gb3JkZXJlZFZpc2libGVNZXRhRGF0YShzdGF0ZSk7XG4gICAgbW92ZUl0ZW1JbkFycmF5KG1kc0Fyciwgb2xkT3JkZXIsIG5ld09yZGVyKTtcblxuICAgIGNvbnN0IHVzZXJEZWZpbmVkT3JkZXIgPSBtZHNBcnIucmVkdWNlKChhZ2dyZWdhdGU6IGFueSxjdXJyZW50LGluZGV4KSA9PiB7XG4gICAgICBhZ2dyZWdhdGVbY3VycmVudC5rZXldID0gaW5kZXg7XG4gICAgICByZXR1cm4gYWdncmVnYXRlXG4gICAgfSx7fSk7XG4gICAgcmV0dXJuKHsgLi4uc3RhdGUsIHVzZXJEZWZpbmVkOiB7IC4uLnN0YXRlLnVzZXJEZWZpbmVkLCBvcmRlcjogdXNlckRlZmluZWRPcmRlciB9IH0pXG4gIH0pXG5cblxuICByZWFkb25seSBmaWx0ZXJzJCA9IHRoaXMuc2VsZWN0KHN0YXRlID0+IHN0YXRlLmZpbHRlcnMgKTtcblxuICByZWFkb25seSBnZXRGaWx0ZXIkID0gKGZpbHRlcklkOiBzdHJpbmcpIDogT2JzZXJ2YWJsZTxGaWx0ZXJJbmZvIHwgQ3VzdG9tRmlsdGVyIHwgdW5kZWZpbmVkPiA9PiB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0KCBzdGF0ZSA9PiBzdGF0ZS5maWx0ZXJzW2ZpbHRlcklkXSApO1xuICB9XG4gIHJlYWRvbmx5IGFkZEZpbHRlciA9IHRoaXMudXBkYXRlciggKHN0YXRlLCBmaWx0ZXI6IEZpbHRlckluZm8gfCBDdXN0b21GaWx0ZXIgKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuYWRkRmlsdGVyc1RvU3RhdGUoc3RhdGUsIFtmaWx0ZXJdKTtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgYWRkRmlsdGVycyA9IHRoaXMudXBkYXRlcigoc3RhdGUsZmlsdGVyczooRmlsdGVySW5mbyB8IEN1c3RvbUZpbHRlciApW10pPT57XG4gICAgcmV0dXJuIHRoaXMuYWRkRmlsdGVyc1RvU3RhdGUoc3RhdGUsIGZpbHRlcnMpO1xuICB9KVxuXG5cbiAgcHJpdmF0ZSBhZGRGaWx0ZXJzVG9TdGF0ZSA9IChzdGF0ZTpUYWJsZVN0YXRlLCBmaWx0ZXJzOihGaWx0ZXJJbmZvIHwgQ3VzdG9tRmlsdGVyKVtdKSA6IFRhYmxlU3RhdGUgPT4ge1xuXG4gICAgdmFyIGN1c3RvbUZpbHRlcnMgPSBmaWx0ZXJzLmZpbHRlciggIGlzQ3VzdG9tRmlsdGVyICk7XG5cbiAgICB2YXIgZmlsdGVySW5mb3MgPSBmaWx0ZXJzLmZpbHRlcihpc0ZpbHRlckluZm8pO1xuXG4gICAgY29uc3QgZmlsdGVyc09iaiA9IGZpbHRlckluZm9zXG4gICAgICAuZmlsdGVyKGZsdHIgPT4gT2JqZWN0LmtleXMoc3RhdGUubWV0YURhdGEpLnNvbWUoa2V5ID0+IGtleSA9PT0gZmx0ci5rZXkpIHx8IGNvbnNvbGUud2FybihgTWV0YSBkYXRhIHdpdGgga2V5ICR7Zmx0ci5rZXl9IG5vdCBmb3VuZGApKVxuICAgICAgLnJlZHVjZSgoZmlsdGVyc09iajoge1trOiBzdHJpbmddOiBhbnl9LGZpbHRlcik9PntcbiAgICAgICAgaWYgKCFmaWx0ZXIuZmlsdGVySWQpIHtcbiAgICAgICAgICBmaWx0ZXIuZmlsdGVySWQgPSB1dWlkKCk7XG4gICAgICAgIH1cbiAgICAgICAgZmlsdGVyc09ialtmaWx0ZXIuZmlsdGVySWRdID0gZmlsdGVyO1xuICAgICAgICByZXR1cm4gZmlsdGVyc09iajtcbiAgICAgIH0se30pO1xuXG4gICAgY3VzdG9tRmlsdGVycy5mb3JFYWNoKCBmbHRyID0+IHtcbiAgICAgIGlmKCFmbHRyLmZpbHRlcklkKSB7XG4gICAgICAgIGZsdHIuZmlsdGVySWQgPSB1dWlkKCk7XG4gICAgICB9XG4gICAgICBmaWx0ZXJzT2JqW2ZsdHIuZmlsdGVySWRdID0gZmx0cjtcbiAgICB9KVxuICAgIHJldHVybiB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIGZpbHRlcnMgOiB7Li4uc3RhdGUuZmlsdGVycywgLi4uZmlsdGVyc09iaiB9XG4gICAgfTtcbiAgfVxuXG4gIHJlYWRvbmx5IHJlbW92ZUZpbHRlciA9IHRoaXMudXBkYXRlciggKHN0YXRlLCBmaWx0ZXJJZDogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgZmlsdGVyc0NvcHkgPSB7IC4uLnN0YXRlLmZpbHRlcnMgfTtcbiAgICBkZWxldGUgZmlsdGVyc0NvcHlbZmlsdGVySWRdO1xuICAgIHJldHVybiAoey4uLnN0YXRlLCBmaWx0ZXJzOiBmaWx0ZXJzQ29weSB9KTtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgcmVtb3ZlRmlsdGVycyA9IHRoaXMudXBkYXRlciggKHN0YXRlLCBmaWx0ZXJJZHM6IHN0cmluZ1tdKSA9PiB7XG4gICAgY29uc3QgZmlsdGVyc0NvcHkgPSB7IC4uLnN0YXRlLmZpbHRlcnMgfTtcbiAgICBmaWx0ZXJJZHMuZm9yRWFjaChpZCA9PiB7IGRlbGV0ZSBmaWx0ZXJzQ29weVtpZF0gfSlcbiAgICByZXR1cm4gKHsuLi5zdGF0ZSwgZmlsdGVyczogZmlsdGVyc0NvcHkgfSk7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IGNsZWFyRmlsdGVycyA9IHRoaXMudXBkYXRlcigoc3RhdGUpPT5cbiAgICAoey4uLnN0YXRlLGZpbHRlcnM6e319KSlcblxuXG4gIHNlbGVjdFNvcnRlZCA9IHRoaXMuc2VsZWN0KHN0YXRlID0+IHN0YXRlLnNvcnRlZCkucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgoZixzKSA9PiAhaXNEaWZmZXJlbnQoZixzKSkpO1xuICByZWFkb25seSBzb3J0JCA9IHRoaXMuc2VsZWN0KHRoaXMuc2VsZWN0U3RhdGVSZWFkeSwgdGhpcy5zZWxlY3RTb3J0ZWQsIChfLHMpID0+IHMgKTtcbiAgXG4gIGNyZWF0ZVByZVNvcnQgPSAobWV0YURhdGFzOiBEaWN0aW9uYXJ5PE1ldGFEYXRhPik6IFNvcnRbXSA9PiB7XG4gICAgcmV0dXJuIE9iamVjdC52YWx1ZXMobWV0YURhdGFzKS5maWx0ZXIoKCBtZXRhRGF0YSApIDogbWV0YURhdGEgaXMgTWV0YURhdGEgJiB7cHJlU29ydDogU29ydERlZn0gPT4gISFtZXRhRGF0YS5wcmVTb3J0KVxuICAgICAgLnNvcnQoKHsgIHByZVNvcnQ6IHBzMSAgfSwgeyBwcmVTb3J0OiBwczIgfSApID0+IChwczEucHJlY2VkZW5jZSB8fCBOdW1iZXIuTUFYX1ZBTFVFKSAtICggcHMyLnByZWNlZGVuY2UgfHwgTnVtYmVyLk1BWF9WQUxVRSkpXG4gICAgICAubWFwKCgge2tleSwgcHJlU29ydH0gKSA9PiAoeyBhY3RpdmU6IGtleSwgZGlyZWN0aW9uOiBwcmVTb3J0LmRpcmVjdGlvbiB9KSlcbiAgfVxuXG4gIHJlYWRvbmx5IHNldFNvcnQgPSB0aGlzLnVwZGF0ZXI8e2tleTogc3RyaW5nLCBkaXJlY3Rpb24/OiBTb3J0RGlyZWN0aW9ufT4oKHN0YXRlLCB7a2V5LCBkaXJlY3Rpb259ICkgPT4ge1xuICAgIGNvbnN0IHNvcnRBcnJheSA9IHN0YXRlLnNvcnRlZC5maWx0ZXIoIHMgPT4gcy5hY3RpdmUgIT09IGtleSApO1xuICAgIGlmKGRpcmVjdGlvbikge1xuICAgICAgc29ydEFycmF5LnVuc2hpZnQoe2FjdGl2ZToga2V5LCBkaXJlY3Rpb259KTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgc29ydGVkOiBzb3J0QXJyYXksXG4gICAgfTtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgc2V0QWxsU29ydCA9IHRoaXMudXBkYXRlcigoc3RhdGUsc29ydEFycmF5OlNvcnRbXSk9PntcbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBzb3J0ZWQ6IHNvcnRBcnJheSxcbiAgICB9O1xuICB9KTtcblxuICB1cGRhdGVTdGF0ZUZ1bmMgPSAoc3RhdGU6IFRhYmxlU3RhdGUsIGluY29taW5nVGFibGVTdGF0ZTogUGFydGlhbDxUYWJsZVN0YXRlPikgOiBUYWJsZVN0YXRlID0+IHtcbiAgICBjb25zdCBtZXRhRGF0YSA9IHN0YXRlLm1ldGFEYXRhO1xuICAgIGNvbnN0IHNvcnRlZCA9IGluY29taW5nVGFibGVTdGF0ZS5zb3J0ZWQ/Lmxlbmd0aCA/IGluY29taW5nVGFibGVTdGF0ZS5zb3J0ZWRcbiAgICAgIDogc3RhdGUuaW5pdGlhbGl6YXRpb25TdGF0ZSA9PT0gSW5pdGlhbGl6YXRpb25TdGF0ZS5DcmVhdGVkID8gdGhpcy5jcmVhdGVQcmVTb3J0KG1ldGFEYXRhKSA6IHN0YXRlLnNvcnRlZDtcbiAgICByZXR1cm4gey4uLnN0YXRlLCAuLi5pbmNvbWluZ1RhYmxlU3RhdGUsIG1ldGFEYXRhICwgc29ydGVkfTtcbiAgfVxuXG4gIHJlYWRvbmx5IHNldFBhZ2VTaXplID0gdGhpcy51cGRhdGVyKCAoc3RhdGUsIHBhZ2VTaXplOiBudW1iZXIpPT4gKHsgLi4uc3RhdGUsIHBhZ2VTaXplLCB1c2VyRGVmaW5lZDogeyAuLi5zdGF0ZS51c2VyRGVmaW5lZCwgcGFnZVNpemUgfSB9KSk7XG4gIGdldFBhZ2VTaXplID0gdGhpcy5zZWxlY3Qoc3RhdGUgPT4gc3RhdGUudXNlckRlZmluZWQucGFnZVNpemUgfHwgc3RhdGUucGFnZVNpemUpO1xuICByZWFkb25seSB1cGRhdGVTdGF0ZSA9IHRoaXMudXBkYXRlcjxQYXJ0aWFsPFRhYmxlU3RhdGU+Pih0aGlzLnVwZGF0ZVN0YXRlRnVuYyk7XG5cbiAgY2xlYW5QZXJzaXN0ZWRTdGF0ZShzdGF0ZTogVGFibGVTdGF0ZSxwU3RhdGU6IFBlcnNpc3RlZFRhYmxlU3RhdGUpIHtcbiAgICBjb25zdCBtZXRhcyA9IE9iamVjdC52YWx1ZXMoc3RhdGUubWV0YURhdGEpO1xuICAgIGNvbnN0IGZpbHRlcnMgPSBPYmplY3QudmFsdWVzKHBTdGF0ZS5maWx0ZXJzKS5maWx0ZXIoZmx0ciA9PiBpc0N1c3RvbUZpbHRlcihmbHRyKSB8fCBtZXRhcy5zb21lKG0gPT4gbS5rZXkgPT09IGZsdHIua2V5KSkucmVkdWNlKChvYmo6IGFueSwgZmlsdGVyKSA9PiB7XG4gICAgICBvYmpbZmlsdGVyLmZpbHRlcklkIV0gPSBwU3RhdGUuZmlsdGVyc1tmaWx0ZXIuZmlsdGVySWQhXTtcbiAgICAgIHJldHVybiBvYmo7XG4gICAgfSwge30pO1xuICAgIGNvbnN0IHNvcnRlZCA9IHBTdGF0ZS5zb3J0ZWQuZmlsdGVyKHMgPT4gbWV0YXMuc29tZShtID0+IG0ua2V5ID09PSBzLmFjdGl2ZSkpO1xuICAgIHJldHVybiAoey4uLnBTdGF0ZSxmaWx0ZXJzLHNvcnRlZH0pXG4gIH1cblxuICByZWFkb25seSB1cGRhdGVTdGF0ZUZyb21QZXJzaXN0ZWRTdGF0ZSA9IHRoaXMudXBkYXRlciggKCBzdGF0ZTogVGFibGVTdGF0ZSwgcGVyc2lzdGVkU3RhdGU6IFBlcnNpc3RlZFRhYmxlU3RhdGUpIDogVGFibGVTdGF0ZSA9PiB7XG4gICAgY29uc3QgaW5jb21pbmdUYWJsZVN0YXRlOiBQYXJ0aWFsPFRhYmxlU3RhdGU+ID0gdGhpcy5jbGVhblBlcnNpc3RlZFN0YXRlKHN0YXRlLHBlcnNpc3RlZFN0YXRlKTtcbiAgICBjb25zdCBuZXdTdGF0ZSA9ICB0aGlzLnVwZGF0ZVN0YXRlRnVuYyhzdGF0ZSxpbmNvbWluZ1RhYmxlU3RhdGUpO1xuICAgIG5ld1N0YXRlLmluaXRpYWxpemF0aW9uU3RhdGUgPSBzdGF0ZS5pbml0aWFsaXphdGlvblN0YXRlID09PSBJbml0aWFsaXphdGlvblN0YXRlLk1ldGFEYXRhTG9hZGVkID8gSW5pdGlhbGl6YXRpb25TdGF0ZS5Mb2FkZWRGcm9tU3RvcmUgOiBzdGF0ZS5pbml0aWFsaXphdGlvblN0YXRlO1xuICAgIHJldHVybiBuZXdTdGF0ZTtcbiAgfSk7XG5cbiAgZ2V0VXNlckRlZmluZWRUYWJsZVNpemUgPSB0aGlzLnNlbGVjdFNpZ25hbChzdGF0ZSA9PiBzdGF0ZS51c2VyRGVmaW5lZC50YWJsZS53aWR0aCk7XG4gIGdldFVzZXJEZWZpbmVkVGFibGVTaXplJCA9IHRoaXMuc2VsZWN0KHN0YXRlID0+IHN0YXRlLnVzZXJEZWZpbmVkLnRhYmxlLndpZHRoKTtcbiAgc2V0VGFibGVXaWR0aCA9IHRoaXMudXBkYXRlcigoc3RhdGUsIHdpZHRoSW5QaXhlbHM6bnVtYmVyKSA9PiAoey4uLnN0YXRlLCB1c2VyRGVmaW5lZDogeyAuLi5zdGF0ZS51c2VyRGVmaW5lZCwgdGFibGU6IHsgd2lkdGg6IHdpZHRoSW5QaXhlbHMgfSB9IH0pKSA7XG5cbiAgbWVyZ2VNZXRhID0gKG9yaWc6IE1ldGFEYXRhLCBtZXJnZTogTWV0YURhdGEpOiBNZXRhRGF0YSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAga2V5OiBvcmlnLmtleSxcbiAgICAgICAgZGlzcGxheU5hbWU6IG1lcmdlLmRpc3BsYXlOYW1lID8/IG9yaWcuZGlzcGxheU5hbWUsXG4gICAgICAgIGZpZWxkVHlwZTogbWVyZ2UuZmllbGRUeXBlIHx8IG9yaWcuZmllbGRUeXBlLFxuICAgICAgICBhZGRpdGlvbmFsOiB7Li4ub3JpZy5hZGRpdGlvbmFsLCAuLi5tZXJnZS5hZGRpdGlvbmFsfSxcbiAgICAgICAgb3JkZXI6IG1lcmdlLm9yZGVyID8/IG9yaWcub3JkZXIsXG4gICAgICAgIHByZVNvcnQ6IG1lcmdlLnByZVNvcnQgPz8gb3JpZy5wcmVTb3J0LFxuICAgICAgICB3aWR0aDogbWVyZ2Uud2lkdGggPz8gb3JpZy53aWR0aCxcbiAgICAgICAgbm9FeHBvcnQ6IG1lcmdlLm5vRXhwb3J0IHx8IG9yaWcubm9FeHBvcnQsXG4gICAgICAgIG5vRmlsdGVyOiBtZXJnZS5ub0ZpbHRlciB8fCBvcmlnLm5vRmlsdGVyLFxuICAgICAgICBjdXN0b21DZWxsOiBtZXJnZS5jdXN0b21DZWxsID8/IG9yaWcuY3VzdG9tQ2VsbCxcbiAgICAgICAgdHJhbnNmb3JtOiBtZXJnZS50cmFuc2Zvcm0gPz8gb3JpZy50cmFuc2Zvcm0sXG4gICAgICAgIG1hcDogbWVyZ2UubWFwID8/IG9yaWcubWFwLFxuICAgICAgICBjbGljazogbWVyZ2UuY2xpY2sgPz8gb3JpZy5jbGljayxcbiAgICAgICAgY2xhc3NlczogbWVyZ2UuY2xhc3NlcyA/PyBvcmlnLmNsYXNzZXMsXG4gICAgICAgIG5vU29ydDogbWVyZ2Uubm9Tb3J0ID8/IG9yaWcubm9Tb3J0LFxuICAgICAgICB0ZW1wbGF0ZTogbWVyZ2UudGVtcGxhdGUgPz8gb3JpZy50ZW1wbGF0ZSxcbiAgICAgICAgdG9vbFRpcDogbWVyZ2UudG9vbFRpcCA/PyBvcmlnLnRvb2xUaXAsXG4gICAgICAgIHVzZUljb246IG1lcmdlLnVzZUljb24gPz8gb3JpZy51c2VJY29uLFxuICAgIH07XG4gIH1cblxuICByZWFkb25seSBzZXRJbml0aWFsaXphdGlvblN0YXRlID0gdGhpcy51cGRhdGVyKCAoc3RhdGUsIGluaXRpYWxpemF0aW9uU3RhdGU6ICBJbml0aWFsaXphdGlvblN0YXRlKSA9PiB7XG4gICAgcmV0dXJuIHsuLi5zdGF0ZSwgaW5pdGlhbGl6YXRpb25TdGF0ZX07XG4gIH0pO1xuXG4gIHJ1bk9uY2VXaGVuKHByZWRpY2F0ZTogUHJlZGljYXRlPFRhYmxlU3RhdGU+LCBmdW5jOiAoc3RhdGU6VGFibGVTdGF0ZSkgPT4gdm9pZCkge1xuICAgIGNvbnN0IG9icyA9IHRoaXMuc3RhdGUkLnBpcGUob25jZVdoZW4ocHJlZGljYXRlKSk7XG4gICAgdGhpcy5vbihvYnMsIChzdGF0ZSkgPT4ge1xuICAgICAgZnVuYyhzdGF0ZSk7XG4gICAgfSk7XG4gIH1cblxuICBvblJlYWR5KCBmdW5jOiAoc3RhdGU6IFRhYmxlU3RhdGUpID0+IHZvaWQgKSB7XG4gICAgdGhpcy5ydW5PbmNlV2hlbihzdGF0ZUlzKEluaXRpYWxpemF0aW9uU3RhdGUuUmVhZHkpLGZ1bmMpO1xuICB9XG5cbiAgcmVhZG9ubHkgc2V0TWV0YURhdGEgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBtZDogTWV0YURhdGFbXSB8IE1ldGFEYXRhICkgPT4ge1xuICAgIGNvbnN0IG1ldGFEYXRhID0gKCBBcnJheS5pc0FycmF5KG1kKSA/IFsuLi5tZF0gOiBbbWRdIClcbiAgICAgIC5yZWR1Y2UoKHByZXY6IERpY3Rpb25hcnk8TWV0YURhdGE+LGN1cnIpID0+IHtcbiAgICAgICAgaWYocHJldltjdXJyLmtleV0pIHtcbiAgICAgICAgICBwcmV2W2N1cnIua2V5XSA9IHRoaXMubWVyZ2VNZXRhKHByZXZbY3Vyci5rZXldLGN1cnIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHByZXZbY3Vyci5rZXldID0gY3VycjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcHJldjtcbiAgICAgIH0gLHt9KTtcbiAgICBsZXQgc29ydGVkID0gc3RhdGUuc29ydGVkO1xuICAgIGlmKHNvcnRlZC5sZW5ndGggPT09IDApIHtcbiAgICAgIHNvcnRlZCA9IHRoaXMuY3JlYXRlUHJlU29ydChtZXRhRGF0YSk7XG4gICAgfVxuICAgIGNvbnN0IG9yZGVyID0gdGhpcy5pbml0aWFsaXplT3JkZXIoc3RhdGUsIG1ldGFEYXRhKTtcbiAgICBjb25zdCBpbml0aWFsaXphdGlvblN0YXRlID0gc3RhdGUuaW5pdGlhbGl6YXRpb25TdGF0ZSA9PSBJbml0aWFsaXphdGlvblN0YXRlLkNyZWF0ZWQgPyAgSW5pdGlhbGl6YXRpb25TdGF0ZS5NZXRhRGF0YUxvYWRlZCA6IHN0YXRlLmluaXRpYWxpemF0aW9uU3RhdGU7XG4gICAgcmV0dXJuIHsgLi4uc3RhdGUsIGluaXRpYWxpemF0aW9uU3RhdGUsIG1ldGFEYXRhLCBzb3J0ZWQsIHVzZXJEZWZpbmVkOiB7IC4uLnN0YXRlLnVzZXJEZWZpbmVkLCBvcmRlcjogb3JkZXJ9IH07XG4gIH0pO1xuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZU9yZGVyID0gKHN0YXRlOlRhYmxlU3RhdGUsbWRzOiBEaWN0aW9uYXJ5PE1ldGFEYXRhPikgOiBEaWN0aW9uYXJ5PG51bWJlcj4gPT4ge1xuICAgIGNvbnN0IHZpZXdhYmxlTWV0YURhdGFBcnIgPSBPYmplY3QudmFsdWVzKG1kcykuZmlsdGVyKGEgPT4gYS5maWVsZFR5cGUgIT09IEZpZWxkVHlwZS5IaWRkZW4pO1xuICAgIGxldCB1c2VyRGVmaW5lZE9yZGVyID0gc3RhdGUudXNlckRlZmluZWQub3JkZXI7XG4gICAgaWYodmlld2FibGVNZXRhRGF0YUFyci5zb21lKG1ldGEgPT4gdXNlckRlZmluZWRPcmRlclttZXRhLmtleV0gPT0gbnVsbCkpe1xuICAgICAgcmV0dXJuIHt9XG4gICAgfVxuICAgIHJldHVybiB1c2VyRGVmaW5lZE9yZGVyO1xuICB9XG5cbiAgdG9nZ2xlQ29sbGFwc2VIZWFkZXIgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlKT0+e1xuICAgIGNvbnN0IHRhYmxlU2V0dGluZ3MgPSB7Li4uc3RhdGUucGVyc2lzdGVkVGFibGVTZXR0aW5nc307XG4gICAgdGFibGVTZXR0aW5ncy5jb2xsYXBzZUhlYWRlciA9ICF0YWJsZVNldHRpbmdzLmNvbGxhcHNlSGVhZGVyO1xuICAgIHJldHVybiAoey4uLnN0YXRlLHBlcnNpc3RlZFRhYmxlU2V0dGluZ3MgOiBuZXcgUGVyc2lzdGVkVGFibGVTZXR0aW5ncyh0YWJsZVNldHRpbmdzKX0pO1xuICB9KVxuXG4gIHRvZ2dsZUNvbGxhcHNlRm9vdGVyID0gdGhpcy51cGRhdGVyKChzdGF0ZSk9PntcbiAgICBjb25zdCB0YWJsZVNldHRpbmdzID0gey4uLnN0YXRlLnBlcnNpc3RlZFRhYmxlU2V0dGluZ3N9O1xuICAgIHRhYmxlU2V0dGluZ3MuY29sbGFwc2VGb290ZXIgPSAhdGFibGVTZXR0aW5ncy5jb2xsYXBzZUZvb3RlcjtcbiAgICByZXR1cm4gKHsuLi5zdGF0ZSxwZXJzaXN0ZWRUYWJsZVNldHRpbmdzIDogbmV3IFBlcnNpc3RlZFRhYmxlU2V0dGluZ3ModGFibGVTZXR0aW5ncyl9KTtcbiAgfSlcblxuICBhZGRHcm91cEJ5S2V5ID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgbWV0YURhdGFLZXk6IHN0cmluZykgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBncm91cEJ5OiBbLi4uc3RhdGUuZ3JvdXBCeSwgeyBrZXk6IG1ldGFEYXRhS2V5LCBleHBhbmRlZEhlYWRlcnM6IFtdIH1dXG4gIH0pKTtcblxuICByZW1vdmVHcm91cEJ5S2V5ID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgZ3JvdXBCeUtleTogc3RyaW5nKSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIGdyb3VwQnk6IHN0YXRlLmdyb3VwQnkuZmlsdGVyKGtleSA9PiBncm91cEJ5S2V5ICE9PSBrZXkua2V5KVxuICB9KSk7XG5cbiAgdXBkYXRlRXhwYW5kZWRHcm91cHMgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBkYXRhOiB7a2V5OiBzdHJpbmcsIGdyb3VwS2V5OiBzdHJpbmcsIGlzRXhwYW5kZWQ6IGJvb2xlYW59KSA9PiB7XG4gICAgY29uc3QgZ2JrID0gcmVwbGFjZUluQXJyYXlXaXRoQ2xvbmUoc3RhdGUuZ3JvdXBCeSwgayA9PiBrLmtleSA9PT0gZGF0YS5rZXksIGdrID0+IHtcbiAgICAgIGdrLmV4cGFuZGVkSGVhZGVycyA9IGRhdGEuaXNFeHBhbmRlZCA/IFsuLi5nay5leHBhbmRlZEhlYWRlcnMsIGRhdGEuZ3JvdXBLZXldIDogZ2suZXhwYW5kZWRIZWFkZXJzLmZpbHRlcihnID0+IGcgIT09IGRhdGEuZ3JvdXBLZXkpO1xuICAgIH0pO1xuICAgIHJldHVybiAoe1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBncm91cEJ5OiBnYmtcbiAgICB9KX1cbiAgKTtcblxuICBleHBhbmRBbGxPZkdyb3VwID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgZGF0YTogeyBncm91cEhlYWRlcnNCeUtleTogRGljdGlvbmFyeTx7IGdyb3VwTmFtZTogc3RyaW5nIH1bXT4gfSkgPT4ge1xuICAgIGNvbnN0IG5ld0dyb3VwZWREYXRhID0gc3RhdGUuZ3JvdXBCeS5tYXAoZ2IgPT4gKHtcbiAgICAgIGtleTogZ2Iua2V5LFxuICAgICAgZXhwYW5kZWRIZWFkZXJzOiBkYXRhLmdyb3VwSGVhZGVyc0J5S2V5W2diLmtleV0/Lm1hcChnID0+IGcuZ3JvdXBOYW1lKSA/PyBnYi5leHBhbmRlZEhlYWRlcnNcbiAgICB9IGFzIEdyb3VwZWREYXRhKSk7XG4gICAgcmV0dXJuICh7IC4uLnN0YXRlLCBncm91cEJ5OiBuZXdHcm91cGVkRGF0YSB9KTtcbiAgfSk7XG5cbiAgY29sbGFwc2VBbGwgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlKSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIGdyb3VwQnk6IHN0YXRlLmdyb3VwQnkubWFwKGdiID0+ICh7IGtleTogZ2Iua2V5LCBleHBhbmRlZEhlYWRlcnM6IFtdIH0pKVxuICB9KSk7XG5cbiAgY29sbGFwc2VBbGxPZktleSA9IHRoaXMudXBkYXRlcigoc3RhdGUsIGRhdGE6IHsga2V5czogc3RyaW5nW10gfSkgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBncm91cEJ5OiBzdGF0ZS5ncm91cEJ5Lm1hcChnYiA9PiAoe1xuICAgICAga2V5OiBnYi5rZXksXG4gICAgICBleHBhbmRlZEhlYWRlcnM6IGRhdGEua2V5cy5pbmNsdWRlcyhnYi5rZXkpID8gW10gOiBnYi5leHBhbmRlZEhlYWRlcnNcbiAgICB9KSlcbiAgfSkpO1xuXG4gIGdyb3VwQnlLZXlzJCA9IHRoaXMuc2VsZWN0KHN0YXRlID0+IHN0YXRlLmdyb3VwQnkubWFwKGdiayA9PiBnYmsua2V5KSlcbiAgICAucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZDxzdHJpbmdbXT4oKHByZXYsIGN1cnIpID0+IHByZXYubGVuZ3RoID09PSBjdXJyLmxlbmd0aCAmJiBjdXJyLmV2ZXJ5KChrLGkpID0+IHByZXZbaV0gPT09IGspKSk7XG5cbiAgZXhwYW5kZWRHcm91cHMkID0gdGhpcy5zZWxlY3Qoc3RhdGUgPT4gc3RhdGUuZ3JvdXBCeSkucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgoYSwgYikgPT4ge1xuICAgIGNvbnN0IGFhID0gYS5mbGF0TWFwKGcgPT4gZy5leHBhbmRlZEhlYWRlcnMpO1xuICAgIGNvbnN0IGJiID0gYi5mbGF0TWFwKGcgPT4gZy5leHBhbmRlZEhlYWRlcnMpO1xuICAgIHJldHVybiBhYS5sZW5ndGggPT09IGJiLmxlbmd0aCAmJiBhYS5ldmVyeSgoaykgPT4gYmIuaW5jbHVkZXMoaykpO1xuICB9KSk7XG4gIFxuICBzZXRUYWJsZVNldHRpbmdzID0gdGhpcy51cGRhdGVyKChzdGF0ZSxzZXR0aW5nczpHZW5lcmFsVGFibGVTZXR0aW5ncyk9PntcbiAgICBjb25zdCBzOlRhYmxlU3RhdGUgPSB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIHBlcnNpc3RlZFRhYmxlU2V0dGluZ3MgOiBuZXcgUGVyc2lzdGVkVGFibGVTZXR0aW5ncyhzZXR0aW5ncyksXG4gICAgICBub3RQZXJzaXN0ZWRUYWJsZVNldHRpbmdzIDogbmV3IE5vdFBlcnNpc3RlZFRhYmxlU2V0dGluZ3Moc2V0dGluZ3MpXG4gICAgICB9O1xuICAgIHJldHVybiBzO1xuICB9KTtcblxuICB0YWJsZVNldHRpbmdzID0gdGhpcy5zZWxlY3RTaWduYWwoc3RhdGUgPT4ge1xuICAgIGNvbnN0IHRzIDogUGVyc2lzdGVkVGFibGVTZXR0aW5ncyAmIE5vdFBlcnNpc3RlZFRhYmxlU2V0dGluZ3MgPVxuICAgICAgey4uLnN0YXRlLnBlcnNpc3RlZFRhYmxlU2V0dGluZ3MsIC4uLnN0YXRlLm5vdFBlcnNpc3RlZFRhYmxlU2V0dGluZ3N9O1xuICAgIHJldHVybiB0cztcbiAgfSk7XG5cbiAgdGFibGVTZXR0aW5ncyQgPSB0aGlzLnNlbGVjdChzdGF0ZSA9PiB7XG4gICAgY29uc3QgdHMgOiBQZXJzaXN0ZWRUYWJsZVNldHRpbmdzICYgTm90UGVyc2lzdGVkVGFibGVTZXR0aW5ncyA9XG4gICAgICB7Li4uc3RhdGUucGVyc2lzdGVkVGFibGVTZXR0aW5ncywuLi5zdGF0ZS5ub3RQZXJzaXN0ZWRUYWJsZVNldHRpbmdzfTtcbiAgICByZXR1cm4gdHM7XG4gIH0pXG5cbiAgcHJvcHMgPSB0aGlzLnNlbGVjdFNpZ25hbChzID0+IHMucHJvcHMpO1xuXG4gIHNldExpbmtNYXBzID0gdGhpcy51cGRhdGVyKChzdGF0ZSxtYXBzOiBhbnkpPT57XG4gICAgcmV0dXJuIHsuLi5zdGF0ZSxsaW5rTWFwczptYXBzfTtcbiAgfSk7XG5cbiAgZ2V0TGlua0luZm8gPSAobWQ6TWV0YURhdGEpID0+IHRoaXMuc2VsZWN0U2lnbmFsKHN0YXRlID0+IHN0YXRlLmxpbmtNYXBzW21kLmtleV0pO1xuXG4gIGdldElzRXhwYW5kZWQgPSAoY29sdW1uS2V5OiBzdHJpbmcsIGdyb3VwSGVhZGVyS2V5OiBzdHJpbmcpID0+IHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3Qoc3RhdGUgPT4gISFzdGF0ZS5ncm91cEJ5LmZpbHRlcihnID0+IGcua2V5ID09PSBjb2x1bW5LZXkgJiYgZy5leHBhbmRlZEhlYWRlcnMuaW5jbHVkZXMoZ3JvdXBIZWFkZXJLZXkpKS5sZW5ndGgpO1xuICB9XG4gICRpc1ZpcnR1YWwgPSB0aGlzLnNlbGVjdFNpZ25hbChzdGF0ZSA9PiBzdGF0ZS5ub3RQZXJzaXN0ZWRUYWJsZVNldHRpbmdzLnVzZVZpcnR1YWxTY3JvbGwgPT09IHRydWUgfHwgKHN0YXRlLm5vdFBlcnNpc3RlZFRhYmxlU2V0dGluZ3MudXNlVmlydHVhbFNjcm9sbCBhcyBWaXJ0dWFsU2Nyb2xsT3B0aW9ucyk/LnZpcnR1YWxBc0RlZmF1bHQgfHwgc3RhdGUuc2hvd0FsbCk7XG4gICR2aWV3VHlwZSA9IHRoaXMuc2VsZWN0U2lnbmFsKHN0YXRlID0+IHtcbiAgICBjb25zdCB1c2VQYWdpbmF0b3IgPSBzdGF0ZS5ub3RQZXJzaXN0ZWRUYWJsZVNldHRpbmdzLnVzZVBhZ2luYXRvcjtcbiAgICByZXR1cm4gKHN0YXRlLnNob3dBbGwgfHwgKHRoaXMuJGlzVmlydHVhbCgpICYmICF1c2VQYWdpbmF0b3IpKSA/ICdhbGwnIDogdGhpcy4kaXNWaXJ0dWFsKCkgPyAndmlydHVhbCBwYWdpbmF0b3InIDogJ3BhZ2luYXRvcic7XG4gIH0pO1xuICB2aWV3VHlwZSQgPSB0b09ic2VydmFibGUodGhpcy4kdmlld1R5cGUpO1xufVxuXG5leHBvcnQgY29uc3Qgb3JkZXJlZFZpc2libGVDb2x1bW5zID0gKHN0YXRlOiBUYWJsZVN0YXRlKSA9PiBvcmRlcmVkVmlzaWJsZU1ldGFEYXRhKHN0YXRlKS5tYXAobWQgPT4gbWQua2V5KTtcblxuZXhwb3J0IGNvbnN0IG9yZGVyZWRWaXNpYmxlTWV0YURhdGEgPSAoc3RhdGU6IFRhYmxlU3RhdGUpID0+IHtcbiAgY29uc3Qgb3JkZXJlZCA9IG9yZGVyTWV0YURhdGEoc3RhdGUpO1xuICBjb25zdCBvcmRlcmVkVmlzaWJsZSA9IG9yZGVyZWRcbiAgICAuZmlsdGVyKG1ldGFEYXRhID0+ICFzdGF0ZS5oaWRkZW5LZXlzLmluY2x1ZGVzKG1ldGFEYXRhLmtleSkgJiYgc3RhdGUubWV0YURhdGFbbWV0YURhdGEua2V5XS5maWVsZFR5cGUgIT09IEZpZWxkVHlwZS5IaWRkZW4pO1xuICByZXR1cm4gb3JkZXJlZFZpc2libGU7XG59XG5cbmV4cG9ydCBjb25zdCBvcmRlcmVkQ29kZVZpc2libGVNZXRhRGF0YSA9IChzdGF0ZTogVGFibGVTdGF0ZSkgPT5cbiAgb3JkZXJNZXRhRGF0YShzdGF0ZSkuZmlsdGVyKG1kID0+IG1kLmZpZWxkVHlwZSAhPT0gRmllbGRUeXBlLkhpZGRlbik7XG5cbmV4cG9ydCBjb25zdCBvcmRlck1ldGFEYXRhID0gKHN0YXRlOlRhYmxlU3RhdGUpID0+IHtcbiAgY29uc3QgdXNlck9yZGVyQXJyID0gT2JqZWN0LmVudHJpZXMoc3RhdGUudXNlckRlZmluZWQub3JkZXIpO1xuICByZXR1cm4gdXNlck9yZGVyQXJyLmxlbmd0aCA/XG4gICBPYmplY3QudmFsdWVzKHN0YXRlLm1ldGFEYXRhKS5zb3J0KChhLGIpPT4ge1xuICAgIGNvbnN0IG9yZGVyQSA9IHN0YXRlLnVzZXJEZWZpbmVkLm9yZGVyW2Eua2V5XTtcbiAgICBjb25zdCBvcmRlckIgPSBzdGF0ZS51c2VyRGVmaW5lZC5vcmRlcltiLmtleV07XG4gICAgaWYob3JkZXJBID09IG51bGwgJiYgb3JkZXJCID09IG51bGwpIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cbiAgICBpZihvcmRlckEgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIDE7XG4gICAgfVxuICAgIGlmKG9yZGVyQiA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gLTE7XG4gICAgfVxuICAgIHJldHVybiBzdGF0ZS51c2VyRGVmaW5lZC5vcmRlclthLmtleV0gLSBzdGF0ZS51c2VyRGVmaW5lZC5vcmRlcltiLmtleV1cbiAgfSlcbiAgIDpcbiAgIE9iamVjdC52YWx1ZXMoc3RhdGUubWV0YURhdGEpLnNvcnQoKGEsYik9PiBhLm9yZGVyISAtIGIub3JkZXIhKVxufSJdfQ==
|
|
362
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtc3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jbGFzc2VzL3RhYmxlLXN0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLE1BQU0sMEJBQTBCLENBQUM7QUFDeEUsT0FBTyxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFbEMsT0FBTyxFQUFFLGlCQUFpQixFQUFlLG1CQUFtQixFQUFFLFlBQVksRUFBbUMsTUFBTSxjQUFjLENBQUM7QUFDbEksT0FBTyxFQUFFLFVBQVUsRUFBYSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9ELE9BQU8sRUFBNEIsY0FBYyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUc7QUFFekQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQzdFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzlELE9BQU8sRUFBd0IseUJBQXlCLEVBQUUsc0JBQXNCLEVBQXdCLE1BQU0sa0NBQWtDLENBQUM7QUFDakosT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDeEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENB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UUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFO1lBQ3pDLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM5QyxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDOUMsSUFBRyxNQUFNLElBQUksSUFBSSxJQUFJLE1BQU0sSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDcEMsT0FBTyxDQUFDLENBQUM7WUFDWCxDQUFDO1lBQ0QsSUFBRyxNQUFNLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ2xCLE9BQU8sQ0FBQyxDQUFDO1lBQ1gsQ0FBQztZQUNELElBQUcsTUFBTSxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUNsQixPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQ1osQ0FBQztZQUNELE9BQU8sS0FBSyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUN4RSxDQUFDLENBQUM7UUFDRCxDQUFDO1lBQ0QsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQU0sR0FBRyxDQUFDLENBQUMsS0FBTSxDQUFDLENBQUE7QUFDbEUsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmllbGRUeXBlLCBNZXRhRGF0YSwgU29ydERlZiB9IGZyb20gJy4uL2ludGVyZmFjZXMvcmVwb3J0LWRlZic7XHJcbmltcG9ydCB7IHY0IGFzIHV1aWQgfSBmcm9tICd1dWlkJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkZWZhdWx0VGFibGVTdGF0ZSwgR3JvdXBlZERhdGEsIEluaXRpYWxpemF0aW9uU3RhdGUsIGtleXNUb0RlbGV0ZSwgUGVyc2lzdGVkVGFibGVTdGF0ZSwgVGFibGVTdGF0ZSB9IGZyb20gJy4vVGFibGVTdGF0ZSc7XHJcbmltcG9ydCB7IEluamVjdGFibGUsIFByZWRpY2F0ZSwgY29tcHV0ZWQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUYWJsZUJ1aWxkZXJDb25maWdUb2tlbiB9IGZyb20gJy4vVGFibGVCdWlsZGVyQ29uZmlnJztcclxuaW1wb3J0IHsgQ3VzdG9tRmlsdGVyLCBGaWx0ZXJJbmZvLCBpc0N1c3RvbUZpbHRlciwgaXNGaWx0ZXJJbmZvIH0gZnJvbSAnLi9maWx0ZXItaW5mbyc7XHJcbmltcG9ydCB7IFNvcnQsIFNvcnREaXJlY3Rpb24gfSAgZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc29ydCcgO1xyXG5pbXBvcnQgeyBDb21wb25lbnRTdG9yZSB9IGZyb20gJ0BuZ3J4L2NvbXBvbmVudC1zdG9yZScgIDtcclxuaW1wb3J0IHsgRGljdGlvbmFyeSB9IGZyb20gJy4uL2ludGVyZmFjZXMvZGljdGlvbmFyeSc7XHJcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIGxhc3QsIG1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXHJcbmltcG9ydCB7IG1vdmVJdGVtSW5BcnJheSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xyXG5pbXBvcnQgeyBub3ROdWxsLCBvbmNlV2hlbiB9IGZyb20gJy4uLy4uL3J4anMvcnhqcy1vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBHZW5lcmFsVGFibGVTZXR0aW5ncywgTm90UGVyc2lzdGVkVGFibGVTZXR0aW5ncywgUGVyc2lzdGVkVGFibGVTZXR0aW5ncywgVmlydHVhbFNjcm9sbE9wdGlvbnMgfSBmcm9tICcuL3RhYmxlLWJ1aWxkZXItZ2VuZXJhbC1zZXR0aW5ncyc7XHJcbmltcG9ydCB7IHJlcGxhY2VJbkFycmF5V2l0aENsb25lIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL2FycmF5LWhlbHBlcnMnO1xyXG5pbXBvcnQgeyBpc0RpZmZlcmVudCB9IGZyb20gJy4uL2RpcmVjdGl2ZXMnO1xyXG5pbXBvcnQgeyB0b09ic2VydmFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gc3RhdGVJcyhpbml0aWFsaXphdGlvblN0YXRlOiBJbml0aWFsaXphdGlvblN0YXRlKSB7XHJcbiAgcmV0dXJuIChzdGF0ZTogVGFibGVTdGF0ZSkgPT4gc3RhdGUuaW5pdGlhbGl6YXRpb25TdGF0ZSA9PT0gaW5pdGlhbGl6YXRpb25TdGF0ZTtcclxufVxyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgVGFibGVTdG9yZSBleHRlbmRzIENvbXBvbmVudFN0b3JlPFRhYmxlU3RhdGU+IHtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgIGNvbnN0IGNvbmZpZyA9IGluamVjdChUYWJsZUJ1aWxkZXJDb25maWdUb2tlbik7XHJcblxyXG4gICBzdXBlciggeyAuLi5kZWZhdWx0VGFibGVTdGF0ZSwgLi4uY29uZmlnLmRlZmF1bHRUYWJsZVN0YXRlfSk7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RTdGF0ZVJlYWR5ID0gdGhpcy5zZWxlY3Qoc3RhdGUgPT4gc3RhdGUuaW5pdGlhbGl6YXRpb25TdGF0ZSkucGlwZShmaWx0ZXIoaSA9PiBpID09PSBJbml0aWFsaXphdGlvblN0YXRlLlJlYWR5KSk7XHJcbiAgZ2V0U2F2YWJsZVN0YXRlKCkgOiBPYnNlcnZhYmxlPFBlcnNpc3RlZFRhYmxlU3RhdGU+IHtcclxuICAgIHJldHVybiAgdGhpcy5zdGF0ZSQucGlwZShcclxuICAgICAgbWFwKCBzID0+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5tYXBTYXZlYWJsZVN0YXRlKHMpO1xyXG4gICAgICB9KSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRTYXZhYmxlU3RhdGVTaWduYWwgPSBjb21wdXRlZCgoKSA9PiB7XHJcbiAgICBjb25zdCBzdGF0ZSA9IHRoaXMuc3RhdGUoKTtcclxuICAgIHJldHVybiB0aGlzLm1hcFNhdmVhYmxlU3RhdGUoc3RhdGUpO1xyXG4gIH0pXHJcbiAgcHJpdmF0ZSBtYXBTYXZlYWJsZVN0YXRlID0gKHM6IFBlcnNpc3RlZFRhYmxlU3RhdGUpID0+IHtcclxuICAgIGNvbnN0IHNhdmFibGVTdGF0ZSA9IHsuLi5zfSBhcyBQYXJ0aWFsPFRhYmxlU3RhdGU+O1xyXG4gICAga2V5c1RvRGVsZXRlLmZvckVhY2goa2V5ID0+IGRlbGV0ZSBzYXZhYmxlU3RhdGVba2V5XSk7XHJcbiAgICByZXR1cm4gc2F2YWJsZVN0YXRlIGFzIFBlcnNpc3RlZFRhYmxlU3RhdGU7XHJcbiAgfVxyXG5cclxuICBvbiA9IDxWPihzcmNPYnNlcnZhYmxlOiBPYnNlcnZhYmxlPFY+LCBmdW5jOiAob2JqOiBWKSA9PiB2b2lkKSA9PiB7XHJcbiAgICB0aGlzLmVmZmVjdCgoKSA9PiBzcmNPYnNlcnZhYmxlLnBpcGUoXHJcbiAgICAgIHRhcChmdW5jKVxyXG4gICAgKSk7XHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIG9uTGFzdChjYWxsYmFjazogKHN0YXRlOiBUYWJsZVN0YXRlKSA9PiB2b2lkICkge1xyXG4gICAgdGhpcy5vbih0aGlzLnN0YXRlJC5waXBlKGxhc3QoKSksY2FsbGJhY2spO1xyXG4gIH1cclxuXHJcbiAgcmVhZG9ubHkgbWV0YURhdGEkID0gdGhpcy5zZWxlY3QoIHN0YXRlID0+IHN0YXRlLm1ldGFEYXRhKTtcclxuXHJcbiAgbWV0YURhdGFBcnJheSA9IHRoaXMuc2VsZWN0U2lnbmFsKFxyXG4gICAgdGhpcy5zdGF0ZSxcclxuICAgIG9yZGVyTWV0YURhdGFcclxuICApXHJcbiAgcmVhZG9ubHkgbWV0YURhdGFBcnJheSQgPSB0aGlzLnNlbGVjdChcclxuICAgIHRoaXMuc3RhdGUkLFxyXG4gICAgb3JkZXJNZXRhRGF0YVxyXG4gICk7XHJcblxyXG4gIGdldE1ldGFEYXRhJCA9IChrZXk6IHN0cmluZykgOiBPYnNlcnZhYmxlPE1ldGFEYXRhPiA9PiB7XHJcbiAgICByZXR1cm4gdGhpcy5zZWxlY3QoIHN0YXRlID0+IHN0YXRlLm1ldGFEYXRhW2tleV0gICkucGlwZShcclxuICAgICAgdGFwKG1ldGEgPT4ge2lmKCFtZXRhKWNvbnNvbGUud2FybihgTWV0YSBkYXRhIHdpdGgga2V5ICR7a2V5fSBub3QgZm91bmRgKX0pLFxyXG4gICAgICBub3ROdWxsKCkpXHJcbiAgfVxyXG5cclxuICBnZXRVc2VyRGVmaW5lZFdpZHRoJCA9IChrZXk6c3RyaW5nKSA9PiB0aGlzLnNlbGVjdChzdGF0ZSA9PiBzdGF0ZS51c2VyRGVmaW5lZC53aWR0aHNba2V5XSk7XHJcbiAgZ2V0VXNlckRlZmluZWRXaWR0aCA9IChrZXk6c3RyaW5nKSA9PiB0aGlzLnNlbGVjdFNpZ25hbChzdGF0ZSA9PiBzdGF0ZS51c2VyRGVmaW5lZC53aWR0aHNba2V5XSk7XHJcbiAgZ2V0VXNlckRlZmluZWRXaWR0aHMkID0gdGhpcy5zZWxlY3Qoc3RhdGUgPT4gc3RhdGUudXNlckRlZmluZWQud2lkdGhzKTtcclxuICBnZXRVc2VyRGVmaW5lZFdpZHRocyA9IHRoaXMuc2VsZWN0U2lnbmFsKHN0YXRlID0+IHN0YXRlLnVzZXJEZWZpbmVkLndpZHRocyk7XHJcbiAgdGFibGVTZXR0aW5nc01pbldpZHRoID0gdGhpcy5zZWxlY3RTaWduYWwoc3RhdGUgPT4gc3RhdGUubWluQ29sdW1uV2lkdGgpO1xyXG4gIHJlYWRvbmx5IGRpc3BsYXllZENvbHVtbnMkID0gdGhpcy5zZWxlY3Qob3JkZXJlZFZpc2libGVDb2x1bW5zKTtcclxuXHJcblxyXG4gIHJlYWRvbmx5IHJlc2V0U3RhdGUgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlKSA9PiB7XHJcbiAgICBjb25zdCBzb3J0ZWQgPSB0aGlzLmNyZWF0ZVByZVNvcnQoc3RhdGUubWV0YURhdGEpO1xyXG4gICAgcmV0dXJuICh7Li4uc3RhdGUsIGhpZGRlbktleXM6IFtdLCBzb3J0ZWQsIGZpbHRlcnM6IHt9ICwgZ3JvdXBCeTogW10sICB1c2VyRGVmaW5lZDogeyB3aWR0aHM6IHt9LCBvcmRlcjoge30sIHRhYmxlOiB7fSB9IH0pO1xyXG4gIH0pO1xyXG5cclxuICByZWFkb25seSBzaG93Q29sdW1uID0gdGhpcy51cGRhdGVyKChzdGF0ZSwga2V5OiBzdHJpbmcpID0+ICh7XHJcbiAgICAuLi5zdGF0ZSxcclxuICAgIGhpZGRlbktleXM6IHN0YXRlLmhpZGRlbktleXMuZmlsdGVyKCBrID0+IGsgIT09IGtleSksXHJcbiAgfSkpO1xyXG5cclxuICByZWFkb25seSBoaWRlQ29sdW1uID0gdGhpcy51cGRhdGVyKChzdGF0ZSwga2V5OiBzdHJpbmcpID0+ICh7XHJcbiAgICAuLi5zdGF0ZSxcclxuICAgIGhpZGRlbktleXM6IFsuLi5zdGF0ZS5oaWRkZW5LZXlzLmZpbHRlciggayA9PiBrICE9PSBrZXkpLCBrZXldLFxyXG4gIH0pKTtcclxuXHJcbiAgcmVhZG9ubHkgc2V0SGlkZGVuQ29sdW1ucyA9IHRoaXMudXBkYXRlcigoc3RhdGUsIGRpc3BsYXlDb2xzOiB7a2V5OiBzdHJpbmcsIHZpc2libGU6IGJvb2xlYW59W10pID0+IHtcclxuICAgIHJldHVybiAoey4uLnN0YXRlLCBoaWRkZW5LZXlzOiBkaXNwbGF5Q29scy5maWx0ZXIoZCA9PiAhZC52aXNpYmxlKS5tYXAoZCA9PiBkLmtleSl9KVxyXG4gIH0pO1xyXG5cclxuXHJcbiAgc2V0VXNlckRlZmluZWRXaWR0aCA9IHRoaXMudXBkYXRlcigoc3RhdGUsY29sV2lkdGhzOntrZXk6IHN0cmluZywgd2lkdGhJblBpeGVsOm51bWJlcn1bXSkgPT4ge1xyXG4gICAgY29uc3QgdXNlckRlZmluZWRXaWR0aHMgPSB7Li4uc3RhdGUudXNlckRlZmluZWQud2lkdGhzfTtcclxuICAgIGNvbFdpZHRocy5mb3JFYWNoKGN3ID0+IHtcclxuICAgICAgdXNlckRlZmluZWRXaWR0aHNbY3cua2V5XSA9IGN3LndpZHRoSW5QaXhlbDtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHsuLi5zdGF0ZSwgdXNlckRlZmluZWQ6IHsuLi5zdGF0ZS51c2VyRGVmaW5lZCwgd2lkdGhzOnVzZXJEZWZpbmVkV2lkdGhzfX07XHJcbiAgfSk7XHJcblxyXG4gIHNldFVzZXJEZWZpbmVkT3JkZXIgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLG1vdmVkOiB7IG5ld09yZGVyOiBudW1iZXIsIG9sZE9yZGVyOiBudW1iZXIgfSk9PntcclxuICAgIGNvbnN0IHsgbmV3T3JkZXIsIG9sZE9yZGVyIH0gPSBtb3ZlZDtcclxuICAgIGNvbnN0IG1kc0FyciA9IG9yZGVyZWRWaXNpYmxlTWV0YURhdGEoc3RhdGUpO1xyXG4gICAgbW92ZUl0ZW1JbkFycmF5KG1kc0Fyciwgb2xkT3JkZXIsIG5ld09yZGVyKTtcclxuXHJcbiAgICBjb25zdCB1c2VyRGVmaW5lZE9yZGVyID0gbWRzQXJyLnJlZHVjZSgoYWdncmVnYXRlOiBhbnksY3VycmVudCxpbmRleCkgPT4ge1xyXG4gICAgICBhZ2dyZWdhdGVbY3VycmVudC5rZXldID0gaW5kZXg7XHJcbiAgICAgIHJldHVybiBhZ2dyZWdhdGVcclxuICAgIH0se30pO1xyXG4gICAgcmV0dXJuKHsgLi4uc3RhdGUsIHVzZXJEZWZpbmVkOiB7IC4uLnN0YXRlLnVzZXJEZWZpbmVkLCBvcmRlcjogdXNlckRlZmluZWRPcmRlciB9IH0pXHJcbiAgfSlcclxuXHJcblxyXG4gIHJlYWRvbmx5IGZpbHRlcnMkID0gdGhpcy5zZWxlY3Qoc3RhdGUgPT4gc3RhdGUuZmlsdGVycyApO1xyXG5cclxuICByZWFkb25seSBnZXRGaWx0ZXIkID0gKGZpbHRlcklkOiBzdHJpbmcpIDogT2JzZXJ2YWJsZTxGaWx0ZXJJbmZvIHwgQ3VzdG9tRmlsdGVyIHwgdW5kZWZpbmVkPiA9PiB7XHJcbiAgICByZXR1cm4gdGhpcy5zZWxlY3QoIHN0YXRlID0+IHN0YXRlLmZpbHRlcnNbZmlsdGVySWRdICk7XHJcbiAgfVxyXG4gIHJlYWRvbmx5IGFkZEZpbHRlciA9IHRoaXMudXBkYXRlciggKHN0YXRlLCBmaWx0ZXI6IEZpbHRlckluZm8gfCBDdXN0b21GaWx0ZXIgKSA9PiB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRGaWx0ZXJzVG9TdGF0ZShzdGF0ZSwgW2ZpbHRlcl0pO1xyXG4gIH0pO1xyXG5cclxuICByZWFkb25seSBhZGRGaWx0ZXJzID0gdGhpcy51cGRhdGVyKChzdGF0ZSxmaWx0ZXJzOihGaWx0ZXJJbmZvIHwgQ3VzdG9tRmlsdGVyIClbXSk9PntcclxuICAgIHJldHVybiB0aGlzLmFkZEZpbHRlcnNUb1N0YXRlKHN0YXRlLCBmaWx0ZXJzKTtcclxuICB9KVxyXG5cclxuXHJcbiAgcHJpdmF0ZSBhZGRGaWx0ZXJzVG9TdGF0ZSA9IChzdGF0ZTpUYWJsZVN0YXRlLCBmaWx0ZXJzOihGaWx0ZXJJbmZvIHwgQ3VzdG9tRmlsdGVyKVtdKSA6IFRhYmxlU3RhdGUgPT4ge1xyXG5cclxuICAgIHZhciBjdXN0b21GaWx0ZXJzID0gZmlsdGVycy5maWx0ZXIoICBpc0N1c3RvbUZpbHRlciApO1xyXG5cclxuICAgIHZhciBmaWx0ZXJJbmZvcyA9IGZpbHRlcnMuZmlsdGVyKGlzRmlsdGVySW5mbyk7XHJcblxyXG4gICAgY29uc3QgZmlsdGVyc09iaiA9IGZpbHRlckluZm9zXHJcbiAgICAgIC5maWx0ZXIoZmx0ciA9PiBPYmplY3Qua2V5cyhzdGF0ZS5tZXRhRGF0YSkuc29tZShrZXkgPT4ga2V5ID09PSBmbHRyLmtleSkgfHwgY29uc29sZS53YXJuKGBNZXRhIGRhdGEgd2l0aCBrZXkgJHtmbHRyLmtleX0gbm90IGZvdW5kYCkpXHJcbiAgICAgIC5yZWR1Y2UoKGZpbHRlcnNPYmo6IHtbazogc3RyaW5nXTogYW55fSxmaWx0ZXIpPT57XHJcbiAgICAgICAgaWYgKCFmaWx0ZXIuZmlsdGVySWQpIHtcclxuICAgICAgICAgIGZpbHRlci5maWx0ZXJJZCA9IHV1aWQoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZmlsdGVyc09ialtmaWx0ZXIuZmlsdGVySWRdID0gZmlsdGVyO1xyXG4gICAgICAgIHJldHVybiBmaWx0ZXJzT2JqO1xyXG4gICAgICB9LHt9KTtcclxuXHJcbiAgICBjdXN0b21GaWx0ZXJzLmZvckVhY2goIGZsdHIgPT4ge1xyXG4gICAgICBpZighZmx0ci5maWx0ZXJJZCkge1xyXG4gICAgICAgIGZsdHIuZmlsdGVySWQgPSB1dWlkKCk7XHJcbiAgICAgIH1cclxuICAgICAgZmlsdGVyc09ialtmbHRyLmZpbHRlcklkXSA9IGZsdHI7XHJcbiAgICB9KVxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgLi4uc3RhdGUsXHJcbiAgICAgIGZpbHRlcnMgOiB7Li4uc3RhdGUuZmlsdGVycywgLi4uZmlsdGVyc09iaiB9XHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgcmVhZG9ubHkgcmVtb3ZlRmlsdGVyID0gdGhpcy51cGRhdGVyKCAoc3RhdGUsIGZpbHRlcklkOiBzdHJpbmcpID0+IHtcclxuICAgIGNvbnN0IGZpbHRlcnNDb3B5ID0geyAuLi5zdGF0ZS5maWx0ZXJzIH07XHJcbiAgICBkZWxldGUgZmlsdGVyc0NvcHlbZmlsdGVySWRdO1xyXG4gICAgcmV0dXJuICh7Li4uc3RhdGUsIGZpbHRlcnM6IGZpbHRlcnNDb3B5IH0pO1xyXG4gIH0pO1xyXG5cclxuICByZWFkb25seSByZW1vdmVGaWx0ZXJzID0gdGhpcy51cGRhdGVyKCAoc3RhdGUsIGZpbHRlcklkczogc3RyaW5nW10pID0+IHtcclxuICAgIGNvbnN0IGZpbHRlcnNDb3B5ID0geyAuLi5zdGF0ZS5maWx0ZXJzIH07XHJcbiAgICBmaWx0ZXJJZHMuZm9yRWFjaChpZCA9PiB7IGRlbGV0ZSBmaWx0ZXJzQ29weVtpZF0gfSlcclxuICAgIHJldHVybiAoey4uLnN0YXRlLCBmaWx0ZXJzOiBmaWx0ZXJzQ29weSB9KTtcclxuICB9KTtcclxuXHJcbiAgcmVhZG9ubHkgY2xlYXJGaWx0ZXJzID0gdGhpcy51cGRhdGVyKChzdGF0ZSk9PlxyXG4gICAgKHsuLi5zdGF0ZSxmaWx0ZXJzOnt9fSkpXHJcblxyXG5cclxuICBzZWxlY3RTb3J0ZWQgPSB0aGlzLnNlbGVjdChzdGF0ZSA9PiBzdGF0ZS5zb3J0ZWQpLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKGYscykgPT4gIWlzRGlmZmVyZW50KGYscykpKTtcclxuICByZWFkb25seSBzb3J0JCA9IHRoaXMuc2VsZWN0KHRoaXMuc2VsZWN0U3RhdGVSZWFkeSwgdGhpcy5zZWxlY3RTb3J0ZWQsIChfLHMpID0+IHMgKTtcclxuICBcclxuICBjcmVhdGVQcmVTb3J0ID0gKG1ldGFEYXRhczogRGljdGlvbmFyeTxNZXRhRGF0YT4pOiBTb3J0W10gPT4ge1xyXG4gICAgcmV0dXJuIE9iamVjdC52YWx1ZXMobWV0YURhdGFzKS5maWx0ZXIoKCBtZXRhRGF0YSApIDogbWV0YURhdGEgaXMgTWV0YURhdGEgJiB7cHJlU29ydDogU29ydERlZn0gPT4gISFtZXRhRGF0YS5wcmVTb3J0KVxyXG4gICAgICAuc29ydCgoeyAgcHJlU29ydDogcHMxICB9LCB7IHByZVNvcnQ6IHBzMiB9ICkgPT4gKHBzMS5wcmVjZWRlbmNlIHx8IE51bWJlci5NQVhfVkFMVUUpIC0gKCBwczIucHJlY2VkZW5jZSB8fCBOdW1iZXIuTUFYX1ZBTFVFKSlcclxuICAgICAgLm1hcCgoIHtrZXksIHByZVNvcnR9ICkgPT4gKHsgYWN0aXZlOiBrZXksIGRpcmVjdGlvbjogcHJlU29ydC5kaXJlY3Rpb24gfSkpXHJcbiAgfVxyXG5cclxuICByZWFkb25seSBzZXRTb3J0ID0gdGhpcy51cGRhdGVyPHtrZXk6IHN0cmluZywgZGlyZWN0aW9uPzogU29ydERpcmVjdGlvbn0+KChzdGF0ZSwge2tleSwgZGlyZWN0aW9ufSApID0+IHtcclxuICAgIGNvbnN0IHNvcnRBcnJheSA9IHN0YXRlLnNvcnRlZC5maWx0ZXIoIHMgPT4gcy5hY3RpdmUgIT09IGtleSApO1xyXG4gICAgaWYoZGlyZWN0aW9uKSB7XHJcbiAgICAgIHNvcnRBcnJheS51bnNoaWZ0KHthY3RpdmU6IGtleSwgZGlyZWN0aW9ufSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAuLi5zdGF0ZSxcclxuICAgICAgc29ydGVkOiBzb3J0QXJyYXksXHJcbiAgICB9O1xyXG4gIH0pO1xyXG5cclxuICByZWFkb25seSBzZXRBbGxTb3J0ID0gdGhpcy51cGRhdGVyKChzdGF0ZSxzb3J0QXJyYXk6U29ydFtdKT0+e1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgLi4uc3RhdGUsXHJcbiAgICAgIHNvcnRlZDogc29ydEFycmF5LFxyXG4gICAgfTtcclxuICB9KTtcclxuXHJcbiAgdXBkYXRlU3RhdGVGdW5jID0gKHN0YXRlOiBUYWJsZVN0YXRlLCBpbmNvbWluZ1RhYmxlU3RhdGU6IFBhcnRpYWw8VGFibGVTdGF0ZT4pIDogVGFibGVTdGF0ZSA9PiB7XHJcbiAgICBjb25zdCBtZXRhRGF0YSA9IHN0YXRlLm1ldGFEYXRhO1xyXG4gICAgY29uc3Qgc29ydGVkID0gaW5jb21pbmdUYWJsZVN0YXRlLnNvcnRlZD8ubGVuZ3RoID8gaW5jb21pbmdUYWJsZVN0YXRlLnNvcnRlZFxyXG4gICAgICA6IHN0YXRlLmluaXRpYWxpemF0aW9uU3RhdGUgPT09IEluaXRpYWxpemF0aW9uU3RhdGUuQ3JlYXRlZCA/IHRoaXMuY3JlYXRlUHJlU29ydChtZXRhRGF0YSkgOiBzdGF0ZS5zb3J0ZWQ7XHJcbiAgICByZXR1cm4gey4uLnN0YXRlLCAuLi5pbmNvbWluZ1RhYmxlU3RhdGUsIG1ldGFEYXRhICwgc29ydGVkfTtcclxuICB9XHJcblxyXG4gIHJlYWRvbmx5IHNldFBhZ2VTaXplID0gdGhpcy51cGRhdGVyKCAoc3RhdGUsIHBhZ2VTaXplOiBudW1iZXIpPT4gKHsgLi4uc3RhdGUsIHBhZ2VTaXplLCB1c2VyRGVmaW5lZDogeyAuLi5zdGF0ZS51c2VyRGVmaW5lZCwgcGFnZVNpemUgfSB9KSk7XHJcbiAgZ2V0UGFnZVNpemUgPSB0aGlzLnNlbGVjdChzdGF0ZSA9PiBzdGF0ZS51c2VyRGVmaW5lZC5wYWdlU2l6ZSB8fCBzdGF0ZS5wYWdlU2l6ZSk7XHJcbiAgcmVhZG9ubHkgdXBkYXRlU3RhdGUgPSB0aGlzLnVwZGF0ZXI8UGFydGlhbDxUYWJsZVN0YXRlPj4odGhpcy51cGRhdGVTdGF0ZUZ1bmMpO1xyXG5cclxuICBjbGVhblBlcnNpc3RlZFN0YXRlKHN0YXRlOiBUYWJsZVN0YXRlLHBTdGF0ZTogUGVyc2lzdGVkVGFibGVTdGF0ZSkge1xyXG4gICAgY29uc3QgbWV0YXMgPSBPYmplY3QudmFsdWVzKHN0YXRlLm1ldGFEYXRhKTtcclxuICAgIGNvbnN0IGZpbHRlcnMgPSBPYmplY3QudmFsdWVzKHBTdGF0ZS5maWx0ZXJzKS5maWx0ZXIoZmx0ciA9PiBpc0N1c3RvbUZpbHRlcihmbHRyKSB8fCBtZXRhcy5zb21lKG0gPT4gbS5rZXkgPT09IGZsdHIua2V5KSkucmVkdWNlKChvYmo6IGFueSwgZmlsdGVyKSA9PiB7XHJcbiAgICAgIG9ialtmaWx0ZXIuZmlsdGVySWQhXSA9IHBTdGF0ZS5maWx0ZXJzW2ZpbHRlci5maWx0ZXJJZCFdO1xyXG4gICAgICByZXR1cm4gb2JqO1xyXG4gICAgfSwge30pO1xyXG4gICAgY29uc3Qgc29ydGVkID0gcFN0YXRlLnNvcnRlZC5maWx0ZXIocyA9PiBtZXRhcy5zb21lKG0gPT4gbS5rZXkgPT09IHMuYWN0aXZlKSk7XHJcbiAgICByZXR1cm4gKHsuLi5wU3RhdGUsZmlsdGVycyxzb3J0ZWR9KVxyXG4gIH1cclxuXHJcbiAgcmVhZG9ubHkgdXBkYXRlU3RhdGVGcm9tUGVyc2lzdGVkU3RhdGUgPSB0aGlzLnVwZGF0ZXIoICggc3RhdGU6IFRhYmxlU3RhdGUsIHBlcnNpc3RlZFN0YXRlOiBQZXJzaXN0ZWRUYWJsZVN0YXRlKSA6IFRhYmxlU3RhdGUgPT4ge1xyXG4gICAgY29uc3QgaW5jb21pbmdUYWJsZVN0YXRlOiBQYXJ0aWFsPFRhYmxlU3RhdGU+ID0gdGhpcy5jbGVhblBlcnNpc3RlZFN0YXRlKHN0YXRlLHBlcnNpc3RlZFN0YXRlKTtcclxuICAgIGNvbnN0IG5ld1N0YXRlID0gIHRoaXMudXBkYXRlU3RhdGVGdW5jKHN0YXRlLGluY29taW5nVGFibGVTdGF0ZSk7XHJcbiAgICBuZXdTdGF0ZS5pbml0aWFsaXphdGlvblN0YXRlID0gc3RhdGUuaW5pdGlhbGl6YXRpb25TdGF0ZSA9PT0gSW5pdGlhbGl6YXRpb25TdGF0ZS5NZXRhRGF0YUxvYWRlZCA/IEluaXRpYWxpemF0aW9uU3RhdGUuTG9hZGVkRnJvbVN0b3JlIDogc3RhdGUuaW5pdGlhbGl6YXRpb25TdGF0ZTtcclxuICAgIHJldHVybiBuZXdTdGF0ZTtcclxuICB9KTtcclxuXHJcbiAgZ2V0VXNlckRlZmluZWRUYWJsZVNpemUgPSB0aGlzLnNlbGVjdFNpZ25hbChzdGF0ZSA9PiBzdGF0ZS51c2VyRGVmaW5lZC50YWJsZS53aWR0aCk7XHJcbiAgZ2V0VXNlckRlZmluZWRUYWJsZVNpemUkID0gdGhpcy5zZWxlY3Qoc3RhdGUgPT4gc3RhdGUudXNlckRlZmluZWQudGFibGUud2lkdGgpO1xyXG4gIHNldFRhYmxlV2lkdGggPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCB3aWR0aEluUGl4ZWxzOm51bWJlcikgPT4gKHsuLi5zdGF0ZSwgdXNlckRlZmluZWQ6IHsgLi4uc3RhdGUudXNlckRlZmluZWQsIHRhYmxlOiB7IHdpZHRoOiB3aWR0aEluUGl4ZWxzIH0gfSB9KSkgO1xyXG5cclxuICBtZXJnZU1ldGEgPSAob3JpZzogTWV0YURhdGEsIG1lcmdlOiBNZXRhRGF0YSk6IE1ldGFEYXRhID0+IHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICAga2V5OiBvcmlnLmtleSxcclxuICAgICAgICBkaXNwbGF5TmFtZTogbWVyZ2UuZGlzcGxheU5hbWUgPz8gb3JpZy5kaXNwbGF5TmFtZSxcclxuICAgICAgICBmaWVsZFR5cGU6IG1lcmdlLmZpZWxkVHlwZSB8fCBvcmlnLmZpZWxkVHlwZSxcclxuICAgICAgICBhZGRpdGlvbmFsOiB7Li4ub3JpZy5hZGRpdGlvbmFsLCAuLi5tZXJnZS5hZGRpdGlvbmFsfSxcclxuICAgICAgICBvcmRlcjogbWVyZ2Uub3JkZXIgPz8gb3JpZy5vcmRlcixcclxuICAgICAgICBwcmVTb3J0OiBtZXJnZS5wcmVTb3J0ID8/IG9yaWcucHJlU29ydCxcclxuICAgICAgICB3aWR0aDogbWVyZ2Uud2lkdGggPz8gb3JpZy53aWR0aCxcclxuICAgICAgICBub0V4cG9ydDogbWVyZ2Uubm9FeHBvcnQgfHwgb3JpZy5ub0V4cG9ydCxcclxuICAgICAgICBub0ZpbHRlcjogbWVyZ2Uubm9GaWx0ZXIgfHwgb3JpZy5ub0ZpbHRlcixcclxuICAgICAgICBjdXN0b21DZWxsOiBtZXJnZS5jdXN0b21DZWxsID8/IG9yaWcuY3VzdG9tQ2VsbCxcclxuICAgICAgICB0cmFuc2Zvcm06IG1lcmdlLnRyYW5zZm9ybSA/PyBvcmlnLnRyYW5zZm9ybSxcclxuICAgICAgICBtYXA6IG1lcmdlLm1hcCA/PyBvcmlnLm1hcCxcclxuICAgICAgICBjbGljazogbWVyZ2UuY2xpY2sgPz8gb3JpZy5jbGljayxcclxuICAgICAgICBjbGFzc2VzOiBtZXJnZS5jbGFzc2VzID8/IG9yaWcuY2xhc3NlcyxcclxuICAgICAgICBub1NvcnQ6IG1lcmdlLm5vU29ydCA/PyBvcmlnLm5vU29ydCxcclxuICAgICAgICB0ZW1wbGF0ZTogbWVyZ2UudGVtcGxhdGUgPz8gb3JpZy50ZW1wbGF0ZSxcclxuICAgICAgICB0b29sVGlwOiBtZXJnZS50b29sVGlwID8/IG9yaWcudG9vbFRpcCxcclxuICAgICAgICB1c2VJY29uOiBtZXJnZS51c2VJY29uID8/IG9yaWcudXNlSWNvbixcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICByZWFkb25seSBzZXRJbml0aWFsaXphdGlvblN0YXRlID0gdGhpcy51cGRhdGVyKCAoc3RhdGUsIGluaXRpYWxpemF0aW9uU3RhdGU6ICBJbml0aWFsaXphdGlvblN0YXRlKSA9PiB7XHJcbiAgICByZXR1cm4gey4uLnN0YXRlLCBpbml0aWFsaXphdGlvblN0YXRlfTtcclxuICB9KTtcclxuXHJcbiAgcnVuT25jZVdoZW4ocHJlZGljYXRlOiBQcmVkaWNhdGU8VGFibGVTdGF0ZT4sIGZ1bmM6IChzdGF0ZTpUYWJsZVN0YXRlKSA9PiB2b2lkKSB7XHJcbiAgICBjb25zdCBvYnMgPSB0aGlzLnN0YXRlJC5waXBlKG9uY2VXaGVuKHByZWRpY2F0ZSkpO1xyXG4gICAgdGhpcy5vbihvYnMsIChzdGF0ZSkgPT4ge1xyXG4gICAgICBmdW5jKHN0YXRlKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb25SZWFkeSggZnVuYzogKHN0YXRlOiBUYWJsZVN0YXRlKSA9PiB2b2lkICkge1xyXG4gICAgdGhpcy5ydW5PbmNlV2hlbihzdGF0ZUlzKEluaXRpYWxpemF0aW9uU3RhdGUuUmVhZHkpLGZ1bmMpO1xyXG4gIH1cclxuXHJcbiAgcmVhZG9ubHkgc2V0TWV0YURhdGEgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBtZDogTWV0YURhdGFbXSB8IE1ldGFEYXRhICkgPT4ge1xyXG4gICAgY29uc3QgbWV0YURhdGEgPSAoIEFycmF5LmlzQXJyYXkobWQpID8gWy4uLm1kXSA6IFttZF0gKVxyXG4gICAgICAucmVkdWNlKChwcmV2OiBEaWN0aW9uYXJ5PE1ldGFEYXRhPixjdXJyKSA9PiB7XHJcbiAgICAgICAgaWYocHJldltjdXJyLmtleV0pIHtcclxuICAgICAgICAgIHByZXZbY3Vyci5rZXldID0gdGhpcy5tZXJnZU1ldGEocHJldltjdXJyLmtleV0sY3Vycik7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHByZXZbY3Vyci5rZXldID0gY3VycjtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHByZXY7XHJcbiAgICAgIH0gLHt9KTtcclxuICAgIGxldCBzb3J0ZWQgPSBzdGF0ZS5zb3J0ZWQ7XHJcbiAgICBpZihzb3J0ZWQubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHNvcnRlZCA9IHRoaXMuY3JlYXRlUHJlU29ydChtZXRhRGF0YSk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBvcmRlciA9IHRoaXMuaW5pdGlhbGl6ZU9yZGVyKHN0YXRlLCBtZXRhRGF0YSk7XHJcbiAgICBjb25zdCBpbml0aWFsaXphdGlvblN0YXRlID0gc3RhdGUuaW5pdGlhbGl6YXRpb25TdGF0ZSA9PSBJbml0aWFsaXphdGlvblN0YXRlLkNyZWF0ZWQgPyAgSW5pdGlhbGl6YXRpb25TdGF0ZS5NZXRhRGF0YUxvYWRlZCA6IHN0YXRlLmluaXRpYWxpemF0aW9uU3RhdGU7XHJcbiAgICByZXR1cm4geyAuLi5zdGF0ZSwgaW5pdGlhbGl6YXRpb25TdGF0ZSwgbWV0YURhdGEsIHNvcnRlZCwgdXNlckRlZmluZWQ6IHsgLi4uc3RhdGUudXNlckRlZmluZWQsIG9yZGVyOiBvcmRlcn0gfTtcclxuICB9KTtcclxuXHJcbiAgcHJpdmF0ZSBpbml0aWFsaXplT3JkZXIgPSAoc3RhdGU6VGFibGVTdGF0ZSxtZHM6IERpY3Rpb25hcnk8TWV0YURhdGE+KSA6IERpY3Rpb25hcnk8bnVtYmVyPiA9PiB7XHJcbiAgICBjb25zdCB2aWV3YWJsZU1ldGFEYXRhQXJyID0gT2JqZWN0LnZhbHVlcyhtZHMpLmZpbHRlcihhID0+IGEuZmllbGRUeXBlICE9PSBGaWVsZFR5cGUuSGlkZGVuKTtcclxuICAgIGxldCB1c2VyRGVmaW5lZE9yZGVyID0gc3RhdGUudXNlckRlZmluZWQub3JkZXI7XHJcbiAgICBpZih2aWV3YWJsZU1ldGFEYXRhQXJyLnNvbWUobWV0YSA9PiB1c2VyRGVmaW5lZE9yZGVyW21ldGEua2V5XSA9PSBudWxsKSl7XHJcbiAgICAgIHJldHVybiB7fVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHVzZXJEZWZpbmVkT3JkZXI7XHJcbiAgfVxyXG5cclxuICB0b2dnbGVDb2xsYXBzZUhlYWRlciA9IHRoaXMudXBkYXRlcigoc3RhdGUpPT57XHJcbiAgICBjb25zdCB0YWJsZVNldHRpbmdzID0gey4uLnN0YXRlLnBlcnNpc3RlZFRhYmxlU2V0dGluZ3N9O1xyXG4gICAgdGFibGVTZXR0aW5ncy5jb2xsYXBzZUhlYWRlciA9ICF0YWJsZVNldHRpbmdzLmNvbGxhcHNlSGVhZGVyO1xyXG4gICAgcmV0dXJuICh7Li4uc3RhdGUscGVyc2lzdGVkVGFibGVTZXR0aW5ncyA6IG5ldyBQZXJzaXN0ZWRUYWJsZVNldHRpbmdzKHRhYmxlU2V0dGluZ3MpfSk7XHJcbiAgfSlcclxuXHJcbiAgdG9nZ2xlQ29sbGFwc2VGb290ZXIgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlKT0+e1xyXG4gICAgY29uc3QgdGFibGVTZXR0aW5ncyA9IHsuLi5zdGF0ZS5wZXJzaXN0ZWRUYWJsZVNldHRpbmdzfTtcclxuICAgIHRhYmxlU2V0dGluZ3MuY29sbGFwc2VGb290ZXIgPSAhdGFibGVTZXR0aW5ncy5jb2xsYXBzZUZvb3RlcjtcclxuICAgIHJldHVybiAoey4uLnN0YXRlLHBlcnNpc3RlZFRhYmxlU2V0dGluZ3MgOiBuZXcgUGVyc2lzdGVkVGFibGVTZXR0aW5ncyh0YWJsZVNldHRpbmdzKX0pO1xyXG4gIH0pXHJcblxyXG4gIGFkZEdyb3VwQnlLZXkgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBtZXRhRGF0YUtleTogc3RyaW5nKSA9PiAoe1xyXG4gICAgLi4uc3RhdGUsXHJcbiAgICBncm91cEJ5OiBbLi4uc3RhdGUuZ3JvdXBCeSwgeyBrZXk6IG1ldGFEYXRhS2V5LCBleHBhbmRlZEhlYWRlcnM6IFtdIH1dXHJcbiAgfSkpO1xyXG5cclxuICByZW1vdmVHcm91cEJ5S2V5ID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgZ3JvdXBCeUtleTogc3RyaW5nKSA9PiAoe1xyXG4gICAgLi4uc3RhdGUsXHJcbiAgICBncm91cEJ5OiBzdGF0ZS5ncm91cEJ5LmZpbHRlcihrZXkgPT4gZ3JvdXBCeUtleSAhPT0ga2V5LmtleSlcclxuICB9KSk7XHJcblxyXG4gIHVwZGF0ZUV4cGFuZGVkR3JvdXBzID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgZGF0YToge2tleTogc3RyaW5nLCBncm91cEtleTogc3RyaW5nLCBpc0V4cGFuZGVkOiBib29sZWFufSkgPT4ge1xyXG4gICAgY29uc3QgZ2JrID0gcmVwbGFjZUluQXJyYXlXaXRoQ2xvbmUoc3RhdGUuZ3JvdXBCeSwgayA9PiBrLmtleSA9PT0gZGF0YS5rZXksIGdrID0+IHtcclxuICAgICAgZ2suZXhwYW5kZWRIZWFkZXJzID0gZGF0YS5pc0V4cGFuZGVkID8gWy4uLmdrLmV4cGFuZGVkSGVhZGVycywgZGF0YS5ncm91cEtleV0gOiBnay5leHBhbmRlZEhlYWRlcnMuZmlsdGVyKGcgPT4gZyAhPT0gZGF0YS5ncm91cEtleSk7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiAoe1xyXG4gICAgICAuLi5zdGF0ZSxcclxuICAgICAgZ3JvdXBCeTogZ2JrXHJcbiAgICB9KX1cclxuICApO1xyXG5cclxuICBleHBhbmRBbGxPZkdyb3VwID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgZGF0YTogeyBncm91cEhlYWRlcnNCeUtleTogRGljdGlvbmFyeTx7IGdyb3VwTmFtZTogc3RyaW5nIH1bXT4gfSkgPT4ge1xyXG4gICAgY29uc3QgbmV3R3JvdXBlZERhdGEgPSBzdGF0ZS5ncm91cEJ5Lm1hcChnYiA9PiAoe1xyXG4gICAgICBrZXk6IGdiLmtleSxcclxuICAgICAgZXhwYW5kZWRIZWFkZXJzOiBkYXRhLmdyb3VwSGVhZGVyc0J5S2V5W2diLmtleV0/Lm1hcChnID0+IGcuZ3JvdXBOYW1lKSA/PyBnYi5leHBhbmRlZEhlYWRlcnNcclxuICAgIH0gYXMgR3JvdXBlZERhdGEpKTtcclxuICAgIHJldHVybiAoeyAuLi5zdGF0ZSwgZ3JvdXBCeTogbmV3R3JvdXBlZERhdGEgfSk7XHJcbiAgfSk7XHJcblxyXG4gIGNvbGxhcHNlQWxsID0gdGhpcy51cGRhdGVyKChzdGF0ZSkgPT4gKHtcclxuICAgIC4uLnN0YXRlLFxyXG4gICAgZ3JvdXBCeTogc3RhdGUuZ3JvdXBCeS5tYXAoZ2IgPT4gKHsga2V5OiBnYi5rZXksIGV4cGFuZGVkSGVhZGVyczogW10gfSkpXHJcbiAgfSkpO1xyXG5cclxuICBjb2xsYXBzZUFsbE9mS2V5ID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgZGF0YTogeyBrZXlzOiBzdHJpbmdbXSB9KSA9PiAoe1xyXG4gICAgLi4uc3RhdGUsXHJcbiAgICBncm91cEJ5OiBzdGF0ZS5ncm91cEJ5Lm1hcChnYiA9PiAoe1xyXG4gICAgICBrZXk6IGdiLmtleSxcclxuICAgICAgZXhwYW5kZWRIZWFkZXJzOiBkYXRhLmtleXMuaW5jbHVkZXMoZ2Iua2V5KSA/IFtdIDogZ2IuZXhwYW5kZWRIZWFkZXJzXHJcbiAgICB9KSlcclxuICB9KSk7XHJcblxyXG4gIGdyb3VwQnlLZXlzJCA9IHRoaXMuc2VsZWN0KHN0YXRlID0+IHN0YXRlLmdyb3VwQnkubWFwKGdiayA9PiBnYmsua2V5KSlcclxuICAgIC5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkPHN0cmluZ1tdPigocHJldiwgY3VycikgPT4gcHJldi5sZW5ndGggPT09IGN1cnIubGVuZ3RoICYmIGN1cnIuZXZlcnkoKGssaSkgPT4gcHJldltpXSA9PT0gaykpKTtcclxuXHJcbiAgZXhwYW5kZWRHcm91cHMkID0gdGhpcy5zZWxlY3Qoc3RhdGUgPT4gc3RhdGUuZ3JvdXBCeSkucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgoYSwgYikgPT4ge1xyXG4gICAgY29uc3QgYWEgPSBhLmZsYXRNYXAoZyA9PiBnLmV4cGFuZGVkSGVhZGVycyk7XHJcbiAgICBjb25zdCBiYiA9IGIuZmxhdE1hcChnID0+IGcuZXhwYW5kZWRIZWFkZXJzKTtcclxuICAgIHJldHVybiBhYS5sZW5ndGggPT09IGJiLmxlbmd0aCAmJiBhYS5ldmVyeSgoaykgPT4gYmIuaW5jbHVkZXMoaykpO1xyXG4gIH0pKTtcclxuICBcclxuICBzZXRUYWJsZVNldHRpbmdzID0gdGhpcy51cGRhdGVyKChzdGF0ZSxzZXR0aW5nczpHZW5lcmFsVGFibGVTZXR0aW5ncyk9PntcclxuICAgIGNvbnN0IHM6VGFibGVTdGF0ZSA9IHtcclxuICAgICAgLi4uc3RhdGUsXHJcbiAgICAgIHBlcnNpc3RlZFRhYmxlU2V0dGluZ3MgOiBuZXcgUGVyc2lzdGVkVGFibGVTZXR0aW5ncyhzZXR0aW5ncyksXHJcbiAgICAgIG5vdFBlcnNpc3RlZFRhYmxlU2V0dGluZ3MgOiBuZXcgTm90UGVyc2lzdGVkVGFibGVTZXR0aW5ncyhzZXR0aW5ncylcclxuICAgICAgfTtcclxuICAgIHJldHVybiBzO1xyXG4gIH0pO1xyXG5cclxuICB0YWJsZVNldHRpbmdzID0gdGhpcy5zZWxlY3RTaWduYWwoc3RhdGUgPT4ge1xyXG4gICAgY29uc3QgdHMgOiBQZXJzaXN0ZWRUYWJsZVNldHRpbmdzICYgTm90UGVyc2lzdGVkVGFibGVTZXR0aW5ncyA9XHJcbiAgICAgIHsuLi5zdGF0ZS5wZXJzaXN0ZWRUYWJsZVNldHRpbmdzLCAuLi5zdGF0ZS5ub3RQZXJzaXN0ZWRUYWJsZVNldHRpbmdzfTtcclxuICAgIHJldHVybiB0cztcclxuICB9KTtcclxuXHJcbiAgdGFibGVTZXR0aW5ncyQgPSB0aGlzLnNlbGVjdChzdGF0ZSA9PiB7XHJcbiAgICBjb25zdCB0cyA6IFBlcnNpc3RlZFRhYmxlU2V0dGluZ3MgJiBOb3RQZXJzaXN0ZWRUYWJsZVNldHRpbmdzID1cclxuICAgICAgey4uLnN0YXRlLnBlcnNpc3RlZFRhYmxlU2V0dGluZ3MsLi4uc3RhdGUubm90UGVyc2lzdGVkVGFibGVTZXR0aW5nc307XHJcbiAgICByZXR1cm4gdHM7XHJcbiAgfSlcclxuXHJcbiAgcHJvcHMgPSB0aGlzLnNlbGVjdFNpZ25hbChzID0+IHMucHJvcHMpO1xyXG5cclxuICBzZXRMaW5rTWFwcyA9IHRoaXMudXBkYXRlcigoc3RhdGUsbWFwczogYW55KT0+e1xyXG4gICAgcmV0dXJuIHsuLi5zdGF0ZSxsaW5rTWFwczptYXBzfTtcclxuICB9KTtcclxuXHJcbiAgZ2V0TGlua0luZm8gPSAobWQ6TWV0YURhdGEpID0+IHRoaXMuc2VsZWN0U2lnbmFsKHN0YXRlID0+IHN0YXRlLmxpbmtNYXBzW21kLmtleV0pO1xyXG5cclxuICBnZXRJc0V4cGFuZGVkID0gKGNvbHVtbktleTogc3RyaW5nLCBncm91cEhlYWRlcktleTogc3RyaW5nKSA9PiB7XHJcbiAgICByZXR1cm4gdGhpcy5zZWxlY3Qoc3RhdGUgPT4gISFzdGF0ZS5ncm91cEJ5LmZpbHRlcihnID0+IGcua2V5ID09PSBjb2x1bW5LZXkgJiYgZy5leHBhbmRlZEhlYWRlcnMuaW5jbHVkZXMoZ3JvdXBIZWFkZXJLZXkpKS5sZW5ndGgpO1xyXG4gIH1cclxuICAkaXNWaXJ0dWFsID0gdGhpcy5zZWxlY3RTaWduYWwoc3RhdGUgPT4gc3RhdGUubm90UGVyc2lzdGVkVGFibGVTZXR0aW5ncy51c2VWaXJ0dWFsU2Nyb2xsID09PSB0cnVlIHx8IChzdGF0ZS5ub3RQZXJzaXN0ZWRUYWJsZVNldHRpbmdzLnVzZVZpcnR1YWxTY3JvbGwgYXMgVmlydHVhbFNjcm9sbE9wdGlvbnMpPy52aXJ0dWFsQXNEZWZhdWx0IHx8IHN0YXRlLnNob3dBbGwpO1xyXG4gICR2aWV3VHlwZSA9IHRoaXMuc2VsZWN0U2lnbmFsKHN0YXRlID0+IHtcclxuICAgIGNvbnN0IHVzZVBhZ2luYXRvciA9IHN0YXRlLm5vdFBlcnNpc3RlZFRhYmxlU2V0dGluZ3MudXNlUGFnaW5hdG9yO1xyXG4gICAgcmV0dXJuIChzdGF0ZS5zaG93QWxsIHx8ICh0aGlzLiRpc1ZpcnR1YWwoKSAmJiAhdXNlUGFnaW5hdG9yKSkgPyAnYWxsJyA6IHRoaXMuJGlzVmlydHVhbCgpID8gJ3ZpcnR1YWwgcGFnaW5hdG9yJyA6ICdwYWdpbmF0b3InO1xyXG4gIH0pO1xyXG4gIHZpZXdUeXBlJCA9IHRvT2JzZXJ2YWJsZSh0aGlzLiR2aWV3VHlwZSk7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBvcmRlcmVkVmlzaWJsZUNvbHVtbnMgPSAoc3RhdGU6IFRhYmxlU3RhdGUpID0+IG9yZGVyZWRWaXNpYmxlTWV0YURhdGEoc3RhdGUpLm1hcChtZCA9PiBtZC5rZXkpO1xyXG5cclxuZXhwb3J0IGNvbnN0IG9yZGVyZWRWaXNpYmxlTWV0YURhdGEgPSAoc3RhdGU6IFRhYmxlU3RhdGUpID0+IHtcclxuICBjb25zdCBvcmRlcmVkID0gb3JkZXJNZXRhRGF0YShzdGF0ZSk7XHJcbiAgY29uc3Qgb3JkZXJlZFZpc2libGUgPSBvcmRlcmVkXHJcbiAgICAuZmlsdGVyKG1ldGFEYXRhID0+ICFzdGF0ZS5oaWRkZW5LZXlzLmluY2x1ZGVzKG1ldGFEYXRhLmtleSkgJiYgc3RhdGUubWV0YURhdGFbbWV0YURhdGEua2V5XS5maWVsZFR5cGUgIT09IEZpZWxkVHlwZS5IaWRkZW4pO1xyXG4gIHJldHVybiBvcmRlcmVkVmlzaWJsZTtcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IG9yZGVyZWRDb2RlVmlzaWJsZU1ldGFEYXRhID0gKHN0YXRlOiBUYWJsZVN0YXRlKSA9PlxyXG4gIG9yZGVyTWV0YURhdGEoc3RhdGUpLmZpbHRlcihtZCA9PiBtZC5maWVsZFR5cGUgIT09IEZpZWxkVHlwZS5IaWRkZW4pO1xyXG5cclxuZXhwb3J0IGNvbnN0IG9yZGVyTWV0YURhdGEgPSAoc3RhdGU6VGFibGVTdGF0ZSkgPT4ge1xyXG4gIGNvbnN0IHVzZXJPcmRlckFyciA9IE9iamVjdC5lbnRyaWVzKHN0YXRlLnVzZXJEZWZpbmVkLm9yZGVyKTtcclxuICByZXR1cm4gdXNlck9yZGVyQXJyLmxlbmd0aCA/XHJcbiAgIE9iamVjdC52YWx1ZXMoc3RhdGUubWV0YURhdGEpLnNvcnQoKGEsYik9PiB7XHJcbiAgICBjb25zdCBvcmRlckEgPSBzdGF0ZS51c2VyRGVmaW5lZC5vcmRlclthLmtleV07XHJcbiAgICBjb25zdCBvcmRlckIgPSBzdGF0ZS51c2VyRGVmaW5lZC5vcmRlcltiLmtleV07XHJcbiAgICBpZihvcmRlckEgPT0gbnVsbCAmJiBvcmRlckIgPT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gMDtcclxuICAgIH1cclxuICAgIGlmKG9yZGVyQSA9PSBudWxsKSB7XHJcbiAgICAgIHJldHVybiAxO1xyXG4gICAgfVxyXG4gICAgaWYob3JkZXJCID09IG51bGwpIHtcclxuICAgICAgcmV0dXJuIC0xO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHN0YXRlLnVzZXJEZWZpbmVkLm9yZGVyW2Eua2V5XSAtIHN0YXRlLnVzZXJEZWZpbmVkLm9yZGVyW2Iua2V5XVxyXG4gIH0pXHJcbiAgIDpcclxuICAgT2JqZWN0LnZhbHVlcyhzdGF0ZS5tZXRhRGF0YSkuc29ydCgoYSxiKT0+IGEub3JkZXIhIC0gYi5vcmRlciEpXHJcbn0iXX0=
|
|
@@ -111,7 +111,7 @@ export class ColumnBuilderComponent {
|
|
|
111
111
|
};
|
|
112
112
|
additional;
|
|
113
113
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ColumnBuilderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
114
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.2", type: ColumnBuilderComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "columnDef", first: true, predicate: MatColumnDef, descendants: true }, { propertyName: "bodyTemplate", first: true, predicate: ["body"], descendants: true }], ngImport: i0, template: "<ng-container [matColumnDef]=\"metaData.key\" *ngrxLet=\"styles() as styles\" >\n\n <!-- header -->\n <ng-template matHeaderCellDef #myHeader>\n <mat-header-cell cdkDrag [style]='styles.header' resizeColumn [key]=\"metaData.key\" class=\"column-head\"\n [class]='metaData.additional?.columnPartClasses?.header'>\n <div class=\"header-container\" cdkDragHandle>\n @if(!customCell?.columnDef?.headerCell)\n {\n @if(metaData.fieldType !== FieldType.NotMapped){\n <div mat-sort-header [disabled]=\"metaData.noSort\" style=\"width: 100%\">\n {{ metaData.displayName ? metaData.displayName : ( metaData.key | spaceCase ) }}\n </div>\n } @else if(metaData.fieldType === FieldType.NotMapped){\n <div style=\"width: 100%\">\n {{ metaData.displayName ? metaData.displayName : ( metaData.key | spaceCase ) }}\n </div>\n }\n @if(!customCell?.columnDef?.cell && (showFilters$ | async)){\n <tb-header-menu #menu [metaData]='metaData' />\n }\n }\n @else\n {\n <ng-container *ngTemplateOutlet=\"customCell!.columnDef!.headerCell.template; context: {metaData: metaData, styles: styles.header} \">\n </ng-container>\n }\n </div>\n </mat-header-cell>\n </ng-template>\n\n <!-- body -->\n <ng-container *matCellDef=\"let element;\">\n <ng-container *ngTemplateOutlet=\"outerTemplate; context: { metaData: metaData, element: element , styles: styles.body, $implicit: element }\"/>\n </ng-container>\n <ng-template #body let-element='element' >\n <mat-cell [matTooltip]=\"metaData.toolTip ? (getTooltip | func : element) : ''\" [conditionalClasses]='metaData.classes' [element]='element' [styler]='styles.body' (click)='cellClicked(element, metaData.key)' >\n <ng-container *ngTemplateOutlet=\"innerTemplate; context: { value: (transform | func : element), element: element, additional: additional, $implicit: element }; Injector: injector\" />\n </mat-cell>\n </ng-template>\n\n <!-- footer -->\n <ng-template matFooterCellDef>\n @if(customCell?.columnDef?.footerCell){\n <ng-container\n *ngTemplateOutlet=\"customCell!.columnDef!.footerCell.template; context: {metaData: metaData, data: data$, styles : styles.footer }\"/>\n } @else {\n <mat-footer-cell [style]='styles.footer' *ngrxLet=\"data$ as data\" [class]='metaData.additional?.columnPartClasses?.footer'>\n @if(!!data?.length && metaData.additional?.footer){\n <span class=\"bold\">\n @switch (metaData.fieldType) {\n @case (FieldType.Currency) { {{ data | columnTotal: metaData | currency }} }\n @case (FieldType.Number) { {{ data | columnTotal: metaData | number }} }\n }\n </span>\n }\n\n </mat-footer-cell>\n }\n </ng-template>\n</ng-container>\n", styles: [".header-container{display:flex;flex-direction:row;width:100%;align-items:center}.negative-currency{color:red}.column-head{position:relative}.bold,.group-footer{font-weight:900}.cdk-drag-preview{background:#fff;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:33%;border-right-width:0px}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.drag-handle{color:#add8e6;cursor:move;margin-right:9px}\n"], dependencies: [{ kind: "ngmodule", type: MatTableModule }, { kind: "directive", type: i1.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i1.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i1.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i1.MatFooterCellDef, selector: "[matFooterCellDef]" }, { kind: "directive", type: i1.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i1.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "directive", type: i1.MatFooterCell, selector: "mat-footer-cell, td[mat-footer-cell]" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: ResizeColumnDirective, selector: "[resizeColumn]", inputs: ["resizeColumn", "key"] }, { kind: "pipe", type: FunctionPipe, name: "func" }, { kind: "directive", type: StylerDirective, selector: "[styler]", inputs: ["element", "styler"] }, { kind: "directive", type: ConditionalClassesDirective, selector: "[conditionalClasses]", inputs: ["element", "conditionalClasses"] }, { kind: "ngmodule", type: DragDropModule }, { kind: "directive", type: i2.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i2.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "ngmodule", type: MatSortModule }, { kind: "component", type: i3.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "pipe", type: SpaceCasePipe, name: "spaceCase" }, { kind: "component", type: HeaderMenuComponent, selector: "tb-header-menu", inputs: ["metaData"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: LetDirective, selector: "[ngrxLet]", inputs: ["ngrxLet", "ngrxLetSuspenseTpl"] }, { kind: "pipe", type: ColumnTotalPipe, name: "columnTotal" }, { kind: "pipe", type: CurrencyPipe, name: "currency" }, { kind: "pipe", type: DecimalPipe, name: "number" }], viewProviders: [
|
|
114
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.2", type: ColumnBuilderComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "columnDef", first: true, predicate: MatColumnDef, descendants: true }, { propertyName: "bodyTemplate", first: true, predicate: ["body"], descendants: true }], ngImport: i0, template: "<ng-container [matColumnDef]=\"metaData.key\" *ngrxLet=\"styles() as styles\" >\r\n\r\n <!-- header -->\r\n <ng-template matHeaderCellDef #myHeader>\r\n <mat-header-cell cdkDrag [style]='styles.header' resizeColumn [key]=\"metaData.key\" class=\"column-head\"\r\n [class]='metaData.additional?.columnPartClasses?.header'>\r\n <div class=\"header-container\" cdkDragHandle>\r\n @if(!customCell?.columnDef?.headerCell)\r\n {\r\n @if(metaData.fieldType !== FieldType.NotMapped){\r\n <div mat-sort-header [disabled]=\"metaData.noSort\" style=\"width: 100%\">\r\n {{ metaData.displayName ? metaData.displayName : ( metaData.key | spaceCase ) }}\r\n </div>\r\n } @else if(metaData.fieldType === FieldType.NotMapped){\r\n <div style=\"width: 100%\">\r\n {{ metaData.displayName ? metaData.displayName : ( metaData.key | spaceCase ) }}\r\n </div>\r\n }\r\n @if(!customCell?.columnDef?.cell && (showFilters$ | async)){\r\n <tb-header-menu #menu [metaData]='metaData' />\r\n }\r\n }\r\n @else\r\n {\r\n <ng-container *ngTemplateOutlet=\"customCell!.columnDef!.headerCell.template; context: {metaData: metaData, styles: styles.header} \">\r\n </ng-container>\r\n }\r\n </div>\r\n </mat-header-cell>\r\n </ng-template>\r\n\r\n <!-- body -->\r\n <ng-container *matCellDef=\"let element;\">\r\n <ng-container *ngTemplateOutlet=\"outerTemplate; context: { metaData: metaData, element: element , styles: styles.body, $implicit: element }\"/>\r\n </ng-container>\r\n <ng-template #body let-element='element' >\r\n <mat-cell [matTooltip]=\"metaData.toolTip ? (getTooltip | func : element) : ''\" [conditionalClasses]='metaData.classes' [element]='element' [styler]='styles.body' (click)='cellClicked(element, metaData.key)' >\r\n <ng-container *ngTemplateOutlet=\"innerTemplate; context: { value: (transform | func : element), element: element, additional: additional, $implicit: element }; Injector: injector\" />\r\n </mat-cell>\r\n </ng-template>\r\n\r\n <!-- footer -->\r\n <ng-template matFooterCellDef>\r\n @if(customCell?.columnDef?.footerCell){\r\n <ng-container\r\n *ngTemplateOutlet=\"customCell!.columnDef!.footerCell.template; context: {metaData: metaData, data: data$, styles : styles.footer }\"/>\r\n } @else {\r\n <mat-footer-cell [style]='styles.footer' *ngrxLet=\"data$ as data\" [class]='metaData.additional?.columnPartClasses?.footer'>\r\n @if(!!data?.length && metaData.additional?.footer){\r\n <span class=\"bold\">\r\n @switch (metaData.fieldType) {\r\n @case (FieldType.Currency) { {{ data | columnTotal: metaData | currency }} }\r\n @case (FieldType.Number) { {{ data | columnTotal: metaData | number }} }\r\n }\r\n </span>\r\n }\r\n\r\n </mat-footer-cell>\r\n }\r\n </ng-template>\r\n</ng-container>\r\n", styles: [".header-container{display:flex;flex-direction:row;width:100%;align-items:center}.negative-currency{color:red}.column-head{position:relative}.bold,.group-footer{font-weight:900}.cdk-drag-preview{background:#fff;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:33%;border-right-width:0px}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.drag-handle{color:#add8e6;cursor:move;margin-right:9px}\n"], dependencies: [{ kind: "ngmodule", type: MatTableModule }, { kind: "directive", type: i1.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i1.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i1.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i1.MatFooterCellDef, selector: "[matFooterCellDef]" }, { kind: "directive", type: i1.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i1.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "directive", type: i1.MatFooterCell, selector: "mat-footer-cell, td[mat-footer-cell]" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: ResizeColumnDirective, selector: "[resizeColumn]", inputs: ["resizeColumn", "key"] }, { kind: "pipe", type: FunctionPipe, name: "func" }, { kind: "directive", type: StylerDirective, selector: "[styler]", inputs: ["element", "styler"] }, { kind: "directive", type: ConditionalClassesDirective, selector: "[conditionalClasses]", inputs: ["element", "conditionalClasses"] }, { kind: "ngmodule", type: DragDropModule }, { kind: "directive", type: i2.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i2.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "ngmodule", type: MatSortModule }, { kind: "component", type: i3.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "pipe", type: SpaceCasePipe, name: "spaceCase" }, { kind: "component", type: HeaderMenuComponent, selector: "tb-header-menu", inputs: ["metaData"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: LetDirective, selector: "[ngrxLet]", inputs: ["ngrxLet", "ngrxLetSuspenseTpl"] }, { kind: "pipe", type: ColumnTotalPipe, name: "columnTotal" }, { kind: "pipe", type: CurrencyPipe, name: "currency" }, { kind: "pipe", type: DecimalPipe, name: "number" }], viewProviders: [
|
|
115
115
|
{ provide: CDK_DROP_LIST, useExisting: CdkDropList },
|
|
116
116
|
], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
117
117
|
}
|
|
@@ -123,7 +123,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
|
|
|
123
123
|
MatTableModule, NgTemplateOutlet, ResizeColumnDirective, FunctionPipe, StylerDirective,
|
|
124
124
|
ConditionalClassesDirective, DragDropModule, MatSortModule, SpaceCasePipe, HeaderMenuComponent,
|
|
125
125
|
AsyncPipe, MatTooltipModule, LetDirective, ColumnTotalPipe, CurrencyPipe, DecimalPipe
|
|
126
|
-
], template: "<ng-container [matColumnDef]=\"metaData.key\" *ngrxLet=\"styles() as styles\" >\n\n <!-- header -->\n <ng-template matHeaderCellDef #myHeader>\n <mat-header-cell cdkDrag [style]='styles.header' resizeColumn [key]=\"metaData.key\" class=\"column-head\"\n [class]='metaData.additional?.columnPartClasses?.header'>\n <div class=\"header-container\" cdkDragHandle>\n @if(!customCell?.columnDef?.headerCell)\n {\n @if(metaData.fieldType !== FieldType.NotMapped){\n <div mat-sort-header [disabled]=\"metaData.noSort\" style=\"width: 100%\">\n {{ metaData.displayName ? metaData.displayName : ( metaData.key | spaceCase ) }}\n </div>\n } @else if(metaData.fieldType === FieldType.NotMapped){\n <div style=\"width: 100%\">\n {{ metaData.displayName ? metaData.displayName : ( metaData.key | spaceCase ) }}\n </div>\n }\n @if(!customCell?.columnDef?.cell && (showFilters$ | async)){\n <tb-header-menu #menu [metaData]='metaData' />\n }\n }\n @else\n {\n <ng-container *ngTemplateOutlet=\"customCell!.columnDef!.headerCell.template; context: {metaData: metaData, styles: styles.header} \">\n </ng-container>\n }\n </div>\n </mat-header-cell>\n </ng-template>\n\n <!-- body -->\n <ng-container *matCellDef=\"let element;\">\n <ng-container *ngTemplateOutlet=\"outerTemplate; context: { metaData: metaData, element: element , styles: styles.body, $implicit: element }\"/>\n </ng-container>\n <ng-template #body let-element='element' >\n <mat-cell [matTooltip]=\"metaData.toolTip ? (getTooltip | func : element) : ''\" [conditionalClasses]='metaData.classes' [element]='element' [styler]='styles.body' (click)='cellClicked(element, metaData.key)' >\n <ng-container *ngTemplateOutlet=\"innerTemplate; context: { value: (transform | func : element), element: element, additional: additional, $implicit: element }; Injector: injector\" />\n </mat-cell>\n </ng-template>\n\n <!-- footer -->\n <ng-template matFooterCellDef>\n @if(customCell?.columnDef?.footerCell){\n <ng-container\n *ngTemplateOutlet=\"customCell!.columnDef!.footerCell.template; context: {metaData: metaData, data: data$, styles : styles.footer }\"/>\n } @else {\n <mat-footer-cell [style]='styles.footer' *ngrxLet=\"data$ as data\" [class]='metaData.additional?.columnPartClasses?.footer'>\n @if(!!data?.length && metaData.additional?.footer){\n <span class=\"bold\">\n @switch (metaData.fieldType) {\n @case (FieldType.Currency) { {{ data | columnTotal: metaData | currency }} }\n @case (FieldType.Number) { {{ data | columnTotal: metaData | number }} }\n }\n </span>\n }\n\n </mat-footer-cell>\n }\n </ng-template>\n</ng-container>\n", styles: [".header-container{display:flex;flex-direction:row;width:100%;align-items:center}.negative-currency{color:red}.column-head{position:relative}.bold,.group-footer{font-weight:900}.cdk-drag-preview{background:#fff;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:33%;border-right-width:0px}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.drag-handle{color:#add8e6;cursor:move;margin-right:9px}\n"] }]
|
|
126
|
+
], template: "<ng-container [matColumnDef]=\"metaData.key\" *ngrxLet=\"styles() as styles\" >\r\n\r\n <!-- header -->\r\n <ng-template matHeaderCellDef #myHeader>\r\n <mat-header-cell cdkDrag [style]='styles.header' resizeColumn [key]=\"metaData.key\" class=\"column-head\"\r\n [class]='metaData.additional?.columnPartClasses?.header'>\r\n <div class=\"header-container\" cdkDragHandle>\r\n @if(!customCell?.columnDef?.headerCell)\r\n {\r\n @if(metaData.fieldType !== FieldType.NotMapped){\r\n <div mat-sort-header [disabled]=\"metaData.noSort\" style=\"width: 100%\">\r\n {{ metaData.displayName ? metaData.displayName : ( metaData.key | spaceCase ) }}\r\n </div>\r\n } @else if(metaData.fieldType === FieldType.NotMapped){\r\n <div style=\"width: 100%\">\r\n {{ metaData.displayName ? metaData.displayName : ( metaData.key | spaceCase ) }}\r\n </div>\r\n }\r\n @if(!customCell?.columnDef?.cell && (showFilters$ | async)){\r\n <tb-header-menu #menu [metaData]='metaData' />\r\n }\r\n }\r\n @else\r\n {\r\n <ng-container *ngTemplateOutlet=\"customCell!.columnDef!.headerCell.template; context: {metaData: metaData, styles: styles.header} \">\r\n </ng-container>\r\n }\r\n </div>\r\n </mat-header-cell>\r\n </ng-template>\r\n\r\n <!-- body -->\r\n <ng-container *matCellDef=\"let element;\">\r\n <ng-container *ngTemplateOutlet=\"outerTemplate; context: { metaData: metaData, element: element , styles: styles.body, $implicit: element }\"/>\r\n </ng-container>\r\n <ng-template #body let-element='element' >\r\n <mat-cell [matTooltip]=\"metaData.toolTip ? (getTooltip | func : element) : ''\" [conditionalClasses]='metaData.classes' [element]='element' [styler]='styles.body' (click)='cellClicked(element, metaData.key)' >\r\n <ng-container *ngTemplateOutlet=\"innerTemplate; context: { value: (transform | func : element), element: element, additional: additional, $implicit: element }; Injector: injector\" />\r\n </mat-cell>\r\n </ng-template>\r\n\r\n <!-- footer -->\r\n <ng-template matFooterCellDef>\r\n @if(customCell?.columnDef?.footerCell){\r\n <ng-container\r\n *ngTemplateOutlet=\"customCell!.columnDef!.footerCell.template; context: {metaData: metaData, data: data$, styles : styles.footer }\"/>\r\n } @else {\r\n <mat-footer-cell [style]='styles.footer' *ngrxLet=\"data$ as data\" [class]='metaData.additional?.columnPartClasses?.footer'>\r\n @if(!!data?.length && metaData.additional?.footer){\r\n <span class=\"bold\">\r\n @switch (metaData.fieldType) {\r\n @case (FieldType.Currency) { {{ data | columnTotal: metaData | currency }} }\r\n @case (FieldType.Number) { {{ data | columnTotal: metaData | number }} }\r\n }\r\n </span>\r\n }\r\n\r\n </mat-footer-cell>\r\n }\r\n </ng-template>\r\n</ng-container>\r\n", styles: [".header-container{display:flex;flex-direction:row;width:100%;align-items:center}.negative-currency{color:red}.column-head{position:relative}.bold,.group-footer{font-weight:900}.cdk-drag-preview{background:#fff;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:33%;border-right-width:0px}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.drag-handle{color:#add8e6;cursor:move;margin-right:9px}\n"] }]
|
|
127
127
|
}], propDecorators: { columnDef: [{
|
|
128
128
|
type: ViewChild,
|
|
129
129
|
args: [MatColumnDef]
|
|
@@ -131,4 +131,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
|
|
|
131
131
|
type: ViewChild,
|
|
132
132
|
args: ['body']
|
|
133
133
|
}] } });
|
|
134
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLWJ1aWxkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL3RhYmxlLWJ1aWxkZXIvY29tcG9uZW50cy9jb2x1bW4tYnVpbGRlci9jb2x1bW4tYnVpbGRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jb21wb25lbnRzL2NvbHVtbi1idWlsZGVyL2NvbHVtbi1idWlsZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsdUJBQXVCLEVBQWUsU0FBUyxFQUFxQixRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxSSxPQUFPLEVBQW1CLFNBQVMsRUFBWSxNQUFNLDZCQUE2QixDQUFDO0FBQ25GLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRWpGLE9BQU8sRUFBdUIscUJBQXFCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUU5RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdkQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXBGLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFD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REEsdWlCRDNCSSxjQUFjLDRuQkFBRSxnQkFBZ0Isb0pBQUUscUJBQXFCLHVGQUFFLFlBQVksNkNBQUUsZUFBZSxvRkFDdEYsMkJBQTJCLDJHQUFFLGNBQWMsK2xCQUFFLGFBQWEsaVBBQUUsYUFBYSxrREFBRSxtQkFBbUIsNEVBQzlGLFNBQVMsNkNBQUUsZ0JBQWdCLDZUQUFFLFlBQVksNEZBQUUsZUFBZSwrQ0FBRSxZQUFZLDRDQUFFLFdBQVcsb0NBUHhFO1lBQ2IsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUU7U0FDckQ7OzJGQVFVLHNCQUFzQjtrQkFkbEMsU0FBUztzQ0FHUyx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQzt3QkFDYixFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRTtxQkFDckQsY0FDVyxJQUFJLFdBQ1A7d0JBQ1AsY0FBYyxFQUFFLGdCQUFnQixFQUFFLHFCQUFxQixFQUFFLFlBQVksRUFBRSxlQUFlO3dCQUN0RiwyQkFBMkIsRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxtQkFBbUI7d0JBQzlGLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxXQUFXO3FCQUN0Rjs4QkFTd0IsU0FBUztzQkFBakMsU0FBUzt1QkFBQyxZQUFZO2dCQUNKLFlBQVk7c0JBQTlCLFNBQVM7dUJBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQsIE9uSW5pdCwgUHJlZGljYXRlLCBJbmplY3RvciwgY29tcHV0ZWQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXJyYXlBZGRpdGlvbmFsLCBGaWVsZFR5cGUsIE1ldGFEYXRhIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9yZXBvcnQtZGVmJztcbmltcG9ydCB7IE1hdENvbHVtbkRlZiwgTWF0VGFibGUsIE1hdFRhYmxlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ3VzdG9tQ2VsbERpcmVjdGl2ZSwgUmVzaXplQ29sdW1uRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBGaWx0ZXJJbmZvIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9maWx0ZXItaW5mbyc7XG5pbXBvcnQgeyBUcmFuc2Zvcm1DcmVhdG9yIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdHJhbnNmb3JtLWNyZWF0b3InO1xuaW1wb3J0IHsgVGFibGVTdG9yZSB9IGZyb20gJy4uLy4uL2NsYXNzZXMvdGFibGUtc3RvcmUnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgVGFibGVUZW1wbGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90YWJsZS10ZW1wbGF0ZS1zZXJ2aWNlJztcbmltcG9ydCB7IENka0Ryb3BMaXN0LCBDREtfRFJPUF9MSVNULCBEcmFnRHJvcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xuaW1wb3J0IHsgRGljdGlvbmFyeSB9IGZyb20gJ0BuZ3J4L2VudGl0eSc7XG5pbXBvcnQgeyBBc3luY1BpcGUsIEN1cnJlbmN5UGlwZSwgRGVjaW1hbFBpcGUsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29uZGl0aW9uYWxDbGFzc2VzRGlyZWN0aXZlLCBGdW5jdGlvblBpcGUsIFNwYWNlQ2FzZVBpcGUgfSBmcm9tICcuLi8uLi8uLi91dGlsaXRpZXMnO1xuaW1wb3J0IHsgTWF0U29ydE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xuaW1wb3J0IHsgSGVhZGVyTWVudUNvbXBvbmVudCB9IGZyb20gJy4uL2hlYWRlci1tZW51L2hlYWRlci1tZW51LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5pbXBvcnQgeyBMZXREaXJlY3RpdmUgfSBmcm9tICdAbmdyeC9jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29sdW1uVG90YWxQaXBlIH0gZnJvbSAnLi4vLi4vcGlwZXMvY29sdW1uLXRvdGFsLnBpcGUnO1xuaW1wb3J0IHsgU3R5bGVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vdXRpbGl0aWVzL2RpcmVjdGl2ZXMvc3R5bGVyJztcbmltcG9ydCB7IGNvbHVtblN0eWxlcyB9IGZyb20gJy4vY29sdW1uLWhlbHBlcnMnO1xuaW1wb3J0IHsgVGFibGVCdWlsZGVyQ29uZmlnVG9rZW4gfSBmcm9tICcuLi8uLi9jbGFzc2VzL1RhYmxlQnVpbGRlckNvbmZpZyc7XG5pbXBvcnQgeyBMaW5rSW5mbyB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xpbmstY3JlYXRvci5zZXJ2aWNlJztcblxuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbHVtbi1idWlsZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY29sdW1uLWJ1aWxkZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHZpZXdQcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IENES19EUk9QX0xJU1QsIHVzZUV4aXN0aW5nOiBDZGtEcm9wTGlzdCB9LFxuICBdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTWF0VGFibGVNb2R1bGUsIE5nVGVtcGxhdGVPdXRsZXQsIFJlc2l6ZUNvbHVtbkRpcmVjdGl2ZSwgRnVuY3Rpb25QaXBlLCBTdHlsZXJEaXJlY3RpdmUsXG4gICAgQ29uZGl0aW9uYWxDbGFzc2VzRGlyZWN0aXZlLCBEcmFnRHJvcE1vZHVsZSwgTWF0U29ydE1vZHVsZSwgU3BhY2VDYXNlUGlwZSwgSGVhZGVyTWVudUNvbXBvbmVudCxcbiAgICBBc3luY1BpcGUsIE1hdFRvb2x0aXBNb2R1bGUsIExldERpcmVjdGl2ZSwgQ29sdW1uVG90YWxQaXBlLCBDdXJyZW5jeVBpcGUsIERlY2ltYWxQaXBlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgQ29sdW1uQnVpbGRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHByaXZhdGUgdHJhbnNmb3JtQ3JlYXRvciA9IGluamVjdChUcmFuc2Zvcm1DcmVhdG9yKTtcbiAgcHJpdmF0ZSB0YWJsZSA9IGluamVjdDxNYXRUYWJsZTxhbnk+PihNYXRUYWJsZSk7XG4gIHByaXZhdGUgc3RhdGUgPSBpbmplY3QoVGFibGVTdG9yZSk7XG4gIHByaXZhdGUgdGVtcGxhdGVTZXJ2aWNlID0gaW5qZWN0KFRhYmxlVGVtcGxhdGVTZXJ2aWNlKTtcbiAgcHJvdGVjdGVkIGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcblxuICBAVmlld0NoaWxkKE1hdENvbHVtbkRlZikgY29sdW1uRGVmITogTWF0Q29sdW1uRGVmO1xuICBAVmlld0NoaWxkKCdib2R5JykgYm9keVRlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcbiAgdGFibGVDb25maWcgPSBpbmplY3QoVGFibGVCdWlsZGVyQ29uZmlnVG9rZW4pO1xuICBGaWVsZFR5cGUgPSBGaWVsZFR5cGU7XG4gIGZpbHRlciE6IFBhcnRpYWw8RmlsdGVySW5mbz47XG4gIF9tZXRhRGF0YSE6IE1ldGFEYXRhO1xuICBnZXQgbWV0YURhdGEoKXtcbiAgICByZXR1cm4gdGhpcy5fbWV0YURhdGE7XG4gIH1cbiAgc2V0IG1ldGFEYXRhKG1kOiBNZXRhRGF0YSl7XG4gICAgaWYodGhpcy5tZXRhRGF0YSAmJiB0aGlzLm1ldGFEYXRhLmZpZWxkVHlwZSAhPT0gbWQuZmllbGRUeXBlKXtcbiAgICAgIHRoaXMuX21ldGFEYXRhID0gbWQ7XG4gICAgICB0aGlzLmluaXRpYWxTZXRVcCgpO1xuICAgICAgdGhpcy5mdXJ0aGVyU2V0VXAoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fbWV0YURhdGEgPSBtZDtcbiAgICB9XG4gIH1cbiAgY3VzdG9tQ2VsbD86IEN1c3RvbUNlbGxEaXJlY3RpdmUgPSB1bmRlZmluZWQ7XG4gIGRhdGEkITogT2JzZXJ2YWJsZTxhbnlbXT47XG5cbiAgb3V0ZXJUZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XG4gIGlubmVyVGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICB0cmFuc2Zvcm0hOiAobzogYW55LCAuLi5hcmdzOiBhbnlbXSk9PiBhbnkgO1xuXG4gIGdldElubmVyVGVtcGxhdGUoKSA6VGVtcGxhdGVSZWY8YW55PiB7XG4gICAgaWYodGhpcy5tZXRhRGF0YS50ZW1wbGF0ZSkgcmV0dXJuIHRoaXMubWV0YURhdGEudGVtcGxhdGU7XG4gICAgaWYgKHRoaXMuY3VzdG9tQ2VsbD8uVGVtcGxhdGVSZWYpICByZXR1cm4gdGhpcy5jdXN0b21DZWxsLlRlbXBsYXRlUmVmO1xuICAgIHJldHVybiB0aGlzLnRlbXBsYXRlU2VydmljZS5nZXRUZW1wbGF0ZSh0aGlzLm1ldGFEYXRhKTtcbiAgfVxuICBzaG93RmlsdGVycyQhOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBnZXRPdXRlclRlbXBsYXRlKCkge1xuICAgIHJldHVybiB0aGlzLmN1c3RvbUNlbGw/LmNvbHVtbkRlZj8uY2VsbD8udGVtcGxhdGUgPz8gdGhpcy5ib2R5VGVtcGxhdGU7XG4gIH1cbiAgY2xhc3Nlcz86IERpY3Rpb25hcnk8UHJlZGljYXRlPGFueT4+O1xuICBzdHlsZXMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIGNvbHVtblN0eWxlcyh0aGlzLm1ldGFEYXRhLCB0aGlzLnN0YXRlLmdldFVzZXJEZWZpbmVkV2lkdGgodGhpcy5tZXRhRGF0YS5rZXkpKCksIHRoaXMuc3RhdGUudGFibGVTZXR0aW5nc01pbldpZHRoKCkpO1xuICB9KVxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmluaXRpYWxTZXRVcCgpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuZnVydGhlclNldFVwKCk7XG4gICAgdGhpcy50YWJsZS5hZGRDb2x1bW5EZWYodGhpcy5jb2x1bW5EZWYpO1xuICB9XG5cbiAgaW5pdGlhbFNldFVwKCl7XG4gICAgaWYodGhpcy5tZXRhRGF0YS5maWVsZFR5cGUgPT09IEZpZWxkVHlwZS5DdXJyZW5jeSkge1xuICAgICAgdGhpcy5jbGFzc2VzID0ge1xuICAgICAgICBbJ25lZ2F0aXZlLWN1cnJlbmN5J106IChlbGVtZW50KSA9PiBlbGVtZW50W3RoaXMubWV0YURhdGEua2V5XSA8IDAsXG4gICAgICAgIC4uLnRoaXMubWV0YURhdGEuY2xhc3Nlc1xuICAgICAgfVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHRoaXMuY2xhc3NlcyA9IHRoaXMubWV0YURhdGEuY2xhc3NlcztcbiAgICB9XG4gICAgdGhpcy5maWx0ZXIgPSB7a2V5OiB0aGlzLm1ldGFEYXRhLmtleSwgZmllbGRUeXBlOiB0aGlzLm1ldGFEYXRhLmZpZWxkVHlwZX07XG5cbiAgICB0aGlzLnNob3dGaWx0ZXJzJCA9IHRoaXMuc3RhdGUudGFibGVTZXR0aW5ncyQucGlwZShtYXAoc2V0dGluZ3MgPT4gIShzZXR0aW5ncy5oaWRlQ29sdW1uSGVhZGVyRmlsdGVycyB8fCB0aGlzLm1ldGFEYXRhLm5vRmlsdGVyKSkpO1xuICAgIHRoaXMuYWRkaXRpb25hbCA9IHRoaXMubWV0YURhdGEuZmllbGRUeXBlID09PSBGaWVsZFR5cGUuTGlua1xuICAgICAgPyB0aGlzLnN0YXRlLmdldExpbmtJbmZvKHRoaXMubWV0YURhdGEpKClcbiAgICAgIDpcbiAgICAgIHRoaXMubWV0YURhdGEuZmllbGRUeXBlID09PSBGaWVsZFR5cGUuQXJyYXlcbiAgICAgID8gKHRoaXMubWV0YURhdGEuYWRkaXRpb25hbCBhcyBBcnJheUFkZGl0aW9uYWwpPy5saW1pdCB8fCB0aGlzLnRhYmxlQ29uZmlnPy5hcnJheUluZm8/LmFycmF5U3R5bGVcbiAgICAgIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgZnVydGhlclNldFVwKCl7XG4gICAgdGhpcy5vdXRlclRlbXBsYXRlID0gdGhpcy5nZXRPdXRlclRlbXBsYXRlKCk7XG4gICAgdGhpcy5pbm5lclRlbXBsYXRlID0gdGhpcy5nZXRJbm5lclRlbXBsYXRlKCk7XG4gICAgdGhpcy50cmFuc2Zvcm0gPSB0aGlzLnRyYW5zZm9ybUNyZWF0b3IuY3JlYXRlVHJhbnNmb3JtZXIodGhpcy5tZXRhRGF0YSk7XG4gIH1cblxuICBjZWxsQ2xpY2tlZChlbGVtZW50OiBhbnksIGtleTogc3RyaW5nKSB7XG4gICAgaWYodGhpcy5tZXRhRGF0YS5jbGljaykge1xuICAgICAgdGhpcy5tZXRhRGF0YS5jbGljayhlbGVtZW50LGtleSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0VG9vbHRpcCA9IChlbGVtZW50OiBhbnkpID0+IHtcbiAgICBpZih0eXBlb2YgdGhpcy5tZXRhRGF0YS50b29sVGlwID09PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuIHRoaXMubWV0YURhdGEudG9vbFRpcDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMubWV0YURhdGEudG9vbFRpcCEoZWxlbWVudCk7XG4gIH1cblxuICBhZGRpdGlvbmFsOiBMaW5rSW5mbyB8IG51bWJlciB8IHVuZGVmaW5lZDtcbn1cbiIsIjxuZy1jb250YWluZXIgW21hdENvbHVtbkRlZl09XCJtZXRhRGF0YS5rZXlcIiAqbmdyeExldD1cInN0eWxlcygpIGFzIHN0eWxlc1wiID5cblxuICA8IS0tIGhlYWRlciAtLT5cbiAgPG5nLXRlbXBsYXRlIG1hdEhlYWRlckNlbGxEZWYgI215SGVhZGVyPlxuICAgIDxtYXQtaGVhZGVyLWNlbGwgY2RrRHJhZyBbc3R5bGVdPSdzdHlsZXMuaGVhZGVyJyByZXNpemVDb2x1bW4gW2tleV09XCJtZXRhRGF0YS5rZXlcIiBjbGFzcz1cImNvbHVtbi1oZWFkXCJcbiAgICAgIFtjbGFzc109J21ldGFEYXRhLmFkZGl0aW9uYWw/LmNvbHVtblBhcnRDbGFzc2VzPy5oZWFkZXInPlxuICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci1jb250YWluZXJcIiBjZGtEcmFnSGFuZGxlPlxuICAgICAgICBAaWYoIWN1c3RvbUNlbGw/LmNvbHVtbkRlZj8uaGVhZGVyQ2VsbClcbiAgICAgICAge1xuICAgICAgICAgICAgQGlmKG1ldGFEYXRhLmZpZWxkVHlwZSAhPT0gRmllbGRUeXBlLk5vdE1hcHBlZCl7XG4gICAgICAgICAgICAgIDxkaXYgbWF0LXNvcnQtaGVhZGVyIFtkaXNhYmxlZF09XCJtZXRhRGF0YS5ub1NvcnRcIiBzdHlsZT1cIndpZHRoOiAxMDAlXCI+XG4gICAgICAgICAgICAgICAge3sgbWV0YURhdGEuZGlzcGxheU5hbWUgPyAgbWV0YURhdGEuZGlzcGxheU5hbWUgOiAoIG1ldGFEYXRhLmtleSB8IHNwYWNlQ2FzZSApIH19XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfSBAZWxzZSBpZihtZXRhRGF0YS5maWVsZFR5cGUgPT09IEZpZWxkVHlwZS5Ob3RNYXBwZWQpe1xuICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwid2lkdGg6IDEwMCVcIj5cbiAgICAgICAgICAgICAgICB7eyBtZXRhRGF0YS5kaXNwbGF5TmFtZSA/ICBtZXRhRGF0YS5kaXNwbGF5TmFtZSA6ICggbWV0YURhdGEua2V5IHwgc3BhY2VDYXNlICkgfX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYoIWN1c3RvbUNlbGw/LmNvbHVtbkRlZj8uY2VsbCAmJiAoc2hvd0ZpbHRlcnMkIHwgYXN5bmMpKXtcbiAgICAgICAgICAgICAgPHRiLWhlYWRlci1tZW51ICNtZW51IFttZXRhRGF0YV09J21ldGFEYXRhJyAvPlxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIEBlbHNlXG4gICAgICAgIHtcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY3VzdG9tQ2VsbCEuY29sdW1uRGVmIS5oZWFkZXJDZWxsLnRlbXBsYXRlOyBjb250ZXh0OiB7bWV0YURhdGE6IG1ldGFEYXRhLCBzdHlsZXM6ICBzdHlsZXMuaGVhZGVyfSBcIj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgPC9tYXQtaGVhZGVyLWNlbGw+XG4gIDwvbmctdGVtcGxhdGU+XG5cbiAgPCEtLSBib2R5IC0tPlxuICA8bmctY29udGFpbmVyICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnQ7XCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm91dGVyVGVtcGxhdGU7IGNvbnRleHQ6IHsgbWV0YURhdGE6IG1ldGFEYXRhLCBlbGVtZW50OiBlbGVtZW50ICwgc3R5bGVzOiBzdHlsZXMuYm9keSwgJGltcGxpY2l0OiBlbGVtZW50IH1cIi8+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctdGVtcGxhdGUgI2JvZHkgbGV0LWVsZW1lbnQ9J2VsZW1lbnQnID5cbiAgICA8bWF0LWNlbGwgIFttYXRUb29sdGlwXT1cIm1ldGFEYXRhLnRvb2xUaXAgPyAoZ2V0VG9vbHRpcCB8IGZ1bmMgOiBlbGVtZW50KSA6ICcnXCIgIFtjb25kaXRpb25hbENsYXNzZXNdPSdtZXRhRGF0YS5jbGFzc2VzJyBbZWxlbWVudF09J2VsZW1lbnQnIFtzdHlsZXJdPSdzdHlsZXMuYm9keScgKGNsaWNrKT0nY2VsbENsaWNrZWQoZWxlbWVudCwgbWV0YURhdGEua2V5KScgPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImlubmVyVGVtcGxhdGU7IGNvbnRleHQ6IHsgdmFsdWU6ICh0cmFuc2Zvcm0gfCBmdW5jIDogZWxlbWVudCksIGVsZW1lbnQ6IGVsZW1lbnQsIGFkZGl0aW9uYWw6IGFkZGl0aW9uYWwsICRpbXBsaWNpdDogZWxlbWVudCB9OyBJbmplY3RvcjogaW5qZWN0b3JcIiAvPlxuICAgIDwvbWF0LWNlbGw+XG4gIDwvbmctdGVtcGxhdGU+XG5cbiAgPCEtLSBmb290ZXIgLS0+XG4gIDxuZy10ZW1wbGF0ZSBtYXRGb290ZXJDZWxsRGVmPlxuICAgIEBpZihjdXN0b21DZWxsPy5jb2x1bW5EZWY/LmZvb3RlckNlbGwpe1xuICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjdXN0b21DZWxsIS5jb2x1bW5EZWYhLmZvb3RlckNlbGwudGVtcGxhdGU7IGNvbnRleHQ6IHttZXRhRGF0YTogbWV0YURhdGEsIGRhdGE6IGRhdGEkLCBzdHlsZXMgOiBzdHlsZXMuZm9vdGVyIH1cIi8+XG4gICAgfSBAZWxzZSB7XG4gICAgICA8bWF0LWZvb3Rlci1jZWxsICBbc3R5bGVdPSdzdHlsZXMuZm9vdGVyJyAqbmdyeExldD1cImRhdGEkIGFzIGRhdGFcIiBbY2xhc3NdPSdtZXRhRGF0YS5hZGRpdGlvbmFsPy5jb2x1bW5QYXJ0Q2xhc3Nlcz8uZm9vdGVyJz5cbiAgICAgICAgQGlmKCEhZGF0YT8ubGVuZ3RoICYmIG1ldGFEYXRhLmFkZGl0aW9uYWw/LmZvb3Rlcil7XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJib2xkXCI+XG4gICAgICAgICAgICBAc3dpdGNoIChtZXRhRGF0YS5maWVsZFR5cGUpIHtcbiAgICAgICAgICAgICAgQGNhc2UgKEZpZWxkVHlwZS5DdXJyZW5jeSkgeyB7eyBkYXRhIHwgY29sdW1uVG90YWw6IG1ldGFEYXRhIHwgY3VycmVuY3kgfX0gfVxuICAgICAgICAgICAgICBAY2FzZSAoRmllbGRUeXBlLk51bWJlcikgeyB7eyBkYXRhIHwgY29sdW1uVG90YWw6IG1ldGFEYXRhIHwgbnVtYmVyIH19IH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIH1cblxuICAgICAgPC9tYXQtZm9vdGVyLWNlbGw+XG4gICAgfVxuICA8L25nLXRlbXBsYXRlPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
|
|
134
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLWJ1aWxkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL3RhYmxlLWJ1aWxkZXIvY29tcG9uZW50cy9jb2x1bW4tYnVpbGRlci9jb2x1bW4tYnVpbGRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jb21wb25lbnRzL2NvbHVtbi1idWlsZGVyL2NvbHVtbi1idWlsZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsdUJBQXVCLEVBQWUsU0FBUyxFQUFxQixRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxSSxPQUFPLEVBQW1CLFNBQVMsRUFBWSxNQUFNLDZCQUE2QixDQUFDO0FBQ25GLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRWpGLE9BQU8sRUFBdUIscUJBQXFCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUU5RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdkQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXBGLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFD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REEsdWlCRDNCSSxjQUFjLDRuQkFBRSxnQkFBZ0Isb0pBQUUscUJBQXFCLHVGQUFFLFlBQVksNkNBQUUsZUFBZSxvRkFDdEYsMkJBQTJCLDJHQUFFLGNBQWMsK2xCQUFFLGFBQWEsaVBBQUUsYUFBYSxrREFBRSxtQkFBbUIsNEVBQzlGLFNBQVMsNkNBQUUsZ0JBQWdCLDZUQUFFLFlBQVksNEZBQUUsZUFBZSwrQ0FBRSxZQUFZLDRDQUFFLFdBQVcsb0NBUHhFO1lBQ2IsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUU7U0FDckQ7OzJGQVFVLHNCQUFzQjtrQkFkbEMsU0FBUztzQ0FHUyx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQzt3QkFDYixFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRTtxQkFDckQsY0FDVyxJQUFJLFdBQ1A7d0JBQ1AsY0FBYyxFQUFFLGdCQUFnQixFQUFFLHFCQUFxQixFQUFFLFlBQVksRUFBRSxlQUFlO3dCQUN0RiwyQkFBMkIsRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxtQkFBbUI7d0JBQzlGLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxXQUFXO3FCQUN0Rjs4QkFTd0IsU0FBUztzQkFBakMsU0FBUzt1QkFBQyxZQUFZO2dCQUNKLFlBQVk7c0JBQTlCLFNBQVM7dUJBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQsIE9uSW5pdCwgUHJlZGljYXRlLCBJbmplY3RvciwgY29tcHV0ZWQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBcnJheUFkZGl0aW9uYWwsIEZpZWxkVHlwZSwgTWV0YURhdGEgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3JlcG9ydC1kZWYnO1xyXG5pbXBvcnQgeyBNYXRDb2x1bW5EZWYsIE1hdFRhYmxlLCBNYXRUYWJsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBDdXN0b21DZWxsRGlyZWN0aXZlLCBSZXNpemVDb2x1bW5EaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzJztcclxuaW1wb3J0IHsgRmlsdGVySW5mbyB9IGZyb20gJy4uLy4uL2NsYXNzZXMvZmlsdGVyLWluZm8nO1xyXG5pbXBvcnQgeyBUcmFuc2Zvcm1DcmVhdG9yIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdHJhbnNmb3JtLWNyZWF0b3InO1xyXG5pbXBvcnQgeyBUYWJsZVN0b3JlIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy90YWJsZS1zdG9yZSc7XHJcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgVGFibGVUZW1wbGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90YWJsZS10ZW1wbGF0ZS1zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ2RrRHJvcExpc3QsIENES19EUk9QX0xJU1QsIERyYWdEcm9wTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcbmltcG9ydCB7IERpY3Rpb25hcnkgfSBmcm9tICdAbmdyeC9lbnRpdHknO1xyXG5pbXBvcnQgeyBBc3luY1BpcGUsIEN1cnJlbmN5UGlwZSwgRGVjaW1hbFBpcGUsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb25kaXRpb25hbENsYXNzZXNEaXJlY3RpdmUsIEZ1bmN0aW9uUGlwZSwgU3BhY2VDYXNlUGlwZSB9IGZyb20gJy4uLy4uLy4uL3V0aWxpdGllcyc7XHJcbmltcG9ydCB7IE1hdFNvcnRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcclxuaW1wb3J0IHsgSGVhZGVyTWVudUNvbXBvbmVudCB9IGZyb20gJy4uL2hlYWRlci1tZW51L2hlYWRlci1tZW51LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcclxuaW1wb3J0IHsgTGV0RGlyZWN0aXZlIH0gZnJvbSAnQG5ncngvY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29sdW1uVG90YWxQaXBlIH0gZnJvbSAnLi4vLi4vcGlwZXMvY29sdW1uLXRvdGFsLnBpcGUnO1xyXG5pbXBvcnQgeyBTdHlsZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi91dGlsaXRpZXMvZGlyZWN0aXZlcy9zdHlsZXInO1xyXG5pbXBvcnQgeyBjb2x1bW5TdHlsZXMgfSBmcm9tICcuL2NvbHVtbi1oZWxwZXJzJztcclxuaW1wb3J0IHsgVGFibGVCdWlsZGVyQ29uZmlnVG9rZW4gfSBmcm9tICcuLi8uLi9jbGFzc2VzL1RhYmxlQnVpbGRlckNvbmZpZyc7XHJcbmltcG9ydCB7IExpbmtJbmZvIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbGluay1jcmVhdG9yLnNlcnZpY2UnO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb2x1bW4tYnVpbGRlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY29sdW1uLWJ1aWxkZXIuY29tcG9uZW50LnNjc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICB2aWV3UHJvdmlkZXJzOiBbXHJcbiAgICB7IHByb3ZpZGU6IENES19EUk9QX0xJU1QsIHVzZUV4aXN0aW5nOiBDZGtEcm9wTGlzdCB9LFxyXG4gIF0sXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBNYXRUYWJsZU1vZHVsZSwgTmdUZW1wbGF0ZU91dGxldCwgUmVzaXplQ29sdW1uRGlyZWN0aXZlLCBGdW5jdGlvblBpcGUsIFN0eWxlckRpcmVjdGl2ZSxcclxuICAgIENvbmRpdGlvbmFsQ2xhc3Nlc0RpcmVjdGl2ZSwgRHJhZ0Ryb3BNb2R1bGUsIE1hdFNvcnRNb2R1bGUsIFNwYWNlQ2FzZVBpcGUsIEhlYWRlck1lbnVDb21wb25lbnQsXHJcbiAgICBBc3luY1BpcGUsIE1hdFRvb2x0aXBNb2R1bGUsIExldERpcmVjdGl2ZSwgQ29sdW1uVG90YWxQaXBlLCBDdXJyZW5jeVBpcGUsIERlY2ltYWxQaXBlXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29sdW1uQnVpbGRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgcHJpdmF0ZSB0cmFuc2Zvcm1DcmVhdG9yID0gaW5qZWN0KFRyYW5zZm9ybUNyZWF0b3IpO1xyXG4gIHByaXZhdGUgdGFibGUgPSBpbmplY3Q8TWF0VGFibGU8YW55Pj4oTWF0VGFibGUpO1xyXG4gIHByaXZhdGUgc3RhdGUgPSBpbmplY3QoVGFibGVTdG9yZSk7XHJcbiAgcHJpdmF0ZSB0ZW1wbGF0ZVNlcnZpY2UgPSBpbmplY3QoVGFibGVUZW1wbGF0ZVNlcnZpY2UpO1xyXG4gIHByb3RlY3RlZCBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XHJcblxyXG4gIEBWaWV3Q2hpbGQoTWF0Q29sdW1uRGVmKSBjb2x1bW5EZWYhOiBNYXRDb2x1bW5EZWY7XHJcbiAgQFZpZXdDaGlsZCgnYm9keScpIGJvZHlUZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgdGFibGVDb25maWcgPSBpbmplY3QoVGFibGVCdWlsZGVyQ29uZmlnVG9rZW4pO1xyXG4gIEZpZWxkVHlwZSA9IEZpZWxkVHlwZTtcclxuICBmaWx0ZXIhOiBQYXJ0aWFsPEZpbHRlckluZm8+O1xyXG4gIF9tZXRhRGF0YSE6IE1ldGFEYXRhO1xyXG4gIGdldCBtZXRhRGF0YSgpe1xyXG4gICAgcmV0dXJuIHRoaXMuX21ldGFEYXRhO1xyXG4gIH1cclxuICBzZXQgbWV0YURhdGEobWQ6IE1ldGFEYXRhKXtcclxuICAgIGlmKHRoaXMubWV0YURhdGEgJiYgdGhpcy5tZXRhRGF0YS5maWVsZFR5cGUgIT09IG1kLmZpZWxkVHlwZSl7XHJcbiAgICAgIHRoaXMuX21ldGFEYXRhID0gbWQ7XHJcbiAgICAgIHRoaXMuaW5pdGlhbFNldFVwKCk7XHJcbiAgICAgIHRoaXMuZnVydGhlclNldFVwKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9tZXRhRGF0YSA9IG1kO1xyXG4gICAgfVxyXG4gIH1cclxuICBjdXN0b21DZWxsPzogQ3VzdG9tQ2VsbERpcmVjdGl2ZSA9IHVuZGVmaW5lZDtcclxuICBkYXRhJCE6IE9ic2VydmFibGU8YW55W10+O1xyXG5cclxuICBvdXRlclRlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcclxuICBpbm5lclRlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcclxuICB0cmFuc2Zvcm0hOiAobzogYW55LCAuLi5hcmdzOiBhbnlbXSk9PiBhbnkgO1xyXG5cclxuICBnZXRJbm5lclRlbXBsYXRlKCkgOlRlbXBsYXRlUmVmPGFueT4ge1xyXG4gICAgaWYodGhpcy5tZXRhRGF0YS50ZW1wbGF0ZSkgcmV0dXJuIHRoaXMubWV0YURhdGEudGVtcGxhdGU7XHJcbiAgICBpZiAodGhpcy5jdXN0b21DZWxsPy5UZW1wbGF0ZVJlZikgIHJldHVybiB0aGlzLmN1c3RvbUNlbGwuVGVtcGxhdGVSZWY7XHJcbiAgICByZXR1cm4gdGhpcy50ZW1wbGF0ZVNlcnZpY2UuZ2V0VGVtcGxhdGUodGhpcy5tZXRhRGF0YSk7XHJcbiAgfVxyXG4gIHNob3dGaWx0ZXJzJCE6IE9ic2VydmFibGU8Ym9vbGVhbj47XHJcbiAgZ2V0T3V0ZXJUZW1wbGF0ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmN1c3RvbUNlbGw/LmNvbHVtbkRlZj8uY2VsbD8udGVtcGxhdGUgPz8gdGhpcy5ib2R5VGVtcGxhdGU7XHJcbiAgfVxyXG4gIGNsYXNzZXM/OiBEaWN0aW9uYXJ5PFByZWRpY2F0ZTxhbnk+PjtcclxuICBzdHlsZXMgPSBjb21wdXRlZCgoKSA9PiB7XHJcbiAgICByZXR1cm4gY29sdW1uU3R5bGVzKHRoaXMubWV0YURhdGEsIHRoaXMuc3RhdGUuZ2V0VXNlckRlZmluZWRXaWR0aCh0aGlzLm1ldGFEYXRhLmtleSkoKSwgdGhpcy5zdGF0ZS50YWJsZVNldHRpbmdzTWluV2lkdGgoKSk7XHJcbiAgfSlcclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuaW5pdGlhbFNldFVwKCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLmZ1cnRoZXJTZXRVcCgpO1xyXG4gICAgdGhpcy50YWJsZS5hZGRDb2x1bW5EZWYodGhpcy5jb2x1bW5EZWYpO1xyXG4gIH1cclxuXHJcbiAgaW5pdGlhbFNldFVwKCl7XHJcbiAgICBpZih0aGlzLm1ldGFEYXRhLmZpZWxkVHlwZSA9PT0gRmllbGRUeXBlLkN1cnJlbmN5KSB7XHJcbiAgICAgIHRoaXMuY2xhc3NlcyA9IHtcclxuICAgICAgICBbJ25lZ2F0aXZlLWN1cnJlbmN5J106IChlbGVtZW50KSA9PiBlbGVtZW50W3RoaXMubWV0YURhdGEua2V5XSA8IDAsXHJcbiAgICAgICAgLi4udGhpcy5tZXRhRGF0YS5jbGFzc2VzXHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLmNsYXNzZXMgPSB0aGlzLm1ldGFEYXRhLmNsYXNzZXM7XHJcbiAgICB9XHJcbiAgICB0aGlzLmZpbHRlciA9IHtrZXk6IHRoaXMubWV0YURhdGEua2V5LCBmaWVsZFR5cGU6IHRoaXMubWV0YURhdGEuZmllbGRUeXBlfTtcclxuXHJcbiAgICB0aGlzLnNob3dGaWx0ZXJzJCA9IHRoaXMuc3RhdGUudGFibGVTZXR0aW5ncyQucGlwZShtYXAoc2V0dGluZ3MgPT4gIShzZXR0aW5ncy5oaWRlQ29sdW1uSGVhZGVyRmlsdGVycyB8fCB0aGlzLm1ldGFEYXRhLm5vRmlsdGVyKSkpO1xyXG4gICAgdGhpcy5hZGRpdGlvbmFsID0gdGhpcy5tZXRhRGF0YS5maWVsZFR5cGUgPT09IEZpZWxkVHlwZS5MaW5rXHJcbiAgICAgID8gdGhpcy5zdGF0ZS5nZXRMaW5rSW5mbyh0aGlzLm1ldGFEYXRhKSgpXHJcbiAgICAgIDpcclxuICAgICAgdGhpcy5tZXRhRGF0YS5maWVsZFR5cGUgPT09IEZpZWxkVHlwZS5BcnJheVxyXG4gICAgICA/ICh0aGlzLm1ldGFEYXRhLmFkZGl0aW9uYWwgYXMgQXJyYXlBZGRpdGlvbmFsKT8ubGltaXQgfHwgdGhpcy50YWJsZUNvbmZpZz8uYXJyYXlJbmZvPy5hcnJheVN0eWxlXHJcbiAgICAgIDogdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgZnVydGhlclNldFVwKCl7XHJcbiAgICB0aGlzLm91dGVyVGVtcGxhdGUgPSB0aGlzLmdldE91dGVyVGVtcGxhdGUoKTtcclxuICAgIHRoaXMuaW5uZXJUZW1wbGF0ZSA9IHRoaXMuZ2V0SW5uZXJUZW1wbGF0ZSgpO1xyXG4gICAgdGhpcy50cmFuc2Zvcm0gPSB0aGlzLnRyYW5zZm9ybUNyZWF0b3IuY3JlYXRlVHJhbnNmb3JtZXIodGhpcy5tZXRhRGF0YSk7XHJcbiAgfVxyXG5cclxuICBjZWxsQ2xpY2tlZChlbGVtZW50OiBhbnksIGtleTogc3RyaW5nKSB7XHJcbiAgICBpZih0aGlzLm1ldGFEYXRhLmNsaWNrKSB7XHJcbiAgICAgIHRoaXMubWV0YURhdGEuY2xpY2soZWxlbWVudCxrZXkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0VG9vbHRpcCA9IChlbGVtZW50OiBhbnkpID0+IHtcclxuICAgIGlmKHR5cGVvZiB0aGlzLm1ldGFEYXRhLnRvb2xUaXAgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLm1ldGFEYXRhLnRvb2xUaXA7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5tZXRhRGF0YS50b29sVGlwIShlbGVtZW50KTtcclxuICB9XHJcblxyXG4gIGFkZGl0aW9uYWw6IExpbmtJbmZvIHwgbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG59XHJcbiIsIjxuZy1jb250YWluZXIgW21hdENvbHVtbkRlZl09XCJtZXRhRGF0YS5rZXlcIiAqbmdyeExldD1cInN0eWxlcygpIGFzIHN0eWxlc1wiID5cclxuXHJcbiAgPCEtLSBoZWFkZXIgLS0+XHJcbiAgPG5nLXRlbXBsYXRlIG1hdEhlYWRlckNlbGxEZWYgI215SGVhZGVyPlxyXG4gICAgPG1hdC1oZWFkZXItY2VsbCBjZGtEcmFnIFtzdHlsZV09J3N0eWxlcy5oZWFkZXInIHJlc2l6ZUNvbHVtbiBba2V5XT1cIm1ldGFEYXRhLmtleVwiIGNsYXNzPVwiY29sdW1uLWhlYWRcIlxyXG4gICAgICBbY2xhc3NdPSdtZXRhRGF0YS5hZGRpdGlvbmFsPy5jb2x1bW5QYXJ0Q2xhc3Nlcz8uaGVhZGVyJz5cclxuICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci1jb250YWluZXJcIiBjZGtEcmFnSGFuZGxlPlxyXG4gICAgICAgIEBpZighY3VzdG9tQ2VsbD8uY29sdW1uRGVmPy5oZWFkZXJDZWxsKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgQGlmKG1ldGFEYXRhLmZpZWxkVHlwZSAhPT0gRmllbGRUeXBlLk5vdE1hcHBlZCl7XHJcbiAgICAgICAgICAgICAgPGRpdiBtYXQtc29ydC1oZWFkZXIgW2Rpc2FibGVkXT1cIm1ldGFEYXRhLm5vU29ydFwiIHN0eWxlPVwid2lkdGg6IDEwMCVcIj5cclxuICAgICAgICAgICAgICAgIHt7IG1ldGFEYXRhLmRpc3BsYXlOYW1lID8gIG1ldGFEYXRhLmRpc3BsYXlOYW1lIDogKCBtZXRhRGF0YS5rZXkgfCBzcGFjZUNhc2UgKSB9fVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICB9IEBlbHNlIGlmKG1ldGFEYXRhLmZpZWxkVHlwZSA9PT0gRmllbGRUeXBlLk5vdE1hcHBlZCl7XHJcbiAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cIndpZHRoOiAxMDAlXCI+XHJcbiAgICAgICAgICAgICAgICB7eyBtZXRhRGF0YS5kaXNwbGF5TmFtZSA/ICBtZXRhRGF0YS5kaXNwbGF5TmFtZSA6ICggbWV0YURhdGEua2V5IHwgc3BhY2VDYXNlICkgfX1cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBAaWYoIWN1c3RvbUNlbGw/LmNvbHVtbkRlZj8uY2VsbCAmJiAoc2hvd0ZpbHRlcnMkIHwgYXN5bmMpKXtcclxuICAgICAgICAgICAgICA8dGItaGVhZGVyLW1lbnUgI21lbnUgW21ldGFEYXRhXT0nbWV0YURhdGEnIC8+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgQGVsc2VcclxuICAgICAgICB7XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY3VzdG9tQ2VsbCEuY29sdW1uRGVmIS5oZWFkZXJDZWxsLnRlbXBsYXRlOyBjb250ZXh0OiB7bWV0YURhdGE6IG1ldGFEYXRhLCBzdHlsZXM6ICBzdHlsZXMuaGVhZGVyfSBcIj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIH1cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L21hdC1oZWFkZXItY2VsbD5cclxuICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICA8IS0tIGJvZHkgLS0+XHJcbiAgPG5nLWNvbnRhaW5lciAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50O1wiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm91dGVyVGVtcGxhdGU7IGNvbnRleHQ6IHsgbWV0YURhdGE6IG1ldGFEYXRhLCBlbGVtZW50OiBlbGVtZW50ICwgc3R5bGVzOiBzdHlsZXMuYm9keSwgJGltcGxpY2l0OiBlbGVtZW50IH1cIi8+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbiAgPG5nLXRlbXBsYXRlICNib2R5IGxldC1lbGVtZW50PSdlbGVtZW50JyA+XHJcbiAgICA8bWF0LWNlbGwgIFttYXRUb29sdGlwXT1cIm1ldGFEYXRhLnRvb2xUaXAgPyAoZ2V0VG9vbHRpcCB8IGZ1bmMgOiBlbGVtZW50KSA6ICcnXCIgIFtjb25kaXRpb25hbENsYXNzZXNdPSdtZXRhRGF0YS5jbGFzc2VzJyBbZWxlbWVudF09J2VsZW1lbnQnIFtzdHlsZXJdPSdzdHlsZXMuYm9keScgKGNsaWNrKT0nY2VsbENsaWNrZWQoZWxlbWVudCwgbWV0YURhdGEua2V5KScgPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaW5uZXJUZW1wbGF0ZTsgY29udGV4dDogeyB2YWx1ZTogKHRyYW5zZm9ybSB8IGZ1bmMgOiBlbGVtZW50KSwgZWxlbWVudDogZWxlbWVudCwgYWRkaXRpb25hbDogYWRkaXRpb25hbCwgJGltcGxpY2l0OiBlbGVtZW50IH07IEluamVjdG9yOiBpbmplY3RvclwiIC8+XHJcbiAgICA8L21hdC1jZWxsPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gIDwhLS0gZm9vdGVyIC0tPlxyXG4gIDxuZy10ZW1wbGF0ZSBtYXRGb290ZXJDZWxsRGVmPlxyXG4gICAgQGlmKGN1c3RvbUNlbGw/LmNvbHVtbkRlZj8uZm9vdGVyQ2VsbCl7XHJcbiAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjdXN0b21DZWxsIS5jb2x1bW5EZWYhLmZvb3RlckNlbGwudGVtcGxhdGU7IGNvbnRleHQ6IHttZXRhRGF0YTogbWV0YURhdGEsIGRhdGE6IGRhdGEkLCBzdHlsZXMgOiBzdHlsZXMuZm9vdGVyIH1cIi8+XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgPG1hdC1mb290ZXItY2VsbCAgW3N0eWxlXT0nc3R5bGVzLmZvb3RlcicgKm5ncnhMZXQ9XCJkYXRhJCBhcyBkYXRhXCIgW2NsYXNzXT0nbWV0YURhdGEuYWRkaXRpb25hbD8uY29sdW1uUGFydENsYXNzZXM/LmZvb3Rlcic+XHJcbiAgICAgICAgQGlmKCEhZGF0YT8ubGVuZ3RoICYmIG1ldGFEYXRhLmFkZGl0aW9uYWw/LmZvb3Rlcil7XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImJvbGRcIj5cclxuICAgICAgICAgICAgQHN3aXRjaCAobWV0YURhdGEuZmllbGRUeXBlKSB7XHJcbiAgICAgICAgICAgICAgQGNhc2UgKEZpZWxkVHlwZS5DdXJyZW5jeSkgeyB7eyBkYXRhIHwgY29sdW1uVG90YWw6IG1ldGFEYXRhIHwgY3VycmVuY3kgfX0gfVxyXG4gICAgICAgICAgICAgIEBjYXNlIChGaWVsZFR5cGUuTnVtYmVyKSB7IHt7IGRhdGEgfCBjb2x1bW5Ub3RhbDogbWV0YURhdGEgfCBudW1iZXIgfX0gfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgPC9tYXQtZm9vdGVyLWNlbGw+XHJcbiAgICB9XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuPC9uZy1jb250YWluZXI+XHJcbiJdfQ==
|
|
@@ -44,4 +44,4 @@ export const calculateFlexWidths = (metaDatas, userDefinedWidths, tableSettingsM
|
|
|
44
44
|
export const columnsStyles = (metaDatas, userDefinedWidths) => {
|
|
45
45
|
return metaDataArrToDict(metaDatas, md => columnStyles(md, userDefinedWidths[md.key]));
|
|
46
46
|
};
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLWhlbHBlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jb21wb25lbnRzL2NvbHVtbi1idWlsZGVyL2NvbHVtbi1oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBVyxpQkFBaUIsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBR3hFLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxDQUFDLFFBQWtCLEVBQUUsZ0JBQW9DLEVBQUUsRUFBRTtJQUMxRixNQUFNLFlBQVksR0FBRyxDQUFDLGdCQUFnQixJQUFJLEdBQUcsZ0JBQWdCLElBQUksQ0FBQyxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUM7SUFDckYsT0FBTyxZQUFZLENBQUM7QUFDdEIsQ0FBQyxDQUFBO0FBRUQsTUFBTSxVQUFVLHlCQUF5QixDQUFDLGdCQUFvQztJQUM1RSxJQUFHLGdCQUFnQjtRQUFFLE9BQU8sRUFBQyxJQUFJLEVBQUUsT0FBTyxnQkFBZ0IsSUFBSSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsQ0FBQztJQUNuRixPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDO0FBRUQsTUFBTSxVQUFVLDBCQUEwQixDQUFDLFFBQWtCLEVBQUUscUJBQXlDO0lBQ3RHLElBQUcsUUFBUSxDQUFDLEtBQUs7UUFBRSxPQUFPLENBQUMsRUFBQyxJQUFJLEVBQUUsT0FBTyxRQUFRLENBQUMsS0FBSyxFQUFFLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBQyxDQUFDLENBQUM7SUFDOUUsTUFBTSxLQUFLLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBQyxDQUFDO0lBQzlCLElBQUcscUJBQXFCO1FBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEdBQUcscUJBQXFCLElBQUksQ0FBQztJQUMzRSxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLFFBQWtCLEVBQUUsZ0JBQW9DLEVBQUUscUJBQXlDLEVBQUUsRUFBRTtJQUN4SSxNQUFNLFlBQVksR0FBRyxlQUFlLENBQUMsUUFBUSxFQUFFLGdCQUFnQixDQUFDLENBQUM7SUFDakUsSUFBRyxZQUFZO1FBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQ3pELElBQUcsWUFBWTtRQUFFLE9BQU8sQ0FBQyxFQUFDLElBQUksRUFBRSxPQUFPLFlBQVksRUFBRSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQzNFLE1BQU0sS0FBSyxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUMsQ0FBQztJQUM5QixJQUFHLHFCQUFxQjtRQUFFLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxHQUFHLHFCQUFxQixJQUFJLENBQUM7SUFDM0UsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxRQUFrQixFQUFFLGdCQUFvQyxFQUFFLHFCQUEwQyxFQUFFLEVBQUU7SUFDbkksTUFBTSxjQUFjLEdBQUcsUUFBUSxDQUFDLFVBQVUsRUFBRSxNQUFNLElBQUksRUFBRSxDQUFDO0lBQ3pELE1BQU0sU0FBUyxHQUFHLHlCQUF5QixDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3BFLE1BQU0sVUFBVSxHQUFHLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLDBCQUEwQixDQUFDLFFBQVEsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO0lBQ3ZHLE1BQU0sTUFBTSxHQUlSO1FBQ0YsTUFBTSxFQUFFLEVBQUUsR0FBRyxVQUFVLEVBQUUsR0FBRyxjQUFjLEVBQUUsR0FBRyxRQUFRLENBQUMsVUFBVSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxHQUFHLFNBQVMsRUFBQztRQUMzRyxNQUFNLEVBQUUsRUFBRSxHQUFHLFVBQVUsRUFBRSxHQUFHLGNBQWMsRUFBRSxHQUFHLFFBQVEsQ0FBQyxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLEdBQUcsU0FBUyxFQUFDO1FBQzNHLElBQUksRUFBRSxFQUFFLEdBQUcsVUFBVSxFQUFFLEdBQUcsY0FBYyxFQUFFLEdBQUcsUUFBUSxDQUFDLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsR0FBRyxTQUFTLEVBQUM7S0FDeEcsQ0FBQztJQUNGLE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLENBQUMsU0FBcUIsRUFBRSxpQkFBcUMsRUFBRSxxQkFBeUMsRUFBRSxFQUFFO0lBQzdJLE9BQU8saUJBQWlCLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsa0JBQWtCLENBQUMsRUFBRSxFQUFFLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDLENBQUM7QUFDdEgsQ0FBQyxDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQUMsU0FBcUIsRUFBRSxpQkFBcUMsRUFBRSxFQUFFO0lBQzVGLE9BQU8saUJBQWlCLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLEVBQUUsRUFBRSxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3pGLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGljdGlvbmFyeX0gZnJvbSBcIkBuZ3J4L2VudGl0eVwiO1xyXG5pbXBvcnQge01ldGFEYXRhLCBtZXRhRGF0YUFyclRvRGljdH0gZnJvbSBcIi4uLy4uL2ludGVyZmFjZXMvcmVwb3J0LWRlZlwiO1xyXG5pbXBvcnQge1N0eWxlclN0eWxlfSBmcm9tIFwiLi4vLi4vLi4vdXRpbGl0aWVzL2RpcmVjdGl2ZXMvc3R5bGVyXCI7XHJcblxyXG5leHBvcnQgY29uc3QgY2FsY3VsYXRlV2lkdGhzID0gKG1ldGFEYXRhOiBNZXRhRGF0YSwgdXNlckRlZmluZWRXaWR0aDogbnVtYmVyIHwgdW5kZWZpbmVkKSA9PiB7XHJcbiAgY29uc3QgZGVmaW5lZFdpZHRoID0gKHVzZXJEZWZpbmVkV2lkdGggJiYgYCR7dXNlckRlZmluZWRXaWR0aH1weGApIHx8IG1ldGFEYXRhLndpZHRoO1xyXG4gIHJldHVybiBkZWZpbmVkV2lkdGg7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjYWxjdWxhdGVVc2VyRGVmaW5lZFdpZHRoKHVzZXJEZWZpbmVkV2lkdGg6IG51bWJlciB8IHVuZGVmaW5lZCl7XHJcbiAgaWYodXNlckRlZmluZWRXaWR0aCkgcmV0dXJuIHtmbGV4OiBgMCAwICR7dXNlckRlZmluZWRXaWR0aH1weGAsIG1heFdpZHRoOiAnbm9uZScgfTtcclxuICByZXR1cm4gdW5kZWZpbmVkO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY2FsY3VsYXRlVGFibGVEZWZpbmVkV2lkdGgobWV0YURhdGE6IE1ldGFEYXRhLCB0YWJsZVNldHRpbmdzTWluV2lkdGg6IG51bWJlciB8IHVuZGVmaW5lZCl7XHJcbiAgaWYobWV0YURhdGEud2lkdGgpIHJldHVybiAoe2ZsZXg6IGAwIDAgJHttZXRhRGF0YS53aWR0aH1gLCBtYXhXaWR0aDogJ25vbmUnfSk7XHJcbiAgY29uc3Qgc3R5bGUgPSB7IGZsZXg6IGAkezF9YH07XHJcbiAgaWYodGFibGVTZXR0aW5nc01pbldpZHRoKSBzdHlsZVsnbWluV2lkdGgnXSA9IGAke3RhYmxlU2V0dGluZ3NNaW5XaWR0aH1weGA7XHJcbiAgcmV0dXJuIHN0eWxlO1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgY2FsY3VsYXRlRmxleFdpZHRoID0gKG1ldGFEYXRhOiBNZXRhRGF0YSwgdXNlckRlZmluZWRXaWR0aDogbnVtYmVyIHwgdW5kZWZpbmVkLCB0YWJsZVNldHRpbmdzTWluV2lkdGg6IG51bWJlciB8IHVuZGVmaW5lZCkgPT4ge1xyXG4gIGNvbnN0IGRlZmluZWRXaWR0aCA9IGNhbGN1bGF0ZVdpZHRocyhtZXRhRGF0YSwgdXNlckRlZmluZWRXaWR0aCk7XHJcbiAgaWYoZGVmaW5lZFdpZHRoKSBjb25zb2xlLmxvZyhtZXRhRGF0YS5rZXksIGRlZmluZWRXaWR0aCk7XHJcbiAgaWYoZGVmaW5lZFdpZHRoKSByZXR1cm4gKHtmbGV4OiBgMCAwICR7ZGVmaW5lZFdpZHRofWAsIG1heFdpZHRoOiAnbm9uZScgfSk7XHJcbiAgY29uc3Qgc3R5bGUgPSB7IGZsZXg6IGAkezF9YH07XHJcbiAgaWYodGFibGVTZXR0aW5nc01pbldpZHRoKSBzdHlsZVsnbWluV2lkdGgnXSA9IGAke3RhYmxlU2V0dGluZ3NNaW5XaWR0aH1weGA7XHJcbiAgcmV0dXJuIHN0eWxlO1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgY29sdW1uU3R5bGVzID0gKG1ldGFEYXRhOiBNZXRhRGF0YSwgdXNlckRlZmluZWRXaWR0aDogbnVtYmVyIHwgdW5kZWZpbmVkLCB0YWJsZVNldHRpbmdzTWluV2lkdGg/OiBudW1iZXIgfCB1bmRlZmluZWQpID0+IHtcclxuICBjb25zdCBmdWxsTWV0YVN0eWxlcyA9IG1ldGFEYXRhLmFkZGl0aW9uYWw/LnN0eWxlcyA/PyB7fTtcclxuICBjb25zdCB1c2VyV2lkdGggPSBjYWxjdWxhdGVVc2VyRGVmaW5lZFdpZHRoKHVzZXJEZWZpbmVkV2lkdGgpID8/IHt9O1xyXG4gIGNvbnN0IHRhYmxlV2lkdGggPSB1c2VyRGVmaW5lZFdpZHRoID8ge30gOiBjYWxjdWxhdGVUYWJsZURlZmluZWRXaWR0aChtZXRhRGF0YSwgdGFibGVTZXR0aW5nc01pbldpZHRoKTtcclxuICBjb25zdCBzdHlsZXM6IHtcclxuICAgIGhlYWRlcjogRGljdGlvbmFyeTxzdHJpbmc+O1xyXG4gICAgYm9keTogU3R5bGVyU3R5bGU7XHJcbiAgICBmb290ZXI6IERpY3Rpb25hcnk8c3RyaW5nPjtcclxuICB9ID0ge1xyXG4gICAgaGVhZGVyOiB7IC4uLnRhYmxlV2lkdGgsIC4uLmZ1bGxNZXRhU3R5bGVzLCAuLi5tZXRhRGF0YS5hZGRpdGlvbmFsPy5jb2x1bW5QYXJ0U3R5bGVzPy5oZWFkZXIsIC4uLnVzZXJXaWR0aH0sXHJcbiAgICBmb290ZXI6IHsgLi4udGFibGVXaWR0aCwgLi4uZnVsbE1ldGFTdHlsZXMsIC4uLm1ldGFEYXRhLmFkZGl0aW9uYWw/LmNvbHVtblBhcnRTdHlsZXM/LmZvb3RlciwgLi4udXNlcldpZHRofSxcclxuICAgIGJvZHk6IHsgLi4udGFibGVXaWR0aCwgLi4uZnVsbE1ldGFTdHlsZXMsIC4uLm1ldGFEYXRhLmFkZGl0aW9uYWw/LmNvbHVtblBhcnRTdHlsZXM/LmJvZHksIC4uLnVzZXJXaWR0aH0sXHJcbiAgfTtcclxuICByZXR1cm4gc3R5bGVzO1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgY2FsY3VsYXRlRmxleFdpZHRocyA9IChtZXRhRGF0YXM6IE1ldGFEYXRhW10sIHVzZXJEZWZpbmVkV2lkdGhzOiBEaWN0aW9uYXJ5PG51bWJlcj4sIHRhYmxlU2V0dGluZ3NNaW5XaWR0aDogbnVtYmVyIHwgdW5kZWZpbmVkKSA9PiB7XHJcbiAgcmV0dXJuIG1ldGFEYXRhQXJyVG9EaWN0KG1ldGFEYXRhcywgbWQgPT4gY2FsY3VsYXRlRmxleFdpZHRoKG1kLCB1c2VyRGVmaW5lZFdpZHRoc1ttZC5rZXldLCB0YWJsZVNldHRpbmdzTWluV2lkdGgpKTtcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IGNvbHVtbnNTdHlsZXMgPSAobWV0YURhdGFzOiBNZXRhRGF0YVtdLCB1c2VyRGVmaW5lZFdpZHRoczogRGljdGlvbmFyeTxudW1iZXI+KSA9PiB7XHJcbiAgcmV0dXJuIG1ldGFEYXRhQXJyVG9EaWN0KG1ldGFEYXRhcywgbWQgPT4gY29sdW1uU3R5bGVzKG1kLCB1c2VyRGVmaW5lZFdpZHRoc1ttZC5rZXldKSk7XHJcbn1cclxuIl19
|